From 0f5d2c1d419543819f072169eab72a85abd2e9d2 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 7 Jan 2024 22:41:43 +0900 Subject: [PATCH 0001/1228] Prepare release for v0.2.152 --- Cargo.toml | 2 +- libc-test/Cargo.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index dff98cfbc9796..f591205272b9d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.151" +version = "0.2.152" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 20543d69bcb0f..e715a98391fce 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc-test" -version = "0.2.151" +version = "0.2.152" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" build = "build.rs" @@ -12,7 +12,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.151" +version = "0.2.152" default-features = false [build-dependencies] From 501a37e6eaa424191e5a212571fed6e508a8b36f Mon Sep 17 00:00:00 2001 From: Aphek Date: Fri, 12 Jan 2024 12:17:34 -0300 Subject: [PATCH 0002/1228] Add SOMAXCONN constant to vita (cherry picked from commit ef9461088b8d7b6b445fa302c3370d6a8823b9ab) --- src/unix/newlib/vita/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/newlib/vita/mod.rs b/src/unix/newlib/vita/mod.rs index e80f061ea0ce5..d4c6955f36153 100644 --- a/src/unix/newlib/vita/mod.rs +++ b/src/unix/newlib/vita/mod.rs @@ -94,6 +94,8 @@ pub const SOCK_RAW: ::c_int = 3; pub const SOCK_RDM: ::c_int = 4; pub const SOCK_SEQPACKET: ::c_int = 5; +pub const SOMAXCONN: ::c_int = 128; + pub const FIONBIO: ::c_ulong = 1; pub const POLLIN: ::c_short = 0x0001; From 941f82557a6e21186cd0158554b1e035773f0151 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Wed, 24 Jan 2024 01:20:50 +0900 Subject: [PATCH 0003/1228] Fix CI for v0.2 --- .github/workflows/bors.yml | 372 ---------------------------------- .github/workflows/full_ci.yml | 14 +- 2 files changed, 1 insertion(+), 385 deletions(-) delete mode 100644 .github/workflows/bors.yml diff --git a/.github/workflows/bors.yml b/.github/workflows/bors.yml deleted file mode 100644 index 6ecf7c83ffe74..0000000000000 --- a/.github/workflows/bors.yml +++ /dev/null @@ -1,372 +0,0 @@ -name: CI (bors) - -on: - push: - branches: - - auto-libc - - try - -permissions: {} -jobs: - docker_linux_tier1: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Docker Linux Tier1 - runs-on: ubuntu-22.04 - strategy: - fail-fast: true - matrix: - target: [ - i686-unknown-linux-gnu, - x86_64-unknown-linux-gnu, - ] - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - - name: Execute run-docker.sh - run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }} - - macos: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: macOS - runs-on: macos-13 - strategy: - fail-fast: true - matrix: - target: [ - x86_64-apple-darwin, - ] - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - - name: Execute run.sh - run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }} - - windows: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Windows - runs-on: windows-2022 - env: - OS: windows - strategy: - fail-fast: true - matrix: - include: - - target: x86_64-pc-windows-gnu - env: - ARCH_BITS: 64 - ARCH: x86_64 - - target: x86_64-pc-windows-msvc - - target: i686-pc-windows-gnu - env: - ARCH_BITS: 32 - ARCH: i686 - - target: i686-pc-windows-msvc - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Self-update rustup - run: rustup self update - shell: bash - - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - shell: bash - - name: Execute run.sh - run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }} - shell: bash - - style_check: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Style check - runs-on: ubuntu-22.04 - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: sh ./ci/install-rust.sh - - name: Check style - run: sh ci/style.sh - - docker_linux_tier2: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Docker Linux Tier2 - needs: [docker_linux_tier1, style_check] - runs-on: ubuntu-22.04 - strategy: - fail-fast: true - max-parallel: 12 - matrix: - target: [ - aarch64-linux-android, - aarch64-unknown-linux-gnu, - aarch64-unknown-linux-musl, - arm-linux-androideabi, - arm-unknown-linux-gnueabihf, - arm-unknown-linux-musleabihf, - i686-linux-android, - i686-unknown-linux-musl, - powerpc-unknown-linux-gnu, - powerpc64-unknown-linux-gnu, - powerpc64le-unknown-linux-gnu, - s390x-unknown-linux-gnu, - riscv64gc-unknown-linux-gnu, - # FIXME: A recent nightly causes a linker failure: - # https://github.com/rust-lang/rust/issues/76679 - # See this comment for more details: - # https://github.com/rust-lang/libc/pull/2225#issuecomment-880696737 - #wasm32-wasi, - sparc64-unknown-linux-gnu, - wasm32-unknown-emscripten, - x86_64-linux-android, - # FIXME: Exec format error (os error 8) - #x86_64-unknown-linux-gnux32, - x86_64-unknown-linux-musl, - # FIXME: It seems some items in `src/unix/mod.rs` - # aren't defined on redox actually. - # x86_64-unknown-redox, - ] - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - - name: Execute run-docker.sh - run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }} - - # These targets are tier 3 or otherwise need to have CI build std via -Zbuild-std. - # Because of this, only the nightly compiler can be used on these targets. - docker_linux_build_std: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - if: ${{ false }} # This is currently broken - name: Docker Linux Build-Std Targets - needs: [docker_linux_tier1, style_check] - runs-on: ubuntu-22.04 - strategy: - fail-fast: true - max-parallel: 12 - matrix: - target: [ - armv7-unknown-linux-uclibceabihf - ] - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TOOLCHAIN=nightly INSTALL_RUST_SRC=1 sh ./ci/install-rust.sh - - name: Execute run-docker.sh - run: LIBC_CI=1 TOOLCHAIN=nightly LIBC_CI_ZBUILD_STD=1 sh ./ci/run-docker.sh ${{ matrix.target }} - - # devkitpro's pacman needs to be connected from Docker. - docker_switch: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Docker Switch - needs: [docker_linux_tier1, style_check] - runs-on: ubuntu-22.04 - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: sh ./ci/install-rust.sh - - name: Execute run-docker.sh - run: LIBC_CI=1 sh ./ci/run-docker.sh switch - - build_channels_linux: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Build Channels Linux - needs: docker_linux_tier2 - runs-on: ubuntu-22.04 - env: - OS: linux - strategy: - fail-fast: true - max-parallel: 5 - matrix: - toolchain: [ - stable, - beta, - nightly, - # FIXME: Disabled due to: - # error: failed to parse registry's information for: serde - #1.13.0, - 1.19.0, - 1.24.0, - 1.25.0, - 1.30.0, - ] - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/install-rust.sh - - name: Execute build.sh - run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh - - build_channels_macos: - permissions: - contents: read # to fetch code (actions/checkout) - - name: Build Channels macOS - needs: macos - env: - OS: macos - strategy: - fail-fast: true - max-parallel: 4 - matrix: - target: - - { toolchain: stable, os: macos-13 } - - { toolchain: beta, os: macos-13 } - - { toolchain: nightly, os: macos-13 } - # Use macOS 11 for older toolchains as newer Xcode donesn't work well. - # FIXME: Disabled due to: - # error: failed to parse registry's information for: serde - #- { toolchain: 1.13.0, os: macos-11 } - - { toolchain: 1.19.0, os: macos-11 } - - { toolchain: 1.24.0, os: macos-11 } - - { toolchain: 1.25.0, os: macos-11 } - - { toolchain: 1.30.0, os: macos-11 } - runs-on: ${{ matrix.target.os }} - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TOOLCHAIN=${{ matrix.target.toolchain }} sh ./ci/install-rust.sh - - name: Execute build.sh - run: LIBC_CI=1 TOOLCHAIN=${{ matrix.target.toolchain }} sh ./ci/build.sh - - build_channels_windows: - permissions: - contents: read # to fetch code (actions/checkout) - - name: Build Channels Windows - runs-on: windows-2022 - env: - OS: windows - strategy: - fail-fast: true - matrix: - toolchain: [ - 1.19.0, - 1.24.0, - 1.25.0, - 1.30.0, - stable, - ] - steps: - - uses: actions/checkout@v4 - - name: Self-update rustup - run: rustup self update - shell: bash - - name: Execute build.sh - run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh - shell: bash - - check_cfg: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: "Check #[cfg]s" - runs-on: ubuntu-22.04 - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TOOLCHAIN=nightly sh ./ci/install-rust.sh - - name: Build with check-cfg - run: LIBC_CI=1 LIBC_CHECK_CFG=1 cargo build -Z unstable-options -Z check-cfg - - # These jobs doesn't actually test anything, but they're only used to tell - # bors the build completed, as there is no practical way to detect when a - # workflow is successful listening to webhooks only. - # - # ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB! - - end_success: - name: bors build finished - if: github.event.pusher.name == 'bors' && success() - runs-on: ubuntu-22.04 - needs: [ - docker_linux_tier1, - docker_linux_tier2, - #docker_linux_build_std, - macos, - windows, - style_check, - docker_switch, - build_channels_linux, - build_channels_macos, - build_channels_windows, - ] - - steps: - - name: Mark the job as successful - run: exit 0 - - end_failure: - name: bors build finished - if: github.event.pusher.name == 'bors' && (failure() || cancelled()) - runs-on: ubuntu-22.04 - needs: [ - docker_linux_tier1, - docker_linux_tier2, - #docker_linux_build_std, - macos, - windows, - style_check, - docker_switch, - build_channels_linux, - build_channels_macos, - build_channels_windows, - ] - - steps: - - name: Mark the job as a failure - run: exit 1 diff --git a/.github/workflows/full_ci.yml b/.github/workflows/full_ci.yml index a83375753f8cf..605802d3c9301 100644 --- a/.github/workflows/full_ci.yml +++ b/.github/workflows/full_ci.yml @@ -5,12 +5,9 @@ on: pull_request: branches: - libc-0.2 - types: - - labeled jobs: docker_linux_tier1: - if: github.event.label.name == 'libc-0.2-pre-merge-ci' permissions: contents: read # to fetch code (actions/checkout) @@ -31,7 +28,6 @@ jobs: run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }} macos: - if: github.event.label.name == 'libc-0.2-pre-merge-ci' permissions: contents: read # to fetch code (actions/checkout) @@ -51,7 +47,6 @@ jobs: run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }} windows: - if: github.event.label.name == 'libc-0.2-pre-merge-ci' permissions: contents: read # to fetch code (actions/checkout) @@ -86,7 +81,6 @@ jobs: shell: bash style_check: - if: github.event.label.name == 'libc-0.2-pre-merge-ci' permissions: contents: read # to fetch code (actions/checkout) @@ -100,7 +94,6 @@ jobs: run: sh ci/style.sh docker_linux_tier2: - if: github.event.label.name == 'libc-0.2-pre-merge-ci' permissions: contents: read # to fetch code (actions/checkout) @@ -173,7 +166,6 @@ jobs: # devkitpro's pacman needs to be connected from Docker. docker_switch: - if: github.event.label.name == 'libc-0.2-pre-merge-ci' permissions: contents: read # to fetch code (actions/checkout) @@ -188,7 +180,6 @@ jobs: run: LIBC_CI=1 sh ./ci/run-docker.sh switch build_channels_linux: - if: github.event.label.name == 'libc-0.2-pre-merge-ci' permissions: contents: read # to fetch code (actions/checkout) @@ -221,7 +212,6 @@ jobs: run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh build_channels_macos: - if: github.event.label.name == 'libc-0.2-pre-merge-ci' permissions: contents: read # to fetch code (actions/checkout) @@ -254,7 +244,6 @@ jobs: run: LIBC_CI=1 TOOLCHAIN=${{ matrix.target.toolchain }} sh ./ci/build.sh build_channels_windows: - if: github.event.label.name == 'libc-0.2-pre-merge-ci' permissions: contents: read # to fetch code (actions/checkout) @@ -282,7 +271,6 @@ jobs: shell: bash check_cfg: - if: github.event.label.name == 'libc-0.2-pre-merge-ci' permissions: contents: read # to fetch code (actions/checkout) @@ -298,7 +286,7 @@ jobs: # One job that "summarizes" the success state of this pipeline. This can then be added to branch # protection, rather than having to add each job separately. success: - name: Success + name: success runs-on: ubuntu-22.04 needs: [ docker_linux_tier1, From 8b68569939151c1390ee8b7ffcc0772f517d6ecd Mon Sep 17 00:00:00 2001 From: rusty-snake <41237666+rusty-snake@users.noreply.github.com> Date: Sat, 20 Jan 2024 15:18:30 +0100 Subject: [PATCH 0004/1228] Add MFD_NOEXEC_SEAL and MFD_EXEC --- libc-test/build.rs | 4 ++++ libc-test/semver/android.txt | 2 ++ libc-test/semver/linux.txt | 2 ++ src/unix/linux_like/android/mod.rs | 2 ++ src/unix/linux_like/linux/mod.rs | 2 ++ 5 files changed, 12 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 1b65d65f95ec9..b505a93e96ae6 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3786,6 +3786,10 @@ fn test_linux(target: &str) { if name.starts_with("NI_IDN") { return true; } + // FIXME: Requires >= 6.3 kernel headers + if name == "MFD_NOEXEC_SEAL" || name == "MFD_EXEC" { + return true; + } } match name { // These constants are not available if gnu headers have been included diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index f0e4358d37c62..901b7ca768d41 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -1214,7 +1214,9 @@ 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 diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index ff82d18b355ee..f14476525db06 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1448,7 +1448,9 @@ 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 diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 94c4eace85539..484d0ab4724a8 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -2275,6 +2275,8 @@ pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; pub const MFD_CLOEXEC: ::c_uint = 0x0001; pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002; pub const MFD_HUGETLB: ::c_uint = 0x0004; +pub const MFD_NOEXEC_SEAL: ::c_uint = 0x0008; +pub const MFD_EXEC: ::c_uint = 0x0010; pub const MFD_HUGE_64KB: ::c_uint = 0x40000000; pub const MFD_HUGE_512KB: ::c_uint = 0x4c000000; pub const MFD_HUGE_1MB: ::c_uint = 0x50000000; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index acb10c603f725..cbb3f7bdf5fe8 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2433,6 +2433,8 @@ pub const CMSPAR: ::tcflag_t = 0o10000000000; pub const MFD_CLOEXEC: ::c_uint = 0x0001; pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002; pub const MFD_HUGETLB: ::c_uint = 0x0004; +pub const MFD_NOEXEC_SEAL: ::c_uint = 0x0008; +pub const MFD_EXEC: ::c_uint = 0x0010; pub const MFD_HUGE_64KB: ::c_uint = 0x40000000; pub const MFD_HUGE_512KB: ::c_uint = 0x4c000000; pub const MFD_HUGE_1MB: ::c_uint = 0x50000000; From 738f9014cc9ca67b3c59d8c74d7e4cbbd837df77 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Thu, 11 Jan 2024 16:18:42 +0100 Subject: [PATCH 0005/1228] Add missing constants for Android --- src/unix/linux_like/android/mod.rs | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 94c4eace85539..b213e6daf0d56 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3468,6 +3468,37 @@ pub const NET_DCCP: ::c_int = 20; pub const HUGETLB_FLAG_ENCODE_SHIFT: ::c_int = 26; pub const MAP_HUGE_SHIFT: ::c_int = HUGETLB_FLAG_ENCODE_SHIFT; +// include/linux/sched.h +pub const PF_VCPU: ::c_int = 0x00000001; +pub const PF_IDLE: ::c_int = 0x00000002; +pub const PF_EXITING: ::c_int = 0x00000004; +pub const PF_POSTCOREDUMP: ::c_int = 0x00000008; +pub const PF_IO_WORKER: ::c_int = 0x00000010; +pub const PF_WQ_WORKER: ::c_int = 0x00000020; +pub const PF_FORKNOEXEC: ::c_int = 0x00000040; +pub const PF_MCE_PROCESS: ::c_int = 0x00000080; +pub const PF_SUPERPRIV: ::c_int = 0x00000100; +pub const PF_DUMPCORE: ::c_int = 0x00000200; +pub const PF_SIGNALED: ::c_int = 0x00000400; +pub const PF_MEMALLOC: ::c_int = 0x00000800; +pub const PF_NPROC_EXCEEDED: ::c_int = 0x00001000; +pub const PF_USED_MATH: ::c_int = 0x00002000; +pub const PF_USER_WORKER: ::c_int = 0x00004000; +pub const PF_NOFREEZE: ::c_int = 0x00008000; + +pub const PF_KSWAPD: ::c_int = 0x00020000; +pub const PF_MEMALLOC_NOFS: ::c_int = 0x00040000; +pub const PF_MEMALLOC_NOIO: ::c_int = 0x00080000; +pub const PF_LOCAL_THROTTLE: ::c_int = 0x00100000; +pub const PF_KTHREAD: ::c_int = 0x00200000; +pub const PF_RANDOMIZE: ::c_int = 0x00400000; + +pub const PF_NO_SETAFFINITY: ::c_int = 0x04000000; +pub const PF_MCE_EARLY: ::c_int = 0x08000000; +pub const PF_MEMALLOC_PIN: ::c_int = 0x10000000; + +pub const PF_SUSPEND_TASK: ::c_int = 0x80000000; + // Most `*_SUPER_MAGIC` constants are defined at the `linux_like` level; the // following are only available on newer Linux versions than the versions // currently used in CI in some configurations, so we define them here. From d5d370016f3e050c02ff577763d1447e4d9616bb Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Sun, 14 Jan 2024 15:23:08 +0100 Subject: [PATCH 0006/1228] Ignore some android constants not found in tests --- libc-test/build.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 1b65d65f95ec9..841c7cfe66335 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1912,6 +1912,34 @@ fn test_android(target: &str) { // FIXME: The value has been changed on r26b: | "SYS_syscalls" if aarch64 => true, + // From ``. + | "PF_VCPU" + | "PF_IDLE" + | "PF_EXITING" + | "PF_POSTCOREDUMP" + | "PF_IO_WORKER" + | "PF_WQ_WORKER" + | "PF_FORKNOEXEC" + | "PF_SUPERPRIV" + | "PF_DUMPCORE" + | "PF_MCE_PROCESS" + | "PF_SIGNALED" + | "PF_MEMALLOC" + | "PF_NPROC_EXCEEDED" + | "PF_USED_MATH" + | "PF_USER_WORKER" + | "PF_NOFREEZE" + | "PF_KSWAPD" + | "PF_MEMALLOC_NOFS" + | "PF_MEMALLOC_NOIO" + | "PF_LOCAL_THROTTLE" + | "PF_KTHREAD" + | "PF_RANDOMIZE" + | "PF_NO_SETAFFINITY" + | "PF_MCE_EARLY" + | "PF_MEMALLOC_PIN" + | "PF_SUSPEND_TASK" => true, + _ => false, } }); From 3726d147662f0357bb2bbb6b8b255aac1504c725 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Mon, 22 Jan 2024 13:37:28 +0100 Subject: [PATCH 0007/1228] Update crate version to 0.2.153 --- Cargo.toml | 2 +- libc-test/Cargo.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f591205272b9d..b29a475a4d7b8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.152" +version = "0.2.153" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index e715a98391fce..a9ae85e857fa5 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc-test" -version = "0.2.152" +version = "0.2.153" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" build = "build.rs" @@ -12,7 +12,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.152" +version = "0.2.153" default-features = false [build-dependencies] From 9a074313961e93a0f38fab26b72a4fc393ed1148 Mon Sep 17 00:00:00 2001 From: WANG Rui Date: Wed, 17 Jan 2024 14:36:31 +0800 Subject: [PATCH 0008/1228] Add ioctl FS_IOC_{G,S}{ETVERSION,ETFLAGS} for LoongArch64 --- src/unix/linux_like/linux/arch/generic/mod.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index b8e459631e49f..83f97fbd92936 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -227,7 +227,11 @@ cfg_if! { pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x40046602; pub const FS_IOC32_GETVERSION: ::Ioctl = 0x80047601; pub const FS_IOC32_SETVERSION: ::Ioctl = 0x40047602; - } else if #[cfg(any(target_arch = "x86_64", target_arch = "riscv64", target_arch = "aarch64", target_arch = "s390x"))] { + } else if #[cfg(any(target_arch = "x86_64", + target_arch = "riscv64", + target_arch = "aarch64", + target_arch = "s390x", + target_arch = "loongarch64"))] { pub const FS_IOC_GETFLAGS: ::Ioctl = 0x80086601; pub const FS_IOC_SETFLAGS: ::Ioctl = 0x40086602; pub const FS_IOC_GETVERSION: ::Ioctl = 0x80087601; From 5316a1196df9670c513af992dc0ecb8ee66c08dc Mon Sep 17 00:00:00 2001 From: Dirreke Date: Thu, 1 Feb 2024 21:45:11 +0800 Subject: [PATCH 0009/1228] [Backport #3547] Add ioctl FS_IOC_{G,S}{ETVERSION,ETFLAGS} for CSKY --- src/unix/linux_like/linux/arch/generic/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index 83f97fbd92936..2f437e16db26a 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -218,7 +218,7 @@ cfg_if! { // where S stands for size (int, long, struct...) // where T stands for type ('f','v','X'...) // where N stands for NR (NumbeR) - if #[cfg(any(target_arch = "x86", target_arch = "arm"))] { + if #[cfg(any(target_arch = "x86", target_arch = "arm", target_arch = "csky"))] { pub const FS_IOC_GETFLAGS: ::Ioctl = 0x80046601; pub const FS_IOC_SETFLAGS: ::Ioctl = 0x40046602; pub const FS_IOC_GETVERSION: ::Ioctl = 0x80047601; From 8bc1512c5f272b7478607e6be624f92527dc641d Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 18 Feb 2024 21:46:22 +0900 Subject: [PATCH 0010/1228] Fix CI on v0.2 --- .github/workflows/full_ci.yml | 8 ++++---- .github/workflows/main.yml | 8 ++++---- libc-test/build.rs | 5 +++++ 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/.github/workflows/full_ci.yml b/.github/workflows/full_ci.yml index 605802d3c9301..f3067925da2bf 100644 --- a/.github/workflows/full_ci.yml +++ b/.github/workflows/full_ci.yml @@ -63,10 +63,10 @@ jobs: ARCH_BITS: 64 ARCH: x86_64 - target: x86_64-pc-windows-msvc - - target: i686-pc-windows-gnu - env: - ARCH_BITS: 32 - ARCH: i686 + #- target: i686-pc-windows-gnu + # env: + # ARCH_BITS: 32 + # ARCH: i686 - target: i686-pc-windows-msvc steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c7784fc117df9..d22a4a19cc565 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -58,10 +58,10 @@ jobs: ARCH_BITS: 64 ARCH: x86_64 - target: x86_64-pc-windows-msvc - - target: i686-pc-windows-gnu - env: - ARCH_BITS: 32 - ARCH: i686 + #- target: i686-pc-windows-gnu + # env: + # ARCH_BITS: 32 + # ARCH: i686 - target: i686-pc-windows-msvc steps: - uses: actions/checkout@v4 diff --git a/libc-test/build.rs b/libc-test/build.rs index 782a65b749152..77be86299ab18 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -312,6 +312,8 @@ fn test_apple(target: &str) { // it is a moving target, changing through versions // also contains bitfields members "tcp_connection_info" => true, + // FIXME: The size is changed in recent macOSes. + "malloc_introspection_t" => true, _ => false, } @@ -2468,6 +2470,9 @@ fn test_freebsd(target: &str) { true } + // FIXME: Removed in FreeBSD 15: + "LOCAL_CONNWAIT" if freebsd_ver >= Some(15) => true, + _ => false, } }); From 614cfe182c9cbdd49af447092fba136ea0e93392 Mon Sep 17 00:00:00 2001 From: Xeonacid Date: Sun, 11 Feb 2024 12:18:27 +0800 Subject: [PATCH 0011/1228] Add Linux riscv64 HWCAP defines From https://elixir.bootlin.com/linux/latest/source/arch/riscv/include/uapi/asm/hwcap.h Signed-off-by: Xeonacid --- libc-test/build.rs | 1 + libc-test/semver/linux-riscv64gc.txt | 7 +++++++ src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs | 8 ++++++++ 3 files changed, 16 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 77be86299ab18..0d52a86053b80 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3448,6 +3448,7 @@ fn test_linux(target: &str) { // Include linux headers at the end: headers! { cfg: + [riscv64]: "asm/hwcap.h", "asm/mman.h", [gnu]: "linux/aio_abi.h", "linux/can.h", diff --git a/libc-test/semver/linux-riscv64gc.txt b/libc-test/semver/linux-riscv64gc.txt index cc4d97fe6fa51..4f270540cc3a2 100644 --- a/libc-test/semver/linux-riscv64gc.txt +++ b/libc-test/semver/linux-riscv64gc.txt @@ -69,3 +69,10 @@ TIOCSRS485 flock64 fsblkcnt64_t fsfilcnt64_t +COMPAT_HWCAP_ISA_I +COMPAT_HWCAP_ISA_M +COMPAT_HWCAP_ISA_A +COMPAT_HWCAP_ISA_F +COMPAT_HWCAP_ISA_D +COMPAT_HWCAP_ISA_C +COMPAT_HWCAP_ISA_V diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index 8e06a135baa42..64f5cf10f8583 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -540,6 +540,14 @@ pub const REG_A0: usize = 10; pub const REG_S2: usize = 18; pub const REG_NARGS: usize = 8; +pub const COMPAT_HWCAP_ISA_I: ::c_ulong = 1 << (b'I' - b'A'); +pub const COMPAT_HWCAP_ISA_M: ::c_ulong = 1 << (b'M' - b'A'); +pub const COMPAT_HWCAP_ISA_A: ::c_ulong = 1 << (b'A' - b'A'); +pub const COMPAT_HWCAP_ISA_F: ::c_ulong = 1 << (b'F' - b'A'); +pub const COMPAT_HWCAP_ISA_D: ::c_ulong = 1 << (b'D' - b'A'); +pub const COMPAT_HWCAP_ISA_C: ::c_ulong = 1 << (b'C' - b'A'); +pub const COMPAT_HWCAP_ISA_V: ::c_ulong = 1 << (b'V' - b'A'); + pub const SYS_read: ::c_long = 63; pub const SYS_write: ::c_long = 64; pub const SYS_close: ::c_long = 57; From 6630e098af043b694fe2bdc75c0bc22e84389aa0 Mon Sep 17 00:00:00 2001 From: Henry Chen Date: Sun, 18 Feb 2024 17:07:50 +0800 Subject: [PATCH 0012/1228] add missing MIPS R6 FS_IOC_* definitions --- src/unix/linux_like/linux/arch/mips/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index 7699677026f2b..6a96aa9c3b159 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -200,7 +200,7 @@ cfg_if! { // where S stands for size (int, long, struct...) // where T stands for type ('f','v','X'...) // where N stands for NR (NumbeR) - if #[cfg(target_arch = "mips")] { + if #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] { pub const FS_IOC_GETFLAGS: ::Ioctl = 0x40046601; pub const FS_IOC_SETFLAGS: ::Ioctl = 0x80046602; pub const FS_IOC_GETVERSION: ::Ioctl = 0x40047601; @@ -209,7 +209,7 @@ cfg_if! { pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; - } else if #[cfg(target_arch = "mips64")] { + } else if #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))] { pub const FS_IOC_GETFLAGS: ::Ioctl = 0x40086601; pub const FS_IOC_SETFLAGS: ::Ioctl = 0x80086602; pub const FS_IOC_GETVERSION: ::Ioctl = 0x40087601; From a6707ab7462f293f155b8e5d250f415dba6fb5a6 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Tue, 27 Feb 2024 16:05:34 -0800 Subject: [PATCH 0013/1228] Support posix_spawn on Android Android exposes the same functions and constants as the other linux_like platforms, but its posix_spawnattr_t and posix_spawn_file_actions_t are opaque. See: https://github.com/aosp-mirror/platform_bionic/blob/2215ad406b253f12e270cdd0876e19e9df2aa6d4/libc/include/spawn.h Since the fields in the linux implementation are private, let's make it opaque on all linux_like platforms. --- libc-test/build.rs | 36 ++++++++-- src/unix/linux_like/linux/mod.rs | 105 ---------------------------- src/unix/linux_like/mod.rs | 116 +++++++++++++++++++++++++++++++ 3 files changed, 147 insertions(+), 110 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 0d52a86053b80..0d0c197ab2ea8 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1613,6 +1613,7 @@ fn test_android(target: &str) { "sched.h", "semaphore.h", "signal.h", + "spawn.h", "stddef.h", "stdint.h", "stdio.h", @@ -1979,14 +1980,30 @@ fn test_android(target: &str) { // Added in API level 28, but some tests use level 24. "getrandom" => true, - - // Added in API level 28, but some tests use level 24. "syncfs" => true, - - // Added in API level 28, but some tests use level 24. "pthread_attr_getinheritsched" | "pthread_attr_setinheritsched" => true, - // Added in API level 28, but some tests use level 24. "fread_unlocked" | "fwrite_unlocked" | "fgets_unlocked" | "fflush_unlocked" => true, + "posix_spawn" + | "posix_spawnp" + | "posix_spawnattr_init" + | "posix_spawnattr_destroy" + | "posix_spawnattr_getsigdefault" + | "posix_spawnattr_setsigdefault" + | "posix_spawnattr_getsigmask" + | "posix_spawnattr_setsigmask" + | "posix_spawnattr_getflags" + | "posix_spawnattr_setflags" + | "posix_spawnattr_getpgroup" + | "posix_spawnattr_setpgroup" + | "posix_spawnattr_getschedpolicy" + | "posix_spawnattr_setschedpolicy" + | "posix_spawnattr_getschedparam" + | "posix_spawnattr_setschedparam" + | "posix_spawn_file_actions_init" + | "posix_spawn_file_actions_destroy" + | "posix_spawn_file_actions_addopen" + | "posix_spawn_file_actions_addclose" + | "posix_spawn_file_actions_adddup2" => true, // FIXME: bad function pointers: "isalnum" | "isalpha" | "iscntrl" | "isdigit" | "isgraph" | "islower" | "isprint" @@ -2706,6 +2723,7 @@ fn test_emscripten(target: &str) { "semaphore.h", "shadow.h", "signal.h", + "spawn.h", "stddef.h", "stdint.h", "stdio.h", @@ -3597,6 +3615,10 @@ fn test_linux(target: &str) { "priority_t" if musl => true, "name_t" if musl => true, + // These are intended to be opaque, but glibc and musl define them. + "posix_spawn_file_actions_t" => true, + "posix_spawnattr_t" => true, + t => { if musl { // LFS64 types have been removed in musl 1.2.4+ @@ -3745,6 +3767,10 @@ fn test_linux(target: &str) { // kernel so we can drop this and test the type once this new version is used in CI. "sched_attr" => true, + // These are intended to be opaque, but glibc and musl define them. + "posix_spawn_file_actions_t" => true, + "posix_spawnattr_t" => true, + _ => false, } }); diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index cbb3f7bdf5fe8..e8fb33d2c40d6 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -452,26 +452,6 @@ s! { pub mnt_passno: ::c_int, } - pub struct posix_spawn_file_actions_t { - __allocated: ::c_int, - __used: ::c_int, - __actions: *mut ::c_int, - __pad: [::c_int; 16], - } - - pub struct posix_spawnattr_t { - __flags: ::c_short, - __pgrp: ::pid_t, - __sd: ::sigset_t, - __ss: ::sigset_t, - #[cfg(any(target_env = "musl", target_env = "ohos"))] - __prio: ::c_int, - #[cfg(not(any(target_env = "musl", target_env = "ohos")))] - __sp: ::sched_param, - __policy: ::c_int, - __pad: [::c_int; 16], - } - pub struct genlmsghdr { pub cmd: u8, pub version: u8, @@ -1858,8 +1838,6 @@ pub const POSIX_MADV_NORMAL: ::c_int = 0; pub const POSIX_MADV_RANDOM: ::c_int = 1; pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; pub const POSIX_MADV_WILLNEED: ::c_int = 3; -pub const POSIX_SPAWN_USEVFORK: ::c_int = 64; -pub const POSIX_SPAWN_SETSID: ::c_int = 128; pub const S_IEXEC: mode_t = 64; pub const S_IWRITE: mode_t = 128; @@ -2617,13 +2595,6 @@ 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 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_SETSCHEDPARAM: ::c_int = 0x10; -pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x20; - pub const NLMSG_NOOP: ::c_int = 0x1; pub const NLMSG_ERROR: ::c_int = 0x2; pub const NLMSG_DONE: ::c_int = 0x3; @@ -5453,82 +5424,6 @@ extern "C" { pub fn endmntent(streamp: *mut ::FILE) -> ::c_int; pub fn hasmntopt(mnt: *const ::mntent, opt: *const ::c_char) -> *mut ::c_char; - 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; pub fn fread_unlocked( buf: *mut ::c_void, size: ::size_t, diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 35c7598c911d8..8f71782dce058 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -6,6 +6,13 @@ pub type timer_t = *mut ::c_void; pub type key_t = ::c_int; pub type id_t = ::c_uint; +cfg_if! { + if #[cfg(not(target_os = "emscripten"))] { + pub type posix_spawn_file_actions_t = *mut ::c_void; + pub type posix_spawnattr_t = *mut ::c_void; + } +} + missing! { #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} @@ -1531,6 +1538,19 @@ cfg_if! { } } +cfg_if! { + if #[cfg(not(target_os = "emscripten"))] { + 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_SETSCHEDPARAM: ::c_int = 0x10; + pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x20; + pub const POSIX_SPAWN_USEVFORK: ::c_int = 0x40; + pub const POSIX_SPAWN_SETSID: ::c_int = 0x80; + } +} + const_fn! { {const} fn CMSG_ALIGN(len: usize) -> usize { len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) @@ -1880,6 +1900,102 @@ cfg_if! { } } +cfg_if! { + if #[cfg(not(target_os = "emscripten"))] { + extern "C" { + 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; + } + } +} + cfg_if! { if #[cfg(target_os = "emscripten")] { mod emscripten; From f94afd8b9594c36d5f849862d172cf4998037798 Mon Sep 17 00:00:00 2001 From: WANG Rui Date: Thu, 18 Jan 2024 14:17:02 +0800 Subject: [PATCH 0014/1228] Fix libc-tests for loongarch64 hwcaps --- libc-test/build.rs | 2 ++ .../linux/gnu/b64/loongarch64/mod.rs | 28 +++++++++---------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 0d0c197ab2ea8..a156c2694e7c4 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3344,6 +3344,7 @@ fn test_linux(target: &str) { let gnueabihf = target.contains("gnueabihf"); let x86_64_gnux32 = target.contains("gnux32") && x86_64; let riscv64 = target.contains("riscv64"); + let loongarch64 = target.contains("loongarch64"); let uclibc = target.contains("uclibc"); let mut cfg = ctest_cfg(); @@ -3466,6 +3467,7 @@ fn test_linux(target: &str) { // Include linux headers at the end: headers! { cfg: + [loongarch64]: "asm/hwcap.h", [riscv64]: "asm/hwcap.h", "asm/mman.h", [gnu]: "linux/aio_abi.h", diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs index 3e1719a76db79..ac3f88905f38e 100644 --- a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs @@ -264,20 +264,20 @@ align_const! { }; } -pub const HWCAP_CPUCFG: ::c_ulong = 1 << 0; -pub const HWCAP_LAM: ::c_ulong = 1 << 1; -pub const HWCAP_UAL: ::c_ulong = 1 << 2; -pub const HWCAP_FPU: ::c_ulong = 1 << 3; -pub const HWCAP_LSX: ::c_ulong = 1 << 4; -pub const HWCAP_LASX: ::c_ulong = 1 << 5; -pub const HWCAP_CRC32: ::c_ulong = 1 << 6; -pub const HWCAP_COMPLEX: ::c_ulong = 1 << 7; -pub const HWCAP_CRYPTO: ::c_ulong = 1 << 8; -pub const HWCAP_LVZ: ::c_ulong = 1 << 9; -pub const HWCAP_LBT_X86: ::c_ulong = 1 << 10; -pub const HWCAP_LBT_ARM: ::c_ulong = 1 << 11; -pub const HWCAP_LBT_MIPS: ::c_ulong = 1 << 12; -pub const HWCAP_PTW: ::c_ulong = 1 << 13; +pub const HWCAP_LOONGARCH_CPUCFG: ::c_ulong = 1 << 0; +pub const HWCAP_LOONGARCH_LAM: ::c_ulong = 1 << 1; +pub const HWCAP_LOONGARCH_UAL: ::c_ulong = 1 << 2; +pub const HWCAP_LOONGARCH_FPU: ::c_ulong = 1 << 3; +pub const HWCAP_LOONGARCH_LSX: ::c_ulong = 1 << 4; +pub const HWCAP_LOONGARCH_LASX: ::c_ulong = 1 << 5; +pub const HWCAP_LOONGARCH_CRC32: ::c_ulong = 1 << 6; +pub const HWCAP_LOONGARCH_COMPLEX: ::c_ulong = 1 << 7; +pub const HWCAP_LOONGARCH_CRYPTO: ::c_ulong = 1 << 8; +pub const HWCAP_LOONGARCH_LVZ: ::c_ulong = 1 << 9; +pub const HWCAP_LOONGARCH_LBT_X86: ::c_ulong = 1 << 10; +pub const HWCAP_LOONGARCH_LBT_ARM: ::c_ulong = 1 << 11; +pub const HWCAP_LOONGARCH_LBT_MIPS: ::c_ulong = 1 << 12; +pub const HWCAP_LOONGARCH_PTW: ::c_ulong = 1 << 13; pub const SYS_io_setup: ::c_long = 0; pub const SYS_io_destroy: ::c_long = 1; From dc4090488b290caec2b3fe931eae1fb188452d68 Mon Sep 17 00:00:00 2001 From: WANG Rui Date: Thu, 18 Jan 2024 15:07:51 +0800 Subject: [PATCH 0015/1228] Fix libc-tests for loongarch64 syscall --- libc-test/semver/linux-aarch64.txt | 2 ++ libc-test/semver/linux-i686.txt | 2 ++ libc-test/semver/linux-mips.txt | 2 ++ libc-test/semver/linux-powerpc.txt | 2 ++ libc-test/semver/linux-powerpc64.txt | 2 ++ libc-test/semver/linux-powerpc64le.txt | 2 ++ libc-test/semver/linux-riscv64gc.txt | 2 ++ libc-test/semver/linux-s390x.txt | 2 ++ libc-test/semver/linux-sparc64.txt | 2 ++ libc-test/semver/linux-x86_64.txt | 2 ++ libc-test/semver/linux.txt | 2 -- 11 files changed, 20 insertions(+), 2 deletions(-) diff --git a/libc-test/semver/linux-aarch64.txt b/libc-test/semver/linux-aarch64.txt index 5714299010e9e..a4ab1b2e568e0 100644 --- a/libc-test/semver/linux-aarch64.txt +++ b/libc-test/semver/linux-aarch64.txt @@ -66,6 +66,7 @@ SKF_NET_OFF SO_PRIORITY SO_PROTOCOL SYS_accept +SYS_fstat SYS_msgctl SYS_msgget SYS_msgrcv @@ -79,6 +80,7 @@ SYS_semctl SYS_semget SYS_semop SYS_semtimedop +SYS_setrlimit SYS_shmat SYS_shmctl SYS_shmdt diff --git a/libc-test/semver/linux-i686.txt b/libc-test/semver/linux-i686.txt index 97e9f741a8929..a14498adc8396 100644 --- a/libc-test/semver/linux-i686.txt +++ b/libc-test/semver/linux-i686.txt @@ -96,6 +96,7 @@ SYS_fadvise64_64 SYS_fchown32 SYS_fcntl64 SYS_fork +SYS_fstat SYS_fstat64 SYS_fstatat64 SYS_fstatfs64 @@ -165,6 +166,7 @@ SYS_setregid32 SYS_setresgid32 SYS_setresuid32 SYS_setreuid32 +SYS_setrlimit SYS_setuid32 SYS_sgetmask SYS_sigaction diff --git a/libc-test/semver/linux-mips.txt b/libc-test/semver/linux-mips.txt index 80aa25a60bf84..62da7368b5587 100644 --- a/libc-test/semver/linux-mips.txt +++ b/libc-test/semver/linux-mips.txt @@ -30,6 +30,7 @@ SYS_epoll_wait SYS_eventfd SYS_fcntl64 SYS_fork +SYS_fstat SYS_fstat64 SYS_fstatfs64 SYS_ftime @@ -77,6 +78,7 @@ SYS_send SYS_sendfile SYS_sendfile64 SYS_set_thread_area +SYS_setrlimit SYS_sgetmask SYS_sigaction SYS_signal diff --git a/libc-test/semver/linux-powerpc.txt b/libc-test/semver/linux-powerpc.txt index 1d162417608fa..d9aacc973d972 100644 --- a/libc-test/semver/linux-powerpc.txt +++ b/libc-test/semver/linux-powerpc.txt @@ -54,6 +54,7 @@ SYS_fadvise64 SYS_fadvise64_64 SYS_fcntl64 SYS_fork +SYS_fstat SYS_fstat64 SYS_fstatat64 SYS_fstatfs64 @@ -110,6 +111,7 @@ SYS_select SYS_send SYS_sendfile SYS_sendfile64 +SYS_setrlimit SYS_sgetmask SYS_sigaction SYS_signal diff --git a/libc-test/semver/linux-powerpc64.txt b/libc-test/semver/linux-powerpc64.txt index 983c7e7d30c28..99be508e6bd59 100644 --- a/libc-test/semver/linux-powerpc64.txt +++ b/libc-test/semver/linux-powerpc64.txt @@ -66,6 +66,7 @@ SYS_epoll_create SYS_epoll_wait SYS_eventfd SYS_fork +SYS_fstat SYS_fstatfs64 SYS_ftime SYS_futimesat @@ -117,6 +118,7 @@ SYS_rtas SYS_select SYS_send SYS_sendfile +SYS_setrlimit SYS_sgetmask SYS_sigaction SYS_signal diff --git a/libc-test/semver/linux-powerpc64le.txt b/libc-test/semver/linux-powerpc64le.txt index 983c7e7d30c28..99be508e6bd59 100644 --- a/libc-test/semver/linux-powerpc64le.txt +++ b/libc-test/semver/linux-powerpc64le.txt @@ -66,6 +66,7 @@ SYS_epoll_create SYS_epoll_wait SYS_eventfd SYS_fork +SYS_fstat SYS_fstatfs64 SYS_ftime SYS_futimesat @@ -117,6 +118,7 @@ SYS_rtas SYS_select SYS_send SYS_sendfile +SYS_setrlimit SYS_sgetmask SYS_sigaction SYS_signal diff --git a/libc-test/semver/linux-riscv64gc.txt b/libc-test/semver/linux-riscv64gc.txt index 4f270540cc3a2..2691801511782 100644 --- a/libc-test/semver/linux-riscv64gc.txt +++ b/libc-test/semver/linux-riscv64gc.txt @@ -46,6 +46,7 @@ SO_TIMESTAMPNS SO_WIFI_STATUS SYS_accept SYS_fadvise64 +SYS_fstat SYS_msgctl SYS_msgget SYS_msgrcv @@ -59,6 +60,7 @@ SYS_semget SYS_semop SYS_semtimedop SYS_sendfile +SYS_setrlimit SYS_shmat SYS_shmctl SYS_shmdt diff --git a/libc-test/semver/linux-s390x.txt b/libc-test/semver/linux-s390x.txt index c2ffaf8d06f39..f5d089e3d5e50 100644 --- a/libc-test/semver/linux-s390x.txt +++ b/libc-test/semver/linux-s390x.txt @@ -44,6 +44,7 @@ SYS_epoll_wait SYS_eventfd SYS_fadvise64 SYS_fork +SYS_fstat SYS_fstatfs64 SYS_futimesat SYS_get_kernel_syms @@ -76,6 +77,7 @@ SYS_s390_pci_mmio_write SYS_s390_runtime_instr SYS_select SYS_sendfile +SYS_setrlimit SYS_sigaction SYS_signal SYS_signalfd diff --git a/libc-test/semver/linux-sparc64.txt b/libc-test/semver/linux-sparc64.txt index 956cd2aeda15e..d6ae2f675f793 100644 --- a/libc-test/semver/linux-sparc64.txt +++ b/libc-test/semver/linux-sparc64.txt @@ -40,6 +40,7 @@ SYS_execv SYS_fadvise64 SYS_fadvise64_64 SYS_fork +SYS_fstat SYS_fstat64 SYS_fstatat64 SYS_fstatfs64 @@ -79,6 +80,7 @@ SYS_sched_set_affinity SYS_select SYS_sendfile SYS_sendfile64 +SYS_setrlimit SYS_sgetmask SYS_sigaction SYS_signal diff --git a/libc-test/semver/linux-x86_64.txt b/libc-test/semver/linux-x86_64.txt index 64126fbc841e1..6ad111e7308cc 100644 --- a/libc-test/semver/linux-x86_64.txt +++ b/libc-test/semver/linux-x86_64.txt @@ -93,6 +93,7 @@ SYS_epoll_wait SYS_eventfd SYS_fadvise64 SYS_fork +SYS_fstat SYS_futimesat SYS_getdents SYS_getpgrp @@ -120,6 +121,7 @@ SYS_renameat SYS_rmdir SYS_select SYS_sendfile +SYS_setrlimit SYS_signalfd SYS_stat SYS_symlink diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index f14476525db06..0ac88784343df 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2876,7 +2876,6 @@ SYS_flistxattr SYS_flock SYS_fremovexattr SYS_fsetxattr -SYS_fstat SYS_fstatfs SYS_fsync SYS_ftruncate @@ -3031,7 +3030,6 @@ SYS_setregid SYS_setresgid SYS_setresuid SYS_setreuid -SYS_setrlimit SYS_setsid SYS_setsockopt SYS_settimeofday From b5b0f690a373e4615776413f68fccfc146179d02 Mon Sep 17 00:00:00 2001 From: Adam Gastineau Date: Sun, 25 Feb 2024 06:52:56 -0800 Subject: [PATCH 0016/1228] xrOS support Swapped to visionOS target_os --- build.rs | 2 +- src/unix/bsd/apple/mod.rs | 2 +- src/unix/bsd/mod.rs | 3 ++- src/unix/mod.rs | 8 ++++++-- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/build.rs b/build.rs index ec932007ae69f..40d4140e8f65e 100644 --- a/build.rs +++ b/build.rs @@ -34,7 +34,7 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ // Extra values to allow for check-cfg. const CHECK_CFG_EXTRA: &'static [(&'static str, &'static [&'static str])] = &[ - ("target_os", &["switch", "aix", "ohos", "hurd"]), + ("target_os", &["switch", "aix", "ohos", "hurd", "visionos"]), ("target_env", &["illumos", "wasi", "aix", "ohos"]), ( "target_arch", diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 2e7827231e65f..d53282402667b 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -6475,7 +6475,7 @@ cfg_if! { } } cfg_if! { - if #[cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos"))] { + if #[cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos", target_os = "visionos"))] { extern "C" { pub fn memmem( haystack: *const ::c_void, diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 9a2e6c463d36b..6ee2a3de44035 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -39,6 +39,7 @@ s! { target_os = "ios", target_os = "tvos", target_os = "watchos", + target_os = "visionos", target_os = "netbsd", target_os = "openbsd")))] pub pw_fields: ::c_int, @@ -917,7 +918,7 @@ extern "C" { } cfg_if! { - if #[cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos", target_os = "watchos"))] { + if #[cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos", target_os = "watchos", target_os = "visionos"))] { mod apple; pub use self::apple::*; } else if #[cfg(any(target_os = "openbsd", target_os = "netbsd"))] { diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 3dca83305ad59..816bcae86ff3e 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -369,6 +369,7 @@ cfg_if! { target_os = "ios", target_os = "tvos", target_os = "watchos", + target_os = "visionos", target_os = "android", target_os = "openbsd", target_os = "nto", @@ -1042,7 +1043,8 @@ extern "C" { target_os = "macos", target_os = "ios", target_os = "tvos", - target_os = "watchos" + target_os = "watchos", + target_os = "visionos" ), link_name = "realpath$DARWIN_EXTSN" )] @@ -1218,7 +1220,8 @@ extern "C" { target_os = "macos", target_os = "ios", target_os = "tvos", - target_os = "watchos" + target_os = "watchos", + target_os = "visionos" ), link_name = "res_9_init" )] @@ -1555,6 +1558,7 @@ cfg_if! { target_os = "ios", target_os = "tvos", target_os = "watchos", + target_os = "visionos", target_os = "freebsd", target_os = "dragonfly", target_os = "openbsd", From b5f85fc72d82e0c404257dad7a48d98faa5ab169 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Tue, 16 Apr 2024 00:24:12 +0900 Subject: [PATCH 0017/1228] Ignore `sockstat` field on FreeBSD 15 CI --- libc-test/build.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index a156c2694e7c4..ee211ebbf227f 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2538,6 +2538,9 @@ fn test_freebsd(target: &str) { | "sctp_send_failed_event" | "sctp_stream_reset_event" => true, + // FIXME: Changed in FreeBSD 15 + "tcp_info" | "sockstat" if Some(15) >= freebsd_ver => true, + _ => false, } }); From 57b2f87fe3ad729991282414a1785ce0f4b1c270 Mon Sep 17 00:00:00 2001 From: Dirreke Date: Sat, 27 Apr 2024 14:52:34 +0800 Subject: [PATCH 0018/1228] update version to 0.2.154 --- Cargo.toml | 2 +- libc-test/Cargo.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index b29a475a4d7b8..48b8e189077c1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.153" +version = "0.2.154" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index a9ae85e857fa5..eee6fe83da0b1 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc-test" -version = "0.2.153" +version = "0.2.154" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" build = "build.rs" @@ -12,7 +12,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.153" +version = "0.2.154" default-features = false [build-dependencies] From 3c68832597a59198258807324b95dd190acb75f9 Mon Sep 17 00:00:00 2001 From: WANG Rui Date: Tue, 14 Nov 2023 15:09:26 +0800 Subject: [PATCH 0019/1228] linux/musl: Add support for LoongArch64 --- .../linux/musl/b64/loongarch64/align.rs | 40 ++ .../linux/musl/b64/loongarch64/mod.rs | 669 ++++++++++++++++++ src/unix/linux_like/linux/musl/b64/mod.rs | 3 + src/unix/linux_like/linux/musl/mod.rs | 3 +- 4 files changed, 714 insertions(+), 1 deletion(-) create mode 100644 src/unix/linux_like/linux/musl/b64/loongarch64/align.rs create mode 100644 src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs new file mode 100644 index 0000000000000..dc191f51fdb1c --- /dev/null +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs @@ -0,0 +1,40 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } +} + +s! { + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + } + + #[repr(align(16))] + pub struct mcontext_t { + pub __pc: ::c_ulonglong, + pub __gregs: [::c_ulonglong; 32], + pub __flags: ::c_uint, + pub __extcontext: [::c_ulonglong; 0], + } + + #[repr(align(8))] + pub struct clone_args { + pub flags: ::c_ulonglong, + pub pidfd: ::c_ulonglong, + pub child_tid: ::c_ulonglong, + pub parent_tid: ::c_ulonglong, + pub exit_signal: ::c_ulonglong, + pub stack: ::c_ulonglong, + pub stack_size: ::c_ulonglong, + pub tls: ::c_ulonglong, + pub set_tid: ::c_ulonglong, + pub set_tid_size: ::c_ulonglong, + pub cgroup: ::c_ulonglong, + } +} diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs new file mode 100644 index 0000000000000..59a824b237306 --- /dev/null +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -0,0 +1,669 @@ +//! LoongArch-specific definitions for 64-bit linux-like values + +pub type c_char = i8; +pub type wchar_t = ::c_int; + +pub type nlink_t = ::c_uint; +pub type blksize_t = ::c_int; +pub type fsblkcnt64_t = ::c_ulong; +pub type fsfilcnt64_t = ::c_ulong; +pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; + +s! { + pub struct pthread_attr_t { + __size: [::c_ulong; 7], + } + + 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_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad1: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + __pad2: ::c_int, + 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_int; 2usize], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub __pad1: ::dev_t, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub __pad2: ::c_int, + 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_int; 2], + } + + pub struct statfs { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + 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_fsid: ::fsid_t, + pub f_namelen: ::c_long, + pub f_frsize: ::c_long, + pub f_flags: ::c_long, + pub f_spare: [::c_long; 4], + } + + pub struct statfs64 { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_blocks: ::fsblkcnt64_t, + pub f_bfree: ::fsblkcnt64_t, + pub f_bavail: ::fsblkcnt64_t, + pub f_files: ::fsfilcnt64_t, + pub f_ffree: ::fsfilcnt64_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_long, + pub f_frsize: ::c_long, + pub f_flags: ::c_long, + pub f_spare: [::c_long; 4], + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_uint, + pub __seq: ::c_ushort, + __pad2: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong, + } + + pub struct user_regs_struct { + pub regs: [u64; 32], + pub orig_a0: u64, + pub csr_era: u64, + pub csr_badv: u64, + pub reserved: [u64; 10], + + } + + pub struct user_fp_struct { + pub fpr: [u64; 32], + pub fcc: u64, + pub fcsr: u32, + } +} + +pub const SYS_io_setup: ::c_long = 0; +pub const SYS_io_destroy: ::c_long = 1; +pub const SYS_io_submit: ::c_long = 2; +pub const SYS_io_cancel: ::c_long = 3; +pub const SYS_io_getevents: ::c_long = 4; +pub const SYS_setxattr: ::c_long = 5; +pub const SYS_lsetxattr: ::c_long = 6; +pub const SYS_fsetxattr: ::c_long = 7; +pub const SYS_getxattr: ::c_long = 8; +pub const SYS_lgetxattr: ::c_long = 9; +pub const SYS_fgetxattr: ::c_long = 10; +pub const SYS_listxattr: ::c_long = 11; +pub const SYS_llistxattr: ::c_long = 12; +pub const SYS_flistxattr: ::c_long = 13; +pub const SYS_removexattr: ::c_long = 14; +pub const SYS_lremovexattr: ::c_long = 15; +pub const SYS_fremovexattr: ::c_long = 16; +pub const SYS_getcwd: ::c_long = 17; +pub const SYS_lookup_dcookie: ::c_long = 18; +pub const SYS_eventfd2: ::c_long = 19; +pub const SYS_epoll_create1: ::c_long = 20; +pub const SYS_epoll_ctl: ::c_long = 21; +pub const SYS_epoll_pwait: ::c_long = 22; +pub const SYS_dup: ::c_long = 23; +pub const SYS_dup3: ::c_long = 24; +pub const SYS_fcntl: ::c_long = 25; +pub const SYS_inotify_init1: ::c_long = 26; +pub const SYS_inotify_add_watch: ::c_long = 27; +pub const SYS_inotify_rm_watch: ::c_long = 28; +pub const SYS_ioctl: ::c_long = 29; +pub const SYS_ioprio_set: ::c_long = 30; +pub const SYS_ioprio_get: ::c_long = 31; +pub const SYS_flock: ::c_long = 32; +pub const SYS_mknodat: ::c_long = 33; +pub const SYS_mkdirat: ::c_long = 34; +pub const SYS_unlinkat: ::c_long = 35; +pub const SYS_symlinkat: ::c_long = 36; +pub const SYS_linkat: ::c_long = 37; +pub const SYS_umount2: ::c_long = 39; +pub const SYS_mount: ::c_long = 40; +pub const SYS_pivot_root: ::c_long = 41; +pub const SYS_nfsservctl: ::c_long = 42; +pub const SYS_statfs: ::c_long = 43; +pub const SYS_fstatfs: ::c_long = 44; +pub const SYS_truncate: ::c_long = 45; +pub const SYS_ftruncate: ::c_long = 46; +pub const SYS_fallocate: ::c_long = 47; +pub const SYS_faccessat: ::c_long = 48; +pub const SYS_chdir: ::c_long = 49; +pub const SYS_fchdir: ::c_long = 50; +pub const SYS_chroot: ::c_long = 51; +pub const SYS_fchmod: ::c_long = 52; +pub const SYS_fchmodat: ::c_long = 53; +pub const SYS_fchownat: ::c_long = 54; +pub const SYS_fchown: ::c_long = 55; +pub const SYS_openat: ::c_long = 56; +pub const SYS_close: ::c_long = 57; +pub const SYS_vhangup: ::c_long = 58; +pub const SYS_pipe2: ::c_long = 59; +pub const SYS_quotactl: ::c_long = 60; +pub const SYS_getdents64: ::c_long = 61; +pub const SYS_lseek: ::c_long = 62; +pub const SYS_read: ::c_long = 63; +pub const SYS_write: ::c_long = 64; +pub const SYS_readv: ::c_long = 65; +pub const SYS_writev: ::c_long = 66; +pub const SYS_pread64: ::c_long = 67; +pub const SYS_pwrite64: ::c_long = 68; +pub const SYS_preadv: ::c_long = 69; +pub const SYS_pwritev: ::c_long = 70; +pub const SYS_sendfile: ::c_long = 71; +pub const SYS_pselect6: ::c_long = 72; +pub const SYS_ppoll: ::c_long = 73; +pub const SYS_signalfd4: ::c_long = 74; +pub const SYS_vmsplice: ::c_long = 75; +pub const SYS_splice: ::c_long = 76; +pub const SYS_tee: ::c_long = 77; +pub const SYS_readlinkat: ::c_long = 78; +pub const SYS_sync: ::c_long = 81; +pub const SYS_fsync: ::c_long = 82; +pub const SYS_fdatasync: ::c_long = 83; +pub const SYS_sync_file_range: ::c_long = 84; +pub const SYS_timerfd_create: ::c_long = 85; +pub const SYS_timerfd_settime: ::c_long = 86; +pub const SYS_timerfd_gettime: ::c_long = 87; +pub const SYS_utimensat: ::c_long = 88; +pub const SYS_acct: ::c_long = 89; +pub const SYS_capget: ::c_long = 90; +pub const SYS_capset: ::c_long = 91; +pub const SYS_personality: ::c_long = 92; +pub const SYS_exit: ::c_long = 93; +pub const SYS_exit_group: ::c_long = 94; +pub const SYS_waitid: ::c_long = 95; +pub const SYS_set_tid_address: ::c_long = 96; +pub const SYS_unshare: ::c_long = 97; +pub const SYS_futex: ::c_long = 98; +pub const SYS_set_robust_list: ::c_long = 99; +pub const SYS_get_robust_list: ::c_long = 100; +pub const SYS_nanosleep: ::c_long = 101; +pub const SYS_getitimer: ::c_long = 102; +pub const SYS_setitimer: ::c_long = 103; +pub const SYS_kexec_load: ::c_long = 104; +pub const SYS_init_module: ::c_long = 105; +pub const SYS_delete_module: ::c_long = 106; +pub const SYS_timer_create: ::c_long = 107; +pub const SYS_timer_gettime: ::c_long = 108; +pub const SYS_timer_getoverrun: ::c_long = 109; +pub const SYS_timer_settime: ::c_long = 110; +pub const SYS_timer_delete: ::c_long = 111; +pub const SYS_clock_settime: ::c_long = 112; +pub const SYS_clock_gettime: ::c_long = 113; +pub const SYS_clock_getres: ::c_long = 114; +pub const SYS_clock_nanosleep: ::c_long = 115; +pub const SYS_syslog: ::c_long = 116; +pub const SYS_ptrace: ::c_long = 117; +pub const SYS_sched_setparam: ::c_long = 118; +pub const SYS_sched_setscheduler: ::c_long = 119; +pub const SYS_sched_getscheduler: ::c_long = 120; +pub const SYS_sched_getparam: ::c_long = 121; +pub const SYS_sched_setaffinity: ::c_long = 122; +pub const SYS_sched_getaffinity: ::c_long = 123; +pub const SYS_sched_yield: ::c_long = 124; +pub const SYS_sched_get_priority_max: ::c_long = 125; +pub const SYS_sched_get_priority_min: ::c_long = 126; +pub const SYS_sched_rr_get_interval: ::c_long = 127; +pub const SYS_restart_syscall: ::c_long = 128; +pub const SYS_kill: ::c_long = 129; +pub const SYS_tkill: ::c_long = 130; +pub const SYS_tgkill: ::c_long = 131; +pub const SYS_sigaltstack: ::c_long = 132; +pub const SYS_rt_sigsuspend: ::c_long = 133; +pub const SYS_rt_sigaction: ::c_long = 134; +pub const SYS_rt_sigprocmask: ::c_long = 135; +pub const SYS_rt_sigpending: ::c_long = 136; +pub const SYS_rt_sigtimedwait: ::c_long = 137; +pub const SYS_rt_sigqueueinfo: ::c_long = 138; +pub const SYS_rt_sigreturn: ::c_long = 139; +pub const SYS_setpriority: ::c_long = 140; +pub const SYS_getpriority: ::c_long = 141; +pub const SYS_reboot: ::c_long = 142; +pub const SYS_setregid: ::c_long = 143; +pub const SYS_setgid: ::c_long = 144; +pub const SYS_setreuid: ::c_long = 145; +pub const SYS_setuid: ::c_long = 146; +pub const SYS_setresuid: ::c_long = 147; +pub const SYS_getresuid: ::c_long = 148; +pub const SYS_setresgid: ::c_long = 149; +pub const SYS_getresgid: ::c_long = 150; +pub const SYS_setfsuid: ::c_long = 151; +pub const SYS_setfsgid: ::c_long = 152; +pub const SYS_times: ::c_long = 153; +pub const SYS_setpgid: ::c_long = 154; +pub const SYS_getpgid: ::c_long = 155; +pub const SYS_getsid: ::c_long = 156; +pub const SYS_setsid: ::c_long = 157; +pub const SYS_getgroups: ::c_long = 158; +pub const SYS_setgroups: ::c_long = 159; +pub const SYS_uname: ::c_long = 160; +pub const SYS_sethostname: ::c_long = 161; +pub const SYS_setdomainname: ::c_long = 162; +pub const SYS_getrusage: ::c_long = 165; +pub const SYS_umask: ::c_long = 166; +pub const SYS_prctl: ::c_long = 167; +pub const SYS_getcpu: ::c_long = 168; +pub const SYS_gettimeofday: ::c_long = 169; +pub const SYS_settimeofday: ::c_long = 170; +pub const SYS_adjtimex: ::c_long = 171; +pub const SYS_getpid: ::c_long = 172; +pub const SYS_getppid: ::c_long = 173; +pub const SYS_getuid: ::c_long = 174; +pub const SYS_geteuid: ::c_long = 175; +pub const SYS_getgid: ::c_long = 176; +pub const SYS_getegid: ::c_long = 177; +pub const SYS_gettid: ::c_long = 178; +pub const SYS_sysinfo: ::c_long = 179; +pub const SYS_mq_open: ::c_long = 180; +pub const SYS_mq_unlink: ::c_long = 181; +pub const SYS_mq_timedsend: ::c_long = 182; +pub const SYS_mq_timedreceive: ::c_long = 183; +pub const SYS_mq_notify: ::c_long = 184; +pub const SYS_mq_getsetattr: ::c_long = 185; +pub const SYS_msgget: ::c_long = 186; +pub const SYS_msgctl: ::c_long = 187; +pub const SYS_msgrcv: ::c_long = 188; +pub const SYS_msgsnd: ::c_long = 189; +pub const SYS_semget: ::c_long = 190; +pub const SYS_semctl: ::c_long = 191; +pub const SYS_semtimedop: ::c_long = 192; +pub const SYS_semop: ::c_long = 193; +pub const SYS_shmget: ::c_long = 194; +pub const SYS_shmctl: ::c_long = 195; +pub const SYS_shmat: ::c_long = 196; +pub const SYS_shmdt: ::c_long = 197; +pub const SYS_socket: ::c_long = 198; +pub const SYS_socketpair: ::c_long = 199; +pub const SYS_bind: ::c_long = 200; +pub const SYS_listen: ::c_long = 201; +pub const SYS_accept: ::c_long = 202; +pub const SYS_connect: ::c_long = 203; +pub const SYS_getsockname: ::c_long = 204; +pub const SYS_getpeername: ::c_long = 205; +pub const SYS_sendto: ::c_long = 206; +pub const SYS_recvfrom: ::c_long = 207; +pub const SYS_setsockopt: ::c_long = 208; +pub const SYS_getsockopt: ::c_long = 209; +pub const SYS_shutdown: ::c_long = 210; +pub const SYS_sendmsg: ::c_long = 211; +pub const SYS_recvmsg: ::c_long = 212; +pub const SYS_readahead: ::c_long = 213; +pub const SYS_brk: ::c_long = 214; +pub const SYS_munmap: ::c_long = 215; +pub const SYS_mremap: ::c_long = 216; +pub const SYS_add_key: ::c_long = 217; +pub const SYS_request_key: ::c_long = 218; +pub const SYS_keyctl: ::c_long = 219; +pub const SYS_clone: ::c_long = 220; +pub const SYS_execve: ::c_long = 221; +pub const SYS_mmap: ::c_long = 222; +pub const SYS_fadvise64: ::c_long = 223; +pub const SYS_swapon: ::c_long = 224; +pub const SYS_swapoff: ::c_long = 225; +pub const SYS_mprotect: ::c_long = 226; +pub const SYS_msync: ::c_long = 227; +pub const SYS_mlock: ::c_long = 228; +pub const SYS_munlock: ::c_long = 229; +pub const SYS_mlockall: ::c_long = 230; +pub const SYS_munlockall: ::c_long = 231; +pub const SYS_mincore: ::c_long = 232; +pub const SYS_madvise: ::c_long = 233; +pub const SYS_remap_file_pages: ::c_long = 234; +pub const SYS_mbind: ::c_long = 235; +pub const SYS_get_mempolicy: ::c_long = 236; +pub const SYS_set_mempolicy: ::c_long = 237; +pub const SYS_migrate_pages: ::c_long = 238; +pub const SYS_move_pages: ::c_long = 239; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; +pub const SYS_perf_event_open: ::c_long = 241; +pub const SYS_accept4: ::c_long = 242; +pub const SYS_recvmmsg: ::c_long = 243; +pub const SYS_arch_specific_syscall: ::c_long = 244; +pub const SYS_wait4: ::c_long = 260; +pub const SYS_prlimit64: ::c_long = 261; +pub const SYS_fanotify_init: ::c_long = 262; +pub const SYS_fanotify_mark: ::c_long = 263; +pub const SYS_name_to_handle_at: ::c_long = 264; +pub const SYS_open_by_handle_at: ::c_long = 265; +pub const SYS_clock_adjtime: ::c_long = 266; +pub const SYS_syncfs: ::c_long = 267; +pub const SYS_setns: ::c_long = 268; +pub const SYS_sendmmsg: ::c_long = 269; +pub const SYS_process_vm_readv: ::c_long = 270; +pub const SYS_process_vm_writev: ::c_long = 271; +pub const SYS_kcmp: ::c_long = 272; +pub const SYS_finit_module: ::c_long = 273; +pub const SYS_sched_setattr: ::c_long = 274; +pub const SYS_sched_getattr: ::c_long = 275; +pub const SYS_renameat2: ::c_long = 276; +pub const SYS_seccomp: ::c_long = 277; +pub const SYS_getrandom: ::c_long = 278; +pub const SYS_memfd_create: ::c_long = 279; +pub const SYS_bpf: ::c_long = 280; +pub const SYS_execveat: ::c_long = 281; +pub const SYS_userfaultfd: ::c_long = 282; +pub const SYS_membarrier: ::c_long = 283; +pub const SYS_mlock2: ::c_long = 284; +pub const SYS_copy_file_range: ::c_long = 285; +pub const SYS_preadv2: ::c_long = 286; +pub const SYS_pwritev2: ::c_long = 287; +pub const SYS_pkey_mprotect: ::c_long = 288; +pub const SYS_pkey_alloc: ::c_long = 289; +pub const SYS_pkey_free: ::c_long = 290; +pub const SYS_statx: ::c_long = 291; +pub const SYS_io_pgetevents: ::c_long = 292; +pub const SYS_rseq: ::c_long = 293; +pub const SYS_kexec_file_load: ::c_long = 294; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_cachestat: ::c_long = 451; +pub const SYS_fchmodat2: ::c_long = 452; +pub const SYS_map_shadow_stack: ::c_long = 453; +pub const SYS_futex_wake: ::c_long = 454; +pub const SYS_futex_wait: ::c_long = 455; +pub const SYS_futex_requeue: ::c_long = 456; + +pub const O_APPEND: ::c_int = 1024; +pub const O_DIRECT: ::c_int = 0x4000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_LARGEFILE: ::c_int = 0; +pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_ASYNC: ::c_int = 4096; + +pub const SIGSTKSZ: ::size_t = 16384; +pub const MINSIGSTKSZ: ::size_t = 4096; + +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0; +pub const SIG_UNBLOCK: ::c_int = 1; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_SETOWN: ::c_int = 8; + +pub const VEOF: usize = 4; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::c_int = 0x00000800; +pub const TAB2: ::c_int = 0x00001000; +pub const TAB3: ::c_int = 0x00001800; +pub const CR1: ::c_int = 0x00000200; +pub const CR2: ::c_int = 0x00000400; +pub const CR3: ::c_int = 0x00000600; +pub const FF1: ::c_int = 0x00008000; +pub const BS1: ::c_int = 0x00002000; +pub const VT1: ::c_int = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const EDEADLK: ::c_int = 35; +pub const EDEADLOCK: ::c_int = EDEADLK; +pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index 05586cdb44b68..d59343064c52e 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -157,6 +157,9 @@ cfg_if! { } else if #[cfg(any(target_arch = "riscv64"))] { mod riscv64; pub use self::riscv64::*; + } else if #[cfg(any(target_arch = "loongarch64"))] { + mod loongarch64; + pub use self::loongarch64::*; } else { // Unknown target_arch } diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index a4c1f708afd50..080c9ba8278b1 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -912,7 +912,8 @@ cfg_if! { target_arch = "mips64", target_arch = "powerpc64", target_arch = "s390x", - target_arch = "riscv64"))] { + target_arch = "riscv64", + target_arch = "loongarch64"))] { mod b64; pub use self::b64::*; } else if #[cfg(any(target_arch = "x86", From 1b770a860d82f6d7069942e3c8d29455158068c9 Mon Sep 17 00:00:00 2001 From: Taiki Endo Date: Sun, 24 Mar 2024 18:01:05 +0900 Subject: [PATCH 0020/1228] Fix c_char on AIX Refs: https://github.com/rust-lang/rust/issues/122985 --- src/unix/aix/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 0fc923d6072f0..b3ce43a3722d1 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -1,4 +1,4 @@ -pub type c_char = i8; +pub type c_char = u8; pub type caddr_t = *mut ::c_char; pub type clockid_t = ::c_longlong; pub type blkcnt_t = ::c_long; From 47a8927f197dd067a2c5696c97c84120b812a5e3 Mon Sep 17 00:00:00 2001 From: tevzi2 Date: Sun, 14 Apr 2024 19:25:16 +0200 Subject: [PATCH 0021/1228] Add SIGABRT const to newlib --- src/unix/newlib/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index a572cc38bfda9..ea6e791245e2e 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -511,6 +511,8 @@ pub const SOCK_CLOEXEC: ::c_int = O_CLOEXEC; pub const INET_ADDRSTRLEN: ::c_int = 16; +pub const SIGABRT: ::c_int = 1; + // https://github.com/bminor/newlib/blob/HEAD/newlib/libc/sys/linux/include/net/if.h#L121 pub const IFF_UP: ::c_int = 0x1; // interface is up pub const IFF_BROADCAST: ::c_int = 0x2; // broadcast address valid From 539ec751f337c784ff09ca17f7cf2be953d0ad3e Mon Sep 17 00:00:00 2001 From: tevzi2 Date: Sun, 14 Apr 2024 19:43:25 +0200 Subject: [PATCH 0022/1228] added missing signal constants for espidf --- src/unix/newlib/espidf/mod.rs | 10 ++++++++++ src/unix/newlib/mod.rs | 2 -- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/unix/newlib/espidf/mod.rs b/src/unix/newlib/espidf/mod.rs index 409d7ad9bd784..e2e98ee9c394a 100644 --- a/src/unix/newlib/espidf/mod.rs +++ b/src/unix/newlib/espidf/mod.rs @@ -89,6 +89,16 @@ pub const MSG_EOR: ::c_int = 0x08; pub const PTHREAD_STACK_MIN: ::size_t = 768; +pub const SIGABRT: ::size_t = 1; +pub const SIGFPE: ::size_t = 1; +pub const SIGILL: ::size_t = 1; +pub const SIGINT: ::size_t = 1; +pub const SIGSEGV: ::size_t = 1; +pub const SIGTERM: ::size_t = 1; +pub const SIGHUP: ::size_t = 1; +pub const SIGQUIT: ::size_t = 1; +pub const NSIG: ::size_t = 2; + extern "C" { pub fn pthread_create( native: *mut ::pthread_t, diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index ea6e791245e2e..a572cc38bfda9 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -511,8 +511,6 @@ pub const SOCK_CLOEXEC: ::c_int = O_CLOEXEC; pub const INET_ADDRSTRLEN: ::c_int = 16; -pub const SIGABRT: ::c_int = 1; - // https://github.com/bminor/newlib/blob/HEAD/newlib/libc/sys/linux/include/net/if.h#L121 pub const IFF_UP: ::c_int = 0x1; // interface is up pub const IFF_BROADCAST: ::c_int = 0x2; // broadcast address valid From 316af61fa5847102324f6ef03126e911363cf1c1 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Thu, 4 Apr 2024 21:34:39 +0100 Subject: [PATCH 0023/1228] solarish adding SO_EXCLBIND constant. --- src/unix/solarish/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index c68cfba3c9932..7ed00413dc7f2 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1829,6 +1829,7 @@ pub const SO_TYPE: ::c_int = 0x1008; pub const SO_PROTOTYPE: ::c_int = 0x1009; pub const SO_DOMAIN: ::c_int = 0x100c; pub const SO_TIMESTAMP: ::c_int = 0x1013; +pub const SO_EXCLBIND: ::c_int = 0x1015; pub const SCM_RIGHTS: ::c_int = 0x1010; pub const SCM_UCRED: ::c_int = 0x1012; From 34409aafe5d54a9b159eda10f44f3ab6c4be43d9 Mon Sep 17 00:00:00 2001 From: Frederick Mayle Date: Fri, 12 Apr 2024 17:00:40 -0700 Subject: [PATCH 0024/1228] add all android sysconf constants Source: https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/include/bits/sysconf.h Hex is used instead of decimal to match the source. No entries were removed (can be verified with `--word-diff`). --- libc-test/semver/android.txt | 16 ++ src/unix/linux_like/android/mod.rs | 283 +++++++++++++++-------------- 2 files changed, 165 insertions(+), 134 deletions(-) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 901b7ca768d41..36f808fdce816 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -2920,6 +2920,21 @@ _SC_HOST_NAME_MAX _SC_IOV_MAX _SC_IPV6 _SC_JOB_CONTROL +_SC_LEVEL1_DCACHE_ASSOC +_SC_LEVEL1_DCACHE_LINESIZE +_SC_LEVEL1_DCACHE_SIZE +_SC_LEVEL1_ICACHE_ASSOC +_SC_LEVEL1_ICACHE_LINESIZE +_SC_LEVEL1_ICACHE_SIZE +_SC_LEVEL2_CACHE_ASSOC +_SC_LEVEL2_CACHE_LINESIZE +_SC_LEVEL2_CACHE_SIZE +_SC_LEVEL3_CACHE_ASSOC +_SC_LEVEL3_CACHE_LINESIZE +_SC_LEVEL3_CACHE_SIZE +_SC_LEVEL4_CACHE_ASSOC +_SC_LEVEL4_CACHE_LINESIZE +_SC_LEVEL4_CACHE_SIZE _SC_LINE_MAX _SC_LOGIN_NAME_MAX _SC_MAPPED_FILES @@ -2990,6 +3005,7 @@ _SC_TRACE_USER_EVENT_MAX _SC_TTY_NAME_MAX _SC_TYPED_MEMORY_OBJECTS _SC_TZNAME_MAX +_SC_UIO_MAXIOV _SC_V7_ILP32_OFF32 _SC_V7_ILP32_OFFBIG _SC_V7_LP64_OFF64 diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 2c1c1e9b91f27..8e5032aa81576 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1182,140 +1182,155 @@ pub const _PC_SYNC_IO: ::c_int = 19; pub const FIONBIO: ::c_int = 0x5421; -pub const _SC_ARG_MAX: ::c_int = 0; -pub const _SC_BC_BASE_MAX: ::c_int = 1; -pub const _SC_BC_DIM_MAX: ::c_int = 2; -pub const _SC_BC_SCALE_MAX: ::c_int = 3; -pub const _SC_BC_STRING_MAX: ::c_int = 4; -pub const _SC_CHILD_MAX: ::c_int = 5; -pub const _SC_CLK_TCK: ::c_int = 6; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 7; -pub const _SC_EXPR_NEST_MAX: ::c_int = 8; -pub const _SC_LINE_MAX: ::c_int = 9; -pub const _SC_NGROUPS_MAX: ::c_int = 10; -pub const _SC_OPEN_MAX: ::c_int = 11; -pub const _SC_PASS_MAX: ::c_int = 12; -pub const _SC_2_C_BIND: ::c_int = 13; -pub const _SC_2_C_DEV: ::c_int = 14; -pub const _SC_2_C_VERSION: ::c_int = 15; -pub const _SC_2_CHAR_TERM: ::c_int = 16; -pub const _SC_2_FORT_DEV: ::c_int = 17; -pub const _SC_2_FORT_RUN: ::c_int = 18; -pub const _SC_2_LOCALEDEF: ::c_int = 19; -pub const _SC_2_SW_DEV: ::c_int = 20; -pub const _SC_2_UPE: ::c_int = 21; -pub const _SC_2_VERSION: ::c_int = 22; -pub const _SC_JOB_CONTROL: ::c_int = 23; -pub const _SC_SAVED_IDS: ::c_int = 24; -pub const _SC_VERSION: ::c_int = 25; -pub const _SC_RE_DUP_MAX: ::c_int = 26; -pub const _SC_STREAM_MAX: ::c_int = 27; -pub const _SC_TZNAME_MAX: ::c_int = 28; -pub const _SC_XOPEN_CRYPT: ::c_int = 29; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 30; -pub const _SC_XOPEN_SHM: ::c_int = 31; -pub const _SC_XOPEN_VERSION: ::c_int = 32; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 33; -pub const _SC_XOPEN_REALTIME: ::c_int = 34; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 35; -pub const _SC_XOPEN_LEGACY: ::c_int = 36; -pub const _SC_ATEXIT_MAX: ::c_int = 37; -pub const _SC_IOV_MAX: ::c_int = 38; -pub const _SC_PAGESIZE: ::c_int = 39; -pub const _SC_PAGE_SIZE: ::c_int = 40; -pub const _SC_XOPEN_UNIX: ::c_int = 41; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 42; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 43; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 44; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 45; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 46; -pub const _SC_AIO_MAX: ::c_int = 47; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 48; -pub const _SC_DELAYTIMER_MAX: ::c_int = 49; -pub const _SC_MQ_OPEN_MAX: ::c_int = 50; -pub const _SC_MQ_PRIO_MAX: ::c_int = 51; -pub const _SC_RTSIG_MAX: ::c_int = 52; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 53; -pub const _SC_SEM_VALUE_MAX: ::c_int = 54; -pub const _SC_SIGQUEUE_MAX: ::c_int = 55; -pub const _SC_TIMER_MAX: ::c_int = 56; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 57; -pub const _SC_FSYNC: ::c_int = 58; -pub const _SC_MAPPED_FILES: ::c_int = 59; -pub const _SC_MEMLOCK: ::c_int = 60; -pub const _SC_MEMLOCK_RANGE: ::c_int = 61; -pub const _SC_MEMORY_PROTECTION: ::c_int = 62; -pub const _SC_MESSAGE_PASSING: ::c_int = 63; -pub const _SC_PRIORITIZED_IO: ::c_int = 64; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 65; -pub const _SC_REALTIME_SIGNALS: ::c_int = 66; -pub const _SC_SEMAPHORES: ::c_int = 67; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 68; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 69; -pub const _SC_TIMERS: ::c_int = 70; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 71; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 72; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 73; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 74; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 75; -pub const _SC_THREAD_STACK_MIN: ::c_int = 76; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 77; -pub const _SC_TTY_NAME_MAX: ::c_int = 78; -pub const _SC_THREADS: ::c_int = 79; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 80; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 81; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 82; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 83; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 84; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 85; -pub const _SC_NPROCESSORS_CONF: ::c_int = 96; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 97; -pub const _SC_PHYS_PAGES: ::c_int = 98; -pub const _SC_AVPHYS_PAGES: ::c_int = 99; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 100; - -pub const _SC_2_PBS: ::c_int = 101; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 102; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 103; -pub const _SC_2_PBS_LOCATE: ::c_int = 104; -pub const _SC_2_PBS_MESSAGE: ::c_int = 105; -pub const _SC_2_PBS_TRACK: ::c_int = 106; -pub const _SC_ADVISORY_INFO: ::c_int = 107; -pub const _SC_BARRIERS: ::c_int = 108; -pub const _SC_CLOCK_SELECTION: ::c_int = 109; -pub const _SC_CPUTIME: ::c_int = 110; -pub const _SC_HOST_NAME_MAX: ::c_int = 111; -pub const _SC_IPV6: ::c_int = 112; -pub const _SC_RAW_SOCKETS: ::c_int = 113; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 114; -pub const _SC_REGEXP: ::c_int = 115; -pub const _SC_SHELL: ::c_int = 116; -pub const _SC_SPAWN: ::c_int = 117; -pub const _SC_SPIN_LOCKS: ::c_int = 118; -pub const _SC_SPORADIC_SERVER: ::c_int = 119; -pub const _SC_SS_REPL_MAX: ::c_int = 120; -pub const _SC_SYMLOOP_MAX: ::c_int = 121; -pub const _SC_THREAD_CPUTIME: ::c_int = 122; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 123; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 124; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 125; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 126; -pub const _SC_TIMEOUTS: ::c_int = 127; -pub const _SC_TRACE: ::c_int = 128; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 129; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 130; -pub const _SC_TRACE_INHERIT: ::c_int = 131; -pub const _SC_TRACE_LOG: ::c_int = 132; -pub const _SC_TRACE_NAME_MAX: ::c_int = 133; -pub const _SC_TRACE_SYS_MAX: ::c_int = 134; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 135; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 136; -pub const _SC_V7_ILP32_OFF32: ::c_int = 137; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 138; -pub const _SC_V7_LP64_OFF64: ::c_int = 139; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 140; -pub const _SC_XOPEN_STREAMS: ::c_int = 141; -pub const _SC_XOPEN_UUCP: ::c_int = 142; +pub const _SC_ARG_MAX: ::c_int = 0x0000; +pub const _SC_BC_BASE_MAX: ::c_int = 0x0001; +pub const _SC_BC_DIM_MAX: ::c_int = 0x0002; +pub const _SC_BC_SCALE_MAX: ::c_int = 0x0003; +pub const _SC_BC_STRING_MAX: ::c_int = 0x0004; +pub const _SC_CHILD_MAX: ::c_int = 0x0005; +pub const _SC_CLK_TCK: ::c_int = 0x0006; +pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 0x0007; +pub const _SC_EXPR_NEST_MAX: ::c_int = 0x0008; +pub const _SC_LINE_MAX: ::c_int = 0x0009; +pub const _SC_NGROUPS_MAX: ::c_int = 0x000a; +pub const _SC_OPEN_MAX: ::c_int = 0x000b; +pub const _SC_PASS_MAX: ::c_int = 0x000c; +pub const _SC_2_C_BIND: ::c_int = 0x000d; +pub const _SC_2_C_DEV: ::c_int = 0x000e; +pub const _SC_2_C_VERSION: ::c_int = 0x000f; +pub const _SC_2_CHAR_TERM: ::c_int = 0x0010; +pub const _SC_2_FORT_DEV: ::c_int = 0x0011; +pub const _SC_2_FORT_RUN: ::c_int = 0x0012; +pub const _SC_2_LOCALEDEF: ::c_int = 0x0013; +pub const _SC_2_SW_DEV: ::c_int = 0x0014; +pub const _SC_2_UPE: ::c_int = 0x0015; +pub const _SC_2_VERSION: ::c_int = 0x0016; +pub const _SC_JOB_CONTROL: ::c_int = 0x0017; +pub const _SC_SAVED_IDS: ::c_int = 0x0018; +pub const _SC_VERSION: ::c_int = 0x0019; +pub const _SC_RE_DUP_MAX: ::c_int = 0x001a; +pub const _SC_STREAM_MAX: ::c_int = 0x001b; +pub const _SC_TZNAME_MAX: ::c_int = 0x001c; +pub const _SC_XOPEN_CRYPT: ::c_int = 0x001d; +pub const _SC_XOPEN_ENH_I18N: ::c_int = 0x001e; +pub const _SC_XOPEN_SHM: ::c_int = 0x001f; +pub const _SC_XOPEN_VERSION: ::c_int = 0x0020; +pub const _SC_XOPEN_XCU_VERSION: ::c_int = 0x0021; +pub const _SC_XOPEN_REALTIME: ::c_int = 0x0022; +pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 0x0023; +pub const _SC_XOPEN_LEGACY: ::c_int = 0x0024; +pub const _SC_ATEXIT_MAX: ::c_int = 0x0025; +pub const _SC_IOV_MAX: ::c_int = 0x0026; +pub const _SC_UIO_MAXIOV: ::c_int = _SC_IOV_MAX; +pub const _SC_PAGESIZE: ::c_int = 0x0027; +pub const _SC_PAGE_SIZE: ::c_int = 0x0028; +pub const _SC_XOPEN_UNIX: ::c_int = 0x0029; +pub const _SC_XBS5_ILP32_OFF32: ::c_int = 0x002a; +pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 0x002b; +pub const _SC_XBS5_LP64_OFF64: ::c_int = 0x002c; +pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 0x002d; +pub const _SC_AIO_LISTIO_MAX: ::c_int = 0x002e; +pub const _SC_AIO_MAX: ::c_int = 0x002f; +pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 0x0030; +pub const _SC_DELAYTIMER_MAX: ::c_int = 0x0031; +pub const _SC_MQ_OPEN_MAX: ::c_int = 0x0032; +pub const _SC_MQ_PRIO_MAX: ::c_int = 0x0033; +pub const _SC_RTSIG_MAX: ::c_int = 0x0034; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 0x0035; +pub const _SC_SEM_VALUE_MAX: ::c_int = 0x0036; +pub const _SC_SIGQUEUE_MAX: ::c_int = 0x0037; +pub const _SC_TIMER_MAX: ::c_int = 0x0038; +pub const _SC_ASYNCHRONOUS_IO: ::c_int = 0x0039; +pub const _SC_FSYNC: ::c_int = 0x003a; +pub const _SC_MAPPED_FILES: ::c_int = 0x003b; +pub const _SC_MEMLOCK: ::c_int = 0x003c; +pub const _SC_MEMLOCK_RANGE: ::c_int = 0x003d; +pub const _SC_MEMORY_PROTECTION: ::c_int = 0x003e; +pub const _SC_MESSAGE_PASSING: ::c_int = 0x003f; +pub const _SC_PRIORITIZED_IO: ::c_int = 0x0040; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 0x0041; +pub const _SC_REALTIME_SIGNALS: ::c_int = 0x0042; +pub const _SC_SEMAPHORES: ::c_int = 0x0043; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 0x0044; +pub const _SC_SYNCHRONIZED_IO: ::c_int = 0x0045; +pub const _SC_TIMERS: ::c_int = 0x0046; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 0x0047; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 0x0048; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 0x0049; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 0x004a; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 0x004b; +pub const _SC_THREAD_STACK_MIN: ::c_int = 0x004c; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 0x004d; +pub const _SC_TTY_NAME_MAX: ::c_int = 0x004e; +pub const _SC_THREADS: ::c_int = 0x004f; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 0x0050; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 0x0051; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 0x0052; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 0x0053; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 0x0054; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 0x0055; +pub const _SC_NPROCESSORS_CONF: ::c_int = 0x0060; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 0x0061; +pub const _SC_PHYS_PAGES: ::c_int = 0x0062; +pub const _SC_AVPHYS_PAGES: ::c_int = 0x0063; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 0x0064; +pub const _SC_2_PBS: ::c_int = 0x0065; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 0x0066; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 0x0067; +pub const _SC_2_PBS_LOCATE: ::c_int = 0x0068; +pub const _SC_2_PBS_MESSAGE: ::c_int = 0x0069; +pub const _SC_2_PBS_TRACK: ::c_int = 0x006a; +pub const _SC_ADVISORY_INFO: ::c_int = 0x006b; +pub const _SC_BARRIERS: ::c_int = 0x006c; +pub const _SC_CLOCK_SELECTION: ::c_int = 0x006d; +pub const _SC_CPUTIME: ::c_int = 0x006e; +pub const _SC_HOST_NAME_MAX: ::c_int = 0x006f; +pub const _SC_IPV6: ::c_int = 0x0070; +pub const _SC_RAW_SOCKETS: ::c_int = 0x0071; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 0x0072; +pub const _SC_REGEXP: ::c_int = 0x0073; +pub const _SC_SHELL: ::c_int = 0x0074; +pub const _SC_SPAWN: ::c_int = 0x0075; +pub const _SC_SPIN_LOCKS: ::c_int = 0x0076; +pub const _SC_SPORADIC_SERVER: ::c_int = 0x0077; +pub const _SC_SS_REPL_MAX: ::c_int = 0x0078; +pub const _SC_SYMLOOP_MAX: ::c_int = 0x0079; +pub const _SC_THREAD_CPUTIME: ::c_int = 0x007a; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 0x007b; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 0x007c; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 0x007d; +pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 0x007e; +pub const _SC_TIMEOUTS: ::c_int = 0x007f; +pub const _SC_TRACE: ::c_int = 0x0080; +pub const _SC_TRACE_EVENT_FILTER: ::c_int = 0x0081; +pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 0x0082; +pub const _SC_TRACE_INHERIT: ::c_int = 0x0083; +pub const _SC_TRACE_LOG: ::c_int = 0x0084; +pub const _SC_TRACE_NAME_MAX: ::c_int = 0x0085; +pub const _SC_TRACE_SYS_MAX: ::c_int = 0x0086; +pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 0x0087; +pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 0x0088; +pub const _SC_V7_ILP32_OFF32: ::c_int = 0x0089; +pub const _SC_V7_ILP32_OFFBIG: ::c_int = 0x008a; +pub const _SC_V7_LP64_OFF64: ::c_int = 0x008b; +pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 0x008c; +pub const _SC_XOPEN_STREAMS: ::c_int = 0x008d; +pub const _SC_XOPEN_UUCP: ::c_int = 0x008e; +pub const _SC_LEVEL1_ICACHE_SIZE: ::c_int = 0x008f; +pub const _SC_LEVEL1_ICACHE_ASSOC: ::c_int = 0x0090; +pub const _SC_LEVEL1_ICACHE_LINESIZE: ::c_int = 0x0091; +pub const _SC_LEVEL1_DCACHE_SIZE: ::c_int = 0x0092; +pub const _SC_LEVEL1_DCACHE_ASSOC: ::c_int = 0x0093; +pub const _SC_LEVEL1_DCACHE_LINESIZE: ::c_int = 0x0094; +pub const _SC_LEVEL2_CACHE_SIZE: ::c_int = 0x0095; +pub const _SC_LEVEL2_CACHE_ASSOC: ::c_int = 0x0096; +pub const _SC_LEVEL2_CACHE_LINESIZE: ::c_int = 0x0097; +pub const _SC_LEVEL3_CACHE_SIZE: ::c_int = 0x0098; +pub const _SC_LEVEL3_CACHE_ASSOC: ::c_int = 0x0099; +pub const _SC_LEVEL3_CACHE_LINESIZE: ::c_int = 0x009a; +pub const _SC_LEVEL4_CACHE_SIZE: ::c_int = 0x009b; +pub const _SC_LEVEL4_CACHE_ASSOC: ::c_int = 0x009c; +pub const _SC_LEVEL4_CACHE_LINESIZE: ::c_int = 0x009d; pub const F_LOCK: ::c_int = 1; pub const F_TEST: ::c_int = 3; From 16b06ea3b67538c27ab6fbaa9fc43a67eac76e31 Mon Sep 17 00:00:00 2001 From: Steve Lau Date: Wed, 3 Apr 2024 10:43:26 +0800 Subject: [PATCH 0025/1228] feat: more _PC_XXX constants for apple targets --- libc-test/semver/apple.txt | 18 ++++++++++++++++++ src/unix/bsd/apple/mod.rs | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index ce9c6097bbb88..42966b54309c3 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -2284,3 +2284,21 @@ wait4 waitid xsw_usage xucred +_PC_NAME_CHARS_MAX +_PC_CASE_SENSITIVE +_PC_CASE_PRESERVING +_PC_EXTENDED_SECURITY_NP +_PC_AUTH_OPAQUE_NP +_PC_2_SYMLINKS +_PC_ALLOC_SIZE_MIN +_PC_ASYNC_IO +_PC_FILESIZEBITS +_PC_PRIO_IO +_PC_REC_INCR_XFER_SIZE +_PC_REC_MAX_XFER_SIZE +_PC_REC_MIN_XFER_SIZE +_PC_REC_XFER_ALIGN +_PC_SYMLINK_MAX +_PC_SYNC_IO +_PC_XATTR_SIZE_BITS +_PC_MIN_HOLE_SIZE diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index d53282402667b..74a87eccb165a 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -3227,6 +3227,24 @@ pub const _PC_PIPE_BUF: ::c_int = 6; pub const _PC_CHOWN_RESTRICTED: ::c_int = 7; pub const _PC_NO_TRUNC: ::c_int = 8; pub const _PC_VDISABLE: ::c_int = 9; +pub const _PC_NAME_CHARS_MAX: ::c_int = 10; +pub const _PC_CASE_SENSITIVE: ::c_int = 11; +pub const _PC_CASE_PRESERVING: ::c_int = 12; +pub const _PC_EXTENDED_SECURITY_NP: ::c_int = 13; +pub const _PC_AUTH_OPAQUE_NP: ::c_int = 14; +pub const _PC_2_SYMLINKS: ::c_int = 15; +pub const _PC_ALLOC_SIZE_MIN: ::c_int = 16; +pub const _PC_ASYNC_IO: ::c_int = 17; +pub const _PC_FILESIZEBITS: ::c_int = 18; +pub const _PC_PRIO_IO: ::c_int = 19; +pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 20; +pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 21; +pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 22; +pub const _PC_REC_XFER_ALIGN: ::c_int = 23; +pub const _PC_SYMLINK_MAX: ::c_int = 24; +pub const _PC_SYNC_IO: ::c_int = 25; +pub const _PC_XATTR_SIZE_BITS: ::c_int = 26; +pub const _PC_MIN_HOLE_SIZE: ::c_int = 27; pub const O_EVTONLY: ::c_int = 0x00008000; pub const O_NOCTTY: ::c_int = 0x00020000; pub const O_DIRECTORY: ::c_int = 0x00100000; From 4b747613a527320504ba2017cb2d8891758c6e0d Mon Sep 17 00:00:00 2001 From: Steve Lau Date: Sun, 28 Apr 2024 08:59:27 +0800 Subject: [PATCH 0026/1228] feat: O_EXEC/O_SEARCH for apple platforms --- libc-test/semver/apple.txt | 2 ++ src/unix/bsd/apple/mod.rs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index 42966b54309c3..e01934bf0ceb3 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -1035,11 +1035,13 @@ OXTABS O_ASYNC O_DSYNC O_EVTONLY +O_EXEC O_EXLOCK O_FSYNC O_NDELAY O_NOCTTY O_NOFOLLOW_ANY +O_SEARCH O_SHLOCK O_SYMLINK O_SYNC diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 74a87eccb165a..d9e3831ea2e1a 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -3252,6 +3252,8 @@ pub const O_SYMLINK: ::c_int = 0x00200000; pub const O_DSYNC: ::c_int = 0x00400000; pub const O_CLOEXEC: ::c_int = 0x01000000; pub const O_NOFOLLOW_ANY: ::c_int = 0x20000000; +pub const O_EXEC: ::c_int = 0x40000000; +pub const O_SEARCH: ::c_int = O_EXEC | O_DIRECTORY; pub const S_IFIFO: mode_t = 4096; pub const S_IFCHR: mode_t = 8192; pub const S_IFBLK: mode_t = 24576; From 1c7f8fcd8a224cdd5f4eb1202f83f76a8023e8d1 Mon Sep 17 00:00:00 2001 From: Niels Sascha Reedijk Date: Sat, 30 Mar 2024 07:47:03 +0000 Subject: [PATCH 0027/1228] Haiku: synchronize with post R1-beta 4 changes in libc The following changes in Haiku's POSIX library are included, post R1 Beta 4 (hrev56578) [hrev56665] Added missing posixoptions and sysconf constants according POSIX.1-2017 standard [hrev56989] headers/posix: Add TIOCM_RNG as a synonym for TIOCM_RI [hrev56990] termios: New ioctl: TIOCOUTQ [hrev56995] tty: Implement exclusive mode [ 05bd3f0] termios.h: Undefine/remove some unimplemented BeOS extensions [hrev57422] libroot: Add stpncpy [hrev57593] Change `AT_FDCWD` from -1 to -100 --- src/unix/haiku/mod.rs | 86 ++++++++++++++++++++++++++++++++++++++++--- src/unix/mod.rs | 9 +++++ 2 files changed, 90 insertions(+), 5 deletions(-) diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index e7b0f34dd371a..0e60a1c6e267b 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -706,7 +706,7 @@ pub const F_RDLCK: ::c_int = 0x0040; pub const F_UNLCK: ::c_int = 0x0200; pub const F_WRLCK: ::c_int = 0x0400; -pub const AT_FDCWD: ::c_int = -1; +pub const AT_FDCWD: ::c_int = -100; pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x01; pub const AT_SYMLINK_FOLLOW: ::c_int = 0x02; pub const AT_REMOVEDIR: ::c_int = 0x04; @@ -1192,6 +1192,80 @@ pub const _SC_REGEXP: ::c_int = 62; pub const _SC_SYMLOOP_MAX: ::c_int = 63; pub const _SC_SHELL: ::c_int = 64; pub const _SC_TTY_NAME_MAX: ::c_int = 65; +pub const _SC_ADVISORY_INFO: ::c_int = 66; +pub const _SC_BARRIERS: ::c_int = 67; +pub const _SC_CLOCK_SELECTION: ::c_int = 68; +pub const _SC_FSYNC: ::c_int = 69; +pub const _SC_IPV6: ::c_int = 70; +pub const _SC_MEMLOCK: ::c_int = 71; +pub const _SC_MEMLOCK_RANGE: ::c_int = 72; +pub const _SC_MESSAGE_PASSING: ::c_int = 73; +pub const _SC_PRIORITIZED_IO: ::c_int = 74; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 75; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 76; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 77; +pub const _SC_SPAWN: ::c_int = 78; +pub const _SC_SPIN_LOCKS: ::c_int = 79; +pub const _SC_SPORADIC_SERVER: ::c_int = 80; +pub const _SC_SYNCHRONIZED_IO: ::c_int = 81; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 82; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 83; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 84; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 85; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 86; +pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 87; +pub const _SC_TIMEOUTS: ::c_int = 88; +pub const _SC_TRACE: ::c_int = 89; +pub const _SC_TRACE_EVENT_FILTER: ::c_int = 90; +pub const _SC_TRACE_INHERIT: ::c_int = 91; +pub const _SC_TRACE_LOG: ::c_int = 92; +pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 93; +pub const _SC_V6_ILP32_OFF32: ::c_int = 94; +pub const _SC_V6_ILP32_OFFBIG: ::c_int = 95; +pub const _SC_V6_LP64_OFF64: ::c_int = 96; +pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 97; +pub const _SC_V7_ILP32_OFF32: ::c_int = 98; +pub const _SC_V7_ILP32_OFFBIG: ::c_int = 99; +pub const _SC_V7_LP64_OFF64: ::c_int = 100; +pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 101; +pub const _SC_2_C_BIND: ::c_int = 102; +pub const _SC_2_C_DEV: ::c_int = 103; +pub const _SC_2_CHAR_TERM: ::c_int = 104; +pub const _SC_2_FORT_DEV: ::c_int = 105; +pub const _SC_2_FORT_RUN: ::c_int = 106; +pub const _SC_2_LOCALEDEF: ::c_int = 107; +pub const _SC_2_PBS: ::c_int = 108; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 109; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 110; +pub const _SC_2_PBS_LOCATE: ::c_int = 111; +pub const _SC_2_PBS_MESSAGE: ::c_int = 112; +pub const _SC_2_PBS_TRACK: ::c_int = 113; +pub const _SC_2_SW_DEV: ::c_int = 114; +pub const _SC_2_UPE: ::c_int = 115; +pub const _SC_2_VERSION: ::c_int = 116; +pub const _SC_XOPEN_CRYPT: ::c_int = 117; +pub const _SC_XOPEN_ENH_I18N: ::c_int = 118; +pub const _SC_XOPEN_REALTIME: ::c_int = 119; +pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 120; +pub const _SC_XOPEN_SHM: ::c_int = 121; +pub const _SC_XOPEN_STREAMS: ::c_int = 122; +pub const _SC_XOPEN_UNIX: ::c_int = 123; +pub const _SC_XOPEN_UUCP: ::c_int = 124; +pub const _SC_XOPEN_VERSION: ::c_int = 125; +pub const _SC_BC_BASE_MAX: ::c_int = 129; +pub const _SC_BC_DIM_MAX: ::c_int = 130; +pub const _SC_BC_SCALE_MAX: ::c_int = 131; +pub const _SC_BC_STRING_MAX: ::c_int = 132; +pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 133; +pub const _SC_EXPR_NEST_MAX: ::c_int = 134; +pub const _SC_LINE_MAX: ::c_int = 135; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 136; +pub const _SC_MQ_OPEN_MAX: ::c_int = 137; +pub const _SC_MQ_PRIO_MAX: ::c_int = 138; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 139; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 140; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 141; +pub const _SC_RE_DUP_MAX: ::c_int = 142; pub const PTHREAD_STACK_MIN: ::size_t = 8192; @@ -1386,8 +1460,9 @@ pub const TCGB_RI: ::c_int = 0x04; pub const TCGB_DCD: ::c_int = 0x08; pub const TIOCM_CTS: ::c_int = TCGB_CTS; pub const TIOCM_CD: ::c_int = TCGB_DCD; -pub const TIOCM_CAR: ::c_int = TIOCM_CD; +pub const TIOCM_CAR: ::c_int = TCGB_DCD; pub const TIOCM_RI: ::c_int = TCGB_RI; +pub const TIOCM_RNG: ::c_int = TCGB_RI; pub const TIOCM_DSR: ::c_int = TCGB_DSR; pub const TIOCM_DTR: ::c_int = 0x10; pub const TIOCM_RTS: ::c_int = 0x20; @@ -1430,17 +1505,14 @@ pub const TCGETA: ::c_ulong = 0x8000; pub const TCSETA: ::c_ulong = TCGETA + 1; pub const TCSETAF: ::c_ulong = TCGETA + 2; pub const TCSETAW: ::c_ulong = TCGETA + 3; -pub const TCWAITEVENT: ::c_ulong = TCGETA + 4; pub const TCSBRK: ::c_ulong = TCGETA + 5; pub const TCFLSH: ::c_ulong = TCGETA + 6; pub const TCXONC: ::c_ulong = TCGETA + 7; -pub const TCQUERYCONNECTED: ::c_ulong = TCGETA + 8; pub const TCGETBITS: ::c_ulong = TCGETA + 9; pub const TCSETDTR: ::c_ulong = TCGETA + 10; pub const TCSETRTS: ::c_ulong = TCGETA + 11; pub const TIOCGWINSZ: ::c_ulong = TCGETA + 12; pub const TIOCSWINSZ: ::c_ulong = TCGETA + 13; -pub const TCVTIME: ::c_ulong = TCGETA + 14; pub const TIOCGPGRP: ::c_ulong = TCGETA + 15; pub const TIOCSPGRP: ::c_ulong = TCGETA + 16; pub const TIOCSCTTY: ::c_ulong = TCGETA + 17; @@ -1450,6 +1522,10 @@ pub const TIOCSBRK: ::c_ulong = TCGETA + 20; pub const TIOCCBRK: ::c_ulong = TCGETA + 21; pub const TIOCMBIS: ::c_ulong = TCGETA + 22; pub const TIOCMBIC: ::c_ulong = TCGETA + 23; +pub const TIOCGSID: ::c_ulong = TCGETA + 24; +pub const TIOCOUTQ: ::c_ulong = TCGETA + 25; +pub const TIOCEXCL: ::c_ulong = TCGETA + 26; +pub const TIOCNXCL: ::c_ulong = TCGETA + 27; pub const PRIO_PROCESS: ::c_int = 0; pub const PRIO_PGRP: ::c_int = 1; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 816bcae86ff3e..49984d3f00c65 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1409,6 +1409,15 @@ cfg_if! { target_os = "nto")))] { extern "C" { pub fn adjtime(delta: *const timeval, olddelta: *mut timeval) -> ::c_int; + } + } +} + +cfg_if! { + if #[cfg(not(any(target_os = "emscripten", + target_os = "android", + target_os = "nto")))] { + extern "C" { pub fn stpncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; } } From c0a693644c22fdb1a13b2e436fd0f5941a746aa4 Mon Sep 17 00:00:00 2001 From: ur4t <46435411+ur4t@users.noreply.github.com> Date: Sat, 30 Mar 2024 13:33:01 +0800 Subject: [PATCH 0028/1228] Add constant AT_MINSIGSTKSZ introduced by glibc 2.35 --- libc-test/semver/linux.txt | 1 + src/unix/linux_like/linux/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 0ac88784343df..123f8dab404e8 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -169,6 +169,7 @@ AT_GID AT_HWCAP AT_HWCAP2 AT_IGNORE +AT_MINSIGSTKSZ AT_NOTELF AT_NO_AUTOMOUNT AT_NULL diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index e8fb33d2c40d6..ee2999861f5c5 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1821,6 +1821,7 @@ pub const AT_EXECFN: ::c_ulong = 31; // defined in arch//include/uapi/asm/auxvec.h but has the same value // wherever it is defined. pub const AT_SYSINFO_EHDR: ::c_ulong = 33; +pub const AT_MINSIGSTKSZ: ::c_ulong = 51; pub const GLOB_ERR: ::c_int = 1 << 0; pub const GLOB_MARK: ::c_int = 1 << 1; From 82206836f7b61cbf5a4522da02cce54123807e7d Mon Sep 17 00:00:00 2001 From: ur4t <46435411+ur4t@users.noreply.github.com> Date: Sat, 30 Mar 2024 14:08:05 +0800 Subject: [PATCH 0029/1228] Double quote variables in shell scripts --- ci/install-rust.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ci/install-rust.sh b/ci/install-rust.sh index d7e2be8070dc0..d7a035af21689 100644 --- a/ci/install-rust.sh +++ b/ci/install-rust.sh @@ -13,12 +13,12 @@ fi if [ "$OS" = "windows" ]; then : "${TARGET?The TARGET environment variable must be set.}" rustup set profile minimal - rustup update --force $toolchain-"$TARGET" - rustup default $toolchain-"$TARGET" + rustup update --force "$toolchain-$TARGET" + rustup default "$toolchain-$TARGET" else rustup set profile minimal - rustup update --force $toolchain - rustup default $toolchain + rustup update --force "$toolchain" + rustup default "$toolchain" fi if [ -n "$TARGET" ]; then From e79e95f7909c9e04b620b4ec088baaec0377ebb6 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Tue, 12 Mar 2024 01:05:50 +0000 Subject: [PATCH 0030/1228] adding getentropy/getrandom to dragonflybsd. --- libc-test/semver/dragonfly.txt | 5 +++++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 7 ------- src/unix/bsd/freebsdlike/mod.rs | 8 ++++++++ 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/libc-test/semver/dragonfly.txt b/libc-test/semver/dragonfly.txt index 8135be3b4948d..febed0b3a7aa9 100644 --- a/libc-test/semver/dragonfly.txt +++ b/libc-test/semver/dragonfly.txt @@ -326,6 +326,9 @@ GLOB_NOESCAPE GLOB_NOMATCH GLOB_NOSORT GLOB_NOSPACE +GRND_INSECURE +GRND_NONBLOCK +GRND_RANDOM HW_BYTEORDER HW_DISKNAMES HW_DISKSTATS @@ -1308,6 +1311,7 @@ fstatfs futimes getdomainname getdtablesize +getentropy getgrent getgrent_r getgrgid @@ -1331,6 +1335,7 @@ getprogname getpwent getpwent_r getpwnam_r +getrandom getresgid getresuid getrlimit diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 78314084cc6ec..195c6cb3ead3a 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -3875,11 +3875,6 @@ pub const F_SEAL_WRITE: ::c_int = 8; // for use with fspacectl pub const SPACECTL_DEALLOC: ::c_int = 1; -// For getrandom() -pub const GRND_NONBLOCK: ::c_uint = 0x1; -pub const GRND_RANDOM: ::c_uint = 0x2; -pub const GRND_INSECURE: ::c_uint = 0x4; - // For realhostname* api pub const HOSTNAME_FOUND: ::c_int = 0; pub const HOSTNAME_INCORRECTNAME: ::c_int = 1; @@ -5393,8 +5388,6 @@ extern "C" { 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; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 00a944e42bf2d..9b555e42edf2d 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1456,6 +1456,11 @@ pub const RB_GDB: ::c_int = 0x8000; pub const RB_MUTE: ::c_int = 0x10000; pub const RB_SELFTEST: ::c_int = 0x20000; +// For getrandom() +pub const GRND_NONBLOCK: ::c_uint = 0x1; +pub const GRND_RANDOM: ::c_uint = 0x2; +pub const GRND_INSECURE: ::c_uint = 0x4; + safe_f! { pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { status == 0x13 @@ -1829,6 +1834,9 @@ extern "C" { abs_timeout: *const ::timespec, ) -> ::c_int; pub fn mq_unlink(name: *const ::c_char) -> ::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; } #[link(name = "util")] From 4d6fe50954424fd89a5a229f8e0dbc9862d6809b Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Tue, 27 Feb 2024 15:53:25 -0800 Subject: [PATCH 0031/1228] Move strftime, strftime_l, strptime to linux_like Bionic, uclibc and emscripten all support these functions. See: https://github.com/aosp-mirror/platform_bionic/blob/2215ad406b253f12e270cdd0876e19e9df2aa6d4/libc/include/time.h https://github.com/wbx-github/uclibc-ng/blame/fc3b6dc46a80e1f4aa468472aa6c7083f3bc6581/include/time.h https://github.com/emscripten-core/emscripten/blob/e25fa53069665c1f6c3be4ba5ed1d6ae82339849/system/lib/libc/musl/include/time.h --- libc-test/semver/linux-gnu.txt | 3 --- libc-test/semver/linux-musl.txt | 3 --- libc-test/semver/linux.txt | 3 +++ src/unix/linux_like/linux/gnu/mod.rs | 15 --------------- src/unix/linux_like/linux/musl/mod.rs | 15 --------------- src/unix/linux_like/mod.rs | 15 +++++++++++++++ 6 files changed, 18 insertions(+), 36 deletions(-) diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 9bbdee0771b60..09625b8280c5a 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -691,9 +691,6 @@ euidaccess eaccess asctime_r ctime_r -strftime -strftime_l -strptime dirname posix_basename gnu_basename diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index 2db034f813be7..7e5a81194bdf8 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -77,8 +77,5 @@ timex euidaccess eaccess asctime_r -strftime -strftime_l -strptime dirname basename diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 0ac88784343df..44e64d726ca4b 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -3832,8 +3832,11 @@ statvfs64 strcasecmp strcasestr strchrnul +strftime +strftime_l strncasecmp strndup +strptime strsignal swapoff swapon diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 9af519e9077df..4b3ee5a15ce34 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1478,21 +1478,6 @@ extern "C" { pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char; pub fn ctime_r(timep: *const time_t, buf: *mut ::c_char) -> *mut ::c_char; - pub fn strftime( - s: *mut ::c_char, - max: ::size_t, - format: *const ::c_char, - tm: *const ::tm, - ) -> ::size_t; - pub fn strftime_l( - s: *mut ::c_char, - max: ::size_t, - format: *const ::c_char, - tm: *const ::tm, - locale: ::locale_t, - ) -> ::size_t; - pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; /// POSIX version of `basename(3)`, defined in `libgen.h`. #[link_name = "__xpg_basename"] diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 080c9ba8278b1..36d8c20381432 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -883,21 +883,6 @@ extern "C" { pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char; - pub fn strftime( - s: *mut ::c_char, - max: ::size_t, - format: *const ::c_char, - tm: *const ::tm, - ) -> ::size_t; - pub fn strftime_l( - s: *mut ::c_char, - max: ::size_t, - format: *const ::c_char, - tm: *const ::tm, - locale: ::locale_t, - ) -> ::size_t; - pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; pub fn basename(path: *mut ::c_char) -> *mut ::c_char; } diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 8f71782dce058..e4740d76aeef6 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1795,6 +1795,21 @@ extern "C" { pub fn uname(buf: *mut ::utsname) -> ::c_int; pub fn strchrnul(s: *const ::c_char, c: ::c_int) -> *mut ::c_char; + + pub fn strftime( + s: *mut ::c_char, + max: ::size_t, + format: *const ::c_char, + tm: *const ::tm, + ) -> ::size_t; + pub fn strftime_l( + s: *mut ::c_char, + max: ::size_t, + format: *const ::c_char, + tm: *const ::tm, + locale: ::locale_t, + ) -> ::size_t; + pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; } // LFS64 extensions From 41286408751b62ba22ce9fb579ed8e60479785dc Mon Sep 17 00:00:00 2001 From: Severen Redwood Date: Sun, 17 Mar 2024 18:57:01 +1300 Subject: [PATCH 0032/1228] Correct the value of FAN_MARK_IGNORE --- src/unix/linux_like/linux/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index ee2999861f5c5..1365da17f03d2 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -4074,7 +4074,7 @@ pub const FAN_MARK_IGNORED_MASK: ::c_uint = 0x0000_0020; pub const FAN_MARK_IGNORED_SURV_MODIFY: ::c_uint = 0x0000_0040; pub const FAN_MARK_FLUSH: ::c_uint = 0x0000_0080; pub const FAN_MARK_EVICTABLE: ::c_uint = 0x0000_0200; -pub const FAN_MARK_IGNORE: ::c_uint = 0x0000_0100; +pub const FAN_MARK_IGNORE: ::c_uint = 0x0000_0400; pub const FAN_MARK_INODE: ::c_uint = 0x0000_0000; pub const FAN_MARK_MOUNT: ::c_uint = 0x0000_0010; From 0b08bd511e0879eb41828885c4d3a2249c4f5bb6 Mon Sep 17 00:00:00 2001 From: Logan Magee Date: Mon, 25 Mar 2024 15:33:02 -0700 Subject: [PATCH 0033/1228] Add `SYS_lseek` and `SYS_mmap` for aarch64 Android Values are sourced from https://android.googlesource.com/platform/bionic/+/0339184/libc/kernel/uapi/asm-generic/unistd.h. --- libc-test/semver/android-aarch64.txt | 2 ++ src/unix/linux_like/android/b64/aarch64/mod.rs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/libc-test/semver/android-aarch64.txt b/libc-test/semver/android-aarch64.txt index 9b4cc355e3f9e..8a38e32dd5022 100644 --- a/libc-test/semver/android-aarch64.txt +++ b/libc-test/semver/android-aarch64.txt @@ -10,6 +10,8 @@ HWCAP2_SVESM4 PROT_BTI PROT_MTE SYS_arch_specific_syscall +SYS_lseek +SYS_mmap SYS_syscalls SYS_fcntl __system_property_wait diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index ac67fddabecd4..7b87a1d49dc3e 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -191,6 +191,7 @@ pub const SYS_vhangup: ::c_long = 58; pub const SYS_pipe2: ::c_long = 59; pub const SYS_quotactl: ::c_long = 60; pub const SYS_getdents64: ::c_long = 61; +pub const SYS_lseek: ::c_long = 62; pub const SYS_read: ::c_long = 63; pub const SYS_write: ::c_long = 64; pub const SYS_readv: ::c_long = 65; @@ -347,6 +348,7 @@ pub const SYS_request_key: ::c_long = 218; pub const SYS_keyctl: ::c_long = 219; pub const SYS_clone: ::c_long = 220; pub const SYS_execve: ::c_long = 221; +pub const SYS_mmap: ::c_long = 222; pub const SYS_swapon: ::c_long = 224; pub const SYS_swapoff: ::c_long = 225; pub const SYS_mprotect: ::c_long = 226; From e5bc243cc83e9a94b7068bf920cb6a392f1e995b Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Tue, 30 Apr 2024 19:40:41 +0900 Subject: [PATCH 0034/1228] Update FreeBSD 13 CI image --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index e428871c41b84..1650f3ead158b 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,7 +1,7 @@ task: name: nightly x86_64-unknown-freebsd-13 freebsd_instance: - image_family: freebsd-13-2 + image_family: freebsd-13-3 setup_script: - pkg install -y libnghttp2 curl - curl https://sh.rustup.rs -sSf --output rustup.sh From fceb18ee4154d55063d1bfaaeef5c0fa3ed4b83b Mon Sep 17 00:00:00 2001 From: Ryan Zoeller Date: Wed, 27 Mar 2024 19:17:41 -0500 Subject: [PATCH 0035/1228] android: add FUTEX_LOCK_PI2 --- libc-test/semver/android.txt | 1 + src/unix/linux_like/android/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 36f808fdce816..21b277a018747 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -627,6 +627,7 @@ FUTEX_CMP_REQUEUE FUTEX_CMP_REQUEUE_PI FUTEX_FD FUTEX_LOCK_PI +FUTEX_LOCK_PI2 FUTEX_PRIVATE_FLAG FUTEX_REQUEUE FUTEX_TRYLOCK_PI diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 8e5032aa81576..ce8e9782c49a0 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3017,6 +3017,7 @@ pub const FUTEX_WAIT_BITSET: ::c_int = 9; pub const FUTEX_WAKE_BITSET: ::c_int = 10; pub const FUTEX_WAIT_REQUEUE_PI: ::c_int = 11; pub const FUTEX_CMP_REQUEUE_PI: ::c_int = 12; +pub const FUTEX_LOCK_PI2: ::c_int = 13; pub const FUTEX_PRIVATE_FLAG: ::c_int = 128; pub const FUTEX_CLOCK_REALTIME: ::c_int = 256; From dc88f4cc91d00743411d7e91dbe59aecb77f04f7 Mon Sep 17 00:00:00 2001 From: Alisa Sireneva Date: Wed, 1 May 2024 18:22:13 +0300 Subject: [PATCH 0036/1228] Fix out-of-bounds pointer arithmetic in CMSG_NXTHDR --- src/unix/linux_like/linux/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 1365da17f03d2..99c06426771f1 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -4650,7 +4650,7 @@ f! { as *mut cmsghdr; let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; - if (next.offset(1)) as usize > max || + if (next.wrapping_offset(1)) as usize > max || next as usize + super::CMSG_ALIGN((*next).cmsg_len as usize) > max { 0 as *mut cmsghdr From 03e47e6e770504a75f776127c5c9c1b44b6833b2 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Fri, 3 May 2024 09:11:04 +0900 Subject: [PATCH 0037/1228] Revert "Support posix_spawn on Android" --- libc-test/build.rs | 36 ++-------- src/unix/linux_like/linux/mod.rs | 105 ++++++++++++++++++++++++++++ src/unix/linux_like/mod.rs | 116 ------------------------------- 3 files changed, 110 insertions(+), 147 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index ee211ebbf227f..2b15c958d2d51 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1613,7 +1613,6 @@ fn test_android(target: &str) { "sched.h", "semaphore.h", "signal.h", - "spawn.h", "stddef.h", "stdint.h", "stdio.h", @@ -1980,30 +1979,14 @@ fn test_android(target: &str) { // Added in API level 28, but some tests use level 24. "getrandom" => true, + + // Added in API level 28, but some tests use level 24. "syncfs" => true, + + // Added in API level 28, but some tests use level 24. "pthread_attr_getinheritsched" | "pthread_attr_setinheritsched" => true, + // Added in API level 28, but some tests use level 24. "fread_unlocked" | "fwrite_unlocked" | "fgets_unlocked" | "fflush_unlocked" => true, - "posix_spawn" - | "posix_spawnp" - | "posix_spawnattr_init" - | "posix_spawnattr_destroy" - | "posix_spawnattr_getsigdefault" - | "posix_spawnattr_setsigdefault" - | "posix_spawnattr_getsigmask" - | "posix_spawnattr_setsigmask" - | "posix_spawnattr_getflags" - | "posix_spawnattr_setflags" - | "posix_spawnattr_getpgroup" - | "posix_spawnattr_setpgroup" - | "posix_spawnattr_getschedpolicy" - | "posix_spawnattr_setschedpolicy" - | "posix_spawnattr_getschedparam" - | "posix_spawnattr_setschedparam" - | "posix_spawn_file_actions_init" - | "posix_spawn_file_actions_destroy" - | "posix_spawn_file_actions_addopen" - | "posix_spawn_file_actions_addclose" - | "posix_spawn_file_actions_adddup2" => true, // FIXME: bad function pointers: "isalnum" | "isalpha" | "iscntrl" | "isdigit" | "isgraph" | "islower" | "isprint" @@ -2726,7 +2709,6 @@ fn test_emscripten(target: &str) { "semaphore.h", "shadow.h", "signal.h", - "spawn.h", "stddef.h", "stdint.h", "stdio.h", @@ -3620,10 +3602,6 @@ fn test_linux(target: &str) { "priority_t" if musl => true, "name_t" if musl => true, - // These are intended to be opaque, but glibc and musl define them. - "posix_spawn_file_actions_t" => true, - "posix_spawnattr_t" => true, - t => { if musl { // LFS64 types have been removed in musl 1.2.4+ @@ -3772,10 +3750,6 @@ fn test_linux(target: &str) { // kernel so we can drop this and test the type once this new version is used in CI. "sched_attr" => true, - // These are intended to be opaque, but glibc and musl define them. - "posix_spawn_file_actions_t" => true, - "posix_spawnattr_t" => true, - _ => false, } }); diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 99c06426771f1..dc0d3eaca5335 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -452,6 +452,26 @@ s! { pub mnt_passno: ::c_int, } + pub struct posix_spawn_file_actions_t { + __allocated: ::c_int, + __used: ::c_int, + __actions: *mut ::c_int, + __pad: [::c_int; 16], + } + + pub struct posix_spawnattr_t { + __flags: ::c_short, + __pgrp: ::pid_t, + __sd: ::sigset_t, + __ss: ::sigset_t, + #[cfg(any(target_env = "musl", target_env = "ohos"))] + __prio: ::c_int, + #[cfg(not(any(target_env = "musl", target_env = "ohos")))] + __sp: ::sched_param, + __policy: ::c_int, + __pad: [::c_int; 16], + } + pub struct genlmsghdr { pub cmd: u8, pub version: u8, @@ -1839,6 +1859,8 @@ pub const POSIX_MADV_NORMAL: ::c_int = 0; pub const POSIX_MADV_RANDOM: ::c_int = 1; pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; pub const POSIX_MADV_WILLNEED: ::c_int = 3; +pub const POSIX_SPAWN_USEVFORK: ::c_int = 64; +pub const POSIX_SPAWN_SETSID: ::c_int = 128; pub const S_IEXEC: mode_t = 64; pub const S_IWRITE: mode_t = 128; @@ -2596,6 +2618,13 @@ 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 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_SETSCHEDPARAM: ::c_int = 0x10; +pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x20; + pub const NLMSG_NOOP: ::c_int = 0x1; pub const NLMSG_ERROR: ::c_int = 0x2; pub const NLMSG_DONE: ::c_int = 0x3; @@ -5425,6 +5454,82 @@ extern "C" { pub fn endmntent(streamp: *mut ::FILE) -> ::c_int; pub fn hasmntopt(mnt: *const ::mntent, opt: *const ::c_char) -> *mut ::c_char; + 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; pub fn fread_unlocked( buf: *mut ::c_void, size: ::size_t, diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index e4740d76aeef6..749c8a16d0148 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -6,13 +6,6 @@ pub type timer_t = *mut ::c_void; pub type key_t = ::c_int; pub type id_t = ::c_uint; -cfg_if! { - if #[cfg(not(target_os = "emscripten"))] { - pub type posix_spawn_file_actions_t = *mut ::c_void; - pub type posix_spawnattr_t = *mut ::c_void; - } -} - missing! { #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} @@ -1538,19 +1531,6 @@ cfg_if! { } } -cfg_if! { - if #[cfg(not(target_os = "emscripten"))] { - 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_SETSCHEDPARAM: ::c_int = 0x10; - pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x20; - pub const POSIX_SPAWN_USEVFORK: ::c_int = 0x40; - pub const POSIX_SPAWN_SETSID: ::c_int = 0x80; - } -} - const_fn! { {const} fn CMSG_ALIGN(len: usize) -> usize { len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) @@ -1915,102 +1895,6 @@ cfg_if! { } } -cfg_if! { - if #[cfg(not(target_os = "emscripten"))] { - extern "C" { - 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; - } - } -} - cfg_if! { if #[cfg(target_os = "emscripten")] { mod emscripten; From 853bdfd90ec414424f085b197b7fd63fa5e07ff6 Mon Sep 17 00:00:00 2001 From: Lzu Tao Date: Tue, 7 May 2024 01:01:47 +0700 Subject: [PATCH 0038/1228] ci: wrong cfg emscripten --- build.rs | 3 ++- libc-test/test/makedev.rs | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/build.rs b/build.rs index 40d4140e8f65e..ee0d86edecb81 100644 --- a/build.rs +++ b/build.rs @@ -8,6 +8,7 @@ use std::string::String; // make sure to add it to this list as well. const ALLOWED_CFGS: &'static [&'static str] = &[ "emscripten_new_stat_abi", + "espidf_time64", "freebsd10", "freebsd11", "freebsd12", @@ -51,7 +52,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(); + let libc_check_cfg = env::var("LIBC_CHECK_CFG").is_ok() || rustc_minor_ver >= 80; if env::var("CARGO_FEATURE_USE_STD").is_ok() { println!( diff --git a/libc-test/test/makedev.rs b/libc-test/test/makedev.rs index c9a92aa83e686..6b5b85efb8197 100644 --- a/libc-test/test/makedev.rs +++ b/libc-test/test/makedev.rs @@ -79,7 +79,7 @@ mod t { // These OSes allow 32 bits for both minor and major #[cfg(any( - target_os = "empscripten", + target_os = "emscripten", target_os = "freebsd", target_os = "fuchsia", target_os = "linux", From 0a61e7e7ee4d864038199cd6f8ed378abd7ea61c Mon Sep 17 00:00:00 2001 From: Lzu Tao Date: Tue, 7 May 2024 02:06:55 +0700 Subject: [PATCH 0039/1228] Fix warnings by `rustc --print cfg --target ci/switch.json` ``` warning: target json file contains unused fields: abi-blacklist, family, has-elf-tls, target-env ``` --- ci/switch.json | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/ci/switch.json b/ci/switch.json index bc1894879d7f7..c2df6610c5628 100644 --- a/ci/switch.json +++ b/ci/switch.json @@ -1,7 +1,5 @@ { - "family": "unix", "env": "newlib", - "target-env": "newlib", "target-family": "unix", "target-c-int-width": "32", "target-endian": "little", @@ -9,14 +7,6 @@ "os": "horizon", "arch": "aarch64", "panic-strategy": "unwind", - "abi-blacklist": [ - "stdcall", - "fastcall", - "vectorcall", - "thiscall", - "win64", - "sysv64" - ], "dynamic-linking" : false, "features": "+a53,+strict-align", "data-layout": "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128", @@ -24,7 +14,7 @@ "position-independent-executables" : true, "linker-flavor": "gcc", "llvm-target": "aarch64-unknown-none", - "has-elf-tls" : false, + "has-thread-local": false, "linker-is-gnu" : true, "disable-redzone" : true, "relocation-model" : "pic", @@ -34,4 +24,4 @@ "trap-unreachable" : true, "emit-debug-gdb-scripts" : true, "requires-uwtable" : true -} \ No newline at end of file +} From 5eff703b923d3e1b042e91bc67409cca961f3976 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Mon, 6 May 2024 15:00:03 -0600 Subject: [PATCH 0040/1228] redox: correct EPOLL constants --- src/unix/redox/mod.rs | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 19315c3872c88..5036f458067b6 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -677,22 +677,22 @@ pub const EPOLL_CLOEXEC: ::c_int = 0x0100_0000; pub const EPOLL_CTL_ADD: ::c_int = 1; pub const EPOLL_CTL_DEL: ::c_int = 2; pub const EPOLL_CTL_MOD: ::c_int = 3; -pub const EPOLLIN: ::c_int = 1; -pub const EPOLLPRI: ::c_int = 0; -pub const EPOLLOUT: ::c_int = 2; -pub const EPOLLRDNORM: ::c_int = 0; -pub const EPOLLNVAL: ::c_int = 0; -pub const EPOLLRDBAND: ::c_int = 0; -pub const EPOLLWRNORM: ::c_int = 0; -pub const EPOLLWRBAND: ::c_int = 0; -pub const EPOLLMSG: ::c_int = 0; -pub const EPOLLERR: ::c_int = 0; -pub const EPOLLHUP: ::c_int = 0; -pub const EPOLLRDHUP: ::c_int = 0; -pub const EPOLLEXCLUSIVE: ::c_int = 0; -pub const EPOLLWAKEUP: ::c_int = 0; -pub const EPOLLONESHOT: ::c_int = 0; -pub const EPOLLET: ::c_int = 0; +pub const EPOLLIN: ::c_int = 0x001; +pub const EPOLLPRI: ::c_int = 0x002; +pub const EPOLLOUT: ::c_int = 0x004; +pub const EPOLLERR: ::c_int = 0x008; +pub const EPOLLHUP: ::c_int = 0x010; +pub const EPOLLNVAL: ::c_int = 0x020; +pub const EPOLLRDNORM: ::c_int = 0x040; +pub const EPOLLRDBAND: ::c_int = 0x080; +pub const EPOLLWRNORM: ::c_int = 0x100; +pub const EPOLLWRBAND: ::c_int = 0x200; +pub const EPOLLMSG: ::c_int = 0x400; +pub const EPOLLRDHUP: ::c_int = 0x2000; +pub const EPOLLEXCLUSIVE: ::c_int = 1 << 28; +pub const EPOLLWAKEUP: ::c_int = 1 << 29; +pub const EPOLLONESHOT: ::c_int = 1 << 30; +pub const EPOLLET: ::c_int = 1 << 31; // sys/stat.h pub const S_IFMT: ::c_int = 0o0_170_000; From b2b2fd71f4cb866c2d3e4579a50a70aa460aab8e Mon Sep 17 00:00:00 2001 From: Lzu Tao Date: Tue, 7 May 2024 00:34:46 +0700 Subject: [PATCH 0041/1228] Readd posix_spawn{_file_actions_t,attr_t} on Android Co-authored-by: Jorge Aparicio --- libc-test/build.rs | 4 ++++ src/unix/linux_like/android/mod.rs | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 2b15c958d2d51..f8d797f126736 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1613,6 +1613,7 @@ fn test_android(target: &str) { "sched.h", "semaphore.h", "signal.h", + "spawn.h", "stddef.h", "stdint.h", "stdio.h", @@ -1767,6 +1768,9 @@ fn test_android(target: &str) { // These are tested in the `linux_elf.rs` file. "Elf64_Phdr" | "Elf32_Phdr" => true, + // These are intended to be opaque + "posix_spawn_file_actions_t" => true, + "posix_spawnattr_t" => true, _ => false, } }); diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index ce8e9782c49a0..fb0b06701507c 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -48,6 +48,10 @@ pub type Elf64_Xword = u64; pub type eventfd_t = u64; +// these structs sit behind a heap allocation on Android +pub type posix_spawn_file_actions_t = *mut ::c_void; +pub type posix_spawnattr_t = *mut ::c_void; + s! { pub struct stack_t { pub ss_sp: *mut ::c_void, From 80535f34aafbf089f201dfb217d659e36a18671a Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Fri, 17 May 2024 09:58:41 -0700 Subject: [PATCH 0042/1228] Revert "Upgrade Docker images to Ubuntu 23.10" on sparc64 This partially reverts commit 946c348bc7ce61fb8b92c27ea8328c8fbbcecf72. The test binaries were getting a symbol version for `GLIBC_2.38`, but the debian-11 image used for qemu doesn't have that new of glibc. --- ci/docker/sparc64-unknown-linux-gnu/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile index 99ba40276a568..ff6810a7fac58 100644 --- a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:23.10 +FROM ubuntu:22.04 RUN apt-get update && apt-get install -y --no-install-recommends \ curl ca-certificates \ From 73d2004d3e8ed9c15d46fd4e69b5f3f7dbbe86c7 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Fri, 17 May 2024 10:21:53 -0700 Subject: [PATCH 0043/1228] Skip `SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV` on sparc64 --- libc-test/build.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 2b15c958d2d51..2a48af6aff546 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3909,6 +3909,9 @@ fn test_linux(target: &str) { | "SW_CNT" if ppc64 || riscv64 => true, + // FIXME: requires more recent kernel headers on CI + "SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV" if sparc64 => true, + // FIXME: Not currently available in headers on ARM and musl. "NETLINK_GET_STRICT_CHK" if arm || musl => true, From 61331df06f425934fa43a506e25217f49a039a7c Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Fri, 17 May 2024 11:27:55 -0700 Subject: [PATCH 0044/1228] Also skip `MFD_EXEC` and `MFD_NOEXEC_SEAL` on sparc64 --- libc-test/build.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 2a48af6aff546..e7c1b8a2dcf31 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3910,7 +3910,10 @@ fn test_linux(target: &str) { if ppc64 || riscv64 => true, // FIXME: requires more recent kernel headers on CI - "SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV" if sparc64 => true, + | "MFD_EXEC" + | "MFD_NOEXEC_SEAL" + | "SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV" + if sparc64 => true, // FIXME: Not currently available in headers on ARM and musl. "NETLINK_GET_STRICT_CHK" if arm || musl => true, From 15c74a4faba398a579a3a551f77cf790d5abf1f8 Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Sun, 5 May 2024 23:28:10 +0200 Subject: [PATCH 0045/1228] Update version to 0.2.155 --- Cargo.toml | 2 +- libc-test/Cargo.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 48b8e189077c1..062f76472fa9c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.154" +version = "0.2.155" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index eee6fe83da0b1..b20b4a60cae4e 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc-test" -version = "0.2.154" +version = "0.2.155" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" build = "build.rs" @@ -12,7 +12,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.154" +version = "0.2.155" default-features = false [build-dependencies] From 4057a9aa8c8c9eb5249cf3e573565bf6723dc01c Mon Sep 17 00:00:00 2001 From: Lzu Tao Date: Wed, 22 May 2024 07:02:02 +0700 Subject: [PATCH 0046/1228] Migrate libc-test to 2018 edition edition: cannot update to 2021 edition because of libc msrv. cargo of rust 1.19 cannot understand edition key in cargo.toml. --- libc-test/Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index b20b4a60cae4e..9705c2ef1151a 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -1,6 +1,7 @@ [package] name = "libc-test" version = "0.2.155" +edition = "2018" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" build = "build.rs" From de2c8a7c53f0d45ae220541577f6dbaa6737f18c Mon Sep 17 00:00:00 2001 From: Lzu Tao Date: Wed, 22 May 2024 11:44:03 +0700 Subject: [PATCH 0047/1228] avoid rebuilding libc-test no semver vendor = 'unknown' --- libc-test/build.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index d16a86f209ea2..2dc7b44d5e73d 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -106,7 +106,10 @@ fn do_semver() { if family != os && os != "android" { process_semver_file(&mut output, &mut semver_root, &family); } - process_semver_file(&mut output, &mut semver_root, &vendor); + // We don't do semver for unknown targets. + if vendor != "unknown" { + process_semver_file(&mut output, &mut semver_root, &vendor); + } process_semver_file(&mut output, &mut semver_root, &os); let os_arch = format!("{}-{}", os, arch); process_semver_file(&mut output, &mut semver_root, &os_arch); @@ -154,6 +157,9 @@ fn process_semver_file>(output: &mut W, path: &mut Path } fn main() { + // Avoid unnecessary re-building. + println!("cargo:rerun-if-changed=build.rs"); + do_cc(); do_ctest(); do_semver(); From d6d56f1a524b64f77a38ac6568ee2195684a08b7 Mon Sep 17 00:00:00 2001 From: Lzu Tao Date: Wed, 22 May 2024 12:53:47 +0700 Subject: [PATCH 0048/1228] use rel path for semver --- libc-test/build.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 2dc7b44d5e73d..9dd29322fce29 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -95,8 +95,7 @@ fn do_semver() { let target_env = env::var("CARGO_CFG_TARGET_ENV").unwrap(); // `libc-test/semver` dir. - let mut semver_root = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()); - semver_root.push("semver"); + let mut semver_root = PathBuf::from("semver"); // NOTE: Windows has the same `family` as `os`, no point in including it // twice. From 481bda596dc581010bdd297c9126151f8bc3393f Mon Sep 17 00:00:00 2001 From: ur4t <46435411+ur4t@users.noreply.github.com> Date: Wed, 5 Jun 2024 00:16:41 +0800 Subject: [PATCH 0049/1228] add AT_MINSIGSTKSZ for android --- src/unix/linux_like/android/b64/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/linux_like/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs index 67d0dacf17e93..9639e1b4fa589 100644 --- a/src/unix/linux_like/android/b64/mod.rs +++ b/src/unix/linux_like/android/b64/mod.rs @@ -288,6 +288,7 @@ pub const AT_BASE_PLATFORM: ::c_ulong = 24; pub const AT_RANDOM: ::c_ulong = 25; pub const AT_HWCAP2: ::c_ulong = 26; pub const AT_EXECFN: ::c_ulong = 31; +pub const AT_MINSIGSTKSZ: ::c_ulong = 51; pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { value: 0, From 0b2cf175900a236627c8c44c1d2bfcb29bd4b7ca Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 16 Jun 2024 04:35:32 +0900 Subject: [PATCH 0050/1228] fix: Allow dead_code lint --- libc-test/build.rs | 3 +++ src/lib.rs | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 9dd29322fce29..30af90fc8844c 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2482,6 +2482,9 @@ fn test_freebsd(target: &str) { // FIXME: Removed in FreeBSD 15: "LOCAL_CONNWAIT" if freebsd_ver >= Some(15) => true, + // FIXME: The values has been changed in FreeBSD 15: + "CLOCK_BOOTTIME" if Some(15) <= freebsd_ver => true, + _ => false, } }); diff --git a/src/lib.rs b/src/lib.rs index 1b6f0c077ab24..764d8e4cd096a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,6 +12,10 @@ redundant_semicolons, unused_macros, unused_macro_rules, + // FIXME: temporarily allow dead_code to fix CI: + // - https://github.com/rust-lang/libc/issues/3740 + // - https://github.com/rust-lang/rust/pull/126456 + dead_code, )] #![cfg_attr(libc_deny_warnings, deny(warnings))] // Attributes needed when building as part of the standard library From d2ae83ac01570592362ffcf4d243300f365647ec Mon Sep 17 00:00:00 2001 From: Jonathan Schwender Date: Wed, 5 Jun 2024 12:46:32 +0200 Subject: [PATCH 0051/1228] ohos: Add `shm_open` and `shm_unlink` OpenHarmony 4.1 adds support for `shm_open` and `shm_unlink` so we can expose them unconditionally. Users developing for older OpenHarmony versions will only encounter a linker error if they attempt to use the functions. See OpenHarmony release notes for 4.1: https://gitee.com/openharmony/docs/blob/master/en/release-notes/OpenHarmony-v4.1-release.md#arkcompiler Signed-off-by: Jonathan Schwender (cherry picked from commit 9e248e212c5602cb4e98676e4c21ea0382663a12) --- src/unix/linux_like/linux/mod.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index dc0d3eaca5335..02be92488e7b0 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -4924,9 +4924,6 @@ cfg_if! { spbufp: *mut *mut spwd, ) -> ::c_int; - pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; - pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; pub fn mq_close(mqd: ::mqd_t) -> ::c_int; pub fn mq_unlink(name: *const ::c_char) -> ::c_int; @@ -5013,6 +5010,9 @@ extern "C" { pub fn getspnam(name: *const ::c_char) -> *mut spwd; + pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; + pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + // System V IPC pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; From 1faa23d51d1dbd9a66ca9f3b0988e2ff6fdcd9f4 Mon Sep 17 00:00:00 2001 From: Steve Lau Date: Sat, 15 Jun 2024 16:52:31 +0800 Subject: [PATCH 0052/1228] feat: IP_RECVTTL/IPV6_RECVHOPLIMIT for FreeBSD/DragonFly --- libc-test/semver/dragonfly.txt | 2 ++ libc-test/semver/freebsd.txt | 2 ++ src/unix/bsd/freebsdlike/mod.rs | 2 ++ 3 files changed, 6 insertions(+) diff --git a/libc-test/semver/dragonfly.txt b/libc-test/semver/dragonfly.txt index febed0b3a7aa9..d2d26b0fe0688 100644 --- a/libc-test/semver/dragonfly.txt +++ b/libc-test/semver/dragonfly.txt @@ -501,6 +501,7 @@ IPV6_DONTFRAG IP_HDRINCL IP_RECVDSTADDR IP_RECVIF +IP_RECVTTL IP_SENDSRCADDR IP_TOS ITIMER_PROF @@ -1592,3 +1593,4 @@ xucred eaccess dirname basename +IPV6_RECVHOPLIMIT diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index 1144c4d4c2481..1a04c1e5986ef 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -576,6 +576,7 @@ IP_RECVIF IP_RECVORIGDSTADDR IP_DONTFRAG IP_RECVTOS +IP_RECVTTL IP_RSS_LISTEN_BUCKET IP_SENDSRCADDR IP_TOS @@ -2251,3 +2252,4 @@ closefrom close_range eventfd_read eventfd_write +IPV6_RECVHOPLIMIT diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 9b555e42edf2d..4d1d32c725287 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -970,6 +970,8 @@ pub const IP_SENDSRCADDR: ::c_int = IP_RECVDSTADDR; 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 = 65; +pub const IPV6_RECVHOPLIMIT: ::c_int = 37; pub const IPV6_JOIN_GROUP: ::c_int = 12; pub const IPV6_LEAVE_GROUP: ::c_int = 13; pub const IPV6_CHECKSUM: ::c_int = 26; From 195309886667e53dde98b2e6bbe47a7d9bc6bab3 Mon Sep 17 00:00:00 2001 From: Lzu Tao Date: Fri, 31 May 2024 09:20:42 +0700 Subject: [PATCH 0053/1228] cirrus-ci: use matrix to remove redundant parts on building bsds --- .cirrus.yml | 43 +++++++++++-------------------------------- 1 file changed, 11 insertions(+), 32 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 1650f3ead158b..7ce3b932ba084 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,40 +1,19 @@ task: - name: nightly x86_64-unknown-freebsd-13 - freebsd_instance: - image_family: freebsd-13-3 + only_if: $CIRRUS_BRANCH == 'main' || $CIRRUS_BASE_BRANCH == 'libc-0.2' || $CIRRUS_BASE_BRANCH == 'main' + matrix: + - name: nightly freebsd-13 + freebsd_instance: + image_family: freebsd-13-3 + - name: nightly freebsd-14 + freebsd_instance: + image: freebsd-14-0-release-amd64-ufs + - name: nightly 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 - 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-14 - freebsd_instance: - image: freebsd-14-0-release-amd64-ufs - 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 - 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 test_script: - . $HOME/.cargo/env - LIBC_CI=1 sh ci/run.sh x86_64-unknown-freebsd From a670db24b192dc9515ce0f8df951158629e1ad28 Mon Sep 17 00:00:00 2001 From: David Koloski Date: Tue, 9 Apr 2024 16:50:05 +0000 Subject: [PATCH 0054/1228] Correct types of mode bit constants on Fuchsia Fuchsia's definitions of these constants were split from the unix impls before #503, and so S_ISUID, S_ISGID, and S_ISVTX are all incorrectly typed as c_int instead of mode_t. This applies the same fix to Fuchsia's constant definitions to bring them in line with the rest of libc. --- src/fuchsia/mod.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 4e028ff6cc45a..5896c8cff3158 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -1334,9 +1334,9 @@ pub const GRPQUOTA: ::c_int = 1; pub const SIGIOT: ::c_int = 6; -pub const S_ISUID: ::c_int = 0x800; -pub const S_ISGID: ::c_int = 0x400; -pub const S_ISVTX: ::c_int = 0x200; +pub const S_ISUID: ::mode_t = 0x800; +pub const S_ISGID: ::mode_t = 0x400; +pub const S_ISVTX: ::mode_t = 0x200; pub const IF_NAMESIZE: ::size_t = 16; pub const IFNAMSIZ: ::size_t = IF_NAMESIZE; From 2a9989575c7e454222969a501b2cba95e64e8142 Mon Sep 17 00:00:00 2001 From: David Koloski Date: Tue, 9 Apr 2024 16:45:31 -0400 Subject: [PATCH 0055/1228] Update src/fuchsia/mod.rs Co-authored-by: Jubilee <46493976+workingjubilee@users.noreply.github.com> --- src/fuchsia/mod.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 5896c8cff3158..e396d37411a02 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -1334,9 +1334,9 @@ pub const GRPQUOTA: ::c_int = 1; pub const SIGIOT: ::c_int = 6; -pub const S_ISUID: ::mode_t = 0x800; -pub const S_ISGID: ::mode_t = 0x400; -pub const S_ISVTX: ::mode_t = 0x200; +pub const S_ISUID: ::mode_t = 0o4000; +pub const S_ISGID: ::mode_t = 0o2000; +pub const S_ISVTX: ::mode_t = 0o1000; pub const IF_NAMESIZE: ::size_t = 16; pub const IFNAMSIZ: ::size_t = IF_NAMESIZE; From 3940851ba0d4f3d289f9837c4c4bfe0e8601f372 Mon Sep 17 00:00:00 2001 From: Ondrej Perutka Date: Wed, 5 Jun 2024 16:18:03 +0200 Subject: [PATCH 0056/1228] Add missing getauxval for Linux uClibc targets --- src/unix/linux_like/linux/uclibc/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/linux_like/linux/uclibc/mod.rs b/src/unix/linux_like/linux/uclibc/mod.rs index 48b03e9ee43fa..eda5fb782eb4d 100644 --- a/src/unix/linux_like/linux/uclibc/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mod.rs @@ -374,6 +374,7 @@ extern "C" { pub fn setrlimit(resource: ::__rlimit_resource_t, rlim: *const ::rlimit) -> ::c_int; pub fn getpriority(which: ::__priority_which_t, who: ::id_t) -> ::c_int; pub fn setpriority(which: ::__priority_which_t, who: ::id_t, prio: ::c_int) -> ::c_int; + pub fn getauxval(type_: ::c_ulong) -> ::c_ulong; } cfg_if! { From ebbd53741df61b184f1f1056903b8bc4cd973ede Mon Sep 17 00:00:00 2001 From: Ondrej Perutka Date: Wed, 5 Jun 2024 15:51:32 +0200 Subject: [PATCH 0057/1228] Backport #3537 to libc-0.2 --- src/unix/linux_like/linux/uclibc/mod.rs | 58 +++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/src/unix/linux_like/linux/uclibc/mod.rs b/src/unix/linux_like/linux/uclibc/mod.rs index 48b03e9ee43fa..b3c126963e090 100644 --- a/src/unix/linux_like/linux/uclibc/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mod.rs @@ -107,6 +107,64 @@ impl siginfo_t { } } +// Internal, for casts to access union fields +#[repr(C)] +struct sifields_sigchld { + si_pid: ::pid_t, + si_uid: ::uid_t, + si_status: ::c_int, + si_utime: ::c_long, + si_stime: ::c_long, +} +impl ::Copy for sifields_sigchld {} +impl ::Clone for sifields_sigchld { + fn clone(&self) -> sifields_sigchld { + *self + } +} + +// Internal, for casts to access union fields +#[repr(C)] +union sifields { + _align_pointer: *mut ::c_void, + sigchld: sifields_sigchld, +} + +// Internal, for casts to access union fields. Note that some variants +// of sifields start with a pointer, which makes the alignment of +// sifields vary on 32-bit and 64-bit architectures. +#[repr(C)] +struct siginfo_f { + _siginfo_base: [::c_int; 3], + sifields: sifields, +} + +impl siginfo_t { + unsafe fn sifields(&self) -> &sifields { + &(*(self as *const siginfo_t as *const siginfo_f)).sifields + } + + pub unsafe fn si_pid(&self) -> ::pid_t { + self.sifields().sigchld.si_pid + } + + pub unsafe fn si_uid(&self) -> ::uid_t { + self.sifields().sigchld.si_uid + } + + pub unsafe fn si_status(&self) -> ::c_int { + self.sifields().sigchld.si_status + } + + pub unsafe fn si_utime(&self) -> ::c_long { + self.sifields().sigchld.si_utime + } + + pub unsafe fn si_stime(&self) -> ::c_long { + self.sifields().sigchld.si_stime + } +} + pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; pub const MCL_ONFAULT: ::c_int = 0x0004; From 62f713881fe4364645e6c70cc92bfc9452f6aba3 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Fri, 22 Mar 2024 08:32:17 -0600 Subject: [PATCH 0058/1228] Add FreeBSD's Capsicum constants (cherry picked from commit 2ef3a366c7a6dc38879154f748c387bfb00f51fc) --- libc-test/semver/freebsd.txt | 94 ++++++++++++++++++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 123 ++++++++++++++++++++++++ 2 files changed, 217 insertions(+) diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index 1144c4d4c2481..d1f61e776729f 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -144,6 +144,100 @@ BUFSIZ BUS_ADRALN BUS_ADRERR BUS_OBJERR +CAP_READ +CAP_RIGHTS_VERSION_00 +CAP_RIGHTS_VERSION +CAP_WRITE +CAP_SEEK_TELL +CAP_SEEK +CAP_PREAD +CAP_PWRITE +CAP_MMAP +CAP_MMAP_R +CAP_MMAP_W +CAP_MMAP_X +CAP_MMAP_RW +CAP_MMAP_RX +CAP_MMAP_WX +CAP_MMAP_RWX +CAP_CREATE +CAP_FEXECVE +CAP_FSYNC +CAP_FTRUNCATE +CAP_LOOKUP +CAP_FCHDIR +CAP_FCHFLAGS +CAP_CHFLAGSAT +CAP_FCHMOD +CAP_FCHMODAT +CAP_FCHOWN +CAP_FCHOWNAT +CAP_FCNTL +CAP_FLOCK +CAP_FPATHCONF +CAP_FSCK +CAP_FSTAT +CAP_FSTATAT +CAP_FSTATFS +CAP_FUTIMES +CAP_FUTIMESAT +CAP_LINKAT_TARGET +CAP_MKDIRAT +CAP_MKFIFOAT +CAP_MKNODAT +CAP_RENAMEAT_SOURCE +CAP_SYMLINKAT +CAP_UNLINKAT +CAP_ACCEPT +CAP_BIND +CAP_CONNECT +CAP_GETPEERNAME +CAP_GETSOCKNAME +CAP_GETSOCKOPT +CAP_LISTEN +CAP_PEELOFF +CAP_RECV +CAP_SEND +CAP_SETSOCKOPT +CAP_SHUTDOWN +CAP_BINDAT +CAP_CONNECTAT +CAP_LINKAT_SOURCE +CAP_RENAMEAT_TARGET +CAP_SOCK_CLIENT +CAP_SOCK_SERVER +CAP_ALL0 +CAP_UNUSED0_44 +CAP_UNUSED0_57 +CAP_MAC_GET +CAP_MAC_SET +CAP_SEM_GETVALUE +CAP_SEM_POST +CAP_SEM_WAIT +CAP_EVENT +CAP_KQUEUE_EVENT +CAP_IOCTL +CAP_TTYHOOK +CAP_PDGETPID +CAP_PDWAIT +CAP_PDKILL +CAP_EXTATTR_DELETE +CAP_EXTATTR_GET +CAP_EXTATTR_LIST +CAP_EXTATTR_SET +CAP_ACL_CHECK +CAP_ACL_DELETE +CAP_ACL_GET +CAP_ACL_SET +CAP_KQUEUE_CHANGE +CAP_KQUEUE +CAP_ALL1 +CAP_UNUSED1_22 +CAP_UNUSED1_57 +CAP_FCNTL_GETFL +CAP_FCNTL_SETFL +CAP_FCNTL_GETOWN +CAP_FCNTL_SETOWN CCAR_OFLOW CCTS_OFLOW CDSR_OFLOW diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 195c6cb3ead3a..89faa8dc3c57d 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -2618,6 +2618,129 @@ pub const LIO_VECTORED: ::c_int = 4; pub const LIO_WRITEV: ::c_int = 5; pub const LIO_READV: ::c_int = 6; +// sys/caprights.h +pub const CAP_RIGHTS_VERSION_00: i32 = 0; +pub const CAP_RIGHTS_VERSION: i32 = CAP_RIGHTS_VERSION_00; + +// sys/capsicum.h +macro_rules! cap_right { + ($idx:expr, $bit:expr) => { + ((1u64 << (57 + ($idx))) | ($bit)) + }; +} +pub const CAP_READ: u64 = cap_right!(0, 0x0000000000000001u64); +pub const CAP_WRITE: u64 = cap_right!(0, 0x0000000000000002u64); +pub const CAP_SEEK_TELL: u64 = cap_right!(0, 0x0000000000000004u64); +pub const CAP_SEEK: u64 = CAP_SEEK_TELL | 0x0000000000000008u64; +pub const CAP_PREAD: u64 = CAP_SEEK | CAP_READ; +pub const CAP_PWRITE: u64 = CAP_SEEK | CAP_WRITE; +pub const CAP_MMAP: u64 = cap_right!(0, 0x0000000000000010u64); +pub const CAP_MMAP_R: u64 = CAP_MMAP | CAP_SEEK | CAP_READ; +pub const CAP_MMAP_W: u64 = CAP_MMAP | CAP_SEEK | CAP_WRITE; +pub const CAP_MMAP_X: u64 = CAP_MMAP | CAP_SEEK | 0x0000000000000020u64; +pub const CAP_MMAP_RW: u64 = CAP_MMAP_R | CAP_MMAP_W; +pub const CAP_MMAP_RX: u64 = CAP_MMAP_R | CAP_MMAP_X; +pub const CAP_MMAP_WX: u64 = CAP_MMAP_W | CAP_MMAP_X; +pub const CAP_MMAP_RWX: u64 = CAP_MMAP_R | CAP_MMAP_W | CAP_MMAP_X; +pub const CAP_CREATE: u64 = cap_right!(0, 0x0000000000000040u64); +pub const CAP_FEXECVE: u64 = cap_right!(0, 0x0000000000000080u64); +pub const CAP_FSYNC: u64 = cap_right!(0, 0x0000000000000100u64); +pub const CAP_FTRUNCATE: u64 = cap_right!(0, 0x0000000000000200u64); +pub const CAP_LOOKUP: u64 = cap_right!(0, 0x0000000000000400u64); +pub const CAP_FCHDIR: u64 = cap_right!(0, 0x0000000000000800u64); +pub const CAP_FCHFLAGS: u64 = cap_right!(0, 0x0000000000001000u64); +pub const CAP_CHFLAGSAT: u64 = CAP_FCHFLAGS | CAP_LOOKUP; +pub const CAP_FCHMOD: u64 = cap_right!(0, 0x0000000000002000u64); +pub const CAP_FCHMODAT: u64 = CAP_FCHMOD | CAP_LOOKUP; +pub const CAP_FCHOWN: u64 = cap_right!(0, 0x0000000000004000u64); +pub const CAP_FCHOWNAT: u64 = CAP_FCHOWN | CAP_LOOKUP; +pub const CAP_FCNTL: u64 = cap_right!(0, 0x0000000000008000u64); +pub const CAP_FLOCK: u64 = cap_right!(0, 0x0000000000010000u64); +pub const CAP_FPATHCONF: u64 = cap_right!(0, 0x0000000000020000u64); +pub const CAP_FSCK: u64 = cap_right!(0, 0x0000000000040000u64); +pub const CAP_FSTAT: u64 = cap_right!(0, 0x0000000000080000u64); +pub const CAP_FSTATAT: u64 = CAP_FSTAT | CAP_LOOKUP; +pub const CAP_FSTATFS: u64 = cap_right!(0, 0x0000000000100000u64); +pub const CAP_FUTIMES: u64 = cap_right!(0, 0x0000000000200000u64); +pub const CAP_FUTIMESAT: u64 = CAP_FUTIMES | CAP_LOOKUP; +// Note: this was named CAP_LINKAT prior to FreeBSD 11.0. +pub const CAP_LINKAT_TARGET: u64 = CAP_LOOKUP | 0x0000000000400000u64; +pub const CAP_MKDIRAT: u64 = CAP_LOOKUP | 0x0000000000800000u64; +pub const CAP_MKFIFOAT: u64 = CAP_LOOKUP | 0x0000000001000000u64; +pub const CAP_MKNODAT: u64 = CAP_LOOKUP | 0x0000000002000000u64; +// Note: this was named CAP_RENAMEAT prior to FreeBSD 11.0. +pub const CAP_RENAMEAT_SOURCE: u64 = CAP_LOOKUP | 0x0000000004000000u64; +pub const CAP_SYMLINKAT: u64 = CAP_LOOKUP | 0x0000000008000000u64; +pub const CAP_UNLINKAT: u64 = CAP_LOOKUP | 0x0000000010000000u64; +pub const CAP_ACCEPT: u64 = cap_right!(0, 0x0000000020000000u64); +pub const CAP_BIND: u64 = cap_right!(0, 0x0000000040000000u64); +pub const CAP_CONNECT: u64 = cap_right!(0, 0x0000000080000000u64); +pub const CAP_GETPEERNAME: u64 = cap_right!(0, 0x0000000100000000u64); +pub const CAP_GETSOCKNAME: u64 = cap_right!(0, 0x0000000200000000u64); +pub const CAP_GETSOCKOPT: u64 = cap_right!(0, 0x0000000400000000u64); +pub const CAP_LISTEN: u64 = cap_right!(0, 0x0000000800000000u64); +pub const CAP_PEELOFF: u64 = cap_right!(0, 0x0000001000000000u64); +pub const CAP_RECV: u64 = CAP_READ; +pub const CAP_SEND: u64 = CAP_WRITE; +pub const CAP_SETSOCKOPT: u64 = cap_right!(0, 0x0000002000000000u64); +pub const CAP_SHUTDOWN: u64 = cap_right!(0, 0x0000004000000000u64); +pub const CAP_BINDAT: u64 = CAP_LOOKUP | 0x0000008000000000u64; +pub const CAP_CONNECTAT: u64 = CAP_LOOKUP | 0x0000010000000000u64; +pub const CAP_LINKAT_SOURCE: u64 = CAP_LOOKUP | 0x0000020000000000u64; +pub const CAP_RENAMEAT_TARGET: u64 = CAP_LOOKUP | 0x0000040000000000u64; +pub const CAP_SOCK_CLIENT: u64 = CAP_CONNECT + | CAP_GETPEERNAME + | CAP_GETSOCKNAME + | CAP_GETSOCKOPT + | CAP_PEELOFF + | CAP_RECV + | CAP_SEND + | CAP_SETSOCKOPT + | CAP_SHUTDOWN; +pub const CAP_SOCK_SERVER: u64 = CAP_ACCEPT + | CAP_BIND + | CAP_GETPEERNAME + | CAP_GETSOCKNAME + | CAP_GETSOCKOPT + | CAP_LISTEN + | CAP_PEELOFF + | CAP_RECV + | CAP_SEND + | CAP_SETSOCKOPT + | CAP_SHUTDOWN; +pub const CAP_ALL0: u64 = cap_right!(0, 0x000007FFFFFFFFFFu64); +pub const CAP_UNUSED0_44: u64 = cap_right!(0, 0x0000080000000000u64); +pub const CAP_UNUSED0_57: u64 = cap_right!(0, 0x0100000000000000u64); +pub const CAP_MAC_GET: u64 = cap_right!(1, 0x0000000000000001u64); +pub const CAP_MAC_SET: u64 = cap_right!(1, 0x0000000000000002u64); +pub const CAP_SEM_GETVALUE: u64 = cap_right!(1, 0x0000000000000004u64); +pub const CAP_SEM_POST: u64 = cap_right!(1, 0x0000000000000008u64); +pub const CAP_SEM_WAIT: u64 = cap_right!(1, 0x0000000000000010u64); +pub const CAP_EVENT: u64 = cap_right!(1, 0x0000000000000020u64); +pub const CAP_KQUEUE_EVENT: u64 = cap_right!(1, 0x0000000000000040u64); +pub const CAP_IOCTL: u64 = cap_right!(1, 0x0000000000000080u64); +pub const CAP_TTYHOOK: u64 = cap_right!(1, 0x0000000000000100u64); +pub const CAP_PDGETPID: u64 = cap_right!(1, 0x0000000000000200u64); +pub const CAP_PDWAIT: u64 = cap_right!(1, 0x0000000000000400u64); +pub const CAP_PDKILL: u64 = cap_right!(1, 0x0000000000000800u64); +pub const CAP_EXTATTR_DELETE: u64 = cap_right!(1, 0x0000000000001000u64); +pub const CAP_EXTATTR_GET: u64 = cap_right!(1, 0x0000000000002000u64); +pub const CAP_EXTATTR_LIST: u64 = cap_right!(1, 0x0000000000004000u64); +pub const CAP_EXTATTR_SET: u64 = cap_right!(1, 0x0000000000008000u64); +pub const CAP_ACL_CHECK: u64 = cap_right!(1, 0x0000000000010000u64); +pub const CAP_ACL_DELETE: u64 = cap_right!(1, 0x0000000000020000u64); +pub const CAP_ACL_GET: u64 = cap_right!(1, 0x0000000000040000u64); +pub const CAP_ACL_SET: u64 = cap_right!(1, 0x0000000000080000u64); +pub const CAP_KQUEUE_CHANGE: u64 = cap_right!(1, 0x0000000000100000u64); +pub const CAP_KQUEUE: u64 = CAP_KQUEUE_EVENT | CAP_KQUEUE_CHANGE; +pub const CAP_ALL1: u64 = cap_right!(1, 0x00000000001FFFFFu64); +pub const CAP_UNUSED1_22: u64 = cap_right!(1, 0x0000000000200000u64); +pub const CAP_UNUSED1_57: u64 = cap_right!(1, 0x0100000000000000u64); +pub const CAP_FCNTL_GETFL: u32 = 1 << 3; +pub const CAP_FCNTL_SETFL: u32 = 1 << 4; +pub const CAP_FCNTL_GETOWN: u32 = 1 << 5; +pub const CAP_FCNTL_SETOWN: u32 = 1 << 6; + // sys/devicestat.h pub const DEVSTAT_N_TRANS_FLAGS: ::c_int = 4; pub const DEVSTAT_NAME_LEN: ::c_int = 16; From 9c7a4d5807eff5aed05f960d8554c3c625438cc5 Mon Sep 17 00:00:00 2001 From: Lzu Tao Date: Mon, 20 May 2024 02:36:52 +0700 Subject: [PATCH 0059/1228] ci: reduce verbosity of build.sh `-vv` produces lots of unrelated warnings in other crates when building with `-Zbuild-std`. A single `-v` is enough for most testing purposes. Build log size before and after: Before: ~12 MB After: 71.15 KB --- ci/build.sh | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 41225f9cdffd6..5cad0792fa4c1 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -11,6 +11,7 @@ set -ex : "${OS?The OS environment variable must be set.}" RUST=${TOOLCHAIN} +VERBOSE=-v echo "Testing Rust ${RUST} on ${OS}" @@ -41,50 +42,50 @@ test_target() { # 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}" + cargo "+${RUST}" "${BUILD_CMD}" "$VERBOSE" --no-default-features --target "${TARGET}" else # FIXME: With `build-std` feature, `compiler_builtins` emits a lof of lint warnings. RUSTFLAGS="-A improper_ctypes_definitions" cargo "+${RUST}" "${BUILD_CMD}" \ - -Z build-std=core,alloc -vv --no-default-features --target "${TARGET}" + -Z build-std=core,alloc "$VERBOSE" --no-default-features --target "${TARGET}" fi # 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}" + cargo "+${RUST}" "${BUILD_CMD}" "$VERBOSE" --target "${TARGET}" else RUSTFLAGS="-A improper_ctypes_definitions" cargo "+${RUST}" "${BUILD_CMD}" \ - -Z build-std=core,alloc -vv --target "${TARGET}" + -Z build-std=core,alloc "$VERBOSE" --target "${TARGET}" fi # Test that libc builds with the `extra_traits` feature if [ "${NO_STD}" != "1" ]; then - cargo "+${RUST}" "${BUILD_CMD}" -vv --no-default-features --target "${TARGET}" \ + cargo "+${RUST}" "${BUILD_CMD}" "$VERBOSE" --no-default-features --target "${TARGET}" \ --features extra_traits else RUSTFLAGS="-A improper_ctypes_definitions" cargo "+${RUST}" "${BUILD_CMD}" \ - -Z build-std=core,alloc -vv --no-default-features \ + -Z build-std=core,alloc "$VERBOSE" --no-default-features \ --target "${TARGET}" --features extra_traits fi # Test the 'const-extern-fn' feature on nightly if [ "${RUST}" = "nightly" ]; then if [ "${NO_STD}" != "1" ]; then - cargo "+${RUST}" "${BUILD_CMD}" -vv --no-default-features --target "${TARGET}" \ + cargo "+${RUST}" "${BUILD_CMD}" "$VERBOSE" --no-default-features --target "${TARGET}" \ --features const-extern-fn else RUSTFLAGS="-A improper_ctypes_definitions" cargo "+${RUST}" "${BUILD_CMD}" \ - -Z build-std=core,alloc -vv --no-default-features \ + -Z build-std=core,alloc "$VERBOSE" --no-default-features \ --target "${TARGET}" --features const-extern-fn fi fi # Also test that it builds with `extra_traits` and default features: if [ "$NO_STD" != "1" ]; then - cargo "+${RUST}" "${BUILD_CMD}" -vv --target "${TARGET}" \ + cargo "+${RUST}" "${BUILD_CMD}" "$VERBOSE" --target "${TARGET}" \ --features extra_traits else RUSTFLAGS="-A improper_ctypes_definitions" cargo "+${RUST}" "${BUILD_CMD}" \ - -Z build-std=core,alloc -vv --target "${TARGET}" \ + -Z build-std=core,alloc "$VERBOSE" --target "${TARGET}" \ --features extra_traits fi } From 7942b773e6a4bae3e0b22356aec84cc5aade9ab3 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Tue, 18 Jun 2024 01:17:42 +0900 Subject: [PATCH 0060/1228] fix: Remove macOS 11 usage on CI --- .github/workflows/full_ci.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/full_ci.yml b/.github/workflows/full_ci.yml index f3067925da2bf..0ab0b2666c1f8 100644 --- a/.github/workflows/full_ci.yml +++ b/.github/workflows/full_ci.yml @@ -227,14 +227,6 @@ jobs: - { toolchain: stable, os: macos-13 } - { toolchain: beta, os: macos-13 } - { toolchain: nightly, os: macos-13 } - # Use macOS 11 for older toolchains as newer Xcode donesn't work well. - # FIXME: Disabled due to: - # error: failed to parse registry's information for: serde - #- { toolchain: 1.13.0, os: macos-11 } - - { toolchain: 1.19.0, os: macos-11 } - - { toolchain: 1.24.0, os: macos-11 } - - { toolchain: 1.25.0, os: macos-11 } - - { toolchain: 1.30.0, os: macos-11 } runs-on: ${{ matrix.target.os }} steps: - uses: actions/checkout@v4 From 650d6deb4f00c8fadaadf0dc2894aa685d4c0985 Mon Sep 17 00:00:00 2001 From: Nathaniel Date: Wed, 12 Jun 2024 12:54:47 -0400 Subject: [PATCH 0061/1228] Add `PTHREAD_BARRIER_SERIAL_THREAD` constant --- libc-test/semver/android.txt | 1 + libc-test/semver/freebsd.txt | 1 + libc-test/semver/linux.txt | 1 + src/unix/aix/mod.rs | 1 + src/unix/bsd/freebsdlike/mod.rs | 1 + src/unix/linux_like/android/mod.rs | 1 + src/unix/linux_like/linux/mod.rs | 1 + src/unix/nto/mod.rs | 1 + 8 files changed, 8 insertions(+) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 21b277a018747..9722b6e361f30 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -1882,6 +1882,7 @@ PROT_GROWSUP PROT_NONE PROT_READ PROT_WRITE +PTHREAD_BARRIER_SERIAL_THREAD PTHREAD_COND_INITIALIZER PTHREAD_CREATE_DETACHED PTHREAD_CREATE_JOINABLE diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index 8eb3eeb8012fb..0ce7341044ab8 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -1069,6 +1069,7 @@ PROC_WXMAP_STATUS PROC_WXORX_ENFORCE PROT_MAX PROT_MAX_EXTRACT +PTHREAD_BARRIER_SERIAL_THREAD PTHREAD_CREATE_DETACHED PTHREAD_CREATE_JOINABLE PTHREAD_MUTEX_ADAPTIVE_NP diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 1e0ac781ef7d9..23cec7e368a1d 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1980,6 +1980,7 @@ PR_TSC_ENABLE PR_TSC_SIGSEGV PR_UNALIGN_NOPRINT PR_UNALIGN_SIGBUS +PTHREAD_BARRIER_SERIAL_THREAD PTHREAD_CREATE_DETACHED PTHREAD_CREATE_JOINABLE PTHREAD_MUTEX_DEFAULT diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index b3ce43a3722d1..c072ae55e5836 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -1210,6 +1210,7 @@ pub const TCP_KEEPCNT: ::c_int = 0x13; pub const TCP_NODELAYACK: ::c_int = 0x14; // pthread.h +pub const PTHREAD_BARRIER_SERIAL_THREAD: ::c_int = -1; pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; pub const PTHREAD_PROCESS_SHARED: ::c_int = 0; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 4d1d32c725287..d6457f5771177 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -797,6 +797,7 @@ 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 PTHREAD_BARRIER_SERIAL_THREAD: ::c_int = -1; pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0; pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index fb0b06701507c..c2e7ddf2fc8be 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1347,6 +1347,7 @@ pub const IFF_LOWER_UP: ::c_int = 0x10000; pub const IFF_DORMANT: ::c_int = 0x20000; pub const IFF_ECHO: ::c_int = 0x40000; +pub const PTHREAD_BARRIER_SERIAL_THREAD: ::c_int = -1; pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 02be92488e7b0..164a03ea42f1d 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2064,6 +2064,7 @@ align_const! { size: [0; __SIZEOF_PTHREAD_RWLOCK_T], }; } +pub const PTHREAD_BARRIER_SERIAL_THREAD: ::c_int = -1; pub const PTHREAD_ONCE_INIT: pthread_once_t = 0; pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 9eef23458d14a..d7aa52bc9eae3 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -2672,6 +2672,7 @@ pub const VRIGHT: usize = 29; pub const VUP: usize = 30; pub const XCASE: tcflag_t = 0x00000004; +pub const PTHREAD_BARRIER_SERIAL_THREAD: ::c_int = -1; pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0x00; pub const PTHREAD_CREATE_DETACHED: ::c_int = 0x01; From efe4f72ab9a1b3ed0330dbb58e95709d086f663e Mon Sep 17 00:00:00 2001 From: Steve Lau Date: Sun, 19 May 2024 11:04:40 +0800 Subject: [PATCH 0062/1228] feat: F_ALLOCATEPERSIST for apple --- libc-test/semver/apple.txt | 1 + src/unix/bsd/apple/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index e01934bf0ceb3..a3b1c92c7d0cc 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -428,6 +428,7 @@ FSOPT_REPORT_FULLSIZE FSOPT_RETURN_REALDEV F_ALLOCATEALL F_ALLOCATECONTIG +F_ALLOCATEPERSIST F_BARRIERFSYNC F_FREEZE_FS F_FULLFSYNC diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index d9e3831ea2e1a..9a672fae7ee68 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -3609,6 +3609,7 @@ pub const F_GETPATH_NOFIRMLINK: ::c_int = 102; pub const F_ALLOCATECONTIG: ::c_uint = 0x02; pub const F_ALLOCATEALL: ::c_uint = 0x04; +pub const F_ALLOCATEPERSIST: ::c_uint = 0x08; pub const F_PEOFPOSMODE: ::c_int = 3; pub const F_VOLPOSMODE: ::c_int = 4; From fe41e4ad703593174e268bc4764243f8d6dcb86f Mon Sep 17 00:00:00 2001 From: David Carlier Date: Tue, 21 May 2024 20:22:56 +0100 Subject: [PATCH 0063/1228] generalising IPV6_DONTFRAG to all bsd. close #3704 --- libc-test/semver/netbsd.txt | 1 + libc-test/semver/openbsd.txt | 1 + src/unix/bsd/apple/mod.rs | 1 - src/unix/bsd/freebsdlike/mod.rs | 1 - src/unix/bsd/mod.rs | 1 + 5 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index 353b1e7356ff5..35d64153f2650 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -468,6 +468,7 @@ IPTOS_ECN_ECT0 IPTOS_ECN_ECT1 IPTOS_ECN_MASK IPTOS_ECN_NOTECT +IPV6_DONTFRAG IPV6_JOIN_GROUP IPV6_LEAVE_GROUP IPV6_PKTINFO diff --git a/libc-test/semver/openbsd.txt b/libc-test/semver/openbsd.txt index fd4563212d60d..6f07fec590ff5 100644 --- a/libc-test/semver/openbsd.txt +++ b/libc-test/semver/openbsd.txt @@ -311,6 +311,7 @@ IPTOS_ECN_ECT0 IPTOS_ECN_ECT1 IPTOS_ECN_MASK IPTOS_ECN_NOTECT +IPV6_DONTFRAG IPV6_JOIN_GROUP IPV6_LEAVE_GROUP IPV6_PKTINFO diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 9a672fae7ee68..84143e1986bfb 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -4153,7 +4153,6 @@ 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; -pub const IPV6_DONTFRAG: ::c_int = 62; pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 70; pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 71; pub const IP_BLOCK_SOURCE: ::c_int = 72; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 4d1d32c725287..d9da55d028ec6 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -980,7 +980,6 @@ pub const IPV6_PKTINFO: ::c_int = 46; pub const IPV6_HOPLIMIT: ::c_int = 47; pub const IPV6_RECVTCLASS: ::c_int = 57; pub const IPV6_TCLASS: ::c_int = 61; -pub const IPV6_DONTFRAG: ::c_int = 62; pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 70; pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 71; pub const IP_BLOCK_SOURCE: ::c_int = 72; diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 6ee2a3de44035..7acda9076d1f0 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -311,6 +311,7 @@ pub const IPV6_MULTICAST_IF: ::c_int = 9; pub const IPV6_MULTICAST_HOPS: ::c_int = 10; pub const IPV6_MULTICAST_LOOP: ::c_int = 11; pub const IPV6_V6ONLY: ::c_int = 27; +pub const IPV6_DONTFRAG: ::c_int = 62; pub const IPTOS_ECN_NOTECT: u8 = 0x00; pub const IPTOS_ECN_MASK: u8 = 0x03; From 499ed57ad4cb9bc7fae69f3f22e615d21f41504e Mon Sep 17 00:00:00 2001 From: dcarlier Date: Fri, 28 Jun 2024 20:18:36 +0100 Subject: [PATCH 0064/1228] adding preadv2/pwritev2 to linux musl (1.2.5 min.) close #3760 --- libc-test/build.rs | 3 +++ libc-test/semver/linux-musl.txt | 7 +++++++ src/unix/linux_like/linux/musl/mod.rs | 20 ++++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 30af90fc8844c..a847f46448938 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4307,6 +4307,9 @@ fn test_linux(target: &str) { // FIXME: function pointers changed since Ubuntu 23.10 "strtol" | "strtoll" | "strtoul" | "strtoull" | "fscanf" | "scanf" | "sscanf" => true, + // Added in musl 1.2.5 + "preadv2" | "pwritev2" if musl => true, + _ => false, } }); diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index 7e5a81194bdf8..5a48357cb79e5 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -23,6 +23,11 @@ PF_XDP PIDFD_NONBLOCK PR_SET_VMA PR_SET_VMA_ANON_NAME +RWF_APPEND +RWF_DSYNC +RWF_HIPRI +RWF_NOWAIT +RWF_SYNC SOL_XDP XDP_SHARED_UMEM XDP_COPY @@ -66,11 +71,13 @@ getloadavg lio_listio ntptimeval open_wmemstream +preadv2 preadv64 prlimit prlimit64 process_vm_readv process_vm_writev +pwritev2 pwritev64 reallocarray timex diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 36d8c20381432..699c8181f8466 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -671,6 +671,12 @@ pub const PTRACE_PEEKSIGINFO: ::c_int = 0x4209; pub const PTRACE_GETSIGMASK: ::c_uint = 0x420a; pub const PTRACE_SETSIGMASK: ::c_uint = 0x420b; +pub const RWF_HIPRI: ::c_int = 0x00000001; +pub const RWF_DSYNC: ::c_int = 0x00000002; +pub const RWF_SYNC: ::c_int = 0x00000004; +pub const RWF_NOWAIT: ::c_int = 0x00000008; +pub const RWF_APPEND: ::c_int = 0x00000010; + pub const AF_IB: ::c_int = 27; pub const AF_MPLS: ::c_int = 28; pub const AF_NFC: ::c_int = 39; @@ -862,6 +868,20 @@ extern "C" { dirfd: ::c_int, path: *const ::c_char, ) -> ::c_int; + pub fn preadv2( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + flags: ::c_int, + ) -> ::ssize_t; + pub fn pwritev2( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + flags: ::c_int, + ) -> ::ssize_t; pub fn getauxval(type_: ::c_ulong) -> ::c_ulong; // Added in `musl` 1.1.20 From 5bd8143a9e2d9eff3ed2026826b317fc718896d9 Mon Sep 17 00:00:00 2001 From: joboet Date: Tue, 9 Jul 2024 11:39:52 +0200 Subject: [PATCH 0065/1228] add `os_sync_wait_on_address` and related definitions --- libc-test/build.rs | 2 ++ libc-test/semver/apple.txt | 13 +++++++++++ src/unix/bsd/apple/mod.rs | 48 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index a847f46448938..7c2875d0e9056 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -239,8 +239,10 @@ fn test_apple(target: &str) { "netinet/ip.h", "netinet/tcp.h", "netinet/udp.h", + "os/clock.h", "os/lock.h", "os/signpost.h", + "os/os_sync_wait_on_address.h", "poll.h", "pthread.h", "pthread_spis.h", diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index a3b1c92c7d0cc..4ca721005f139 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -1023,6 +1023,7 @@ OFDEL OFILL OLD_TIME ONOEOT +OS_CLOCK_MACH_ABSOLUTE_TIME OS_LOG_TYPE_DEBUG OS_LOG_TYPE_DEFAULT OS_LOG_TYPE_ERROR @@ -1031,6 +1032,10 @@ OS_LOG_TYPE_INFO OS_SIGNPOST_EVENT OS_SIGNPOST_INTERVAL_BEGIN OS_SIGNPOST_INTERVAL_END +OS_SYNC_WAKE_BY_ADDRESS_NONE +OS_SYNC_WAKE_BY_ADDRESS_SHARED +OS_SYNC_WAIT_ON_ADDRESS_NONE +OS_SYNC_WAIT_ON_ADDRESS_SHARED OS_UNFAIR_LOCK_INIT OXTABS O_ASYNC @@ -2049,6 +2054,7 @@ open_memstream open_wmemstream openat openpty +os_clockid_t os_log_create os_log_t os_log_type_enabled @@ -2058,6 +2064,13 @@ os_signpost_id_generate os_signpost_id_make_with_pointer os_signpost_id_t os_signpost_type_t +os_sync_wake_by_address_any +os_sync_wake_by_address_all +os_sync_wake_by_address_flags_t +os_sync_wait_on_address +os_sync_wait_on_address_flags_t +os_sync_wait_on_address_with_deadline +os_sync_wait_on_address_with_timeout os_unfair_lock os_unfair_lock_assert_not_owner os_unfair_lock_assert_owner diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 84143e1986bfb..70019ea0b313e 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -121,6 +121,11 @@ pub type pthread_introspection_hook_t = extern "C" fn(event: ::c_uint, thread: ::pthread_t, addr: *mut ::c_void, size: ::size_t); pub type pthread_jit_write_callback_t = ::Option ::c_int>; +pub type os_clockid_t = u32; + +pub type os_sync_wait_on_address_flags_t = u32; +pub type os_sync_wake_by_address_flags_t = u32; + pub type os_unfair_lock = os_unfair_lock_s; pub type os_unfair_lock_t = *mut os_unfair_lock; @@ -5441,6 +5446,15 @@ 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; +// os/clock.h +pub const OS_CLOCK_MACH_ABSOLUTE_TIME: os_clockid_t = 32; + +// os/os_sync_wait_on_address.h +pub const OS_SYNC_WAIT_ON_ADDRESS_NONE: os_sync_wait_on_address_flags_t = 0x00000000; +pub const OS_SYNC_WAIT_ON_ADDRESS_SHARED: os_sync_wait_on_address_flags_t = 0x00000001; +pub const OS_SYNC_WAKE_BY_ADDRESS_NONE: os_sync_wake_by_address_flags_t = 0x00000000; +pub const OS_SYNC_WAKE_BY_ADDRESS_SHARED: os_sync_wake_by_address_flags_t = 0x00000001; + // /// Process being created by fork. pub const SIDL: u32 = 1; @@ -5834,6 +5848,40 @@ extern "C" { pub fn pthread_jit_write_freeze_callbacks_np(); pub fn pthread_cpu_number_np(cpu_number_out: *mut ::size_t) -> ::c_int; + // Available starting with macOS 14.4. + pub fn os_sync_wait_on_address( + addr: *mut ::c_void, + value: u64, + size: ::size_t, + flags: os_sync_wait_on_address_flags_t, + ) -> ::c_int; + pub fn os_sync_wait_on_address_with_deadline( + addr: *mut ::c_void, + value: u64, + size: ::size_t, + flags: os_sync_wait_on_address_flags_t, + clockid: os_clockid_t, + deadline: u64, + ) -> ::c_int; + pub fn os_sync_wait_on_address_with_timeout( + addr: *mut ::c_void, + value: u64, + size: ::size_t, + flags: os_sync_wait_on_address_flags_t, + clockid: os_clockid_t, + timeout_ns: u64, + ) -> ::c_int; + pub fn os_sync_wake_by_address_any( + addr: *mut ::c_void, + size: ::size_t, + flags: os_sync_wake_by_address_flags_t, + ) -> ::c_int; + pub fn os_sync_wake_by_address_all( + addr: *mut ::c_void, + size: ::size_t, + flags: os_sync_wake_by_address_flags_t, + ) -> ::c_int; + pub fn os_unfair_lock_lock(lock: os_unfair_lock_t); pub fn os_unfair_lock_trylock(lock: os_unfair_lock_t) -> bool; pub fn os_unfair_lock_unlock(lock: os_unfair_lock_t); From 17cb3a280f7f8183b109d52b5a83375f9c1fd24e Mon Sep 17 00:00:00 2001 From: joboet Date: Thu, 11 Jul 2024 13:36:05 +0200 Subject: [PATCH 0066/1228] skip API that requires a newer macOS SDK in tests --- libc-test/build.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 7c2875d0e9056..d033ce843c79f 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -242,7 +242,8 @@ fn test_apple(target: &str) { "os/clock.h", "os/lock.h", "os/signpost.h", - "os/os_sync_wait_on_address.h", + // FIXME: Requires the macOS 14.4 SDK. + //"os/os_sync_wait_on_address.h", "poll.h", "pthread.h", "pthread_spis.h", @@ -331,6 +332,9 @@ fn test_apple(target: &str) { return true; } match ty { + // FIXME: Requires the macOS 14.4 SDK. + "os_sync_wake_by_address_flags_t" | "os_sync_wait_on_address_flags_t" => true, + _ => false, } }); @@ -349,6 +353,13 @@ fn test_apple(target: &str) { // FIXME: XCode 13.1 doesn't have it. "TIOCREMOTE" => true, + + // FIXME: Requires the macOS 14.4 SDK. + "OS_SYNC_WAKE_BY_ADDRESS_NONE" + | "OS_SYNC_WAKE_BY_ADDRESS_SHARED" + | "OS_SYNC_WAIT_ON_ADDRESS_NONE" + | "OS_SYNC_WAIT_ON_ADDRESS_SHARED" => true, + _ => false, } }); @@ -374,6 +385,15 @@ fn test_apple(target: &str) { // FIXME: Once the SDK get updated to Ventura's level "freadlink" | "mknodat" | "mkfifoat" => true, + // FIXME: Requires the macOS 14.4 SDK. + "os_sync_wake_by_address_any" + | "os_sync_wake_by_address_all" + | "os_sync_wake_by_address_flags_t" + | "os_sync_wait_on_address" + | "os_sync_wait_on_address_flags_t" + | "os_sync_wait_on_address_with_deadline" + | "os_sync_wait_on_address_with_timeout" => true, + _ => false, } }); From f16089a2a20dd977097b8d214121376540580e34 Mon Sep 17 00:00:00 2001 From: joboet Date: Thu, 18 Jul 2024 20:06:35 +0200 Subject: [PATCH 0067/1228] Apple: `rmx_state` has been removed --- libc-test/build.rs | 3 +++ src/unix/bsd/apple/mod.rs | 2 ++ 2 files changed, 5 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index d033ce843c79f..2074d71d10f64 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -408,6 +408,9 @@ fn test_apple(target: &str) { ("ifreq", "ifr_ifru") => true, ("ifkpi", "ifk_data") => true, ("ifconf", "ifc_ifcu") => true, + // FIXME: this field has been incorporated into a resized `rmx_filler` array. + ("rt_metrics", "rmx_state") => true, + ("rt_metrics", "rmx_filler") => true, _ => false, } }); diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 70019ea0b313e..f21c0ae6e54aa 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -509,6 +509,8 @@ s! { pub rmx_rtt: u32, pub rmx_rttvar: u32, pub rmx_pksent: u32, + /// This field does not exist anymore, the u32 is now part of a resized + /// `rmx_filler` array. pub rmx_state: u32, pub rmx_filler: [u32; 3], } From 1b092dc30d2b736b028cad6e1f84f38dfceeedef Mon Sep 17 00:00:00 2001 From: joboet Date: Mon, 29 Jul 2024 12:17:11 +0200 Subject: [PATCH 0068/1228] `addr_of!(EXTERN_STATIC)` is now considered safe See rust-lang/rust#125834 --- src/wasi.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/wasi.rs b/src/wasi.rs index ae490bf94d7a2..16b81b50b2f1a 100644 --- a/src/wasi.rs +++ b/src/wasi.rs @@ -366,10 +366,14 @@ pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; pub const _SC_IOV_MAX: c_int = 60; pub const _SC_SYMLOOP_MAX: c_int = 173; +#[allow(unused_unsafe)] // `addr_of!(EXTERN_STATIC)` is now considered safe pub static CLOCK_MONOTONIC: clockid_t = unsafe { clockid_t(ptr_addr_of!(_CLOCK_MONOTONIC)) }; +#[allow(unused_unsafe)] pub static CLOCK_PROCESS_CPUTIME_ID: clockid_t = unsafe { clockid_t(ptr_addr_of!(_CLOCK_PROCESS_CPUTIME_ID)) }; +#[allow(unused_unsafe)] pub static CLOCK_REALTIME: clockid_t = unsafe { clockid_t(ptr_addr_of!(_CLOCK_REALTIME)) }; +#[allow(unused_unsafe)] pub static CLOCK_THREAD_CPUTIME_ID: clockid_t = unsafe { clockid_t(ptr_addr_of!(_CLOCK_THREAD_CPUTIME_ID)) }; From 8367de9eaaefc74f5adf1d30925d8bbae82c6c69 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Wed, 31 Jul 2024 09:54:59 -0700 Subject: [PATCH 0069/1228] Reference specific MSRV in comment This will make it easier to remove the now-unneeded `unsafe` when we update MSRV. --- src/wasi.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wasi.rs b/src/wasi.rs index 16b81b50b2f1a..8b32405b9fbfe 100644 --- a/src/wasi.rs +++ b/src/wasi.rs @@ -366,7 +366,7 @@ pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; pub const _SC_IOV_MAX: c_int = 60; pub const _SC_SYMLOOP_MAX: c_int = 173; -#[allow(unused_unsafe)] // `addr_of!(EXTERN_STATIC)` is now considered safe +#[allow(unused_unsafe)] // `addr_of!(EXTERN_STATIC)` is now safe; remove `unsafe` when MSRV >= 1.82 pub static CLOCK_MONOTONIC: clockid_t = unsafe { clockid_t(ptr_addr_of!(_CLOCK_MONOTONIC)) }; #[allow(unused_unsafe)] pub static CLOCK_PROCESS_CPUTIME_ID: clockid_t = From 0f4d2f702d31a20fff8800d05ff9b549ddf33bf1 Mon Sep 17 00:00:00 2001 From: Yuri Astrakhan Date: Thu, 18 Jul 2024 12:43:01 -0400 Subject: [PATCH 0070/1228] Disable `libregex` for QNX 7.0 `libregex` did not exist until QNX 7.1. Before that, the regex functions were part of the libc. --- src/unix/nto/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index d7aa52bc9eae3..08ed90ef8bc14 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -2865,9 +2865,9 @@ safe_f! { // Network related functions are provided by libsocket and regex // functions are provided by libregex. +// Note that in QNX <=7.0, libregex functions were included it in libc itself. #[link(name = "socket")] -#[link(name = "regex")] - +#[cfg_attr(not(target_env = "nto70"), link(name = "regex"))] extern "C" { pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; From aea287e5178a87dd2db071f311074fcb9663e518 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Thu, 18 Jul 2024 10:13:49 -0700 Subject: [PATCH 0071/1228] Tweak comment --- src/unix/nto/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 08ed90ef8bc14..73fd2ba9f49fc 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -2865,7 +2865,7 @@ safe_f! { // Network related functions are provided by libsocket and regex // functions are provided by libregex. -// Note that in QNX <=7.0, libregex functions were included it in libc itself. +// In QNX <=7.0, libregex functions were included in libc itself. #[link(name = "socket")] #[cfg_attr(not(target_env = "nto70"), link(name = "regex"))] extern "C" { From 1cfa5d673c0d3bd4a2c5ab1193c8ff98d0c6ecc6 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Mon, 5 Aug 2024 19:50:47 -0700 Subject: [PATCH 0072/1228] Remove tier 3 targets from CI These targets seem to regularly break unrelated PRs, and in general we shouldn't gate PRs on tier 3 targets (per the target tier policy). (backport ) (cherry picked from commit be1c8e590cd2110c38da647b902028c63d85a0d2) --- .github/workflows/full_ci.yml | 41 ----------------------------------- 1 file changed, 41 deletions(-) diff --git a/.github/workflows/full_ci.yml b/.github/workflows/full_ci.yml index 0ab0b2666c1f8..6a4fbc7f4d332 100644 --- a/.github/workflows/full_ci.yml +++ b/.github/workflows/full_ci.yml @@ -140,45 +140,6 @@ jobs: - name: Execute run-docker.sh run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }} - # These targets are tier 3 or otherwise need to have CI build std via -Zbuild-std. - # Because of this, only the nightly compiler can be used on these targets. - docker_linux_build_std: - permissions: - contents: read # to fetch code (actions/checkout) - - if: ${{ false }} # This is currently broken - name: Docker Linux Build-Std Targets - needs: [docker_linux_tier1, style_check] - runs-on: ubuntu-22.04 - strategy: - fail-fast: true - max-parallel: 12 - matrix: - target: [ - armv7-unknown-linux-uclibceabihf - ] - steps: - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TOOLCHAIN=nightly INSTALL_RUST_SRC=1 sh ./ci/install-rust.sh - - name: Execute run-docker.sh - run: LIBC_CI=1 TOOLCHAIN=nightly LIBC_CI_ZBUILD_STD=1 sh ./ci/run-docker.sh ${{ matrix.target }} - - # devkitpro's pacman needs to be connected from Docker. - docker_switch: - permissions: - contents: read # to fetch code (actions/checkout) - - name: Docker Switch - needs: [docker_linux_tier1, style_check] - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: sh ./ci/install-rust.sh - - name: Execute run-docker.sh - run: LIBC_CI=1 sh ./ci/run-docker.sh switch - build_channels_linux: permissions: contents: read # to fetch code (actions/checkout) @@ -283,11 +244,9 @@ jobs: needs: [ docker_linux_tier1, docker_linux_tier2, - #docker_linux_build_std, macos, windows, style_check, - docker_switch, build_channels_linux, build_channels_macos, build_channels_windows, From a915899631514ec9514c2a47d37be225aed8eeba Mon Sep 17 00:00:00 2001 From: David Carlier Date: Thu, 8 Aug 2024 20:05:04 +0100 Subject: [PATCH 0073/1228] Fix FreeBSD 15 CI (backport ) (cherry picked from commit 147222de98f246ac328e80399de0847fba2018e7) --- libc-test/build.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 2074d71d10f64..0746d3d607007 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2311,6 +2311,12 @@ fn test_freebsd(target: &str) { // should've been used anywhere anyway. "TDF_UNUSED23" => true, + // Removed in FreeBSD 15 + "TDF_CANSWAP" | "TDF_SWAPINREQ" => true, + + // Unaccessible in FreeBSD 15 + "TDI_SWAPPED" | "P_SWAPPINGOUT" | "P_SWAPPINGIN" => true, + // Removed in FreeBSD 14 (git a6b55ee6be1) "IFF_KNOWSEPOCH" => true, From c919faf065675988a1baaf22b71639c1796feaa2 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 12 Aug 2024 03:54:24 -0500 Subject: [PATCH 0074/1228] Disable hexagon-unknown-linux-musl testing for now `compiler-builtins` seems to be providing duplicate symbols on Hexagon. This may be because some symbols have always been defined in assembly, but are now also provided by the weak math symbols. The fix for this is probably to not provide any math symbols on Hexagon that would duplicate the assembly version. However, to avoid going through another nightly release cycle, disable it temporarially instead. Link: https://github.com/rust-lang/libc/pull/3797#issuecomment-2283389129 (backport ) (cherry picked from commit 77e9d0657386a38ad6fbffac34b354a4a0646c5e) --- Cargo.toml | 3 ++- ci/build.sh | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 062f76472fa9c..0da99d4ba1c32 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -46,7 +46,8 @@ targets = [ "armv7-wrs-vxworks-eabihf", "armv7r-none-eabi", "armv7r-none-eabihf", - "hexagon-unknown-linux-musl", + # FIXME(hexagon): excluded due to duplicate symbol errors + # "hexagon-unknown-linux-musl", "i586-pc-windows-msvc", "i586-unknown-linux-gnu", "i586-unknown-linux-musl", diff --git a/ci/build.sh b/ci/build.sh index 5cad0792fa4c1..d90872f4e8c84 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -212,6 +212,8 @@ for TARGET in $TARGETS; do done # Targets which are not available via rustup and must be built with -Zbuild-std +# FIXME(hexagon): hexagon-unknown-linux-musl should be tested but currently has +# duplicate symbol errors from `compiler_builtins`. RUST_LINUX_NO_CORE_TARGETS="\ aarch64-pc-windows-msvc \ aarch64-unknown-freebsd \ @@ -224,7 +226,6 @@ armebv7r-none-eabihf \ armv7-wrs-vxworks-eabihf \ armv7r-none-eabi \ armv7r-none-eabihf \ -hexagon-unknown-linux-musl \ i586-pc-windows-msvc \ i686-pc-windows-msvc \ i686-unknown-haiku \ From 7095864b7d09ad2932f95ec55a2f2bec510a5ec1 Mon Sep 17 00:00:00 2001 From: Rain Date: Wed, 31 Jul 2024 15:25:40 -0700 Subject: [PATCH 0075/1228] [illumos] add pthread stack functions Cherry-picks 80d43bf020792098497a94d0ff1c9ef30e8bdf05. --- libc-test/semver/illumos.txt | 3 +++ src/unix/solarish/illumos.rs | 15 +++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 libc-test/semver/illumos.txt diff --git a/libc-test/semver/illumos.txt b/libc-test/semver/illumos.txt new file mode 100644 index 0000000000000..d0ef608456d54 --- /dev/null +++ b/libc-test/semver/illumos.txt @@ -0,0 +1,3 @@ +pthread_attr_get_np +pthread_attr_getstackaddr +pthread_attr_setstack diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index 404f013da2f98..ef3862ee41b34 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -81,6 +81,21 @@ extern "C" { ) -> ::c_int; pub fn pset_getloadavg(pset: ::psetid_t, load: *mut ::c_double, num: ::c_int) -> ::c_int; + pub fn pthread_attr_get_np(thread: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_attr_getstackaddr( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + ) -> ::c_int; + pub fn pthread_attr_setstack( + attr: *mut ::pthread_attr_t, + stackaddr: *mut ::c_void, + stacksize: ::size_t, + ) -> ::c_int; + pub fn pthread_attr_setstackaddr( + attr: *mut ::pthread_attr_t, + stackaddr: *mut ::c_void, + ) -> ::c_int; + pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; From 87e618a9f3a21b89bdd71ecae5dac81bdded773c Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sun, 21 Jul 2024 16:45:03 +0100 Subject: [PATCH 0076/1228] vxWorks adding few errnoLib related constants. (backport ) (cherry picked from commit 73a6a03e81c3727703c28207dc539589cc77e267) --- src/vxworks/mod.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 43afbc3e2c23d..c248c64da5012 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -91,6 +91,7 @@ pub type SEM_ID_KERNEL = ::OBJ_HANDLE; pub type RTP_ID = ::OBJ_HANDLE; pub type SD_ID = ::OBJ_HANDLE; pub type CONDVAR_ID = ::OBJ_HANDLE; +pub type STATUS = ::OBJ_HANDLE; // From vxTypes.h pub type _Vx_usr_arg_t = isize; @@ -613,6 +614,7 @@ pub const PTHREAD_STACK_MIN: usize = 4096; pub const _PTHREAD_SHARED_SEM_NAME_MAX: usize = 30; // ERRNO STUFF +pub const ERROR: ::c_int = -1; pub const OK: ::c_int = 0; pub const EPERM: ::c_int = 1; /* Not owner */ pub const ENOENT: ::c_int = 2; /* No such file or directory */ @@ -720,6 +722,33 @@ pub const S_nfsLib_NFSERR_SERVERFAULT: ::c_int = EIO; pub const S_nfsLib_NFSERR_BADTYPE: ::c_int = M_nfsStat | nfsstat::NFSERR_BADTYPE as ::c_int; pub const S_nfsLib_NFSERR_JUKEBOX: ::c_int = M_nfsStat | nfsstat::NFSERR_JUKEBOX as ::c_int; +// internal offset values for below constants +const taskErrorBase: ::c_int = 0x00030000; +const semErrorBase: ::c_int = 0x00160000; +const objErrorBase: ::c_int = 0x003d0000; + +// taskLibCommon.h +pub const S_taskLib_NAME_NOT_FOUND: ::c_int = taskErrorBase + 0x0065; +pub const S_taskLib_TASK_HOOK_TABLE_FULL: ::c_int = taskErrorBase + 0x0066; +pub const S_taskLib_TASK_HOOK_NOT_FOUND: ::c_int = taskErrorBase + 0x0067; +pub const S_taskLib_ILLEGAL_PRIORITY: ::c_int = taskErrorBase + 0x0068; + +// FIXME: could also be useful for TASK_DESC type +pub const VX_TASK_NAME_LENGTH: ::c_int = 31; + +// semLibCommon.h +pub const S_semLib_INVALID_STATE: ::c_int = semErrorBase + 0x0065; +pub const S_semLib_INVALID_OPTION: ::c_int = semErrorBase + 0x0066; +pub const S_semLib_INVALID_QUEUE_TYPE: ::c_int = semErrorBase + 0x0067; +pub const S_semLib_INVALID_OPERATION: ::c_int = semErrorBase + 0x0068; + +// objLibCommon.h +pub const S_objLib_OBJ_ID_ERROR: ::c_int = objErrorBase + 0x0001; +pub const S_objLib_OBJ_UNAVAILABLE: ::c_int = objErrorBase + 0x0002; +pub const S_objLib_OBJ_DELETED: ::c_int = objErrorBase + 0x0003; +pub const S_objLib_OBJ_TIMEOUT: ::c_int = objErrorBase + 0x0004; +pub const S_objLib_OBJ_NO_METHOD: ::c_int = objErrorBase + 0x0005; + // in.h pub const IPPROTO_IP: ::c_int = 0; pub const IPPROTO_IPV6: ::c_int = 41; From 9cfe4681ca47b216ad882ea7cc69a13783478ca2 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sun, 9 Jun 2024 10:25:26 +0000 Subject: [PATCH 0077/1228] haiku: add B_APP_IMAGE_SYMBOL definition (backport ) (cherry picked from commit dacde013c44c235a6a16282c7ed82427f1f7ddd3) --- src/unix/haiku/native.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs index 62d6392fabdf5..85865ad24cea6 100644 --- a/src/unix/haiku/native.rs +++ b/src/unix/haiku/native.rs @@ -956,6 +956,7 @@ pub const B_XATTR_TYPE: u32 = haiku_constant!('X', 'A', 'T', 'R'); pub const B_NETWORK_ADDRESS_TYPE: u32 = haiku_constant!('N', 'W', 'A', 'D'); pub const B_MIME_STRING_TYPE: u32 = haiku_constant!('M', 'I', 'M', 'S'); pub const B_ASCII_TYPE: u32 = haiku_constant!('T', 'E', 'X', 'T'); +pub const B_APP_IMAGE_SYMBOL: *const ::c_void = core::ptr::null(); extern "C" { // kernel/OS.h From 18e0b0bebc6ddf902d8c4773e9b9206867285f17 Mon Sep 17 00:00:00 2001 From: kxxt Date: Sat, 22 Jun 2024 13:24:18 +0800 Subject: [PATCH 0078/1228] Add clone_args for riscv64 linux gnu/musl (backport ) (cherry picked from commit 9fda1f68219ed0d740ea38f967d50efef063219f) --- .../linux_like/linux/gnu/b64/riscv64/align.rs | 17 +++++++++++++++++ .../linux_like/linux/musl/b64/riscv64/align.rs | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs index 48d152a5721ec..5b33f2375d39c 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs @@ -42,3 +42,20 @@ s_no_extra_traits! { pub __glibc_reserved: [::c_uint; 3], } } + +s! { + #[repr(align(8))] + pub struct clone_args { + pub flags: ::c_ulonglong, + pub pidfd: ::c_ulonglong, + pub child_tid: ::c_ulonglong, + pub parent_tid: ::c_ulonglong, + pub exit_signal: ::c_ulonglong, + pub stack: ::c_ulonglong, + pub stack_size: ::c_ulonglong, + pub tls: ::c_ulonglong, + pub set_tid: ::c_ulonglong, + pub set_tid_size: ::c_ulonglong, + pub cgroup: ::c_ulonglong, + } +} diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/align.rs b/src/unix/linux_like/linux/musl/b64/riscv64/align.rs index 48d152a5721ec..5b33f2375d39c 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/align.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/align.rs @@ -42,3 +42,20 @@ s_no_extra_traits! { pub __glibc_reserved: [::c_uint; 3], } } + +s! { + #[repr(align(8))] + pub struct clone_args { + pub flags: ::c_ulonglong, + pub pidfd: ::c_ulonglong, + pub child_tid: ::c_ulonglong, + pub parent_tid: ::c_ulonglong, + pub exit_signal: ::c_ulonglong, + pub stack: ::c_ulonglong, + pub stack_size: ::c_ulonglong, + pub tls: ::c_ulonglong, + pub set_tid: ::c_ulonglong, + pub set_tid_size: ::c_ulonglong, + pub cgroup: ::c_ulonglong, + } +} From c224f487f5f09d3ce8aef7d2e901bf8d0d5dfc34 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Mon, 12 Aug 2024 19:27:48 +0100 Subject: [PATCH 0079/1228] freebsd moving the kinfo_file type to general use. but keeping the constant KINFO_FILE_SIZE for intel archs only. [Resolved conflicts - Trevor] (backport ) (cherry picked from commit 34942a570715b4f6afc507dc2bd9ae9e02b437d8) Signed-off-by: Trevor Gross --- libc-test/semver/freebsd-x86_64.txt | 1 + libc-test/semver/freebsd.txt | 1 + src/unix/bsd/freebsdlike/freebsd/mod.rs | 63 ++++++++++++++++++ src/unix/bsd/freebsdlike/freebsd/x86.rs | 2 + .../bsd/freebsdlike/freebsd/x86_64/mod.rs | 65 +------------------ 5 files changed, 69 insertions(+), 63 deletions(-) diff --git a/libc-test/semver/freebsd-x86_64.txt b/libc-test/semver/freebsd-x86_64.txt index 8edfb525633db..be73d1f7290fe 100644 --- a/libc-test/semver/freebsd-x86_64.txt +++ b/libc-test/semver/freebsd-x86_64.txt @@ -1,4 +1,5 @@ Elf64_Auxinfo +KINFO_FILE_SIZE MAP_32BIT _MC_FLAG_MASK _MC_FPFMT_NODEV diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index 0ce7341044ab8..00b00b7a57b04 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -1977,6 +1977,7 @@ jrand48 kevent key_t killpg +kinfo_file kinfo_getvmmap kinfo_proc kinfo_vmentry diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 89faa8dc3c57d..cb39077402f19 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1637,6 +1637,23 @@ s_no_extra_traits! { pub cause: sctp_error_cause, pub hmac_id: u16, } + + pub struct kinfo_file { + pub kf_structsize: ::c_int, + pub kf_type: ::c_int, + pub kf_fd: ::c_int, + pub kf_ref_count: ::c_int, + pub kf_flags: ::c_int, + _kf_pad0: ::c_int, + pub kf_offset: i64, + _priv: [::uintptr_t; 38], // FIXME if needed + pub kf_status: u16, + _kf_pad1: u16, + _kf_ispare0: ::c_int, + pub kf_cap_rights: ::cap_rights_t, + _kf_cap_spare: u64, + pub kf_path: [::c_char; ::PATH_MAX as usize], + } } cfg_if! { @@ -2593,6 +2610,52 @@ cfg_if! { {self.hmac_id}.hash(state); } } + + impl PartialEq for kinfo_file { + fn eq(&self, other: &kinfo_file) -> bool { + self.kf_structsize == other.kf_structsize && + self.kf_type == other.kf_type && + self.kf_fd == other.kf_fd && + self.kf_ref_count == other.kf_ref_count && + self.kf_flags == other.kf_flags && + self.kf_offset == other.kf_offset && + self.kf_status == other.kf_status && + self.kf_cap_rights == other.kf_cap_rights && + self.kf_path + .iter() + .zip(other.kf_path.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for kinfo_file {} + impl ::fmt::Debug for kinfo_file { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("kinfo_file") + .field("kf_structsize", &self.kf_structsize) + .field("kf_type", &self.kf_type) + .field("kf_fd", &self.kf_fd) + .field("kf_ref_count", &self.kf_ref_count) + .field("kf_flags", &self.kf_flags) + .field("kf_offset", &self.kf_offset) + .field("kf_status", &self.kf_status) + .field("kf_cap_rights", &self.kf_cap_rights) + .field("kf_path", &&self.kf_path[..]) + .finish() + } + } + impl ::hash::Hash for kinfo_file { + fn hash(&self, state: &mut H) { + self.kf_structsize.hash(state); + self.kf_type.hash(state); + self.kf_fd.hash(state); + self.kf_ref_count.hash(state); + self.kf_flags.hash(state); + self.kf_offset.hash(state); + self.kf_status.hash(state); + self.kf_cap_rights.hash(state); + self.kf_path.hash(state); + } + } } } diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index 4046ec3109f14..c3c576ed66681 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -199,3 +199,5 @@ cfg_if! { } pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 + +pub const KINFO_FILE_SIZE: ::c_int = 1392; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index ae1fcf781047a..fb4597927f3d6 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -93,23 +93,6 @@ s_no_extra_traits! { #[cfg(libc_union)] pub a_un: __c_anonymous_elf64_auxv_union, } - - pub struct kinfo_file { - pub kf_structsize: ::c_int, - pub kf_type: ::c_int, - pub kf_fd: ::c_int, - pub kf_ref_count: ::c_int, - pub kf_flags: ::c_int, - _kf_pad0: ::c_int, - pub kf_offset: i64, - _priv: [::uintptr_t; 38], // FIXME if needed - pub kf_status: u16, - _kf_pad1: u16, - _kf_ispare0: ::c_int, - pub kf_cap_rights: ::cap_rights_t, - _kf_cap_spare: u64, - pub kf_path: [::c_char; ::PATH_MAX as usize], - } } cfg_if! { @@ -253,52 +236,6 @@ cfg_if! { .finish() } } - - impl PartialEq for kinfo_file { - fn eq(&self, other: &kinfo_file) -> bool { - self.kf_structsize == other.kf_structsize && - self.kf_type == other.kf_type && - self.kf_fd == other.kf_fd && - self.kf_ref_count == other.kf_ref_count && - self.kf_flags == other.kf_flags && - self.kf_offset == other.kf_offset && - self.kf_status == other.kf_status && - self.kf_cap_rights == other.kf_cap_rights && - self.kf_path - .iter() - .zip(other.kf_path.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for kinfo_file {} - impl ::fmt::Debug for kinfo_file { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("kinfo_file") - .field("kf_structsize", &self.kf_structsize) - .field("kf_type", &self.kf_type) - .field("kf_fd", &self.kf_fd) - .field("kf_ref_count", &self.kf_ref_count) - .field("kf_flags", &self.kf_flags) - .field("kf_offset", &self.kf_offset) - .field("kf_status", &self.kf_status) - .field("kf_cap_rights", &self.kf_cap_rights) - .field("kf_path", &&self.kf_path[..]) - .finish() - } - } - impl ::hash::Hash for kinfo_file { - fn hash(&self, state: &mut H) { - self.kf_structsize.hash(state); - self.kf_type.hash(state); - self.kf_fd.hash(state); - self.kf_ref_count.hash(state); - self.kf_flags.hash(state); - self.kf_offset.hash(state); - self.kf_status.hash(state); - self.kf_cap_rights.hash(state); - self.kf_path.hash(state); - } - } } } @@ -326,6 +263,8 @@ pub const _MC_FPOWNED_NONE: c_long = 0x20000; pub const _MC_FPOWNED_FPU: c_long = 0x20001; pub const _MC_FPOWNED_PCB: c_long = 0x20002; +pub const KINFO_FILE_SIZE: ::c_int = 1392; + cfg_if! { if #[cfg(libc_align)] { mod align; From 1fb493c8be413c6e4c9a029ee084e4d11f264d15 Mon Sep 17 00:00:00 2001 From: Daniel Schemmel Date: Sat, 27 Jul 2024 05:19:17 +0100 Subject: [PATCH 0080/1228] add FUTEX_WAITERS, FUTEX_OWNER_DIED and FUTEX_TID_MASK to linux (backport ) (cherry picked from commit 8c5c7ce860a5e0cee5add2d4f33b36364d3fdb18) --- libc-test/semver/linux.txt | 3 +++ src/unix/linux_like/linux/mod.rs | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 23cec7e368a1d..6c649c26227ee 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -824,13 +824,16 @@ FUTEX_OP_OPARG_SHIFT FUTEX_OP_OR FUTEX_OP_SET FUTEX_OP_XOR +FUTEX_OWNER_DIED FUTEX_PRIVATE_FLAG FUTEX_REQUEUE +FUTEX_TID_MASK FUTEX_TRYLOCK_PI FUTEX_UNLOCK_PI FUTEX_WAIT FUTEX_WAIT_BITSET FUTEX_WAIT_REQUEUE_PI +FUTEX_WAITERS FUTEX_WAKE FUTEX_WAKE_BITSET FUTEX_WAKE_OP diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 164a03ea42f1d..eb1b18375403f 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -4135,6 +4135,7 @@ pub const FAN_NOFD: ::c_int = -1; pub const FAN_NOPIDFD: ::c_int = FAN_NOFD; pub const FAN_EPIDFD: ::c_int = -2; +// linux/futex.h pub const FUTEX_WAIT: ::c_int = 0; pub const FUTEX_WAKE: ::c_int = 1; pub const FUTEX_FD: ::c_int = 2; @@ -4154,6 +4155,10 @@ pub const FUTEX_PRIVATE_FLAG: ::c_int = 128; pub const FUTEX_CLOCK_REALTIME: ::c_int = 256; pub const FUTEX_CMD_MASK: ::c_int = !(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME); +pub const FUTEX_WAITERS: u32 = 0x80000000; +pub const FUTEX_OWNER_DIED: u32 = 0x40000000; +pub const FUTEX_TID_MASK: u32 = 0x3fffffff; + pub const FUTEX_BITSET_MATCH_ANY: ::c_int = 0xffffffff; pub const FUTEX_OP_SET: ::c_int = 0; From 20e1886b225c3b54f1a4c4f8805f111cd84e7e21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kr=C3=B6ning?= Date: Mon, 13 May 2024 13:45:07 +0200 Subject: [PATCH 0081/1228] feat(hermit): add stabilized interface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit HermitOS is a unikernel and its interface to the kernel is provided by https://crates.io/crates/hermit-abi. In the meantime parts of the interface is stabilized and we want to integrated it into libc. Unstable version will be still provided by hermit-abi. Co-authored-by: Martin Kröning Signed-off-by: Martin Kröning [Fix conflicts - Trevor] (backport ) (cherry picked from commit 03feff5b3b92dab90410fe4e6ccbc15d7395d6c1) Signed-off-by: Trevor Gross --- src/hermit.rs | 446 ++++++++++++++++++++++++++++++++++++++++++ src/hermit/aarch64.rs | 2 - src/hermit/mod.rs | 61 ------ src/hermit/x86_64.rs | 2 - 4 files changed, 446 insertions(+), 65 deletions(-) create mode 100644 src/hermit.rs delete mode 100644 src/hermit/aarch64.rs delete mode 100644 src/hermit/mod.rs delete mode 100644 src/hermit/x86_64.rs diff --git a/src/hermit.rs b/src/hermit.rs new file mode 100644 index 0000000000000..145d1241b190b --- /dev/null +++ b/src/hermit.rs @@ -0,0 +1,446 @@ +//! Hermit C type definitions + +cfg_if! { + if #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))] { + pub type c_char = u8; + } else { + pub type c_char = i8; + } +} + +pub type c_schar = i8; +pub type c_uchar = u8; +pub type c_short = i16; +pub type c_ushort = u16; +pub type c_int = i32; +pub type c_uint = u32; +pub type c_long = i64; +pub type c_ulong = u64; +pub type c_longlong = i64; +pub type c_ulonglong = u64; +pub type intmax_t = i64; +pub type uintmax_t = u64; +pub type intptr_t = isize; +pub type uintptr_t = usize; + +pub type c_float = f32; +pub type c_double = f64; + +pub type size_t = usize; +pub type ssize_t = isize; +pub type ptrdiff_t = isize; + +pub type clockid_t = i32; +pub type in_addr_t = u32; +pub type in_port_t = u16; +pub type mode_t = u32; +pub type nfds_t = usize; +pub type pid_t = i32; +pub type sa_family_t = u8; +pub type socklen_t = u32; +pub type time_t = i64; + +s! { + pub struct addrinfo { + pub ai_flags: i32, + pub ai_family: i32, + pub ai_socktype: i32, + pub ai_protocol: i32, + pub ai_addrlen: socklen_t, + pub ai_canonname: *mut c_char, + pub ai_addr: *mut sockaddr, + pub ai_next: *mut addrinfo, + } + + pub struct dirent64 { + pub d_ino: u64, + pub d_off: i64, + pub d_reclen: u16, + pub d_type: u8, + pub d_name: [c_char; 256], + } + + #[repr(align(4))] + pub struct in6_addr { + pub s6_addr: [u8; 16], + } + + pub struct in_addr { + pub s_addr: in_addr_t, + } + + pub struct iovec { + iov_base: *mut c_void, + iov_len: usize, + } + + pub struct pollfd { + pub fd: i32, + pub events: i16, + pub revents: i16, + } + + pub struct sockaddr { + pub sa_len: u8, + pub sa_family: sa_family_t, + pub sa_data: [c_char; 14], + } + + pub struct sockaddr_in { + pub sin_len: u8, + pub sin_family: sa_family_t, + pub sin_port: in_port_t, + pub sin_addr: in_addr, + pub sin_zero: [c_char; 8], + } + + pub struct sockaddr_in6 { + pub sin6_len: u8, + pub sin6_family: sa_family_t, + pub sin6_port: in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: in6_addr, + pub sin6_scope_id: u32, + } + + pub struct sockaddr_storage { + pub ss_len: u8, + pub ss_family: sa_family_t, + __ss_pad1: [u8; 6], + __ss_align: i64, + __ss_pad2: [u8; 112], + } + + pub struct stat { + pub st_dev: u64, + pub st_ino: u64, + pub st_nlink: u64, + pub st_mode: mode_t, + pub st_uid: u32, + pub st_gid: u32, + pub st_rdev: u64, + pub st_size: u64, + pub st_blksize: i64, + pub st_blocks: i64, + pub st_atim: timespec, + pub st_mtim: timespec, + pub st_ctim: timespec, + } + + pub struct timespec { + pub tv_sec: time_t, + pub tv_nsec: i32, + } +} + +pub const AF_INET: i32 = 0; +pub const AF_INET6: i32 = 1; + +pub const CLOCK_REALTIME: clockid_t = 1; +pub const CLOCK_MONOTONIC: clockid_t = 4; + +pub const DT_UNKNOWN: u8 = 0; +pub const DT_FIFO: u8 = 1; +pub const DT_CHR: u8 = 2; +pub const DT_DIR: u8 = 4; +pub const DT_BLK: u8 = 6; +pub const DT_REG: u8 = 8; +pub const DT_LNK: u8 = 10; +pub const DT_SOCK: u8 = 12; +pub const DT_WHT: u8 = 14; + +pub const EAI_AGAIN: i32 = 2; +pub const EAI_BADFLAGS: i32 = 3; +pub const EAI_FAIL: i32 = 4; +pub const EAI_FAMILY: i32 = 5; +pub const EAI_MEMORY: i32 = 6; +pub const EAI_NODATA: i32 = 7; +pub const EAI_NONAME: i32 = 8; +pub const EAI_SERVICE: i32 = 9; +pub const EAI_SOCKTYPE: i32 = 10; +pub const EAI_SYSTEM: i32 = 11; +pub const EAI_OVERFLOW: i32 = 14; + +pub const EFD_SEMAPHORE: i16 = 0o1; +pub const EFD_NONBLOCK: i16 = 0o4000; +pub const EFD_CLOEXEC: i16 = 0o40000; + +pub const F_DUPFD: i32 = 0; +pub const F_GETFD: i32 = 1; +pub const F_SETFD: i32 = 2; +pub const F_GETFL: i32 = 3; +pub const F_SETFL: i32 = 4; + +pub const FD_CLOEXEC: i32 = 1; + +pub const FIONBIO: i32 = 0x8008667e; + +pub const FUTEX_RELATIVE_TIMEOUT: u32 = 1; + +pub const IP_TOS: i32 = 1; +pub const IP_TTL: i32 = 2; +pub const IP_ADD_MEMBERSHIP: i32 = 3; +pub const IP_DROP_MEMBERSHIP: i32 = 4; +pub const IP_MULTICAST_TTL: i32 = 5; +pub const IP_MULTICAST_LOOP: i32 = 7; + +pub const IPPROTO_IP: i32 = 0; +pub const IPPROTO_TCP: i32 = 6; +pub const IPPROTO_UDP: i32 = 17; +pub const IPPROTO_IPV6: i32 = 41; + +pub const IPV6_ADD_MEMBERSHIP: i32 = 12; +pub const IPV6_DROP_MEMBERSHIP: i32 = 13; +pub const IPV6_MULTICAST_LOOP: i32 = 19; +pub const IPV6_V6ONLY: i32 = 27; + +pub const MSG_PEEK: i32 = 1; + +pub const O_RDONLY: i32 = 0o0; +pub const O_WRONLY: i32 = 0o1; +pub const O_RDWR: i32 = 0o2; +pub const O_CREAT: i32 = 0o100; +pub const O_EXCL: i32 = 0o200; +pub const O_TRUNC: i32 = 0o1000; +pub const O_APPEND: i32 = 0o2000; +pub const O_NONBLOCK: i32 = 0o4000; +pub const O_DIRECTORY: i32 = 0o200000; + +pub const POLLIN: i16 = 0x1; +pub const POLLPRI: i16 = 0x2; +pub const POLLOUT: i16 = 0x4; +pub const POLLERR: i16 = 0x8; +pub const POLLHUP: i16 = 0x10; +pub const POLLNVAL: i16 = 0x20; +pub const POLLRDNORM: i16 = 0x040; +pub const POLLRDBAND: i16 = 0x080; +pub const POLLWRNORM: i16 = 0x0100; +pub const POLLWRBAND: i16 = 0x0200; +pub const POLLRDHUP: i16 = 0x2000; + +pub const S_IRWXU: mode_t = 0o0700; +pub const S_IRUSR: mode_t = 0o0400; +pub const S_IWUSR: mode_t = 0o0200; +pub const S_IXUSR: mode_t = 0o0100; +pub const S_IRWXG: mode_t = 0o0070; +pub const S_IRGRP: mode_t = 0o0040; +pub const S_IWGRP: mode_t = 0o0020; +pub const S_IXGRP: mode_t = 0o0010; +pub const S_IRWXO: mode_t = 0o0007; +pub const S_IROTH: mode_t = 0o0004; +pub const S_IWOTH: mode_t = 0o0002; +pub const S_IXOTH: mode_t = 0o0001; + +pub const S_IFMT: mode_t = 0o17_0000; +pub const S_IFSOCK: mode_t = 0o14_0000; +pub const S_IFLNK: mode_t = 0o12_0000; +pub const S_IFREG: mode_t = 0o10_0000; +pub const S_IFBLK: mode_t = 0o6_0000; +pub const S_IFDIR: mode_t = 0o4_0000; +pub const S_IFCHR: mode_t = 0o2_0000; +pub const S_IFIFO: mode_t = 0o1_0000; + +pub const SHUT_RD: i32 = 0; +pub const SHUT_WR: i32 = 1; +pub const SHUT_RDWR: i32 = 2; + +pub const SO_REUSEADDR: i32 = 0x0004; +pub const SO_KEEPALIVE: i32 = 0x0008; +pub const SO_BROADCAST: i32 = 0x0020; +pub const SO_LINGER: i32 = 0x0080; +pub const SO_SNDBUF: i32 = 0x1001; +pub const SO_RCVBUF: i32 = 0x1002; +pub const SO_SNDTIMEO: i32 = 0x1005; +pub const SO_RCVTIMEO: i32 = 0x1006; +pub const SO_ERROR: i32 = 0x1007; + +pub const SOCK_STREAM: i32 = 1; +pub const SOCK_DGRAM: i32 = 2; +pub const SOCK_NONBLOCK: i32 = 0o4000; +pub const SOCK_CLOEXEC: i32 = 0o40000; + +pub const SOL_SOCKET: i32 = 4095; + +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; + +pub const TCP_NODELAY: i32 = 1; + +extern "C" { + #[link_name = "sys_alloc"] + pub fn alloc(size: usize, align: usize) -> *mut u8; + + #[link_name = "sys_alloc_zeroed"] + pub fn alloc_zeroed(size: usize, align: usize) -> *mut u8; + + #[link_name = "sys_realloc"] + pub fn realloc(ptr: *mut u8, size: usize, align: usize, new_size: usize) -> *mut u8; + + #[link_name = "sys_dealloc"] + pub fn dealloc(ptr: *mut u8, size: usize, align: usize); + + #[link_name = "sys_exit"] + pub fn exit(status: i32) -> !; + + #[link_name = "sys_abort"] + pub fn abort() -> !; + + #[link_name = "sys_errno"] + pub fn errno() -> i32; + + #[link_name = "sys_clock_gettime"] + pub fn clock_gettime(clockid: clockid_t, tp: *mut timespec) -> i32; + + #[link_name = "sys_nanosleep"] + pub fn nanosleep(req: *const timespec) -> i32; + + #[link_name = "sys_available_parallelism"] + pub fn available_parallelism() -> usize; + + #[link_name = "sys_futex_wait"] + pub fn futex_wait( + address: *mut u32, + expected: u32, + timeout: *const timespec, + flags: u32, + ) -> i32; + + #[link_name = "sys_futex_wake"] + pub fn futex_wake(address: *mut u32, count: i32) -> i32; + + #[link_name = "sys_stat"] + pub fn stat(path: *const c_char, stat: *mut stat) -> i32; + + #[link_name = "sys_fstat"] + pub fn fstat(fd: i32, stat: *mut stat) -> i32; + + #[link_name = "sys_lstat"] + pub fn lstat(path: *const c_char, stat: *mut stat) -> i32; + + #[link_name = "sys_open"] + pub fn open(path: *const c_char, flags: i32, mode: mode_t) -> i32; + + #[link_name = "sys_unlink"] + pub fn unlink(path: *const c_char) -> i32; + + #[link_name = "sys_mkdir"] + pub fn mkdir(path: *const c_char, mode: mode_t) -> i32; + + #[link_name = "sys_rmdir"] + pub fn rmdir(path: *const c_char) -> i32; + + #[link_name = "sys_read"] + pub fn read(fd: i32, buf: *mut u8, len: usize) -> isize; + + #[link_name = "sys_write"] + pub fn write(fd: i32, buf: *const u8, len: usize) -> isize; + + #[link_name = "sys_readv"] + pub fn readv(fd: i32, iov: *const iovec, iovcnt: usize) -> isize; + + #[link_name = "sys_writev"] + pub fn writev(fd: i32, iov: *const iovec, iovcnt: usize) -> isize; + + #[link_name = "sys_close"] + pub fn close(fd: i32) -> i32; + + #[link_name = "sys_dup"] + pub fn dup(fd: i32) -> i32; + + #[link_name = "sys_fcntl"] + pub fn fcntl(fd: i32, cmd: i32, arg: i32) -> i32; + + #[link_name = "sys_getdents64"] + pub fn getdents64(fd: i32, dirp: *mut dirent64, count: usize) -> isize; + + #[link_name = "sys_getaddrinfo"] + pub fn getaddrinfo( + nodename: *const c_char, + servname: *const c_char, + hints: *const addrinfo, + res: *mut *mut addrinfo, + ) -> i32; + + #[link_name = "sys_freeaddrinfo"] + pub fn freeaddrinfo(ai: *mut addrinfo); + + #[link_name = "sys_socket"] + pub fn socket(domain: i32, ty: i32, protocol: i32) -> i32; + + #[link_name = "sys_bind"] + pub fn bind(sockfd: i32, addr: *const sockaddr, addrlen: socklen_t) -> i32; + + #[link_name = "sys_listen"] + pub fn listen(sockfd: i32, backlog: i32) -> i32; + + #[link_name = "sys_accept"] + pub fn accept(sockfd: i32, addr: *mut sockaddr, addrlen: *mut socklen_t) -> i32; + + #[link_name = "sys_connect"] + pub fn connect(sockfd: i32, addr: *const sockaddr, addrlen: socklen_t) -> i32; + + #[link_name = "sys_recv"] + pub fn recv(sockfd: i32, buf: *mut u8, len: usize, flags: i32) -> isize; + + #[link_name = "sys_recvfrom"] + pub fn recvfrom( + sockfd: i32, + buf: *mut c_void, + len: usize, + flags: i32, + addr: *mut sockaddr, + addrlen: *mut socklen_t, + ) -> isize; + + #[link_name = "sys_send"] + pub fn send(sockfd: i32, buf: *const c_void, len: usize, flags: i32) -> isize; + + #[link_name = "sys_sendto"] + pub fn sendto( + sockfd: i32, + buf: *const c_void, + len: usize, + flags: i32, + to: *const sockaddr, + tolen: socklen_t, + ) -> isize; + + #[link_name = "sys_getpeername"] + pub fn getpeername(sockfd: i32, addr: *mut sockaddr, addrlen: *mut socklen_t) -> i32; + + #[link_name = "sys_getsockname"] + pub fn getsockname(sockfd: i32, addr: *mut sockaddr, addrlen: *mut socklen_t) -> i32; + + #[link_name = "sys_getsockopt"] + pub fn getsockopt( + sockfd: i32, + level: i32, + optname: i32, + optval: *mut c_void, + optlen: *mut socklen_t, + ) -> i32; + + #[link_name = "sys_setsockopt"] + pub fn setsockopt( + sockfd: i32, + level: i32, + optname: i32, + optval: *const c_void, + optlen: socklen_t, + ) -> i32; + + #[link_name = "sys_ioctl"] + pub fn ioctl(sockfd: i32, cmd: i32, argp: *mut c_void) -> i32; + + #[link_name = "sys_shutdown"] + pub fn shutdown(sockfd: i32, how: i32) -> i32; + + #[link_name = "sys_eventfd"] + pub fn eventfd(initval: u64, flags: i16) -> i32; + + #[link_name = "sys_poll"] + pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: i32) -> i32; +} + +pub use ffi::c_void; diff --git a/src/hermit/aarch64.rs b/src/hermit/aarch64.rs deleted file mode 100644 index 1a92e3b4fa341..0000000000000 --- a/src/hermit/aarch64.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub type c_char = u8; -pub type wchar_t = u32; diff --git a/src/hermit/mod.rs b/src/hermit/mod.rs deleted file mode 100644 index 7543c825782e2..0000000000000 --- a/src/hermit/mod.rs +++ /dev/null @@ -1,61 +0,0 @@ -//! Hermit C types definition - -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; -pub type intmax_t = i64; -pub type uintmax_t = u64; - -pub type size_t = usize; -pub type ptrdiff_t = isize; -pub type intptr_t = isize; -pub type uintptr_t = usize; -pub type ssize_t = isize; - -pub type c_long = i64; -pub type c_ulong = u64; - -pub type wint_t = u32; -pub type wctype_t = i64; - -pub type regoff_t = size_t; -pub type off_t = c_long; - -cfg_if! { - if #[cfg(target_arch = "aarch64")] { - mod aarch64; - pub use self::aarch64::*; - } else if #[cfg(target_arch = "x86_64")] { - mod x86_64; - pub use self::x86_64::*; - } else { - // Unknown target_arch - } -} - -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} diff --git a/src/hermit/x86_64.rs b/src/hermit/x86_64.rs deleted file mode 100644 index 76ec3ce823e8f..0000000000000 --- a/src/hermit/x86_64.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = i32; From 9b183549b2aa5647c671469eab62b9f7ab71c3e0 Mon Sep 17 00:00:00 2001 From: Jeff Garzik Date: Thu, 11 Jul 2024 17:22:08 +0000 Subject: [PATCH 0082/1228] add confstr API and _CS_* to linux-gnu [fix conflicts - Trevor] (backport ) (cherry picked from commit 31beed6bdac29a0f75bc83471d4e19a2e146b9ee) Signed-off-by: Trevor Gross --- libc-test/semver/linux-gnu.txt | 4 ++++ src/unix/linux_like/linux/gnu/mod.rs | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 09625b8280c5a..6fa88e6c77927 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -511,6 +511,9 @@ XSK_UNALIGNED_BUF_ADDR_MASK XDP_PKT_CONTD XENFS_SUPER_MAGIC XFS_SUPER_MAGIC +_CS_GNU_LIBC_VERSION +_CS_GNU_LIBPTHREAD_VERSION +_CS_PATH _SC_2_C_VERSION _SC_BASE _SC_CHARCLASS_NAME_MAX @@ -611,6 +614,7 @@ aio_write aiocb backtrace clock_adjtime +confstr copy_file_range ctermid dlinfo diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 4b3ee5a15ce34..d6e5eb69c7fbb 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -835,6 +835,9 @@ pub const TMP_MAX: ::c_uint = 238328; pub const FOPEN_MAX: ::c_uint = 16; pub const FILENAME_MAX: ::c_uint = 4096; pub const POSIX_MADV_DONTNEED: ::c_int = 4; +pub const _CS_GNU_LIBC_VERSION: ::c_int = 2; +pub const _CS_GNU_LIBPTHREAD_VERSION: ::c_int = 3; +pub const _CS_PATH: ::c_int = 0; pub const _SC_EQUIV_CLASS_MAX: ::c_int = 41; pub const _SC_CHARCLASS_NAME_MAX: ::c_int = 45; pub const _SC_PII: ::c_int = 53; @@ -1478,6 +1481,7 @@ extern "C" { pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char; pub fn ctime_r(timep: *const time_t, buf: *mut ::c_char) -> *mut ::c_char; + pub fn confstr(name: ::c_int, buf: *mut ::c_char, len: ::size_t) -> ::size_t; pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; /// POSIX version of `basename(3)`, defined in `libgen.h`. #[link_name = "__xpg_basename"] From b63b6266244c0a3ea60396ec76c56d8cd96ac0cd Mon Sep 17 00:00:00 2001 From: Dan Cross Date: Tue, 26 Mar 2024 20:33:57 +0000 Subject: [PATCH 0083/1228] illumos: expose `PIPE_BUF` constant (backport ) (cherry picked from commit 64d8a2f233853acfbb8abd2bcc085797d5933e43) --- libc-test/semver/solarish.txt | 1 + src/unix/solarish/mod.rs | 1 + 2 files changed, 2 insertions(+) create mode 100644 libc-test/semver/solarish.txt diff --git a/libc-test/semver/solarish.txt b/libc-test/semver/solarish.txt new file mode 100644 index 0000000000000..069508925c8ef --- /dev/null +++ b/libc-test/semver/solarish.txt @@ -0,0 +1 @@ +PIPE_BUF diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 7ed00413dc7f2..d8ffc8e4411c4 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1279,6 +1279,7 @@ pub const FOPEN_MAX: ::c_uint = 20; pub const FILENAME_MAX: ::c_uint = 1024; pub const L_tmpnam: ::c_uint = 25; pub const TMP_MAX: ::c_uint = 17576; +pub const PIPE_BUF: ::c_int = 5120; pub const GRND_NONBLOCK: ::c_uint = 0x0001; pub const GRND_RANDOM: ::c_uint = 0x0002; From 31b2b2ef90125f8f7ba77fdc691c78bb39d34c50 Mon Sep 17 00:00:00 2001 From: Kai Luo Date: Tue, 2 Apr 2024 04:40:34 -0400 Subject: [PATCH 0084/1228] Fix configuration for AIX (backport ) (cherry picked from commit 18dca23a4cf4884114e30b0b658f23f1f9eacaaa) --- src/unix/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 49984d3f00c65..26a4029d94f87 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -396,7 +396,7 @@ cfg_if! { #[cfg_attr(feature = "rustc-dep-of-std", link(name = "c", cfg(not(target_feature = "crt-static"))))] extern {} - } else if #[cfg(target_env = "aix")] { + } else if #[cfg(target_os = "aix")] { #[link(name = "c")] #[link(name = "m")] #[link(name = "bsd")] From 0f3edec1fd76fb577c3be0301789de493461ce6e Mon Sep 17 00:00:00 2001 From: virchau13 Date: Fri, 10 May 2024 10:18:52 +0800 Subject: [PATCH 0085/1228] feat(android): add RTLD_NODELETE RTLD_NODELETE has been supported on Android [since 2014](https://android-review.googlesource.com/c/platform/bionic/+/95170). (backport ) (cherry picked from commit 1049e5d42a2aab7b5004fbe593ff5e391342203a) --- libc-test/semver/android.txt | 1 + src/unix/linux_like/android/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 9722b6e361f30..0bf7f422a2f49 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -2033,6 +2033,7 @@ RTLD_LAZY RTLD_LOCAL RTLD_NOLOAD RTLD_NOW +RTLD_NODELETE TCA_UNSPEC TCA_KIND TCA_OPTIONS diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index c2e7ddf2fc8be..535e874080633 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1761,6 +1761,7 @@ pub const ST_NODIRATIME: ::c_ulong = 2048; pub const ST_RELATIME: ::c_ulong = 4096; pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const RTLD_NODELETE: ::c_int = 0x1000; pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; From 36407f301e4fe2aaf07fbb2f274112c6b68d05a9 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sun, 12 May 2024 15:47:06 +0000 Subject: [PATCH 0086/1228] adding pthread_sigqueue to haiku. (backport ) (cherry picked from commit cbaa0d8e89c7b83446f3109b9b66d8c9ec267ee6) --- src/unix/haiku/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 0e60a1c6e267b..4dc931cd047d9 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1791,6 +1791,7 @@ extern "C" { lock: *mut pthread_mutex_t, abstime: *const ::timespec, ) -> ::c_int; + pub fn pthread_sigqueue(thread: ::pthread_t, sig: ::c_int, value: ::sigval) -> ::c_int; pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int; pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int; pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int; From a9cc8724fe8b8583d4691ba7298b406fedd1c246 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Wed, 28 Feb 2024 14:07:47 +0100 Subject: [PATCH 0087/1228] Don't import std::string::String .../std/src/prelude/mod.rs:105:13 | = note: the item `String` is already defined here | = note: `#[warn(unused_imports)]` on by default (backport ) (cherry picked from commit 6025890b574c08aa052b37f39107f9a06ea1cb3a) --- build.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/build.rs b/build.rs index ee0d86edecb81..5945799d2423d 100644 --- a/build.rs +++ b/build.rs @@ -1,7 +1,6 @@ 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 From ca7e96a9e41b94265658107162c28b53dfe49a9c Mon Sep 17 00:00:00 2001 From: Marcel Telka Date: Thu, 30 May 2024 01:06:33 +0200 Subject: [PATCH 0088/1228] Change ifa_flags type to u64 for Solaris/illumos (backport ) (cherry picked from commit efc67c98da35d69c7ff33ee70aec20459cb58401) --- src/unix/solarish/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 7ed00413dc7f2..160cf66947a94 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -135,7 +135,7 @@ s! { pub struct ifaddrs { pub ifa_next: *mut ifaddrs, pub ifa_name: *mut ::c_char, - pub ifa_flags: ::c_ulong, + pub ifa_flags: u64, pub ifa_addr: *mut ::sockaddr, pub ifa_netmask: *mut ::sockaddr, pub ifa_dstaddr: *mut ::sockaddr, From 18210cade2b62ec8f60cae3e36ce827b6d20d81a Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Fri, 7 Jun 2024 02:57:34 +0200 Subject: [PATCH 0089/1228] hurd: Add XATTR_CREATE, XATTR_REPLACE (backport ) (cherry picked from commit 9d33ec2fbf270940f9f5549b386ee4e39fadb147) --- src/unix/hurd/mod.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 2701649f6c646..71f1ac8d98c22 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -2760,6 +2760,10 @@ pub const MREMAP_FIXED: ::c_int = 2; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +// sys/xattr.h +pub const XATTR_CREATE: ::c_int = 0x1; +pub const XATTR_REPLACE: ::c_int = 0x2; + // spawn.h pub const POSIX_SPAWN_USEVFORK: ::c_int = 64; pub const POSIX_SPAWN_SETSID: ::c_int = 128; From 98f13d93743a542b3579ed131ec9c9dee72e238d Mon Sep 17 00:00:00 2001 From: B I Mohammed Abbas Date: Fri, 28 Jun 2024 17:31:53 +0530 Subject: [PATCH 0090/1228] Adding constant SOMAXCONN to vxworks (backport ) (cherry picked from commit 9d5b5a7d0c28790a436657d7476528aa70816440) --- src/vxworks/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index c248c64da5012..4f0274241394e 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -797,6 +797,7 @@ pub const S_IRWXO: ::c_int = 0x0007; // socket.h pub const SOL_SOCKET: ::c_int = 0xffff; +pub const SOMAXCONN: ::c_int = 128; pub const SO_DEBUG: ::c_int = 0x0001; pub const SO_REUSEADDR: ::c_int = 0x0004; From 16431da31f4d99220fc20db4cb0acefaa32d2f5a Mon Sep 17 00:00:00 2001 From: Yuri Astrakhan Date: Mon, 5 Aug 2024 18:32:01 -0400 Subject: [PATCH 0091/1228] Modify QNX NTO platform support Modify QNX NTO `dl_iterate_phdr` to toke `* mut` All other platforms use `* mut`, and while this is technically a breaking change, most likely noone is using it directly. NTO does not define last four fields of the `dl_phdr_info`, so might as well exclude them for cleanliness. v7.0: [link](https://www.qnx.com/developers/docs/7.0.0/index.html#com.qnx.doc.neutrino.lib_ref/topic/d/dl_iterate_phdr.html) v7.1: [link](https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.lib_ref/topic/d/dl_iterate_phdr.html) v8.0: [link](https://www.qnx.com/developers/docs/8.0/com.qnx.doc.neutrino.lib_ref/topic/d/dl_iterate_phdr.html?hl=dl_phdr_info) See also https://github.com/rust-lang/backtrace-rs/pull/648 (backport ) (cherry picked from commit 4edd2660c451dbef87b7b6b5f2f555bc84553882) --- src/unix/linux_like/linux/mod.rs | 9 +++++---- src/unix/nto/mod.rs | 5 ++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index eb1b18375403f..700b6fd0d408e 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -327,13 +327,14 @@ s! { // to false. So I'm just removing these, and if uClibc changes // the #if block in the future to include the following fields, these // will probably need including here. tsidea, skrap - #[cfg(not(target_env = "uclibc"))] + // QNX (NTO) platform does not define these fields + #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] pub dlpi_adds: ::c_ulonglong, - #[cfg(not(target_env = "uclibc"))] + #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] pub dlpi_subs: ::c_ulonglong, - #[cfg(not(target_env = "uclibc"))] + #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] pub dlpi_tls_modid: ::size_t, - #[cfg(not(target_env = "uclibc"))] + #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] pub dlpi_tls_data: *mut ::c_void, } diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 73fd2ba9f49fc..001b51a7da678 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -3340,7 +3340,10 @@ extern "C" { pub fn dl_iterate_phdr( callback: ::Option< unsafe extern "C" fn( - info: *const dl_phdr_info, + // The original .h file declares this as *const, but for consistency with other platforms, + // changing this to *mut to make it easier to use. + // Maybe in v0.3 all platforms should use this as a *const. + info: *mut dl_phdr_info, size: ::size_t, data: *mut ::c_void, ) -> ::c_int, From b7e7a556e96ffcf8ce6fd5d0a0c7a280655ee039 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 15 Aug 2024 02:07:17 -0500 Subject: [PATCH 0092/1228] Add `release-plz` for the 0.2 branch This only enables the release PRs. We can enable publish once we verify that the results look correct. --- .github/workflows/publish_0.2.yml | 30 ++++++++++++++++++++++++++++++ .release-plz.toml | 2 ++ libc-test/Cargo.toml | 1 + 3 files changed, 33 insertions(+) create mode 100644 .github/workflows/publish_0.2.yml create mode 100644 .release-plz.toml diff --git a/.github/workflows/publish_0.2.yml b/.github/workflows/publish_0.2.yml new file mode 100644 index 0000000000000..36b5c08bb947c --- /dev/null +++ b/.github/workflows/publish_0.2.yml @@ -0,0 +1,30 @@ +# release-plz for the stable 0.2 branch + +name: Release-plz v0.2 + +permissions: + pull-requests: write + contents: write + +on: + push: + branches: + - libc-0.2 + +jobs: + release-plz: + name: Release-plz v0.2 + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Install Rust (rustup) + run: rustup update stable --no-self-update && rustup default stable + - name: Run release-plz + uses: MarcoIeni/release-plz-action@v0.5 + with: + command: release-pr + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.release-plz.toml b/.release-plz.toml new file mode 100644 index 0000000000000..8868315fab2c6 --- /dev/null +++ b/.release-plz.toml @@ -0,0 +1,2 @@ +[workspace] +git_tag_name = "v{{ version }}" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 9705c2ef1151a..843cd89fccdb7 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -5,6 +5,7 @@ edition = "2018" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" build = "build.rs" +publish = false repository = "https://github.com/rust-lang/libc" homepage = "https://github.com/rust-lang/libc" description = """ From 5183d23c8a3d0bd25149d586fd86abe68c8e89fa Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 15 Aug 2024 05:36:33 -0500 Subject: [PATCH 0093/1228] Enable publishing new versions via release-plz --- .github/workflows/publish_0.2.yml | 3 +-- .release-plz.toml | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish_0.2.yml b/.github/workflows/publish_0.2.yml index 36b5c08bb947c..768fbcac7d3cc 100644 --- a/.github/workflows/publish_0.2.yml +++ b/.github/workflows/publish_0.2.yml @@ -24,7 +24,6 @@ jobs: run: rustup update stable --no-self-update && rustup default stable - name: Run release-plz uses: MarcoIeni/release-plz-action@v0.5 - with: - command: release-pr env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} diff --git a/.release-plz.toml b/.release-plz.toml index 8868315fab2c6..45fd917c3bffd 100644 --- a/.release-plz.toml +++ b/.release-plz.toml @@ -1,2 +1,2 @@ [workspace] -git_tag_name = "v{{ version }}" +git_tag_name = "{{ version }}" From 4789ece900159fc872b5dc9376590c1bbe388406 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2024 18:25:26 +0000 Subject: [PATCH 0094/1228] chore: release --- CHANGELOG.md | 54 ++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 3 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000000..4fcf6c3444619 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,54 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [0.2.156](https://github.com/rust-lang/libc/compare/0.2.155...0.2.156) - 2024-08-15 + +### Added +- F_ALLOCATEPERSIST for apple +- IP_RECVTTL/IPV6_RECVHOPLIMIT for FreeBSD/DragonFly + +### Fixed +- Remove macOS 11 usage on CI +- Allow dead_code lint + +### Other +- Enable publishing new versions via release-plz +- Add `release-plz` for the 0.2 branch +- Merge pull request [#3821](https://github.com/rust-lang/libc/pull/3821) from tgross35/backport-celery +- Modify QNX NTO platform support +- Adding constant SOMAXCONN to vxworks +- Add XATTR_CREATE, XATTR_REPLACE +- Change ifa_flags type to u64 for Solaris/illumos +- add confstr API and _CS_* to linux-gnu +- Merge pull request [#3814](https://github.com/rust-lang/libc/pull/3814) from tgross35/backport-hermit +- Merge pull request [#3813](https://github.com/rust-lang/libc/pull/3813) from tgross35/backport-futex-constants +- Merge pull request [#3812](https://github.com/rust-lang/libc/pull/3812) from tgross35/backport-fbsd-kinfo_file +- Merge pull request [#3811](https://github.com/rust-lang/libc/pull/3811) from tgross35/backport-riscv64-clone_args +- Merge pull request [#3810](https://github.com/rust-lang/libc/pull/3810) from tgross35/backport-haiku-b_app_image_symbol +- Merge pull request [#3807](https://github.com/rust-lang/libc/pull/3807) from sunshowers/illumos-pthread-pick +- vxWorks adding few errnoLib related constants. +- Disable hexagon-unknown-linux-musl testing for now +- Fix FreeBSD 15 CI +- Remove tier 3 targets from CI +- Tweak comment +- Disable `libregex` for QNX 7.0 +- Reference specific MSRV in comment +- `addr_of!(EXTERN_STATIC)` is now considered safe +- `rmx_state` has been removed +- skip API that requires a newer macOS SDK in tests +- add `os_sync_wait_on_address` and related definitions +- adding preadv2/pwritev2 to linux musl (1.2.5 min.) +- Merge pull request [#3716](https://github.com/rust-lang/libc/pull/3716) from devnexen/ipv6_dontfrag +- generalising IPV6_DONTFRAG to all bsd. +- Merge pull request [#3715](https://github.com/rust-lang/libc/pull/3715) from tesuji/ci-verbosity +- Merge pull request [#3700](https://github.com/rust-lang/libc/pull/3700) from asomers/freebsd-capsicum-libc0.2 +- Merge pull request [#3738](https://github.com/rust-lang/libc/pull/3738) from operutka/getauxval_uclibc +- Merge pull request [#3737](https://github.com/rust-lang/libc/pull/3737) from operutka/si_pid_uclibc +- Merge pull request [#3747](https://github.com/rust-lang/libc/pull/3747) from djkoloski/libc-0.2 +- Merge pull request [#3719](https://github.com/rust-lang/libc/pull/3719) from tesuji/ci-cirrus-cache +- Merge pull request [#3750](https://github.com/rust-lang/libc/pull/3750) from SteveLauC/feat/IP_RECVTTL_FreeBSD diff --git a/Cargo.toml b/Cargo.toml index 0da99d4ba1c32..978eeac2121ff 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.155" +version = "0.2.156" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 843cd89fccdb7..14f824424761a 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -14,7 +14,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.155" +version = "0.2.156" default-features = false [build-dependencies] From 9105f6a4ee14c90506983113e1a2c15562c170f6 Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Fri, 19 Jul 2024 09:03:31 +1000 Subject: [PATCH 0095/1228] Add fcntl OFD commands for macOS Obey shellcheck ci/style.sh should be executable Require macos-14 (backport ) (cherry picked from commit 00163d2019049a703cfb2b09b3f3fc3a25647af0) --- libc-test/semver/apple.txt | 11 +++++++---- src/unix/bsd/apple/mod.rs | 4 ++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index 4ca721005f139..dc9d7b4426022 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -256,10 +256,10 @@ 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_STATE_XATTRNAME COPYFILE_UNLINK +COPYFILE_VERBOSE COPYFILE_XATTR CR0 CR1 @@ -441,6 +441,9 @@ F_LOG2PHYS F_LOG2PHYS_EXT F_NOCACHE F_NODIRECT +F_OFD_GETLK +F_OFD_SETLK +F_OFD_SETLKW F_PEOFPOSMODE F_PREALLOCATE F_PUNCHHOLE @@ -2093,6 +2096,7 @@ posix_spawn_file_actions_t posix_spawnattr_destroy posix_spawnattr_get_qos_class_np posix_spawnattr_getarchpref_np +posix_spawnattr_getbinpref_np posix_spawnattr_getflags posix_spawnattr_getpgroup posix_spawnattr_getsigdefault @@ -2100,12 +2104,11 @@ posix_spawnattr_getsigmask posix_spawnattr_init posix_spawnattr_set_qos_class_np posix_spawnattr_setarchpref_np +posix_spawnattr_setbinpref_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 diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index f21c0ae6e54aa..32f0f4eac779b 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -3609,6 +3609,10 @@ 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; +// See https://github.com/apple/darwin-xnu/blob/main/bsd/sys/fcntl.h +pub const F_OFD_SETLK: ::c_int = 90; /* Acquire or release open file description lock */ +pub const F_OFD_SETLKW: ::c_int = 91; /* (as F_OFD_SETLK but blocking if conflicting lock) */ +pub const F_OFD_GETLK: ::c_int = 92; /* Examine OFD lock */ pub const F_PUNCHHOLE: ::c_int = 99; pub const F_TRIM_ACTIVE_FILE: ::c_int = 100; pub const F_SPECULATIVE_READ: ::c_int = 101; From 191c59f84dd8a3870bd8de02a5fb7879f8c87351 Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Sun, 5 May 2024 15:47:13 +0900 Subject: [PATCH 0096/1228] Add wasi select, FD_SET, FD_ZERO, FD_ISSET (backport ) (cherry picked from commit 1edaad1b20a2c9396947ff1d811f4d082ec16830) --- src/wasi.rs | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/wasi.rs b/src/wasi.rs index 8b32405b9fbfe..0f6cace8becb6 100644 --- a/src/wasi.rs +++ b/src/wasi.rs @@ -175,6 +175,11 @@ s! { pub st_ctim: timespec, __reserved: [c_longlong; 3], } + + pub struct fd_set { + __nfds: usize, + __fds: [c_int; FD_SETSIZE as usize], + } } // Declare dirent outside of s! so that it doesn't implement Copy, Eq, Hash, @@ -442,6 +447,28 @@ pub const NOEXPR: ::nl_item = 0x50001; pub const YESSTR: ::nl_item = 0x50002; pub const NOSTR: ::nl_item = 0x50003; +f! { + pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + let set = &*set; + let n = set.__nfds; + return set.__fds[..n].iter().any(|p| *p == fd) + } + + pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + let set = &mut *set; + let n = set.__nfds; + if !set.__fds[..n].iter().any(|p| *p == fd) { + set.__nfds = n + 1; + set.__fds[n] = fd; + } + } + + pub fn FD_ZERO(set: *mut fd_set) -> () { + (*set).__nfds = 0; + return + } +} + #[cfg_attr( feature = "rustc-dep-of-std", link( @@ -737,6 +764,14 @@ extern "C" { pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; pub fn nl_langinfo_l(item: ::nl_item, loc: ::locale_t) -> *mut ::c_char; + pub fn select( + nfds: c_int, + readfds: *mut fd_set, + writefds: *mut fd_set, + errorfds: *mut fd_set, + timeout: *const timeval, + ) -> c_int; + pub fn __wasilibc_register_preopened_fd(fd: c_int, path: *const c_char) -> c_int; pub fn __wasilibc_fd_renumber(fd: c_int, newfd: c_int) -> c_int; pub fn __wasilibc_unlinkat(fd: c_int, path: *const c_char) -> c_int; From d3910e7b5cf96c00b679b40e553a19262b62bec2 Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Tue, 13 Aug 2024 09:52:36 +0900 Subject: [PATCH 0097/1228] Add semver/wasi.txt (backport ) (cherry picked from commit e9da8a01a9c2c2d24797cb24c25f8ef18d55a712) --- libc-test/semver/wasi.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 libc-test/semver/wasi.txt diff --git a/libc-test/semver/wasi.txt b/libc-test/semver/wasi.txt new file mode 100644 index 0000000000000..975c8155a58cb --- /dev/null +++ b/libc-test/semver/wasi.txt @@ -0,0 +1,5 @@ +fd_set +FD_SET +FD_ZERO +FD_ISSET +select From 66cdb6bd9612387d2926709058619afd4e47b7a5 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Wed, 14 Aug 2024 19:00:03 +0100 Subject: [PATCH 0098/1228] openbsd/netbsd factorise getnameinfo. (backport ) (cherry picked from commit 5df9fa0db73fea938c3837c811a9ab4d27aadd96) --- src/unix/bsd/netbsdlike/mod.rs | 11 +++++++++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 9 --------- src/unix/bsd/netbsdlike/openbsd/mod.rs | 9 --------- 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index e92cf65940141..eec8f39b5c858 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -706,6 +706,17 @@ extern "C" { dev: dev_t, ) -> ::c_int; pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + servlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; pub fn pthread_condattr_setclock( diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 7c63db8e0e205..28456d68bebd8 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2648,15 +2648,6 @@ extern "C" { pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; #[link_name = "__gettimeofday50"] pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - servlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; pub fn sysctl( name: *const ::c_int, diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 8f470aff9a357..1809384e4b6a3 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -2018,15 +2018,6 @@ extern "C" { atflag: ::c_int, ) -> ::c_int; pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::size_t, - serv: *mut ::c_char, - servlen: ::size_t, - flags: ::c_int, - ) -> ::c_int; pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int; pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int; pub fn kevent( From a3c367c31f6fa6498e36111495593ce7bc307971 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 15 Aug 2024 16:44:53 -0400 Subject: [PATCH 0099/1228] Update CHANGELOG.md Adjust changelog messages to make more sense. --- CHANGELOG.md | 64 ++++++++++++++++------------------------------------ 1 file changed, 20 insertions(+), 44 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fcf6c3444619..07ca64c55a58d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,54 +1,30 @@ # Changelog -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] -## [0.2.156](https://github.com/rust-lang/libc/compare/0.2.155...0.2.156) - 2024-08-15 +## [0.2.156](https://github.com/rust-lang/libc/compare/v0.2.155...v0.2.156) - 2024-08-15 ### Added -- F_ALLOCATEPERSIST for apple -- IP_RECVTTL/IPV6_RECVHOPLIMIT for FreeBSD/DragonFly +- Apple: add `F_ALLOCATEPERSIST` +- Apple: add `os_sync_wait_on_address` and related definitions +- BSD: generalise `IPV6_DONTFRAG` to all BSD targets +- FreeBSD/DragonFly: add `IP_RECVTTL`/`IPV6_RECVHOPLIMIT` +- Hurd: add `XATTR_CREATE`, `XATTR_REPLACE` +- Linux GNU: `confstr` API and `_CS_*` +- Linux musl: add `preadv2` and `pwritev2` (1.2.5 min.) +- VxWorks: add the constant `SOMAXCONN` +- VxWorks: add a few errnoLib related constants ### Fixed -- Remove macOS 11 usage on CI -- Allow dead_code lint +- Solaris/illumos: Change `ifa_flags` type to u64 for +- QNX 7.0: Disable `libregex` -### Other -- Enable publishing new versions via release-plz -- Add `release-plz` for the 0.2 branch -- Merge pull request [#3821](https://github.com/rust-lang/libc/pull/3821) from tgross35/backport-celery -- Modify QNX NTO platform support -- Adding constant SOMAXCONN to vxworks -- Add XATTR_CREATE, XATTR_REPLACE -- Change ifa_flags type to u64 for Solaris/illumos -- add confstr API and _CS_* to linux-gnu -- Merge pull request [#3814](https://github.com/rust-lang/libc/pull/3814) from tgross35/backport-hermit -- Merge pull request [#3813](https://github.com/rust-lang/libc/pull/3813) from tgross35/backport-futex-constants -- Merge pull request [#3812](https://github.com/rust-lang/libc/pull/3812) from tgross35/backport-fbsd-kinfo_file -- Merge pull request [#3811](https://github.com/rust-lang/libc/pull/3811) from tgross35/backport-riscv64-clone_args -- Merge pull request [#3810](https://github.com/rust-lang/libc/pull/3810) from tgross35/backport-haiku-b_app_image_symbol -- Merge pull request [#3807](https://github.com/rust-lang/libc/pull/3807) from sunshowers/illumos-pthread-pick -- vxWorks adding few errnoLib related constants. -- Disable hexagon-unknown-linux-musl testing for now -- Fix FreeBSD 15 CI -- Remove tier 3 targets from CI -- Tweak comment -- Disable `libregex` for QNX 7.0 -- Reference specific MSRV in comment +### Changed +- QNX NTO: update platform support - `addr_of!(EXTERN_STATIC)` is now considered safe -- `rmx_state` has been removed -- skip API that requires a newer macOS SDK in tests -- add `os_sync_wait_on_address` and related definitions -- adding preadv2/pwritev2 to linux musl (1.2.5 min.) -- Merge pull request [#3716](https://github.com/rust-lang/libc/pull/3716) from devnexen/ipv6_dontfrag -- generalising IPV6_DONTFRAG to all bsd. -- Merge pull request [#3715](https://github.com/rust-lang/libc/pull/3715) from tesuji/ci-verbosity -- Merge pull request [#3700](https://github.com/rust-lang/libc/pull/3700) from asomers/freebsd-capsicum-libc0.2 -- Merge pull request [#3738](https://github.com/rust-lang/libc/pull/3738) from operutka/getauxval_uclibc -- Merge pull request [#3737](https://github.com/rust-lang/libc/pull/3737) from operutka/si_pid_uclibc -- Merge pull request [#3747](https://github.com/rust-lang/libc/pull/3747) from djkoloski/libc-0.2 -- Merge pull request [#3719](https://github.com/rust-lang/libc/pull/3719) from tesuji/ci-cirrus-cache -- Merge pull request [#3750](https://github.com/rust-lang/libc/pull/3750) from SteveLauC/feat/IP_RECVTTL_FreeBSD + +### Removed +- Apple: remove `rmx_state` + +### Other +- Update or remove CI tests that have been failing From 1342b49653d8ac47fbf7652e5fca405f79f31f7e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 15 Aug 2024 16:49:52 -0400 Subject: [PATCH 0100/1228] Use the same tag and release names --- .release-plz.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/.release-plz.toml b/.release-plz.toml index 45fd917c3bffd..68bd669aff358 100644 --- a/.release-plz.toml +++ b/.release-plz.toml @@ -1,2 +1,3 @@ [workspace] +git_release_name = "{{ version }}" git_tag_name = "{{ version }}" From bff183ca224477c621d8630f20b90d7c39d7b8fc Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Wed, 15 May 2024 11:58:30 +0200 Subject: [PATCH 0101/1228] Add _NSGetArgv, _NSGetArgc and _NSGetProgname from crt_externs.h Available in the headers on all Apple platforms. (backport ) (cherry picked from commit 4333c2f1de640379ec5ecbbc79219bef799b5bd0) --- libc-test/semver/apple.txt | 3 +++ src/unix/bsd/apple/mod.rs | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index dc9d7b4426022..4d280dc731dfd 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -1695,8 +1695,11 @@ _CS_PATH _IOFBF _IOLBF _IONBF +_NSGetArgc +_NSGetArgv _NSGetEnviron _NSGetExecutablePath +_NSGetProgname _POSIX_VDISABLE _PTHREAD_COND_SIG_init _PTHREAD_MUTEX_SIG_init diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 32f0f4eac779b..06b6c62a63f35 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -6377,7 +6377,12 @@ extern "C" { pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; pub fn _NSGetExecutablePath(buf: *mut ::c_char, bufsize: *mut u32) -> ::c_int; + + // crt_externs.h + pub fn _NSGetArgv() -> *mut *mut *mut ::c_char; + pub fn _NSGetArgc() -> *mut ::c_int; pub fn _NSGetEnviron() -> *mut *mut *mut ::c_char; + pub fn _NSGetProgname() -> *mut *mut ::c_char; pub fn mach_vm_map( target_task: ::vm_map_t, From 1183d5474f2682be595eda1a17d46d6ac5262d9d Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 25 May 2024 09:27:41 +0000 Subject: [PATCH 0102/1228] netbsd adding _lwp_park api. (backport ) (cherry picked from commit 4769aaad8ca6e2d005b3354a2c5a724b46639e79) --- libc-test/semver/netbsd.txt | 3 +++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index 35d64153f2650..838f28f71b5d1 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -1190,6 +1190,9 @@ _cpuset_destroy _cpuset_isset _cpuset_set _cpuset_zero +_lwp_park +_lwp_unpark +_lwp_unpark_all _lwp_self abs accept4 diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 28456d68bebd8..8dfbc8e32d868 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2875,6 +2875,22 @@ extern "C" { pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; pub fn reboot(mode: ::c_int, bootstr: *mut ::c_char) -> ::c_int; + + #[link_name = "___lwp_park60"] + pub fn _lwp_park( + clock: ::clockid_t, + flags: ::c_int, + ts: *const ::timespec, + unpark: ::lwpid_t, + hint: *const ::c_void, + unparkhint: *mut ::c_void, + ) -> ::c_int; + pub fn _lwp_unpark(lwp: ::lwpid_t, hint: *const ::c_void) -> ::c_int; + pub fn _lwp_unpark_all( + targets: *const ::lwpid_t, + ntargets: ::size_t, + hint: *const ::c_void, + ) -> ::c_int; } #[link(name = "rt")] From 8aeffed1f39389193024147fcb87ea2d4fec5182 Mon Sep 17 00:00:00 2001 From: joboet Date: Thu, 18 Jul 2024 14:21:12 +0200 Subject: [PATCH 0103/1228] add `pthread_equal` (backport ) (cherry picked from commit 83b3393ebbb6fe5671181da76fdbc7e5474ce395) --- libc-test/semver/unix.txt | 1 + src/unix/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/unix.txt b/libc-test/semver/unix.txt index 5e84434b46bf4..03248dfec58c7 100644 --- a/libc-test/semver/unix.txt +++ b/libc-test/semver/unix.txt @@ -687,6 +687,7 @@ pthread_condattr_init pthread_condattr_t pthread_create pthread_detach +pthread_equal pthread_exit pthread_getspecific pthread_join diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 26a4029d94f87..e3ff101f2b93b 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1056,6 +1056,7 @@ extern "C" { pub fn times(buf: *mut ::tms) -> ::clock_t; pub fn pthread_self() -> ::pthread_t; + pub fn pthread_equal(t1: ::pthread_t, t2: ::pthread_t) -> ::c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_join$UNIX2003" From 35526765191764217158f1940cc64ef7c238e2da Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 16 Aug 2024 01:53:54 -0500 Subject: [PATCH 0104/1228] Revert "openbsd/netbsd factorise getnameinfo." This reverts commit 66cdb6bd9612387d2926709058619afd4e47b7a5. The change broke builds for OpenBSD. See discussion at . `main` version: . --- src/unix/bsd/netbsdlike/mod.rs | 11 ----------- src/unix/bsd/netbsdlike/netbsd/mod.rs | 9 +++++++++ src/unix/bsd/netbsdlike/openbsd/mod.rs | 9 +++++++++ 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index eec8f39b5c858..e92cf65940141 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -706,17 +706,6 @@ extern "C" { dev: dev_t, ) -> ::c_int; pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; - - pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - servlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; pub fn pthread_condattr_setclock( diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 28456d68bebd8..7c63db8e0e205 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2648,6 +2648,15 @@ extern "C" { pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; #[link_name = "__gettimeofday50"] pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + servlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; pub fn sysctl( name: *const ::c_int, diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 1809384e4b6a3..8f470aff9a357 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -2018,6 +2018,15 @@ extern "C" { atflag: ::c_int, ) -> ::c_int; pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::size_t, + serv: *mut ::c_char, + servlen: ::size_t, + flags: ::c_int, + ) -> ::c_int; pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int; pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int; pub fn kevent( From dfe2e6f52dcbbc9711b22bddb1b59fd03e3312a0 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 16 Aug 2024 04:19:13 -0500 Subject: [PATCH 0105/1228] Update CHANGELOG.md for 0.2.156 Add links to the relevant PRs. --- CHANGELOG.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 07ca64c55a58d..76c07f7f791e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,26 +5,26 @@ ## [0.2.156](https://github.com/rust-lang/libc/compare/v0.2.155...v0.2.156) - 2024-08-15 ### Added -- Apple: add `F_ALLOCATEPERSIST` -- Apple: add `os_sync_wait_on_address` and related definitions -- BSD: generalise `IPV6_DONTFRAG` to all BSD targets -- FreeBSD/DragonFly: add `IP_RECVTTL`/`IPV6_RECVHOPLIMIT` -- Hurd: add `XATTR_CREATE`, `XATTR_REPLACE` -- Linux GNU: `confstr` API and `_CS_*` -- Linux musl: add `preadv2` and `pwritev2` (1.2.5 min.) -- VxWorks: add the constant `SOMAXCONN` -- VxWorks: add a few errnoLib related constants +- Apple: add `F_ALLOCATEPERSIST` in +- Apple: add `os_sync_wait_on_address` and related definitions in +- BSD: generalise `IPV6_DONTFRAG` to all BSD targets in +- FreeBSD/DragonFly: add `IP_RECVTTL`/`IPV6_RECVHOPLIMIT` in +- Hurd: add `XATTR_CREATE`, `XATTR_REPLACE` in +- Linux GNU: `confstr` API and `_CS_*` in +- Linux musl: add `preadv2` and `pwritev2` (1.2.5 min.) in +- VxWorks: add the constant `SOMAXCONN` in +- VxWorks: add a few errnoLib related constants in ### Fixed -- Solaris/illumos: Change `ifa_flags` type to u64 for -- QNX 7.0: Disable `libregex` +- Solaris/illumos: Change `ifa_flags` type to u64 in +- QNX 7.0: Disable `libregex` in ### Changed -- QNX NTO: update platform support -- `addr_of!(EXTERN_STATIC)` is now considered safe +- QNX NTO: update platform support in +- `addr_of!(EXTERN_STATIC)` is now considered safe in ### Removed -- Apple: remove `rmx_state` +- Apple: remove `rmx_state` in ### Other - Update or remove CI tests that have been failing From f0045dacf963698c21cd1b6023af94d5f280412e Mon Sep 17 00:00:00 2001 From: Nathaniel Date: Fri, 16 Aug 2024 14:59:45 -0400 Subject: [PATCH 0106/1228] TEEOS: Fix octal notation for O_* constants (cherry picked from commit 724b1b47a432fc9448068c2163bfeda422ff41b5) --- src/teeos/mod.rs | 36 +++++++++---------- src/unix/linux_like/linux/uclibc/mod.rs | 6 ++-- .../linux_like/linux/uclibc/x86_64/mod.rs | 14 ++++---- 3 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/teeos/mod.rs b/src/teeos/mod.rs index 25e06ffaa3b10..4f1fef110dd93 100644 --- a/src/teeos/mod.rs +++ b/src/teeos/mod.rs @@ -177,41 +177,41 @@ pub struct div_t { } // fcntl -pub const O_CREAT: u32 = 0100; +pub const O_CREAT: u32 = 0o100; -pub const O_EXCL: u32 = 0200; +pub const O_EXCL: u32 = 0o200; -pub const O_NOCTTY: u32 = 0400; +pub const O_NOCTTY: u32 = 0o400; -pub const O_TRUNC: u32 = 01000; +pub const O_TRUNC: u32 = 0o1000; -pub const O_APPEND: u32 = 02000; +pub const O_APPEND: u32 = 0o2000; -pub const O_NONBLOCK: u32 = 04000; +pub const O_NONBLOCK: u32 = 0o4000; -pub const O_DSYNC: u32 = 010000; +pub const O_DSYNC: u32 = 0o10000; -pub const O_SYNC: u32 = 04010000; +pub const O_SYNC: u32 = 0o4010000; -pub const O_RSYNC: u32 = 04010000; +pub const O_RSYNC: u32 = 0o4010000; -pub const O_DIRECTORY: u32 = 0200000; +pub const O_DIRECTORY: u32 = 0o200000; -pub const O_NOFOLLOW: u32 = 0400000; +pub const O_NOFOLLOW: u32 = 0o400000; -pub const O_CLOEXEC: u32 = 02000000; +pub const O_CLOEXEC: u32 = 0o2000000; -pub const O_ASYNC: u32 = 020000; +pub const O_ASYNC: u32 = 0o20000; -pub const O_DIRECT: u32 = 040000; +pub const O_DIRECT: u32 = 0o40000; -pub const O_LARGEFILE: u32 = 0100000; +pub const O_LARGEFILE: u32 = 0o100000; -pub const O_NOATIME: u32 = 01000000; +pub const O_NOATIME: u32 = 0o1000000; -pub const O_PATH: u32 = 010000000; +pub const O_PATH: u32 = 0o10000000; -pub const O_TMPFILE: u32 = 020200000; +pub const O_TMPFILE: u32 = 0o20200000; pub const O_NDELAY: u32 = O_NONBLOCK; diff --git a/src/unix/linux_like/linux/uclibc/mod.rs b/src/unix/linux_like/linux/uclibc/mod.rs index 637b5285a2c03..b8d10cb94595f 100644 --- a/src/unix/linux_like/linux/uclibc/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mod.rs @@ -303,7 +303,7 @@ pub const BUFSIZ: ::c_int = 4096; pub const EDEADLOCK: ::c_int = EDEADLK; pub const EXTA: ::c_uint = B19200; pub const EXTB: ::c_uint = B38400; -pub const EXTPROC: ::tcflag_t = 0200000; +pub const EXTPROC: ::tcflag_t = 0o200000; pub const FOPEN_MAX: ::c_int = 16; pub const F_GETOWN: ::c_int = 9; pub const F_OFD_GETLK: ::c_int = 36; @@ -330,7 +330,7 @@ pub const MAP_HUGE_1GB: ::c_int = 30 << MAP_HUGE_SHIFT; pub const MAP_HUGE_2GB: ::c_int = 31 << MAP_HUGE_SHIFT; pub const MAP_HUGE_16GB: ::c_int = 34 << MAP_HUGE_SHIFT; pub const MINSIGSTKSZ: ::c_int = 2048; -pub const MSG_COPY: ::c_int = 040000; +pub const MSG_COPY: ::c_int = 0o40000; pub const NI_MAXHOST: ::socklen_t = 1025; pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; pub const PACKET_MR_UNICAST: ::c_int = 3; @@ -343,7 +343,7 @@ pub const PTRACE_PEEKSIGINFO: ::c_int = 0x4209; pub const PTRACE_SETSIGMASK: ::c_uint = 0x420b; pub const RTLD_NOLOAD: ::c_int = 0x00004; pub const RUSAGE_THREAD: ::c_int = 1; -pub const SHM_EXEC: ::c_int = 0100000; +pub const SHM_EXEC: ::c_int = 0o100000; pub const SIGPOLL: ::c_int = SIGIO; pub const SOCK_DCCP: ::c_int = 6; pub const SOCK_PACKET: ::c_int = 10; diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index 390119e3b5091..c504202f6d984 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -311,15 +311,15 @@ pub const EHOSTUNREACH: ::c_int = 113; // No route to host pub const EDQUOT: ::c_int = 122; // Quota exceeded pub const EOPNOTSUPP: ::c_int = 0x5f; pub const ENODATA: ::c_int = 0x3d; -pub const O_APPEND: ::c_int = 02000; -pub const O_ACCMODE: ::c_int = 0003; +pub const O_APPEND: ::c_int = 0o2000; +pub const O_ACCMODE: ::c_int = 0o003; pub const O_CLOEXEC: ::c_int = 0x80000; pub const O_CREAT: ::c_int = 0100; -pub const O_DIRECTORY: ::c_int = 0200000; -pub const O_EXCL: ::c_int = 0200; +pub const O_DIRECTORY: ::c_int = 0o200000; +pub const O_EXCL: ::c_int = 0o200; pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_NONBLOCK: ::c_int = 04000; -pub const O_TRUNC: ::c_int = 01000; +pub const O_NONBLOCK: ::c_int = 0o4000; +pub const O_TRUNC: ::c_int = 0o1000; pub const NCCS: usize = 32; pub const SIG_SETMASK: ::c_int = 2; // Set the set of blocked signals pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; @@ -332,7 +332,7 @@ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const PIDFD_NONBLOCK: ::c_int = 04000; +pub const PIDFD_NONBLOCK: ::c_int = 0o4000; cfg_if! { if #[cfg(target_os = "l4re")] { From 570d89263d2e817357e3cb826dcd62b08882d0aa Mon Sep 17 00:00:00 2001 From: Nathaniel Date: Fri, 16 Aug 2024 19:14:17 -0400 Subject: [PATCH 0107/1228] Add RUSTC_WRAPPER support to build script (cherry picked from commit 8dba4a03d23ff979eba11afac4ff0b605267cddb) --- build.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/build.rs b/build.rs index 5945799d2423d..e445f5b38fe67 100644 --- a/build.rs +++ b/build.rs @@ -196,8 +196,17 @@ fn rustc_minor_nightly() -> (u32, bool) { }; } - let rustc = otry!(env::var_os("RUSTC")); - let output = Command::new(rustc) + let rustc = env::var_os("RUSTC").expect("Failed to get rustc version: missing RUSTC env"); + let mut cmd = match env::var_os("RUSTC_WRAPPER").as_ref() { + Some(wrapper) if !wrapper.is_empty() => { + let mut cmd = Command::new(wrapper); + cmd.arg(rustc); + cmd + } + _ => Command::new(rustc), + }; + + let output = cmd .arg("--version") .output() .ok() From 328033135403c2476e5fa9c18fdc3b129e9f4108 Mon Sep 17 00:00:00 2001 From: "Simon B. Gasse" Date: Fri, 19 Jul 2024 17:21:08 +0200 Subject: [PATCH 0108/1228] Add `klogctl` to linux and android For android, we also add the `KLOG_*` constants. For linux, they are defined in source but not exported to user space. (backport ) (cherry picked from commit ece907b48871ccbfa6cca666f31dff7a888dea54) --- libc-test/build.rs | 2 ++ libc-test/semver/android.txt | 12 ++++++++++++ libc-test/semver/linux.txt | 1 + src/unix/linux_like/android/mod.rs | 14 ++++++++++++++ src/unix/linux_like/linux/mod.rs | 2 ++ 5 files changed, 31 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 0746d3d607007..7a3d2728e67ce 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1656,6 +1656,7 @@ fn test_android(target: &str) { "sys/fsuid.h", "sys/inotify.h", "sys/ioctl.h", + "sys/klog.h", "sys/mman.h", "sys/mount.h", "sys/personality.h", @@ -3433,6 +3434,7 @@ fn test_linux(target: &str) { "sys/eventfd.h", "sys/file.h", "sys/fsuid.h", + "sys/klog.h", "sys/inotify.h", "sys/ioctl.h", "sys/ipc.h", diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 0bf7f422a2f49..28b3286bfc339 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -1073,6 +1073,17 @@ KEXEC_ON_CRASH KEXEC_PRESERVE_CONTEXT KEY_CNT KEY_MAX +KLOG_CLOSE +KLOG_OPEN +KLOG_READ +KLOG_READ_ALL +KLOG_READ_CLEAR +KLOG_CLEAR +KLOG_CONSOLE_OFF +KLOG_CONSOLE_ON +KLOG_CONSOLE_LEVEL +KLOG_SIZE_UNREAD +KLOG_SIZE_BUFFER LC_ADDRESS LC_ADDRESS_MASK LC_ALL @@ -3341,6 +3352,7 @@ itimerval key_t kill killpg +klogctl lastlog lchown lconv diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 6c649c26227ee..0bee4e68c16ae 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -3562,6 +3562,7 @@ j1939_filter jrand48 key_t killpg +klogctl labs lcong48 lgetxattr diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 535e874080633..a9cc5943bb469 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3523,6 +3523,18 @@ pub const PF_MEMALLOC_PIN: ::c_int = 0x10000000; pub const PF_SUSPEND_TASK: ::c_int = 0x80000000; +pub const KLOG_CLOSE: ::c_int = 0; +pub const KLOG_OPEN: ::c_int = 1; +pub const KLOG_READ: ::c_int = 2; +pub const KLOG_READ_ALL: ::c_int = 3; +pub const KLOG_READ_CLEAR: ::c_int = 4; +pub const KLOG_CLEAR: ::c_int = 5; +pub const KLOG_CONSOLE_OFF: ::c_int = 6; +pub const KLOG_CONSOLE_ON: ::c_int = 7; +pub const KLOG_CONSOLE_LEVEL: ::c_int = 8; +pub const KLOG_SIZE_UNREAD: ::c_int = 9; +pub const KLOG_SIZE_BUFFER: ::c_int = 10; + // Most `*_SUPER_MAGIC` constants are defined at the `linux_like` level; the // following are only available on newer Linux versions than the versions // currently used in CI in some configurations, so we define them here. @@ -4095,6 +4107,8 @@ extern "C" { ) -> ::size_t; pub fn fflush_unlocked(stream: *mut ::FILE) -> ::c_int; pub fn fgets_unlocked(buf: *mut ::c_char, size: ::c_int, stream: *mut ::FILE) -> *mut ::c_char; + + pub fn klogctl(syslog_type: ::c_int, bufp: *mut ::c_char, len: ::c_int) -> ::c_int; } cfg_if! { diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 700b6fd0d408e..779faa81ff16e 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -5626,6 +5626,8 @@ extern "C" { len: ::size_t, flags: ::c_uint, ) -> ::ssize_t; + + pub fn klogctl(syslog_type: ::c_int, bufp: *mut ::c_char, len: ::c_int) -> ::c_int; } // LFS64 extensions From 03f675912fde8b4b5b2a89b820f6c29f2f7add1a Mon Sep 17 00:00:00 2001 From: Petr Sumbera Date: Wed, 22 May 2024 17:38:11 +0200 Subject: [PATCH 0109/1228] Add missing networking support for Solaris (backport ) (cherry picked from commit 7d2eb94259a945f60f88cf0613b9b2ac46bc3170) --- libc-test/semver/solarish.txt | 13 +++++++++++++ src/unix/mod.rs | 30 ++++++++++++++++++++++++------ src/unix/solarish/mod.rs | 26 ++++++++++++++++++++++---- 3 files changed, 59 insertions(+), 10 deletions(-) diff --git a/libc-test/semver/solarish.txt b/libc-test/semver/solarish.txt index 069508925c8ef..8f51b3ceca6fa 100644 --- a/libc-test/semver/solarish.txt +++ b/libc-test/semver/solarish.txt @@ -1 +1,14 @@ +IPV6_DONTFRAG +IPV6_PKTINFO +IPV6_RECVTCLASS +IPV6_TCLASS +IP_DONTFRAG +IP_PKTINFO +IP_TOS +IP_TTL PIPE_BUF +bind +in6_pktinfo +in_pktinfo +recvmsg +sendmsg diff --git a/src/unix/mod.rs b/src/unix/mod.rs index e3ff101f2b93b..8b3d988ae38ae 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -595,7 +595,10 @@ extern "C" { target_vendor = "nintendo" )))] #[cfg_attr(target_os = "netbsd", link_name = "__socket30")] - #[cfg_attr(target_os = "illumos", link_name = "__xnet_socket")] + #[cfg_attr( + any(target_os = "illumos", target_os = "solaris"), + link_name = "__xnet_socket" + )] #[cfg_attr(target_os = "espidf", link_name = "lwip_socket")] pub fn socket(domain: ::c_int, ty: ::c_int, protocol: ::c_int) -> ::c_int; #[cfg(not(all( @@ -607,7 +610,10 @@ extern "C" { all(target_os = "macos", target_arch = "x86"), link_name = "connect$UNIX2003" )] - #[cfg_attr(target_os = "illumos", link_name = "__xnet_connect")] + #[cfg_attr( + any(target_os = "illumos", target_os = "solaris"), + link_name = "__xnet_connect" + )] #[cfg_attr(target_os = "espidf", link_name = "lwip_connect")] pub fn connect(socket: ::c_int, address: *const sockaddr, len: socklen_t) -> ::c_int; #[cfg_attr( @@ -669,7 +675,10 @@ extern "C" { all(target_os = "macos", target_arch = "x86"), link_name = "socketpair$UNIX2003" )] - #[cfg_attr(target_os = "illumos", link_name = "__xnet_socketpair")] + #[cfg_attr( + any(target_os = "illumos", target_os = "solaris"), + link_name = "__xnet_socketpair" + )] pub fn socketpair( domain: ::c_int, type_: ::c_int, @@ -685,7 +694,10 @@ extern "C" { all(target_os = "macos", target_arch = "x86"), link_name = "sendto$UNIX2003" )] - #[cfg_attr(target_os = "illumos", link_name = "__xnet_sendto")] + #[cfg_attr( + any(target_os = "illumos", target_os = "solaris"), + link_name = "__xnet_sendto" + )] #[cfg_attr(target_os = "espidf", link_name = "lwip_sendto")] pub fn sendto( socket: ::c_int, @@ -1164,7 +1176,10 @@ extern "C" { pub fn pthread_rwlockattr_init(attr: *mut pthread_rwlockattr_t) -> ::c_int; pub fn pthread_rwlockattr_destroy(attr: *mut pthread_rwlockattr_t) -> ::c_int; - #[cfg_attr(target_os = "illumos", link_name = "__xnet_getsockopt")] + #[cfg_attr( + any(target_os = "illumos", target_os = "solaris"), + link_name = "__xnet_getsockopt" + )] #[cfg_attr(target_os = "espidf", link_name = "lwip_getsockopt")] pub fn getsockopt( sockfd: ::c_int, @@ -1187,7 +1202,10 @@ extern "C" { target_arch = "powerpc", target_vendor = "nintendo" )))] - #[cfg_attr(target_os = "illumos", link_name = "__xnet_getaddrinfo")] + #[cfg_attr( + any(target_os = "illumos", target_os = "solaris"), + link_name = "__xnet_getaddrinfo" + )] #[cfg_attr(target_os = "espidf", link_name = "lwip_getaddrinfo")] pub fn getaddrinfo( node: *const c_char, diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 5f5cff1f306f9..63056bfbd7c7c 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -120,6 +120,17 @@ s! { pub __sin6_src_id: u32 } + pub struct in_pktinfo { + pub ipi_ifindex: ::c_uint, + pub ipi_spec_dst: ::in_addr, + pub ipi_addr: ::in_addr, + } + + pub struct in6_pktinfo { + pub ipi6_addr: ::in6_addr, + pub ipi6_ifindex: ::c_uint, + } + pub struct passwd { pub pw_name: *mut ::c_char, pub pw_passwd: *mut ::c_char, @@ -1238,14 +1249,20 @@ pub const CLD_STOPPED: ::c_int = 5; pub const CLD_CONTINUED: ::c_int = 6; pub const IP_RECVDSTADDR: ::c_int = 0x7; +pub const IP_PKTINFO: ::c_int = 0x1a; +pub const IP_DONTFRAG: ::c_int = 0x1b; pub const IP_SEC_OPT: ::c_int = 0x22; pub const IPV6_UNICAST_HOPS: ::c_int = 0x5; pub const IPV6_MULTICAST_IF: ::c_int = 0x6; pub const IPV6_MULTICAST_HOPS: ::c_int = 0x7; pub const IPV6_MULTICAST_LOOP: ::c_int = 0x8; +pub const IPV6_PKTINFO: ::c_int = 0xb; pub const IPV6_RECVPKTINFO: ::c_int = 0x12; +pub const IPV6_RECVTCLASS: ::c_int = 0x19; +pub const IPV6_DONTFRAG: ::c_int = 0x21; pub const IPV6_SEC_OPT: ::c_int = 0x22; +pub const IPV6_TCLASS: ::c_int = 0x26; pub const IPV6_V6ONLY: ::c_int = 0x27; cfg_if! { @@ -1775,8 +1792,9 @@ pub const SOCK_SEQPACKET: ::c_int = 6; pub const IP_MULTICAST_IF: ::c_int = 16; pub const IP_MULTICAST_TTL: ::c_int = 17; pub const IP_MULTICAST_LOOP: ::c_int = 18; -pub const IP_TTL: ::c_int = 4; pub const IP_HDRINCL: ::c_int = 2; +pub const IP_TOS: ::c_int = 3; +pub const IP_TTL: ::c_int = 4; pub const IP_ADD_MEMBERSHIP: ::c_int = 19; pub const IP_DROP_MEMBERSHIP: ::c_int = 20; pub const IPV6_JOIN_GROUP: ::c_int = 9; @@ -2869,15 +2887,15 @@ extern "C" { ) -> ::c_int; pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - #[cfg_attr(target_os = "illumos", link_name = "__xnet_bind")] + #[link_name = "__xnet_bind"] pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - #[cfg_attr(target_os = "illumos", link_name = "__xnet_sendmsg")] + #[link_name = "__xnet_sendmsg"] pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; - #[cfg_attr(target_os = "illumos", link_name = "__xnet_recvmsg")] + #[link_name = "__xnet_recvmsg"] pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; pub fn accept4( fd: ::c_int, From 3242730c9e69064217461eaf62f8b020c2a1299a Mon Sep 17 00:00:00 2001 From: Evan Wildenhain Date: Mon, 22 Jul 2024 10:45:25 -0400 Subject: [PATCH 0110/1228] Define SO_BINDTOIFINDEX on Fuchsia Fuchsia supports SO_BINDTOIFINDEX as of API level 20: https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/lib/zxio/socket.cc;l=755;drc=b03121152bf13fb8898a95b58d952c95ee73cd0c (backport ) (cherry picked from commit 09b8a4f0af7d2cb88fe5eafb35449bd43bf84242) --- libc-test/semver/fuchsia.txt | 1 + src/fuchsia/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/fuchsia.txt b/libc-test/semver/fuchsia.txt index 525b26bd62940..164916ccd554f 100644 --- a/libc-test/semver/fuchsia.txt +++ b/libc-test/semver/fuchsia.txt @@ -951,6 +951,7 @@ SOL_UDP SOL_X25 SOMAXCONN SO_BINDTODEVICE +SO_BINDTOIFINDEX SO_BSDCOMPAT SO_BUSY_POLL SO_DOMAIN diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index e396d37411a02..9414d1674f26e 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -2981,6 +2981,7 @@ pub const SO_MARK: ::c_int = 36; pub const SO_RXQ_OVFL: ::c_int = 40; pub const SO_PEEK_OFF: ::c_int = 42; pub const SO_BUSY_POLL: ::c_int = 46; +pub const SO_BINDTOIFINDEX: ::c_int = 62; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; From 20a117522c43f537055821d919ef260ed4faf270 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Mon, 12 Aug 2024 21:09:45 +0100 Subject: [PATCH 0111/1228] freebsd adding execvpe support from 14.1 release (backport ) [resolve conflicts - Trevor] (cherry picked from commit 67d062f97ad8f517242a4cc101d3beda5e5dfeb9) --- libc-test/build.rs | 1 + libc-test/semver/freebsd.txt | 1 + src/unix/bsd/freebsdlike/freebsd/mod.rs | 6 ++++++ 3 files changed, 8 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 0746d3d607007..91543d00dd4cf 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2575,6 +2575,7 @@ fn test_freebsd(target: &str) { // skip those that are manually verified match name { // FIXME: https://github.com/rust-lang/libc/issues/1272 + // Also, `execvpe` is introduced in FreeBSD 14.1 "execv" | "execve" | "execvp" | "execvpe" | "fexecve" => true, // The `uname` function in the `utsname.h` FreeBSD header is a C diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index 00b00b7a57b04..85cb2d6fd823e 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -1870,6 +1870,7 @@ eui64_hostton eui64_ntoa eui64_ntohost exect +execvpe execvP explicit_bzero extattr_delete_fd diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index cb39077402f19..47b4bd36e6d02 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -5648,6 +5648,12 @@ extern "C" { ) -> ::c_int; pub fn closefrom(lowfd: ::c_int); pub fn close_range(lowfd: ::c_uint, highfd: ::c_uint, flags: ::c_int) -> ::c_int; + + pub fn execvpe( + file: *const ::c_char, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; } #[link(name = "memstat")] From 9e43d14e68fdf15923f63971dc59777672c8b94c Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Sun, 26 May 2024 20:45:16 +0200 Subject: [PATCH 0112/1228] build.rs: always use freebsd12 when rustc_dep_of_std is set (backport ) (cherry picked from commit b358c8fb167945153955e96c006d203e52e715f5) --- build.rs | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/build.rs b/build.rs index e445f5b38fe67..076bbc0114f86 100644 --- a/build.rs +++ b/build.rs @@ -65,14 +65,21 @@ fn main() { // // 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 => 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"), + let which_freebsd = if libc_ci { + which_freebsd().unwrap_or(11) + } else if rustc_dep_of_std { + 12 + } else { + 11 + }; + match which_freebsd { + x if x < 10 => panic!("FreeBSD older than 10 is not supported"), + 10 => set_cfg("freebsd10"), + 11 => set_cfg("freebsd11"), + 12 => set_cfg("freebsd12"), + 13 => set_cfg("freebsd13"), + 14 => set_cfg("freebsd14"), + _ => set_cfg("freebsd15"), } match emcc_version_code() { From 217b2ab86e6a43a8665225ae6552b980f56010fe Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 17 Aug 2024 23:25:29 +0000 Subject: [PATCH 0113/1228] chore: release --- CHANGELOG.md | 17 +++++++++++++++++ Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 76c07f7f791e6..1f84a755fa556 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,23 @@ ## [Unreleased] +## [0.2.157](https://github.com/rust-lang/libc/compare/0.2.156...0.2.157) - 2024-08-17 + +### Other +- Merge pull request [#3852](https://github.com/rust-lang/libc/pull/3852) from tgross35/backport-onion +- always use freebsd12 when rustc_dep_of_std is set +- freebsd adding execvpe support from 14.1 release +- Merge pull request [#3845](https://github.com/rust-lang/libc/pull/3845) from nathaniel-bennett/rustc-wrapper-fix-0.2 +- Add RUSTC_WRAPPER support to build script +- Update CHANGELOG.md for 0.2.156 +- Merge pull request [#3835](https://github.com/rust-lang/libc/pull/3835) from tgross35/revert-bsd-getnameinfo-0.2 +- Merge pull request [#3833](https://github.com/rust-lang/libc/pull/3833) from tgross35/backport-potato +- add `pthread_equal` +- netbsd adding _lwp_park api. +- Merge pull request [#3829](https://github.com/rust-lang/libc/pull/3829) from rust-lang/tgross35-patch-2 +- Merge pull request [#3828](https://github.com/rust-lang/libc/pull/3828) from rust-lang/tgross35-patch-1 +- Update CHANGELOG.md + ## [0.2.156](https://github.com/rust-lang/libc/compare/v0.2.155...v0.2.156) - 2024-08-15 ### Added diff --git a/Cargo.toml b/Cargo.toml index 978eeac2121ff..29a9643c3142d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.156" +version = "0.2.157" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 14f824424761a..ac531c5826cc2 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -14,7 +14,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.156" +version = "0.2.157" default-features = false [build-dependencies] From 51d81e3be8d56fd4dbf2d56cf8b9ea6b3f453150 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 17 Aug 2024 19:13:08 -0500 Subject: [PATCH 0114/1228] Update CHANGELOG.md --- CHANGELOG.md | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f84a755fa556..696b86ee9599f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,20 +4,24 @@ ## [0.2.157](https://github.com/rust-lang/libc/compare/0.2.156...0.2.157) - 2024-08-17 -### Other -- Merge pull request [#3852](https://github.com/rust-lang/libc/pull/3852) from tgross35/backport-onion -- always use freebsd12 when rustc_dep_of_std is set -- freebsd adding execvpe support from 14.1 release -- Merge pull request [#3845](https://github.com/rust-lang/libc/pull/3845) from nathaniel-bennett/rustc-wrapper-fix-0.2 -- Add RUSTC_WRAPPER support to build script -- Update CHANGELOG.md for 0.2.156 -- Merge pull request [#3835](https://github.com/rust-lang/libc/pull/3835) from tgross35/revert-bsd-getnameinfo-0.2 -- Merge pull request [#3833](https://github.com/rust-lang/libc/pull/3833) from tgross35/backport-potato -- add `pthread_equal` -- netbsd adding _lwp_park api. -- Merge pull request [#3829](https://github.com/rust-lang/libc/pull/3829) from rust-lang/tgross35-patch-2 -- Merge pull request [#3828](https://github.com/rust-lang/libc/pull/3828) from rust-lang/tgross35-patch-1 -- Update CHANGELOG.md +### Added + +- Apple: add `_NSGetArgv`, `_NSGetArgc` and `_NSGetProgname` in +- Build: add `RUSTC_WRAPPER` support in +- FreeBSD: add `execvpe` support from 14.1 release in +- Fuchsia: add `SO_BINDTOIFINDEX` +- Linux: add `klogctl` in +- MacOS: add `fcntl` OFD commands in +- NetBSD: add `_lwp_park` in +- Solaris: add missing networking support in +- Unix: add `pthread_equal` in +- WASI: add `select`, `FD_SET`, `FD_ZERO`, `FD_ISSET ` in + +### Fixed +- TEEOS: fix octal notation for `O_*` constants in + +### Changed +- FreeBSD: always use freebsd12 when `rustc_dep_of_std` is set in ## [0.2.156](https://github.com/rust-lang/libc/compare/v0.2.155...v0.2.156) - 2024-08-15 From 71440ab668b710c986fd02bfe901eaa573a66444 Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Mon, 19 Aug 2024 09:19:59 +0900 Subject: [PATCH 0115/1228] [wasi] Add use core::iter::Iterator; (backport ) (cherry picked from commit df33cf9f41d3092e39947e010440101c813439f7) --- src/wasi.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/wasi.rs b/src/wasi.rs index 0f6cace8becb6..36047cbaed87d 100644 --- a/src/wasi.rs +++ b/src/wasi.rs @@ -1,4 +1,5 @@ use super::{Send, Sync}; +use core::iter::Iterator; pub use ffi::c_void; From 284bd9e94d86a0f16235fe96d6390968855b11a5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 05:21:05 +0000 Subject: [PATCH 0116/1228] chore: release --- CHANGELOG.md | 5 +++++ Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 696b86ee9599f..8bf4d27c51a8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## [Unreleased] +## [0.2.158](https://github.com/rust-lang/libc/compare/0.2.157...0.2.158) - 2024-08-19 + +### Other +- [wasi] Add use core::iter::Iterator; + ## [0.2.157](https://github.com/rust-lang/libc/compare/0.2.156...0.2.157) - 2024-08-17 ### Added diff --git a/Cargo.toml b/Cargo.toml index 29a9643c3142d..8fe2ad6badabf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.157" +version = "0.2.158" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index ac531c5826cc2..033458e8bd5de 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -14,7 +14,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.157" +version = "0.2.158" default-features = false [build-dependencies] From 0d28de58336f62ba1c21fe29125104c27bd4c19e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 19 Aug 2024 00:25:32 -0500 Subject: [PATCH 0117/1228] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8bf4d27c51a8e..a5ac00205b010 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ ## [0.2.158](https://github.com/rust-lang/libc/compare/0.2.157...0.2.158) - 2024-08-19 ### Other -- [wasi] Add use core::iter::Iterator; +- WASI: fix missing `Iterator` with `rustc-dep-of-std` in ## [0.2.157](https://github.com/rust-lang/libc/compare/0.2.156...0.2.157) - 2024-08-17 From c980c64a1c1dec7a491a25da494ae786e3237645 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Sat, 20 Jul 2024 16:56:34 +0800 Subject: [PATCH 0118/1228] Add missing constant for Android (backport ) [resolve conflicts - Trevor] (cherry picked from commit 93e531e09522134923981bab39757479809f8cf4) --- libc-test/semver/android-aarch64.txt | 2 ++ libc-test/semver/android-arm.txt | 1 + libc-test/semver/android-i686.txt | 4 +++ libc-test/semver/android-x86_64.txt | 2 ++ libc-test/semver/android.txt | 26 +++++++++++++++++ src/unix/linux_like/android/b32/arm.rs | 3 ++ src/unix/linux_like/android/b32/x86/mod.rs | 5 ++++ .../linux_like/android/b64/aarch64/mod.rs | 4 +++ src/unix/linux_like/android/b64/mod.rs | 26 ----------------- .../linux_like/android/b64/riscv64/mod.rs | 12 ++++++++ src/unix/linux_like/android/b64/x86_64/mod.rs | 4 +++ src/unix/linux_like/android/mod.rs | 28 +++++++++++++++++++ 12 files changed, 91 insertions(+), 26 deletions(-) diff --git a/libc-test/semver/android-aarch64.txt b/libc-test/semver/android-aarch64.txt index 8a38e32dd5022..d634779743526 100644 --- a/libc-test/semver/android-aarch64.txt +++ b/libc-test/semver/android-aarch64.txt @@ -1,3 +1,5 @@ +AT_SYSINFO_EHDR +AT_VECTOR_SIZE_ARCH HWCAP2_DCPODP HWCAP2_FLAGM2 HWCAP2_FRINT diff --git a/libc-test/semver/android-arm.txt b/libc-test/semver/android-arm.txt index fe1ce5bba1c5d..15578095c5c5f 100644 --- a/libc-test/semver/android-arm.txt +++ b/libc-test/semver/android-arm.txt @@ -1,3 +1,4 @@ +AT_SYSINFO_EHDR NGREG PTRACE_GETFPREGS PTRACE_GETREGS diff --git a/libc-test/semver/android-i686.txt b/libc-test/semver/android-i686.txt index eb6ecadba60b5..5ffb45ebc32c6 100644 --- a/libc-test/semver/android-i686.txt +++ b/libc-test/semver/android-i686.txt @@ -1,3 +1,7 @@ +AT_SYSINFO +AT_SYSINFO_EHDR +AT_VECTOR_SIZE_ARCH +SYS_memfd_secret __c_anonymous_uc_sigmask __c_anonymous_uc_sigmask_with_padding time64_t diff --git a/libc-test/semver/android-x86_64.txt b/libc-test/semver/android-x86_64.txt index c4bb87bccb66d..05919bb6f40e5 100644 --- a/libc-test/semver/android-x86_64.txt +++ b/libc-test/semver/android-x86_64.txt @@ -1,3 +1,5 @@ +AT_SYSINFO_EHDR +AT_VECTOR_SIZE_ARCH EFLAGS FS_BASE GS_BASE diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 28b3286bfc339..945c53e7e0651 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -136,13 +136,39 @@ ATF_NETMASK ATF_PERM ATF_PUBL ATF_USETRAILERS +AT_BASE +AT_BASE_PLATFORM +AT_CLKTCK +AT_EGID AT_EMPTY_PATH +AT_ENTRY +AT_EUID +AT_EXECFD +AT_EXECFN AT_FDCWD +AT_FLAGS +AT_GID +AT_HWCAP +AT_HWCAP2 +AT_IGNORE +AT_MINSIGSTKSZ +AT_NOTELF AT_NO_AUTOMOUNT +AT_NULL +AT_PAGESZ +AT_PHDR +AT_PHENT +AT_PHNUM +AT_PLATFORM +AT_RANDOM AT_RECURSIVE AT_REMOVEDIR +AT_RSEQ_ALIGN +AT_RSEQ_FEATURE_SIZE +AT_SECURE AT_SYMLINK_FOLLOW AT_SYMLINK_NOFOLLOW +AT_UID B0 B1000000 B110 diff --git a/src/unix/linux_like/android/b32/arm.rs b/src/unix/linux_like/android/b32/arm.rs index a062175eef746..c4c78939cba48 100644 --- a/src/unix/linux_like/android/b32/arm.rs +++ b/src/unix/linux_like/android/b32/arm.rs @@ -533,6 +533,9 @@ pub const REG_R15: ::c_int = 15; pub const NGREG: ::c_int = 18; +// From NDK's asm/auxvec.h +pub const AT_SYSINFO_EHDR: ::c_ulong = 33; + f! { // Sadly, Android before 5.0 (API level 21), the accept4 syscall is not // exposed by the libc. As work-around, we implement it through `syscall` diff --git a/src/unix/linux_like/android/b32/x86/mod.rs b/src/unix/linux_like/android/b32/x86/mod.rs index e549f3b5168e6..64ce93dd22916 100644 --- a/src/unix/linux_like/android/b32/x86/mod.rs +++ b/src/unix/linux_like/android/b32/x86/mod.rs @@ -585,6 +585,11 @@ pub const REG_EFL: ::c_int = 16; pub const REG_UESP: ::c_int = 17; pub const REG_SS: ::c_int = 18; +// From NDK's asm/auxvec.h +pub const AT_SYSINFO: ::c_ulong = 32; +pub const AT_SYSINFO_EHDR: ::c_ulong = 33; +pub const AT_VECTOR_SIZE_ARCH: ::c_ulong = 3; + // socketcall values from linux/net.h (only the needed ones, and not public) const SYS_ACCEPT4: ::c_int = 18; diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index 7b87a1d49dc3e..bd3146deb7f9f 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -417,6 +417,10 @@ pub const SYS_syscalls: ::c_long = 436; pub const PROT_BTI: ::c_int = 0x10; pub const PROT_MTE: ::c_int = 0x20; +// From NDK's asm/auxvec.h +pub const AT_SYSINFO_EHDR: ::c_ulong = 33; +pub const AT_VECTOR_SIZE_ARCH: ::c_ulong = 2; + cfg_if! { if #[cfg(libc_align)] { mod align; diff --git a/src/unix/linux_like/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs index 9639e1b4fa589..97cf137b7fc79 100644 --- a/src/unix/linux_like/android/b64/mod.rs +++ b/src/unix/linux_like/android/b64/mod.rs @@ -264,32 +264,6 @@ pub const RTLD_GLOBAL: ::c_int = 0x00100; pub const RTLD_NOW: ::c_int = 2; pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; -// From NDK's linux/auxvec.h -pub const AT_NULL: ::c_ulong = 0; -pub const AT_IGNORE: ::c_ulong = 1; -pub const AT_EXECFD: ::c_ulong = 2; -pub const AT_PHDR: ::c_ulong = 3; -pub const AT_PHENT: ::c_ulong = 4; -pub const AT_PHNUM: ::c_ulong = 5; -pub const AT_PAGESZ: ::c_ulong = 6; -pub const AT_BASE: ::c_ulong = 7; -pub const AT_FLAGS: ::c_ulong = 8; -pub const AT_ENTRY: ::c_ulong = 9; -pub const AT_NOTELF: ::c_ulong = 10; -pub const AT_UID: ::c_ulong = 11; -pub const AT_EUID: ::c_ulong = 12; -pub const AT_GID: ::c_ulong = 13; -pub const AT_EGID: ::c_ulong = 14; -pub const AT_PLATFORM: ::c_ulong = 15; -pub const AT_HWCAP: ::c_ulong = 16; -pub const AT_CLKTCK: ::c_ulong = 17; -pub const AT_SECURE: ::c_ulong = 23; -pub const AT_BASE_PLATFORM: ::c_ulong = 24; -pub const AT_RANDOM: ::c_ulong = 25; -pub const AT_HWCAP2: ::c_ulong = 26; -pub const AT_EXECFN: ::c_ulong = 31; -pub const AT_MINSIGSTKSZ: ::c_ulong = 51; - pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { value: 0, __reserved: [0; 36], diff --git a/src/unix/linux_like/android/b64/riscv64/mod.rs b/src/unix/linux_like/android/b64/riscv64/mod.rs index 9d414dc15fb39..209f050f25ce5 100644 --- a/src/unix/linux_like/android/b64/riscv64/mod.rs +++ b/src/unix/linux_like/android/b64/riscv64/mod.rs @@ -345,6 +345,18 @@ pub const SYS_fsmount: ::c_long = 432; pub const SYS_fspick: ::c_long = 433; pub const SYS_syscalls: ::c_long = 436; +// From NDK's asm/auxvec.h +pub const AT_SYSINFO_EHDR: ::c_ulong = 33; +pub const AT_L1I_CACHESIZE: ::c_ulong = 40; +pub const AT_L1I_CACHEGEOMETRY: ::c_ulong = 41; +pub const AT_L1D_CACHESIZE: ::c_ulong = 42; +pub const AT_L1D_CACHEGEOMETRY: ::c_ulong = 43; +pub const AT_L2_CACHESIZE: ::c_ulong = 44; +pub const AT_L2_CACHEGEOMETRY: ::c_ulong = 45; +pub const AT_L3_CACHESIZE: ::c_ulong = 46; +pub const AT_L3_CACHEGEOMETRY: ::c_ulong = 47; +pub const AT_VECTOR_SIZE_ARCH: ::c_ulong = 9; + cfg_if! { if #[cfg(libc_align)] { mod align; diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index be6b5011c21cc..a7363304c65ce 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -794,6 +794,10 @@ pub const REG_TRAPNO: ::c_int = 20; pub const REG_OLDMASK: ::c_int = 21; pub const REG_CR2: ::c_int = 22; +// From NDK's asm/auxvec.h +pub const AT_SYSINFO_EHDR: ::c_ulong = 33; +pub const AT_VECTOR_SIZE_ARCH: ::c_ulong = 3; + cfg_if! { if #[cfg(libc_align)] { mod align; diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index a9cc5943bb469..2e2d25903e539 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3535,6 +3535,34 @@ pub const KLOG_CONSOLE_LEVEL: ::c_int = 8; pub const KLOG_SIZE_UNREAD: ::c_int = 9; pub const KLOG_SIZE_BUFFER: ::c_int = 10; +// From NDK's linux/auxvec.h +pub const AT_NULL: ::c_ulong = 0; +pub const AT_IGNORE: ::c_ulong = 1; +pub const AT_EXECFD: ::c_ulong = 2; +pub const AT_PHDR: ::c_ulong = 3; +pub const AT_PHENT: ::c_ulong = 4; +pub const AT_PHNUM: ::c_ulong = 5; +pub const AT_PAGESZ: ::c_ulong = 6; +pub const AT_BASE: ::c_ulong = 7; +pub const AT_FLAGS: ::c_ulong = 8; +pub const AT_ENTRY: ::c_ulong = 9; +pub const AT_NOTELF: ::c_ulong = 10; +pub const AT_UID: ::c_ulong = 11; +pub const AT_EUID: ::c_ulong = 12; +pub const AT_GID: ::c_ulong = 13; +pub const AT_EGID: ::c_ulong = 14; +pub const AT_PLATFORM: ::c_ulong = 15; +pub const AT_HWCAP: ::c_ulong = 16; +pub const AT_CLKTCK: ::c_ulong = 17; +pub const AT_SECURE: ::c_ulong = 23; +pub const AT_BASE_PLATFORM: ::c_ulong = 24; +pub const AT_RANDOM: ::c_ulong = 25; +pub const AT_HWCAP2: ::c_ulong = 26; +pub const AT_RSEQ_FEATURE_SIZE: ::c_ulong = 27; +pub const AT_RSEQ_ALIGN: ::c_ulong = 28; +pub const AT_EXECFN: ::c_ulong = 31; +pub const AT_MINSIGSTKSZ: ::c_ulong = 51; + // Most `*_SUPER_MAGIC` constants are defined at the `linux_like` level; the // following are only available on newer Linux versions than the versions // currently used in CI in some configurations, so we define them here. From 6be814de90eae29ef2f2c4ff8bea857d910c5ad4 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Fri, 16 Aug 2024 22:21:51 +0800 Subject: [PATCH 0119/1228] Add android-riscv64 API check (backport ) (cherry picked from commit d22cc1952341280989a7eaf7ec103f08bab36c45) --- libc-test/semver/android-riscv64.txt | 90 ++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 libc-test/semver/android-riscv64.txt diff --git a/libc-test/semver/android-riscv64.txt b/libc-test/semver/android-riscv64.txt new file mode 100644 index 0000000000000..723278a289464 --- /dev/null +++ b/libc-test/semver/android-riscv64.txt @@ -0,0 +1,90 @@ +AT_SYSINFO_EHDR +AT_VECTOR_SIZE_ARCH +HWCAP2_AFP +HWCAP2_BF16 +HWCAP2_BTI +HWCAP2_DCPODP +HWCAP2_DGH +HWCAP2_EBF16 +HWCAP2_ECV +HWCAP2_FLAGM2 +HWCAP2_FRINT +HWCAP2_I8MM +HWCAP2_MTE +HWCAP2_MTE3 +HWCAP2_RNG +HWCAP2_RPRES +HWCAP2_SME +HWCAP2_SME_B16F32 +HWCAP2_SME_F16F32 +HWCAP2_SME_F32F32 +HWCAP2_SME_F64F64 +HWCAP2_SME_FA64 +HWCAP2_SME_I16I64 +HWCAP2_SME_I8I32 +HWCAP2_SVE2 +HWCAP2_SVEAES +HWCAP2_SVEBF16 +HWCAP2_SVEBITPERM +HWCAP2_SVEF32MM +HWCAP2_SVEF64MM +HWCAP2_SVEI8MM +HWCAP2_SVEPMULL +HWCAP2_SVESHA3 +HWCAP2_SVESM4 +HWCAP2_SVE_EBF16 +HWCAP2_WFXT +HWCAP_AES +HWCAP_ASIMD +HWCAP_ASIMDDP +HWCAP_ASIMDFHM +HWCAP_ASIMDHP +HWCAP_ASIMDRDM +HWCAP_ATOMICS +HWCAP_CPUID +HWCAP_CRC32 +HWCAP_DCPOP +HWCAP_DIT +HWCAP_EVTSTRM +HWCAP_FCMA +HWCAP_FLAGM +HWCAP_FP +HWCAP_FPHP +HWCAP_ILRCPC +HWCAP_JSCVT +HWCAP_LRCPC +HWCAP_PACA +HWCAP_PACG +HWCAP_PMULL +HWCAP_SB +HWCAP_SHA1 +HWCAP_SHA2 +HWCAP_SHA3 +HWCAP_SHA512 +HWCAP_SM3 +HWCAP_SM4 +HWCAP_SSBS +HWCAP_SVE +HWCAP_USCAT +PROT_BTI +PROT_MTE +SYS_accept +SYS_arch_specific_syscall +SYS_fcntl +SYS_getrlimit +SYS_memfd_secret +SYS_migrate_pages +SYS_msgctl +SYS_msgget +SYS_msgrcv +SYS_msgsnd +SYS_semctl +SYS_semget +SYS_semop +SYS_semtimedop +SYS_shmat +SYS_shmctl +SYS_shmdt +SYS_shmget +SYS_sync_file_range +SYS_syscalls From 1c77f80a94ddfa72b539102be95f4543d1306a19 Mon Sep 17 00:00:00 2001 From: Askar Safin Date: Sat, 11 May 2024 01:51:07 +0300 Subject: [PATCH 0120/1228] Add IN6ADDR_ANY_INIT, IN6ADDR_LOOPBACK_INIT, in6addr_any, in6addr_loopback (backport ) [ move constants to the align module to support old rustc - Trevor ] (cherry picked from commit 8db9bc7059af69dcde2f6c99892df11a06bfc0e8) --- libc-test/semver/unix.txt | 4 ++++ src/unix/align.rs | 8 ++++++++ src/unix/mod.rs | 5 +++++ src/unix/no_align.rs | 10 ++++++++++ 4 files changed, 27 insertions(+) diff --git a/libc-test/semver/unix.txt b/libc-test/semver/unix.txt index 03248dfec58c7..bb8e319def299 100644 --- a/libc-test/semver/unix.txt +++ b/libc-test/semver/unix.txt @@ -152,6 +152,8 @@ IF_NAMESIZE IGNBRK IGNCR IGNPAR +IN6ADDR_ANY_INIT +IN6ADDR_LOOPBACK_INIT INADDR_ANY INADDR_BROADCAST INADDR_LOOPBACK @@ -586,6 +588,8 @@ hstrerror if_indextoname if_nametoindex in6_addr +in6addr_any +in6addr_loopback in_addr in_addr_t in_port_t diff --git a/src/unix/align.rs b/src/unix/align.rs index 4fdba9a6aba69..2e7c954ccff7a 100644 --- a/src/unix/align.rs +++ b/src/unix/align.rs @@ -4,3 +4,11 @@ s! { pub s6_addr: [u8; 16], } } + +pub const IN6ADDR_LOOPBACK_INIT: in6_addr = in6_addr { + s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], +}; + +pub const IN6ADDR_ANY_INIT: in6_addr = in6_addr { + s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +}; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 8b3d988ae38ae..6bab825b0449b 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -313,6 +313,11 @@ pub const ATF_PERM: ::c_int = 0x04; pub const ATF_PUBL: ::c_int = 0x08; pub const ATF_USETRAILERS: ::c_int = 0x10; +extern "C" { + pub static in6addr_loopback: in6_addr; + pub static in6addr_any: in6_addr; +} + cfg_if! { if #[cfg(any(target_os = "l4re", target_os = "espidf"))] { // required libraries for L4Re and the ESP-IDF framework are linked externally, ATM diff --git a/src/unix/no_align.rs b/src/unix/no_align.rs index f6b9f4c12d4ba..b435d72aa7db0 100644 --- a/src/unix/no_align.rs +++ b/src/unix/no_align.rs @@ -4,3 +4,13 @@ s! { __align: [u32; 0], } } + +pub const IN6ADDR_LOOPBACK_INIT: in6_addr = in6_addr { + s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], + __align: [0u32; 0], +}; + +pub const IN6ADDR_ANY_INIT: in6_addr = in6_addr { + s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + __align: [0u32; 0], +}; From 33ff229a6760cb529d479684912e7be240e9d0e1 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Fri, 26 Jul 2024 11:49:17 +0200 Subject: [PATCH 0121/1228] hurd: Add missing struct __timeval for 64bit support This is the same as linux_like/linux/gnu's __timeval for ut_tv for 64bit architectures. (backport ) (cherry picked from commit c8f2b3c9599affd8d571c244d6f61304a3fded0c) --- src/unix/hurd/mod.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 71f1ac8d98c22..ad422fe718349 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -450,6 +450,11 @@ s! { pub tv_nsec: __syscall_slong_t, } + pub struct __timeval { + pub tv_sec: i32, + pub tv_usec: i32, + } + pub struct __locale_data { pub _address: u8, } From 244f752c2bbff0fd7417cfc028191903bab55da3 Mon Sep 17 00:00:00 2001 From: Nathaniel Date: Fri, 16 Aug 2024 17:33:51 -0400 Subject: [PATCH 0122/1228] Add missing `NFT_CT_*` constants (backport ) (cherry picked from commit cd63e38273565554d6d4628e13c30851bdc9b7ad) --- libc-test/semver/android.txt | 8 ++++++++ libc-test/semver/linux-gnu.txt | 7 +++++++ src/unix/linux_like/android/mod.rs | 8 ++++++++ src/unix/linux_like/linux/mod.rs | 7 +++++++ 4 files changed, 30 insertions(+) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 945c53e7e0651..ddd651da0d6df 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -1503,11 +1503,16 @@ NFT_CMP_LT NFT_CMP_LTE NFT_CMP_NEQ NFT_CONTINUE +NFT_CT_AVGPKT NFT_CT_BYTES NFT_CT_DIRECTION NFT_CT_DST +NFT_CT_DST_IP +NFT_CT_DST_IP6 +NFT_CT_EVENTMASK NFT_CT_EXPIRATION NFT_CT_HELPER +NFT_CT_ID NFT_CT_L3PROTOCOL NFT_CT_LABELS NFT_CT_MARK @@ -1517,8 +1522,11 @@ NFT_CT_PROTO_DST NFT_CT_PROTO_SRC NFT_CT_SECMARK NFT_CT_SRC +NFT_CT_SRC_IP +NFT_CT_SRC_IP6 NFT_CT_STATE NFT_CT_STATUS +NFT_CT_ZONE NFT_DATA_RESERVED_MASK NFT_DATA_VALUE NFT_DATA_VALUE_MAXLEN diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 6fa88e6c77927..60ba5f62673f7 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -191,9 +191,13 @@ NFT_CMP_LT NFT_CMP_LTE NFT_CMP_NEQ NFT_CONTINUE +NFT_CT_AVGPKT NFT_CT_BYTES NFT_CT_DIRECTION NFT_CT_DST +NFT_CT_DST_IP +NFT_CT_DST_IP6 +NFT_CT_EVENTMASK NFT_CT_EXPIRATION NFT_CT_HELPER NFT_CT_L3PROTOCOL @@ -205,8 +209,11 @@ NFT_CT_PROTO_DST NFT_CT_PROTO_SRC NFT_CT_SECMARK NFT_CT_SRC +NFT_CT_SRC_IP +NFT_CT_SRC_IP6 NFT_CT_STATE NFT_CT_STATUS +NFT_CT_ZONE NFT_DATA_RESERVED_MASK NFT_DATA_VALUE NFT_DATA_VALUE_MAXLEN diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 2e2d25903e539..a8e935967c132 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -2572,6 +2572,14 @@ pub const NFT_CT_PROTO_DST: ::c_int = 12; pub const NFT_CT_LABELS: ::c_int = 13; pub const NFT_CT_PKTS: ::c_int = 14; pub const NFT_CT_BYTES: ::c_int = 15; +pub const NFT_CT_AVGPKT: ::c_int = 16; +pub const NFT_CT_ZONE: ::c_int = 17; +pub const NFT_CT_EVENTMASK: ::c_int = 18; +pub const NFT_CT_SRC_IP: ::c_int = 19; +pub const NFT_CT_DST_IP: ::c_int = 20; +pub const NFT_CT_SRC_IP6: ::c_int = 21; +pub const NFT_CT_DST_IP6: ::c_int = 22; +pub const NFT_CT_ID: ::c_int = 23; pub const NFT_LIMIT_PKTS: ::c_int = 0; pub const NFT_LIMIT_PKT_BYTES: ::c_int = 1; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 779faa81ff16e..5d2505a1b2f26 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -3980,6 +3980,13 @@ pub const NFT_CT_PROTO_DST: ::c_int = 12; pub const NFT_CT_LABELS: ::c_int = 13; pub const NFT_CT_PKTS: ::c_int = 14; pub const NFT_CT_BYTES: ::c_int = 15; +pub const NFT_CT_AVGPKT: ::c_int = 16; +pub const NFT_CT_ZONE: ::c_int = 17; +pub const NFT_CT_EVENTMASK: ::c_int = 18; +pub const NFT_CT_SRC_IP: ::c_int = 19; +pub const NFT_CT_DST_IP: ::c_int = 20; +pub const NFT_CT_SRC_IP6: ::c_int = 21; +pub const NFT_CT_DST_IP6: ::c_int = 22; pub const NFT_LIMIT_PKTS: ::c_int = 0; pub const NFT_LIMIT_PKT_BYTES: ::c_int = 1; From f90afeff6329792c2578ba174e50e876c925598e Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 17 Aug 2024 20:43:41 +0100 Subject: [PATCH 0123/1228] adding mq_notify glibc wrapper for SYS_mq_notify syscall. (backport ) (cherry picked from commit 99fb76f8e327a028f087fec55a787e8361a349e0) --- libc-test/semver/linux-gnu.txt | 1 + src/unix/linux_like/linux/gnu/mod.rs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 60ba5f62673f7..821443c6c385d 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -657,6 +657,7 @@ malloc_info malloc_trim malloc_usable_size mallopt +mq_notify nl_mmap_hdr nl_mmap_req nl_pktinfo diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index d6e5eb69c7fbb..f206693d4af71 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1541,6 +1541,8 @@ extern "C" { // Added in `glibc` 2.34 pub fn close_range(first: ::c_uint, last: ::c_uint, flags: ::c_int) -> ::c_int; + + pub fn mq_notify(mqdes: ::mqd_t, sevp: *const ::sigevent) -> ::c_int; } cfg_if! { From ea08dd5e5339015ef9f4151a96d914df92e32118 Mon Sep 17 00:00:00 2001 From: Stefan Lankes Date: Sat, 13 Jul 2024 08:46:38 +0200 Subject: [PATCH 0124/1228] add missing error numbers for HermitOS (backport ) (cherry picked from commit d448050fde7b5ca687615af201460eff0f77fc0d) --- src/hermit.rs | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) diff --git a/src/hermit.rs b/src/hermit.rs index 145d1241b190b..77df54ae12d8d 100644 --- a/src/hermit.rs +++ b/src/hermit.rs @@ -267,6 +267,140 @@ pub const STDERR_FILENO: c_int = 2; pub const TCP_NODELAY: i32 = 1; +pub const EPERM: i32 = 1; +pub const ENOENT: i32 = 2; +pub const ESRCH: i32 = 3; +pub const EINTR: i32 = 4; +pub const EIO: i32 = 5; +pub const ENXIO: i32 = 6; +pub const E2BIG: i32 = 7; +pub const ENOEXEC: i32 = 8; +pub const EBADF: i32 = 9; +pub const ECHILD: i32 = 10; +pub const EAGAIN: i32 = 11; +pub const ENOMEM: i32 = 12; +pub const EACCES: i32 = 13; +pub const EFAULT: i32 = 14; +pub const ENOTBLK: i32 = 15; +pub const EBUSY: i32 = 16; +pub const EEXIST: i32 = 17; +pub const EXDEV: i32 = 18; +pub const ENODEV: i32 = 19; +pub const ENOTDIR: i32 = 20; +pub const EISDIR: i32 = 21; +pub const EINVAL: i32 = 22; +pub const ENFILE: i32 = 23; +pub const EMFILE: i32 = 24; +pub const ENOTTY: i32 = 25; +pub const ETXTBSY: i32 = 26; +pub const EFBIG: i32 = 27; +pub const ENOSPC: i32 = 28; +pub const ESPIPE: i32 = 29; +pub const EROFS: i32 = 30; +pub const EMLINK: i32 = 31; +pub const EPIPE: i32 = 32; +pub const EDOM: i32 = 33; +pub const ERANGE: i32 = 34; +pub const EDEADLK: i32 = 35; +pub const ENAMETOOLONG: i32 = 36; +pub const ENOLCK: i32 = 37; +pub const ENOSYS: i32 = 38; +pub const ENOTEMPTY: i32 = 39; +pub const ELOOP: i32 = 40; +pub const EWOULDBLOCK: i32 = EAGAIN; +pub const ENOMSG: i32 = 42; +pub const EIDRM: i32 = 43; +pub const ECHRNG: i32 = 44; +pub const EL2NSYNC: i32 = 45; +pub const EL3HLT: i32 = 46; +pub const EL3RST: i32 = 47; +pub const ELNRNG: i32 = 48; +pub const EUNATCH: i32 = 49; +pub const ENOCSI: i32 = 50; +pub const EL2HLT: i32 = 51; +pub const EBADE: i32 = 52; +pub const EBADR: i32 = 53; +pub const EXFULL: i32 = 54; +pub const ENOANO: i32 = 55; +pub const EBADRQC: i32 = 56; +pub const EBADSLT: i32 = 57; +pub const EDEADLOCK: i32 = EDEADLK; +pub const EBFONT: i32 = 59; +pub const ENOSTR: i32 = 60; +pub const ENODATA: i32 = 61; +pub const ETIME: i32 = 62; +pub const ENOSR: i32 = 63; +pub const ENONET: i32 = 64; +pub const ENOPKG: i32 = 65; +pub const EREMOTE: i32 = 66; +pub const ENOLINK: i32 = 67; +pub const EADV: i32 = 68; +pub const ESRMNT: i32 = 69; +pub const ECOMM: i32 = 70; +pub const EPROTO: i32 = 71; +pub const EMULTIHOP: i32 = 72; +pub const EDOTDOT: i32 = 73; +pub const EBADMSG: i32 = 74; +pub const EOVERFLOW: i32 = 75; +pub const ENOTUNIQ: i32 = 76; +pub const EBADFD: i32 = 77; +pub const EREMCHG: i32 = 78; +pub const ELIBACC: i32 = 79; +pub const ELIBBAD: i32 = 80; +pub const ELIBSCN: i32 = 81; +pub const ELIBMAX: i32 = 82; +pub const ELIBEXEC: i32 = 83; +pub const EILSEQ: i32 = 84; +pub const ERESTART: i32 = 85; +pub const ESTRPIPE: i32 = 86; +pub const EUSERS: i32 = 87; +pub const ENOTSOCK: i32 = 88; +pub const EDESTADDRREQ: i32 = 89; +pub const EMSGSIZE: i32 = 90; +pub const EPROTOTYPE: i32 = 91; +pub const ENOPROTOOPT: i32 = 92; +pub const EPROTONOSUPPORT: i32 = 93; +pub const ESOCKTNOSUPPORT: i32 = 94; +pub const EOPNOTSUPP: i32 = 95; +pub const EPFNOSUPPORT: i32 = 96; +pub const EAFNOSUPPORT: i32 = 97; +pub const EADDRINUSE: i32 = 98; +pub const EADDRNOTAVAIL: i32 = 99; +pub const ENETDOWN: i32 = 100; +pub const ENETUNREACH: i32 = 101; +pub const ENETRESET: i32 = 102; +pub const ECONNABORTED: i32 = 103; +pub const ECONNRESET: i32 = 104; +pub const ENOBUFS: i32 = 105; +pub const EISCONN: i32 = 106; +pub const ENOTCONN: i32 = 107; +pub const ESHUTDOWN: i32 = 108; +pub const ETOOMANYREFS: i32 = 109; +pub const ETIMEDOUT: i32 = 110; +pub const ECONNREFUSED: i32 = 111; +pub const EHOSTDOWN: i32 = 112; +pub const EHOSTUNREACH: i32 = 113; +pub const EALREADY: i32 = 114; +pub const EINPROGRESS: i32 = 115; +pub const ESTALE: i32 = 116; +pub const EUCLEAN: i32 = 117; +pub const ENOTNAM: i32 = 118; +pub const ENAVAIL: i32 = 119; +pub const EISNAM: i32 = 120; +pub const EREMOTEIO: i32 = 121; +pub const EDQUOT: i32 = 122; +pub const ENOMEDIUM: i32 = 123; +pub const EMEDIUMTYPE: i32 = 124; +pub const ECANCELED: i32 = 125; +pub const ENOKEY: i32 = 126; +pub const EKEYEXPIRED: i32 = 127; +pub const EKEYREVOKED: i32 = 128; +pub const EKEYREJECTED: i32 = 129; +pub const EOWNERDEAD: i32 = 130; +pub const ENOTRECOVERABLE: i32 = 131; +pub const ERFKILL: i32 = 132; +pub const EHWPOISON: i32 = 133; + extern "C" { #[link_name = "sys_alloc"] pub fn alloc(size: usize, align: usize) -> *mut u8; From d5403b0bfe762cfd3e9fe2750dc263b55e1f5ee1 Mon Sep 17 00:00:00 2001 From: Stefan Lankes Date: Tue, 20 Aug 2024 22:45:58 +0200 Subject: [PATCH 0125/1228] add missing symbols for HermitOS (backport ) (cherry picked from commit 982e041afb82254785fd2c3cca57792d5b47d97e) --- libc-test/semver/hermit.txt | 302 ++++++++++++++++++++++++++++++++++++ 1 file changed, 302 insertions(+) create mode 100644 libc-test/semver/hermit.txt diff --git a/libc-test/semver/hermit.txt b/libc-test/semver/hermit.txt new file mode 100644 index 0000000000000..ef3f1894fbb89 --- /dev/null +++ b/libc-test/semver/hermit.txt @@ -0,0 +1,302 @@ +AF_INET +AF_INET6 +CLOCK_REALTIME +CLOCK_MONOTONIC +DT_UNKNOWN +DT_FIFO +DT_CHR +DT_DIR +DT_BLK +DT_REG +DT_LNK +DT_SOCK +DT_WHT +EAI_AGAIN +EAI_BADFLAGS +EAI_FAIL +EAI_FAMILY +EAI_MEMORY +EAI_NODATA +EAI_NONAME +EAI_SERVICE +EAI_SOCKTYPE +EAI_SYSTEM +EAI_OVERFLOW +EFD_SEMAPHORE +EFD_NONBLOCK +EFD_CLOEXEC +F_DUPFD +F_GETFD +F_SETFD +F_GETFL +F_SETFL +FD_CLOEXEC +FIONBIO +FUTEX_RELATIVE_TIMEOUT +IP_TOS +IP_TTL +IP_ADD_MEMBERSHIP +IP_DROP_MEMBERSHIP +IP_MULTICAST_TTL +IP_MULTICAST_LOOP +IPPROTO_IP +IPPROTO_TCP +IPPROTO_UDP +IPPROTO_IPV6 +IPV6_ADD_MEMBERSHIP +IPV6_DROP_MEMBERSHIP +IPV6_MULTICAST_LOOP +IPV6_V6ONLY +MSG_PEEK +O_RDONLY +O_WRONLY +O_RDWR +O_CREAT +O_EXCL +O_TRUNC +O_APPEND +O_NONBLOCK +O_DIRECTORY +POLLIN +POLLPRI +POLLOUT +POLLERR +POLLHUP +POLLNVAL +POLLRDNORM +POLLRDBAND +POLLWRNORM +POLLWRBAND +POLLRDHUP +S_IRWXU +S_IRUSR +S_IWUSR +S_IXUSR +S_IRWXG +S_IRGRP +S_IWGRP +S_IXGRP +S_IRWXO +S_IROTH +S_IWOTH +S_IXOTH +S_IFMT +S_IFSOCK +S_IFLNK +S_IFREG +S_IFBLK +S_IFDIR +S_IFCHR +S_IFIFO +SHUT_RD +SHUT_WR +SHUT_RDWR +SO_REUSEADDR +SO_KEEPALIVE +SO_BROADCAST +SO_LINGER +SO_SNDBUF +SO_RCVBUF +SO_SNDTIMEO +SO_RCVTIMEO +SO_ERROR +SOCK_STREAM +SOCK_DGRAM +SOCK_NONBLOCK +SOCK_CLOEXEC +SOL_SOCKET +STDIN_FILENO +STDOUT_FILENO +STDERR_FILENO +TCP_NODELAY +EPERM +ENOENT +ESRCH +EINTR +EIO +ENXIO +E2BIG +ENOEXEC +EBADF +ECHILD +EAGAIN +ENOMEM +EACCES +EFAULT +ENOTBLK +EBUSY +EEXIST +EXDEV +ENODEV +ENOTDIR +EISDIR +EINVAL +ENFILE +EMFILE +ENOTTY +ETXTBSY +EFBIG +ENOSPC +ESPIPE +EROFS +EMLINK +EPIPE +EDOM +ERANGE +EDEADLK +ENAMETOOLONG +ENOLCK +ENOSYS +ENOTEMPTY +ELOOP +EWOULDBLOCK +ENOMSG +EIDRM +ECHRNG +EL2NSYNC +EL3HLT +EL3RST +ELNRNG +EUNATCH +ENOCSI +EL2HLT +EBADE +EBADR +EXFULL +ENOANO +EBADRQC +EBADSLT +EDEADLOCK +EBFONT +ENOSTR +ENODATA +ETIME +ENOSR +ENONET +ENOPKG +EREMOTE +ENOLINK +EADV +ESRMNT +ECOMM +EPROTO +EMULTIHOP +EDOTDOT +EBADMSG +EOVERFLOW +ENOTUNIQ +EBADFD +EREMCHG +ELIBACC +ELIBBAD +ELIBSCN +ELIBMAX +ELIBEXEC +EILSEQ +ERESTART +ESTRPIPE +EUSERS +ENOTSOCK +EDESTADDRREQ +EMSGSIZE +EPROTOTYPE +ENOPROTOOPT +EPROTONOSUPPORT +ESOCKTNOSUPPORT +EOPNOTSUPP +EPFNOSUPPORT +EAFNOSUPPORT +EADDRINUSE +EADDRNOTAVAIL +ENETDOWN +ENETUNREACH +ENETRESET +ECONNABORTED +ECONNRESET +ENOBUFS +EISCONN +ENOTCONN +ESHUTDOWN +ETOOMANYREFS +ETIMEDOUT +ECONNREFUSED +EHOSTDOWN +EHOSTUNREACH +EALREADY +EINPROGRESS +ESTALE +EUCLEAN +ENOTNAM +ENAVAIL +EISNAM +EREMOTEIO +EDQUOT +ENOMEDIUM +EMEDIUMTYPE +ECANCELED +ENOKEY +EKEYEXPIRED +EKEYREVOKED +EKEYREJECTED +EOWNERDEAD +ENOTRECOVERABLE +ERFKIL +EHWPOISON +addrinfo +dirent64 +in6_addr +in_addr +iovec +pollfd +sockaddr +sockaddr_in +sockaddr_in6 +sockaddr_storage +stat +timespec +sys_abort +sys_accept +sys_alloc +sys_alloc_zeroed +sys_available_parallelism +sys_bind +sys_clock_gettime +sys_close +sys_connect +sys_dealloc +sys_dup +sys_errno +sys_eventfd +sys_exit +sys_fcntl +sys_freeaddrinfo +sys_fstat +sys_futex_wait +sys_futex_wake +sys_getaddrinfo +sys_getdents64 +sys_getpeername +sys_getsockname +sys_getsockopt +sys_ioctl +sys_listen +sys_lstat +sys_mkdir +sys_nanosleep +sys_open +sys_poll +sys_read +sys_readv +sys_realloc +sys_recv +sys_recvfrom +sys_rmdir +sys_send +sys_sendto +sys_setsockopt +sys_shutdown +sys_socket +sys_stat +sys_unlink +sys_write +sys_writev From 63973924e21f0caa309c8a77869c4e4d47cd70e0 Mon Sep 17 00:00:00 2001 From: B I Mohammed Abbas Date: Wed, 21 Aug 2024 12:39:37 +0530 Subject: [PATCH 0126/1228] VxWorks: Add functions from vxCpuLib.h and taskLib.h (backport ) (cherry picked from commit 7cf499d51afaa639644e9ed2f0a64ef5c54649fc) --- src/vxworks/mod.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 4f0274241394e..8a6dabb39fd95 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -1812,6 +1812,10 @@ extern "C" { pub fn taskIdSelf() -> ::TASK_ID; pub fn taskDelay(ticks: ::_Vx_ticks_t) -> ::c_int; + // taskLib.h + pub fn taskNameSet(task_id: ::TASK_ID, task_name: *mut ::c_char) -> ::c_int; + pub fn taskNameGet(task_id: ::TASK_ID, buf_name: *mut ::c_char, bufsize: ::size_t) -> ::c_int; + // rtpLibCommon.h pub fn rtpInfoGet(rtpId: ::RTP_ID, rtpStruct: *mut ::RTP_DESC) -> ::c_int; pub fn rtpSpawn( @@ -1871,6 +1875,10 @@ extern "C" { ) -> ::c_int; pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; + + // vxCpuLib.h + fn vxCpuEnabledGet() -> ::cpuset_t; // Get set of running CPU's in the system + fn vxCpuConfiguredGet() -> ::cpuset_t; // Get set of Configured CPU's in the system } //Dummy functions, these don't really exist in VxWorks. From 4c0eaac7629d6d88823315ef3406f7ac51cc97d4 Mon Sep 17 00:00:00 2001 From: B I Mohammed Abbas Date: Mon, 8 Jul 2024 17:21:43 +0530 Subject: [PATCH 0127/1228] Add missing constant S_ISVTX for vxworks (backport ) [ Change to `c_int` rather than `mode_t`. We should make everything consistent at some point, just not a partial change here. - Trevor ] (cherry picked from commit e9b1b9c78c0230174b1885971e08ebf2cb9f020d) --- src/vxworks/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 8a6dabb39fd95..314283410aed6 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -782,6 +782,7 @@ pub const S_IFSOCK: ::c_int = 0xc000; pub const S_ISUID: ::c_int = 0x0800; pub const S_ISGID: ::c_int = 0x0400; pub const S_ISTXT: ::c_int = 0x0200; +pub const S_ISVTX: ::c_int = 0o1000; pub const S_IRUSR: ::c_int = 0x0100; pub const S_IWUSR: ::c_int = 0x0080; pub const S_IXUSR: ::c_int = 0x0040; From 9b88c55790cba155204f3ecaec2be3072287d3fa Mon Sep 17 00:00:00 2001 From: David Carlier Date: Thu, 15 Aug 2024 22:28:30 +0100 Subject: [PATCH 0128/1228] OpenBSD: add sendmmsg and recvmmsg support. (backport ) (cherry picked from commit c36918572d2b91382753ec8b9516a5e8bebdeff2) --- libc-test/semver/openbsd.txt | 3 +++ src/unix/bsd/netbsdlike/mod.rs | 19 +++++++++++++++++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 19 ------------------- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/libc-test/semver/openbsd.txt b/libc-test/semver/openbsd.txt index 6f07fec590ff5..197df09e1c2c6 100644 --- a/libc-test/semver/openbsd.txt +++ b/libc-test/semver/openbsd.txt @@ -1137,6 +1137,7 @@ mknodat mkostemp mkostemps mkstemps +mmsghdr mount_info mrand48 msdosfs_args @@ -1216,6 +1217,7 @@ readlinkat reallocarray reboot recvmsg +recvmmsg regcomp regerror regex_t @@ -1237,6 +1239,7 @@ sem_init sem_open sem_timedwait sem_unlink +sendmmsg sendmsg setdomainname setgrent diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index e92cf65940141..dcd3582fd7bf8 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -92,6 +92,11 @@ s! { pub piod_addr: *mut ::c_void, pub piod_len: ::size_t, } + + pub struct mmsghdr { + pub msg_hdr: ::msghdr, + pub msg_len: ::c_uint, + } } pub const D_T_FMT: ::nl_item = 0; @@ -848,6 +853,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 getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; + + pub fn sendmmsg( + sockfd: ::c_int, + mmsg: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + ) -> ::c_int; + pub fn recvmmsg( + sockfd: ::c_int, + mmsg: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + timeout: *mut ::timespec, + ) -> ::c_int; } cfg_if! { diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 0ad2473138080..0517a47b69c30 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -401,11 +401,6 @@ s! { pub sdl_data: [::c_char; 12], } - pub struct mmsghdr { - pub msg_hdr: ::msghdr, - pub msg_len: ::c_uint, - } - pub struct __exit_status { pub e_termination: u16, pub e_exit: u16, @@ -2781,20 +2776,6 @@ extern "C" { pub fn kqueue1(flags: ::c_int) -> ::c_int; - pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - ) -> ::c_int; - pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - timeout: *mut ::timespec, - ) -> ::c_int; - pub fn _lwp_self() -> lwpid_t; pub fn memmem( haystack: *const ::c_void, From adafc287d63978c484aeb0a21962200cf71b4d85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20=C3=81vila=20de=20Esp=C3=ADndola?= Date: Fri, 24 May 2024 19:56:35 +0000 Subject: [PATCH 0129/1228] Unify the ioctl declarations on linux This uses the existing Ioctl type to reduce the duplication. (backport ) (cherry picked from commit 01a36171f2aa7e523dca7c632293f2c95f892eeb) --- src/unix/linux_like/linux/gnu/mod.rs | 1 - src/unix/linux_like/linux/mod.rs | 2 ++ src/unix/linux_like/linux/musl/mod.rs | 1 - src/unix/linux_like/linux/uclibc/mod.rs | 1 - 4 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index f206693d4af71..3c22d845f1008 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1405,7 +1405,6 @@ extern "C" { pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; - pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; pub fn backtrace(buf: *mut *mut ::c_void, sz: ::c_int) -> ::c_int; pub fn glob64( pattern: *const ::c_char, diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 5d2505a1b2f26..1973b3f574efa 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -5635,6 +5635,8 @@ extern "C" { ) -> ::ssize_t; pub fn klogctl(syslog_type: ::c_int, bufp: *mut ::c_char, len: ::c_int) -> ::c_int; + + pub fn ioctl(fd: ::c_int, request: ::Ioctl, ...) -> ::c_int; } // LFS64 extensions diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 699c8181f8466..a4c8f79c35cad 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -853,7 +853,6 @@ extern "C" { new_limit: *const ::rlimit, old_limit: *mut ::rlimit, ) -> ::c_int; - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; pub fn ptrace(request: ::c_int, ...) -> ::c_long; pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; diff --git a/src/unix/linux_like/linux/uclibc/mod.rs b/src/unix/linux_like/linux/uclibc/mod.rs index b8d10cb94595f..32c65545a8905 100644 --- a/src/unix/linux_like/linux/uclibc/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mod.rs @@ -353,7 +353,6 @@ pub const UDP_SEGMENT: ::c_int = 103; pub const YESEXPR: ::c_int = ((5) << 8) | (0); extern "C" { - pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; pub fn pthread_rwlockattr_getkind_np( From ac6739c557ddf4ee4f47a4809d0781d12951a293 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Tue, 27 Aug 2024 08:04:41 -0700 Subject: [PATCH 0130/1228] Re-enable testing of WASI on CI This commit updates CI to resume testing WASI. This updates the container and testing scripts from historical processes to more modern ones, e.g. downloading wasi-sdk instead of compiling a custom toolchain. This should make it easier to update in the future and keep it in sync with rust-lang/rust as well. This also required a few minor fixes such as: * The `S_IFIFO` and `S_IFMT` constants had incorrect values. * The `CLOCK_*` definitions cause `ctest2`'s parsing to panic to they're skipped with a new `#[cfg]`. * A new `langinfo.h` header was added to the list to include. * Some historically skipped checks were removed since they're no longer necessary. * Checks for `__errno_location` are disabled since that doesn't actually exist in headers. * Checks for `select` are disabled because the Rust definition got the `const`-ness swapped for the final `timeval` argument. (backport ) [ resolve conflicts - Trevor ] (cherry picked from commit 7c10562845682f605d361d1c7d0fbfa38180bc87) --- .github/workflows/full_ci.yml | 6 +---- build.rs | 1 + ci/docker/wasm32-wasi/Dockerfile | 40 ------------------------------ ci/docker/wasm32-wasi/clang.sh | 2 -- ci/docker/wasm32-wasip1/Dockerfile | 32 ++++++++++++++++++++++++ libc-test/build.rs | 35 ++++++++++++++++++-------- src/wasi.rs | 34 ++++++++++++++++--------- 7 files changed, 80 insertions(+), 70 deletions(-) delete mode 100644 ci/docker/wasm32-wasi/Dockerfile delete mode 100755 ci/docker/wasm32-wasi/clang.sh create mode 100644 ci/docker/wasm32-wasip1/Dockerfile diff --git a/.github/workflows/full_ci.yml b/.github/workflows/full_ci.yml index 6a4fbc7f4d332..3fb7616203b8a 100644 --- a/.github/workflows/full_ci.yml +++ b/.github/workflows/full_ci.yml @@ -118,11 +118,7 @@ jobs: powerpc64le-unknown-linux-gnu, s390x-unknown-linux-gnu, riscv64gc-unknown-linux-gnu, - # FIXME: A recent nightly causes a linker failure: - # https://github.com/rust-lang/rust/issues/76679 - # See this comment for more details: - # https://github.com/rust-lang/libc/pull/2225#issuecomment-880696737 - #wasm32-wasi, + wasm32-wasip1, sparc64-unknown-linux-gnu, wasm32-unknown-emscripten, x86_64-linux-android, diff --git a/build.rs b/build.rs index 076bbc0114f86..098ee0fd6d7bc 100644 --- a/build.rs +++ b/build.rs @@ -30,6 +30,7 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ "libc_thread_local", "libc_underscore_const_names", "libc_union", + "libc_ctest", ]; // Extra values to allow for check-cfg. diff --git a/ci/docker/wasm32-wasi/Dockerfile b/ci/docker/wasm32-wasi/Dockerfile deleted file mode 100644 index 80ae09f75038b..0000000000000 --- a/ci/docker/wasm32-wasi/Dockerfile +++ /dev/null @@ -1,40 +0,0 @@ -FROM ubuntu:23.10 - -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - ca-certificates \ - clang \ - curl \ - git \ - libc6-dev \ - make \ - xz-utils - -# Note that we're using `git reset --hard` to pin to a specific commit for -# verification for now. The sysroot is currently in somewhat of a state of flux -# and is expected to have breaking changes, so this is an attempt to mitigate -# those breaking changes on `libc`'s own CI -RUN git clone https://github.com/WebAssembly/wasi-libc && \ - cd wasi-libc && \ - git reset --hard ad5133410f66b93a2381db5b542aad5e0964db96 -RUN apt-get install -y --no-install-recommends llvm -RUN make -C wasi-libc install -j $(nproc) INSTALL_DIR=/wasi-libc - -RUN curl -L https://github.com/bytecodealliance/wasmtime/releases/download/dev/wasmtime-dev-x86_64-linux.tar.xz | \ - tar xJf - -ENV PATH=$PATH:/wasmtime-dev-x86_64-linux -COPY docker/wasm32-wasi/clang.sh /wasi-libc/bin/clang - -RUN apt-get install -y --no-install-recommends lld -RUN ln -s /usr/bin/wasm-ld-10 /usr/bin/wasm-ld -ENV PATH=$PATH:/usr/lib/llvm-10/bin - -# Of note here is our clang wrapper which just executes a normal clang -# executable with the right sysroot, and then we're sure to turn off the -# crt-static feature to ensure that the CRT that we're specifying with `clang` -# is used. -ENV CARGO_TARGET_WASM32_WASI_RUNNER=wasmtime \ - CARGO_TARGET_WASM32_WASI_LINKER=/wasi-libc/bin/clang \ - CC_wasm32_wasi=/wasi-libc/bin/clang \ - PATH=$PATH:/rust/bin \ - RUSTFLAGS=-Ctarget-feature=-crt-static diff --git a/ci/docker/wasm32-wasi/clang.sh b/ci/docker/wasm32-wasi/clang.sh deleted file mode 100755 index 83f5da5ad6d81..0000000000000 --- a/ci/docker/wasm32-wasi/clang.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -exec /usr/bin/clang --target=wasm32-wasi --sysroot /wasi-libc/sysroot "$@" diff --git a/ci/docker/wasm32-wasip1/Dockerfile b/ci/docker/wasm32-wasip1/Dockerfile new file mode 100644 index 0000000000000..9ffb85671e3d3 --- /dev/null +++ b/ci/docker/wasm32-wasip1/Dockerfile @@ -0,0 +1,32 @@ +FROM ubuntu:24.04 + +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + ca-certificates \ + curl \ + clang \ + xz-utils + +# Wasmtime is used to execute tests and wasi-sdk is used to compile tests. +# Download appropriate versions here and configure various flags below. +ENV WASMTIME 24.0.0 +ENV WASI_SDK 24 + +RUN curl -L https://github.com/bytecodealliance/wasmtime/releases/download/v$WASMTIME/wasmtime-v$WASMTIME-x86_64-linux.tar.xz | \ + tar xJf - +ENV PATH=$PATH:/wasmtime-v$WASMTIME-x86_64-linux + +RUN curl -LO https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$WASI_SDK/wasi-sdk-$WASI_SDK.0-x86_64-linux.deb +RUN dpkg -i ./wasi-sdk-*.deb + +# Note that `-D_WASI_EMULATED_PROCESS_CLOCKS` is used to enable access to +# clock-related defines even though they're emulated. Also note that the usage +# of `-Ctarget-feature=-crt-static` here forces usage of the external wasi-libc +# installed via `wasi-sdk` instead of the version that comes with the standard +# library. +ENV CARGO_TARGET_WASM32_WASIP1_RUNNER=wasmtime \ + CARGO_TARGET_WASM32_WASIP1_LINKER=/opt/wasi-sdk/bin/clang \ + CARGO_TARGET_WASM32_WASIP1_RUSTFLAGS="-lwasi-emulated-process-clocks -Ctarget-feature=-crt-static" \ + CC_wasm32_wasip1=/opt/wasi-sdk/bin/clang \ + CFLAGS_wasm32_wasip1=-D_WASI_EMULATED_PROCESS_CLOCKS \ + PATH=$PATH:/rust/bin diff --git a/libc-test/build.rs b/libc-test/build.rs index 30ab41202e945..8e0a9cf4ad94d 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1530,6 +1530,7 @@ fn test_wasi(target: &str) { "dirent.h", "errno.h", "fcntl.h", + "langinfo.h", "limits.h", "locale.h", "malloc.h", @@ -1541,6 +1542,7 @@ fn test_wasi(target: &str) { "stdio.h", "stdlib.h", "string.h", + "sys/ioctl.h", "sys/resource.h", "sys/select.h", "sys/socket.h", @@ -1549,16 +1551,20 @@ fn test_wasi(target: &str) { "sys/types.h", "sys/uio.h", "sys/utsname.h", - "sys/ioctl.h", "time.h", "unistd.h", "wasi/api.h", - "wasi/libc.h", "wasi/libc-find-relpath.h", "wasi/libc-nocwd.h", + "wasi/libc.h", "wchar.h", } + // Currently `ctest2` doesn't support macros-in-static-expressions and will + // panic on them. That affects `CLOCK_*` defines in wasi to set this here + // to omit them. + cfg.cfg("libc_ctest", None); + cfg.type_name(move |ty, is_struct, is_union| match ty { "FILE" | "fd_set" | "DIR" => ty.to_string(), t if is_union => format!("union {}", t), @@ -1577,20 +1583,27 @@ fn test_wasi(target: &str) { } }); - // Looks like LLD doesn't merge duplicate imports, so if the Rust - // code imports from a module and the C code also imports from a - // module we end up with two imports of function pointers which - // import the same thing but have different function pointers - cfg.skip_fn_ptrcheck(|f| f.starts_with("__wasi")); + // These have a different and internal type in header files and are only + // used here to generate a pointer to them in bindings so skip these tests. + cfg.skip_static(|c| c.starts_with("_CLOCK_")); + + cfg.skip_fn(|f| match f { + // This function doesn't actually exist in libc's header files + "__errno_location" => true, + + // The `timeout` argument to this function is `*const` in Rust but + // mutable in C which causes a mismatch. Avoiding breakage by changing + // this in wasi-libc and instead accepting that this is slightly + // different. + "select" => true, + + _ => false, + }); // d_name is declared as a flexible array in WASI libc, so it // doesn't support sizeof. cfg.skip_field(|s, field| s == "dirent" && field == "d_name"); - // Currently Rust/clang disagree on function argument ABI, so skip these - // tests. For more info see WebAssembly/tool-conventions#88 - cfg.skip_roundtrip(|_| true); - cfg.generate("../src/lib.rs", "main.rs"); } diff --git a/src/wasi.rs b/src/wasi.rs index 36047cbaed87d..ea8d4af29aa3b 100644 --- a/src/wasi.rs +++ b/src/wasi.rs @@ -245,14 +245,14 @@ pub const AT_SYMLINK_FOLLOW: c_int = 0x2; pub const AT_REMOVEDIR: c_int = 0x4; pub const UTIME_OMIT: c_long = 0xfffffffe; pub const UTIME_NOW: c_long = 0xffffffff; -pub const S_IFIFO: mode_t = 49152; +pub const S_IFIFO: mode_t = 0o1_0000; pub const S_IFCHR: mode_t = 8192; pub const S_IFBLK: mode_t = 24576; pub const S_IFDIR: mode_t = 16384; pub const S_IFREG: mode_t = 32768; pub const S_IFLNK: mode_t = 40960; pub const S_IFSOCK: mode_t = 49152; -pub const S_IFMT: mode_t = 57344; +pub const S_IFMT: mode_t = 0o17_0000; pub const S_IRWXO: mode_t = 0x7; pub const S_IXOTH: mode_t = 0x1; pub const S_IWOTH: mode_t = 0x2; @@ -372,16 +372,26 @@ pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; pub const _SC_IOV_MAX: c_int = 60; pub const _SC_SYMLOOP_MAX: c_int = 173; -#[allow(unused_unsafe)] // `addr_of!(EXTERN_STATIC)` is now safe; remove `unsafe` when MSRV >= 1.82 -pub static CLOCK_MONOTONIC: clockid_t = unsafe { clockid_t(ptr_addr_of!(_CLOCK_MONOTONIC)) }; -#[allow(unused_unsafe)] -pub static CLOCK_PROCESS_CPUTIME_ID: clockid_t = - unsafe { clockid_t(ptr_addr_of!(_CLOCK_PROCESS_CPUTIME_ID)) }; -#[allow(unused_unsafe)] -pub static CLOCK_REALTIME: clockid_t = unsafe { clockid_t(ptr_addr_of!(_CLOCK_REALTIME)) }; -#[allow(unused_unsafe)] -pub static CLOCK_THREAD_CPUTIME_ID: clockid_t = - unsafe { clockid_t(ptr_addr_of!(_CLOCK_THREAD_CPUTIME_ID)) }; +cfg_if! { + if #[cfg(libc_ctest)] { + // skip these constants when this is active because `ctest` currently + // panics on parsing the constants below + } else { + // `addr_of!(EXTERN_STATIC)` is now safe; remove `unsafe` when MSRV >= 1.82 + #[allow(unused_unsafe)] + pub static CLOCK_MONOTONIC: clockid_t = + unsafe { clockid_t(ptr_addr_of!(_CLOCK_MONOTONIC)) }; + #[allow(unused_unsafe)] + pub static CLOCK_PROCESS_CPUTIME_ID: clockid_t = + unsafe { clockid_t(ptr_addr_of!(_CLOCK_PROCESS_CPUTIME_ID)) }; + #[allow(unused_unsafe)] + pub static CLOCK_REALTIME: clockid_t = + unsafe { clockid_t(ptr_addr_of!(_CLOCK_REALTIME)) }; + #[allow(unused_unsafe)] + pub static CLOCK_THREAD_CPUTIME_ID: clockid_t = + unsafe { clockid_t(ptr_addr_of!(_CLOCK_THREAD_CPUTIME_ID)) }; + } +} pub const ABDAY_1: ::nl_item = 0x20000; pub const ABDAY_2: ::nl_item = 0x20001; From 4d990a598bd074e0dd745fc47986f26aefd8fd1d Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Wed, 28 Aug 2024 08:18:00 -0700 Subject: [PATCH 0131/1228] Add `wasm32-wasip2` to the test matrix on CI This is similar to #3869 except that it adds tests for `wasm32-wasip2` in addition to `wasm32-wasip1`. This is intended to eventually empower definitions from rust-lang/rust#129638 to move into this repository. (backport ) (cherry picked from commit 15f8c4445680c88def0695ecff088dfa35874301) --- .github/workflows/full_ci.yml | 1 + ci/docker/wasm32-wasip1/Dockerfile | 22 +++------------------- ci/docker/wasm32-wasip2/Dockerfile | 15 +++++++++++++++ ci/wasi.sh | 27 +++++++++++++++++++++++++++ 4 files changed, 46 insertions(+), 19 deletions(-) create mode 100644 ci/docker/wasm32-wasip2/Dockerfile create mode 100644 ci/wasi.sh diff --git a/.github/workflows/full_ci.yml b/.github/workflows/full_ci.yml index 3fb7616203b8a..b36f4f9d2ba57 100644 --- a/.github/workflows/full_ci.yml +++ b/.github/workflows/full_ci.yml @@ -119,6 +119,7 @@ jobs: s390x-unknown-linux-gnu, riscv64gc-unknown-linux-gnu, wasm32-wasip1, + wasm32-wasip2, sparc64-unknown-linux-gnu, wasm32-unknown-emscripten, x86_64-linux-android, diff --git a/ci/docker/wasm32-wasip1/Dockerfile b/ci/docker/wasm32-wasip1/Dockerfile index 9ffb85671e3d3..e1318151d2e62 100644 --- a/ci/docker/wasm32-wasip1/Dockerfile +++ b/ci/docker/wasm32-wasip1/Dockerfile @@ -1,23 +1,7 @@ FROM ubuntu:24.04 -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - ca-certificates \ - curl \ - clang \ - xz-utils - -# Wasmtime is used to execute tests and wasi-sdk is used to compile tests. -# Download appropriate versions here and configure various flags below. -ENV WASMTIME 24.0.0 -ENV WASI_SDK 24 - -RUN curl -L https://github.com/bytecodealliance/wasmtime/releases/download/v$WASMTIME/wasmtime-v$WASMTIME-x86_64-linux.tar.xz | \ - tar xJf - -ENV PATH=$PATH:/wasmtime-v$WASMTIME-x86_64-linux - -RUN curl -LO https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$WASI_SDK/wasi-sdk-$WASI_SDK.0-x86_64-linux.deb -RUN dpkg -i ./wasi-sdk-*.deb +COPY wasi.sh / +RUN bash /wasi.sh # Note that `-D_WASI_EMULATED_PROCESS_CLOCKS` is used to enable access to # clock-related defines even though they're emulated. Also note that the usage @@ -29,4 +13,4 @@ ENV CARGO_TARGET_WASM32_WASIP1_RUNNER=wasmtime \ CARGO_TARGET_WASM32_WASIP1_RUSTFLAGS="-lwasi-emulated-process-clocks -Ctarget-feature=-crt-static" \ CC_wasm32_wasip1=/opt/wasi-sdk/bin/clang \ CFLAGS_wasm32_wasip1=-D_WASI_EMULATED_PROCESS_CLOCKS \ - PATH=$PATH:/rust/bin + PATH=$PATH:/rust/bin:/wasmtime diff --git a/ci/docker/wasm32-wasip2/Dockerfile b/ci/docker/wasm32-wasip2/Dockerfile new file mode 100644 index 0000000000000..c433c491353f9 --- /dev/null +++ b/ci/docker/wasm32-wasip2/Dockerfile @@ -0,0 +1,15 @@ +FROM ubuntu:24.04 + +COPY wasi.sh / +RUN bash /wasi.sh + +# Note that most of these are copied from `wasm32-wasip1/Dockerfile` +# +# FIXME: the `-Clink-arg` to export `cabi_realloc` is a bug in the target +# itself, this should be fixed upstream. +ENV CARGO_TARGET_WASM32_WASIP2_RUNNER=wasmtime \ + CARGO_TARGET_WASM32_WASIP2_LINKER=/opt/wasi-sdk/bin/clang \ + CARGO_TARGET_WASM32_WASIP2_RUSTFLAGS="-lwasi-emulated-process-clocks -Ctarget-feature=-crt-static -Clink-arg=-Wl,--export,cabi_realloc" \ + CC_wasm32_wasip2=/opt/wasi-sdk/bin/clang \ + CFLAGS_wasm32_wasip2=-D_WASI_EMULATED_PROCESS_CLOCKS \ + PATH=$PATH:/rust/bin:/wasmtime diff --git a/ci/wasi.sh b/ci/wasi.sh new file mode 100644 index 0000000000000..a06c1f45af11a --- /dev/null +++ b/ci/wasi.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +set -ex + +apt-get update +apt-get install -y --no-install-recommends \ + ca-certificates \ + curl \ + clang \ + xz-utils + +# Wasmtime is used to execute tests and wasi-sdk is used to compile tests. +# Download appropriate versions here and configure various flags below. +# +# At the time of this writing wasmtime 24.0.0 is the latest release and +# wasi-sdk-24 is the latest release, that these numbers match is just +# coincidence. +wasmtime=24.0.0 +wasi_sdk=24 + +curl -L https://github.com/bytecodealliance/wasmtime/releases/download/v$wasmtime/wasmtime-v$wasmtime-x86_64-linux.tar.xz | \ + tar xJf - +mv wasmtime-v$wasmtime-x86_64-linux wasmtime + +# The pre-built `*.deb` files for wasi-sdk install to `/opt/wasi-sdk` +curl -LO https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$wasi_sdk/wasi-sdk-$wasi_sdk.0-x86_64-linux.deb +dpkg -i ./wasi-sdk-*.deb From 839bfc2d53aab9f36af0fbf8fff66ea863fc757b Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 17 Feb 2024 16:52:40 +0000 Subject: [PATCH 0132/1228] adding new syscall id fchmodat2 for glibc/musl x86 (kernel >= 6.6). (backport ) (cherry picked from commit 14bc9fb8089ed3d8d91938b65cc5cd5a1ad7a013) --- libc-test/build.rs | 3 +++ src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 1 + src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs | 1 + src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs | 1 + src/unix/linux_like/linux/musl/b32/x86/mod.rs | 1 + src/unix/linux_like/linux/musl/b64/x86_64/mod.rs | 1 + 6 files changed, 8 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 8e0a9cf4ad94d..6252d8523c2d5 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4210,6 +4210,9 @@ fn test_linux(target: &str) { true } + // FIXME: Requires >= 6.6 kernel headers. + "SYS_fchmodat2" => true, + // FIXME: seems to not be available all the time (from : "PF_VCPU" | "PF_IDLE" diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 27f477bb48f85..161e54d13df9d 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -1044,6 +1044,7 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_fchmodat2: ::c_long = 452; // offsets in user_regs_structs, from sys/reg.h pub const EBX: ::c_int = 0; diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs index 3831dfad9d414..e8750ec0cd8ee 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs @@ -438,6 +438,7 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_fchmodat2: ::c_long = 452; extern "C" { pub fn sysctl( diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs index 06aa0da2d74aa..90745b1762335 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs @@ -366,6 +366,7 @@ pub const SYS_memfd_secret: ::c_long = __X32_SYSCALL_BIT + 447; pub const SYS_process_mrelease: ::c_long = __X32_SYSCALL_BIT + 448; pub const SYS_futex_waitv: ::c_long = __X32_SYSCALL_BIT + 449; pub const SYS_set_mempolicy_home_node: ::c_long = __X32_SYSCALL_BIT + 450; +pub const SYS_fchmodat2: ::c_long = __X32_SYSCALL_BIT + 452; pub const SYS_rt_sigaction: ::c_long = __X32_SYSCALL_BIT + 512; pub const SYS_rt_sigreturn: ::c_long = __X32_SYSCALL_BIT + 513; pub const SYS_ioctl: ::c_long = __X32_SYSCALL_BIT + 514; diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 12280851e7471..7fad04677f8a4 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -936,6 +936,7 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_fchmodat2: ::c_long = 452; // offsets in user_regs_structs, from sys/reg.h pub const EBX: ::c_int = 0; diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index 4d17868000ebd..677e2e4953e75 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -608,6 +608,7 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_fchmodat2: ::c_long = 452; // offsets in user_regs_structs, from sys/reg.h pub const R15: ::c_int = 0; From 255a51524a191c18dbd1ebdda38cb26d07b324be Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 10 Aug 2024 15:28:19 +0100 Subject: [PATCH 0133/1228] linux adding new syscall SYS_mseal for x86_64 glibc/musl. (backport ) (cherry picked from commit 396c63c594915655bbd5aa8e6ea4aaab4f35a548) --- libc-test/build.rs | 3 +++ libc-test/semver/linux-i686.txt | 1 + libc-test/semver/linux-powerpc.txt | 1 + libc-test/semver/linux-s390x.txt | 1 + libc-test/semver/linux-x86_64.txt | 1 + src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 1 + src/unix/linux_like/linux/gnu/b32/powerpc.rs | 1 + src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 1 + src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs | 1 + src/unix/linux_like/linux/gnu/b64/s390x.rs | 1 + src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs | 1 + src/unix/linux_like/linux/musl/b32/arm/mod.rs | 1 + src/unix/linux_like/linux/musl/b32/powerpc.rs | 1 + src/unix/linux_like/linux/musl/b64/aarch64/mod.rs | 1 + src/unix/linux_like/linux/musl/b64/s390x.rs | 1 + src/unix/linux_like/linux/musl/b64/x86_64/mod.rs | 1 + 16 files changed, 18 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 6252d8523c2d5..6a7f7efce2b39 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4213,6 +4213,9 @@ fn test_linux(target: &str) { // FIXME: Requires >= 6.6 kernel headers. "SYS_fchmodat2" => true, + // FIXME: Requires >= 6.10 kernel headers. + "SYS_mseal" => true, + // FIXME: seems to not be available all the time (from : "PF_VCPU" | "PF_IDLE" diff --git a/libc-test/semver/linux-i686.txt b/libc-test/semver/linux-i686.txt index a14498adc8396..2f40472dcfaeb 100644 --- a/libc-test/semver/linux-i686.txt +++ b/libc-test/semver/linux-i686.txt @@ -132,6 +132,7 @@ SYS_mknod SYS_mmap2 SYS_modify_ldt SYS_mpx +SYS_mseal SYS_nice SYS_oldfstat SYS_oldlstat diff --git a/libc-test/semver/linux-powerpc.txt b/libc-test/semver/linux-powerpc.txt index d9aacc973d972..2826bb98d20e3 100644 --- a/libc-test/semver/linux-powerpc.txt +++ b/libc-test/semver/linux-powerpc.txt @@ -82,6 +82,7 @@ SYS_mknod SYS_mmap2 SYS_modify_ldt SYS_mpx +SYS_mseal SYS_multiplexer SYS_nice SYS_oldfstat diff --git a/libc-test/semver/linux-s390x.txt b/libc-test/semver/linux-s390x.txt index f5d089e3d5e50..96be9c25e4f3c 100644 --- a/libc-test/semver/linux-s390x.txt +++ b/libc-test/semver/linux-s390x.txt @@ -59,6 +59,7 @@ SYS_link SYS_lstat SYS_mkdir SYS_mknod +SYS_mseal SYS_newfstatat SYS_nice SYS_open diff --git a/libc-test/semver/linux-x86_64.txt b/libc-test/semver/linux-x86_64.txt index 6ad111e7308cc..c8a509c215085 100644 --- a/libc-test/semver/linux-x86_64.txt +++ b/libc-test/semver/linux-x86_64.txt @@ -107,6 +107,7 @@ SYS_lstat SYS_mkdir SYS_mknod SYS_modify_ldt +SYS_mseal SYS_open SYS_pause SYS_pipe diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 89c93aba8818e..4a14d692c8652 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -855,6 +855,7 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_mseal: ::c_long = 462; cfg_if! { if #[cfg(libc_align)] { diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index dd5732e0dcc14..cb7fdf7661472 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -823,3 +823,4 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_mseal: ::c_long = 462; diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 161e54d13df9d..4391eb3fa7968 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -1045,6 +1045,7 @@ pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; pub const SYS_fchmodat2: ::c_long = 452; +pub const SYS_mseal: ::c_long = 462; // offsets in user_regs_structs, from sys/reg.h pub const EBX: ::c_int = 0; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index 284a1788f4409..c8a805cdd36cb 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -892,6 +892,7 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_mseal: ::c_long = 462; pub const PROT_BTI: ::c_int = 0x10; pub const PROT_MTE: ::c_int = 0x20; diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 61ee2dcc9b50a..e85429ef97bf6 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -946,6 +946,7 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_mseal: ::c_long = 462; extern "C" { diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs index e8750ec0cd8ee..9b37907bbb28a 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs @@ -439,6 +439,7 @@ pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; pub const SYS_fchmodat2: ::c_long = 452; +pub const SYS_mseal: ::c_long = 462; extern "C" { pub fn sysctl( diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index 8225f26adb474..4ac3e60d43079 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -840,6 +840,7 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_mseal: ::c_long = 462; extern "C" { pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index bdf25455fd8cc..834a442802b27 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -796,6 +796,7 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_mseal: ::c_long = 462; extern "C" { pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index 54e072b314a84..24e6b8419253a 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -561,6 +561,7 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_mseal: ::c_long = 462; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index aa4cbf87f8a22..567914f7b8cd5 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -722,3 +722,4 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_mseal: ::c_long = 462; diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index 677e2e4953e75..dc617d42fe0cc 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -609,6 +609,7 @@ pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; pub const SYS_fchmodat2: ::c_long = 452; +pub const SYS_mseal: ::c_long = 462; // offsets in user_regs_structs, from sys/reg.h pub const R15: ::c_int = 0; From ff9b2109a6e42be54e419374178dcb52d51b119f Mon Sep 17 00:00:00 2001 From: byteallen Date: Thu, 29 Aug 2024 18:07:14 +0800 Subject: [PATCH 0134/1228] Add missing NOTE_MACHTIME and NOTE_MACH_CONTINUOUS_TIME constants to apple. (backport ) (cherry picked from commit b6938543a91241ed3d46433334ca74534005e392) --- libc-test/semver/apple.txt | 2 ++ src/unix/bsd/apple/mod.rs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index 4d280dc731dfd..89b5cca443395 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -1004,6 +1004,8 @@ NOTE_FORK NOTE_LEEWAY NOTE_LINK NOTE_LOWAT +NOTE_MACHTIME +NOTE_MACH_CONTINUOUS_TIME NOTE_NONE NOTE_NSECONDS NOTE_PCTRLMASK diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 06b6c62a63f35..92d724071a3d4 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -4522,6 +4522,8 @@ pub const NOTE_ABSOLUTE: u32 = 0x00000008; pub const NOTE_LEEWAY: u32 = 0x00000010; pub const NOTE_CRITICAL: u32 = 0x00000020; pub const NOTE_BACKGROUND: u32 = 0x00000040; +pub const NOTE_MACH_CONTINUOUS_TIME: u32 = 0x00000080; +pub const NOTE_MACHTIME: u32 = 0x00000100; pub const NOTE_TRACK: u32 = 0x00000001; pub const NOTE_TRACKERR: u32 = 0x00000002; pub const NOTE_CHILD: u32 = 0x00000004; From 3ff9276095bd189842e25d69a87f6b612b0e4626 Mon Sep 17 00:00:00 2001 From: Nicola Krumschmidt Date: Fri, 30 Aug 2024 00:05:55 +0200 Subject: [PATCH 0135/1228] Add wasm32-wasip2 definitions necessary for std::net support (backport ) (cherry picked from commit 78e7b89791b41342841eadb6785f48423fa420d2) --- libc-test/build.rs | 18 ++++ libc-test/semver/wasi-p2.txt | 59 +++++++++++++ src/{wasi.rs => wasi/mod.rs} | 7 ++ src/wasi/p2.rs | 161 +++++++++++++++++++++++++++++++++++ 4 files changed, 245 insertions(+) create mode 100644 libc-test/semver/wasi-p2.txt rename src/{wasi.rs => wasi/mod.rs} (99%) create mode 100644 src/wasi/p2.rs diff --git a/libc-test/build.rs b/libc-test/build.rs index 6a7f7efce2b39..75dcd14fc83be 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1521,6 +1521,7 @@ fn test_dragonflybsd(target: &str) { fn test_wasi(target: &str) { assert!(target.contains("wasi")); + let p2 = target.contains("wasip2"); let mut cfg = ctest_cfg(); cfg.define("_GNU_SOURCE", None); @@ -1534,6 +1535,9 @@ fn test_wasi(target: &str) { "limits.h", "locale.h", "malloc.h", + [p2]: "netdb.h", + [p2]: "netinet/in.h", + [p2]: "netinet/tcp.h", "poll.h", "sched.h", "stdbool.h", @@ -1565,6 +1569,12 @@ fn test_wasi(target: &str) { // to omit them. cfg.cfg("libc_ctest", None); + // `ctest2` has a hard-coded list of default cfgs which doesn't include + // wasip2, which is why it has to be set here manually. + if p2 { + cfg.cfg("target_env", Some("p2")); + } + cfg.type_name(move |ty, is_struct, is_union| match ty { "FILE" | "fd_set" | "DIR" => ty.to_string(), t if is_union => format!("union {}", t), @@ -1587,6 +1597,14 @@ fn test_wasi(target: &str) { // used here to generate a pointer to them in bindings so skip these tests. cfg.skip_static(|c| c.starts_with("_CLOCK_")); + cfg.skip_const(|c| match c { + // These constants aren't yet defined in wasi-libc. + // Exposing them is being tracked by https://github.com/WebAssembly/wasi-libc/issues/531. + "SO_BROADCAST" | "SO_LINGER" => true, + + _ => false, + }); + cfg.skip_fn(|f| match f { // This function doesn't actually exist in libc's header files "__errno_location" => true, diff --git a/libc-test/semver/wasi-p2.txt b/libc-test/semver/wasi-p2.txt new file mode 100644 index 0000000000000..bb79dfd0dc1e8 --- /dev/null +++ b/libc-test/semver/wasi-p2.txt @@ -0,0 +1,59 @@ +sa_family_t +in_port_t +in_addr_t +socklen_t +sockaddr +in_addr +sockaddr_in +in6_addr +sockaddr_in6 +sockaddr_storage +addrinfo +ip_mreq +ipv6_mreq +SHUT_RD +SHUT_WR +SHUT_RDWR +MSG_NOSIGNAL +MSG_PEEK +SO_REUSEADDR +SO_ERROR +SO_BROADCAST +SO_LINGER +SO_RCVTIMEO +SO_SNDTIMEO +SOCK_DGRAM +SOCK_STREAM +SOL_SOCKET +AF_INET +AF_INET6 +IPPROTO_IP +IPPROTO_TCP +IPPROTO_IPV6 +IP_TTL +IP_MULTICAST_TTL +IP_MULTICAST_LOOP +IP_ADD_MEMBERSHIP +IP_DROP_MEMBERSHIP +IPV6_MULTICAST_LOOP +IPV6_JOIN_GROUP +IPV6_LEAVE_GROUP +IPV6_V6ONLY +IPV6_ADD_MEMBERSHIP +IPV6_DROP_MEMBERSHIP +TCP_NODELAY +EAI_SYSTEM +socket +connect +bind +listen +accept +getsockname +getpeername +sendto +recvfrom +getsockopt +setsockopt +getaddrinfo +freeaddrinfo +gai_strerror diff --git a/src/wasi.rs b/src/wasi/mod.rs similarity index 99% rename from src/wasi.rs rename to src/wasi/mod.rs index ea8d4af29aa3b..d47d4076cc720 100644 --- a/src/wasi.rs +++ b/src/wasi/mod.rs @@ -879,3 +879,10 @@ extern "C" { pub fn __errno_location() -> *mut ::c_int; } + +cfg_if! { + if #[cfg(target_env = "p2")] { + mod p2; + pub use self::p2::*; + } +} diff --git a/src/wasi/p2.rs b/src/wasi/p2.rs new file mode 100644 index 0000000000000..3e8eb95fcd1a5 --- /dev/null +++ b/src/wasi/p2.rs @@ -0,0 +1,161 @@ +pub type sa_family_t = ::c_ushort; +pub type in_port_t = ::c_ushort; +pub type in_addr_t = ::c_uint; + +pub type socklen_t = ::c_uint; + +s! { + #[repr(align(16))] + pub struct sockaddr { + pub sa_family: sa_family_t, + pub sa_data: [::c_char; 0], + } + + pub struct in_addr { + pub s_addr: in_addr_t, + } + + #[repr(align(16))] + pub struct sockaddr_in { + pub sin_family: sa_family_t, + pub sin_port: in_port_t, + pub sin_addr: in_addr, + } + + #[repr(align(4))] + pub struct in6_addr { + pub s6_addr: [::c_uchar; 16], + } + + #[repr(align(16))] + pub struct sockaddr_in6 { + pub sin6_family: sa_family_t, + pub sin6_port: in_port_t, + pub sin6_flowinfo: ::c_uint, + pub sin6_addr: in6_addr, + pub sin6_scope_id: ::c_uint, + } + + #[repr(align(16))] + pub struct sockaddr_storage { + pub ss_family: sa_family_t, + pub __ss_data: [::c_char; 32], + } + + pub struct addrinfo { + pub ai_flags: ::c_int, + pub ai_family: ::c_int, + pub ai_socktype: ::c_int, + pub ai_protocol: ::c_int, + pub ai_addrlen: socklen_t, + pub ai_addr: *mut sockaddr, + pub ai_canonname: *mut ::c_char, + pub ai_next: *mut addrinfo, + } + + pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct ipv6_mreq { + pub ipv6mr_multiaddr: in6_addr, + pub ipv6mr_interface: ::c_uint, + } +} + +pub const SHUT_RD: ::c_int = 1 << 0; +pub const SHUT_WR: ::c_int = 1 << 1; +pub const SHUT_RDWR: ::c_int = SHUT_RD | SHUT_WR; + +pub const MSG_NOSIGNAL: ::c_int = 0x4000; +pub const MSG_PEEK: ::c_int = 0x0002; + +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_ERROR: ::c_int = 4; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_LINGER: ::c_int = 13; +pub const SO_RCVTIMEO: ::c_int = 66; +pub const SO_SNDTIMEO: ::c_int = 67; + +pub const SOCK_DGRAM: ::c_int = 5; +pub const SOCK_STREAM: ::c_int = 6; + +pub const SOL_SOCKET: ::c_int = 0x7fffffff; + +pub const AF_INET: ::c_int = 1; +pub const AF_INET6: ::c_int = 2; + +pub const IPPROTO_IP: ::c_int = 0; +pub const IPPROTO_TCP: ::c_int = 6; +pub const IPPROTO_IPV6: ::c_int = 41; + +pub const IP_TTL: ::c_int = 2; +pub const IP_MULTICAST_TTL: ::c_int = 33; +pub const IP_MULTICAST_LOOP: ::c_int = 34; +pub const IP_ADD_MEMBERSHIP: ::c_int = 35; +pub const IP_DROP_MEMBERSHIP: ::c_int = 36; + +pub const IPV6_MULTICAST_LOOP: ::c_int = 19; +pub const IPV6_JOIN_GROUP: ::c_int = 20; +pub const IPV6_LEAVE_GROUP: ::c_int = 21; +pub const IPV6_V6ONLY: ::c_int = 26; + +pub const IPV6_ADD_MEMBERSHIP: ::c_int = IPV6_JOIN_GROUP; +pub const IPV6_DROP_MEMBERSHIP: ::c_int = IPV6_LEAVE_GROUP; + +pub const TCP_NODELAY: ::c_int = 1; + +pub const EAI_SYSTEM: ::c_int = -11; + +extern "C" { + pub fn socket(domain: ::c_int, type_: ::c_int, protocol: ::c_int) -> ::c_int; + pub fn connect(fd: ::c_int, name: *const sockaddr, addrlen: socklen_t) -> ::c_int; + pub fn bind(socket: ::c_int, addr: *const sockaddr, addrlen: socklen_t) -> ::c_int; + pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; + pub fn accept(socket: ::c_int, addr: *mut sockaddr, addrlen: *mut socklen_t) -> ::c_int; + + pub fn getsockname(socket: ::c_int, addr: *mut sockaddr, addrlen: *mut socklen_t) -> ::c_int; + pub fn getpeername(socket: ::c_int, addr: *mut sockaddr, addrlen: *mut socklen_t) -> ::c_int; + + pub fn sendto( + socket: ::c_int, + buffer: *const ::c_void, + length: ::size_t, + flags: ::c_int, + addr: *const sockaddr, + addrlen: socklen_t, + ) -> ::ssize_t; + pub fn recvfrom( + socket: ::c_int, + buffer: *mut ::c_void, + length: ::size_t, + flags: ::c_int, + addr: *mut sockaddr, + addrlen: *mut socklen_t, + ) -> ::ssize_t; + + pub fn getsockopt( + sockfd: ::c_int, + level: ::c_int, + optname: ::c_int, + optval: *mut ::c_void, + optlen: *mut socklen_t, + ) -> ::c_int; + pub fn setsockopt( + sockfd: ::c_int, + level: ::c_int, + optname: ::c_int, + optval: *const ::c_void, + optlen: socklen_t, + ) -> ::c_int; + + pub fn getaddrinfo( + host: *const ::c_char, + serv: *const ::c_char, + hint: *const addrinfo, + res: *mut *mut addrinfo, + ) -> ::c_int; + pub fn freeaddrinfo(p: *mut addrinfo); + pub fn gai_strerror(ecode: ::c_int) -> *const ::c_char; +} From e6e4bccd5bd330d7ea5f1cb62a6ede654aa45381 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=B7=D0=B0=D0=BB=D0=B8=D1=8F=20=D0=A1=D0=BC=D0=B0?= =?UTF-8?q?=D1=80=D0=B0=D0=B3=D0=B4=D0=BE=D0=B2=D0=B0?= Date: Sat, 24 Aug 2024 12:11:13 +0500 Subject: [PATCH 0136/1228] Expose the "epoll_pwait2()" function The ```epoll_pwait2()``` function has been moved to linux/gnu (backport ) (cherry picked from commit f3756b90e8605ec07d49fc041ef685be8582bf5d) --- libc-test/semver/linux-gnu.txt | 1 + src/unix/linux_like/linux/gnu/mod.rs | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 821443c6c385d..ce4f85484eee0 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -711,3 +711,4 @@ putpwent putgrent execveat close_range +epoll_pwait2 diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 3c22d845f1008..75d150c90d58a 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1542,6 +1542,14 @@ extern "C" { pub fn close_range(first: ::c_uint, last: ::c_uint, flags: ::c_int) -> ::c_int; pub fn mq_notify(mqdes: ::mqd_t, sevp: *const ::sigevent) -> ::c_int; + + pub fn epoll_pwait2( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: *const ::timespec, + sigmask: *const ::sigset_t, + ) -> ::c_int; } cfg_if! { From 70feded4192065ec4734b6a91eb7c80410471a0f Mon Sep 17 00:00:00 2001 From: Ben Kimock Date: Mon, 2 Sep 2024 15:25:13 -0400 Subject: [PATCH 0137/1228] Change signal constants to c_int on espidf (backport ) (cherry picked from commit a6f4694237042e0fc5616782c2f8bbb516c27e4d) --- src/unix/newlib/espidf/mod.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/unix/newlib/espidf/mod.rs b/src/unix/newlib/espidf/mod.rs index e2e98ee9c394a..1a2a907d83191 100644 --- a/src/unix/newlib/espidf/mod.rs +++ b/src/unix/newlib/espidf/mod.rs @@ -89,14 +89,14 @@ pub const MSG_EOR: ::c_int = 0x08; pub const PTHREAD_STACK_MIN: ::size_t = 768; -pub const SIGABRT: ::size_t = 1; -pub const SIGFPE: ::size_t = 1; -pub const SIGILL: ::size_t = 1; -pub const SIGINT: ::size_t = 1; -pub const SIGSEGV: ::size_t = 1; -pub const SIGTERM: ::size_t = 1; -pub const SIGHUP: ::size_t = 1; -pub const SIGQUIT: ::size_t = 1; +pub const SIGABRT: ::c_int = 1; +pub const SIGFPE: ::c_int = 1; +pub const SIGILL: ::c_int = 1; +pub const SIGINT: ::c_int = 1; +pub const SIGSEGV: ::c_int = 1; +pub const SIGTERM: ::c_int = 1; +pub const SIGHUP: ::c_int = 1; +pub const SIGQUIT: ::c_int = 1; pub const NSIG: ::size_t = 2; extern "C" { From a3e88691a9a1a41867b0692b67cc50f5b1d39eb2 Mon Sep 17 00:00:00 2001 From: Andrea Ciliberti Date: Wed, 21 Aug 2024 12:38:49 +0200 Subject: [PATCH 0138/1228] Revise network definitions for HorizonOS (backport ) (cherry picked from commit 82ebf14f8fcb70be0e0b290115b0fe879bfa6f0a) --- src/unix/newlib/horizon/mod.rs | 9 +++++++++ src/unix/newlib/mod.rs | 26 ++++++++++++++++---------- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/unix/newlib/horizon/mod.rs b/src/unix/newlib/horizon/mod.rs index 9c70f7b031b63..97e0b18f6fb71 100644 --- a/src/unix/newlib/horizon/mod.rs +++ b/src/unix/newlib/horizon/mod.rs @@ -21,6 +21,14 @@ pub type sbintime_t = ::c_longlong; pub type sigset_t = ::c_ulong; s! { + pub struct hostent { + pub h_name: *mut ::c_char, + pub h_aliases: *mut *mut ::c_char, + pub h_addrtype: u16, + pub h_length: u16, + pub h_addr_list: *mut *mut ::c_char, + } + pub struct sockaddr { pub sa_family: ::sa_family_t, pub sa_data: [::c_char; 26usize], @@ -35,6 +43,7 @@ s! { pub sin_family: ::sa_family_t, pub sin_port: ::in_port_t, pub sin_addr: ::in_addr, + pub sin_zero: [::c_char; 8], } pub struct sockaddr_in6 { diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index a572cc38bfda9..29693f6ec2402 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -53,6 +53,21 @@ cfg_if! { } } +cfg_if! { + if #[cfg(not(target_os = "horizon"))] { + s!{ + pub struct hostent { + pub h_name: *mut ::c_char, + pub h_aliases: *mut *mut ::c_char, + pub h_addrtype: ::c_int, + pub h_length: ::c_int, + pub h_addr_list: *mut *mut ::c_char, + pub h_addr: *mut ::c_char, + } + } + } +} + s! { // The order of the `ai_addr` field in this struct is crucial // for converting between the Rust and C types. @@ -87,16 +102,7 @@ s! { } pub struct in_addr { - pub s_addr: ::in_addr_t, - } - - pub struct hostent { - pub h_name: *mut ::c_char, - pub h_aliases: *mut *mut ::c_char, - pub h_addrtype: ::c_int, - pub h_length: ::c_int, - pub h_addr_list: *mut *mut ::c_char, - pub h_addr: *mut ::c_char, + pub s_addr: ::in_addr_t, } pub struct pollfd { From 507833559bd0bfe04b5139c1607c3dc3208174f5 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 31 Aug 2024 11:01:53 -0400 Subject: [PATCH 0139/1228] Fix rustc version when `clippy-driver` is used This is a combined cherry-pick of the following two commits: - 18b8da96 ("Handle rustc version output correctly...") - cdf12d2a ("Update `rustc_version_cmd`") These two commits are squashed for the backport to slightly reduce the amount of conflict resolution needed going forward (some small tweaks were still needed). This backports the following: - - Commit 1 original message: Handle rustc version output correctly when `clippy-driver` used Commit 2 original message: Update `rustc_version_cmd` Change `if let` to a `match` because it is about the same complexity but also works with our MSRV for 0.2. This should allow backporting [1] easier, as well as future backports that touch this code. Additionally, add some new documentation comments. [1]: https://github.com/rust-lang/libc/pull/3893 Co-authored-by: Nathaniel Bennett Co-authored-by: Trevor Gross --- build.rs | 58 +++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 19 deletions(-) diff --git a/build.rs b/build.rs index 098ee0fd6d7bc..bfc1f63e6ff9e 100644 --- a/build.rs +++ b/build.rs @@ -1,5 +1,5 @@ use std::env; -use std::process::Command; +use std::process::{Command, Output}; use std::str; // List of cfgs this build script is allowed to set. The list is needed to support check-cfg, as we @@ -194,31 +194,29 @@ fn main() { } } -fn rustc_minor_nightly() -> (u32, bool) { - macro_rules! otry { - ($e:expr) => { - match $e { - Some(e) => e, - None => panic!("Failed to get rustc version"), - } - }; - } - +/// Run `rustc --version` and capture the output, adjusting arguments as needed if `clippy-driver` +/// is used instead. +fn rustc_version_cmd(is_clippy_driver: bool) -> Output { + let rustc_wrapper = env::var_os("RUSTC_WRAPPER").filter(|w| !w.is_empty()); let rustc = env::var_os("RUSTC").expect("Failed to get rustc version: missing RUSTC env"); - let mut cmd = match env::var_os("RUSTC_WRAPPER").as_ref() { - Some(wrapper) if !wrapper.is_empty() => { + + let mut cmd = match rustc_wrapper { + Some(wrapper) => { let mut cmd = Command::new(wrapper); cmd.arg(rustc); + if is_clippy_driver { + cmd.arg("--rustc"); + } + cmd } - _ => Command::new(rustc), + None => Command::new(rustc), }; - let output = cmd - .arg("--version") - .output() - .ok() - .expect("Failed to get rustc version"); + cmd.arg("--version"); + + let output = cmd.output().ok().expect("Failed to get rustc version"); + if !output.status.success() { panic!( "failed to run rustc: {}", @@ -226,7 +224,29 @@ fn rustc_minor_nightly() -> (u32, bool) { ); } + output +} + +/// Return the minor version of `rustc`, as well as a bool indicating whether or not the version +/// is a nightly. +fn rustc_minor_nightly() -> (u32, bool) { + macro_rules! otry { + ($e:expr) => { + match $e { + Some(e) => e, + None => panic!("Failed to get rustc version"), + } + }; + } + + let mut output = rustc_version_cmd(false); + + if otry!(str::from_utf8(&output.stdout).ok()).starts_with("clippy") { + output = rustc_version_cmd(true); + } + let version = otry!(str::from_utf8(&output.stdout).ok()); + let mut pieces = version.split('.'); if pieces.next() != Some("rustc 1") { From abcb8f87986c8f57a28c4f67d7939272f4f8cbad Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 10 Sep 2024 15:16:06 +0200 Subject: [PATCH 0140/1228] Simplify the RUSTC_WRAPPER check This should be compatible with older versions of rustc, to get the branches more in sync. (backport ) (cherry picked from commit bdce2b2ff52832e86061aa204581e034bcb78e8d) --- build-tmp.rs | 374 +++++++++++++++++++++++++++++++++++++++++++++++++++ build.rs | 4 +- 2 files changed, 376 insertions(+), 2 deletions(-) create mode 100644 build-tmp.rs diff --git a/build-tmp.rs b/build-tmp.rs new file mode 100644 index 0000000000000..101f45ac262e9 --- /dev/null +++ b/build-tmp.rs @@ -0,0 +1,374 @@ +use std::env; +use std::ffi::{OsStr, OsString}; +use std::process::{Command, Output}; +use std::str; + +// List of cfgs this build script is allowed to set. The list is needed to support check-cfg, as we +// need to know all the possible cfgs that this script will set. If you need to set another cfg +// make sure to add it to this list as well. +const ALLOWED_CFGS: &'static [&'static str] = &[ + "emscripten_new_stat_abi", + "espidf_time64", + "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", + "libc_ctest", +]; + +// Extra values to allow for check-cfg. +const CHECK_CFG_EXTRA: &'static [(&'static str, &'static [&'static str])] = &[ + ("target_os", &["switch", "aix", "ohos", "hurd", "visionos"]), + ("target_env", &["illumos", "wasi", "aix", "ohos"]), + ( + "target_arch", + &["loongarch64", "mips32r6", "mips64r6", "csky"], + ), +]; + +fn main() { + // Avoid unnecessary re-building. + println!("cargo:rerun-if-changed=build.rs"); + + let (rustc_minor_ver, is_nightly) = rustc_minor_nightly(); + let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); + let 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() || rustc_minor_ver >= 80; + + if env::var("CARGO_FEATURE_USE_STD").is_ok() { + println!( + "cargo:warning=\"libc's use_std cargo feature is deprecated since libc 0.2.55; \ + please consider using the `std` cargo feature instead\"" + ); + } + + // 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. + let which_freebsd = if libc_ci { + which_freebsd().unwrap_or(11) + } else if rustc_dep_of_std { + 12 + } else { + 11 + }; + match which_freebsd { + x if x < 10 => panic!("FreeBSD older than 10 is not supported"), + 10 => set_cfg("freebsd10"), + 11 => set_cfg("freebsd11"), + 12 => set_cfg("freebsd12"), + 13 => set_cfg("freebsd13"), + 14 => set_cfg("freebsd14"), + _ => set_cfg("freebsd15"), + } + + 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 { + set_cfg("libc_deny_warnings"); + } + + // Rust >= 1.15 supports private module use: + if rustc_minor_ver >= 15 || rustc_dep_of_std { + set_cfg("libc_priv_mod_use"); + } + + // Rust >= 1.19 supports unions: + if rustc_minor_ver >= 19 || rustc_dep_of_std { + set_cfg("libc_union"); + } + + // Rust >= 1.24 supports const mem::size_of: + if rustc_minor_ver >= 24 || rustc_dep_of_std { + set_cfg("libc_const_size_of"); + } + + // Rust >= 1.25 supports repr(align): + if rustc_minor_ver >= 25 || rustc_dep_of_std || align_cargo_feature { + set_cfg("libc_align"); + } + + // Rust >= 1.26 supports i128 and u128: + if rustc_minor_ver >= 26 || rustc_dep_of_std { + 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 { + 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 { + 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 { + 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 { + 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 { + set_cfg("libc_underscore_const_names"); + } + + // #[thread_local] is currently unstable + if rustc_dep_of_std { + set_cfg("libc_thread_local"); + } + + // Rust >= 1.62.0 allows to use `const_extern_fn` for "Rust" and "C". + if rustc_minor_ver >= 62 { + 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"); + } + 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); + } + } + } +} + +fn rustc_version_cmd(is_clippy_driver: bool) -> Output { + let rustc_wrapper = env::var_os("RUSTC_WRAPPER").filter(|w| !w.is_empty()); + let rustc = env::var_os("RUSTC").expect("Failed to get rustc version: missing RUSTC env"); + + let mut cmd = if let Some(wrapper) = rustc_wrapper { + let mut cmd = Command::new(wrapper); + cmd.arg(rustc); + if is_clippy_driver { + cmd.arg("--rustc"); + } + + cmd + } else { + Command::new(rustc) + }; + + cmd.arg("--version"); + + let output = cmd.output().expect("Failed to get rustc version"); + + if !output.status.success() { + panic!( + "failed to run rustc: {}", + String::from_utf8_lossy(output.stderr.as_slice()) + ); + } + + output +} + +fn rustc_minor_nightly() -> (u32, bool) { + macro_rules! otry { + ($e:expr) => { + match $e { + Some(e) => e, + None => panic!("Failed to get rustc version"), + } + }; + } + +<<<<<<< HEAD + let rustc = env::var_os("RUSTC").expect("Failed to get rustc version: missing RUSTC env"); + let mut cmd = match env::var_os("RUSTC_WRAPPER").as_ref() { + Some(wrapper) if !wrapper.is_empty() => { + let mut cmd = Command::new(wrapper); + cmd.arg(rustc); + cmd + } + _ => Command::new(rustc), + }; +||||||| parent of 18b8da967 (Handle rustc version output correctly when `clippy-driver` used) + let rustc = env::var_os("RUSTC").expect("Failed to get rustc version: missing RUSTC env"); + let mut cmd = if let Some(wrapper) = env::var_os("RUSTC_WRAPPER").filter(|w| !w.is_empty()) { + let mut cmd = Command::new(wrapper); + cmd.arg(rustc); + cmd + } else { + Command::new(rustc) + }; +======= + let mut output = rustc_version_cmd(false); +>>>>>>> 18b8da967 (Handle rustc version output correctly when `clippy-driver` used) + +<<<<<<< HEAD + let output = cmd + .arg("--version") + .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()) + ); +||||||| parent of 18b8da967 (Handle rustc version output correctly when `clippy-driver` used) + let output = cmd + .arg("--version") + .output() + .expect("Failed to get rustc version"); + if !output.status.success() { + panic!( + "failed to run rustc: {}", + String::from_utf8_lossy(output.stderr.as_slice()) + ); +======= + if otry!(str::from_utf8(&output.stdout).ok()).starts_with("clippy") { + output = rustc_version_cmd(true); +>>>>>>> 18b8da967 (Handle rustc version output correctly when `clippy-driver` used) + } + + let version = otry!(str::from_utf8(&output.stdout).ok()); + + let mut pieces = version.split('.'); + + if pieces.next() != Some("rustc 1") { + panic!("Failed to get rustc version"); + } + + let minor = pieces.next(); + + // If `rustc` was built from a tarball, its version string + // will have neither a git hash nor a commit date + // (e.g. "rustc 1.39.0"). Treat this case as non-nightly, + // since a nightly build should either come from CI + // or a git checkout + let nightly_raw = otry!(pieces.next()).split('-').nth(1); + let nightly = nightly_raw + .map(|raw| raw.starts_with("dev") || raw.starts_with("nightly")) + .unwrap_or(false); + let minor = otry!(otry!(minor).parse().ok()); + + (minor, nightly) +} + +fn which_freebsd() -> Option { + let output = std::process::Command::new("freebsd-version").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 stdout = stdout.unwrap(); + + match &stdout { + s if s.starts_with("10") => Some(10), + s if s.starts_with("11") => Some(11), + 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 { + 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); +} diff --git a/build.rs b/build.rs index bfc1f63e6ff9e..ce4541e62955c 100644 --- a/build.rs +++ b/build.rs @@ -197,10 +197,10 @@ fn main() { /// Run `rustc --version` and capture the output, adjusting arguments as needed if `clippy-driver` /// is used instead. fn rustc_version_cmd(is_clippy_driver: bool) -> Output { - let rustc_wrapper = env::var_os("RUSTC_WRAPPER").filter(|w| !w.is_empty()); let rustc = env::var_os("RUSTC").expect("Failed to get rustc version: missing RUSTC env"); - let mut cmd = match rustc_wrapper { + let mut cmd = match env::var_os("RUSTC_WRAPPER") { + Some(ref wrapper) if wrapper.is_empty() => Command::new(rustc), Some(wrapper) => { let mut cmd = Command::new(wrapper); cmd.arg(rustc); From 28bb64b1fe678ca090f9af08d786949d53285940 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 17 Sep 2024 18:04:07 +0200 Subject: [PATCH 0141/1228] Remove temporary file that was added by accident (backport ) (cherry picked from commit ea9548ae341631a38b6486b4f6991350400176aa) --- build-tmp.rs | 374 --------------------------------------------------- 1 file changed, 374 deletions(-) delete mode 100644 build-tmp.rs diff --git a/build-tmp.rs b/build-tmp.rs deleted file mode 100644 index 101f45ac262e9..0000000000000 --- a/build-tmp.rs +++ /dev/null @@ -1,374 +0,0 @@ -use std::env; -use std::ffi::{OsStr, OsString}; -use std::process::{Command, Output}; -use std::str; - -// List of cfgs this build script is allowed to set. The list is needed to support check-cfg, as we -// need to know all the possible cfgs that this script will set. If you need to set another cfg -// make sure to add it to this list as well. -const ALLOWED_CFGS: &'static [&'static str] = &[ - "emscripten_new_stat_abi", - "espidf_time64", - "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", - "libc_ctest", -]; - -// Extra values to allow for check-cfg. -const CHECK_CFG_EXTRA: &'static [(&'static str, &'static [&'static str])] = &[ - ("target_os", &["switch", "aix", "ohos", "hurd", "visionos"]), - ("target_env", &["illumos", "wasi", "aix", "ohos"]), - ( - "target_arch", - &["loongarch64", "mips32r6", "mips64r6", "csky"], - ), -]; - -fn main() { - // Avoid unnecessary re-building. - println!("cargo:rerun-if-changed=build.rs"); - - let (rustc_minor_ver, is_nightly) = rustc_minor_nightly(); - let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); - let 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() || rustc_minor_ver >= 80; - - if env::var("CARGO_FEATURE_USE_STD").is_ok() { - println!( - "cargo:warning=\"libc's use_std cargo feature is deprecated since libc 0.2.55; \ - please consider using the `std` cargo feature instead\"" - ); - } - - // 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. - let which_freebsd = if libc_ci { - which_freebsd().unwrap_or(11) - } else if rustc_dep_of_std { - 12 - } else { - 11 - }; - match which_freebsd { - x if x < 10 => panic!("FreeBSD older than 10 is not supported"), - 10 => set_cfg("freebsd10"), - 11 => set_cfg("freebsd11"), - 12 => set_cfg("freebsd12"), - 13 => set_cfg("freebsd13"), - 14 => set_cfg("freebsd14"), - _ => set_cfg("freebsd15"), - } - - 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 { - set_cfg("libc_deny_warnings"); - } - - // Rust >= 1.15 supports private module use: - if rustc_minor_ver >= 15 || rustc_dep_of_std { - set_cfg("libc_priv_mod_use"); - } - - // Rust >= 1.19 supports unions: - if rustc_minor_ver >= 19 || rustc_dep_of_std { - set_cfg("libc_union"); - } - - // Rust >= 1.24 supports const mem::size_of: - if rustc_minor_ver >= 24 || rustc_dep_of_std { - set_cfg("libc_const_size_of"); - } - - // Rust >= 1.25 supports repr(align): - if rustc_minor_ver >= 25 || rustc_dep_of_std || align_cargo_feature { - set_cfg("libc_align"); - } - - // Rust >= 1.26 supports i128 and u128: - if rustc_minor_ver >= 26 || rustc_dep_of_std { - 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 { - 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 { - 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 { - 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 { - 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 { - set_cfg("libc_underscore_const_names"); - } - - // #[thread_local] is currently unstable - if rustc_dep_of_std { - set_cfg("libc_thread_local"); - } - - // Rust >= 1.62.0 allows to use `const_extern_fn` for "Rust" and "C". - if rustc_minor_ver >= 62 { - 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"); - } - 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); - } - } - } -} - -fn rustc_version_cmd(is_clippy_driver: bool) -> Output { - let rustc_wrapper = env::var_os("RUSTC_WRAPPER").filter(|w| !w.is_empty()); - let rustc = env::var_os("RUSTC").expect("Failed to get rustc version: missing RUSTC env"); - - let mut cmd = if let Some(wrapper) = rustc_wrapper { - let mut cmd = Command::new(wrapper); - cmd.arg(rustc); - if is_clippy_driver { - cmd.arg("--rustc"); - } - - cmd - } else { - Command::new(rustc) - }; - - cmd.arg("--version"); - - let output = cmd.output().expect("Failed to get rustc version"); - - if !output.status.success() { - panic!( - "failed to run rustc: {}", - String::from_utf8_lossy(output.stderr.as_slice()) - ); - } - - output -} - -fn rustc_minor_nightly() -> (u32, bool) { - macro_rules! otry { - ($e:expr) => { - match $e { - Some(e) => e, - None => panic!("Failed to get rustc version"), - } - }; - } - -<<<<<<< HEAD - let rustc = env::var_os("RUSTC").expect("Failed to get rustc version: missing RUSTC env"); - let mut cmd = match env::var_os("RUSTC_WRAPPER").as_ref() { - Some(wrapper) if !wrapper.is_empty() => { - let mut cmd = Command::new(wrapper); - cmd.arg(rustc); - cmd - } - _ => Command::new(rustc), - }; -||||||| parent of 18b8da967 (Handle rustc version output correctly when `clippy-driver` used) - let rustc = env::var_os("RUSTC").expect("Failed to get rustc version: missing RUSTC env"); - let mut cmd = if let Some(wrapper) = env::var_os("RUSTC_WRAPPER").filter(|w| !w.is_empty()) { - let mut cmd = Command::new(wrapper); - cmd.arg(rustc); - cmd - } else { - Command::new(rustc) - }; -======= - let mut output = rustc_version_cmd(false); ->>>>>>> 18b8da967 (Handle rustc version output correctly when `clippy-driver` used) - -<<<<<<< HEAD - let output = cmd - .arg("--version") - .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()) - ); -||||||| parent of 18b8da967 (Handle rustc version output correctly when `clippy-driver` used) - let output = cmd - .arg("--version") - .output() - .expect("Failed to get rustc version"); - if !output.status.success() { - panic!( - "failed to run rustc: {}", - String::from_utf8_lossy(output.stderr.as_slice()) - ); -======= - if otry!(str::from_utf8(&output.stdout).ok()).starts_with("clippy") { - output = rustc_version_cmd(true); ->>>>>>> 18b8da967 (Handle rustc version output correctly when `clippy-driver` used) - } - - let version = otry!(str::from_utf8(&output.stdout).ok()); - - let mut pieces = version.split('.'); - - if pieces.next() != Some("rustc 1") { - panic!("Failed to get rustc version"); - } - - let minor = pieces.next(); - - // If `rustc` was built from a tarball, its version string - // will have neither a git hash nor a commit date - // (e.g. "rustc 1.39.0"). Treat this case as non-nightly, - // since a nightly build should either come from CI - // or a git checkout - let nightly_raw = otry!(pieces.next()).split('-').nth(1); - let nightly = nightly_raw - .map(|raw| raw.starts_with("dev") || raw.starts_with("nightly")) - .unwrap_or(false); - let minor = otry!(otry!(minor).parse().ok()); - - (minor, nightly) -} - -fn which_freebsd() -> Option { - let output = std::process::Command::new("freebsd-version").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 stdout = stdout.unwrap(); - - match &stdout { - s if s.starts_with("10") => Some(10), - s if s.starts_with("11") => Some(11), - 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 { - 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); -} From 7373a1abe57da20efae9fd2ca891d7b905c19e03 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 24 Sep 2024 14:19:24 +0000 Subject: [PATCH 0142/1228] chore: release (#3862) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Trevor Gross --- CHANGELOG.md | 31 +++++++++++++++++++++++++++++++ Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5ac00205b010..01c340acaa11f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,37 @@ ## [Unreleased] +## [0.2.159](https://github.com/rust-lang/libc/compare/0.2.158...0.2.159) - 2024-09-24 + +### Added + +- Android: add more `AT_*` constants in +- Apple: add missing `NOTE_*` constants in +- Hermit: add missing error numbers in +- Hurd: add `__timeval` for 64-bit support in +- Linux: add `epoll_pwait2` in +- Linux: add `mq_notify` in +- Linux: add missing `NFT_CT_*` constants in +- Linux: add the `fchmodat2` syscall in +- Linux: add the `mseal` syscall in +- OpenBSD: add `sendmmsg` and `recvmmsg` in +- Unix: add `IN6ADDR_ANY_INIT` and `IN6ADDR_LOOPBACK_INIT` in +- VxWorks: add `S_ISVTX` in +- VxWorks: add `vxCpuLib` and `taskLib` functions +- WASIp2: add definitions for `std::net` support in + +### Fixed + +- Correctly handle version checks when `clippy-driver` is used + +### Changed + +- EspIdf: change signal constants to c_int in +- HorizonOS: update network definitions in +- Linux: combine `ioctl` APIs in +- WASI: enable CI testing in +- WASIp2: enable CI testing in + ## [0.2.158](https://github.com/rust-lang/libc/compare/0.2.157...0.2.158) - 2024-08-19 ### Other diff --git a/Cargo.toml b/Cargo.toml index 8fe2ad6badabf..3ca0827a37aed 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.158" +version = "0.2.159" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 033458e8bd5de..8f25c7f2ca9d9 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -14,7 +14,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.158" +version = "0.2.159" default-features = false [build-dependencies] From b9e8477fa7c71408bdbc1eed9821af0783f97bdb Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Tue, 24 Sep 2024 18:52:21 -0600 Subject: [PATCH 0143/1228] Fix "struct stat" on 32-bit FreeBSD 12+ (#3939) * Fix the definition of ino_t on 32-bit FreeBSD 12+ Commit 7437d0a6f1 erroneously defined it as "ulong" instead of u64. Nobody noticed the mistake, probably because it was only tested on 64-bit architectures, where those are equivalent. But it's a problem now, after #3723 , which switched the standard library to a FreeBSD 12 ABI. Issue https://github.com/rust-lang/rust/issues/130677 * Fix the definition of "struct stat" on 32-bit FreeBSD 12+ The original definitions were never correct. But nobody noticed because we don't do CI on 32-bit FreeBSD. The problem is apparent now due to #3723 , which caused the nightly toolchain to switch to a FreeBSD 12 ABI. Fixes https://github.com/rust-lang/rust/issues/130677 * fixup: fix build on powerpc, powerpc64, and arm --- src/unix/bsd/freebsdlike/freebsd/arm.rs | 30 ------------- .../{freebsd12/b64.rs => freebsd11/b32.rs} | 13 +++--- .../bsd/freebsdlike/freebsd/freebsd11/mod.rs | 9 ++-- .../bsd/freebsdlike/freebsd/freebsd12/mod.rs | 45 ++++++++++++++----- .../bsd/freebsdlike/freebsd/freebsd13/b64.rs | 34 -------------- .../bsd/freebsdlike/freebsd/freebsd13/mod.rs | 45 ++++++++++++++----- .../bsd/freebsdlike/freebsd/freebsd14/b64.rs | 34 -------------- .../bsd/freebsdlike/freebsd/freebsd14/mod.rs | 45 ++++++++++++++----- .../bsd/freebsdlike/freebsd/freebsd15/b64.rs | 34 -------------- .../bsd/freebsdlike/freebsd/freebsd15/mod.rs | 45 ++++++++++++++----- src/unix/bsd/freebsdlike/freebsd/powerpc.rs | 26 ----------- src/unix/bsd/freebsdlike/freebsd/powerpc64.rs | 26 ----------- src/unix/bsd/freebsdlike/freebsd/x86.rs | 25 ----------- 13 files changed, 151 insertions(+), 260 deletions(-) rename src/unix/bsd/freebsdlike/freebsd/{freebsd12/b64.rs => freebsd11/b32.rs} (89%) delete mode 100644 src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs delete mode 100644 src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs delete mode 100644 src/unix/bsd/freebsdlike/freebsd/freebsd15/b64.rs diff --git a/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/unix/bsd/freebsdlike/freebsd/arm.rs index 300b3dd45ca9d..8ff500c65981c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/arm.rs +++ b/src/unix/bsd/freebsdlike/freebsd/arm.rs @@ -6,36 +6,6 @@ pub type time_t = i64; pub type suseconds_t = i32; pub type register_t = i32; -s! { - 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_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_atime_pad: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_mtime_pad: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_ctime_pad: ::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: u32, - pub st_lspare: i32, - pub st_birthtime: ::time_t, - pub st_birthtime_nsec: ::c_long, - pub st_birthtime_pad: ::c_long, - } -} - // should be pub(crate), but that requires Rust 1.18.0 cfg_if! { if #[cfg(libc_const_size_of)] { diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs similarity index 89% rename from src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs rename to src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs index 80c6fa1684530..5c1156581fd61 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs @@ -3,12 +3,10 @@ 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_nlink: ::nlink_t, 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, @@ -16,14 +14,15 @@ pub struct stat { 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], + pub st_gen: u32, + pub st_lspare: i32, + pub st_birthtime: ::time_t, + pub st_birthtime_nsec: ::c_long, + __unused: [u8; 8], } impl ::Copy for ::stat {} diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs index de34069eabdf2..e416ebf745841 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs @@ -4,7 +4,7 @@ pub type nlink_t = u16; // Type of `dev_t` changed from `u32` to `u64` in FreeBSD 12: pub type dev_t = u32; -// Type of `ino_t` changed from `unsigned int` to `unsigned long` in FreeBSD 12: +// Type of `ino_t` changed from `__uint32_t` to `__uint64_t` in FreeBSD 12: pub type ino_t = u32; s! { @@ -479,10 +479,11 @@ extern "C" { } cfg_if! { - if #[cfg(any(target_arch = "x86_64", - target_arch = "aarch64", - target_arch = "riscv64"))] { + if #[cfg(target_pointer_width = "64")] { mod b64; pub use self::b64::*; + } else { + mod b32; + pub use self::b32::*; } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index 10fcaa03a4ef6..c4431a6458e8f 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -2,7 +2,7 @@ pub type nlink_t = u64; pub type dev_t = u64; -pub type ino_t = ::c_ulong; +pub type ino_t = u64; pub type shmatt_t = ::c_uint; s! { @@ -218,6 +218,40 @@ s! { /// kthread flag. pub ki_tdflags: ::c_long, } + + 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, + #[cfg(target_arch = "x86")] + st_atim_ext: i32, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + #[cfg(target_arch = "x86")] + st_mtim_ext: i32, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + #[cfg(target_arch = "x86")] + st_ctim_ext: i32, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + #[cfg(target_arch = "x86")] + st_btim_ext: i32, + 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], + } } s_no_extra_traits! { @@ -488,15 +522,6 @@ extern "C" { pub fn basename(path: *mut ::c_char) -> *mut ::c_char; } -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; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs deleted file mode 100644 index 80c6fa1684530..0000000000000 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs +++ /dev/null @@ -1,34 +0,0 @@ -#[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 - } -} diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs index ec6bce2a03091..118404e8b089b 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -2,7 +2,7 @@ pub type nlink_t = u64; pub type dev_t = u64; -pub type ino_t = ::c_ulong; +pub type ino_t = u64; pub type shmatt_t = ::c_uint; pub type kpaddr_t = u64; pub type kssize_t = i64; @@ -228,6 +228,40 @@ s! { /// kthread flag. pub ki_tdflags: ::c_long, } + + 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, + #[cfg(target_arch = "x86")] + st_atim_ext: i32, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + #[cfg(target_arch = "x86")] + st_mtim_ext: i32, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + #[cfg(target_arch = "x86")] + st_ctim_ext: i32, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + #[cfg(target_arch = "x86")] + st_btim_ext: i32, + 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], + } } s_no_extra_traits! { @@ -529,15 +563,6 @@ 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; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs deleted file mode 100644 index 80c6fa1684530..0000000000000 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs +++ /dev/null @@ -1,34 +0,0 @@ -#[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 - } -} diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index 160a4baae481b..e624dd7201b0a 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -2,7 +2,7 @@ pub type nlink_t = u64; pub type dev_t = u64; -pub type ino_t = ::c_ulong; +pub type ino_t = u64; pub type shmatt_t = ::c_uint; pub type kpaddr_t = u64; pub type kssize_t = i64; @@ -228,6 +228,40 @@ s! { /// kthread flag. pub ki_tdflags: ::c_long, } + + 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, + #[cfg(target_arch = "x86")] + st_atim_ext: i32, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + #[cfg(target_arch = "x86")] + st_mtim_ext: i32, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + #[cfg(target_arch = "x86")] + st_ctim_ext: i32, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + #[cfg(target_arch = "x86")] + st_btim_ext: i32, + 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], + } } s_no_extra_traits! { @@ -529,15 +563,6 @@ 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; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/b64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/b64.rs deleted file mode 100644 index 80c6fa1684530..0000000000000 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/b64.rs +++ /dev/null @@ -1,34 +0,0 @@ -#[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 - } -} diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index d73215a68ec33..a299af7d5d53e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -2,7 +2,7 @@ pub type nlink_t = u64; pub type dev_t = u64; -pub type ino_t = ::c_ulong; +pub type ino_t = u64; pub type shmatt_t = ::c_uint; pub type kpaddr_t = u64; pub type kssize_t = i64; @@ -228,6 +228,40 @@ s! { /// kthread flag. pub ki_tdflags: ::c_long, } + + 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, + #[cfg(target_arch = "x86")] + st_atim_ext: i32, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + #[cfg(target_arch = "x86")] + st_mtim_ext: i32, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + #[cfg(target_arch = "x86")] + st_ctim_ext: i32, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + #[cfg(target_arch = "x86")] + st_btim_ext: i32, + 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], + } } s_no_extra_traits! { @@ -529,15 +563,6 @@ 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; diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs index a0120c337e0ad..f84062ba34b93 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs @@ -6,32 +6,6 @@ pub type time_t = i64; pub type suseconds_t = i32; pub type register_t = i32; -s! { - 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_uid: ::uid_t, - pub st_gid: ::gid_t, - 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_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: ::blksize_t, - pub st_flags: ::fflags_t, - pub st_gen: u32, - pub st_lspare: i32, - pub st_birthtime: ::time_t, - pub st_birthtime_nsec: ::c_long, - } -} - // should be pub(crate), but that requires Rust 1.18.0 cfg_if! { if #[cfg(libc_const_size_of)] { diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs index 7f5b9752264e3..69cf4c5fc88c7 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs @@ -6,32 +6,6 @@ pub type time_t = i64; pub type suseconds_t = i64; pub type register_t = i64; -s! { - 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_uid: ::uid_t, - pub st_gid: ::gid_t, - 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_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: ::blksize_t, - pub st_flags: ::fflags_t, - pub st_gen: u32, - pub st_lspare: i32, - pub st_birthtime: ::time_t, - pub st_birthtime_nsec: ::c_long, - } -} - // should be pub(crate), but that requires Rust 1.18.0 cfg_if! { if #[cfg(libc_const_size_of)] { diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index c3c576ed66681..31a660e7d0a22 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -42,31 +42,6 @@ s_no_extra_traits! { } s! { - 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_uid: ::uid_t, - pub st_gid: ::gid_t, - 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_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: ::blksize_t, - pub st_flags: ::fflags_t, - pub st_gen: u32, - pub st_lspare: i32, - pub st_birthtime: ::time_t, - pub st_birthtime_nsec: ::c_long, - __unused: [u8; 8], - } - pub struct ucontext_t { pub uc_sigmask: ::sigset_t, pub uc_mcontext: ::mcontext_t, From 377c52aeb28dfdcfd80bf0ef48858fecaf9a1bb4 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Mon, 30 Sep 2024 10:10:36 -0600 Subject: [PATCH 0144/1228] Fix CI for FreeBSD 15, on libc-0.2 branch (#3952) It was failing for two reasons: * 87fbd9fc71[^1] removed the TCP_MAXPEAKRATE symbol. * 3458bbd392[^2] changed the value of RLIM_NLIMITS This is effectively a merge of #3950 (commit 590d78d) from the main branch. Fixes #3947 [^1]: https://github.com/freebsd/freebsd-src/commit/87fbd9fc7fc5f8d79fe5e3dcd13ad02b11a67ef0 [^2]: https://github.com/freebsd/freebsd-src/commit/3458bbd397783f3bb62713c54ae87f19eeb98dc0 --- libc-test/build.rs | 8 +++++++- src/unix/bsd/freebsdlike/freebsd/mod.rs | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 75dcd14fc83be..b6472b4ea56a8 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2338,6 +2338,9 @@ fn test_freebsd(target: &str) { // base system anyway. "CTL_MAXID" | "KERN_MAXID" | "HW_MAXID" | "USER_MAXID" => true, + // Deprecated and removed in FreeBSD 15. It was never actually implemented. + "TCP_MAXPEAKRATE" => true, + // FIXME: This is deprecated - remove in a couple of releases. // This was removed in FreeBSD 14 (git 1b4701fe1e8) and never // should've been used anywhere anyway. @@ -2364,6 +2367,10 @@ fn test_freebsd(target: &str) { | "PWAIT" | "PLOCK" | "PPAUSE" | "PRI_MIN_TIMESHARE" | "PUSER" | "PI_AV" | "PI_NET" | "PI_DISK" | "PI_TTY" | "PI_DULL" | "PI_SOFT" => true, + // This constant changed in FreeBSD 15 (git 3458bbd397783). It was never intended to + // be stable, and probably shouldn't be bound by libc at all. + "RLIM_NLIMITS" => true, + // This symbol changed in FreeBSD 14 (git 051e7d78b03), but the new // version should be safe to use on older releases. "IFCAP_CANTCHANGE" => true, @@ -2494,7 +2501,6 @@ fn test_freebsd(target: &str) { // Flags introduced in FreeBSD 14. "TCP_MAXUNACKTIME" - | "TCP_MAXPEAKRATE" | "TCP_IDLE_REDUCE" | "TCP_REMOTE_UDP_ENCAPS_PORT" | "TCP_DELACK" diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 47b4bd36e6d02..3224ac8fef6e9 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -3843,6 +3843,7 @@ pub const TCP_INFO: ::c_int = 32; pub const TCP_CONGESTION: ::c_int = 64; pub const TCP_CCALGOOPT: ::c_int = 65; pub const TCP_MAXUNACKTIME: ::c_int = 68; +#[deprecated(since = "0.2.160", note = "Removed in FreeBSD 15")] pub const TCP_MAXPEAKRATE: ::c_int = 69; pub const TCP_IDLE_REDUCE: ::c_int = 70; pub const TCP_REMOTE_UDP_ENCAPS_PORT: ::c_int = 71; From 42d1000bc82fc608749f9df19f3d699d2b548ed6 Mon Sep 17 00:00:00 2001 From: Nathaniel Bennett Date: Tue, 1 Oct 2024 00:17:32 -0400 Subject: [PATCH 0145/1228] Add additional Linux AF_PACKET options (#3540) --- libc-test/build.rs | 19 ++- libc-test/semver/linux.txt | 62 ++++++++ src/unix/linux_like/linux/align.rs | 18 +++ src/unix/linux_like/linux/mod.rs | 206 ++++++++++++++++++++++++++ src/unix/linux_like/linux/no_align.rs | 18 +++ 5 files changed, 322 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index b6472b4ea56a8..ca1301320b211 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3451,7 +3451,6 @@ fn test_linux(target: &str) { "netinet/ip.h", "netinet/tcp.h", "netinet/udp.h", - "netpacket/packet.h", "poll.h", "pthread.h", "pty.h", @@ -3554,6 +3553,7 @@ fn test_linux(target: &str) { "linux/if_addr.h", "linux/if_alg.h", "linux/if_ether.h", + "linux/if_packet.h", "linux/if_tun.h", "linux/if_xdp.h", "linux/input.h", @@ -3730,6 +3730,23 @@ fn test_linux(target: &str) { if (gnu && sparc64) && (ty == "ip_mreqn" || ty == "hwtstamp_config") { return true; } + // FIXME(https://github.com/rust-lang/rust/issues/43894): pass by value for structs that are not an even 32/64 bits on + // big-endian systems corrupts the value for unknown reasons. + if (sparc64 || ppc || ppc64 || s390x) + && (ty == "sockaddr_pkt" + || ty == "tpacket_auxdata" + || ty == "tpacket_hdr_variant1" + || ty == "tpacket_req3" + || ty == "tpacket_stats_v3" + || ty == "tpacket_req_u") + { + return true; + } + // FIXME: musl doesn't compile with `struct fanout_args` for unknown reasons. + if musl && ty == "fanout_args" { + return true; + } + match ty { // These cannot be tested when "resolv.h" is included and are tested // in the `linux_elf.rs` file. diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 0bee4e68c16ae..ebbe04d1b7262 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1805,11 +1805,38 @@ O_RSYNC O_SYNC O_TMPFILE PACKET_ADD_MEMBERSHIP +PACKET_AUXDATA +PACKET_BROADCAST PACKET_DROP_MEMBERSHIP +PACKET_FANOUT +PACKET_FANOUT_CBPF +PACKET_FANOUT_CPU +PACKET_FANOUT_FLAG_DEFRAG +PACKET_FANOUT_FLAG_ROLLOVER +PACKET_FANOUT_FLAG_UNIQUEID +PACKET_FANOUT_HASH +PACKET_FANOUT_LB +PACKET_FANOUT_QM +PACKET_FANOUT_RND +PACKET_FANOUT_ROLLOVER +PACKET_HOST +PACKET_KERNEL +PACKET_LOOPBACK +PACKET_LOSS PACKET_MR_ALLMULTI PACKET_MR_MULTICAST PACKET_MR_PROMISC PACKET_MR_UNICAST +PACKET_MULTICAST +PACKET_OTHERHOST +PACKET_OUTGOING +PACKET_QDISC_BYPASS +PACKET_RESERVE +PACKET_RX_RING +PACKET_STATISTICS +PACKET_TIMESTAMP +PACKET_USER +PACKET_VERSION PENDIN PF_ALG PF_APPLETALK @@ -3195,6 +3222,23 @@ TLS_GET_RECORD_TYPE TLS_RX TLS_SET_RECORD_TYPE TLS_TX +TP_FT_REQ_FILL_RXHASH +TP_STATUS_AVAILABLE +TP_STATUS_BLK_TMO +TP_STATUS_COPY +TP_STATUS_CSUMNOTREADY +TP_STATUS_CSUM_VALID +TP_STATUS_KERNEL +TP_STATUS_LOSING +TP_STATUS_SENDING +TP_STATUS_SEND_REQUEST +TP_STATUS_TS_RAW_HARDWARE +TP_STATUS_TS_SOFTWARE +TP_STATUS_TS_SYS_HARDWARE +TP_STATUS_USER +TP_STATUS_VLAN_TPID_VALID +TP_STATUS_VLAN_VALID +TP_STATUS_WRONG_FORMAT TUN_READQ_SIZE TUN_TAP_DEV TUN_TUN_DEV @@ -3457,6 +3501,7 @@ fanotify_event_metadata fanotify_init fanotify_mark fanotify_response +fanout_args fchdir fdatasync fdopendir @@ -3825,6 +3870,7 @@ sockaddr_alg sockaddr_can sockaddr_ll sockaddr_nl +sockaddr_pkt sockaddr_vm splice spwd @@ -3862,6 +3908,22 @@ timer_getoverrun timer_gettime timer_settime tmpfile64 +tpacket2_hdr +tpacket3_hdr +tpacket_auxdata +tpacket_bd_header_u +tpacket_bd_ts +tpacket_block_desc +tpacket_hdr +tpacket_hdr_v1 +tpacket_hdr_variant1 +tpacket_req +tpacket_req3 +tpacket_req_u +tpacket_rollover_stats +tpacket_stats +tpacket_stats_v3 +tpacket_versions truncate truncate64 ttyname_r diff --git a/src/unix/linux_like/linux/align.rs b/src/unix/linux_like/linux/align.rs index 1036e23dc8f09..bd16e449bb22c 100644 --- a/src/unix/linux_like/linux/align.rs +++ b/src/unix/linux_like/linux/align.rs @@ -63,6 +63,24 @@ macro_rules! expand_align { pub fd: ::c_int, pub pid: ::c_int, } + + #[repr(align(8))] + pub struct tpacket_rollover_stats { + pub tp_all: ::__u64, + pub tp_huge: ::__u64, + pub tp_failed: ::__u64, + } + + #[repr(align(8))] + pub struct tpacket_hdr_v1 { + pub block_status: ::__u32, + pub num_pkts: ::__u32, + pub offset_to_first_pkt: ::__u32, + pub blk_len: ::__u32, + pub seq_num: ::__u64, + pub ts_first_pkt: ::tpacket_bd_ts, + pub ts_last_pkt: ::tpacket_bd_ts, + } } s_no_extra_traits! { diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 1973b3f574efa..a7815ddfc3c14 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -58,6 +58,15 @@ missing! { pub enum fpos64_t {} // FIXME: fill this out with a struct } +e! { + #[repr(u32)] + pub enum tpacket_versions { + TPACKET_V1, + TPACKET_V2, + TPACKET_V3, + } +} + s! { pub struct glob_t { pub gl_pathc: ::size_t, @@ -140,6 +149,15 @@ s! { __val: [::c_int; 2], } + pub struct fanout_args { + #[cfg(target_endian = "little")] + pub id: ::__u16, + pub type_flags: ::__u16, + #[cfg(target_endian = "big")] + pub id: ::__u16, + pub max_num_members: ::__u32, + } + pub struct packet_mreq { pub mr_ifindex: ::c_int, pub mr_type: ::c_ushort, @@ -147,6 +165,98 @@ s! { pub mr_address: [::c_uchar; 8], } + pub struct sockaddr_pkt { + pub spkt_family: ::c_ushort, + pub spkt_device: [::c_uchar; 14], + pub spkt_protocol: ::c_ushort, + } + + pub struct tpacket_auxdata { + pub tp_status: ::__u32, + pub tp_len: ::__u32, + pub tp_snaplen: ::__u32, + pub tp_mac: ::__u16, + pub tp_net: ::__u16, + pub tp_vlan_tci: ::__u16, + pub tp_vlan_tpid: ::__u16, + } + + pub struct tpacket_hdr { + pub tp_status: ::c_ulong, + pub tp_len: ::c_uint, + pub tp_snaplen: ::c_uint, + pub tp_mac: ::c_ushort, + pub tp_net: ::c_ushort, + pub tp_sec: ::c_uint, + pub tp_usec: ::c_uint, + } + + pub struct tpacket_hdr_variant1 { + pub tp_rxhash: ::__u32, + pub tp_vlan_tci: ::__u32, + pub tp_vlan_tpid: ::__u16, + pub tp_padding: ::__u16, + } + + pub struct tpacket2_hdr { + pub tp_status: ::__u32, + pub tp_len: ::__u32, + pub tp_snaplen: ::__u32, + pub tp_mac: ::__u16, + pub tp_net: ::__u16, + pub tp_sec: ::__u32, + pub tp_nsec: ::__u32, + pub tp_vlan_tci: ::__u16, + pub tp_vlan_tpid: ::__u16, + pub tp_padding: [::__u8; 4], + } + + pub struct tpacket_req { + pub tp_block_size: ::c_uint, + pub tp_block_nr: ::c_uint, + pub tp_frame_size: ::c_uint, + pub tp_frame_nr: ::c_uint, + } + + pub struct tpacket_req3 { + pub tp_block_size: ::c_uint, + pub tp_block_nr: ::c_uint, + pub tp_frame_size: ::c_uint, + pub tp_frame_nr: ::c_uint, + pub tp_retire_blk_tov: ::c_uint, + pub tp_sizeof_priv: ::c_uint, + pub tp_feature_req_word: ::c_uint, + } + + pub struct tpacket_stats { + pub tp_packets: ::c_uint, + pub tp_drops: ::c_uint, + } + + pub struct tpacket_stats_v3 { + pub tp_packets: ::c_uint, + pub tp_drops: ::c_uint, + pub tp_freeze_q_cnt: ::c_uint, + } + + pub struct tpacket3_hdr { + pub tp_next_offset: ::__u32, + pub tp_sec: ::__u32, + pub tp_nsec: ::__u32, + pub tp_snaplen: ::__u32, + pub tp_len: ::__u32, + pub tp_status: ::__u32, + pub tp_mac: ::__u16, + pub tp_net: ::__u16, + pub hv1: ::tpacket_hdr_variant1, + pub tp_padding: [::__u8; 8], + } + + pub struct tpacket_bd_ts { + pub ts_sec: ::c_uint, + pub ts_usec: ::c_uint, + } + pub struct cpu_set_t { #[cfg(all(target_pointer_width = "32", not(target_arch = "x86_64")))] @@ -890,6 +1000,27 @@ s_no_extra_traits! { pub sched_deadline: ::__u64, pub sched_period: ::__u64, } + + #[cfg(libc_union)] + #[allow(missing_debug_implementations)] + pub union tpacket_req_u { + pub req: ::tpacket_req, + pub req3: ::tpacket_req3, + } + + #[cfg(libc_union)] + #[allow(missing_debug_implementations)] + pub union tpacket_bd_header_u { + pub bh1: ::tpacket_hdr_v1, + } + + #[cfg(libc_union)] + #[allow(missing_debug_implementations)] + pub struct tpacket_block_desc { + pub version: ::__u32, + pub offset_to_priv: ::__u32, + pub hdr: ::tpacket_bd_header_u, + } } s_no_extra_traits! { @@ -2825,13 +2956,84 @@ pub const CTRL_ATTR_MCAST_GRP_NAME: ::c_int = 1; pub const CTRL_ATTR_MCAST_GRP_ID: ::c_int = 2; // linux/if_packet.h +pub const PACKET_HOST: ::c_uchar = 0; +pub const PACKET_BROADCAST: ::c_uchar = 1; +pub const PACKET_MULTICAST: ::c_uchar = 2; +pub const PACKET_OTHERHOST: ::c_uchar = 3; +pub const PACKET_OUTGOING: ::c_uchar = 4; +pub const PACKET_LOOPBACK: ::c_uchar = 5; +pub const PACKET_USER: ::c_uchar = 6; +pub const PACKET_KERNEL: ::c_uchar = 7; + pub const PACKET_ADD_MEMBERSHIP: ::c_int = 1; pub const PACKET_DROP_MEMBERSHIP: ::c_int = 2; +pub const PACKET_RX_RING: ::c_int = 5; +pub const PACKET_STATISTICS: ::c_int = 6; +pub const PACKET_AUXDATA: ::c_int = 8; +pub const PACKET_VERSION: ::c_int = 10; +pub const PACKET_RESERVE: ::c_int = 12; +pub const PACKET_TX_RING: ::c_int = 13; +pub const PACKET_LOSS: ::c_int = 14; +pub const PACKET_TIMESTAMP: ::c_int = 17; +pub const PACKET_FANOUT: ::c_int = 18; +pub const PACKET_QDISC_BYPASS: ::c_int = 20; + +pub const PACKET_FANOUT_HASH: ::c_uint = 0; +pub const PACKET_FANOUT_LB: ::c_uint = 1; +pub const PACKET_FANOUT_CPU: ::c_uint = 2; +pub const PACKET_FANOUT_ROLLOVER: ::c_uint = 3; +pub const PACKET_FANOUT_RND: ::c_uint = 4; +pub const PACKET_FANOUT_QM: ::c_uint = 5; +pub const PACKET_FANOUT_CBPF: ::c_uint = 6; +pub const PACKET_FANOUT_EBPF: ::c_uint = 7; +pub const PACKET_FANOUT_FLAG_ROLLOVER: ::c_uint = 0x1000; +pub const PACKET_FANOUT_FLAG_UNIQUEID: ::c_uint = 0x2000; +pub const PACKET_FANOUT_FLAG_DEFRAG: ::c_uint = 0x8000; pub const PACKET_MR_MULTICAST: ::c_int = 0; pub const PACKET_MR_PROMISC: ::c_int = 1; pub const PACKET_MR_ALLMULTI: ::c_int = 2; +pub const TP_STATUS_KERNEL: ::__u32 = 0; +pub const TP_STATUS_USER: ::__u32 = 1 << 0; +pub const TP_STATUS_COPY: ::__u32 = 1 << 1; +pub const TP_STATUS_LOSING: ::__u32 = 1 << 2; +pub const TP_STATUS_CSUMNOTREADY: ::__u32 = 1 << 3; +pub const TP_STATUS_VLAN_VALID: ::__u32 = 1 << 4; +pub const TP_STATUS_BLK_TMO: ::__u32 = 1 << 5; +pub const TP_STATUS_VLAN_TPID_VALID: ::__u32 = 1 << 6; +pub const TP_STATUS_CSUM_VALID: ::__u32 = 1 << 7; + +pub const TP_STATUS_AVAILABLE: ::__u32 = 0; +pub const TP_STATUS_SEND_REQUEST: ::__u32 = 1 << 0; +pub const TP_STATUS_SENDING: ::__u32 = 1 << 1; +pub const TP_STATUS_WRONG_FORMAT: ::__u32 = 1 << 2; + +pub const TP_STATUS_TS_SOFTWARE: ::__u32 = 1 << 29; +pub const TP_STATUS_TS_SYS_HARDWARE: ::__u32 = 1 << 30; +pub const TP_STATUS_TS_RAW_HARDWARE: ::__u32 = 1 << 31; + +pub const TP_FT_REQ_FILL_RXHASH: ::__u32 = 1; + +pub const TPACKET_ALIGNMENT: usize = 16; + +cfg_if! { + if #[cfg(libc_const_size_of)] { + pub const TPACKET_HDRLEN: usize = ( + (::mem::size_of::<::tpacket_hdr>() + TPACKET_ALIGNMENT - 1) + & !(TPACKET_ALIGNMENT - 1) + ) + ::mem::size_of::<::sockaddr_ll>(); + pub const TPACKET2_HDRLEN: usize = ( + (::mem::size_of::<::tpacket2_hdr>() + TPACKET_ALIGNMENT - 1) + & !(TPACKET_ALIGNMENT - 1) + ) + ::mem::size_of::<::sockaddr_ll>(); + pub const TPACKET3_HDRLEN: usize = ( + (::mem::size_of::<::tpacket3_hdr>() + TPACKET_ALIGNMENT - 1) + & !(TPACKET_ALIGNMENT - 1) + ) + ::mem::size_of::<::sockaddr_ll>(); + } +} + // linux/netfilter.h pub const NF_DROP: ::c_int = 0; pub const NF_ACCEPT: ::c_int = 1; @@ -4805,6 +5007,10 @@ f! { ee.offset(1) as *mut ::sockaddr } + pub fn TPACKET_ALIGN(x: usize) -> usize { + (x + TPACKET_ALIGNMENT - 1) & !(TPACKET_ALIGNMENT - 1) + } + pub fn BPF_RVAL(code: ::__u32) -> ::__u32 { code & 0x18 } diff --git a/src/unix/linux_like/linux/no_align.rs b/src/unix/linux_like/linux/no_align.rs index 328a5cc484231..f81d046ccefb1 100644 --- a/src/unix/linux_like/linux/no_align.rs +++ b/src/unix/linux_like/linux/no_align.rs @@ -57,6 +57,24 @@ macro_rules! expand_align { pub fd: ::c_int, pub pid: ::c_int, } + + pub struct tpacket_rollover_stats { + __align: [::c_long; 0], + pub tp_all: ::__u64, + pub tp_huge: ::__u64, + pub tp_failed: ::__u64, + } + + pub struct tpacket_hdr_v1 { + __align: [::c_long; 0], + pub block_status: ::__u32, + pub num_pkts: ::__u32, + pub offset_to_first_pkt: ::__u32, + pub blk_len: ::__u32, + pub seq_num: ::__u64, + pub ts_first_pkt: ::tpacket_bd_ts, + pub ts_last_pkt: ::tpacket_bd_ts, + } } s_no_extra_traits! { From 4da0c1c54950bacd3af8d2ae5b6f67968ab68df1 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Tue, 3 Sep 2024 18:41:58 +0100 Subject: [PATCH 0146/1228] adding tcp_info struct to linux musl/glibc. (backport ) (cherry picked from commit ee0bf577d128b0c155de9f6677429c7eb5cf7398) --- libc-test/build.rs | 12 ++++- libc-test/semver/linux-gnu.txt | 1 + libc-test/semver/linux-musl.txt | 1 + src/unix/linux_like/linux/gnu/mod.rs | 38 +++++++++++++++ src/unix/linux_like/linux/musl/mod.rs | 67 +++++++++++++++++++++++++++ 5 files changed, 118 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index ca1301320b211..754d49cc81554 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4480,7 +4480,17 @@ fn test_linux(target: &str) { // the `ifc_ifcu` field is an anonymous union (struct_ == "ifconf" && field == "ifc_ifcu") || // glibc uses a single array `uregs` instead of individual fields. - (struct_ == "user_regs" && arm) + (struct_ == "user_regs" && arm) || + // the `ifr_ifrn` field is an anonymous union + (struct_ == "iwreq" && field == "ifr_ifrn") || + // the `key` field is a zero-sized array + (struct_ == "iw_encode_ext" && field == "key") || + // the `tcpi_snd_rcv_wscale` map two bitfield fields stored in a u8 + (struct_ == "tcp_info" && field == "tcpi_snd_rcv_wscale") || + // the `tcpi_delivery_rate_app_limited` field is a bitfield on musl + (musl && struct_ == "tcp_info" && field == "tcpi_delivery_rate_app_limited") || + // the `tcpi_fast_open_client_fail` field is a bitfield on musl + (musl && struct_ == "tcp_info" && field == "tcpi_fast_open_client_fail") }); cfg.skip_roundtrip(move |s| match s { diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index ce4f85484eee0..72e993611ce04 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -712,3 +712,4 @@ putgrent execveat close_range epoll_pwait2 +tcp_info diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index 5a48357cb79e5..bb8dbb2f9834e 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -80,6 +80,7 @@ process_vm_writev pwritev2 pwritev64 reallocarray +tcp_info timex euidaccess eaccess diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 75d150c90d58a..c77500cbbfbb1 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -454,6 +454,44 @@ s! { pub aio_flags: ::__u32, pub aio_resfd: ::__u32, } + + // netinet/tcp.h + + 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, + /// This contains the bitfields `tcpi_snd_wscale` and `tcpi_rcv_wscale`. + /// Each is 4 bits. + pub tcpi_snd_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_total_retrans: u32, + } } impl siginfo_t { diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index a4c8f79c35cad..d102d5de2cfed 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -348,6 +348,73 @@ s! { pub len: ::__u32, pub options: ::__u32, } + + // netinet/tcp.h + + 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, + /* + * FIXME(musl): when musl headers are more up to date + /// This contains the bitfields `tcpi_snd_wscale` and `tcpi_rcv_wscale`. + /// Each is 4 bits. + pub tcpi_snd_rcv_wscale: u8, + /// This contains the bitfields `tcpi_delivery_rate_app_limited` (1 bit) and + /// `tcpi_fastopen_client_fail` (2 bits). + pub tcpi_delivery_fastopen_bitfields: 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_total_retrans: u32, + pub tcpi_pacing_rate: u64, + pub tcpi_max_pacing_rate: u64, + pub tcpi_bytes_acked: u64, + pub tcpi_bytes_received: u64, + pub tcpi_segs_out: u32, + pub tcpi_segs_in: u32, + pub tcpi_notsent_bytes: u32, + pub tcpi_min_rtt: u32, + pub tcpi_data_segs_in: u32, + pub tcpi_data_segs_out: u32, + pub tcpi_delivery_rate: u64, + pub tcpi_busy_time: u64, + pub tcpi_rwnd_limited: u64, + pub tcpi_sndbuf_limited: u64, + pub tcpi_delivered: u32, + pub tcpi_delivered_ce: u32, + pub tcpi_bytes_sent: u64, + pub tcpi_bytes_retrans: u64, + pub tcpi_dsack_dups: u32, + pub tcpi_reord_seen: u32, + // FIXME(musl): to uncomment once CI musl is updated + //pub tcpi_rcv_ooopack: u32, + //pub tcpi_snd_wnd: u32, + } } s_no_extra_traits! { From 605aeac50a58d3d0b370a573d2dc28ccd05c17a7 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 11 May 2024 14:18:34 +0100 Subject: [PATCH 0147/1228] adding a handful of linux fanotify data types. close #3688 (backport ) (cherry picked from commit 7b338f9c29a76fc9af7f87141c54d030ce28de6e) --- libc-test/build.rs | 9 ++++++++- libc-test/semver/linux-gnu.txt | 5 ++++- libc-test/semver/linux.txt | 1 + src/unix/linux_like/linux/gnu/mod.rs | 11 +++++++++++ src/unix/linux_like/linux/mod.rs | 27 +++++++++++++++++++++++++++ 5 files changed, 51 insertions(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 754d49cc81554..fb779daecc123 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3746,6 +3746,9 @@ fn test_linux(target: &str) { if musl && ty == "fanout_args" { return true; } + if sparc64 && ty == "fanotify_event_info_error" { + return true; + } match ty { // These cannot be tested when "resolv.h" is included and are tested @@ -4490,7 +4493,11 @@ fn test_linux(target: &str) { // the `tcpi_delivery_rate_app_limited` field is a bitfield on musl (musl && struct_ == "tcp_info" && field == "tcpi_delivery_rate_app_limited") || // the `tcpi_fast_open_client_fail` field is a bitfield on musl - (musl && struct_ == "tcp_info" && field == "tcpi_fast_open_client_fail") + (musl && struct_ == "tcp_info" && field == "tcpi_fast_open_client_fail") || + // either fsid_t or int[2] type + (struct_ == "fanotify_event_info_fid" && field == "fsid") || + // `handle` is a VLA + (struct_ == "fanotify_event_info_fid" && field == "handle") }); cfg.skip_roundtrip(move |s| match s { diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 72e993611ce04..bca6e4fd18ed7 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -628,12 +628,15 @@ dlinfo dlmopen endutxent explicit_bzero +fanotify_event_info_error +fanotify_event_info_header +fanotify_event_info_pidfd +fgetgrent_r fgetspent_r futimes getauxval getentropy getgrent_r -fgetgrent_r getloadavg getpt getpwent_r diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index ebbe04d1b7262..d0b966f4f1085 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -3497,6 +3497,7 @@ execvpe faccessat fallocate fallocate64 +fanotify_event_info_fid fanotify_event_metadata fanotify_init fanotify_mark diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index c77500cbbfbb1..7fd7fb190ca9d 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -492,6 +492,17 @@ s! { pub tcpi_rcv_space: u32, pub tcpi_total_retrans: u32, } + + pub struct fanotify_event_info_pidfd { + pub hdr: ::fanotify_event_info_header, + pub pidfd: ::__s32, + } + + pub struct fanotify_event_info_error { + pub hdr: ::fanotify_event_info_header, + pub error: ::__s32, + pub error_count: ::__u32, + } } impl siginfo_t { diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index a7815ddfc3c14..3ca4446e66ef1 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -16,6 +16,7 @@ pub type loff_t = ::c_longlong; pub type pthread_key_t = ::c_uint; pub type pthread_once_t = ::c_int; pub type pthread_spinlock_t = ::c_int; +pub type __kernel_fsid_t = __c_anonymous__kernel_fsid_t; pub type __u8 = ::c_uchar; pub type __u16 = ::c_ushort; @@ -548,6 +549,20 @@ s! { pub sh_entsize: Elf64_Xword, } + pub struct __c_anonymous_elf32_rel { + pub r_offset: Elf32_Addr, + pub r_info: Elf32_Word, + } + + pub struct __c_anonymous_elf64_rel { + pub r_offset: Elf64_Addr, + pub r_info: Elf64_Xword, + } + + pub struct __c_anonymous__kernel_fsid_t { + pub val: [::c_int; 2], + } + pub struct ucred { pub pid: ::pid_t, pub uid: ::uid_t, @@ -615,6 +630,18 @@ s! { pub response: __u32, } + pub struct fanotify_event_info_header { + pub info_type: __u8, + pub pad: __u8, + pub len: __u16, + } + + pub struct fanotify_event_info_fid { + pub hdr: fanotify_event_info_header, + pub fsid: ::__kernel_fsid_t, + pub handle: [::c_uchar; 0], + } + pub struct sockaddr_vm { pub svm_family: ::sa_family_t, pub svm_reserved1: ::c_ushort, From 5921e103aae5fbce2f7bd681f7cb53ec02db9be1 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Tue, 24 Sep 2024 11:47:48 -0600 Subject: [PATCH 0148/1228] redox: Make ino_t be c_ulonglong (#3919) (backport ) (cherry picked from commit 7cab757d7b090db039cdc3782a1ec81333113ccf) --- src/unix/redox/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 5036f458067b6..ac092a372b576 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -22,7 +22,7 @@ pub type clockid_t = ::c_int; pub type dev_t = ::c_long; pub type fsblkcnt_t = ::c_ulong; pub type fsfilcnt_t = ::c_ulong; -pub type ino_t = ::c_ulong; +pub type ino_t = ::c_ulonglong; pub type mode_t = ::c_int; pub type nfds_t = ::c_ulong; pub type nlink_t = ::c_ulong; From 5951de503443280bc08746a5bc0a48ac0b414ab3 Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Wed, 25 Sep 2024 00:53:37 +0100 Subject: [PATCH 0149/1228] Link windows-sys crate (#3915) WinAPI provides low level libc-like functions but for Windows. One may expect to find it here, so provide the links. `windows-sys` is provided by Microsoft. Official, looks good. (backport ) (cherry picked from commit 433d01944e237d89c786c419bc63fb3368bf9c9a) --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 395b94ce0c8f3..3d5b5ec583457 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,14 @@ This crate exports all underlying platform types, functions, and constants under the crate root, so all items are accessible as `libc::foo`. The types and values of all the exported APIs match the platform that libc is compiled for. +Windows API bindings are not included in this crate. If you are looking for WinAPI +bindings, consider using crates like [windows-sys]. + 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/HEAD/text/1291-promote-libc.md +[windows-sys]: https://docs.rs/windows-sys ## v0.3 Roadmap From a37cddee10a064125ca37206dfef8c043aa0654d Mon Sep 17 00:00:00 2001 From: ChanTsune <41658782+ChanTsune@users.noreply.github.com> Date: Tue, 24 Sep 2024 11:05:47 -0700 Subject: [PATCH 0150/1228] Add `getpwnam_r`, `getpwuid_r` to emscripten (#3906) (backport ) (cherry picked from commit d5b17d5e6974dd5ef2daa2ed08e9f8cb53cde276) --- libc-test/semver/emscripten.txt | 2 ++ src/unix/linux_like/emscripten/mod.rs | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/libc-test/semver/emscripten.txt b/libc-test/semver/emscripten.txt index 6b1df1aab4c7f..d14abae402367 100644 --- a/libc-test/semver/emscripten.txt +++ b/libc-test/semver/emscripten.txt @@ -1,2 +1,4 @@ getentropy posix_fallocate64 +getpwnam_r +getpwuid_r diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 1dc607496a2ad..11a16aa7afa41 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -1776,6 +1776,21 @@ extern "C" { ) -> ::c_int; pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; + + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; } // Alias to 64 to mimic glibc's LFS64 support From f0422d50255641c0caec48556e65e1e9b82994b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20=C3=81vila=20de=20Esp=C3=ADndola?= Date: Fri, 24 May 2024 15:17:34 +0000 Subject: [PATCH 0151/1228] Add iopl/ioperm to musl x86_64 Note that I think this is available on more than x86_64, but that is all that I have to test. This also matches what was done for glibc systems. (backport ) (cherry picked from commit 083499ae1ea8e9a8cc91515ec08f9e5746378a9f) --- libc-test/semver/linux-i686.txt | 2 ++ libc-test/semver/linux-x86_64.txt | 2 ++ src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs | 2 -- src/unix/linux_like/linux/mod.rs | 10 ++++++++++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/libc-test/semver/linux-i686.txt b/libc-test/semver/linux-i686.txt index 2f40472dcfaeb..73d4ca3554321 100644 --- a/libc-test/semver/linux-i686.txt +++ b/libc-test/semver/linux-i686.txt @@ -214,6 +214,8 @@ fsblkcnt64_t fsfilcnt64_t getcontext greg_t +ioperm +iopl makecontext max_align_t mcontext_t diff --git a/libc-test/semver/linux-x86_64.txt b/libc-test/semver/linux-x86_64.txt index c8a509c215085..a26f63d6d5a6c 100644 --- a/libc-test/semver/linux-x86_64.txt +++ b/libc-test/semver/linux-x86_64.txt @@ -139,6 +139,8 @@ TIOCGRS485 TIOCSBRK TIOCSRS485 greg_t +ioperm +iopl max_align_t mcontext_t ucontext_t diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index 609c74429c5bc..f66eb0409c596 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -802,8 +802,6 @@ extern "C" { pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> ::c_int; - pub fn iopl(level: ::c_int) -> ::c_int; - pub fn ioperm(from: ::c_ulong, num: ::c_ulong, turn_on: ::c_int) -> ::c_int; } cfg_if! { diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 3ca4446e66ef1..7df3a953c293b 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1556,6 +1556,16 @@ cfg_if! { } } +cfg_if! { + if #[cfg(all(any(target_env = "gnu", target_env = "musl", target_env = "ohos"), + any(target_arch = "x86_64", target_arch = "x86")))] { + extern "C" { + pub fn iopl(level: ::c_int) -> ::c_int; + pub fn ioperm(from: ::c_ulong, num: ::c_ulong, turn_on: ::c_int) -> ::c_int; + } + } +} + cfg_if! { if #[cfg(any(target_env = "gnu", target_env = "musl", target_env = "ohos"))] { pub const ABDAY_1: ::nl_item = 0x20000; From a3cbf5f08bccefbe1a04bc79e45dd30a24cd175c Mon Sep 17 00:00:00 2001 From: Nathaniel Date: Fri, 6 Sep 2024 16:11:20 -0400 Subject: [PATCH 0152/1228] Apple: Add additional `pthread` APIs (backport ) (cherry picked from commit 7b0b1a821c494e310c3027394341a286a1fb4831) --- libc-test/semver/apple.txt | 26 +++++++++++++++++++ src/unix/bsd/apple/b32/mod.rs | 35 ++++++++++++++++++++++++++ src/unix/bsd/apple/b64/mod.rs | 35 ++++++++++++++++++++++++++ src/unix/bsd/apple/mod.rs | 47 +++++++++++++++++++++++++++++++++++ 4 files changed, 143 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index 89b5cca443395..b528a1c64350c 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -1116,16 +1116,29 @@ PROC_CSM_TECS PROC_PIDTASKALLINFO PROC_PIDTASKINFO PROC_PIDTHREADINFO +PTHREAD_CANCEL_ASYNCHRONOUS +PTHREAD_CANCEL_DEFERRED +PTHREAD_CANCEL_DISABLE +PTHREAD_CANCEL_ENABLE +PTHREAD_CANCELED PTHREAD_CREATE_DETACHED PTHREAD_CREATE_JOINABLE +PTHREAD_EXPLICIT_SCHED +PTHREAD_INHERIT_SCHED PTHREAD_INTROSPECTION_THREAD_CREATE PTHREAD_INTROSPECTION_THREAD_DESTROY PTHREAD_INTROSPECTION_THREAD_START PTHREAD_INTROSPECTION_THREAD_TERMINATE PTHREAD_MUTEX_DEFAULT PTHREAD_MUTEX_ERRORCHECK +PTHREAD_ONCE_INIT +PTHREAD_PRIO_INHERIT +PTHREAD_PRIO_NONE +PTHREAD_PRIO_PROTECT PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_SHARED +PTHREAD_SCOPE_PROCESS +PTHREAD_SCOPE_SYSTEM PTHREAD_STACK_MIN PT_ATTACH PT_ATTACHEXC @@ -1832,6 +1845,7 @@ _WSTOPPED __PTHREAD_CONDATTR_SIZE__ __PTHREAD_COND_SIZE__ __PTHREAD_MUTEX_SIZE__ +__PTHREAD_ONCE_SIZE__ __PTHREAD_RWLOCKATTR_SIZE__ __PTHREAD_RWLOCK_SIZE__ __darwin_mcontext64 @@ -2142,8 +2156,18 @@ pseudo_AF_KEY pseudo_AF_PIP pseudo_AF_RTIP pseudo_AF_XTP +pthread_atfork +pthread_attr_getdetachstate +pthread_attr_getinheritsched pthread_attr_getschedparam +pthread_attr_getschedpolicy +pthread_attr_getscope +pthread_attr_getstackaddr +pthread_attr_setinheritsched pthread_attr_setschedparam +pthread_attr_setschedpolicy +pthread_attr_setscope +pthread_attr_setstackaddr pthread_cancel pthread_condattr_getpshared pthread_condattr_setpshared @@ -2167,6 +2191,8 @@ pthread_kill pthread_main_np pthread_mutexattr_getpshared pthread_mutexattr_setpshared +pthread_once +pthread_once_t pthread_rwlockattr_getpshared pthread_rwlockattr_setpshared pthread_setname_np diff --git a/src/unix/bsd/apple/b32/mod.rs b/src/unix/bsd/apple/b32/mod.rs index 0f1722f975744..4e45459c18101 100644 --- a/src/unix/bsd/apple/b32/mod.rs +++ b/src/unix/bsd/apple/b32/mod.rs @@ -54,6 +54,11 @@ s_no_extra_traits! { __sig: c_long, __opaque: [::c_char; 36] } + + pub struct pthread_once_t { + __sig: c_long, + __opaque: [::c_char; ::__PTHREAD_ONCE_SIZE__], + } } cfg_if! { @@ -82,6 +87,29 @@ cfg_if! { self.__opaque.hash(state); } } + impl PartialEq for pthread_once_t { + fn eq(&self, other: &pthread_once_t) -> bool { + self.__sig == other.__sig + && self.__opaque + .iter() + .zip(other.__opaque.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for pthread_once_t {} + impl ::fmt::Debug for pthread_once_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_once_t") + .field("__sig", &self.__sig) + .finish() + } + } + impl ::hash::Hash for pthread_once_t { + fn hash(&self, state: &mut H) { + self.__sig.hash(state); + self.__opaque.hash(state); + } + } } } @@ -92,6 +120,7 @@ pub const NET_RT_MAXID: ::c_int = 10; pub const __PTHREAD_MUTEX_SIZE__: usize = 40; pub const __PTHREAD_COND_SIZE__: usize = 24; pub const __PTHREAD_CONDATTR_SIZE__: usize = 4; +pub const __PTHREAD_ONCE_SIZE__: usize = 4; pub const __PTHREAD_RWLOCK_SIZE__: usize = 124; pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 12; @@ -103,6 +132,12 @@ pub const BIOCSRTIMEOUT: ::c_ulong = 0x8008426d; pub const BIOCGRTIMEOUT: ::c_ulong = 0x4008426e; pub const BIOCSETFNR: ::c_ulong = 0x8008427e; +const _PTHREAD_ONCE_SIG_INIT: c_long = 0x30B1BCBA; +pub const PTHREAD_ONCE_INIT: ::pthread_once_t = ::pthread_once_t { + __sig: _PTHREAD_ONCE_SIG_INIT, + __opaque: [0; 4], +}; + extern "C" { pub fn exchangedata( path1: *const ::c_char, diff --git a/src/unix/bsd/apple/b64/mod.rs b/src/unix/bsd/apple/b64/mod.rs index 48d94bcd6bfdc..2206210da5575 100644 --- a/src/unix/bsd/apple/b64/mod.rs +++ b/src/unix/bsd/apple/b64/mod.rs @@ -54,6 +54,11 @@ s_no_extra_traits! { __sig: c_long, __opaque: [::c_char; 56] } + + pub struct pthread_once_t { + __sig: c_long, + __opaque: [::c_char; __PTHREAD_ONCE_SIZE__], + } } cfg_if! { @@ -82,6 +87,29 @@ cfg_if! { self.__opaque.hash(state); } } + impl PartialEq for pthread_once_t { + fn eq(&self, other: &pthread_once_t) -> bool { + self.__sig == other.__sig + && self.__opaque + .iter() + .zip(other.__opaque.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for pthread_once_t {} + impl ::fmt::Debug for pthread_once_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_once_t") + .field("__sig", &self.__sig) + .finish() + } + } + impl ::hash::Hash for pthread_once_t { + fn hash(&self, state: &mut H) { + self.__sig.hash(state); + self.__opaque.hash(state); + } + } } } @@ -92,6 +120,7 @@ pub const NET_RT_MAXID: ::c_int = 11; pub const __PTHREAD_MUTEX_SIZE__: usize = 56; pub const __PTHREAD_COND_SIZE__: usize = 40; pub const __PTHREAD_CONDATTR_SIZE__: usize = 8; +pub const __PTHREAD_ONCE_SIZE__: usize = 8; pub const __PTHREAD_RWLOCK_SIZE__: usize = 192; pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 16; @@ -103,6 +132,12 @@ pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; pub const BIOCSETFNR: ::c_ulong = 0x8010427e; +const _PTHREAD_ONCE_SIG_INIT: c_long = 0x30B1BCBA; +pub const PTHREAD_ONCE_INIT: ::pthread_once_t = ::pthread_once_t { + __sig: _PTHREAD_ONCE_SIG_INIT, + __opaque: [0; 8], +}; + extern "C" { pub fn exchangedata( path1: *const ::c_char, diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 92d724071a3d4..3e150feee6afa 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -3787,6 +3787,19 @@ pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 2; pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; pub const PTHREAD_CREATE_JOINABLE: ::c_int = 1; pub const PTHREAD_CREATE_DETACHED: ::c_int = 2; +pub const PTHREAD_INHERIT_SCHED: ::c_int = 1; +pub const PTHREAD_EXPLICIT_SCHED: ::c_int = 2; +pub const PTHREAD_CANCEL_ENABLE: ::c_int = 0x01; +pub const PTHREAD_CANCEL_DISABLE: ::c_int = 0x00; +pub const PTHREAD_CANCEL_DEFERRED: ::c_int = 0x02; +pub const PTHREAD_CANCEL_ASYNCHRONOUS: ::c_int = 0x00; +pub const PTHREAD_CANCELED: *mut ::c_void = 1 as *mut ::c_void; +pub const PTHREAD_SCOPE_SYSTEM: ::c_int = 1; +pub const PTHREAD_SCOPE_PROCESS: ::c_int = 2; +pub const PTHREAD_PRIO_NONE: ::c_int = 0; +pub const PTHREAD_PRIO_INHERIT: ::c_int = 1; +pub const PTHREAD_PRIO_PROTECT: ::c_int = 2; + #[cfg(target_arch = "aarch64")] pub const PTHREAD_STACK_MIN: ::size_t = 16384; #[cfg(not(target_arch = "aarch64"))] @@ -5757,6 +5770,40 @@ extern "C" { pub fn mach_timebase_info(info: *mut ::mach_timebase_info) -> ::c_int; pub fn mach_host_self() -> mach_port_t; pub fn mach_thread_self() -> mach_port_t; + pub fn pthread_once( + once_control: *mut ::pthread_once_t, + init_routine: ::Option, + ) -> ::c_int; + pub fn pthread_attr_getinheritsched( + attr: *const ::pthread_attr_t, + inheritsched: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_attr_getschedpolicy( + attr: *const ::pthread_attr_t, + policy: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_attr_getscope( + attr: *const ::pthread_attr_t, + contentionscope: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_attr_getstackaddr( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + ) -> ::c_int; + pub fn pthread_attr_getdetachstate( + attr: *const ::pthread_attr_t, + detachstate: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_attr_setinheritsched( + attr: *mut ::pthread_attr_t, + inheritsched: ::c_int, + ) -> ::c_int; + pub fn pthread_attr_setschedpolicy(attr: *mut ::pthread_attr_t, policy: ::c_int) -> ::c_int; + pub fn pthread_attr_setscope(attr: *mut ::pthread_attr_t, contentionscope: ::c_int) -> ::c_int; + pub fn pthread_attr_setstackaddr( + attr: *mut ::pthread_attr_t, + stackaddr: *mut ::c_void, + ) -> ::c_int; pub fn pthread_setname_np(name: *const ::c_char) -> ::c_int; pub fn pthread_getname_np(thread: ::pthread_t, name: *mut ::c_char, len: ::size_t) -> ::c_int; pub fn pthread_mach_thread_np(thread: ::pthread_t) -> ::mach_port_t; From 9de4a5cfd65c356cd684ee72f71153579b51656d Mon Sep 17 00:00:00 2001 From: Jan Sommer Date: Sun, 20 Aug 2023 23:00:31 +0200 Subject: [PATCH 0153/1228] Add port for RTEMS (backport ) (cherry picked from commit 6a78b021c099d5ef41760eafcf4f32132aaa46fd) --- build.rs | 5 +- src/unix/newlib/mod.rs | 17 +++++ src/unix/newlib/rtems/mod.rs | 141 +++++++++++++++++++++++++++++++++++ 3 files changed, 162 insertions(+), 1 deletion(-) create mode 100644 src/unix/newlib/rtems/mod.rs diff --git a/build.rs b/build.rs index ce4541e62955c..895dd59abb4ba 100644 --- a/build.rs +++ b/build.rs @@ -35,7 +35,10 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ // Extra values to allow for check-cfg. const CHECK_CFG_EXTRA: &'static [(&'static str, &'static [&'static str])] = &[ - ("target_os", &["switch", "aix", "ohos", "hurd", "visionos"]), + ( + "target_os", + &["switch", "aix", "ohos", "hurd", "rtems", "visionos"], + ), ("target_env", &["illumos", "wasi", "aix", "ohos"]), ( "target_arch", diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index 29693f6ec2402..91380db247b05 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -267,6 +267,16 @@ cfg_if! { pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 4; pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 4; + } else if #[cfg(target_os = "rtems")] { + const __PTHREAD_INITIALIZER_BYTE: u8 = 0x00; + pub const __SIZEOF_PTHREAD_ATTR_T: usize = 96; + pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 64; + pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 24; + pub const __SIZEOF_PTHREAD_COND_T: usize = 28; + pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 24; + pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; + pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; + pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; } else { const __PTHREAD_INITIALIZER_BYTE: u8 = 0; pub const __SIZEOF_PTHREAD_ATTR_T: usize = 56; @@ -792,6 +802,13 @@ cfg_if! { } } +cfg_if! { + if #[cfg(target_os = "rtems")] { + mod rtems; + pub use self::rtems::*; + } +} + cfg_if! { if #[cfg(libc_align)] { #[macro_use] diff --git a/src/unix/newlib/rtems/mod.rs b/src/unix/newlib/rtems/mod.rs new file mode 100644 index 0000000000000..36f4820c92f4f --- /dev/null +++ b/src/unix/newlib/rtems/mod.rs @@ -0,0 +1,141 @@ +// defined in architecture specific module +use c_long; + +s! { + pub struct sockaddr_un { + pub sun_family: ::sa_family_t, + pub sun_path: [::c_char; 108usize], + } +} + +pub const AF_UNIX: ::c_int = 1; + +pub const RTLD_DEFAULT: *mut ::c_void = -2isize as *mut ::c_void; + +pub const UTIME_OMIT: c_long = -1; +pub const AT_FDCWD: ::c_int = -2; + +pub const O_DIRECTORY: ::c_int = 0x200000; +pub const O_NOFOLLOW: ::c_int = 0x100000; + +pub const AT_EACCESS: ::c_int = 1; +pub const AT_SYMLINK_NOFOLLOW: ::c_int = 2; +pub const AT_SYMLINK_FOLLOW: ::c_int = 4; +pub const AT_REMOVEDIR: ::c_int = 8; + +// signal.h +pub const SIG_BLOCK: ::c_int = 1; +pub const SIG_UNBLOCK: ::c_int = 2; +pub const SIG_SETMASK: ::c_int = 0; +pub const SIGHUP: ::c_int = 1; +pub const SIGINT: ::c_int = 2; +pub const SIGQUIT: ::c_int = 3; +pub const SIGILL: ::c_int = 4; +pub const SIGTRAP: ::c_int = 5; +pub const SIGABRT: ::c_int = 6; +pub const SIGEMT: ::c_int = 7; +pub const SIGFPE: ::c_int = 8; +pub const SIGKILL: ::c_int = 9; +pub const SIGBUS: ::c_int = 10; +pub const SIGSEGV: ::c_int = 11; +pub const SIGSYS: ::c_int = 12; +pub const SIGPIPE: ::c_int = 13; +pub const SIGALRM: ::c_int = 14; +pub const SIGTERM: ::c_int = 15; +pub const SIGURG: ::c_int = 16; +pub const SIGSTOP: ::c_int = 17; +pub const SIGTSTP: ::c_int = 18; +pub const SIGCONT: ::c_int = 19; +pub const SIGCHLD: ::c_int = 20; +pub const SIGCLD: ::c_int = 20; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGIO: ::c_int = 23; +pub const SIGWINCH: ::c_int = 24; +pub const SIGUSR1: ::c_int = 25; +pub const SIGUSR2: ::c_int = 26; +pub const SIGRTMIN: ::c_int = 27; +pub const SIGRTMAX: ::c_int = 31; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; + +pub const SA_NOCLDSTOP: ::c_ulong = 0x00000001; +pub const SA_SIGINFO: ::c_ulong = 0x00000002; +pub const SA_ONSTACK: ::c_ulong = 0x00000004; + +pub const EAI_AGAIN: ::c_int = 2; +pub const EAI_BADFLAGS: ::c_int = 3; +pub const EAI_FAIL: ::c_int = 4; +pub const EAI_SERVICE: ::c_int = 9; +pub const EAI_SYSTEM: ::c_int = 11; +pub const EAI_OVERFLOW: ::c_int = 14; + +pub const _SC_PAGESIZE: ::c_int = 8; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 51; +pub const PTHREAD_STACK_MIN: ::size_t = 0; + +// sys/wait.h +pub const WNOHANG: ::c_int = 1; +pub const WUNTRACED: ::c_int = 2; + +// sys/socket.h +pub const SOMAXCONN: ::c_int = 128; + +safe_f! { + pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + (status & 0xff) == 0x7f + } + + pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + // (status >> 8) & 0xff + WEXITSTATUS(status) + } + + pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + ((status & 0x7f) > 0) && ((status & 0x7f) < 0x7f) + } + + pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + status & 0x7f + } + + pub {const} fn WIFEXITED(status: ::c_int) -> bool { + (status & 0xff) == 0 + } + + pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + (status >> 8) & 0xff + } + + // RTEMS doesn't have native WIFCONTINUED. + pub {const} fn WIFCONTINUED(_status: ::c_int) -> bool { + true + } + + // RTEMS doesn't have native WCOREDUMP. + pub {const} fn WCOREDUMP(_status: ::c_int) -> bool { + false + } +} + +extern "C" { + pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(_: *mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + + pub fn pthread_condattr_setclock( + attr: *mut ::pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; + + pub fn setgroups(ngroups: ::c_int, grouplist: *const ::gid_t) -> ::c_int; +} From 0567d118b1a4030cf5e46c9ba8a588db000dc695 Mon Sep 17 00:00:00 2001 From: Andrew Liebenow Date: Tue, 1 Oct 2024 02:21:44 -0500 Subject: [PATCH 0154/1228] Add missing musl utmpx.h constants (backport ) (cherry picked from commit 6cd88a49e7ead33237eed71152ed72e196b95077) --- libc-test/semver/linux-musl.txt | 9 +++++++++ src/unix/linux_like/linux/musl/mod.rs | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index bb8dbb2f9834e..e873cb21d0491 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -10,25 +10,34 @@ MPOL_DEFAULT MPOL_INTERLEAVE MPOL_LOCAL MPOL_PREFERRED +BOOT_TIME +DEAD_PROCESS Elf32_Chdr Elf64_Chdr +EMPTY +INIT_PROCESS LIO_NOP LIO_NOWAIT LIO_READ LIO_WAIT LIO_WRITE +LOGIN_PROCESS +NEW_TIME +OLD_TIME PF_IB PF_MPLS PF_XDP PIDFD_NONBLOCK PR_SET_VMA PR_SET_VMA_ANON_NAME +RUN_LVL RWF_APPEND RWF_DSYNC RWF_HIPRI RWF_NOWAIT RWF_SYNC SOL_XDP +USER_PROCESS XDP_SHARED_UMEM XDP_COPY XDP_ZEROCOPY diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index d102d5de2cfed..72bd335360b8e 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -632,6 +632,18 @@ pub const MAP_HUGE_16GB: ::c_int = 34 << MAP_HUGE_SHIFT; pub const MS_RMT_MASK: ::c_ulong = 0x02800051; +// include/utmpx.h +pub const EMPTY: ::c_short = 0; +pub const RUN_LVL: ::c_short = 1; +pub const BOOT_TIME: ::c_short = 2; +pub const NEW_TIME: ::c_short = 3; +pub const OLD_TIME: ::c_short = 4; +pub const INIT_PROCESS: ::c_short = 5; +pub const LOGIN_PROCESS: ::c_short = 6; +pub const USER_PROCESS: ::c_short = 7; +pub const DEAD_PROCESS: ::c_short = 8; +// musl does not define ACCOUNTING + pub const SFD_CLOEXEC: ::c_int = 0x080000; pub const NCCS: usize = 32; From c2e03d56aef34249bfb5010a366c26b0173f04e4 Mon Sep 17 00:00:00 2001 From: Huang Qi Date: Wed, 25 Sep 2024 08:16:29 +0800 Subject: [PATCH 0155/1228] Initial support for NuttX (#3909) Define the essential types that for NuttX OS. Signed-off-by: Huang Qi (backport ) (cherry picked from commit c31dfc1595a06fa28e2da66a262c7a64b5fc1923) --- build.rs | 4 +- src/unix/mod.rs | 10 +- src/unix/nuttx/mod.rs | 555 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 566 insertions(+), 3 deletions(-) create mode 100644 src/unix/nuttx/mod.rs diff --git a/build.rs b/build.rs index 895dd59abb4ba..ea55185d77023 100644 --- a/build.rs +++ b/build.rs @@ -37,7 +37,9 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ const CHECK_CFG_EXTRA: &'static [(&'static str, &'static [&'static str])] = &[ ( "target_os", - &["switch", "aix", "ohos", "hurd", "rtems", "visionos"], + &[ + "switch", "aix", "ohos", "hurd", "rtems", "visionos", "nuttx", + ], ), ("target_env", &["illumos", "wasi", "aix", "ohos"]), ( diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 6bab825b0449b..3f1148043f532 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -319,8 +319,11 @@ extern "C" { } cfg_if! { - if #[cfg(any(target_os = "l4re", target_os = "espidf"))] { - // required libraries for L4Re and the ESP-IDF framework are linked externally, ATM + if #[cfg(any(target_os = "l4re", target_os = "espidf", target_os = "nuttx"))] { + // required libraries are linked externally for these platforms: + // * L4Re + // * ESP-IDF + // * NuttX } else if #[cfg(feature = "std")] { // cargo build, don't pull in anything extra as the std dep // already pulls in all libs. @@ -1617,6 +1620,9 @@ cfg_if! { } else if #[cfg(target_os = "hurd")] { mod hurd; pub use self::hurd::*; + } else if #[cfg(target_os = "nuttx")] { + mod nuttx; + pub use self::nuttx::*; } else { // Unknown target_os } diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs new file mode 100644 index 0000000000000..e3a3c15b338cc --- /dev/null +++ b/src/unix/nuttx/mod.rs @@ -0,0 +1,555 @@ +use c_void; +use in6_addr; +use in_addr_t; +use timespec; +use DIR; + +pub type nlink_t = u16; +pub type ino_t = u16; +pub type blkcnt_t = u64; +pub type blksize_t = i16; +pub type c_char = i8; +pub type c_long = isize; +pub type c_ulong = usize; +pub type cc_t = u8; +pub type clock_t = i64; +pub type dev_t = i32; +pub type fsblkcnt_t = u64; +pub type locale_t = *mut i8; +pub type mode_t = u32; +pub type nfds_t = u32; +pub type off_t = i64; +pub type pthread_key_t = i32; +pub type pthread_mutexattr_t = u8; +pub type pthread_rwlockattr_t = i32; +pub type pthread_t = i32; +pub type rlim_t = i64; +pub type sa_family_t = u16; +pub type socklen_t = u32; +pub type speed_t = usize; +pub type suseconds_t = i32; +pub type tcflag_t = u32; +pub type clockid_t = i32; +pub type time_t = i64; +pub type wchar_t = i32; + +s! { + pub struct stat { + pub st_dev: dev_t, + pub st_ino: ino_t, + pub st_mode: mode_t, + pub st_nlink: u64, + pub st_uid: u32, + pub st_gid: u32, + pub st_rdev: dev_t, + pub st_size: off_t, + pub st_atim: timespec, + pub st_mtim: timespec, + pub st_ctim: timespec, + pub st_blksize: blksize_t, + pub st_blocks: i64, + __reserved: [usize; __DEFAULT_RESERVED_SIZE__], + } + + pub struct sockaddr { + pub sa_family: sa_family_t, + pub sa_data: [u8; 14], + } + + pub struct passwd { + pub pw_name: *const c_char, + pub pw_uid: u32, + pub pw_gid: u32, + pub pw_gecos: *const c_char, + pub pw_dir: *const c_char, + pub pw_shell: *const c_char, + __reserved: [usize; __DEFAULT_RESERVED_SIZE__] + } + + pub struct sem_t { __val: [usize; __SEM_SIZE__] } + + pub struct pthread_attr_t { __val: [usize; __PTHREAD_ATTR_SIZE__] } + + pub struct pthread_mutex_t { __val: [usize; __PTHREAD_MUTEX_SIZE__] } + + pub struct pthread_cond_t { __val: [usize; __PTHREAD_COND_SIZE__] } + + pub struct pthread_condattr_t { __val: [usize; __PTHREAD_CONDATTR_SIZE__] } + + pub struct Dl_info { + pub dli_fname: *const c_char, + pub dli_fbase: *mut c_void, + pub dli_sname: *const c_char, + pub dli_saddr: *mut c_void, + } + + pub struct lconv { + pub decimal_point: *const c_char, + pub thousands_sep: *const c_char, + pub grouping: *const c_char, + pub int_curr_symbol: *const c_char, + pub currency_symbol: *const c_char, + pub mon_decimal_point: *const c_char, + pub mon_thousands_sep: *const c_char, + pub mon_grouping: *const c_char, + pub positive_sign: *const c_char, + pub negative_sign: *const c_char, + pub int_frac_digits: i8, + pub frac_digits: i8, + pub p_cs_precedes: i8, + pub p_sep_by_space: i8, + pub n_cs_precedes: i8, + pub n_sep_by_space: i8, + pub p_sign_posn: i8, + pub n_sign_posn: i8, + pub int_n_cs_precedes: i8, + pub int_n_sep_by_space: i8, + pub int_n_sign_posn: i8, + pub int_p_cs_precedes: i8, + pub int_p_sep_by_space: i8, + pub int_p_sign_posn: i8, + __reserved: [usize; __DEFAULT_RESERVED_SIZE__], + } + + pub struct tm { + pub tm_sec: i32, + pub tm_min: i32, + pub tm_hour: i32, + pub tm_mday: i32, + pub tm_mon: i32, + pub tm_year: i32, + pub tm_wday: i32, + pub tm_yday: i32, + pub tm_isdst: i32, + pub tm_gmtoff: isize, + pub tm_zone: *const i8, + __reserved: [usize; __DEFAULT_RESERVED_SIZE__], + } + + pub struct addrinfo { + pub ai_flags: i32, + pub ai_family: i32, + pub ai_socktype: i32, + pub ai_protocol: i32, + pub ai_addrlen: socklen_t, + pub ai_addr: *mut sockaddr, + pub ai_canonname: *mut c_char, + pub ai_next: *mut addrinfo, + __reserved: [usize; __DEFAULT_RESERVED_SIZE__], + } + + pub struct pthread_rwlock_t { + __val: [usize; __PTHREAD_RWLOCK_SIZE__], + } + + pub struct statvfs { + pub f_bsize: usize, + pub f_frsize: usize, + 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_favail: fsblkcnt_t, + pub f_fsid: usize, + pub f_flag: usize, + pub f_namemax: usize, + __reserved: [usize; __DEFAULT_RESERVED_SIZE__], + } + + pub struct dirent { + pub d_type: u8, + pub d_name: [i8; __NAME_MAX__ + 1], + } + + pub struct fd_set { + __val: [u32; __FDSET_SIZE__], + } + + pub struct sigset_t { + __val: [u32; __SIGSET_SIZE__], + } + + pub struct sigaction { + pub sa_handler: usize, + pub sa_mask: sigset_t, + pub sa_flags: i32, + pub sa_user: usize, + __reserved: [usize; __DEFAULT_RESERVED_SIZE__], + } + + pub struct termios { + pub c_iflag: tcflag_t, + pub c_oflag: tcflag_t, + pub c_cflag: tcflag_t, + pub c_lflag: tcflag_t, + pub c_cc: [cc_t; 12], + pub c_speed: speed_t, + __reserved: [usize; __DEFAULT_RESERVED_SIZE__], + } + + pub struct in_addr { + pub s_addr: in_addr_t, + } + + pub struct sockaddr_in { + pub sin_family: sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [u8; 8], + } + + pub struct sockaddr_in6 { + pub sin6_family: sa_family_t, + pub sin6_port: ::in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: ::in6_addr, + pub sin6_scope_id: u32, + } + + pub struct sockaddr_un { + pub sun_family: sa_family_t, + pub sun_path: [c_char; 108], + } + + pub struct sockaddr_storage { + pub ss_family: sa_family_t, + ss_data: [u32; __SOCKADDR_STORAGE_SIZE__], + } + + pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct ipv6_mreq { + pub ipv6mr_multiaddr: in6_addr, + pub ipv6mr_interface: u32, + } + + pub struct timeval { + pub tv_sec: time_t, + pub tv_usec: suseconds_t, + } +} + +// Reserved two pointer size for reserved area for some structures. +// This ensures that the size of these structures is large enough +// if more fields are added in the NuttX side. +// +// These structures are that defined by POSIX but only necessary fields are included, +// for example, struct passwd, https://pubs.opengroup.org/onlinepubs/009695399/basedefs/pwd.h.html, +// POSIX only defines following fields in struct passwd: +// char *pw_name User's login name. +// uid_t pw_uid Numerical user ID. +// gid_t pw_gid Numerical group ID. +// char *pw_dir Initial working directory. +// char *pw_shell Program to use as shell. +// Other fields can be different depending on the implementation. + +const __DEFAULT_RESERVED_SIZE__: usize = 2; + +const __SOCKADDR_STORAGE_SIZE__: usize = 36; +const __PTHREAD_ATTR_SIZE__: usize = 5; +const __PTHREAD_MUTEX_SIZE__: usize = 9; +const __PTHREAD_COND_SIZE__: usize = 7; +const __PTHREAD_CONDATTR_SIZE__: usize = 5; +const __PTHREAD_RWLOCK_SIZE__: usize = 17; +const __SEM_SIZE__: usize = 6; +const __NAME_MAX__: usize = 64; +const __FDSET_SIZE__: usize = 10; +const __SIGSET_SIZE__: usize = 8; + +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + __val: [0; __PTHREAD_COND_SIZE__], +}; +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + __val: [0; __PTHREAD_MUTEX_SIZE__], +}; + +// dlfcn.h +pub const RTLD_DEFAULT: *mut c_void = 0 as *mut c_void; + +// stdlib.h +pub const EXIT_SUCCESS: i32 = 0; +pub const EXIT_FAILURE: i32 = 1; + +// time.h +pub const CLOCK_REALTIME: i32 = 0; +pub const CLOCK_MONOTONIC: i32 = 1; + +// errno.h +pub const EPERM: i32 = 1; +pub const ENOENT: i32 = 2; +pub const ESRCH: i32 = 3; +pub const EINTR: i32 = 4; +pub const EIO: i32 = 5; +pub const ENXIO: i32 = 6; +pub const E2BIG: i32 = 7; +pub const ENOEXEC: i32 = 8; +pub const EBADF: i32 = 9; +pub const ECHILD: i32 = 10; +pub const EAGAIN: i32 = 11; +pub const ENOMEM: i32 = 12; +pub const EACCES: i32 = 13; +pub const EFAULT: i32 = 14; +pub const ENOTBLK: i32 = 15; +pub const EBUSY: i32 = 16; +pub const EEXIST: i32 = 17; +pub const EXDEV: i32 = 18; +pub const ENODEV: i32 = 19; +pub const ENOTDIR: i32 = 20; +pub const EISDIR: i32 = 21; +pub const EINVAL: i32 = 22; +pub const ENFILE: i32 = 23; +pub const EMFILE: i32 = 24; +pub const ENOTTY: i32 = 25; +pub const ETXTBSY: i32 = 26; +pub const EFBIG: i32 = 27; +pub const ENOSPC: i32 = 28; +pub const ESPIPE: i32 = 29; +pub const EROFS: i32 = 30; +pub const EMLINK: i32 = 31; +pub const EPIPE: i32 = 32; +pub const EDOM: i32 = 33; +pub const ERANGE: i32 = 34; +pub const EDEADLK: i32 = 35; +pub const ENAMETOOLONG: i32 = 36; +pub const ENOLCK: i32 = 37; +pub const ENOSYS: i32 = 38; +pub const ENOTEMPTY: i32 = 39; +pub const ELOOP: i32 = 40; +pub const EWOULDBLOCK: i32 = EAGAIN; +pub const ENOMSG: i32 = 42; +pub const EIDRM: i32 = 43; +pub const ECHRNG: i32 = 44; +pub const EL2NSYNC: i32 = 45; +pub const EL3HLT: i32 = 46; +pub const EL3RST: i32 = 47; +pub const ELNRNG: i32 = 48; +pub const EUNATCH: i32 = 49; +pub const ENOCSI: i32 = 50; +pub const EL2HLT: i32 = 51; +pub const EBADE: i32 = 52; +pub const EBADR: i32 = 53; +pub const EXFULL: i32 = 54; +pub const ENOANO: i32 = 55; +pub const EBADRQC: i32 = 56; +pub const EBADSLT: i32 = 57; +pub const EDEADLOCK: i32 = EDEADLK; +pub const EBFONT: i32 = 59; +pub const ENOSTR: i32 = 60; +pub const ENODATA: i32 = 61; +pub const ETIME: i32 = 62; +pub const ENOSR: i32 = 63; +pub const ENONET: i32 = 64; +pub const ENOPKG: i32 = 65; +pub const EREMOTE: i32 = 66; +pub const ENOLINK: i32 = 67; +pub const EADV: i32 = 68; +pub const ESRMNT: i32 = 69; +pub const ECOMM: i32 = 70; +pub const EPROTO: i32 = 71; +pub const EMULTIHOP: i32 = 72; +pub const EDOTDOT: i32 = 73; +pub const EBADMSG: i32 = 74; +pub const EOVERFLOW: i32 = 75; +pub const ENOTUNIQ: i32 = 76; +pub const EBADFD: i32 = 77; +pub const EREMCHG: i32 = 78; +pub const ELIBACC: i32 = 79; +pub const ELIBBAD: i32 = 80; +pub const ELIBSCN: i32 = 81; +pub const ELIBMAX: i32 = 82; +pub const ELIBEXEC: i32 = 83; +pub const EILSEQ: i32 = 84; +pub const ERESTART: i32 = 85; +pub const ESTRPIPE: i32 = 86; +pub const EUSERS: i32 = 87; +pub const ENOTSOCK: i32 = 88; +pub const EDESTADDRREQ: i32 = 89; +pub const EMSGSIZE: i32 = 90; +pub const EPROTOTYPE: i32 = 91; +pub const ENOPROTOOPT: i32 = 92; +pub const EPROTONOSUPPORT: i32 = 93; +pub const ESOCKTNOSUPPORT: i32 = 94; +pub const EOPNOTSUPP: i32 = 95; +pub const EPFNOSUPPORT: i32 = 96; +pub const EAFNOSUPPORT: i32 = 97; +pub const EADDRINUSE: i32 = 98; +pub const EADDRNOTAVAIL: i32 = 99; +pub const ENETDOWN: i32 = 100; +pub const ENETUNREACH: i32 = 101; +pub const ENETRESET: i32 = 102; +pub const ECONNABORTED: i32 = 103; +pub const ECONNRESET: i32 = 104; +pub const ENOBUFS: i32 = 105; +pub const EISCONN: i32 = 106; +pub const ENOTCONN: i32 = 107; +pub const ESHUTDOWN: i32 = 108; +pub const ETOOMANYREFS: i32 = 109; +pub const ETIMEDOUT: i32 = 110; +pub const ECONNREFUSED: i32 = 111; +pub const EHOSTDOWN: i32 = 112; +pub const EHOSTUNREACH: i32 = 113; +pub const EALREADY: i32 = 114; +pub const EINPROGRESS: i32 = 115; +pub const ESTALE: i32 = 116; +pub const EUCLEAN: i32 = 117; +pub const ENOTNAM: i32 = 118; +pub const ENAVAIL: i32 = 119; +pub const EISNAM: i32 = 120; +pub const EREMOTEIO: i32 = 121; +pub const EDQUOT: i32 = 122; +pub const ENOMEDIUM: i32 = 123; +pub const EMEDIUMTYPE: i32 = 124; +pub const ECANCELED: i32 = 125; +pub const ENOKEY: i32 = 126; +pub const EKEYEXPIRED: i32 = 127; +pub const EKEYREVOKED: i32 = 128; +pub const EKEYREJECTED: i32 = 129; +pub const EOWNERDEAD: i32 = 130; +pub const ENOTRECOVERABLE: i32 = 131; +pub const ERFKILL: i32 = 132; +pub const EHWPOISON: i32 = 133; +pub const ELBIN: i32 = 134; +pub const EFTYPE: i32 = 135; +pub const ENMFILE: i32 = 136; +pub const EPROCLIM: i32 = 137; +pub const ENOTSUP: i32 = 138; +pub const ENOSHARE: i32 = 139; +pub const ECASECLASH: i32 = 140; + +// fcntl.h +pub const FIOCLEX: i32 = 0x30b; +pub const F_SETFL: i32 = 0x9; +pub const F_DUPFD_CLOEXEC: i32 = 0x12; +pub const F_GETFD: i32 = 0x1; +pub const F_GETFL: i32 = 0x2; +pub const O_RDONLY: i32 = 0x1; +pub const O_WRONLY: i32 = 0x2; +pub const O_RDWR: i32 = 0x3; +pub const O_CREAT: i32 = 0x4; +pub const O_EXCL: i32 = 0x8; +pub const O_NOCTTY: i32 = 0x0; +pub const O_TRUNC: i32 = 0x20; +pub const O_APPEND: i32 = 0x10; +pub const O_NONBLOCK: i32 = 0x40; +pub const O_DSYNC: i32 = 0x80; +pub const O_DIRECT: i32 = 0x200; +pub const O_LARGEFILE: i32 = 0x2000; +pub const O_DIRECTORY: i32 = 0x800; +pub const O_NOFOLLOW: i32 = 0x1000; +pub const O_NOATIME: i32 = 0x40000; +pub const O_CLOEXEC: i32 = 0x400; +pub const O_ACCMODE: i32 = 0x0003; +pub const AT_FDCWD: i32 = -100; +pub const AT_REMOVEDIR: i32 = 0x200; + +// sys/types.h +pub const SEEK_SET: i32 = 0; +pub const SEEK_CUR: i32 = 1; +pub const SEEK_END: i32 = 2; + +// sys/stat.h +pub const S_IFDIR: u32 = 0x4000; +pub const S_IFLNK: u32 = 0xA000; +pub const S_IFREG: u32 = 0x8000; +pub const S_IFMT: u32 = 0xF000; +pub const S_IFIFO: u32 = 0x1000; +pub const S_IFSOCK: u32 = 0xc000; +pub const S_IFBLK: u32 = 0x6000; +pub const S_IFCHR: u32 = 0x2000; +pub const S_IRUSR: u32 = 0x100; +pub const S_IWUSR: u32 = 0x80; +pub const S_IXUSR: u32 = 0x40; +pub const S_IRGRP: u32 = 0x20; +pub const S_IWGRP: u32 = 0x10; +pub const S_IXGRP: u32 = 0x8; +pub const S_IROTH: u32 = 0x004; +pub const S_IWOTH: u32 = 0x002; +pub const S_IXOTH: u32 = 0x001; + +// sys/poll.h +pub const POLLIN: i16 = 0x01; +pub const POLLOUT: i16 = 0x04; +pub const POLLHUP: i16 = 0x10; +pub const POLLERR: i16 = 0x08; +pub const POLLNVAL: i16 = 0x20; + +// sys/socket.h +pub const AF_UNIX: i32 = 1; +pub const SOCK_DGRAM: i32 = 2; +pub const SOCK_STREAM: i32 = 1; +pub const AF_INET: i32 = 2; +pub const AF_INET6: i32 = 10; +pub const MSG_PEEK: i32 = 0x02; +pub const SOL_SOCKET: i32 = 1; +pub const SHUT_WR: i32 = 2; +pub const SHUT_RD: i32 = 1; +pub const SHUT_RDWR: i32 = 3; +pub const SO_ERROR: i32 = 4; +pub const SO_REUSEADDR: i32 = 11; +pub const SOMAXCONN: i32 = 8; +pub const SO_LINGER: i32 = 6; +pub const SO_RCVTIMEO: i32 = 0xa; +pub const SO_SNDTIMEO: i32 = 0xe; +pub const SO_BROADCAST: i32 = 1; + +// netinet/tcp.h +pub const TCP_NODELAY: i32 = 0x10; + +// nuttx/fs/ioctl.h +pub const FIONBIO: i32 = 0x30a; + +// unistd.h +pub const STDIN_FILENO: i32 = 0; +pub const STDOUT_FILENO: i32 = 1; +pub const STDERR_FILENO: i32 = 2; +pub const _SC_PAGESIZE: i32 = 0x36; +pub const _SC_THREAD_STACK_MIN: i32 = 0x58; +pub const _SC_GETPW_R_SIZE_MAX: i32 = 0x25; + +// signal.h +pub const SIGPIPE: i32 = 13; + +// pthread.h +pub const PTHREAD_MUTEX_NORMAL: i32 = 0; + +// netinet/in.h +pub const IP_TTL: i32 = 0x1e; +pub const IPV6_V6ONLY: i32 = 0x17; +pub const IPV6_JOIN_GROUP: i32 = 0x11; +pub const IPV6_LEAVE_GROUP: i32 = 0x12; +pub const IP_MULTICAST_LOOP: i32 = 0x13; +pub const IPV6_MULTICAST_LOOP: i32 = 0x15; +pub const IP_MULTICAST_TTL: i32 = 0x12; +pub const IP_ADD_MEMBERSHIP: i32 = 0x14; +pub const IP_DROP_MEMBERSHIP: i32 = 0x15; + +extern "C" { + pub fn bind(sockfd: i32, addr: *const sockaddr, addrlen: socklen_t) -> i32; + pub fn ioctl(fd: i32, request: i32, ...) -> i32; + pub fn dirfd(dirp: *mut DIR) -> i32; + pub fn recvfrom( + sockfd: i32, + buf: *mut c_void, + len: usize, + flags: i32, + src_addr: *mut sockaddr, + addrlen: *mut socklen_t, + ) -> i32; + + pub fn pthread_create( + thread: *mut pthread_t, + attr: *const pthread_attr_t, + start_routine: extern "C" fn(*mut c_void) -> *mut c_void, + arg: *mut c_void, + ) -> i32; + + pub fn clock_gettime(clockid: clockid_t, tp: *mut timespec) -> i32; + pub fn futimens(fd: i32, times: *const timespec) -> i32; + pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, clock_id: clockid_t) -> i32; + pub fn pthread_set_name_np(thread: pthread_t, name: *const c_char) -> i32; + pub fn getrandom(buf: *mut c_void, buflen: usize, flags: u32) -> isize; +} From d607b77d316413915f340b7b6617902bc19efdd0 Mon Sep 17 00:00:00 2001 From: ChanTsune <41658782+ChanTsune@users.noreply.github.com> Date: Wed, 25 Sep 2024 07:31:46 -0700 Subject: [PATCH 0156/1228] Add `AT_EACCESS` to emscripten (#3911) https://github.com/emscripten-core/emscripten/blob/3073806d3fde4320c81cb2dc7cf0e00378f52df1/system/lib/libc/musl/include/fcntl.h#L68 (backport ) (cherry picked from commit b23f5176536c4ed3a1a28dcb377db32692166fae) --- libc-test/semver/emscripten.txt | 1 + src/unix/linux_like/emscripten/mod.rs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/libc-test/semver/emscripten.txt b/libc-test/semver/emscripten.txt index d14abae402367..d61541c4f2baf 100644 --- a/libc-test/semver/emscripten.txt +++ b/libc-test/semver/emscripten.txt @@ -1,3 +1,4 @@ +AT_EACCESS getentropy posix_fallocate64 getpwnam_r diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 11a16aa7afa41..5a598f5503850 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -775,6 +775,8 @@ pub const POSIX_MADV_RANDOM: ::c_int = 1; pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; pub const POSIX_MADV_WILLNEED: ::c_int = 3; +pub const AT_EACCESS: ::c_int = 0x200; + pub const S_IEXEC: mode_t = 64; pub const S_IWRITE: mode_t = 128; pub const S_IREAD: mode_t = 256; From a648a8e6377154ff5296ae60331d1265f827557b Mon Sep 17 00:00:00 2001 From: Yoh Deadfall Date: Mon, 30 Sep 2024 20:06:35 +0300 Subject: [PATCH 0157/1228] Android: Added PR_GET_NAME and PR_SET_NAME (#3941) (backport ) (cherry picked from commit 2191c87696b414a87a3e53428f176358179c7918) --- libc-test/semver/android.txt | 2 ++ src/unix/linux_like/android/mod.rs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index ddd651da0d6df..3c452943dd7e3 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -1904,9 +1904,11 @@ POSIX_FADV_NORMAL POSIX_FADV_RANDOM POSIX_FADV_SEQUENTIAL POSIX_FADV_WILLNEED +PR_GET_NAME PR_GET_NO_NEW_PRIVS PR_GET_SECCOMP PR_GET_TIMING +PR_SET_NAME PR_SET_NO_NEW_PRIVS PR_SET_SECCOMP PR_TIMING_STATISTICAL diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index a8e935967c132..3896492ebe706 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3153,6 +3153,8 @@ pub const PR_GET_TIMING: ::c_int = 13; pub const PR_SET_TIMING: ::c_int = 14; pub const PR_TIMING_STATISTICAL: ::c_int = 0; pub const PR_TIMING_TIMESTAMP: ::c_int = 1; +pub const PR_SET_NAME: ::c_int = 15; +pub const PR_GET_NAME: ::c_int = 16; // linux/if_addr.h pub const IFA_UNSPEC: ::c_ushort = 0; From bd30fe142e09dd3324dbda77a6312a1049964a6c Mon Sep 17 00:00:00 2001 From: Paul Mabileau <35344098+PaulDance@users.noreply.github.com> Date: Mon, 30 Sep 2024 18:17:53 +0200 Subject: [PATCH 0158/1228] Feat(Apple): Add the LOCAL_PEERTOKEN socket option (#3929) * Feat(apple): Add LOCAL_PEERTOKEN Taken from `sys/un.h`. Signed-off-by: Paul Mabileau * Docs(apple): Add description for LOCAL_PEER* socket options Signed-off-by: Paul Mabileau * Chore(test/apple): Add the LOCAL_PEERTOKEN symbol Signed-off-by: Paul Mabileau --------- Signed-off-by: Paul Mabileau (backport ) (cherry picked from commit 0a25ed85c91df598b1f730fadc75ddac0dcdee7e) --- libc-test/semver/apple.txt | 1 + src/unix/bsd/apple/mod.rs | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index b528a1c64350c..0faff99297129 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -849,6 +849,7 @@ LOCAL_PEEREPID LOCAL_PEEREUUID LOCAL_PEERPID LOCAL_PEERUUID +LOCAL_PEERTOKEN LOGIN_PROCESS LOG_AUTHPRIV LOG_CRON diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 3e150feee6afa..50320c759a90f 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -4194,11 +4194,18 @@ pub const TCP_CONNECTION_INFO: ::c_int = 0x106; pub const SOL_LOCAL: ::c_int = 0; +/// Retrieve peer credentials. pub const LOCAL_PEERCRED: ::c_int = 0x001; +/// Retrieve peer PID. pub const LOCAL_PEERPID: ::c_int = 0x002; +/// Retrieve effective peer PID. pub const LOCAL_PEEREPID: ::c_int = 0x003; +/// Retrieve peer UUID. pub const LOCAL_PEERUUID: ::c_int = 0x004; +/// Retrieve effective peer UUID. pub const LOCAL_PEEREUUID: ::c_int = 0x005; +/// Retrieve peer audit token. +pub const LOCAL_PEERTOKEN: ::c_int = 0x006; pub const SOL_SOCKET: ::c_int = 0xffff; From b80609c661f1e6f2eab242b63ccbf20be14f6b91 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 30 Sep 2024 23:02:26 -0400 Subject: [PATCH 0159/1228] Update PULL_REQUEST_TEMPLATE.md (#3953) (backport ) (cherry picked from commit 3f2d4cbd6b6fd9017d0a98217dadecc584a1cfe8) --- .github/PULL_REQUEST_TEMPLATE.md | 34 +++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 70ed1ca355300..5aafd9213ef20 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,15 +1,27 @@ -Thanks for considering submitting a PR! + -- \[ ] Edit corresponding file(s) under `libc-test/semver` when you add/remove item(s), e.g. edit `linux.txt` if you add an item to `src/unix/linux_like/linux/mod.rs` -- \[ ] Your PR doesn't contain any private or *unstable* values like `*LAST` or `*MAX` (see [#3131](https://github.com/rust-lang/libc/issues/3131)) -- \[ ] If your PR has a breaking change, please clarify it -- \[ ] If your PR increments version number, it must NOT contain any other changes (otherwise a release could be delayed) -- \[ ] Make sure `ci/style.sh` passes -- \[ ] `cd libc-test && cargo test` - - (this might fail on your env due to environment difference between your env and CI. Ignore failures if you are not sure) +# Description -Delete this line and everything above before opening your PR. + + +# Sources + + + +# Checklist + + + +- [ ] Relevant tests in `libc-test/semver` have been updated +- [ ] No placeholder or unstable values like `*LAST` or `*MAX` are + included (see [#3131](https://github.com/rust-lang/libc/issues/3131)) +- [ ] Tested locally (`cd libc-test && cargo test --target mytarget`); + especially relevant for platforms that may not be checked in CI From 68d73f40591dc4edb7295cd6bc12ff05ab114a92 Mon Sep 17 00:00:00 2001 From: SteveLauC Date: Tue, 1 Oct 2024 10:35:54 +0800 Subject: [PATCH 0160/1228] feat: move NT_XXX constants defined in elf.h to linux/mod.rs (#3938) (backport ) (cherry picked from commit 4ce03dad4387f27d15ab9f7da81a93ac7f82d9ce) --- libc-test/semver/linux-gnu.txt | 17 ----------------- libc-test/semver/linux.txt | 17 +++++++++++++++++ src/unix/linux_like/linux/gnu/mod.rs | 19 ------------------- src/unix/linux_like/linux/mod.rs | 19 +++++++++++++++++++ 4 files changed, 36 insertions(+), 36 deletions(-) diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index bca6e4fd18ed7..59d956fa42d99 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -337,23 +337,6 @@ NFT_USERDATA_MAXLEN NF_NETDEV_INGRESS NF_NETDEV_NUMHOOKS NILFS_SUPER_MAGIC -NT_PRSTATUS -NT_PRFPREG -NT_FPREGSET -NT_PRPSINFO -NT_PRXREG -NT_TASKSTRUCT -NT_PLATFORM -NT_AUXV -NT_GWINDOWS -NT_ASRS -NT_PSTATUS -NT_PSINFO -NT_PRCRED -NT_UTSNAME -NT_LWPSTATUS -NT_LWPSINFO -NT_PRFPXREG NTF_EXT_LEARNED NTF_MASTER NTF_OFFLOADED diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index d0b966f4f1085..a5ccef469541d 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -3950,3 +3950,20 @@ eventfd_write __c_anonymous_ifru_map __c_anonymous_ifr_ifru __c_anonymous_ifc_ifcu +NT_PRSTATUS +NT_PRFPREG +NT_FPREGSET +NT_PRPSINFO +NT_PRXREG +NT_TASKSTRUCT +NT_PLATFORM +NT_AUXV +NT_GWINDOWS +NT_ASRS +NT_PSTATUS +NT_PSINFO +NT_PRCRED +NT_UTSNAME +NT_LWPSTATUS +NT_LWPSINFO +NT_PRFPXREG diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 7fd7fb190ca9d..b28c33f2c1d41 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1103,25 +1103,6 @@ pub const XSK_UNALIGNED_BUF_ADDR_MASK: ::c_ulonglong = (1 << XSK_UNALIGNED_BUF_O pub const XDP_PKT_CONTD: ::__u32 = 1 << 0; -// elf.h -pub const NT_PRSTATUS: ::c_int = 1; -pub const NT_PRFPREG: ::c_int = 2; -pub const NT_FPREGSET: ::c_int = 2; -pub const NT_PRPSINFO: ::c_int = 3; -pub const NT_PRXREG: ::c_int = 4; -pub const NT_TASKSTRUCT: ::c_int = 4; -pub const NT_PLATFORM: ::c_int = 5; -pub const NT_AUXV: ::c_int = 6; -pub const NT_GWINDOWS: ::c_int = 7; -pub const NT_ASRS: ::c_int = 8; -pub const NT_PSTATUS: ::c_int = 10; -pub const NT_PSINFO: ::c_int = 13; -pub const NT_PRCRED: ::c_int = 14; -pub const NT_UTSNAME: ::c_int = 15; -pub const NT_LWPSTATUS: ::c_int = 16; -pub const NT_LWPSINFO: ::c_int = 17; -pub const NT_PRFPXREG: ::c_int = 20; - pub const ELFOSABI_ARM_AEABI: u8 = 64; // linux/sched.h diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 7df3a953c293b..20c4a16979087 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -4907,6 +4907,25 @@ pub const SCHED_FLAG_KEEP_PARAMS: ::c_int = 0x10; pub const SCHED_FLAG_UTIL_CLAMP_MIN: ::c_int = 0x20; pub const SCHED_FLAG_UTIL_CLAMP_MAX: ::c_int = 0x40; +// elf.h +pub const NT_PRSTATUS: ::c_int = 1; +pub const NT_PRFPREG: ::c_int = 2; +pub const NT_FPREGSET: ::c_int = 2; +pub const NT_PRPSINFO: ::c_int = 3; +pub const NT_PRXREG: ::c_int = 4; +pub const NT_TASKSTRUCT: ::c_int = 4; +pub const NT_PLATFORM: ::c_int = 5; +pub const NT_AUXV: ::c_int = 6; +pub const NT_GWINDOWS: ::c_int = 7; +pub const NT_ASRS: ::c_int = 8; +pub const NT_PSTATUS: ::c_int = 10; +pub const NT_PSINFO: ::c_int = 13; +pub const NT_PRCRED: ::c_int = 14; +pub const NT_UTSNAME: ::c_int = 15; +pub const NT_LWPSTATUS: ::c_int = 16; +pub const NT_LWPSINFO: ::c_int = 17; +pub const NT_PRFPXREG: ::c_int = 20; + pub const SCHED_FLAG_KEEP_ALL: ::c_int = SCHED_FLAG_KEEP_POLICY | SCHED_FLAG_KEEP_PARAMS; pub const SCHED_FLAG_UTIL_CLAMP: ::c_int = SCHED_FLAG_UTIL_CLAMP_MIN | SCHED_FLAG_UTIL_CLAMP_MAX; From ccbcfbbf137652b0501a0c4e9aba6239b77a1ddc Mon Sep 17 00:00:00 2001 From: ChanTsune <41658782+ChanTsune@users.noreply.github.com> Date: Mon, 30 Sep 2024 21:25:40 -0700 Subject: [PATCH 0161/1228] Add `getgrgid`, `getgrnam`, `getgrnam_r` and `getgrgid_r` for emscripten (#3912) (backport ) (cherry picked from commit 1566923c37118df370ed4620a157cb803b0d4415) --- libc-test/semver/emscripten.txt | 4 ++++ src/unix/linux_like/emscripten/mod.rs | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/libc-test/semver/emscripten.txt b/libc-test/semver/emscripten.txt index d61541c4f2baf..150a7fb8a6c6f 100644 --- a/libc-test/semver/emscripten.txt +++ b/libc-test/semver/emscripten.txt @@ -1,5 +1,9 @@ AT_EACCESS getentropy +getgrgid +getgrnam +getgrnam_r +getgrgid_r posix_fallocate64 getpwnam_r getpwuid_r diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 5a598f5503850..2f515f390d8e2 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -1793,6 +1793,24 @@ extern "C" { buflen: ::size_t, result: *mut *mut passwd, ) -> ::c_int; + + // grp.h + pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; } // Alias to 64 to mimic glibc's LFS64 support From 9606af1acdd3b8e4603426524f5ad91e8fe792d8 Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Tue, 1 Oct 2024 05:48:22 +0100 Subject: [PATCH 0162/1228] Add mach_error_string (and mach_error_t) (#3913) `mach_error_string` is defined in `/usr/include/mach/mach_error.h` It is not referenced in the documentation Apple website. ``` char *mach_error_string( /* * Returns a string appropriate to the error argument given */ mach_error_t error_value ); ``` `mach_error_t` is defined in `/usr/include/mach/error.h` https://developer.apple.com/documentation/kernel/mach_error_t ``` typedef kern_return_t mach_error_t; ``` (backport ) (cherry picked from commit d8ff07b336fd28c58088b718fee4f0f350b0f733) --- libc-test/semver/apple.txt | 2 ++ src/unix/bsd/apple/mod.rs | 3 +++ 2 files changed, 5 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index 0faff99297129..69166efd65e81 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -2020,6 +2020,8 @@ log2phys login_tty lutimes mach_absolute_time +mach_error_string +mach_error_t mach_header mach_header_64 mach_host_self diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 50320c759a90f..c204f1db507fe 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -56,6 +56,7 @@ pub type thread_inspect_t = ::mach_port_t; pub type thread_act_t = ::mach_port_t; pub type thread_act_array_t = *mut ::thread_act_t; pub type policy_t = ::c_int; +pub type mach_error_t = ::kern_return_t; pub type mach_vm_address_t = u64; pub type mach_vm_offset_t = u64; pub type mach_vm_size_t = u64; @@ -6330,6 +6331,8 @@ extern "C" { 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; + pub fn mach_error_string(error_value: ::mach_error_t) -> *mut ::c_char; + // Added in macOS 10.13 // ISO/IEC 9899:2011 ("ISO C11") K.3.7.4.1 pub fn memset_s(s: *mut ::c_void, smax: ::size_t, c: ::c_int, n: ::size_t) -> ::c_int; From 8ec259489064d56130bf3e33fd3a91a513d5a9ae Mon Sep 17 00:00:00 2001 From: Sergio Gasquez Date: Fri, 13 Sep 2024 10:07:43 +0200 Subject: [PATCH 0163/1228] fix: Update ESP-IDF constants (backport ) (cherry picked from commit 133d9d0aa84519dc999c45a2c1fabe3c62b1a37c) --- src/unix/newlib/espidf/mod.rs | 16 ++-- src/unix/newlib/mod.rs | 134 ++++++++++++++++++++++++++++------ 2 files changed, 120 insertions(+), 30 deletions(-) diff --git a/src/unix/newlib/espidf/mod.rs b/src/unix/newlib/espidf/mod.rs index 1a2a907d83191..a73e85315971f 100644 --- a/src/unix/newlib/espidf/mod.rs +++ b/src/unix/newlib/espidf/mod.rs @@ -89,15 +89,15 @@ pub const MSG_EOR: ::c_int = 0x08; pub const PTHREAD_STACK_MIN: ::size_t = 768; -pub const SIGABRT: ::c_int = 1; -pub const SIGFPE: ::c_int = 1; -pub const SIGILL: ::c_int = 1; -pub const SIGINT: ::c_int = 1; -pub const SIGSEGV: ::c_int = 1; -pub const SIGTERM: ::c_int = 1; +pub const SIGABRT: ::c_int = 6; +pub const SIGFPE: ::c_int = 8; +pub const SIGILL: ::c_int = 4; +pub const SIGINT: ::c_int = 2; +pub const SIGSEGV: ::c_int = 11; +pub const SIGTERM: ::c_int = 15; pub const SIGHUP: ::c_int = 1; -pub const SIGQUIT: ::c_int = 1; -pub const NSIG: ::size_t = 2; +pub const SIGQUIT: ::c_int = 3; +pub const NSIG: ::size_t = 32; extern "C" { pub fn pthread_create( diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index 91380db247b05..e3f7d71c90212 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -42,7 +42,13 @@ cfg_if! { pub type socklen_t = u32; pub type speed_t = u32; pub type suseconds_t = i32; -pub type tcflag_t = ::c_uint; +cfg_if! { + if #[cfg(target_os = "espidf")] { + pub type tcflag_t = u16; + } else { + pub type tcflag_t = ::c_uint; + } +} pub type useconds_t = u32; cfg_if! { @@ -244,7 +250,14 @@ align_const! { size: [__PTHREAD_INITIALIZER_BYTE; __SIZEOF_PTHREAD_RWLOCK_T], }; } -pub const NCCS: usize = 32; + +cfg_if! { + if #[cfg(target_os = "espidf")] { + pub const NCCS: usize = 11; + } else { + pub const NCCS: usize = 32; + } +} cfg_if! { if #[cfg(target_os = "espidf")] { @@ -423,7 +436,13 @@ pub const O_SYNC: ::c_int = 8192; pub const O_NONBLOCK: ::c_int = 16384; pub const O_ACCMODE: ::c_int = 3; -pub const O_CLOEXEC: ::c_int = 0x80000; +cfg_if! { + if #[cfg(target_os = "espidf")] { + pub const O_CLOEXEC: ::c_int = 0x40000; + } else { + pub const O_CLOEXEC: ::c_int = 0x80000; + } +} pub const RTLD_LAZY: ::c_int = 0x1; @@ -465,7 +484,13 @@ pub const SOL_TCP: ::c_int = 6; pub const PF_UNSPEC: ::c_int = 0; pub const PF_INET: ::c_int = 2; -pub const PF_INET6: ::c_int = 23; +cfg_if! { + if #[cfg(target_os = "espidf")] { + pub const PF_INET6: ::c_int = 10; + } else { + pub const PF_INET6: ::c_int = 23; + } +} pub const AF_UNSPEC: ::c_int = 0; pub const AF_INET: ::c_int = 2; @@ -550,6 +575,9 @@ cfg_if! { if #[cfg(target_os = "vita")] { pub const TCP_NODELAY: ::c_int = 1; pub const TCP_MAXSEG: ::c_int = 2; + } else if #[cfg(target_os = "espidf")] { + pub const TCP_NODELAY: ::c_int = 1; + pub const TCP_MAXSEG: ::c_int = 8194; } else { pub const TCP_NODELAY: ::c_int = 8193; pub const TCP_MAXSEG: ::c_int = 8194; @@ -558,13 +586,23 @@ cfg_if! { pub const TCP_NOPUSH: ::c_int = 4; pub const TCP_NOOPT: ::c_int = 8; -pub const TCP_KEEPIDLE: ::c_int = 256; -pub const TCP_KEEPINTVL: ::c_int = 512; -pub const TCP_KEEPCNT: ::c_int = 1024; +cfg_if! { + if #[cfg(target_os = "espidf")] { + pub const TCP_KEEPIDLE: ::c_int = 3; + pub const TCP_KEEPINTVL: ::c_int = 4; + pub const TCP_KEEPCNT: ::c_int = 5; + } else { + pub const TCP_KEEPIDLE: ::c_int = 256; + pub const TCP_KEEPINTVL: ::c_int = 512; + pub const TCP_KEEPCNT: ::c_int = 1024; + } +} cfg_if! { if #[cfg(target_os = "horizon")] { pub const IP_TOS: ::c_int = 7; + } else if #[cfg(target_os = "espidf")] { + pub const IP_TOS: ::c_int = 1; } else { pub const IP_TOS: ::c_int = 3; } @@ -572,55 +610,107 @@ cfg_if! { cfg_if! { if #[cfg(target_os = "vita")] { pub const IP_TTL: ::c_int = 4; + } else if #[cfg(target_os = "espidf")] { + pub const IP_TTL: ::c_int = 2; } else { pub const IP_TTL: ::c_int = 8; } } -pub const IP_MULTICAST_IF: ::c_int = 9; -pub const IP_MULTICAST_TTL: ::c_int = 10; -pub const IP_MULTICAST_LOOP: ::c_int = 11; + +cfg_if! { + if #[cfg(target_os = "espidf")] { + pub const IP_MULTICAST_IF: ::c_int = 6; + pub const IP_MULTICAST_TTL: ::c_int = 5; + pub const IP_MULTICAST_LOOP: ::c_int = 7; + } else { + pub const IP_MULTICAST_IF: ::c_int = 9; + pub const IP_MULTICAST_TTL: ::c_int = 10; + pub const IP_MULTICAST_LOOP: ::c_int = 11; + } +} + cfg_if! { if #[cfg(target_os = "vita")] { pub const IP_ADD_MEMBERSHIP: ::c_int = 12; pub const IP_DROP_MEMBERSHIP: ::c_int = 13; + } else if #[cfg(target_os = "espidf")] { + pub const IP_ADD_MEMBERSHIP: ::c_int = 3; + pub const IP_DROP_MEMBERSHIP: ::c_int = 4; } else { pub const IP_ADD_MEMBERSHIP: ::c_int = 11; pub const IP_DROP_MEMBERSHIP: ::c_int = 12; } } pub const IPV6_UNICAST_HOPS: ::c_int = 4; -pub const IPV6_MULTICAST_IF: ::c_int = 9; -pub const IPV6_MULTICAST_HOPS: ::c_int = 10; -pub const IPV6_MULTICAST_LOOP: ::c_int = 11; +cfg_if! { + if #[cfg(target_os = "espidf")] { + pub const IPV6_MULTICAST_IF: ::c_int = 768; + pub const IPV6_MULTICAST_HOPS: ::c_int = 769; + pub const IPV6_MULTICAST_LOOP: ::c_int = 770; + } else { + pub const IPV6_MULTICAST_IF: ::c_int = 9; + pub const IPV6_MULTICAST_HOPS: ::c_int = 10; + pub const IPV6_MULTICAST_LOOP: ::c_int = 11; + } +} pub const IPV6_V6ONLY: ::c_int = 27; pub const IPV6_JOIN_GROUP: ::c_int = 12; pub const IPV6_LEAVE_GROUP: ::c_int = 13; pub const IPV6_ADD_MEMBERSHIP: ::c_int = 12; pub const IPV6_DROP_MEMBERSHIP: ::c_int = 13; -pub const HOST_NOT_FOUND: ::c_int = 1; -pub const NO_DATA: ::c_int = 2; +cfg_if! { + if #[cfg(target_os = "espidf")] { + pub const HOST_NOT_FOUND: ::c_int = 210; + pub const NO_DATA: ::c_int = 211; + pub const NO_RECOVERY: ::c_int = 212; + pub const TRY_AGAIN: ::c_int = 213; + + } else { + pub const HOST_NOT_FOUND: ::c_int = 1; + pub const NO_DATA: ::c_int = 2; + pub const NO_RECOVERY: ::c_int = 3; + pub const TRY_AGAIN: ::c_int = 4; + } +} pub const NO_ADDRESS: ::c_int = 2; -pub const NO_RECOVERY: ::c_int = 3; -pub const TRY_AGAIN: ::c_int = 4; pub const AI_PASSIVE: ::c_int = 1; pub const AI_CANONNAME: ::c_int = 2; pub const AI_NUMERICHOST: ::c_int = 4; -pub const AI_NUMERICSERV: ::c_int = 0; -pub const AI_ADDRCONFIG: ::c_int = 0; +cfg_if! { + if #[cfg(target_os = "espidf")] { + pub const AI_NUMERICSERV: ::c_int = 8; + pub const AI_ADDRCONFIG: ::c_int = 64; + } else { + pub const AI_NUMERICSERV: ::c_int = 0; + pub const AI_ADDRCONFIG: ::c_int = 0; + } +} pub const NI_MAXHOST: ::c_int = 1025; pub const NI_MAXSERV: ::c_int = 32; pub const NI_NOFQDN: ::c_int = 1; pub const NI_NUMERICHOST: ::c_int = 2; pub const NI_NAMEREQD: ::c_int = 4; -pub const NI_NUMERICSERV: ::c_int = 0; -pub const NI_DGRAM: ::c_int = 0; +cfg_if! { + if #[cfg(target_os = "espidf")] { + pub const NI_NUMERICSERV: ::c_int = 8; + pub const NI_DGRAM: ::c_int = 16; + } else { + pub const NI_NUMERICSERV: ::c_int = 0; + pub const NI_DGRAM: ::c_int = 0; + } +} cfg_if! { // Defined in vita/mod.rs for "vita" - if #[cfg(not(target_os = "vita"))] { + if #[cfg(target_os = "espidf")] { + pub const EAI_FAMILY: ::c_int = 204; + pub const EAI_MEMORY: ::c_int = 203; + pub const EAI_NONAME: ::c_int = 200; + pub const EAI_SOCKTYPE: ::c_int = 10; + } else if #[cfg(not(target_os = "vita"))] { pub const EAI_FAMILY: ::c_int = -303; pub const EAI_MEMORY: ::c_int = -304; pub const EAI_NONAME: ::c_int = -305; From 016e498afa588ed56b87c9398dbcef33c9ea483a Mon Sep 17 00:00:00 2001 From: Sergio Gasquez Date: Fri, 13 Sep 2024 14:25:37 +0200 Subject: [PATCH 0164/1228] fix: Update ESP-IDF structs (backport ) (cherry picked from commit 6f2b73a294d929120f328edffc076fab919f87b0) --- src/unix/newlib/generic.rs | 3 +++ src/unix/newlib/mod.rs | 23 ++++++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/unix/newlib/generic.rs b/src/unix/newlib/generic.rs index e45413a7a9e2c..d716dec19f0f8 100644 --- a/src/unix/newlib/generic.rs +++ b/src/unix/newlib/generic.rs @@ -2,7 +2,10 @@ s! { pub struct sigset_t { + #[cfg(target_os = "horizon")] __val: [::c_ulong; 16], + #[cfg(not(target_os = "horizon"))] + __val: u32, } pub struct stat { diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index e3f7d71c90212..78e18d8ceac72 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -203,6 +203,10 @@ s! { pub c_lflag: ::tcflag_t, pub c_line: ::cc_t, pub c_cc: [::cc_t; ::NCCS], + #[cfg(target_os = "espidf")] + pub c_ispeed: u32, + #[cfg(target_os = "espidf")] + pub c_ospeed: u32, } pub struct sem_t { // Unverified @@ -230,7 +234,24 @@ s! { } pub struct pthread_attr_t { // Unverified - __size: [u8; __SIZEOF_PTHREAD_ATTR_T] + #[cfg(not(target_os = "espidf"))] + __size: [u8; __SIZEOF_PTHREAD_ATTR_T], + #[cfg(target_os = "espidf")] + pub is_initialized: i32, + #[cfg(target_os = "espidf")] + pub stackaddr: *mut crate::c_void, + #[cfg(target_os = "espidf")] + pub stacksize: i32, + #[cfg(target_os = "espidf")] + pub contentionscope: i32, + #[cfg(target_os = "espidf")] + pub inheritsched: i32, + #[cfg(target_os = "espidf")] + pub schedpolicy: i32, + #[cfg(target_os = "espidf")] + pub schedparam: i32, + #[cfg(target_os = "espidf")] + pub detachstate: i32, } pub struct pthread_rwlockattr_t { // Unverified From cbad5bef7ae9226102d36bff616b2f6388c3a2ef Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 14 Sep 2024 20:20:02 +0100 Subject: [PATCH 0165/1228] fcntl add F_TRANSFEREXTENTS for macos. [ref](https://newosxbook.com/src.jl?tree=xnu&file=/bsd/man/man2/fcntl.2) (backport ) (cherry picked from commit 2fcf54bcb327202f0e50374ef904faeb1aa4bfc3) --- libc-test/semver/apple.txt | 1 + src/unix/bsd/apple/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index 69166efd65e81..11f26658c2a47 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -455,6 +455,7 @@ F_SPECULATIVE_READ F_TEST F_THAW_FS F_TLOCK +F_TRANSFEREXTENTS F_TRIM_ACTIVE_FILE F_ULOCK F_UNLCK diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index c204f1db507fe..804bd89b5c4e8 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -3618,6 +3618,7 @@ 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_TRANSFEREXTENTS: ::c_int = 110; pub const F_ALLOCATECONTIG: ::c_uint = 0x02; pub const F_ALLOCATEALL: ::c_uint = 0x04; From af80ac49fd64b64009568270997f285b89864c0c Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 27 Sep 2024 22:01:43 +0000 Subject: [PATCH 0166/1228] arc4random api for haiku (backport ) (cherry picked from commit 8924123c42e5fe9232f524129fd4e0d6f239b1d2) --- libc-test/build.rs | 1 + src/unix/haiku/mod.rs | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index fb779daecc123..dfa6185195dbc 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4834,6 +4834,7 @@ fn test_haiku(target: &str) { "libutil.h", "link.h", "pty.h", + "stdlib.h", "stringlist.h", "sys/link_elf.h", } diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 4dc931cd047d9..3a226e6696405 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -2133,6 +2133,10 @@ extern "C" { >, data: *mut ::c_void, ) -> ::c_int; + + pub fn arc4random() -> u32; + pub fn arc4random_uniform(upper_bound: u32) -> u32; + pub fn arc4random_buf(buf: *mut ::c_void, n: ::size_t); } #[link(name = "gnu")] From c800e28d6c9d10149bd70c56554e6e5ca2b58416 Mon Sep 17 00:00:00 2001 From: Rain Date: Sat, 28 Sep 2024 18:48:08 -0700 Subject: [PATCH 0167/1228] [musl] add posix_spawn chdir functions Add `posix_spawn_file_actions_add[f]chdir_np`, as present in musl 1.1.24 and above ([reference]). [reference]: https://git.musl-libc.org/cgit/musl/commit/?id=74244e5b3ed4a61d99c5fc0967b69e5c9a753456 (backport ) (cherry picked from commit b68a15960f28d36f3d248978a910a9e3faf99682) --- libc-test/semver/linux-musl.txt | 2 ++ src/unix/linux_like/linux/musl/mod.rs | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index e873cb21d0491..b775cec7182d9 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -80,6 +80,8 @@ getloadavg lio_listio ntptimeval open_wmemstream +posix_spawn_file_actions_addchdir_np +posix_spawn_file_actions_addfchdir_np preadv2 preadv64 prlimit diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 72bd335360b8e..14e1e6d3bfd0f 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -983,6 +983,17 @@ extern "C" { pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; pub fn basename(path: *mut ::c_char) -> *mut ::c_char; + + // Added in `musl` 1.1.24 + pub fn posix_spawn_file_actions_addchdir_np( + actions: *mut ::posix_spawn_file_actions_t, + path: *const ::c_char, + ) -> ::c_int; + // Added in `musl` 1.1.24 + pub fn posix_spawn_file_actions_addfchdir_np( + actions: *mut ::posix_spawn_file_actions_t, + fd: ::c_int, + ) -> ::c_int; } // Alias to 64 to mimic glibc's LFS64 support From 9c32959f4b3293642664346b366cf29803210fad Mon Sep 17 00:00:00 2001 From: Jan Sommer Date: Tue, 15 Oct 2024 18:28:51 +0200 Subject: [PATCH 0168/1228] Add getentropy to RTEMS (backport ) (cherry picked from commit a4ef31b4334b658df8760faec51030559af6a109) --- src/unix/newlib/rtems/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/newlib/rtems/mod.rs b/src/unix/newlib/rtems/mod.rs index 36f4820c92f4f..031754950e6c1 100644 --- a/src/unix/newlib/rtems/mod.rs +++ b/src/unix/newlib/rtems/mod.rs @@ -137,5 +137,7 @@ extern "C" { clock_id: ::clockid_t, ) -> ::c_int; + pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; + pub fn setgroups(ngroups: ::c_int, grouplist: *const ::gid_t) -> ::c_int; } From c185415e6a4e7c024f6cac7a704393a7d9489821 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Tue, 15 Oct 2024 12:35:21 -0600 Subject: [PATCH 0169/1228] Temporarily disable CI on FreeBSD 15 FreeBSD 15 is the unstable development release. Currently its GCE images available to Cirrus CI don't work because the solib version of libmd was just bumped, and the package builders haven't yet caught up. Issue #3967 (backport ) (cherry picked from commit 9b0ccb1014d847270be7721a059bc34d6e32161e) --- .cirrus.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 7ce3b932ba084..ff3b80f7f4fc1 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -7,9 +7,13 @@ task: - name: nightly freebsd-14 freebsd_instance: image: freebsd-14-0-release-amd64-ufs - - name: nightly freebsd-15 - freebsd_instance: - image_family: freebsd-15-0-snap + # Temporarily disable CI on FreeBSD 15.0-CURRENT until the libmd solib + # fallout is cleaned up. + # FIXME https://github.com/rust-lang/libc/issues/3967 + # https://github.com/rust-lang/libc/issues/3967 + #- name: nightly 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 From 9285f0e0fe3c3d5f2fe861e0d85963be73cb3cb2 Mon Sep 17 00:00:00 2001 From: pin Date: Wed, 25 Sep 2024 21:07:36 +0200 Subject: [PATCH 0170/1228] Add missing definitions on NetBSD (#3927) This PR adds support for: CLOCK_PROCESS_CPUTIME_ID CLOCK_THREAD_CPUTIME_ID sysctlnametomib It replaces the following closed PRs: https://github.com/rust-lang/libc/pull/3926 https://github.com/rust-lang/libc/pull/3923 Sorry for the back and forward actions. (backport ) (cherry picked from commit 8ff67c11ae70530c2bcfe50ceaca9f5c1db27163) --- libc-test/semver/netbsd.txt | 3 +++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index 838f28f71b5d1..e07a7dbf08ae6 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -136,6 +136,8 @@ CLD_EXITED CLD_KILLED CLD_STOPPED CLD_TRAPPED +CLOCK_PROCESS_CPUTIME_ID +CLOCK_THREAD_CPUTIME_ID CMSG_DATA CMSG_FIRSTHDR CMSG_LEN @@ -1567,6 +1569,7 @@ sync syscall sysctl sysctlbyname +sysctlnametomib sysctldesc tcp_info telldir diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 0517a47b69c30..ba8dc8265e01f 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1886,6 +1886,8 @@ pub const MNT_NOWAIT: ::c_int = 2; pub const MNT_LAZY: ::c_int = 3; // +pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 2; +pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 4; pub const NTP_API: ::c_int = 4; pub const MAXPHASE: ::c_long = 500000000; pub const MAXFREQ: ::c_long = 500000; @@ -2668,6 +2670,11 @@ extern "C" { newp: *const ::c_void, newlen: ::size_t, ) -> ::c_int; + pub fn sysctlnametomib( + sname: *const ::c_char, + name: *mut ::c_int, + namelenp: *mut ::size_t, + ) -> ::c_int; #[link_name = "__kevent50"] pub fn kevent( kq: ::c_int, From 3c09095c932fde1c0a2a0154bc7352c4a3d3629b Mon Sep 17 00:00:00 2001 From: B I Mohammed Abbas Date: Thu, 10 Oct 2024 13:10:33 +0530 Subject: [PATCH 0171/1228] Make vxworks functions public and add Risc-V targets (backport ) (cherry picked from commit dd202816ec4ddc6cdf2ff9f2710768d7cdbf8309) --- Cargo.toml | 2 ++ ci/build.sh | 2 ++ src/vxworks/mod.rs | 10 ++++++++-- src/vxworks/riscv32.rs | 4 ++++ src/vxworks/riscv64.rs | 4 ++++ 5 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 src/vxworks/riscv32.rs create mode 100644 src/vxworks/riscv64.rs diff --git a/Cargo.toml b/Cargo.toml index 3ca0827a37aed..825e296618942 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -85,12 +85,14 @@ targets = [ "riscv32i-unknown-none-elf", "riscv32imac-unknown-none-elf", "riscv32imc-unknown-none-elf", + "riscv32-wrs-vxworks", "riscv64gc-unknown-freebsd", "riscv64gc-unknown-hermit", "riscv64gc-unknown-linux-gnu", "riscv64gc-unknown-linux-musl", "riscv64gc-unknown-none-elf", "riscv64imac-unknown-none-elf", + "riscv64-wrs-vxworks", "s390x-unknown-linux-gnu", "s390x-unknown-linux-musl", "sparc-unknown-linux-gnu", diff --git a/ci/build.sh b/ci/build.sh index d90872f4e8c84..d4b85ccbf0bd9 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -252,11 +252,13 @@ riscv32i-unknown-none-elf \ riscv32imac-unknown-none-elf \ riscv32imc-unknown-none-elf \ riscv32gc-unknown-linux-gnu \ +riscv32-wrs-vxworks \ riscv64gc-unknown-freebsd \ riscv64gc-unknown-hermit \ riscv64gc-unknown-linux-musl \ riscv64gc-unknown-none-elf \ riscv64imac-unknown-none-elf \ +riscv64-wrs-vxworks \ s390x-unknown-linux-musl \ sparc-unknown-linux-gnu \ sparc64-unknown-netbsd \ diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 314283410aed6..a633ff9b1a1fc 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -1878,8 +1878,8 @@ extern "C" { pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; // vxCpuLib.h - fn vxCpuEnabledGet() -> ::cpuset_t; // Get set of running CPU's in the system - fn vxCpuConfiguredGet() -> ::cpuset_t; // Get set of Configured CPU's in the system + pub fn vxCpuEnabledGet() -> ::cpuset_t; // Get set of running CPU's in the system + pub fn vxCpuConfiguredGet() -> ::cpuset_t; // Get set of Configured CPU's in the system } //Dummy functions, these don't really exist in VxWorks. @@ -1980,6 +1980,12 @@ cfg_if! { } else if #[cfg(target_arch = "powerpc64")] { mod powerpc64; pub use self::powerpc64::*; + } else if #[cfg(target_arch = "riscv32")] { + mod riscv32; + pub use self::riscv32::*; + } else if #[cfg(target_arch = "riscv64")] { + mod riscv64; + pub use self::riscv64::*; } else { // Unknown target_arch } diff --git a/src/vxworks/riscv32.rs b/src/vxworks/riscv32.rs new file mode 100644 index 0000000000000..e617bb83c6ce3 --- /dev/null +++ b/src/vxworks/riscv32.rs @@ -0,0 +1,4 @@ +pub type c_char = i8; +pub type wchar_t = i32; +pub type c_long = i32; +pub type c_ulong = u32; diff --git a/src/vxworks/riscv64.rs b/src/vxworks/riscv64.rs new file mode 100644 index 0000000000000..5e95ea2567ddf --- /dev/null +++ b/src/vxworks/riscv64.rs @@ -0,0 +1,4 @@ +pub type c_char = i8; +pub type wchar_t = i32; +pub type c_long = i64; +pub type c_ulong = u64; From 8af236251ede8aaddc0078ce320c6bbc7bd65326 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 24 Aug 2024 08:12:27 +0100 Subject: [PATCH 0172/1228] adding new illumos ptsname_r call. (backport ) (cherry picked from commit 2c6ad421956cf282d2c6c22402ee7c8683cba161) --- libc-test/semver/illumos.txt | 1 + src/unix/solarish/illumos.rs | 2 ++ src/unix/solarish/mod.rs | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/libc-test/semver/illumos.txt b/libc-test/semver/illumos.txt index d0ef608456d54..02cf4e75d688d 100644 --- a/libc-test/semver/illumos.txt +++ b/libc-test/semver/illumos.txt @@ -1,3 +1,4 @@ pthread_attr_get_np pthread_attr_getstackaddr pthread_attr_setstack +ptsname_r diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index ef3862ee41b34..6e96272352bee 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -100,4 +100,6 @@ extern "C" { pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; pub fn getpagesizes2(pagesize: *mut ::size_t, nelem: ::c_int) -> ::c_int; + + pub fn ptsname_r(fildes: ::c_int, name: *mut ::c_char, namelen: ::size_t) -> ::c_int; } diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 63056bfbd7c7c..3afd3f37840a0 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -2168,7 +2168,7 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 4; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; +pub const PTHREAD_MUTEX_DEFAULT: ::c_int = ::PTHREAD_MUTEX_NORMAL; pub const RTLD_NEXT: *mut ::c_void = -1isize as *mut ::c_void; pub const RTLD_DEFAULT: *mut ::c_void = -2isize as *mut ::c_void; From cacee27d89afaf61098910766d70616f47022fad Mon Sep 17 00:00:00 2001 From: Lzu Tao Date: Thu, 5 Sep 2024 01:27:06 +0700 Subject: [PATCH 0173/1228] Add RTF_*, RTA_*, RTAX_*, RTM_* definitions on BSDs * Unify RTM_ADD and friends under bsd namespace * Keeps RTAX_MAX as it is used to loop over alternate internal encoding. (backport ) (cherry picked from commit e1566fdb3d2c10b3807db147f080bcbfcd483ea2) --- libc-test/semver/dragonfly.txt | 25 ++++++++++++ libc-test/semver/freebsd.txt | 20 ++++++++++ libc-test/semver/netbsd.txt | 22 +++++++++++ libc-test/semver/openbsd.txt | 42 ++++++++++++++++++++ src/unix/bsd/apple/mod.rs | 37 ----------------- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 13 ++++++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 8 ++++ src/unix/bsd/freebsdlike/mod.rs | 19 +++++++++ src/unix/bsd/mod.rs | 43 ++++++++++++++++++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 27 +++++++++++++ src/unix/bsd/netbsdlike/openbsd/mod.rs | 48 +++++++++++++++++++++++ 11 files changed, 267 insertions(+), 37 deletions(-) diff --git a/libc-test/semver/dragonfly.txt b/libc-test/semver/dragonfly.txt index d2d26b0fe0688..8c9a7854f9eba 100644 --- a/libc-test/semver/dragonfly.txt +++ b/libc-test/semver/dragonfly.txt @@ -874,6 +874,31 @@ RLIMIT_STACK RLIMIT_VMEM RLIM_INFINITY RLIM_NLIMITS +RTF_XRESOLVE +RTF_LLINFO +RTF_PROTO3 +RTF_PINNED +RTF_LOCAL +RTF_BROADCAST +RTF_MULTICAST +RTM_LOCK +RTM_RESOLVE +RTM_NEWADDR +RTM_DELADDR +RTM_IFINFO +RTM_NEWMADDR +RTM_DELMADDR +RTM_IFANNOUNCE +RTM_IEEE80211 +RTF_CLONING +RTF_PRCLONING +RTF_WASCLONED +RTF_MPLSOPS +RTM_VERSION +RTAX_MPLS1 +RTAX_MPLS2 +RTAX_MPLS3 +RTAX_MAX RTLD_NEXT RTLD_NODELETE RTLD_NOLOAD diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index 85cb2d6fd823e..ed4da63788e26 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -1218,6 +1218,26 @@ RLIMIT_UMTXP RLIMIT_VMEM RLIM_INFINITY RLIM_NLIMITS +RTF_XRESOLVE +RTF_LLINFO +RTF_PROTO3 +RTF_PINNED +RTF_LOCAL +RTF_BROADCAST +RTF_MULTICAST +RTM_LOCK +RTM_RESOLVE +RTM_NEWADDR +RTM_DELADDR +RTM_IFINFO +RTM_NEWMADDR +RTM_DELMADDR +RTM_IFANNOUNCE +RTM_IEEE80211 +RTF_LLDATA +RTF_FIXEDMTU +RTM_VERSION +RTAX_MAX RTLD_NEXT RTLD_NODELETE RTLD_NOLOAD diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index e07a7dbf08ae6..cfde7caca0c55 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -929,6 +929,28 @@ RLIM_INFINITY RLIM_NLIMITS RLIM_SAVED_CUR RLIM_SAVED_MAX +RTF_MASK +RTF_CONNECTED +RTF_ANNOUNCE +RTF_SRC +RTF_LOCAL +RTF_BROADCAST +RTF_UPDATING +RTF_DONTCHANGEIFA +RTM_VERSION +RTM_LOCK +RTM_IFANNOUNCE +RTM_IEEE80211 +RTM_SETGATE +RTM_LLINFO_UPD +RTM_IFINFO +RTM_OCHGADDR +RTM_NEWADDR +RTM_DELADDR +RTM_CHGADDR +RTA_TAG +RTAX_TAG +RTAX_MAX RTLD_NEXT RTLD_NOLOAD RTLD_SELF diff --git a/libc-test/semver/openbsd.txt b/libc-test/semver/openbsd.txt index 197df09e1c2c6..ecdf40076fa72 100644 --- a/libc-test/semver/openbsd.txt +++ b/libc-test/semver/openbsd.txt @@ -765,8 +765,50 @@ RLIM_INFINITY RLIM_NLIMITS RLIM_SAVED_CUR RLIM_SAVED_MAX +RTA_BFD +RTA_DNS +RTA_LABEL +RTA_SEARCH +RTA_SRC +RTA_SRCMASK +RTA_STATIC +RTAX_BFD +RTAX_DNS +RTAX_LABEL +RTAX_MAX +RTAX_SEARCH +RTAX_SRC +RTAX_SRCMASK +RTAX_STATIC +RTF_ANNOUNCE +RTF_BFD +RTF_BROADCAST +RTF_CACHED +RTF_CLONED +RTF_CLONING +RTF_CONNECTED +RTF_FMASK +RTF_LLINFO +RTF_LOCAL +RTF_MPATH +RTF_MPLS +RTF_MULTICAST +RTF_PROTO3 RTLD_NEXT RTLD_SELF +RTM_80211INFO +RTM_BFD +RTM_CHGADDRATTR +RTM_DELADDR +RTM_DESYNC +RTM_IFANNOUNCE +RTM_IFINFO +RTM_INVALIDATE +RTM_NEWADDR +RTM_PROPOSAL +RTM_RESOLVE +RTM_SOURCE +RTM_VERSION RUSAGE_CHILDREN RUSAGE_SELF RUSAGE_THREAD diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 804bd89b5c4e8..0017403410f4c 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -4940,22 +4940,11 @@ pub const XATTR_SHOWCOMPRESSION: ::c_int = 0x0020; pub const NET_RT_IFLIST2: ::c_int = 0x0006; // net/route.h -pub const RTF_UP: ::c_int = 0x1; -pub const RTF_GATEWAY: ::c_int = 0x2; -pub const RTF_HOST: ::c_int = 0x4; -pub const RTF_REJECT: ::c_int = 0x8; -pub const RTF_DYNAMIC: ::c_int = 0x10; -pub const RTF_MODIFIED: ::c_int = 0x20; -pub const RTF_DONE: ::c_int = 0x40; pub const RTF_DELCLONE: ::c_int = 0x80; pub const RTF_CLONING: ::c_int = 0x100; pub const RTF_XRESOLVE: ::c_int = 0x200; pub const RTF_LLINFO: ::c_int = 0x400; -pub const RTF_STATIC: ::c_int = 0x800; -pub const RTF_BLACKHOLE: ::c_int = 0x1000; pub const RTF_NOIFREF: ::c_int = 0x2000; -pub const RTF_PROTO2: ::c_int = 0x4000; -pub const RTF_PROTO1: ::c_int = 0x8000; pub const RTF_PRCLONING: ::c_int = 0x10000; pub const RTF_WASCLONED: ::c_int = 0x20000; pub const RTF_PROTO3: ::c_int = 0x40000; @@ -4974,13 +4963,6 @@ pub const RTF_GLOBAL: ::c_int = 0x40000000; pub const RTM_VERSION: ::c_int = 5; // Message types -pub const RTM_ADD: ::c_int = 0x1; -pub const RTM_DELETE: ::c_int = 0x2; -pub const RTM_CHANGE: ::c_int = 0x3; -pub const RTM_GET: ::c_int = 0x4; -pub const RTM_LOSING: ::c_int = 0x5; -pub const RTM_REDIRECT: ::c_int = 0x6; -pub const RTM_MISS: ::c_int = 0x7; pub const RTM_LOCK: ::c_int = 0x8; pub const RTM_OLDADD: ::c_int = 0x9; pub const RTM_OLDDEL: ::c_int = 0xa; @@ -5004,25 +4986,6 @@ pub const RTV_SSTHRESH: ::c_int = 0x20; pub const RTV_RTT: ::c_int = 0x40; pub const RTV_RTTVAR: ::c_int = 0x80; -// Bitmask values for rtm_addrs. -pub const RTA_DST: ::c_int = 0x1; -pub const RTA_GATEWAY: ::c_int = 0x2; -pub const RTA_NETMASK: ::c_int = 0x4; -pub const RTA_GENMASK: ::c_int = 0x8; -pub const RTA_IFP: ::c_int = 0x10; -pub const RTA_IFA: ::c_int = 0x20; -pub const RTA_AUTHOR: ::c_int = 0x40; -pub const RTA_BRD: ::c_int = 0x80; - -// Index offsets for sockaddr array for alternate internal encoding. -pub const RTAX_DST: ::c_int = 0; -pub const RTAX_GATEWAY: ::c_int = 1; -pub const RTAX_NETMASK: ::c_int = 2; -pub const RTAX_GENMASK: ::c_int = 3; -pub const RTAX_IFP: ::c_int = 4; -pub const RTAX_IFA: ::c_int = 5; -pub const RTAX_AUTHOR: ::c_int = 6; -pub const RTAX_BRD: ::c_int = 7; pub const RTAX_MAX: ::c_int = 8; pub const KERN_PROCARGS2: ::c_int = 49; diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 6ade7949afb0f..9b3b872d03948 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -1522,6 +1522,19 @@ pub const NGROUPS: usize = 16; pub const RB_PAUSE: ::c_int = 0x40000; pub const RB_VIDEO: ::c_int = 0x20000000; +// net/route.h +pub const RTF_CLONING: ::c_int = 0x100; +pub const RTF_PRCLONING: ::c_int = 0x10000; +pub const RTF_WASCLONED: ::c_int = 0x20000; +pub const RTF_MPLSOPS: ::c_int = 0x1000000; + +pub const RTM_VERSION: ::c_int = 7; + +pub const RTAX_MPLS1: ::c_int = 8; +pub const RTAX_MPLS2: ::c_int = 9; +pub const RTAX_MPLS3: ::c_int = 10; +pub const RTAX_MAX: ::c_int = 11; + const_fn! { {const} fn _CMSG_ALIGN(n: usize) -> usize { (n + (::mem::size_of::<::c_long>() - 1)) & !(::mem::size_of::<::c_long>() - 1) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 3224ac8fef6e9..f8be7be51f325 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -4742,6 +4742,14 @@ pub const CPU_WHICH_CPUSET: ::c_int = 3; pub const CPU_WHICH_IRQ: ::c_int = 4; pub const CPU_WHICH_JAIL: ::c_int = 5; +// net/route.h +pub const RTF_LLDATA: ::c_int = 0x400; +pub const RTF_FIXEDMTU: ::c_int = 0x80000; + +pub const RTM_VERSION: ::c_int = 5; + +pub const RTAX_MAX: ::c_int = 8; + // sys/signal.h pub const SIGTHR: ::c_int = 32; pub const SIGLWP: ::c_int = SIGTHR; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index e0a0fbd01443f..86ade55353560 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1017,6 +1017,25 @@ pub const SO_TYPE: ::c_int = 0x1008; pub const LOCAL_PEERCRED: ::c_int = 1; +// net/route.h +pub const RTF_XRESOLVE: ::c_int = 0x200; +pub const RTF_LLINFO: ::c_int = 0x400; +pub const RTF_PROTO3: ::c_int = 0x40000; +pub const RTF_PINNED: ::c_int = 0x100000; +pub const RTF_LOCAL: ::c_int = 0x200000; +pub const RTF_BROADCAST: ::c_int = 0x400000; +pub const RTF_MULTICAST: ::c_int = 0x800000; + +pub const RTM_LOCK: ::c_int = 0x8; +pub const RTM_RESOLVE: ::c_int = 0xb; +pub const RTM_NEWADDR: ::c_int = 0xc; +pub const RTM_DELADDR: ::c_int = 0xd; +pub const RTM_IFINFO: ::c_int = 0xe; +pub const RTM_NEWMADDR: ::c_int = 0xf; +pub const RTM_DELMADDR: ::c_int = 0x10; +pub const RTM_IFANNOUNCE: ::c_int = 0x11; +pub const RTM_IEEE80211: ::c_int = 0x12; + pub const SHUT_RD: ::c_int = 0; pub const SHUT_WR: ::c_int = 1; pub const SHUT_RDWR: ::c_int = 2; diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 7acda9076d1f0..b49a83862f292 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -543,6 +543,49 @@ pub const ITIMER_REAL: ::c_int = 0; pub const ITIMER_VIRTUAL: ::c_int = 1; pub const ITIMER_PROF: ::c_int = 2; +// net/route.h + +pub const RTF_UP: ::c_int = 0x1; +pub const RTF_GATEWAY: ::c_int = 0x2; +pub const RTF_HOST: ::c_int = 0x4; +pub const RTF_REJECT: ::c_int = 0x8; +pub const RTF_DYNAMIC: ::c_int = 0x10; +pub const RTF_MODIFIED: ::c_int = 0x20; +pub const RTF_DONE: ::c_int = 0x40; +pub const RTF_STATIC: ::c_int = 0x800; +pub const RTF_BLACKHOLE: ::c_int = 0x1000; +pub const RTF_PROTO2: ::c_int = 0x4000; +pub const RTF_PROTO1: ::c_int = 0x8000; + +// Message types +pub const RTM_ADD: ::c_int = 0x1; +pub const RTM_DELETE: ::c_int = 0x2; +pub const RTM_CHANGE: ::c_int = 0x3; +pub const RTM_GET: ::c_int = 0x4; +pub const RTM_LOSING: ::c_int = 0x5; +pub const RTM_REDIRECT: ::c_int = 0x6; +pub const RTM_MISS: ::c_int = 0x7; + +// Bitmask values for rtm_addrs. +pub const RTA_DST: ::c_int = 0x1; +pub const RTA_GATEWAY: ::c_int = 0x2; +pub const RTA_NETMASK: ::c_int = 0x4; +pub const RTA_GENMASK: ::c_int = 0x8; +pub const RTA_IFP: ::c_int = 0x10; +pub const RTA_IFA: ::c_int = 0x20; +pub const RTA_AUTHOR: ::c_int = 0x40; +pub const RTA_BRD: ::c_int = 0x80; + +// Index offsets for sockaddr array for alternate internal encoding. +pub const RTAX_DST: ::c_int = 0; +pub const RTAX_GATEWAY: ::c_int = 1; +pub const RTAX_NETMASK: ::c_int = 2; +pub const RTAX_GENMASK: ::c_int = 3; +pub const RTAX_IFP: ::c_int = 4; +pub const RTAX_IFA: ::c_int = 5; +pub const RTAX_AUTHOR: ::c_int = 6; +pub const RTAX_BRD: ::c_int = 7; + f! { pub fn CMSG_FIRSTHDR(mhdr: *const ::msghdr) -> *mut ::cmsghdr { if (*mhdr).msg_controllen as usize >= ::mem::size_of::<::cmsghdr>() { diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index ba8dc8265e01f..da96d092b4062 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2424,6 +2424,33 @@ cfg_if! { } } +// net/route.h +pub const RTF_MASK: ::c_int = 0x80; +pub const RTF_CONNECTED: ::c_int = 0x100; +pub const RTF_ANNOUNCE: ::c_int = 0x20000; +pub const RTF_SRC: ::c_int = 0x10000; +pub const RTF_LOCAL: ::c_int = 0x40000; +pub const RTF_BROADCAST: ::c_int = 0x80000; +pub const RTF_UPDATING: ::c_int = 0x100000; +pub const RTF_DONTCHANGEIFA: ::c_int = 0x200000; + +pub const RTM_VERSION: ::c_int = 4; +pub const RTM_LOCK: ::c_int = 0x8; +pub const RTM_IFANNOUNCE: ::c_int = 0x10; +pub const RTM_IEEE80211: ::c_int = 0x11; +pub const RTM_SETGATE: ::c_int = 0x12; +pub const RTM_LLINFO_UPD: ::c_int = 0x13; +pub const RTM_IFINFO: ::c_int = 0x14; +pub const RTM_OCHGADDR: ::c_int = 0x15; +pub const RTM_NEWADDR: ::c_int = 0x16; +pub const RTM_DELADDR: ::c_int = 0x17; +pub const RTM_CHGADDR: ::c_int = 0x18; + +pub const RTA_TAG: ::c_int = 0x100; + +pub const RTAX_TAG: ::c_int = 8; +pub const RTAX_MAX: ::c_int = 9; + const_fn! { {const} fn _ALIGN(p: usize) -> usize { (p + _ALIGNBYTES) & !_ALIGNBYTES diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 8f470aff9a357..b397be291ff98 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1916,6 +1916,54 @@ pub const RB_RESET: ::c_int = 0x08000; pub const RB_GOODRANDOM: ::c_int = 0x10000; pub const RB_UNHIBERNATE: ::c_int = 0x20000; +// net/route.h +pub const RTF_CLONING: ::c_int = 0x100; +pub const RTF_MULTICAST: ::c_int = 0x200; +pub const RTF_LLINFO: ::c_int = 0x400; +pub const RTF_PROTO3: ::c_int = 0x2000; +pub const RTF_ANNOUNCE: ::c_int = ::RTF_PROTO2; + +pub const RTF_CLONED: ::c_int = 0x10000; +pub const RTF_CACHED: ::c_int = 0x20000; +pub const RTF_MPATH: ::c_int = 0x40000; +pub const RTF_MPLS: ::c_int = 0x100000; +pub const RTF_LOCAL: ::c_int = 0x200000; +pub const RTF_BROADCAST: ::c_int = 0x400000; +pub const RTF_CONNECTED: ::c_int = 0x800000; +pub const RTF_BFD: ::c_int = 0x1000000; +pub const RTF_FMASK: ::c_int = b'\\' as _; + +pub const RTM_VERSION: ::c_int = 5; +pub const RTM_RESOLVE: ::c_int = 0xb; +pub const RTM_NEWADDR: ::c_int = 0xc; +pub const RTM_DELADDR: ::c_int = 0xd; +pub const RTM_IFINFO: ::c_int = 0xe; +pub const RTM_IFANNOUNCE: ::c_int = 0xf; +pub const RTM_DESYNC: ::c_int = 0x10; +pub const RTM_INVALIDATE: ::c_int = 0x11; +pub const RTM_BFD: ::c_int = 0x12; +pub const RTM_PROPOSAL: ::c_int = 0x13; +pub const RTM_CHGADDRATTR: ::c_int = 0x14; +pub const RTM_80211INFO: ::c_int = 0x15; +pub const RTM_SOURCE: ::c_int = 0x16; + +pub const RTA_SRC: ::c_int = 0x100; +pub const RTA_SRCMASK: ::c_int = 0x200; +pub const RTA_LABEL: ::c_int = 0x400; +pub const RTA_BFD: ::c_int = 0x800; +pub const RTA_DNS: ::c_int = 0x1000; +pub const RTA_STATIC: ::c_int = 0x2000; +pub const RTA_SEARCH: ::c_int = 0x4000; + +pub const RTAX_SRC: ::c_int = 8; +pub const RTAX_SRCMASK: ::c_int = 9; +pub const RTAX_LABEL: ::c_int = 10; +pub const RTAX_BFD: ::c_int = 11; +pub const RTAX_DNS: ::c_int = 12; +pub const RTAX_STATIC: ::c_int = 13; +pub const RTAX_SEARCH: ::c_int = 14; +pub const RTAX_MAX: ::c_int = 15; + const_fn! { {const} fn _ALIGN(p: usize) -> usize { (p + _ALIGNBYTES) & !_ALIGNBYTES From ded2ae1785935fb1da631ba4790a45de76d8e2f1 Mon Sep 17 00:00:00 2001 From: Rain Date: Fri, 20 Sep 2024 03:05:09 +0000 Subject: [PATCH 0174/1228] [solarish/freebsd] add a few missing constants and functions Add: * `O_RSYNC` on Solaris and illumos, based on the source code at [1]. This was added a long time ago, and the blame indicates that the constant is shared with Solaris. * `POLLRDHUP` on illumos, based on the source code at [2]. This was also added a long time ago, but is not in the man page (I'll track that down separately, but it has been supported and used for many years). I cannot verify whether this is in Solaris. * `POLLRDHUP` on FreeBSD, based on this man page [3]. This was added in 2021 [4]. * `posix_fadvise` on illumos, based on this man page [5]. The related constants are on GitHub [6]. `posix_fadvise` seems to exist on Solaris [7] but I haven't been able to verify any of the constants so I've left it out of this PR. * `posix_fallocate` on illumos (man page [8]) and Solaris (man page [9]). [1]: https://github.com/illumos/illumos-gate/blame/f389e29fb4a3b48598f4e25151eb570247c6deed/usr/src/uts/common/sys/fcntl.h#L70 [2]: https://github.com/illumos/illumos-gate/blame/f389e29fb4a3b48598f4e25151eb570247c6deed/usr/src/uts/common/sys/poll.h#L66 [3]: https://man.freebsd.org/cgi/man.cgi?poll [4]: https://cgit.freebsd.org/src/commit/sys/sys/poll.h?id=3aaaa2efde896e19d229ee2cf09fe7e6ab0fbf6e [5]: https://illumos.org/man/3C/posix_fadvise [6]: https://github.com/illumos/illumos-gate/blob/f389e29fb4a3b48598f4e25151eb570247c6deed/usr/src/uts/common/sys/fcntl.h#L407-L412 [7]: https://docs.oracle.com/cd/E88353_01/html/E37843/posix-fadvise-3c.html [8]: https://illumos.org/man/3C/posix_fallocate [9]: https://docs.oracle.com/cd/E88353_01/html/E37843/posix-fallocate-3c.html (backport ) (cherry picked from commit 52e81a8c2abf553b3319169ccc8d2e95a0e98e92) --- libc-test/semver/freebsd.txt | 1 + libc-test/semver/illumos.txt | 10 ++++++++++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 1 + src/unix/solarish/illumos.rs | 10 ++++++++++ src/unix/solarish/mod.rs | 2 ++ 5 files changed, 24 insertions(+) diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index ed4da63788e26..d4b53860b5a53 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -1023,6 +1023,7 @@ PL_FLAG_SI PM_STR POLLINIGNEOF POLLRDBAND +POLLRDHUP POLLRDNORM POLLSTANDARD POLLWRBAND diff --git a/libc-test/semver/illumos.txt b/libc-test/semver/illumos.txt index 02cf4e75d688d..64c25d4b4f969 100644 --- a/libc-test/semver/illumos.txt +++ b/libc-test/semver/illumos.txt @@ -1,3 +1,13 @@ +O_RSYNC +POLLRDHUP +POSIX_FADV_DONTNEED +POSIX_FADV_NOREUSE +POSIX_FADV_NORMAL +POSIX_FADV_RANDOM +POSIX_FADV_SEQUENTIAL +POSIX_FADV_WILLNEED +posix_fadvise +posix_fallocate pthread_attr_get_np pthread_attr_getstackaddr pthread_attr_setstack diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index f8be7be51f325..a15987df10775 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -2894,6 +2894,7 @@ pub const POSIX_FADV_DONTNEED: ::c_int = 4; pub const POSIX_FADV_NOREUSE: ::c_int = 5; pub const POLLINIGNEOF: ::c_short = 0x2000; +pub const POLLRDHUP: ::c_short = 0x4000; pub const EVFILT_READ: i16 = -1; pub const EVFILT_WRITE: i16 = -2; diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index 6e96272352bee..614fd12eb07eb 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -28,6 +28,8 @@ pub const EFD_SEMAPHORE: ::c_int = 0x1; pub const EFD_NONBLOCK: ::c_int = 0x800; pub const EFD_CLOEXEC: ::c_int = 0x80000; +pub const POLLRDHUP: ::c_short = 0x4000; + pub const TCP_KEEPIDLE: ::c_int = 34; pub const TCP_KEEPCNT: ::c_int = 35; pub const TCP_KEEPINTVL: ::c_int = 36; @@ -56,6 +58,13 @@ pub const SOL_FILTER: ::c_int = 0xfffc; pub const MADV_PURGE: ::c_int = 9; +pub const POSIX_FADV_NORMAL: ::c_int = 0; +pub const POSIX_FADV_RANDOM: ::c_int = 1; +pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; +pub const POSIX_FADV_WILLNEED: ::c_int = 3; +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + pub const B1000000: ::speed_t = 24; pub const B1152000: ::speed_t = 25; pub const B1500000: ::speed_t = 26; @@ -96,6 +105,7 @@ extern "C" { stackaddr: *mut ::c_void, ) -> ::c_int; + pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advice: ::c_int) -> ::c_int; pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 3afd3f37840a0..1cc6c429bc2d1 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1307,6 +1307,7 @@ pub const O_RDWR: ::c_int = 2; pub const O_NDELAY: ::c_int = 0x04; pub const O_APPEND: ::c_int = 8; pub const O_DSYNC: ::c_int = 0x40; +pub const O_RSYNC: ::c_int = 0x8000; pub const O_CREAT: ::c_int = 256; pub const O_EXCL: ::c_int = 1024; pub const O_NOCTTY: ::c_int = 2048; @@ -2846,6 +2847,7 @@ extern "C" { #[cfg_attr(target_os = "illumos", link_name = "_globfree_ext")] pub fn globfree(pglob: *mut ::glob_t); + pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; From 34d3ce3e419ea6a69ed8aa41e61387c9d85df478 Mon Sep 17 00:00:00 2001 From: Sebastien Marie Date: Tue, 15 Oct 2024 07:15:45 +0000 Subject: [PATCH 0175/1228] unbreak OpenBSD after #3714 by properly define RTF_FMASK (backport ) (cherry picked from commit dbe4b8b1a607163ff11ada0a13a7dc3549a4c62d) --- src/unix/bsd/netbsdlike/openbsd/mod.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index b397be291ff98..259f9e06024d1 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1931,7 +1931,15 @@ pub const RTF_LOCAL: ::c_int = 0x200000; pub const RTF_BROADCAST: ::c_int = 0x400000; pub const RTF_CONNECTED: ::c_int = 0x800000; pub const RTF_BFD: ::c_int = 0x1000000; -pub const RTF_FMASK: ::c_int = b'\\' as _; +pub const RTF_FMASK: ::c_int = ::RTF_LLINFO + | ::RTF_PROTO1 + | ::RTF_PROTO2 + | ::RTF_PROTO3 + | ::RTF_BLACKHOLE + | ::RTF_REJECT + | ::RTF_STATIC + | ::RTF_MPLS + | ::RTF_BFD; pub const RTM_VERSION: ::c_int = 5; pub const RTM_RESOLVE: ::c_int = 0xb; From b4a2e152377dd41c49d6de3ef813a2eacf4e9844 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Wed, 16 Oct 2024 08:39:56 +0200 Subject: [PATCH 0176/1228] semver/linux-musl: Remove outdated "TODO: musl" comment The comment was there since the file was otherwise empty, but it has outlived its purpose. (backport ) (cherry picked from commit 1d5d92ca07688f654dd7a2c3b78794dae7ec8d4c) --- libc-test/semver/linux-musl.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index b775cec7182d9..531bb8567dd0c 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -1,4 +1,3 @@ -# TODO: musl. AF_IB AF_MPLS AF_XDP From f39e871b2a9a2a10e8a0f1ecfd4de90c0a927d26 Mon Sep 17 00:00:00 2001 From: B I Mohammed Abbas Date: Wed, 16 Oct 2024 09:59:53 +0530 Subject: [PATCH 0177/1228] VxWorks Sched_param renamed, pthread functions and constants added (backport ) (cherry picked from commit fea199a3d306a01e967bcb0812946926bc46ab3f) --- src/vxworks/mod.rs | 66 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 2 deletions(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index a633ff9b1a1fc..f7adb5d682e5e 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -253,7 +253,7 @@ s! { } // b_struct__Sched_param.h - pub struct _Sched_param { + pub struct sched_param { pub sched_priority: ::c_int, /* scheduling priority */ pub sched_ss_low_priority: ::c_int, /* low scheduling priority */ pub sched_ss_repl_period: ::_Timespec, /* replenishment period */ @@ -274,7 +274,7 @@ s! { pub threadAttrSchedpolicy : ::c_int, pub threadAttrName : *mut ::c_char, pub threadAttrOptions : ::c_int, - pub threadAttrSchedparam : ::_Sched_param, + pub threadAttrSchedparam : ::sched_param, } // signal.h @@ -613,6 +613,19 @@ pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; pub const PTHREAD_STACK_MIN: usize = 4096; pub const _PTHREAD_SHARED_SEM_NAME_MAX: usize = 30; +//sched.h +pub const SCHED_FIFO: ::c_int = 0x01; +pub const SCHED_RR: ::c_int = 0x02; +pub const SCHED_OTHER: ::c_int = 0x04; +pub const SCHED_SPORADIC: ::c_int = 0x08; +pub const PRIO_PROCESS: ::c_uint = 0; +pub const SCHED_FIFO_HIGH_PRI: ::c_int = 255; +pub const SCHED_FIFO_LOW_PRI: ::c_int = 0; +pub const SCHED_RR_HIGH_PRI: ::c_int = 255; +pub const SCHED_RR_LOW_PRI: ::c_int = 0; +pub const SCHED_SPORADIC_HIGH_PRI: ::c_int = 255; +pub const SCHED_SPORADIC_LOW_PRI: ::c_int = 0; + // ERRNO STUFF pub const ERROR: ::c_int = -1; pub const OK: ::c_int = 0; @@ -1388,6 +1401,29 @@ extern "C" { value: *mut ::c_void, ) -> ::c_int; + //pthread.h + pub fn pthread_setschedparam( + native: ::pthread_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + + //pthread.h + pub fn pthread_getschedparam( + native: ::pthread_t, + policy: *mut ::c_int, + param: *mut ::sched_param, + ) -> ::c_int; + + //pthread.h + pub fn pthread_attr_setinheritsched( + attr: *mut ::pthread_attr_t, + inheritsched: ::c_int, + ) -> ::c_int; + + //pthread.h + pub fn pthread_attr_setschedpolicy(attr: *mut ::pthread_attr_t, policy: ::c_int) -> ::c_int; + // pthread.h pub fn pthread_attr_destroy(thread: *mut ::pthread_attr_t) -> ::c_int; @@ -1400,6 +1436,7 @@ extern "C" { parent: ::Option, child: ::Option, ) -> ::c_int; + // stat.h pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; @@ -1754,6 +1791,31 @@ extern "C" { // dirent.h pub fn closedir(ptr: *mut ::DIR) -> ::c_int; + //sched.h + pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; + + //sched.h + pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; + + //sched.h + pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; + + //sched.h + pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; + + //sched.h + pub fn sched_setscheduler( + pid: ::pid_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + + //sched.h + pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + + //sched.h + pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; + // sched.h pub fn sched_yield() -> ::c_int; From 1b2232978fb15321e6f4232889e1c2be9bd1ba9b Mon Sep 17 00:00:00 2001 From: Manos Pitsidianakis Date: Fri, 20 Sep 2024 11:59:55 +0300 Subject: [PATCH 0178/1228] Add fnmatch.h Add fnmatch() function and FNM_* constants. Documentation: Header file: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/fnmatch.h.html fnmatch() function: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fnmatch.html Signed-off-by: Manos Pitsidianakis (backport ) (cherry picked from commit 70de2da72a5ed176628e9d93408d5f7b95230db6) --- libc-test/build.rs | 12 ++++++++++++ libc-test/semver/unix.txt | 6 ++++++ src/unix/mod.rs | 22 ++++++++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index dfa6185195dbc..844a458fcd5a0 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -205,6 +205,7 @@ fn test_apple(target: &str) { "errno.h", "execinfo.h", "fcntl.h", + "fnmatch.h", "getopt.h", "glob.h", "grp.h", @@ -482,6 +483,7 @@ fn test_openbsd(target: &str) { "errno.h", "execinfo.h", "fcntl.h", + "fnmatch.h", "getopt.h", "libgen.h", "limits.h", @@ -793,6 +795,7 @@ fn test_redox(target: &str) { "dlfcn.h", "errno.h", "fcntl.h", + "fnmatch.h", "grp.h", "limits.h", "locale.h", @@ -852,6 +855,7 @@ fn test_solarish(target: &str) { "errno.h", "execinfo.h", "fcntl.h", + "fnmatch.h", "getopt.h", "glob.h", "grp.h", @@ -1092,6 +1096,7 @@ fn test_netbsd(target: &str) { "elf.h", "errno.h", "fcntl.h", + "fnmatch.h", "getopt.h", "libgen.h", "limits.h", @@ -1308,6 +1313,7 @@ fn test_dragonflybsd(target: &str) { "errno.h", "execinfo.h", "fcntl.h", + "fnmatch.h", "getopt.h", "glob.h", "grp.h", @@ -1531,6 +1537,7 @@ fn test_wasi(target: &str) { "dirent.h", "errno.h", "fcntl.h", + "fnmatch.h", "langinfo.h", "limits.h", "locale.h", @@ -1646,6 +1653,7 @@ fn test_android(target: &str) { "elf.h", "errno.h", "fcntl.h", + "fnmatch.h", "getopt.h", "grp.h", "ifaddrs.h", @@ -2145,6 +2153,7 @@ fn test_freebsd(target: &str) { "errno.h", "execinfo.h", "fcntl.h", + "fnmatch.h", "getopt.h", "glob.h", "grp.h", @@ -2762,6 +2771,7 @@ fn test_emscripten(target: &str) { "dlfcn.h", "errno.h", "fcntl.h", + "fnmatch.h", "glob.h", "grp.h", "ifaddrs.h", @@ -3030,6 +3040,7 @@ fn test_neutrino(target: &str) { "dlfcn.h", "sys/elf.h", "fcntl.h", + "fnmatch.h", "glob.h", "grp.h", "iconv.h", @@ -3427,6 +3438,7 @@ fn test_linux(target: &str) { "dlfcn.h", "elf.h", "fcntl.h", + "fnmatch.h", "getopt.h", "glob.h", [gnu]: "gnu/libc-version.h", diff --git a/libc-test/semver/unix.txt b/libc-test/semver/unix.txt index bb8e319def299..1ada0edd77b5d 100644 --- a/libc-test/semver/unix.txt +++ b/libc-test/semver/unix.txt @@ -132,6 +132,11 @@ FD_ZERO FILE FIOCLEX FIONBIO +FNM_CASEFOLD +FNM_NOESCAPE +FNM_NOMATCH +FNM_PATHNAME +FNM_PERIOD F_DUPFD F_DUPFD_CLOEXEC F_GETFD @@ -525,6 +530,7 @@ fgetpos fgets fileno flock +fnmatch fopen fork fpathconf diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 3f1148043f532..6495a348d9d28 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -313,6 +313,24 @@ pub const ATF_PERM: ::c_int = 0x04; pub const ATF_PUBL: ::c_int = 0x08; pub const ATF_USETRAILERS: ::c_int = 0x10; +pub const FNM_PERIOD: c_int = 1 << 2; +pub const FNM_CASEFOLD: c_int = 1 << 4; +pub const FNM_NOMATCH: c_int = 1; + +cfg_if! { + if #[cfg(any( + target_os = "macos", + target_os = "freebsd", + target_os = "android", + ))] { + pub const FNM_PATHNAME: c_int = 1 << 1; + pub const FNM_NOESCAPE: c_int = 1 << 0; + } else { + pub const FNM_PATHNAME: c_int = 1 << 0; + pub const FNM_NOESCAPE: c_int = 1 << 1; + } +} + extern "C" { pub static in6addr_loopback: in6_addr; pub static in6addr_any: in6_addr; @@ -1580,6 +1598,10 @@ cfg_if! { } } +extern "C" { + pub fn fnmatch(pattern: *const c_char, name: *const c_char, flags: c_int) -> c_int; +} + cfg_if! { if #[cfg(target_env = "newlib")] { mod newlib; From 35f31f84c5f785330882cc8fbd767156bc20c44b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 30 Sep 2024 23:46:09 -0400 Subject: [PATCH 0179/1228] Sort linux-musl.txt (backport ) (cherry picked from commit da3470ced3e70b18ce8953e7a242f1d8255c360d) --- libc-test/semver/linux-musl.txt | 52 ++++++++++++++++----------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index 531bb8567dd0c..646a7153d75c0 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -4,16 +4,11 @@ AF_XDP AIO_ALLDONE AIO_CANCELED AIO_NOTCANCELED -MPOL_BIND -MPOL_DEFAULT -MPOL_INTERLEAVE -MPOL_LOCAL -MPOL_PREFERRED BOOT_TIME DEAD_PROCESS +EMPTY Elf32_Chdr Elf64_Chdr -EMPTY INIT_PROCESS LIO_NOP LIO_NOWAIT @@ -21,6 +16,11 @@ LIO_READ LIO_WAIT LIO_WRITE LOGIN_PROCESS +MPOL_BIND +MPOL_DEFAULT +MPOL_INTERLEAVE +MPOL_LOCAL +MPOL_PREFERRED NEW_TIME OLD_TIME PF_IB @@ -37,29 +37,29 @@ RWF_NOWAIT RWF_SYNC SOL_XDP 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_PKT_CONTD +XDP_RING_NEED_WAKEUP +XDP_RX_RING +XDP_SHARED_UMEM +XDP_STATISTICS +XDP_TX_RING +XDP_UMEM_COMPLETION_RING +XDP_UMEM_FILL_RING XDP_UMEM_PGOFF_COMPLETION_RING -XSK_UNALIGNED_BUF_OFFSET_SHIFT +XDP_UMEM_PGOFF_FILL_RING +XDP_UMEM_REG +XDP_UMEM_UNALIGNED_CHUNK_FLAG +XDP_USE_NEED_WAKEUP +XDP_USE_SG +XDP_ZEROCOPY XSK_UNALIGNED_BUF_ADDR_MASK -XDP_PKT_CONTD +XSK_UNALIGNED_BUF_OFFSET_SHIFT adjtimex aio_cancel aio_error @@ -69,9 +69,14 @@ aio_return aio_suspend aio_write aiocb +asctime_r +basename clock_adjtime copy_file_range ctermid +dirname +eaccess +euidaccess explicit_bzero futimes getauxval @@ -92,8 +97,3 @@ pwritev64 reallocarray tcp_info timex -euidaccess -eaccess -asctime_r -dirname -basename From bf6680ddbfd942c09871eba4de0b15dbc41b819f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 02:30:00 +0000 Subject: [PATCH 0180/1228] chore: release v0.2.160 Co-authored-by: Trevor Gross --- CHANGELOG.md | 46 ++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 3 files changed, 48 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 01c340acaa11f..fa43780550de1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,52 @@ ## [Unreleased] +## [0.2.160](https://github.com/rust-lang/libc/compare/0.2.159...0.2.160) - 2024-10-17 + +### Added + +- Android: add `PR_GET_NAME` and `PR_SET_NAME` +- Apple: add `F_TRANSFEREXTENTS` +- Apple: add `mach_error_string` +- Apple: add additional `pthread` APIs +- Apple: add the `LOCAL_PEERTOKEN` socket option +- BSD: add `RTF_*`, `RTA_*`, `RTAX_*`, and `RTM_*` definitions +- Emscripten: add `AT_EACCESS` +- Emscripten: add `getgrgid`, `getgrnam`, `getgrnam_r` and `getgrgid_r` +- Emscripten: add `getpwnam_r` and `getpwuid_r` +- FreeBSD: add `POLLRDHUP` +- Haiku: add `arc4random` +- Illumos: add `ptsname_r` +- Linux: add `fanotify` interfaces +- Linux: add `tcp_info` +- Linux: add additional AF_PACKET options +- Linux: make Elf constants always available +- Musl x86: add `iopl` and `ioperm` +- Musl: add `posix_spawn` chdir functions +- Musl: add `utmpx.h` constants +- NetBSD: add `sysctlnametomib`, `CLOCK_THREAD_CPUTIME_ID` and `CLOCK_PROCESS_CPUTIME_ID` +- Nuttx: initial support +- RTEMS: add `getentropy` +- RTEMS: initial support +- Solarish: add `POLLRDHUP`, `POSIX_FADV_*`, `O_RSYNC`, and `posix_fallocate` +- Unix: add `fnmatch.h` +- VxWorks: add riscv64 support +- VxWorks: update constants related to the scheduler + +### Changed + +- Redox: change `ino_t` to be `c_ulonglong` + +### Fixed + +- ESP-IDF: fix mismatched constants and structs +- FreeBSD: fix `struct stat` on FreeBSD 12+ + +### Other + +- CI: Fix CI for FreeBSD 15 +- Docs: link to `windows-sys` + ## [0.2.159](https://github.com/rust-lang/libc/compare/0.2.158...0.2.159) - 2024-09-24 ### Added diff --git a/Cargo.toml b/Cargo.toml index 825e296618942..868543ca0874b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.159" +version = "0.2.160" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 8f25c7f2ca9d9..70b256dfce733 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -14,7 +14,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.159" +version = "0.2.160" default-features = false [build-dependencies] From ed784c3ccced0e336e140d1bef1c7ed98ac21845 Mon Sep 17 00:00:00 2001 From: Sebastien Marie Date: Thu, 17 Oct 2024 06:40:28 +0000 Subject: [PATCH 0181/1228] unbreak OpenBSD after #3937 fix FNM_PATHNAME and FNM_NOESCAPE values. (backport ) (cherry picked from commit 1f687923ce2fddb87ee8d39552afef7649ed4bb5) --- src/unix/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 6495a348d9d28..04baabae8bfbf 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -322,6 +322,7 @@ cfg_if! { target_os = "macos", target_os = "freebsd", target_os = "android", + target_os = "openbsd", ))] { pub const FNM_PATHNAME: c_int = 1 << 1; pub const FNM_NOESCAPE: c_int = 1 << 0; From 63b4a641b774f451d4faa2e1b8d3ec0fe7e03c44 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 09:43:12 +0000 Subject: [PATCH 0182/1228] chore: release v0.2.161 --- CHANGELOG.md | 6 ++++++ Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fa43780550de1..6cb8da6919d0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ ## [Unreleased] +## [0.2.161](https://github.com/rust-lang/libc/compare/0.2.160...0.2.161) - 2024-10-17 + +### Fixed + +- OpenBSD: fix `FNM_PATHNAME` and `FNM_NOESCAPE` values + ## [0.2.160](https://github.com/rust-lang/libc/compare/0.2.159...0.2.160) - 2024-10-17 ### Added diff --git a/Cargo.toml b/Cargo.toml index 868543ca0874b..04183f0c2623a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.160" +version = "0.2.161" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 70b256dfce733..c03b92a9a0b65 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -14,7 +14,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.160" +version = "0.2.161" default-features = false [build-dependencies] From a753919127334b0bffb21ffa56c1ea70c2c77351 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sat, 22 Jun 2024 11:22:44 +0200 Subject: [PATCH 0183/1228] hurd: Fix st_dev name Currently struct stat and struct stat64 are not coherent: struct stat is using st_dev, and struct stat64 is using st_fsid. st_dev is the more commonly-known name, already used by e.g. ~45 rust software in Debian, so better fix st_fsid into st_dev, rather than having to uselessly spend time hand-patching all these software. (backport ) (cherry picked from commit 043043f1b2dfcc240c968e75baff9cc135b80613) --- src/unix/hurd/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index ad422fe718349..db22ecce11d8d 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -482,7 +482,7 @@ s! { pub struct stat64 { pub st_fstype: ::c_int, - pub st_fsid: __fsid_t, + pub st_dev: __fsid_t, /* Actually st_fsid */ pub st_ino: __ino64_t, pub st_gen: ::c_uint, pub st_rdev: __dev_t, From c916d57c4464eb3bf6cb3388c902ecbe55f43dfe Mon Sep 17 00:00:00 2001 From: Nicola Krumschmidt Date: Wed, 16 Oct 2024 22:13:41 +0200 Subject: [PATCH 0184/1228] Add wasm32-wasip2 definitions necessary for socket2 support (backport ) (cherry picked from commit 1300509c4836ece78cff23f1134311e98ca98bf2) --- libc-test/semver/wasi-p2.txt | 16 ++++++++++++++++ src/wasi/p2.rs | 25 +++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/libc-test/semver/wasi-p2.txt b/libc-test/semver/wasi-p2.txt index bb79dfd0dc1e8..c2bb8ce791c58 100644 --- a/libc-test/semver/wasi-p2.txt +++ b/libc-test/semver/wasi-p2.txt @@ -11,30 +11,42 @@ sockaddr_storage addrinfo ip_mreq ipv6_mreq +linger SHUT_RD SHUT_WR SHUT_RDWR MSG_NOSIGNAL MSG_PEEK SO_REUSEADDR +SO_TYPE SO_ERROR SO_BROADCAST +SO_SNDBUF +SO_RCVBUF +SO_KEEPALIVE SO_LINGER +SO_ACCEPTCONN +SO_PROTOCOL +SO_DOMAIN SO_RCVTIMEO SO_SNDTIMEO SOCK_DGRAM SOCK_STREAM +SOCK_NONBLOCK SOL_SOCKET +AF_UNSPEC AF_INET AF_INET6 IPPROTO_IP IPPROTO_TCP +IPPROTO_UDP IPPROTO_IPV6 IP_TTL IP_MULTICAST_TTL IP_MULTICAST_LOOP IP_ADD_MEMBERSHIP IP_DROP_MEMBERSHIP +IPV6_UNICAST_HOPS IPV6_MULTICAST_LOOP IPV6_JOIN_GROUP IPV6_LEAVE_GROUP @@ -42,12 +54,16 @@ IPV6_V6ONLY IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP TCP_NODELAY +TCP_KEEPIDLE +TCP_KEEPINTVL +TCP_KEEPCNT EAI_SYSTEM socket connect bind listen accept +accept4 getsockname getpeername sendto diff --git a/src/wasi/p2.rs b/src/wasi/p2.rs index 3e8eb95fcd1a5..d6381be451389 100644 --- a/src/wasi/p2.rs +++ b/src/wasi/p2.rs @@ -62,6 +62,11 @@ s! { pub ipv6mr_multiaddr: in6_addr, pub ipv6mr_interface: ::c_uint, } + + pub struct linger { + pub l_onoff: ::c_int, + pub l_linger: ::c_int, + } } pub const SHUT_RD: ::c_int = 1 << 0; @@ -72,22 +77,32 @@ pub const MSG_NOSIGNAL: ::c_int = 0x4000; pub const MSG_PEEK: ::c_int = 0x0002; pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; pub const SO_ERROR: ::c_int = 4; pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_KEEPALIVE: ::c_int = 9; pub const SO_LINGER: ::c_int = 13; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_DOMAIN: ::c_int = 39; pub const SO_RCVTIMEO: ::c_int = 66; pub const SO_SNDTIMEO: ::c_int = 67; pub const SOCK_DGRAM: ::c_int = 5; pub const SOCK_STREAM: ::c_int = 6; +pub const SOCK_NONBLOCK: ::c_int = 0x00004000; pub const SOL_SOCKET: ::c_int = 0x7fffffff; +pub const AF_UNSPEC: ::c_int = 0; pub const AF_INET: ::c_int = 1; pub const AF_INET6: ::c_int = 2; pub const IPPROTO_IP: ::c_int = 0; pub const IPPROTO_TCP: ::c_int = 6; +pub const IPPROTO_UDP: ::c_int = 17; pub const IPPROTO_IPV6: ::c_int = 41; pub const IP_TTL: ::c_int = 2; @@ -96,6 +111,7 @@ pub const IP_MULTICAST_LOOP: ::c_int = 34; pub const IP_ADD_MEMBERSHIP: ::c_int = 35; pub const IP_DROP_MEMBERSHIP: ::c_int = 36; +pub const IPV6_UNICAST_HOPS: ::c_int = 16; pub const IPV6_MULTICAST_LOOP: ::c_int = 19; pub const IPV6_JOIN_GROUP: ::c_int = 20; pub const IPV6_LEAVE_GROUP: ::c_int = 21; @@ -105,6 +121,9 @@ pub const IPV6_ADD_MEMBERSHIP: ::c_int = IPV6_JOIN_GROUP; pub const IPV6_DROP_MEMBERSHIP: ::c_int = IPV6_LEAVE_GROUP; pub const TCP_NODELAY: ::c_int = 1; +pub const TCP_KEEPIDLE: ::c_int = 4; +pub const TCP_KEEPINTVL: ::c_int = 5; +pub const TCP_KEEPCNT: ::c_int = 6; pub const EAI_SYSTEM: ::c_int = -11; @@ -114,6 +133,12 @@ extern "C" { pub fn bind(socket: ::c_int, addr: *const sockaddr, addrlen: socklen_t) -> ::c_int; pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; pub fn accept(socket: ::c_int, addr: *mut sockaddr, addrlen: *mut socklen_t) -> ::c_int; + pub fn accept4( + socket: ::c_int, + addr: *mut sockaddr, + addrlen: *mut socklen_t, + flags: ::c_int, + ) -> ::c_int; pub fn getsockname(socket: ::c_int, addr: *mut sockaddr, addrlen: *mut socklen_t) -> ::c_int; pub fn getpeername(socket: ::c_int, addr: *mut sockaddr, addrlen: *mut socklen_t) -> ::c_int; From 1d95ed65a2d90f2c188fca4ef216f1f818ba623d Mon Sep 17 00:00:00 2001 From: Jan Sommer Date: Thu, 17 Oct 2024 22:34:41 +0200 Subject: [PATCH 0185/1228] RTEMS export arc4random (backport ) (cherry picked from commit c096cdb05e2c4a35e997ffee919e7d343c55bb83) --- src/unix/newlib/rtems/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/newlib/rtems/mod.rs b/src/unix/newlib/rtems/mod.rs index 031754950e6c1..f2b7687fa491e 100644 --- a/src/unix/newlib/rtems/mod.rs +++ b/src/unix/newlib/rtems/mod.rs @@ -139,5 +139,7 @@ extern "C" { pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; + pub fn arc4random_buf(buf: *mut core::ffi::c_void, nbytes: ::size_t); + pub fn setgroups(ngroups: ::c_int, grouplist: *const ::gid_t) -> ::c_int; } From 8ca43c61dbaa39ace9d2f5a11808c813dffcfa7a Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 18 Oct 2024 23:38:26 +0100 Subject: [PATCH 0186/1228] illumos: add syncfs https://raw.githubusercontent.com/illumos/illumos-gate/05ce3950cb6a645887911ba82ec91e3c06c5ad7c/usr/src/man/man3c/syncfs.3c [ reworded title slightly - Trevor ] (backport ) (cherry picked from commit d18863d82446b925b2d4e74a85d346c6181682bf) --- libc-test/semver/illumos.txt | 1 + src/unix/solarish/illumos.rs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/libc-test/semver/illumos.txt b/libc-test/semver/illumos.txt index 64c25d4b4f969..df91859b46655 100644 --- a/libc-test/semver/illumos.txt +++ b/libc-test/semver/illumos.txt @@ -12,3 +12,4 @@ pthread_attr_get_np pthread_attr_getstackaddr pthread_attr_setstack ptsname_r +syncfs diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index 614fd12eb07eb..9b0a692055e6a 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -112,4 +112,6 @@ extern "C" { pub fn getpagesizes2(pagesize: *mut ::size_t, nelem: ::c_int) -> ::c_int; pub fn ptsname_r(fildes: ::c_int, name: *mut ::c_char, namelen: ::size_t) -> ::c_int; + + pub fn syncfs(fd: ::c_int) -> ::c_int; } From 016dea75af3c50dc5045a8b5dda18d7eaf66b1e8 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sun, 20 Oct 2024 09:17:50 +0200 Subject: [PATCH 0187/1228] hurd: fix definition of utsname struct - drop the "domainname" field, as it is not actually used - add a private "_UTSNAME_LENGTH" constant matching the helper libc one, to ease declaring the struct - bump the size of the other fields to "_UTSNAME_LENGTH" (backport ) (cherry picked from commit 158cd3063c11415194e0dc6e90cdf5fdad8b86e5) --- src/unix/hurd/mod.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index db22ecce11d8d..ec22469a31693 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -873,12 +873,11 @@ s! { } pub struct utsname { - pub sysname: [::c_char; 65], - pub nodename: [::c_char; 65], - pub release: [::c_char; 65], - pub version: [::c_char; 65], - pub machine: [::c_char; 65], - pub domainname: [::c_char; 65] + pub sysname: [::c_char; _UTSNAME_LENGTH], + pub nodename: [::c_char; _UTSNAME_LENGTH], + pub release: [::c_char; _UTSNAME_LENGTH], + pub version: [::c_char; _UTSNAME_LENGTH], + pub machine: [::c_char; _UTSNAME_LENGTH], } pub struct rlimit64 { @@ -3437,6 +3436,9 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { }; pub const PTHREAD_STACK_MIN: ::size_t = 0; +// Non-public helper constants +const _UTSNAME_LENGTH: usize = 1024; + const_fn! { {const} fn CMSG_ALIGN(len: usize) -> usize { len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) From f0eff9983a7c94e212c8fda5a695eb83c2146e28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20S=C3=A1nchez=20Mu=C3=B1oz?= Date: Thu, 5 Sep 2024 17:56:43 +0200 Subject: [PATCH 0188/1228] Remove unneeded `extern crate`s and imports (backport ) (cherry picked from commit ba1b27f51607a64072c9ddf071cb69a143922cb6) --- libc-test/build.rs | 1 - libc-test/test/cmsg.rs | 2 -- libc-test/test/errqueue.rs | 2 -- libc-test/test/linux_elf.rs | 1 - libc-test/test/linux_fcntl.rs | 1 - libc-test/test/linux_if_arp.rs | 1 - libc-test/test/linux_ipv6.rs | 1 - libc-test/test/linux_kernel_version.rs | 2 -- libc-test/test/linux_strerror_r.rs | 1 - libc-test/test/linux_termios.rs | 1 - libc-test/test/main.rs | 1 - libc-test/test/makedev.rs | 2 -- libc-test/test/semver.rs | 2 -- libc-test/test/sigrt.rs | 2 -- 14 files changed, 20 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 844a458fcd5a0..b86d9516b8744 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1,6 +1,5 @@ #![deny(warnings)] -extern crate cc; extern crate ctest2 as ctest; use std::fs::File; diff --git a/libc-test/test/cmsg.rs b/libc-test/test/cmsg.rs index baef3902d603e..52bf9830212c2 100644 --- a/libc-test/test/cmsg.rs +++ b/libc-test/test/cmsg.rs @@ -1,8 +1,6 @@ //! Compare libc's CMSG(3) family of functions against the actual C macros, for //! various inputs. -extern crate libc; - #[cfg(unix)] mod t { diff --git a/libc-test/test/errqueue.rs b/libc-test/test/errqueue.rs index 8d0c7bb741676..a7d1563c5cf39 100644 --- a/libc-test/test/errqueue.rs +++ b/libc-test/test/errqueue.rs @@ -1,7 +1,5 @@ //! Compare libc's SO_EE_OFFENDER function against the actual C macro -extern crate libc; - #[cfg(any(target_os = "linux", target_os = "android"))] mod t { use libc::{self, sock_extended_err, sockaddr}; diff --git a/libc-test/test/linux_elf.rs b/libc-test/test/linux_elf.rs index d149c9aaff38e..e0ebe4ad4d1e5 100644 --- a/libc-test/test/linux_elf.rs +++ b/libc-test/test/linux_elf.rs @@ -1,6 +1,5 @@ #![allow(bad_style, improper_ctypes, unused, deprecated)] -extern crate libc; use libc::*; #[cfg(target_os = "linux")] diff --git a/libc-test/test/linux_fcntl.rs b/libc-test/test/linux_fcntl.rs index 49c06cc4f6517..d4647d2ef1a65 100644 --- a/libc-test/test/linux_fcntl.rs +++ b/libc-test/test/linux_fcntl.rs @@ -1,6 +1,5 @@ #![allow(bad_style, improper_ctypes, unused, deprecated)] -extern crate libc; use libc::*; #[cfg(any(target_os = "linux", target_os = "android"))] diff --git a/libc-test/test/linux_if_arp.rs b/libc-test/test/linux_if_arp.rs index 50be071d45b67..dc96aef738d04 100644 --- a/libc-test/test/linux_if_arp.rs +++ b/libc-test/test/linux_if_arp.rs @@ -1,6 +1,5 @@ #![allow(bad_style, improper_ctypes, unused, deprecated)] -extern crate libc; use libc::*; #[cfg(any(target_os = "linux", target_os = "android"))] diff --git a/libc-test/test/linux_ipv6.rs b/libc-test/test/linux_ipv6.rs index 83c389ce16a03..0f72646dcf55d 100644 --- a/libc-test/test/linux_ipv6.rs +++ b/libc-test/test/linux_ipv6.rs @@ -1,6 +1,5 @@ #![allow(bad_style, improper_ctypes, unused, deprecated)] -extern crate libc; use libc::*; #[cfg(target_os = "linux")] diff --git a/libc-test/test/linux_kernel_version.rs b/libc-test/test/linux_kernel_version.rs index c5687edad5601..767b0db257a46 100644 --- a/libc-test/test/linux_kernel_version.rs +++ b/libc-test/test/linux_kernel_version.rs @@ -1,7 +1,5 @@ //! Compare libc's KERNEL_VERSION macro against a specific kernel version. -extern crate libc; - #[cfg( target_os = "linux", )] diff --git a/libc-test/test/linux_strerror_r.rs b/libc-test/test/linux_strerror_r.rs index 17db959d8cb93..b4f800789b4e9 100644 --- a/libc-test/test/linux_strerror_r.rs +++ b/libc-test/test/linux_strerror_r.rs @@ -1,6 +1,5 @@ #![allow(bad_style, improper_ctypes, unused, deprecated)] -extern crate libc; use libc::*; #[cfg(any(target_os = "linux", target_os = "android"))] diff --git a/libc-test/test/linux_termios.rs b/libc-test/test/linux_termios.rs index 703a9b9b25b0d..46026e44cc953 100644 --- a/libc-test/test/linux_termios.rs +++ b/libc-test/test/linux_termios.rs @@ -1,6 +1,5 @@ #![allow(bad_style, improper_ctypes, unused, deprecated)] -extern crate libc; use libc::*; #[cfg(any(target_os = "linux", target_os = "android"))] diff --git a/libc-test/test/main.rs b/libc-test/test/main.rs index 62a587cf5868f..c3fdcb56e54df 100644 --- a/libc-test/test/main.rs +++ b/libc-test/test/main.rs @@ -1,5 +1,4 @@ #![allow(bad_style, improper_ctypes, deprecated)] -extern crate libc; use libc::*; diff --git a/libc-test/test/makedev.rs b/libc-test/test/makedev.rs index 6b5b85efb8197..cb00975b9a41f 100644 --- a/libc-test/test/makedev.rs +++ b/libc-test/test/makedev.rs @@ -1,8 +1,6 @@ //! Compare libc's makdev function against the actual C macros, for various //! inputs. -extern crate libc; - #[cfg(any( target_os = "android", target_os = "dragonfly", diff --git a/libc-test/test/semver.rs b/libc-test/test/semver.rs index bc7d1c9c7954c..5c9531169e08f 100644 --- a/libc-test/test/semver.rs +++ b/libc-test/test/semver.rs @@ -1,8 +1,6 @@ #![allow(unused_imports)] #![allow(deprecated)] -extern crate libc; - // Generated in `build.rs`. include!(concat!(env!("OUT_DIR"), "/semver.rs")); diff --git a/libc-test/test/sigrt.rs b/libc-test/test/sigrt.rs index 453dcb341d073..25e6ca4457b1b 100644 --- a/libc-test/test/sigrt.rs +++ b/libc-test/test/sigrt.rs @@ -1,7 +1,5 @@ //! Compare libc's SIGRTMAX and SIGRTMIN functions against the actual C macros -extern crate libc; - #[cfg(any( target_os = "linux", target_os = "l4re", From bfe3f0ffcd9a127fd355baa1a56cb84c38807e8b Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Thu, 17 Oct 2024 13:58:52 -0600 Subject: [PATCH 0189/1228] Reenable CI on FreeBSD 15 The freebsd-15-0-current-amd64-ufs-20241017 GCE image fixes the libmd.so problem, and once again works with Cirrus CI. Fixes #3967 (backport ) (cherry picked from commit 86d3d1e400bb796949572572f72612cb8190afde) --- .cirrus.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index ff3b80f7f4fc1..93a4ad50a9594 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -7,13 +7,9 @@ task: - name: nightly freebsd-14 freebsd_instance: image: freebsd-14-0-release-amd64-ufs - # Temporarily disable CI on FreeBSD 15.0-CURRENT until the libmd solib - # fallout is cleaned up. - # FIXME https://github.com/rust-lang/libc/issues/3967 - # https://github.com/rust-lang/libc/issues/3967 - #- name: nightly freebsd-15 - # freebsd_instance: - # image_family: freebsd-15-0-snap + - name: nightly 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 From 022a4398b6e562fdceb1def9831f83cbdf1813fc Mon Sep 17 00:00:00 2001 From: Sergio Gasquez Date: Mon, 21 Oct 2024 12:37:29 +0200 Subject: [PATCH 0190/1228] feat: Update esp-idf flag (backport ) (cherry picked from commit 7bd7276c094b764f377254e4632bdc6ea61e2132) --- build.rs | 2 +- src/unix/newlib/mod.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.rs b/build.rs index ea55185d77023..88f4c5149035f 100644 --- a/build.rs +++ b/build.rs @@ -7,7 +7,7 @@ use std::str; // make sure to add it to this list as well. const ALLOWED_CFGS: &'static [&'static str] = &[ "emscripten_new_stat_abi", - "espidf_time64", + "espidf_time32", "freebsd10", "freebsd11", "freebsd12", diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index 78e18d8ceac72..9aee0e4ea0c3f 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -52,7 +52,7 @@ cfg_if! { pub type useconds_t = u32; cfg_if! { - if #[cfg(any(target_os = "horizon", all(target_os = "espidf", espidf_time64)))] { + if #[cfg(any(target_os = "horizon", all(target_os = "espidf", not(espidf_time32))))] { pub type time_t = ::c_longlong; } else { pub type time_t = i32; From 31d430b13699587b083192263a3dc55a80c87d71 Mon Sep 17 00:00:00 2001 From: Hood Chatham Date: Fri, 1 Nov 2024 12:30:00 +0100 Subject: [PATCH 0191/1228] Don't pass -lc to Emscripten, it breaks See: https://github.com/emscripten-core/emscripten/issues/22742 https://github.com/emscripten-core/emscripten/issues/16680 https://github.com/rust-lang/rust/issues/98155 https://github.com/rust-lang/rust/pull/98303 https://github.com/rust-lang/rust/pull/131885 (backport ) (cherry picked from commit 66e366518d4836baabcf7562b649fa37085105c5) --- src/unix/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 04baabae8bfbf..12e20a46ff1c4 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -382,8 +382,8 @@ cfg_if! { link(name = "c", cfg(not(target_feature = "crt-static"))))] extern {} } else if #[cfg(target_os = "emscripten")] { - #[link(name = "c")] - extern {} + // Don't pass -lc to Emscripten, it breaks. See: + // https://github.com/emscripten-core/emscripten/issues/22758 } else if #[cfg(all(target_os = "android", feature = "rustc-dep-of-std"))] { #[link(name = "c", kind = "static", modifiers = "-bundle", cfg(target_feature = "crt-static"))] From 5924430eb6e9210446cf93f13079e4c3125cf941 Mon Sep 17 00:00:00 2001 From: Yoh Deadfall Date: Mon, 4 Nov 2024 21:51:50 +0300 Subject: [PATCH 0192/1228] Added pthread_[get/set]name_np functions for NuttX (backport ) (cherry picked from commit c4147611a4ff5471fc1d99caae3ea4547b7fb64d) --- src/unix/nuttx/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index e3a3c15b338cc..e9f6c651f1e86 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -551,5 +551,7 @@ extern "C" { pub fn futimens(fd: i32, times: *const timespec) -> i32; pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, clock_id: clockid_t) -> i32; pub fn pthread_set_name_np(thread: pthread_t, name: *const c_char) -> i32; + pub fn pthread_setname_np(thread: pthread_t, name: *const c_char) -> i32; + pub fn pthread_getname_np(thread: pthread_t, name: *mut c_char, len: usize) -> i32; pub fn getrandom(buf: *mut c_void, buflen: usize, flags: u32) -> isize; } From 3c40c36a27e8ccbe690a1dc462a0d16bd952f8c2 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 19 Oct 2024 20:16:02 +0000 Subject: [PATCH 0193/1228] haiku adding getentropy. no man page so far but https://github.com/haiku/haiku/blob/e4a557f372b21b348e0c6a2ae7157c1b73e0d738/src/system/libroot/posix/unistd/getentropy.c#L13 (backport ) (cherry picked from commit 9b0495699d0f760de499febf4e6e2c4364696659) --- src/unix/haiku/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 3a226e6696405..31f9f69d5b168 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -2093,6 +2093,8 @@ extern "C" { length: ::size_t, locale: ::locale_t, ) -> ::c_int; + + pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; } #[link(name = "bsd")] From 5b539ceb86c1257c21061994c00d01d9220bda48 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 6 Nov 2024 19:36:50 +0000 Subject: [PATCH 0194/1228] Backport "Merge pull request #3942 from randomPoison/trusty-patch" Add Trusty OS support (backport ) (cherry picked from commit 94c7cae56d21cd0d94882faff5090e2a9af5cae3) --- libc-test/semver/trusty.txt | 49 +++++++++++++++++ src/lib.rs | 6 +++ src/trusty.rs | 101 ++++++++++++++++++++++++++++++++++++ 3 files changed, 156 insertions(+) create mode 100644 libc-test/semver/trusty.txt create mode 100644 src/trusty.rs diff --git a/libc-test/semver/trusty.txt b/libc-test/semver/trusty.txt new file mode 100644 index 0000000000000..0c79d05701095 --- /dev/null +++ b/libc-test/semver/trusty.txt @@ -0,0 +1,49 @@ +AT_PAGESZ +CLOCK_REALTIME +MAP_FAILED +PROT_READ +PROT_WRITE +STDERR_FILENO +STDOUT_FILENO +calloc +clockid_t +clock_gettime +close +c_char +c_int +c_int16_t +c_int32_t +c_int64_t +c_int8_t +c_long +c_longlong +c_schar +c_short +c_uchar +c_uint +c_uint16_t +c_uint32_t +c_uint64_t +c_uint8_t +c_ulong +c_ulonglong +c_ushort +c_void +free +getauxval +iovec +malloc +memalign +mmap +munmap +nanosleep +off_t +posix_memalign +realloc +size_t +ssize_t +strlen +timespec +time_t +write +writev diff --git a/src/lib.rs b/src/lib.rs index 764d8e4cd096a..893b46ff3ab28 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -145,6 +145,12 @@ cfg_if! { mod teeos; pub use teeos::*; + } else if #[cfg(target_os = "trusty")] { + mod fixed_width_ints; + pub use fixed_width_ints::*; + + mod trusty; + pub use trusty::*; } else if #[cfg(all(target_env = "sgx", target_vendor = "fortanix"))] { mod fixed_width_ints; pub use fixed_width_ints::*; diff --git a/src/trusty.rs b/src/trusty.rs new file mode 100644 index 0000000000000..68b13f70b5b3f --- /dev/null +++ b/src/trusty.rs @@ -0,0 +1,101 @@ +pub use core::ffi::c_void; + +pub type size_t = usize; +pub type ssize_t = isize; + +pub type off_t = i64; + +cfg_if! { + if #[cfg(any(target_arch = "aarch64", target_arch = "arm"))] { + pub type c_char = u8; + } else if #[cfg(target_arch = "x86_64")] { + pub type c_char = i8; + } +} + +pub type c_schar = i8; +pub type c_uchar = u8; +pub type c_short = i16; +pub type c_ushort = u16; +pub type c_int = i32; +pub type c_uint = u32; + +cfg_if! { + if #[cfg(target_pointer_width = "32")] { + pub type c_long = i32; + pub type c_ulong = u32; + } else if #[cfg(target_pointer_width = "64")] { + pub type c_long = i64; + pub type c_ulong = u64; + } +} + +pub type c_longlong = i64; +pub type c_ulonglong = u64; + +pub type c_uint8_t = u8; +pub type c_uint16_t = u16; +pub type c_uint32_t = u32; +pub type c_uint64_t = u64; + +pub type c_int8_t = i8; +pub type c_int16_t = i16; +pub type c_int32_t = i32; +pub type c_int64_t = i64; + +pub type c_float = f32; +pub type c_double = f64; + +pub type time_t = c_long; + +pub type clockid_t = c_int; + +s! { + pub struct iovec { + pub iov_base: *mut ::c_void, + pub iov_len: ::size_t, + } + + pub struct timespec { + pub tv_sec: time_t, + pub tv_nsec: c_long, + } +} + +pub const PROT_READ: i32 = 1; +pub const PROT_WRITE: i32 = 2; + +// Trusty only supports `CLOCK_BOOTTIME`. +pub const CLOCK_BOOTTIME: clockid_t = 7; + +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; + +pub const AT_PAGESZ: ::c_ulong = 6; + +pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; + +extern "C" { + pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; + pub fn malloc(size: size_t) -> *mut c_void; + pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; + pub fn free(p: *mut c_void); + pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; + pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int; + pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::size_t) -> ::ssize_t; + pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn close(fd: ::c_int) -> ::c_int; + pub fn strlen(cs: *const c_char) -> size_t; + pub fn getauxval(type_: c_ulong) -> c_ulong; + pub fn mmap( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + flags: ::c_int, + fd: ::c_int, + offset: off_t, + ) -> *mut ::c_void; + pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; + pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn nanosleep(rqtp: *const ::timespec, rmtp: *mut ::timespec) -> ::c_int; +} From 13507bf69ac11b709282e891531af83d3606205f Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 29 Aug 2024 15:16:29 -0500 Subject: [PATCH 0195/1228] ci: Use YAML arrays (backport ) (cherry picked from commit bba23956db88fc13063c24597cf02eb917a38cbd) --- .github/workflows/full_ci.yml | 109 ++++++++++++++++------------------ 1 file changed, 51 insertions(+), 58 deletions(-) diff --git a/.github/workflows/full_ci.yml b/.github/workflows/full_ci.yml index b36f4f9d2ba57..4fff4e083e091 100644 --- a/.github/workflows/full_ci.yml +++ b/.github/workflows/full_ci.yml @@ -16,10 +16,9 @@ jobs: strategy: fail-fast: true matrix: - target: [ - i686-unknown-linux-gnu, - x86_64-unknown-linux-gnu, - ] + target: + - i686-unknown-linux-gnu + - x86_64-unknown-linux-gnu steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain @@ -36,9 +35,8 @@ jobs: strategy: fail-fast: true matrix: - target: [ - x86_64-apple-darwin, - ] + target: + - x86_64-apple-darwin steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain @@ -104,32 +102,31 @@ jobs: fail-fast: true max-parallel: 12 matrix: - target: [ - aarch64-linux-android, - aarch64-unknown-linux-gnu, - aarch64-unknown-linux-musl, - arm-linux-androideabi, - arm-unknown-linux-gnueabihf, - arm-unknown-linux-musleabihf, - i686-linux-android, - i686-unknown-linux-musl, - powerpc-unknown-linux-gnu, - powerpc64-unknown-linux-gnu, - powerpc64le-unknown-linux-gnu, - s390x-unknown-linux-gnu, - riscv64gc-unknown-linux-gnu, - wasm32-wasip1, - wasm32-wasip2, - sparc64-unknown-linux-gnu, - wasm32-unknown-emscripten, - x86_64-linux-android, + target: + - aarch64-linux-android + - aarch64-unknown-linux-gnu + - aarch64-unknown-linux-musl + - arm-linux-androideabi + - arm-unknown-linux-gnueabihf + - arm-unknown-linux-musleabihf + - i686-linux-android + - i686-unknown-linux-musl + - powerpc-unknown-linux-gnu + - powerpc64-unknown-linux-gnu + - powerpc64le-unknown-linux-gnu + - s390x-unknown-linux-gnu + - riscv64gc-unknown-linux-gnu + - wasm32-wasip1 + - wasm32-wasip2 + - sparc64-unknown-linux-gnu + - wasm32-unknown-emscripten + - x86_64-linux-android # FIXME: Exec format error (os error 8) - #x86_64-unknown-linux-gnux32, - x86_64-unknown-linux-musl, + # - x86_64-unknown-linux-gnux32 + - x86_64-unknown-linux-musl # FIXME: It seems some items in `src/unix/mod.rs` # aren't defined on redox actually. - # x86_64-unknown-redox, - ] + # - x86_64-unknown-redox steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain @@ -150,18 +147,17 @@ jobs: fail-fast: true max-parallel: 5 matrix: - toolchain: [ - stable, - beta, - nightly, + toolchain: + - stable + - beta + - nightly # FIXME: Disabled due to: # error: failed to parse registry's information for: serde - #1.13.0, - 1.19.0, - 1.24.0, - 1.25.0, - 1.30.0, - ] + # 1.13.0, + - 1.19.0 + - 1.24.0 + - 1.25.0 + - 1.30.0 steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain @@ -204,13 +200,12 @@ jobs: strategy: fail-fast: true matrix: - toolchain: [ - 1.19.0, - 1.24.0, - 1.25.0, - 1.30.0, - stable, - ] + toolchain: + - 1.19.0 + - 1.24.0 + - 1.25.0 + - 1.30.0 + - stable steps: - uses: actions/checkout@v4 - name: Self-update rustup @@ -223,7 +218,6 @@ jobs: check_cfg: permissions: contents: read # to fetch code (actions/checkout) - name: "Check #[cfg]s" runs-on: ubuntu-22.04 steps: @@ -238,16 +232,15 @@ jobs: success: name: success runs-on: ubuntu-22.04 - needs: [ - docker_linux_tier1, - docker_linux_tier2, - macos, - windows, - style_check, - build_channels_linux, - build_channels_macos, - build_channels_windows, - ] + needs: + - docker_linux_tier1 + - docker_linux_tier2 + - macos + - windows + - style_check + - build_channels_linux + - build_channels_macos + - build_channels_windows # Github branch protection is exceedingly silly and treats "jobs skipped because a dependency # failed" as success. So we have to do some contortions to ensure the job fails if any of its # dependencies fails. From 164a8a4ebe3875da98ec3c8391c56dfd49afd037 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 29 Aug 2024 15:22:32 -0500 Subject: [PATCH 0196/1228] ci: remove unneeded `permissions.contents` keys (backport ) (cherry picked from commit 4406ec22375d53cd7777d36dee1133579d191176) --- .github/workflows/full_ci.yml | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/.github/workflows/full_ci.yml b/.github/workflows/full_ci.yml index 4fff4e083e091..594052ba4c435 100644 --- a/.github/workflows/full_ci.yml +++ b/.github/workflows/full_ci.yml @@ -8,9 +8,6 @@ on: jobs: docker_linux_tier1: - permissions: - contents: read # to fetch code (actions/checkout) - name: Docker Linux Tier1 runs-on: ubuntu-22.04 strategy: @@ -27,9 +24,6 @@ jobs: run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }} macos: - permissions: - contents: read # to fetch code (actions/checkout) - name: macOS runs-on: macos-13 strategy: @@ -45,9 +39,6 @@ jobs: run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }} windows: - permissions: - contents: read # to fetch code (actions/checkout) - name: Windows runs-on: windows-2022 env: @@ -79,9 +70,6 @@ jobs: shell: bash style_check: - permissions: - contents: read # to fetch code (actions/checkout) - name: Style check runs-on: ubuntu-22.04 steps: @@ -92,9 +80,6 @@ jobs: run: sh ci/style.sh docker_linux_tier2: - permissions: - contents: read # to fetch code (actions/checkout) - name: Docker Linux Tier2 needs: [docker_linux_tier1, style_check] runs-on: ubuntu-22.04 @@ -135,9 +120,6 @@ jobs: run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }} build_channels_linux: - permissions: - contents: read # to fetch code (actions/checkout) - name: Build Channels Linux needs: docker_linux_tier2 runs-on: ubuntu-22.04 @@ -166,9 +148,6 @@ jobs: run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh build_channels_macos: - permissions: - contents: read # to fetch code (actions/checkout) - name: Build Channels macOS needs: macos env: @@ -190,9 +169,6 @@ jobs: run: LIBC_CI=1 TOOLCHAIN=${{ matrix.target.toolchain }} sh ./ci/build.sh build_channels_windows: - permissions: - contents: read # to fetch code (actions/checkout) - name: Build Channels Windows runs-on: windows-2022 env: @@ -216,8 +192,6 @@ jobs: shell: bash check_cfg: - permissions: - contents: read # to fetch code (actions/checkout) name: "Check #[cfg]s" runs-on: ubuntu-22.04 steps: From 04b3b07d346aa3fbf7bcd9c01c2f0594c032afbc Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 29 Aug 2024 15:30:04 -0500 Subject: [PATCH 0197/1228] ci: just set required env globally (backport ) (cherry picked from commit 72940168e3d68c99062d6f849bcbe694bc03aea2) --- .github/workflows/full_ci.yml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/workflows/full_ci.yml b/.github/workflows/full_ci.yml index 594052ba4c435..f3be6afe5b8d5 100644 --- a/.github/workflows/full_ci.yml +++ b/.github/workflows/full_ci.yml @@ -6,6 +6,9 @@ on: branches: - libc-0.2 +env: + LIBC_CI: 1 + jobs: docker_linux_tier1: name: Docker Linux Tier1 @@ -21,7 +24,7 @@ jobs: - name: Setup Rust toolchain run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - name: Execute run-docker.sh - run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }} + run: sh ./ci/run-docker.sh ${{ matrix.target }} macos: name: macOS @@ -36,7 +39,7 @@ jobs: - name: Setup Rust toolchain run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - name: Execute run.sh - run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }} + run: sh ./ci/run.sh ${{ matrix.target }} windows: name: Windows @@ -66,7 +69,7 @@ jobs: run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh shell: bash - name: Execute run.sh - run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }} + run: sh ./ci/run.sh ${{ matrix.target }} shell: bash style_check: @@ -117,7 +120,7 @@ jobs: - name: Setup Rust toolchain run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - name: Execute run-docker.sh - run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }} + run: sh ./ci/run-docker.sh ${{ matrix.target }} build_channels_linux: name: Build Channels Linux @@ -145,7 +148,7 @@ jobs: - name: Setup Rust toolchain run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/install-rust.sh - name: Execute build.sh - run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh + run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh build_channels_macos: name: Build Channels macOS @@ -166,7 +169,7 @@ jobs: - name: Setup Rust toolchain run: TOOLCHAIN=${{ matrix.target.toolchain }} sh ./ci/install-rust.sh - name: Execute build.sh - run: LIBC_CI=1 TOOLCHAIN=${{ matrix.target.toolchain }} sh ./ci/build.sh + run: TOOLCHAIN=${{ matrix.target.toolchain }} sh ./ci/build.sh build_channels_windows: name: Build Channels Windows @@ -188,7 +191,7 @@ jobs: run: rustup self update shell: bash - name: Execute build.sh - run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh + run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh shell: bash check_cfg: @@ -199,7 +202,7 @@ jobs: - name: Setup Rust toolchain run: TOOLCHAIN=nightly sh ./ci/install-rust.sh - name: Build with check-cfg - run: LIBC_CI=1 LIBC_CHECK_CFG=1 cargo build -Z unstable-options -Z check-cfg + run: LIBC_CHECK_CFG=1 cargo build -Z unstable-options -Z check-cfg # One job that "summarizes" the success state of this pipeline. This can then be added to branch # protection, rather than having to add each job separately. From 033291155c675f525603172d78b7b89def8a6b92 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 6 Nov 2024 19:45:53 -0600 Subject: [PATCH 0198/1228] ci: reorder jobs, don't make native linux depend on tier 2 tests (backport ) (cherry picked from commit 2e4e0ed81f5525abba7c6cf99968df3a2e61db2b) --- .github/workflows/full_ci.yml | 167 +++++++++++++++++----------------- 1 file changed, 83 insertions(+), 84 deletions(-) diff --git a/.github/workflows/full_ci.yml b/.github/workflows/full_ci.yml index f3be6afe5b8d5..f2a3b07ca152c 100644 --- a/.github/workflows/full_ci.yml +++ b/.github/workflows/full_ci.yml @@ -10,21 +10,86 @@ env: LIBC_CI: 1 jobs: - docker_linux_tier1: - name: Docker Linux Tier1 + style_check: + name: Style check runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - name: Setup Rust toolchain + run: sh ./ci/install-rust.sh + - name: Check style + run: sh ci/style.sh + + build_channels_linux: + name: Build Channels Linux + runs-on: ubuntu-22.04 + env: + OS: linux strategy: fail-fast: true + max-parallel: 5 + matrix: + toolchain: + - stable + - beta + - nightly + # FIXME: Disabled due to: + # error: failed to parse registry's information for: serde + # 1.13.0, + - 1.19.0 + - 1.24.0 + - 1.25.0 + - 1.30.0 + steps: + - uses: actions/checkout@v4 + - name: Setup Rust toolchain + run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/install-rust.sh + - name: Execute build.sh + run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh + + build_channels_macos: + name: Build Channels macOS + needs: macos + env: + OS: macos + strategy: + fail-fast: true + max-parallel: 4 matrix: target: - - i686-unknown-linux-gnu - - x86_64-unknown-linux-gnu + - { toolchain: stable, os: macos-13 } + - { toolchain: beta, os: macos-13 } + - { toolchain: nightly, os: macos-13 } + runs-on: ${{ matrix.target.os }} steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - - name: Execute run-docker.sh - run: sh ./ci/run-docker.sh ${{ matrix.target }} + run: TOOLCHAIN=${{ matrix.target.toolchain }} sh ./ci/install-rust.sh + - name: Execute build.sh + run: TOOLCHAIN=${{ matrix.target.toolchain }} sh ./ci/build.sh + + build_channels_windows: + name: Build Channels Windows + runs-on: windows-2022 + env: + OS: windows + strategy: + fail-fast: true + matrix: + toolchain: + - 1.19.0 + - 1.24.0 + - 1.25.0 + - 1.30.0 + - stable + steps: + - uses: actions/checkout@v4 + - name: Self-update rustup + run: rustup self update + shell: bash + - name: Execute build.sh + run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh + shell: bash macos: name: macOS @@ -72,15 +137,21 @@ jobs: run: sh ./ci/run.sh ${{ matrix.target }} shell: bash - style_check: - name: Style check + docker_linux_tier1: + name: Docker Linux Tier1 runs-on: ubuntu-22.04 + strategy: + fail-fast: true + matrix: + target: + - i686-unknown-linux-gnu + - x86_64-unknown-linux-gnu steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain - run: sh ./ci/install-rust.sh - - name: Check style - run: sh ci/style.sh + run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh + - name: Execute run-docker.sh + run: sh ./ci/run-docker.sh ${{ matrix.target }} docker_linux_tier2: name: Docker Linux Tier2 @@ -122,78 +193,6 @@ jobs: - name: Execute run-docker.sh run: sh ./ci/run-docker.sh ${{ matrix.target }} - build_channels_linux: - name: Build Channels Linux - needs: docker_linux_tier2 - runs-on: ubuntu-22.04 - env: - OS: linux - strategy: - fail-fast: true - max-parallel: 5 - matrix: - toolchain: - - stable - - beta - - nightly - # FIXME: Disabled due to: - # error: failed to parse registry's information for: serde - # 1.13.0, - - 1.19.0 - - 1.24.0 - - 1.25.0 - - 1.30.0 - steps: - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/install-rust.sh - - name: Execute build.sh - run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh - - build_channels_macos: - name: Build Channels macOS - needs: macos - env: - OS: macos - strategy: - fail-fast: true - max-parallel: 4 - matrix: - target: - - { toolchain: stable, os: macos-13 } - - { toolchain: beta, os: macos-13 } - - { toolchain: nightly, os: macos-13 } - runs-on: ${{ matrix.target.os }} - steps: - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TOOLCHAIN=${{ matrix.target.toolchain }} sh ./ci/install-rust.sh - - name: Execute build.sh - run: TOOLCHAIN=${{ matrix.target.toolchain }} sh ./ci/build.sh - - build_channels_windows: - name: Build Channels Windows - runs-on: windows-2022 - env: - OS: windows - strategy: - fail-fast: true - matrix: - toolchain: - - 1.19.0 - - 1.24.0 - - 1.25.0 - - 1.30.0 - - stable - steps: - - uses: actions/checkout@v4 - - name: Self-update rustup - run: rustup self update - shell: bash - - name: Execute build.sh - run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh - shell: bash - check_cfg: name: "Check #[cfg]s" runs-on: ubuntu-22.04 From ca620bc5c04fbd511e342917f9ac0fb0d24bc0c7 Mon Sep 17 00:00:00 2001 From: WANG Rui Date: Tue, 29 Oct 2024 21:35:55 +0800 Subject: [PATCH 0199/1228] ci: add support for loongarch64-unknown-linux-gnu (backport ) (cherry picked from commit 705bb126beac872f2899487ec93886fea3fe3598) --- .github/workflows/full_ci.yml | 1 + ci/docker/loongarch64-unknown-linux-gnu/Dockerfile | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 ci/docker/loongarch64-unknown-linux-gnu/Dockerfile diff --git a/.github/workflows/full_ci.yml b/.github/workflows/full_ci.yml index f2a3b07ca152c..5e594a9a88079 100644 --- a/.github/workflows/full_ci.yml +++ b/.github/workflows/full_ci.yml @@ -170,6 +170,7 @@ jobs: - arm-unknown-linux-musleabihf - i686-linux-android - i686-unknown-linux-musl + - loongarch64-unknown-linux-gnu - powerpc-unknown-linux-gnu - powerpc64-unknown-linux-gnu - powerpc64le-unknown-linux-gnu diff --git a/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile b/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile new file mode 100644 index 0000000000000..aebf7c0741956 --- /dev/null +++ b/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile @@ -0,0 +1,12 @@ +FROM ubuntu:24.04 + +RUN apt-get update && apt-get install -y --no-install-recommends \ + gcc libc6-dev qemu-user ca-certificates \ + gcc-14-loongarch64-linux-gnu libc6-dev-loong64-cross \ + linux-headers-generic + +ENV CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_GNU_LINKER=loongarch64-linux-gnu-gcc-14 \ + CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_GNU_RUNNER="qemu-loongarch64 -L /usr/loongarch64-linux-gnu" \ + CC_loongarch64_unknown_linux_gnu=loongarch64-linux-gnu-gcc-14 \ + CFLAGS_loongarch64_unknown_linux_gnu="-mabi=lp64d -fPIC" \ + PATH=$PATH:/rust/bin From 82854692efd86787e4068eaef420680bdb0da3aa Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 6 Nov 2024 20:13:34 -0600 Subject: [PATCH 0200/1228] Remove the `wasm32-wasi` target Since [1], the `wasm32-wasi` target is no longer supported (replaced by `wasm32-wasip1` and `wasm32-wasip2`). This has made it into the latest nightly, so remove it from our testing. [1]: https://github.com/rust-lang/rust/pull/132562 (backport ) (cherry picked from commit a4d3ca87aa0cbe52b728ab88d59d2cee9b1aa21e) --- Cargo.toml | 1 - ci/build.sh | 1 - 2 files changed, 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 04183f0c2623a..b0eacb4cdaa94 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -107,7 +107,6 @@ targets = [ "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", diff --git a/ci/build.sh b/ci/build.sh index d4b85ccbf0bd9..28655238e9f65 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -136,7 +136,6 @@ 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-unknown-fuchsia \ x86_64-pc-solaris \ From b0dd5ff83cdf84554e45dc424d204a41bd6b2e39 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 6 Nov 2024 20:13:34 -0600 Subject: [PATCH 0201/1228] Remove the `wasm32-wasi` target Since [1], the `wasm32-wasi` target is no longer supported (replaced by `wasm32-wasip1` and `wasm32-wasip2`). This has made it into the latest nightly, so remove it from our testing. [1]: https://github.com/rust-lang/rust/pull/132562 (backport ) (cherry picked from commit a4d3ca87aa0cbe52b728ab88d59d2cee9b1aa21e) --- Cargo.toml | 1 - ci/build.sh | 1 - 2 files changed, 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 04183f0c2623a..b0eacb4cdaa94 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -107,7 +107,6 @@ targets = [ "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", diff --git a/ci/build.sh b/ci/build.sh index d4b85ccbf0bd9..28655238e9f65 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -136,7 +136,6 @@ 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-unknown-fuchsia \ x86_64-pc-solaris \ From bcae06edb49932a31ef5a32437367505f60b803e Mon Sep 17 00:00:00 2001 From: Pedro Tammela Date: Fri, 13 Sep 2024 17:46:49 -0300 Subject: [PATCH 0202/1228] epoll: add busy polling parameters In Linux 6.9 a new ioctl for epoll was added: https://man.archlinux.org/man/ioctl_eventpoll.2.en Add support for it. The ioctls constants are padded to 64 bits alignment even on 32 bits machines. Signed-off-by: Pedro Tammela (backport ) (cherry picked from commit fb58c011af41a5a3d3ad3082c9263be5ae395751) Signed-off-by: Trevor Gross --- libc-test/build.rs | 7 +++++++ libc-test/semver/linux.txt | 3 +++ src/unix/linux_like/linux/mod.rs | 13 +++++++++++++ 3 files changed, 23 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index b86d9516b8744..750b3869205e9 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3864,6 +3864,9 @@ fn test_linux(target: &str) { // kernel so we can drop this and test the type once this new version is used in CI. "sched_attr" => true, + // FIXME: Requires >= 6.9 kernel headers. + "epoll_params" => true, + _ => false, } }); @@ -4306,6 +4309,10 @@ fn test_linux(target: &str) { | "SCHED_FLAG_UTIL_CLAMP" | "SCHED_FLAG_ALL" if musl => true, // Needs more recent linux headers. + // FIXME: Requires >= 6.9 kernel headers. + "EPIOCSPARAMS" + | "EPIOCGPARAMS" => true, + _ => false, } }); diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index a5ccef469541d..6c10f1234226b 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -550,6 +550,8 @@ ENOTSUP ENOTUNIQ EOF EOWNERDEAD +EPIOCGPARAMS +EPIOCSPARAMS EPOLLERR EPOLLET EPOLLEXCLUSIVE @@ -3489,6 +3491,7 @@ epoll_create epoll_create1 epoll_ctl epoll_event +epoll_params epoll_pwait epoll_wait erand48 diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 20c4a16979087..f26af4c1fe16f 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -880,6 +880,15 @@ s! { pub salt: [::c_uchar; TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE], pub rec_seq: [::c_uchar; TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE], } + + // #include + + pub struct epoll_params { + pub busy_poll_usecs: u32, + pub busy_poll_budget: u16, + pub prefer_busy_poll: u8, + pub __pad: u8, // Must be zero + } } s_no_extra_traits! { @@ -4936,6 +4945,10 @@ pub const SCHED_FLAG_ALL: ::c_int = SCHED_FLAG_RESET_ON_FORK | SCHED_FLAG_KEEP_ALL | SCHED_FLAG_UTIL_CLAMP; +// ioctl_eventpoll: added in Linux 6.9 +pub const EPIOCSPARAMS: ::Ioctl = 0x40088a01; +pub const EPIOCGPARAMS: ::Ioctl = 0x80088a02; + f! { pub fn NLA_ALIGN(len: ::c_int) -> ::c_int { return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1) From f035b10e24081ec8c3f7acb28dcfc285878fc776 Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Wed, 11 Sep 2024 03:54:03 +0100 Subject: [PATCH 0203/1228] Add host_cpu_load_info on Apple Snippet from `host_info.h`: ``` struct host_cpu_load_info { /* number of ticks while running... */ natural_t cpu_ticks[CPU_STATE_MAX]; /* ... in the given mode */ }; typedef struct host_cpu_load_info host_cpu_load_info_data_t; typedef struct host_cpu_load_info *host_cpu_load_info_t; ``` (backport ) (cherry picked from commit f31fe2adb0b1a7836313463d9fad4771e939372f) --- libc-test/semver/apple.txt | 3 +++ src/unix/bsd/apple/mod.rs | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index 11f26658c2a47..e5de0f02136af 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -1983,6 +1983,9 @@ getxattr glob glob_t globfree +host_cpu_load_info +host_cpu_load_info_data_t +host_cpu_load_info_t iconv iconv_close iconv_open diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 0017403410f4c..8f882f9b6954d 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -72,6 +72,11 @@ pub type ledger_array_t = *mut ::ledger_t; pub type iconv_t = *mut ::c_void; +// mach/host_info.h +pub type host_cpu_load_info_t = *mut host_cpu_load_info; +pub type host_cpu_load_info_data_t = host_cpu_load_info; + +// mach/processor_info.h pub type processor_cpu_load_info_t = *mut processor_cpu_load_info; pub type processor_cpu_load_info_data_t = processor_cpu_load_info; pub type processor_basic_info_t = *mut processor_basic_info; @@ -1189,6 +1194,11 @@ s! { pub tcpi_rxoutoforderbytes: u64, pub tcpi_rxretransmitpackets: u64, } + + // mach/host_info.h + pub struct host_cpu_load_info { + pub cpu_ticks: [::natural_t; CPU_STATE_MAX as usize], + } } s_no_extra_traits! { From 6a4da8f24e61bc46974485fb01814cb01986903d Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 6 Nov 2024 21:08:05 -0600 Subject: [PATCH 0204/1228] Format all markdown files to rewrap text --- CONTRIBUTING.md | 69 ++++++++++++++++++++------------------ README.md | 68 ++++++++++++++++++------------------- ci/README.md | 25 ++++++++------ libc-test/semver/README.md | 19 ++++++----- 4 files changed, 95 insertions(+), 86 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b6f41cc6de85e..2f25057c7f39b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,14 +1,14 @@ # Contributing to `libc` -Welcome! If you are reading this document, it means you are interested in contributing -to the `libc` crate. +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. +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 @@ -16,14 +16,14 @@ Want to use an API which currently isn't bound in `libc`? It's quite easy to add one! The internal structure of this crate is designed to minimize the number of -`#[cfg]` attributes in order to easily be able to add new items which apply -to all platforms in the future. As a result, the crate is organized -hierarchically based on platform. Each module has a number of `#[cfg]`'d -children, but only one is ever actually compiled. Each module then reexports all -the contents of its children. - -This means that for each platform that libc supports, the path from a -leaf module to the root will contain all bindings for the platform in question. +`#[cfg]` attributes in order to easily be able to add new items which apply to +all platforms in the future. As a result, the crate is organized hierarchically +based on platform. Each module has a number of `#[cfg]`'d children, but only one +is ever actually compiled. Each module then reexports all the contents of its +children. + +This means that for each platform that libc supports, the path from a leaf +module to the root will contain all bindings for the platform in question. Consequently, this indicates where an API should be added! Adding an API at a particular level in the hierarchy means that it is supported on all the child platforms of that level. For example, when adding a Unix API it should be added @@ -55,7 +55,8 @@ standard, it's just a list shared between all OSs that declare `#[cfg(unix)]`. ## Test before you commit -We have two automated tests running on [GitHub Actions](https://github.com/rust-lang/libc/actions): +We have two automated tests running on +[GitHub Actions](https://github.com/rust-lang/libc/actions): 1. [`libc-test`](https://github.com/gnzlbg/ctest) - `cd libc-test && cargo test` @@ -65,23 +66,26 @@ We have two automated tests running on [GitHub Actions](https://github.com/rust- ## Breaking change policy -Sometimes an upstream adds a breaking change to their API e.g. removing outdated items, -changing the type signature, etc. And we probably should follow that change to build the -`libc` crate successfully. It's annoying to do the equivalent of semver-major versioning -for each such change. Instead, we mark the item as deprecated and do the actual change -after a certain period. The steps are: +Sometimes an upstream adds a breaking change to their API e.g. removing outdated +items, changing the type signature, etc. And we probably should follow that +change to build the `libc` crate successfully. It's annoying to do the +equivalent of semver-major versioning for each such change. Instead, we mark the +item as deprecated and do the actual change after a certain period. The steps +are: 1. Add `#[deprecated(since = "", note="")]` attribute to the item. - - The `since` field should have a next version of `libc` - (e.g., if the current version is `0.2.1`, it should be `0.2.2`). - - The `note` field should have a reason to deprecate and a tracking issue to call for comments - (e.g., "We consider removing this as the upstream removed it. - If you're using it, please comment on #XXX"). + - The `since` field should have a next version of `libc` (e.g., if the current + version is `0.2.1`, it should be `0.2.2`). + - The `note` field should have a reason to deprecate and a tracking issue to + call for comments (e.g., "We consider removing this as the upstream removed + it. If you're using it, please comment on #XXX"). + 2. If we don't see any concerns for a while, do the change actually. ## Supported target policy -When Rust removes a support for a target, the libc crate also may remove the support anytime. +When Rust removes a support for a target, the libc crate also may remove the +support anytime. ## Releasing your change to crates.io @@ -90,11 +94,12 @@ platform in this crate, the next step is to get that sweet, sweet usage from crates.io! The only next step is to bump the version of libc and then publish it. If you'd like to get a release out ASAP you can follow these steps: -1. Increment the patch version number in `Cargo.toml` and `libc-test/Cargo.toml`. -1. Send a PR to this repository. It should [look like this][example-pr], but it'd - also be nice to fill out the description with a small rationale for the - release (any rationale is ok though!). -1. Once merged, the release will be tagged and published by one of the libc crate - maintainers. +1. Increment the patch version number in `Cargo.toml` and + `libc-test/Cargo.toml`. +1. Send a PR to this repository. It should [look like this][example-pr], but + it would also be nice to fill out the description with a small rationale for + the release (any rationale is ok though!). +1. Once merged, the release will be tagged and published by one of the libc + crate maintainers. [example-pr]: https://github.com/rust-lang/libc/pull/2120 diff --git a/README.md b/README.md index 3d5b5ec583457..bf82d5de6686f 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,8 @@ This crate exports all underlying platform types, functions, and constants under the crate root, so all items are accessible as `libc::foo`. The types and values of all the exported APIs match the platform that libc is compiled for. -Windows API bindings are not included in this crate. If you are looking for WinAPI -bindings, consider using crates like [windows-sys]. +Windows API bindings are not included in this crate. If you are looking for +WinAPI bindings, consider using crates like [windows-sys]. More detailed information about the design of this library can be found in its [associated RFC][rfc]. @@ -24,10 +24,11 @@ More detailed information about the design of this library can be found in its 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. +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. +See the [tracking issue](https://github.com/rust-lang/libc/issues/3248) for +details. ## Usage @@ -40,46 +41,45 @@ libc = "0.2" ## Features -* `std`: by default `libc` links to the standard library. Disable this - feature to remove this dependency and be able to use `libc` in `#![no_std]` - crates. +* `std`: by default `libc` links to the standard library. Disable this feature + to remove this dependency and be able to use `libc` in `#![no_std]` crates. * `extra_traits`: all `struct`s implemented in `libc` are `Copy` and `Clone`. This feature derives `Debug`, `Eq`, `Hash`, and `PartialEq`. -* `const-extern-fn`: Changes some `extern fn`s into `const extern fn`s. - If you use Rust >= 1.62, this feature is implicitly enabled. - Otherwise it requires a nightly rustc. +* `const-extern-fn`: Changes some `extern fn`s into `const extern fn`s. If you + use Rust >= 1.62, this feature is implicitly enabled. Otherwise it requires a + nightly rustc. * **deprecated**: `use_std` is deprecated, and is equivalent to `std`. ## Rust version support -The minimum supported Rust toolchain version is currently **Rust 1.13.0**. -(libc does not currently have any policy regarding changes to the minimum -supported Rust version; such policy is a work in progress.) APIs requiring -newer Rust features are only available on newer Rust toolchains: +The minimum supported Rust toolchain version is currently **Rust 1.13.0**. (libc +does not currently have any policy regarding changes to the minimum supported +Rust version; such policy is a work in progress.) APIs requiring newer Rust +features are only available on newer Rust toolchains: | Feature | Version | -|----------------------|---------| -| `union` | 1.19.0 | -| `const mem::size_of` | 1.24.0 | -| `repr(align)` | 1.25.0 | -| `extra_traits` | 1.25.0 | -| `core::ffi::c_void` | 1.30.0 | -| `repr(packed(N))` | 1.33.0 | -| `cfg(target_vendor)` | 1.33.0 | -| `const-extern-fn` | 1.62.0 | +| -------------------- | ------- | +| `union` | 1.19.0 | +| `const mem::size_of` | 1.24.0 | +| `repr(align)` | 1.25.0 | +| `extra_traits` | 1.25.0 | +| `core::ffi::c_void` | 1.30.0 | +| `repr(packed(N))` | 1.33.0 | +| `cfg(target_vendor)` | 1.33.0 | +| `const-extern-fn` | 1.62.0 | ## Platform support -You can see the platform(target)-specific docs on [docs.rs], select a platform you want to see. +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/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. +See [`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.
@@ -97,13 +97,13 @@ at your option. ## Contributing -We welcome all people who want to contribute. Please see the [contributing -instructions] for more information. +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/HEAD/CONTRIBUTING.md -Contributions in any form (issues, pull requests, etc.) to this project -must adhere to Rust's [Code of Conduct]. +Contributions in any form (issues, pull requests, etc.) to this project must +adhere to Rust's [Code of Conduct]. [Code of Conduct]: https://www.rust-lang.org/policies/code-of-conduct diff --git a/ci/README.md b/ci/README.md index c8c23cfc947a9..b810cd4ac59c0 100644 --- a/ci/README.md +++ b/ci/README.md @@ -4,8 +4,8 @@ result the CI is pretty complicated and also pretty large! Hopefully this can serve as a guide through the sea of scripts in this directory and elsewhere in this project. -Note that this documentation is quite outdated. See CI config and scripts -in the `ci` directory how we run CI now. +Note that this documentation is quite outdated. See CI config and scripts in the +`ci` directory how we run CI now. # Files @@ -20,8 +20,9 @@ First up, let's talk about the files in this directory: # CI Systems -Currently this repository leverages a combination of GitHub Actions and Cirrus CI -for running tests. You can find tested triples in [Actions config] or [Cirrus config]. +Currently this repository leverages a combination of GitHub Actions and Cirrus +CI for running tests. You can find tested triples in [Actions config] or +[Cirrus config]. The Windows triples are all pretty standard, they just set up their environment then run tests, no need for downloading any extra target libs (we just download @@ -101,8 +102,10 @@ about above), and then shut down. 1. [Download the latest stable amd64-bootonly release ISO](https://www.freebsd.org/where.html). E.g. FreeBSD-11.1-RELEASE-amd64-bootonly.iso -2. Create the disk image: `qemu-img create -f qcow2 FreeBSD-11.1-RELEASE-amd64.qcow2 2G` -3. Boot the machine: `qemu-system-x86_64 -cdrom FreeBSD-11.1-RELEASE-amd64-bootonly.iso -drive if=virtio,file=FreeBSD-11.1-RELEASE-amd64.qcow2 -net nic,model=virtio -net user` +2. Create the disk image: + `qemu-img create -f qcow2 FreeBSD-11.1-RELEASE-amd64.qcow2 2G` +3. Boot the machine: + `qemu-system-x86_64 -cdrom FreeBSD-11.1-RELEASE-amd64-bootonly.iso -drive if=virtio,file=FreeBSD-11.1-RELEASE-amd64.qcow2 -net nic,model=virtio -net user` 4. Run the installer, and install FreeBSD: 1. Install 1. Continue with default keymap @@ -159,9 +162,9 @@ about above), and then shut down. 1. Exit the post install shell: `exit` 1. Back in in the installer choose Reboot - 1. If all went well the machine should reboot and show a login prompt. - If you switch to the serial console by choosing View > serial0 in - the qemu menu, you should be logged in as root. + 1. If all went well the machine should reboot and show a login prompt. If you + switch to the serial console by choosing View > serial0 in the qemu menu, + you should be logged in as root. 1. Shutdown the machine: `shutdown -p now` Helpful links @@ -178,8 +181,8 @@ Helpful links 4. run installer 5. `echo 'set tty com0' >> /etc/boot.conf` 6. `echo 'boot' >> /etc/boot.conf` -7. Modify /etc/ttys, change the `tty00` at the end from 'unknown off' to - 'vt220 on secure' +7. Modify /etc/ttys, change the `tty00` at the end from 'unknown off' to 'vt220 + on secure' 8. Modify same line in /etc/ttys to have `"/root/foo.sh"` as the shell 9. Add this script to `/root/foo.sh` diff --git a/libc-test/semver/README.md b/libc-test/semver/README.md index 624387172d00a..a18418f0536d9 100644 --- a/libc-test/semver/README.md +++ b/libc-test/semver/README.md @@ -6,12 +6,13 @@ ensure that APIs aren't removed between libc releases. ## File order Files are including in the following order: - * Family, e.g. `unix.txt`. NOTE: Windows is skipped here and includes as OS - name below. - * Vendor, e.g. `apple.txt`. This allows us to have a single file with system - calls shared between multiple OSs, e.g. `ios.txt`, `macos.txt` share the same - kernel. - * OS, e.g `linux.txt`, `macos.txt`, `windows.txt`. - * Architecture specific system calls, e.g. `linux-x86_64.txt` or - `linux-aarch64.txt`. - * Target environment, e.g. `windows-mscv.txt` or `windows-gnu.txt`. + +* Family, e.g. `unix.txt`. NOTE: Windows is skipped here and includes as OS name + below. +* Vendor, e.g. `apple.txt`. This allows us to have a single file with system + calls shared between multiple OSs, e.g. `ios.txt`, `macos.txt` share the same + kernel. +* OS, e.g `linux.txt`, `macos.txt`, `windows.txt`. +* Architecture specific system calls, e.g. `linux-x86_64.txt` or + `linux-aarch64.txt`. +* Target environment, e.g. `windows-mscv.txt` or `windows-gnu.txt`. From a3542611d61504e352e59bd298e68ec2217bb29e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 6 Nov 2024 21:14:35 -0600 Subject: [PATCH 0205/1228] Document that we use release-plz The existing release docs haven't been updated since the process change. Update contributing guidelines to reflect that we use release-plz. --- CONTRIBUTING.md | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2f25057c7f39b..ee4deaa003fbd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -89,17 +89,8 @@ support anytime. ## Releasing your change to crates.io -Now that you've done the amazing job of landing your new API or your new -platform in this crate, the next step is to get that sweet, sweet usage from -crates.io! The only next step is to bump the version of libc and then publish -it. If you'd like to get a release out ASAP you can follow these steps: - -1. Increment the patch version number in `Cargo.toml` and - `libc-test/Cargo.toml`. -1. Send a PR to this repository. It should [look like this][example-pr], but - it would also be nice to fill out the description with a small rationale for - the release (any rationale is ok though!). -1. Once merged, the release will be tagged and published by one of the libc - crate maintainers. - -[example-pr]: https://github.com/rust-lang/libc/pull/2120 +This repository uses [release-plz] to handle releases. Once your pull request +has been merged, a maintainer just needs to verify the generated changelog, then +merge the bot's release PR. This will automatically publish to crates.io! + +[release-plz]: https://github.com/MarcoIeni/release-plz From e4424387a5d7f3c62cf44b9e9fe7b52a436836dd Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Tue, 26 Mar 2024 22:06:37 -0700 Subject: [PATCH 0206/1228] Convert mode_t constants to octal (backport ) (cherry picked from commit 3cc3f01204bb8969c309554616167aacc77cc2ca) --- src/fuchsia/mod.rs | 46 ++++++------- src/solid/mod.rs | 18 ++--- src/unix/aix/mod.rs | 46 ++++++------- src/unix/bsd/apple/mod.rs | 46 ++++++------- src/unix/bsd/freebsdlike/mod.rs | 46 ++++++------- src/unix/bsd/netbsdlike/mod.rs | 46 ++++++------- src/unix/haiku/mod.rs | 42 ++++++------ src/unix/hurd/mod.rs | 98 +++++++++++++-------------- src/unix/linux_like/emscripten/mod.rs | 6 +- src/unix/linux_like/linux/mod.rs | 6 +- src/unix/linux_like/mod.rs | 40 +++++------ src/unix/mod.rs | 6 +- src/unix/newlib/mod.rs | 42 ++++++------ src/unix/nto/mod.rs | 42 ++++++------ src/unix/redox/mod.rs | 40 +++++------ src/unix/solarish/mod.rs | 46 ++++++------- src/vxworks/mod.rs | 48 ++++++------- src/wasi/mod.rs | 42 ++++++------ src/windows/mod.rs | 14 ++-- 19 files changed, 360 insertions(+), 360 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 9414d1674f26e..f3bba75e69b5f 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -1467,26 +1467,26 @@ pub const O_RDONLY: ::c_int = 0; pub const O_WRONLY: ::c_int = 1; pub const O_RDWR: ::c_int = 2; -pub const S_IFIFO: ::mode_t = 4096; -pub const S_IFCHR: ::mode_t = 8192; -pub const S_IFBLK: ::mode_t = 24576; -pub const S_IFDIR: ::mode_t = 16384; -pub const S_IFREG: ::mode_t = 32768; -pub const S_IFLNK: ::mode_t = 40960; -pub const S_IFSOCK: ::mode_t = 49152; -pub const S_IFMT: ::mode_t = 61440; -pub const S_IRWXU: ::mode_t = 448; -pub const S_IXUSR: ::mode_t = 64; -pub const S_IWUSR: ::mode_t = 128; -pub const S_IRUSR: ::mode_t = 256; -pub const S_IRWXG: ::mode_t = 56; -pub const S_IXGRP: ::mode_t = 8; -pub const S_IWGRP: ::mode_t = 16; -pub const S_IRGRP: ::mode_t = 32; -pub const S_IRWXO: ::mode_t = 7; -pub const S_IXOTH: ::mode_t = 1; -pub const S_IWOTH: ::mode_t = 2; -pub const S_IROTH: ::mode_t = 4; +pub const S_IFIFO: ::mode_t = 0o1_0000; +pub const S_IFCHR: ::mode_t = 0o2_0000; +pub const S_IFBLK: ::mode_t = 0o6_0000; +pub const S_IFDIR: ::mode_t = 0o4_0000; +pub const S_IFREG: ::mode_t = 0o10_0000; +pub const S_IFLNK: ::mode_t = 0o12_0000; +pub const S_IFSOCK: ::mode_t = 0o14_0000; +pub const S_IFMT: ::mode_t = 0o17_0000; +pub const S_IRWXU: ::mode_t = 0o0700; +pub const S_IXUSR: ::mode_t = 0o0100; +pub const S_IWUSR: ::mode_t = 0o0200; +pub const S_IRUSR: ::mode_t = 0o0400; +pub const S_IRWXG: ::mode_t = 0o0070; +pub const S_IXGRP: ::mode_t = 0o0010; +pub const S_IWGRP: ::mode_t = 0o0020; +pub const S_IRGRP: ::mode_t = 0o0040; +pub const S_IRWXO: ::mode_t = 0o0007; +pub const S_IXOTH: ::mode_t = 0o0001; +pub const S_IWOTH: ::mode_t = 0o0002; +pub const S_IROTH: ::mode_t = 0o0004; pub const F_OK: ::c_int = 0; pub const R_OK: ::c_int = 4; pub const W_OK: ::c_int = 2; @@ -2283,9 +2283,9 @@ pub const POSIX_MADV_RANDOM: ::c_int = 1; pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; pub const POSIX_MADV_WILLNEED: ::c_int = 3; -pub const S_IEXEC: mode_t = 64; -pub const S_IWRITE: mode_t = 128; -pub const S_IREAD: mode_t = 256; +pub const S_IEXEC: mode_t = 0o0100; +pub const S_IWRITE: mode_t = 0o0200; +pub const S_IREAD: mode_t = 0o0400; pub const F_LOCK: ::c_int = 1; pub const F_TEST: ::c_int = 3; diff --git a/src/solid/mod.rs b/src/solid/mod.rs index f0f2ae89bde90..2aca8d19abffd 100644 --- a/src/solid/mod.rs +++ b/src/solid/mod.rs @@ -209,15 +209,15 @@ pub const O_EXCL: c_int = 0x400; pub const O_TEXT: c_int = 0x100; pub const O_BINARY: c_int = 0x200; pub const O_TRUNC: c_int = 0x20; -pub const S_IEXEC: c_short = 0x0040; -pub const S_IWRITE: c_short = 0x0080; -pub const S_IREAD: c_short = 0x0100; -pub const S_IFCHR: c_short = 0x2000; -pub const S_IFDIR: c_short = 0x4000; -pub const S_IFMT: c_short = 0o160000; -pub const S_IFIFO: c_short = 0o0010000; -pub const S_IFBLK: c_short = 0o0060000; -pub const S_IFREG: c_short = 0o0100000; +pub const S_IEXEC: c_short = 0o0100; +pub const S_IWRITE: c_short = 0o0200; +pub const S_IREAD: c_short = 0o0400; +pub const S_IFCHR: c_short = 0o2_0000; +pub const S_IFDIR: c_short = 0o4_0000; +pub const S_IFMT: c_short = 0o16_0000; +pub const S_IFIFO: c_short = 0o1_0000; +pub const S_IFBLK: c_short = 0o6_0000; +pub const S_IFREG: c_short = 0o10_0000; pub const LC_ALL: c_int = 0; pub const LC_COLLATE: c_int = 1; diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index c072ae55e5836..10e2974aa648e 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -1617,29 +1617,29 @@ pub const MADV_WILLNEED: ::c_int = 3; pub const MADV_DONTNEED: ::c_int = 4; // sys/mode.h -pub const S_IFMT: mode_t = 0o170000; -pub const S_IFREG: mode_t = 0o100000; -pub const S_IFDIR: mode_t = 0o40000; -pub const S_IFBLK: mode_t = 0o60000; -pub const S_IFCHR: mode_t = 0o20000; -pub const S_IFIFO: mode_t = 0o10000; -pub const S_IRWXU: mode_t = 0o700; -pub const S_IRUSR: mode_t = 0o400; -pub const S_IWUSR: mode_t = 0o200; -pub const S_IXUSR: mode_t = 0o100; -pub const S_IRWXG: mode_t = 0o70; -pub const S_IRGRP: mode_t = 0o40; -pub const S_IWGRP: mode_t = 0o20; -pub const S_IXGRP: mode_t = 0o10; -pub const S_IRWXO: mode_t = 7; -pub const S_IROTH: mode_t = 4; -pub const S_IWOTH: mode_t = 2; -pub const S_IXOTH: mode_t = 1; -pub const S_IFLNK: mode_t = 0o120000; -pub const S_IFSOCK: mode_t = 0o140000; -pub const S_IEXEC: mode_t = 0o100; -pub const S_IWRITE: mode_t = 0o200; -pub const S_IREAD: mode_t = 0o400; +pub const S_IFMT: mode_t = 0o17_0000; +pub const S_IFREG: mode_t = 0o10_0000; +pub const S_IFDIR: mode_t = 0o4_0000; +pub const S_IFBLK: mode_t = 0o6_0000; +pub const S_IFCHR: mode_t = 0o2_0000; +pub const S_IFIFO: mode_t = 0o1_0000; +pub const S_IRWXU: mode_t = 0o0700; +pub const S_IRUSR: mode_t = 0o0400; +pub const S_IWUSR: mode_t = 0o0200; +pub const S_IXUSR: mode_t = 0o0100; +pub const S_IRWXG: mode_t = 0o0070; +pub const S_IRGRP: mode_t = 0o0040; +pub const S_IWGRP: mode_t = 0o0020; +pub const S_IXGRP: mode_t = 0o0010; +pub const S_IRWXO: mode_t = 0o0007; +pub const S_IROTH: mode_t = 0o0004; +pub const S_IWOTH: mode_t = 0o0002; +pub const S_IXOTH: mode_t = 0o0001; +pub const S_IFLNK: mode_t = 0o12_0000; +pub const S_IFSOCK: mode_t = 0o14_0000; +pub const S_IEXEC: mode_t = 0o0100; +pub const S_IWRITE: mode_t = 0o0200; +pub const S_IREAD: mode_t = 0o0400; // sys/msg.h pub const MSG_NOERROR: ::c_int = 0o10000; diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 8f882f9b6954d..6769b700bc4fd 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -3272,29 +3272,29 @@ pub const O_CLOEXEC: ::c_int = 0x01000000; pub const O_NOFOLLOW_ANY: ::c_int = 0x20000000; pub const O_EXEC: ::c_int = 0x40000000; pub const O_SEARCH: ::c_int = O_EXEC | O_DIRECTORY; -pub const S_IFIFO: mode_t = 4096; -pub const S_IFCHR: mode_t = 8192; -pub const S_IFBLK: mode_t = 24576; -pub const S_IFDIR: mode_t = 16384; -pub const S_IFREG: mode_t = 32768; -pub const S_IFLNK: mode_t = 40960; -pub const S_IFSOCK: mode_t = 49152; -pub const S_IFMT: mode_t = 61440; -pub const S_IEXEC: mode_t = 64; -pub const S_IWRITE: mode_t = 128; -pub const S_IREAD: mode_t = 256; -pub const S_IRWXU: mode_t = 448; -pub const S_IXUSR: mode_t = 64; -pub const S_IWUSR: mode_t = 128; -pub const S_IRUSR: mode_t = 256; -pub const S_IRWXG: mode_t = 56; -pub const S_IXGRP: mode_t = 8; -pub const S_IWGRP: mode_t = 16; -pub const S_IRGRP: mode_t = 32; -pub const S_IRWXO: mode_t = 7; -pub const S_IXOTH: mode_t = 1; -pub const S_IWOTH: mode_t = 2; -pub const S_IROTH: mode_t = 4; +pub const S_IFIFO: mode_t = 0o1_0000; +pub const S_IFCHR: mode_t = 0o2_0000; +pub const S_IFBLK: mode_t = 0o6_0000; +pub const S_IFDIR: mode_t = 0o4_0000; +pub const S_IFREG: mode_t = 0o10_0000; +pub const S_IFLNK: mode_t = 0o12_0000; +pub const S_IFSOCK: mode_t = 0o14_0000; +pub const S_IFMT: mode_t = 0o17_0000; +pub const S_IEXEC: mode_t = 0o0100; +pub const S_IWRITE: mode_t = 0o0200; +pub const S_IREAD: mode_t = 0o0400; +pub const S_IRWXU: mode_t = 0o0700; +pub const S_IXUSR: mode_t = 0o0100; +pub const S_IWUSR: mode_t = 0o0200; +pub const S_IRUSR: mode_t = 0o0400; +pub const S_IRWXG: mode_t = 0o0070; +pub const S_IXGRP: mode_t = 0o0010; +pub const S_IWGRP: mode_t = 0o0020; +pub const S_IRGRP: mode_t = 0o0040; +pub const S_IRWXO: mode_t = 0o0007; +pub const S_IXOTH: mode_t = 0o0001; +pub const S_IWOTH: mode_t = 0o0002; +pub const S_IROTH: mode_t = 0o0004; pub const F_OK: ::c_int = 0; pub const R_OK: ::c_int = 4; pub const W_OK: ::c_int = 2; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 86ade55353560..6ef1a59429207 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -563,29 +563,29 @@ pub const TMP_MAX: ::c_uint = 308915776; pub const O_NOCTTY: ::c_int = 32768; pub const O_DIRECT: ::c_int = 0x00010000; -pub const S_IFIFO: mode_t = 4096; -pub const S_IFCHR: mode_t = 8192; -pub const S_IFBLK: mode_t = 24576; -pub const S_IFDIR: mode_t = 16384; -pub const S_IFREG: mode_t = 32768; -pub const S_IFLNK: mode_t = 40960; -pub const S_IFSOCK: mode_t = 49152; -pub const S_IFMT: mode_t = 61440; -pub const S_IEXEC: mode_t = 64; -pub const S_IWRITE: mode_t = 128; -pub const S_IREAD: mode_t = 256; -pub const S_IRWXU: mode_t = 448; -pub const S_IXUSR: mode_t = 64; -pub const S_IWUSR: mode_t = 128; -pub const S_IRUSR: mode_t = 256; -pub const S_IRWXG: mode_t = 56; -pub const S_IXGRP: mode_t = 8; -pub const S_IWGRP: mode_t = 16; -pub const S_IRGRP: mode_t = 32; -pub const S_IRWXO: mode_t = 7; -pub const S_IXOTH: mode_t = 1; -pub const S_IWOTH: mode_t = 2; -pub const S_IROTH: mode_t = 4; +pub const S_IFIFO: mode_t = 0o1_0000; +pub const S_IFCHR: mode_t = 0o2_0000; +pub const S_IFBLK: mode_t = 0o6_0000; +pub const S_IFDIR: mode_t = 0o4_0000; +pub const S_IFREG: mode_t = 0o10_0000; +pub const S_IFLNK: mode_t = 0o12_0000; +pub const S_IFSOCK: mode_t = 0o14_0000; +pub const S_IFMT: mode_t = 0o17_0000; +pub const S_IEXEC: mode_t = 0o0100; +pub const S_IWRITE: mode_t = 0o0200; +pub const S_IREAD: mode_t = 0o0400; +pub const S_IRWXU: mode_t = 0o0700; +pub const S_IXUSR: mode_t = 0o0100; +pub const S_IWUSR: mode_t = 0o0200; +pub const S_IRUSR: mode_t = 0o0400; +pub const S_IRWXG: mode_t = 0o0070; +pub const S_IXGRP: mode_t = 0o0010; +pub const S_IWGRP: mode_t = 0o0020; +pub const S_IRGRP: mode_t = 0o0040; +pub const S_IRWXO: mode_t = 0o0007; +pub const S_IXOTH: mode_t = 0o0001; +pub const S_IWOTH: mode_t = 0o0002; +pub const S_IROTH: mode_t = 0o0004; pub const F_OK: ::c_int = 0; pub const R_OK: ::c_int = 4; pub const W_OK: ::c_int = 2; diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index dcd3582fd7bf8..2c0c8d540fed5 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -173,29 +173,29 @@ pub const FOPEN_MAX: ::c_uint = 20; pub const FILENAME_MAX: ::c_uint = 1024; pub const L_tmpnam: ::c_uint = 1024; pub const O_NOCTTY: ::c_int = 32768; -pub const S_IFIFO: mode_t = 4096; -pub const S_IFCHR: mode_t = 8192; -pub const S_IFBLK: mode_t = 24576; -pub const S_IFDIR: mode_t = 16384; -pub const S_IFREG: mode_t = 32768; -pub const S_IFLNK: mode_t = 40960; -pub const S_IFSOCK: mode_t = 49152; -pub const S_IFMT: mode_t = 61440; -pub const S_IEXEC: mode_t = 64; -pub const S_IWRITE: mode_t = 128; -pub const S_IREAD: mode_t = 256; -pub const S_IRWXU: mode_t = 448; -pub const S_IXUSR: mode_t = 64; -pub const S_IWUSR: mode_t = 128; -pub const S_IRUSR: mode_t = 256; -pub const S_IRWXG: mode_t = 56; -pub const S_IXGRP: mode_t = 8; -pub const S_IWGRP: mode_t = 16; -pub const S_IRGRP: mode_t = 32; -pub const S_IRWXO: mode_t = 7; -pub const S_IXOTH: mode_t = 1; -pub const S_IWOTH: mode_t = 2; -pub const S_IROTH: mode_t = 4; +pub const S_IFIFO: mode_t = 0o1_0000; +pub const S_IFCHR: mode_t = 0o2_0000; +pub const S_IFBLK: mode_t = 0o6_0000; +pub const S_IFDIR: mode_t = 0o4_0000; +pub const S_IFREG: mode_t = 0o10_0000; +pub const S_IFLNK: mode_t = 0o12_0000; +pub const S_IFSOCK: mode_t = 0o14_0000; +pub const S_IFMT: mode_t = 0o17_0000; +pub const S_IEXEC: mode_t = 0o0100; +pub const S_IWRITE: mode_t = 0o0200; +pub const S_IREAD: mode_t = 0o0400; +pub const S_IRWXU: mode_t = 0o0700; +pub const S_IXUSR: mode_t = 0o0100; +pub const S_IWUSR: mode_t = 0o0200; +pub const S_IRUSR: mode_t = 0o0400; +pub const S_IRWXG: mode_t = 0o0070; +pub const S_IXGRP: mode_t = 0o0010; +pub const S_IWGRP: mode_t = 0o0020; +pub const S_IRGRP: mode_t = 0o0040; +pub const S_IRWXO: mode_t = 0o0007; +pub const S_IXOTH: mode_t = 0o0001; +pub const S_IWOTH: mode_t = 0o0002; +pub const S_IROTH: mode_t = 0o0004; pub const F_OK: ::c_int = 0; pub const R_OK: ::c_int = 4; pub const W_OK: ::c_int = 2; diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 31f9f69d5b168..6f76ab26befd6 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -771,27 +771,27 @@ pub const O_NOFOLLOW: ::c_int = 0x00080000; pub const O_NOCACHE: ::c_int = 0x00100000; pub const O_DIRECTORY: ::c_int = 0x00200000; -pub const S_IFIFO: ::mode_t = 4096; -pub const S_IFCHR: ::mode_t = 8192; -pub const S_IFBLK: ::mode_t = 24576; -pub const S_IFDIR: ::mode_t = 16384; -pub const S_IFREG: ::mode_t = 32768; -pub const S_IFLNK: ::mode_t = 40960; -pub const S_IFSOCK: ::mode_t = 49152; -pub const S_IFMT: ::mode_t = 61440; - -pub const S_IRWXU: ::mode_t = 0o00700; -pub const S_IRUSR: ::mode_t = 0o00400; -pub const S_IWUSR: ::mode_t = 0o00200; -pub const S_IXUSR: ::mode_t = 0o00100; -pub const S_IRWXG: ::mode_t = 0o00070; -pub const S_IRGRP: ::mode_t = 0o00040; -pub const S_IWGRP: ::mode_t = 0o00020; -pub const S_IXGRP: ::mode_t = 0o00010; -pub const S_IRWXO: ::mode_t = 0o00007; -pub const S_IROTH: ::mode_t = 0o00004; -pub const S_IWOTH: ::mode_t = 0o00002; -pub const S_IXOTH: ::mode_t = 0o00001; +pub const S_IFIFO: ::mode_t = 0o1_0000; +pub const S_IFCHR: ::mode_t = 0o2_0000; +pub const S_IFBLK: ::mode_t = 0o6_0000; +pub const S_IFDIR: ::mode_t = 0o4_0000; +pub const S_IFREG: ::mode_t = 0o10_0000; +pub const S_IFLNK: ::mode_t = 0o12_0000; +pub const S_IFSOCK: ::mode_t = 0o14_0000; +pub const S_IFMT: ::mode_t = 0o17_0000; + +pub const S_IRWXU: ::mode_t = 0o0700; +pub const S_IRUSR: ::mode_t = 0o0400; +pub const S_IWUSR: ::mode_t = 0o0200; +pub const S_IXUSR: ::mode_t = 0o0100; +pub const S_IRWXG: ::mode_t = 0o0070; +pub const S_IRGRP: ::mode_t = 0o0040; +pub const S_IWGRP: ::mode_t = 0o0020; +pub const S_IXGRP: ::mode_t = 0o0010; +pub const S_IRWXO: ::mode_t = 0o0007; +pub const S_IROTH: ::mode_t = 0o0004; +pub const S_IWOTH: ::mode_t = 0o0002; +pub const S_IXOTH: ::mode_t = 0o0001; pub const F_OK: ::c_int = 0; pub const R_OK: ::c_int = 4; diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index ec22469a31693..97c15fe6603a3 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -2121,29 +2121,29 @@ pub const MINSIGSTKSZ: usize = 8192; pub const SIGSTKSZ: usize = 40960; // sys/stat.h -pub const __S_IFMT: mode_t = 61440; -pub const __S_IFDIR: mode_t = 16384; -pub const __S_IFCHR: mode_t = 8192; -pub const __S_IFBLK: mode_t = 24576; -pub const __S_IFREG: mode_t = 32768; -pub const __S_IFLNK: mode_t = 40960; -pub const __S_IFSOCK: mode_t = 49152; -pub const __S_IFIFO: mode_t = 4096; -pub const __S_ISUID: mode_t = 2048; -pub const __S_ISGID: mode_t = 1024; -pub const __S_ISVTX: mode_t = 512; -pub const __S_IREAD: mode_t = 256; -pub const __S_IWRITE: mode_t = 128; -pub const __S_IEXEC: mode_t = 64; -pub const S_INOCACHE: mode_t = 65536; -pub const S_IUSEUNK: mode_t = 131072; -pub const S_IUNKNOWN: mode_t = 1835008; -pub const S_IUNKSHIFT: mode_t = 12; -pub const S_IPTRANS: mode_t = 2097152; -pub const S_IATRANS: mode_t = 4194304; -pub const S_IROOT: mode_t = 8388608; -pub const S_ITRANS: mode_t = 14680064; -pub const S_IMMAP0: mode_t = 16777216; +pub const __S_IFMT: mode_t = 0o17_0000; +pub const __S_IFDIR: mode_t = 0o4_0000; +pub const __S_IFCHR: mode_t = 0o2_0000; +pub const __S_IFBLK: mode_t = 0o6_0000; +pub const __S_IFREG: mode_t = 0o10_0000; +pub const __S_IFLNK: mode_t = 0o12_0000; +pub const __S_IFSOCK: mode_t = 0o14_0000; +pub const __S_IFIFO: mode_t = 0o1_0000; +pub const __S_ISUID: mode_t = 0o4000; +pub const __S_ISGID: mode_t = 0o2000; +pub const __S_ISVTX: mode_t = 0o1000; +pub const __S_IREAD: mode_t = 0o0400; +pub const __S_IWRITE: mode_t = 0o0200; +pub const __S_IEXEC: mode_t = 0o0100; +pub const S_INOCACHE: mode_t = 0o20_0000; +pub const S_IUSEUNK: mode_t = 0o40_0000; +pub const S_IUNKNOWN: mode_t = 0o700_0000; +pub const S_IUNKSHIFT: mode_t = 0o0014; +pub const S_IPTRANS: mode_t = 0o1000_0000; +pub const S_IATRANS: mode_t = 0o2000_0000; +pub const S_IROOT: mode_t = 0o4000_0000; +pub const S_ITRANS: mode_t = 0o7000_0000; +pub const S_IMMAP0: mode_t = 0o10000_0000; pub const CMASK: mode_t = 18; pub const UF_SETTABLE: ::c_uint = 65535; pub const UF_NODUMP: ::c_uint = 1; @@ -2159,32 +2159,32 @@ pub const SF_NOUNLINK: ::c_uint = 1048576; pub const SF_SNAPSHOT: ::c_uint = 2097152; pub const UTIME_NOW: ::c_long = -1; pub const UTIME_OMIT: ::c_long = -2; -pub const S_IFMT: ::mode_t = 61440; -pub const S_IFDIR: ::mode_t = 16384; -pub const S_IFCHR: ::mode_t = 8192; -pub const S_IFBLK: ::mode_t = 24576; -pub const S_IFREG: ::mode_t = 32768; -pub const S_IFIFO: ::mode_t = 4096; -pub const S_IFLNK: ::mode_t = 40960; -pub const S_IFSOCK: ::mode_t = 49152; -pub const S_ISUID: ::mode_t = 2048; -pub const S_ISGID: ::mode_t = 1024; -pub const S_ISVTX: ::mode_t = 512; -pub const S_IRUSR: ::mode_t = 256; -pub const S_IWUSR: ::mode_t = 128; -pub const S_IXUSR: ::mode_t = 64; -pub const S_IRWXU: ::mode_t = 448; -pub const S_IREAD: ::mode_t = 256; -pub const S_IWRITE: ::mode_t = 128; -pub const S_IEXEC: ::mode_t = 64; -pub const S_IRGRP: ::mode_t = 32; -pub const S_IWGRP: ::mode_t = 16; -pub const S_IXGRP: ::mode_t = 8; -pub const S_IRWXG: ::mode_t = 56; -pub const S_IROTH: ::mode_t = 4; -pub const S_IWOTH: ::mode_t = 2; -pub const S_IXOTH: ::mode_t = 1; -pub const S_IRWXO: ::mode_t = 7; +pub const S_IFMT: ::mode_t = 0o17_0000; +pub const S_IFDIR: ::mode_t = 0o4_0000; +pub const S_IFCHR: ::mode_t = 0o2_0000; +pub const S_IFBLK: ::mode_t = 0o6_0000; +pub const S_IFREG: ::mode_t = 0o10_0000; +pub const S_IFIFO: ::mode_t = 0o1_0000; +pub const S_IFLNK: ::mode_t = 0o12_0000; +pub const S_IFSOCK: ::mode_t = 0o14_0000; +pub const S_ISUID: ::mode_t = 0o4000; +pub const S_ISGID: ::mode_t = 0o2000; +pub const S_ISVTX: ::mode_t = 0o1000; +pub const S_IRUSR: ::mode_t = 0o0400; +pub const S_IWUSR: ::mode_t = 0o0200; +pub const S_IXUSR: ::mode_t = 0o0100; +pub const S_IRWXU: ::mode_t = 0o0700; +pub const S_IREAD: ::mode_t = 0o0400; +pub const S_IWRITE: ::mode_t = 0o0200; +pub const S_IEXEC: ::mode_t = 0o0100; +pub const S_IRGRP: ::mode_t = 0o0040; +pub const S_IWGRP: ::mode_t = 0o0020; +pub const S_IXGRP: ::mode_t = 0o0010; +pub const S_IRWXG: ::mode_t = 0o0070; +pub const S_IROTH: ::mode_t = 0o0004; +pub const S_IWOTH: ::mode_t = 0o0002; +pub const S_IXOTH: ::mode_t = 0o0001; +pub const S_IRWXO: ::mode_t = 0o0007; pub const ACCESSPERMS: ::mode_t = 511; pub const ALLPERMS: ::mode_t = 4095; pub const DEFFILEMODE: ::mode_t = 438; diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 2f515f390d8e2..393244d9996f2 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -777,9 +777,9 @@ pub const POSIX_MADV_WILLNEED: ::c_int = 3; pub const AT_EACCESS: ::c_int = 0x200; -pub const S_IEXEC: mode_t = 64; -pub const S_IWRITE: mode_t = 128; -pub const S_IREAD: mode_t = 256; +pub const S_IEXEC: mode_t = 0o0100; +pub const S_IWRITE: mode_t = 0o0200; +pub const S_IREAD: mode_t = 0o0400; pub const F_LOCK: ::c_int = 1; pub const F_TEST: ::c_int = 3; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index f26af4c1fe16f..40d0cf0ab974f 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2040,9 +2040,9 @@ pub const POSIX_MADV_WILLNEED: ::c_int = 3; pub const POSIX_SPAWN_USEVFORK: ::c_int = 64; pub const POSIX_SPAWN_SETSID: ::c_int = 128; -pub const S_IEXEC: mode_t = 64; -pub const S_IWRITE: mode_t = 128; -pub const S_IREAD: mode_t = 256; +pub const S_IEXEC: mode_t = 0o0100; +pub const S_IWRITE: mode_t = 0o0200; +pub const S_IREAD: mode_t = 0o0400; pub const F_LOCK: ::c_int = 1; pub const F_TEST: ::c_int = 3; diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 749c8a16d0148..618980e53dd27 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -505,26 +505,26 @@ pub const O_RDWR: ::c_int = 2; pub const SOCK_CLOEXEC: ::c_int = O_CLOEXEC; -pub const S_IFIFO: ::mode_t = 4096; -pub const S_IFCHR: ::mode_t = 8192; -pub const S_IFBLK: ::mode_t = 24576; -pub const S_IFDIR: ::mode_t = 16384; -pub const S_IFREG: ::mode_t = 32768; -pub const S_IFLNK: ::mode_t = 40960; -pub const S_IFSOCK: ::mode_t = 49152; -pub const S_IFMT: ::mode_t = 61440; -pub const S_IRWXU: ::mode_t = 448; -pub const S_IXUSR: ::mode_t = 64; -pub const S_IWUSR: ::mode_t = 128; -pub const S_IRUSR: ::mode_t = 256; -pub const S_IRWXG: ::mode_t = 56; -pub const S_IXGRP: ::mode_t = 8; -pub const S_IWGRP: ::mode_t = 16; -pub const S_IRGRP: ::mode_t = 32; -pub const S_IRWXO: ::mode_t = 7; -pub const S_IXOTH: ::mode_t = 1; -pub const S_IWOTH: ::mode_t = 2; -pub const S_IROTH: ::mode_t = 4; +pub const S_IFIFO: ::mode_t = 0o1_0000; +pub const S_IFCHR: ::mode_t = 0o2_0000; +pub const S_IFBLK: ::mode_t = 0o6_0000; +pub const S_IFDIR: ::mode_t = 0o4_0000; +pub const S_IFREG: ::mode_t = 0o10_0000; +pub const S_IFLNK: ::mode_t = 0o12_0000; +pub const S_IFSOCK: ::mode_t = 0o14_0000; +pub const S_IFMT: ::mode_t = 0o17_0000; +pub const S_IRWXU: ::mode_t = 0o0700; +pub const S_IXUSR: ::mode_t = 0o0100; +pub const S_IWUSR: ::mode_t = 0o0200; +pub const S_IRUSR: ::mode_t = 0o0400; +pub const S_IRWXG: ::mode_t = 0o0070; +pub const S_IXGRP: ::mode_t = 0o0010; +pub const S_IWGRP: ::mode_t = 0o0020; +pub const S_IRGRP: ::mode_t = 0o0040; +pub const S_IRWXO: ::mode_t = 0o0007; +pub const S_IXOTH: ::mode_t = 0o0001; +pub const S_IWOTH: ::mode_t = 0o0002; +pub const S_IROTH: ::mode_t = 0o0004; pub const F_OK: ::c_int = 0; pub const R_OK: ::c_int = 4; pub const W_OK: ::c_int = 2; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 12e20a46ff1c4..318db742bb951 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -235,9 +235,9 @@ cfg_if! { } pub const SIGIOT: ::c_int = 6; -pub const S_ISUID: ::mode_t = 0x800; -pub const S_ISGID: ::mode_t = 0x400; -pub const S_ISVTX: ::mode_t = 0x200; +pub const S_ISUID: ::mode_t = 0o4000; +pub const S_ISGID: ::mode_t = 0o2000; +pub const S_ISVTX: ::mode_t = 0o1000; cfg_if! { if #[cfg(not(any(target_os = "haiku", target_os = "illumos", diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index 9aee0e4ea0c3f..37cfb8ed3afb2 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -479,27 +479,27 @@ pub const FIOCLEX: ::c_ulong = 0x20006601; pub const FIONCLEX: ::c_ulong = 0x20006602; pub const S_BLKSIZE: ::mode_t = 1024; -pub const S_IREAD: ::mode_t = 256; -pub const S_IWRITE: ::mode_t = 128; -pub const S_IEXEC: ::mode_t = 64; -pub const S_ENFMT: ::mode_t = 1024; -pub const S_IFMT: ::mode_t = 61440; -pub const S_IFDIR: ::mode_t = 16384; -pub const S_IFCHR: ::mode_t = 8192; -pub const S_IFBLK: ::mode_t = 24576; -pub const S_IFREG: ::mode_t = 32768; -pub const S_IFLNK: ::mode_t = 40960; -pub const S_IFSOCK: ::mode_t = 49152; -pub const S_IFIFO: ::mode_t = 4096; -pub const S_IRUSR: ::mode_t = 256; -pub const S_IWUSR: ::mode_t = 128; -pub const S_IXUSR: ::mode_t = 64; -pub const S_IRGRP: ::mode_t = 32; -pub const S_IWGRP: ::mode_t = 16; -pub const S_IXGRP: ::mode_t = 8; -pub const S_IROTH: ::mode_t = 4; -pub const S_IWOTH: ::mode_t = 2; -pub const S_IXOTH: ::mode_t = 1; +pub const S_IREAD: ::mode_t = 0o0400; +pub const S_IWRITE: ::mode_t = 0o0200; +pub const S_IEXEC: ::mode_t = 0o0100; +pub const S_ENFMT: ::mode_t = 0o2000; +pub const S_IFMT: ::mode_t = 0o17_0000; +pub const S_IFDIR: ::mode_t = 0o4_0000; +pub const S_IFCHR: ::mode_t = 0o2_0000; +pub const S_IFBLK: ::mode_t = 0o6_0000; +pub const S_IFREG: ::mode_t = 0o10_0000; +pub const S_IFLNK: ::mode_t = 0o12_0000; +pub const S_IFSOCK: ::mode_t = 0o14_0000; +pub const S_IFIFO: ::mode_t = 0o1_0000; +pub const S_IRUSR: ::mode_t = 0o0400; +pub const S_IWUSR: ::mode_t = 0o0200; +pub const S_IXUSR: ::mode_t = 0o0100; +pub const S_IRGRP: ::mode_t = 0o0040; +pub const S_IWGRP: ::mode_t = 0o0020; +pub const S_IXGRP: ::mode_t = 0o0010; +pub const S_IROTH: ::mode_t = 0o0004; +pub const S_IWOTH: ::mode_t = 0o0002; +pub const S_IXOTH: ::mode_t = 0o0001; pub const SOL_TCP: ::c_int = 6; diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 001b51a7da678..eff3f8003bb45 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -2037,27 +2037,27 @@ pub const S_IEXEC: mode_t = ::S_IXUSR; pub const S_IWRITE: mode_t = ::S_IWUSR; pub const S_IREAD: mode_t = ::S_IRUSR; -pub const S_IFIFO: ::mode_t = 0x1000; -pub const S_IFCHR: ::mode_t = 0x2000; -pub const S_IFDIR: ::mode_t = 0x4000; -pub const S_IFBLK: ::mode_t = 0x6000; -pub const S_IFREG: ::mode_t = 0x8000; -pub const S_IFLNK: ::mode_t = 0xA000; -pub const S_IFSOCK: ::mode_t = 0xC000; -pub const S_IFMT: ::mode_t = 0xF000; - -pub const S_IXOTH: ::mode_t = 0o000001; -pub const S_IWOTH: ::mode_t = 0o000002; -pub const S_IROTH: ::mode_t = 0o000004; -pub const S_IRWXO: ::mode_t = 0o000007; -pub const S_IXGRP: ::mode_t = 0o000010; -pub const S_IWGRP: ::mode_t = 0o000020; -pub const S_IRGRP: ::mode_t = 0o000040; -pub const S_IRWXG: ::mode_t = 0o000070; -pub const S_IXUSR: ::mode_t = 0o000100; -pub const S_IWUSR: ::mode_t = 0o000200; -pub const S_IRUSR: ::mode_t = 0o000400; -pub const S_IRWXU: ::mode_t = 0o000700; +pub const S_IFIFO: ::mode_t = 0o1_0000; +pub const S_IFCHR: ::mode_t = 0o2_0000; +pub const S_IFDIR: ::mode_t = 0o4_0000; +pub const S_IFBLK: ::mode_t = 0o6_0000; +pub const S_IFREG: ::mode_t = 0o10_0000; +pub const S_IFLNK: ::mode_t = 0o12_0000; +pub const S_IFSOCK: ::mode_t = 0o14_0000; +pub const S_IFMT: ::mode_t = 0o17_0000; + +pub const S_IXOTH: ::mode_t = 0o0001; +pub const S_IWOTH: ::mode_t = 0o0002; +pub const S_IROTH: ::mode_t = 0o0004; +pub const S_IRWXO: ::mode_t = 0o0007; +pub const S_IXGRP: ::mode_t = 0o0010; +pub const S_IWGRP: ::mode_t = 0o0020; +pub const S_IRGRP: ::mode_t = 0o0040; +pub const S_IRWXG: ::mode_t = 0o0070; +pub const S_IXUSR: ::mode_t = 0o0100; +pub const S_IWUSR: ::mode_t = 0o0200; +pub const S_IRUSR: ::mode_t = 0o0400; +pub const S_IRWXU: ::mode_t = 0o0700; pub const F_LOCK: ::c_int = 1; pub const F_TEST: ::c_int = 3; diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index ac092a372b576..39e7346b0cc33 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -695,26 +695,26 @@ pub const EPOLLONESHOT: ::c_int = 1 << 30; pub const EPOLLET: ::c_int = 1 << 31; // sys/stat.h -pub const S_IFMT: ::c_int = 0o0_170_000; -pub const S_IFDIR: ::c_int = 0o040_000; -pub const S_IFCHR: ::c_int = 0o020_000; -pub const S_IFBLK: ::c_int = 0o060_000; -pub const S_IFREG: ::c_int = 0o100_000; -pub const S_IFIFO: ::c_int = 0o010_000; -pub const S_IFLNK: ::c_int = 0o120_000; -pub const S_IFSOCK: ::c_int = 0o140_000; -pub const S_IRWXU: ::c_int = 0o0_700; -pub const S_IRUSR: ::c_int = 0o0_400; -pub const S_IWUSR: ::c_int = 0o0_200; -pub const S_IXUSR: ::c_int = 0o0_100; -pub const S_IRWXG: ::c_int = 0o0_070; -pub const S_IRGRP: ::c_int = 0o0_040; -pub const S_IWGRP: ::c_int = 0o0_020; -pub const S_IXGRP: ::c_int = 0o0_010; -pub const S_IRWXO: ::c_int = 0o0_007; -pub const S_IROTH: ::c_int = 0o0_004; -pub const S_IWOTH: ::c_int = 0o0_002; -pub const S_IXOTH: ::c_int = 0o0_001; +pub const S_IFMT: ::c_int = 0o17_0000; +pub const S_IFDIR: ::c_int = 0o4_0000; +pub const S_IFCHR: ::c_int = 0o2_0000; +pub const S_IFBLK: ::c_int = 0o6_0000; +pub const S_IFREG: ::c_int = 0o10_0000; +pub const S_IFIFO: ::c_int = 0o1_0000; +pub const S_IFLNK: ::c_int = 0o12_0000; +pub const S_IFSOCK: ::c_int = 0o14_0000; +pub const S_IRWXU: ::c_int = 0o0700; +pub const S_IRUSR: ::c_int = 0o0400; +pub const S_IWUSR: ::c_int = 0o0200; +pub const S_IXUSR: ::c_int = 0o0100; +pub const S_IRWXG: ::c_int = 0o0070; +pub const S_IRGRP: ::c_int = 0o0040; +pub const S_IWGRP: ::c_int = 0o0020; +pub const S_IXGRP: ::c_int = 0o0010; +pub const S_IRWXO: ::c_int = 0o0007; +pub const S_IROTH: ::c_int = 0o0004; +pub const S_IWOTH: ::c_int = 0o0002; +pub const S_IXOTH: ::c_int = 0o0001; // stdlib.h pub const EXIT_SUCCESS: ::c_int = 0; diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 1cc6c429bc2d1..7aa6d5fda953a 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1320,29 +1320,29 @@ pub const O_ACCMODE: ::c_int = 0x600003; pub const O_XATTR: ::c_int = 0x4000; pub const O_DIRECTORY: ::c_int = 0x1000000; pub const O_DIRECT: ::c_int = 0x2000000; -pub const S_IFIFO: mode_t = 4096; -pub const S_IFCHR: mode_t = 8192; -pub const S_IFBLK: mode_t = 24576; -pub const S_IFDIR: mode_t = 16384; -pub const S_IFREG: mode_t = 32768; -pub const S_IFLNK: mode_t = 40960; -pub const S_IFSOCK: mode_t = 49152; -pub const S_IFMT: mode_t = 61440; -pub const S_IEXEC: mode_t = 64; -pub const S_IWRITE: mode_t = 128; -pub const S_IREAD: mode_t = 256; -pub const S_IRWXU: mode_t = 448; -pub const S_IXUSR: mode_t = 64; -pub const S_IWUSR: mode_t = 128; -pub const S_IRUSR: mode_t = 256; -pub const S_IRWXG: mode_t = 56; -pub const S_IXGRP: mode_t = 8; -pub const S_IWGRP: mode_t = 16; -pub const S_IRGRP: mode_t = 32; -pub const S_IRWXO: mode_t = 7; -pub const S_IXOTH: mode_t = 1; -pub const S_IWOTH: mode_t = 2; -pub const S_IROTH: mode_t = 4; +pub const S_IFIFO: mode_t = 0o1_0000; +pub const S_IFCHR: mode_t = 0o2_0000; +pub const S_IFBLK: mode_t = 0o6_0000; +pub const S_IFDIR: mode_t = 0o4_0000; +pub const S_IFREG: mode_t = 0o10_0000; +pub const S_IFLNK: mode_t = 0o12_0000; +pub const S_IFSOCK: mode_t = 0o14_0000; +pub const S_IFMT: mode_t = 0o17_0000; +pub const S_IEXEC: mode_t = 0o0100; +pub const S_IWRITE: mode_t = 0o0200; +pub const S_IREAD: mode_t = 0o0400; +pub const S_IRWXU: mode_t = 0o0700; +pub const S_IXUSR: mode_t = 0o0100; +pub const S_IWUSR: mode_t = 0o0200; +pub const S_IRUSR: mode_t = 0o0400; +pub const S_IRWXG: mode_t = 0o0070; +pub const S_IXGRP: mode_t = 0o0010; +pub const S_IWGRP: mode_t = 0o0020; +pub const S_IRGRP: mode_t = 0o0040; +pub const S_IRWXO: mode_t = 0o0007; +pub const S_IXOTH: mode_t = 0o0001; +pub const S_IWOTH: mode_t = 0o0002; +pub const S_IROTH: mode_t = 0o0004; pub const F_OK: ::c_int = 0; pub const R_OK: ::c_int = 4; pub const W_OK: ::c_int = 2; diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index f7adb5d682e5e..daf3b013b48b3 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -783,31 +783,31 @@ pub const IPV6_ADD_MEMBERSHIP: ::c_int = 12; pub const IPV6_DROP_MEMBERSHIP: ::c_int = 13; // STAT Stuff -pub const S_IFMT: ::c_int = 0xf000; -pub const S_IFIFO: ::c_int = 0x1000; -pub const S_IFCHR: ::c_int = 0x2000; -pub const S_IFDIR: ::c_int = 0x4000; -pub const S_IFBLK: ::c_int = 0x6000; -pub const S_IFREG: ::c_int = 0x8000; -pub const S_IFLNK: ::c_int = 0xa000; -pub const S_IFSHM: ::c_int = 0xb000; -pub const S_IFSOCK: ::c_int = 0xc000; -pub const S_ISUID: ::c_int = 0x0800; -pub const S_ISGID: ::c_int = 0x0400; -pub const S_ISTXT: ::c_int = 0x0200; +pub const S_IFMT: ::c_int = 0o17_0000; +pub const S_IFIFO: ::c_int = 0o1_0000; +pub const S_IFCHR: ::c_int = 0o2_0000; +pub const S_IFDIR: ::c_int = 0o4_0000; +pub const S_IFBLK: ::c_int = 0o6_0000; +pub const S_IFREG: ::c_int = 0o10_0000; +pub const S_IFLNK: ::c_int = 0o12_0000; +pub const S_IFSHM: ::c_int = 0o13_0000; +pub const S_IFSOCK: ::c_int = 0o14_0000; +pub const S_ISUID: ::c_int = 0o4000; +pub const S_ISGID: ::c_int = 0o2000; +pub const S_ISTXT: ::c_int = 0o1000; pub const S_ISVTX: ::c_int = 0o1000; -pub const S_IRUSR: ::c_int = 0x0100; -pub const S_IWUSR: ::c_int = 0x0080; -pub const S_IXUSR: ::c_int = 0x0040; -pub const S_IRWXU: ::c_int = 0x01c0; -pub const S_IRGRP: ::c_int = 0x0020; -pub const S_IWGRP: ::c_int = 0x0010; -pub const S_IXGRP: ::c_int = 0x0008; -pub const S_IRWXG: ::c_int = 0x0038; -pub const S_IROTH: ::c_int = 0x0004; -pub const S_IWOTH: ::c_int = 0x0002; -pub const S_IXOTH: ::c_int = 0x0001; -pub const S_IRWXO: ::c_int = 0x0007; +pub const S_IRUSR: ::c_int = 0o0400; +pub const S_IWUSR: ::c_int = 0o0200; +pub const S_IXUSR: ::c_int = 0o0100; +pub const S_IRWXU: ::c_int = 0o0700; +pub const S_IRGRP: ::c_int = 0o0040; +pub const S_IWGRP: ::c_int = 0o0020; +pub const S_IXGRP: ::c_int = 0o0010; +pub const S_IRWXG: ::c_int = 0o0070; +pub const S_IROTH: ::c_int = 0o0004; +pub const S_IWOTH: ::c_int = 0o0002; +pub const S_IXOTH: ::c_int = 0o0001; +pub const S_IRWXO: ::c_int = 0o0007; // socket.h pub const SOL_SOCKET: ::c_int = 0xffff; diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index d47d4076cc720..743f607379768 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -246,28 +246,28 @@ pub const AT_REMOVEDIR: c_int = 0x4; pub const UTIME_OMIT: c_long = 0xfffffffe; pub const UTIME_NOW: c_long = 0xffffffff; pub const S_IFIFO: mode_t = 0o1_0000; -pub const S_IFCHR: mode_t = 8192; -pub const S_IFBLK: mode_t = 24576; -pub const S_IFDIR: mode_t = 16384; -pub const S_IFREG: mode_t = 32768; -pub const S_IFLNK: mode_t = 40960; -pub const S_IFSOCK: mode_t = 49152; +pub const S_IFCHR: mode_t = 0o2_0000; +pub const S_IFBLK: mode_t = 0o6_0000; +pub const S_IFDIR: mode_t = 0o4_0000; +pub const S_IFREG: mode_t = 0o10_0000; +pub const S_IFLNK: mode_t = 0o12_0000; +pub const S_IFSOCK: mode_t = 0o14_0000; pub const S_IFMT: mode_t = 0o17_0000; -pub const S_IRWXO: mode_t = 0x7; -pub const S_IXOTH: mode_t = 0x1; -pub const S_IWOTH: mode_t = 0x2; -pub const S_IROTH: mode_t = 0x4; -pub const S_IRWXG: mode_t = 0x38; -pub const S_IXGRP: mode_t = 0x8; -pub const S_IWGRP: mode_t = 0x10; -pub const S_IRGRP: mode_t = 0x20; -pub const S_IRWXU: mode_t = 0x1c0; -pub const S_IXUSR: mode_t = 0x40; -pub const S_IWUSR: mode_t = 0x80; -pub const S_IRUSR: mode_t = 0x100; -pub const S_ISVTX: mode_t = 0x200; -pub const S_ISGID: mode_t = 0x400; -pub const S_ISUID: mode_t = 0x800; +pub const S_IRWXO: mode_t = 0o0007; +pub const S_IXOTH: mode_t = 0o0001; +pub const S_IWOTH: mode_t = 0o0002; +pub const S_IROTH: mode_t = 0o0004; +pub const S_IRWXG: mode_t = 0o0070; +pub const S_IXGRP: mode_t = 0o0010; +pub const S_IWGRP: mode_t = 0o0020; +pub const S_IRGRP: mode_t = 0o0040; +pub const S_IRWXU: mode_t = 0o0700; +pub const S_IXUSR: mode_t = 0o0100; +pub const S_IWUSR: mode_t = 0o0200; +pub const S_IRUSR: mode_t = 0o0400; +pub const S_ISVTX: mode_t = 0o1000; +pub const S_ISGID: mode_t = 0o2000; +pub const S_ISUID: mode_t = 0o4000; pub const DT_UNKNOWN: u8 = 0; pub const DT_BLK: u8 = 1; pub const DT_CHR: u8 = 2; diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 196f1f2e4b743..63536a809a421 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -140,13 +140,13 @@ pub const _O_OBTAIN_DIR: ::c_int = 0x2000; pub const O_SEQUENTIAL: ::c_int = 0x0020; pub const O_RANDOM: ::c_int = 0x0010; -pub const S_IFCHR: ::c_int = 8192; -pub const S_IFDIR: ::c_int = 16384; -pub const S_IFREG: ::c_int = 32768; -pub const S_IFMT: ::c_int = 61440; -pub const S_IEXEC: ::c_int = 64; -pub const S_IWRITE: ::c_int = 128; -pub const S_IREAD: ::c_int = 256; +pub const S_IFCHR: ::c_int = 0o2_0000; +pub const S_IFDIR: ::c_int = 0o4_0000; +pub const S_IFREG: ::c_int = 0o10_0000; +pub const S_IFMT: ::c_int = 0o17_0000; +pub const S_IEXEC: ::c_int = 0o0100; +pub const S_IWRITE: ::c_int = 0o0200; +pub const S_IREAD: ::c_int = 0o0400; pub const LC_ALL: ::c_int = 0; pub const LC_COLLATE: ::c_int = 1; From 90ce7366018d4611eacf17f62d348360e2f404b8 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 6 Nov 2024 22:59:05 -0600 Subject: [PATCH 0207/1228] Sort all non-TODO semver files (backport ) (cherry picked from commit d159421ae7360ff0fdbb55653e9485a555162c7d) --- libc-test/semver/android-aarch64.txt | 4 +- libc-test/semver/android.txt | 558 ++-- libc-test/semver/apple.txt | 50 +- libc-test/semver/dragonfly.txt | 112 +- libc-test/semver/emscripten.txt | 4 +- libc-test/semver/freebsd.txt | 356 +-- libc-test/semver/fuchsia.txt | 138 +- libc-test/semver/hermit.txt | 394 +-- libc-test/semver/linux-aarch64.txt | 2 +- libc-test/semver/linux-gnu-loongarch64.txt | 4 +- libc-test/semver/linux-gnu-riscv64gc.txt | 4 +- libc-test/semver/linux-gnu.txt | 74 +- libc-test/semver/linux-loongarch64.txt | 8 +- libc-test/semver/linux-riscv64gc.txt | 14 +- libc-test/semver/linux.txt | 3170 ++++++++++---------- libc-test/semver/macos-aarch64.txt | 2 +- libc-test/semver/netbsd-aarch64.txt | 24 +- libc-test/semver/netbsd-mips.txt | 4 +- libc-test/semver/netbsd-x86_64.txt | 10 +- libc-test/semver/netbsd.txt | 142 +- libc-test/semver/openbsd.txt | 64 +- libc-test/semver/trusty.txt | 10 +- libc-test/semver/unix.txt | 2 +- libc-test/semver/wasi-p2.txt | 120 +- libc-test/semver/wasi.txt | 4 +- libc-test/semver/windows.txt | 32 +- 26 files changed, 2653 insertions(+), 2653 deletions(-) diff --git a/libc-test/semver/android-aarch64.txt b/libc-test/semver/android-aarch64.txt index d634779743526..ce27097a5b5b6 100644 --- a/libc-test/semver/android-aarch64.txt +++ b/libc-test/semver/android-aarch64.txt @@ -12,10 +12,10 @@ HWCAP2_SVESM4 PROT_BTI PROT_MTE SYS_arch_specific_syscall +SYS_fcntl SYS_lseek SYS_mmap SYS_syscalls -SYS_fcntl __system_property_wait -user_regs_struct user_fpsimd_struct +user_regs_struct diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 3c452943dd7e3..dadb474886ce0 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -1,3 +1,6 @@ + + + ABS_CNT ABS_MAX ADDR_COMPAT_LAYOUT @@ -200,6 +203,10 @@ B600 B75 B921600 B9600 +BLKIOMIN +BLKIOOPT +BLKPBSZGET +BLKSSZGET BOTHER BRKINT BS0 @@ -208,9 +215,9 @@ BSDLY BUFSIZ BUS_ADRALN BUS_ADRERR -BUS_OBJERR -BUS_MCEERR_AR BUS_MCEERR_AO +BUS_MCEERR_AR +BUS_OBJERR CBAUD CBAUDEX CIBAUD @@ -307,7 +314,6 @@ CTRL_CMD_NEWFAMILY CTRL_CMD_NEWMCAST_GRP CTRL_CMD_NEWOPS CTRL_CMD_UNSPEC - DCCP_SERVICE_LIST_MAX_LEN DCCP_SOCKOPT_AVAILABLE_CCIDS DCCP_SOCKOPT_CCID @@ -618,14 +624,14 @@ FALLOC_FL_NO_HIDE_STALE FALLOC_FL_PUNCH_HOLE FALLOC_FL_UNSHARE_RANGE FALLOC_FL_ZERO_RANGE +FDB_NOTIFY_BIT +FDB_NOTIFY_INACTIVE_BIT FD_CLOEXEC FD_CLR FD_ISSET FD_SET FD_SETSIZE FD_ZERO -FDB_NOTIFY_BIT -FDB_NOTIFY_INACTIVE_BIT FF0 FF1 FFDLY @@ -639,14 +645,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_SETFLAGS FS_IOC32_SETVERSION +FS_IOC_GETFLAGS +FS_IOC_GETVERSION +FS_IOC_SETFLAGS +FS_IOC_SETVERSION FUTEX_CLOCK_REALTIME FUTEX_CMD_MASK FUTEX_CMP_REQUEUE @@ -709,21 +715,35 @@ GENL_MAX_ID GENL_MIN_ID GENL_NAMSIZ GENL_UNS_ADMIN_PERM +GRND_INSECURE GRND_NONBLOCK GRND_RANDOM -GRND_INSECURE GRPQUOTA HPFS_SUPER_MAGIC HUGETLBFS_MAGIC +HUGETLB_FLAG_ENCODE_SHIFT HUPCL IBSHIFT -BLKIOMIN -BLKIOOPT -BLKSSZGET -BLKPBSZGET ICANON ICRNL IEXTEN +IFA_ADDRESS +IFA_ANYCAST +IFA_BROADCAST +IFA_CACHEINFO +IFA_F_DADFAILED +IFA_F_DEPRECATED +IFA_F_HOMEADDRESS +IFA_F_NODAD +IFA_F_OPTIMISTIC +IFA_F_PERMANENT +IFA_F_SECONDARY +IFA_F_TEMPORARY +IFA_F_TENTATIVE +IFA_LABEL +IFA_LOCAL +IFA_MULTICAST +IFA_UNSPEC IFF_ALLMULTI IFF_AUTOMEDIA IFF_BROADCAST @@ -744,104 +764,80 @@ 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 -IFA_ADDRESS -IFA_LOCAL -IFA_LABEL -IFA_BROADCAST -IFA_ANYCAST -IFA_CACHEINFO -IFA_MULTICAST -IFA_F_SECONDARY -IFA_F_TEMPORARY -IFA_F_NODAD -IFA_F_OPTIMISTIC -IFA_F_DADFAILED -IFA_F_HOMEADDRESS -IFA_F_DEPRECATED -IFA_F_TENTATIVE -IFA_F_PERMANENT -IFLA_UNSPEC IFLA_ADDRESS +IFLA_AF_SPEC +IFLA_ALLMULTI +IFLA_ALT_IFNAME IFLA_BROADCAST +IFLA_CARRIER +IFLA_CARRIER_CHANGES +IFLA_CARRIER_DOWN_COUNT +IFLA_CARRIER_UP_COUNT +IFLA_COST +IFLA_DEVLINK_PORT +IFLA_EVENT +IFLA_EXT_MASK +IFLA_GROUP +IFLA_GRO_IPV4_MAX_SIZE +IFLA_GRO_MAX_SIZE +IFLA_GSO_IPV4_MAX_SIZE +IFLA_GSO_MAX_SEGS +IFLA_GSO_MAX_SIZE +IFLA_IFALIAS IFLA_IFNAME -IFLA_MTU +IFLA_IF_NETNSID +IFLA_INFO_DATA +IFLA_INFO_KIND +IFLA_INFO_SLAVE_DATA +IFLA_INFO_SLAVE_KIND +IFLA_INFO_UNSPEC +IFLA_INFO_XSTATS IFLA_LINK -IFLA_QDISC -IFLA_STATS -IFLA_COST -IFLA_PRIORITY -IFLA_MASTER -IFLA_WIRELESS -IFLA_PROTINFO -IFLA_TXQLEN -IFLA_MAP -IFLA_WEIGHT -IFLA_OPERSTATE -IFLA_LINKMODE IFLA_LINKINFO -IFLA_NET_NS_PID -IFLA_IFALIAS -IFLA_NUM_VF -IFLA_VFINFO_LIST -IFLA_STATS64 -IFLA_VF_PORTS -IFLA_PORT_SELF -IFLA_AF_SPEC -IFLA_GROUP +IFLA_LINKMODE +IFLA_LINK_NETNSID +IFLA_MAP +IFLA_MASTER +IFLA_MAX_MTU +IFLA_MIN_MTU +IFLA_MTU IFLA_NET_NS_FD -IFLA_EXT_MASK -IFLA_PROMISCUITY -IFLA_NUM_TX_QUEUES +IFLA_NET_NS_PID +IFLA_NEW_IFINDEX +IFLA_NEW_NETNSID IFLA_NUM_RX_QUEUES -IFLA_CARRIER +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_CARRIER_CHANGES -IFLA_PHYS_SWITCH_ID -IFLA_LINK_NETNSID IFLA_PHYS_PORT_NAME -IFLA_PROTO_DOWN -IFLA_GSO_MAX_SEGS -IFLA_GSO_MAX_SIZE -IFLA_PAD -IFLA_XDP -IFLA_EVENT -IFLA_NEW_NETNSID -IFLA_IF_NETNSID -IFLA_TARGET_NETNSID -IFLA_CARRIER_UP_COUNT -IFLA_CARRIER_DOWN_COUNT -IFLA_NEW_IFINDEX -IFLA_MIN_MTU -IFLA_MAX_MTU +IFLA_PHYS_SWITCH_ID +IFLA_PORT_SELF +IFLA_PRIORITY +IFLA_PROMISCUITY IFLA_PROP_LIST -IFLA_ALT_IFNAME -IFLA_PERM_ADDRESS +IFLA_PROTINFO +IFLA_PROTO_DOWN IFLA_PROTO_DOWN_REASON -IFLA_PARENT_DEV_NAME -IFLA_PARENT_DEV_BUS_NAME -IFLA_GRO_MAX_SIZE -IFLA_TSO_MAX_SIZE +IFLA_QDISC +IFLA_STATS +IFLA_STATS64 +IFLA_TARGET_NETNSID 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 -IFLA_INFO_XSTATS -IFLA_INFO_SLAVE_KIND -IFLA_INFO_SLAVE_DATA +IFLA_TSO_MAX_SIZE +IFLA_TXQLEN +IFLA_UNSPEC +IFLA_VFINFO_LIST +IFLA_VF_PORTS +IFLA_WEIGHT +IFLA_WIRELESS +IFLA_XDP +IFNAMSIZ +IF_NAMESIZE IGNBRK IGNCR IGNPAR @@ -869,9 +865,9 @@ IN_DELETE_SELF IN_DONT_FOLLOW IN_EXCL_UNLINK IN_IGNORED -IN_MASK_CREATE -IN_MASK_ADD IN_ISDIR +IN_MASK_ADD +IN_MASK_CREATE IN_MODIFY IN_MOVE IN_MOVED_FROM @@ -1099,17 +1095,17 @@ KEXEC_ON_CRASH KEXEC_PRESERVE_CONTEXT KEY_CNT KEY_MAX +KLOG_CLEAR KLOG_CLOSE +KLOG_CONSOLE_LEVEL +KLOG_CONSOLE_OFF +KLOG_CONSOLE_ON KLOG_OPEN KLOG_READ KLOG_READ_ALL KLOG_READ_CLEAR -KLOG_CLEAR -KLOG_CONSOLE_OFF -KLOG_CONSOLE_ON -KLOG_CONSOLE_LEVEL -KLOG_SIZE_UNREAD KLOG_SIZE_BUFFER +KLOG_SIZE_UNREAD LC_ADDRESS LC_ADDRESS_MASK LC_ALL @@ -1218,6 +1214,7 @@ MAP_FILE MAP_FIXED MAP_GROWSDOWN MAP_HUGETLB +MAP_HUGE_SHIFT MAP_LOCKED MAP_NONBLOCK MAP_NORESERVE @@ -1242,14 +1239,14 @@ 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_PRIVATE_EXPEDITED_SYNC_CORE +MEMBARRIER_CMD_QUERY MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED -MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ +MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE MFD_ALLOW_SEALING MFD_CLOEXEC MFD_EXEC @@ -1411,6 +1408,9 @@ NETLINK_TX_RING NETLINK_UNUSED NETLINK_USERSOCK NETLINK_XFRM +NFEA_ACTIVITY_NOTIFY +NFEA_DONT_REFRESH +NFEA_UNSPEC NFNETLINK_V0 NFNLGRP_ACCT_QUOTA NFNLGRP_CONNTRACK_DESTROY @@ -1750,9 +1750,6 @@ 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 @@ -1904,17 +1901,6 @@ POSIX_FADV_NORMAL POSIX_FADV_RANDOM POSIX_FADV_SEQUENTIAL POSIX_FADV_WILLNEED -PR_GET_NAME -PR_GET_NO_NEW_PRIVS -PR_GET_SECCOMP -PR_GET_TIMING -PR_SET_NAME -PR_SET_NO_NEW_PRIVS -PR_SET_SECCOMP -PR_TIMING_STATISTICAL -PR_TIMING_TIMESTAMP -PR_SET_VMA -PR_SET_VMA_ANON_NAME PRIO_MAX PRIO_MIN PRIO_PGRP @@ -1929,6 +1915,17 @@ PROT_GROWSUP PROT_NONE PROT_READ PROT_WRITE +PR_GET_NAME +PR_GET_NO_NEW_PRIVS +PR_GET_SECCOMP +PR_GET_TIMING +PR_SET_NAME +PR_SET_NO_NEW_PRIVS +PR_SET_SECCOMP +PR_SET_VMA +PR_SET_VMA_ANON_NAME +PR_TIMING_STATISTICAL +PR_TIMING_TIMESTAMP PTHREAD_BARRIER_SERIAL_THREAD PTHREAD_COND_INITIALIZER PTHREAD_CREATE_DETACHED @@ -1977,16 +1974,16 @@ PTRACE_SETSIGINFO PTRACE_SINGLESTEP PTRACE_SYSCALL PTRACE_TRACEME -PT_HIOS -PT_LOPROC -PT_HIPROC PT_DYNAMIC PT_GNU_EH_FRAME PT_GNU_RELRO PT_GNU_STACK +PT_HIOS +PT_HIPROC PT_INTERP PT_LOAD PT_LOOS +PT_LOPROC PT_NOTE PT_NULL PT_PHDR @@ -2074,123 +2071,114 @@ RLIMIT_RTPRIO RLIMIT_SIGPENDING RLIMIT_STACK RLIM_INFINITY -RTLD_DEFAULT -RTLD_GLOBAL -RTLD_LAZY +RTA_CACHEINFO +RTA_DST +RTA_FLOW +RTA_GATEWAY +RTA_IIF +RTA_MARK +RTA_METRICS +RTA_MFC_STATS +RTA_MP_ALGO +RTA_MULTIPATH +RTA_OIF +RTA_PREFSRC +RTA_PRIORITY +RTA_PROTOINFO +RTA_SESSION +RTA_SRC +RTA_TABLE +RTA_UNSPEC +RTLD_DEFAULT +RTLD_GLOBAL +RTLD_LAZY RTLD_LOCAL +RTLD_NODELETE RTLD_NOLOAD RTLD_NOW -RTLD_NODELETE -TCA_UNSPEC -TCA_KIND -TCA_OPTIONS -TCA_STATS -TCA_XSTATS -TCA_RATE -TCA_FCNT -TCA_STATS2 -TCA_STAB -RTM_NEWLINK -RTM_DELLINK -RTM_GETLINK -RTM_SETLINK -RTM_NEWADDR +RTMSG_DELDEVICE +RTMSG_DELROUTE +RTMSG_NEWDEVICE +RTMSG_NEWROUTE +RTM_DELACTION RTM_DELADDR -RTM_GETADDR -RTM_NEWROUTE -RTM_DELROUTE -RTM_GETROUTE -RTM_NEWNEIGH +RTM_DELADDRLABEL +RTM_DELLINK +RTM_DELMDB RTM_DELNEIGH -RTM_GETNEIGH -RTM_NEWRULE -RTM_DELRULE -RTM_GETRULE -RTM_NEWQDISC +RTM_DELNSID RTM_DELQDISC -RTM_GETQDISC -RTM_NEWTCLASS +RTM_DELROUTE +RTM_DELRULE RTM_DELTCLASS -RTM_GETTCLASS -RTM_NEWTFILTER RTM_DELTFILTER -RTM_GETTFILTER -RTM_NEWACTION -RTM_DELACTION +RTM_F_CLONED +RTM_F_EQUALIZE +RTM_F_NOTIFY +RTM_F_PREFIX RTM_GETACTION -RTM_NEWPREFIX -RTM_GETMULTICAST -RTM_GETANYCAST -RTM_NEWNEIGHTBL -RTM_GETNEIGHTBL -RTM_SETNEIGHTBL -RTM_NEWNDUSEROPT -RTM_NEWADDRLABEL -RTM_DELADDRLABEL +RTM_GETADDR RTM_GETADDRLABEL +RTM_GETANYCAST RTM_GETDCB -RTM_SETDCB -RTM_NEWNETCONF +RTM_GETLINK +RTM_GETMDB +RTM_GETMULTICAST +RTM_GETNEIGH +RTM_GETNEIGHTBL RTM_GETNETCONF +RTM_GETNSID +RTM_GETQDISC +RTM_GETROUTE +RTM_GETRULE +RTM_GETTCLASS +RTM_GETTFILTER +RTM_NEWACTION +RTM_NEWADDR +RTM_NEWADDRLABEL +RTM_NEWLINK RTM_NEWMDB -RTM_DELMDB -RTM_GETMDB +RTM_NEWNDUSEROPT +RTM_NEWNEIGH +RTM_NEWNEIGHTBL +RTM_NEWNETCONF RTM_NEWNSID -RTM_DELNSID -RTM_GETNSID -RTM_F_NOTIFY -RTM_F_CLONED -RTM_F_EQUALIZE -RTM_F_PREFIX -RTA_UNSPEC -RTA_DST -RTA_SRC -RTA_IIF -RTA_OIF -RTA_GATEWAY -RTA_PRIORITY -RTA_PREFSRC -RTA_METRICS -RTA_MULTIPATH -RTA_PROTOINFO -RTA_FLOW -RTA_CACHEINFO -RTA_SESSION -RTA_MP_ALGO -RTA_TABLE -RTA_MARK -RTA_MFC_STATS -RTN_UNSPEC -RTN_UNICAST -RTN_LOCAL -RTN_BROADCAST +RTM_NEWPREFIX +RTM_NEWQDISC +RTM_NEWROUTE +RTM_NEWRULE +RTM_NEWTCLASS +RTM_NEWTFILTER +RTM_SETDCB +RTM_SETLINK +RTM_SETNEIGHTBL RTN_ANYCAST -RTN_MULTICAST RTN_BLACKHOLE -RTN_UNREACHABLE +RTN_BROADCAST +RTN_LOCAL +RTN_MULTICAST +RTN_NAT RTN_PROHIBIT RTN_THROW -RTN_NAT +RTN_UNICAST +RTN_UNREACHABLE +RTN_UNSPEC RTN_XRESOLVE -RTPROT_UNSPEC -RTPROT_REDIRECT -RTPROT_KERNEL RTPROT_BOOT +RTPROT_KERNEL +RTPROT_REDIRECT RTPROT_STATIC -RT_SCOPE_UNIVERSE -RT_SCOPE_SITE -RT_SCOPE_LINK +RTPROT_UNSPEC RT_SCOPE_HOST +RT_SCOPE_LINK RT_SCOPE_NOWHERE -RT_TABLE_UNSPEC +RT_SCOPE_SITE +RT_SCOPE_UNIVERSE RT_TABLE_COMPAT RT_TABLE_DEFAULT -RT_TABLE_MAIN RT_TABLE_LOCAL -RTMSG_NEWDEVICE -RTMSG_DELDEVICE -RTMSG_NEWROUTE -RTMSG_DELROUTE +RT_TABLE_MAIN +RT_TABLE_UNSPEC RUSAGE_CHILDREN RUSAGE_SELF R_OK @@ -2212,7 +2200,6 @@ SCM_CREDENTIALS SCM_RIGHTS SCM_TIMESTAMP SCM_TIMESTAMPING - SECCOMP_FILTER_FLAG_LOG SECCOMP_FILTER_FLAG_NEW_LISTENER SECCOMP_FILTER_FLAG_SPEC_ALLOW @@ -2289,81 +2276,81 @@ SIG_ERR SIG_IGN SIG_SETMASK SIG_UNBLOCK +SIOCADDDLCI 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 +SIOCBONDCHANGEACTIVE SIOCBONDENSLAVE +SIOCBONDINFOQUERY SIOCBONDRELEASE SIOCBONDSETHWADDR SIOCBONDSLAVEINFOQUERY -SIOCBONDINFOQUERY -SIOCBONDCHANGEACTIVE SIOCBRADDBR -SIOCBRDELBR SIOCBRADDIF +SIOCBRDELBR SIOCBRDELIF -SIOCSHWTSTAMP -SIOCGHWTSTAMP -SIOCDEVPRIVATE -SIOCPROTOPRIVATE +SIOCDARP +SIOCDELDLCI +SIOCDELMULTI SIOCDELRT -SIOCRTMSG +SIOCDEVPRIVATE +SIOCDIFADDR SIOCDRARP +SIOCETHTOOL SIOCGARP +SIOCGHWTSTAMP SIOCGIFADDR +SIOCGIFBR SIOCGIFBRDADDR SIOCGIFCONF +SIOCGIFCOUNT SIOCGIFDSTADDR SIOCGIFENCAP SIOCGIFFLAGS -SIOCSIFNAME SIOCGIFHWADDR +SIOCGIFINDEX SIOCGIFMAP SIOCGIFMEM SIOCGIFMETRIC SIOCGIFMTU SIOCGIFNAME SIOCGIFNETMASK +SIOCGIFPFLAGS SIOCGIFSLAVE +SIOCGIFTXQLEN +SIOCGIFVLAN +SIOCGMIIPHY +SIOCGMIIREG SIOCGRARP +SIOCGSKNS +SIOCOUTQNSD +SIOCPROTOPRIVATE +SIOCRTMSG SIOCSARP +SIOCSHWTSTAMP SIOCSIFADDR +SIOCSIFBR SIOCSIFBRDADDR SIOCSIFDSTADDR SIOCSIFENCAP SIOCSIFFLAGS SIOCSIFHWADDR +SIOCSIFHWBROADCAST SIOCSIFLINK SIOCSIFMAP SIOCSIFMEM SIOCSIFMETRIC SIOCSIFMTU +SIOCSIFNAME SIOCSIFNETMASK +SIOCSIFPFLAGS SIOCSIFSLAVE +SIOCSIFTXQLEN +SIOCSIFVLAN +SIOCSMIIREG SIOCSRARP +SIOCWANDEV +SIOGIFINDEX SI_LOAD_SHIFT SMB_SUPER_MAGIC SND_CNT @@ -2377,21 +2364,21 @@ SOCK_RAW SOCK_RDM SOCK_SEQPACKET SOCK_STREAM +SOF_TIMESTAMPING_OPT_CMSG +SOF_TIMESTAMPING_OPT_ID +SOF_TIMESTAMPING_OPT_PKTINFO +SOF_TIMESTAMPING_OPT_STATS +SOF_TIMESTAMPING_OPT_TSONLY +SOF_TIMESTAMPING_OPT_TX_SWHW SOF_TIMESTAMPING_RAW_HARDWARE SOF_TIMESTAMPING_RX_HARDWARE SOF_TIMESTAMPING_RX_SOFTWARE SOF_TIMESTAMPING_SOFTWARE SOF_TIMESTAMPING_SYS_HARDWARE +SOF_TIMESTAMPING_TX_ACK 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 +SOF_TIMESTAMPING_TX_SOFTWARE SOL_AAL SOL_ALG SOL_ATALK @@ -2771,6 +2758,15 @@ TAB1 TAB2 TAB3 TABDLY +TCA_FCNT +TCA_KIND +TCA_OPTIONS +TCA_RATE +TCA_STAB +TCA_STATS +TCA_STATS2 +TCA_UNSPEC +TCA_XSTATS TCFLSH TCGETA TCGETS @@ -2847,6 +2843,13 @@ TIOCSWINSZ TMPFS_MAGIC TMP_MAX TOSTOP +TUN_F_CSUM +TUN_F_TSO4 +TUN_F_TSO6 +TUN_F_TSO_ECN +TUN_F_UFO +TUN_F_USO4 +TUN_F_USO6 UINPUT_MAX_NAME_SIZE UINPUT_VERSION UIO_MAXIOV @@ -3082,6 +3085,9 @@ __NFT_REG_MAX __WALL __WCLONE __WNOTHREAD +__c_anonymous_ifc_ifcu +__c_anonymous_ifr_ifru +__c_anonymous_ifru_map __errno __fsid_t __kernel_loff_t @@ -3115,6 +3121,7 @@ atof atoi atol atoll +basename bind blkcnt_t blksize_t @@ -3170,6 +3177,7 @@ difftime dirent dirent64 dirfd +dirname dladdr dlclose dlerror @@ -3185,6 +3193,8 @@ epoll_ctl epoll_event epoll_wait eventfd +eventfd_read +eventfd_write execl execle execlp @@ -3211,7 +3221,6 @@ fdopendir feof ferror fexecve -fflush ff_condition_effect ff_constant_effect ff_effect @@ -3221,6 +3230,7 @@ ff_ramp_effect ff_replay ff_rumble_effect ff_trigger +fflush fgetc fgetpos fgets @@ -3329,14 +3339,11 @@ 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 +ifconf +ifreq in6_addr in6_ifreq in6_pktinfo @@ -3367,8 +3374,8 @@ intptr_t ioctl iovec ip_mreq -ip_mreqn ip_mreq_source +ip_mreqn ipv6_mreq isalnum isalpha @@ -3514,15 +3521,15 @@ pthread_attr_setdetachstate pthread_attr_setguardsize pthread_attr_setstacksize pthread_attr_t +pthread_barrier_destroy +pthread_barrier_init +pthread_barrier_t +pthread_barrier_wait pthread_barrierattr_destroy pthread_barrierattr_getpshared pthread_barrierattr_init pthread_barrierattr_setpshared pthread_barrierattr_t -pthread_barrier_destroy -pthread_barrier_init -pthread_barrier_wait -pthread_barrier_t pthread_cond_broadcast pthread_cond_destroy pthread_cond_init @@ -3591,7 +3598,6 @@ ptrace_peeksiginfo_args ptrdiff_t ptsname ptsname_r - putchar putchar_unlocked putenv @@ -3875,9 +3881,3 @@ winsize wmemchr write writev -dirname -basename -eventfd_read -eventfd_write -HUGETLB_FLAG_ENCODE_SHIFT -MAP_HUGE_SHIFT diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index e5de0f02136af..fc066c70affc6 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -849,8 +849,8 @@ LOCAL_PEERCRED LOCAL_PEEREPID LOCAL_PEEREUUID LOCAL_PEERPID -LOCAL_PEERUUID LOCAL_PEERTOKEN +LOCAL_PEERUUID LOGIN_PROCESS LOG_AUTHPRIV LOG_CRON @@ -1039,10 +1039,10 @@ OS_LOG_TYPE_INFO OS_SIGNPOST_EVENT OS_SIGNPOST_INTERVAL_BEGIN OS_SIGNPOST_INTERVAL_END -OS_SYNC_WAKE_BY_ADDRESS_NONE -OS_SYNC_WAKE_BY_ADDRESS_SHARED OS_SYNC_WAIT_ON_ADDRESS_NONE OS_SYNC_WAIT_ON_ADDRESS_SHARED +OS_SYNC_WAKE_BY_ADDRESS_NONE +OS_SYNC_WAKE_BY_ADDRESS_SHARED OS_UNFAIR_LOCK_INIT OXTABS O_ASYNC @@ -1118,11 +1118,11 @@ PROC_CSM_TECS PROC_PIDTASKALLINFO PROC_PIDTASKINFO PROC_PIDTHREADINFO +PTHREAD_CANCELED PTHREAD_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DISABLE PTHREAD_CANCEL_ENABLE -PTHREAD_CANCELED PTHREAD_CREATE_DETACHED PTHREAD_CREATE_JOINABLE PTHREAD_EXPLICIT_SCHED @@ -1717,6 +1717,24 @@ _NSGetArgv _NSGetEnviron _NSGetExecutablePath _NSGetProgname +_PC_2_SYMLINKS +_PC_ALLOC_SIZE_MIN +_PC_ASYNC_IO +_PC_AUTH_OPAQUE_NP +_PC_CASE_PRESERVING +_PC_CASE_SENSITIVE +_PC_EXTENDED_SECURITY_NP +_PC_FILESIZEBITS +_PC_MIN_HOLE_SIZE +_PC_NAME_CHARS_MAX +_PC_PRIO_IO +_PC_REC_INCR_XFER_SIZE +_PC_REC_MAX_XFER_SIZE +_PC_REC_MIN_XFER_SIZE +_PC_REC_XFER_ALIGN +_PC_SYMLINK_MAX +_PC_SYNC_IO +_PC_XATTR_SIZE_BITS _POSIX_VDISABLE _PTHREAD_COND_SIG_init _PTHREAD_MUTEX_SIG_init @@ -2093,13 +2111,13 @@ os_signpost_id_generate os_signpost_id_make_with_pointer os_signpost_id_t os_signpost_type_t -os_sync_wake_by_address_any -os_sync_wake_by_address_all -os_sync_wake_by_address_flags_t os_sync_wait_on_address os_sync_wait_on_address_flags_t os_sync_wait_on_address_with_deadline os_sync_wait_on_address_with_timeout +os_sync_wake_by_address_all +os_sync_wake_by_address_any +os_sync_wake_by_address_flags_t os_unfair_lock os_unfair_lock_assert_not_owner os_unfair_lock_assert_owner @@ -2341,21 +2359,3 @@ wait4 waitid xsw_usage xucred -_PC_NAME_CHARS_MAX -_PC_CASE_SENSITIVE -_PC_CASE_PRESERVING -_PC_EXTENDED_SECURITY_NP -_PC_AUTH_OPAQUE_NP -_PC_2_SYMLINKS -_PC_ALLOC_SIZE_MIN -_PC_ASYNC_IO -_PC_FILESIZEBITS -_PC_PRIO_IO -_PC_REC_INCR_XFER_SIZE -_PC_REC_MAX_XFER_SIZE -_PC_REC_MIN_XFER_SIZE -_PC_REC_XFER_ALIGN -_PC_SYMLINK_MAX -_PC_SYNC_IO -_PC_XATTR_SIZE_BITS -_PC_MIN_HOLE_SIZE diff --git a/libc-test/semver/dragonfly.txt b/libc-test/semver/dragonfly.txt index 8c9a7854f9eba..c197a2edac65b 100644 --- a/libc-test/semver/dragonfly.txt +++ b/libc-test/semver/dragonfly.txt @@ -142,18 +142,18 @@ CMSG_LEN CMSG_NXTHDR CMSG_SPACE CODESET +CPUCTL_CPUID +CPUCTL_CPUID_COUNT +CPUCTL_MSRCBIT +CPUCTL_MSRSBIT +CPUCTL_RSMSR +CPUCTL_UPDATE +CPUCTL_WRMSR CPU_CLR CPU_ISSET CPU_SET CPU_SETSIZE CPU_ZERO -CPUCTL_RSMSR -CPUCTL_WRMSR -CPUCTL_CPUID -CPUCTL_UPDATE -CPUCTL_MSRSBIT -CPUCTL_MSRCBIT -CPUCTL_CPUID_COUNT CRNCYSTR CRTSCTS CRTS_IFLOW @@ -490,14 +490,15 @@ IPTOS_ECN_ECT1 IPTOS_ECN_MASK IPTOS_ECN_NOTECT IPV6_CHECKSUM +IPV6_DONTFRAG IPV6_HOPLIMIT IPV6_JOIN_GROUP IPV6_LEAVE_GROUP IPV6_PKTINFO +IPV6_RECVHOPLIMIT IPV6_RECVPKTINFO IPV6_RECVTCLASS IPV6_TCLASS -IPV6_DONTFRAG IP_HDRINCL IP_RECVDSTADDR IP_RECVIF @@ -507,12 +508,12 @@ IP_TOS ITIMER_PROF ITIMER_REAL ITIMER_VIRTUAL -KENV_GET -KENV_SET -KENV_UNSET KENV_DUMP +KENV_GET KENV_MNAMELEN KENV_MVALLEN +KENV_SET +KENV_UNSET KERN_ARGMAX KERN_BOOTFILE KERN_BOOTTIME @@ -807,23 +808,23 @@ Q_SYNC RADIXCHAR RAND_MAX RB_ASKNAME -RB_SINGLE -RB_NOSYNC +RB_CDROM +RB_DFLTROOT +RB_DUMP +RB_GDB 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_NOSYNC RB_PAUSE +RB_POWEROFF +RB_RDONLY +RB_SELFTEST +RB_SERIAL +RB_SINGLE +RB_VERBOSE RB_VIDEO REG_ASSERT REG_ATOI @@ -874,35 +875,35 @@ RLIMIT_STACK RLIMIT_VMEM RLIM_INFINITY RLIM_NLIMITS -RTF_XRESOLVE +RTAX_MAX +RTAX_MPLS1 +RTAX_MPLS2 +RTAX_MPLS3 +RTF_BROADCAST +RTF_CLONING RTF_LLINFO -RTF_PROTO3 -RTF_PINNED RTF_LOCAL -RTF_BROADCAST +RTF_MPLSOPS RTF_MULTICAST -RTM_LOCK -RTM_RESOLVE -RTM_NEWADDR -RTM_DELADDR -RTM_IFINFO -RTM_NEWMADDR -RTM_DELMADDR -RTM_IFANNOUNCE -RTM_IEEE80211 -RTF_CLONING +RTF_PINNED RTF_PRCLONING +RTF_PROTO3 RTF_WASCLONED -RTF_MPLSOPS -RTM_VERSION -RTAX_MPLS1 -RTAX_MPLS2 -RTAX_MPLS3 -RTAX_MAX +RTF_XRESOLVE RTLD_NEXT RTLD_NODELETE RTLD_NOLOAD RTLD_SELF +RTM_DELADDR +RTM_DELMADDR +RTM_IEEE80211 +RTM_IFANNOUNCE +RTM_IFINFO +RTM_LOCK +RTM_NEWADDR +RTM_NEWMADDR +RTM_RESOLVE +RTM_VERSION RTP_LOOKUP RTP_PRIO_IDLE RTP_PRIO_MAX @@ -1198,9 +1199,9 @@ _SC_PRIORITIZED_IO _SC_PRIORITY_SCHEDULING _SC_RAW_SOCKETS _SC_READER_WRITER_LOCKS -_SC_RE_DUP_MAX _SC_REALTIME_SIGNALS _SC_REGEXP +_SC_RE_DUP_MAX _SC_RTSIG_MAX _SC_SAVED_IDS _SC_SEMAPHORES @@ -1260,8 +1261,8 @@ _UTX_LINESIZE _UTX_USERSIZE __errno_location abs -accept_filter_arg accept4 +accept_filter_arg acct aio_cancel aio_error @@ -1279,6 +1280,7 @@ arphdr backtrace backtrace_symbols backtrace_symbols_fd +basename bpf_dltlist bpf_hdr bpf_insn @@ -1304,15 +1306,17 @@ daemon devname_r difftime dirfd +dirname dl_iterate_phdr dl_phdr_info drand48 -erand48 duplocale +eaccess endgrent endpwent endservent endutxent +erand48 eui64_aton eui64_hostton eui64_ntoa @@ -1369,10 +1373,10 @@ getrusage getservbyport getservent getsid -getutxuser getutxent getutxid getutxline +getutxuser glob glob_t globfree @@ -1396,6 +1400,7 @@ kinfo_cputime kinfo_file kinfo_lwp kinfo_proc +kqueue kvm_close kvm_getloadavg kvm_getprocs @@ -1406,7 +1411,6 @@ kvm_t kvm_vm_map_entry_first kvm_vm_map_entry_next kvm_write -kqueue labs lastlog lchflags @@ -1474,21 +1478,21 @@ pthread_attr_get_np pthread_attr_getguardsize pthread_attr_getstack pthread_attr_setguardsize +pthread_barrier_destroy +pthread_barrier_init pthread_barrierattr_destroy pthread_barrierattr_getpshared pthread_barrierattr_init pthread_barrierattr_setpshared pthread_barrierattr_t -pthread_barrier_destroy -pthread_barrier_init pthread_cancel pthread_condattr_getclock pthread_condattr_getpshared pthread_condattr_setclock pthread_condattr_setpshared pthread_get_name_np -pthread_getname_np pthread_getcpuclockid +pthread_getname_np pthread_kill pthread_main_np pthread_mutex_timedlock @@ -1523,10 +1527,10 @@ regfree regmatch_t regoff_t rtprio -sched_getparam -sched_getscheduler sched_get_priority_max sched_get_priority_min +sched_getparam +sched_getscheduler sched_param sched_rr_get_interval sched_setparam @@ -1615,7 +1619,3 @@ vmspace wait4 waitid xucred -eaccess -dirname -basename -IPV6_RECVHOPLIMIT diff --git a/libc-test/semver/emscripten.txt b/libc-test/semver/emscripten.txt index 150a7fb8a6c6f..dc9e6b4f3b52d 100644 --- a/libc-test/semver/emscripten.txt +++ b/libc-test/semver/emscripten.txt @@ -1,9 +1,9 @@ AT_EACCESS getentropy getgrgid +getgrgid_r getgrnam getgrnam_r -getgrgid_r -posix_fallocate64 getpwnam_r getpwuid_r +posix_fallocate64 diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index d4b53860b5a53..c9944d1d791f7 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -55,12 +55,12 @@ AIO_ALLDONE AIO_CANCELED AIO_LISTIO_MAX AIO_NOTCANCELED -AI_PASSIVE +AI_ADDRCONFIG +AI_ALL AI_CANONNAME AI_NUMERICHOST AI_NUMERICSERV -AI_ALL -AI_ADDRCONFIG +AI_PASSIVE AI_V4MAPPED ALTMON_1 ALTMON_10 @@ -144,100 +144,100 @@ BUFSIZ BUS_ADRALN BUS_ADRERR BUS_OBJERR -CAP_READ -CAP_RIGHTS_VERSION_00 -CAP_RIGHTS_VERSION -CAP_WRITE -CAP_SEEK_TELL -CAP_SEEK -CAP_PREAD -CAP_PWRITE -CAP_MMAP -CAP_MMAP_R -CAP_MMAP_W -CAP_MMAP_X -CAP_MMAP_RW -CAP_MMAP_RX -CAP_MMAP_WX -CAP_MMAP_RWX +CAP_ACCEPT +CAP_ACL_CHECK +CAP_ACL_DELETE +CAP_ACL_GET +CAP_ACL_SET +CAP_ALL0 +CAP_ALL1 +CAP_BIND +CAP_BINDAT +CAP_CHFLAGSAT +CAP_CONNECT +CAP_CONNECTAT CAP_CREATE -CAP_FEXECVE -CAP_FSYNC -CAP_FTRUNCATE -CAP_LOOKUP +CAP_EVENT +CAP_EXTATTR_DELETE +CAP_EXTATTR_GET +CAP_EXTATTR_LIST +CAP_EXTATTR_SET CAP_FCHDIR CAP_FCHFLAGS -CAP_CHFLAGSAT CAP_FCHMOD CAP_FCHMODAT CAP_FCHOWN CAP_FCHOWNAT CAP_FCNTL +CAP_FCNTL_GETFL +CAP_FCNTL_GETOWN +CAP_FCNTL_SETFL +CAP_FCNTL_SETOWN +CAP_FEXECVE CAP_FLOCK CAP_FPATHCONF CAP_FSCK CAP_FSTAT CAP_FSTATAT CAP_FSTATFS +CAP_FSYNC +CAP_FTRUNCATE CAP_FUTIMES CAP_FUTIMESAT -CAP_LINKAT_TARGET -CAP_MKDIRAT -CAP_MKFIFOAT -CAP_MKNODAT -CAP_RENAMEAT_SOURCE -CAP_SYMLINKAT -CAP_UNLINKAT -CAP_ACCEPT -CAP_BIND -CAP_CONNECT CAP_GETPEERNAME CAP_GETSOCKNAME CAP_GETSOCKOPT +CAP_IOCTL +CAP_KQUEUE +CAP_KQUEUE_CHANGE +CAP_KQUEUE_EVENT +CAP_LINKAT_SOURCE +CAP_LINKAT_TARGET CAP_LISTEN +CAP_LOOKUP +CAP_MAC_GET +CAP_MAC_SET +CAP_MKDIRAT +CAP_MKFIFOAT +CAP_MKNODAT +CAP_MMAP +CAP_MMAP_R +CAP_MMAP_RW +CAP_MMAP_RWX +CAP_MMAP_RX +CAP_MMAP_W +CAP_MMAP_WX +CAP_MMAP_X +CAP_PDGETPID +CAP_PDKILL +CAP_PDWAIT CAP_PEELOFF +CAP_PREAD +CAP_PWRITE +CAP_READ CAP_RECV +CAP_RENAMEAT_SOURCE +CAP_RENAMEAT_TARGET +CAP_RIGHTS_VERSION +CAP_RIGHTS_VERSION_00 +CAP_SEEK +CAP_SEEK_TELL +CAP_SEM_GETVALUE +CAP_SEM_POST +CAP_SEM_WAIT CAP_SEND CAP_SETSOCKOPT CAP_SHUTDOWN -CAP_BINDAT -CAP_CONNECTAT -CAP_LINKAT_SOURCE -CAP_RENAMEAT_TARGET CAP_SOCK_CLIENT CAP_SOCK_SERVER -CAP_ALL0 +CAP_SYMLINKAT +CAP_TTYHOOK +CAP_UNLINKAT CAP_UNUSED0_44 CAP_UNUSED0_57 -CAP_MAC_GET -CAP_MAC_SET -CAP_SEM_GETVALUE -CAP_SEM_POST -CAP_SEM_WAIT -CAP_EVENT -CAP_KQUEUE_EVENT -CAP_IOCTL -CAP_TTYHOOK -CAP_PDGETPID -CAP_PDWAIT -CAP_PDKILL -CAP_EXTATTR_DELETE -CAP_EXTATTR_GET -CAP_EXTATTR_LIST -CAP_EXTATTR_SET -CAP_ACL_CHECK -CAP_ACL_DELETE -CAP_ACL_GET -CAP_ACL_SET -CAP_KQUEUE_CHANGE -CAP_KQUEUE -CAP_ALL1 CAP_UNUSED1_22 CAP_UNUSED1_57 -CAP_FCNTL_GETFL -CAP_FCNTL_SETFL -CAP_FCNTL_GETOWN -CAP_FCNTL_SETOWN +CAP_WRITE CCAR_OFLOW CCTS_OFLOW CDSR_OFLOW @@ -651,24 +651,25 @@ IPTOS_ECN_MASK IPTOS_ECN_NOTECT IPV6_BINDANY IPV6_CHECKSUM +IPV6_DONTFRAG IPV6_HOPLIMIT IPV6_JOIN_GROUP IPV6_LEAVE_GROUP IPV6_ORIGDSTADDR IPV6_PKTINFO +IPV6_RECVHOPLIMIT IPV6_RECVORIGDSTADDR IPV6_RECVPKTINFO IPV6_RECVTCLASS IPV6_TCLASS -IPV6_DONTFRAG IP_BINDANY IP_BINDMULTI +IP_DONTFRAG IP_HDRINCL IP_ORIGDSTADDR IP_RECVDSTADDR IP_RECVIF IP_RECVORIGDSTADDR -IP_DONTFRAG IP_RECVTOS IP_RECVTTL IP_RSS_LISTEN_BUCKET @@ -687,14 +688,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_GET KENV_MNAMELEN KENV_MVALLEN +KENV_SET +KENV_UNSET KERN_ARGMAX KERN_ARND KERN_BOOTFILE @@ -810,8 +811,8 @@ MADV_PROTECT MADV_RANDOM MADV_SEQUENTIAL MADV_WILLNEED -MALLOCX_ARENA MALLOCX_ALIGN +MALLOCX_ARENA MALLOCX_TCACHE MALLOCX_ZERO MAP_ALIGNED @@ -835,6 +836,7 @@ MCL_FUTURE MDMBUF MFD_ALLOW_SEALING MFD_CLOEXEC +MFD_HUGETLB MFD_HUGE_16GB MFD_HUGE_16MB MFD_HUGE_1GB @@ -848,7 +850,6 @@ MFD_HUGE_512MB MFD_HUGE_64KB MFD_HUGE_8MB MFD_HUGE_MASK -MFD_HUGETLB MINCORE_INCORE MINCORE_MODIFIED MINCORE_MODIFIED_OTHER @@ -1014,12 +1015,12 @@ PL_FLAG_BOUND PL_FLAG_CHILD PL_FLAG_EXEC PL_FLAG_EXITED -PL_FLAG_VFORKED -PL_FLAG_VFORK_DONE PL_FLAG_SA PL_FLAG_SCE PL_FLAG_SCX PL_FLAG_SI +PL_FLAG_VFORKED +PL_FLAG_VFORK_DONE PM_STR POLLINIGNEOF POLLRDBAND @@ -1063,11 +1064,11 @@ PROC_TRACE_CTL PROC_TRACE_STATUS PROC_TRAPCAP_CTL PROC_TRAPCAP_STATUS -PROC_WX_MAPPINGS_DISALLOW_EXEC -PROC_WX_MAPPINGS_PERMIT PROC_WXMAP_CTL PROC_WXMAP_STATUS PROC_WXORX_ENFORCE +PROC_WX_MAPPINGS_DISALLOW_EXEC +PROC_WX_MAPPINGS_PERMIT PROT_MAX PROT_MAX_EXTRACT PTHREAD_BARRIER_SERIAL_THREAD @@ -1136,27 +1137,27 @@ Q_SYNC RADIXCHAR RAND_MAX RB_ASKNAME -RB_SINGLE -RB_NOSYNC +RB_CDROM +RB_DFLTROOT +RB_DUMP +RB_GDB 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_MULTIPLE RB_MUTE -RB_SELFTEST +RB_NOSYNC RB_PAUSE -RB_REROOT RB_POWERCYCLE +RB_POWEROFF RB_PROBE -RB_MULTIPLE +RB_RDONLY +RB_REROOT +RB_SELFTEST +RB_SERIAL +RB_SINGLE +RB_VERBOSE REG_ASSERT REG_ATOI REG_BACKR @@ -1219,30 +1220,30 @@ RLIMIT_UMTXP RLIMIT_VMEM RLIM_INFINITY RLIM_NLIMITS -RTF_XRESOLVE +RTAX_MAX +RTF_BROADCAST +RTF_FIXEDMTU +RTF_LLDATA RTF_LLINFO -RTF_PROTO3 -RTF_PINNED RTF_LOCAL -RTF_BROADCAST RTF_MULTICAST -RTM_LOCK -RTM_RESOLVE -RTM_NEWADDR -RTM_DELADDR -RTM_IFINFO -RTM_NEWMADDR -RTM_DELMADDR -RTM_IFANNOUNCE -RTM_IEEE80211 -RTF_LLDATA -RTF_FIXEDMTU -RTM_VERSION -RTAX_MAX +RTF_PINNED +RTF_PROTO3 +RTF_XRESOLVE RTLD_NEXT RTLD_NODELETE RTLD_NOLOAD RTLD_SELF +RTM_DELADDR +RTM_DELMADDR +RTM_IEEE80211 +RTM_IFANNOUNCE +RTM_IFINFO +RTM_LOCK +RTM_NEWADDR +RTM_NEWMADDR +RTM_RESOLVE +RTM_VERSION RTP_LOOKUP RTP_PRIO_IDLE RTP_PRIO_MAX @@ -1257,25 +1258,25 @@ SCALE_PPM SCHED_FIFO SCHED_OTHER SCHED_RR -SCM_RIGHTS -SCM_TIMESTAMP -SCM_CREDS SCM_BINTIME -SCM_REALTIME +SCM_CREDS +SCM_CREDS2 SCM_MONOTONIC +SCM_REALTIME +SCM_RIGHTS +SCM_TIMESTAMP 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_OVER SCTP_ADDR_REMOVED SCTP_ADDR_UNREACHABLE -SCTP_ADDR_OVER +SCTP_ALL_ASSOC SCTP_ASCONF_SUPPORTED SCTP_ASSOCINFO SCTP_ASSOC_RESET_DENIED @@ -1288,8 +1289,8 @@ SCTP_ASSOC_SUPPORTS_MULTIBUF SCTP_ASSOC_SUPPORTS_PR SCTP_ASSOC_SUPPORTS_RE_CONFIG SCTP_AUTHINFO -SCTP_AUTH_CHUNK SCTP_AUTH_ACTIVE_KEY +SCTP_AUTH_CHUNK SCTP_AUTH_DEACTIVATE_KEY SCTP_AUTH_DELETE_KEY SCTP_AUTH_FREE_KEY @@ -1334,9 +1335,9 @@ SCTP_INITMSG SCTP_I_WANT_MAPPED_V4_ADDR SCTP_LOCAL_AUTH_CHUNKS SCTP_MAXBURST +SCTP_MAXSEG SCTP_MAX_BURST SCTP_MAX_CWND -SCTP_MAXSEG SCTP_NEXT_MSG_AVAIL SCTP_NEXT_MSG_ISCOMPLETE SCTP_NEXT_MSG_IS_NOTIFICATION @@ -1353,6 +1354,7 @@ SCTP_PEER_ADDR_THLDS SCTP_PEER_AUTH_CHUNKS SCTP_PKTDROP_SUPPORTED SCTP_PRIMARY_ADDR +SCTP_PRINFO SCTP_PR_ASSOC_STATUS SCTP_PR_SCTP_ALL SCTP_PR_SCTP_BUF @@ -1362,10 +1364,6 @@ 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 @@ -1373,6 +1371,9 @@ SCTP_RECVV_NOINFO SCTP_RECVV_NXTINFO SCTP_RECVV_RCVINFO SCTP_RECVV_RN +SCTP_REMOTE_UDP_ENCAPS_PORT +SCTP_RESTART +SCTP_REUSE_PORT SCTP_RTOINFO SCTP_SACK_IMMEDIATELY SCTP_SENDALL @@ -1460,13 +1461,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 SO_TS_CLOCK_MAX +SO_TS_DEFAULT +SO_TS_MONOTONIC +SO_TS_REALTIME +SO_TS_REALTIME_MICRO SO_USELOOPBACK SO_USER_COOKIE SO_VENDOR @@ -1610,28 +1611,28 @@ UF_SETTABLE UF_SPARSE UF_SYSTEM UMTX_ABSTIME -UMTX_OP_WAIT -UMTX_OP_WAKE -UMTX_OP_MUTEX_TRYLOCK +UMTX_OP_CV_BROADCAST +UMTX_OP_CV_SIGNAL +UMTX_OP_CV_WAIT UMTX_OP_MUTEX_LOCK +UMTX_OP_MUTEX_TRYLOCK UMTX_OP_MUTEX_UNLOCK -UMTX_OP_SET_CEILING -UMTX_OP_CV_WAIT -UMTX_OP_CV_SIGNAL -UMTX_OP_CV_BROADCAST -UMTX_OP_WAIT_UINT -UMTX_OP_RW_RDLOCK -UMTX_OP_RW_WRLOCK -UMTX_OP_RW_UNLOCK -UMTX_OP_WAIT_UINT_PRIVATE -UMTX_OP_WAKE_PRIVATE UMTX_OP_MUTEX_WAIT -UMTX_OP_NWAKE_PRIVATE UMTX_OP_MUTEX_WAKE2 +UMTX_OP_NWAKE_PRIVATE +UMTX_OP_ROBUST_LISTS +UMTX_OP_RW_RDLOCK +UMTX_OP_RW_UNLOCK +UMTX_OP_RW_WRLOCK UMTX_OP_SEM2_WAIT UMTX_OP_SEM2_WAKE +UMTX_OP_SET_CEILING UMTX_OP_SHM -UMTX_OP_ROBUST_LISTS +UMTX_OP_WAIT +UMTX_OP_WAIT_UINT +UMTX_OP_WAIT_UINT_PRIVATE +UMTX_OP_WAKE +UMTX_OP_WAKE_PRIVATE USER_BC_BASE_MAX USER_BC_DIM_MAX USER_BC_SCALE_MAX @@ -1663,8 +1664,8 @@ VDSUSP VERASE2 VLNEXT VM_TOTAL -VSTATUS VREPRINT +VSTATUS VWERASE WEXITED WNOWAIT @@ -1803,6 +1804,11 @@ _SC_XOPEN_VERSION _SC_XOPEN_XCU_VERSION _UUID_NODE_LEN __c_anonymous_cr_pid +__cap_rights_clear +__cap_rights_get +__cap_rights_init +__cap_rights_is_set +__cap_rights_set __error __xuname _sem @@ -1832,6 +1838,7 @@ auditinfo_t backtrace backtrace_symbols backtrace_symbols_fd +basename bpf_dltlist bpf_hdr bpf_insn @@ -1840,21 +1847,16 @@ bpf_stat bpf_version bsearch cap_enter -cap_getmode cap_fcntls_get cap_fcntls_limit +cap_getmode cap_ioctls_get cap_ioctls_limit -__cap_rights_init -__cap_rights_get -__cap_rights_set -__cap_rights_clear -__cap_rights_is_set +cap_rights_contains cap_rights_is_valid cap_rights_limit cap_rights_merge cap_rights_remove -cap_rights_contains cap_sandboxed cfmakesane chflags @@ -1864,9 +1866,11 @@ clearerr clock_getcpuclockid clock_getres clock_settime -copy_file_range +close_range +closefrom cmsgcred cmsghdr +copy_file_range cpuset cpuset_getid cpuset_setid @@ -1876,11 +1880,13 @@ dallocx devname_r difftime dirfd +dirname dl_iterate_phdr dl_phdr_info drand48 dup3 duplocale +eaccess endgrent endpwent endservent @@ -1890,9 +1896,11 @@ eui64_aton eui64_hostton eui64_ntoa eui64_ntohost +eventfd_read +eventfd_write exect -execvpe execvP +execvpe explicit_bzero extattr_delete_fd extattr_delete_file @@ -2003,9 +2011,9 @@ kinfo_file kinfo_getvmmap kinfo_proc kinfo_vmentry -kqueue kld_isloaded kld_load +kqueue labs lchflags lcong48 @@ -2135,38 +2143,38 @@ pthread_attr_get_np pthread_attr_getguardsize pthread_attr_getstack pthread_attr_setguardsize +pthread_barrier_destroy +pthread_barrier_init +pthread_barrier_wait pthread_barrierattr_destroy pthread_barrierattr_getpshared pthread_barrierattr_init pthread_barrierattr_setpshared pthread_barrierattr_t -pthread_barrier_destroy -pthread_barrier_init -pthread_barrier_wait pthread_cancel pthread_condattr_getclock pthread_condattr_getpshared pthread_condattr_setclock pthread_condattr_setpshared pthread_get_name_np -pthread_getname_np pthread_getaffinity_np pthread_getcpuclockid +pthread_getname_np +pthread_getschedparam pthread_getthreadid_np pthread_kill pthread_main_np pthread_mutex_consistent pthread_mutex_timedlock pthread_mutexattr_getpshared -pthread_mutexattr_setpshared pthread_mutexattr_getrobust +pthread_mutexattr_setpshared pthread_mutexattr_setrobust pthread_rwlockattr_getpshared pthread_rwlockattr_setpshared -pthread_setaffinity_np pthread_set_name_np +pthread_setaffinity_np pthread_setname_np -pthread_getschedparam pthread_setschedparam pthread_spin_destroy pthread_spin_init @@ -2205,15 +2213,14 @@ regoff_t rtprio rtprio_thread sallocx -sched_getparam -sched_getscheduler sched_get_priority_max sched_get_priority_min +sched_getparam +sched_getscheduler sched_param sched_rr_get_interval sched_setparam sched_setscheduler -sctphdr sctp_adaptation_event sctp_assoc_change sctp_assoc_t @@ -2234,16 +2241,18 @@ sctp_error_unresolv_addr sctp_event sctp_event_subscribe sctp_extrcvinfo -sctp_freepaddrs sctp_freeladdrs +sctp_freepaddrs +sctp_gen_error_cause sctp_getaddrlen sctp_getladdrs sctp_getpaddrs -sctp_gen_error_cause sctp_initmsg sctp_nxtinfo sctp_opt_info sctp_paddr_change +sctp_paramhdr +sctp_pcbinfo sctp_pdapi_event sctp_peeloff sctp_prinfo @@ -2251,20 +2260,19 @@ sctp_rcvinfo sctp_recvv sctp_recvv_rn sctp_remote_error -sctp_sender_dry_event sctp_send_failed_event +sctp_sender_dry_event sctp_sendv sctp_sendv_spa +sctp_setadaptation sctp_shutdown_event +sctp_snd_all_completes sctp_sndinfo sctp_sndrcvinfo -sctp_snd_all_completes +sctp_sockstat sctp_stream_change_event sctp_stream_reset_event -sctp_paramhdr -sctp_pcbinfo -sctp_setadaptation -sctp_sockstat +sctphdr sdallocx seed48 seekdir @@ -2350,24 +2358,16 @@ timer_t timex truncate ttyname_r -uuidgen unmount useconds_t uselocale utimensat utmpx utrace +uuidgen vm_size_t vmtotal wait4 waitid xallocx xucred -eaccess -dirname -basename -closefrom -close_range -eventfd_read -eventfd_write -IPV6_RECVHOPLIMIT diff --git a/libc-test/semver/fuchsia.txt b/libc-test/semver/fuchsia.txt index 164916ccd554f..f7bca9ab2e9cb 100644 --- a/libc-test/semver/fuchsia.txt +++ b/libc-test/semver/fuchsia.txt @@ -256,85 +256,85 @@ ERFKILL ESOCKTNOSUPPORT ESRMNT ESTRPIPE -ETH_P_LOOP -ETH_P_PUP -ETH_P_PUPAT -ETH_P_IP -ETH_P_X25 +ETH_P_1588 +ETH_P_8021AD +ETH_P_8021AH +ETH_P_8021Q +ETH_P_80221 +ETH_P_802_2 +ETH_P_802_3 +ETH_P_802_3_MIN +ETH_P_802_EX1 +ETH_P_AARP +ETH_P_AF_IUCV +ETH_P_ALL +ETH_P_AOE +ETH_P_ARCNET ETH_P_ARP -ETH_P_BPQ -ETH_P_IEEEPUP -ETH_P_IEEEPUPAT +ETH_P_ATALK +ETH_P_ATMFATE +ETH_P_ATMMPOA +ETH_P_AX25 ETH_P_BATMAN +ETH_P_BPQ +ETH_P_CAIF +ETH_P_CAN +ETH_P_CANFD +ETH_P_CONTROL +ETH_P_CUST +ETH_P_DDCMP ETH_P_DEC +ETH_P_DIAG 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_DSA +ETH_P_ECONET +ETH_P_EDSA +ETH_P_FCOE +ETH_P_FIP +ETH_P_HDLC +ETH_P_IEEE802154 +ETH_P_IEEEPUP +ETH_P_IEEEPUPAT +ETH_P_IP ETH_P_IPV6 -ETH_P_PAUSE -ETH_P_SLOW -ETH_P_WCCP -ETH_P_MPLS_UC +ETH_P_IPX +ETH_P_IRDA +ETH_P_LAT +ETH_P_LINK_CTL +ETH_P_LOCALTALK +ETH_P_LOOP +ETH_P_LOOPBACK +ETH_P_MOBITEX ETH_P_MPLS_MC -ETH_P_ATMMPOA +ETH_P_MPLS_UC +ETH_P_MVRP +ETH_P_PAE +ETH_P_PAUSE +ETH_P_PHONET +ETH_P_PPPTALK ETH_P_PPP_DISC +ETH_P_PPP_MP 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_PUP +ETH_P_PUPAT 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_RARP +ETH_P_SCA +ETH_P_SLOW 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_TDLS +ETH_P_TEB +ETH_P_TIPC ETH_P_TRAILER -ETH_P_PHONET -ETH_P_IEEE802154 -ETH_P_CAIF +ETH_P_TR_802_2 +ETH_P_WAN_PPP +ETH_P_WCCP +ETH_P_X25 ETIME ETOOMANYREFS EUCLEAN @@ -396,6 +396,7 @@ GLOB_NOESCAPE GLOB_NOMATCH GLOB_NOSORT GLOB_NOSPACE +HUGETLB_FLAG_ENCODE_SHIFT IFF_ALLMULTI IFF_AUTOMEDIA IFF_BROADCAST @@ -460,9 +461,9 @@ IPV6_RECVPKTINFO IPV6_RECVTCLASS IPV6_TCLASS IP_FREEBIND -IP_TOS -IP_RECVTOS IP_HDRINCL +IP_RECVTOS +IP_TOS IP_TRANSPARENT ITIMER_PROF ITIMER_REAL @@ -514,6 +515,7 @@ MAP_EXECUTABLE MAP_FILE MAP_GROWSDOWN MAP_HUGETLB +MAP_HUGE_SHIFT MAP_LOCKED MAP_NONBLOCK MAP_NORESERVE @@ -1067,10 +1069,10 @@ T_FMT T_FMT_AMPM UTIME_NOW UTIME_OMIT -VSWTC VDISCARD VLNEXT VREPRINT +VSWTC VT0 VT1 VTDLY @@ -1157,8 +1159,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 @@ -1475,5 +1477,3 @@ utimensat vhangup vmsplice waitid -HUGETLB_FLAG_ENCODE_SHIFT -MAP_HUGE_SHIFT diff --git a/libc-test/semver/hermit.txt b/libc-test/semver/hermit.txt index ef3f1894fbb89..ba44a7d2246ca 100644 --- a/libc-test/semver/hermit.txt +++ b/libc-test/semver/hermit.txt @@ -1,16 +1,23 @@ AF_INET AF_INET6 -CLOCK_REALTIME CLOCK_MONOTONIC -DT_UNKNOWN -DT_FIFO +CLOCK_REALTIME +DT_BLK DT_CHR DT_DIR -DT_BLK -DT_REG +DT_FIFO DT_LNK +DT_REG DT_SOCK +DT_UNKNOWN DT_WHT +E2BIG +EACCES +EADDRINUSE +EADDRNOTAVAIL +EADV +EAFNOSUPPORT +EAGAIN EAI_AGAIN EAI_BADFLAGS EAI_FAIL @@ -18,230 +25,223 @@ EAI_FAMILY EAI_MEMORY EAI_NODATA EAI_NONAME +EAI_OVERFLOW EAI_SERVICE EAI_SOCKTYPE EAI_SYSTEM -EAI_OVERFLOW -EFD_SEMAPHORE -EFD_NONBLOCK +EALREADY +EBADE +EBADF +EBADFD +EBADMSG +EBADR +EBADRQC +EBADSLT +EBFONT +EBUSY +ECANCELED +ECHILD +ECHRNG +ECOMM +ECONNABORTED +ECONNREFUSED +ECONNRESET +EDEADLK +EDEADLOCK +EDESTADDRREQ +EDOM +EDOTDOT +EDQUOT +EEXIST +EFAULT +EFBIG EFD_CLOEXEC +EFD_NONBLOCK +EFD_SEMAPHORE +EHOSTDOWN +EHOSTUNREACH +EHWPOISON +EIDRM +EILSEQ +EINPROGRESS +EINTR +EINVAL +EIO +EISCONN +EISDIR +EISNAM +EKEYEXPIRED +EKEYREJECTED +EKEYREVOKED +EL2HLT +EL2NSYNC +EL3HLT +EL3RST +ELIBACC +ELIBBAD +ELIBEXEC +ELIBMAX +ELIBSCN +ELNRNG +ELOOP +EMEDIUMTYPE +EMFILE +EMLINK +EMSGSIZE +EMULTIHOP +ENAMETOOLONG +ENAVAIL +ENETDOWN +ENETRESET +ENETUNREACH +ENFILE +ENOANO +ENOBUFS +ENOCSI +ENODATA +ENODEV +ENOENT +ENOEXEC +ENOKEY +ENOLCK +ENOLINK +ENOMEDIUM +ENOMEM +ENOMSG +ENONET +ENOPKG +ENOPROTOOPT +ENOSPC +ENOSR +ENOSTR +ENOSYS +ENOTBLK +ENOTCONN +ENOTDIR +ENOTEMPTY +ENOTNAM +ENOTRECOVERABLE +ENOTSOCK +ENOTTY +ENOTUNIQ +ENXIO +EOPNOTSUPP +EOVERFLOW +EOWNERDEAD +EPERM +EPFNOSUPPORT +EPIPE +EPROTO +EPROTONOSUPPORT +EPROTOTYPE +ERANGE +EREMCHG +EREMOTE +EREMOTEIO +ERESTART +ERFKIL +EROFS +ESHUTDOWN +ESOCKTNOSUPPORT +ESPIPE +ESRCH +ESRMNT +ESTALE +ESTRPIPE +ETIME +ETIMEDOUT +ETOOMANYREFS +ETXTBSY +EUCLEAN +EUNATCH +EUSERS +EWOULDBLOCK +EXDEV +EXFULL +FD_CLOEXEC +FIONBIO +FUTEX_RELATIVE_TIMEOUT F_DUPFD F_GETFD -F_SETFD F_GETFL +F_SETFD F_SETFL -FD_CLOEXEC -FIONBIO -FUTEX_RELATIVE_TIMEOUT -IP_TOS -IP_TTL -IP_ADD_MEMBERSHIP -IP_DROP_MEMBERSHIP -IP_MULTICAST_TTL -IP_MULTICAST_LOOP IPPROTO_IP +IPPROTO_IPV6 IPPROTO_TCP IPPROTO_UDP -IPPROTO_IPV6 IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP IPV6_MULTICAST_LOOP IPV6_V6ONLY +IP_ADD_MEMBERSHIP +IP_DROP_MEMBERSHIP +IP_MULTICAST_LOOP +IP_MULTICAST_TTL +IP_TOS +IP_TTL MSG_PEEK -O_RDONLY -O_WRONLY -O_RDWR +O_APPEND O_CREAT +O_DIRECTORY O_EXCL -O_TRUNC -O_APPEND O_NONBLOCK -O_DIRECTORY -POLLIN -POLLPRI -POLLOUT +O_RDONLY +O_RDWR +O_TRUNC +O_WRONLY POLLERR POLLHUP +POLLIN POLLNVAL -POLLRDNORM +POLLOUT +POLLPRI POLLRDBAND -POLLWRNORM -POLLWRBAND POLLRDHUP -S_IRWXU -S_IRUSR -S_IWUSR -S_IXUSR -S_IRWXG -S_IRGRP -S_IWGRP -S_IXGRP -S_IRWXO -S_IROTH -S_IWOTH -S_IXOTH -S_IFMT -S_IFSOCK -S_IFLNK -S_IFREG -S_IFBLK -S_IFDIR -S_IFCHR -S_IFIFO +POLLRDNORM +POLLWRBAND +POLLWRNORM SHUT_RD -SHUT_WR SHUT_RDWR -SO_REUSEADDR -SO_KEEPALIVE +SHUT_WR +SOCK_CLOEXEC +SOCK_DGRAM +SOCK_NONBLOCK +SOCK_STREAM +SOL_SOCKET SO_BROADCAST +SO_ERROR +SO_KEEPALIVE SO_LINGER -SO_SNDBUF SO_RCVBUF -SO_SNDTIMEO SO_RCVTIMEO -SO_ERROR -SOCK_STREAM -SOCK_DGRAM -SOCK_NONBLOCK -SOCK_CLOEXEC -SOL_SOCKET +SO_REUSEADDR +SO_SNDBUF +SO_SNDTIMEO +STDERR_FILENO STDIN_FILENO STDOUT_FILENO -STDERR_FILENO +S_IFBLK +S_IFCHR +S_IFDIR +S_IFIFO +S_IFLNK +S_IFMT +S_IFREG +S_IFSOCK +S_IRGRP +S_IROTH +S_IRUSR +S_IRWXG +S_IRWXO +S_IRWXU +S_IWGRP +S_IWOTH +S_IWUSR +S_IXGRP +S_IXOTH +S_IXUSR TCP_NODELAY -EPERM -ENOENT -ESRCH -EINTR -EIO -ENXIO -E2BIG -ENOEXEC -EBADF -ECHILD -EAGAIN -ENOMEM -EACCES -EFAULT -ENOTBLK -EBUSY -EEXIST -EXDEV -ENODEV -ENOTDIR -EISDIR -EINVAL -ENFILE -EMFILE -ENOTTY -ETXTBSY -EFBIG -ENOSPC -ESPIPE -EROFS -EMLINK -EPIPE -EDOM -ERANGE -EDEADLK -ENAMETOOLONG -ENOLCK -ENOSYS -ENOTEMPTY -ELOOP -EWOULDBLOCK -ENOMSG -EIDRM -ECHRNG -EL2NSYNC -EL3HLT -EL3RST -ELNRNG -EUNATCH -ENOCSI -EL2HLT -EBADE -EBADR -EXFULL -ENOANO -EBADRQC -EBADSLT -EDEADLOCK -EBFONT -ENOSTR -ENODATA -ETIME -ENOSR -ENONET -ENOPKG -EREMOTE -ENOLINK -EADV -ESRMNT -ECOMM -EPROTO -EMULTIHOP -EDOTDOT -EBADMSG -EOVERFLOW -ENOTUNIQ -EBADFD -EREMCHG -ELIBACC -ELIBBAD -ELIBSCN -ELIBMAX -ELIBEXEC -EILSEQ -ERESTART -ESTRPIPE -EUSERS -ENOTSOCK -EDESTADDRREQ -EMSGSIZE -EPROTOTYPE -ENOPROTOOPT -EPROTONOSUPPORT -ESOCKTNOSUPPORT -EOPNOTSUPP -EPFNOSUPPORT -EAFNOSUPPORT -EADDRINUSE -EADDRNOTAVAIL -ENETDOWN -ENETUNREACH -ENETRESET -ECONNABORTED -ECONNRESET -ENOBUFS -EISCONN -ENOTCONN -ESHUTDOWN -ETOOMANYREFS -ETIMEDOUT -ECONNREFUSED -EHOSTDOWN -EHOSTUNREACH -EALREADY -EINPROGRESS -ESTALE -EUCLEAN -ENOTNAM -ENAVAIL -EISNAM -EREMOTEIO -EDQUOT -ENOMEDIUM -EMEDIUMTYPE -ECANCELED -ENOKEY -EKEYEXPIRED -EKEYREVOKED -EKEYREJECTED -EOWNERDEAD -ENOTRECOVERABLE -ERFKIL -EHWPOISON addrinfo dirent64 in6_addr @@ -253,7 +253,6 @@ sockaddr_in sockaddr_in6 sockaddr_storage stat -timespec sys_abort sys_accept sys_alloc @@ -300,3 +299,4 @@ sys_stat sys_unlink sys_write sys_writev +timespec diff --git a/libc-test/semver/linux-aarch64.txt b/libc-test/semver/linux-aarch64.txt index a4ab1b2e568e0..7e2566b6f0b1a 100644 --- a/libc-test/semver/linux-aarch64.txt +++ b/libc-test/semver/linux-aarch64.txt @@ -94,5 +94,5 @@ flock64 max_align_t mcontext_t ucontext_t -user_regs_struct user_fpsimd_struct +user_regs_struct diff --git a/libc-test/semver/linux-gnu-loongarch64.txt b/libc-test/semver/linux-gnu-loongarch64.txt index 4d60496082024..dd1781a03504e 100644 --- a/libc-test/semver/linux-gnu-loongarch64.txt +++ b/libc-test/semver/linux-gnu-loongarch64.txt @@ -1,6 +1,6 @@ PTRACE_GETFPREGS -PTRACE_SETFPREGS PTRACE_GETFPXREGS -PTRACE_SETFPXREGS PTRACE_GETREGS +PTRACE_SETFPREGS +PTRACE_SETFPXREGS PTRACE_SETREGS diff --git a/libc-test/semver/linux-gnu-riscv64gc.txt b/libc-test/semver/linux-gnu-riscv64gc.txt index 4d60496082024..dd1781a03504e 100644 --- a/libc-test/semver/linux-gnu-riscv64gc.txt +++ b/libc-test/semver/linux-gnu-riscv64gc.txt @@ -1,6 +1,6 @@ PTRACE_GETFPREGS -PTRACE_SETFPREGS PTRACE_GETFPXREGS -PTRACE_SETFPXREGS PTRACE_GETREGS +PTRACE_SETFPREGS +PTRACE_SETFPXREGS PTRACE_SETREGS diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 59d956fa42d99..cba0384cb191d 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -31,9 +31,9 @@ BPF_FS_MAGIC BTRFS_SUPER_MAGIC CGROUP2_SUPER_MAGIC CGROUP_SUPER_MAGIC -CLONE_NEWTIME CLONE_CLEAR_SIGHAND CLONE_INTO_CGROUP +CLONE_NEWTIME CODA_SUPER_MAGIC CRAMFS_MAGIC DEAD_PROCESS @@ -349,9 +349,9 @@ O_FSYNC PF_IB PF_MPLS PF_XDP +PROC_SUPER_MAGIC PR_SET_VMA PR_SET_VMA_ANON_NAME -PROC_SUPER_MAGIC PTHREAD_MUTEX_ADAPTIVE_NP PTRACE_GET_SYSCALL_INFO PTRACE_SYSCALL_INFO_ENTRY @@ -417,12 +417,12 @@ STATX_ATIME STATX_ATTR_APPEND STATX_ATTR_AUTOMOUNT STATX_ATTR_COMPRESSED +STATX_ATTR_DAX STATX_ATTR_ENCRYPTED STATX_ATTR_IMMUTABLE -STATX_ATTR_NODUMP STATX_ATTR_MOUNT_ROOT +STATX_ATTR_NODUMP STATX_ATTR_VERITY -STATX_ATTR_DAX STATX_BASIC_STATS STATX_BLOCKS STATX_BTIME @@ -476,31 +476,31 @@ 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 +XDP_RING_NEED_WAKEUP +XDP_RX_RING +XDP_SHARED_UMEM +XDP_STATISTICS +XDP_TX_RING +XDP_UMEM_COMPLETION_RING +XDP_UMEM_FILL_RING +XDP_UMEM_PGOFF_COMPLETION_RING +XDP_UMEM_PGOFF_FILL_RING +XDP_UMEM_REG +XDP_UMEM_UNALIGNED_CHUNK_FLAG +XDP_USE_NEED_WAKEUP +XDP_USE_SG +XDP_ZEROCOPY XENFS_SUPER_MAGIC XFS_SUPER_MAGIC +XSK_UNALIGNED_BUF_ADDR_MASK +XSK_UNALIGNED_BUF_OFFSET_SHIFT _CS_GNU_LIBC_VERSION _CS_GNU_LIBPTHREAD_VERSION _CS_PATH @@ -602,39 +602,49 @@ aio_return aio_suspend aio_write aiocb +asctime_r backtrace clock_adjtime +close_range confstr copy_file_range ctermid +ctime_r +dirname dlinfo dlmopen +eaccess endutxent +epoll_pwait2 +euidaccess +execveat explicit_bzero fanotify_event_info_error fanotify_event_info_header fanotify_event_info_pidfd fgetgrent_r +fgetpwent_r fgetspent_r futimes getauxval getentropy getgrent_r getloadavg +getmntent_r getpt getpwent_r -fgetpwent_r getpwnam_r getspent_r getutxent getutxid getutxline glob -glob_t glob64 glob64_t +glob_t globfree globfree64 +gnu_basename iocb lio_listio mallinfo @@ -651,9 +661,10 @@ ntp_adjtime ntp_gettime ntptimeval open_wmemstream +posix_basename posix_spawn_file_actions_addchdir_np -posix_spawn_file_actions_addfchdir_np posix_spawn_file_actions_addclosefrom_np +posix_spawn_file_actions_addfchdir_np posix_spawn_file_actions_addtcsetpgrp_np preadv2 preadv64 @@ -668,6 +679,8 @@ pthread_rwlockattr_getpshared pthread_rwlockattr_setkind_np ptrace_peeksiginfo_args ptrace_syscall_info +putgrent +putpwent pututxline pwritev2 pwritev64 @@ -681,21 +694,8 @@ setxattr sgetspent_r statx statx_timestamp +tcp_info timex utmpname utmpx utmpxname -euidaccess -eaccess -asctime_r -ctime_r -dirname -posix_basename -gnu_basename -getmntent_r -putpwent -putgrent -execveat -close_range -epoll_pwait2 -tcp_info diff --git a/libc-test/semver/linux-loongarch64.txt b/libc-test/semver/linux-loongarch64.txt index 9dddfd962d2b7..2e2b66b83bf42 100644 --- a/libc-test/semver/linux-loongarch64.txt +++ b/libc-test/semver/linux-loongarch64.txt @@ -40,7 +40,6 @@ BPF_XOR CIBAUD FICLONE FICLONERANGE -flock64 KEYCTL_CAPABILITIES KEYCTL_CAPS0_BIG_KEY KEYCTL_CAPS0_CAPABILITIES @@ -94,8 +93,8 @@ SO_GET_FILTER SO_INCOMING_CPU SO_LOCK_FILTER SO_MAX_PACING_RATE -SO_NO_CHECK SO_NOFCS +SO_NO_CHECK SO_PEERNAME SO_PRIORITY SO_PROTOCOL @@ -123,14 +122,15 @@ SYS_shmctl SYS_shmdt SYS_shmget SYS_sync_file_range -termios2 TIOCCBRK TIOCGRS485 TIOCSBRK TIOCSRS485 XCASE +flock64 max_align_t mcontext_t +termios2 ucontext_t -user_regs_struct user_fp_struct +user_regs_struct diff --git a/libc-test/semver/linux-riscv64gc.txt b/libc-test/semver/linux-riscv64gc.txt index 2691801511782..28a115b234638 100644 --- a/libc-test/semver/linux-riscv64gc.txt +++ b/libc-test/semver/linux-riscv64gc.txt @@ -3,6 +3,13 @@ B3000000 B3500000 B4000000 CIBAUD +COMPAT_HWCAP_ISA_A +COMPAT_HWCAP_ISA_C +COMPAT_HWCAP_ISA_D +COMPAT_HWCAP_ISA_F +COMPAT_HWCAP_ISA_I +COMPAT_HWCAP_ISA_M +COMPAT_HWCAP_ISA_V KEYCTL_CAPABILITIES KEYCTL_CAPS0_BIG_KEY KEYCTL_CAPS0_CAPABILITIES @@ -71,10 +78,3 @@ TIOCSRS485 flock64 fsblkcnt64_t fsfilcnt64_t -COMPAT_HWCAP_ISA_I -COMPAT_HWCAP_ISA_M -COMPAT_HWCAP_ISA_A -COMPAT_HWCAP_ISA_F -COMPAT_HWCAP_ISA_D -COMPAT_HWCAP_ISA_C -COMPAT_HWCAP_ISA_V diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 6c10f1234226b..e75683e5dc5d5 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -184,8 +184,8 @@ AT_REMOVEDIR AT_SECURE AT_SYMLINK_FOLLOW AT_SYMLINK_NOFOLLOW -AT_UID AT_SYSINFO_EHDR +AT_UID B1000000 B1152000 B1500000 @@ -205,14 +205,27 @@ BSDLY BUFSIZ BUS_ADRALN BUS_ADRERR -BUS_OBJERR -BUS_MCEERR_AR BUS_MCEERR_AO +BUS_MCEERR_AR +BUS_OBJERR CANFD_BRS CANFD_ESI CANFD_MAX_DLC CANFD_MAX_DLEN CANFD_MTU +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 CAN_BCM CAN_EFF_FLAG CAN_EFF_ID_BITS @@ -228,32 +241,19 @@ CAN_MCNET CAN_MTU CAN_NPROTO CAN_RAW +CAN_RAW_ERR_FILTER +CAN_RAW_FD_FRAMES +CAN_RAW_FILTER CAN_RAW_FILTER_MAX +CAN_RAW_JOIN_FILTERS +CAN_RAW_LOOPBACK +CAN_RAW_RECV_OWN_MSGS +CAN_RAW_XL_FRAMES CAN_RTR_FLAG CAN_SFF_ID_BITS CAN_SFF_MASK CAN_TP16 CAN_TP20 -CAN_RAW_FILTER -CAN_RAW_ERR_FILTER -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 @@ -478,10 +478,10 @@ EM_FIREPATH EM_FR20 EM_FR30 EM_FX66 +EM_H8S EM_H8_300 EM_H8_300H EM_H8_500 -EM_H8S EM_HUANY EM_IA_64 EM_JAVELIN @@ -541,9 +541,9 @@ ENOLINK ENOMEDIUM ENONET ENOPKG -ENOTBLK ENOSR ENOSTR +ENOTBLK ENOTNAM ENOTRECOVERABLE ENOTSUP @@ -668,8 +668,8 @@ ETH_P_WAN_PPP ETH_P_WCCP ETH_P_X25 ETH_ZLEN -ETOOMANYREFS ETIME +ETOOMANYREFS ET_CORE ET_DYN ET_EXEC @@ -797,14 +797,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_SETFLAGS FS_IOC32_SETVERSION +FS_IOC_GETFLAGS +FS_IOC_GETVERSION +FS_IOC_SETFLAGS +FS_IOC_SETVERSION FUTEX_BITSET_MATCH_ANY FUTEX_CLOCK_REALTIME FUTEX_CMD_MASK @@ -833,9 +833,9 @@ FUTEX_TID_MASK FUTEX_TRYLOCK_PI FUTEX_UNLOCK_PI FUTEX_WAIT +FUTEX_WAITERS FUTEX_WAIT_BITSET FUTEX_WAIT_REQUEUE_PI -FUTEX_WAITERS FUTEX_WAKE FUTEX_WAKE_BITSET FUTEX_WAKE_OP @@ -882,40 +882,30 @@ GLOB_NOESCAPE GLOB_NOMATCH GLOB_NOSORT GLOB_NOSPACE +GRND_INSECURE 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_NONE +HWTSTAMP_FILTER_NTP_ALL +HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ 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_DELAY_REQ +HWTSTAMP_FILTER_PTP_V2_EVENT +HWTSTAMP_FILTER_PTP_V2_L2_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_L4_DELAY_REQ +HWTSTAMP_FILTER_PTP_V2_L4_EVENT +HWTSTAMP_FILTER_PTP_V2_L4_SYNC HWTSTAMP_FILTER_PTP_V2_SYNC -HWTSTAMP_FILTER_PTP_V2_DELAY_REQ -HWTSTAMP_FILTER_NTP_ALL +HWTSTAMP_FILTER_SOME +HWTSTAMP_TX_OFF +HWTSTAMP_TX_ON +HWTSTAMP_TX_ONESTEP_P2P +HWTSTAMP_TX_ONESTEP_SYNC 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 @@ -946,20 +936,12 @@ IFF_LOWER_UP IFF_MASTER IFF_MULTICAST IFF_MULTI_QUEUE -IFF_NO_CARRIER +IFF_NAPI +IFF_NAPI_FRAGS 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_CARRIER IFF_NO_PI IFF_ONE_QUEUE IFF_PERSIST @@ -970,8 +952,6 @@ IFF_RUNNING IFF_SLAVE IFF_TAP IFF_TUN -IFF_NAPI -IFF_NAPI_FRAGS IFF_TUN_EXCL IFF_UP IFF_VNET_HDR @@ -987,8 +967,8 @@ IFLA_CARRIER_UP_COUNT IFLA_COST IFLA_EVENT IFLA_EXT_MASK -IFLA_GRO_MAX_SIZE IFLA_GROUP +IFLA_GRO_MAX_SIZE IFLA_GSO_MAX_SEGS IFLA_GSO_MAX_SIZE IFLA_IFALIAS @@ -1044,6 +1024,16 @@ IFLA_VF_PORTS IFLA_WEIGHT IFLA_WIRELESS IFLA_XDP +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 IMAXBEL INPUT_PROP_CNT INPUT_PROP_MAX @@ -1060,9 +1050,9 @@ IN_DELETE_SELF IN_DONT_FOLLOW IN_EXCL_UNLINK IN_IGNORED -IN_MASK_CREATE -IN_MASK_ADD IN_ISDIR +IN_MASK_ADD +IN_MASK_CREATE IN_MODIFY IN_MOVE IN_MOVED_FROM @@ -1277,1490 +1267,1506 @@ ITIMER_PROF ITIMER_REAL ITIMER_VIRTUAL IUTF8 -J1939_IDLE_ADDR -J1939_MAX_UNICAST_ADDR -J1939_NLA_BYTES_ACKED -J1939_NLA_DEST_ADDR -J1939_NLA_DEST_NAME -J1939_NLA_PAD -J1939_NLA_PGN -J1939_NLA_SRC_ADDR -J1939_NLA_SRC_NAME -J1939_NLA_TOTAL_SIZE -J1939_NO_ADDR -J1939_NO_NAME -J1939_NO_PGN -J1939_PGN_ADDRESS_CLAIMED -J1939_PGN_ADDRESS_COMMANDED -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 -KEYCTL_DESCRIBE -KEYCTL_GET_KEYRING_ID -KEYCTL_GET_PERSISTENT -KEYCTL_GET_SECURITY -KEYCTL_INSTANTIATE -KEYCTL_INSTANTIATE_IOV -KEYCTL_INVALIDATE -KEYCTL_JOIN_SESSION_KEYRING -KEYCTL_LINK -KEYCTL_NEGATE -KEYCTL_READ -KEYCTL_REJECT -KEYCTL_REVOKE -KEYCTL_SEARCH -KEYCTL_SESSION_TO_PARENT -KEYCTL_SETPERM -KEYCTL_SET_REQKEY_KEYRING -KEYCTL_SET_TIMEOUT -KEYCTL_UNLINK -KEYCTL_UPDATE -KEY_CNT -KEY_MAX -KEY_REQKEY_DEFL_DEFAULT -KEY_REQKEY_DEFL_GROUP_KEYRING -KEY_REQKEY_DEFL_NO_CHANGE -KEY_REQKEY_DEFL_PROCESS_KEYRING -KEY_REQKEY_DEFL_REQUESTOR_KEYRING -KEY_REQKEY_DEFL_SESSION_KEYRING -KEY_REQKEY_DEFL_THREAD_KEYRING -KEY_REQKEY_DEFL_USER_KEYRING -KEY_REQKEY_DEFL_USER_SESSION_KEYRING -KEY_SPEC_GROUP_KEYRING -KEY_SPEC_PROCESS_KEYRING -KEY_SPEC_REQKEY_AUTH_KEY -KEY_SPEC_REQUESTOR_KEYRING -KEY_SPEC_SESSION_KEYRING -KEY_SPEC_THREAD_KEYRING -KEY_SPEC_USER_KEYRING -KEY_SPEC_USER_SESSION_KEYRING -LC_COLLATE -LC_COLLATE_MASK -LC_CTYPE -LC_CTYPE_MASK -LC_MESSAGES -LC_MESSAGES_MASK -LC_MONETARY -LC_MONETARY_MASK -LC_NUMERIC -LC_NUMERIC_MASK -LC_TIME -LC_TIME_MASK -LED_CNT -LED_MAX -LINUX_REBOOT_CMD_CAD_OFF -LINUX_REBOOT_CMD_CAD_ON -LINUX_REBOOT_CMD_HALT -LINUX_REBOOT_CMD_KEXEC -LINUX_REBOOT_CMD_POWER_OFF -LINUX_REBOOT_CMD_RESTART -LINUX_REBOOT_CMD_RESTART2 -LINUX_REBOOT_CMD_SW_SUSPEND -LINUX_REBOOT_MAGIC1 -LINUX_REBOOT_MAGIC2 -LINUX_REBOOT_MAGIC2A -LINUX_REBOOT_MAGIC2B -LINUX_REBOOT_MAGIC2C -LOG_AUTHPRIV -LOG_CRON -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 -MAP_FIXED_NOREPLACE -MAP_GROWSDOWN -MAP_HUGETLB -MAP_HUGE_16GB -MAP_HUGE_16MB -MAP_HUGE_1GB -MAP_HUGE_1MB -MAP_HUGE_256MB -MAP_HUGE_2GB -MAP_HUGE_2MB -MAP_HUGE_32MB -MAP_HUGE_512KB -MAP_HUGE_512MB -MAP_HUGE_64KB -MAP_HUGE_8MB -MAP_HUGE_MASK -MAP_HUGE_SHIFT -MAP_LOCKED -MAP_NONBLOCK -MAP_NORESERVE -MAP_POPULATE -MAP_SHARED_VALIDATE -MAP_STACK -MAP_TYPE -MAXTTL -MAX_ADDR_LEN -MAX_IPOPTLEN -MCAST_BLOCK_SOURCE -MCAST_EXCLUDE -MCAST_INCLUDE -MCAST_JOIN_GROUP -MCAST_JOIN_SOURCE_GROUP -MCAST_LEAVE_GROUP -MCAST_LEAVE_SOURCE_GROUP -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 -MNT_EXPIRE -MNT_FORCE -MODULE_INIT_IGNORE_MODVERSIONS -MODULE_INIT_IGNORE_VERMAGIC -MON_1 -MON_10 -MON_11 -MON_12 -MON_2 -MON_3 -MON_4 -MON_5 -MON_6 -MON_7 -MON_8 -MON_9 -MREMAP_FIXED -MREMAP_MAYMOVE -MSC_CNT -MSC_MAX -MSG_CMSG_CLOEXEC -MSG_CONFIRM -MSG_COPY -MSG_DONTWAIT -MSG_ERRQUEUE -MSG_EXCEPT -MSG_FASTOPEN -MSG_FIN -MSG_INFO -MSG_MORE -MSG_NOERROR -MSG_NOSIGNAL -MSG_NOTIFICATION -MSG_RST -MSG_STAT -MSG_SYN -MSG_WAITFORONE -MSG_ZEROCOPY -MS_ACTIVE -MS_BIND -MS_DIRSYNC -MS_I_VERSION -MS_KERNMOUNT -MS_LAZYTIME -MS_MANDLOCK -MS_MGC_MSK -MS_MGC_VAL -MS_MOVE -MS_NOATIME -MS_NODEV -MS_NODIRATIME -MS_NOEXEC -MS_NOSUID -MS_NOUSER -MS_POSIXACL -MS_PRIVATE -MS_RDONLY -MS_REC -MS_REMOUNT -MS_RMT_MASK -MS_SHARED -MS_SILENT -MS_SLAVE -MS_STRICTATIME -MS_SYNCHRONOUS -MS_UNBINDABLE -NDA_CACHEINFO -NDA_DST -NDA_IFINDEX -NDA_PORT -NDA_PROBES -NDA_UNSPEC -NDA_VLAN -NDA_VNI -NETLINK_ADD_MEMBERSHIP -NETLINK_AUDIT -NETLINK_BROADCAST_ERROR -NETLINK_CAP_ACK -NETLINK_CONNECTOR -NETLINK_CRYPTO -NETLINK_DNRTMSG -NETLINK_DROP_MEMBERSHIP -NETLINK_ECRYPTFS -NETLINK_EXT_ACK -NETLINK_FIB_LOOKUP -NETLINK_FIREWALL -NETLINK_GENERIC -NETLINK_GET_STRICT_CHK -NETLINK_INET_DIAG -NETLINK_IP6_FW -NETLINK_ISCSI -NETLINK_KOBJECT_UEVENT -NETLINK_LISTEN_ALL_NSID -NETLINK_LIST_MEMBERSHIPS -NETLINK_NETFILTER -NETLINK_NFLOG -NETLINK_NO_ENOBUFS -NETLINK_PKTINFO -NETLINK_RDMA -NETLINK_ROUTE -NETLINK_RX_RING -NETLINK_SCSITRANSPORT -NETLINK_SELINUX -NETLINK_SOCK_DIAG -NETLINK_TX_RING -NETLINK_UNUSED -NETLINK_USERSOCK -NETLINK_XFRM -NFNETLINK_V0 -NFNLGRP_ACCT_QUOTA -NFNLGRP_CONNTRACK_DESTROY -NFNLGRP_CONNTRACK_EXP_DESTROY -NFNLGRP_CONNTRACK_EXP_NEW -NFNLGRP_CONNTRACK_EXP_UPDATE -NFNLGRP_CONNTRACK_NEW -NFNLGRP_CONNTRACK_UPDATE -NFNLGRP_NFTABLES -NFNLGRP_NONE -NFNL_MSG_BATCH_BEGIN -NFNL_MSG_BATCH_END -NFNL_SUBSYS_ACCT -NFNL_SUBSYS_COUNT -NFNL_SUBSYS_CTHELPER -NFNL_SUBSYS_CTNETLINK -NFNL_SUBSYS_CTNETLINK_EXP -NFNL_SUBSYS_CTNETLINK_TIMEOUT -NFNL_SUBSYS_IPSET -NFNL_SUBSYS_NFTABLES -NFNL_SUBSYS_NFT_COMPAT -NFNL_SUBSYS_NONE -NFNL_SUBSYS_OSF -NFNL_SUBSYS_QUEUE -NFNL_SUBSYS_ULOG -NFPROTO_ARP -NFPROTO_BRIDGE -NFPROTO_DECNET -NFPROTO_IPV4 -NFPROTO_IPV6 -NFPROTO_NUMPROTO -NFPROTO_UNSPEC -NFQA_CAP_LEN -NFQA_CFG_CMD -NFQA_CFG_FLAGS -NFQA_CFG_F_CONNTRACK -NFQA_CFG_F_FAIL_OPEN -NFQA_CFG_F_GSO -NFQA_CFG_F_MAX -NFQA_CFG_F_SECCTX -NFQA_CFG_F_UID_GID -NFQA_CFG_MASK -NFQA_CFG_PARAMS -NFQA_CFG_QUEUE_MAXLEN -NFQA_CFG_UNSPEC -NFQA_CT -NFQA_CT_INFO -NFQA_EXP -NFQA_GID -NFQA_HWADDR -NFQA_IFINDEX_INDEV -NFQA_IFINDEX_OUTDEV -NFQA_IFINDEX_PHYSINDEV -NFQA_IFINDEX_PHYSOUTDEV -NFQA_MARK -NFQA_PACKET_HDR -NFQA_PAYLOAD -NFQA_SECCTX -NFQA_SKB_CSUMNOTREADY -NFQA_SKB_CSUM_NOTVERIFIED -NFQA_SKB_GSO -NFQA_SKB_INFO -NFQA_TIMESTAMP -NFQA_UID -NFQA_UNSPEC -NFQA_VERDICT_HDR -NFQNL_CFG_CMD_BIND -NFQNL_CFG_CMD_NONE -NFQNL_CFG_CMD_PF_BIND -NFQNL_CFG_CMD_PF_UNBIND -NFQNL_CFG_CMD_UNBIND -NFQNL_COPY_META -NFQNL_COPY_NONE -NFQNL_COPY_PACKET -NFQNL_MSG_CONFIG -NFQNL_MSG_PACKET -NFQNL_MSG_VERDICT -NFQNL_MSG_VERDICT_BATCH -NFULA_CFG_CMD -NFULA_CFG_FLAGS -NFULA_CFG_MODE -NFULA_CFG_NLBUFSIZ -NFULA_CFG_QTHRESH -NFULA_CFG_TIMEOUT -NFULA_CFG_UNSPEC -NFULA_CT -NFULA_CT_INFO -NFULA_GID -NFULA_HWADDR -NFULA_HWHEADER -NFULA_HWLEN -NFULA_HWTYPE -NFULA_IFINDEX_INDEV -NFULA_IFINDEX_OUTDEV -NFULA_IFINDEX_PHYSINDEV -NFULA_IFINDEX_PHYSOUTDEV -NFULA_MARK -NFULA_PACKET_HDR -NFULA_PAYLOAD -NFULA_PREFIX -NFULA_SEQ -NFULA_SEQ_GLOBAL -NFULA_TIMESTAMP -NFULA_UID -NFULA_UNSPEC -NFULNL_CFG_CMD_BIND -NFULNL_CFG_CMD_NONE -NFULNL_CFG_CMD_PF_BIND -NFULNL_CFG_CMD_PF_UNBIND -NFULNL_CFG_CMD_UNBIND -NFULNL_CFG_F_CONNTRACK -NFULNL_CFG_F_SEQ -NFULNL_CFG_F_SEQ_GLOBAL -NFULNL_COPY_META -NFULNL_COPY_NONE -NFULNL_COPY_PACKET -NFULNL_MSG_CONFIG -NFULNL_MSG_PACKET -NF_ACCEPT -NF_DROP -NF_INET_FORWARD -NF_INET_LOCAL_IN -NF_INET_LOCAL_OUT -NF_INET_NUMHOOKS -NF_INET_POST_ROUTING -NF_INET_PRE_ROUTING -NF_IP6_FORWARD -NF_IP6_LOCAL_IN -NF_IP6_LOCAL_OUT -NF_IP6_NUMHOOKS -NF_IP6_POST_ROUTING -NF_IP6_PRE_ROUTING -NF_IP6_PRI_CONNTRACK -NF_IP6_PRI_CONNTRACK_DEFRAG -NF_IP6_PRI_CONNTRACK_HELPER -NF_IP6_PRI_FILTER -NF_IP6_PRI_FIRST -NF_IP6_PRI_LAST -NF_IP6_PRI_MANGLE -NF_IP6_PRI_NAT_DST -NF_IP6_PRI_NAT_SRC -NF_IP6_PRI_RAW -NF_IP6_PRI_SECURITY -NF_IP6_PRI_SELINUX_FIRST -NF_IP6_PRI_SELINUX_LAST -NF_IP_FORWARD -NF_IP_LOCAL_IN -NF_IP_LOCAL_OUT -NF_IP_NUMHOOKS -NF_IP_POST_ROUTING -NF_IP_PRE_ROUTING -NF_IP_PRI_CONNTRACK -NF_IP_PRI_CONNTRACK_CONFIRM -NF_IP_PRI_CONNTRACK_DEFRAG -NF_IP_PRI_CONNTRACK_HELPER -NF_IP_PRI_FILTER -NF_IP_PRI_FIRST -NF_IP_PRI_LAST -NF_IP_PRI_MANGLE -NF_IP_PRI_NAT_DST -NF_IP_PRI_NAT_SRC -NF_IP_PRI_RAW -NF_IP_PRI_SECURITY -NF_IP_PRI_SELINUX_FIRST -NF_IP_PRI_SELINUX_LAST -NF_MAX_VERDICT -NF_QUEUE -NF_REPEAT -NF_STOLEN -NF_STOP -NF_VERDICT_BITS -NF_VERDICT_FLAG_QUEUE_BYPASS -NF_VERDICT_MASK -NF_VERDICT_QBITS -NF_VERDICT_QMASK -NI_DGRAM -NI_NAMEREQD -NI_NOFQDN -NI_NUMERICHOST -NI_NUMERICSERV -NL0 -NL1 -NLA_ALIGN -NLA_ALIGNTO -NLA_F_NESTED -NLA_F_NET_BYTEORDER -NLA_TYPE_MASK -NLDLY -NLMSG_DONE -NLMSG_ERROR -NLMSG_MIN_TYPE -NLMSG_NOOP -NLMSG_OVERRUN -NLM_F_ACK -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 -NLM_F_MATCH -NLM_F_MULTI -NLM_F_REPLACE -NLM_F_REQUEST -NLM_F_ROOT -NOEXPR -NOSTR -NTF_PROXY -NTF_ROUTER -NTF_SELF -NTF_USE -NUD_DELAY -NUD_FAILED -NUD_INCOMPLETE -NUD_NOARP -NUD_NONE -NUD_PERMANENT -NUD_PROBE -NUD_REACHABLE -NUD_STALE -OFDEL -OFILL -OLCUC -OPEN_TREE_CLOEXEC -OPEN_TREE_CLONE -O_ASYNC -O_DIRECT -O_DSYNC -O_LARGEFILE -O_NDELAY -O_NOATIME -O_NOCTTY -O_PATH -O_RSYNC -O_SYNC -O_TMPFILE -PACKET_ADD_MEMBERSHIP -PACKET_AUXDATA -PACKET_BROADCAST -PACKET_DROP_MEMBERSHIP -PACKET_FANOUT -PACKET_FANOUT_CBPF -PACKET_FANOUT_CPU -PACKET_FANOUT_FLAG_DEFRAG -PACKET_FANOUT_FLAG_ROLLOVER -PACKET_FANOUT_FLAG_UNIQUEID -PACKET_FANOUT_HASH -PACKET_FANOUT_LB -PACKET_FANOUT_QM -PACKET_FANOUT_RND -PACKET_FANOUT_ROLLOVER -PACKET_HOST -PACKET_KERNEL -PACKET_LOOPBACK -PACKET_LOSS -PACKET_MR_ALLMULTI -PACKET_MR_MULTICAST -PACKET_MR_PROMISC -PACKET_MR_UNICAST -PACKET_MULTICAST -PACKET_OTHERHOST -PACKET_OUTGOING -PACKET_QDISC_BYPASS -PACKET_RESERVE -PACKET_RX_RING -PACKET_STATISTICS -PACKET_TIMESTAMP -PACKET_USER -PACKET_VERSION -PENDIN -PF_ALG -PF_APPLETALK -PF_ASH -PF_ATMPVC -PF_ATMSVC -PF_AX25 -PF_BLUETOOTH -PF_BRIDGE -PF_CAIF -PF_CAN -PF_DECnet -PF_ECONET -PF_IEEE802154 -PF_IPX -PF_IRDA -PF_ISDN -PF_IUCV -PF_KEY -PF_LLC -PF_LOCAL -PF_MASKOS -PF_MASKPROC -PF_NETBEUI -PF_NETLINK -PF_NETROM -PF_NFC -PF_PACKET -PF_PHONET -PF_PPPOX -PF_R -PF_RDS -PF_ROSE -PF_ROUTE -PF_RXRPC -PF_SECURITY -PF_SNA -PF_TIPC -PF_VSOCK -PF_W -PF_WANPIPE -PF_X -PF_X25 -PIPE_BUF -PM_STR -POLLRDBAND -POLLRDNORM -POLLWRBAND -POLLWRNORM -POSIX_FADV_DONTNEED -POSIX_FADV_NOREUSE -POSIX_FADV_NORMAL -POSIX_FADV_RANDOM -POSIX_FADV_SEQUENTIAL -POSIX_FADV_WILLNEED -POSIX_MADV_DONTNEED -POSIX_MADV_NORMAL -POSIX_MADV_RANDOM -POSIX_MADV_SEQUENTIAL -POSIX_MADV_WILLNEED -POSIX_SPAWN_RESETIDS -POSIX_SPAWN_SETPGROUP -POSIX_SPAWN_SETSCHEDPARAM -POSIX_SPAWN_SETSCHEDULER -POSIX_SPAWN_SETSIGDEF -POSIX_SPAWN_SETSIGMASK -POSIX_SPAWN_USEVFORK -POSIX_SPAWN_SETSID -PROT_GROWSDOWN -PROT_GROWSUP -PR_CAPBSET_DROP -PR_CAPBSET_READ -PR_CAP_AMBIENT -PR_CAP_AMBIENT_CLEAR_ALL -PR_CAP_AMBIENT_IS_SET -PR_CAP_AMBIENT_LOWER -PR_CAP_AMBIENT_RAISE -PR_ENDIAN_BIG -PR_ENDIAN_LITTLE -PR_ENDIAN_PPC_LITTLE -PR_FPEMU_NOPRINT -PR_FPEMU_SIGFPE -PR_FP_EXC_ASYNC -PR_FP_EXC_DISABLED -PR_FP_EXC_DIV -PR_FP_EXC_INV -PR_FP_EXC_NONRECOV -PR_FP_EXC_OVF -PR_FP_EXC_PRECISE -PR_FP_EXC_RES -PR_FP_EXC_SW_ENABLE -PR_FP_EXC_UND -PR_FP_MODE_FR -PR_FP_MODE_FRE -PR_GET_CHILD_SUBREAPER -PR_GET_DUMPABLE -PR_GET_ENDIAN -PR_GET_FPEMU -PR_GET_FPEXC -PR_GET_FP_MODE -PR_GET_KEEPCAPS -PR_GET_NAME -PR_GET_NO_NEW_PRIVS -PR_GET_PDEATHSIG -PR_GET_SECCOMP -PR_GET_SECUREBITS -PR_GET_THP_DISABLE -PR_GET_TID_ADDRESS -PR_GET_TIMERSLACK -PR_GET_TIMING -PR_GET_TSC -PR_GET_UNALIGN -PR_MCE_KILL -PR_MCE_KILL_CLEAR -PR_MCE_KILL_DEFAULT -PR_MCE_KILL_EARLY -PR_MCE_KILL_GET -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 -PR_SET_FPEMU -PR_SET_FPEXC -PR_SET_FP_MODE -PR_SET_KEEPCAPS -PR_SET_MM -PR_SET_MM_ARG_END -PR_SET_MM_ARG_START -PR_SET_MM_AUXV -PR_SET_MM_BRK -PR_SET_MM_END_CODE -PR_SET_MM_END_DATA -PR_SET_MM_ENV_END -PR_SET_MM_ENV_START -PR_SET_MM_EXE_FILE -PR_SET_MM_MAP -PR_SET_MM_MAP_SIZE -PR_SET_MM_START_BRK -PR_SET_MM_START_CODE -PR_SET_MM_START_DATA -PR_SET_MM_START_STACK -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 -PR_SET_TIMERSLACK -PR_SET_TIMING -PR_SET_TSC -PR_SET_UNALIGN -PR_TASK_PERF_EVENTS_DISABLE -PR_TASK_PERF_EVENTS_ENABLE -PR_TIMING_STATISTICAL -PR_TIMING_TIMESTAMP -PR_TSC_ENABLE -PR_TSC_SIGSEGV -PR_UNALIGN_NOPRINT -PR_UNALIGN_SIGBUS -PTHREAD_BARRIER_SERIAL_THREAD -PTHREAD_CREATE_DETACHED -PTHREAD_CREATE_JOINABLE -PTHREAD_MUTEX_DEFAULT -PTHREAD_MUTEX_ERRORCHECK -PTHREAD_PRIO_NONE -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 -PTRACE_EVENT_CLONE -PTRACE_EVENT_EXEC -PTRACE_EVENT_EXIT -PTRACE_EVENT_FORK -PTRACE_EVENT_SECCOMP -PTRACE_EVENT_STOP -PTRACE_EVENT_VFORK -PTRACE_EVENT_VFORK_DONE -PTRACE_GETEVENTMSG -PTRACE_GETREGSET -PTRACE_GETSIGINFO -PTRACE_GETSIGMASK -PTRACE_INTERRUPT -PTRACE_KILL -PTRACE_LISTEN -PTRACE_O_EXITKILL -PTRACE_O_MASK -PTRACE_O_SUSPEND_SECCOMP -PTRACE_O_TRACECLONE -PTRACE_O_TRACEEXEC -PTRACE_O_TRACEEXIT -PTRACE_O_TRACEFORK -PTRACE_O_TRACESECCOMP -PTRACE_O_TRACESYSGOOD -PTRACE_O_TRACEVFORK -PTRACE_O_TRACEVFORKDONE -PTRACE_PEEKDATA -PTRACE_PEEKSIGINFO -PTRACE_PEEKTEXT -PTRACE_PEEKUSER -PTRACE_POKEDATA -PTRACE_POKETEXT -PTRACE_POKEUSER -PTRACE_SEIZE -PTRACE_SETOPTIONS -PTRACE_SETREGSET -PTRACE_SETSIGINFO -PTRACE_SETSIGMASK -PTRACE_SINGLESTEP -PTRACE_SYSCALL -PTRACE_TRACEME -PT_HIOS -PT_HISUNW -PT_LOPROC -PT_HIPROC -PT_DYNAMIC -PT_GNU_EH_FRAME -PT_GNU_RELRO -PT_GNU_STACK -PT_INTERP -PT_LOAD -PT_LOOS -PT_LOSUNW -PT_NOTE -PT_NULL -PT_NUM -PT_PHDR -PT_SHLIB -PT_SUNWBSS -PT_SUNWSTACK -PT_TLS -P_ALL -P_PGID -P_PID -P_PIDFD -QCMD -QFMT_VFS_OLD -QFMT_VFS_V0 -QFMT_VFS_V1 -QIF_ALL -QIF_BLIMITS -QIF_BTIME -QIF_ILIMITS -QIF_INODES -QIF_ITIME -QIF_LIMITS -QIF_SPACE -QIF_TIMES -QIF_USAGE -Q_GETFMT -Q_GETINFO -Q_GETQUOTA -Q_QUOTAOFF -Q_QUOTAON -Q_SETINFO -Q_SETQUOTA -Q_SYNC -RADIXCHAR -RAND_MAX -RB_AUTOBOOT -RB_DISABLE_CAD -RB_ENABLE_CAD -RB_HALT_SYSTEM -RB_KEXEC -RB_POWER_OFF -RB_SW_SUSPEND -READ_IMPLIES_EXEC -REG_BADBR -REG_BADPAT -REG_BADRPT -REG_EBRACE -REG_EBRACK -REG_ECOLLATE -REG_ECTYPE -REG_EESCAPE -REG_ENOSYS -REG_EPAREN -REG_ERANGE -REG_ESPACE -REG_ESUBREG -REG_EXTENDED -REG_ICASE -REG_NEWLINE -REG_NOMATCH -REG_NOSUB -REG_NOTBOL -REG_NOTEOL -REL_CNT -REL_MAX -RENAME_EXCHANGE -RENAME_NOREPLACE -RENAME_WHITEOUT -REP_CNT -REP_MAX -RESOLVE_BENEATH -RESOLVE_CACHED -RESOLVE_IN_ROOT -RESOLVE_NO_MAGICLINKS -RESOLVE_NO_SYMLINKS -RESOLVE_NO_XDEV -RLIM64_INFINITY -RLIMIT_AS -RLIMIT_CORE -RLIMIT_CPU -RLIMIT_DATA -RLIMIT_FSIZE -RLIMIT_LOCKS -RLIMIT_MEMLOCK -RLIMIT_MSGQUEUE -RLIMIT_NICE -RLIMIT_NLIMITS -RLIMIT_NOFILE -RLIMIT_NPROC -RLIMIT_RSS -RLIMIT_RTPRIO -RLIMIT_RTTIME -RLIMIT_SIGPENDING -RLIMIT_STACK -RLIM_INFINITY -RLIM_SAVED_CUR -RLIM_SAVED_MAX -RTA_CACHEINFO -RTA_DST -RTA_FLOW -RTA_GATEWAY -RTA_IIF -RTA_MARK -RTA_METRICS -RTA_MFC_STATS -RTA_MP_ALGO -RTA_MULTIPATH -RTA_PREFSRC -RTA_PRIORITY -RTA_PROTOINFO -RTA_SESSION -RTA_SRC -RTA_TABLE -RTCF_DIRECTSRC -RTCF_DOREDIRECT -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 -RTF_BROADCAST -RTF_CACHE -RTF_DEFAULT -RTF_DYNAMIC -RTF_FLOW -RTF_GATEWAY -RTF_HOST -RTF_INTERFACE -RTF_IRTT -RTF_LINKRT -RTF_LOCAL -RTF_MODIFIED -RTF_MSS -RTF_MTU -RTF_MULTICAST -RTF_NAT -RTF_NOFORWARD -RTF_NONEXTHOP -RTF_NOPMTUDISC -RTF_POLICY -RTF_REINSTATE -RTF_REJECT -RTF_STATIC -RTF_THROW -RTF_UP -RTF_WINDOW -RTF_XRESOLVE -RTLD_NEXT -RTLD_NODELETE -RTLD_NOLOAD -RTMSG_AR_FAILED -RTMSG_CONTROL -RTMSG_DELDEVICE -RTMSG_DELROUTE -RTMSG_DELRULE -RTMSG_NEWDEVICE -RTMSG_NEWROUTE -RTMSG_NEWRULE -RTMSG_OVERRUN -RTM_DELACTION -RTM_DELADDR -RTM_DELADDRLABEL -RTM_DELLINK -RTM_DELMDB -RTM_DELNEIGH -RTM_DELNSID -RTM_DELQDISC -RTM_DELROUTE -RTM_DELRULE -RTM_DELTCLASS -RTM_DELTFILTER -RTM_F_CLONED -RTM_F_EQUALIZE -RTM_F_NOTIFY -RTM_F_PREFIX -RTM_GETACTION -RTM_GETADDR -RTM_GETADDRLABEL -RTM_GETANYCAST -RTM_GETDCB -RTM_GETLINK -RTM_GETMDB -RTM_GETMULTICAST -RTM_GETNEIGH -RTM_GETNEIGHTBL -RTM_GETNETCONF -RTM_GETNSID -RTM_GETQDISC -RTM_GETROUTE -RTM_GETRULE -RTM_GETTCLASS -RTM_GETTFILTER -RTM_NEWACTION -RTM_NEWADDR -RTM_NEWADDRLABEL -RTM_NEWLINK -RTM_NEWMDB -RTM_NEWNDUSEROPT -RTM_NEWNEIGH -RTM_NEWNEIGHTBL -RTM_NEWNETCONF -RTM_NEWNSID -RTM_NEWPREFIX -RTM_NEWQDISC -RTM_NEWROUTE -RTM_NEWRULE -RTM_NEWTCLASS -RTM_NEWTFILTER -RTM_SETDCB -RTM_SETLINK -RTM_SETNEIGHTBL -RTN_ANYCAST -RTN_BLACKHOLE -RTN_BROADCAST -RTN_LOCAL -RTN_MULTICAST -RTN_NAT -RTN_PROHIBIT -RTN_THROW -RTN_UNICAST -RTN_UNREACHABLE -RTN_UNSPEC -RTN_XRESOLVE -RTPROT_BOOT -RTPROT_KERNEL -RTPROT_REDIRECT -RTPROT_STATIC -RTPROT_UNSPEC -RT_ADDRCLASS -RT_CLASS_DEFAULT -RT_CLASS_LOCAL -RT_CLASS_MAIN -RT_CLASS_MAX -RT_CLASS_UNSPEC -RT_LOCALADDR -RT_SCOPE_HOST -RT_SCOPE_LINK -RT_SCOPE_NOWHERE -RT_SCOPE_SITE -RT_SCOPE_UNIVERSE -RT_TABLE_COMPAT -RT_TABLE_DEFAULT -RT_TABLE_LOCAL -RT_TABLE_MAIN -RT_TABLE_UNSPEC -RT_TOS -RUSAGE_CHILDREN -RUSAGE_SELF -RUSAGE_THREAD -SCHED_BATCH -SCHED_FIFO -SCHED_IDLE -SCHED_OTHER -SCHED_RESET_ON_FORK -SCHED_RR -SCM_CREDENTIALS -SCM_RIGHTS -SCM_J1939_DEST_ADDR -SCM_J1939_DEST_NAME -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_STRICT -SECCOMP_MODE_FILTER -SECCOMP_RET_ACTION -SECCOMP_RET_ACTION_FULL -SECCOMP_RET_ALLOW -SECCOMP_RET_DATA -SECCOMP_RET_ERRNO -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 -SEM_FAILED -SFD_CLOEXEC -SFD_NONBLOCK -SHM_EXEC -SHM_HUGETLB -SHM_LOCK -SHM_NORESERVE -SHM_R -SHM_RDONLY -SHM_REMAP -SHM_RND -SHM_UNLOCK -SHM_W -SHORT_INODE -SIGEV_NONE -SIGEV_SIGNAL -SIGEV_THREAD -SIGIO -SIGPOLL -SIGPWR -SIGRTMAX -SIGRTMIN -SIGSTKSZ -SIOCADDMULTI -SIOCADDRT -SIOCDARP -SIOCDELMULTI -SIOCDELRT -SIOCDIFADDR -SIOCDRARP -SIOCETHTOOL -SIOCGARP -SIOCGHWTSTAMP -SIOCGIFADDR -SIOCGIFBR -SIOCGIFBRDADDR -SIOCGIFCONF -SIOCGIFCOUNT -SIOCGIFDSTADDR -SIOCGIFENCAP -SIOCGIFFLAGS -SIOCGIFHWADDR -SIOCGIFINDEX -SIOCGIFMAP -SIOCGIFMEM -SIOCGIFMETRIC -SIOCGIFMTU -SIOCGIFNAME -SIOCGIFNETMASK -SIOCGIFPFLAGS -SIOCGIFSLAVE -SIOCGIFTXQLEN -SIOCGRARP -SIOCGSKNS -SIOGIFINDEX -SIOCGMIIPHY -SIOCGMIIREG -SIOCSARP -SIOCSHWTSTAMP -SIOCSIFADDR -SIOCSIFBR -SIOCSIFBRDADDR -SIOCSIFDSTADDR -SIOCSIFENCAP -SIOCSIFFLAGS -SIOCSIFHWADDR -SIOCSIFHWBROADCAST -SIOCSIFLINK -SIOCSIFMAP -SIOCSIFMEM -SIOCSIFMETRIC -SIOCSIFMTU -SIOCSIFNAME -SIOCSIFNETMASK -SIOCSIFPFLAGS -SIOCSIFSLAVE -SIOCSIFTXQLEN -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 +IWEVASSOCREQIE +IWEVASSOCRESPIE IWEVCUSTOM -IWEVREGISTERED IWEVEXPIRED +IWEVFIRST 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 +IWEVQUAL +IWEVREGISTERED +IWEVTXDROP +IW_AUTH_80211_AUTH_ALG +IW_AUTH_ALG_LEAP +IW_AUTH_ALG_OPEN_SYSTEM +IW_AUTH_ALG_SHARED_KEY +IW_AUTH_CIPHER_AES_CMAC +IW_AUTH_CIPHER_CCMP +IW_AUTH_CIPHER_GROUP +IW_AUTH_CIPHER_GROUP_MGMT +IW_AUTH_CIPHER_NONE +IW_AUTH_CIPHER_PAIRWISE +IW_AUTH_CIPHER_TKIP +IW_AUTH_CIPHER_WEP104 +IW_AUTH_CIPHER_WEP40 +IW_AUTH_DROP_UNENCRYPTED +IW_AUTH_FLAGS +IW_AUTH_INDEX +IW_AUTH_KEY_MGMT +IW_AUTH_KEY_MGMT_802_1X +IW_AUTH_KEY_MGMT_PSK +IW_AUTH_MFP +IW_AUTH_MFP_DISABLED +IW_AUTH_MFP_OPTIONAL +IW_AUTH_MFP_REQUIRED +IW_AUTH_PRIVACY_INVOKED +IW_AUTH_ROAMING_CONTROL +IW_AUTH_ROAMING_DISABLE +IW_AUTH_ROAMING_ENABLE +IW_AUTH_RX_UNENCRYPTED_EAPOL +IW_AUTH_TKIP_COUNTERMEASURES +IW_AUTH_WPA_ENABLED +IW_AUTH_WPA_VERSION +IW_AUTH_WPA_VERSION_DISABLED +IW_AUTH_WPA_VERSION_WPA +IW_AUTH_WPA_VERSION_WPA2 +IW_CUSTOM_MAX +IW_ENCODE_ALG_AES_CMAC +IW_ENCODE_ALG_CCMP +IW_ENCODE_ALG_NONE +IW_ENCODE_ALG_PMK +IW_ENCODE_ALG_TKIP +IW_ENCODE_ALG_WEP +IW_ENCODE_DISABLED +IW_ENCODE_ENABLED +IW_ENCODE_EXT_GROUP_KEY +IW_ENCODE_EXT_RX_SEQ_VALID +IW_ENCODE_EXT_SET_TX_KEY +IW_ENCODE_EXT_TX_SEQ_VALID +IW_ENCODE_FLAGS +IW_ENCODE_INDEX +IW_ENCODE_MODE +IW_ENCODE_NOKEY +IW_ENCODE_OPEN +IW_ENCODE_RESTRICTED +IW_ENCODE_SEQ_MAX_SIZE +IW_ENCODE_TEMP +IW_ENCODING_TOKEN_MAX +IW_ENC_CAPA_4WAY_HANDSHAKE +IW_ENC_CAPA_CIPHER_CCMP +IW_ENC_CAPA_CIPHER_TKIP +IW_ENC_CAPA_WPA +IW_ENC_CAPA_WPA2 +IW_ESSID_MAX_SIZE +IW_EV_CHAR_PK_LEN +IW_EV_LCP_PK_LEN +IW_EV_POINT_PK_LEN +IW_FREQ_AUTO +IW_FREQ_FIXED +IW_GENERIC_IE_MAX +IW_MAX_AP IW_MAX_BITRATES -IW_MAX_TXPOWER +IW_MAX_ENCODING_SIZES +IW_MAX_FREQUENCIES IW_MAX_SPY -IW_MAX_AP -IW_ESSID_MAX_SIZE -IW_MODE_AUTO +IW_MAX_TXPOWER +IW_MICFAILURE_COUNT +IW_MICFAILURE_GROUP +IW_MICFAILURE_KEY_ID +IW_MICFAILURE_PAIRWISE +IW_MICFAILURE_STAKEY +IW_MLME_ASSOC +IW_MLME_AUTH +IW_MLME_DEAUTH +IW_MLME_DISASSOC IW_MODE_ADHOC +IW_MODE_AUTO IW_MODE_INFRA IW_MODE_MASTER +IW_MODE_MESH +IW_MODE_MONITOR 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_PMKID_CAND_PREAUTH +IW_PMKID_LEN +IW_PMKSA_ADD +IW_PMKSA_FLUSH +IW_PMKSA_REMOVE +IW_POWER_ALL_R +IW_POWER_FORCE_S +IW_POWER_MAX +IW_POWER_MIN +IW_POWER_MODE +IW_POWER_MODIFIER +IW_POWER_MULTICAST_R +IW_POWER_ON +IW_POWER_PERIOD +IW_POWER_RELATIVE +IW_POWER_REPEATER +IW_POWER_TIMEOUT +IW_POWER_TYPE +IW_POWER_UNICAST_R +IW_PRIV_SIZE_FIXED +IW_PRIV_SIZE_MASK +IW_PRIV_TYPE_ADDR +IW_PRIV_TYPE_BYTE +IW_PRIV_TYPE_CHAR +IW_PRIV_TYPE_FLOAT +IW_PRIV_TYPE_INT +IW_PRIV_TYPE_MASK +IW_PRIV_TYPE_NONE +IW_QUAL_ALL_INVALID IW_QUAL_ALL_UPDATED IW_QUAL_DBM -IW_QUAL_QUAL_INVALID IW_QUAL_LEVEL_INVALID +IW_QUAL_LEVEL_UPDATED IW_QUAL_NOISE_INVALID +IW_QUAL_NOISE_UPDATED +IW_QUAL_QUAL_INVALID +IW_QUAL_QUAL_UPDATED 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_LIMIT +IW_RETRY_LONG IW_RETRY_MAX +IW_RETRY_MIN +IW_RETRY_MODIFIER +IW_RETRY_ON IW_RETRY_RELATIVE IW_RETRY_SHORT -IW_RETRY_LONG -IW_SCAN_DEFAULT +IW_RETRY_TYPE 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_ESSID IW_SCAN_CAPA_MODE +IW_SCAN_CAPA_NONE 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 +IW_SCAN_CAPA_TYPE +IW_SCAN_DEFAULT +IW_SCAN_MAX_DATA +IW_SCAN_THIS_ESSID +IW_SCAN_THIS_FREQ +IW_SCAN_THIS_MODE +IW_SCAN_THIS_RATE +IW_SCAN_TYPE_ACTIVE +IW_SCAN_TYPE_PASSIVE +IW_TXPOW_DBM +IW_TXPOW_MWATT +IW_TXPOW_RANGE +IW_TXPOW_RELATIVE +IW_TXPOW_TYPE +J1939_IDLE_ADDR +J1939_MAX_UNICAST_ADDR +J1939_NLA_BYTES_ACKED +J1939_NLA_DEST_ADDR +J1939_NLA_DEST_NAME +J1939_NLA_PAD +J1939_NLA_PGN +J1939_NLA_SRC_ADDR +J1939_NLA_SRC_NAME +J1939_NLA_TOTAL_SIZE +J1939_NO_ADDR +J1939_NO_NAME +J1939_NO_PGN +J1939_PGN_ADDRESS_CLAIMED +J1939_PGN_ADDRESS_COMMANDED +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 +KEYCTL_DESCRIBE +KEYCTL_GET_KEYRING_ID +KEYCTL_GET_PERSISTENT +KEYCTL_GET_SECURITY +KEYCTL_INSTANTIATE +KEYCTL_INSTANTIATE_IOV +KEYCTL_INVALIDATE +KEYCTL_JOIN_SESSION_KEYRING +KEYCTL_LINK +KEYCTL_NEGATE +KEYCTL_READ +KEYCTL_REJECT +KEYCTL_REVOKE +KEYCTL_SEARCH +KEYCTL_SESSION_TO_PARENT +KEYCTL_SETPERM +KEYCTL_SET_REQKEY_KEYRING +KEYCTL_SET_TIMEOUT +KEYCTL_UNLINK +KEYCTL_UPDATE +KEY_CNT +KEY_MAX +KEY_REQKEY_DEFL_DEFAULT +KEY_REQKEY_DEFL_GROUP_KEYRING +KEY_REQKEY_DEFL_NO_CHANGE +KEY_REQKEY_DEFL_PROCESS_KEYRING +KEY_REQKEY_DEFL_REQUESTOR_KEYRING +KEY_REQKEY_DEFL_SESSION_KEYRING +KEY_REQKEY_DEFL_THREAD_KEYRING +KEY_REQKEY_DEFL_USER_KEYRING +KEY_REQKEY_DEFL_USER_SESSION_KEYRING +KEY_SPEC_GROUP_KEYRING +KEY_SPEC_PROCESS_KEYRING +KEY_SPEC_REQKEY_AUTH_KEY +KEY_SPEC_REQUESTOR_KEYRING +KEY_SPEC_SESSION_KEYRING +KEY_SPEC_THREAD_KEYRING +KEY_SPEC_USER_KEYRING +KEY_SPEC_USER_SESSION_KEYRING +LC_COLLATE +LC_COLLATE_MASK +LC_CTYPE +LC_CTYPE_MASK +LC_MESSAGES +LC_MESSAGES_MASK +LC_MONETARY +LC_MONETARY_MASK +LC_NUMERIC +LC_NUMERIC_MASK +LC_TIME +LC_TIME_MASK +LED_CNT +LED_MAX +LINUX_REBOOT_CMD_CAD_OFF +LINUX_REBOOT_CMD_CAD_ON +LINUX_REBOOT_CMD_HALT +LINUX_REBOOT_CMD_KEXEC +LINUX_REBOOT_CMD_POWER_OFF +LINUX_REBOOT_CMD_RESTART +LINUX_REBOOT_CMD_RESTART2 +LINUX_REBOOT_CMD_SW_SUSPEND +LINUX_REBOOT_MAGIC1 +LINUX_REBOOT_MAGIC2 +LINUX_REBOOT_MAGIC2A +LINUX_REBOOT_MAGIC2B +LINUX_REBOOT_MAGIC2C +LOG_AUTHPRIV +LOG_CRON +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 +MAP_FIXED_NOREPLACE +MAP_GROWSDOWN +MAP_HUGETLB +MAP_HUGE_16GB +MAP_HUGE_16MB +MAP_HUGE_1GB +MAP_HUGE_1MB +MAP_HUGE_256MB +MAP_HUGE_2GB +MAP_HUGE_2MB +MAP_HUGE_32MB +MAP_HUGE_512KB +MAP_HUGE_512MB +MAP_HUGE_64KB +MAP_HUGE_8MB +MAP_HUGE_MASK +MAP_HUGE_SHIFT +MAP_LOCKED +MAP_NONBLOCK +MAP_NORESERVE +MAP_POPULATE +MAP_SHARED_VALIDATE +MAP_STACK +MAP_TYPE +MAXTTL +MAX_ADDR_LEN +MAX_IPOPTLEN +MCAST_BLOCK_SOURCE +MCAST_EXCLUDE +MCAST_INCLUDE +MCAST_JOIN_GROUP +MCAST_JOIN_SOURCE_GROUP +MCAST_LEAVE_GROUP +MCAST_LEAVE_SOURCE_GROUP +MCAST_MSFILTER +MCAST_UNBLOCK_SOURCE +MCL_CURRENT +MCL_FUTURE +MCL_ONFAULT +MEMBARRIER_CMD_GLOBAL +MEMBARRIER_CMD_GLOBAL_EXPEDITED +MEMBARRIER_CMD_PRIVATE_EXPEDITED +MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ +MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE +MEMBARRIER_CMD_QUERY +MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED +MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED +MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ +MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE +MFD_ALLOW_SEALING +MFD_CLOEXEC +MFD_EXEC +MFD_HUGETLB +MFD_NOEXEC_SEAL +MINSIGSTKSZ +MMAP_PAGE_ZERO +MNT_DETACH +MNT_EXPIRE +MNT_FORCE +MODULE_INIT_IGNORE_MODVERSIONS +MODULE_INIT_IGNORE_VERMAGIC +MON_1 +MON_10 +MON_11 +MON_12 +MON_2 +MON_3 +MON_4 +MON_5 +MON_6 +MON_7 +MON_8 +MON_9 +MREMAP_FIXED +MREMAP_MAYMOVE +MSC_CNT +MSC_MAX +MSG_CMSG_CLOEXEC +MSG_CONFIRM +MSG_COPY +MSG_DONTWAIT +MSG_ERRQUEUE +MSG_EXCEPT +MSG_FASTOPEN +MSG_FIN +MSG_INFO +MSG_MORE +MSG_NOERROR +MSG_NOSIGNAL +MSG_NOTIFICATION +MSG_RST +MSG_STAT +MSG_SYN +MSG_WAITFORONE +MSG_ZEROCOPY +MS_ACTIVE +MS_BIND +MS_DIRSYNC +MS_I_VERSION +MS_KERNMOUNT +MS_LAZYTIME +MS_MANDLOCK +MS_MGC_MSK +MS_MGC_VAL +MS_MOVE +MS_NOATIME +MS_NODEV +MS_NODIRATIME +MS_NOEXEC +MS_NOSUID +MS_NOUSER +MS_POSIXACL +MS_PRIVATE +MS_RDONLY +MS_REC +MS_REMOUNT +MS_RMT_MASK +MS_SHARED +MS_SILENT +MS_SLAVE +MS_STRICTATIME +MS_SYNCHRONOUS +MS_UNBINDABLE +NDA_CACHEINFO +NDA_DST +NDA_IFINDEX +NDA_PORT +NDA_PROBES +NDA_UNSPEC +NDA_VLAN +NDA_VNI +NETLINK_ADD_MEMBERSHIP +NETLINK_AUDIT +NETLINK_BROADCAST_ERROR +NETLINK_CAP_ACK +NETLINK_CONNECTOR +NETLINK_CRYPTO +NETLINK_DNRTMSG +NETLINK_DROP_MEMBERSHIP +NETLINK_ECRYPTFS +NETLINK_EXT_ACK +NETLINK_FIB_LOOKUP +NETLINK_FIREWALL +NETLINK_GENERIC +NETLINK_GET_STRICT_CHK +NETLINK_INET_DIAG +NETLINK_IP6_FW +NETLINK_ISCSI +NETLINK_KOBJECT_UEVENT +NETLINK_LISTEN_ALL_NSID +NETLINK_LIST_MEMBERSHIPS +NETLINK_NETFILTER +NETLINK_NFLOG +NETLINK_NO_ENOBUFS +NETLINK_PKTINFO +NETLINK_RDMA +NETLINK_ROUTE +NETLINK_RX_RING +NETLINK_SCSITRANSPORT +NETLINK_SELINUX +NETLINK_SOCK_DIAG +NETLINK_TX_RING +NETLINK_UNUSED +NETLINK_USERSOCK +NETLINK_XFRM +NFNETLINK_V0 +NFNLGRP_ACCT_QUOTA +NFNLGRP_CONNTRACK_DESTROY +NFNLGRP_CONNTRACK_EXP_DESTROY +NFNLGRP_CONNTRACK_EXP_NEW +NFNLGRP_CONNTRACK_EXP_UPDATE +NFNLGRP_CONNTRACK_NEW +NFNLGRP_CONNTRACK_UPDATE +NFNLGRP_NFTABLES +NFNLGRP_NONE +NFNL_MSG_BATCH_BEGIN +NFNL_MSG_BATCH_END +NFNL_SUBSYS_ACCT +NFNL_SUBSYS_COUNT +NFNL_SUBSYS_CTHELPER +NFNL_SUBSYS_CTNETLINK +NFNL_SUBSYS_CTNETLINK_EXP +NFNL_SUBSYS_CTNETLINK_TIMEOUT +NFNL_SUBSYS_IPSET +NFNL_SUBSYS_NFTABLES +NFNL_SUBSYS_NFT_COMPAT +NFNL_SUBSYS_NONE +NFNL_SUBSYS_OSF +NFNL_SUBSYS_QUEUE +NFNL_SUBSYS_ULOG +NFPROTO_ARP +NFPROTO_BRIDGE +NFPROTO_DECNET +NFPROTO_IPV4 +NFPROTO_IPV6 +NFPROTO_NUMPROTO +NFPROTO_UNSPEC +NFQA_CAP_LEN +NFQA_CFG_CMD +NFQA_CFG_FLAGS +NFQA_CFG_F_CONNTRACK +NFQA_CFG_F_FAIL_OPEN +NFQA_CFG_F_GSO +NFQA_CFG_F_MAX +NFQA_CFG_F_SECCTX +NFQA_CFG_F_UID_GID +NFQA_CFG_MASK +NFQA_CFG_PARAMS +NFQA_CFG_QUEUE_MAXLEN +NFQA_CFG_UNSPEC +NFQA_CT +NFQA_CT_INFO +NFQA_EXP +NFQA_GID +NFQA_HWADDR +NFQA_IFINDEX_INDEV +NFQA_IFINDEX_OUTDEV +NFQA_IFINDEX_PHYSINDEV +NFQA_IFINDEX_PHYSOUTDEV +NFQA_MARK +NFQA_PACKET_HDR +NFQA_PAYLOAD +NFQA_SECCTX +NFQA_SKB_CSUMNOTREADY +NFQA_SKB_CSUM_NOTVERIFIED +NFQA_SKB_GSO +NFQA_SKB_INFO +NFQA_TIMESTAMP +NFQA_UID +NFQA_UNSPEC +NFQA_VERDICT_HDR +NFQNL_CFG_CMD_BIND +NFQNL_CFG_CMD_NONE +NFQNL_CFG_CMD_PF_BIND +NFQNL_CFG_CMD_PF_UNBIND +NFQNL_CFG_CMD_UNBIND +NFQNL_COPY_META +NFQNL_COPY_NONE +NFQNL_COPY_PACKET +NFQNL_MSG_CONFIG +NFQNL_MSG_PACKET +NFQNL_MSG_VERDICT +NFQNL_MSG_VERDICT_BATCH +NFULA_CFG_CMD +NFULA_CFG_FLAGS +NFULA_CFG_MODE +NFULA_CFG_NLBUFSIZ +NFULA_CFG_QTHRESH +NFULA_CFG_TIMEOUT +NFULA_CFG_UNSPEC +NFULA_CT +NFULA_CT_INFO +NFULA_GID +NFULA_HWADDR +NFULA_HWHEADER +NFULA_HWLEN +NFULA_HWTYPE +NFULA_IFINDEX_INDEV +NFULA_IFINDEX_OUTDEV +NFULA_IFINDEX_PHYSINDEV +NFULA_IFINDEX_PHYSOUTDEV +NFULA_MARK +NFULA_PACKET_HDR +NFULA_PAYLOAD +NFULA_PREFIX +NFULA_SEQ +NFULA_SEQ_GLOBAL +NFULA_TIMESTAMP +NFULA_UID +NFULA_UNSPEC +NFULNL_CFG_CMD_BIND +NFULNL_CFG_CMD_NONE +NFULNL_CFG_CMD_PF_BIND +NFULNL_CFG_CMD_PF_UNBIND +NFULNL_CFG_CMD_UNBIND +NFULNL_CFG_F_CONNTRACK +NFULNL_CFG_F_SEQ +NFULNL_CFG_F_SEQ_GLOBAL +NFULNL_COPY_META +NFULNL_COPY_NONE +NFULNL_COPY_PACKET +NFULNL_MSG_CONFIG +NFULNL_MSG_PACKET +NF_ACCEPT +NF_DROP +NF_INET_FORWARD +NF_INET_LOCAL_IN +NF_INET_LOCAL_OUT +NF_INET_NUMHOOKS +NF_INET_POST_ROUTING +NF_INET_PRE_ROUTING +NF_IP6_FORWARD +NF_IP6_LOCAL_IN +NF_IP6_LOCAL_OUT +NF_IP6_NUMHOOKS +NF_IP6_POST_ROUTING +NF_IP6_PRE_ROUTING +NF_IP6_PRI_CONNTRACK +NF_IP6_PRI_CONNTRACK_DEFRAG +NF_IP6_PRI_CONNTRACK_HELPER +NF_IP6_PRI_FILTER +NF_IP6_PRI_FIRST +NF_IP6_PRI_LAST +NF_IP6_PRI_MANGLE +NF_IP6_PRI_NAT_DST +NF_IP6_PRI_NAT_SRC +NF_IP6_PRI_RAW +NF_IP6_PRI_SECURITY +NF_IP6_PRI_SELINUX_FIRST +NF_IP6_PRI_SELINUX_LAST +NF_IP_FORWARD +NF_IP_LOCAL_IN +NF_IP_LOCAL_OUT +NF_IP_NUMHOOKS +NF_IP_POST_ROUTING +NF_IP_PRE_ROUTING +NF_IP_PRI_CONNTRACK +NF_IP_PRI_CONNTRACK_CONFIRM +NF_IP_PRI_CONNTRACK_DEFRAG +NF_IP_PRI_CONNTRACK_HELPER +NF_IP_PRI_FILTER +NF_IP_PRI_FIRST +NF_IP_PRI_LAST +NF_IP_PRI_MANGLE +NF_IP_PRI_NAT_DST +NF_IP_PRI_NAT_SRC +NF_IP_PRI_RAW +NF_IP_PRI_SECURITY +NF_IP_PRI_SELINUX_FIRST +NF_IP_PRI_SELINUX_LAST +NF_MAX_VERDICT +NF_QUEUE +NF_REPEAT +NF_STOLEN +NF_STOP +NF_VERDICT_BITS +NF_VERDICT_FLAG_QUEUE_BYPASS +NF_VERDICT_MASK +NF_VERDICT_QBITS +NF_VERDICT_QMASK +NI_DGRAM +NI_NAMEREQD +NI_NOFQDN +NI_NUMERICHOST +NI_NUMERICSERV +NL0 +NL1 +NLA_ALIGN +NLA_ALIGNTO +NLA_F_NESTED +NLA_F_NET_BYTEORDER +NLA_TYPE_MASK +NLDLY +NLMSG_DONE +NLMSG_ERROR +NLMSG_MIN_TYPE +NLMSG_NOOP +NLMSG_OVERRUN +NLM_F_ACK +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 +NLM_F_MATCH +NLM_F_MULTI +NLM_F_REPLACE +NLM_F_REQUEST +NLM_F_ROOT +NOEXPR +NOSTR +NTF_PROXY +NTF_ROUTER +NTF_SELF +NTF_USE +NT_ASRS +NT_AUXV +NT_FPREGSET +NT_GWINDOWS +NT_LWPSINFO +NT_LWPSTATUS +NT_PLATFORM +NT_PRCRED +NT_PRFPREG +NT_PRFPXREG +NT_PRPSINFO +NT_PRSTATUS +NT_PRXREG +NT_PSINFO +NT_PSTATUS +NT_TASKSTRUCT +NT_UTSNAME +NUD_DELAY +NUD_FAILED +NUD_INCOMPLETE +NUD_NOARP +NUD_NONE +NUD_PERMANENT +NUD_PROBE +NUD_REACHABLE +NUD_STALE +OFDEL +OFILL +OLCUC +OPEN_TREE_CLOEXEC +OPEN_TREE_CLONE +O_ASYNC +O_DIRECT +O_DSYNC +O_LARGEFILE +O_NDELAY +O_NOATIME +O_NOCTTY +O_PATH +O_RSYNC +O_SYNC +O_TMPFILE +PACKET_ADD_MEMBERSHIP +PACKET_AUXDATA +PACKET_BROADCAST +PACKET_DROP_MEMBERSHIP +PACKET_FANOUT +PACKET_FANOUT_CBPF +PACKET_FANOUT_CPU +PACKET_FANOUT_FLAG_DEFRAG +PACKET_FANOUT_FLAG_ROLLOVER +PACKET_FANOUT_FLAG_UNIQUEID +PACKET_FANOUT_HASH +PACKET_FANOUT_LB +PACKET_FANOUT_QM +PACKET_FANOUT_RND +PACKET_FANOUT_ROLLOVER +PACKET_HOST +PACKET_KERNEL +PACKET_LOOPBACK +PACKET_LOSS +PACKET_MR_ALLMULTI +PACKET_MR_MULTICAST +PACKET_MR_PROMISC +PACKET_MR_UNICAST +PACKET_MULTICAST +PACKET_OTHERHOST +PACKET_OUTGOING +PACKET_QDISC_BYPASS +PACKET_RESERVE +PACKET_RX_RING +PACKET_STATISTICS +PACKET_TIMESTAMP +PACKET_USER +PACKET_VERSION +PENDIN +PF_ALG +PF_APPLETALK +PF_ASH +PF_ATMPVC +PF_ATMSVC +PF_AX25 +PF_BLUETOOTH +PF_BRIDGE +PF_CAIF +PF_CAN +PF_DECnet +PF_ECONET +PF_IEEE802154 +PF_IPX +PF_IRDA +PF_ISDN +PF_IUCV +PF_KEY +PF_LLC +PF_LOCAL +PF_MASKOS +PF_MASKPROC +PF_NETBEUI +PF_NETLINK +PF_NETROM +PF_NFC +PF_PACKET +PF_PHONET +PF_PPPOX +PF_R +PF_RDS +PF_ROSE +PF_ROUTE +PF_RXRPC +PF_SECURITY +PF_SNA +PF_TIPC +PF_VSOCK +PF_W +PF_WANPIPE +PF_X +PF_X25 +PIPE_BUF +PM_STR +POLLRDBAND +POLLRDNORM +POLLWRBAND +POLLWRNORM +POSIX_FADV_DONTNEED +POSIX_FADV_NOREUSE +POSIX_FADV_NORMAL +POSIX_FADV_RANDOM +POSIX_FADV_SEQUENTIAL +POSIX_FADV_WILLNEED +POSIX_MADV_DONTNEED +POSIX_MADV_NORMAL +POSIX_MADV_RANDOM +POSIX_MADV_SEQUENTIAL +POSIX_MADV_WILLNEED +POSIX_SPAWN_RESETIDS +POSIX_SPAWN_SETPGROUP +POSIX_SPAWN_SETSCHEDPARAM +POSIX_SPAWN_SETSCHEDULER +POSIX_SPAWN_SETSID +POSIX_SPAWN_SETSIGDEF +POSIX_SPAWN_SETSIGMASK +POSIX_SPAWN_USEVFORK +PROT_GROWSDOWN +PROT_GROWSUP +PR_CAPBSET_DROP +PR_CAPBSET_READ +PR_CAP_AMBIENT +PR_CAP_AMBIENT_CLEAR_ALL +PR_CAP_AMBIENT_IS_SET +PR_CAP_AMBIENT_LOWER +PR_CAP_AMBIENT_RAISE +PR_ENDIAN_BIG +PR_ENDIAN_LITTLE +PR_ENDIAN_PPC_LITTLE +PR_FPEMU_NOPRINT +PR_FPEMU_SIGFPE +PR_FP_EXC_ASYNC +PR_FP_EXC_DISABLED +PR_FP_EXC_DIV +PR_FP_EXC_INV +PR_FP_EXC_NONRECOV +PR_FP_EXC_OVF +PR_FP_EXC_PRECISE +PR_FP_EXC_RES +PR_FP_EXC_SW_ENABLE +PR_FP_EXC_UND +PR_FP_MODE_FR +PR_FP_MODE_FRE +PR_GET_CHILD_SUBREAPER +PR_GET_DUMPABLE +PR_GET_ENDIAN +PR_GET_FPEMU +PR_GET_FPEXC +PR_GET_FP_MODE +PR_GET_KEEPCAPS +PR_GET_NAME +PR_GET_NO_NEW_PRIVS +PR_GET_PDEATHSIG +PR_GET_SECCOMP +PR_GET_SECUREBITS +PR_GET_THP_DISABLE +PR_GET_TID_ADDRESS +PR_GET_TIMERSLACK +PR_GET_TIMING +PR_GET_TSC +PR_GET_UNALIGN +PR_MCE_KILL +PR_MCE_KILL_CLEAR +PR_MCE_KILL_DEFAULT +PR_MCE_KILL_EARLY +PR_MCE_KILL_GET +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 +PR_SET_FPEMU +PR_SET_FPEXC +PR_SET_FP_MODE +PR_SET_KEEPCAPS +PR_SET_MM +PR_SET_MM_ARG_END +PR_SET_MM_ARG_START +PR_SET_MM_AUXV +PR_SET_MM_BRK +PR_SET_MM_END_CODE +PR_SET_MM_END_DATA +PR_SET_MM_ENV_END +PR_SET_MM_ENV_START +PR_SET_MM_EXE_FILE +PR_SET_MM_MAP +PR_SET_MM_MAP_SIZE +PR_SET_MM_START_BRK +PR_SET_MM_START_CODE +PR_SET_MM_START_DATA +PR_SET_MM_START_STACK +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 +PR_SET_TIMERSLACK +PR_SET_TIMING +PR_SET_TSC +PR_SET_UNALIGN +PR_TASK_PERF_EVENTS_DISABLE +PR_TASK_PERF_EVENTS_ENABLE +PR_TIMING_STATISTICAL +PR_TIMING_TIMESTAMP +PR_TSC_ENABLE +PR_TSC_SIGSEGV +PR_UNALIGN_NOPRINT +PR_UNALIGN_SIGBUS +PTHREAD_BARRIER_SERIAL_THREAD +PTHREAD_CREATE_DETACHED +PTHREAD_CREATE_JOINABLE +PTHREAD_EXPLICIT_SCHED +PTHREAD_INHERIT_SCHED +PTHREAD_MUTEX_DEFAULT +PTHREAD_MUTEX_ERRORCHECK +PTHREAD_ONCE_INIT +PTHREAD_PRIO_INHERIT +PTHREAD_PRIO_NONE +PTHREAD_PRIO_PROTECT +PTHREAD_PROCESS_PRIVATE +PTHREAD_PROCESS_SHARED +PTHREAD_STACK_MIN +PTRACE_ATTACH +PTRACE_CONT +PTRACE_DETACH +PTRACE_EVENT_CLONE +PTRACE_EVENT_EXEC +PTRACE_EVENT_EXIT +PTRACE_EVENT_FORK +PTRACE_EVENT_SECCOMP +PTRACE_EVENT_STOP +PTRACE_EVENT_VFORK +PTRACE_EVENT_VFORK_DONE +PTRACE_GETEVENTMSG +PTRACE_GETREGSET +PTRACE_GETSIGINFO +PTRACE_GETSIGMASK +PTRACE_INTERRUPT +PTRACE_KILL +PTRACE_LISTEN +PTRACE_O_EXITKILL +PTRACE_O_MASK +PTRACE_O_SUSPEND_SECCOMP +PTRACE_O_TRACECLONE +PTRACE_O_TRACEEXEC +PTRACE_O_TRACEEXIT +PTRACE_O_TRACEFORK +PTRACE_O_TRACESECCOMP +PTRACE_O_TRACESYSGOOD +PTRACE_O_TRACEVFORK +PTRACE_O_TRACEVFORKDONE +PTRACE_PEEKDATA +PTRACE_PEEKSIGINFO +PTRACE_PEEKTEXT +PTRACE_PEEKUSER +PTRACE_POKEDATA +PTRACE_POKETEXT +PTRACE_POKEUSER +PTRACE_SEIZE +PTRACE_SETOPTIONS +PTRACE_SETREGSET +PTRACE_SETSIGINFO +PTRACE_SETSIGMASK +PTRACE_SINGLESTEP +PTRACE_SYSCALL +PTRACE_TRACEME +PT_DYNAMIC +PT_GNU_EH_FRAME +PT_GNU_RELRO +PT_GNU_STACK +PT_HIOS +PT_HIPROC +PT_HISUNW +PT_INTERP +PT_LOAD +PT_LOOS +PT_LOPROC +PT_LOSUNW +PT_NOTE +PT_NULL +PT_NUM +PT_PHDR +PT_SHLIB +PT_SUNWBSS +PT_SUNWSTACK +PT_TLS +P_ALL +P_PGID +P_PID +P_PIDFD +QCMD +QFMT_VFS_OLD +QFMT_VFS_V0 +QFMT_VFS_V1 +QIF_ALL +QIF_BLIMITS +QIF_BTIME +QIF_ILIMITS +QIF_INODES +QIF_ITIME +QIF_LIMITS +QIF_SPACE +QIF_TIMES +QIF_USAGE +Q_GETFMT +Q_GETINFO +Q_GETQUOTA +Q_QUOTAOFF +Q_QUOTAON +Q_SETINFO +Q_SETQUOTA +Q_SYNC +RADIXCHAR +RAND_MAX +RB_AUTOBOOT +RB_DISABLE_CAD +RB_ENABLE_CAD +RB_HALT_SYSTEM +RB_KEXEC +RB_POWER_OFF +RB_SW_SUSPEND +READ_IMPLIES_EXEC +REG_BADBR +REG_BADPAT +REG_BADRPT +REG_EBRACE +REG_EBRACK +REG_ECOLLATE +REG_ECTYPE +REG_EESCAPE +REG_ENOSYS +REG_EPAREN +REG_ERANGE +REG_ESPACE +REG_ESUBREG +REG_EXTENDED +REG_ICASE +REG_NEWLINE +REG_NOMATCH +REG_NOSUB +REG_NOTBOL +REG_NOTEOL +REL_CNT +REL_MAX +RENAME_EXCHANGE +RENAME_NOREPLACE +RENAME_WHITEOUT +REP_CNT +REP_MAX +RESOLVE_BENEATH +RESOLVE_CACHED +RESOLVE_IN_ROOT +RESOLVE_NO_MAGICLINKS +RESOLVE_NO_SYMLINKS +RESOLVE_NO_XDEV +RLIM64_INFINITY +RLIMIT_AS +RLIMIT_CORE +RLIMIT_CPU +RLIMIT_DATA +RLIMIT_FSIZE +RLIMIT_LOCKS +RLIMIT_MEMLOCK +RLIMIT_MSGQUEUE +RLIMIT_NICE +RLIMIT_NLIMITS +RLIMIT_NOFILE +RLIMIT_NPROC +RLIMIT_RSS +RLIMIT_RTPRIO +RLIMIT_RTTIME +RLIMIT_SIGPENDING +RLIMIT_STACK +RLIM_INFINITY +RLIM_SAVED_CUR +RLIM_SAVED_MAX +RTA_CACHEINFO +RTA_DST +RTA_FLOW +RTA_GATEWAY +RTA_IIF +RTA_MARK +RTA_METRICS +RTA_MFC_STATS +RTA_MP_ALGO +RTA_MULTIPATH +RTA_PREFSRC +RTA_PRIORITY +RTA_PROTOINFO +RTA_SESSION +RTA_SRC +RTA_TABLE +RTCF_DIRECTSRC +RTCF_DOREDIRECT +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 +RTF_BROADCAST +RTF_CACHE +RTF_DEFAULT +RTF_DYNAMIC +RTF_FLOW +RTF_GATEWAY +RTF_HOST +RTF_INTERFACE +RTF_IRTT +RTF_LINKRT +RTF_LOCAL +RTF_MODIFIED +RTF_MSS +RTF_MTU +RTF_MULTICAST +RTF_NAT +RTF_NOFORWARD +RTF_NONEXTHOP +RTF_NOPMTUDISC +RTF_POLICY +RTF_REINSTATE +RTF_REJECT +RTF_STATIC +RTF_THROW +RTF_UP +RTF_WINDOW +RTF_XRESOLVE +RTLD_NEXT +RTLD_NODELETE +RTLD_NOLOAD +RTMSG_AR_FAILED +RTMSG_CONTROL +RTMSG_DELDEVICE +RTMSG_DELROUTE +RTMSG_DELRULE +RTMSG_NEWDEVICE +RTMSG_NEWROUTE +RTMSG_NEWRULE +RTMSG_OVERRUN +RTM_DELACTION +RTM_DELADDR +RTM_DELADDRLABEL +RTM_DELLINK +RTM_DELMDB +RTM_DELNEIGH +RTM_DELNSID +RTM_DELQDISC +RTM_DELROUTE +RTM_DELRULE +RTM_DELTCLASS +RTM_DELTFILTER +RTM_F_CLONED +RTM_F_EQUALIZE +RTM_F_NOTIFY +RTM_F_PREFIX +RTM_GETACTION +RTM_GETADDR +RTM_GETADDRLABEL +RTM_GETANYCAST +RTM_GETDCB +RTM_GETLINK +RTM_GETMDB +RTM_GETMULTICAST +RTM_GETNEIGH +RTM_GETNEIGHTBL +RTM_GETNETCONF +RTM_GETNSID +RTM_GETQDISC +RTM_GETROUTE +RTM_GETRULE +RTM_GETTCLASS +RTM_GETTFILTER +RTM_NEWACTION +RTM_NEWADDR +RTM_NEWADDRLABEL +RTM_NEWLINK +RTM_NEWMDB +RTM_NEWNDUSEROPT +RTM_NEWNEIGH +RTM_NEWNEIGHTBL +RTM_NEWNETCONF +RTM_NEWNSID +RTM_NEWPREFIX +RTM_NEWQDISC +RTM_NEWROUTE +RTM_NEWRULE +RTM_NEWTCLASS +RTM_NEWTFILTER +RTM_SETDCB +RTM_SETLINK +RTM_SETNEIGHTBL +RTN_ANYCAST +RTN_BLACKHOLE +RTN_BROADCAST +RTN_LOCAL +RTN_MULTICAST +RTN_NAT +RTN_PROHIBIT +RTN_THROW +RTN_UNICAST +RTN_UNREACHABLE +RTN_UNSPEC +RTN_XRESOLVE +RTPROT_BOOT +RTPROT_KERNEL +RTPROT_REDIRECT +RTPROT_STATIC +RTPROT_UNSPEC +RT_ADDRCLASS +RT_CLASS_DEFAULT +RT_CLASS_LOCAL +RT_CLASS_MAIN +RT_CLASS_MAX +RT_CLASS_UNSPEC +RT_LOCALADDR +RT_SCOPE_HOST +RT_SCOPE_LINK +RT_SCOPE_NOWHERE +RT_SCOPE_SITE +RT_SCOPE_UNIVERSE +RT_TABLE_COMPAT +RT_TABLE_DEFAULT +RT_TABLE_LOCAL +RT_TABLE_MAIN +RT_TABLE_UNSPEC +RT_TOS +RUSAGE_CHILDREN +RUSAGE_SELF +RUSAGE_THREAD +SCHED_BATCH +SCHED_FIFO +SCHED_IDLE +SCHED_OTHER +SCHED_RESET_ON_FORK +SCHED_RR +SCM_CREDENTIALS +SCM_J1939_DEST_ADDR +SCM_J1939_DEST_NAME +SCM_J1939_ERRQUEUE +SCM_J1939_PRIO +SCM_RIGHTS +SCM_TIMESTAMP +SCM_TIMESTAMPING +SCTP_ABORT +SCTP_ADDR_OVER +SCTP_ALL_ASSOC +SCTP_ASSOCINFO +SCTP_AUTH_ACTIVE_KEY +SCTP_AUTH_CHUNK +SCTP_AUTH_DEACTIVATE_KEY +SCTP_AUTH_DELETE_KEY +SCTP_AUTH_KEY +SCTP_AUTOCLOSE +SCTP_AUTO_ASCONF +SCTP_CONTEXT +SCTP_CURRENT_ASSOC +SCTP_DEFAULT_SEND_PARAM +SCTP_DEFAULT_SNDINFO +SCTP_DELAYED_ACK +SCTP_DELAYED_ACK_TIME +SCTP_DELAYED_SACK +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_INIT +SCTP_INITMSG +SCTP_I_WANT_MAPPED_V4_ADDR +SCTP_LOCAL_AUTH_CHUNKS +SCTP_MAXSEG +SCTP_MAX_BURST +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_PRIMARY_ADDR +SCTP_PR_SCTP_ALL +SCTP_PR_SCTP_MASK +SCTP_PR_SCTP_MAX +SCTP_PR_SCTP_NONE +SCTP_PR_SCTP_PRIO +SCTP_PR_SCTP_RTX +SCTP_PR_SCTP_TTL +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_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_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 +SEM_FAILED +SFD_CLOEXEC +SFD_NONBLOCK +SHM_EXEC +SHM_HUGETLB +SHM_LOCK +SHM_NORESERVE +SHM_R +SHM_RDONLY +SHM_REMAP +SHM_RND +SHM_UNLOCK +SHM_W +SHORT_INODE +SIGEV_NONE +SIGEV_SIGNAL +SIGEV_THREAD +SIGIO +SIGPOLL +SIGPWR +SIGRTMAX +SIGRTMIN +SIGSTKSZ +SIOCADDMULTI +SIOCADDRT +SIOCDARP +SIOCDELMULTI +SIOCDELRT +SIOCDIFADDR +SIOCDRARP +SIOCETHTOOL +SIOCGARP +SIOCGHWTSTAMP +SIOCGIFADDR +SIOCGIFBR +SIOCGIFBRDADDR +SIOCGIFCONF +SIOCGIFCOUNT +SIOCGIFDSTADDR +SIOCGIFENCAP +SIOCGIFFLAGS +SIOCGIFHWADDR +SIOCGIFINDEX +SIOCGIFMAP +SIOCGIFMEM +SIOCGIFMETRIC +SIOCGIFMTU +SIOCGIFNAME +SIOCGIFNETMASK +SIOCGIFPFLAGS +SIOCGIFSLAVE +SIOCGIFTXQLEN +SIOCGIWAP +SIOCGIWAPLIST +SIOCGIWAUTH +SIOCGIWENCODE +SIOCGIWENCODEEXT +SIOCGIWESSID +SIOCGIWFRAG +SIOCGIWFREQ +SIOCGIWGENIE +SIOCGIWMODE +SIOCGIWNAME +SIOCGIWNICKN +SIOCGIWNWID +SIOCGIWPOWER +SIOCGIWPRIV +SIOCGIWRANGE +SIOCGIWRATE +SIOCGIWRETRY +SIOCGIWRTS +SIOCGIWSCAN +SIOCGIWSENS +SIOCGIWSPY +SIOCGIWSTATS +SIOCGIWTHRSPY +SIOCGIWTXPOW +SIOCGMIIPHY +SIOCGMIIREG +SIOCGRARP +SIOCGSKNS +SIOCIWFIRST +SIOCIWFIRSTPRIV +SIOCIWLAST +SIOCIWLASTPRIV +SIOCOUTQNSD +SIOCSARP +SIOCSHWTSTAMP +SIOCSIFADDR +SIOCSIFBR +SIOCSIFBRDADDR +SIOCSIFDSTADDR +SIOCSIFENCAP +SIOCSIFFLAGS +SIOCSIFHWADDR +SIOCSIFHWBROADCAST +SIOCSIFLINK +SIOCSIFMAP +SIOCSIFMEM +SIOCSIFMETRIC +SIOCSIFMTU +SIOCSIFNAME +SIOCSIFNETMASK +SIOCSIFPFLAGS +SIOCSIFSLAVE +SIOCSIFTXQLEN +SIOCSIWAP +SIOCSIWAUTH +SIOCSIWCOMMIT +SIOCSIWENCODE +SIOCSIWENCODEEXT +SIOCSIWESSID +SIOCSIWFRAG +SIOCSIWFREQ +SIOCSIWGENIE +SIOCSIWMLME +SIOCSIWMODE +SIOCSIWNICKN +SIOCSIWNWID +SIOCSIWPMKSA +SIOCSIWPOWER +SIOCSIWPRIV +SIOCSIWRANGE +SIOCSIWRATE +SIOCSIWRETRY +SIOCSIWRTS +SIOCSIWSCAN +SIOCSIWSENS +SIOCSIWSPY +SIOCSIWSTATS +SIOCSIWTHRSPY +SIOCSIWTXPOW +SIOCSMIIREG +SIOCSRARP +SIOCWANDEV +SIOGIFINDEX SI_LOAD_SHIFT SND_CNT SND_MAX @@ -2770,21 +2776,21 @@ SOCK_NONBLOCK SOCK_PACKET SOCK_RAW SOCK_RDM +SOF_TIMESTAMPING_OPT_CMSG +SOF_TIMESTAMPING_OPT_ID +SOF_TIMESTAMPING_OPT_PKTINFO +SOF_TIMESTAMPING_OPT_STATS +SOF_TIMESTAMPING_OPT_TSONLY +SOF_TIMESTAMPING_OPT_TX_SWHW SOF_TIMESTAMPING_RAW_HARDWARE SOF_TIMESTAMPING_RX_HARDWARE SOF_TIMESTAMPING_RX_SOFTWARE SOF_TIMESTAMPING_SOFTWARE SOF_TIMESTAMPING_SYS_HARDWARE +SOF_TIMESTAMPING_TX_ACK 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 +SOF_TIMESTAMPING_TX_SOFTWARE SOF_TXTIME_DEADLINE_MODE SOF_TXTIME_REPORT_ERRORS SOL_AAL @@ -2819,11 +2825,11 @@ SO_EE_ORIGIN_LOCAL SO_EE_ORIGIN_NONE SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS -SO_MARK SO_J1939_ERRQUEUE SO_J1939_FILTER SO_J1939_PROMISC SO_J1939_SEND_PRIO +SO_MARK SO_ORIGINAL_DST SO_PASSCRED SO_PASSSEC @@ -3241,9 +3247,19 @@ TP_STATUS_USER TP_STATUS_VLAN_TPID_VALID TP_STATUS_VLAN_VALID TP_STATUS_WRONG_FORMAT +TUN_FLT_ALLMULTI +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_READQ_SIZE TUN_TAP_DEV TUN_TUN_DEV +TUN_TX_TIMESTAMP TUN_TYPE_MASK T_FMT T_FMT_AMPM @@ -3268,12 +3284,13 @@ VMADDR_CID_RESERVED VMADDR_PORT_ANY VREPRINT VSWTC -VWERASE VT0 VT1 VTDLY +VWERASE WEXITED WHOLE_SECONDS +WIRELESS_EXT WNOWAIT WSTOPPED W_EXITCODE @@ -3353,8 +3370,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 @@ -3421,17 +3438,20 @@ _SC_XOPEN_XCU_VERSION _SC_XOPEN_XPG2 _SC_XOPEN_XPG3 _SC_XOPEN_XPG4 +__SIZEOF_PTHREAD_BARRIERATTR_T +__SIZEOF_PTHREAD_BARRIER_T __SIZEOF_PTHREAD_CONDATTR_T __SIZEOF_PTHREAD_COND_T __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 +__c_anonymous_ifc_ifcu +__c_anonymous_ifr_ifru +__c_anonymous_ifru_map __c_anonymous_sockaddr_can_can_addr __c_anonymous_sockaddr_can_j1939 __c_anonymous_sockaddr_can_tp @@ -3459,8 +3479,8 @@ can_err_mask_t can_filter can_frame canfd_frame -canxl_frame canid_t +canxl_frame chroot clearenv clearerr @@ -3496,6 +3516,8 @@ epoll_pwait epoll_wait erand48 eventfd +eventfd_read +eventfd_write execvpe faccessat fallocate @@ -3585,8 +3607,8 @@ idtype_t if_freenameindex if_nameindex ifaddrs -ifreq ifconf +ifreq in6_ifreq in6_pktinfo in6_rtmsg @@ -3603,8 +3625,8 @@ input_event input_id input_keymap_entry input_mask -ip_mreqn ip_mreq_source +ip_mreqn ipc_perm itimerspec j1939_filter @@ -3719,18 +3741,27 @@ posix_spawnattr_t posix_spawnp ppoll prctl -priority_t pread64 preadv +priority_t pthread_attr_getguardsize pthread_attr_getinheritsched -pthread_attr_setinheritsched -pthread_attr_getschedpolicy -pthread_attr_setschedpolicy pthread_attr_getschedparam -pthread_attr_setschedparam +pthread_attr_getschedpolicy pthread_attr_getstack pthread_attr_setguardsize +pthread_attr_setinheritsched +pthread_attr_setschedparam +pthread_attr_setschedpolicy +pthread_barrier_destroy +pthread_barrier_init +pthread_barrier_t +pthread_barrier_wait +pthread_barrierattr_destroy +pthread_barrierattr_getpshared +pthread_barrierattr_init +pthread_barrierattr_setpshared +pthread_barrierattr_t pthread_cancel pthread_condattr_getclock pthread_condattr_getpshared @@ -3746,10 +3777,12 @@ pthread_mutex_consistent pthread_mutex_timedlock pthread_mutexattr_getprotocol pthread_mutexattr_getpshared +pthread_mutexattr_getrobust pthread_mutexattr_setprotocol pthread_mutexattr_setpshared -pthread_mutexattr_getrobust pthread_mutexattr_setrobust +pthread_once +pthread_once_t pthread_rwlockattr_setpshared pthread_setaffinity_np pthread_setname_np @@ -3761,17 +3794,6 @@ 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 @@ -3903,14 +3925,14 @@ syscall sysinfo tee telldir -timerfd_create -timerfd_gettime -timerfd_settime timer_create timer_delete timer_getoverrun timer_gettime timer_settime +timerfd_create +timerfd_gettime +timerfd_settime tmpfile64 tpacket2_hdr tpacket3_hdr @@ -3948,25 +3970,3 @@ vhangup vmsplice wait4 waitid -eventfd_read -eventfd_write -__c_anonymous_ifru_map -__c_anonymous_ifr_ifru -__c_anonymous_ifc_ifcu -NT_PRSTATUS -NT_PRFPREG -NT_FPREGSET -NT_PRPSINFO -NT_PRXREG -NT_TASKSTRUCT -NT_PLATFORM -NT_AUXV -NT_GWINDOWS -NT_ASRS -NT_PSTATUS -NT_PSINFO -NT_PRCRED -NT_UTSNAME -NT_LWPSTATUS -NT_LWPSINFO -NT_PRFPXREG diff --git a/libc-test/semver/macos-aarch64.txt b/libc-test/semver/macos-aarch64.txt index 0dd36ae6a60c8..1a5fcd2ac3fe2 100644 --- a/libc-test/semver/macos-aarch64.txt +++ b/libc-test/semver/macos-aarch64.txt @@ -1,3 +1,3 @@ __darwin_arm_exception_state64 __darwin_arm_neon_state64 -__darwin_arm_thread_state64 \ No newline at end of file +__darwin_arm_thread_state64 diff --git a/libc-test/semver/netbsd-aarch64.txt b/libc-test/semver/netbsd-aarch64.txt index e1cdec5d0af24..10a9af84c6003 100644 --- a/libc-test/semver/netbsd-aarch64.txt +++ b/libc-test/semver/netbsd-aarch64.txt @@ -1,3 +1,7 @@ +PT_GETFPREGS +PT_GETREGS +PT_SETFPREGS +PT_SETREGS _REG_CPSR _REG_ELR _REG_FP @@ -25,14 +29,6 @@ _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 @@ -43,6 +39,7 @@ _REG_X16 _REG_X17 _REG_X18 _REG_X19 +_REG_X2 _REG_X20 _REG_X21 _REG_X22 @@ -53,12 +50,15 @@ _REG_X26 _REG_X27 _REG_X28 _REG_X29 +_REG_X3 _REG_X30 _REG_X31 -PT_GETFPREGS -PT_GETREGS -PT_SETFPREGS -PT_SETREGS +_REG_X4 +_REG_X5 +_REG_X6 +_REG_X7 +_REG_X8 +_REG_X9 __fregset mcontext_t ucontext_t diff --git a/libc-test/semver/netbsd-mips.txt b/libc-test/semver/netbsd-mips.txt index 26d05a44b1163..d64531a1e97e1 100644 --- a/libc-test/semver/netbsd-mips.txt +++ b/libc-test/semver/netbsd-mips.txt @@ -1,4 +1,4 @@ -PT_GETREGS -PT_SETREGS PT_GETFPREGS +PT_GETREGS PT_SETFPREGS +PT_SETREGS diff --git a/libc-test/semver/netbsd-x86_64.txt b/libc-test/semver/netbsd-x86_64.txt index 0931370eeaecd..e3ee466d9fe33 100644 --- a/libc-test/semver/netbsd-x86_64.txt +++ b/libc-test/semver/netbsd-x86_64.txt @@ -1,4 +1,9 @@ Aux64Info +PT_GETFPREGS +PT_GETREGS +PT_SETFPREGS +PT_SETREGS +PT_STEP _REG_DS _REG_ERR _REG_ES @@ -23,8 +28,3 @@ _REG_RSI _REG_RSP _REG_SS _REG_TRAPNO -PT_GETFPREGS -PT_GETREGS -PT_SETFPREGS -PT_SETREGS -PT_STEP diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index cfde7caca0c55..faeb32e76862e 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -83,6 +83,7 @@ AT_PHNUM AT_REMOVEDIR AT_RGID AT_RUID +AT_STACKBASE AT_SUN_CPU AT_SUN_EMUL_ENTRY AT_SUN_EMUL_EXECFD @@ -94,7 +95,6 @@ AT_SUN_LDNAME AT_SUN_LDSHDR AT_SUN_LPGSIZE AT_SUN_PLATFORM -AT_STACKBASE AT_SYMLINK_FOLLOW AT_SYMLINK_NOFOLLOW AT_UCACHEBSIZE @@ -283,8 +283,10 @@ ENOLINK ENOSR ENOSTR ENOTBLK +ENOTRECOVERABLE ENOTSUP EOF +EOWNERDEAD EPROCLIM EPROCUNAVAIL EPROGMISMATCH @@ -322,6 +324,7 @@ EV_ONESHOT EV_RECEIPT EV_SYSFLAGS EXTA +EXTATTR_NAMESPACE_EMPTY EXTATTR_NAMESPACE_SYSTEM EXTATTR_NAMESPACE_USER EXTB @@ -354,28 +357,28 @@ FIONWRITE FIOSETOWN FLUSHO FOPEN_MAX -FUTEX_WAIT -FUTEX_WAKE -FUTEX_FD -FUTEX_REQUEUE -FUTEX_CMP_REQUEUE -FUTEX_WAKE_OP -FUTEX_LOCK_PI -FUTEX_UNLOCK_PI -FUTEX_TRYLOCK_PI -FUTEX_WAIT_BITSET -FUTEX_WAKE_BITSET -FUTEX_WAIT_REQUEUE_PI -FUTEX_CMP_REQUEUE_PI -FUTEX_PRIVATE_FLAG +FUTEX_BITSET_MATCH_ANY FUTEX_CLOCK_REALTIME FUTEX_CMD_MASK -FUTEX_WAITERS +FUTEX_CMP_REQUEUE +FUTEX_CMP_REQUEUE_PI +FUTEX_FD +FUTEX_LOCK_PI FUTEX_OWNER_DIED -FUTEX_SYNCOBJ_1 +FUTEX_PRIVATE_FLAG +FUTEX_REQUEUE FUTEX_SYNCOBJ_0 +FUTEX_SYNCOBJ_1 FUTEX_TID_MASK -FUTEX_BITSET_MATCH_ANY +FUTEX_TRYLOCK_PI +FUTEX_UNLOCK_PI +FUTEX_WAIT +FUTEX_WAITERS +FUTEX_WAIT_BITSET +FUTEX_WAIT_REQUEUE_PI +FUTEX_WAKE +FUTEX_WAKE_BITSET +FUTEX_WAKE_OP F_CLOSEM F_GETNOSIGPIPE F_GETOWN @@ -662,6 +665,7 @@ MNT_DISCARD MNT_EXTATTR MNT_FORCE MNT_IGNORE +MNT_LAZY MNT_LOCAL MNT_LOG MNT_NFS4ACLS @@ -669,6 +673,7 @@ MNT_NOATIME MNT_NOCOREDUMP MNT_NODEV MNT_NODEVMTIME +MNT_NOWAIT MNT_POSIX1EACLS MNT_QUOTA MNT_RELATIME @@ -676,8 +681,6 @@ MNT_SOFTDEP MNT_SYMPERM MNT_UNION MNT_WAIT -MNT_NOWAIT -MNT_LAZY MOD_CLKA MOD_CLKB MOD_ESTERROR @@ -929,31 +932,31 @@ RLIM_INFINITY RLIM_NLIMITS RLIM_SAVED_CUR RLIM_SAVED_MAX -RTF_MASK -RTF_CONNECTED +RTAX_MAX +RTAX_TAG +RTA_TAG RTF_ANNOUNCE -RTF_SRC -RTF_LOCAL RTF_BROADCAST -RTF_UPDATING +RTF_CONNECTED RTF_DONTCHANGEIFA -RTM_VERSION -RTM_LOCK -RTM_IFANNOUNCE -RTM_IEEE80211 -RTM_SETGATE -RTM_LLINFO_UPD -RTM_IFINFO -RTM_OCHGADDR -RTM_NEWADDR -RTM_DELADDR -RTM_CHGADDR -RTA_TAG -RTAX_TAG -RTAX_MAX +RTF_LOCAL +RTF_MASK +RTF_SRC +RTF_UPDATING RTLD_NEXT RTLD_NOLOAD RTLD_SELF +RTM_CHGADDR +RTM_DELADDR +RTM_IEEE80211 +RTM_IFANNOUNCE +RTM_IFINFO +RTM_LLINFO_UPD +RTM_LOCK +RTM_NEWADDR +RTM_OCHGADDR +RTM_SETGATE +RTM_VERSION RUN_LVL RUSAGE_CHILDREN RUSAGE_SELF @@ -1105,6 +1108,8 @@ WNOWAIT WNOZOMBIE WSTOPPED WTRAPPED +XATTR_CREATE +XATTR_REPLACE YESEXPR YESSTR _IOFBF @@ -1167,8 +1172,8 @@ _SC_PASS_MAX _SC_PHYS_PAGES _SC_PRIORITY_SCHEDULING _SC_READER_WRITER_LOCKS -_SC_RE_DUP_MAX _SC_REGEXP +_SC_RE_DUP_MAX _SC_SAVED_IDS _SC_SCHED_PRI_MAX _SC_SCHED_PRI_MIN @@ -1215,9 +1220,9 @@ _cpuset_isset _cpuset_set _cpuset_zero _lwp_park +_lwp_self _lwp_unpark _lwp_unpark_all -_lwp_self abs accept4 accept_filter_arg @@ -1237,8 +1242,9 @@ arphdr backtrace backtrace_symbols backtrace_symbols_fd -backtrace_symbols_fmt backtrace_symbols_fd_fmt +backtrace_symbols_fmt +basename bsearch chflags chroot @@ -1251,6 +1257,7 @@ consttime_memequal daemon difftime dirfd +dirname dl_iterate_phdr dl_phdr_info dqblk @@ -1260,22 +1267,22 @@ duplocale easprintf efopen emalloc +endgrent +endpwent +endservent +endutent +endutxent erand48 erealloc ereallocarr esetfunc estrdup -estrndup estrlcat estrlcpy +estrndup estrtoi estrtou evasprintf -endgrent -endpwent -endservent -endutent -endutxent explicit_memset extattr_delete_fd extattr_delete_file @@ -1283,6 +1290,9 @@ extattr_delete_link extattr_get_fd extattr_get_file extattr_get_link +extattr_list_fd +extattr_list_file +extattr_list_link extattr_namespace_to_string extattr_set_fd extattr_set_file @@ -1294,14 +1304,14 @@ fchflags fdatasync fdopendir fgetxattr -flistxattr -fremovexattr -fsetxattr flags_to_string +flistxattr fmemopen forkpty freeifaddrs freelocale +fremovexattr +fsetxattr fsid_t ftok futimes @@ -1391,12 +1401,12 @@ llistxaatr localeconv_l lockf login +login_tty loginx logout logoutx logwtmp logwtmpx -login_tty lrand48 lremovexattr lsetxattr @@ -1446,11 +1456,11 @@ pollts popen posix_madvise posix_spawn -posix_spawn_file_actions_entry_t posix_spawn_file_actions_addclose posix_spawn_file_actions_adddup2 posix_spawn_file_actions_addopen posix_spawn_file_actions_destroy +posix_spawn_file_actions_entry_t posix_spawn_file_actions_init posix_spawn_file_actions_t posix_spawnattr_destroy @@ -1481,21 +1491,21 @@ pthread_attr_getstack pthread_attr_setguardsize pthread_cancel pthread_condattr_setclock -pthread_getattr_np pthread_getaffinity_np +pthread_getattr_np pthread_getname_np pthread_getschedparam pthread_kill pthread_mutex_timedlock +pthread_setaffinity_np +pthread_setname_np +pthread_setschedparam pthread_spin_destroy pthread_spin_init pthread_spin_lock pthread_spin_trylock pthread_spin_unlock pthread_spinlock_t -pthread_setaffinity_np -pthread_setname_np -pthread_setschedparam ptrace ptrace_io_desc ptrace_lwpinfo @@ -1519,10 +1529,10 @@ regfree regmatch_t regoff_t removexattr -sched_getparam -sched_getscheduler sched_get_priority_max sched_get_priority_min +sched_getparam +sched_getscheduler sched_param sched_rr_get_interval sched_setparam @@ -1579,9 +1589,9 @@ srand48 stack_t strcasecmp strcasestr -string_to_flags strftime strftime_l +string_to_flags strncasecmp strndup strpct @@ -1591,8 +1601,8 @@ sync syscall sysctl sysctlbyname -sysctlnametomib sysctldesc +sysctlnametomib tcp_info telldir timer_create @@ -1619,13 +1629,3 @@ uucred vm_size_t wait4 waitid -dirname -basename -XATTR_CREATE -XATTR_REPLACE -EXTATTR_NAMESPACE_EMPTY -extattr_list_fd -extattr_list_file -extattr_list_link -EOWNERDEAD -ENOTRECOVERABLE diff --git a/libc-test/semver/openbsd.txt b/libc-test/semver/openbsd.txt index ecdf40076fa72..e09df52bb4c1b 100644 --- a/libc-test/semver/openbsd.txt +++ b/libc-test/semver/openbsd.txt @@ -159,8 +159,8 @@ ELAST EMEDIUMTYPE ENEEDAUTH ENOATTR -ENOTBLK ENOMEDIUM +ENOTBLK ENOTRECOVERABLE ENOTSUP ENTER @@ -199,7 +199,6 @@ EV_SYSFLAGS EXTA EXTB EXTPROC -FIND Elf32_Addr Elf32_Half Elf32_Lword @@ -217,6 +216,7 @@ Elf64_Sxword Elf64_Word Elf64_Xword FILENAME_MAX +FIND FIOASYNC FIOGETOWN FIONCLEX @@ -224,10 +224,10 @@ FIONREAD FIOSETOWN FLUSHO FOPEN_MAX +FUTEX_PRIVATE_FLAG +FUTEX_REQUEUE FUTEX_WAIT FUTEX_WAKE -FUTEX_REQUEUE -FUTEX_PRIVATE_FLAG F_GETOWN F_LOCK F_RDLCK @@ -426,6 +426,11 @@ KERN_TTYCOUNT KERN_USERMOUNT KERN_VERSION KERN_WATCHDOG +KI_EMULNAMELEN +KI_MAXCOMLEN +KI_MAXLOGNAME +KI_NGROUPS +KI_WMESGLEN KVE_ADV_NORMAL KVE_ADV_RANDOM KVE_ADV_SEQUENTIAL @@ -447,11 +452,6 @@ KVE_PROT_EXEC KVE_PROT_NONE KVE_PROT_READ KVE_PROT_WRITE -KI_EMULNAMELEN -KI_MAXCOMLEN -KI_MAXLOGNAME -KI_NGROUPS -KI_WMESGLEN LC_ALL LC_ALL_MASK LC_COLLATE @@ -498,15 +498,18 @@ MNT_DOOMED MNT_EXPORTANON MNT_EXRDONLY MNT_FORCE +MNT_LAZY MNT_LOCAL MNT_NOATIME MNT_NODEV MNT_NOPERM +MNT_NOWAIT MNT_QUOTA MNT_ROOTFS MNT_SOFTDEP MNT_STALLED MNT_SWAPPABLE +MNT_WAIT MNT_WANTRDWR MNT_WXALLOWED MON_1 @@ -530,9 +533,6 @@ MSG_DONTWAIT MSG_MCAST MSG_NOSIGNAL MSG_WAITFORONE -MNT_LAZY -MNT_NOWAIT -MNT_WAIT NET_RT_DUMP NET_RT_FLAGS NET_RT_IFLIST @@ -578,11 +578,11 @@ NFSMNT_WANTRCV NFSMNT_WANTSND NFSMNT_WSIZE NFS_ARGSVERSION +NI_DGRAM +NI_NAMEREQD +NI_NOFQDN NI_NUMERICHOST NI_NUMERICSERV -NI_NOFQDN -NI_NAMEREQD -NI_DGRAM NOEXPR NOKERNINFO NOSTR @@ -621,9 +621,6 @@ O_RSYNC O_SHLOCK O_SYNC PENDIN -P_ALL -P_PGID -P_PID PF_APPLETALK PF_BLUETOOTH PF_BPF @@ -698,6 +695,9 @@ PT_SET_EVENT_MASK PT_TRACE_ME PT_WRITE_D PT_WRITE_I +P_ALL +P_PGID +P_PID QCMD Q_GETQUOTA Q_QUOTAOFF @@ -712,8 +712,8 @@ RB_CONFIG RB_DUMP RB_GOODRANDOM RB_HALT -RB_KDB RB_INITNAME +RB_KDB RB_POWERDOWN RB_RESET RB_SERCONS @@ -765,13 +765,6 @@ RLIM_INFINITY RLIM_NLIMITS RLIM_SAVED_CUR RLIM_SAVED_MAX -RTA_BFD -RTA_DNS -RTA_LABEL -RTA_SEARCH -RTA_SRC -RTA_SRCMASK -RTA_STATIC RTAX_BFD RTAX_DNS RTAX_LABEL @@ -780,6 +773,13 @@ RTAX_SEARCH RTAX_SRC RTAX_SRCMASK RTAX_STATIC +RTA_BFD +RTA_DNS +RTA_LABEL +RTA_SEARCH +RTA_SRC +RTA_SRCMASK +RTA_STATIC RTF_ANNOUNCE RTF_BFD RTF_BROADCAST @@ -900,16 +900,16 @@ UTIME_OMIT UT_HOSTSIZE UT_LINESIZE UT_NAMESIZE -WEXITED -WNOWAIT -WSTOPPED -WTRAPPED VDISCARD VDSUSP VLNEXT VREPRINT VSTATUS VWERASE +WEXITED +WNOWAIT +WSTOPPED +WTRAPPED YESEXPR YESSTR _IOFBF @@ -985,8 +985,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 @@ -1258,8 +1258,8 @@ readdir_r readlinkat reallocarray reboot -recvmsg recvmmsg +recvmsg regcomp regerror regex_t diff --git a/libc-test/semver/trusty.txt b/libc-test/semver/trusty.txt index 0c79d05701095..5732a10616da2 100644 --- a/libc-test/semver/trusty.txt +++ b/libc-test/semver/trusty.txt @@ -5,10 +5,6 @@ PROT_READ PROT_WRITE STDERR_FILENO STDOUT_FILENO -calloc -clockid_t -clock_gettime -close c_char c_int c_int16_t @@ -29,6 +25,10 @@ c_ulong c_ulonglong c_ushort c_void +calloc +clock_gettime +clockid_t +close free getauxval iovec @@ -43,7 +43,7 @@ realloc size_t ssize_t strlen -timespec time_t +timespec write writev diff --git a/libc-test/semver/unix.txt b/libc-test/semver/unix.txt index 1ada0edd77b5d..1d5c3ce9c648e 100644 --- a/libc-test/semver/unix.txt +++ b/libc-test/semver/unix.txt @@ -680,8 +680,8 @@ printf protoent pselect pthread_attr_destroy -pthread_attr_init pthread_attr_getstacksize +pthread_attr_init pthread_attr_setdetachstate pthread_attr_setstacksize pthread_attr_t diff --git a/libc-test/semver/wasi-p2.txt b/libc-test/semver/wasi-p2.txt index c2bb8ce791c58..2d1bc774ab30d 100644 --- a/libc-test/semver/wasi-p2.txt +++ b/libc-test/semver/wasi-p2.txt @@ -1,75 +1,75 @@ -sa_family_t -in_port_t -in_addr_t -socklen_t -sockaddr -in_addr -sockaddr_in -in6_addr -sockaddr_in6 -sockaddr_storage -addrinfo -ip_mreq -ipv6_mreq -linger -SHUT_RD -SHUT_WR -SHUT_RDWR -MSG_NOSIGNAL -MSG_PEEK -SO_REUSEADDR -SO_TYPE -SO_ERROR -SO_BROADCAST -SO_SNDBUF -SO_RCVBUF -SO_KEEPALIVE -SO_LINGER -SO_ACCEPTCONN -SO_PROTOCOL -SO_DOMAIN -SO_RCVTIMEO -SO_SNDTIMEO -SOCK_DGRAM -SOCK_STREAM -SOCK_NONBLOCK -SOL_SOCKET -AF_UNSPEC AF_INET AF_INET6 +AF_UNSPEC +EAI_SYSTEM IPPROTO_IP +IPPROTO_IPV6 IPPROTO_TCP IPPROTO_UDP -IPPROTO_IPV6 -IP_TTL -IP_MULTICAST_TTL -IP_MULTICAST_LOOP -IP_ADD_MEMBERSHIP -IP_DROP_MEMBERSHIP -IPV6_UNICAST_HOPS -IPV6_MULTICAST_LOOP +IPV6_ADD_MEMBERSHIP +IPV6_DROP_MEMBERSHIP IPV6_JOIN_GROUP IPV6_LEAVE_GROUP +IPV6_MULTICAST_LOOP +IPV6_UNICAST_HOPS IPV6_V6ONLY -IPV6_ADD_MEMBERSHIP -IPV6_DROP_MEMBERSHIP -TCP_NODELAY +IP_ADD_MEMBERSHIP +IP_DROP_MEMBERSHIP +IP_MULTICAST_LOOP +IP_MULTICAST_TTL +IP_TTL +MSG_NOSIGNAL +MSG_PEEK +SHUT_RD +SHUT_RDWR +SHUT_WR +SOCK_DGRAM +SOCK_NONBLOCK +SOCK_STREAM +SOL_SOCKET +SO_ACCEPTCONN +SO_BROADCAST +SO_DOMAIN +SO_ERROR +SO_KEEPALIVE +SO_LINGER +SO_PROTOCOL +SO_RCVBUF +SO_RCVTIMEO +SO_REUSEADDR +SO_SNDBUF +SO_SNDTIMEO +SO_TYPE +TCP_KEEPCNT TCP_KEEPIDLE TCP_KEEPINTVL -TCP_KEEPCNT -EAI_SYSTEM -socket -connect -bind -listen +TCP_NODELAY accept accept4 -getsockname +addrinfo +bind +connect +freeaddrinfo +gai_strerror +getaddrinfo getpeername -sendto -recvfrom +getsockname getsockopt +in6_addr +in_addr +in_addr_t +in_port_t +ip_mreq +ipv6_mreq +linger +listen +recvfrom +sa_family_t +sendto setsockopt -getaddrinfo -freeaddrinfo -gai_strerror +sockaddr +sockaddr_in +sockaddr_in6 +sockaddr_storage +socket +socklen_t diff --git a/libc-test/semver/wasi.txt b/libc-test/semver/wasi.txt index 975c8155a58cb..0a9e966ff56fa 100644 --- a/libc-test/semver/wasi.txt +++ b/libc-test/semver/wasi.txt @@ -1,5 +1,5 @@ -fd_set +FD_ISSET FD_SET FD_ZERO -FD_ISSET +fd_set select diff --git a/libc-test/semver/windows.txt b/libc-test/semver/windows.txt index fa3fb8efecd38..de7aea0e91a4d 100644 --- a/libc-test/semver/windows.txt +++ b/libc-test/semver/windows.txt @@ -94,25 +94,20 @@ LC_NUMERIC LC_TIME L_tmpnam NSIG -O_RDONLY -O_WRONLY -O_RDWR O_APPEND +O_BINARY O_CREAT -O_TRUNC O_EXCL -O_TEXT -O_BINARY -_O_WTEXT -_O_U16TEXT -_O_U8TEXT -O_RAW O_NOINHERIT -O_TEMPORARY -_O_SHORT_LIVED -_O_OBTAIN_DIR -O_SEQUENTIAL O_RANDOM +O_RAW +O_RDONLY +O_RDWR +O_SEQUENTIAL +O_TEMPORARY +O_TEXT +O_TRUNC +O_WRONLY RAND_MAX SEEK_CUR SEEK_END @@ -142,13 +137,19 @@ TMP_MAX _IOFBF _IOLBF _IONBF +_O_OBTAIN_DIR +_O_SHORT_LIVED +_O_U16TEXT +_O_U8TEXT +_O_WTEXT _exit +_msize abort abs accept access -aligned_malloc aligned_free +aligned_malloc atexit atof atoi @@ -247,7 +248,6 @@ localtime_s lseek lseek64 malloc -_msize memchr memcmp memcpy From 961cc3df39164e45fa00c2eba927dd4316e9440a Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 6 Nov 2024 23:42:31 -0600 Subject: [PATCH 0208/1228] Ensure that semver files are sorted as part of CI (backport ) (cherry picked from commit accd3b29203621c3328ac50e850135bd4d034dcc) --- ci/style.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) mode change 100644 => 100755 ci/style.sh diff --git a/ci/style.sh b/ci/style.sh old mode 100644 new mode 100755 index 923e675b86d32..7b4508a6524ff --- a/ci/style.sh +++ b/ci/style.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env sh +#!/bin/sh set -ex @@ -18,3 +18,13 @@ else exit 1 fi +for file in libc-test/semver/*.txt; do + case "$file" in + *TODO*) continue ;; + esac + + if ! sort -C "$file"; then + echo "Unsorted semver file $file" + exit 1 + fi +done From 251e8e839a22e3d3140091f780e5123d9e8aac15 Mon Sep 17 00:00:00 2001 From: Petr Sumbera Date: Thu, 22 Aug 2024 13:57:54 +0200 Subject: [PATCH 0209/1228] Fixes tests on Solaris (backport ) (cherry picked from commit ec3c338269a499778796072088a1d5a0d9eb186b) --- libc-test/build.rs | 19 ++- libc-test/semver/TODO-unix.txt | 5 + libc-test/semver/unix.txt | 4 - src/unix/mod.rs | 30 +++-- src/unix/solarish/illumos.rs | 225 ++++++++++++++++++++++++++++++-- src/unix/solarish/mod.rs | 213 ++---------------------------- src/unix/solarish/solaris.rs | 152 +++++++++++++++++++-- src/unix/solarish/x86_64.rs | 23 +++- src/unix/solarish/x86_common.rs | 78 +++++------ 9 files changed, 474 insertions(+), 275 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 750b3869205e9..a04816093c29d 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -886,8 +886,6 @@ fn test_solarish(target: &str) { "stdlib.h", "string.h", "sys/auxv.h", - "sys/epoll.h", - "sys/eventfd.h", "sys/file.h", "sys/filio.h", "sys/ioctl.h", @@ -927,6 +925,19 @@ fn test_solarish(target: &str) { "wchar.h", } + if is_illumos { + headers! { cfg: + "sys/epoll.h", + "sys/eventfd.h", + } + } + + if is_solaris { + headers! { cfg: + "sys/lgrp_user_impl.h", + } + } + cfg.skip_type(move |ty| match ty { "sighandler_t" => true, _ => false, @@ -976,7 +987,7 @@ fn test_solarish(target: &str) { // EPOLLEXCLUSIVE is a relatively recent addition to the epoll interface and may not be // defined on older systems. It is, however, safe to use on systems which do not // explicitly support it. (A no-op is an acceptable implementation of EPOLLEXCLUSIVE.) - "EPOLLEXCLUSIVE" => true, + "EPOLLEXCLUSIVE" if is_illumos => true, _ => false, }); @@ -1068,7 +1079,7 @@ fn test_solarish(target: &str) { // These functions may return int or void depending on the exact // configuration of the compilation environment, but the return // value is not useful (always 0) so we can ignore it: - "setservent" | "endservent" if is_illumos => true, + "setservent" | "endservent" => true, // Following illumos#3729, getifaddrs was changed to a // redefine_extname symbol in order to preserve compatibility. diff --git a/libc-test/semver/TODO-unix.txt b/libc-test/semver/TODO-unix.txt index 3a6d318f23994..e9eba8e83a225 100644 --- a/libc-test/semver/TODO-unix.txt +++ b/libc-test/semver/TODO-unix.txt @@ -3,3 +3,8 @@ getpwuid_r pthread_atfork pthread_sigmask +# * Solaris is missing flock(2) +LOCK_EX +LOCK_NB +LOCK_SH +LOCK_UN diff --git a/libc-test/semver/unix.txt b/libc-test/semver/unix.txt index 1d5c3ce9c648e..3470f1f2de160 100644 --- a/libc-test/semver/unix.txt +++ b/libc-test/semver/unix.txt @@ -189,10 +189,6 @@ ISTRIP IXANY IXOFF IXON -LOCK_EX -LOCK_NB -LOCK_SH -LOCK_UN LOG_ALERT LOG_AUTH LOG_CONS diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 318db742bb951..90d6f23b6a9a2 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -622,10 +622,8 @@ extern "C" { target_vendor = "nintendo" )))] #[cfg_attr(target_os = "netbsd", link_name = "__socket30")] - #[cfg_attr( - any(target_os = "illumos", target_os = "solaris"), - link_name = "__xnet_socket" - )] + #[cfg_attr(target_os = "illumos", link_name = "__xnet_socket")] + #[cfg_attr(target_os = "solaris", link_name = "__xnet7_socket")] #[cfg_attr(target_os = "espidf", link_name = "lwip_socket")] pub fn socket(domain: ::c_int, ty: ::c_int, protocol: ::c_int) -> ::c_int; #[cfg(not(all( @@ -931,6 +929,7 @@ extern "C" { pub fn getppid() -> pid_t; pub fn getuid() -> uid_t; pub fn isatty(fd: ::c_int) -> ::c_int; + #[cfg_attr(target_os = "solaris", link_name = "__link_xpg4")] pub fn link(src: *const c_char, dst: *const c_char) -> ::c_int; pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t; pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; @@ -968,7 +967,10 @@ extern "C" { all(target_os = "macos", target_arch = "x86"), link_name = "ttyname_r$UNIX2003" )] - #[cfg_attr(target_os = "illumos", link_name = "__posix_ttyname_r")] + #[cfg_attr( + any(target_os = "illumos", target_os = "solaris"), + link_name = "__posix_ttyname_r" + )] pub fn ttyname_r(fd: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; pub fn unlink(c: *const c_char) -> ::c_int; #[cfg_attr( @@ -1089,8 +1091,6 @@ extern "C" { )] pub fn realpath(pathname: *const ::c_char, resolved: *mut ::c_char) -> *mut ::c_char; - pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__times13")] pub fn times(buf: *mut ::tms) -> ::clock_t; @@ -1399,6 +1399,7 @@ extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__sigpending14")] pub fn sigpending(set: *mut sigset_t) -> ::c_int; + #[cfg_attr(target_os = "solaris", link_name = "__sysconf_xpg7")] pub fn sysconf(name: ::c_int) -> ::c_long; pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; @@ -1452,10 +1453,15 @@ cfg_if! { if #[cfg(not(any(target_os = "emscripten", target_os = "android", target_os = "haiku", - target_os = "nto")))] { + target_os = "nto", + target_os = "solaris")))] { extern "C" { pub fn adjtime(delta: *const timeval, olddelta: *mut timeval) -> ::c_int; } + } else if #[cfg(target_os = "solaris")] { + extern "C" { + pub fn adjtime(delta: *mut timeval, olddelta: *mut timeval) -> ::c_int; + } } } @@ -1477,6 +1483,14 @@ cfg_if! { } } +cfg_if! { + if #[cfg(not(target_os = "solaris"))] { + extern "C" { + pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int; + } + } +} + cfg_if! { if #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] { extern "C" { diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index 9b0a692055e6a..a3a6c54c97756 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -1,3 +1,14 @@ +use exit_status; +use NET_MAC_AWARE; +use NET_MAC_AWARE_INHERIT; +use PRIV_AWARE_RESET; +use PRIV_DEBUG; +use PRIV_PFEXEC; +use PRIV_XPOLICY; + +pub type lgrp_rsrc_t = ::c_int; +pub type lgrp_affinity_t = ::c_int; + s! { pub struct shmid_ds { pub shm_perm: ::ipc_perm, @@ -21,6 +32,123 @@ s! { } } +s_no_extra_traits! { + #[cfg_attr(any( + target_arch = "x86", target_arch = "x86_64"), + repr(packed(4)) + )] + pub struct epoll_event { + pub events: u32, + pub u64: u64, + } + + pub struct utmpx { + pub ut_user: [::c_char; _UTX_USERSIZE], + pub ut_id: [::c_char; _UTX_IDSIZE], + pub ut_line: [::c_char; _UTX_LINESIZE], + pub ut_pid: ::pid_t, + pub ut_type: ::c_short, + pub ut_exit: exit_status, + pub ut_tv: ::timeval, + pub ut_session: ::c_int, + pub ut_pad: [::c_int; _UTX_PADSIZE], + pub ut_syslen: ::c_short, + pub ut_host: [::c_char; _UTX_HOSTSIZE], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for utmpx { + fn eq(&self, other: &utmpx) -> bool { + self.ut_type == other.ut_type + && self.ut_pid == other.ut_pid + && self.ut_user == other.ut_user + && self.ut_line == other.ut_line + && self.ut_id == other.ut_id + && self.ut_exit == other.ut_exit + && self.ut_session == other.ut_session + && self.ut_tv == other.ut_tv + && self.ut_syslen == other.ut_syslen + && self.ut_pad == other.ut_pad + && self + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for utmpx {} + + impl ::fmt::Debug for utmpx { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utmpx") + .field("ut_user", &self.ut_user) + .field("ut_id", &self.ut_id) + .field("ut_line", &self.ut_line) + .field("ut_pid", &self.ut_pid) + .field("ut_type", &self.ut_type) + .field("ut_exit", &self.ut_exit) + .field("ut_tv", &self.ut_tv) + .field("ut_session", &self.ut_session) + .field("ut_pad", &self.ut_pad) + .field("ut_syslen", &self.ut_syslen) + .field("ut_host", &&self.ut_host[..]) + .finish() + } + } + + impl ::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { + self.ut_user.hash(state); + self.ut_type.hash(state); + self.ut_pid.hash(state); + self.ut_line.hash(state); + self.ut_id.hash(state); + self.ut_host.hash(state); + self.ut_exit.hash(state); + self.ut_session.hash(state); + self.ut_tv.hash(state); + self.ut_syslen.hash(state); + self.ut_pad.hash(state); + } + } + + impl PartialEq for epoll_event { + fn eq(&self, other: &epoll_event) -> bool { + self.events == other.events + && self.u64 == other.u64 + } + } + impl Eq for epoll_event {} + impl ::fmt::Debug for epoll_event { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let events = self.events; + let u64 = self.u64; + f.debug_struct("epoll_event") + .field("events", &events) + .field("u64", &u64) + .finish() + } + } + impl ::hash::Hash for epoll_event { + fn hash(&self, state: &mut H) { + let events = self.events; + let u64 = self.u64; + events.hash(state); + u64.hash(state); + } + } + } +} + +pub const _UTX_USERSIZE: usize = 32; +pub const _UTX_LINESIZE: usize = 32; +pub const _UTX_PADSIZE: usize = 5; +pub const _UTX_IDSIZE: usize = 4; +pub const _UTX_HOSTSIZE: usize = 257; + pub const AF_LOCAL: ::c_int = 1; // AF_UNIX pub const AF_FILE: ::c_int = 1; // AF_UNIX @@ -28,8 +156,6 @@ pub const EFD_SEMAPHORE: ::c_int = 0x1; pub const EFD_NONBLOCK: ::c_int = 0x800; pub const EFD_CLOEXEC: ::c_int = 0x80000; -pub const POLLRDHUP: ::c_short = 0x4000; - pub const TCP_KEEPIDLE: ::c_int = 34; pub const TCP_KEEPCNT: ::c_int = 35; pub const TCP_KEEPINTVL: ::c_int = 36; @@ -58,12 +184,68 @@ pub const SOL_FILTER: ::c_int = 0xfffc; pub const MADV_PURGE: ::c_int = 9; -pub const POSIX_FADV_NORMAL: ::c_int = 0; -pub const POSIX_FADV_RANDOM: ::c_int = 1; -pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_FADV_WILLNEED: ::c_int = 3; -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; +pub const SIGINFO: ::c_int = 41; + +pub const O_DIRECT: ::c_int = 0x2000000; + +pub const PBIND_HARD: ::processorid_t = -3; +pub const PBIND_SOFT: ::processorid_t = -4; + +pub const PS_SYSTEM: ::c_int = 1; + +pub const MAP_FILE: ::c_int = 0; + +pub const MAP_32BIT: ::c_int = 0x80; + +pub const AF_NCA: ::c_int = 28; + +pub const PF_NCA: ::c_int = AF_NCA; + +pub const LOCK_SH: ::c_int = 1; +pub const LOCK_EX: ::c_int = 2; +pub const LOCK_NB: ::c_int = 4; +pub const LOCK_UN: ::c_int = 8; + +pub const _PC_LAST: ::c_int = 101; + +pub const VSTATUS: usize = 16; +pub const VERASE2: usize = 17; + +pub const EPOLLIN: ::c_int = 0x1; +pub const EPOLLPRI: ::c_int = 0x2; +pub const EPOLLOUT: ::c_int = 0x4; +pub const EPOLLRDNORM: ::c_int = 0x40; +pub const EPOLLRDBAND: ::c_int = 0x80; +pub const EPOLLWRNORM: ::c_int = 0x100; +pub const EPOLLWRBAND: ::c_int = 0x200; +pub const EPOLLMSG: ::c_int = 0x400; +pub const EPOLLERR: ::c_int = 0x8; +pub const EPOLLHUP: ::c_int = 0x10; +pub const EPOLLET: ::c_int = 0x80000000; +pub const EPOLLRDHUP: ::c_int = 0x2000; +pub const EPOLLONESHOT: ::c_int = 0x40000000; +pub const EPOLLWAKEUP: ::c_int = 0x20000000; +pub const EPOLLEXCLUSIVE: ::c_int = 0x10000000; +pub const EPOLL_CLOEXEC: ::c_int = 0x80000; +pub const EPOLL_CTL_ADD: ::c_int = 1; +pub const EPOLL_CTL_MOD: ::c_int = 3; +pub const EPOLL_CTL_DEL: ::c_int = 2; + +pub const PRIV_USER: ::c_uint = PRIV_DEBUG + | NET_MAC_AWARE + | NET_MAC_AWARE_INHERIT + | PRIV_XPOLICY + | PRIV_AWARE_RESET + | PRIV_PFEXEC; + +pub const LGRP_RSRC_COUNT: ::lgrp_rsrc_t = 2; +pub const LGRP_RSRC_CPU: ::lgrp_rsrc_t = 0; +pub const LGRP_RSRC_MEM: ::lgrp_rsrc_t = 1; + +pub const P_DISABLED: ::c_int = 0x008; + +pub const AT_SUN_HWCAP2: ::c_uint = 2023; +pub const AT_SUN_FPTYPE: ::c_uint = 2027; pub const B1000000: ::speed_t = 24; pub const B1152000: ::speed_t = 25; @@ -80,6 +262,24 @@ pub const SI_ADDRESS_WIDTH: ::c_int = 520; extern "C" { pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; + pub fn epoll_pwait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int, + sigmask: *const ::sigset_t, + ) -> ::c_int; + pub fn epoll_create(size: ::c_int) -> ::c_int; + pub fn epoll_create1(flags: ::c_int) -> ::c_int; + pub fn epoll_wait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int, + ) -> ::c_int; + pub fn epoll_ctl(epfd: ::c_int, op: ::c_int, fd: ::c_int, event: *mut ::epoll_event) + -> ::c_int; + pub fn mincore(addr: ::caddr_t, len: ::size_t, vec: *mut ::c_char) -> ::c_int; pub fn pset_bind_lwp( @@ -105,7 +305,6 @@ extern "C" { stackaddr: *mut ::c_void, ) -> ::c_int; - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advice: ::c_int) -> ::c_int; pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; @@ -114,4 +313,12 @@ extern "C" { pub fn ptsname_r(fildes: ::c_int, name: *mut ::c_char, namelen: ::size_t) -> ::c_int; pub fn syncfs(fd: ::c_int) -> ::c_int; + + pub fn strcasecmp_l(s1: *const ::c_char, s2: *const ::c_char, loc: ::locale_t) -> ::c_int; + pub fn strncasecmp_l( + s1: *const ::c_char, + s2: *const ::c_char, + n: ::size_t, + loc: ::locale_t, + ) -> ::c_int; } diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 7aa6d5fda953a..2e3bc3ed0013d 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -45,8 +45,6 @@ pub type id_t = ::c_int; pub type idtype_t = ::c_uint; pub type shmatt_t = ::c_ulong; -pub type lgrp_rsrc_t = ::c_int; -pub type lgrp_affinity_t = ::c_int; pub type lgrp_id_t = ::id_t; pub type lgrp_mem_size_t = ::c_longlong; pub type lgrp_cookie_t = ::uintptr_t; @@ -241,13 +239,21 @@ s! { pub gl_offs: ::size_t, __unused1: *mut ::c_void, __unused2: ::c_int, + #[cfg(target_os = "illumos")] __unused3: ::c_int, + #[cfg(target_os = "illumos")] __unused4: ::c_int, + #[cfg(target_os = "illumos")] __unused5: *mut ::c_void, + #[cfg(target_os = "illumos")] __unused6: *mut ::c_void, + #[cfg(target_os = "illumos")] __unused7: *mut ::c_void, + #[cfg(target_os = "illumos")] __unused8: *mut ::c_void, + #[cfg(target_os = "illumos")] __unused9: *mut ::c_void, + #[cfg(target_os = "illumos")] __unused10: *mut ::c_void, } @@ -464,7 +470,7 @@ s! { pub mr_flags: ::c_uint, } - pub struct lgrp_affinity_args { + pub struct lgrp_affinity_args_t { pub idtype: ::idtype_t, pub id: ::id_t, pub lgrp: ::lgrp_id_t, @@ -487,33 +493,6 @@ s! { } s_no_extra_traits! { - #[cfg_attr(all( - any(target_arch = "x86", target_arch = "x86_64"), - libc_packedN - ), repr(packed(4)))] - #[cfg_attr(all( - any(target_arch = "x86", target_arch = "x86_64"), - not(libc_packedN) - ), repr(packed))] - pub struct epoll_event { - pub events: u32, - pub u64: u64, - } - - pub struct utmpx { - pub ut_user: [::c_char; _UTX_USERSIZE], - pub ut_id: [::c_char; _UTX_IDSIZE], - pub ut_line: [::c_char; _UTX_LINESIZE], - pub ut_pid: ::pid_t, - pub ut_type: ::c_short, - pub ut_exit: exit_status, - pub ut_tv: ::timeval, - pub ut_session: ::c_int, - pub ut_pad: [::c_int; _UTX_PADSIZE], - pub ut_syslen: ::c_short, - pub ut_host: [::c_char; _UTX_HOSTSIZE], - } - pub struct sockaddr_un { pub sun_family: sa_family_t, pub sun_path: [c_char; 108] @@ -588,88 +567,6 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_type == other.ut_type - && self.ut_pid == other.ut_pid - && self.ut_user == other.ut_user - && self.ut_line == other.ut_line - && self.ut_id == other.ut_id - && self.ut_exit == other.ut_exit - && self.ut_session == other.ut_session - && self.ut_tv == other.ut_tv - && self.ut_syslen == other.ut_syslen - && self.ut_pad == other.ut_pad - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for utmpx {} - - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("utmpx") - .field("ut_user", &self.ut_user) - .field("ut_id", &self.ut_id) - .field("ut_line", &self.ut_line) - .field("ut_pid", &self.ut_pid) - .field("ut_type", &self.ut_type) - .field("ut_exit", &self.ut_exit) - .field("ut_tv", &self.ut_tv) - .field("ut_session", &self.ut_session) - .field("ut_pad", &self.ut_pad) - .field("ut_syslen", &self.ut_syslen) - .field("ut_host", &&self.ut_host[..]) - .finish() - } - } - - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_user.hash(state); - self.ut_type.hash(state); - self.ut_pid.hash(state); - self.ut_line.hash(state); - self.ut_id.hash(state); - self.ut_host.hash(state); - self.ut_exit.hash(state); - self.ut_session.hash(state); - self.ut_tv.hash(state); - self.ut_syslen.hash(state); - self.ut_pad.hash(state); - } - } - - impl PartialEq for epoll_event { - fn eq(&self, other: &epoll_event) -> bool { - self.events == other.events - && self.u64 == other.u64 - } - } - impl Eq for epoll_event {} - impl ::fmt::Debug for epoll_event { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let events = self.events; - let u64 = self.u64; - f.debug_struct("epoll_event") - .field("events", &events) - .field("u64", &u64) - .finish() - } - } - impl ::hash::Hash for epoll_event { - fn hash(&self, state: &mut H) { - let events = self.events; - let u64 = self.u64; - events.hash(state); - u64.hash(state); - } - } - impl PartialEq for sockaddr_un { fn eq(&self, other: &sockaddr_un) -> bool { self.sun_family == other.sun_family @@ -1232,7 +1129,6 @@ pub const FIOGETOWN: ::c_int = 0x4004667b; pub const SIGCHLD: ::c_int = 18; pub const SIGCLD: ::c_int = ::SIGCHLD; pub const SIGBUS: ::c_int = 10; -pub const SIGINFO: ::c_int = 41; pub const SIG_BLOCK: ::c_int = 1; pub const SIG_UNBLOCK: ::c_int = 2; pub const SIG_SETMASK: ::c_int = 3; @@ -1319,7 +1215,6 @@ pub const O_CLOEXEC: ::c_int = 0x800000; pub const O_ACCMODE: ::c_int = 0x600003; pub const O_XATTR: ::c_int = 0x4000; pub const O_DIRECTORY: ::c_int = 0x1000000; -pub const O_DIRECT: ::c_int = 0x2000000; pub const S_IFIFO: mode_t = 0o1_0000; pub const S_IFCHR: mode_t = 0o2_0000; pub const S_IFBLK: mode_t = 0o6_0000; @@ -1436,8 +1331,6 @@ pub const P_PSETID: idtype_t = 15; pub const PBIND_NONE: ::processorid_t = -1; pub const PBIND_QUERY: ::processorid_t = -2; -pub const PBIND_HARD: ::processorid_t = -3; -pub const PBIND_SOFT: ::processorid_t = -4; pub const PS_NONE: ::c_int = -1; pub const PS_QUERY: ::c_int = -2; @@ -1445,7 +1338,6 @@ pub const PS_MYID: ::c_int = -3; pub const PS_SOFT: ::c_int = -4; pub const PS_HARD: ::c_int = -5; pub const PS_QUERY_TYPE: ::c_int = -6; -pub const PS_SYSTEM: ::c_int = 1; pub const PS_PRIVATE: ::c_int = 2; pub const UTIME_OMIT: c_long = -2; @@ -1456,7 +1348,6 @@ pub const PROT_READ: ::c_int = 1; pub const PROT_WRITE: ::c_int = 2; pub const PROT_EXEC: ::c_int = 4; -pub const MAP_FILE: ::c_int = 0; pub const MAP_SHARED: ::c_int = 0x0001; pub const MAP_PRIVATE: ::c_int = 0x0002; pub const MAP_FIXED: ::c_int = 0x0010; @@ -1467,7 +1358,6 @@ pub const MAP_RENAME: ::c_int = 0x20; pub const MAP_ALIGN: ::c_int = 0x200; pub const MAP_TEXT: ::c_int = 0x400; pub const MAP_INITDATA: ::c_int = 0x800; -pub const MAP_32BIT: ::c_int = 0x80; pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; pub const MCL_CURRENT: ::c_int = 0x0001; @@ -1743,7 +1633,6 @@ pub const AF_ROUTE: ::c_int = 24; pub const AF_LINK: ::c_int = 25; pub const AF_INET6: ::c_int = 26; pub const AF_KEY: ::c_int = 27; -pub const AF_NCA: ::c_int = 28; pub const AF_POLICY: ::c_int = 29; pub const AF_INET_OFFLOAD: ::c_int = 30; pub const AF_TRILL: ::c_int = 31; @@ -1779,7 +1668,6 @@ pub const PF_ROUTE: ::c_int = AF_ROUTE; pub const PF_LINK: ::c_int = AF_LINK; pub const PF_INET6: ::c_int = AF_INET6; pub const PF_KEY: ::c_int = AF_KEY; -pub const PF_NCA: ::c_int = AF_NCA; pub const PF_POLICY: ::c_int = AF_POLICY; pub const PF_INET_OFFLOAD: ::c_int = AF_INET_OFFLOAD; pub const PF_TRILL: ::c_int = AF_TRILL; @@ -1939,11 +1827,6 @@ pub const SHUT_RD: ::c_int = 0; pub const SHUT_WR: ::c_int = 1; pub const SHUT_RDWR: ::c_int = 2; -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_NB: ::c_int = 4; -pub const LOCK_UN: ::c_int = 8; - pub const F_RDLCK: ::c_short = 1; pub const F_WRLCK: ::c_short = 2; pub const F_UNLCK: ::c_short = 3; @@ -1981,7 +1864,6 @@ pub const _PC_ACCESS_FILTERING: ::c_int = 25; pub const _PC_TIMESTAMP_RESOLUTION: ::c_int = 26; pub const _PC_FILESIZEBITS: ::c_int = 67; pub const _PC_XATTR_ENABLED: ::c_int = 100; -pub const _PC_LAST: ::c_int = 101; pub const _PC_XATTR_EXISTS: ::c_int = 101; pub const _SC_ARG_MAX: ::c_int = 1; @@ -2197,11 +2079,7 @@ pub const PORT_SOURCE_MQ: ::c_int = 6; pub const PORT_SOURCE_FILE: ::c_int = 7; pub const NONROOT_USR: ::c_short = 2; -pub const _UTX_USERSIZE: usize = 32; -pub const _UTX_LINESIZE: usize = 32; -pub const _UTX_PADSIZE: usize = 5; -pub const _UTX_IDSIZE: usize = 4; -pub const _UTX_HOSTSIZE: usize = 257; + pub const EMPTY: ::c_short = 0; pub const RUN_LVL: ::c_short = 1; pub const BOOT_TIME: ::c_short = 2; @@ -2299,26 +2177,6 @@ pub const TIOCM_RNG: ::c_int = 0o0200; pub const TIOCM_RI: ::c_int = TIOCM_RNG; pub const TIOCM_DSR: ::c_int = 0o0400; -pub const EPOLLIN: ::c_int = 0x1; -pub const EPOLLPRI: ::c_int = 0x2; -pub const EPOLLOUT: ::c_int = 0x4; -pub const EPOLLRDNORM: ::c_int = 0x40; -pub const EPOLLRDBAND: ::c_int = 0x80; -pub const EPOLLWRNORM: ::c_int = 0x100; -pub const EPOLLWRBAND: ::c_int = 0x200; -pub const EPOLLMSG: ::c_int = 0x400; -pub const EPOLLERR: ::c_int = 0x8; -pub const EPOLLHUP: ::c_int = 0x10; -pub const EPOLLET: ::c_int = 0x80000000; -pub const EPOLLRDHUP: ::c_int = 0x2000; -pub const EPOLLONESHOT: ::c_int = 0x40000000; -pub const EPOLLWAKEUP: ::c_int = 0x20000000; -pub const EPOLLEXCLUSIVE: ::c_int = 0x10000000; -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; -pub const EPOLL_CTL_ADD: ::c_int = 1; -pub const EPOLL_CTL_MOD: ::c_int = 3; -pub const EPOLL_CTL_DEL: ::c_int = 2; - /* termios */ pub const B0: speed_t = 0; pub const B50: speed_t = 1; @@ -2420,8 +2278,6 @@ pub const VREPRINT: usize = 12; pub const VDISCARD: usize = 13; pub const VWERASE: usize = 14; pub const VLNEXT: usize = 15; -pub const VSTATUS: usize = 16; -pub const VERASE2: usize = 17; // const STR: ::c_int = (b'S' as ::c_int) << 8; @@ -2537,12 +2393,6 @@ pub const NET_MAC_AWARE_INHERIT: ::c_uint = 0x0020; pub const PRIV_AWARE_RESET: ::c_uint = 0x0040; pub const PRIV_XPOLICY: ::c_uint = 0x0080; pub const PRIV_PFEXEC: ::c_uint = 0x0100; -pub const PRIV_USER: ::c_uint = PRIV_DEBUG - | NET_MAC_AWARE - | NET_MAC_AWARE_INHERIT - | PRIV_XPOLICY - | PRIV_AWARE_RESET - | PRIV_PFEXEC; // sys/systeminfo.h pub const SI_SYSNAME: ::c_int = 1; @@ -2568,9 +2418,6 @@ pub const LGRP_COOKIE_NONE: ::lgrp_cookie_t = 0; pub const LGRP_AFF_NONE: ::lgrp_affinity_t = 0x0; pub const LGRP_AFF_WEAK: ::lgrp_affinity_t = 0x10; pub const LGRP_AFF_STRONG: ::lgrp_affinity_t = 0x100; -pub const LGRP_RSRC_COUNT: ::lgrp_rsrc_t = 2; -pub const LGRP_RSRC_CPU: ::lgrp_rsrc_t = 0; -pub const LGRP_RSRC_MEM: ::lgrp_rsrc_t = 1; pub const LGRP_CONTENT_ALL: ::lgrp_content_t = 0; pub const LGRP_CONTENT_HIERARCHY: ::lgrp_content_t = LGRP_CONTENT_ALL; pub const LGRP_CONTENT_DIRECT: ::lgrp_content_t = 1; @@ -2589,15 +2436,12 @@ pub const P_FAULTED: ::c_int = 0x004; pub const P_POWEROFF: ::c_int = 0x005; pub const P_NOINTR: ::c_int = 0x006; pub const P_SPARE: ::c_int = 0x007; -pub const P_DISABLED: ::c_int = 0x008; pub const P_FORCED: ::c_int = 0x10000000; pub const PI_TYPELEN: ::c_int = 16; pub const PI_FPUTYPE: ::c_int = 32; // sys/auxv.h pub const AT_SUN_HWCAP: ::c_uint = 2009; -pub const AT_SUN_HWCAP2: ::c_uint = 2023; -pub const AT_SUN_FPTYPE: ::c_uint = 2027; // As per sys/socket.h, header alignment must be 8 bytes on SPARC // and 4 bytes everywhere else: @@ -2761,7 +2605,7 @@ extern "C" { pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int; pub fn ioctl(fildes: ::c_int, request: ::c_int, ...) -> ::c_int; - pub fn mprotect(addr: *const ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; pub fn ___errno() -> *mut ::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; @@ -2978,29 +2822,6 @@ extern "C" { pub fn sem_close(sem: *mut sem_t) -> ::c_int; pub fn getdtablesize() -> ::c_int; - // The epoll functions are actually only present on illumos. However, - // there are things using epoll on illumos (built using the - // x86_64-pc-solaris target) which would break until the illumos target is - // present in rustc. - pub fn epoll_pwait( - epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - sigmask: *const ::sigset_t, - ) -> ::c_int; - - pub fn epoll_create(size: ::c_int) -> ::c_int; - pub fn epoll_create1(flags: ::c_int) -> ::c_int; - pub fn epoll_wait( - epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - ) -> ::c_int; - pub fn epoll_ctl(epfd: ::c_int, op: ::c_int, fd: ::c_int, event: *mut ::epoll_event) - -> ::c_int; - #[cfg_attr( any(target_os = "solaris", target_os = "illumos"), link_name = "__posix_getgrnam_r" @@ -3016,6 +2837,7 @@ extern "C" { pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + #[cfg_attr(target_os = "solaris", link_name = "__pthread_kill_xpg7")] pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; @@ -3083,7 +2905,7 @@ extern "C" { pub fn makeutx(ux: *const utmpx) -> *mut utmpx; pub fn modutx(ux: *const utmpx) -> *mut utmpx; - pub fn updwtmpx(file: *const ::c_char, ut: *const utmpx) -> ::c_int; + pub fn updwtmpx(file: *const ::c_char, ut: *mut utmpx); pub fn utmpxname(file: *const ::c_char) -> ::c_int; pub fn getutxent() -> *mut utmpx; pub fn getutxid(ut: *const utmpx) -> *mut utmpx; @@ -3205,13 +3027,6 @@ extern "C" { validity: *mut ::c_uint, ) -> ::c_int; - pub fn strcasecmp_l(s1: *const ::c_char, s2: *const ::c_char, loc: ::locale_t) -> ::c_int; - pub fn strncasecmp_l( - s1: *const ::c_char, - s2: *const ::c_char, - n: ::size_t, - loc: ::locale_t, - ) -> ::c_int; pub fn strsep(string: *mut *mut ::c_char, delim: *const ::c_char) -> *mut ::c_char; pub fn getisax(array: *mut u32, n: ::c_uint) -> ::c_uint; @@ -3261,7 +3076,7 @@ extern "C" { id: ::id_t, lgrp: ::lgrp_id_t, aff: lgrp_affinity_t, - ) -> ::lgrp_affinity_t; + ) -> ::c_int; pub fn lgrp_cpus( cookie: ::lgrp_cookie_t, lgrp: ::lgrp_id_t, diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index 80bad281ea705..62653489af721 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -1,5 +1,23 @@ +use exit_status; +use NET_MAC_AWARE; +use NET_MAC_AWARE_INHERIT; +use PRIV_AWARE_RESET; +use PRIV_DEBUG; +use PRIV_PFEXEC; +use PRIV_XPOLICY; + pub type door_attr_t = ::c_uint; pub type door_id_t = ::c_ulonglong; +pub type lgrp_affinity_t = ::c_uint; + +e! { + #[repr(u32)] + pub enum lgrp_rsrc_t { + LGRP_RSRC_CPU = 0, + LGRP_RSRC_MEM = 1, + LGRP_RSRC_TYPES = 2, + } +} s! { pub struct shmid_ds { @@ -20,13 +38,20 @@ s! { pub shm_pad4: [i64; 1], } + pub struct xrs_t { + pub xrs_id: ::c_ulong, + pub xrs_ptr: *mut ::c_char, + } +} + +s_no_extra_traits! { + #[repr(packed)] + #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] pub struct door_desc_t__d_data__d_desc { pub d_descriptor: ::c_int, pub d_id: ::door_id_t } -} -s_no_extra_traits! { #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] pub union door_desc_t__d_data { pub d_desc: door_desc_t__d_data__d_desc, @@ -48,13 +73,92 @@ s_no_extra_traits! { pub rbuf: *const ::c_char, pub rsize: ::size_t, } + + pub struct utmpx { + pub ut_user: [::c_char; _UTMP_USER_LEN], + pub ut_id: [::c_char; _UTMP_ID_LEN], + pub ut_line: [::c_char; _UTMP_LINE_LEN], + pub ut_pid: ::pid_t, + pub ut_type: ::c_short, + pub ut_exit: exit_status, + pub ut_tv: ::timeval, + pub ut_session: ::c_int, + pub pad: [::c_int; 5], + pub ut_syslen: ::c_short, + pub ut_host: [::c_char; 257], + } + +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for utmpx { + fn eq(&self, other: &utmpx) -> bool { + self.ut_type == other.ut_type + && self.ut_pid == other.ut_pid + && self.ut_user == other.ut_user + && self.ut_line == other.ut_line + && self.ut_id == other.ut_id + && self.ut_exit == other.ut_exit + && self.ut_session == other.ut_session + && self.ut_tv == other.ut_tv + && self.ut_syslen == other.ut_syslen + && self.pad == other.pad + && self + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for utmpx {} + + impl ::fmt::Debug for utmpx { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utmpx") + .field("ut_user", &self.ut_user) + .field("ut_id", &self.ut_id) + .field("ut_line", &self.ut_line) + .field("ut_pid", &self.ut_pid) + .field("ut_type", &self.ut_type) + .field("ut_exit", &self.ut_exit) + .field("ut_tv", &self.ut_tv) + .field("ut_session", &self.ut_session) + .field("pad", &self.pad) + .field("ut_syslen", &self.ut_syslen) + .field("ut_host", &&self.ut_host[..]) + .finish() + } + } + + impl ::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { + self.ut_user.hash(state); + self.ut_type.hash(state); + self.ut_pid.hash(state); + self.ut_line.hash(state); + self.ut_id.hash(state); + self.ut_host.hash(state); + self.ut_exit.hash(state); + self.ut_session.hash(state); + self.ut_tv.hash(state); + self.ut_syslen.hash(state); + self.pad.hash(state); + } + } + } } +pub const _UTMP_USER_LEN: usize = 32; +pub const _UTMP_LINE_LEN: usize = 32; +pub const _UTMP_ID_LEN: usize = 4; + pub const PORT_SOURCE_POSTWAIT: ::c_int = 8; pub const PORT_SOURCE_SIGNAL: ::c_int = 9; -pub const AF_LOCAL: ::c_int = 0; -pub const AF_FILE: ::c_int = 0; +pub const AF_LOCAL: ::c_int = 1; // AF_UNIX +pub const AF_FILE: ::c_int = 1; // AF_UNIX pub const TCP_KEEPIDLE: ::c_int = 0x1d; pub const TCP_KEEPINTVL: ::c_int = 0x1e; @@ -65,6 +169,28 @@ pub const F_DUPFD_CLOFORK: ::c_int = 49; pub const F_DUP2FD_CLOEXEC: ::c_int = 48; pub const F_DUP2FD_CLOFORK: ::c_int = 50; +pub const _PC_LAST: ::c_int = 102; + +pub const PRIV_PROC_SENSITIVE: ::c_uint = 0x0008; +pub const PRIV_PFEXEC_AUTH: ::c_uint = 0x0200; +pub const PRIV_PROC_TPD: ::c_uint = 0x0400; +pub const PRIV_TPD_UNSAFE: ::c_uint = 0x0800; +pub const PRIV_PROC_TPD_RESET: ::c_uint = 0x1000; +pub const PRIV_TPD_KILLABLE: ::c_uint = 0x2000; + +pub const PRIV_USER: ::c_uint = PRIV_DEBUG + | PRIV_PROC_SENSITIVE + | NET_MAC_AWARE + | NET_MAC_AWARE_INHERIT + | PRIV_XPOLICY + | PRIV_AWARE_RESET + | PRIV_PFEXEC + | PRIV_PFEXEC_AUTH + | PRIV_PROC_TPD + | PRIV_TPD_UNSAFE + | PRIV_TPD_KILLABLE + | PRIV_PROC_TPD_RESET; + extern "C" { pub fn fexecve( fd: ::c_int, @@ -72,24 +198,24 @@ extern "C" { envp: *const *const ::c_char, ) -> ::c_int; - pub fn mincore(addr: *const ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; + pub fn mincore(addr: *mut ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; - pub fn door_call(d: ::c_int, params: *const door_arg_t) -> ::c_int; + pub fn door_call(d: ::c_int, params: *mut door_arg_t) -> ::c_int; pub fn door_return( - data_ptr: *const ::c_char, + data_ptr: *mut ::c_char, data_size: ::size_t, - desc_ptr: *const door_desc_t, + desc_ptr: *mut door_desc_t, num_desc: ::c_uint, - ); + ) -> ::c_int; pub fn door_create( server_procedure: extern "C" fn( - cookie: *const ::c_void, - argp: *const ::c_char, + cookie: *mut ::c_void, + argp: *mut ::c_char, arg_size: ::size_t, - dp: *const door_desc_t, + dp: *mut door_desc_t, n_desc: ::c_uint, ), - cookie: *const ::c_void, + cookie: *mut ::c_void, attributes: door_attr_t, ) -> ::c_int; diff --git a/src/unix/solarish/x86_64.rs b/src/unix/solarish/x86_64.rs index bca552f378202..c7cb52c47749e 100644 --- a/src/unix/solarish/x86_64.rs +++ b/src/unix/solarish/x86_64.rs @@ -1,3 +1,9 @@ +cfg_if! { + if #[cfg(target_os = "solaris")] { + use unix::solarish::solaris; + } +} + pub type greg_t = ::c_long; pub type Elf64_Addr = ::c_ulong; @@ -46,6 +52,10 @@ s! { pub dlpi_phnum: ::Elf64_Half, pub dlpi_adds: ::c_ulonglong, pub dlpi_subs: ::c_ulonglong, + #[cfg(target_os = "solaris")] + pub dlpi_tls_modid: ::c_ulong, + #[cfg(target_os = "solaris")] + pub dlpi_tls_data: *mut ::c_void, } } @@ -71,7 +81,18 @@ s_no_extra_traits! { pub uc_sigmask: ::sigset_t, pub uc_stack: ::stack_t, pub uc_mcontext: mcontext_t, - pub uc_filler: [::c_long; 5], + #[cfg(target_os = "illumos")] + pub uc_brand_data: [*mut ::c_void; 3], + #[cfg(target_os = "illumos")] + pub uc_xsave: ::c_long, + #[cfg(target_os = "illumos")] + pub uc_filler: ::c_long, + #[cfg(target_os = "solaris")] + pub uc_xrs: solaris::xrs_t, + #[cfg(target_os = "solaris")] + pub uc_lwpid: ::c_uint, + #[cfg(target_os = "solaris")] + pub uc_filler: [::c_long; 2], } } diff --git a/src/unix/solarish/x86_common.rs b/src/unix/solarish/x86_common.rs index 515f23490db55..e72a22a83b417 100644 --- a/src/unix/solarish/x86_common.rs +++ b/src/unix/solarish/x86_common.rs @@ -26,40 +26,44 @@ pub const AV_386_AES: u32 = 0x4000000; pub const AV_386_PCLMULQDQ: u32 = 0x8000000; pub const AV_386_XSAVE: u32 = 0x10000000; pub const AV_386_AVX: u32 = 0x20000000; -pub const AV_386_VMX: u32 = 0x40000000; -pub const AV_386_AMD_SVM: u32 = 0x80000000; -// AT_SUN_HWCAP2 -pub const AV_386_2_F16C: u32 = 0x00000001; -pub const AV_386_2_RDRAND: u32 = 0x00000002; -pub const AV_386_2_BMI1: u32 = 0x00000004; -pub const AV_386_2_BMI2: u32 = 0x00000008; -pub const AV_386_2_FMA: u32 = 0x00000010; -pub const AV_386_2_AVX2: u32 = 0x00000020; -pub const AV_386_2_ADX: u32 = 0x00000040; -pub const AV_386_2_RDSEED: u32 = 0x00000080; -pub const AV_386_2_AVX512F: u32 = 0x00000100; -pub const AV_386_2_AVX512DQ: u32 = 0x00000200; -pub const AV_386_2_AVX512IFMA: u32 = 0x00000400; -pub const AV_386_2_AVX512PF: u32 = 0x00000800; -pub const AV_386_2_AVX512ER: u32 = 0x00001000; -pub const AV_386_2_AVX512CD: u32 = 0x00002000; -pub const AV_386_2_AVX512BW: u32 = 0x00004000; -pub const AV_386_2_AVX512VL: u32 = 0x00008000; -pub const AV_386_2_AVX512VBMI: u32 = 0x00010000; -pub const AV_386_2_AVX512VPOPCDQ: u32 = 0x00020000; -pub const AV_386_2_AVX512_4NNIW: u32 = 0x00040000; -pub const AV_386_2_AVX512_4FMAPS: u32 = 0x00080000; -pub const AV_386_2_SHA: u32 = 0x00100000; -pub const AV_386_2_FSGSBASE: u32 = 0x00200000; -pub const AV_386_2_CLFLUSHOPT: u32 = 0x00400000; -pub const AV_386_2_CLWB: u32 = 0x00800000; -pub const AV_386_2_MONITORX: u32 = 0x01000000; -pub const AV_386_2_CLZERO: u32 = 0x02000000; -pub const AV_386_2_AVX512_VNNI: u32 = 0x04000000; -pub const AV_386_2_VPCLMULQDQ: u32 = 0x08000000; -pub const AV_386_2_VAES: u32 = 0x10000000; -// AT_SUN_FPTYPE -pub const AT_386_FPINFO_NONE: u32 = 0; -pub const AT_386_FPINFO_FXSAVE: u32 = 1; -pub const AT_386_FPINFO_XSAVE: u32 = 2; -pub const AT_386_FPINFO_XSAVE_AMD: u32 = 3; +cfg_if! { + if #[cfg(target_os = "illumos")] { + pub const AV_386_VMX: u32 = 0x40000000; + pub const AV_386_AMD_SVM: u32 = 0x80000000; + // AT_SUN_HWCAP2 + pub const AV_386_2_F16C: u32 = 0x00000001; + pub const AV_386_2_RDRAND: u32 = 0x00000002; + pub const AV_386_2_BMI1: u32 = 0x00000004; + pub const AV_386_2_BMI2: u32 = 0x00000008; + pub const AV_386_2_FMA: u32 = 0x00000010; + pub const AV_386_2_AVX2: u32 = 0x00000020; + pub const AV_386_2_ADX: u32 = 0x00000040; + pub const AV_386_2_RDSEED: u32 = 0x00000080; + pub const AV_386_2_AVX512F: u32 = 0x00000100; + pub const AV_386_2_AVX512DQ: u32 = 0x00000200; + pub const AV_386_2_AVX512IFMA: u32 = 0x00000400; + pub const AV_386_2_AVX512PF: u32 = 0x00000800; + pub const AV_386_2_AVX512ER: u32 = 0x00001000; + pub const AV_386_2_AVX512CD: u32 = 0x00002000; + pub const AV_386_2_AVX512BW: u32 = 0x00004000; + pub const AV_386_2_AVX512VL: u32 = 0x00008000; + pub const AV_386_2_AVX512VBMI: u32 = 0x00010000; + pub const AV_386_2_AVX512VPOPCDQ: u32 = 0x00020000; + pub const AV_386_2_AVX512_4NNIW: u32 = 0x00040000; + pub const AV_386_2_AVX512_4FMAPS: u32 = 0x00080000; + pub const AV_386_2_SHA: u32 = 0x00100000; + pub const AV_386_2_FSGSBASE: u32 = 0x00200000; + pub const AV_386_2_CLFLUSHOPT: u32 = 0x00400000; + pub const AV_386_2_CLWB: u32 = 0x00800000; + pub const AV_386_2_MONITORX: u32 = 0x01000000; + pub const AV_386_2_CLZERO: u32 = 0x02000000; + pub const AV_386_2_AVX512_VNNI: u32 = 0x04000000; + pub const AV_386_2_VPCLMULQDQ: u32 = 0x08000000; + pub const AV_386_2_VAES: u32 = 0x10000000; + // AT_SUN_FPTYPE + pub const AT_386_FPINFO_NONE: u32 = 0; + pub const AT_386_FPINFO_FXSAVE: u32 = 1; + pub const AT_386_FPINFO_XSAVE: u32 = 2; + pub const AT_386_FPINFO_XSAVE_AMD: u32 = 3; + } +} From cd4455827518a84367ba09971cf0261e727714a3 Mon Sep 17 00:00:00 2001 From: Rain Date: Sun, 27 Oct 2024 20:55:36 -0700 Subject: [PATCH 0210/1228] [illumos] add some recently-added constants Constants added from [this commit]. [this commit]: https://github.com/illumos/illumos-gate/commit/0250c53ad267726f2438e3c6556199a0bbf588a2 Additionally, resolves some issues introduced in ec3c3382 ("Fix tests on Solaris"). [ add note about fixing ec3c3382 - Trevor ] (backport ) (cherry picked from commit e2a23f0ea6714e7672f9054ff084659acef9465a) --- libc-test/semver/illumos.txt | 8 ++++++++ src/unix/solarish/illumos.rs | 19 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/libc-test/semver/illumos.txt b/libc-test/semver/illumos.txt index df91859b46655..433a6a1816240 100644 --- a/libc-test/semver/illumos.txt +++ b/libc-test/semver/illumos.txt @@ -1,3 +1,11 @@ +FD_CLOFORK +F_DUP2FD_CLOEXEC +F_DUP2FD_CLOFORK +F_DUP3FD +F_DUPFD_CLOFORK +MSG_CMSG_CLOEXEC +MSG_CMSG_CLOFORK +O_CLOFORK O_RSYNC POLLRDHUP POSIX_FADV_DONTNEED diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index a3a6c54c97756..121b5fa06fe7b 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -156,6 +156,8 @@ pub const EFD_SEMAPHORE: ::c_int = 0x1; pub const EFD_NONBLOCK: ::c_int = 0x800; pub const EFD_CLOEXEC: ::c_int = 0x80000; +pub const POLLRDHUP: ::c_short = 0x4000; + pub const TCP_KEEPIDLE: ::c_int = 34; pub const TCP_KEEPCNT: ::c_int = 35; pub const TCP_KEEPINTVL: ::c_int = 36; @@ -171,7 +173,12 @@ pub const F_FLOCK: ::c_int = 53; pub const F_FLOCKW: ::c_int = 54; pub const F_DUPFD_CLOEXEC: ::c_int = 37; +pub const F_DUPFD_CLOFORK: ::c_int = 58; pub const F_DUP2FD_CLOEXEC: ::c_int = 36; +pub const F_DUP2FD_CLOFORK: ::c_int = 57; +pub const F_DUP3FD: ::c_int = 59; + +pub const FD_CLOFORK: ::c_int = 2; pub const FIL_ATTACH: ::c_int = 0x1; pub const FIL_DETACH: ::c_int = 0x2; @@ -184,9 +191,20 @@ pub const SOL_FILTER: ::c_int = 0xfffc; pub const MADV_PURGE: ::c_int = 9; +pub const POSIX_FADV_NORMAL: ::c_int = 0; +pub const POSIX_FADV_RANDOM: ::c_int = 1; +pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; +pub const POSIX_FADV_WILLNEED: ::c_int = 3; +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + pub const SIGINFO: ::c_int = 41; pub const O_DIRECT: ::c_int = 0x2000000; +pub const O_CLOFORK: ::c_int = 0x4000000; + +pub const MSG_CMSG_CLOEXEC: ::c_int = 0x1000; +pub const MSG_CMSG_CLOFORK: ::c_int = 0x2000; pub const PBIND_HARD: ::processorid_t = -3; pub const PBIND_SOFT: ::processorid_t = -4; @@ -305,6 +323,7 @@ extern "C" { stackaddr: *mut ::c_void, ) -> ::c_int; + pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advice: ::c_int) -> ::c_int; pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; From 61150a45bb3bed879ec69ec487166e18835c1aae Mon Sep 17 00:00:00 2001 From: Petr Sumbera Date: Wed, 6 Nov 2024 13:41:40 +0100 Subject: [PATCH 0211/1228] Fix definition of FNM_CASEFOLD for Illumos/Solaris Illumos reference (originally included in Solaris): https://github.com/illumos/illumos-gate/blob/aaceae985c2e78cadef76bf0b7b50ed887ccb3a6/usr/src/head/fnmatch.h#L41 (backport ) (cherry picked from commit 98a20b31de909c0d499de2db67482872430e6e04) --- src/unix/mod.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 90d6f23b6a9a2..d26d9053558ee 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -314,9 +314,19 @@ pub const ATF_PUBL: ::c_int = 0x08; pub const ATF_USETRAILERS: ::c_int = 0x10; pub const FNM_PERIOD: c_int = 1 << 2; -pub const FNM_CASEFOLD: c_int = 1 << 4; pub const FNM_NOMATCH: c_int = 1; +cfg_if! { + if #[cfg(any( + target_os = "illumos", + target_os = "solaris", + ))] { + pub const FNM_CASEFOLD: c_int = 1 << 3; + } else { + pub const FNM_CASEFOLD: c_int = 1 << 4; + } +} + cfg_if! { if #[cfg(any( target_os = "macos", From 2518f3e91cde3e7a4b0607f78192f812d7361591 Mon Sep 17 00:00:00 2001 From: Nathaniel Bennett Date: Mon, 30 Sep 2024 22:38:35 -0400 Subject: [PATCH 0212/1228] FreeBSD: Add ucontext_t, mcontext_t for all archs (#3848) [ gate ppc under `cfg(libc_align)` and adjust `Debug` implementations to meet msrv - Trevor ] (backport ) (cherry picked from commit 2053d5b1d82d8cef862c5630d5968381c89e7fe4) --- libc-test/semver/freebsd-x86_64.txt | 2 - libc-test/semver/freebsd.txt | 2 + src/unix/bsd/freebsdlike/freebsd/arm.rs | 44 +++++++++++++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 21 ++++++ src/unix/bsd/freebsdlike/freebsd/powerpc.rs | 66 +++++++++++++++++++ src/unix/bsd/freebsdlike/freebsd/powerpc64.rs | 66 +++++++++++++++++++ src/unix/bsd/freebsdlike/freebsd/x86.rs | 14 +--- .../bsd/freebsdlike/freebsd/x86_64/align.rs | 11 ---- 8 files changed, 201 insertions(+), 25 deletions(-) diff --git a/libc-test/semver/freebsd-x86_64.txt b/libc-test/semver/freebsd-x86_64.txt index be73d1f7290fe..14ddc25a1b254 100644 --- a/libc-test/semver/freebsd-x86_64.txt +++ b/libc-test/semver/freebsd-x86_64.txt @@ -13,8 +13,6 @@ _MC_HASSEGS fpreg fpreg32 max_align_t -mcontext_t reg reg32 -ucontext_t xmmreg diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index c9944d1d791f7..e3418ef7d220e 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -2028,6 +2028,7 @@ mallctl mallctlbymib mallctlnametomib mallocx +mcontext_t memmem memrchr memset_s @@ -2358,6 +2359,7 @@ timer_t timex truncate ttyname_r +ucontext_t unmount useconds_t uselocale diff --git a/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/unix/bsd/freebsdlike/freebsd/arm.rs index 8ff500c65981c..965abd33f0a48 100644 --- a/src/unix/bsd/freebsdlike/freebsd/arm.rs +++ b/src/unix/bsd/freebsdlike/freebsd/arm.rs @@ -5,6 +5,49 @@ pub type wchar_t = u32; pub type time_t = i64; pub type suseconds_t = i32; pub type register_t = i32; +pub type __greg_t = ::c_uint; +pub type __gregset_t = [::__greg_t; 17]; + +s_no_extra_traits! { + pub struct mcontext_t { + pub __gregs: ::__gregset_t, + pub mc_vfp_size: ::__size_t, + pub mc_vfp_ptr: *mut ::c_void, + pub mc_spare: [::c_uint; 33], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for mcontext_t { + fn eq(&self, other: &mcontext_t) -> bool { + self.__gregs == other.__gregs && + self.mc_vfp_size == other.mc_vfp_size && + self.mc_vfp_ptr == other.mc_vfp_ptr && + self.mc_spare.iter().zip(other.mc_spare.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("__gregs", &self.__gregs) + .field("mc_vfp_size", &self.mc_vfp_size) + .field("mc_vfp_ptr", &self.mc_vfp_ptr) + .field("mc_spare", &self.mc_spare) + .finish() + } + } + impl ::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { + self.__gregs.hash(state); + self.mc_vfp_size.hash(state); + self.mc_vfp_ptr.hash(state); + self.mc_spare.hash(state); + } + } + } +} // should be pub(crate), but that requires Rust 1.18.0 cfg_if! { @@ -16,5 +59,6 @@ cfg_if! { pub const _ALIGNBYTES: usize = 4 - 1; } } + pub const MAP_32BIT: ::c_int = 0x00080000; pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4 diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index a15987df10775..dda108e8c0ef2 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1654,6 +1654,15 @@ s_no_extra_traits! { _kf_cap_spare: u64, pub kf_path: [::c_char; ::PATH_MAX as usize], } + + 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], + } } cfg_if! { @@ -2656,6 +2665,18 @@ cfg_if! { self.kf_path.hash(state); } } + + impl ::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ucontext_t") + .field("uc_sigmask", &self.uc_sigmask) + .field("uc_mcontext", &self.uc_mcontext) + .field("uc_link", &self.uc_link) + .field("uc_stack", &self.uc_stack) + .field("uc_flags", &self.uc_flags) + .finish() + } + } } } diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs index f84062ba34b93..d856e80226746 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs @@ -6,6 +6,72 @@ pub type time_t = i64; pub type suseconds_t = i32; pub type register_t = i32; +cfg_if! { + if #[cfg(libc_align)] { + s_no_extra_traits! { + #[repr(align(16))] + pub struct mcontext_t { + pub mc_vers: ::c_int, + pub mc_flags: ::c_int, + pub mc_onstack: ::c_int, + pub mc_len: ::c_int, + pub mc_avec: [u64; 64], + pub mc_av: [u32; 2], + pub mc_frame: [::register_t; 42], + pub mc_fpreg: [u64; 33], + pub mc_vsxfpreg: [u64; 32], + } + } + } +} + +cfg_if! { + if #[cfg(all(libc_align, feature = "extra_traits"))] { + impl PartialEq for mcontext_t { + fn eq(&self, other: &mcontext_t) -> bool { + self.mc_vers == other.mc_vers && + self.mc_flags == other.mc_flags && + self.mc_onstack == other.mc_onstack && + self.mc_len == other.mc_len && + self.mc_avec == other.mc_avec && + self.mc_av == other.mc_av && + self.mc_frame == other.mc_frame && + self.mc_fpreg == other.mc_fpreg && + self.mc_vsxfpreg == other.mc_vsxfpreg + } + } + 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_vers", &self.mc_vers) + .field("mc_flags", &self.mc_flags) + .field("mc_onstack", &self.mc_onstack) + .field("mc_len", &self.mc_len) + .field("mc_avec", &self.mc_avec) + .field("mc_av", &self.mc_av) + .field("mc_frame", &self.mc_frame) + .field("mc_fpreg", &self.mc_fpreg) + .field("mc_vsxfpreg", &self.mc_vsxfpreg) + .finish() + } + } + impl ::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { + self.mc_vers.hash(state); + self.mc_flags.hash(state); + self.mc_onstack.hash(state); + self.mc_len.hash(state); + self.mc_avec.hash(state); + self.mc_av.hash(state); + self.mc_frame.hash(state); + self.mc_fpreg.hash(state); + self.mc_vsxfpreg.hash(state); + } + } + } +} + // should be pub(crate), but that requires Rust 1.18.0 cfg_if! { if #[cfg(libc_const_size_of)] { diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs index 69cf4c5fc88c7..ec1c17e32db3f 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs @@ -6,6 +6,72 @@ pub type time_t = i64; pub type suseconds_t = i64; pub type register_t = i64; +cfg_if! { + if #[cfg(libc_align)] { + s_no_extra_traits! { + #[repr(align(16))] + pub struct mcontext_t { + pub mc_vers: ::c_int, + pub mc_flags: ::c_int, + pub mc_onstack: ::c_int, + pub mc_len: ::c_int, + pub mc_avec: [u64; 64], + pub mc_av: [u32; 2], + pub mc_frame: [::register_t; 42], + pub mc_fpreg: [u64; 33], + pub mc_vsxfpreg: [u64; 32], + } + } + } +} + +cfg_if! { + if #[cfg(all(libc_align, feature = "extra_traits"))] { + impl PartialEq for mcontext_t { + fn eq(&self, other: &mcontext_t) -> bool { + self.mc_vers == other.mc_vers && + self.mc_flags == other.mc_flags && + self.mc_onstack == other.mc_onstack && + self.mc_len == other.mc_len && + self.mc_avec == other.mc_avec && + self.mc_av == other.mc_av && + self.mc_frame == other.mc_frame && + self.mc_fpreg == other.mc_fpreg && + self.mc_vsxfpreg == other.mc_vsxfpreg + } + } + 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_vers", &self.mc_vers) + .field("mc_flags", &self.mc_flags) + .field("mc_onstack", &self.mc_onstack) + .field("mc_len", &self.mc_len) + .field("mc_avec", &self.mc_avec) + .field("mc_av", &self.mc_av) + .field("mc_frame", &self.mc_frame) + .field("mc_fpreg", &self.mc_fpreg) + .field("mc_vsxfpreg", &self.mc_vsxfpreg) + .finish() + } + } + impl ::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { + self.mc_vers.hash(state); + self.mc_flags.hash(state); + self.mc_onstack.hash(state); + self.mc_len.hash(state); + self.mc_avec.hash(state); + self.mc_av.hash(state); + self.mc_frame.hash(state); + self.mc_fpreg.hash(state); + self.mc_vsxfpreg.hash(state); + } + } + } +} + // should be pub(crate), but that requires Rust 1.18.0 cfg_if! { if #[cfg(libc_const_size_of)] { diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index 31a660e7d0a22..e33c8e4adae7b 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -41,17 +41,6 @@ s_no_extra_traits! { } } -s! { - 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 cfg_if! { if #[cfg(libc_const_size_of)] { @@ -127,7 +116,8 @@ cfg_if! { .field("mc_fpformat", &self.mc_fpformat) .field("mc_ownedfp", &self.mc_ownedfp) .field("mc_flags", &self.mc_flags) - .field("mc_fpstate", &self.mc_fpstate) + // FIXME(msrv) debug not supported for arrays in old MSRV + // .field("mc_fpstate", &self.mc_fpstate) .field("mc_fsbase", &self.mc_fsbase) .field("mc_gsbase", &self.mc_gsbase) .field("mc_xfpustate", &self.mc_xfpustate) diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs index 3a016a0519852..208e7f2c90c0a 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs @@ -184,14 +184,3 @@ cfg_if! { } } } - -s! { - 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], - } -} From fabc6d10a4ab1c3bca79da0ee2038d4c27532765 Mon Sep 17 00:00:00 2001 From: Callum Thomson Date: Tue, 24 Sep 2024 19:10:55 +0100 Subject: [PATCH 0213/1228] Fix alignment of uc_ucontext fields on arm64 android (#3894) [ change `core` to `::core` and move ucontext_t to s_no_extra_traits for backport - Trevor ] (backport ) (cherry picked from commit 707d32cddd461854c81af494f2f488b273520586) --- src/unix/linux_like/android/b64/aarch64/align.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/unix/linux_like/android/b64/aarch64/align.rs b/src/unix/linux_like/android/b64/aarch64/align.rs index 154c2c54ce6de..9832303d7ac46 100644 --- a/src/unix/linux_like/android/b64/aarch64/align.rs +++ b/src/unix/linux_like/android/b64/aarch64/align.rs @@ -4,17 +4,19 @@ s_no_extra_traits! { pub struct max_align_t { priv_: [f32; 8] } -} -s! { + #[allow(missing_debug_implementations)] pub struct ucontext_t { pub uc_flags: ::c_ulong, pub uc_link: *mut ucontext_t, pub uc_stack: ::stack_t, pub uc_sigmask: ::sigset_t, + pub __pad: [u8; 1024 / 8 - ::core::mem::size_of::<::sigset_t>()], pub uc_mcontext: mcontext_t, } +} +s! { #[repr(align(16))] pub struct mcontext_t { pub fault_address: ::c_ulonglong, From 39e6c0963bf522f9eb36e796d823e342c720779d Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Mon, 23 Sep 2024 10:25:07 -0600 Subject: [PATCH 0214/1228] Fix the definition of mc_fpstate on FreeBSD x86 The definition added in b811b70f6676a24c16a786a3549eb6b35071c13c was technically wrong even though the type size was correct. It was probably defined this way because earlier versions of Rust had difficulty with fixed-size arrays of size greater than 32. This change is necessary for CI to pass on x86 FreeBSD. https://github.com/freebsd/freebsd-src/blob/main/sys/x86/include/ucontext.h (backport ) (cherry picked from commit ad2d864d0a75eb9d9c2c44a03b31fa6a7045ce5f) --- src/unix/bsd/freebsdlike/freebsd/x86.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index e33c8e4adae7b..5cb9cb6406eab 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -32,7 +32,7 @@ s_no_extra_traits! { pub mc_fpformat: ::c_int, pub mc_ownedfp: ::c_int, pub mc_flags: register_t, - pub mc_fpstate: [[::c_int; 32]; 4], + pub mc_fpstate: [::c_int; 128], pub mc_fsbase: register_t, pub mc_gsbase: register_t, pub mc_xfpustate: register_t, From c8a0faf826d91b7609cff1ade2072e50f07464ed Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Fri, 27 Sep 2024 17:19:51 -0600 Subject: [PATCH 0215/1228] Fix alignment of mcontext_t on FreeBSD x86 https://github.com/freebsd/freebsd-src/blob/main/sys/x86/include/ucontext.h (backport ) (cherry picked from commit 908fc71c07262473dba532fd83f4494276b1b2ec) --- src/unix/bsd/freebsdlike/freebsd/x86.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index 5cb9cb6406eab..72d8add09ae83 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -7,6 +7,7 @@ pub type suseconds_t = i32; pub type register_t = i32; s_no_extra_traits! { + #[repr(align(16))] pub struct mcontext_t { pub mc_onstack: register_t, pub mc_gs: register_t, From b5aeb939e7c5205569a4364b81f627a843d7aa76 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 6 Nov 2024 16:11:47 -0600 Subject: [PATCH 0216/1228] Gate FreeBSD `mcontext_t` under `libc_align` Enable this backport by just dropping support for FreeBSD mcontext_t without `libc_align`, i.e. with Rust < 1.25 (2018). This is sufficiently niche that it is not worth adding a new `align` module. --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 4 +- src/unix/bsd/freebsdlike/freebsd/x86.rs | 72 +++++++++++++------------ 2 files changed, 41 insertions(+), 35 deletions(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index dda108e8c0ef2..4551f405a48df 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1657,6 +1657,7 @@ s_no_extra_traits! { pub struct ucontext_t { pub uc_sigmask: ::sigset_t, + #[cfg(libc_align)] pub uc_mcontext: ::mcontext_t, pub uc_link: *mut ::ucontext_t, pub uc_stack: ::stack_t, @@ -2670,7 +2671,8 @@ cfg_if! { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("ucontext_t") .field("uc_sigmask", &self.uc_sigmask) - .field("uc_mcontext", &self.uc_mcontext) + // FIXME: enable when libc_align is dropped + // .field("uc_mcontext", &self.uc_mcontext) .field("uc_link", &self.uc_link) .field("uc_stack", &self.uc_stack) .field("uc_flags", &self.uc_flags) diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index 72d8add09ae83..fce0e7940f9ca 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -6,39 +6,43 @@ pub type time_t = i32; pub type suseconds_t = i32; pub type register_t = i32; -s_no_extra_traits! { - #[repr(align(16))] - 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; 128], - 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], +cfg_if! { + if #[cfg(libc_align)] { + s_no_extra_traits! { + #[repr(align(16))] + 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; 128], + 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], + } + } } } @@ -54,7 +58,7 @@ cfg_if! { } cfg_if! { - if #[cfg(feature = "extra_traits")] { + if #[cfg(all(libc_align, feature = "extra_traits"))] { impl PartialEq for mcontext_t { fn eq(&self, other: &mcontext_t) -> bool { self.mc_onstack == other.mc_onstack && From 36b034994d96a9fb57e49fb3fa1df7fa10764fec Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Mon, 23 Sep 2024 11:06:35 -0600 Subject: [PATCH 0217/1228] Fix the definition of domainset_t in 32-bit FreeBSD It's always had the wrong size, but apparently never been tested on 32-bit FreeBSD. In addition to fixing its size, it ought to be moved info freebsd/mod.rs . Otherwise it's pretty much inaccessible to everyone. https://github.com/freebsd/freebsd-src/blob/main/sys/sys/_domainset.h (backport ) (cherry picked from commit 19d213d883cbe8a321fa2b0b559479f9033ac374) --- src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs | 5 ++++- src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs | 5 ++++- src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs index 118404e8b089b..e6cc1fad0b591 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -41,7 +41,10 @@ s! { } pub struct __c_anonymous_domainset { - _priv: [::uintptr_t; 4], + #[cfg(target_pointer_width = "64")] + _priv: [::c_ulong; 4], + #[cfg(target_pointer_width = "32")] + _priv: [::c_ulong; 8], } pub struct kinfo_proc { diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index e624dd7201b0a..1c58bb4b5afcf 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -41,7 +41,10 @@ s! { } pub struct __c_anonymous_domainset { - _priv: [::uintptr_t; 4], + #[cfg(target_pointer_width = "64")] + _priv: [::c_ulong; 4], + #[cfg(target_pointer_width = "32")] + _priv: [::c_ulong; 8], } pub struct kinfo_proc { diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index a299af7d5d53e..00ea22a041a7d 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -41,7 +41,10 @@ s! { } pub struct __c_anonymous_domainset { - _priv: [::uintptr_t; 4], + #[cfg(target_pointer_width = "64")] + _priv: [::c_ulong; 4], + #[cfg(target_pointer_width = "32")] + _priv: [::c_ulong; 8], } pub struct kinfo_proc { From d56110e5ad2365f880e42129bdb829b733c9635a Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Fri, 27 Sep 2024 17:26:09 -0600 Subject: [PATCH 0218/1228] Fix definition of TIOCTIMESTAMP on FreeBSD x86 https://github.com/freebsd/freebsd-src/blob/main/sys/sys/ttycom.h (backport ) (cherry picked from commit 60cf16dd91bf20d68ace4c2391a4f74c80a32d78) --- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 1 + src/unix/bsd/freebsdlike/freebsd/aarch64.rs | 1 + src/unix/bsd/freebsdlike/freebsd/arm.rs | 1 + src/unix/bsd/freebsdlike/freebsd/powerpc.rs | 1 + src/unix/bsd/freebsdlike/freebsd/powerpc64.rs | 1 + src/unix/bsd/freebsdlike/freebsd/riscv64.rs | 1 + src/unix/bsd/freebsdlike/freebsd/x86.rs | 1 + src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs | 2 ++ src/unix/bsd/freebsdlike/mod.rs | 1 - 9 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 9b3b872d03948..7bff483df6ae5 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -1462,6 +1462,7 @@ pub const TIOCISPTMASTER: ::c_ulong = 0x20007455; pub const TIOCMODG: ::c_ulong = 0x40047403; pub const TIOCMODS: ::c_ulong = 0x80047404; pub const TIOCREMOTE: ::c_ulong = 0x80047469; +pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; // Constants used by "at" family of system calls. pub const AT_FDCWD: ::c_int = 0xFFFAFDCD; // invalid file descriptor diff --git a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs index e8be8815c028e..7dc0fd0ff938f 100644 --- a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs @@ -144,3 +144,4 @@ cfg_if! { pub const MAP_32BIT: ::c_int = 0x00080000; pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4 +pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/unix/bsd/freebsdlike/freebsd/arm.rs index 965abd33f0a48..774018f0a89f9 100644 --- a/src/unix/bsd/freebsdlike/freebsd/arm.rs +++ b/src/unix/bsd/freebsdlike/freebsd/arm.rs @@ -62,3 +62,4 @@ cfg_if! { pub const MAP_32BIT: ::c_int = 0x00080000; pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4 +pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs index d856e80226746..bd72039a71a8e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs @@ -85,3 +85,4 @@ cfg_if! { pub const MAP_32BIT: ::c_int = 0x00080000; pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 +pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs index ec1c17e32db3f..b891cc1b75d4f 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs @@ -85,3 +85,4 @@ cfg_if! { pub const MAP_32BIT: ::c_int = 0x00080000; pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 +pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs index f9fa1c2750b22..37989883cdb09 100644 --- a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs @@ -152,3 +152,4 @@ cfg_if! { pub const MAP_32BIT: ::c_int = 0x00080000; pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4 +pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index fce0e7940f9ca..b1f1b0433be4c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -171,3 +171,4 @@ cfg_if! { pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 pub const KINFO_FILE_SIZE: ::c_int = 1392; +pub const TIOCTIMESTAMP: ::c_ulong = 0x40087459; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index fb4597927f3d6..fabb83efc0add 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -265,6 +265,8 @@ pub const _MC_FPOWNED_PCB: c_long = 0x20002; pub const KINFO_FILE_SIZE: ::c_int = 1392; +pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; + cfg_if! { if #[cfg(libc_align)] { mod align; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 6ef1a59429207..d5ae29d2a620b 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1251,7 +1251,6 @@ pub const TIOCGETD: ::c_ulong = 0x4004741a; pub const TIOCSETD: ::c_ulong = 0x8004741b; pub const TIOCGDRAINWAIT: ::c_ulong = 0x40047456; pub const TIOCSDRAINWAIT: ::c_ulong = 0x80047457; -pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; pub const TIOCMGDTRWAIT: ::c_ulong = 0x4004745a; pub const TIOCMSDTRWAIT: ::c_ulong = 0x8004745b; pub const TIOCDRAIN: ::c_ulong = 0x2000745e; From edb64128f21f6f1d13777f0fcc1d9e9f4c6dbbc8 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Fri, 27 Sep 2024 17:29:06 -0600 Subject: [PATCH 0219/1228] Fix the definition of several BPF related ioctls on 32-bit FreeBSD https://github.com/freebsd/freebsd-src/blob/main/sys/net/bpf.h (backport ) (cherry picked from commit cfbc1203e4b4fe0fb37f7639f9b740aa2e401cb8) --- src/unix/bsd/freebsdlike/freebsd/aarch64.rs | 2 ++ src/unix/bsd/freebsdlike/freebsd/arm.rs | 2 ++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 8 +++++++- src/unix/bsd/freebsdlike/freebsd/powerpc.rs | 2 ++ src/unix/bsd/freebsdlike/freebsd/powerpc64.rs | 2 ++ src/unix/bsd/freebsdlike/freebsd/riscv64.rs | 2 ++ src/unix/bsd/freebsdlike/freebsd/x86.rs | 2 ++ src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs | 4 ++++ src/unix/bsd/freebsdlike/mod.rs | 13 +++++++++---- 9 files changed, 32 insertions(+), 5 deletions(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs index 7dc0fd0ff938f..95cf8a2b46e2a 100644 --- a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs @@ -142,6 +142,8 @@ cfg_if! { } } +pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; pub const MAP_32BIT: ::c_int = 0x00080000; pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4 pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/unix/bsd/freebsdlike/freebsd/arm.rs index 774018f0a89f9..1cf4f55845c67 100644 --- a/src/unix/bsd/freebsdlike/freebsd/arm.rs +++ b/src/unix/bsd/freebsdlike/freebsd/arm.rs @@ -60,6 +60,8 @@ cfg_if! { } } +pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; pub const MAP_32BIT: ::c_int = 0x00080000; pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4 pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 4551f405a48df..ef526fabce860 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -3212,7 +3212,13 @@ pub const H4DISC: ::c_int = 0x7; pub const VM_TOTAL: ::c_int = 1; -pub const BIOCSETFNR: ::c_ulong = 0x80104282; +cfg_if! { + if #[cfg(target_pointer_width = "64")] { + pub const BIOCSETFNR: ::c_ulong = 0x80104282; + } else { + pub const BIOCSETFNR: ::c_ulong = 0x80084282; + } +} pub const FIODGNAME: ::c_ulong = 0x80106678; pub const FIONWRITE: ::c_ulong = 0x40046677; diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs index bd72039a71a8e..9e76f3f5de61d 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs @@ -83,6 +83,8 @@ cfg_if! { } } +pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; pub const MAP_32BIT: ::c_int = 0x00080000; pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs index b891cc1b75d4f..6902e16fb7bc5 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs @@ -83,6 +83,8 @@ cfg_if! { } } +pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; pub const MAP_32BIT: ::c_int = 0x00080000; pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs index 37989883cdb09..7e2c629503c6c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs @@ -150,6 +150,8 @@ cfg_if! { } } +pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; pub const MAP_32BIT: ::c_int = 0x00080000; pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4 pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index b1f1b0433be4c..228970979d5af 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -170,5 +170,7 @@ cfg_if! { pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 +pub const BIOCSRTIMEOUT: ::c_ulong = 0x8008426d; +pub const BIOCGRTIMEOUT: ::c_ulong = 0x4008426e; pub const KINFO_FILE_SIZE: ::c_int = 1392; pub const TIOCTIMESTAMP: ::c_ulong = 0x40087459; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index fabb83efc0add..75d24c7885a07 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -249,6 +249,10 @@ cfg_if! { pub const _ALIGNBYTES: usize = 8 - 1; } } + +pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; + pub const MAP_32BIT: ::c_int = 0x00080000; pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index d5ae29d2a620b..d4749178f3c2c 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1305,10 +1305,15 @@ pub const BIOCSRSIG: ::c_ulong = 0x80044273; pub const BIOCSDLT: ::c_ulong = 0x80044278; pub const BIOCGSEESENT: ::c_ulong = 0x40044276; pub const BIOCSSEESENT: ::c_ulong = 0x80044277; -pub const BIOCSETF: ::c_ulong = 0x80104267; -pub const BIOCGDLTLIST: ::c_ulong = 0xc0104279; -pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; -pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; +cfg_if! { + if #[cfg(target_pointer_width = "64")] { + pub const BIOCGDLTLIST: ::c_ulong = 0xc0104279; + pub const BIOCSETF: ::c_ulong = 0x80104267; + } else if #[cfg(target_pointer_width = "32")] { + pub const BIOCGDLTLIST: ::c_ulong = 0xc0084279; + pub const BIOCSETF: ::c_ulong = 0x80084267; + } +} pub const FIODTYPE: ::c_ulong = 0x4004667a; pub const FIOGETLBA: ::c_ulong = 0x40046679; From 8286345bcd00769eac11ee41a0cf974ff0b4298c Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Fri, 27 Sep 2024 17:37:05 -0600 Subject: [PATCH 0220/1228] Fix definition of clock_t on FreeBSD x86, powerpc, powerpc64, and arm. https://github.com/freebsd/freebsd-src/blob/main/sys/arm/include/_types.h https://github.com/freebsd/freebsd-src/blob/main/sys/arm64/include/_types.h https://github.com/freebsd/freebsd-src/blob/main/sys/powerpc/include/_types.h https://github.com/freebsd/freebsd-src/blob/main/sys/riscv/include/_types.h https://github.com/freebsd/freebsd-src/blob/main/sys/x86/include/_types.h (backport ) (cherry picked from commit 6605f08aeade93fb6d01c91a13d84769735dc172) --- src/unix/bsd/freebsdlike/freebsd/aarch64.rs | 1 + src/unix/bsd/freebsdlike/freebsd/arm.rs | 1 + src/unix/bsd/freebsdlike/freebsd/mod.rs | 1 - src/unix/bsd/freebsdlike/freebsd/powerpc.rs | 1 + src/unix/bsd/freebsdlike/freebsd/powerpc64.rs | 1 + src/unix/bsd/freebsdlike/freebsd/riscv64.rs | 1 + src/unix/bsd/freebsdlike/freebsd/x86.rs | 1 + src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs | 1 + 8 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs index 95cf8a2b46e2a..004b6266ea863 100644 --- a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs @@ -1,6 +1,7 @@ pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; +pub type clock_t = i32; pub type wchar_t = u32; pub type time_t = i64; pub type suseconds_t = i64; diff --git a/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/unix/bsd/freebsdlike/freebsd/arm.rs index 1cf4f55845c67..c5c79323f727e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/arm.rs +++ b/src/unix/bsd/freebsdlike/freebsd/arm.rs @@ -1,6 +1,7 @@ pub type c_char = u8; pub type c_long = i32; pub type c_ulong = u32; +pub type clock_t = u32; pub type wchar_t = u32; pub type time_t = i64; pub type suseconds_t = i32; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index ef526fabce860..c04e26f4d8250 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1,5 +1,4 @@ pub type fflags_t = u32; -pub type clock_t = i32; pub type vm_prot_t = u_char; pub type kvaddr_t = u64; diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs index 9e76f3f5de61d..f85df97f3666a 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs @@ -1,6 +1,7 @@ pub type c_char = u8; pub type c_long = i32; pub type c_ulong = u32; +pub type clock_t = u32; pub type wchar_t = i32; pub type time_t = i64; pub type suseconds_t = i32; diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs index 6902e16fb7bc5..1b2d59c31c0cd 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs @@ -1,6 +1,7 @@ pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; +pub type clock_t = u32; pub type wchar_t = i32; pub type time_t = i64; pub type suseconds_t = i64; diff --git a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs index 7e2c629503c6c..bad84177e6f0a 100644 --- a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs @@ -1,6 +1,7 @@ pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; +pub type clock_t = i32; pub type wchar_t = ::c_int; pub type time_t = i64; pub type suseconds_t = ::c_long; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index 228970979d5af..b9da7caa2001e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -1,6 +1,7 @@ pub type c_char = i8; pub type c_long = i32; pub type c_ulong = u32; +pub type clock_t = ::c_ulong; pub type wchar_t = i32; pub type time_t = i32; pub type suseconds_t = i32; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index 75d24c7885a07..446cc22dd1ba1 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -1,6 +1,7 @@ pub type c_char = i8; pub type c_long = i64; pub type c_ulong = u64; +pub type clock_t = i32; pub type wchar_t = i32; pub type time_t = i64; pub type suseconds_t = i64; From 255b039d9e46316eda681cc38e1d627ce1fb8068 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Fri, 27 Sep 2024 17:49:50 -0600 Subject: [PATCH 0221/1228] Fix size of struct kinfo_file on 32-bit FreeBSD https://github.com/freebsd/freebsd-src/blob/main/sys/sys/user.h (backport ) (cherry picked from commit f2b8b8f8c753755e74c5f0ae3440ea59b5909383) --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index c04e26f4d8250..106e41765b9e5 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1645,7 +1645,7 @@ s_no_extra_traits! { pub kf_flags: ::c_int, _kf_pad0: ::c_int, pub kf_offset: i64, - _priv: [::uintptr_t; 38], // FIXME if needed + _priv: [u8; 304], // FIXME: this is really a giant union pub kf_status: u16, _kf_pad1: u16, _kf_ispare0: ::c_int, From 073c7b4b89f4a9d4cdb4dbda674e55c73a50d1c8 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Fri, 27 Sep 2024 17:56:33 -0600 Subject: [PATCH 0222/1228] Fix definition of FIODGNAME on 32-bit FreeBSD https://github.com/freebsd/freebsd-src/blob/main/sys/sys/filio.h (backport ) (cherry picked from commit 0b6cab8f19d32248fd84788475747ffb6708318a) --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 106e41765b9e5..56ceabe6aacb8 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -3219,7 +3219,14 @@ cfg_if! { } } -pub const FIODGNAME: ::c_ulong = 0x80106678; +cfg_if! { + if #[cfg(target_pointer_width = "64")] { + pub const FIODGNAME: ::c_ulong = 0x80106678; + } else { + pub const FIODGNAME: ::c_ulong = 0x80086678; + } +} + pub const FIONWRITE: ::c_ulong = 0x40046677; pub const FIONSPACE: ::c_ulong = 0x40046676; pub const FIOSEEKDATA: ::c_ulong = 0xc0086661; From c0c93913f0ffd5803ea57587501c07a23b6e78ac Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Mon, 21 Oct 2024 14:31:47 -0600 Subject: [PATCH 0223/1228] Fix the build on armv7-unknown-freebsd PR #3848 broke the build on armv7-unknown-freebsd by defining a field to be of an unknown type. Use the correct type name `usize` instead of `::__size_t`. (backport ) (cherry picked from commit 816b52478c6f057a58a10fb7e09f38864330f71c) --- src/unix/bsd/freebsdlike/freebsd/arm.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/unix/bsd/freebsdlike/freebsd/arm.rs index c5c79323f727e..82112a868b0ba 100644 --- a/src/unix/bsd/freebsdlike/freebsd/arm.rs +++ b/src/unix/bsd/freebsdlike/freebsd/arm.rs @@ -12,7 +12,7 @@ pub type __gregset_t = [::__greg_t; 17]; s_no_extra_traits! { pub struct mcontext_t { pub __gregs: ::__gregset_t, - pub mc_vfp_size: ::__size_t, + pub mc_vfp_size: usize, pub mc_vfp_ptr: *mut ::c_void, pub mc_spare: [::c_uint; 33], } From 8c88d9aa522804a66e4a840516756fbc29bff0f7 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Mon, 21 Oct 2024 15:06:15 -0600 Subject: [PATCH 0224/1228] armv7-unknown-freebsd: fix test errors regarding __gregset_t We must skip roundtrip tests for __gregset_t, because C functions cannot return arrays. (backport ) (cherry picked from commit c32e6c97476025d21ac0f0229d495371e1458cf1) --- libc-test/build.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index a04816093c29d..47ca3b8feee3c 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2764,6 +2764,13 @@ fn test_freebsd(target: &str) { _ => false, } }); + if target.contains("arm") { + cfg.skip_roundtrip(move |s| match s { + // Can't return an array from a C function. + "__gregset_t" => true, + _ => false, + }); + } cfg.generate("../src/lib.rs", "main.rs"); } From a3ca238655ccb156812e4db39d1997471df1f5d8 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Wed, 23 Oct 2024 06:38:45 +0100 Subject: [PATCH 0225/1228] freebsd adding CLOSE_RANGE_CLOEXEC flag (backport ) (cherry picked from commit 0fb363c62aed39b2b8663dc2ae91a89daa6ae37e) --- libc-test/semver/freebsd.txt | 1 + src/unix/bsd/freebsdlike/freebsd/mod.rs | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index e3418ef7d220e..096133a059520 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -264,6 +264,7 @@ CLOCK_UPTIME CLOCK_UPTIME_FAST CLOCK_UPTIME_PRECISE CLOCK_VIRTUAL +CLOSE_RANGE_CLOEXEC CMGROUP_MAX CMSG_DATA CMSG_FIRSTHDR diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 56ceabe6aacb8..7e8d6486d7981 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -4968,6 +4968,10 @@ pub const TFD_CLOEXEC: ::c_int = O_CLOEXEC; pub const TFD_TIMER_ABSTIME: ::c_int = 0x01; pub const TFD_TIMER_CANCEL_ON_SET: ::c_int = 0x02; +// sys/unistd.h + +pub const CLOSE_RANGE_CLOEXEC: ::c_uint = 1 << 2; + cfg_if! { if #[cfg(libc_const_extern_fn)] { pub const fn MAP_ALIGNED(a: ::c_int) -> ::c_int { From 33a772c45315975c0fcee2ecabc8a0fd822e37a4 Mon Sep 17 00:00:00 2001 From: wlynxg Date: Thu, 10 Oct 2024 16:46:48 +0800 Subject: [PATCH 0226/1228] feat: add `ioctl` flags in `linux/if_tun.h` fix: values under different architectures style: update code style fix: remove `TUNSETCARRIER` and `TUNGETDEVNETNS` feat: add `TUNSETCARRIER` and `TUNGETDEVNETNS` in `gnu` style: update code style (backport ) (cherry picked from commit c24c516da6187916a78f4ce934e6a3989ea32f75) --- libc-test/semver/linux-gnu.txt | 2 ++ libc-test/semver/linux.txt | 26 ++++++++++++++ src/unix/linux_like/linux/arch/generic/mod.rs | 34 ++++++++++++++++++ src/unix/linux_like/linux/arch/mips/mod.rs | 34 ++++++++++++++++++ src/unix/linux_like/linux/arch/powerpc/mod.rs | 34 ++++++++++++++++++ src/unix/linux_like/linux/arch/sparc/mod.rs | 35 +++++++++++++++++++ src/unix/linux_like/linux/gnu/mod.rs | 23 ++++++++++++ src/unix/linux_like/linux/mod.rs | 1 + 8 files changed, 189 insertions(+) diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index cba0384cb191d..9dcb5a6c8ca9f 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -472,6 +472,8 @@ TIME_WAIT TMPFS_MAGIC TMP_MAX TRACEFS_MAGIC +TUNGETDEVNETNS +TUNSETCARRIER UDF_SUPER_MAGIC UNAME26 USBDEVICE_SUPER_MAGIC diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index e75683e5dc5d5..89a90010ee4f1 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -3247,6 +3247,32 @@ TP_STATUS_USER TP_STATUS_VLAN_TPID_VALID TP_STATUS_VLAN_VALID TP_STATUS_WRONG_FORMAT +TUNATTACHFILTER +TUNDETACHFILTER +TUNGETFEATURES +TUNGETFILTER +TUNGETIFF +TUNGETSNDBUF +TUNGETVNETBE +TUNGETVNETHDRSZ +TUNGETVNETLE +TUNSETDEBUG +TUNSETFILTEREBPF +TUNSETGROUP +TUNSETIFF +TUNSETIFINDEX +TUNSETLINK +TUNSETNOCSUM +TUNSETOFFLOAD +TUNSETOWNER +TUNSETPERSIST +TUNSETQUEUE +TUNSETSNDBUF +TUNSETSTEERINGEBPF +TUNSETTXFILTER +TUNSETVNETBE +TUNSETVNETHDRSZ +TUNSETVNETLE TUN_FLT_ALLMULTI TUN_F_CSUM TUN_F_TSO4 diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index 2f437e16db26a..ba56be7a92479 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -210,6 +210,34 @@ pub const BLKIOMIN: ::Ioctl = 0x1278; pub const BLKIOOPT: ::Ioctl = 0x1279; pub const BLKSSZGET: ::Ioctl = 0x1268; pub const BLKPBSZGET: ::Ioctl = 0x127B; +// linux/if_tun.h +pub const TUNSETNOCSUM: ::Ioctl = 0x400454c8; +pub const TUNSETDEBUG: ::Ioctl = 0x400454c9; +pub const TUNSETIFF: ::Ioctl = 0x400454ca; +pub const TUNSETPERSIST: ::Ioctl = 0x400454cb; +pub const TUNSETOWNER: ::Ioctl = 0x400454cc; +pub const TUNSETLINK: ::Ioctl = 0x400454cd; +pub const TUNSETGROUP: ::Ioctl = 0x400454ce; +pub const TUNGETFEATURES: ::Ioctl = 0x800454cf; +pub const TUNSETOFFLOAD: ::Ioctl = 0x400454d0; +pub const TUNSETTXFILTER: ::Ioctl = 0x400454d1; +pub const TUNGETIFF: ::Ioctl = 0x800454d2; +pub const TUNGETSNDBUF: ::Ioctl = 0x800454d3; +pub const TUNSETSNDBUF: ::Ioctl = 0x400454d4; +pub const TUNGETVNETHDRSZ: ::Ioctl = 0x800454d7; +pub const TUNSETVNETHDRSZ: ::Ioctl = 0x400454d8; +pub const TUNSETQUEUE: ::Ioctl = 0x400454d9; +pub const TUNSETIFINDEX: ::Ioctl = 0x400454da; +pub const TUNSETVNETLE: ::Ioctl = 0x400454dc; +pub const TUNGETVNETLE: ::Ioctl = 0x800454dd; +/* The TUNSETVNETBE and TUNGETVNETBE ioctls are for cross-endian support on + * little-endian hosts. Not all kernel configurations support them, but all + * configurations that support SET also support GET. + */ +pub const TUNSETVNETBE: ::Ioctl = 0x400454de; +pub const TUNGETVNETBE: ::Ioctl = 0x800454df; +pub const TUNSETSTEERINGEBPF: ::Ioctl = 0x800454e0; +pub const TUNSETFILTEREBPF: ::Ioctl = 0x800454e1; cfg_if! { // Those type are constructed using the _IOC macro @@ -227,6 +255,9 @@ cfg_if! { pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x40046602; pub const FS_IOC32_GETVERSION: ::Ioctl = 0x80047601; pub const FS_IOC32_SETVERSION: ::Ioctl = 0x40047602; + pub const TUNATTACHFILTER: ::Ioctl = 0x400854d5; + pub const TUNDETACHFILTER: ::Ioctl = 0x400854d6; + pub const TUNGETFILTER: ::Ioctl = 0x800854db; } else if #[cfg(any(target_arch = "x86_64", target_arch = "riscv64", target_arch = "aarch64", @@ -240,6 +271,9 @@ cfg_if! { pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x40046602; pub const FS_IOC32_GETVERSION: ::Ioctl = 0x80047601; pub const FS_IOC32_SETVERSION: ::Ioctl = 0x40047602; + pub const TUNATTACHFILTER: ::Ioctl = 0x401054d5; + pub const TUNDETACHFILTER: ::Ioctl = 0x401054d6; + pub const TUNGETFILTER: ::Ioctl = 0x801054db; } } diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index 6a96aa9c3b159..bdce5827c07bf 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -192,6 +192,34 @@ pub const BLKIOMIN: ::Ioctl = 0x20001278; pub const BLKIOOPT: ::Ioctl = 0x20001279; pub const BLKSSZGET: ::Ioctl = 0x20001268; pub const BLKPBSZGET: ::Ioctl = 0x2000127B; +// linux/if_tun.h +pub const TUNSETNOCSUM: ::Ioctl = 0x800454c8; +pub const TUNSETDEBUG: ::Ioctl = 0x800454c9; +pub const TUNSETIFF: ::Ioctl = 0x800454ca; +pub const TUNSETPERSIST: ::Ioctl = 0x800454cb; +pub const TUNSETOWNER: ::Ioctl = 0x800454cc; +pub const TUNSETLINK: ::Ioctl = 0x800454cd; +pub const TUNSETGROUP: ::Ioctl = 0x800454ce; +pub const TUNGETFEATURES: ::Ioctl = 0x400454cf; +pub const TUNSETOFFLOAD: ::Ioctl = 0x800454d0; +pub const TUNSETTXFILTER: ::Ioctl = 0x800454d1; +pub const TUNGETIFF: ::Ioctl = 0x400454d2; +pub const TUNGETSNDBUF: ::Ioctl = 0x400454d3; +pub const TUNSETSNDBUF: ::Ioctl = 0x800454d4; +pub const TUNGETVNETHDRSZ: ::Ioctl = 0x400454d7; +pub const TUNSETVNETHDRSZ: ::Ioctl = 0x800454d8; +pub const TUNSETQUEUE: ::Ioctl = 0x800454d9; +pub const TUNSETIFINDEX: ::Ioctl = 0x800454da; +pub const TUNSETVNETLE: ::Ioctl = 0x800454dc; +pub const TUNGETVNETLE: ::Ioctl = 0x400454dd; +/* The TUNSETVNETBE and TUNGETVNETBE ioctls are for cross-endian support on + * little-endian hosts. Not all kernel configurations support them, but all + * configurations that support SET also support GET. + */ +pub const TUNSETVNETBE: ::Ioctl = 0x800454de; +pub const TUNGETVNETBE: ::Ioctl = 0x400454df; +pub const TUNSETSTEERINGEBPF: ::Ioctl = 0x400454e0; +pub const TUNSETFILTEREBPF: ::Ioctl = 0x400454e1; cfg_if! { // Those type are constructed using the _IOC macro @@ -209,6 +237,9 @@ cfg_if! { pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; + pub const TUNATTACHFILTER: ::Ioctl = 0x800854d5; + pub const TUNDETACHFILTER: ::Ioctl = 0x800854d6; + pub const TUNGETFILTER: ::Ioctl = 0x400854db; } else if #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))] { pub const FS_IOC_GETFLAGS: ::Ioctl = 0x40086601; pub const FS_IOC_SETFLAGS: ::Ioctl = 0x80086602; @@ -218,6 +249,9 @@ cfg_if! { pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; + pub const TUNATTACHFILTER: ::Ioctl = 0x801054d5; + pub const TUNDETACHFILTER: ::Ioctl = 0x801054d6; + pub const TUNGETFILTER: ::Ioctl = 0x401054db; } } diff --git a/src/unix/linux_like/linux/arch/powerpc/mod.rs b/src/unix/linux_like/linux/arch/powerpc/mod.rs index 27834dbfeabcc..93c454396d9a6 100644 --- a/src/unix/linux_like/linux/arch/powerpc/mod.rs +++ b/src/unix/linux_like/linux/arch/powerpc/mod.rs @@ -178,6 +178,34 @@ pub const BLKIOOPT: ::Ioctl = 0x20001279; pub const BLKSSZGET: ::Ioctl = 0x20001268; pub const BLKPBSZGET: ::Ioctl = 0x2000127B; //pub const FIOQSIZE: ::Ioctl = 0x40086680; +// linux/if_tun.h +pub const TUNSETNOCSUM: ::Ioctl = 0x800454c8; +pub const TUNSETDEBUG: ::Ioctl = 0x800454c9; +pub const TUNSETIFF: ::Ioctl = 0x800454ca; +pub const TUNSETPERSIST: ::Ioctl = 0x800454cb; +pub const TUNSETOWNER: ::Ioctl = 0x800454cc; +pub const TUNSETLINK: ::Ioctl = 0x800454cd; +pub const TUNSETGROUP: ::Ioctl = 0x800454ce; +pub const TUNGETFEATURES: ::Ioctl = 0x400454cf; +pub const TUNSETOFFLOAD: ::Ioctl = 0x800454d0; +pub const TUNSETTXFILTER: ::Ioctl = 0x800454d1; +pub const TUNGETIFF: ::Ioctl = 0x400454d2; +pub const TUNGETSNDBUF: ::Ioctl = 0x400454d3; +pub const TUNSETSNDBUF: ::Ioctl = 0x800454d4; +pub const TUNGETVNETHDRSZ: ::Ioctl = 0x400454d7; +pub const TUNSETVNETHDRSZ: ::Ioctl = 0x800454d8; +pub const TUNSETQUEUE: ::Ioctl = 0x800454d9; +pub const TUNSETIFINDEX: ::Ioctl = 0x800454da; +pub const TUNSETVNETLE: ::Ioctl = 0x800454dc; +pub const TUNGETVNETLE: ::Ioctl = 0x400454dd; +/* The TUNSETVNETBE and TUNGETVNETBE ioctls are for cross-endian support on + * little-endian hosts. Not all kernel configurations support them, but all + * configurations that support SET also support GET. + */ +pub const TUNSETVNETBE: ::Ioctl = 0x800454de; +pub const TUNGETVNETBE: ::Ioctl = 0x400454df; +pub const TUNSETSTEERINGEBPF: ::Ioctl = 0x400454e0; +pub const TUNSETFILTEREBPF: ::Ioctl = 0x400454e1; cfg_if! { // Those type are constructed using the _IOC macro @@ -195,6 +223,9 @@ cfg_if! { pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; + pub const TUNATTACHFILTER: ::Ioctl = 0x800854d5; + pub const TUNDETACHFILTER: ::Ioctl = 0x800854d6; + pub const TUNGETFILTER: ::Ioctl = 0x400854db; } else if #[cfg(target_arch = "powerpc64")] { pub const FS_IOC_GETFLAGS: ::Ioctl = 0x40086601; pub const FS_IOC_SETFLAGS: ::Ioctl = 0x80086602; @@ -204,6 +235,9 @@ cfg_if! { pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; + pub const TUNATTACHFILTER: ::Ioctl = 0x801054d5; + pub const TUNDETACHFILTER: ::Ioctl = 0x801054d6; + pub const TUNGETFILTER: ::Ioctl = 0x401054db; } } diff --git a/src/unix/linux_like/linux/arch/sparc/mod.rs b/src/unix/linux_like/linux/arch/sparc/mod.rs index fce466c778998..b64e6ce7149a5 100644 --- a/src/unix/linux_like/linux/arch/sparc/mod.rs +++ b/src/unix/linux_like/linux/arch/sparc/mod.rs @@ -183,6 +183,35 @@ pub const BLKPBSZGET: ::Ioctl = 0x2000127B; //pub const TIOCGRS485: ::Ioctl = 0x40205441; //pub const TIOCSRS485: ::Ioctl = 0xc0205442; +// linux/if_tun.h +pub const TUNSETNOCSUM: ::Ioctl = 0x800454c8; +pub const TUNSETDEBUG: ::Ioctl = 0x800454c9; +pub const TUNSETIFF: ::Ioctl = 0x800454ca; +pub const TUNSETPERSIST: ::Ioctl = 0x800454cb; +pub const TUNSETOWNER: ::Ioctl = 0x800454cc; +pub const TUNSETLINK: ::Ioctl = 0x800454cd; +pub const TUNSETGROUP: ::Ioctl = 0x800454ce; +pub const TUNGETFEATURES: ::Ioctl = 0x400454cf; +pub const TUNSETOFFLOAD: ::Ioctl = 0x800454d0; +pub const TUNSETTXFILTER: ::Ioctl = 0x800454d1; +pub const TUNGETIFF: ::Ioctl = 0x400454d2; +pub const TUNGETSNDBUF: ::Ioctl = 0x400454d3; +pub const TUNSETSNDBUF: ::Ioctl = 0x800454d4; +pub const TUNGETVNETHDRSZ: ::Ioctl = 0x400454d7; +pub const TUNSETVNETHDRSZ: ::Ioctl = 0x800454d8; +pub const TUNSETQUEUE: ::Ioctl = 0x800454d9; +pub const TUNSETIFINDEX: ::Ioctl = 0x800454da; +pub const TUNSETVNETLE: ::Ioctl = 0x800454dc; +pub const TUNGETVNETLE: ::Ioctl = 0x400454dd; +/* The TUNSETVNETBE and TUNGETVNETBE ioctls are for cross-endian support on + * little-endian hosts. Not all kernel configurations support them, but all + * configurations that support SET also support GET. + */ +pub const TUNSETVNETBE: ::Ioctl = 0x800454de; +pub const TUNGETVNETBE: ::Ioctl = 0x400454df; +pub const TUNSETSTEERINGEBPF: ::Ioctl = 0x400454e0; +pub const TUNSETFILTEREBPF: ::Ioctl = 0x400454e1; + pub const TIOCM_LE: ::c_int = 0x001; pub const TIOCM_DTR: ::c_int = 0x002; pub const TIOCM_RTS: ::c_int = 0x004; @@ -246,6 +275,9 @@ cfg_if! { pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; + pub const TUNATTACHFILTER: ::Ioctl = 0x800854d5; + pub const TUNDETACHFILTER: ::Ioctl = 0x800854d6; + pub const TUNGETFILTER: ::Ioctl = 0x400854db; } else if #[cfg(target_arch = "sparc64")] { pub const FS_IOC_GETFLAGS: ::Ioctl = 0x40086601; pub const FS_IOC_SETFLAGS: ::Ioctl = 0x80086602; @@ -255,5 +287,8 @@ cfg_if! { pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; + pub const TUNATTACHFILTER: ::Ioctl = 0x801054d5; + pub const TUNDETACHFILTER: ::Ioctl = 0x801054d6; + pub const TUNGETFILTER: ::Ioctl = 0x401054db; } } diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index b28c33f2c1d41..39bb5dc56ad75 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1298,6 +1298,29 @@ pub const REG_EEND: ::c_int = 14; pub const REG_ESIZE: ::c_int = 15; pub const REG_ERPAREN: ::c_int = 16; +cfg_if! { + if #[cfg(any(target_arch = "x86", + target_arch = "x86_64", + target_arch = "arm", + target_arch = "aarch64", + target_arch = "loongarch64", + target_arch = "riscv64", + target_arch = "s390x"))] { + pub const TUNSETCARRIER: ::Ioctl = 0x400454e2; + pub const TUNGETDEVNETNS: ::Ioctl = 0x54e3; + } else if #[cfg(any(target_arch = "mips", + target_arch = "mips64", + target_arch = "powerpc", + target_arch = "powerpc64", + target_arch = "sparc", + target_arch = "sparc64"))] { + pub const TUNSETCARRIER: ::Ioctl = 0x800454e2; + pub const TUNGETDEVNETNS: ::Ioctl = 0x200054e3; + } else { + // Unknown target_arch + } +} + extern "C" { pub fn fgetspent_r( fp: *mut ::FILE, diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 40d0cf0ab974f..4bfe41d6469d5 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2148,6 +2148,7 @@ pub const IFLA_INFO_SLAVE_KIND: ::c_ushort = 4; pub const IFLA_INFO_SLAVE_DATA: ::c_ushort = 5; // linux/if_tun.h +/* TUNSETIFF ifr flags */ pub const IFF_TUN: ::c_int = 0x0001; pub const IFF_TAP: ::c_int = 0x0002; pub const IFF_NAPI: ::c_int = 0x0010; From b8c255c8a6ce49dfc4266cc88f4d44037098b5a5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 09:37:42 +0000 Subject: [PATCH 0227/1228] chore: release v0.2.162 Co-authored-by: Trevor Gross --- CHANGELOG.md | 38 ++++++++++++++++++++++++++++++++++++++ Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6cb8da6919d0a..d6fb0b82c45a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,44 @@ ## [Unreleased] +## [0.2.162](https://github.com/rust-lang/libc/compare/0.2.161...0.2.162) - 2024-11-07 + +### Added + +- Android: fix the alignment of `uc_mcontext` on arm64 +- Apple: add `host_cpu_load_info` +- ESP-IDF: add a time flag +- FreeBSD: add the `CLOSE_RANGE_CLOEXEC` flag +- FreeBSD: fix test errors regarding `__gregset_t` +- FreeBSD: fix tests on x86 FreeBSD 15 +- FreeBSD: make `ucontext_t` and `mcontext_t` available on all architectures +- Haiku: add `getentropy` +- Illumos: add `syncfs` +- Illumos: add some recently-added constants +- Linux: add `ioctl` flags +- Linux: add epoll busy polling parameters +- NuttX: add `pthread_[get/set]name_np` +- RTEMS: add `arc4random_buf` +- Trusty OS: add initial support +- WASIp2: expand socket support + +### Fixed + +- Emscripten: don't pass `-lc` +- Hurd: change `st_fsid` field to `st_dev` +- Hurd: fix the definition of `utsname` +- Illumos/Solaris: fix `FNM_CASEFOLD` definition +- Solaris: fix all tests + +### Other + +- CI: Add loongarch64 +- CI: Check that semver files are sorted +- CI: Re-enable the FreeBSD 15 job +- Clean up imports and `extern crate` usage +- Convert `mode_t` constants to octal +- Remove the `wasm32-wasi` target that has been deleted upstream + ## [0.2.161](https://github.com/rust-lang/libc/compare/0.2.160...0.2.161) - 2024-10-17 ### Fixed diff --git a/Cargo.toml b/Cargo.toml index b0eacb4cdaa94..84f34dc468f20 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.161" +version = "0.2.162" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index c03b92a9a0b65..bb8dfc22a17d0 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -14,7 +14,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.161" +version = "0.2.162" default-features = false [build-dependencies] From 7497d0e3016bed07bd697ac846b07fd7fd7247bc Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 4 Jun 2024 21:42:24 +0200 Subject: [PATCH 0228/1228] hurd: Use more standard types (backport ) (cherry picked from commit e2fd4d3349e489cf4c20330fe70b3b5004a832db) --- src/unix/hurd/mod.rs | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 97c15fe6603a3..97e783f3c3aa6 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -73,7 +73,6 @@ pub type __socklen_t = __u32_type; pub type __sig_atomic_t = ::c_int; pub type __time64_t = __int64_t; pub type ssize_t = __ssize_t; -pub type size_t = ::c_ulong; pub type wchar_t = ::c_int; pub type wint_t = ::c_uint; pub type gid_t = __gid_t; @@ -341,7 +340,7 @@ s! { pub ai_family: ::c_int, pub ai_socktype: ::c_int, pub ai_protocol: ::c_int, - pub ai_addrlen: socklen_t, + pub ai_addrlen: ::socklen_t, pub ai_addr: *mut sockaddr, pub ai_canonname: *mut ::c_char, pub ai_next: *mut addrinfo, @@ -349,11 +348,11 @@ s! { pub struct msghdr { pub msg_name: *mut ::c_void, - pub msg_namelen: socklen_t, + pub msg_namelen: ::socklen_t, pub msg_iov: *mut ::iovec, pub msg_iovlen: ::c_int, pub msg_control: *mut ::c_void, - pub msg_controllen: socklen_t, + pub msg_controllen: ::socklen_t, pub msg_flags: ::c_int, } @@ -683,8 +682,8 @@ s! { pub struct __pthread_attr { pub __schedparam: sched_param, pub __stackaddr: *mut ::c_void, - pub __stacksize: size_t, - pub __guardsize: size_t, + pub __stacksize: ::size_t, + pub __guardsize: ::size_t, pub __detachstate: __pthread_detachstate, pub __inheritsched: __pthread_inheritsched, pub __contentionscope: __pthread_contentionscope, @@ -733,7 +732,7 @@ s! { pub struct iovec { pub iov_base: *mut ::c_void, - pub iov_len: size_t, + pub iov_len: ::size_t, } pub struct passwd { @@ -3651,13 +3650,13 @@ extern "C" { __iovec: *const ::iovec, __count: ::c_int, __offset: __off_t, - ) -> ssize_t; + ) -> ::ssize_t; pub fn pwritev( __fd: ::c_int, __iovec: *const ::iovec, __count: ::c_int, __offset: __off_t, - ) -> ssize_t; + ) -> ::ssize_t; pub fn preadv64( fd: ::c_int, @@ -3738,7 +3737,7 @@ extern "C" { pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int; pub fn ftello64(stream: *mut ::FILE) -> ::off64_t; - pub fn bind(__fd: ::c_int, __addr: *const sockaddr, __len: socklen_t) -> ::c_int; + pub fn bind(__fd: ::c_int, __addr: *const sockaddr, __len: ::socklen_t) -> ::c_int; pub fn accept4( fd: ::c_int, @@ -3756,7 +3755,7 @@ extern "C" { pub fn recvmsg(__fd: ::c_int, __message: *mut msghdr, __flags: ::c_int) -> ::ssize_t; - pub fn sendmsg(__fd: ::c_int, __message: *const msghdr, __flags: ::c_int) -> ssize_t; + pub fn sendmsg(__fd: ::c_int, __message: *const msghdr, __flags: ::c_int) -> ::ssize_t; pub fn recvfrom( socket: ::c_int, @@ -4360,7 +4359,7 @@ extern "C" { pub fn mmap64( __addr: *mut ::c_void, - __len: size_t, + __len: ::size_t, __prot: ::c_int, __flags: ::c_int, __fd: ::c_int, From 17063cb7ed053dc21164a7afed4357f146346745 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Fri, 25 Oct 2024 14:37:26 -0600 Subject: [PATCH 0229/1228] Add i686-unknown-freebsd to CI Add i686-unknown-freebsd to CI. Run it using 32-bit emulation in a 64-bit environment, with the nightly compiler only. So as to avoid a repeat of https://github.com/rust-lang/rust/issues/130677 (backport ) (cherry picked from commit ce0a3066c173fe60e1e04e618846fd85904b9401) --- .cirrus.yml | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 93a4ad50a9594..656696c825752 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,20 +1,31 @@ task: only_if: $CIRRUS_BRANCH == 'main' || $CIRRUS_BASE_BRANCH == 'libc-0.2' || $CIRRUS_BASE_BRANCH == 'main' + env: + HOME: /tmp # cargo cache needs it + TARGET: x86_64-unknown-freebsd matrix: - - name: nightly freebsd-13 + - name: nightly freebsd-13 i686 + # Test i686 FreeBSD in 32-bit emulation on a 64-bit host. + env: + TARGET: i686-unknown-freebsd freebsd_instance: image_family: freebsd-13-3 - - name: nightly freebsd-14 + - name: nightly freebsd-13 x86_64 freebsd_instance: - image: freebsd-14-0-release-amd64-ufs - - name: nightly freebsd-15 + image_family: freebsd-13-3 + - name: nightly freebsd-14 x86_64 + freebsd_instance: + image: freebsd-14-1-release-amd64-ufs + - name: nightly freebsd-15 x86_64 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 + - if [ "$TARGET" = "i686-unknown-freebsd" ]; then rustup target add i686-unknown-freebsd; fi test_script: - . $HOME/.cargo/env - - LIBC_CI=1 sh ci/run.sh x86_64-unknown-freebsd - - sh ci/run.sh x86_64-unknown-freebsd + - LIBC_CI=1 sh ci/run.sh $TARGET + - sh ci/run.sh $TARGET From 5109d521f82d7a897c97dadfed0bfb093f98b709 Mon Sep 17 00:00:00 2001 From: WATANABE Yuki Date: Sat, 9 Nov 2024 13:24:30 +0900 Subject: [PATCH 0230/1228] Support confstr on Linux (backport ) (cherry picked from commit 51512d1d13d95168c3e2860df694e81362cc8ef1) --- libc-test/semver/apple.txt | 1 - libc-test/semver/linux-gnu.txt | 4 +-- libc-test/semver/linux-musl.txt | 2 ++ libc-test/semver/linux.txt | 36 ++++++++++++++++++++++++++ libc-test/semver/unix.txt | 1 + src/unix/bsd/apple/mod.rs | 5 ---- src/unix/linux_like/linux/gnu/mod.rs | 4 +-- src/unix/linux_like/linux/mod.rs | 37 +++++++++++++++++++++++++++ src/unix/linux_like/linux/musl/mod.rs | 3 +++ src/unix/mod.rs | 12 +++++++++ 10 files changed, 95 insertions(+), 10 deletions(-) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index fc066c70affc6..36faea40179a5 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -1911,7 +1911,6 @@ clock_getres clonefile clonefileat cmsghdr -confstr connectx copyfile copyfile_callback_t diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 9dcb5a6c8ca9f..e05d2c2fdbb8d 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -505,7 +505,8 @@ XSK_UNALIGNED_BUF_ADDR_MASK XSK_UNALIGNED_BUF_OFFSET_SHIFT _CS_GNU_LIBC_VERSION _CS_GNU_LIBPTHREAD_VERSION -_CS_PATH +_CS_V6_ENV +_CS_V7_ENV _SC_2_C_VERSION _SC_BASE _SC_CHARCLASS_NAME_MAX @@ -608,7 +609,6 @@ asctime_r backtrace clock_adjtime close_range -confstr copy_file_range ctermid ctime_r diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index 646a7153d75c0..b307f90353ef0 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -60,6 +60,8 @@ XDP_USE_SG XDP_ZEROCOPY XSK_UNALIGNED_BUF_ADDR_MASK XSK_UNALIGNED_BUF_OFFSET_SHIFT +_CS_V6_ENV +_CS_V7_ENV adjtimex aio_cancel aio_error diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 89a90010ee4f1..5b0fca57b3e11 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -3326,6 +3326,42 @@ XATTR_REPLACE XTABS YESEXPR YESSTR +_CS_PATH +_CS_POSIX_V5_WIDTH_RESTRICTED_ENVS +_CS_POSIX_V6_ILP32_OFF32_CFLAGS +_CS_POSIX_V6_ILP32_OFF32_LDFLAGS +_CS_POSIX_V6_ILP32_OFF32_LIBS +_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS +_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS +_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS +_CS_POSIX_V6_ILP32_OFFBIG_LIBS +_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS +_CS_POSIX_V6_LP64_OFF64_CFLAGS +_CS_POSIX_V6_LP64_OFF64_LDFLAGS +_CS_POSIX_V6_LP64_OFF64_LIBS +_CS_POSIX_V6_LP64_OFF64_LINTFLAGS +_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS +_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS +_CS_POSIX_V6_LPBIG_OFFBIG_LIBS +_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS +_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS +_CS_POSIX_V7_ILP32_OFF32_CFLAGS +_CS_POSIX_V7_ILP32_OFF32_LDFLAGS +_CS_POSIX_V7_ILP32_OFF32_LIBS +_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS +_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS +_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS +_CS_POSIX_V7_ILP32_OFFBIG_LIBS +_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS +_CS_POSIX_V7_LP64_OFF64_CFLAGS +_CS_POSIX_V7_LP64_OFF64_LDFLAGS +_CS_POSIX_V7_LP64_OFF64_LIBS +_CS_POSIX_V7_LP64_OFF64_LINTFLAGS +_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS +_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS +_CS_POSIX_V7_LPBIG_OFFBIG_LIBS +_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS +_CS_POSIX_V7_WIDTH_RESTRICTED_ENVS _IOFBF _IOLBF _IONBF diff --git a/libc-test/semver/unix.txt b/libc-test/semver/unix.txt index 3470f1f2de160..7f750ecae3a19 100644 --- a/libc-test/semver/unix.txt +++ b/libc-test/semver/unix.txt @@ -492,6 +492,7 @@ clockid_t close closedir closelog +confstr connect creat dev_t diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 6769b700bc4fd..c6dd20cfd4eb6 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -5657,11 +5657,6 @@ extern "C" { pub fn fchflags(fd: ::c_int, flags: ::c_uint) -> ::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; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "confstr$UNIX2003" - )] - pub fn confstr(name: ::c_int, buf: *mut ::c_char, len: ::size_t) -> ::size_t; pub fn lio_listio( mode: ::c_int, aiocb_list: *const *mut aiocb, diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 39bb5dc56ad75..3277ec5d26e48 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -886,7 +886,8 @@ pub const FILENAME_MAX: ::c_uint = 4096; pub const POSIX_MADV_DONTNEED: ::c_int = 4; pub const _CS_GNU_LIBC_VERSION: ::c_int = 2; pub const _CS_GNU_LIBPTHREAD_VERSION: ::c_int = 3; -pub const _CS_PATH: ::c_int = 0; +pub const _CS_V6_ENV: ::c_int = 1148; +pub const _CS_V7_ENV: ::c_int = 1149; pub const _SC_EQUIV_CLASS_MAX: ::c_int = 41; pub const _SC_CHARCLASS_NAME_MAX: ::c_int = 45; pub const _SC_PII: ::c_int = 53; @@ -1533,7 +1534,6 @@ extern "C" { pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char; pub fn ctime_r(timep: *const time_t, buf: *mut ::c_char) -> *mut ::c_char; - pub fn confstr(name: ::c_int, buf: *mut ::c_char, len: ::size_t) -> ::size_t; pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; /// POSIX version of `basename(3)`, defined in `libgen.h`. #[link_name = "__xpg_basename"] diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 4bfe41d6469d5..4ec30dc15ec5c 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1812,6 +1812,43 @@ pub const _SC_XOPEN_STREAMS: ::c_int = 246; pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 247; pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 248; +pub const _CS_PATH: ::c_int = 0; +pub const _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS: ::c_int = 1; +pub const _CS_POSIX_V5_WIDTH_RESTRICTED_ENVS: ::c_int = 4; +pub const _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS: ::c_int = 5; +pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: ::c_int = 1116; +pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: ::c_int = 1117; +pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: ::c_int = 1118; +pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: ::c_int = 1119; +pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: ::c_int = 1120; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: ::c_int = 1121; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: ::c_int = 1122; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: ::c_int = 1123; +pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: ::c_int = 1124; +pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: ::c_int = 1125; +pub const _CS_POSIX_V6_LP64_OFF64_LIBS: ::c_int = 1126; +pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: ::c_int = 1127; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: ::c_int = 1128; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: ::c_int = 1129; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: ::c_int = 1130; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: ::c_int = 1131; +pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: ::c_int = 1132; +pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: ::c_int = 1133; +pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: ::c_int = 1134; +pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: ::c_int = 1135; +pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: ::c_int = 1136; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: ::c_int = 1137; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: ::c_int = 1138; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: ::c_int = 1139; +pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: ::c_int = 1140; +pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: ::c_int = 1141; +pub const _CS_POSIX_V7_LP64_OFF64_LIBS: ::c_int = 1142; +pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: ::c_int = 1143; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: ::c_int = 1144; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: ::c_int = 1145; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: ::c_int = 1146; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: ::c_int = 1147; + pub const RLIM_SAVED_MAX: ::rlim_t = RLIM_INFINITY; pub const RLIM_SAVED_CUR: ::rlim_t = RLIM_INFINITY; diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 14e1e6d3bfd0f..e450385123571 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -899,6 +899,9 @@ pub const XSK_UNALIGNED_BUF_ADDR_MASK: ::c_ulonglong = (1 << XSK_UNALIGNED_BUF_O pub const XDP_PKT_CONTD: ::__u32 = 1 << 0; +pub const _CS_V6_ENV: ::c_int = 1148; +pub const _CS_V7_ENV: ::c_int = 1149; + cfg_if! { if #[cfg(target_arch = "s390x")] { pub const POSIX_FADV_DONTNEED: ::c_int = 6; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index d26d9053558ee..11a2491b2c4c7 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1485,6 +1485,18 @@ cfg_if! { } } +cfg_if! { + if #[cfg(not(target_os = "android"))] { + extern "C" { + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "confstr$UNIX2003" + )] + pub fn confstr(name: ::c_int, buf: *mut ::c_char, len: ::size_t) -> ::size_t; + } + } +} + cfg_if! { if #[cfg(not(target_os = "aix"))] { extern "C" { From 058185af9f32df82bf632cb1fdd9ec7b9f3d1e8c Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 12 Nov 2024 00:49:33 -0600 Subject: [PATCH 0231/1228] Ensure that calls to `sort` do not depend on locale Fixes: https://github.com/rust-lang/libc/pull/3934#issuecomment-2462301527 (backport ) (cherry picked from commit a88c0d396b08f07c02a534511cea24784aabc492) --- ci/style.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ci/style.sh b/ci/style.sh index 7b4508a6524ff..c8d49e163de96 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -18,6 +18,9 @@ else exit 1 fi +# Ensure that `sort` output is not locale-dependent +export LC_ALL=C + for file in libc-test/semver/*.txt; do case "$file" in *TODO*) continue ;; From 7aeaa337969c0d84020ece0670d1c537d61f6dea Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 12 Nov 2024 23:27:06 +0100 Subject: [PATCH 0232/1228] hurd: Drop unused ssize_t type It is not used any more. (backport ) (cherry picked from commit 9f6aa3f6681125113fc6e0f5dbcd75a34558a6e4) --- src/unix/hurd/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 97e783f3c3aa6..ee2941f74c3d0 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -72,7 +72,6 @@ pub type __ptrdiff_t = __sword_type; pub type __socklen_t = __u32_type; pub type __sig_atomic_t = ::c_int; pub type __time64_t = __int64_t; -pub type ssize_t = __ssize_t; pub type wchar_t = ::c_int; pub type wint_t = ::c_uint; pub type gid_t = __gid_t; From 02139a4c42f8d3bf3ff58700dd101ee17a544a37 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 12 Nov 2024 23:27:22 +0100 Subject: [PATCH 0233/1228] hurd: Drop using mod align It is not used. (backport ) (cherry picked from commit e2153f115c68b81f6498a6984b9c722e10214209) --- src/unix/hurd/align.rs | 1 - src/unix/hurd/mod.rs | 10 ---------- 2 files changed, 11 deletions(-) delete mode 100644 src/unix/hurd/align.rs diff --git a/src/unix/hurd/align.rs b/src/unix/hurd/align.rs deleted file mode 100644 index 1dd7d8e541d29..0000000000000 --- a/src/unix/hurd/align.rs +++ /dev/null @@ -1 +0,0 @@ -// Placeholder file diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index ee2941f74c3d0..453d0392daf72 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -4675,16 +4675,6 @@ safe_f! { } } -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } else { - mod no_align; - pub use self::no_align::*; - } -} - cfg_if! { if #[cfg(target_pointer_width = "64")] { mod b64; From bd00c8ea5c2d7f2fb7d037b0a3f7686acffd8688 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 13 Nov 2024 08:24:19 +0000 Subject: [PATCH 0234/1228] Merge pull request #3934 from Laura7089/feat/esp-idf-hostname Add `get_hostname` to esp-idf (backport ) (cherry picked from commit 600e1d195458e0474c9d8c9ffcc574a36f364afb) --- libc-test/semver/espidf.txt | 49 +++++++++++++++++++++++++++++++++++ src/unix/newlib/espidf/mod.rs | 2 ++ 2 files changed, 51 insertions(+) create mode 100644 libc-test/semver/espidf.txt diff --git a/libc-test/semver/espidf.txt b/libc-test/semver/espidf.txt new file mode 100644 index 0000000000000..74f0d0cb5266d --- /dev/null +++ b/libc-test/semver/espidf.txt @@ -0,0 +1,49 @@ +AF_INET6 +AF_UNIX +FIONBIO +MSG_CTRUNC +MSG_DONTROUTE +MSG_DONTWAIT +MSG_EOR +MSG_MORE +MSG_NOSIGNAL +MSG_OOB +MSG_PEEK +MSG_TRUNC +MSG_WAITALL +NSIG +POLLERR +POLLHUP +POLLIN +POLLOUT +POLLPRI +POLLRDBAND +POLLRDNORM +POLLWRBAND +POLLWRNORM +PTHREAD_STACK_MIN +SIGABRT +SIGFPE +SIGHUP +SIGILL +SIGINT +SIGQUIT +SIGSEGV +SIGTERM +SOL_SOCKET +cmsghdr +dirent +eventfd +gethostname +getrandom +msghdr +pthread_create +recvmsg +sendmsg +sigset_t +sockaddr +sockaddr_in +sockaddr_in6 +sockaddr_storage +sockaddr_un +stat diff --git a/src/unix/newlib/espidf/mod.rs b/src/unix/newlib/espidf/mod.rs index a73e85315971f..3a4ce49c5c217 100644 --- a/src/unix/newlib/espidf/mod.rs +++ b/src/unix/newlib/espidf/mod.rs @@ -109,6 +109,8 @@ extern "C" { pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; + pub fn gethostname(name: *mut ::c_char, namelen: ::ssize_t); + #[link_name = "lwip_sendmsg"] pub fn sendmsg(s: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; #[link_name = "lwip_recvmsg"] From 0de08290ab5e5788d5a86340a476e8e8714796bd Mon Sep 17 00:00:00 2001 From: Takashiidobe Date: Wed, 13 Nov 2024 07:09:11 -0500 Subject: [PATCH 0235/1228] add getgrent, setgrent, endgrent calls for Android, introduced in API 26, with exclusions to testing since CI is currently on API 24 (backport ) (cherry picked from commit fd4b70cb08447ff5edaf216f0d28036e358cbfc7) --- libc-test/build.rs | 12 ++++++++++++ libc-test/semver/android.txt | 3 +++ src/unix/linux_like/android/mod.rs | 3 +++ 3 files changed, 18 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 47ca3b8feee3c..0dc9c9ff53064 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2072,6 +2072,18 @@ fn test_android(target: &str) { // Added in API level 28, but some tests use level 24. "fread_unlocked" | "fwrite_unlocked" | "fgets_unlocked" | "fflush_unlocked" => true, + // Added in API level 28, but some tests use level 24. + "aligned_alloc" => true, + + // Added in API level 26, but some tests use level 24. + "getgrent" => true, + + // Added in API level 26, but some tests use level 24. + "setgrent" => true, + + // Added in API level 26, but some tests use level 24. + "endgrent" => true, + // FIXME: bad function pointers: "isalnum" | "isalpha" | "iscntrl" | "isdigit" | "isgraph" | "islower" | "isprint" | "ispunct" | "isspace" | "isupper" | "isxdigit" | "isblank" | "tolower" diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index dadb474886ce0..21ce51c09f10b 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -3186,6 +3186,7 @@ dlsym dup dup2 duplocale +endgrent endservent epoll_create epoll_create1 @@ -3290,6 +3291,7 @@ getegid getenv geteuid getgid +getgrent getgrgid getgrgid_r getgrnam @@ -3684,6 +3686,7 @@ seteuid setfsgid setfsuid setgid +setgrent setgroups sethostname setlocale diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 3896492ebe706..0ca2df45a291e 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3675,6 +3675,9 @@ safe_f! { } extern "C" { + pub fn setgrent(); + pub fn endgrent(); + pub fn getgrent() -> *mut ::group; pub fn getrlimit64(resource: ::c_int, rlim: *mut rlimit64) -> ::c_int; pub fn setrlimit64(resource: ::c_int, rlim: *const rlimit64) -> ::c_int; pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; From b47f24ef4d66af44b522957a59116495c8d0e99b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 13 Nov 2024 14:13:46 -0600 Subject: [PATCH 0236/1228] triagebot: Set up autolabel and review labels (backport ) (cherry picked from commit 07ccaa65e71c9232f1f8877cf7ed95166e0a86ed) --- triagebot.toml | 153 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 148 insertions(+), 5 deletions(-) diff --git a/triagebot.toml b/triagebot.toml index 8b989c8db5058..3183d723f1cb8 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -3,15 +3,160 @@ allow-unauthenticated = [ "C-*", "O-*", "S-*" ] -[autolabel."S-waiting-on-review"] -new_pr = true - [assign] contributing_url = "https://github.com/rust-lang/libc/blob/HEAD/CONTRIBUTING.md" [assign.owners] "*" = ["@JohnTitor"] +[autolabel."S-waiting-on-review"] +new_pr = true + +[autolabel."O-android"] +trigger_files = ["src/unix/linux_like/android"] + +[autolabel."O-arm"] +trigger_files = [ + "src/solid/arm.rs", + "src/unix/bsd/freebsdlike/freebsd/arm.rs", + "src/unix/bsd/netbsdlike/netbsd/arm.rs", + "src/unix/bsd/netbsdlike/openbsd/arm.rs", + "src/unix/linux_like/android/b32/arm.rs", + "src/unix/linux_like/linux/gnu/b32/arm/", + "src/unix/linux_like/linux/musl/b32/arm/", + "src/unix/linux_like/linux/uclibc/arm/", + "src/unix/newlib/arm/", + "src/vxworks/arm.rs", +] + +[autolabel."O-bsd"] +trigger_files = ["src/unix/bsd/mod.rs"] + +[autolabel."O-dragonfly"] +trigger_files = ["src/unix/bsd/freebsdlike/dragonfly"] + +[autolabel."O-gnu"] +trigger_files = [ + "src/unix/linux_like/linux/gnu", + "src/windows/gnu", +] + +[autolabel."O-illumos"] +trigger_files = ["src/unix/solarish/illumos.rs"] + +[autolabel."O-linux"] +trigger_files = ["src/unix/linux_like/linux"] + +[autolabel."O-linux-like"] +trigger_files = ["src/unix/linux_like/mod.rs"] + +[autolabel."O-macos"] +trigger_files = ["src/unix/bsd/apple"] + +[autolabel."O-mips"] +trigger_files = [ + "src/unix/bsd/netbsdlike/netbsd/mips.rs", + "src/unix/bsd/netbsdlike/openbsd/mips64.rs", + "src/unix/linux_like/linux/arch/mips", + "src/unix/linux_like/linux/gnu/b32/mips", + "src/unix/linux_like/linux/gnu/b64/mips64", + "src/unix/linux_like/linux/musl/b32/mips", + "src/unix/linux_like/linux/musl/b64/mips64.rs", + "src/unix/linux_like/linux/uclibc/mips", +] + +[autolabel."O-musl"] +trigger_files = ["src/unix/linux_like/linux/musl"] + +[autolabel."O-newlib"] +trigger_files = ["src/unix/newlib"] + +[autolabel."O-redox"] +trigger_files = ["src/unix/redox"] + +[autolabel."O-riscv"] +trigger_files = [ + "src/fuchsia/riscv64.rs", + "src/unix/bsd/freebsdlike/freebsd/riscv64.rs", + "src/unix/bsd/netbsdlike/netbsd/riscv64.rs", + "src/unix/bsd/netbsdlike/openbsd/riscv64.rs", + "src/unix/linux_like/android/b64/riscv64", + "src/unix/linux_like/linux/gnu/b32/riscv32", + "src/unix/linux_like/linux/gnu/b64/riscv64", + "src/unix/linux_like/linux/musl/b32/riscv32", + "src/unix/linux_like/linux/musl/b64/riscv64", + "src/vxworks/riscv32.rs", + "src/vxworks/riscv64.rs", +] + +[autolabel."O-solarish"] +trigger_files = ["src/unix/solarish"] + +[autolabel."O-sparc"] +trigger_files = [ + "src/unix/bsd/netbsdlike/netbsd/sparc64.rs", + "src/unix/bsd/netbsdlike/openbsd/sparc64.rs", + "src/unix/linux_like/linux/arch/sparc", + "src/unix/linux_like/linux/gnu/b32/sparc", + "src/unix/linux_like/linux/gnu/b64/sparc64", +] + +[autolabel."O-unix"] +trigger_files = ["src/unix"] + +[autolabel."O-wasi"] +trigger_files = ["src/wasi"] + +[autolabel."O-wasm"] +trigger_files = ["src/"] + +[autolabel."O-windows"] +trigger_files = ["src/windows"] + +[autolabel."O-x86"] +trigger_files = [ + "src/fuchsia/x86_64.rs", + "src/unix/bsd/apple/b64/x86_64", + "src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs", + "src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs", + "src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs", + "src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs", + "src/unix/bsd/freebsdlike/freebsd/x86.rs", + "src/unix/bsd/freebsdlike/freebsd/x86_64", + "src/unix/bsd/netbsdlike/netbsd/x86.rs", + "src/unix/bsd/netbsdlike/netbsd/x86_64.rs", + "src/unix/bsd/netbsdlike/openbsd/x86.rs", + "src/unix/bsd/netbsdlike/openbsd/x86_64.rs", + "src/unix/haiku/x86_64.rs", + "src/unix/linux_like/android/b32/x86", + "src/unix/linux_like/android/b64/x86_64", + "src/unix/linux_like/linux/gnu/b32/x86", + "src/unix/linux_like/linux/gnu/b64/x86_64", + "src/unix/linux_like/linux/musl/b32/x86", + "src/unix/linux_like/linux/musl/b64/x86_64", + "src/unix/linux_like/linux/uclibc/x86_64", + "src/unix/nto/x86_64.rs", + "src/unix/solarish/x86.rs", + "src/unix/solarish/x86_64.rs", + "src/unix/solarish/x86_common.rs", + "src/vxworks/x86.rs", + "src/vxworks/x86_64.rs", +] + +[review-submitted] +# These labels are removed when a review is submitted. +review_labels = ["S-waiting-on-review"] +# This label is added when a review is submitted. +reviewed_label = "S-waiting-on-author" + +[review-requested] +# Those labels are removed when PR author requests a review from an assignee +remove_labels = ["S-waiting-on-author"] +# Those labels are added when PR author requests a review from an assignee +add_labels = ["S-waiting-on-review"] + +[shortcut] + [mentions."src/unix/bsd/netbsdlike/openbsd"] message = "Some changes occurred in OpenBSD module" cc = ["@semarie"] @@ -23,5 +168,3 @@ cc = ["@semarie"] [mentions."src/unix/solarish"] message = "Some changes occurred in solarish module" cc = ["@jclulow", "@pfmooney"] - -[shortcut] From 58dcc8af13d9e89d6a02e88a924b7680903e2341 Mon Sep 17 00:00:00 2001 From: Kleis Auke Wolthuizen Date: Thu, 7 Nov 2024 10:08:14 +0100 Subject: [PATCH 0237/1228] emscripten: Remove `aio.h` usage See: emscripten-core/emscripten@6416c351c6d98b796dfefd8a8d00d71e83ca7fa5. (backport ) (cherry picked from commit 01c72ee99a0c6ba5bbb393ab3ef486ba06ccb0e9) --- libc-test/build.rs | 6 +----- src/unix/linux_like/emscripten/mod.rs | 26 -------------------------- 2 files changed, 1 insertion(+), 31 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 0dc9c9ff53064..75a50afc2f810 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2794,7 +2794,6 @@ fn test_emscripten(target: &str) { cfg.define("_GNU_SOURCE", None); // FIXME: ?? headers! { cfg: - "aio.h", "ctype.h", "dirent.h", "dlfcn.h", @@ -3019,10 +3018,7 @@ fn test_emscripten(target: &str) { (struct_ == "sigaction" && field == "sa_sigaction") || // sigval is actually a union, but we pretend it's a struct // FIXME: is this necessary? - (struct_ == "sigevent" && field == "sigev_value") || - // aio_buf is "volatile void*" and Rust doesn't understand volatile - // FIXME: is this necessary? - (struct_ == "aiocb" && field == "aio_buf") + (struct_ == "sigevent" && field == "sigev_value") }); cfg.skip_field(move |struct_, field| { diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 393244d9996f2..2559b3285880a 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -171,23 +171,6 @@ s! { pub sem_flg: ::c_short, } - pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_sigevent: ::sigevent, - __td: *mut ::c_void, - __lock: [::c_int; 2], - __err: ::c_int, - __ret: ::ssize_t, - pub aio_offset: off_t, - __next: *mut ::c_void, - __prev: *mut ::c_void, - __dummy4: [::c_char; 24], - } - pub struct sigaction { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, @@ -917,15 +900,6 @@ pub const SYNC_FILE_RANGE_WAIT_AFTER: ::c_uint = 4; pub const EAI_SYSTEM: ::c_int = -11; -pub const AIO_CANCELED: ::c_int = 0; -pub const AIO_NOTCANCELED: ::c_int = 1; -pub const AIO_ALLDONE: ::c_int = 2; -pub const LIO_READ: ::c_int = 0; -pub const LIO_WRITE: ::c_int = 1; -pub const LIO_NOP: ::c_int = 2; -pub const LIO_WAIT: ::c_int = 0; -pub const LIO_NOWAIT: ::c_int = 1; - pub const MREMAP_MAYMOVE: ::c_int = 1; pub const MREMAP_FIXED: ::c_int = 2; From 7e5427f0156051578be0631c1be21f4a67732326 Mon Sep 17 00:00:00 2001 From: Kleis Auke Wolthuizen Date: Thu, 7 Nov 2024 12:00:30 +0100 Subject: [PATCH 0238/1228] emscripten: Remove `sys/sysctl.h` usage See: emscripten-core/emscripten@15f763203ce5aa382f38b54a68b9370afe40c18a. (backport ) (cherry picked from commit 6670ab287bed1fe9bbe8c71dd525b6edb76b6ed8) --- libc-test/build.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 75a50afc2f810..e5e9e84579946 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2856,7 +2856,6 @@ fn test_emscripten(target: &str) { "sys/statvfs.h", "sys/swap.h", "sys/syscall.h", - "sys/sysctl.h", "sys/sysinfo.h", "sys/time.h", "sys/timerfd.h", From 51248a555fd5c8ab29edfd5801de5a697d105be2 Mon Sep 17 00:00:00 2001 From: Kleis Auke Wolthuizen Date: Thu, 7 Nov 2024 10:13:28 +0100 Subject: [PATCH 0239/1228] emscripten: Remove Linux-specific implementations See: emscripten-core/emscripten@655ad88e65298014a2a37aae88a5b2f9ab3e36f7. (backport ) (cherry picked from commit 0df7c93d966cc0338deafdae290ad7eb5ee84b69) --- libc-test/build.rs | 52 ++++--- src/unix/linux_like/emscripten/mod.rs | 192 -------------------------- 2 files changed, 29 insertions(+), 215 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index e5e9e84579946..5d891ba0b95d9 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2834,31 +2834,21 @@ fn test_emscripten(target: &str) { "stdio.h", "stdlib.h", "string.h", - "sys/epoll.h", - "sys/eventfd.h", "sys/file.h", "sys/ioctl.h", "sys/ipc.h", "sys/mman.h", "sys/mount.h", "sys/msg.h", - "sys/personality.h", - "sys/prctl.h", - "sys/ptrace.h", - "sys/quota.h", - "sys/reboot.h", "sys/resource.h", "sys/sem.h", "sys/shm.h", - "sys/signalfd.h", "sys/socket.h", "sys/stat.h", "sys/statvfs.h", - "sys/swap.h", "sys/syscall.h", "sys/sysinfo.h", "sys/time.h", - "sys/timerfd.h", "sys/times.h", "sys/types.h", "sys/uio.h", @@ -2884,8 +2874,6 @@ fn test_emscripten(target: &str) { // Just pass all these through, no need for a "struct" prefix "FILE" | "fd_set" | "Dl_info" | "DIR" => ty.to_string(), - "os_unfair_lock" => "struct os_unfair_lock_s".to_string(), - // LFS64 types have been removed in Emscripten 3.1.44+ // https://github.com/emscripten-core/emscripten/pull/19812 "off64_t" => "off_t".to_string(), @@ -2922,6 +2910,10 @@ fn test_emscripten(target: &str) { // FIXME: is this necessary? "sighandler_t" => true, + // No epoll support + // https://github.com/emscripten-core/emscripten/issues/5033 + ty if ty.starts_with("epoll") => true, + // FIXME: The size has been changed due to musl's time64 "time_t" => true, @@ -2948,6 +2940,11 @@ fn test_emscripten(target: &str) { // FIXME: The size has been changed when upgraded to musl 1.2.2 "pthread_mutex_t" => true, + // No epoll support + // https://github.com/emscripten-core/emscripten/issues/5033 + ty if ty.starts_with("epoll") => true, + ty if ty.starts_with("signalfd") => true, + // FIXME: Lowered from 16 to 8 bytes in // llvm/llvm-project@d1a96e9 "max_align_t" => true, @@ -2984,10 +2981,30 @@ fn test_emscripten(target: &str) { // FIXME: emscripten uses different constants to constructs these n if n.contains("__SIZEOF_PTHREAD") => true, + // No epoll support + // https://github.com/emscripten-core/emscripten/issues/5033 + n if n.starts_with("EPOLL") => true, + + // No ptrace.h + // https://github.com/emscripten-core/emscripten/pull/17704 + n if n.starts_with("PTRACE_") => true, + + // No quota.h + // https://github.com/emscripten-core/emscripten/pull/17704 + n if n.starts_with("QIF_") => true, + "USRQUOTA" | "GRPQUOTA" | "Q_GETFMT" | "Q_GETINFO" | "Q_SETINFO" | "Q_SYNC" + | "Q_QUOTAON" | "Q_QUOTAOFF" | "Q_GETQUOTA" | "Q_SETQUOTA" => true, + // FIXME: `SYS_gettid` was removed in // emscripten-core/emscripten@6d6474e "SYS_gettid" => true, + // No personality.h + // https://github.com/emscripten-core/emscripten/pull/17704 + "ADDR_NO_RANDOMIZE" | "MMAP_PAGE_ZERO" | "ADDR_COMPAT_LAYOUT" | "READ_IMPLIES_EXEC" + | "ADDR_LIMIT_32BIT" | "SHORT_INODE" | "WHOLE_SECONDS" | "STICKY_TIMEOUTS" + | "ADDR_LIMIT_3GB" => true, + // FIXME: These values have been changed | "POSIX_MADV_DONTNEED" // to 4 | "RLIMIT_NLIMITS" // to 16 @@ -3028,17 +3045,6 @@ fn test_emscripten(target: &str) { // musl names this __dummy1 but it's still there // FIXME: is this necessary? (struct_ == "glob_t" && field == "gl_flags") || - // musl seems to define this as an *anonymous* bitfield - // FIXME: is this necessary? - (struct_ == "statvfs" && field == "__f_unused") || - // sigev_notify_thread_id is actually part of a sigev_un union - (struct_ == "sigevent" && field == "sigev_notify_thread_id") || - // signalfd had SIGSYS fields added in Linux 4.18, but no libc release has them yet. - (struct_ == "signalfd_siginfo" && (field == "ssi_addr_lsb" || - field == "_pad2" || - field == "ssi_syscall" || - field == "ssi_call_addr" || - field == "ssi_arch")) || // FIXME: After musl 1.1.24, it have only one field `sched_priority`, // while other fields become reserved. (struct_ == "sched_param" && [ diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 2559b3285880a..cfaff7f2bfaf7 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -103,18 +103,6 @@ s! { __f_spare: [::c_int; 6], } - pub struct dqblk { - pub dqb_bhardlimit: u64, - pub dqb_bsoftlimit: u64, - pub dqb_curspace: u64, - pub dqb_ihardlimit: u64, - pub dqb_isoftlimit: u64, - pub dqb_curinodes: u64, - pub dqb_btime: u64, - pub dqb_itime: u64, - pub dqb_valid: u32, - } - pub struct signalfd_siginfo { pub ssi_signo: u32, pub ssi_errno: i32, @@ -852,23 +840,10 @@ pub const SHM_UNLOCK: ::c_int = 12; pub const SHM_HUGETLB: ::c_int = 0o4000; pub const SHM_NORESERVE: ::c_int = 0o10000; -pub const QFMT_VFS_OLD: ::c_int = 1; -pub const QFMT_VFS_V0: ::c_int = 2; - -pub const EFD_SEMAPHORE: ::c_int = 0x1; - pub const LOG_NFACILITIES: ::c_int = 24; pub const SEM_FAILED: *mut ::sem_t = 0 as *mut sem_t; -pub const RB_AUTOBOOT: ::c_int = 0x01234567u32 as i32; -pub const RB_HALT_SYSTEM: ::c_int = 0xcdef0123u32 as i32; -pub const RB_ENABLE_CAD: ::c_int = 0x89abcdefu32 as i32; -pub const RB_DISABLE_CAD: ::c_int = 0x00000000u32 as i32; -pub const RB_POWER_OFF: ::c_int = 0x4321fedcu32 as i32; -pub const RB_SW_SUSPEND: ::c_int = 0xd000fce2u32 as i32; -pub const RB_KEXEC: ::c_int = 0x45584543u32 as i32; - pub const AI_PASSIVE: ::c_int = 0x0001; pub const AI_CANONNAME: ::c_int = 0x0002; pub const AI_NUMERICHOST: ::c_int = 0x0004; @@ -903,127 +878,6 @@ pub const EAI_SYSTEM: ::c_int = -11; pub const MREMAP_MAYMOVE: ::c_int = 1; pub const MREMAP_FIXED: ::c_int = 2; -pub const PR_SET_PDEATHSIG: ::c_int = 1; -pub const PR_GET_PDEATHSIG: ::c_int = 2; - -pub const PR_GET_DUMPABLE: ::c_int = 3; -pub const PR_SET_DUMPABLE: ::c_int = 4; - -pub const PR_GET_UNALIGN: ::c_int = 5; -pub const PR_SET_UNALIGN: ::c_int = 6; -pub const PR_UNALIGN_NOPRINT: ::c_int = 1; -pub const PR_UNALIGN_SIGBUS: ::c_int = 2; - -pub const PR_GET_KEEPCAPS: ::c_int = 7; -pub const PR_SET_KEEPCAPS: ::c_int = 8; - -pub const PR_GET_FPEMU: ::c_int = 9; -pub const PR_SET_FPEMU: ::c_int = 10; -pub const PR_FPEMU_NOPRINT: ::c_int = 1; -pub const PR_FPEMU_SIGFPE: ::c_int = 2; - -pub const PR_GET_FPEXC: ::c_int = 11; -pub const PR_SET_FPEXC: ::c_int = 12; -pub const PR_FP_EXC_SW_ENABLE: ::c_int = 0x80; -pub const PR_FP_EXC_DIV: ::c_int = 0x010000; -pub const PR_FP_EXC_OVF: ::c_int = 0x020000; -pub const PR_FP_EXC_UND: ::c_int = 0x040000; -pub const PR_FP_EXC_RES: ::c_int = 0x080000; -pub const PR_FP_EXC_INV: ::c_int = 0x100000; -pub const PR_FP_EXC_DISABLED: ::c_int = 0; -pub const PR_FP_EXC_NONRECOV: ::c_int = 1; -pub const PR_FP_EXC_ASYNC: ::c_int = 2; -pub const PR_FP_EXC_PRECISE: ::c_int = 3; - -pub const PR_GET_TIMING: ::c_int = 13; -pub const PR_SET_TIMING: ::c_int = 14; -pub const PR_TIMING_STATISTICAL: ::c_int = 0; -pub const PR_TIMING_TIMESTAMP: ::c_int = 1; - -pub const PR_SET_NAME: ::c_int = 15; -pub const PR_GET_NAME: ::c_int = 16; - -pub const PR_GET_ENDIAN: ::c_int = 19; -pub const PR_SET_ENDIAN: ::c_int = 20; -pub const PR_ENDIAN_BIG: ::c_int = 0; -pub const PR_ENDIAN_LITTLE: ::c_int = 1; -pub const PR_ENDIAN_PPC_LITTLE: ::c_int = 2; - -pub const PR_GET_SECCOMP: ::c_int = 21; -pub const PR_SET_SECCOMP: ::c_int = 22; - -pub const PR_CAPBSET_READ: ::c_int = 23; -pub const PR_CAPBSET_DROP: ::c_int = 24; - -pub const PR_GET_TSC: ::c_int = 25; -pub const PR_SET_TSC: ::c_int = 26; -pub const PR_TSC_ENABLE: ::c_int = 1; -pub const PR_TSC_SIGSEGV: ::c_int = 2; - -pub const PR_GET_SECUREBITS: ::c_int = 27; -pub const PR_SET_SECUREBITS: ::c_int = 28; - -pub const PR_SET_TIMERSLACK: ::c_int = 29; -pub const PR_GET_TIMERSLACK: ::c_int = 30; - -pub const PR_TASK_PERF_EVENTS_DISABLE: ::c_int = 31; -pub const PR_TASK_PERF_EVENTS_ENABLE: ::c_int = 32; - -pub const PR_MCE_KILL: ::c_int = 33; -pub const PR_MCE_KILL_CLEAR: ::c_int = 0; -pub const PR_MCE_KILL_SET: ::c_int = 1; - -pub const PR_MCE_KILL_LATE: ::c_int = 0; -pub const PR_MCE_KILL_EARLY: ::c_int = 1; -pub const PR_MCE_KILL_DEFAULT: ::c_int = 2; - -pub const PR_MCE_KILL_GET: ::c_int = 34; - -pub const PR_SET_MM: ::c_int = 35; -pub const PR_SET_MM_START_CODE: ::c_int = 1; -pub const PR_SET_MM_END_CODE: ::c_int = 2; -pub const PR_SET_MM_START_DATA: ::c_int = 3; -pub const PR_SET_MM_END_DATA: ::c_int = 4; -pub const PR_SET_MM_START_STACK: ::c_int = 5; -pub const PR_SET_MM_START_BRK: ::c_int = 6; -pub const PR_SET_MM_BRK: ::c_int = 7; -pub const PR_SET_MM_ARG_START: ::c_int = 8; -pub const PR_SET_MM_ARG_END: ::c_int = 9; -pub const PR_SET_MM_ENV_START: ::c_int = 10; -pub const PR_SET_MM_ENV_END: ::c_int = 11; -pub const PR_SET_MM_AUXV: ::c_int = 12; -pub const PR_SET_MM_EXE_FILE: ::c_int = 13; -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; - -pub const PR_SET_NO_NEW_PRIVS: ::c_int = 38; -pub const PR_GET_NO_NEW_PRIVS: ::c_int = 39; - -pub const PR_GET_TID_ADDRESS: ::c_int = 40; - -pub const PR_SET_THP_DISABLE: ::c_int = 41; -pub const PR_GET_THP_DISABLE: ::c_int = 42; - -pub const PR_MPX_ENABLE_MANAGEMENT: ::c_int = 43; -pub const PR_MPX_DISABLE_MANAGEMENT: ::c_int = 44; - -pub const PR_SET_FP_MODE: ::c_int = 45; -pub const PR_GET_FP_MODE: ::c_int = 46; -pub const PR_FP_MODE_FR: ::c_int = 1 << 0; -pub const PR_FP_MODE_FRE: ::c_int = 1 << 1; - -pub const PR_CAP_AMBIENT: ::c_int = 47; -pub const PR_CAP_AMBIENT_IS_SET: ::c_int = 1; -pub const PR_CAP_AMBIENT_RAISE: ::c_int = 2; -pub const PR_CAP_AMBIENT_LOWER: ::c_int = 3; -pub const PR_CAP_AMBIENT_CLEAR_ALL: ::c_int = 4; - pub const ITIMER_REAL: ::c_int = 0; pub const ITIMER_VIRTUAL: ::c_int = 1; pub const ITIMER_PROF: ::c_int = 2; @@ -1033,11 +887,6 @@ pub const _POSIX_VDISABLE: ::cc_t = 0; pub const FALLOC_FL_KEEP_SIZE: ::c_int = 0x01; pub const FALLOC_FL_PUNCH_HOLE: ::c_int = 0x02; -// On Linux, libc doesn't define this constant, libattr does instead. -// We still define it for Linux as it's defined by libc on other platforms, -// and it's mentioned in the man pages for getxattr and setxattr. -pub const SFD_CLOEXEC: ::c_int = 0x080000; - pub const NCCS: usize = 32; pub const O_TRUNC: ::c_int = 512; @@ -1186,10 +1035,6 @@ pub const SA_RESETHAND: ::c_int = 0x80000000; pub const SA_RESTART: ::c_int = 0x10000000; pub const SA_NOCLDSTOP: ::c_int = 0x00000001; -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -pub const EFD_CLOEXEC: ::c_int = 0x80000; - pub const BUFSIZ: ::c_uint = 1024; pub const TMP_MAX: ::c_uint = 10000; pub const FOPEN_MAX: ::c_uint = 1000; @@ -1224,43 +1069,6 @@ pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; pub const CPU_SETSIZE: ::c_int = 128; -pub const QFMT_VFS_V1: ::c_int = 4; - -pub const PTRACE_TRACEME: ::c_int = 0; -pub const PTRACE_PEEKTEXT: ::c_int = 1; -pub const PTRACE_PEEKDATA: ::c_int = 2; -pub const PTRACE_PEEKUSER: ::c_int = 3; -pub const PTRACE_POKETEXT: ::c_int = 4; -pub const PTRACE_POKEDATA: ::c_int = 5; -pub const PTRACE_POKEUSER: ::c_int = 6; -pub const PTRACE_CONT: ::c_int = 7; -pub const PTRACE_KILL: ::c_int = 8; -pub const PTRACE_SINGLESTEP: ::c_int = 9; -pub const PTRACE_ATTACH: ::c_int = 16; -pub const PTRACE_DETACH: ::c_int = 17; -pub const PTRACE_SYSCALL: ::c_int = 24; -pub const PTRACE_SETOPTIONS: ::c_int = 0x4200; -pub const PTRACE_GETEVENTMSG: ::c_int = 0x4201; -pub const PTRACE_GETSIGINFO: ::c_int = 0x4202; -pub const PTRACE_SETSIGINFO: ::c_int = 0x4203; -pub const PTRACE_GETREGSET: ::c_int = 0x4204; -pub const PTRACE_SETREGSET: ::c_int = 0x4205; -pub const PTRACE_SEIZE: ::c_int = 0x4206; -pub const PTRACE_INTERRUPT: ::c_int = 0x4207; -pub const PTRACE_LISTEN: ::c_int = 0x4208; -pub const PTRACE_PEEKSIGINFO: ::c_int = 0x4209; - -pub const PTRACE_GETFPREGS: ::c_uint = 14; -pub const PTRACE_SETFPREGS: ::c_uint = 15; -pub const PTRACE_GETFPXREGS: ::c_uint = 18; -pub const PTRACE_SETFPXREGS: ::c_uint = 19; -pub const PTRACE_GETREGS: ::c_uint = 12; -pub const PTRACE_SETREGS: ::c_uint = 13; - -pub const EFD_NONBLOCK: ::c_int = ::O_NONBLOCK; - -pub const SFD_NONBLOCK: ::c_int = ::O_NONBLOCK; - pub const TCSANOW: ::c_int = 0; pub const TCSADRAIN: ::c_int = 1; pub const TCSAFLUSH: ::c_int = 2; From eb821a3a8688b52799c388927d67f267f6fd326f Mon Sep 17 00:00:00 2001 From: Kleis Auke Wolthuizen Date: Wed, 13 Nov 2024 09:57:33 +0100 Subject: [PATCH 0240/1228] emscripten: Lower `max_align_t` from 16 to 8 bytes See: llvm/llvm-project@d1a96e906cc03a95cfd41a1f22bdda92651250c7. (backport ) (cherry picked from commit 99035d7fa369be695f8b41221a95d73c052c3916) --- libc-test/build.rs | 4 ---- src/unix/linux_like/emscripten/align.rs | 4 ++-- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 5d891ba0b95d9..7645c20106be7 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2945,10 +2945,6 @@ fn test_emscripten(target: &str) { ty if ty.starts_with("epoll") => true, ty if ty.starts_with("signalfd") => true, - // FIXME: Lowered from 16 to 8 bytes in - // llvm/llvm-project@d1a96e9 - "max_align_t" => true, - // FIXME: The size has been changed due to time64 "utimbuf" | "timeval" | "timespec" | "rusage" | "itimerval" | "sched_param" | "stat" | "stat64" | "shmid_ds" | "msqid_ds" => true, diff --git a/src/unix/linux_like/emscripten/align.rs b/src/unix/linux_like/emscripten/align.rs index b9ea3f39efdf5..015690eedae45 100644 --- a/src/unix/linux_like/emscripten/align.rs +++ b/src/unix/linux_like/emscripten/align.rs @@ -38,9 +38,9 @@ macro_rules! expand_align { } #[allow(missing_debug_implementations)] - #[repr(align(16))] + #[repr(align(8))] pub struct max_align_t { - priv_: [f64; 4] + priv_: [f64; 3] } } From 4aa7cca2ab03f13921f7f6915c8a9fbc0b31123f Mon Sep 17 00:00:00 2001 From: Kleis Auke Wolthuizen Date: Thu, 7 Nov 2024 10:48:06 +0100 Subject: [PATCH 0241/1228] emscripten: Upgrade emsdk to 3.1.68 In line with commit rust-lang/rust@2c38ecfc9077000db7de14bf501fa5294eeecedd. Notable changes: - `time_t` changed to 64-bit. emscripten-core/emscripten@c8857a6152c3954014d2aefb706471ee4c80fe30 (backport ) (cherry picked from commit 3e825311dc999a3f2da67ca1afe47309d3d73950) --- ci/emscripten.sh | 6 +-- libc-test/build.rs | 55 ++++++--------------------- src/unix/linux_like/emscripten/mod.rs | 26 +++++-------- 3 files changed, 25 insertions(+), 62 deletions(-) diff --git a/ci/emscripten.sh b/ci/emscripten.sh index 44da97c93ee68..b99d2cfbe5397 100644 --- a/ci/emscripten.sh +++ b/ci/emscripten.sh @@ -2,9 +2,9 @@ set -ex -# FIXME: 3.1.21 removed a lot of header files (https://github.com/emscripten-core/emscripten/pull/17704). -# We have to tweak libc-test (and deprecate unsupported items, maybe) when updating emsdk. -EMSDK_VERSION=3.1.20 +# Note: keep in sync with: +# https://github.com/rust-lang/rust/blob/master/src/ci/docker/scripts/emscripten.sh +EMSDK_VERSION=3.1.68 git clone https://github.com/emscripten-core/emsdk.git /emsdk-portable cd /emsdk-portable diff --git a/libc-test/build.rs b/libc-test/build.rs index 7645c20106be7..37ca243033ca8 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2874,7 +2874,7 @@ fn test_emscripten(target: &str) { // Just pass all these through, no need for a "struct" prefix "FILE" | "fd_set" | "Dl_info" | "DIR" => ty.to_string(), - // LFS64 types have been removed in Emscripten 3.1.44+ + // LFS64 types have been removed in Emscripten 3.1.44 // https://github.com/emscripten-core/emscripten/pull/19812 "off64_t" => "off_t".to_string(), @@ -2898,7 +2898,7 @@ fn test_emscripten(target: &str) { s if s.ends_with("_nsec") && struct_.starts_with("stat") => { s.replace("e_nsec", ".tv_nsec") } - // FIXME: appears that `epoll_event.data` is an union + // Rust struct uses raw u64, rather than union "u64" if struct_ == "epoll_event" => "data.u64".to_string(), s => s.to_string(), } @@ -2914,10 +2914,7 @@ fn test_emscripten(target: &str) { // https://github.com/emscripten-core/emscripten/issues/5033 ty if ty.starts_with("epoll") => true, - // FIXME: The size has been changed due to musl's time64 - "time_t" => true, - - // LFS64 types have been removed in Emscripten 3.1.44+ + // LFS64 types have been removed in Emscripten 3.1.44 // https://github.com/emscripten-core/emscripten/pull/19812 t => t.ends_with("64") || t.ends_with("64_t"), } @@ -2926,30 +2923,19 @@ fn test_emscripten(target: &str) { cfg.skip_struct(move |ty| { match ty { // This is actually a union, not a struct - // FIXME: is this necessary? "sigval" => true, - // FIXME: It was removed in - // emscripten-core/emscripten@953e414 - "pthread_mutexattr_t" => true, - // FIXME: Investigate why the test fails. // Skip for now to unblock CI. "pthread_condattr_t" => true, - - // FIXME: The size has been changed when upgraded to musl 1.2.2 - "pthread_mutex_t" => true, + "pthread_mutexattr_t" => true, // No epoll support // https://github.com/emscripten-core/emscripten/issues/5033 ty if ty.starts_with("epoll") => true, ty if ty.starts_with("signalfd") => true, - // FIXME: The size has been changed due to time64 - "utimbuf" | "timeval" | "timespec" | "rusage" | "itimerval" | "sched_param" - | "stat" | "stat64" | "shmid_ds" | "msqid_ds" => true, - - // LFS64 types have been removed in Emscripten 3.1.44+ + // LFS64 types have been removed in Emscripten 3.1.44 // https://github.com/emscripten-core/emscripten/pull/19812 ty => ty.ends_with("64") || ty.ends_with("64_t"), } @@ -2958,12 +2944,9 @@ fn test_emscripten(target: &str) { cfg.skip_fn(move |name| { match name { // Emscripten does not support fork/exec/wait or any kind of multi-process support - // https://github.com/emscripten-core/emscripten/blob/3.1.30/tools/system_libs.py#L973 + // https://github.com/emscripten-core/emscripten/blob/3.1.68/tools/system_libs.py#L1100 "execv" | "execve" | "execvp" | "execvpe" | "fexecve" | "wait4" => true, - // FIXME: Remove after emscripten-core/emscripten#18492 is released (> 3.1.30). - "clearenv" => true, - _ => false, } }); @@ -2991,8 +2974,8 @@ fn test_emscripten(target: &str) { "USRQUOTA" | "GRPQUOTA" | "Q_GETFMT" | "Q_GETINFO" | "Q_SETINFO" | "Q_SYNC" | "Q_QUOTAON" | "Q_QUOTAOFF" | "Q_GETQUOTA" | "Q_SETQUOTA" => true, - // FIXME: `SYS_gettid` was removed in - // emscripten-core/emscripten@6d6474e + // `SYS_gettid` was removed in Emscripten v1.39.9 + // https://github.com/emscripten-core/emscripten/pull/10439 "SYS_gettid" => true, // No personality.h @@ -3001,19 +2984,11 @@ fn test_emscripten(target: &str) { | "ADDR_LIMIT_32BIT" | "SHORT_INODE" | "WHOLE_SECONDS" | "STICKY_TIMEOUTS" | "ADDR_LIMIT_3GB" => true, - // FIXME: These values have been changed - | "POSIX_MADV_DONTNEED" // to 4 - | "RLIMIT_NLIMITS" // to 16 - | "RLIM_NLIMITS" // to 16 - | "IPPROTO_MAX" // to 263 - | "F_GETLK" // to 5 - | "F_SETLK" // to 6 - | "F_SETLKW" // to 7 - | "O_TMPFILE" // to 65 - | "SIG_IGN" // -1 - => true, + // `SIG_IGN` has been changed to -2 since 1 is a valid function address + // https://github.com/emscripten-core/emscripten/pull/14883 + "SIG_IGN" => true, - // LFS64 types have been removed in Emscripten 3.1.44+ + // LFS64 types have been removed in Emscripten 3.1.44 // https://github.com/emscripten-core/emscripten/pull/19812 n if n.starts_with("RLIM64") => true, @@ -3023,23 +2998,18 @@ fn test_emscripten(target: &str) { cfg.skip_field_type(move |struct_, field| { // This is a weird union, don't check the type. - // FIXME: is this necessary? (struct_ == "ifaddrs" && field == "ifa_ifu") || // sighandler_t type is super weird - // FIXME: is this necessary? (struct_ == "sigaction" && field == "sa_sigaction") || // sigval is actually a union, but we pretend it's a struct - // FIXME: is this necessary? (struct_ == "sigevent" && field == "sigev_value") }); cfg.skip_field(move |struct_, field| { // this is actually a union on linux, so we can't represent it well and // just insert some padding. - // FIXME: is this necessary? (struct_ == "siginfo_t" && field == "_pad") || // musl names this __dummy1 but it's still there - // FIXME: is this necessary? (struct_ == "glob_t" && field == "gl_flags") || // FIXME: After musl 1.1.24, it have only one field `sched_priority`, // while other fields become reserved. @@ -3051,7 +3021,6 @@ fn test_emscripten(target: &str) { ].contains(&field)) }); - // FIXME: test linux like cfg.generate("../src/lib.rs", "main.rs"); } diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index cfaff7f2bfaf7..5fe0ed0933012 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -16,7 +16,7 @@ pub type loff_t = i64; pub type pthread_key_t = ::c_uint; pub type clock_t = c_long; -pub type time_t = c_long; +pub type time_t = i64; pub type suseconds_t = c_long; pub type ino_t = u64; pub type off_t = i64; @@ -259,11 +259,8 @@ s! { pub shm_perm: ::ipc_perm, pub shm_segsz: ::size_t, pub shm_atime: ::time_t, - __unused1: ::c_int, pub shm_dtime: ::time_t, - __unused2: ::c_int, pub shm_ctime: ::time_t, - __unused3: ::c_int, pub shm_cpid: ::pid_t, pub shm_lpid: ::pid_t, pub shm_nattch: ::c_ulong, @@ -274,11 +271,8 @@ s! { pub struct msqid_ds { pub msg_perm: ::ipc_perm, pub msg_stime: ::time_t, - __unused1: ::c_int, pub msg_rtime: ::time_t, - __unused2: ::c_int, pub msg_ctime: ::time_t, - __unused3: ::c_int, __msg_cbytes: ::c_ulong, pub msg_qnum: ::msgqnum_t, pub msg_qbytes: ::msglen_t, @@ -1048,11 +1042,11 @@ pub const PTHREAD_STACK_MIN: ::size_t = 2048; pub const POSIX_FADV_DONTNEED: ::c_int = 4; pub const POSIX_FADV_NOREUSE: ::c_int = 5; -pub const POSIX_MADV_DONTNEED: ::c_int = 0; +pub const POSIX_MADV_DONTNEED: ::c_int = 4; pub const RLIM_INFINITY: ::rlim_t = !0; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIMIT_NLIMITS: ::c_int = 15; +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; @@ -1067,7 +1061,7 @@ pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; -pub const CPU_SETSIZE: ::c_int = 128; +pub const CPU_SETSIZE: ::c_int = 1024; pub const TCSANOW: ::c_int = 0; pub const TCSADRAIN: ::c_int = 1; @@ -1169,14 +1163,14 @@ pub const B3500000: ::speed_t = 0o010016; pub const B4000000: ::speed_t = 0o010017; pub const SO_BINDTODEVICE: ::c_int = 25; -pub const SO_TIMESTAMP: ::c_int = 29; +pub const SO_TIMESTAMP: ::c_int = 63; pub const SO_MARK: ::c_int = 36; pub const SO_RXQ_OVFL: ::c_int = 40; pub const SO_PEEK_OFF: ::c_int = 42; pub const SO_BUSY_POLL: ::c_int = 46; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 28; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; pub const O_DIRECT: ::c_int = 0x4000; pub const O_DIRECTORY: ::c_int = 0x10000; @@ -1227,7 +1221,7 @@ pub const SOCK_STREAM: ::c_int = 1; pub const SOCK_DGRAM: ::c_int = 2; pub const SOCK_SEQPACKET: ::c_int = 5; -pub const IPPROTO_MAX: ::c_int = 256; +pub const IPPROTO_MAX: ::c_int = 263; pub const SOL_SOCKET: ::c_int = 1; @@ -1244,8 +1238,8 @@ pub const SO_LINGER: ::c_int = 13; pub const SO_REUSEPORT: ::c_int = 15; pub const SO_RCVLOWAT: ::c_int = 18; pub const SO_SNDLOWAT: ::c_int = 19; -pub const SO_RCVTIMEO: ::c_int = 20; -pub const SO_SNDTIMEO: ::c_int = 21; +pub const SO_RCVTIMEO: ::c_int = 66; +pub const SO_SNDTIMEO: ::c_int = 67; pub const SO_ACCEPTCONN: ::c_int = 30; pub const IPV6_RTHDR_LOOSE: ::c_int = 0; @@ -1347,7 +1341,7 @@ pub const TIOCM_RNG: ::c_int = 0x080; pub const TIOCM_DSR: ::c_int = 0x100; pub const TIOCM_CD: ::c_int = TIOCM_CAR; pub const TIOCM_RI: ::c_int = TIOCM_RNG; -pub const O_TMPFILE: ::c_int = 0x400000; +pub const O_TMPFILE: ::c_int = 0x410000; pub const MAX_ADDR_LEN: usize = 7; pub const ARPD_UPDATE: ::c_ushort = 0x01; From 6c8488ae87528fe37f3b51cee6171541cb8930ef Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 13 Nov 2024 19:37:05 -0500 Subject: [PATCH 0242/1228] triagebot: Don't label everything as O-wasm (backport ) (cherry picked from commit 16dc9170b21880a0bdce5e54ef34ab4eefa93cda) --- triagebot.toml | 3 --- 1 file changed, 3 deletions(-) diff --git a/triagebot.toml b/triagebot.toml index 3183d723f1cb8..25a0a80478b1f 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -107,9 +107,6 @@ trigger_files = ["src/unix"] [autolabel."O-wasi"] trigger_files = ["src/wasi"] -[autolabel."O-wasm"] -trigger_files = ["src/"] - [autolabel."O-windows"] trigger_files = ["src/windows"] From 646ded151324672e539410de7a415896809a4ec8 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 14 Nov 2024 22:41:49 -0600 Subject: [PATCH 0243/1228] Specify `rust-version = "1.19"` in Cargo.toml The `libc-0.2` branch currently tests down to version 1.19. Document this in Cargo.toml to give an obvious point of reference when this changes. --- Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Cargo.toml b/Cargo.toml index 84f34dc468f20..0658c88bbbaef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,6 +11,7 @@ keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] build = "build.rs" exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml"] +rust-version = "1.19" description = """ Raw FFI bindings to platform libraries like libc. """ From 93052d1542de2e0c99364156d2356a1c6d1cf43e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 14 Nov 2024 21:49:47 -0600 Subject: [PATCH 0244/1228] Document the MSRV of the stable channel as 1.63 Currently this crate maintains the `main` branch (future 1.0) alongside `libc-0.2` (current stable release). PRs are made against `main` then cherry picked as applicable to `libc-0.2`. Usually this flow works okay, but there is a substantial difference in minimum supported versions: libc-0.2 is tested down to 1.19 and main is tested with 1.63. This means that supported features differ quite a bit and as a result, cherry picks get conflict-heavy (e.g. `repr(align)`, `union`, and `const fn` cannot be used on `libc-0.2`). In order to make it easier to keep these branches in sync and get us close to a 1.0 release, raise the MSRV on `libc-0.2` to 1.63. This means both branches can run the exact same tests. Future Changes ============== This still does not establish a MSRV policy, which has been discussed at great length in [1]. For the purpose of unsticking us this selects 1.63 as the MSRV, which is the version currently available on Debian stable (a commonly requested reference point in [1], and about the oldest specific version mentioned). This is a documentation-only change to keep things simple, cleanup can follow. Further increases and official policy are not precluded. History ======= An attempt to raise the MSRV to 1.57 in 2022 was approved at one point [2], but never merged due to various failures. Making this a documentation-only change hopes to avoid this problem. I brought up a 0.3 release to increase versions in [3], but consensus there was that we should be able to increase the MSRV in the existing 0.2 release without a semver-breaking change. Link: https://github.com/rust-lang/libs-team/issues/72 [1] Link: https://github.com/rust-lang/libc/pull/2845 [2] Link: https://github.com/rust-lang/libs-team/issues/463 [3] --- README.md | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index bf82d5de6686f..ec095cb4a43f8 100644 --- a/README.md +++ b/README.md @@ -55,21 +55,13 @@ libc = "0.2" ## Rust version support -The minimum supported Rust toolchain version is currently **Rust 1.13.0**. (libc -does not currently have any policy regarding changes to the minimum supported -Rust version; such policy is a work in progress.) APIs requiring newer Rust -features are only available on newer Rust toolchains: - -| Feature | Version | -| -------------------- | ------- | -| `union` | 1.19.0 | -| `const mem::size_of` | 1.24.0 | -| `repr(align)` | 1.25.0 | -| `extra_traits` | 1.25.0 | -| `core::ffi::c_void` | 1.30.0 | -| `repr(packed(N))` | 1.33.0 | -| `cfg(target_vendor)` | 1.33.0 | -| `const-extern-fn` | 1.62.0 | +The minimum supported Rust toolchain version is currently **Rust 1.63**. + +Increases to the MSRV are allowed to change without a major (i.e. semver- +breaking) release in order to avoid a ripple effect in the ecosystem. + +`libc` may continue to compile with Rust versions older than the current MSRV +but this is not guaranteed. ## Platform support From 3a1582fdfdc0a2f8cd0167ce7353ac39f1ddd3c5 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 00:17:56 -0600 Subject: [PATCH 0245/1228] solaris: Skip `fexecve` in tests Tests do not pass on the 0.2 branch. See https://github.com/rust-lang/libc/issues/1272. --- libc-test/build.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 37ca243033ca8..f96bcd081f9d3 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1064,6 +1064,9 @@ fn test_solarish(target: &str) { // const-ness issues "execv" | "execve" | "execvp" | "settimeofday" | "sethostname" => true, + // FIXME(1.0): https://github.com/rust-lang/libc/issues/1272 + "fexecve" => true, + // Solaris-different "getpwent_r" | "getgrent_r" | "updwtmpx" if is_illumos => true, "madvise" | "mprotect" if is_illumos => true, From 971645bac8ae9e79330a43f7edc4b67617d87bba Mon Sep 17 00:00:00 2001 From: Petr Sumbera Date: Wed, 13 Nov 2024 16:24:04 +0000 Subject: [PATCH 0246/1228] Solaris: Add CI, fix: confstr, uc_lwpid is missing from Solaris 11.4 CBE release (backport ) (cherry picked from commit 741264c03358a0625ae11f46024e4ea085fb88df) --- .github/workflows/full_ci.yml | 28 ++++++++++++++++++++++++++++ src/unix/mod.rs | 3 +++ src/unix/solarish/x86_64.rs | 4 +--- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/.github/workflows/full_ci.yml b/.github/workflows/full_ci.yml index 5e594a9a88079..74386c64948a3 100644 --- a/.github/workflows/full_ci.yml +++ b/.github/workflows/full_ci.yml @@ -194,6 +194,33 @@ jobs: - name: Execute run-docker.sh run: sh ./ci/run-docker.sh ${{ matrix.target }} + solaris: + name: Solaris + runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + target: + - x86_64-pc-solaris + steps: + - uses: actions/checkout@v4 + - name: test on Solaris + uses: vmactions/solaris-vm@v1 + with: + release: "11.4-gcc" + usesh: true + mem: 4096 + copyback: false + prepare: | + source <(curl -s https://raw.githubusercontent.com/psumbera/solaris-rust/refs/heads/main/sh.rust-web-install) + echo "~~~~ rustc --version ~~~~" + rustc --version + echo "~~~~ Solaris-version ~~~~" + uname -a + run: | + export PATH=$HOME/.rust_solaris/bin:$PATH + bash ./ci/run.sh ${{ matrix.target }} + check_cfg: name: "Check #[cfg]s" runs-on: ubuntu-22.04 @@ -214,6 +241,7 @@ jobs: - docker_linux_tier2 - macos - windows + - solaris - style_check - build_channels_linux - build_channels_macos diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 11a2491b2c4c7..db60f8ef29ee4 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1492,6 +1492,9 @@ cfg_if! { all(target_os = "macos", target_arch = "x86"), link_name = "confstr$UNIX2003" )] + #[cfg_attr(target_os = "solaris", + link_name = "__confstr_xpg7" + )] pub fn confstr(name: ::c_int, buf: *mut ::c_char, len: ::size_t) -> ::size_t; } } diff --git a/src/unix/solarish/x86_64.rs b/src/unix/solarish/x86_64.rs index c7cb52c47749e..e95eecd6211c0 100644 --- a/src/unix/solarish/x86_64.rs +++ b/src/unix/solarish/x86_64.rs @@ -90,9 +90,7 @@ s_no_extra_traits! { #[cfg(target_os = "solaris")] pub uc_xrs: solaris::xrs_t, #[cfg(target_os = "solaris")] - pub uc_lwpid: ::c_uint, - #[cfg(target_os = "solaris")] - pub uc_filler: [::c_long; 2], + pub uc_filler: [::c_long; 3], } } From 20893e464bae8eb131f8b70aa9c774be739c3984 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Thu, 26 Sep 2024 20:31:31 +0100 Subject: [PATCH 0247/1228] adding arc4random* api family for solarish. [solaris](https://docs.oracle.com/cd/E88353_01/html/E37843/arc4random-buf-3c.html) [illumos](https://illumos.org/man/3C/arc4random_buf) (backport ) (cherry picked from commit 71f74cd8bc3310198c59740858e3287f20cee007) --- libc-test/semver/solarish.txt | 11 +++++++++++ src/unix/solarish/mod.rs | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/libc-test/semver/solarish.txt b/libc-test/semver/solarish.txt index 8f51b3ceca6fa..77fcde3d18155 100644 --- a/libc-test/semver/solarish.txt +++ b/libc-test/semver/solarish.txt @@ -7,6 +7,17 @@ IP_PKTINFO IP_TOS IP_TTL PIPE_BUF +SIGEV_PORT +aio_cancel +aio_error +aio_fsync +aio_read +aio_result_t +aio_return +aio_suspend +aio_waitn +aio_write +aiocb bind in6_pktinfo in_pktinfo diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 2e3bc3ed0013d..46ccf4904c4d2 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -3048,6 +3048,10 @@ extern "C" { pub fn __major(version: ::c_int, devnum: ::dev_t) -> ::major_t; pub fn __minor(version: ::c_int, devnum: ::dev_t) -> ::minor_t; pub fn __makedev(version: ::c_int, majdev: ::major_t, mindev: ::minor_t) -> ::dev_t; + + pub fn arc4random() -> u32; + pub fn arc4random_buf(buf: *mut ::c_void, nbytes: ::size_t); + pub fn arc4random_uniform(upper_bound: u32) -> u32; } #[link(name = "sendfile")] From 030b458bd7d634f6611c72126c7950023bc6880e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AE=87=E9=80=B8?= Date: Wed, 13 Nov 2024 21:31:15 +0900 Subject: [PATCH 0248/1228] feat: add `aio` for solarish (backport ) (cherry picked from commit ccc0b0780d3492462cdc9b8fda62b3584d408521) --- libc-test/build.rs | 12 +++++++++++ libc-test/semver/solarish.txt | 9 ++++++++ src/unix/solarish/illumos.rs | 13 ++++++++++++ src/unix/solarish/mod.rs | 39 +++++++++++++++++++++++++++++++++++ src/unix/solarish/solaris.rs | 15 ++++++++++++++ 5 files changed, 88 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index f96bcd081f9d3..649fa899494e0 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -847,6 +847,7 @@ fn test_solarish(target: &str) { headers! { cfg: + "aio.h", "ctype.h", "dirent.h", "dlfcn.h", @@ -1009,6 +1010,11 @@ fn test_solarish(target: &str) { } }); + cfg.skip_field_type(move |struct_, field| { + // aio_buf is "volatile void*" + struct_ == "aiocb" && field == "aio_buf" + }); + cfg.skip_field(move |s, field| { match s { // C99 sizing on this is tough @@ -1090,6 +1096,12 @@ fn test_solarish(target: &str) { // excluded from the tests. "getifaddrs" if is_illumos => true, + // FIXME: Our API is unsound. The Rust API allows aliasing + // pointers, but the C API requires pointers not to alias. + // We should probably be at least using `&`/`&mut` here, see: + // https://github.com/gnzlbg/ctest/issues/68 + "lio_listio" => true, + _ => false, } }); diff --git a/libc-test/semver/solarish.txt b/libc-test/semver/solarish.txt index 77fcde3d18155..076eb5988bcb7 100644 --- a/libc-test/semver/solarish.txt +++ b/libc-test/semver/solarish.txt @@ -1,3 +1,6 @@ +AIO_ALLDONE +AIO_CANCELED +AIO_NOTCANCELED IPV6_DONTFRAG IPV6_PKTINFO IPV6_RECVTCLASS @@ -6,6 +9,11 @@ IP_DONTFRAG IP_PKTINFO IP_TOS IP_TTL +LIO_NOP +LIO_NOWAIT +LIO_READ +LIO_WAIT +LIO_WRITE PIPE_BUF SIGEV_PORT aio_cancel @@ -21,5 +29,6 @@ aiocb bind in6_pktinfo in_pktinfo +lio_listio recvmsg sendmsg diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index 121b5fa06fe7b..62a07f6279030 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -10,6 +10,19 @@ pub type lgrp_rsrc_t = ::c_int; pub type lgrp_affinity_t = ::c_int; s! { + pub struct aiocb { + pub aio_fildes: ::c_int, + pub aio_buf: *mut ::c_void, + pub aio_nbytes: ::size_t, + pub aio_offset: ::off_t, + pub aio_reqprio: ::c_int, + pub aio_sigevent: ::sigevent, + pub aio_lio_opcode: ::c_int, + pub aio_resultp: ::aio_result_t, + pub aio_state: ::c_int, + pub aio__pad: [::c_int; 1], + } + pub struct shmid_ds { pub shm_perm: ::ipc_perm, pub shm_segsz: ::size_t, diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 46ccf4904c4d2..b30ab7e76c387 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -420,6 +420,11 @@ s! { pub portnfy_user: *mut ::c_void, } + pub struct aio_result_t { + pub aio_return: ::ssize_t, + pub aio_errno: ::c_int, + } + pub struct exit_status { e_termination: ::c_short, e_exit: ::c_short, @@ -1133,9 +1138,19 @@ pub const SIG_BLOCK: ::c_int = 1; pub const SIG_UNBLOCK: ::c_int = 2; pub const SIG_SETMASK: ::c_int = 3; +pub const AIO_CANCELED: ::c_int = 0; +pub const AIO_ALLDONE: ::c_int = 1; +pub const AIO_NOTCANCELED: ::c_int = 2; +pub const LIO_NOP: ::c_int = 0; +pub const LIO_READ: ::c_int = 1; +pub const LIO_WRITE: ::c_int = 2; +pub const LIO_NOWAIT: ::c_int = 0; +pub const LIO_WAIT: ::c_int = 1; + pub const SIGEV_NONE: ::c_int = 1; pub const SIGEV_SIGNAL: ::c_int = 2; pub const SIGEV_THREAD: ::c_int = 3; +pub const SIGEV_PORT: ::c_int = 4; pub const CLD_EXITED: ::c_int = 1; pub const CLD_KILLED: ::c_int = 2; @@ -3045,6 +3060,30 @@ extern "C" { pub fn sync(); + pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; + pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; + pub fn aio_suspend( + aiocb_list: *const *const aiocb, + nitems: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn aio_waitn( + aiocb_list: *mut *mut aiocb, + nent: ::c_uint, + nwait: *mut ::c_uint, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn aio_write(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; + pub fn __major(version: ::c_int, devnum: ::dev_t) -> ::major_t; pub fn __minor(version: ::c_int, devnum: ::dev_t) -> ::minor_t; pub fn __makedev(version: ::c_int, majdev: ::major_t, mindev: ::minor_t) -> ::dev_t; diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index 62653489af721..7db0bd0fc9146 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -20,6 +20,21 @@ e! { } s! { + pub struct aiocb { + pub aio_fildes: ::c_int, + pub aio_buf: *mut ::c_void, + pub aio_nbytes: ::size_t, + pub aio_offset: ::off_t, + pub aio_reqprio: ::c_int, + pub aio_sigevent: ::sigevent, + pub aio_lio_opcode: ::c_int, + pub aio_resultp: ::aio_result_t, + pub aio_state: ::c_char, + pub aio_returned: ::c_char, + pub aio__pad1: [::c_char; 2], + pub aio_flags: ::c_int, + } + pub struct shmid_ds { pub shm_perm: ::ipc_perm, pub shm_segsz: ::size_t, From ea128850f851c944eb8a812aa31b3ed00ff90fb0 Mon Sep 17 00:00:00 2001 From: Henry Jiang Date: Fri, 15 Nov 2024 12:15:27 -0500 Subject: [PATCH 0249/1228] aix: add more dlopen flags (backport ) (cherry picked from commit 17a88cca0c802d2396b104291aaf86e07b69254d) --- src/unix/aix/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 10e2974aa648e..16ca0cd602e4b 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -708,6 +708,8 @@ pub const RTLD_LAZY: ::c_int = 0x4; pub const RTLD_NOW: ::c_int = 0x2; pub const RTLD_GLOBAL: ::c_int = 0x10000; pub const RTLD_LOCAL: ::c_int = 0x80000; +pub const RTLD_MEMBER: ::c_int = 0x40000; +pub const RTLD_NOAUTODEFER: ::c_int = 0x20000; pub const RTLD_DEFAULT: *mut ::c_void = -1isize as *mut ::c_void; pub const RTLD_MYSELF: *mut ::c_void = -2isize as *mut ::c_void; pub const RTLD_NEXT: *mut ::c_void = -3isize as *mut ::c_void; From 829442326790c723f6affc62e8d543b4afc4960f Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Fri, 15 Nov 2024 16:00:40 -0700 Subject: [PATCH 0250/1228] Add the TCP_FUNCTION_BLK and TCP_FUNCTION_ALIAS socket options For FreeBSD only (backport ) (cherry picked from commit 2e8be88f3ec4f4fadc032b6c8b492fe26b133eef) --- libc-test/build.rs | 3 +++ libc-test/semver/freebsd.txt | 2 ++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 2 ++ 3 files changed, 7 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 649fa899494e0..8283d704ee4e6 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2600,6 +2600,9 @@ fn test_freebsd(target: &str) { // FIXME: The values has been changed in FreeBSD 15: "CLOCK_BOOTTIME" if Some(15) <= freebsd_ver => true, + // Added in FreeBSD 14.0 + "TCP_FUNCTION_ALIAS" if Some(14) > freebsd_ver => true, + _ => false, } }); diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index 096133a059520..ba4902ee780a2 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -1505,6 +1505,8 @@ TCP_DELACK TCP_FASTOPEN TCP_FASTOPEN_PSK_LEN TCP_FIN_IS_RST +TCP_FUNCTION_ALIAS +TCP_FUNCTION_BLK TCP_FUNCTION_NAME_LEN_MAX TCP_IDLE_REDUCE TCP_INFO diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 7e8d6486d7981..eef1b2a99bd1d 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -3895,6 +3895,8 @@ pub const TCP_KEEPINIT: ::c_int = 128; pub const TCP_FASTOPEN: ::c_int = 1025; pub const TCP_PCAP_OUT: ::c_int = 2048; pub const TCP_PCAP_IN: ::c_int = 4096; +pub const TCP_FUNCTION_BLK: ::c_int = 8192; +pub const TCP_FUNCTION_ALIAS: ::c_int = 8193; pub const TCP_FASTOPEN_PSK_LEN: ::c_int = 16; pub const TCP_FUNCTION_NAME_LEN_MAX: ::c_int = 32; From 7ddddc55521a4baf38060d0852bf459dd683372c Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 00:35:05 -0600 Subject: [PATCH 0251/1228] Set `rust-version` to 1.63 With the change to MSRV in [1], update Cargo.toml `rust-version` to match. [1]: https://github.com/rust-lang/libc/pull/4040 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 0658c88bbbaef..e97c29e74df72 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] build = "build.rs" exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml"] -rust-version = "1.19" +rust-version = "1.63" description = """ Raw FFI bindings to platform libraries like libc. """ From cfd7ebf850cb29ca125c09d8486343d3dbc1c3d5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 16 Nov 2024 07:25:03 +0000 Subject: [PATCH 0252/1228] chore: release v0.2.163 Co-authored-by: Trevor Gross --- CHANGELOG.md | 25 +++++++++++++++++++++++++ Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d6fb0b82c45a7..1d9565d076521 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,31 @@ ## [Unreleased] +## [0.2.163](https://github.com/rust-lang/libc/compare/0.2.162...0.2.163) - 2024-11-16 + +### Added + +- Aix: add more `dlopen` flags +- Android: add group calls +- FreeBSD: add `TCP_FUNCTION_BLK` and `TCP_FUNCTION_ALIAS` +- Linux: add `confstr` +- Solarish: add `aio` +- Solarish: add `arc4random*` + +### Changed + +- Emscripten: upgrade emsdk to 3.1.68 +- Hurd: use more standard types +- Hurd: use the standard `ssize_t = isize` +- Solaris: fix `confstr` and `ucontext_t` + +### Other + +- CI: add Solaris +- CI: add `i686-unknown-freebsd` +- CI: ensure that calls to `sort` do not depend on locale +- Specify `rust-version` in `Cargo.toml` + ## [0.2.162](https://github.com/rust-lang/libc/compare/0.2.161...0.2.162) - 2024-11-07 ### Added diff --git a/Cargo.toml b/Cargo.toml index 0658c88bbbaef..57fbc25879219 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.162" +version = "0.2.163" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index bb8dfc22a17d0..4e0bb15e673ae 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -14,7 +14,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.162" +version = "0.2.163" default-features = false [build-dependencies] From 0a976d3cfb543d4032af65fdf4bd47a69ee73896 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 00:40:23 -0600 Subject: [PATCH 0253/1228] ci: trim trailing whitespace (backport ) (cherry picked from commit 4b21887cddd082f99d17def3cfb541abf5198676) --- .github/workflows/full_ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/full_ci.yml b/.github/workflows/full_ci.yml index 74386c64948a3..9fb88067d183e 100644 --- a/.github/workflows/full_ci.yml +++ b/.github/workflows/full_ci.yml @@ -220,7 +220,7 @@ jobs: run: | export PATH=$HOME/.rust_solaris/bin:$PATH bash ./ci/run.sh ${{ matrix.target }} - + check_cfg: name: "Check #[cfg]s" runs-on: ubuntu-22.04 From d7b6bf0ee8a09b62cbaa6f1508277f8ed2734e5c Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 00:44:58 -0600 Subject: [PATCH 0254/1228] ci: Remove tests with rust < 1.63 Since the increase to MSRV in [1], we no longer need to test with old versions of Rust. This makes CI identical to `main`, with the exception of branch configuration. [1]: https://github.com/rust-lang/libc/pull/4040 --- .github/workflows/full_ci.yml | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/.github/workflows/full_ci.yml b/.github/workflows/full_ci.yml index 9fb88067d183e..e3e69a0fa3dac 100644 --- a/.github/workflows/full_ci.yml +++ b/.github/workflows/full_ci.yml @@ -33,13 +33,7 @@ jobs: - stable - beta - nightly - # FIXME: Disabled due to: - # error: failed to parse registry's information for: serde - # 1.13.0, - - 1.19.0 - - 1.24.0 - - 1.25.0 - - 1.30.0 + - 1.63.0 steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain @@ -57,9 +51,10 @@ jobs: max-parallel: 4 matrix: target: - - { toolchain: stable, os: macos-13 } - - { toolchain: beta, os: macos-13 } - - { toolchain: nightly, os: macos-13 } + - { toolchain: stable, os: macos-14 } + - { toolchain: beta, os: macos-14 } + - { toolchain: nightly, os: macos-14 } + - { toolchain: 1.63.0, os: macos-14 } runs-on: ${{ matrix.target.os }} steps: - uses: actions/checkout@v4 @@ -77,10 +72,7 @@ jobs: fail-fast: true matrix: toolchain: - - 1.19.0 - - 1.24.0 - - 1.25.0 - - 1.30.0 + - 1.63.0 - stable steps: - uses: actions/checkout@v4 @@ -93,12 +85,12 @@ jobs: macos: name: macOS - runs-on: macos-13 + runs-on: macos-14 strategy: fail-fast: true matrix: target: - - x86_64-apple-darwin + - aarch64-apple-darwin steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain @@ -120,6 +112,7 @@ jobs: ARCH_BITS: 64 ARCH: x86_64 - target: x86_64-pc-windows-msvc + # FIXME: It currently causes segfaults. #- target: i686-pc-windows-gnu # env: # ARCH_BITS: 32 From a4b5bf87aec69b93716375776ba2eb81a1f5550a Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 00:46:33 -0600 Subject: [PATCH 0255/1228] Remove the "main" workflow This workflow is redundant now that Bors is no longer used. Remove it. --- .github/workflows/main.yml | 86 -------------------------------------- 1 file changed, 86 deletions(-) delete mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index d22a4a19cc565..0000000000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,86 +0,0 @@ -name: CI - -on: - pull_request: - types: [opened, synchronize, reopened] - push: - branches: - - main - -permissions: - contents: read # to fetch code (actions/checkout) - -jobs: - docker_linux_tier1: - name: Docker Linux Tier1 - runs-on: ubuntu-22.04 - strategy: - fail-fast: true - matrix: - target: [ - i686-unknown-linux-gnu, - x86_64-unknown-linux-gnu, - ] - steps: - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - - name: Execute run-docker.sh - run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }} - - macos: - name: macOS - runs-on: macos-13 - strategy: - fail-fast: true - matrix: - target: [ - x86_64-apple-darwin, - ] - steps: - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - - name: Execute run.sh - run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }} - - windows: - name: Windows - runs-on: windows-2022 - env: - OS: windows - strategy: - fail-fast: true - matrix: - include: - - target: x86_64-pc-windows-gnu - env: - ARCH_BITS: 64 - ARCH: x86_64 - - target: x86_64-pc-windows-msvc - #- target: i686-pc-windows-gnu - # env: - # ARCH_BITS: 32 - # ARCH: i686 - - target: i686-pc-windows-msvc - steps: - - uses: actions/checkout@v4 - - name: Self-update rustup - run: rustup self update - shell: bash - - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - shell: bash - - name: Execute run.sh - run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }} - shell: bash - - style_check: - name: Style check - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: sh ./ci/install-rust.sh - - name: Check style - run: sh ci/style.sh From 6093ce044c3e2638523afcc3720db9b0851f4cb6 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 01:28:20 -0600 Subject: [PATCH 0256/1228] MacOS: move `ifconf` to `s_no_extra_traits` The derived implementations were causing a CI failure that didn't show up before. Manually implement `PartialEq` and `Debug` to work around this. --- src/unix/bsd/apple/mod.rs | 45 +++++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index c6dd20cfd4eb6..3e61a283d3488 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1143,15 +1143,6 @@ s! { 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, @@ -1202,6 +1193,15 @@ s! { } s_no_extra_traits! { + #[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_packedN, repr(packed(4)))] pub struct kevent { pub ident: ::uintptr_t, @@ -1617,6 +1617,32 @@ cfg_if! { cfg_if! { if #[cfg(feature = "extra_traits")] { + impl PartialEq for ifconf + where + Self: Copy + { + fn eq(&self, other: &Self) -> bool { + let len_ptr1 = core::ptr::addr_of!(self.ifc_len); + let len_ptr2 = core::ptr::addr_of!(other.ifc_len); + let ifcu_ptr1 = core::ptr::addr_of!(self.ifc_ifcu); + let ifcu_ptr2 = core::ptr::addr_of!(other.ifc_ifcu); + + // SAFETY: `ifconf` implements `Copy` so the reads are valid + let len1 = unsafe { len_ptr1.read_unaligned() }; + let len2 = unsafe { len_ptr2.read_unaligned() }; + let ifcu1 = unsafe { ifcu_ptr1.read_unaligned() }; + let ifcu2 = unsafe { ifcu_ptr2.read_unaligned() }; + + len1 == len2 && ifcu1 == ifcu2 + } + } + impl Eq for ifconf {} + impl ::fmt::Debug for ifconf { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ifconf").finish_non_exhaustive() + } + } + impl PartialEq for kevent { fn eq(&self, other: &kevent) -> bool { self.ident == other.ident @@ -1627,6 +1653,7 @@ cfg_if! { && self.udata == other.udata } } + impl Eq for kevent {} impl ::fmt::Debug for kevent { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { From 19c59376d11b015009fb9b04f233a30a1bf50a91 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Mon, 11 Jul 2022 18:31:06 -0700 Subject: [PATCH 0257/1228] Require rust >= 1.15 and drop libc_priv_mod_use conditional [ adjust build.rs changes to match current configuration - Trevor ] --- build.rs | 6 ----- libc-test/build.rs | 1 - src/lib.rs | 66 ++++++++++++++-------------------------------- 3 files changed, 20 insertions(+), 53 deletions(-) diff --git a/build.rs b/build.rs index 88f4c5149035f..b8085901d561c 100644 --- a/build.rs +++ b/build.rs @@ -25,7 +25,6 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ "libc_long_array", "libc_non_exhaustive", "libc_packedN", - "libc_priv_mod_use", "libc_ptr_addr_of", "libc_thread_local", "libc_underscore_const_names", @@ -99,11 +98,6 @@ fn main() { set_cfg("libc_deny_warnings"); } - // Rust >= 1.15 supports private module use: - if rustc_minor_ver >= 15 || rustc_dep_of_std { - set_cfg("libc_priv_mod_use"); - } - // Rust >= 1.19 supports unions: if rustc_minor_ver >= 19 || rustc_dep_of_std { set_cfg("libc_union"); diff --git a/libc-test/build.rs b/libc-test/build.rs index 8283d704ee4e6..2fbaef35a94b5 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -68,7 +68,6 @@ fn do_ctest() { fn ctest_cfg() -> ctest::TestGenerator { let mut cfg = ctest::TestGenerator::new(); let libc_cfgs = [ - "libc_priv_mod_use", "libc_union", "libc_const_size_of", "libc_align", diff --git a/src/lib.rs b/src/lib.rs index 893b46ff3ab28..ffeda95e8d505 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -43,52 +43,26 @@ cfg_if! { } } -cfg_if! { - if #[cfg(libc_priv_mod_use)] { - #[cfg(libc_core_cvoid)] - #[allow(unused_imports)] - use core::ffi; - #[allow(unused_imports)] - use core::fmt; - #[allow(unused_imports)] - use core::hash; - #[allow(unused_imports)] - use core::num; - #[allow(unused_imports)] - use core::mem; - #[doc(hidden)] - #[allow(unused_imports)] - use core::clone::Clone; - #[doc(hidden)] - #[allow(unused_imports)] - use core::marker::{Copy, Send, Sync}; - #[doc(hidden)] - #[allow(unused_imports)] - use core::option::Option; - } else { - #[doc(hidden)] - #[allow(unused_imports)] - pub use core::fmt; - #[doc(hidden)] - #[allow(unused_imports)] - pub use core::hash; - #[doc(hidden)] - #[allow(unused_imports)] - pub use core::num; - #[doc(hidden)] - #[allow(unused_imports)] - pub use core::mem; - #[doc(hidden)] - #[allow(unused_imports)] - pub use core::clone::Clone; - #[doc(hidden)] - #[allow(unused_imports)] - pub use core::marker::{Copy, Send, Sync}; - #[doc(hidden)] - #[allow(unused_imports)] - pub use core::option::Option; - } -} +#[doc(hidden)] +#[allow(unused_imports)] +use core::clone::Clone; +#[cfg(libc_core_cvoid)] +#[allow(unused_imports)] +use core::ffi; +#[allow(unused_imports)] +use core::fmt; +#[allow(unused_imports)] +use core::hash; +#[doc(hidden)] +#[allow(unused_imports)] +use core::marker::{Copy, Send, Sync}; +#[allow(unused_imports)] +use core::mem; +#[allow(unused_imports)] +use core::num; +#[doc(hidden)] +#[allow(unused_imports)] +use core::option::Option; cfg_if! { if #[cfg(windows)] { From dad00cb00e92baa7e28a542eb94bc2a78762f583 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 16 Nov 2024 09:05:04 +0000 Subject: [PATCH 0258/1228] chore: release v0.2.164 --- CHANGELOG.md | 12 ++++++++++++ Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d9565d076521..1a863b8af17a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,18 @@ ## [Unreleased] +## [0.2.164](https://github.com/rust-lang/libc/compare/0.2.163...0.2.164) - 2024-11-16 + +### MSRV + +This release increases the MSRV of `libc` to 1.63. + +### Other + +- CI: remove tests with rust < 1.63 +- MSRV: document the MSRV of the stable channel to be 1.63 +- MacOS: move ifconf to s_no_extra_traits + ## [0.2.163](https://github.com/rust-lang/libc/compare/0.2.162...0.2.163) - 2024-11-16 ### Added diff --git a/Cargo.toml b/Cargo.toml index 45d19ba9907d8..ccacab37e07d4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.163" +version = "0.2.164" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 4e0bb15e673ae..167cdbc0f08a6 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -14,7 +14,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.163" +version = "0.2.164" default-features = false [build-dependencies] From 1e88f41eb16bd5151f6fdad26fe2b3ed8c8f898e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 05:31:59 -0600 Subject: [PATCH 0259/1228] Explicitly set the edition to 2015 This just suppresses a warning. Ideally this should go to 2021 but that requires quite a bit of refactoring, so hold off until the rest of the 0.2 cleanup is complete. --- Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Cargo.toml b/Cargo.toml index ccacab37e07d4..e90df4bd98c56 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,6 +4,7 @@ version = "0.2.164" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" +edition = "2015" repository = "https://github.com/rust-lang/libc" homepage = "https://github.com/rust-lang/libc" documentation = "https://docs.rs/libc/" From b9e4d8012f612dfe24147da3e69522763f92b6e3 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 11 Jul 2022 18:44:40 -0700 Subject: [PATCH 0260/1228] Require rust >= 1.19 and drop libc_union conditional This is mostly taken from Josh's work at . I just updated to remove all new uses of `libc_union` introduced since then. Co-authored-by: Josh Triplett --- build.rs | 6 - libc-test/build.rs | 1 - src/macros.rs | 20 +- src/unix/aix/mod.rs | 54 +--- src/unix/aix/powerpc64.rs | 145 ++++------ src/unix/bsd/apple/mod.rs | 74 ++--- src/unix/bsd/freebsdlike/freebsd/mod.rs | 75 +---- .../bsd/freebsdlike/freebsd/x86_64/mod.rs | 21 -- src/unix/bsd/netbsdlike/netbsd/aarch64.rs | 6 - src/unix/bsd/netbsdlike/netbsd/mod.rs | 26 +- src/unix/bsd/netbsdlike/openbsd/mod.rs | 269 ++++++++---------- src/unix/haiku/native.rs | 19 +- src/unix/linux_like/android/b32/arm.rs | 208 +++++++------- src/unix/linux_like/android/b32/x86/mod.rs | 196 +++++++------ src/unix/linux_like/android/b64/x86_64/mod.rs | 48 ++-- src/unix/linux_like/android/mod.rs | 108 +++---- src/unix/linux_like/linux/gnu/mod.rs | 125 ++++---- src/unix/linux_like/linux/mod.rs | 41 +-- src/unix/linux_like/linux/musl/mod.rs | 98 +++---- src/unix/nto/x86_64.rs | 8 - src/unix/solarish/mod.rs | 10 - src/unix/solarish/x86_64.rs | 4 - 22 files changed, 611 insertions(+), 951 deletions(-) diff --git a/build.rs b/build.rs index b8085901d561c..6f35689379cb6 100644 --- a/build.rs +++ b/build.rs @@ -28,7 +28,6 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ "libc_ptr_addr_of", "libc_thread_local", "libc_underscore_const_names", - "libc_union", "libc_ctest", ]; @@ -98,11 +97,6 @@ fn main() { set_cfg("libc_deny_warnings"); } - // Rust >= 1.19 supports unions: - if rustc_minor_ver >= 19 || rustc_dep_of_std { - set_cfg("libc_union"); - } - // Rust >= 1.24 supports const mem::size_of: if rustc_minor_ver >= 24 || rustc_dep_of_std { set_cfg("libc_const_size_of"); diff --git a/libc-test/build.rs b/libc-test/build.rs index 2fbaef35a94b5..534a27a8df8d6 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -68,7 +68,6 @@ fn do_ctest() { fn ctest_cfg() -> ctest::TestGenerator { let mut cfg = ctest::TestGenerator::new(); let libc_cfgs = [ - "libc_union", "libc_const_size_of", "libc_align", "libc_core_cvoid", diff --git a/src/macros.rs b/src/macros.rs index beb80024dbfa3..4124b8d7b4c7c 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -90,19 +90,15 @@ macro_rules! s_no_extra_traits { s_no_extra_traits!(it: $(#[$attr])* pub $t $i { $($field)* }); )*); (it: $(#[$attr:meta])* pub union $i:ident { $($field:tt)* }) => ( - cfg_if! { - if #[cfg(libc_union)] { - __item! { - #[repr(C)] - $(#[$attr])* - pub union $i { $($field)* } - } + __item! { + #[repr(C)] + $(#[$attr])* + pub union $i { $($field)* } + } - impl ::Copy for $i {} - impl ::Clone for $i { - fn clone(&self) -> $i { *self } - } - } + impl ::Copy for $i {} + impl ::Clone for $i { + fn clone(&self) -> $i { *self } } ); (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => ( diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 16ca0cd602e4b..2104403a1d453 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -534,20 +534,17 @@ s! { } s_no_extra_traits! { - #[cfg(libc_union)] pub union __sigaction_sa_union { pub __su_handler: extern fn(c: ::c_int), pub __su_sigaction: extern fn(c: ::c_int, info: *mut siginfo_t, ptr: *mut ::c_void), } pub struct sigaction { - #[cfg(libc_union)] pub sa_union: __sigaction_sa_union, pub sa_mask: sigset_t, pub sa_flags: ::c_int, } - #[cfg(libc_union)] pub union __poll_ctl_ext_u { pub addr: *mut ::c_void, pub data32: u32, @@ -559,7 +556,6 @@ s_no_extra_traits! { pub command: u8, pub events: ::c_short, pub fd: ::c_int, - #[cfg(libc_union)] pub u: __poll_ctl_ext_u, pub reversed64: [u64; 6], } @@ -567,7 +563,6 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { - #[cfg(libc_union)] impl PartialEq for __sigaction_sa_union { fn eq(&self, other: &__sigaction_sa_union) -> bool { unsafe { @@ -576,9 +571,7 @@ cfg_if! { } } } - #[cfg(libc_union)] impl Eq for __sigaction_sa_union {} - #[cfg(libc_union)] impl ::fmt::Debug for __sigaction_sa_union { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("__sigaction_sa_union") @@ -587,7 +580,6 @@ cfg_if! { .finish() } } - #[cfg(libc_union)] impl ::hash::Hash for __sigaction_sa_union { fn hash(&self, state: &mut H) { unsafe { @@ -599,36 +591,29 @@ cfg_if! { impl PartialEq for sigaction { fn eq(&self, other: &sigaction) -> bool { - #[cfg(libc_union)] - let union_eq = self.sa_union == other.sa_union; - #[cfg(not(libc_union))] - let union_eq = true; self.sa_mask == other.sa_mask && self.sa_flags == other.sa_flags - && union_eq + && self.sa_union == other.sa_union } } impl Eq for sigaction {} impl ::fmt::Debug for sigaction { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let mut struct_formatter = f.debug_struct("sigaction"); - #[cfg(libc_union)] - struct_formatter.field("sa_union", &self.sa_union); - struct_formatter.field("sa_mask", &self.sa_mask); - struct_formatter.field("sa_flags", &self.sa_flags); - struct_formatter.finish() + f.debug_struct("sigaction") + .field("sa_union", &self.sa_union) + .field("sa_mask", &self.sa_mask) + .field("sa_flags", &self.sa_flags) + .finish() } } impl ::hash::Hash for sigaction { fn hash(&self, state: &mut H) { - #[cfg(libc_union)] self.sa_union.hash(state); self.sa_mask.hash(state); self.sa_flags.hash(state); } } - #[cfg(libc_union)] impl PartialEq for __poll_ctl_ext_u { fn eq(&self, other: &__poll_ctl_ext_u) -> bool { unsafe { @@ -638,9 +623,7 @@ cfg_if! { } } } - #[cfg(libc_union)] impl Eq for __poll_ctl_ext_u {} - #[cfg(libc_union)] impl ::fmt::Debug for __poll_ctl_ext_u { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("__poll_ctl_ext_u") @@ -650,7 +633,6 @@ cfg_if! { .finish() } } - #[cfg(libc_union)] impl ::hash::Hash for __poll_ctl_ext_u { fn hash(&self, state: &mut H) { unsafe { @@ -663,30 +645,25 @@ cfg_if! { impl PartialEq for poll_ctl_ext { fn eq(&self, other: &poll_ctl_ext) -> bool { - #[cfg(libc_union)] - let union_eq = self.u == other.u; - #[cfg(not(libc_union))] - let union_eq = true; self.version == other.version && self.command == other.command && self.events == other.events && self.fd == other.fd && self.reversed64 == other.reversed64 - && union_eq + && self.u == other.u } } impl Eq for poll_ctl_ext {} impl ::fmt::Debug for poll_ctl_ext { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let mut struct_formatter = f.debug_struct("poll_ctl_ext"); - struct_formatter.field("version", &self.version); - struct_formatter.field("command", &self.command); - struct_formatter.field("events", &self.events); - struct_formatter.field("fd", &self.fd); - #[cfg(libc_union)] - struct_formatter.field("u", &self.u); - struct_formatter.field("reversed64", &self.reversed64); - struct_formatter.finish() + f.debug_struct("poll_ctl_ext") + .field("version", &self.version) + .field("command", &self.command) + .field("events", &self.events) + .field("fd", &self.fd) + .field("u", &self.u) + .field("reversed64", &self.reversed64) + .finish() } } impl ::hash::Hash for poll_ctl_ext { @@ -695,7 +672,6 @@ cfg_if! { self.command.hash(state); self.events.hash(state); self.fd.hash(state); - #[cfg(libc_union)] self.u.hash(state); self.reversed64.hash(state); } diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index 2cacf29f6b418..45f783ec752cf 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -199,7 +199,6 @@ s_no_extra_traits! { pub __pad: [::c_int; 3], } - #[cfg(libc_union)] pub union _kernel_simple_lock { pub _slock: ::c_long, // Should be pointer to 'lock_data_instrumented' @@ -228,9 +227,7 @@ s_no_extra_traits! { 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, @@ -239,7 +236,6 @@ s_no_extra_traits! { pub f_fdata: [::c_char; 160], } - #[cfg(libc_union)] pub union __ld_info_file { pub _ldinfo_fd: ::c_int, pub _ldinfo_fp: *mut file, @@ -249,7 +245,6 @@ s_no_extra_traits! { 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, @@ -258,7 +253,6 @@ s_no_extra_traits! { pub ldinfo_filename: [::c_char; 2], } - #[cfg(libc_union)] pub union __pollfd_ext_u { pub addr: *mut ::c_void, pub data32: u32, @@ -269,7 +263,6 @@ s_no_extra_traits! { pub fd: ::c_int, pub events: ::c_ushort, pub revents: ::c_ushort, - #[cfg(libc_union)] pub data: __pollfd_ext_u, } } @@ -300,10 +293,6 @@ 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 @@ -313,25 +302,24 @@ cfg_if! { && self.si_addr == other.si_addr && self.si_band == other.si_band && self.__si_flags == other.__si_flags - && value_eq + && self.si_value == other.si_value } } 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() + f.debug_struct("siginfo_t") + .field("si_signo", &self.si_signo) + .field("si_errno", &self.si_errno) + .field("si_code", &self.si_code) + .field("si_pid", &self.si_pid) + .field("si_uid", &self.si_uid) + .field("si_status", &self.si_status) + .field("si_addr", &self.si_addr) + .field("si_band", &self.si_band) + .field("si_value", &self.si_value) + .field("__si_flags", &self.__si_flags) + .finish() } } impl ::hash::Hash for siginfo_t { @@ -344,13 +332,11 @@ cfg_if! { 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 { @@ -359,9 +345,7 @@ cfg_if! { } } } - #[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") @@ -370,7 +354,6 @@ cfg_if! { .finish() } } - #[cfg(libc_union)] impl ::hash::Hash for _kernel_simple_lock { fn hash(&self, state: &mut H) { unsafe { @@ -413,11 +396,6 @@ cfg_if! { 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 @@ -431,31 +409,30 @@ cfg_if! { && self.f_parentp == other.f_parentp && self.f_fnamep == other.f_fnamep && self.f_fdata == other.f_fdata - && lock_eq + && self.f_lock == other.f_lock + && self.f_offset_lock == other.f_offset_lock; } } 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() + f.debug_struct("file") + .field("f_flag", &self.f_flag) + .field("f_count", &self.f_count) + .field("f_options", &self.f_options) + .field("f_type", &self.f_type) + .field("f_data", &self.f_data) + .field("f_offset", &self.f_offset) + .field("f_dir_off", &self.f_dir_off) + .field("f_cred", &self.f_cred) + .field("f_lock", &self.f_lock) + .field("f_offset_lock", &self.f_offset_lock) + .field("f_vinfo", &self.f_vinfo) + .field("f_ops", &self.f_ops) + .field("f_parentp", &self.f_parentp) + .field("f_fnamep", &self.f_fnamep) + .field("f_fdata", &self.f_fdata) + .finish() } } impl ::hash::Hash for file { @@ -468,9 +445,7 @@ cfg_if! { 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); @@ -480,7 +455,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl PartialEq for __ld_info_file { fn eq(&self, other: &__ld_info_file) -> bool { unsafe { @@ -490,9 +464,7 @@ cfg_if! { } } } - #[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") @@ -502,7 +474,6 @@ cfg_if! { .finish() } } - #[cfg(libc_union)] impl ::hash::Hash for __ld_info_file { fn hash(&self, state: &mut H) { unsafe { @@ -515,10 +486,6 @@ cfg_if! { 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 @@ -526,23 +493,22 @@ cfg_if! { && self.ldinfo_dataorg == other.ldinfo_dataorg && self.ldinfo_datasize == other.ldinfo_datasize && self.ldinfo_filename == other.ldinfo_filename - && file_eq + && self._file == other._file } } 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() + f.debug_struct("ld_info") + .field("ldinfo_next", &self.ldinfo_next) + .field("ldinfo_flags", &self.ldinfo_flags) + .field("ldinfo_textorg", &self.ldinfo_textorg) + .field("ldinfo_textsize", &self.ldinfo_textsize) + .field("ldinfo_dataorg", &self.ldinfo_dataorg) + .field("ldinfo_datasize", &self.ldinfo_datasize) + .field("ldinfo_filename", &self.ldinfo_filename) + .field("_file", &self._file) + .finish() } } impl ::hash::Hash for ld_info { @@ -554,12 +520,10 @@ cfg_if! { 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 { @@ -569,9 +533,7 @@ cfg_if! { } } } - #[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") @@ -581,7 +543,6 @@ cfg_if! { .finish() } } - #[cfg(libc_union)] impl ::hash::Hash for __pollfd_ext_u { fn hash(&self, state: &mut H) { unsafe { @@ -594,26 +555,21 @@ cfg_if! { 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 + && self.data == other.data } } 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() + f.debug_struct("pollfd_ext") + .field("fd", &self.fd) + .field("events", &self.events) + .field("revents", &self.revents) + .field("data", &self.data) + .finish() } } impl ::hash::Hash for pollfd_ext { @@ -621,7 +577,6 @@ cfg_if! { self.fd.hash(state); self.events.hash(state); self.revents.hash(state); - #[cfg(libc_union)] self.data.hash(state); } } diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 3e61a283d3488..09fcbfb7f8c1f 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1196,10 +1196,7 @@ s_no_extra_traits! { #[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_packedN, repr(packed(4)))] @@ -1496,7 +1493,6 @@ s_no_extra_traits! { 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, @@ -1506,11 +1502,9 @@ s_no_extra_traits! { 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, @@ -1532,13 +1526,9 @@ s_no_extra_traits! { 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, @@ -1579,37 +1569,33 @@ impl siginfo_t { } } +s_no_extra_traits! { + pub union semun { + pub val: ::c_int, + pub buf: *mut semid_ds, + pub array: *mut ::c_ushort, + } +} + cfg_if! { - if #[cfg(libc_union)] { - s_no_extra_traits! { - pub union semun { - pub val: ::c_int, - pub buf: *mut semid_ds, - pub array: *mut ::c_ushort, + if #[cfg(feature = "extra_traits")] { + impl PartialEq for semun { + fn eq(&self, other: &semun) -> bool { + unsafe { self.val == other.val } } } - - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for semun { - fn eq(&self, other: &semun) -> bool { - unsafe { self.val == other.val } - } - } - impl Eq for semun {} - impl ::fmt::Debug for semun { - fn fmt(&self, f: &mut ::fmt::Formatter) - -> ::fmt::Result { - f.debug_struct("semun") - .field("val", unsafe { &self.val }) - .finish() - } - } - impl ::hash::Hash for semun { - fn hash(&self, state: &mut H) { - unsafe { self.val.hash(state) }; - } - } + impl Eq for semun {} + impl ::fmt::Debug for semun { + fn fmt(&self, f: &mut ::fmt::Formatter) + -> ::fmt::Result { + f.debug_struct("semun") + .field("val", unsafe { &self.val }) + .finish() + } + } + impl ::hash::Hash for semun { + fn hash(&self, state: &mut H) { + unsafe { self.val.hash(state) }; } } } @@ -2947,7 +2933,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl PartialEq for __c_anonymous_ifk_data { fn eq(&self, other: &__c_anonymous_ifk_data) -> bool { unsafe { @@ -2957,10 +2942,8 @@ cfg_if! { } } - #[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") @@ -2969,7 +2952,6 @@ cfg_if! { .finish() } } - #[cfg(libc_union)] impl ::hash::Hash for __c_anonymous_ifk_data { fn hash(&self, state: &mut H) { unsafe { @@ -3004,7 +2986,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl PartialEq for __c_anonymous_ifr_ifru { fn eq(&self, other: &__c_anonymous_ifr_ifru) -> bool { unsafe { @@ -3028,10 +3009,8 @@ cfg_if! { } } - #[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") @@ -3055,7 +3034,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl ::hash::Hash for __c_anonymous_ifr_ifru { fn hash(&self, state: &mut H) { unsafe { @@ -3104,10 +3082,8 @@ cfg_if! { } } - #[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 { @@ -3117,7 +3093,6 @@ cfg_if! { } } - #[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") @@ -3127,7 +3102,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl ::hash::Hash for __c_anonymous_ifc_ifcu { fn hash(&self, state: &mut H) { unsafe { self.ifcu_buf.hash(state) }; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index eef1b2a99bd1d..3f8dfea55665e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -970,10 +970,7 @@ s! { 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, } pub struct au_mask_t { @@ -1358,7 +1355,6 @@ s_no_extra_traits! { pub __ut_spare: [::c_char; 64], } - #[cfg(libc_union)] pub union __c_anonymous_cr_pid { __cr_unused: *mut ::c_void, pub cr_pid: ::pid_t, @@ -1369,10 +1365,7 @@ s_no_extra_traits! { pub cr_uid: ::uid_t, pub cr_ngroups: ::c_short, pub cr_groups: [::gid_t; 16], - #[cfg(libc_union)] pub cr_pid__c_anonymous_union: __c_anonymous_cr_pid, - #[cfg(not(libc_union))] - __cr_unused1: *mut ::c_void, } pub struct sockaddr_dl { @@ -1414,24 +1407,20 @@ s_no_extra_traits! { pub devname: [::c_char; SPECNAMELEN as usize + 1], } - #[cfg(libc_union)] pub union __c_anonymous_elf32_auxv_union { pub a_val: ::c_int, } pub struct Elf32_Auxinfo { pub a_type: ::c_int, - #[cfg(libc_union)] pub a_un: __c_anonymous_elf32_auxv_union, } - #[cfg(libc_union)] pub union __c_anonymous_ifi_epoch { pub tt: ::time_t, pub ph: u64, } - #[cfg(libc_union)] pub union __c_anonymous_ifi_lastchange { pub tv: ::timeval, pub ph: __c_anonymous_ph, @@ -1485,20 +1474,11 @@ s_no_extra_traits! { /// HW offload capabilities, see IFCAP pub ifi_hwassist: u64, /// uptime at attach or stat reset - #[cfg(libc_union)] pub __ifi_epoch: __c_anonymous_ifi_epoch, - /// uptime at attach or stat reset - #[cfg(not(libc_union))] - pub __ifi_epoch: u64, /// time of last administrative change - #[cfg(libc_union)] pub __ifi_lastchange: __c_anonymous_ifi_lastchange, - /// time of last administrative change - #[cfg(not(libc_union))] - pub __ifi_lastchange: ::timeval, } - #[cfg(libc_union)] pub union __c_anonymous_ifr_ifru { pub ifru_addr: ::sockaddr, pub ifru_dstaddr: ::sockaddr, @@ -1520,13 +1500,9 @@ s_no_extra_traits! { pub struct ifreq { /// if name, e.g. "en0" 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: ::caddr_t, pub ifcu_req: *mut ifreq, @@ -1715,15 +1691,12 @@ cfg_if! { } } - #[cfg(libc_union)] impl PartialEq for __c_anonymous_cr_pid { fn eq(&self, other: &__c_anonymous_cr_pid) -> bool { unsafe { self.cr_pid == other.cr_pid} } } - #[cfg(libc_union)] impl Eq for __c_anonymous_cr_pid {} - #[cfg(libc_union)] impl ::fmt::Debug for __c_anonymous_cr_pid { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("cr_pid") @@ -1731,7 +1704,6 @@ cfg_if! { .finish() } } - #[cfg(libc_union)] impl ::hash::Hash for __c_anonymous_cr_pid { fn hash(&self, state: &mut H) { unsafe { self.cr_pid.hash(state) }; @@ -1740,17 +1712,11 @@ cfg_if! { impl PartialEq for xucred { fn eq(&self, other: &xucred) -> bool { - #[cfg(libc_union)] - let equal_cr_pid = self.cr_pid__c_anonymous_union - == other.cr_pid__c_anonymous_union; - #[cfg(not(libc_union))] - let equal_cr_pid = self.__cr_unused1 == other.__cr_unused1; - self.cr_version == other.cr_version && self.cr_uid == other.cr_uid && self.cr_ngroups == other.cr_ngroups && self.cr_groups == other.cr_groups - && equal_cr_pid + && self.cr_pid__c_anonymous_union == other.cr_pid__c_anonymous_union } } impl Eq for xucred {} @@ -1761,7 +1727,6 @@ cfg_if! { struct_formatter.field("cr_uid", &self.cr_uid); struct_formatter.field("cr_ngroups", &self.cr_ngroups); struct_formatter.field("cr_groups", &self.cr_groups); - #[cfg(libc_union)] struct_formatter.field( "cr_pid__c_anonymous_union", &self.cr_pid__c_anonymous_union @@ -1775,10 +1740,7 @@ cfg_if! { self.cr_uid.hash(state); self.cr_ngroups.hash(state); self.cr_groups.hash(state); - #[cfg(libc_union)] self.cr_pid__c_anonymous_union.hash(state); - #[cfg(not(libc_union))] - self.__cr_unused1.hash(state); } } @@ -1912,15 +1874,12 @@ cfg_if! { } } - #[cfg(libc_union)] impl PartialEq for __c_anonymous_elf32_auxv_union { fn eq(&self, other: &__c_anonymous_elf32_auxv_union) -> bool { unsafe { self.a_val == other.a_val} } } - #[cfg(libc_union)] impl Eq for __c_anonymous_elf32_auxv_union {} - #[cfg(libc_union)] impl ::fmt::Debug for __c_anonymous_elf32_auxv_union { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("a_val") @@ -1928,13 +1887,6 @@ cfg_if! { .finish() } } - #[cfg(not(libc_union))] - impl PartialEq for Elf32_Auxinfo { - fn eq(&self, other: &Elf32_Auxinfo) -> bool { - self.a_type == other.a_type - } - } - #[cfg(libc_union)] impl PartialEq for Elf32_Auxinfo { fn eq(&self, other: &Elf32_Auxinfo) -> bool { self.a_type == other.a_type @@ -1942,15 +1894,6 @@ cfg_if! { } } impl Eq for Elf32_Auxinfo {} - #[cfg(not(libc_union))] - impl ::fmt::Debug for Elf32_Auxinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("Elf32_Auxinfo") - .field("a_type", &self.a_type) - .finish() - } - } - #[cfg(libc_union)] impl ::fmt::Debug for Elf32_Auxinfo { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("Elf32_Auxinfo") @@ -1960,7 +1903,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl PartialEq for __c_anonymous_ifr_ifru { fn eq(&self, other: &__c_anonymous_ifr_ifru) -> bool { unsafe { @@ -1982,9 +1924,7 @@ cfg_if! { } } } - #[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("ifr_ifru") @@ -2006,7 +1946,6 @@ cfg_if! { .finish() } } - #[cfg(libc_union)] impl ::hash::Hash for __c_anonymous_ifr_ifru { fn hash(&self, state: &mut H) { unsafe { self.ifru_addr.hash(state) }; @@ -2048,10 +1987,8 @@ cfg_if! { } } - #[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 { @@ -2061,7 +1998,6 @@ cfg_if! { } } - #[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") @@ -2071,7 +2007,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl ::hash::Hash for __c_anonymous_ifc_ifcu { fn hash(&self, state: &mut H) { unsafe { self.ifcu_buf.hash(state) }; @@ -2174,7 +2109,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl PartialEq for __c_anonymous_ifi_epoch { fn eq(&self, other: &__c_anonymous_ifi_epoch) -> bool { unsafe { @@ -2183,9 +2117,7 @@ cfg_if! { } } } - #[cfg(libc_union)] impl Eq for __c_anonymous_ifi_epoch {} - #[cfg(libc_union)] impl ::fmt::Debug for __c_anonymous_ifi_epoch { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("__c_anonymous_ifi_epoch") @@ -2194,7 +2126,6 @@ cfg_if! { .finish() } } - #[cfg(libc_union)] impl ::hash::Hash for __c_anonymous_ifi_epoch { fn hash(&self, state: &mut H) { unsafe { @@ -2204,7 +2135,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl PartialEq for __c_anonymous_ifi_lastchange { fn eq(&self, other: &__c_anonymous_ifi_lastchange) -> bool { unsafe { @@ -2213,9 +2143,7 @@ cfg_if! { } } } - #[cfg(libc_union)] impl Eq for __c_anonymous_ifi_lastchange {} - #[cfg(libc_union)] impl ::fmt::Debug for __c_anonymous_ifi_lastchange { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("__c_anonymous_ifi_lastchange") @@ -2224,7 +2152,6 @@ cfg_if! { .finish() } } - #[cfg(libc_union)] impl ::hash::Hash for __c_anonymous_ifi_lastchange { fn hash(&self, state: &mut H) { unsafe { diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index 446cc22dd1ba1..f614bb2dbea38 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -82,7 +82,6 @@ s_no_extra_traits! { pub xmm_pad: [u8; 224], } - #[cfg(libc_union)] pub union __c_anonymous_elf64_auxv_union { pub a_val: ::c_long, pub a_ptr: *mut ::c_void, @@ -91,7 +90,6 @@ s_no_extra_traits! { pub struct Elf64_Auxinfo { pub a_type: ::c_long, - #[cfg(libc_union)] pub a_un: __c_anonymous_elf64_auxv_union, } } @@ -188,7 +186,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl PartialEq for __c_anonymous_elf64_auxv_union { fn eq(&self, other: &__c_anonymous_elf64_auxv_union) -> bool { unsafe { self.a_val == other.a_val @@ -196,9 +193,7 @@ cfg_if! { || self.a_fcn == other.a_fcn } } } - #[cfg(libc_union)] impl Eq for __c_anonymous_elf64_auxv_union {} - #[cfg(libc_union)] impl ::fmt::Debug for __c_anonymous_elf64_auxv_union { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("a_val") @@ -206,13 +201,6 @@ cfg_if! { .finish() } } - #[cfg(not(libc_union))] - impl PartialEq for Elf64_Auxinfo { - fn eq(&self, other: &Elf64_Auxinfo) -> bool { - self.a_type == other.a_type - } - } - #[cfg(libc_union)] impl PartialEq for Elf64_Auxinfo { fn eq(&self, other: &Elf64_Auxinfo) -> bool { self.a_type == other.a_type @@ -220,15 +208,6 @@ cfg_if! { } } impl Eq for Elf64_Auxinfo {} - #[cfg(not(libc_union))] - impl ::fmt::Debug for Elf64_Auxinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("Elf64_Auxinfo") - .field("a_type", &self.a_type) - .finish() - } - } - #[cfg(libc_union)] impl ::fmt::Debug for Elf64_Auxinfo { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("Elf64_Auxinfo") diff --git a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs index 45bca4778c20c..f3f87b5e6f984 100644 --- a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs @@ -8,7 +8,6 @@ pub type __cpu_simple_lock_nv_t = ::c_uchar; s! { pub struct __fregset { - #[cfg(libc_union)] pub __qregs: [__c_anonymous__freg; 32], pub __fpcr: u32, pub __fpsr: u32, @@ -30,7 +29,6 @@ s! { } s_no_extra_traits! { - #[cfg(libc_union)] #[repr(align(16))] pub union __c_anonymous__freg { pub __b8: [u8; 16], @@ -43,7 +41,6 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { - #[cfg(libc_union)] impl PartialEq for __c_anonymous__freg { fn eq(&self, other: &__c_anonymous__freg) -> bool { unsafe { @@ -55,9 +52,7 @@ cfg_if! { } } } - #[cfg(libc_union)] impl Eq for __c_anonymous__freg {} - #[cfg(libc_union)] impl ::fmt::Debug for __c_anonymous__freg { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { unsafe { @@ -71,7 +66,6 @@ cfg_if! { } } } - #[cfg(libc_union)] impl ::hash::Hash for __c_anonymous__freg { fn hash(&self, state: &mut H) { unsafe { diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index da96d092b4062..0113676a44207 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -688,14 +688,12 @@ s! { pub struct posix_spawn_file_actions_entry_t { pub fae_action: fae_action, pub fae_fildes: ::c_int, - #[cfg(libc_union)] pub fae_data: __c_anonymous_posix_spawn_fae, } pub struct posix_spawn_file_actions_t { pub size: ::c_uint, pub len: ::c_uint, - #[cfg(libc_union)] pub fae: *mut posix_spawn_file_actions_entry_t, } @@ -734,7 +732,6 @@ s! { pub struct ifconf { pub ifc_len: ::c_int, - #[cfg(libc_union)] pub ifc_ifcu: __c_anonymous_ifc_ifcu, } @@ -893,13 +890,11 @@ s_no_extra_traits! { pub sigev_notify_attributes: *mut ::c_void } - #[cfg(libc_union)] pub union __c_anonymous_posix_spawn_fae { pub open: __c_anonymous_posix_spawn_fae_open, pub dup2: __c_anonymous_posix_spawn_fae_dup2, } - #[cfg(libc_union)] pub union __c_anonymous_ifc_ifcu { pub ifcu_buf: *mut ::c_void, pub ifcu_req: *mut ifreq, @@ -1332,10 +1327,8 @@ cfg_if! { } } - #[cfg(libc_union)] impl Eq for __c_anonymous_posix_spawn_fae {} - #[cfg(libc_union)] impl PartialEq for __c_anonymous_posix_spawn_fae { fn eq(&self, other: &__c_anonymous_posix_spawn_fae) -> bool { unsafe { @@ -1345,7 +1338,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl ::fmt::Debug for __c_anonymous_posix_spawn_fae { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { unsafe { @@ -1357,7 +1349,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl ::hash::Hash for __c_anonymous_posix_spawn_fae { fn hash(&self, state: &mut H) { unsafe { @@ -1367,10 +1358,8 @@ cfg_if! { } } - #[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 { @@ -1380,7 +1369,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl ::fmt::Debug for __c_anonymous_ifc_ifcu { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { unsafe { @@ -1392,7 +1380,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl ::hash::Hash for __c_anonymous_ifc_ifcu { fn hash(&self, state: &mut H) { unsafe { @@ -2915,6 +2902,9 @@ extern "C" { ntargets: ::size_t, hint: *const ::c_void, ) -> ::c_int; + + 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; } #[link(name = "rt")] @@ -3138,16 +3128,6 @@ extern "C" { ) -> ::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; diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 259f9e06024d1..766ee457dc1b2 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -540,10 +540,7 @@ s! { 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 { @@ -716,7 +713,6 @@ 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, @@ -935,7 +931,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl PartialEq for __c_anonymous_ifr_ifru { fn eq(&self, other: &__c_anonymous_ifr_ifru) -> bool { unsafe { @@ -952,10 +947,8 @@ cfg_if! { } } - #[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") @@ -972,7 +965,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl ::hash::Hash for __c_anonymous_ifr_ifru { fn hash(&self, state: &mut H) { unsafe { @@ -991,135 +983,131 @@ cfg_if! { } } +s_no_extra_traits! { + // This type uses the union mount_info: + pub struct statfs { + pub f_flags: u32, + pub f_bsize: u32, + pub f_iosize: u32, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: i64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: i64, + pub f_syncwrites: u64, + pub f_syncreads: u64, + pub f_asyncwrites: u64, + pub f_asyncreads: u64, + pub f_fsid: ::fsid_t, + pub f_namemax: u32, + pub f_owner: ::uid_t, + pub f_ctime: u64, + pub f_fstypename: [::c_char; 16], + pub f_mntonname: [::c_char; 90], + pub f_mntfromname: [::c_char; 90], + pub f_mntfromspec: [::c_char; 90], + pub mount_info: mount_info, + } +} + cfg_if! { - if #[cfg(libc_union)] { - s_no_extra_traits! { - // This type uses the union mount_info: - pub struct statfs { - pub f_flags: u32, - pub f_bsize: u32, - pub f_iosize: u32, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: i64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: i64, - pub f_syncwrites: u64, - pub f_syncreads: u64, - pub f_asyncwrites: u64, - pub f_asyncreads: u64, - pub f_fsid: ::fsid_t, - pub f_namemax: u32, - pub f_owner: ::uid_t, - pub f_ctime: u64, - pub f_fstypename: [::c_char; 16], - pub f_mntonname: [::c_char; 90], - pub f_mntfromname: [::c_char; 90], - pub f_mntfromspec: [::c_char; 90], - pub mount_info: mount_info, + if #[cfg(feature = "extra_traits")] { + impl PartialEq for statfs { + fn eq(&self, other: &statfs) -> bool { + 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_favail == other.f_favail + && self.f_syncwrites == other.f_syncwrites + && self.f_syncreads == other.f_syncreads + && self.f_asyncwrites == other.f_asyncwrites + && self.f_asyncreads == other.f_asyncreads + && self.f_fsid == other.f_fsid + && self.f_namemax == other.f_namemax + && self.f_owner == other.f_owner + && self.f_ctime == other.f_ctime + && self.f_fstypename + .iter() + .zip(other.f_fstypename.iter()) + .all(|(a,b)| a == b) + && self.f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a,b)| a == b) + && self.f_mntfromname + .iter() + .zip(other.f_mntfromname.iter()) + .all(|(a,b)| a == b) + && self.f_mntfromspec + .iter() + .zip(other.f_mntfromspec.iter()) + .all(|(a,b)| a == b) + && self.mount_info == other.mount_info } } - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for statfs { - fn eq(&self, other: &statfs) -> bool { - 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_favail == other.f_favail - && self.f_syncwrites == other.f_syncwrites - && self.f_syncreads == other.f_syncreads - && self.f_asyncwrites == other.f_asyncwrites - && self.f_asyncreads == other.f_asyncreads - && self.f_fsid == other.f_fsid - && self.f_namemax == other.f_namemax - && self.f_owner == other.f_owner - && self.f_ctime == other.f_ctime - && self.f_fstypename - .iter() - .zip(other.f_fstypename.iter()) - .all(|(a,b)| a == b) - && self.f_mntonname - .iter() - .zip(other.f_mntonname.iter()) - .all(|(a,b)| a == b) - && self.f_mntfromname - .iter() - .zip(other.f_mntfromname.iter()) - .all(|(a,b)| a == b) - && self.f_mntfromspec - .iter() - .zip(other.f_mntfromspec.iter()) - .all(|(a,b)| a == b) - && self.mount_info == other.mount_info - } - } - - impl Eq for statfs { } - - impl ::fmt::Debug for statfs { - fn fmt(&self, f: &mut ::fmt::Formatter) - -> ::fmt::Result { - f.debug_struct("statfs") - .field("f_flags", &self.f_flags) - .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_favail", &self.f_favail) - .field("f_syncwrites", &self.f_syncwrites) - .field("f_syncreads", &self.f_syncreads) - .field("f_asyncwrites", &self.f_asyncwrites) - .field("f_asyncreads", &self.f_asyncreads) - .field("f_fsid", &self.f_fsid) - .field("f_namemax", &self.f_namemax) - .field("f_owner", &self.f_owner) - .field("f_ctime", &self.f_ctime) - // FIXME: .field("f_fstypename", &self.f_fstypename) - // FIXME: .field("f_mntonname", &self.f_mntonname) - // FIXME: .field("f_mntfromname", &self.f_mntfromname) - // FIXME: .field("f_mntfromspec", &self.f_mntfromspec) - .field("mount_info", &self.mount_info) - .finish() - } - } + impl Eq for statfs { } + + impl ::fmt::Debug for statfs { + fn fmt(&self, f: &mut ::fmt::Formatter) + -> ::fmt::Result { + f.debug_struct("statfs") + .field("f_flags", &self.f_flags) + .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_favail", &self.f_favail) + .field("f_syncwrites", &self.f_syncwrites) + .field("f_syncreads", &self.f_syncreads) + .field("f_asyncwrites", &self.f_asyncwrites) + .field("f_asyncreads", &self.f_asyncreads) + .field("f_fsid", &self.f_fsid) + .field("f_namemax", &self.f_namemax) + .field("f_owner", &self.f_owner) + .field("f_ctime", &self.f_ctime) + // FIXME: .field("f_fstypename", &self.f_fstypename) + // FIXME: .field("f_mntonname", &self.f_mntonname) + // FIXME: .field("f_mntfromname", &self.f_mntfromname) + // FIXME: .field("f_mntfromspec", &self.f_mntfromspec) + .field("mount_info", &self.mount_info) + .finish() + } + } - impl ::hash::Hash for statfs { - fn hash(&self, state: &mut H) { - 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_favail.hash(state); - self.f_syncwrites.hash(state); - self.f_syncreads.hash(state); - self.f_asyncwrites.hash(state); - self.f_asyncreads.hash(state); - self.f_fsid.hash(state); - self.f_namemax.hash(state); - self.f_owner.hash(state); - self.f_ctime.hash(state); - self.f_fstypename.hash(state); - self.f_mntonname.hash(state); - self.f_mntfromname.hash(state); - self.f_mntfromspec.hash(state); - self.mount_info.hash(state); - } - } + impl ::hash::Hash for statfs { + fn hash(&self, state: &mut H) { + 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_favail.hash(state); + self.f_syncwrites.hash(state); + self.f_syncreads.hash(state); + self.f_asyncwrites.hash(state); + self.f_asyncreads.hash(state); + self.f_fsid.hash(state); + self.f_namemax.hash(state); + self.f_owner.hash(state); + self.f_ctime.hash(state); + self.f_fstypename.hash(state); + self.f_mntonname.hash(state); + self.f_mntfromname.hash(state); + self.f_mntfromspec.hash(state); + self.mount_info.hash(state); } } } @@ -2201,6 +2189,11 @@ extern "C" { pub fn mimmutable(addr: *mut ::c_void, len: ::size_t) -> ::c_int; pub fn reboot(mode: ::c_int) -> ::c_int; + + pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; + pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; + pub fn getmntinfo(mntbufp: *mut *mut ::statfs, flags: ::c_int) -> ::c_int; + pub fn getfsstat(buf: *mut statfs, bufsize: ::size_t, flags: ::c_int) -> ::c_int; } #[link(name = "execinfo")] @@ -2219,18 +2212,6 @@ extern "C" { ) -> *mut *mut ::c_char; } -cfg_if! { - if #[cfg(libc_union)] { - extern { - // these functions use statfs which uses the union mount_info: - pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; - pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - pub fn getmntinfo(mntbufp: *mut *mut ::statfs, flags: ::c_int) -> ::c_int; - pub fn getfsstat(buf: *mut statfs, bufsize: ::size_t, flags: ::c_int) -> ::c_int; - } - } -} - cfg_if! { if #[cfg(target_arch = "aarch64")] { mod aarch64; diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs index 85865ad24cea6..50b610fd853fb 100644 --- a/src/unix/haiku/native.rs +++ b/src/unix/haiku/native.rs @@ -460,7 +460,6 @@ s! { } s_no_extra_traits! { - #[cfg(libc_union)] pub union cpuid_info { pub eax_0: __c_anonymous_eax_0, pub eax_1: __c_anonymous_eax_1, @@ -470,7 +469,6 @@ s_no_extra_traits! { pub regs: __c_anonymous_regs, } - #[cfg(libc_union)] pub union __c_anonymous_cpu_topology_info_data { pub root: cpu_topology_root_info, pub package: cpu_topology_package_info, @@ -481,16 +479,12 @@ s_no_extra_traits! { pub id: u32, pub type_: topology_level_type, pub level: u32, - #[cfg(libc_union)] pub data: __c_anonymous_cpu_topology_info_data, - #[cfg(not(libc_union))] - pub data: cpu_topology_core_info, } } cfg_if! { if #[cfg(feature = "extra_traits")] { - #[cfg(libc_union)] impl PartialEq for cpuid_info { fn eq(&self, other: &cpuid_info) -> bool { unsafe { @@ -503,9 +497,7 @@ cfg_if! { } } } - #[cfg(libc_union)] impl Eq for cpuid_info {} - #[cfg(libc_union)] impl ::fmt::Debug for cpuid_info { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { unsafe { @@ -521,7 +513,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl PartialEq for __c_anonymous_cpu_topology_info_data { fn eq(&self, other: &__c_anonymous_cpu_topology_info_data) -> bool { unsafe { @@ -531,9 +522,7 @@ cfg_if! { } } } - #[cfg(libc_union)] impl Eq for __c_anonymous_cpu_topology_info_data {} - #[cfg(libc_union)] impl ::fmt::Debug for __c_anonymous_cpu_topology_info_data { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { unsafe { @@ -1339,14 +1328,8 @@ extern "C" { pathString: *mut ::c_char, length: i32, ) -> status_t; -} -cfg_if! { - if #[cfg(libc_union)] { - extern "C" { - pub fn get_cpuid(info: *mut cpuid_info, eaxRegister: u32, cpuNum: u32) -> status_t; - } - } + pub fn get_cpuid(info: *mut cpuid_info, eaxRegister: u32, cpuNum: u32) -> status_t; } // The following functions are defined as macros in C/C++ diff --git a/src/unix/linux_like/android/b32/arm.rs b/src/unix/linux_like/android/b32/arm.rs index c4c78939cba48..cbd514b4f6f6e 100644 --- a/src/unix/linux_like/android/b32/arm.rs +++ b/src/unix/linux_like/android/b32/arm.rs @@ -29,119 +29,115 @@ s! { } } +s_no_extra_traits! { + pub struct __c_anonymous_uc_sigmask_with_padding { + pub uc_sigmask: ::sigset_t, + /* Android has a wrong (smaller) sigset_t on x86. */ + __padding_rt_sigset: u32, + } + + pub union __c_anonymous_uc_sigmask { + uc_sigmask: __c_anonymous_uc_sigmask_with_padding, + uc_sigmask64: ::sigset64_t, + } + + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: mcontext_t, + pub uc_sigmask__c_anonymous_union: __c_anonymous_uc_sigmask, + /* The kernel adds extra padding after uc_sigmask to match + * glibc sigset_t on ARM. */ + __padding: [c_char; 120], + __align: [::c_longlong; 0], + uc_regspace: [::c_ulong; 128], + } +} + cfg_if! { - if #[cfg(libc_union)] { - s_no_extra_traits! { - pub struct __c_anonymous_uc_sigmask_with_padding { - pub uc_sigmask: ::sigset_t, - /* Android has a wrong (smaller) sigset_t on x86. */ - __padding_rt_sigset: u32, + if #[cfg(feature = "extra_traits")] { + impl PartialEq for __c_anonymous_uc_sigmask_with_padding { + fn eq( + &self, other: &__c_anonymous_uc_sigmask_with_padding + ) -> bool { + self.uc_sigmask == other.uc_sigmask + // Ignore padding } - - pub union __c_anonymous_uc_sigmask { - uc_sigmask: __c_anonymous_uc_sigmask_with_padding, - uc_sigmask64: ::sigset64_t, + } + impl Eq for __c_anonymous_uc_sigmask_with_padding {} + impl ::fmt::Debug for __c_anonymous_uc_sigmask_with_padding { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("uc_sigmask_with_padding") + .field("uc_sigmask_with_padding", &self.uc_sigmask) + // Ignore padding + .finish() } - - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: mcontext_t, - pub uc_sigmask__c_anonymous_union: __c_anonymous_uc_sigmask, - /* The kernel adds extra padding after uc_sigmask to match - * glibc sigset_t on ARM. */ - __padding: [c_char; 120], - __align: [::c_longlong; 0], - uc_regspace: [::c_ulong; 128], + } + impl ::hash::Hash for __c_anonymous_uc_sigmask_with_padding { + fn hash(&self, state: &mut H) { + self.uc_sigmask.hash(state) + // Ignore padding } } - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for __c_anonymous_uc_sigmask_with_padding { - fn eq( - &self, other: &__c_anonymous_uc_sigmask_with_padding - ) -> bool { - self.uc_sigmask == other.uc_sigmask - // Ignore padding - } - } - impl Eq for __c_anonymous_uc_sigmask_with_padding {} - impl ::fmt::Debug for __c_anonymous_uc_sigmask_with_padding { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("uc_sigmask_with_padding") - .field("uc_sigmask_with_padding", &self.uc_sigmask) - // Ignore padding - .finish() - } - } - impl ::hash::Hash for __c_anonymous_uc_sigmask_with_padding { - fn hash(&self, state: &mut H) { - self.uc_sigmask.hash(state) - // Ignore padding - } - } - - impl PartialEq for __c_anonymous_uc_sigmask { - fn eq(&self, other: &__c_anonymous_uc_sigmask) -> bool { - unsafe { self.uc_sigmask == other.uc_sigmask } - } - } - impl Eq for __c_anonymous_uc_sigmask {} - impl ::fmt::Debug for __c_anonymous_uc_sigmask { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("uc_sigmask") - .field("uc_sigmask", unsafe { &self.uc_sigmask }) - .finish() - } - } - impl ::hash::Hash for __c_anonymous_uc_sigmask { - fn hash(&self, state: &mut H) { - unsafe { self.uc_sigmask.hash(state) } - } - } + impl PartialEq for __c_anonymous_uc_sigmask { + fn eq(&self, other: &__c_anonymous_uc_sigmask) -> bool { + unsafe { self.uc_sigmask == other.uc_sigmask } + } + } + impl Eq for __c_anonymous_uc_sigmask {} + impl ::fmt::Debug for __c_anonymous_uc_sigmask { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("uc_sigmask") + .field("uc_sigmask", unsafe { &self.uc_sigmask }) + .finish() + } + } + impl ::hash::Hash for __c_anonymous_uc_sigmask { + fn hash(&self, state: &mut H) { + unsafe { self.uc_sigmask.hash(state) } + } + } - impl PartialEq for ucontext_t { - fn eq(&self, other: &Self) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask__c_anonymous_union - == other.uc_sigmask__c_anonymous_union - && &self.uc_regspace[..] == &other.uc_regspace[..] - // Ignore padding field - } - } - impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field( - "uc_sigmask__c_anonymous_union", - &self.uc_sigmask__c_anonymous_union - ) - .field("uc_regspace", &&self.uc_regspace[..]) - // Ignore padding field - .finish() - } - } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask__c_anonymous_union.hash(state); - self.uc_regspace[..].hash(state); - // Ignore padding field - } - } + impl PartialEq for ucontext_t { + fn eq(&self, other: &Self) -> bool { + self.uc_flags == other.uc_flags + && self.uc_link == other.uc_link + && self.uc_stack == other.uc_stack + && self.uc_mcontext == other.uc_mcontext + && self.uc_sigmask__c_anonymous_union + == other.uc_sigmask__c_anonymous_union + && &self.uc_regspace[..] == &other.uc_regspace[..] + // Ignore padding field + } + } + impl Eq for ucontext_t {} + impl ::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ucontext_t") + .field("uc_flags", &self.uc_flags) + .field("uc_link", &self.uc_link) + .field("uc_stack", &self.uc_stack) + .field("uc_mcontext", &self.uc_mcontext) + .field( + "uc_sigmask__c_anonymous_union", + &self.uc_sigmask__c_anonymous_union + ) + .field("uc_regspace", &&self.uc_regspace[..]) + // Ignore padding field + .finish() + } + } + impl ::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { + self.uc_flags.hash(state); + self.uc_link.hash(state); + self.uc_stack.hash(state); + self.uc_mcontext.hash(state); + self.uc_sigmask__c_anonymous_union.hash(state); + self.uc_regspace[..].hash(state); + // Ignore padding field } } } diff --git a/src/unix/linux_like/android/b32/x86/mod.rs b/src/unix/linux_like/android/b32/x86/mod.rs index 64ce93dd22916..4b2adda3d5018 100644 --- a/src/unix/linux_like/android/b32/x86/mod.rs +++ b/src/unix/linux_like/android/b32/x86/mod.rs @@ -28,113 +28,109 @@ s! { } } +s_no_extra_traits! { + pub struct __c_anonymous_uc_sigmask_with_padding { + pub uc_sigmask: ::sigset_t, + /* Android has a wrong (smaller) sigset_t on x86. */ + __padding_rt_sigset: u32, + } + + pub union __c_anonymous_uc_sigmask { + uc_sigmask: __c_anonymous_uc_sigmask_with_padding, + uc_sigmask64: ::sigset64_t, + } + + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: mcontext_t, + pub uc_sigmask__c_anonymous_union: __c_anonymous_uc_sigmask, + __padding_rt_sigset: u32, + __fpregs_mem: _libc_fpstate, + } +} + cfg_if! { - if #[cfg(libc_union)] { - s_no_extra_traits! { - pub struct __c_anonymous_uc_sigmask_with_padding { - pub uc_sigmask: ::sigset_t, - /* Android has a wrong (smaller) sigset_t on x86. */ - __padding_rt_sigset: u32, + if #[cfg(feature = "extra_traits")] { + impl PartialEq for __c_anonymous_uc_sigmask_with_padding { + fn eq( + &self, other: &__c_anonymous_uc_sigmask_with_padding + ) -> bool { + self.uc_sigmask == other.uc_sigmask + // Ignore padding } - - pub union __c_anonymous_uc_sigmask { - uc_sigmask: __c_anonymous_uc_sigmask_with_padding, - uc_sigmask64: ::sigset64_t, + } + impl Eq for __c_anonymous_uc_sigmask_with_padding {} + impl ::fmt::Debug for __c_anonymous_uc_sigmask_with_padding { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("uc_sigmask_with_padding") + .field("uc_sigmask_with_padding", &self.uc_sigmask) + // Ignore padding + .finish() } - - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: mcontext_t, - pub uc_sigmask__c_anonymous_union: __c_anonymous_uc_sigmask, - __padding_rt_sigset: u32, - __fpregs_mem: _libc_fpstate, + } + impl ::hash::Hash for __c_anonymous_uc_sigmask_with_padding { + fn hash(&self, state: &mut H) { + self.uc_sigmask.hash(state) + // Ignore padding } } - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for __c_anonymous_uc_sigmask_with_padding { - fn eq( - &self, other: &__c_anonymous_uc_sigmask_with_padding - ) -> bool { - self.uc_sigmask == other.uc_sigmask - // Ignore padding - } - } - impl Eq for __c_anonymous_uc_sigmask_with_padding {} - impl ::fmt::Debug for __c_anonymous_uc_sigmask_with_padding { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("uc_sigmask_with_padding") - .field("uc_sigmask_with_padding", &self.uc_sigmask) - // Ignore padding - .finish() - } - } - impl ::hash::Hash for __c_anonymous_uc_sigmask_with_padding { - fn hash(&self, state: &mut H) { - self.uc_sigmask.hash(state) - // Ignore padding - } - } - - impl PartialEq for __c_anonymous_uc_sigmask { - fn eq(&self, other: &__c_anonymous_uc_sigmask) -> bool { - unsafe { self.uc_sigmask == other.uc_sigmask } - } - } - impl Eq for __c_anonymous_uc_sigmask {} - impl ::fmt::Debug for __c_anonymous_uc_sigmask { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("uc_sigmask") - .field("uc_sigmask", unsafe { &self.uc_sigmask }) - .finish() - } - } - impl ::hash::Hash for __c_anonymous_uc_sigmask { - fn hash(&self, state: &mut H) { - unsafe { self.uc_sigmask.hash(state) } - } - } + impl PartialEq for __c_anonymous_uc_sigmask { + fn eq(&self, other: &__c_anonymous_uc_sigmask) -> bool { + unsafe { self.uc_sigmask == other.uc_sigmask } + } + } + impl Eq for __c_anonymous_uc_sigmask {} + impl ::fmt::Debug for __c_anonymous_uc_sigmask { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("uc_sigmask") + .field("uc_sigmask", unsafe { &self.uc_sigmask }) + .finish() + } + } + impl ::hash::Hash for __c_anonymous_uc_sigmask { + fn hash(&self, state: &mut H) { + unsafe { self.uc_sigmask.hash(state) } + } + } - impl PartialEq for ucontext_t { - fn eq(&self, other: &Self) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask__c_anonymous_union - == other.uc_sigmask__c_anonymous_union - // Ignore padding field - } - } - impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field( - "uc_sigmask__c_anonymous_union", - &self.uc_sigmask__c_anonymous_union - ) - // Ignore padding field - .finish() - } - } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask__c_anonymous_union.hash(state); - // Ignore padding field - } - } + impl PartialEq for ucontext_t { + fn eq(&self, other: &Self) -> bool { + self.uc_flags == other.uc_flags + && self.uc_link == other.uc_link + && self.uc_stack == other.uc_stack + && self.uc_mcontext == other.uc_mcontext + && self.uc_sigmask__c_anonymous_union + == other.uc_sigmask__c_anonymous_union + // Ignore padding field + } + } + impl Eq for ucontext_t {} + impl ::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ucontext_t") + .field("uc_flags", &self.uc_flags) + .field("uc_link", &self.uc_link) + .field("uc_stack", &self.uc_stack) + .field("uc_mcontext", &self.uc_mcontext) + .field( + "uc_sigmask__c_anonymous_union", + &self.uc_sigmask__c_anonymous_union + ) + // Ignore padding field + .finish() + } + } + impl ::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { + self.uc_flags.hash(state); + self.uc_link.hash(state); + self.uc_stack.hash(state); + self.uc_mcontext.hash(state); + self.uc_sigmask__c_anonymous_union.hash(state); + // Ignore padding field } } } diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index a7363304c65ce..4fcfb2c4d005b 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -104,35 +104,31 @@ s! { } +s_no_extra_traits! { + pub union __c_anonymous_uc_sigmask { + uc_sigmask: ::sigset_t, + uc_sigmask64: ::sigset64_t, + } +} + cfg_if! { - if #[cfg(libc_union)] { - s_no_extra_traits! { - pub union __c_anonymous_uc_sigmask { - uc_sigmask: ::sigset_t, - uc_sigmask64: ::sigset64_t, + if #[cfg(feature = "extra_traits")] { + impl PartialEq for __c_anonymous_uc_sigmask { + fn eq(&self, other: &__c_anonymous_uc_sigmask) -> bool { + unsafe { self.uc_sigmask == other.uc_sigmask } } } - - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for __c_anonymous_uc_sigmask { - fn eq(&self, other: &__c_anonymous_uc_sigmask) -> bool { - unsafe { self.uc_sigmask == other.uc_sigmask } - } - } - impl Eq for __c_anonymous_uc_sigmask {} - impl ::fmt::Debug for __c_anonymous_uc_sigmask { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("uc_sigmask") - .field("uc_sigmask", unsafe { &self.uc_sigmask }) - .finish() - } - } - impl ::hash::Hash for __c_anonymous_uc_sigmask { - fn hash(&self, state: &mut H) { - unsafe { self.uc_sigmask.hash(state) } - } - } + impl Eq for __c_anonymous_uc_sigmask {} + impl ::fmt::Debug for __c_anonymous_uc_sigmask { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("uc_sigmask") + .field("uc_sigmask", unsafe { &self.uc_sigmask }) + .finish() + } + } + impl ::hash::Hash for __c_anonymous_uc_sigmask { + fn hash(&self, state: &mut H) { + unsafe { self.uc_sigmask.hash(state) } } } } diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 0ca2df45a291e..076fd7decf24b 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -612,7 +612,6 @@ s_no_extra_traits! { __value: [[::c_char; 4]; 23], } - #[cfg(libc_union)] pub union __c_anonymous_ifr_ifru { pub ifru_addr: ::sockaddr, pub ifru_dstaddr: ::sockaddr, @@ -632,13 +631,9 @@ s_no_extra_traits! { pub struct ifreq { /// interface name, e.g. "en0" 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, @@ -649,10 +644,7 @@ s_no_extra_traits! { networks accessible). */ pub struct ifconf { pub ifc_len: ::c_int, /* Size of buffer. */ - #[cfg(libc_union)] pub ifc_ifcu: __c_anonymous_ifc_ifcu, - #[cfg(not(libc_union))] - pub ifc_ifcu: *mut ::ifreq, } } @@ -1002,7 +994,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl ::fmt::Debug for __c_anonymous_ifr_ifru { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("ifr_ifru") @@ -1031,7 +1022,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl ::fmt::Debug for __c_anonymous_ifc_ifcu { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("ifr_ifru") @@ -4190,64 +4180,60 @@ impl siginfo_t { } } -cfg_if! { - if #[cfg(libc_union)] { - // Internal, for casts to access union fields - #[repr(C)] - struct sifields_sigchld { - si_pid: ::pid_t, - si_uid: ::uid_t, - si_status: ::c_int, - si_utime: ::c_long, - si_stime: ::c_long, - } - impl ::Copy for sifields_sigchld {} - impl ::Clone for sifields_sigchld { - fn clone(&self) -> sifields_sigchld { - *self - } - } +// Internal, for casts to access union fields +#[repr(C)] +struct sifields_sigchld { + si_pid: ::pid_t, + si_uid: ::uid_t, + si_status: ::c_int, + si_utime: ::c_long, + si_stime: ::c_long, +} +impl ::Copy for sifields_sigchld {} +impl ::Clone for sifields_sigchld { + fn clone(&self) -> sifields_sigchld { + *self + } +} - // Internal, for casts to access union fields - #[repr(C)] - union sifields { - _align_pointer: *mut ::c_void, - sigchld: sifields_sigchld, - } +// Internal, for casts to access union fields +#[repr(C)] +union sifields { + _align_pointer: *mut ::c_void, + sigchld: sifields_sigchld, +} - // Internal, for casts to access union fields. Note that some variants - // of sifields start with a pointer, which makes the alignment of - // sifields vary on 32-bit and 64-bit architectures. - #[repr(C)] - struct siginfo_f { - _siginfo_base: [::c_int; 3], - sifields: sifields, - } +// Internal, for casts to access union fields. Note that some variants +// of sifields start with a pointer, which makes the alignment of +// sifields vary on 32-bit and 64-bit architectures. +#[repr(C)] +struct siginfo_f { + _siginfo_base: [::c_int; 3], + sifields: sifields, +} - impl siginfo_t { - unsafe fn sifields(&self) -> &sifields { - &(*(self as *const siginfo_t as *const siginfo_f)).sifields - } +impl siginfo_t { + unsafe fn sifields(&self) -> &sifields { + &(*(self as *const siginfo_t as *const siginfo_f)).sifields + } - pub unsafe fn si_pid(&self) -> ::pid_t { - self.sifields().sigchld.si_pid - } + pub unsafe fn si_pid(&self) -> ::pid_t { + self.sifields().sigchld.si_pid + } - pub unsafe fn si_uid(&self) -> ::uid_t { - self.sifields().sigchld.si_uid - } + pub unsafe fn si_uid(&self) -> ::uid_t { + self.sifields().sigchld.si_uid + } - pub unsafe fn si_status(&self) -> ::c_int { - self.sifields().sigchld.si_status - } + pub unsafe fn si_status(&self) -> ::c_int { + self.sifields().sigchld.si_status + } - pub unsafe fn si_utime(&self) -> ::c_long { - self.sifields().sigchld.si_utime - } + pub unsafe fn si_utime(&self) -> ::c_long { + self.sifields().sigchld.si_utime + } - pub unsafe fn si_stime(&self) -> ::c_long { - self.sifields().sigchld.si_stime - } - } + pub unsafe fn si_stime(&self) -> ::c_long { + self.sifields().sigchld.si_stime } } diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 3277ec5d26e48..41a229ef9e83d 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -353,7 +353,6 @@ s! { pub arch: ::__u32, pub instruction_pointer: ::__u64, pub stack_pointer: ::__u64, - #[cfg(libc_union)] pub u: __c_anonymous_ptrace_syscall_info_data, } @@ -531,77 +530,73 @@ impl siginfo_t { } } -cfg_if! { - if #[cfg(libc_union)] { - // Internal, for casts to access union fields - #[repr(C)] - struct sifields_sigchld { - si_pid: ::pid_t, - si_uid: ::uid_t, - si_status: ::c_int, - si_utime: ::c_long, - si_stime: ::c_long, - } - impl ::Copy for sifields_sigchld {} - impl ::Clone for sifields_sigchld { - fn clone(&self) -> sifields_sigchld { - *self - } - } +// Internal, for casts to access union fields +#[repr(C)] +struct sifields_sigchld { + si_pid: ::pid_t, + si_uid: ::uid_t, + si_status: ::c_int, + si_utime: ::c_long, + si_stime: ::c_long, +} +impl ::Copy for sifields_sigchld {} +impl ::Clone for sifields_sigchld { + fn clone(&self) -> sifields_sigchld { + *self + } +} - // Internal, for casts to access union fields - #[repr(C)] - union sifields { - _align_pointer: *mut ::c_void, - sigchld: sifields_sigchld, - } +// Internal, for casts to access union fields +#[repr(C)] +union sifields { + _align_pointer: *mut ::c_void, + sigchld: sifields_sigchld, +} - // Internal, for casts to access union fields. Note that some variants - // of sifields start with a pointer, which makes the alignment of - // sifields vary on 32-bit and 64-bit architectures. - #[repr(C)] - struct siginfo_f { - _siginfo_base: [::c_int; 3], - sifields: sifields, - } +// Internal, for casts to access union fields. Note that some variants +// of sifields start with a pointer, which makes the alignment of +// sifields vary on 32-bit and 64-bit architectures. +#[repr(C)] +struct siginfo_f { + _siginfo_base: [::c_int; 3], + sifields: sifields, +} - impl siginfo_t { - unsafe fn sifields(&self) -> &sifields { - &(*(self as *const siginfo_t as *const siginfo_f)).sifields - } +impl siginfo_t { + unsafe fn sifields(&self) -> &sifields { + &(*(self as *const siginfo_t as *const siginfo_f)).sifields + } - pub unsafe fn si_pid(&self) -> ::pid_t { - self.sifields().sigchld.si_pid - } + pub unsafe fn si_pid(&self) -> ::pid_t { + self.sifields().sigchld.si_pid + } - pub unsafe fn si_uid(&self) -> ::uid_t { - self.sifields().sigchld.si_uid - } + pub unsafe fn si_uid(&self) -> ::uid_t { + self.sifields().sigchld.si_uid + } - pub unsafe fn si_status(&self) -> ::c_int { - self.sifields().sigchld.si_status - } + pub unsafe fn si_status(&self) -> ::c_int { + self.sifields().sigchld.si_status + } - pub unsafe fn si_utime(&self) -> ::c_long { - self.sifields().sigchld.si_utime - } + pub unsafe fn si_utime(&self) -> ::c_long { + self.sifields().sigchld.si_utime + } - pub unsafe fn si_stime(&self) -> ::c_long { - self.sifields().sigchld.si_stime - } - } + pub unsafe fn si_stime(&self) -> ::c_long { + self.sifields().sigchld.si_stime + } +} - pub union __c_anonymous_ptrace_syscall_info_data { - pub entry: __c_anonymous_ptrace_syscall_info_entry, - pub exit: __c_anonymous_ptrace_syscall_info_exit, - pub seccomp: __c_anonymous_ptrace_syscall_info_seccomp, - } - impl ::Copy for __c_anonymous_ptrace_syscall_info_data {} - impl ::Clone for __c_anonymous_ptrace_syscall_info_data { - fn clone(&self) -> __c_anonymous_ptrace_syscall_info_data { - *self - } - } +pub union __c_anonymous_ptrace_syscall_info_data { + pub entry: __c_anonymous_ptrace_syscall_info_entry, + pub exit: __c_anonymous_ptrace_syscall_info_exit, + pub seccomp: __c_anonymous_ptrace_syscall_info_seccomp, +} +impl ::Copy for __c_anonymous_ptrace_syscall_info_data {} +impl ::Clone for __c_anonymous_ptrace_syscall_info_data { + fn clone(&self) -> __c_anonymous_ptrace_syscall_info_data { + *self } } @@ -705,7 +700,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl PartialEq for __c_anonymous_ptrace_syscall_info_data { fn eq(&self, other: &__c_anonymous_ptrace_syscall_info_data) -> bool { unsafe { @@ -716,10 +710,8 @@ cfg_if! { } } - #[cfg(libc_union)] impl Eq for __c_anonymous_ptrace_syscall_info_data {} - #[cfg(libc_union)] impl ::fmt::Debug for __c_anonymous_ptrace_syscall_info_data { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { unsafe { @@ -732,7 +724,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl ::hash::Hash for __c_anonymous_ptrace_syscall_info_data { fn hash(&self, state: &mut H) { unsafe { diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 4ec30dc15ec5c..ec6c4ac235599 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -969,7 +969,6 @@ s_no_extra_traits! { pad: [::c_long; 4], } - #[cfg(libc_union)] pub union __c_anonymous_ifr_ifru { pub ifru_addr: ::sockaddr, pub ifru_dstaddr: ::sockaddr, @@ -989,13 +988,9 @@ s_no_extra_traits! { pub struct ifreq { /// interface name, e.g. "en0" 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, @@ -1006,10 +1001,7 @@ s_no_extra_traits! { networks accessible). */ pub struct ifconf { pub ifc_len: ::c_int, /* Size of buffer. */ - #[cfg(libc_union)] pub ifc_ifcu: __c_anonymous_ifc_ifcu, - #[cfg(not(libc_union))] - pub ifc_ifcu: *mut ::ifreq, } pub struct hwtstamp_config { @@ -1037,20 +1029,17 @@ s_no_extra_traits! { pub sched_period: ::__u64, } - #[cfg(libc_union)] #[allow(missing_debug_implementations)] pub union tpacket_req_u { pub req: ::tpacket_req, pub req3: ::tpacket_req3, } - #[cfg(libc_union)] #[allow(missing_debug_implementations)] pub union tpacket_bd_header_u { pub bh1: ::tpacket_hdr_v1, } - #[cfg(libc_union)] #[allow(missing_debug_implementations)] pub struct tpacket_block_desc { pub version: ::__u32, @@ -1068,23 +1057,19 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(libc_union)] { - s_no_extra_traits! { - // linux/can.h - #[allow(missing_debug_implementations)] - pub union __c_anonymous_sockaddr_can_can_addr { - pub tp: __c_anonymous_sockaddr_can_tp, - pub j1939: __c_anonymous_sockaddr_can_j1939, - } +s_no_extra_traits! { + // linux/can.h + #[allow(missing_debug_implementations)] + pub union __c_anonymous_sockaddr_can_can_addr { + pub tp: __c_anonymous_sockaddr_can_tp, + pub j1939: __c_anonymous_sockaddr_can_j1939, + } - #[allow(missing_debug_implementations)] - pub struct sockaddr_can { - pub can_family: ::sa_family_t, - pub can_ifindex: ::c_int, - pub can_addr: __c_anonymous_sockaddr_can_can_addr, - } - } + #[allow(missing_debug_implementations)] + pub struct sockaddr_can { + pub can_family: ::sa_family_t, + pub can_ifindex: ::c_int, + pub can_addr: __c_anonymous_sockaddr_can_can_addr, } } @@ -1452,7 +1437,6 @@ cfg_if! { self.mq_curmsgs.hash(state); } } - #[cfg(libc_union)] impl ::fmt::Debug for __c_anonymous_ifr_ifru { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("ifr_ifru") @@ -1481,7 +1465,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl ::fmt::Debug for __c_anonymous_ifc_ifcu { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("ifr_ifru") diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index e450385123571..978423b0f2a0d 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -58,65 +58,61 @@ impl siginfo_t { } } -cfg_if! { - if #[cfg(libc_union)] { - // Internal, for casts to access union fields - #[repr(C)] - struct sifields_sigchld { - si_pid: ::pid_t, - si_uid: ::uid_t, - si_status: ::c_int, - si_utime: ::c_long, - si_stime: ::c_long, - } - impl ::Copy for sifields_sigchld {} - impl ::Clone for sifields_sigchld { - fn clone(&self) -> sifields_sigchld { - *self - } - } +// Internal, for casts to access union fields +#[repr(C)] +struct sifields_sigchld { + si_pid: ::pid_t, + si_uid: ::uid_t, + si_status: ::c_int, + si_utime: ::c_long, + si_stime: ::c_long, +} +impl ::Copy for sifields_sigchld {} +impl ::Clone for sifields_sigchld { + fn clone(&self) -> sifields_sigchld { + *self + } +} - // Internal, for casts to access union fields - #[repr(C)] - union sifields { - _align_pointer: *mut ::c_void, - sigchld: sifields_sigchld, - } +// Internal, for casts to access union fields +#[repr(C)] +union sifields { + _align_pointer: *mut ::c_void, + sigchld: sifields_sigchld, +} - // Internal, for casts to access union fields. Note that some variants - // of sifields start with a pointer, which makes the alignment of - // sifields vary on 32-bit and 64-bit architectures. - #[repr(C)] - struct siginfo_f { - _siginfo_base: [::c_int; 3], - sifields: sifields, - } +// Internal, for casts to access union fields. Note that some variants +// of sifields start with a pointer, which makes the alignment of +// sifields vary on 32-bit and 64-bit architectures. +#[repr(C)] +struct siginfo_f { + _siginfo_base: [::c_int; 3], + sifields: sifields, +} - impl siginfo_t { - unsafe fn sifields(&self) -> &sifields { - &(*(self as *const siginfo_t as *const siginfo_f)).sifields - } +impl siginfo_t { + unsafe fn sifields(&self) -> &sifields { + &(*(self as *const siginfo_t as *const siginfo_f)).sifields + } - pub unsafe fn si_pid(&self) -> ::pid_t { - self.sifields().sigchld.si_pid - } + pub unsafe fn si_pid(&self) -> ::pid_t { + self.sifields().sigchld.si_pid + } - pub unsafe fn si_uid(&self) -> ::uid_t { - self.sifields().sigchld.si_uid - } + pub unsafe fn si_uid(&self) -> ::uid_t { + self.sifields().sigchld.si_uid + } - pub unsafe fn si_status(&self) -> ::c_int { - self.sifields().sigchld.si_status - } + pub unsafe fn si_status(&self) -> ::c_int { + self.sifields().sigchld.si_status + } - pub unsafe fn si_utime(&self) -> ::c_long { - self.sifields().sigchld.si_utime - } + pub unsafe fn si_utime(&self) -> ::c_long { + self.sifields().sigchld.si_utime + } - pub unsafe fn si_stime(&self) -> ::c_long { - self.sifields().sigchld.si_stime - } - } + pub unsafe fn si_stime(&self) -> ::c_long { + self.sifields().sigchld.si_stime } } diff --git a/src/unix/nto/x86_64.rs b/src/unix/nto/x86_64.rs index 3a1d230bb98eb..29739ac83a3e9 100644 --- a/src/unix/nto/x86_64.rs +++ b/src/unix/nto/x86_64.rs @@ -34,10 +34,7 @@ s! { #[repr(align(8))] pub struct mcontext_t { pub cpu: x86_64_cpu_registers, - #[cfg(libc_union)] pub fpu: x86_64_fpu_registers, - #[cfg(not(libc_union))] - __reserved: [u8; 1024], } pub struct stack_t { @@ -80,7 +77,6 @@ s! { } s_no_extra_traits! { - #[cfg(libc_union)] pub union x86_64_fpu_registers { pub fsave_area: fsave_area_64, pub fxsave_area: fxsave_area_64, @@ -91,10 +87,8 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { - #[cfg(libc_union)] impl Eq for x86_64_fpu_registers {} - #[cfg(libc_union)] impl PartialEq for x86_64_fpu_registers { fn eq(&self, other: &x86_64_fpu_registers) -> bool { unsafe { @@ -105,7 +99,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl ::fmt::Debug for x86_64_fpu_registers { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { unsafe { @@ -118,7 +111,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl ::hash::Hash for x86_64_fpu_registers { fn hash(&self, state: &mut H) { unsafe { diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index b30ab7e76c387..994fc76583b5c 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -555,14 +555,12 @@ s_no_extra_traits! { __sigev_pad2: ::c_int, } - #[cfg(libc_union)] #[cfg_attr(libc_align, repr(align(16)))] pub union pad128_t { // pub _q in this structure would be a "long double", of 16 bytes pub _l: [i32; 4], } - #[cfg(libc_union)] #[cfg_attr(libc_align, repr(align(16)))] pub union upad128_t { // pub _q in this structure would be a "long double", of 16 bytes @@ -849,7 +847,6 @@ cfg_if! { } } - #[cfg(libc_union)] impl PartialEq for pad128_t { fn eq(&self, other: &pad128_t) -> bool { unsafe { @@ -858,9 +855,7 @@ cfg_if! { } } } - #[cfg(libc_union)] impl Eq for pad128_t {} - #[cfg(libc_union)] impl ::fmt::Debug for pad128_t { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { unsafe { @@ -871,7 +866,6 @@ cfg_if! { } } } - #[cfg(libc_union)] impl ::hash::Hash for pad128_t { fn hash(&self, state: &mut H) { unsafe { @@ -880,7 +874,6 @@ cfg_if! { } } } - #[cfg(libc_union)] impl PartialEq for upad128_t { fn eq(&self, other: &upad128_t) -> bool { unsafe { @@ -889,9 +882,7 @@ cfg_if! { } } } - #[cfg(libc_union)] impl Eq for upad128_t {} - #[cfg(libc_union)] impl ::fmt::Debug for upad128_t { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { unsafe { @@ -902,7 +893,6 @@ cfg_if! { } } } - #[cfg(libc_union)] impl ::hash::Hash for upad128_t { fn hash(&self, state: &mut H) { unsafe { diff --git a/src/unix/solarish/x86_64.rs b/src/unix/solarish/x86_64.rs index e95eecd6211c0..4ca314d4992f1 100644 --- a/src/unix/solarish/x86_64.rs +++ b/src/unix/solarish/x86_64.rs @@ -60,7 +60,6 @@ s! { } s_no_extra_traits! { - #[cfg(libc_union)] pub union __c_anonymous_fp_reg_set { pub fpchip_state: __c_anonymous_fpchip_state, pub f_fpregs: [[u32; 13]; 10], @@ -96,7 +95,6 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { - #[cfg(libc_union)] impl PartialEq for __c_anonymous_fp_reg_set { fn eq(&self, other: &__c_anonymous_fp_reg_set) -> bool { unsafe { @@ -109,9 +107,7 @@ cfg_if! { } } } - #[cfg(libc_union)] impl Eq for __c_anonymous_fp_reg_set {} - #[cfg(libc_union)] impl ::fmt::Debug for __c_anonymous_fp_reg_set { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { unsafe { From 5a43dd2754366f99b3a83881b30246ce0e51833c Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Mon, 11 Jul 2022 19:02:03 -0700 Subject: [PATCH 0261/1228] Require rust >= 1.24 and drop libc_const_size_of conditional [ resolve conflicts and remove a couple newer `cfg`s - Trevor ] --- build.rs | 6 -- libc-test/build.rs | 1 - src/unix/bsd/apple/mod.rs | 102 +++++++----------- src/unix/bsd/freebsdlike/freebsd/aarch64.rs | 11 +- src/unix/bsd/freebsdlike/freebsd/arm.rs | 12 +-- src/unix/bsd/freebsdlike/freebsd/powerpc.rs | 11 +- src/unix/bsd/freebsdlike/freebsd/powerpc64.rs | 12 +-- src/unix/bsd/freebsdlike/freebsd/riscv64.rs | 13 +-- src/unix/bsd/freebsdlike/freebsd/x86.rs | 13 +-- .../bsd/freebsdlike/freebsd/x86_64/mod.rs | 11 +- src/unix/bsd/freebsdlike/mod.rs | 10 +- src/unix/bsd/netbsdlike/netbsd/aarch64.rs | 12 +-- src/unix/bsd/netbsdlike/netbsd/arm.rs | 11 +- src/unix/bsd/netbsdlike/netbsd/mips.rs | 10 +- src/unix/bsd/netbsdlike/netbsd/powerpc.rs | 11 +- src/unix/bsd/netbsdlike/netbsd/riscv64.rs | 10 +- src/unix/bsd/netbsdlike/netbsd/x86.rs | 11 +- src/unix/bsd/netbsdlike/netbsd/x86_64.rs | 11 +- src/unix/bsd/netbsdlike/openbsd/aarch64.rs | 11 +- src/unix/bsd/netbsdlike/openbsd/arm.rs | 11 +- src/unix/bsd/netbsdlike/openbsd/powerpc.rs | 11 +- src/unix/bsd/netbsdlike/openbsd/powerpc64.rs | 11 +- src/unix/bsd/netbsdlike/openbsd/riscv64.rs | 11 +- src/unix/bsd/netbsdlike/openbsd/x86.rs | 11 +- src/unix/bsd/netbsdlike/openbsd/x86_64.rs | 11 +- src/unix/linux_like/linux/mod.rs | 25 ++--- 26 files changed, 74 insertions(+), 306 deletions(-) diff --git a/build.rs b/build.rs index 6f35689379cb6..241c489d9a183 100644 --- a/build.rs +++ b/build.rs @@ -18,7 +18,6 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ "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", @@ -97,11 +96,6 @@ fn main() { set_cfg("libc_deny_warnings"); } - // Rust >= 1.24 supports const mem::size_of: - if rustc_minor_ver >= 24 || rustc_dep_of_std { - set_cfg("libc_const_size_of"); - } - // Rust >= 1.25 supports repr(align): if rustc_minor_ver >= 25 || rustc_dep_of_std || align_cargo_feature { set_cfg("libc_align"); diff --git a/libc-test/build.rs b/libc-test/build.rs index 534a27a8df8d6..d4a2d9cfaa3cd 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -68,7 +68,6 @@ fn do_ctest() { fn ctest_cfg() -> ctest::TestGenerator { let mut cfg = ctest::TestGenerator::new(); let libc_cfgs = [ - "libc_const_size_of", "libc_align", "libc_core_cvoid", "libc_packedN", diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 09fcbfb7f8c1f..efde59bc8d32e 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -5484,76 +5484,52 @@ cfg_if! { const __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::() - 1; p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32 } - } else if #[cfg(libc_const_size_of)] { - fn __DARWIN_ALIGN32(p: usize) -> usize { - const __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::() - 1; - p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32 - } } else { fn __DARWIN_ALIGN32(p: usize) -> usize { - let __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::() - 1; + const __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::() - 1; p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32 } } } -cfg_if! { - if #[cfg(libc_const_size_of)] { - pub const THREAD_EXTENDED_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - pub const THREAD_TIME_CONSTRAINT_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / - ::mem::size_of::()) as mach_msg_type_number_t; - pub const THREAD_PRECEDENCE_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - pub const THREAD_AFFINITY_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - pub const THREAD_BACKGROUND_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - pub const THREAD_LATENCY_QOS_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - pub const THREAD_THROUGHPUT_QOS_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / - ::mem::size_of::()) as mach_msg_type_number_t; - pub const THREAD_BASIC_INFO_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - pub const THREAD_IDENTIFIER_INFO_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - pub const THREAD_EXTENDED_INFO_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - - pub const TASK_THREAD_TIMES_INFO_COUNT: u32 = - (::mem::size_of::() - / ::mem::size_of::()) as u32; - pub const MACH_TASK_BASIC_INFO_COUNT: u32 = (::mem::size_of::() - / ::mem::size_of::()) as u32; - pub const HOST_VM_INFO64_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - } else { - pub const THREAD_EXTENDED_POLICY_COUNT: mach_msg_type_number_t = 1; - pub const THREAD_TIME_CONSTRAINT_POLICY_COUNT: mach_msg_type_number_t = 4; - pub const THREAD_PRECEDENCE_POLICY_COUNT: mach_msg_type_number_t = 1; - pub const THREAD_AFFINITY_POLICY_COUNT: mach_msg_type_number_t = 1; - pub const THREAD_BACKGROUND_POLICY_COUNT: mach_msg_type_number_t = 1; - pub const THREAD_LATENCY_QOS_POLICY_COUNT: mach_msg_type_number_t = 1; - pub const THREAD_THROUGHPUT_QOS_POLICY_COUNT: mach_msg_type_number_t = 1; - pub const THREAD_BASIC_INFO_COUNT: mach_msg_type_number_t = 10; - pub const THREAD_IDENTIFIER_INFO_COUNT: mach_msg_type_number_t = 6; - pub const THREAD_EXTENDED_INFO_COUNT: mach_msg_type_number_t = 28; - pub const TASK_THREAD_TIMES_INFO_COUNT: u32 = 4; - pub const MACH_TASK_BASIC_INFO_COUNT: u32 = 12; - pub const HOST_VM_INFO64_COUNT: mach_msg_type_number_t = 38; - } -} +pub const THREAD_EXTENDED_POLICY_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; +pub const THREAD_TIME_CONSTRAINT_POLICY_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; +pub const THREAD_PRECEDENCE_POLICY_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; +pub const THREAD_AFFINITY_POLICY_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; +pub const THREAD_BACKGROUND_POLICY_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; +pub const THREAD_LATENCY_QOS_POLICY_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; +pub const THREAD_THROUGHPUT_QOS_POLICY_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; +pub const THREAD_BASIC_INFO_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; +pub const THREAD_IDENTIFIER_INFO_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; +pub const THREAD_EXTENDED_INFO_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; + +pub const TASK_THREAD_TIMES_INFO_COUNT: u32 = + (::mem::size_of::() / ::mem::size_of::()) as u32; +pub const MACH_TASK_BASIC_INFO_COUNT: u32 = + (::mem::size_of::() / ::mem::size_of::()) as u32; +pub const HOST_VM_INFO64_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; f! { pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, diff --git a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs index 004b6266ea863..05fe64b5c0c8a 100644 --- a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs @@ -34,16 +34,7 @@ s_no_extra_traits! { } } -// should be pub(crate), but that requires Rust 1.18.0 -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(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1; cfg_if! { if #[cfg(feature = "extra_traits")] { diff --git a/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/unix/bsd/freebsdlike/freebsd/arm.rs index 82112a868b0ba..07cac6a331547 100644 --- a/src/unix/bsd/freebsdlike/freebsd/arm.rs +++ b/src/unix/bsd/freebsdlike/freebsd/arm.rs @@ -50,19 +50,11 @@ cfg_if! { } } -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 4 - 1; - } -} +pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; + pub const MAP_32BIT: ::c_int = 0x00080000; pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4 pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs index f85df97f3666a..0f4f0dffee4cd 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs @@ -73,16 +73,7 @@ cfg_if! { } } -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 4 - 1; - } -} +pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs index 1b2d59c31c0cd..c1577f5194e57 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs @@ -73,19 +73,11 @@ cfg_if! { } } -// should be pub(crate), but that requires Rust 1.18.0 -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(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; + pub const MAP_32BIT: ::c_int = 0x00080000; pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs index bad84177e6f0a..8be949df01583 100644 --- a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs @@ -36,17 +36,6 @@ s_no_extra_traits! { } } -// should be pub(crate), but that requires Rust 1.18.0 -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; - } -} - cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for gpregs { @@ -151,6 +140,8 @@ cfg_if! { } } +pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1; + pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; pub const MAP_32BIT: ::c_int = 0x00080000; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index b9da7caa2001e..9d5122846362d 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -47,17 +47,6 @@ cfg_if! { } } -// should be pub(crate), but that requires Rust 1.18.0 -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 = 4 - 1; - } -} - cfg_if! { if #[cfg(all(libc_align, feature = "extra_traits"))] { impl PartialEq for mcontext_t { @@ -169,6 +158,8 @@ cfg_if! { } } +pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; + pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 pub const BIOCSRTIMEOUT: ::c_ulong = 0x8008426d; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index f614bb2dbea38..327e0ad78fadb 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -219,16 +219,7 @@ cfg_if! { } } -// should be pub(crate), but that requires Rust 1.18.0 -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(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index d4749178f3c2c..f247e6bf6a02b 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -432,15 +432,7 @@ cfg_if! { } // Non-public helper constant -cfg_if! { - if #[cfg(all(not(libc_const_size_of), target_pointer_width = "32"))] { - const SIZEOF_LONG: usize = 4; - } else if #[cfg(all(not(libc_const_size_of), target_pointer_width = "64"))] { - const SIZEOF_LONG: usize = 8; - } else if #[cfg(libc_const_size_of)] { - const SIZEOF_LONG: usize = ::mem::size_of::<::c_long>(); - } -} +const SIZEOF_LONG: usize = ::mem::size_of::<::c_long>(); #[deprecated( since = "0.2.64", diff --git a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs index f3f87b5e6f984..5f57779d3037e 100644 --- a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs @@ -80,17 +80,7 @@ cfg_if! { } } -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 4 - 1; - } -} - +pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 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; diff --git a/src/unix/bsd/netbsdlike/netbsd/arm.rs b/src/unix/bsd/netbsdlike/netbsd/arm.rs index b5000d34d66fb..2da780ec6ddcb 100644 --- a/src/unix/bsd/netbsdlike/netbsd/arm.rs +++ b/src/unix/bsd/netbsdlike/netbsd/arm.rs @@ -5,16 +5,7 @@ pub type c_ulong = u32; pub type c_char = u8; pub type __cpu_simple_lock_nv_t = ::c_int; -// should be pub(crate), but that requires Rust 1.18.0 -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(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1; pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2; diff --git a/src/unix/bsd/netbsdlike/netbsd/mips.rs b/src/unix/bsd/netbsdlike/netbsd/mips.rs index a536254ceb4b3..c25407fd97393 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mips.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mips.rs @@ -5,15 +5,7 @@ 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(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1; pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2; diff --git a/src/unix/bsd/netbsdlike/netbsd/powerpc.rs b/src/unix/bsd/netbsdlike/netbsd/powerpc.rs index e12fd5e112332..b4bfacf6a0185 100644 --- a/src/unix/bsd/netbsdlike/netbsd/powerpc.rs +++ b/src/unix/bsd/netbsdlike/netbsd/powerpc.rs @@ -5,16 +5,7 @@ pub type c_ulong = u32; pub type c_char = u8; pub type __cpu_simple_lock_nv_t = ::c_int; -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_double>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 8 - 1; - } -} +pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_double>() - 1; pub const PT_STEP: ::c_int = PT_FIRSTMACH + 0; pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs index bc09149efeabd..643940d03de85 100644 --- a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs @@ -5,15 +5,7 @@ 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(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 0; pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/x86.rs b/src/unix/bsd/netbsdlike/netbsd/x86.rs index daa89a11a67cb..d3a3967df17ef 100644 --- a/src/unix/bsd/netbsdlike/netbsd/x86.rs +++ b/src/unix/bsd/netbsdlike/netbsd/x86.rs @@ -3,13 +3,4 @@ pub type c_ulong = u32; pub type c_char = i8; pub type __cpu_simple_lock_nv_t = ::c_uchar; -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 4 - 1; - } -} +pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/x86_64.rs b/src/unix/bsd/netbsdlike/netbsd/x86_64.rs index ba259074f6129..a2087c34e43ef 100644 --- a/src/unix/bsd/netbsdlike/netbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/x86_64.rs @@ -22,16 +22,7 @@ s! { } } -// should be pub(crate), but that requires Rust 1.18.0 -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(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; pub const PT_STEP: ::c_int = PT_FIRSTMACH + 0; pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; diff --git a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs index 2bc82e486c596..f2159c4dc2142 100644 --- a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs @@ -16,15 +16,6 @@ s! { } } -// should be pub(crate), but that requires Rust 1.18.0 -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(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/arm.rs b/src/unix/bsd/netbsdlike/openbsd/arm.rs index f1ab365d1cd1b..6394df9300245 100644 --- a/src/unix/bsd/netbsdlike/openbsd/arm.rs +++ b/src/unix/bsd/netbsdlike/openbsd/arm.rs @@ -2,15 +2,6 @@ pub type c_long = i32; pub type c_ulong = u32; pub type c_char = u8; -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_double>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 8 - 1; - } -} +pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_double>() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/powerpc.rs b/src/unix/bsd/netbsdlike/openbsd/powerpc.rs index f1ab365d1cd1b..6394df9300245 100644 --- a/src/unix/bsd/netbsdlike/openbsd/powerpc.rs +++ b/src/unix/bsd/netbsdlike/openbsd/powerpc.rs @@ -2,15 +2,6 @@ pub type c_long = i32; pub type c_ulong = u32; pub type c_char = u8; -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_double>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 8 - 1; - } -} +pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_double>() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs b/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs index 99350ec8dc3d4..df0cdd6d1ac53 100644 --- a/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs @@ -2,15 +2,6 @@ pub type c_long = i64; pub type c_ulong = u64; pub type c_char = u8; -// should be pub(crate), but that requires Rust 1.18.0 -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(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/riscv64.rs b/src/unix/bsd/netbsdlike/openbsd/riscv64.rs index 35f1672bbec9e..fbcc5a76bbed3 100644 --- a/src/unix/bsd/netbsdlike/openbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/riscv64.rs @@ -21,15 +21,6 @@ s! { } } -// should be pub(crate), but that requires Rust 1.18.0 -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(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/x86.rs b/src/unix/bsd/netbsdlike/openbsd/x86.rs index e87d0ff1e7d5d..a12107bc2a482 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86.rs @@ -2,15 +2,6 @@ pub type c_long = i32; pub type c_ulong = u32; pub type c_char = i8; -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 4 - 1; - } -} +pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs index 60dab004456fc..5cc7dc1fc060f 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs @@ -110,16 +110,7 @@ cfg_if! { } } -// should be pub(crate), but that requires Rust 1.18.0 -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(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index ec6c4ac235599..99f3f45a9950b 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -3084,22 +3084,15 @@ pub const TP_FT_REQ_FILL_RXHASH: ::__u32 = 1; pub const TPACKET_ALIGNMENT: usize = 16; -cfg_if! { - if #[cfg(libc_const_size_of)] { - pub const TPACKET_HDRLEN: usize = ( - (::mem::size_of::<::tpacket_hdr>() + TPACKET_ALIGNMENT - 1) - & !(TPACKET_ALIGNMENT - 1) - ) + ::mem::size_of::<::sockaddr_ll>(); - pub const TPACKET2_HDRLEN: usize = ( - (::mem::size_of::<::tpacket2_hdr>() + TPACKET_ALIGNMENT - 1) - & !(TPACKET_ALIGNMENT - 1) - ) + ::mem::size_of::<::sockaddr_ll>(); - pub const TPACKET3_HDRLEN: usize = ( - (::mem::size_of::<::tpacket3_hdr>() + TPACKET_ALIGNMENT - 1) - & !(TPACKET_ALIGNMENT - 1) - ) + ::mem::size_of::<::sockaddr_ll>(); - } -} +pub const TPACKET_HDRLEN: usize = ((::mem::size_of::<::tpacket_hdr>() + TPACKET_ALIGNMENT - 1) + & !(TPACKET_ALIGNMENT - 1)) + + ::mem::size_of::<::sockaddr_ll>(); +pub const TPACKET2_HDRLEN: usize = ((::mem::size_of::<::tpacket2_hdr>() + TPACKET_ALIGNMENT - 1) + & !(TPACKET_ALIGNMENT - 1)) + + ::mem::size_of::<::sockaddr_ll>(); +pub const TPACKET3_HDRLEN: usize = ((::mem::size_of::<::tpacket3_hdr>() + TPACKET_ALIGNMENT - 1) + & !(TPACKET_ALIGNMENT - 1)) + + ::mem::size_of::<::sockaddr_ll>(); // linux/netfilter.h pub const NF_DROP: ::c_int = 0; From b5b553d0ee7de0d4781432a9a9a0a6445dd7f34f Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 11 Jul 2022 20:21:45 -0700 Subject: [PATCH 0262/1228] Require rust >= 1.25 and drop libc_align conditional This is mostly taken from Josh's work at [1], I just updated to account for conflicts and new uses of `libc_align`. [1]: https://github.com/rust-lang/libc/pull/2845 Co-authored-by: Josh Triplett --- Cargo.toml | 5 +- build.rs | 7 - libc-test/build.rs | 7 +- src/fuchsia/align.rs | 142 --------- src/fuchsia/mod.rs | 164 +++++++++-- src/fuchsia/no_align.rs | 129 -------- src/macros.rs | 18 -- src/unix/align.rs | 14 - src/unix/bsd/apple/b32/align.rs | 7 - src/unix/bsd/apple/b32/mod.rs | 13 +- src/unix/bsd/apple/b64/aarch64/align.rs | 55 ---- src/unix/bsd/apple/b64/aarch64/mod.rs | 54 +++- src/unix/bsd/apple/b64/align.rs | 7 - src/unix/bsd/apple/b64/x86_64/align.rs | 7 - src/unix/bsd/apple/b64/x86_64/mod.rs | 9 +- src/unix/bsd/apple/mod.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/mod.rs | 4 +- src/unix/bsd/freebsdlike/freebsd/powerpc.rs | 30 +- src/unix/bsd/freebsdlike/freebsd/powerpc64.rs | 30 +- src/unix/bsd/freebsdlike/freebsd/x86.rs | 72 +++-- .../bsd/freebsdlike/freebsd/x86_64/align.rs | 186 ------------ .../bsd/freebsdlike/freebsd/x86_64/mod.rs | 187 +++++++++++- src/unix/hurd/no_align.rs | 1 - src/unix/linux_like/android/b32/x86/align.rs | 7 - src/unix/linux_like/android/b32/x86/mod.rs | 13 +- .../linux_like/android/b64/aarch64/align.rs | 31 -- .../linux_like/android/b64/aarch64/mod.rs | 35 ++- .../linux_like/android/b64/riscv64/align.rs | 7 - .../linux_like/android/b64/riscv64/mod.rs | 15 +- .../linux_like/android/b64/x86_64/align.rs | 7 - src/unix/linux_like/android/b64/x86_64/mod.rs | 13 +- src/unix/linux_like/android/mod.rs | 2 +- src/unix/linux_like/emscripten/align.rs | 74 ----- src/unix/linux_like/emscripten/mod.rs | 93 ++++-- src/unix/linux_like/emscripten/no_align.rs | 63 ---- src/unix/linux_like/linux/align.rs | 223 -------------- src/unix/linux_like/linux/gnu/align.rs | 13 - .../linux_like/linux/gnu/b32/arm/align.rs | 53 ---- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 61 +++- .../linux_like/linux/gnu/b32/csky/align.rs | 7 - src/unix/linux_like/linux/gnu/b32/csky/mod.rs | 15 +- .../linux_like/linux/gnu/b32/m68k/align.rs | 7 - src/unix/linux_like/linux/gnu/b32/m68k/mod.rs | 8 + .../linux_like/linux/gnu/b32/mips/align.rs | 7 - src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 15 +- src/unix/linux_like/linux/gnu/b32/mod.rs | 86 +++--- .../linux_like/linux/gnu/b32/riscv32/align.rs | 44 --- .../linux_like/linux/gnu/b32/riscv32/mod.rs | 52 +++- .../linux_like/linux/gnu/b32/sparc/align.rs | 7 - .../linux_like/linux/gnu/b32/sparc/mod.rs | 15 +- .../linux_like/linux/gnu/b32/x86/align.rs | 7 - src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 13 +- .../linux_like/linux/gnu/b64/aarch64/align.rs | 51 ---- .../linux_like/linux/gnu/b64/aarch64/ilp32.rs | 92 +++--- .../linux_like/linux/gnu/b64/aarch64/lp64.rs | 98 +++---- .../linux_like/linux/gnu/b64/aarch64/mod.rs | 58 +++- .../linux/gnu/b64/loongarch64/align.rs | 40 --- .../linux/gnu/b64/loongarch64/mod.rs | 138 +++++---- .../linux_like/linux/gnu/b64/mips64/align.rs | 7 - .../linux_like/linux/gnu/b64/mips64/mod.rs | 107 ++++--- .../linux/gnu/b64/powerpc64/align.rs | 7 - .../linux_like/linux/gnu/b64/powerpc64/mod.rs | 107 ++++--- .../linux_like/linux/gnu/b64/riscv64/align.rs | 61 ---- .../linux_like/linux/gnu/b64/riscv64/mod.rs | 67 ++++- src/unix/linux_like/linux/gnu/b64/s390x.rs | 41 ++- .../linux_like/linux/gnu/b64/sparc64/align.rs | 7 - .../linux_like/linux/gnu/b64/sparc64/mod.rs | 56 ++-- .../linux_like/linux/gnu/b64/x86_64/align.rs | 24 -- .../linux_like/linux/gnu/b64/x86_64/mod.rs | 28 +- .../linux/gnu/b64/x86_64/not_x32.rs | 92 +++--- .../linux_like/linux/gnu/b64/x86_64/x32.rs | 41 ++- src/unix/linux_like/linux/gnu/mod.rs | 22 +- src/unix/linux_like/linux/gnu/no_align.rs | 10 - src/unix/linux_like/linux/mod.rs | 275 +++++++++++++++--- .../linux_like/linux/musl/b32/arm/align.rs | 7 - src/unix/linux_like/linux/musl/b32/arm/mod.rs | 13 +- .../linux_like/linux/musl/b32/mips/align.rs | 7 - .../linux_like/linux/musl/b32/mips/mod.rs | 15 +- .../linux/musl/b32/riscv32/align.rs | 7 - .../linux_like/linux/musl/b32/riscv32/mod.rs | 15 +- .../linux_like/linux/musl/b32/x86/align.rs | 7 - src/unix/linux_like/linux/musl/b32/x86/mod.rs | 13 +- .../linux/musl/b64/aarch64/align.rs | 42 --- .../linux_like/linux/musl/b64/aarch64/mod.rs | 48 ++- .../linux/musl/b64/loongarch64/align.rs | 40 --- .../linux/musl/b64/loongarch64/mod.rs | 46 ++- .../linux/musl/b64/riscv64/align.rs | 61 ---- .../linux_like/linux/musl/b64/riscv64/mod.rs | 67 ++++- .../linux_like/linux/musl/b64/x86_64/align.rs | 25 -- .../linux_like/linux/musl/b64/x86_64/mod.rs | 28 +- src/unix/linux_like/linux/no_align.rs | 162 ----------- src/unix/linux_like/linux/uclibc/align.rs | 28 -- src/unix/linux_like/linux/uclibc/arm/align.rs | 13 - src/unix/linux_like/linux/uclibc/arm/mod.rs | 22 +- .../linux_like/linux/uclibc/arm/no_align.rs | 10 - .../linux/uclibc/mips/mips32/align.rs | 13 - .../linux/uclibc/mips/mips32/mod.rs | 22 +- .../linux/uclibc/mips/mips32/no_align.rs | 10 - .../linux/uclibc/mips/mips64/align.rs | 10 - .../linux/uclibc/mips/mips64/mod.rs | 19 +- .../linux/uclibc/mips/mips64/no_align.rs | 7 - src/unix/linux_like/linux/uclibc/mod.rs | 23 ++ src/unix/linux_like/linux/uclibc/no_align.rs | 53 ---- .../linux_like/linux/uclibc/x86_64/mod.rs | 10 +- src/unix/mod.rs | 24 +- src/unix/newlib/align.rs | 61 ---- src/unix/newlib/mod.rs | 87 ++++-- src/unix/newlib/no_align.rs | 51 ---- src/unix/no_align.rs | 16 - src/unix/solarish/mod.rs | 6 +- src/windows/gnu/align.rs | 19 -- src/windows/gnu/mod.rs | 27 +- 112 files changed, 1839 insertions(+), 2867 deletions(-) delete mode 100644 src/fuchsia/align.rs delete mode 100644 src/fuchsia/no_align.rs delete mode 100644 src/unix/align.rs delete mode 100644 src/unix/bsd/apple/b32/align.rs delete mode 100644 src/unix/bsd/apple/b64/aarch64/align.rs delete mode 100644 src/unix/bsd/apple/b64/align.rs delete mode 100644 src/unix/bsd/apple/b64/x86_64/align.rs delete mode 100644 src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs delete mode 100644 src/unix/hurd/no_align.rs delete mode 100644 src/unix/linux_like/android/b32/x86/align.rs delete mode 100644 src/unix/linux_like/android/b64/aarch64/align.rs delete mode 100644 src/unix/linux_like/android/b64/riscv64/align.rs delete mode 100644 src/unix/linux_like/android/b64/x86_64/align.rs delete mode 100644 src/unix/linux_like/emscripten/align.rs delete mode 100644 src/unix/linux_like/emscripten/no_align.rs delete mode 100644 src/unix/linux_like/linux/align.rs delete mode 100644 src/unix/linux_like/linux/gnu/align.rs delete mode 100644 src/unix/linux_like/linux/gnu/b32/arm/align.rs delete mode 100644 src/unix/linux_like/linux/gnu/b32/csky/align.rs delete mode 100644 src/unix/linux_like/linux/gnu/b32/m68k/align.rs delete mode 100644 src/unix/linux_like/linux/gnu/b32/mips/align.rs delete mode 100644 src/unix/linux_like/linux/gnu/b32/riscv32/align.rs delete mode 100644 src/unix/linux_like/linux/gnu/b32/sparc/align.rs delete mode 100644 src/unix/linux_like/linux/gnu/b32/x86/align.rs delete mode 100644 src/unix/linux_like/linux/gnu/b64/aarch64/align.rs delete mode 100644 src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs delete mode 100644 src/unix/linux_like/linux/gnu/b64/mips64/align.rs delete mode 100644 src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs delete mode 100644 src/unix/linux_like/linux/gnu/b64/riscv64/align.rs delete mode 100644 src/unix/linux_like/linux/gnu/b64/sparc64/align.rs delete mode 100644 src/unix/linux_like/linux/gnu/b64/x86_64/align.rs delete mode 100644 src/unix/linux_like/linux/gnu/no_align.rs delete mode 100644 src/unix/linux_like/linux/musl/b32/arm/align.rs delete mode 100644 src/unix/linux_like/linux/musl/b32/mips/align.rs delete mode 100644 src/unix/linux_like/linux/musl/b32/riscv32/align.rs delete mode 100644 src/unix/linux_like/linux/musl/b32/x86/align.rs delete mode 100644 src/unix/linux_like/linux/musl/b64/aarch64/align.rs delete mode 100644 src/unix/linux_like/linux/musl/b64/loongarch64/align.rs delete mode 100644 src/unix/linux_like/linux/musl/b64/riscv64/align.rs delete mode 100644 src/unix/linux_like/linux/musl/b64/x86_64/align.rs delete mode 100644 src/unix/linux_like/linux/no_align.rs delete mode 100644 src/unix/linux_like/linux/uclibc/align.rs delete mode 100644 src/unix/linux_like/linux/uclibc/arm/align.rs delete mode 100644 src/unix/linux_like/linux/uclibc/arm/no_align.rs delete mode 100644 src/unix/linux_like/linux/uclibc/mips/mips32/align.rs delete mode 100644 src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs delete mode 100644 src/unix/linux_like/linux/uclibc/mips/mips64/align.rs delete mode 100644 src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs delete mode 100644 src/unix/linux_like/linux/uclibc/no_align.rs delete mode 100644 src/unix/newlib/align.rs delete mode 100644 src/unix/newlib/no_align.rs delete mode 100644 src/unix/no_align.rs delete mode 100644 src/windows/gnu/align.rs diff --git a/Cargo.toml b/Cargo.toml index e90df4bd98c56..393db74cc2d8e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -139,10 +139,13 @@ rustc-std-workspace-core = { version = "1.0.0", optional = true } [features] default = ["std"] std = [] -align = [] rustc-dep-of-std = ['align', 'rustc-std-workspace-core'] extra_traits = [] const-extern-fn = [] + +# `align` is deprecated and no longer does anything +align = [] + # use_std is deprecated, use `std` instead use_std = ['std'] diff --git a/build.rs b/build.rs index 241c489d9a183..4edad7f740077 100644 --- a/build.rs +++ b/build.rs @@ -14,7 +14,6 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ "freebsd13", "freebsd14", "freebsd15", - "libc_align", "libc_cfg_target_vendor", "libc_const_extern_fn", "libc_const_extern_fn_unstable", @@ -51,7 +50,6 @@ fn main() { let (rustc_minor_ver, is_nightly) = rustc_minor_nightly(); let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); - let 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() || rustc_minor_ver >= 80; @@ -96,11 +94,6 @@ fn main() { set_cfg("libc_deny_warnings"); } - // Rust >= 1.25 supports repr(align): - if rustc_minor_ver >= 25 || rustc_dep_of_std || align_cargo_feature { - set_cfg("libc_align"); - } - // Rust >= 1.26 supports i128 and u128: if rustc_minor_ver >= 26 || rustc_dep_of_std { set_cfg("libc_int128"); diff --git a/libc-test/build.rs b/libc-test/build.rs index d4a2d9cfaa3cd..01907dff90652 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -67,12 +67,7 @@ fn do_ctest() { fn ctest_cfg() -> ctest::TestGenerator { let mut cfg = ctest::TestGenerator::new(); - let libc_cfgs = [ - "libc_align", - "libc_core_cvoid", - "libc_packedN", - "libc_thread_local", - ]; + let libc_cfgs = ["libc_core_cvoid", "libc_packedN", "libc_thread_local"]; for f in &libc_cfgs { cfg.cfg(f, None); } diff --git a/src/fuchsia/align.rs b/src/fuchsia/align.rs deleted file mode 100644 index 3409bf0c61955..0000000000000 --- a/src/fuchsia/align.rs +++ /dev/null @@ -1,142 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - #[cfg_attr( - any( - target_pointer_width = "32", - target_arch = "x86_64" - ), - repr(align(4)))] - #[cfg_attr( - not(any( - target_pointer_width = "32", - target_arch = "x86_64" - )), - repr(align(8)))] - pub struct pthread_mutexattr_t { - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] - pub struct pthread_rwlockattr_t { - size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], - } - - #[repr(align(4))] - pub struct pthread_condattr_t { - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - } - - s_no_extra_traits! { - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "arm", - target_arch = "x86_64")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "arm", - target_arch = "x86_64"))), - repr(align(8)))] - pub struct pthread_mutex_t { - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "arm", - target_arch = "x86_64")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "arm", - target_arch = "x86_64"))), - repr(align(8)))] - pub struct pthread_rwlock_t { - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] - #[cfg_attr(target_arch = "x86", - repr(align(4)))] - #[cfg_attr(not(target_arch = "x86"), - repr(align(8)))] - pub struct pthread_cond_t { - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - } - - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for pthread_cond_t { - fn eq(&self, other: &pthread_cond_t) -> bool { - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_cond_t {} - impl ::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_cond_t") - // FIXME: .field("size", &self.size) - .finish() - } - } - impl ::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - - impl PartialEq for pthread_mutex_t { - fn eq(&self, other: &pthread_mutex_t) -> bool { - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_mutex_t {} - impl ::fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_mutex_t") - // FIXME: .field("size", &self.size) - .finish() - } - } - impl ::hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - - impl PartialEq for pthread_rwlock_t { - fn eq(&self, other: &pthread_rwlock_t) -> bool { - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_rwlock_t {} - impl ::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_rwlock_t") - // FIXME: .field("size", &self.size) - .finish() - } - } - impl ::hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - } - } - }; -} diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index f3bba75e69b5f..5495ce9549b10 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -697,7 +697,7 @@ s! { pub direction: ::__u16, pub trigger: ff_trigger, pub replay: ff_replay, - // FIXME this is actually a union + // FIXME(1.0): this is actually a union #[cfg(target_pointer_width = "64")] pub u: [u64; 4], #[cfg(target_pointer_width = "32")] @@ -882,6 +882,35 @@ s! { pub ipi6_addr: ::in6_addr, pub ipi6_ifindex: ::c_uint, } + + #[cfg_attr( + any( + target_pointer_width = "32", + target_arch = "x86_64" + ), + repr(align(4)))] + #[cfg_attr( + not(any( + target_pointer_width = "32", + target_arch = "x86_64" + )), + repr(align(8)))] + pub struct pthread_mutexattr_t { + size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + } + + #[cfg_attr(target_pointer_width = "32", + repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", + repr(align(8)))] + pub struct pthread_rwlockattr_t { + size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], + } + + #[repr(align(4))] + pub struct pthread_condattr_t { + size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + } } s_no_extra_traits! { @@ -979,6 +1008,42 @@ s_no_extra_traits! { pub sigev_notify_attributes: *mut pthread_attr_t, pub __pad: [::c_char; 56 - 3 * 8 /* 8 == sizeof(long) */], } + + #[cfg_attr(all(target_pointer_width = "32", + any(target_arch = "arm", + target_arch = "x86_64")), + repr(align(4)))] + #[cfg_attr(any(target_pointer_width = "64", + not(any(target_arch = "arm", + target_arch = "x86_64"))), + repr(align(8)))] + pub struct pthread_mutex_t { + size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], + } + + #[cfg_attr(all(target_pointer_width = "32", + any(target_arch = "arm", + target_arch = "x86_64")), + repr(align(4)))] + #[cfg_attr(any(target_pointer_width = "64", + not(any(target_arch = "arm", + target_arch = "x86_64"))), + repr(align(8)))] + pub struct pthread_rwlock_t { + size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], + } + + #[cfg_attr(target_pointer_width = "32", + repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", + repr(align(8)))] + #[cfg_attr(target_arch = "x86", + repr(align(4)))] + #[cfg_attr(not(target_arch = "x86"), + repr(align(8)))] + pub struct pthread_cond_t { + size: [u8; ::__SIZEOF_PTHREAD_COND_T], + } } cfg_if! { @@ -1306,6 +1371,72 @@ cfg_if! { self.sigev_notify_attributes.hash(state); } } + + impl PartialEq for pthread_cond_t { + fn eq(&self, other: &pthread_cond_t) -> bool { + self.size + .iter() + .zip(other.size.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for pthread_cond_t {} + impl ::fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_cond_t") + // FIXME: .field("size", &self.size) + .finish() + } + } + impl ::hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { + self.size.hash(state); + } + } + + impl PartialEq for pthread_mutex_t { + fn eq(&self, other: &pthread_mutex_t) -> bool { + self.size + .iter() + .zip(other.size.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for pthread_mutex_t {} + impl ::fmt::Debug for pthread_mutex_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_mutex_t") + // FIXME: .field("size", &self.size) + .finish() + } + } + impl ::hash::Hash for pthread_mutex_t { + fn hash(&self, state: &mut H) { + self.size.hash(state); + } + } + + impl PartialEq for pthread_rwlock_t { + fn eq(&self, other: &pthread_rwlock_t) -> bool { + self.size + .iter() + .zip(other.size.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for pthread_rwlock_t {} + impl ::fmt::Debug for pthread_rwlock_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_rwlock_t") + // FIXME: .field("size", &self.size) + .finish() + } + } + impl ::hash::Hash for pthread_rwlock_t { + fn hash(&self, state: &mut H) { + self.size.hash(state); + } + } } } @@ -2315,17 +2446,15 @@ pub const RTLD_NOW: ::c_int = 0x2; pub const TCP_MD5SIG: ::c_int = 14; -align_const! { - pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - size: [0; __SIZEOF_PTHREAD_MUTEX_T], - }; - pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - size: [0; __SIZEOF_PTHREAD_COND_T], - }; - pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - size: [0; __SIZEOF_PTHREAD_RWLOCK_T], - }; -} +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + size: [0; __SIZEOF_PTHREAD_MUTEX_T], +}; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + size: [0; __SIZEOF_PTHREAD_COND_T], +}; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + size: [0; __SIZEOF_PTHREAD_RWLOCK_T], +}; pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; @@ -4362,17 +4491,6 @@ cfg_if! { } } -cfg_if! { - if #[cfg(libc_align)] { - #[macro_use] - mod align; - } else { - #[macro_use] - mod no_align; - } -} -expand_align!(); - cfg_if! { if #[cfg(libc_core_cvoid)] { pub use ::ffi::c_void; diff --git a/src/fuchsia/no_align.rs b/src/fuchsia/no_align.rs deleted file mode 100644 index 7ca90e0e48a39..0000000000000 --- a/src/fuchsia/no_align.rs +++ /dev/null @@ -1,129 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - pub struct pthread_mutexattr_t { - #[cfg(target_arch = "x86_64")] - __align: [::c_int; 0], - #[cfg(not(target_arch = "x86_64"))] - __align: [::c_long; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - pub struct pthread_rwlockattr_t { - __align: [::c_long; 0], - size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], - } - - pub struct pthread_condattr_t { - __align: [::c_int; 0], - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - } - - s_no_extra_traits! { - pub struct pthread_mutex_t { - #[cfg(any(target_arch = "arm", - all(target_arch = "x86_64", - target_pointer_width = "32")))] - __align: [::c_long; 0], - #[cfg(not(any(target_arch = "arm", - all(target_arch = "x86_64", - target_pointer_width = "32"))))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - pub struct pthread_rwlock_t { - __align: [::c_long; 0], - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - pub struct pthread_cond_t { - __align: [*const ::c_void; 0], - #[cfg(not(target_env = "musl"))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - } - - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for pthread_cond_t { - fn eq(&self, other: &pthread_cond_t) -> bool { - // Ignore __align field - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_cond_t {} - impl ::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_cond_t") - // Ignore __align field - // FIXME: .field("size", &self.size) - .finish() - } - } - impl ::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { - // Ignore __align field - self.size.hash(state); - } - } - - impl PartialEq for pthread_mutex_t { - fn eq(&self, other: &pthread_mutex_t) -> bool { - // Ignore __align field - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_mutex_t {} - impl ::fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_mutex_t") - // Ignore __align field - // FIXME: .field("size", &self.size) - .finish() - } - } - impl ::hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { - // Ignore __align field - self.size.hash(state); - } - } - - impl PartialEq for pthread_rwlock_t { - fn eq(&self, other: &pthread_rwlock_t) -> bool { - // Ignore __align field - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_rwlock_t {} - impl ::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_rwlock_t") - // Ignore __align field - // FIXME: .field("size", &self.size) - .finish() - } - } - impl ::hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { - // Ignore __align field - self.size.hash(state); - } - } - } - } - }; -} diff --git a/src/macros.rs b/src/macros.rs index 4124b8d7b4c7c..6d728d078d85f 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -278,24 +278,6 @@ macro_rules! __item { }; } -macro_rules! align_const { - ($($(#[$attr:meta])* - pub const $name:ident : $t1:ty - = $t2:ident { $($field:tt)* };)*) => ($( - #[cfg(libc_align)] - $(#[$attr])* - pub const $name : $t1 = $t2 { - $($field)* - }; - #[cfg(not(libc_align))] - $(#[$attr])* - pub const $name : $t1 = $t2 { - $($field)* - __align: [], - }; - )*) -} - // This macro is used to deprecate items that should be accessed via the mach2 crate macro_rules! deprecated_mach { (pub const $id:ident: $ty:ty = $expr:expr;) => { diff --git a/src/unix/align.rs b/src/unix/align.rs deleted file mode 100644 index 2e7c954ccff7a..0000000000000 --- a/src/unix/align.rs +++ /dev/null @@ -1,14 +0,0 @@ -s! { - #[repr(align(4))] - pub struct in6_addr { - pub s6_addr: [u8; 16], - } -} - -pub const IN6ADDR_LOOPBACK_INIT: in6_addr = in6_addr { - s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], -}; - -pub const IN6ADDR_ANY_INIT: in6_addr = in6_addr { - s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], -}; diff --git a/src/unix/bsd/apple/b32/align.rs b/src/unix/bsd/apple/b32/align.rs deleted file mode 100644 index ca1fe1ce29944..0000000000000 --- a/src/unix/bsd/apple/b32/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 2] - } -} diff --git a/src/unix/bsd/apple/b32/mod.rs b/src/unix/bsd/apple/b32/mod.rs index 4e45459c18101..a340b0f1350ab 100644 --- a/src/unix/bsd/apple/b32/mod.rs +++ b/src/unix/bsd/apple/b32/mod.rs @@ -59,6 +59,12 @@ s_no_extra_traits! { __sig: c_long, __opaque: [::c_char; ::__PTHREAD_ONCE_SIZE__], } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 2] + } } cfg_if! { @@ -145,10 +151,3 @@ extern "C" { options: ::c_ulong, ) -> ::c_int; } - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/bsd/apple/b64/aarch64/align.rs b/src/unix/bsd/apple/b64/aarch64/align.rs deleted file mode 100644 index 131e15b69ad94..0000000000000 --- a/src/unix/bsd/apple/b64/aarch64/align.rs +++ /dev/null @@ -1,55 +0,0 @@ -pub type mcontext_t = *mut __darwin_mcontext64; - -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - pub struct max_align_t { - priv_: f64 - } -} - -s! { - pub struct ucontext_t { - pub uc_onstack: ::c_int, - pub uc_sigmask: ::sigset_t, - pub uc_stack: ::stack_t, - pub uc_link: *mut ::ucontext_t, - pub uc_mcsize: usize, - pub uc_mcontext: mcontext_t, - } - - pub struct __darwin_mcontext64 { - pub __es: __darwin_arm_exception_state64, - pub __ss: __darwin_arm_thread_state64, - pub __ns: __darwin_arm_neon_state64, - } - - pub struct __darwin_arm_exception_state64 { - pub __far: u64, - pub __esr: u32, - pub __exception: u32, - } - - pub struct __darwin_arm_thread_state64 { - pub __x: [u64; 29], - pub __fp: u64, - pub __lr: u64, - pub __sp: u64, - pub __pc: u64, - pub __cpsr: u32, - pub __pad: u32, - } - - // This type natively uses a uint128, but for a while we hacked - // it in with repr(align) and `[u64; 2]`. uint128 isn't available - // all the way back to our earliest supported versions so we - // preserver the old shim. - #[cfg_attr(not(libc_int128), repr(align(16)))] - pub struct __darwin_arm_neon_state64 { - #[cfg(libc_int128)] - pub __v: [::__uint128_t; 32], - #[cfg(not(libc_int128))] - pub __v: [[u64; 2]; 32], - pub __fpsr: u32, - pub __fpcr: u32, - } -} diff --git a/src/unix/bsd/apple/b64/aarch64/mod.rs b/src/unix/bsd/apple/b64/aarch64/mod.rs index 79e9ac842f9ca..1d4a5590fbf36 100644 --- a/src/unix/bsd/apple/b64/aarch64/mod.rs +++ b/src/unix/bsd/apple/b64/aarch64/mod.rs @@ -1,14 +1,60 @@ pub type boolean_t = ::c_int; +pub type mcontext_t = *mut __darwin_mcontext64; s! { pub struct malloc_zone_t { __private: [::uintptr_t; 18], // FIXME: needs arm64 auth pointers support } + + pub struct ucontext_t { + pub uc_onstack: ::c_int, + pub uc_sigmask: ::sigset_t, + pub uc_stack: ::stack_t, + pub uc_link: *mut ::ucontext_t, + pub uc_mcsize: usize, + pub uc_mcontext: mcontext_t, + } + + pub struct __darwin_mcontext64 { + pub __es: __darwin_arm_exception_state64, + pub __ss: __darwin_arm_thread_state64, + pub __ns: __darwin_arm_neon_state64, + } + + pub struct __darwin_arm_exception_state64 { + pub __far: u64, + pub __esr: u32, + pub __exception: u32, + } + + pub struct __darwin_arm_thread_state64 { + pub __x: [u64; 29], + pub __fp: u64, + pub __lr: u64, + pub __sp: u64, + pub __pc: u64, + pub __cpsr: u32, + pub __pad: u32, + } + + // This type natively uses a uint128, but for a while we hacked + // it in with repr(align) and `[u64; 2]`. uint128 isn't available + // all the way back to our earliest supported versions so we + // preserver the old shim. + #[cfg_attr(not(libc_int128), repr(align(16)))] + pub struct __darwin_arm_neon_state64 { + #[cfg(libc_int128)] + pub __v: [::__uint128_t; 32], + #[cfg(not(libc_int128))] + pub __v: [[u64; 2]; 32], + pub __fpsr: u32, + pub __fpcr: u32, + } } -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + pub struct max_align_t { + priv_: f64 } } diff --git a/src/unix/bsd/apple/b64/align.rs b/src/unix/bsd/apple/b64/align.rs deleted file mode 100644 index ca1fe1ce29944..0000000000000 --- a/src/unix/bsd/apple/b64/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 2] - } -} diff --git a/src/unix/bsd/apple/b64/x86_64/align.rs b/src/unix/bsd/apple/b64/x86_64/align.rs deleted file mode 100644 index ca1fe1ce29944..0000000000000 --- a/src/unix/bsd/apple/b64/x86_64/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 2] - } -} diff --git a/src/unix/bsd/apple/b64/x86_64/mod.rs b/src/unix/bsd/apple/b64/x86_64/mod.rs index 653650c26289f..a613ccb389e45 100644 --- a/src/unix/bsd/apple/b64/x86_64/mod.rs +++ b/src/unix/bsd/apple/b64/x86_64/mod.rs @@ -172,9 +172,10 @@ s! { } } -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 2] } } diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index efde59bc8d32e..efac489dcfc30 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1143,7 +1143,7 @@ s! { pub nativeattr: attribute_set_t, } - #[cfg_attr(libc_align, repr(align(8)))] + #[repr(align(8))] pub struct tcp_connection_info { pub tcpi_state: u8, pub tcpi_snd_wscale: u8, diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 3f8dfea55665e..41bcc6f4be549 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1632,7 +1632,6 @@ s_no_extra_traits! { pub struct ucontext_t { pub uc_sigmask: ::sigset_t, - #[cfg(libc_align)] pub uc_mcontext: ::mcontext_t, pub uc_link: *mut ::ucontext_t, pub uc_stack: ::stack_t, @@ -2597,8 +2596,7 @@ cfg_if! { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("ucontext_t") .field("uc_sigmask", &self.uc_sigmask) - // FIXME: enable when libc_align is dropped - // .field("uc_mcontext", &self.uc_mcontext) + .field("uc_mcontext", &self.uc_mcontext) .field("uc_link", &self.uc_link) .field("uc_stack", &self.uc_stack) .field("uc_flags", &self.uc_flags) diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs index 0f4f0dffee4cd..e37272680d43c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs @@ -7,27 +7,23 @@ pub type time_t = i64; pub type suseconds_t = i32; pub type register_t = i32; -cfg_if! { - if #[cfg(libc_align)] { - s_no_extra_traits! { - #[repr(align(16))] - pub struct mcontext_t { - pub mc_vers: ::c_int, - pub mc_flags: ::c_int, - pub mc_onstack: ::c_int, - pub mc_len: ::c_int, - pub mc_avec: [u64; 64], - pub mc_av: [u32; 2], - pub mc_frame: [::register_t; 42], - pub mc_fpreg: [u64; 33], - pub mc_vsxfpreg: [u64; 32], - } - } +s_no_extra_traits! { + #[repr(align(16))] + pub struct mcontext_t { + pub mc_vers: ::c_int, + pub mc_flags: ::c_int, + pub mc_onstack: ::c_int, + pub mc_len: ::c_int, + pub mc_avec: [u64; 64], + pub mc_av: [u32; 2], + pub mc_frame: [::register_t; 42], + pub mc_fpreg: [u64; 33], + pub mc_vsxfpreg: [u64; 32], } } cfg_if! { - if #[cfg(all(libc_align, feature = "extra_traits"))] { + if #[cfg(feature = "extra_traits")] { impl PartialEq for mcontext_t { fn eq(&self, other: &mcontext_t) -> bool { self.mc_vers == other.mc_vers && diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs index c1577f5194e57..372639f1d1cce 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs @@ -7,27 +7,23 @@ pub type time_t = i64; pub type suseconds_t = i64; pub type register_t = i64; -cfg_if! { - if #[cfg(libc_align)] { - s_no_extra_traits! { - #[repr(align(16))] - pub struct mcontext_t { - pub mc_vers: ::c_int, - pub mc_flags: ::c_int, - pub mc_onstack: ::c_int, - pub mc_len: ::c_int, - pub mc_avec: [u64; 64], - pub mc_av: [u32; 2], - pub mc_frame: [::register_t; 42], - pub mc_fpreg: [u64; 33], - pub mc_vsxfpreg: [u64; 32], - } - } +s_no_extra_traits! { + #[repr(align(16))] + pub struct mcontext_t { + pub mc_vers: ::c_int, + pub mc_flags: ::c_int, + pub mc_onstack: ::c_int, + pub mc_len: ::c_int, + pub mc_avec: [u64; 64], + pub mc_av: [u32; 2], + pub mc_frame: [::register_t; 42], + pub mc_fpreg: [u64; 33], + pub mc_vsxfpreg: [u64; 32], } } cfg_if! { - if #[cfg(all(libc_align, feature = "extra_traits"))] { + if #[cfg(feature = "extra_traits")] { impl PartialEq for mcontext_t { fn eq(&self, other: &mcontext_t) -> bool { self.mc_vers == other.mc_vers && diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index 9d5122846362d..fb995c635658d 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -7,48 +7,44 @@ pub type time_t = i32; pub type suseconds_t = i32; pub type register_t = i32; -cfg_if! { - if #[cfg(libc_align)] { - s_no_extra_traits! { - #[repr(align(16))] - 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; 128], - 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_no_extra_traits! { + #[repr(align(16))] + 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; 128], + 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], } } cfg_if! { - if #[cfg(all(libc_align, feature = "extra_traits"))] { + if #[cfg(feature = "extra_traits")] { impl PartialEq for mcontext_t { fn eq(&self, other: &mcontext_t) -> bool { self.mc_onstack == other.mc_onstack && diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs deleted file mode 100644 index 208e7f2c90c0a..0000000000000 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs +++ /dev/null @@ -1,186 +0,0 @@ -use {c_long, register_t}; - -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4] - } - - #[repr(align(16))] - pub struct mcontext_t { - pub mc_onstack: register_t, - pub mc_rdi: register_t, - pub mc_rsi: register_t, - pub mc_rdx: register_t, - pub mc_rcx: register_t, - pub mc_r8: register_t, - pub mc_r9: register_t, - pub mc_rax: register_t, - pub mc_rbx: register_t, - pub mc_rbp: register_t, - pub mc_r10: register_t, - pub mc_r11: register_t, - pub mc_r12: register_t, - pub mc_r13: register_t, - pub mc_r14: register_t, - pub mc_r15: register_t, - pub mc_trapno: u32, - pub mc_fs: u16, - pub mc_gs: u16, - pub mc_addr: register_t, - pub mc_flags: u32, - pub mc_es: u16, - pub mc_ds: u16, - pub mc_err: register_t, - pub mc_rip: register_t, - pub mc_cs: register_t, - pub mc_rflags: register_t, - pub mc_rsp: register_t, - pub mc_ss: register_t, - pub mc_len: c_long, - pub mc_fpformat: c_long, - pub mc_ownedfp: c_long, - pub mc_fpstate: [c_long; 64], - pub mc_fsbase: register_t, - pub mc_gsbase: register_t, - pub mc_xfpustate: register_t, - pub mc_xfpustate_len: register_t, - pub mc_spare: [c_long; 4], - } -} - -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_rdi == other.mc_rdi && - self.mc_rsi == other.mc_rsi && - self.mc_rdx == other.mc_rdx && - self.mc_rcx == other.mc_rcx && - self.mc_r8 == other.mc_r8 && - self.mc_r9 == other.mc_r9 && - self.mc_rax == other.mc_rax && - self.mc_rbx == other.mc_rbx && - self.mc_rbp == other.mc_rbp && - self.mc_r10 == other.mc_r10 && - self.mc_r11 == other.mc_r11 && - self.mc_r12 == other.mc_r12 && - self.mc_r13 == other.mc_r13 && - self.mc_r14 == other.mc_r14 && - self.mc_r15 == other.mc_r15 && - self.mc_trapno == other.mc_trapno && - self.mc_fs == other.mc_fs && - self.mc_gs == other.mc_gs && - self.mc_addr == other.mc_addr && - self.mc_flags == other.mc_flags && - self.mc_es == other.mc_es && - self.mc_ds == other.mc_ds && - self.mc_err == other.mc_err && - self.mc_rip == other.mc_rip && - self.mc_cs == other.mc_cs && - self.mc_rflags == other.mc_rflags && - self.mc_rsp == other.mc_rsp && - 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_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_spare == other.mc_spare - } - } - 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_rdi", &self.mc_rdi) - .field("mc_rsi", &self.mc_rsi) - .field("mc_rdx", &self.mc_rdx) - .field("mc_rcx", &self.mc_rcx) - .field("mc_r8", &self.mc_r8) - .field("mc_r9", &self.mc_r9) - .field("mc_rax", &self.mc_rax) - .field("mc_rbx", &self.mc_rbx) - .field("mc_rbp", &self.mc_rbp) - .field("mc_r10", &self.mc_r10) - .field("mc_r11", &self.mc_r11) - .field("mc_r12", &self.mc_r12) - .field("mc_r13", &self.mc_r13) - .field("mc_r14", &self.mc_r14) - .field("mc_r15", &self.mc_r15) - .field("mc_trapno", &self.mc_trapno) - .field("mc_fs", &self.mc_fs) - .field("mc_gs", &self.mc_gs) - .field("mc_addr", &self.mc_addr) - .field("mc_flags", &self.mc_flags) - .field("mc_es", &self.mc_es) - .field("mc_ds", &self.mc_ds) - .field("mc_err", &self.mc_err) - .field("mc_rip", &self.mc_rip) - .field("mc_cs", &self.mc_cs) - .field("mc_rflags", &self.mc_rflags) - .field("mc_rsp", &self.mc_rsp) - .field("mc_ss", &self.mc_ss) - .field("mc_len", &self.mc_len) - .field("mc_fpformat", &self.mc_fpformat) - .field("mc_ownedfp", &self.mc_ownedfp) - // FIXME: .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_spare", &self.mc_spare) - .finish() - } - } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { - self.mc_onstack.hash(state); - self.mc_rdi.hash(state); - self.mc_rsi.hash(state); - self.mc_rdx.hash(state); - self.mc_rcx.hash(state); - self.mc_r8.hash(state); - self.mc_r9.hash(state); - self.mc_rax.hash(state); - self.mc_rbx.hash(state); - self.mc_rbp.hash(state); - self.mc_r10.hash(state); - self.mc_r11.hash(state); - self.mc_r12.hash(state); - self.mc_r13.hash(state); - self.mc_r14.hash(state); - self.mc_r15.hash(state); - self.mc_trapno.hash(state); - self.mc_fs.hash(state); - self.mc_gs.hash(state); - self.mc_addr.hash(state); - self.mc_flags.hash(state); - self.mc_es.hash(state); - self.mc_ds.hash(state); - self.mc_err.hash(state); - self.mc_rip.hash(state); - self.mc_cs.hash(state); - self.mc_rflags.hash(state); - self.mc_rsp.hash(state); - self.mc_ss.hash(state); - self.mc_len.hash(state); - self.mc_fpformat.hash(state); - self.mc_ownedfp.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_spare.hash(state); - } - } - } -} diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index 327e0ad78fadb..1e61db61c7cd3 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -92,6 +92,54 @@ s_no_extra_traits! { pub a_type: ::c_long, pub a_un: __c_anonymous_elf64_auxv_union, } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } + + #[repr(align(16))] + pub struct mcontext_t { + pub mc_onstack: register_t, + pub mc_rdi: register_t, + pub mc_rsi: register_t, + pub mc_rdx: register_t, + pub mc_rcx: register_t, + pub mc_r8: register_t, + pub mc_r9: register_t, + pub mc_rax: register_t, + pub mc_rbx: register_t, + pub mc_rbp: register_t, + pub mc_r10: register_t, + pub mc_r11: register_t, + pub mc_r12: register_t, + pub mc_r13: register_t, + pub mc_r14: register_t, + pub mc_r15: register_t, + pub mc_trapno: u32, + pub mc_fs: u16, + pub mc_gs: u16, + pub mc_addr: register_t, + pub mc_flags: u32, + pub mc_es: u16, + pub mc_ds: u16, + pub mc_err: register_t, + pub mc_rip: register_t, + pub mc_cs: register_t, + pub mc_rflags: register_t, + pub mc_rsp: register_t, + pub mc_ss: register_t, + pub mc_len: c_long, + pub mc_fpformat: c_long, + pub mc_ownedfp: c_long, + pub mc_fpstate: [c_long; 64], + pub mc_fsbase: register_t, + pub mc_gsbase: register_t, + pub mc_xfpustate: register_t, + pub mc_xfpustate_len: register_t, + pub mc_spare: [c_long; 4], + } } cfg_if! { @@ -216,6 +264,138 @@ cfg_if! { .finish() } } + + + impl PartialEq for mcontext_t { + fn eq(&self, other: &mcontext_t) -> bool { + self.mc_onstack == other.mc_onstack && + self.mc_rdi == other.mc_rdi && + self.mc_rsi == other.mc_rsi && + self.mc_rdx == other.mc_rdx && + self.mc_rcx == other.mc_rcx && + self.mc_r8 == other.mc_r8 && + self.mc_r9 == other.mc_r9 && + self.mc_rax == other.mc_rax && + self.mc_rbx == other.mc_rbx && + self.mc_rbp == other.mc_rbp && + self.mc_r10 == other.mc_r10 && + self.mc_r11 == other.mc_r11 && + self.mc_r12 == other.mc_r12 && + self.mc_r13 == other.mc_r13 && + self.mc_r14 == other.mc_r14 && + self.mc_r15 == other.mc_r15 && + self.mc_trapno == other.mc_trapno && + self.mc_fs == other.mc_fs && + self.mc_gs == other.mc_gs && + self.mc_addr == other.mc_addr && + self.mc_flags == other.mc_flags && + self.mc_es == other.mc_es && + self.mc_ds == other.mc_ds && + self.mc_err == other.mc_err && + self.mc_rip == other.mc_rip && + self.mc_cs == other.mc_cs && + self.mc_rflags == other.mc_rflags && + self.mc_rsp == other.mc_rsp && + 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_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_spare == other.mc_spare + } + } + 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_rdi", &self.mc_rdi) + .field("mc_rsi", &self.mc_rsi) + .field("mc_rdx", &self.mc_rdx) + .field("mc_rcx", &self.mc_rcx) + .field("mc_r8", &self.mc_r8) + .field("mc_r9", &self.mc_r9) + .field("mc_rax", &self.mc_rax) + .field("mc_rbx", &self.mc_rbx) + .field("mc_rbp", &self.mc_rbp) + .field("mc_r10", &self.mc_r10) + .field("mc_r11", &self.mc_r11) + .field("mc_r12", &self.mc_r12) + .field("mc_r13", &self.mc_r13) + .field("mc_r14", &self.mc_r14) + .field("mc_r15", &self.mc_r15) + .field("mc_trapno", &self.mc_trapno) + .field("mc_fs", &self.mc_fs) + .field("mc_gs", &self.mc_gs) + .field("mc_addr", &self.mc_addr) + .field("mc_flags", &self.mc_flags) + .field("mc_es", &self.mc_es) + .field("mc_ds", &self.mc_ds) + .field("mc_err", &self.mc_err) + .field("mc_rip", &self.mc_rip) + .field("mc_cs", &self.mc_cs) + .field("mc_rflags", &self.mc_rflags) + .field("mc_rsp", &self.mc_rsp) + .field("mc_ss", &self.mc_ss) + .field("mc_len", &self.mc_len) + .field("mc_fpformat", &self.mc_fpformat) + .field("mc_ownedfp", &self.mc_ownedfp) + // FIXME: .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_spare", &self.mc_spare) + .finish() + } + } + impl ::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { + self.mc_onstack.hash(state); + self.mc_rdi.hash(state); + self.mc_rsi.hash(state); + self.mc_rdx.hash(state); + self.mc_rcx.hash(state); + self.mc_r8.hash(state); + self.mc_r9.hash(state); + self.mc_rax.hash(state); + self.mc_rbx.hash(state); + self.mc_rbp.hash(state); + self.mc_r10.hash(state); + self.mc_r11.hash(state); + self.mc_r12.hash(state); + self.mc_r13.hash(state); + self.mc_r14.hash(state); + self.mc_r15.hash(state); + self.mc_trapno.hash(state); + self.mc_fs.hash(state); + self.mc_gs.hash(state); + self.mc_addr.hash(state); + self.mc_flags.hash(state); + self.mc_es.hash(state); + self.mc_ds.hash(state); + self.mc_err.hash(state); + self.mc_rip.hash(state); + self.mc_cs.hash(state); + self.mc_rflags.hash(state); + self.mc_rsp.hash(state); + self.mc_ss.hash(state); + self.mc_len.hash(state); + self.mc_fpformat.hash(state); + self.mc_ownedfp.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_spare.hash(state); + } + } } } @@ -241,10 +421,3 @@ pub const _MC_FPOWNED_PCB: c_long = 0x20002; pub const KINFO_FILE_SIZE: ::c_int = 1392; pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/hurd/no_align.rs b/src/unix/hurd/no_align.rs deleted file mode 100644 index 1dd7d8e541d29..0000000000000 --- a/src/unix/hurd/no_align.rs +++ /dev/null @@ -1 +0,0 @@ -// Placeholder file diff --git a/src/unix/linux_like/android/b32/x86/align.rs b/src/unix/linux_like/android/b32/x86/align.rs deleted file mode 100644 index 04df4a05d19b7..0000000000000 --- a/src/unix/linux_like/android/b32/x86/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: [f64; 2] - } -} diff --git a/src/unix/linux_like/android/b32/x86/mod.rs b/src/unix/linux_like/android/b32/x86/mod.rs index 4b2adda3d5018..a6b9f4c6288a1 100644 --- a/src/unix/linux_like/android/b32/x86/mod.rs +++ b/src/unix/linux_like/android/b32/x86/mod.rs @@ -49,6 +49,12 @@ s_no_extra_traits! { __padding_rt_sigset: u32, __fpregs_mem: _libc_fpstate, } + + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: [f64; 2] + } } cfg_if! { @@ -614,10 +620,3 @@ f! { ::syscall(SYS_socketcall, SYS_ACCEPT4, args[..].as_mut_ptr()) } } - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/android/b64/aarch64/align.rs b/src/unix/linux_like/android/b64/aarch64/align.rs deleted file mode 100644 index 9832303d7ac46..0000000000000 --- a/src/unix/linux_like/android/b64/aarch64/align.rs +++ /dev/null @@ -1,31 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f32; 8] - } - - #[allow(missing_debug_implementations)] - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, - pub __pad: [u8; 1024 / 8 - ::core::mem::size_of::<::sigset_t>()], - pub uc_mcontext: mcontext_t, - } -} - -s! { - #[repr(align(16))] - pub struct mcontext_t { - pub fault_address: ::c_ulonglong, - pub regs: [::c_ulonglong; 31], - pub sp: ::c_ulonglong, - pub pc: ::c_ulonglong, - pub pstate: ::c_ulonglong, - // nested arrays to get the right size/length while being able to - // auto-derive traits like Debug - __reserved: [[u64; 32]; 16], - } -} diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index bd3146deb7f9f..d063c022bfb7e 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -55,6 +55,34 @@ s! { pub pc: u64, pub pstate: u64, } + + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + } + + #[repr(align(16))] + pub struct mcontext_t { + pub fault_address: ::c_ulonglong, + pub regs: [::c_ulonglong; 31], + pub sp: ::c_ulonglong, + pub pc: ::c_ulonglong, + pub pstate: ::c_ulonglong, + // nested arrays to get the right size/length while being able to + // auto-derive traits like Debug + __reserved: [[u64; 32]; 16], + } +} + +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f32; 8] + } } pub const O_DIRECT: ::c_int = 0x10000; @@ -421,13 +449,6 @@ pub const PROT_MTE: ::c_int = 0x20; pub const AT_SYSINFO_EHDR: ::c_ulong = 33; pub const AT_VECTOR_SIZE_ARCH: ::c_ulong = 2; -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} - cfg_if! { if #[cfg(libc_int128)] { mod int128; diff --git a/src/unix/linux_like/android/b64/riscv64/align.rs b/src/unix/linux_like/android/b64/riscv64/align.rs deleted file mode 100644 index 8e949963a637f..0000000000000 --- a/src/unix/linux_like/android/b64/riscv64/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f32; 8] - } -} diff --git a/src/unix/linux_like/android/b64/riscv64/mod.rs b/src/unix/linux_like/android/b64/riscv64/mod.rs index 209f050f25ce5..6e8dfca0a6c50 100644 --- a/src/unix/linux_like/android/b64/riscv64/mod.rs +++ b/src/unix/linux_like/android/b64/riscv64/mod.rs @@ -51,6 +51,14 @@ s! { } } +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f32; 8] + } +} + pub const O_DIRECT: ::c_int = 0x40000; pub const O_DIRECTORY: ::c_int = 0x200000; pub const O_NOFOLLOW: ::c_int = 0x400000; @@ -356,10 +364,3 @@ pub const AT_L2_CACHEGEOMETRY: ::c_ulong = 45; pub const AT_L3_CACHESIZE: ::c_ulong = 46; pub const AT_L3_CACHEGEOMETRY: ::c_ulong = 47; pub const AT_VECTOR_SIZE_ARCH: ::c_ulong = 9; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/android/b64/x86_64/align.rs b/src/unix/linux_like/android/b64/x86_64/align.rs deleted file mode 100644 index 7ca870fd02b71..0000000000000 --- a/src/unix/linux_like/android/b64/x86_64/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4] - } -} diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index 4fcfb2c4d005b..6bc616c8d0b17 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -109,6 +109,12 @@ s_no_extra_traits! { uc_sigmask: ::sigset_t, uc_sigmask64: ::sigset64_t, } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } } cfg_if! { @@ -793,10 +799,3 @@ pub const REG_CR2: ::c_int = 22; // From NDK's asm/auxvec.h pub const AT_SYSINFO_EHDR: ::c_ulong = 33; pub const AT_VECTOR_SIZE_ARCH: ::c_ulong = 3; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 076fd7decf24b..b91104f7b80c6 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -468,7 +468,7 @@ s! { pub direction: ::__u16, pub trigger: ff_trigger, pub replay: ff_replay, - // FIXME this is actually a union + // FIXME(1.0): this is actually a union #[cfg(target_pointer_width = "64")] pub u: [u64; 4], #[cfg(target_pointer_width = "32")] diff --git a/src/unix/linux_like/emscripten/align.rs b/src/unix/linux_like/emscripten/align.rs deleted file mode 100644 index 015690eedae45..0000000000000 --- a/src/unix/linux_like/emscripten/align.rs +++ /dev/null @@ -1,74 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - #[allow(missing_debug_implementations)] - #[repr(align(4))] - pub struct pthread_mutex_t { - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - #[repr(align(4))] - pub struct pthread_rwlock_t { - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - #[repr(align(4))] - pub struct pthread_mutexattr_t { - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - #[repr(align(4))] - pub struct pthread_rwlockattr_t { - size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], - } - - #[repr(align(4))] - pub struct pthread_condattr_t { - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - } - - s_no_extra_traits! { - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] - pub struct pthread_cond_t { - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: [f64; 3] - } - - } - - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for pthread_cond_t { - fn eq(&self, other: &pthread_cond_t) -> bool { - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_cond_t {} - impl ::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_cond_t") - // FIXME: .field("size", &self.size) - .finish() - } - } - impl ::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - } - } - }; -} diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 5fe0ed0933012..6049dff3787d5 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -313,6 +313,32 @@ s! { pub updated: ::c_ulong, pub ha: [::c_uchar; ::MAX_ADDR_LEN], } + + #[allow(missing_debug_implementations)] + #[repr(align(4))] + pub struct pthread_mutex_t { + size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], + } + + #[repr(align(4))] + pub struct pthread_rwlock_t { + size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], + } + + #[repr(align(4))] + pub struct pthread_mutexattr_t { + size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + } + + #[repr(align(4))] + pub struct pthread_rwlockattr_t { + size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], + } + + #[repr(align(4))] + pub struct pthread_condattr_t { + size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + } } s_no_extra_traits! { @@ -348,6 +374,20 @@ s_no_extra_traits! { pub mq_curmsgs: ::c_long, pad: [::c_long; 4] } + + #[cfg_attr(target_pointer_width = "32", + repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", + repr(align(8)))] + pub struct pthread_cond_t { + size: [u8; ::__SIZEOF_PTHREAD_COND_T], + } + + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: [f64; 3] + } } cfg_if! { @@ -476,6 +516,28 @@ cfg_if! { self.mq_curmsgs.hash(state); } } + + impl PartialEq for pthread_cond_t { + fn eq(&self, other: &pthread_cond_t) -> bool { + self.size + .iter() + .zip(other.size.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for pthread_cond_t {} + impl ::fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_cond_t") + // FIXME: .field("size", &self.size) + .finish() + } + } + impl ::hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { + self.size.hash(state); + } + } } } @@ -768,17 +830,15 @@ pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; pub const RTLD_NODELETE: ::c_int = 0x1000; pub const RTLD_NOW: ::c_int = 0x2; -align_const! { - pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - size: [0; __SIZEOF_PTHREAD_MUTEX_T], - }; - pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - size: [0; __SIZEOF_PTHREAD_COND_T], - }; - pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - size: [0; __SIZEOF_PTHREAD_RWLOCK_T], - }; -} +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + size: [0; __SIZEOF_PTHREAD_MUTEX_T], +}; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + size: [0; __SIZEOF_PTHREAD_COND_T], +}; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + size: [0; __SIZEOF_PTHREAD_RWLOCK_T], +}; pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; @@ -1592,14 +1652,3 @@ extern "C" { // Alias to 64 to mimic glibc's LFS64 support mod lfs64; pub use self::lfs64::*; - -cfg_if! { - if #[cfg(libc_align)] { - #[macro_use] - mod align; - } else { - #[macro_use] - mod no_align; - } -} -expand_align!(); diff --git a/src/unix/linux_like/emscripten/no_align.rs b/src/unix/linux_like/emscripten/no_align.rs deleted file mode 100644 index 768dc73a434f6..0000000000000 --- a/src/unix/linux_like/emscripten/no_align.rs +++ /dev/null @@ -1,63 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - pub struct pthread_mutex_t { - __align: [::c_long; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - pub struct pthread_rwlock_t { - __align: [::c_long; 0], - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - pub struct pthread_mutexattr_t { - __align: [::c_int; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - pub struct pthread_rwlockattr_t { - __align: [::c_int; 0], - size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], - } - - pub struct pthread_condattr_t { - __align: [::c_int; 0], - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - } - - s_no_extra_traits! { - pub struct pthread_cond_t { - __align: [*const ::c_void; 0], - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - } - - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for pthread_cond_t { - fn eq(&self, other: &pthread_cond_t) -> bool { - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_cond_t {} - impl ::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_cond_t") - // FIXME: .field("size", &self.size) - .finish() - } - } - impl ::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - } - } - }; -} diff --git a/src/unix/linux_like/linux/align.rs b/src/unix/linux_like/linux/align.rs deleted file mode 100644 index bd16e449bb22c..0000000000000 --- a/src/unix/linux_like/linux/align.rs +++ /dev/null @@ -1,223 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - #[cfg_attr(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "mips64r6", - target_arch = "s390x", - target_arch = "sparc64", - target_arch = "aarch64", - target_arch = "riscv64", - target_arch = "riscv32", - target_arch = "loongarch64"), - repr(align(4)))] - #[cfg_attr(not(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "mips64r6", - target_arch = "s390x", - target_arch = "sparc64", - target_arch = "aarch64", - target_arch = "riscv64", - target_arch = "riscv32", - target_arch = "loongarch64")), - repr(align(8)))] - pub struct pthread_mutexattr_t { - #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - #[cfg_attr(any(target_env = "musl", target_env = "ohos", target_pointer_width = "32"), - repr(align(4)))] - #[cfg_attr(all(not(target_env = "musl"), - not(target_env = "ohos"), - target_pointer_width = "64"), - repr(align(8)))] - pub struct pthread_rwlockattr_t { - #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], - } - - #[repr(align(4))] - pub struct pthread_condattr_t { - #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - - #[repr(align(4))] - pub struct pthread_barrierattr_t { - #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_BARRIERATTR_T], - } - - #[repr(align(8))] - pub struct fanotify_event_metadata { - pub event_len: __u32, - pub vers: __u8, - pub reserved: __u8, - pub metadata_len: __u16, - pub mask: __u64, - pub fd: ::c_int, - pub pid: ::c_int, - } - - #[repr(align(8))] - pub struct tpacket_rollover_stats { - pub tp_all: ::__u64, - pub tp_huge: ::__u64, - pub tp_failed: ::__u64, - } - - #[repr(align(8))] - pub struct tpacket_hdr_v1 { - pub block_status: ::__u32, - pub num_pkts: ::__u32, - pub offset_to_first_pkt: ::__u32, - pub blk_len: ::__u32, - pub seq_num: ::__u64, - pub ts_first_pkt: ::tpacket_bd_ts, - pub ts_last_pkt: ::tpacket_bd_ts, - } - } - - s_no_extra_traits! { - #[cfg_attr(all(any(target_env = "musl", target_env = "ohos"), - target_pointer_width = "32"), - repr(align(4)))] - #[cfg_attr(all(any(target_env = "musl", target_env = "ohos"), - target_pointer_width = "64"), - repr(align(8)))] - #[cfg_attr(all(not(any(target_env = "musl", target_env = "ohos")), - target_arch = "x86"), - repr(align(4)))] - #[cfg_attr(all(not(any(target_env = "musl", target_env = "ohos")), - not(target_arch = "x86")), - repr(align(8)))] - pub struct pthread_cond_t { - #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "csky", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "csky", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86"))), - repr(align(8)))] - pub struct pthread_mutex_t { - #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "csky", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86"))), - repr(align(8)))] - pub struct pthread_rwlock_t { - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "csky", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "csky", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86"))), - repr(align(8)))] - pub struct pthread_barrier_t { - size: [u8; ::__SIZEOF_PTHREAD_BARRIER_T], - } - - // linux/can.h - #[repr(align(8))] - #[allow(missing_debug_implementations)] - pub struct can_frame { - pub can_id: canid_t, - pub can_dlc: u8, - __pad: u8, - __res0: u8, - __res1: u8, - pub data: [u8; CAN_MAX_DLEN], - } - - #[repr(align(8))] - #[allow(missing_debug_implementations)] - pub struct canfd_frame { - pub can_id: canid_t, - pub len: u8, - pub flags: u8, - __res0: u8, - __res1: u8, - pub data: [u8; CANFD_MAX_DLEN], - } - - #[repr(align(8))] - #[allow(missing_debug_implementations)] - pub struct canxl_frame { - pub prio: canid_t, - pub flags: u8, - pub sdt: u8, - pub len: u16, - pub af: u32, - pub data: [u8; CANXL_MAX_DLEN], - } - } - }; -} diff --git a/src/unix/linux_like/linux/gnu/align.rs b/src/unix/linux_like/linux/gnu/align.rs deleted file mode 100644 index 4a0e07460ebb1..0000000000000 --- a/src/unix/linux_like/linux/gnu/align.rs +++ /dev/null @@ -1,13 +0,0 @@ -s! { - // FIXME this is actually a union - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] - pub struct sem_t { - #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], - #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], - } -} diff --git a/src/unix/linux_like/linux/gnu/b32/arm/align.rs b/src/unix/linux_like/linux/gnu/b32/arm/align.rs deleted file mode 100644 index 2645ec4c3d4f1..0000000000000 --- a/src/unix/linux_like/linux/gnu/b32/arm/align.rs +++ /dev/null @@ -1,53 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: [i64; 2] - } - - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: ::mcontext_t, - pub uc_sigmask: ::sigset_t, - pub uc_regspace: [::c_ulong; 128], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask == other.uc_sigmask - } - } - impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_link) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_sigmask", &self.uc_sigmask) - .finish() - } - } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask.hash(state); - } - } - } -} diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 4a14d692c8652..0037015a1821b 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -208,6 +208,60 @@ s! { } } +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: [i64; 2] + } + + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: ::mcontext_t, + pub uc_sigmask: ::sigset_t, + pub uc_regspace: [::c_ulong; 128], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for ucontext_t { + fn eq(&self, other: &ucontext_t) -> bool { + self.uc_flags == other.uc_flags + && self.uc_link == other.uc_link + && self.uc_stack == other.uc_stack + && self.uc_mcontext == other.uc_mcontext + && self.uc_sigmask == other.uc_sigmask + } + } + impl Eq for ucontext_t {} + impl ::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ucontext_t") + .field("uc_flags", &self.uc_link) + .field("uc_link", &self.uc_link) + .field("uc_stack", &self.uc_stack) + .field("uc_mcontext", &self.uc_mcontext) + .field("uc_sigmask", &self.uc_sigmask) + .finish() + } + } + impl ::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { + self.uc_flags.hash(state); + self.uc_link.hash(state); + self.uc_stack.hash(state); + self.uc_mcontext.hash(state); + self.uc_sigmask.hash(state); + } + } + } +} + pub const VEOF: usize = 4; pub const RTLD_DEEPBIND: ::c_int = 0x8; pub const RTLD_GLOBAL: ::c_int = 0x100; @@ -856,10 +910,3 @@ pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; pub const SYS_mseal: ::c_long = 462; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/gnu/b32/csky/align.rs b/src/unix/linux_like/linux/gnu/b32/csky/align.rs deleted file mode 100644 index 825546be90a91..0000000000000 --- a/src/unix/linux_like/linux/gnu/b32/csky/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: [i64; 2] - } -} diff --git a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs index 5e92e30073bee..feaef00803dc0 100644 --- a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs @@ -163,6 +163,14 @@ s! { } } +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: [i64; 2] + } +} + pub const VEOF: usize = 4; pub const RTLD_DEEPBIND: ::c_int = 0x8; pub const RTLD_GLOBAL: ::c_int = 0x100; @@ -732,10 +740,3 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/align.rs b/src/unix/linux_like/linux/gnu/b32/m68k/align.rs deleted file mode 100644 index 639394a309e3a..0000000000000 --- a/src/unix/linux_like/linux/gnu/b32/m68k/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(2))] - pub struct max_align_t { - priv_: [i8; 20] - } -} diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index 8ca7d3d214094..9b7c8d92e9a0e 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -156,6 +156,14 @@ s! { } } +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(2))] + pub struct max_align_t { + priv_: [i8; 20] + } +} + pub const VEOF: usize = 4; pub const RTLD_DEEPBIND: ::c_int = 0x8; pub const RTLD_GLOBAL: ::c_int = 0x100; diff --git a/src/unix/linux_like/linux/gnu/b32/mips/align.rs b/src/unix/linux_like/linux/gnu/b32/mips/align.rs deleted file mode 100644 index 8c228ebab72ce..0000000000000 --- a/src/unix/linux_like/linux/gnu/b32/mips/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: [f32; 4] - } -} diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index fa2707500dbe4..80b509bc574b5 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -155,6 +155,14 @@ s! { } } +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: [f32; 4] + } +} + pub const O_LARGEFILE: ::c_int = 0x2000; pub const SYS_syscall: ::c_long = 4000 + 0; @@ -810,10 +818,3 @@ pub const B3500000: ::speed_t = 0o010016; pub const B4000000: ::speed_t = 0o010017; pub const EHWPOISON: ::c_int = 168; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index d5b11347eb8b7..54c84fa617c86 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -263,56 +263,42 @@ cfg_if! { } } -align_const! { - #[cfg(target_endian = "little")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; -} +#[cfg(target_endian = "little")] +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "little")] +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "little")] +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; pub const PTRACE_GETFPREGS: ::c_uint = 14; pub const PTRACE_SETFPREGS: ::c_uint = 15; diff --git a/src/unix/linux_like/linux/gnu/b32/riscv32/align.rs b/src/unix/linux_like/linux/gnu/b32/riscv32/align.rs deleted file mode 100644 index 48d152a5721ec..0000000000000 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/align.rs +++ /dev/null @@ -1,44 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - pub struct ucontext_t { - pub __uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, - pub uc_mcontext: mcontext_t, - } - - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct mcontext_t { - pub __gregs: [::c_ulong; 32], - pub __fpregs: __riscv_mc_fp_state, - } - - #[allow(missing_debug_implementations)] - pub union __riscv_mc_fp_state { - pub __f: __riscv_mc_f_ext_state, - pub __d: __riscv_mc_d_ext_state, - pub __q: __riscv_mc_q_ext_state, - } - - #[allow(missing_debug_implementations)] - pub struct __riscv_mc_f_ext_state { - pub __f: [::c_uint; 32], - pub __fcsr: ::c_uint, - } - - #[allow(missing_debug_implementations)] - pub struct __riscv_mc_d_ext_state { - pub __f: [::c_ulonglong; 32], - pub __fcsr: ::c_uint, - } - - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct __riscv_mc_q_ext_state { - pub __f: [::c_ulonglong; 64], - pub __fcsr: ::c_uint, - pub __glibc_reserved: [::c_uint; 3], - } -} diff --git a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs index 65b7aaa783559..ad50112543fcd 100644 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -233,6 +233,51 @@ s! { } } +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + pub struct ucontext_t { + pub __uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct mcontext_t { + pub __gregs: [::c_ulong; 32], + pub __fpregs: __riscv_mc_fp_state, + } + + #[allow(missing_debug_implementations)] + pub union __riscv_mc_fp_state { + pub __f: __riscv_mc_f_ext_state, + pub __d: __riscv_mc_d_ext_state, + pub __q: __riscv_mc_q_ext_state, + } + + #[allow(missing_debug_implementations)] + pub struct __riscv_mc_f_ext_state { + pub __f: [::c_uint; 32], + pub __fcsr: ::c_uint, + } + + #[allow(missing_debug_implementations)] + pub struct __riscv_mc_d_ext_state { + pub __f: [::c_ulonglong; 32], + pub __fcsr: ::c_uint, + } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct __riscv_mc_q_ext_state { + pub __f: [::c_ulonglong; 64], + pub __fcsr: ::c_uint, + pub __glibc_reserved: [::c_uint; 3], + } +} + pub const O_LARGEFILE: ::c_int = 0; pub const VEOF: usize = 4; pub const RTLD_DEEPBIND: ::c_int = 0x8; @@ -804,10 +849,3 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/align.rs b/src/unix/linux_like/linux/gnu/b32/sparc/align.rs deleted file mode 100644 index 98fda883cd374..0000000000000 --- a/src/unix/linux_like/linux/gnu/b32/sparc/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: [i64; 3] - } -} diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index da9cf29c48668..702d1e03224ee 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -193,6 +193,14 @@ s! { } } +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: [i64; 3] + } +} + pub const VEOF: usize = 4; pub const RTLD_DEEPBIND: ::c_int = 0x8; pub const RTLD_GLOBAL: ::c_int = 0x100; @@ -848,10 +856,3 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/gnu/b32/x86/align.rs b/src/unix/linux_like/linux/gnu/b32/x86/align.rs deleted file mode 100644 index 96634749f53b2..0000000000000 --- a/src/unix/linux_like/linux/gnu/b32/x86/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 6] - } -} diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 4391eb3fa7968..539e13bac9b3a 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -264,6 +264,12 @@ s_no_extra_traits! { __private: [u8; 112], __ssp: [::c_ulong; 4], } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 6] + } } cfg_if! { @@ -1093,10 +1099,3 @@ extern "C" { pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> ::c_int; } - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs deleted file mode 100644 index a035773c716fe..0000000000000 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs +++ /dev/null @@ -1,51 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f32; 8] - } -} - -s! { - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, - pub uc_mcontext: mcontext_t, - } - - #[repr(align(16))] - pub struct mcontext_t { - pub fault_address: ::c_ulonglong, - pub regs: [::c_ulonglong; 31], - pub sp: ::c_ulonglong, - pub pc: ::c_ulonglong, - pub pstate: ::c_ulonglong, - // nested arrays to get the right size/length while being able to - // auto-derive traits like Debug - __reserved: [[u64; 32]; 16], - } - - #[repr(align(8))] - pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, - } -} - -extern "C" { - pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; - pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; - pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); - pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> ::c_int; -} diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs index 0848fb5880138..5a0785c13c7a8 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs @@ -10,55 +10,47 @@ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 48; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20; -align_const! { - #[cfg(target_endian = "little")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; -} +#[cfg(target_endian = "little")] +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, + ], +}; +#[cfg(target_endian = "little")] +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, + ], +}; +#[cfg(target_endian = "little")] +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, + ], +}; pub const SYS_sync_file_range2: ::c_long = 84; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs index 3802caf644fbe..efe3cc57e8a2f 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs @@ -10,62 +10,48 @@ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 8; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; -align_const! { - #[cfg(target_endian = "little")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - ], - }; -} +#[cfg(target_endian = "little")] +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "little")] +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "little")] +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; pub const SYS_renameat: ::c_long = 38; pub const SYS_sync_file_range: ::c_long = 84; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index c8a805cdd36cb..783200a6d6e9c 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -197,6 +197,48 @@ s! { pub ss_size: ::size_t } + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + } + + #[repr(align(16))] + pub struct mcontext_t { + pub fault_address: ::c_ulonglong, + pub regs: [::c_ulonglong; 31], + pub sp: ::c_ulonglong, + pub pc: ::c_ulonglong, + pub pstate: ::c_ulonglong, + // nested arrays to get the right size/length while being able to + // auto-derive traits like Debug + __reserved: [[u64; 32]; 16], + } + + #[repr(align(8))] + pub struct clone_args { + pub flags: ::c_ulonglong, + pub pidfd: ::c_ulonglong, + pub child_tid: ::c_ulonglong, + pub parent_tid: ::c_ulonglong, + pub exit_signal: ::c_ulonglong, + pub stack: ::c_ulonglong, + pub stack_size: ::c_ulonglong, + pub tls: ::c_ulonglong, + pub set_tid: ::c_ulonglong, + pub set_tid_size: ::c_ulonglong, + pub cgroup: ::c_ulonglong, + } +} + +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f32; 8] + } } pub const VEOF: usize = 4; @@ -906,6 +948,11 @@ extern "C" { newp: *mut ::c_void, newlen: ::size_t, ) -> ::c_int; + + pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; + pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; + pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); + pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> ::c_int; } cfg_if! { @@ -918,20 +965,11 @@ cfg_if! { } } -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } - - -} - cfg_if! { if #[cfg(libc_int128)] { mod int128; pub use self::int128::*; - } else if #[cfg(libc_align)] { + } else { mod fallback; pub use self::fallback::*; } diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs deleted file mode 100644 index dc191f51fdb1c..0000000000000 --- a/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs +++ /dev/null @@ -1,40 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4] - } -} - -s! { - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, - pub uc_mcontext: mcontext_t, - } - - #[repr(align(16))] - pub struct mcontext_t { - pub __pc: ::c_ulonglong, - pub __gregs: [::c_ulonglong; 32], - pub __flags: ::c_uint, - pub __extcontext: [::c_ulonglong; 0], - } - - #[repr(align(8))] - pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, - } -} diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs index ac3f88905f38e..29d40cc91bc39 100644 --- a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs @@ -204,6 +204,45 @@ s! { pub fcc: u64, pub fcsr: u32, } + + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + } + + #[repr(align(16))] + pub struct mcontext_t { + pub __pc: ::c_ulonglong, + pub __gregs: [::c_ulonglong; 32], + pub __flags: ::c_uint, + pub __extcontext: [::c_ulonglong; 0], + } + + #[repr(align(8))] + pub struct clone_args { + pub flags: ::c_ulonglong, + pub pidfd: ::c_ulonglong, + pub child_tid: ::c_ulonglong, + pub parent_tid: ::c_ulonglong, + pub exit_signal: ::c_ulonglong, + pub stack: ::c_ulonglong, + pub stack_size: ::c_ulonglong, + pub tls: ::c_ulonglong, + pub set_tid: ::c_ulonglong, + pub set_tid_size: ::c_ulonglong, + pub cgroup: ::c_ulonglong, + } +} + +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } } pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; @@ -213,56 +252,48 @@ pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; -align_const! { - #[cfg(target_endian = "little")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; -} +#[cfg(target_endian = "little")] +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "little")] +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "little")] +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; pub const HWCAP_LOONGARCH_CPUCFG: ::c_ulong = 1 << 0; pub const HWCAP_LOONGARCH_LAM: ::c_ulong = 1 << 1; @@ -891,10 +922,3 @@ pub const EPOLL_CLOEXEC: ::c_int = 0x80000; pub const EFD_CLOEXEC: ::c_int = 0x80000; pub const EFD_NONBLOCK: ::c_int = 0x800; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/align.rs b/src/unix/linux_like/linux/gnu/b64/mips64/align.rs deleted file mode 100644 index 7ca870fd02b71..0000000000000 --- a/src/unix/linux_like/linux/gnu/b64/mips64/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4] - } -} diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index f7b52be805cab..e1e2be19bc3ba 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -186,6 +186,14 @@ s! { } } +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } +} + pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; @@ -193,56 +201,48 @@ pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; -align_const! { - #[cfg(target_endian = "little")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; -} +#[cfg(target_endian = "little")] +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "little")] +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "little")] +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; pub const SYS_read: ::c_long = 5000 + 0; pub const SYS_write: ::c_long = 5000 + 1; @@ -925,10 +925,3 @@ extern "C" { newlen: ::size_t, ) -> ::c_int; } - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs deleted file mode 100644 index 29d1e1c7b8a55..0000000000000 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [i64; 4] - } -} diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index 3088c25a2646f..495c0b37e16c0 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -193,6 +193,14 @@ s! { } } +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [i64; 4] + } +} + pub const POSIX_FADV_DONTNEED: ::c_int = 4; pub const POSIX_FADV_NOREUSE: ::c_int = 5; @@ -405,56 +413,48 @@ pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -align_const! { - #[cfg(target_endian = "little")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; -} +#[cfg(target_endian = "little")] +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "little")] +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "little")] +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; pub const O_DIRECTORY: ::c_int = 0x4000; pub const O_NOFOLLOW: ::c_int = 0x8000; @@ -970,10 +970,3 @@ extern "C" { newlen: ::size_t, ) -> ::c_int; } - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs deleted file mode 100644 index 5b33f2375d39c..0000000000000 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs +++ /dev/null @@ -1,61 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - pub struct ucontext_t { - pub __uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, - pub uc_mcontext: mcontext_t, - } - - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct mcontext_t { - pub __gregs: [::c_ulong; 32], - pub __fpregs: __riscv_mc_fp_state, - } - - #[allow(missing_debug_implementations)] - pub union __riscv_mc_fp_state { - pub __f: __riscv_mc_f_ext_state, - pub __d: __riscv_mc_d_ext_state, - pub __q: __riscv_mc_q_ext_state, - } - - #[allow(missing_debug_implementations)] - pub struct __riscv_mc_f_ext_state { - pub __f: [::c_uint; 32], - pub __fcsr: ::c_uint, - } - - #[allow(missing_debug_implementations)] - pub struct __riscv_mc_d_ext_state { - pub __f: [::c_ulonglong; 32], - pub __fcsr: ::c_uint, - } - - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct __riscv_mc_q_ext_state { - pub __f: [::c_ulonglong; 64], - pub __fcsr: ::c_uint, - pub __glibc_reserved: [::c_uint; 3], - } -} - -s! { - #[repr(align(8))] - pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, - } -} diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index 64f5cf10f8583..ff001a86ff800 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -227,6 +227,66 @@ s! { pub t5: ::c_ulong, pub t6: ::c_ulong, } + + #[repr(align(8))] + pub struct clone_args { + pub flags: ::c_ulonglong, + pub pidfd: ::c_ulonglong, + pub child_tid: ::c_ulonglong, + pub parent_tid: ::c_ulonglong, + pub exit_signal: ::c_ulonglong, + pub stack: ::c_ulonglong, + pub stack_size: ::c_ulonglong, + pub tls: ::c_ulonglong, + pub set_tid: ::c_ulonglong, + pub set_tid_size: ::c_ulonglong, + pub cgroup: ::c_ulonglong, + } +} + +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + pub struct ucontext_t { + pub __uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct mcontext_t { + pub __gregs: [::c_ulong; 32], + pub __fpregs: __riscv_mc_fp_state, + } + + #[allow(missing_debug_implementations)] + pub union __riscv_mc_fp_state { + pub __f: __riscv_mc_f_ext_state, + pub __d: __riscv_mc_d_ext_state, + pub __q: __riscv_mc_q_ext_state, + } + + #[allow(missing_debug_implementations)] + pub struct __riscv_mc_f_ext_state { + pub __f: [::c_uint; 32], + pub __fcsr: ::c_uint, + } + + #[allow(missing_debug_implementations)] + pub struct __riscv_mc_d_ext_state { + pub __f: [::c_ulonglong; 32], + pub __fcsr: ::c_uint, + } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct __riscv_mc_q_ext_state { + pub __f: [::c_ulonglong; 64], + pub __fcsr: ::c_uint, + pub __glibc_reserved: [::c_uint; 3], + } } pub const POSIX_FADV_DONTNEED: ::c_int = 4; @@ -851,10 +911,3 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index e85429ef97bf6..6bf730106e4c2 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -294,29 +294,24 @@ pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; -align_const! { - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; -} +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; pub const EUCLEAN: ::c_int = 117; pub const ENOTNAM: ::c_int = 118; diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs deleted file mode 100644 index 29d1e1c7b8a55..0000000000000 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [i64; 4] - } -} diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs index de2f0d6e470f6..5d1f5e47415b2 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -196,6 +196,14 @@ s! { } } +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [i64; 4] + } +} + pub const POSIX_FADV_DONTNEED: ::c_int = 4; pub const POSIX_FADV_NOREUSE: ::c_int = 5; @@ -404,29 +412,24 @@ pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -align_const! { - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; -} +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; pub const O_DIRECTORY: ::c_int = 0o200000; pub const O_NOFOLLOW: ::c_int = 0o400000; @@ -922,10 +925,3 @@ extern "C" { newlen: ::size_t, ) -> ::c_int; } - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs deleted file mode 100644 index ba3075edd7e36..0000000000000 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs +++ /dev/null @@ -1,24 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4] - } -} - -s! { - #[repr(align(8))] - pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, - } -} diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index f66eb0409c596..eda6d2c2caba3 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -267,6 +267,21 @@ s! { pub flags: ::__u32, pub pad: ::__u32, } + + #[repr(align(8))] + pub struct clone_args { + pub flags: ::c_ulonglong, + pub pidfd: ::c_ulonglong, + pub child_tid: ::c_ulonglong, + pub parent_tid: ::c_ulonglong, + pub exit_signal: ::c_ulonglong, + pub stack: ::c_ulonglong, + pub stack_size: ::c_ulonglong, + pub tls: ::c_ulonglong, + pub set_tid: ::c_ulonglong, + pub set_tid_size: ::c_ulonglong, + pub cgroup: ::c_ulonglong, + } } s_no_extra_traits! { @@ -297,6 +312,12 @@ s_no_extra_traits! { // // __ssp: [::c_ulonglong; 4], } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } } cfg_if! { @@ -813,10 +834,3 @@ cfg_if! { pub use self::not_x32::*; } } - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs index 9b37907bbb28a..0c83fa13b4e5e 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs @@ -24,56 +24,48 @@ pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; -align_const! { - #[cfg(target_endian = "little")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; -} +#[cfg(target_endian = "little")] +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "little")] +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "little")] +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; +#[cfg(target_endian = "big")] +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], +}; // Syscall table diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs index 90745b1762335..55b85e9626807 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs @@ -24,29 +24,24 @@ pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 32; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 44; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20; -align_const! { - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; -} +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, + ], +}; +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, + ], +}; +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, + ], +}; // Syscall table diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 41a229ef9e83d..e6c7fb6e3ff20 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -502,6 +502,18 @@ s! { pub error: ::__s32, pub error_count: ::__u32, } + + // FIXME(1.0) this is actually a union + #[cfg_attr(target_pointer_width = "32", + repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", + repr(align(8)))] + pub struct sem_t { + #[cfg(target_pointer_width = "32")] + __size: [::c_char; 16], + #[cfg(target_pointer_width = "64")] + __size: [::c_char; 32], + } } impl siginfo_t { @@ -1623,13 +1635,3 @@ cfg_if! { // Unknown target_arch } } - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } else { - mod no_align; - pub use self::no_align::*; - } -} diff --git a/src/unix/linux_like/linux/gnu/no_align.rs b/src/unix/linux_like/linux/gnu/no_align.rs deleted file mode 100644 index e32bf673d140e..0000000000000 --- a/src/unix/linux_like/linux/gnu/no_align.rs +++ /dev/null @@ -1,10 +0,0 @@ -s! { - // FIXME this is actually a union - pub struct sem_t { - #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], - #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], - __align: [::c_long; 0], - } -} diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 99f3f45a9950b..28d29251769ca 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -390,7 +390,7 @@ s! { pub direction: ::__u16, pub trigger: ff_trigger, pub replay: ff_replay, - // FIXME this is actually a union + // FIXME(1.0): this is actually a union #[cfg(target_pointer_width = "64")] pub u: [u64; 4], #[cfg(target_pointer_width = "32")] @@ -889,6 +889,87 @@ s! { pub prefer_busy_poll: u8, pub __pad: u8, // Must be zero } + + #[cfg_attr(any(target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "mips64r6", + target_arch = "s390x", + target_arch = "sparc64", + target_arch = "aarch64", + target_arch = "riscv64", + target_arch = "riscv32", + target_arch = "loongarch64"), + repr(align(4)))] + #[cfg_attr(not(any(target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "mips64r6", + target_arch = "s390x", + target_arch = "sparc64", + target_arch = "aarch64", + target_arch = "riscv64", + target_arch = "riscv32", + target_arch = "loongarch64")), + repr(align(8)))] + pub struct pthread_mutexattr_t { + #[doc(hidden)] + size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + } + + #[cfg_attr(any(target_env = "musl", target_env = "ohos", target_pointer_width = "32"), + repr(align(4)))] + #[cfg_attr(all(not(target_env = "musl"), + not(target_env = "ohos"), + target_pointer_width = "64"), + repr(align(8)))] + pub struct pthread_rwlockattr_t { + #[doc(hidden)] + size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], + } + + #[repr(align(4))] + pub struct pthread_condattr_t { + #[doc(hidden)] + size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + } + + #[repr(align(4))] + pub struct pthread_barrierattr_t { + #[doc(hidden)] + size: [u8; ::__SIZEOF_PTHREAD_BARRIERATTR_T], + } + + #[repr(align(8))] + pub struct fanotify_event_metadata { + pub event_len: __u32, + pub vers: __u8, + pub reserved: __u8, + pub metadata_len: __u16, + pub mask: __u64, + pub fd: ::c_int, + pub pid: ::c_int, + } + + #[repr(align(8))] + pub struct tpacket_rollover_stats { + pub tp_all: ::__u64, + pub tp_huge: ::__u64, + pub tp_failed: ::__u64, + } + + #[repr(align(8))] + pub struct tpacket_hdr_v1 { + pub block_status: ::__u32, + pub num_pkts: ::__u32, + pub offset_to_first_pkt: ::__u32, + pub blk_len: ::__u32, + pub seq_num: ::__u64, + pub ts_first_pkt: ::tpacket_bd_ts, + pub ts_last_pkt: ::tpacket_bd_ts, + } } s_no_extra_traits! { @@ -1046,19 +1127,149 @@ s_no_extra_traits! { pub offset_to_priv: ::__u32, pub hdr: ::tpacket_bd_header_u, } -} -s_no_extra_traits! { + #[cfg_attr(all(any(target_env = "musl", target_env = "ohos"), + target_pointer_width = "32"), + repr(align(4)))] + #[cfg_attr(all(any(target_env = "musl", target_env = "ohos"), + target_pointer_width = "64"), + repr(align(8)))] + #[cfg_attr(all(not(any(target_env = "musl", target_env = "ohos")), + target_arch = "x86"), + repr(align(4)))] + #[cfg_attr(all(not(any(target_env = "musl", target_env = "ohos")), + not(target_arch = "x86")), + repr(align(8)))] + pub struct pthread_cond_t { + #[doc(hidden)] + size: [u8; ::__SIZEOF_PTHREAD_COND_T], + } + + #[cfg_attr(all(target_pointer_width = "32", + any(target_arch = "mips", + target_arch = "mips32r6", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "csky", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86")), + repr(align(4)))] + #[cfg_attr(any(target_pointer_width = "64", + not(any(target_arch = "mips", + target_arch = "mips32r6", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "csky", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86"))), + repr(align(8)))] + pub struct pthread_mutex_t { + #[doc(hidden)] + size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], + } + + #[cfg_attr(all(target_pointer_width = "32", + any(target_arch = "mips", + target_arch = "mips32r6", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "csky", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86")), + repr(align(4)))] + #[cfg_attr(any(target_pointer_width = "64", + not(any(target_arch = "mips", + target_arch = "mips32r6", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86"))), + repr(align(8)))] + pub struct pthread_rwlock_t { + size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], + } + + #[cfg_attr(all(target_pointer_width = "32", + any(target_arch = "mips", + target_arch = "mips32r6", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "csky", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86")), + repr(align(4)))] + #[cfg_attr(any(target_pointer_width = "64", + not(any(target_arch = "mips", + target_arch = "mips32r6", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "csky", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86"))), + repr(align(8)))] + pub struct pthread_barrier_t { + size: [u8; ::__SIZEOF_PTHREAD_BARRIER_T], + } + // linux/net_tstamp.h #[allow(missing_debug_implementations)] pub struct sock_txtime { pub clockid: ::clockid_t, pub flags: ::__u32, } -} -s_no_extra_traits! { // linux/can.h + #[repr(align(8))] + #[allow(missing_debug_implementations)] + pub struct can_frame { + pub can_id: canid_t, + pub can_dlc: u8, + __pad: u8, + __res0: u8, + __res1: u8, + pub data: [u8; CAN_MAX_DLEN], + } + + #[repr(align(8))] + #[allow(missing_debug_implementations)] + pub struct canfd_frame { + pub can_id: canid_t, + pub len: u8, + pub flags: u8, + __res0: u8, + __res1: u8, + pub data: [u8; CANFD_MAX_DLEN], + } + + #[repr(align(8))] + #[allow(missing_debug_implementations)] + pub struct canxl_frame { + pub prio: canid_t, + pub flags: u8, + pub sdt: u8, + pub len: u16, + pub af: u32, + pub data: [u8; CANXL_MAX_DLEN], + } + #[allow(missing_debug_implementations)] pub union __c_anonymous_sockaddr_can_can_addr { pub tp: __c_anonymous_sockaddr_can_tp, @@ -2252,17 +2463,16 @@ pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 6; pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 7; pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 8; -align_const! { - pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - size: [0; __SIZEOF_PTHREAD_MUTEX_T], - }; - pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - size: [0; __SIZEOF_PTHREAD_COND_T], - }; - pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - size: [0; __SIZEOF_PTHREAD_RWLOCK_T], - }; -} +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + size: [0; __SIZEOF_PTHREAD_MUTEX_T], +}; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + size: [0; __SIZEOF_PTHREAD_COND_T], +}; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + size: [0; __SIZEOF_PTHREAD_RWLOCK_T], +}; + pub const PTHREAD_BARRIER_SERIAL_THREAD: ::c_int = -1; pub const PTHREAD_ONCE_INIT: pthread_once_t = 0; pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; @@ -4572,19 +4782,15 @@ pub const CANXL_MAX_DLEN: usize = 2048; pub const CANXL_XLF: ::c_int = 0x80; pub const CANXL_SEC: ::c_int = 0x01; -cfg_if! { - if #[cfg(libc_align)] { - pub const CAN_MTU: usize = ::mem::size_of::(); - pub const CANFD_MTU: usize = ::mem::size_of::(); - pub const CANXL_MTU: usize = ::mem::size_of::(); - // FIXME: use `core::mem::offset_of!` once that is available - // https://github.com/rust-lang/rfcs/pull/3308 - // pub const CANXL_HDR_SIZE: usize = core::mem::offset_of!(canxl_frame, data); - pub const CANXL_HDR_SIZE: usize = 12; - pub const CANXL_MIN_MTU: usize = CANXL_HDR_SIZE + 64; - pub const CANXL_MAX_MTU: usize = CANXL_MTU; - } -} +pub const CAN_MTU: usize = ::mem::size_of::(); +pub const CANFD_MTU: usize = ::mem::size_of::(); +pub const CANXL_MTU: usize = ::mem::size_of::(); +// FIXME(offset_of): use `core::mem::offset_of!` once that is available +// https://github.com/rust-lang/rfcs/pull/3308 +// pub const CANXL_HDR_SIZE: usize = core::mem::offset_of!(canxl_frame, data); +pub const CANXL_HDR_SIZE: usize = 12; +pub const CANXL_MIN_MTU: usize = CANXL_HDR_SIZE + 64; +pub const CANXL_MAX_MTU: usize = CANXL_MTU; pub const CAN_RAW: ::c_int = 1; pub const CAN_BCM: ::c_int = 2; @@ -5978,17 +6184,6 @@ cfg_if! { mod arch; pub use self::arch::*; -cfg_if! { - if #[cfg(libc_align)] { - #[macro_use] - mod align; - } else { - #[macro_use] - mod no_align; - } -} -expand_align!(); - cfg_if! { if #[cfg(libc_non_exhaustive)] { mod non_exhaustive; diff --git a/src/unix/linux_like/linux/musl/b32/arm/align.rs b/src/unix/linux_like/linux/musl/b32/arm/align.rs deleted file mode 100644 index aedbf7a99eb1b..0000000000000 --- a/src/unix/linux_like/linux/musl/b32/arm/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: (i64, i64) - } -} diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index 4ac3e60d43079..115f1085704b4 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -186,6 +186,12 @@ s_no_extra_traits! { pub uc_sigmask: ::sigset_t, pub uc_regspace: [::c_ulonglong; 64], } + + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: (i64, i64) + } } cfg_if! { @@ -845,10 +851,3 @@ pub const SYS_mseal: ::c_long = 462; extern "C" { pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; } - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/musl/b32/mips/align.rs b/src/unix/linux_like/linux/musl/b32/mips/align.rs deleted file mode 100644 index 8c228ebab72ce..0000000000000 --- a/src/unix/linux_like/linux/musl/b32/mips/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: [f32; 4] - } -} diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index 2fb405bbc6ceb..a67fff7cfc728 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -163,6 +163,14 @@ s! { } } +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: [f32; 4] + } +} + pub const SIGSTKSZ: ::size_t = 8192; pub const MINSIGSTKSZ: ::size_t = 2048; @@ -779,10 +787,3 @@ pub const SYS_memfd_secret: ::c_long = 4000 + 447; pub const SYS_process_mrelease: ::c_long = 4000 + 448; pub const SYS_futex_waitv: ::c_long = 4000 + 449; pub const SYS_set_mempolicy_home_node: ::c_long = 4000 + 450; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/align.rs b/src/unix/linux_like/linux/musl/b32/riscv32/align.rs deleted file mode 100644 index 048268c96b7a7..0000000000000 --- a/src/unix/linux_like/linux/musl/b32/riscv32/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: (i64, f64) - } -} diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index f963f645a9f10..c71cc61584860 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -186,6 +186,14 @@ s! { } } +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: (i64, f64) + } +} + //pub const RLIM_INFINITY: ::rlim_t = !0; pub const VEOF: usize = 4; pub const RTLD_DEEPBIND: ::c_int = 0x8; @@ -789,10 +797,3 @@ pub const SYS_faccessat2: ::c_long = 439; pub const SYS_process_madvise: ::c_long = 440; pub const SYS_epoll_pwait2: ::c_long = 441; pub const SYS_mount_setattr: ::c_long = 442; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/musl/b32/x86/align.rs b/src/unix/linux_like/linux/musl/b32/x86/align.rs deleted file mode 100644 index 79544176a88c9..0000000000000 --- a/src/unix/linux_like/linux/musl/b32/x86/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: [f64; 3] - } -} diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 7fad04677f8a4..f8bf2694f4b4c 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -181,6 +181,12 @@ s_no_extra_traits! { pub uc_sigmask: ::sigset_t, __private: [u8; 112], } + + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: [f64; 3] + } } cfg_if! { @@ -960,10 +966,3 @@ pub const SS: ::c_int = 16; extern "C" { pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; } - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/align.rs b/src/unix/linux_like/linux/musl/b64/aarch64/align.rs deleted file mode 100644 index a4bf9bff4f147..0000000000000 --- a/src/unix/linux_like/linux/musl/b64/aarch64/align.rs +++ /dev/null @@ -1,42 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f32; 8] - } -} - -s! { - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, - pub uc_mcontext: mcontext_t, - } - - #[repr(align(16))] - pub struct mcontext_t { - pub fault_address: ::c_ulong, - pub regs: [::c_ulong; 31], - pub sp: ::c_ulong, - pub pc: ::c_ulong, - pub pstate: ::c_ulong, - __reserved: [[u64; 32]; 16], - } - - #[repr(align(8))] - pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, - } -} diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index 24e6b8419253a..7582676c3bfa6 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -68,6 +68,47 @@ s! { __unused1: ::c_ulong, __unused2: ::c_ulong, } + + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + } + + #[repr(align(16))] + pub struct mcontext_t { + pub fault_address: ::c_ulong, + pub regs: [::c_ulong; 31], + pub sp: ::c_ulong, + pub pc: ::c_ulong, + pub pstate: ::c_ulong, + __reserved: [[u64; 32]; 16], + } + + #[repr(align(8))] + pub struct clone_args { + pub flags: ::c_ulonglong, + pub pidfd: ::c_ulonglong, + pub child_tid: ::c_ulonglong, + pub parent_tid: ::c_ulonglong, + pub exit_signal: ::c_ulonglong, + pub stack: ::c_ulonglong, + pub stack_size: ::c_ulonglong, + pub tls: ::c_ulonglong, + pub set_tid: ::c_ulonglong, + pub set_tid_size: ::c_ulonglong, + pub cgroup: ::c_ulonglong, + } +} + +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f32; 8] + } } pub const O_APPEND: ::c_int = 1024; @@ -644,13 +685,6 @@ pub const IEXTEN: ::tcflag_t = 0x00008000; pub const TOSTOP: ::tcflag_t = 0x00000100; pub const FLUSHO: ::tcflag_t = 0x00001000; -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} - cfg_if! { if #[cfg(libc_int128)] { mod int128; diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs deleted file mode 100644 index dc191f51fdb1c..0000000000000 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs +++ /dev/null @@ -1,40 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4] - } -} - -s! { - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, - pub uc_mcontext: mcontext_t, - } - - #[repr(align(16))] - pub struct mcontext_t { - pub __pc: ::c_ulonglong, - pub __gregs: [::c_ulonglong; 32], - pub __flags: ::c_uint, - pub __extcontext: [::c_ulonglong; 0], - } - - #[repr(align(8))] - pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, - } -} diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index 59a824b237306..ac02803640e30 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -116,6 +116,45 @@ s! { pub fcc: u64, pub fcsr: u32, } + + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + } + + #[repr(align(16))] + pub struct mcontext_t { + pub __pc: ::c_ulonglong, + pub __gregs: [::c_ulonglong; 32], + pub __flags: ::c_uint, + pub __extcontext: [::c_ulonglong; 0], + } + + #[repr(align(8))] + pub struct clone_args { + pub flags: ::c_ulonglong, + pub pidfd: ::c_ulonglong, + pub child_tid: ::c_ulonglong, + pub parent_tid: ::c_ulonglong, + pub exit_signal: ::c_ulonglong, + pub stack: ::c_ulonglong, + pub stack_size: ::c_ulonglong, + pub tls: ::c_ulonglong, + pub set_tid: ::c_ulonglong, + pub set_tid_size: ::c_ulonglong, + pub cgroup: ::c_ulonglong, + } +} + +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } } pub const SYS_io_setup: ::c_long = 0; @@ -660,10 +699,3 @@ pub const VMIN: usize = 6; pub const IEXTEN: ::tcflag_t = 0x00008000; pub const TOSTOP: ::tcflag_t = 0x00000100; pub const FLUSHO: ::tcflag_t = 0x00001000; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/align.rs b/src/unix/linux_like/linux/musl/b64/riscv64/align.rs deleted file mode 100644 index 5b33f2375d39c..0000000000000 --- a/src/unix/linux_like/linux/musl/b64/riscv64/align.rs +++ /dev/null @@ -1,61 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - pub struct ucontext_t { - pub __uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, - pub uc_mcontext: mcontext_t, - } - - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct mcontext_t { - pub __gregs: [::c_ulong; 32], - pub __fpregs: __riscv_mc_fp_state, - } - - #[allow(missing_debug_implementations)] - pub union __riscv_mc_fp_state { - pub __f: __riscv_mc_f_ext_state, - pub __d: __riscv_mc_d_ext_state, - pub __q: __riscv_mc_q_ext_state, - } - - #[allow(missing_debug_implementations)] - pub struct __riscv_mc_f_ext_state { - pub __f: [::c_uint; 32], - pub __fcsr: ::c_uint, - } - - #[allow(missing_debug_implementations)] - pub struct __riscv_mc_d_ext_state { - pub __f: [::c_ulonglong; 32], - pub __fcsr: ::c_uint, - } - - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct __riscv_mc_q_ext_state { - pub __f: [::c_ulonglong; 64], - pub __fcsr: ::c_uint, - pub __glibc_reserved: [::c_uint; 3], - } -} - -s! { - #[repr(align(8))] - pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, - } -} diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index 393f54d3ff773..caa05ccc4f603 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -173,6 +173,66 @@ s! { __unused5: ::c_ulong, __unused6: ::c_ulong, } + + #[repr(align(8))] + pub struct clone_args { + pub flags: ::c_ulonglong, + pub pidfd: ::c_ulonglong, + pub child_tid: ::c_ulonglong, + pub parent_tid: ::c_ulonglong, + pub exit_signal: ::c_ulonglong, + pub stack: ::c_ulonglong, + pub stack_size: ::c_ulonglong, + pub tls: ::c_ulonglong, + pub set_tid: ::c_ulonglong, + pub set_tid_size: ::c_ulonglong, + pub cgroup: ::c_ulonglong, + } +} + +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + pub struct ucontext_t { + pub __uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct mcontext_t { + pub __gregs: [::c_ulong; 32], + pub __fpregs: __riscv_mc_fp_state, + } + + #[allow(missing_debug_implementations)] + pub union __riscv_mc_fp_state { + pub __f: __riscv_mc_f_ext_state, + pub __d: __riscv_mc_d_ext_state, + pub __q: __riscv_mc_q_ext_state, + } + + #[allow(missing_debug_implementations)] + pub struct __riscv_mc_f_ext_state { + pub __f: [::c_uint; 32], + pub __fcsr: ::c_uint, + } + + #[allow(missing_debug_implementations)] + pub struct __riscv_mc_d_ext_state { + pub __f: [::c_ulonglong; 32], + pub __fcsr: ::c_uint, + } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct __riscv_mc_q_ext_state { + pub __f: [::c_ulonglong; 64], + pub __fcsr: ::c_uint, + pub __glibc_reserved: [::c_uint; 3], + } } pub const SYS_read: ::c_long = 63; @@ -718,10 +778,3 @@ pub const REG_S1: usize = 9; pub const REG_A0: usize = 10; pub const REG_S2: usize = 18; pub const REG_NARGS: usize = 8; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/align.rs b/src/unix/linux_like/linux/musl/b64/x86_64/align.rs deleted file mode 100644 index 94391a01a727e..0000000000000 --- a/src/unix/linux_like/linux/musl/b64/x86_64/align.rs +++ /dev/null @@ -1,25 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4] - } - -} - -s! { - #[repr(align(8))] - pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, - } -} diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index dc617d42fe0cc..fcf07379ee81a 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -120,6 +120,21 @@ s! { __unused1: ::c_long, __unused2: ::c_long } + + #[repr(align(8))] + pub struct clone_args { + pub flags: ::c_ulonglong, + pub pidfd: ::c_ulonglong, + pub child_tid: ::c_ulonglong, + pub parent_tid: ::c_ulonglong, + pub exit_signal: ::c_ulonglong, + pub stack: ::c_ulonglong, + pub stack_size: ::c_ulonglong, + pub tls: ::c_ulonglong, + pub set_tid: ::c_ulonglong, + pub set_tid_size: ::c_ulonglong, + pub cgroup: ::c_ulonglong, + } } s_no_extra_traits! { @@ -145,6 +160,12 @@ s_no_extra_traits! { pub uc_sigmask: ::sigset_t, __private: [u8; 512], } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } } cfg_if! { @@ -908,10 +929,3 @@ pub const VMIN: usize = 6; pub const IEXTEN: ::tcflag_t = 0x00008000; pub const TOSTOP: ::tcflag_t = 0x00000100; pub const FLUSHO: ::tcflag_t = 0x00001000; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/unix/linux_like/linux/no_align.rs b/src/unix/linux_like/linux/no_align.rs deleted file mode 100644 index f81d046ccefb1..0000000000000 --- a/src/unix/linux_like/linux/no_align.rs +++ /dev/null @@ -1,162 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - pub struct pthread_mutexattr_t { - #[cfg(any(target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "mips64r6", - target_arch = "s390x", - target_arch = "sparc64", - target_arch = "riscv64", - target_arch = "riscv32", - target_arch = "loongarch64", - all(target_arch = "aarch64", - any(target_env = "musl", target_env = "ohos"))))] - __align: [::c_int; 0], - #[cfg(not(any(target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "mips64r6", - target_arch = "s390x", - target_arch = "sparc64", - target_arch = "riscv64", - target_arch = "riscv32", - target_arch = "loongarch64", - all(target_arch = "aarch64", - any(target_env = "musl", target_env = "ohos")))))] - __align: [::c_long; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - pub struct pthread_rwlockattr_t { - #[cfg(any(target_env = "musl", target_env = "ohos"))] - __align: [::c_int; 0], - #[cfg(not(any(target_env = "musl", target_env = "ohos")))] - __align: [::c_long; 0], - size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], - } - - pub struct pthread_condattr_t { - __align: [::c_int; 0], - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - - pub struct pthread_barrierattr_t { - __align: [::c_int; 0], - size: [u8; ::__SIZEOF_PTHREAD_BARRIERATTR_T], - } - - pub struct fanotify_event_metadata { - __align: [::c_long; 0], - pub event_len: __u32, - pub vers: __u8, - pub reserved: __u8, - pub metadata_len: __u16, - pub mask: __u64, - pub fd: ::c_int, - pub pid: ::c_int, - } - - pub struct tpacket_rollover_stats { - __align: [::c_long; 0], - pub tp_all: ::__u64, - pub tp_huge: ::__u64, - pub tp_failed: ::__u64, - } - - pub struct tpacket_hdr_v1 { - __align: [::c_long; 0], - pub block_status: ::__u32, - pub num_pkts: ::__u32, - pub offset_to_first_pkt: ::__u32, - pub blk_len: ::__u32, - pub seq_num: ::__u64, - pub ts_first_pkt: ::tpacket_bd_ts, - pub ts_last_pkt: ::tpacket_bd_ts, - } - } - - s_no_extra_traits! { - pub struct pthread_cond_t { - #[cfg(any(target_env = "musl", target_env = "ohos"))] - __align: [*const ::c_void; 0], - #[cfg(not(any(target_env = "musl", target_env = "ohos")))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - - pub struct pthread_mutex_t { - #[cfg(any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "m68k", - target_arch = "csky", - target_arch = "powerpc", - target_arch = "sparc", - all(target_arch = "x86_64", - target_pointer_width = "32")))] - __align: [::c_long; 0], - #[cfg(not(any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "m68k", - target_arch = "csky", - target_arch = "powerpc", - target_arch = "sparc", - all(target_arch = "x86_64", - target_pointer_width = "32"))))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - pub struct pthread_rwlock_t { - #[cfg(any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "m68k", - target_arch = "csky", - target_arch = "powerpc", - target_arch = "sparc", - all(target_arch = "x86_64", - target_pointer_width = "32")))] - __align: [::c_long; 0], - #[cfg(not(any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "m68k", - target_arch = "csky", - target_arch = "powerpc", - target_arch = "sparc", - all(target_arch = "x86_64", - target_pointer_width = "32"))))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - pub struct pthread_barrier_t { - #[cfg(any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "m68k", - target_arch = "csky", - target_arch = "powerpc", - target_arch = "sparc", - all(target_arch = "x86_64", - target_pointer_width = "32")))] - __align: [::c_long; 0], - #[cfg(not(any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "m68k", - target_arch = "csky", - target_arch = "powerpc", - target_arch = "sparc", - all(target_arch = "x86_64", - target_pointer_width = "32"))))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_BARRIER_T], - } - } - }; -} diff --git a/src/unix/linux_like/linux/uclibc/align.rs b/src/unix/linux_like/linux/uclibc/align.rs deleted file mode 100644 index e6610bb7b985c..0000000000000 --- a/src/unix/linux_like/linux/uclibc/align.rs +++ /dev/null @@ -1,28 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - #[cfg_attr(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "s390x", - target_arch = "sparc64"), - repr(align(4)))] - #[cfg_attr(not(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "s390x", - target_arch = "sparc64")), - repr(align(8)))] - pub struct pthread_mutexattr_t { - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - #[repr(align(4))] - pub struct pthread_condattr_t { - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - } - }; -} diff --git a/src/unix/linux_like/linux/uclibc/arm/align.rs b/src/unix/linux_like/linux/uclibc/arm/align.rs deleted file mode 100644 index 4a0e07460ebb1..0000000000000 --- a/src/unix/linux_like/linux/uclibc/arm/align.rs +++ /dev/null @@ -1,13 +0,0 @@ -s! { - // FIXME this is actually a union - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] - pub struct sem_t { - #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], - #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], - } -} diff --git a/src/unix/linux_like/linux/uclibc/arm/mod.rs b/src/unix/linux_like/linux/uclibc/arm/mod.rs index cff82f005acee..70b890d3eeab0 100644 --- a/src/unix/linux_like/linux/uclibc/arm/mod.rs +++ b/src/unix/linux_like/linux/uclibc/arm/mod.rs @@ -241,6 +241,18 @@ s! { __unused4: ::c_ulong, __unused5: ::c_ulong, } + + // FIXME(1.0) this is actually a union + #[cfg_attr(target_pointer_width = "32", + repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", + repr(align(8)))] + pub struct sem_t { + #[cfg(target_pointer_width = "32")] + __size: [::c_char; 16], + #[cfg(target_pointer_width = "64")] + __size: [::c_char; 32], + } } pub const O_CLOEXEC: ::c_int = 0o2000000; @@ -913,13 +925,3 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } else { - mod no_align; - pub use self::no_align::*; - } -} diff --git a/src/unix/linux_like/linux/uclibc/arm/no_align.rs b/src/unix/linux_like/linux/uclibc/arm/no_align.rs deleted file mode 100644 index e32bf673d140e..0000000000000 --- a/src/unix/linux_like/linux/uclibc/arm/no_align.rs +++ /dev/null @@ -1,10 +0,0 @@ -s! { - // FIXME this is actually a union - pub struct sem_t { - #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], - #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], - __align: [::c_long; 0], - } -} diff --git a/src/unix/linux_like/linux/uclibc/mips/mips32/align.rs b/src/unix/linux_like/linux/uclibc/mips/mips32/align.rs deleted file mode 100644 index 4a0e07460ebb1..0000000000000 --- a/src/unix/linux_like/linux/uclibc/mips/mips32/align.rs +++ /dev/null @@ -1,13 +0,0 @@ -s! { - // FIXME this is actually a union - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] - pub struct sem_t { - #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], - #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], - } -} diff --git a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs index a5aca85a3a741..0052ddb3d9597 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs @@ -254,6 +254,18 @@ s! { pub mem_unit: ::c_uint, pub _f: [::c_char; 8], } + + // FIXME(1.0): this is actually a union + #[cfg_attr(target_pointer_width = "32", + repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", + repr(align(8)))] + pub struct sem_t { + #[cfg(target_pointer_width = "32")] + __size: [::c_char; 16], + #[cfg(target_pointer_width = "64")] + __size: [::c_char; 32], + } } pub const __SIZEOF_PTHREAD_ATTR_T: usize = 36; @@ -680,13 +692,3 @@ extern "C" { cpuset: *const ::cpu_set_t, ) -> ::c_int; } - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } else { - mod no_align; - pub use self::no_align::*; - } -} diff --git a/src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs b/src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs deleted file mode 100644 index e32bf673d140e..0000000000000 --- a/src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs +++ /dev/null @@ -1,10 +0,0 @@ -s! { - // FIXME this is actually a union - pub struct sem_t { - #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], - #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], - __align: [::c_long; 0], - } -} diff --git a/src/unix/linux_like/linux/uclibc/mips/mips64/align.rs b/src/unix/linux_like/linux/uclibc/mips/mips64/align.rs deleted file mode 100644 index 21e21907d4a70..0000000000000 --- a/src/unix/linux_like/linux/uclibc/mips/mips64/align.rs +++ /dev/null @@ -1,10 +0,0 @@ -s! { - // FIXME this is actually a union - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] - pub struct sem_t { - __size: [::c_char; 32], - } -} diff --git a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs index 8ca100fcd268f..458dce029cd59 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs @@ -185,6 +185,15 @@ s! { pub mem_unit: ::c_uint, pub _f: [::c_char; 0], } + + // FIXME(1.0): this is actually a union + #[cfg_attr(target_pointer_width = "32", + repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", + repr(align(8)))] + pub struct sem_t { + __size: [::c_char; 32], + } } pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; @@ -195,13 +204,3 @@ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; pub const SYS_gettid: ::c_long = 5178; // Valid for n64 - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } else { - mod no_align; - pub use self::no_align::*; - } -} diff --git a/src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs b/src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs deleted file mode 100644 index 8909114cdfa42..0000000000000 --- a/src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s! { - // FIXME this is actually a union - pub struct sem_t { - __size: [::c_char; 32], - __align: [::c_long; 0], - } -} diff --git a/src/unix/linux_like/linux/uclibc/mod.rs b/src/unix/linux_like/linux/uclibc/mod.rs index 32c65545a8905..07bf7833720d1 100644 --- a/src/unix/linux_like/linux/uclibc/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mod.rs @@ -79,6 +79,29 @@ s! { pub flags: ::__u32, pub nr: ::__s32, } + + #[cfg_attr(any(target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "s390x", + target_arch = "sparc64"), + repr(align(4)))] + #[cfg_attr(not(any(target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "s390x", + target_arch = "sparc64")), + repr(align(8)))] + pub struct pthread_mutexattr_t { + size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + } + + #[repr(align(4))] + pub struct pthread_condattr_t { + size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + } } impl siginfo_t { diff --git a/src/unix/linux_like/linux/uclibc/no_align.rs b/src/unix/linux_like/linux/uclibc/no_align.rs deleted file mode 100644 index a73dbded57ac7..0000000000000 --- a/src/unix/linux_like/linux/uclibc/no_align.rs +++ /dev/null @@ -1,53 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - pub struct pthread_mutex_t { - #[cfg(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc"))] - __align: [::c_long; 0], - #[cfg(any(libc_align, - target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc"))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - pub struct pthread_rwlock_t { - #[cfg(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc"))] - __align: [::c_long; 0], - #[cfg(not(any( - target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc")))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - pub struct pthread_mutexattr_t { - #[cfg(any(target_arch = "x86_64", target_arch = "powerpc64", - target_arch = "mips64", target_arch = "s390x", - target_arch = "sparc64"))] - __align: [::c_int; 0], - #[cfg(not(any(target_arch = "x86_64", target_arch = "powerpc64", - target_arch = "mips64", target_arch = "s390x", - target_arch = "sparc64")))] - __align: [::c_long; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - pub struct pthread_cond_t { - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - - pub struct pthread_condattr_t { - __align: [::c_int; 0], - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - } - } -} diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index c504202f6d984..759fdbff15068 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -109,16 +109,16 @@ s! { pub sin6_scope_id: u32, } - // ------------------------------------------------------------ - // definitions below are *unverified* and might **break** the software + /* ------------------------------------------------------------ + * definitions below are *unverified* and might **break** the software + */ + // pub struct in_addr { // pub s_addr: in_addr_t, // } // // pub struct in6_addr { // pub s6_addr: [u8; 16], -// #[cfg(not(libc_align))] -// __align: [u32; 0], // } pub struct stat { @@ -264,7 +264,7 @@ s! { __val: [::c_int; 2], } - // FIXME this is actually a union + // FIXME(1.0): this is actually a union pub struct sem_t { #[cfg(target_pointer_width = "32")] __size: [::c_char; 16], diff --git a/src/unix/mod.rs b/src/unix/mod.rs index db60f8ef29ee4..1556c12726eb0 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -200,14 +200,28 @@ s! { pub p_aliases: *mut *mut ::c_char, pub p_proto: ::c_int, } + + #[repr(align(4))] + pub struct in6_addr { + pub s6_addr: [u8; 16], + } } pub const INT_MIN: c_int = -2147483648; pub const INT_MAX: c_int = 2147483647; +pub const IN6ADDR_LOOPBACK_INIT: in6_addr = in6_addr { + s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], +}; + +pub const IN6ADDR_ANY_INIT: in6_addr = in6_addr { + s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +}; + pub const SIG_DFL: sighandler_t = 0 as sighandler_t; pub const SIG_IGN: sighandler_t = 1 as sighandler_t; pub const SIG_ERR: sighandler_t = !0 as sighandler_t; + cfg_if! { if #[cfg(not(target_os = "nto"))] { pub const DT_UNKNOWN: u8 = 0; @@ -1709,13 +1723,3 @@ cfg_if! { } } } - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } else { - mod no_align; - pub use self::no_align::*; - } -} diff --git a/src/unix/newlib/align.rs b/src/unix/newlib/align.rs deleted file mode 100644 index db9beb83523c2..0000000000000 --- a/src/unix/newlib/align.rs +++ /dev/null @@ -1,61 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc"))), - repr(align(8)))] - pub struct pthread_mutex_t { // Unverified - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc"))), - repr(align(8)))] - pub struct pthread_rwlock_t { // Unverified - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - #[cfg_attr(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "s390x", - target_arch = "sparc64"), - repr(align(4)))] - #[cfg_attr(not(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "s390x", - target_arch = "sparc64")), - repr(align(8)))] - pub struct pthread_mutexattr_t { // Unverified - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - #[repr(align(8))] - pub struct pthread_cond_t { // Unverified - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - - #[repr(align(4))] - pub struct pthread_condattr_t { // Unverified - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - } - }; -} diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index 37cfb8ed3afb2..e68da50aa3c0a 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -257,20 +257,74 @@ s! { pub struct pthread_rwlockattr_t { // Unverified __size: [u8; __SIZEOF_PTHREAD_RWLOCKATTR_T] } + + #[cfg_attr(all(target_pointer_width = "32", + any(target_arch = "mips", + target_arch = "arm", + target_arch = "powerpc")), + repr(align(4)))] + #[cfg_attr(any(target_pointer_width = "64", + not(any(target_arch = "mips", + target_arch = "arm", + target_arch = "powerpc"))), + repr(align(8)))] + pub struct pthread_mutex_t { // Unverified + size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], + } + + #[cfg_attr(all(target_pointer_width = "32", + any(target_arch = "mips", + target_arch = "arm", + target_arch = "powerpc")), + repr(align(4)))] + #[cfg_attr(any(target_pointer_width = "64", + not(any(target_arch = "mips", + target_arch = "arm", + target_arch = "powerpc"))), + repr(align(8)))] + pub struct pthread_rwlock_t { // Unverified + size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], + } + + #[cfg_attr(any(target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "s390x", + target_arch = "sparc64"), + repr(align(4)))] + #[cfg_attr(not(any(target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "s390x", + target_arch = "sparc64")), + repr(align(8)))] + pub struct pthread_mutexattr_t { // Unverified + size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + } + + #[repr(align(8))] + pub struct pthread_cond_t { // Unverified + size: [u8; ::__SIZEOF_PTHREAD_COND_T], + } + + #[repr(align(4))] + pub struct pthread_condattr_t { // Unverified + size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + } } // unverified constants -align_const! { - pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - size: [__PTHREAD_INITIALIZER_BYTE; __SIZEOF_PTHREAD_MUTEX_T], - }; - pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - size: [__PTHREAD_INITIALIZER_BYTE; __SIZEOF_PTHREAD_COND_T], - }; - pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - size: [__PTHREAD_INITIALIZER_BYTE; __SIZEOF_PTHREAD_RWLOCK_T], - }; -} +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + size: [__PTHREAD_INITIALIZER_BYTE; __SIZEOF_PTHREAD_MUTEX_T], +}; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + size: [__PTHREAD_INITIALIZER_BYTE; __SIZEOF_PTHREAD_COND_T], +}; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + size: [__PTHREAD_INITIALIZER_BYTE; __SIZEOF_PTHREAD_RWLOCK_T], +}; cfg_if! { if #[cfg(target_os = "espidf")] { @@ -919,14 +973,3 @@ cfg_if! { pub use self::rtems::*; } } - -cfg_if! { - if #[cfg(libc_align)] { - #[macro_use] - mod align; - } else { - #[macro_use] - mod no_align; - } -} -expand_align!(); diff --git a/src/unix/newlib/no_align.rs b/src/unix/newlib/no_align.rs deleted file mode 100644 index ce3aca4ed5723..0000000000000 --- a/src/unix/newlib/no_align.rs +++ /dev/null @@ -1,51 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - pub struct pthread_mutex_t { // Unverified - #[cfg(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc"))] - __align: [::c_long; 0], - #[cfg(not(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc")))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - pub struct pthread_rwlock_t { // Unverified - #[cfg(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc"))] - __align: [::c_long; 0], - #[cfg(not(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc")))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - pub struct pthread_mutexattr_t { // Unverified - #[cfg(any(target_arch = "x86_64", target_arch = "powerpc64", - target_arch = "mips64", target_arch = "s390x", - target_arch = "sparc64"))] - __align: [::c_int; 0], - #[cfg(not(any(target_arch = "x86_64", target_arch = "powerpc64", - target_arch = "mips64", target_arch = "s390x", - target_arch = "sparc64")))] - __align: [::c_long; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - pub struct pthread_cond_t { // Unverified - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - - pub struct pthread_condattr_t { // Unverified - __align: [::c_int; 0], - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - } - }; -} diff --git a/src/unix/no_align.rs b/src/unix/no_align.rs deleted file mode 100644 index b435d72aa7db0..0000000000000 --- a/src/unix/no_align.rs +++ /dev/null @@ -1,16 +0,0 @@ -s! { - pub struct in6_addr { - pub s6_addr: [u8; 16], - __align: [u32; 0], - } -} - -pub const IN6ADDR_LOOPBACK_INIT: in6_addr = in6_addr { - s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], - __align: [0u32; 0], -}; - -pub const IN6ADDR_ANY_INIT: in6_addr = in6_addr { - s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - __align: [0u32; 0], -}; diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 994fc76583b5c..a5190416836cd 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -525,7 +525,7 @@ s_no_extra_traits! { __ss_pad2: [u8; 240], } - #[cfg_attr(all(target_pointer_width = "64", libc_align), repr(align(8)))] + #[cfg_attr(target_pointer_width = "64", repr(align(8)))] pub struct siginfo_t { pub si_signo: ::c_int, pub si_code: ::c_int, @@ -555,13 +555,13 @@ s_no_extra_traits! { __sigev_pad2: ::c_int, } - #[cfg_attr(libc_align, repr(align(16)))] + #[repr(align(16))] pub union pad128_t { // pub _q in this structure would be a "long double", of 16 bytes pub _l: [i32; 4], } - #[cfg_attr(libc_align, repr(align(16)))] + #[repr(align(16))] pub union upad128_t { // pub _q in this structure would be a "long double", of 16 bytes pub _l: [u32; 4], diff --git a/src/windows/gnu/align.rs b/src/windows/gnu/align.rs deleted file mode 100644 index 3af99e3ca149b..0000000000000 --- a/src/windows/gnu/align.rs +++ /dev/null @@ -1,19 +0,0 @@ -cfg_if! { - if #[cfg(target_pointer_width = "64")] { - s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4] - } - } - } else if #[cfg(target_pointer_width = "32")] { - s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [i64; 6] - } - } - } -} diff --git a/src/windows/gnu/mod.rs b/src/windows/gnu/mod.rs index 3e7d38b8e83c6..740ea3fa548f3 100644 --- a/src/windows/gnu/mod.rs +++ b/src/windows/gnu/mod.rs @@ -1,3 +1,23 @@ +cfg_if! { + if #[cfg(target_pointer_width = "64")] { + s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } + } + } else if #[cfg(target_pointer_width = "32")] { + s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [i64; 6] + } + } + } +} + pub const L_tmpnam: ::c_uint = 14; pub const TMP_MAX: ::c_uint = 0x7fff; @@ -14,10 +34,3 @@ extern "C" { // header file. We cannot find a way to link to that symbol from Rust. pub fn wmemchr(cx: *const ::wchar_t, c: ::wchar_t, n: ::size_t) -> *mut ::wchar_t; } - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} From 67b29443bbe6eafef430d0ca7f2c42ff74f8875c Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Tue, 26 Jul 2022 08:36:41 -0700 Subject: [PATCH 0263/1228] build.rs: Drop warnings about deprecated cargo features These are unlikely to get seen. [ resolve conflicts - Trevor ] --- build.rs | 7 ------- 1 file changed, 7 deletions(-) diff --git a/build.rs b/build.rs index 4edad7f740077..b208a9a1c6fb0 100644 --- a/build.rs +++ b/build.rs @@ -54,13 +54,6 @@ fn main() { let libc_ci = env::var("LIBC_CI").is_ok(); let libc_check_cfg = env::var("LIBC_CHECK_CFG").is_ok() || rustc_minor_ver >= 80; - if env::var("CARGO_FEATURE_USE_STD").is_ok() { - println!( - "cargo:warning=\"libc's use_std cargo feature is deprecated since libc 0.2.55; \ - please consider using the `std` cargo feature instead\"" - ); - } - // 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. // From 23a0d01d9e10666096c360f2f1e8105fc0f8cfb1 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Mon, 11 Jul 2022 20:29:19 -0700 Subject: [PATCH 0264/1228] Require rust >= 1.26 and drop libc_int128 conditional [ resolve conflicts and add test skips that seem to be needed now - Trevor ] --- build.rs | 6 ------ libc-test/build.rs | 10 ++++++++++ src/fixed_width_ints.rs | 2 +- src/unix/bsd/apple/b64/aarch64/mod.rs | 8 -------- .../linux_like/android/b64/aarch64/int128.rs | 7 ------- src/unix/linux_like/android/b64/aarch64/mod.rs | 13 ++++++------- .../linux_like/linux/gnu/b64/aarch64/fallback.rs | 8 -------- .../linux_like/linux/gnu/b64/aarch64/int128.rs | 7 ------- src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs | 16 ++++++---------- .../linux_like/linux/musl/b64/aarch64/int128.rs | 7 ------- .../linux_like/linux/musl/b64/aarch64/mod.rs | 13 ++++++------- 11 files changed, 29 insertions(+), 68 deletions(-) delete mode 100644 src/unix/linux_like/android/b64/aarch64/int128.rs delete mode 100644 src/unix/linux_like/linux/gnu/b64/aarch64/fallback.rs delete mode 100644 src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs delete mode 100644 src/unix/linux_like/linux/musl/b64/aarch64/int128.rs diff --git a/build.rs b/build.rs index b208a9a1c6fb0..25342e58c0f14 100644 --- a/build.rs +++ b/build.rs @@ -19,7 +19,6 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ "libc_const_extern_fn_unstable", "libc_core_cvoid", "libc_deny_warnings", - "libc_int128", "libc_long_array", "libc_non_exhaustive", "libc_packedN", @@ -87,11 +86,6 @@ fn main() { set_cfg("libc_deny_warnings"); } - // Rust >= 1.26 supports i128 and u128: - if rustc_minor_ver >= 26 || rustc_dep_of_std { - 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. diff --git a/libc-test/build.rs b/libc-test/build.rs index 01907dff90652..b60c4ac03a5e1 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -327,6 +327,9 @@ fn test_apple(target: &str) { // FIXME: Requires the macOS 14.4 SDK. "os_sync_wake_by_address_flags_t" | "os_sync_wait_on_address_flags_t" => true, + // FIXME: "'__uint128' undeclared" in C + "__uint128" => true, + _ => false, } }); @@ -1858,6 +1861,10 @@ fn test_android(target: &str) { // These are intended to be opaque "posix_spawn_file_actions_t" => true, "posix_spawnattr_t" => true, + + // FIXME: "'__uint128' undeclared" in C + "__uint128" => true, + _ => false, } }); @@ -3702,6 +3709,9 @@ fn test_linux(target: &str) { "priority_t" if musl => true, "name_t" if musl => true, + // FIXME: "'__uint128' undeclared" in C + "__uint128" => true, + t => { if musl { // LFS64 types have been removed in musl 1.2.4+ diff --git a/src/fixed_width_ints.rs b/src/fixed_width_ints.rs index 999de8f54f194..980ff61ecdaf3 100644 --- a/src/fixed_width_ints.rs +++ b/src/fixed_width_ints.rs @@ -20,7 +20,7 @@ pub type uint32_t = u32; pub type uint64_t = u64; cfg_if! { - if #[cfg(all(libc_int128, target_arch = "aarch64", not(target_os = "windows")))] { + if #[cfg(all(target_arch = "aarch64", not(target_os = "windows")))] { // This introduces partial support for FFI with __int128 and // equivalent types on platforms where Rust's definition is validated // to match the standard C ABI of that platform. diff --git a/src/unix/bsd/apple/b64/aarch64/mod.rs b/src/unix/bsd/apple/b64/aarch64/mod.rs index 1d4a5590fbf36..dd22fcb2507b1 100644 --- a/src/unix/bsd/apple/b64/aarch64/mod.rs +++ b/src/unix/bsd/apple/b64/aarch64/mod.rs @@ -37,16 +37,8 @@ s! { pub __pad: u32, } - // This type natively uses a uint128, but for a while we hacked - // it in with repr(align) and `[u64; 2]`. uint128 isn't available - // all the way back to our earliest supported versions so we - // preserver the old shim. - #[cfg_attr(not(libc_int128), repr(align(16)))] pub struct __darwin_arm_neon_state64 { - #[cfg(libc_int128)] pub __v: [::__uint128_t; 32], - #[cfg(not(libc_int128))] - pub __v: [[u64; 2]; 32], pub __fpsr: u32, pub __fpcr: u32, } diff --git a/src/unix/linux_like/android/b64/aarch64/int128.rs b/src/unix/linux_like/android/b64/aarch64/int128.rs deleted file mode 100644 index 4535e73eeddf1..0000000000000 --- a/src/unix/linux_like/android/b64/aarch64/int128.rs +++ /dev/null @@ -1,7 +0,0 @@ -s! { - pub struct user_fpsimd_struct { - pub vregs: [::__uint128_t; 32], - pub fpsr: u32, - pub fpcr: u32, - } -} diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index d063c022bfb7e..49b990fd8f1ac 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -75,6 +75,12 @@ s! { // auto-derive traits like Debug __reserved: [[u64; 32]; 16], } + + pub struct user_fpsimd_struct { + pub vregs: [::__uint128_t; 32], + pub fpsr: u32, + pub fpcr: u32, + } } s_no_extra_traits! { @@ -448,10 +454,3 @@ pub const PROT_MTE: ::c_int = 0x20; // From NDK's asm/auxvec.h pub const AT_SYSINFO_EHDR: ::c_ulong = 33; pub const AT_VECTOR_SIZE_ARCH: ::c_ulong = 2; - -cfg_if! { - if #[cfg(libc_int128)] { - mod int128; - pub use self::int128::*; - } -} diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/fallback.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/fallback.rs deleted file mode 100644 index 398fbb53755c8..0000000000000 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/fallback.rs +++ /dev/null @@ -1,8 +0,0 @@ -s! { - #[repr(align(16))] - pub struct user_fpsimd_struct { - pub vregs: [[u64; 2]; 32], - pub fpsr: ::c_uint, - pub fpcr: ::c_uint, - } -} diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs deleted file mode 100644 index 4535e73eeddf1..0000000000000 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs +++ /dev/null @@ -1,7 +0,0 @@ -s! { - pub struct user_fpsimd_struct { - pub vregs: [::__uint128_t; 32], - pub fpsr: u32, - pub fpcr: u32, - } -} diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index 783200a6d6e9c..5ee559190a8a2 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -217,6 +217,12 @@ s! { __reserved: [[u64; 32]; 16], } + pub struct user_fpsimd_struct { + pub vregs: [::__uint128_t; 32], + pub fpsr: ::c_uint, + pub fpcr: ::c_uint, + } + #[repr(align(8))] pub struct clone_args { pub flags: ::c_ulonglong, @@ -964,13 +970,3 @@ cfg_if! { pub use self::lp64::*; } } - -cfg_if! { - if #[cfg(libc_int128)] { - mod int128; - pub use self::int128::*; - } else { - mod fallback; - pub use self::fallback::*; - } -} diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/int128.rs b/src/unix/linux_like/linux/musl/b64/aarch64/int128.rs deleted file mode 100644 index 4535e73eeddf1..0000000000000 --- a/src/unix/linux_like/linux/musl/b64/aarch64/int128.rs +++ /dev/null @@ -1,7 +0,0 @@ -s! { - pub struct user_fpsimd_struct { - pub vregs: [::__uint128_t; 32], - pub fpsr: u32, - pub fpcr: u32, - } -} diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index 7582676c3bfa6..f71d47effe85c 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -101,6 +101,12 @@ s! { pub set_tid_size: ::c_ulonglong, pub cgroup: ::c_ulonglong, } + + pub struct user_fpsimd_struct { + pub vregs: [::__uint128_t; 32], + pub fpsr: u32, + pub fpcr: u32, + } } s_no_extra_traits! { @@ -684,10 +690,3 @@ pub const VMIN: usize = 6; pub const IEXTEN: ::tcflag_t = 0x00008000; pub const TOSTOP: ::tcflag_t = 0x00000100; pub const FLUSHO: ::tcflag_t = 0x00001000; - -cfg_if! { - if #[cfg(libc_int128)] { - mod int128; - pub use self::int128::*; - } -} From e22188720ee261809fccd3b19d15d4e1a404c1dc Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Mon, 11 Jul 2022 20:42:11 -0700 Subject: [PATCH 0265/1228] Require rust >= 1.30 and drop libc_core_cvoid conditional Move the `c_void` re-export to the top-level `lib.rs`. --- build.rs | 8 -------- libc-test/build.rs | 2 +- src/fuchsia/mod.rs | 22 ++-------------------- src/hermit.rs | 4 ++-- src/lib.rs | 5 ++--- src/psp.rs | 22 ++-------------------- src/sgx.rs | 20 -------------------- src/solid/mod.rs | 22 ++-------------------- src/switch.rs | 20 -------------------- src/unix/mod.rs | 22 ++-------------------- src/vxworks/mod.rs | 21 +-------------------- src/wasi/mod.rs | 4 ++-- src/windows/mod.rs | 22 ++-------------------- src/xous.rs | 20 -------------------- 14 files changed, 18 insertions(+), 196 deletions(-) diff --git a/build.rs b/build.rs index 25342e58c0f14..183b47ffd70f3 100644 --- a/build.rs +++ b/build.rs @@ -17,7 +17,6 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ "libc_cfg_target_vendor", "libc_const_extern_fn", "libc_const_extern_fn_unstable", - "libc_core_cvoid", "libc_deny_warnings", "libc_long_array", "libc_non_exhaustive", @@ -86,13 +85,6 @@ fn main() { set_cfg("libc_deny_warnings"); } - // 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 { - 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 { set_cfg("libc_packedN"); diff --git a/libc-test/build.rs b/libc-test/build.rs index b60c4ac03a5e1..166726eaf6fbd 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -67,7 +67,7 @@ fn do_ctest() { fn ctest_cfg() -> ctest::TestGenerator { let mut cfg = ctest::TestGenerator::new(); - let libc_cfgs = ["libc_core_cvoid", "libc_packedN", "libc_thread_local"]; + let libc_cfgs = ["libc_packedN", "libc_thread_local"]; for f in &libc_cfgs { cfg.cfg(f, None); } diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 5495ce9549b10..9a0b8755c4659 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -3,6 +3,8 @@ //! More functions and definitions can be found in the more specific modules //! according to the platform in question. +use c_void; + // PUB_TYPE pub type c_schar = i8; @@ -4490,23 +4492,3 @@ cfg_if! { // Unknown target_arch } } - -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} diff --git a/src/hermit.rs b/src/hermit.rs index 77df54ae12d8d..8e630c38f6b65 100644 --- a/src/hermit.rs +++ b/src/hermit.rs @@ -1,5 +1,7 @@ //! Hermit C type definitions +use c_void; + cfg_if! { if #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))] { pub type c_char = u8; @@ -576,5 +578,3 @@ extern "C" { #[link_name = "sys_poll"] pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: i32) -> i32; } - -pub use ffi::c_void; diff --git a/src/lib.rs b/src/lib.rs index ffeda95e8d505..1dba4d8248fea 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -46,9 +46,6 @@ cfg_if! { #[doc(hidden)] #[allow(unused_imports)] use core::clone::Clone; -#[cfg(libc_core_cvoid)] -#[allow(unused_imports)] -use core::ffi; #[allow(unused_imports)] use core::fmt; #[allow(unused_imports)] @@ -64,6 +61,8 @@ use core::num; #[allow(unused_imports)] use core::option::Option; +pub use core::ffi::c_void; + cfg_if! { if #[cfg(windows)] { mod fixed_width_ints; diff --git a/src/psp.rs b/src/psp.rs index a4ca029b6e0c1..3e1cdac2ceb82 100644 --- a/src/psp.rs +++ b/src/psp.rs @@ -4,6 +4,8 @@ //! by the linker. Crates that use these definitions must, somewhere in the //! crate graph, include a stub provider crate such as the `psp` crate. +use c_void; + pub type c_schar = i8; pub type c_uchar = u8; pub type c_short = i16; @@ -27,26 +29,6 @@ pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} - pub type SceKernelVTimerHandler = unsafe extern "C" fn( uid: SceUid, arg1: *mut SceKernelSysClock, diff --git a/src/sgx.rs b/src/sgx.rs index 7da6269399d9e..e37ccd79c3a55 100644 --- a/src/sgx.rs +++ b/src/sgx.rs @@ -25,23 +25,3 @@ pub type c_ulong = u64; pub const INT_MIN: c_int = -2147483648; pub const INT_MAX: c_int = 2147483647; - -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} diff --git a/src/solid/mod.rs b/src/solid/mod.rs index 2aca8d19abffd..da1ce150b0330 100644 --- a/src/solid/mod.rs +++ b/src/solid/mod.rs @@ -2,6 +2,8 @@ //! //! [SOLID]: https://solid.kmckk.com/ +use c_void; + pub type c_schar = i8; pub type c_uchar = u8; pub type c_short = i16; @@ -871,26 +873,6 @@ extern "C" { pub fn lseek(arg1: c_int, arg2: __off_t, arg3: c_int) -> __off_t; } -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} - cfg_if! { if #[cfg(target_arch = "aarch64")] { mod aarch64; diff --git a/src/switch.rs b/src/switch.rs index 030ab20d7bd8e..4a8b16e15f568 100644 --- a/src/switch.rs +++ b/src/switch.rs @@ -27,23 +27,3 @@ pub type wchar_t = u32; pub const INT_MIN: c_int = -2147483648; pub const INT_MAX: c_int = 2147483647; - -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 1556c12726eb0..af5925197d2ab 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -3,6 +3,8 @@ //! More functions and definitions can be found in the more specific modules //! according to the platform in question. +use c_void; + pub type c_schar = i8; pub type c_uchar = u8; pub type c_short = i16; @@ -1703,23 +1705,3 @@ cfg_if! { // Unknown target_os } } - -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index daf3b013b48b3..18b102b906767 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -1,5 +1,6 @@ //! Interface to VxWorks C library +use c_void; use core::mem::size_of; use core::ptr::null_mut; @@ -2003,26 +2004,6 @@ pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_ } } -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} - cfg_if! { if #[cfg(target_arch = "aarch64")] { mod aarch64; diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index 743f607379768..b157ab0d59b04 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -1,7 +1,7 @@ -use super::{Send, Sync}; use core::iter::Iterator; -pub use ffi::c_void; +use super::{Send, Sync}; +use c_void; pub type c_char = i8; pub type c_uchar = u8; diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 63536a809a421..2270e7078c966 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -1,5 +1,7 @@ //! Windows CRT definitions +use c_void; + pub type c_schar = i8; pub type c_uchar = u8; pub type c_short = i16; @@ -568,26 +570,6 @@ extern "system" { pub fn socket(af: ::c_int, socket_type: ::c_int, protocol: ::c_int) -> SOCKET; } -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} - cfg_if! { if #[cfg(all(target_env = "gnu"))] { mod gnu; diff --git a/src/xous.rs b/src/xous.rs index e6c0c2573d07d..4073349306fb9 100644 --- a/src/xous.rs +++ b/src/xous.rs @@ -27,23 +27,3 @@ pub type wchar_t = u32; pub const INT_MIN: c_int = -2147483648; pub const INT_MAX: c_int = 2147483647; - -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} From 9dac79f5a458704180b261cc164920f4cf8cd9d1 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Mon, 11 Jul 2022 20:46:23 -0700 Subject: [PATCH 0266/1228] Require rust >= 1.33 and drop libc_packedN conditional [ resolve conflicts, update to latest - Trevor ] --- build.rs | 4 +--- libc-test/build.rs | 2 +- src/unix/bsd/apple/mod.rs | 22 +++++++++++----------- src/unix/solarish/illumos.rs | 5 +---- 4 files changed, 14 insertions(+), 19 deletions(-) diff --git a/build.rs b/build.rs index 183b47ffd70f3..0ee39951c0723 100644 --- a/build.rs +++ b/build.rs @@ -20,7 +20,6 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ "libc_deny_warnings", "libc_long_array", "libc_non_exhaustive", - "libc_packedN", "libc_ptr_addr_of", "libc_thread_local", "libc_underscore_const_names", @@ -85,9 +84,8 @@ fn main() { set_cfg("libc_deny_warnings"); } - // Rust >= 1.33 supports repr(packed(N)) and cfg(target_vendor). + // Rust >= 1.33 supports cfg(target_vendor). if rustc_minor_ver >= 33 || rustc_dep_of_std { - set_cfg("libc_packedN"); set_cfg("libc_cfg_target_vendor"); } diff --git a/libc-test/build.rs b/libc-test/build.rs index 166726eaf6fbd..0dec4bba362f5 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -67,7 +67,7 @@ fn do_ctest() { fn ctest_cfg() -> ctest::TestGenerator { let mut cfg = ctest::TestGenerator::new(); - let libc_cfgs = ["libc_packedN", "libc_thread_local"]; + let libc_cfgs = ["libc_thread_local"]; for f in &libc_cfgs { cfg.cfg(f, None); } diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index efac489dcfc30..7ed887753c971 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1193,13 +1193,13 @@ s! { } s_no_extra_traits! { - #[cfg_attr(libc_packedN, repr(packed(4)))] + #[repr(packed(4))] pub struct ifconf { pub ifc_len: ::c_int, pub ifc_ifcu: __c_anonymous_ifc_ifcu, } - #[cfg_attr(libc_packedN, repr(packed(4)))] + #[repr(packed(4))] pub struct kevent { pub ident: ::uintptr_t, pub filter: i16, @@ -1209,7 +1209,7 @@ s_no_extra_traits! { pub udata: *mut ::c_void, } - #[cfg_attr(libc_packedN, repr(packed(4)))] + #[repr(packed(4))] pub struct semid_ds { // Note the manpage shows different types than the system header. pub sem_perm: ipc_perm, @@ -1222,7 +1222,7 @@ s_no_extra_traits! { pub sem_pad3: [i32; 4], } - #[cfg_attr(libc_packedN, repr(packed(4)))] + #[repr(packed(4))] pub struct shmid_ds { pub shm_perm: ipc_perm, pub shm_segsz: ::size_t, @@ -1381,7 +1381,7 @@ s_no_extra_traits! { pub pth_name: [::c_char; MAXTHREADNAMESIZE], } - #[cfg_attr(libc_packedN, repr(packed(4)))] + #[repr(packed(4))] pub struct if_data64 { pub ifi_type: ::c_uchar, pub ifi_typelen: ::c_uchar, @@ -1413,7 +1413,7 @@ s_no_extra_traits! { pub ifi_lastchange: timeval32, } - #[cfg_attr(libc_packedN, repr(packed(4)))] + #[repr(packed(4))] pub struct if_msghdr2 { pub ifm_msglen: ::c_ushort, pub ifm_version: ::c_uchar, @@ -1428,7 +1428,7 @@ s_no_extra_traits! { pub ifm_data: if_data64, } - #[cfg_attr(libc_packedN, repr(packed(8)))] + #[repr(packed(8))] pub struct vm_statistics64 { pub free_count: natural_t, pub active_count: natural_t, @@ -1456,7 +1456,7 @@ s_no_extra_traits! { pub total_uncompressed_pages_in_compressor: u64, } - #[cfg_attr(libc_packedN, repr(packed(4)))] + #[repr(packed(4))] pub struct mach_task_basic_info { pub virtual_size: mach_vm_size_t, pub resident_size: mach_vm_size_t, @@ -1467,7 +1467,7 @@ s_no_extra_traits! { pub suspend_count: integer_t, } - #[cfg_attr(libc_packedN, repr(packed(4)))] + #[repr(packed(4))] pub struct log2phys { pub l2p_flags: ::c_uint, pub l2p_contigbytes: ::off_t, @@ -1478,7 +1478,7 @@ s_no_extra_traits! { _os_unfair_lock_opaque: u32, } - #[cfg_attr(libc_packedN, repr(packed(1)))] + #[repr(packed(1))] pub struct sockaddr_vm { pub svm_len: ::c_uchar, pub svm_family: ::sa_family_t, @@ -1498,7 +1498,7 @@ s_no_extra_traits! { pub ifk_value: ::c_int, } - #[cfg_attr(libc_packedN, repr(packed(4)))] + #[repr(packed(4))] pub struct ifkpi { pub ifk_module_id: ::c_uint, pub ifk_type: ::c_uint, diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index 62a07f6279030..07cc583f43f3d 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -46,10 +46,7 @@ s! { } s_no_extra_traits! { - #[cfg_attr(any( - target_arch = "x86", target_arch = "x86_64"), - repr(packed(4)) - )] + #[cfg_attr(any(target_arch = "x86", target_arch = "x86_64"), repr(packed(4)))] pub struct epoll_event { pub events: u32, pub u64: u64, From 3d97cdf13383fe93bd1e77ca8a0eed0caac5db18 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Mon, 11 Jul 2022 20:51:02 -0700 Subject: [PATCH 0267/1228] Require rust >= 1.33 and drop libc_cfg_target_vendor conditional [ resolve conflicts - Trevor ] --- build.rs | 6 ------ src/unix/mod.rs | 48 +++++++----------------------------------- src/unix/newlib/mod.rs | 20 ++++-------------- 3 files changed, 12 insertions(+), 62 deletions(-) diff --git a/build.rs b/build.rs index 0ee39951c0723..5b709da55e1eb 100644 --- a/build.rs +++ b/build.rs @@ -14,7 +14,6 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ "freebsd13", "freebsd14", "freebsd15", - "libc_cfg_target_vendor", "libc_const_extern_fn", "libc_const_extern_fn_unstable", "libc_deny_warnings", @@ -84,11 +83,6 @@ fn main() { set_cfg("libc_deny_warnings"); } - // Rust >= 1.33 supports cfg(target_vendor). - if rustc_minor_ver >= 33 || rustc_dep_of_std { - set_cfg("libc_cfg_target_vendor"); - } - // Rust >= 1.40 supports #[non_exhaustive]. if rustc_minor_ver >= 40 || rustc_dep_of_std { set_cfg("libc_non_exhaustive"); diff --git a/src/unix/mod.rs b/src/unix/mod.rs index af5925197d2ab..b3cc7424cd0d4 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -642,21 +642,13 @@ extern "C" { pub fn getchar_unlocked() -> ::c_int; pub fn putchar_unlocked(c: ::c_int) -> ::c_int; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] + #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr(target_os = "netbsd", link_name = "__socket30")] #[cfg_attr(target_os = "illumos", link_name = "__xnet_socket")] #[cfg_attr(target_os = "solaris", link_name = "__xnet7_socket")] #[cfg_attr(target_os = "espidf", link_name = "lwip_socket")] pub fn socket(domain: ::c_int, ty: ::c_int, protocol: ::c_int) -> ::c_int; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] + #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "connect$UNIX2003" @@ -673,22 +665,14 @@ extern "C" { )] #[cfg_attr(target_os = "espidf", link_name = "lwip_listen")] pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] + #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "accept$UNIX2003" )] #[cfg_attr(target_os = "espidf", link_name = "lwip_accept")] pub fn accept(socket: ::c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> ::c_int; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] + #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "getpeername$UNIX2003" @@ -699,11 +683,7 @@ extern "C" { address: *mut sockaddr, address_len: *mut socklen_t, ) -> ::c_int; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] + #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "getsockname$UNIX2003" @@ -736,11 +716,7 @@ extern "C" { protocol: ::c_int, socket_vector: *mut ::c_int, ) -> ::c_int; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] + #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "sendto$UNIX2003" @@ -1250,11 +1226,7 @@ extern "C" { pub fn dlsym(handle: *mut ::c_void, symbol: *const ::c_char) -> *mut ::c_void; pub fn dlclose(handle: *mut ::c_void) -> ::c_int; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] + #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr( any(target_os = "illumos", target_os = "solaris"), link_name = "__xnet_getaddrinfo" @@ -1266,11 +1238,7 @@ extern "C" { hints: *const addrinfo, res: *mut *mut addrinfo, ) -> ::c_int; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] + #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr(target_os = "espidf", link_name = "lwip_freeaddrinfo")] pub fn freeaddrinfo(res: *mut addrinfo); pub fn hstrerror(errcode: ::c_int) -> *const ::c_char; diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index e68da50aa3c0a..45d1b1a028fad 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -91,7 +91,7 @@ s! { #[cfg(not(any( target_os = "espidf", - all(libc_cfg_target_vendor, target_arch = "powerpc", target_vendor = "nintendo"))))] + all(target_arch = "powerpc", target_vendor = "nintendo"))))] pub ai_addr: *mut sockaddr, pub ai_next: *mut addrinfo, @@ -843,11 +843,7 @@ extern "C" { pub fn rand() -> ::c_int; pub fn srand(seed: ::c_uint); - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] + #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr(target_os = "espidf", link_name = "lwip_bind")] pub fn bind(fd: ::c_int, addr: *const sockaddr, len: socklen_t) -> ::c_int; pub fn clock_settime(clock_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; @@ -856,11 +852,7 @@ extern "C" { #[cfg_attr(target_os = "espidf", link_name = "lwip_close")] pub fn closesocket(sockfd: ::c_int) -> ::c_int; pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] + #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr(target_os = "espidf", link_name = "lwip_recvfrom")] pub fn recvfrom( fd: ::c_int, @@ -870,11 +862,7 @@ extern "C" { addr: *mut sockaddr, addr_len: *mut socklen_t, ) -> isize; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] + #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] pub fn getnameinfo( sa: *const sockaddr, salen: socklen_t, From d00d1de4ccd1061d30463f361aac777da2796fd6 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Mon, 11 Jul 2022 20:54:38 -0700 Subject: [PATCH 0268/1228] Require rust >= 1.40 and drop libc_non_exhaustive conditional [ resolve conflicts - Trevor ] --- build.rs | 6 ------ src/unix/linux_like/linux/mod.rs | 15 ++++++++------- src/unix/linux_like/linux/non_exhaustive.rs | 9 --------- 3 files changed, 8 insertions(+), 22 deletions(-) delete mode 100644 src/unix/linux_like/linux/non_exhaustive.rs diff --git a/build.rs b/build.rs index 5b709da55e1eb..78ed993441d53 100644 --- a/build.rs +++ b/build.rs @@ -18,7 +18,6 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ "libc_const_extern_fn_unstable", "libc_deny_warnings", "libc_long_array", - "libc_non_exhaustive", "libc_ptr_addr_of", "libc_thread_local", "libc_underscore_const_names", @@ -83,11 +82,6 @@ fn main() { set_cfg("libc_deny_warnings"); } - // Rust >= 1.40 supports #[non_exhaustive]. - if rustc_minor_ver >= 40 || rustc_dep_of_std { - 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"); diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 28d29251769ca..5629fe0d0a608 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -953,6 +953,14 @@ s! { pub pid: ::c_int, } + // linux/openat2.h + #[non_exhaustive] + pub struct open_how { + pub flags: ::__u64, + pub mode: ::__u64, + pub resolve: ::__u64, + } + #[repr(align(8))] pub struct tpacket_rollover_stats { pub tp_all: ::__u64, @@ -6183,10 +6191,3 @@ cfg_if! { mod arch; pub use self::arch::*; - -cfg_if! { - if #[cfg(libc_non_exhaustive)] { - mod non_exhaustive; - pub use self::non_exhaustive::*; - } -} diff --git a/src/unix/linux_like/linux/non_exhaustive.rs b/src/unix/linux_like/linux/non_exhaustive.rs deleted file mode 100644 index e2e2cb847ac65..0000000000000 --- a/src/unix/linux_like/linux/non_exhaustive.rs +++ /dev/null @@ -1,9 +0,0 @@ -s! { - // linux/openat2.h - #[non_exhaustive] - pub struct open_how { - pub flags: ::__u64, - pub mode: ::__u64, - pub resolve: ::__u64, - } -} From 27ee6fe02ca0848b2af3cd747536264e4c7b697d Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Mon, 11 Jul 2022 22:34:44 -0700 Subject: [PATCH 0269/1228] Remove array size hacks for Rust < 1.47 Rust >= 1.47 supports traits for arrays of arbitrary size, so remove the various hacks using nested arrays when the native platform definition uses a single array. --- libc-test/build.rs | 9 +-------- src/unix/bsd/apple/mod.rs | 4 +--- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 5 ++--- src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/mod.rs | 2 +- src/unix/bsd/freebsdlike/mod.rs | 2 +- src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 +- src/unix/linux_like/android/b64/aarch64/mod.rs | 4 +--- src/unix/linux_like/android/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs | 4 +--- src/unix/linux_like/linux/musl/b64/aarch64/mod.rs | 2 +- 15 files changed, 16 insertions(+), 30 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 0dec4bba362f5..bbdafcf150cb5 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -398,8 +398,7 @@ fn test_apple(target: &str) { // FIXME: the array size has been changed since macOS 10.15 ([8] -> [7]). ("statfs", "f_reserved") => true, ("__darwin_arm_neon_state64", "__v") => true, - // MAXPATHLEN is too big for auto-derive traits on arrays. - ("vnode_info_path", "vip_path") => true, + ("ifreq", "ifr_ifru") => true, ("ifkpi", "ifk_data") => true, ("ifconf", "ifc_ifcu") => true, @@ -2744,8 +2743,6 @@ fn test_freebsd(target: &str) { ("umutex", "m_owner") => true, // c_has_waiters field is a volatile int32_t ("ucond", "c_has_waiters") => true, - // is PATH_MAX long but tests can't accept multi array as equivalent. - ("kinfo_vmentry", "kve_path") => true, // a_un field is a union ("Elf32_Auxinfo", "a_un") => true, @@ -2774,10 +2771,6 @@ fn test_freebsd(target: &str) { // Anonymous type. ("filestat", "next") => true, - // We ignore this field because we needed to use a hack in order to make rust 1.19 - // happy... - ("kinfo_proc", "ki_sparestrings") => true, - // `__sem_base` is a private struct field ("semid_ds", "__sem_base") => true, diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 7ed887753c971..b22ae27ccebc3 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -946,9 +946,7 @@ s! { pub struct vnode_info_path { pub vip_vi: vnode_info, - // Normally it's `vip_path: [::c_char; MAXPATHLEN]` but because libc supports an old rustc - // version, we go around this limitation like this. - pub vip_path: [[::c_char; 32]; 32], + pub vip_path: [::c_char; ::MAXPATHLEN as usize], } pub struct proc_vnodepathinfo { diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 7bff483df6ae5..6d778476fa444 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -517,7 +517,7 @@ s_no_extra_traits! { pub mc_ownedfp: ::c_uint, __reserved: ::c_uint, __unused: [::c_uint; 8], - pub mc_fpregs: [[::c_uint; 8]; 32], + pub mc_fpregs: [::c_uint; 256], } pub struct ucontext_t { @@ -786,8 +786,7 @@ cfg_if! { self.mc_len == other.mc_len && self.mc_fpformat == other.mc_fpformat && self.mc_ownedfp == other.mc_ownedfp && - self.mc_fpregs.iter().zip(other.mc_fpregs.iter()). - all(|(a, b)| a == b) + self.mc_fpregs == other.mc_fpregs } } impl Eq for mcontext_t {} diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs index e416ebf745841..44f48ab5ceb47 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs @@ -166,7 +166,7 @@ s! { /// 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 + pub ki_sparestrings: [::c_char; 46], /// Spare room for growth. pub ki_spareints: [::c_int; ::KI_NSPARE_INT], /// Which cpu we are on. diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index c4431a6458e8f..a16f1d13915c8 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -173,7 +173,7 @@ s! { /// 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 + pub ki_sparestrings: [::c_char; 46], /// Spare room for growth. pub ki_spareints: [::c_int; ::KI_NSPARE_INT], /// Controlling tty dev. diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs index e6cc1fad0b591..d97606787b67e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -183,7 +183,7 @@ s! { /// 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 + pub ki_sparestrings: [::c_char; 46], /// Spare room for growth. pub ki_spareints: [::c_int; ::KI_NSPARE_INT], /// Controlling tty dev. diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index 1c58bb4b5afcf..6a46efaa6144c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -183,7 +183,7 @@ s! { /// 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 + pub ki_sparestrings: [::c_char; 46], /// Spare room for growth. pub ki_spareints: [::c_int; ::KI_NSPARE_INT], /// Controlling tty dev. diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index 00ea22a041a7d..ac8e33382dd57 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -183,7 +183,7 @@ s! { /// 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 + pub ki_sparestrings: [::c_char; 46], /// Spare room for growth. pub ki_spareints: [::c_int; ::KI_NSPARE_INT], /// Controlling tty dev. diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 41bcc6f4be549..2512a76e449f2 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -458,7 +458,7 @@ s! { _kve_is_spare: [::c_int; 8], #[cfg(freebsd11)] _kve_is_spare: [::c_int; 12], - pub kve_path: [[::c_char; 32]; 32], + pub kve_path: [::c_char; ::PATH_MAX as usize], } pub struct __c_anonymous_filestat { diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index f247e6bf6a02b..57a38a538f01b 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -284,7 +284,7 @@ s! { pub struct accept_filter_arg { pub af_name: [::c_char; 16], - af_arg: [[::c_char; 10]; 24], + af_arg: [::c_char; 240], } pub struct ptrace_io_desc { diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 0113676a44207..e5b72f62d4c32 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -663,7 +663,7 @@ s! { pub kve_vn_rdev: u64, pub kve_vn_type: u32, pub kve_vn_mode: u32, - pub kve_path: [[::c_char; 32]; 32], + pub kve_path: [::c_char; ::PATH_MAX as usize], } pub struct __c_anonymous_posix_spawn_fae_open { diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index 49b990fd8f1ac..75cc2fedace39 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -71,9 +71,7 @@ s! { pub sp: ::c_ulonglong, pub pc: ::c_ulonglong, pub pstate: ::c_ulonglong, - // nested arrays to get the right size/length while being able to - // auto-derive traits like Debug - __reserved: [[u64; 32]; 16], + __reserved: [u64; 512], } pub struct user_fpsimd_struct { diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index b91104f7b80c6..2829b249dd0b6 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -609,7 +609,7 @@ s_no_extra_traits! { pub struct prop_info { __name: [::c_char; 32], __serial: ::c_uint, - __value: [[::c_char; 4]; 23], + __value: [::c_char; 92], } pub union __c_anonymous_ifr_ifru { diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index 5ee559190a8a2..f0babb8d3d71f 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -212,9 +212,7 @@ s! { pub sp: ::c_ulonglong, pub pc: ::c_ulonglong, pub pstate: ::c_ulonglong, - // nested arrays to get the right size/length while being able to - // auto-derive traits like Debug - __reserved: [[u64; 32]; 16], + __reserved: [u64; 512], } pub struct user_fpsimd_struct { diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index f71d47effe85c..5c9e68dcd950e 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -84,7 +84,7 @@ s! { pub sp: ::c_ulong, pub pc: ::c_ulong, pub pstate: ::c_ulong, - __reserved: [[u64; 32]; 16], + __reserved: [u64; 512], } #[repr(align(8))] From d63be8b69b0736753213f5d933767866a5801ee7 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 14:30:02 -0600 Subject: [PATCH 0270/1228] Fix a few other array size hacks Sources: * FreeBSD `__reserve_pad`: [1] * NetBSD `accept_filter_arg`: https://man.netbsd.org/setsockopt.2 [1]: https://github.com/freebsd/freebsd-src/blob/4b4e88d9425b59a377a71ffeb553376b1c60a80e/sys/netinet/sctp_uio.h#L110-L146 --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 9 +++++++-- src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 2512a76e449f2..5660fd154778c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1145,7 +1145,7 @@ s! { pub sinfo_assoc_id: ::sctp_assoc_t, pub sinfo_keynumber: u16, pub sinfo_keynumber_valid: u16, - pub __reserve_pad: [[u8; 23]; 4], + pub __reserve_pad: [u8; SCTP_ALIGN_RESV_PAD], } pub struct sctp_extrcvinfo { @@ -1165,7 +1165,7 @@ s! { pub serinfo_next_ppid: u32, pub sinfo_keynumber: u16, pub sinfo_keynumber_valid: u16, - pub __reserve_pad: [[u8; 19]; 4], + pub __reserve_pad: [u8; SCTP_ALIGN_RESV_PAD_SHORT], } pub struct sctp_sndinfo { @@ -4874,6 +4874,11 @@ pub const SCTP_ASSOC_RESET_FAILED: ::c_int = 0x0008; pub const SCTP_STREAM_CHANGE_DENIED: ::c_int = 0x0004; pub const SCTP_STREAM_CHANGE_FAILED: ::c_int = 0x0008; +// sctp_uio.h + +pub const SCTP_ALIGN_RESV_PAD: usize = 92; +pub const SCTP_ALIGN_RESV_PAD_SHORT: usize = 76; + pub const KENV_DUMP_LOADER: ::c_int = 4; pub const KENV_DUMP_STATIC: ::c_int = 5; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index e5b72f62d4c32..ee084ed1bbdac 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -512,7 +512,7 @@ s! { pub struct accept_filter_arg { pub af_name: [::c_char; 16], - af_arg: [[::c_char; 10]; 24], + pub af_arg: [::c_char; 256 - 16], } pub struct ki_sigset_t { From 85eac5f1ed25df02b99787a1a13eb6269fbf836d Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 14:51:42 -0600 Subject: [PATCH 0271/1228] Drop the `ptr_addr_of` conditional This is possible since increasing the MSRV to 1.63 --- build.rs | 5 ----- src/macros.rs | 14 -------------- src/wasi/mod.rs | 8 ++++---- 3 files changed, 4 insertions(+), 23 deletions(-) diff --git a/build.rs b/build.rs index 78ed993441d53..15bf2f5a8cb16 100644 --- a/build.rs +++ b/build.rs @@ -18,7 +18,6 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ "libc_const_extern_fn_unstable", "libc_deny_warnings", "libc_long_array", - "libc_ptr_addr_of", "libc_thread_local", "libc_underscore_const_names", "libc_ctest", @@ -87,10 +86,6 @@ fn main() { set_cfg("libc_long_array"); } - if rustc_minor_ver >= 51 || rustc_dep_of_std { - 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 { set_cfg("libc_underscore_const_names"); diff --git a/src/macros.rs b/src/macros.rs index 6d728d078d85f..cb77cc6c2e822 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -311,17 +311,3 @@ macro_rules! deprecated_mach { )* } } - -#[cfg(not(libc_ptr_addr_of))] -macro_rules! ptr_addr_of { - ($place:expr) => { - &$place - }; -} - -#[cfg(libc_ptr_addr_of)] -macro_rules! ptr_addr_of { - ($place:expr) => { - ::core::ptr::addr_of!($place) - }; -} diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index b157ab0d59b04..980cda9740ea4 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -380,16 +380,16 @@ cfg_if! { // `addr_of!(EXTERN_STATIC)` is now safe; remove `unsafe` when MSRV >= 1.82 #[allow(unused_unsafe)] pub static CLOCK_MONOTONIC: clockid_t = - unsafe { clockid_t(ptr_addr_of!(_CLOCK_MONOTONIC)) }; + clockid_t(core::ptr::addr_of!(_CLOCK_MONOTONIC)); #[allow(unused_unsafe)] pub static CLOCK_PROCESS_CPUTIME_ID: clockid_t = - unsafe { clockid_t(ptr_addr_of!(_CLOCK_PROCESS_CPUTIME_ID)) }; + clockid_t(core::ptr::addr_of!(_CLOCK_PROCESS_CPUTIME_ID)); #[allow(unused_unsafe)] pub static CLOCK_REALTIME: clockid_t = - unsafe { clockid_t(ptr_addr_of!(_CLOCK_REALTIME)) }; + clockid_t(core::ptr::addr_of!(_CLOCK_REALTIME)); #[allow(unused_unsafe)] pub static CLOCK_THREAD_CPUTIME_ID: clockid_t = - unsafe { clockid_t(ptr_addr_of!(_CLOCK_THREAD_CPUTIME_ID)) }; + clockid_t(core::ptr::addr_of!(_CLOCK_THREAD_CPUTIME_ID)); } } From 1d981230efc32dbb0e49ba49743e064b3f59376f Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 14 Nov 2024 23:14:01 -0600 Subject: [PATCH 0272/1228] ci: make scripts more uniform Perform the following style changes: - Only use uppercase variable names if they are exported - Only use `${...}` syntax when joining with other strings, `$...` otherwise - Use `CARGO_TERM_VERBOSE` rather than always passing `-v` - Indent is always four spaces - Fix shellcheck errors in all shell scripts - Rewrap some long or complex commands - Replace redundant `| \` with just `|` (backport ) (cherry picked from commit eddb526e06708e64557089dff59ad60e759ab443) --- .github/workflows/full_ci.yml | 1 + ci/android-install-ndk.sh | 10 +- ci/android-install-sdk.sh | 8 +- ci/build.sh | 167 +++++++------- .../wasm32-unknown-emscripten/node-wrapper.sh | 10 +- ci/emscripten.sh | 6 +- ci/install-musl.sh | 20 +- ci/install-rust.sh | 67 +++--- ci/run-docker.sh | 74 +++---- ci/run.sh | 204 ++++++++++-------- ci/style.sh | 3 +- ci/test-runner-linux | 14 +- ci/wasi.sh | 4 +- 13 files changed, 313 insertions(+), 275 deletions(-) diff --git a/.github/workflows/full_ci.yml b/.github/workflows/full_ci.yml index e3e69a0fa3dac..2788aa8848757 100644 --- a/.github/workflows/full_ci.yml +++ b/.github/workflows/full_ci.yml @@ -7,6 +7,7 @@ on: - libc-0.2 env: + CARGO_TERM_VERBOSE: true LIBC_CI: 1 jobs: diff --git a/ci/android-install-ndk.sh b/ci/android-install-ndk.sh index ebe791af703b8..eb666e2db5da1 100644 --- a/ci/android-install-ndk.sh +++ b/ci/android-install-ndk.sh @@ -2,10 +2,10 @@ set -ex -NDK=android-ndk-r26b -wget --tries=20 -q https://dl.google.com/android/repository/${NDK}-linux.zip -unzip -q ${NDK}-linux.zip +ndk=android-ndk-r27 +wget --tries=20 -q "https://dl.google.com/android/repository/${ndk}-linux.zip" +unzip -q "${ndk}-linux.zip" -mv ./${NDK}/toolchains/llvm/prebuilt/linux-x86_64 /android +mv "./${ndk}/toolchains/llvm/prebuilt/linux-x86_64" /android -rm -rf ./${NDK}-linux.zip ./${NDK} +rm -rf "./${ndk}-linux.zip" "./${ndk}" diff --git a/ci/android-install-sdk.sh b/ci/android-install-sdk.sh index 5e7037df044ef..b7f2b8e1443fc 100644 --- a/ci/android-install-sdk.sh +++ b/ci/android-install-sdk.sh @@ -9,10 +9,10 @@ set -ex # located in https://github.com/appunite/docker by just wrapping it in a script # which apparently magically accepts the licenses. -SDK=6609375 +sdk=6609375 mkdir -p sdk/cmdline-tools -wget -q --tries=20 https://dl.google.com/android/repository/commandlinetools-linux-${SDK}_latest.zip -unzip -q -d sdk/cmdline-tools commandlinetools-linux-${SDK}_latest.zip +wget -q --tries=20 "https://dl.google.com/android/repository/commandlinetools-linux-${sdk}_latest.zip" +unzip -q -d sdk/cmdline-tools "commandlinetools-linux-${sdk}_latest.zip" case "$1" in arm | armv7) @@ -69,4 +69,4 @@ echo "no" | --name "${1}" \ --package "${image}" | grep -v = || true -rm -rf commandlinetools-linux-${SDK}_latest.zip emulator-linux_x64-9058569.zip +rm -rf "commandlinetools-linux-${sdk}_latest.zip" emulator-linux_x64-9058569.zip diff --git a/ci/build.sh b/ci/build.sh index 28655238e9f65..b32573c31f8c6 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -10,29 +10,27 @@ set -ex : "${TOOLCHAIN?The TOOLCHAIN environment variable must be set.}" : "${OS?The OS environment variable must be set.}" -RUST=${TOOLCHAIN} -VERBOSE=-v +rust="$TOOLCHAIN" -echo "Testing Rust ${RUST} on ${OS}" +echo "Testing Rust $rust on $OS" -if [ "${TOOLCHAIN}" = "nightly" ] ; then +if [ "$TOOLCHAIN" = "nightly" ] ; then rustup component add rust-src fi test_target() { - BUILD_CMD="${1}" - TARGET="${2}" - NO_STD="${3}" + build_cmd="${1}" + target="${2}" + no_std="${3}" # If there is a std component, fetch it: - if [ "${NO_STD}" != "1" ]; then + if [ "${no_std}" != "1" ]; then # FIXME: rustup often fails to download some artifacts due to network # issues, so we retry this N times. N=5 n=0 - until [ $n -ge $N ] - do - if rustup target add "${TARGET}" --toolchain "${RUST}" ; then + until [ $n -ge $N ]; do + if rustup target add "$target" --toolchain "$rust" ; then break fi n=$((n+1)) @@ -41,56 +39,75 @@ test_target() { fi # Test that libc builds without any default features (no std) - if [ "${NO_STD}" != "1" ]; then - cargo "+${RUST}" "${BUILD_CMD}" "$VERBOSE" --no-default-features --target "${TARGET}" + if [ "$no_std" != "1" ]; then + cargo "+$rust" "$build_cmd" --no-default-features --target "$target" else # FIXME: With `build-std` feature, `compiler_builtins` emits a lof of lint warnings. - RUSTFLAGS="-A improper_ctypes_definitions" cargo "+${RUST}" "${BUILD_CMD}" \ - -Z build-std=core,alloc "$VERBOSE" --no-default-features --target "${TARGET}" + RUSTFLAGS="-A improper_ctypes_definitions" \ + cargo "+$rust" "$build_cmd" \ + -Z build-std=core,alloc \ + --no-default-features \ + --target "$target" fi + # Test that libc builds with default features (e.g. std) # if the target supports std - if [ "$NO_STD" != "1" ]; then - cargo "+${RUST}" "${BUILD_CMD}" "$VERBOSE" --target "${TARGET}" + if [ "$no_std" != "1" ]; then + cargo "+$rust" "$build_cmd" --target "$target" else - RUSTFLAGS="-A improper_ctypes_definitions" cargo "+${RUST}" "${BUILD_CMD}" \ - -Z build-std=core,alloc "$VERBOSE" --target "${TARGET}" + RUSTFLAGS="-A improper_ctypes_definitions" \ + cargo "+$rust" "${build_cmd}" \ + -Z build-std=core,alloc \ + --target "$target" fi # Test that libc builds with the `extra_traits` feature - if [ "${NO_STD}" != "1" ]; then - cargo "+${RUST}" "${BUILD_CMD}" "$VERBOSE" --no-default-features --target "${TARGET}" \ - --features extra_traits + if [ "$no_std" != "1" ]; then + cargo "+$rust" "$build_cmd" \ + --no-default-features \ + --features extra_traits \ + --target "$target" else - RUSTFLAGS="-A improper_ctypes_definitions" cargo "+${RUST}" "${BUILD_CMD}" \ - -Z build-std=core,alloc "$VERBOSE" --no-default-features \ - --target "${TARGET}" --features extra_traits + RUSTFLAGS="-A improper_ctypes_definitions" \ + cargo "+$rust" "$build_cmd" \ + -Z build-std=core,alloc \ + --no-default-features \ + --features extra_traits \ + --target "$target" fi # Test the 'const-extern-fn' feature on nightly - if [ "${RUST}" = "nightly" ]; then - if [ "${NO_STD}" != "1" ]; then - cargo "+${RUST}" "${BUILD_CMD}" "$VERBOSE" --no-default-features --target "${TARGET}" \ - --features const-extern-fn + if [ "${rust}" = "nightly" ]; then + if [ "${no_std}" != "1" ]; then + cargo "+$rust" "$build_cmd" \ + --no-default-features \ + --features const-extern-fn \ + --target "$target" else - RUSTFLAGS="-A improper_ctypes_definitions" cargo "+${RUST}" "${BUILD_CMD}" \ - -Z build-std=core,alloc "$VERBOSE" --no-default-features \ - --target "${TARGET}" --features const-extern-fn + RUSTFLAGS="-A improper_ctypes_definitions" \ + cargo "+$rust" "$build_cmd" \ + -Z build-std=core,alloc \ + --no-default-features \ + --features const-extern-fn \ + --target "$target" fi fi # Also test that it builds with `extra_traits` and default features: - if [ "$NO_STD" != "1" ]; then - cargo "+${RUST}" "${BUILD_CMD}" "$VERBOSE" --target "${TARGET}" \ + if [ "$no_std" != "1" ]; then + cargo "+$rust" "$build_cmd" \ + --target "$target" \ --features extra_traits else - RUSTFLAGS="-A improper_ctypes_definitions" cargo "+${RUST}" "${BUILD_CMD}" \ - -Z build-std=core,alloc "$VERBOSE" --target "${TARGET}" \ + RUSTFLAGS="-A improper_ctypes_definitions" \ + cargo "+$rust" "$build_cmd" \ + -Z build-std=core,alloc \ + --target "$target" \ --features extra_traits fi } -RUST_LINUX_TARGETS="\ +rust_linux_targets="\ aarch64-linux-android \ aarch64-unknown-linux-gnu \ arm-linux-androideabi \ @@ -113,7 +130,7 @@ x86_64-unknown-linux-musl \ x86_64-unknown-netbsd \ " -RUST_GT_1_13_LINUX_TARGETS="\ +rust_gt_1_13_linux_targets="\ arm-unknown-linux-musleabi \ arm-unknown-linux-musleabihf \ armv7-unknown-linux-musleabihf \ @@ -121,16 +138,16 @@ sparc64-unknown-linux-gnu \ wasm32-unknown-emscripten \ x86_64-linux-android \ " -RUST_GT_1_19_LINUX_TARGETS="\ +rust_gt_1_19_linux_targets="\ aarch64-unknown-linux-musl \ sparcv9-sun-solaris \ wasm32-unknown-unknown \ " -RUST_GT_1_24_LINUX_TARGETS="\ +rust_gt_1_24_linux_targets="\ i586-unknown-linux-musl \ " -RUST_NIGHTLY_LINUX_TARGETS="\ +rust_nightly_linux_targets="\ aarch64-unknown-fuchsia \ armv5te-unknown-linux-gnueabi \ armv5te-unknown-linux-musleabi \ @@ -145,67 +162,65 @@ x86_64-unknown-linux-gnux32 \ x86_64-unknown-redox \ " -RUST_APPLE_TARGETS="\ +rust_apple_targets="\ aarch64-apple-ios \ x86_64-apple-darwin \ x86_64-apple-ios \ " -RUST_NIGHTLY_APPLE_TARGETS="\ +rust_nightly_apple_targets="\ aarch64-apple-darwin \ " # Must start with `x86_64-pc-windows-msvc` first. -RUST_NIGHTLY_WINDOWS_TARGETS="\ +rust_nightly_windows_targets="\ x86_64-pc-windows-msvc \ x86_64-pc-windows-gnu \ i686-pc-windows-msvc \ " # The targets are listed here alphabetically -TARGETS="" +targets="" case "${OS}" in linux*) - TARGETS="${RUST_LINUX_TARGETS}" + targets="$rust_linux_targets" - if [ "${RUST}" != "1.13.0" ]; then - TARGETS="${TARGETS} ${RUST_GT_1_13_LINUX_TARGETS}" - if [ "${RUST}" != "1.19.0" ]; then - TARGETS="${TARGETS} ${RUST_GT_1_19_LINUX_TARGETS}" - if [ "${RUST}" != "1.24.0" ]; then - TARGETS="${TARGETS} ${RUST_GT_1_24_LINUX_TARGETS}" + if [ "$rust" != "1.13.0" ]; then + targets="$targets $rust_gt_1_13_linux_targets" + if [ "$rust" != "1.19.0" ]; then + targets="$targets $rust_gt_1_19_linux_targets" + if [ "${rust}" != "1.24.0" ]; then + targets="$targets $rust_gt_1_24_linux_targets" fi fi fi - if [ "${RUST}" = "nightly" ]; then - TARGETS="${TARGETS} ${RUST_NIGHTLY_LINUX_TARGETS}" + if [ "$rust" = "nightly" ]; then + targets="$targets $rust_nightly_linux_targets" fi ;; macos*) - TARGETS="${RUST_APPLE_TARGETS}" + targets="$rust_apple_targets" - if [ "${RUST}" = "nightly" ]; then - TARGETS="${TARGETS} ${RUST_NIGHTLY_APPLE_TARGETS}" + if [ "$rust" = "nightly" ]; then + targets="$targets $rust_nightly_apple_targets" fi ;; windows*) - TARGETS=${RUST_NIGHTLY_WINDOWS_TARGETS} - - ;; - *) + targets=${rust_nightly_windows_targets} ;; + *) ;; esac -for TARGET in $TARGETS; do - if echo "$TARGET"|grep -q "$FILTER"; then +for target in $targets; do + if echo "$target" | grep -q "$FILTER"; then if [ "${OS}" = "windows" ]; then - TARGET="$TARGET" sh ./ci/install-rust.sh - test_target build "$TARGET" + TARGET="$target" sh ./ci/install-rust.sh + test_target build "$target" else - test_target build "$TARGET" + test_target build "$target" fi fi done @@ -213,7 +228,7 @@ done # Targets which are not available via rustup and must be built with -Zbuild-std # FIXME(hexagon): hexagon-unknown-linux-musl should be tested but currently has # duplicate symbol errors from `compiler_builtins`. -RUST_LINUX_NO_CORE_TARGETS="\ +rust_linux_no_core_targets="\ aarch64-pc-windows-msvc \ aarch64-unknown-freebsd \ aarch64-unknown-hermit \ @@ -278,24 +293,24 @@ x86_64-unknown-openbsd \ x86_64-wrs-vxworks \ " -if [ "${RUST}" = "nightly" ] && [ "${OS}" = "linux" ]; then - for TARGET in $RUST_LINUX_NO_CORE_TARGETS; do - if echo "$TARGET"|grep -q "$FILTER"; then - test_target build "$TARGET" 1 +if [ "${rust}" = "nightly" ] && [ "${OS}" = "linux" ]; then + for target in $rust_linux_no_core_targets; do + if echo "$target" | grep -q "$FILTER"; then + test_target build "$target" 1 fi done fi -RUST_APPLE_NO_CORE_TARGETS="\ +rust_apple_no_core_targets="\ armv7s-apple-ios \ i686-apple-darwin \ i386-apple-ios \ " -if [ "${RUST}" = "nightly" ] && [ "${OS}" = "macos" ]; then - for TARGET in $RUST_APPLE_NO_CORE_TARGETS; do - if echo "$TARGET" | grep -q "$FILTER"; then - test_target build "$TARGET" 1 +if [ "${rust}" = "nightly" ] && [ "${OS}" = "macos" ]; then + for target in $rust_apple_no_core_targets; do + if echo "$target" | grep -q "$FILTER"; then + test_target build "$target" 1 fi done fi diff --git a/ci/docker/wasm32-unknown-emscripten/node-wrapper.sh b/ci/docker/wasm32-unknown-emscripten/node-wrapper.sh index b1936f041070a..369439269a683 100755 --- a/ci/docker/wasm32-unknown-emscripten/node-wrapper.sh +++ b/ci/docker/wasm32-unknown-emscripten/node-wrapper.sh @@ -2,10 +2,10 @@ set -e -me=$1 +me="$1" shift -dir=$(dirname $me) -file=$(basename $me) +dir=$(dirname "$me") +file=$(basename "$me") -cd $dir -exec node $file "$@" +cd "$dir" +exec node "$file" "$@" diff --git a/ci/emscripten.sh b/ci/emscripten.sh index b99d2cfbe5397..b17a40c1a287d 100644 --- a/ci/emscripten.sh +++ b/ci/emscripten.sh @@ -4,12 +4,12 @@ set -ex # Note: keep in sync with: # https://github.com/rust-lang/rust/blob/master/src/ci/docker/scripts/emscripten.sh -EMSDK_VERSION=3.1.68 +emsdk_version=3.1.68 git clone https://github.com/emscripten-core/emsdk.git /emsdk-portable cd /emsdk-portable -./emsdk install "${EMSDK_VERSION}" -./emsdk activate "${EMSDK_VERSION}" +./emsdk install "$emsdk_version" +./emsdk activate "$emsdk_version" # Compile and cache libc # shellcheck disable=SC1091 diff --git a/ci/install-musl.sh b/ci/install-musl.sh index 7ea50916c4caf..fae46ee928c9f 100644 --- a/ci/install-musl.sh +++ b/ci/install-musl.sh @@ -1,17 +1,17 @@ -#!/usr/bin/env sh +#!/bin/sh # # Install musl and musl-sanitized linux kernel headers # to musl-{$1} directory set -ex -MUSL_VERSION=1.1.24 -MUSL="musl-${MUSL_VERSION}" +musl_version=1.1.24 +musl="musl-${musl_version}" # Download, configure, build, and install musl: -curl --retry 5 https://www.musl-libc.org/releases/${MUSL}.tar.gz | tar xzf - +curl --retry 5 https://www.musl-libc.org/releases/${musl}.tar.gz | tar xzf - -cd $MUSL +cd "$musl" case ${1} in aarch64) musl_arch=aarch64 @@ -62,15 +62,15 @@ esac # shellcheck disable=SC2103 cd .. -rm -rf $MUSL +rm -rf "$musl" # Download, configure, build, and install musl-sanitized kernel headers: -KERNEL_HEADER_VER="4.19.88" +kernel_header_ver="4.19.88" curl --retry 5 -L \ - "https://github.com/sabotage-linux/kernel-headers/archive/v${KERNEL_HEADER_VER}.tar.gz" | \ + "https://github.com/sabotage-linux/kernel-headers/archive/v${kernel_header_ver}.tar.gz" | tar xzf - ( - cd kernel-headers-${KERNEL_HEADER_VER} + cd "kernel-headers-${kernel_header_ver}" make ARCH="${kernel_arch}" prefix="/musl-${musl_arch}" install -j4 ) -rm -rf kernel-headers-${KERNEL_HEADER_VER} +rm -rf kernel-headers-${kernel_header_ver} diff --git a/ci/install-rust.sh b/ci/install-rust.sh index d7a035af21689..a0b841807b106 100644 --- a/ci/install-rust.sh +++ b/ci/install-rust.sh @@ -10,45 +10,46 @@ if [ -n "$TOOLCHAIN" ]; then else toolchain=nightly fi + if [ "$OS" = "windows" ]; then - : "${TARGET?The TARGET environment variable must be set.}" - rustup set profile minimal - rustup update --force "$toolchain-$TARGET" - rustup default "$toolchain-$TARGET" + : "${TARGET?The TARGET environment variable must be set.}" + rustup set profile minimal + rustup update --force "$toolchain-$TARGET" + rustup default "$toolchain-$TARGET" else - rustup set profile minimal - rustup update --force "$toolchain" - rustup default "$toolchain" + rustup set profile minimal + rustup update --force "$toolchain" + rustup default "$toolchain" fi if [ -n "$TARGET" ]; then - echo "Install target" - rustup target add "$TARGET" + echo "Install target" + rustup target add "$TARGET" fi if [ -n "$INSTALL_RUST_SRC" ]; then - echo "Install rust-src" - rustup component add rust-src + echo "Install rust-src" + rustup component add rust-src fi if [ "$OS" = "windows" ]; then - if [ "$ARCH_BITS" = "i686" ]; then - echo "Install MinGW32" - choco install mingw --x86 --force - fi + if [ "$ARCH_BITS" = "i686" ]; then + echo "Install MinGW32" + choco install mingw --x86 --force + fi - echo "Find GCC libraries" - gcc -print-search-dirs - /usr/bin/find "C:\ProgramData\Chocolatey" -name "crt2*" - /usr/bin/find "C:\ProgramData\Chocolatey" -name "dllcrt2*" - /usr/bin/find "C:\ProgramData\Chocolatey" -name "libmsvcrt*" + echo "Find GCC libraries" + gcc -print-search-dirs + /usr/bin/find "C:\ProgramData\Chocolatey" -name "crt2*" + /usr/bin/find "C:\ProgramData\Chocolatey" -name "dllcrt2*" + /usr/bin/find "C:\ProgramData\Chocolatey" -name "libmsvcrt*" - if [ -n "$ARCH_BITS" ]; then - echo "Fix MinGW" - for i in crt2.o dllcrt2.o libmingwex.a libmsvcrt.a ; do - cp -f "/C/ProgramData/Chocolatey/lib/mingw/tools/install/mingw$ARCH_BITS/$ARCH-w64-mingw32/lib/$i" "$(rustc --print sysroot)/lib/rustlib/$TARGET/lib" - done - fi + if [ -n "$ARCH_BITS" ]; then + echo "Fix MinGW" + for i in crt2.o dllcrt2.o libmingwex.a libmsvcrt.a ; do + cp -f "/C/ProgramData/Chocolatey/lib/mingw/tools/install/mingw$ARCH_BITS/$ARCH-w64-mingw32/lib/$i" "$(rustc --print sysroot)/lib/rustlib/$TARGET/lib" + done + fi fi echo "Query rust and cargo versions" @@ -63,11 +64,11 @@ rustup show echo "Generate lockfile" N=5 n=0 -until [ $n -ge $N ] -do - if cargo generate-lockfile; then - break - fi - n=$((n+1)) - sleep 1 +until [ $n -ge $N ]; do + if cargo generate-lockfile; then + break + fi + + n=$((n+1)) + sleep 1 done diff --git a/ci/run-docker.sh b/ci/run-docker.sh index 042303846f3fe..a812ee7ab183a 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env sh +#!/bin/sh # Disable SC2086 as it confuses the docker command. # shellcheck disable=SC2086 @@ -10,18 +10,18 @@ set -ex # Default to assuming the CARGO_HOME is one directory up (to account for a `bin` # subdir) from where the `cargo` binary in `$PATH` lives. -DEFAULT_CARGO_HOME="$(dirname "$(dirname "$(command -v cargo)")")" +default_cargo_home="$(dirname "$(dirname "$(command -v cargo)")")" # If the CARGO_HOME env var is already set, use that. If it isn't set use the # default. -CARGO_HOME="${CARGO_HOME:-$DEFAULT_CARGO_HOME}" +export CARGO_HOME="${CARGO_HOME:-$default_cargo_home}" echo "${HOME}" pwd # Avoid "no space left on device" failure. if [ "${1}" = "aarch64-linux-android" ] ; then - docker system prune -af - docker system df + docker system prune -af + docker system df fi run() { @@ -37,21 +37,21 @@ run() { fi docker run \ - --rm \ - --user "$(id -u)":"$(id -g)" \ - --env LIBC_CI \ - --env LIBC_CI_ZBUILD_STD \ - --env CARGO_HOME=/cargo \ - --env CARGO_TARGET_DIR=/checkout/target \ - --volume "$CARGO_HOME":/cargo \ - --volume "$(rustc --print sysroot)":/rust:ro \ - --volume "$(pwd)":/checkout:ro \ - --volume "$(pwd)"/target:/checkout/target \ - $kvm \ - --init \ - --workdir /checkout \ - "libc-${1}" \ - sh -c "HOME=/tmp PATH=\$PATH:/rust/bin exec ci/run.sh ${1}" + --rm \ + --user "$(id -u)":"$(id -g)" \ + --env LIBC_CI \ + --env LIBC_CI_ZBUILD_STD \ + --env CARGO_HOME=/cargo \ + --env CARGO_TARGET_DIR=/checkout/target \ + --volume "$CARGO_HOME":/cargo \ + --volume "$(rustc --print sysroot)":/rust:ro \ + --volume "$(pwd)":/checkout:ro \ + --volume "$(pwd)"/target:/checkout/target \ + $kvm \ + --init \ + --workdir /checkout \ + "libc-${1}" \ + sh -c "HOME=/tmp PATH=\$PATH:/rust/bin exec ci/run.sh ${1}" } build_switch() { @@ -69,23 +69,23 @@ build_switch() { cp "$(command -v rustup)" "$(rustc --print sysroot)/bin" docker run \ - --rm \ - --user "$(id -u)":"$(id -g)" \ - --env LIBC_CI \ - --env CARGO_HOME=/cargo \ - --env CARGO_TARGET_DIR=/checkout/target \ - --volume "$CARGO_HOME":/cargo \ - --volume "$(rustc --print sysroot)":/rust:ro \ - --volume "$(pwd)":/checkout:ro \ - --volume "$(pwd)"/target:/checkout/target \ - --volume ~/.rustup:/.rustup:Z \ - $kvm \ - --init \ - --workdir /checkout \ - 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" + --rm \ + --user "$(id -u)":"$(id -g)" \ + --env LIBC_CI \ + --env CARGO_HOME=/cargo \ + --env CARGO_TARGET_DIR=/checkout/target \ + --volume "$CARGO_HOME":/cargo \ + --volume "$(rustc --print sysroot)":/rust:ro \ + --volume "$(pwd)":/checkout:ro \ + --volume "$(pwd)"/target:/checkout/target \ + --volume ~/.rustup:/.rustup:Z \ + $kvm \ + --init \ + --workdir /checkout \ + 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" } if [ -z "${1}" ]; then diff --git a/ci/run.sh b/ci/run.sh index 4de8087699e24..e01dd3c14a574 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -5,9 +5,9 @@ set -ex -MIRRORS_URL="https://ci-mirrors.rust-lang.org/libc" +mirrors_url="https://ci-mirrors.rust-lang.org/libc" -TARGET="${1}" +target="$1" # If we're going to run tests inside of a qemu image, then we don't need any of # the scripts below. Instead, download the image, prepare a filesystem which has @@ -16,104 +16,126 @@ TARGET="${1}" # It's assume that all images, when run with two disks, will run the `run.sh` # script from the second which we place inside. if [ "$QEMU" != "" ]; then - tmpdir=/tmp/qemu-img-creation - mkdir -p "${tmpdir}" + tmpdir=/tmp/qemu-img-creation + mkdir -p "${tmpdir}" - if [ -z "${QEMU#*.gz}" ]; then - # image is .gz : download and uncompress it - qemufile="$(echo "${QEMU%.gz}" | sed 's/\//__/g')" - if [ ! -f "${tmpdir}/${qemufile}" ]; then - curl --retry 5 "${MIRRORS_URL}/${QEMU}" | \ - gunzip -d > "${tmpdir}/${qemufile}" + if [ -z "${QEMU#*.gz}" ]; then + # image is .gz : download and uncompress it + qemufile="$(echo "${QEMU%.gz}" | sed 's/\//__/g')" + if [ ! -f "${tmpdir}/${qemufile}" ]; then + curl --retry 5 "${mirrors_url}/${QEMU}" | + gunzip -d > "${tmpdir}/${qemufile}" + fi + elif [ -z "${QEMU#*.xz}" ]; then + # image is .xz : download and uncompress it + qemufile="$(echo "${QEMU%.xz}" | sed 's/\//__/g')" + if [ ! -f "${tmpdir}/${qemufile}" ]; then + curl --retry 5 "${mirrors_url}/${QEMU}" | + unxz > "${tmpdir}/${qemufile}" + fi + else + # plain qcow2 image: just download it + qemufile="$(echo "${QEMU}" | sed 's/\//__/g')" + if [ ! -f "${tmpdir}/${qemufile}" ]; then + curl --retry 5 "${mirrors_url}/${QEMU}" \ + > "${tmpdir}/${qemufile}" + fi fi - elif [ -z "${QEMU#*.xz}" ]; then - # image is .xz : download and uncompress it - qemufile="$(echo "${QEMU%.xz}" | sed 's/\//__/g')" - if [ ! -f "${tmpdir}/${qemufile}" ]; then - curl --retry 5 "${MIRRORS_URL}/${QEMU}" | \ - unxz > "${tmpdir}/${qemufile}" - fi - else - # plain qcow2 image: just download it - qemufile="$(echo "${QEMU}" | sed 's/\//__/g')" - if [ ! -f "${tmpdir}/${qemufile}" ]; then - curl --retry 5 "${MIRRORS_URL}/${QEMU}" \ - > "${tmpdir}/${qemufile}" - fi - fi - # Create a mount a fresh new filesystem image that we'll later pass to QEMU. - # This will have a `run.sh` script will which use the artifacts inside to run - # on the host. - rm -f "${tmpdir}/libc-test.img" - mkdir "${tmpdir}/mount" + # Create a mount a fresh new filesystem image that we'll later pass to QEMU. + # This will have a `run.sh` script will which use the artifacts inside to run + # on the host. + rm -f "${tmpdir}/libc-test.img" + mkdir "${tmpdir}/mount" - # Do the standard rigamarole of cross-compiling an executable and then the - # script to run just executes the binary. - cargo build \ - --manifest-path libc-test/Cargo.toml \ - --target "${TARGET}" \ - --test main ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} - rm "${CARGO_TARGET_DIR}/${TARGET}"/debug/main-*.d - cp "${CARGO_TARGET_DIR}/${TARGET}"/debug/main-* "${tmpdir}"/mount/libc-test - # shellcheck disable=SC2016 - echo 'exec $1/libc-test' > "${tmpdir}/mount/run.sh" + # Do the standard rigamarole of cross-compiling an executable and then the + # script to run just executes the binary. + cargo build \ + --manifest-path libc-test/Cargo.toml \ + --target "$target" \ + --test main ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} + rm "${CARGO_TARGET_DIR}/${target}"/debug/main-*.d + cp "${CARGO_TARGET_DIR}/${target}"/debug/main-* "${tmpdir}"/mount/libc-test + # shellcheck disable=SC2016 + echo 'exec $1/libc-test' > "${tmpdir}/mount/run.sh" - du -sh "${tmpdir}/mount" - genext2fs \ - --root "${tmpdir}/mount" \ - --size-in-blocks 100000 \ - "${tmpdir}/libc-test.img" + du -sh "${tmpdir}/mount" + genext2fs \ + --root "${tmpdir}/mount" \ + --size-in-blocks 100000 \ + "${tmpdir}/libc-test.img" - # Pass -snapshot to prevent tampering with the disk images, this helps when - # running this script in development. The two drives are then passed next, - # first is the OS and second is the one we just made. Next the network is - # configured to work (I'm not entirely sure how), and then finally we turn off - # graphics and redirect the serial console output to out.log. - qemu-system-x86_64 \ - -m 1024 \ - -snapshot \ - -drive if=virtio,file="${tmpdir}/${qemufile}" \ - -drive if=virtio,file="${tmpdir}/libc-test.img" \ - -net nic,model=virtio \ - -net user \ - -nographic \ - -vga none 2>&1 | tee "${CARGO_TARGET_DIR}/out.log" - exec grep -E "^(PASSED)|(test result: ok)" "${CARGO_TARGET_DIR}/out.log" + # Pass -snapshot to prevent tampering with the disk images, this helps when + # running this script in development. The two drives are then passed next, + # first is the OS and second is the one we just made. Next the network is + # configured to work (I'm not entirely sure how), and then finally we turn off + # graphics and redirect the serial console output to out.log. + qemu-system-x86_64 \ + -m 1024 \ + -snapshot \ + -drive if=virtio,file="${tmpdir}/${qemufile}" \ + -drive if=virtio,file="${tmpdir}/libc-test.img" \ + -net nic,model=virtio \ + -net user \ + -nographic \ + -vga none 2>&1 | tee "${CARGO_TARGET_DIR}/out.log" + exec grep -E "^(PASSED)|(test result: ok)" "${CARGO_TARGET_DIR}/out.log" fi -if [ "$TARGET" = "s390x-unknown-linux-gnu" ]; then - # FIXME: s390x-unknown-linux-gnu often fails to test due to timeout, - # so we retry this N times. - N=5 - n=0 - passed=0 - until [ $n -ge $N ] - do - if [ "$passed" = "0" ]; then - if cargo test --no-default-features --manifest-path libc-test/Cargo.toml --target "${TARGET}" ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} ; then - passed=$((passed+1)) - continue - fi - elif [ "$passed" = "1" ]; then - if cargo test --manifest-path libc-test/Cargo.toml --target "${TARGET}" ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} ; then - passed=$((passed+1)) - continue - fi - elif [ "$passed" = "2" ]; then - if cargo test --features extra_traits --manifest-path libc-test/Cargo.toml --target "${TARGET}" ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"}; then - break - fi - fi - n=$((n+1)) - sleep 1 - done +if [ "$target" = "s390x-unknown-linux-gnu" ]; then + # FIXME: s390x-unknown-linux-gnu often fails to test due to timeout, + # so we retry this N times. + N=5 + n=0 + passed=0 + until [ $n -ge $N ]; do + if [ "$passed" = "0" ]; then + if cargo test \ + --no-default-features \ + --manifest-path libc-test/Cargo.toml \ + --target "$target" \ + ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} + then + passed=$((passed+1)) + continue + fi + elif [ "$passed" = "1" ]; then + if cargo test \ + --manifest-path libc-test/Cargo.toml \ + --target "$target" \ + ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} + then + passed=$((passed+1)) + continue + fi + elif [ "$passed" = "2" ]; then + if cargo test \ + --features extra_traits \ + --manifest-path libc-test/Cargo.toml \ + --target "$target" \ + ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} + then + break + fi + fi + n=$((n+1)) + sleep 1 + done else - cargo test --no-default-features --manifest-path libc-test/Cargo.toml \ - --target "${TARGET}" ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} + cargo test \ + --no-default-features \ + --manifest-path libc-test/Cargo.toml \ + --target "$target" \ + ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} - cargo test --manifest-path libc-test/Cargo.toml --target "${TARGET}" ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} + cargo test \ + --manifest-path libc-test/Cargo.toml \ + --target "$target" \ + ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} - RUST_BACKTRACE=1 cargo test --features extra_traits --manifest-path libc-test/Cargo.toml \ - --target "${TARGET}" ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} + RUST_BACKTRACE=1 cargo test \ + --features extra_traits \ + --manifest-path libc-test/Cargo.toml \ + --target "$target" \ + ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} fi diff --git a/ci/style.sh b/ci/style.sh index c8d49e163de96..59f8452552b73 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -11,8 +11,7 @@ rustfmt -V cargo fmt --all -- --check if shellcheck --version ; then - # GHA's shellcheck is too old (0.4.6) and cannot handle SC2153 correctly. - shellcheck -e SC2103 -e SC2153 ci/*.sh + shellcheck ci/*.sh else echo "shellcheck not found" exit 1 diff --git a/ci/test-runner-linux b/ci/test-runner-linux index 3ce551944d888..9ab029b0a7df2 100755 --- a/ci/test-runner-linux +++ b/ci/test-runner-linux @@ -2,8 +2,8 @@ set -e -arch=$1 -prog=$2 +arch="$1" +prog="$2" cd /qemu/init echo "#!/bin/sh\n/prog --color=never" > run_prog.sh @@ -13,11 +13,11 @@ find . | cpio --create --format='newc' --quiet | gzip > ../initrd.gz cd .. timeout 30s qemu-system-$arch \ - -m 1024 \ - -nographic \ - -kernel kernel \ - -initrd initrd.gz \ - -append init=/run_prog.sh > output || true + -m 1024 \ + -nographic \ + -kernel kernel \ + -initrd initrd.gz \ + -append init=/run_prog.sh > output || true # remove kernel messages tr -d '\r' < output | grep -Ev '^\[' diff --git a/ci/wasi.sh b/ci/wasi.sh index a06c1f45af11a..1b72d356fac06 100644 --- a/ci/wasi.sh +++ b/ci/wasi.sh @@ -18,8 +18,8 @@ apt-get install -y --no-install-recommends \ wasmtime=24.0.0 wasi_sdk=24 -curl -L https://github.com/bytecodealliance/wasmtime/releases/download/v$wasmtime/wasmtime-v$wasmtime-x86_64-linux.tar.xz | \ - tar xJf - +curl -L https://github.com/bytecodealliance/wasmtime/releases/download/v$wasmtime/wasmtime-v$wasmtime-x86_64-linux.tar.xz | + tar xJf - mv wasmtime-v$wasmtime-x86_64-linux wasmtime # The pre-built `*.deb` files for wasi-sdk install to `/opt/wasi-sdk` From d9d540416fe87f4811b07f1adad8f3eb39f63724 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 14 Nov 2024 23:18:29 -0600 Subject: [PATCH 0273/1228] ci: run shellcheck on all scripts (backport ) (cherry picked from commit 4230b417cc04965938055e9580010ba653cb12a9) --- ci/style.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/style.sh b/ci/style.sh index 59f8452552b73..131632ff21dd4 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -11,7 +11,7 @@ rustfmt -V cargo fmt --all -- --check if shellcheck --version ; then - shellcheck ci/*.sh + find . -name '*.sh' -exec shellcheck {} ';' else echo "shellcheck not found" exit 1 From cb9828af0a7eadf4c8ba91ebc670b4d4c39c2059 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 15:21:01 -0600 Subject: [PATCH 0274/1228] ci: Remove the logic to handle old rust versions (backport ) (cherry picked from commit c8aea7b2d59cd674e8d99909fd8de1a2c1b4c72b) --- ci/build.sh | 39 +++++++++++---------------------------- 1 file changed, 11 insertions(+), 28 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index b32573c31f8c6..cd1ef709dd6a6 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -110,12 +110,17 @@ test_target() { rust_linux_targets="\ aarch64-linux-android \ aarch64-unknown-linux-gnu \ +aarch64-unknown-linux-musl \ arm-linux-androideabi \ arm-unknown-linux-gnueabi \ arm-unknown-linux-gnueabihf \ +arm-unknown-linux-musleabi \ +arm-unknown-linux-musleabihf \ armv7-linux-androideabi \ armv7-unknown-linux-gnueabihf \ +armv7-unknown-linux-musleabihf \ i586-unknown-linux-gnu \ +i586-unknown-linux-musl \ i686-linux-android \ i686-unknown-freebsd \ i686-unknown-linux-gnu \ @@ -124,29 +129,17 @@ powerpc-unknown-linux-gnu \ powerpc64-unknown-linux-gnu \ powerpc64le-unknown-linux-gnu \ s390x-unknown-linux-gnu \ +sparc64-unknown-linux-gnu \ +sparcv9-sun-solaris \ +wasm32-unknown-emscripten \ +wasm32-unknown-unknown \ +x86_64-linux-android \ x86_64-unknown-freebsd \ x86_64-unknown-linux-gnu \ x86_64-unknown-linux-musl \ x86_64-unknown-netbsd \ " -rust_gt_1_13_linux_targets="\ -arm-unknown-linux-musleabi \ -arm-unknown-linux-musleabihf \ -armv7-unknown-linux-musleabihf \ -sparc64-unknown-linux-gnu \ -wasm32-unknown-emscripten \ -x86_64-linux-android \ -" -rust_gt_1_19_linux_targets="\ -aarch64-unknown-linux-musl \ -sparcv9-sun-solaris \ -wasm32-unknown-unknown \ -" -rust_gt_1_24_linux_targets="\ -i586-unknown-linux-musl \ -" - rust_nightly_linux_targets="\ aarch64-unknown-fuchsia \ armv5te-unknown-linux-gnueabi \ @@ -154,9 +147,9 @@ armv5te-unknown-linux-musleabi \ i686-pc-windows-gnu \ riscv64gc-unknown-linux-gnu \ x86_64-fortanix-unknown-sgx \ -x86_64-unknown-fuchsia \ x86_64-pc-solaris \ x86_64-pc-windows-gnu \ +x86_64-unknown-fuchsia \ x86_64-unknown-illumos \ x86_64-unknown-linux-gnux32 \ x86_64-unknown-redox \ @@ -185,16 +178,6 @@ case "${OS}" in linux*) targets="$rust_linux_targets" - if [ "$rust" != "1.13.0" ]; then - targets="$targets $rust_gt_1_13_linux_targets" - if [ "$rust" != "1.19.0" ]; then - targets="$targets $rust_gt_1_19_linux_targets" - if [ "${rust}" != "1.24.0" ]; then - targets="$targets $rust_gt_1_24_linux_targets" - fi - fi - fi - if [ "$rust" = "nightly" ]; then targets="$targets $rust_nightly_linux_targets" fi From 180fe6ffdd8ddc26da68a5c694f948283ad93ebd Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 15:22:40 -0600 Subject: [PATCH 0275/1228] ci: make aarch64-apple-darwin not a nightly-only target (backport ) (cherry picked from commit e11c0cd67b2b8236721a9d1e4c94198e5a179b98) --- ci/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index cd1ef709dd6a6..0239309ddf355 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -156,13 +156,13 @@ x86_64-unknown-redox \ " rust_apple_targets="\ +aarch64-apple-darwin \ aarch64-apple-ios \ x86_64-apple-darwin \ x86_64-apple-ios \ " rust_nightly_apple_targets="\ -aarch64-apple-darwin \ " # Must start with `x86_64-pc-windows-msvc` first. From fff4f8d2f6f8d70737be28d7cd2b1e675be870f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20S=C3=A1nchez=20Mu=C3=B1oz?= Date: Thu, 26 Sep 2024 18:22:17 +0200 Subject: [PATCH 0276/1228] Bump libc-test to Rust 2021 Edition (#3905) (backport ) (cherry picked from commit 09d7aa0d84f9b87d1a8bcb96dc5727282084397d) --- libc-test/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 167cdbc0f08a6..62329d609a32f 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "libc-test" version = "0.2.155" -edition = "2018" +edition = "2021" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" build = "build.rs" From 6e199c95b31f0149ae1047efbd24e1a444b1f5a4 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 01:58:53 -0600 Subject: [PATCH 0277/1228] triagebot: Add an autolabel for CI (backport ) (cherry picked from commit 82b82fb42527360fdb4c8d9c6e9a6323b3df02af) --- triagebot.toml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/triagebot.toml b/triagebot.toml index 25a0a80478b1f..169d1ab20fd90 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -9,6 +9,13 @@ contributing_url = "https://github.com/rust-lang/libc/blob/HEAD/CONTRIBUTING.md" [assign.owners] "*" = ["@JohnTitor"] +[autolabel."A-CI"] +trigger_files = [ + ".cirrus.yml", + ".github", + "src/ci", +] + [autolabel."S-waiting-on-review"] new_pr = true From 61da9bcac84f02192425f67788b751bbbd290ba6 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Sun, 10 Nov 2024 14:44:52 +0100 Subject: [PATCH 0278/1228] Add missing sysctl net types for mac (backport ) (cherry picked from commit 57a1be4f5e4ae95a8e79d1217bd280cc9089b39c) --- src/unix/bsd/apple/mod.rs | 71 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index b22ae27ccebc3..d05691dd2dd68 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1188,6 +1188,51 @@ s! { pub struct host_cpu_load_info { pub cpu_ticks: [::natural_t; CPU_STATE_MAX as usize], } + + // net/if_mib.h + pub struct ifmibdata { + /// Name of interface + pub ifmd_name: [::c_char; ::IFNAMSIZ], + /// Number of promiscuous listeners + pub ifmd_pcount: ::c_uint, + /// Interface flags + pub ifmd_flags: ::c_uint, + /// Instantaneous length of send queue + pub ifmd_snd_len: ::c_uint, + /// Maximum length of send queue + pub ifmd_snd_maxlen: ::c_uint, + /// Number of drops in send queue + pub ifmd_snd_drops: ::c_uint, + /// For future expansion + pub ifmd_filler: [::c_uint; 4], + /// Generic information and statistics + pub ifmd_data: if_data64, + } + + pub struct ifs_iso_8802_3 { + pub dot3StatsAlignmentErrors: u32, + pub dot3StatsFCSErrors: u32, + pub dot3StatsSingleCollisionFrames: u32, + pub dot3StatsMultipleCollisionFrames: u32, + pub dot3StatsSQETestErrors: u32, + pub dot3StatsDeferredTransmissions: u32, + pub dot3StatsLateCollisions: u32, + pub dot3StatsExcessiveCollisions: u32, + pub dot3StatsInternalMacTransmitErrors: u32, + pub dot3StatsCarrierSenseErrors: u32, + pub dot3StatsFrameTooLongs: u32, + pub dot3StatsInternalMacReceiveErrors: u32, + pub dot3StatsEtherChipSet: u32, + pub dot3StatsMissedFrames: u32, + pub dot3StatsCollFrequencies: [u32; 16], + pub dot3Compliance: u32, + } + + pub struct if_family_id { + pub iffmid_len: u32, + pub iffmid_id: u32, + pub iffmid_str: [::c_char; 1], + } } s_no_extra_traits! { @@ -5529,6 +5574,32 @@ pub const HOST_VM_INFO64_COUNT: mach_msg_type_number_t = (::mem::size_of::() / ::mem::size_of::()) as mach_msg_type_number_t; +// bsd/net/if_mib.h +/// Non-interface-specific +pub const IFMIB_SYSTEM: ::c_int = 1; +/// Per-interface data table +pub const IFMIB_IFDATA: ::c_int = 2; +/// All interfaces data at once +pub const IFMIB_IFALLDATA: ::c_int = 3; + +/// Generic stats for all kinds of ifaces +pub const IFDATA_GENERAL: ::c_int = 1; +/// Specific to the type of interface +pub const IFDATA_LINKSPECIFIC: ::c_int = 2; +/// Addresses assigned to interface +pub const IFDATA_ADDRS: ::c_int = 3; +/// Multicast addresses assigned to interface +pub const IFDATA_MULTIADDRS: ::c_int = 4; + +/// Number of interfaces configured +pub const IFMIB_IFCOUNT: ::c_int = 1; + +/// Functions not specific to a type of iface +pub const NETLINK_GENERIC: ::c_int = 0; + +pub const DOT3COMPLIANCE_STATS: ::c_int = 1; +pub const DOT3COMPLIANCE_COLLS: ::c_int = 2; + f! { pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { From 23f263e529ebb4a6ea736fd36c7866c41c42681b Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Sun, 10 Nov 2024 14:53:39 +0100 Subject: [PATCH 0279/1228] Add `net/if_mib.h` header for mac test build (backport ) (cherry picked from commit 1bcda055f67bd5af8481dd3d4200d31e74ea0730) --- libc-test/build.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index bbdafcf150cb5..ce2f75eb312aa 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -221,6 +221,7 @@ fn test_apple(target: &str) { "net/if.h", "net/if_arp.h", "net/if_dl.h", + "net/if_mib.h", "net/if_utun.h", "net/if_var.h", "net/ndrv.h", From 8a4aedba0a78a5651206d409cab684f75db717e8 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 21:38:42 -0600 Subject: [PATCH 0280/1228] Make macros.rs more similar to what is on `main` --- src/macros.rs | 166 +++++++++++++++++++++++++++++++------------------- 1 file changed, 104 insertions(+), 62 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index cb77cc6c2e822..c528608c83de3 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -61,13 +61,23 @@ macro_rules! cfg_if { }; } +/// Implement `Clone` and `Copy` for a struct, as well as `Debug`, `Eq`, `Hash`, and +/// `PartialEq` if the `extra_traits` feature is enabled. +/// +/// Use [`s_no_extra_traits`] for structs where the `extra_traits` feature does not +/// make sense, and for unions. macro_rules! s { - ($($(#[$attr:meta])* pub $t:ident $i:ident { $($field:tt)* })*) => ($( + ($( + $(#[$attr:meta])* + pub $t:ident $i:ident { $($field:tt)* } + )*) => ($( s!(it: $(#[$attr])* pub $t $i { $($field)* }); )*); + (it: $(#[$attr:meta])* pub union $i:ident { $($field:tt)* }) => ( compile_error!("unions cannot derive extra traits, use s_no_extra_traits instead"); ); + (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => ( __item! { #[repr(C)] @@ -85,10 +95,38 @@ macro_rules! s { ); } +/// Implement `Clone` and `Copy` for a tuple struct, as well as `Debug`, `Eq`, `Hash`, +/// and `PartialEq` if the `extra_traits` feature is enabled. +/// +/// This is the same as [`s`] but works for tuple structs. +macro_rules! s_paren { + ($( + $(#[$attr:meta])* + pub struct $i:ident ( $($field:tt)* ); + )* ) => ($( + __item! { + #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] + $(#[$attr])* + pub struct $i ( $($field)* ); + } + impl ::Copy for $i {} + impl ::Clone for $i { + fn clone(&self) -> $i { *self } + } + )*); +} + +/// Implement `Clone` and `Copy` for a struct with no `extra_traits` feature. +/// +/// Most items will prefer to use [`s`]. macro_rules! s_no_extra_traits { - ($($(#[$attr:meta])* pub $t:ident $i:ident { $($field:tt)* })*) => ($( + ($( + $(#[$attr:meta])* + pub $t:ident $i:ident { $($field:tt)* } + )*) => ($( s_no_extra_traits!(it: $(#[$attr])* pub $t $i { $($field)* }); )*); + (it: $(#[$attr:meta])* pub union $i:ident { $($field:tt)* }) => ( __item! { #[repr(C)] @@ -101,6 +139,7 @@ macro_rules! s_no_extra_traits { fn clone(&self) -> $i { *self } } ); + (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => ( __item! { #[repr(C)] @@ -116,14 +155,26 @@ macro_rules! s_no_extra_traits { ); } +/// Specify that an enum should have no traits that aren't specified in the macro +/// invocation, i.e. no `Clone` or `Copy`. macro_rules! missing { - ($($(#[$attr:meta])* pub enum $i:ident {})*) => ($( - $(#[$attr])* #[allow(missing_copy_implementations)] pub enum $i { } + ($( + $(#[$attr:meta])* + pub enum $i:ident {} + )*) => ($( + $(#[$attr])* + #[allow(missing_copy_implementations)] + pub enum $i { } )*); } +/// Implement `Clone` and `Copy` for an enum, as well as `Debug`, `Eq`, `Hash`, and +/// `PartialEq` if the `extra_traits` feature is enabled. macro_rules! e { - ($($(#[$attr:meta])* pub enum $i:ident { $($field:tt)* })*) => ($( + ($( + $(#[$attr:meta])* + pub enum $i:ident { $($field:tt)* } + )*) => ($( __item! { #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] $(#[$attr])* @@ -136,20 +187,6 @@ macro_rules! e { )*); } -macro_rules! s_paren { - ($($(#[$attr:meta])* pub struct $i:ident ( $($field:tt)* ); )* ) => ($( - __item! { - #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] - $(#[$attr])* - pub struct $i ( $($field)* ); - } - impl ::Copy for $i {} - impl ::Clone for $i { - fn clone(&self) -> $i { *self } - } - )*); -} - // This is a pretty horrible hack to allow us to conditionally mark // some functions as 'const', without requiring users of this macro // to care about the "const-extern-fn" feature. @@ -179,92 +216,97 @@ macro_rules! s_paren { // 'f!' block cfg_if! { if #[cfg(libc_const_extern_fn)] { + /// Define an `unsafe` function that is const as long as `const-extern-fn` is enabled. macro_rules! f { - ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident( - $($arg:ident: $argty:ty),* - ) -> $ret:ty { - $($body:stmt);* - })*) => ($( + ($( + $(#[$attr:meta])* + pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),*) -> $ret:ty { + $($body:stmt);* + } + )*) => ($( #[inline] $(#[$attr])* - pub $($constness)* unsafe extern fn $i($($arg: $argty),* - ) -> $ret { + pub $($constness)* unsafe extern fn $i($($arg: $argty),*) -> $ret { $($body);* } )*) } + /// Define a safe function that is const as long as `const-extern-fn` is enabled. macro_rules! safe_f { - ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident( - $($arg:ident: $argty:ty),* - ) -> $ret:ty { - $($body:stmt);* - })*) => ($( + ($( + $(#[$attr:meta])* + pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),*) -> $ret:ty { + $($body:stmt);* + } + )*) => ($( #[inline] $(#[$attr])* - pub $($constness)* extern fn $i($($arg: $argty),* - ) -> $ret { + pub $($constness)* extern fn $i($($arg: $argty),*) -> $ret { $($body);* } )*) } + /// A nonpublic function that is const as long as `const-extern-fn` is enabled. macro_rules! const_fn { - ($($(#[$attr:meta])* $({$constness:ident})* fn $i:ident( - $($arg:ident: $argty:ty),* - ) -> $ret:ty { - $($body:stmt);* - })*) => ($( + ($( + $(#[$attr:meta])* + $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),*) -> $ret:ty { + $($body:stmt);* + } + )*) => ($( #[inline] $(#[$attr])* - $($constness)* fn $i($($arg: $argty),* - ) -> $ret { + $($constness)* fn $i($($arg: $argty),*) -> $ret { $($body);* } )*) } - } else { + /// Define an `unsafe` function that is const as long as `const-extern-fn` is enabled. macro_rules! f { - ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident( - $($arg:ident: $argty:ty),* - ) -> $ret:ty { - $($body:stmt);* - })*) => ($( + ($( + $(#[$attr:meta])* + pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),*) -> $ret:ty { + $($body:stmt);* + } + )*) => ($( #[inline] $(#[$attr])* - pub unsafe extern fn $i($($arg: $argty),* - ) -> $ret { + pub unsafe extern fn $i($($arg: $argty),*) -> $ret { $($body);* } )*) } + /// Define a safe function that is const as long as `const-extern-fn` is enabled. macro_rules! safe_f { - ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident( - $($arg:ident: $argty:ty),* - ) -> $ret:ty { - $($body:stmt);* - })*) => ($( + ($( + $(#[$attr:meta])* + pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),*) -> $ret:ty { + $($body:stmt);* + } + )*) => ($( #[inline] $(#[$attr])* - pub extern fn $i($($arg: $argty),* - ) -> $ret { + pub extern fn $i($($arg: $argty),*) -> $ret { $($body);* } )*) } + /// A nonpublic function that is const as long as `const-extern-fn` is enabled. macro_rules! const_fn { - ($($(#[$attr:meta])* $({$constness:ident})* fn $i:ident( - $($arg:ident: $argty:ty),* - ) -> $ret:ty { - $($body:stmt);* - })*) => ($( + ($( + $(#[$attr:meta])* + $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),*) -> $ret:ty { + $($body:stmt);* + } + )*) => ($( #[inline] $(#[$attr])* - fn $i($($arg: $argty),* - ) -> $ret { + fn $i($($arg: $argty),*) -> $ret { $($body);* } )*) From 179acc2341aa6722faf94752124afb3a7012fe8e Mon Sep 17 00:00:00 2001 From: whosehang Date: Wed, 24 Apr 2024 13:54:05 +0800 Subject: [PATCH 0281/1228] chore: fix some typos Signed-off-by: whosehang (backport ) (cherry picked from commit e2e73d75fada8cfb606239b3967a66ef8f8eda09) --- src/teeos/mod.rs | 6 +++--- src/unix/haiku/native.rs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/teeos/mod.rs b/src/teeos/mod.rs index 4f1fef110dd93..35232d63b9778 100644 --- a/src/teeos/mod.rs +++ b/src/teeos/mod.rs @@ -48,7 +48,7 @@ pub type ssize_t = isize; pub type pid_t = c_int; -// aarch64 specifc +// aarch64 specific pub type c_char = u8; pub type wchar_t = u32; @@ -61,9 +61,9 @@ pub type c_ulong = u64; pub struct _CLongDouble(pub u128); // long double in C means A float point value, which has 128bit length. -// but some bit maybe not used, so the really length of long double could be 80(x86) or 128(power pc/IEEE) +// but some bit maybe not used, so the real length of long double could be 80(x86) or 128(power pc/IEEE) // this is different from f128(not stable and not included default) in Rust, so we use u128 for FFI(Rust to C). -// this is unstable and will couse to memfault/data abort. +// this is unstable and will cause to memfault/data abort. pub type c_longdouble = _CLongDouble; pub type pthread_t = c_ulong; diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs index 50b610fd853fb..6546031f7293f 100644 --- a/src/unix/haiku/native.rs +++ b/src/unix/haiku/native.rs @@ -1300,7 +1300,7 @@ extern "C" { pub fn find_path_for_path_etc( path: *const ::c_char, dependency: *const ::c_char, - architectur: *const ::c_char, + architecture: *const ::c_char, baseDirectory: path_base_directory, subPath: *const ::c_char, flags: u32, From 5d234d26a814ba0b22c0e5c4cd14f3c97497e634 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 21:44:40 -0600 Subject: [PATCH 0282/1228] docs: Take documentation from `main` Just make the docs identical across the two branches. Effectively backports . --- CONTRIBUTING.md | 46 ++++++++++++++++++++++++++++++++++++++-------- README.md | 17 +++++++++-------- 2 files changed, 47 insertions(+), 16 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ee4deaa003fbd..2090a0aaa689e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,12 +3,43 @@ Welcome! If you are reading this document, it means you are interested in contributing to the `libc` crate. -## v0.2 changes +## v1.0 Roadmap -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. +`libc` has two active branches: `main` and `libc-0.2`. `main` is for active +development of the upcoming v1.0 release, and should be the target of all pull +requests. `libc-0.2` is for updates to the currently released version. + +If a pull request to `main` is a good candidate for inclusion in an `0.2.x` +release, include `@rustbot label stable-nominated` in a comment to propose this. +Good candidates will usually meet the following: + +1. The included changes are non-breaking. +2. The change applies cleanly to both branches. +3. There is a usecase that justifies inclusion in a stable release (all + additions should always have a usecase, hopefully). + +Once a `stable-nominated` PR targeting `main` has merged, it can be cherry +picked to the `libc-0.2` branch. A maintainer will likely do these cherry picks +in a batch. + +Alternatively, you can start this process yourself by creating a new branch +based on `libc-0.2` and running `git cherry-pick -xe commit-sha-on-main` +(`git +cherry-pick -xe start-sha^..end-sha` if a range of commits is needed). +`git` will automatically add the "cherry picked from commit" note, but try to +add a backport note so the original PR gets crosslinked: + +``` +# ... original commit message ... + +(backport ) # add manually +(cherry picked from commit 104b6a4ae31c726814c36318dc718470cc96e167) # added by git +``` + +Once the cherry-pick is complete, open a PR targeting `libc-0.2`. + +See the [tracking issue](https://github.com/rust-lang/libc/issues/3248) for +details. ## Adding an API @@ -51,7 +82,7 @@ With that in mind, the steps for adding a new API are: 5. Wait for a merge! 1: Note that this list has nothing to do with any Unix or Posix -standard, it's just a list shared between all OSs that declare `#[cfg(unix)]`. +standard, it's just a list shared among all OSs that declare `#[cfg(unix)]`. ## Test before you commit @@ -79,13 +110,12 @@ are: - The `note` field should have a reason to deprecate and a tracking issue to call for comments (e.g., "We consider removing this as the upstream removed it. If you're using it, please comment on #XXX"). - 2. If we don't see any concerns for a while, do the change actually. ## Supported target policy When Rust removes a support for a target, the libc crate also may remove the -support anytime. +support at any time. ## Releasing your change to crates.io diff --git a/README.md b/README.md index ec095cb4a43f8..f483563e98ad3 100644 --- a/README.md +++ b/README.md @@ -20,14 +20,16 @@ More detailed information about the design of this library can be found in its [rfc]: https://github.com/rust-lang/rfcs/blob/HEAD/text/1291-promote-libc.md [windows-sys]: https://docs.rs/windows-sys -## v0.3 Roadmap +## v1.0 Roadmap -The main branch is now for v0.3 which has some breaking changes. +Currently, `libc` has two active branches: `main` for the upcoming v1.0 release, +and `libc-0.2` for the currently published version. By default all pull requests +should target `main`; once reviewed, they can be cherry picked to the `libc-0.2` +branch if needed. -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. +We will stop making new v0.2 releases once v1.0 is released. -See the [tracking issue](https://github.com/rust-lang/libc/issues/3248) for +See the section in [CONTRIBUTING.md](CONTRIBUTING.md#v10-roadmap) for more details. ## Usage @@ -51,14 +53,13 @@ libc = "0.2" use Rust >= 1.62, this feature is implicitly enabled. Otherwise it requires a nightly rustc. -* **deprecated**: `use_std` is deprecated, and is equivalent to `std`. - ## Rust version support The minimum supported Rust toolchain version is currently **Rust 1.63**. Increases to the MSRV are allowed to change without a major (i.e. semver- -breaking) release in order to avoid a ripple effect in the ecosystem. +breaking) release in order to avoid a ripple effect in the ecosystem. A policy +for when this may change is a work in progress. `libc` may continue to compile with Rust versions older than the current MSRV but this is not guaranteed. From 8d68ec6f3a19fc2573061e5d223b8b543188dcca Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 21:50:08 -0600 Subject: [PATCH 0283/1228] Eliminate uses of `struct_formatter` This pattern was previously used with `cfg` fields but is no longer needed. --- src/unix/aix/powerpc64.rs | 16 ++++++++-------- src/unix/bsd/freebsdlike/freebsd/mod.rs | 19 ++++++++----------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index 45f783ec752cf..e7f1b670823f8 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -374,14 +374,14 @@ cfg_if! { } 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() + fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { + f.debug_struct("fileops_t") + .field("fo_rw", &self.fo_rw) + .field("fo_ioctl", &self.fo_ioctl) + .field("fo_select", &self.fo_select) + .field("fo_close", &self.fo_close) + .field("fo_fstat", &self.fo_fstat) + .finish() } } impl ::hash::Hash for fileops_t { diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 5660fd154778c..afc35f8f54651 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1720,17 +1720,14 @@ cfg_if! { } impl Eq for xucred {} impl ::fmt::Debug for xucred { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let mut struct_formatter = f.debug_struct("xucred"); - struct_formatter.field("cr_version", &self.cr_version); - struct_formatter.field("cr_uid", &self.cr_uid); - struct_formatter.field("cr_ngroups", &self.cr_ngroups); - struct_formatter.field("cr_groups", &self.cr_groups); - struct_formatter.field( - "cr_pid__c_anonymous_union", - &self.cr_pid__c_anonymous_union - ); - struct_formatter.finish() + fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { + f.debug_struct("xucred") + .field("cr_version", &self.cr_version) + .field("cr_uid", &self.cr_uid) + .field("cr_ngroups", &self.cr_ngroups) + .field("cr_groups", &self.cr_groups) + .field("cr_pid__c_anonymous_union", &self.cr_pid__c_anonymous_union) + .finish() } } impl ::hash::Hash for xucred { From 1a23aa67fe0b1c1fb8d7224623ff3d77f25adae1 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 21:59:52 -0600 Subject: [PATCH 0284/1228] dragonfly: Add a note for items that differ between the branches Trying to sync these branches up is pretty tricky. Add comments as indicators when the diff between `main` and `libc-0.2` is expected to be different. --- src/unix/bsd/freebsdlike/dragonfly/errno.rs | 2 ++ src/unix/bsd/freebsdlike/dragonfly/mod.rs | 1 + 2 files changed, 3 insertions(+) diff --git a/src/unix/bsd/freebsdlike/dragonfly/errno.rs b/src/unix/bsd/freebsdlike/dragonfly/errno.rs index 5fe6bb89cf2e5..5ec0f2ed5fd00 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/errno.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/errno.rs @@ -1,3 +1,5 @@ +/* DIFF(main): module removed in de76fee6 */ + // DragonFlyBSD's __error function is declared with "static inline", so it must // be implemented in the libc crate, as a pointer to a static thread_local. f! { diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 6d778476fa444..c6d7370359e1e 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -1737,6 +1737,7 @@ extern "C" { ) -> vm_map_entry_t; } +// DIFF(main): module removed in de76fee6 cfg_if! { if #[cfg(libc_thread_local)] { mod errno; From c55dfcf68c28b4d61e5032aca66d349a9dc81c3b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 22:18:17 -0600 Subject: [PATCH 0285/1228] Add diff indicators for POSIX_SPAWN_* type change These were changed in f62eb023ab ("Set type of POSIX_SPAWN_* flags to c_short"). PR: --- src/unix/aix/mod.rs | 1 + src/unix/bsd/apple/mod.rs | 1 + src/unix/bsd/freebsdlike/freebsd/mod.rs | 1 + src/unix/bsd/netbsdlike/mod.rs | 1 + src/unix/haiku/mod.rs | 2 ++ src/unix/linux_like/linux/mod.rs | 1 + src/unix/nto/mod.rs | 1 + 7 files changed, 8 insertions(+) diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 2104403a1d453..58d606f6b45f9 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -1253,6 +1253,7 @@ pub const ENTER: ::c_int = 1; pub const SEM_FAILED: *mut sem_t = -1isize as *mut ::sem_t; // spawn.h +// DIFF(main): changed to `c_short` in f62eb023ab pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x1; pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x2; pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x4; diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index d05691dd2dd68..aec1b03b53a94 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -5116,6 +5116,7 @@ pub const MNT_SNAPSHOT: ::c_int = 0x40000000; pub const MNT_NOBLOCK: ::c_int = 0x00020000; // sys/spawn.h: +// DIFF(main): changed to `c_short` in f62eb023ab pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x0001; pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x0002; pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x0004; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 5660fd154778c..4a02828c9a047 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -3988,6 +3988,7 @@ pub const RTP_PRIO_REALTIME: ::c_ushort = 2; pub const RTP_PRIO_NORMAL: ::c_ushort = 3; pub const RTP_PRIO_IDLE: ::c_ushort = 4; +// DIFF(main): changed to `c_short` in f62eb023ab pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x04; diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index 2c0c8d540fed5..6bdaae48dcbfe 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -369,6 +369,7 @@ pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; pub const POSIX_MADV_WILLNEED: ::c_int = 3; pub const POSIX_MADV_DONTNEED: ::c_int = 4; +// DIFF(main): changed to `c_short` in f62eb023ab pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x04; diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 6f76ab26befd6..748196fe3ff8a 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1100,6 +1100,7 @@ pub const SA_ONESHOT: ::c_int = SA_RESETHAND; pub const SS_ONSTACK: ::c_int = 0x1; pub const SS_DISABLE: ::c_int = 0x2; +// DIFF(main): changed to `c_int` in 500365e1 pub const FD_SETSIZE: usize = 1024; pub const RTLD_LOCAL: ::c_int = 0x0; @@ -1550,6 +1551,7 @@ pub const LOG_PERROR: ::c_int = 32 << 12; pub const LOG_NOWAIT: ::c_int = 64 << 12; // spawn.h +// DIFF(main): changed to `c_short` in f62eb023ab pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x10; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 5629fe0d0a608..aa7213f77ee70 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -3036,6 +3036,7 @@ pub const ETH_P_PHONET: ::c_int = 0x00F5; pub const ETH_P_IEEE802154: ::c_int = 0x00F6; pub const ETH_P_CAIF: ::c_int = 0x00F7; +// DIFF(main): changed to `c_short` in f62eb023ab pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x04; diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index eff3f8003bb45..1f87c7390cc0d 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -1609,6 +1609,7 @@ pub const ITIMER_REAL: ::c_int = 0; pub const ITIMER_VIRTUAL: ::c_int = 1; pub const ITIMER_PROF: ::c_int = 2; +// DIFF(main): changed to `c_short` in f62eb023ab pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x00000010; pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x00000001; pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x00000004; From 171613816590db287f05e91416173bfda437d599 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Wed, 24 Jan 2024 13:55:18 +0800 Subject: [PATCH 0286/1228] android: add missing syscall constants This adds all syscall constants that are available in NDK `r26` but were so far missing in this library. See `semver/android.txt` changes for the complete list. Refs: * https://android.googlesource.com/platform/bionic/+/refs/tags/ndk-r26/libc/kernel/uapi/asm-generic/unistd.h * https://android.googlesource.com/platform/bionic/+/refs/tags/ndk-r26/libc/include/bits/glibc-syscalls.h (backport ) (cherry picked from commit e89781f5cce16b499308fa83f0545c2750d223ad) --- libc-test/semver/android-aarch64.txt | 1 + libc-test/semver/android-x86_64.txt | 1 + libc-test/semver/android.txt | 16 ++++++++++++++++ src/unix/linux_like/android/b32/arm.rs | 16 ++++++++++++++++ src/unix/linux_like/android/b32/x86/mod.rs | 17 +++++++++++++++++ .../linux_like/android/b64/aarch64/mod.rs | 19 ++++++++++++++++++- .../linux_like/android/b64/riscv64/mod.rs | 18 +++++++++++++++++- src/unix/linux_like/android/b64/x86_64/mod.rs | 17 +++++++++++++++++ 8 files changed, 103 insertions(+), 2 deletions(-) diff --git a/libc-test/semver/android-aarch64.txt b/libc-test/semver/android-aarch64.txt index ce27097a5b5b6..ecc3cef4f91ee 100644 --- a/libc-test/semver/android-aarch64.txt +++ b/libc-test/semver/android-aarch64.txt @@ -14,6 +14,7 @@ PROT_MTE SYS_arch_specific_syscall SYS_fcntl SYS_lseek +SYS_memfd_secret SYS_mmap SYS_syscalls __system_property_wait diff --git a/libc-test/semver/android-x86_64.txt b/libc-test/semver/android-x86_64.txt index 05919bb6f40e5..80471e37403fc 100644 --- a/libc-test/semver/android-x86_64.txt +++ b/libc-test/semver/android-x86_64.txt @@ -46,6 +46,7 @@ SYS_arch_prctl SYS_epoll_ctl_old SYS_epoll_wait_old SYS_kexec_file_load +SYS_memfd_secret SYS_msgctl SYS_msgget SYS_msgrcv diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 21ce51c09f10b..b679acdcf28ed 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -2488,7 +2488,9 @@ SYS_clock_gettime SYS_clock_nanosleep SYS_clock_settime SYS_clone +SYS_clone3 SYS_close +SYS_close_range SYS_connect SYS_copy_file_range SYS_delete_module @@ -2497,12 +2499,14 @@ SYS_dup3 SYS_epoll_create1 SYS_epoll_ctl SYS_epoll_pwait +SYS_epoll_pwait2 SYS_eventfd2 SYS_execve SYS_execveat SYS_exit SYS_exit_group SYS_faccessat +SYS_faccessat2 SYS_fallocate SYS_fanotify_init SYS_fanotify_mark @@ -2524,6 +2528,7 @@ SYS_fsopen SYS_fspick SYS_fsync SYS_futex +SYS_futex_waitv SYS_get_mempolicy SYS_get_robust_list SYS_getcpu @@ -2569,6 +2574,9 @@ SYS_kcmp SYS_kexec_load SYS_keyctl SYS_kill +SYS_landlock_add_rule +SYS_landlock_create_ruleset +SYS_landlock_restrict_self SYS_lgetxattr SYS_linkat SYS_listen @@ -2588,6 +2596,7 @@ SYS_mlock SYS_mlock2 SYS_mlockall SYS_mount +SYS_mount_setattr SYS_move_mount SYS_move_pages SYS_mprotect @@ -2608,8 +2617,11 @@ SYS_nfsservctl SYS_open_by_handle_at SYS_open_tree SYS_openat +SYS_openat2 SYS_perf_event_open SYS_personality +SYS_pidfd_getfd +SYS_pidfd_open SYS_pidfd_send_signal SYS_pipe2 SYS_pivot_root @@ -2622,6 +2634,8 @@ SYS_pread64 SYS_preadv SYS_preadv2 SYS_prlimit64 +SYS_process_madvise +SYS_process_mrelease SYS_process_vm_readv SYS_process_vm_writev SYS_pselect6 @@ -2630,6 +2644,7 @@ SYS_pwrite64 SYS_pwritev SYS_pwritev2 SYS_quotactl +SYS_quotactl_fd SYS_read SYS_readahead SYS_readlinkat @@ -2669,6 +2684,7 @@ SYS_sendmmsg SYS_sendmsg SYS_sendto SYS_set_mempolicy +SYS_set_mempolicy_home_node SYS_set_robust_list SYS_set_tid_address SYS_setdomainname diff --git a/src/unix/linux_like/android/b32/arm.rs b/src/unix/linux_like/android/b32/arm.rs index cbd514b4f6f6e..67bd0bb3abd4c 100644 --- a/src/unix/linux_like/android/b32/arm.rs +++ b/src/unix/linux_like/android/b32/arm.rs @@ -508,6 +508,22 @@ pub const SYS_fsopen: ::c_long = 430; pub const SYS_fsconfig: ::c_long = 431; pub const SYS_fsmount: ::c_long = 432; pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; // offsets in mcontext_t.gregs from sys/ucontext.h pub const REG_R0: ::c_int = 0; diff --git a/src/unix/linux_like/android/b32/x86/mod.rs b/src/unix/linux_like/android/b32/x86/mod.rs index a6b9f4c6288a1..902016fda3ec8 100644 --- a/src/unix/linux_like/android/b32/x86/mod.rs +++ b/src/unix/linux_like/android/b32/x86/mod.rs @@ -546,6 +546,23 @@ pub const SYS_fsopen: ::c_long = 430; pub const SYS_fsconfig: ::c_long = 431; pub const SYS_fsmount: ::c_long = 432; pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; // offsets in user_regs_structs, from sys/reg.h pub const EBX: ::c_int = 0; diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index 75cc2fedace39..0d6f32ee3989c 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -444,7 +444,24 @@ pub const SYS_fsopen: ::c_long = 430; pub const SYS_fsconfig: ::c_long = 431; pub const SYS_fsmount: ::c_long = 432; pub const SYS_fspick: ::c_long = 433; -pub const SYS_syscalls: ::c_long = 436; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_syscalls: ::c_long = 451; pub const PROT_BTI: ::c_int = 0x10; pub const PROT_MTE: ::c_int = 0x20; diff --git a/src/unix/linux_like/android/b64/riscv64/mod.rs b/src/unix/linux_like/android/b64/riscv64/mod.rs index 6e8dfca0a6c50..0251804691fd6 100644 --- a/src/unix/linux_like/android/b64/riscv64/mod.rs +++ b/src/unix/linux_like/android/b64/riscv64/mod.rs @@ -351,7 +351,23 @@ pub const SYS_fsopen: ::c_long = 430; pub const SYS_fsconfig: ::c_long = 431; pub const SYS_fsmount: ::c_long = 432; pub const SYS_fspick: ::c_long = 433; -pub const SYS_syscalls: ::c_long = 436; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; // From NDK's asm/auxvec.h pub const AT_SYSINFO_EHDR: ::c_ulong = 33; diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index 6bc616c8d0b17..f871fb2cd4a61 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -741,6 +741,23 @@ pub const SYS_fsopen: ::c_long = 430; pub const SYS_fsconfig: ::c_long = 431; pub const SYS_fsmount: ::c_long = 432; pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; // offsets in user_regs_structs, from sys/reg.h pub const R15: ::c_int = 0; From dde5212cd9a04946f26216168644bc6c7f232d63 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 22:29:26 -0600 Subject: [PATCH 0287/1228] Add a diff note about CLONE_* type changes Changed in e9abac9ac2 ("Set CLONE_CLEAR_SIGHAND and CLONE_INTO_CGROUP to a large enough type") --- src/unix/linux_like/linux/gnu/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index e6c7fb6e3ff20..426304efd57ea 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1111,6 +1111,7 @@ pub const ELFOSABI_ARM_AEABI: u8 = 64; // linux/sched.h pub const CLONE_NEWTIME: ::c_int = 0x80; +// DIFF(main): changed to `c_ulonglong` in e9abac9ac2 pub const CLONE_CLEAR_SIGHAND: ::c_int = 0x100000000; pub const CLONE_INTO_CGROUP: ::c_int = 0x200000000; From 84597bd925b6a870e6e33e6dc08c9b19ffb6d77e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 22:52:07 -0600 Subject: [PATCH 0288/1228] Add a diff note about execv* mutability changes Changed in e77f551de9 ("Change prototypes for exec* function to match headers.") --- src/fuchsia/mod.rs | 5 +++++ src/unix/aix/mod.rs | 3 +++ src/unix/bsd/freebsdlike/mod.rs | 3 +++ src/unix/bsd/netbsdlike/mod.rs | 3 +++ src/unix/haiku/mod.rs | 3 +++ src/unix/hurd/mod.rs | 2 ++ src/unix/linux_like/mod.rs | 3 +++ src/unix/mod.rs | 3 +++ src/unix/newlib/mod.rs | 3 +++ src/unix/nto/mod.rs | 2 ++ src/unix/solarish/solaris.rs | 1 + src/windows/mod.rs | 2 ++ 12 files changed, 33 insertions(+) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 9a0b8755c4659..c4c7e6544b21b 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -3809,6 +3809,8 @@ extern "C" { pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; pub fn execle(path: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; pub fn execlp(file: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::c_int; pub fn execve( prog: *const c_char, @@ -3816,6 +3818,7 @@ extern "C" { envp: *const *const c_char, ) -> ::c_int; pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int; + pub fn fork() -> pid_t; pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char; @@ -4155,6 +4158,8 @@ extern "C" { termp: *const termios, winp: *const ::winsize, ) -> ::c_int; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execvpe( file: *const ::c_char, argv: *const *const ::c_char, diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 58d606f6b45f9..d404c3e8b52a1 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -2812,11 +2812,14 @@ extern "C" { ) -> ::c_int; pub fn fattach(fildes: ::c_int, path: *const ::c_char) -> ::c_int; pub fn fdatasync(fd: ::c_int) -> ::c_int; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn fexecve( fd: ::c_int, argv: *const *const ::c_char, envp: *const *const ::c_char, ) -> ::c_int; + pub fn ffs(value: ::c_int) -> ::c_int; pub fn ffsl(value: ::c_long) -> ::c_int; pub fn ffsll(value: ::c_longlong) -> ::c_int; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 57a38a538f01b..9b7b560fc7cff 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1530,11 +1530,14 @@ extern "C" { pub fn duplocale(base: ::locale_t) -> ::locale_t; pub fn endutxent(); pub fn fchflags(fd: ::c_int, flags: ::c_ulong) -> ::c_int; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn fexecve( fd: ::c_int, argv: *const *const ::c_char, envp: *const *const ::c_char, ) -> ::c_int; + pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; pub fn getdomainname(name: *mut ::c_char, len: ::c_int) -> ::c_int; pub fn getgrent_r( diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index 6bdaae48dcbfe..496a66c08955f 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -755,11 +755,14 @@ 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; + + // DIFF(main): changed to `*const *mut` in e77f551de9 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, diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 748196fe3ff8a..2f9a0bb45c53a 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1842,11 +1842,14 @@ extern "C" { pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execvpe( file: *const ::c_char, argv: *const *const ::c_char, environment: *const *const ::c_char, ) -> ::c_int; + pub fn getgrgid_r( gid: ::gid_t, grp: *mut ::group, diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 453d0392daf72..f7c86ac9a9611 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -4209,6 +4209,8 @@ extern "C" { envp: *const *mut c_char, flags: ::c_int, ) -> ::c_int; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execvpe( file: *const ::c_char, argv: *const *const ::c_char, diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 618980e53dd27..bd943b99940f2 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1753,6 +1753,8 @@ extern "C" { rusage: *mut ::rusage, ) -> ::pid_t; pub fn login_tty(fd: ::c_int) -> ::c_int; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execvpe( file: *const ::c_char, argv: *const *const ::c_char, @@ -1763,6 +1765,7 @@ extern "C" { argv: *const *const ::c_char, envp: *const *const ::c_char, ) -> ::c_int; + pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; pub fn freeifaddrs(ifa: *mut ::ifaddrs); pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index b3cc7424cd0d4..35194ac0ebc51 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -904,6 +904,8 @@ extern "C" { pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; pub fn execle(path: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; pub fn execlp(file: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::c_int; pub fn execve( prog: *const c_char, @@ -911,6 +913,7 @@ extern "C" { envp: *const *const c_char, ) -> ::c_int; pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int; + pub fn fork() -> pid_t; pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char; diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index 45d1b1a028fad..3b02d93fb3dd7 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -873,11 +873,14 @@ extern "C" { flags: ::c_int, ) -> ::c_int; pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn fexecve( fd: ::c_int, argv: *const *const ::c_char, envp: *const *const ::c_char, ) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; pub fn getgrgid_r( gid: ::gid_t, diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 1f87c7390cc0d..7c6eba66eea8d 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -2935,6 +2935,8 @@ extern "C" { options: ::c_int, rusage: *mut ::rusage, ) -> ::pid_t; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execvpe( file: *const ::c_char, argv: *const *const ::c_char, diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index 7db0bd0fc9146..58f03ab252693 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -207,6 +207,7 @@ pub const PRIV_USER: ::c_uint = PRIV_DEBUG | PRIV_PROC_TPD_RESET; extern "C" { + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn fexecve( fd: ::c_int, argv: *const *const ::c_char, diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 2270e7078c966..43075e7e0362a 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -456,6 +456,7 @@ extern "C" { #[link_name = "_wexeclpe"] pub fn wexeclpe(path: *const wchar_t, arg0: *const wchar_t, ...) -> intptr_t; #[link_name = "_execv"] + // DIFF(main): changed to `intptr_t` in e77f551de9 pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::intptr_t; #[link_name = "_execve"] pub fn execve( @@ -471,6 +472,7 @@ extern "C" { argv: *const *const c_char, envp: *const *const c_char, ) -> ::c_int; + #[link_name = "_wexecv"] pub fn wexecv(prog: *const wchar_t, argv: *const *const wchar_t) -> ::intptr_t; #[link_name = "_wexecve"] From 285a8310418bc8763e440e520687863414921c81 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 23:01:00 -0600 Subject: [PATCH 0289/1228] triagebot: Sync config with `main` --- triagebot.toml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/triagebot.toml b/triagebot.toml index 169d1ab20fd90..6f8200cb14c25 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -1,13 +1,19 @@ [relabel] allow-unauthenticated = [ - "C-*", "O-*", "S-*" + "C-*", + "O-*", + "S-*", + "stable-nominated", ] [assign] contributing_url = "https://github.com/rust-lang/libc/blob/HEAD/CONTRIBUTING.md" [assign.owners] -"*" = ["@JohnTitor"] +"*" = [ + "@JohnTitor", + "@tgross35", +] [autolabel."A-CI"] trigger_files = [ From ab0819b04a57b99d7fc378b7aee6262813a0336b Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Sun, 25 Feb 2024 20:28:28 +0100 Subject: [PATCH 0290/1228] Add glibc's function: malloc_stats The function is used to report stats about glibc's memory allocator to stderr: ``` Arena 0: system bytes = 1350406144 in use bytes = 3725633952 Arena 1: system bytes = 1895907328 in use bytes = 1653748608 Total (incl. mmap): system bytes = 277286912 in use bytes = 2410356000 max mmap regions = 56 max mmap bytes = 2876198912 ``` (backport ) (cherry picked from commit 78e6d62b3fd328fc77d6bcb852445f7bd175efe9) --- libc-test/semver/linux-gnu.txt | 1 + src/unix/linux_like/linux/gnu/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index e05d2c2fdbb8d..83dd825584cd0 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -652,6 +652,7 @@ lio_listio mallinfo mallinfo2 malloc_info +malloc_stats malloc_trim malloc_usable_size mallopt diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index e6c7fb6e3ff20..41342a67a7704 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1494,6 +1494,7 @@ extern "C" { pub fn pthread_sigqueue(thread: ::pthread_t, sig: ::c_int, value: ::sigval) -> ::c_int; pub fn mallinfo() -> ::mallinfo; pub fn mallinfo2() -> ::mallinfo2; + pub fn malloc_stats(); pub fn malloc_info(options: ::c_int, stream: *mut ::FILE) -> ::c_int; pub fn malloc_usable_size(ptr: *mut ::c_void) -> ::size_t; pub fn getpwent_r( From 059115904b92be77512600109c38ebc30d15a333 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Tue, 23 Apr 2024 10:54:22 +0200 Subject: [PATCH 0291/1228] gnu: Add f_flags to struct statfs for arm, mips, powerpc and x86 (backport ) (cherry picked from commit 12e3a0b29439ba399086222b845717bba6670ff2) --- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 3 ++- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 3 ++- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 3 ++- src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 0037015a1821b..c58dd6d45b690 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -22,7 +22,8 @@ s! { pub f_namelen: ::__fsword_t, pub f_frsize: ::__fsword_t, - f_spare: [::__fsword_t; 5], + pub f_flags: ::__fsword_t, + f_spare: [::__fsword_t; 4], } pub struct flock { diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 80b509bc574b5..6655fc9c4faf4 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -37,7 +37,8 @@ s! { pub f_fsid: ::fsid_t, pub f_namelen: ::c_long, - f_spare: [::c_long; 6], + pub f_flags: ::c_long, + f_spare: [::c_long; 5], } pub struct statfs64 { diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index cb7fdf7661472..da50989c7fccb 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -22,7 +22,8 @@ s! { pub f_namelen: ::__fsword_t, pub f_frsize: ::__fsword_t, - f_spare: [::__fsword_t; 5], + pub f_flags: ::__fsword_t, + f_spare: [::__fsword_t; 4], } pub struct flock { diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 539e13bac9b3a..4592013b8ddcb 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -23,7 +23,8 @@ s! { pub f_namelen: ::__fsword_t, pub f_frsize: ::__fsword_t, - f_spare: [::__fsword_t; 5], + pub f_flags: ::__fsword_t, + f_spare: [::__fsword_t; 4], } pub struct flock { From af6b170ee2282441e6a33ec0699af46175b70d41 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Tue, 12 Nov 2024 14:05:18 +0100 Subject: [PATCH 0292/1228] adjust syscall constants for musl (backport ) (cherry picked from commit 9aa7e35e81285e4eeab42541b5e5608a1fdfd9a6) --- .../linux_like/linux/musl/b64/aarch64/mod.rs | 2 + .../linux_like/linux/musl/b64/powerpc64.rs | 16 +++++ .../linux_like/linux/musl/b64/riscv64/mod.rs | 2 + src/unix/linux_like/linux/musl/b64/s390x.rs | 67 ++++++++++++------- .../linux_like/linux/musl/b64/x86_64/mod.rs | 2 + 5 files changed, 65 insertions(+), 24 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index 5c9e68dcd950e..d5c02419135e0 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -581,6 +581,8 @@ pub const SYS_pkey_mprotect: ::c_long = 288; pub const SYS_pkey_alloc: ::c_long = 289; pub const SYS_pkey_free: ::c_long = 290; pub const SYS_statx: ::c_long = 291; +pub const SYS_io_pgetevents: ::c_long = 292; +pub const SYS_rseq: ::c_long = 293; pub const SYS_pidfd_send_signal: ::c_long = 424; pub const SYS_io_uring_setup: ::c_long = 425; pub const SYS_io_uring_enter: ::c_long = 426; diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index 202abe8796b13..c7cb63dd0b76f 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -582,6 +582,22 @@ pub const SYS_preadv2: ::c_long = 380; pub const SYS_pwritev2: ::c_long = 381; pub const SYS_kexec_file_load: ::c_long = 382; pub const SYS_statx: ::c_long = 383; +pub const SYS_pkey_alloc: ::c_long = 384; +pub const SYS_pkey_free: ::c_long = 385; +pub const SYS_pkey_mprotect: ::c_long = 386; +pub const SYS_rseq: ::c_long = 387; +pub const SYS_io_pgetevents: ::c_long = 388; +pub const SYS_semtimedop: ::c_long = 392; +pub const SYS_semget: ::c_long = 393; +pub const SYS_semctl: ::c_long = 394; +pub const SYS_shmget: ::c_long = 395; +pub const SYS_shmctl: ::c_long = 396; +pub const SYS_shmat: ::c_long = 397; +pub const SYS_shmdt: ::c_long = 398; +pub const SYS_msgget: ::c_long = 399; +pub const SYS_msgsnd: ::c_long = 400; +pub const SYS_msgrcv: ::c_long = 401; +pub const SYS_msgctl: ::c_long = 402; pub const SYS_pidfd_send_signal: ::c_long = 424; pub const SYS_io_uring_setup: ::c_long = 425; pub const SYS_io_uring_enter: ::c_long = 426; diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index caa05ccc4f603..b48f7ac56b095 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -510,6 +510,8 @@ pub const SYS_pkey_mprotect: ::c_long = 288; pub const SYS_pkey_alloc: ::c_long = 289; pub const SYS_pkey_free: ::c_long = 290; pub const SYS_statx: ::c_long = 291; +pub const SYS_io_pgetevents: ::c_long = 292; +pub const SYS_rseq: ::c_long = 293; pub const SYS_pidfd_send_signal: ::c_long = 424; pub const SYS_io_uring_setup: ::c_long = 425; pub const SYS_io_uring_enter: ::c_long = 426; diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index 567914f7b8cd5..02c9d117abeee 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -475,6 +475,7 @@ pub const SYS_sysfs: ::c_long = 135; pub const SYS_personality: ::c_long = 136; pub const SYS_afs_syscall: ::c_long = 137; /* Syscall for Andrew File System */ pub const SYS_getdents: ::c_long = 141; +pub const SYS_select: ::c_long = 142; pub const SYS_flock: ::c_long = 143; pub const SYS_msync: ::c_long = 144; pub const SYS_readv: ::c_long = 145; @@ -517,6 +518,26 @@ pub const SYS_sendfile: ::c_long = 187; pub const SYS_getpmsg: ::c_long = 188; pub const SYS_putpmsg: ::c_long = 189; pub const SYS_vfork: ::c_long = 190; +pub const SYS_getrlimit: ::c_long = 191; +pub const SYS_lchown: ::c_long = 198; +pub const SYS_getuid: ::c_long = 199; +pub const SYS_getgid: ::c_long = 200; +pub const SYS_geteuid: ::c_long = 201; +pub const SYS_getegid: ::c_long = 202; +pub const SYS_setreuid: ::c_long = 203; +pub const SYS_setregid: ::c_long = 204; +pub const SYS_getgroups: ::c_long = 205; +pub const SYS_setgroups: ::c_long = 206; +pub const SYS_fchown: ::c_long = 207; +pub const SYS_setresuid: ::c_long = 208; +pub const SYS_getresuid: ::c_long = 209; +pub const SYS_setresgid: ::c_long = 210; +pub const SYS_getresgid: ::c_long = 211; +pub const SYS_chown: ::c_long = 212; +pub const SYS_setuid: ::c_long = 213; +pub const SYS_setgid: ::c_long = 214; +pub const SYS_setfsuid: ::c_long = 215; +pub const SYS_setfsgid: ::c_long = 216; pub const SYS_pivot_root: ::c_long = 217; pub const SYS_mincore: ::c_long = 218; pub const SYS_madvise: ::c_long = 219; @@ -588,6 +609,7 @@ pub const SYS_mkdirat: ::c_long = 289; pub const SYS_mknodat: ::c_long = 290; pub const SYS_fchownat: ::c_long = 291; pub const SYS_futimesat: ::c_long = 292; +pub const SYS_newfstatat: ::c_long = 293; pub const SYS_unlinkat: ::c_long = 294; pub const SYS_renameat: ::c_long = 295; pub const SYS_linkat: ::c_long = 296; @@ -672,29 +694,26 @@ pub const SYS_mlock2: ::c_long = 374; pub const SYS_copy_file_range: ::c_long = 375; pub const SYS_preadv2: ::c_long = 376; pub const SYS_pwritev2: ::c_long = 377; -pub const SYS_lchown: ::c_long = 198; -pub const SYS_setuid: ::c_long = 213; -pub const SYS_getuid: ::c_long = 199; -pub const SYS_setgid: ::c_long = 214; -pub const SYS_getgid: ::c_long = 200; -pub const SYS_geteuid: ::c_long = 201; -pub const SYS_setreuid: ::c_long = 203; -pub const SYS_setregid: ::c_long = 204; -pub const SYS_getrlimit: ::c_long = 191; -pub const SYS_getgroups: ::c_long = 205; -pub const SYS_fchown: ::c_long = 207; -pub const SYS_setresuid: ::c_long = 208; -pub const SYS_setresgid: ::c_long = 210; -pub const SYS_getresgid: ::c_long = 211; -pub const SYS_select: ::c_long = 142; -pub const SYS_getegid: ::c_long = 202; -pub const SYS_setgroups: ::c_long = 206; -pub const SYS_getresuid: ::c_long = 209; -pub const SYS_chown: ::c_long = 212; -pub const SYS_setfsuid: ::c_long = 215; -pub const SYS_setfsgid: ::c_long = 216; -pub const SYS_newfstatat: ::c_long = 293; +pub const SYS_s390_guarded_storage: ::c_long = 378; pub const SYS_statx: ::c_long = 379; +pub const SYS_s390_sthyi: ::c_long = 380; +pub const SYS_kexec_file_load: ::c_long = 381; +pub const SYS_io_pgetevents: ::c_long = 382; +pub const SYS_rseq: ::c_long = 383; +pub const SYS_pkey_mprotect: ::c_long = 384; +pub const SYS_pkey_alloc: ::c_long = 385; +pub const SYS_pkey_free: ::c_long = 386; +pub const SYS_semtimedop: ::c_long = 392; +pub const SYS_semget: ::c_long = 393; +pub const SYS_semctl: ::c_long = 394; +pub const SYS_shmget: ::c_long = 395; +pub const SYS_shmctl: ::c_long = 396; +pub const SYS_shmat: ::c_long = 397; +pub const SYS_shmdt: ::c_long = 398; +pub const SYS_msgget: ::c_long = 399; +pub const SYS_msgsnd: ::c_long = 400; +pub const SYS_msgrcv: ::c_long = 401; +pub const SYS_msgctl: ::c_long = 402; pub const SYS_pidfd_send_signal: ::c_long = 424; pub const SYS_io_uring_setup: ::c_long = 425; pub const SYS_io_uring_enter: ::c_long = 426; @@ -714,7 +733,6 @@ pub const SYS_faccessat2: ::c_long = 439; pub const SYS_process_madvise: ::c_long = 440; pub const SYS_epoll_pwait2: ::c_long = 441; pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; pub const SYS_landlock_create_ruleset: ::c_long = 444; pub const SYS_landlock_add_rule: ::c_long = 445; pub const SYS_landlock_restrict_self: ::c_long = 446; @@ -722,4 +740,5 @@ pub const SYS_memfd_secret: ::c_long = 447; pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; -pub const SYS_mseal: ::c_long = 462; +pub const SYS_cachestat: ::c_long = 451; +pub const SYS_fchmodat2: ::c_long = 452; diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index fcf07379ee81a..81c9772cdbb44 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -602,6 +602,8 @@ pub const SYS_pkey_mprotect: ::c_long = 329; pub const SYS_pkey_alloc: ::c_long = 330; pub const SYS_pkey_free: ::c_long = 331; pub const SYS_statx: ::c_long = 332; +pub const SYS_io_pgetevents: ::c_long = 333; +pub const SYS_rseq: ::c_long = 334; pub const SYS_pidfd_send_signal: ::c_long = 424; pub const SYS_io_uring_setup: ::c_long = 425; pub const SYS_io_uring_enter: ::c_long = 426; From 18e8007a363863a0511504ce33652d7efa48e76d Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 16 Feb 2024 18:58:20 +0000 Subject: [PATCH 0293/1228] redox add new netinet constants (backport ) (cherry picked from commit 50bbf3a39c1faf35533fd841416ebfc9c0ca5d60) --- libc-test/semver/redox.txt | 12 ++++++++++++ src/unix/redox/mod.rs | 7 +++++++ 2 files changed, 19 insertions(+) diff --git a/libc-test/semver/redox.txt b/libc-test/semver/redox.txt index 80095a09f5345..8e7403982e216 100644 --- a/libc-test/semver/redox.txt +++ b/libc-test/semver/redox.txt @@ -96,8 +96,19 @@ EUSERS EXFULL FIONREAD IMAXBEL +IPPROTO_ICMP +IPPROTO_IDP +IPPROTO_IGMP +IPPROTO_IP +IPPROTO_IPV6 +IPPROTO_MAX +IPPROTO_PUP +IPPROTO_TCP +IPPROTO_UDP IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP +IP_RECVTOS +IP_TOS IUCLC IUTF8 MADV_DONTNEED @@ -129,6 +140,7 @@ SIGPWR SIGSTKFLT SOCK_CLOEXEC SOCK_NONBLOCK +SOCK_RAW SO_BSDCOMPAT SO_DOMAIN SO_NO_CHECK diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 39e7346b0cc33..262079e042c5b 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -585,7 +585,13 @@ pub const IP_MULTICAST_TTL: ::c_int = 33; pub const IP_MULTICAST_LOOP: ::c_int = 34; pub const IP_ADD_MEMBERSHIP: ::c_int = 35; pub const IP_DROP_MEMBERSHIP: ::c_int = 36; +pub const IP_TOS: ::c_int = 1; +pub const IP_RECVTOS: ::c_int = 2; +pub const IPPROTO_IGMP: ::c_int = 2; +pub const IPPROTO_PUP: ::c_int = 12; +pub const IPPROTO_IDP: ::c_int = 22; pub const IPPROTO_RAW: ::c_int = 255; +pub const IPPROTO_MAX: ::c_int = 255; // } // netinet/tcp.h @@ -810,6 +816,7 @@ pub const SO_PROTOCOL: ::c_int = 38; pub const SO_DOMAIN: ::c_int = 39; pub const SOCK_STREAM: ::c_int = 1; pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_RAW: ::c_int = 3; pub const SOCK_NONBLOCK: ::c_int = 0o4_000; pub const SOCK_CLOEXEC: ::c_int = 0o2_000_000; pub const SOCK_SEQPACKET: ::c_int = 5; From 7c7d9c458a207474021b0713250cda4e249e8d42 Mon Sep 17 00:00:00 2001 From: Jasper Bekkers Date: Thu, 22 Feb 2024 14:34:28 +0100 Subject: [PATCH 0294/1228] Add aligned_realloc (backport ) (cherry picked from commit d67af7940ae59e9df58924f0e66bd0908d2b91cb) --- libc-test/semver/windows.txt | 1 + src/windows/mod.rs | 3 +++ 2 files changed, 4 insertions(+) diff --git a/libc-test/semver/windows.txt b/libc-test/semver/windows.txt index de7aea0e91a4d..db55da5f4e48d 100644 --- a/libc-test/semver/windows.txt +++ b/libc-test/semver/windows.txt @@ -150,6 +150,7 @@ accept access aligned_free aligned_malloc +aligned_realloc atexit atof atoi diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 2270e7078c966..37395dddc3fa3 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -520,6 +520,9 @@ extern "C" { pub fn aligned_malloc(size: size_t, alignment: size_t) -> *mut c_void; #[link_name = "_aligned_free"] pub fn aligned_free(ptr: *mut ::c_void); + #[link_name = "_aligned_realloc"] + pub fn aligned_realloc(memblock: *mut ::c_void, size: size_t, alignment: size_t) + -> *mut c_void; #[link_name = "_putenv"] pub fn putenv(envstring: *const ::c_char) -> ::c_int; #[link_name = "_wputenv"] From f0febd5e2e50b38e05259d3afad3c9783711bcf0 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Mon, 11 Jul 2022 20:53:20 -0700 Subject: [PATCH 0295/1228] Require rust >= 1.37 and drop libc_underscore_const_names conditional [ disable static assert that ctest can't handle - Trevor ] --- build.rs | 6 ---- src/fixed_width_ints.rs | 62 ++++++++++++++++++++--------------------- 2 files changed, 30 insertions(+), 38 deletions(-) diff --git a/build.rs b/build.rs index 15bf2f5a8cb16..07c2609c59eff 100644 --- a/build.rs +++ b/build.rs @@ -19,7 +19,6 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ "libc_deny_warnings", "libc_long_array", "libc_thread_local", - "libc_underscore_const_names", "libc_ctest", ]; @@ -86,11 +85,6 @@ fn main() { set_cfg("libc_long_array"); } - // Rust >= 1.37.0 allows underscores as anonymous constant names. - if rustc_minor_ver >= 37 || rustc_dep_of_std { - set_cfg("libc_underscore_const_names"); - } - // #[thread_local] is currently unstable if rustc_dep_of_std { set_cfg("libc_thread_local"); diff --git a/src/fixed_width_ints.rs b/src/fixed_width_ints.rs index 980ff61ecdaf3..d2385fd385d10 100644 --- a/src/fixed_width_ints.rs +++ b/src/fixed_width_ints.rs @@ -59,41 +59,39 @@ cfg_if! { /// C __uint128_t (alternate name for [__uint128][]) pub type __uint128_t = u128; - cfg_if! { - if #[cfg(libc_underscore_const_names)] { - macro_rules! static_assert_eq { - ($a:expr, $b:expr) => { - const _: [(); $a] = [(); $b]; - }; - } + // NOTE: if you add more platforms to here, you may need to cfg + // these consts. They should always match the platform's values + // for `sizeof(__int128)` and `_Alignof(__int128)`. + const _SIZE_128: usize = 16; + const _ALIGN_128: usize = 16; - // NOTE: if you add more platforms to here, you may need to cfg - // these consts. They should always match the platform's values - // for `sizeof(__int128)` and `_Alignof(__int128)`. - const _SIZE_128: usize = 16; - const _ALIGN_128: usize = 16; - - // Since Rust doesn't officially guarantee that these types - // have compatible ABIs, we const assert that these values have the - // known size/align of the target platform's libc. If rustc ever - // tries to regress things, it will cause a compilation error. - // - // This isn't a bullet-proof solution because e.g. it doesn't - // catch the fact that llvm and gcc disagree on how x64 __int128 - // is actually *passed* on the stack (clang underaligns it for - // the same reason that rustc *never* properly aligns it). - static_assert_eq!(core::mem::size_of::<__int128>(), _SIZE_128); - static_assert_eq!(core::mem::align_of::<__int128>(), _ALIGN_128); + // FIXME(ctest): ctest doesn't handle `_` as an identifier so these tests are temporarily + // disabled. + // macro_rules! static_assert_eq { + // ($a:expr, $b:expr) => { + // const _: [(); $a] = [(); $b]; + // }; + // } + // + // // Since Rust doesn't officially guarantee that these types + // // have compatible ABIs, we const assert that these values have the + // // known size/align of the target platform's libc. If rustc ever + // // tries to regress things, it will cause a compilation error. + // // + // // This isn't a bullet-proof solution because e.g. it doesn't + // // catch the fact that llvm and gcc disagree on how x64 __int128 + // // is actually *passed* on the stack (clang underaligns it for + // // the same reason that rustc *never* properly aligns it). + // static_assert_eq!(core::mem::size_of::<__int128>(), _SIZE_128); + // static_assert_eq!(core::mem::align_of::<__int128>(), _ALIGN_128); - static_assert_eq!(core::mem::size_of::<__uint128>(), _SIZE_128); - static_assert_eq!(core::mem::align_of::<__uint128>(), _ALIGN_128); + // static_assert_eq!(core::mem::size_of::<__uint128>(), _SIZE_128); + // static_assert_eq!(core::mem::align_of::<__uint128>(), _ALIGN_128); - static_assert_eq!(core::mem::size_of::<__int128_t>(), _SIZE_128); - static_assert_eq!(core::mem::align_of::<__int128_t>(), _ALIGN_128); + // static_assert_eq!(core::mem::size_of::<__int128_t>(), _SIZE_128); + // static_assert_eq!(core::mem::align_of::<__int128_t>(), _ALIGN_128); - static_assert_eq!(core::mem::size_of::<__uint128_t>(), _SIZE_128); - static_assert_eq!(core::mem::align_of::<__uint128_t>(), _ALIGN_128); - } - } + // static_assert_eq!(core::mem::size_of::<__uint128_t>(), _SIZE_128); + // static_assert_eq!(core::mem::align_of::<__uint128_t>(), _ALIGN_128); } } From 674cc1f47f605038ef1aa2cce8e8bc9dac128276 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 14:38:33 -0600 Subject: [PATCH 0296/1228] Drop the `libc_const_extern_fn` conditional Additionally deprecate the `const-extern-fn` feature. This is possible since the MSRV was increased to 1.63. --- Cargo.toml | 4 +++- README.md | 8 +++++--- build.rs | 19 +------------------ src/lib.rs | 1 - src/macros.rs | 5 ++++- src/unix/bsd/apple/mod.rs | 15 +++------------ src/unix/bsd/freebsdlike/freebsd/mod.rs | 12 ++---------- src/unix/bsd/netbsdlike/netbsd/mod.rs | 13 ++----------- tests/const_fn.rs | 2 -- 9 files changed, 20 insertions(+), 59 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 393db74cc2d8e..234e74453472c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ Raw FFI bindings to platform libraries like libc. """ [package.metadata.docs.rs] -features = ["const-extern-fn", "extra_traits"] +features = ["extra_traits"] default-target = "x86_64-unknown-linux-gnu" targets = [ "aarch64-apple-darwin", @@ -141,6 +141,8 @@ default = ["std"] std = [] rustc-dep-of-std = ['align', 'rustc-std-workspace-core'] extra_traits = [] + +# `const-extern-function` is deprecated and no longer does anything const-extern-fn = [] # `align` is deprecated and no longer does anything diff --git a/README.md b/README.md index f483563e98ad3..901a776e24f20 100644 --- a/README.md +++ b/README.md @@ -49,9 +49,11 @@ libc = "0.2" * `extra_traits`: all `struct`s implemented in `libc` are `Copy` and `Clone`. This feature derives `Debug`, `Eq`, `Hash`, and `PartialEq`. -* `const-extern-fn`: Changes some `extern fn`s into `const extern fn`s. If you - use Rust >= 1.62, this feature is implicitly enabled. Otherwise it requires a - nightly rustc. +The following features are deprecated: + +* `use_std`: this is equivalent to `std` +* `const-extern-fn`: this is now enabled by default +* `align`: this is now enabled by default ## Rust version support diff --git a/build.rs b/build.rs index 15bf2f5a8cb16..d76a24a9feccd 100644 --- a/build.rs +++ b/build.rs @@ -14,8 +14,6 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ "freebsd13", "freebsd14", "freebsd15", - "libc_const_extern_fn", - "libc_const_extern_fn_unstable", "libc_deny_warnings", "libc_long_array", "libc_thread_local", @@ -42,9 +40,8 @@ fn main() { // Avoid unnecessary re-building. println!("cargo:rerun-if-changed=build.rs"); - let (rustc_minor_ver, is_nightly) = rustc_minor_nightly(); + let (rustc_minor_ver, _is_nightly) = rustc_minor_nightly(); let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); - let 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() || rustc_minor_ver >= 80; @@ -96,20 +93,6 @@ fn main() { set_cfg("libc_thread_local"); } - // Rust >= 1.62.0 allows to use `const_extern_fn` for "Rust" and "C". - if rustc_minor_ver >= 62 { - 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"); - } - 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. diff --git a/src/lib.rs b/src/lib.rs index 1dba4d8248fea..4f4cedb62f925 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -26,7 +26,6 @@ #![deny(missing_copy_implementations, safe_packed_borrows)] #![cfg_attr(not(feature = "rustc-dep-of-std"), no_std)] #![cfg_attr(feature = "rustc-dep-of-std", no_core)] -#![cfg_attr(libc_const_extern_fn_unstable, feature(const_extern_fn))] #[macro_use] mod macros; diff --git a/src/macros.rs b/src/macros.rs index c528608c83de3..7fd61e4b34eba 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -214,8 +214,11 @@ macro_rules! e { // 1. Avoid ambiguity errors from 'macro_rules!' (which happen when writing '$foo:ident fn' // 2. Allow users of this macro to mix 'pub fn foo' and 'pub const fn bar' within the same // 'f!' block + +// FIXME(ctest): ctest can't handle `const extern` functions, we should be able to remove this +// cfg completely. cfg_if! { - if #[cfg(libc_const_extern_fn)] { + if #[cfg(feature = "const-extern-fn")] { /// Define an `unsafe` function that is const as long as `const-extern-fn` is enabled. macro_rules! f { ($( diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index aec1b03b53a94..cd8a67a1b9ec2 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -5522,18 +5522,9 @@ 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 { - const __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::() - 1; - p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32 - } - } else { - fn __DARWIN_ALIGN32(p: usize) -> usize { - const __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::() - 1; - p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32 - } - } +const fn __DARWIN_ALIGN32(p: usize) -> usize { + const __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::() - 1; + p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32 } pub const THREAD_EXTENDED_POLICY_COUNT: mach_msg_type_number_t = diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index e94eaecc6e067..1cb8ab4c34845 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -4902,16 +4902,8 @@ pub const TFD_TIMER_CANCEL_ON_SET: ::c_int = 0x02; pub const CLOSE_RANGE_CLOEXEC: ::c_uint = 1 << 2; -cfg_if! { - if #[cfg(libc_const_extern_fn)] { - pub const fn MAP_ALIGNED(a: ::c_int) -> ::c_int { - a << 24 - } - } else { - pub fn MAP_ALIGNED(a: ::c_int) -> ::c_int { - a << 24 - } - } +pub const fn MAP_ALIGNED(a: ::c_int) -> ::c_int { + a << 24 } const_fn! { diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index ee084ed1bbdac..f3b76aece80dd 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2398,17 +2398,8 @@ 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 - } - } +pub const fn MAP_ALIGNED(alignment: ::c_int) -> ::c_int { + alignment << MAP_ALIGNMENT_SHIFT } // net/route.h diff --git a/tests/const_fn.rs b/tests/const_fn.rs index 0e7e1864b9f85..d9b41b8073c70 100644 --- a/tests/const_fn.rs +++ b/tests/const_fn.rs @@ -1,5 +1,3 @@ -#![cfg(libc_const_extern_fn)] // If this does not hold, the file is empty - #[cfg(target_os = "linux")] const _FOO: libc::c_uint = unsafe { libc::CMSG_SPACE(1) }; //^ if CMSG_SPACE is not const, this will fail to compile From bdfe8759d7f2c40e4a40518d7bb5ded614ad3b65 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 17 Nov 2024 02:52:22 -0500 Subject: [PATCH 0297/1228] Apply small fixes to sync `main` and `libc-0.2` build and test Just check out a few hunks of these files from `main` now that we aren't limited by the old MSRV. --- build.rs | 30 ++++++++---------------------- ci/README.md | 2 +- libc-test/build.rs | 3 ++- libc-test/semver/android.txt | 3 --- 4 files changed, 11 insertions(+), 27 deletions(-) diff --git a/build.rs b/build.rs index c8ffb7bf92ad2..e1c9b23c4617f 100644 --- a/build.rs +++ b/build.rs @@ -132,7 +132,7 @@ fn rustc_version_cmd(is_clippy_driver: bool) -> Output { cmd.arg("--version"); - let output = cmd.output().ok().expect("Failed to get rustc version"); + let output = cmd.output().expect("Failed to get rustc version"); if !output.status.success() { panic!( @@ -187,20 +187,14 @@ fn rustc_minor_nightly() -> (u32, bool) { } fn which_freebsd() -> Option { - let output = std::process::Command::new("freebsd-version").output().ok(); - if output.is_none() { - return None; - } - let output = output.unwrap(); + let output = std::process::Command::new("freebsd-version") + .output() + .ok()?; if !output.status.success() { return None; } - let stdout = String::from_utf8(output.stdout).ok(); - if stdout.is_none() { - return None; - } - let stdout = stdout.unwrap(); + let stdout = String::from_utf8(output.stdout).ok()?; match &stdout { s if s.starts_with("10") => Some(10), @@ -217,24 +211,16 @@ fn emcc_version_code() -> Option { let output = std::process::Command::new("emcc") .arg("-dumpversion") .output() - .ok(); - if output.is_none() { - return None; - } - let output = output.unwrap(); + .ok()?; if !output.status.success() { return None; } - let stdout = String::from_utf8(output.stdout).ok(); - if stdout.is_none() { - return None; - } - let version = stdout.unwrap(); + let version = String::from_utf8(output.stdout).ok()?; // 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 mut pieces = version.trim().split(['.', '-']); 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); diff --git a/ci/README.md b/ci/README.md index b810cd4ac59c0..d97b98acfcd08 100644 --- a/ci/README.md +++ b/ci/README.md @@ -161,7 +161,7 @@ about above), and then shut down. poweroff 1. Exit the post install shell: `exit` - 1. Back in in the installer choose Reboot + 1. Back in the installer choose Reboot 1. If all went well the machine should reboot and show a login prompt. If you switch to the serial console by choosing View > serial0 in the qemu menu, you should be logged in as root. diff --git a/libc-test/build.rs b/libc-test/build.rs index ce2f75eb312aa..8a06298741c52 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1858,6 +1858,7 @@ fn test_android(target: &str) { // These are tested in the `linux_elf.rs` file. "Elf64_Phdr" | "Elf32_Phdr" => true, + // These are intended to be opaque "posix_spawn_file_actions_t" => true, "posix_spawnattr_t" => true, @@ -2463,7 +2464,7 @@ fn test_freebsd(target: &str) { true } - // Added in in FreeBSD 13.0 (r367776 and r367287) + // Added in FreeBSD 13.0 (r367776 and r367287) "SCM_CREDS2" | "LOCAL_CREDS_PERSISTENT" if Some(13) > freebsd_ver => true, // Added in FreeBSD 14 diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index b679acdcf28ed..b863ef50906b6 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -1,6 +1,3 @@ - - - ABS_CNT ABS_MAX ADDR_COMPAT_LAYOUT From 77de375891285e18a81616f7dceda6d52732eed6 Mon Sep 17 00:00:00 2001 From: shandongbinzhou Date: Fri, 29 Mar 2024 16:09:25 +0800 Subject: [PATCH 0298/1228] chore: remove repetitive words Signed-off-by: shandongbinzhou (cherry picked from commit 7735f68280809a9b7b9a12d75b77efb69c93a831) --- libc-test/semver/TODO-linux.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libc-test/semver/TODO-linux.txt b/libc-test/semver/TODO-linux.txt index 7855498efafcf..8427cf1ea12c8 100644 --- a/libc-test/semver/TODO-linux.txt +++ b/libc-test/semver/TODO-linux.txt @@ -1,4 +1,4 @@ -# The following symbols are not not available in some combinations of +# The following symbols are not available in some combinations of # musl/gnu/android and/or architecture. KEYCTL_CAPABILITIES KEYCTL_CAPS0_BIG_KEY From deaa2c1fd6a96024f1006391b43c4b1b116c9add Mon Sep 17 00:00:00 2001 From: Michael Yang Date: Wed, 5 Jun 2024 17:14:58 +1000 Subject: [PATCH 0299/1228] feat: add missing netfilter consts (backport ) (cherry picked from commit 70004713b855d4fe1328d4faa33bca037cd17be3) --- libc-test/build.rs | 14 +++++++++-- libc-test/semver/android.txt | 24 +++++++++++++++++++ libc-test/semver/linux.txt | 24 +++++++++++++++++++ src/unix/linux_like/android/mod.rs | 31 ++++++++++++++++++++++++- src/unix/linux_like/linux/mod.rs | 37 ++++++++++++++++++++++++++---- 5 files changed, 123 insertions(+), 7 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 8a06298741c52..ea3d8e8ceafc7 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1789,6 +1789,8 @@ fn test_android(target: &str) { "linux/netfilter/nfnetlink_log.h", "linux/netfilter/nfnetlink_queue.h", "linux/netfilter/nf_tables.h", + "linux/netfilter_arp.h", + "linux/netfilter_bridge.h", "linux/netfilter_ipv4.h", "linux/netfilter_ipv6.h", "linux/netfilter_ipv6/ip6_tables.h", @@ -3592,6 +3594,8 @@ fn test_linux(target: &str) { "linux/netfilter/nfnetlink_log.h", "linux/netfilter/nfnetlink_queue.h", "linux/netfilter/nf_tables.h", + "linux/netfilter_arp.h", + "linux/netfilter_bridge.h", "linux/netfilter_ipv4.h", "linux/netfilter_ipv6.h", "linux/netfilter_ipv6/ip6_tables.h", @@ -4113,9 +4117,15 @@ fn test_linux(target: &str) { | "MINSIGSTKSZ" if gnu => true, - // FIXME: Linux >= 5.16 changed its value: + // FIXME: Linux >= 5.10: + // https://github.com/torvalds/linux/commit/d25e2e9388eda61b6e298585024ee3355f50c493 + "NF_INET_INGRESS" if musl => true, + + // FIXME: Linux >= 5.16: // https://github.com/torvalds/linux/commit/42df6e1d221dddc0f2acf2be37e68d553ad65f96 - "NF_NETDEV_NUMHOOKS" => true, + "NF_NETDEV_EGRESS" if musl || sparc64 => true, + // value changed + "NF_NETDEV_NUMHOOKS" if musl || sparc64 => true, // FIXME: requires Linux >= 5.6: | "RESOLVE_BENEATH" diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index b863ef50906b6..2c49d75c4466f 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -1689,8 +1689,29 @@ NFULNL_COPY_PACKET NFULNL_MSG_CONFIG NFULNL_MSG_PACKET NF_ACCEPT +NF_ARP +NF_ARP_FORWARD +NF_ARP_IN +NF_ARP_NUMHOOKS +NF_ARP_OUT +NF_BR_BROUTING +NF_BR_FORWARD +NF_BR_LOCAL_IN +NF_BR_LOCAL_OUT +NF_BR_NUMHOOKS +NF_BR_POST_ROUTING +NF_BR_PRE_ROUTING +NF_BR_PRI_BRNF +NF_BR_PRI_FILTER_BRIDGED +NF_BR_PRI_FILTER_OTHER +NF_BR_PRI_FIRST +NF_BR_PRI_LAST +NF_BR_PRI_NAT_DST_BRIDGED +NF_BR_PRI_NAT_DST_OTHER +NF_BR_PRI_NAT_SRC NF_DROP NF_INET_FORWARD +NF_INET_INGRESS NF_INET_LOCAL_IN NF_INET_LOCAL_OUT NF_INET_NUMHOOKS @@ -1712,6 +1733,7 @@ NF_IP6_PRI_MANGLE NF_IP6_PRI_NAT_DST NF_IP6_PRI_NAT_SRC NF_IP6_PRI_RAW +NF_IP6_PRI_RAW_BEFORE_DEFRAG NF_IP6_PRI_SECURITY NF_IP6_PRI_SELINUX_FIRST NF_IP6_PRI_SELINUX_LAST @@ -1732,10 +1754,12 @@ NF_IP_PRI_MANGLE NF_IP_PRI_NAT_DST NF_IP_PRI_NAT_SRC NF_IP_PRI_RAW +NF_IP_PRI_RAW_BEFORE_DEFRAG NF_IP_PRI_SECURITY NF_IP_PRI_SELINUX_FIRST NF_IP_PRI_SELINUX_LAST NF_MAX_VERDICT +NF_NETDEV_EGRESS NF_NETDEV_INGRESS NF_NETDEV_NUMHOOKS NF_QUEUE diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 5b0fca57b3e11..fff447de3c8fc 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1852,8 +1852,29 @@ NFULNL_COPY_PACKET NFULNL_MSG_CONFIG NFULNL_MSG_PACKET NF_ACCEPT +NF_ARP +NF_ARP_FORWARD +NF_ARP_IN +NF_ARP_NUMHOOKS +NF_ARP_OUT +NF_BR_BROUTING +NF_BR_FORWARD +NF_BR_LOCAL_IN +NF_BR_LOCAL_OUT +NF_BR_NUMHOOKS +NF_BR_POST_ROUTING +NF_BR_PRE_ROUTING +NF_BR_PRI_BRNF +NF_BR_PRI_FILTER_BRIDGED +NF_BR_PRI_FILTER_OTHER +NF_BR_PRI_FIRST +NF_BR_PRI_LAST +NF_BR_PRI_NAT_DST_BRIDGED +NF_BR_PRI_NAT_DST_OTHER +NF_BR_PRI_NAT_SRC NF_DROP NF_INET_FORWARD +NF_INET_INGRESS NF_INET_LOCAL_IN NF_INET_LOCAL_OUT NF_INET_NUMHOOKS @@ -1875,6 +1896,7 @@ NF_IP6_PRI_MANGLE NF_IP6_PRI_NAT_DST NF_IP6_PRI_NAT_SRC NF_IP6_PRI_RAW +NF_IP6_PRI_RAW_BEFORE_DEFRAG NF_IP6_PRI_SECURITY NF_IP6_PRI_SELINUX_FIRST NF_IP6_PRI_SELINUX_LAST @@ -1895,10 +1917,12 @@ NF_IP_PRI_MANGLE NF_IP_PRI_NAT_DST NF_IP_PRI_NAT_SRC NF_IP_PRI_RAW +NF_IP_PRI_RAW_BEFORE_DEFRAG NF_IP_PRI_SECURITY NF_IP_PRI_SELINUX_FIRST NF_IP_PRI_SELINUX_LAST NF_MAX_VERDICT +NF_NETDEV_EGRESS NF_QUEUE NF_REPEAT NF_STOLEN diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 2829b249dd0b6..75f8a7877b617 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -2349,9 +2349,11 @@ pub const NF_INET_FORWARD: ::c_int = 2; pub const NF_INET_LOCAL_OUT: ::c_int = 3; pub const NF_INET_POST_ROUTING: ::c_int = 4; pub const NF_INET_NUMHOOKS: ::c_int = 5; +pub const NF_INET_INGRESS: ::c_int = NF_INET_NUMHOOKS; pub const NF_NETDEV_INGRESS: ::c_int = 0; -pub const NF_NETDEV_NUMHOOKS: ::c_int = 1; +pub const NF_NETDEV_EGRESS: ::c_int = 1; +pub const NF_NETDEV_NUMHOOKS: ::c_int = 2; pub const NFPROTO_UNSPEC: ::c_int = 0; pub const NFPROTO_INET: ::c_int = 1; @@ -2363,6 +2365,31 @@ pub const NFPROTO_IPV6: ::c_int = 10; pub const NFPROTO_DECNET: ::c_int = 12; pub const NFPROTO_NUMPROTO: ::c_int = 13; +// linux/netfilter_arp.h +pub const NF_ARP: ::c_int = 0; +pub const NF_ARP_IN: ::c_int = 0; +pub const NF_ARP_OUT: ::c_int = 1; +pub const NF_ARP_FORWARD: ::c_int = 2; +pub const NF_ARP_NUMHOOKS: ::c_int = 3; + +// linux/netfilter_bridge.h +pub const NF_BR_PRE_ROUTING: ::c_int = 0; +pub const NF_BR_LOCAL_IN: ::c_int = 1; +pub const NF_BR_FORWARD: ::c_int = 2; +pub const NF_BR_LOCAL_OUT: ::c_int = 3; +pub const NF_BR_POST_ROUTING: ::c_int = 4; +pub const NF_BR_BROUTING: ::c_int = 5; +pub const NF_BR_NUMHOOKS: ::c_int = 6; + +pub const NF_BR_PRI_FIRST: ::c_int = ::INT_MIN; +pub const NF_BR_PRI_NAT_DST_BRIDGED: ::c_int = -300; +pub const NF_BR_PRI_FILTER_BRIDGED: ::c_int = -200; +pub const NF_BR_PRI_BRNF: ::c_int = 0; +pub const NF_BR_PRI_NAT_DST_OTHER: ::c_int = 100; +pub const NF_BR_PRI_FILTER_OTHER: ::c_int = 200; +pub const NF_BR_PRI_NAT_SRC: ::c_int = 300; +pub const NF_BR_PRI_LAST: ::c_int = ::INT_MAX; + // linux/netfilter_ipv4.h pub const NF_IP_PRE_ROUTING: ::c_int = 0; pub const NF_IP_LOCAL_IN: ::c_int = 1; @@ -2372,6 +2399,7 @@ pub const NF_IP_POST_ROUTING: ::c_int = 4; pub const NF_IP_NUMHOOKS: ::c_int = 5; pub const NF_IP_PRI_FIRST: ::c_int = ::INT_MIN; +pub const NF_IP_PRI_RAW_BEFORE_DEFRAG: ::c_int = -450; pub const NF_IP_PRI_CONNTRACK_DEFRAG: ::c_int = -400; pub const NF_IP_PRI_RAW: ::c_int = -300; pub const NF_IP_PRI_SELINUX_FIRST: ::c_int = -225; @@ -2395,6 +2423,7 @@ pub const NF_IP6_POST_ROUTING: ::c_int = 4; pub const NF_IP6_NUMHOOKS: ::c_int = 5; pub const NF_IP6_PRI_FIRST: ::c_int = ::INT_MIN; +pub const NF_IP6_PRI_RAW_BEFORE_DEFRAG: ::c_int = -450; pub const NF_IP6_PRI_CONNTRACK_DEFRAG: ::c_int = -400; pub const NF_IP6_PRI_RAW: ::c_int = -300; pub const NF_IP6_PRI_SELINUX_FIRST: ::c_int = -225; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index aa7213f77ee70..495db499b9a29 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -3336,20 +3336,47 @@ pub const NF_INET_FORWARD: ::c_int = 2; pub const NF_INET_LOCAL_OUT: ::c_int = 3; pub const NF_INET_POST_ROUTING: ::c_int = 4; pub const NF_INET_NUMHOOKS: ::c_int = 5; +pub const NF_INET_INGRESS: ::c_int = NF_INET_NUMHOOKS; + +pub const NF_NETDEV_INGRESS: ::c_int = 0; +pub const NF_NETDEV_EGRESS: ::c_int = 1; +pub const NF_NETDEV_NUMHOOKS: ::c_int = 2; // Some NFPROTO are not compatible with musl and are defined in submodules. pub const NFPROTO_UNSPEC: ::c_int = 0; +pub const NFPROTO_INET: ::c_int = 1; pub const NFPROTO_IPV4: ::c_int = 2; pub const NFPROTO_ARP: ::c_int = 3; +pub const NFPROTO_NETDEV: ::c_int = 5; pub const NFPROTO_BRIDGE: ::c_int = 7; pub const NFPROTO_IPV6: ::c_int = 10; pub const NFPROTO_DECNET: ::c_int = 12; pub const NFPROTO_NUMPROTO: ::c_int = 13; -pub const NFPROTO_INET: ::c_int = 1; -pub const NFPROTO_NETDEV: ::c_int = 5; -pub const NF_NETDEV_INGRESS: ::c_int = 0; -pub const NF_NETDEV_NUMHOOKS: ::c_int = 1; +// linux/netfilter_arp.h +pub const NF_ARP: ::c_int = 0; +pub const NF_ARP_IN: ::c_int = 0; +pub const NF_ARP_OUT: ::c_int = 1; +pub const NF_ARP_FORWARD: ::c_int = 2; +pub const NF_ARP_NUMHOOKS: ::c_int = 3; + +// linux/netfilter_bridge.h +pub const NF_BR_PRE_ROUTING: ::c_int = 0; +pub const NF_BR_LOCAL_IN: ::c_int = 1; +pub const NF_BR_FORWARD: ::c_int = 2; +pub const NF_BR_LOCAL_OUT: ::c_int = 3; +pub const NF_BR_POST_ROUTING: ::c_int = 4; +pub const NF_BR_BROUTING: ::c_int = 5; +pub const NF_BR_NUMHOOKS: ::c_int = 6; + +pub const NF_BR_PRI_FIRST: ::c_int = ::INT_MIN; +pub const NF_BR_PRI_NAT_DST_BRIDGED: ::c_int = -300; +pub const NF_BR_PRI_FILTER_BRIDGED: ::c_int = -200; +pub const NF_BR_PRI_BRNF: ::c_int = 0; +pub const NF_BR_PRI_NAT_DST_OTHER: ::c_int = 100; +pub const NF_BR_PRI_FILTER_OTHER: ::c_int = 200; +pub const NF_BR_PRI_NAT_SRC: ::c_int = 300; +pub const NF_BR_PRI_LAST: ::c_int = ::INT_MAX; // linux/netfilter_ipv4.h pub const NF_IP_PRE_ROUTING: ::c_int = 0; @@ -3360,6 +3387,7 @@ pub const NF_IP_POST_ROUTING: ::c_int = 4; pub const NF_IP_NUMHOOKS: ::c_int = 5; pub const NF_IP_PRI_FIRST: ::c_int = ::INT_MIN; +pub const NF_IP_PRI_RAW_BEFORE_DEFRAG: ::c_int = -450; pub const NF_IP_PRI_CONNTRACK_DEFRAG: ::c_int = -400; pub const NF_IP_PRI_RAW: ::c_int = -300; pub const NF_IP_PRI_SELINUX_FIRST: ::c_int = -225; @@ -3383,6 +3411,7 @@ pub const NF_IP6_POST_ROUTING: ::c_int = 4; pub const NF_IP6_NUMHOOKS: ::c_int = 5; pub const NF_IP6_PRI_FIRST: ::c_int = ::INT_MIN; +pub const NF_IP6_PRI_RAW_BEFORE_DEFRAG: ::c_int = -450; pub const NF_IP6_PRI_CONNTRACK_DEFRAG: ::c_int = -400; pub const NF_IP6_PRI_RAW: ::c_int = -300; pub const NF_IP6_PRI_SELINUX_FIRST: ::c_int = -225; From f1dd493821c8034cacd1c53a2a7683d956cba508 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sun, 9 Jun 2024 12:56:27 +0100 Subject: [PATCH 0300/1228] freebsd kcmp call support. (backport ) (cherry picked from commit 68ebe1d187d0b40e7ba2012c5d36162a57528a2e) --- libc-test/build.rs | 10 ++++++++++ libc-test/semver/freebsd.txt | 6 ++++++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 14 ++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index ea3d8e8ceafc7..8e8a71d2bb4e1 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2596,6 +2596,13 @@ fn test_freebsd(target: &str) { true } + // Added in FreeBSD 14.1 + "KCMP_FILE" | "KCMP_FILEOBJ" | "KCMP_FILES" | "KCMP_SIGHAND" | "KCMP_VM" + if Some(14) > freebsd_ver => + { + true + } + // FIXME: Removed in FreeBSD 15: "LOCAL_CONNWAIT" if freebsd_ver >= Some(15) => true, @@ -2716,6 +2723,9 @@ fn test_freebsd(target: &str) { true } + // Those are introduced in FreeBSD 14.1. + "kcmp" => true, + _ => false, } }); diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index ba4902ee780a2..853e4c0043ddc 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -689,6 +689,11 @@ JAIL_SYS_DISABLE JAIL_SYS_INHERIT JAIL_SYS_NEW JAIL_UPDATE +KCMP_FILE +KCMP_FILEOBJ +KCMP_FILES +KCMP_SIGHAND +KCMP_VM KENV_DUMP KENV_DUMP_LOADER KENV_DUMP_STATIC @@ -2007,6 +2012,7 @@ jail_get jail_remove jail_set jrand48 +kcmp kevent key_t killpg diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 1cb8ab4c34845..9b69ccbbb74de 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -4902,6 +4902,12 @@ pub const TFD_TIMER_CANCEL_ON_SET: ::c_int = 0x02; pub const CLOSE_RANGE_CLOEXEC: ::c_uint = 1 << 2; +pub const KCMP_FILE: ::c_int = 100; +pub const KCMP_FILEOBJ: ::c_int = 101; +pub const KCMP_FILES: ::c_int = 102; +pub const KCMP_SIGHAND: ::c_int = 103; +pub const KCMP_VM: ::c_int = 104; + pub const fn MAP_ALIGNED(a: ::c_int) -> ::c_int { a << 24 } @@ -5625,6 +5631,14 @@ extern "C" { argv: *const *const ::c_char, envp: *const *const ::c_char, ) -> ::c_int; + + pub fn kcmp( + pid1: ::pid_t, + pid2: ::pid_t, + type_: ::c_int, + idx1: ::c_ulong, + idx2: ::c_ulong, + ) -> ::c_int; } #[link(name = "memstat")] From ddf5f93bb1987e0851bd775ff09029fbb86a98b6 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sun, 10 Mar 2024 23:13:33 +0000 Subject: [PATCH 0301/1228] adding in6_ifreq to apple. close #3611 (backport ) (cherry picked from commit 01955aef9721b2791d4a2fe917d88842a33e1a48) --- libc-test/build.rs | 2 + libc-test/semver/apple.txt | 5 ++ src/unix/bsd/apple/mod.rs | 163 +++++++++++++++++++++++++++++++++++++ 3 files changed, 170 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 8e8a71d2bb4e1..c9ecc4b0376dd 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -232,6 +232,7 @@ fn test_apple(target: &str) { "netinet/ip.h", "netinet/tcp.h", "netinet/udp.h", + "netinet6/in6_var.h", "os/clock.h", "os/lock.h", "os/signpost.h", @@ -401,6 +402,7 @@ fn test_apple(target: &str) { ("__darwin_arm_neon_state64", "__v") => true, ("ifreq", "ifr_ifru") => true, + ("in6_ifreq", "ifr_ifru") => true, ("ifkpi", "ifk_data") => true, ("ifconf", "ifc_ifcu") => true, // FIXME: this field has been incorporated into a resized `rmx_filler` array. diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index 36faea40179a5..1b278d66a15b5 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -2003,6 +2003,7 @@ globfree host_cpu_load_info host_cpu_load_info_data_t host_cpu_load_info_t +icmp6_ifstat iconv iconv_close iconv_open @@ -2018,6 +2019,9 @@ ifconf ifkpi ifreq image_offset +in6_addrlifetime +in6_ifreq +in6_ifstat in6_pktinfo in_pktinfo initgroups @@ -2338,6 +2342,7 @@ timeval32 timex truncate ttyname_r +u_quad_t ucontext_t unmount useconds_t diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index cd8a67a1b9ec2..74eb9b45d5d2e 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -37,6 +37,8 @@ pub type rusage_info_t = *mut ::c_void; pub type vm_offset_t = ::uintptr_t; pub type vm_size_t = ::uintptr_t; pub type vm_address_t = vm_offset_t; +pub type quad_t = i64; +pub type u_quad_t = u64; pub type posix_spawnattr_t = *mut ::c_void; pub type posix_spawn_file_actions_t = *mut ::c_void; @@ -1233,6 +1235,78 @@ s! { pub iffmid_id: u32, pub iffmid_str: [::c_char; 1], } + + pub struct in6_addrlifetime { + pub ia6t_expire: time_t, + pub ia6t_preferred: time_t, + pub ia6t_vltime: u32, + pub ia6t_pltime: u32, + } + + pub struct in6_ifstat { + pub ifs6_in_receive: ::u_quad_t, + pub ifs6_in_hdrerr: ::u_quad_t, + pub ifs6_in_toobig: ::u_quad_t, + pub ifs6_in_noroute: ::u_quad_t, + pub ifs6_in_addrerr: ::u_quad_t, + pub ifs6_in_protounknown: ::u_quad_t, + pub ifs6_in_truncated: ::u_quad_t, + pub ifs6_in_discard: ::u_quad_t, + pub ifs6_in_deliver: ::u_quad_t, + pub ifs6_out_forward: ::u_quad_t, + pub ifs6_out_request: ::u_quad_t, + pub ifs6_out_discard: ::u_quad_t, + pub ifs6_out_fragok: ::u_quad_t, + pub ifs6_out_fragfail: ::u_quad_t, + pub ifs6_out_fragcreat: ::u_quad_t, + pub ifs6_reass_reqd: ::u_quad_t, + pub ifs6_reass_ok: ::u_quad_t, + pub ifs6_atmfrag_rcvd: ::u_quad_t, + pub ifs6_reass_fail: ::u_quad_t, + pub ifs6_in_mcast: ::u_quad_t, + pub ifs6_out_mcast: ::u_quad_t, + pub ifs6_cantfoward_icmp6: ::u_quad_t, + pub ifs6_addr_expiry_cnt: ::u_quad_t, + pub ifs6_pfx_expiry_cnt: ::u_quad_t, + pub ifs6_defrtr_expiry_cnt: ::u_quad_t, + } + + pub struct icmp6_ifstat { + pub ifs6_in_msg: ::u_quad_t, + pub ifs6_in_error: ::u_quad_t, + pub ifs6_in_dstunreach: ::u_quad_t, + pub ifs6_in_adminprohib: ::u_quad_t, + pub ifs6_in_timeexceed: ::u_quad_t, + pub ifs6_in_paramprob: ::u_quad_t, + pub ifs6_in_pkttoobig: ::u_quad_t, + pub ifs6_in_echo: ::u_quad_t, + pub ifs6_in_echoreply: ::u_quad_t, + pub ifs6_in_routersolicit: ::u_quad_t, + pub ifs6_in_routeradvert: ::u_quad_t, + pub ifs6_in_neighborsolicit: ::u_quad_t, + pub ifs6_in_neighboradvert: ::u_quad_t, + pub ifs6_in_redirect: ::u_quad_t, + pub ifs6_in_mldquery: ::u_quad_t, + pub ifs6_in_mldreport: ::u_quad_t, + pub ifs6_in_mlddone: ::u_quad_t, + pub ifs6_out_msg: ::u_quad_t, + pub ifs6_out_error: ::u_quad_t, + pub ifs6_out_dstunreach: ::u_quad_t, + pub ifs6_out_adminprohib: ::u_quad_t, + pub ifs6_out_timeexceed: ::u_quad_t, + pub ifs6_out_paramprob: ::u_quad_t, + pub ifs6_out_pkttoobig: ::u_quad_t, + pub ifs6_out_echo: ::u_quad_t, + pub ifs6_out_echoreply: ::u_quad_t, + pub ifs6_out_routersolicit: ::u_quad_t, + pub ifs6_out_routeradvert: ::u_quad_t, + pub ifs6_out_neighborsolicit: ::u_quad_t, + pub ifs6_out_neighboradvert: ::u_quad_t, + pub ifs6_out_redirect: ::u_quad_t, + pub ifs6_out_mldquery: ::u_quad_t, + pub ifs6_out_mldreport: ::u_quad_t, + pub ifs6_out_mlddone: ::u_quad_t, + } } s_no_extra_traits! { @@ -1576,6 +1650,25 @@ s_no_extra_traits! { pub ifcu_buf: *mut ::c_char, pub ifcu_req: *mut ifreq, } + + pub union __c_anonymous_ifr_ifru6 { + pub ifru_addr: ::sockaddr_in6, + pub ifru_dstaddr: ::sockaddr_in6, + pub ifru_flags: ::c_int, + pub ifru_flags6: ::c_int, + pub ifru_metrics: ::c_int, + pub ifru_intval: ::c_int, + pub ifru_data: *mut ::c_char, + pub ifru_lifetime: in6_addrlifetime, + pub ifru_stat: in6_ifstat, + pub ifru_icmp6stat: icmp6_ifstat, + pub ifru_scope_id: [u32; SCOPE6_ID_MAX], + } + + pub struct in6_ifreq { + pub ifr_name: [::c_char; ::IFNAMSIZ], + pub ifr_ifru: __c_anonymous_ifr_ifru6, + } } impl siginfo_t { @@ -3151,6 +3244,74 @@ cfg_if! { unsafe { self.ifcu_req.hash(state) }; } } + + impl PartialEq for __c_anonymous_ifr_ifru6 { + fn eq(&self, other: &__c_anonymous_ifr_ifru6) -> bool { + unsafe { + self.ifru_addr == other.ifru_addr + && self.ifru_dstaddr == other.ifru_dstaddr + && self.ifru_flags == other.ifru_flags + && self.ifru_flags6 == other.ifru_flags6 + && self.ifru_metrics == other.ifru_metrics + && self.ifru_intval == other.ifru_intval + && self.ifru_data == other.ifru_data + && self.ifru_scope_id + .iter() + .zip(other.ifru_scope_id.iter()) + .all(|(a,b)| a == b) + } + } + } + + impl Eq for __c_anonymous_ifr_ifru6 {} + + impl ::fmt::Debug for __c_anonymous_ifr_ifru6 { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("__c_anonymous_ifr_ifru6") + .field("ifru_addr", unsafe { &self.ifru_addr }) + .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) + .field("ifru_flags", unsafe { &self.ifru_flags }) + .field("ifru_flags6", unsafe { &self.ifru_flags6 }) + .field("ifru_metrics", unsafe { &self.ifru_metrics }) + .field("ifru_intval", unsafe { &self.ifru_intval }) + .field("ifru_data", unsafe { &self.ifru_data }) + .field("ifru_scope_id", unsafe { &self.ifru_scope_id }) + .finish() + } + } + + impl ::hash::Hash for __c_anonymous_ifr_ifru6 { + fn hash(&self, state: &mut H) { + unsafe { + self.ifru_addr.hash(state); + self.ifru_dstaddr.hash(state); + self.ifru_flags.hash(state); + self.ifru_flags6.hash(state); + self.ifru_metrics.hash(state); + self.ifru_intval.hash(state); + self.ifru_data.hash(state); + self.ifru_scope_id.hash(state); + } + } + } + + impl PartialEq for in6_ifreq { + fn eq(&self, other: &in6_ifreq) -> bool { + self.ifr_name == other.ifr_name + && self.ifr_ifru == other.ifr_ifru + } + } + + impl Eq for in6_ifreq {} + + impl ::fmt::Debug for in6_ifreq { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("in6_ifreq") + .field("ifr_name", &self.ifr_name) + .field("ifr_ifru", &self.ifr_ifru) + .finish() + } + } } } @@ -4340,6 +4501,8 @@ pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; // use alternate physical connection pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast +pub const SCOPE6_ID_MAX: ::size_t = 16; + pub const SHUT_RD: ::c_int = 0; pub const SHUT_WR: ::c_int = 1; pub const SHUT_RDWR: ::c_int = 2; From 8e55d586e823898aa0e440b74611b2c7caf23aac Mon Sep 17 00:00:00 2001 From: David Carlier Date: Tue, 13 Feb 2024 19:52:29 +0000 Subject: [PATCH 0302/1228] linux elf relocation related structs addition. close #3577 (backport ) (cherry picked from commit 7763956f21d4dc663f4949583ac20eeb11d28b9f) --- libc-test/build.rs | 7 ++++ libc-test/semver/linux-aarch64.txt | 2 + libc-test/semver/linux-i686.txt | 2 + libc-test/semver/linux-powerpc64.txt | 2 + libc-test/semver/linux-riscv64gc.txt | 2 + libc-test/semver/linux-x86_64.txt | 2 + libc-test/semver/linux.txt | 13 +++++++ src/unix/linux_like/linux/mod.rs | 57 ++++++++++++++++++++++++++++ 8 files changed, 87 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index c9ecc4b0376dd..7ea6a5b819381 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3695,6 +3695,13 @@ fn test_linux(target: &str) { }); cfg.skip_type(move |ty| { + // FIXME: very recent additions to musl, not yet released. + if musl && (ty == "Elf32_Relr" || ty == "Elf64_Relr") { + return true; + } + if sparc64 && (ty == "Elf32_Rela" || ty == "Elf64_Rela") { + return true; + } match ty { // FIXME: `sighandler_t` type is incorrect, see: // https://github.com/rust-lang/libc/issues/1359 diff --git a/libc-test/semver/linux-aarch64.txt b/libc-test/semver/linux-aarch64.txt index 7e2566b6f0b1a..9dceaeccb819b 100644 --- a/libc-test/semver/linux-aarch64.txt +++ b/libc-test/semver/linux-aarch64.txt @@ -38,6 +38,8 @@ BPF_W BPF_X BPF_XOR CIBAUD +Elf32_Rela +Elf64_Rela FICLONE FICLONERANGE MADV_SOFT_OFFLINE diff --git a/libc-test/semver/linux-i686.txt b/libc-test/semver/linux-i686.txt index 73d4ca3554321..d914ca7f9285d 100644 --- a/libc-test/semver/linux-i686.txt +++ b/libc-test/semver/linux-i686.txt @@ -15,6 +15,8 @@ EFL EIP ES ESI +Elf32_Rela +Elf64_Rela FS GS KEYCTL_CAPABILITIES diff --git a/libc-test/semver/linux-powerpc64.txt b/libc-test/semver/linux-powerpc64.txt index 99be508e6bd59..77718d9ce47f0 100644 --- a/libc-test/semver/linux-powerpc64.txt +++ b/libc-test/semver/linux-powerpc64.txt @@ -2,6 +2,8 @@ B2500000 B3000000 B3500000 B4000000 +Elf32_Rela +Elf64_Rela KEYCTL_CAPABILITIES KEYCTL_CAPS0_BIG_KEY KEYCTL_CAPS0_CAPABILITIES diff --git a/libc-test/semver/linux-riscv64gc.txt b/libc-test/semver/linux-riscv64gc.txt index 28a115b234638..13f5b85196790 100644 --- a/libc-test/semver/linux-riscv64gc.txt +++ b/libc-test/semver/linux-riscv64gc.txt @@ -10,6 +10,8 @@ COMPAT_HWCAP_ISA_F COMPAT_HWCAP_ISA_I COMPAT_HWCAP_ISA_M COMPAT_HWCAP_ISA_V +Elf32_Rela +Elf64_Rela KEYCTL_CAPABILITIES KEYCTL_CAPS0_BIG_KEY KEYCTL_CAPS0_CAPABILITIES diff --git a/libc-test/semver/linux-x86_64.txt b/libc-test/semver/linux-x86_64.txt index a26f63d6d5a6c..f1ed29b8f299d 100644 --- a/libc-test/semver/linux-x86_64.txt +++ b/libc-test/semver/linux-x86_64.txt @@ -41,6 +41,8 @@ CIBAUD CS DS ES +Elf32_Rela +Elf64_Rela FS GS MADV_SOFT_OFFLINE diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index fff447de3c8fc..f549c977a60ba 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -418,6 +418,12 @@ EL2HLT EL2NSYNC EL3HLT EL3RST +ELF32_R_INFO +ELF32_R_SYM +ELF32_R_TYPE +ELF64_R_INFO +ELF64_R_SYM +ELF64_R_TYPE ELFCLASS32 ELFCLASS64 ELFCLASSNONE @@ -697,17 +703,24 @@ Elf32_Ehdr Elf32_Half Elf32_Off Elf32_Phdr +Elf32_Rel +Elf32_Relr Elf32_Section Elf32_Shdr +Elf32_Sword Elf32_Sym Elf32_Word +Elf32_Xword Elf64_Addr Elf64_Ehdr Elf64_Half Elf64_Off Elf64_Phdr +Elf64_Rel +Elf64_Relr Elf64_Section Elf64_Shdr +Elf64_Sword Elf64_Sxword Elf64_Sym Elf64_Word diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 495db499b9a29..9cc2425fc6b6f 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -28,6 +28,8 @@ pub type Elf32_Half = u16; pub type Elf32_Word = u32; pub type Elf32_Off = u32; pub type Elf32_Addr = u32; +pub type Elf32_Xword = u64; +pub type Elf32_Sword = i32; pub type Elf64_Half = u16; pub type Elf64_Word = u32; @@ -35,10 +37,23 @@ pub type Elf64_Off = u64; pub type Elf64_Addr = u64; pub type Elf64_Xword = u64; pub type Elf64_Sxword = i64; +pub type Elf64_Sword = i32; pub type Elf32_Section = u16; pub type Elf64_Section = u16; +pub type Elf32_Relr = Elf32_Word; +pub type Elf64_Relr = Elf32_Xword; +pub type Elf32_Rel = __c_anonymous_elf32_rel; +pub type Elf64_Rel = __c_anonymous_elf64_rel; + +cfg_if! { + if #[cfg(not(target_arch = "sparc64"))] { + pub type Elf32_Rela = __c_anonymous_elf32_rela; + pub type Elf64_Rela = __c_anonymous_elf64_rela; + } +} + // linux/can.h pub type canid_t = u32; @@ -980,6 +995,24 @@ s! { } } +cfg_if! { + if #[cfg(not(target_arch = "sparc64"))] { + s!{ + pub struct __c_anonymous_elf32_rela { + pub r_offset: Elf32_Addr, + pub r_info: Elf32_Word, + pub r_addend: Elf32_Sword, + } + + pub struct __c_anonymous_elf64_rela { + pub r_offset: Elf64_Addr, + pub r_info: Elf64_Xword, + pub r_addend: Elf64_Sxword, + } + } + } +} + s_no_extra_traits! { pub struct sockaddr_nl { pub nl_family: ::sa_family_t, @@ -5353,6 +5386,30 @@ f! { pub fn BPF_JUMP(code: ::__u16, k: ::__u32, jt: ::__u8, jf: ::__u8) -> sock_filter { sock_filter{code: code, jt: jt, jf: jf, k: k} } + + pub fn ELF32_R_SYM(val: Elf32_Word) -> Elf32_Word { + val >> 8 + } + + pub fn ELF32_R_TYPE(val: Elf32_Word) -> Elf32_Word { + val & 0xff + } + + pub fn ELF32_R_INFO(sym: Elf32_Word, t: Elf32_Word) -> Elf32_Word { + sym << 8 + t & 0xff + } + + pub fn ELF64_R_SYM(val: Elf64_Xword) -> Elf64_Xword { + val >> 32 + } + + pub fn ELF64_R_TYPE(val: Elf64_Xword) -> Elf64_Xword { + val & 0xffffffff + } + + pub fn ELF64_R_INFO(sym: Elf64_Xword, t: Elf64_Xword) -> Elf64_Xword { + sym << 32 + t + } } safe_f! { From 870f096739f8e826b127ee9515422d253d91302c Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 21 Apr 2023 20:25:58 +0100 Subject: [PATCH 0303/1228] utmpx api for linux musl. close #3190 (backport ) (cherry picked from commit e3caaf6b0ea08ae294e25a861022c256a7535ec4) --- libc-test/semver/linux-musl.txt | 6 ++++++ src/unix/linux_like/linux/musl/mod.rs | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index b307f90353ef0..62b188dac8288 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -78,11 +78,15 @@ copy_file_range ctermid dirname eaccess +endutxent euidaccess explicit_bzero futimes getauxval getloadavg +getutxent +getutxid +getutxline lio_listio ntptimeval open_wmemstream @@ -94,8 +98,10 @@ prlimit prlimit64 process_vm_readv process_vm_writev +pututxline pwritev2 pwritev64 reallocarray +setutxent tcp_info timex diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 978423b0f2a0d..bfdbb0f0bad59 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -993,6 +993,13 @@ extern "C" { actions: *mut ::posix_spawn_file_actions_t, fd: ::c_int, ) -> ::c_int; + + pub fn getutxent() -> *mut utmpx; + pub fn getutxid(ut: *const utmpx) -> *mut utmpx; + pub fn getutxline(ut: *const utmpx) -> *mut utmpx; + pub fn pututxline(ut: *const utmpx) -> *mut utmpx; + pub fn setutxent(); + pub fn endutxent(); } // Alias to 64 to mimic glibc's LFS64 support From c00cc3b3acd8ae2853b23f53b6d1e6dddd5b769f Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 17 Nov 2024 04:02:02 -0500 Subject: [PATCH 0304/1228] Add a check that semver files don't contain duplicate entries Also make shellcheck failures actually cause an exit, `find ... -exec` apparently does not propagate errors. (backport ) (cherry picked from commit 1568789860258f9fbb41160c77e17ea6d5b711f8) --- ci/style.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ci/style.sh b/ci/style.sh index 131632ff21dd4..0684caafaad7d 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -11,7 +11,7 @@ rustfmt -V cargo fmt --all -- --check if shellcheck --version ; then - find . -name '*.sh' -exec shellcheck {} ';' + find . -name '*.sh' -print0 | xargs -0 shellcheck else echo "shellcheck not found" exit 1 @@ -29,4 +29,12 @@ for file in libc-test/semver/*.txt; do echo "Unsorted semver file $file" exit 1 fi + + duplicates=$(uniq -d "$file") + if [ -n "$duplicates" ]; then + echo "Semver file $file contains duplicates:" + echo "$duplicates" + + exit 1 + fi done From a00d7e6d1da5a656b3516eba217a208edd497320 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Tue, 2 Apr 2024 12:57:57 +0100 Subject: [PATCH 0305/1228] attempt to fix #3641 (backport ) (cherry picked from commit 2e94ad3524c1b0c4b33c971f11be9fca30c4e24c) --- libc-test/build.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 7ea6a5b819381..511e166d364ce 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3696,7 +3696,8 @@ fn test_linux(target: &str) { cfg.skip_type(move |ty| { // FIXME: very recent additions to musl, not yet released. - if musl && (ty == "Elf32_Relr" || ty == "Elf64_Relr") { + // also apparently some glibc versions + if ty == "Elf32_Relr" || ty == "Elf64_Relr" { return true; } if sparc64 && (ty == "Elf32_Rela" || ty == "Elf64_Rela") { From 69ce8953a4d0695c9c557ab830efeaddaacd106d Mon Sep 17 00:00:00 2001 From: Chris Denton Date: Sat, 9 Mar 2024 02:27:20 +0000 Subject: [PATCH 0306/1228] Move testing of primitive types from std (backport ) (cherry picked from commit d4da6c866a9b25cc37f73d2a27cb9f2d61397298) --- libc-test/Cargo.toml | 5 +++++ libc-test/test/primitive_types.rs | 15 +++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 libc-test/test/primitive_types.rs diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 62329d609a32f..e50db7a137c22 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -87,3 +87,8 @@ harness = true name = "semver" path = "test/semver.rs" harness = false + +[[test]] +name = "primitive_types" +path = "test/primitive_types.rs" +harness = true diff --git a/libc-test/test/primitive_types.rs b/libc-test/test/primitive_types.rs new file mode 100644 index 0000000000000..c125a92a58110 --- /dev/null +++ b/libc-test/test/primitive_types.rs @@ -0,0 +1,15 @@ +use std::any::TypeId; + +macro_rules! ok { + ($($t:ident)*) => {$( + assert!(TypeId::of::() == TypeId::of::(), + "{} is wrong", stringify!($t)); + )*} +} + +#[test] +fn same() { + use std::ffi; + ok!(c_char c_schar c_uchar c_short c_ushort c_int c_uint c_long c_ulong + c_longlong c_ulonglong c_float c_double); +} From 65c90726e2dc9df0934df359730e040f55dc5913 Mon Sep 17 00:00:00 2001 From: brijesh Date: Mon, 22 Jan 2024 16:18:26 +0530 Subject: [PATCH 0307/1228] added wireless struct and constants to Linux. (backport ) (cherry picked from commit 1ee94df2430993dcdb5777c15b695a867e90407a) --- libc-test/Cargo.toml | 5 - libc-test/semver/linux.txt | 23 +++ src/unix/linux_like/linux/mod.rs | 253 ++++++++++++++++++++++++++++++- 3 files changed, 274 insertions(+), 7 deletions(-) diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index e50db7a137c22..62329d609a32f 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -87,8 +87,3 @@ harness = true name = "semver" path = "test/semver.rs" harness = false - -[[test]] -name = "primitive_types" -path = "test/primitive_types.rs" -harness = true diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index f549c977a60ba..5557664a1ab03 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1353,9 +1353,16 @@ IW_ENC_CAPA_CIPHER_TKIP IW_ENC_CAPA_WPA IW_ENC_CAPA_WPA2 IW_ESSID_MAX_SIZE +IW_EVENT_CAPA_K_0 +IW_EVENT_CAPA_K_1 +IW_EV_ADDR_PK_LEN IW_EV_CHAR_PK_LEN +IW_EV_FREQ_PK_LEN IW_EV_LCP_PK_LEN +IW_EV_PARAM_PK_LEN IW_EV_POINT_PK_LEN +IW_EV_QUAL_PK_LEN +IW_EV_UINT_PK_LEN IW_FREQ_AUTO IW_FREQ_FIXED IW_GENERIC_IE_MAX @@ -3728,6 +3735,22 @@ ip_mreq_source ip_mreqn ipc_perm itimerspec +iw_discarded +iw_encode_ext +iw_event +iw_freq +iw_missed +iw_param +iw_pmkid_cand +iw_pmksa +iw_point +iw_priv_args +iw_quality +iw_range +iw_scan_req +iw_statistics +iwreq +iwreq_data j1939_filter jrand48 key_t diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 9cc2425fc6b6f..c11cc7ef84871 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -993,6 +993,141 @@ s! { pub ts_first_pkt: ::tpacket_bd_ts, pub ts_last_pkt: ::tpacket_bd_ts, } + + // linux/wireless.h + + pub struct iw_param { + pub value: __s32, + pub fixed: __u8, + pub disabled: __u8, + pub flags: __u16, + } + + pub struct iw_point { + pub pointer: *mut ::c_void, + pub length: __u16, + pub flags: __u16, + } + + pub struct iw_freq { + pub m: __s32, + pub e: __s16, + pub i: __u8, + pub flags: __u8, + } + + pub struct iw_quality { + pub qual: __u8, + pub level: __u8, + pub noise: __u8, + pub updated: __u8, + } + + pub struct iw_discarded { + pub nwid: __u32, + pub code: __u32, + pub fragment: __u32, + pub retries: __u32, + pubmisc: __u32, + } + + pub struct iw_missed { + pub beacon: __u32, + } + + pub struct iw_scan_req { + pub scan_type: __u8, + pub essid_len: __u8, + pub num_channels: __u8, + pub flags: __u8, + pub bssid: ::sockaddr, + pub essid: [__u8; IW_ESSID_MAX_SIZE], + pub min_channel_time: __u32, + pub max_channel_time: __u32, + pub channel_list: [iw_freq; IW_MAX_FREQUENCIES], + } + + pub struct iw_encode_ext { + pub ext_flags: __u32, + pub tx_seq: [__u8; IW_ENCODE_SEQ_MAX_SIZE], + pub rx_seq: [__u8; IW_ENCODE_SEQ_MAX_SIZE], + pub addr: ::sockaddr, + pub alg: __u16, + pub key_len: __u16, + pub key: [__u8;0], + } + + pub struct iw_pmksa { + pub cmd: __u32, + pub bssid: ::sockaddr, + pub pmkid: [__u8; IW_PMKID_LEN], + } + + pub struct iw_pmkid_cand { + pub flags: __u32, + pub index: __u32, + pub bssid: ::sockaddr, + } + + pub struct iw_statistics { + pub status: __u16, + pub qual: iw_quality, + pub discard: iw_discarded, + pub miss: iw_missed, + } + + pub struct iw_range { + pub throughput: __u32, + pub min_nwid: __u32, + pub max_nwid: __u32, + pub old_num_channels: __u16, + pub old_num_frequency: __u8, + pub scan_capa: __u8, + pub event_capa: [__u32; 6], + pub sensitivity: __s32, + pub max_qual: iw_quality, + pub avg_qual: iw_quality, + pub num_bitrates: __u8, + pub bitrate: [__s32; IW_MAX_BITRATES], + pub min_rts: __s32, + pub max_rts: __s32, + pub min_frag: __s32, + pub max_frag: __s32, + pub min_pmp: __s32, + pub max_pmp: __s32, + pub min_pmt: __s32, + pub max_pmt: __s32, + pub pmp_flags: __u16, + pub pmt_flags: __u16, + pub pm_capa: __u16, + pub encoding_size: [__u16; IW_MAX_ENCODING_SIZES], + pub num_encoding_sizes: __u8, + pub max_encoding_tokens: __u8, + pub encoding_login_index: __u8, + pub txpower_capa: __u16, + pub num_txpower: __u8, + pub txpower: [__s32;IW_MAX_TXPOWER], + pub we_version_compiled: __u8, + pub we_version_source: __u8, + pub retry_capa: __u16, + pub retry_flags: __u16, + pub r_time_flags: __u16, + pub min_retry: __s32, + pub max_retry: __s32, + pub min_r_time: __s32, + pub max_r_time: __s32, + pub num_channels: __u16, + pub num_frequency: __u8, + pub freq: [iw_freq; IW_MAX_FREQUENCIES], + pub enc_capa: __u32, + } + + pub struct iw_priv_args { + pub cmd: __u32, + pub set_args: __u16, + pub get_args: __u16, + pub name: [c_char; ::IFNAMSIZ], + } } cfg_if! { @@ -1009,6 +1144,23 @@ cfg_if! { pub r_info: Elf64_Xword, pub r_addend: Elf64_Sxword, } + + pub struct iw_thrspy { + pub addr: ::sockaddr, + pub qual: iw_quality, + pub low: iw_quality, + pub high: iw_quality, + } + pub struct iw_mlme { + pub cmd: __u16, + pub reason_code: __u16, + pub addr: ::sockaddr, + } + pub struct iw_michaelmicfailure { + pub flags: __u32, + pub src_addr: ::sockaddr, + pub tsc: [__u8; IW_ENCODE_SEQ_MAX_SIZE], + } } } } @@ -1323,6 +1475,43 @@ s_no_extra_traits! { pub can_ifindex: ::c_int, pub can_addr: __c_anonymous_sockaddr_can_can_addr, } + + // linux/wireless.h + pub union iwreq_data { + pub name: [c_char; ::IFNAMSIZ], + pub essid: iw_point, + pub nwid: iw_param, + pub freq: iw_freq, + pub sens: iw_param, + pub bitrate: iw_param, + pub txpower: iw_param, + pub rts: iw_param, + pub frag: iw_param, + pub mode: __u32, + pub retry: iw_param, + pub encoding: iw_point, + pub power: iw_param, + pub qual: iw_quality, + pub ap_addr: ::sockaddr, + pub addr: ::sockaddr, + pub param: iw_param, + pub data: iw_point, + } + + pub struct iw_event { + pub len: __u16, + pub cmd: __u16, + pub u: iwreq_data, + } + + pub union __c_anonymous_iwreq { + pub ifrn_name: [c_char; ::IFNAMSIZ], + } + + pub struct iwreq { + pub ifr_ifrn: __c_anonymous_iwreq, + pub u: iwreq_data, + } } cfg_if! { @@ -1797,6 +1986,58 @@ cfg_if! { self.sched_period.hash(state); } } + + impl ::fmt::Debug for iwreq_data { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("iwreq_data") + .field("name", unsafe { &self.name }) + .field("essid", unsafe { &self.essid }) + .field("nwid", unsafe { &self.nwid }) + .field("freq", unsafe { &self.freq }) + .field("sens", unsafe { &self.sens }) + .field("bitrate", unsafe { &self.bitrate }) + .field("txpower", unsafe { &self.txpower }) + .field("rts", unsafe { &self.rts }) + .field("frag", unsafe { &self.frag }) + .field("mode", unsafe { &self.mode }) + .field("retry", unsafe { &self.retry }) + .field("encoding", unsafe { &self.encoding }) + .field("power", unsafe { &self.power }) + .field("qual", unsafe { &self.qual }) + .field("ap_addr", unsafe { &self.ap_addr }) + .field("addr", unsafe { &self.addr }) + .field("param", unsafe { &self.param }) + .field("data", unsafe { &self.data }) + .finish() + } + } + + impl ::fmt::Debug for iw_event { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("iw_event") + .field("len", &self.len ) + .field("cmd", &self.cmd ) + .field("u", &self.u ) + .finish() + } + } + + impl ::fmt::Debug for __c_anonymous_iwreq { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("__c_anonymous_iwreq") + .field("ifrn_name", unsafe { &self.ifrn_name }) + .finish() + } + } + + impl ::fmt::Debug for iwreq { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("iwreq") + .field("ifr_ifrn", &self.ifr_ifrn ) + .field("u", &self.u ) + .finish() + } + } } } @@ -3794,6 +4035,9 @@ pub const IW_ENC_CAPA_CIPHER_TKIP: ::c_ulong = 0x00000004; pub const IW_ENC_CAPA_CIPHER_CCMP: ::c_ulong = 0x00000008; pub const IW_ENC_CAPA_4WAY_HANDSHAKE: ::c_ulong = 0x00000010; +pub const IW_EVENT_CAPA_K_0: c_ulong = 0x4000050; // IW_EVENT_CAPA_MASK(0x8B04) | IW_EVENT_CAPA_MASK(0x8B06) | IW_EVENT_CAPA_MASK(0x8B1A); +pub const IW_EVENT_CAPA_K_1: c_ulong = 0x400; // W_EVENT_CAPA_MASK(0x8B2A); + pub const IW_PMKSA_ADD: usize = 1; pub const IW_PMKSA_REMOVE: usize = 2; pub const IW_PMKSA_FLUSH: usize = 3; @@ -3804,8 +4048,13 @@ pub const IW_PMKID_CAND_PREAUTH: ::c_ulong = 0x00000001; pub const IW_EV_LCP_PK_LEN: usize = 4; -pub const IW_EV_CHAR_PK_LEN: usize = IW_EV_LCP_PK_LEN + ::IFNAMSIZ; -pub const IW_EV_POINT_PK_LEN: usize = IW_EV_LCP_PK_LEN + 4; +pub const IW_EV_CHAR_PK_LEN: usize = 20; // IW_EV_LCP_PK_LEN + ::IFNAMSIZ; +pub const IW_EV_UINT_PK_LEN: usize = 8; // IW_EV_LCP_PK_LEN + ::mem::size_of::(); +pub const IW_EV_FREQ_PK_LEN: usize = 12; // IW_EV_LCP_PK_LEN + ::mem::size_of::(); +pub const IW_EV_PARAM_PK_LEN: usize = 12; // IW_EV_LCP_PK_LEN + ::mem::size_of::(); +pub const IW_EV_ADDR_PK_LEN: usize = 20; // IW_EV_LCP_PK_LEN + ::mem::size_of::<::sockaddr>(); +pub const IW_EV_QUAL_PK_LEN: usize = 8; // IW_EV_LCP_PK_LEN + ::mem::size_of::(); +pub const IW_EV_POINT_PK_LEN: usize = 8; // IW_EV_LCP_PK_LEN + 4; pub const IPTOS_TOS_MASK: u8 = 0x1E; pub const IPTOS_PREC_MASK: u8 = 0xE0; From 0a0f27ced8b182b7356c924ab2a86c43bcc4025c Mon Sep 17 00:00:00 2001 From: Askar Safin Date: Sun, 28 Apr 2024 23:10:36 +0300 Subject: [PATCH 0308/1228] Add htonl, htons, ntohl, ntohs (backport ) (cherry picked from commit 1feb3542a7263fe4e0f80b1a7f3e29ef781e75ae) --- libc-test/semver/unix.txt | 4 ++++ src/unix/mod.rs | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/libc-test/semver/unix.txt b/libc-test/semver/unix.txt index 7f750ecae3a19..6a18038c48ae3 100644 --- a/libc-test/semver/unix.txt +++ b/libc-test/semver/unix.txt @@ -588,6 +588,8 @@ grantpt group hostent hstrerror +htonl +htons if_indextoname if_nametoindex in6_addr @@ -658,6 +660,8 @@ munmap nanosleep nfds_t nlink_t +ntohl +ntohs off_t open opendir diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 35194ac0ebc51..0a290b734a3d1 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1446,6 +1446,23 @@ extern "C" { } +safe_f! { + // It seems htonl, etc are macros on macOS. So we have to reimplement them. So let's + // reimplement them for all UNIX platforms + pub {const} fn htonl(hostlong: u32) -> u32 { + u32::to_be(hostlong) + } + pub {const} fn htons(hostshort: u16) -> u16 { + u16::to_be(hostshort) + } + pub {const} fn ntohl(netlong: u32) -> u32 { + u32::from_be(netlong) + } + pub {const} fn ntohs(netshort: u16) -> u16 { + u16::from_be(netshort) + } +} + cfg_if! { if #[cfg(not(any(target_os = "emscripten", target_os = "android", From 269e9f53d5dfb6d88524841ecbcaf8c929efe055 Mon Sep 17 00:00:00 2001 From: Andy Caldwell Date: Fri, 15 Nov 2024 01:51:41 +0000 Subject: [PATCH 0309/1228] Use `#[derive]` for `Copy`/`Clone` in `s!` and friends. Allows use of `#[cfg]` to skip items in an `s!` block without creating invalid, orphaned `impl` blocks. (backport ) (cherry picked from commit 44c548d00a68feebf80ebc919f3964d9330cc668) --- src/macros.rs | 30 +++++------------------------- 1 file changed, 5 insertions(+), 25 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index 7fd61e4b34eba..ff8afee32281a 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -82,16 +82,11 @@ macro_rules! s { __item! { #[repr(C)] #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] + #[derive(Copy, Clone)] #[allow(deprecated)] $(#[$attr])* pub struct $i { $($field)* } } - #[allow(deprecated)] - impl ::Copy for $i {} - #[allow(deprecated)] - impl ::Clone for $i { - fn clone(&self) -> $i { *self } - } ); } @@ -106,13 +101,10 @@ macro_rules! s_paren { )* ) => ($( __item! { #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] + #[derive(Copy, Clone)] $(#[$attr])* pub struct $i ( $($field)* ); } - impl ::Copy for $i {} - impl ::Clone for $i { - fn clone(&self) -> $i { *self } - } )*); } @@ -130,28 +122,19 @@ macro_rules! s_no_extra_traits { (it: $(#[$attr:meta])* pub union $i:ident { $($field:tt)* }) => ( __item! { #[repr(C)] + #[derive(Copy, Clone)] $(#[$attr])* pub union $i { $($field)* } } - - impl ::Copy for $i {} - impl ::Clone for $i { - fn clone(&self) -> $i { *self } - } ); (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => ( __item! { #[repr(C)] + #[derive(Copy, Clone)] $(#[$attr])* pub struct $i { $($field)* } } - #[allow(deprecated)] - impl ::Copy for $i {} - #[allow(deprecated)] - impl ::Clone for $i { - fn clone(&self) -> $i { *self } - } ); } @@ -177,13 +160,10 @@ macro_rules! e { )*) => ($( __item! { #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] + #[derive(Copy, Clone)] $(#[$attr])* pub enum $i { $($field)* } } - impl ::Copy for $i {} - impl ::Clone for $i { - fn clone(&self) -> $i { *self } - } )*); } From 70e2542e97f5515b3804496e15fcef437818757b Mon Sep 17 00:00:00 2001 From: Andy Caldwell Date: Fri, 15 Nov 2024 01:55:26 +0000 Subject: [PATCH 0310/1228] Add fanotify_event_info_fid to FAM-exempt types (backport ) (cherry picked from commit 73ce07ccefb2cb261ea6a1e7cbbcbedcb6569898) --- libc-test/build.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 511e166d364ce..c4b344f41b028 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4589,11 +4589,11 @@ fn test_linux(target: &str) { true } - // The `inotify_event` and `cmsghdr` types contain Flexible Array Member fields (the - // `name` and `data` fields respectively) which have unspecified calling convention. - // The roundtripping tests deliberately pass the structs by value to check "by value" - // layout consistency, but this would be UB for the these types. + // The following types contain Flexible Array Member fields which have unspecified calling + // convention. The roundtripping tests deliberately pass the structs by value to check "by + // value" layout consistency, but this would be UB for the these types. "inotify_event" => true, + "fanotify_event_info_fid" => true, "cmsghdr" => true, // FIXME: the call ABI of max_align_t is incorrect on these platforms: From 9a319349280f8458882c6196718cd74ded6b8c1e Mon Sep 17 00:00:00 2001 From: David Carlier Date: Thu, 29 Feb 2024 20:05:44 +0000 Subject: [PATCH 0311/1228] adding few android api 30 calls. close #3598. (backport ) (cherry picked from commit 7de90611bb9268b7f87444d39b5efc02b263efac) --- libc-test/build.rs | 2 +- libc-test/semver/android.txt | 5 ++ src/unix/linux_like/android/b32/mod.rs | 1 + .../linux_like/android/b64/aarch64/mod.rs | 1 + .../linux_like/android/b64/riscv64/mod.rs | 1 + src/unix/linux_like/android/b64/x86_64/mod.rs | 1 + src/unix/linux_like/android/mod.rs | 50 ++++++++++++++++++- 7 files changed, 59 insertions(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index c4b344f41b028..6b3e6abb166c3 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2075,7 +2075,7 @@ fn test_android(target: &str) { "__system_property_wait" => true, // Added in API level 30, but tests use level 28. - "mlock2" => true, + "memfd_create" | "mlock2" | "renameat2" | "statx" | "statx_timestamp" => true, // Added in glibc 2.25. "getentropy" => true, diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 2c49d75c4466f..06a28efaac820 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -3469,6 +3469,7 @@ memalign memchr memcmp memcpy +memfd_create memmem memmove memrchr @@ -3484,6 +3485,7 @@ mknodat mkstemp mktime mlock +mlock2 mlockall mmap mmap64 @@ -3672,6 +3674,7 @@ remove removexattr rename renameat +renameat2 res_init rewind rewinddir @@ -3797,6 +3800,8 @@ statfs statfs64 statvfs statvfs64 +statx +statx_timestamp strcasecmp strcasestr strcat diff --git a/src/unix/linux_like/android/b32/mod.rs b/src/unix/linux_like/android/b32/mod.rs index 1f4f796f2a94a..aa29267f9db50 100644 --- a/src/unix/linux_like/android/b32/mod.rs +++ b/src/unix/linux_like/android/b32/mod.rs @@ -9,6 +9,7 @@ pub type sigset_t = ::c_ulong; pub type socklen_t = i32; pub type time64_t = i64; pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; s! { pub struct sigaction { diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index 0d6f32ee3989c..9587770e8cb2c 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -1,6 +1,7 @@ pub type c_char = u8; pub type wchar_t = u32; pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; s! { pub struct stat { diff --git a/src/unix/linux_like/android/b64/riscv64/mod.rs b/src/unix/linux_like/android/b64/riscv64/mod.rs index 0251804691fd6..82a3aa62f51a5 100644 --- a/src/unix/linux_like/android/b64/riscv64/mod.rs +++ b/src/unix/linux_like/android/b64/riscv64/mod.rs @@ -2,6 +2,7 @@ pub type c_char = i8; pub type wchar_t = u32; pub type greg_t = i64; pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; s! { pub struct stat { diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index f871fb2cd4a61..57a41a224fe2c 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -2,6 +2,7 @@ pub type c_char = i8; pub type wchar_t = i32; pub type greg_t = i64; pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; s! { pub struct stat { diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 75f8a7877b617..3e30ce5bb17cf 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -514,8 +514,40 @@ s! { pub ifr6_addr: ::in6_addr, pub ifr6_prefixlen: u32, pub ifr6_ifindex: ::c_int, - } + } + + pub struct statx { + pub stx_mask: ::__u32, + pub stx_blksize: ::__u32, + pub stx_attributes: ::__u64, + pub stx_nlink: ::__u32, + pub stx_uid: ::__u32, + pub stx_gid: ::__u32, + pub stx_mode: ::__u16, + __statx_pad1: [::__u16; 1], + pub stx_ino: ::__u64, + pub stx_size: ::__u64, + pub stx_blocks: ::__u64, + pub stx_attributes_mask: ::__u64, + pub stx_atime: ::statx_timestamp, + pub stx_btime: ::statx_timestamp, + pub stx_ctime: ::statx_timestamp, + pub stx_mtime: ::statx_timestamp, + pub stx_rdev_major: ::__u32, + pub stx_rdev_minor: ::__u32, + pub stx_dev_major: ::__u32, + pub stx_dev_minor: ::__u32, + pub stx_mnt_id: ::__u64, + pub stx_dio_mem_align: ::__u32, + pub stx_dio_offset_align: ::__u32, + __statx_pad3: [::__u64; 12], + } + pub struct statx_timestamp { + pub tv_sec: ::__s64, + pub tv_nsec: ::__u32, + pub __reserved: ::__s32, + } } s_no_extra_traits! { @@ -4169,6 +4201,22 @@ extern "C" { pub fn fgets_unlocked(buf: *mut ::c_char, size: ::c_int, stream: *mut ::FILE) -> *mut ::c_char; pub fn klogctl(syslog_type: ::c_int, bufp: *mut ::c_char, len: ::c_int) -> ::c_int; + + pub fn memfd_create(name: *const ::c_char, flags: ::c_uint) -> ::c_int; + pub fn renameat2( + olddirfd: ::c_int, + oldpath: *const ::c_char, + newdirfd: ::c_int, + newpath: *const ::c_char, + flags: ::c_uint, + ) -> ::c_int; + pub fn statx( + dirfd: ::c_int, + pathname: *const c_char, + flags: ::c_int, + mask: ::c_uint, + statxbuf: *mut statx, + ) -> ::c_int; } cfg_if! { From b190462ddb90527b2356c532ac708091b6f8efcf Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 16 Aug 2024 21:38:13 +0100 Subject: [PATCH 0312/1228] adding aligned_alloc support for unixes. close #3689 (backport ) (cherry picked from commit f136b309a9c6128ffe7ca6dec7043b1f31a8e80e) --- libc-test/semver/unix.txt | 1 + src/unix/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/unix.txt b/libc-test/semver/unix.txt index 6a18038c48ae3..093dde173137c 100644 --- a/libc-test/semver/unix.txt +++ b/libc-test/semver/unix.txt @@ -453,6 +453,7 @@ accept access addrinfo alarm +aligned_alloc atexit atof atoi diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 0a290b734a3d1..ebbf42d8140e2 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -940,6 +940,7 @@ extern "C" { pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; pub fn pipe(fds: *mut ::c_int) -> ::c_int; pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int; + pub fn aligned_alloc(alignment: ::size_t, size: ::size_t) -> *mut ::c_void; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "read$UNIX2003" From 602f03954a04d3cbc6685c2af9ccf891a973d74c Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 05:03:54 -0500 Subject: [PATCH 0313/1228] Small syncs from `main` to `libc-0.2` --- src/fuchsia/mod.rs | 2 +- src/lib.rs | 2 ++ src/macros.rs | 2 +- src/unix/aix/mod.rs | 8 ++++---- src/unix/aix/powerpc64.rs | 16 ++++++++-------- src/unix/bsd/apple/mod.rs | 6 ++---- src/unix/bsd/mod.rs | 6 +++--- src/unix/bsd/netbsdlike/netbsd/aarch64.rs | 1 + src/unix/linux_like/mod.rs | 2 +- src/unix/newlib/mod.rs | 2 +- src/unix/nto/mod.rs | 2 +- src/unix/redox/mod.rs | 2 +- src/unix/solarish/mod.rs | 4 ++-- 13 files changed, 28 insertions(+), 27 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index c4c7e6544b21b..ce274f2261279 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -382,7 +382,7 @@ s! { } pub struct fd_set { - fds_bits: [::c_ulong; FD_SETSIZE / ULONG_SIZE], + fds_bits: [::c_ulong; FD_SETSIZE as usize / ULONG_SIZE], } pub struct tm { diff --git a/src/lib.rs b/src/lib.rs index 4f4cedb62f925..8af17cb0cb582 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -46,6 +46,8 @@ cfg_if! { #[allow(unused_imports)] use core::clone::Clone; #[allow(unused_imports)] +use core::ffi; +#[allow(unused_imports)] use core::fmt; #[allow(unused_imports)] use core::hash; diff --git a/src/macros.rs b/src/macros.rs index ff8afee32281a..2661e0fb13827 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -98,7 +98,7 @@ macro_rules! s_paren { ($( $(#[$attr:meta])* pub struct $i:ident ( $($field:tt)* ); - )* ) => ($( + )*) => ($( __item! { #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] #[derive(Copy, Clone)] diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index d404c3e8b52a1..fc7a580eca28e 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -573,7 +573,7 @@ cfg_if! { } impl Eq for __sigaction_sa_union {} impl ::fmt::Debug for __sigaction_sa_union { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { f.debug_struct("__sigaction_sa_union") .field("__su_handler", unsafe { &self.__su_handler }) .field("__su_sigaction", unsafe { &self.__su_sigaction }) @@ -598,7 +598,7 @@ cfg_if! { } impl Eq for sigaction {} impl ::fmt::Debug for sigaction { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { f.debug_struct("sigaction") .field("sa_union", &self.sa_union) .field("sa_mask", &self.sa_mask) @@ -625,7 +625,7 @@ cfg_if! { } impl Eq for __poll_ctl_ext_u {} impl ::fmt::Debug for __poll_ctl_ext_u { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { f.debug_struct("__poll_ctl_ext_u") .field("addr", unsafe { &self.addr }) .field("data32", unsafe { &self.data32 }) @@ -655,7 +655,7 @@ cfg_if! { } impl Eq for poll_ctl_ext {} impl ::fmt::Debug for poll_ctl_ext { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { f.debug_struct("poll_ctl_ext") .field("version", &self.version) .field("command", &self.command) diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index e7f1b670823f8..f8ec9811be617 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -307,7 +307,7 @@ cfg_if! { } impl Eq for siginfo_t {} impl ::fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { f.debug_struct("siginfo_t") .field("si_signo", &self.si_signo) .field("si_errno", &self.si_errno) @@ -347,7 +347,7 @@ cfg_if! { } impl Eq for _kernel_simple_lock {} impl ::fmt::Debug for _kernel_simple_lock { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + 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 }) @@ -410,12 +410,12 @@ cfg_if! { && self.f_fnamep == other.f_fnamep && self.f_fdata == other.f_fdata && self.f_lock == other.f_lock - && self.f_offset_lock == other.f_offset_lock; + && self.f_offset_lock == other.f_offset_lock } } impl Eq for file {} impl ::fmt::Debug for file { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { f.debug_struct("file") .field("f_flag", &self.f_flag) .field("f_count", &self.f_count) @@ -466,7 +466,7 @@ cfg_if! { } impl Eq for __ld_info_file {} impl ::fmt::Debug for __ld_info_file { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + 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 }) @@ -498,7 +498,7 @@ cfg_if! { } impl Eq for ld_info {} impl ::fmt::Debug for ld_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { f.debug_struct("ld_info") .field("ldinfo_next", &self.ldinfo_next) .field("ldinfo_flags", &self.ldinfo_flags) @@ -535,7 +535,7 @@ cfg_if! { } impl Eq for __pollfd_ext_u {} impl ::fmt::Debug for __pollfd_ext_u { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + 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 }) @@ -563,7 +563,7 @@ cfg_if! { } impl Eq for pollfd_ext {} impl ::fmt::Debug for pollfd_ext { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { f.debug_struct("pollfd_ext") .field("fd", &self.fd) .field("events", &self.events) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 74eb9b45d5d2e..1bf743e1cd7ad 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1595,7 +1595,7 @@ s_no_extra_traits! { _os_unfair_lock_opaque: u32, } - #[repr(packed(1))] + #[repr(packed(1))] pub struct sockaddr_vm { pub svm_len: ::c_uchar, pub svm_family: ::sa_family_t, @@ -1722,8 +1722,7 @@ cfg_if! { } impl Eq for semun {} impl ::fmt::Debug for semun { - fn fmt(&self, f: &mut ::fmt::Formatter) - -> ::fmt::Result { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("semun") .field("val", unsafe { &self.val }) .finish() @@ -1775,7 +1774,6 @@ cfg_if! { && self.udata == other.udata } } - impl Eq for kevent {} impl ::fmt::Debug for kevent { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index b49a83862f292..7e8d4d001c710 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -60,10 +60,10 @@ s! { pub struct fd_set { #[cfg(all(target_pointer_width = "64", any(target_os = "freebsd", target_os = "dragonfly")))] - fds_bits: [i64; FD_SETSIZE / 64], + fds_bits: [i64; FD_SETSIZE as usize / 64], #[cfg(not(all(target_pointer_width = "64", any(target_os = "freebsd", target_os = "dragonfly"))))] - fds_bits: [i32; FD_SETSIZE / 32], + fds_bits: [i32; FD_SETSIZE as usize / 32], } pub struct tm { @@ -129,7 +129,7 @@ s_no_extra_traits! { pub struct sockaddr_un { pub sun_len: u8, pub sun_family: sa_family_t, - pub sun_path: [c_char; 104] + pub sun_path: [::c_char; 104] } pub struct utsname { diff --git a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs index 5f57779d3037e..e285d0617ce20 100644 --- a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs @@ -81,6 +81,7 @@ cfg_if! { } pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 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; diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index bd943b99940f2..fd4c7868a63b9 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -85,7 +85,7 @@ s! { } pub struct fd_set { - fds_bits: [::c_ulong; FD_SETSIZE / ULONG_SIZE], + fds_bits: [::c_ulong; FD_SETSIZE as usize / ULONG_SIZE], } pub struct tm { diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index 3b02d93fb3dd7..6ecda27e04711 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -183,7 +183,7 @@ s! { } pub struct fd_set { // Unverified - fds_bits: [::c_ulong; FD_SETSIZE / ULONG_SIZE], + fds_bits: [::c_ulong; FD_SETSIZE as usize / ULONG_SIZE], } pub struct passwd { // Unverified diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 7c6eba66eea8d..90478d7aaf660 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -154,7 +154,7 @@ s! { } pub struct fd_set { - fds_bits: [::c_uint; 2 * FD_SETSIZE / ULONG_SIZE], + fds_bits: [::c_uint; 2 * FD_SETSIZE as usize / ULONG_SIZE], } pub struct tm { diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 262079e042c5b..402857f9098cd 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -116,7 +116,7 @@ s! { } pub struct fd_set { - fds_bits: [::c_ulong; ::FD_SETSIZE / ULONG_SIZE], + fds_bits: [::c_ulong; ::FD_SETSIZE as usize / ULONG_SIZE], } pub struct in_addr { diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index a5190416836cd..503edf65663fd 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -513,9 +513,9 @@ s_no_extra_traits! { pub struct fd_set { #[cfg(target_pointer_width = "64")] - fds_bits: [i64; FD_SETSIZE / 64], + fds_bits: [i64; FD_SETSIZE as usize / 64], #[cfg(target_pointer_width = "32")] - fds_bits: [i32; FD_SETSIZE / 32], + fds_bits: [i32; FD_SETSIZE as usize / 32], } pub struct sockaddr_storage { From 4f2cde33a2ecb73bd3b3e3d0ff89d08a40ba35c5 Mon Sep 17 00:00:00 2001 From: Kai Luo Date: Tue, 2 Apr 2024 03:05:04 -0400 Subject: [PATCH 0314/1228] Fix warning (backport ) (cherry picked from commit 581bccc3fbeeb0482a843a9afc84811168354b5a) --- src/unix/aix/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index fc7a580eca28e..a7ef2a073b7c1 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -60,6 +60,7 @@ pub type posix_spawn_file_actions_t = *mut ::c_char; pub type iconv_t = *mut ::c_void; e! { + #[repr(u32)] pub enum uio_rw { UIO_READ = 0, UIO_WRITE, From 5d72cb1bea752f266942ff5a7a5d05f3c2785f68 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 06:59:27 -0500 Subject: [PATCH 0315/1228] Sync more files with `main` to reduce the diff --- src/unix/bsd/apple/mod.rs | 100 ++++++++++++------------ src/unix/bsd/freebsdlike/freebsd/x86.rs | 3 +- src/unix/bsd/netbsdlike/openbsd/mod.rs | 63 +++++++-------- src/unix/linux_like/linux/mod.rs | 84 ++++++++++---------- src/unix/mod.rs | 17 ++-- 5 files changed, 132 insertions(+), 135 deletions(-) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 1bf743e1cd7ad..f8f888fa20666 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1186,56 +1186,6 @@ s! { pub tcpi_rxretransmitpackets: u64, } - // mach/host_info.h - pub struct host_cpu_load_info { - pub cpu_ticks: [::natural_t; CPU_STATE_MAX as usize], - } - - // net/if_mib.h - pub struct ifmibdata { - /// Name of interface - pub ifmd_name: [::c_char; ::IFNAMSIZ], - /// Number of promiscuous listeners - pub ifmd_pcount: ::c_uint, - /// Interface flags - pub ifmd_flags: ::c_uint, - /// Instantaneous length of send queue - pub ifmd_snd_len: ::c_uint, - /// Maximum length of send queue - pub ifmd_snd_maxlen: ::c_uint, - /// Number of drops in send queue - pub ifmd_snd_drops: ::c_uint, - /// For future expansion - pub ifmd_filler: [::c_uint; 4], - /// Generic information and statistics - pub ifmd_data: if_data64, - } - - pub struct ifs_iso_8802_3 { - pub dot3StatsAlignmentErrors: u32, - pub dot3StatsFCSErrors: u32, - pub dot3StatsSingleCollisionFrames: u32, - pub dot3StatsMultipleCollisionFrames: u32, - pub dot3StatsSQETestErrors: u32, - pub dot3StatsDeferredTransmissions: u32, - pub dot3StatsLateCollisions: u32, - pub dot3StatsExcessiveCollisions: u32, - pub dot3StatsInternalMacTransmitErrors: u32, - pub dot3StatsCarrierSenseErrors: u32, - pub dot3StatsFrameTooLongs: u32, - pub dot3StatsInternalMacReceiveErrors: u32, - pub dot3StatsEtherChipSet: u32, - pub dot3StatsMissedFrames: u32, - pub dot3StatsCollFrequencies: [u32; 16], - pub dot3Compliance: u32, - } - - pub struct if_family_id { - pub iffmid_len: u32, - pub iffmid_id: u32, - pub iffmid_str: [::c_char; 1], - } - pub struct in6_addrlifetime { pub ia6t_expire: time_t, pub ia6t_preferred: time_t, @@ -1307,6 +1257,56 @@ s! { pub ifs6_out_mldreport: ::u_quad_t, pub ifs6_out_mlddone: ::u_quad_t, } + + // mach/host_info.h + pub struct host_cpu_load_info { + pub cpu_ticks: [::natural_t; CPU_STATE_MAX as usize], + } + + // net/if_mib.h + pub struct ifmibdata { + /// Name of interface + pub ifmd_name: [::c_char; ::IFNAMSIZ], + /// Number of promiscuous listeners + pub ifmd_pcount: ::c_uint, + /// Interface flags + pub ifmd_flags: ::c_uint, + /// Instantaneous length of send queue + pub ifmd_snd_len: ::c_uint, + /// Maximum length of send queue + pub ifmd_snd_maxlen: ::c_uint, + /// Number of drops in send queue + pub ifmd_snd_drops: ::c_uint, + /// For future expansion + pub ifmd_filler: [::c_uint; 4], + /// Generic information and statistics + pub ifmd_data: if_data64, + } + + pub struct ifs_iso_8802_3 { + pub dot3StatsAlignmentErrors: u32, + pub dot3StatsFCSErrors: u32, + pub dot3StatsSingleCollisionFrames: u32, + pub dot3StatsMultipleCollisionFrames: u32, + pub dot3StatsSQETestErrors: u32, + pub dot3StatsDeferredTransmissions: u32, + pub dot3StatsLateCollisions: u32, + pub dot3StatsExcessiveCollisions: u32, + pub dot3StatsInternalMacTransmitErrors: u32, + pub dot3StatsCarrierSenseErrors: u32, + pub dot3StatsFrameTooLongs: u32, + pub dot3StatsInternalMacReceiveErrors: u32, + pub dot3StatsEtherChipSet: u32, + pub dot3StatsMissedFrames: u32, + pub dot3StatsCollFrequencies: [u32; 16], + pub dot3Compliance: u32, + } + + pub struct if_family_id { + pub iffmid_len: u32, + pub iffmid_id: u32, + pub iffmid_str: [::c_char; 1], + } } s_no_extra_traits! { diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index fb995c635658d..f65f9e99190b8 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -107,8 +107,7 @@ cfg_if! { .field("mc_fpformat", &self.mc_fpformat) .field("mc_ownedfp", &self.mc_ownedfp) .field("mc_flags", &self.mc_flags) - // FIXME(msrv) debug not supported for arrays in old MSRV - // .field("mc_fpstate", &self.mc_fpstate) + .field("mc_fpstate", &self.mc_fpstate) .field("mc_fsbase", &self.mc_fsbase) .field("mc_gsbase", &self.mc_gsbase) .field("mc_xfpustate", &self.mc_xfpustate) diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 766ee457dc1b2..8def98df25a14 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -724,6 +724,32 @@ s_no_extra_traits! { pub ifru_data: ::caddr_t, pub ifru_index: ::c_uint, } + + // This type uses the union mount_info: + pub struct statfs { + pub f_flags: u32, + pub f_bsize: u32, + pub f_iosize: u32, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: i64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: i64, + pub f_syncwrites: u64, + pub f_syncreads: u64, + pub f_asyncwrites: u64, + pub f_asyncreads: u64, + pub f_fsid: ::fsid_t, + pub f_namemax: u32, + pub f_owner: ::uid_t, + pub f_ctime: u64, + pub f_fstypename: [::c_char; 16], + pub f_mntonname: [::c_char; 90], + pub f_mntfromname: [::c_char; 90], + pub f_mntfromspec: [::c_char; 90], + pub mount_info: mount_info, + } } cfg_if! { @@ -980,39 +1006,7 @@ cfg_if! { } } } - } -} -s_no_extra_traits! { - // This type uses the union mount_info: - pub struct statfs { - pub f_flags: u32, - pub f_bsize: u32, - pub f_iosize: u32, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: i64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: i64, - pub f_syncwrites: u64, - pub f_syncreads: u64, - pub f_asyncwrites: u64, - pub f_asyncreads: u64, - pub f_fsid: ::fsid_t, - pub f_namemax: u32, - pub f_owner: ::uid_t, - pub f_ctime: u64, - pub f_fstypename: [::c_char; 16], - pub f_mntonname: [::c_char; 90], - pub f_mntfromname: [::c_char; 90], - pub f_mntfromspec: [::c_char; 90], - pub mount_info: mount_info, - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { impl PartialEq for statfs { fn eq(&self, other: &statfs) -> bool { self.f_flags == other.f_flags @@ -1052,11 +1046,10 @@ cfg_if! { } } - impl Eq for statfs { } + impl Eq for statfs {} impl ::fmt::Debug for statfs { - fn fmt(&self, f: &mut ::fmt::Formatter) - -> ::fmt::Result { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("statfs") .field("f_flags", &self.f_flags) .field("f_bsize", &self.f_bsize) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index c11cc7ef84871..44b56fe780f57 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1,5 +1,7 @@ //! Linux-specific definitions for linux-like values +use core::mem; + pub type useconds_t = u32; pub type dev_t = u64; pub type socklen_t = u32; @@ -244,6 +246,13 @@ s! { pub tp_feature_req_word: ::c_uint, } + #[repr(align(8))] + pub struct tpacket_rollover_stats { + pub tp_all: ::__u64, + pub tp_huge: ::__u64, + pub tp_failed: ::__u64, + } + pub struct tpacket_stats { pub tp_packets: ::c_uint, pub tp_drops: ::c_uint, @@ -273,6 +282,17 @@ s! { pub ts_usec: ::c_uint, } + #[repr(align(8))] + pub struct tpacket_hdr_v1 { + pub block_status: ::__u32, + pub num_pkts: ::__u32, + pub offset_to_first_pkt: ::__u32, + pub blk_len: ::__u32, + pub seq_num: ::__u64, + pub ts_first_pkt: ::tpacket_bd_ts, + pub ts_last_pkt: ::tpacket_bd_ts, + } + pub struct cpu_set_t { #[cfg(all(target_pointer_width = "32", not(target_arch = "x86_64")))] @@ -976,24 +996,6 @@ s! { pub resolve: ::__u64, } - #[repr(align(8))] - pub struct tpacket_rollover_stats { - pub tp_all: ::__u64, - pub tp_huge: ::__u64, - pub tp_failed: ::__u64, - } - - #[repr(align(8))] - pub struct tpacket_hdr_v1 { - pub block_status: ::__u32, - pub num_pkts: ::__u32, - pub offset_to_first_pkt: ::__u32, - pub blk_len: ::__u32, - pub seq_num: ::__u64, - pub ts_first_pkt: ::tpacket_bd_ts, - pub ts_last_pkt: ::tpacket_bd_ts, - } - // linux/wireless.h pub struct iw_param { @@ -1133,34 +1135,36 @@ s! { cfg_if! { if #[cfg(not(target_arch = "sparc64"))] { s!{ - pub struct __c_anonymous_elf32_rela { - pub r_offset: Elf32_Addr, - pub r_info: Elf32_Word, - pub r_addend: Elf32_Sword, - } - - pub struct __c_anonymous_elf64_rela { - pub r_offset: Elf64_Addr, - pub r_info: Elf64_Xword, - pub r_addend: Elf64_Sxword, - } - pub struct iw_thrspy { pub addr: ::sockaddr, pub qual: iw_quality, pub low: iw_quality, pub high: iw_quality, } + pub struct iw_mlme { pub cmd: __u16, pub reason_code: __u16, pub addr: ::sockaddr, } + pub struct iw_michaelmicfailure { pub flags: __u32, pub src_addr: ::sockaddr, pub tsc: [__u8; IW_ENCODE_SEQ_MAX_SIZE], } + + pub struct __c_anonymous_elf32_rela { + pub r_offset: Elf32_Addr, + pub r_info: Elf32_Word, + pub r_addend: Elf32_Sword, + } + + pub struct __c_anonymous_elf64_rela { + pub r_offset: Elf64_Addr, + pub r_info: Elf64_Xword, + pub r_addend: Elf64_Sxword, + } } } } @@ -1270,11 +1274,11 @@ s_no_extra_traits! { pub ifcu_req: *mut ::ifreq, } - /* Structure used in SIOCGIFCONF request. Used to retrieve interface - configuration for machine (useful for programs which must know all - networks accessible). */ + /// Structure used in SIOCGIFCONF request. Used to retrieve interface configuration for + /// machine (useful for programs which must know all networks accessible). pub struct ifconf { - pub ifc_len: ::c_int, /* Size of buffer. */ + /// Size of buffer + pub ifc_len: ::c_int, pub ifc_ifcu: __c_anonymous_ifc_ifcu, } @@ -3577,15 +3581,15 @@ pub const TP_FT_REQ_FILL_RXHASH: ::__u32 = 1; pub const TPACKET_ALIGNMENT: usize = 16; -pub const TPACKET_HDRLEN: usize = ((::mem::size_of::<::tpacket_hdr>() + TPACKET_ALIGNMENT - 1) +pub const TPACKET_HDRLEN: usize = ((mem::size_of::<::tpacket_hdr>() + TPACKET_ALIGNMENT - 1) & !(TPACKET_ALIGNMENT - 1)) - + ::mem::size_of::<::sockaddr_ll>(); -pub const TPACKET2_HDRLEN: usize = ((::mem::size_of::<::tpacket2_hdr>() + TPACKET_ALIGNMENT - 1) + + mem::size_of::<::sockaddr_ll>(); +pub const TPACKET2_HDRLEN: usize = ((mem::size_of::<::tpacket2_hdr>() + TPACKET_ALIGNMENT - 1) & !(TPACKET_ALIGNMENT - 1)) - + ::mem::size_of::<::sockaddr_ll>(); -pub const TPACKET3_HDRLEN: usize = ((::mem::size_of::<::tpacket3_hdr>() + TPACKET_ALIGNMENT - 1) + + mem::size_of::<::sockaddr_ll>(); +pub const TPACKET3_HDRLEN: usize = ((mem::size_of::<::tpacket3_hdr>() + TPACKET_ALIGNMENT - 1) & !(TPACKET_ALIGNMENT - 1)) - + ::mem::size_of::<::sockaddr_ll>(); + + mem::size_of::<::sockaddr_ll>(); // linux/netfilter.h pub const NF_DROP: ::c_int = 0; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index ebbf42d8140e2..436c10b4d3f90 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -212,14 +212,6 @@ s! { pub const INT_MIN: c_int = -2147483648; pub const INT_MAX: c_int = 2147483647; -pub const IN6ADDR_LOOPBACK_INIT: in6_addr = in6_addr { - s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], -}; - -pub const IN6ADDR_ANY_INIT: in6_addr = in6_addr { - s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], -}; - pub const SIG_DFL: sighandler_t = 0 as sighandler_t; pub const SIG_IGN: sighandler_t = 1 as sighandler_t; pub const SIG_ERR: sighandler_t = !0 as sighandler_t; @@ -321,6 +313,14 @@ pub const INADDR_ANY: in_addr_t = 0; pub const INADDR_BROADCAST: in_addr_t = 4294967295; pub const INADDR_NONE: in_addr_t = 4294967295; +pub const IN6ADDR_LOOPBACK_INIT: in6_addr = in6_addr { + s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], +}; + +pub const IN6ADDR_ANY_INIT: in6_addr = in6_addr { + s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +}; + pub const ARPOP_REQUEST: u16 = 1; pub const ARPOP_REPLY: u16 = 2; @@ -901,6 +901,7 @@ extern "C" { pub fn close(fd: ::c_int) -> ::c_int; pub fn dup(fd: ::c_int) -> ::c_int; pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; + pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; pub fn execle(path: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; pub fn execlp(file: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; From 598342c95afe0b15a16bf7dc8710ab4734a09fb1 Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Sun, 5 May 2024 14:19:20 +0900 Subject: [PATCH 0316/1228] wasi-libc comment about `libc.a` restriction (backport ) (cherry picked from commit 6987fc09e9366f82e38b24fea2059d87ee2d1aa6) --- src/wasi/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index 980cda9740ea4..818bf397a7f1d 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -1,3 +1,6 @@ +// [wasi-libc](https://github.com/WebAssembly/wasi-libc) definitions. +// `wasi-libc` project provides multiple libraries including emulated features, but we list only basic features with `libc.a` here. + use core::iter::Iterator; use super::{Send, Sync}; From e0bbde33a96ff88c96486bf493c7820c405f26ab Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 07:17:25 -0500 Subject: [PATCH 0317/1228] Clean up wasi-libc module doc comment (cherry picked from commit 9ac4a6b3e8afb3c2ecee6c2e5d4c5168f7380eac) --- src/wasi/mod.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index 818bf397a7f1d..9d311c411df6e 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -1,5 +1,7 @@ -// [wasi-libc](https://github.com/WebAssembly/wasi-libc) definitions. -// `wasi-libc` project provides multiple libraries including emulated features, but we list only basic features with `libc.a` here. +//! [wasi-libc](https://github.com/WebAssembly/wasi-libc) definitions. +//! +//! `wasi-libc` project provides multiple libraries including emulated features, but we list only +//! basic features with `libc.a` here. use core::iter::Iterator; From 756a285046b99c35955d50a387d1c343bb0be80b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 07:37:02 -0500 Subject: [PATCH 0318/1228] Remove the `long_array` conditional --- build.rs | 6 ------ src/unix/bsd/apple/long_array.rs | 8 -------- src/unix/bsd/apple/mod.rs | 16 +++++++++------- 3 files changed, 9 insertions(+), 21 deletions(-) delete mode 100644 src/unix/bsd/apple/long_array.rs diff --git a/build.rs b/build.rs index e1c9b23c4617f..8b599183f5ec9 100644 --- a/build.rs +++ b/build.rs @@ -15,7 +15,6 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ "freebsd14", "freebsd15", "libc_deny_warnings", - "libc_long_array", "libc_thread_local", "libc_ctest", ]; @@ -77,11 +76,6 @@ fn main() { set_cfg("libc_deny_warnings"); } - // Rust >= 1.47 supports long array: - if rustc_minor_ver >= 47 || rustc_dep_of_std { - set_cfg("libc_long_array"); - } - // #[thread_local] is currently unstable if rustc_dep_of_std { set_cfg("libc_thread_local"); diff --git a/src/unix/bsd/apple/long_array.rs b/src/unix/bsd/apple/long_array.rs deleted file mode 100644 index 4c56a275ab32a..0000000000000 --- a/src/unix/bsd/apple/long_array.rs +++ /dev/null @@ -1,8 +0,0 @@ -s! { - pub struct ctl_info { - pub ctl_id: u32, - pub ctl_name: [::c_char; MAX_KCTL_NAME], - } -} - -pub const MAX_KCTL_NAME: usize = 96; diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index f8f888fa20666..a2c0319f1dc1b 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1307,6 +1307,12 @@ s! { pub iffmid_id: u32, pub iffmid_str: [::c_char; 1], } + + // kern_control.h + pub struct ctl_info { + pub ctl_id: u32, + pub ctl_name: [::c_char; MAX_KCTL_NAME], + } } s_no_extra_traits! { @@ -5753,6 +5759,9 @@ pub const NETLINK_GENERIC: ::c_int = 0; pub const DOT3COMPLIANCE_STATS: ::c_int = 1; pub const DOT3COMPLIANCE_COLLS: ::c_int = 2; +// kern_control.h +pub const MAX_KCTL_NAME: usize = 96; + f! { pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { @@ -6825,10 +6834,3 @@ cfg_if! { // Unknown target_arch } } - -cfg_if! { - if #[cfg(libc_long_array)] { - mod long_array; - pub use self::long_array::*; - } -} From 00a39b79329db92dac1b55789e54c711b507e122 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 08:12:39 -0500 Subject: [PATCH 0319/1228] Sync `libc-test/build.rs` with `main` where possible --- libc-test/build.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 6b3e6abb166c3..1b0d442431e55 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3567,8 +3567,7 @@ fn test_linux(target: &str) { // Include linux headers at the end: headers! { cfg: - [loongarch64]: "asm/hwcap.h", - [riscv64]: "asm/hwcap.h", + [loongarch64 || riscv64]: "asm/hwcap.h", "asm/mman.h", [gnu]: "linux/aio_abi.h", "linux/can.h", @@ -3767,17 +3766,19 @@ fn test_linux(target: &str) { if musl && (ty.ends_with("64") || ty.ends_with("64_t")) { return true; } + // FIXME: sparc64 CI has old headers if sparc64 && (ty == "uinput_ff_erase" || ty == "uinput_abs_setup") { return true; } - // FIXME(https://github.com/rust-lang/libc/issues/1558): passing by - // value corrupts the value for reasons not understood. + + // FIXME(#1558): passing by value corrupts the value for reasons not understood. if (gnu && sparc64) && (ty == "ip_mreqn" || ty == "hwtstamp_config") { return true; } - // FIXME(https://github.com/rust-lang/rust/issues/43894): pass by value for structs that are not an even 32/64 bits on - // big-endian systems corrupts the value for unknown reasons. + + // FIXME(rust-lang/rust#43894): pass by value for structs that are not an even 32/64 bits + // on big-endian systems corrupts the value for unknown reasons. if (sparc64 || ppc || ppc64 || s390x) && (ty == "sockaddr_pkt" || ty == "tpacket_auxdata" @@ -3788,6 +3789,7 @@ fn test_linux(target: &str) { { return true; } + // FIXME: musl doesn't compile with `struct fanout_args` for unknown reasons. if musl && ty == "fanout_args" { return true; From 4d44be32f8789c6218c2216587cc74c092591838 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 07:50:44 -0500 Subject: [PATCH 0320/1228] Update `mach`-related deprecation notices These were all removed in `main` in e425743059 ("Remove mach-related items") but don't currently have notices. Fix that here. I am not sure whether the _NS constant should be deprecated since it doesn't appear to be in `mach`. --- src/unix/bsd/apple/mod.rs | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index f8f888fa20666..cc791403e68f8 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -308,10 +308,7 @@ s! { pub ai_next: *mut addrinfo, } - #[deprecated( - since = "0.2.55", - note = "Use the `mach2` crate instead", - )] + #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] pub struct mach_timebase_info { pub numer: u32, pub denom: u32, @@ -671,10 +668,7 @@ s! { pub cr_groups: [::gid_t;16] } - #[deprecated( - since = "0.2.55", - note = "Use the `mach2` crate instead", - )] + #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] pub struct mach_header { pub magic: u32, pub cputype: cpu_type_t, @@ -685,10 +679,7 @@ s! { pub flags: u32, } - #[deprecated( - since = "0.2.55", - note = "Use the `mach2` crate instead", - )] + #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] pub struct mach_header_64 { pub magic: u32, pub cputype: cpu_type_t, @@ -5944,7 +5935,9 @@ extern "C" { #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] #[allow(deprecated)] pub fn mach_timebase_info(info: *mut ::mach_timebase_info) -> ::c_int; + #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] pub fn mach_host_self() -> mach_port_t; + #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] pub fn mach_thread_self() -> mach_port_t; pub fn pthread_once( once_control: *mut ::pthread_once_t, @@ -6603,6 +6596,8 @@ extern "C" { pub fn CCRandomGenerateBytes(bytes: *mut ::c_void, size: ::size_t) -> ::CCRNGStatus; pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; + // FIXME(1.0): should this actually be deprecated? + #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] pub fn _NSGetExecutablePath(buf: *mut ::c_char, bufsize: *mut u32) -> ::c_int; // crt_externs.h @@ -6611,6 +6606,7 @@ extern "C" { pub fn _NSGetEnviron() -> *mut *mut *mut ::c_char; pub fn _NSGetProgname() -> *mut *mut ::c_char; + #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] pub fn mach_vm_map( target_task: ::vm_map_t, address: *mut ::mach_vm_address_t, From a0aed5a8fdac615e4fb22e391bc83b4c75b68702 Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Mon, 19 Aug 2024 10:07:10 +0900 Subject: [PATCH 0321/1228] fix clippy warnings (backport ) (cherry picked from commit a438a214ad696046d6ebffbed7e25e48b3f9754d) --- src/unix/bsd/apple/mod.rs | 6 +++--- src/unix/bsd/mod.rs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index f8f888fa20666..606eb04a5c03e 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -5760,11 +5760,11 @@ f! { return ::CMSG_FIRSTHDR(mhdr); }; let cmsg_len = (*cmsg).cmsg_len as usize; - let next = cmsg as usize + __DARWIN_ALIGN32(cmsg_len as usize); + let next = cmsg as usize + __DARWIN_ALIGN32(cmsg_len); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next + __DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) > max { - 0 as *mut ::cmsghdr + core::ptr::null_mut() } else { next as *mut ::cmsghdr } @@ -5772,7 +5772,7 @@ f! { pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { (cmsg as *mut ::c_uchar) - .offset(__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) as isize) + .add(__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>())) } pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 7e8d4d001c710..4eb79fb223eaa 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -591,7 +591,7 @@ f! { if (*mhdr).msg_controllen as usize >= ::mem::size_of::<::cmsghdr>() { (*mhdr).msg_control as *mut ::cmsghdr } else { - 0 as *mut ::cmsghdr + core::ptr::null_mut() } } From 35b7004485fa5b02b9066bf7a84aa9ab78ddaa25 Mon Sep 17 00:00:00 2001 From: Kai Luo Date: Wed, 17 Apr 2024 22:21:48 -0400 Subject: [PATCH 0322/1228] aix: Remove duplicated declaration (backport ) (cherry picked from commit 7825c9f0bd699eafdc4ebb76ca9670b847e12ce9) [ slightly modify commit message - Trevor ] --- src/unix/aix/mod.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index a7ef2a073b7c1..a34ce208da539 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -962,8 +962,6 @@ pub const BPF_X: ::c_int = 8; // net/if.h pub const IFNET_SLOWHZ: ::c_int = 1; pub const IFQ_MAXLEN: ::c_int = 50; -pub const IF_NAMESIZE: ::c_int = 16; -pub const IFNAMSIZ: ::c_int = 16; pub const IFF_UP: ::c_int = 0x1; pub const IFF_BROADCAST: ::c_int = 0x2; pub const IFF_DEBUG: ::c_int = 0x4; @@ -986,8 +984,6 @@ pub const ARPHRD_ETHER: ::c_int = 1; pub const ARPHRD_802_5: ::c_int = 6; pub const ARPHRD_802_3: ::c_int = 6; pub const ARPHRD_FDDI: ::c_int = 1; -pub const ARPOP_REQUEST: ::c_int = 1; -pub const ARPOP_REPLY: ::c_int = 2; // net/route.h pub const RTM_ADD: ::c_int = 0x1; From 5ed75f36207e1a20dbc218934cbb534c94f269b8 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 14:31:01 -0500 Subject: [PATCH 0323/1228] apple: Mark `mach_task_self` as deprecated These were already removed on `main` in 56d665c ("macOs various updates"). --- src/unix/bsd/apple/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 03d0ef5aa7dea..e36375d5bac48 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -6657,6 +6657,7 @@ extern "C" { out_processor_infoCnt: *mut mach_msg_type_number_t, ) -> ::kern_return_t; + #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] pub static mut mach_task_self_: ::mach_port_t; pub fn task_for_pid( host: ::mach_port_t, @@ -6774,6 +6775,8 @@ extern "C" { ) -> ::c_int; } +#[allow(deprecated)] +#[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] pub unsafe fn mach_task_self() -> ::mach_port_t { mach_task_self_ } From 92c198cc9e799aa03e9a0d57cef8fa4cdafe143b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 21:34:18 -0500 Subject: [PATCH 0324/1228] Adjust the `f!` macro to be more flexible Currently this only matches `$body` if every line ends with a semicolon. Make this simpler by just using the `block` matcher. Additionally, allow a trailing comma. (backport ) (cherry picked from commit 0ac42fd3d32f1719cb185cfafceaceff13a5195e) --- src/macros.rs | 60 +++++++++++++++++++++------------------------------ 1 file changed, 24 insertions(+), 36 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index 2661e0fb13827..19d567dfc3708 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -203,15 +203,13 @@ cfg_if! { macro_rules! f { ($( $(#[$attr:meta])* - pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),*) -> $ret:ty { - $($body:stmt);* - } + pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)?) -> $ret:ty + $body:block )*) => ($( #[inline] $(#[$attr])* - pub $($constness)* unsafe extern fn $i($($arg: $argty),*) -> $ret { - $($body);* - } + pub $($constness)* unsafe extern fn $i($($arg: $argty),*) -> $ret + $body )*) } @@ -219,15 +217,13 @@ cfg_if! { macro_rules! safe_f { ($( $(#[$attr:meta])* - pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),*) -> $ret:ty { - $($body:stmt);* - } + pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)?) -> $ret:ty + $body:block )*) => ($( #[inline] $(#[$attr])* - pub $($constness)* extern fn $i($($arg: $argty),*) -> $ret { - $($body);* - } + pub $($constness)* extern fn $i($($arg: $argty),*) -> $ret + $body )*) } @@ -235,15 +231,13 @@ cfg_if! { macro_rules! const_fn { ($( $(#[$attr:meta])* - $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),*) -> $ret:ty { - $($body:stmt);* - } + $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)?) -> $ret:ty + $body:block )*) => ($( #[inline] $(#[$attr])* - $($constness)* fn $i($($arg: $argty),*) -> $ret { - $($body);* - } + $($constness)* fn $i($($arg: $argty),*) -> $ret + $body )*) } } else { @@ -251,15 +245,13 @@ cfg_if! { macro_rules! f { ($( $(#[$attr:meta])* - pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),*) -> $ret:ty { - $($body:stmt);* - } + pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)?) -> $ret:ty + $body:block )*) => ($( #[inline] $(#[$attr])* - pub unsafe extern fn $i($($arg: $argty),*) -> $ret { - $($body);* - } + pub unsafe extern fn $i($($arg: $argty),*) -> $ret + $body )*) } @@ -267,15 +259,13 @@ cfg_if! { macro_rules! safe_f { ($( $(#[$attr:meta])* - pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),*) -> $ret:ty { - $($body:stmt);* - } + pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)?) -> $ret:ty + $body:block )*) => ($( #[inline] $(#[$attr])* - pub extern fn $i($($arg: $argty),*) -> $ret { - $($body);* - } + pub extern fn $i($($arg: $argty),*) -> $ret + $body )*) } @@ -283,15 +273,13 @@ cfg_if! { macro_rules! const_fn { ($( $(#[$attr:meta])* - $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),*) -> $ret:ty { - $($body:stmt);* - } + $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)?) -> $ret:ty + $body:block )*) => ($( #[inline] $(#[$attr])* - fn $i($($arg: $argty),*) -> $ret { - $($body);* - } + fn $i($($arg: $argty),*) -> $ret + $body )*) } } From ca8dcbf2a5ba8b927c30d72bccfb67ad7d5355b0 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 20:40:08 -0500 Subject: [PATCH 0325/1228] ci: Disable the check for >1 `s!` invocation Apparently we already violate this in a few places, it just doesn't show up because whitespace doesn't line up with what we expect (lack of formatting). Just disable it for now so we can format the files. (backport ) (cherry picked from commit 0189456d7ae5e30b5130e1094bb401f1355ecbbe) --- ci/style.rs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/ci/style.rs b/ci/style.rs index 31adeae4fbde7..dbc8c633cffab 100644 --- a/ci/style.rs +++ b/ci/style.rs @@ -97,7 +97,10 @@ enum State { fn check_style(file: &str, path: &Path, err: &mut Errors) { let mut state = State::Start; - let mut s_macros = 0; + + // FIXME: see below + // let mut s_macros = 0; + let mut f_macros = 0; let mut in_impl = false; @@ -140,7 +143,8 @@ fn check_style(file: &str, path: &Path, err: &mut Errors) { } else if line.starts_with("type ") && !in_impl { State::Typedefs } else if line.starts_with("s! {") { - s_macros += 1; + // FIXME: see below + // s_macros += 1; State::Structs } else if line.starts_with("s_no_extra_traits! {") { // multiple macros of this type are allowed @@ -175,10 +179,13 @@ fn check_style(file: &str, path: &Path, err: &mut Errors) { f_macros += 1; err.error(path, i, "multiple f! macros in one module"); } - if s_macros == 2 { - s_macros += 1; - err.error(path, i, "multiple s! macros in one module"); - } + + // FIXME(#4109): multiple should be allowed if at least one is `cfg(not) within `cfg_if`. + // For now just disable this and check by hand. + // if s_macros == 2 { + // s_macros += 1; + // err.error(path, i, "multiple s! macros in one module"); + // } state = line_state; } From 818255b3a6a81042ebb7e6283a1a1d208685a16f Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 18:01:52 -0500 Subject: [PATCH 0326/1228] ci: Only invoke `rustup` if running in CI The script shouldn't need to update `rustfmt` every time it gets run. Additionally, only pass `--check` when in CI so this script can be used for invoking the formatter locally. (backport ) (cherry picked from commit 64ed860b0ada86e4fea9066ddf47bae7ca3a77d0) --- ci/style.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/ci/style.sh b/ci/style.sh index 0684caafaad7d..74b26379b3a7d 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -2,13 +2,18 @@ set -ex +if [ -n "${CI:-}" ]; then + rustup toolchain install nightly -c rustfmt --allow-downgrade + rustup override set nightly + + check="--check" +fi + rustc ci/style.rs && ./style src -rustup toolchain install nightly -c rustfmt --allow-downgrade -rustup override set nightly command -v rustfmt rustfmt -V -cargo fmt --all -- --check +cargo fmt --all -- ${check:+"$check"} if shellcheck --version ; then find . -name '*.sh' -print0 | xargs -0 shellcheck From d8ccae537e7a51d99856422209ea17828138668b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 15:28:04 -0500 Subject: [PATCH 0327/1228] ci: Use some tricks to format macro bodies We have a lot of syntax contained within macro bodies, which `rustfmt` doesn't touch. Add a hack that replaces relevant macro invocations with functions, formats, then resets. (backport ) (cherry picked from commit 6ab46bb97c1fbba3babaa9b460eb992cf21f3ae4) --- ci/style.sh | 48 +++++++++++++++++++++++++++++++++++++++++++++++- rustfmt.toml | 1 + 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/ci/style.sh b/ci/style.sh index 74b26379b3a7d..53efb82280c87 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -13,7 +13,53 @@ rustc ci/style.rs && ./style src command -v rustfmt rustfmt -V -cargo fmt --all -- ${check:+"$check"} + +# Save a list of all source files +tmpfile="file-list~" # trailing tilde for gitignore +find src -name '*.rs' > "$tmpfile" + +# Before formatting, replace all macro identifiers with a function signature. +# This allows `rustfmt` to format it. +while IFS= read -r file; do + if [ "$file" = "src/macros.rs" ]; then + # Too much special syntax in `macros.rs` that we don't want to format + continue + fi + + # Turn all braced macro `foo! { /* ... */ }` invocations into + # `fn foo_fmt_tmp() { /* ... */ }`. + perl -pi -e 's/(?!macro_rules)\b(\w+)!\s*\{/fn $1_fmt_tmp() {/g' "$file" + + # Replace `if #[cfg(...)]` within `cfg_if` with `if cfg_tmp!([...])` which + # `rustfmt` will format. We put brackets within the parens so it is easy to + # match (trying to match parentheses would catch the first closing `)` which + # wouldn't be correct for something like `all(any(...), ...)`). + perl -pi -0777 -e 's/if #\[cfg\((.*?)\)\]/if cfg_tmp!([$1])/gms' "$file" + + # We have some instances of `{const}` that make macros happy but aren't + # valid syntax. Replace this with just the keyword, plus an indicator + # comment on the preceding line (which is where rustfmt puts it. Also + # rust-lang/rustfmt#5464). + perl -pi -e 's/^(\s*)(.*)\{const\}/$1\/\* FMT-CONST \*\/\n$1$2const/g' "$file" + + # Format the file. We need to invoke `rustfmt` directly since `cargo fmt` + # can't figure out the module tree with the hacks in place. + failed=false + rustfmt --config-path rustfmt.toml "$file" ${check:+"$check"} || failed=true + + # Restore all changes to the files. + perl -pi -e 's/fn (\w+)_fmt_tmp\(\)/$1!/g' "$file" + perl -pi -0777 -e 's/cfg_tmp!\(\[(.*?)\]\)/#[cfg($1)]/gms' "$file" + perl -pi -0777 -e 's/\/\* FMT-CONST \*\/(?:\n\s*)?(.*?)const/$1\{const\}/gms' "$file" + + # Defer emitting the failure until after the files get reset + if [ "$failed" != "false" ]; then + echo "Formatting failed" + exit 1 + fi +done < "$tmpfile" + +rm "$tmpfile" if shellcheck --version ; then find . -name '*.sh' -print0 | xargs -0 shellcheck diff --git a/rustfmt.toml b/rustfmt.toml index dc85c99467fcc..018747d94867a 100644 --- a/rustfmt.toml +++ b/rustfmt.toml @@ -1 +1,2 @@ error_on_line_overflow = true +edition = "2021" From 50f26e08e146b7e9c7d1af9614486eba327d1e31 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 22:08:49 -0500 Subject: [PATCH 0328/1228] Apply formatting to macro bodies Run `ci/style.sh` with the changes introduced in [1]. [1]: https://github.com/rust-lang/libc/pull/4107 (backport ) This is the `libc-0.2` version of 49cb0ff99f ("Apply formatting to macro bodies"), though not a direct cherry pick. --- src/fuchsia/mod.rs | 235 ++++---- src/fuchsia/x86_64.rs | 10 +- src/psp.rs | 2 +- src/unix/aix/mod.rs | 35 +- src/unix/aix/powerpc64.rs | 37 +- src/unix/bsd/apple/b32/mod.rs | 24 +- src/unix/bsd/apple/b64/aarch64/mod.rs | 2 +- src/unix/bsd/apple/b64/mod.rs | 22 +- src/unix/bsd/apple/b64/x86_64/mod.rs | 111 ++-- src/unix/bsd/apple/mod.rs | 364 ++++++------ src/unix/bsd/freebsdlike/dragonfly/mod.rs | 124 ++-- src/unix/bsd/freebsdlike/freebsd/aarch64.rs | 36 +- src/unix/bsd/freebsdlike/freebsd/arm.rs | 12 +- .../bsd/freebsdlike/freebsd/freebsd11/mod.rs | 43 +- .../bsd/freebsdlike/freebsd/freebsd12/mod.rs | 41 +- .../bsd/freebsdlike/freebsd/freebsd13/mod.rs | 41 +- .../bsd/freebsdlike/freebsd/freebsd14/mod.rs | 41 +- .../bsd/freebsdlike/freebsd/freebsd15/mod.rs | 41 +- src/unix/bsd/freebsdlike/freebsd/mod.rs | 409 +++++++------- src/unix/bsd/freebsdlike/freebsd/powerpc.rs | 18 +- src/unix/bsd/freebsdlike/freebsd/powerpc64.rs | 18 +- src/unix/bsd/freebsdlike/freebsd/riscv64.rs | 40 +- src/unix/bsd/freebsdlike/freebsd/x86.rs | 68 ++- .../bsd/freebsdlike/freebsd/x86_64/mod.rs | 123 ++-- src/unix/bsd/freebsdlike/mod.rs | 16 +- src/unix/bsd/mod.rs | 101 ++-- src/unix/bsd/netbsdlike/netbsd/aarch64.rs | 34 +- src/unix/bsd/netbsdlike/netbsd/mod.rs | 165 +++--- src/unix/bsd/netbsdlike/netbsd/x86_64.rs | 2 +- src/unix/bsd/netbsdlike/openbsd/mod.rs | 144 +++-- src/unix/bsd/netbsdlike/openbsd/x86_64.rs | 62 +- src/unix/haiku/mod.rs | 74 ++- src/unix/haiku/native.rs | 82 ++- src/unix/haiku/x86_64.rs | 28 +- src/unix/hurd/mod.rs | 106 ++-- src/unix/linux_like/android/b32/arm.rs | 17 +- src/unix/linux_like/android/b32/mod.rs | 12 +- src/unix/linux_like/android/b32/x86/mod.rs | 19 +- .../linux_like/android/b64/aarch64/mod.rs | 2 +- src/unix/linux_like/android/b64/mod.rs | 30 +- .../linux_like/android/b64/riscv64/mod.rs | 2 +- src/unix/linux_like/android/b64/x86_64/mod.rs | 29 +- src/unix/linux_like/android/mod.rs | 181 +++--- src/unix/linux_like/emscripten/mod.rs | 63 +-- src/unix/linux_like/linux/arch/generic/mod.rs | 64 ++- src/unix/linux_like/linux/arch/mips/mod.rs | 20 +- src/unix/linux_like/linux/arch/mod.rs | 10 +- src/unix/linux_like/linux/arch/powerpc/mod.rs | 3 - src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 14 +- src/unix/linux_like/linux/gnu/b32/csky/mod.rs | 14 +- src/unix/linux_like/linux/gnu/b32/m68k/mod.rs | 6 +- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 8 +- src/unix/linux_like/linux/gnu/b32/mod.rs | 14 +- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 8 +- .../linux_like/linux/gnu/b32/riscv32/mod.rs | 4 +- .../linux_like/linux/gnu/b32/sparc/mod.rs | 8 +- src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 21 +- .../linux_like/linux/gnu/b64/aarch64/mod.rs | 16 +- .../linux/gnu/b64/loongarch64/mod.rs | 17 +- .../linux_like/linux/gnu/b64/mips64/mod.rs | 10 +- src/unix/linux_like/linux/gnu/b64/mod.rs | 6 +- .../linux_like/linux/gnu/b64/powerpc64/mod.rs | 14 +- .../linux_like/linux/gnu/b64/riscv64/mod.rs | 4 +- src/unix/linux_like/linux/gnu/b64/s390x.rs | 14 +- .../linux_like/linux/gnu/b64/sparc64/mod.rs | 16 +- .../linux_like/linux/gnu/b64/x86_64/mod.rs | 30 +- src/unix/linux_like/linux/gnu/mod.rs | 175 +++--- src/unix/linux_like/linux/mod.rs | 533 ++++++++++-------- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 6 +- src/unix/linux_like/linux/musl/b32/hexagon.rs | 5 +- .../linux_like/linux/musl/b32/mips/mod.rs | 4 +- src/unix/linux_like/linux/musl/b32/mod.rs | 2 +- src/unix/linux_like/linux/musl/b32/powerpc.rs | 4 +- .../linux_like/linux/musl/b32/riscv32/mod.rs | 6 +- src/unix/linux_like/linux/musl/b32/x86/mod.rs | 22 +- .../linux_like/linux/musl/b64/aarch64/mod.rs | 2 +- .../linux/musl/b64/loongarch64/mod.rs | 3 +- src/unix/linux_like/linux/musl/b64/mips64.rs | 2 +- src/unix/linux_like/linux/musl/b64/mod.rs | 4 +- .../linux_like/linux/musl/b64/powerpc64.rs | 2 +- .../linux_like/linux/musl/b64/riscv64/mod.rs | 4 +- src/unix/linux_like/linux/musl/b64/s390x.rs | 4 +- .../linux_like/linux/musl/b64/x86_64/mod.rs | 26 +- src/unix/linux_like/linux/musl/mod.rs | 37 +- src/unix/linux_like/linux/uclibc/arm/mod.rs | 11 +- .../linux/uclibc/mips/mips32/mod.rs | 12 +- .../linux/uclibc/mips/mips64/mod.rs | 12 +- src/unix/linux_like/linux/uclibc/mod.rs | 39 +- .../linux_like/linux/uclibc/x86_64/l4re.rs | 4 +- .../linux_like/linux/uclibc/x86_64/mod.rs | 59 +- src/unix/linux_like/mod.rs | 138 ++--- src/unix/mod.rs | 345 +++++++----- src/unix/newlib/mod.rs | 153 +++-- src/unix/nto/mod.rs | 166 +++--- src/unix/nto/neutrino.rs | 8 +- src/unix/nto/x86_64.rs | 2 +- src/unix/nuttx/mod.rs | 22 +- src/unix/redox/mod.rs | 100 ++-- src/unix/solarish/illumos.rs | 11 +- src/unix/solarish/mod.rs | 175 +++--- src/unix/solarish/solaris.rs | 11 +- src/unix/solarish/x86_64.rs | 30 +- src/vxworks/mod.rs | 224 ++++---- src/wasi/mod.rs | 12 +- src/windows/gnu/mod.rs | 4 +- 105 files changed, 2965 insertions(+), 2801 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index ce274f2261279..d940738a6ebe4 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -255,7 +255,7 @@ s! { pub struct sigval { // Actually a union of an int and a void* - pub sival_ptr: *mut ::c_void + pub sival_ptr: *mut ::c_void, } // @@ -309,7 +309,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct termios { @@ -378,7 +378,7 @@ s! { pub sll_hatype: ::c_ushort, pub sll_pkttype: ::c_uchar, pub sll_halen: ::c_uchar, - pub sll_addr: [::c_uchar; 8] + pub sll_addr: [::c_uchar; 8], } pub struct fd_set { @@ -471,7 +471,7 @@ s! { pub ifa_addr: *mut ::sockaddr, pub ifa_netmask: *mut ::sockaddr, pub ifa_ifu: *mut ::sockaddr, // FIXME This should be a union - pub ifa_data: *mut ::c_void + pub ifa_data: *mut ::c_void, } pub struct passwd { @@ -563,11 +563,9 @@ s! { } pub struct cpu_set_t { - #[cfg(all(target_pointer_width = "32", - not(target_arch = "x86_64")))] + #[cfg(all(target_pointer_width = "32", not(target_arch = "x86_64")))] bits: [u32; 32], - #[cfg(not(all(target_pointer_width = "32", - not(target_arch = "x86_64"))))] + #[cfg(not(all(target_pointer_width = "32", not(target_arch = "x86_64"))))] bits: [u64; 16], } @@ -785,11 +783,11 @@ s! { pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } pub struct pthread_attr_t { - __size: [u64; 7] + __size: [u64; 7], } pub struct sigset_t { @@ -886,25 +884,19 @@ s! { } #[cfg_attr( - any( - target_pointer_width = "32", - target_arch = "x86_64" - ), - repr(align(4)))] + any(target_pointer_width = "32", target_arch = "x86_64"), + repr(align(4)) + )] #[cfg_attr( - not(any( - target_pointer_width = "32", - target_arch = "x86_64" - )), - repr(align(8)))] + not(any(target_pointer_width = "32", target_arch = "x86_64")), + repr(align(8)) + )] pub struct pthread_mutexattr_t { size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], } - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] + #[cfg_attr(target_pointer_width = "32", repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", repr(align(8)))] pub struct pthread_rwlockattr_t { size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], } @@ -935,7 +927,7 @@ s_no_extra_traits! { pub struct sockaddr_un { pub sun_family: sa_family_t, - pub sun_path: [::c_char; 108] + pub sun_path: [::c_char; 108], } pub struct sockaddr_storage { @@ -950,7 +942,7 @@ s_no_extra_traits! { pub release: [::c_char; 65], pub version: [::c_char; 65], pub machine: [::c_char; 65], - pub domainname: [::c_char; 65] + pub domainname: [::c_char; 65], } pub struct dirent { @@ -999,7 +991,7 @@ s_no_extra_traits! { pub nl_family: ::sa_family_t, nl_pad: ::c_ushort, pub nl_pid: u32, - pub nl_groups: u32 + pub nl_groups: u32, } pub struct sigevent { @@ -1008,41 +1000,49 @@ s_no_extra_traits! { pub sigev_notify: ::c_int, pub sigev_notify_function: fn(::sigval), pub sigev_notify_attributes: *mut pthread_attr_t, - pub __pad: [::c_char; 56 - 3 * 8 /* 8 == sizeof(long) */], + pub __pad: [::c_char; 56 - 3 * 8], } - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "arm", - target_arch = "x86_64")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "arm", - target_arch = "x86_64"))), - repr(align(8)))] + #[cfg_attr( + all( + target_pointer_width = "32", + any(target_arch = "arm", target_arch = "x86_64") + ), + repr(align(4)) + )] + #[cfg_attr( + any( + target_pointer_width = "64", + not(any(target_arch = "arm", target_arch = "x86_64")) + ), + repr(align(8)) + )] pub struct pthread_mutex_t { size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], } - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "arm", - target_arch = "x86_64")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "arm", - target_arch = "x86_64"))), - repr(align(8)))] + #[cfg_attr( + all( + target_pointer_width = "32", + any(target_arch = "arm", target_arch = "x86_64") + ), + repr(align(4)) + )] + #[cfg_attr( + any( + target_pointer_width = "64", + not(any(target_arch = "arm", target_arch = "x86_64")) + ), + repr(align(8)) + )] pub struct pthread_rwlock_t { size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], } - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] - #[cfg_attr(target_arch = "x86", - repr(align(4)))] - #[cfg_attr(not(target_arch = "x86"), - repr(align(8)))] + #[cfg_attr(target_pointer_width = "32", repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", repr(align(8)))] + #[cfg_attr(target_arch = "x86", repr(align(4)))] + #[cfg_attr(not(target_arch = "x86"), repr(align(8)))] pub struct pthread_cond_t { size: [u8; ::__SIZEOF_PTHREAD_COND_T], } @@ -1069,7 +1069,7 @@ cfg_if! { .__reserved .iter() .zip(other.__reserved.iter()) - .all(|(a,b)| a == b) + .all(|(a, b)| a == b) } } impl Eq for sysinfo {} @@ -1116,10 +1116,10 @@ cfg_if! { fn eq(&self, other: &sockaddr_un) -> bool { self.sun_family == other.sun_family && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a,b)| a == b) + .sun_path + .iter() + .zip(other.sun_path.iter()) + .all(|(a, b)| a == b) } } impl Eq for sockaddr_un {} @@ -1143,10 +1143,10 @@ cfg_if! { self.ss_family == other.ss_family && self.__ss_align == other.__ss_align && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) + .__ss_pad2 + .iter() + .zip(other.__ss_pad2.iter()) + .all(|(a, b)| a == b) } } impl Eq for sockaddr_storage {} @@ -1172,27 +1172,27 @@ cfg_if! { self.sysname .iter() .zip(other.sysname.iter()) - .all(|(a,b)| a == b) + .all(|(a, b)| a == b) && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a,b)| a == b) + .nodename + .iter() + .zip(other.nodename.iter()) + .all(|(a, b)| a == b) && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a,b)| a == b) + .release + .iter() + .zip(other.release.iter()) + .all(|(a, b)| a == b) && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a,b)| a == b) + .version + .iter() + .zip(other.version.iter()) + .all(|(a, b)| a == b) && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a,b)| a == b) + .machine + .iter() + .zip(other.machine.iter()) + .all(|(a, b)| a == b) } } impl Eq for utsname {} @@ -1224,10 +1224,10 @@ cfg_if! { && self.d_reclen == other.d_reclen && self.d_type == other.d_type && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } impl Eq for dirent {} @@ -1259,10 +1259,10 @@ cfg_if! { && self.d_reclen == other.d_reclen && self.d_type == other.d_type && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } impl Eq for dirent64 {} @@ -1289,10 +1289,10 @@ cfg_if! { impl PartialEq for mq_attr { fn eq(&self, other: &mq_attr) -> bool { - self.mq_flags == other.mq_flags && - self.mq_maxmsg == other.mq_maxmsg && - self.mq_msgsize == other.mq_msgsize && - self.mq_curmsgs == other.mq_curmsgs + self.mq_flags == other.mq_flags + && self.mq_maxmsg == other.mq_maxmsg + && self.mq_msgsize == other.mq_msgsize + && self.mq_curmsgs == other.mq_curmsgs } } impl Eq for mq_attr {} @@ -1317,9 +1317,9 @@ cfg_if! { impl PartialEq for sockaddr_nl { fn eq(&self, other: &sockaddr_nl) -> bool { - self.nl_family == other.nl_family && - self.nl_pid == other.nl_pid && - self.nl_groups == other.nl_groups + self.nl_family == other.nl_family + && self.nl_pid == other.nl_pid + && self.nl_groups == other.nl_groups } } impl Eq for sockaddr_nl {} @@ -1345,10 +1345,8 @@ cfg_if! { self.sigev_value == other.sigev_value && self.sigev_signo == other.sigev_signo && self.sigev_notify == other.sigev_notify - && self.sigev_notify_function - == other.sigev_notify_function - && self.sigev_notify_attributes - == other.sigev_notify_attributes + && self.sigev_notify_function == other.sigev_notify_function + && self.sigev_notify_attributes == other.sigev_notify_attributes } } impl Eq for sigevent {} @@ -1359,8 +1357,7 @@ cfg_if! { .field("sigev_signo", &self.sigev_signo) .field("sigev_notify", &self.sigev_notify) .field("sigev_notify_function", &self.sigev_notify_function) - .field("sigev_notify_attributes", - &self.sigev_notify_attributes) + .field("sigev_notify_attributes", &self.sigev_notify_attributes) .finish() } } @@ -1376,10 +1373,7 @@ cfg_if! { impl PartialEq for pthread_cond_t { fn eq(&self, other: &pthread_cond_t) -> bool { - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) + self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b) } } impl Eq for pthread_cond_t {} @@ -1398,10 +1392,7 @@ cfg_if! { impl PartialEq for pthread_mutex_t { fn eq(&self, other: &pthread_mutex_t) -> bool { - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) + self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b) } } impl Eq for pthread_mutex_t {} @@ -1420,10 +1411,7 @@ cfg_if! { impl PartialEq for pthread_rwlock_t { fn eq(&self, other: &pthread_rwlock_t) -> bool { - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) + self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b) } } impl Eq for pthread_rwlock_t {} @@ -3386,20 +3374,20 @@ f! { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); - return + return; } pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 + return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); - return + return; } pub fn FD_ZERO(set: *mut fd_set) -> () { @@ -3415,16 +3403,14 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); () @@ -3458,13 +3444,10 @@ f! { cmsg.offset(1) as *mut c_uchar } - pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) - -> *mut cmsghdr - { + pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if ((*cmsg).cmsg_len as ::size_t) < ::mem::size_of::() { 0 as *mut cmsghdr - } else if __CMSG_NEXT(cmsg).add(::mem::size_of::()) - >= __MHDR_END(mhdr) { + } else if __CMSG_NEXT(cmsg).add(::mem::size_of::()) >= __MHDR_END(mhdr) { 0 as *mut cmsghdr } else { __CMSG_NEXT(cmsg).cast() @@ -3480,13 +3463,11 @@ f! { } pub {const} fn CMSG_ALIGN(len: ::size_t) -> ::size_t { - (len + ::mem::size_of::<::size_t>() - 1) - & !(::mem::size_of::<::size_t>() - 1) + (len + ::mem::size_of::<::size_t>() - 1) & !(::mem::size_of::<::size_t>() - 1) } pub {const} fn CMSG_SPACE(len: ::c_uint) -> ::c_uint { - (CMSG_ALIGN(len as ::size_t) + CMSG_ALIGN(::mem::size_of::())) - as ::c_uint + (CMSG_ALIGN(len as ::size_t) + CMSG_ALIGN(::mem::size_of::())) as ::c_uint } pub {const} fn CMSG_LEN(len: ::c_uint) -> ::c_uint { diff --git a/src/fuchsia/x86_64.rs b/src/fuchsia/x86_64.rs index dca3c247d8b83..ac2b976c051cc 100644 --- a/src/fuchsia/x86_64.rs +++ b/src/fuchsia/x86_64.rs @@ -60,7 +60,7 @@ s! { pub mode: ::mode_t, pub __seq: ::c_int, __unused1: ::c_long, - __unused2: ::c_long + __unused2: ::c_long, } } @@ -85,10 +85,10 @@ cfg_if! { && self.uc_mcontext == other.uc_mcontext && self.uc_sigmask == other.uc_sigmask && self - .__private - .iter() - .zip(other.__private.iter()) - .all(|(a,b)| a == b) + .__private + .iter() + .zip(other.__private.iter()) + .all(|(a, b)| a == b) } } impl Eq for ucontext_t {} diff --git a/src/psp.rs b/src/psp.rs index 3e1cdac2ceb82..351367c0ee67e 100644 --- a/src/psp.rs +++ b/src/psp.rs @@ -1383,7 +1383,7 @@ s! { pub struct sockaddr { pub sa_len: u8, pub sa_family: u8, - pub sa_data: [u8;14], + pub sa_data: [u8; 14], } pub struct in_addr { diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index a34ce208da539..8a2b1fc1cb32b 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -94,7 +94,7 @@ s! { pub d_ino: ::ino_t, pub d_reclen: ::c_ushort, pub d_namlen: ::c_ushort, - pub d_name: [::c_char; 256] + pub d_name: [::c_char; 256], } pub struct termios { @@ -102,7 +102,7 @@ s! { pub c_oflag: ::tcflag_t, pub c_cflag: ::tcflag_t, pub c_lflag: ::tcflag_t, - pub c_cc: [::cc_t; ::NCCS] + pub c_cc: [::cc_t; ::NCCS], } pub struct flock64 { @@ -139,7 +139,7 @@ s! { pub f_flag: ::c_ulong, pub f_namemax: ::c_ulong, pub f_fstr: [::c_char; 32], - pub f_filler: [::c_ulong; 16] + pub f_filler: [::c_ulong; 16], } pub struct lconv { @@ -180,7 +180,7 @@ s! { pub tm_year: ::c_int, pub tm_wday: ::c_int, pub tm_yday: ::c_int, - pub tm_isdst: ::c_int + pub tm_isdst: ::c_int, } pub struct addrinfo { @@ -196,7 +196,7 @@ s! { } pub struct in_addr { - pub s_addr: in_addr_t + pub s_addr: in_addr_t, } pub struct ip_mreq_source { @@ -227,7 +227,7 @@ s! { pub sin_family: sa_family_t, pub sin_port: in_port_t, pub sin_addr: in_addr, - pub sin_zero: [::c_char; 8] + pub sin_zero: [::c_char; 8], } pub struct sockaddr_in6 { @@ -236,7 +236,7 @@ s! { pub sin6_port: ::uint16_t, pub sin6_flowinfo: ::uint32_t, pub sin6_addr: ::in6_addr, - pub sin6_scope_id: ::uint32_t + pub sin6_scope_id: ::uint32_t, } pub struct sockaddr_storage { @@ -250,7 +250,7 @@ s! { pub struct sockaddr_un { pub sun_len: ::c_uchar, pub sun_family: sa_family_t, - pub sun_path: [::c_char; 1023] + pub sun_path: [::c_char; 1023], } pub struct st_timespec { @@ -286,7 +286,7 @@ s! { pub pw_gid: ::gid_t, pub pw_gecos: *mut ::c_char, pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char + pub pw_shell: *mut ::c_char, } pub struct utsname { @@ -313,7 +313,7 @@ s! { pub sigev_value: ::sigval, pub sigev_signo: ::c_int, pub sigev_notify: ::c_int, - pub sigev_notify_function: extern fn(val: ::sigval), + pub sigev_notify_function: extern "C" fn(val: ::sigval), pub sigev_notify_attributes: *mut pthread_attr_t, } @@ -536,8 +536,8 @@ s! { s_no_extra_traits! { pub union __sigaction_sa_union { - pub __su_handler: extern fn(c: ::c_int), - pub __su_sigaction: extern fn(c: ::c_int, info: *mut siginfo_t, ptr: *mut ::c_void), + pub __su_handler: extern "C" fn(c: ::c_int), + pub __su_sigaction: extern "C" fn(c: ::c_int, info: *mut siginfo_t, ptr: *mut ::c_void), } pub struct sigaction { @@ -2514,8 +2514,9 @@ f! { if cmsg.is_null() { CMSG_FIRSTHDR(mhdr) } else { - if (cmsg as usize + (*cmsg).cmsg_len as usize + ::mem::size_of::<::cmsghdr>()) > - ((*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize) { + if (cmsg as usize + (*cmsg).cmsg_len as usize + ::mem::size_of::<::cmsghdr>()) + > ((*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize) + { 0 as *mut ::cmsghdr } else { // AIX does not have any alignment/padding for ancillary data, so we don't need _CMSG_ALIGN here. @@ -2546,20 +2547,20 @@ f! { let bits = ::mem::size_of::<::c_long>() * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] |= 1 << (fd % bits); - return + return; } pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { let bits = ::mem::size_of::<::c_long>() * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); - return + return; } pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { let bits = ::mem::size_of::<::c_long>() * 8; let fd = fd as usize; - return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0 + return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0; } pub fn major(dev: ::dev_t) -> ::c_uint { diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index f8ec9811be617..c9b86c5f0eb90 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -34,7 +34,7 @@ s! { pub f_flag: ::c_ulong, pub f_namemax: ::c_ulong, pub f_fstr: [::c_char; 32], - pub f_filler: [::c_ulong; 16] + pub f_filler: [::c_ulong; 16], } pub struct pthread_rwlock_t { @@ -206,14 +206,28 @@ s_no_extra_traits! { } 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 fo_rw: extern "C" fn( + file: *mut file, + rw: ::uio_rw, + io: *mut ::c_void, + ext: ::c_long, + secattr: *mut ::c_void, + ) -> ::c_int, + pub fo_ioctl: extern "C" fn( + file: *mut file, + a: ::c_long, + b: ::caddr_t, + c: ::c_long, + d: ::c_long, + ) -> ::c_int, + pub fo_select: extern "C" fn( + file: *mut file, + a: ::c_int, + b: *mut ::c_ushort, + c: extern "C" fn(), + ) -> ::c_int, + pub fo_close: extern "C" fn(file: *mut file) -> ::c_int, + pub fo_fstat: extern "C" fn(file: *mut file, sstat: *mut ::stat) -> ::c_int, } pub struct file { @@ -339,10 +353,7 @@ cfg_if! { impl PartialEq for _kernel_simple_lock { fn eq(&self, other: &_kernel_simple_lock) -> bool { - unsafe { - self._slock == other._slock - && self._slockp == other._slockp - } + unsafe { self._slock == other._slock && self._slockp == other._slockp } } } impl Eq for _kernel_simple_lock {} diff --git a/src/unix/bsd/apple/b32/mod.rs b/src/unix/bsd/apple/b32/mod.rs index a340b0f1350ab..01de2c3a0f39a 100644 --- a/src/unix/bsd/apple/b32/mod.rs +++ b/src/unix/bsd/apple/b32/mod.rs @@ -52,7 +52,7 @@ s! { s_no_extra_traits! { pub struct pthread_attr_t { __sig: c_long, - __opaque: [::c_char; 36] + __opaque: [::c_char; 36], } pub struct pthread_once_t { @@ -63,7 +63,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [f64; 2] + priv_: [f64; 2], } } @@ -72,10 +72,11 @@ cfg_if! { impl PartialEq for pthread_attr_t { fn eq(&self, other: &pthread_attr_t) -> bool { self.__sig == other.__sig - && self.__opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a,b)| a == b) + && self + .__opaque + .iter() + .zip(other.__opaque.iter()) + .all(|(a, b)| a == b) } } impl Eq for pthread_attr_t {} @@ -83,7 +84,7 @@ cfg_if! { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("pthread_attr_t") .field("__sig", &self.__sig) - // FIXME: .field("__opaque", &self.__opaque) + // FIXME: .field("__opaque", &self.__opaque) .finish() } } @@ -96,10 +97,11 @@ cfg_if! { impl PartialEq for pthread_once_t { fn eq(&self, other: &pthread_once_t) -> bool { self.__sig == other.__sig - && self.__opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a,b)| a == b) + && self + .__opaque + .iter() + .zip(other.__opaque.iter()) + .all(|(a, b)| a == b) } } impl Eq for pthread_once_t {} diff --git a/src/unix/bsd/apple/b64/aarch64/mod.rs b/src/unix/bsd/apple/b64/aarch64/mod.rs index dd22fcb2507b1..27b66cb816e56 100644 --- a/src/unix/bsd/apple/b64/aarch64/mod.rs +++ b/src/unix/bsd/apple/b64/aarch64/mod.rs @@ -47,6 +47,6 @@ s! { s_no_extra_traits! { #[allow(missing_debug_implementations)] pub struct max_align_t { - priv_: f64 + priv_: f64, } } diff --git a/src/unix/bsd/apple/b64/mod.rs b/src/unix/bsd/apple/b64/mod.rs index 2206210da5575..d1e11d171fd2d 100644 --- a/src/unix/bsd/apple/b64/mod.rs +++ b/src/unix/bsd/apple/b64/mod.rs @@ -52,7 +52,7 @@ s! { s_no_extra_traits! { pub struct pthread_attr_t { __sig: c_long, - __opaque: [::c_char; 56] + __opaque: [::c_char; 56], } pub struct pthread_once_t { @@ -66,10 +66,11 @@ cfg_if! { impl PartialEq for pthread_attr_t { fn eq(&self, other: &pthread_attr_t) -> bool { self.__sig == other.__sig - && self.__opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a,b)| a == b) + && self + .__opaque + .iter() + .zip(other.__opaque.iter()) + .all(|(a, b)| a == b) } } impl Eq for pthread_attr_t {} @@ -77,7 +78,7 @@ cfg_if! { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("pthread_attr_t") .field("__sig", &self.__sig) - // FIXME: .field("__opaque", &self.__opaque) + // FIXME: .field("__opaque", &self.__opaque) .finish() } } @@ -90,10 +91,11 @@ cfg_if! { impl PartialEq for pthread_once_t { fn eq(&self, other: &pthread_once_t) -> bool { self.__sig == other.__sig - && self.__opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a,b)| a == b) + && self + .__opaque + .iter() + .zip(other.__opaque.iter()) + .all(|(a, b)| a == b) } } impl Eq for pthread_once_t {} diff --git a/src/unix/bsd/apple/b64/x86_64/mod.rs b/src/unix/bsd/apple/b64/x86_64/mod.rs index a613ccb389e45..581bcf87fef78 100644 --- a/src/unix/bsd/apple/b64/x86_64/mod.rs +++ b/src/unix/bsd/apple/b64/x86_64/mod.rs @@ -110,65 +110,64 @@ s! { pub struct malloc_zone_t { _reserved1: *mut ::c_void, _reserved2: *mut ::c_void, - pub size: ::Option ::size_t>, - pub malloc: ::Option *mut ::c_void>, - pub calloc: ::Option *mut ::c_void>, - pub valloc: ::Option *mut ::c_void>, - pub free: ::Option, - pub realloc: ::Option *mut ::c_void>, + pub size: ::Option< + unsafe extern "C" fn(zone: *mut malloc_zone_t, ptr: *const ::c_void) -> ::size_t, + >, + pub malloc: ::Option< + unsafe extern "C" fn(zone: *mut malloc_zone_t, size: ::size_t) -> *mut ::c_void, + >, + pub calloc: ::Option< + unsafe extern "C" fn( + zone: *mut malloc_zone_t, + num_items: ::size_t, + size: ::size_t, + ) -> *mut ::c_void, + >, + pub valloc: ::Option< + unsafe extern "C" fn(zone: *mut malloc_zone_t, size: ::size_t) -> *mut ::c_void, + >, + pub free: ::Option, + pub realloc: ::Option< + unsafe extern "C" fn( + zone: *mut malloc_zone_t, + ptr: *mut ::c_void, + size: ::size_t, + ) -> *mut ::c_void, + >, pub destroy: ::Option, pub zone_name: *const ::c_char, - pub batch_malloc: ::Option ::c_uint>, - pub batch_free: ::Option, + pub batch_malloc: ::Option< + unsafe extern "C" fn( + zone: *mut malloc_zone_t, + size: ::size_t, + results: *mut *mut ::c_void, + num_requested: ::c_uint, + ) -> ::c_uint, + >, + pub batch_free: ::Option< + unsafe extern "C" fn( + zone: *mut malloc_zone_t, + to_be_freed: *mut *mut ::c_void, + num_to_be_freed: ::c_uint, + ), + >, pub introspect: *mut malloc_introspection_t, pub version: ::c_uint, - pub memalign: ::Option *mut ::c_void>, - pub free_definite_size: ::Option, - pub pressure_relief: ::Option ::size_t>, - pub claimed_address: ::Option ::boolean_t>, + pub memalign: ::Option< + unsafe extern "C" fn( + zone: *mut malloc_zone_t, + alignment: ::size_t, + size: ::size_t, + ) -> *mut ::c_void, + >, + pub free_definite_size: ::Option< + unsafe extern "C" fn(zone: *mut malloc_zone_t, ptr: *mut ::c_void, size: ::size_t), + >, + pub pressure_relief: + ::Option ::size_t>, + pub claimed_address: ::Option< + unsafe extern "C" fn(zone: *mut malloc_zone_t, ptr: *mut ::c_void) -> ::boolean_t, + >, } } @@ -176,6 +175,6 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [f64; 2] + priv_: [f64; 2], } } diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index e36375d5bac48..7303f55cccd8d 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -278,15 +278,15 @@ s! { pub aio_nbytes: ::size_t, pub aio_reqprio: ::c_int, pub aio_sigevent: sigevent, - pub aio_lio_opcode: ::c_int + pub aio_lio_opcode: ::c_int, } pub struct glob_t { - pub gl_pathc: ::size_t, + pub gl_pathc: ::size_t, __unused1: ::c_int, - pub gl_offs: ::size_t, + pub gl_offs: ::size_t, __unused2: ::c_int, - pub gl_pathv: *mut *mut ::c_char, + pub gl_pathv: *mut *mut ::c_char, __unused3: *mut ::c_void, @@ -665,7 +665,7 @@ s! { pub cr_version: ::c_uint, pub cr_uid: ::uid_t, pub cr_ngroups: ::c_short, - pub cr_groups: [::gid_t;16] + pub cr_groups: [::gid_t; 16], } #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] @@ -809,11 +809,11 @@ s! { // sys/socket.h pub struct sa_endpoints_t { - pub sae_srcif: ::c_uint, // optional source interface + pub sae_srcif: ::c_uint, // optional source interface pub sae_srcaddr: *const ::sockaddr, // optional source address - pub sae_srcaddrlen: ::socklen_t, // size of source address + pub sae_srcaddrlen: ::socklen_t, // size of source address pub sae_dstaddr: *const ::sockaddr, // destination address - pub sae_dstaddrlen: ::socklen_t, // size of destination address + pub sae_dstaddrlen: ::socklen_t, // size of destination address } pub struct timex { @@ -1343,9 +1343,9 @@ s_no_extra_traits! { pub shm_lpid: ::pid_t, pub shm_cpid: ::pid_t, pub shm_nattch: ::shmatt_t, - pub shm_atime: ::time_t, // FIXME: 64-bit wrong align => wrong offset - pub shm_dtime: ::time_t, // FIXME: 64-bit wrong align => wrong offset - pub shm_ctime: ::time_t, // FIXME: 64-bit wrong align => wrong offset + pub shm_atime: ::time_t, // FIXME: 64-bit wrong align => wrong offset + pub shm_dtime: ::time_t, // FIXME: 64-bit wrong align => wrong offset + pub shm_ctime: ::time_t, // FIXME: 64-bit wrong align => wrong offset // FIXME: 64-bit wrong align => wrong offset: pub shm_internal: *mut ::c_void, } @@ -1431,8 +1431,8 @@ s_no_extra_traits! { pub sigev_notify: ::c_int, pub sigev_signo: ::c_int, pub sigev_value: ::sigval, - __unused1: *mut ::c_void, //actually a function pointer - pub sigev_notify_attributes: *mut ::pthread_attr_t + __unused1: *mut ::c_void, //actually a function pointer + pub sigev_notify_attributes: *mut ::pthread_attr_t, } pub struct processor_cpu_load_info { @@ -1737,7 +1737,7 @@ cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for ifconf where - Self: Copy + Self: Copy, { fn eq(&self, other: &Self) -> bool { let len_ptr1 = core::ptr::addr_of!(self.ifc_len); @@ -1942,10 +1942,11 @@ cfg_if! { && self.pth_curpri == other.pth_curpri && self.pth_priority == other.pth_priority && self.pth_maxpriority == other.pth_maxpriority - && self.pth_name - .iter() - .zip(other.pth_name.iter()) - .all(|(a,b)| a == b) + && self + .pth_name + .iter() + .zip(other.pth_name.iter()) + .all(|(a, b)| a == b) } } impl Eq for proc_threadinfo {} @@ -1962,7 +1963,7 @@ cfg_if! { .field("pth_curpri", &self.pth_curpri) .field("pth_priority", &self.pth_priority) .field("pth_maxpriority", &self.pth_maxpriority) - // FIXME: .field("pth_name", &self.pth_name) + // FIXME: .field("pth_name", &self.pth_name) .finish() } } @@ -1998,15 +1999,15 @@ cfg_if! { && self.f_fstypename == other.f_fstypename && self.f_type == other.f_type && self - .f_mntonname - .iter() - .zip(other.f_mntonname.iter()) - .all(|(a,b)| a == b) + .f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a, b)| a == b) && self - .f_mntfromname - .iter() - .zip(other.f_mntfromname.iter()) - .all(|(a,b)| a == b) + .f_mntfromname + .iter() + .zip(other.f_mntfromname.iter()) + .all(|(a, b)| a == b) && self.f_reserved == other.f_reserved } } @@ -2028,8 +2029,8 @@ cfg_if! { .field("f_fssubtype", &self.f_fssubtype) .field("f_fstypename", &self.f_fstypename) .field("f_type", &self.f_type) - // FIXME: .field("f_mntonname", &self.f_mntonname) - // FIXME: .field("f_mntfromname", &self.f_mntfromname) + // FIXME: .field("f_mntonname", &self.f_mntonname) + // FIXME: .field("f_mntfromname", &self.f_mntfromname) .field("f_reserved", &self.f_reserved) .finish() } @@ -2064,10 +2065,10 @@ cfg_if! { && self.d_namlen == other.d_namlen && self.d_type == other.d_type && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } impl Eq for dirent {} @@ -2096,11 +2097,11 @@ cfg_if! { impl PartialEq for pthread_rwlock_t { fn eq(&self, other: &pthread_rwlock_t) -> bool { self.__sig == other.__sig - && self. - __opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a,b)| a == b) + && self + .__opaque + .iter() + .zip(other.__opaque.iter()) + .all(|(a, b)| a == b) } } impl Eq for pthread_rwlock_t {} @@ -2122,11 +2123,11 @@ cfg_if! { impl PartialEq for pthread_mutex_t { fn eq(&self, other: &pthread_mutex_t) -> bool { self.__sig == other.__sig - && self. - __opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a,b)| a == b) + && self + .__opaque + .iter() + .zip(other.__opaque.iter()) + .all(|(a, b)| a == b) } } @@ -2151,11 +2152,11 @@ cfg_if! { impl PartialEq for pthread_cond_t { fn eq(&self, other: &pthread_cond_t) -> bool { self.__sig == other.__sig - && self. - __opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a,b)| a == b) + && self + .__opaque + .iter() + .zip(other.__opaque.iter()) + .all(|(a, b)| a == b) } } @@ -2182,16 +2183,16 @@ cfg_if! { self.ss_len == other.ss_len && self.ss_family == other.ss_family && self - .__ss_pad1 - .iter() - .zip(other.__ss_pad1.iter()) - .all(|(a, b)| a == b) + .__ss_pad1 + .iter() + .zip(other.__ss_pad1.iter()) + .all(|(a, b)| a == b) && self.__ss_align == other.__ss_align && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) + .__ss_pad2 + .iter() + .zip(other.__ss_pad2.iter()) + .all(|(a, b)| a == b) } } @@ -2224,17 +2225,17 @@ cfg_if! { self.ut_user .iter() .zip(other.ut_user.iter()) - .all(|(a,b)| a == b) + .all(|(a, b)| a == b) && self.ut_id == other.ut_id && self.ut_line == other.ut_line && self.ut_pid == other.ut_pid && self.ut_type == other.ut_type && self.ut_tv == other.ut_tv && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a, b)| a == b) && self.ut_pad == other.ut_pad } } @@ -2274,8 +2275,7 @@ cfg_if! { self.sigev_notify == other.sigev_notify && self.sigev_signo == other.sigev_signo && self.sigev_value == other.sigev_value - && self.sigev_notify_attributes - == other.sigev_notify_attributes + && self.sigev_notify_attributes == other.sigev_notify_attributes } } @@ -2287,8 +2287,7 @@ cfg_if! { .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) .field("sigev_value", &self.sigev_value) - .field("sigev_notify_attributes", - &self.sigev_notify_attributes) + .field("sigev_notify_attributes", &self.sigev_notify_attributes) .finish() } } @@ -2404,8 +2403,7 @@ cfg_if! { impl PartialEq for time_value_t { fn eq(&self, other: &time_value_t) -> bool { - self.seconds == other.seconds - && self.microseconds == other.microseconds + self.seconds == other.seconds && self.microseconds == other.microseconds } } impl Eq for time_value_t {} @@ -2474,10 +2472,11 @@ cfg_if! { && self.pth_curpri == other.pth_curpri && self.pth_priority == other.pth_priority && self.pth_maxpriority == other.pth_maxpriority - && self.pth_name - .iter() - .zip(other.pth_name.iter()) - .all(|(a,b)| a == b) + && self + .pth_name + .iter() + .zip(other.pth_name.iter()) + .all(|(a, b)| a == b) } } impl Eq for thread_extended_info {} @@ -2494,7 +2493,7 @@ cfg_if! { .field("pth_curpri", &self.pth_curpri) .field("pth_priority", &self.pth_priority) .field("pth_maxpriority", &self.pth_maxpriority) - // FIXME: .field("pth_name", &self.pth_name) + // FIXME: .field("pth_name", &self.pth_name) .finish() } } @@ -2539,31 +2538,31 @@ cfg_if! { } impl PartialEq for if_data64 { fn eq(&self, other: &if_data64) -> bool { - self.ifi_type == other.ifi_type && - self.ifi_typelen == other.ifi_typelen && - self.ifi_physical == other.ifi_physical && - self.ifi_addrlen == other.ifi_addrlen && - self.ifi_hdrlen == other.ifi_hdrlen && - self.ifi_recvquota == other.ifi_recvquota && - self.ifi_xmitquota == other.ifi_xmitquota && - self.ifi_unused1 == other.ifi_unused1 && - self.ifi_mtu == other.ifi_mtu && - self.ifi_metric == other.ifi_metric && - self.ifi_baudrate == other.ifi_baudrate && - self.ifi_ipackets == other.ifi_ipackets && - self.ifi_ierrors == other.ifi_ierrors && - self.ifi_opackets == other.ifi_opackets && - self.ifi_oerrors == other.ifi_oerrors && - self.ifi_collisions == other.ifi_collisions && - self.ifi_ibytes == other.ifi_ibytes && - self.ifi_obytes == other.ifi_obytes && - self.ifi_imcasts == other.ifi_imcasts && - self.ifi_omcasts == other.ifi_omcasts && - self.ifi_iqdrops == other.ifi_iqdrops && - self.ifi_noproto == other.ifi_noproto && - self.ifi_recvtiming == other.ifi_recvtiming && - self.ifi_xmittiming == other.ifi_xmittiming && - self.ifi_lastchange == other.ifi_lastchange + self.ifi_type == other.ifi_type + && self.ifi_typelen == other.ifi_typelen + && self.ifi_physical == other.ifi_physical + && self.ifi_addrlen == other.ifi_addrlen + && self.ifi_hdrlen == other.ifi_hdrlen + && self.ifi_recvquota == other.ifi_recvquota + && self.ifi_xmitquota == other.ifi_xmitquota + && self.ifi_unused1 == other.ifi_unused1 + && self.ifi_mtu == other.ifi_mtu + && self.ifi_metric == other.ifi_metric + && self.ifi_baudrate == other.ifi_baudrate + && self.ifi_ipackets == other.ifi_ipackets + && self.ifi_ierrors == other.ifi_ierrors + && self.ifi_opackets == other.ifi_opackets + && self.ifi_oerrors == other.ifi_oerrors + && self.ifi_collisions == other.ifi_collisions + && self.ifi_ibytes == other.ifi_ibytes + && self.ifi_obytes == other.ifi_obytes + && self.ifi_imcasts == other.ifi_imcasts + && self.ifi_omcasts == other.ifi_omcasts + && self.ifi_iqdrops == other.ifi_iqdrops + && self.ifi_noproto == other.ifi_noproto + && self.ifi_recvtiming == other.ifi_recvtiming + && self.ifi_xmittiming == other.ifi_xmittiming + && self.ifi_lastchange == other.ifi_lastchange } } impl Eq for if_data64 {} @@ -2679,17 +2678,17 @@ cfg_if! { } impl PartialEq for if_msghdr2 { fn eq(&self, other: &if_msghdr2) -> bool { - self.ifm_msglen == other.ifm_msglen && - self.ifm_version == other.ifm_version && - self.ifm_type == other.ifm_type && - self.ifm_addrs == other.ifm_addrs && - self.ifm_flags == other.ifm_flags && - self.ifm_index == other.ifm_index && - self.ifm_snd_len == other.ifm_snd_len && - self.ifm_snd_maxlen == other.ifm_snd_maxlen && - self.ifm_snd_drops == other.ifm_snd_drops && - self.ifm_timer == other.ifm_timer && - self.ifm_data == other.ifm_data + self.ifm_msglen == other.ifm_msglen + && self.ifm_version == other.ifm_version + && self.ifm_type == other.ifm_type + && self.ifm_addrs == other.ifm_addrs + && self.ifm_flags == other.ifm_flags + && self.ifm_index == other.ifm_index + && self.ifm_snd_len == other.ifm_snd_len + && self.ifm_snd_maxlen == other.ifm_snd_maxlen + && self.ifm_snd_drops == other.ifm_snd_drops + && self.ifm_timer == other.ifm_timer + && self.ifm_data == other.ifm_data } } impl Eq for if_msghdr2 {} @@ -2751,30 +2750,30 @@ cfg_if! { fn eq(&self, other: &vm_statistics64) -> bool { // Otherwise rustfmt crashes... let total_uncompressed = self.total_uncompressed_pages_in_compressor; - self.free_count == other.free_count && - self.active_count == other.active_count && - self.inactive_count == other.inactive_count && - self.wire_count == other.wire_count && - self.zero_fill_count == other.zero_fill_count && - self.reactivations == other.reactivations && - self.pageins == other.pageins && - self.pageouts == other.pageouts && - self.faults == other.faults && - self.cow_faults == other.cow_faults && - self.lookups == other.lookups && - self.hits == other.hits && - self.purges == other.purges && - self.purgeable_count == other.purgeable_count && - self.speculative_count == other.speculative_count && - self.decompressions == other.decompressions && - self.compressions == other.compressions && - self.swapins == other.swapins && - self.swapouts == other.swapouts && - self.compressor_page_count == other.compressor_page_count && - self.throttled_count == other.throttled_count && - self.external_page_count == other.external_page_count && - self.internal_page_count == other.internal_page_count && - total_uncompressed == other.total_uncompressed_pages_in_compressor + self.free_count == other.free_count + && self.active_count == other.active_count + && self.inactive_count == other.inactive_count + && self.wire_count == other.wire_count + && self.zero_fill_count == other.zero_fill_count + && self.reactivations == other.reactivations + && self.pageins == other.pageins + && self.pageouts == other.pageouts + && self.faults == other.faults + && self.cow_faults == other.cow_faults + && self.lookups == other.lookups + && self.hits == other.hits + && self.purges == other.purges + && self.purgeable_count == other.purgeable_count + && self.speculative_count == other.speculative_count + && self.decompressions == other.decompressions + && self.compressions == other.compressions + && self.swapins == other.swapins + && self.swapouts == other.swapouts + && self.compressor_page_count == other.compressor_page_count + && self.throttled_count == other.throttled_count + && self.external_page_count == other.external_page_count + && self.internal_page_count == other.internal_page_count + && total_uncompressed == other.total_uncompressed_pages_in_compressor } } impl Eq for vm_statistics64 {} @@ -2829,7 +2828,10 @@ cfg_if! { .field("throttled_count", &throttled_count) .field("external_page_count", &external_page_count) .field("internal_page_count", &internal_page_count) - .field("total_uncompressed_pages_in_compressor", &total_uncompressed) + .field( + "total_uncompressed_pages_in_compressor", + &total_uncompressed, + ) .finish() } } @@ -3011,11 +3013,11 @@ cfg_if! { 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) + .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() } } @@ -3066,10 +3068,7 @@ cfg_if! { 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 - } + unsafe { self.ifk_ptr == other.ifk_ptr && self.ifk_value == other.ifk_value } } } @@ -3094,8 +3093,7 @@ cfg_if! { impl PartialEq for ifkpi { fn eq(&self, other: &ifkpi) -> bool { - self.ifk_module_id == other.ifk_module_id - && self.ifk_type == other.ifk_type + self.ifk_module_id == other.ifk_module_id && self.ifk_type == other.ifk_type } } @@ -3134,7 +3132,11 @@ cfg_if! { && 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_cap + .iter() + .zip(other.ifru_cap.iter()) + .all(|(a, b)| a == b) && self.ifru_functional_type == other.ifru_functional_type } } @@ -3160,7 +3162,9 @@ cfg_if! { .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 }) + .field("ifru_functional_type", unsafe { + &self.ifru_functional_type + }) .finish() } } @@ -3190,8 +3194,7 @@ cfg_if! { impl PartialEq for ifreq { fn eq(&self, other: &ifreq) -> bool { - self.ifr_name == other.ifr_name - && self.ifr_ifru == other.ifr_ifru + self.ifr_name == other.ifr_name && self.ifr_ifru == other.ifr_ifru } } @@ -3217,10 +3220,7 @@ cfg_if! { 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 - } + unsafe { self.ifcu_buf == other.ifcu_buf && self.ifcu_req == other.ifcu_req } } } @@ -3250,10 +3250,11 @@ cfg_if! { && self.ifru_metrics == other.ifru_metrics && self.ifru_intval == other.ifru_intval && self.ifru_data == other.ifru_data - && self.ifru_scope_id + && self + .ifru_scope_id .iter() .zip(other.ifru_scope_id.iter()) - .all(|(a,b)| a == b) + .all(|(a, b)| a == b) } } } @@ -3292,8 +3293,7 @@ cfg_if! { impl PartialEq for in6_ifreq { fn eq(&self, other: &in6_ifreq) -> bool { - self.ifr_name == other.ifr_name - && self.ifr_ifru == other.ifr_ifru + self.ifr_name == other.ifr_name && self.ifr_ifru == other.ifr_ifru } } @@ -3582,23 +3582,20 @@ deprecated_mach! { pub const VM_FLAGS_ALIAS_MASK: ::c_int = 0xFF000000; pub const VM_FLAGS_USER_ALLOCATE: ::c_int = 0xff07401f; pub const VM_FLAGS_USER_MAP: ::c_int = 0xff97401f; - pub const VM_FLAGS_USER_REMAP: ::c_int = VM_FLAGS_FIXED | - VM_FLAGS_ANYWHERE | - VM_FLAGS_RANDOM_ADDR | - VM_FLAGS_OVERWRITE | - VM_FLAGS_RETURN_DATA_ADDR | - VM_FLAGS_RESILIENT_CODESIGN; + pub const VM_FLAGS_USER_REMAP: ::c_int = VM_FLAGS_FIXED + | VM_FLAGS_ANYWHERE + | VM_FLAGS_RANDOM_ADDR + | VM_FLAGS_OVERWRITE + | VM_FLAGS_RETURN_DATA_ADDR + | VM_FLAGS_RESILIENT_CODESIGN; pub const VM_FLAGS_SUPERPAGE_SHIFT: ::c_int = 16; pub const SUPERPAGE_NONE: ::c_int = 0; pub const SUPERPAGE_SIZE_ANY: ::c_int = 1; - pub const VM_FLAGS_SUPERPAGE_NONE: ::c_int = SUPERPAGE_NONE << - VM_FLAGS_SUPERPAGE_SHIFT; - pub const VM_FLAGS_SUPERPAGE_SIZE_ANY: ::c_int = SUPERPAGE_SIZE_ANY << - VM_FLAGS_SUPERPAGE_SHIFT; + pub const VM_FLAGS_SUPERPAGE_NONE: ::c_int = SUPERPAGE_NONE << VM_FLAGS_SUPERPAGE_SHIFT; + pub const VM_FLAGS_SUPERPAGE_SIZE_ANY: ::c_int = SUPERPAGE_SIZE_ANY << VM_FLAGS_SUPERPAGE_SHIFT; pub const SUPERPAGE_SIZE_2MB: ::c_int = 2; - pub const VM_FLAGS_SUPERPAGE_SIZE_2MB: ::c_int = SUPERPAGE_SIZE_2MB << - VM_FLAGS_SUPERPAGE_SHIFT; + pub const VM_FLAGS_SUPERPAGE_SIZE_2MB: ::c_int = SUPERPAGE_SIZE_2MB << VM_FLAGS_SUPERPAGE_SHIFT; pub const VM_MEMORY_MALLOC: ::c_int = 1; pub const VM_MEMORY_MALLOC_SMALL: ::c_int = 2; @@ -5754,15 +5751,13 @@ pub const DOT3COMPLIANCE_COLLS: ::c_int = 2; pub const MAX_KCTL_NAME: usize = 96; f! { - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, - cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { + pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { if cmsg.is_null() { return ::CMSG_FIRSTHDR(mhdr); }; let cmsg_len = (*cmsg).cmsg_len as usize; let next = cmsg as usize + __DARWIN_ALIGN32(cmsg_len); - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; + let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next + __DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) > max { core::ptr::null_mut() } else { @@ -5771,19 +5766,16 @@ f! { } pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar) - .add(__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>())) + (cmsg as *mut ::c_uchar).add(__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>())) } pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) - + __DARWIN_ALIGN32(length as usize)) + (__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) + __DARWIN_ALIGN32(length as usize)) as ::c_uint } pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - (__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) + length as usize) - as ::c_uint + (__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) + length as usize) as ::c_uint } pub {const} fn VM_MAKE_TAG(id: u8) -> u32 { @@ -6789,7 +6781,12 @@ cfg_if! { } } cfg_if! { - if #[cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos", target_os = "visionos"))] { + if #[cfg(any( + target_os = "macos", + target_os = "ios", + target_os = "tvos", + target_os = "visionos" + ))] { extern "C" { pub fn memmem( haystack: *const ::c_void, @@ -6797,10 +6794,11 @@ cfg_if! { needle: *const ::c_void, needlelen: ::size_t, ) -> *mut ::c_void; - pub fn task_set_info(target_task: ::task_t, - flavor: ::task_flavor_t, - task_info_in: ::task_info_t, - task_info_inCnt: ::mach_msg_type_number_t + pub fn task_set_info( + target_task: ::task_t, + flavor: ::task_flavor_t, + task_info_in: ::task_info_t, + task_info_inCnt: ::mach_msg_type_number_t, ) -> ::kern_return_t; } } diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index c6d7370359e1e..88292afdb1208 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -84,7 +84,7 @@ s! { pub struct exit_status { pub e_termination: u16, - pub e_exit: u16 + pub e_exit: u16, } pub struct aiocb { @@ -96,7 +96,7 @@ s! { pub aio_lio_opcode: ::c_int, pub aio_reqprio: ::c_int, _aio_val: ::c_int, - _aio_err: ::c_int + _aio_err: ::c_int, } pub struct uuid { @@ -294,7 +294,7 @@ s! { pub kl_sigmask: ::sigset_t, pub kl_wchan: ::uintptr_t, pub kl_wmesg: [::c_char; 9], - pub kl_comm: [::c_char; MAXCOMLEN+1], + pub kl_comm: [::c_char; MAXCOMLEN + 1], } pub struct kinfo_proc { @@ -310,7 +310,7 @@ s! { pub kp_sigcatch: ::sigset_t, pub kp_sigflag: ::c_int, pub kp_start: ::timeval, - pub kp_comm: [::c_char; MAXCOMLEN+1], + pub kp_comm: [::c_char; MAXCOMLEN + 1], pub kp_uid: ::uid_t, pub kp_ngroups: ::c_short, pub kp_groups: [::gid_t; NGROUPS], @@ -477,12 +477,12 @@ s_no_extra_traits! { // The union is 8-byte in size, so it is aligned at a 8-byte offset. #[cfg(target_pointer_width = "64")] __unused1: ::c_int, - pub sigev_signo: ::c_int, //actually a union + pub sigev_signo: ::c_int, //actually a union // pad the union #[cfg(target_pointer_width = "64")] __unused2: ::c_int, pub sigev_value: ::sigval, - __unused3: *mut ::c_void //actually a function pointer + __unused3: *mut ::c_void, //actually a function pointer } pub struct mcontext_t { @@ -539,10 +539,10 @@ cfg_if! { && self.ut_id == other.ut_id && self.ut_line == other.ut_line && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a, b)| a == b) && self.ut_unused == other.ut_unused && self.ut_session == other.ut_session && self.ut_type == other.ut_type @@ -648,8 +648,8 @@ cfg_if! { self.d_fileno.hash(state); self.d_namlen.hash(state); self.d_type.hash(state); - // Ignore __unused1 - // Ignore __unused2 + // Ignore __unused1 + // Ignore __unused2 self.d_name.hash(state); } } @@ -671,17 +671,17 @@ cfg_if! { && self.f_asyncwrites == other.f_asyncwrites && self.f_fstypename == other.f_fstypename && self - .f_mntonname - .iter() - .zip(other.f_mntonname.iter()) - .all(|(a,b)| a == b) + .f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a, b)| a == b) && self.f_syncreads == other.f_syncreads && self.f_asyncreads == other.f_asyncreads && self - .f_mntfromname - .iter() - .zip(other.f_mntfromname.iter()) - .all(|(a,b)| a == b) + .f_mntfromname + .iter() + .zip(other.f_mntfromname.iter()) + .all(|(a, b)| a == b) } } impl Eq for statfs {} @@ -757,36 +757,36 @@ cfg_if! { } impl PartialEq for mcontext_t { fn eq(&self, other: &mcontext_t) -> bool { - self.mc_onstack == other.mc_onstack && - self.mc_rdi == other.mc_rdi && - self.mc_rsi == other.mc_rsi && - self.mc_rdx == other.mc_rdx && - self.mc_rcx == other.mc_rcx && - self.mc_r8 == other.mc_r8 && - self.mc_r9 == other.mc_r9 && - self.mc_rax == other.mc_rax && - self.mc_rbx == other.mc_rbx && - self.mc_rbp == other.mc_rbp && - self.mc_r10 == other.mc_r10 && - self.mc_r11 == other.mc_r11 && - self.mc_r12 == other.mc_r12 && - self.mc_r13 == other.mc_r13 && - self.mc_r14 == other.mc_r14 && - self.mc_r15 == other.mc_r15 && - self.mc_xflags == other.mc_xflags && - self.mc_trapno == other.mc_trapno && - self.mc_addr == other.mc_addr && - self.mc_flags == other.mc_flags && - self.mc_err == other.mc_err && - self.mc_rip == other.mc_rip && - self.mc_cs == other.mc_cs && - self.mc_rflags == other.mc_rflags && - self.mc_rsp == other.mc_rsp && - 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_fpregs == other.mc_fpregs + self.mc_onstack == other.mc_onstack + && self.mc_rdi == other.mc_rdi + && self.mc_rsi == other.mc_rsi + && self.mc_rdx == other.mc_rdx + && self.mc_rcx == other.mc_rcx + && self.mc_r8 == other.mc_r8 + && self.mc_r9 == other.mc_r9 + && self.mc_rax == other.mc_rax + && self.mc_rbx == other.mc_rbx + && self.mc_rbp == other.mc_rbp + && self.mc_r10 == other.mc_r10 + && self.mc_r11 == other.mc_r11 + && self.mc_r12 == other.mc_r12 + && self.mc_r13 == other.mc_r13 + && self.mc_r14 == other.mc_r14 + && self.mc_r15 == other.mc_r15 + && self.mc_xflags == other.mc_xflags + && self.mc_trapno == other.mc_trapno + && self.mc_addr == other.mc_addr + && self.mc_flags == other.mc_flags + && self.mc_err == other.mc_err + && self.mc_rip == other.mc_rip + && self.mc_cs == other.mc_cs + && self.mc_rflags == other.mc_rflags + && self.mc_rsp == other.mc_rsp + && 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_fpregs == other.mc_fpregs } } impl Eq for mcontext_t {} @@ -1543,33 +1543,27 @@ const_fn! { f! { pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar) - .offset(_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + (cmsg as *mut ::c_uchar).offset(_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) } pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - (_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) + length as usize) - as ::c_uint + (_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) + length as usize) as ::c_uint } - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) - -> *mut ::cmsghdr - { - let next = cmsg as usize + _CMSG_ALIGN((*cmsg).cmsg_len as usize) + pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { + let next = cmsg as usize + + _CMSG_ALIGN((*cmsg).cmsg_len as usize) + _CMSG_ALIGN(::mem::size_of::<::cmsghdr>()); - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; + let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next <= max { - (cmsg as usize + _CMSG_ALIGN((*cmsg).cmsg_len as usize)) - as *mut ::cmsghdr + (cmsg as usize + _CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut ::cmsghdr } else { 0 as *mut ::cmsghdr } } pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) + - _CMSG_ALIGN(length as usize)) as ::c_uint + (_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) + _CMSG_ALIGN(length as usize)) as ::c_uint } pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { @@ -1596,7 +1590,7 @@ f! { } pub fn major(dev: ::dev_t) -> ::c_int { - ((dev >> 8) & 0xff) as ::c_int + ((dev >> 8) & 0xff) as ::c_int } pub fn minor(dev: ::dev_t) -> ::c_int { diff --git a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs index 05fe64b5c0c8a..abda2c3dcd598 100644 --- a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs @@ -40,12 +40,12 @@ cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for gpregs { fn eq(&self, other: &gpregs) -> bool { - self.gp_x.iter().zip(other.gp_x.iter()).all(|(a, b)| a == b) && - self.gp_lr == other.gp_lr && - self.gp_sp == other.gp_sp && - self.gp_elr == other.gp_elr && - self.gp_spsr == other.gp_spsr && - self.gp_pad == other.gp_pad + self.gp_x.iter().zip(other.gp_x.iter()).all(|(a, b)| a == b) + && self.gp_lr == other.gp_lr + && self.gp_sp == other.gp_sp + && self.gp_elr == other.gp_elr + && self.gp_spsr == other.gp_spsr + && self.gp_pad == other.gp_pad } } impl Eq for gpregs {} @@ -73,11 +73,11 @@ cfg_if! { } impl PartialEq for fpregs { fn eq(&self, other: &fpregs) -> bool { - self.fp_q == other.fp_q && - self.fp_sr == other.fp_sr && - self.fp_cr == other.fp_cr && - self.fp_flags == other.fp_flags && - self.fp_pad == other.fp_pad + self.fp_q == other.fp_q + && self.fp_sr == other.fp_sr + && self.fp_cr == other.fp_cr + && self.fp_flags == other.fp_flags + && self.fp_pad == other.fp_pad } } impl Eq for fpregs {} @@ -103,11 +103,15 @@ cfg_if! { } impl PartialEq for mcontext_t { fn eq(&self, other: &mcontext_t) -> bool { - self.mc_gpregs == other.mc_gpregs && - self.mc_fpregs == other.mc_fpregs && - self.mc_flags == other.mc_flags && - self.mc_pad == other.mc_pad && - self.mc_spare.iter().zip(other.mc_spare.iter()).all(|(a, b)| a == b) + self.mc_gpregs == other.mc_gpregs + && self.mc_fpregs == other.mc_fpregs + && self.mc_flags == other.mc_flags + && self.mc_pad == other.mc_pad + && self + .mc_spare + .iter() + .zip(other.mc_spare.iter()) + .all(|(a, b)| a == b) } } impl Eq for mcontext_t {} diff --git a/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/unix/bsd/freebsdlike/freebsd/arm.rs index 07cac6a331547..37068ca35216f 100644 --- a/src/unix/bsd/freebsdlike/freebsd/arm.rs +++ b/src/unix/bsd/freebsdlike/freebsd/arm.rs @@ -22,10 +22,14 @@ cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for mcontext_t { fn eq(&self, other: &mcontext_t) -> bool { - self.__gregs == other.__gregs && - self.mc_vfp_size == other.mc_vfp_size && - self.mc_vfp_ptr == other.mc_vfp_ptr && - self.mc_spare.iter().zip(other.mc_spare.iter()).all(|(a, b)| a == b) + self.__gregs == other.__gregs + && self.mc_vfp_size == other.mc_vfp_size + && self.mc_vfp_ptr == other.mc_vfp_ptr + && self + .mc_spare + .iter() + .zip(other.mc_spare.iter()) + .all(|(a, b)| a == b) } } impl Eq for mcontext_t {} diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs index 44f48ab5ceb47..cb62ee608a8b4 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs @@ -283,15 +283,15 @@ cfg_if! { && 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) + .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) + .f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a, b)| a == b) } } impl Eq for statfs {} @@ -349,11 +349,10 @@ cfg_if! { && 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) + && self.d_name[..self.d_namlen as _] + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } impl Eq for dirent {} @@ -383,14 +382,14 @@ cfg_if! { 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_mntdir == other.vn_mntdir && - self.vn_dev == other.vn_dev && - self.vn_fsid == other.vn_fsid && - self.vn_type == other.vn_type && - self.vn_mode == other.vn_mode && - self_vn_devname == other_vn_devname + self.vn_fileid == other.vn_fileid + && self.vn_size == other.vn_size + && self.vn_mntdir == other.vn_mntdir + && self.vn_dev == other.vn_dev + && self.vn_fsid == other.vn_fsid + && self.vn_type == other.vn_type + && self.vn_mode == other.vn_mode + && self_vn_devname == other_vn_devname } } impl Eq for vnstat {} @@ -444,7 +443,7 @@ safe_f! { f! { pub fn major(dev: ::dev_t) -> ::c_int { - ((dev >> 8) & 0xff) as ::c_int + ((dev >> 8) & 0xff) as ::c_int } pub fn minor(dev: ::dev_t) -> ::c_int { diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index a16f1d13915c8..c2a168a501e58 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -326,15 +326,15 @@ cfg_if! { && 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) + .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) + .f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a, b)| a == b) } } impl Eq for statfs {} @@ -394,11 +394,10 @@ cfg_if! { && 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) + && self.d_name[..self.d_namlen as _] + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } impl Eq for dirent {} @@ -430,14 +429,14 @@ cfg_if! { 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 + 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 {} diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs index d97606787b67e..a663a3b5db1a7 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -339,15 +339,15 @@ cfg_if! { && 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) + .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) + .f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a, b)| a == b) } } impl Eq for statfs {} @@ -407,11 +407,10 @@ cfg_if! { && 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) + && self.d_name[..self.d_namlen as _] + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } impl Eq for dirent {} @@ -443,14 +442,14 @@ cfg_if! { 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 + 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 {} diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index 6a46efaa6144c..afca6890711ae 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -339,15 +339,15 @@ cfg_if! { && 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) + .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) + .f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a, b)| a == b) } } impl Eq for statfs {} @@ -407,11 +407,10 @@ cfg_if! { && 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) + && self.d_name[..self.d_namlen as _] + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } impl Eq for dirent {} @@ -443,14 +442,14 @@ cfg_if! { 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 + 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 {} diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index ac8e33382dd57..031f41364804d 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -339,15 +339,15 @@ cfg_if! { && 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) + .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) + .f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a, b)| a == b) } } impl Eq for statfs {} @@ -407,11 +407,10 @@ cfg_if! { && 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) + && self.d_name[..self.d_namlen as _] + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } impl Eq for dirent {} @@ -443,14 +442,14 @@ cfg_if! { 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 + 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 {} diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 9b69ccbbb74de..43c2d0dfbe7f1 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -249,7 +249,7 @@ s! { __unused3: ::c_long, __unused4: ::c_long, __unused5: *mut ::c_void, - pub aio_sigevent: sigevent + pub aio_sigevent: sigevent, } pub struct jail { @@ -388,7 +388,6 @@ s! { #[cfg(target_pointer_width = "32")] m_pad: u32, m_spare: [u32; 2], - } pub struct ucond { @@ -609,7 +608,7 @@ s! { pub struct spacectl_range { pub r_offset: ::off_t, - pub r_len: ::off_t + pub r_len: ::off_t, } pub struct rusage_ext { @@ -1384,7 +1383,7 @@ s_no_extra_traits! { pub mq_maxmsg: ::c_long, pub mq_msgsize: ::c_long, pub mq_curmsgs: ::c_long, - __reserved: [::c_long; 4] + __reserved: [::c_long; 4], } pub struct sigevent { @@ -1396,7 +1395,7 @@ s_no_extra_traits! { pub sigev_notify_thread_id: ::lwpid_t, #[cfg(target_pointer_width = "64")] __unused1: ::c_int, - __unused2: [::c_long; 7] + __unused2: [::c_long; 7], } pub struct ptsstat { @@ -1621,7 +1620,7 @@ s_no_extra_traits! { pub kf_flags: ::c_int, _kf_pad0: ::c_int, pub kf_offset: i64, - _priv: [u8; 304], // FIXME: this is really a giant union + _priv: [u8; 304], // FIXME: this is really a giant union pub kf_status: u16, _kf_pad1: u16, _kf_ispare0: ::c_int, @@ -1651,15 +1650,15 @@ cfg_if! { && self.ut_user == other.ut_user && self.ut_line == other.ut_line && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a, b)| a == b) && self - .__ut_spare - .iter() - .zip(other.__ut_spare.iter()) - .all(|(a,b)| a == b) + .__ut_spare + .iter() + .zip(other.__ut_spare.iter()) + .all(|(a, b)| a == b) } } impl Eq for utmpx {} @@ -1692,7 +1691,7 @@ cfg_if! { impl PartialEq for __c_anonymous_cr_pid { fn eq(&self, other: &__c_anonymous_cr_pid) -> bool { - unsafe { self.cr_pid == other.cr_pid} + unsafe { self.cr_pid == other.cr_pid } } } impl Eq for __c_anonymous_cr_pid {} @@ -1750,10 +1749,10 @@ cfg_if! { && self.sdl_alen == other.sdl_alen && self.sdl_slen == other.sdl_slen && self - .sdl_data - .iter() - .zip(other.sdl_data.iter()) - .all(|(a,b)| a == b) + .sdl_data + .iter() + .zip(other.sdl_data.iter()) + .all(|(a, b)| a == b) } } impl Eq for sockaddr_dl {} @@ -1786,10 +1785,10 @@ cfg_if! { impl PartialEq for mq_attr { fn eq(&self, other: &mq_attr) -> bool { - self.mq_flags == other.mq_flags && - self.mq_maxmsg == other.mq_maxmsg && - self.mq_msgsize == other.mq_msgsize && - self.mq_curmsgs == other.mq_curmsgs + self.mq_flags == other.mq_flags + && self.mq_maxmsg == other.mq_maxmsg + && self.mq_msgsize == other.mq_msgsize + && self.mq_curmsgs == other.mq_curmsgs } } impl Eq for mq_attr {} @@ -1817,8 +1816,7 @@ cfg_if! { self.sigev_notify == other.sigev_notify && self.sigev_signo == other.sigev_signo && self.sigev_value == other.sigev_value - && self.sigev_notify_thread_id - == other.sigev_notify_thread_id + && self.sigev_notify_thread_id == other.sigev_notify_thread_id } } impl Eq for sigevent {} @@ -1828,8 +1826,7 @@ cfg_if! { .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) .field("sigev_value", &self.sigev_value) - .field("sigev_notify_thread_id", - &self.sigev_notify_thread_id) + .field("sigev_notify_thread_id", &self.sigev_notify_thread_id) .finish() } } @@ -1872,7 +1869,7 @@ cfg_if! { impl PartialEq for __c_anonymous_elf32_auxv_union { fn eq(&self, other: &__c_anonymous_elf32_auxv_union) -> bool { - unsafe { self.a_val == other.a_val} + unsafe { self.a_val == other.a_val } } } impl Eq for __c_anonymous_elf32_auxv_union {} @@ -1885,8 +1882,7 @@ cfg_if! { } impl PartialEq for Elf32_Auxinfo { fn eq(&self, other: &Elf32_Auxinfo) -> bool { - self.a_type == other.a_type - && self.a_un == other.a_un + self.a_type == other.a_type && self.a_un == other.a_un } } impl Eq for Elf32_Auxinfo {} @@ -1902,21 +1898,21 @@ cfg_if! { 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_buffer == other.ifru_buffer && - self.ifru_flags == other.ifru_flags && - self.ifru_index == other.ifru_index && - self.ifru_jid == other.ifru_jid && - self.ifru_metric == other.ifru_metric && - self.ifru_mtu == other.ifru_mtu && - self.ifru_phys == other.ifru_phys && - self.ifru_media == other.ifru_media && - self.ifru_data == other.ifru_data && - self.ifru_cap == other.ifru_cap && - self.ifru_fib == other.ifru_fib && - self.ifru_vlan_pcp == other.ifru_vlan_pcp + self.ifru_addr == other.ifru_addr + && self.ifru_dstaddr == other.ifru_dstaddr + && self.ifru_broadaddr == other.ifru_broadaddr + && self.ifru_buffer == other.ifru_buffer + && self.ifru_flags == other.ifru_flags + && self.ifru_index == other.ifru_index + && self.ifru_jid == other.ifru_jid + && self.ifru_metric == other.ifru_metric + && self.ifru_mtu == other.ifru_mtu + && self.ifru_phys == other.ifru_phys + && self.ifru_media == other.ifru_media + && self.ifru_data == other.ifru_data + && self.ifru_cap == other.ifru_cap + && self.ifru_fib == other.ifru_fib + && self.ifru_vlan_pcp == other.ifru_vlan_pcp } } } @@ -1987,10 +1983,7 @@ cfg_if! { 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 - } + unsafe { self.ifcu_buf == other.ifcu_buf && self.ifcu_req == other.ifcu_req } } } @@ -2041,11 +2034,11 @@ cfg_if! { let self_ifrk_key: &[u8] = &self.ifrk_key; let other_ifrk_key: &[u8] = &other.ifrk_key; - self.ifrk_name == other.ifrk_name && - self.ifrk_func == other.ifrk_func && - self.ifrk_spare0 == other.ifrk_spare0 && - self.ifrk_keylen == other.ifrk_keylen && - self_ifrk_key == other_ifrk_key + self.ifrk_name == other.ifrk_name + && self.ifrk_func == other.ifrk_func + && self.ifrk_spare0 == other.ifrk_spare0 + && self.ifrk_keylen == other.ifrk_keylen + && self_ifrk_key == other_ifrk_key } } impl Eq for ifrsskey {} @@ -2077,10 +2070,10 @@ cfg_if! { let self_ifdr_msg: &[::c_char] = &self.ifdr_msg; let other_ifdr_msg: &[::c_char] = &other.ifdr_msg; - self.ifdr_name == other.ifdr_name && - self.ifdr_reason == other.ifdr_reason && - self.ifdr_vendor == other.ifdr_vendor && - self_ifdr_msg == other_ifdr_msg + self.ifdr_name == other.ifdr_name + && self.ifdr_reason == other.ifdr_reason + && self.ifdr_vendor == other.ifdr_vendor + && self_ifdr_msg == other_ifdr_msg } } impl Eq for ifdownreason {} @@ -2107,10 +2100,7 @@ cfg_if! { impl PartialEq for __c_anonymous_ifi_epoch { fn eq(&self, other: &__c_anonymous_ifi_epoch) -> bool { - unsafe { - self.tt == other.tt && - self.ph == other.ph - } + unsafe { self.tt == other.tt && self.ph == other.ph } } } impl Eq for __c_anonymous_ifi_epoch {} @@ -2133,10 +2123,7 @@ cfg_if! { impl PartialEq for __c_anonymous_ifi_lastchange { fn eq(&self, other: &__c_anonymous_ifi_lastchange) -> bool { - unsafe { - self.tv == other.tv && - self.ph == other.ph - } + unsafe { self.tv == other.tv && self.ph == other.ph } } } impl Eq for __c_anonymous_ifi_lastchange {} @@ -2159,31 +2146,31 @@ cfg_if! { impl PartialEq for if_data { fn eq(&self, other: &if_data) -> bool { - self.ifi_type == other.ifi_type && - self.ifi_physical == other.ifi_physical && - self.ifi_addrlen == other.ifi_addrlen && - self.ifi_hdrlen == other.ifi_hdrlen && - self.ifi_link_state == other.ifi_link_state && - self.ifi_vhid == other.ifi_vhid && - self.ifi_datalen == other.ifi_datalen && - self.ifi_mtu == other.ifi_mtu && - self.ifi_metric == other.ifi_metric && - self.ifi_baudrate == other.ifi_baudrate && - self.ifi_ipackets == other.ifi_ipackets && - self.ifi_ierrors == other.ifi_ierrors && - self.ifi_opackets == other.ifi_opackets && - self.ifi_oerrors == other.ifi_oerrors && - self.ifi_collisions == other.ifi_collisions && - self.ifi_ibytes == other.ifi_ibytes && - self.ifi_obytes == other.ifi_obytes && - self.ifi_imcasts == other.ifi_imcasts && - self.ifi_omcasts == other.ifi_omcasts && - self.ifi_iqdrops == other.ifi_iqdrops && - self.ifi_oqdrops == other.ifi_oqdrops && - self.ifi_noproto == other.ifi_noproto && - self.ifi_hwassist == other.ifi_hwassist && - self.__ifi_epoch == other.__ifi_epoch && - self.__ifi_lastchange == other.__ifi_lastchange + self.ifi_type == other.ifi_type + && self.ifi_physical == other.ifi_physical + && self.ifi_addrlen == other.ifi_addrlen + && self.ifi_hdrlen == other.ifi_hdrlen + && self.ifi_link_state == other.ifi_link_state + && self.ifi_vhid == other.ifi_vhid + && self.ifi_datalen == other.ifi_datalen + && self.ifi_mtu == other.ifi_mtu + && self.ifi_metric == other.ifi_metric + && self.ifi_baudrate == other.ifi_baudrate + && self.ifi_ipackets == other.ifi_ipackets + && self.ifi_ierrors == other.ifi_ierrors + && self.ifi_opackets == other.ifi_opackets + && self.ifi_oerrors == other.ifi_oerrors + && self.ifi_collisions == other.ifi_collisions + && self.ifi_ibytes == other.ifi_ibytes + && self.ifi_obytes == other.ifi_obytes + && self.ifi_imcasts == other.ifi_imcasts + && self.ifi_omcasts == other.ifi_omcasts + && self.ifi_iqdrops == other.ifi_iqdrops + && self.ifi_oqdrops == other.ifi_oqdrops + && self.ifi_noproto == other.ifi_noproto + && self.ifi_hwassist == other.ifi_hwassist + && self.__ifi_epoch == other.__ifi_epoch + && self.__ifi_lastchange == other.__ifi_lastchange } } impl Eq for if_data {} @@ -2250,313 +2237,319 @@ cfg_if! { impl PartialEq for sctphdr { fn eq(&self, other: &sctphdr) -> bool { - return {self.src_port} == {other.src_port} && - {self.dest_port} == {other.dest_port} && - {self.v_tag} == {other.v_tag} && - {self.checksum} == {other.checksum} + return { self.src_port } == { other.src_port } + && { self.dest_port } == { other.dest_port } + && { self.v_tag } == { other.v_tag } + && { self.checksum } == { other.checksum }; } } impl Eq for sctphdr {} impl ::fmt::Debug for sctphdr { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("sctphdr") - .field("src_port", &{self.src_port}) - .field("dest_port", &{self.dest_port}) - .field("v_tag", &{self.v_tag}) - .field("checksum", &{self.checksum}) + .field("src_port", &{ self.src_port }) + .field("dest_port", &{ self.dest_port }) + .field("v_tag", &{ self.v_tag }) + .field("checksum", &{ self.checksum }) .finish() } } impl ::hash::Hash for sctphdr { fn hash(&self, state: &mut H) { - {self.src_port}.hash(state); - {self.dest_port}.hash(state); - {self.v_tag}.hash(state); - {self.checksum}.hash(state); + { self.src_port }.hash(state); + { self.dest_port }.hash(state); + { self.v_tag }.hash(state); + { self.checksum }.hash(state); } } impl PartialEq for sctp_chunkhdr { fn eq(&self, other: &sctp_chunkhdr) -> bool { - return {self.chunk_type} == {other.chunk_type} && - {self.chunk_flags} == {other.chunk_flags} && - {self.chunk_length} == {other.chunk_length} + return { self.chunk_type } == { other.chunk_type } + && { self.chunk_flags } == { other.chunk_flags } + && { self.chunk_length } == { other.chunk_length }; } } impl Eq for sctp_chunkhdr {} impl ::fmt::Debug for sctp_chunkhdr { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("sctp_chunkhdr") - .field("chunk_type", &{self.chunk_type}) - .field("chunk_flags", &{self.chunk_flags}) - .field("chunk_length", &{self.chunk_length}) + .field("chunk_type", &{ self.chunk_type }) + .field("chunk_flags", &{ self.chunk_flags }) + .field("chunk_length", &{ self.chunk_length }) .finish() } } impl ::hash::Hash for sctp_chunkhdr { fn hash(&self, state: &mut H) { - {self.chunk_type}.hash(state); - {self.chunk_flags}.hash(state); - {self.chunk_length}.hash(state); + { self.chunk_type }.hash(state); + { self.chunk_flags }.hash(state); + { self.chunk_length }.hash(state); } } impl PartialEq for sctp_paramhdr { fn eq(&self, other: &sctp_paramhdr) -> bool { - return {self.param_type} == {other.param_type} && - {self.param_length} == {other.param_length} + return { self.param_type } == { other.param_type } && { self.param_length } == { + other.param_length + }; } } impl Eq for sctp_paramhdr {} impl ::fmt::Debug for sctp_paramhdr { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("sctp_paramhdr") - .field("param_type", &{self.param_type}) - .field("param_length", &{self.param_length}) + .field("param_type", &{ self.param_type }) + .field("param_length", &{ self.param_length }) .finish() } } impl ::hash::Hash for sctp_paramhdr { fn hash(&self, state: &mut H) { - {self.param_type}.hash(state); - {self.param_length}.hash(state); + { self.param_type }.hash(state); + { self.param_length }.hash(state); } } impl PartialEq for sctp_gen_error_cause { fn eq(&self, other: &sctp_gen_error_cause) -> bool { - return {self.code} == {other.code} && - {self.length} == {other.length} && - {self.info}.iter().zip({other.info}.iter()).all(|(a,b)| a == b) + return { self.code } == { other.code } && { self.length } == { other.length } && { + self.info + } + .iter() + .zip({ other.info }.iter()) + .all(|(a, b)| a == b); } } impl Eq for sctp_gen_error_cause {} impl ::fmt::Debug for sctp_gen_error_cause { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("sctp_gen_error_cause") - .field("code", &{self.code}) - .field("length", &{self.length}) + .field("code", &{ self.code }) + .field("length", &{ self.length }) // FIXME: .field("info", &{self.info}) .finish() } } impl ::hash::Hash for sctp_gen_error_cause { fn hash(&self, state: &mut H) { - {self.code}.hash(state); - {self.length}.hash(state); - {self.info}.hash(state); + { self.code }.hash(state); + { self.length }.hash(state); + { self.info }.hash(state); } } impl PartialEq for sctp_error_cause { fn eq(&self, other: &sctp_error_cause) -> bool { - return {self.code} == {other.code} && - {self.length} == {other.length} + return { self.code } == { other.code } && { self.length } == { other.length }; } } impl Eq for sctp_error_cause {} impl ::fmt::Debug for sctp_error_cause { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("sctp_error_cause") - .field("code", &{self.code}) - .field("length", &{self.length}) + .field("code", &{ self.code }) + .field("length", &{ self.length }) .finish() } } impl ::hash::Hash for sctp_error_cause { fn hash(&self, state: &mut H) { - {self.code}.hash(state); - {self.length}.hash(state); + { self.code }.hash(state); + { self.length }.hash(state); } } impl PartialEq for sctp_error_invalid_stream { fn eq(&self, other: &sctp_error_invalid_stream) -> bool { - return {self.cause} == {other.cause} && - {self.stream_id} == {other.stream_id} + return { self.cause } == { other.cause } && { self.stream_id } == { + other.stream_id + }; } } impl Eq for sctp_error_invalid_stream {} impl ::fmt::Debug for sctp_error_invalid_stream { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("sctp_error_invalid_stream") - .field("cause", &{self.cause}) - .field("stream_id", &{self.stream_id}) + .field("cause", &{ self.cause }) + .field("stream_id", &{ self.stream_id }) .finish() } } impl ::hash::Hash for sctp_error_invalid_stream { fn hash(&self, state: &mut H) { - {self.cause}.hash(state); - {self.stream_id}.hash(state); + { self.cause }.hash(state); + { self.stream_id }.hash(state); } } impl PartialEq for sctp_error_missing_param { fn eq(&self, other: &sctp_error_missing_param) -> bool { - return {self.cause} == {other.cause} && - {self.num_missing_params} == {other.num_missing_params} && - {self.tpe}.iter().zip({other.tpe}.iter()).all(|(a,b)| a == b) + return { self.cause } == { other.cause } + && { self.num_missing_params } == { other.num_missing_params } + && { self.tpe } + .iter() + .zip({ other.tpe }.iter()) + .all(|(a, b)| a == b); } } impl Eq for sctp_error_missing_param {} impl ::fmt::Debug for sctp_error_missing_param { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("sctp_error_missing_param") - .field("cause", &{self.cause}) - .field("num_missing_params", &{self.num_missing_params}) + .field("cause", &{ self.cause }) + .field("num_missing_params", &{ self.num_missing_params }) // FIXME: .field("tpe", &{self.tpe}) .finish() } } impl ::hash::Hash for sctp_error_missing_param { fn hash(&self, state: &mut H) { - {self.cause}.hash(state); - {self.num_missing_params}.hash(state); - {self.tpe}.hash(state); + { self.cause }.hash(state); + { self.num_missing_params }.hash(state); + { self.tpe }.hash(state); } } impl PartialEq for sctp_error_stale_cookie { fn eq(&self, other: &sctp_error_stale_cookie) -> bool { - return {self.cause} == {other.cause} && - {self.stale_time} == {other.stale_time} + return { self.cause } == { other.cause } && { self.stale_time } == { + other.stale_time + }; } } impl Eq for sctp_error_stale_cookie {} impl ::fmt::Debug for sctp_error_stale_cookie { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("sctp_error_stale_cookie") - .field("cause", &{self.cause}) - .field("stale_time", &{self.stale_time}) + .field("cause", &{ self.cause }) + .field("stale_time", &{ self.stale_time }) .finish() } } impl ::hash::Hash for sctp_error_stale_cookie { fn hash(&self, state: &mut H) { - {self.cause}.hash(state); - {self.stale_time}.hash(state); + { self.cause }.hash(state); + { self.stale_time }.hash(state); } } impl PartialEq for sctp_error_out_of_resource { fn eq(&self, other: &sctp_error_out_of_resource) -> bool { - return {self.cause} == {other.cause} + return { self.cause } == { other.cause }; } } impl Eq for sctp_error_out_of_resource {} impl ::fmt::Debug for sctp_error_out_of_resource { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("sctp_error_out_of_resource") - .field("cause", &{self.cause}) + .field("cause", &{ self.cause }) .finish() } } impl ::hash::Hash for sctp_error_out_of_resource { fn hash(&self, state: &mut H) { - {self.cause}.hash(state); + { self.cause }.hash(state); } } impl PartialEq for sctp_error_unresolv_addr { fn eq(&self, other: &sctp_error_unresolv_addr) -> bool { - return {self.cause} == {other.cause} + return { self.cause } == { other.cause }; } } impl Eq for sctp_error_unresolv_addr {} impl ::fmt::Debug for sctp_error_unresolv_addr { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("sctp_error_unresolv_addr") - .field("cause", &{self.cause}) + .field("cause", &{ self.cause }) .finish() } } impl ::hash::Hash for sctp_error_unresolv_addr { fn hash(&self, state: &mut H) { - {self.cause}.hash(state); + { self.cause }.hash(state); } } impl PartialEq for sctp_error_unrecognized_chunk { fn eq(&self, other: &sctp_error_unrecognized_chunk) -> bool { - return {self.cause} == {other.cause} && - {self.ch} == {other.ch} + return { self.cause } == { other.cause } && { self.ch } == { other.ch }; } } impl Eq for sctp_error_unrecognized_chunk {} impl ::fmt::Debug for sctp_error_unrecognized_chunk { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("sctp_error_unrecognized_chunk") - .field("cause", &{self.cause}) - .field("ch", &{self.ch}) + .field("cause", &{ self.cause }) + .field("ch", &{ self.ch }) .finish() } } impl ::hash::Hash for sctp_error_unrecognized_chunk { fn hash(&self, state: &mut H) { - {self.cause}.hash(state); - {self.ch}.hash(state); + { self.cause }.hash(state); + { self.ch }.hash(state); } } impl PartialEq for sctp_error_no_user_data { fn eq(&self, other: &sctp_error_no_user_data) -> bool { - return {self.cause} == {other.cause} && - {self.tsn} == {other.tsn} + return { self.cause } == { other.cause } && { self.tsn } == { other.tsn }; } } impl Eq for sctp_error_no_user_data {} impl ::fmt::Debug for sctp_error_no_user_data { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("sctp_error_no_user_data") - .field("cause", &{self.cause}) - .field("tsn", &{self.tsn}) + .field("cause", &{ self.cause }) + .field("tsn", &{ self.tsn }) .finish() } } impl ::hash::Hash for sctp_error_no_user_data { fn hash(&self, state: &mut H) { - {self.cause}.hash(state); - {self.tsn}.hash(state); + { self.cause }.hash(state); + { self.tsn }.hash(state); } } impl PartialEq for sctp_error_auth_invalid_hmac { fn eq(&self, other: &sctp_error_auth_invalid_hmac) -> bool { - return {self.cause} == {other.cause} && - {self.hmac_id} == {other.hmac_id} + return { self.cause } == { other.cause } && { self.hmac_id } == { other.hmac_id }; } } impl Eq for sctp_error_auth_invalid_hmac {} impl ::fmt::Debug for sctp_error_auth_invalid_hmac { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("sctp_error_invalid_hmac") - .field("cause", &{self.cause}) - .field("hmac_id", &{self.hmac_id}) + .field("cause", &{ self.cause }) + .field("hmac_id", &{ self.hmac_id }) .finish() } } impl ::hash::Hash for sctp_error_auth_invalid_hmac { fn hash(&self, state: &mut H) { - {self.cause}.hash(state); - {self.hmac_id}.hash(state); + { self.cause }.hash(state); + { self.hmac_id }.hash(state); } } impl PartialEq for kinfo_file { fn eq(&self, other: &kinfo_file) -> bool { - self.kf_structsize == other.kf_structsize && - self.kf_type == other.kf_type && - self.kf_fd == other.kf_fd && - self.kf_ref_count == other.kf_ref_count && - self.kf_flags == other.kf_flags && - self.kf_offset == other.kf_offset && - self.kf_status == other.kf_status && - self.kf_cap_rights == other.kf_cap_rights && - self.kf_path + self.kf_structsize == other.kf_structsize + && self.kf_type == other.kf_type + && self.kf_fd == other.kf_fd + && self.kf_ref_count == other.kf_ref_count + && self.kf_flags == other.kf_flags + && self.kf_offset == other.kf_offset + && self.kf_status == other.kf_status + && self.kf_cap_rights == other.kf_cap_rights + && self + .kf_path .iter() .zip(other.kf_path.iter()) - .all(|(a,b)| a == b) + .all(|(a, b)| a == b) } } impl Eq for kinfo_file {} @@ -4920,35 +4913,30 @@ const_fn! { f! { pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar) - .offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + (cmsg as *mut ::c_uchar).offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) } pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { _ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length } - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) - -> *mut ::cmsghdr - { + pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { if cmsg.is_null() { return ::CMSG_FIRSTHDR(mhdr); }; - let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + let next = cmsg as usize + + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(::mem::size_of::<::cmsghdr>()); - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; + let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { 0 as *mut ::cmsghdr } else { - (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) - as *mut ::cmsghdr + (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) as *mut ::cmsghdr } } pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (_ALIGN(::mem::size_of::<::cmsghdr>()) + _ALIGN(length as usize)) - as ::c_uint + (_ALIGN(::mem::size_of::<::cmsghdr>()) + _ALIGN(length as usize)) as ::c_uint } pub fn MALLOCX_ALIGN(lg: ::c_uint) -> ::c_int { @@ -4964,11 +4952,7 @@ f! { } pub fn SOCKCREDSIZE(ngrps: usize) -> usize { - let ngrps = if ngrps > 0 { - ngrps - 1 - } else { - 0 - }; + let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 }; ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps } @@ -5015,16 +4999,12 @@ f! { for i in cpuset.__bits[..(cpuset_size / bitset_size)].iter() { s += i.count_ones(); - }; + } s as ::c_int } pub fn SOCKCRED2SIZE(ngrps: usize) -> usize { - let ngrps = if ngrps > 0 { - ngrps - 1 - } else { - 0 - }; + let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 }; ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps } @@ -5043,8 +5023,15 @@ safe_f! { } pub {const} fn INVALID_SINFO_FLAG(x: ::c_int) -> bool { - (x) & 0xfffffff0 & !(SCTP_EOF | SCTP_ABORT | SCTP_UNORDERED | - SCTP_ADDR_OVER | SCTP_SENDALL | SCTP_EOR | SCTP_SACK_IMMEDIATELY) != 0 + (x) & 0xfffffff0 + & !(SCTP_EOF + | SCTP_ABORT + | SCTP_UNORDERED + | SCTP_ADDR_OVER + | SCTP_SENDALL + | SCTP_EOR + | SCTP_SACK_IMMEDIATELY) + != 0 } pub {const} fn PR_SCTP_POLICY(x: ::c_int) -> ::c_int { diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs index e37272680d43c..0c2e3a668bf9a 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs @@ -26,15 +26,15 @@ cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for mcontext_t { fn eq(&self, other: &mcontext_t) -> bool { - self.mc_vers == other.mc_vers && - self.mc_flags == other.mc_flags && - self.mc_onstack == other.mc_onstack && - self.mc_len == other.mc_len && - self.mc_avec == other.mc_avec && - self.mc_av == other.mc_av && - self.mc_frame == other.mc_frame && - self.mc_fpreg == other.mc_fpreg && - self.mc_vsxfpreg == other.mc_vsxfpreg + self.mc_vers == other.mc_vers + && self.mc_flags == other.mc_flags + && self.mc_onstack == other.mc_onstack + && self.mc_len == other.mc_len + && self.mc_avec == other.mc_avec + && self.mc_av == other.mc_av + && self.mc_frame == other.mc_frame + && self.mc_fpreg == other.mc_fpreg + && self.mc_vsxfpreg == other.mc_vsxfpreg } } impl Eq for mcontext_t {} diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs index 372639f1d1cce..b1e76001370e1 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs @@ -26,15 +26,15 @@ cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for mcontext_t { fn eq(&self, other: &mcontext_t) -> bool { - self.mc_vers == other.mc_vers && - self.mc_flags == other.mc_flags && - self.mc_onstack == other.mc_onstack && - self.mc_len == other.mc_len && - self.mc_avec == other.mc_avec && - self.mc_av == other.mc_av && - self.mc_frame == other.mc_frame && - self.mc_fpreg == other.mc_fpreg && - self.mc_vsxfpreg == other.mc_vsxfpreg + self.mc_vers == other.mc_vers + && self.mc_flags == other.mc_flags + && self.mc_onstack == other.mc_onstack + && self.mc_len == other.mc_len + && self.mc_avec == other.mc_avec + && self.mc_av == other.mc_av + && self.mc_frame == other.mc_frame + && self.mc_fpreg == other.mc_fpreg + && self.mc_vsxfpreg == other.mc_vsxfpreg } } impl Eq for mcontext_t {} diff --git a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs index 8be949df01583..143393e5c56ae 100644 --- a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs @@ -40,15 +40,15 @@ cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for gpregs { fn eq(&self, other: &gpregs) -> bool { - self.gp_ra == other.gp_ra && - self.gp_sp == other.gp_sp && - self.gp_gp == other.gp_gp && - self.gp_tp == other.gp_tp && - self.gp_t.iter().zip(other.gp_t.iter()).all(|(a, b)| a == b) && - self.gp_s.iter().zip(other.gp_s.iter()).all(|(a, b)| a == b) && - self.gp_a.iter().zip(other.gp_a.iter()).all(|(a, b)| a == b) && - self.gp_sepc == other.gp_sepc && - self.gp_sstatus == other.gp_sstatus + self.gp_ra == other.gp_ra + && self.gp_sp == other.gp_sp + && self.gp_gp == other.gp_gp + && self.gp_tp == other.gp_tp + && self.gp_t.iter().zip(other.gp_t.iter()).all(|(a, b)| a == b) + && self.gp_s.iter().zip(other.gp_s.iter()).all(|(a, b)| a == b) + && self.gp_a.iter().zip(other.gp_a.iter()).all(|(a, b)| a == b) + && self.gp_sepc == other.gp_sepc + && self.gp_sstatus == other.gp_sstatus } } impl Eq for gpregs {} @@ -82,10 +82,10 @@ cfg_if! { } impl PartialEq for fpregs { fn eq(&self, other: &fpregs) -> bool { - self.fp_x == other.fp_x && - self.fp_fcsr == other.fp_fcsr && - self.fp_flags == other.fp_flags && - self.fp_pad == other.fp_pad + self.fp_x == other.fp_x + && self.fp_fcsr == other.fp_fcsr + && self.fp_flags == other.fp_flags + && self.fp_pad == other.fp_pad } } impl Eq for fpregs {} @@ -109,11 +109,15 @@ cfg_if! { } impl PartialEq for mcontext_t { fn eq(&self, other: &mcontext_t) -> bool { - self.mc_gpregs == other.mc_gpregs && - self.mc_fpregs == other.mc_fpregs && - self.mc_flags == other.mc_flags && - self.mc_pad == other.mc_pad && - self.mc_spare.iter().zip(other.mc_spare.iter()).all(|(a, b)| a == b) + self.mc_gpregs == other.mc_gpregs + && self.mc_fpregs == other.mc_fpregs + && self.mc_flags == other.mc_flags + && self.mc_pad == other.mc_pad + && self + .mc_spare + .iter() + .zip(other.mc_spare.iter()) + .all(|(a, b)| a == b) } } impl Eq for mcontext_t {} diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index f65f9e99190b8..9aaeff66cc6e0 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -47,36 +47,44 @@ 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) + 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 {} diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index 1e61db61c7cd3..093b3e87b6b26 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -96,7 +96,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [f64; 4] + priv_: [f64; 4], } #[repr(align(16))] @@ -146,13 +146,14 @@ cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for fpreg32 { fn eq(&self, other: &fpreg32) -> bool { - self.fpr_env == other.fpr_env && - self.fpr_acc == other.fpr_acc && - self.fpr_ex_sw == other.fpr_ex_sw && - self.fpr_pad + self.fpr_env == other.fpr_env + && self.fpr_acc == other.fpr_acc + && self.fpr_ex_sw == other.fpr_ex_sw + && self + .fpr_pad .iter() .zip(other.fpr_pad.iter()) - .all(|(a,b)| a == b) + .all(|(a, b)| a == b) } } impl Eq for fpreg32 {} @@ -177,10 +178,10 @@ cfg_if! { impl PartialEq for fpreg { fn eq(&self, other: &fpreg) -> bool { - self.fpr_env == other.fpr_env && - self.fpr_acc == other.fpr_acc && - self.fpr_xacc == other.fpr_xacc && - self.fpr_spare == other.fpr_spare + self.fpr_env == other.fpr_env + && self.fpr_acc == other.fpr_acc + && self.fpr_xacc == other.fpr_xacc + && self.fpr_spare == other.fpr_spare } } impl Eq for fpreg {} @@ -205,13 +206,14 @@ cfg_if! { impl PartialEq for xmmreg { fn eq(&self, other: &xmmreg) -> bool { - self.xmm_env == other.xmm_env && - self.xmm_acc == other.xmm_acc && - self.xmm_reg == other.xmm_reg && - self.xmm_pad + self.xmm_env == other.xmm_env + && self.xmm_acc == other.xmm_acc + && self.xmm_reg == other.xmm_reg + && self + .xmm_pad .iter() .zip(other.xmm_pad.iter()) - .all(|(a,b)| a == b) + .all(|(a, b)| a == b) } } impl Eq for xmmreg {} @@ -236,9 +238,11 @@ cfg_if! { impl PartialEq for __c_anonymous_elf64_auxv_union { fn eq(&self, other: &__c_anonymous_elf64_auxv_union) -> bool { - unsafe { self.a_val == other.a_val + unsafe { + self.a_val == other.a_val || self.a_ptr == other.a_ptr - || self.a_fcn == other.a_fcn } + || self.a_fcn == other.a_fcn + } } } impl Eq for __c_anonymous_elf64_auxv_union {} @@ -251,8 +255,7 @@ cfg_if! { } impl PartialEq for Elf64_Auxinfo { fn eq(&self, other: &Elf64_Auxinfo) -> bool { - self.a_type == other.a_type - && self.a_un == other.a_un + self.a_type == other.a_type && self.a_un == other.a_un } } impl Eq for Elf64_Auxinfo {} @@ -265,48 +268,50 @@ cfg_if! { } } - impl PartialEq for mcontext_t { fn eq(&self, other: &mcontext_t) -> bool { - self.mc_onstack == other.mc_onstack && - self.mc_rdi == other.mc_rdi && - self.mc_rsi == other.mc_rsi && - self.mc_rdx == other.mc_rdx && - self.mc_rcx == other.mc_rcx && - self.mc_r8 == other.mc_r8 && - self.mc_r9 == other.mc_r9 && - self.mc_rax == other.mc_rax && - self.mc_rbx == other.mc_rbx && - self.mc_rbp == other.mc_rbp && - self.mc_r10 == other.mc_r10 && - self.mc_r11 == other.mc_r11 && - self.mc_r12 == other.mc_r12 && - self.mc_r13 == other.mc_r13 && - self.mc_r14 == other.mc_r14 && - self.mc_r15 == other.mc_r15 && - self.mc_trapno == other.mc_trapno && - self.mc_fs == other.mc_fs && - self.mc_gs == other.mc_gs && - self.mc_addr == other.mc_addr && - self.mc_flags == other.mc_flags && - self.mc_es == other.mc_es && - self.mc_ds == other.mc_ds && - self.mc_err == other.mc_err && - self.mc_rip == other.mc_rip && - self.mc_cs == other.mc_cs && - self.mc_rflags == other.mc_rflags && - self.mc_rsp == other.mc_rsp && - 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_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_spare == other.mc_spare + self.mc_onstack == other.mc_onstack + && self.mc_rdi == other.mc_rdi + && self.mc_rsi == other.mc_rsi + && self.mc_rdx == other.mc_rdx + && self.mc_rcx == other.mc_rcx + && self.mc_r8 == other.mc_r8 + && self.mc_r9 == other.mc_r9 + && self.mc_rax == other.mc_rax + && self.mc_rbx == other.mc_rbx + && self.mc_rbp == other.mc_rbp + && self.mc_r10 == other.mc_r10 + && self.mc_r11 == other.mc_r11 + && self.mc_r12 == other.mc_r12 + && self.mc_r13 == other.mc_r13 + && self.mc_r14 == other.mc_r14 + && self.mc_r15 == other.mc_r15 + && self.mc_trapno == other.mc_trapno + && self.mc_fs == other.mc_fs + && self.mc_gs == other.mc_gs + && self.mc_addr == other.mc_addr + && self.mc_flags == other.mc_flags + && self.mc_es == other.mc_es + && self.mc_ds == other.mc_ds + && self.mc_err == other.mc_err + && self.mc_rip == other.mc_rip + && self.mc_cs == other.mc_cs + && self.mc_rflags == other.mc_rflags + && self.mc_rsp == other.mc_rsp + && 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_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_spare == other.mc_spare } } impl Eq for mcontext_t {} diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 9b7b560fc7cff..0ef069c8a4fd4 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -107,11 +107,11 @@ s! { } pub struct glob_t { - pub gl_pathc: ::size_t, + pub gl_pathc: ::size_t, pub gl_matchc: ::size_t, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - pub gl_pathv: *mut *mut ::c_char, + pub gl_offs: ::size_t, + pub gl_flags: ::c_int, + pub gl_pathv: *mut *mut ::c_char, __unused3: *mut ::c_void, __unused4: *mut ::c_void, __unused5: *mut ::c_void, @@ -401,10 +401,10 @@ cfg_if! { && self.__ss_pad1 == other.__ss_pad1 && self.__ss_align == other.__ss_align && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) + .__ss_pad2 + .iter() + .zip(other.__ss_pad2.iter()) + .all(|(a, b)| a == b) } } impl Eq for sockaddr_storage {} diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 4eb79fb223eaa..77271c38f50c4 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -35,13 +35,15 @@ s! { pub pw_shell: *mut ::c_char, pub pw_expire: ::time_t, - #[cfg(not(any(target_os = "macos", - target_os = "ios", - target_os = "tvos", - target_os = "watchos", - target_os = "visionos", - target_os = "netbsd", - target_os = "openbsd")))] + #[cfg(not(any( + target_os = "macos", + target_os = "ios", + target_os = "tvos", + target_os = "watchos", + target_os = "visionos", + target_os = "netbsd", + target_os = "openbsd" + )))] pub pw_fields: ::c_int, } @@ -54,15 +56,19 @@ s! { pub ifa_dstaddr: *mut ::sockaddr, pub ifa_data: *mut ::c_void, #[cfg(target_os = "netbsd")] - pub ifa_addrflags: ::c_uint + pub ifa_addrflags: ::c_uint, } pub struct fd_set { - #[cfg(all(target_pointer_width = "64", - any(target_os = "freebsd", target_os = "dragonfly")))] + #[cfg(all( + target_pointer_width = "64", + any(target_os = "freebsd", target_os = "dragonfly") + ))] fds_bits: [i64; FD_SETSIZE as usize / 64], - #[cfg(not(all(target_pointer_width = "64", - any(target_os = "freebsd", target_os = "dragonfly"))))] + #[cfg(not(all( + target_pointer_width = "64", + any(target_os = "freebsd", target_os = "dragonfly") + )))] fds_bits: [i32; FD_SETSIZE as usize / 32], } @@ -129,7 +135,7 @@ s_no_extra_traits! { pub struct sockaddr_un { pub sun_len: u8, pub sun_family: sa_family_t, - pub sun_path: [::c_char; 104] + pub sun_path: [::c_char; 104], } pub struct utsname { @@ -154,7 +160,6 @@ s_no_extra_traits! { #[cfg(target_os = "dragonfly")] pub machine: [::c_char; 32], } - } cfg_if! { @@ -164,10 +169,10 @@ cfg_if! { self.sun_len == other.sun_len && self.sun_family == other.sun_family && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a,b)| a == b) + .sun_path + .iter() + .zip(other.sun_path.iter()) + .all(|(a, b)| a == b) } } @@ -178,7 +183,7 @@ cfg_if! { f.debug_struct("sockaddr_un") .field("sun_len", &self.sun_len) .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) + // FIXME: .field("sun_path", &self.sun_path) .finish() } } @@ -196,27 +201,27 @@ cfg_if! { self.sysname .iter() .zip(other.sysname.iter()) - .all(|(a,b)| a == b) + .all(|(a, b)| a == b) && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a,b)| a == b) + .nodename + .iter() + .zip(other.nodename.iter()) + .all(|(a, b)| a == b) && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a,b)| a == b) + .release + .iter() + .zip(other.release.iter()) + .all(|(a, b)| a == b) && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a,b)| a == b) + .version + .iter() + .zip(other.version.iter()) + .all(|(a, b)| a == b) && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a,b)| a == b) + .machine + .iter() + .zip(other.machine.iter()) + .all(|(a, b)| a == b) } } @@ -225,11 +230,11 @@ cfg_if! { impl ::fmt::Debug for utsname { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("utsname") - // FIXME: .field("sysname", &self.sysname) - // FIXME: .field("nodename", &self.nodename) - // FIXME: .field("release", &self.release) - // FIXME: .field("version", &self.version) - // FIXME: .field("machine", &self.machine) + // FIXME: .field("sysname", &self.sysname) + // FIXME: .field("nodename", &self.nodename) + // FIXME: .field("release", &self.release) + // FIXME: .field("version", &self.version) + // FIXME: .field("machine", &self.machine) .finish() } } @@ -599,20 +604,20 @@ f! { let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); - return + return; } pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; - return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0 + return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0; } pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] |= 1 << (fd % bits); - return + return; } pub fn FD_ZERO(set: *mut fd_set) -> () { @@ -962,7 +967,13 @@ extern "C" { } cfg_if! { - if #[cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos", target_os = "watchos", target_os = "visionos"))] { + if #[cfg(any( + target_os = "macos", + target_os = "ios", + target_os = "tvos", + target_os = "watchos", + target_os = "visionos" + ))] { mod apple; pub use self::apple::*; } else if #[cfg(any(target_os = "openbsd", target_os = "netbsd"))] { diff --git a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs index e285d0617ce20..4cdcb070095eb 100644 --- a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs @@ -44,11 +44,11 @@ cfg_if! { impl PartialEq for __c_anonymous__freg { fn eq(&self, other: &__c_anonymous__freg) -> bool { unsafe { - self.__b8 == other.__b8 - || self.__h16 == other.__h16 - || self.__s32 == other.__s32 - || self.__d64 == other.__d64 - || self.__q128 == other.__q128 + self.__b8 == other.__b8 + || self.__h16 == other.__h16 + || self.__s32 == other.__s32 + || self.__d64 == other.__d64 + || self.__q128 == other.__q128 } } } @@ -56,24 +56,24 @@ cfg_if! { impl ::fmt::Debug for __c_anonymous__freg { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { unsafe { - f.debug_struct("__c_anonymous__freg") - .field("__b8", &self.__b8) - .field("__h16", &self.__h16) - .field("__s32", &self.__s32) - .field("__d64", &self.__d64) - .field("__q128", &self.__q128) - .finish() + f.debug_struct("__c_anonymous__freg") + .field("__b8", &self.__b8) + .field("__h16", &self.__h16) + .field("__s32", &self.__s32) + .field("__d64", &self.__d64) + .field("__q128", &self.__q128) + .finish() } } } impl ::hash::Hash for __c_anonymous__freg { fn hash(&self, state: &mut H) { unsafe { - self.__b8.hash(state); - self.__h16.hash(state); - self.__s32.hash(state); - self.__d64.hash(state); - self.__q128.hash(state); + self.__b8.hash(state); + self.__h16.hash(state); + self.__s32.hash(state); + self.__d64.hash(state); + self.__q128.hash(state); } } } diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index f3b76aece80dd..84358eb06dc81 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -136,15 +136,15 @@ s! { pub aio_sigevent: ::sigevent, _state: ::c_int, _errno: ::c_int, - _retval: ::ssize_t + _retval: ::ssize_t, } pub struct glob_t { - pub gl_pathc: ::size_t, - pub gl_matchc: ::size_t, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - pub gl_pathv: *mut *mut ::c_char, + pub gl_pathc: ::size_t, + pub gl_matchc: ::size_t, + pub gl_offs: ::size_t, + pub gl_flags: ::c_int, + pub gl_pathv: *mut *mut ::c_char, __unused3: *mut ::c_void, @@ -224,13 +224,21 @@ s! { pub struct pthread_mutex_t { ptm_magic: ::c_uint, ptm_errorcheck: __pthread_spin_t, - #[cfg(any(target_arch = "sparc", target_arch = "sparc64", - target_arch = "x86", target_arch = "x86_64"))] + #[cfg(any( + target_arch = "sparc", + target_arch = "sparc64", + target_arch = "x86", + target_arch = "x86_64" + ))] ptm_pad1: [u8; 3], // actually a union with a non-unused, 0-initialized field ptm_unused: __pthread_spin_t, - #[cfg(any(target_arch = "sparc", target_arch = "sparc64", - target_arch = "x86", target_arch = "x86_64"))] + #[cfg(any( + target_arch = "sparc", + target_arch = "sparc64", + target_arch = "x86", + target_arch = "x86_64" + ))] ptm_pad2: [u8; 3], ptm_owner: ::pthread_t, ptm_waiters: *mut u8, @@ -422,13 +430,13 @@ s! { pub ut_line: [::c_char; UT_LINESIZE], pub ut_name: [::c_char; UT_NAMESIZE], pub ut_host: [::c_char; UT_HOSTSIZE], - pub ut_time: ::time_t + pub ut_time: ::time_t, } pub struct lastlog { pub ll_line: [::c_char; UT_LINESIZE], pub ll_host: [::c_char; UT_HOSTSIZE], - pub ll_time: ::time_t + pub ll_time: ::time_t, } pub struct timex { @@ -507,7 +515,7 @@ s! { } pub struct _cpuset { - bits: [u32; 0] + bits: [u32; 0], } pub struct accept_filter_arg { @@ -780,7 +788,6 @@ s! { } s_no_extra_traits! { - pub struct utmpx { pub ut_name: [::c_char; _UTX_USERSIZE], pub ut_id: [::c_char; _UTX_IDSIZE], @@ -886,8 +893,8 @@ s_no_extra_traits! { pub sigev_notify: ::c_int, pub sigev_signo: ::c_int, pub sigev_value: ::sigval, - __unused1: *mut ::c_void, //actually a function pointer - pub sigev_notify_attributes: *mut ::c_void + __unused1: *mut ::c_void, //actually a function pointer + pub sigev_notify_attributes: *mut ::c_void, } pub union __c_anonymous_posix_spawn_fae { @@ -915,15 +922,15 @@ cfg_if! { && self.ut_tv == other.ut_tv && self.ut_ss == other.ut_ss && self - .ut_pad - .iter() - .zip(other.ut_pad.iter()) - .all(|(a,b)| a == b) + .ut_pad + .iter() + .zip(other.ut_pad.iter()) + .all(|(a, b)| a == b) && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a, b)| a == b) } } @@ -935,14 +942,14 @@ cfg_if! { .field("ut_name", &self.ut_name) .field("ut_id", &self.ut_id) .field("ut_line", &self.ut_line) - // FIXME .field("ut_host", &self.ut_host) + // FIXME .field("ut_host", &self.ut_host) .field("ut_session", &self.ut_session) .field("ut_type", &self.ut_type) .field("ut_pid", &self.ut_pid) .field("ut_exit", &self.ut_exit) .field("ut_ss", &self.ut_ss) .field("ut_tv", &self.ut_tv) - // FIXME .field("ut_pad", &self.ut_pad) + // FIXME .field("ut_pad", &self.ut_pad) .finish() } } @@ -969,10 +976,10 @@ cfg_if! { && self.ll_line == other.ll_line && self.ll_ss == other.ll_ss && self - .ll_host - .iter() - .zip(other.ll_host.iter()) - .all(|(a,b)| a == b) + .ll_host + .iter() + .zip(other.ll_host.iter()) + .all(|(a, b)| a == b) } } @@ -983,7 +990,7 @@ cfg_if! { f.debug_struct("lastlogx") .field("ll_tv", &self.ll_tv) .field("ll_line", &self.ll_line) - // FIXME.field("ll_host", &self.ll_host) + // FIXME.field("ll_host", &self.ll_host) .field("ll_ss", &self.ll_ss) .finish() } @@ -1000,8 +1007,7 @@ cfg_if! { impl PartialEq for in_pktinfo { fn eq(&self, other: &in_pktinfo) -> bool { - self.ipi_addr == other.ipi_addr - && self.ipi_ifindex == other.ipi_ifindex + self.ipi_addr == other.ipi_addr && self.ipi_ifindex == other.ipi_ifindex } } impl Eq for in_pktinfo {} @@ -1066,9 +1072,7 @@ cfg_if! { impl ::fmt::Debug for in_addr { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { let s_addr = self.s_addr; - f.debug_struct("in_addr") - .field("s_addr", &s_addr) - .finish() + f.debug_struct("in_addr").field("s_addr", &s_addr).finish() } } impl ::hash::Hash for in_addr { @@ -1138,10 +1142,10 @@ cfg_if! { && self.d_namlen == other.d_namlen && self.d_type == other.d_type && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } impl Eq for dirent {} @@ -1191,15 +1195,15 @@ cfg_if! { && self.f_spare == other.f_spare && self.f_fstypename == other.f_fstypename && self - .f_mntonname - .iter() - .zip(other.f_mntonname.iter()) - .all(|(a,b)| a == b) + .f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a, b)| a == b) && self - .f_mntfromname - .iter() - .zip(other.f_mntfromname.iter()) - .all(|(a,b)| a == b) + .f_mntfromname + .iter() + .zip(other.f_mntfromname.iter()) + .all(|(a, b)| a == b) } } impl Eq for statvfs {} @@ -1269,10 +1273,10 @@ cfg_if! { && self.__ss_pad1 == other.__ss_pad1 && self.__ss_pad2 == other.__ss_pad2 && self - .__ss_pad3 - .iter() - .zip(other.__ss_pad3.iter()) - .all(|(a,b)| a == b) + .__ss_pad3 + .iter() + .zip(other.__ss_pad3.iter()) + .all(|(a, b)| a == b) } } impl Eq for sockaddr_storage {} @@ -1302,8 +1306,7 @@ cfg_if! { self.sigev_notify == other.sigev_notify && self.sigev_signo == other.sigev_signo && self.sigev_value == other.sigev_value - && self.sigev_notify_attributes - == other.sigev_notify_attributes + && self.sigev_notify_attributes == other.sigev_notify_attributes } } impl Eq for sigevent {} @@ -1313,8 +1316,7 @@ cfg_if! { .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) .field("sigev_value", &self.sigev_value) - .field("sigev_notify_attributes", - &self.sigev_notify_attributes) + .field("sigev_notify_attributes", &self.sigev_notify_attributes) .finish() } } @@ -1331,10 +1333,7 @@ cfg_if! { impl PartialEq for __c_anonymous_posix_spawn_fae { fn eq(&self, other: &__c_anonymous_posix_spawn_fae) -> bool { - unsafe { - self.open == other.open - || self.dup2 == other.dup2 - } + unsafe { self.open == other.open || self.dup2 == other.dup2 } } } @@ -1362,10 +1361,7 @@ cfg_if! { 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 - } + unsafe { self.ifcu_buf == other.ifcu_buf || self.ifcu_req == other.ifcu_req } } } @@ -1934,10 +1930,13 @@ pub const PL_EVENT_SIGNAL: ::c_int = 1; pub const PL_EVENT_SUSPENDED: ::c_int = 2; cfg_if! { - if #[cfg(any(target_arch = "sparc", target_arch = "sparc64", - target_arch = "x86", target_arch = "x86_64"))] { - pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t - = pthread_mutex_t { + if #[cfg(any( + target_arch = "sparc", + target_arch = "sparc64", + target_arch = "x86", + target_arch = "x86_64" + ))] { + pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { ptm_magic: 0x33330003, ptm_errorcheck: 0, ptm_pad1: [0; 3], @@ -1949,8 +1948,7 @@ cfg_if! { ptm_spare2: 0 as *mut _, }; } else { - pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t - = pthread_mutex_t { + pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { ptm_magic: 0x33330003, ptm_errorcheck: 0, ptm_unused: 0, @@ -2437,35 +2435,30 @@ const_fn! { f! { pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar) - .offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + (cmsg as *mut ::c_uchar).offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) } pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { _ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length } - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) - -> *mut ::cmsghdr - { + pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { if cmsg.is_null() { return ::CMSG_FIRSTHDR(mhdr); }; - let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + let next = cmsg as usize + + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(::mem::size_of::<::cmsghdr>()); - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; + let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { 0 as *mut ::cmsghdr } else { - (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) - as *mut ::cmsghdr + (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) as *mut ::cmsghdr } } pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (_ALIGN(::mem::size_of::<::cmsghdr>()) + _ALIGN(length as usize)) - as ::c_uint + (_ALIGN(::mem::size_of::<::cmsghdr>()) + _ALIGN(length as usize)) as ::c_uint } // dirfd() is a macro on netbsd to access @@ -2476,11 +2469,7 @@ f! { } pub fn SOCKCREDSIZE(ngrps: usize) -> usize { - let ngrps = if ngrps > 0 { - ngrps - 1 - } else { - 0 - }; + let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 }; ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps } @@ -2493,7 +2482,7 @@ f! { } pub fn major(dev: ::dev_t) -> ::c_int { - (((dev as u32) & 0x000fff00) >> 8) as ::c_int + (((dev as u32) & 0x000fff00) >> 8) as ::c_int } pub fn minor(dev: ::dev_t) -> ::c_int { diff --git a/src/unix/bsd/netbsdlike/netbsd/x86_64.rs b/src/unix/bsd/netbsdlike/netbsd/x86_64.rs index a2087c34e43ef..792156484902c 100644 --- a/src/unix/bsd/netbsdlike/netbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/x86_64.rs @@ -10,7 +10,7 @@ s! { pub struct mcontext_t { pub __gregs: [c___greg_t; 26], pub _mc_tlsbase: c___greg_t, - pub __fpregs: [[::c_char;32]; 16], + pub __fpregs: [[::c_char; 32]; 16], } pub struct ucontext_t { diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 8def98df25a14..e89bbc99a6060 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -65,11 +65,11 @@ s! { } pub struct glob_t { - pub gl_pathc: ::size_t, - pub gl_matchc: ::size_t, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - pub gl_pathv: *mut *mut ::c_char, + pub gl_pathc: ::size_t, + pub gl_matchc: ::size_t, + pub gl_offs: ::size_t, + pub gl_flags: ::c_int, + pub gl_pathv: *mut *mut ::c_char, __unused1: *mut ::c_void, __unused2: *mut ::c_void, __unused3: *mut ::c_void, @@ -762,10 +762,10 @@ cfg_if! { && self.d_type == other.d_type && self.d_namlen == other.d_namlen && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } @@ -779,7 +779,7 @@ cfg_if! { .field("d_reclen", &self.d_reclen) .field("d_type", &self.d_type) .field("d_namlen", &self.d_namlen) - // FIXME: .field("d_name", &self.d_name) + // FIXME: .field("d_name", &self.d_name) .finish() } } @@ -797,8 +797,7 @@ cfg_if! { impl PartialEq for sockaddr_storage { fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_len == other.ss_len - && self.ss_family == other.ss_family + self.ss_len == other.ss_len && self.ss_family == other.ss_family } } @@ -855,15 +854,15 @@ cfg_if! { fn eq(&self, other: &lastlog) -> bool { self.ll_time == other.ll_time && self - .ll_line - .iter() - .zip(other.ll_line.iter()) - .all(|(a,b)| a == b) + .ll_line + .iter() + .zip(other.ll_line.iter()) + .all(|(a, b)| a == b) && self - .ll_host - .iter() - .zip(other.ll_host.iter()) - .all(|(a,b)| a == b) + .ll_host + .iter() + .zip(other.ll_host.iter()) + .all(|(a, b)| a == b) } } @@ -873,8 +872,8 @@ cfg_if! { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("lastlog") .field("ll_time", &self.ll_time) - // FIXME: .field("ll_line", &self.ll_line) - // FIXME: .field("ll_host", &self.ll_host) + // FIXME: .field("ll_line", &self.ll_line) + // FIXME: .field("ll_host", &self.ll_host) .finish() } } @@ -891,20 +890,20 @@ cfg_if! { fn eq(&self, other: &utmp) -> bool { self.ut_time == other.ut_time && self - .ut_line - .iter() - .zip(other.ut_line.iter()) - .all(|(a,b)| a == b) + .ut_line + .iter() + .zip(other.ut_line.iter()) + .all(|(a, b)| a == b) && self - .ut_name - .iter() - .zip(other.ut_name.iter()) - .all(|(a,b)| a == b) + .ut_name + .iter() + .zip(other.ut_name.iter()) + .all(|(a, b)| a == b) && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a, b)| a == b) } } @@ -913,9 +912,9 @@ cfg_if! { impl ::fmt::Debug for utmp { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("utmp") - // FIXME: .field("ut_line", &self.ut_line) - // FIXME: .field("ut_name", &self.ut_name) - // FIXME: .field("ut_host", &self.ut_host) + // FIXME: .field("ut_line", &self.ut_line) + // FIXME: .field("ut_name", &self.ut_name) + // FIXME: .field("ut_host", &self.ut_host) .field("ut_time", &self.ut_time) .finish() } @@ -936,17 +935,17 @@ cfg_if! { self.align .iter() .zip(other.align.iter()) - .all(|(a,b)| a == b) + .all(|(a, b)| a == b) } } } - impl Eq for mount_info { } + impl Eq for mount_info {} impl ::fmt::Debug for mount_info { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("mount_info") - // FIXME: .field("align", &self.align) + // FIXME: .field("align", &self.align) .finish() } } @@ -1026,22 +1025,26 @@ cfg_if! { && self.f_namemax == other.f_namemax && self.f_owner == other.f_owner && self.f_ctime == other.f_ctime - && self.f_fstypename - .iter() - .zip(other.f_fstypename.iter()) - .all(|(a,b)| a == b) - && self.f_mntonname - .iter() - .zip(other.f_mntonname.iter()) - .all(|(a,b)| a == b) - && self.f_mntfromname - .iter() - .zip(other.f_mntfromname.iter()) - .all(|(a,b)| a == b) - && self.f_mntfromspec - .iter() - .zip(other.f_mntfromspec.iter()) - .all(|(a,b)| a == b) + && self + .f_fstypename + .iter() + .zip(other.f_fstypename.iter()) + .all(|(a, b)| a == b) + && self + .f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a, b)| a == b) + && self + .f_mntfromname + .iter() + .zip(other.f_mntfromname.iter()) + .all(|(a, b)| a == b) + && self + .f_mntfromspec + .iter() + .zip(other.f_mntfromspec.iter()) + .all(|(a, b)| a == b) && self.mount_info == other.mount_info } } @@ -1068,10 +1071,10 @@ cfg_if! { .field("f_namemax", &self.f_namemax) .field("f_owner", &self.f_owner) .field("f_ctime", &self.f_ctime) - // FIXME: .field("f_fstypename", &self.f_fstypename) - // FIXME: .field("f_mntonname", &self.f_mntonname) - // FIXME: .field("f_mntfromname", &self.f_mntfromname) - // FIXME: .field("f_mntfromspec", &self.f_mntfromspec) + // FIXME: .field("f_fstypename", &self.f_fstypename) + // FIXME: .field("f_mntonname", &self.f_mntonname) + // FIXME: .field("f_mntfromname", &self.f_mntfromname) + // FIXME: .field("f_mntfromspec", &self.f_mntfromspec) .field("mount_info", &self.mount_info) .finish() } @@ -1961,38 +1964,33 @@ const_fn! { f! { pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar) - .offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + (cmsg as *mut ::c_uchar).offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) } pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { _ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length } - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) - -> *mut ::cmsghdr - { + pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { if cmsg.is_null() { return ::CMSG_FIRSTHDR(mhdr); }; - let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + let next = cmsg as usize + + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(::mem::size_of::<::cmsghdr>()); - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; + let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { 0 as *mut ::cmsghdr } else { - (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) - as *mut ::cmsghdr + (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) as *mut ::cmsghdr } } pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (_ALIGN(::mem::size_of::<::cmsghdr>()) + _ALIGN(length as usize)) - as ::c_uint + (_ALIGN(::mem::size_of::<::cmsghdr>()) + _ALIGN(length as usize)) as ::c_uint } - pub fn major(dev: ::dev_t) -> ::c_uint{ + pub fn major(dev: ::dev_t) -> ::c_uint { ((dev as ::c_uint) >> 8) & 0xff } diff --git a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs index 5cc7dc1fc060f..6a825176efab8 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs @@ -64,30 +64,36 @@ cfg_if! { // use {x} to create temporary storage, copy field to it, and do aligned access. impl PartialEq for fxsave64 { fn eq(&self, other: &fxsave64) -> bool { - return {self.fx_fcw} == {other.fx_fcw} && - {self.fx_fsw} == {other.fx_fsw} && - {self.fx_ftw} == {other.fx_ftw} && - {self.fx_fop} == {other.fx_fop} && - {self.fx_rip} == {other.fx_rip} && - {self.fx_rdp} == {other.fx_rdp} && - {self.fx_mxcsr} == {other.fx_mxcsr} && - {self.fx_mxcsr_mask} == {other.fx_mxcsr_mask} && - {self.fx_st}.iter().zip({other.fx_st}.iter()).all(|(a,b)| a == b) && - {self.fx_xmm}.iter().zip({other.fx_xmm}.iter()).all(|(a,b)| a == b) + return { self.fx_fcw } == { other.fx_fcw } + && { self.fx_fsw } == { other.fx_fsw } + && { self.fx_ftw } == { other.fx_ftw } + && { self.fx_fop } == { other.fx_fop } + && { self.fx_rip } == { other.fx_rip } + && { self.fx_rdp } == { other.fx_rdp } + && { self.fx_mxcsr } == { other.fx_mxcsr } + && { self.fx_mxcsr_mask } == { other.fx_mxcsr_mask } + && { self.fx_st } + .iter() + .zip({ other.fx_st }.iter()) + .all(|(a, b)| a == b) + && { self.fx_xmm } + .iter() + .zip({ other.fx_xmm }.iter()) + .all(|(a, b)| a == b); } } impl Eq for fxsave64 {} impl ::fmt::Debug for fxsave64 { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("fxsave64") - .field("fx_fcw", &{self.fx_fcw}) - .field("fx_fsw", &{self.fx_fsw}) - .field("fx_ftw", &{self.fx_ftw}) - .field("fx_fop", &{self.fx_fop}) - .field("fx_rip", &{self.fx_rip}) - .field("fx_rdp", &{self.fx_rdp}) - .field("fx_mxcsr", &{self.fx_mxcsr}) - .field("fx_mxcsr_mask", &{self.fx_mxcsr_mask}) + .field("fx_fcw", &{ self.fx_fcw }) + .field("fx_fsw", &{ self.fx_fsw }) + .field("fx_ftw", &{ self.fx_ftw }) + .field("fx_fop", &{ self.fx_fop }) + .field("fx_rip", &{ self.fx_rip }) + .field("fx_rdp", &{ self.fx_rdp }) + .field("fx_mxcsr", &{ self.fx_mxcsr }) + .field("fx_mxcsr_mask", &{ self.fx_mxcsr_mask }) // FIXME: .field("fx_st", &{self.fx_st}) // FIXME: .field("fx_xmm", &{self.fx_xmm}) .finish() @@ -95,16 +101,16 @@ cfg_if! { } impl ::hash::Hash for fxsave64 { fn hash(&self, state: &mut H) { - {self.fx_fcw}.hash(state); - {self.fx_fsw}.hash(state); - {self.fx_ftw}.hash(state); - {self.fx_fop}.hash(state); - {self.fx_rip}.hash(state); - {self.fx_rdp}.hash(state); - {self.fx_mxcsr}.hash(state); - {self.fx_mxcsr_mask}.hash(state); - {self.fx_st}.hash(state); - {self.fx_xmm}.hash(state); + { self.fx_fcw }.hash(state); + { self.fx_fsw }.hash(state); + { self.fx_ftw }.hash(state); + { self.fx_fop }.hash(state); + { self.fx_rip }.hash(state); + { self.fx_rdp }.hash(state); + { self.fx_mxcsr }.hash(state); + { self.fx_mxcsr_mask }.hash(state); + { self.fx_st }.hash(state); + { self.fx_xmm }.hash(state); } } } diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 2f9a0bb45c53a..94d3c2790852b 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -220,7 +220,7 @@ s! { pub c_oflag: ::tcflag_t, pub c_cflag: ::tcflag_t, pub c_lflag: ::tcflag_t, - pub c_line: ::c_char, + pub c_line: ::c_char, pub c_ispeed: ::speed_t, pub c_ospeed: ::speed_t, pub c_cc: [::cc_t; ::NCCS], @@ -290,7 +290,7 @@ s! { pub struct pthread_rwlock_t { flags: u32, owner: i32, - lock_sem: i32, // this is actually a union + lock_sem: i32, // this is actually a union lock_count: i32, reader_count: i32, writer_count: i32, @@ -458,7 +458,7 @@ s_no_extra_traits! { pub struct sockaddr_un { pub sun_len: u8, pub sun_family: sa_family_t, - pub sun_path: [::c_char; 126] + pub sun_path: [::c_char; 126], } pub struct sockaddr_storage { pub ss_len: u8, @@ -506,7 +506,11 @@ cfg_if! { && self.ut_pid == other.ut_pid && self.ut_user == other.ut_user && self.ut_line == other.ut_line - && self.ut_host.iter().zip(other.ut_host.iter()).all(|(a,b)| a == b) + && self + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a, b)| a == b) && self.__ut_reserved == other.__ut_reserved } } @@ -545,10 +549,10 @@ cfg_if! { self.sun_len == other.sun_len && self.sun_family == other.sun_family && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a,b)| a == b) + .sun_path + .iter() + .zip(other.sun_path.iter()) + .all(|(a, b)| a == b) } } impl Eq for sockaddr_un {} @@ -574,16 +578,16 @@ cfg_if! { self.ss_len == other.ss_len && self.ss_family == other.ss_family && self - .__ss_pad1 - .iter() - .zip(other.__ss_pad1.iter()) - .all(|(a, b)| a == b) + .__ss_pad1 + .iter() + .zip(other.__ss_pad1.iter()) + .all(|(a, b)| a == b) && self.__ss_pad2 == other.__ss_pad2 && self - .__ss_pad3 - .iter() - .zip(other.__ss_pad3.iter()) - .all(|(a, b)| a == b) + .__ss_pad3 + .iter() + .zip(other.__ss_pad3.iter()) + .all(|(a, b)| a == b) } } impl Eq for sockaddr_storage {} @@ -616,10 +620,10 @@ cfg_if! { && self.d_pino == other.d_pino && self.d_reclen == other.d_reclen && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } impl Eq for dirent {} @@ -651,8 +655,7 @@ cfg_if! { self.sigev_notify == other.sigev_notify && self.sigev_signo == other.sigev_signo && self.sigev_value == other.sigev_value - && self.sigev_notify_attributes - == other.sigev_notify_attributes + && self.sigev_notify_attributes == other.sigev_notify_attributes } } impl Eq for sigevent {} @@ -662,8 +665,7 @@ cfg_if! { .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) .field("sigev_value", &self.sigev_value) - .field("sigev_notify_attributes", - &self.sigev_notify_attributes) + .field("sigev_notify_attributes", &self.sigev_notify_attributes) .finish() } } @@ -1574,33 +1576,29 @@ f! { } pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar) - .offset(CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + (cmsg as *mut ::c_uchar).offset(CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) } pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) - as ::c_uint + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) as ::c_uint } pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { CMSG_ALIGN(::mem::size_of::()) as ::c_uint + length } - pub fn CMSG_NXTHDR(mhdr: *const msghdr, - cmsg: *const cmsghdr) -> *mut cmsghdr { + pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { return ::CMSG_FIRSTHDR(mhdr); }; - let next = cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize) + let next = cmsg as usize + + CMSG_ALIGN((*cmsg).cmsg_len as usize) + CMSG_ALIGN(::mem::size_of::<::cmsghdr>()); - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; + let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { 0 as *mut ::cmsghdr } else { - (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) - as *mut ::cmsghdr + (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut ::cmsghdr } } @@ -1608,20 +1606,20 @@ f! { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); - return + return; } pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 + return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); - return + return; } pub fn FD_ZERO(set: *mut fd_set) -> () { diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs index 6546031f7293f..e2997d1da986c 100644 --- a/src/unix/haiku/native.rs +++ b/src/unix/haiku/native.rs @@ -51,7 +51,7 @@ e! { B_THREAD_RECEIVING, B_THREAD_ASLEEP, B_THREAD_SUSPENDED, - B_THREAD_WAITING + B_THREAD_WAITING, } // kernel/image.h @@ -59,7 +59,7 @@ e! { B_APP_IMAGE = 1, B_LIBRARY_IMAGE, B_ADD_ON_IMAGE, - B_SYSTEM_IMAGE + B_SYSTEM_IMAGE, } // kernel/scheduler.h @@ -221,7 +221,7 @@ e! { B_CPU_MIPS, B_CPU_SH, B_CPU_SPARC, - B_CPU_RISC_V + B_CPU_RISC_V, } pub enum cpu_vendor { @@ -239,7 +239,7 @@ e! { B_CPU_VENDOR_NEC, B_CPU_VENDOR_HYGON, B_CPU_VENDOR_SUN, - B_CPU_VENDOR_FUJITSU + B_CPU_VENDOR_FUJITSU, } } @@ -256,7 +256,7 @@ s! { pub copy_count: u32, pub in_count: u32, pub out_count: u32, - pub address: *mut ::c_void + pub address: *mut ::c_void, } pub struct port_info { @@ -272,7 +272,7 @@ s! { pub size: ::size_t, pub sender: ::uid_t, pub sender_group: ::gid_t, - pub sender_team: ::team_id + pub sender_team: ::team_id, } pub struct team_info { @@ -285,7 +285,7 @@ s! { pub argc: i32, pub args: [::c_char; 64], pub uid: ::uid_t, - pub gid: ::gid_t + pub gid: ::gid_t, } pub struct sem_info { @@ -293,12 +293,12 @@ s! { pub team: team_id, pub name: [::c_char; B_OS_NAME_LENGTH], pub count: i32, - pub latest_holder: thread_id + pub latest_holder: thread_id, } pub struct team_usage_info { pub user_time: bigtime_t, - pub kernel_time: bigtime_t + pub kernel_time: bigtime_t, } pub struct thread_info { @@ -311,13 +311,13 @@ s! { pub user_time: bigtime_t, pub kernel_time: bigtime_t, pub stack_base: *mut ::c_void, - pub stack_end: *mut ::c_void + pub stack_end: *mut ::c_void, } pub struct cpu_info { pub active_time: bigtime_t, pub enabled: bool, - pub current_frequency: u64 + pub current_frequency: u64, } pub struct system_info { @@ -345,13 +345,13 @@ s! { pub kernel_build_date: [::c_char; B_OS_NAME_LENGTH], pub kernel_build_time: [::c_char; B_OS_NAME_LENGTH], pub kernel_version: i64, - pub abi: u32 + pub abi: u32, } pub struct object_wait_info { pub object: i32, pub type_: u16, - pub events: u16 + pub events: u16, } pub struct cpu_topology_root_info { @@ -370,7 +370,7 @@ s! { // kernel/fs_attr.h pub struct attr_info { pub type_: u32, - pub size: ::off_t + pub size: ::off_t, } // kernel/fs_index.h @@ -380,7 +380,7 @@ s! { pub modification_time: ::time_t, pub creation_time: ::time_t, pub uid: ::uid_t, - pub gid: ::gid_t + pub gid: ::gid_t, } //kernel/fs_info.h @@ -396,7 +396,7 @@ s! { pub free_nodes: ::off_t, pub device_name: [::c_char; 128], pub volume_name: [::c_char; B_FILE_NAME_LENGTH], - pub fsh_name: [::c_char; B_OS_NAME_LENGTH] + pub fsh_name: [::c_char; B_OS_NAME_LENGTH], } // kernel/image.h @@ -415,7 +415,7 @@ s! { pub text_size: i32, pub data_size: i32, pub api_version: i32, - pub abi: i32 + pub abi: i32, } pub struct __c_anonymous_eax_0 { @@ -488,12 +488,12 @@ cfg_if! { impl PartialEq for cpuid_info { fn eq(&self, other: &cpuid_info) -> bool { unsafe { - self.eax_0 == other.eax_0 - || self.eax_1 == other.eax_1 - || self.eax_2 == other.eax_2 - || self.eax_3 == other.eax_3 - || self.as_chars == other.as_chars - || self.regs == other.regs + self.eax_0 == other.eax_0 + || self.eax_1 == other.eax_1 + || self.eax_2 == other.eax_2 + || self.eax_3 == other.eax_3 + || self.as_chars == other.as_chars + || self.regs == other.regs } } } @@ -501,14 +501,14 @@ cfg_if! { impl ::fmt::Debug for cpuid_info { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { unsafe { - f.debug_struct("cpuid_info") - .field("eax_0", &self.eax_0) - .field("eax_1", &self.eax_1) - .field("eax_2", &self.eax_2) - .field("eax_3", &self.eax_3) - .field("as_chars", &self.as_chars) - .field("regs", &self.regs) - .finish() + f.debug_struct("cpuid_info") + .field("eax_0", &self.eax_0) + .field("eax_1", &self.eax_1) + .field("eax_2", &self.eax_2) + .field("eax_3", &self.eax_3) + .field("as_chars", &self.as_chars) + .field("regs", &self.regs) + .finish() } } } @@ -516,9 +516,9 @@ cfg_if! { impl PartialEq for __c_anonymous_cpu_topology_info_data { fn eq(&self, other: &__c_anonymous_cpu_topology_info_data) -> bool { unsafe { - self.root == other.root - || self.package == other.package - || self.core == other.core + self.root == other.root + || self.package == other.package + || self.core == other.core } } } @@ -526,20 +526,18 @@ cfg_if! { impl ::fmt::Debug for __c_anonymous_cpu_topology_info_data { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { unsafe { - f.debug_struct("__c_anonymous_cpu_topology_info_data") - .field("root", &self.root) - .field("package", &self.package) - .field("core", &self.core) - .finish() + f.debug_struct("__c_anonymous_cpu_topology_info_data") + .field("root", &self.root) + .field("package", &self.package) + .field("core", &self.core) + .finish() } } } impl PartialEq for cpu_topology_node_info { fn eq(&self, other: &cpu_topology_node_info) -> bool { - self.id == other.id - && self.type_ == other.type_ - && self.level == other.level + self.id == other.id && self.type_ == other.type_ && self.level == other.level } } diff --git a/src/unix/haiku/x86_64.rs b/src/unix/haiku/x86_64.rs index 1b0462f204632..b52643695d42a 100644 --- a/src/unix/haiku/x86_64.rs +++ b/src/unix/haiku/x86_64.rs @@ -67,12 +67,17 @@ cfg_if! { && self.rdp == other.rdp && self.mxcsr == other.mxcsr && self.mscsr_mask == other.mscsr_mask - && self._fpreg.iter().zip(other._fpreg.iter()).all(|(a, b)| a == b) + && self + ._fpreg + .iter() + .zip(other._fpreg.iter()) + .all(|(a, b)| a == b) && self._xmm.iter().zip(other._xmm.iter()).all(|(a, b)| a == b) - && self._reserved_416_511. - iter(). - zip(other._reserved_416_511.iter()). - all(|(a, b)| a == b) + && self + ._reserved_416_511 + .iter() + .zip(other._reserved_416_511.iter()) + .all(|(a, b)| a == b) } } impl Eq for fpu_state {} @@ -113,7 +118,11 @@ cfg_if! { fn eq(&self, other: &xstate_hdr) -> bool { self.bv == other.bv && self.xcomp_bv == other.xcomp_bv - && self._reserved.iter().zip(other._reserved.iter()).all(|(a, b)| a == b) + && self + ._reserved + .iter() + .zip(other._reserved.iter()) + .all(|(a, b)| a == b) } } impl Eq for xstate_hdr {} @@ -138,7 +147,11 @@ cfg_if! { fn eq(&self, other: &savefpu) -> bool { self.fp_fxsave == other.fp_fxsave && self.fp_xstate == other.fp_xstate - && self._fp_ymm.iter().zip(other._fp_ymm.iter()).all(|(a, b)| a == b) + && self + ._fp_ymm + .iter() + .zip(other._fp_ymm.iter()) + .all(|(a, b)| a == b) } } impl Eq for savefpu {} @@ -206,7 +219,6 @@ cfg_if! { .field("rflags", &self.rflags) .field("fpu", &self.fpu) .finish() - } } impl ::hash::Hash for mcontext_t { diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index f7c86ac9a9611..fe3ee55aa9e91 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -427,7 +427,7 @@ s! { pub sigev_value: ::sigval, pub sigev_signo: ::c_int, pub sigev_notify: ::c_int, - __unused1: *mut ::c_void, //actually a function pointer + __unused1: *mut ::c_void, //actually a function pointer pub sigev_notify_attributes: *mut pthread_attr_t, } @@ -558,7 +558,7 @@ s! { pub f_favail: __fsfilcnt64_t, pub f_frsize: ::c_ulong, pub f_flag: ::c_ulong, - pub f_spare: [::c_uint ; 3usize], + pub f_spare: [::c_uint; 3usize], } pub struct statvfs { @@ -608,7 +608,7 @@ s! { pub aio_offset: off_t, #[cfg(all(not(target_arch = "x86_64"), target_pointer_width = "32"))] __unused1: [::c_char; 4], - __glibc_reserved: [::c_char; 32] + __glibc_reserved: [::c_char; 32], } pub struct mq_attr { @@ -623,10 +623,8 @@ s! { pub e_exit: ::c_short, } - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] + #[cfg_attr(target_pointer_width = "32", repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", repr(align(8)))] pub struct sem_t { __size: [::c_char; 20usize], } @@ -816,7 +814,7 @@ s! { pub ifa_addr: *mut ::sockaddr, pub ifa_netmask: *mut ::sockaddr, pub ifa_ifu: *mut ::sockaddr, // FIXME This should be a union - pub ifa_data: *mut ::c_void + pub ifa_data: *mut ::c_void, } pub struct arpreq { @@ -884,7 +882,7 @@ s! { } pub struct stack_t { - pub ss_sp: * mut ::c_void, + pub ss_sp: *mut ::c_void, pub ss_size: ::size_t, pub ss_flags: ::c_int, } @@ -902,30 +900,30 @@ s! { pub struct flock { #[cfg(target_pointer_width = "32")] - pub l_type : ::c_int, + pub l_type: ::c_int, #[cfg(target_pointer_width = "32")] - pub l_whence : ::c_int, + pub l_whence: ::c_int, #[cfg(target_pointer_width = "64")] - pub l_type : ::c_short, + pub l_type: ::c_short, #[cfg(target_pointer_width = "64")] - pub l_whence : ::c_short, - pub l_start : __off_t, - pub l_len : __off_t, - pub l_pid : __pid_t, + pub l_whence: ::c_short, + pub l_start: __off_t, + pub l_len: __off_t, + pub l_pid: __pid_t, } pub struct flock64 { #[cfg(target_pointer_width = "32")] - pub l_type : ::c_int, + pub l_type: ::c_int, #[cfg(target_pointer_width = "32")] - pub l_whence : ::c_int, + pub l_whence: ::c_int, #[cfg(target_pointer_width = "64")] - pub l_type : ::c_short, + pub l_type: ::c_short, #[cfg(target_pointer_width = "64")] - pub l_whence : ::c_short, - pub l_start : __off_t, - pub l_len : __off64_t, - pub l_pid : __pid_t, + pub l_whence: ::c_short, + pub l_start: __off_t, + pub l_len: __off64_t, + pub l_pid: __pid_t, } pub struct glob_t { @@ -966,11 +964,9 @@ s! { } pub struct cpu_set_t { - #[cfg(all(target_pointer_width = "32", - not(target_arch = "x86_64")))] + #[cfg(all(target_pointer_width = "32", not(target_arch = "x86_64")))] bits: [u32; 32], - #[cfg(not(all(target_pointer_width = "32", - not(target_arch = "x86_64"))))] + #[cfg(not(all(target_pointer_width = "32", not(target_arch = "x86_64"))))] bits: [u64; 16], } @@ -1034,7 +1030,6 @@ s! { pub flag: *mut ::c_int, pub val: ::c_int, } - } s_no_extra_traits! { @@ -1048,18 +1043,14 @@ s_no_extra_traits! { pub ut_host: [::c_char; __UT_HOSTSIZE], pub ut_exit: __exit_status, - #[cfg(any( all(target_pointer_width = "32", - not(target_arch = "x86_64"))))] + #[cfg(any(all(target_pointer_width = "32", not(target_arch = "x86_64"))))] pub ut_session: ::c_long, - #[cfg(any(all(target_pointer_width = "32", - not(target_arch = "x86_64"))))] + #[cfg(any(all(target_pointer_width = "32", not(target_arch = "x86_64"))))] pub ut_tv: ::timeval, - #[cfg(not(any(all(target_pointer_width = "32", - not(target_arch = "x86_64")))))] + #[cfg(not(any(all(target_pointer_width = "32", not(target_arch = "x86_64")))))] pub ut_session: i32, - #[cfg(not(any(all(target_pointer_width = "32", - not(target_arch = "x86_64")))))] + #[cfg(not(any(all(target_pointer_width = "32", not(target_arch = "x86_64")))))] pub ut_tv: __timeval, pub ut_addr_v6: [i32; 4], @@ -1077,10 +1068,10 @@ cfg_if! { && self.ut_id == other.ut_id && self.ut_user == other.ut_user && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a, b)| a == b) && self.ut_exit == other.ut_exit && self.ut_session == other.ut_session && self.ut_tv == other.ut_tv @@ -1099,7 +1090,7 @@ cfg_if! { .field("ut_line", &self.ut_line) .field("ut_id", &self.ut_id) .field("ut_user", &self.ut_user) - // FIXME: .field("ut_host", &self.ut_host) + // FIXME: .field("ut_host", &self.ut_host) .field("ut_exit", &self.ut_exit) .field("ut_session", &self.ut_session) .field("ut_tv", &self.ut_tv) @@ -3458,26 +3449,21 @@ f! { } pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) - as ::c_uint + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) as ::c_uint } pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { CMSG_ALIGN(::mem::size_of::()) as ::c_uint + length } - pub fn CMSG_NXTHDR(mhdr: *const msghdr, - cmsg: *const cmsghdr) -> *mut cmsghdr { + pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if ((*cmsg).cmsg_len as usize) < ::mem::size_of::() { return 0 as *mut cmsghdr; }; - let next = (cmsg as usize + - CMSG_ALIGN((*cmsg).cmsg_len as usize)) - as *mut cmsghdr; - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; - if (next.offset(1)) as usize > max || - next as usize + CMSG_ALIGN((*next).cmsg_len as usize) > max + let next = (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; + let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; + if (next.offset(1)) as usize > max + || next as usize + CMSG_ALIGN((*next).cmsg_len as usize) > max { 0 as *mut cmsghdr } else { @@ -3498,16 +3484,14 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); () @@ -3524,7 +3508,7 @@ f! { let size_of_mask = ::mem::size_of_val(&cpuset.bits[0]); for i in cpuset.bits[..(size / size_of_mask)].iter() { s += i.count_ones(); - }; + } s as ::c_int } @@ -3537,7 +3521,7 @@ f! { } pub fn major(dev: ::dev_t) -> ::c_uint { - ((dev >> 8) & 0xff) as ::c_uint + ((dev >> 8) & 0xff) as ::c_uint } pub fn minor(dev: ::dev_t) -> ::c_uint { @@ -3556,20 +3540,20 @@ f! { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); - return + return; } pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 + return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); - return + return; } pub fn FD_ZERO(set: *mut fd_set) -> () { diff --git a/src/unix/linux_like/android/b32/arm.rs b/src/unix/linux_like/android/b32/arm.rs index 67bd0bb3abd4c..f8e5f613fb1ea 100644 --- a/src/unix/linux_like/android/b32/arm.rs +++ b/src/unix/linux_like/android/b32/arm.rs @@ -58,11 +58,9 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for __c_anonymous_uc_sigmask_with_padding { - fn eq( - &self, other: &__c_anonymous_uc_sigmask_with_padding - ) -> bool { + fn eq(&self, other: &__c_anonymous_uc_sigmask_with_padding) -> bool { self.uc_sigmask == other.uc_sigmask - // Ignore padding + // Ignore padding } } impl Eq for __c_anonymous_uc_sigmask_with_padding {} @@ -77,7 +75,7 @@ cfg_if! { impl ::hash::Hash for __c_anonymous_uc_sigmask_with_padding { fn hash(&self, state: &mut H) { self.uc_sigmask.hash(state) - // Ignore padding + // Ignore padding } } @@ -106,10 +104,9 @@ cfg_if! { && self.uc_link == other.uc_link && self.uc_stack == other.uc_stack && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask__c_anonymous_union - == other.uc_sigmask__c_anonymous_union + && self.uc_sigmask__c_anonymous_union == other.uc_sigmask__c_anonymous_union && &self.uc_regspace[..] == &other.uc_regspace[..] - // Ignore padding field + // Ignore padding field } } impl Eq for ucontext_t {} @@ -122,7 +119,7 @@ cfg_if! { .field("uc_mcontext", &self.uc_mcontext) .field( "uc_sigmask__c_anonymous_union", - &self.uc_sigmask__c_anonymous_union + &self.uc_sigmask__c_anonymous_union, ) .field("uc_regspace", &&self.uc_regspace[..]) // Ignore padding field @@ -558,7 +555,7 @@ f! { fd: ::c_int, addr: *mut ::sockaddr, len: *mut ::socklen_t, - flg: ::c_int + flg: ::c_int, ) -> ::c_int { ::syscall(SYS_accept4, fd, addr, len, flg) as ::c_int } diff --git a/src/unix/linux_like/android/b32/mod.rs b/src/unix/linux_like/android/b32/mod.rs index aa29267f9db50..49f7579463c11 100644 --- a/src/unix/linux_like/android/b32/mod.rs +++ b/src/unix/linux_like/android/b32/mod.rs @@ -16,7 +16,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct rlimit64 { @@ -106,9 +106,13 @@ s! { pub sched_priority: i32, } - pub struct pthread_mutex_t { value: ::c_int } + pub struct pthread_mutex_t { + value: ::c_int, + } - pub struct pthread_cond_t { value: ::c_int } + pub struct pthread_cond_t { + value: ::c_int, + } pub struct pthread_rwlock_t { lock: pthread_mutex_t, @@ -173,7 +177,7 @@ s! { s_no_extra_traits! { pub struct sigset64_t { - __bits: [::c_ulong; 2] + __bits: [::c_ulong; 2], } } diff --git a/src/unix/linux_like/android/b32/x86/mod.rs b/src/unix/linux_like/android/b32/x86/mod.rs index 902016fda3ec8..742916bf8861d 100644 --- a/src/unix/linux_like/android/b32/x86/mod.rs +++ b/src/unix/linux_like/android/b32/x86/mod.rs @@ -53,18 +53,16 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { - priv_: [f64; 2] + priv_: [f64; 2], } } cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for __c_anonymous_uc_sigmask_with_padding { - fn eq( - &self, other: &__c_anonymous_uc_sigmask_with_padding - ) -> bool { + fn eq(&self, other: &__c_anonymous_uc_sigmask_with_padding) -> bool { self.uc_sigmask == other.uc_sigmask - // Ignore padding + // Ignore padding } } impl Eq for __c_anonymous_uc_sigmask_with_padding {} @@ -79,7 +77,7 @@ cfg_if! { impl ::hash::Hash for __c_anonymous_uc_sigmask_with_padding { fn hash(&self, state: &mut H) { self.uc_sigmask.hash(state) - // Ignore padding + // Ignore padding } } @@ -108,9 +106,8 @@ cfg_if! { && self.uc_link == other.uc_link && self.uc_stack == other.uc_stack && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask__c_anonymous_union - == other.uc_sigmask__c_anonymous_union - // Ignore padding field + && self.uc_sigmask__c_anonymous_union == other.uc_sigmask__c_anonymous_union + // Ignore padding field } } impl Eq for ucontext_t {} @@ -123,7 +120,7 @@ cfg_if! { .field("uc_mcontext", &self.uc_mcontext) .field( "uc_sigmask__c_anonymous_union", - &self.uc_sigmask__c_anonymous_union + &self.uc_sigmask__c_anonymous_union, ) // Ignore padding field .finish() @@ -624,7 +621,7 @@ f! { fd: ::c_int, addr: *mut ::sockaddr, len: *mut ::socklen_t, - flg: ::c_int + flg: ::c_int, ) -> ::c_int { // Arguments are passed as array of `long int` // (which is big enough on x86 for a pointer). diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index 9587770e8cb2c..2ea2d2cfcc0ac 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -86,7 +86,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [f32; 8] + priv_: [f32; 8], } } diff --git a/src/unix/linux_like/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs index 97cf137b7fc79..88db6a3fa4246 100644 --- a/src/unix/linux_like/android/b64/mod.rs +++ b/src/unix/linux_like/android/b64/mod.rs @@ -16,7 +16,7 @@ s! { pub sa_flags: ::c_int, pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct rlimit64 { @@ -136,7 +136,7 @@ s_no_extra_traits! { } pub struct sigset64_t { - __bits: [::c_ulong; 1] + __bits: [::c_ulong; 1], } } @@ -146,10 +146,10 @@ cfg_if! { fn eq(&self, other: &pthread_mutex_t) -> bool { self.value == other.value && self - .__reserved - .iter() - .zip(other.__reserved.iter()) - .all(|(a,b)| a == b) + .__reserved + .iter() + .zip(other.__reserved.iter()) + .all(|(a, b)| a == b) } } @@ -175,10 +175,10 @@ cfg_if! { fn eq(&self, other: &pthread_cond_t) -> bool { self.value == other.value && self - .__reserved - .iter() - .zip(other.__reserved.iter()) - .all(|(a,b)| a == b) + .__reserved + .iter() + .zip(other.__reserved.iter()) + .all(|(a, b)| a == b) } } @@ -208,10 +208,10 @@ cfg_if! { && self.pendingWriters == other.pendingWriters && self.attr == other.attr && self - .__reserved - .iter() - .zip(other.__reserved.iter()) - .all(|(a,b)| a == b) + .__reserved + .iter() + .zip(other.__reserved.iter()) + .all(|(a, b)| a == b) } } @@ -298,7 +298,7 @@ f! { fd: ::c_int, addr: *mut ::sockaddr, len: *mut ::socklen_t, - flg: ::c_int + flg: ::c_int, ) -> ::c_int { ::syscall(SYS_accept4, fd, addr, len, flg) as ::c_int } diff --git a/src/unix/linux_like/android/b64/riscv64/mod.rs b/src/unix/linux_like/android/b64/riscv64/mod.rs index 82a3aa62f51a5..cd7175c1b99d2 100644 --- a/src/unix/linux_like/android/b64/riscv64/mod.rs +++ b/src/unix/linux_like/android/b64/riscv64/mod.rs @@ -56,7 +56,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [f32; 8] + priv_: [f32; 8], } } diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index 57a41a224fe2c..1f88573704b3e 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -102,7 +102,6 @@ s! { pub error_code: ::c_ulong, pub fault_address: ::c_ulong, } - } s_no_extra_traits! { @@ -114,7 +113,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [f64; 4] + priv_: [f64; 4], } } @@ -196,9 +195,8 @@ cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for _libc_fpxreg { fn eq(&self, other: &Self) -> bool { - self.significand == other.significand - && self.exponent == other.exponent - // Ignore padding field + self.significand == other.significand && self.exponent == other.exponent + // Ignore padding field } } impl Eq for _libc_fpxreg {} @@ -231,7 +229,7 @@ cfg_if! { && self.mxcr_mask == other.mxcr_mask && self._st == other._st && self._xmm == other._xmm - // Ignore padding field + // Ignore padding field } } impl Eq for _libc_fpstate {} @@ -270,9 +268,8 @@ cfg_if! { impl PartialEq for mcontext_t { fn eq(&self, other: &Self) -> bool { - self.gregs == other.gregs - && self.fpregs == other.fpregs - // Ignore padding field + self.gregs == other.gregs && self.fpregs == other.fpregs + // Ignore padding field } } impl Eq for mcontext_t {} @@ -300,7 +297,7 @@ cfg_if! { && self.uc_stack == other.uc_stack && self.uc_mcontext == other.uc_mcontext && self.uc_sigmask64 == other.uc_sigmask64 - // Ignore padding field + // Ignore padding field } } impl Eq for ucontext_t {} @@ -339,10 +336,10 @@ cfg_if! { && self.mxcr_mask == other.mxcr_mask && self.st_space == other.st_space && self - .xmm_space - .iter() - .zip(other.xmm_space.iter()) - .all(|(a,b)| a == b) + .xmm_space + .iter() + .zip(other.xmm_space.iter()) + .all(|(a, b)| a == b) // Ignore padding field } } @@ -361,8 +358,8 @@ cfg_if! { .field("mxcsr", &self.mxcsr) .field("mxcr_mask", &self.mxcr_mask) .field("st_space", &self.st_space) - // FIXME: .field("xmm_space", &self.xmm_space) - // Ignore padding field + // FIXME: .field("xmm_space", &self.xmm_space) + // Ignore padding field .finish() } } diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 3e30ce5bb17cf..7589914fc5e0a 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -56,7 +56,7 @@ s! { pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } pub struct __fsid_t { @@ -251,7 +251,7 @@ s! { pub wd: ::c_int, pub mask: u32, pub cookie: u32, - pub len: u32 + pub len: u32, } pub struct sock_extended_err { @@ -281,7 +281,7 @@ s! { pub svm_reserved1: ::c_ushort, pub svm_port: ::c_uint, pub svm_cid: ::c_uint, - pub svm_zero: [u8; 4] + pub svm_zero: [u8; 4], } // linux/elf.h @@ -511,9 +511,9 @@ s! { } pub struct in6_ifreq { - pub ifr6_addr: ::in6_addr, - pub ifr6_prefixlen: u32, - pub ifr6_ifindex: ::c_int, + pub ifr6_addr: ::in6_addr, + pub ifr6_prefixlen: u32, + pub ifr6_ifindex: ::c_int, } pub struct statx { @@ -555,7 +555,7 @@ s_no_extra_traits! { pub nl_family: ::sa_family_t, nl_pad: ::c_ushort, pub nl_pid: u32, - pub nl_groups: u32 + pub nl_groups: u32, } pub struct dirent { @@ -675,19 +675,18 @@ s_no_extra_traits! { configuration for machine (useful for programs which must know all networks accessible). */ pub struct ifconf { - pub ifc_len: ::c_int, /* Size of buffer. */ + pub ifc_len: ::c_int, /* Size of buffer. */ pub ifc_ifcu: __c_anonymous_ifc_ifcu, } - } cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for sockaddr_nl { fn eq(&self, other: &sockaddr_nl) -> bool { - self.nl_family == other.nl_family && - self.nl_pid == other.nl_pid && - self.nl_groups == other.nl_groups + self.nl_family == other.nl_family + && self.nl_pid == other.nl_pid + && self.nl_groups == other.nl_groups } } impl Eq for sockaddr_nl {} @@ -715,10 +714,10 @@ cfg_if! { && self.d_reclen == other.d_reclen && self.d_type == other.d_type && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } @@ -731,7 +730,7 @@ cfg_if! { .field("d_off", &self.d_off) .field("d_reclen", &self.d_reclen) .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) + // FIXME: .field("d_name", &self.d_name) .finish() } } @@ -753,10 +752,10 @@ cfg_if! { && self.d_reclen == other.d_reclen && self.d_type == other.d_type && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } @@ -769,7 +768,7 @@ cfg_if! { .field("d_off", &self.d_off) .field("d_reclen", &self.d_reclen) .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) + // FIXME: .field("d_name", &self.d_name) .finish() } } @@ -802,8 +801,8 @@ cfg_if! { .field("si_signo", &self.si_signo) .field("si_errno", &self.si_errno) .field("si_code", &self.si_code) - // Ignore _pad - // Ignore _align + // Ignore _pad + // Ignore _align .finish() } } @@ -822,15 +821,15 @@ cfg_if! { fn eq(&self, other: &lastlog) -> bool { self.ll_time == other.ll_time && self - .ll_line - .iter() - .zip(other.ll_line.iter()) - .all(|(a,b)| a == b) + .ll_line + .iter() + .zip(other.ll_line.iter()) + .all(|(a, b)| a == b) && self - .ll_host - .iter() - .zip(other.ll_host.iter()) - .all(|(a,b)| a == b) + .ll_host + .iter() + .zip(other.ll_host.iter()) + .all(|(a, b)| a == b) } } @@ -841,7 +840,7 @@ cfg_if! { f.debug_struct("lastlog") .field("ll_time", &self.ll_time) .field("ll_line", &self.ll_line) - // FIXME: .field("ll_host", &self.ll_host) + // FIXME: .field("ll_host", &self.ll_host) .finish() } } @@ -859,21 +858,21 @@ cfg_if! { self.ut_type == other.ut_type && self.ut_pid == other.ut_pid && self - .ut_line - .iter() - .zip(other.ut_line.iter()) - .all(|(a,b)| a == b) + .ut_line + .iter() + .zip(other.ut_line.iter()) + .all(|(a, b)| a == b) && self.ut_id == other.ut_id && self - .ut_user - .iter() - .zip(other.ut_user.iter()) - .all(|(a,b)| a == b) + .ut_user + .iter() + .zip(other.ut_user.iter()) + .all(|(a, b)| a == b) && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a, b)| a == b) && self.ut_exit == other.ut_exit && self.ut_session == other.ut_session && self.ut_tv == other.ut_tv @@ -892,7 +891,7 @@ cfg_if! { .field("ut_line", &self.ut_line) .field("ut_id", &self.ut_id) .field("ut_user", &self.ut_user) - // FIXME: .field("ut_host", &self.ut_host) + // FIXME: .field("ut_host", &self.ut_host) .field("ut_exit", &self.ut_exit) .field("ut_session", &self.ut_session) .field("ut_tv", &self.ut_tv) @@ -922,18 +921,18 @@ cfg_if! { fn eq(&self, other: &sockaddr_alg) -> bool { self.salg_family == other.salg_family && self - .salg_type - .iter() - .zip(other.salg_type.iter()) - .all(|(a, b)| a == b) + .salg_type + .iter() + .zip(other.salg_type.iter()) + .all(|(a, b)| a == b) && self.salg_feat == other.salg_feat && self.salg_mask == other.salg_mask && self - .salg_name - .iter() - .zip(other.salg_name.iter()) - .all(|(a, b)| a == b) - } + .salg_name + .iter() + .zip(other.salg_name.iter()) + .all(|(a, b)| a == b) + } } impl Eq for sockaddr_alg {} @@ -965,7 +964,7 @@ cfg_if! { self.id == other.id && self.name[..] == other.name[..] && self.ff_effects_max == other.ff_effects_max - } + } } impl Eq for uinput_setup {} @@ -989,14 +988,14 @@ cfg_if! { impl PartialEq for uinput_user_dev { fn eq(&self, other: &uinput_user_dev) -> bool { - self.name[..] == other.name[..] + self.name[..] == other.name[..] && self.id == other.id && self.ff_effects_max == other.ff_effects_max && self.absmax[..] == other.absmax[..] && self.absmin[..] == other.absmin[..] && self.absfuzz[..] == other.absfuzz[..] && self.absflat[..] == other.absflat[..] - } + } } impl Eq for uinput_user_dev {} @@ -1074,12 +1073,7 @@ cfg_if! { #[allow(deprecated)] impl af_alg_iv { fn as_slice(&self) -> &[u8] { - unsafe { - ::core::slice::from_raw_parts( - self.iv.as_ptr(), - self.ivlen as usize - ) - } + unsafe { ::core::slice::from_raw_parts(self.iv.as_ptr(), self.ivlen as usize) } } } @@ -1087,7 +1081,7 @@ cfg_if! { impl PartialEq for af_alg_iv { fn eq(&self, other: &af_alg_iv) -> bool { *self.as_slice() == *other.as_slice() - } + } } #[allow(deprecated)] @@ -1111,9 +1105,9 @@ cfg_if! { impl PartialEq for prop_info { fn eq(&self, other: &prop_info) -> bool { - self.__name == other.__name && - self.__serial == other.__serial && - self.__value == other.__value + self.__name == other.__name + && self.__serial == other.__serial + && self.__value == other.__value } } impl Eq for prop_info {} @@ -1755,18 +1749,22 @@ pub const TIOCCONS: ::c_int = 0x541D; pub const TIOCSBRK: ::c_int = 0x5427; pub const TIOCCBRK: ::c_int = 0x5428; cfg_if! { - if #[cfg(any(target_arch = "x86", - target_arch = "x86_64", - target_arch = "arm", - target_arch = "aarch64", - target_arch = "riscv64", - target_arch = "s390x"))] { + if #[cfg(any( + target_arch = "x86", + target_arch = "x86_64", + target_arch = "arm", + target_arch = "aarch64", + target_arch = "riscv64", + target_arch = "s390x" + ))] { pub const FICLONE: ::c_int = 0x40049409; pub const FICLONERANGE: ::c_int = 0x4020940D; - } else if #[cfg(any(target_arch = "mips", - target_arch = "mips64", - target_arch = "powerpc", - target_arch = "powerpc64"))] { + } else if #[cfg(any( + target_arch = "mips", + target_arch = "mips64", + target_arch = "powerpc", + target_arch = "powerpc64" + ))] { pub const FICLONE: ::c_int = 0x80049409; pub const FICLONERANGE: ::c_int = 0x8020940D; } @@ -1968,7 +1966,11 @@ cfg_if! { pub const FS_IOC32_SETFLAGS: ::c_int = 0x40046602; pub const FS_IOC32_GETVERSION: ::c_int = 0x80047601; pub const FS_IOC32_SETVERSION: ::c_int = 0x40047602; - } else if #[cfg(any(target_arch = "x86_64", target_arch = "riscv64", target_arch = "aarch64"))] { + } else if #[cfg(any( + target_arch = "x86_64", + target_arch = "riscv64", + target_arch = "aarch64" + ))] { pub const FS_IOC_GETFLAGS: ::c_int = 0x80086601; pub const FS_IOC_SETFLAGS: ::c_int = 0x40086602; pub const FS_IOC_GETVERSION: ::c_int = 0x80087601; @@ -3636,13 +3638,9 @@ cfg_if! { } f! { - pub fn CMSG_NXTHDR(mhdr: *const msghdr, - cmsg: *const cmsghdr) -> *mut cmsghdr { - let next = (cmsg as usize - + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) - as *mut cmsghdr; - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; + pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { + let next = (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; + let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if (next.offset(1)) as usize > max { 0 as *mut cmsghdr } else { @@ -3663,16 +3661,14 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc + let size_in_bits = 8 * ::mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.__bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc + let size_in_bits = 8 * ::mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.__bits[idx] &= !(1 << offset); () @@ -3689,7 +3685,7 @@ f! { let size_of_mask = ::mem::size_of_val(&cpuset.__bits[0]); for i in cpuset.__bits[..(size / size_of_mask)].iter() { s += i.count_ones(); - }; + } s as ::c_int } @@ -3708,7 +3704,7 @@ f! { ((dev & 0xff) | ((dev >> 12) & 0xfff00)) as ::c_int } pub fn NLA_ALIGN(len: ::c_int) -> ::c_int { - return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1) + return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1); } pub fn SO_EE_OFFENDER(ee: *const ::sock_extended_err) -> *mut ::sockaddr { @@ -3722,7 +3718,6 @@ safe_f! { let mi = mi as ::dev_t; ((ma & 0xfff) << 8) | (mi & 0xff) | ((mi & 0xfff00) << 12) } - } extern "C" { diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 6049dff3787d5..a6666c6a61d51 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -163,7 +163,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct ipc_perm { @@ -175,7 +175,7 @@ s! { pub mode: ::mode_t, pub __seq: ::c_int, __unused1: ::c_long, - __unused2: ::c_long + __unused2: ::c_long, } pub struct termios { @@ -198,7 +198,7 @@ s! { } pub struct pthread_attr_t { - __size: [u32; 11] + __size: [u32; 11], } pub struct sigset_t { @@ -252,7 +252,7 @@ s! { pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } pub struct shmid_ds { @@ -372,13 +372,11 @@ s_no_extra_traits! { pub mq_maxmsg: ::c_long, pub mq_msgsize: ::c_long, pub mq_curmsgs: ::c_long, - pad: [::c_long; 4] + pad: [::c_long; 4], } - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] + #[cfg_attr(target_pointer_width = "32", repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", repr(align(8)))] pub struct pthread_cond_t { size: [u8; ::__SIZEOF_PTHREAD_COND_T], } @@ -386,7 +384,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { - priv_: [f64; 3] + priv_: [f64; 3], } } @@ -399,10 +397,10 @@ cfg_if! { && self.d_reclen == other.d_reclen && self.d_type == other.d_type && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } impl Eq for dirent {} @@ -443,10 +441,10 @@ cfg_if! { && self.freehigh == other.freehigh && self.mem_unit == other.mem_unit && self - .__reserved - .iter() - .zip(other.__reserved.iter()) - .all(|(a,b)| a == b) + .__reserved + .iter() + .zip(other.__reserved.iter()) + .all(|(a, b)| a == b) } } impl Eq for sysinfo {} @@ -491,10 +489,10 @@ cfg_if! { impl PartialEq for mq_attr { fn eq(&self, other: &mq_attr) -> bool { - self.mq_flags == other.mq_flags && - self.mq_maxmsg == other.mq_maxmsg && - self.mq_msgsize == other.mq_msgsize && - self.mq_curmsgs == other.mq_curmsgs + self.mq_flags == other.mq_flags + && self.mq_maxmsg == other.mq_maxmsg + && self.mq_msgsize == other.mq_msgsize + && self.mq_curmsgs == other.mq_curmsgs } } impl Eq for mq_attr {} @@ -519,10 +517,7 @@ cfg_if! { impl PartialEq for pthread_cond_t { fn eq(&self, other: &pthread_cond_t) -> bool { - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) + self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b) } } impl Eq for pthread_cond_t {} @@ -1416,16 +1411,12 @@ pub const PRIO_USER: ::c_int = 2; pub const SOMAXCONN: ::c_int = 128; f! { - pub fn CMSG_NXTHDR(mhdr: *const msghdr, - cmsg: *const cmsghdr) -> *mut cmsghdr { + pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if ((*cmsg).cmsg_len as usize) < ::mem::size_of::() { return 0 as *mut cmsghdr; }; - let next = (cmsg as usize + - super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) - as *mut cmsghdr; - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; + let next = (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; + let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if (next.offset(1)) as usize > max { 0 as *mut cmsghdr } else { @@ -1440,16 +1431,14 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); () diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index ba56be7a92479..63511e61f83e0 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -92,12 +92,16 @@ pub const SO_BINDTOIFINDEX: ::c_int = 62; cfg_if! { // Some of these platforms in CI already have these constants. // But they may still not have those _OLD ones. - if #[cfg(all(any(target_arch = "x86", - target_arch = "x86_64", - target_arch = "aarch64", - target_arch = "csky", - target_arch = "loongarch64"), - not(any(target_env = "musl", target_env = "ohos"))))] { + if #[cfg(all( + any( + target_arch = "x86", + target_arch = "x86_64", + target_arch = "aarch64", + target_arch = "csky", + target_arch = "loongarch64" + ), + not(any(target_env = "musl", target_env = "ohos")) + ))] { pub const SO_TIMESTAMP_NEW: ::c_int = 63; pub const SO_TIMESTAMPNS_NEW: ::c_int = 64; pub const SO_TIMESTAMPING_NEW: ::c_int = 65; @@ -110,14 +114,16 @@ cfg_if! { // pub const SO_BUSY_POLL_BUDGET: ::c_int = 70; cfg_if! { - if #[cfg(any(target_arch = "x86", - target_arch = "x86_64", - target_arch = "arm", - target_arch = "aarch64", - target_arch = "riscv64", - target_arch = "s390x", - target_arch = "csky", - target_arch = "loongarch64"))] { + if #[cfg(any( + target_arch = "x86", + target_arch = "x86_64", + target_arch = "arm", + target_arch = "aarch64", + target_arch = "riscv64", + target_arch = "s390x", + target_arch = "csky", + target_arch = "loongarch64" + ))] { pub const FICLONE: ::c_ulong = 0x40049409; pub const FICLONERANGE: ::c_ulong = 0x4020940D; } @@ -246,7 +252,11 @@ cfg_if! { // where S stands for size (int, long, struct...) // where T stands for type ('f','v','X'...) // where N stands for NR (NumbeR) - if #[cfg(any(target_arch = "x86", target_arch = "arm", target_arch = "csky"))] { + if #[cfg(any( + target_arch = "x86", + target_arch = "arm", + target_arch = "csky" + ))] { pub const FS_IOC_GETFLAGS: ::Ioctl = 0x80046601; pub const FS_IOC_SETFLAGS: ::Ioctl = 0x40046602; pub const FS_IOC_GETVERSION: ::Ioctl = 0x80047601; @@ -258,11 +268,13 @@ cfg_if! { pub const TUNATTACHFILTER: ::Ioctl = 0x400854d5; pub const TUNDETACHFILTER: ::Ioctl = 0x400854d6; pub const TUNGETFILTER: ::Ioctl = 0x800854db; - } else if #[cfg(any(target_arch = "x86_64", - target_arch = "riscv64", - target_arch = "aarch64", - target_arch = "s390x", - target_arch = "loongarch64"))] { + } else if #[cfg(any( + target_arch = "x86_64", + target_arch = "riscv64", + target_arch = "aarch64", + target_arch = "s390x", + target_arch = "loongarch64" + ))] { pub const FS_IOC_GETFLAGS: ::Ioctl = 0x80086601; pub const FS_IOC_SETFLAGS: ::Ioctl = 0x40086602; pub const FS_IOC_GETVERSION: ::Ioctl = 0x80087601; @@ -278,8 +290,7 @@ cfg_if! { } cfg_if! { - if #[cfg(any(target_arch = "arm", - target_arch = "s390x"))] { + if #[cfg(any(target_arch = "arm", target_arch = "s390x"))] { pub const FIOQSIZE: ::Ioctl = 0x545E; } else { pub const FIOQSIZE: ::Ioctl = 0x5460; @@ -304,9 +315,7 @@ pub const IBSHIFT: ::tcflag_t = 16; // RLIMIT Constants cfg_if! { - if #[cfg(any(target_env = "gnu", - target_env = "uclibc"))] { - + if #[cfg(any(target_env = "gnu", target_env = "uclibc"))] { pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; @@ -326,9 +335,7 @@ cfg_if! { #[allow(deprecated)] #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; - } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] { - pub const RLIMIT_CPU: ::c_int = 0; pub const RLIMIT_FSIZE: ::c_int = 1; pub const RLIMIT_DATA: ::c_int = 2; @@ -357,8 +364,7 @@ cfg_if! { if #[cfg(target_env = "gnu")] { #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16; - } - else if #[cfg(target_env = "uclibc")] { + } else if #[cfg(target_env = "uclibc")] { #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::__rlimit_resource_t = 15; } diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index bdce5827c07bf..6432bc405bf66 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -280,9 +280,7 @@ pub const IBSHIFT: ::tcflag_t = 16; // RLIMIT Constants cfg_if! { - if #[cfg(any(target_env = "gnu", - target_env = "uclibc"))] { - + if #[cfg(any(target_env = "gnu", target_env = "uclibc"))] { pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; @@ -302,9 +300,7 @@ cfg_if! { #[allow(deprecated)] #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; - } else if #[cfg(target_env = "musl")] { - pub const RLIMIT_CPU: ::c_int = 0; pub const RLIMIT_FSIZE: ::c_int = 1; pub const RLIMIT_DATA: ::c_int = 2; @@ -341,17 +337,19 @@ cfg_if! { } cfg_if! { - if #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"), - any(target_env = "gnu", - target_env = "uclibc"))] { + if #[cfg( + any(target_arch = "mips64", target_arch = "mips64r6"), + any(target_env = "gnu", target_env = "uclibc") + )] { pub const RLIM_INFINITY: ::rlim_t = !0; } } cfg_if! { - if #[cfg(any(target_arch = "mips", target_arch = "mips32r6"), - any(target_env = "gnu", - target_env = "uclibc"))] { + if #[cfg( + any(target_arch = "mips", target_arch = "mips32r6"), + any(target_env = "gnu", target_env = "uclibc") + )] { pub const RLIM_INFINITY: ::rlim_t = 0x7fffffff; } } diff --git a/src/unix/linux_like/linux/arch/mod.rs b/src/unix/linux_like/linux/arch/mod.rs index 7f6ddc5a764ff..00914a43ac164 100644 --- a/src/unix/linux_like/linux/arch/mod.rs +++ b/src/unix/linux_like/linux/arch/mod.rs @@ -1,8 +1,10 @@ cfg_if! { - if #[cfg(any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "mips64", - target_arch = "mips64r6"))] { + if #[cfg(any( + target_arch = "mips", + target_arch = "mips32r6", + target_arch = "mips64", + target_arch = "mips64r6" + ))] { mod mips; pub use self::mips::*; } else if #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))] { diff --git a/src/unix/linux_like/linux/arch/powerpc/mod.rs b/src/unix/linux_like/linux/arch/powerpc/mod.rs index 93c454396d9a6..ca2ffd348e8db 100644 --- a/src/unix/linux_like/linux/arch/powerpc/mod.rs +++ b/src/unix/linux_like/linux/arch/powerpc/mod.rs @@ -260,7 +260,6 @@ pub const IBSHIFT: ::tcflag_t = 16; cfg_if! { if #[cfg(target_env = "gnu")] { - pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; @@ -282,9 +281,7 @@ cfg_if! { #[allow(deprecated)] #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; - } else if #[cfg(target_env = "musl")] { - pub const RLIMIT_CPU: ::c_int = 0; pub const RLIMIT_FSIZE: ::c_int = 1; pub const RLIMIT_DATA: ::c_int = 2; diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index c58dd6d45b690..67a91084e81c5 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -6,7 +6,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { @@ -53,7 +53,7 @@ s! { pub __seq: ::c_ushort, __pad2: ::c_ushort, __unused1: ::c_ulong, - __unused2: ::c_ulong + __unused2: ::c_ulong, } pub struct stat64 { @@ -122,7 +122,7 @@ s! { pub shm_lpid: ::pid_t, pub shm_nattch: ::shmatt_t, __unused4: ::c_ulong, - __unused5: ::c_ulong + __unused5: ::c_ulong, } pub struct msqid_ds { @@ -148,8 +148,8 @@ s! { pub si_code: ::c_int, #[doc(hidden)] #[deprecated( - since="0.2.54", - note="Please leave a comment on \ + since = "0.2.54", + note = "Please leave a comment on \ https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] @@ -160,7 +160,7 @@ s! { pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } pub struct mcontext_t { @@ -213,7 +213,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { - priv_: [i64; 2] + priv_: [i64; 2], } #[allow(missing_debug_implementations)] diff --git a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs index feaef00803dc0..7560fd0ab7d5e 100644 --- a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs @@ -6,7 +6,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { @@ -52,7 +52,7 @@ s! { pub __seq: ::c_ushort, __pad2: ::c_ushort, __unused1: ::c_ulong, - __unused2: ::c_ulong + __unused2: ::c_ulong, } pub struct stat64 { @@ -121,7 +121,7 @@ s! { pub shm_lpid: ::pid_t, pub shm_nattch: ::shmatt_t, __unused4: ::c_ulong, - __unused5: ::c_ulong + __unused5: ::c_ulong, } pub struct msqid_ds { @@ -147,8 +147,8 @@ s! { pub si_code: ::c_int, #[doc(hidden)] #[deprecated( - since="0.2.54", - note="Please leave a comment on \ + since = "0.2.54", + note = "Please leave a comment on \ https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] @@ -159,7 +159,7 @@ s! { pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } } @@ -167,7 +167,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { - priv_: [i64; 2] + priv_: [i64; 2], } } diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index 9b7c8d92e9a0e..68c59babe0411 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -6,7 +6,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { @@ -152,7 +152,7 @@ s! { pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } } @@ -160,7 +160,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(2))] pub struct max_align_t { - priv_: [i8; 20] + priv_: [i8; 20], } } diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 6655fc9c4faf4..13feaf6ff2a31 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -76,7 +76,7 @@ s! { pub sa_flags: ::c_int, pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, _resv: [::c_int; 1], } @@ -103,7 +103,7 @@ s! { pub __seq: ::c_ushort, __pad1: ::c_ushort, __unused1: ::c_ulong, - __unused2: ::c_ulong + __unused2: ::c_ulong, } pub struct shmid_ds { @@ -116,7 +116,7 @@ s! { pub shm_lpid: ::pid_t, pub shm_nattch: ::shmatt_t, __unused4: ::c_ulong, - __unused5: ::c_ulong + __unused5: ::c_ulong, } pub struct msqid_ds { @@ -160,7 +160,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { - priv_: [f32; 4] + priv_: [f32; 4], } } diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 54c84fa617c86..eb09a5b3ed9dd 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -107,7 +107,7 @@ s! { } pub struct pthread_attr_t { - __size: [u32; 9] + __size: [u32; 9], } pub struct sigset_t { @@ -140,12 +140,20 @@ s! { #[cfg(target_arch = "powerpc")] __reserved: ::__syscall_ulong_t, pub sem_otime: ::time_t, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6", target_arch = "powerpc")))] + #[cfg(not(any( + target_arch = "mips", + target_arch = "mips32r6", + target_arch = "powerpc" + )))] __reserved: ::__syscall_ulong_t, #[cfg(target_arch = "powerpc")] __reserved2: ::__syscall_ulong_t, pub sem_ctime: ::time_t, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6", target_arch = "powerpc")))] + #[cfg(not(any( + target_arch = "mips", + target_arch = "mips32r6", + target_arch = "powerpc" + )))] __reserved2: ::__syscall_ulong_t, pub sem_nsems: ::__syscall_ulong_t, __glibc_reserved3: ::__syscall_ulong_t, diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index da50989c7fccb..9a045cedb1a86 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -6,7 +6,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { @@ -148,8 +148,8 @@ s! { pub si_code: ::c_int, #[doc(hidden)] #[deprecated( - since="0.2.54", - note="Please leave a comment on \ + since = "0.2.54", + note = "Please leave a comment on \ https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] @@ -160,7 +160,7 @@ s! { pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } } diff --git a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs index ad50112543fcd..fcda280411f6c 100644 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -132,8 +132,8 @@ s! { pub si_code: ::c_int, #[doc(hidden)] #[deprecated( - since="0.2.54", - note="Please leave a comment on \ + since = "0.2.54", + note = "Please leave a comment on \ https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index 702d1e03224ee..bea8b24355784 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -8,7 +8,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { @@ -49,13 +49,13 @@ s! { pub l_start: ::off64_t, pub l_len: ::off64_t, pub l_pid: ::pid_t, - __reserved: ::c_short, + __reserved: ::c_short, } pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } pub struct stat { @@ -197,7 +197,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { - priv_: [i64; 3] + priv_: [i64; 3], } } diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 4592013b8ddcb..137ed0bfd1aad 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -7,7 +7,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { @@ -127,7 +127,7 @@ s! { pub __seq: ::c_ushort, __pad2: ::c_ushort, __unused1: ::c_ulong, - __unused2: ::c_ulong + __unused2: ::c_ulong, } pub struct stat64 { @@ -196,7 +196,7 @@ s! { pub shm_lpid: ::pid_t, pub shm_nattch: ::shmatt_t, __unused4: ::c_ulong, - __unused5: ::c_ulong + __unused5: ::c_ulong, } pub struct msqid_ds { @@ -222,8 +222,8 @@ s! { pub si_code: ::c_int, #[doc(hidden)] #[deprecated( - since="0.2.54", - note="Please leave a comment on \ + since = "0.2.54", + note = "Please leave a comment on \ https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] @@ -234,9 +234,8 @@ s! { pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } - } s_no_extra_traits! { @@ -269,7 +268,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [f64; 6] + priv_: [f64; 6], } } @@ -307,10 +306,10 @@ cfg_if! { .field("foo", &self.foo) .field("fos", &self.fos) .field("mxcsr", &self.mxcsr) - // Ignore __reserved field + // Ignore __reserved field .field("st_space", &self.st_space) .field("xmm_space", &self.xmm_space) - // Ignore padding field + // Ignore padding field .finish() } } @@ -354,7 +353,7 @@ cfg_if! { .field("uc_stack", &self.uc_stack) .field("uc_mcontext", &self.uc_mcontext) .field("uc_sigmask", &self.uc_sigmask) - // Ignore __private field + // Ignore __private field .finish() } } diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index f0babb8d3d71f..82273217aacf1 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -15,7 +15,7 @@ s! { #[cfg(target_arch = "sparc64")] __reserved0: ::c_int, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { @@ -140,7 +140,7 @@ s! { } pub struct pthread_attr_t { - __size: [usize; 8] + __size: [usize; 8], } pub struct user_regs_struct { @@ -160,7 +160,7 @@ s! { pub __seq: ::c_ushort, __pad1: ::c_ushort, __unused1: ::c_ulong, - __unused2: ::c_ulong + __unused2: ::c_ulong, } pub struct shmid_ds { @@ -173,7 +173,7 @@ s! { pub shm_lpid: ::pid_t, pub shm_nattch: ::shmatt_t, __unused4: ::c_ulong, - __unused5: ::c_ulong + __unused5: ::c_ulong, } pub struct siginfo_t { @@ -182,8 +182,8 @@ s! { pub si_code: ::c_int, #[doc(hidden)] #[deprecated( - since="0.2.54", - note="Please leave a comment on \ + since = "0.2.54", + note = "Please leave a comment on \ https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] @@ -194,7 +194,7 @@ s! { pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } pub struct ucontext_t { @@ -241,7 +241,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [f32; 8] + priv_: [f32; 8], } } diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs index 29d40cc91bc39..ff807e5ae6fb2 100644 --- a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs @@ -71,7 +71,7 @@ s! { pub f_spare: [::__fsword_t; 4], } - pub struct statfs64 { + pub struct statfs64 { pub f_type: ::__fsword_t, pub f_bsize: ::__fsword_t, pub f_blocks: u64, @@ -133,14 +133,14 @@ s! { } pub struct pthread_attr_t { - __size: [::c_ulong; 7] + __size: [::c_ulong; 7], } pub struct sigaction { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct stack_t { @@ -155,8 +155,8 @@ s! { pub si_code: ::c_int, #[doc(hidden)] #[deprecated( - since="0.2.54", - note="Please leave a comment on \ + since = "0.2.54", + note = "Please leave a comment on \ https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] @@ -174,7 +174,7 @@ s! { pub __seq: ::c_ushort, __pad2: ::c_ushort, __unused1: ::c_ulong, - __unused2: ::c_ulong + __unused2: ::c_ulong, } pub struct shmid_ds { @@ -187,7 +187,7 @@ s! { pub shm_lpid: ::pid_t, pub shm_nattch: ::shmatt_t, __unused4: ::c_ulong, - __unused5: ::c_ulong + __unused5: ::c_ulong, } pub struct user_regs_struct { @@ -196,7 +196,6 @@ s! { pub csr_era: u64, pub csr_badv: u64, pub reserved: [u64; 10], - } pub struct user_fp_struct { @@ -241,7 +240,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [f64; 4] + priv_: [f64; 4], } } diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index e1e2be19bc3ba..0ed28906d0198 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -135,14 +135,14 @@ s! { } pub struct pthread_attr_t { - __size: [::c_ulong; 7] + __size: [::c_ulong; 7], } pub struct sigaction { pub sa_flags: ::c_int, pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct stack_t { @@ -169,7 +169,7 @@ s! { pub __seq: ::c_ushort, __pad1: ::c_ushort, __unused1: ::c_ulong, - __unused2: ::c_ulong + __unused2: ::c_ulong, } pub struct shmid_ds { @@ -182,7 +182,7 @@ s! { pub shm_lpid: ::pid_t, pub shm_nattch: ::shmatt_t, __unused4: ::c_ulong, - __unused5: ::c_ulong + __unused5: ::c_ulong, } } @@ -190,7 +190,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [f64; 4] + priv_: [f64; 4], } } diff --git a/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs index ff394e33a2136..b703800503139 100644 --- a/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -75,7 +75,8 @@ s! { target_arch = "mips64r6", target_arch = "powerpc64", target_arch = "riscv64", - target_arch = "sparc64")))] + target_arch = "sparc64" + )))] __reserved: ::__syscall_ulong_t, pub sem_ctime: ::time_t, #[cfg(not(any( @@ -85,7 +86,8 @@ s! { target_arch = "mips64r6", target_arch = "powerpc64", target_arch = "riscv64", - target_arch = "sparc64")))] + target_arch = "sparc64" + )))] __reserved2: ::__syscall_ulong_t, pub sem_nsems: ::__syscall_ulong_t, __glibc_reserved3: ::__syscall_ulong_t, diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index 495c0b37e16c0..d9b80fa0ef530 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -19,7 +19,7 @@ s! { #[cfg(target_arch = "sparc64")] __reserved0: ::c_int, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { @@ -142,7 +142,7 @@ s! { } pub struct pthread_attr_t { - __size: [u64; 7] + __size: [u64; 7], } pub struct ipc_perm { @@ -168,7 +168,7 @@ s! { pub shm_lpid: ::pid_t, pub shm_nattch: ::shmatt_t, __unused4: ::c_ulong, - __unused5: ::c_ulong + __unused5: ::c_ulong, } pub struct siginfo_t { @@ -177,8 +177,8 @@ s! { pub si_code: ::c_int, #[doc(hidden)] #[deprecated( - since="0.2.54", - note="Please leave a comment on \ + since = "0.2.54", + note = "Please leave a comment on \ https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] @@ -189,7 +189,7 @@ s! { pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } } @@ -197,7 +197,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [i64; 4] + priv_: [i64; 4], } } diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index ff001a86ff800..88e8ce9891d70 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -128,8 +128,8 @@ s! { pub si_code: ::c_int, #[doc(hidden)] #[deprecated( - since="0.2.54", - note="Please leave a comment on \ + since = "0.2.54", + note = "Please leave a comment on \ https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 6bf730106e4c2..4c31252fbad30 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -18,7 +18,7 @@ s! { pub sa_sigaction: ::sighandler_t, __glibc_reserved0: ::c_int, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, pub sa_mask: ::sigset_t, } @@ -64,7 +64,7 @@ s! { pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } pub struct stat { @@ -110,7 +110,7 @@ s! { } pub struct pthread_attr_t { - __size: [::c_ulong; 7] + __size: [::c_ulong; 7], } pub struct ipc_perm { @@ -123,7 +123,7 @@ s! { pub __seq: ::c_ushort, __pad1: ::c_ushort, __unused1: ::c_ulong, - __unused2: ::c_ulong + __unused2: ::c_ulong, } pub struct shmid_ds { @@ -136,7 +136,7 @@ s! { pub shm_lpid: ::pid_t, pub shm_nattch: ::shmatt_t, __unused4: ::c_ulong, - __unused5: ::c_ulong + __unused5: ::c_ulong, } pub struct statvfs { @@ -231,9 +231,7 @@ cfg_if! { impl ::fmt::Debug for fpreg_t { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("fpreg_t") - .field("d", &self.d) - .finish() + f.debug_struct("fpreg_t").field("d", &self.d).finish() } } diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs index 5d1f5e47415b2..efb0aec7c1e9f 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -19,7 +19,7 @@ s! { #[cfg(target_arch = "sparc64")] __reserved0: ::c_int, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { @@ -44,8 +44,8 @@ s! { pub si_code: ::c_int, #[doc(hidden)] #[deprecated( - since="0.2.54", - note="Please leave a comment on \ + since = "0.2.54", + note = "Please leave a comment on \ https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] @@ -67,13 +67,13 @@ s! { pub l_start: ::off64_t, pub l_len: ::off64_t, pub l_pid: ::pid_t, - __reserved: ::c_short, + __reserved: ::c_short, } pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } pub struct stat { @@ -166,7 +166,7 @@ s! { } pub struct pthread_attr_t { - __size: [u64; 7] + __size: [u64; 7], } pub struct ipc_perm { @@ -192,7 +192,7 @@ s! { pub shm_lpid: ::pid_t, pub shm_nattch: ::shmatt_t, __reserved1: ::c_ulong, - __reserved2: ::c_ulong + __reserved2: ::c_ulong, } } @@ -200,7 +200,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [i64; 4] + priv_: [i64; 4], } } diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index eda6d2c2caba3..fc0caf77d3e47 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -16,7 +16,7 @@ s! { #[cfg(target_arch = "sparc64")] __reserved0: ::c_int, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { @@ -57,8 +57,8 @@ s! { pub si_code: ::c_int, #[doc(hidden)] #[deprecated( - since="0.2.54", - note="Please leave a comment on \ + since = "0.2.54", + note = "Please leave a comment on \ https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] @@ -69,7 +69,7 @@ s! { pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } pub struct stat { @@ -148,7 +148,7 @@ s! { #[cfg(target_pointer_width = "32")] __size: [u32; 8], #[cfg(target_pointer_width = "64")] - __size: [u64; 7] + __size: [u64; 7], } pub struct _libc_fpxreg { @@ -244,7 +244,7 @@ s! { pub __seq: ::c_ushort, __pad2: ::c_ushort, __unused1: u64, - __unused2: u64 + __unused2: u64, } pub struct shmid_ds { @@ -257,7 +257,7 @@ s! { pub shm_lpid: ::pid_t, pub shm_nattch: ::shmatt_t, __unused4: u64, - __unused5: u64 + __unused5: u64, } pub struct ptrace_rseq_configuration { @@ -316,7 +316,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [f64; 4] + priv_: [f64; 4], } } @@ -334,10 +334,10 @@ cfg_if! { && self.mxcr_mask == other.mxcr_mask && self.st_space == other.st_space && self - .xmm_space - .iter() - .zip(other.xmm_space.iter()) - .all(|(a,b)| a == b) + .xmm_space + .iter() + .zip(other.xmm_space.iter()) + .all(|(a, b)| a == b) // Ignore padding field } } @@ -355,8 +355,8 @@ cfg_if! { .field("mxcsr", &self.mxcsr) .field("mxcr_mask", &self.mxcr_mask) .field("st_space", &self.st_space) - // FIXME: .field("xmm_space", &self.xmm_space) - // Ignore padding field + // FIXME: .field("xmm_space", &self.xmm_space) + // Ignore padding field .finish() } } @@ -397,7 +397,7 @@ cfg_if! { .field("uc_stack", &self.uc_stack) .field("uc_mcontext", &self.uc_mcontext) .field("uc_sigmask", &self.uc_sigmask) - // Ignore __private field + // Ignore __private field .finish() } } diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index bfb73414a8b9e..f35a807942355 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -64,7 +64,7 @@ s! { pub aio_offset: off_t, #[cfg(all(not(target_arch = "x86_64"), target_pointer_width = "32"))] __unused1: [::c_char; 4], - __glibc_reserved: [::c_char; 32] + __glibc_reserved: [::c_char; 32], } pub struct __exit_status { @@ -119,7 +119,8 @@ s! { target_arch = "mips", target_arch = "mips32r6", target_arch = "mips64", - target_arch = "mips64r6")))] + target_arch = "mips64r6" + )))] pub c_ispeed: ::speed_t, #[cfg(not(any( target_arch = "sparc", @@ -127,7 +128,8 @@ s! { target_arch = "mips", target_arch = "mips32r6", target_arch = "mips64", - target_arch = "mips64r6")))] + target_arch = "mips64r6" + )))] pub c_ospeed: ::speed_t, } @@ -504,10 +506,8 @@ s! { } // FIXME(1.0) this is actually a union - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] + #[cfg_attr(target_pointer_width = "32", repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", repr(align(8)))] pub struct sem_t { #[cfg(target_pointer_width = "32")] __size: [::c_char; 16], @@ -623,30 +623,34 @@ s_no_extra_traits! { pub ut_host: [::c_char; __UT_HOSTSIZE], pub ut_exit: __exit_status, - #[cfg(any(target_arch = "aarch64", - target_arch = "s390x", - target_arch = "loongarch64", - all(target_pointer_width = "32", - not(target_arch = "x86_64"))))] + #[cfg(any( + target_arch = "aarch64", + target_arch = "s390x", + target_arch = "loongarch64", + all(target_pointer_width = "32", not(target_arch = "x86_64")) + ))] pub ut_session: ::c_long, - #[cfg(any(target_arch = "aarch64", - target_arch = "s390x", - target_arch = "loongarch64", - all(target_pointer_width = "32", - not(target_arch = "x86_64"))))] + #[cfg(any( + target_arch = "aarch64", + target_arch = "s390x", + target_arch = "loongarch64", + all(target_pointer_width = "32", not(target_arch = "x86_64")) + ))] pub ut_tv: ::timeval, - #[cfg(not(any(target_arch = "aarch64", - target_arch = "s390x", - target_arch = "loongarch64", - all(target_pointer_width = "32", - not(target_arch = "x86_64")))))] + #[cfg(not(any( + target_arch = "aarch64", + target_arch = "s390x", + target_arch = "loongarch64", + all(target_pointer_width = "32", not(target_arch = "x86_64")) + )))] pub ut_session: i32, - #[cfg(not(any(target_arch = "aarch64", - target_arch = "s390x", - target_arch = "loongarch64", - all(target_pointer_width = "32", - not(target_arch = "x86_64")))))] + #[cfg(not(any( + target_arch = "aarch64", + target_arch = "s390x", + target_arch = "loongarch64", + all(target_pointer_width = "32", not(target_arch = "x86_64")) + )))] pub ut_tv: __timeval, pub ut_addr_v6: [i32; 4], @@ -664,10 +668,10 @@ cfg_if! { && self.ut_id == other.ut_id && self.ut_user == other.ut_user && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a, b)| a == b) && self.ut_exit == other.ut_exit && self.ut_session == other.ut_session && self.ut_tv == other.ut_tv @@ -686,7 +690,7 @@ cfg_if! { .field("ut_line", &self.ut_line) .field("ut_id", &self.ut_id) .field("ut_user", &self.ut_user) - // FIXME: .field("ut_host", &self.ut_host) + // FIXME: .field("ut_host", &self.ut_host) .field("ut_exit", &self.ut_exit) .field("ut_session", &self.ut_session) .field("ut_tv", &self.ut_tv) @@ -715,9 +719,9 @@ cfg_if! { impl PartialEq for __c_anonymous_ptrace_syscall_info_data { fn eq(&self, other: &__c_anonymous_ptrace_syscall_info_data) -> bool { unsafe { - self.entry == other.entry || - self.exit == other.exit || - self.seccomp == other.seccomp + self.entry == other.entry + || self.exit == other.exit + || self.seccomp == other.seccomp } } } @@ -727,11 +731,11 @@ cfg_if! { impl ::fmt::Debug for __c_anonymous_ptrace_syscall_info_data { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { unsafe { - f.debug_struct("__c_anonymous_ptrace_syscall_info_data") - .field("entry", &self.entry) - .field("exit", &self.exit) - .field("seccomp", &self.seccomp) - .finish() + f.debug_struct("__c_anonymous_ptrace_syscall_info_data") + .field("entry", &self.entry) + .field("exit", &self.exit) + .field("seccomp", &self.seccomp) + .finish() } } } @@ -739,9 +743,9 @@ cfg_if! { impl ::hash::Hash for __c_anonymous_ptrace_syscall_info_data { fn hash(&self, state: &mut H) { unsafe { - self.entry.hash(state); - self.exit.hash(state); - self.seccomp.hash(state); + self.entry.hash(state); + self.exit.hash(state); + self.seccomp.hash(state); } } } @@ -1129,10 +1133,12 @@ pub const KEYCTL_SUPPORTS_DECRYPT: u32 = 0x02; pub const KEYCTL_SUPPORTS_SIGN: u32 = 0x04; pub const KEYCTL_SUPPORTS_VERIFY: u32 = 0x08; cfg_if! { - if #[cfg(not(any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "mips64", - target_arch = "mips64r6")))] { + if #[cfg(not(any( + target_arch = "mips", + target_arch = "mips32r6", + target_arch = "mips64", + target_arch = "mips64r6" + )))] { pub const KEYCTL_MOVE: u32 = 30; pub const KEYCTL_CAPABILITIES: u32 = 31; @@ -1286,10 +1292,7 @@ cfg_if! { target_arch = "riscv32" ))] { pub const PTHREAD_STACK_MIN: ::size_t = 16384; - } else if #[cfg(any( - target_arch = "sparc", - target_arch = "sparc64" - ))] { + } else if #[cfg(any(target_arch = "sparc", target_arch = "sparc64"))] { pub const PTHREAD_STACK_MIN: ::size_t = 0x6000; } else { pub const PTHREAD_STACK_MIN: ::size_t = 131072; @@ -1304,21 +1307,25 @@ pub const REG_ESIZE: ::c_int = 15; pub const REG_ERPAREN: ::c_int = 16; cfg_if! { - if #[cfg(any(target_arch = "x86", - target_arch = "x86_64", - target_arch = "arm", - target_arch = "aarch64", - target_arch = "loongarch64", - target_arch = "riscv64", - target_arch = "s390x"))] { + if #[cfg(any( + target_arch = "x86", + target_arch = "x86_64", + target_arch = "arm", + target_arch = "aarch64", + target_arch = "loongarch64", + target_arch = "riscv64", + target_arch = "s390x" + ))] { pub const TUNSETCARRIER: ::Ioctl = 0x400454e2; pub const TUNGETDEVNETNS: ::Ioctl = 0x54e3; - } else if #[cfg(any(target_arch = "mips", - target_arch = "mips64", - target_arch = "powerpc", - target_arch = "powerpc64", - target_arch = "sparc", - target_arch = "sparc64"))] { + } else if #[cfg(any( + target_arch = "mips", + target_arch = "mips64", + target_arch = "powerpc", + target_arch = "powerpc64", + target_arch = "sparc", + target_arch = "sparc64" + ))] { pub const TUNSETCARRIER: ::Ioctl = 0x800454e2; pub const TUNGETDEVNETNS: ::Ioctl = 0x200054e3; } else { @@ -1611,26 +1618,30 @@ extern "C" { } cfg_if! { - if #[cfg(any(target_arch = "x86", - target_arch = "arm", - target_arch = "m68k", - target_arch = "csky", - target_arch = "mips", - target_arch = "mips32r6", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "riscv32"))] { + if #[cfg(any( + target_arch = "x86", + target_arch = "arm", + target_arch = "m68k", + target_arch = "csky", + target_arch = "mips", + target_arch = "mips32r6", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "riscv32" + ))] { mod b32; pub use self::b32::*; - } else if #[cfg(any(target_arch = "x86_64", - target_arch = "aarch64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "mips64r6", - target_arch = "s390x", - target_arch = "sparc64", - target_arch = "riscv64", - target_arch = "loongarch64"))] { + } else if #[cfg(any( + target_arch = "x86_64", + target_arch = "aarch64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "mips64r6", + target_arch = "s390x", + target_arch = "sparc64", + target_arch = "riscv64", + target_arch = "loongarch64" + ))] { mod b64; pub use self::b64::*; } else { diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 44b56fe780f57..386820a69af10 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -294,11 +294,9 @@ s! { } pub struct cpu_set_t { - #[cfg(all(target_pointer_width = "32", - not(target_arch = "x86_64")))] + #[cfg(all(target_pointer_width = "32", not(target_arch = "x86_64")))] bits: [u32; 32], - #[cfg(not(all(target_pointer_width = "32", - not(target_arch = "x86_64"))))] + #[cfg(not(all(target_pointer_width = "32", not(target_arch = "x86_64"))))] bits: [u64; 16], } @@ -657,7 +655,7 @@ s! { pub wd: ::c_int, pub mask: u32, pub cookie: u32, - pub len: u32 + pub len: u32, } pub struct fanotify_response { @@ -682,7 +680,7 @@ s! { pub svm_reserved1: ::c_ushort, pub svm_port: ::c_uint, pub svm_cid: ::c_uint, - pub svm_zero: [u8; 4] + pub svm_zero: [u8; 4], } pub struct regmatch_t { @@ -810,11 +808,11 @@ s! { pub port: ::c_uchar, } - pub struct in6_ifreq { - pub ifr6_addr: ::in6_addr, - pub ifr6_prefixlen: u32, - pub ifr6_ifindex: ::c_int, - } + pub struct in6_ifreq { + pub ifr6_addr: ::in6_addr, + pub ifr6_prefixlen: u32, + pub ifr6_ifindex: ::c_int, + } pub struct option { pub name: *const ::c_char, @@ -925,41 +923,55 @@ s! { pub __pad: u8, // Must be zero } - #[cfg_attr(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "mips64r6", - target_arch = "s390x", - target_arch = "sparc64", - target_arch = "aarch64", - target_arch = "riscv64", - target_arch = "riscv32", - target_arch = "loongarch64"), - repr(align(4)))] - #[cfg_attr(not(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "mips64r6", - target_arch = "s390x", - target_arch = "sparc64", - target_arch = "aarch64", - target_arch = "riscv64", - target_arch = "riscv32", - target_arch = "loongarch64")), - repr(align(8)))] + #[cfg_attr( + any( + target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "mips64r6", + target_arch = "s390x", + target_arch = "sparc64", + target_arch = "aarch64", + target_arch = "riscv64", + target_arch = "riscv32", + target_arch = "loongarch64" + ), + repr(align(4)) + )] + #[cfg_attr( + not(any( + target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "mips64r6", + target_arch = "s390x", + target_arch = "sparc64", + target_arch = "aarch64", + target_arch = "riscv64", + target_arch = "riscv32", + target_arch = "loongarch64" + )), + repr(align(8)) + )] pub struct pthread_mutexattr_t { #[doc(hidden)] size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], } - #[cfg_attr(any(target_env = "musl", target_env = "ohos", target_pointer_width = "32"), - repr(align(4)))] - #[cfg_attr(all(not(target_env = "musl"), - not(target_env = "ohos"), - target_pointer_width = "64"), - repr(align(8)))] + #[cfg_attr( + any(target_env = "musl", target_env = "ohos", target_pointer_width = "32"), + repr(align(4)) + )] + #[cfg_attr( + all( + not(target_env = "musl"), + not(target_env = "ohos"), + target_pointer_width = "64" + ), + repr(align(8)) + )] pub struct pthread_rwlockattr_t { #[doc(hidden)] size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], @@ -1056,7 +1068,7 @@ s! { pub addr: ::sockaddr, pub alg: __u16, pub key_len: __u16, - pub key: [__u8;0], + pub key: [__u8; 0], } pub struct iw_pmksa { @@ -1108,7 +1120,7 @@ s! { pub encoding_login_index: __u8, pub txpower_capa: __u16, pub num_txpower: __u8, - pub txpower: [__s32;IW_MAX_TXPOWER], + pub txpower: [__s32; IW_MAX_TXPOWER], pub we_version_compiled: __u8, pub we_version_source: __u8, pub retry_capa: __u16, @@ -1134,7 +1146,7 @@ s! { cfg_if! { if #[cfg(not(target_arch = "sparc64"))] { - s!{ + s! { pub struct iw_thrspy { pub addr: ::sockaddr, pub qual: iw_quality, @@ -1174,7 +1186,7 @@ s_no_extra_traits! { pub nl_family: ::sa_family_t, nl_pad: ::c_ushort, pub nl_pid: u32, - pub nl_groups: u32 + pub nl_groups: u32, } pub struct dirent { @@ -1325,103 +1337,155 @@ s_no_extra_traits! { pub hdr: ::tpacket_bd_header_u, } - #[cfg_attr(all(any(target_env = "musl", target_env = "ohos"), - target_pointer_width = "32"), - repr(align(4)))] - #[cfg_attr(all(any(target_env = "musl", target_env = "ohos"), - target_pointer_width = "64"), - repr(align(8)))] - #[cfg_attr(all(not(any(target_env = "musl", target_env = "ohos")), - target_arch = "x86"), - repr(align(4)))] - #[cfg_attr(all(not(any(target_env = "musl", target_env = "ohos")), - not(target_arch = "x86")), - repr(align(8)))] + #[cfg_attr( + all( + any(target_env = "musl", target_env = "ohos"), + target_pointer_width = "32" + ), + repr(align(4)) + )] + #[cfg_attr( + all( + any(target_env = "musl", target_env = "ohos"), + target_pointer_width = "64" + ), + repr(align(8)) + )] + #[cfg_attr( + all( + not(any(target_env = "musl", target_env = "ohos")), + target_arch = "x86" + ), + repr(align(4)) + )] + #[cfg_attr( + all( + not(any(target_env = "musl", target_env = "ohos")), + not(target_arch = "x86") + ), + repr(align(8)) + )] pub struct pthread_cond_t { #[doc(hidden)] size: [u8; ::__SIZEOF_PTHREAD_COND_T], } - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "csky", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "csky", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86"))), - repr(align(8)))] + #[cfg_attr( + all( + target_pointer_width = "32", + any( + target_arch = "mips", + target_arch = "mips32r6", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "csky", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86" + ) + ), + repr(align(4)) + )] + #[cfg_attr( + any( + target_pointer_width = "64", + not(any( + target_arch = "mips", + target_arch = "mips32r6", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "csky", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86" + )) + ), + repr(align(8)) + )] pub struct pthread_mutex_t { #[doc(hidden)] size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], } - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "csky", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86"))), - repr(align(8)))] + #[cfg_attr( + all( + target_pointer_width = "32", + any( + target_arch = "mips", + target_arch = "mips32r6", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "csky", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86" + ) + ), + repr(align(4)) + )] + #[cfg_attr( + any( + target_pointer_width = "64", + not(any( + target_arch = "mips", + target_arch = "mips32r6", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86" + )) + ), + repr(align(8)) + )] pub struct pthread_rwlock_t { size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], } - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "csky", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "mips", - target_arch = "mips32r6", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "csky", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86"))), - repr(align(8)))] + #[cfg_attr( + all( + target_pointer_width = "32", + any( + target_arch = "mips", + target_arch = "mips32r6", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "csky", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86" + ) + ), + repr(align(4)) + )] + #[cfg_attr( + any( + target_pointer_width = "64", + not(any( + target_arch = "mips", + target_arch = "mips32r6", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "csky", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86" + )) + ), + repr(align(8)) + )] pub struct pthread_barrier_t { size: [u8; ::__SIZEOF_PTHREAD_BARRIER_T], } @@ -1482,24 +1546,24 @@ s_no_extra_traits! { // linux/wireless.h pub union iwreq_data { - pub name: [c_char; ::IFNAMSIZ], - pub essid: iw_point, - pub nwid: iw_param, - pub freq: iw_freq, - pub sens: iw_param, - pub bitrate: iw_param, - pub txpower: iw_param, - pub rts: iw_param, - pub frag: iw_param, - pub mode: __u32, - pub retry: iw_param, - pub encoding: iw_point, - pub power: iw_param, - pub qual: iw_quality, - pub ap_addr: ::sockaddr, - pub addr: ::sockaddr, - pub param: iw_param, - pub data: iw_point, + pub name: [c_char; ::IFNAMSIZ], + pub essid: iw_point, + pub nwid: iw_param, + pub freq: iw_freq, + pub sens: iw_param, + pub bitrate: iw_param, + pub txpower: iw_param, + pub rts: iw_param, + pub frag: iw_param, + pub mode: __u32, + pub retry: iw_param, + pub encoding: iw_point, + pub power: iw_param, + pub qual: iw_quality, + pub ap_addr: ::sockaddr, + pub addr: ::sockaddr, + pub param: iw_param, + pub data: iw_point, } pub struct iw_event { @@ -1522,9 +1586,9 @@ cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for sockaddr_nl { fn eq(&self, other: &sockaddr_nl) -> bool { - self.nl_family == other.nl_family && - self.nl_pid == other.nl_pid && - self.nl_groups == other.nl_groups + self.nl_family == other.nl_family + && self.nl_pid == other.nl_pid + && self.nl_groups == other.nl_groups } } impl Eq for sockaddr_nl {} @@ -1552,10 +1616,10 @@ cfg_if! { && self.d_reclen == other.d_reclen && self.d_type == other.d_type && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } @@ -1568,7 +1632,7 @@ cfg_if! { .field("d_off", &self.d_off) .field("d_reclen", &self.d_reclen) .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) + // FIXME: .field("d_name", &self.d_name) .finish() } } @@ -1590,10 +1654,10 @@ cfg_if! { && self.d_reclen == other.d_reclen && self.d_type == other.d_type && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } @@ -1606,7 +1670,7 @@ cfg_if! { .field("d_off", &self.d_off) .field("d_reclen", &self.d_reclen) .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) + // FIXME: .field("d_name", &self.d_name) .finish() } } @@ -1623,7 +1687,7 @@ cfg_if! { impl PartialEq for pthread_cond_t { fn eq(&self, other: &pthread_cond_t) -> bool { - self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b) + self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b) } } @@ -1632,7 +1696,7 @@ cfg_if! { impl ::fmt::Debug for pthread_cond_t { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("pthread_cond_t") - // FIXME: .field("size", &self.size) + // FIXME: .field("size", &self.size) .finish() } } @@ -1645,7 +1709,7 @@ cfg_if! { impl PartialEq for pthread_mutex_t { fn eq(&self, other: &pthread_mutex_t) -> bool { - self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b) + self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b) } } @@ -1654,7 +1718,7 @@ cfg_if! { impl ::fmt::Debug for pthread_mutex_t { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("pthread_mutex_t") - // FIXME: .field("size", &self.size) + // FIXME: .field("size", &self.size) .finish() } } @@ -1667,7 +1731,7 @@ cfg_if! { impl PartialEq for pthread_rwlock_t { fn eq(&self, other: &pthread_rwlock_t) -> bool { - self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b) + self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b) } } @@ -1676,7 +1740,7 @@ cfg_if! { impl ::fmt::Debug for pthread_rwlock_t { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("pthread_rwlock_t") - // FIXME: .field("size", &self.size) + // FIXME: .field("size", &self.size) .finish() } } @@ -1689,7 +1753,7 @@ cfg_if! { impl PartialEq for pthread_barrier_t { fn eq(&self, other: &pthread_barrier_t) -> bool { - self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b) + self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b) } } @@ -1713,18 +1777,18 @@ cfg_if! { fn eq(&self, other: &sockaddr_alg) -> bool { self.salg_family == other.salg_family && self - .salg_type - .iter() - .zip(other.salg_type.iter()) - .all(|(a, b)| a == b) + .salg_type + .iter() + .zip(other.salg_type.iter()) + .all(|(a, b)| a == b) && self.salg_feat == other.salg_feat && self.salg_mask == other.salg_mask && self - .salg_name - .iter() - .zip(other.salg_name.iter()) - .all(|(a, b)| a == b) - } + .salg_name + .iter() + .zip(other.salg_name.iter()) + .all(|(a, b)| a == b) + } } impl Eq for sockaddr_alg {} @@ -1756,7 +1820,7 @@ cfg_if! { self.id == other.id && self.name[..] == other.name[..] && self.ff_effects_max == other.ff_effects_max - } + } } impl Eq for uinput_setup {} @@ -1780,14 +1844,14 @@ cfg_if! { impl PartialEq for uinput_user_dev { fn eq(&self, other: &uinput_user_dev) -> bool { - self.name[..] == other.name[..] + self.name[..] == other.name[..] && self.id == other.id && self.ff_effects_max == other.ff_effects_max && self.absmax[..] == other.absmax[..] && self.absmin[..] == other.absmin[..] && self.absfuzz[..] == other.absfuzz[..] && self.absflat[..] == other.absflat[..] - } + } } impl Eq for uinput_user_dev {} @@ -1820,12 +1884,7 @@ cfg_if! { #[allow(deprecated)] impl af_alg_iv { fn as_slice(&self) -> &[u8] { - unsafe { - ::core::slice::from_raw_parts( - self.iv.as_ptr(), - self.ivlen as usize - ) - } + unsafe { ::core::slice::from_raw_parts(self.iv.as_ptr(), self.ivlen as usize) } } } @@ -1833,7 +1892,7 @@ cfg_if! { impl PartialEq for af_alg_iv { fn eq(&self, other: &af_alg_iv) -> bool { *self.as_slice() == *other.as_slice() - } + } } #[allow(deprecated)] @@ -1857,10 +1916,10 @@ cfg_if! { impl PartialEq for mq_attr { fn eq(&self, other: &mq_attr) -> bool { - self.mq_flags == other.mq_flags && - self.mq_maxmsg == other.mq_maxmsg && - self.mq_msgsize == other.mq_msgsize && - self.mq_curmsgs == other.mq_curmsgs + self.mq_flags == other.mq_flags + && self.mq_maxmsg == other.mq_maxmsg + && self.mq_msgsize == other.mq_msgsize + && self.mq_curmsgs == other.mq_curmsgs } } impl Eq for mq_attr {} @@ -1937,9 +1996,9 @@ cfg_if! { } impl PartialEq for hwtstamp_config { fn eq(&self, other: &hwtstamp_config) -> bool { - self.flags == other.flags && - self.tx_type == other.tx_type && - self.rx_filter == other.rx_filter + self.flags == other.flags + && self.tx_type == other.tx_type + && self.rx_filter == other.rx_filter } } impl Eq for hwtstamp_config {} @@ -1967,14 +2026,14 @@ cfg_if! { } impl PartialEq for sched_attr { fn eq(&self, other: &sched_attr) -> bool { - self.size == other.size && - self.sched_policy == other.sched_policy && - self.sched_flags == other.sched_flags && - self.sched_nice == other.sched_nice && - self.sched_priority == other.sched_priority && - self.sched_runtime == other.sched_runtime && - self.sched_deadline == other.sched_deadline && - self.sched_period == other.sched_period + self.size == other.size + && self.sched_policy == other.sched_policy + && self.sched_flags == other.sched_flags + && self.sched_nice == other.sched_nice + && self.sched_priority == other.sched_priority + && self.sched_runtime == other.sched_runtime + && self.sched_deadline == other.sched_deadline + && self.sched_period == other.sched_period } } impl Eq for sched_attr {} @@ -2019,9 +2078,9 @@ cfg_if! { impl ::fmt::Debug for iw_event { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("iw_event") - .field("len", &self.len ) - .field("cmd", &self.cmd ) - .field("u", &self.u ) + .field("len", &self.len) + .field("cmd", &self.cmd) + .field("u", &self.u) .finish() } } @@ -2037,8 +2096,8 @@ cfg_if! { impl ::fmt::Debug for iwreq { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("iwreq") - .field("ifr_ifrn", &self.ifr_ifrn ) - .field("u", &self.u ) + .field("ifr_ifrn", &self.ifr_ifrn) + .field("u", &self.u) .finish() } } @@ -2046,8 +2105,10 @@ cfg_if! { } cfg_if! { - if #[cfg(all(any(target_env = "gnu", target_env = "musl", target_env = "ohos"), - any(target_arch = "x86_64", target_arch = "x86")))] { + if #[cfg(all( + any(target_env = "gnu", target_env = "musl", target_env = "ohos"), + any(target_arch = "x86_64", target_arch = "x86") + ))] { extern "C" { pub fn iopl(level: ::c_int) -> ::c_int; pub fn ioperm(from: ::c_ulong, num: ::c_ulong, turn_on: ::c_int) -> ::c_int; @@ -2056,7 +2117,11 @@ cfg_if! { } cfg_if! { - if #[cfg(any(target_env = "gnu", target_env = "musl", target_env = "ohos"))] { + if #[cfg(any( + target_env = "gnu", + target_env = "musl", + target_env = "ohos" + ))] { pub const ABDAY_1: ::nl_item = 0x20000; pub const ABDAY_2: ::nl_item = 0x20001; pub const ABDAY_3: ::nl_item = 0x20002; @@ -5495,21 +5560,17 @@ pub const EPIOCGPARAMS: ::Ioctl = 0x80088a02; f! { pub fn NLA_ALIGN(len: ::c_int) -> ::c_int { - return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1) + return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1); } - pub fn CMSG_NXTHDR(mhdr: *const msghdr, - cmsg: *const cmsghdr) -> *mut cmsghdr { + pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if ((*cmsg).cmsg_len as usize) < ::mem::size_of::() { return 0 as *mut cmsghdr; }; - let next = (cmsg as usize + - super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) - as *mut cmsghdr; - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; - if (next.wrapping_offset(1)) as usize > max || - next as usize + super::CMSG_ALIGN((*next).cmsg_len as usize) > max + let next = (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; + let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; + if (next.wrapping_offset(1)) as usize > max + || next as usize + super::CMSG_ALIGN((*next).cmsg_len as usize) > max { 0 as *mut cmsghdr } else { @@ -5530,16 +5591,14 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); () @@ -5556,7 +5615,7 @@ f! { let size_of_mask = ::mem::size_of_val(&cpuset.bits[0]); for i in cpuset.bits[..(size / size_of_mask)].iter() { s += i.count_ones(); - }; + } s as ::c_int } @@ -5633,11 +5692,21 @@ f! { } pub fn BPF_STMT(code: ::__u16, k: ::__u32) -> sock_filter { - sock_filter{code: code, jt: 0, jf: 0, k: k} + sock_filter { + code: code, + jt: 0, + jf: 0, + k: k, + } } pub fn BPF_JUMP(code: ::__u16, k: ::__u32, jt: ::__u8, jf: ::__u8) -> sock_filter { - sock_filter{code: code, jt: jt, jf: jf, k: k} + sock_filter { + code: code, + jt: jt, + jf: jf, + k: k, + } } pub fn ELF32_R_SYM(val: Elf32_Word) -> Elf32_Word { @@ -5738,10 +5807,7 @@ cfg_if! { servlen: ::socklen_t, flags: ::c_int, ) -> ::c_int; - pub fn getloadavg( - loadavg: *mut ::c_double, - nelem: ::c_int - ) -> ::c_int; + pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; pub fn process_vm_readv( pid: ::pid_t, local_iov: *const ::iovec, @@ -5758,10 +5824,7 @@ cfg_if! { riovcnt: ::c_ulong, flags: ::c_ulong, ) -> isize; - pub fn futimes( - fd: ::c_int, - times: *const ::timeval - ) -> ::c_int; + pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; } } } @@ -5814,7 +5877,7 @@ cfg_if! { pub fn mq_setattr( mqd: ::mqd_t, newattr: *const ::mq_attr, - oldattr: *mut ::mq_attr + oldattr: *mut ::mq_attr, ) -> ::c_int; pub fn pthread_mutex_consistent(mutex: *mut pthread_mutex_t) -> ::c_int; @@ -6492,7 +6555,7 @@ cfg_if! { fd: ::c_int, mode: ::c_int, offset: ::off64_t, - len: ::off64_t + len: ::off64_t, ) -> ::c_int; pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int; pub fn fopen64(filename: *const c_char, mode: *const c_char) -> *mut ::FILE; diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index 115f1085704b4..4149b7ebb1534 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -49,7 +49,7 @@ s! { pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } pub struct ipc_perm { @@ -61,7 +61,7 @@ s! { pub mode: ::mode_t, pub __seq: ::c_int, __unused1: ::c_long, - __unused2: ::c_long + __unused2: ::c_long, } pub struct shmid_ds { @@ -190,7 +190,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { - priv_: (i64, i64) + priv_: (i64, i64), } } diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 089c06f859e6b..4fc29f4f0df05 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -3,7 +3,6 @@ pub type wchar_t = u32; pub type stat64 = ::stat; s! { - pub struct stat { pub st_dev: ::dev_t, pub st_ino: ::c_ulonglong, @@ -24,13 +23,13 @@ s! { pub st_ctime: ::time_t, pub st_ctime_nsec: ::c_long, - __unused: [::c_int;2], + __unused: [::c_int; 2], } pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } pub struct ipc_perm { diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index a67fff7cfc728..219c96b0d9fd9 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -63,7 +63,7 @@ s! { pub mode: ::mode_t, pub __seq: ::c_int, __unused1: ::c_long, - __unused2: ::c_long + __unused2: ::c_long, } pub struct shmid_ds { @@ -167,7 +167,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { - priv_: [f32; 4] + priv_: [f32; 4], } } diff --git a/src/unix/linux_like/linux/musl/b32/mod.rs b/src/unix/linux_like/linux/musl/b32/mod.rs index cecd6dcab7df9..b346d48aaa8b4 100644 --- a/src/unix/linux_like/linux/musl/b32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mod.rs @@ -8,7 +8,7 @@ pub type regoff_t = ::c_int; s! { pub struct pthread_attr_t { - __size: [u32; 9] + __size: [u32; 9], } pub struct sigset_t { diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 834a442802b27..80eb9f57c2622 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -47,7 +47,7 @@ s! { pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } pub struct ipc_perm { @@ -60,7 +60,7 @@ s! { pub __seq: ::c_int, __pad1: ::c_int, __pad2: ::c_longlong, - __pad3: ::c_longlong + __pad3: ::c_longlong, } pub struct shmid_ds { diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index c71cc61584860..13a099c18e26c 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -119,8 +119,8 @@ s! { pub si_code: ::c_int, #[doc(hidden)] #[deprecated( - since="0.2.54", - note="Please leave a comment on \ + since = "0.2.54", + note = "Please leave a comment on \ https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] @@ -190,7 +190,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { - priv_: (i64, f64) + priv_: (i64, f64), } } diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index f8bf2694f4b4c..95097d344d29e 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -49,7 +49,7 @@ s! { pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } pub struct ipc_perm { @@ -61,7 +61,7 @@ s! { pub mode: ::mode_t, pub __seq: ::c_int, __unused1: ::c_long, - __unused2: ::c_long + __unused2: ::c_long, } pub struct shmid_ds { @@ -113,7 +113,7 @@ s! { } pub struct mcontext_t { - __private: [u32; 22] + __private: [u32; 22], } pub struct siginfo_t { @@ -185,7 +185,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { - priv_: [f64; 3] + priv_: [f64; 3], } } @@ -223,10 +223,10 @@ cfg_if! { .field("foo", &self.foo) .field("fos", &self.fos) .field("mxcsr", &self.mxcsr) - // Ignore __reserved field + // Ignore __reserved field .field("st_space", &self.st_space) .field("xmm_space", &self.xmm_space) - // Ignore padding field + // Ignore padding field .finish() } } @@ -257,10 +257,10 @@ cfg_if! { && self.uc_mcontext == other.uc_mcontext && self.uc_sigmask == other.uc_sigmask && self - .__private - .iter() - .zip(other.__private.iter()) - .all(|(a,b)| a == b) + .__private + .iter() + .zip(other.__private.iter()) + .all(|(a, b)| a == b) } } @@ -274,7 +274,7 @@ cfg_if! { .field("uc_stack", &self.uc_stack) .field("uc_mcontext", &self.uc_mcontext) .field("uc_sigmask", &self.uc_sigmask) - // Ignore __private field + // Ignore __private field .finish() } } diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index d5c02419135e0..6528fa2d84e3e 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -113,7 +113,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [f32; 8] + priv_: [f32; 8], } } diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index ac02803640e30..de2477022950b 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -108,7 +108,6 @@ s! { pub csr_era: u64, pub csr_badv: u64, pub reserved: [u64; 10], - } pub struct user_fp_struct { @@ -153,7 +152,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [f64; 4] + priv_: [f64; 4], } } diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index 18fa6c664c81d..962c0759c6ea0 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -94,7 +94,7 @@ s! { pub __seq: ::c_int, __pad1: ::c_int, __unused1: ::c_ulong, - __unused2: ::c_ulong + __unused2: ::c_ulong, } } diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index d59343064c52e..dc25939b5027f 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -36,11 +36,11 @@ s! { pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } pub struct pthread_attr_t { - __size: [u64; 7] + __size: [u64; 7], } pub struct sigset_t { diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index c7cb63dd0b76f..6d20733faaa7b 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -57,7 +57,7 @@ s! { pub mode: ::mode_t, pub __seq: ::c_int, __unused1: ::c_long, - __unused2: ::c_long + __unused2: ::c_long, } } diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index b48f7ac56b095..a2b823c1adf95 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -125,8 +125,8 @@ s! { pub si_code: ::c_int, #[doc(hidden)] #[deprecated( - since="0.2.54", - note="Please leave a comment on \ + since = "0.2.54", + note = "Please leave a comment on \ https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index 02c9d117abeee..e25a17124002a 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -110,9 +110,7 @@ cfg_if! { impl ::fmt::Debug for fpreg_t { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("fpreg_t") - .field("d", &self.d) - .finish() + f.debug_struct("fpreg_t").field("d", &self.d).finish() } } diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index 81c9772cdbb44..d3bb14d4929c3 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -118,7 +118,7 @@ s! { pub mode: ::mode_t, pub __seq: ::c_int, __unused1: ::c_long, - __unused2: ::c_long + __unused2: ::c_long, } #[repr(align(8))] @@ -164,7 +164,7 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [f64; 4] + priv_: [f64; 4], } } @@ -182,10 +182,10 @@ cfg_if! { && self.mxcr_mask == other.mxcr_mask && self.st_space == other.st_space && self - .xmm_space - .iter() - .zip(other.xmm_space.iter()) - .all(|(a,b)| a == b) + .xmm_space + .iter() + .zip(other.xmm_space.iter()) + .all(|(a, b)| a == b) // Ignore padding field } } @@ -203,8 +203,8 @@ cfg_if! { .field("mxcsr", &self.mxcsr) .field("mxcr_mask", &self.mxcr_mask) .field("st_space", &self.st_space) - // FIXME: .field("xmm_space", &self.xmm_space) - // Ignore padding field + // FIXME: .field("xmm_space", &self.xmm_space) + // Ignore padding field .finish() } } @@ -232,10 +232,10 @@ cfg_if! { && self.uc_mcontext == other.uc_mcontext && self.uc_sigmask == other.uc_sigmask && self - .__private - .iter() - .zip(other.__private.iter()) - .all(|(a,b)| a == b) + .__private + .iter() + .zip(other.__private.iter()) + .all(|(a, b)| a == b) } } @@ -249,7 +249,7 @@ cfg_if! { .field("uc_stack", &self.uc_stack) .field("uc_mcontext", &self.uc_mcontext) .field("uc_sigmask", &self.uc_sigmask) - // Ignore __private field + // Ignore __private field .finish() } } diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index bfdbb0f0bad59..2135fb588122f 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -141,7 +141,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statvfs { @@ -492,7 +492,7 @@ cfg_if! { .__reserved .iter() .zip(other.__reserved.iter()) - .all(|(a,b)| a == b) + .all(|(a, b)| a == b) } } @@ -1007,22 +1007,27 @@ mod lfs64; pub use self::lfs64::*; cfg_if! { - if #[cfg(any(target_arch = "x86_64", - target_arch = "aarch64", - target_arch = "mips64", - target_arch = "powerpc64", - target_arch = "s390x", - target_arch = "riscv64", - target_arch = "loongarch64"))] { + if #[cfg(any( + target_arch = "x86_64", + target_arch = "aarch64", + target_arch = "mips64", + target_arch = "powerpc64", + target_arch = "s390x", + target_arch = "riscv64", + target_arch = "loongarch64" + ))] { mod b64; pub use self::b64::*; - } else if #[cfg(any(target_arch = "x86", - target_arch = "mips", - target_arch = "powerpc", - target_arch = "hexagon", - target_arch = "riscv32", - target_arch = "arm"))] { + } else if #[cfg(any( + target_arch = "x86", + target_arch = "mips", + target_arch = "powerpc", + target_arch = "hexagon", + target_arch = "riscv32", + target_arch = "arm" + ))] { mod b32; pub use self::b32::*; - } else { } + } else { + } } diff --git a/src/unix/linux_like/linux/uclibc/arm/mod.rs b/src/unix/linux_like/linux/uclibc/arm/mod.rs index 70b890d3eeab0..cf8cdf694584c 100644 --- a/src/unix/linux_like/linux/uclibc/arm/mod.rs +++ b/src/unix/linux_like/linux/uclibc/arm/mod.rs @@ -65,8 +65,7 @@ s! { __unused5: ::c_ulong, } - pub struct stat64 - { + pub struct stat64 { pub st_dev: ::c_ulonglong, pub __pad1: ::c_uint, pub __st_ino: ::ino_t, @@ -167,7 +166,7 @@ s! { pub struct sigaction { pub sa_sigaction: ::sighandler_t, pub sa_flags: ::c_ulong, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, pub sa_mask: sigset_t, } @@ -243,10 +242,8 @@ s! { } // FIXME(1.0) this is actually a union - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] + #[cfg_attr(target_pointer_width = "32", repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", repr(align(8)))] pub struct sem_t { #[cfg(target_pointer_width = "32")] __size: [::c_char; 16], diff --git a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs index 0052ddb3d9597..7141bd57ecbaa 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs @@ -81,7 +81,7 @@ s! { } pub struct pthread_attr_t { - __size: [u32; 9] + __size: [u32; 9], } pub struct sigaction { @@ -131,7 +131,7 @@ s! { pub __seq: ::c_ushort, __pad1: ::c_ushort, __unused1: ::c_ulong, - __unused2: ::c_ulong + __unused2: ::c_ulong, } pub struct shmid_ds { @@ -144,7 +144,7 @@ s! { pub shm_lpid: ::pid_t, pub shm_nattch: ::shmatt_t, __unused4: ::c_ulong, - __unused5: ::c_ulong + __unused5: ::c_ulong, } pub struct msqid_ds { @@ -256,10 +256,8 @@ s! { } // FIXME(1.0): this is actually a union - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] + #[cfg_attr(target_pointer_width = "32", repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", repr(align(8)))] pub struct sem_t { #[cfg(target_pointer_width = "32")] __size: [::c_char; 16], diff --git a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs index 458dce029cd59..3569990f5507d 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs @@ -61,7 +61,7 @@ s! { } pub struct pthread_attr_t { - __size: [::c_ulong; 7] + __size: [::c_ulong; 7], } pub struct sigaction { @@ -99,7 +99,7 @@ s! { pub __seq: ::c_ushort, __pad1: ::c_ushort, __unused1: ::c_ulong, - __unused2: ::c_ulong + __unused2: ::c_ulong, } pub struct shmid_ds { @@ -112,7 +112,7 @@ s! { pub shm_lpid: ::pid_t, pub shm_nattch: ::shmatt_t, __unused4: ::c_ulong, - __unused5: ::c_ulong + __unused5: ::c_ulong, } pub struct msqid_ds { @@ -187,10 +187,8 @@ s! { } // FIXME(1.0): this is actually a union - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] + #[cfg_attr(target_pointer_width = "32", repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", repr(align(8)))] pub struct sem_t { __size: [::c_char; 32], } diff --git a/src/unix/linux_like/linux/uclibc/mod.rs b/src/unix/linux_like/linux/uclibc/mod.rs index 07bf7833720d1..84bd975c26cfe 100644 --- a/src/unix/linux_like/linux/uclibc/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mod.rs @@ -17,7 +17,8 @@ cfg_if! { } s! { - pub struct statvfs { // Different than GNU! + pub struct statvfs { + // Different than GNU! pub f_bsize: ::c_ulong, pub f_frsize: ::c_ulong, pub f_blocks: ::fsblkcnt_t, @@ -80,20 +81,28 @@ s! { pub nr: ::__s32, } - #[cfg_attr(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "s390x", - target_arch = "sparc64"), - repr(align(4)))] - #[cfg_attr(not(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "s390x", - target_arch = "sparc64")), - repr(align(8)))] + #[cfg_attr( + any( + target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "s390x", + target_arch = "sparc64" + ), + repr(align(4)) + )] + #[cfg_attr( + not(any( + target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "s390x", + target_arch = "sparc64" + )), + repr(align(8)) + )] pub struct pthread_mutexattr_t { size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], } diff --git a/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs b/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs index 56a0e37f6dfcb..f14bbab226f6a 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs @@ -20,9 +20,9 @@ s! { /// | MSB | LSB | /// | ---------------- | ------------------- | /// | 8bit granularity | 24bit offset .. | - gran_offset: l4_umword_t , + gran_offset: l4_umword_t, /// Bitmap of CPUs. - map: l4_umword_t , + map: l4_umword_t, } } diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index 759fdbff15068..f28fa10019f02 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -34,7 +34,7 @@ s! { pub __seq: ::c_ushort, __pad2: ::c_ushort, __unused1: ::c_ulong, - __unused2: ::c_ulong + __unused2: ::c_ulong, } #[cfg(not(target_os = "l4re"))] @@ -55,9 +55,9 @@ s! { } pub struct siginfo_t { - si_signo: ::c_int, // signal number - si_errno: ::c_int, // if not zero: error value of signal, see errno.h - si_code: ::c_int, // signal code + si_signo: ::c_int, // signal number + si_errno: ::c_int, // if not zero: error value of signal, see errno.h + si_code: ::c_int, // signal code pub _pad: [::c_int; 28], // unported union _align: [usize; 0], } @@ -72,7 +72,7 @@ s! { pub shm_lpid: ::pid_t, pub shm_nattch: ::shmatt_t, __unused1: ::c_ulong, - __unused2: ::c_ulong + __unused2: ::c_ulong, } pub struct msqid_ds { @@ -113,13 +113,13 @@ s! { * definitions below are *unverified* and might **break** the software */ -// pub struct in_addr { -// pub s_addr: in_addr_t, -// } -// -// pub struct in6_addr { -// pub s6_addr: [u8; 16], -// } + // pub struct in_addr { + // pub s_addr: in_addr_t, + // } + // + // pub struct in6_addr { + // pub s6_addr: [u8; 16], + // } pub struct stat { pub st_dev: ::c_ulong, @@ -131,7 +131,7 @@ s! { pub st_uid: ::uid_t, pub st_gid: ::gid_t, pub st_rdev: ::c_ulong, // dev_t - pub st_size: off_t, // file size + pub st_size: off_t, // file size pub st_blksize: ::blksize_t, pub st_blocks: ::blkcnt_t, pub st_atime: ::time_t, @@ -140,23 +140,25 @@ s! { pub st_mtime_nsec: ::c_ulong, pub st_ctime: ::time_t, pub st_ctime_nsec: ::c_ulong, - st_pad4: [::c_long; 3] + st_pad4: [::c_long; 3], } pub struct sigaction { pub sa_handler: ::sighandler_t, pub sa_flags: ::c_ulong, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, pub sa_mask: ::sigset_t, } - pub struct stack_t { // FIXME + pub struct stack_t { + // FIXME pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, - pub ss_size: ::size_t + pub ss_size: ::size_t, } - pub struct statfs { // FIXME + pub struct statfs { + // FIXME pub f_type: fsword_t, pub f_bsize: fsword_t, pub f_blocks: ::fsblkcnt_t, @@ -201,7 +203,8 @@ s! { __f_spare: [::c_int; 6], } - pub struct msghdr { // FIXME + pub struct msghdr { + // FIXME pub msg_name: *mut ::c_void, pub msg_namelen: ::socklen_t, pub msg_iov: *mut ::iovec, @@ -211,7 +214,8 @@ s! { pub msg_flags: ::c_int, } - pub struct termios { // FIXME + pub struct termios { + // FIXME pub c_iflag: ::tcflag_t, pub c_oflag: ::tcflag_t, pub c_cflag: ::tcflag_t, @@ -220,11 +224,13 @@ s! { pub c_cc: [::cc_t; ::NCCS], } - pub struct sigset_t { // FIXME + pub struct sigset_t { + // FIXME __val: [::c_ulong; 16], } - pub struct sysinfo { // FIXME + pub struct sysinfo { + // FIXME pub uptime: ::c_long, pub loads: [::c_ulong; 3], pub totalram: ::c_ulong, @@ -241,7 +247,8 @@ s! { pub _f: [::c_char; 0], } - pub struct glob_t { // FIXME + pub struct glob_t { + // FIXME pub gl_pathc: ::size_t, pub gl_pathv: *mut *mut c_char, pub gl_offs: ::size_t, @@ -253,14 +260,16 @@ s! { __unused5: *mut ::c_void, } - pub struct cpu_set_t { // FIXME + pub struct cpu_set_t { + // FIXME #[cfg(target_pointer_width = "32")] bits: [u32; 32], #[cfg(target_pointer_width = "64")] bits: [u64; 16], } - pub struct fsid_t { // FIXME + pub struct fsid_t { + // FIXME __val: [::c_int; 2], } diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index fd4c7868a63b9..05db844205de9 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -62,8 +62,7 @@ s! { pub ai_protocol: ::c_int, pub ai_addrlen: socklen_t, - #[cfg(any(target_os = "linux", - target_os = "emscripten"))] + #[cfg(any(target_os = "linux", target_os = "emscripten"))] pub ai_addr: *mut ::sockaddr, pub ai_canonname: *mut c_char, @@ -81,7 +80,7 @@ s! { pub sll_hatype: ::c_ushort, pub sll_pkttype: ::c_uchar, pub sll_halen: ::c_uchar, - pub sll_addr: [::c_uchar; 8] + pub sll_addr: [::c_uchar; 8], } pub struct fd_set { @@ -161,7 +160,7 @@ s! { pub ifa_addr: *mut ::sockaddr, pub ifa_netmask: *mut ::sockaddr, pub ifa_ifu: *mut ::sockaddr, // FIXME This should be a union - pub ifa_data: *mut ::c_void + pub ifa_data: *mut ::c_void, } pub struct in6_rtmsg { @@ -212,9 +211,12 @@ s_no_extra_traits! { all( target_arch = "x86", not(target_env = "musl"), - not(target_os = "android")), - target_arch = "x86_64"), - repr(packed))] + not(target_os = "android") + ), + target_arch = "x86_64" + ), + repr(packed) + )] pub struct epoll_event { pub events: u32, pub u64: u64, @@ -222,7 +224,7 @@ s_no_extra_traits! { pub struct sockaddr_un { pub sun_family: sa_family_t, - pub sun_path: [::c_char; 108] + pub sun_path: [::c_char; 108], } pub struct sockaddr_storage { @@ -240,7 +242,7 @@ s_no_extra_traits! { pub release: [::c_char; 65], pub version: [::c_char; 65], pub machine: [::c_char; 65], - pub domainname: [::c_char; 65] + pub domainname: [::c_char; 65], } pub struct sigevent { @@ -253,7 +255,7 @@ s_no_extra_traits! { #[cfg(target_pointer_width = "64")] __unused1: [::c_int; 11], #[cfg(target_pointer_width = "32")] - __unused1: [::c_int; 12] + __unused1: [::c_int; 12], } } @@ -261,8 +263,7 @@ cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for epoll_event { fn eq(&self, other: &epoll_event) -> bool { - self.events == other.events - && self.u64 == other.u64 + self.events == other.events && self.u64 == other.u64 } } impl Eq for epoll_event {} @@ -289,10 +290,10 @@ cfg_if! { fn eq(&self, other: &sockaddr_un) -> bool { self.sun_family == other.sun_family && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a, b)| a == b) + .sun_path + .iter() + .zip(other.sun_path.iter()) + .all(|(a, b)| a == b) } } impl Eq for sockaddr_un {} @@ -300,7 +301,7 @@ cfg_if! { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("sockaddr_un") .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) + // FIXME: .field("sun_path", &self.sun_path) .finish() } } @@ -315,10 +316,10 @@ cfg_if! { fn eq(&self, other: &sockaddr_storage) -> bool { self.ss_family == other.ss_family && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) + .__ss_pad2 + .iter() + .zip(other.__ss_pad2.iter()) + .all(|(a, b)| a == b) } } @@ -329,7 +330,7 @@ cfg_if! { f.debug_struct("sockaddr_storage") .field("ss_family", &self.ss_family) .field("__ss_align", &self.__ss_align) - // FIXME: .field("__ss_pad2", &self.__ss_pad2) + // FIXME: .field("__ss_pad2", &self.__ss_pad2) .finish() } } @@ -348,30 +349,30 @@ cfg_if! { .zip(other.sysname.iter()) .all(|(a, b)| a == b) && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a, b)| a == b) + .nodename + .iter() + .zip(other.nodename.iter()) + .all(|(a, b)| a == b) && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a, b)| a == b) + .release + .iter() + .zip(other.release.iter()) + .all(|(a, b)| a == b) && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a, b)| a == b) + .version + .iter() + .zip(other.version.iter()) + .all(|(a, b)| a == b) && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a, b)| a == b) + .machine + .iter() + .zip(other.machine.iter()) + .all(|(a, b)| a == b) && self - .domainname - .iter() - .zip(other.domainname.iter()) - .all(|(a, b)| a == b) + .domainname + .iter() + .zip(other.domainname.iter()) + .all(|(a, b)| a == b) } } @@ -380,12 +381,12 @@ cfg_if! { impl ::fmt::Debug for utsname { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("utsname") - // FIXME: .field("sysname", &self.sysname) - // FIXME: .field("nodename", &self.nodename) - // FIXME: .field("release", &self.release) - // FIXME: .field("version", &self.version) - // FIXME: .field("machine", &self.machine) - // FIXME: .field("domainname", &self.domainname) + // FIXME: .field("sysname", &self.sysname) + // FIXME: .field("nodename", &self.nodename) + // FIXME: .field("release", &self.release) + // FIXME: .field("version", &self.version) + // FIXME: .field("machine", &self.machine) + // FIXME: .field("domainname", &self.domainname) .finish() } } @@ -406,8 +407,7 @@ cfg_if! { self.sigev_value == other.sigev_value && self.sigev_signo == other.sigev_signo && self.sigev_notify == other.sigev_notify - && self.sigev_notify_thread_id - == other.sigev_notify_thread_id + && self.sigev_notify_thread_id == other.sigev_notify_thread_id } } impl Eq for sigevent {} @@ -417,8 +417,7 @@ cfg_if! { .field("sigev_value", &self.sigev_value) .field("sigev_signo", &self.sigev_signo) .field("sigev_notify", &self.sigev_notify) - .field("sigev_notify_thread_id", - &self.sigev_notify_thread_id) + .field("sigev_notify_thread_id", &self.sigev_notify_thread_id) .finish() } } @@ -1006,11 +1005,10 @@ pub const TCP_QUICKACK: ::c_int = 12; pub const TCP_CONGESTION: ::c_int = 13; pub const TCP_MD5SIG: ::c_int = 14; cfg_if! { - if #[cfg(all(target_os = "linux", any( - target_env = "gnu", - target_env = "musl", - target_env = "ohos" - )))] { + if #[cfg(all( + target_os = "linux", + any(target_env = "gnu", target_env = "musl", target_env = "ohos") + ))] { // WARN: deprecated pub const TCP_COOKIE_TRANSACTIONS: ::c_int = 15; } @@ -1551,8 +1549,7 @@ f! { } pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) - as ::c_uint + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) as ::c_uint } pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { @@ -1563,20 +1560,20 @@ f! { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); - return + return; } pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 + return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); - return + return; } pub fn FD_ZERO(set: *mut fd_set) -> () { @@ -1657,10 +1654,11 @@ safe_f! { #[allow(ellipsis_inclusive_range_patterns)] pub {const} fn KERNEL_VERSION(a: u32, b: u32, c: u32) -> u32 { - ((a << 16) + (b << 8)) + match c { - 0 ... 255 => c, - _ => 255, - } + ((a << 16) + (b << 8)) + + match c { + 0...255 => c, + _ => 255, + } } } @@ -1837,7 +1835,7 @@ cfg_if! { fd: ::c_int, buf: *mut ::c_void, count: ::size_t, - offset: off64_t + offset: off64_t, ) -> ::ssize_t; pub fn pwrite64( fd: ::c_int, @@ -1858,7 +1856,11 @@ cfg_if! { } cfg_if! { - if #[cfg(not(any(target_env = "uclibc", target_env = "musl", target_os = "emscripten")))] { + if #[cfg(not(any( + target_env = "uclibc", + target_env = "musl", + target_os = "emscripten" + )))] { extern "C" { pub fn preadv64( fd: ::c_int, diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 436c10b4d3f90..6fe25f8c222ea 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -31,7 +31,11 @@ pub type sighandler_t = ::size_t; pub type cc_t = ::c_uchar; cfg_if! { - if #[cfg(any(target_os = "espidf", target_os = "horizon", target_os = "vita"))] { + if #[cfg(any( + target_os = "espidf", + target_os = "horizon", + target_os = "vita" + ))] { pub type uid_t = ::c_ushort; pub type gid_t = ::c_ushort; } else if #[cfg(target_os = "nto")] { @@ -173,7 +177,7 @@ s! { pub struct sigval { // Actually a union of an int and a void* - pub sival_ptr: *mut ::c_void + pub sival_ptr: *mut ::c_void, } // @@ -235,8 +239,7 @@ cfg_if! { } cfg_if! { - if #[cfg(not(target_os = "nto"))] - { + if #[cfg(not(target_os = "nto"))] { pub const USRQUOTA: ::c_int = 0; pub const GRPQUOTA: ::c_int = 1; } @@ -248,8 +251,11 @@ pub const S_ISGID: ::mode_t = 0o2000; pub const S_ISVTX: ::mode_t = 0o1000; cfg_if! { - if #[cfg(not(any(target_os = "haiku", target_os = "illumos", - target_os = "solaris")))] { + if #[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "solaris" + )))] { pub const IF_NAMESIZE: ::size_t = 16; pub const IFNAMSIZ: ::size_t = IF_NAMESIZE; } @@ -295,8 +301,7 @@ pub const LOG_PRIMASK: ::c_int = 7; pub const LOG_FACMASK: ::c_int = 0x3f8; cfg_if! { - if #[cfg(not(target_os = "nto"))] - { + if #[cfg(not(target_os = "nto"))] { pub const PRIO_MIN: ::c_int = -20; pub const PRIO_MAX: ::c_int = 20; } @@ -333,10 +338,7 @@ pub const FNM_PERIOD: c_int = 1 << 2; pub const FNM_NOMATCH: c_int = 1; cfg_if! { - if #[cfg(any( - target_os = "illumos", - target_os = "solaris", - ))] { + if #[cfg(any(target_os = "illumos", target_os = "solaris",))] { pub const FNM_CASEFOLD: c_int = 1 << 3; } else { pub const FNM_CASEFOLD: c_int = 1 << 4; @@ -364,7 +366,11 @@ extern "C" { } cfg_if! { - if #[cfg(any(target_os = "l4re", target_os = "espidf", target_os = "nuttx"))] { + if #[cfg(any( + target_os = "l4re", + target_os = "espidf", + target_os = "nuttx" + ))] { // required libraries are linked externally for these platforms: // * L4Re // * ESP-IDF @@ -372,95 +378,158 @@ cfg_if! { } else if #[cfg(feature = "std")] { // cargo build, don't pull in anything extra as the std dep // already pulls in all libs. - } else if #[cfg(all(target_os = "linux", - any(target_env = "gnu", target_env = "uclibc"), - feature = "rustc-dep-of-std"))] { - #[link(name = "util", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "rt", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "pthread", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "m", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "dl", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "c", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "gcc_eh", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "gcc", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "c", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] + } else if #[cfg(all( + target_os = "linux", + any(target_env = "gnu", target_env = "uclibc"), + feature = "rustc-dep-of-std" + ))] { + #[link( + name = "util", + kind = "static", + modifiers = "-bundle", + cfg(target_feature = "crt-static") + )] + #[link( + name = "rt", + kind = "static", + modifiers = "-bundle", + cfg(target_feature = "crt-static") + )] + #[link( + name = "pthread", + kind = "static", + modifiers = "-bundle", + cfg(target_feature = "crt-static") + )] + #[link( + name = "m", + kind = "static", + modifiers = "-bundle", + cfg(target_feature = "crt-static") + )] + #[link( + name = "dl", + kind = "static", + modifiers = "-bundle", + cfg(target_feature = "crt-static") + )] + #[link( + name = "c", + kind = "static", + modifiers = "-bundle", + cfg(target_feature = "crt-static") + )] + #[link( + name = "gcc_eh", + kind = "static", + modifiers = "-bundle", + cfg(target_feature = "crt-static") + )] + #[link( + name = "gcc", + kind = "static", + modifiers = "-bundle", + cfg(target_feature = "crt-static") + )] + #[link( + name = "c", + kind = "static", + modifiers = "-bundle", + cfg(target_feature = "crt-static") + )] #[link(name = "util", cfg(not(target_feature = "crt-static")))] #[link(name = "rt", cfg(not(target_feature = "crt-static")))] #[link(name = "pthread", cfg(not(target_feature = "crt-static")))] #[link(name = "m", cfg(not(target_feature = "crt-static")))] #[link(name = "dl", cfg(not(target_feature = "crt-static")))] #[link(name = "c", cfg(not(target_feature = "crt-static")))] - extern {} + extern "C" {} } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] { - #[cfg_attr(feature = "rustc-dep-of-std", - link(name = "c", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static")))] - #[cfg_attr(feature = "rustc-dep-of-std", - link(name = "c", cfg(not(target_feature = "crt-static"))))] - extern {} + #[cfg_attr( + feature = "rustc-dep-of-std", + link( + name = "c", + kind = "static", + modifiers = "-bundle", + cfg(target_feature = "crt-static") + ) + )] + #[cfg_attr( + feature = "rustc-dep-of-std", + link(name = "c", cfg(not(target_feature = "crt-static"))) + )] + extern "C" {} } else if #[cfg(target_os = "emscripten")] { // Don't pass -lc to Emscripten, it breaks. See: // https://github.com/emscripten-core/emscripten/issues/22758 } else if #[cfg(all(target_os = "android", feature = "rustc-dep-of-std"))] { - #[link(name = "c", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "m", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] + #[link( + name = "c", + kind = "static", + modifiers = "-bundle", + cfg(target_feature = "crt-static") + )] + #[link( + name = "m", + kind = "static", + modifiers = "-bundle", + cfg(target_feature = "crt-static") + )] #[link(name = "m", cfg(not(target_feature = "crt-static")))] #[link(name = "c", cfg(not(target_feature = "crt-static")))] - extern {} - } else if #[cfg(any(target_os = "macos", - target_os = "ios", - target_os = "tvos", - target_os = "watchos", - target_os = "visionos", - target_os = "android", - target_os = "openbsd", - target_os = "nto", - ))] { + extern "C" {} + } else if #[cfg(any( + target_os = "macos", + target_os = "ios", + target_os = "tvos", + target_os = "watchos", + target_os = "visionos", + target_os = "android", + target_os = "openbsd", + target_os = "nto", + ))] { #[link(name = "c")] #[link(name = "m")] - extern {} + extern "C" {} } else if #[cfg(target_os = "haiku")] { #[link(name = "root")] #[link(name = "network")] - extern {} + extern "C" {} } else if #[cfg(target_env = "newlib")] { #[link(name = "c")] #[link(name = "m")] - extern {} + extern "C" {} } else if #[cfg(target_env = "illumos")] { #[link(name = "c")] #[link(name = "m")] - extern {} + extern "C" {} } else if #[cfg(target_os = "redox")] { - #[cfg_attr(feature = "rustc-dep-of-std", - link(name = "c", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static")))] - #[cfg_attr(feature = "rustc-dep-of-std", - link(name = "c", cfg(not(target_feature = "crt-static"))))] - extern {} + #[cfg_attr( + feature = "rustc-dep-of-std", + link( + name = "c", + kind = "static", + modifiers = "-bundle", + cfg(target_feature = "crt-static") + ) + )] + #[cfg_attr( + feature = "rustc-dep-of-std", + link(name = "c", cfg(not(target_feature = "crt-static"))) + )] + extern "C" {} } else if #[cfg(target_os = "aix")] { #[link(name = "c")] #[link(name = "m")] #[link(name = "bsd")] #[link(name = "pthread")] - extern {} + extern "C" {} } else { #[link(name = "c")] #[link(name = "m")] #[link(name = "rt")] #[link(name = "pthread")] - extern {} + extern "C" {} } } @@ -1466,11 +1535,13 @@ safe_f! { } cfg_if! { - if #[cfg(not(any(target_os = "emscripten", - target_os = "android", - target_os = "haiku", - target_os = "nto", - target_os = "solaris")))] { + if #[cfg(not(any( + target_os = "emscripten", + target_os = "android", + target_os = "haiku", + target_os = "nto", + target_os = "solaris" + )))] { extern "C" { pub fn adjtime(delta: *const timeval, olddelta: *mut timeval) -> ::c_int; } @@ -1482,9 +1553,11 @@ cfg_if! { } cfg_if! { - if #[cfg(not(any(target_os = "emscripten", - target_os = "android", - target_os = "nto")))] { + if #[cfg(not(any( + target_os = "emscripten", + target_os = "android", + target_os = "nto" + )))] { extern "C" { pub fn stpncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; } @@ -1498,9 +1571,7 @@ cfg_if! { all(target_os = "macos", target_arch = "x86"), link_name = "confstr$UNIX2003" )] - #[cfg_attr(target_os = "solaris", - link_name = "__confstr_xpg7" - )] + #[cfg_attr(target_os = "solaris", link_name = "__confstr_xpg7")] pub fn confstr(name: ::c_int, buf: *mut ::c_char, len: ::size_t) -> ::size_t; } } @@ -1525,35 +1596,43 @@ cfg_if! { cfg_if! { if #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] { extern "C" { - pub fn open_wmemstream( - ptr: *mut *mut wchar_t, - sizeloc: *mut size_t, - ) -> *mut FILE; + pub fn open_wmemstream(ptr: *mut *mut wchar_t, sizeloc: *mut size_t) -> *mut FILE; } } } cfg_if! { if #[cfg(not(target_os = "redox"))] { - extern { + extern "C" { pub fn getsid(pid: pid_t) -> pid_t; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pause$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pause$UNIX2003" + )] pub fn pause() -> ::c_int; - pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t) -> ::c_int; - pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, - flags: ::c_int, ...) -> ::c_int; + pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + pub fn openat( + dirfd: ::c_int, + pathname: *const ::c_char, + flags: ::c_int, + ... + ) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), - link_name = "fdopendir$INODE64")] - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "fdopendir$INODE64$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86_64"), + link_name = "fdopendir$INODE64" + )] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "fdopendir$INODE64$UNIX2003" + )] pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; - #[cfg_attr(all(target_os = "macos", not(target_arch = "aarch64")), - link_name = "readdir_r$INODE64")] + #[cfg_attr( + all(target_os = "macos", not(target_arch = "aarch64")), + link_name = "readdir_r$INODE64" + )] #[cfg_attr(target_os = "netbsd", link_name = "__readdir_r30")] #[cfg_attr( all(target_os = "freebsd", any(freebsd11, freebsd10)), @@ -1566,19 +1645,24 @@ cfg_if! { /// https://illumos.org/man/3lib/libc /// https://docs.oracle.com/cd/E36784_01/html/E36873/libc-3lib.html /// https://www.unix.com/man-page/opensolaris/3LIB/libc/ - pub fn readdir_r(dirp: *mut ::DIR, entry: *mut ::dirent, - result: *mut *mut ::dirent) -> ::c_int; + pub fn readdir_r( + dirp: *mut ::DIR, + entry: *mut ::dirent, + result: *mut *mut ::dirent, + ) -> ::c_int; } } } cfg_if! { if #[cfg(target_os = "nto")] { - extern { - pub fn readlinkat(dirfd: ::c_int, + extern "C" { + pub fn readlinkat( + dirfd: ::c_int, pathname: *const ::c_char, buf: *mut ::c_char, - bufsiz: ::size_t) -> ::c_int; + bufsiz: ::size_t, + ) -> ::c_int; pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: ::size_t) -> ::c_int; pub fn pselect( nfds: ::c_int, @@ -1591,15 +1675,17 @@ cfg_if! { pub fn sigaction( signum: ::c_int, act: *const sigaction, - oldact: *mut sigaction + oldact: *mut sigaction, ) -> ::c_int; } } else { - extern { - pub fn readlinkat(dirfd: ::c_int, + extern "C" { + pub fn readlinkat( + dirfd: ::c_int, pathname: *const ::c_char, buf: *mut ::c_char, - bufsiz: ::size_t) -> ::ssize_t; + bufsiz: ::size_t, + ) -> ::ssize_t; pub fn fmemopen(buf: *mut c_void, size: size_t, mode: *const c_char) -> *mut FILE; pub fn open_memstream(ptr: *mut *mut c_char, sizeloc: *mut size_t) -> *mut FILE; pub fn atexit(cb: extern "C" fn()) -> c_int; @@ -1607,7 +1693,7 @@ cfg_if! { pub fn sigaction( signum: ::c_int, act: *const sigaction, - oldact: *mut sigaction + oldact: *mut sigaction, ) -> ::c_int; pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: ::size_t) -> ::ssize_t; #[cfg_attr( @@ -1632,16 +1718,16 @@ cfg_if! { } cfg_if! { - if #[cfg(not(any(target_os = "solaris", - target_os = "illumos", - target_os = "nto", - )))] { - extern { + if #[cfg(not(any( + target_os = "solaris", + target_os = "illumos", + target_os = "nto", + )))] { + extern "C" { pub fn cfmakeraw(termios: *mut ::termios); - pub fn cfsetspeed(termios: *mut ::termios, - speed: ::speed_t) -> ::c_int; + pub fn cfsetspeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; } - } + } } extern "C" { @@ -1652,25 +1738,28 @@ cfg_if! { if #[cfg(target_env = "newlib")] { mod newlib; pub use self::newlib::*; - } else if #[cfg(any(target_os = "linux", - target_os = "l4re", - target_os = "android", - target_os = "emscripten"))] { + } else if #[cfg(any( + target_os = "linux", + target_os = "l4re", + target_os = "android", + target_os = "emscripten" + ))] { mod linux_like; pub use self::linux_like::*; - } else if #[cfg(any(target_os = "macos", - target_os = "ios", - target_os = "tvos", - target_os = "watchos", - target_os = "visionos", - target_os = "freebsd", - target_os = "dragonfly", - target_os = "openbsd", - target_os = "netbsd"))] { + } else if #[cfg(any( + target_os = "macos", + target_os = "ios", + target_os = "tvos", + target_os = "watchos", + target_os = "visionos", + target_os = "freebsd", + target_os = "dragonfly", + target_os = "openbsd", + target_os = "netbsd" + ))] { mod bsd; pub use self::bsd::*; - } else if #[cfg(any(target_os = "solaris", - target_os = "illumos"))] { + } else if #[cfg(any(target_os = "solaris", target_os = "illumos"))] { mod solarish; pub use self::solarish::*; } else if #[cfg(target_os = "haiku")] { diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index 6ecda27e04711..b40a41b68d894 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -52,7 +52,10 @@ cfg_if! { pub type useconds_t = u32; cfg_if! { - if #[cfg(any(target_os = "horizon", all(target_os = "espidf", not(espidf_time32))))] { + if #[cfg(any( + target_os = "horizon", + all(target_os = "espidf", not(espidf_time32)) + ))] { pub type time_t = ::c_longlong; } else { pub type time_t = i32; @@ -61,7 +64,7 @@ cfg_if! { cfg_if! { if #[cfg(not(target_os = "horizon"))] { - s!{ + s! { pub struct hostent { pub h_name: *mut ::c_char, pub h_aliases: *mut *mut ::c_char, @@ -91,7 +94,8 @@ s! { #[cfg(not(any( target_os = "espidf", - all(target_arch = "powerpc", target_vendor = "nintendo"))))] + all(target_arch = "powerpc", target_vendor = "nintendo") + )))] pub ai_addr: *mut sockaddr, pub ai_next: *mut addrinfo, @@ -171,7 +175,7 @@ s! { } pub struct sigaction { - pub sa_handler: extern fn(arg1: ::c_int), + pub sa_handler: extern "C" fn(arg1: ::c_int), pub sa_mask: sigset_t, pub sa_flags: ::c_int, } @@ -182,11 +186,13 @@ s! { pub ss_size: usize, } - pub struct fd_set { // Unverified + pub struct fd_set { + // Unverified fds_bits: [::c_ulong; FD_SETSIZE as usize / ULONG_SIZE], } - pub struct passwd { // Unverified + pub struct passwd { + // Unverified pub pw_name: *mut ::c_char, pub pw_passwd: *mut ::c_char, pub pw_uid: ::uid_t, @@ -196,7 +202,8 @@ s! { pub pw_shell: *mut ::c_char, } - pub struct termios { // Unverified + pub struct termios { + // Unverified pub c_iflag: ::tcflag_t, pub c_oflag: ::tcflag_t, pub c_cflag: ::tcflag_t, @@ -209,31 +216,36 @@ s! { pub c_ospeed: u32, } - pub struct sem_t { // Unverified + pub struct sem_t { + // Unverified __size: [::c_char; 16], } - pub struct Dl_info { // Unverified + pub struct Dl_info { + // Unverified pub dli_fname: *const ::c_char, pub dli_fbase: *mut ::c_void, pub dli_sname: *const ::c_char, pub dli_saddr: *mut ::c_void, } - pub struct utsname { // Unverified + pub struct utsname { + // Unverified pub sysname: [::c_char; 65], pub nodename: [::c_char; 65], pub release: [::c_char; 65], pub version: [::c_char; 65], pub machine: [::c_char; 65], - pub domainname: [::c_char; 65] + pub domainname: [::c_char; 65], } - pub struct cpu_set_t { // Unverified + pub struct cpu_set_t { + // Unverified bits: [u32; 32], } - pub struct pthread_attr_t { // Unverified + pub struct pthread_attr_t { + // Unverified #[cfg(not(target_os = "espidf"))] __size: [u8; __SIZEOF_PTHREAD_ATTR_T], #[cfg(target_os = "espidf")] @@ -254,63 +266,85 @@ s! { pub detachstate: i32, } - pub struct pthread_rwlockattr_t { // Unverified - __size: [u8; __SIZEOF_PTHREAD_RWLOCKATTR_T] - } - - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc"))), - repr(align(8)))] - pub struct pthread_mutex_t { // Unverified + pub struct pthread_rwlockattr_t { + // Unverified + __size: [u8; __SIZEOF_PTHREAD_RWLOCKATTR_T], + } + + #[cfg_attr( + all( + target_pointer_width = "32", + any(target_arch = "mips", target_arch = "arm", target_arch = "powerpc") + ), + repr(align(4)) + )] + #[cfg_attr( + any( + target_pointer_width = "64", + not(any(target_arch = "mips", target_arch = "arm", target_arch = "powerpc")) + ), + repr(align(8)) + )] + pub struct pthread_mutex_t { + // Unverified size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], } - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc"))), - repr(align(8)))] - pub struct pthread_rwlock_t { // Unverified + #[cfg_attr( + all( + target_pointer_width = "32", + any(target_arch = "mips", target_arch = "arm", target_arch = "powerpc") + ), + repr(align(4)) + )] + #[cfg_attr( + any( + target_pointer_width = "64", + not(any(target_arch = "mips", target_arch = "arm", target_arch = "powerpc")) + ), + repr(align(8)) + )] + pub struct pthread_rwlock_t { + // Unverified size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], } - #[cfg_attr(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "s390x", - target_arch = "sparc64"), - repr(align(4)))] - #[cfg_attr(not(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "s390x", - target_arch = "sparc64")), - repr(align(8)))] - pub struct pthread_mutexattr_t { // Unverified + #[cfg_attr( + any( + target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "s390x", + target_arch = "sparc64" + ), + repr(align(4)) + )] + #[cfg_attr( + not(any( + target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "s390x", + target_arch = "sparc64" + )), + repr(align(8)) + )] + pub struct pthread_mutexattr_t { + // Unverified size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], } #[repr(align(8))] - pub struct pthread_cond_t { // Unverified + pub struct pthread_cond_t { + // Unverified size: [u8; ::__SIZEOF_PTHREAD_COND_T], } #[repr(align(4))] - pub struct pthread_condattr_t { // Unverified + pub struct pthread_condattr_t { + // Unverified size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], } } @@ -740,7 +774,6 @@ cfg_if! { pub const NO_DATA: ::c_int = 211; pub const NO_RECOVERY: ::c_int = 212; pub const TRY_AGAIN: ::c_int = 213; - } else { pub const HOST_NOT_FOUND: ::c_int = 1; pub const NO_DATA: ::c_int = 2; @@ -805,20 +838,20 @@ f! { let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); - return + return; } pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; - return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0 + return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0; } pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] |= 1 << (fd % bits); - return + return; } pub fn FD_ZERO(set: *mut fd_set) -> () { diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 90478d7aaf660..7972e9c720e50 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -102,9 +102,9 @@ s! { pub st_nblocks: i32, pub st_blksize: ::blksize_t, pub st_blocks: ::blkcnt_t, - pub st_mtim: ::timespec, - pub st_atim: ::timespec, - pub st_ctim: ::timespec, + pub st_mtim: ::timespec, + pub st_atim: ::timespec, + pub st_ctim: ::timespec, } pub struct ip_mreq { @@ -230,7 +230,7 @@ s! { pub _Nostr: *mut ::c_char, pub _Yesstr: *mut ::c_char, pub _Reserved: [*mut ::c_char; 8], - } + } pub struct in_pktinfo { pub ipi_addr: ::in_addr, @@ -244,7 +244,7 @@ s! { pub ifa_addr: *mut ::sockaddr, pub ifa_netmask: *mut ::sockaddr, pub ifa_dstaddr: *mut ::sockaddr, - pub ifa_data: *mut ::c_void + pub ifa_data: *mut ::c_void, } pub struct arpreq { @@ -437,7 +437,7 @@ s! { pub wd: ::c_int, pub mask: u32, pub cookie: u32, - pub len: u32 + pub len: u32, } pub struct regmatch_t { @@ -534,7 +534,7 @@ s! { pub struct pthread_attr_t { __data1: ::c_long, - __data2: [u8; 96] + __data2: [u8; 96], } pub struct ipc_perm { @@ -647,7 +647,7 @@ s_no_extra_traits! { pub struct sockaddr_un { pub sun_len: u8, pub sun_family: sa_family_t, - pub sun_path: [::c_char; 104] + pub sun_path: [::c_char; 104], } pub struct sockaddr_storage { @@ -673,7 +673,6 @@ s_no_extra_traits! { pub __padding2: ::c_int, pub sigev_value: ::sigval, __sigev_un2: usize, // union - } pub struct dirent { pub d_ino: ::ino_t, @@ -734,13 +733,14 @@ s_no_extra_traits! { } pub struct sync_t { - __u: ::c_uint, // union + __u: ::c_uint, // union pub __owner: ::c_uint, } #[repr(align(4))] - pub struct pthread_barrier_t { // union - __pad: [u8; 28], // union + pub struct pthread_barrier_t { + // union + __pad: [u8; 28], // union } pub struct pthread_rwlock_t { @@ -748,9 +748,9 @@ s_no_extra_traits! { pub __blockedwriters: ::c_int, pub __blockedreaders: ::c_int, pub __heavy: ::c_int, - pub __lock: ::pthread_mutex_t, // union - pub __rcond: ::pthread_cond_t, // union - pub __wcond: ::pthread_cond_t, // union + pub __lock: ::pthread_mutex_t, // union + pub __rcond: ::pthread_cond_t, // union + pub __wcond: ::pthread_cond_t, // union pub __owner: ::c_uint, pub __spare: ::c_uint, } @@ -764,8 +764,7 @@ cfg_if! { self.sigev_notify == other.sigev_notify && self.sigev_signo == other.sigev_signo && self.sigev_value == other.sigev_value - && self.__sigev_un2 - == other.__sigev_un2 + && self.__sigev_un2 == other.__sigev_un2 } } impl Eq for sigevent {} @@ -775,8 +774,7 @@ cfg_if! { .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) .field("sigev_value", &self.sigev_value) - .field("__sigev_un2", - &self.__sigev_un2) + .field("__sigev_un2", &self.__sigev_un2) .finish() } } @@ -794,10 +792,10 @@ cfg_if! { self.sun_len == other.sun_len && self.sun_family == other.sun_family && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a,b)| a == b) + .sun_path + .iter() + .zip(other.sun_path.iter()) + .all(|(a, b)| a == b) } } impl Eq for sockaddr_un {} @@ -847,7 +845,7 @@ cfg_if! { .field("msg_type", &self.msg_type) .field("msg_ts", &self.msg_ts) .field("msg_spot", &self.msg_spot) - .finish() + .finish() } } @@ -894,10 +892,10 @@ cfg_if! { && self.sdl_alen == other.sdl_alen && self.sdl_slen == other.sdl_slen && self - .sdl_data - .iter() - .zip(other.sdl_data.iter()) - .all(|(a,b)| a == b) + .sdl_data + .iter() + .zip(other.sdl_data.iter()) + .all(|(a, b)| a == b) } } impl Eq for sockaddr_dl {} @@ -946,7 +944,7 @@ cfg_if! { .field("__wcond", &self.__wcond) .field("__owner", &self.__owner) .field("__spare", &self.__spare) - .finish() + .finish() } } @@ -986,27 +984,27 @@ cfg_if! { self.sysname .iter() .zip(other.sysname.iter()) - .all(|(a,b)| a == b) + .all(|(a, b)| a == b) && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a,b)| a == b) + .nodename + .iter() + .zip(other.nodename.iter()) + .all(|(a, b)| a == b) && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a,b)| a == b) + .release + .iter() + .zip(other.release.iter()) + .all(|(a, b)| a == b) && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a,b)| a == b) + .version + .iter() + .zip(other.version.iter()) + .all(|(a, b)| a == b) && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a,b)| a == b) + .machine + .iter() + .zip(other.machine.iter()) + .all(|(a, b)| a == b) } } @@ -1015,11 +1013,11 @@ cfg_if! { impl ::fmt::Debug for utsname { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("utsname") - // FIXME: .field("sysname", &self.sysname) - // FIXME: .field("nodename", &self.nodename) - // FIXME: .field("release", &self.release) - // FIXME: .field("version", &self.version) - // FIXME: .field("machine", &self.machine) + // FIXME: .field("sysname", &self.sysname) + // FIXME: .field("nodename", &self.nodename) + // FIXME: .field("release", &self.release) + // FIXME: .field("version", &self.version) + // FIXME: .field("machine", &self.machine) .finish() } } @@ -1036,13 +1034,13 @@ cfg_if! { impl PartialEq for mq_attr { fn eq(&self, other: &mq_attr) -> bool { - self.mq_maxmsg == other.mq_maxmsg && - self.mq_msgsize == other.mq_msgsize && - self.mq_flags == other.mq_flags && - self.mq_curmsgs == other.mq_curmsgs && - self.mq_msgsize == other.mq_msgsize && - self.mq_sendwait == other.mq_sendwait && - self.mq_recvwait == other.mq_recvwait + self.mq_maxmsg == other.mq_maxmsg + && self.mq_msgsize == other.mq_msgsize + && self.mq_flags == other.mq_flags + && self.mq_curmsgs == other.mq_curmsgs + && self.mq_msgsize == other.mq_msgsize + && self.mq_sendwait == other.mq_sendwait + && self.mq_recvwait == other.mq_recvwait } } @@ -1079,10 +1077,10 @@ cfg_if! { && self.__ss_pad1 == other.__ss_pad1 && self.__ss_align == other.__ss_align && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) + .__ss_pad2 + .iter() + .zip(other.__ss_pad2.iter()) + .all(|(a, b)| a == b) } } @@ -1116,11 +1114,10 @@ cfg_if! { && self.d_offset == other.d_offset && self.d_reclen == other.d_reclen && self.d_namelen == other.d_namelen - && self - .d_name[..self.d_namelen as _] - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) + && self.d_name[..self.d_namelen as _] + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } @@ -2715,7 +2712,7 @@ const_fn! { } {const} fn _ALIGN(p: usize, b: usize) -> usize { - (p + b - 1) & !(b-1) + (p + b - 1) & !(b - 1) } } @@ -2728,21 +2725,18 @@ f! { } } - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) - -> *mut ::cmsghdr - { + pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { let msg = _CMSG_ALIGN((*cmsg).cmsg_len as usize); let next = cmsg as usize + msg + _CMSG_ALIGN(::mem::size_of::<::cmsghdr>()); if next > (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize { - 0 as *mut ::cmsghdr + 0 as *mut ::cmsghdr } else { (cmsg as usize + msg) as *mut ::cmsghdr } } pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar) - .offset(_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + (cmsg as *mut ::c_uchar).offset(_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) } pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { @@ -2750,28 +2744,27 @@ f! { } pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (_CMSG_ALIGN(::mem::size_of::()) + _CMSG_ALIGN(length as usize) ) - as ::c_uint + (_CMSG_ALIGN(::mem::size_of::()) + _CMSG_ALIGN(length as usize)) as ::c_uint } pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); - return + return; } pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 + return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); - return + return; } pub fn FD_ZERO(set: *mut fd_set) -> () { @@ -2800,16 +2793,13 @@ f! { pub fn _DEXTRA_NEXT(_x: *const ::dirent_extra) -> *mut ::dirent_extra { _ALIGN( - _x as usize + ::mem::size_of::<::dirent_extra>() + (*_x).d_datalen as usize, 8 + _x as usize + ::mem::size_of::<::dirent_extra>() + (*_x).d_datalen as usize, + 8, ) as *mut ::dirent_extra } pub fn SOCKCREDSIZE(ngrps: usize) -> usize { - let ngrps = if ngrps > 0 { - ngrps - 1 - } else { - 0 - }; + let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 }; ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps } @@ -3501,12 +3491,10 @@ cfg_if! { if #[cfg(target_arch = "x86_64")] { mod x86_64; pub use self::x86_64::*; - } - else if #[cfg(target_arch = "aarch64")] { + } else if #[cfg(target_arch = "aarch64")] { mod aarch64; pub use self::aarch64::*; - } - else { + } else { panic!("Unsupported arch"); } } diff --git a/src/unix/nto/neutrino.rs b/src/unix/nto/neutrino.rs index 1a6f7da9cece2..cc86f8a379214 100644 --- a/src/unix/nto/neutrino.rs +++ b/src/unix/nto/neutrino.rs @@ -16,7 +16,7 @@ s! { } pub struct iov_t { - pub iov_base: *mut ::c_void, // union + pub iov_base: *mut ::c_void, // union pub iov_len: ::size_t, } @@ -130,7 +130,8 @@ s! { pub coid: ::c_int, } - pub struct _channel_connect_attr { // union + pub struct _channel_connect_attr { + // union pub ev: ::__c_anonymous_struct_ev, } @@ -180,7 +181,7 @@ s! { pub flags: u32, pub rr_interval_mul: u32, pub timer_load_hi: u32, - pub nsec_stable: u64, // volatile + pub nsec_stable: u64, // volatile pub timer_load_max: u64, pub timer_prog_time: u32, spare: [u32; 7], @@ -212,7 +213,6 @@ s! { } s_no_extra_traits! { - #[repr(align(8))] pub struct syspage_entry { pub size: u16, diff --git a/src/unix/nto/x86_64.rs b/src/unix/nto/x86_64.rs index 29739ac83a3e9..55894888f1ad8 100644 --- a/src/unix/nto/x86_64.rs +++ b/src/unix/nto/x86_64.rs @@ -52,7 +52,7 @@ s! { pub fpu_op: u32, pub fpu_ds: u32, pub st_regs: [u8; 80], - } + } pub struct fxsave_area_64 { pub fpu_control_word: u16, diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index e9f6c651f1e86..c5eb030c9c2bb 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -63,18 +63,28 @@ s! { pub pw_gecos: *const c_char, pub pw_dir: *const c_char, pub pw_shell: *const c_char, - __reserved: [usize; __DEFAULT_RESERVED_SIZE__] + __reserved: [usize; __DEFAULT_RESERVED_SIZE__], } - pub struct sem_t { __val: [usize; __SEM_SIZE__] } + pub struct sem_t { + __val: [usize; __SEM_SIZE__], + } - pub struct pthread_attr_t { __val: [usize; __PTHREAD_ATTR_SIZE__] } + pub struct pthread_attr_t { + __val: [usize; __PTHREAD_ATTR_SIZE__], + } - pub struct pthread_mutex_t { __val: [usize; __PTHREAD_MUTEX_SIZE__] } + pub struct pthread_mutex_t { + __val: [usize; __PTHREAD_MUTEX_SIZE__], + } - pub struct pthread_cond_t { __val: [usize; __PTHREAD_COND_SIZE__] } + pub struct pthread_cond_t { + __val: [usize; __PTHREAD_COND_SIZE__], + } - pub struct pthread_condattr_t { __val: [usize; __PTHREAD_CONDATTR_SIZE__] } + pub struct pthread_condattr_t { + __val: [usize; __PTHREAD_CONDATTR_SIZE__], + } pub struct Dl_info { pub dli_fname: *const c_char, diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 402857f9098cd..47a8814f9b9c8 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -75,17 +75,13 @@ s_no_extra_traits! { pub struct sockaddr_un { pub sun_family: ::sa_family_t, - pub sun_path: [::c_char; 108] + pub sun_path: [::c_char; 108], } pub struct sockaddr_storage { pub ss_family: ::sa_family_t, - __ss_padding: [ - u8; - 128 - - ::core::mem::size_of::() - - ::core::mem::size_of::() - ], + __ss_padding: + [u8; 128 - ::core::mem::size_of::() - ::core::mem::size_of::()], __ss_align: ::c_ulong, } } @@ -162,7 +158,7 @@ s! { pub struct sigaction { pub sa_sigaction: ::sighandler_t, pub sa_flags: ::c_ulong, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, pub sa_mask: ::sigset_t, } @@ -1022,20 +1018,20 @@ f! { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); - return + return; } pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 + return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { let fd = fd as usize; let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); - return + return; } pub fn FD_ZERO(set: *mut fd_set) -> () { @@ -1268,10 +1264,10 @@ cfg_if! { && self.d_reclen == other.d_reclen && self.d_type == other.d_type && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) } } @@ -1284,7 +1280,7 @@ cfg_if! { .field("d_off", &self.d_off) .field("d_reclen", &self.d_reclen) .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) + // FIXME: .field("d_name", &self.d_name) .finish() } } @@ -1303,10 +1299,10 @@ cfg_if! { fn eq(&self, other: &sockaddr_un) -> bool { self.sun_family == other.sun_family && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a,b)| a == b) + .sun_path + .iter() + .zip(other.sun_path.iter()) + .all(|(a, b)| a == b) } } @@ -1316,7 +1312,7 @@ cfg_if! { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("sockaddr_un") .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) + // FIXME: .field("sun_path", &self.sun_path) .finish() } } @@ -1333,10 +1329,10 @@ cfg_if! { self.ss_family == other.ss_family && self.__ss_align == self.__ss_align && self - .__ss_padding - .iter() - .zip(other.__ss_padding.iter()) - .all(|(a,b)| a == b) + .__ss_padding + .iter() + .zip(other.__ss_padding.iter()) + .all(|(a, b)| a == b) } } @@ -1347,7 +1343,7 @@ cfg_if! { f.debug_struct("sockaddr_storage") .field("ss_family", &self.ss_family) .field("__ss_align", &self.__ss_align) - // FIXME: .field("__ss_padding", &self.__ss_padding) + // FIXME: .field("__ss_padding", &self.__ss_padding) .finish() } } @@ -1367,30 +1363,30 @@ cfg_if! { .zip(other.sysname.iter()) .all(|(a, b)| a == b) && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a, b)| a == b) + .nodename + .iter() + .zip(other.nodename.iter()) + .all(|(a, b)| a == b) && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a, b)| a == b) + .release + .iter() + .zip(other.release.iter()) + .all(|(a, b)| a == b) && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a, b)| a == b) + .version + .iter() + .zip(other.version.iter()) + .all(|(a, b)| a == b) && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a, b)| a == b) + .machine + .iter() + .zip(other.machine.iter()) + .all(|(a, b)| a == b) && self - .domainname - .iter() - .zip(other.domainname.iter()) - .all(|(a, b)| a == b) + .domainname + .iter() + .zip(other.domainname.iter()) + .all(|(a, b)| a == b) } } @@ -1399,12 +1395,12 @@ cfg_if! { impl ::fmt::Debug for utsname { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("utsname") - // FIXME: .field("sysname", &self.sysname) - // FIXME: .field("nodename", &self.nodename) - // FIXME: .field("release", &self.release) - // FIXME: .field("version", &self.version) - // FIXME: .field("machine", &self.machine) - // FIXME: .field("domainname", &self.domainname) + // FIXME: .field("sysname", &self.sysname) + // FIXME: .field("nodename", &self.nodename) + // FIXME: .field("release", &self.release) + // FIXME: .field("version", &self.version) + // FIXME: .field("machine", &self.machine) + // FIXME: .field("domainname", &self.domainname) .finish() } } diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index 07cc583f43f3d..16a3ba6661e65 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -82,10 +82,10 @@ cfg_if! { && self.ut_syslen == other.ut_syslen && self.ut_pad == other.ut_pad && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a, b)| a == b) } } @@ -127,8 +127,7 @@ cfg_if! { impl PartialEq for epoll_event { fn eq(&self, other: &epoll_event) -> bool { - self.events == other.events - && self.u64 == other.u64 + self.events == other.events && self.u64 == other.u64 } } impl Eq for epoll_event {} diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 503edf65663fd..1b978b17be720 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -106,7 +106,7 @@ s! { pub sin_family: sa_family_t, pub sin_port: ::in_port_t, pub sin_addr: ::in_addr, - pub sin_zero: [::c_char; 8] + pub sin_zero: [::c_char; 8], } pub struct sockaddr_in6 { @@ -115,7 +115,7 @@ s! { pub sin6_flowinfo: u32, pub sin6_addr: ::in6_addr, pub sin6_scope_id: u32, - pub __sin6_src_id: u32 + pub __sin6_src_id: u32, } pub struct in_pktinfo { @@ -138,7 +138,7 @@ s! { pub pw_comment: *mut ::c_char, pub pw_gecos: *mut ::c_char, pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char + pub pw_shell: *mut ::c_char, } pub struct ifaddrs { @@ -148,7 +148,7 @@ s! { pub ifa_addr: *mut ::sockaddr, pub ifa_netmask: *mut ::sockaddr, pub ifa_dstaddr: *mut ::sockaddr, - pub ifa_data: *mut ::c_void + pub ifa_data: *mut ::c_void, } pub struct itimerspec { @@ -165,10 +165,10 @@ s! { pub tm_year: ::c_int, pub tm_wday: ::c_int, pub tm_yday: ::c_int, - pub tm_isdst: ::c_int + pub tm_isdst: ::c_int, } - pub struct msghdr { + pub struct msghdr { pub msg_name: *mut ::c_void, pub msg_namelen: ::socklen_t, pub msg_iov: *mut ::iovec, @@ -185,7 +185,7 @@ s! { } pub struct pthread_attr_t { - __pthread_attrp: *mut ::c_void + __pthread_attrp: *mut ::c_void, } pub struct pthread_mutex_t { @@ -195,18 +195,18 @@ s! { __pthread_mutex_type: u16, __pthread_mutex_magic: u16, __pthread_mutex_lock: u64, - __pthread_mutex_data: u64 + __pthread_mutex_data: u64, } pub struct pthread_mutexattr_t { - __pthread_mutexattrp: *mut ::c_void + __pthread_mutexattrp: *mut ::c_void, } pub struct pthread_cond_t { __pthread_cond_flag: [u8; 4], __pthread_cond_type: u16, __pthread_cond_magic: u16, - __pthread_cond_data: u64 + __pthread_cond_data: u64, } pub struct pthread_condattr_t { @@ -219,7 +219,7 @@ s! { __pthread_rwlock_magic: u16, __pthread_rwlock_mutex: ::pthread_mutex_t, __pthread_rwlock_readercv: ::pthread_cond_t, - __pthread_rwlock_writercv: ::pthread_cond_t + __pthread_rwlock_writercv: ::pthread_cond_t, } pub struct pthread_rwlockattr_t { @@ -230,12 +230,12 @@ s! { pub d_ino: ::ino_t, pub d_off: ::off_t, pub d_reclen: u16, - pub d_name: [::c_char; 3] + pub d_name: [::c_char; 3], } pub struct glob_t { pub gl_pathc: ::size_t, - pub gl_pathv: *mut *mut ::c_char, + pub gl_pathv: *mut *mut ::c_char, pub gl_offs: ::size_t, __unused1: *mut ::c_void, __unused2: ::c_int, @@ -299,7 +299,7 @@ s! { pub f_basetype: [::c_char; 16], pub f_flag: ::c_ulong, pub f_namemax: ::c_ulong, - pub f_fstr: [::c_char; 32] + pub f_fstr: [::c_char; 32], } pub struct sendfilevec_t { @@ -311,7 +311,7 @@ s! { pub struct sched_param { pub sched_priority: ::c_int, - sched_pad: [::c_int; 8] + sched_pad: [::c_int; 8], } pub struct Dl_info { @@ -338,7 +338,7 @@ s! { pub st_ctime_nsec: ::c_long, pub st_blksize: ::blksize_t, pub st_blocks: ::blkcnt_t, - __unused: [::c_char; 16] + __unused: [::c_char; 16], } pub struct termios { @@ -346,7 +346,7 @@ s! { pub c_oflag: ::tcflag_t, pub c_cflag: ::tcflag_t, pub c_lflag: ::tcflag_t, - pub c_cc: [::cc_t; ::NCCS] + pub c_cc: [::cc_t; ::NCCS], } pub struct lconv { @@ -381,7 +381,7 @@ s! { pub sem_type: u16, pub sem_magic: u16, pub sem_pad1: [u64; 3], - pub sem_pad2: [u64; 2] + pub sem_pad2: [u64; 2], } pub struct flock { @@ -391,7 +391,7 @@ s! { pub l_len: ::off_t, pub l_sysid: ::c_int, pub l_pid: ::pid_t, - pub l_pad: [::c_long; 4] + pub l_pad: [::c_long; 4], } pub struct if_nameindex { @@ -404,7 +404,7 @@ s! { pub mq_maxmsg: ::c_long, pub mq_msgsize: ::c_long, pub mq_curmsgs: ::c_long, - _pad: [::c_int; 12] + _pad: [::c_int; 12], } pub struct port_event { @@ -500,7 +500,7 @@ s! { s_no_extra_traits! { pub struct sockaddr_un { pub sun_family: sa_family_t, - pub sun_path: [c_char; 108] + pub sun_path: [c_char; 108], } pub struct utsname { @@ -574,10 +574,10 @@ cfg_if! { fn eq(&self, other: &sockaddr_un) -> bool { self.sun_family == other.sun_family && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a, b)| a == b) + .sun_path + .iter() + .zip(other.sun_path.iter()) + .all(|(a, b)| a == b) } } impl Eq for sockaddr_un {} @@ -603,25 +603,25 @@ cfg_if! { .zip(other.sysname.iter()) .all(|(a, b)| a == b) && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a, b)| a == b) + .nodename + .iter() + .zip(other.nodename.iter()) + .all(|(a, b)| a == b) && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a, b)| a == b) + .release + .iter() + .zip(other.release.iter()) + .all(|(a, b)| a == b) && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a, b)| a == b) + .version + .iter() + .zip(other.version.iter()) + .all(|(a, b)| a == b) && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a, b)| a == b) + .machine + .iter() + .zip(other.machine.iter()) + .all(|(a, b)| a == b) } } impl Eq for utsname {} @@ -674,10 +674,10 @@ cfg_if! { && self.__ss_pad1 == other.__ss_pad1 && self.__ss_align == other.__ss_align && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) + .__ss_pad2 + .iter() + .zip(other.__ss_pad2.iter()) + .all(|(a, b)| a == b) } } impl Eq for sockaddr_storage {} @@ -734,15 +734,16 @@ cfg_if! { fn eq(&self, other: &siginfo_t) -> bool { if self.si_signo == other.si_signo && self.si_code == other.si_code - && self.si_errno == other.si_errno { - // FIXME: The `si_pad` field in the 64-bit version of the struct is ignored - // (for now) when doing comparisons. - - let field_count = self.data_field_count(); - self.__data_pad[..field_count] - .iter() - .zip(other.__data_pad[..field_count].iter()) - .all(|(a, b)| a == b) + && self.si_errno == other.si_errno + { + // FIXME: The `si_pad` field in the 64-bit version of the struct is ignored + // (for now) when doing comparisons. + + let field_count = self.data_field_count(); + self.__data_pad[..field_count] + .iter() + .zip(other.__data_pad[..field_count].iter()) + .all(|(a, b)| a == b) } else { false } @@ -782,10 +783,10 @@ cfg_if! { && self.sdl_alen == other.sdl_alen && self.sdl_slen == other.sdl_slen && self - .sdl_data - .iter() - .zip(other.sdl_data.iter()) - .all(|(a,b)| a == b) + .sdl_data + .iter() + .zip(other.sdl_data.iter()) + .all(|(a, b)| a == b) } } impl Eq for sockaddr_dl {} @@ -820,8 +821,7 @@ cfg_if! { && self.sigev_signo == other.sigev_signo && self.sigev_value == other.sigev_value && self.ss_sp == other.ss_sp - && self.sigev_notify_attributes - == other.sigev_notify_attributes + && self.sigev_notify_attributes == other.sigev_notify_attributes } } impl Eq for sigevent {} @@ -832,8 +832,7 @@ cfg_if! { .field("sigev_signo", &self.sigev_signo) .field("sigev_value", &self.sigev_value) .field("ss_sp", &self.ss_sp) - .field("sigev_notify_attributes", - &self.sigev_notify_attributes) + .field("sigev_notify_attributes", &self.sigev_notify_attributes) .finish() } } @@ -850,7 +849,7 @@ cfg_if! { impl PartialEq for pad128_t { fn eq(&self, other: &pad128_t) -> bool { unsafe { - // FIXME: self._q == other._q || + // FIXME: self._q == other._q || self._l == other._l } } @@ -859,25 +858,25 @@ cfg_if! { impl ::fmt::Debug for pad128_t { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { unsafe { - f.debug_struct("pad128_t") - // FIXME: .field("_q", &{self._q}) - .field("_l", &{self._l}) - .finish() + f.debug_struct("pad128_t") + // FIXME: .field("_q", &{self._q}) + .field("_l", &{ self._l }) + .finish() } } } impl ::hash::Hash for pad128_t { fn hash(&self, state: &mut H) { unsafe { - // FIXME: state.write_i64(self._q as i64); - self._l.hash(state); + // FIXME: state.write_i64(self._q as i64); + self._l.hash(state); } } } impl PartialEq for upad128_t { fn eq(&self, other: &upad128_t) -> bool { unsafe { - // FIXME: self._q == other._q || + // FIXME: self._q == other._q || self._l == other._l } } @@ -886,18 +885,18 @@ cfg_if! { impl ::fmt::Debug for upad128_t { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { unsafe { - f.debug_struct("upad128_t") - // FIXME: .field("_q", &{self._q}) - .field("_l", &{self._l}) - .finish() + f.debug_struct("upad128_t") + // FIXME: .field("_q", &{self._q}) + .field("_l", &{ self._l }) + .finish() } } } impl ::hash::Hash for upad128_t { fn hash(&self, state: &mut H) { unsafe { - // FIXME: state.write_i64(self._q as i64); - self._l.hash(state); + // FIXME: state.write_i64(self._q as i64); + self._l.hash(state); } } } @@ -2489,47 +2488,43 @@ f! { } } - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) - -> *mut ::cmsghdr - { + pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { if cmsg.is_null() { return ::CMSG_FIRSTHDR(mhdr); }; - let next = _CMSG_HDR_ALIGN(cmsg as usize + (*cmsg).cmsg_len as usize - + ::mem::size_of::<::cmsghdr>()); - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; + let next = _CMSG_HDR_ALIGN( + cmsg as usize + (*cmsg).cmsg_len as usize + ::mem::size_of::<::cmsghdr>(), + ); + let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { 0 as *mut ::cmsghdr } else { - _CMSG_HDR_ALIGN(cmsg as usize + (*cmsg).cmsg_len as usize) - as *mut ::cmsghdr + _CMSG_HDR_ALIGN(cmsg as usize + (*cmsg).cmsg_len as usize) as *mut ::cmsghdr } } pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - _CMSG_HDR_ALIGN(::mem::size_of::<::cmsghdr>() as usize - + length as usize) as ::c_uint + _CMSG_HDR_ALIGN(::mem::size_of::<::cmsghdr>() as usize + length as usize) as ::c_uint } pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); - return + return; } pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; - return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0 + return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0; } pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] |= 1 << (fd % bits); - return + return; } pub fn FD_ZERO(set: *mut fd_set) -> () { diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index 58f03ab252693..8f271b71d4ead 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -64,7 +64,7 @@ s_no_extra_traits! { #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] pub struct door_desc_t__d_data__d_desc { pub d_descriptor: ::c_int, - pub d_id: ::door_id_t + pub d_id: ::door_id_t, } #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] @@ -102,7 +102,6 @@ s_no_extra_traits! { pub ut_syslen: ::c_short, pub ut_host: [::c_char; 257], } - } cfg_if! { @@ -120,10 +119,10 @@ cfg_if! { && self.ut_syslen == other.ut_syslen && self.pad == other.pad && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a, b)| a == b) } } diff --git a/src/unix/solarish/x86_64.rs b/src/unix/solarish/x86_64.rs index 4ca314d4992f1..4885aaef57c26 100644 --- a/src/unix/solarish/x86_64.rs +++ b/src/unix/solarish/x86_64.rs @@ -98,12 +98,12 @@ cfg_if! { impl PartialEq for __c_anonymous_fp_reg_set { fn eq(&self, other: &__c_anonymous_fp_reg_set) -> bool { unsafe { - self.fpchip_state == other.fpchip_state || - self. - f_fpregs. - iter(). - zip(other.f_fpregs.iter()). - all(|(a, b)| a == b) + self.fpchip_state == other.fpchip_state + || self + .f_fpregs + .iter() + .zip(other.f_fpregs.iter()) + .all(|(a, b)| a == b) } } } @@ -111,10 +111,10 @@ cfg_if! { impl ::fmt::Debug for __c_anonymous_fp_reg_set { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { unsafe { - f.debug_struct("__c_anonymous_fp_reg_set") - .field("fpchip_state", &{self.fpchip_state}) - .field("f_fpregs", &{self.f_fpregs}) - .finish() + f.debug_struct("__c_anonymous_fp_reg_set") + .field("fpchip_state", &{ self.fpchip_state }) + .field("f_fpregs", &{ self.f_fpregs }) + .finish() } } } @@ -125,7 +125,7 @@ cfg_if! { } impl Eq for fpregset_t {} impl ::fmt::Debug for fpregset_t { - fn fmt(&self, f:&mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("fpregset_t") .field("fp_reg_set", &self.fp_reg_set) .finish() @@ -133,13 +133,12 @@ cfg_if! { } impl PartialEq for mcontext_t { fn eq(&self, other: &mcontext_t) -> bool { - self.gregs == other.gregs && - self.fpregs == other.fpregs + self.gregs == other.gregs && self.fpregs == other.fpregs } } impl Eq for mcontext_t {} impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f:&mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("mcontext_t") .field("gregs", &self.gregs) .field("fpregs", &self.fpregs) @@ -158,7 +157,7 @@ cfg_if! { } impl Eq for ucontext_t {} impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f:&mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -169,7 +168,6 @@ cfg_if! { .finish() } } - } } diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 18b102b906767..4c4f6c1b4de2c 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -145,14 +145,14 @@ s! { } // b_pthread_cond_t.h - pub struct pthread_cond_t{ + pub struct pthread_cond_t { pub condSemId: ::_Vx_SEM_ID, pub condValid: ::c_int, pub condInitted: ::c_int, pub condRefCount: ::c_int, pub condMutex: *mut ::pthread_mutex_t, pub condAttr: ::pthread_condattr_t, - pub condSemName: [::c_char; _PTHREAD_SHARED_SEM_NAME_MAX] + pub condSemName: [::c_char; _PTHREAD_SHARED_SEM_NAME_MAX], } // b_pthread_rwlockattr_t.h @@ -165,12 +165,12 @@ s! { // b_pthread_rwlock_t.h pub struct pthread_rwlock_t { - pub rwlockSemId: :: _Vx_SEM_ID, + pub rwlockSemId: ::_Vx_SEM_ID, pub rwlockReadersRefCount: ::c_uint, pub rwlockValid: ::c_int, pub rwlockInitted: ::c_int, pub rwlockAttr: ::pthread_rwlockattr_t, - pub rwlockSemName: [::c_char; _PTHREAD_SHARED_SEM_NAME_MAX] + pub rwlockSemName: [::c_char; _PTHREAD_SHARED_SEM_NAME_MAX], } // b_struct_timeval.h @@ -186,9 +186,9 @@ s! { } pub struct sockaddr { - pub sa_len : ::c_uchar, - pub sa_family : sa_family_t, - pub sa_data : [::c_char; 14], + pub sa_len: ::c_uchar, + pub sa_family: sa_family_t, + pub sa_data: [::c_char; 14], } pub struct iovec { @@ -214,91 +214,90 @@ s! { // poll.h pub struct pollfd { - pub fd : ::c_int, - pub events : ::c_short, - pub revents : ::c_short, + pub fd: ::c_int, + pub events: ::c_short, + pub revents: ::c_short, } // resource.h pub struct rlimit { - pub rlim_cur : ::rlim_t, - pub rlim_max : ::rlim_t, + pub rlim_cur: ::rlim_t, + pub rlim_max: ::rlim_t, } // stat.h 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_uid : ::uid_t, - pub st_gid : ::gid_t, - pub st_rdev : ::dev_t, - pub st_size : ::off_t, - pub st_atime : ::time_t, - pub st_mtime : ::time_t, - pub st_ctime : ::time_t, - pub st_blksize : ::blksize_t, - pub st_blocks : ::blkcnt_t, - pub st_attrib : ::c_uchar, - pub st_reserved1 : ::c_int, - pub st_reserved2 : ::c_int, - pub st_reserved3 : ::c_int, - pub st_reserved4 : ::c_int, + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_atime: ::time_t, + pub st_mtime: ::time_t, + pub st_ctime: ::time_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_attrib: ::c_uchar, + pub st_reserved1: ::c_int, + pub st_reserved2: ::c_int, + pub st_reserved3: ::c_int, + pub st_reserved4: ::c_int, } //b_struct__Timespec.h pub struct _Timespec { - pub tv_sec : ::time_t, - pub tv_nsec : ::c_long, + pub tv_sec: ::time_t, + pub tv_nsec: ::c_long, } // b_struct__Sched_param.h pub struct sched_param { - pub sched_priority: ::c_int, /* scheduling priority */ + pub sched_priority: ::c_int, /* scheduling priority */ pub sched_ss_low_priority: ::c_int, /* low scheduling priority */ pub sched_ss_repl_period: ::_Timespec, /* replenishment period */ pub sched_ss_init_budget: ::_Timespec, /* initial budget */ pub sched_ss_max_repl: ::c_int, /* max pending replenishment */ - } // b_pthread_attr_t.h pub struct pthread_attr_t { - pub threadAttrStatus : ::c_int, - pub threadAttrStacksize : ::size_t, - pub threadAttrStackaddr : *mut ::c_void, - pub threadAttrGuardsize : ::size_t, - pub threadAttrDetachstate : ::c_int, - pub threadAttrContentionscope : ::c_int, - pub threadAttrInheritsched : ::c_int, - pub threadAttrSchedpolicy : ::c_int, - pub threadAttrName : *mut ::c_char, - pub threadAttrOptions : ::c_int, - pub threadAttrSchedparam : ::sched_param, + pub threadAttrStatus: ::c_int, + pub threadAttrStacksize: ::size_t, + pub threadAttrStackaddr: *mut ::c_void, + pub threadAttrGuardsize: ::size_t, + pub threadAttrDetachstate: ::c_int, + pub threadAttrContentionscope: ::c_int, + pub threadAttrInheritsched: ::c_int, + pub threadAttrSchedpolicy: ::c_int, + pub threadAttrName: *mut ::c_char, + pub threadAttrOptions: ::c_int, + pub threadAttrSchedparam: ::sched_param, } // signal.h pub struct sigaction { - pub sa_u : ::sa_u_t, - pub sa_mask : ::sigset_t, - pub sa_flags : ::c_int, + pub sa_u: ::sa_u_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, } // b_stack_t.h pub struct stack_t { - pub ss_sp : *mut ::c_void, - pub ss_size : ::size_t, - pub ss_flags : ::c_int, + pub ss_sp: *mut ::c_void, + pub ss_size: ::size_t, + pub ss_flags: ::c_int, } // signal.h pub struct siginfo_t { - pub si_signo : ::c_int, - pub si_code : ::c_int, - pub si_value : ::sigval, - pub si_errno : ::c_int, + pub si_signo: ::c_int, + pub si_code: ::c_int, + pub si_value: ::sigval, + pub si_errno: ::c_int, pub si_status: ::c_int, pub si_addr: *mut ::c_void, pub si_uid: ::uid_t, @@ -308,16 +307,16 @@ s! { // pthread.h (krnl) // b_pthread_mutexattr_t.h (usr) pub struct pthread_mutexattr_t { - mutexAttrStatus : ::c_int, - mutexAttrPshared : ::c_int, - mutexAttrProtocol : ::c_int, - mutexAttrPrioceiling : ::c_int, - mutexAttrType : ::c_int, + mutexAttrStatus: ::c_int, + mutexAttrPshared: ::c_int, + mutexAttrProtocol: ::c_int, + mutexAttrPrioceiling: ::c_int, + mutexAttrType: ::c_int, } // pthread.h (krnl) // b_pthread_mutex_t.h (usr) - pub struct pthread_mutex_t { + pub struct pthread_mutex_t { pub mutexSemId: ::_Vx_SEM_ID, /*_Vx_SEM_ID ..*/ pub mutexValid: ::c_int, pub mutexInitted: ::c_int, @@ -371,32 +370,32 @@ s! { // netdb.h pub struct addrinfo { - pub ai_flags : ::c_int, - pub ai_family : ::c_int, - pub ai_socktype : ::c_int, - pub ai_protocol : ::c_int, - pub ai_addrlen : ::size_t, + pub ai_flags: ::c_int, + pub ai_family: ::c_int, + pub ai_socktype: ::c_int, + pub ai_protocol: ::c_int, + pub ai_addrlen: ::size_t, pub ai_canonname: *mut ::c_char, - pub ai_addr : *mut ::sockaddr, - pub ai_next : *mut ::addrinfo, + pub ai_addr: *mut ::sockaddr, + pub ai_next: *mut ::addrinfo, } // in.h pub struct sockaddr_in { - pub sin_len : u8, + pub sin_len: u8, pub sin_family: u8, - pub sin_port : u16, - pub sin_addr : ::in_addr, - pub sin_zero : [::c_char; 8], + pub sin_port: u16, + pub sin_addr: ::in_addr, + pub sin_zero: [::c_char; 8], } // in6.h pub struct sockaddr_in6 { - pub sin6_len : u8, - pub sin6_family : u8, - pub sin6_port : u16, + pub sin6_len: u8, + pub sin6_family: u8, + pub sin6_port: u16, pub sin6_flowinfo: u32, - pub sin6_addr : ::in6_addr, + pub sin6_addr: ::in6_addr, pub sin6_scope_id: u32, } @@ -408,9 +407,9 @@ s! { } pub struct mq_attr { - pub mq_maxmsg: ::c_long, + pub mq_maxmsg: ::c_long, pub mq_msgsize: ::c_long, - pub mq_flags: ::c_long, + pub mq_flags: ::c_long, pub mq_curmsgs: ::c_long, } } @@ -418,47 +417,46 @@ s! { s_no_extra_traits! { // dirent.h pub struct dirent { - pub d_ino : ::ino_t, - pub d_name : [::c_char; _PARM_NAME_MAX as usize + 1], + pub d_ino: ::ino_t, + pub d_name: [::c_char; _PARM_NAME_MAX as usize + 1], } pub struct sockaddr_un { pub sun_len: u8, pub sun_family: sa_family_t, - pub sun_path: [::c_char; 104] + pub sun_path: [::c_char; 104], } // rtpLibCommon.h pub struct RTP_DESC { - pub status : ::c_int, - pub options : u32, - pub entrAddr : *mut ::c_void, + pub status: ::c_int, + pub options: u32, + pub entrAddr: *mut ::c_void, pub initTaskId: ::TASK_ID, - pub parentId : ::RTP_ID, - pub pathName : [::c_char; VX_RTP_NAME_LENGTH as usize + 1], - pub taskCnt : ::c_int, - pub textStart : *mut ::c_void, - pub textEnd : *mut ::c_void, + pub parentId: ::RTP_ID, + pub pathName: [::c_char; VX_RTP_NAME_LENGTH as usize + 1], + pub taskCnt: ::c_int, + pub textStart: *mut ::c_void, + pub textEnd: *mut ::c_void, } // socket.h pub struct sockaddr_storage { - pub ss_len : ::c_uchar, - pub ss_family : ::sa_family_t, - pub __ss_pad1 : [::c_char; _SS_PAD1SIZE], - pub __ss_align : i32, - pub __ss_pad2 : [::c_char; _SS_PAD2SIZE], + pub ss_len: ::c_uchar, + pub ss_family: ::sa_family_t, + pub __ss_pad1: [::c_char; _SS_PAD1SIZE], + pub __ss_align: i32, + pub __ss_pad2: [::c_char; _SS_PAD2SIZE], } pub union sa_u_t { - pub sa_handler : ::Option !>, - pub sa_sigaction: ::Option !>, + pub sa_handler: ::Option !>, + pub sa_sigaction: + ::Option !>, } pub union sigval { - pub sival_int : ::c_int, - pub sival_ptr : *mut ::c_void, + pub sival_int: ::c_int, + pub sival_ptr: *mut ::c_void, } } @@ -534,9 +532,7 @@ cfg_if! { None => 0 as usize, }; - f.debug_struct("sa_u_t") - .field("sa_handler", &h) - .finish() + f.debug_struct("sa_u_t").field("sa_handler", &h).finish() } } } @@ -1100,22 +1096,20 @@ f! { len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) } - pub fn CMSG_NXTHDR(mhdr: *const msghdr, - cmsg: *const cmsghdr) -> *mut cmsghdr { - let next = cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize) + pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { + let next = cmsg as usize + + CMSG_ALIGN((*cmsg).cmsg_len as usize) + CMSG_ALIGN(::mem::size_of::<::cmsghdr>()); - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; + let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next <= max { - (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) - as *mut ::cmsghdr + (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut ::cmsghdr } else { 0 as *mut ::cmsghdr } } pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize > 0 { + if (*mhdr).msg_controllen as usize > 0 { (*mhdr).msg_control as *mut cmsghdr } else { 0 as *mut cmsghdr @@ -1123,13 +1117,11 @@ f! { } pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar) - .offset(CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + (cmsg as *mut ::c_uchar).offset(CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) } pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) - as ::c_uint + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) as ::c_uint } pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { @@ -2011,7 +2003,7 @@ cfg_if! { } else if #[cfg(target_arch = "arm")] { mod arm; pub use self::arm::*; - } else if #[cfg(target_arch = "x86")] { + } else if #[cfg(target_arch = "x86")] { mod x86; pub use self::x86::*; } else if #[cfg(target_arch = "x86_64")] { diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index 9d311c411df6e..0e9f6377cf083 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -51,7 +51,7 @@ s_no_extra_traits! { #[repr(align(16))] #[allow(missing_debug_implementations)] pub struct max_align_t { - priv_: [f64; 4] + priv_: [f64; 4], } } @@ -384,14 +384,12 @@ cfg_if! { } else { // `addr_of!(EXTERN_STATIC)` is now safe; remove `unsafe` when MSRV >= 1.82 #[allow(unused_unsafe)] - pub static CLOCK_MONOTONIC: clockid_t = - clockid_t(core::ptr::addr_of!(_CLOCK_MONOTONIC)); + pub static CLOCK_MONOTONIC: clockid_t = clockid_t(core::ptr::addr_of!(_CLOCK_MONOTONIC)); #[allow(unused_unsafe)] pub static CLOCK_PROCESS_CPUTIME_ID: clockid_t = clockid_t(core::ptr::addr_of!(_CLOCK_PROCESS_CPUTIME_ID)); #[allow(unused_unsafe)] - pub static CLOCK_REALTIME: clockid_t = - clockid_t(core::ptr::addr_of!(_CLOCK_REALTIME)); + pub static CLOCK_REALTIME: clockid_t = clockid_t(core::ptr::addr_of!(_CLOCK_REALTIME)); #[allow(unused_unsafe)] pub static CLOCK_THREAD_CPUTIME_ID: clockid_t = clockid_t(core::ptr::addr_of!(_CLOCK_THREAD_CPUTIME_ID)); @@ -467,7 +465,7 @@ f! { pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { let set = &*set; let n = set.__nfds; - return set.__fds[..n].iter().any(|p| *p == fd) + return set.__fds[..n].iter().any(|p| *p == fd); } pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { @@ -481,7 +479,7 @@ f! { pub fn FD_ZERO(set: *mut fd_set) -> () { (*set).__nfds = 0; - return + return; } } diff --git a/src/windows/gnu/mod.rs b/src/windows/gnu/mod.rs index 740ea3fa548f3..1d90f826bc253 100644 --- a/src/windows/gnu/mod.rs +++ b/src/windows/gnu/mod.rs @@ -4,7 +4,7 @@ cfg_if! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [f64; 4] + priv_: [f64; 4], } } } else if #[cfg(target_pointer_width = "32")] { @@ -12,7 +12,7 @@ cfg_if! { #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { - priv_: [i64; 6] + priv_: [i64; 6], } } } From 7cffa23ed81376b1779691bb594623ec819b2816 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 21:46:05 -0500 Subject: [PATCH 0329/1228] Introduce a git-blame-ignore-revs file Start with the commit for formatting macro bodies in [1]. [1]: https://github.com/rust-lang/libc/pull/4107 (backport ) This is the `libc-0.2` version of 6269954cd1 ("Introduce a git-blame-ignore-revs file") with the ignored rev changed to what is applicable for this branch. --- .git-blame-ignore-revs | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .git-blame-ignore-revs diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 0000000000000..12f09ff7a2700 --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,2 @@ +# Format macro bodies +50f26e08e146b7e9c7d1af9614486eba327d1e31 From 3abb0d1336710e6d879471477b41565893ec4b45 Mon Sep 17 00:00:00 2001 From: Sebastien Marie Date: Sun, 17 Nov 2024 13:17:02 +0000 Subject: [PATCH 0330/1228] openbsd: skip ATF_* constants in CI the constants were removed in OpenBSD 7.7 by https://github.com/openbsd/src/commit/ff46e7d6ebc305e25e40b31e65a50463cfa5dc30 they were unused since 1991. (backport ) (cherry picked from commit 8b3ccdf345230e09b373bcf3baa00e9613e3d494) --- libc-test/build.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 1b0d442431e55..bd05230b2e5d4 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -580,6 +580,10 @@ fn test_openbsd(target: &str) { // Good chance it's going to be wrong depending on the host release "KERN_MAXID" | "NET_RT_MAXID" => true, "EV_SYSFLAGS" => true, + + // Removed in OpenBSD 7.7 (unused since 1991) + "ATF_COM" | "ATF_PERM" | "ATF_PUBL" | "ATF_USETRAILERS" => true, + _ => false, } }); From 7f53c728fa41ce377064c0dabf4852198354bd8a Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 17 Nov 2024 21:38:16 +0100 Subject: [PATCH 0331/1228] hurd: Add domainname field to utsname 158cd3063c11 ("hurd: fix definition of utsname struct") dropped it saying it is unused, but it is still there and read by the platform-info crate, whose build thus got broken. It is less troublesome to just declare the field. (backport ) (cherry picked from commit b3562e1053bcbeb6caffc2ff51e8fc614870e690) --- src/unix/hurd/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index fe3ee55aa9e91..72e5bf76087b4 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -874,6 +874,7 @@ s! { pub release: [::c_char; _UTSNAME_LENGTH], pub version: [::c_char; _UTSNAME_LENGTH], pub machine: [::c_char; _UTSNAME_LENGTH], + pub domainname: [::c_char; _UTSNAME_LENGTH], } pub struct rlimit64 { From 91989b67ae5ccce819ce6eed1fd7131cb08bc2b5 Mon Sep 17 00:00:00 2001 From: WANG Rui Date: Mon, 18 Nov 2024 16:46:42 +0800 Subject: [PATCH 0332/1228] Fix libc-tests for loongarch64-linux-musl (backport ) (cherry picked from commit bfdc3708196b02b854648b5f245f1304e8875029) --- libc-test/build.rs | 10 +++--- libc-test/semver/linux-gnu-loongarch64.txt | 15 +++++++++ libc-test/semver/linux-loongarch64.txt | 15 --------- src/unix/linux_like/linux/arch/generic/mod.rs | 3 ++ .../linux/musl/b64/loongarch64/mod.rs | 32 ++++--------------- src/unix/linux_like/linux/musl/mod.rs | 26 ++++++++++++--- 6 files changed, 51 insertions(+), 50 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index bd05230b2e5d4..4b5b7f41e3789 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4555,14 +4555,14 @@ fn test_linux(target: &str) { (struct_ == "iw_encode_ext" && field == "key") || // the `tcpi_snd_rcv_wscale` map two bitfield fields stored in a u8 (struct_ == "tcp_info" && field == "tcpi_snd_rcv_wscale") || - // the `tcpi_delivery_rate_app_limited` field is a bitfield on musl - (musl && struct_ == "tcp_info" && field == "tcpi_delivery_rate_app_limited") || - // the `tcpi_fast_open_client_fail` field is a bitfield on musl - (musl && struct_ == "tcp_info" && field == "tcpi_fast_open_client_fail") || + // the `tcpi_delivery_fastopen_bitfields` map two bitfield fields stored in a u8 + (musl && struct_ == "tcp_info" && field == "tcpi_delivery_fastopen_bitfields") || // either fsid_t or int[2] type (struct_ == "fanotify_event_info_fid" && field == "fsid") || // `handle` is a VLA - (struct_ == "fanotify_event_info_fid" && field == "handle") + (struct_ == "fanotify_event_info_fid" && field == "handle") || + // invalid application of 'sizeof' to incomplete type 'long unsigned int[]' + (musl && struct_ == "mcontext_t" && field == "__extcontext" && loongarch64) }); cfg.skip_roundtrip(move |s| match s { diff --git a/libc-test/semver/linux-gnu-loongarch64.txt b/libc-test/semver/linux-gnu-loongarch64.txt index dd1781a03504e..ec6595b79b76f 100644 --- a/libc-test/semver/linux-gnu-loongarch64.txt +++ b/libc-test/semver/linux-gnu-loongarch64.txt @@ -1,6 +1,21 @@ +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 PTRACE_GETFPREGS PTRACE_GETFPXREGS PTRACE_GETREGS PTRACE_SETFPREGS PTRACE_SETFPXREGS PTRACE_SETREGS +PTRACE_SYSEMU +PTRACE_SYSEMU_SINGLESTEP diff --git a/libc-test/semver/linux-loongarch64.txt b/libc-test/semver/linux-loongarch64.txt index 2e2b66b83bf42..ebcd4bf93356f 100644 --- a/libc-test/semver/linux-loongarch64.txt +++ b/libc-test/semver/linux-loongarch64.txt @@ -40,26 +40,11 @@ BPF_XOR CIBAUD FICLONE FICLONERANGE -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 diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index 63511e61f83e0..0d2514b60aa41 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -353,7 +353,10 @@ cfg_if! { pub const RLIMIT_RTPRIO: ::c_int = 14; pub const RLIMIT_RTTIME: ::c_int = 15; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] + #[cfg(not(target_arch = "loongarch64"))] pub const RLIM_NLIMITS: ::c_int = 15; + #[cfg(target_arch = "loongarch64")] + pub const RLIM_NLIMITS: ::c_int = 16; #[allow(deprecated)] #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIMIT_NLIMITS: ::c_int = RLIM_NLIMITS; diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index de2477022950b..40bdb0aa42e3c 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -11,10 +11,6 @@ pub type __u64 = ::c_ulonglong; pub type __s64 = ::c_longlong; s! { - pub struct pthread_attr_t { - __size: [::c_ulong; 7], - } - pub struct stat { pub st_dev: ::dev_t, pub st_ino: ::ino_t, @@ -59,21 +55,6 @@ s! { __unused: [::c_int; 2], } - pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - 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_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_frsize: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 4], - } - pub struct statfs64 { pub f_type: ::c_long, pub f_bsize: ::c_long, @@ -96,7 +77,7 @@ s! { pub cuid: ::uid_t, pub cgid: ::gid_t, pub mode: ::c_uint, - pub __seq: ::c_ushort, + pub __seq: ::c_int, __pad2: ::c_ushort, __unused1: ::c_ulong, __unused2: ::c_ulong, @@ -126,10 +107,10 @@ s! { #[repr(align(16))] pub struct mcontext_t { - pub __pc: ::c_ulonglong, - pub __gregs: [::c_ulonglong; 32], + pub __pc: ::c_ulong, + pub __gregs: [::c_ulong; 32], pub __flags: ::c_uint, - pub __extcontext: [::c_ulonglong; 0], + pub __extcontext: [::c_ulong; 0], } #[repr(align(8))] @@ -467,7 +448,7 @@ pub const SYS_futex_requeue: ::c_long = 456; pub const O_APPEND: ::c_int = 1024; pub const O_DIRECT: ::c_int = 0x4000; pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_LARGEFILE: ::c_int = 0; +pub const O_LARGEFILE: ::c_int = 0o0100000; pub const O_NOFOLLOW: ::c_int = 0x20000; pub const O_CREAT: ::c_int = 64; pub const O_EXCL: ::c_int = 128; @@ -476,7 +457,7 @@ pub const O_NONBLOCK: ::c_int = 2048; pub const O_SYNC: ::c_int = 1052672; pub const O_RSYNC: ::c_int = 1052672; pub const O_DSYNC: ::c_int = 4096; -pub const O_ASYNC: ::c_int = 4096; +pub const O_ASYNC: ::c_int = 0o20000; pub const SIGSTKSZ: ::size_t = 16384; pub const MINSIGSTKSZ: ::size_t = 4096; @@ -660,6 +641,7 @@ pub const ECHOPRT: ::tcflag_t = 0x00000400; pub const ECHOCTL: ::tcflag_t = 0x00000200; pub const ISIG: ::tcflag_t = 0x00000001; pub const ICANON: ::tcflag_t = 0x00000002; +pub const XCASE: ::tcflag_t = 0x00000004; pub const PENDIN: ::tcflag_t = 0x00004000; pub const NOFLSH: ::tcflag_t = 0x00000080; pub const CIBAUD: ::tcflag_t = 0o02003600000; diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 2135fb588122f..3c13e3a3d131a 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -355,14 +355,16 @@ s! { pub tcpi_backoff: u8, pub tcpi_options: u8, /* - * FIXME(musl): when musl headers are more up to date + * FIXME(musl): enable on all targets once musl headers are more up to date + */ /// This contains the bitfields `tcpi_snd_wscale` and `tcpi_rcv_wscale`. /// Each is 4 bits. + #[cfg(target_arch = "loongarch64")] pub tcpi_snd_rcv_wscale: u8, /// This contains the bitfields `tcpi_delivery_rate_app_limited` (1 bit) and /// `tcpi_fastopen_client_fail` (2 bits). + #[cfg(target_arch = "loongarch64")] pub tcpi_delivery_fastopen_bitfields: u8, - */ pub tcpi_rto: u32, pub tcpi_ato: u32, pub tcpi_snd_mss: u32, @@ -407,9 +409,11 @@ s! { pub tcpi_bytes_retrans: u64, pub tcpi_dsack_dups: u32, pub tcpi_reord_seen: u32, - // FIXME(musl): to uncomment once CI musl is updated - //pub tcpi_rcv_ooopack: u32, - //pub tcpi_snd_wnd: u32, + // FIXME(musl): enable on all targets once CI musl is updated + #[cfg(target_arch = "loongarch64")] + pub tcpi_rcv_ooopack: u32, + #[cfg(target_arch = "loongarch64")] + pub tcpi_snd_wnd: u32, } } @@ -449,8 +453,17 @@ s_no_extra_traits! { pub ut_exit: __exit_status, #[cfg(target_env = "musl")] + #[cfg(not(target_arch = "loongarch64"))] pub ut_session: ::c_long, + #[cfg(target_env = "musl")] + #[cfg(target_arch = "loongarch64")] + pub ut_session: ::c_int, + + #[cfg(target_env = "musl")] + #[cfg(target_arch = "loongarch64")] + __ut_pad2: ::c_int, + #[cfg(target_env = "ohos")] #[cfg(target_endian = "little")] pub ut_session: ::c_int, @@ -712,7 +725,10 @@ pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; +#[cfg(not(target_arch = "loongarch64"))] pub const CPU_SETSIZE: ::c_int = 128; +#[cfg(target_arch = "loongarch64")] +pub const CPU_SETSIZE: ::c_int = 1024; pub const PTRACE_TRACEME: ::c_int = 0; pub const PTRACE_PEEKTEXT: ::c_int = 1; From ef39104f720b562eebdc40d97b2e31556b7af8ca Mon Sep 17 00:00:00 2001 From: WANG Rui Date: Sat, 16 Nov 2024 21:22:10 +0800 Subject: [PATCH 0333/1228] ci: add support for loongarch64-unknown-linux-musl (backport ) (cherry picked from commit e03b59445a1b2b7e41f9ad72ae6ecc8598808ea8) --- .github/workflows/full_ci.yml | 1 + .../loongarch64-unknown-linux-musl/Dockerfile | 14 ++++++++++++++ ci/install-musl-cross.sh | 10 ++++++++++ 3 files changed, 25 insertions(+) create mode 100644 ci/docker/loongarch64-unknown-linux-musl/Dockerfile create mode 100644 ci/install-musl-cross.sh diff --git a/.github/workflows/full_ci.yml b/.github/workflows/full_ci.yml index 2788aa8848757..2a60edddd211e 100644 --- a/.github/workflows/full_ci.yml +++ b/.github/workflows/full_ci.yml @@ -165,6 +165,7 @@ jobs: - i686-linux-android - i686-unknown-linux-musl - loongarch64-unknown-linux-gnu + - loongarch64-unknown-linux-musl - powerpc-unknown-linux-gnu - powerpc64-unknown-linux-gnu - powerpc64le-unknown-linux-gnu diff --git a/ci/docker/loongarch64-unknown-linux-musl/Dockerfile b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile new file mode 100644 index 0000000000000..c1219c034c81f --- /dev/null +++ b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile @@ -0,0 +1,14 @@ +FROM ubuntu:24.04 + +RUN apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates curl gcc git libc6-dev make qemu-user xz-utils + +COPY install-musl-cross.sh / +RUN sh /install-musl-cross.sh loongarch64-unknown-linux-musl + +ENV CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_MUSL_LINKER=loongarch64-unknown-linux-musl-gcc \ + CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_MUSL_RUNNER="qemu-loongarch64" \ + CC_loongarch64_unknown_linux_musl=loongarch64-unknown-linux-musl-gcc \ + CFLAGS_loongarch64_unknown_linux_musl="-mabi=lp64d -fPIC" \ + QEMU_LD_PREFIX=/loongarch64-unknown-linux-musl/loongarch64-unknown-linux-musl/sysroot \ + PATH=$PATH:/loongarch64-unknown-linux-musl/bin:/rust/bin diff --git a/ci/install-musl-cross.sh b/ci/install-musl-cross.sh new file mode 100644 index 0000000000000..38381dc9bd6bf --- /dev/null +++ b/ci/install-musl-cross.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# +# Install musl cross toolchain + +set -ex + +MUSL_CROSS_VER=20241103 +MUSL_CROSS_URL=https://github.com/musl-cross/musl-cross/releases/download/$MUSL_CROSS_VER/$1.tar.xz + +curl -L --retry 5 "$MUSL_CROSS_URL" | tar -xJf - -C / From c3e2491ae07f70df6395a06df40e29dc3273f88a Mon Sep 17 00:00:00 2001 From: Petr Sumbera Date: Mon, 18 Nov 2024 17:56:57 +0100 Subject: [PATCH 0334/1228] Solaris: add definition for _POSIX_VDISABLE (backport ) (cherry picked from commit 64dd7f4a2cec3b4d84f4a5dd151dc8d43ed24236) --- libc-test/semver/solarish.txt | 1 + src/unix/solarish/mod.rs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/libc-test/semver/solarish.txt b/libc-test/semver/solarish.txt index 076eb5988bcb7..f70409ed8ae88 100644 --- a/libc-test/semver/solarish.txt +++ b/libc-test/semver/solarish.txt @@ -16,6 +16,7 @@ LIO_WAIT LIO_WRITE PIPE_BUF SIGEV_PORT +_POSIX_VDISABLE aio_cancel aio_error aio_fsync diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 1b978b17be720..c6fd956f5d3b5 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1870,6 +1870,8 @@ pub const _PC_FILESIZEBITS: ::c_int = 67; pub const _PC_XATTR_ENABLED: ::c_int = 100; pub const _PC_XATTR_EXISTS: ::c_int = 101; +pub const _POSIX_VDISABLE: ::cc_t = 0; + pub const _SC_ARG_MAX: ::c_int = 1; pub const _SC_CHILD_MAX: ::c_int = 2; pub const _SC_CLK_TCK: ::c_int = 3; From 18181ec5dd8042fc27ecdbd1a243fd331f75736c Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 15:47:15 -0500 Subject: [PATCH 0335/1228] ci: Set `-u` (error on unset) in all script files This is a pretty common flag to reduce errors. Make use of it here. (backport ) (cherry picked from commit 59a18de777622bccd8be5afce1248cfbfd32f607) --- ci/android-install-ndk.sh | 2 +- ci/android-install-sdk.sh | 2 +- ci/android-sysimage.sh | 2 +- ci/build.sh | 2 +- ci/docker/wasm32-unknown-emscripten/node-wrapper.sh | 2 +- ci/emscripten-entry.sh | 2 +- ci/emscripten.sh | 2 +- ci/install-musl.sh | 2 +- ci/install-rust.sh | 2 +- ci/linux-s390x.sh | 2 +- ci/linux-sparc64.sh | 2 +- ci/run-docker.sh | 2 +- ci/run.sh | 2 +- ci/style.sh | 2 +- ci/test-runner-linux | 2 +- ci/wasi.sh | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) diff --git a/ci/android-install-ndk.sh b/ci/android-install-ndk.sh index eb666e2db5da1..546917b5f8d53 100644 --- a/ci/android-install-ndk.sh +++ b/ci/android-install-ndk.sh @@ -1,6 +1,6 @@ #!/usr/bin/env sh -set -ex +set -eux ndk=android-ndk-r27 wget --tries=20 -q "https://dl.google.com/android/repository/${ndk}-linux.zip" diff --git a/ci/android-install-sdk.sh b/ci/android-install-sdk.sh index b7f2b8e1443fc..331e061357648 100644 --- a/ci/android-install-sdk.sh +++ b/ci/android-install-sdk.sh @@ -1,6 +1,6 @@ #!/usr/bin/env sh -set -ex +set -eux # Prep the SDK and emulator # diff --git a/ci/android-sysimage.sh b/ci/android-sysimage.sh index b49712035cf33..98484b3521f60 100644 --- a/ci/android-sysimage.sh +++ b/ci/android-sysimage.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -ex +set -eux URL=https://dl.google.com/android/repository/sys-img/android diff --git a/ci/build.sh b/ci/build.sh index 0239309ddf355..78556b6f7a8fc 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -5,7 +5,7 @@ # The FILTER environment variable can be used to select which target(s) to build. # For example: set FILTER to vxworks to select the targets that has vxworks in name -set -ex +set -eux : "${TOOLCHAIN?The TOOLCHAIN environment variable must be set.}" : "${OS?The OS environment variable must be set.}" diff --git a/ci/docker/wasm32-unknown-emscripten/node-wrapper.sh b/ci/docker/wasm32-unknown-emscripten/node-wrapper.sh index 369439269a683..0fd93dc49d9c8 100755 --- a/ci/docker/wasm32-unknown-emscripten/node-wrapper.sh +++ b/ci/docker/wasm32-unknown-emscripten/node-wrapper.sh @@ -1,6 +1,6 @@ #!/bin/sh -set -e +set -eux me="$1" shift diff --git a/ci/emscripten-entry.sh b/ci/emscripten-entry.sh index e950cbe33ab06..344c347b75a72 100755 --- a/ci/emscripten-entry.sh +++ b/ci/emscripten-entry.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -ex +set -eux # shellcheck disable=SC1091 source /emsdk-portable/emsdk_env.sh &> /dev/null diff --git a/ci/emscripten.sh b/ci/emscripten.sh index b17a40c1a287d..0a4112e7e205e 100644 --- a/ci/emscripten.sh +++ b/ci/emscripten.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -ex +set -eux # Note: keep in sync with: # https://github.com/rust-lang/rust/blob/master/src/ci/docker/scripts/emscripten.sh diff --git a/ci/install-musl.sh b/ci/install-musl.sh index fae46ee928c9f..5f8c681fa6678 100644 --- a/ci/install-musl.sh +++ b/ci/install-musl.sh @@ -3,7 +3,7 @@ # Install musl and musl-sanitized linux kernel headers # to musl-{$1} directory -set -ex +set -eux musl_version=1.1.24 musl="musl-${musl_version}" diff --git a/ci/install-rust.sh b/ci/install-rust.sh index a0b841807b106..0438ee4f9f6fe 100644 --- a/ci/install-rust.sh +++ b/ci/install-rust.sh @@ -1,7 +1,7 @@ #!/usr/bin/env sh # This is intended to be used in CI only. -set -ex +set -eux echo "Setup toolchain" toolchain= diff --git a/ci/linux-s390x.sh b/ci/linux-s390x.sh index 63d29b5beb597..5c89e90b11906 100644 --- a/ci/linux-s390x.sh +++ b/ci/linux-s390x.sh @@ -1,6 +1,6 @@ #!/usr/bin/env sh -set -ex +set -eux mkdir -m 777 /qemu cd /qemu diff --git a/ci/linux-sparc64.sh b/ci/linux-sparc64.sh index a42218a62ead0..d81ed104277a9 100644 --- a/ci/linux-sparc64.sh +++ b/ci/linux-sparc64.sh @@ -1,6 +1,6 @@ #!/usr/bin/env sh -set -ex +set -eux mkdir -m 777 /qemu cd /qemu diff --git a/ci/run-docker.sh b/ci/run-docker.sh index a812ee7ab183a..a4a34be6b4f4a 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -6,7 +6,7 @@ # Small script to run tests for a target (or all targets) inside all the # respective docker images. -set -ex +set -eux # Default to assuming the CARGO_HOME is one directory up (to account for a `bin` # subdir) from where the `cargo` binary in `$PATH` lives. diff --git a/ci/run.sh b/ci/run.sh index e01dd3c14a574..caf4eb4333281 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -3,7 +3,7 @@ # Builds and runs tests for a particular target passed as an argument to this # script. -set -ex +set -eux mirrors_url="https://ci-mirrors.rust-lang.org/libc" diff --git a/ci/style.sh b/ci/style.sh index 53efb82280c87..d1b639db5bb89 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -1,6 +1,6 @@ #!/bin/sh -set -ex +set -eux if [ -n "${CI:-}" ]; then rustup toolchain install nightly -c rustfmt --allow-downgrade diff --git a/ci/test-runner-linux b/ci/test-runner-linux index 9ab029b0a7df2..55f84da1700f7 100755 --- a/ci/test-runner-linux +++ b/ci/test-runner-linux @@ -1,6 +1,6 @@ #!/bin/sh -set -e +set -eux arch="$1" prog="$2" diff --git a/ci/wasi.sh b/ci/wasi.sh index 1b72d356fac06..e7896233ad7f3 100644 --- a/ci/wasi.sh +++ b/ci/wasi.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -ex +set -eux apt-get update apt-get install -y --no-install-recommends \ From 759adaf132875bdfa728aef1b6f92fd8968e206e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 15:51:05 -0500 Subject: [PATCH 0336/1228] ci: Fix cases where unset variables cause errors (backport ) (cherry picked from commit f3bb382ba5344e4dd400b6875a42d769ab9af74f) --- ci/install-rust.sh | 21 +++++++++------------ ci/run.sh | 2 +- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/ci/install-rust.sh b/ci/install-rust.sh index 0438ee4f9f6fe..becb532d1469d 100644 --- a/ci/install-rust.sh +++ b/ci/install-rust.sh @@ -4,14 +4,11 @@ set -eux echo "Setup toolchain" -toolchain= -if [ -n "$TOOLCHAIN" ]; then - toolchain=$TOOLCHAIN -else - toolchain=nightly -fi -if [ "$OS" = "windows" ]; then +toolchain="${TOOLCHAIN:-nightly}" +os="${OS:-}" + +if [ "$os" = "windows" ]; then : "${TARGET?The TARGET environment variable must be set.}" rustup set profile minimal rustup update --force "$toolchain-$TARGET" @@ -22,18 +19,18 @@ else rustup default "$toolchain" fi -if [ -n "$TARGET" ]; then +if [ -n "${TARGET:-}" ]; then echo "Install target" rustup target add "$TARGET" fi -if [ -n "$INSTALL_RUST_SRC" ]; then +if [ -n "${INSTALL_RUST_SRC:-}" ]; then echo "Install rust-src" rustup component add rust-src fi -if [ "$OS" = "windows" ]; then - if [ "$ARCH_BITS" = "i686" ]; then +if [ "$os" = "windows" ]; then + if [ "${ARCH_BITS:-}" = "i686" ]; then echo "Install MinGW32" choco install mingw --x86 --force fi @@ -44,7 +41,7 @@ if [ "$OS" = "windows" ]; then /usr/bin/find "C:\ProgramData\Chocolatey" -name "dllcrt2*" /usr/bin/find "C:\ProgramData\Chocolatey" -name "libmsvcrt*" - if [ -n "$ARCH_BITS" ]; then + if [ -n "${ARCH_BITS:-}" ]; then echo "Fix MinGW" for i in crt2.o dllcrt2.o libmingwex.a libmsvcrt.a ; do cp -f "/C/ProgramData/Chocolatey/lib/mingw/tools/install/mingw$ARCH_BITS/$ARCH-w64-mingw32/lib/$i" "$(rustc --print sysroot)/lib/rustlib/$TARGET/lib" diff --git a/ci/run.sh b/ci/run.sh index caf4eb4333281..f4fef82fcdc2d 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -15,7 +15,7 @@ target="$1" # # It's assume that all images, when run with two disks, will run the `run.sh` # script from the second which we place inside. -if [ "$QEMU" != "" ]; then +if [ -n "${QEMU:-}" ]; then tmpdir=/tmp/qemu-img-creation mkdir -p "${tmpdir}" From 43fe4a0e3ee3d480b67d411a3d516aaef947ab9e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 16:00:51 -0500 Subject: [PATCH 0337/1228] ci: fix indentation in one more place (backport ) (cherry picked from commit 331dd50ef6976778ea73535a953d111fa438caee) --- ci/run-docker.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ci/run-docker.sh b/ci/run-docker.sh index a4a34be6b4f4a..4cef3d45c504d 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -89,13 +89,13 @@ build_switch() { } if [ -z "${1}" ]; then - for d in ci/docker/*; do - run "${d}" - done + for d in ci/docker/*; do + run "${d}" + done else - if [ "${1}" != "switch" ]; then - run "${1}" - else - build_switch - fi + if [ "${1}" != "switch" ]; then + run "${1}" + else + build_switch + fi fi From e103585aaf435ccd6eba15fd564e7a3a7ab54697 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 19 Nov 2024 20:48:21 -0500 Subject: [PATCH 0338/1228] Change from `$(,)?` to `$(,)*` for ctest `ctest` sometimes reports a parsing failure but it isn't consistent (I do not know why). Just use a less ideal older syntax for now, this is an internal macro. (backport ) (cherry picked from commit 27ad99414328a0589edf9b0b86792004dcb6925f) --- src/macros.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index 19d567dfc3708..23fe345167100 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -197,13 +197,14 @@ macro_rules! e { // FIXME(ctest): ctest can't handle `const extern` functions, we should be able to remove this // cfg completely. +// FIXME(ctest): ctest can't handle `$(,)?` so we use `$(,)*` which isn't quite correct. cfg_if! { if #[cfg(feature = "const-extern-fn")] { /// Define an `unsafe` function that is const as long as `const-extern-fn` is enabled. macro_rules! f { ($( $(#[$attr:meta])* - pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)?) -> $ret:ty + pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty $body:block )*) => ($( #[inline] @@ -217,7 +218,7 @@ cfg_if! { macro_rules! safe_f { ($( $(#[$attr:meta])* - pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)?) -> $ret:ty + pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty $body:block )*) => ($( #[inline] @@ -231,7 +232,7 @@ cfg_if! { macro_rules! const_fn { ($( $(#[$attr:meta])* - $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)?) -> $ret:ty + $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty $body:block )*) => ($( #[inline] @@ -245,7 +246,7 @@ cfg_if! { macro_rules! f { ($( $(#[$attr:meta])* - pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)?) -> $ret:ty + pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty $body:block )*) => ($( #[inline] @@ -259,7 +260,7 @@ cfg_if! { macro_rules! safe_f { ($( $(#[$attr:meta])* - pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)?) -> $ret:ty + pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty $body:block )*) => ($( #[inline] @@ -273,7 +274,7 @@ cfg_if! { macro_rules! const_fn { ($( $(#[$attr:meta])* - $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)?) -> $ret:ty + $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty $body:block )*) => ($( #[inline] From bbf696c50c28e1f8dffbc053b4a1ca67f8bd9d8d Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 00:07:06 -0500 Subject: [PATCH 0339/1228] ci: Always run rustfmt Since 6ab46bb97c ("ci: Use some tricks..."), `rustfmt` is invoked manually on all files in `src`. However, this stopped running `cargo fmt` which covered everything that wasn't in `src`. This was unintentional so add it back. (backport ) (cherry picked from commit 96b6ec2c2cb6ebed6a67dcacef590aa06068a060) --- ci/style.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ci/style.sh b/ci/style.sh index d1b639db5bb89..17a47d037360a 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -14,6 +14,9 @@ rustc ci/style.rs && ./style src command -v rustfmt rustfmt -V +# Run once to cover everything that isn't in `src/` +cargo fmt + # Save a list of all source files tmpfile="file-list~" # trailing tilde for gitignore find src -name '*.rs' > "$tmpfile" From 09b8ed69d7dae6ebb40123d5044abe4ffdf90d24 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 01:19:56 -0500 Subject: [PATCH 0340/1228] ci: Change 64-bit Docker images to ubuntu:24.10 23.10 is EOL so update to the latest stable version. This change excludes sparc which is stuck on an older version. (backport ) (cherry picked from commit 0c9abeff5569581f2f459524194b5bfca693bbd8) --- ci/docker/aarch64-linux-android/Dockerfile | 3 +-- ci/docker/aarch64-unknown-linux-gnu/Dockerfile | 3 ++- ci/docker/aarch64-unknown-linux-musl/Dockerfile | 2 +- ci/docker/arm-linux-androideabi/Dockerfile | 3 +-- ci/docker/asmjs-unknown-emscripten/Dockerfile | 3 +-- ci/docker/i686-linux-android/Dockerfile | 3 +-- ci/docker/loongarch64-unknown-linux-gnu/Dockerfile | 2 +- ci/docker/loongarch64-unknown-linux-musl/Dockerfile | 2 +- ci/docker/powerpc64-unknown-linux-gnu/Dockerfile | 2 +- ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile | 2 +- ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile | 2 +- ci/docker/s390x-unknown-linux-gnu/Dockerfile | 2 +- ci/docker/s390x-unknown-linux-musl/Dockerfile | 2 +- ci/docker/wasm32-unknown-emscripten/Dockerfile | 3 +-- ci/docker/wasm32-wasip1/Dockerfile | 2 +- ci/docker/wasm32-wasip2/Dockerfile | 2 +- ci/docker/x86_64-linux-android/Dockerfile | 3 +-- ci/docker/x86_64-unknown-linux-gnu/Dockerfile | 3 ++- ci/docker/x86_64-unknown-linux-gnux32/Dockerfile | 3 ++- ci/docker/x86_64-unknown-linux-musl/Dockerfile | 2 +- 20 files changed, 23 insertions(+), 26 deletions(-) diff --git a/ci/docker/aarch64-linux-android/Dockerfile b/ci/docker/aarch64-linux-android/Dockerfile index 7b8bdcfdadb32..d6927e5cc80ec 100644 --- a/ci/docker/aarch64-linux-android/Dockerfile +++ b/ci/docker/aarch64-linux-android/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:23.10 +FROM ubuntu:24.10 RUN dpkg --add-architecture i386 RUN apt-get update @@ -8,7 +8,6 @@ RUN apt-get install -y --no-install-recommends \ wget \ ca-certificates \ python3 \ - python3-distutils \ unzip \ expect \ openjdk-8-jre \ diff --git a/ci/docker/aarch64-unknown-linux-gnu/Dockerfile b/ci/docker/aarch64-unknown-linux-gnu/Dockerfile index c94a7c63c0ea4..00569ddf22c9b 100644 --- a/ci/docker/aarch64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/aarch64-unknown-linux-gnu/Dockerfile @@ -1,4 +1,5 @@ -FROM ubuntu:23.10 +FROM ubuntu:24.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 diff --git a/ci/docker/aarch64-unknown-linux-musl/Dockerfile b/ci/docker/aarch64-unknown-linux-musl/Dockerfile index bc15db0692297..fd4c1e28f2525 100644 --- a/ci/docker/aarch64-unknown-linux-musl/Dockerfile +++ b/ci/docker/aarch64-unknown-linux-musl/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:23.10 +FROM ubuntu:24.10 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc make libc6-dev git curl ca-certificates \ diff --git a/ci/docker/arm-linux-androideabi/Dockerfile b/ci/docker/arm-linux-androideabi/Dockerfile index d0fb3176de7e7..9d6a5c9649832 100644 --- a/ci/docker/arm-linux-androideabi/Dockerfile +++ b/ci/docker/arm-linux-androideabi/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:23.10 +FROM ubuntu:24.10 RUN dpkg --add-architecture i386 RUN apt-get update @@ -8,7 +8,6 @@ RUN apt-get install -y --no-install-recommends \ wget \ ca-certificates \ python3 \ - python3-distutils \ unzip \ expect \ openjdk-8-jre \ diff --git a/ci/docker/asmjs-unknown-emscripten/Dockerfile b/ci/docker/asmjs-unknown-emscripten/Dockerfile index d344cb1368f28..6f2d5ddfc78e1 100644 --- a/ci/docker/asmjs-unknown-emscripten/Dockerfile +++ b/ci/docker/asmjs-unknown-emscripten/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:23.10 +FROM ubuntu:24.10 # This is a workaround to avoid the interaction with tzdata. ENV DEBIAN_FRONTEND=noninteractive @@ -14,7 +14,6 @@ RUN apt-get install -y --no-install-recommends \ libc6-dev \ libxml2 \ python3 \ - python3-distutils \ xz-utils \ bzip2 diff --git a/ci/docker/i686-linux-android/Dockerfile b/ci/docker/i686-linux-android/Dockerfile index a78c7cb6e8457..0fb48aca342d4 100644 --- a/ci/docker/i686-linux-android/Dockerfile +++ b/ci/docker/i686-linux-android/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:23.10 +FROM ubuntu:24.10 RUN dpkg --add-architecture i386 RUN apt-get update @@ -8,7 +8,6 @@ RUN apt-get install -y --no-install-recommends \ wget \ ca-certificates \ python3 \ - python3-distutils \ unzip \ expect \ openjdk-8-jre \ diff --git a/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile b/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile index aebf7c0741956..16b4cf4bfd34e 100644 --- a/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.04 +FROM ubuntu:24.10 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc libc6-dev qemu-user ca-certificates \ diff --git a/ci/docker/loongarch64-unknown-linux-musl/Dockerfile b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile index c1219c034c81f..2efd095b0fddd 100644 --- a/ci/docker/loongarch64-unknown-linux-musl/Dockerfile +++ b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.04 +FROM ubuntu:24.10 RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates curl gcc git libc6-dev make qemu-user xz-utils diff --git a/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile b/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile index b5bf6e90dfbbd..76d8471a63aac 100644 --- a/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:23.10 +FROM ubuntu:24.10 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc libc6-dev qemu-user ca-certificates \ diff --git a/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile b/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile index f078a13e7c484..c4c6af25b8684 100644 --- a/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile +++ b/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:23.10 +FROM ubuntu:24.10 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc libc6-dev qemu-user ca-certificates \ diff --git a/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile b/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile index 9ada79ac7273d..0624e2c102055 100644 --- a/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile +++ b/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:23.10 +FROM ubuntu:24.10 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc libc6-dev qemu-user ca-certificates \ diff --git a/ci/docker/s390x-unknown-linux-gnu/Dockerfile b/ci/docker/s390x-unknown-linux-gnu/Dockerfile index 70856d78bb879..306d773a61165 100644 --- a/ci/docker/s390x-unknown-linux-gnu/Dockerfile +++ b/ci/docker/s390x-unknown-linux-gnu/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:23.10 +FROM ubuntu:24.10 RUN apt-get update && apt-get install -y --no-install-recommends \ curl ca-certificates \ diff --git a/ci/docker/s390x-unknown-linux-musl/Dockerfile b/ci/docker/s390x-unknown-linux-musl/Dockerfile index d93eba4bd48e6..d103a1d7488e0 100644 --- a/ci/docker/s390x-unknown-linux-musl/Dockerfile +++ b/ci/docker/s390x-unknown-linux-musl/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:23.10 +FROM ubuntu:24.10 RUN apt-get update && apt-get install -y --no-install-recommends \ curl ca-certificates \ diff --git a/ci/docker/wasm32-unknown-emscripten/Dockerfile b/ci/docker/wasm32-unknown-emscripten/Dockerfile index 0e429c055b200..5af38ca5258db 100644 --- a/ci/docker/wasm32-unknown-emscripten/Dockerfile +++ b/ci/docker/wasm32-unknown-emscripten/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:23.10 +FROM ubuntu:24.10 # This is a workaround to avoid the interaction with tzdata. ENV DEBIAN_FRONTEND=noninteractive @@ -17,7 +17,6 @@ RUN apt-get install -y --no-install-recommends \ libc6-dev \ libxml2 \ python3 \ - python3-distutils \ cmake \ sudo \ gdb \ diff --git a/ci/docker/wasm32-wasip1/Dockerfile b/ci/docker/wasm32-wasip1/Dockerfile index e1318151d2e62..68940f4615a7e 100644 --- a/ci/docker/wasm32-wasip1/Dockerfile +++ b/ci/docker/wasm32-wasip1/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.04 +FROM ubuntu:24.10 COPY wasi.sh / RUN bash /wasi.sh diff --git a/ci/docker/wasm32-wasip2/Dockerfile b/ci/docker/wasm32-wasip2/Dockerfile index c433c491353f9..7abaaf54da02d 100644 --- a/ci/docker/wasm32-wasip2/Dockerfile +++ b/ci/docker/wasm32-wasip2/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.04 +FROM ubuntu:24.10 COPY wasi.sh / RUN bash /wasi.sh diff --git a/ci/docker/x86_64-linux-android/Dockerfile b/ci/docker/x86_64-linux-android/Dockerfile index d4e87b5f419fc..f6331f10f3897 100644 --- a/ci/docker/x86_64-linux-android/Dockerfile +++ b/ci/docker/x86_64-linux-android/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:23.10 +FROM ubuntu:24.10 RUN apt-get update && \ apt-get install -y --no-install-recommends \ @@ -7,7 +7,6 @@ RUN apt-get update && \ gcc \ libc-dev \ python3 \ - python3-distutils \ unzip WORKDIR /android/ diff --git a/ci/docker/x86_64-unknown-linux-gnu/Dockerfile b/ci/docker/x86_64-unknown-linux-gnu/Dockerfile index aa5d5e043f9b1..b6ad33ebc7cb5 100644 --- a/ci/docker/x86_64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-gnu/Dockerfile @@ -1,4 +1,5 @@ -FROM ubuntu:23.10 +FROM ubuntu:24.10 + RUN apt-get update RUN apt-get install -y --no-install-recommends \ gcc libc6-dev ca-certificates linux-headers-generic diff --git a/ci/docker/x86_64-unknown-linux-gnux32/Dockerfile b/ci/docker/x86_64-unknown-linux-gnux32/Dockerfile index 6cdc1942c50c7..f50af741db564 100644 --- a/ci/docker/x86_64-unknown-linux-gnux32/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-gnux32/Dockerfile @@ -1,4 +1,5 @@ -FROM ubuntu:23.10 +FROM ubuntu:24.10 + RUN apt-get update RUN apt-get install -y --no-install-recommends \ gcc-multilib libc6-dev ca-certificates diff --git a/ci/docker/x86_64-unknown-linux-musl/Dockerfile b/ci/docker/x86_64-unknown-linux-musl/Dockerfile index 7b65f5fa2a8c1..11fbd6e1be46a 100644 --- a/ci/docker/x86_64-unknown-linux-musl/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-musl/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:23.10 +FROM ubuntu:24.10 RUN apt-get update RUN apt-get install -y --no-install-recommends \ From 96ffc1e25c3ef91773fbe0eadcfe1fbb95a75a16 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 01:30:12 -0500 Subject: [PATCH 0341/1228] ci: Change 32-bit Docker images to use EOL repos (backport ) (cherry picked from commit 9830960c19c53b1527593413e0f55c8cfb067344) --- ci/docker/arm-unknown-linux-gnueabihf/Dockerfile | 10 +++++++--- ci/docker/arm-unknown-linux-musleabihf/Dockerfile | 9 ++++++--- ci/docker/armv7-unknown-linux-uclibceabihf/Dockerfile | 5 ++++- ci/docker/i686-unknown-linux-gnu/Dockerfile | 11 ++++++++--- ci/docker/i686-unknown-linux-musl/Dockerfile | 11 +++++++---- ci/docker/powerpc-unknown-linux-gnu/Dockerfile | 5 ++++- 6 files changed, 36 insertions(+), 15 deletions(-) diff --git a/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile b/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile index 977acabf4b6ba..8f2d3ea80d065 100644 --- a/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile +++ b/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile @@ -1,7 +1,11 @@ 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 + +# FIXME(time): we are using an EOL release because 24.04 changes to 64-bit time +RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ + /etc/apt/sources.list && \ + 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 ENV CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \ CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_RUNNER="qemu-arm -L /usr/arm-linux-gnueabihf" \ PATH=$PATH:/rust/bin diff --git a/ci/docker/arm-unknown-linux-musleabihf/Dockerfile b/ci/docker/arm-unknown-linux-musleabihf/Dockerfile index 1709699997e7f..f8a5d27df3b5f 100644 --- a/ci/docker/arm-unknown-linux-musleabihf/Dockerfile +++ b/ci/docker/arm-unknown-linux-musleabihf/Dockerfile @@ -1,8 +1,11 @@ FROM ubuntu:23.10 -RUN apt-get update && apt-get install -y --no-install-recommends \ - gcc make libc6-dev git curl ca-certificates \ - gcc-arm-linux-gnueabihf qemu-user +# FIXME(time): we are using an EOL release because 24.04 changes to 64-bit time +RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ + /etc/apt/sources.list && \ + apt-get update && apt-get install -y --no-install-recommends \ + gcc make libc6-dev git curl ca-certificates \ + gcc-arm-linux-gnueabihf qemu-user COPY install-musl.sh / RUN sh /install-musl.sh arm diff --git a/ci/docker/armv7-unknown-linux-uclibceabihf/Dockerfile b/ci/docker/armv7-unknown-linux-uclibceabihf/Dockerfile index 585fdc35ff542..330493f54a1d1 100644 --- a/ci/docker/armv7-unknown-linux-uclibceabihf/Dockerfile +++ b/ci/docker/armv7-unknown-linux-uclibceabihf/Dockerfile @@ -1,6 +1,9 @@ FROM ubuntu:23.10 -RUN apt-get update && apt-get install -y --no-install-recommends \ +# FIXME(time): we are using an EOL release because 24.04 changes to 64-bit time +RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ + /etc/apt/sources.list && \ + apt-get update && apt-get install -y --no-install-recommends \ gcc libc6-dev qemu-user ca-certificates qemu-system-arm curl \ xz-utils patch file diff --git a/ci/docker/i686-unknown-linux-gnu/Dockerfile b/ci/docker/i686-unknown-linux-gnu/Dockerfile index 6cdc1942c50c7..fae0b566d33fc 100644 --- a/ci/docker/i686-unknown-linux-gnu/Dockerfile +++ b/ci/docker/i686-unknown-linux-gnu/Dockerfile @@ -1,5 +1,10 @@ FROM ubuntu:23.10 -RUN apt-get update -RUN apt-get install -y --no-install-recommends \ - gcc-multilib libc6-dev ca-certificates + + +# FIXME(time): we are using an EOL release because 24.04 changes to 64-bit time +RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ + /etc/apt/sources.list && \ + apt-get update && apt-get install -y --no-install-recommends \ + gcc-multilib libc6-dev ca-certificates + ENV PATH=$PATH:/rust/bin diff --git a/ci/docker/i686-unknown-linux-musl/Dockerfile b/ci/docker/i686-unknown-linux-musl/Dockerfile index a54456fd9942b..4f36d2075485c 100644 --- a/ci/docker/i686-unknown-linux-musl/Dockerfile +++ b/ci/docker/i686-unknown-linux-musl/Dockerfile @@ -1,9 +1,12 @@ FROM ubuntu:23.10 -RUN dpkg --add-architecture i386 -RUN apt-get update -RUN apt-get install -y --no-install-recommends \ - gcc-multilib make libc6-dev git curl ca-certificates libc6-i386 + +# FIXME(time): we are using an EOL release because 24.04 changes to 64-bit time +RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ + /etc/apt/sources.list && \ + dpkg --add-architecture i386 && \ + apt-get update && apt-get install -y --no-install-recommends \ + gcc-multilib make libc6-dev git curl ca-certificates libc6-i386 COPY install-musl.sh / RUN sh /install-musl.sh i686 diff --git a/ci/docker/powerpc-unknown-linux-gnu/Dockerfile b/ci/docker/powerpc-unknown-linux-gnu/Dockerfile index 930f0375db219..535202951d2ce 100644 --- a/ci/docker/powerpc-unknown-linux-gnu/Dockerfile +++ b/ci/docker/powerpc-unknown-linux-gnu/Dockerfile @@ -1,6 +1,9 @@ FROM ubuntu:23.10 -RUN apt-get update && apt-get install -y --no-install-recommends \ +# FIXME(time): we are using an EOL release because 24.04 changes to 64-bit time +RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ + /etc/apt/sources.list && \ + apt-get update && apt-get install -y --no-install-recommends \ gcc libc6-dev qemu-user ca-certificates \ gcc-powerpc-linux-gnu libc6-dev-powerpc-cross \ qemu-system-ppc From 1d5a76db0f44cf28b5f9d293725cf7fa50346b62 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 01:46:45 -0500 Subject: [PATCH 0342/1228] tests: Ignore fields as required on Ubuntu 24.10 Recent versions of glibc adjusted the fields in `statvfs`. Update tests to ignore the differences. (backport ) (cherry picked from commit 2d206ecb14c5f220eb67db446d51a21ab7ae093e) --- libc-test/build.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 4b5b7f41e3789..c8b1297d691ad 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4562,7 +4562,10 @@ fn test_linux(target: &str) { // `handle` is a VLA (struct_ == "fanotify_event_info_fid" && field == "handle") || // invalid application of 'sizeof' to incomplete type 'long unsigned int[]' - (musl && struct_ == "mcontext_t" && field == "__extcontext" && loongarch64) + (musl && struct_ == "mcontext_t" && field == "__extcontext" && loongarch64) || + // FIXME(#4121): a new field was added from `f_spare` + (struct_ == "statvfs" && field == "__f_spare") || + (struct_ == "statvfs64" && field == "__f_spare") }); cfg.skip_roundtrip(move |s| match s { From d0ba5015206502e9b544a68151c7321cb1694579 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 02:16:37 -0500 Subject: [PATCH 0343/1228] ci: Add a note about the sparc Ubuntu version (backport ) (cherry picked from commit 0e8d8d2f9754ac330969eb928df863b405c74d09) --- ci/docker/sparc64-unknown-linux-gnu/Dockerfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile index ff6810a7fac58..4aff82ee46631 100644 --- a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile @@ -1,3 +1,10 @@ +# FIXME(sparc): newer versions of Ubuntu get the following errors +# ``` +# /prog: /lib/sparc64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /prog) +# /prog: /lib/sparc64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by /prog) +# ``` +# Not sure if this is a problem from rustc, our libc, or Ubuntu so we just +# stick with an old LTS for now. FROM ubuntu:22.04 RUN apt-get update && apt-get install -y --no-install-recommends \ From efff8c72d68b193e88d27bc861525f3b4285fb51 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Wed, 28 Feb 2024 15:36:48 -0800 Subject: [PATCH 0344/1228] Support mkostemp, mkostemps on Android Bionic supports it since API level 23. See: https://github.com/aosp-mirror/platform_bionic/blob/2215ad406b253f12e270cdd0876e19e9df2aa6d4/libc/include/stdlib.h --- src/unix/linux_like/emscripten/mod.rs | 2 -- src/unix/linux_like/linux/mod.rs | 2 -- src/unix/linux_like/mod.rs | 3 +++ 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index a6666c6a61d51..e873a85cb9c03 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -1514,8 +1514,6 @@ extern "C" { -> ::ssize_t; pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int; - pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; pub fn accept4( fd: ::c_int, diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 386820a69af10..6d6f12ab91f3f 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -6032,8 +6032,6 @@ extern "C" { sigmask: *const ::sigset_t, ) -> ::c_int; pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int; - pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; pub fn sigtimedwait( set: *const sigset_t, info: *mut siginfo_t, diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 05db844205de9..52400fb2bfd8e 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1791,6 +1791,9 @@ extern "C" { locale: ::locale_t, ) -> ::size_t; pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; + + pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; + pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; } // LFS64 extensions From bcb410744a9619364be819d5d317c8d53615fef6 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 04:41:31 -0500 Subject: [PATCH 0345/1228] ci: Ensure build channels get run even if FILTER is unset In 59a18de777("ci: Set `-u` (error on unset)..."), `-u` started being passed to the `set` call in shell scripts. This broke the `FILTER` logic since now the command always fails. Make this a bit less fragile by explicitly setting to an empty string, as well as adding a check that at least one test got run. (backport ) (cherry picked from commit 084f3705a73a72dd681e2f47291ff83329676f73) --- ci/build.sh | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 78556b6f7a8fc..f7f0119a8dce8 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -11,6 +11,7 @@ set -eux : "${OS?The OS environment variable must be set.}" rust="$TOOLCHAIN" +filter="${FILTER:-}" echo "Testing Rust $rust on $OS" @@ -198,13 +199,15 @@ case "${OS}" in esac for target in $targets; do - if echo "$target" | grep -q "$FILTER"; then + if echo "$target" | grep -q "$filter"; then if [ "${OS}" = "windows" ]; then TARGET="$target" sh ./ci/install-rust.sh test_target build "$target" else test_target build "$target" fi + + test_run=1 fi done @@ -279,8 +282,10 @@ x86_64-wrs-vxworks \ if [ "${rust}" = "nightly" ] && [ "${OS}" = "linux" ]; then for target in $rust_linux_no_core_targets; do if echo "$target" | grep -q "$FILTER"; then - test_target build "$target" 1 + test_target "$target" 1 fi + + test_run=1 done fi @@ -293,7 +298,15 @@ i386-apple-ios \ if [ "${rust}" = "nightly" ] && [ "${OS}" = "macos" ]; then for target in $rust_apple_no_core_targets; do if echo "$target" | grep -q "$FILTER"; then - test_target build "$target" 1 + test_target "$target" 1 fi + + test_run=1 done fi + +# Make sure we didn't accidentally filter everything +if [ "${test_run:-}" != 1 ]; then + echo "No tests were run" + exit 1 +fi From 4bfd0dc1c9d25f798b910cc7b4f343b77b616d1b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 05:04:59 -0500 Subject: [PATCH 0346/1228] ci: Ensure there is a fallback for `no_std` (backport ) (cherry picked from commit 907c6d66f8ebae153a1d0e381fad1303f9eb96be) --- ci/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index f7f0119a8dce8..bc56d99486561 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -22,7 +22,7 @@ fi test_target() { build_cmd="${1}" target="${2}" - no_std="${3}" + no_std="${3:-}" # If there is a std component, fetch it: if [ "${no_std}" != "1" ]; then From 92597e67542f4fa3f1739d571a4e9abc9e95f321 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 03:33:59 -0500 Subject: [PATCH 0347/1228] ci: Rename main workflow and use .yaml extension We no longer have two separate workflows, so rename `full_ci` to just `ci`. Additionally, `.yaml` is the preferred extension [1], so rename the other `.yml` file to `.yaml`. [1]: https://yaml.org/faq.html (backport ) (cherry picked from commit 4c96512634b3d957c84114aa4d0324a6e91b2e30) --- .github/{dependabot.yml => dependabot.yaml} | 0 .github/workflows/{full_ci.yml => ci.yaml} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename .github/{dependabot.yml => dependabot.yaml} (100%) rename .github/workflows/{full_ci.yml => ci.yaml} (100%) diff --git a/.github/dependabot.yml b/.github/dependabot.yaml similarity index 100% rename from .github/dependabot.yml rename to .github/dependabot.yaml diff --git a/.github/workflows/full_ci.yml b/.github/workflows/ci.yaml similarity index 100% rename from .github/workflows/full_ci.yml rename to .github/workflows/ci.yaml From 3e48e4b22dacc71b8aaa9fd2ab3fa045d883b6db Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 03:46:47 -0500 Subject: [PATCH 0348/1228] ci: Use `./` with shebangs rather than `sh` or `bash` The scripts say how they should execute, there isn't any reason to duplicate this wherever they are called. (backport ) (cherry picked from commit 4707c5db583477e83961eef1b40df2fe5e016fe4) --- .github/workflows/ci.yaml | 38 ++++++++++--------- CONTRIBUTING.md | 2 +- ci/android-install-ndk.sh | 0 ci/android-install-sdk.sh | 0 ci/android-sysimage.sh | 0 ci/build.sh | 2 +- ci/docker/aarch64-linux-android/Dockerfile | 4 +- .../aarch64-unknown-linux-musl/Dockerfile | 2 +- ci/docker/arm-linux-androideabi/Dockerfile | 4 +- .../arm-unknown-linux-musleabihf/Dockerfile | 2 +- ci/docker/asmjs-unknown-emscripten/Dockerfile | 2 +- ci/docker/i686-linux-android/Dockerfile | 4 +- ci/docker/i686-unknown-linux-musl/Dockerfile | 2 +- .../loongarch64-unknown-linux-musl/Dockerfile | 2 +- ci/docker/s390x-unknown-linux-gnu/Dockerfile | 2 +- ci/docker/s390x-unknown-linux-musl/Dockerfile | 2 +- .../sparc64-unknown-linux-gnu/Dockerfile | 2 +- .../wasm32-unknown-emscripten/Dockerfile | 2 +- ci/docker/wasm32-wasip1/Dockerfile | 2 +- ci/docker/wasm32-wasip2/Dockerfile | 2 +- ci/docker/x86_64-linux-android/Dockerfile | 4 +- .../x86_64-unknown-linux-musl/Dockerfile | 2 +- ci/emscripten.sh | 0 ci/install-musl-cross.sh | 0 ci/install-musl.sh | 0 ci/install-rust.sh | 0 ci/linux-s390x.sh | 0 ci/linux-sparc64.sh | 0 ci/wasi.sh | 0 29 files changed, 43 insertions(+), 39 deletions(-) mode change 100644 => 100755 ci/android-install-ndk.sh mode change 100644 => 100755 ci/android-install-sdk.sh mode change 100644 => 100755 ci/android-sysimage.sh mode change 100644 => 100755 ci/build.sh mode change 100644 => 100755 ci/emscripten.sh mode change 100644 => 100755 ci/install-musl-cross.sh mode change 100644 => 100755 ci/install-musl.sh mode change 100644 => 100755 ci/install-rust.sh mode change 100644 => 100755 ci/linux-s390x.sh mode change 100644 => 100755 ci/linux-sparc64.sh mode change 100644 => 100755 ci/wasi.sh diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2a60edddd211e..722fb55365dfd 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -10,6 +10,10 @@ env: CARGO_TERM_VERBOSE: true LIBC_CI: 1 +defaults: + run: + shell: bash + jobs: style_check: name: Style check @@ -17,9 +21,9 @@ jobs: steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain - run: sh ./ci/install-rust.sh + run: ./ci/install-rust.sh - name: Check style - run: sh ci/style.sh + run: ./ci/style.sh build_channels_linux: name: Build Channels Linux @@ -38,9 +42,9 @@ jobs: steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain - run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/install-rust.sh + run: TOOLCHAIN=${{ matrix.toolchain }} ./ci/install-rust.sh - name: Execute build.sh - run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh + run: TOOLCHAIN=${{ matrix.toolchain }} ./ci/build.sh build_channels_macos: name: Build Channels macOS @@ -60,9 +64,9 @@ jobs: steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain - run: TOOLCHAIN=${{ matrix.target.toolchain }} sh ./ci/install-rust.sh + run: TOOLCHAIN=${{ matrix.target.toolchain }} ./ci/install-rust.sh - name: Execute build.sh - run: TOOLCHAIN=${{ matrix.target.toolchain }} sh ./ci/build.sh + run: TOOLCHAIN=${{ matrix.target.toolchain }} ./ci/build.sh build_channels_windows: name: Build Channels Windows @@ -81,7 +85,7 @@ jobs: run: rustup self update shell: bash - name: Execute build.sh - run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh + run: TOOLCHAIN=${{ matrix.toolchain }} ./ci/build.sh shell: bash macos: @@ -95,9 +99,9 @@ jobs: steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh + run: TARGET=${{ matrix.target }} ./ci/install-rust.sh - name: Execute run.sh - run: sh ./ci/run.sh ${{ matrix.target }} + run: ./ci/run.sh ${{ matrix.target }} windows: name: Windows @@ -125,10 +129,10 @@ jobs: run: rustup self update shell: bash - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh + run: TARGET=${{ matrix.target }} ./ci/install-rust.sh shell: bash - name: Execute run.sh - run: sh ./ci/run.sh ${{ matrix.target }} + run: ./ci/run.sh ${{ matrix.target }} shell: bash docker_linux_tier1: @@ -143,9 +147,9 @@ jobs: steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh + run: TARGET=${{ matrix.target }} ./ci/install-rust.sh - name: Execute run-docker.sh - run: sh ./ci/run-docker.sh ${{ matrix.target }} + run: ./ci/run-docker.sh ${{ matrix.target }} docker_linux_tier2: name: Docker Linux Tier2 @@ -185,9 +189,9 @@ jobs: steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh + run: TARGET=${{ matrix.target }} ./ci/install-rust.sh - name: Execute run-docker.sh - run: sh ./ci/run-docker.sh ${{ matrix.target }} + run: ./ci/run-docker.sh ${{ matrix.target }} solaris: name: Solaris @@ -214,7 +218,7 @@ jobs: uname -a run: | export PATH=$HOME/.rust_solaris/bin:$PATH - bash ./ci/run.sh ${{ matrix.target }} + ./ci/run.sh ${{ matrix.target }} check_cfg: name: "Check #[cfg]s" @@ -222,7 +226,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain - run: TOOLCHAIN=nightly sh ./ci/install-rust.sh + run: TOOLCHAIN=nightly ./ci/install-rust.sh - name: Build with check-cfg run: LIBC_CHECK_CFG=1 cargo build -Z unstable-options -Z check-cfg diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2090a0aaa689e..74f49f3e7bb04 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -93,7 +93,7 @@ We have two automated tests running on - `cd libc-test && cargo test` - Use the `skip_*()` functions in `build.rs` if you really need a workaround. 2. Style checker - - [`sh ci/style.sh`](https://github.com/rust-lang/libc/blob/main/ci/style.sh) + - [`./ci/style.sh`](https://github.com/rust-lang/libc/blob/main/ci/style.sh) ## Breaking change policy diff --git a/ci/android-install-ndk.sh b/ci/android-install-ndk.sh old mode 100644 new mode 100755 diff --git a/ci/android-install-sdk.sh b/ci/android-install-sdk.sh old mode 100644 new mode 100755 diff --git a/ci/android-sysimage.sh b/ci/android-sysimage.sh old mode 100644 new mode 100755 diff --git a/ci/build.sh b/ci/build.sh old mode 100644 new mode 100755 index bc56d99486561..05e694f36e4e0 --- a/ci/build.sh +++ b/ci/build.sh @@ -201,7 +201,7 @@ esac for target in $targets; do if echo "$target" | grep -q "$filter"; then if [ "${OS}" = "windows" ]; then - TARGET="$target" sh ./ci/install-rust.sh + TARGET="$target" ./ci/install-rust.sh test_target build "$target" else test_target build "$target" diff --git a/ci/docker/aarch64-linux-android/Dockerfile b/ci/docker/aarch64-linux-android/Dockerfile index d6927e5cc80ec..dfd63718a9d0d 100644 --- a/ci/docker/aarch64-linux-android/Dockerfile +++ b/ci/docker/aarch64-linux-android/Dockerfile @@ -20,8 +20,8 @@ COPY android* /android/ ENV ANDROID_ARCH=aarch64 ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools -RUN sh /android/android-install-ndk.sh -RUN sh /android/android-install-sdk.sh $ANDROID_ARCH +RUN /android/android-install-ndk.sh +RUN /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/* diff --git a/ci/docker/aarch64-unknown-linux-musl/Dockerfile b/ci/docker/aarch64-unknown-linux-musl/Dockerfile index fd4c1e28f2525..65932bd48cfac 100644 --- a/ci/docker/aarch64-unknown-linux-musl/Dockerfile +++ b/ci/docker/aarch64-unknown-linux-musl/Dockerfile @@ -5,7 +5,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ gcc-aarch64-linux-gnu qemu-user COPY install-musl.sh / -RUN sh /install-musl.sh aarch64 +RUN /install-musl.sh aarch64 # FIXME: shouldn't need the `-lgcc` here, shouldn't that be in std? ENV PATH=$PATH:/musl-aarch64/bin:/rust/bin \ diff --git a/ci/docker/arm-linux-androideabi/Dockerfile b/ci/docker/arm-linux-androideabi/Dockerfile index 9d6a5c9649832..82f89f48e915c 100644 --- a/ci/docker/arm-linux-androideabi/Dockerfile +++ b/ci/docker/arm-linux-androideabi/Dockerfile @@ -20,8 +20,8 @@ COPY android* /android/ ENV ANDROID_ARCH=arm ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools -RUN sh /android/android-install-ndk.sh -RUN sh /android/android-install-sdk.sh $ANDROID_ARCH +RUN /android/android-install-ndk.sh +RUN /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/* diff --git a/ci/docker/arm-unknown-linux-musleabihf/Dockerfile b/ci/docker/arm-unknown-linux-musleabihf/Dockerfile index f8a5d27df3b5f..7ed23611c351e 100644 --- a/ci/docker/arm-unknown-linux-musleabihf/Dockerfile +++ b/ci/docker/arm-unknown-linux-musleabihf/Dockerfile @@ -8,7 +8,7 @@ RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ gcc-arm-linux-gnueabihf qemu-user COPY install-musl.sh / -RUN sh /install-musl.sh arm +RUN /install-musl.sh arm ENV PATH=$PATH:/musl-arm/bin:/rust/bin \ CC_arm_unknown_linux_musleabihf=musl-gcc \ diff --git a/ci/docker/asmjs-unknown-emscripten/Dockerfile b/ci/docker/asmjs-unknown-emscripten/Dockerfile index 6f2d5ddfc78e1..085e45ff35ee6 100644 --- a/ci/docker/asmjs-unknown-emscripten/Dockerfile +++ b/ci/docker/asmjs-unknown-emscripten/Dockerfile @@ -18,7 +18,7 @@ RUN apt-get install -y --no-install-recommends \ bzip2 COPY emscripten.sh / -RUN bash /emscripten.sh +RUN /emscripten.sh ENV PATH=$PATH:/rust/bin \ CARGO_TARGET_ASMJS_UNKNOWN_EMSCRIPTEN_RUNNER=node diff --git a/ci/docker/i686-linux-android/Dockerfile b/ci/docker/i686-linux-android/Dockerfile index 0fb48aca342d4..8a159cd0502b5 100644 --- a/ci/docker/i686-linux-android/Dockerfile +++ b/ci/docker/i686-linux-android/Dockerfile @@ -20,8 +20,8 @@ COPY android* /android/ ENV ANDROID_ARCH=i686 ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools -RUN sh /android/android-install-ndk.sh -RUN sh /android/android-install-sdk.sh $ANDROID_ARCH +RUN /android/android-install-ndk.sh +RUN /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/* diff --git a/ci/docker/i686-unknown-linux-musl/Dockerfile b/ci/docker/i686-unknown-linux-musl/Dockerfile index 4f36d2075485c..ea5e2e963910b 100644 --- a/ci/docker/i686-unknown-linux-musl/Dockerfile +++ b/ci/docker/i686-unknown-linux-musl/Dockerfile @@ -9,7 +9,7 @@ RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ gcc-multilib make libc6-dev git curl ca-certificates libc6-i386 COPY install-musl.sh / -RUN sh /install-musl.sh i686 +RUN /install-musl.sh i686 ENV PATH=$PATH:/musl-i686/bin:/rust/bin \ CC_i686_unknown_linux_musl=musl-gcc \ diff --git a/ci/docker/loongarch64-unknown-linux-musl/Dockerfile b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile index 2efd095b0fddd..f4a23a6666c8a 100644 --- a/ci/docker/loongarch64-unknown-linux-musl/Dockerfile +++ b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile @@ -4,7 +4,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates curl gcc git libc6-dev make qemu-user xz-utils COPY install-musl-cross.sh / -RUN sh /install-musl-cross.sh loongarch64-unknown-linux-musl +RUN /install-musl-cross.sh loongarch64-unknown-linux-musl ENV CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_MUSL_LINKER=loongarch64-unknown-linux-musl-gcc \ CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_MUSL_RUNNER="qemu-loongarch64" \ diff --git a/ci/docker/s390x-unknown-linux-gnu/Dockerfile b/ci/docker/s390x-unknown-linux-gnu/Dockerfile index 306d773a61165..dde2ef24254fc 100644 --- a/ci/docker/s390x-unknown-linux-gnu/Dockerfile +++ b/ci/docker/s390x-unknown-linux-gnu/Dockerfile @@ -8,7 +8,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ cpio COPY linux-s390x.sh / -RUN bash /linux-s390x.sh +RUN /linux-s390x.sh COPY test-runner-linux / diff --git a/ci/docker/s390x-unknown-linux-musl/Dockerfile b/ci/docker/s390x-unknown-linux-musl/Dockerfile index d103a1d7488e0..4e202d1905902 100644 --- a/ci/docker/s390x-unknown-linux-musl/Dockerfile +++ b/ci/docker/s390x-unknown-linux-musl/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ qemu-user COPY install-musl.sh / -RUN sh /install-musl.sh s390x +RUN /install-musl.sh s390x # 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 \ diff --git a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile index 4aff82ee46631..16b930f95a834 100644 --- a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile @@ -15,7 +15,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ p7zip-full cpio linux-libc-dev-sparc64-cross COPY linux-sparc64.sh / -RUN bash /linux-sparc64.sh +RUN /linux-sparc64.sh COPY test-runner-linux / diff --git a/ci/docker/wasm32-unknown-emscripten/Dockerfile b/ci/docker/wasm32-unknown-emscripten/Dockerfile index 5af38ca5258db..0f9cb85dc30e8 100644 --- a/ci/docker/wasm32-unknown-emscripten/Dockerfile +++ b/ci/docker/wasm32-unknown-emscripten/Dockerfile @@ -26,7 +26,7 @@ RUN apt-get install -y --no-install-recommends \ RUN ln -s /usr/bin/python3 /usr/bin/python & \ ln -s /usr/bin/pip3 /usr/bin/pip COPY emscripten.sh / -RUN bash /emscripten.sh +RUN /emscripten.sh ENV PATH=$PATH:/rust/bin \ CARGO_TARGET_WASM32_UNKNOWN_EMSCRIPTEN_RUNNER=node-wrapper.sh diff --git a/ci/docker/wasm32-wasip1/Dockerfile b/ci/docker/wasm32-wasip1/Dockerfile index 68940f4615a7e..e85b27ff82099 100644 --- a/ci/docker/wasm32-wasip1/Dockerfile +++ b/ci/docker/wasm32-wasip1/Dockerfile @@ -1,7 +1,7 @@ FROM ubuntu:24.10 COPY wasi.sh / -RUN bash /wasi.sh +RUN /wasi.sh # Note that `-D_WASI_EMULATED_PROCESS_CLOCKS` is used to enable access to # clock-related defines even though they're emulated. Also note that the usage diff --git a/ci/docker/wasm32-wasip2/Dockerfile b/ci/docker/wasm32-wasip2/Dockerfile index 7abaaf54da02d..be6bff3a843c5 100644 --- a/ci/docker/wasm32-wasip2/Dockerfile +++ b/ci/docker/wasm32-wasip2/Dockerfile @@ -1,7 +1,7 @@ FROM ubuntu:24.10 COPY wasi.sh / -RUN bash /wasi.sh +RUN /wasi.sh # Note that most of these are copied from `wasm32-wasip1/Dockerfile` # diff --git a/ci/docker/x86_64-linux-android/Dockerfile b/ci/docker/x86_64-linux-android/Dockerfile index f6331f10f3897..3bf350820019f 100644 --- a/ci/docker/x86_64-linux-android/Dockerfile +++ b/ci/docker/x86_64-linux-android/Dockerfile @@ -12,12 +12,12 @@ RUN apt-get update && \ WORKDIR /android/ ENV ANDROID_ARCH=x86_64 COPY android-install-ndk.sh /android/ -RUN sh /android/android-install-ndk.sh +RUN /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 +RUN /android/android-sysimage.sh x86_64 x86_64-24_r07.zip ENV PATH=$PATH:/rust/bin:/android/linux-x86_64/bin \ CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER=x86_64-linux-android28-clang \ diff --git a/ci/docker/x86_64-unknown-linux-musl/Dockerfile b/ci/docker/x86_64-unknown-linux-musl/Dockerfile index 11fbd6e1be46a..d03df5b4f54ce 100644 --- a/ci/docker/x86_64-unknown-linux-musl/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-musl/Dockerfile @@ -5,7 +5,7 @@ RUN apt-get install -y --no-install-recommends \ gcc make libc6-dev git curl ca-certificates COPY install-musl.sh / -RUN sh /install-musl.sh x86_64 +RUN /install-musl.sh x86_64 ENV PATH=$PATH:/musl-x86_64/bin:/rust/bin \ RUSTFLAGS="-L /musl-x86_64/lib" diff --git a/ci/emscripten.sh b/ci/emscripten.sh old mode 100644 new mode 100755 diff --git a/ci/install-musl-cross.sh b/ci/install-musl-cross.sh old mode 100644 new mode 100755 diff --git a/ci/install-musl.sh b/ci/install-musl.sh old mode 100644 new mode 100755 diff --git a/ci/install-rust.sh b/ci/install-rust.sh old mode 100644 new mode 100755 diff --git a/ci/linux-s390x.sh b/ci/linux-s390x.sh old mode 100644 new mode 100755 diff --git a/ci/linux-sparc64.sh b/ci/linux-sparc64.sh old mode 100644 new mode 100755 diff --git a/ci/wasi.sh b/ci/wasi.sh old mode 100644 new mode 100755 From 129909dad0eae9e06e5235ce8c4c169503c54bba Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 03:51:53 -0500 Subject: [PATCH 0349/1228] ci: use `env` rather than passing environment inline (backport ) (cherry picked from commit 58265b9e5cc7c23e5eae309a5c514beab41acf09) --- .github/workflows/ci.yaml | 48 ++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 722fb55365dfd..90063aca7e7ff 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -28,8 +28,6 @@ jobs: build_channels_linux: name: Build Channels Linux runs-on: ubuntu-22.04 - env: - OS: linux strategy: fail-fast: true max-parallel: 5 @@ -39,18 +37,19 @@ jobs: - beta - nightly - 1.63.0 + env: + OS: linux + TOOLCHAIN: ${{ matrix.toolchain }} steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain - run: TOOLCHAIN=${{ matrix.toolchain }} ./ci/install-rust.sh + run: ./ci/install-rust.sh - name: Execute build.sh - run: TOOLCHAIN=${{ matrix.toolchain }} ./ci/build.sh + run: ./ci/build.sh build_channels_macos: name: Build Channels macOS needs: macos - env: - OS: macos strategy: fail-fast: true max-parallel: 4 @@ -61,31 +60,35 @@ jobs: - { toolchain: nightly, os: macos-14 } - { toolchain: 1.63.0, os: macos-14 } runs-on: ${{ matrix.target.os }} + env: + OS: macos + TOOLCHAIN: ${{ matrix.toolchain }} steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain - run: TOOLCHAIN=${{ matrix.target.toolchain }} ./ci/install-rust.sh + run: ./ci/install-rust.sh - name: Execute build.sh - run: TOOLCHAIN=${{ matrix.target.toolchain }} ./ci/build.sh + run: ./ci/build.sh build_channels_windows: name: Build Channels Windows runs-on: windows-2022 - env: - OS: windows strategy: fail-fast: true matrix: toolchain: - 1.63.0 - stable + env: + OS: windows + TOOLCHAIN: ${{ matrix.toolchain }} steps: - uses: actions/checkout@v4 - name: Self-update rustup run: rustup self update shell: bash - name: Execute build.sh - run: TOOLCHAIN=${{ matrix.toolchain }} ./ci/build.sh + run: ./ci/build.sh shell: bash macos: @@ -96,18 +99,18 @@ jobs: matrix: target: - aarch64-apple-darwin + env: + TARGET: ${{ matrix.target }} steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} ./ci/install-rust.sh + run: ./ci/install-rust.sh - name: Execute run.sh run: ./ci/run.sh ${{ matrix.target }} windows: name: Windows runs-on: windows-2022 - env: - OS: windows strategy: fail-fast: true matrix: @@ -123,13 +126,16 @@ jobs: # ARCH_BITS: 32 # ARCH: i686 - target: i686-pc-windows-msvc + env: + OS: windows + TARGET: ${{ matrix.target }} steps: - uses: actions/checkout@v4 - name: Self-update rustup run: rustup self update shell: bash - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} ./ci/install-rust.sh + run: ./ci/install-rust.sh shell: bash - name: Execute run.sh run: ./ci/run.sh ${{ matrix.target }} @@ -144,10 +150,12 @@ jobs: target: - i686-unknown-linux-gnu - x86_64-unknown-linux-gnu + env: + TARGET: ${{ matrix.target }} steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} ./ci/install-rust.sh + run: ./ci/install-rust.sh - name: Execute run-docker.sh run: ./ci/run-docker.sh ${{ matrix.target }} @@ -186,10 +194,12 @@ jobs: # FIXME: It seems some items in `src/unix/mod.rs` # aren't defined on redox actually. # - x86_64-unknown-redox + env: + TARGET: ${{ matrix.target }} steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} ./ci/install-rust.sh + run: ./ci/install-rust.sh - name: Execute run-docker.sh run: ./ci/run-docker.sh ${{ matrix.target }} @@ -223,10 +233,12 @@ jobs: check_cfg: name: "Check #[cfg]s" runs-on: ubuntu-22.04 + env: + TOOLCHAIN: nightly steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain - run: TOOLCHAIN=nightly ./ci/install-rust.sh + run: ./ci/install-rust.sh - name: Build with check-cfg run: LIBC_CHECK_CFG=1 cargo build -Z unstable-options -Z check-cfg From af6fc9e6ac9df361886611cea01044dc6d4747bb Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 04:01:06 -0500 Subject: [PATCH 0350/1228] ci: combine and export RUSTFLAGS rather than passing inline This cleans things up and allows us to pass more flags externally. (backport ) (cherry picked from commit 67988b7f537903fd4ba8aa48d9be6502bcc041a0) --- ci/build.sh | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 05e694f36e4e0..b9e66c1397223 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -24,6 +24,8 @@ test_target() { target="${2}" no_std="${3:-}" + RUSTFLAGS="${RUSTFLAGS:-}" + # If there is a std component, fetch it: if [ "${no_std}" != "1" ]; then # FIXME: rustup often fails to download some artifacts due to network @@ -37,15 +39,17 @@ test_target() { n=$((n+1)) sleep 1 done + + # FIXME: With `build-std` feature, `compiler_builtins` emits a lof of lint warnings. + RUSTFLAGS="${RUSTFLAGS:-} -Aimproper_ctypes_definitions" + export RUSTFLAGS fi # Test that libc builds without any default features (no std) if [ "$no_std" != "1" ]; then cargo "+$rust" "$build_cmd" --no-default-features --target "$target" else - # FIXME: With `build-std` feature, `compiler_builtins` emits a lof of lint warnings. - RUSTFLAGS="-A improper_ctypes_definitions" \ - cargo "+$rust" "$build_cmd" \ + cargo "+$rust" "$build_cmd" \ -Z build-std=core,alloc \ --no-default-features \ --target "$target" @@ -56,8 +60,7 @@ test_target() { if [ "$no_std" != "1" ]; then cargo "+$rust" "$build_cmd" --target "$target" else - RUSTFLAGS="-A improper_ctypes_definitions" \ - cargo "+$rust" "${build_cmd}" \ + cargo "+$rust" "${build_cmd}" \ -Z build-std=core,alloc \ --target "$target" fi @@ -69,8 +72,7 @@ test_target() { --features extra_traits \ --target "$target" else - RUSTFLAGS="-A improper_ctypes_definitions" \ - cargo "+$rust" "$build_cmd" \ + cargo "+$rust" "$build_cmd" \ -Z build-std=core,alloc \ --no-default-features \ --features extra_traits \ @@ -85,8 +87,7 @@ test_target() { --features const-extern-fn \ --target "$target" else - RUSTFLAGS="-A improper_ctypes_definitions" \ - cargo "+$rust" "$build_cmd" \ + cargo "+$rust" "$build_cmd" \ -Z build-std=core,alloc \ --no-default-features \ --features const-extern-fn \ @@ -100,8 +101,7 @@ test_target() { --target "$target" \ --features extra_traits else - RUSTFLAGS="-A improper_ctypes_definitions" \ - cargo "+$rust" "$build_cmd" \ + cargo "+$rust" "$build_cmd" \ -Z build-std=core,alloc \ --target "$target" \ --features extra_traits From 36ce4a0bd973dd449321043c6a5944cc21a5c024 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 04:19:48 -0500 Subject: [PATCH 0351/1228] ci: Reduce redundant commands in build.sh (backport ) (cherry picked from commit bbf941b090ae34cee155bad87f875ceeee0eab0c) --- ci/build.sh | 201 ++++++++++++++++++++-------------------------------- 1 file changed, 77 insertions(+), 124 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index b9e66c1397223..e430e4b944ee0 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -20,14 +20,24 @@ if [ "$TOOLCHAIN" = "nightly" ] ; then fi test_target() { - build_cmd="${1}" - target="${2}" - no_std="${3:-}" + target="${1}" + no_dist="${2:-0}" RUSTFLAGS="${RUSTFLAGS:-}" - # If there is a std component, fetch it: - if [ "${no_std}" != "1" ]; then + # The basic command that is run each time + cmd="cargo +$rust build --target $target" + + if [ "${no_dist}" != "0" ]; then + # If we can't download a `core`, we need to build it + cmd="$cmd -Zbuild-std=core,alloc" + + # FIXME: With `build-std` feature, `compiler_builtins` emits a lof of lint warnings. + RUSTFLAGS="${RUSTFLAGS:-} -Aimproper_ctypes_definitions" + export RUSTFLAGS + else + # Otherwise it is available for download; fetch it: + # FIXME: rustup often fails to download some artifacts due to network # issues, so we retry this N times. N=5 @@ -39,73 +49,16 @@ test_target() { n=$((n+1)) sleep 1 done - - # FIXME: With `build-std` feature, `compiler_builtins` emits a lof of lint warnings. - RUSTFLAGS="${RUSTFLAGS:-} -Aimproper_ctypes_definitions" - export RUSTFLAGS - fi - - # Test that libc builds without any default features (no std) - if [ "$no_std" != "1" ]; then - cargo "+$rust" "$build_cmd" --no-default-features --target "$target" - else - cargo "+$rust" "$build_cmd" \ - -Z build-std=core,alloc \ - --no-default-features \ - --target "$target" fi - # Test that libc builds with default features (e.g. std) - # if the target supports std - if [ "$no_std" != "1" ]; then - cargo "+$rust" "$build_cmd" --target "$target" - else - cargo "+$rust" "${build_cmd}" \ - -Z build-std=core,alloc \ - --target "$target" - fi - - # Test that libc builds with the `extra_traits` feature - if [ "$no_std" != "1" ]; then - cargo "+$rust" "$build_cmd" \ - --no-default-features \ - --features extra_traits \ - --target "$target" - else - cargo "+$rust" "$build_cmd" \ - -Z build-std=core,alloc \ - --no-default-features \ - --features extra_traits \ - --target "$target" - fi - - # Test the 'const-extern-fn' feature on nightly - if [ "${rust}" = "nightly" ]; then - if [ "${no_std}" != "1" ]; then - cargo "+$rust" "$build_cmd" \ - --no-default-features \ - --features const-extern-fn \ - --target "$target" - else - cargo "+$rust" "$build_cmd" \ - -Z build-std=core,alloc \ - --no-default-features \ - --features const-extern-fn \ - --target "$target" - fi - fi + # Test with expected combinations of features + $cmd + $cmd --features const-extern-fn + $cmd --features extra_traits - # Also test that it builds with `extra_traits` and default features: - if [ "$no_std" != "1" ]; then - cargo "+$rust" "$build_cmd" \ - --target "$target" \ - --features extra_traits - else - cargo "+$rust" "$build_cmd" \ - -Z build-std=core,alloc \ - --target "$target" \ - --features extra_traits - fi + # Test again without default features, i.e. without "std" + $cmd --no-default-features + $cmd --no-default-features --features extra_traits } rust_linux_targets="\ @@ -173,48 +126,10 @@ x86_64-pc-windows-gnu \ i686-pc-windows-msvc \ " -# The targets are listed here alphabetically -targets="" -case "${OS}" in - linux*) - targets="$rust_linux_targets" - - if [ "$rust" = "nightly" ]; then - targets="$targets $rust_nightly_linux_targets" - fi - - ;; - macos*) - targets="$rust_apple_targets" - - if [ "$rust" = "nightly" ]; then - targets="$targets $rust_nightly_apple_targets" - fi - - ;; - windows*) - targets=${rust_nightly_windows_targets} - ;; - *) ;; -esac - -for target in $targets; do - if echo "$target" | grep -q "$filter"; then - if [ "${OS}" = "windows" ]; then - TARGET="$target" ./ci/install-rust.sh - test_target build "$target" - else - test_target build "$target" - fi - - test_run=1 - fi -done - # Targets which are not available via rustup and must be built with -Zbuild-std # FIXME(hexagon): hexagon-unknown-linux-musl should be tested but currently has # duplicate symbol errors from `compiler_builtins`. -rust_linux_no_core_targets="\ +rust_linux_no_dist_targets="\ aarch64-pc-windows-msvc \ aarch64-unknown-freebsd \ aarch64-unknown-hermit \ @@ -279,31 +194,69 @@ x86_64-unknown-openbsd \ x86_64-wrs-vxworks \ " -if [ "${rust}" = "nightly" ] && [ "${OS}" = "linux" ]; then - for target in $rust_linux_no_core_targets; do - if echo "$target" | grep -q "$FILTER"; then - test_target "$target" 1 - fi - - test_run=1 - done -fi - -rust_apple_no_core_targets="\ +rust_apple_no_dist_targets="\ armv7s-apple-ios \ i686-apple-darwin \ i386-apple-ios \ " -if [ "${rust}" = "nightly" ] && [ "${OS}" = "macos" ]; then - for target in $rust_apple_no_core_targets; do - if echo "$target" | grep -q "$FILTER"; then +# The targets are listed here alphabetically +targets="" +no_dist_targets="" + +case "${OS}" in + linux*) + targets="$rust_linux_targets" + + if [ "$rust" = "nightly" ]; then + targets="$targets $rust_nightly_linux_targets" + no_dist_targets="$rust_linux_no_dist_targets" + fi + + ;; + macos*) + targets="$rust_apple_targets" + + if [ "$rust" = "nightly" ]; then + targets="$targets $rust_nightly_apple_targets" + no_dist_targets="$rust_apple_no_dist_targets" + fi + + ;; + windows*) + targets=${rust_nightly_windows_targets} + ;; + *) + echo "Unrecognized OS $OS" + exit 1 + ;; +esac + +for target in $targets; do + if echo "$target" | grep -q "$filter"; then + if [ "${OS}" = "windows" ]; then + TARGET="$target" ./ci/install-rust.sh + test_target "$target" + else + test_target "$target" + fi + + test_run=1 + fi +done + +for target in $no_dist_targets; do + if echo "$target" | grep -q "$filter"; then + if [ "${OS}" = "windows" ]; then + TARGET="$target" ./ci/install-rust.sh + test_target "$target" 1 + else test_target "$target" 1 fi test_run=1 - done -fi + fi +done # Make sure we didn't accidentally filter everything if [ "${test_run:-}" != 1 ]; then From ec54c2e5defab9614c83f0dc34545e2f26e3ebe6 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 06:59:34 -0500 Subject: [PATCH 0352/1228] ci: Reduce redundant commands in run.sh (backport ) (cherry picked from commit c90236b5289b6ec48d926a23204cc01b14a749e1) --- ci/run.sh | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/ci/run.sh b/ci/run.sh index f4fef82fcdc2d..22b356a6425b1 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -21,25 +21,21 @@ if [ -n "${QEMU:-}" ]; then if [ -z "${QEMU#*.gz}" ]; then # image is .gz : download and uncompress it - qemufile="$(echo "${QEMU%.gz}" | sed 's/\//__/g')" - if [ ! -f "${tmpdir}/${qemufile}" ]; then - curl --retry 5 "${mirrors_url}/${QEMU}" | - gunzip -d > "${tmpdir}/${qemufile}" - fi + base_file="${QEMU%.gz}" + pipe_cmd="gunzip -d" elif [ -z "${QEMU#*.xz}" ]; then # image is .xz : download and uncompress it - qemufile="$(echo "${QEMU%.xz}" | sed 's/\//__/g')" - if [ ! -f "${tmpdir}/${qemufile}" ]; then - curl --retry 5 "${mirrors_url}/${QEMU}" | - unxz > "${tmpdir}/${qemufile}" - fi + base_file="${QEMU%.xz}" + pipe_cmd="unxz" else # plain qcow2 image: just download it - qemufile="$(echo "${QEMU}" | sed 's/\//__/g')" - if [ ! -f "${tmpdir}/${qemufile}" ]; then - curl --retry 5 "${mirrors_url}/${QEMU}" \ - > "${tmpdir}/${qemufile}" - fi + base_file="$QEMU" + pipe_cmd="cat" # nop to forward the result + fi + + qemufile="$(echo "$base_file" | sed 's/\//__/g')" + if [ ! -f "${tmpdir}/${qemufile}" ]; then + curl --retry 5 "${mirrors_url}/${QEMU}" | $pipe_cmd > "${tmpdir}/${qemufile}" fi # Create a mount a fresh new filesystem image that we'll later pass to QEMU. From 8f6d1fe669c0e90ccad4c979edafebcaa64f0189 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 07:06:15 -0500 Subject: [PATCH 0353/1228] ci: Replace `$1` with a binding in run-docker.sh (backport ) (cherry picked from commit 3faaf4d64bf42d57ccb366089b4d5c6f484d4052) --- ci/run-docker.sh | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/ci/run-docker.sh b/ci/run-docker.sh index 4cef3d45c504d..fcd9e1a9d2e03 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -8,6 +8,8 @@ set -eux +target="$1" + # Default to assuming the CARGO_HOME is one directory up (to account for a `bin` # subdir) from where the `cargo` binary in `$PATH` lives. default_cargo_home="$(dirname "$(dirname "$(command -v cargo)")")" @@ -18,17 +20,17 @@ export CARGO_HOME="${CARGO_HOME:-$default_cargo_home}" echo "${HOME}" pwd -# Avoid "no space left on device" failure. -if [ "${1}" = "aarch64-linux-android" ] ; then +# Avoid "no space left on device" failure if running in CI +if [ "${CI:-0}" != "0" ] && [ "$target" = "aarch64-linux-android" ] ; then docker system prune -af docker system df fi run() { - echo "Building docker container for target ${1}" + echo "Building docker container for target $target" # use -f so we can use ci/ as build context - docker build -t "libc-${1}" -f "ci/docker/${1}/Dockerfile" ci/ + docker build -t "libc-$target" -f "ci/docker/$target/Dockerfile" ci/ mkdir -p target if [ -w /dev/kvm ]; then kvm="--volume /dev/kvm:/dev/kvm" @@ -50,8 +52,8 @@ run() { $kvm \ --init \ --workdir /checkout \ - "libc-${1}" \ - sh -c "HOME=/tmp PATH=\$PATH:/rust/bin exec ci/run.sh ${1}" + "libc-$target" \ + sh -c "HOME=/tmp PATH=\$PATH:/rust/bin exec ci/run.sh $target" } build_switch() { @@ -88,13 +90,13 @@ build_switch() { && cargo build -Z build-std=core,alloc --target ci/switch.json" } -if [ -z "${1}" ]; then +if [ -z "$target" ]; then for d in ci/docker/*; do run "${d}" done else - if [ "${1}" != "switch" ]; then - run "${1}" + if [ "$target" != "switch" ]; then + run "$target" else build_switch fi From b2425eef9d321f4c6377bfc6fef853bf8cf95574 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 05:21:35 -0500 Subject: [PATCH 0354/1228] ci: Switch to a single matrix for build channels (`verify_build`) The Mac, Windows, and Linux jobs for build channels are pretty redundant. Turn this into a single `verify_build` job that has both OS and version in its matrix. For consistency, rename the script to `verify-build`. To simplify variables, allow the build and toolchain scripts to detect the OS rather than passing it from CI. (backport ) (cherry picked from commit c4e3ff835013791778a352466b827626ecfec32f) --- .github/workflows/ci.yaml | 72 ++++++-------------------------- ci/install-rust.sh | 27 +++++++----- ci/{build.sh => verify-build.sh} | 67 +++++++++++++++-------------- 3 files changed, 61 insertions(+), 105 deletions(-) rename ci/{build.sh => verify-build.sh} (86%) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 90063aca7e7ff..b3efe4b7a0e4a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,4 +1,4 @@ -name: full CI +name: CI on: merge_group: @@ -25,71 +25,25 @@ jobs: - name: Check style run: ./ci/style.sh - build_channels_linux: - name: Build Channels Linux - runs-on: ubuntu-22.04 + # This runs `cargo build --target ...` for all T1 and T2 targets` + verify_build: + name: Verify build strategy: - fail-fast: true - max-parallel: 5 matrix: - toolchain: - - stable - - beta - - nightly - - 1.63.0 - env: - OS: linux - TOOLCHAIN: ${{ matrix.toolchain }} - steps: - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: ./ci/install-rust.sh - - name: Execute build.sh - run: ./ci/build.sh - - build_channels_macos: - name: Build Channels macOS - needs: macos - strategy: - fail-fast: true - max-parallel: 4 - matrix: - target: - - { toolchain: stable, os: macos-14 } - - { toolchain: beta, os: macos-14 } - - { toolchain: nightly, os: macos-14 } - - { toolchain: 1.63.0, os: macos-14 } - runs-on: ${{ matrix.target.os }} + toolchain: [stable, nightly, 1.63.0] + os: [ubuntu-22.04, macos-14, windows-2022] + include: + - toolchain: beta + os: ubuntu-22.04 + runs-on: ${{ matrix.os }} env: - OS: macos TOOLCHAIN: ${{ matrix.toolchain }} steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain run: ./ci/install-rust.sh - name: Execute build.sh - run: ./ci/build.sh - - build_channels_windows: - name: Build Channels Windows - runs-on: windows-2022 - strategy: - fail-fast: true - matrix: - toolchain: - - 1.63.0 - - stable - env: - OS: windows - TOOLCHAIN: ${{ matrix.toolchain }} - steps: - - uses: actions/checkout@v4 - - name: Self-update rustup - run: rustup self update - shell: bash - - name: Execute build.sh - run: ./ci/build.sh - shell: bash + run: ./ci/verify-build.sh macos: name: macOS @@ -254,9 +208,7 @@ jobs: - windows - solaris - style_check - - build_channels_linux - - build_channels_macos - - build_channels_windows + - verify_build # Github branch protection is exceedingly silly and treats "jobs skipped because a dependency # failed" as success. So we have to do some contortions to ensure the job fails if any of its # dependencies fails. diff --git a/ci/install-rust.sh b/ci/install-rust.sh index becb532d1469d..16fd0b4e8a577 100755 --- a/ci/install-rust.sh +++ b/ci/install-rust.sh @@ -8,17 +8,25 @@ echo "Setup toolchain" toolchain="${TOOLCHAIN:-nightly}" os="${OS:-}" -if [ "$os" = "windows" ]; then - : "${TARGET?The TARGET environment variable must be set.}" - rustup set profile minimal - rustup update --force "$toolchain-$TARGET" - rustup default "$toolchain-$TARGET" -else +case "$(uname -s)" in + Linux*) os=linux ;; + Darwin*) os=macos ;; + MINGW*) os=windows ;; + *) + echo "Unknown system $(uname -s)" + exit 1 + ;; +esac + +if [ "$os" = "windows" ] && [ -n "${TARGET:-}" ]; then + toolchain="$toolchain-$TARGET" rustup set profile minimal - rustup update --force "$toolchain" - rustup default "$toolchain" fi +rustup set profile minimal +rustup update --force "$toolchain" +rustup default "$toolchain" + if [ -n "${TARGET:-}" ]; then echo "Install target" rustup target add "$TARGET" @@ -50,9 +58,6 @@ if [ "$os" = "windows" ]; then fi echo "Query rust and cargo versions" -command -v rustc -command -v cargo -command -v rustup rustc -Vv cargo -V rustup -Vv diff --git a/ci/build.sh b/ci/verify-build.sh similarity index 86% rename from ci/build.sh rename to ci/verify-build.sh index e430e4b944ee0..6f206f64ee473 100755 --- a/ci/build.sh +++ b/ci/verify-build.sh @@ -8,12 +8,21 @@ set -eux : "${TOOLCHAIN?The TOOLCHAIN environment variable must be set.}" -: "${OS?The OS environment variable must be set.}" rust="$TOOLCHAIN" filter="${FILTER:-}" -echo "Testing Rust $rust on $OS" +case "$(uname -s)" in + Linux*) os=linux ;; + Darwin*) os=macos ;; + MINGW*) os=windows ;; + *) + echo "Unknown system $(uname -s)" + exit 1 + ;; +esac + +echo "Testing Rust $rust on $os" if [ "$TOOLCHAIN" = "nightly" ] ; then rustup component add rust-src @@ -201,40 +210,30 @@ i386-apple-ios \ " # The targets are listed here alphabetically -targets="" -no_dist_targets="" - -case "${OS}" in - linux*) - targets="$rust_linux_targets" - - if [ "$rust" = "nightly" ]; then - targets="$targets $rust_nightly_linux_targets" - no_dist_targets="$rust_linux_no_dist_targets" - fi - - ;; - macos*) - targets="$rust_apple_targets" - - if [ "$rust" = "nightly" ]; then - targets="$targets $rust_nightly_apple_targets" - no_dist_targets="$rust_apple_no_dist_targets" - fi +if [ "$os" = "linux" ]; then + targets="$rust_linux_targets" + nightly_targets="$rust_nightly_linux_targets" + no_dist_targets="$rust_linux_no_dist_targets" +elif [ "$os" = "macos" ]; then + targets="$rust_apple_targets" + nightly_targets="$rust_nightly_apple_targets" + no_dist_targets="$rust_apple_no_dist_targets" +elif [ "$os" = "windows" ]; then + targets=${rust_nightly_windows_targets} +else + exit 1 +fi - ;; - windows*) - targets=${rust_nightly_windows_targets} - ;; - *) - echo "Unrecognized OS $OS" - exit 1 - ;; -esac +if [ "$rust" = "nightly" ]; then + targets="$targets ${nightly_targets:-}" +else + # build-std requires nightly + no_dist_targets="" +fi for target in $targets; do if echo "$target" | grep -q "$filter"; then - if [ "${OS}" = "windows" ]; then + if [ "$os" = "windows" ]; then TARGET="$target" ./ci/install-rust.sh test_target "$target" else @@ -245,9 +244,9 @@ for target in $targets; do fi done -for target in $no_dist_targets; do +for target in ${no_dist_targets:-}; do if echo "$target" | grep -q "$filter"; then - if [ "${OS}" = "windows" ]; then + if [ "$os" = "windows" ]; then TARGET="$target" ./ci/install-rust.sh test_target "$target" 1 else From 4fa42c839d8e96b831b9208ba994ac340b40e608 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 06:32:09 -0500 Subject: [PATCH 0355/1228] ci: Switch to a single matrix for tier1 testing The Mac, Windows, and Linux jobs for testing are pretty redundant. Turn this into a single `test_tier1` job that runs all expected combinations. (backport ) (cherry picked from commit 01244c576e2d164a4092ade9040566185e1d17c5) --- .github/workflows/ci.yaml | 75 ++++++++++++--------------------------- 1 file changed, 23 insertions(+), 52 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b3efe4b7a0e4a..c7b34d2588168 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -45,77 +45,50 @@ jobs: - name: Execute build.sh run: ./ci/verify-build.sh - macos: - name: macOS - runs-on: macos-14 + test_tier1: + name: Test tier1 strategy: - fail-fast: true - matrix: - target: - - aarch64-apple-darwin - env: - TARGET: ${{ matrix.target }} - steps: - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: ./ci/install-rust.sh - - name: Execute run.sh - run: ./ci/run.sh ${{ matrix.target }} - - windows: - name: Windows - runs-on: windows-2022 - strategy: - fail-fast: true matrix: include: + - target: i686-unknown-linux-gnu + docker: true + os: ubuntu-22.04 + - target: x86_64-unknown-linux-gnu + docker: true + os: ubuntu-22.04 + - target: aarch64-apple-darwin + os: macos-14 - target: x86_64-pc-windows-gnu + os: windows-2022 env: ARCH_BITS: 64 ARCH: x86_64 - target: x86_64-pc-windows-msvc + os: windows-2022 # FIXME: It currently causes segfaults. #- target: i686-pc-windows-gnu # env: # ARCH_BITS: 32 # ARCH: i686 - target: i686-pc-windows-msvc + os: windows-2022 + runs-on: ${{ matrix.os }} env: - OS: windows TARGET: ${{ matrix.target }} steps: - uses: actions/checkout@v4 - - name: Self-update rustup - run: rustup self update - shell: bash - name: Setup Rust toolchain run: ./ci/install-rust.sh - shell: bash - - name: Execute run.sh + - name: Run natively + if: "!matrix.docker" run: ./ci/run.sh ${{ matrix.target }} - shell: bash - - docker_linux_tier1: - name: Docker Linux Tier1 - runs-on: ubuntu-22.04 - strategy: - fail-fast: true - matrix: - target: - - i686-unknown-linux-gnu - - x86_64-unknown-linux-gnu - env: - TARGET: ${{ matrix.target }} - steps: - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: ./ci/install-rust.sh - - name: Execute run-docker.sh + - name: Run in Docker + if: "matrix.docker" run: ./ci/run-docker.sh ${{ matrix.target }} - docker_linux_tier2: - name: Docker Linux Tier2 - needs: [docker_linux_tier1, style_check] + test_tier2: + name: Test tier2 + needs: [test_tier1, style_check] runs-on: ubuntu-22.04 strategy: fail-fast: true @@ -202,10 +175,8 @@ jobs: name: success runs-on: ubuntu-22.04 needs: - - docker_linux_tier1 - - docker_linux_tier2 - - macos - - windows + - test_tier1 + - test_tier2 - solaris - style_check - verify_build From 769bc10212074305b7b8c0456ed8cc9b76dd7084 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 07:17:14 -0500 Subject: [PATCH 0356/1228] ci: Make sure `sparc` is the first job run then sort the others (backport ) (cherry picked from commit 33582fccda6ac9dbfe3e998442272ade8b5c94fe) --- .github/workflows/ci.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c7b34d2588168..8f4c095bd15cb 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -95,6 +95,9 @@ jobs: max-parallel: 12 matrix: target: + # FIXME(sparc): this takes much longer to run than any other job, put + # it first to make sure it gets a head start. + - sparc64-unknown-linux-gnu - aarch64-linux-android - aarch64-unknown-linux-gnu - aarch64-unknown-linux-musl @@ -108,12 +111,11 @@ jobs: - powerpc-unknown-linux-gnu - powerpc64-unknown-linux-gnu - powerpc64le-unknown-linux-gnu - - s390x-unknown-linux-gnu - riscv64gc-unknown-linux-gnu + - s390x-unknown-linux-gnu + - wasm32-unknown-emscripten - wasm32-wasip1 - wasm32-wasip2 - - sparc64-unknown-linux-gnu - - wasm32-unknown-emscripten - x86_64-linux-android # FIXME: Exec format error (os error 8) # - x86_64-unknown-linux-gnux32 From 4a7cde54360875d550dce54688804e6872c1ea59 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 07:19:12 -0500 Subject: [PATCH 0357/1228] ci: defer the Solaris job until after tier 1 Solaris is a Tier 2 target so defer it until after tier1 completes. We currently do this for the other T2 targets. In preparation of adding other VM tests to the matrix, adjust naming. Additionally, just `set -x` rather than priting the commands before running them. (backport ) (cherry picked from commit 549eb77fb1b59cb8e5e094761a5c47988348bbb7) --- .github/workflows/ci.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 8f4c095bd15cb..57f137c410712 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -132,8 +132,9 @@ jobs: - name: Execute run-docker.sh run: ./ci/run-docker.sh ${{ matrix.target }} - solaris: - name: Solaris + test_tier2_vm: + name: Test tier2 VM + needs: [test_tier1, style_check] runs-on: ubuntu-latest strategy: fail-fast: true @@ -150,10 +151,9 @@ jobs: mem: 4096 copyback: false prepare: | + set -x source <(curl -s https://raw.githubusercontent.com/psumbera/solaris-rust/refs/heads/main/sh.rust-web-install) - echo "~~~~ rustc --version ~~~~" rustc --version - echo "~~~~ Solaris-version ~~~~" uname -a run: | export PATH=$HOME/.rust_solaris/bin:$PATH @@ -177,10 +177,10 @@ jobs: name: success runs-on: ubuntu-22.04 needs: + - style_check - test_tier1 - test_tier2 - - solaris - - style_check + - test_tier2_vm - verify_build # Github branch protection is exceedingly silly and treats "jobs skipped because a dependency # failed" as success. So we have to do some contortions to ensure the job fails if any of its From 0961b87a40bebba8897ec7ea52e97e2f8de1f894 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 07:24:35 -0500 Subject: [PATCH 0358/1228] ci: Update all jobs to the latest ubuntu-24.04 (backport ) (cherry picked from commit 09a2bcf714ca5b5cf53340c20148a116a5c6b0ed) --- .github/workflows/ci.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 57f137c410712..f5132216cecc7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -17,7 +17,7 @@ defaults: jobs: style_check: name: Style check - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain @@ -31,10 +31,10 @@ jobs: strategy: matrix: toolchain: [stable, nightly, 1.63.0] - os: [ubuntu-22.04, macos-14, windows-2022] + os: [ubuntu-24.04, macos-14, windows-2022] include: - toolchain: beta - os: ubuntu-22.04 + os: ubuntu-24.04 runs-on: ${{ matrix.os }} env: TOOLCHAIN: ${{ matrix.toolchain }} @@ -52,10 +52,10 @@ jobs: include: - target: i686-unknown-linux-gnu docker: true - os: ubuntu-22.04 + os: ubuntu-24.04 - target: x86_64-unknown-linux-gnu docker: true - os: ubuntu-22.04 + os: ubuntu-24.04 - target: aarch64-apple-darwin os: macos-14 - target: x86_64-pc-windows-gnu @@ -89,7 +89,7 @@ jobs: test_tier2: name: Test tier2 needs: [test_tier1, style_check] - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: fail-fast: true max-parallel: 12 @@ -161,7 +161,7 @@ jobs: check_cfg: name: "Check #[cfg]s" - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: TOOLCHAIN: nightly steps: @@ -175,7 +175,7 @@ jobs: # protection, rather than having to add each job separately. success: name: success - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: - style_check - test_tier1 From 7a897dd8a93b1416efe802e676cec6dc2c204b36 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 20 Nov 2024 08:11:03 -0500 Subject: [PATCH 0359/1228] ci: Remove some trailing whitespace (backport ) (cherry picked from commit 0892b447b021973e4285da6d4c6074b2bcc8dae8) --- ci/style.rs | 2 +- ci/style.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/style.rs b/ci/style.rs index dbc8c633cffab..c4e0fb0db8058 100644 --- a/ci/style.rs +++ b/ci/style.rs @@ -100,7 +100,7 @@ fn check_style(file: &str, path: &Path, err: &mut Errors) { // FIXME: see below // let mut s_macros = 0; - + let mut f_macros = 0; let mut in_impl = false; diff --git a/ci/style.sh b/ci/style.sh index 17a47d037360a..c758712012e16 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -75,7 +75,7 @@ fi export LC_ALL=C for file in libc-test/semver/*.txt; do - case "$file" in + case "$file" in *TODO*) continue ;; esac From 3f6dd37ee0c9f21a7af811db9cbf7f2cb4b8ee21 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 9 Dec 2023 13:15:26 +0000 Subject: [PATCH 0360/1228] netbsd adding mcontext related data for riscv64 ref: https://github.com/NetBSD/src/blob/0465e5c825effb130eca95499f5ac6454fe0d5ab/sys/arch/riscv/include/mcontext.h#L44 (backport ) (cherry picked from commit fb52c7a4b74f224366062b1c454cb51730fd9f3d) --- src/unix/bsd/netbsdlike/netbsd/riscv64.rs | 66 +++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs index 643940d03de85..14b1be38041c7 100644 --- a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs @@ -3,7 +3,26 @@ use PT_FIRSTMACH; pub type c_long = i64; pub type c_ulong = u64; pub type c_char = u8; +pub type __greg_t = u64; pub type __cpu_simple_lock_nv_t = ::c_int; +pub type __gregset = [__greg_t; _NGREG]; +pub type __fregset = [__freg; _NFREG]; + +s! { + pub struct mcontext_t { + pub __gregs: __gregset, + pub __fregs: __fpregset, + __spare: [::__greg_t; 7], + } +} + +s_no_extra_traits! { + #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] + pub union __fpreg { + pub u_u64: u64, + pub u_d: ::c_double, + } +} pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; @@ -11,3 +30,50 @@ 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 _NGREG: usize = 32; +pub const _NFREG: usize = 33; + +pub const _REG_X1: ::c_int = 0; +pub const _REG_X2: ::c_int = 1; +pub const _REG_X3: ::c_int = 2; +pub const _REG_X4: ::c_int = 3; +pub const _REG_X5: ::c_int = 4; +pub const _REG_X6: ::c_int = 5; +pub const _REG_X7: ::c_int = 6; +pub const _REG_X8: ::c_int = 7; +pub const _REG_X9: ::c_int = 8; +pub const _REG_X10: ::c_int = 9; +pub const _REG_X11: ::c_int = 10; +pub const _REG_X12: ::c_int = 11; +pub const _REG_X13: ::c_int = 12; +pub const _REG_X14: ::c_int = 13; +pub const _REG_X15: ::c_int = 14; +pub const _REG_X16: ::c_int = 15; +pub const _REG_X17: ::c_int = 16; +pub const _REG_X18: ::c_int = 17; +pub const _REG_X19: ::c_int = 18; +pub const _REG_X20: ::c_int = 19; +pub const _REG_X21: ::c_int = 20; +pub const _REG_X22: ::c_int = 21; +pub const _REG_X23: ::c_int = 22; +pub const _REG_X24: ::c_int = 23; +pub const _REG_X25: ::c_int = 24; +pub const _REG_X26: ::c_int = 25; +pub const _REG_X27: ::c_int = 26; +pub const _REG_X28: ::c_int = 27; +pub const _REG_X29: ::c_int = 28; +pub const _REG_X30: ::c_int = 29; +pub const _REG_X31: ::c_int = 30; +pub const _REG_PC: ::c_int = 31; + +pub const _REG_RA: ::c_int = _REG_X1; +pub const _REG_SP: ::c_int = _REG_X2; +pub const _REG_GP: ::c_int = _REG_X3; +pub const _REG_TP: ::c_int = _REG_X4; +pub const _REG_S0: ::c_int = _REG_X8; +pub const _REG_RV: ::c_int = _REG_X10; +pub const _REG_A0: ::c_int = _REG_X10; + +pub const _REG_F0: ::c_int = 0; +pub const _REG_FPCSR: ::c_int = 32; From e49123ee0e273d0cf469222e322d4794763aaf89 Mon Sep 17 00:00:00 2001 From: Xiaobo Liu Date: Wed, 19 Apr 2023 11:53:14 +0800 Subject: [PATCH 0361/1228] uclibc/mips: fixed SA_* mismatched types Signed-off-by: Xiaobo Liu (backport ) (cherry picked from commit e8f54bbda52cc67eb2721c32400b19b776fd2cf0) --- src/unix/linux_like/linux/uclibc/mips/mod.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/unix/linux_like/linux/uclibc/mips/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mod.rs index 56bfcc5d355a7..d51d73f2944fe 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mod.rs @@ -23,10 +23,10 @@ pub const ECOMM: ::c_int = 70; pub const EPROTO: ::c_int = 71; pub const EDOTDOT: ::c_int = 73; -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; +pub const SA_NODEFER: ::c_uint = 0x40000000; +pub const SA_RESETHAND: ::c_uint = 0x80000000; +pub const SA_RESTART: ::c_uint = 0x10000000; +pub const SA_NOCLDSTOP: ::c_uint = 0x00000001; pub const EPOLL_CLOEXEC: ::c_int = 0x80000; From 34fdd5b1d79c78def991f32d8f1ac495af8da2b3 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 20 Nov 2024 20:18:41 +0100 Subject: [PATCH 0362/1228] hurd: Fix MAP_HASSEMAPHORE name According to upstream fix https://sourceware.org/git/?p=glibc.git;a=commit;h=c0365d3791666c67ad410007efb52fc9b16d4287 (backport ) (cherry picked from commit 0fd366704968f11b03ec5c5e7a185ab3fb7eeb5e) --- src/unix/hurd/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 72e5bf76087b4..9d35805ca4204 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -2732,7 +2732,7 @@ pub const MAP_SHARED: ::c_int = 16; pub const MAP_PRIVATE: ::c_int = 0; pub const MAP_FIXED: ::c_int = 256; pub const MAP_NOEXTEND: ::c_int = 512; -pub const MAP_HASSEMPHORE: ::c_int = 1024; +pub const MAP_HASSEMAPHORE: ::c_int = 1024; pub const MAP_INHERIT: ::c_int = 2048; pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; pub const MADV_NORMAL: ::c_int = 0; From b3f0be092989e714e5f4d333fe5840404b962cf7 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 20 Nov 2024 20:19:16 +0100 Subject: [PATCH 0363/1228] hurd: Add MAP_32BIT and MAP_EXCL As defined in glibc https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/mach/hurd/bits/mman_ext.h (backport ) (cherry picked from commit d07804831eb4f6f29ac73011b26832cbd67d61f3) --- src/unix/hurd/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 9d35805ca4204..f9410317a8bfa 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -2734,6 +2734,8 @@ pub const MAP_FIXED: ::c_int = 256; pub const MAP_NOEXTEND: ::c_int = 512; pub const MAP_HASSEMAPHORE: ::c_int = 1024; pub const MAP_INHERIT: ::c_int = 2048; +pub const MAP_32BIT: ::c_int = 4096; +pub const MAP_EXCL: ::c_int = 16384; pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; pub const MADV_NORMAL: ::c_int = 0; pub const MADV_RANDOM: ::c_int = 1; From 24358295c9f53b2acf5630060ad93989d7b4fc50 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Wed, 20 Nov 2024 12:25:47 -0700 Subject: [PATCH 0364/1228] Fix the tests on riscv64gc-unknown-freebsd The fpregs was defined with two fields having the wrong sign, and one field having the wrong name. (backport ) (cherry picked from commit 730bf7330f33b7438f4536562ae8da920eb64938) --- src/unix/bsd/freebsdlike/freebsd/riscv64.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs index 143393e5c56ae..85afef02975bf 100644 --- a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs @@ -21,10 +21,10 @@ s_no_extra_traits! { } pub struct fpregs { - pub fp_x: [[::register_t; 2]; 32], - pub fp_fcsr: ::register_t, + pub fp_x: [[u64; 2]; 32], + pub fp_fcsr: u64, pub fp_flags: ::c_int, - pub fp_pad: ::c_int, + pub pad: ::c_int, } pub struct mcontext_t { @@ -85,7 +85,7 @@ cfg_if! { self.fp_x == other.fp_x && self.fp_fcsr == other.fp_fcsr && self.fp_flags == other.fp_flags - && self.fp_pad == other.fp_pad + && self.pad == other.pad } } impl Eq for fpregs {} @@ -95,7 +95,7 @@ cfg_if! { .field("fp_x", &self.fp_x) .field("fp_fcsr", &self.fp_fcsr) .field("fp_flags", &self.fp_flags) - .field("fp_pad", &self.fp_pad) + .field("pad", &self.pad) .finish() } } @@ -104,7 +104,7 @@ cfg_if! { self.fp_x.hash(state); self.fp_fcsr.hash(state); self.fp_flags.hash(state); - self.fp_pad.hash(state); + self.pad.hash(state); } } impl PartialEq for mcontext_t { From 39af00cb68dd8277aaf794bf46bb6d77636b9164 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 14:25:18 -0500 Subject: [PATCH 0365/1228] Add another note about why `main` and `libc-0.2` differ Add more diff notes --- src/windows/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 042c6221e7375..d2ade8631cbd3 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -256,6 +256,8 @@ pub const SIG_GET: ::sighandler_t = 2; pub const SIG_SGE: ::sighandler_t = 3; pub const SIG_ACK: ::sighandler_t = 4; +// DIFF(main): removed in 458c58f409 +// FIXME(msrv): done by `std` starting in 1.79.0 // inline comment below appeases style checker #[cfg(all(target_env = "msvc", feature = "rustc-dep-of-std"))] // " if " #[link(name = "msvcrt", cfg(not(target_feature = "crt-static")))] From 25e022a22eca3634166ef472b748c297e60fcf7f Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 18 Nov 2024 15:06:21 -0500 Subject: [PATCH 0366/1228] Add another `deprecated` attribute for something removed in `main` Removed in . --- src/fuchsia/mod.rs | 1 + src/unix/bsd/apple/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index d940738a6ebe4..6a7224013ef72 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -3787,6 +3787,7 @@ extern "C" { pub fn close(fd: ::c_int) -> ::c_int; pub fn dup(fd: ::c_int) -> ::c_int; pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; + pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; pub fn execle(path: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; pub fn execlp(file: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 7303f55cccd8d..e2f976c5193a6 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -6807,6 +6807,7 @@ cfg_if! { // These require a dependency on `libiconv`, and including this when built as // part of `std` means every Rust program gets it. Ideally we would have a link // modifier to only include these if they are used, but we do not. +#[deprecated(note = "Will be removed in 1.0 to avoid the `iconv` dependency")] #[cfg_attr(not(feature = "rustc-dep-of-std"), link(name = "iconv"))] extern "C" { pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; From 2c52fa4fcd2bd51b5fd03fc43b5b04ea35ae9bc0 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 22 Nov 2024 21:11:26 -0500 Subject: [PATCH 0367/1228] Reorder a struct that was in a different location on `main` --- src/unix/linux_like/linux/mod.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 6d6f12ab91f3f..56475e9970c81 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -821,6 +821,14 @@ s! { pub val: ::c_int, } + // linux/openat2.h + #[non_exhaustive] + pub struct open_how { + pub flags: ::__u64, + pub mode: ::__u64, + pub resolve: ::__u64, + } + // linux/sctp.h pub struct sctp_initmsg { @@ -1000,14 +1008,6 @@ s! { pub pid: ::c_int, } - // linux/openat2.h - #[non_exhaustive] - pub struct open_how { - pub flags: ::__u64, - pub mode: ::__u64, - pub resolve: ::__u64, - } - // linux/wireless.h pub struct iw_param { From 0a36989f9c814c33208266d0efd3498f6f5654ef Mon Sep 17 00:00:00 2001 From: Folkert de Vries Date: Thu, 21 Nov 2024 22:52:05 +0100 Subject: [PATCH 0368/1228] use `qemu-sparc64` to run sparc64 tests (backport ) (cherry picked from commit e580f566c0010913fcb24241ae1907a724534fdd) --- ci/docker/sparc64-unknown-linux-gnu/Dockerfile | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile index 16b930f95a834..61b0e798e52c1 100644 --- a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile @@ -12,14 +12,12 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ gcc libc6-dev \ gcc-sparc64-linux-gnu libc6-dev-sparc64-cross \ qemu-system-sparc64 openbios-sparc seabios ipxe-qemu \ - p7zip-full cpio linux-libc-dev-sparc64-cross + p7zip-full cpio linux-libc-dev-sparc64-cross qemu-user COPY linux-sparc64.sh / RUN /linux-sparc64.sh -COPY test-runner-linux / - ENV CARGO_TARGET_SPARC64_UNKNOWN_LINUX_GNU_LINKER=sparc64-linux-gnu-gcc \ - CARGO_TARGET_SPARC64_UNKNOWN_LINUX_GNU_RUNNER="/test-runner-linux sparc64" \ + CARGO_TARGET_SPARC64_UNKNOWN_LINUX_GNU_RUNNER="qemu-sparc64 -L /usr/sparc64-linux-gnu" \ CC_sparc64_unknown_linux_gnu=sparc64-linux-gnu-gcc \ PATH=$PATH:/rust/bin From 47a94d8f1a7443033c7da60644b333a9d122041b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 25 Nov 2024 03:57:41 -0500 Subject: [PATCH 0369/1228] Reorder items to be more similar to `main` --- src/unix/linux_like/linux/mod.rs | 172 +++++++++++++++---------------- 1 file changed, 86 insertions(+), 86 deletions(-) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 56475e9970c81..d14d4dd8766f1 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -922,92 +922,6 @@ s! { pub rec_seq: [::c_uchar; TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE], } - // #include - - pub struct epoll_params { - pub busy_poll_usecs: u32, - pub busy_poll_budget: u16, - pub prefer_busy_poll: u8, - pub __pad: u8, // Must be zero - } - - #[cfg_attr( - any( - target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "mips64r6", - target_arch = "s390x", - target_arch = "sparc64", - target_arch = "aarch64", - target_arch = "riscv64", - target_arch = "riscv32", - target_arch = "loongarch64" - ), - repr(align(4)) - )] - #[cfg_attr( - not(any( - target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "mips64r6", - target_arch = "s390x", - target_arch = "sparc64", - target_arch = "aarch64", - target_arch = "riscv64", - target_arch = "riscv32", - target_arch = "loongarch64" - )), - repr(align(8)) - )] - pub struct pthread_mutexattr_t { - #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - #[cfg_attr( - any(target_env = "musl", target_env = "ohos", target_pointer_width = "32"), - repr(align(4)) - )] - #[cfg_attr( - all( - not(target_env = "musl"), - not(target_env = "ohos"), - target_pointer_width = "64" - ), - repr(align(8)) - )] - pub struct pthread_rwlockattr_t { - #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], - } - - #[repr(align(4))] - pub struct pthread_condattr_t { - #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - - #[repr(align(4))] - pub struct pthread_barrierattr_t { - #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_BARRIERATTR_T], - } - - #[repr(align(8))] - pub struct fanotify_event_metadata { - pub event_len: __u32, - pub vers: __u8, - pub reserved: __u8, - pub metadata_len: __u16, - pub mask: __u64, - pub fd: ::c_int, - pub pid: ::c_int, - } - // linux/wireless.h pub struct iw_param { @@ -1142,6 +1056,92 @@ s! { pub get_args: __u16, pub name: [c_char; ::IFNAMSIZ], } + + // #include + + pub struct epoll_params { + pub busy_poll_usecs: u32, + pub busy_poll_budget: u16, + pub prefer_busy_poll: u8, + pub __pad: u8, // Must be zero + } + + #[cfg_attr( + any( + target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "mips64r6", + target_arch = "s390x", + target_arch = "sparc64", + target_arch = "aarch64", + target_arch = "riscv64", + target_arch = "riscv32", + target_arch = "loongarch64" + ), + repr(align(4)) + )] + #[cfg_attr( + not(any( + target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "mips64r6", + target_arch = "s390x", + target_arch = "sparc64", + target_arch = "aarch64", + target_arch = "riscv64", + target_arch = "riscv32", + target_arch = "loongarch64" + )), + repr(align(8)) + )] + pub struct pthread_mutexattr_t { + #[doc(hidden)] + size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + } + + #[cfg_attr( + any(target_env = "musl", target_env = "ohos", target_pointer_width = "32"), + repr(align(4)) + )] + #[cfg_attr( + all( + not(target_env = "musl"), + not(target_env = "ohos"), + target_pointer_width = "64" + ), + repr(align(8)) + )] + pub struct pthread_rwlockattr_t { + #[doc(hidden)] + size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], + } + + #[repr(align(4))] + pub struct pthread_condattr_t { + #[doc(hidden)] + size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + } + + #[repr(align(4))] + pub struct pthread_barrierattr_t { + #[doc(hidden)] + size: [u8; ::__SIZEOF_PTHREAD_BARRIERATTR_T], + } + + #[repr(align(8))] + pub struct fanotify_event_metadata { + pub event_len: __u32, + pub vers: __u8, + pub reserved: __u8, + pub metadata_len: __u16, + pub mask: __u64, + pub fd: ::c_int, + pub pid: ::c_int, + } } cfg_if! { From d0ed18d50fe28c7ab94c8a90cd10783f45ccada2 Mon Sep 17 00:00:00 2001 From: Folkert de Vries Date: Tue, 19 Nov 2024 19:43:39 +0100 Subject: [PATCH 0370/1228] add various `ptp_*` structs code is originally from https://github.com/rust-lang/libc/pull/3865. (backport ) (cherry picked from commit 511a00212d75abfc0f3e6bbd450ba953843c5291) --- libc-test/build.rs | 17 ++++++- libc-test/semver/linux.txt | 13 ++++++ src/unix/linux_like/linux/mod.rs | 77 ++++++++++++++++++++++++++++++++ 3 files changed, 106 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index c8b1297d691ad..87848b1a21ba1 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3617,6 +3617,8 @@ fn test_linux(target: &str) { "linux/netlink.h", // FIXME: requires Linux >= 5.6: [!musl]: "linux/openat2.h", + // FIXME: some items require Linux >= 5.6: + "linux/ptp_clock.h", [!musl]: "linux/ptrace.h", "linux/quota.h", "linux/random.h", @@ -3766,6 +3768,11 @@ fn test_linux(target: &str) { return true; } + // FIXME: CI has old headers + if ty == "ptp_sys_offset_extended" { + return true; + } + // LFS64 types have been removed in musl 1.2.4+ if musl && (ty.ends_with("64") || ty.ends_with("64_t")) { return true; @@ -4490,7 +4497,11 @@ fn test_linux(target: &str) { // `__exit_status` type is a patch which is absent in musl (struct_ == "utmpx" && field == "ut_exit" && musl) || // `can_addr` is an anonymous union - (struct_ == "sockaddr_can" && field == "can_addr") + (struct_ == "sockaddr_can" && field == "can_addr") || + // `anonymous_1` is an anonymous union + (struct_ == "ptp_perout_request" && field == "anonymous_1") || + // `anonymous_2` is an anonymous union + (struct_ == "ptp_perout_request" && field == "anonymous_2") }); cfg.volatile_item(|i| { @@ -4561,6 +4572,10 @@ fn test_linux(target: &str) { (struct_ == "fanotify_event_info_fid" && field == "fsid") || // `handle` is a VLA (struct_ == "fanotify_event_info_fid" && field == "handle") || + // `anonymous_1` is an anonymous union + (struct_ == "ptp_perout_request" && field == "anonymous_1") || + // `anonymous_2` is an anonymous union + (struct_ == "ptp_perout_request" && field == "anonymous_2") || // invalid application of 'sizeof' to incomplete type 'long unsigned int[]' (musl && struct_ == "mcontext_t" && field == "__extcontext" && loongarch64) || // FIXME(#4121): a new field was added from `f_spare` diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 5557664a1ab03..50f6537cdf930 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2252,6 +2252,7 @@ PTHREAD_PRIO_PROTECT PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_SHARED PTHREAD_STACK_MIN +PTP_MAX_SAMPLES PTRACE_ATTACH PTRACE_CONT PTRACE_DETACH @@ -3558,11 +3559,15 @@ __WNOTHREAD __c_anonymous_ifc_ifcu __c_anonymous_ifr_ifru __c_anonymous_ifru_map +__c_anonymous_ptp_perout_request_1 +__c_anonymous_ptp_perout_request_2 __c_anonymous_sockaddr_can_can_addr __c_anonymous_sockaddr_can_j1939 __c_anonymous_sockaddr_can_tp __errno_location __exit_status +__kernel_clockid_t +__kernel_fsid_t __s16 __s32 __u16 @@ -3916,6 +3921,14 @@ pthread_spin_lock pthread_spin_trylock pthread_spin_unlock pthread_spinlock_t +ptp_clock_time +ptp_extts_event +ptp_extts_request +ptp_perout_request +ptp_pin_desc +ptp_sys_offset +ptp_sys_offset_extended +ptp_sys_offset_precise ptrace ptsname_r pwrite64 diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index d14d4dd8766f1..46c925b818b51 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -19,6 +19,7 @@ pub type pthread_key_t = ::c_uint; pub type pthread_once_t = ::c_int; pub type pthread_spinlock_t = ::c_int; pub type __kernel_fsid_t = __c_anonymous__kernel_fsid_t; +pub type __kernel_clockid_t = ::c_int; pub type __u8 = ::c_uchar; pub type __u16 = ::c_ushort; @@ -829,6 +830,40 @@ s! { pub resolve: ::__u64, } + // linux/ptp_clock.h + pub struct ptp_clock_time { + pub sec: ::__s64, + pub nsec: ::__u32, + pub reserved: ::__u32, + } + + pub struct ptp_extts_request { + pub index: ::c_uint, + pub flags: ::c_uint, + pub rsv: [::c_uint; 2], + } + + pub struct ptp_sys_offset_extended { + pub n_samples: ::c_uint, + pub clockid: __kernel_clockid_t, + pub rsv: [::c_uint; 2], + pub ts: [[ptp_clock_time; 3]; PTP_MAX_SAMPLES as usize], + } + + pub struct ptp_sys_offset_precise { + pub device: ptp_clock_time, + pub sys_realtime: ptp_clock_time, + pub sys_monoraw: ptp_clock_time, + pub rsv: [::c_uint; 4], + } + + pub struct ptp_extts_event { + pub t: ptp_clock_time, + index: ::c_uint, + flags: ::c_uint, + rsv: [::c_uint; 2], + } + // linux/sctp.h pub struct sctp_initmsg { @@ -1142,6 +1177,23 @@ s! { pub fd: ::c_int, pub pid: ::c_int, } + + // linux/ptp_clock.h + + pub struct ptp_sys_offset { + pub n_samples: ::c_uint, + pub rsv: [::c_uint; 3], + // FIXME(garando): replace length with `2 * PTP_MAX_SAMPLES + 1` when supported + pub ts: [ptp_clock_time; 51], + } + + pub struct ptp_pin_desc { + pub name: [::c_char; 64], + pub index: ::c_uint, + pub func: ::c_uint, + pub chan: ::c_uint, + pub rsv: [::c_uint; 5], + } } cfg_if! { @@ -1580,6 +1632,28 @@ s_no_extra_traits! { pub ifr_ifrn: __c_anonymous_iwreq, pub u: iwreq_data, } + + // linux/ptp_clock.h + #[allow(missing_debug_implementations)] + pub union __c_anonymous_ptp_perout_request_1 { + pub start: ptp_clock_time, + pub phase: ptp_clock_time, + } + + #[allow(missing_debug_implementations)] + pub union __c_anonymous_ptp_perout_request_2 { + pub on: ptp_clock_time, + pub rsv: [::c_uint; 4], + } + + #[allow(missing_debug_implementations)] + pub struct ptp_perout_request { + pub anonymous_1: __c_anonymous_ptp_perout_request_1, + pub period: ptp_clock_time, + pub index: ::c_uint, + pub flags: ::c_uint, + pub anonymous_2: __c_anonymous_ptp_perout_request_2, + } } cfg_if! { @@ -4504,6 +4578,9 @@ pub const HWTSTAMP_FILTER_PTP_V2_SYNC: ::c_uint = 13; pub const HWTSTAMP_FILTER_PTP_V2_DELAY_REQ: ::c_uint = 14; pub const HWTSTAMP_FILTER_NTP_ALL: ::c_uint = 15; +// linux/ptp_clock.h +pub const PTP_MAX_SAMPLES: ::c_uint = 25; // Maximum allowed offset measurement samples. + // linux/tls.h pub const TLS_TX: ::c_int = 1; pub const TLS_RX: ::c_int = 2; From 214e43a2b8a126940f69af1f231c50125fdb6a3f Mon Sep 17 00:00:00 2001 From: Folkert de Vries Date: Tue, 19 Nov 2024 21:42:17 +0100 Subject: [PATCH 0371/1228] add `ptp_pin_function` and most `PTP_` constants We cannot (apparently) use a type alias for `ptp_pin_function` because CI is unhappy with that (e.g. https://github.com/rust-lang/libc/actions/runs/11921706273/job/33226419934?pr=4114) We can always add that type alias later; it's not a breaking change (backport ) (cherry picked from commit a2ec6424d0d6781902b34142e7d89cea8cec202e) --- libc-test/build.rs | 16 +++++ libc-test/semver/linux.txt | 20 ++++++ src/unix/linux_like/linux/mod.rs | 110 +++++++++++++++++++++++++++++++ 3 files changed, 146 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 87848b1a21ba1..42ccecdda9534 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3968,6 +3968,22 @@ fn test_linux(target: &str) { { return true; } + // FIXME: Requires >= 4.20 kernel headers + if name == "PTP_SYS_OFFSET_EXTENDED" { + return true; + } + // FIXME: Requires >= 5.4 kernel headers + if name == "PTP_ENABLE_PPS2" + || name == "PTP_EXTTS_REQUEST2" + || name == "PTP_PEROUT_REQUEST2" + || name == "PTP_PIN_GETFUNC2" + || name == "PTP_PIN_SETFUNC2" + || name == "PTP_SYS_OFFSET2" + || name == "PTP_SYS_OFFSET_PRECISE2" + || name == "PTP_SYS_OFFSET_EXTENDED2" + { + return true; + } // FIXME: Requires >= 5.4.1 kernel headers if name.starts_with("J1939") || name.starts_with("RTEXT_FILTER_") diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 50f6537cdf930..78dccdfb72e72 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2252,7 +2252,27 @@ PTHREAD_PRIO_PROTECT PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_SHARED PTHREAD_STACK_MIN +PTP_ENABLE_PPS +PTP_ENABLE_PPS2 +PTP_EXTTS_REQUEST +PTP_EXTTS_REQUEST2 PTP_MAX_SAMPLES +PTP_PEROUT_REQUEST +PTP_PEROUT_REQUEST2 +PTP_PF_EXTTS +PTP_PF_NONE +PTP_PF_PEROUT +PTP_PF_PHYSYNC +PTP_PIN_GETFUNC +PTP_PIN_GETFUNC2 +PTP_PIN_SETFUNC +PTP_PIN_SETFUNC2 +PTP_SYS_OFFSET +PTP_SYS_OFFSET2 +PTP_SYS_OFFSET_EXTENDED +PTP_SYS_OFFSET_EXTENDED2 +PTP_SYS_OFFSET_PRECISE +PTP_SYS_OFFSET_PRECISE2 PTRACE_ATTACH PTRACE_CONT PTRACE_DETACH diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 46c925b818b51..b1df6ebef07cb 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -4581,6 +4581,36 @@ pub const HWTSTAMP_FILTER_NTP_ALL: ::c_uint = 15; // linux/ptp_clock.h pub const PTP_MAX_SAMPLES: ::c_uint = 25; // Maximum allowed offset measurement samples. +const PTP_CLK_MAGIC: u32 = b'=' as u32; + +// FIXME: needs the ptp_clock_caps struct +// pub const PTP_CLOCK_GETCAPS: ::c_uint = _IOR::(PTP_CLK_MAGIC, 1); +pub const PTP_EXTTS_REQUEST: ::c_uint = _IOW::(PTP_CLK_MAGIC, 2); +pub const PTP_PEROUT_REQUEST: ::c_uint = _IOW::(PTP_CLK_MAGIC, 3); +pub const PTP_ENABLE_PPS: ::c_uint = _IOW::<::c_int>(PTP_CLK_MAGIC, 4); +pub const PTP_SYS_OFFSET: ::c_uint = _IOW::(PTP_CLK_MAGIC, 5); +pub const PTP_PIN_GETFUNC: ::c_uint = _IOWR::(PTP_CLK_MAGIC, 6); +pub const PTP_PIN_SETFUNC: ::c_uint = _IOW::(PTP_CLK_MAGIC, 7); +pub const PTP_SYS_OFFSET_PRECISE: ::c_uint = _IOWR::(PTP_CLK_MAGIC, 8); +pub const PTP_SYS_OFFSET_EXTENDED: ::c_uint = _IOWR::(PTP_CLK_MAGIC, 9); + +// FIXME: needs the ptp_clock_caps struct +// pub const PTP_CLOCK_GETCAPS2: ::c_uint = _IOR::(PTP_CLK_MAGIC, 10); +pub const PTP_EXTTS_REQUEST2: ::c_uint = _IOW::(PTP_CLK_MAGIC, 11); +pub const PTP_PEROUT_REQUEST2: ::c_uint = _IOW::(PTP_CLK_MAGIC, 12); +pub const PTP_ENABLE_PPS2: ::c_uint = _IOW::<::c_int>(PTP_CLK_MAGIC, 13); +pub const PTP_SYS_OFFSET2: ::c_uint = _IOW::(PTP_CLK_MAGIC, 14); +pub const PTP_PIN_GETFUNC2: ::c_uint = _IOWR::(PTP_CLK_MAGIC, 15); +pub const PTP_PIN_SETFUNC2: ::c_uint = _IOW::(PTP_CLK_MAGIC, 16); +pub const PTP_SYS_OFFSET_PRECISE2: ::c_uint = _IOWR::(PTP_CLK_MAGIC, 17); +pub const PTP_SYS_OFFSET_EXTENDED2: ::c_uint = _IOWR::(PTP_CLK_MAGIC, 18); + +// enum ptp_pin_function +pub const PTP_PF_NONE: ::c_uint = 0; +pub const PTP_PF_EXTTS: ::c_uint = 1; +pub const PTP_PF_PEROUT: ::c_uint = 2; +pub const PTP_PF_PHYSYNC: ::c_uint = 3; + // linux/tls.h pub const TLS_TX: ::c_int = 1; pub const TLS_RX: ::c_int = 2; @@ -5635,6 +5665,86 @@ pub const SCHED_FLAG_ALL: ::c_int = SCHED_FLAG_RESET_ON_FORK pub const EPIOCSPARAMS: ::Ioctl = 0x40088a01; pub const EPIOCGPARAMS: ::Ioctl = 0x80088a02; +const _IOC_NRBITS: u32 = 8; +const _IOC_TYPEBITS: u32 = 8; + +// https://github.com/search?q=repo%3Atorvalds%2Flinux+%22%23define+_IOC_NONE%22&type=code +cfg_if! { + if #[cfg(any( + any(target_arch = "powerpc", target_arch = "powerpc64"), + any(target_arch = "sparc", target_arch = "sparc64"), + any(target_arch = "mips", target_arch = "mips64"), + ))] { + // https://github.com/torvalds/linux/blob/b311c1b497e51a628aa89e7cb954481e5f9dced2/arch/powerpc/include/uapi/asm/ioctl.h + // https://github.com/torvalds/linux/blob/b311c1b497e51a628aa89e7cb954481e5f9dced2/arch/sparc/include/uapi/asm/ioctl.h + // https://github.com/torvalds/linux/blob/b311c1b497e51a628aa89e7cb954481e5f9dced2/arch/mips/include/uapi/asm/ioctl.h + + const _IOC_SIZEBITS: u32 = 13; + const _IOC_DIRBITS: u32 = 3; + + const _IOC_NONE: u32 = 1; + const _IOC_READ: u32 = 2; + const _IOC_WRITE: u32 = 4; + } else { + // https://github.com/torvalds/linux/blob/b311c1b497e51a628aa89e7cb954481e5f9dced2/include/uapi/asm-generic/ioctl.h + + const _IOC_SIZEBITS: u32 = 14; + const _IOC_DIRBITS: u32 = 2; + + const _IOC_NONE: u32 = 0; + const _IOC_WRITE: u32 = 1; + const _IOC_READ: u32 = 2; + } +} + +const _IOC_NRMASK: u32 = (1 << _IOC_NRBITS) - 1; +const _IOC_TYPEMASK: u32 = (1 << _IOC_TYPEBITS) - 1; +const _IOC_SIZEMASK: u32 = (1 << _IOC_SIZEBITS) - 1; +const _IOC_DIRMASK: u32 = (1 << _IOC_DIRBITS) - 1; + +const _IOC_NRSHIFT: u32 = 0; +const _IOC_TYPESHIFT: u32 = _IOC_NRSHIFT + _IOC_NRBITS; +const _IOC_SIZESHIFT: u32 = _IOC_TYPESHIFT + _IOC_TYPEBITS; +const _IOC_DIRSHIFT: u32 = _IOC_SIZESHIFT + _IOC_SIZEBITS; + +// adapted from https://github.com/torvalds/linux/blob/8a696a29c6905594e4abf78eaafcb62165ac61f1/rust/kernel/ioctl.rs + +/// Build an ioctl number, analogous to the C macro of the same name. +const fn _IOC(dir: u32, ty: u32, nr: u32, size: usize) -> u32 { + // FIXME(ctest) the `garando_syntax` crate (used by ctest2 in the CI test suite) + // cannot currently parse these `debug_assert!`s + // + // debug_assert!(dir <= _IOC_DIRMASK); + // debug_assert!(ty <= _IOC_TYPEMASK); + // debug_assert!(nr <= _IOC_NRMASK); + // debug_assert!(size <= (_IOC_SIZEMASK as usize)); + + (dir << _IOC_DIRSHIFT) + | (ty << _IOC_TYPESHIFT) + | (nr << _IOC_NRSHIFT) + | ((size as u32) << _IOC_SIZESHIFT) +} + +/// Build an ioctl number for an argumentless ioctl. +pub(crate) const fn _IO(ty: u32, nr: u32) -> u32 { + _IOC(_IOC_NONE, ty, nr, 0) +} + +/// Build an ioctl number for an read-only ioctl. +pub(crate) const fn _IOR(ty: u32, nr: u32) -> u32 { + _IOC(_IOC_READ, ty, nr, core::mem::size_of::()) +} + +/// Build an ioctl number for an write-only ioctl. +pub(crate) const fn _IOW(ty: u32, nr: u32) -> u32 { + _IOC(_IOC_WRITE, ty, nr, core::mem::size_of::()) +} + +/// Build an ioctl number for a read-write ioctl. +pub(crate) const fn _IOWR(ty: u32, nr: u32) -> u32 { + _IOC(_IOC_READ | _IOC_WRITE, ty, nr, core::mem::size_of::()) +} + f! { pub fn NLA_ALIGN(len: ::c_int) -> ::c_int { return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1); From e28e2ec99897dbed8f149e4b9ee1401f01ca8b98 Mon Sep 17 00:00:00 2001 From: arctic-alpaca <67190338+arctic-alpaca@users.noreply.github.com> Date: Wed, 20 Nov 2024 19:42:50 +0100 Subject: [PATCH 0372/1228] update/add missing AF_XDP structs & constants (backport ) (cherry picked from commit 6bc41c9ce4cb22672db71a7f54f8f733c717f31b) --- libc-test/build.rs | 36 +++++++++++++++++++++++++-- libc-test/semver/linux-gnu.txt | 5 ++++ libc-test/semver/linux-musl.txt | 5 ++++ src/unix/linux_like/linux/gnu/mod.rs | 28 +++++++++++++++++++++ src/unix/linux_like/linux/musl/mod.rs | 28 +++++++++++++++++++++ 5 files changed, 100 insertions(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 42ccecdda9534..37696ea670304 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3888,12 +3888,25 @@ fn test_linux(target: &str) { // FIXME: Requires >= 5.4 kernel headers. // Everything that uses install-musl.sh has 4.19 kernel headers. - "xdp_umem_reg" | "xdp_ring_offset" | "xdp_mmap_offsets" if musl => true, + "xdp_ring_offset" | "xdp_mmap_offsets" if musl => true, + + // FIXME: Requires >= 6.8 kernel headers. + // A field was added in 6.8. + // https://github.com/torvalds/linux/commit/341ac980eab90ac1f6c22ee9f9da83ed9604d899 + // The previous version of the struct was removed in 6.11 due to a bug. + // https://github.com/torvalds/linux/commit/32654bbd6313b4cfc82297e6634fa9725c3c900f + "xdp_umem_reg" => true, // FIXME: Requires >= 5.9 kernel headers. // Everything that uses install-musl.sh has 4.19 kernel headers. "xdp_statistics" if musl => true, + // FIXME: Requires >= 6.8 kernel headers. + "xsk_tx_metadata" + | "__c_anonymous_xsk_tx_metadata_union" + | "xsk_tx_metadata_request" + | "xsk_tx_metadata_completion" => true, + // A new field was added in kernel 5.4, this is the old version for backwards compatibility. // https://github.com/torvalds/linux/commit/77cd0d7b3f257fd0e3096b4fdcff1a7d38e99e10 "xdp_ring_offset_v1" | "xdp_mmap_offsets_v1" => true, @@ -4338,6 +4351,23 @@ fn test_linux(target: &str) { true } + // FIXME: Requires >= 6.8 kernel headers. + "XDP_UMEM_TX_SW_CSUM" + | "XDP_TXMD_FLAGS_TIMESTAMP" + | "XDP_TXMD_FLAGS_CHECKSUM" + | "XDP_TX_METADATA" + => + { + true + } + + // FIXME: Requires >= 6.11 kernel headers. + "XDP_UMEM_TX_METADATA_LEN" + => + { + true + } + // FIXME: Requires >= 6.6 kernel headers. "SYS_fchmodat2" => true, @@ -4596,7 +4626,9 @@ fn test_linux(target: &str) { (musl && struct_ == "mcontext_t" && field == "__extcontext" && loongarch64) || // FIXME(#4121): a new field was added from `f_spare` (struct_ == "statvfs" && field == "__f_spare") || - (struct_ == "statvfs64" && field == "__f_spare") + (struct_ == "statvfs64" && field == "__f_spare") || + // the `xsk_tx_metadata_union` field is an anonymous union + (struct_ == "xsk_tx_metadata" && field == "xsk_tx_metadata_union") }); cfg.skip_roundtrip(move |s| match s { diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 83dd825584cd0..87fb4e480f7f2 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -489,12 +489,17 @@ XDP_RING_NEED_WAKEUP XDP_RX_RING XDP_SHARED_UMEM XDP_STATISTICS +XDP_TXMD_FLAGS_CHECKSUM +XDP_TXMD_FLAGS_TIMESTAMP +XDP_TX_METADATA XDP_TX_RING XDP_UMEM_COMPLETION_RING XDP_UMEM_FILL_RING XDP_UMEM_PGOFF_COMPLETION_RING XDP_UMEM_PGOFF_FILL_RING XDP_UMEM_REG +XDP_UMEM_TX_METADATA_LEN +XDP_UMEM_TX_SW_CSUM XDP_UMEM_UNALIGNED_CHUNK_FLAG XDP_USE_NEED_WAKEUP XDP_USE_SG diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index 62b188dac8288..802e1477ca470 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -48,12 +48,17 @@ XDP_RING_NEED_WAKEUP XDP_RX_RING XDP_SHARED_UMEM XDP_STATISTICS +XDP_TXMD_FLAGS_CHECKSUM +XDP_TXMD_FLAGS_TIMESTAMP +XDP_TX_METADATA XDP_TX_RING XDP_UMEM_COMPLETION_RING XDP_UMEM_FILL_RING XDP_UMEM_PGOFF_COMPLETION_RING XDP_UMEM_PGOFF_FILL_RING XDP_UMEM_REG +XDP_UMEM_TX_METADATA_LEN +XDP_UMEM_TX_SW_CSUM XDP_UMEM_UNALIGNED_CHUNK_FLAG XDP_USE_NEED_WAKEUP XDP_USE_SG diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index f35a807942355..0f92ac110feae 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -401,6 +401,7 @@ s! { pub chunk_size: ::__u32, pub headroom: ::__u32, pub flags: ::__u32, + pub tx_metadata_len: ::__u32, } pub struct xdp_umem_reg_v1 { @@ -435,6 +436,15 @@ s! { pub options: ::__u32, } + pub struct xsk_tx_metadata_completion { + pub tx_timestamp: ::__u64, + } + + pub struct xsk_tx_metadata_request { + pub csum_start: ::__u16, + pub csum_offset: ::__u16, + } + pub struct iocb { pub aio_data: ::__u64, #[cfg(target_endian = "little")] @@ -656,6 +666,18 @@ s_no_extra_traits! { pub ut_addr_v6: [i32; 4], __glibc_reserved: [::c_char; 20], } + + #[allow(missing_debug_implementations)] + pub struct xsk_tx_metadata { + pub flags: ::__u64, + pub xsk_tx_metadata_union: __c_anonymous_xsk_tx_metadata_union, + } + + #[allow(missing_debug_implementations)] + pub union __c_anonymous_xsk_tx_metadata_union { + pub request: xsk_tx_metadata_request, + pub completion: xsk_tx_metadata_completion, + } } cfg_if! { @@ -1087,6 +1109,8 @@ pub const XDP_USE_NEED_WAKEUP: ::__u16 = 1 << 3; pub const XDP_USE_SG: ::__u16 = 1 << 4; pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: ::__u32 = 1 << 0; +pub const XDP_UMEM_TX_SW_CSUM: ::__u32 = 1 << 1; +pub const XDP_UMEM_TX_METADATA_LEN: ::__u32 = 1 << 2; pub const XDP_RING_NEED_WAKEUP: ::__u32 = 1 << 0; @@ -1109,7 +1133,11 @@ pub const XDP_UMEM_PGOFF_COMPLETION_RING: ::c_ulonglong = 0x180000000; pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: ::c_int = 48; pub const XSK_UNALIGNED_BUF_ADDR_MASK: ::c_ulonglong = (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1; +pub const XDP_TXMD_FLAGS_TIMESTAMP: ::__u32 = 1 << 0; +pub const XDP_TXMD_FLAGS_CHECKSUM: ::__u32 = 1 << 1; + pub const XDP_PKT_CONTD: ::__u32 = 1 << 0; +pub const XDP_TX_METADATA: ::__u32 = 1 << 1; pub const ELFOSABI_ARM_AEABI: u8 = 64; diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 3c13e3a3d131a..82d319ff08649 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -311,6 +311,7 @@ s! { pub chunk_size: ::__u32, pub headroom: ::__u32, pub flags: ::__u32, + pub tx_metadata_len: ::__u32, } pub struct xdp_umem_reg_v1 { @@ -345,6 +346,15 @@ s! { pub options: ::__u32, } + pub struct xsk_tx_metadata_completion { + pub tx_timestamp: ::__u64, + } + + pub struct xsk_tx_metadata_request { + pub csum_start: ::__u16, + pub csum_offset: ::__u16, + } + // netinet/tcp.h pub struct tcp_info { @@ -482,6 +492,18 @@ s_no_extra_traits! { pub ut_addr_v6: [::c_uint; 4], __unused: [::c_char; 20], } + + #[allow(missing_debug_implementations)] + pub struct xsk_tx_metadata { + pub flags: ::__u64, + pub xsk_tx_metadata_union: __c_anonymous_xsk_tx_metadata_union, + } + + #[allow(missing_debug_implementations)] + pub union __c_anonymous_xsk_tx_metadata_union { + pub request: xsk_tx_metadata_request, + pub completion: xsk_tx_metadata_completion, + } } cfg_if! { @@ -887,6 +909,8 @@ pub const XDP_USE_NEED_WAKEUP: ::__u16 = 1 << 3; pub const XDP_USE_SG: ::__u16 = 1 << 4; pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: ::__u32 = 1 << 0; +pub const XDP_UMEM_TX_SW_CSUM: ::__u32 = 1 << 1; +pub const XDP_UMEM_TX_METADATA_LEN: ::__u32 = 1 << 2; pub const XDP_RING_NEED_WAKEUP: ::__u32 = 1 << 0; @@ -909,7 +933,11 @@ pub const XDP_UMEM_PGOFF_COMPLETION_RING: ::c_ulonglong = 0x180000000; pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: ::c_int = 48; pub const XSK_UNALIGNED_BUF_ADDR_MASK: ::c_ulonglong = (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1; +pub const XDP_TXMD_FLAGS_TIMESTAMP: ::__u32 = 1 << 0; +pub const XDP_TXMD_FLAGS_CHECKSUM: ::__u32 = 1 << 1; + pub const XDP_PKT_CONTD: ::__u32 = 1 << 0; +pub const XDP_TX_METADATA: ::__u32 = 1 << 1; pub const _CS_V6_ENV: ::c_int = 1148; pub const _CS_V7_ENV: ::c_int = 1149; From 19464c3aaf354dde7e80458833169cb1a229869e Mon Sep 17 00:00:00 2001 From: arctic-alpaca <67190338+arctic-alpaca@users.noreply.github.com> Date: Wed, 20 Nov 2024 21:10:43 +0100 Subject: [PATCH 0373/1228] move changes to `src/unix/linux_like/linux/mod.rs` (backport ) (cherry picked from commit 88aa42a2c6a7addf3ab66dd77cbd014e0af6181c) --- libc-test/semver/linux-gnu.txt | 5 ----- libc-test/semver/linux-musl.txt | 5 ----- libc-test/semver/linux.txt | 5 +++++ src/unix/linux_like/linux/gnu/mod.rs | 27 ---------------------- src/unix/linux_like/linux/mod.rs | 32 +++++++++++++++++++++++++++ src/unix/linux_like/linux/musl/mod.rs | 27 ---------------------- 6 files changed, 37 insertions(+), 64 deletions(-) diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 87fb4e480f7f2..83dd825584cd0 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -489,17 +489,12 @@ XDP_RING_NEED_WAKEUP XDP_RX_RING XDP_SHARED_UMEM XDP_STATISTICS -XDP_TXMD_FLAGS_CHECKSUM -XDP_TXMD_FLAGS_TIMESTAMP -XDP_TX_METADATA XDP_TX_RING XDP_UMEM_COMPLETION_RING XDP_UMEM_FILL_RING XDP_UMEM_PGOFF_COMPLETION_RING XDP_UMEM_PGOFF_FILL_RING XDP_UMEM_REG -XDP_UMEM_TX_METADATA_LEN -XDP_UMEM_TX_SW_CSUM XDP_UMEM_UNALIGNED_CHUNK_FLAG XDP_USE_NEED_WAKEUP XDP_USE_SG diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index 802e1477ca470..62b188dac8288 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -48,17 +48,12 @@ XDP_RING_NEED_WAKEUP XDP_RX_RING XDP_SHARED_UMEM XDP_STATISTICS -XDP_TXMD_FLAGS_CHECKSUM -XDP_TXMD_FLAGS_TIMESTAMP -XDP_TX_METADATA XDP_TX_RING XDP_UMEM_COMPLETION_RING XDP_UMEM_FILL_RING XDP_UMEM_PGOFF_COMPLETION_RING XDP_UMEM_PGOFF_FILL_RING XDP_UMEM_REG -XDP_UMEM_TX_METADATA_LEN -XDP_UMEM_TX_SW_CSUM XDP_UMEM_UNALIGNED_CHUNK_FLAG XDP_USE_NEED_WAKEUP XDP_USE_SG diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 78dccdfb72e72..b9b20c596280f 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -3388,6 +3388,11 @@ W_EXITCODE W_STOPCODE XATTR_CREATE XATTR_REPLACE +XDP_TXMD_FLAGS_CHECKSUM +XDP_TXMD_FLAGS_TIMESTAMP +XDP_TX_METADATA +XDP_UMEM_TX_METADATA_LEN +XDP_UMEM_TX_SW_CSUM XTABS YESEXPR YESSTR diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 0f92ac110feae..7b9d84f967fd2 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -436,15 +436,6 @@ s! { pub options: ::__u32, } - pub struct xsk_tx_metadata_completion { - pub tx_timestamp: ::__u64, - } - - pub struct xsk_tx_metadata_request { - pub csum_start: ::__u16, - pub csum_offset: ::__u16, - } - pub struct iocb { pub aio_data: ::__u64, #[cfg(target_endian = "little")] @@ -666,18 +657,6 @@ s_no_extra_traits! { pub ut_addr_v6: [i32; 4], __glibc_reserved: [::c_char; 20], } - - #[allow(missing_debug_implementations)] - pub struct xsk_tx_metadata { - pub flags: ::__u64, - pub xsk_tx_metadata_union: __c_anonymous_xsk_tx_metadata_union, - } - - #[allow(missing_debug_implementations)] - pub union __c_anonymous_xsk_tx_metadata_union { - pub request: xsk_tx_metadata_request, - pub completion: xsk_tx_metadata_completion, - } } cfg_if! { @@ -1109,8 +1088,6 @@ pub const XDP_USE_NEED_WAKEUP: ::__u16 = 1 << 3; pub const XDP_USE_SG: ::__u16 = 1 << 4; pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: ::__u32 = 1 << 0; -pub const XDP_UMEM_TX_SW_CSUM: ::__u32 = 1 << 1; -pub const XDP_UMEM_TX_METADATA_LEN: ::__u32 = 1 << 2; pub const XDP_RING_NEED_WAKEUP: ::__u32 = 1 << 0; @@ -1133,11 +1110,7 @@ pub const XDP_UMEM_PGOFF_COMPLETION_RING: ::c_ulonglong = 0x180000000; pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: ::c_int = 48; pub const XSK_UNALIGNED_BUF_ADDR_MASK: ::c_ulonglong = (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1; -pub const XDP_TXMD_FLAGS_TIMESTAMP: ::__u32 = 1 << 0; -pub const XDP_TXMD_FLAGS_CHECKSUM: ::__u32 = 1 << 1; - pub const XDP_PKT_CONTD: ::__u32 = 1 << 0; -pub const XDP_TX_METADATA: ::__u32 = 1 << 1; pub const ELFOSABI_ARM_AEABI: u8 = 64; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index b1df6ebef07cb..fe1f32a907a10 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1194,6 +1194,16 @@ s! { pub chan: ::c_uint, pub rsv: [::c_uint; 5], } + + // linux/if_xdp.h + pub struct xsk_tx_metadata_completion { + pub tx_timestamp: ::__u64, + } + + pub struct xsk_tx_metadata_request { + pub csum_start: ::__u16, + pub csum_offset: ::__u16, + } } cfg_if! { @@ -1654,6 +1664,19 @@ s_no_extra_traits! { pub flags: ::c_uint, pub anonymous_2: __c_anonymous_ptp_perout_request_2, } + + // linux/if_xdp.h + #[allow(missing_debug_implementations)] + pub struct xsk_tx_metadata { + pub flags: ::__u64, + pub xsk_tx_metadata_union: __c_anonymous_xsk_tx_metadata_union, + } + + #[allow(missing_debug_implementations)] + pub union __c_anonymous_xsk_tx_metadata_union { + pub request: xsk_tx_metadata_request, + pub completion: xsk_tx_metadata_completion, + } } cfg_if! { @@ -5632,6 +5655,15 @@ pub const SCHED_FLAG_KEEP_PARAMS: ::c_int = 0x10; pub const SCHED_FLAG_UTIL_CLAMP_MIN: ::c_int = 0x20; pub const SCHED_FLAG_UTIL_CLAMP_MAX: ::c_int = 0x40; +// linux/if_xdp.h +pub const XDP_UMEM_TX_SW_CSUM: ::__u32 = 1 << 1; +pub const XDP_UMEM_TX_METADATA_LEN: ::__u32 = 1 << 2; + +pub const XDP_TXMD_FLAGS_TIMESTAMP: ::__u32 = 1 << 0; +pub const XDP_TXMD_FLAGS_CHECKSUM: ::__u32 = 1 << 1; + +pub const XDP_TX_METADATA: ::__u32 = 1 << 1; + // elf.h pub const NT_PRSTATUS: ::c_int = 1; pub const NT_PRFPREG: ::c_int = 2; diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 82d319ff08649..ec295aa57deb3 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -346,15 +346,6 @@ s! { pub options: ::__u32, } - pub struct xsk_tx_metadata_completion { - pub tx_timestamp: ::__u64, - } - - pub struct xsk_tx_metadata_request { - pub csum_start: ::__u16, - pub csum_offset: ::__u16, - } - // netinet/tcp.h pub struct tcp_info { @@ -492,18 +483,6 @@ s_no_extra_traits! { pub ut_addr_v6: [::c_uint; 4], __unused: [::c_char; 20], } - - #[allow(missing_debug_implementations)] - pub struct xsk_tx_metadata { - pub flags: ::__u64, - pub xsk_tx_metadata_union: __c_anonymous_xsk_tx_metadata_union, - } - - #[allow(missing_debug_implementations)] - pub union __c_anonymous_xsk_tx_metadata_union { - pub request: xsk_tx_metadata_request, - pub completion: xsk_tx_metadata_completion, - } } cfg_if! { @@ -909,8 +888,6 @@ pub const XDP_USE_NEED_WAKEUP: ::__u16 = 1 << 3; pub const XDP_USE_SG: ::__u16 = 1 << 4; pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: ::__u32 = 1 << 0; -pub const XDP_UMEM_TX_SW_CSUM: ::__u32 = 1 << 1; -pub const XDP_UMEM_TX_METADATA_LEN: ::__u32 = 1 << 2; pub const XDP_RING_NEED_WAKEUP: ::__u32 = 1 << 0; @@ -933,11 +910,7 @@ pub const XDP_UMEM_PGOFF_COMPLETION_RING: ::c_ulonglong = 0x180000000; pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: ::c_int = 48; pub const XSK_UNALIGNED_BUF_ADDR_MASK: ::c_ulonglong = (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1; -pub const XDP_TXMD_FLAGS_TIMESTAMP: ::__u32 = 1 << 0; -pub const XDP_TXMD_FLAGS_CHECKSUM: ::__u32 = 1 << 1; - pub const XDP_PKT_CONTD: ::__u32 = 1 << 0; -pub const XDP_TX_METADATA: ::__u32 = 1 << 1; pub const _CS_V6_ENV: ::c_int = 1148; pub const _CS_V7_ENV: ::c_int = 1149; From 1ae3ff23df2c1f59e6f1ee094ca9ed5d82fc9455 Mon Sep 17 00:00:00 2001 From: Pedro Tammela Date: Thu, 12 Sep 2024 15:13:07 -0300 Subject: [PATCH 0374/1228] ci: update musl headers to Linux 6.6 Update the musl headers in CI to use alpine-linux instead of sabotage-linux. Alpine also uses musl but follows the linux stable releases, providing more up-to-date headers. Signed-off-by: Pedro Tammela (backport ) (cherry picked from commit acc75e75f119483a56fb46e06951004e8cfa5594) Signed-off-by: Trevor Gross --- .../aarch64-unknown-linux-musl/Dockerfile | 2 +- .../arm-unknown-linux-musleabihf/Dockerfile | 2 +- ci/docker/i686-unknown-linux-musl/Dockerfile | 4 +- ci/docker/s390x-unknown-linux-musl/Dockerfile | 3 +- .../x86_64-unknown-linux-musl/Dockerfile | 3 +- ci/install-musl.sh | 66 ++++++++++++++++--- 6 files changed, 66 insertions(+), 14 deletions(-) diff --git a/ci/docker/aarch64-unknown-linux-musl/Dockerfile b/ci/docker/aarch64-unknown-linux-musl/Dockerfile index 65932bd48cfac..053ed837b2e7c 100644 --- a/ci/docker/aarch64-unknown-linux-musl/Dockerfile +++ b/ci/docker/aarch64-unknown-linux-musl/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:24.10 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc make libc6-dev git curl ca-certificates \ - gcc-aarch64-linux-gnu qemu-user + gcc-aarch64-linux-gnu qemu-user xz-utils patch rsync COPY install-musl.sh / RUN /install-musl.sh aarch64 diff --git a/ci/docker/arm-unknown-linux-musleabihf/Dockerfile b/ci/docker/arm-unknown-linux-musleabihf/Dockerfile index 7ed23611c351e..c6bd116b6f1cb 100644 --- a/ci/docker/arm-unknown-linux-musleabihf/Dockerfile +++ b/ci/docker/arm-unknown-linux-musleabihf/Dockerfile @@ -5,7 +5,7 @@ RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ /etc/apt/sources.list && \ apt-get update && apt-get install -y --no-install-recommends \ gcc make libc6-dev git curl ca-certificates \ - gcc-arm-linux-gnueabihf qemu-user + gcc-arm-linux-gnueabihf qemu-user xz-utils patch rsync COPY install-musl.sh / RUN /install-musl.sh arm diff --git a/ci/docker/i686-unknown-linux-musl/Dockerfile b/ci/docker/i686-unknown-linux-musl/Dockerfile index ea5e2e963910b..287f325e9151f 100644 --- a/ci/docker/i686-unknown-linux-musl/Dockerfile +++ b/ci/docker/i686-unknown-linux-musl/Dockerfile @@ -1,12 +1,12 @@ FROM ubuntu:23.10 - # FIXME(time): we are using an EOL release because 24.04 changes to 64-bit time RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ /etc/apt/sources.list && \ dpkg --add-architecture i386 && \ apt-get update && apt-get install -y --no-install-recommends \ - gcc-multilib make libc6-dev git curl ca-certificates libc6-i386 + gcc-multilib make libc6-dev git curl ca-certificates libc6-i386 \ + xz-utils patch rsync COPY install-musl.sh / RUN /install-musl.sh i686 diff --git a/ci/docker/s390x-unknown-linux-musl/Dockerfile b/ci/docker/s390x-unknown-linux-musl/Dockerfile index 4e202d1905902..2d4ea759c5fbf 100644 --- a/ci/docker/s390x-unknown-linux-musl/Dockerfile +++ b/ci/docker/s390x-unknown-linux-musl/Dockerfile @@ -4,7 +4,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ curl ca-certificates \ gcc \ gcc-s390x-linux-gnu \ - qemu-user + qemu-user \ + xz-utils patch rsync COPY install-musl.sh / RUN /install-musl.sh s390x diff --git a/ci/docker/x86_64-unknown-linux-musl/Dockerfile b/ci/docker/x86_64-unknown-linux-musl/Dockerfile index d03df5b4f54ce..5c1b4b177880c 100644 --- a/ci/docker/x86_64-unknown-linux-musl/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-musl/Dockerfile @@ -2,7 +2,8 @@ FROM ubuntu:24.10 RUN apt-get update RUN apt-get install -y --no-install-recommends \ - gcc make libc6-dev git curl ca-certificates + gcc make libc6-dev git curl ca-certificates \ + xz-utils patch rsync COPY install-musl.sh / RUN /install-musl.sh x86_64 diff --git a/ci/install-musl.sh b/ci/install-musl.sh index 5f8c681fa6678..1cf1ec6500cde 100755 --- a/ci/install-musl.sh +++ b/ci/install-musl.sh @@ -64,13 +64,63 @@ esac cd .. rm -rf "$musl" -# Download, configure, build, and install musl-sanitized kernel headers: -kernel_header_ver="4.19.88" -curl --retry 5 -L \ - "https://github.com/sabotage-linux/kernel-headers/archive/v${kernel_header_ver}.tar.gz" | - tar xzf - +# Download, configure, build, and install musl-sanitized kernel headers. + +# Alpine follows stable kernel releases, 3.20 uses Linux 6.6 headers. +alpine_version=3.20 +alpine_git=https://gitlab.alpinelinux.org/alpine/aports + +# This routine piggybacks on: https://git.alpinelinux.org/aports/tree/main/linux-headers?h=3.20-stable +git clone -n --depth=1 --filter=tree:0 -b "${alpine_version}-stable" "$alpine_git" ( - cd "kernel-headers-${kernel_header_ver}" - make ARCH="${kernel_arch}" prefix="/musl-${musl_arch}" install -j4 + cd aports + git sparse-checkout set --no-cone main/linux-headers + git checkout + + cd main/linux-headers + cp APKBUILD APKBUILD.vars + cat <<- EOF >> APKBUILD.vars + echo "\$source" > alpine-source + echo "\$_kernver" > alpine-kernver + echo "\$pkgver" > alpine-pkgver + echo "\$sha512sums" > alpine-sha512sums +EOF + + # Retrieve all the variables + sh APKBUILD.vars + + cat APKBUILD.vars + + kernel_version=$(tr -d "[:space:]" < alpine-kernver) + pkg_version=$(tr -d "[:space:]" < alpine-pkgver) + + urls=$(grep -o 'https.*' alpine-source) + kernel="" + patch="" + for url in $urls; do + base=$(basename "$url") + curl --retry 5 -L "$url" > "$base" + case $base in + linux-*) kernel=$base;; + patch-*) patch=$base;; + esac + # Check if file is known + grep -o "$base" alpine-sha512sums + done + + # Double check checksums + sha512sum -c alpine-sha512sums + + # Extract, apply patches, compile and install headers + tar -xf "$kernel" + cd "linux-$kernel_version" + if [ "$pkg_version" != "$kernel_version" ]; then + unxz -c < "../$patch" | patch -p1 + fi + for p in ../*.patch; do + patch -p1 < "$p" + done + make headers_install ARCH="${kernel_arch}" INSTALL_HDR_PATH="/musl-${musl_arch}" ) -rm -rf kernel-headers-${kernel_header_ver} + +rm -rf aports From 46316a7871bbb69ef913cd2d7fe3660264e9bf6d Mon Sep 17 00:00:00 2001 From: Pedro Tammela Date: Fri, 13 Sep 2024 12:01:21 -0300 Subject: [PATCH 0375/1228] ci: clean up musl exceptions Now that we have Linux 6.6 we can clean up some of the test exceptions. Not all of them can be removed, so the comments are updated if needed. Signed-off-by: Pedro Tammela (backport ) (cherry picked from commit 55f945132b70208bdeb1fea2e552cb987929fe5b) Signed-off-by: Trevor Gross --- libc-test/build.rs | 164 ++++----------------------------------------- 1 file changed, 12 insertions(+), 152 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 37696ea670304..50bc16813086a 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3576,8 +3576,7 @@ fn test_linux(target: &str) { [gnu]: "linux/aio_abi.h", "linux/can.h", "linux/can/raw.h", - // FIXME: requires kernel headers >= 5.4.1. - [!musl]: "linux/can/j1939.h", + "linux/can/j1939.h", "linux/dccp.h", "linux/errqueue.h", "linux/falloc.h", @@ -3602,8 +3601,7 @@ fn test_linux(target: &str) { "linux/mempolicy.h", "linux/mman.h", "linux/module.h", - // FIXME: requires kernel headers >= 5.1. - [!musl]: "linux/mount.h", + "linux/mount.h", "linux/net_tstamp.h", "linux/netfilter/nfnetlink.h", "linux/netfilter/nfnetlink_log.h", @@ -3615,11 +3613,10 @@ fn test_linux(target: &str) { "linux/netfilter_ipv6.h", "linux/netfilter_ipv6/ip6_tables.h", "linux/netlink.h", - // FIXME: requires Linux >= 5.6: - [!musl]: "linux/openat2.h", + "linux/openat2.h", // FIXME: some items require Linux >= 5.6: "linux/ptp_clock.h", - [!musl]: "linux/ptrace.h", + "linux/ptrace.h", "linux/quota.h", "linux/random.h", "linux/reboot.h", @@ -3637,7 +3634,7 @@ fn test_linux(target: &str) { "sys/fanotify.h", // is not present on uclibc [!uclibc]: "sys/auxv.h", - [gnu]: "linux/close_range.h", + [gnu || musl]: "linux/close_range.h", } // note: aio.h must be included before sys/mount.h @@ -3728,11 +3725,6 @@ fn test_linux(target: &str) { // specific type. "Ioctl" => true, - // FIXME: requires >= 5.4.1 kernel headers - "pgn_t" if musl => true, - "priority_t" if musl => true, - "name_t" if musl => true, - // FIXME: "'__uint128' undeclared" in C "__uint128" => true, @@ -3751,22 +3743,6 @@ fn test_linux(target: &str) { if ty.starts_with("__c_anonymous_") { return true; } - // FIXME: musl CI has old headers - if musl && ty.starts_with("uinput_") { - return true; - } - if musl && ty == "seccomp_notif" { - return true; - } - if musl && ty == "seccomp_notif_addfd" { - return true; - } - if musl && ty == "seccomp_notif_resp" { - return true; - } - if musl && ty == "seccomp_notif_sizes" { - return true; - } // FIXME: CI has old headers if ty == "ptp_sys_offset_extended" { @@ -3850,12 +3826,6 @@ fn test_linux(target: &str) { // Might differ between kernel versions "open_how" => true, - // FIXME: requires >= 5.4.1 kernel headers - "j1939_filter" if musl => true, - - // FIXME: requires >= 5.4 kernel headers - "sockaddr_can" if musl => true, - "sctp_initmsg" | "sctp_sndrcvinfo" | "sctp_sndinfo" | "sctp_rcvinfo" | "sctp_nxtinfo" | "sctp_prinfo" | "sctp_authinfo" => true, @@ -4020,7 +3990,7 @@ fn test_linux(target: &str) { return true; } // FIXME: Requires >= 6.3 kernel headers - if name == "MFD_NOEXEC_SEAL" || name == "MFD_EXEC" { + if loongarch64 && (name == "MFD_NOEXEC_SEAL" || name == "MFD_EXEC") { return true; } } @@ -4110,7 +4080,7 @@ fn test_linux(target: &str) { if sparc64 => true, // FIXME: Not currently available in headers on ARM and musl. - "NETLINK_GET_STRICT_CHK" if arm || musl => true, + "NETLINK_GET_STRICT_CHK" if arm => true, // kernel constants not available in uclibc 1.0.34 | "EXTPROC" @@ -4179,62 +4149,14 @@ fn test_linux(target: &str) { | "MINSIGSTKSZ" if gnu => true, - // FIXME: Linux >= 5.10: - // https://github.com/torvalds/linux/commit/d25e2e9388eda61b6e298585024ee3355f50c493 - "NF_INET_INGRESS" if musl => true, - // FIXME: Linux >= 5.16: // https://github.com/torvalds/linux/commit/42df6e1d221dddc0f2acf2be37e68d553ad65f96 - "NF_NETDEV_EGRESS" if musl || sparc64 => true, + "NF_NETDEV_EGRESS" if sparc64 => true, // value changed - "NF_NETDEV_NUMHOOKS" if musl || sparc64 => true, - - // FIXME: requires Linux >= 5.6: - | "RESOLVE_BENEATH" - | "RESOLVE_CACHED" - | "RESOLVE_IN_ROOT" - | "RESOLVE_NO_MAGICLINKS" - | "RESOLVE_NO_SYMLINKS" - | "RESOLVE_NO_XDEV" if musl => true, - - // FIXME: requires Linux >= 5.4: - | "CAN_J1939" - | "CAN_NPROTO" if musl => true, - - // FIXME: requires Linux >= 5.6 - "GRND_INSECURE" if musl => true, - - // FIXME: requires Linux >= 5.7: - "MREMAP_DONTUNMAP" if musl => true, + "NF_NETDEV_NUMHOOKS" if sparc64 => true, // FIXME: requires Linux >= v5.8 - "IF_LINK_MODE_TESTING" if musl || sparc64 => true, - - // FIXME: Requires more recent kernel headers (5.9 / 5.11): - | "CLOSE_RANGE_UNSHARE" - | "CLOSE_RANGE_CLOEXEC" if musl => true, - - // FIXME: requires Linux >= 5.12: - "MPOL_F_NUMA_BALANCING" if musl => true, - - // FIXME: Requires more recent kernel headers - | "NFNL_SUBSYS_COUNT" // bumped in v5.14 - | "NFNL_SUBSYS_HOOK" // v5.14+ - | "NFULA_VLAN" // v5.4+ - | "NFULA_L2HDR" // v5.4+ - | "NFULA_VLAN_PROTO" // v5.4+ - | "NFULA_VLAN_TCI" // v5.4+ - | "NFULA_VLAN_UNSPEC" // v5.4+ - | "RTNLGRP_NEXTHOP" // linux v5.3+ - | "RTNLGRP_BRVLAN" // linux v5.6+ - if musl => true, - - | "MADV_COLD" - | "MADV_PAGEOUT" - | "MADV_POPULATE_READ" - | "MADV_POPULATE_WRITE" - if musl => true, - "CLONE_CLEAR_SIGHAND" | "CLONE_INTO_CGROUP" => true, + "IF_LINK_MODE_TESTING" if sparc64 => true, // kernel 6.1 minimum "MADV_COLLAPSE" => true, @@ -4253,9 +4175,6 @@ fn test_linux(target: &str) { => true, "SCTP_FUTURE_ASSOC" | "SCTP_CURRENT_ASSOC" | "SCTP_ALL_ASSOC" | "SCTP_PEER_ADDR_THLDS_V2" => true, // linux 5.5+ - // FIXME: Requires more recent kernel headers - "HWTSTAMP_TX_ONESTEP_P2P" if musl => true, // linux v5.6+ - // kernel 6.5 minimum "MOVE_MOUNT_BENEATH" => true, // FIXME: Requires linux 6.1 @@ -4277,10 +4196,8 @@ fn test_linux(target: &str) { | "FAN_INFO" // linux v5.16+ => true, - // FIXME: Requires linux 5.15+ - "FAN_REPORT_PIDFD" if musl => true, - - // FIXME: Requires linux 5.9+ + // musl doesn't use in + "FAN_REPORT_PIDFD" | "FAN_REPORT_DIR_FID" | "FAN_REPORT_NAME" | "FAN_REPORT_DFID_NAME" @@ -4294,55 +4211,6 @@ fn test_linux(target: &str) { // FIXME: Requires linux 6.5 "NFT_MSG_MAX" => true, - // FIXME: Requires >= 5.1 kernel headers. - // Everything that uses install-musl.sh has 4.19 kernel headers. - "TLS_1_3_VERSION" - | "TLS_1_3_VERSION_MAJOR" - | "TLS_1_3_VERSION_MINOR" - | "TLS_CIPHER_AES_GCM_256" - | "TLS_CIPHER_AES_GCM_256_IV_SIZE" - | "TLS_CIPHER_AES_GCM_256_KEY_SIZE" - | "TLS_CIPHER_AES_GCM_256_SALT_SIZE" - | "TLS_CIPHER_AES_GCM_256_TAG_SIZE" - | "TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE" - if (aarch64 || arm || i686 || s390x || x86_64) && musl => - { - true - } - - // FIXME: Requires >= 5.11 kernel headers. - // Everything that uses install-musl.sh has 4.19 kernel headers. - "TLS_CIPHER_CHACHA20_POLY1305" - | "TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE" - | "TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE" - | "TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE" - | "TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE" - | "TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE" - if (aarch64 || arm || i686 || s390x || x86_64) && musl => - { - true - } - - // FIXME: Requires >= 5.3 kernel headers. - // Everything that uses install-musl.sh has 4.19 kernel headers. - "XDP_OPTIONS_ZEROCOPY" | "XDP_OPTIONS" - if musl => - { - true - } - - // FIXME: Requires >= 5.4 kernel headers. - // Everything that uses install-musl.sh has 4.19 kernel headers. - "XSK_UNALIGNED_BUF_OFFSET_SHIFT" - | "XSK_UNALIGNED_BUF_ADDR_MASK" - | "XDP_UMEM_UNALIGNED_CHUNK_FLAG" - | "XDP_RING_NEED_WAKEUP" - | "XDP_USE_NEED_WAKEUP" - if musl => - { - true - } - // FIXME: Requires >= 6.6 kernel headers. "XDP_USE_SG" | "XDP_PKT_CONTD" @@ -4401,14 +4269,6 @@ fn test_linux(target: &str) { | "PF_MCE_EARLY" | "PF_MEMALLOC_PIN" => true, - "SCHED_FLAG_KEEP_POLICY" - | "SCHED_FLAG_KEEP_PARAMS" - | "SCHED_FLAG_UTIL_CLAMP_MIN" - | "SCHED_FLAG_UTIL_CLAMP_MAX" - | "SCHED_FLAG_KEEP_ALL" - | "SCHED_FLAG_UTIL_CLAMP" - | "SCHED_FLAG_ALL" if musl => true, // Needs more recent linux headers. - // FIXME: Requires >= 6.9 kernel headers. "EPIOCSPARAMS" | "EPIOCGPARAMS" => true, From 8ffe0fa7ee12880c2404fcc1c31a1c210960a737 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 25 Nov 2024 05:04:49 -0500 Subject: [PATCH 0376/1228] ci: Add back `CLONE_CLEAR_SIGHAND` and `CLONE_INTO_CGROUP` skips This bug was fixed in e9abac9ac2 ("Set CLONE_CLEAR_SIGHAND and CLONE_INTO_CGROUP to a large enough type") and these checks were removed in acc75e75f1 ("ci: update musl headers to 6.6"). However, we cannot backport the fix, so add back the override here. --- libc-test/build.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 50bc16813086a..910021c140425 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4158,6 +4158,9 @@ fn test_linux(target: &str) { // FIXME: requires Linux >= v5.8 "IF_LINK_MODE_TESTING" if sparc64 => true, + // DIFF(main): fixed in 1.0 with e9abac9ac2 + "CLONE_CLEAR_SIGHAND" | "CLONE_INTO_CGROUP" => true, + // kernel 6.1 minimum "MADV_COLLAPSE" => true, From d330ee2fd10c8110b65806bed8a010f093688651 Mon Sep 17 00:00:00 2001 From: Folkert de Vries Date: Wed, 20 Nov 2024 21:23:26 +0100 Subject: [PATCH 0377/1228] add `ptp_clock_caps` (backport ) (cherry picked from commit 38318cdddf26419d60ce35eee46ec855a187e8ff) --- libc-test/build.rs | 13 +++++++++++-- libc-test/semver/linux.txt | 2 ++ src/unix/linux_like/linux/mod.rs | 19 +++++++++++++++---- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 910021c140425..8a353e5d4a5fb 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3956,7 +3956,8 @@ fn test_linux(target: &str) { return true; } // FIXME: Requires >= 5.4 kernel headers - if name == "PTP_ENABLE_PPS2" + if name == "PTP_CLOCK_GETCAPS2" + || name == "PTP_ENABLE_PPS2" || name == "PTP_EXTTS_REQUEST2" || name == "PTP_PEROUT_REQUEST2" || name == "PTP_PIN_GETFUNC2" @@ -4410,7 +4411,11 @@ fn test_linux(target: &str) { // `anonymous_1` is an anonymous union (struct_ == "ptp_perout_request" && field == "anonymous_1") || // `anonymous_2` is an anonymous union - (struct_ == "ptp_perout_request" && field == "anonymous_2") + (struct_ == "ptp_perout_request" && field == "anonymous_2") || + // FIXME(linux): `adjust_phase` requires >= 5.7 kernel headers + // FIXME(linux): `max_phase_adj` requires >= 5.19 kernel headers + // the rsv field shrunk when those fields got added, so is omitted too + (struct_ == "ptp_clock_caps" && (loongarch64 || sparc64) && (["adjust_phase", "max_phase_adj", "rsv"].contains(&field))) }); cfg.volatile_item(|i| { @@ -4485,6 +4490,10 @@ fn test_linux(target: &str) { (struct_ == "ptp_perout_request" && field == "anonymous_1") || // `anonymous_2` is an anonymous union (struct_ == "ptp_perout_request" && field == "anonymous_2") || + // FIXME(linux): `adjust_phase` requires >= 5.7 kernel headers + // FIXME(linux): `max_phase_adj` requires >= 5.19 kernel headers + // the rsv field shrunk when those fields got added, so is omitted too + (struct_ == "ptp_clock_caps" && (loongarch64 || sparc64) && (["adjust_phase", "max_phase_adj", "rsv"].contains(&field))) || // invalid application of 'sizeof' to incomplete type 'long unsigned int[]' (musl && struct_ == "mcontext_t" && field == "__extcontext" && loongarch64) || // FIXME(#4121): a new field was added from `f_spare` diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index b9b20c596280f..46022ff35f304 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2252,6 +2252,7 @@ PTHREAD_PRIO_PROTECT PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_SHARED PTHREAD_STACK_MIN +PTP_CLOCK_GETCAPS2 PTP_ENABLE_PPS PTP_ENABLE_PPS2 PTP_EXTTS_REQUEST @@ -3946,6 +3947,7 @@ pthread_spin_lock pthread_spin_trylock pthread_spin_unlock pthread_spinlock_t +ptp_clock_caps ptp_clock_time ptp_extts_event ptp_extts_request diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index fe1f32a907a10..4e8517bc8238c 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1195,6 +1195,19 @@ s! { pub rsv: [::c_uint; 5], } + pub struct ptp_clock_caps { + pub max_adj: ::c_int, + pub n_alarm: ::c_int, + pub n_ext_ts: ::c_int, + pub n_per_out: ::c_int, + pub pps: ::c_int, + pub n_pins: ::c_int, + pub cross_timestamping: ::c_int, + pub adjust_phase: ::c_int, + pub max_phase_adj: ::c_int, + pub rsv: [::c_int; 11], + } + // linux/if_xdp.h pub struct xsk_tx_metadata_completion { pub tx_timestamp: ::__u64, @@ -4606,8 +4619,7 @@ pub const PTP_MAX_SAMPLES: ::c_uint = 25; // Maximum allowed offset measurement const PTP_CLK_MAGIC: u32 = b'=' as u32; -// FIXME: needs the ptp_clock_caps struct -// pub const PTP_CLOCK_GETCAPS: ::c_uint = _IOR::(PTP_CLK_MAGIC, 1); +pub const PTP_CLOCK_GETCAPS: ::c_uint = _IOR::(PTP_CLK_MAGIC, 1); pub const PTP_EXTTS_REQUEST: ::c_uint = _IOW::(PTP_CLK_MAGIC, 2); pub const PTP_PEROUT_REQUEST: ::c_uint = _IOW::(PTP_CLK_MAGIC, 3); pub const PTP_ENABLE_PPS: ::c_uint = _IOW::<::c_int>(PTP_CLK_MAGIC, 4); @@ -4617,8 +4629,7 @@ pub const PTP_PIN_SETFUNC: ::c_uint = _IOW::(PTP_CLK_MAGIC, 7); pub const PTP_SYS_OFFSET_PRECISE: ::c_uint = _IOWR::(PTP_CLK_MAGIC, 8); pub const PTP_SYS_OFFSET_EXTENDED: ::c_uint = _IOWR::(PTP_CLK_MAGIC, 9); -// FIXME: needs the ptp_clock_caps struct -// pub const PTP_CLOCK_GETCAPS2: ::c_uint = _IOR::(PTP_CLK_MAGIC, 10); +pub const PTP_CLOCK_GETCAPS2: ::c_uint = _IOR::(PTP_CLK_MAGIC, 10); pub const PTP_EXTTS_REQUEST2: ::c_uint = _IOW::(PTP_CLK_MAGIC, 11); pub const PTP_PEROUT_REQUEST2: ::c_uint = _IOW::(PTP_CLK_MAGIC, 12); pub const PTP_ENABLE_PPS2: ::c_uint = _IOW::<::c_int>(PTP_CLK_MAGIC, 13); From 2c490f1eaacfecf26451ad3a0d0307d9152c7b3e Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Fri, 15 Nov 2024 21:42:40 +0000 Subject: [PATCH 0378/1228] Add struct and constants for mount_setattr syscall (backport ) (cherry picked from commit d691ee7ce1d40007d182c243e08a02fdf6611caf) --- libc-test/semver/linux.txt | 13 +++++++++++++ src/unix/linux_like/linux/mod.rs | 24 ++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 46022ff35f304..af9e03cfdf912 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1661,6 +1661,18 @@ MON_6 MON_7 MON_8 MON_9 +MOUNT_ATTR_IDMAP +MOUNT_ATTR_NOATIME +MOUNT_ATTR_NODEV +MOUNT_ATTR_NODIRATIME +MOUNT_ATTR_NOEXEC +MOUNT_ATTR_NOSUID +MOUNT_ATTR_NOSYMFOLLOW +MOUNT_ATTR_RDONLY +MOUNT_ATTR_RELATIME +MOUNT_ATTR_SIZE_VER0 +MOUNT_ATTR_STRICTATIME +MOUNT_ATTR__ATIME MREMAP_FIXED MREMAP_MAYMOVE MSC_CNT @@ -3819,6 +3831,7 @@ mmap64 mmsghdr mntent mount +mount_attr mq_attr mq_close mq_getattr diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 4e8517bc8238c..02a66960f56f6 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1217,6 +1217,15 @@ s! { pub csum_start: ::__u16, pub csum_offset: ::__u16, } + + // linux/mount.h + + pub struct mount_attr { + pub attr_set: ::__u64, + pub attr_clr: ::__u64, + pub propagation: ::__u64, + pub userns_fd: ::__u64, + } } cfg_if! { @@ -5675,6 +5684,21 @@ pub const XDP_TXMD_FLAGS_CHECKSUM: ::__u32 = 1 << 1; pub const XDP_TX_METADATA: ::__u32 = 1 << 1; +// linux/mount.h +pub const MOUNT_ATTR_RDONLY: ::__u64 = 0x00000001; +pub const MOUNT_ATTR_NOSUID: ::__u64 = 0x00000002; +pub const MOUNT_ATTR_NODEV: ::__u64 = 0x00000004; +pub const MOUNT_ATTR_NOEXEC: ::__u64 = 0x00000008; +pub const MOUNT_ATTR__ATIME: ::__u64 = 0x00000070; +pub const MOUNT_ATTR_RELATIME: ::__u64 = 0x00000000; +pub const MOUNT_ATTR_NOATIME: ::__u64 = 0x00000010; +pub const MOUNT_ATTR_STRICTATIME: ::__u64 = 0x00000020; +pub const MOUNT_ATTR_NODIRATIME: ::__u64 = 0x00000080; +pub const MOUNT_ATTR_IDMAP: ::__u64 = 0x00100000; +pub const MOUNT_ATTR_NOSYMFOLLOW: ::__u64 = 0x00200000; + +pub const MOUNT_ATTR_SIZE_VER0: ::c_int = 32; + // elf.h pub const NT_PRSTATUS: ::c_int = 1; pub const NT_PRFPREG: ::c_int = 2; From 0d0a74562cce4dc263f631d05953cb2f680941f1 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 22 Nov 2024 21:41:10 -0500 Subject: [PATCH 0379/1228] style: Allow rustfmt to organize imports Add `group_imports` and `import_granularity` to our rustfmt config. These values are the same as in rust-lang/rust. (backport ) (cherry picked from commit 0456dcb747b0b579119613b9e0ae7568bf499e83) --- rustfmt.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rustfmt.toml b/rustfmt.toml index 018747d94867a..de0fc5ecc0166 100644 --- a/rustfmt.toml +++ b/rustfmt.toml @@ -1,2 +1,4 @@ -error_on_line_overflow = true edition = "2021" +error_on_line_overflow = true +group_imports = "StdExternalCrate" +imports_granularity = "Module" From da089f7864cefdb8a21d870d907bdc1869b325c0 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 25 Nov 2024 04:39:53 -0500 Subject: [PATCH 0380/1228] style: Run `cargo fmt` with the new configuration `libc-0.2` version of 236e0697ef796b263c751321ce68b15ca137d09f from [1] (not a direct cherry pick). [1]: https://github.com/rust-lang/libc/pull/4136 --- build.rs | 3 +-- libc-test/test/cmsg.rs | 3 ++- src/lib.rs | 3 +-- src/unix/linux_like/emscripten/lfs64.rs | 3 +-- src/unix/linux_like/linux/musl/lfs64.rs | 3 +-- src/unix/nuttx/mod.rs | 6 +----- src/unix/solarish/compat.rs | 1 + src/unix/solarish/illumos.rs | 11 ++++------- src/unix/solarish/solaris.rs | 11 ++++------- src/vxworks/mod.rs | 3 ++- src/wasi/mod.rs | 3 ++- 11 files changed, 20 insertions(+), 30 deletions(-) diff --git a/build.rs b/build.rs index 8b599183f5ec9..fe3b65e44b786 100644 --- a/build.rs +++ b/build.rs @@ -1,6 +1,5 @@ -use std::env; use std::process::{Command, Output}; -use std::str; +use std::{env, str}; // List of cfgs this build script is allowed to set. The list is needed to support check-cfg, as we // need to know all the possible cfgs that this script will set. If you need to set another cfg diff --git a/libc-test/test/cmsg.rs b/libc-test/test/cmsg.rs index 52bf9830212c2..130b143cf9dbd 100644 --- a/libc-test/test/cmsg.rs +++ b/libc-test/test/cmsg.rs @@ -4,9 +4,10 @@ #[cfg(unix)] mod t { - use libc::{self, c_uchar, c_uint, c_void, cmsghdr, msghdr}; use std::mem; + use libc::{self, c_uchar, c_uint, c_void, cmsghdr, msghdr}; + extern "C" { pub fn cmsg_firsthdr(msgh: *const msghdr) -> *mut cmsghdr; // see below diff --git a/src/lib.rs b/src/lib.rs index 8af17cb0cb582..b0b25de44e5d8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -47,6 +47,7 @@ cfg_if! { use core::clone::Clone; #[allow(unused_imports)] use core::ffi; +pub use core::ffi::c_void; #[allow(unused_imports)] use core::fmt; #[allow(unused_imports)] @@ -62,8 +63,6 @@ use core::num; #[allow(unused_imports)] use core::option::Option; -pub use core::ffi::c_void; - cfg_if! { if #[cfg(windows)] { mod fixed_width_ints; diff --git a/src/unix/linux_like/emscripten/lfs64.rs b/src/unix/linux_like/emscripten/lfs64.rs index 1616cc90494be..c4cdfb849a2ff 100644 --- a/src/unix/linux_like/emscripten/lfs64.rs +++ b/src/unix/linux_like/emscripten/lfs64.rs @@ -106,8 +106,7 @@ pub unsafe extern "C" fn mmap64( // // These aliases are mostly fine though, neither function takes a LFS64-namespaced type as an // argument, nor do their names clash with any declared types. -pub use open as open64; -pub use openat as openat64; +pub use {open as open64, openat as openat64}; #[inline] pub unsafe extern "C" fn posix_fadvise64( diff --git a/src/unix/linux_like/linux/musl/lfs64.rs b/src/unix/linux_like/linux/musl/lfs64.rs index 27c1d25836d68..6d1f368695a6b 100644 --- a/src/unix/linux_like/linux/musl/lfs64.rs +++ b/src/unix/linux_like/linux/musl/lfs64.rs @@ -114,8 +114,7 @@ pub unsafe extern "C" fn mmap64( // // These aliases are mostly fine though, neither function takes a LFS64-namespaced type as an // argument, nor do their names clash with any declared types. -pub use open as open64; -pub use openat as openat64; +pub use {open as open64, openat as openat64}; #[inline] pub unsafe extern "C" fn posix_fadvise64( diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index c5eb030c9c2bb..200a795ff87ea 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -1,8 +1,4 @@ -use c_void; -use in6_addr; -use in_addr_t; -use timespec; -use DIR; +use {c_void, in6_addr, in_addr_t, timespec, DIR}; pub type nlink_t = u16; pub type ino_t = u16; diff --git a/src/unix/solarish/compat.rs b/src/unix/solarish/compat.rs index cbf955a31edaa..72d1bb436794e 100644 --- a/src/unix/solarish/compat.rs +++ b/src/unix/solarish/compat.rs @@ -2,6 +2,7 @@ // Solaris, but often needed by other crates. use core::cmp::min; + use unix::solarish::*; const PTEM: &[u8] = b"ptem\0"; diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index 16a3ba6661e65..cfdb2d16df034 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -1,10 +1,7 @@ -use exit_status; -use NET_MAC_AWARE; -use NET_MAC_AWARE_INHERIT; -use PRIV_AWARE_RESET; -use PRIV_DEBUG; -use PRIV_PFEXEC; -use PRIV_XPOLICY; +use { + exit_status, NET_MAC_AWARE, NET_MAC_AWARE_INHERIT, PRIV_AWARE_RESET, PRIV_DEBUG, PRIV_PFEXEC, + PRIV_XPOLICY, +}; pub type lgrp_rsrc_t = ::c_int; pub type lgrp_affinity_t = ::c_int; diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index 8f271b71d4ead..a2a7b1a60e6f3 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -1,10 +1,7 @@ -use exit_status; -use NET_MAC_AWARE; -use NET_MAC_AWARE_INHERIT; -use PRIV_AWARE_RESET; -use PRIV_DEBUG; -use PRIV_PFEXEC; -use PRIV_XPOLICY; +use { + exit_status, NET_MAC_AWARE, NET_MAC_AWARE_INHERIT, PRIV_AWARE_RESET, PRIV_DEBUG, PRIV_PFEXEC, + PRIV_XPOLICY, +}; pub type door_attr_t = ::c_uint; pub type door_id_t = ::c_ulonglong; diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 4c4f6c1b4de2c..8aaa6171f2cca 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -1,9 +1,10 @@ //! Interface to VxWorks C library -use c_void; use core::mem::size_of; use core::ptr::null_mut; +use c_void; + #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum DIR {} impl ::Copy for DIR {} diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index 0e9f6377cf083..e8580048dfed0 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -5,9 +5,10 @@ use core::iter::Iterator; -use super::{Send, Sync}; use c_void; +use super::{Send, Sync}; + pub type c_char = i8; pub type c_uchar = u8; pub type c_schar = i8; From c1cdf7b0dc519f4392d2a9370657c0c297c46f36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Wed, 16 Oct 2024 13:48:23 +0200 Subject: [PATCH 0381/1228] linux_like: Unify statx definitions The statx system call and corresponding constants are defined by the Linux kernel and don't depend on the libc or architecture. The only difference is whether a libc exports the statx syscall wrapper or not. We can thus unify the statx definitions for all Linux "like" platforms: GNU (glibc), Android (bionic), and (in a later commit) musl. Plain u64 (or uint64_t in C) can't be used for the statx fields because bionic defines them as __u64, and provides incompatible definitions of uint64_t and __u64. (backport ) (cherry picked from commit e46bbe467087e5e6fdfdf480532594296c993d4f) --- src/unix/linux_like/android/mod.rs | 40 ------------- src/unix/linux_like/linux/gnu/mod.rs | 71 ---------------------- src/unix/linux_like/mod.rs | 89 ++++++++++++++++++++++++++++ 3 files changed, 89 insertions(+), 111 deletions(-) diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 7589914fc5e0a..db83b494a4a48 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -515,39 +515,6 @@ s! { pub ifr6_prefixlen: u32, pub ifr6_ifindex: ::c_int, } - - pub struct statx { - pub stx_mask: ::__u32, - pub stx_blksize: ::__u32, - pub stx_attributes: ::__u64, - pub stx_nlink: ::__u32, - pub stx_uid: ::__u32, - pub stx_gid: ::__u32, - pub stx_mode: ::__u16, - __statx_pad1: [::__u16; 1], - pub stx_ino: ::__u64, - pub stx_size: ::__u64, - pub stx_blocks: ::__u64, - pub stx_attributes_mask: ::__u64, - pub stx_atime: ::statx_timestamp, - pub stx_btime: ::statx_timestamp, - pub stx_ctime: ::statx_timestamp, - pub stx_mtime: ::statx_timestamp, - pub stx_rdev_major: ::__u32, - pub stx_rdev_minor: ::__u32, - pub stx_dev_major: ::__u32, - pub stx_dev_minor: ::__u32, - pub stx_mnt_id: ::__u64, - pub stx_dio_mem_align: ::__u32, - pub stx_dio_offset_align: ::__u32, - __statx_pad3: [::__u64; 12], - } - - pub struct statx_timestamp { - pub tv_sec: ::__s64, - pub tv_nsec: ::__u32, - pub __reserved: ::__s32, - } } s_no_extra_traits! { @@ -4205,13 +4172,6 @@ extern "C" { newpath: *const ::c_char, flags: ::c_uint, ) -> ::c_int; - pub fn statx( - dirfd: ::c_int, - pathname: *const c_char, - flags: ::c_int, - mask: ::c_uint, - statxbuf: *mut statx, - ) -> ::c_int; } cfg_if! { diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 7b9d84f967fd2..b7e10d2e3f44a 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -16,39 +16,6 @@ cfg_if! { } s! { - pub struct statx { - pub stx_mask: u32, - pub stx_blksize: u32, - pub stx_attributes: u64, - pub stx_nlink: u32, - pub stx_uid: u32, - pub stx_gid: u32, - pub stx_mode: u16, - __statx_pad1: [u16; 1], - pub stx_ino: u64, - pub stx_size: u64, - pub stx_blocks: u64, - pub stx_attributes_mask: u64, - pub stx_atime: ::statx_timestamp, - pub stx_btime: ::statx_timestamp, - pub stx_ctime: ::statx_timestamp, - pub stx_mtime: ::statx_timestamp, - pub stx_rdev_major: u32, - pub stx_rdev_minor: u32, - pub stx_dev_major: u32, - pub stx_dev_minor: u32, - pub stx_mnt_id: u64, - pub stx_dio_mem_align: u32, - pub stx_dio_offset_align: u32, - __statx_pad3: [u64; 12], - } - - pub struct statx_timestamp { - pub tv_sec: i64, - pub tv_nsec: u32, - pub __statx_timestamp_pad1: [i32; 1], - } - pub struct aiocb { pub aio_fildes: ::c_int, pub aio_lio_opcode: ::c_int, @@ -1169,37 +1136,6 @@ pub const M_PERTURB: ::c_int = -6; pub const M_ARENA_TEST: ::c_int = -7; pub const M_ARENA_MAX: ::c_int = -8; -pub const AT_STATX_SYNC_TYPE: ::c_int = 0x6000; -pub const AT_STATX_SYNC_AS_STAT: ::c_int = 0x0000; -pub const AT_STATX_FORCE_SYNC: ::c_int = 0x2000; -pub const AT_STATX_DONT_SYNC: ::c_int = 0x4000; -pub const STATX_TYPE: ::c_uint = 0x0001; -pub const STATX_MODE: ::c_uint = 0x0002; -pub const STATX_NLINK: ::c_uint = 0x0004; -pub const STATX_UID: ::c_uint = 0x0008; -pub const STATX_GID: ::c_uint = 0x0010; -pub const STATX_ATIME: ::c_uint = 0x0020; -pub const STATX_MTIME: ::c_uint = 0x0040; -pub const STATX_CTIME: ::c_uint = 0x0080; -pub const STATX_INO: ::c_uint = 0x0100; -pub const STATX_SIZE: ::c_uint = 0x0200; -pub const STATX_BLOCKS: ::c_uint = 0x0400; -pub const STATX_BASIC_STATS: ::c_uint = 0x07ff; -pub const STATX_BTIME: ::c_uint = 0x0800; -pub const STATX_MNT_ID: ::c_uint = 0x1000; -pub const STATX_DIOALIGN: ::c_uint = 0x2000; -pub const STATX_ALL: ::c_uint = 0x0fff; -pub const STATX__RESERVED: ::c_int = 0x80000000; -pub const STATX_ATTR_COMPRESSED: ::c_int = 0x0004; -pub const STATX_ATTR_IMMUTABLE: ::c_int = 0x0010; -pub const STATX_ATTR_APPEND: ::c_int = 0x0020; -pub const STATX_ATTR_NODUMP: ::c_int = 0x0040; -pub const STATX_ATTR_ENCRYPTED: ::c_int = 0x0800; -pub const STATX_ATTR_AUTOMOUNT: ::c_int = 0x1000; -pub const STATX_ATTR_MOUNT_ROOT: ::c_int = 0x2000; -pub const STATX_ATTR_VERITY: ::c_int = 0x00100000; -pub const STATX_ATTR_DAX: ::c_int = 0x00200000; - pub const SOMAXCONN: ::c_int = 4096; // linux/mount.h @@ -1405,13 +1341,6 @@ extern "C" { pub fn getpt() -> ::c_int; pub fn mallopt(param: ::c_int, value: ::c_int) -> ::c_int; pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; - pub fn statx( - dirfd: ::c_int, - pathname: *const c_char, - flags: ::c_int, - mask: ::c_uint, - statxbuf: *mut statx, - ) -> ::c_int; pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; pub fn getauxval(type_: ::c_ulong) -> ::c_ulong; diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 52400fb2bfd8e..567bf21aeab41 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -205,6 +205,45 @@ s! { } } +cfg_if! { + if #[cfg(any(target_env = "gnu", target_os = "android"))] { + s! { + pub struct statx { + pub stx_mask: ::__u32, + pub stx_blksize: ::__u32, + pub stx_attributes: ::__u64, + pub stx_nlink: ::__u32, + pub stx_uid: ::__u32, + pub stx_gid: ::__u32, + pub stx_mode: ::__u16, + __statx_pad1: [::__u16; 1], + pub stx_ino: ::__u64, + pub stx_size: ::__u64, + pub stx_blocks: ::__u64, + pub stx_attributes_mask: ::__u64, + pub stx_atime: statx_timestamp, + pub stx_btime: statx_timestamp, + pub stx_ctime: statx_timestamp, + pub stx_mtime: statx_timestamp, + pub stx_rdev_major: ::__u32, + pub stx_rdev_minor: ::__u32, + pub stx_dev_major: ::__u32, + pub stx_dev_minor: ::__u32, + pub stx_mnt_id: ::__u64, + pub stx_dio_mem_align: ::__u32, + pub stx_dio_offset_align: ::__u32, + __statx_pad3: [::__u64; 12], + } + + pub struct statx_timestamp { + pub tv_sec: ::__s64, + pub tv_nsec: ::__u32, + __statx_timestamp_pad1: [::__s32; 1], + } + } + } +} + s_no_extra_traits! { #[cfg_attr( any( @@ -1529,6 +1568,41 @@ cfg_if! { } } +cfg_if! { + if #[cfg(any(target_env = "gnu", target_os = "android"))] { + pub const AT_STATX_SYNC_TYPE: ::c_int = 0x6000; + pub const AT_STATX_SYNC_AS_STAT: ::c_int = 0x0000; + pub const AT_STATX_FORCE_SYNC: ::c_int = 0x2000; + pub const AT_STATX_DONT_SYNC: ::c_int = 0x4000; + pub const STATX_TYPE: ::c_uint = 0x0001; + pub const STATX_MODE: ::c_uint = 0x0002; + pub const STATX_NLINK: ::c_uint = 0x0004; + pub const STATX_UID: ::c_uint = 0x0008; + pub const STATX_GID: ::c_uint = 0x0010; + pub const STATX_ATIME: ::c_uint = 0x0020; + pub const STATX_MTIME: ::c_uint = 0x0040; + pub const STATX_CTIME: ::c_uint = 0x0080; + pub const STATX_INO: ::c_uint = 0x0100; + pub const STATX_SIZE: ::c_uint = 0x0200; + pub const STATX_BLOCKS: ::c_uint = 0x0400; + pub const STATX_BASIC_STATS: ::c_uint = 0x07ff; + pub const STATX_BTIME: ::c_uint = 0x0800; + pub const STATX_ALL: ::c_uint = 0x0fff; + pub const STATX_MNT_ID: ::c_uint = 0x1000; + pub const STATX_DIOALIGN: ::c_uint = 0x2000; + pub const STATX__RESERVED: ::c_int = 0x80000000; + pub const STATX_ATTR_COMPRESSED: ::c_int = 0x0004; + pub const STATX_ATTR_IMMUTABLE: ::c_int = 0x0010; + pub const STATX_ATTR_APPEND: ::c_int = 0x0020; + pub const STATX_ATTR_NODUMP: ::c_int = 0x0040; + pub const STATX_ATTR_ENCRYPTED: ::c_int = 0x0800; + pub const STATX_ATTR_AUTOMOUNT: ::c_int = 0x1000; + pub const STATX_ATTR_MOUNT_ROOT: ::c_int = 0x2000; + pub const STATX_ATTR_VERITY: ::c_int = 0x100000; + pub const STATX_ATTR_DAX: ::c_int = 0x200000; + } +} + const_fn! { {const} fn CMSG_ALIGN(len: usize) -> usize { len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) @@ -1903,6 +1977,21 @@ cfg_if! { } } +// The statx syscall, available on some libcs. +cfg_if! { + if #[cfg(any(target_env = "gnu", target_os = "android"))] { + extern "C" { + pub fn statx( + dirfd: ::c_int, + pathname: *const ::c_char, + flags: ::c_int, + mask: ::c_uint, + statxbuf: *mut statx, + ) -> ::c_int; + } + } +} + cfg_if! { if #[cfg(target_os = "emscripten")] { mod emscripten; From fe4def5d5caefe729b92e1b9458788e1f9a2a1e3 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 24 Nov 2024 01:51:51 -0600 Subject: [PATCH 0382/1228] apple: remove `if_family_id` This API appears to not be available in more recent MacOS SDKs, and there aren't any functions that use it. Since this hasn't yet made it into a release, remove it. Link: https://github.com/rust-lang/libc/pull/4022 (backport ) (cherry picked from commit e87acbad643d2e5fea1fb5f4df2369bef7df70af) --- src/unix/bsd/apple/mod.rs | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index e2f976c5193a6..057bdfe7432e3 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1293,12 +1293,6 @@ s! { pub dot3Compliance: u32, } - pub struct if_family_id { - pub iffmid_len: u32, - pub iffmid_id: u32, - pub iffmid_str: [::c_char; 1], - } - // kern_control.h pub struct ctl_info { pub ctl_id: u32, From 036c68ffb2d3d300ad961b6facdb3542656309f3 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 25 Nov 2024 01:59:50 -0500 Subject: [PATCH 0383/1228] musl: Reorganize some statfs-related types for a cleaner diff This moves similar types together (e.g. statfs and statfs64) so removing them is cleaner. Co-authored-by: Andy Caldwell (backport ) (cherry picked from commit 6c0952e95647b894ea8ae629c2cbbcf159ca07c8) --- src/unix/linux_like/linux/musl/b32/x86/mod.rs | 8 +-- src/unix/linux_like/linux/musl/b64/mod.rs | 60 +++++++++---------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 95097d344d29e..aeeb6d118599c 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -46,6 +46,10 @@ s! { pub st_ino: ::ino_t, } + pub struct mcontext_t { + __private: [u32; 22], + } + pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, @@ -112,10 +116,6 @@ s! { pub f_spare: [::c_ulong; 4], } - pub struct mcontext_t { - __private: [u32; 22], - } - pub struct siginfo_t { pub si_signo: ::c_int, pub si_errno: ::c_int, diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index dc25939b5027f..a8a1fb32024fe 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -3,36 +3,6 @@ pub type c_ulong = u64; pub type regoff_t = ::c_long; s! { - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, @@ -89,6 +59,36 @@ s! { pub f_spare: [::c_ulong; 4], } + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::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_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + pub struct msghdr { pub msg_name: *mut ::c_void, pub msg_namelen: ::socklen_t, From 818901620cd6e3134bf19519b3c69a449a989d90 Mon Sep 17 00:00:00 2001 From: Andy Caldwell Date: Mon, 25 Nov 2024 01:40:50 -0500 Subject: [PATCH 0384/1228] musl: Unify definitions of `siginfo_t` Musl provides a single definition for `siginfo_t` [1] with the order of `si_code` and `si_errno` controlled by `__SI_SWAP_ERRNO_CODE`. This is only set on mips (both 32- and 64-bit). [1]: https://github.com/kraj/musl/blob/ffb23aef7b5339b8c3234f4c6a93c488dc873919/include/signal.h#L99-L147 [ extracted from "Remove all redundant definitions in musl backend", add context to the commit message - Trevor ] (backport ) (cherry picked from commit e1ff5d61e95a4a64b60cbb158986045ebb916149) --- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 8 -------- src/unix/linux_like/linux/musl/b32/hexagon.rs | 8 -------- .../linux_like/linux/musl/b32/mips/mod.rs | 8 -------- src/unix/linux_like/linux/musl/b32/powerpc.rs | 8 -------- .../linux_like/linux/musl/b32/riscv32/mod.rs | 15 -------------- src/unix/linux_like/linux/musl/b32/x86/mod.rs | 8 -------- src/unix/linux_like/linux/musl/b64/mod.rs | 8 -------- .../linux_like/linux/musl/b64/riscv64/mod.rs | 15 -------------- src/unix/linux_like/linux/musl/mod.rs | 20 +++++++++++++++++++ 9 files changed, 20 insertions(+), 78 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index 4149b7ebb1534..0d291ac0eac09 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -112,14 +112,6 @@ s! { pub f_spare: [::c_ulong; 4], } - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - pub struct statfs64 { pub f_type: ::c_ulong, pub f_bsize: ::c_ulong, diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 4fc29f4f0df05..1802356339d27 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -90,14 +90,6 @@ s! { pub f_spare: [::c_ulong; 4], } - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - pub struct statfs64 { pub f_type: ::c_ulong, pub f_bsize: ::c_ulong, diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index 219c96b0d9fd9..04e0126cc66c7 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -120,14 +120,6 @@ s! { pub f_spare: [::c_ulong; 5], } - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - pub struct statfs64 { pub f_type: ::c_ulong, pub f_bsize: ::c_ulong, diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 80eb9f57c2622..cbb7a7b0e277f 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -112,14 +112,6 @@ s! { pub f_spare: [::c_ulong; 4], } - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - pub struct statfs64 { pub f_type: ::c_ulong, pub f_bsize: ::c_ulong, diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index 13a099c18e26c..fe5b02acd2796 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -113,21 +113,6 @@ s! { __f_spare: [::c_int; 6], } - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since = "0.2.54", - note = "Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], - _align: [u64; 0], - } - pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index aeeb6d118599c..f448f536bbbee 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -116,14 +116,6 @@ s! { pub f_spare: [::c_ulong; 4], } - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - pub struct statfs64 { pub f_type: ::c_ulong, pub f_bsize: ::c_ulong, diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index a8a1fb32024fe..ff58b7003cbd5 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -120,14 +120,6 @@ s! { pub struct sem_t { __val: [::c_int; 8], } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], - _align: [usize; 0], - } } pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index a2b823c1adf95..1af905701eaf8 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -119,21 +119,6 @@ s! { pub __f_spare: [::c_int; 6], } - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since = "0.2.54", - note = "Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], - _align: [u64; 0], - } - pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index ec295aa57deb3..c21fdaf04efc4 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -144,6 +144,26 @@ s! { pub sa_restorer: ::Option, } + // `mips*` targets swap the `s_errno` and `s_code` fields otherwise this struct is + // target-agnostic (see https://www.openwall.com/lists/musl/2016/01/27/1/2) + pub struct siginfo_t { + pub si_signo: ::c_int, + #[cfg(not(target_arch = "mips"))] + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[cfg(target_arch = "mips")] + pub si_errno: ::c_int, + #[doc(hidden)] + #[deprecated( + since = "0.2.54", + note = "Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + pub struct statvfs { pub f_bsize: ::c_ulong, pub f_frsize: ::c_ulong, From 0300828e6b46da0d34daf30b7b485923a9627b53 Mon Sep 17 00:00:00 2001 From: Andy Caldwell Date: Thu, 1 Jun 2023 17:52:34 +0100 Subject: [PATCH 0385/1228] musl: Unify definitions of statvfs and statvfs64 `statvfs` already exists in `musl/mod.rs`. Use that were possible and move a common version of `statvfs64` there. [ reduce this patch to only cover statvfs*, leaving statfs as a separate change - Trevor ] (backport ) (cherry picked from commit adcc84d57dea4d63f533a12c5bcc06b16ecb4eb3) --- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 16 ---------- src/unix/linux_like/linux/musl/b32/hexagon.rs | 16 ---------- .../linux_like/linux/musl/b32/mips/mod.rs | 19 ------------ src/unix/linux_like/linux/musl/b32/powerpc.rs | 19 ------------ .../linux_like/linux/musl/b32/riscv32/mod.rs | 31 ------------------- src/unix/linux_like/linux/musl/b32/x86/mod.rs | 16 ---------- src/unix/linux_like/linux/musl/b64/mod.rs | 15 --------- .../linux_like/linux/musl/b64/riscv64/mod.rs | 30 ------------------ src/unix/linux_like/linux/musl/mod.rs | 22 +++++++++++++ 9 files changed, 22 insertions(+), 162 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index 0d291ac0eac09..14c60f7958aa1 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -127,22 +127,6 @@ s! { pub f_spare: [::c_ulong; 4], } - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - pub struct mcontext_t { pub trap_no: ::c_ulong, pub error_code: ::c_ulong, diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 1802356339d27..ec55ffb4613c6 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -104,22 +104,6 @@ s! { pub f_flags: ::c_ulong, pub f_spare: [::c_ulong; 4], } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } } pub const AF_FILE: ::c_int = 1; diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index 04e0126cc66c7..39af8372d54e8 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -134,25 +134,6 @@ s! { pub f_flags: ::c_ulong, pub f_spare: [::c_ulong; 5], } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - #[cfg(target_endian = "little")] - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - #[cfg(target_endian = "big")] - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } } s_no_extra_traits! { diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index cbb7a7b0e277f..8be5a1d0865f2 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -126,25 +126,6 @@ s! { pub f_flags: ::c_ulong, pub f_spare: [::c_ulong; 4], } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - #[cfg(target_endian = "little")] - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - #[cfg(target_endian = "big")] - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } } pub const MADV_SOFT_OFFLINE: ::c_int = 101; diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index fe5b02acd2796..be3d9ba275e2e 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -67,21 +67,6 @@ s! { pub f_spare: [::c_long; 4], } - 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub __f_spare: [::c_int; 6], - } - pub struct statfs64 { pub f_type: ::c_ulong, pub f_bsize: ::c_ulong, @@ -97,22 +82,6 @@ s! { pub f_spare: [::c_ulong; 4], } - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index f448f536bbbee..0d535e950f423 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -130,22 +130,6 @@ s! { pub f_flags: ::c_ulong, pub f_spare: [::c_ulong; 4], } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } } s_no_extra_traits! { diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index ff58b7003cbd5..4b0fb4a2b8eb3 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -74,21 +74,6 @@ s! { pub f_spare: [::c_ulong; 4], } - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - pub struct msghdr { pub msg_name: *mut ::c_void, pub msg_namelen: ::socklen_t, diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index 1af905701eaf8..bfd34ef1a980e 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -89,36 +89,6 @@ s! { pub f_spare: [::c_long; 4], } - 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub __f_spare: [::c_int; 6], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_favail: ::fsfilcnt64_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub __f_spare: [::c_int; 6], - } - pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index c21fdaf04efc4..467826c92796a 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -19,7 +19,9 @@ pub type shmatt_t = ::c_ulong; pub type msgqnum_t = ::c_ulong; pub type msglen_t = ::c_ulong; pub type fsblkcnt_t = ::c_ulonglong; +pub type fsblkcnt64_t = ::c_ulonglong; pub type fsfilcnt_t = ::c_ulonglong; +pub type fsfilcnt64_t = ::c_ulonglong; pub type rlim_t = ::c_ulonglong; cfg_if! { @@ -184,6 +186,26 @@ s! { __f_spare: [::c_int; 6], } + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt64_t, + pub f_bfree: ::fsblkcnt64_t, + pub f_bavail: ::fsblkcnt64_t, + pub f_files: ::fsfilcnt64_t, + pub f_ffree: ::fsfilcnt64_t, + pub f_favail: ::fsfilcnt64_t, + #[cfg(target_endian = "little")] + pub f_fsid: ::c_ulong, + #[cfg(target_pointer_width = "32")] + __f_unused: ::c_int, + #[cfg(target_endian = "big")] + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + pub struct termios { pub c_iflag: ::tcflag_t, pub c_oflag: ::tcflag_t, From ace85eef610e911e905630867e7ca0aee77d9485 Mon Sep 17 00:00:00 2001 From: Andy Caldwell Date: Mon, 25 Nov 2024 02:26:54 -0500 Subject: [PATCH 0386/1228] musl: Unify definitions of statfs and statfs64 Only mips uses a special statfs(64) [ squash "Use `#[cfg]` blocks to special-case statfs on mips", change this patch to only cover statfs and statfs64, include part of "Remove new redundant definitions" - Trevor ] (backport ) (cherry picked from commit fb7785a71b1a6221c796d909692e339a1bcb9d3f) --- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 30 -------------- src/unix/linux_like/linux/musl/b32/hexagon.rs | 30 -------------- src/unix/linux_like/linux/musl/b32/powerpc.rs | 30 -------------- .../linux_like/linux/musl/b32/riscv32/mod.rs | 30 -------------- src/unix/linux_like/linux/musl/b32/x86/mod.rs | 30 -------------- .../linux/musl/b64/loongarch64/mod.rs | 15 ------- src/unix/linux_like/linux/musl/b64/mips64.rs | 30 -------------- src/unix/linux_like/linux/musl/b64/mod.rs | 30 -------------- .../linux_like/linux/musl/b64/riscv64/mod.rs | 32 --------------- src/unix/linux_like/linux/musl/b64/s390x.rs | 30 -------------- src/unix/linux_like/linux/musl/mod.rs | 39 +++++++++++++++++-- 11 files changed, 36 insertions(+), 290 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index 14c60f7958aa1..07aabbe1c5824 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -97,36 +97,6 @@ s! { __pad2: ::c_ulong, } - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - pub struct mcontext_t { pub trap_no: ::c_ulong, pub error_code: ::c_ulong, diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index ec55ffb4613c6..8678e19dff176 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -74,36 +74,6 @@ s! { __pad1: ::c_ulong, __pad2: ::c_ulong, } - - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } } pub const AF_FILE: ::c_int = 1; diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 8be5a1d0865f2..1f8ee80113e16 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -96,36 +96,6 @@ s! { __pad1: ::c_ulong, __pad2: ::c_ulong, } - - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } } pub const MADV_SOFT_OFFLINE: ::c_int = 101; diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index be3d9ba275e2e..6f622e6184acd 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -52,36 +52,6 @@ s! { __unused: [::c_int; 2], } - pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - 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_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_frsize: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 4], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 0d535e950f423..769077c465a62 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -100,36 +100,6 @@ s! { __pad1: ::c_ulong, __pad2: ::c_ulong, } - - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } } s_no_extra_traits! { diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index 40bdb0aa42e3c..f2fe5fe1a23d2 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -55,21 +55,6 @@ s! { __unused: [::c_int; 2], } - pub struct statfs64 { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_frsize: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 4], - } - pub struct ipc_perm { pub __key: ::key_t, pub uid: ::uid_t, diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index 962c0759c6ea0..63a47af041487 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -54,36 +54,6 @@ s! { __pad5: [::c_int; 14], } - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 5], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 5], - } - pub struct ipc_perm { pub __ipc_perm_key: ::key_t, pub uid: ::uid_t, diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index 4b0fb4a2b8eb3..9e893a36f8068 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -44,36 +44,6 @@ s! { __pad2: ::c_ulong, } - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - pub struct msghdr { pub msg_name: *mut ::c_void, pub msg_namelen: ::socklen_t, diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index bfd34ef1a980e..b438294834e03 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -5,8 +5,6 @@ pub type wchar_t = ::c_int; pub type nlink_t = ::c_uint; pub type blksize_t = ::c_int; -pub type fsblkcnt64_t = ::c_ulong; -pub type fsfilcnt64_t = ::c_ulong; pub type __u64 = ::c_ulonglong; pub type __s64 = ::c_longlong; @@ -59,36 +57,6 @@ s! { __unused: [::c_int; 2], } - pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - 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_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_frsize: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 4], - } - - pub struct statfs64 { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_frsize: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 4], - } - pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index e25a17124002a..67183e8d55177 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -58,36 +58,6 @@ s! { pub st_blocks: ::blkcnt64_t, __unused: [::c_long; 3], } - - pub struct statfs { - pub f_type: ::c_uint, - pub f_bsize: ::c_uint, - 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_fsid: ::fsid_t, - pub f_namelen: ::c_uint, - pub f_frsize: ::c_uint, - pub f_flags: ::c_uint, - pub f_spare: [::c_uint; 4], - } - - pub struct statfs64 { - pub f_type: ::c_uint, - pub f_bsize: ::c_uint, - 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_fsid: ::fsid_t, - pub f_namelen: ::c_uint, - pub f_frsize: ::c_uint, - pub f_flags: ::c_uint, - pub f_spare: [::c_uint; 4], - } } s_no_extra_traits! { diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 467826c92796a..5803874f5ad0b 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -158,9 +158,8 @@ s! { #[doc(hidden)] #[deprecated( since = "0.2.54", - note = "Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" + note = "Please leave a comment on https://github.com/rust-lang/libc/pull/1316 \ + if you're using this field" )] pub _pad: [::c_int; 29], _align: [usize; 0], @@ -458,6 +457,40 @@ s! { #[cfg(target_arch = "loongarch64")] pub tcpi_snd_wnd: u32, } + + // MIPS implementation is special (see mips arch folders) + #[cfg(not(target_arch = "mips"))] + pub struct statfs { + pub f_type: ::c_ulong, + pub f_bsize: ::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_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + // MIPS implementation is special (see mips arch folders) + #[cfg(not(target_arch = "mips"))] + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt64_t, + pub f_bfree: ::fsblkcnt64_t, + pub f_bavail: ::fsblkcnt64_t, + pub f_files: ::fsfilcnt64_t, + pub f_ffree: ::fsfilcnt64_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } } s_no_extra_traits! { From ee8ef649b863eaad2880f39c811f807926ffc9ed Mon Sep 17 00:00:00 2001 From: Andy Caldwell Date: Thu, 1 Jun 2023 19:01:34 +0100 Subject: [PATCH 0387/1228] musl: Remove redundant definitions These types are redundant as they are exported from higher-level modules. [ move some non-statfs fixups here from other commits in the series, add context to the commmit message - Trevor ] (backport ) (cherry picked from commit b196045cc621a71c42ebbdcca95baa7e64f95854) --- .../linux_like/linux/gnu/b32/riscv32/mod.rs | 26 ------ .../linux_like/linux/gnu/b32/sparc/mod.rs | 21 ----- .../linux_like/linux/musl/b32/riscv32/mod.rs | 86 ------------------- .../linux_like/linux/musl/b64/riscv64/mod.rs | 30 ------- 4 files changed, 163 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs index fcda280411f6c..464b4f560fad3 100644 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -4,10 +4,6 @@ pub type c_char = u8; pub type wchar_t = ::c_int; s! { - pub struct pthread_attr_t { - __size: [::c_ulong; 7], - } - pub struct msqid_ds { pub msg_perm: ::ipc_perm, pub msg_stime: ::time_t, @@ -22,28 +18,6 @@ s! { __glibc_reserved5: ::c_ulong, } - 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_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - 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_int; 2usize], - } - pub struct stat64 { pub st_dev: ::dev_t, pub st_ino: ::ino64_t, diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index bea8b24355784..189ec8f05a0c3 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -58,27 +58,6 @@ s! { pub ss_size: ::size_t, } - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: ::c_ushort, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_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; 2], - } - pub struct stat64 { pub st_dev: ::dev_t, pub st_ino: ::ino64_t, diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index 6f622e6184acd..aa8ba42205636 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -4,10 +4,6 @@ pub type c_char = u8; pub type wchar_t = ::c_int; s! { - pub struct pthread_attr_t { - __size: [::c_ulong; 7], - } - pub struct stat { pub st_dev: ::dev_t, pub st_ino: ::ino_t, @@ -58,13 +54,6 @@ s! { pub ss_size: ::size_t, } - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - pub struct ipc_perm { pub __key: ::key_t, pub uid: ::uid_t, @@ -121,12 +110,6 @@ s_no_extra_traits! { //pub const RLIM_INFINITY: ::rlim_t = !0; pub const VEOF: usize = 4; pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const TIOCGSOFTCAR: ::c_ulong = 21529; -pub const TIOCSSOFTCAR: ::c_ulong = 21530; -pub const TIOCGRS485: ::c_int = 21550; -pub const TIOCSRS485: ::c_int = 21551; //pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; //pub const RLIMIT_AS: ::__rlimit_resource_t = 9; //pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; @@ -253,38 +236,12 @@ pub const SIG_UNBLOCK: ::c_int = 1; pub const POLLWRNORM: ::c_short = 256; pub const POLLWRBAND: ::c_short = 512; pub const O_ASYNC: ::c_int = 8192; -pub const O_NDELAY: ::c_int = 2048; -pub const EFD_NONBLOCK: ::c_int = 2048; pub const F_SETOWN: ::c_int = 8; pub const F_GETOWN: ::c_int = 9; pub const F_GETLK: ::c_int = 12; pub const F_SETLK: ::c_int = 13; pub const F_SETLKW: ::c_int = 14; -pub const SFD_NONBLOCK: ::c_int = 2048; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; -pub const TIOCLINUX: ::c_ulong = 21532; -pub const TIOCGSERIAL: ::c_ulong = 21534; -pub const TIOCEXCL: ::c_ulong = 21516; -pub const TIOCNXCL: ::c_ulong = 21517; -pub const TIOCSCTTY: ::c_ulong = 21518; -pub const TIOCSTI: ::c_ulong = 21522; -pub const TIOCMGET: ::c_ulong = 21525; -pub const TIOCMBIS: ::c_ulong = 21526; -pub const TIOCMBIC: ::c_ulong = 21527; -pub const TIOCMSET: ::c_ulong = 21528; -pub const TIOCCONS: ::c_ulong = 21533; -pub const TIOCM_ST: ::c_int = 8; -pub const TIOCM_SR: ::c_int = 16; -pub const TIOCM_CTS: ::c_int = 32; -pub const TIOCM_CAR: ::c_int = 64; -pub const TIOCM_RNG: ::c_int = 128; -pub const TIOCM_DSR: ::c_int = 256; -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; pub const O_DIRECT: ::c_int = 16384; pub const O_DIRECTORY: ::c_int = 65536; pub const O_LARGEFILE: ::c_int = 0o0100000; @@ -293,7 +250,6 @@ pub const MAP_HUGETLB: ::c_int = 262144; pub const MAP_LOCKED: ::c_int = 8192; pub const MAP_NORESERVE: ::c_int = 16384; pub const MAP_ANON: ::c_int = 32; -pub const MAP_ANONYMOUS: ::c_int = 32; pub const MAP_DENYWRITE: ::c_int = 2048; pub const MAP_EXECUTABLE: ::c_int = 4096; pub const MAP_POPULATE: ::c_int = 32768; @@ -306,9 +262,6 @@ pub const ENOTNAM: ::c_int = 118; pub const ENAVAIL: ::c_int = 119; pub const EISNAM: ::c_int = 120; pub const EREMOTEIO: ::c_int = 121; -pub const FIOCLEX: ::c_int = 21585; -pub const FIONCLEX: ::c_int = 21584; -pub const FIONBIO: ::c_int = 21537; pub const MCL_CURRENT: ::c_int = 1; pub const MCL_FUTURE: ::c_int = 2; pub const MCL_ONFAULT: ::c_int = 4; @@ -365,24 +318,6 @@ pub const BSDLY: ::tcflag_t = 8192; pub const FFDLY: ::tcflag_t = 32768; pub const VTDLY: ::tcflag_t = 16384; pub const XTABS: ::tcflag_t = 6144; -pub const B0: ::speed_t = 0; -pub const B50: ::speed_t = 1; -pub const B75: ::speed_t = 2; -pub const B110: ::speed_t = 3; -pub const B134: ::speed_t = 4; -pub const B150: ::speed_t = 5; -pub const B200: ::speed_t = 6; -pub const B300: ::speed_t = 7; -pub const B600: ::speed_t = 8; -pub const B1200: ::speed_t = 9; -pub const B1800: ::speed_t = 10; -pub const B2400: ::speed_t = 11; -pub const B4800: ::speed_t = 12; -pub const B9600: ::speed_t = 13; -pub const B19200: ::speed_t = 14; -pub const B38400: ::speed_t = 15; -pub const EXTA: ::speed_t = 14; -pub const EXTB: ::speed_t = 15; pub const B57600: ::speed_t = 4097; pub const B115200: ::speed_t = 4098; pub const B230400: ::speed_t = 4099; @@ -405,27 +340,6 @@ pub const IEXTEN: ::tcflag_t = 32768; pub const TOSTOP: ::tcflag_t = 256; pub const FLUSHO: ::tcflag_t = 4096; pub const EXTPROC: ::tcflag_t = 65536; -pub const TCGETS: ::c_int = 21505; -pub const TCSETS: ::c_int = 21506; -pub const TCSETSW: ::c_int = 21507; -pub const TCSETSF: ::c_int = 21508; -pub const TCGETA: ::c_int = 21509; -pub const TCSETA: ::c_int = 21510; -pub const TCSETAW: ::c_int = 21511; -pub const TCSETAF: ::c_int = 21512; -pub const TCSBRK: ::c_int = 21513; -pub const TCXONC: ::c_int = 21514; -pub const TCFLSH: ::c_int = 21515; -pub const TIOCINQ: ::c_int = 21531; -pub const TIOCGPGRP: ::c_int = 21519; -pub const TIOCSPGRP: ::c_int = 21520; -pub const TIOCOUTQ: ::c_int = 21521; -pub const TIOCGWINSZ: ::c_int = 21523; -pub const TIOCSWINSZ: ::c_int = 21524; -pub const FIONREAD: ::c_int = 21531; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; pub const SYS_read: ::c_long = 63; pub const SYS_write: ::c_long = 64; diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index b438294834e03..e783589d2c0f3 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -9,10 +9,6 @@ pub type __u64 = ::c_ulonglong; pub type __s64 = ::c_longlong; s! { - pub struct pthread_attr_t { - __size: [::c_ulong; 7], - } - pub struct stat { pub st_dev: ::dev_t, pub st_ino: ::ino_t, @@ -57,19 +53,6 @@ s! { __unused: [::c_int; 2], } - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, - } - - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - pub struct ipc_perm { pub __key: ::key_t, pub uid: ::uid_t, @@ -84,19 +67,6 @@ s! { __unused2: ::c_ulong, } - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused5: ::c_ulong, - __unused6: ::c_ulong, - } - #[repr(align(8))] pub struct clone_args { pub flags: ::c_ulonglong, From cbc560d7be7c565da4a11200c60e9af6c8f872e9 Mon Sep 17 00:00:00 2001 From: Andy Caldwell Date: Thu, 21 Nov 2024 20:50:12 +0000 Subject: [PATCH 0388/1228] musl: Rename fields to match musl headers [ squash "Re-add explicit padding in 32-bit statvfs", reword commit summary - Trevor ] (backport ) (cherry picked from commit d210d71604be00ea8d2eb2a45009591109a19465) --- src/unix/linux_like/linux/musl/mod.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 5803874f5ad0b..176ab4009e40c 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -148,6 +148,8 @@ s! { // `mips*` targets swap the `s_errno` and `s_code` fields otherwise this struct is // target-agnostic (see https://www.openwall.com/lists/musl/2016/01/27/1/2) + // + // FIXME(union): C implementation uses unions pub struct siginfo_t { pub si_signo: ::c_int, #[cfg(not(target_arch = "mips"))] @@ -177,12 +179,12 @@ s! { #[cfg(target_endian = "little")] pub f_fsid: ::c_ulong, #[cfg(target_pointer_width = "32")] - __f_unused: ::c_int, + __pad: ::c_int, #[cfg(target_endian = "big")] pub f_fsid: ::c_ulong, pub f_flag: ::c_ulong, pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + __f_reserved: [::c_int; 6], } pub struct statvfs64 { @@ -197,12 +199,12 @@ s! { #[cfg(target_endian = "little")] pub f_fsid: ::c_ulong, #[cfg(target_pointer_width = "32")] - __f_unused: ::c_int, + __pad: ::c_int, #[cfg(target_endian = "big")] pub f_fsid: ::c_ulong, pub f_flag: ::c_ulong, pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + __f_reserved: [::c_int; 6], } pub struct termios { From 2018bcab8b937dc1f0788f1fd526b902015318da Mon Sep 17 00:00:00 2001 From: Andy Caldwell Date: Sun, 6 Oct 2024 04:12:33 +0100 Subject: [PATCH 0389/1228] glibc: Remove redundant definitions These are redundant as they are exported from higher-level modules. [ extract this commit to only cover glibc - Trevor ] (backport ) (cherry picked from commit ca7eedd5f59e9e0a39c5dd42de64a5caf4aea7c3) --- src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs | 15 --------------- src/unix/linux_like/linux/gnu/b32/sparc/mod.rs | 15 --------------- 2 files changed, 30 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs index 464b4f560fad3..950be29a42ae7 100644 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -70,21 +70,6 @@ s! { pub f_spare: [::c_long; 4], } - 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub __f_spare: [::c_int; 6], - } - pub struct statvfs64 { pub f_bsize: ::c_ulong, pub f_frsize: ::c_ulong, diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index 189ec8f05a0c3..fac8cd0a85d83 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -94,21 +94,6 @@ s! { pub f_spare: [::__fsword_t; 4], } - 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - pub struct statvfs64 { pub f_bsize: ::c_ulong, pub f_frsize: ::c_ulong, From 805ccb6f7af66e2e1a1618c71c6d95be034dba3d Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 22 Nov 2024 20:43:16 -0500 Subject: [PATCH 0390/1228] ci: Reduce redundancy in `run.sh` and run tests in the `libc` crate We haven't been running any tests associated with the `libc` crate, make sure we do this here. Also simplify some redundant things in the script. (backport ) (cherry picked from commit e0c4e5bbf51ebe8552cdc7551b1c02b81cee017f) --- ci/run.sh | 49 ++++++++++++++++--------------------------------- 1 file changed, 16 insertions(+), 33 deletions(-) diff --git a/ci/run.sh b/ci/run.sh index 22b356a6425b1..a8fdd1ed3c067 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -9,6 +9,8 @@ mirrors_url="https://ci-mirrors.rust-lang.org/libc" target="$1" +export RUST_BACKTRACE="${RUST_BACKTRACE:-1}" + # If we're going to run tests inside of a qemu image, then we don't need any of # the scripts below. Instead, download the image, prepare a filesystem which has # the current state of this repository, and then run the image. @@ -78,6 +80,14 @@ if [ -n "${QEMU:-}" ]; then exec grep -E "^(PASSED)|(test result: ok)" "${CARGO_TARGET_DIR}/out.log" fi +cmd="cargo test --target $target ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"}" + +# Run tests in the `libc` crate +$cmd + +# Everything else is in `libc-test` +cmd="$cmd --manifest-path libc-test/Cargo.toml" + if [ "$target" = "s390x-unknown-linux-gnu" ]; then # FIXME: s390x-unknown-linux-gnu often fails to test due to timeout, # so we retry this N times. @@ -86,31 +96,17 @@ if [ "$target" = "s390x-unknown-linux-gnu" ]; then passed=0 until [ $n -ge $N ]; do if [ "$passed" = "0" ]; then - if cargo test \ - --no-default-features \ - --manifest-path libc-test/Cargo.toml \ - --target "$target" \ - ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} - then + if $cmd --no-default-features; then passed=$((passed+1)) continue fi elif [ "$passed" = "1" ]; then - if cargo test \ - --manifest-path libc-test/Cargo.toml \ - --target "$target" \ - ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} - then + if $cmd; then passed=$((passed+1)) continue fi elif [ "$passed" = "2" ]; then - if cargo test \ - --features extra_traits \ - --manifest-path libc-test/Cargo.toml \ - --target "$target" \ - ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} - then + if $cmd --features extra_traits; then break fi fi @@ -118,20 +114,7 @@ if [ "$target" = "s390x-unknown-linux-gnu" ]; then sleep 1 done else - cargo test \ - --no-default-features \ - --manifest-path libc-test/Cargo.toml \ - --target "$target" \ - ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} - - cargo test \ - --manifest-path libc-test/Cargo.toml \ - --target "$target" \ - ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} - - RUST_BACKTRACE=1 cargo test \ - --features extra_traits \ - --manifest-path libc-test/Cargo.toml \ - --target "$target" \ - ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} + $cmd --no-default-features + $cmd + $cmd --features extra_traits fi From 35fe9c79f76ed2955b7d27ea22b4b419aa4bf544 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 22 Nov 2024 20:46:20 -0500 Subject: [PATCH 0391/1228] Add a test that the `const extern fn` macro works By default, any functions defined in this macro (such as `CMSG_SPACE`) should be `const`. (backport ) (cherry picked from commit 0304ed535e94eb81f1ea5931c12f57ad95bb69ee) No change in the cherry pick since the function came from libc-0.2 originally. From c93e86c557172d3f8c07e4dc60a75cc941974993 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 22 Nov 2024 21:21:26 -0500 Subject: [PATCH 0392/1228] ci: Skip unit tests on some platforms For some reason, running unit tests in CI gives the following on Android: ```text 2024-11-23T02:17:49.1406378Z Running unittests src/lib.rs (target/i686-linux-android/debug/deps/libc-79430fca1af8b7ec) 2024-11-23T02:17:49.1432206Z * daemon not running; starting now at tcp:5037 2024-11-23T02:17:52.1460169Z * daemon started successfully 2024-11-23T02:18:00.1454112Z adb: error: failed to copy '/checkout/target/i686-linux-android/debug/deps/libc-79430fca1af8b7ec' to '/data/local/tmp/libc-79430fca1af8b7ec': remote secure_mkdirs failed: Read-only file system 2024-11-23T02:18:00.1457084Z /checkout/target/i686-linux-android/debug/deps/libc-79430fca1af8b7ec: 1 file pushed, 0 skipped. 19.3 MB/s (5418952 bytes in 0.267s) 2024-11-23T02:18:00.3757282Z thread 'main' panicked at /tmp/runtest.rs:26:5: 2024-11-23T02:18:00.3758028Z assertion failed: status.success() 2024-11-23T02:18:00.3758589Z stack backtrace: 2024-11-23T02:18:00.3810307Z 0: rust_begin_unwind 2024-11-23T02:18:00.3811230Z at /rustc/a47555110cf09b3ed59811d9b02235443e76a595/library/std/src/panicking.rs:665:5 2024-11-23T02:18:00.3812225Z 1: core::panicking::panic_fmt 2024-11-23T02:18:00.3813089Z at /rustc/a47555110cf09b3ed59811d9b02235443e76a595/library/core/src/panicking.rs:76:14 2024-11-23T02:18:00.3814034Z 2: core::panicking::panic 2024-11-23T02:18:00.3814860Z at /rustc/a47555110cf09b3ed59811d9b02235443e76a595/library/core/src/panicking.rs:148:5 2024-11-23T02:18:00.3815756Z 3: runtest::main 2024-11-23T02:18:00.3816545Z 4: core::ops::function::FnOnce::call_once 2024-11-23T02:18:00.3817848Z note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. 2024-11-23T02:18:00.3822763Z error: test failed, to rerun pass `--lib` ``` And on s390x: ``` + grep -Ev ^\[ KASLR disabled: CPU has no PRNG /prog: /lib/s390x-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /prog) + grep -E (PASSED)|(test result: ok) output /prog: /lib/s390x-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by /prog) error: test failed, to rerun pass `--lib` ``` For now, don't run unit tests on these platforms. (backport ) (cherry picked from commit f5fdb565fa01c7c6e3bcecf778a31011848e6246) --- ci/run.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ci/run.sh b/ci/run.sh index a8fdd1ed3c067..5ac4070d928aa 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -83,7 +83,13 @@ fi cmd="cargo test --target $target ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"}" # Run tests in the `libc` crate -$cmd +case "$target" in + # FIXME(android): unit tests fail to start on Android + # FIXME(s390x): unit tests fail to locate glibc + *android*) ;; + *s390x*) ;; + *) $cmd +esac # Everything else is in `libc-test` cmd="$cmd --manifest-path libc-test/Cargo.toml" From c2bded38da9ff38f0a523da7c9e47528e75a38e5 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 22 Nov 2024 20:46:24 -0500 Subject: [PATCH 0393/1228] fix: make sure the `const-extern-fn` feature is enabled This was dropped in fa554bc4f8 on `main` and 674cc1f47f on `libc-0.2` ("Drop the libc_const_extern_fn conditional"). Unfortunately, this meant that functions were incorrectly never getting marked `const`, which showed up with `CMSG_SPACE` [1]. Instead of the fix here, I attempted to just use `cfg(not(libc_ctest))` instead of a Cargo feature to enable `const` extern functions; however, this seemed extremely problematic with `ctest` for some reason [2]. Instead, leave the feature as-is and just make it enabled by default. Fixes: https://github.com/rust-lang/libc/issues/4115 [1] [2]: https://github.com/rust-lang/libc/pull/4134 (backport ) (cherry picked from commit 19e9e6ade3a9fe8d077ca0e2643bae7daa26005b) --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 234e74453472c..6d15865ab6845 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -137,7 +137,7 @@ cargo-args = ["-Zbuild-std=core"] rustc-std-workspace-core = { version = "1.0.0", optional = true } [features] -default = ["std"] +default = ["const-extern-fn", "std"] std = [] rustc-dep-of-std = ['align', 'rustc-std-workspace-core'] extra_traits = [] From ceeb0fec9deeeb5326036c65c3860973cd934c68 Mon Sep 17 00:00:00 2001 From: Maarten de Vries Date: Wed, 20 Nov 2024 14:30:09 +0100 Subject: [PATCH 0394/1228] Expose len8_dlc field of can_frame struct on Linux (backport ) (cherry picked from commit 48bdb18dfb9db4e6d229c3620fa19993b35d0f10) --- src/unix/linux_like/linux/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 02a66960f56f6..93dc33702a022 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1586,10 +1586,11 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] pub struct can_frame { pub can_id: canid_t, + // FIXME(1.0): this field was renamed to `len` in Linux 5.11 pub can_dlc: u8, __pad: u8, __res0: u8, - __res1: u8, + pub len8_dlc: u8, pub data: [u8; CAN_MAX_DLEN], } From ffd4bbc8d56c791895db027fce0f1f0cff9eef9d Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 25 Nov 2024 06:37:28 -0500 Subject: [PATCH 0395/1228] ci: Update `release-plz` to make use of backport links for the changelog --- .release-plz.toml | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/.release-plz.toml b/.release-plz.toml index 68bd669aff358..c60e41db71c44 100644 --- a/.release-plz.toml +++ b/.release-plz.toml @@ -1,3 +1,48 @@ [workspace] git_release_name = "{{ version }}" git_tag_name = "{{ version }}" + +[changelog] +body = """ +## [{{ version | trim_start_matches(pat="v") }}]\ + {%- if release_link -%}\ + ({{ release_link }})\ + {% endif %} \ + - {{ timestamp | date(format="%Y-%m-%d") }} +{% for group, commits in commits | group_by(attribute="group") %} +### {{ group | upper_first }} + {% for commit in commits %} + - {% if commit.scope -%}{{ commit.scope | upper_first }}: {% endif %} + {%- if commit.breaking %}[**breaking**] {% endif %} + {{- commit.message }} + {%- if commit.links %} ([{{ commit.links.1.text }}]({{ commit.links.1.href }})){% endif -%} + {% endfor %} +{% endfor %} +{%- if github -%} +{% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %} + ## New Contributors ❤️ +{% endif %}\ +{% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %} + * @{{ contributor.username }} made their first contribution + {%- if contributor.pr_number %} in \ + [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \ + {%- endif %} +{%- endfor -%} +{%- endif %} +""" + +commit_parsers = [ + { message = '(?i)^(\w+: )?feat', group = "added" }, + { message = '(?i)^(\w+: )?add', group = "added" }, + { message = '(?i)^(\w+: )?change', group = "changed" }, + { message = '(?i)^(\w+: )?deprecate', group = "deprecated" }, + { message = '(?i)^(\w+: )?remove', group = "removed" }, + { message = '(?i)^(\w+: )?fix', group = "fixed" }, + { message = '(?i)^(\w+: )?fix', group = "fixed" }, + { message = '^.*', group = "other" }, +] + +link_parsers = [ + # Extract backport patterns + { pattern = '\(backport <.*/(\d+)>\)', text = "#$1", href = "https://github.com/rust-lang/libc/pulls/$1"} +] From 0928922ecbcc69e04f417ca55366766ca32df62a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 13:15:36 +0000 Subject: [PATCH 0396/1228] chore: release v0.2.165 Co-authored-by: Trevor Gross --- CHANGELOG.md | 111 +++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 3 files changed, 113 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a863b8af17a8..ecccc924ec340 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,117 @@ # Changelog ## [Unreleased] +## [0.2.165](https://github.com/rust-lang/libc/compare/0.2.164...0.2.165) - 2024-11-25 + +### Added + +- Android: add `mkostemp`, `mkostemps` +- Android: add a few API 30 calls +- Android: add missing syscall constants +- Apple: add `in6_ifreq` +- Apple: add missing `sysctl` net types (before release: remove `if_family_id` ([#4137](https://github.com/rust-lang/libc/pulls/4137))) +- Freebsd: add `kcmp` call support +- Hurd: add `MAP_32BIT` and `MAP_EXCL` +- Hurd: add `domainname` field to `utsname` ([#4089](https://github.com/rust-lang/libc/pulls/4089)) +- Linux GNU: add `f_flags` to struct `statfs` for arm, mips, powerpc and x86 +- Linux GNU: add `malloc_stats` +- Linux: add ELF relocation-related structs +- Linux: add `ptp_*` structs +- Linux: add `ptp_clock_caps` +- Linux: add `ptp_pin_function` and most `PTP_` constants +- Linux: add missing AF_XDP structs & constants +- Linux: add missing netfilter consts ([#3734](https://github.com/rust-lang/libc/pulls/3734)) +- Linux: add struct and constants for the `mount_setattr` syscall +- Linux: add wireless API +- Linux: expose the `len8_dlc` field of `can_frame` +- Musl: add `utmpx` API +- Musl: add missing syscall constants +- NetBSD: add `mcontext`-related data for RISCV64 +- Redox: add new `netinet` constants ) +- Solarish: add `_POSIX_VDISABLE` ([#4103](https://github.com/rust-lang/libc/pulls/4103)) +- Tests: Add a test that the `const extern fn` macro works +- Tests: Add test of primitive types against `std` +- Unix: Add `htonl`, `htons`, `ntohl`, `ntohs` +- Unix: add `aligned_alloc` +- Windows: add `aligned_realloc` + +### Fixed + +- **breaking** Hurd: fix `MAP_HASSEMAPHORE` name ([#4127](https://github.com/rust-lang/libc/pulls/4127)) +- **breaking** ulibc Mips: fix `SA_*` mismatched types ([#3211](https://github.com/rust-lang/libc/pulls/3211)) +- Aix: fix an enum FFI safety warning +- Haiku: fix some typos ([#3664](https://github.com/rust-lang/libc/pulls/3664)) +- Tests: fix `Elf{32,64}_Relr`-related tests +- Tests: fix libc-tests for `loongarch64-linux-musl` +- Tests: fix some clippy warnings +- Tests: fix tests on `riscv64gc-unknown-freebsd` + +### Deprecated + +- Apple: deprecate `iconv_open` +- Apple: deprecate `mach_task_self` +- Apple: update `mach` deprecation notices for things that were removed in `main` + +### Cleanup + +- Adjust the `f!` macro to be more flexible +- Aix: remove duplicate constants +- CI: make scripts more uniform +- Drop the `libc_align` conditional +- Drop the `libc_cfg_target_vendor` conditional +- Drop the `libc_const_size_of` conditional +- Drop the `libc_core_cvoid` conditional +- Drop the `libc_int128` conditional +- Drop the `libc_non_exhaustive` conditional +- Drop the `libc_packedN` conditional +- Drop the `libc_priv_mod_use` conditional +- Drop the `libc_union` conditional +- Drop the `long_array` conditional +- Drop the `ptr_addr_of` conditional +- Drop warnings about deprecated cargo features +- Eliminate uses of `struct_formatter` +- Fix a few other array size hacks +- Glibc: remove redundant definitions ([#3261](https://github.com/rust-lang/libc/pulls/3261)) +- Musl: remove redundant definitions ([#3261](https://github.com/rust-lang/libc/pulls/3261)) +- Musl: unify definitions of `siginfo_t` ([#3261](https://github.com/rust-lang/libc/pulls/3261)) +- Musl: unify definitions of statfs and statfs64 ([#3261](https://github.com/rust-lang/libc/pulls/3261)) +- Musl: unify definitions of statvfs and statvfs64 ([#3261](https://github.com/rust-lang/libc/pulls/3261)) +- Musl: unify statx definitions ([#3978](https://github.com/rust-lang/libc/pulls/3978)) +- Remove array size hacks for Rust < 1.47 +- Remove repetitive words +- Use #[derive] for Copy/Clone in s! and friends +- Use some tricks to format macro bodies + +### Other + +- Apply formatting to macro bodies +- Bump libc-test to Rust 2021 Edition +- CI: Add a check that semver files don't contain duplicate entries +- CI: Add `fanotify_event_info_fid` to FAM-exempt types +- CI: Allow rustfmt to organize imports ([#4136](https://github.com/rust-lang/libc/pulls/4136)) +- CI: Always run rustfmt +- CI: Change 32-bit Docker images to use EOL repos +- CI: Change 64-bit Docker images to ubuntu:24.10 +- CI: Disable the check for >1 s! invocation +- CI: Ensure build channels get run even if FILTER is unset +- CI: Ensure there is a fallback for no_std +- CI: Fix cases where unset variables cause errors +- CI: Naming adjustments and cleanup +- CI: Only invoke rustup if running in CI +- CI: Remove the logic to handle old rust versions +- CI: Set -u (error on unset) in all script files +- CI: add support for `loongarch64-unknown-linux-musl` +- CI: make `aarch64-apple-darwin` not a nightly-only target +- CI: run shellcheck on all scripts +- CI: update musl headers to Linux 6.6 +- CI: use qemu-sparc64 to run sparc64 tests +- Drop the `libc_const_extern_fn` conditional +- Drop the `libc_underscore_const_names` conditional +- Explicitly set the edition to 2015 +- Introduce a `git-blame-ignore-revs` file +- Tests: Ignore fields as required on Ubuntu 24.10 +- Tests: skip `ATF_*` constants for OpenBSD +- Triagebot: Add an autolabel for CI ## [0.2.164](https://github.com/rust-lang/libc/compare/0.2.163...0.2.164) - 2024-11-16 diff --git a/Cargo.toml b/Cargo.toml index 6d15865ab6845..1faa6ba16fb38 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.164" +version = "0.2.165" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 62329d609a32f..39e42c8b7875b 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -14,7 +14,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.164" +version = "0.2.165" default-features = false [build-dependencies] From 575fa43c3a2c8217654e7f94c82e16c9ad05473a Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 25 Nov 2024 16:03:38 -0500 Subject: [PATCH 0397/1228] release-plz: Add a new `cleanup` section --- .release-plz.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/.release-plz.toml b/.release-plz.toml index c60e41db71c44..c33c23c5b85a1 100644 --- a/.release-plz.toml +++ b/.release-plz.toml @@ -35,6 +35,7 @@ commit_parsers = [ { message = '(?i)^(\w+: )?feat', group = "added" }, { message = '(?i)^(\w+: )?add', group = "added" }, { message = '(?i)^(\w+: )?change', group = "changed" }, + { message = '(?i)^(\w+: )?cleanup', group = "cleanup" }, { message = '(?i)^(\w+: )?deprecate', group = "deprecated" }, { message = '(?i)^(\w+: )?remove', group = "removed" }, { message = '(?i)^(\w+: )?fix', group = "fixed" }, From 55bdcfa6cef6aee92645b810a0d30851a9cb7d52 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 25 Nov 2024 17:01:34 -0500 Subject: [PATCH 0398/1228] release-plz: Fix the pull request URL --- .release-plz.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.release-plz.toml b/.release-plz.toml index c33c23c5b85a1..6442af58ad98e 100644 --- a/.release-plz.toml +++ b/.release-plz.toml @@ -45,5 +45,5 @@ commit_parsers = [ link_parsers = [ # Extract backport patterns - { pattern = '\(backport <.*/(\d+)>\)', text = "#$1", href = "https://github.com/rust-lang/libc/pulls/$1"} + { pattern = '\(backport <.*/(\d+)>\)', text = "#$1", href = "https://github.com/rust-lang/libc/pull/$1"} ] From 24a8e7e9959aaccac328219048201f59e71fc9fe Mon Sep 17 00:00:00 2001 From: Taylor Cramer Date: Tue, 26 Nov 2024 10:58:04 -0800 Subject: [PATCH 0399/1228] Revert "Fix a few other array size hacks" This reverts commit d63be8b69b0736753213f5d933767866a5801ee7. --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 9 ++------- src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 +- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 43c2d0dfbe7f1..b6b750e0e8a52 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1144,7 +1144,7 @@ s! { pub sinfo_assoc_id: ::sctp_assoc_t, pub sinfo_keynumber: u16, pub sinfo_keynumber_valid: u16, - pub __reserve_pad: [u8; SCTP_ALIGN_RESV_PAD], + pub __reserve_pad: [[u8; 23]; 4], } pub struct sctp_extrcvinfo { @@ -1164,7 +1164,7 @@ s! { pub serinfo_next_ppid: u32, pub sinfo_keynumber: u16, pub sinfo_keynumber_valid: u16, - pub __reserve_pad: [u8; SCTP_ALIGN_RESV_PAD_SHORT], + pub __reserve_pad: [[u8; 19]; 4], } pub struct sctp_sndinfo { @@ -4865,11 +4865,6 @@ pub const SCTP_ASSOC_RESET_FAILED: ::c_int = 0x0008; pub const SCTP_STREAM_CHANGE_DENIED: ::c_int = 0x0004; pub const SCTP_STREAM_CHANGE_FAILED: ::c_int = 0x0008; -// sctp_uio.h - -pub const SCTP_ALIGN_RESV_PAD: usize = 92; -pub const SCTP_ALIGN_RESV_PAD_SHORT: usize = 76; - pub const KENV_DUMP_LOADER: ::c_int = 4; pub const KENV_DUMP_STATIC: ::c_int = 5; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 84358eb06dc81..8f3e7bbedcb50 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -520,7 +520,7 @@ s! { pub struct accept_filter_arg { pub af_name: [::c_char; 16], - pub af_arg: [::c_char; 256 - 16], + af_arg: [[::c_char; 10]; 24], } pub struct ki_sigset_t { From 4dc6a1c20e9f024339080d602332209b620c560b Mon Sep 17 00:00:00 2001 From: Taylor Cramer Date: Tue, 26 Nov 2024 11:00:08 -0800 Subject: [PATCH 0400/1228] Revert "Remove array size hacks for Rust < 1.47" This reverts commit 27ee6fe02ca0848b2af3cd747536264e4c7b697d. These array structure changes were breaking changes to the public API and should not have landed without a major version bump. --- libc-test/build.rs | 9 ++++++++- src/unix/bsd/apple/mod.rs | 4 +++- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/mod.rs | 2 +- src/unix/bsd/freebsdlike/mod.rs | 2 +- src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 +- src/unix/linux_like/android/b64/aarch64/mod.rs | 4 +++- src/unix/linux_like/android/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs | 4 +++- src/unix/linux_like/linux/musl/b64/aarch64/mod.rs | 2 +- 15 files changed, 28 insertions(+), 15 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 8a353e5d4a5fb..31a5e390e1831 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -400,7 +400,8 @@ fn test_apple(target: &str) { // FIXME: the array size has been changed since macOS 10.15 ([8] -> [7]). ("statfs", "f_reserved") => true, ("__darwin_arm_neon_state64", "__v") => true, - + // MAXPATHLEN is too big for auto-derive traits on arrays. + ("vnode_info_path", "vip_path") => true, ("ifreq", "ifr_ifru") => true, ("in6_ifreq", "ifr_ifru") => true, ("ifkpi", "ifk_data") => true, @@ -2763,6 +2764,8 @@ fn test_freebsd(target: &str) { ("umutex", "m_owner") => true, // c_has_waiters field is a volatile int32_t ("ucond", "c_has_waiters") => true, + // is PATH_MAX long but tests can't accept multi array as equivalent. + ("kinfo_vmentry", "kve_path") => true, // a_un field is a union ("Elf32_Auxinfo", "a_un") => true, @@ -2791,6 +2794,10 @@ fn test_freebsd(target: &str) { // Anonymous type. ("filestat", "next") => true, + // We ignore this field because we needed to use a hack in order to make rust 1.19 + // happy... + ("kinfo_proc", "ki_sparestrings") => true, + // `__sem_base` is a private struct field ("semid_ds", "__sem_base") => true, diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 057bdfe7432e3..34bd285666610 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -939,7 +939,9 @@ s! { pub struct vnode_info_path { pub vip_vi: vnode_info, - pub vip_path: [::c_char; ::MAXPATHLEN as usize], + // Normally it's `vip_path: [::c_char; MAXPATHLEN]` but because libc supports an old rustc + // version, we go around this limitation like this. + pub vip_path: [[::c_char; 32]; 32], } pub struct proc_vnodepathinfo { diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 88292afdb1208..9bf25b335cc7e 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -517,7 +517,7 @@ s_no_extra_traits! { pub mc_ownedfp: ::c_uint, __reserved: ::c_uint, __unused: [::c_uint; 8], - pub mc_fpregs: [::c_uint; 256], + pub mc_fpregs: [[::c_uint; 8]; 32], } pub struct ucontext_t { diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs index cb62ee608a8b4..f62b77ba8e3c2 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs @@ -166,7 +166,7 @@ s! { /// More thread name. pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], /// Spare string space. - pub ki_sparestrings: [::c_char; 46], + pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq /// Spare room for growth. pub ki_spareints: [::c_int; ::KI_NSPARE_INT], /// Which cpu we are on. diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index c2a168a501e58..c5b85f99c1d49 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -173,7 +173,7 @@ s! { /// More thread name. pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], /// Spare string space. - pub ki_sparestrings: [::c_char; 46], + 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. diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs index a663a3b5db1a7..b0a2786022011 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -183,7 +183,7 @@ s! { /// More thread name. pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], /// Spare string space. - pub ki_sparestrings: [::c_char; 46], + 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. diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index afca6890711ae..265cc2ba595d9 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -183,7 +183,7 @@ s! { /// More thread name. pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], /// Spare string space. - pub ki_sparestrings: [::c_char; 46], + 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. diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index 031f41364804d..47012e38b7db7 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -183,7 +183,7 @@ s! { /// More thread name. pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], /// Spare string space. - pub ki_sparestrings: [::c_char; 46], + 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. diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index b6b750e0e8a52..e9bc592ddd61d 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -457,7 +457,7 @@ s! { _kve_is_spare: [::c_int; 8], #[cfg(freebsd11)] _kve_is_spare: [::c_int; 12], - pub kve_path: [::c_char; ::PATH_MAX as usize], + pub kve_path: [[::c_char; 32]; 32], } pub struct __c_anonymous_filestat { diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 0ef069c8a4fd4..17723dda97a98 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -284,7 +284,7 @@ s! { pub struct accept_filter_arg { pub af_name: [::c_char; 16], - af_arg: [::c_char; 240], + af_arg: [[::c_char; 10]; 24], } pub struct ptrace_io_desc { diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 8f3e7bbedcb50..a0d3283979e19 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -671,7 +671,7 @@ s! { pub kve_vn_rdev: u64, pub kve_vn_type: u32, pub kve_vn_mode: u32, - pub kve_path: [::c_char; ::PATH_MAX as usize], + pub kve_path: [[::c_char; 32]; 32], } pub struct __c_anonymous_posix_spawn_fae_open { diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index 2ea2d2cfcc0ac..1bd4491070716 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -72,7 +72,9 @@ s! { pub sp: ::c_ulonglong, pub pc: ::c_ulonglong, pub pstate: ::c_ulonglong, - __reserved: [u64; 512], + // nested arrays to get the right size/length while being able to + // auto-derive traits like Debug + __reserved: [[u64; 32]; 16], } pub struct user_fpsimd_struct { diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index db83b494a4a48..df24f67afd180 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -608,7 +608,7 @@ s_no_extra_traits! { pub struct prop_info { __name: [::c_char; 32], __serial: ::c_uint, - __value: [::c_char; 92], + __value: [[::c_char; 4]; 23], } pub union __c_anonymous_ifr_ifru { diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index 82273217aacf1..263a942068926 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -212,7 +212,9 @@ s! { pub sp: ::c_ulonglong, pub pc: ::c_ulonglong, pub pstate: ::c_ulonglong, - __reserved: [u64; 512], + // nested arrays to get the right size/length while being able to + // auto-derive traits like Debug + __reserved: [[u64; 32]; 16], } pub struct user_fpsimd_struct { diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index 6528fa2d84e3e..2fd68d95187bf 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -84,7 +84,7 @@ s! { pub sp: ::c_ulong, pub pc: ::c_ulong, pub pstate: ::c_ulong, - __reserved: [u64; 512], + __reserved: [[u64; 32]; 16], } #[repr(align(8))] From a1c30e3fa5bf358dd8f8194ffcd6d8ffeb87e261 Mon Sep 17 00:00:00 2001 From: Taylor Cramer Date: Tue, 26 Nov 2024 11:57:19 -0800 Subject: [PATCH 0401/1228] Remove array-size hacks for private fields --- src/unix/bsd/freebsdlike/mod.rs | 2 +- src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 +- src/unix/linux_like/android/b64/aarch64/mod.rs | 4 +--- src/unix/linux_like/android/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs | 4 +--- src/unix/linux_like/linux/musl/b64/aarch64/mod.rs | 2 +- 6 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 17723dda97a98..7628eee7f5c11 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -284,7 +284,7 @@ s! { pub struct accept_filter_arg { pub af_name: [::c_char; 16], - af_arg: [[::c_char; 10]; 24], + af_arg: [::c_char; 256 - 16], } pub struct ptrace_io_desc { diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index a0d3283979e19..a0b1c232d69d9 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -520,7 +520,7 @@ s! { pub struct accept_filter_arg { pub af_name: [::c_char; 16], - af_arg: [[::c_char; 10]; 24], + af_arg: [::c_char; 256 - 16], } pub struct ki_sigset_t { diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index 1bd4491070716..2ea2d2cfcc0ac 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -72,9 +72,7 @@ s! { pub sp: ::c_ulonglong, pub pc: ::c_ulonglong, pub pstate: ::c_ulonglong, - // nested arrays to get the right size/length while being able to - // auto-derive traits like Debug - __reserved: [[u64; 32]; 16], + __reserved: [u64; 512], } pub struct user_fpsimd_struct { diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index df24f67afd180..db83b494a4a48 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -608,7 +608,7 @@ s_no_extra_traits! { pub struct prop_info { __name: [::c_char; 32], __serial: ::c_uint, - __value: [[::c_char; 4]; 23], + __value: [::c_char; 92], } pub union __c_anonymous_ifr_ifru { diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index 263a942068926..82273217aacf1 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -212,9 +212,7 @@ s! { pub sp: ::c_ulonglong, pub pc: ::c_ulonglong, pub pstate: ::c_ulonglong, - // nested arrays to get the right size/length while being able to - // auto-derive traits like Debug - __reserved: [[u64; 32]; 16], + __reserved: [u64; 512], } pub struct user_fpsimd_struct { diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index 2fd68d95187bf..6528fa2d84e3e 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -84,7 +84,7 @@ s! { pub sp: ::c_ulong, pub pc: ::c_ulong, pub pstate: ::c_ulong, - __reserved: [[u64; 32]; 16], + __reserved: [u64; 512], } #[repr(align(8))] From 83490a705770be5bddf86e476e1734944d480a96 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 26 Nov 2024 15:36:00 -0500 Subject: [PATCH 0402/1228] tests: Ensure all tests in the workspace are run Specifically, this should ensure that unit tests in the `libc` crate don't get missed. (backport ) (cherry picked from commit f5530335b91d6c838a007ad5ad980036d519e01a) --- ci/run.sh | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/ci/run.sh b/ci/run.sh index 5ac4070d928aa..9754118f742b8 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -84,16 +84,15 @@ cmd="cargo test --target $target ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"}" # Run tests in the `libc` crate case "$target" in + # Only run `libc-test` # FIXME(android): unit tests fail to start on Android # FIXME(s390x): unit tests fail to locate glibc - *android*) ;; - *s390x*) ;; - *) $cmd + *android*) cmd="$cmd --manifest-path libc-test/Cargo.toml" ;; + *s390x*) cmd="$cmd --manifest-path libc-test/Cargo.toml" ;; + # For all other platforms, test everything in the workspace + *) cmd="$cmd --workspace" esac -# Everything else is in `libc-test` -cmd="$cmd --manifest-path libc-test/Cargo.toml" - if [ "$target" = "s390x-unknown-linux-gnu" ]; then # FIXME: s390x-unknown-linux-gnu often fails to test due to timeout, # so we retry this N times. From 5d2b17f306e81a473480fe6ac0cf07bd04f1341a Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 26 Nov 2024 15:42:19 -0500 Subject: [PATCH 0403/1228] fix: Ensure that `const extern fn` is always enabled In [1] this conditional was dropped in favor of a Cargo feature, which was turned on by default in [2]. However, this did not help the case where `--no-default-features` is passed. Unfortunately we still can't drop this config entirely since `ctest` cannot parse the syntax, so change back to useing a `cfg` to control constness rather than a Cargo feature. Additionally, remove a portion of the macro's comment that is no longer relevant. Fixes: https://github.com/rust-lang/libc/issues/4149 [1]: https://github.com/rust-lang/libc/pull/4105 [2]: https://github.com/rust-lang/libc/pull/4134 (backport ) (cherry picked from commit e18ee8cd96e400291ca488ca879edeb27c8b1d73) --- Cargo.toml | 2 +- build.rs | 5 +++++ src/macros.rs | 45 ++++++++++++++++++--------------------------- 3 files changed, 24 insertions(+), 28 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 1faa6ba16fb38..be4bd9f916d84 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -137,7 +137,7 @@ cargo-args = ["-Zbuild-std=core"] rustc-std-workspace-core = { version = "1.0.0", optional = true } [features] -default = ["const-extern-fn", "std"] +default = ["std"] std = [] rustc-dep-of-std = ['align', 'rustc-std-workspace-core'] extra_traits = [] diff --git a/build.rs b/build.rs index fe3b65e44b786..c04a3ba93595b 100644 --- a/build.rs +++ b/build.rs @@ -13,6 +13,8 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ "freebsd13", "freebsd14", "freebsd15", + // FIXME(ctest): this config shouldn't be needed but ctest can't parse `const extern fn` + "libc_const_extern_fn", "libc_deny_warnings", "libc_thread_local", "libc_ctest", @@ -80,6 +82,9 @@ fn main() { set_cfg("libc_thread_local"); } + // Set unconditionally when ctest is not being invoked. + 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. diff --git a/src/macros.rs b/src/macros.rs index 23fe345167100..354f42a568806 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -167,40 +167,31 @@ macro_rules! e { )*); } -// This is a pretty horrible hack to allow us to conditionally mark -// some functions as 'const', without requiring users of this macro -// to care about the "const-extern-fn" feature. +// This is a pretty horrible hack to allow us to conditionally mark some functions as 'const', +// without requiring users of this macro to care "libc_const_extern_fn". // -// When 'const-extern-fn' is enabled, we emit the captured 'const' keyword -// in the expanded function. +// When 'libc_const_extern_fn' is enabled, we emit the captured 'const' keyword in the expanded +// function. // -// When 'const-extern-fn' is disabled, we always emit a plain 'pub unsafe extern fn'. +// When 'libc_const_extern_fn' is disabled, we always emit a plain 'pub unsafe extern fn'. // Note that the expression matched by the macro is exactly the same - this allows -// users of this macro to work whether or not 'const-extern-fn' is enabled +// users of this macro to work whether or not 'libc_const_extern_fn' is enabled // // Unfortunately, we need to duplicate most of this macro between the 'cfg_if' blocks. // This is because 'const unsafe extern fn' won't even parse on older compilers, -// so we need to avoid emitting it at all of 'const-extern-fn'. +// so we need to avoid emitting it at all of 'libc_const_extern_fn'. // -// Specifically, moving the 'cfg_if' into the macro body will *not* work. -// Doing so would cause the '#[cfg(feature = "const-extern-fn")]' to be emitted -// into user code. The 'cfg' gate will not stop Rust from trying to parse the -// 'pub const unsafe extern fn', so users would get a compiler error even when -// the 'const-extern-fn' feature is disabled -// -// Note that users of this macro need to place 'const' in a weird position -// (after the closing ')' for the arguments, but before the return type). -// This was the only way I could satisfy the following two requirements: -// 1. Avoid ambiguity errors from 'macro_rules!' (which happen when writing '$foo:ident fn' -// 2. Allow users of this macro to mix 'pub fn foo' and 'pub const fn bar' within the same -// 'f!' block +// Specifically, moving the 'cfg_if' into the macro body will *not* work. Doing so would cause the +// '#[cfg(libc_const_extern_fn)]' to be emitted into user code. The 'cfg' gate will not stop Rust +// from trying to parse the 'pub const unsafe extern fn', so users would get a compiler error even +// when the 'libc_const_extern_fn' feature is disabled. // FIXME(ctest): ctest can't handle `const extern` functions, we should be able to remove this // cfg completely. // FIXME(ctest): ctest can't handle `$(,)?` so we use `$(,)*` which isn't quite correct. cfg_if! { - if #[cfg(feature = "const-extern-fn")] { - /// Define an `unsafe` function that is const as long as `const-extern-fn` is enabled. + if #[cfg(libc_const_extern_fn)] { + /// Define an `unsafe` function that is const as long as `libc_const_extern_fn` is enabled. macro_rules! f { ($( $(#[$attr:meta])* @@ -214,7 +205,7 @@ cfg_if! { )*) } - /// Define a safe function that is const as long as `const-extern-fn` is enabled. + /// Define a safe function that is const as long as `libc_const_extern_fn` is enabled. macro_rules! safe_f { ($( $(#[$attr:meta])* @@ -228,7 +219,7 @@ cfg_if! { )*) } - /// A nonpublic function that is const as long as `const-extern-fn` is enabled. + /// A nonpublic function that is const as long as `libc_const_extern_fn` is enabled. macro_rules! const_fn { ($( $(#[$attr:meta])* @@ -242,7 +233,7 @@ cfg_if! { )*) } } else { - /// Define an `unsafe` function that is const as long as `const-extern-fn` is enabled. + /// Define an `unsafe` function that is const as long as `libc_const_extern_fn` is enabled. macro_rules! f { ($( $(#[$attr:meta])* @@ -256,7 +247,7 @@ cfg_if! { )*) } - /// Define a safe function that is const as long as `const-extern-fn` is enabled. + /// Define a safe function that is const as long as `libc_const_extern_fn` is enabled. macro_rules! safe_f { ($( $(#[$attr:meta])* @@ -270,7 +261,7 @@ cfg_if! { )*) } - /// A nonpublic function that is const as long as `const-extern-fn` is enabled. + /// A nonpublic function that is const as long as `libc_const_extern_fn` is enabled. macro_rules! const_fn { ($( $(#[$attr:meta])* From 1e9ab864518b359fa4e50c22035111790ef2d483 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 20:32:02 +0000 Subject: [PATCH 0404/1228] chore: release v0.2.166 Co-authored-by: Trevor Gross --- CHANGELOG.md | 9 +++++++++ Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ecccc924ec340..5d8497823a660 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,15 @@ # Changelog ## [Unreleased] +## [0.2.166](https://github.com/rust-lang/libc/compare/0.2.165...0.2.166) - 2024-11-26 + +### Fixed + +This release resolves two cases of unintentional breakage from the previous release: + +- Revert removal of array size hacks [#4150](https://github.com/rust-lang/libc/pull/4150) +- Ensure `const extern` functions are always enabled [#4151](https://github.com/rust-lang/libc/pull/4151) + ## [0.2.165](https://github.com/rust-lang/libc/compare/0.2.164...0.2.165) - 2024-11-25 ### Added diff --git a/Cargo.toml b/Cargo.toml index be4bd9f916d84..97ba138b9db52 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.165" +version = "0.2.166" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 39e42c8b7875b..2e6c15bbd0735 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -14,7 +14,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.165" +version = "0.2.166" default-features = false [build-dependencies] From 8cb131f2b2c1417d4622917df5860b8f26b0e662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20S=C3=A1nchez=20Mu=C3=B1oz?= Date: Thu, 21 Nov 2024 21:52:55 +0100 Subject: [PATCH 0405/1228] hack: in `libc-test/build.rs`, copy `src` to `src-hotfix` and replace `crate::` with `::` This is needed because ctest2 cannot parse `crate::` in paths (backport ) (cherry picked from commit fda60173e6edd72cfabfa799fe77d5ac7bb8c721) --- libc-test/Cargo.toml | 1 + libc-test/build.rs | 72 +++++++++++++++++++++++++++++++------------- 2 files changed, 52 insertions(+), 21 deletions(-) diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 2e6c15bbd0735..c8e215985b83b 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -21,6 +21,7 @@ default-features = false cc = "1.0.83" # FIXME: Use fork ctest until the maintainer gets back. ctest2 = "0.4.3" +regex = "1.11.1" [features] default = ["std"] diff --git a/libc-test/build.rs b/libc-test/build.rs index 31a5e390e1831..12a04566de8bb 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -7,6 +7,10 @@ use std::io::{BufRead, BufReader, BufWriter, Write}; use std::path::{Path, PathBuf}; use std::{env, io}; +fn src_hotfix_dir() -> PathBuf { + Path::new(&env::var_os("OUT_DIR").unwrap()).join("src-hotfix") +} + fn do_cc() { let target = env::var("TARGET").unwrap(); if cfg!(unix) { @@ -150,11 +154,37 @@ fn main() { // Avoid unnecessary re-building. println!("cargo:rerun-if-changed=build.rs"); + let hotfix_dir = src_hotfix_dir(); + if std::fs::exists(&hotfix_dir).unwrap() { + std::fs::remove_dir_all(&hotfix_dir).unwrap(); + } + + // FIXME(ctest): ctest2 cannot parse `crate::` in paths, so replace them with `::` + let re = regex::bytes::Regex::new(r"(?-u:\b)crate::").unwrap(); + copy_dir_hotfix(Path::new("../src"), &hotfix_dir, &re, b"::"); + do_cc(); do_ctest(); do_semver(); } +fn copy_dir_hotfix(src: &Path, dst: &Path, regex: ®ex::bytes::Regex, replace: &[u8]) { + std::fs::create_dir(&dst).unwrap(); + for entry in src.read_dir().unwrap() { + let entry = entry.unwrap(); + let src_path = entry.path(); + let dst_path = dst.join(entry.file_name()); + if entry.file_type().unwrap().is_dir() { + copy_dir_hotfix(&src_path, &dst_path, regex, replace); + } else { + // Replace "crate::" with "::" + let src_data = std::fs::read(&src_path).unwrap(); + let dst_data = regex.replace_all(&src_data, b"::"); + std::fs::write(&dst_path, &dst_data).unwrap(); + } + } +} + macro_rules! headers { ($cfg:ident: [$m:expr]: $header:literal) => { if $m { @@ -464,7 +494,7 @@ fn test_apple(target: &str) { "uuid_t" | "vol_capabilities_set_t" => true, _ => false, }); - cfg.generate("../src/lib.rs", "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } fn test_openbsd(target: &str) { @@ -651,7 +681,7 @@ fn test_openbsd(target: &str) { } }); - cfg.generate("../src/lib.rs", "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } fn test_windows(target: &str) { @@ -780,7 +810,7 @@ fn test_windows(target: &str) { } }); - cfg.generate("../src/lib.rs", "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } fn test_redox(target: &str) { @@ -830,7 +860,7 @@ fn test_redox(target: &str) { "wchar.h", } - cfg.generate("../src/lib.rs", "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } fn test_solarish(target: &str) { @@ -1108,7 +1138,7 @@ fn test_solarish(target: &str) { } }); - cfg.generate("../src/lib.rs", "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } fn test_netbsd(target: &str) { @@ -1323,7 +1353,7 @@ fn test_netbsd(target: &str) { } }); - cfg.generate("../src/lib.rs", "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } fn test_dragonflybsd(target: &str) { @@ -1549,7 +1579,7 @@ fn test_dragonflybsd(target: &str) { (struct_ == "sigevent" && field == "sigev_notify_thread_id") }); - cfg.generate("../src/lib.rs", "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } fn test_wasi(target: &str) { @@ -1656,7 +1686,7 @@ fn test_wasi(target: &str) { // doesn't support sizeof. cfg.skip_field(|s, field| s == "dirent" && field == "d_name"); - cfg.generate("../src/lib.rs", "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } fn test_android(target: &str) { @@ -2149,7 +2179,7 @@ fn test_android(target: &str) { } }); - cfg.generate("../src/lib.rs", "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); test_linux_like_apis(target); } @@ -2821,7 +2851,7 @@ fn test_freebsd(target: &str) { }); } - cfg.generate("../src/lib.rs", "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } fn test_emscripten(target: &str) { @@ -3058,7 +3088,7 @@ fn test_emscripten(target: &str) { ].contains(&field)) }); - cfg.generate("../src/lib.rs", "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } fn test_neutrino(target: &str) { @@ -3311,7 +3341,7 @@ fn test_neutrino(target: &str) { cfg.skip_static(move |name| (name == "__dso_handle")); - cfg.generate("../src/lib.rs", "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } fn test_vxworks(target: &str) { @@ -3419,7 +3449,7 @@ fn test_vxworks(target: &str) { _ => false, }); - cfg.generate("../src/lib.rs", "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } fn test_linux(target: &str) { @@ -4553,7 +4583,7 @@ fn test_linux(target: &str) { _ => false, }); - cfg.generate("../src/lib.rs", "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); test_linux_like_apis(target); } @@ -4580,7 +4610,7 @@ fn test_linux_like_apis(target: &str) { }) .skip_const(|_| true) .skip_struct(|_| true); - cfg.generate("../src/lib.rs", "linux_strerror_r.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_strerror_r.rs"); } if linux || android || emscripten { @@ -4610,7 +4640,7 @@ fn test_linux_like_apis(target: &str) { t => t.to_string(), }); - cfg.generate("../src/lib.rs", "linux_fcntl.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_fcntl.rs"); } if linux || android { @@ -4634,7 +4664,7 @@ fn test_linux_like_apis(target: &str) { t if is_union => format!("union {}", t), t => t.to_string(), }); - cfg.generate("../src/lib.rs", "linux_termios.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_termios.rs"); } if linux || android { @@ -4662,7 +4692,7 @@ fn test_linux_like_apis(target: &str) { t if is_union => format!("union {}", t), t => t.to_string(), }); - cfg.generate("../src/lib.rs", "linux_ipv6.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_ipv6.rs"); } if linux || android { @@ -4684,7 +4714,7 @@ fn test_linux_like_apis(target: &str) { "Elf64_Phdr" | "Elf32_Phdr" => false, _ => true, }); - cfg.generate("../src/lib.rs", "linux_elf.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_elf.rs"); } if linux || android { @@ -4699,7 +4729,7 @@ fn test_linux_like_apis(target: &str) { }) .skip_struct(|_| true) .skip_type(|_| true); - cfg.generate("../src/lib.rs", "linux_if_arp.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_if_arp.rs"); } } @@ -5057,5 +5087,5 @@ fn test_haiku(target: &str) { s => s.to_string(), } }); - cfg.generate("../src/lib.rs", "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } From b8ac8c8a1fb5801c78d92d4a3eb1ea04111b83ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20S=C3=A1nchez=20Mu=C3=B1oz?= Date: Sat, 23 Nov 2024 12:45:42 +0100 Subject: [PATCH 0406/1228] Fix `unused_qualifications` (backport ) (cherry picked from commit 65e7837345c21477ffcd4c1d4865b693323d15f6) --- build.rs | 9 ++----- src/unix/linux_like/linux/mod.rs | 40 ++++++++++++++++---------------- src/unix/solarish/mod.rs | 16 +++++++------ 3 files changed, 31 insertions(+), 34 deletions(-) diff --git a/build.rs b/build.rs index c04a3ba93595b..8e9f877e83c9a 100644 --- a/build.rs +++ b/build.rs @@ -185,9 +185,7 @@ fn rustc_minor_nightly() -> (u32, bool) { } fn which_freebsd() -> Option { - let output = std::process::Command::new("freebsd-version") - .output() - .ok()?; + let output = Command::new("freebsd-version").output().ok()?; if !output.status.success() { return None; } @@ -206,10 +204,7 @@ fn which_freebsd() -> Option { } fn emcc_version_code() -> Option { - let output = std::process::Command::new("emcc") - .arg("-dumpversion") - .output() - .ok()?; + let output = Command::new("emcc").arg("-dumpversion").output().ok()?; if !output.status.success() { return None; } diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 93dc33702a022..862aa09a55329 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1,6 +1,6 @@ //! Linux-specific definitions for linux-like values -use core::mem; +use core::mem::size_of; pub type useconds_t = u32; pub type dev_t = u64; @@ -3766,15 +3766,15 @@ pub const TP_FT_REQ_FILL_RXHASH: ::__u32 = 1; pub const TPACKET_ALIGNMENT: usize = 16; -pub const TPACKET_HDRLEN: usize = ((mem::size_of::<::tpacket_hdr>() + TPACKET_ALIGNMENT - 1) +pub const TPACKET_HDRLEN: usize = ((size_of::<::tpacket_hdr>() + TPACKET_ALIGNMENT - 1) & !(TPACKET_ALIGNMENT - 1)) - + mem::size_of::<::sockaddr_ll>(); -pub const TPACKET2_HDRLEN: usize = ((mem::size_of::<::tpacket2_hdr>() + TPACKET_ALIGNMENT - 1) + + size_of::<::sockaddr_ll>(); +pub const TPACKET2_HDRLEN: usize = ((size_of::<::tpacket2_hdr>() + TPACKET_ALIGNMENT - 1) & !(TPACKET_ALIGNMENT - 1)) - + mem::size_of::<::sockaddr_ll>(); -pub const TPACKET3_HDRLEN: usize = ((mem::size_of::<::tpacket3_hdr>() + TPACKET_ALIGNMENT - 1) + + size_of::<::sockaddr_ll>(); +pub const TPACKET3_HDRLEN: usize = ((size_of::<::tpacket3_hdr>() + TPACKET_ALIGNMENT - 1) & !(TPACKET_ALIGNMENT - 1)) - + mem::size_of::<::sockaddr_ll>(); + + size_of::<::sockaddr_ll>(); // linux/netfilter.h pub const NF_DROP: ::c_int = 0; @@ -4238,11 +4238,11 @@ pub const IW_PMKID_CAND_PREAUTH: ::c_ulong = 0x00000001; pub const IW_EV_LCP_PK_LEN: usize = 4; pub const IW_EV_CHAR_PK_LEN: usize = 20; // IW_EV_LCP_PK_LEN + ::IFNAMSIZ; -pub const IW_EV_UINT_PK_LEN: usize = 8; // IW_EV_LCP_PK_LEN + ::mem::size_of::(); -pub const IW_EV_FREQ_PK_LEN: usize = 12; // IW_EV_LCP_PK_LEN + ::mem::size_of::(); -pub const IW_EV_PARAM_PK_LEN: usize = 12; // IW_EV_LCP_PK_LEN + ::mem::size_of::(); -pub const IW_EV_ADDR_PK_LEN: usize = 20; // IW_EV_LCP_PK_LEN + ::mem::size_of::<::sockaddr>(); -pub const IW_EV_QUAL_PK_LEN: usize = 8; // IW_EV_LCP_PK_LEN + ::mem::size_of::(); +pub const IW_EV_UINT_PK_LEN: usize = 8; // IW_EV_LCP_PK_LEN + size_of::(); +pub const IW_EV_FREQ_PK_LEN: usize = 12; // IW_EV_LCP_PK_LEN + size_of::(); +pub const IW_EV_PARAM_PK_LEN: usize = 12; // IW_EV_LCP_PK_LEN + size_of::(); +pub const IW_EV_ADDR_PK_LEN: usize = 20; // IW_EV_LCP_PK_LEN + size_of::<::sockaddr>(); +pub const IW_EV_QUAL_PK_LEN: usize = 8; // IW_EV_LCP_PK_LEN + size_of::(); pub const IW_EV_POINT_PK_LEN: usize = 8; // IW_EV_LCP_PK_LEN + 4; pub const IPTOS_TOS_MASK: u8 = 0x1E; @@ -5322,9 +5322,9 @@ pub const CANXL_MAX_DLEN: usize = 2048; pub const CANXL_XLF: ::c_int = 0x80; pub const CANXL_SEC: ::c_int = 0x01; -pub const CAN_MTU: usize = ::mem::size_of::(); -pub const CANFD_MTU: usize = ::mem::size_of::(); -pub const CANXL_MTU: usize = ::mem::size_of::(); +pub const CAN_MTU: usize = size_of::(); +pub const CANFD_MTU: usize = size_of::(); +pub const CANXL_MTU: usize = size_of::(); // FIXME(offset_of): use `core::mem::offset_of!` once that is available // https://github.com/rust-lang/rfcs/pull/3308 // pub const CANXL_HDR_SIZE: usize = core::mem::offset_of!(canxl_frame, data); @@ -5800,17 +5800,17 @@ pub(crate) const fn _IO(ty: u32, nr: u32) -> u32 { /// Build an ioctl number for an read-only ioctl. pub(crate) const fn _IOR(ty: u32, nr: u32) -> u32 { - _IOC(_IOC_READ, ty, nr, core::mem::size_of::()) + _IOC(_IOC_READ, ty, nr, size_of::()) } /// Build an ioctl number for an write-only ioctl. pub(crate) const fn _IOW(ty: u32, nr: u32) -> u32 { - _IOC(_IOC_WRITE, ty, nr, core::mem::size_of::()) + _IOC(_IOC_WRITE, ty, nr, size_of::()) } /// Build an ioctl number for a read-write ioctl. pub(crate) const fn _IOWR(ty: u32, nr: u32) -> u32 { - _IOC(_IOC_READ | _IOC_WRITE, ty, nr, core::mem::size_of::()) + _IOC(_IOC_READ | _IOC_WRITE, ty, nr, size_of::()) } f! { @@ -5819,7 +5819,7 @@ f! { } pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { - if ((*cmsg).cmsg_len as usize) < ::mem::size_of::() { + if ((*cmsg).cmsg_len as usize) < size_of::() { return 0 as *mut cmsghdr; }; let next = (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; @@ -5875,7 +5875,7 @@ f! { } pub fn CPU_COUNT(cpuset: &cpu_set_t) -> ::c_int { - CPU_COUNT_S(::mem::size_of::(), cpuset) + CPU_COUNT_S(size_of::(), cpuset) } pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index c6fd956f5d3b5..c1b77ccfd0127 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1,3 +1,5 @@ +use core::mem::size_of; + pub type c_char = i8; pub type c_long = i64; pub type c_ulong = u64; @@ -710,9 +712,9 @@ cfg_if! { fn data_field_count(&self) -> usize { match self.si_signo { ::SIGSEGV | ::SIGBUS | ::SIGILL | ::SIGTRAP | ::SIGFPE => { - ::mem::size_of::() / ::mem::size_of::<::c_int>() + size_of::() / size_of::<::c_int>() } - ::SIGCLD => ::mem::size_of::() / ::mem::size_of::<::c_int>(), + ::SIGCLD => size_of::() / size_of::<::c_int>(), ::SIGHUP | ::SIGINT | ::SIGQUIT @@ -725,7 +727,7 @@ cfg_if! { | ::SIGUSR2 | ::SIGPWR | ::SIGWINCH - | ::SIGURG => ::mem::size_of::() / ::mem::size_of::<::c_int>(), + | ::SIGURG => size_of::() / size_of::<::c_int>(), _ => SIGINFO_DATA_SIZE, } } @@ -2456,7 +2458,7 @@ const _CMSG_HDR_ALIGNMENT: usize = 8; #[cfg(not(target_arch = "sparc64"))] const _CMSG_HDR_ALIGNMENT: usize = 4; -const _CMSG_DATA_ALIGNMENT: usize = ::mem::size_of::<::c_int>(); +const _CMSG_DATA_ALIGNMENT: usize = size_of::<::c_int>(); const NEWDEV: ::c_int = 1; @@ -2483,7 +2485,7 @@ f! { } pub fn CMSG_FIRSTHDR(mhdr: *const ::msghdr) -> *mut ::cmsghdr { - if ((*mhdr).msg_controllen as usize) < ::mem::size_of::<::cmsghdr>() { + if ((*mhdr).msg_controllen as usize) < size_of::<::cmsghdr>() { 0 as *mut ::cmsghdr } else { (*mhdr).msg_control as *mut ::cmsghdr @@ -2495,7 +2497,7 @@ f! { return ::CMSG_FIRSTHDR(mhdr); }; let next = _CMSG_HDR_ALIGN( - cmsg as usize + (*cmsg).cmsg_len as usize + ::mem::size_of::<::cmsghdr>(), + cmsg as usize + (*cmsg).cmsg_len as usize + size_of::<::cmsghdr>(), ); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { @@ -2506,7 +2508,7 @@ f! { } pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - _CMSG_HDR_ALIGN(::mem::size_of::<::cmsghdr>() as usize + length as usize) as ::c_uint + _CMSG_HDR_ALIGN(size_of::<::cmsghdr>() as usize + length as usize) as ::c_uint } pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { From 643182f7da26cedb09349b8bb3735c2e58ba24e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20S=C3=A1nchez=20Mu=C3=B1oz?= Date: Tue, 26 Nov 2024 14:02:54 +0100 Subject: [PATCH 0407/1228] Automatic migration to Rust edition 2021 Migration script: ```sh set -ex git restore Cargo.toml src for file in $(find src -name "*.rs"); do perl -pi -077 -e 's/(? "$file.attrs" awk '/^#!|^\/\/!/ {found=NR} END {if (found) {for (i=found+1; i<=NR; i++) print lines[i]} else {for (i=1; i<=NR; i++) print lines[i]}} {lines[NR]=$0}' \ "$file" > "$file.rest" cat "$file.attrs" > "$file" echo >> "$file" echo 'use crate::'"$type"';' >> "$file" echo >> "$file" cat "$file.rest" >> "$file" rm "$file.attrs" "$file.rest" done for file in $uses_type; do perl -pi -077 -e 's/(? 2018 target $target" cargo fix --target "$target" -Zbuild-std=core --features extra_traits --allow-dirty --edition --broken-code --lib done freebsd_versions=(freebsd13 freebsd14 freebsd15) for ver in "${freebsd_versions[@]}"; do echo "Migrating 2015 -> 2018 $ver" RUSTFLAGS="--cfg $ver" cargo fix --target i686-unknown-freebsd -Zbuild-std=core --features extra_traits --allow-dirty --edition --broken-code --lib RUSTFLAGS="--cfg $ver" cargo fix --target x86_64-unknown-freebsd -Zbuild-std=core --features extra_traits --allow-dirty --edition --broken-code --lib done perl -pi -077 -e 's/edition = "2015"/edition = "2018"/' Cargo.toml for target in "${targets[@]}"; do echo "Migrating 2018 -> 2021 target $target" cargo fix --target "$target" -Zbuild-std=core --features extra_traits --allow-dirty --edition --broken-code --lib done perl -pi -077 -e 's/edition = "2018"/edition = "2021"/' Cargo.toml for target in "${targets[@]}"; do echo "Checking target $target" cargo check --target "$target" -Zbuild-std=core --features extra_traits --lib || { echo "Failed for target $target" exit 1 } done for ver in "${freebsd_versions[@]}"; do echo "Checking $ver" RUSTFLAGS="--cfg $ver" cargo check --target i686-unknown-freebsd -Zbuild-std=core --features extra_traits --lib || { echo "Failed for i686 $freebsd_versions" exit 1 } RUSTFLAGS="--cfg $ver" cargo check --target x86_64-unknown-freebsd -Zbuild-std=core --features extra_traits || --lib { echo "Failed for x86_64 $freebsd_versions" exit 1 } done ci/style.sh ``` (backport ) (cherry picked from commit 20f6aa4c8135ba5e2c079ff21b20f0a1be87e1c4) [ applied by rerunning the script rather than resolving conflicts. Also updated the script to fail on error and to pass `--lib` so `cargo fix` doesn't try to upgrade anything that requires `std`. -Trevor ] --- Cargo.toml | 2 +- src/fuchsia/aarch64.rs | 106 +- src/fuchsia/mod.rs | 5695 ++++++------- src/fuchsia/riscv64.rs | 62 +- src/fuchsia/x86_64.rs | 170 +- src/hermit.rs | 2 +- src/lib.rs | 44 +- src/psp.rs | 26 +- src/solid/mod.rs | 32 +- src/teeos/mod.rs | 2 +- src/trusty.rs | 40 +- src/unix/aix/mod.rs | 5073 ++++++----- src/unix/aix/powerpc64.rs | 443 +- src/unix/bsd/apple/b32/mod.rs | 70 +- src/unix/bsd/apple/b64/aarch64/mod.rs | 16 +- src/unix/bsd/apple/b64/mod.rs | 64 +- src/unix/bsd/apple/b64/x86_64/mod.rs | 106 +- src/unix/bsd/apple/mod.rs | 6129 +++++++------ src/unix/bsd/freebsdlike/dragonfly/errno.rs | 6 +- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 1633 ++-- src/unix/bsd/freebsdlike/freebsd/aarch64.rs | 56 +- src/unix/bsd/freebsdlike/freebsd/arm.rs | 32 +- .../bsd/freebsdlike/freebsd/freebsd11/b32.rs | 46 +- .../bsd/freebsdlike/freebsd/freebsd11/b64.rs | 46 +- .../bsd/freebsdlike/freebsd/freebsd11/mod.rs | 304 +- .../bsd/freebsdlike/freebsd/freebsd12/mod.rs | 191 +- .../freebsdlike/freebsd/freebsd12/x86_64.rs | 12 +- .../bsd/freebsdlike/freebsd/freebsd13/mod.rs | 397 +- .../freebsdlike/freebsd/freebsd13/x86_64.rs | 12 +- .../bsd/freebsdlike/freebsd/freebsd14/mod.rs | 397 +- .../freebsdlike/freebsd/freebsd14/x86_64.rs | 26 +- .../bsd/freebsdlike/freebsd/freebsd15/mod.rs | 397 +- .../freebsdlike/freebsd/freebsd15/x86_64.rs | 26 +- src/unix/bsd/freebsdlike/freebsd/mod.rs | 5302 ++++++------ src/unix/bsd/freebsdlike/freebsd/powerpc.rs | 32 +- src/unix/bsd/freebsdlike/freebsd/powerpc64.rs | 32 +- src/unix/bsd/freebsdlike/freebsd/riscv64.rs | 68 +- src/unix/bsd/freebsdlike/freebsd/x86.rs | 34 +- .../bsd/freebsdlike/freebsd/x86_64/mod.rs | 62 +- src/unix/bsd/freebsdlike/mod.rs | 2863 ++++--- src/unix/bsd/mod.rs | 1049 +-- src/unix/bsd/netbsdlike/mod.rs | 1359 ++- src/unix/bsd/netbsdlike/netbsd/aarch64.rs | 146 +- src/unix/bsd/netbsdlike/netbsd/arm.rs | 128 +- src/unix/bsd/netbsdlike/netbsd/mips.rs | 14 +- src/unix/bsd/netbsdlike/netbsd/mod.rs | 3202 ++++--- src/unix/bsd/netbsdlike/netbsd/powerpc.rs | 12 +- src/unix/bsd/netbsdlike/netbsd/riscv64.rs | 98 +- src/unix/bsd/netbsdlike/netbsd/sparc64.rs | 4 +- src/unix/bsd/netbsdlike/netbsd/x86.rs | 6 +- src/unix/bsd/netbsdlike/netbsd/x86_64.rs | 80 +- src/unix/bsd/netbsdlike/openbsd/aarch64.rs | 20 +- src/unix/bsd/netbsdlike/openbsd/arm.rs | 4 +- src/unix/bsd/netbsdlike/openbsd/mod.rs | 2262 +++-- src/unix/bsd/netbsdlike/openbsd/powerpc.rs | 4 +- src/unix/bsd/netbsdlike/openbsd/powerpc64.rs | 2 +- src/unix/bsd/netbsdlike/openbsd/riscv64.rs | 30 +- src/unix/bsd/netbsdlike/openbsd/x86.rs | 4 +- src/unix/bsd/netbsdlike/openbsd/x86_64.rs | 80 +- src/unix/haiku/b32.rs | 22 +- src/unix/haiku/b64.rs | 22 +- src/unix/haiku/mod.rs | 2768 +++--- src/unix/haiku/native.rs | 469 +- src/unix/haiku/x86_64.rs | 112 +- src/unix/hurd/b32.rs | 78 +- src/unix/hurd/b64.rs | 78 +- src/unix/hurd/mod.rs | 5577 ++++++------ src/unix/linux_like/android/b32/arm.rs | 888 +- src/unix/linux_like/android/b32/mod.rs | 222 +- src/unix/linux_like/android/b32/x86/mod.rs | 977 ++- .../linux_like/android/b64/aarch64/mod.rs | 850 +- src/unix/linux_like/android/b64/mod.rs | 176 +- .../linux_like/android/b64/riscv64/mod.rs | 716 +- src/unix/linux_like/android/b64/x86_64/mod.rs | 1070 +-- src/unix/linux_like/android/mod.rs | 5757 +++++++------ src/unix/linux_like/emscripten/lfs64.rs | 206 +- src/unix/linux_like/emscripten/mod.rs | 2249 ++--- src/unix/linux_like/linux/arch/generic/mod.rs | 546 +- src/unix/linux_like/linux/arch/mips/mod.rs | 548 +- src/unix/linux_like/linux/arch/powerpc/mod.rs | 516 +- src/unix/linux_like/linux/arch/sparc/mod.rs | 498 +- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 1572 ++-- src/unix/linux_like/linux/gnu/b32/csky/mod.rs | 1292 +-- src/unix/linux_like/linux/gnu/b32/m68k/mod.rs | 1264 +-- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 1492 ++-- src/unix/linux_like/linux/gnu/b32/mod.rs | 338 +- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 1474 ++-- .../linux_like/linux/gnu/b32/riscv32/mod.rs | 1388 +-- .../linux_like/linux/gnu/b32/sparc/mod.rs | 1494 ++-- src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 1736 ++-- .../linux_like/linux/gnu/b64/aarch64/ilp32.rs | 16 +- .../linux_like/linux/gnu/b64/aarch64/lp64.rs | 22 +- .../linux_like/linux/gnu/b64/aarch64/mod.rs | 1628 ++-- .../linux/gnu/b64/loongarch64/mod.rs | 1505 ++-- .../linux_like/linux/gnu/b64/mips64/mod.rs | 1582 ++-- src/unix/linux_like/linux/gnu/b64/mod.rs | 46 +- .../linux_like/linux/gnu/b64/powerpc64/mod.rs | 1602 ++-- .../linux_like/linux/gnu/b64/riscv64/mod.rs | 1564 ++-- src/unix/linux_like/linux/gnu/b64/s390x.rs | 1570 ++-- .../linux_like/linux/gnu/b64/sparc64/mod.rs | 1591 ++-- .../linux_like/linux/gnu/b64/x86_64/mod.rs | 1076 +-- .../linux/gnu/b64/x86_64/not_x32.rs | 772 +- .../linux_like/linux/gnu/b64/x86_64/x32.rs | 736 +- src/unix/linux_like/linux/gnu/mod.rs | 1685 ++-- src/unix/linux_like/linux/mod.rs | 7554 ++++++++--------- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 1398 +-- src/unix/linux_like/linux/musl/b32/hexagon.rs | 1182 +-- .../linux_like/linux/musl/b32/mips/mod.rs | 1392 +-- src/unix/linux_like/linux/musl/b32/mod.rs | 34 +- src/unix/linux_like/linux/musl/b32/powerpc.rs | 1388 +-- .../linux_like/linux/musl/b32/riscv32/mod.rs | 1170 +-- src/unix/linux_like/linux/musl/b32/x86/mod.rs | 1508 ++-- .../linux_like/linux/musl/b64/aarch64/mod.rs | 1248 +-- .../linux/musl/b64/loongarch64/mod.rs | 1189 +-- src/unix/linux_like/linux/musl/b64/mips64.rs | 1232 +-- src/unix/linux_like/linux/musl/b64/mod.rs | 90 +- .../linux_like/linux/musl/b64/powerpc64.rs | 1334 +-- .../linux_like/linux/musl/b64/riscv64/mod.rs | 1177 +-- src/unix/linux_like/linux/musl/b64/s390x.rs | 1276 +-- .../linux_like/linux/musl/b64/x86_64/mod.rs | 1524 ++-- src/unix/linux_like/linux/musl/lfs64.rs | 242 +- src/unix/linux_like/linux/musl/mod.rs | 1160 +-- src/unix/linux_like/linux/uclibc/arm/mod.rs | 1624 ++-- .../linux/uclibc/mips/mips32/mod.rs | 1164 +-- .../linux/uclibc/mips/mips64/mod.rs | 152 +- src/unix/linux_like/linux/uclibc/mips/mod.rs | 516 +- src/unix/linux_like/linux/uclibc/mod.rs | 616 +- .../linux_like/linux/uclibc/x86_64/l4re.rs | 30 +- .../linux_like/linux/uclibc/x86_64/mod.rs | 385 +- .../linux_like/linux/uclibc/x86_64/other.rs | 4 +- src/unix/linux_like/mod.rs | 2408 +++--- src/unix/mod.rs | 838 +- src/unix/newlib/aarch64/mod.rs | 40 +- src/unix/newlib/arm/mod.rs | 54 +- src/unix/newlib/espidf/mod.rs | 148 +- src/unix/newlib/generic.rs | 44 +- src/unix/newlib/horizon/mod.rs | 360 +- src/unix/newlib/mod.rs | 972 ++- src/unix/newlib/powerpc/mod.rs | 6 +- src/unix/newlib/rtems/mod.rs | 176 +- src/unix/newlib/vita/mod.rs | 300 +- src/unix/nto/aarch64.rs | 14 +- src/unix/nto/mod.rs | 4429 +++++----- src/unix/nto/neutrino.rs | 1250 ++- src/unix/nto/x86_64.rs | 16 +- src/unix/nuttx/mod.rs | 10 +- src/unix/redox/mod.rs | 1637 ++-- src/unix/solarish/compat.rs | 120 +- src/unix/solarish/illumos.rs | 368 +- src/unix/solarish/mod.rs | 4009 ++++----- src/unix/solarish/solaris.rs | 181 +- src/unix/solarish/x86.rs | 20 +- src/unix/solarish/x86_64.rs | 148 +- src/vxworks/mod.rs | 1923 ++--- src/wasi/mod.rs | 422 +- src/wasi/p2.rs | 218 +- src/windows/gnu/mod.rs | 18 +- src/windows/mod.rs | 496 +- src/windows/msvc/mod.rs | 19 +- 159 files changed, 70739 insertions(+), 70844 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 97ba138b9db52..dd35017b13235 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ version = "0.2.166" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" -edition = "2015" +edition = "2021" repository = "https://github.com/rust-lang/libc" homepage = "https://github.com/rust-lang/libc" documentation = "https://docs.rs/libc/" diff --git a/src/fuchsia/aarch64.rs b/src/fuchsia/aarch64.rs index 33e3934d661ad..ddcd9d3f5631e 100644 --- a/src/fuchsia/aarch64.rs +++ b/src/fuchsia/aarch64.rs @@ -1,67 +1,69 @@ +use crate::{c_int, c_long, c_uint, c_ulong, c_ulonglong, c_ushort, off_t, size_t}; + pub type c_char = u8; -pub type __u64 = ::c_ulonglong; +pub type __u64 = c_ulonglong; pub type wchar_t = u32; -pub type nlink_t = ::c_ulong; -pub type blksize_t = ::c_long; +pub type nlink_t = c_ulong; +pub type blksize_t = c_long; s! { 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_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad0: ::c_ulong, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - __pad1: ::c_int, - 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_uint; 2], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad0: c_ulong, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + __pad1: c_int, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_uint; 2], } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad0: ::c_ulong, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - __pad1: ::c_int, - 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_uint; 2], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad0: c_ulong, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + __pad1: c_int, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_uint; 2], } 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, + pub __ipc_perm_key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub __seq: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } } // 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; +pub const MINSIGSTKSZ: size_t = 6144; +pub const SIGSTKSZ: size_t = 12288; diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 6a7224013ef72..5600488f88511 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -3,7 +3,7 @@ //! More functions and definitions can be found in the more specific modules //! according to the platform in question. -use c_void; +use crate::c_void; // PUB_TYPE @@ -20,7 +20,7 @@ pub type c_ulonglong = u64; pub type intmax_t = i64; pub type uintmax_t = u64; -pub type locale_t = *mut ::c_void; +pub type locale_t = *mut c_void; pub type size_t = usize; pub type ptrdiff_t = isize; @@ -33,15 +33,15 @@ pub type uid_t = u32; pub type gid_t = u32; pub type in_addr_t = u32; pub type in_port_t = u16; -pub type sighandler_t = ::size_t; -pub type cc_t = ::c_uchar; +pub type sighandler_t = size_t; +pub type cc_t = c_uchar; pub type sa_family_t = u16; -pub type pthread_key_t = ::c_uint; -pub type speed_t = ::c_uint; -pub type tcflag_t = ::c_uint; -pub type clockid_t = ::c_int; -pub type key_t = ::c_int; -pub type id_t = ::c_uint; +pub type pthread_key_t = c_uint; +pub type speed_t = c_uint; +pub type tcflag_t = c_uint; +pub type clockid_t = c_int; +pub type key_t = c_int; +pub type id_t = c_uint; pub type useconds_t = u32; pub type dev_t = u64; pub type socklen_t = u32; @@ -51,17 +51,17 @@ pub type ino64_t = u64; pub type off64_t = i64; pub type blkcnt64_t = i64; pub type rlim64_t = u64; -pub type mqd_t = ::c_int; -pub type nfds_t = ::c_ulong; -pub type nl_item = ::c_int; -pub type idtype_t = ::c_uint; -pub type loff_t = ::c_longlong; - -pub type __u8 = ::c_uchar; -pub type __u16 = ::c_ushort; -pub type __s16 = ::c_short; -pub type __u32 = ::c_uint; -pub type __s32 = ::c_int; +pub type mqd_t = c_int; +pub type nfds_t = c_ulong; +pub type nl_item = c_int; +pub type idtype_t = c_uint; +pub type loff_t = c_longlong; + +pub type __u8 = c_uchar; +pub type __u16 = c_ushort; +pub type __s16 = c_short; +pub type __u32 = c_uint; +pub type __s32 = c_int; pub type Elf32_Half = u16; pub type Elf32_Word = u32; @@ -81,12 +81,12 @@ pub type ino_t = u64; pub type off_t = i64; pub type blkcnt_t = i64; -pub type shmatt_t = ::c_ulong; -pub type msgqnum_t = ::c_ulong; -pub type msglen_t = ::c_ulong; -pub type fsblkcnt_t = ::c_ulonglong; -pub type fsfilcnt_t = ::c_ulonglong; -pub type rlim_t = ::c_ulonglong; +pub type shmatt_t = c_ulong; +pub type msgqnum_t = c_ulong; +pub type msglen_t = c_ulong; +pub type fsblkcnt_t = c_ulonglong; +pub type fsfilcnt_t = c_ulonglong; +pub type rlim_t = c_ulonglong; pub type c_long = i64; pub type c_ulong = u64; @@ -95,16 +95,16 @@ pub type c_ulong = u64; // Presumably these should be `()` or an `extern type` (when that stabilizes). #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { +impl Copy for timezone {} +impl Clone for timezone { fn clone(&self) -> timezone { *self } } #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum DIR {} -impl ::Copy for DIR {} -impl ::Clone for DIR { +impl Copy for DIR {} +impl Clone for DIR { fn clone(&self) -> DIR { *self } @@ -112,8 +112,8 @@ impl ::Clone for DIR { #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum fpos64_t {} // FIXME: fill this out with a struct -impl ::Copy for fpos64_t {} -impl ::Clone for fpos64_t { +impl Copy for fpos64_t {} +impl Clone for fpos64_t { fn clone(&self) -> fpos64_t { *self } @@ -123,10 +123,10 @@ impl ::Clone for fpos64_t { s! { pub struct group { - pub gr_name: *mut ::c_char, - pub gr_passwd: *mut ::c_char, - pub gr_gid: ::gid_t, - pub gr_mem: *mut *mut ::c_char, + pub gr_name: *mut c_char, + pub gr_passwd: *mut c_char, + pub gr_gid: crate::gid_t, + pub gr_mem: *mut *mut c_char, } pub struct utimbuf { @@ -141,7 +141,7 @@ s! { pub struct timespec { pub tv_sec: time_t, - pub tv_nsec: ::c_long, + pub tv_nsec: c_long, } // FIXME: the rlimit and rusage related functions and types don't exist @@ -214,157 +214,157 @@ s! { pub struct ip_mreqn { pub imr_multiaddr: in_addr, pub imr_address: in_addr, - pub imr_ifindex: ::c_int, + pub imr_ifindex: c_int, } pub struct ipv6_mreq { pub ipv6mr_multiaddr: in6_addr, - pub ipv6mr_interface: ::c_uint, + pub ipv6mr_interface: c_uint, } pub struct hostent { - pub h_name: *mut ::c_char, - pub h_aliases: *mut *mut ::c_char, - pub h_addrtype: ::c_int, - pub h_length: ::c_int, - pub h_addr_list: *mut *mut ::c_char, + pub h_name: *mut c_char, + pub h_aliases: *mut *mut c_char, + pub h_addrtype: c_int, + pub h_length: c_int, + pub h_addr_list: *mut *mut c_char, } pub struct iovec { - pub iov_base: *mut ::c_void, - pub iov_len: ::size_t, + pub iov_base: *mut c_void, + pub iov_len: size_t, } pub struct pollfd { - pub fd: ::c_int, - pub events: ::c_short, - pub revents: ::c_short, + pub fd: c_int, + pub events: c_short, + pub revents: c_short, } pub struct winsize { - pub ws_row: ::c_ushort, - pub ws_col: ::c_ushort, - pub ws_xpixel: ::c_ushort, - pub ws_ypixel: ::c_ushort, + pub ws_row: c_ushort, + pub ws_col: c_ushort, + pub ws_xpixel: c_ushort, + pub ws_ypixel: c_ushort, } pub struct linger { - pub l_onoff: ::c_int, - pub l_linger: ::c_int, + pub l_onoff: c_int, + pub l_linger: c_int, } pub struct sigval { // Actually a union of an int and a void* - pub sival_ptr: *mut ::c_void, + pub sival_ptr: *mut c_void, } // pub struct itimerval { - pub it_interval: ::timeval, - pub it_value: ::timeval, + pub it_interval: crate::timeval, + pub it_value: crate::timeval, } // pub struct tms { - pub tms_utime: ::clock_t, - pub tms_stime: ::clock_t, - pub tms_cutime: ::clock_t, - pub tms_cstime: ::clock_t, + pub tms_utime: crate::clock_t, + pub tms_stime: crate::clock_t, + pub tms_cutime: crate::clock_t, + pub tms_cstime: crate::clock_t, } pub struct servent { - pub s_name: *mut ::c_char, - pub s_aliases: *mut *mut ::c_char, - pub s_port: ::c_int, - pub s_proto: *mut ::c_char, + pub s_name: *mut c_char, + pub s_aliases: *mut *mut c_char, + pub s_port: c_int, + pub s_proto: *mut c_char, } pub struct protoent { - pub p_name: *mut ::c_char, - pub p_aliases: *mut *mut ::c_char, - pub p_proto: ::c_int, + pub p_name: *mut c_char, + pub p_aliases: *mut *mut c_char, + pub p_proto: c_int, } pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_sigevent: ::sigevent, - __td: *mut ::c_void, - __lock: [::c_int; 2], - __err: ::c_int, - __ret: ::ssize_t, + pub aio_fildes: c_int, + pub aio_lio_opcode: c_int, + pub aio_reqprio: c_int, + pub aio_buf: *mut c_void, + pub aio_nbytes: size_t, + pub aio_sigevent: crate::sigevent, + __td: *mut c_void, + __lock: [c_int; 2], + __err: c_int, + __ret: ssize_t, pub aio_offset: off_t, - __next: *mut ::c_void, - __prev: *mut ::c_void, + __next: *mut c_void, + __prev: *mut c_void, #[cfg(target_pointer_width = "32")] - __dummy4: [::c_char; 24], + __dummy4: [c_char; 24], #[cfg(target_pointer_width = "64")] - __dummy4: [::c_char; 16], + __dummy4: [c_char; 16], } pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, + pub sa_flags: c_int, + pub sa_restorer: Option, } pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - pub __c_ispeed: ::speed_t, - pub __c_ospeed: ::speed_t, + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; crate::NCCS], + pub __c_ispeed: crate::speed_t, + pub __c_ospeed: crate::speed_t, } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct ucred { - pub pid: ::pid_t, - pub uid: ::uid_t, - pub gid: ::gid_t, + pub pid: crate::pid_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, } pub struct sockaddr { pub sa_family: sa_family_t, - pub sa_data: [::c_char; 14], + pub sa_data: [c_char; 14], } pub struct sockaddr_in { pub sin_family: sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, pub sin_zero: [u8; 8], } pub struct sockaddr_in6 { pub sin6_family: sa_family_t, - pub sin6_port: ::in_port_t, + pub sin6_port: crate::in_port_t, pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, + pub sin6_addr: crate::in6_addr, pub sin6_scope_id: u32, } pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, + pub ai_flags: c_int, + pub ai_family: c_int, + pub ai_socktype: c_int, + pub ai_protocol: c_int, pub ai_addrlen: socklen_t, - pub ai_addr: *mut ::sockaddr, + pub ai_addr: *mut crate::sockaddr, pub ai_canonname: *mut c_char, @@ -372,46 +372,46 @@ s! { } pub struct sockaddr_ll { - pub sll_family: ::c_ushort, - pub sll_protocol: ::c_ushort, - pub sll_ifindex: ::c_int, - pub sll_hatype: ::c_ushort, - pub sll_pkttype: ::c_uchar, - pub sll_halen: ::c_uchar, - pub sll_addr: [::c_uchar; 8], + pub sll_family: c_ushort, + pub sll_protocol: c_ushort, + pub sll_ifindex: c_int, + pub sll_hatype: c_ushort, + pub sll_pkttype: c_uchar, + pub sll_halen: c_uchar, + pub sll_addr: [c_uchar; 8], } pub struct fd_set { - fds_bits: [::c_ulong; FD_SETSIZE as usize / ULONG_SIZE], + fds_bits: [c_ulong; FD_SETSIZE as usize / ULONG_SIZE], } pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, - pub tm_gmtoff: ::c_long, - pub tm_zone: *const ::c_char, + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + pub tm_gmtoff: c_long, + pub tm_zone: *const c_char, } pub struct sched_param { - pub sched_priority: ::c_int, - pub sched_ss_low_priority: ::c_int, - pub sched_ss_repl_period: ::timespec, - pub sched_ss_init_budget: ::timespec, - pub sched_ss_max_repl: ::c_int, + pub sched_priority: c_int, + pub sched_ss_low_priority: c_int, + pub sched_ss_repl_period: crate::timespec, + pub sched_ss_init_budget: crate::timespec, + pub sched_ss_max_repl: c_int, } pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, + pub dli_fname: *const c_char, + pub dli_fbase: *mut c_void, + pub dli_sname: *const c_char, + pub dli_saddr: *mut c_void, } pub struct epoll_event { @@ -420,30 +420,30 @@ s! { } pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, + pub decimal_point: *mut c_char, + pub thousands_sep: *mut c_char, + pub grouping: *mut c_char, + pub int_curr_symbol: *mut c_char, + pub currency_symbol: *mut c_char, + pub mon_decimal_point: *mut c_char, + pub mon_thousands_sep: *mut c_char, + pub mon_grouping: *mut c_char, + pub positive_sign: *mut c_char, + pub negative_sign: *mut c_char, + pub int_frac_digits: c_char, + pub frac_digits: c_char, + pub p_cs_precedes: c_char, + pub p_sep_by_space: c_char, + pub n_cs_precedes: c_char, + pub n_sep_by_space: c_char, + pub p_sign_posn: c_char, + pub n_sign_posn: c_char, + pub int_p_cs_precedes: c_char, + pub int_p_sep_by_space: c_char, + pub int_n_cs_precedes: c_char, + pub int_n_sep_by_space: c_char, + pub int_p_sign_posn: c_char, + pub int_n_sign_posn: c_char, } pub struct rlimit64 { @@ -452,68 +452,68 @@ s! { } pub struct glob_t { - pub gl_pathc: ::size_t, + pub gl_pathc: size_t, pub gl_pathv: *mut *mut c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, + pub gl_offs: size_t, + pub gl_flags: c_int, - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, + __unused1: *mut c_void, + __unused2: *mut c_void, + __unused3: *mut c_void, + __unused4: *mut c_void, + __unused5: *mut c_void, } pub struct ifaddrs { pub ifa_next: *mut ifaddrs, pub ifa_name: *mut c_char, - pub ifa_flags: ::c_uint, - pub ifa_addr: *mut ::sockaddr, - pub ifa_netmask: *mut ::sockaddr, - pub ifa_ifu: *mut ::sockaddr, // FIXME This should be a union - pub ifa_data: *mut ::c_void, + pub ifa_flags: c_uint, + pub ifa_addr: *mut crate::sockaddr, + pub ifa_netmask: *mut crate::sockaddr, + pub ifa_ifu: *mut crate::sockaddr, // FIXME This should be a union + pub ifa_data: *mut c_void, } pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, + pub pw_name: *mut c_char, + pub pw_passwd: *mut c_char, + pub pw_uid: crate::uid_t, + pub pw_gid: crate::gid_t, + pub pw_gecos: *mut c_char, + pub pw_dir: *mut c_char, + pub pw_shell: *mut c_char, } pub struct spwd { - pub sp_namp: *mut ::c_char, - pub sp_pwdp: *mut ::c_char, - pub sp_lstchg: ::c_long, - pub sp_min: ::c_long, - pub sp_max: ::c_long, - pub sp_warn: ::c_long, - pub sp_inact: ::c_long, - pub sp_expire: ::c_long, - pub sp_flag: ::c_ulong, + pub sp_namp: *mut c_char, + pub sp_pwdp: *mut c_char, + pub sp_lstchg: c_long, + pub sp_min: c_long, + pub sp_max: c_long, + pub sp_warn: c_long, + pub sp_inact: c_long, + pub sp_expire: c_long, + pub sp_flag: c_ulong, } 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_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, #[cfg(target_endian = "little")] - pub f_fsid: ::c_ulong, + pub f_fsid: c_ulong, #[cfg(all(target_pointer_width = "32", not(target_arch = "x86_64")))] - __f_unused: ::c_int, + __f_unused: c_int, #[cfg(target_endian = "big")] - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct dqblk { @@ -554,12 +554,12 @@ s! { } pub struct itimerspec { - pub it_interval: ::timespec, - pub it_value: ::timespec, + pub it_interval: crate::timespec, + pub it_value: crate::timespec, } pub struct fsid_t { - __val: [::c_int; 2], + __val: [c_int; 2], } pub struct cpu_set_t { @@ -570,131 +570,131 @@ s! { } pub struct if_nameindex { - pub if_index: ::c_uint, - pub if_name: *mut ::c_char, + pub if_index: c_uint, + pub if_name: *mut c_char, } // System V IPC pub struct msginfo { - pub msgpool: ::c_int, - pub msgmap: ::c_int, - pub msgmax: ::c_int, - pub msgmnb: ::c_int, - pub msgmni: ::c_int, - pub msgssz: ::c_int, - pub msgtql: ::c_int, - pub msgseg: ::c_ushort, + pub msgpool: c_int, + pub msgmap: c_int, + pub msgmax: c_int, + pub msgmnb: c_int, + pub msgmni: c_int, + pub msgssz: c_int, + pub msgtql: c_int, + pub msgseg: c_ushort, } pub struct mmsghdr { - pub msg_hdr: ::msghdr, - pub msg_len: ::c_uint, + pub msg_hdr: crate::msghdr, + pub msg_len: c_uint, } pub struct sembuf { - pub sem_num: ::c_ushort, - pub sem_op: ::c_short, - pub sem_flg: ::c_short, + pub sem_num: c_ushort, + pub sem_op: c_short, + pub sem_flg: c_short, } pub struct input_event { - pub time: ::timeval, - pub type_: ::__u16, - pub code: ::__u16, - pub value: ::__s32, + pub time: crate::timeval, + pub type_: crate::__u16, + pub code: crate::__u16, + pub value: crate::__s32, } pub struct input_id { - pub bustype: ::__u16, - pub vendor: ::__u16, - pub product: ::__u16, - pub version: ::__u16, + pub bustype: crate::__u16, + pub vendor: crate::__u16, + pub product: crate::__u16, + pub version: crate::__u16, } pub struct input_absinfo { - pub value: ::__s32, - pub minimum: ::__s32, - pub maximum: ::__s32, - pub fuzz: ::__s32, - pub flat: ::__s32, - pub resolution: ::__s32, + pub value: crate::__s32, + pub minimum: crate::__s32, + pub maximum: crate::__s32, + pub fuzz: crate::__s32, + pub flat: crate::__s32, + pub resolution: crate::__s32, } pub struct input_keymap_entry { - pub flags: ::__u8, - pub len: ::__u8, - pub index: ::__u16, - pub keycode: ::__u32, - pub scancode: [::__u8; 32], + pub flags: crate::__u8, + pub len: crate::__u8, + pub index: crate::__u16, + pub keycode: crate::__u32, + pub scancode: [crate::__u8; 32], } pub struct input_mask { - pub type_: ::__u32, - pub codes_size: ::__u32, - pub codes_ptr: ::__u64, + pub type_: crate::__u32, + pub codes_size: crate::__u32, + pub codes_ptr: crate::__u64, } pub struct ff_replay { - pub length: ::__u16, - pub delay: ::__u16, + pub length: crate::__u16, + pub delay: crate::__u16, } pub struct ff_trigger { - pub button: ::__u16, - pub interval: ::__u16, + pub button: crate::__u16, + pub interval: crate::__u16, } pub struct ff_envelope { - pub attack_length: ::__u16, - pub attack_level: ::__u16, - pub fade_length: ::__u16, - pub fade_level: ::__u16, + pub attack_length: crate::__u16, + pub attack_level: crate::__u16, + pub fade_length: crate::__u16, + pub fade_level: crate::__u16, } pub struct ff_constant_effect { - pub level: ::__s16, + pub level: crate::__s16, pub envelope: ff_envelope, } pub struct ff_ramp_effect { - pub start_level: ::__s16, - pub end_level: ::__s16, + pub start_level: crate::__s16, + pub end_level: crate::__s16, pub envelope: ff_envelope, } pub struct ff_condition_effect { - pub right_saturation: ::__u16, - pub left_saturation: ::__u16, + pub right_saturation: crate::__u16, + pub left_saturation: crate::__u16, - pub right_coeff: ::__s16, - pub left_coeff: ::__s16, + pub right_coeff: crate::__s16, + pub left_coeff: crate::__s16, - pub deadband: ::__u16, - pub center: ::__s16, + pub deadband: crate::__u16, + pub center: crate::__s16, } pub struct ff_periodic_effect { - pub waveform: ::__u16, - pub period: ::__u16, - pub magnitude: ::__s16, - pub offset: ::__s16, - pub phase: ::__u16, + pub waveform: crate::__u16, + pub period: crate::__u16, + pub magnitude: crate::__s16, + pub offset: crate::__s16, + pub phase: crate::__u16, pub envelope: ff_envelope, - pub custom_len: ::__u32, - pub custom_data: *mut ::__s16, + pub custom_len: crate::__u32, + pub custom_data: *mut crate::__s16, } pub struct ff_rumble_effect { - pub strong_magnitude: ::__u16, - pub weak_magnitude: ::__u16, + pub strong_magnitude: crate::__u16, + pub weak_magnitude: crate::__u16, } pub struct ff_effect { - pub type_: ::__u16, - pub id: ::__s16, - pub direction: ::__u16, + pub type_: crate::__u16, + pub id: crate::__s16, + pub direction: crate::__u16, pub trigger: ff_trigger, pub replay: ff_replay, // FIXME(1.0): this is actually a union @@ -710,7 +710,7 @@ s! { #[cfg(target_pointer_width = "32")] pub dlpi_addr: Elf32_Addr, - pub dlpi_name: *const ::c_char, + pub dlpi_name: *const c_char, #[cfg(target_pointer_width = "64")] pub dlpi_phdr: *const Elf64_Phdr, @@ -722,10 +722,10 @@ s! { #[cfg(target_pointer_width = "32")] pub dlpi_phnum: Elf32_Half, - pub dlpi_adds: ::c_ulonglong, - pub dlpi_subs: ::c_ulonglong, - pub dlpi_tls_modid: ::size_t, - pub dlpi_tls_data: *mut ::c_void, + pub dlpi_adds: c_ulonglong, + pub dlpi_subs: c_ulonglong, + pub dlpi_tls_modid: size_t, + pub dlpi_tls_data: *mut c_void, } pub struct Elf32_Phdr { @@ -751,39 +751,39 @@ s! { } pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], + pub f_type: c_ulong, + pub f_bsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_ulong, + pub f_frsize: c_ulong, + pub f_flags: c_ulong, + pub f_spare: [c_ulong; 4], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } pub struct pthread_attr_t { @@ -791,96 +791,96 @@ s! { } pub struct sigset_t { - __val: [::c_ulong; 16], + __val: [c_ulong; 16], } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::c_ulong, - __pad1: ::c_ulong, - __pad2: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: c_ulong, + __pad1: c_ulong, + __pad2: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, + pub msg_perm: crate::ipc_perm, + pub msg_stime: crate::time_t, + pub msg_rtime: crate::time_t, + pub msg_ctime: crate::time_t, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __pad1: c_ulong, + __pad2: c_ulong, } pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], + pub f_type: c_ulong, + pub f_bsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_ulong, + pub f_frsize: c_ulong, + pub f_flags: c_ulong, + pub f_spare: [c_ulong; 4], } pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - __pad1: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - __pad2: ::socklen_t, - pub msg_flags: ::c_int, + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: c_int, + __pad1: c_int, + pub msg_control: *mut c_void, + pub msg_controllen: crate::socklen_t, + __pad2: crate::socklen_t, + pub msg_flags: c_int, } pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub __pad1: ::c_int, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub cmsg_len: crate::socklen_t, + pub __pad1: c_int, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } pub struct sem_t { - __val: [::c_int; 8], + __val: [c_int; 8], } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, + pub _pad: [c_int; 29], _align: [usize; 0], } pub struct termios2 { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; 19], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; 19], + pub c_ispeed: crate::speed_t, + pub c_ospeed: crate::speed_t, } pub struct in6_pktinfo { - pub ipi6_addr: ::in6_addr, - pub ipi6_ifindex: ::c_uint, + pub ipi6_addr: crate::in6_addr, + pub ipi6_ifindex: c_uint, } #[cfg_attr( @@ -892,73 +892,73 @@ s! { repr(align(8)) )] pub struct pthread_mutexattr_t { - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + size: [u8; crate::__SIZEOF_PTHREAD_MUTEXATTR_T], } #[cfg_attr(target_pointer_width = "32", repr(align(4)))] #[cfg_attr(target_pointer_width = "64", repr(align(8)))] pub struct pthread_rwlockattr_t { - size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], + size: [u8; crate::__SIZEOF_PTHREAD_RWLOCKATTR_T], } #[repr(align(4))] pub struct pthread_condattr_t { - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + size: [u8; crate::__SIZEOF_PTHREAD_CONDATTR_T], } } s_no_extra_traits! { pub struct sysinfo { - pub uptime: ::c_ulong, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub __reserved: [::c_char; 256], + pub uptime: c_ulong, + pub loads: [c_ulong; 3], + pub totalram: c_ulong, + pub freeram: c_ulong, + pub sharedram: c_ulong, + pub bufferram: c_ulong, + pub totalswap: c_ulong, + pub freeswap: c_ulong, + pub procs: c_ushort, + pub pad: c_ushort, + pub totalhigh: c_ulong, + pub freehigh: c_ulong, + pub mem_unit: c_uint, + pub __reserved: [c_char; 256], } pub struct sockaddr_un { pub sun_family: sa_family_t, - pub sun_path: [::c_char; 108], + pub sun_path: [c_char; 108], } pub struct sockaddr_storage { pub ss_family: sa_family_t, __ss_pad2: [u8; 128 - 2 - 8], - __ss_align: ::size_t, + __ss_align: size_t, } pub struct utsname { - pub sysname: [::c_char; 65], - pub nodename: [::c_char; 65], - pub release: [::c_char; 65], - pub version: [::c_char; 65], - pub machine: [::c_char; 65], - pub domainname: [::c_char; 65], + pub sysname: [c_char; 65], + pub nodename: [c_char; 65], + pub release: [c_char; 65], + pub version: [c_char; 65], + pub machine: [c_char; 65], + pub domainname: [c_char; 65], } pub struct dirent { - pub d_ino: ::ino_t, - pub d_off: ::off_t, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], + pub d_ino: crate::ino_t, + pub d_off: off_t, + pub d_reclen: c_ushort, + pub d_type: c_uchar, + pub d_name: [c_char; 256], } pub struct dirent64 { - pub d_ino: ::ino64_t, - pub d_off: ::off64_t, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], + pub d_ino: crate::ino64_t, + pub d_off: off64_t, + pub d_reclen: c_ushort, + pub d_type: c_uchar, + pub d_name: [c_char; 256], } // x32 compatibility @@ -976,31 +976,31 @@ s_no_extra_traits! { pad: [i64; 4], #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_flags: ::c_long, + pub mq_flags: c_long, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_maxmsg: ::c_long, + pub mq_maxmsg: c_long, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_msgsize: ::c_long, + pub mq_msgsize: c_long, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_curmsgs: ::c_long, + pub mq_curmsgs: c_long, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pad: [::c_long; 4], + pad: [c_long; 4], } pub struct sockaddr_nl { - pub nl_family: ::sa_family_t, - nl_pad: ::c_ushort, + pub nl_family: crate::sa_family_t, + nl_pad: c_ushort, pub nl_pid: u32, pub nl_groups: u32, } pub struct sigevent { - pub sigev_value: ::sigval, - pub sigev_signo: ::c_int, - pub sigev_notify: ::c_int, - pub sigev_notify_function: fn(::sigval), + pub sigev_value: crate::sigval, + pub sigev_signo: c_int, + pub sigev_notify: c_int, + pub sigev_notify_function: fn(crate::sigval), pub sigev_notify_attributes: *mut pthread_attr_t, - pub __pad: [::c_char; 56 - 3 * 8], + pub __pad: [c_char; 56 - 3 * 8], } #[cfg_attr( @@ -1018,7 +1018,7 @@ s_no_extra_traits! { repr(align(8)) )] pub struct pthread_mutex_t { - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], + size: [u8; crate::__SIZEOF_PTHREAD_MUTEX_T], } #[cfg_attr( @@ -1036,7 +1036,7 @@ s_no_extra_traits! { repr(align(8)) )] pub struct pthread_rwlock_t { - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], + size: [u8; crate::__SIZEOF_PTHREAD_RWLOCK_T], } #[cfg_attr(target_pointer_width = "32", repr(align(4)))] @@ -1044,7 +1044,7 @@ s_no_extra_traits! { #[cfg_attr(target_arch = "x86", repr(align(4)))] #[cfg_attr(not(target_arch = "x86"), repr(align(8)))] pub struct pthread_cond_t { - size: [u8; ::__SIZEOF_PTHREAD_COND_T], + size: [u8; crate::__SIZEOF_PTHREAD_COND_T], } } @@ -1073,8 +1073,8 @@ cfg_if! { } } impl Eq for sysinfo {} - impl ::fmt::Debug for sysinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sysinfo { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sysinfo") .field("uptime", &self.uptime) .field("loads", &self.loads) @@ -1093,8 +1093,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sysinfo { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sysinfo { + fn hash(&self, state: &mut H) { self.uptime.hash(state); self.loads.hash(state); self.totalram.hash(state); @@ -1123,16 +1123,16 @@ cfg_if! { } } impl Eq for sockaddr_un {} - impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_un") .field("sun_family", &self.sun_family) // FIXME: .field("sun_path", &self.sun_path) .finish() } } - impl ::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { self.sun_family.hash(state); self.sun_path.hash(state); } @@ -1150,8 +1150,8 @@ cfg_if! { } } impl Eq for sockaddr_storage {} - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_family", &self.ss_family) .field("__ss_align", &self.__ss_align) @@ -1159,8 +1159,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_family.hash(state); self.__ss_align.hash(state); self.__ss_pad2.hash(state); @@ -1196,8 +1196,8 @@ cfg_if! { } } impl Eq for utsname {} - impl ::fmt::Debug for utsname { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utsname { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utsname") // FIXME: .field("sysname", &self.sysname) // FIXME: .field("nodename", &self.nodename) @@ -1207,8 +1207,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for utsname { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utsname { + fn hash(&self, state: &mut H) { self.sysname.hash(state); self.nodename.hash(state); self.release.hash(state); @@ -1231,8 +1231,8 @@ cfg_if! { } } impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -1242,8 +1242,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -1266,8 +1266,8 @@ cfg_if! { } } impl Eq for dirent64 {} - impl ::fmt::Debug for dirent64 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent64 { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent64") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -1277,8 +1277,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for dirent64 { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent64 { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -1296,8 +1296,8 @@ cfg_if! { } } impl Eq for mq_attr {} - impl ::fmt::Debug for mq_attr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mq_attr { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("mq_attr") .field("mq_flags", &self.mq_flags) .field("mq_maxmsg", &self.mq_maxmsg) @@ -1306,8 +1306,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for mq_attr { + fn hash(&self, state: &mut H) { self.mq_flags.hash(state); self.mq_maxmsg.hash(state); self.mq_msgsize.hash(state); @@ -1323,8 +1323,8 @@ cfg_if! { } } impl Eq for sockaddr_nl {} - impl ::fmt::Debug for sockaddr_nl { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_nl { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_nl") .field("nl_family", &self.nl_family) .field("nl_pid", &self.nl_pid) @@ -1332,8 +1332,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sockaddr_nl { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_nl { + fn hash(&self, state: &mut H) { self.nl_family.hash(state); self.nl_pid.hash(state); self.nl_groups.hash(state); @@ -1350,8 +1350,8 @@ cfg_if! { } } impl Eq for sigevent {} - impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sigevent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sigevent") .field("sigev_value", &self.sigev_value) .field("sigev_signo", &self.sigev_signo) @@ -1361,8 +1361,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_value.hash(state); self.sigev_signo.hash(state); self.sigev_notify.hash(state); @@ -1377,15 +1377,15 @@ cfg_if! { } } impl Eq for pthread_cond_t {} - impl ::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_cond_t") // FIXME: .field("size", &self.size) .finish() } } - impl ::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { self.size.hash(state); } } @@ -1396,15 +1396,15 @@ cfg_if! { } } impl Eq for pthread_mutex_t {} - impl ::fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_mutex_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_mutex_t") // FIXME: .field("size", &self.size) .finish() } } - impl ::hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_mutex_t { + fn hash(&self, state: &mut H) { self.size.hash(state); } } @@ -1415,15 +1415,15 @@ cfg_if! { } } impl Eq for pthread_rwlock_t {} - impl ::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_rwlock_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_rwlock_t") // FIXME: .field("size", &self.size) .finish() } } - impl ::hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_rwlock_t { + fn hash(&self, state: &mut H) { self.size.hash(state); } } @@ -1448,530 +1448,530 @@ pub const DT_REG: u8 = 8; pub const DT_LNK: u8 = 10; pub const DT_SOCK: u8 = 12; -pub const FD_CLOEXEC: ::c_int = 0x1; - -pub const USRQUOTA: ::c_int = 0; -pub const GRPQUOTA: ::c_int = 1; - -pub const SIGIOT: ::c_int = 6; - -pub const S_ISUID: ::mode_t = 0o4000; -pub const S_ISGID: ::mode_t = 0o2000; -pub const S_ISVTX: ::mode_t = 0o1000; - -pub const IF_NAMESIZE: ::size_t = 16; -pub const IFNAMSIZ: ::size_t = IF_NAMESIZE; - -pub const LOG_EMERG: ::c_int = 0; -pub const LOG_ALERT: ::c_int = 1; -pub const LOG_CRIT: ::c_int = 2; -pub const LOG_ERR: ::c_int = 3; -pub const LOG_WARNING: ::c_int = 4; -pub const LOG_NOTICE: ::c_int = 5; -pub const LOG_INFO: ::c_int = 6; -pub const LOG_DEBUG: ::c_int = 7; - -pub const LOG_KERN: ::c_int = 0; -pub const LOG_USER: ::c_int = 1 << 3; -pub const LOG_MAIL: ::c_int = 2 << 3; -pub const LOG_DAEMON: ::c_int = 3 << 3; -pub const LOG_AUTH: ::c_int = 4 << 3; -pub const LOG_SYSLOG: ::c_int = 5 << 3; -pub const LOG_LPR: ::c_int = 6 << 3; -pub const LOG_NEWS: ::c_int = 7 << 3; -pub const LOG_UUCP: ::c_int = 8 << 3; -pub const LOG_LOCAL0: ::c_int = 16 << 3; -pub const LOG_LOCAL1: ::c_int = 17 << 3; -pub const LOG_LOCAL2: ::c_int = 18 << 3; -pub const LOG_LOCAL3: ::c_int = 19 << 3; -pub const LOG_LOCAL4: ::c_int = 20 << 3; -pub const LOG_LOCAL5: ::c_int = 21 << 3; -pub const LOG_LOCAL6: ::c_int = 22 << 3; -pub const LOG_LOCAL7: ::c_int = 23 << 3; - -pub const LOG_PID: ::c_int = 0x01; -pub const LOG_CONS: ::c_int = 0x02; -pub const LOG_ODELAY: ::c_int = 0x04; -pub const LOG_NDELAY: ::c_int = 0x08; -pub const LOG_NOWAIT: ::c_int = 0x10; - -pub const LOG_PRIMASK: ::c_int = 7; -pub const LOG_FACMASK: ::c_int = 0x3f8; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; - -pub const PRIO_MIN: ::c_int = -20; -pub const PRIO_MAX: ::c_int = 20; - -pub const IPPROTO_ICMP: ::c_int = 1; -pub const IPPROTO_ICMPV6: ::c_int = 58; -pub const IPPROTO_TCP: ::c_int = 6; -pub const IPPROTO_UDP: ::c_int = 17; -pub const IPPROTO_IP: ::c_int = 0; -pub const IPPROTO_IPV6: ::c_int = 41; +pub const FD_CLOEXEC: c_int = 0x1; + +pub const USRQUOTA: c_int = 0; +pub const GRPQUOTA: c_int = 1; + +pub const SIGIOT: c_int = 6; + +pub const S_ISUID: crate::mode_t = 0o4000; +pub const S_ISGID: crate::mode_t = 0o2000; +pub const S_ISVTX: crate::mode_t = 0o1000; + +pub const IF_NAMESIZE: size_t = 16; +pub const IFNAMSIZ: size_t = IF_NAMESIZE; + +pub const LOG_EMERG: c_int = 0; +pub const LOG_ALERT: c_int = 1; +pub const LOG_CRIT: c_int = 2; +pub const LOG_ERR: c_int = 3; +pub const LOG_WARNING: c_int = 4; +pub const LOG_NOTICE: c_int = 5; +pub const LOG_INFO: c_int = 6; +pub const LOG_DEBUG: c_int = 7; + +pub const LOG_KERN: c_int = 0; +pub const LOG_USER: c_int = 1 << 3; +pub const LOG_MAIL: c_int = 2 << 3; +pub const LOG_DAEMON: c_int = 3 << 3; +pub const LOG_AUTH: c_int = 4 << 3; +pub const LOG_SYSLOG: c_int = 5 << 3; +pub const LOG_LPR: c_int = 6 << 3; +pub const LOG_NEWS: c_int = 7 << 3; +pub const LOG_UUCP: c_int = 8 << 3; +pub const LOG_LOCAL0: c_int = 16 << 3; +pub const LOG_LOCAL1: c_int = 17 << 3; +pub const LOG_LOCAL2: c_int = 18 << 3; +pub const LOG_LOCAL3: c_int = 19 << 3; +pub const LOG_LOCAL4: c_int = 20 << 3; +pub const LOG_LOCAL5: c_int = 21 << 3; +pub const LOG_LOCAL6: c_int = 22 << 3; +pub const LOG_LOCAL7: c_int = 23 << 3; + +pub const LOG_PID: c_int = 0x01; +pub const LOG_CONS: c_int = 0x02; +pub const LOG_ODELAY: c_int = 0x04; +pub const LOG_NDELAY: c_int = 0x08; +pub const LOG_NOWAIT: c_int = 0x10; + +pub const LOG_PRIMASK: c_int = 7; +pub const LOG_FACMASK: c_int = 0x3f8; + +pub const PRIO_PROCESS: c_int = 0; +pub const PRIO_PGRP: c_int = 1; +pub const PRIO_USER: c_int = 2; + +pub const PRIO_MIN: c_int = -20; +pub const PRIO_MAX: c_int = 20; + +pub const IPPROTO_ICMP: c_int = 1; +pub const IPPROTO_ICMPV6: c_int = 58; +pub const IPPROTO_TCP: c_int = 6; +pub const IPPROTO_UDP: c_int = 17; +pub const IPPROTO_IP: c_int = 0; +pub const IPPROTO_IPV6: c_int = 41; pub const INADDR_LOOPBACK: in_addr_t = 2130706433; pub const INADDR_ANY: in_addr_t = 0; pub const INADDR_BROADCAST: in_addr_t = 4294967295; pub const INADDR_NONE: in_addr_t = 4294967295; -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 2147483647; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 2; -pub const _IOLBF: ::c_int = 1; - -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; +pub const EXIT_FAILURE: c_int = 1; +pub const EXIT_SUCCESS: c_int = 0; +pub const RAND_MAX: c_int = 2147483647; +pub const EOF: c_int = -1; +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; +pub const _IOFBF: c_int = 0; +pub const _IONBF: c_int = 2; +pub const _IOLBF: c_int = 1; + +pub const F_DUPFD: c_int = 0; +pub const F_GETFD: c_int = 1; +pub const F_SETFD: c_int = 2; +pub const F_GETFL: c_int = 3; +pub const F_SETFL: c_int = 4; // Linux-specific fcntls -pub const F_SETLEASE: ::c_int = 1024; -pub const F_GETLEASE: ::c_int = 1025; -pub const F_NOTIFY: ::c_int = 1026; -pub const F_CANCELLK: ::c_int = 1029; -pub const F_DUPFD_CLOEXEC: ::c_int = 1030; -pub const F_SETPIPE_SZ: ::c_int = 1031; -pub const F_GETPIPE_SZ: ::c_int = 1032; -pub const F_ADD_SEALS: ::c_int = 1033; -pub const F_GET_SEALS: ::c_int = 1034; - -pub const F_SEAL_SEAL: ::c_int = 0x0001; -pub const F_SEAL_SHRINK: ::c_int = 0x0002; -pub const F_SEAL_GROW: ::c_int = 0x0004; -pub const F_SEAL_WRITE: ::c_int = 0x0008; +pub const F_SETLEASE: c_int = 1024; +pub const F_GETLEASE: c_int = 1025; +pub const F_NOTIFY: c_int = 1026; +pub const F_CANCELLK: c_int = 1029; +pub const F_DUPFD_CLOEXEC: c_int = 1030; +pub const F_SETPIPE_SZ: c_int = 1031; +pub const F_GETPIPE_SZ: c_int = 1032; +pub const F_ADD_SEALS: c_int = 1033; +pub const F_GET_SEALS: c_int = 1034; + +pub const F_SEAL_SEAL: c_int = 0x0001; +pub const F_SEAL_SHRINK: c_int = 0x0002; +pub const F_SEAL_GROW: c_int = 0x0004; +pub const F_SEAL_WRITE: c_int = 0x0008; // FIXME(#235): Include file sealing fcntls once we have a way to verify them. -pub const SIGTRAP: ::c_int = 5; - -pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; -pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; - -pub const CLOCK_REALTIME: ::clockid_t = 0; -pub const CLOCK_MONOTONIC: ::clockid_t = 1; -pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 2; -pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 3; -pub const CLOCK_MONOTONIC_RAW: ::clockid_t = 4; -pub const CLOCK_REALTIME_COARSE: ::clockid_t = 5; -pub const CLOCK_MONOTONIC_COARSE: ::clockid_t = 6; -pub const CLOCK_BOOTTIME: ::clockid_t = 7; -pub const CLOCK_REALTIME_ALARM: ::clockid_t = 8; -pub const CLOCK_BOOTTIME_ALARM: ::clockid_t = 9; -pub const CLOCK_SGI_CYCLE: ::clockid_t = 10; -pub const CLOCK_TAI: ::clockid_t = 11; -pub const TIMER_ABSTIME: ::c_int = 1; - -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_LOCKS: ::c_int = 10; -pub const RLIMIT_SIGPENDING: ::c_int = 11; -pub const RLIMIT_MSGQUEUE: ::c_int = 12; -pub const RLIMIT_NICE: ::c_int = 13; -pub const RLIMIT_RTPRIO: ::c_int = 14; - -pub const RUSAGE_SELF: ::c_int = 0; - -pub const O_RDONLY: ::c_int = 0; -pub const O_WRONLY: ::c_int = 1; -pub const O_RDWR: ::c_int = 2; - -pub const S_IFIFO: ::mode_t = 0o1_0000; -pub const S_IFCHR: ::mode_t = 0o2_0000; -pub const S_IFBLK: ::mode_t = 0o6_0000; -pub const S_IFDIR: ::mode_t = 0o4_0000; -pub const S_IFREG: ::mode_t = 0o10_0000; -pub const S_IFLNK: ::mode_t = 0o12_0000; -pub const S_IFSOCK: ::mode_t = 0o14_0000; -pub const S_IFMT: ::mode_t = 0o17_0000; -pub const S_IRWXU: ::mode_t = 0o0700; -pub const S_IXUSR: ::mode_t = 0o0100; -pub const S_IWUSR: ::mode_t = 0o0200; -pub const S_IRUSR: ::mode_t = 0o0400; -pub const S_IRWXG: ::mode_t = 0o0070; -pub const S_IXGRP: ::mode_t = 0o0010; -pub const S_IWGRP: ::mode_t = 0o0020; -pub const S_IRGRP: ::mode_t = 0o0040; -pub const S_IRWXO: ::mode_t = 0o0007; -pub const S_IXOTH: ::mode_t = 0o0001; -pub const S_IWOTH: ::mode_t = 0o0002; -pub const S_IROTH: ::mode_t = 0o0004; -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSEGV: ::c_int = 11; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; - -pub const PROT_NONE: ::c_int = 0; -pub const PROT_READ: ::c_int = 1; -pub const PROT_WRITE: ::c_int = 2; -pub const PROT_EXEC: ::c_int = 4; - -pub const LC_CTYPE: ::c_int = 0; -pub const LC_NUMERIC: ::c_int = 1; -pub const LC_TIME: ::c_int = 2; -pub const LC_COLLATE: ::c_int = 3; -pub const LC_MONETARY: ::c_int = 4; -pub const LC_MESSAGES: ::c_int = 5; -pub const LC_ALL: ::c_int = 6; -pub const LC_CTYPE_MASK: ::c_int = 1 << LC_CTYPE; -pub const LC_NUMERIC_MASK: ::c_int = 1 << LC_NUMERIC; -pub const LC_TIME_MASK: ::c_int = 1 << LC_TIME; -pub const LC_COLLATE_MASK: ::c_int = 1 << LC_COLLATE; -pub const LC_MONETARY_MASK: ::c_int = 1 << LC_MONETARY; -pub const LC_MESSAGES_MASK: ::c_int = 1 << LC_MESSAGES; +pub const SIGTRAP: c_int = 5; + +pub const PTHREAD_CREATE_JOINABLE: c_int = 0; +pub const PTHREAD_CREATE_DETACHED: c_int = 1; + +pub const CLOCK_REALTIME: crate::clockid_t = 0; +pub const CLOCK_MONOTONIC: crate::clockid_t = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: crate::clockid_t = 2; +pub const CLOCK_THREAD_CPUTIME_ID: crate::clockid_t = 3; +pub const CLOCK_MONOTONIC_RAW: crate::clockid_t = 4; +pub const CLOCK_REALTIME_COARSE: crate::clockid_t = 5; +pub const CLOCK_MONOTONIC_COARSE: crate::clockid_t = 6; +pub const CLOCK_BOOTTIME: crate::clockid_t = 7; +pub const CLOCK_REALTIME_ALARM: crate::clockid_t = 8; +pub const CLOCK_BOOTTIME_ALARM: crate::clockid_t = 9; +pub const CLOCK_SGI_CYCLE: crate::clockid_t = 10; +pub const CLOCK_TAI: crate::clockid_t = 11; +pub const TIMER_ABSTIME: c_int = 1; + +pub const RLIMIT_CPU: c_int = 0; +pub const RLIMIT_FSIZE: c_int = 1; +pub const RLIMIT_DATA: c_int = 2; +pub const RLIMIT_STACK: c_int = 3; +pub const RLIMIT_CORE: c_int = 4; +pub const RLIMIT_LOCKS: c_int = 10; +pub const RLIMIT_SIGPENDING: c_int = 11; +pub const RLIMIT_MSGQUEUE: c_int = 12; +pub const RLIMIT_NICE: c_int = 13; +pub const RLIMIT_RTPRIO: c_int = 14; + +pub const RUSAGE_SELF: c_int = 0; + +pub const O_RDONLY: c_int = 0; +pub const O_WRONLY: c_int = 1; +pub const O_RDWR: c_int = 2; + +pub const S_IFIFO: crate::mode_t = 0o1_0000; +pub const S_IFCHR: crate::mode_t = 0o2_0000; +pub const S_IFBLK: crate::mode_t = 0o6_0000; +pub const S_IFDIR: crate::mode_t = 0o4_0000; +pub const S_IFREG: crate::mode_t = 0o10_0000; +pub const S_IFLNK: crate::mode_t = 0o12_0000; +pub const S_IFSOCK: crate::mode_t = 0o14_0000; +pub const S_IFMT: crate::mode_t = 0o17_0000; +pub const S_IRWXU: crate::mode_t = 0o0700; +pub const S_IXUSR: crate::mode_t = 0o0100; +pub const S_IWUSR: crate::mode_t = 0o0200; +pub const S_IRUSR: crate::mode_t = 0o0400; +pub const S_IRWXG: crate::mode_t = 0o0070; +pub const S_IXGRP: crate::mode_t = 0o0010; +pub const S_IWGRP: crate::mode_t = 0o0020; +pub const S_IRGRP: crate::mode_t = 0o0040; +pub const S_IRWXO: crate::mode_t = 0o0007; +pub const S_IXOTH: crate::mode_t = 0o0001; +pub const S_IWOTH: crate::mode_t = 0o0002; +pub const S_IROTH: crate::mode_t = 0o0004; +pub const F_OK: c_int = 0; +pub const R_OK: c_int = 4; +pub const W_OK: c_int = 2; +pub const X_OK: c_int = 1; +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGABRT: c_int = 6; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGSEGV: c_int = 11; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; + +pub const PROT_NONE: c_int = 0; +pub const PROT_READ: c_int = 1; +pub const PROT_WRITE: c_int = 2; +pub const PROT_EXEC: c_int = 4; + +pub const LC_CTYPE: c_int = 0; +pub const LC_NUMERIC: c_int = 1; +pub const LC_TIME: c_int = 2; +pub const LC_COLLATE: c_int = 3; +pub const LC_MONETARY: c_int = 4; +pub const LC_MESSAGES: c_int = 5; +pub const LC_ALL: c_int = 6; +pub const LC_CTYPE_MASK: c_int = 1 << LC_CTYPE; +pub const LC_NUMERIC_MASK: c_int = 1 << LC_NUMERIC; +pub const LC_TIME_MASK: c_int = 1 << LC_TIME; +pub const LC_COLLATE_MASK: c_int = 1 << LC_COLLATE; +pub const LC_MONETARY_MASK: c_int = 1 << LC_MONETARY; +pub const LC_MESSAGES_MASK: c_int = 1 << LC_MESSAGES; // LC_ALL_MASK defined per platform -pub const MAP_FILE: ::c_int = 0x0000; -pub const MAP_SHARED: ::c_int = 0x0001; -pub const MAP_PRIVATE: ::c_int = 0x0002; -pub const MAP_FIXED: ::c_int = 0x0010; +pub const MAP_FILE: c_int = 0x0000; +pub const MAP_SHARED: c_int = 0x0001; +pub const MAP_PRIVATE: c_int = 0x0002; +pub const MAP_FIXED: c_int = 0x0010; -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; +pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; // MS_ flags for msync(2) -pub const MS_ASYNC: ::c_int = 0x0001; -pub const MS_INVALIDATE: ::c_int = 0x0002; -pub const MS_SYNC: ::c_int = 0x0004; +pub const MS_ASYNC: c_int = 0x0001; +pub const MS_INVALIDATE: c_int = 0x0002; +pub const MS_SYNC: c_int = 0x0004; // MS_ flags for mount(2) -pub const MS_RDONLY: ::c_ulong = 0x01; -pub const MS_NOSUID: ::c_ulong = 0x02; -pub const MS_NODEV: ::c_ulong = 0x04; -pub const MS_NOEXEC: ::c_ulong = 0x08; -pub const MS_SYNCHRONOUS: ::c_ulong = 0x10; -pub const MS_REMOUNT: ::c_ulong = 0x20; -pub const MS_MANDLOCK: ::c_ulong = 0x40; -pub const MS_DIRSYNC: ::c_ulong = 0x80; -pub const MS_NOATIME: ::c_ulong = 0x0400; -pub const MS_NODIRATIME: ::c_ulong = 0x0800; -pub const MS_BIND: ::c_ulong = 0x1000; -pub const MS_MOVE: ::c_ulong = 0x2000; -pub const MS_REC: ::c_ulong = 0x4000; -pub const MS_SILENT: ::c_ulong = 0x8000; -pub const MS_POSIXACL: ::c_ulong = 0x010000; -pub const MS_UNBINDABLE: ::c_ulong = 0x020000; -pub const MS_PRIVATE: ::c_ulong = 0x040000; -pub const MS_SLAVE: ::c_ulong = 0x080000; -pub const MS_SHARED: ::c_ulong = 0x100000; -pub const MS_RELATIME: ::c_ulong = 0x200000; -pub const MS_KERNMOUNT: ::c_ulong = 0x400000; -pub const MS_I_VERSION: ::c_ulong = 0x800000; -pub const MS_STRICTATIME: ::c_ulong = 0x1000000; -pub const MS_ACTIVE: ::c_ulong = 0x40000000; -pub const MS_NOUSER: ::c_ulong = 0x80000000; -pub const MS_MGC_VAL: ::c_ulong = 0xc0ed0000; -pub const MS_MGC_MSK: ::c_ulong = 0xffff0000; -pub const MS_RMT_MASK: ::c_ulong = 0x800051; - -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const EWOULDBLOCK: ::c_int = EAGAIN; - -pub const SCM_RIGHTS: ::c_int = 0x01; -pub const SCM_CREDENTIALS: ::c_int = 0x02; - -pub const PROT_GROWSDOWN: ::c_int = 0x1000000; -pub const PROT_GROWSUP: ::c_int = 0x2000000; - -pub const MAP_TYPE: ::c_int = 0x000f; - -pub const MADV_NORMAL: ::c_int = 0; -pub const MADV_RANDOM: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_WILLNEED: ::c_int = 3; -pub const MADV_DONTNEED: ::c_int = 4; -pub const MADV_FREE: ::c_int = 8; -pub const MADV_REMOVE: ::c_int = 9; -pub const MADV_DONTFORK: ::c_int = 10; -pub const MADV_DOFORK: ::c_int = 11; -pub const MADV_MERGEABLE: ::c_int = 12; -pub const MADV_UNMERGEABLE: ::c_int = 13; -pub const MADV_HUGEPAGE: ::c_int = 14; -pub const MADV_NOHUGEPAGE: ::c_int = 15; -pub const MADV_DONTDUMP: ::c_int = 16; -pub const MADV_DODUMP: ::c_int = 17; -pub const MADV_HWPOISON: ::c_int = 100; -pub const MADV_SOFT_OFFLINE: ::c_int = 101; - -pub const IFF_UP: ::c_int = 0x1; -pub const IFF_BROADCAST: ::c_int = 0x2; -pub const IFF_DEBUG: ::c_int = 0x4; -pub const IFF_LOOPBACK: ::c_int = 0x8; -pub const IFF_POINTOPOINT: ::c_int = 0x10; -pub const IFF_NOTRAILERS: ::c_int = 0x20; -pub const IFF_RUNNING: ::c_int = 0x40; -pub const IFF_NOARP: ::c_int = 0x80; -pub const IFF_PROMISC: ::c_int = 0x100; -pub const IFF_ALLMULTI: ::c_int = 0x200; -pub const IFF_MASTER: ::c_int = 0x400; -pub const IFF_SLAVE: ::c_int = 0x800; -pub const IFF_MULTICAST: ::c_int = 0x1000; -pub const IFF_PORTSEL: ::c_int = 0x2000; -pub const IFF_AUTOMEDIA: ::c_int = 0x4000; -pub const IFF_DYNAMIC: ::c_int = 0x8000; -pub const IFF_TUN: ::c_int = 0x0001; -pub const IFF_TAP: ::c_int = 0x0002; -pub const IFF_NO_PI: ::c_int = 0x1000; - -pub const SOL_IP: ::c_int = 0; -pub const SOL_TCP: ::c_int = 6; -pub const SOL_UDP: ::c_int = 17; -pub const SOL_IPV6: ::c_int = 41; -pub const SOL_ICMPV6: ::c_int = 58; -pub const SOL_RAW: ::c_int = 255; -pub const SOL_DECNET: ::c_int = 261; -pub const SOL_X25: ::c_int = 262; -pub const SOL_PACKET: ::c_int = 263; -pub const SOL_ATM: ::c_int = 264; -pub const SOL_AAL: ::c_int = 265; -pub const SOL_IRDA: ::c_int = 266; -pub const SOL_NETBEUI: ::c_int = 267; -pub const SOL_LLC: ::c_int = 268; -pub const SOL_DCCP: ::c_int = 269; -pub const SOL_NETLINK: ::c_int = 270; -pub const SOL_TIPC: ::c_int = 271; - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_UNIX: ::c_int = 1; -pub const AF_LOCAL: ::c_int = 1; -pub const AF_INET: ::c_int = 2; -pub const AF_AX25: ::c_int = 3; -pub const AF_IPX: ::c_int = 4; -pub const AF_APPLETALK: ::c_int = 5; -pub const AF_NETROM: ::c_int = 6; -pub const AF_BRIDGE: ::c_int = 7; -pub const AF_ATMPVC: ::c_int = 8; -pub const AF_X25: ::c_int = 9; -pub const AF_INET6: ::c_int = 10; -pub const AF_ROSE: ::c_int = 11; -pub const AF_DECnet: ::c_int = 12; -pub const AF_NETBEUI: ::c_int = 13; -pub const AF_SECURITY: ::c_int = 14; -pub const AF_KEY: ::c_int = 15; -pub const AF_NETLINK: ::c_int = 16; -pub const AF_ROUTE: ::c_int = AF_NETLINK; -pub const AF_PACKET: ::c_int = 17; -pub const AF_ASH: ::c_int = 18; -pub const AF_ECONET: ::c_int = 19; -pub const AF_ATMSVC: ::c_int = 20; -pub const AF_RDS: ::c_int = 21; -pub const AF_SNA: ::c_int = 22; -pub const AF_IRDA: ::c_int = 23; -pub const AF_PPPOX: ::c_int = 24; -pub const AF_WANPIPE: ::c_int = 25; -pub const AF_LLC: ::c_int = 26; -pub const AF_CAN: ::c_int = 29; -pub const AF_TIPC: ::c_int = 30; -pub const AF_BLUETOOTH: ::c_int = 31; -pub const AF_IUCV: ::c_int = 32; -pub const AF_RXRPC: ::c_int = 33; -pub const AF_ISDN: ::c_int = 34; -pub const AF_PHONET: ::c_int = 35; -pub const AF_IEEE802154: ::c_int = 36; -pub const AF_CAIF: ::c_int = 37; -pub const AF_ALG: ::c_int = 38; - -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_UNIX: ::c_int = AF_UNIX; -pub const PF_LOCAL: ::c_int = AF_LOCAL; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_AX25: ::c_int = AF_AX25; -pub const PF_IPX: ::c_int = AF_IPX; -pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -pub const PF_NETROM: ::c_int = AF_NETROM; -pub const PF_BRIDGE: ::c_int = AF_BRIDGE; -pub const PF_ATMPVC: ::c_int = AF_ATMPVC; -pub const PF_X25: ::c_int = AF_X25; -pub const PF_INET6: ::c_int = AF_INET6; -pub const PF_ROSE: ::c_int = AF_ROSE; -pub const PF_DECnet: ::c_int = AF_DECnet; -pub const PF_NETBEUI: ::c_int = AF_NETBEUI; -pub const PF_SECURITY: ::c_int = AF_SECURITY; -pub const PF_KEY: ::c_int = AF_KEY; -pub const PF_NETLINK: ::c_int = AF_NETLINK; -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_PACKET: ::c_int = AF_PACKET; -pub const PF_ASH: ::c_int = AF_ASH; -pub const PF_ECONET: ::c_int = AF_ECONET; -pub const PF_ATMSVC: ::c_int = AF_ATMSVC; -pub const PF_RDS: ::c_int = AF_RDS; -pub const PF_SNA: ::c_int = AF_SNA; -pub const PF_IRDA: ::c_int = AF_IRDA; -pub const PF_PPPOX: ::c_int = AF_PPPOX; -pub const PF_WANPIPE: ::c_int = AF_WANPIPE; -pub const PF_LLC: ::c_int = AF_LLC; -pub const PF_CAN: ::c_int = AF_CAN; -pub const PF_TIPC: ::c_int = AF_TIPC; -pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -pub const PF_IUCV: ::c_int = AF_IUCV; -pub const PF_RXRPC: ::c_int = AF_RXRPC; -pub const PF_ISDN: ::c_int = AF_ISDN; -pub const PF_PHONET: ::c_int = AF_PHONET; -pub const PF_IEEE802154: ::c_int = AF_IEEE802154; -pub const PF_CAIF: ::c_int = AF_CAIF; -pub const PF_ALG: ::c_int = AF_ALG; - -pub const SOMAXCONN: ::c_int = 128; - -pub const MSG_OOB: ::c_int = 1; -pub const MSG_PEEK: ::c_int = 2; -pub const MSG_DONTROUTE: ::c_int = 4; -pub const MSG_CTRUNC: ::c_int = 8; -pub const MSG_TRUNC: ::c_int = 0x20; -pub const MSG_DONTWAIT: ::c_int = 0x40; -pub const MSG_EOR: ::c_int = 0x80; -pub const MSG_WAITALL: ::c_int = 0x100; -pub const MSG_FIN: ::c_int = 0x200; -pub const MSG_SYN: ::c_int = 0x400; -pub const MSG_CONFIRM: ::c_int = 0x800; -pub const MSG_RST: ::c_int = 0x1000; -pub const MSG_ERRQUEUE: ::c_int = 0x2000; -pub const MSG_NOSIGNAL: ::c_int = 0x4000; -pub const MSG_MORE: ::c_int = 0x8000; -pub const MSG_WAITFORONE: ::c_int = 0x10000; -pub const MSG_FASTOPEN: ::c_int = 0x20000000; -pub const MSG_CMSG_CLOEXEC: ::c_int = 0x40000000; - -pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; - -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; - -pub const IP_TOS: ::c_int = 1; -pub const IP_TTL: ::c_int = 2; -pub const IP_HDRINCL: ::c_int = 3; -pub const IP_RECVTOS: ::c_int = 13; -pub const IP_FREEBIND: ::c_int = 15; -pub const IP_TRANSPARENT: ::c_int = 19; -pub const IP_MULTICAST_IF: ::c_int = 32; -pub const IP_MULTICAST_TTL: ::c_int = 33; -pub const IP_MULTICAST_LOOP: ::c_int = 34; -pub const IP_ADD_MEMBERSHIP: ::c_int = 35; -pub const IP_DROP_MEMBERSHIP: ::c_int = 36; - -pub const IPV6_UNICAST_HOPS: ::c_int = 16; -pub const IPV6_MULTICAST_IF: ::c_int = 17; -pub const IPV6_MULTICAST_HOPS: ::c_int = 18; -pub const IPV6_MULTICAST_LOOP: ::c_int = 19; -pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; -pub const IPV6_V6ONLY: ::c_int = 26; -pub const IPV6_RECVPKTINFO: ::c_int = 49; -pub const IPV6_RECVTCLASS: ::c_int = 66; -pub const IPV6_TCLASS: ::c_int = 67; - -pub const TCP_NODELAY: ::c_int = 1; -pub const TCP_MAXSEG: ::c_int = 2; -pub const TCP_CORK: ::c_int = 3; -pub const TCP_KEEPIDLE: ::c_int = 4; -pub const TCP_KEEPINTVL: ::c_int = 5; -pub const TCP_KEEPCNT: ::c_int = 6; -pub const TCP_SYNCNT: ::c_int = 7; -pub const TCP_LINGER2: ::c_int = 8; -pub const TCP_DEFER_ACCEPT: ::c_int = 9; -pub const TCP_WINDOW_CLAMP: ::c_int = 10; -pub const TCP_INFO: ::c_int = 11; -pub const TCP_QUICKACK: ::c_int = 12; -pub const TCP_CONGESTION: ::c_int = 13; - -pub const SO_DEBUG: ::c_int = 1; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_NB: ::c_int = 4; -pub const LOCK_UN: ::c_int = 8; - -pub const SS_ONSTACK: ::c_int = 1; -pub const SS_DISABLE: ::c_int = 2; - -pub const PATH_MAX: ::c_int = 4096; +pub const MS_RDONLY: c_ulong = 0x01; +pub const MS_NOSUID: c_ulong = 0x02; +pub const MS_NODEV: c_ulong = 0x04; +pub const MS_NOEXEC: c_ulong = 0x08; +pub const MS_SYNCHRONOUS: c_ulong = 0x10; +pub const MS_REMOUNT: c_ulong = 0x20; +pub const MS_MANDLOCK: c_ulong = 0x40; +pub const MS_DIRSYNC: c_ulong = 0x80; +pub const MS_NOATIME: c_ulong = 0x0400; +pub const MS_NODIRATIME: c_ulong = 0x0800; +pub const MS_BIND: c_ulong = 0x1000; +pub const MS_MOVE: c_ulong = 0x2000; +pub const MS_REC: c_ulong = 0x4000; +pub const MS_SILENT: c_ulong = 0x8000; +pub const MS_POSIXACL: c_ulong = 0x010000; +pub const MS_UNBINDABLE: c_ulong = 0x020000; +pub const MS_PRIVATE: c_ulong = 0x040000; +pub const MS_SLAVE: c_ulong = 0x080000; +pub const MS_SHARED: c_ulong = 0x100000; +pub const MS_RELATIME: c_ulong = 0x200000; +pub const MS_KERNMOUNT: c_ulong = 0x400000; +pub const MS_I_VERSION: c_ulong = 0x800000; +pub const MS_STRICTATIME: c_ulong = 0x1000000; +pub const MS_ACTIVE: c_ulong = 0x40000000; +pub const MS_NOUSER: c_ulong = 0x80000000; +pub const MS_MGC_VAL: c_ulong = 0xc0ed0000; +pub const MS_MGC_MSK: c_ulong = 0xffff0000; +pub const MS_RMT_MASK: c_ulong = 0x800051; + +pub const EPERM: c_int = 1; +pub const ENOENT: c_int = 2; +pub const ESRCH: c_int = 3; +pub const EINTR: c_int = 4; +pub const EIO: c_int = 5; +pub const ENXIO: c_int = 6; +pub const E2BIG: c_int = 7; +pub const ENOEXEC: c_int = 8; +pub const EBADF: c_int = 9; +pub const ECHILD: c_int = 10; +pub const EAGAIN: c_int = 11; +pub const ENOMEM: c_int = 12; +pub const EACCES: c_int = 13; +pub const EFAULT: c_int = 14; +pub const ENOTBLK: c_int = 15; +pub const EBUSY: c_int = 16; +pub const EEXIST: c_int = 17; +pub const EXDEV: c_int = 18; +pub const ENODEV: c_int = 19; +pub const ENOTDIR: c_int = 20; +pub const EISDIR: c_int = 21; +pub const EINVAL: c_int = 22; +pub const ENFILE: c_int = 23; +pub const EMFILE: c_int = 24; +pub const ENOTTY: c_int = 25; +pub const ETXTBSY: c_int = 26; +pub const EFBIG: c_int = 27; +pub const ENOSPC: c_int = 28; +pub const ESPIPE: c_int = 29; +pub const EROFS: c_int = 30; +pub const EMLINK: c_int = 31; +pub const EPIPE: c_int = 32; +pub const EDOM: c_int = 33; +pub const ERANGE: c_int = 34; +pub const EWOULDBLOCK: c_int = EAGAIN; + +pub const SCM_RIGHTS: c_int = 0x01; +pub const SCM_CREDENTIALS: c_int = 0x02; + +pub const PROT_GROWSDOWN: c_int = 0x1000000; +pub const PROT_GROWSUP: c_int = 0x2000000; + +pub const MAP_TYPE: c_int = 0x000f; + +pub const MADV_NORMAL: c_int = 0; +pub const MADV_RANDOM: c_int = 1; +pub const MADV_SEQUENTIAL: c_int = 2; +pub const MADV_WILLNEED: c_int = 3; +pub const MADV_DONTNEED: c_int = 4; +pub const MADV_FREE: c_int = 8; +pub const MADV_REMOVE: c_int = 9; +pub const MADV_DONTFORK: c_int = 10; +pub const MADV_DOFORK: c_int = 11; +pub const MADV_MERGEABLE: c_int = 12; +pub const MADV_UNMERGEABLE: c_int = 13; +pub const MADV_HUGEPAGE: c_int = 14; +pub const MADV_NOHUGEPAGE: c_int = 15; +pub const MADV_DONTDUMP: c_int = 16; +pub const MADV_DODUMP: c_int = 17; +pub const MADV_HWPOISON: c_int = 100; +pub const MADV_SOFT_OFFLINE: c_int = 101; + +pub const IFF_UP: c_int = 0x1; +pub const IFF_BROADCAST: c_int = 0x2; +pub const IFF_DEBUG: c_int = 0x4; +pub const IFF_LOOPBACK: c_int = 0x8; +pub const IFF_POINTOPOINT: c_int = 0x10; +pub const IFF_NOTRAILERS: c_int = 0x20; +pub const IFF_RUNNING: c_int = 0x40; +pub const IFF_NOARP: c_int = 0x80; +pub const IFF_PROMISC: c_int = 0x100; +pub const IFF_ALLMULTI: c_int = 0x200; +pub const IFF_MASTER: c_int = 0x400; +pub const IFF_SLAVE: c_int = 0x800; +pub const IFF_MULTICAST: c_int = 0x1000; +pub const IFF_PORTSEL: c_int = 0x2000; +pub const IFF_AUTOMEDIA: c_int = 0x4000; +pub const IFF_DYNAMIC: c_int = 0x8000; +pub const IFF_TUN: c_int = 0x0001; +pub const IFF_TAP: c_int = 0x0002; +pub const IFF_NO_PI: c_int = 0x1000; + +pub const SOL_IP: c_int = 0; +pub const SOL_TCP: c_int = 6; +pub const SOL_UDP: c_int = 17; +pub const SOL_IPV6: c_int = 41; +pub const SOL_ICMPV6: c_int = 58; +pub const SOL_RAW: c_int = 255; +pub const SOL_DECNET: c_int = 261; +pub const SOL_X25: c_int = 262; +pub const SOL_PACKET: c_int = 263; +pub const SOL_ATM: c_int = 264; +pub const SOL_AAL: c_int = 265; +pub const SOL_IRDA: c_int = 266; +pub const SOL_NETBEUI: c_int = 267; +pub const SOL_LLC: c_int = 268; +pub const SOL_DCCP: c_int = 269; +pub const SOL_NETLINK: c_int = 270; +pub const SOL_TIPC: c_int = 271; + +pub const AF_UNSPEC: c_int = 0; +pub const AF_UNIX: c_int = 1; +pub const AF_LOCAL: c_int = 1; +pub const AF_INET: c_int = 2; +pub const AF_AX25: c_int = 3; +pub const AF_IPX: c_int = 4; +pub const AF_APPLETALK: c_int = 5; +pub const AF_NETROM: c_int = 6; +pub const AF_BRIDGE: c_int = 7; +pub const AF_ATMPVC: c_int = 8; +pub const AF_X25: c_int = 9; +pub const AF_INET6: c_int = 10; +pub const AF_ROSE: c_int = 11; +pub const AF_DECnet: c_int = 12; +pub const AF_NETBEUI: c_int = 13; +pub const AF_SECURITY: c_int = 14; +pub const AF_KEY: c_int = 15; +pub const AF_NETLINK: c_int = 16; +pub const AF_ROUTE: c_int = AF_NETLINK; +pub const AF_PACKET: c_int = 17; +pub const AF_ASH: c_int = 18; +pub const AF_ECONET: c_int = 19; +pub const AF_ATMSVC: c_int = 20; +pub const AF_RDS: c_int = 21; +pub const AF_SNA: c_int = 22; +pub const AF_IRDA: c_int = 23; +pub const AF_PPPOX: c_int = 24; +pub const AF_WANPIPE: c_int = 25; +pub const AF_LLC: c_int = 26; +pub const AF_CAN: c_int = 29; +pub const AF_TIPC: c_int = 30; +pub const AF_BLUETOOTH: c_int = 31; +pub const AF_IUCV: c_int = 32; +pub const AF_RXRPC: c_int = 33; +pub const AF_ISDN: c_int = 34; +pub const AF_PHONET: c_int = 35; +pub const AF_IEEE802154: c_int = 36; +pub const AF_CAIF: c_int = 37; +pub const AF_ALG: c_int = 38; + +pub const PF_UNSPEC: c_int = AF_UNSPEC; +pub const PF_UNIX: c_int = AF_UNIX; +pub const PF_LOCAL: c_int = AF_LOCAL; +pub const PF_INET: c_int = AF_INET; +pub const PF_AX25: c_int = AF_AX25; +pub const PF_IPX: c_int = AF_IPX; +pub const PF_APPLETALK: c_int = AF_APPLETALK; +pub const PF_NETROM: c_int = AF_NETROM; +pub const PF_BRIDGE: c_int = AF_BRIDGE; +pub const PF_ATMPVC: c_int = AF_ATMPVC; +pub const PF_X25: c_int = AF_X25; +pub const PF_INET6: c_int = AF_INET6; +pub const PF_ROSE: c_int = AF_ROSE; +pub const PF_DECnet: c_int = AF_DECnet; +pub const PF_NETBEUI: c_int = AF_NETBEUI; +pub const PF_SECURITY: c_int = AF_SECURITY; +pub const PF_KEY: c_int = AF_KEY; +pub const PF_NETLINK: c_int = AF_NETLINK; +pub const PF_ROUTE: c_int = AF_ROUTE; +pub const PF_PACKET: c_int = AF_PACKET; +pub const PF_ASH: c_int = AF_ASH; +pub const PF_ECONET: c_int = AF_ECONET; +pub const PF_ATMSVC: c_int = AF_ATMSVC; +pub const PF_RDS: c_int = AF_RDS; +pub const PF_SNA: c_int = AF_SNA; +pub const PF_IRDA: c_int = AF_IRDA; +pub const PF_PPPOX: c_int = AF_PPPOX; +pub const PF_WANPIPE: c_int = AF_WANPIPE; +pub const PF_LLC: c_int = AF_LLC; +pub const PF_CAN: c_int = AF_CAN; +pub const PF_TIPC: c_int = AF_TIPC; +pub const PF_BLUETOOTH: c_int = AF_BLUETOOTH; +pub const PF_IUCV: c_int = AF_IUCV; +pub const PF_RXRPC: c_int = AF_RXRPC; +pub const PF_ISDN: c_int = AF_ISDN; +pub const PF_PHONET: c_int = AF_PHONET; +pub const PF_IEEE802154: c_int = AF_IEEE802154; +pub const PF_CAIF: c_int = AF_CAIF; +pub const PF_ALG: c_int = AF_ALG; + +pub const SOMAXCONN: c_int = 128; + +pub const MSG_OOB: c_int = 1; +pub const MSG_PEEK: c_int = 2; +pub const MSG_DONTROUTE: c_int = 4; +pub const MSG_CTRUNC: c_int = 8; +pub const MSG_TRUNC: c_int = 0x20; +pub const MSG_DONTWAIT: c_int = 0x40; +pub const MSG_EOR: c_int = 0x80; +pub const MSG_WAITALL: c_int = 0x100; +pub const MSG_FIN: c_int = 0x200; +pub const MSG_SYN: c_int = 0x400; +pub const MSG_CONFIRM: c_int = 0x800; +pub const MSG_RST: c_int = 0x1000; +pub const MSG_ERRQUEUE: c_int = 0x2000; +pub const MSG_NOSIGNAL: c_int = 0x4000; +pub const MSG_MORE: c_int = 0x8000; +pub const MSG_WAITFORONE: c_int = 0x10000; +pub const MSG_FASTOPEN: c_int = 0x20000000; +pub const MSG_CMSG_CLOEXEC: c_int = 0x40000000; + +pub const SCM_TIMESTAMP: c_int = SO_TIMESTAMP; + +pub const SOCK_RAW: c_int = 3; +pub const SOCK_RDM: c_int = 4; + +pub const IP_TOS: c_int = 1; +pub const IP_TTL: c_int = 2; +pub const IP_HDRINCL: c_int = 3; +pub const IP_RECVTOS: c_int = 13; +pub const IP_FREEBIND: c_int = 15; +pub const IP_TRANSPARENT: c_int = 19; +pub const IP_MULTICAST_IF: c_int = 32; +pub const IP_MULTICAST_TTL: c_int = 33; +pub const IP_MULTICAST_LOOP: c_int = 34; +pub const IP_ADD_MEMBERSHIP: c_int = 35; +pub const IP_DROP_MEMBERSHIP: c_int = 36; + +pub const IPV6_UNICAST_HOPS: c_int = 16; +pub const IPV6_MULTICAST_IF: c_int = 17; +pub const IPV6_MULTICAST_HOPS: c_int = 18; +pub const IPV6_MULTICAST_LOOP: c_int = 19; +pub const IPV6_ADD_MEMBERSHIP: c_int = 20; +pub const IPV6_DROP_MEMBERSHIP: c_int = 21; +pub const IPV6_V6ONLY: c_int = 26; +pub const IPV6_RECVPKTINFO: c_int = 49; +pub const IPV6_RECVTCLASS: c_int = 66; +pub const IPV6_TCLASS: c_int = 67; + +pub const TCP_NODELAY: c_int = 1; +pub const TCP_MAXSEG: c_int = 2; +pub const TCP_CORK: c_int = 3; +pub const TCP_KEEPIDLE: c_int = 4; +pub const TCP_KEEPINTVL: c_int = 5; +pub const TCP_KEEPCNT: c_int = 6; +pub const TCP_SYNCNT: c_int = 7; +pub const TCP_LINGER2: c_int = 8; +pub const TCP_DEFER_ACCEPT: c_int = 9; +pub const TCP_WINDOW_CLAMP: c_int = 10; +pub const TCP_INFO: c_int = 11; +pub const TCP_QUICKACK: c_int = 12; +pub const TCP_CONGESTION: c_int = 13; + +pub const SO_DEBUG: c_int = 1; + +pub const SHUT_RD: c_int = 0; +pub const SHUT_WR: c_int = 1; +pub const SHUT_RDWR: c_int = 2; + +pub const LOCK_SH: c_int = 1; +pub const LOCK_EX: c_int = 2; +pub const LOCK_NB: c_int = 4; +pub const LOCK_UN: c_int = 8; + +pub const SS_ONSTACK: c_int = 1; +pub const SS_DISABLE: c_int = 2; + +pub const PATH_MAX: c_int = 4096; pub const FD_SETSIZE: usize = 1024; -pub const EPOLLIN: ::c_int = 0x1; -pub const EPOLLPRI: ::c_int = 0x2; -pub const EPOLLOUT: ::c_int = 0x4; -pub const EPOLLRDNORM: ::c_int = 0x40; -pub const EPOLLRDBAND: ::c_int = 0x80; -pub const EPOLLWRNORM: ::c_int = 0x100; -pub const EPOLLWRBAND: ::c_int = 0x200; -pub const EPOLLMSG: ::c_int = 0x400; -pub const EPOLLERR: ::c_int = 0x8; -pub const EPOLLHUP: ::c_int = 0x10; -pub const EPOLLET: ::c_int = 0x80000000; - -pub const EPOLL_CTL_ADD: ::c_int = 1; -pub const EPOLL_CTL_MOD: ::c_int = 3; -pub const EPOLL_CTL_DEL: ::c_int = 2; - -pub const MNT_DETACH: ::c_int = 0x2; -pub const MNT_EXPIRE: ::c_int = 0x4; - -pub const Q_GETFMT: ::c_int = 0x800004; -pub const Q_GETINFO: ::c_int = 0x800005; -pub const Q_SETINFO: ::c_int = 0x800006; +pub const EPOLLIN: c_int = 0x1; +pub const EPOLLPRI: c_int = 0x2; +pub const EPOLLOUT: c_int = 0x4; +pub const EPOLLRDNORM: c_int = 0x40; +pub const EPOLLRDBAND: c_int = 0x80; +pub const EPOLLWRNORM: c_int = 0x100; +pub const EPOLLWRBAND: c_int = 0x200; +pub const EPOLLMSG: c_int = 0x400; +pub const EPOLLERR: c_int = 0x8; +pub const EPOLLHUP: c_int = 0x10; +pub const EPOLLET: c_int = 0x80000000; + +pub const EPOLL_CTL_ADD: c_int = 1; +pub const EPOLL_CTL_MOD: c_int = 3; +pub const EPOLL_CTL_DEL: c_int = 2; + +pub const MNT_DETACH: c_int = 0x2; +pub const MNT_EXPIRE: c_int = 0x4; + +pub const Q_GETFMT: c_int = 0x800004; +pub const Q_GETINFO: c_int = 0x800005; +pub const Q_SETINFO: c_int = 0x800006; pub const QIF_BLIMITS: u32 = 1; pub const QIF_SPACE: u32 = 2; pub const QIF_ILIMITS: u32 = 4; @@ -1983,153 +1983,153 @@ pub const QIF_USAGE: u32 = 10; pub const QIF_TIMES: u32 = 48; pub const QIF_ALL: u32 = 63; -pub const MNT_FORCE: ::c_int = 0x1; - -pub const Q_SYNC: ::c_int = 0x800001; -pub const Q_QUOTAON: ::c_int = 0x800002; -pub const Q_QUOTAOFF: ::c_int = 0x800003; -pub const Q_GETQUOTA: ::c_int = 0x800007; -pub const Q_SETQUOTA: ::c_int = 0x800008; - -pub const TCIOFF: ::c_int = 2; -pub const TCION: ::c_int = 3; -pub const TCOOFF: ::c_int = 0; -pub const TCOON: ::c_int = 1; -pub const TCIFLUSH: ::c_int = 0; -pub const TCOFLUSH: ::c_int = 1; -pub const TCIOFLUSH: ::c_int = 2; -pub const NL0: ::c_int = 0x00000000; -pub const NL1: ::c_int = 0x00000100; -pub const TAB0: ::c_int = 0x00000000; -pub const CR0: ::c_int = 0x00000000; -pub const FF0: ::c_int = 0x00000000; -pub const BS0: ::c_int = 0x00000000; -pub const VT0: ::c_int = 0x00000000; +pub const MNT_FORCE: c_int = 0x1; + +pub const Q_SYNC: c_int = 0x800001; +pub const Q_QUOTAON: c_int = 0x800002; +pub const Q_QUOTAOFF: c_int = 0x800003; +pub const Q_GETQUOTA: c_int = 0x800007; +pub const Q_SETQUOTA: c_int = 0x800008; + +pub const TCIOFF: c_int = 2; +pub const TCION: c_int = 3; +pub const TCOOFF: c_int = 0; +pub const TCOON: c_int = 1; +pub const TCIFLUSH: c_int = 0; +pub const TCOFLUSH: c_int = 1; +pub const TCIOFLUSH: c_int = 2; +pub const NL0: c_int = 0x00000000; +pub const NL1: c_int = 0x00000100; +pub const TAB0: c_int = 0x00000000; +pub const CR0: c_int = 0x00000000; +pub const FF0: c_int = 0x00000000; +pub const BS0: c_int = 0x00000000; +pub const VT0: c_int = 0x00000000; pub const VERASE: usize = 2; pub const VKILL: usize = 3; pub const VINTR: usize = 0; pub const VQUIT: usize = 1; pub const VLNEXT: usize = 15; -pub const IGNBRK: ::tcflag_t = 0x00000001; -pub const BRKINT: ::tcflag_t = 0x00000002; -pub const IGNPAR: ::tcflag_t = 0x00000004; -pub const PARMRK: ::tcflag_t = 0x00000008; -pub const INPCK: ::tcflag_t = 0x00000010; -pub const ISTRIP: ::tcflag_t = 0x00000020; -pub const INLCR: ::tcflag_t = 0x00000040; -pub const IGNCR: ::tcflag_t = 0x00000080; -pub const ICRNL: ::tcflag_t = 0x00000100; -pub const IXANY: ::tcflag_t = 0x00000800; -pub const IMAXBEL: ::tcflag_t = 0x00002000; -pub const OPOST: ::tcflag_t = 0x1; -pub const CS5: ::tcflag_t = 0x00000000; -pub const CRTSCTS: ::tcflag_t = 0x80000000; -pub const ECHO: ::tcflag_t = 0x00000008; -pub const OCRNL: ::tcflag_t = 0o000010; -pub const ONOCR: ::tcflag_t = 0o000020; -pub const ONLRET: ::tcflag_t = 0o000040; -pub const OFILL: ::tcflag_t = 0o000100; -pub const OFDEL: ::tcflag_t = 0o000200; - -pub const CLONE_VM: ::c_int = 0x100; -pub const CLONE_FS: ::c_int = 0x200; -pub const CLONE_FILES: ::c_int = 0x400; -pub const CLONE_SIGHAND: ::c_int = 0x800; -pub const CLONE_PTRACE: ::c_int = 0x2000; -pub const CLONE_VFORK: ::c_int = 0x4000; -pub const CLONE_PARENT: ::c_int = 0x8000; -pub const CLONE_THREAD: ::c_int = 0x10000; -pub const CLONE_NEWNS: ::c_int = 0x20000; -pub const CLONE_SYSVSEM: ::c_int = 0x40000; -pub const CLONE_SETTLS: ::c_int = 0x80000; -pub const CLONE_PARENT_SETTID: ::c_int = 0x100000; -pub const CLONE_CHILD_CLEARTID: ::c_int = 0x200000; -pub const CLONE_DETACHED: ::c_int = 0x400000; -pub const CLONE_UNTRACED: ::c_int = 0x800000; -pub const CLONE_CHILD_SETTID: ::c_int = 0x01000000; -pub const CLONE_NEWUTS: ::c_int = 0x04000000; -pub const CLONE_NEWIPC: ::c_int = 0x08000000; -pub const CLONE_NEWUSER: ::c_int = 0x10000000; -pub const CLONE_NEWPID: ::c_int = 0x20000000; -pub const CLONE_NEWNET: ::c_int = 0x40000000; -pub const CLONE_IO: ::c_int = 0x80000000; -pub const CLONE_NEWCGROUP: ::c_int = 0x02000000; - -pub const WNOHANG: ::c_int = 0x00000001; -pub const WUNTRACED: ::c_int = 0x00000002; -pub const WSTOPPED: ::c_int = WUNTRACED; -pub const WEXITED: ::c_int = 0x00000004; -pub const WCONTINUED: ::c_int = 0x00000008; -pub const WNOWAIT: ::c_int = 0x01000000; +pub const IGNBRK: crate::tcflag_t = 0x00000001; +pub const BRKINT: crate::tcflag_t = 0x00000002; +pub const IGNPAR: crate::tcflag_t = 0x00000004; +pub const PARMRK: crate::tcflag_t = 0x00000008; +pub const INPCK: crate::tcflag_t = 0x00000010; +pub const ISTRIP: crate::tcflag_t = 0x00000020; +pub const INLCR: crate::tcflag_t = 0x00000040; +pub const IGNCR: crate::tcflag_t = 0x00000080; +pub const ICRNL: crate::tcflag_t = 0x00000100; +pub const IXANY: crate::tcflag_t = 0x00000800; +pub const IMAXBEL: crate::tcflag_t = 0x00002000; +pub const OPOST: crate::tcflag_t = 0x1; +pub const CS5: crate::tcflag_t = 0x00000000; +pub const CRTSCTS: crate::tcflag_t = 0x80000000; +pub const ECHO: crate::tcflag_t = 0x00000008; +pub const OCRNL: crate::tcflag_t = 0o000010; +pub const ONOCR: crate::tcflag_t = 0o000020; +pub const ONLRET: crate::tcflag_t = 0o000040; +pub const OFILL: crate::tcflag_t = 0o000100; +pub const OFDEL: crate::tcflag_t = 0o000200; + +pub const CLONE_VM: c_int = 0x100; +pub const CLONE_FS: c_int = 0x200; +pub const CLONE_FILES: c_int = 0x400; +pub const CLONE_SIGHAND: c_int = 0x800; +pub const CLONE_PTRACE: c_int = 0x2000; +pub const CLONE_VFORK: c_int = 0x4000; +pub const CLONE_PARENT: c_int = 0x8000; +pub const CLONE_THREAD: c_int = 0x10000; +pub const CLONE_NEWNS: c_int = 0x20000; +pub const CLONE_SYSVSEM: c_int = 0x40000; +pub const CLONE_SETTLS: c_int = 0x80000; +pub const CLONE_PARENT_SETTID: c_int = 0x100000; +pub const CLONE_CHILD_CLEARTID: c_int = 0x200000; +pub const CLONE_DETACHED: c_int = 0x400000; +pub const CLONE_UNTRACED: c_int = 0x800000; +pub const CLONE_CHILD_SETTID: c_int = 0x01000000; +pub const CLONE_NEWUTS: c_int = 0x04000000; +pub const CLONE_NEWIPC: c_int = 0x08000000; +pub const CLONE_NEWUSER: c_int = 0x10000000; +pub const CLONE_NEWPID: c_int = 0x20000000; +pub const CLONE_NEWNET: c_int = 0x40000000; +pub const CLONE_IO: c_int = 0x80000000; +pub const CLONE_NEWCGROUP: c_int = 0x02000000; + +pub const WNOHANG: c_int = 0x00000001; +pub const WUNTRACED: c_int = 0x00000002; +pub const WSTOPPED: c_int = WUNTRACED; +pub const WEXITED: c_int = 0x00000004; +pub const WCONTINUED: c_int = 0x00000008; +pub const WNOWAIT: c_int = 0x01000000; // ::Options set using PTRACE_SETOPTIONS. -pub const PTRACE_O_TRACESYSGOOD: ::c_int = 0x00000001; -pub const PTRACE_O_TRACEFORK: ::c_int = 0x00000002; -pub const PTRACE_O_TRACEVFORK: ::c_int = 0x00000004; -pub const PTRACE_O_TRACECLONE: ::c_int = 0x00000008; -pub const PTRACE_O_TRACEEXEC: ::c_int = 0x00000010; -pub const PTRACE_O_TRACEVFORKDONE: ::c_int = 0x00000020; -pub const PTRACE_O_TRACEEXIT: ::c_int = 0x00000040; -pub const PTRACE_O_TRACESECCOMP: ::c_int = 0x00000080; -pub const PTRACE_O_EXITKILL: ::c_int = 0x00100000; -pub const PTRACE_O_SUSPEND_SECCOMP: ::c_int = 0x00200000; -pub const PTRACE_O_MASK: ::c_int = 0x003000ff; +pub const PTRACE_O_TRACESYSGOOD: c_int = 0x00000001; +pub const PTRACE_O_TRACEFORK: c_int = 0x00000002; +pub const PTRACE_O_TRACEVFORK: c_int = 0x00000004; +pub const PTRACE_O_TRACECLONE: c_int = 0x00000008; +pub const PTRACE_O_TRACEEXEC: c_int = 0x00000010; +pub const PTRACE_O_TRACEVFORKDONE: c_int = 0x00000020; +pub const PTRACE_O_TRACEEXIT: c_int = 0x00000040; +pub const PTRACE_O_TRACESECCOMP: c_int = 0x00000080; +pub const PTRACE_O_EXITKILL: c_int = 0x00100000; +pub const PTRACE_O_SUSPEND_SECCOMP: c_int = 0x00200000; +pub const PTRACE_O_MASK: c_int = 0x003000ff; // Wait extended result codes for the above trace options. -pub const PTRACE_EVENT_FORK: ::c_int = 1; -pub const PTRACE_EVENT_VFORK: ::c_int = 2; -pub const PTRACE_EVENT_CLONE: ::c_int = 3; -pub const PTRACE_EVENT_EXEC: ::c_int = 4; -pub const PTRACE_EVENT_VFORK_DONE: ::c_int = 5; -pub const PTRACE_EVENT_EXIT: ::c_int = 6; -pub const PTRACE_EVENT_SECCOMP: ::c_int = 7; +pub const PTRACE_EVENT_FORK: c_int = 1; +pub const PTRACE_EVENT_VFORK: c_int = 2; +pub const PTRACE_EVENT_CLONE: c_int = 3; +pub const PTRACE_EVENT_EXEC: c_int = 4; +pub const PTRACE_EVENT_VFORK_DONE: c_int = 5; +pub const PTRACE_EVENT_EXIT: c_int = 6; +pub const PTRACE_EVENT_SECCOMP: c_int = 7; // PTRACE_EVENT_STOP was added to glibc in 2.26 -// pub const PTRACE_EVENT_STOP: ::c_int = 128; - -pub const __WNOTHREAD: ::c_int = 0x20000000; -pub const __WALL: ::c_int = 0x40000000; -pub const __WCLONE: ::c_int = 0x80000000; - -pub const SPLICE_F_MOVE: ::c_uint = 0x01; -pub const SPLICE_F_NONBLOCK: ::c_uint = 0x02; -pub const SPLICE_F_MORE: ::c_uint = 0x04; -pub const SPLICE_F_GIFT: ::c_uint = 0x08; - -pub const RTLD_LOCAL: ::c_int = 0; -pub const RTLD_LAZY: ::c_int = 1; - -pub const POSIX_FADV_NORMAL: ::c_int = 0; -pub const POSIX_FADV_RANDOM: ::c_int = 1; -pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_FADV_WILLNEED: ::c_int = 3; - -pub const AT_FDCWD: ::c_int = -100; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x100; -pub const AT_REMOVEDIR: ::c_int = 0x200; -pub const AT_EACCESS: ::c_int = 0x200; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400; -pub const AT_NO_AUTOMOUNT: ::c_int = 0x800; -pub const AT_EMPTY_PATH: ::c_int = 0x1000; - -pub const LOG_CRON: ::c_int = 9 << 3; -pub const LOG_AUTHPRIV: ::c_int = 10 << 3; -pub const LOG_FTP: ::c_int = 11 << 3; -pub const LOG_PERROR: ::c_int = 0x20; +// pub const PTRACE_EVENT_STOP: c_int = 128; + +pub const __WNOTHREAD: c_int = 0x20000000; +pub const __WALL: c_int = 0x40000000; +pub const __WCLONE: c_int = 0x80000000; + +pub const SPLICE_F_MOVE: c_uint = 0x01; +pub const SPLICE_F_NONBLOCK: c_uint = 0x02; +pub const SPLICE_F_MORE: c_uint = 0x04; +pub const SPLICE_F_GIFT: c_uint = 0x08; + +pub const RTLD_LOCAL: c_int = 0; +pub const RTLD_LAZY: c_int = 1; + +pub const POSIX_FADV_NORMAL: c_int = 0; +pub const POSIX_FADV_RANDOM: c_int = 1; +pub const POSIX_FADV_SEQUENTIAL: c_int = 2; +pub const POSIX_FADV_WILLNEED: c_int = 3; + +pub const AT_FDCWD: c_int = -100; +pub const AT_SYMLINK_NOFOLLOW: c_int = 0x100; +pub const AT_REMOVEDIR: c_int = 0x200; +pub const AT_EACCESS: c_int = 0x200; +pub const AT_SYMLINK_FOLLOW: c_int = 0x400; +pub const AT_NO_AUTOMOUNT: c_int = 0x800; +pub const AT_EMPTY_PATH: c_int = 0x1000; + +pub const LOG_CRON: c_int = 9 << 3; +pub const LOG_AUTHPRIV: c_int = 10 << 3; +pub const LOG_FTP: c_int = 11 << 3; +pub const LOG_PERROR: c_int = 0x20; pub const PIPE_BUF: usize = 4096; -pub const SI_LOAD_SHIFT: ::c_uint = 16; +pub const SI_LOAD_SHIFT: c_uint = 16; -pub const CLD_EXITED: ::c_int = 1; -pub const CLD_KILLED: ::c_int = 2; -pub const CLD_DUMPED: ::c_int = 3; -pub const CLD_TRAPPED: ::c_int = 4; -pub const CLD_STOPPED: ::c_int = 5; -pub const CLD_CONTINUED: ::c_int = 6; +pub const CLD_EXITED: c_int = 1; +pub const CLD_KILLED: c_int = 2; +pub const CLD_DUMPED: c_int = 3; +pub const CLD_TRAPPED: c_int = 4; +pub const CLD_STOPPED: c_int = 5; +pub const CLD_CONTINUED: c_int = 6; -pub const SIGEV_SIGNAL: ::c_int = 0; -pub const SIGEV_NONE: ::c_int = 1; -pub const SIGEV_THREAD: ::c_int = 2; +pub const SIGEV_SIGNAL: c_int = 0; +pub const SIGEV_NONE: c_int = 1; +pub const SIGEV_THREAD: c_int = 2; pub const P_ALL: idtype_t = 0; pub const P_PID: idtype_t = 1; @@ -2138,303 +2138,303 @@ pub const P_PGID: idtype_t = 2; pub const UTIME_OMIT: c_long = 1073741822; pub const UTIME_NOW: c_long = 1073741823; -pub const POLLIN: ::c_short = 0x1; -pub const POLLPRI: ::c_short = 0x2; -pub const POLLOUT: ::c_short = 0x4; -pub const POLLERR: ::c_short = 0x8; -pub const POLLHUP: ::c_short = 0x10; -pub const POLLNVAL: ::c_short = 0x20; -pub const POLLRDNORM: ::c_short = 0x040; -pub const POLLRDBAND: ::c_short = 0x080; - -pub const ABDAY_1: ::nl_item = 0x20000; -pub const ABDAY_2: ::nl_item = 0x20001; -pub const ABDAY_3: ::nl_item = 0x20002; -pub const ABDAY_4: ::nl_item = 0x20003; -pub const ABDAY_5: ::nl_item = 0x20004; -pub const ABDAY_6: ::nl_item = 0x20005; -pub const ABDAY_7: ::nl_item = 0x20006; - -pub const DAY_1: ::nl_item = 0x20007; -pub const DAY_2: ::nl_item = 0x20008; -pub const DAY_3: ::nl_item = 0x20009; -pub const DAY_4: ::nl_item = 0x2000A; -pub const DAY_5: ::nl_item = 0x2000B; -pub const DAY_6: ::nl_item = 0x2000C; -pub const DAY_7: ::nl_item = 0x2000D; - -pub const ABMON_1: ::nl_item = 0x2000E; -pub const ABMON_2: ::nl_item = 0x2000F; -pub const ABMON_3: ::nl_item = 0x20010; -pub const ABMON_4: ::nl_item = 0x20011; -pub const ABMON_5: ::nl_item = 0x20012; -pub const ABMON_6: ::nl_item = 0x20013; -pub const ABMON_7: ::nl_item = 0x20014; -pub const ABMON_8: ::nl_item = 0x20015; -pub const ABMON_9: ::nl_item = 0x20016; -pub const ABMON_10: ::nl_item = 0x20017; -pub const ABMON_11: ::nl_item = 0x20018; -pub const ABMON_12: ::nl_item = 0x20019; - -pub const MON_1: ::nl_item = 0x2001A; -pub const MON_2: ::nl_item = 0x2001B; -pub const MON_3: ::nl_item = 0x2001C; -pub const MON_4: ::nl_item = 0x2001D; -pub const MON_5: ::nl_item = 0x2001E; -pub const MON_6: ::nl_item = 0x2001F; -pub const MON_7: ::nl_item = 0x20020; -pub const MON_8: ::nl_item = 0x20021; -pub const MON_9: ::nl_item = 0x20022; -pub const MON_10: ::nl_item = 0x20023; -pub const MON_11: ::nl_item = 0x20024; -pub const MON_12: ::nl_item = 0x20025; - -pub const AM_STR: ::nl_item = 0x20026; -pub const PM_STR: ::nl_item = 0x20027; - -pub const D_T_FMT: ::nl_item = 0x20028; -pub const D_FMT: ::nl_item = 0x20029; -pub const T_FMT: ::nl_item = 0x2002A; -pub const T_FMT_AMPM: ::nl_item = 0x2002B; - -pub const ERA: ::nl_item = 0x2002C; -pub const ERA_D_FMT: ::nl_item = 0x2002E; -pub const ALT_DIGITS: ::nl_item = 0x2002F; -pub const ERA_D_T_FMT: ::nl_item = 0x20030; -pub const ERA_T_FMT: ::nl_item = 0x20031; - -pub const CODESET: ::nl_item = 14; - -pub const CRNCYSTR: ::nl_item = 0x4000F; - -pub const RUSAGE_THREAD: ::c_int = 1; -pub const RUSAGE_CHILDREN: ::c_int = -1; - -pub const RADIXCHAR: ::nl_item = 0x10000; -pub const THOUSEP: ::nl_item = 0x10001; - -pub const YESEXPR: ::nl_item = 0x50000; -pub const NOEXPR: ::nl_item = 0x50001; -pub const YESSTR: ::nl_item = 0x50002; -pub const NOSTR: ::nl_item = 0x50003; - -pub const FILENAME_MAX: ::c_uint = 4096; -pub const L_tmpnam: ::c_uint = 20; -pub const _PC_LINK_MAX: ::c_int = 0; -pub const _PC_MAX_CANON: ::c_int = 1; -pub const _PC_MAX_INPUT: ::c_int = 2; -pub const _PC_NAME_MAX: ::c_int = 3; -pub const _PC_PATH_MAX: ::c_int = 4; -pub const _PC_PIPE_BUF: ::c_int = 5; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 6; -pub const _PC_NO_TRUNC: ::c_int = 7; -pub const _PC_VDISABLE: ::c_int = 8; -pub const _PC_SYNC_IO: ::c_int = 9; -pub const _PC_ASYNC_IO: ::c_int = 10; -pub const _PC_PRIO_IO: ::c_int = 11; -pub const _PC_SOCK_MAXBUF: ::c_int = 12; -pub const _PC_FILESIZEBITS: ::c_int = 13; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; -pub const _PC_REC_XFER_ALIGN: ::c_int = 17; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 18; -pub const _PC_SYMLINK_MAX: ::c_int = 19; -pub const _PC_2_SYMLINKS: ::c_int = 20; - -pub const _SC_ARG_MAX: ::c_int = 0; -pub const _SC_CHILD_MAX: ::c_int = 1; -pub const _SC_CLK_TCK: ::c_int = 2; -pub const _SC_NGROUPS_MAX: ::c_int = 3; -pub const _SC_OPEN_MAX: ::c_int = 4; -pub const _SC_STREAM_MAX: ::c_int = 5; -pub const _SC_TZNAME_MAX: ::c_int = 6; -pub const _SC_JOB_CONTROL: ::c_int = 7; -pub const _SC_SAVED_IDS: ::c_int = 8; -pub const _SC_REALTIME_SIGNALS: ::c_int = 9; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 10; -pub const _SC_TIMERS: ::c_int = 11; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 12; -pub const _SC_PRIORITIZED_IO: ::c_int = 13; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 14; -pub const _SC_FSYNC: ::c_int = 15; -pub const _SC_MAPPED_FILES: ::c_int = 16; -pub const _SC_MEMLOCK: ::c_int = 17; -pub const _SC_MEMLOCK_RANGE: ::c_int = 18; -pub const _SC_MEMORY_PROTECTION: ::c_int = 19; -pub const _SC_MESSAGE_PASSING: ::c_int = 20; -pub const _SC_SEMAPHORES: ::c_int = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 22; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 23; -pub const _SC_AIO_MAX: ::c_int = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 25; -pub const _SC_DELAYTIMER_MAX: ::c_int = 26; -pub const _SC_MQ_OPEN_MAX: ::c_int = 27; -pub const _SC_MQ_PRIO_MAX: ::c_int = 28; -pub const _SC_VERSION: ::c_int = 29; -pub const _SC_PAGESIZE: ::c_int = 30; -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_RTSIG_MAX: ::c_int = 31; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 32; -pub const _SC_SEM_VALUE_MAX: ::c_int = 33; -pub const _SC_SIGQUEUE_MAX: ::c_int = 34; -pub const _SC_TIMER_MAX: ::c_int = 35; -pub const _SC_BC_BASE_MAX: ::c_int = 36; -pub const _SC_BC_DIM_MAX: ::c_int = 37; -pub const _SC_BC_SCALE_MAX: ::c_int = 38; -pub const _SC_BC_STRING_MAX: ::c_int = 39; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 40; -pub const _SC_EXPR_NEST_MAX: ::c_int = 42; -pub const _SC_LINE_MAX: ::c_int = 43; -pub const _SC_RE_DUP_MAX: ::c_int = 44; -pub const _SC_2_VERSION: ::c_int = 46; -pub const _SC_2_C_BIND: ::c_int = 47; -pub const _SC_2_C_DEV: ::c_int = 48; -pub const _SC_2_FORT_DEV: ::c_int = 49; -pub const _SC_2_FORT_RUN: ::c_int = 50; -pub const _SC_2_SW_DEV: ::c_int = 51; -pub const _SC_2_LOCALEDEF: ::c_int = 52; -pub const _SC_UIO_MAXIOV: ::c_int = 60; -pub const _SC_IOV_MAX: ::c_int = 60; -pub const _SC_THREADS: ::c_int = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 68; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 69; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 70; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 71; -pub const _SC_TTY_NAME_MAX: ::c_int = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 73; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 74; -pub const _SC_THREAD_STACK_MIN: ::c_int = 75; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 76; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 79; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 80; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 81; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 82; -pub const _SC_NPROCESSORS_CONF: ::c_int = 83; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 84; -pub const _SC_PHYS_PAGES: ::c_int = 85; -pub const _SC_AVPHYS_PAGES: ::c_int = 86; -pub const _SC_ATEXIT_MAX: ::c_int = 87; -pub const _SC_PASS_MAX: ::c_int = 88; -pub const _SC_XOPEN_VERSION: ::c_int = 89; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 90; -pub const _SC_XOPEN_UNIX: ::c_int = 91; -pub const _SC_XOPEN_CRYPT: ::c_int = 92; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 93; -pub const _SC_XOPEN_SHM: ::c_int = 94; -pub const _SC_2_CHAR_TERM: ::c_int = 95; -pub const _SC_2_UPE: ::c_int = 97; -pub const _SC_XOPEN_XPG2: ::c_int = 98; -pub const _SC_XOPEN_XPG3: ::c_int = 99; -pub const _SC_XOPEN_XPG4: ::c_int = 100; -pub const _SC_NZERO: ::c_int = 109; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 125; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 126; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 128; -pub const _SC_XOPEN_LEGACY: ::c_int = 129; -pub const _SC_XOPEN_REALTIME: ::c_int = 130; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 131; -pub const _SC_ADVISORY_INFO: ::c_int = 132; -pub const _SC_BARRIERS: ::c_int = 133; -pub const _SC_CLOCK_SELECTION: ::c_int = 137; -pub const _SC_CPUTIME: ::c_int = 138; -pub const _SC_THREAD_CPUTIME: ::c_int = 139; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 149; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 153; -pub const _SC_SPIN_LOCKS: ::c_int = 154; -pub const _SC_REGEXP: ::c_int = 155; -pub const _SC_SHELL: ::c_int = 157; -pub const _SC_SPAWN: ::c_int = 159; -pub const _SC_SPORADIC_SERVER: ::c_int = 160; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 161; -pub const _SC_TIMEOUTS: ::c_int = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 165; -pub const _SC_2_PBS: ::c_int = 168; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 169; -pub const _SC_2_PBS_LOCATE: ::c_int = 170; -pub const _SC_2_PBS_MESSAGE: ::c_int = 171; -pub const _SC_2_PBS_TRACK: ::c_int = 172; -pub const _SC_SYMLOOP_MAX: ::c_int = 173; -pub const _SC_STREAMS: ::c_int = 174; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 175; -pub const _SC_V6_ILP32_OFF32: ::c_int = 176; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 177; -pub const _SC_V6_LP64_OFF64: ::c_int = 178; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 179; -pub const _SC_HOST_NAME_MAX: ::c_int = 180; -pub const _SC_TRACE: ::c_int = 181; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 182; -pub const _SC_TRACE_INHERIT: ::c_int = 183; -pub const _SC_TRACE_LOG: ::c_int = 184; -pub const _SC_IPV6: ::c_int = 235; -pub const _SC_RAW_SOCKETS: ::c_int = 236; -pub const _SC_V7_ILP32_OFF32: ::c_int = 237; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 238; -pub const _SC_V7_LP64_OFF64: ::c_int = 239; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 240; -pub const _SC_SS_REPL_MAX: ::c_int = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 242; -pub const _SC_TRACE_NAME_MAX: ::c_int = 243; -pub const _SC_TRACE_SYS_MAX: ::c_int = 244; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 245; -pub const _SC_XOPEN_STREAMS: ::c_int = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 248; - -pub const RLIM_SAVED_MAX: ::rlim_t = RLIM_INFINITY; -pub const RLIM_SAVED_CUR: ::rlim_t = RLIM_INFINITY; - -pub const GLOB_ERR: ::c_int = 1 << 0; -pub const GLOB_MARK: ::c_int = 1 << 1; -pub const GLOB_NOSORT: ::c_int = 1 << 2; -pub const GLOB_DOOFFS: ::c_int = 1 << 3; -pub const GLOB_NOCHECK: ::c_int = 1 << 4; -pub const GLOB_APPEND: ::c_int = 1 << 5; -pub const GLOB_NOESCAPE: ::c_int = 1 << 6; - -pub const GLOB_NOSPACE: ::c_int = 1; -pub const GLOB_ABORTED: ::c_int = 2; -pub const GLOB_NOMATCH: ::c_int = 3; - -pub const POSIX_MADV_NORMAL: ::c_int = 0; -pub const POSIX_MADV_RANDOM: ::c_int = 1; -pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_MADV_WILLNEED: ::c_int = 3; +pub const POLLIN: c_short = 0x1; +pub const POLLPRI: c_short = 0x2; +pub const POLLOUT: c_short = 0x4; +pub const POLLERR: c_short = 0x8; +pub const POLLHUP: c_short = 0x10; +pub const POLLNVAL: c_short = 0x20; +pub const POLLRDNORM: c_short = 0x040; +pub const POLLRDBAND: c_short = 0x080; + +pub const ABDAY_1: crate::nl_item = 0x20000; +pub const ABDAY_2: crate::nl_item = 0x20001; +pub const ABDAY_3: crate::nl_item = 0x20002; +pub const ABDAY_4: crate::nl_item = 0x20003; +pub const ABDAY_5: crate::nl_item = 0x20004; +pub const ABDAY_6: crate::nl_item = 0x20005; +pub const ABDAY_7: crate::nl_item = 0x20006; + +pub const DAY_1: crate::nl_item = 0x20007; +pub const DAY_2: crate::nl_item = 0x20008; +pub const DAY_3: crate::nl_item = 0x20009; +pub const DAY_4: crate::nl_item = 0x2000A; +pub const DAY_5: crate::nl_item = 0x2000B; +pub const DAY_6: crate::nl_item = 0x2000C; +pub const DAY_7: crate::nl_item = 0x2000D; + +pub const ABMON_1: crate::nl_item = 0x2000E; +pub const ABMON_2: crate::nl_item = 0x2000F; +pub const ABMON_3: crate::nl_item = 0x20010; +pub const ABMON_4: crate::nl_item = 0x20011; +pub const ABMON_5: crate::nl_item = 0x20012; +pub const ABMON_6: crate::nl_item = 0x20013; +pub const ABMON_7: crate::nl_item = 0x20014; +pub const ABMON_8: crate::nl_item = 0x20015; +pub const ABMON_9: crate::nl_item = 0x20016; +pub const ABMON_10: crate::nl_item = 0x20017; +pub const ABMON_11: crate::nl_item = 0x20018; +pub const ABMON_12: crate::nl_item = 0x20019; + +pub const MON_1: crate::nl_item = 0x2001A; +pub const MON_2: crate::nl_item = 0x2001B; +pub const MON_3: crate::nl_item = 0x2001C; +pub const MON_4: crate::nl_item = 0x2001D; +pub const MON_5: crate::nl_item = 0x2001E; +pub const MON_6: crate::nl_item = 0x2001F; +pub const MON_7: crate::nl_item = 0x20020; +pub const MON_8: crate::nl_item = 0x20021; +pub const MON_9: crate::nl_item = 0x20022; +pub const MON_10: crate::nl_item = 0x20023; +pub const MON_11: crate::nl_item = 0x20024; +pub const MON_12: crate::nl_item = 0x20025; + +pub const AM_STR: crate::nl_item = 0x20026; +pub const PM_STR: crate::nl_item = 0x20027; + +pub const D_T_FMT: crate::nl_item = 0x20028; +pub const D_FMT: crate::nl_item = 0x20029; +pub const T_FMT: crate::nl_item = 0x2002A; +pub const T_FMT_AMPM: crate::nl_item = 0x2002B; + +pub const ERA: crate::nl_item = 0x2002C; +pub const ERA_D_FMT: crate::nl_item = 0x2002E; +pub const ALT_DIGITS: crate::nl_item = 0x2002F; +pub const ERA_D_T_FMT: crate::nl_item = 0x20030; +pub const ERA_T_FMT: crate::nl_item = 0x20031; + +pub const CODESET: crate::nl_item = 14; + +pub const CRNCYSTR: crate::nl_item = 0x4000F; + +pub const RUSAGE_THREAD: c_int = 1; +pub const RUSAGE_CHILDREN: c_int = -1; + +pub const RADIXCHAR: crate::nl_item = 0x10000; +pub const THOUSEP: crate::nl_item = 0x10001; + +pub const YESEXPR: crate::nl_item = 0x50000; +pub const NOEXPR: crate::nl_item = 0x50001; +pub const YESSTR: crate::nl_item = 0x50002; +pub const NOSTR: crate::nl_item = 0x50003; + +pub const FILENAME_MAX: c_uint = 4096; +pub const L_tmpnam: c_uint = 20; +pub const _PC_LINK_MAX: c_int = 0; +pub const _PC_MAX_CANON: c_int = 1; +pub const _PC_MAX_INPUT: c_int = 2; +pub const _PC_NAME_MAX: c_int = 3; +pub const _PC_PATH_MAX: c_int = 4; +pub const _PC_PIPE_BUF: c_int = 5; +pub const _PC_CHOWN_RESTRICTED: c_int = 6; +pub const _PC_NO_TRUNC: c_int = 7; +pub const _PC_VDISABLE: c_int = 8; +pub const _PC_SYNC_IO: c_int = 9; +pub const _PC_ASYNC_IO: c_int = 10; +pub const _PC_PRIO_IO: c_int = 11; +pub const _PC_SOCK_MAXBUF: c_int = 12; +pub const _PC_FILESIZEBITS: c_int = 13; +pub const _PC_REC_INCR_XFER_SIZE: c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: c_int = 16; +pub const _PC_REC_XFER_ALIGN: c_int = 17; +pub const _PC_ALLOC_SIZE_MIN: c_int = 18; +pub const _PC_SYMLINK_MAX: c_int = 19; +pub const _PC_2_SYMLINKS: c_int = 20; + +pub const _SC_ARG_MAX: c_int = 0; +pub const _SC_CHILD_MAX: c_int = 1; +pub const _SC_CLK_TCK: c_int = 2; +pub const _SC_NGROUPS_MAX: c_int = 3; +pub const _SC_OPEN_MAX: c_int = 4; +pub const _SC_STREAM_MAX: c_int = 5; +pub const _SC_TZNAME_MAX: c_int = 6; +pub const _SC_JOB_CONTROL: c_int = 7; +pub const _SC_SAVED_IDS: c_int = 8; +pub const _SC_REALTIME_SIGNALS: c_int = 9; +pub const _SC_PRIORITY_SCHEDULING: c_int = 10; +pub const _SC_TIMERS: c_int = 11; +pub const _SC_ASYNCHRONOUS_IO: c_int = 12; +pub const _SC_PRIORITIZED_IO: c_int = 13; +pub const _SC_SYNCHRONIZED_IO: c_int = 14; +pub const _SC_FSYNC: c_int = 15; +pub const _SC_MAPPED_FILES: c_int = 16; +pub const _SC_MEMLOCK: c_int = 17; +pub const _SC_MEMLOCK_RANGE: c_int = 18; +pub const _SC_MEMORY_PROTECTION: c_int = 19; +pub const _SC_MESSAGE_PASSING: c_int = 20; +pub const _SC_SEMAPHORES: c_int = 21; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 22; +pub const _SC_AIO_LISTIO_MAX: c_int = 23; +pub const _SC_AIO_MAX: c_int = 24; +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 25; +pub const _SC_DELAYTIMER_MAX: c_int = 26; +pub const _SC_MQ_OPEN_MAX: c_int = 27; +pub const _SC_MQ_PRIO_MAX: c_int = 28; +pub const _SC_VERSION: c_int = 29; +pub const _SC_PAGESIZE: c_int = 30; +pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; +pub const _SC_RTSIG_MAX: c_int = 31; +pub const _SC_SEM_NSEMS_MAX: c_int = 32; +pub const _SC_SEM_VALUE_MAX: c_int = 33; +pub const _SC_SIGQUEUE_MAX: c_int = 34; +pub const _SC_TIMER_MAX: c_int = 35; +pub const _SC_BC_BASE_MAX: c_int = 36; +pub const _SC_BC_DIM_MAX: c_int = 37; +pub const _SC_BC_SCALE_MAX: c_int = 38; +pub const _SC_BC_STRING_MAX: c_int = 39; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 40; +pub const _SC_EXPR_NEST_MAX: c_int = 42; +pub const _SC_LINE_MAX: c_int = 43; +pub const _SC_RE_DUP_MAX: c_int = 44; +pub const _SC_2_VERSION: c_int = 46; +pub const _SC_2_C_BIND: c_int = 47; +pub const _SC_2_C_DEV: c_int = 48; +pub const _SC_2_FORT_DEV: c_int = 49; +pub const _SC_2_FORT_RUN: c_int = 50; +pub const _SC_2_SW_DEV: c_int = 51; +pub const _SC_2_LOCALEDEF: c_int = 52; +pub const _SC_UIO_MAXIOV: c_int = 60; +pub const _SC_IOV_MAX: c_int = 60; +pub const _SC_THREADS: c_int = 67; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 68; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 69; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 70; +pub const _SC_LOGIN_NAME_MAX: c_int = 71; +pub const _SC_TTY_NAME_MAX: c_int = 72; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 73; +pub const _SC_THREAD_KEYS_MAX: c_int = 74; +pub const _SC_THREAD_STACK_MIN: c_int = 75; +pub const _SC_THREAD_THREADS_MAX: c_int = 76; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 77; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 78; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 79; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 80; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 81; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 82; +pub const _SC_NPROCESSORS_CONF: c_int = 83; +pub const _SC_NPROCESSORS_ONLN: c_int = 84; +pub const _SC_PHYS_PAGES: c_int = 85; +pub const _SC_AVPHYS_PAGES: c_int = 86; +pub const _SC_ATEXIT_MAX: c_int = 87; +pub const _SC_PASS_MAX: c_int = 88; +pub const _SC_XOPEN_VERSION: c_int = 89; +pub const _SC_XOPEN_XCU_VERSION: c_int = 90; +pub const _SC_XOPEN_UNIX: c_int = 91; +pub const _SC_XOPEN_CRYPT: c_int = 92; +pub const _SC_XOPEN_ENH_I18N: c_int = 93; +pub const _SC_XOPEN_SHM: c_int = 94; +pub const _SC_2_CHAR_TERM: c_int = 95; +pub const _SC_2_UPE: c_int = 97; +pub const _SC_XOPEN_XPG2: c_int = 98; +pub const _SC_XOPEN_XPG3: c_int = 99; +pub const _SC_XOPEN_XPG4: c_int = 100; +pub const _SC_NZERO: c_int = 109; +pub const _SC_XBS5_ILP32_OFF32: c_int = 125; +pub const _SC_XBS5_ILP32_OFFBIG: c_int = 126; +pub const _SC_XBS5_LP64_OFF64: c_int = 127; +pub const _SC_XBS5_LPBIG_OFFBIG: c_int = 128; +pub const _SC_XOPEN_LEGACY: c_int = 129; +pub const _SC_XOPEN_REALTIME: c_int = 130; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 131; +pub const _SC_ADVISORY_INFO: c_int = 132; +pub const _SC_BARRIERS: c_int = 133; +pub const _SC_CLOCK_SELECTION: c_int = 137; +pub const _SC_CPUTIME: c_int = 138; +pub const _SC_THREAD_CPUTIME: c_int = 139; +pub const _SC_MONOTONIC_CLOCK: c_int = 149; +pub const _SC_READER_WRITER_LOCKS: c_int = 153; +pub const _SC_SPIN_LOCKS: c_int = 154; +pub const _SC_REGEXP: c_int = 155; +pub const _SC_SHELL: c_int = 157; +pub const _SC_SPAWN: c_int = 159; +pub const _SC_SPORADIC_SERVER: c_int = 160; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 161; +pub const _SC_TIMEOUTS: c_int = 164; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 165; +pub const _SC_2_PBS: c_int = 168; +pub const _SC_2_PBS_ACCOUNTING: c_int = 169; +pub const _SC_2_PBS_LOCATE: c_int = 170; +pub const _SC_2_PBS_MESSAGE: c_int = 171; +pub const _SC_2_PBS_TRACK: c_int = 172; +pub const _SC_SYMLOOP_MAX: c_int = 173; +pub const _SC_STREAMS: c_int = 174; +pub const _SC_2_PBS_CHECKPOINT: c_int = 175; +pub const _SC_V6_ILP32_OFF32: c_int = 176; +pub const _SC_V6_ILP32_OFFBIG: c_int = 177; +pub const _SC_V6_LP64_OFF64: c_int = 178; +pub const _SC_V6_LPBIG_OFFBIG: c_int = 179; +pub const _SC_HOST_NAME_MAX: c_int = 180; +pub const _SC_TRACE: c_int = 181; +pub const _SC_TRACE_EVENT_FILTER: c_int = 182; +pub const _SC_TRACE_INHERIT: c_int = 183; +pub const _SC_TRACE_LOG: c_int = 184; +pub const _SC_IPV6: c_int = 235; +pub const _SC_RAW_SOCKETS: c_int = 236; +pub const _SC_V7_ILP32_OFF32: c_int = 237; +pub const _SC_V7_ILP32_OFFBIG: c_int = 238; +pub const _SC_V7_LP64_OFF64: c_int = 239; +pub const _SC_V7_LPBIG_OFFBIG: c_int = 240; +pub const _SC_SS_REPL_MAX: c_int = 241; +pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 242; +pub const _SC_TRACE_NAME_MAX: c_int = 243; +pub const _SC_TRACE_SYS_MAX: c_int = 244; +pub const _SC_TRACE_USER_EVENT_MAX: c_int = 245; +pub const _SC_XOPEN_STREAMS: c_int = 246; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 247; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 248; + +pub const RLIM_SAVED_MAX: crate::rlim_t = RLIM_INFINITY; +pub const RLIM_SAVED_CUR: crate::rlim_t = RLIM_INFINITY; + +pub const GLOB_ERR: c_int = 1 << 0; +pub const GLOB_MARK: c_int = 1 << 1; +pub const GLOB_NOSORT: c_int = 1 << 2; +pub const GLOB_DOOFFS: c_int = 1 << 3; +pub const GLOB_NOCHECK: c_int = 1 << 4; +pub const GLOB_APPEND: c_int = 1 << 5; +pub const GLOB_NOESCAPE: c_int = 1 << 6; + +pub const GLOB_NOSPACE: c_int = 1; +pub const GLOB_ABORTED: c_int = 2; +pub const GLOB_NOMATCH: c_int = 3; + +pub const POSIX_MADV_NORMAL: c_int = 0; +pub const POSIX_MADV_RANDOM: c_int = 1; +pub const POSIX_MADV_SEQUENTIAL: c_int = 2; +pub const POSIX_MADV_WILLNEED: c_int = 3; pub const S_IEXEC: mode_t = 0o0100; pub const S_IWRITE: mode_t = 0o0200; pub const S_IREAD: mode_t = 0o0400; -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; - -pub const IFF_LOWER_UP: ::c_int = 0x10000; -pub const IFF_DORMANT: ::c_int = 0x20000; -pub const IFF_ECHO: ::c_int = 0x40000; - -pub const ST_RDONLY: ::c_ulong = 1; -pub const ST_NOSUID: ::c_ulong = 2; -pub const ST_NODEV: ::c_ulong = 4; -pub const ST_NOEXEC: ::c_ulong = 8; -pub const ST_SYNCHRONOUS: ::c_ulong = 16; -pub const ST_MANDLOCK: ::c_ulong = 64; -pub const ST_WRITE: ::c_ulong = 128; -pub const ST_APPEND: ::c_ulong = 256; -pub const ST_IMMUTABLE: ::c_ulong = 512; -pub const ST_NOATIME: ::c_ulong = 1024; -pub const ST_NODIRATIME: ::c_ulong = 2048; - -pub const RTLD_NEXT: *mut ::c_void = -1i64 as *mut ::c_void; -pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; -pub const RTLD_NODELETE: ::c_int = 0x1000; -pub const RTLD_NOW: ::c_int = 0x2; - -pub const TCP_MD5SIG: ::c_int = 14; +pub const F_LOCK: c_int = 1; +pub const F_TEST: c_int = 3; +pub const F_TLOCK: c_int = 2; +pub const F_ULOCK: c_int = 0; + +pub const IFF_LOWER_UP: c_int = 0x10000; +pub const IFF_DORMANT: c_int = 0x20000; +pub const IFF_ECHO: c_int = 0x40000; + +pub const ST_RDONLY: c_ulong = 1; +pub const ST_NOSUID: c_ulong = 2; +pub const ST_NODEV: c_ulong = 4; +pub const ST_NOEXEC: c_ulong = 8; +pub const ST_SYNCHRONOUS: c_ulong = 16; +pub const ST_MANDLOCK: c_ulong = 64; +pub const ST_WRITE: c_ulong = 128; +pub const ST_APPEND: c_ulong = 256; +pub const ST_IMMUTABLE: c_ulong = 512; +pub const ST_NOATIME: c_ulong = 1024; +pub const ST_NODIRATIME: c_ulong = 2048; + +pub const RTLD_NEXT: *mut c_void = -1i64 as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = 0i64 as *mut c_void; +pub const RTLD_NODELETE: c_int = 0x1000; +pub const RTLD_NOW: c_int = 0x2; + +pub const TCP_MD5SIG: c_int = 14; pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { size: [0; __SIZEOF_PTHREAD_MUTEX_T], @@ -2445,340 +2445,340 @@ pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { size: [0; __SIZEOF_PTHREAD_RWLOCK_T], }; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; -pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0; -pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; +pub const PTHREAD_MUTEX_NORMAL: c_int = 0; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 1; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_NORMAL; +pub const PTHREAD_PROCESS_PRIVATE: c_int = 0; +pub const PTHREAD_PROCESS_SHARED: c_int = 1; pub const __SIZEOF_PTHREAD_COND_T: usize = 48; -pub const RENAME_NOREPLACE: ::c_int = 1; -pub const RENAME_EXCHANGE: ::c_int = 2; -pub const RENAME_WHITEOUT: ::c_int = 4; +pub const RENAME_NOREPLACE: c_int = 1; +pub const RENAME_EXCHANGE: c_int = 2; +pub const RENAME_WHITEOUT: c_int = 4; -pub const SCHED_OTHER: ::c_int = 0; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; -pub const SCHED_BATCH: ::c_int = 3; -pub const SCHED_IDLE: ::c_int = 5; +pub const SCHED_OTHER: c_int = 0; +pub const SCHED_FIFO: c_int = 1; +pub const SCHED_RR: c_int = 2; +pub const SCHED_BATCH: c_int = 3; +pub const SCHED_IDLE: c_int = 5; // netinet/in.h // NOTE: These are in addition to the constants defined in src/unix/mod.rs // IPPROTO_IP defined in src/unix/mod.rs /// Hop-by-hop option header -pub const IPPROTO_HOPOPTS: ::c_int = 0; +pub const IPPROTO_HOPOPTS: c_int = 0; // IPPROTO_ICMP defined in src/unix/mod.rs /// group mgmt protocol -pub const IPPROTO_IGMP: ::c_int = 2; +pub const IPPROTO_IGMP: c_int = 2; /// for compatibility -pub const IPPROTO_IPIP: ::c_int = 4; +pub const IPPROTO_IPIP: c_int = 4; // IPPROTO_TCP defined in src/unix/mod.rs /// exterior gateway protocol -pub const IPPROTO_EGP: ::c_int = 8; +pub const IPPROTO_EGP: c_int = 8; /// pup -pub const IPPROTO_PUP: ::c_int = 12; +pub const IPPROTO_PUP: c_int = 12; // IPPROTO_UDP defined in src/unix/mod.rs /// xns idp -pub const IPPROTO_IDP: ::c_int = 22; +pub const IPPROTO_IDP: c_int = 22; /// tp-4 w/ class negotiation -pub const IPPROTO_TP: ::c_int = 29; +pub const IPPROTO_TP: c_int = 29; /// DCCP -pub const IPPROTO_DCCP: ::c_int = 33; +pub const IPPROTO_DCCP: c_int = 33; // IPPROTO_IPV6 defined in src/unix/mod.rs /// IP6 routing header -pub const IPPROTO_ROUTING: ::c_int = 43; +pub const IPPROTO_ROUTING: c_int = 43; /// IP6 fragmentation header -pub const IPPROTO_FRAGMENT: ::c_int = 44; +pub const IPPROTO_FRAGMENT: c_int = 44; /// resource reservation -pub const IPPROTO_RSVP: ::c_int = 46; +pub const IPPROTO_RSVP: c_int = 46; /// General Routing Encap. -pub const IPPROTO_GRE: ::c_int = 47; +pub const IPPROTO_GRE: c_int = 47; /// IP6 Encap Sec. Payload -pub const IPPROTO_ESP: ::c_int = 50; +pub const IPPROTO_ESP: c_int = 50; /// IP6 Auth Header -pub const IPPROTO_AH: ::c_int = 51; +pub const IPPROTO_AH: c_int = 51; // IPPROTO_ICMPV6 defined in src/unix/mod.rs /// IP6 no next header -pub const IPPROTO_NONE: ::c_int = 59; +pub const IPPROTO_NONE: c_int = 59; /// IP6 destination option -pub const IPPROTO_DSTOPTS: ::c_int = 60; -pub const IPPROTO_MTP: ::c_int = 92; -pub const IPPROTO_BEETPH: ::c_int = 94; +pub const IPPROTO_DSTOPTS: c_int = 60; +pub const IPPROTO_MTP: c_int = 92; +pub const IPPROTO_BEETPH: c_int = 94; /// encapsulation header -pub const IPPROTO_ENCAP: ::c_int = 98; +pub const IPPROTO_ENCAP: c_int = 98; /// Protocol indep. multicast -pub const IPPROTO_PIM: ::c_int = 103; +pub const IPPROTO_PIM: c_int = 103; /// IP Payload Comp. Protocol -pub const IPPROTO_COMP: ::c_int = 108; +pub const IPPROTO_COMP: c_int = 108; /// SCTP -pub const IPPROTO_SCTP: ::c_int = 132; -pub const IPPROTO_MH: ::c_int = 135; -pub const IPPROTO_UDPLITE: ::c_int = 136; -pub const IPPROTO_MPLS: ::c_int = 137; +pub const IPPROTO_SCTP: c_int = 132; +pub const IPPROTO_MH: c_int = 135; +pub const IPPROTO_UDPLITE: c_int = 136; +pub const IPPROTO_MPLS: c_int = 137; /// raw IP packet -pub const IPPROTO_RAW: ::c_int = 255; -pub const IPPROTO_MAX: ::c_int = 256; - -pub const AF_IB: ::c_int = 27; -pub const AF_MPLS: ::c_int = 28; -pub const AF_NFC: ::c_int = 39; -pub const AF_VSOCK: ::c_int = 40; -pub const PF_IB: ::c_int = AF_IB; -pub const PF_MPLS: ::c_int = AF_MPLS; -pub const PF_NFC: ::c_int = AF_NFC; -pub const PF_VSOCK: ::c_int = AF_VSOCK; +pub const IPPROTO_RAW: c_int = 255; +pub const IPPROTO_MAX: c_int = 256; + +pub const AF_IB: c_int = 27; +pub const AF_MPLS: c_int = 28; +pub const AF_NFC: c_int = 39; +pub const AF_VSOCK: c_int = 40; +pub const PF_IB: c_int = AF_IB; +pub const PF_MPLS: c_int = AF_MPLS; +pub const PF_NFC: c_int = AF_NFC; +pub const PF_VSOCK: c_int = AF_VSOCK; // System V IPC -pub const IPC_PRIVATE: ::key_t = 0; - -pub const IPC_CREAT: ::c_int = 0o1000; -pub const IPC_EXCL: ::c_int = 0o2000; -pub const IPC_NOWAIT: ::c_int = 0o4000; - -pub const IPC_RMID: ::c_int = 0; -pub const IPC_SET: ::c_int = 1; -pub const IPC_STAT: ::c_int = 2; -pub const IPC_INFO: ::c_int = 3; -pub const MSG_STAT: ::c_int = 11; -pub const MSG_INFO: ::c_int = 12; - -pub const MSG_NOERROR: ::c_int = 0o10000; -pub const MSG_EXCEPT: ::c_int = 0o20000; -pub const MSG_COPY: ::c_int = 0o40000; - -pub const SHM_R: ::c_int = 0o400; -pub const SHM_W: ::c_int = 0o200; - -pub const SHM_RDONLY: ::c_int = 0o10000; -pub const SHM_RND: ::c_int = 0o20000; -pub const SHM_REMAP: ::c_int = 0o40000; -pub const SHM_EXEC: ::c_int = 0o100000; - -pub const SHM_LOCK: ::c_int = 11; -pub const SHM_UNLOCK: ::c_int = 12; - -pub const SHM_HUGETLB: ::c_int = 0o4000; -pub const SHM_NORESERVE: ::c_int = 0o10000; - -pub const EPOLLRDHUP: ::c_int = 0x2000; -pub const EPOLLEXCLUSIVE: ::c_int = 0x10000000; -pub const EPOLLONESHOT: ::c_int = 0x40000000; - -pub const QFMT_VFS_OLD: ::c_int = 1; -pub const QFMT_VFS_V0: ::c_int = 2; -pub const QFMT_VFS_V1: ::c_int = 4; - -pub const EFD_SEMAPHORE: ::c_int = 0x1; - -pub const LOG_NFACILITIES: ::c_int = 24; - -pub const SEM_FAILED: *mut ::sem_t = 0 as *mut sem_t; - -pub const RB_AUTOBOOT: ::c_int = 0x01234567u32 as i32; -pub const RB_HALT_SYSTEM: ::c_int = 0xcdef0123u32 as i32; -pub const RB_ENABLE_CAD: ::c_int = 0x89abcdefu32 as i32; -pub const RB_DISABLE_CAD: ::c_int = 0x00000000u32 as i32; -pub const RB_POWER_OFF: ::c_int = 0x4321fedcu32 as i32; -pub const RB_SW_SUSPEND: ::c_int = 0xd000fce2u32 as i32; -pub const RB_KEXEC: ::c_int = 0x45584543u32 as i32; - -pub const AI_PASSIVE: ::c_int = 0x0001; -pub const AI_CANONNAME: ::c_int = 0x0002; -pub const AI_NUMERICHOST: ::c_int = 0x0004; -pub const AI_V4MAPPED: ::c_int = 0x0008; -pub const AI_ALL: ::c_int = 0x0010; -pub const AI_ADDRCONFIG: ::c_int = 0x0020; - -pub const AI_NUMERICSERV: ::c_int = 0x0400; - -pub const EAI_BADFLAGS: ::c_int = -1; -pub const EAI_NONAME: ::c_int = -2; -pub const EAI_AGAIN: ::c_int = -3; -pub const EAI_FAIL: ::c_int = -4; -pub const EAI_FAMILY: ::c_int = -6; -pub const EAI_SOCKTYPE: ::c_int = -7; -pub const EAI_SERVICE: ::c_int = -8; -pub const EAI_MEMORY: ::c_int = -10; -pub const EAI_OVERFLOW: ::c_int = -12; - -pub const NI_NUMERICHOST: ::c_int = 1; -pub const NI_NUMERICSERV: ::c_int = 2; -pub const NI_NOFQDN: ::c_int = 4; -pub const NI_NAMEREQD: ::c_int = 8; -pub const NI_DGRAM: ::c_int = 16; - -pub const SYNC_FILE_RANGE_WAIT_BEFORE: ::c_uint = 1; -pub const SYNC_FILE_RANGE_WRITE: ::c_uint = 2; -pub const SYNC_FILE_RANGE_WAIT_AFTER: ::c_uint = 4; - -pub const EAI_SYSTEM: ::c_int = -11; - -pub const AIO_CANCELED: ::c_int = 0; -pub const AIO_NOTCANCELED: ::c_int = 1; -pub const AIO_ALLDONE: ::c_int = 2; -pub const LIO_READ: ::c_int = 0; -pub const LIO_WRITE: ::c_int = 1; -pub const LIO_NOP: ::c_int = 2; -pub const LIO_WAIT: ::c_int = 0; -pub const LIO_NOWAIT: ::c_int = 1; - -pub const MREMAP_MAYMOVE: ::c_int = 1; -pub const MREMAP_FIXED: ::c_int = 2; - -pub const PR_SET_PDEATHSIG: ::c_int = 1; -pub const PR_GET_PDEATHSIG: ::c_int = 2; - -pub const PR_GET_DUMPABLE: ::c_int = 3; -pub const PR_SET_DUMPABLE: ::c_int = 4; - -pub const PR_GET_UNALIGN: ::c_int = 5; -pub const PR_SET_UNALIGN: ::c_int = 6; -pub const PR_UNALIGN_NOPRINT: ::c_int = 1; -pub const PR_UNALIGN_SIGBUS: ::c_int = 2; - -pub const PR_GET_KEEPCAPS: ::c_int = 7; -pub const PR_SET_KEEPCAPS: ::c_int = 8; - -pub const PR_GET_FPEMU: ::c_int = 9; -pub const PR_SET_FPEMU: ::c_int = 10; -pub const PR_FPEMU_NOPRINT: ::c_int = 1; -pub const PR_FPEMU_SIGFPE: ::c_int = 2; - -pub const PR_GET_FPEXC: ::c_int = 11; -pub const PR_SET_FPEXC: ::c_int = 12; -pub const PR_FP_EXC_SW_ENABLE: ::c_int = 0x80; -pub const PR_FP_EXC_DIV: ::c_int = 0x010000; -pub const PR_FP_EXC_OVF: ::c_int = 0x020000; -pub const PR_FP_EXC_UND: ::c_int = 0x040000; -pub const PR_FP_EXC_RES: ::c_int = 0x080000; -pub const PR_FP_EXC_INV: ::c_int = 0x100000; -pub const PR_FP_EXC_DISABLED: ::c_int = 0; -pub const PR_FP_EXC_NONRECOV: ::c_int = 1; -pub const PR_FP_EXC_ASYNC: ::c_int = 2; -pub const PR_FP_EXC_PRECISE: ::c_int = 3; - -pub const PR_GET_TIMING: ::c_int = 13; -pub const PR_SET_TIMING: ::c_int = 14; -pub const PR_TIMING_STATISTICAL: ::c_int = 0; -pub const PR_TIMING_TIMESTAMP: ::c_int = 1; - -pub const PR_SET_NAME: ::c_int = 15; -pub const PR_GET_NAME: ::c_int = 16; - -pub const PR_GET_ENDIAN: ::c_int = 19; -pub const PR_SET_ENDIAN: ::c_int = 20; -pub const PR_ENDIAN_BIG: ::c_int = 0; -pub const PR_ENDIAN_LITTLE: ::c_int = 1; -pub const PR_ENDIAN_PPC_LITTLE: ::c_int = 2; - -pub const PR_GET_SECCOMP: ::c_int = 21; -pub const PR_SET_SECCOMP: ::c_int = 22; - -pub const PR_CAPBSET_READ: ::c_int = 23; -pub const PR_CAPBSET_DROP: ::c_int = 24; - -pub const PR_GET_TSC: ::c_int = 25; -pub const PR_SET_TSC: ::c_int = 26; -pub const PR_TSC_ENABLE: ::c_int = 1; -pub const PR_TSC_SIGSEGV: ::c_int = 2; - -pub const PR_GET_SECUREBITS: ::c_int = 27; -pub const PR_SET_SECUREBITS: ::c_int = 28; - -pub const PR_SET_TIMERSLACK: ::c_int = 29; -pub const PR_GET_TIMERSLACK: ::c_int = 30; - -pub const PR_TASK_PERF_EVENTS_DISABLE: ::c_int = 31; -pub const PR_TASK_PERF_EVENTS_ENABLE: ::c_int = 32; - -pub const PR_MCE_KILL: ::c_int = 33; -pub const PR_MCE_KILL_CLEAR: ::c_int = 0; -pub const PR_MCE_KILL_SET: ::c_int = 1; - -pub const PR_MCE_KILL_LATE: ::c_int = 0; -pub const PR_MCE_KILL_EARLY: ::c_int = 1; -pub const PR_MCE_KILL_DEFAULT: ::c_int = 2; - -pub const PR_MCE_KILL_GET: ::c_int = 34; - -pub const PR_SET_MM: ::c_int = 35; -pub const PR_SET_MM_START_CODE: ::c_int = 1; -pub const PR_SET_MM_END_CODE: ::c_int = 2; -pub const PR_SET_MM_START_DATA: ::c_int = 3; -pub const PR_SET_MM_END_DATA: ::c_int = 4; -pub const PR_SET_MM_START_STACK: ::c_int = 5; -pub const PR_SET_MM_START_BRK: ::c_int = 6; -pub const PR_SET_MM_BRK: ::c_int = 7; -pub const PR_SET_MM_ARG_START: ::c_int = 8; -pub const PR_SET_MM_ARG_END: ::c_int = 9; -pub const PR_SET_MM_ENV_START: ::c_int = 10; -pub const PR_SET_MM_ENV_END: ::c_int = 11; -pub const PR_SET_MM_AUXV: ::c_int = 12; -pub const PR_SET_MM_EXE_FILE: ::c_int = 13; -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; - -pub const PR_SET_NO_NEW_PRIVS: ::c_int = 38; -pub const PR_GET_NO_NEW_PRIVS: ::c_int = 39; - -pub const PR_GET_TID_ADDRESS: ::c_int = 40; - -pub const PR_SET_THP_DISABLE: ::c_int = 41; -pub const PR_GET_THP_DISABLE: ::c_int = 42; - -pub const PR_MPX_ENABLE_MANAGEMENT: ::c_int = 43; -pub const PR_MPX_DISABLE_MANAGEMENT: ::c_int = 44; - -pub const PR_SET_FP_MODE: ::c_int = 45; -pub const PR_GET_FP_MODE: ::c_int = 46; -pub const PR_FP_MODE_FR: ::c_int = 1 << 0; -pub const PR_FP_MODE_FRE: ::c_int = 1 << 1; - -pub const PR_CAP_AMBIENT: ::c_int = 47; -pub const PR_CAP_AMBIENT_IS_SET: ::c_int = 1; -pub const PR_CAP_AMBIENT_RAISE: ::c_int = 2; -pub const PR_CAP_AMBIENT_LOWER: ::c_int = 3; -pub const PR_CAP_AMBIENT_CLEAR_ALL: ::c_int = 4; - -pub const ITIMER_REAL: ::c_int = 0; -pub const ITIMER_VIRTUAL: ::c_int = 1; -pub const ITIMER_PROF: ::c_int = 2; - -pub const TFD_CLOEXEC: ::c_int = O_CLOEXEC; -pub const TFD_NONBLOCK: ::c_int = O_NONBLOCK; -pub const TFD_TIMER_ABSTIME: ::c_int = 1; - -pub const XATTR_CREATE: ::c_int = 0x1; -pub const XATTR_REPLACE: ::c_int = 0x2; +pub const IPC_PRIVATE: crate::key_t = 0; + +pub const IPC_CREAT: c_int = 0o1000; +pub const IPC_EXCL: c_int = 0o2000; +pub const IPC_NOWAIT: c_int = 0o4000; + +pub const IPC_RMID: c_int = 0; +pub const IPC_SET: c_int = 1; +pub const IPC_STAT: c_int = 2; +pub const IPC_INFO: c_int = 3; +pub const MSG_STAT: c_int = 11; +pub const MSG_INFO: c_int = 12; + +pub const MSG_NOERROR: c_int = 0o10000; +pub const MSG_EXCEPT: c_int = 0o20000; +pub const MSG_COPY: c_int = 0o40000; + +pub const SHM_R: c_int = 0o400; +pub const SHM_W: c_int = 0o200; + +pub const SHM_RDONLY: c_int = 0o10000; +pub const SHM_RND: c_int = 0o20000; +pub const SHM_REMAP: c_int = 0o40000; +pub const SHM_EXEC: c_int = 0o100000; + +pub const SHM_LOCK: c_int = 11; +pub const SHM_UNLOCK: c_int = 12; + +pub const SHM_HUGETLB: c_int = 0o4000; +pub const SHM_NORESERVE: c_int = 0o10000; + +pub const EPOLLRDHUP: c_int = 0x2000; +pub const EPOLLEXCLUSIVE: c_int = 0x10000000; +pub const EPOLLONESHOT: c_int = 0x40000000; + +pub const QFMT_VFS_OLD: c_int = 1; +pub const QFMT_VFS_V0: c_int = 2; +pub const QFMT_VFS_V1: c_int = 4; + +pub const EFD_SEMAPHORE: c_int = 0x1; + +pub const LOG_NFACILITIES: c_int = 24; + +pub const SEM_FAILED: *mut crate::sem_t = 0 as *mut sem_t; + +pub const RB_AUTOBOOT: c_int = 0x01234567u32 as i32; +pub const RB_HALT_SYSTEM: c_int = 0xcdef0123u32 as i32; +pub const RB_ENABLE_CAD: c_int = 0x89abcdefu32 as i32; +pub const RB_DISABLE_CAD: c_int = 0x00000000u32 as i32; +pub const RB_POWER_OFF: c_int = 0x4321fedcu32 as i32; +pub const RB_SW_SUSPEND: c_int = 0xd000fce2u32 as i32; +pub const RB_KEXEC: c_int = 0x45584543u32 as i32; + +pub const AI_PASSIVE: c_int = 0x0001; +pub const AI_CANONNAME: c_int = 0x0002; +pub const AI_NUMERICHOST: c_int = 0x0004; +pub const AI_V4MAPPED: c_int = 0x0008; +pub const AI_ALL: c_int = 0x0010; +pub const AI_ADDRCONFIG: c_int = 0x0020; + +pub const AI_NUMERICSERV: c_int = 0x0400; + +pub const EAI_BADFLAGS: c_int = -1; +pub const EAI_NONAME: c_int = -2; +pub const EAI_AGAIN: c_int = -3; +pub const EAI_FAIL: c_int = -4; +pub const EAI_FAMILY: c_int = -6; +pub const EAI_SOCKTYPE: c_int = -7; +pub const EAI_SERVICE: c_int = -8; +pub const EAI_MEMORY: c_int = -10; +pub const EAI_OVERFLOW: c_int = -12; + +pub const NI_NUMERICHOST: c_int = 1; +pub const NI_NUMERICSERV: c_int = 2; +pub const NI_NOFQDN: c_int = 4; +pub const NI_NAMEREQD: c_int = 8; +pub const NI_DGRAM: c_int = 16; + +pub const SYNC_FILE_RANGE_WAIT_BEFORE: c_uint = 1; +pub const SYNC_FILE_RANGE_WRITE: c_uint = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: c_uint = 4; + +pub const EAI_SYSTEM: c_int = -11; + +pub const AIO_CANCELED: c_int = 0; +pub const AIO_NOTCANCELED: c_int = 1; +pub const AIO_ALLDONE: c_int = 2; +pub const LIO_READ: c_int = 0; +pub const LIO_WRITE: c_int = 1; +pub const LIO_NOP: c_int = 2; +pub const LIO_WAIT: c_int = 0; +pub const LIO_NOWAIT: c_int = 1; + +pub const MREMAP_MAYMOVE: c_int = 1; +pub const MREMAP_FIXED: c_int = 2; + +pub const PR_SET_PDEATHSIG: c_int = 1; +pub const PR_GET_PDEATHSIG: c_int = 2; + +pub const PR_GET_DUMPABLE: c_int = 3; +pub const PR_SET_DUMPABLE: c_int = 4; + +pub const PR_GET_UNALIGN: c_int = 5; +pub const PR_SET_UNALIGN: c_int = 6; +pub const PR_UNALIGN_NOPRINT: c_int = 1; +pub const PR_UNALIGN_SIGBUS: c_int = 2; + +pub const PR_GET_KEEPCAPS: c_int = 7; +pub const PR_SET_KEEPCAPS: c_int = 8; + +pub const PR_GET_FPEMU: c_int = 9; +pub const PR_SET_FPEMU: c_int = 10; +pub const PR_FPEMU_NOPRINT: c_int = 1; +pub const PR_FPEMU_SIGFPE: c_int = 2; + +pub const PR_GET_FPEXC: c_int = 11; +pub const PR_SET_FPEXC: c_int = 12; +pub const PR_FP_EXC_SW_ENABLE: c_int = 0x80; +pub const PR_FP_EXC_DIV: c_int = 0x010000; +pub const PR_FP_EXC_OVF: c_int = 0x020000; +pub const PR_FP_EXC_UND: c_int = 0x040000; +pub const PR_FP_EXC_RES: c_int = 0x080000; +pub const PR_FP_EXC_INV: c_int = 0x100000; +pub const PR_FP_EXC_DISABLED: c_int = 0; +pub const PR_FP_EXC_NONRECOV: c_int = 1; +pub const PR_FP_EXC_ASYNC: c_int = 2; +pub const PR_FP_EXC_PRECISE: c_int = 3; + +pub const PR_GET_TIMING: c_int = 13; +pub const PR_SET_TIMING: c_int = 14; +pub const PR_TIMING_STATISTICAL: c_int = 0; +pub const PR_TIMING_TIMESTAMP: c_int = 1; + +pub const PR_SET_NAME: c_int = 15; +pub const PR_GET_NAME: c_int = 16; + +pub const PR_GET_ENDIAN: c_int = 19; +pub const PR_SET_ENDIAN: c_int = 20; +pub const PR_ENDIAN_BIG: c_int = 0; +pub const PR_ENDIAN_LITTLE: c_int = 1; +pub const PR_ENDIAN_PPC_LITTLE: c_int = 2; + +pub const PR_GET_SECCOMP: c_int = 21; +pub const PR_SET_SECCOMP: c_int = 22; + +pub const PR_CAPBSET_READ: c_int = 23; +pub const PR_CAPBSET_DROP: c_int = 24; + +pub const PR_GET_TSC: c_int = 25; +pub const PR_SET_TSC: c_int = 26; +pub const PR_TSC_ENABLE: c_int = 1; +pub const PR_TSC_SIGSEGV: c_int = 2; + +pub const PR_GET_SECUREBITS: c_int = 27; +pub const PR_SET_SECUREBITS: c_int = 28; + +pub const PR_SET_TIMERSLACK: c_int = 29; +pub const PR_GET_TIMERSLACK: c_int = 30; + +pub const PR_TASK_PERF_EVENTS_DISABLE: c_int = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: c_int = 32; + +pub const PR_MCE_KILL: c_int = 33; +pub const PR_MCE_KILL_CLEAR: c_int = 0; +pub const PR_MCE_KILL_SET: c_int = 1; + +pub const PR_MCE_KILL_LATE: c_int = 0; +pub const PR_MCE_KILL_EARLY: c_int = 1; +pub const PR_MCE_KILL_DEFAULT: c_int = 2; + +pub const PR_MCE_KILL_GET: c_int = 34; + +pub const PR_SET_MM: c_int = 35; +pub const PR_SET_MM_START_CODE: c_int = 1; +pub const PR_SET_MM_END_CODE: c_int = 2; +pub const PR_SET_MM_START_DATA: c_int = 3; +pub const PR_SET_MM_END_DATA: c_int = 4; +pub const PR_SET_MM_START_STACK: c_int = 5; +pub const PR_SET_MM_START_BRK: c_int = 6; +pub const PR_SET_MM_BRK: c_int = 7; +pub const PR_SET_MM_ARG_START: c_int = 8; +pub const PR_SET_MM_ARG_END: c_int = 9; +pub const PR_SET_MM_ENV_START: c_int = 10; +pub const PR_SET_MM_ENV_END: c_int = 11; +pub const PR_SET_MM_AUXV: c_int = 12; +pub const PR_SET_MM_EXE_FILE: c_int = 13; +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; + +pub const PR_SET_NO_NEW_PRIVS: c_int = 38; +pub const PR_GET_NO_NEW_PRIVS: c_int = 39; + +pub const PR_GET_TID_ADDRESS: c_int = 40; + +pub const PR_SET_THP_DISABLE: c_int = 41; +pub const PR_GET_THP_DISABLE: c_int = 42; + +pub const PR_MPX_ENABLE_MANAGEMENT: c_int = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: c_int = 44; + +pub const PR_SET_FP_MODE: c_int = 45; +pub const PR_GET_FP_MODE: c_int = 46; +pub const PR_FP_MODE_FR: c_int = 1 << 0; +pub const PR_FP_MODE_FRE: c_int = 1 << 1; + +pub const PR_CAP_AMBIENT: c_int = 47; +pub const PR_CAP_AMBIENT_IS_SET: c_int = 1; +pub const PR_CAP_AMBIENT_RAISE: c_int = 2; +pub const PR_CAP_AMBIENT_LOWER: c_int = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: c_int = 4; + +pub const ITIMER_REAL: c_int = 0; +pub const ITIMER_VIRTUAL: c_int = 1; +pub const ITIMER_PROF: c_int = 2; + +pub const TFD_CLOEXEC: c_int = O_CLOEXEC; +pub const TFD_NONBLOCK: c_int = O_NONBLOCK; +pub const TFD_TIMER_ABSTIME: c_int = 1; + +pub const XATTR_CREATE: c_int = 0x1; +pub const XATTR_REPLACE: c_int = 0x2; -pub const _POSIX_VDISABLE: ::cc_t = 0; - -pub const FALLOC_FL_KEEP_SIZE: ::c_int = 0x01; -pub const FALLOC_FL_PUNCH_HOLE: ::c_int = 0x02; -pub const FALLOC_FL_COLLAPSE_RANGE: ::c_int = 0x08; -pub const FALLOC_FL_ZERO_RANGE: ::c_int = 0x10; -pub const FALLOC_FL_INSERT_RANGE: ::c_int = 0x20; -pub const FALLOC_FL_UNSHARE_RANGE: ::c_int = 0x40; +pub const _POSIX_VDISABLE: crate::cc_t = 0; + +pub const FALLOC_FL_KEEP_SIZE: c_int = 0x01; +pub const FALLOC_FL_PUNCH_HOLE: c_int = 0x02; +pub const FALLOC_FL_COLLAPSE_RANGE: c_int = 0x08; +pub const FALLOC_FL_ZERO_RANGE: c_int = 0x10; +pub const FALLOC_FL_INSERT_RANGE: c_int = 0x20; +pub const FALLOC_FL_UNSHARE_RANGE: c_int = 0x40; // On Linux, libc doesn't define this constant, libattr does instead. // We still define it for Linux as it's defined by libc on other platforms, // and it's mentioned in the man pages for getxattr and setxattr. -pub const ENOATTR: ::c_int = ::ENODATA; +pub const ENOATTR: c_int = crate::ENODATA; -pub const SO_ORIGINAL_DST: ::c_int = 80; -pub const IUTF8: ::tcflag_t = 0x00004000; -pub const CMSPAR: ::tcflag_t = 0o10000000000; +pub const SO_ORIGINAL_DST: c_int = 80; +pub const IUTF8: crate::tcflag_t = 0x00004000; +pub const CMSPAR: crate::tcflag_t = 0o10000000000; -pub const MFD_CLOEXEC: ::c_uint = 0x0001; -pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002; +pub const MFD_CLOEXEC: c_uint = 0x0001; +pub const MFD_ALLOW_SEALING: c_uint = 0x0002; // these are used in the p_type field of Elf32_Phdr and Elf64_Phdr, which has // the type Elf32Word and Elf64Word respectively. Luckily, both of those are u32 @@ -2798,226 +2798,226 @@ 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; +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; pub const NCCS: usize = 32; -pub const O_TRUNC: ::c_int = 0x00040000; -pub const O_NOATIME: ::c_int = 0x00002000; -pub const O_CLOEXEC: ::c_int = 0x00000100; -pub const O_TMPFILE: ::c_int = 0x00004000; - -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; - -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -pub const EFD_CLOEXEC: ::c_int = 0x80000; - -pub const BUFSIZ: ::c_uint = 1024; -pub const TMP_MAX: ::c_uint = 10000; -pub const FOPEN_MAX: ::c_uint = 1000; -pub const O_PATH: ::c_int = 0x00400000; -pub const O_EXEC: ::c_int = O_PATH; -pub const O_SEARCH: ::c_int = O_PATH; -pub const O_ACCMODE: ::c_int = 03 | O_SEARCH; -pub const O_NDELAY: ::c_int = O_NONBLOCK; -pub const NI_MAXHOST: ::socklen_t = 255; -pub const PTHREAD_STACK_MIN: ::size_t = 2048; -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; - -pub const POSIX_MADV_DONTNEED: ::c_int = 4; - -pub const RLIM_INFINITY: ::rlim_t = !0; -pub const RLIMIT_RTTIME: ::c_int = 15; +pub const O_TRUNC: c_int = 0x00040000; +pub const O_NOATIME: c_int = 0x00002000; +pub const O_CLOEXEC: c_int = 0x00000100; +pub const O_TMPFILE: c_int = 0x00004000; + +pub const EBFONT: c_int = 59; +pub const ENOSTR: c_int = 60; +pub const ENODATA: c_int = 61; +pub const ETIME: c_int = 62; +pub const ENOSR: c_int = 63; +pub const ENONET: c_int = 64; +pub const ENOPKG: c_int = 65; +pub const EREMOTE: c_int = 66; +pub const ENOLINK: c_int = 67; +pub const EADV: c_int = 68; +pub const ESRMNT: c_int = 69; +pub const ECOMM: c_int = 70; +pub const EPROTO: c_int = 71; +pub const EDOTDOT: c_int = 73; + +pub const SA_NODEFER: c_int = 0x40000000; +pub const SA_RESETHAND: c_int = 0x80000000; +pub const SA_RESTART: c_int = 0x10000000; +pub const SA_NOCLDSTOP: c_int = 0x00000001; + +pub const EPOLL_CLOEXEC: c_int = 0x80000; + +pub const EFD_CLOEXEC: c_int = 0x80000; + +pub const BUFSIZ: c_uint = 1024; +pub const TMP_MAX: c_uint = 10000; +pub const FOPEN_MAX: c_uint = 1000; +pub const O_PATH: c_int = 0x00400000; +pub const O_EXEC: c_int = O_PATH; +pub const O_SEARCH: c_int = O_PATH; +pub const O_ACCMODE: c_int = 03 | O_SEARCH; +pub const O_NDELAY: c_int = O_NONBLOCK; +pub const NI_MAXHOST: crate::socklen_t = 255; +pub const PTHREAD_STACK_MIN: size_t = 2048; +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; + +pub const POSIX_MADV_DONTNEED: c_int = 4; + +pub const RLIM_INFINITY: crate::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; +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 RLIM_NLIMITS: c_int = RLIMIT_NLIMITS; -pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; +pub const MAP_ANONYMOUS: c_int = MAP_ANON; -pub const SOCK_DCCP: ::c_int = 6; -pub const SOCK_PACKET: ::c_int = 10; +pub const SOCK_DCCP: c_int = 6; +pub const SOCK_PACKET: c_int = 10; -pub const TCP_COOKIE_TRANSACTIONS: ::c_int = 15; -pub const TCP_THIN_LINEAR_TIMEOUTS: ::c_int = 16; -pub const TCP_THIN_DUPACK: ::c_int = 17; -pub const TCP_USER_TIMEOUT: ::c_int = 18; -pub const TCP_REPAIR: ::c_int = 19; -pub const TCP_REPAIR_QUEUE: ::c_int = 20; -pub const TCP_QUEUE_SEQ: ::c_int = 21; -pub const TCP_REPAIR_OPTIONS: ::c_int = 22; -pub const TCP_FASTOPEN: ::c_int = 23; -pub const TCP_TIMESTAMP: ::c_int = 24; +pub const TCP_COOKIE_TRANSACTIONS: c_int = 15; +pub const TCP_THIN_LINEAR_TIMEOUTS: c_int = 16; +pub const TCP_THIN_DUPACK: c_int = 17; +pub const TCP_USER_TIMEOUT: c_int = 18; +pub const TCP_REPAIR: c_int = 19; +pub const TCP_REPAIR_QUEUE: c_int = 20; +pub const TCP_QUEUE_SEQ: c_int = 21; +pub const TCP_REPAIR_OPTIONS: c_int = 22; +pub const TCP_FASTOPEN: c_int = 23; +pub const TCP_TIMESTAMP: c_int = 24; -pub const SIGUNUSED: ::c_int = ::SIGSYS; +pub const SIGUNUSED: c_int = crate::SIGSYS; pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; -pub const CPU_SETSIZE: ::c_int = 128; - -pub const PTRACE_TRACEME: ::c_int = 0; -pub const PTRACE_PEEKTEXT: ::c_int = 1; -pub const PTRACE_PEEKDATA: ::c_int = 2; -pub const PTRACE_PEEKUSER: ::c_int = 3; -pub const PTRACE_POKETEXT: ::c_int = 4; -pub const PTRACE_POKEDATA: ::c_int = 5; -pub const PTRACE_POKEUSER: ::c_int = 6; -pub const PTRACE_CONT: ::c_int = 7; -pub const PTRACE_KILL: ::c_int = 8; -pub const PTRACE_SINGLESTEP: ::c_int = 9; -pub const PTRACE_GETREGS: ::c_int = 12; -pub const PTRACE_SETREGS: ::c_int = 13; -pub const PTRACE_GETFPREGS: ::c_int = 14; -pub const PTRACE_SETFPREGS: ::c_int = 15; -pub const PTRACE_ATTACH: ::c_int = 16; -pub const PTRACE_DETACH: ::c_int = 17; -pub const PTRACE_GETFPXREGS: ::c_int = 18; -pub const PTRACE_SETFPXREGS: ::c_int = 19; -pub const PTRACE_SYSCALL: ::c_int = 24; -pub const PTRACE_SETOPTIONS: ::c_int = 0x4200; -pub const PTRACE_GETEVENTMSG: ::c_int = 0x4201; -pub const PTRACE_GETSIGINFO: ::c_int = 0x4202; -pub const PTRACE_SETSIGINFO: ::c_int = 0x4203; -pub const PTRACE_GETREGSET: ::c_int = 0x4204; -pub const PTRACE_SETREGSET: ::c_int = 0x4205; -pub const PTRACE_SEIZE: ::c_int = 0x4206; -pub const PTRACE_INTERRUPT: ::c_int = 0x4207; -pub const PTRACE_LISTEN: ::c_int = 0x4208; -pub const PTRACE_PEEKSIGINFO: ::c_int = 0x4209; - -pub const EPOLLWAKEUP: ::c_int = 0x20000000; - -pub const EFD_NONBLOCK: ::c_int = ::O_NONBLOCK; - -pub const SFD_NONBLOCK: ::c_int = ::O_NONBLOCK; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -pub const TIOCINQ: ::c_int = ::FIONREAD; - -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::c_int = 0x00000800; -pub const TAB2: ::c_int = 0x00001000; -pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; +pub const CPU_SETSIZE: c_int = 128; + +pub const PTRACE_TRACEME: c_int = 0; +pub const PTRACE_PEEKTEXT: c_int = 1; +pub const PTRACE_PEEKDATA: c_int = 2; +pub const PTRACE_PEEKUSER: c_int = 3; +pub const PTRACE_POKETEXT: c_int = 4; +pub const PTRACE_POKEDATA: c_int = 5; +pub const PTRACE_POKEUSER: c_int = 6; +pub const PTRACE_CONT: c_int = 7; +pub const PTRACE_KILL: c_int = 8; +pub const PTRACE_SINGLESTEP: c_int = 9; +pub const PTRACE_GETREGS: c_int = 12; +pub const PTRACE_SETREGS: c_int = 13; +pub const PTRACE_GETFPREGS: c_int = 14; +pub const PTRACE_SETFPREGS: c_int = 15; +pub const PTRACE_ATTACH: c_int = 16; +pub const PTRACE_DETACH: c_int = 17; +pub const PTRACE_GETFPXREGS: c_int = 18; +pub const PTRACE_SETFPXREGS: c_int = 19; +pub const PTRACE_SYSCALL: c_int = 24; +pub const PTRACE_SETOPTIONS: c_int = 0x4200; +pub const PTRACE_GETEVENTMSG: c_int = 0x4201; +pub const PTRACE_GETSIGINFO: c_int = 0x4202; +pub const PTRACE_SETSIGINFO: c_int = 0x4203; +pub const PTRACE_GETREGSET: c_int = 0x4204; +pub const PTRACE_SETREGSET: c_int = 0x4205; +pub const PTRACE_SEIZE: c_int = 0x4206; +pub const PTRACE_INTERRUPT: c_int = 0x4207; +pub const PTRACE_LISTEN: c_int = 0x4208; +pub const PTRACE_PEEKSIGINFO: c_int = 0x4209; + +pub const EPOLLWAKEUP: c_int = 0x20000000; + +pub const EFD_NONBLOCK: c_int = crate::O_NONBLOCK; + +pub const SFD_NONBLOCK: c_int = crate::O_NONBLOCK; + +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; + +pub const TIOCINQ: c_int = crate::FIONREAD; + +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_NOLOAD: c_int = 0x4; + +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; + +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: c_int = 0x00000800; +pub const TAB2: c_int = 0x00001000; +pub const TAB3: c_int = 0x00001800; +pub const CR1: c_int = 0x00000200; +pub const CR2: c_int = 0x00000400; +pub const CR3: c_int = 0x00000600; +pub const FF1: c_int = 0x00008000; +pub const BS1: c_int = 0x00002000; +pub const VT1: c_int = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -3025,333 +3025,333 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const SO_BINDTODEVICE: ::c_int = 25; -pub const SO_TIMESTAMP: ::c_int = 29; -pub const SO_MARK: ::c_int = 36; -pub const SO_RXQ_OVFL: ::c_int = 40; -pub const SO_PEEK_OFF: ::c_int = 42; -pub const SO_BUSY_POLL: ::c_int = 46; -pub const SO_BINDTOIFINDEX: ::c_int = 62; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; + +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; + +pub const SO_BINDTODEVICE: c_int = 25; +pub const SO_TIMESTAMP: c_int = 29; +pub const SO_MARK: c_int = 36; +pub const SO_RXQ_OVFL: c_int = 40; +pub const SO_PEEK_OFF: c_int = 42; +pub const SO_BUSY_POLL: c_int = 46; +pub const SO_BINDTOIFINDEX: c_int = 62; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -pub const O_ASYNC: ::c_int = 0x00000400; - -pub const FIOCLEX: ::c_int = 0x5451; -pub const FIONBIO: ::c_int = 0x5421; - -pub const RLIMIT_RSS: ::c_int = 5; -pub const RLIMIT_NOFILE: ::c_int = 7; -pub const RLIMIT_AS: ::c_int = 9; -pub const RLIMIT_NPROC: ::c_int = 6; -pub const RLIMIT_MEMLOCK: ::c_int = 8; - -pub const O_APPEND: ::c_int = 0x00100000; -pub const O_CREAT: ::c_int = 0x00010000; -pub const O_EXCL: ::c_int = 0x00020000; -pub const O_NOCTTY: ::c_int = 0x00000200; -pub const O_NONBLOCK: ::c_int = 0x00000010; -pub const O_SYNC: ::c_int = 0x00000040 | O_DSYNC; -pub const O_RSYNC: ::c_int = O_SYNC; -pub const O_DSYNC: ::c_int = 0x00000020; - -pub const SOCK_CLOEXEC: ::c_int = 0o2000000; -pub const SOCK_NONBLOCK: ::c_int = 0o4000; - -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_SEQPACKET: ::c_int = 5; - -pub const SOL_SOCKET: ::c_int = 1; - -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EDEADLOCK: ::c_int = EDEADLK; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; - -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; -pub const SO_NO_CHECK: ::c_int = 11; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_LINGER: ::c_int = 13; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_REUSEPORT: ::c_int = 15; -pub const SO_PASSCRED: ::c_int = 16; -pub const SO_PEERCRED: ::c_int = 17; -pub const SO_RCVLOWAT: ::c_int = 18; -pub const SO_SNDLOWAT: ::c_int = 19; -pub const SO_RCVTIMEO: ::c_int = 20; -pub const SO_SNDTIMEO: ::c_int = 21; -pub const SO_ACCEPTCONN: ::c_int = 30; -pub const SO_SNDBUFFORCE: ::c_int = 32; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PROTOCOL: ::c_int = 38; -pub const SO_DOMAIN: ::c_int = 39; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const EXTPROC: ::tcflag_t = 0x00010000; - -pub const MAP_HUGETLB: ::c_int = 0x040000; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; +pub const O_ASYNC: c_int = 0x00000400; + +pub const FIOCLEX: c_int = 0x5451; +pub const FIONBIO: c_int = 0x5421; + +pub const RLIMIT_RSS: c_int = 5; +pub const RLIMIT_NOFILE: c_int = 7; +pub const RLIMIT_AS: c_int = 9; +pub const RLIMIT_NPROC: c_int = 6; +pub const RLIMIT_MEMLOCK: c_int = 8; + +pub const O_APPEND: c_int = 0x00100000; +pub const O_CREAT: c_int = 0x00010000; +pub const O_EXCL: c_int = 0x00020000; +pub const O_NOCTTY: c_int = 0x00000200; +pub const O_NONBLOCK: c_int = 0x00000010; +pub const O_SYNC: c_int = 0x00000040 | O_DSYNC; +pub const O_RSYNC: c_int = O_SYNC; +pub const O_DSYNC: c_int = 0x00000020; + +pub const SOCK_CLOEXEC: c_int = 0o2000000; +pub const SOCK_NONBLOCK: c_int = 0o4000; + +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; +pub const SOCK_SEQPACKET: c_int = 5; + +pub const SOL_SOCKET: c_int = 1; + +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EDEADLOCK: c_int = EDEADLK; +pub const EMULTIHOP: c_int = 72; +pub const EBADMSG: c_int = 74; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const ERFKILL: c_int = 132; +pub const EHWPOISON: c_int = 133; + +pub const SO_REUSEADDR: c_int = 2; +pub const SO_TYPE: c_int = 3; +pub const SO_ERROR: c_int = 4; +pub const SO_DONTROUTE: c_int = 5; +pub const SO_BROADCAST: c_int = 6; +pub const SO_SNDBUF: c_int = 7; +pub const SO_RCVBUF: c_int = 8; +pub const SO_KEEPALIVE: c_int = 9; +pub const SO_OOBINLINE: c_int = 10; +pub const SO_NO_CHECK: c_int = 11; +pub const SO_PRIORITY: c_int = 12; +pub const SO_LINGER: c_int = 13; +pub const SO_BSDCOMPAT: c_int = 14; +pub const SO_REUSEPORT: c_int = 15; +pub const SO_PASSCRED: c_int = 16; +pub const SO_PEERCRED: c_int = 17; +pub const SO_RCVLOWAT: c_int = 18; +pub const SO_SNDLOWAT: c_int = 19; +pub const SO_RCVTIMEO: c_int = 20; +pub const SO_SNDTIMEO: c_int = 21; +pub const SO_ACCEPTCONN: c_int = 30; +pub const SO_SNDBUFFORCE: c_int = 32; +pub const SO_RCVBUFFORCE: c_int = 33; +pub const SO_PROTOCOL: c_int = 38; +pub const SO_DOMAIN: c_int = 39; + +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; + +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; + +pub const EXTPROC: crate::tcflag_t = 0x00010000; + +pub const MAP_HUGETLB: c_int = 0x040000; + +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; +pub const F_SETOWN: c_int = 8; pub const VEOF: usize = 4; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; - -pub const TCGETS: ::c_int = 0x5401; -pub const TCSETS: ::c_int = 0x5402; -pub const TCSETSW: ::c_int = 0x5403; -pub const TCSETSF: ::c_int = 0x5404; -pub const TCGETA: ::c_int = 0x5405; -pub const TCSETA: ::c_int = 0x5406; -pub const TCSETAW: ::c_int = 0x5407; -pub const TCSETAF: ::c_int = 0x5408; -pub const TCSBRK: ::c_int = 0x5409; -pub const TCXONC: ::c_int = 0x540A; -pub const TCFLSH: ::c_int = 0x540B; -pub const TIOCGSOFTCAR: ::c_int = 0x5419; -pub const TIOCSSOFTCAR: ::c_int = 0x541A; -pub const TIOCLINUX: ::c_int = 0x541C; -pub const TIOCGSERIAL: ::c_int = 0x541E; -pub const TIOCEXCL: ::c_int = 0x540C; -pub const TIOCNXCL: ::c_int = 0x540D; -pub const TIOCSCTTY: ::c_int = 0x540E; -pub const TIOCGPGRP: ::c_int = 0x540F; -pub const TIOCSPGRP: ::c_int = 0x5410; -pub const TIOCOUTQ: ::c_int = 0x5411; -pub const TIOCSTI: ::c_int = 0x5412; -pub const TIOCGWINSZ: ::c_int = 0x5413; -pub const TIOCSWINSZ: ::c_int = 0x5414; -pub const TIOCMGET: ::c_int = 0x5415; -pub const TIOCMBIS: ::c_int = 0x5416; -pub const TIOCMBIC: ::c_int = 0x5417; -pub const TIOCMSET: ::c_int = 0x5418; -pub const FIONREAD: ::c_int = 0x541B; -pub const TIOCCONS: ::c_int = 0x541D; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const TIOCM_LE: ::c_int = 0x001; -pub const TIOCM_DTR: ::c_int = 0x002; -pub const TIOCM_RTS: ::c_int = 0x004; -pub const TIOCM_ST: ::c_int = 0x008; -pub const TIOCM_SR: ::c_int = 0x010; -pub const TIOCM_CTS: ::c_int = 0x020; -pub const TIOCM_CAR: ::c_int = 0x040; -pub const TIOCM_RNG: ::c_int = 0x080; -pub const TIOCM_DSR: ::c_int = 0x100; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; - -pub const O_DIRECTORY: ::c_int = 0x00080000; -pub const O_DIRECT: ::c_int = 0x00000800; -pub const O_LARGEFILE: ::c_int = 0x00001000; -pub const O_NOFOLLOW: ::c_int = 0x00000080; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; + +pub const TCGETS: c_int = 0x5401; +pub const TCSETS: c_int = 0x5402; +pub const TCSETSW: c_int = 0x5403; +pub const TCSETSF: c_int = 0x5404; +pub const TCGETA: c_int = 0x5405; +pub const TCSETA: c_int = 0x5406; +pub const TCSETAW: c_int = 0x5407; +pub const TCSETAF: c_int = 0x5408; +pub const TCSBRK: c_int = 0x5409; +pub const TCXONC: c_int = 0x540A; +pub const TCFLSH: c_int = 0x540B; +pub const TIOCGSOFTCAR: c_int = 0x5419; +pub const TIOCSSOFTCAR: c_int = 0x541A; +pub const TIOCLINUX: c_int = 0x541C; +pub const TIOCGSERIAL: c_int = 0x541E; +pub const TIOCEXCL: c_int = 0x540C; +pub const TIOCNXCL: c_int = 0x540D; +pub const TIOCSCTTY: c_int = 0x540E; +pub const TIOCGPGRP: c_int = 0x540F; +pub const TIOCSPGRP: c_int = 0x5410; +pub const TIOCOUTQ: c_int = 0x5411; +pub const TIOCSTI: c_int = 0x5412; +pub const TIOCGWINSZ: c_int = 0x5413; +pub const TIOCSWINSZ: c_int = 0x5414; +pub const TIOCMGET: c_int = 0x5415; +pub const TIOCMBIS: c_int = 0x5416; +pub const TIOCMBIC: c_int = 0x5417; +pub const TIOCMSET: c_int = 0x5418; +pub const FIONREAD: c_int = 0x541B; +pub const TIOCCONS: c_int = 0x541D; + +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; + +pub const TIOCM_LE: c_int = 0x001; +pub const TIOCM_DTR: c_int = 0x002; +pub const TIOCM_RTS: c_int = 0x004; +pub const TIOCM_ST: c_int = 0x008; +pub const TIOCM_SR: c_int = 0x010; +pub const TIOCM_CTS: c_int = 0x020; +pub const TIOCM_CAR: c_int = 0x040; +pub const TIOCM_RNG: c_int = 0x080; +pub const TIOCM_DSR: c_int = 0x100; +pub const TIOCM_CD: c_int = TIOCM_CAR; +pub const TIOCM_RI: c_int = TIOCM_RNG; + +pub const O_DIRECTORY: c_int = 0x00080000; +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; @@ -3370,22 +3370,22 @@ cfg_if! { // END_PUB_CONST f! { - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { + pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } @@ -3403,21 +3403,21 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); + let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); 0 != (cpuset.bits[idx] & (1 << offset)) } @@ -3426,18 +3426,18 @@ f! { set1.bits == set2.bits } - pub fn major(dev: ::dev_t) -> ::c_uint { + pub fn major(dev: crate::dev_t) -> c_uint { let mut major = 0; major |= (dev & 0x00000000000fff00) >> 8; major |= (dev & 0xfffff00000000000) >> 32; - major as ::c_uint + major as c_uint } - pub fn minor(dev: ::dev_t) -> ::c_uint { + pub fn minor(dev: crate::dev_t) -> c_uint { let mut minor = 0; minor |= (dev & 0x00000000000000ff) >> 0; minor |= (dev & 0x00000ffffff00000) >> 12; - minor as ::c_uint + minor as c_uint } pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { @@ -3445,9 +3445,9 @@ f! { } pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { - if ((*cmsg).cmsg_len as ::size_t) < ::mem::size_of::() { + if ((*cmsg).cmsg_len as size_t) < crate::mem::size_of::() { 0 as *mut cmsghdr - } else if __CMSG_NEXT(cmsg).add(::mem::size_of::()) >= __MHDR_END(mhdr) { + } else if __CMSG_NEXT(cmsg).add(crate::mem::size_of::()) >= __MHDR_END(mhdr) { 0 as *mut cmsghdr } else { __CMSG_NEXT(cmsg).cast() @@ -3455,66 +3455,66 @@ f! { } pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as ::size_t >= ::mem::size_of::() { + if (*mhdr).msg_controllen as size_t >= crate::mem::size_of::() { (*mhdr).msg_control.cast() } else { 0 as *mut cmsghdr } } - pub {const} fn CMSG_ALIGN(len: ::size_t) -> ::size_t { - (len + ::mem::size_of::<::size_t>() - 1) & !(::mem::size_of::<::size_t>() - 1) + pub {const} fn CMSG_ALIGN(len: size_t) -> size_t { + (len + crate::mem::size_of::() - 1) & !(crate::mem::size_of::() - 1) } - pub {const} fn CMSG_SPACE(len: ::c_uint) -> ::c_uint { - (CMSG_ALIGN(len as ::size_t) + CMSG_ALIGN(::mem::size_of::())) as ::c_uint + pub {const} fn CMSG_SPACE(len: c_uint) -> c_uint { + (CMSG_ALIGN(len as size_t) + CMSG_ALIGN(crate::mem::size_of::())) as c_uint } - pub {const} fn CMSG_LEN(len: ::c_uint) -> ::c_uint { - (CMSG_ALIGN(::mem::size_of::()) + len as ::size_t) as ::c_uint + pub {const} fn CMSG_LEN(len: c_uint) -> c_uint { + (CMSG_ALIGN(crate::mem::size_of::()) + len as size_t) as c_uint } } safe_f! { - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + pub {const} fn WIFSTOPPED(status: c_int) -> bool { (status & 0xff) == 0x7f } - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + pub {const} fn WSTOPSIG(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + pub {const} fn WIFCONTINUED(status: c_int) -> bool { status == 0xffff } - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + pub {const} fn WIFSIGNALED(status: c_int) -> bool { ((status & 0x7f) + 1) as i8 >= 2 } - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + pub {const} fn WTERMSIG(status: c_int) -> c_int { status & 0x7f } - pub {const} fn WIFEXITED(status: ::c_int) -> bool { + pub {const} fn WIFEXITED(status: c_int) -> bool { (status & 0x7f) == 0 } - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + pub {const} fn WEXITSTATUS(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WCOREDUMP(status: ::c_int) -> bool { + pub {const} fn WCOREDUMP(status: c_int) -> bool { (status & 0x80) != 0 } - pub {const} fn QCMD(cmd: ::c_int, type_: ::c_int) -> ::c_int { + pub {const} fn QCMD(cmd: c_int, type_: c_int) -> c_int { (cmd << 8) | (type_ & 0x00ff) } - pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; + pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + let major = major as crate::dev_t; + let minor = minor as crate::dev_t; let mut dev = 0; dev |= (major & 0x00000fff) << 8; dev |= (major & 0xfffff000) << 32; @@ -3524,9 +3524,9 @@ safe_f! { } } -fn __CMSG_LEN(cmsg: *const cmsghdr) -> ::ssize_t { - ((unsafe { (*cmsg).cmsg_len as ::size_t } + ::mem::size_of::<::c_long>() - 1) - & !(::mem::size_of::<::c_long>() - 1)) as ::ssize_t +fn __CMSG_LEN(cmsg: *const cmsghdr) -> ssize_t { + ((unsafe { (*cmsg).cmsg_len as size_t } + crate::mem::size_of::() - 1) + & !(crate::mem::size_of::() - 1)) as ssize_t } fn __CMSG_NEXT(cmsg: *const cmsghdr) -> *mut c_uchar { @@ -3545,16 +3545,16 @@ extern "C" {} #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum FILE {} -impl ::Copy for FILE {} -impl ::Clone for FILE { +impl Copy for FILE {} +impl Clone for FILE { fn clone(&self) -> FILE { *self } } #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum fpos_t {} // FIXME: fill this out with a struct -impl ::Copy for fpos_t {} -impl ::Clone for fpos_t { +impl Copy for fpos_t {} +impl Clone for fpos_t { fn clone(&self) -> fpos_t { *self } @@ -3643,7 +3643,7 @@ extern "C" { pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; pub fn wcslen(buf: *const wchar_t) -> size_t; - pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> ::size_t; + pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> size_t; pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; pub fn wmemchr(cx: *const wchar_t, c: wchar_t, n: size_t) -> *mut wchar_t; @@ -3657,322 +3657,310 @@ extern "C" { pub fn rand() -> c_int; pub fn srand(seed: c_uint); - pub fn getpwnam(name: *const ::c_char) -> *mut passwd; - pub fn getpwuid(uid: ::uid_t) -> *mut passwd; - - pub fn fprintf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; - pub fn printf(format: *const ::c_char, ...) -> ::c_int; - pub fn snprintf(s: *mut ::c_char, n: ::size_t, format: *const ::c_char, ...) -> ::c_int; - pub fn sprintf(s: *mut ::c_char, format: *const ::c_char, ...) -> ::c_int; - pub fn fscanf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; - pub fn scanf(format: *const ::c_char, ...) -> ::c_int; - pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) -> ::c_int; - pub fn getchar_unlocked() -> ::c_int; - pub fn putchar_unlocked(c: ::c_int) -> ::c_int; - - pub fn socket(domain: ::c_int, ty: ::c_int, protocol: ::c_int) -> ::c_int; - pub fn connect(socket: ::c_int, address: *const sockaddr, len: socklen_t) -> ::c_int; - pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; - pub fn accept(socket: ::c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> ::c_int; - pub fn getpeername( - socket: ::c_int, - address: *mut sockaddr, - address_len: *mut socklen_t, - ) -> ::c_int; - pub fn getsockname( - socket: ::c_int, - address: *mut sockaddr, - address_len: *mut socklen_t, - ) -> ::c_int; + pub fn getpwnam(name: *const c_char) -> *mut passwd; + pub fn getpwuid(uid: crate::uid_t) -> *mut passwd; + + pub fn fprintf(stream: *mut crate::FILE, format: *const c_char, ...) -> c_int; + pub fn printf(format: *const c_char, ...) -> c_int; + pub fn snprintf(s: *mut c_char, n: size_t, format: *const c_char, ...) -> c_int; + pub fn sprintf(s: *mut c_char, format: *const c_char, ...) -> c_int; + pub fn fscanf(stream: *mut crate::FILE, format: *const c_char, ...) -> c_int; + pub fn scanf(format: *const c_char, ...) -> c_int; + pub fn sscanf(s: *const c_char, format: *const c_char, ...) -> c_int; + pub fn getchar_unlocked() -> c_int; + pub fn putchar_unlocked(c: c_int) -> c_int; + + pub fn socket(domain: c_int, ty: c_int, protocol: c_int) -> c_int; + pub fn connect(socket: c_int, address: *const sockaddr, len: socklen_t) -> c_int; + pub fn listen(socket: c_int, backlog: c_int) -> c_int; + pub fn accept(socket: c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> c_int; + pub fn getpeername(socket: c_int, address: *mut sockaddr, address_len: *mut socklen_t) + -> c_int; + pub fn getsockname(socket: c_int, address: *mut sockaddr, address_len: *mut socklen_t) + -> c_int; pub fn setsockopt( - socket: ::c_int, - level: ::c_int, - name: ::c_int, - value: *const ::c_void, + socket: c_int, + level: c_int, + name: c_int, + value: *const c_void, option_len: socklen_t, - ) -> ::c_int; + ) -> c_int; pub fn socketpair( - domain: ::c_int, - type_: ::c_int, - protocol: ::c_int, - socket_vector: *mut ::c_int, - ) -> ::c_int; + domain: c_int, + type_: c_int, + protocol: c_int, + socket_vector: *mut c_int, + ) -> c_int; pub fn sendto( - socket: ::c_int, - buf: *const ::c_void, - len: ::size_t, - flags: ::c_int, + socket: c_int, + buf: *const c_void, + len: size_t, + flags: c_int, addr: *const sockaddr, addrlen: socklen_t, - ) -> ::ssize_t; - pub fn shutdown(socket: ::c_int, how: ::c_int) -> ::c_int; + ) -> ssize_t; + pub fn shutdown(socket: c_int, how: c_int) -> c_int; - pub fn chmod(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn fchmod(fd: ::c_int, mode: mode_t) -> ::c_int; + pub fn chmod(path: *const c_char, mode: mode_t) -> c_int; + pub fn fchmod(fd: c_int, mode: mode_t) -> c_int; - pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; + pub fn fstat(fildes: c_int, buf: *mut stat) -> c_int; - pub fn mkdir(path: *const c_char, mode: mode_t) -> ::c_int; + pub fn mkdir(path: *const c_char, mode: mode_t) -> c_int; - pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; + pub fn stat(path: *const c_char, buf: *mut stat) -> c_int; - pub fn pclose(stream: *mut ::FILE) -> ::c_int; - pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; - pub fn fileno(stream: *mut ::FILE) -> ::c_int; + pub fn pclose(stream: *mut crate::FILE) -> c_int; + pub fn fdopen(fd: c_int, mode: *const c_char) -> *mut crate::FILE; + pub fn fileno(stream: *mut crate::FILE) -> c_int; - pub fn open(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; - pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn fcntl(fd: ::c_int, cmd: ::c_int, ...) -> ::c_int; + pub fn open(path: *const c_char, oflag: c_int, ...) -> c_int; + pub fn creat(path: *const c_char, mode: mode_t) -> c_int; + pub fn fcntl(fd: c_int, cmd: c_int, ...) -> c_int; - pub fn opendir(dirname: *const c_char) -> *mut ::DIR; - pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; - pub fn readdir_r(dirp: *mut ::DIR, entry: *mut ::dirent, result: *mut *mut ::dirent) - -> ::c_int; - pub fn closedir(dirp: *mut ::DIR) -> ::c_int; - pub fn rewinddir(dirp: *mut ::DIR); + pub fn opendir(dirname: *const c_char) -> *mut crate::DIR; + pub fn readdir(dirp: *mut crate::DIR) -> *mut crate::dirent; + pub fn readdir_r( + dirp: *mut crate::DIR, + entry: *mut crate::dirent, + result: *mut *mut crate::dirent, + ) -> c_int; + pub fn closedir(dirp: *mut crate::DIR) -> c_int; + pub fn rewinddir(dirp: *mut crate::DIR); - pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int, ...) -> ::c_int; + pub fn openat(dirfd: c_int, pathname: *const c_char, flags: c_int, ...) -> c_int; pub fn fchmodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - flags: ::c_int, - ) -> ::c_int; - pub fn fchown(fd: ::c_int, owner: ::uid_t, group: ::gid_t) -> ::c_int; + dirfd: c_int, + pathname: *const c_char, + mode: crate::mode_t, + flags: c_int, + ) -> c_int; + pub fn fchown(fd: c_int, owner: crate::uid_t, group: crate::gid_t) -> c_int; pub fn fchownat( - dirfd: ::c_int, - pathname: *const ::c_char, - owner: ::uid_t, - group: ::gid_t, - flags: ::c_int, - ) -> ::c_int; - pub fn fstatat( - dirfd: ::c_int, - pathname: *const ::c_char, - buf: *mut stat, - flags: ::c_int, - ) -> ::c_int; + dirfd: c_int, + pathname: *const c_char, + owner: crate::uid_t, + group: crate::gid_t, + flags: c_int, + ) -> c_int; + pub fn fstatat(dirfd: c_int, pathname: *const c_char, buf: *mut stat, flags: c_int) -> c_int; pub fn linkat( - olddirfd: ::c_int, - oldpath: *const ::c_char, - newdirfd: ::c_int, - newpath: *const ::c_char, - flags: ::c_int, - ) -> ::c_int; - pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + olddirfd: c_int, + oldpath: *const c_char, + newdirfd: c_int, + newpath: *const c_char, + flags: c_int, + ) -> c_int; + pub fn mkdirat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; pub fn readlinkat( - dirfd: ::c_int, - pathname: *const ::c_char, - buf: *mut ::c_char, - bufsiz: ::size_t, - ) -> ::ssize_t; + dirfd: c_int, + pathname: *const c_char, + buf: *mut c_char, + bufsiz: size_t, + ) -> ssize_t; pub fn renameat( - olddirfd: ::c_int, - oldpath: *const ::c_char, - newdirfd: ::c_int, - newpath: *const ::c_char, - ) -> ::c_int; - pub fn symlinkat( - target: *const ::c_char, - newdirfd: ::c_int, - linkpath: *const ::c_char, - ) -> ::c_int; - pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int) -> ::c_int; - - pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; - pub fn alarm(seconds: ::c_uint) -> ::c_uint; - pub fn chdir(dir: *const c_char) -> ::c_int; - pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; - pub fn lchown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; - pub fn close(fd: ::c_int) -> ::c_int; - pub fn dup(fd: ::c_int) -> ::c_int; - pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; - - pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; - pub fn execle(path: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; - pub fn execlp(file: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; + olddirfd: c_int, + oldpath: *const c_char, + newdirfd: c_int, + newpath: *const c_char, + ) -> c_int; + pub fn symlinkat(target: *const c_char, newdirfd: c_int, linkpath: *const c_char) -> c_int; + pub fn unlinkat(dirfd: c_int, pathname: *const c_char, flags: c_int) -> c_int; + + pub fn access(path: *const c_char, amode: c_int) -> c_int; + pub fn alarm(seconds: c_uint) -> c_uint; + pub fn chdir(dir: *const c_char) -> c_int; + pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> c_int; + pub fn lchown(path: *const c_char, uid: uid_t, gid: gid_t) -> c_int; + pub fn close(fd: c_int) -> c_int; + pub fn dup(fd: c_int) -> c_int; + pub fn dup2(src: c_int, dst: c_int) -> c_int; + + pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> c_int; + pub fn execle(path: *const c_char, arg0: *const c_char, ...) -> c_int; + pub fn execlp(file: *const c_char, arg0: *const c_char, ...) -> c_int; // DIFF(main): changed to `*const *mut` in e77f551de9 - pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::c_int; + pub fn execv(prog: *const c_char, argv: *const *const c_char) -> c_int; pub fn execve( prog: *const c_char, argv: *const *const c_char, envp: *const *const c_char, - ) -> ::c_int; - pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int; + ) -> c_int; + pub fn execvp(c: *const c_char, argv: *const *const c_char) -> c_int; pub fn fork() -> pid_t; - pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; - pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char; + pub fn fpathconf(filedes: c_int, name: c_int) -> c_long; + pub fn getcwd(buf: *mut c_char, size: size_t) -> *mut c_char; pub fn getegid() -> gid_t; pub fn geteuid() -> uid_t; pub fn getgid() -> gid_t; - pub fn getgroups(ngroups_max: ::c_int, groups: *mut gid_t) -> ::c_int; + pub fn getgroups(ngroups_max: c_int, groups: *mut gid_t) -> c_int; pub fn getlogin() -> *mut c_char; - pub fn getopt(argc: ::c_int, argv: *const *mut c_char, optstr: *const c_char) -> ::c_int; + pub fn getopt(argc: c_int, argv: *const *mut c_char, optstr: *const c_char) -> c_int; pub fn getpgid(pid: pid_t) -> pid_t; pub fn getpgrp() -> pid_t; pub fn getpid() -> pid_t; pub fn getppid() -> pid_t; pub fn getuid() -> uid_t; - pub fn isatty(fd: ::c_int) -> ::c_int; - pub fn link(src: *const c_char, dst: *const c_char) -> ::c_int; - pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t; - pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; - pub fn pause() -> ::c_int; - pub fn pipe(fds: *mut ::c_int) -> ::c_int; - pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int; - pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::size_t) -> ::ssize_t; - pub fn rmdir(path: *const c_char) -> ::c_int; - pub fn seteuid(uid: uid_t) -> ::c_int; - pub fn setegid(gid: gid_t) -> ::c_int; - pub fn setgid(gid: gid_t) -> ::c_int; - pub fn setpgid(pid: pid_t, pgid: pid_t) -> ::c_int; + pub fn isatty(fd: c_int) -> c_int; + pub fn link(src: *const c_char, dst: *const c_char) -> c_int; + pub fn lseek(fd: c_int, offset: off_t, whence: c_int) -> off_t; + pub fn pathconf(path: *const c_char, name: c_int) -> c_long; + pub fn pause() -> c_int; + pub fn pipe(fds: *mut c_int) -> c_int; + pub fn posix_memalign(memptr: *mut *mut c_void, align: size_t, size: size_t) -> c_int; + pub fn read(fd: c_int, buf: *mut c_void, count: size_t) -> ssize_t; + pub fn rmdir(path: *const c_char) -> c_int; + pub fn seteuid(uid: uid_t) -> c_int; + pub fn setegid(gid: gid_t) -> c_int; + pub fn setgid(gid: gid_t) -> c_int; + pub fn setpgid(pid: pid_t, pgid: pid_t) -> c_int; pub fn setsid() -> pid_t; - pub fn setuid(uid: uid_t) -> ::c_int; - pub fn sleep(secs: ::c_uint) -> ::c_uint; - pub fn nanosleep(rqtp: *const timespec, rmtp: *mut timespec) -> ::c_int; - pub fn tcgetpgrp(fd: ::c_int) -> pid_t; - pub fn tcsetpgrp(fd: ::c_int, pgrp: ::pid_t) -> ::c_int; - pub fn ttyname(fd: ::c_int) -> *mut c_char; - pub fn unlink(c: *const c_char) -> ::c_int; - pub fn wait(status: *mut ::c_int) -> pid_t; - pub fn waitpid(pid: pid_t, status: *mut ::c_int, options: ::c_int) -> pid_t; - pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::size_t) -> ::ssize_t; - pub fn pread(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; - pub fn pwrite(fd: ::c_int, buf: *const ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; + pub fn setuid(uid: uid_t) -> c_int; + pub fn sleep(secs: c_uint) -> c_uint; + pub fn nanosleep(rqtp: *const timespec, rmtp: *mut timespec) -> c_int; + pub fn tcgetpgrp(fd: c_int) -> pid_t; + pub fn tcsetpgrp(fd: c_int, pgrp: crate::pid_t) -> c_int; + pub fn ttyname(fd: c_int) -> *mut c_char; + pub fn unlink(c: *const c_char) -> c_int; + pub fn wait(status: *mut c_int) -> pid_t; + pub fn waitpid(pid: pid_t, status: *mut c_int, options: c_int) -> pid_t; + pub fn write(fd: c_int, buf: *const c_void, count: size_t) -> ssize_t; + pub fn pread(fd: c_int, buf: *mut c_void, count: size_t, offset: off_t) -> ssize_t; + pub fn pwrite(fd: c_int, buf: *const c_void, count: size_t, offset: off_t) -> ssize_t; pub fn umask(mask: mode_t) -> mode_t; - pub fn utime(file: *const c_char, buf: *const utimbuf) -> ::c_int; + pub fn utime(file: *const c_char, buf: *const utimbuf) -> c_int; - pub fn kill(pid: pid_t, sig: ::c_int) -> ::c_int; + pub fn kill(pid: pid_t, sig: c_int) -> c_int; - pub fn mlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; - pub fn munlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; - pub fn mlockall(flags: ::c_int) -> ::c_int; - pub fn munlockall() -> ::c_int; + pub fn mlock(addr: *const c_void, len: size_t) -> c_int; + pub fn munlock(addr: *const c_void, len: size_t) -> c_int; + pub fn mlockall(flags: c_int) -> c_int; + pub fn munlockall() -> c_int; pub fn mmap( - addr: *mut ::c_void, - len: ::size_t, - prot: ::c_int, - flags: ::c_int, - fd: ::c_int, + addr: *mut c_void, + len: size_t, + prot: c_int, + flags: c_int, + fd: c_int, offset: off_t, - ) -> *mut ::c_void; - pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; + ) -> *mut c_void; + pub fn munmap(addr: *mut c_void, len: size_t) -> c_int; - pub fn if_nametoindex(ifname: *const c_char) -> ::c_uint; - pub fn if_indextoname(ifindex: ::c_uint, ifname: *mut ::c_char) -> *mut ::c_char; + pub fn if_nametoindex(ifname: *const c_char) -> c_uint; + pub fn if_indextoname(ifindex: c_uint, ifname: *mut c_char) -> *mut c_char; - pub fn lstat(path: *const c_char, buf: *mut stat) -> ::c_int; + pub fn lstat(path: *const c_char, buf: *mut stat) -> c_int; - pub fn fsync(fd: ::c_int) -> ::c_int; + pub fn fsync(fd: c_int) -> c_int; - pub fn setenv(name: *const c_char, val: *const c_char, overwrite: ::c_int) -> ::c_int; - pub fn unsetenv(name: *const c_char) -> ::c_int; + pub fn setenv(name: *const c_char, val: *const c_char, overwrite: c_int) -> c_int; + pub fn unsetenv(name: *const c_char) -> c_int; - pub fn symlink(path1: *const c_char, path2: *const c_char) -> ::c_int; + pub fn symlink(path1: *const c_char, path2: *const c_char) -> c_int; - pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; + pub fn ftruncate(fd: c_int, length: off_t) -> c_int; - pub fn signal(signum: ::c_int, handler: sighandler_t) -> sighandler_t; + pub fn signal(signum: c_int, handler: sighandler_t) -> sighandler_t; - pub fn realpath(pathname: *const ::c_char, resolved: *mut ::c_char) -> *mut ::c_char; + pub fn realpath(pathname: *const c_char, resolved: *mut c_char) -> *mut c_char; - pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int; + pub fn flock(fd: c_int, operation: c_int) -> c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn times(buf: *mut ::tms) -> ::clock_t; + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut c_void) -> c_int; + pub fn times(buf: *mut crate::tms) -> crate::clock_t; - pub fn pthread_self() -> ::pthread_t; - pub fn pthread_join(native: ::pthread_t, value: *mut *mut ::c_void) -> ::c_int; - 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_self() -> crate::pthread_t; + pub fn pthread_join(native: crate::pthread_t, value: *mut *mut c_void) -> c_int; + pub fn pthread_exit(value: *mut c_void) -> !; + pub fn pthread_attr_init(attr: *mut crate::pthread_attr_t) -> c_int; + pub fn pthread_attr_destroy(attr: *mut crate::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; - pub fn sched_yield() -> ::c_int; + attr: *const crate::pthread_attr_t, + stacksize: *mut size_t, + ) -> c_int; + pub fn pthread_attr_setstacksize(attr: *mut crate::pthread_attr_t, stack_size: size_t) + -> c_int; + pub fn pthread_attr_setdetachstate(attr: *mut crate::pthread_attr_t, state: c_int) -> c_int; + pub fn pthread_detach(thread: crate::pthread_t) -> c_int; + pub fn sched_yield() -> c_int; pub fn pthread_key_create( key: *mut pthread_key_t, - dtor: ::Option, - ) -> ::c_int; - pub fn pthread_key_delete(key: pthread_key_t) -> ::c_int; - pub fn pthread_getspecific(key: pthread_key_t) -> *mut ::c_void; - pub fn pthread_setspecific(key: pthread_key_t, value: *const ::c_void) -> ::c_int; + dtor: Option, + ) -> c_int; + pub fn pthread_key_delete(key: pthread_key_t) -> c_int; + pub fn pthread_getspecific(key: pthread_key_t) -> *mut c_void; + pub fn pthread_setspecific(key: pthread_key_t, value: *const c_void) -> c_int; pub fn pthread_mutex_init( lock: *mut pthread_mutex_t, attr: *const pthread_mutexattr_t, - ) -> ::c_int; - pub fn pthread_mutex_destroy(lock: *mut pthread_mutex_t) -> ::c_int; - pub fn pthread_mutex_lock(lock: *mut pthread_mutex_t) -> ::c_int; - pub fn pthread_mutex_trylock(lock: *mut pthread_mutex_t) -> ::c_int; - pub fn pthread_mutex_unlock(lock: *mut pthread_mutex_t) -> ::c_int; - - pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> ::c_int; - pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> ::c_int; - pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, _type: ::c_int) -> ::c_int; - - pub fn pthread_cond_init(cond: *mut pthread_cond_t, attr: *const pthread_condattr_t) - -> ::c_int; - pub fn pthread_cond_wait(cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t) -> ::c_int; + ) -> c_int; + pub fn pthread_mutex_destroy(lock: *mut pthread_mutex_t) -> c_int; + pub fn pthread_mutex_lock(lock: *mut pthread_mutex_t) -> c_int; + pub fn pthread_mutex_trylock(lock: *mut pthread_mutex_t) -> c_int; + pub fn pthread_mutex_unlock(lock: *mut pthread_mutex_t) -> c_int; + + pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> c_int; + pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> c_int; + pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, _type: c_int) -> c_int; + + pub fn pthread_cond_init(cond: *mut pthread_cond_t, attr: *const pthread_condattr_t) -> c_int; + pub fn pthread_cond_wait(cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t) -> c_int; pub fn pthread_cond_timedwait( cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_cond_signal(cond: *mut pthread_cond_t) -> ::c_int; - pub fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> ::c_int; - pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> ::c_int; - pub fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> ::c_int; - pub fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> ::c_int; + abstime: *const crate::timespec, + ) -> c_int; + pub fn pthread_cond_signal(cond: *mut pthread_cond_t) -> c_int; + pub fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> c_int; + pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> c_int; + pub fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> c_int; + pub fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> c_int; pub fn pthread_rwlock_init( lock: *mut pthread_rwlock_t, attr: *const pthread_rwlockattr_t, - ) -> ::c_int; - pub fn pthread_rwlock_destroy(lock: *mut pthread_rwlock_t) -> ::c_int; - pub fn pthread_rwlock_rdlock(lock: *mut pthread_rwlock_t) -> ::c_int; - pub fn pthread_rwlock_tryrdlock(lock: *mut pthread_rwlock_t) -> ::c_int; - pub fn pthread_rwlock_wrlock(lock: *mut pthread_rwlock_t) -> ::c_int; - pub fn pthread_rwlock_trywrlock(lock: *mut pthread_rwlock_t) -> ::c_int; - 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; + ) -> c_int; + pub fn pthread_rwlock_destroy(lock: *mut pthread_rwlock_t) -> c_int; + pub fn pthread_rwlock_rdlock(lock: *mut pthread_rwlock_t) -> c_int; + pub fn pthread_rwlock_tryrdlock(lock: *mut pthread_rwlock_t) -> c_int; + pub fn pthread_rwlock_wrlock(lock: *mut pthread_rwlock_t) -> c_int; + pub fn pthread_rwlock_trywrlock(lock: *mut pthread_rwlock_t) -> c_int; + 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: crate::pthread_t, name: *mut c_char, len: size_t) -> c_int; + pub fn pthread_setname_np(thread: crate::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( - sockfd: ::c_int, - level: ::c_int, - optname: ::c_int, - optval: *mut ::c_void, - optlen: *mut ::socklen_t, - ) -> ::c_int; - pub fn raise(signum: ::c_int) -> ::c_int; - pub fn sigaction(signum: ::c_int, act: *const sigaction, oldact: *mut sigaction) -> ::c_int; - - pub fn utimes(filename: *const ::c_char, times: *const ::timeval) -> ::c_int; - pub fn dlopen(filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; - pub fn dlerror() -> *mut ::c_char; - pub fn dlsym(handle: *mut ::c_void, symbol: *const ::c_char) -> *mut ::c_void; - pub fn dlclose(handle: *mut ::c_void) -> ::c_int; - pub fn dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int; + sockfd: c_int, + level: c_int, + optname: c_int, + optval: *mut c_void, + optlen: *mut crate::socklen_t, + ) -> c_int; + pub fn raise(signum: c_int) -> c_int; + pub fn sigaction(signum: c_int, act: *const sigaction, oldact: *mut sigaction) -> c_int; + + pub fn utimes(filename: *const c_char, times: *const crate::timeval) -> c_int; + pub fn dlopen(filename: *const c_char, flag: c_int) -> *mut c_void; + pub fn dlerror() -> *mut c_char; + pub fn dlsym(handle: *mut c_void, symbol: *const c_char) -> *mut c_void; + pub fn dlclose(handle: *mut c_void) -> c_int; + pub fn dladdr(addr: *const c_void, info: *mut Dl_info) -> c_int; pub fn getaddrinfo( node: *const c_char, service: *const c_char, hints: *const addrinfo, res: *mut *mut addrinfo, - ) -> ::c_int; + ) -> c_int; pub fn freeaddrinfo(res: *mut addrinfo); - pub fn gai_strerror(errcode: ::c_int) -> *const ::c_char; - pub fn res_init() -> ::c_int; + pub fn gai_strerror(errcode: c_int) -> *const c_char; + pub fn res_init() -> c_int; pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; @@ -3981,488 +3969,469 @@ extern "C" { pub fn gmtime(time_p: *const time_t) -> *mut tm; pub fn localtime(time_p: *const time_t) -> *mut tm; - pub fn mknod(pathname: *const ::c_char, mode: ::mode_t, dev: ::dev_t) -> ::c_int; - pub fn uname(buf: *mut ::utsname) -> ::c_int; - pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn getservbyname(name: *const ::c_char, proto: *const ::c_char) -> *mut servent; - pub fn getprotobyname(name: *const ::c_char) -> *mut protoent; - pub fn getprotobynumber(proto: ::c_int) -> *mut protoent; - pub fn usleep(secs: ::c_uint) -> ::c_int; - pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; - pub fn recv(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; - pub fn putenv(string: *mut c_char) -> ::c_int; - pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; + pub fn mknod(pathname: *const c_char, mode: crate::mode_t, dev: crate::dev_t) -> c_int; + pub fn uname(buf: *mut crate::utsname) -> c_int; + pub fn gethostname(name: *mut c_char, len: size_t) -> c_int; + pub fn getservbyname(name: *const c_char, proto: *const c_char) -> *mut servent; + pub fn getprotobyname(name: *const c_char) -> *mut protoent; + pub fn getprotobynumber(proto: c_int) -> *mut protoent; + pub fn usleep(secs: c_uint) -> c_int; + pub fn send(socket: c_int, buf: *const c_void, len: size_t, flags: c_int) -> ssize_t; + pub fn recv(socket: c_int, buf: *mut c_void, len: size_t, flags: c_int) -> ssize_t; + pub fn putenv(string: *mut c_char) -> c_int; + pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: c_int) -> c_int; pub fn select( - nfds: ::c_int, + nfds: c_int, readfds: *mut fd_set, writefds: *mut fd_set, errorfds: *mut fd_set, timeout: *mut timeval, - ) -> ::c_int; - pub fn setlocale(category: ::c_int, locale: *const ::c_char) -> *mut ::c_char; + ) -> c_int; + pub fn setlocale(category: c_int, locale: *const c_char) -> *mut c_char; pub fn localeconv() -> *mut lconv; - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_wait(sem: *mut sem_t) -> ::c_int; - pub fn sem_trywait(sem: *mut sem_t) -> ::c_int; - pub fn sem_post(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; - pub fn statvfs(path: *const c_char, buf: *mut statvfs) -> ::c_int; - pub fn fstatvfs(fd: ::c_int, buf: *mut statvfs) -> ::c_int; + pub fn sem_destroy(sem: *mut sem_t) -> c_int; + pub fn sem_wait(sem: *mut sem_t) -> c_int; + pub fn sem_trywait(sem: *mut sem_t) -> c_int; + pub fn sem_post(sem: *mut sem_t) -> c_int; + pub fn sem_init(sem: *mut sem_t, pshared: c_int, value: c_uint) -> c_int; + pub fn statvfs(path: *const c_char, buf: *mut statvfs) -> c_int; + pub fn fstatvfs(fd: c_int, buf: *mut statvfs) -> c_int; - pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: ::size_t) -> ::ssize_t; + pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: size_t) -> ssize_t; - pub fn sigemptyset(set: *mut sigset_t) -> ::c_int; - pub fn sigaddset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; - pub fn sigfillset(set: *mut sigset_t) -> ::c_int; - pub fn sigdelset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; - pub fn sigismember(set: *const sigset_t, signum: ::c_int) -> ::c_int; + pub fn sigemptyset(set: *mut sigset_t) -> c_int; + pub fn sigaddset(set: *mut sigset_t, signum: c_int) -> c_int; + pub fn sigfillset(set: *mut sigset_t) -> c_int; + pub fn sigdelset(set: *mut sigset_t, signum: c_int) -> c_int; + pub fn sigismember(set: *const sigset_t, signum: c_int) -> c_int; - pub fn sigprocmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sigpending(set: *mut sigset_t) -> ::c_int; + pub fn sigprocmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; + pub fn sigpending(set: *mut sigset_t) -> c_int; - pub fn timegm(tm: *mut ::tm) -> time_t; + pub fn timegm(tm: *mut crate::tm) -> time_t; pub fn getsid(pid: pid_t) -> pid_t; - pub fn sysconf(name: ::c_int) -> ::c_long; + pub fn sysconf(name: c_int) -> c_long; - pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; + pub fn mkfifo(path: *const c_char, mode: mode_t) -> c_int; pub fn pselect( - nfds: ::c_int, + nfds: c_int, readfds: *mut fd_set, writefds: *mut fd_set, errorfds: *mut fd_set, timeout: *const timespec, sigmask: *const sigset_t, - ) -> ::c_int; - pub fn fseeko(stream: *mut ::FILE, offset: ::off_t, whence: ::c_int) -> ::c_int; - pub fn ftello(stream: *mut ::FILE) -> ::off_t; - pub fn tcdrain(fd: ::c_int) -> ::c_int; - pub fn cfgetispeed(termios: *const ::termios) -> ::speed_t; - pub fn cfgetospeed(termios: *const ::termios) -> ::speed_t; - pub fn cfmakeraw(termios: *mut ::termios); - pub fn cfsetispeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; - pub fn cfsetospeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; - pub fn cfsetspeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; - pub fn tcgetattr(fd: ::c_int, termios: *mut ::termios) -> ::c_int; - pub fn tcsetattr(fd: ::c_int, optional_actions: ::c_int, termios: *const ::termios) -> ::c_int; - pub fn tcflow(fd: ::c_int, action: ::c_int) -> ::c_int; - pub fn tcflush(fd: ::c_int, action: ::c_int) -> ::c_int; - pub fn tcgetsid(fd: ::c_int) -> ::pid_t; - pub fn tcsendbreak(fd: ::c_int, duration: ::c_int) -> ::c_int; - pub fn mkstemp(template: *mut ::c_char) -> ::c_int; - pub fn mkdtemp(template: *mut ::c_char) -> *mut ::c_char; - - pub fn tmpnam(ptr: *mut ::c_char) -> *mut ::c_char; - - pub fn openlog(ident: *const ::c_char, logopt: ::c_int, facility: ::c_int); + ) -> c_int; + pub fn fseeko(stream: *mut crate::FILE, offset: off_t, whence: c_int) -> c_int; + pub fn ftello(stream: *mut crate::FILE) -> off_t; + pub fn tcdrain(fd: c_int) -> c_int; + pub fn cfgetispeed(termios: *const crate::termios) -> crate::speed_t; + pub fn cfgetospeed(termios: *const crate::termios) -> crate::speed_t; + pub fn cfmakeraw(termios: *mut crate::termios); + pub fn cfsetispeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; + pub fn cfsetospeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; + pub fn cfsetspeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; + pub fn tcgetattr(fd: c_int, termios: *mut crate::termios) -> c_int; + pub fn tcsetattr(fd: c_int, optional_actions: c_int, termios: *const crate::termios) -> c_int; + pub fn tcflow(fd: c_int, action: c_int) -> c_int; + pub fn tcflush(fd: c_int, action: c_int) -> c_int; + pub fn tcgetsid(fd: c_int) -> crate::pid_t; + pub fn tcsendbreak(fd: c_int, duration: c_int) -> c_int; + pub fn mkstemp(template: *mut c_char) -> c_int; + pub fn mkdtemp(template: *mut c_char) -> *mut c_char; + + pub fn tmpnam(ptr: *mut c_char) -> *mut c_char; + + pub fn openlog(ident: *const c_char, logopt: c_int, facility: c_int); pub fn closelog(); - pub fn setlogmask(maskpri: ::c_int) -> ::c_int; - pub fn syslog(priority: ::c_int, message: *const ::c_char, ...); + pub fn setlogmask(maskpri: c_int) -> c_int; + pub fn syslog(priority: c_int, message: *const c_char, ...); - pub fn grantpt(fd: ::c_int) -> ::c_int; - pub fn posix_openpt(flags: ::c_int) -> ::c_int; - pub fn ptsname(fd: ::c_int) -> *mut ::c_char; - pub fn unlockpt(fd: ::c_int) -> ::c_int; + pub fn grantpt(fd: c_int) -> c_int; + pub fn posix_openpt(flags: c_int) -> c_int; + pub fn ptsname(fd: c_int) -> *mut c_char; + pub fn unlockpt(fd: c_int) -> c_int; - pub fn fdatasync(fd: ::c_int) -> ::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; - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; + pub fn fdatasync(fd: c_int) -> c_int; + pub fn clock_getres(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + pub fn clock_settime(clk_id: crate::clockid_t, tp: *const crate::timespec) -> c_int; + pub fn dirfd(dirp: *mut crate::DIR) -> c_int; - pub fn pthread_getattr_np(native: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_getattr_np(native: crate::pthread_t, attr: *mut crate::pthread_attr_t) -> c_int; pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn setgroups(ngroups: ::size_t, ptr: *const ::gid_t) -> ::c_int; - pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; - pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; - pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; - - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + attr: *const crate::pthread_attr_t, + stackaddr: *mut *mut c_void, + stacksize: *mut size_t, + ) -> c_int; + pub fn memalign(align: size_t, size: size_t) -> *mut c_void; + pub fn setgroups(ngroups: size_t, ptr: *const crate::gid_t) -> c_int; + pub fn pipe2(fds: *mut c_int, flags: c_int) -> c_int; + pub fn statfs(path: *const c_char, buf: *mut statfs) -> c_int; + pub fn fstatfs(fd: c_int, buf: *mut statfs) -> c_int; + pub fn memrchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; + + pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advise: c_int) -> c_int; + pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; - pub fn duplocale(base: ::locale_t) -> ::locale_t; - pub fn freelocale(loc: ::locale_t); - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; - pub fn uselocale(loc: ::locale_t) -> ::locale_t; - - pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; - - pub fn mknodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - dev: dev_t, - ) -> ::c_int; + dirfd: c_int, + path: *const c_char, + times: *const crate::timespec, + flag: c_int, + ) -> c_int; + pub fn duplocale(base: crate::locale_t) -> crate::locale_t; + pub fn freelocale(loc: crate::locale_t); + pub fn newlocale(mask: c_int, locale: *const c_char, base: crate::locale_t) -> crate::locale_t; + pub fn uselocale(loc: crate::locale_t) -> crate::locale_t; + + pub fn fdopendir(fd: c_int) -> *mut crate::DIR; + + pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t, dev: dev_t) + -> c_int; pub fn pthread_condattr_getclock( attr: *const pthread_condattr_t, clock_id: *mut clockid_t, - ) -> ::c_int; + ) -> c_int; pub fn pthread_condattr_setclock( attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; + clock_id: crate::clockid_t, + ) -> c_int; pub fn accept4( - fd: ::c_int, - addr: *mut ::sockaddr, - len: *mut ::socklen_t, - flg: ::c_int, - ) -> ::c_int; - pub fn ptsname_r(fd: ::c_int, buf: *mut ::c_char, buflen: ::size_t) -> ::c_int; - pub fn clearenv() -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) - -> ::c_int; - pub fn setreuid(ruid: ::uid_t, euid: ::uid_t) -> ::c_int; - pub fn setregid(rgid: ::gid_t, egid: ::gid_t) -> ::c_int; - pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int; - pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int; - pub fn acct(filename: *const ::c_char) -> ::c_int; - pub fn brk(addr: *mut ::c_void) -> ::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; + fd: c_int, + addr: *mut crate::sockaddr, + len: *mut crate::socklen_t, + flg: c_int, + ) -> c_int; + pub fn ptsname_r(fd: c_int, buf: *mut c_char, buflen: size_t) -> c_int; + pub fn clearenv() -> c_int; + pub fn waitid( + idtype: idtype_t, + id: id_t, + infop: *mut crate::siginfo_t, + options: c_int, + ) -> c_int; + pub fn setreuid(ruid: crate::uid_t, euid: crate::uid_t) -> c_int; + pub fn setregid(rgid: crate::gid_t, egid: crate::gid_t) -> c_int; + pub fn getresuid( + ruid: *mut crate::uid_t, + euid: *mut crate::uid_t, + suid: *mut crate::uid_t, + ) -> c_int; + pub fn getresgid( + rgid: *mut crate::gid_t, + egid: *mut crate::gid_t, + sgid: *mut crate::gid_t, + ) -> c_int; + pub fn acct(filename: *const c_char) -> c_int; + pub fn brk(addr: *mut c_void) -> c_int; + pub fn setresgid(rgid: crate::gid_t, egid: crate::gid_t, sgid: crate::gid_t) -> c_int; + pub fn setresuid(ruid: crate::uid_t, euid: crate::uid_t, suid: crate::uid_t) -> c_int; pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, + amaster: *mut c_int, + aslave: *mut c_int, + name: *mut c_char, termp: *const termios, - winp: *const ::winsize, - ) -> ::c_int; + winp: *const crate::winsize, + ) -> c_int; // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execvpe( - file: *const ::c_char, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - pub fn fexecve( - fd: ::c_int, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; + file: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + ) -> c_int; + pub fn fexecve(fd: c_int, argv: *const *const c_char, envp: *const *const c_char) -> c_int; - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; + pub fn ioctl(fd: c_int, request: c_int, ...) -> c_int; - pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; + pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int; pub fn setpwent(); pub fn endpwent(); pub fn getpwent() -> *mut passwd; - pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; // System V IPC - pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - 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 ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; - pub fn semget(key: ::key_t, nsems: ::c_int, semflag: ::c_int) -> ::c_int; - pub fn semop(semid: ::c_int, sops: *mut ::sembuf, nsops: ::size_t) -> ::c_int; - pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; - pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int; - pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; + pub fn shmget(key: crate::key_t, size: size_t, shmflg: c_int) -> c_int; + 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 crate::shmid_ds) -> c_int; + pub fn ftok(pathname: *const c_char, proj_id: c_int) -> crate::key_t; + pub fn semget(key: crate::key_t, nsems: c_int, semflag: c_int) -> c_int; + pub fn semop(semid: c_int, sops: *mut crate::sembuf, nsops: size_t) -> c_int; + pub fn semctl(semid: c_int, semnum: c_int, cmd: c_int, ...) -> c_int; + pub fn msgctl(msqid: c_int, cmd: c_int, buf: *mut msqid_ds) -> c_int; + pub fn msgget(key: crate::key_t, msgflg: c_int) -> c_int; pub fn msgrcv( - msqid: ::c_int, - msgp: *mut ::c_void, - msgsz: ::size_t, - msgtyp: ::c_long, - msgflg: ::c_int, - ) -> ::ssize_t; - pub fn msgsnd( - msqid: ::c_int, - msgp: *const ::c_void, - msgsz: ::size_t, - msgflg: ::c_int, - ) -> ::c_int; - - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn __errno_location() -> *mut ::c_int; - - pub fn fallocate(fd: ::c_int, mode: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn readahead(fd: ::c_int, offset: ::off64_t, count: ::size_t) -> ::ssize_t; - pub fn signalfd(fd: ::c_int, mask: *const ::sigset_t, flags: ::c_int) -> ::c_int; - pub fn timerfd_create(clockid: ::c_int, flags: ::c_int) -> ::c_int; - pub fn timerfd_gettime(fd: ::c_int, curr_value: *mut itimerspec) -> ::c_int; + msqid: c_int, + msgp: *mut c_void, + msgsz: size_t, + msgtyp: c_long, + msgflg: c_int, + ) -> ssize_t; + pub fn msgsnd(msqid: c_int, msgp: *const c_void, msgsz: size_t, msgflg: c_int) -> c_int; + + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; + pub fn __errno_location() -> *mut c_int; + + pub fn fallocate(fd: c_int, mode: c_int, offset: off_t, len: off_t) -> c_int; + pub fn posix_fallocate(fd: c_int, offset: off_t, len: off_t) -> c_int; + pub fn readahead(fd: c_int, offset: off64_t, count: size_t) -> ssize_t; + pub fn signalfd(fd: c_int, mask: *const crate::sigset_t, flags: c_int) -> c_int; + pub fn timerfd_create(clockid: c_int, flags: c_int) -> c_int; + pub fn timerfd_gettime(fd: c_int, curr_value: *mut itimerspec) -> c_int; pub fn timerfd_settime( - fd: ::c_int, - flags: ::c_int, + fd: c_int, + flags: c_int, new_value: *const itimerspec, old_value: *mut itimerspec, - ) -> ::c_int; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) - -> ::ssize_t; - pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn quotactl( - cmd: ::c_int, - special: *const ::c_char, - id: ::c_int, - data: *mut ::c_char, - ) -> ::c_int; - pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int; - pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; + ) -> c_int; + pub fn pwritev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; + pub fn preadv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; + pub fn quotactl(cmd: c_int, special: *const c_char, id: c_int, data: *mut c_char) -> c_int; + pub fn dup3(oldfd: c_int, newfd: c_int, flags: c_int) -> c_int; + pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int; + pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int; pub fn sigtimedwait( set: *const sigset_t, info: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; - pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; + timeout: *const crate::timespec, + ) -> c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> c_int; + pub fn nl_langinfo_l(item: crate::nl_item, locale: crate::locale_t) -> *mut c_char; pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - servlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn reboot(how_to: ::c_int) -> ::c_int; - pub fn setfsgid(gid: ::gid_t) -> ::c_int; - pub fn setfsuid(uid: ::uid_t) -> ::c_int; + sa: *const crate::sockaddr, + salen: crate::socklen_t, + host: *mut c_char, + hostlen: crate::socklen_t, + serv: *mut c_char, + servlen: crate::socklen_t, + flags: c_int, + ) -> c_int; + pub fn reboot(how_to: c_int) -> c_int; + pub fn setfsgid(gid: crate::gid_t) -> c_int; + pub fn setfsuid(uid: crate::uid_t) -> c_int; // Not available now on Android - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; pub fn if_nameindex() -> *mut if_nameindex; pub fn if_freenameindex(ptr: *mut if_nameindex); - pub fn sync_file_range( - fd: ::c_int, - offset: ::off64_t, - nbytes: ::off64_t, - flags: ::c_uint, - ) -> ::c_int; - pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; - pub fn freeifaddrs(ifa: *mut ::ifaddrs); + pub fn sync_file_range(fd: c_int, offset: off64_t, nbytes: off64_t, flags: c_uint) -> c_int; + pub fn getifaddrs(ifap: *mut *mut crate::ifaddrs) -> c_int; + pub fn freeifaddrs(ifa: *mut crate::ifaddrs); pub fn glob( pattern: *const c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t, - ) -> ::c_int; - pub fn globfree(pglob: *mut ::glob_t); + flags: c_int, + errfunc: Option c_int>, + pglob: *mut crate::glob_t, + ) -> c_int; + pub fn globfree(pglob: *mut crate::glob_t); - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn posix_madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + pub fn shm_unlink(name: *const c_char) -> c_int; - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + pub fn seekdir(dirp: *mut crate::DIR, loc: c_long); - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn telldir(dirp: *mut crate::DIR) -> c_long; + pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; - pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - - pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; - - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - - pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; - pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn vhangup() -> ::c_int; - pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - ) -> ::c_int; + socket: c_int, + buf: *mut c_void, + len: size_t, + flags: c_int, + addr: *mut crate::sockaddr, + addrlen: *mut crate::socklen_t, + ) -> ssize_t; + pub fn mkstemps(template: *mut c_char, suffixlen: c_int) -> c_int; + pub fn futimes(fd: c_int, times: *const crate::timeval) -> c_int; + pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char; + + pub fn bind( + socket: c_int, + address: *const crate::sockaddr, + address_len: crate::socklen_t, + ) -> c_int; + + pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; + pub fn readv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; + + pub fn sendmsg(fd: c_int, msg: *const crate::msghdr, flags: c_int) -> ssize_t; + pub fn recvmsg(fd: c_int, msg: *mut crate::msghdr, flags: c_int) -> ssize_t; + pub fn getdomainname(name: *mut c_char, len: size_t) -> c_int; + pub fn setdomainname(name: *const c_char, len: size_t) -> c_int; + pub fn vhangup() -> c_int; + pub fn sendmmsg(sockfd: c_int, msgvec: *mut mmsghdr, vlen: c_uint, flags: c_int) -> c_int; pub fn recvmmsg( - sockfd: ::c_int, + sockfd: c_int, msgvec: *mut mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - timeout: *mut ::timespec, - ) -> ::c_int; + vlen: c_uint, + flags: c_int, + timeout: *mut crate::timespec, + ) -> c_int; pub fn sync(); - pub fn syscall(num: ::c_long, ...) -> ::c_long; - pub fn sched_getaffinity(pid: ::pid_t, cpusetsize: ::size_t, cpuset: *mut cpu_set_t) - -> ::c_int; + pub fn syscall(num: c_long, ...) -> c_long; + pub fn sched_getaffinity( + pid: crate::pid_t, + cpusetsize: size_t, + cpuset: *mut cpu_set_t, + ) -> c_int; pub fn sched_setaffinity( - pid: ::pid_t, - cpusetsize: ::size_t, + pid: crate::pid_t, + cpusetsize: size_t, cpuset: *const cpu_set_t, - ) -> ::c_int; - pub fn umount(target: *const ::c_char) -> ::c_int; - pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn tee(fd_in: ::c_int, fd_out: ::c_int, len: ::size_t, flags: ::c_uint) -> ::ssize_t; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; + ) -> c_int; + pub fn umount(target: *const c_char) -> c_int; + pub fn sched_get_priority_max(policy: c_int) -> c_int; + pub fn tee(fd_in: c_int, fd_out: c_int, len: size_t, flags: c_uint) -> ssize_t; + pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int; pub fn splice( - fd_in: ::c_int, - off_in: *mut ::loff_t, - fd_out: ::c_int, - off_out: *mut ::loff_t, - len: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; - pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; - pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; - pub fn swapoff(puath: *const ::c_char) -> ::c_int; - pub fn vmsplice( - fd: ::c_int, - iov: *const ::iovec, - nr_segs: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; + fd_in: c_int, + off_in: *mut crate::loff_t, + fd_out: c_int, + off_out: *mut crate::loff_t, + len: size_t, + flags: c_uint, + ) -> ssize_t; + pub fn eventfd(init: c_uint, flags: c_int) -> c_int; + pub fn sched_rr_get_interval(pid: crate::pid_t, tp: *mut crate::timespec) -> c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int; + pub fn sched_setparam(pid: crate::pid_t, param: *const crate::sched_param) -> c_int; + pub fn swapoff(puath: *const c_char) -> c_int; + pub fn vmsplice(fd: c_int, iov: *const crate::iovec, nr_segs: size_t, flags: c_uint) + -> ssize_t; pub fn mount( - src: *const ::c_char, - target: *const ::c_char, - fstype: *const ::c_char, - flags: ::c_ulong, - data: *const ::c_void, - ) -> ::c_int; - pub fn personality(persona: ::c_ulong) -> ::c_int; - pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; + src: *const c_char, + target: *const c_char, + fstype: *const c_char, + flags: c_ulong, + data: *const c_void, + ) -> c_int; + pub fn personality(persona: c_ulong) -> c_int; + pub fn sched_getparam(pid: crate::pid_t, param: *mut crate::sched_param) -> c_int; pub fn ppoll( - fds: *mut ::pollfd, + fds: *mut crate::pollfd, nfds: nfds_t, - timeout: *const ::timespec, + timeout: *const crate::timespec, sigmask: *const sigset_t, - ) -> ::c_int; + ) -> c_int; pub fn pthread_mutex_timedlock( lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; + abstime: *const crate::timespec, + ) -> c_int; pub fn clone( - cb: extern "C" fn(*mut ::c_void) -> ::c_int, - child_stack: *mut ::c_void, - flags: ::c_int, - arg: *mut ::c_void, + cb: extern "C" fn(*mut c_void) -> c_int, + child_stack: *mut c_void, + flags: c_int, + arg: *mut c_void, ... - ) -> ::c_int; - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + ) -> c_int; + pub fn sched_getscheduler(pid: crate::pid_t) -> c_int; pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; + clk_id: crate::clockid_t, + flags: c_int, + rqtp: *const crate::timespec, + rmtp: *mut crate::timespec, + ) -> c_int; pub fn pthread_attr_getguardsize( - 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; - pub fn swapon(path: *const ::c_char, swapflags: ::c_int) -> ::c_int; + attr: *const crate::pthread_attr_t, + guardsize: *mut size_t, + ) -> c_int; + pub fn pthread_attr_setguardsize(attr: *mut crate::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; + pub fn swapon(path: *const c_char, swapflags: c_int) -> c_int; pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; + pid: crate::pid_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; + pub fn sigsuspend(mask: *const crate::sigset_t) -> c_int; pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; - pub fn sem_close(sem: *mut sem_t) -> ::c_int; - pub fn getdtablesize() -> ::c_int; + gid: crate::gid_t, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> c_int; + pub fn sem_close(sem: *mut sem_t) -> c_int; + pub fn getdtablesize() -> c_int; pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; - pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + name: *const c_char, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn initgroups(user: *const c_char, group: crate::gid_t) -> c_int; + pub fn pthread_sigmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; + pub fn sem_open(name: *const c_char, oflag: c_int, ...) -> *mut sem_t; + pub fn getgrnam(name: *const c_char) -> *mut crate::group; + pub fn pthread_cancel(thread: crate::pthread_t) -> c_int; + pub fn pthread_kill(thread: crate::pthread_t, sig: c_int) -> c_int; + pub fn sem_unlink(name: *const c_char) -> c_int; + pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; pub fn getpwnam_r( - name: *const ::c_char, + name: *const c_char, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; pub fn getpwuid_r( - uid: ::uid_t, + uid: crate::uid_t, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + ) -> c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int; pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + prepare: Option, + parent: Option, + child: Option, + ) -> c_int; + pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; pub fn setgrent(); pub fn endgrent(); - pub fn getgrent() -> *mut ::group; + pub fn getgrent() -> *mut crate::group; pub fn getgrouplist( - user: *const ::c_char, - group: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int, - ) -> ::c_int; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn faccessat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::c_int, - flags: ::c_int, - ) -> ::c_int; + user: *const c_char, + group: crate::gid_t, + groups: *mut crate::gid_t, + ngroups: *mut c_int, + ) -> c_int; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut crate::FILE; + pub fn faccessat(dirfd: c_int, pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; + native: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + f: extern "C" fn(*mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; pub fn dl_iterate_phdr( - callback: ::Option< + callback: Option< unsafe extern "C" fn( - info: *mut ::dl_phdr_info, - size: ::size_t, - data: *mut ::c_void, - ) -> ::c_int, + info: *mut crate::dl_phdr_info, + size: size_t, + data: *mut c_void, + ) -> c_int, >, - data: *mut ::c_void, - ) -> ::c_int; + data: *mut c_void, + ) -> c_int; } cfg_if! { diff --git a/src/fuchsia/riscv64.rs b/src/fuchsia/riscv64.rs index de2b7197d75cc..fcbd63673c9df 100644 --- a/src/fuchsia/riscv64.rs +++ b/src/fuchsia/riscv64.rs @@ -1,44 +1,46 @@ +use crate::{c_int, c_long, c_ulong, c_ulonglong, c_ushort, off_t}; + // From psABI Calling Convention for RV64 pub type c_char = u8; -pub type __u64 = ::c_ulonglong; +pub type __u64 = c_ulonglong; pub type wchar_t = i32; -pub type nlink_t = ::c_ulong; -pub type blksize_t = ::c_long; +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], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + __pad0: c_int, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::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, + pub __ipc_perm_key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub __seq: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } } diff --git a/src/fuchsia/x86_64.rs b/src/fuchsia/x86_64.rs index ac2b976c051cc..632bace2d1d64 100644 --- a/src/fuchsia/x86_64.rs +++ b/src/fuchsia/x86_64.rs @@ -1,50 +1,52 @@ +use crate::{c_int, c_long, c_ulong, c_ulonglong, off_t, size_t}; + pub type c_char = i8; pub type wchar_t = i32; pub type nlink_t = u64; -pub type blksize_t = ::c_long; -pub type __u64 = ::c_ulonglong; +pub type blksize_t = c_long; +pub type __u64 = c_ulonglong; 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], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + __pad0: c_int, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_long; 3], } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_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: ::blkcnt64_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, - __reserved: [::c_long; 3], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino64_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + __pad0: c_int, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __reserved: [c_long; 3], } pub struct mcontext_t { @@ -52,25 +54,25 @@ s! { } 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_int, - __unused1: ::c_long, - __unused2: ::c_long, + pub __ipc_perm_key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub __seq: c_int, + __unused1: c_long, + __unused2: c_long, } } s_no_extra_traits! { pub struct ucontext_t { - pub uc_flags: ::c_ulong, + pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, + pub uc_stack: crate::stack_t, pub uc_mcontext: mcontext_t, - pub uc_sigmask: ::sigset_t, + pub uc_sigmask: crate::sigset_t, __private: [u8; 512], } } @@ -92,8 +94,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -104,8 +106,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); @@ -118,35 +120,35 @@ cfg_if! { } // offsets in user_regs_structs, from sys/reg.h -pub const R15: ::c_int = 0; -pub const R14: ::c_int = 1; -pub const R13: ::c_int = 2; -pub const R12: ::c_int = 3; -pub const RBP: ::c_int = 4; -pub const RBX: ::c_int = 5; -pub const R11: ::c_int = 6; -pub const R10: ::c_int = 7; -pub const R9: ::c_int = 8; -pub const R8: ::c_int = 9; -pub const RAX: ::c_int = 10; -pub const RCX: ::c_int = 11; -pub const RDX: ::c_int = 12; -pub const RSI: ::c_int = 13; -pub const RDI: ::c_int = 14; -pub const ORIG_RAX: ::c_int = 15; -pub const RIP: ::c_int = 16; -pub const CS: ::c_int = 17; -pub const EFLAGS: ::c_int = 18; -pub const RSP: ::c_int = 19; -pub const SS: ::c_int = 20; -pub const FS_BASE: ::c_int = 21; -pub const GS_BASE: ::c_int = 22; -pub const DS: ::c_int = 23; -pub const ES: ::c_int = 24; -pub const FS: ::c_int = 25; -pub const GS: ::c_int = 26; +pub const R15: c_int = 0; +pub const R14: c_int = 1; +pub const R13: c_int = 2; +pub const R12: c_int = 3; +pub const RBP: c_int = 4; +pub const RBX: c_int = 5; +pub const R11: c_int = 6; +pub const R10: c_int = 7; +pub const R9: c_int = 8; +pub const R8: c_int = 9; +pub const RAX: c_int = 10; +pub const RCX: c_int = 11; +pub const RDX: c_int = 12; +pub const RSI: c_int = 13; +pub const RDI: c_int = 14; +pub const ORIG_RAX: c_int = 15; +pub const RIP: c_int = 16; +pub const CS: c_int = 17; +pub const EFLAGS: c_int = 18; +pub const RSP: c_int = 19; +pub const SS: c_int = 20; +pub const FS_BASE: c_int = 21; +pub const GS_BASE: c_int = 22; +pub const DS: c_int = 23; +pub const ES: c_int = 24; +pub const FS: c_int = 25; +pub const GS: c_int = 26; -pub const MAP_32BIT: ::c_int = 0x0040; +pub const MAP_32BIT: c_int = 0x0040; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; diff --git a/src/hermit.rs b/src/hermit.rs index 8e630c38f6b65..18429de548672 100644 --- a/src/hermit.rs +++ b/src/hermit.rs @@ -1,6 +1,6 @@ //! Hermit C type definitions -use c_void; +use crate::c_void; cfg_if! { if #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))] { diff --git a/src/lib.rs b/src/lib.rs index b0b25de44e5d8..f95e9ba6afd3e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -66,16 +66,16 @@ use core::option::Option; cfg_if! { if #[cfg(windows)] { mod fixed_width_ints; - pub use fixed_width_ints::*; + pub use crate::fixed_width_ints::*; mod windows; - pub use windows::*; + pub use crate::windows::*; } else if #[cfg(target_os = "fuchsia")] { mod fixed_width_ints; - pub use fixed_width_ints::*; + pub use crate::fixed_width_ints::*; mod fuchsia; - pub use fuchsia::*; + pub use crate::fuchsia::*; } else if #[cfg(target_os = "switch")] { mod fixed_width_ints; pub use fixed_width_ints::*; @@ -84,34 +84,34 @@ cfg_if! { pub use switch::*; } else if #[cfg(target_os = "psp")] { mod fixed_width_ints; - pub use fixed_width_ints::*; + pub use crate::fixed_width_ints::*; mod psp; - pub use psp::*; + pub use crate::psp::*; } else if #[cfg(target_os = "vxworks")] { mod fixed_width_ints; - pub use fixed_width_ints::*; + pub use crate::fixed_width_ints::*; mod vxworks; - pub use vxworks::*; + pub use crate::vxworks::*; } else if #[cfg(target_os = "solid_asp3")] { mod fixed_width_ints; - pub use fixed_width_ints::*; + pub use crate::fixed_width_ints::*; mod solid; - pub use solid::*; + pub use crate::solid::*; } else if #[cfg(unix)] { mod fixed_width_ints; - pub use fixed_width_ints::*; + pub use crate::fixed_width_ints::*; mod unix; - pub use unix::*; + pub use crate::unix::*; } else if #[cfg(target_os = "hermit")] { mod fixed_width_ints; - pub use fixed_width_ints::*; + pub use crate::fixed_width_ints::*; mod hermit; - pub use hermit::*; + pub use crate::hermit::*; } else if #[cfg(target_os = "teeos")] { mod fixed_width_ints; pub use fixed_width_ints::*; @@ -120,28 +120,28 @@ cfg_if! { pub use teeos::*; } else if #[cfg(target_os = "trusty")] { mod fixed_width_ints; - pub use fixed_width_ints::*; + pub use crate::fixed_width_ints::*; mod trusty; - pub use trusty::*; + pub use crate::trusty::*; } else if #[cfg(all(target_env = "sgx", target_vendor = "fortanix"))] { mod fixed_width_ints; - pub use fixed_width_ints::*; + pub use crate::fixed_width_ints::*; mod sgx; - pub use sgx::*; + pub use crate::sgx::*; } else if #[cfg(any(target_env = "wasi", target_os = "wasi"))] { mod fixed_width_ints; - pub use fixed_width_ints::*; + pub use crate::fixed_width_ints::*; mod wasi; - pub use wasi::*; + pub use crate::wasi::*; } else if #[cfg(target_os = "xous")] { mod fixed_width_ints; - pub use fixed_width_ints::*; + pub use crate::fixed_width_ints::*; mod xous; - pub use xous::*; + pub use crate::xous::*; } else { // non-supported targets: empty... } diff --git a/src/psp.rs b/src/psp.rs index 351367c0ee67e..d1564798011b0 100644 --- a/src/psp.rs +++ b/src/psp.rs @@ -4,7 +4,7 @@ //! by the linker. Crates that use these definitions must, somewhere in the //! crate graph, include a stub provider crate such as the `psp` crate. -use c_void; +use crate::c_void; pub type c_schar = i8; pub type c_uchar = u8; @@ -56,16 +56,16 @@ pub type IoPermissions = i32; pub type UmdCallback = fn(unknown: i32, event: i32) -> i32; pub type SceMpegRingbufferCb = - ::Option i32>; + Option i32>; -pub type GuCallback = ::Option; +pub type GuCallback = Option; pub type GuSwapBuffersCallback = - ::Option; + Option; pub type SceNetAdhocctlHandler = - ::Option; + Option; -pub type AdhocMatchingCallback = ::Option< +pub type AdhocMatchingCallback = Option< unsafe extern "C" fn( matching_id: i32, event: i32, @@ -75,15 +75,15 @@ pub type AdhocMatchingCallback = ::Option< ), >; -pub type SceNetApctlHandler = ::Option< +pub type SceNetApctlHandler = Option< unsafe extern "C" fn(oldState: i32, newState: i32, event: i32, error: i32, pArg: *mut c_void), >; -pub type HttpMallocFunction = ::Option *mut c_void>; +pub type HttpMallocFunction = Option *mut c_void>; pub type HttpReallocFunction = - ::Option *mut c_void>; -pub type HttpFreeFunction = ::Option; -pub type HttpPasswordCB = ::Option< + Option *mut c_void>; +pub type HttpFreeFunction = Option; +pub type HttpPasswordCB = Option< unsafe extern "C" fn( request: i32, auth_type: HttpAuthType, @@ -1430,9 +1430,9 @@ s! { } pub struct GeCallbackData { - pub signal_func: ::Option, + pub signal_func: Option, pub signal_arg: *mut c_void, - pub finish_func: ::Option, + pub finish_func: Option, pub finish_arg: *mut c_void, } diff --git a/src/solid/mod.rs b/src/solid/mod.rs index da1ce150b0330..c52085c440f27 100644 --- a/src/solid/mod.rs +++ b/src/solid/mod.rs @@ -2,7 +2,7 @@ //! //! [SOLID]: https://solid.kmckk.com/ -use c_void; +use crate::c_void; pub type c_schar = i8; pub type c_uchar = u8; @@ -20,8 +20,8 @@ pub type uintmax_t = u64; pub type uintptr_t = usize; pub type intptr_t = isize; pub type ptrdiff_t = isize; -pub type size_t = ::uintptr_t; -pub type ssize_t = ::intptr_t; +pub type size_t = crate::uintptr_t; +pub type ssize_t = intptr_t; pub type clock_t = c_uint; pub type time_t = i64; @@ -407,16 +407,16 @@ pub const SIGPWR: c_int = 32; #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum FILE {} -impl ::Copy for FILE {} -impl ::Clone for FILE { +impl Copy for FILE {} +impl Clone for FILE { fn clone(&self) -> FILE { *self } } #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum fpos_t {} -impl ::Copy for fpos_t {} -impl ::Clone for fpos_t { +impl Copy for fpos_t {} +impl Clone for fpos_t { fn clone(&self) -> fpos_t { *self } @@ -540,7 +540,7 @@ extern "C" { pub fn _Exit(arg1: c_int) -> !; pub fn abort() -> !; pub fn abs(arg1: c_int) -> c_int; - pub fn atexit(arg1: ::Option) -> c_int; + pub fn atexit(arg1: Option) -> c_int; pub fn atoi(arg1: *const c_char) -> c_int; pub fn atol(arg1: *const c_char) -> c_long; pub fn itoa(arg1: c_int, arg2: *mut c_char, arg3: c_int) -> *mut c_char; @@ -551,7 +551,7 @@ extern "C" { arg2: *const c_void, arg3: size_t, arg4: size_t, - arg5: ::Option c_int>, + arg5: Option c_int>, ) -> *mut c_void; pub fn calloc(arg1: size_t, arg2: size_t) -> *mut c_void; pub fn div(arg1: c_int, arg2: c_int) -> div_t; @@ -565,7 +565,7 @@ extern "C" { arg1: *mut c_void, arg2: size_t, arg3: size_t, - arg4: ::Option c_int>, + arg4: Option c_int>, ); pub fn rand() -> c_int; pub fn realloc(arg1: *mut c_void, arg2: size_t) -> *mut c_void; @@ -603,7 +603,7 @@ extern "C" { pub fn strtoll(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_longlong; pub fn strtoull(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_ulonglong; pub fn aligned_alloc(arg1: size_t, arg2: size_t) -> *mut c_void; - pub fn at_quick_exit(arg1: ::Option) -> c_int; + pub fn at_quick_exit(arg1: Option) -> c_int; pub fn quick_exit(arg1: c_int); pub fn setenv(arg1: *const c_char, arg2: *const c_char, arg3: c_int) -> c_int; pub fn unsetenv(arg1: *const c_char) -> c_int; @@ -621,13 +621,13 @@ extern "C" { arg1: *mut c_void, arg2: size_t, arg3: size_t, - arg4: ::Option c_int>, + arg4: Option c_int>, ) -> c_int; pub fn mergesort( arg1: *mut c_void, arg2: size_t, arg3: size_t, - arg4: ::Option c_int>, + arg4: Option c_int>, ) -> c_int; pub fn radixsort( arg1: *mut *const c_uchar, @@ -863,11 +863,11 @@ extern "C" { pub fn newlocale(arg1: c_int, arg2: *const c_char, arg3: locale_t) -> locale_t; // langinfo.h - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - pub fn nl_langinfo_l(item: ::nl_item, locale: locale_t) -> *mut ::c_char; + pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char; + pub fn nl_langinfo_l(item: crate::nl_item, locale: locale_t) -> *mut c_char; // malloc.h - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; + pub fn memalign(align: size_t, size: size_t) -> *mut c_void; // sys/types.h pub fn lseek(arg1: c_int, arg2: __off_t, arg3: c_int) -> __off_t; diff --git a/src/teeos/mod.rs b/src/teeos/mod.rs index 35232d63b9778..b04f69b09c0ac 100644 --- a/src/teeos/mod.rs +++ b/src/teeos/mod.rs @@ -1110,7 +1110,7 @@ extern "C" { cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t, abstime: *const ::timespec, - ) -> ::c_int; + ) -> c_int; pub fn pthread_mutexattr_setrobust(attr: *mut pthread_mutexattr_t, robustness: c_int) -> c_int; diff --git a/src/trusty.rs b/src/trusty.rs index 68b13f70b5b3f..3155fd23e6a3a 100644 --- a/src/trusty.rs +++ b/src/trusty.rs @@ -52,8 +52,8 @@ pub type clockid_t = c_int; s! { pub struct iovec { - pub iov_base: *mut ::c_void, - pub iov_len: ::size_t, + pub iov_base: *mut c_void, + pub iov_len: size_t, } pub struct timespec { @@ -68,34 +68,34 @@ pub const PROT_WRITE: i32 = 2; // Trusty only supports `CLOCK_BOOTTIME`. pub const CLOCK_BOOTTIME: clockid_t = 7; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; -pub const AT_PAGESZ: ::c_ulong = 6; +pub const AT_PAGESZ: c_ulong = 6; -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; +pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; extern "C" { pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; pub fn malloc(size: size_t) -> *mut c_void; pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; pub fn free(p: *mut c_void); - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int; - pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::size_t) -> ::ssize_t; - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn close(fd: ::c_int) -> ::c_int; + pub fn memalign(align: size_t, size: size_t) -> *mut c_void; + pub fn posix_memalign(memptr: *mut *mut c_void, align: size_t, size: size_t) -> c_int; + pub fn write(fd: c_int, buf: *const c_void, count: size_t) -> ssize_t; + pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; + pub fn close(fd: c_int) -> c_int; pub fn strlen(cs: *const c_char) -> size_t; pub fn getauxval(type_: c_ulong) -> c_ulong; pub fn mmap( - addr: *mut ::c_void, - len: ::size_t, - prot: ::c_int, - flags: ::c_int, - fd: ::c_int, + addr: *mut c_void, + len: size_t, + prot: c_int, + flags: c_int, + fd: c_int, offset: off_t, - ) -> *mut ::c_void; - pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; - pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn nanosleep(rqtp: *const ::timespec, rmtp: *mut ::timespec) -> ::c_int; + ) -> *mut c_void; + pub fn munmap(addr: *mut c_void, len: size_t) -> c_int; + pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + pub fn nanosleep(rqtp: *const crate::timespec, rmtp: *mut crate::timespec) -> c_int; } diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 8a2b1fc1cb32b..86ea4ca5cde12 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -1,63 +1,68 @@ +use crate::{ + c_double, c_int, c_longlong, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, intptr_t, + size_t, ssize_t, +}; + pub type c_char = u8; -pub type caddr_t = *mut ::c_char; -pub type clockid_t = ::c_longlong; -pub type blkcnt_t = ::c_long; -pub type clock_t = ::c_int; -pub type daddr_t = ::c_long; -pub type dev_t = ::c_ulong; -pub type fpos64_t = ::c_longlong; -pub type fsblkcnt_t = ::c_ulong; -pub type fsfilcnt_t = ::c_ulong; -pub type idtype_t = ::c_int; -pub type ino_t = ::c_ulong; -pub type key_t = ::c_int; -pub type mode_t = ::c_uint; -pub type nlink_t = ::c_short; -pub type rlim_t = ::c_ulong; -pub type speed_t = ::c_uint; -pub type tcflag_t = ::c_uint; -pub type time_t = ::c_long; -pub type time64_t = ::int64_t; -pub type timer_t = ::c_long; -pub type wchar_t = ::c_uint; -pub type nfds_t = ::c_int; -pub type projid_t = ::c_int; -pub type id_t = ::c_uint; -pub type blksize64_t = ::c_ulonglong; -pub type blkcnt64_t = ::c_ulonglong; -pub type sctp_assoc_t = ::uint32_t; - -pub type suseconds_t = ::c_int; -pub type useconds_t = ::c_uint; -pub type off_t = ::c_long; -pub type off64_t = ::c_longlong; - -pub type socklen_t = ::c_uint; -pub type sa_family_t = ::c_uchar; -pub type in_port_t = ::c_ushort; -pub type in_addr_t = ::c_uint; - -pub type signal_t = ::c_int; -pub type pthread_t = ::c_uint; -pub type pthread_key_t = ::c_uint; +pub type caddr_t = *mut c_char; +pub type clockid_t = c_longlong; +pub type blkcnt_t = c_long; +pub type clock_t = c_int; +pub type daddr_t = c_long; +pub type dev_t = c_ulong; +pub type fpos64_t = c_longlong; +pub type fsblkcnt_t = c_ulong; +pub type fsfilcnt_t = c_ulong; +pub type idtype_t = c_int; +pub type ino_t = c_ulong; +pub type key_t = c_int; +pub type mode_t = c_uint; +pub type nlink_t = c_short; +pub type rlim_t = c_ulong; +pub type speed_t = c_uint; +pub type tcflag_t = c_uint; +pub type time_t = c_long; +pub type time64_t = crate::int64_t; +pub type timer_t = c_long; +pub type wchar_t = c_uint; +pub type nfds_t = c_int; +pub type projid_t = c_int; +pub type id_t = c_uint; +pub type blksize64_t = c_ulonglong; +pub type blkcnt64_t = c_ulonglong; +pub type sctp_assoc_t = crate::uint32_t; + +pub type suseconds_t = c_int; +pub type useconds_t = c_uint; +pub type off_t = c_long; +pub type off64_t = c_longlong; + +pub type socklen_t = c_uint; +pub type sa_family_t = c_uchar; +pub type in_port_t = c_ushort; +pub type in_addr_t = c_uint; + +pub type signal_t = c_int; +pub type pthread_t = c_uint; +pub type pthread_key_t = c_uint; pub type thread_t = pthread_t; -pub type blksize_t = ::c_long; -pub type nl_item = ::c_int; -pub type mqd_t = ::c_int; -pub type shmatt_t = ::c_ulong; -pub type regoff_t = ::c_long; -pub type rlim64_t = ::c_ulonglong; - -pub type sem_t = ::c_int; -pub type pollset_t = ::c_int; - -pub type pthread_rwlockattr_t = *mut ::c_void; -pub type pthread_condattr_t = *mut ::c_void; -pub type pthread_mutexattr_t = *mut ::c_void; -pub type pthread_attr_t = *mut ::c_void; -pub type pthread_barrierattr_t = *mut ::c_void; -pub type posix_spawn_file_actions_t = *mut ::c_char; -pub type iconv_t = *mut ::c_void; +pub type blksize_t = c_long; +pub type nl_item = c_int; +pub type mqd_t = c_int; +pub type shmatt_t = c_ulong; +pub type regoff_t = c_long; +pub type rlim64_t = c_ulonglong; + +pub type sem_t = c_int; +pub type pollset_t = c_int; + +pub type pthread_rwlockattr_t = *mut c_void; +pub type pthread_condattr_t = *mut c_void; +pub type pthread_mutexattr_t = *mut c_void; +pub type pthread_attr_t = *mut c_void; +pub type pthread_barrierattr_t = *mut c_void; +pub type posix_spawn_file_actions_t = *mut c_char; +pub type iconv_t = *mut c_void; e! { #[repr(u32)] @@ -72,16 +77,16 @@ e! { s! { pub struct fsid_t { - pub val: [::c_uint; 2], + pub val: [c_uint; 2], } pub struct fsid64_t { - pub val: [::uint64_t; 2], + pub val: [crate::uint64_t; 2], } pub struct timezone { - pub tz_minuteswest: ::c_int, - pub tz_dsttime: ::c_int, + pub tz_minuteswest: c_int, + pub tz_dsttime: c_int, } pub struct ip_mreq { @@ -90,109 +95,109 @@ s! { } pub struct dirent { - pub d_offset: ::c_ulong, - pub d_ino: ::ino_t, - pub d_reclen: ::c_ushort, - pub d_namlen: ::c_ushort, - pub d_name: [::c_char; 256], + pub d_offset: c_ulong, + pub d_ino: crate::ino_t, + pub d_reclen: c_ushort, + pub d_namlen: c_ushort, + pub d_name: [c_char; 256], } pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_cc: [::cc_t; ::NCCS], + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_cc: [crate::cc_t; crate::NCCS], } pub struct flock64 { - 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: ::off64_t, - pub l_len: ::off64_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_sysid: c_uint, + pub l_pid: crate::pid_t, + pub l_vfs: c_int, + pub l_start: off64_t, + pub l_len: off64_t, } pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: c_int, + pub msg_control: *mut c_void, pub msg_controllen: socklen_t, - pub msg_flags: ::c_int, + pub msg_flags: c_int, } pub struct statvfs64 { - pub f_bsize: ::blksize64_t, - pub f_frsize: ::blksize64_t, - pub f_blocks: ::blkcnt64_t, - pub f_bfree: ::blkcnt64_t, - pub f_bavail: ::blkcnt64_t, - pub f_files: ::blkcnt64_t, - pub f_ffree: ::blkcnt64_t, - pub f_favail: ::blkcnt64_t, + pub f_bsize: crate::blksize64_t, + pub f_frsize: crate::blksize64_t, + pub f_blocks: crate::blkcnt64_t, + pub f_bfree: crate::blkcnt64_t, + pub f_bavail: crate::blkcnt64_t, + pub f_files: crate::blkcnt64_t, + pub f_ffree: crate::blkcnt64_t, + pub f_favail: crate::blkcnt64_t, pub f_fsid: fsid64_t, - 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 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 lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub left_parenthesis: *mut ::c_char, - pub right_parenthesis: *mut ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, + pub decimal_point: *mut c_char, + pub thousands_sep: *mut c_char, + pub grouping: *mut c_char, + pub int_curr_symbol: *mut c_char, + pub currency_symbol: *mut c_char, + pub mon_decimal_point: *mut c_char, + pub mon_thousands_sep: *mut c_char, + pub mon_grouping: *mut c_char, + pub positive_sign: *mut c_char, + pub negative_sign: *mut c_char, + pub int_frac_digits: c_char, + pub frac_digits: c_char, + pub p_cs_precedes: c_char, + pub p_sep_by_space: c_char, + pub n_cs_precedes: c_char, + pub n_sep_by_space: c_char, + pub p_sign_posn: c_char, + pub n_sign_posn: c_char, + pub left_parenthesis: *mut c_char, + pub right_parenthesis: *mut c_char, + pub int_p_cs_precedes: c_char, + pub int_p_sep_by_space: c_char, + pub int_n_cs_precedes: c_char, + pub int_n_sep_by_space: c_char, + pub int_p_sign_posn: c_char, + pub int_n_sign_posn: c_char, } pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, } pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: ::c_ulong, - pub ai_canonname: *mut ::c_char, - pub ai_addr: *mut ::sockaddr, + pub ai_flags: c_int, + pub ai_family: c_int, + pub ai_socktype: c_int, + pub ai_protocol: c_int, + pub ai_addrlen: c_ulong, + pub ai_canonname: *mut c_char, + pub ai_addr: *mut crate::sockaddr, pub ai_next: *mut addrinfo, - pub ai_eflags: ::c_int, + pub ai_eflags: c_int, } pub struct in_addr { @@ -206,218 +211,218 @@ s! { } pub struct sockaddr { - pub sa_len: ::c_uchar, + pub sa_len: c_uchar, pub sa_family: sa_family_t, - pub sa_data: [::c_char; 14], + pub sa_data: [c_char; 14], } pub struct sockaddr_dl { - pub sdl_len: ::c_uchar, - pub sdl_family: ::c_uchar, - pub sdl_index: ::c_ushort, - pub sdl_type: ::c_uchar, - pub sdl_nlen: ::c_uchar, - pub sdl_alen: ::c_uchar, - pub sdl_slen: ::c_uchar, - pub sdl_data: [::c_char; 120], + pub sdl_len: c_uchar, + pub sdl_family: c_uchar, + pub sdl_index: c_ushort, + pub sdl_type: c_uchar, + pub sdl_nlen: c_uchar, + pub sdl_alen: c_uchar, + pub sdl_slen: c_uchar, + pub sdl_data: [c_char; 120], } pub struct sockaddr_in { - pub sin_len: ::c_uchar, + pub sin_len: c_uchar, pub sin_family: sa_family_t, pub sin_port: in_port_t, pub sin_addr: in_addr, - pub sin_zero: [::c_char; 8], + pub sin_zero: [c_char; 8], } pub struct sockaddr_in6 { - pub sin6_len: ::c_uchar, - pub sin6_family: ::c_uchar, - pub sin6_port: ::uint16_t, - pub sin6_flowinfo: ::uint32_t, - pub sin6_addr: ::in6_addr, - pub sin6_scope_id: ::uint32_t, + pub sin6_len: c_uchar, + pub sin6_family: c_uchar, + pub sin6_port: crate::uint16_t, + pub sin6_flowinfo: crate::uint32_t, + pub sin6_addr: crate::in6_addr, + pub sin6_scope_id: crate::uint32_t, } pub struct sockaddr_storage { - pub __ss_len: ::c_uchar, + pub __ss_len: c_uchar, pub ss_family: sa_family_t, - __ss_pad1: [::c_char; 6], - __ss_align: ::int64_t, - __ss_pad2: [::c_char; 1265], + __ss_pad1: [c_char; 6], + __ss_align: crate::int64_t, + __ss_pad2: [c_char; 1265], } pub struct sockaddr_un { - pub sun_len: ::c_uchar, + pub sun_len: c_uchar, pub sun_family: sa_family_t, - pub sun_path: [::c_char; 1023], + pub sun_path: [c_char; 1023], } pub struct st_timespec { - pub tv_sec: ::time_t, - pub tv_nsec: ::c_int, + pub tv_sec: crate::time_t, + pub tv_nsec: c_int, } pub struct statfs64 { - pub f_version: ::c_int, - pub f_type: ::c_int, + pub f_version: c_int, + pub f_type: c_int, pub f_bsize: blksize64_t, pub f_blocks: blkcnt64_t, pub f_bfree: blkcnt64_t, pub f_bavail: blkcnt64_t, - pub f_files: ::uint64_t, - pub f_ffree: ::uint64_t, + pub f_files: crate::uint64_t, + pub f_ffree: crate::uint64_t, pub f_fsid: fsid64_t, - pub f_vfstype: ::c_int, + pub f_vfstype: c_int, pub f_fsize: blksize64_t, - 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 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 passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, + pub pw_name: *mut c_char, + pub pw_passwd: *mut c_char, + pub pw_uid: crate::uid_t, + pub pw_gid: crate::gid_t, + pub pw_gecos: *mut c_char, + pub pw_dir: *mut c_char, + pub pw_shell: *mut c_char, } pub struct utsname { - pub sysname: [::c_char; 32], - pub nodename: [::c_char; 32], - pub release: [::c_char; 32], - pub version: [::c_char; 32], - pub machine: [::c_char; 32], + pub sysname: [c_char; 32], + pub nodename: [c_char; 32], + pub release: [c_char; 32], + pub version: [c_char; 32], + pub machine: [c_char; 32], } pub struct xutsname { - pub nid: ::c_uint, - pub reserved: ::c_int, - pub longnid: ::c_ulonglong, + pub nid: c_uint, + pub reserved: c_int, + pub longnid: c_ulonglong, } pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub cmsg_len: crate::socklen_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } pub struct sigevent { - pub sigev_value: ::sigval, - pub sigev_signo: ::c_int, - pub sigev_notify: ::c_int, - pub sigev_notify_function: extern "C" fn(val: ::sigval), + pub sigev_value: crate::sigval, + pub sigev_signo: c_int, + pub sigev_notify: c_int, + pub sigev_notify_function: extern "C" fn(val: crate::sigval), pub sigev_notify_attributes: *mut pthread_attr_t, } // Should be union with another 'sival_int' pub struct sigval64 { - pub sival_ptr: ::c_ulonglong, + pub sival_ptr: c_ulonglong, } pub struct sigevent64 { pub sigev_value: sigval64, - pub sigev_signo: ::c_int, - pub sigev_notify: ::c_int, - pub sigev_notify_function: ::c_ulonglong, - pub sigev_notify_attributes: ::c_ulonglong, + pub sigev_signo: c_int, + pub sigev_notify: c_int, + pub sigev_notify_function: c_ulonglong, + pub sigev_notify_attributes: c_ulonglong, } pub struct osigevent { - pub sevt_value: *mut ::c_void, + pub sevt_value: *mut c_void, pub sevt_signo: signal_t, } pub struct poll_ctl { - pub cmd: ::c_short, - pub events: ::c_short, - pub fd: ::c_int, + pub cmd: c_short, + pub events: c_short, + pub fd: c_int, } pub struct sf_parms { - pub header_data: *mut ::c_void, - pub header_length: ::c_uint, - pub file_descriptor: ::c_int, - pub file_size: ::uint64_t, - pub file_offset: ::uint64_t, - pub file_bytes: ::int64_t, - pub trailer_data: *mut ::c_void, - pub trailer_length: ::c_uint, - pub bytes_sent: ::uint64_t, + pub header_data: *mut c_void, + pub header_length: c_uint, + pub file_descriptor: c_int, + pub file_size: crate::uint64_t, + pub file_offset: crate::uint64_t, + pub file_bytes: crate::int64_t, + pub trailer_data: *mut c_void, + pub trailer_length: c_uint, + pub bytes_sent: crate::uint64_t, } pub struct mmsghdr { - pub msg_hdr: ::msghdr, - pub msg_len: ::c_uint, + pub msg_hdr: crate::msghdr, + pub msg_len: c_uint, } pub struct sched_param { - pub sched_priority: ::c_int, - pub sched_policy: ::c_int, - pub sched_reserved: [::c_int; 6], + pub sched_priority: c_int, + pub sched_policy: c_int, + pub sched_reserved: [c_int; 6], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, - pub __pad: [::c_int; 4], + pub ss_sp: *mut c_void, + pub ss_size: size_t, + pub ss_flags: c_int, + pub __pad: [c_int; 4], } pub struct posix_spawnattr_t { - pub posix_attr_flags: ::c_short, - pub posix_attr_pgroup: ::pid_t, - pub posix_attr_sigmask: ::sigset_t, - pub posix_attr_sigdefault: ::sigset_t, - pub posix_attr_schedpolicy: ::c_int, + pub posix_attr_flags: c_short, + pub posix_attr_pgroup: crate::pid_t, + pub posix_attr_sigmask: crate::sigset_t, + pub posix_attr_sigdefault: crate::sigset_t, + pub posix_attr_schedpolicy: c_int, pub posix_attr_schedparam: sched_param, } pub struct glob_t { - pub gl_pathc: ::size_t, + pub gl_pathc: size_t, pub gl_pathv: *mut *mut c_char, - pub gl_offs: ::size_t, - pub gl_padr: *mut ::c_void, - pub gl_ptx: *mut ::c_void, + pub gl_offs: size_t, + pub gl_padr: *mut c_void, + pub gl_ptx: *mut c_void, } pub struct mallinfo { - pub arena: ::c_ulong, - pub ordblks: ::c_int, - pub smblks: ::c_int, - pub hblks: ::c_int, - pub hblkhd: ::c_int, - pub usmblks: ::c_ulong, - pub fsmblks: ::c_ulong, - pub uordblks: ::c_ulong, - pub fordblks: ::c_ulong, - pub keepcost: ::c_int, + pub arena: c_ulong, + pub ordblks: c_int, + pub smblks: c_int, + pub hblks: c_int, + pub hblkhd: c_int, + pub usmblks: c_ulong, + pub fsmblks: c_ulong, + pub uordblks: c_ulong, + pub fordblks: c_ulong, + pub keepcost: c_int, } pub struct utmp_exit_status { - pub e_termination: ::c_short, - pub e_exit: ::c_short, + pub e_termination: c_short, + pub e_exit: c_short, } pub struct utmp { - 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_user: [c_char; 256], + pub ut_id: [c_char; 14], + pub ut_line: [c_char; 64], + pub ut_pid: crate::pid_t, + pub ut_type: c_short, pub ut_time: time64_t, pub ut_exit: utmp_exit_status, - pub ut_host: [::c_char; 256], - pub __dbl_word_pad: ::c_int, - pub __reservedA: [::c_int; 2], - pub __reservedV: [::c_int; 6], + pub ut_host: [c_char; 256], + pub __dbl_word_pad: c_int, + pub __reservedA: [c_int; 2], + pub __reservedV: [c_int; 6], } pub struct regmatch_t { @@ -426,17 +431,17 @@ s! { } pub struct regex_t { - pub re_nsub: ::size_t, - pub re_comp: *mut ::c_void, - pub re_cflags: ::c_int, - pub re_erroff: ::size_t, - pub re_len: ::size_t, - pub re_ucoll: [::wchar_t; 2], - pub re_lsub: [*mut ::c_void; 24], - pub re_esub: [*mut ::c_void; 24], - pub re_map: *mut ::c_uchar, - pub __maxsub: ::c_int, - pub __unused: [*mut ::c_void; 34], + pub re_nsub: size_t, + pub re_comp: *mut c_void, + pub re_cflags: c_int, + pub re_erroff: size_t, + pub re_len: size_t, + pub re_ucoll: [crate::wchar_t; 2], + pub re_lsub: [*mut c_void; 24], + pub re_esub: [*mut c_void; 24], + pub re_map: *mut c_uchar, + pub __maxsub: c_int, + pub __unused: [*mut c_void; 34], } pub struct rlimit64 { @@ -446,20 +451,20 @@ 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_segsz: size_t, + pub shm_lpid: crate::pid_t, + pub shm_cpid: crate::pid_t, pub shm_nattch: shmatt_t, pub shm_cnattch: shmatt_t, pub shm_atime: time_t, pub shm_dtime: time_t, pub shm_ctime: time_t, - pub shm_handle: ::uint32_t, - pub shm_extshm: ::c_int, - pub shm_pagesize: ::int64_t, - pub shm_lba: ::uint64_t, - pub shm_reserved: ::int64_t, - pub shm_reserved1: ::int64_t, + pub shm_handle: crate::uint32_t, + pub shm_extshm: c_int, + pub shm_pagesize: crate::int64_t, + pub shm_lba: crate::uint64_t, + pub shm_reserved: crate::int64_t, + pub shm_reserved1: crate::int64_t, } pub struct stat64 { @@ -467,87 +472,87 @@ s! { 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_flag: c_ushort, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, pub st_rdev: dev_t, - pub st_ssize: ::c_int, + pub st_ssize: c_int, pub st_atim: st_timespec, pub st_mtim: st_timespec, pub st_ctim: 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; 10], + 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; 10], pub st_size: off64_t, } pub struct mntent { - pub mnt_fsname: *mut ::c_char, - pub mnt_dir: *mut ::c_char, - pub mnt_type: *mut ::c_char, - pub mnt_opts: *mut ::c_char, - pub mnt_freq: ::c_int, - pub mnt_passno: ::c_int, + pub mnt_fsname: *mut c_char, + pub mnt_dir: *mut c_char, + pub mnt_type: *mut c_char, + pub mnt_opts: *mut c_char, + pub mnt_freq: c_int, + pub mnt_passno: c_int, } pub struct ipc_perm { - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, pub mode: mode_t, - pub seq: ::c_ushort, - pub __reserved: ::c_ushort, + pub seq: c_ushort, + pub __reserved: c_ushort, pub key: key_t, } pub struct entry { - pub key: *mut ::c_char, - pub data: *mut ::c_void, + pub key: *mut c_char, + pub data: *mut c_void, } pub struct mq_attr { - pub mq_flags: ::c_long, - pub mq_maxmsg: ::c_long, - pub mq_msgsize: ::c_long, - pub mq_curmsgs: ::c_long, + pub mq_flags: c_long, + pub mq_maxmsg: c_long, + pub mq_msgsize: c_long, + pub mq_curmsgs: c_long, } pub struct sembuf { - pub sem_num: ::c_ushort, - pub sem_op: ::c_short, - pub sem_flg: ::c_short, + pub sem_num: c_ushort, + pub sem_op: c_short, + pub sem_flg: c_short, } pub struct if_nameindex { - pub if_index: ::c_uint, - pub if_name: *mut ::c_char, + pub if_index: c_uint, + pub if_name: *mut c_char, } pub struct itimerspec { - pub it_interval: ::timespec, - pub it_value: ::timespec, + pub it_interval: crate::timespec, + pub it_value: crate::timespec, } } s_no_extra_traits! { pub union __sigaction_sa_union { - pub __su_handler: extern "C" fn(c: ::c_int), - pub __su_sigaction: extern "C" fn(c: ::c_int, info: *mut siginfo_t, ptr: *mut ::c_void), + pub __su_handler: extern "C" fn(c: c_int), + pub __su_sigaction: extern "C" fn(c: c_int, info: *mut siginfo_t, ptr: *mut c_void), } pub struct sigaction { pub sa_union: __sigaction_sa_union, pub sa_mask: sigset_t, - pub sa_flags: ::c_int, + pub sa_flags: c_int, } pub union __poll_ctl_ext_u { - pub addr: *mut ::c_void, + pub addr: *mut c_void, pub data32: u32, pub data: u64, } @@ -555,8 +560,8 @@ s_no_extra_traits! { pub struct poll_ctl_ext { pub version: u8, pub command: u8, - pub events: ::c_short, - pub fd: ::c_int, + pub events: c_short, + pub fd: c_int, pub u: __poll_ctl_ext_u, pub reversed64: [u64; 6], } @@ -573,16 +578,16 @@ cfg_if! { } } impl Eq for __sigaction_sa_union {} - impl ::fmt::Debug for __sigaction_sa_union { - fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { + impl crate::fmt::Debug for __sigaction_sa_union { + fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { f.debug_struct("__sigaction_sa_union") .field("__su_handler", unsafe { &self.__su_handler }) .field("__su_sigaction", unsafe { &self.__su_sigaction }) .finish() } } - impl ::hash::Hash for __sigaction_sa_union { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __sigaction_sa_union { + fn hash(&self, state: &mut H) { unsafe { self.__su_handler.hash(state); self.__su_sigaction.hash(state); @@ -598,8 +603,8 @@ cfg_if! { } } impl Eq for sigaction {} - impl ::fmt::Debug for sigaction { - fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { + impl crate::fmt::Debug for sigaction { + fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { f.debug_struct("sigaction") .field("sa_union", &self.sa_union) .field("sa_mask", &self.sa_mask) @@ -607,8 +612,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sigaction { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sigaction { + fn hash(&self, state: &mut H) { self.sa_union.hash(state); self.sa_mask.hash(state); self.sa_flags.hash(state); @@ -625,8 +630,8 @@ cfg_if! { } } impl Eq for __poll_ctl_ext_u {} - impl ::fmt::Debug for __poll_ctl_ext_u { - fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { + impl crate::fmt::Debug for __poll_ctl_ext_u { + fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { f.debug_struct("__poll_ctl_ext_u") .field("addr", unsafe { &self.addr }) .field("data32", unsafe { &self.data32 }) @@ -634,8 +639,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for __poll_ctl_ext_u { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __poll_ctl_ext_u { + fn hash(&self, state: &mut H) { unsafe { self.addr.hash(state); self.data32.hash(state); @@ -655,8 +660,8 @@ cfg_if! { } } impl Eq for poll_ctl_ext {} - impl ::fmt::Debug for poll_ctl_ext { - fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { + impl crate::fmt::Debug for poll_ctl_ext { + fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { f.debug_struct("poll_ctl_ext") .field("version", &self.version) .field("command", &self.command) @@ -667,8 +672,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for poll_ctl_ext { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for poll_ctl_ext { + fn hash(&self, state: &mut H) { self.version.hash(state); self.command.hash(state); self.events.hash(state); @@ -681,157 +686,157 @@ cfg_if! { } // dlfcn.h -pub const RTLD_LAZY: ::c_int = 0x4; -pub const RTLD_NOW: ::c_int = 0x2; -pub const RTLD_GLOBAL: ::c_int = 0x10000; -pub const RTLD_LOCAL: ::c_int = 0x80000; -pub const RTLD_MEMBER: ::c_int = 0x40000; -pub const RTLD_NOAUTODEFER: ::c_int = 0x20000; -pub const RTLD_DEFAULT: *mut ::c_void = -1isize as *mut ::c_void; -pub const RTLD_MYSELF: *mut ::c_void = -2isize as *mut ::c_void; -pub const RTLD_NEXT: *mut ::c_void = -3isize as *mut ::c_void; +pub const RTLD_LAZY: c_int = 0x4; +pub const RTLD_NOW: c_int = 0x2; +pub const RTLD_GLOBAL: c_int = 0x10000; +pub const RTLD_LOCAL: c_int = 0x80000; +pub const RTLD_MEMBER: c_int = 0x40000; +pub const RTLD_NOAUTODEFER: c_int = 0x20000; +pub const RTLD_DEFAULT: *mut c_void = -1isize as *mut c_void; +pub const RTLD_MYSELF: *mut c_void = -2isize as *mut c_void; +pub const RTLD_NEXT: *mut c_void = -3isize as *mut c_void; // fcntl.h -pub const O_RDONLY: ::c_int = 0x0; -pub const O_WRONLY: ::c_int = 0x1; -pub const O_RDWR: ::c_int = 0x2; -pub const O_NDELAY: ::c_int = 0x8000; -pub const O_APPEND: ::c_int = 0x8; -pub const O_DSYNC: ::c_int = 0x400000; -pub const O_CREAT: ::c_int = 0x100; -pub const O_EXCL: ::c_int = 0x400; -pub const O_NOCTTY: ::c_int = 0x800; -pub const O_TRUNC: ::c_int = 0x200; -pub const O_NOFOLLOW: ::c_int = 0x1000000; -pub const O_DIRECTORY: ::c_int = 0x80000; -pub const O_SEARCH: ::c_int = 0x20; -pub const O_EXEC: ::c_int = 0x20; -pub const O_CLOEXEC: ::c_int = 0x800000; -pub const O_ACCMODE: ::c_int = O_RDONLY | O_WRONLY | O_RDWR; -pub const O_DIRECT: ::c_int = 0x8000000; -pub const O_TTY_INIT: ::c_int = 0; -pub const O_RSYNC: ::c_int = 0x200000; -pub const O_LARGEFILE: ::c_int = 0x4000000; -pub const F_CLOSEM: ::c_int = 10; -pub const F_DUPFD_CLOEXEC: ::c_int = 16; -pub const F_GETLK64: ::c_int = 11; -pub const F_SETLK64: ::c_int = 12; -pub const F_SETLKW64: ::c_int = 13; -pub const F_DUP2FD: ::c_int = 14; -pub const F_TSTLK: ::c_int = 15; -pub const F_GETLK: ::c_int = F_GETLK64; -pub const F_SETLK: ::c_int = F_SETLK64; -pub const F_SETLKW: ::c_int = F_SETLKW64; -pub const F_GETOWN: ::c_int = 8; -pub const F_SETOWN: ::c_int = 9; -pub const AT_FDCWD: ::c_int = -2; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 1; -pub const AT_SYMLINK_FOLLOW: ::c_int = 2; -pub const AT_REMOVEDIR: ::c_int = 1; -pub const AT_EACCESS: ::c_int = 1; -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; -pub const O_SYNC: ::c_int = 16; -pub const O_NONBLOCK: ::c_int = 4; -pub const FASYNC: ::c_int = 0x20000; -pub const POSIX_FADV_NORMAL: ::c_int = 1; -pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_FADV_RANDOM: ::c_int = 3; -pub const POSIX_FADV_WILLNEED: ::c_int = 4; -pub const POSIX_FADV_DONTNEED: ::c_int = 5; -pub const POSIX_FADV_NOREUSE: ::c_int = 6; +pub const O_RDONLY: c_int = 0x0; +pub const O_WRONLY: c_int = 0x1; +pub const O_RDWR: c_int = 0x2; +pub const O_NDELAY: c_int = 0x8000; +pub const O_APPEND: c_int = 0x8; +pub const O_DSYNC: c_int = 0x400000; +pub const O_CREAT: c_int = 0x100; +pub const O_EXCL: c_int = 0x400; +pub const O_NOCTTY: c_int = 0x800; +pub const O_TRUNC: c_int = 0x200; +pub const O_NOFOLLOW: c_int = 0x1000000; +pub const O_DIRECTORY: c_int = 0x80000; +pub const O_SEARCH: c_int = 0x20; +pub const O_EXEC: c_int = 0x20; +pub const O_CLOEXEC: c_int = 0x800000; +pub const O_ACCMODE: c_int = O_RDONLY | O_WRONLY | O_RDWR; +pub const O_DIRECT: c_int = 0x8000000; +pub const O_TTY_INIT: c_int = 0; +pub const O_RSYNC: c_int = 0x200000; +pub const O_LARGEFILE: c_int = 0x4000000; +pub const F_CLOSEM: c_int = 10; +pub const F_DUPFD_CLOEXEC: c_int = 16; +pub const F_GETLK64: c_int = 11; +pub const F_SETLK64: c_int = 12; +pub const F_SETLKW64: c_int = 13; +pub const F_DUP2FD: c_int = 14; +pub const F_TSTLK: c_int = 15; +pub const F_GETLK: c_int = F_GETLK64; +pub const F_SETLK: c_int = F_SETLK64; +pub const F_SETLKW: c_int = F_SETLKW64; +pub const F_GETOWN: c_int = 8; +pub const F_SETOWN: c_int = 9; +pub const AT_FDCWD: c_int = -2; +pub const AT_SYMLINK_NOFOLLOW: c_int = 1; +pub const AT_SYMLINK_FOLLOW: c_int = 2; +pub const AT_REMOVEDIR: c_int = 1; +pub const AT_EACCESS: c_int = 1; +pub const F_DUPFD: c_int = 0; +pub const F_GETFD: c_int = 1; +pub const F_SETFD: c_int = 2; +pub const F_GETFL: c_int = 3; +pub const F_SETFL: c_int = 4; +pub const O_SYNC: c_int = 16; +pub const O_NONBLOCK: c_int = 4; +pub const FASYNC: c_int = 0x20000; +pub const POSIX_FADV_NORMAL: c_int = 1; +pub const POSIX_FADV_SEQUENTIAL: c_int = 2; +pub const POSIX_FADV_RANDOM: c_int = 3; +pub const POSIX_FADV_WILLNEED: c_int = 4; +pub const POSIX_FADV_DONTNEED: c_int = 5; +pub const POSIX_FADV_NOREUSE: c_int = 6; // glob.h -pub const GLOB_APPEND: ::c_int = 0x1; -pub const GLOB_DOOFFS: ::c_int = 0x2; -pub const GLOB_ERR: ::c_int = 0x4; -pub const GLOB_MARK: ::c_int = 0x8; -pub const GLOB_NOCHECK: ::c_int = 0x10; -pub const GLOB_NOSORT: ::c_int = 0x20; -pub const GLOB_NOESCAPE: ::c_int = 0x80; -pub const GLOB_NOSPACE: ::c_int = 0x2000; -pub const GLOB_ABORTED: ::c_int = 0x1000; -pub const GLOB_NOMATCH: ::c_int = 0x4000; -pub const GLOB_NOSYS: ::c_int = 0x8000; +pub const GLOB_APPEND: c_int = 0x1; +pub const GLOB_DOOFFS: c_int = 0x2; +pub const GLOB_ERR: c_int = 0x4; +pub const GLOB_MARK: c_int = 0x8; +pub const GLOB_NOCHECK: c_int = 0x10; +pub const GLOB_NOSORT: c_int = 0x20; +pub const GLOB_NOESCAPE: c_int = 0x80; +pub const GLOB_NOSPACE: c_int = 0x2000; +pub const GLOB_ABORTED: c_int = 0x1000; +pub const GLOB_NOMATCH: c_int = 0x4000; +pub const GLOB_NOSYS: c_int = 0x8000; // langinfo.h -pub const DAY_1: ::nl_item = 13; -pub const DAY_2: ::nl_item = 14; -pub const DAY_3: ::nl_item = 15; -pub const DAY_4: ::nl_item = 16; -pub const DAY_5: ::nl_item = 17; -pub const DAY_6: ::nl_item = 18; -pub const DAY_7: ::nl_item = 19; -pub const ABDAY_1: ::nl_item = 6; -pub const ABDAY_2: ::nl_item = 7; -pub const ABDAY_3: ::nl_item = 8; -pub const ABDAY_4: ::nl_item = 9; -pub const ABDAY_5: ::nl_item = 10; -pub const ABDAY_6: ::nl_item = 11; -pub const ABDAY_7: ::nl_item = 12; -pub const MON_1: ::nl_item = 32; -pub const MON_2: ::nl_item = 33; -pub const MON_3: ::nl_item = 34; -pub const MON_4: ::nl_item = 35; -pub const MON_5: ::nl_item = 36; -pub const MON_6: ::nl_item = 37; -pub const MON_7: ::nl_item = 38; -pub const MON_8: ::nl_item = 39; -pub const MON_9: ::nl_item = 40; -pub const MON_10: ::nl_item = 41; -pub const MON_11: ::nl_item = 42; -pub const MON_12: ::nl_item = 43; -pub const ABMON_1: ::nl_item = 20; -pub const ABMON_2: ::nl_item = 21; -pub const ABMON_3: ::nl_item = 22; -pub const ABMON_4: ::nl_item = 23; -pub const ABMON_5: ::nl_item = 24; -pub const ABMON_6: ::nl_item = 25; -pub const ABMON_7: ::nl_item = 26; -pub const ABMON_8: ::nl_item = 27; -pub const ABMON_9: ::nl_item = 28; -pub const ABMON_10: ::nl_item = 29; -pub const ABMON_11: ::nl_item = 30; -pub const ABMON_12: ::nl_item = 31; -pub const RADIXCHAR: ::nl_item = 44; -pub const THOUSEP: ::nl_item = 45; -pub const YESSTR: ::nl_item = 46; -pub const NOSTR: ::nl_item = 47; -pub const CRNCYSTR: ::nl_item = 48; -pub const D_T_FMT: ::nl_item = 1; -pub const D_FMT: ::nl_item = 2; -pub const T_FMT: ::nl_item = 3; -pub const AM_STR: ::nl_item = 4; -pub const PM_STR: ::nl_item = 5; -pub const CODESET: ::nl_item = 49; -pub const T_FMT_AMPM: ::nl_item = 55; -pub const ERA: ::nl_item = 56; -pub const ERA_D_FMT: ::nl_item = 57; -pub const ERA_D_T_FMT: ::nl_item = 58; -pub const ERA_T_FMT: ::nl_item = 59; -pub const ALT_DIGITS: ::nl_item = 60; -pub const YESEXPR: ::nl_item = 61; -pub const NOEXPR: ::nl_item = 62; +pub const DAY_1: crate::nl_item = 13; +pub const DAY_2: crate::nl_item = 14; +pub const DAY_3: crate::nl_item = 15; +pub const DAY_4: crate::nl_item = 16; +pub const DAY_5: crate::nl_item = 17; +pub const DAY_6: crate::nl_item = 18; +pub const DAY_7: crate::nl_item = 19; +pub const ABDAY_1: crate::nl_item = 6; +pub const ABDAY_2: crate::nl_item = 7; +pub const ABDAY_3: crate::nl_item = 8; +pub const ABDAY_4: crate::nl_item = 9; +pub const ABDAY_5: crate::nl_item = 10; +pub const ABDAY_6: crate::nl_item = 11; +pub const ABDAY_7: crate::nl_item = 12; +pub const MON_1: crate::nl_item = 32; +pub const MON_2: crate::nl_item = 33; +pub const MON_3: crate::nl_item = 34; +pub const MON_4: crate::nl_item = 35; +pub const MON_5: crate::nl_item = 36; +pub const MON_6: crate::nl_item = 37; +pub const MON_7: crate::nl_item = 38; +pub const MON_8: crate::nl_item = 39; +pub const MON_9: crate::nl_item = 40; +pub const MON_10: crate::nl_item = 41; +pub const MON_11: crate::nl_item = 42; +pub const MON_12: crate::nl_item = 43; +pub const ABMON_1: crate::nl_item = 20; +pub const ABMON_2: crate::nl_item = 21; +pub const ABMON_3: crate::nl_item = 22; +pub const ABMON_4: crate::nl_item = 23; +pub const ABMON_5: crate::nl_item = 24; +pub const ABMON_6: crate::nl_item = 25; +pub const ABMON_7: crate::nl_item = 26; +pub const ABMON_8: crate::nl_item = 27; +pub const ABMON_9: crate::nl_item = 28; +pub const ABMON_10: crate::nl_item = 29; +pub const ABMON_11: crate::nl_item = 30; +pub const ABMON_12: crate::nl_item = 31; +pub const RADIXCHAR: crate::nl_item = 44; +pub const THOUSEP: crate::nl_item = 45; +pub const YESSTR: crate::nl_item = 46; +pub const NOSTR: crate::nl_item = 47; +pub const CRNCYSTR: crate::nl_item = 48; +pub const D_T_FMT: crate::nl_item = 1; +pub const D_FMT: crate::nl_item = 2; +pub const T_FMT: crate::nl_item = 3; +pub const AM_STR: crate::nl_item = 4; +pub const PM_STR: crate::nl_item = 5; +pub const CODESET: crate::nl_item = 49; +pub const T_FMT_AMPM: crate::nl_item = 55; +pub const ERA: crate::nl_item = 56; +pub const ERA_D_FMT: crate::nl_item = 57; +pub const ERA_D_T_FMT: crate::nl_item = 58; +pub const ERA_T_FMT: crate::nl_item = 59; +pub const ALT_DIGITS: crate::nl_item = 60; +pub const YESEXPR: crate::nl_item = 61; +pub const NOEXPR: crate::nl_item = 62; // locale.h -pub const LC_GLOBAL_LOCALE: ::locale_t = -1isize as ::locale_t; -pub const LC_CTYPE: ::c_int = 1; -pub const LC_NUMERIC: ::c_int = 3; -pub const LC_TIME: ::c_int = 4; -pub const LC_COLLATE: ::c_int = 0; -pub const LC_MONETARY: ::c_int = 2; -pub const LC_MESSAGES: ::c_int = 4; -pub const LC_ALL: ::c_int = -1; -pub const LC_CTYPE_MASK: ::c_int = 2; -pub const LC_NUMERIC_MASK: ::c_int = 16; -pub const LC_TIME_MASK: ::c_int = 32; -pub const LC_COLLATE_MASK: ::c_int = 1; -pub const LC_MONETARY_MASK: ::c_int = 8; -pub const LC_MESSAGES_MASK: ::c_int = 4; -pub const LC_ALL_MASK: ::c_int = LC_CTYPE_MASK +pub const LC_GLOBAL_LOCALE: crate::locale_t = -1isize as crate::locale_t; +pub const LC_CTYPE: c_int = 1; +pub const LC_NUMERIC: c_int = 3; +pub const LC_TIME: c_int = 4; +pub const LC_COLLATE: c_int = 0; +pub const LC_MONETARY: c_int = 2; +pub const LC_MESSAGES: c_int = 4; +pub const LC_ALL: c_int = -1; +pub const LC_CTYPE_MASK: c_int = 2; +pub const LC_NUMERIC_MASK: c_int = 16; +pub const LC_TIME_MASK: c_int = 32; +pub const LC_COLLATE_MASK: c_int = 1; +pub const LC_MONETARY_MASK: c_int = 8; +pub const LC_MESSAGES_MASK: c_int = 4; +pub const LC_ALL_MASK: c_int = LC_CTYPE_MASK | LC_NUMERIC_MASK | LC_TIME_MASK | LC_COLLATE_MASK @@ -839,758 +844,758 @@ pub const LC_ALL_MASK: ::c_int = LC_CTYPE_MASK | LC_MESSAGES_MASK; // netdb.h -pub const NI_MAXHOST: ::socklen_t = 1025; -pub const NI_MAXSERV: ::socklen_t = 32; -pub const NI_NOFQDN: ::socklen_t = 0x1; -pub const NI_NUMERICHOST: ::socklen_t = 0x2; -pub const NI_NAMEREQD: ::socklen_t = 0x4; -pub const NI_NUMERICSERV: ::socklen_t = 0x8; -pub const NI_DGRAM: ::socklen_t = 0x10; -pub const NI_NUMERICSCOPE: ::socklen_t = 0x40; -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_FAMILY: ::c_int = 5; -pub const EAI_MEMORY: ::c_int = 6; -pub const EAI_NODATA: ::c_int = 7; -pub const EAI_NONAME: ::c_int = 8; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_OVERFLOW: ::c_int = 13; -pub const AI_CANONNAME: ::c_int = 0x01; -pub const AI_PASSIVE: ::c_int = 0x02; -pub const AI_NUMERICHOST: ::c_int = 0x04; -pub const AI_ADDRCONFIG: ::c_int = 0x08; -pub const AI_V4MAPPED: ::c_int = 0x10; -pub const AI_ALL: ::c_int = 0x20; -pub const AI_NUMERICSERV: ::c_int = 0x40; -pub const AI_EXTFLAGS: ::c_int = 0x80; -pub const AI_DEFAULT: ::c_int = AI_V4MAPPED | AI_ADDRCONFIG; -pub const IPV6_ADDRFORM: ::c_int = 22; -pub const IPV6_ADDR_PREFERENCES: ::c_int = 74; -pub const IPV6_CHECKSUM: ::c_int = 39; -pub const IPV6_DONTFRAG: ::c_int = 45; -pub const IPV6_DSTOPTS: ::c_int = 54; -pub const IPV6_FLOWINFO_FLOWLABEL: ::c_int = 16777215; -pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 251658240; -pub const IPV6_HOPLIMIT: ::c_int = 40; -pub const IPV6_HOPOPTS: ::c_int = 52; -pub const IPV6_NEXTHOP: ::c_int = 48; -pub const IPV6_PATHMTU: ::c_int = 46; -pub const IPV6_PKTINFO: ::c_int = 33; -pub const IPV6_PREFER_SRC_CGA: ::c_int = 16; -pub const IPV6_PREFER_SRC_COA: ::c_int = 2; -pub const IPV6_PREFER_SRC_HOME: ::c_int = 1; -pub const IPV6_PREFER_SRC_NONCGA: ::c_int = 32; -pub const IPV6_PREFER_SRC_PUBLIC: ::c_int = 4; -pub const IPV6_PREFER_SRC_TMP: ::c_int = 8; -pub const IPV6_RECVDSTOPTS: ::c_int = 56; -pub const IPV6_RECVHOPLIMIT: ::c_int = 41; -pub const IPV6_RECVHOPOPTS: ::c_int = 53; -pub const IPV6_RECVPATHMTU: ::c_int = 47; -pub const IPV6_RECVRTHDR: ::c_int = 51; -pub const IPV6_RECVTCLASS: ::c_int = 42; -pub const IPV6_RTHDR: ::c_int = 50; -pub const IPV6_RTHDRDSTOPTS: ::c_int = 55; -pub const IPV6_TCLASS: ::c_int = 43; +pub const NI_MAXHOST: crate::socklen_t = 1025; +pub const NI_MAXSERV: crate::socklen_t = 32; +pub const NI_NOFQDN: crate::socklen_t = 0x1; +pub const NI_NUMERICHOST: crate::socklen_t = 0x2; +pub const NI_NAMEREQD: crate::socklen_t = 0x4; +pub const NI_NUMERICSERV: crate::socklen_t = 0x8; +pub const NI_DGRAM: crate::socklen_t = 0x10; +pub const NI_NUMERICSCOPE: crate::socklen_t = 0x40; +pub const EAI_AGAIN: c_int = 2; +pub const EAI_BADFLAGS: c_int = 3; +pub const EAI_FAIL: c_int = 4; +pub const EAI_FAMILY: c_int = 5; +pub const EAI_MEMORY: c_int = 6; +pub const EAI_NODATA: c_int = 7; +pub const EAI_NONAME: c_int = 8; +pub const EAI_SERVICE: c_int = 9; +pub const EAI_SOCKTYPE: c_int = 10; +pub const EAI_SYSTEM: c_int = 11; +pub const EAI_OVERFLOW: c_int = 13; +pub const AI_CANONNAME: c_int = 0x01; +pub const AI_PASSIVE: c_int = 0x02; +pub const AI_NUMERICHOST: c_int = 0x04; +pub const AI_ADDRCONFIG: c_int = 0x08; +pub const AI_V4MAPPED: c_int = 0x10; +pub const AI_ALL: c_int = 0x20; +pub const AI_NUMERICSERV: c_int = 0x40; +pub const AI_EXTFLAGS: c_int = 0x80; +pub const AI_DEFAULT: c_int = AI_V4MAPPED | AI_ADDRCONFIG; +pub const IPV6_ADDRFORM: c_int = 22; +pub const IPV6_ADDR_PREFERENCES: c_int = 74; +pub const IPV6_CHECKSUM: c_int = 39; +pub const IPV6_DONTFRAG: c_int = 45; +pub const IPV6_DSTOPTS: c_int = 54; +pub const IPV6_FLOWINFO_FLOWLABEL: c_int = 16777215; +pub const IPV6_FLOWINFO_PRIORITY: c_int = 251658240; +pub const IPV6_HOPLIMIT: c_int = 40; +pub const IPV6_HOPOPTS: c_int = 52; +pub const IPV6_NEXTHOP: c_int = 48; +pub const IPV6_PATHMTU: c_int = 46; +pub const IPV6_PKTINFO: c_int = 33; +pub const IPV6_PREFER_SRC_CGA: c_int = 16; +pub const IPV6_PREFER_SRC_COA: c_int = 2; +pub const IPV6_PREFER_SRC_HOME: c_int = 1; +pub const IPV6_PREFER_SRC_NONCGA: c_int = 32; +pub const IPV6_PREFER_SRC_PUBLIC: c_int = 4; +pub const IPV6_PREFER_SRC_TMP: c_int = 8; +pub const IPV6_RECVDSTOPTS: c_int = 56; +pub const IPV6_RECVHOPLIMIT: c_int = 41; +pub const IPV6_RECVHOPOPTS: c_int = 53; +pub const IPV6_RECVPATHMTU: c_int = 47; +pub const IPV6_RECVRTHDR: c_int = 51; +pub const IPV6_RECVTCLASS: c_int = 42; +pub const IPV6_RTHDR: c_int = 50; +pub const IPV6_RTHDRDSTOPTS: c_int = 55; +pub const IPV6_TCLASS: c_int = 43; // net/bpf.h -pub const DLT_NULL: ::c_int = 0x18; -pub const DLT_EN10MB: ::c_int = 0x6; -pub const DLT_EN3MB: ::c_int = 0x1a; -pub const DLT_AX25: ::c_int = 0x5; -pub const DLT_PRONET: ::c_int = 0xd; -pub const DLT_IEEE802: ::c_int = 0x7; -pub const DLT_ARCNET: ::c_int = 0x23; -pub const DLT_SLIP: ::c_int = 0x1c; -pub const DLT_PPP: ::c_int = 0x17; -pub const DLT_FDDI: ::c_int = 0xf; -pub const DLT_ATM: ::c_int = 0x25; -pub const DLT_IPOIB: ::c_int = 0xc7; -pub const BIOCSETF: ::c_ulong = 0x80104267; -pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; -pub const BIOCGBLEN: ::c_int = 0x40044266; -pub const BIOCSBLEN: ::c_int = 0xc0044266; -pub const BIOCFLUSH: ::c_int = 0x20004268; -pub const BIOCPROMISC: ::c_int = 0x20004269; -pub const BIOCGDLT: ::c_int = 0x4004426a; -pub const BIOCSRTIMEOUT: ::c_int = 0x8010426d; -pub const BIOCGSTATS: ::c_int = 0x4008426f; -pub const BIOCIMMEDIATE: ::c_int = 0x80044270; -pub const BIOCVERSION: ::c_int = 0x40044271; -pub const BIOCSDEVNO: ::c_int = 0x20004272; -pub const BIOCGETIF: ::c_ulong = 0x4020426b; -pub const BIOCSETIF: ::c_ulong = 0xffffffff8020426c; -pub const BPF_ABS: ::c_int = 32; -pub const BPF_ADD: ::c_int = 0; -pub const BPF_ALIGNMENT: ::c_ulong = 4; -pub const BPF_ALU: ::c_int = 4; -pub const BPF_AND: ::c_int = 80; -pub const BPF_B: ::c_int = 16; -pub const BPF_DIV: ::c_int = 48; -pub const BPF_H: ::c_int = 8; -pub const BPF_IMM: ::c_int = 0; -pub const BPF_IND: ::c_int = 64; -pub const BPF_JA: ::c_int = 0; -pub const BPF_JEQ: ::c_int = 16; -pub const BPF_JGE: ::c_int = 48; -pub const BPF_JGT: ::c_int = 32; -pub const BPF_JMP: ::c_int = 5; -pub const BPF_JSET: ::c_int = 64; -pub const BPF_K: ::c_int = 0; -pub const BPF_LD: ::c_int = 0; -pub const BPF_LDX: ::c_int = 1; -pub const BPF_LEN: ::c_int = 128; -pub const BPF_LSH: ::c_int = 96; -pub const BPF_MAXINSNS: ::c_int = 512; -pub const BPF_MEM: ::c_int = 96; -pub const BPF_MEMWORDS: ::c_int = 16; -pub const BPF_MISC: ::c_int = 7; -pub const BPF_MSH: ::c_int = 160; -pub const BPF_MUL: ::c_int = 32; -pub const BPF_NEG: ::c_int = 128; -pub const BPF_OR: ::c_int = 64; -pub const BPF_RET: ::c_int = 6; -pub const BPF_RSH: ::c_int = 112; -pub const BPF_ST: ::c_int = 2; -pub const BPF_STX: ::c_int = 3; -pub const BPF_SUB: ::c_int = 16; -pub const BPF_W: ::c_int = 0; -pub const BPF_X: ::c_int = 8; +pub const DLT_NULL: c_int = 0x18; +pub const DLT_EN10MB: c_int = 0x6; +pub const DLT_EN3MB: c_int = 0x1a; +pub const DLT_AX25: c_int = 0x5; +pub const DLT_PRONET: c_int = 0xd; +pub const DLT_IEEE802: c_int = 0x7; +pub const DLT_ARCNET: c_int = 0x23; +pub const DLT_SLIP: c_int = 0x1c; +pub const DLT_PPP: c_int = 0x17; +pub const DLT_FDDI: c_int = 0xf; +pub const DLT_ATM: c_int = 0x25; +pub const DLT_IPOIB: c_int = 0xc7; +pub const BIOCSETF: c_ulong = 0x80104267; +pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; +pub const BIOCGBLEN: c_int = 0x40044266; +pub const BIOCSBLEN: c_int = 0xc0044266; +pub const BIOCFLUSH: c_int = 0x20004268; +pub const BIOCPROMISC: c_int = 0x20004269; +pub const BIOCGDLT: c_int = 0x4004426a; +pub const BIOCSRTIMEOUT: c_int = 0x8010426d; +pub const BIOCGSTATS: c_int = 0x4008426f; +pub const BIOCIMMEDIATE: c_int = 0x80044270; +pub const BIOCVERSION: c_int = 0x40044271; +pub const BIOCSDEVNO: c_int = 0x20004272; +pub const BIOCGETIF: c_ulong = 0x4020426b; +pub const BIOCSETIF: c_ulong = 0xffffffff8020426c; +pub const BPF_ABS: c_int = 32; +pub const BPF_ADD: c_int = 0; +pub const BPF_ALIGNMENT: c_ulong = 4; +pub const BPF_ALU: c_int = 4; +pub const BPF_AND: c_int = 80; +pub const BPF_B: c_int = 16; +pub const BPF_DIV: c_int = 48; +pub const BPF_H: c_int = 8; +pub const BPF_IMM: c_int = 0; +pub const BPF_IND: c_int = 64; +pub const BPF_JA: c_int = 0; +pub const BPF_JEQ: c_int = 16; +pub const BPF_JGE: c_int = 48; +pub const BPF_JGT: c_int = 32; +pub const BPF_JMP: c_int = 5; +pub const BPF_JSET: c_int = 64; +pub const BPF_K: c_int = 0; +pub const BPF_LD: c_int = 0; +pub const BPF_LDX: c_int = 1; +pub const BPF_LEN: c_int = 128; +pub const BPF_LSH: c_int = 96; +pub const BPF_MAXINSNS: c_int = 512; +pub const BPF_MEM: c_int = 96; +pub const BPF_MEMWORDS: c_int = 16; +pub const BPF_MISC: c_int = 7; +pub const BPF_MSH: c_int = 160; +pub const BPF_MUL: c_int = 32; +pub const BPF_NEG: c_int = 128; +pub const BPF_OR: c_int = 64; +pub const BPF_RET: c_int = 6; +pub const BPF_RSH: c_int = 112; +pub const BPF_ST: c_int = 2; +pub const BPF_STX: c_int = 3; +pub const BPF_SUB: c_int = 16; +pub const BPF_W: c_int = 0; +pub const BPF_X: c_int = 8; // net/if.h -pub const IFNET_SLOWHZ: ::c_int = 1; -pub const IFQ_MAXLEN: ::c_int = 50; -pub const IFF_UP: ::c_int = 0x1; -pub const IFF_BROADCAST: ::c_int = 0x2; -pub const IFF_DEBUG: ::c_int = 0x4; -pub const IFF_LOOPBACK: ::c_int = 0x8; -pub const IFF_POINTOPOINT: ::c_int = 0x10; -pub const IFF_NOTRAILERS: ::c_int = 0x20; -pub const IFF_RUNNING: ::c_int = 0x40; -pub const IFF_NOARP: ::c_int = 0x80; -pub const IFF_PROMISC: ::c_int = 0x100; -pub const IFF_ALLMULTI: ::c_int = 0x200; -pub const IFF_MULTICAST: ::c_int = 0x80000; -pub const IFF_LINK0: ::c_int = 0x100000; -pub const IFF_LINK1: ::c_int = 0x200000; -pub const IFF_LINK2: ::c_int = 0x400000; -pub const IFF_OACTIVE: ::c_int = 0x400; -pub const IFF_SIMPLEX: ::c_int = 0x800; +pub const IFNET_SLOWHZ: c_int = 1; +pub const IFQ_MAXLEN: c_int = 50; +pub const IFF_UP: c_int = 0x1; +pub const IFF_BROADCAST: c_int = 0x2; +pub const IFF_DEBUG: c_int = 0x4; +pub const IFF_LOOPBACK: c_int = 0x8; +pub const IFF_POINTOPOINT: c_int = 0x10; +pub const IFF_NOTRAILERS: c_int = 0x20; +pub const IFF_RUNNING: c_int = 0x40; +pub const IFF_NOARP: c_int = 0x80; +pub const IFF_PROMISC: c_int = 0x100; +pub const IFF_ALLMULTI: c_int = 0x200; +pub const IFF_MULTICAST: c_int = 0x80000; +pub const IFF_LINK0: c_int = 0x100000; +pub const IFF_LINK1: c_int = 0x200000; +pub const IFF_LINK2: c_int = 0x400000; +pub const IFF_OACTIVE: c_int = 0x400; +pub const IFF_SIMPLEX: c_int = 0x800; // net/if_arp.h -pub const ARPHRD_ETHER: ::c_int = 1; -pub const ARPHRD_802_5: ::c_int = 6; -pub const ARPHRD_802_3: ::c_int = 6; -pub const ARPHRD_FDDI: ::c_int = 1; +pub const ARPHRD_ETHER: c_int = 1; +pub const ARPHRD_802_5: c_int = 6; +pub const ARPHRD_802_3: c_int = 6; +pub const ARPHRD_FDDI: c_int = 1; // net/route.h -pub const RTM_ADD: ::c_int = 0x1; -pub const RTM_DELETE: ::c_int = 0x2; -pub const RTM_CHANGE: ::c_int = 0x3; -pub const RTM_GET: ::c_int = 0x4; -pub const RTM_LOSING: ::c_int = 0x5; -pub const RTM_REDIRECT: ::c_int = 0x6; -pub const RTM_MISS: ::c_int = 0x7; -pub const RTM_LOCK: ::c_int = 0x8; -pub const RTM_OLDADD: ::c_int = 0x9; -pub const RTM_OLDDEL: ::c_int = 0xa; -pub const RTM_RESOLVE: ::c_int = 0xb; -pub const RTM_NEWADDR: ::c_int = 0xc; -pub const RTM_DELADDR: ::c_int = 0xd; -pub const RTM_IFINFO: ::c_int = 0xe; -pub const RTM_EXPIRE: ::c_int = 0xf; -pub const RTM_RTLOST: ::c_int = 0x10; -pub const RTM_GETNEXT: ::c_int = 0x11; -pub const RTM_SAMEADDR: ::c_int = 0x12; -pub const RTM_SET: ::c_int = 0x13; -pub const RTV_MTU: ::c_int = 0x1; -pub const RTV_HOPCOUNT: ::c_int = 0x2; -pub const RTV_EXPIRE: ::c_int = 0x4; -pub const RTV_RPIPE: ::c_int = 0x8; -pub const RTV_SPIPE: ::c_int = 0x10; -pub const RTV_SSTHRESH: ::c_int = 0x20; -pub const RTV_RTT: ::c_int = 0x40; -pub const RTV_RTTVAR: ::c_int = 0x80; -pub const RTA_DST: ::c_int = 0x1; -pub const RTA_GATEWAY: ::c_int = 0x2; -pub const RTA_NETMASK: ::c_int = 0x4; -pub const RTA_GENMASK: ::c_int = 0x8; -pub const RTA_IFP: ::c_int = 0x10; -pub const RTA_IFA: ::c_int = 0x20; -pub const RTA_AUTHOR: ::c_int = 0x40; -pub const RTA_BRD: ::c_int = 0x80; -pub const RTA_DOWNSTREAM: ::c_int = 0x100; -pub const RTAX_DST: ::c_int = 0; -pub const RTAX_GATEWAY: ::c_int = 1; -pub const RTAX_NETMASK: ::c_int = 2; -pub const RTAX_GENMASK: ::c_int = 3; -pub const RTAX_IFP: ::c_int = 4; -pub const RTAX_IFA: ::c_int = 5; -pub const RTAX_AUTHOR: ::c_int = 6; -pub const RTAX_BRD: ::c_int = 7; -pub const RTAX_MAX: ::c_int = 8; -pub const RTF_UP: ::c_int = 0x1; -pub const RTF_GATEWAY: ::c_int = 0x2; -pub const RTF_HOST: ::c_int = 0x4; -pub const RTF_REJECT: ::c_int = 0x8; -pub const RTF_DYNAMIC: ::c_int = 0x10; -pub const RTF_MODIFIED: ::c_int = 0x20; -pub const RTF_DONE: ::c_int = 0x40; -pub const RTF_MASK: ::c_int = 0x80; -pub const RTF_CLONING: ::c_int = 0x100; -pub const RTF_XRESOLVE: ::c_int = 0x200; -pub const RTF_LLINFO: ::c_int = 0x400; -pub const RTF_STATIC: ::c_int = 0x800; -pub const RTF_BLACKHOLE: ::c_int = 0x1000; -pub const RTF_BUL: ::c_int = 0x2000; -pub const RTF_PROTO2: ::c_int = 0x4000; -pub const RTF_PROTO1: ::c_int = 0x8000; -pub const RTF_CLONE: ::c_int = 0x10000; -pub const RTF_CLONED: ::c_int = 0x20000; -pub const RTF_PROTO3: ::c_int = 0x40000; -pub const RTF_BCE: ::c_int = 0x80000; -pub const RTF_PINNED: ::c_int = 0x100000; -pub const RTF_LOCAL: ::c_int = 0x200000; -pub const RTF_BROADCAST: ::c_int = 0x400000; -pub const RTF_MULTICAST: ::c_int = 0x800000; -pub const RTF_ACTIVE_DGD: ::c_int = 0x1000000; -pub const RTF_STOPSRCH: ::c_int = 0x2000000; -pub const RTF_FREE_IN_PROG: ::c_int = 0x4000000; -pub const RTF_PERMANENT6: ::c_int = 0x8000000; -pub const RTF_UNREACHABLE: ::c_int = 0x10000000; -pub const RTF_CACHED: ::c_int = 0x20000000; -pub const RTF_SMALLMTU: ::c_int = 0x40000; +pub const RTM_ADD: c_int = 0x1; +pub const RTM_DELETE: c_int = 0x2; +pub const RTM_CHANGE: c_int = 0x3; +pub const RTM_GET: c_int = 0x4; +pub const RTM_LOSING: c_int = 0x5; +pub const RTM_REDIRECT: c_int = 0x6; +pub const RTM_MISS: c_int = 0x7; +pub const RTM_LOCK: c_int = 0x8; +pub const RTM_OLDADD: c_int = 0x9; +pub const RTM_OLDDEL: c_int = 0xa; +pub const RTM_RESOLVE: c_int = 0xb; +pub const RTM_NEWADDR: c_int = 0xc; +pub const RTM_DELADDR: c_int = 0xd; +pub const RTM_IFINFO: c_int = 0xe; +pub const RTM_EXPIRE: c_int = 0xf; +pub const RTM_RTLOST: c_int = 0x10; +pub const RTM_GETNEXT: c_int = 0x11; +pub const RTM_SAMEADDR: c_int = 0x12; +pub const RTM_SET: c_int = 0x13; +pub const RTV_MTU: c_int = 0x1; +pub const RTV_HOPCOUNT: c_int = 0x2; +pub const RTV_EXPIRE: c_int = 0x4; +pub const RTV_RPIPE: c_int = 0x8; +pub const RTV_SPIPE: c_int = 0x10; +pub const RTV_SSTHRESH: c_int = 0x20; +pub const RTV_RTT: c_int = 0x40; +pub const RTV_RTTVAR: c_int = 0x80; +pub const RTA_DST: c_int = 0x1; +pub const RTA_GATEWAY: c_int = 0x2; +pub const RTA_NETMASK: c_int = 0x4; +pub const RTA_GENMASK: c_int = 0x8; +pub const RTA_IFP: c_int = 0x10; +pub const RTA_IFA: c_int = 0x20; +pub const RTA_AUTHOR: c_int = 0x40; +pub const RTA_BRD: c_int = 0x80; +pub const RTA_DOWNSTREAM: c_int = 0x100; +pub const RTAX_DST: c_int = 0; +pub const RTAX_GATEWAY: c_int = 1; +pub const RTAX_NETMASK: c_int = 2; +pub const RTAX_GENMASK: c_int = 3; +pub const RTAX_IFP: c_int = 4; +pub const RTAX_IFA: c_int = 5; +pub const RTAX_AUTHOR: c_int = 6; +pub const RTAX_BRD: c_int = 7; +pub const RTAX_MAX: c_int = 8; +pub const RTF_UP: c_int = 0x1; +pub const RTF_GATEWAY: c_int = 0x2; +pub const RTF_HOST: c_int = 0x4; +pub const RTF_REJECT: c_int = 0x8; +pub const RTF_DYNAMIC: c_int = 0x10; +pub const RTF_MODIFIED: c_int = 0x20; +pub const RTF_DONE: c_int = 0x40; +pub const RTF_MASK: c_int = 0x80; +pub const RTF_CLONING: c_int = 0x100; +pub const RTF_XRESOLVE: c_int = 0x200; +pub const RTF_LLINFO: c_int = 0x400; +pub const RTF_STATIC: c_int = 0x800; +pub const RTF_BLACKHOLE: c_int = 0x1000; +pub const RTF_BUL: c_int = 0x2000; +pub const RTF_PROTO2: c_int = 0x4000; +pub const RTF_PROTO1: c_int = 0x8000; +pub const RTF_CLONE: c_int = 0x10000; +pub const RTF_CLONED: c_int = 0x20000; +pub const RTF_PROTO3: c_int = 0x40000; +pub const RTF_BCE: c_int = 0x80000; +pub const RTF_PINNED: c_int = 0x100000; +pub const RTF_LOCAL: c_int = 0x200000; +pub const RTF_BROADCAST: c_int = 0x400000; +pub const RTF_MULTICAST: c_int = 0x800000; +pub const RTF_ACTIVE_DGD: c_int = 0x1000000; +pub const RTF_STOPSRCH: c_int = 0x2000000; +pub const RTF_FREE_IN_PROG: c_int = 0x4000000; +pub const RTF_PERMANENT6: c_int = 0x8000000; +pub const RTF_UNREACHABLE: c_int = 0x10000000; +pub const RTF_CACHED: c_int = 0x20000000; +pub const RTF_SMALLMTU: c_int = 0x40000; // netinet/in.h -pub const IPPROTO_HOPOPTS: ::c_int = 0; -pub const IPPROTO_IGMP: ::c_int = 2; -pub const IPPROTO_GGP: ::c_int = 3; -pub const IPPROTO_IPIP: ::c_int = 4; -pub const IPPROTO_EGP: ::c_int = 8; -pub const IPPROTO_PUP: ::c_int = 12; -pub const IPPROTO_IDP: ::c_int = 22; -pub const IPPROTO_TP: ::c_int = 29; -pub const IPPROTO_ROUTING: ::c_int = 43; -pub const IPPROTO_FRAGMENT: ::c_int = 44; -pub const IPPROTO_QOS: ::c_int = 45; -pub const IPPROTO_RSVP: ::c_int = 46; -pub const IPPROTO_GRE: ::c_int = 47; -pub const IPPROTO_ESP: ::c_int = 50; -pub const IPPROTO_AH: ::c_int = 51; -pub const IPPROTO_NONE: ::c_int = 59; -pub const IPPROTO_DSTOPTS: ::c_int = 60; -pub const IPPROTO_LOCAL: ::c_int = 63; -pub const IPPROTO_EON: ::c_int = 80; -pub const IPPROTO_BIP: ::c_int = 0x53; -pub const IPPROTO_SCTP: ::c_int = 132; -pub const IPPROTO_MH: ::c_int = 135; -pub const IPPROTO_GIF: ::c_int = 140; -pub const IPPROTO_RAW: ::c_int = 255; -pub const IPPROTO_MAX: ::c_int = 256; -pub const IP_OPTIONS: ::c_int = 1; -pub const IP_HDRINCL: ::c_int = 2; -pub const IP_TOS: ::c_int = 3; -pub const IP_TTL: ::c_int = 4; -pub const IP_UNICAST_HOPS: ::c_int = 4; -pub const IP_RECVOPTS: ::c_int = 5; -pub const IP_RECVRETOPTS: ::c_int = 6; -pub const IP_RECVDSTADDR: ::c_int = 7; -pub const IP_RETOPTS: ::c_int = 8; -pub const IP_MULTICAST_IF: ::c_int = 9; -pub const IP_MULTICAST_TTL: ::c_int = 10; -pub const IP_MULTICAST_HOPS: ::c_int = 10; -pub const IP_MULTICAST_LOOP: ::c_int = 11; -pub const IP_ADD_MEMBERSHIP: ::c_int = 12; -pub const IP_DROP_MEMBERSHIP: ::c_int = 13; -pub const IP_RECVMACHDR: ::c_int = 14; -pub const IP_RECVIFINFO: ::c_int = 15; -pub const IP_BROADCAST_IF: ::c_int = 16; -pub const IP_DHCPMODE: ::c_int = 17; -pub const IP_RECVIF: ::c_int = 20; -pub const IP_ADDRFORM: ::c_int = 22; -pub const IP_DONTFRAG: ::c_int = 25; -pub const IP_FINDPMTU: ::c_int = 26; -pub const IP_PMTUAGE: ::c_int = 27; -pub const IP_RECVINTERFACE: ::c_int = 32; -pub const IP_RECVTTL: ::c_int = 34; -pub const IP_BLOCK_SOURCE: ::c_int = 58; -pub const IP_UNBLOCK_SOURCE: ::c_int = 59; -pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 60; -pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 61; -pub const IP_DEFAULT_MULTICAST_TTL: ::c_int = 1; -pub const IP_DEFAULT_MULTICAST_LOOP: ::c_int = 1; -pub const IP_INC_MEMBERSHIPS: ::c_int = 20; -pub const IP_INIT_MEMBERSHIP: ::c_int = 20; -pub const IPV6_UNICAST_HOPS: ::c_int = IP_TTL; -pub const IPV6_MULTICAST_IF: ::c_int = IP_MULTICAST_IF; -pub const IPV6_MULTICAST_HOPS: ::c_int = IP_MULTICAST_TTL; -pub const IPV6_MULTICAST_LOOP: ::c_int = IP_MULTICAST_LOOP; -pub const IPV6_RECVPKTINFO: ::c_int = 35; -pub const IPV6_V6ONLY: ::c_int = 37; -pub const IPV6_ADD_MEMBERSHIP: ::c_int = IP_ADD_MEMBERSHIP; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = IP_DROP_MEMBERSHIP; -pub const IPV6_JOIN_GROUP: ::c_int = IP_ADD_MEMBERSHIP; -pub const IPV6_LEAVE_GROUP: ::c_int = IP_DROP_MEMBERSHIP; -pub const MCAST_BLOCK_SOURCE: ::c_int = 64; -pub const MCAST_EXCLUDE: ::c_int = 2; -pub const MCAST_INCLUDE: ::c_int = 1; -pub const MCAST_JOIN_GROUP: ::c_int = 62; -pub const MCAST_JOIN_SOURCE_GROUP: ::c_int = 66; -pub const MCAST_LEAVE_GROUP: ::c_int = 63; -pub const MCAST_LEAVE_SOURCE_GROUP: ::c_int = 67; -pub const MCAST_UNBLOCK_SOURCE: ::c_int = 65; +pub const IPPROTO_HOPOPTS: c_int = 0; +pub const IPPROTO_IGMP: c_int = 2; +pub const IPPROTO_GGP: c_int = 3; +pub const IPPROTO_IPIP: c_int = 4; +pub const IPPROTO_EGP: c_int = 8; +pub const IPPROTO_PUP: c_int = 12; +pub const IPPROTO_IDP: c_int = 22; +pub const IPPROTO_TP: c_int = 29; +pub const IPPROTO_ROUTING: c_int = 43; +pub const IPPROTO_FRAGMENT: c_int = 44; +pub const IPPROTO_QOS: c_int = 45; +pub const IPPROTO_RSVP: c_int = 46; +pub const IPPROTO_GRE: c_int = 47; +pub const IPPROTO_ESP: c_int = 50; +pub const IPPROTO_AH: c_int = 51; +pub const IPPROTO_NONE: c_int = 59; +pub const IPPROTO_DSTOPTS: c_int = 60; +pub const IPPROTO_LOCAL: c_int = 63; +pub const IPPROTO_EON: c_int = 80; +pub const IPPROTO_BIP: c_int = 0x53; +pub const IPPROTO_SCTP: c_int = 132; +pub const IPPROTO_MH: c_int = 135; +pub const IPPROTO_GIF: c_int = 140; +pub const IPPROTO_RAW: c_int = 255; +pub const IPPROTO_MAX: c_int = 256; +pub const IP_OPTIONS: c_int = 1; +pub const IP_HDRINCL: c_int = 2; +pub const IP_TOS: c_int = 3; +pub const IP_TTL: c_int = 4; +pub const IP_UNICAST_HOPS: c_int = 4; +pub const IP_RECVOPTS: c_int = 5; +pub const IP_RECVRETOPTS: c_int = 6; +pub const IP_RECVDSTADDR: c_int = 7; +pub const IP_RETOPTS: c_int = 8; +pub const IP_MULTICAST_IF: c_int = 9; +pub const IP_MULTICAST_TTL: c_int = 10; +pub const IP_MULTICAST_HOPS: c_int = 10; +pub const IP_MULTICAST_LOOP: c_int = 11; +pub const IP_ADD_MEMBERSHIP: c_int = 12; +pub const IP_DROP_MEMBERSHIP: c_int = 13; +pub const IP_RECVMACHDR: c_int = 14; +pub const IP_RECVIFINFO: c_int = 15; +pub const IP_BROADCAST_IF: c_int = 16; +pub const IP_DHCPMODE: c_int = 17; +pub const IP_RECVIF: c_int = 20; +pub const IP_ADDRFORM: c_int = 22; +pub const IP_DONTFRAG: c_int = 25; +pub const IP_FINDPMTU: c_int = 26; +pub const IP_PMTUAGE: c_int = 27; +pub const IP_RECVINTERFACE: c_int = 32; +pub const IP_RECVTTL: c_int = 34; +pub const IP_BLOCK_SOURCE: c_int = 58; +pub const IP_UNBLOCK_SOURCE: c_int = 59; +pub const IP_ADD_SOURCE_MEMBERSHIP: c_int = 60; +pub const IP_DROP_SOURCE_MEMBERSHIP: c_int = 61; +pub const IP_DEFAULT_MULTICAST_TTL: c_int = 1; +pub const IP_DEFAULT_MULTICAST_LOOP: c_int = 1; +pub const IP_INC_MEMBERSHIPS: c_int = 20; +pub const IP_INIT_MEMBERSHIP: c_int = 20; +pub const IPV6_UNICAST_HOPS: c_int = IP_TTL; +pub const IPV6_MULTICAST_IF: c_int = IP_MULTICAST_IF; +pub const IPV6_MULTICAST_HOPS: c_int = IP_MULTICAST_TTL; +pub const IPV6_MULTICAST_LOOP: c_int = IP_MULTICAST_LOOP; +pub const IPV6_RECVPKTINFO: c_int = 35; +pub const IPV6_V6ONLY: c_int = 37; +pub const IPV6_ADD_MEMBERSHIP: c_int = IP_ADD_MEMBERSHIP; +pub const IPV6_DROP_MEMBERSHIP: c_int = IP_DROP_MEMBERSHIP; +pub const IPV6_JOIN_GROUP: c_int = IP_ADD_MEMBERSHIP; +pub const IPV6_LEAVE_GROUP: c_int = IP_DROP_MEMBERSHIP; +pub const MCAST_BLOCK_SOURCE: c_int = 64; +pub const MCAST_EXCLUDE: c_int = 2; +pub const MCAST_INCLUDE: c_int = 1; +pub const MCAST_JOIN_GROUP: c_int = 62; +pub const MCAST_JOIN_SOURCE_GROUP: c_int = 66; +pub const MCAST_LEAVE_GROUP: c_int = 63; +pub const MCAST_LEAVE_SOURCE_GROUP: c_int = 67; +pub const MCAST_UNBLOCK_SOURCE: c_int = 65; // netinet/ip.h -pub const MAXTTL: ::c_int = 255; -pub const IPDEFTTL: ::c_int = 64; -pub const IPOPT_CONTROL: ::c_int = 0; -pub const IPOPT_EOL: ::c_int = 0; -pub const IPOPT_LSRR: ::c_int = 131; -pub const IPOPT_MINOFF: ::c_int = 4; -pub const IPOPT_NOP: ::c_int = 1; -pub const IPOPT_OFFSET: ::c_int = 2; -pub const IPOPT_OLEN: ::c_int = 1; -pub const IPOPT_OPTVAL: ::c_int = 0; -pub const IPOPT_RESERVED1: ::c_int = 0x20; -pub const IPOPT_RESERVED2: ::c_int = 0x60; -pub const IPOPT_RR: ::c_int = 7; -pub const IPOPT_SSRR: ::c_int = 137; -pub const IPOPT_TS: ::c_int = 68; -pub const IPOPT_TS_PRESPEC: ::c_int = 3; -pub const IPOPT_TS_TSANDADDR: ::c_int = 1; -pub const IPOPT_TS_TSONLY: ::c_int = 0; -pub const IPTOS_LOWDELAY: ::c_int = 16; -pub const IPTOS_PREC_CRITIC_ECP: ::c_int = 160; -pub const IPTOS_PREC_FLASH: ::c_int = 96; -pub const IPTOS_PREC_FLASHOVERRIDE: ::c_int = 128; -pub const IPTOS_PREC_IMMEDIATE: ::c_int = 64; -pub const IPTOS_PREC_INTERNETCONTROL: ::c_int = 192; -pub const IPTOS_PREC_NETCONTROL: ::c_int = 224; -pub const IPTOS_PREC_PRIORITY: ::c_int = 32; -pub const IPTOS_PREC_ROUTINE: ::c_int = 16; -pub const IPTOS_RELIABILITY: ::c_int = 4; -pub const IPTOS_THROUGHPUT: ::c_int = 8; -pub const IPVERSION: ::c_int = 4; +pub const MAXTTL: c_int = 255; +pub const IPDEFTTL: c_int = 64; +pub const IPOPT_CONTROL: c_int = 0; +pub const IPOPT_EOL: c_int = 0; +pub const IPOPT_LSRR: c_int = 131; +pub const IPOPT_MINOFF: c_int = 4; +pub const IPOPT_NOP: c_int = 1; +pub const IPOPT_OFFSET: c_int = 2; +pub const IPOPT_OLEN: c_int = 1; +pub const IPOPT_OPTVAL: c_int = 0; +pub const IPOPT_RESERVED1: c_int = 0x20; +pub const IPOPT_RESERVED2: c_int = 0x60; +pub const IPOPT_RR: c_int = 7; +pub const IPOPT_SSRR: c_int = 137; +pub const IPOPT_TS: c_int = 68; +pub const IPOPT_TS_PRESPEC: c_int = 3; +pub const IPOPT_TS_TSANDADDR: c_int = 1; +pub const IPOPT_TS_TSONLY: c_int = 0; +pub const IPTOS_LOWDELAY: c_int = 16; +pub const IPTOS_PREC_CRITIC_ECP: c_int = 160; +pub const IPTOS_PREC_FLASH: c_int = 96; +pub const IPTOS_PREC_FLASHOVERRIDE: c_int = 128; +pub const IPTOS_PREC_IMMEDIATE: c_int = 64; +pub const IPTOS_PREC_INTERNETCONTROL: c_int = 192; +pub const IPTOS_PREC_NETCONTROL: c_int = 224; +pub const IPTOS_PREC_PRIORITY: c_int = 32; +pub const IPTOS_PREC_ROUTINE: c_int = 16; +pub const IPTOS_RELIABILITY: c_int = 4; +pub const IPTOS_THROUGHPUT: c_int = 8; +pub const IPVERSION: c_int = 4; // netinet/tcp.h -pub const TCP_NODELAY: ::c_int = 0x1; -pub const TCP_MAXSEG: ::c_int = 0x2; -pub const TCP_RFC1323: ::c_int = 0x4; -pub const TCP_KEEPALIVE: ::c_int = 0x8; -pub const TCP_KEEPIDLE: ::c_int = 0x11; -pub const TCP_KEEPINTVL: ::c_int = 0x12; -pub const TCP_KEEPCNT: ::c_int = 0x13; -pub const TCP_NODELAYACK: ::c_int = 0x14; +pub const TCP_NODELAY: c_int = 0x1; +pub const TCP_MAXSEG: c_int = 0x2; +pub const TCP_RFC1323: c_int = 0x4; +pub const TCP_KEEPALIVE: c_int = 0x8; +pub const TCP_KEEPIDLE: c_int = 0x11; +pub const TCP_KEEPINTVL: c_int = 0x12; +pub const TCP_KEEPCNT: c_int = 0x13; +pub const TCP_NODELAYACK: c_int = 0x14; // pthread.h -pub const PTHREAD_BARRIER_SERIAL_THREAD: ::c_int = -1; -pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; -pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; -pub const PTHREAD_PROCESS_SHARED: ::c_int = 0; -pub const PTHREAD_PROCESS_PRIVATE: ::c_ushort = 1; -pub const PTHREAD_STACK_MIN: ::size_t = PAGESIZE as ::size_t * 4; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 5; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 3; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 4; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; -pub const PTHREAD_MUTEX_ROBUST: ::c_int = 1; -pub const PTHREAD_MUTEX_STALLED: ::c_int = 0; -pub const PTHREAD_PRIO_INHERIT: ::c_int = 3; -pub const PTHREAD_PRIO_NONE: ::c_int = 1; -pub const PTHREAD_PRIO_PROTECT: ::c_int = 2; +pub const PTHREAD_BARRIER_SERIAL_THREAD: c_int = -1; +pub const PTHREAD_CREATE_JOINABLE: c_int = 0; +pub const PTHREAD_CREATE_DETACHED: c_int = 1; +pub const PTHREAD_PROCESS_SHARED: c_int = 0; +pub const PTHREAD_PROCESS_PRIVATE: c_ushort = 1; +pub const PTHREAD_STACK_MIN: size_t = PAGESIZE as size_t * 4; +pub const PTHREAD_MUTEX_NORMAL: c_int = 5; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 3; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 4; +pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_NORMAL; +pub const PTHREAD_MUTEX_ROBUST: c_int = 1; +pub const PTHREAD_MUTEX_STALLED: c_int = 0; +pub const PTHREAD_PRIO_INHERIT: c_int = 3; +pub const PTHREAD_PRIO_NONE: c_int = 1; +pub const PTHREAD_PRIO_PROTECT: c_int = 2; // regex.h -pub const REG_EXTENDED: ::c_int = 1; -pub const REG_ICASE: ::c_int = 2; -pub const REG_NEWLINE: ::c_int = 4; -pub const REG_NOSUB: ::c_int = 8; -pub const REG_NOTBOL: ::c_int = 0x100; -pub const REG_NOTEOL: ::c_int = 0x200; -pub const REG_NOMATCH: ::c_int = 1; -pub const REG_BADPAT: ::c_int = 2; -pub const REG_ECOLLATE: ::c_int = 3; -pub const REG_ECTYPE: ::c_int = 4; -pub const REG_EESCAPE: ::c_int = 5; -pub const REG_ESUBREG: ::c_int = 6; -pub const REG_EBRACK: ::c_int = 7; -pub const REG_EPAREN: ::c_int = 8; -pub const REG_EBRACE: ::c_int = 9; -pub const REG_BADBR: ::c_int = 10; -pub const REG_ERANGE: ::c_int = 11; -pub const REG_ESPACE: ::c_int = 12; -pub const REG_BADRPT: ::c_int = 13; -pub const REG_ECHAR: ::c_int = 14; -pub const REG_EBOL: ::c_int = 15; -pub const REG_EEOL: ::c_int = 16; -pub const REG_ENOSYS: ::c_int = 17; +pub const REG_EXTENDED: c_int = 1; +pub const REG_ICASE: c_int = 2; +pub const REG_NEWLINE: c_int = 4; +pub const REG_NOSUB: c_int = 8; +pub const REG_NOTBOL: c_int = 0x100; +pub const REG_NOTEOL: c_int = 0x200; +pub const REG_NOMATCH: c_int = 1; +pub const REG_BADPAT: c_int = 2; +pub const REG_ECOLLATE: c_int = 3; +pub const REG_ECTYPE: c_int = 4; +pub const REG_EESCAPE: c_int = 5; +pub const REG_ESUBREG: c_int = 6; +pub const REG_EBRACK: c_int = 7; +pub const REG_EPAREN: c_int = 8; +pub const REG_EBRACE: c_int = 9; +pub const REG_BADBR: c_int = 10; +pub const REG_ERANGE: c_int = 11; +pub const REG_ESPACE: c_int = 12; +pub const REG_BADRPT: c_int = 13; +pub const REG_ECHAR: c_int = 14; +pub const REG_EBOL: c_int = 15; +pub const REG_EEOL: c_int = 16; +pub const REG_ENOSYS: c_int = 17; // rpcsvc/mount.h -pub const NFSMNT_ACDIRMAX: ::c_int = 2048; -pub const NFSMNT_ACDIRMIN: ::c_int = 1024; -pub const NFSMNT_ACREGMAX: ::c_int = 512; -pub const NFSMNT_ACREGMIN: ::c_int = 256; -pub const NFSMNT_INT: ::c_int = 64; -pub const NFSMNT_NOAC: ::c_int = 128; -pub const NFSMNT_RETRANS: ::c_int = 16; -pub const NFSMNT_RSIZE: ::c_int = 4; -pub const NFSMNT_SOFT: ::c_int = 1; -pub const NFSMNT_TIMEO: ::c_int = 8; -pub const NFSMNT_WSIZE: ::c_int = 2; +pub const NFSMNT_ACDIRMAX: c_int = 2048; +pub const NFSMNT_ACDIRMIN: c_int = 1024; +pub const NFSMNT_ACREGMAX: c_int = 512; +pub const NFSMNT_ACREGMIN: c_int = 256; +pub const NFSMNT_INT: c_int = 64; +pub const NFSMNT_NOAC: c_int = 128; +pub const NFSMNT_RETRANS: c_int = 16; +pub const NFSMNT_RSIZE: c_int = 4; +pub const NFSMNT_SOFT: c_int = 1; +pub const NFSMNT_TIMEO: c_int = 8; +pub const NFSMNT_WSIZE: c_int = 2; // rpcsvc/rstat.h -pub const CPUSTATES: ::c_int = 4; +pub const CPUSTATES: c_int = 4; // search.h -pub const FIND: ::c_int = 0; -pub const ENTER: ::c_int = 1; +pub const FIND: c_int = 0; +pub const ENTER: c_int = 1; // semaphore.h -pub const SEM_FAILED: *mut sem_t = -1isize as *mut ::sem_t; +pub const SEM_FAILED: *mut sem_t = -1isize as *mut crate::sem_t; // spawn.h // DIFF(main): changed to `c_short` in f62eb023ab -pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x1; -pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x2; -pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x4; -pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x8; -pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x10; -pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x20; -pub const POSIX_SPAWN_FORK_HANDLERS: ::c_int = 0x1000; +pub const POSIX_SPAWN_SETPGROUP: c_int = 0x1; +pub const POSIX_SPAWN_SETSIGMASK: c_int = 0x2; +pub const POSIX_SPAWN_SETSIGDEF: c_int = 0x4; +pub const POSIX_SPAWN_SETSCHEDULER: c_int = 0x8; +pub const POSIX_SPAWN_SETSCHEDPARAM: c_int = 0x10; +pub const POSIX_SPAWN_RESETIDS: c_int = 0x20; +pub const POSIX_SPAWN_FORK_HANDLERS: c_int = 0x1000; // stdio.h -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const _IOFBF: ::c_int = 0o000; -pub const _IONBF: ::c_int = 0o004; -pub const _IOLBF: ::c_int = 0o100; -pub const BUFSIZ: ::c_uint = 4096; -pub const FOPEN_MAX: ::c_uint = 32767; -pub const FILENAME_MAX: ::c_uint = 255; -pub const L_tmpnam: ::c_uint = 21; -pub const TMP_MAX: ::c_uint = 16384; +pub const EOF: c_int = -1; +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; +pub const _IOFBF: c_int = 0o000; +pub const _IONBF: c_int = 0o004; +pub const _IOLBF: c_int = 0o100; +pub const BUFSIZ: c_uint = 4096; +pub const FOPEN_MAX: c_uint = 32767; +pub const FILENAME_MAX: c_uint = 255; +pub const L_tmpnam: c_uint = 21; +pub const TMP_MAX: c_uint = 16384; // stdlib.h -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 32767; +pub const EXIT_FAILURE: c_int = 1; +pub const EXIT_SUCCESS: c_int = 0; +pub const RAND_MAX: c_int = 32767; // sys/access.h -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; +pub const F_OK: c_int = 0; +pub const R_OK: c_int = 4; +pub const W_OK: c_int = 2; +pub const X_OK: c_int = 1; // sys/aio.h -pub const LIO_NOP: ::c_int = 0; -pub const LIO_READ: ::c_int = 1; -pub const LIO_WRITE: ::c_int = 2; -pub const LIO_NOWAIT: ::c_int = 0; -pub const LIO_WAIT: ::c_int = 1; -pub const AIO_ALLDONE: ::c_int = 2; -pub const AIO_CANCELED: ::c_int = 0; -pub const AIO_NOTCANCELED: ::c_int = 1; +pub const LIO_NOP: c_int = 0; +pub const LIO_READ: c_int = 1; +pub const LIO_WRITE: c_int = 2; +pub const LIO_NOWAIT: c_int = 0; +pub const LIO_WAIT: c_int = 1; +pub const AIO_ALLDONE: c_int = 2; +pub const AIO_CANCELED: c_int = 0; +pub const AIO_NOTCANCELED: c_int = 1; // sys/errno.h -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const ECHRNG: ::c_int = 37; -pub const EL2NSYNC: ::c_int = 38; -pub const EL3HLT: ::c_int = 39; -pub const EL3RST: ::c_int = 40; -pub const ELNRNG: ::c_int = 41; -pub const EUNATCH: ::c_int = 42; -pub const ENOCSI: ::c_int = 43; -pub const EL2HLT: ::c_int = 44; -pub const EDEADLK: ::c_int = 45; -pub const ENOLCK: ::c_int = 49; -pub const ECANCELED: ::c_int = 117; -pub const ENOTSUP: ::c_int = 124; -pub const EPROCLIM: ::c_int = 83; -pub const EDQUOT: ::c_int = 88; -pub const EOWNERDEAD: ::c_int = 95; -pub const ENOTRECOVERABLE: ::c_int = 94; -pub const ENOSTR: ::c_int = 123; -pub const ENODATA: ::c_int = 122; -pub const ETIME: ::c_int = 119; -pub const ENOSR: ::c_int = 118; -pub const EREMOTE: ::c_int = 93; -pub const ENOATTR: ::c_int = 112; -pub const ESAD: ::c_int = 113; -pub const ENOTRUST: ::c_int = 114; -pub const ENOLINK: ::c_int = 126; -pub const EPROTO: ::c_int = 121; -pub const EMULTIHOP: ::c_int = 125; -pub const EBADMSG: ::c_int = 120; -pub const ENAMETOOLONG: ::c_int = 86; -pub const EOVERFLOW: ::c_int = 127; -pub const EILSEQ: ::c_int = 116; -pub const ENOSYS: ::c_int = 109; -pub const ELOOP: ::c_int = 85; -pub const ERESTART: ::c_int = 82; -pub const ENOTEMPTY: ::c_int = 87; -pub const EUSERS: ::c_int = 84; -pub const ENOTSOCK: ::c_int = 57; -pub const EDESTADDRREQ: ::c_int = 58; -pub const EMSGSIZE: ::c_int = 59; -pub const EPROTOTYPE: ::c_int = 60; -pub const ENOPROTOOPT: ::c_int = 61; -pub const EPROTONOSUPPORT: ::c_int = 62; -pub const ESOCKTNOSUPPORT: ::c_int = 63; -pub const EOPNOTSUPP: ::c_int = 64; -pub const EPFNOSUPPORT: ::c_int = 65; -pub const EAFNOSUPPORT: ::c_int = 66; -pub const EADDRINUSE: ::c_int = 67; -pub const EADDRNOTAVAIL: ::c_int = 68; -pub const ENETDOWN: ::c_int = 69; -pub const ENETUNREACH: ::c_int = 70; -pub const ENETRESET: ::c_int = 71; -pub const ECONNABORTED: ::c_int = 72; -pub const ECONNRESET: ::c_int = 73; -pub const ENOBUFS: ::c_int = 74; -pub const EISCONN: ::c_int = 75; -pub const ENOTCONN: ::c_int = 76; -pub const ESHUTDOWN: ::c_int = 77; -pub const ETOOMANYREFS: ::c_int = 115; -pub const ETIMEDOUT: ::c_int = 78; -pub const ECONNREFUSED: ::c_int = 79; -pub const EHOSTDOWN: ::c_int = 80; -pub const EHOSTUNREACH: ::c_int = 81; -pub const EWOULDBLOCK: ::c_int = EAGAIN; -pub const EALREADY: ::c_int = 56; -pub const EINPROGRESS: ::c_int = 55; -pub const ESTALE: ::c_int = 52; +pub const EPERM: c_int = 1; +pub const ENOENT: c_int = 2; +pub const ESRCH: c_int = 3; +pub const EINTR: c_int = 4; +pub const EIO: c_int = 5; +pub const ENXIO: c_int = 6; +pub const E2BIG: c_int = 7; +pub const ENOEXEC: c_int = 8; +pub const EBADF: c_int = 9; +pub const ECHILD: c_int = 10; +pub const EAGAIN: c_int = 11; +pub const ENOMEM: c_int = 12; +pub const EACCES: c_int = 13; +pub const EFAULT: c_int = 14; +pub const ENOTBLK: c_int = 15; +pub const EBUSY: c_int = 16; +pub const EEXIST: c_int = 17; +pub const EXDEV: c_int = 18; +pub const ENODEV: c_int = 19; +pub const ENOTDIR: c_int = 20; +pub const EISDIR: c_int = 21; +pub const EINVAL: c_int = 22; +pub const ENFILE: c_int = 23; +pub const EMFILE: c_int = 24; +pub const ENOTTY: c_int = 25; +pub const ETXTBSY: c_int = 26; +pub const EFBIG: c_int = 27; +pub const ENOSPC: c_int = 28; +pub const ESPIPE: c_int = 29; +pub const EROFS: c_int = 30; +pub const EMLINK: c_int = 31; +pub const EPIPE: c_int = 32; +pub const EDOM: c_int = 33; +pub const ERANGE: c_int = 34; +pub const ENOMSG: c_int = 35; +pub const EIDRM: c_int = 36; +pub const ECHRNG: c_int = 37; +pub const EL2NSYNC: c_int = 38; +pub const EL3HLT: c_int = 39; +pub const EL3RST: c_int = 40; +pub const ELNRNG: c_int = 41; +pub const EUNATCH: c_int = 42; +pub const ENOCSI: c_int = 43; +pub const EL2HLT: c_int = 44; +pub const EDEADLK: c_int = 45; +pub const ENOLCK: c_int = 49; +pub const ECANCELED: c_int = 117; +pub const ENOTSUP: c_int = 124; +pub const EPROCLIM: c_int = 83; +pub const EDQUOT: c_int = 88; +pub const EOWNERDEAD: c_int = 95; +pub const ENOTRECOVERABLE: c_int = 94; +pub const ENOSTR: c_int = 123; +pub const ENODATA: c_int = 122; +pub const ETIME: c_int = 119; +pub const ENOSR: c_int = 118; +pub const EREMOTE: c_int = 93; +pub const ENOATTR: c_int = 112; +pub const ESAD: c_int = 113; +pub const ENOTRUST: c_int = 114; +pub const ENOLINK: c_int = 126; +pub const EPROTO: c_int = 121; +pub const EMULTIHOP: c_int = 125; +pub const EBADMSG: c_int = 120; +pub const ENAMETOOLONG: c_int = 86; +pub const EOVERFLOW: c_int = 127; +pub const EILSEQ: c_int = 116; +pub const ENOSYS: c_int = 109; +pub const ELOOP: c_int = 85; +pub const ERESTART: c_int = 82; +pub const ENOTEMPTY: c_int = 87; +pub const EUSERS: c_int = 84; +pub const ENOTSOCK: c_int = 57; +pub const EDESTADDRREQ: c_int = 58; +pub const EMSGSIZE: c_int = 59; +pub const EPROTOTYPE: c_int = 60; +pub const ENOPROTOOPT: c_int = 61; +pub const EPROTONOSUPPORT: c_int = 62; +pub const ESOCKTNOSUPPORT: c_int = 63; +pub const EOPNOTSUPP: c_int = 64; +pub const EPFNOSUPPORT: c_int = 65; +pub const EAFNOSUPPORT: c_int = 66; +pub const EADDRINUSE: c_int = 67; +pub const EADDRNOTAVAIL: c_int = 68; +pub const ENETDOWN: c_int = 69; +pub const ENETUNREACH: c_int = 70; +pub const ENETRESET: c_int = 71; +pub const ECONNABORTED: c_int = 72; +pub const ECONNRESET: c_int = 73; +pub const ENOBUFS: c_int = 74; +pub const EISCONN: c_int = 75; +pub const ENOTCONN: c_int = 76; +pub const ESHUTDOWN: c_int = 77; +pub const ETOOMANYREFS: c_int = 115; +pub const ETIMEDOUT: c_int = 78; +pub const ECONNREFUSED: c_int = 79; +pub const EHOSTDOWN: c_int = 80; +pub const EHOSTUNREACH: c_int = 81; +pub const EWOULDBLOCK: c_int = EAGAIN; +pub const EALREADY: c_int = 56; +pub const EINPROGRESS: c_int = 55; +pub const ESTALE: c_int = 52; // sys/dr.h -pub const LPAR_INFO_FORMAT1: ::c_int = 1; -pub const LPAR_INFO_FORMAT2: ::c_int = 2; -pub const WPAR_INFO_FORMAT: ::c_int = 3; -pub const PROC_MODULE_INFO: ::c_int = 4; -pub const NUM_PROC_MODULE_TYPES: ::c_int = 5; -pub const LPAR_INFO_VRME_NUM_POOLS: ::c_int = 6; -pub const LPAR_INFO_VRME_POOLS: ::c_int = 7; -pub const LPAR_INFO_VRME_LPAR: ::c_int = 8; -pub const LPAR_INFO_VRME_RESET_HWMARKS: ::c_int = 9; -pub const LPAR_INFO_VRME_ALLOW_DESIRED: ::c_int = 10; -pub const EMTP_INFO_FORMAT: ::c_int = 11; -pub const LPAR_INFO_LPM_CAPABILITY: ::c_int = 12; -pub const ENERGYSCALE_INFO: ::c_int = 13; +pub const LPAR_INFO_FORMAT1: c_int = 1; +pub const LPAR_INFO_FORMAT2: c_int = 2; +pub const WPAR_INFO_FORMAT: c_int = 3; +pub const PROC_MODULE_INFO: c_int = 4; +pub const NUM_PROC_MODULE_TYPES: c_int = 5; +pub const LPAR_INFO_VRME_NUM_POOLS: c_int = 6; +pub const LPAR_INFO_VRME_POOLS: c_int = 7; +pub const LPAR_INFO_VRME_LPAR: c_int = 8; +pub const LPAR_INFO_VRME_RESET_HWMARKS: c_int = 9; +pub const LPAR_INFO_VRME_ALLOW_DESIRED: c_int = 10; +pub const EMTP_INFO_FORMAT: c_int = 11; +pub const LPAR_INFO_LPM_CAPABILITY: c_int = 12; +pub const ENERGYSCALE_INFO: c_int = 13; // sys/file.h -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_NB: ::c_int = 4; -pub const LOCK_UN: ::c_int = 8; +pub const LOCK_SH: c_int = 1; +pub const LOCK_EX: c_int = 2; +pub const LOCK_NB: c_int = 4; +pub const LOCK_UN: c_int = 8; // sys/flock.h -pub const F_RDLCK: ::c_short = 0o01; -pub const F_WRLCK: ::c_short = 0o02; -pub const F_UNLCK: ::c_short = 0o03; +pub const F_RDLCK: c_short = 0o01; +pub const F_WRLCK: c_short = 0o02; +pub const F_UNLCK: c_short = 0o03; // sys/fs/quota_common.h -pub const Q_QUOTAON: ::c_int = 0x100; -pub const Q_QUOTAOFF: ::c_int = 0x200; -pub const Q_SETUSE: ::c_int = 0x500; -pub const Q_SYNC: ::c_int = 0x600; -pub const Q_GETQUOTA: ::c_int = 0x300; -pub const Q_SETQLIM: ::c_int = 0x400; -pub const Q_SETQUOTA: ::c_int = 0x400; +pub const Q_QUOTAON: c_int = 0x100; +pub const Q_QUOTAOFF: c_int = 0x200; +pub const Q_SETUSE: c_int = 0x500; +pub const Q_SYNC: c_int = 0x600; +pub const Q_GETQUOTA: c_int = 0x300; +pub const Q_SETQLIM: c_int = 0x400; +pub const Q_SETQUOTA: c_int = 0x400; // sys/ioctl.h -pub const IOCPARM_MASK: ::c_int = 0x7f; -pub const IOC_VOID: ::c_int = 0x20000000; -pub const IOC_OUT: ::c_int = 0x40000000; -pub const IOC_IN: ::c_int = 0x40000000 << 1; -pub const IOC_INOUT: ::c_int = IOC_IN | IOC_OUT; -pub const FIOCLEX: ::c_int = 536897025; -pub const FIONCLEX: ::c_int = 536897026; -pub const FIONREAD: ::c_int = 1074030207; -pub const FIONBIO: ::c_int = -2147195266; -pub const FIOASYNC: ::c_int = -2147195267; -pub const FIOSETOWN: ::c_int = -2147195268; -pub const FIOGETOWN: ::c_int = 1074030203; -pub const TIOCGETD: ::c_int = 0x40047400; -pub const TIOCSETD: ::c_int = 0x80047401; -pub const TIOCHPCL: ::c_int = 0x20007402; -pub const TIOCMODG: ::c_int = 0x40047403; -pub const TIOCMODS: ::c_int = 0x80047404; -pub const TIOCM_LE: ::c_int = 0x1; -pub const TIOCM_DTR: ::c_int = 0x2; -pub const TIOCM_RTS: ::c_int = 0x4; -pub const TIOCM_ST: ::c_int = 0x8; -pub const TIOCM_SR: ::c_int = 0x10; -pub const TIOCM_CTS: ::c_int = 0x20; -pub const TIOCM_CAR: ::c_int = 0x40; -pub const TIOCM_CD: ::c_int = 0x40; -pub const TIOCM_RNG: ::c_int = 0x80; -pub const TIOCM_RI: ::c_int = 0x80; -pub const TIOCM_DSR: ::c_int = 0x100; -pub const TIOCGETP: ::c_int = 0x40067408; -pub const TIOCSETP: ::c_int = 0x80067409; -pub const TIOCSETN: ::c_int = 0x8006740a; -pub const TIOCEXCL: ::c_int = 0x2000740d; -pub const TIOCNXCL: ::c_int = 0x2000740e; -pub const TIOCFLUSH: ::c_int = 0x80047410; -pub const TIOCSETC: ::c_int = 0x80067411; -pub const TIOCGETC: ::c_int = 0x40067412; -pub const TANDEM: ::c_int = 0x1; -pub const CBREAK: ::c_int = 0x2; -pub const LCASE: ::c_int = 0x4; -pub const MDMBUF: ::c_int = 0x800000; -pub const XTABS: ::c_int = 0xc00; -pub const SIOCADDMULTI: ::c_int = -2145359567; -pub const SIOCADDRT: ::c_int = -2143784438; -pub const SIOCDARP: ::c_int = -2142476000; -pub const SIOCDELMULTI: ::c_int = -2145359566; -pub const SIOCDELRT: ::c_int = -2143784437; -pub const SIOCDIFADDR: ::c_int = -2144835303; -pub const SIOCGARP: ::c_int = -1068734170; -pub const SIOCGIFADDR: ::c_int = -1071093471; -pub const SIOCGIFBRDADDR: ::c_int = -1071093469; -pub const SIOCGIFCONF: ::c_int = -1072666299; -pub const SIOCGIFDSTADDR: ::c_int = -1071093470; -pub const SIOCGIFFLAGS: ::c_int = -1071093487; -pub const SIOCGIFHWADDR: ::c_int = -1068209771; -pub const SIOCGIFMETRIC: ::c_int = -1071093481; -pub const SIOCGIFMTU: ::c_int = -1071093418; -pub const SIOCGIFNETMASK: ::c_int = -1071093467; -pub const SIOCSARP: ::c_int = -2142476002; -pub const SIOCSIFADDR: ::c_int = -2144835316; -pub const SIOCSIFBRDADDR: ::c_int = -2144835309; -pub const SIOCSIFDSTADDR: ::c_int = -2144835314; -pub const SIOCSIFFLAGS: ::c_int = -2144835312; -pub const SIOCSIFMETRIC: ::c_int = -2144835304; -pub const SIOCSIFMTU: ::c_int = -2144835240; -pub const SIOCSIFNETMASK: ::c_int = -2144835306; -pub const TIOCUCNTL: ::c_int = -2147191706; -pub const TIOCCONS: ::c_int = -2147191710; -pub const TIOCPKT: ::c_int = -2147191696; -pub const TIOCPKT_DATA: ::c_int = 0; -pub const TIOCPKT_FLUSHREAD: ::c_int = 1; -pub const TIOCPKT_FLUSHWRITE: ::c_int = 2; -pub const TIOCPKT_NOSTOP: ::c_int = 0x10; -pub const TIOCPKT_DOSTOP: ::c_int = 0x20; -pub const TIOCPKT_START: ::c_int = 8; -pub const TIOCPKT_STOP: ::c_int = 4; +pub const IOCPARM_MASK: c_int = 0x7f; +pub const IOC_VOID: c_int = 0x20000000; +pub const IOC_OUT: c_int = 0x40000000; +pub const IOC_IN: c_int = 0x40000000 << 1; +pub const IOC_INOUT: c_int = IOC_IN | IOC_OUT; +pub const FIOCLEX: c_int = 536897025; +pub const FIONCLEX: c_int = 536897026; +pub const FIONREAD: c_int = 1074030207; +pub const FIONBIO: c_int = -2147195266; +pub const FIOASYNC: c_int = -2147195267; +pub const FIOSETOWN: c_int = -2147195268; +pub const FIOGETOWN: c_int = 1074030203; +pub const TIOCGETD: c_int = 0x40047400; +pub const TIOCSETD: c_int = 0x80047401; +pub const TIOCHPCL: c_int = 0x20007402; +pub const TIOCMODG: c_int = 0x40047403; +pub const TIOCMODS: c_int = 0x80047404; +pub const TIOCM_LE: c_int = 0x1; +pub const TIOCM_DTR: c_int = 0x2; +pub const TIOCM_RTS: c_int = 0x4; +pub const TIOCM_ST: c_int = 0x8; +pub const TIOCM_SR: c_int = 0x10; +pub const TIOCM_CTS: c_int = 0x20; +pub const TIOCM_CAR: c_int = 0x40; +pub const TIOCM_CD: c_int = 0x40; +pub const TIOCM_RNG: c_int = 0x80; +pub const TIOCM_RI: c_int = 0x80; +pub const TIOCM_DSR: c_int = 0x100; +pub const TIOCGETP: c_int = 0x40067408; +pub const TIOCSETP: c_int = 0x80067409; +pub const TIOCSETN: c_int = 0x8006740a; +pub const TIOCEXCL: c_int = 0x2000740d; +pub const TIOCNXCL: c_int = 0x2000740e; +pub const TIOCFLUSH: c_int = 0x80047410; +pub const TIOCSETC: c_int = 0x80067411; +pub const TIOCGETC: c_int = 0x40067412; +pub const TANDEM: c_int = 0x1; +pub const CBREAK: c_int = 0x2; +pub const LCASE: c_int = 0x4; +pub const MDMBUF: c_int = 0x800000; +pub const XTABS: c_int = 0xc00; +pub const SIOCADDMULTI: c_int = -2145359567; +pub const SIOCADDRT: c_int = -2143784438; +pub const SIOCDARP: c_int = -2142476000; +pub const SIOCDELMULTI: c_int = -2145359566; +pub const SIOCDELRT: c_int = -2143784437; +pub const SIOCDIFADDR: c_int = -2144835303; +pub const SIOCGARP: c_int = -1068734170; +pub const SIOCGIFADDR: c_int = -1071093471; +pub const SIOCGIFBRDADDR: c_int = -1071093469; +pub const SIOCGIFCONF: c_int = -1072666299; +pub const SIOCGIFDSTADDR: c_int = -1071093470; +pub const SIOCGIFFLAGS: c_int = -1071093487; +pub const SIOCGIFHWADDR: c_int = -1068209771; +pub const SIOCGIFMETRIC: c_int = -1071093481; +pub const SIOCGIFMTU: c_int = -1071093418; +pub const SIOCGIFNETMASK: c_int = -1071093467; +pub const SIOCSARP: c_int = -2142476002; +pub const SIOCSIFADDR: c_int = -2144835316; +pub const SIOCSIFBRDADDR: c_int = -2144835309; +pub const SIOCSIFDSTADDR: c_int = -2144835314; +pub const SIOCSIFFLAGS: c_int = -2144835312; +pub const SIOCSIFMETRIC: c_int = -2144835304; +pub const SIOCSIFMTU: c_int = -2144835240; +pub const SIOCSIFNETMASK: c_int = -2144835306; +pub const TIOCUCNTL: c_int = -2147191706; +pub const TIOCCONS: c_int = -2147191710; +pub const TIOCPKT: c_int = -2147191696; +pub const TIOCPKT_DATA: c_int = 0; +pub const TIOCPKT_FLUSHREAD: c_int = 1; +pub const TIOCPKT_FLUSHWRITE: c_int = 2; +pub const TIOCPKT_NOSTOP: c_int = 0x10; +pub const TIOCPKT_DOSTOP: c_int = 0x20; +pub const TIOCPKT_START: c_int = 8; +pub const TIOCPKT_STOP: c_int = 4; // sys/ipc.h -pub const IPC_ALLOC: ::c_int = 0o100000; -pub const IPC_CREAT: ::c_int = 0o020000; -pub const IPC_EXCL: ::c_int = 0o002000; -pub const IPC_NOWAIT: ::c_int = 0o004000; -pub const IPC_RMID: ::c_int = 0; -pub const IPC_SET: ::c_int = 101; -pub const IPC_R: ::c_int = 0o0400; -pub const IPC_W: ::c_int = 0o0200; -pub const IPC_O: ::c_int = 0o1000; -pub const IPC_NOERROR: ::c_int = 0o10000; -pub const IPC_STAT: ::c_int = 102; -pub const IPC_PRIVATE: ::key_t = -1; -pub const SHM_LOCK: ::c_int = 201; -pub const SHM_UNLOCK: ::c_int = 202; +pub const IPC_ALLOC: c_int = 0o100000; +pub const IPC_CREAT: c_int = 0o020000; +pub const IPC_EXCL: c_int = 0o002000; +pub const IPC_NOWAIT: c_int = 0o004000; +pub const IPC_RMID: c_int = 0; +pub const IPC_SET: c_int = 101; +pub const IPC_R: c_int = 0o0400; +pub const IPC_W: c_int = 0o0200; +pub const IPC_O: c_int = 0o1000; +pub const IPC_NOERROR: c_int = 0o10000; +pub const IPC_STAT: c_int = 102; +pub const IPC_PRIVATE: crate::key_t = -1; +pub const SHM_LOCK: c_int = 201; +pub const SHM_UNLOCK: c_int = 202; // sys/ldr.h -pub const L_GETINFO: ::c_int = 2; -pub const L_GETMESSAGE: ::c_int = 1; -pub const L_GETLIBPATH: ::c_int = 3; -pub const L_GETXINFO: ::c_int = 8; +pub const L_GETINFO: c_int = 2; +pub const L_GETMESSAGE: c_int = 1; +pub const L_GETLIBPATH: c_int = 3; +pub const L_GETXINFO: c_int = 8; // sys/limits.h -pub const PATH_MAX: ::c_int = 1023; -pub const PAGESIZE: ::c_int = 4096; -pub const IOV_MAX: ::c_int = 16; -pub const AIO_LISTIO_MAX: ::c_int = 4096; +pub const PATH_MAX: c_int = 1023; +pub const PAGESIZE: c_int = 4096; +pub const IOV_MAX: c_int = 16; +pub const AIO_LISTIO_MAX: c_int = 4096; pub const PIPE_BUF: usize = 32768; -pub const OPEN_MAX: ::c_int = 65534; -pub const MAX_INPUT: ::c_int = 512; -pub const MAX_CANON: ::c_int = 256; -pub const ARG_MAX: ::c_int = 1048576; -pub const BC_BASE_MAX: ::c_int = 99; -pub const BC_DIM_MAX: ::c_int = 0x800; -pub const BC_SCALE_MAX: ::c_int = 99; -pub const BC_STRING_MAX: ::c_int = 0x800; -pub const CHARCLASS_NAME_MAX: ::c_int = 14; -pub const CHILD_MAX: ::c_int = 128; -pub const COLL_WEIGHTS_MAX: ::c_int = 4; -pub const EXPR_NEST_MAX: ::c_int = 32; -pub const NZERO: ::c_int = 20; +pub const OPEN_MAX: c_int = 65534; +pub const MAX_INPUT: c_int = 512; +pub const MAX_CANON: c_int = 256; +pub const ARG_MAX: c_int = 1048576; +pub const BC_BASE_MAX: c_int = 99; +pub const BC_DIM_MAX: c_int = 0x800; +pub const BC_SCALE_MAX: c_int = 99; +pub const BC_STRING_MAX: c_int = 0x800; +pub const CHARCLASS_NAME_MAX: c_int = 14; +pub const CHILD_MAX: c_int = 128; +pub const COLL_WEIGHTS_MAX: c_int = 4; +pub const EXPR_NEST_MAX: c_int = 32; +pub const NZERO: c_int = 20; // sys/lockf.h -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; +pub const F_LOCK: c_int = 1; +pub const F_TEST: c_int = 3; +pub const F_TLOCK: c_int = 2; +pub const F_ULOCK: c_int = 0; // sys/machine.h -pub const BIG_ENDIAN: ::c_int = 4321; -pub const LITTLE_ENDIAN: ::c_int = 1234; -pub const PDP_ENDIAN: ::c_int = 3412; +pub const BIG_ENDIAN: c_int = 4321; +pub const LITTLE_ENDIAN: c_int = 1234; +pub const PDP_ENDIAN: c_int = 3412; // sys/mman.h -pub const PROT_NONE: ::c_int = 0; -pub const PROT_READ: ::c_int = 1; -pub const PROT_WRITE: ::c_int = 2; -pub const PROT_EXEC: ::c_int = 4; -pub const MAP_FILE: ::c_int = 0; -pub const MAP_SHARED: ::c_int = 1; -pub const MAP_PRIVATE: ::c_int = 2; -pub const MAP_FIXED: ::c_int = 0x100; -pub const MAP_ANON: ::c_int = 0x10; -pub const MAP_ANONYMOUS: ::c_int = 0x10; -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; -pub const MAP_TYPE: ::c_int = 0xf0; -pub const MCL_CURRENT: ::c_int = 0x100; -pub const MCL_FUTURE: ::c_int = 0x200; -pub const MS_SYNC: ::c_int = 0x20; -pub const MS_ASYNC: ::c_int = 0x10; -pub const MS_INVALIDATE: ::c_int = 0x40; -pub const POSIX_MADV_NORMAL: ::c_int = 1; -pub const POSIX_MADV_RANDOM: ::c_int = 3; -pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_MADV_WILLNEED: ::c_int = 4; -pub const POSIX_MADV_DONTNEED: ::c_int = 5; -pub const MADV_NORMAL: ::c_int = 0; -pub const MADV_RANDOM: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_WILLNEED: ::c_int = 3; -pub const MADV_DONTNEED: ::c_int = 4; +pub const PROT_NONE: c_int = 0; +pub const PROT_READ: c_int = 1; +pub const PROT_WRITE: c_int = 2; +pub const PROT_EXEC: c_int = 4; +pub const MAP_FILE: c_int = 0; +pub const MAP_SHARED: c_int = 1; +pub const MAP_PRIVATE: c_int = 2; +pub const MAP_FIXED: c_int = 0x100; +pub const MAP_ANON: c_int = 0x10; +pub const MAP_ANONYMOUS: c_int = 0x10; +pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; +pub const MAP_TYPE: c_int = 0xf0; +pub const MCL_CURRENT: c_int = 0x100; +pub const MCL_FUTURE: c_int = 0x200; +pub const MS_SYNC: c_int = 0x20; +pub const MS_ASYNC: c_int = 0x10; +pub const MS_INVALIDATE: c_int = 0x40; +pub const POSIX_MADV_NORMAL: c_int = 1; +pub const POSIX_MADV_RANDOM: c_int = 3; +pub const POSIX_MADV_SEQUENTIAL: c_int = 2; +pub const POSIX_MADV_WILLNEED: c_int = 4; +pub const POSIX_MADV_DONTNEED: c_int = 5; +pub const MADV_NORMAL: c_int = 0; +pub const MADV_RANDOM: c_int = 1; +pub const MADV_SEQUENTIAL: c_int = 2; +pub const MADV_WILLNEED: c_int = 3; +pub const MADV_DONTNEED: c_int = 4; // sys/mode.h pub const S_IFMT: mode_t = 0o17_0000; @@ -1618,640 +1623,640 @@ pub const S_IWRITE: mode_t = 0o0200; pub const S_IREAD: mode_t = 0o0400; // sys/msg.h -pub const MSG_NOERROR: ::c_int = 0o10000; +pub const MSG_NOERROR: c_int = 0o10000; // sys/m_signal.h -pub const SIGSTKSZ: ::size_t = 4096; -pub const MINSIGSTKSZ: ::size_t = 1200; +pub const SIGSTKSZ: size_t = 4096; +pub const MINSIGSTKSZ: size_t = 1200; // sys/params.h -pub const MAXPATHLEN: ::c_int = PATH_MAX + 1; -pub const MAXSYMLINKS: ::c_int = 20; -pub const MAXHOSTNAMELEN: ::c_int = 256; -pub const MAXUPRC: ::c_int = 128; -pub const NGROUPS_MAX: ::c_ulong = 2048; -pub const NGROUPS: ::c_ulong = NGROUPS_MAX; -pub const NOFILE: ::c_int = OPEN_MAX; +pub const MAXPATHLEN: c_int = PATH_MAX + 1; +pub const MAXSYMLINKS: c_int = 20; +pub const MAXHOSTNAMELEN: c_int = 256; +pub const MAXUPRC: c_int = 128; +pub const NGROUPS_MAX: c_ulong = 2048; +pub const NGROUPS: c_ulong = NGROUPS_MAX; +pub const NOFILE: c_int = OPEN_MAX; // sys/poll.h -pub const POLLIN: ::c_short = 0x0001; -pub const POLLPRI: ::c_short = 0x0004; -pub const POLLOUT: ::c_short = 0x0002; -pub const POLLERR: ::c_short = 0x4000; -pub const POLLHUP: ::c_short = 0x2000; -pub const POLLMSG: ::c_short = 0x0080; -pub const POLLSYNC: ::c_short = 0x8000; -pub const POLLNVAL: ::c_short = POLLSYNC; -pub const POLLNORM: ::c_short = POLLIN; -pub const POLLRDNORM: ::c_short = 0x0010; -pub const POLLWRNORM: ::c_short = POLLOUT; -pub const POLLRDBAND: ::c_short = 0x0020; -pub const POLLWRBAND: ::c_short = 0x0040; +pub const POLLIN: c_short = 0x0001; +pub const POLLPRI: c_short = 0x0004; +pub const POLLOUT: c_short = 0x0002; +pub const POLLERR: c_short = 0x4000; +pub const POLLHUP: c_short = 0x2000; +pub const POLLMSG: c_short = 0x0080; +pub const POLLSYNC: c_short = 0x8000; +pub const POLLNVAL: c_short = POLLSYNC; +pub const POLLNORM: c_short = POLLIN; +pub const POLLRDNORM: c_short = 0x0010; +pub const POLLWRNORM: c_short = POLLOUT; +pub const POLLRDBAND: c_short = 0x0020; +pub const POLLWRBAND: c_short = 0x0040; // sys/pollset.h -pub const PS_ADD: ::c_uchar = 0; -pub const PS_MOD: ::c_uchar = 1; -pub const PS_DELETE: ::c_uchar = 2; -pub const PS_REPLACE: ::c_uchar = 3; +pub const PS_ADD: c_uchar = 0; +pub const PS_MOD: c_uchar = 1; +pub const PS_DELETE: c_uchar = 2; +pub const PS_REPLACE: c_uchar = 3; // sys/ptrace.h -pub const PT_TRACE_ME: ::c_int = 0; -pub const PT_READ_I: ::c_int = 1; -pub const PT_READ_D: ::c_int = 2; -pub const PT_WRITE_I: ::c_int = 4; -pub const PT_WRITE_D: ::c_int = 5; -pub const PT_CONTINUE: ::c_int = 7; -pub const PT_KILL: ::c_int = 8; -pub const PT_STEP: ::c_int = 9; -pub const PT_READ_GPR: ::c_int = 11; -pub const PT_READ_FPR: ::c_int = 12; -pub const PT_WRITE_GPR: ::c_int = 14; -pub const PT_WRITE_FPR: ::c_int = 15; -pub const PT_READ_BLOCK: ::c_int = 17; -pub const PT_WRITE_BLOCK: ::c_int = 19; -pub const PT_ATTACH: ::c_int = 30; -pub const PT_DETACH: ::c_int = 31; -pub const PT_REGSET: ::c_int = 32; -pub const PT_REATT: ::c_int = 33; -pub const PT_LDINFO: ::c_int = 34; -pub const PT_MULTI: ::c_int = 35; -pub const PT_NEXT: ::c_int = 36; -pub const PT_SET: ::c_int = 37; -pub const PT_CLEAR: ::c_int = 38; -pub const PT_LDXINFO: ::c_int = 39; -pub const PT_QUERY: ::c_int = 40; -pub const PT_WATCH: ::c_int = 41; -pub const PTT_CONTINUE: ::c_int = 50; -pub const PTT_STEP: ::c_int = 51; -pub const PTT_READ_SPRS: ::c_int = 52; -pub const PTT_WRITE_SPRS: ::c_int = 53; -pub const PTT_READ_GPRS: ::c_int = 54; -pub const PTT_WRITE_GPRS: ::c_int = 55; -pub const PTT_READ_FPRS: ::c_int = 56; -pub const PTT_WRITE_FPRS: ::c_int = 57; -pub const PTT_READ_VEC: ::c_int = 58; -pub const PTT_WRITE_VEC: ::c_int = 59; -pub const PTT_WATCH: ::c_int = 60; -pub const PTT_SET_TRAP: ::c_int = 61; -pub const PTT_CLEAR_TRAP: ::c_int = 62; -pub const PTT_READ_UKEYSET: ::c_int = 63; -pub const PT_GET_UKEY: ::c_int = 64; -pub const PTT_READ_FPSCR_HI: ::c_int = 65; -pub const PTT_WRITE_FPSCR_HI: ::c_int = 66; -pub const PTT_READ_VSX: ::c_int = 67; -pub const PTT_WRITE_VSX: ::c_int = 68; -pub const PTT_READ_TM: ::c_int = 69; -pub const PTRACE_ATTACH: ::c_int = 14; -pub const PTRACE_CONT: ::c_int = 7; -pub const PTRACE_DETACH: ::c_int = 15; -pub const PTRACE_GETFPREGS: ::c_int = 12; -pub const PTRACE_GETREGS: ::c_int = 10; -pub const PTRACE_KILL: ::c_int = 8; -pub const PTRACE_PEEKDATA: ::c_int = 2; -pub const PTRACE_PEEKTEXT: ::c_int = 1; -pub const PTRACE_PEEKUSER: ::c_int = 3; -pub const PTRACE_POKEDATA: ::c_int = 5; -pub const PTRACE_POKETEXT: ::c_int = 4; -pub const PTRACE_POKEUSER: ::c_int = 6; -pub const PTRACE_SETFPREGS: ::c_int = 13; -pub const PTRACE_SETREGS: ::c_int = 11; -pub const PTRACE_SINGLESTEP: ::c_int = 9; -pub const PTRACE_SYSCALL: ::c_int = 16; -pub const PTRACE_TRACEME: ::c_int = 0; +pub const PT_TRACE_ME: c_int = 0; +pub const PT_READ_I: c_int = 1; +pub const PT_READ_D: c_int = 2; +pub const PT_WRITE_I: c_int = 4; +pub const PT_WRITE_D: c_int = 5; +pub const PT_CONTINUE: c_int = 7; +pub const PT_KILL: c_int = 8; +pub const PT_STEP: c_int = 9; +pub const PT_READ_GPR: c_int = 11; +pub const PT_READ_FPR: c_int = 12; +pub const PT_WRITE_GPR: c_int = 14; +pub const PT_WRITE_FPR: c_int = 15; +pub const PT_READ_BLOCK: c_int = 17; +pub const PT_WRITE_BLOCK: c_int = 19; +pub const PT_ATTACH: c_int = 30; +pub const PT_DETACH: c_int = 31; +pub const PT_REGSET: c_int = 32; +pub const PT_REATT: c_int = 33; +pub const PT_LDINFO: c_int = 34; +pub const PT_MULTI: c_int = 35; +pub const PT_NEXT: c_int = 36; +pub const PT_SET: c_int = 37; +pub const PT_CLEAR: c_int = 38; +pub const PT_LDXINFO: c_int = 39; +pub const PT_QUERY: c_int = 40; +pub const PT_WATCH: c_int = 41; +pub const PTT_CONTINUE: c_int = 50; +pub const PTT_STEP: c_int = 51; +pub const PTT_READ_SPRS: c_int = 52; +pub const PTT_WRITE_SPRS: c_int = 53; +pub const PTT_READ_GPRS: c_int = 54; +pub const PTT_WRITE_GPRS: c_int = 55; +pub const PTT_READ_FPRS: c_int = 56; +pub const PTT_WRITE_FPRS: c_int = 57; +pub const PTT_READ_VEC: c_int = 58; +pub const PTT_WRITE_VEC: c_int = 59; +pub const PTT_WATCH: c_int = 60; +pub const PTT_SET_TRAP: c_int = 61; +pub const PTT_CLEAR_TRAP: c_int = 62; +pub const PTT_READ_UKEYSET: c_int = 63; +pub const PT_GET_UKEY: c_int = 64; +pub const PTT_READ_FPSCR_HI: c_int = 65; +pub const PTT_WRITE_FPSCR_HI: c_int = 66; +pub const PTT_READ_VSX: c_int = 67; +pub const PTT_WRITE_VSX: c_int = 68; +pub const PTT_READ_TM: c_int = 69; +pub const PTRACE_ATTACH: c_int = 14; +pub const PTRACE_CONT: c_int = 7; +pub const PTRACE_DETACH: c_int = 15; +pub const PTRACE_GETFPREGS: c_int = 12; +pub const PTRACE_GETREGS: c_int = 10; +pub const PTRACE_KILL: c_int = 8; +pub const PTRACE_PEEKDATA: c_int = 2; +pub const PTRACE_PEEKTEXT: c_int = 1; +pub const PTRACE_PEEKUSER: c_int = 3; +pub const PTRACE_POKEDATA: c_int = 5; +pub const PTRACE_POKETEXT: c_int = 4; +pub const PTRACE_POKEUSER: c_int = 6; +pub const PTRACE_SETFPREGS: c_int = 13; +pub const PTRACE_SETREGS: c_int = 11; +pub const PTRACE_SINGLESTEP: c_int = 9; +pub const PTRACE_SYSCALL: c_int = 16; +pub const PTRACE_TRACEME: c_int = 0; // sys/resource.h -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_RSS: ::c_int = 5; -pub const RLIMIT_AS: ::c_int = 6; -pub const RLIMIT_NOFILE: ::c_int = 7; -pub const RLIMIT_THREADS: ::c_int = 8; -pub const RLIMIT_NPROC: ::c_int = 9; -pub const RUSAGE_SELF: ::c_int = 0; -pub const RUSAGE_CHILDREN: ::c_int = -1; -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; -pub const RUSAGE_THREAD: ::c_int = 1; -pub const RLIM_SAVED_MAX: ::c_ulong = RLIM_INFINITY - 1; -pub const RLIM_SAVED_CUR: ::c_ulong = RLIM_INFINITY - 2; +pub const RLIMIT_CPU: c_int = 0; +pub const RLIMIT_FSIZE: c_int = 1; +pub const RLIMIT_DATA: c_int = 2; +pub const RLIMIT_STACK: c_int = 3; +pub const RLIMIT_CORE: c_int = 4; +pub const RLIMIT_RSS: c_int = 5; +pub const RLIMIT_AS: c_int = 6; +pub const RLIMIT_NOFILE: c_int = 7; +pub const RLIMIT_THREADS: c_int = 8; +pub const RLIMIT_NPROC: c_int = 9; +pub const RUSAGE_SELF: c_int = 0; +pub const RUSAGE_CHILDREN: c_int = -1; +pub const PRIO_PROCESS: c_int = 0; +pub const PRIO_PGRP: c_int = 1; +pub const PRIO_USER: c_int = 2; +pub const RUSAGE_THREAD: c_int = 1; +pub const RLIM_SAVED_MAX: c_ulong = RLIM_INFINITY - 1; +pub const RLIM_SAVED_CUR: c_ulong = RLIM_INFINITY - 2; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIM_NLIMITS: ::c_int = 10; +pub const RLIM_NLIMITS: c_int = 10; // sys/sched.h -pub const SCHED_OTHER: ::c_int = 0; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; -pub const SCHED_LOCAL: ::c_int = 3; -pub const SCHED_GLOBAL: ::c_int = 4; -pub const SCHED_FIFO2: ::c_int = 5; -pub const SCHED_FIFO3: ::c_int = 6; -pub const SCHED_FIFO4: ::c_int = 7; +pub const SCHED_OTHER: c_int = 0; +pub const SCHED_FIFO: c_int = 1; +pub const SCHED_RR: c_int = 2; +pub const SCHED_LOCAL: c_int = 3; +pub const SCHED_GLOBAL: c_int = 4; +pub const SCHED_FIFO2: c_int = 5; +pub const SCHED_FIFO3: c_int = 6; +pub const SCHED_FIFO4: c_int = 7; // sys/sem.h -pub const SEM_UNDO: ::c_int = 0o10000; -pub const GETNCNT: ::c_int = 3; -pub const GETPID: ::c_int = 4; -pub const GETVAL: ::c_int = 5; -pub const GETALL: ::c_int = 6; -pub const GETZCNT: ::c_int = 7; -pub const SETVAL: ::c_int = 8; -pub const SETALL: ::c_int = 9; +pub const SEM_UNDO: c_int = 0o10000; +pub const GETNCNT: c_int = 3; +pub const GETPID: c_int = 4; +pub const GETVAL: c_int = 5; +pub const GETALL: c_int = 6; +pub const GETZCNT: c_int = 7; +pub const SETVAL: c_int = 8; +pub const SETALL: c_int = 9; // sys/shm.h -pub const SHMLBA: ::c_int = 0x10000000; -pub const SHMLBA_EXTSHM: ::c_int = 0x1000; -pub const SHM_SHMAT: ::c_int = 0x80000000; -pub const SHM_RDONLY: ::c_int = 0o10000; -pub const SHM_RND: ::c_int = 0o20000; -pub const SHM_PIN: ::c_int = 0o4000; -pub const SHM_LGPAGE: ::c_int = 0o20000000000; -pub const SHM_MAP: ::c_int = 0o4000; -pub const SHM_FMAP: ::c_int = 0o2000; -pub const SHM_COPY: ::c_int = 0o40000; -pub const SHM_CLEAR: ::c_int = 0; -pub const SHM_HGSEG: ::c_int = 0o10000000000; -pub const SHM_R: ::c_int = IPC_R; -pub const SHM_W: ::c_int = IPC_W; -pub const SHM_DEST: ::c_int = 0o2000; +pub const SHMLBA: c_int = 0x10000000; +pub const SHMLBA_EXTSHM: c_int = 0x1000; +pub const SHM_SHMAT: c_int = 0x80000000; +pub const SHM_RDONLY: c_int = 0o10000; +pub const SHM_RND: c_int = 0o20000; +pub const SHM_PIN: c_int = 0o4000; +pub const SHM_LGPAGE: c_int = 0o20000000000; +pub const SHM_MAP: c_int = 0o4000; +pub const SHM_FMAP: c_int = 0o2000; +pub const SHM_COPY: c_int = 0o40000; +pub const SHM_CLEAR: c_int = 0; +pub const SHM_HGSEG: c_int = 0o10000000000; +pub const SHM_R: c_int = IPC_R; +pub const SHM_W: c_int = IPC_W; +pub const SHM_DEST: c_int = 0o2000; // sys/signal.h -pub const SA_ONSTACK: ::c_int = 0x00000001; -pub const SA_RESETHAND: ::c_int = 0x00000002; -pub const SA_RESTART: ::c_int = 0x00000008; -pub const SA_SIGINFO: ::c_int = 0x00000100; -pub const SA_NODEFER: ::c_int = 0x00000200; -pub const SA_NOCLDWAIT: ::c_int = 0x00000400; -pub const SA_NOCLDSTOP: ::c_int = 0x00000004; -pub const SS_ONSTACK: ::c_int = 0x00000001; -pub const SS_DISABLE: ::c_int = 0x00000002; -pub const SIGCHLD: ::c_int = 20; -pub const SIGBUS: ::c_int = 10; -pub const SIG_BLOCK: ::c_int = 0; -pub const SIG_UNBLOCK: ::c_int = 1; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIGEV_NONE: ::c_int = 1; -pub const SIGEV_SIGNAL: ::c_int = 2; -pub const SIGEV_THREAD: ::c_int = 3; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSEGV: ::c_int = 11; -pub const SIGSYS: ::c_int = 12; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; -pub const SIGUSR1: ::c_int = 30; -pub const SIGUSR2: ::c_int = 31; -pub const SIGPWR: ::c_int = 29; -pub const SIGWINCH: ::c_int = 28; -pub const SIGURG: ::c_int = 16; -pub const SIGPOLL: ::c_int = SIGIO; -pub const SIGIO: ::c_int = 23; -pub const SIGSTOP: ::c_int = 17; -pub const SIGTSTP: ::c_int = 18; -pub const SIGCONT: ::c_int = 19; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGVTALRM: ::c_int = 34; -pub const SIGPROF: ::c_int = 32; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGTRAP: ::c_int = 5; -pub const SIGCLD: ::c_int = 20; -pub const SIGRTMAX: ::c_int = 57; -pub const SIGRTMIN: ::c_int = 50; -pub const SI_USER: ::c_int = 0; -pub const SI_UNDEFINED: ::c_int = 8; -pub const SI_EMPTY: ::c_int = 9; -pub const BUS_ADRALN: ::c_int = 1; -pub const BUS_ADRERR: ::c_int = 2; -pub const BUS_OBJERR: ::c_int = 3; -pub const BUS_UEGARD: ::c_int = 4; -pub const CLD_EXITED: ::c_int = 10; -pub const CLD_KILLED: ::c_int = 11; -pub const CLD_DUMPED: ::c_int = 12; -pub const CLD_TRAPPED: ::c_int = 13; -pub const CLD_STOPPED: ::c_int = 14; -pub const CLD_CONTINUED: ::c_int = 15; -pub const FPE_INTDIV: ::c_int = 20; -pub const FPE_INTOVF: ::c_int = 21; -pub const FPE_FLTDIV: ::c_int = 22; -pub const FPE_FLTOVF: ::c_int = 23; -pub const FPE_FLTUND: ::c_int = 24; -pub const FPE_FLTRES: ::c_int = 25; -pub const FPE_FLTINV: ::c_int = 26; -pub const FPE_FLTSUB: ::c_int = 27; -pub const ILL_ILLOPC: ::c_int = 30; -pub const ILL_ILLOPN: ::c_int = 31; -pub const ILL_ILLADR: ::c_int = 32; -pub const ILL_ILLTRP: ::c_int = 33; -pub const ILL_PRVOPC: ::c_int = 34; -pub const ILL_PRVREG: ::c_int = 35; -pub const ILL_COPROC: ::c_int = 36; -pub const ILL_BADSTK: ::c_int = 37; -pub const ILL_TMBADTHING: ::c_int = 38; -pub const POLL_IN: ::c_int = 40; -pub const POLL_OUT: ::c_int = 41; -pub const POLL_MSG: ::c_int = -3; -pub const POLL_ERR: ::c_int = 43; -pub const POLL_PRI: ::c_int = 44; -pub const POLL_HUP: ::c_int = 45; -pub const SEGV_MAPERR: ::c_int = 50; -pub const SEGV_ACCERR: ::c_int = 51; -pub const SEGV_KEYERR: ::c_int = 52; -pub const TRAP_BRKPT: ::c_int = 60; -pub const TRAP_TRACE: ::c_int = 61; -pub const SI_QUEUE: ::c_int = 71; -pub const SI_TIMER: ::c_int = 72; -pub const SI_ASYNCIO: ::c_int = 73; -pub const SI_MESGQ: ::c_int = 74; +pub const SA_ONSTACK: c_int = 0x00000001; +pub const SA_RESETHAND: c_int = 0x00000002; +pub const SA_RESTART: c_int = 0x00000008; +pub const SA_SIGINFO: c_int = 0x00000100; +pub const SA_NODEFER: c_int = 0x00000200; +pub const SA_NOCLDWAIT: c_int = 0x00000400; +pub const SA_NOCLDSTOP: c_int = 0x00000004; +pub const SS_ONSTACK: c_int = 0x00000001; +pub const SS_DISABLE: c_int = 0x00000002; +pub const SIGCHLD: c_int = 20; +pub const SIGBUS: c_int = 10; +pub const SIG_BLOCK: c_int = 0; +pub const SIG_UNBLOCK: c_int = 1; +pub const SIG_SETMASK: c_int = 2; +pub const SIGEV_NONE: c_int = 1; +pub const SIGEV_SIGNAL: c_int = 2; +pub const SIGEV_THREAD: c_int = 3; +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGABRT: c_int = 6; +pub const SIGEMT: c_int = 7; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGSEGV: c_int = 11; +pub const SIGSYS: c_int = 12; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; +pub const SIGUSR1: c_int = 30; +pub const SIGUSR2: c_int = 31; +pub const SIGPWR: c_int = 29; +pub const SIGWINCH: c_int = 28; +pub const SIGURG: c_int = 16; +pub const SIGPOLL: c_int = SIGIO; +pub const SIGIO: c_int = 23; +pub const SIGSTOP: c_int = 17; +pub const SIGTSTP: c_int = 18; +pub const SIGCONT: c_int = 19; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGVTALRM: c_int = 34; +pub const SIGPROF: c_int = 32; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGTRAP: c_int = 5; +pub const SIGCLD: c_int = 20; +pub const SIGRTMAX: c_int = 57; +pub const SIGRTMIN: c_int = 50; +pub const SI_USER: c_int = 0; +pub const SI_UNDEFINED: c_int = 8; +pub const SI_EMPTY: c_int = 9; +pub const BUS_ADRALN: c_int = 1; +pub const BUS_ADRERR: c_int = 2; +pub const BUS_OBJERR: c_int = 3; +pub const BUS_UEGARD: c_int = 4; +pub const CLD_EXITED: c_int = 10; +pub const CLD_KILLED: c_int = 11; +pub const CLD_DUMPED: c_int = 12; +pub const CLD_TRAPPED: c_int = 13; +pub const CLD_STOPPED: c_int = 14; +pub const CLD_CONTINUED: c_int = 15; +pub const FPE_INTDIV: c_int = 20; +pub const FPE_INTOVF: c_int = 21; +pub const FPE_FLTDIV: c_int = 22; +pub const FPE_FLTOVF: c_int = 23; +pub const FPE_FLTUND: c_int = 24; +pub const FPE_FLTRES: c_int = 25; +pub const FPE_FLTINV: c_int = 26; +pub const FPE_FLTSUB: c_int = 27; +pub const ILL_ILLOPC: c_int = 30; +pub const ILL_ILLOPN: c_int = 31; +pub const ILL_ILLADR: c_int = 32; +pub const ILL_ILLTRP: c_int = 33; +pub const ILL_PRVOPC: c_int = 34; +pub const ILL_PRVREG: c_int = 35; +pub const ILL_COPROC: c_int = 36; +pub const ILL_BADSTK: c_int = 37; +pub const ILL_TMBADTHING: c_int = 38; +pub const POLL_IN: c_int = 40; +pub const POLL_OUT: c_int = 41; +pub const POLL_MSG: c_int = -3; +pub const POLL_ERR: c_int = 43; +pub const POLL_PRI: c_int = 44; +pub const POLL_HUP: c_int = 45; +pub const SEGV_MAPERR: c_int = 50; +pub const SEGV_ACCERR: c_int = 51; +pub const SEGV_KEYERR: c_int = 52; +pub const TRAP_BRKPT: c_int = 60; +pub const TRAP_TRACE: c_int = 61; +pub const SI_QUEUE: c_int = 71; +pub const SI_TIMER: c_int = 72; +pub const SI_ASYNCIO: c_int = 73; +pub const SI_MESGQ: c_int = 74; // sys/socket.h -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_UNIX: ::c_int = 1; -pub const AF_INET: ::c_int = 2; -pub const AF_IMPLINK: ::c_int = 3; -pub const AF_PUP: ::c_int = 4; -pub const AF_CHAOS: ::c_int = 5; -pub const AF_NS: ::c_int = 6; -pub const AF_ECMA: ::c_int = 8; -pub const AF_DATAKIT: ::c_int = 9; -pub const AF_CCITT: ::c_int = 10; -pub const AF_SNA: ::c_int = 11; -pub const AF_DECnet: ::c_int = 12; -pub const AF_DLI: ::c_int = 13; -pub const AF_LAT: ::c_int = 14; -pub const SO_TIMESTAMPNS: ::c_int = 0x100a; -pub const SOMAXCONN: ::c_int = 1024; -pub const AF_LOCAL: ::c_int = AF_UNIX; -pub const UIO_MAXIOV: ::c_int = 1024; -pub const pseudo_AF_XTP: ::c_int = 19; -pub const AF_HYLINK: ::c_int = 15; -pub const AF_APPLETALK: ::c_int = 16; -pub const AF_ISO: ::c_int = 7; -pub const AF_OSI: ::c_int = AF_ISO; -pub const AF_ROUTE: ::c_int = 17; -pub const AF_LINK: ::c_int = 18; -pub const AF_INET6: ::c_int = 24; -pub const AF_INTF: ::c_int = 20; -pub const AF_RIF: ::c_int = 21; -pub const AF_NDD: ::c_int = 23; -pub const AF_MAX: ::c_int = 30; -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_UNIX: ::c_int = AF_UNIX; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_IMPLINK: ::c_int = AF_IMPLINK; -pub const PF_PUP: ::c_int = AF_PUP; -pub const PF_CHAOS: ::c_int = AF_CHAOS; -pub const PF_NS: ::c_int = AF_NS; -pub const PF_ISO: ::c_int = AF_ISO; -pub const PF_OSI: ::c_int = AF_ISO; -pub const PF_ECMA: ::c_int = AF_ECMA; -pub const PF_DATAKIT: ::c_int = AF_DATAKIT; -pub const PF_CCITT: ::c_int = AF_CCITT; -pub const PF_SNA: ::c_int = AF_SNA; -pub const PF_DECnet: ::c_int = AF_DECnet; -pub const PF_DLI: ::c_int = AF_DLI; -pub const PF_LAT: ::c_int = AF_LAT; -pub const PF_HYLINK: ::c_int = AF_HYLINK; -pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_LINK: ::c_int = AF_LINK; -pub const PF_XTP: ::c_int = 19; -pub const PF_RIF: ::c_int = AF_RIF; -pub const PF_INTF: ::c_int = AF_INTF; -pub const PF_NDD: ::c_int = AF_NDD; -pub const PF_INET6: ::c_int = AF_INET6; -pub const PF_MAX: ::c_int = AF_MAX; -pub const SF_CLOSE: ::c_int = 1; -pub const SF_REUSE: ::c_int = 2; -pub const SF_DONT_CACHE: ::c_int = 4; -pub const SF_SYNC_CACHE: ::c_int = 8; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOL_SOCKET: ::c_int = 0xffff; -pub const SO_DEBUG: ::c_int = 0x0001; -pub const SO_ACCEPTCONN: ::c_int = 0x0002; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_USE_IFBUFS: ::c_int = 0x0400; -pub const SO_CKSUMRECV: ::c_int = 0x0800; -pub const SO_NOREUSEADDR: ::c_int = 0x1000; -pub const SO_KERNACCEPT: ::c_int = 0x2000; -pub const SO_NOMULTIPATH: ::c_int = 0x4000; -pub const SO_AUDIT: ::c_int = 0x8000; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVLOWAT: ::c_int = 0x1004; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_TYPE: ::c_int = 0x1008; -pub const SCM_RIGHTS: ::c_int = 0x01; -pub const MSG_OOB: ::c_int = 0x1; -pub const MSG_PEEK: ::c_int = 0x2; -pub const MSG_DONTROUTE: ::c_int = 0x4; -pub const MSG_EOR: ::c_int = 0x8; -pub const MSG_TRUNC: ::c_int = 0x10; -pub const MSG_CTRUNC: ::c_int = 0x20; -pub const MSG_WAITALL: ::c_int = 0x40; -pub const MSG_MPEG2: ::c_int = 0x80; -pub const MSG_NOSIGNAL: ::c_int = 0x100; -pub const MSG_WAITFORONE: ::c_int = 0x200; -pub const MSG_ARGEXT: ::c_int = 0x400; -pub const MSG_NONBLOCK: ::c_int = 0x4000; -pub const MSG_COMPAT: ::c_int = 0x8000; -pub const MSG_MAXIOVLEN: ::c_int = 16; -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; +pub const AF_UNSPEC: c_int = 0; +pub const AF_UNIX: c_int = 1; +pub const AF_INET: c_int = 2; +pub const AF_IMPLINK: c_int = 3; +pub const AF_PUP: c_int = 4; +pub const AF_CHAOS: c_int = 5; +pub const AF_NS: c_int = 6; +pub const AF_ECMA: c_int = 8; +pub const AF_DATAKIT: c_int = 9; +pub const AF_CCITT: c_int = 10; +pub const AF_SNA: c_int = 11; +pub const AF_DECnet: c_int = 12; +pub const AF_DLI: c_int = 13; +pub const AF_LAT: c_int = 14; +pub const SO_TIMESTAMPNS: c_int = 0x100a; +pub const SOMAXCONN: c_int = 1024; +pub const AF_LOCAL: c_int = AF_UNIX; +pub const UIO_MAXIOV: c_int = 1024; +pub const pseudo_AF_XTP: c_int = 19; +pub const AF_HYLINK: c_int = 15; +pub const AF_APPLETALK: c_int = 16; +pub const AF_ISO: c_int = 7; +pub const AF_OSI: c_int = AF_ISO; +pub const AF_ROUTE: c_int = 17; +pub const AF_LINK: c_int = 18; +pub const AF_INET6: c_int = 24; +pub const AF_INTF: c_int = 20; +pub const AF_RIF: c_int = 21; +pub const AF_NDD: c_int = 23; +pub const AF_MAX: c_int = 30; +pub const PF_UNSPEC: c_int = AF_UNSPEC; +pub const PF_UNIX: c_int = AF_UNIX; +pub const PF_INET: c_int = AF_INET; +pub const PF_IMPLINK: c_int = AF_IMPLINK; +pub const PF_PUP: c_int = AF_PUP; +pub const PF_CHAOS: c_int = AF_CHAOS; +pub const PF_NS: c_int = AF_NS; +pub const PF_ISO: c_int = AF_ISO; +pub const PF_OSI: c_int = AF_ISO; +pub const PF_ECMA: c_int = AF_ECMA; +pub const PF_DATAKIT: c_int = AF_DATAKIT; +pub const PF_CCITT: c_int = AF_CCITT; +pub const PF_SNA: c_int = AF_SNA; +pub const PF_DECnet: c_int = AF_DECnet; +pub const PF_DLI: c_int = AF_DLI; +pub const PF_LAT: c_int = AF_LAT; +pub const PF_HYLINK: c_int = AF_HYLINK; +pub const PF_APPLETALK: c_int = AF_APPLETALK; +pub const PF_ROUTE: c_int = AF_ROUTE; +pub const PF_LINK: c_int = AF_LINK; +pub const PF_XTP: c_int = 19; +pub const PF_RIF: c_int = AF_RIF; +pub const PF_INTF: c_int = AF_INTF; +pub const PF_NDD: c_int = AF_NDD; +pub const PF_INET6: c_int = AF_INET6; +pub const PF_MAX: c_int = AF_MAX; +pub const SF_CLOSE: c_int = 1; +pub const SF_REUSE: c_int = 2; +pub const SF_DONT_CACHE: c_int = 4; +pub const SF_SYNC_CACHE: c_int = 8; +pub const SOCK_DGRAM: c_int = 2; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_RAW: c_int = 3; +pub const SOCK_RDM: c_int = 4; +pub const SOCK_SEQPACKET: c_int = 5; +pub const SOL_SOCKET: c_int = 0xffff; +pub const SO_DEBUG: c_int = 0x0001; +pub const SO_ACCEPTCONN: c_int = 0x0002; +pub const SO_REUSEADDR: c_int = 0x0004; +pub const SO_KEEPALIVE: c_int = 0x0008; +pub const SO_DONTROUTE: c_int = 0x0010; +pub const SO_BROADCAST: c_int = 0x0020; +pub const SO_USELOOPBACK: c_int = 0x0040; +pub const SO_LINGER: c_int = 0x0080; +pub const SO_OOBINLINE: c_int = 0x0100; +pub const SO_REUSEPORT: c_int = 0x0200; +pub const SO_USE_IFBUFS: c_int = 0x0400; +pub const SO_CKSUMRECV: c_int = 0x0800; +pub const SO_NOREUSEADDR: c_int = 0x1000; +pub const SO_KERNACCEPT: c_int = 0x2000; +pub const SO_NOMULTIPATH: c_int = 0x4000; +pub const SO_AUDIT: c_int = 0x8000; +pub const SO_SNDBUF: c_int = 0x1001; +pub const SO_RCVBUF: c_int = 0x1002; +pub const SO_SNDLOWAT: c_int = 0x1003; +pub const SO_RCVLOWAT: c_int = 0x1004; +pub const SO_SNDTIMEO: c_int = 0x1005; +pub const SO_RCVTIMEO: c_int = 0x1006; +pub const SO_ERROR: c_int = 0x1007; +pub const SO_TYPE: c_int = 0x1008; +pub const SCM_RIGHTS: c_int = 0x01; +pub const MSG_OOB: c_int = 0x1; +pub const MSG_PEEK: c_int = 0x2; +pub const MSG_DONTROUTE: c_int = 0x4; +pub const MSG_EOR: c_int = 0x8; +pub const MSG_TRUNC: c_int = 0x10; +pub const MSG_CTRUNC: c_int = 0x20; +pub const MSG_WAITALL: c_int = 0x40; +pub const MSG_MPEG2: c_int = 0x80; +pub const MSG_NOSIGNAL: c_int = 0x100; +pub const MSG_WAITFORONE: c_int = 0x200; +pub const MSG_ARGEXT: c_int = 0x400; +pub const MSG_NONBLOCK: c_int = 0x4000; +pub const MSG_COMPAT: c_int = 0x8000; +pub const MSG_MAXIOVLEN: c_int = 16; +pub const SHUT_RD: c_int = 0; +pub const SHUT_WR: c_int = 1; +pub const SHUT_RDWR: c_int = 2; // sys/stat.h -pub const UTIME_NOW: ::c_int = -2; -pub const UTIME_OMIT: ::c_int = -3; +pub const UTIME_NOW: c_int = -2; +pub const UTIME_OMIT: c_int = -3; // sys/statvfs.h -pub const ST_RDONLY: ::c_ulong = 0x0001; -pub const ST_NOSUID: ::c_ulong = 0x0040; -pub const ST_NODEV: ::c_ulong = 0x0080; +pub const ST_RDONLY: c_ulong = 0x0001; +pub const ST_NOSUID: c_ulong = 0x0040; +pub const ST_NODEV: c_ulong = 0x0080; // sys/stropts.h -pub const I_NREAD: ::c_int = 0x20005301; -pub const I_PUSH: ::c_int = 0x20005302; -pub const I_POP: ::c_int = 0x20005303; -pub const I_LOOK: ::c_int = 0x20005304; -pub const I_FLUSH: ::c_int = 0x20005305; -pub const I_SRDOPT: ::c_int = 0x20005306; -pub const I_GRDOPT: ::c_int = 0x20005307; -pub const I_STR: ::c_int = 0x20005308; -pub const I_SETSIG: ::c_int = 0x20005309; -pub const I_GETSIG: ::c_int = 0x2000530a; -pub const I_FIND: ::c_int = 0x2000530b; -pub const I_LINK: ::c_int = 0x2000530c; -pub const I_UNLINK: ::c_int = 0x2000530d; -pub const I_PEEK: ::c_int = 0x2000530f; -pub const I_FDINSERT: ::c_int = 0x20005310; -pub const I_SENDFD: ::c_int = 0x20005311; -pub const I_RECVFD: ::c_int = 0x20005312; -pub const I_SWROPT: ::c_int = 0x20005314; -pub const I_GWROPT: ::c_int = 0x20005315; -pub const I_LIST: ::c_int = 0x20005316; -pub const I_PLINK: ::c_int = 0x2000531d; -pub const I_PUNLINK: ::c_int = 0x2000531e; -pub const I_FLUSHBAND: ::c_int = 0x20005313; -pub const I_CKBAND: ::c_int = 0x20005318; -pub const I_GETBAND: ::c_int = 0x20005319; -pub const I_ATMARK: ::c_int = 0x20005317; -pub const I_SETCLTIME: ::c_int = 0x2000531b; -pub const I_GETCLTIME: ::c_int = 0x2000531c; -pub const I_CANPUT: ::c_int = 0x2000531a; +pub const I_NREAD: c_int = 0x20005301; +pub const I_PUSH: c_int = 0x20005302; +pub const I_POP: c_int = 0x20005303; +pub const I_LOOK: c_int = 0x20005304; +pub const I_FLUSH: c_int = 0x20005305; +pub const I_SRDOPT: c_int = 0x20005306; +pub const I_GRDOPT: c_int = 0x20005307; +pub const I_STR: c_int = 0x20005308; +pub const I_SETSIG: c_int = 0x20005309; +pub const I_GETSIG: c_int = 0x2000530a; +pub const I_FIND: c_int = 0x2000530b; +pub const I_LINK: c_int = 0x2000530c; +pub const I_UNLINK: c_int = 0x2000530d; +pub const I_PEEK: c_int = 0x2000530f; +pub const I_FDINSERT: c_int = 0x20005310; +pub const I_SENDFD: c_int = 0x20005311; +pub const I_RECVFD: c_int = 0x20005312; +pub const I_SWROPT: c_int = 0x20005314; +pub const I_GWROPT: c_int = 0x20005315; +pub const I_LIST: c_int = 0x20005316; +pub const I_PLINK: c_int = 0x2000531d; +pub const I_PUNLINK: c_int = 0x2000531e; +pub const I_FLUSHBAND: c_int = 0x20005313; +pub const I_CKBAND: c_int = 0x20005318; +pub const I_GETBAND: c_int = 0x20005319; +pub const I_ATMARK: c_int = 0x20005317; +pub const I_SETCLTIME: c_int = 0x2000531b; +pub const I_GETCLTIME: c_int = 0x2000531c; +pub const I_CANPUT: c_int = 0x2000531a; // sys/syslog.h -pub const LOG_CRON: ::c_int = 9 << 3; -pub const LOG_AUTHPRIV: ::c_int = 10 << 3; -pub const LOG_NFACILITIES: ::c_int = 24; -pub const LOG_PERROR: ::c_int = 0x20; +pub const LOG_CRON: c_int = 9 << 3; +pub const LOG_AUTHPRIV: c_int = 10 << 3; +pub const LOG_NFACILITIES: c_int = 24; +pub const LOG_PERROR: c_int = 0x20; // sys/systemcfg.h -pub const SC_ARCH: ::c_int = 1; -pub const SC_IMPL: ::c_int = 2; -pub const SC_VERS: ::c_int = 3; -pub const SC_WIDTH: ::c_int = 4; -pub const SC_NCPUS: ::c_int = 5; -pub const SC_L1C_ATTR: ::c_int = 6; -pub const SC_L1C_ISZ: ::c_int = 7; -pub const SC_L1C_DSZ: ::c_int = 8; -pub const SC_L1C_ICA: ::c_int = 9; -pub const SC_L1C_DCA: ::c_int = 10; -pub const SC_L1C_IBS: ::c_int = 11; -pub const SC_L1C_DBS: ::c_int = 12; -pub const SC_L1C_ILS: ::c_int = 13; -pub const SC_L1C_DLS: ::c_int = 14; -pub const SC_L2C_SZ: ::c_int = 15; -pub const SC_L2C_AS: ::c_int = 16; -pub const SC_TLB_ATTR: ::c_int = 17; -pub const SC_ITLB_SZ: ::c_int = 18; -pub const SC_DTLB_SZ: ::c_int = 19; -pub const SC_ITLB_ATT: ::c_int = 20; -pub const SC_DTLB_ATT: ::c_int = 21; -pub const SC_RESRV_SZ: ::c_int = 22; -pub const SC_PRI_LC: ::c_int = 23; -pub const SC_PRO_LC: ::c_int = 24; -pub const SC_RTC_TYPE: ::c_int = 25; -pub const SC_VIRT_AL: ::c_int = 26; -pub const SC_CAC_CONG: ::c_int = 27; -pub const SC_MOD_ARCH: ::c_int = 28; -pub const SC_MOD_IMPL: ::c_int = 29; -pub const SC_XINT: ::c_int = 30; -pub const SC_XFRAC: ::c_int = 31; -pub const SC_KRN_ATTR: ::c_int = 32; -pub const SC_PHYSMEM: ::c_int = 33; -pub const SC_SLB_ATTR: ::c_int = 34; -pub const SC_SLB_SZ: ::c_int = 35; -pub const SC_MAX_NCPUS: ::c_int = 37; -pub const SC_MAX_REALADDR: ::c_int = 38; -pub const SC_ORIG_ENT_CAP: ::c_int = 39; -pub const SC_ENT_CAP: ::c_int = 40; -pub const SC_DISP_WHE: ::c_int = 41; -pub const SC_CAPINC: ::c_int = 42; -pub const SC_VCAPW: ::c_int = 43; -pub const SC_SPLP_STAT: ::c_int = 44; -pub const SC_SMT_STAT: ::c_int = 45; -pub const SC_SMT_TC: ::c_int = 46; -pub const SC_VMX_VER: ::c_int = 47; -pub const SC_LMB_SZ: ::c_int = 48; -pub const SC_MAX_XCPU: ::c_int = 49; -pub const SC_EC_LVL: ::c_int = 50; -pub const SC_AME_STAT: ::c_int = 51; -pub const SC_ECO_STAT: ::c_int = 52; -pub const SC_DFP_VER: ::c_int = 53; -pub const SC_VRM_STAT: ::c_int = 54; -pub const SC_PHYS_IMP: ::c_int = 55; -pub const SC_PHYS_VER: ::c_int = 56; -pub const SC_SPCM_STATUS: ::c_int = 57; -pub const SC_SPCM_MAX: ::c_int = 58; -pub const SC_TM_VER: ::c_int = 59; -pub const SC_NX_CAP: ::c_int = 60; -pub const SC_PKS_STATE: ::c_int = 61; -pub const SC_MMA_VER: ::c_int = 62; -pub const POWER_RS: ::c_int = 1; -pub const POWER_PC: ::c_int = 2; -pub const IA64: ::c_int = 3; -pub const POWER_RS1: ::c_int = 0x1; -pub const POWER_RSC: ::c_int = 0x2; -pub const POWER_RS2: ::c_int = 0x4; -pub const POWER_601: ::c_int = 0x8; -pub const POWER_604: ::c_int = 0x10; -pub const POWER_603: ::c_int = 0x20; -pub const POWER_620: ::c_int = 0x40; -pub const POWER_630: ::c_int = 0x80; -pub const POWER_A35: ::c_int = 0x100; -pub const POWER_RS64II: ::c_int = 0x200; -pub const POWER_RS64III: ::c_int = 0x400; -pub const POWER_4: ::c_int = 0x800; -pub const POWER_RS64IV: ::c_int = POWER_4; -pub const POWER_MPC7450: ::c_int = 0x1000; -pub const POWER_5: ::c_int = 0x2000; -pub const POWER_6: ::c_int = 0x4000; -pub const POWER_7: ::c_int = 0x8000; -pub const POWER_8: ::c_int = 0x10000; -pub const POWER_9: ::c_int = 0x20000; +pub const SC_ARCH: c_int = 1; +pub const SC_IMPL: c_int = 2; +pub const SC_VERS: c_int = 3; +pub const SC_WIDTH: c_int = 4; +pub const SC_NCPUS: c_int = 5; +pub const SC_L1C_ATTR: c_int = 6; +pub const SC_L1C_ISZ: c_int = 7; +pub const SC_L1C_DSZ: c_int = 8; +pub const SC_L1C_ICA: c_int = 9; +pub const SC_L1C_DCA: c_int = 10; +pub const SC_L1C_IBS: c_int = 11; +pub const SC_L1C_DBS: c_int = 12; +pub const SC_L1C_ILS: c_int = 13; +pub const SC_L1C_DLS: c_int = 14; +pub const SC_L2C_SZ: c_int = 15; +pub const SC_L2C_AS: c_int = 16; +pub const SC_TLB_ATTR: c_int = 17; +pub const SC_ITLB_SZ: c_int = 18; +pub const SC_DTLB_SZ: c_int = 19; +pub const SC_ITLB_ATT: c_int = 20; +pub const SC_DTLB_ATT: c_int = 21; +pub const SC_RESRV_SZ: c_int = 22; +pub const SC_PRI_LC: c_int = 23; +pub const SC_PRO_LC: c_int = 24; +pub const SC_RTC_TYPE: c_int = 25; +pub const SC_VIRT_AL: c_int = 26; +pub const SC_CAC_CONG: c_int = 27; +pub const SC_MOD_ARCH: c_int = 28; +pub const SC_MOD_IMPL: c_int = 29; +pub const SC_XINT: c_int = 30; +pub const SC_XFRAC: c_int = 31; +pub const SC_KRN_ATTR: c_int = 32; +pub const SC_PHYSMEM: c_int = 33; +pub const SC_SLB_ATTR: c_int = 34; +pub const SC_SLB_SZ: c_int = 35; +pub const SC_MAX_NCPUS: c_int = 37; +pub const SC_MAX_REALADDR: c_int = 38; +pub const SC_ORIG_ENT_CAP: c_int = 39; +pub const SC_ENT_CAP: c_int = 40; +pub const SC_DISP_WHE: c_int = 41; +pub const SC_CAPINC: c_int = 42; +pub const SC_VCAPW: c_int = 43; +pub const SC_SPLP_STAT: c_int = 44; +pub const SC_SMT_STAT: c_int = 45; +pub const SC_SMT_TC: c_int = 46; +pub const SC_VMX_VER: c_int = 47; +pub const SC_LMB_SZ: c_int = 48; +pub const SC_MAX_XCPU: c_int = 49; +pub const SC_EC_LVL: c_int = 50; +pub const SC_AME_STAT: c_int = 51; +pub const SC_ECO_STAT: c_int = 52; +pub const SC_DFP_VER: c_int = 53; +pub const SC_VRM_STAT: c_int = 54; +pub const SC_PHYS_IMP: c_int = 55; +pub const SC_PHYS_VER: c_int = 56; +pub const SC_SPCM_STATUS: c_int = 57; +pub const SC_SPCM_MAX: c_int = 58; +pub const SC_TM_VER: c_int = 59; +pub const SC_NX_CAP: c_int = 60; +pub const SC_PKS_STATE: c_int = 61; +pub const SC_MMA_VER: c_int = 62; +pub const POWER_RS: c_int = 1; +pub const POWER_PC: c_int = 2; +pub const IA64: c_int = 3; +pub const POWER_RS1: c_int = 0x1; +pub const POWER_RSC: c_int = 0x2; +pub const POWER_RS2: c_int = 0x4; +pub const POWER_601: c_int = 0x8; +pub const POWER_604: c_int = 0x10; +pub const POWER_603: c_int = 0x20; +pub const POWER_620: c_int = 0x40; +pub const POWER_630: c_int = 0x80; +pub const POWER_A35: c_int = 0x100; +pub const POWER_RS64II: c_int = 0x200; +pub const POWER_RS64III: c_int = 0x400; +pub const POWER_4: c_int = 0x800; +pub const POWER_RS64IV: c_int = POWER_4; +pub const POWER_MPC7450: c_int = 0x1000; +pub const POWER_5: c_int = 0x2000; +pub const POWER_6: c_int = 0x4000; +pub const POWER_7: c_int = 0x8000; +pub const POWER_8: c_int = 0x10000; +pub const POWER_9: c_int = 0x20000; // sys/time.h pub const FD_SETSIZE: usize = 65534; -pub const TIMEOFDAY: ::c_int = 9; -pub const CLOCK_REALTIME: ::clockid_t = TIMEOFDAY as clockid_t; -pub const CLOCK_MONOTONIC: ::clockid_t = 10; -pub const TIMER_ABSTIME: ::c_int = 999; -pub const ITIMER_REAL: ::c_int = 0; -pub const ITIMER_VIRTUAL: ::c_int = 1; -pub const ITIMER_PROF: ::c_int = 2; -pub const ITIMER_VIRT: ::c_int = 3; -pub const ITIMER_REAL1: ::c_int = 20; -pub const ITIMER_REAL_TH: ::c_int = ITIMER_REAL1; -pub const DST_AUST: ::c_int = 2; -pub const DST_CAN: ::c_int = 6; -pub const DST_EET: ::c_int = 5; -pub const DST_MET: ::c_int = 4; -pub const DST_NONE: ::c_int = 0; -pub const DST_USA: ::c_int = 1; -pub const DST_WET: ::c_int = 3; +pub const TIMEOFDAY: c_int = 9; +pub const CLOCK_REALTIME: crate::clockid_t = TIMEOFDAY as clockid_t; +pub const CLOCK_MONOTONIC: crate::clockid_t = 10; +pub const TIMER_ABSTIME: c_int = 999; +pub const ITIMER_REAL: c_int = 0; +pub const ITIMER_VIRTUAL: c_int = 1; +pub const ITIMER_PROF: c_int = 2; +pub const ITIMER_VIRT: c_int = 3; +pub const ITIMER_REAL1: c_int = 20; +pub const ITIMER_REAL_TH: c_int = ITIMER_REAL1; +pub const DST_AUST: c_int = 2; +pub const DST_CAN: c_int = 6; +pub const DST_EET: c_int = 5; +pub const DST_MET: c_int = 4; +pub const DST_NONE: c_int = 0; +pub const DST_USA: c_int = 1; +pub const DST_WET: c_int = 3; // sys/termio.h -pub const CSTART: ::tcflag_t = 0o21; -pub const CSTOP: ::tcflag_t = 0o23; -pub const TCGETA: ::c_int = TIOC | 5; -pub const TCSETA: ::c_int = TIOC | 6; -pub const TCSETAW: ::c_int = TIOC | 7; -pub const TCSETAF: ::c_int = TIOC | 8; -pub const TCSBRK: ::c_int = TIOC | 9; -pub const TCXONC: ::c_int = TIOC | 11; -pub const TCFLSH: ::c_int = TIOC | 12; -pub const TCGETS: ::c_int = TIOC | 1; -pub const TCSETS: ::c_int = TIOC | 2; -pub const TCSANOW: ::c_int = 0; -pub const TCSETSW: ::c_int = TIOC | 3; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSETSF: ::c_int = TIOC | 4; -pub const TCSAFLUSH: ::c_int = 2; -pub const TCIFLUSH: ::c_int = 0; -pub const TCOFLUSH: ::c_int = 1; -pub const TCIOFLUSH: ::c_int = 2; -pub const TCOOFF: ::c_int = 0; -pub const TCOON: ::c_int = 1; -pub const TCIOFF: ::c_int = 2; -pub const TCION: ::c_int = 3; -pub const TIOC: ::c_int = 0x5400; -pub const TIOCGWINSZ: ::c_int = 0x40087468; -pub const TIOCSWINSZ: ::c_int = 0x80087467; -pub const TIOCLBIS: ::c_int = 0x8004747f; -pub const TIOCLBIC: ::c_int = 0x8004747e; -pub const TIOCLSET: ::c_int = 0x8004747d; -pub const TIOCLGET: ::c_int = 0x4004747c; -pub const TIOCSBRK: ::c_int = 0x2000747b; -pub const TIOCCBRK: ::c_int = 0x2000747a; -pub const TIOCSDTR: ::c_int = 0x20007479; -pub const TIOCCDTR: ::c_int = 0x20007478; -pub const TIOCSLTC: ::c_int = 0x80067475; -pub const TIOCGLTC: ::c_int = 0x40067474; -pub const TIOCOUTQ: ::c_int = 0x40047473; -pub const TIOCNOTTY: ::c_int = 0x20007471; -pub const TIOCSTOP: ::c_int = 0x2000746f; -pub const TIOCSTART: ::c_int = 0x2000746e; -pub const TIOCGPGRP: ::c_int = 0x40047477; -pub const TIOCSPGRP: ::c_int = 0x80047476; -pub const TIOCGSID: ::c_int = 0x40047448; -pub const TIOCSTI: ::c_int = 0x80017472; -pub const TIOCMSET: ::c_int = 0x8004746d; -pub const TIOCMBIS: ::c_int = 0x8004746c; -pub const TIOCMBIC: ::c_int = 0x8004746b; -pub const TIOCMGET: ::c_int = 0x4004746a; -pub const TIOCREMOTE: ::c_int = 0x80047469; +pub const CSTART: crate::tcflag_t = 0o21; +pub const CSTOP: crate::tcflag_t = 0o23; +pub const TCGETA: c_int = TIOC | 5; +pub const TCSETA: c_int = TIOC | 6; +pub const TCSETAW: c_int = TIOC | 7; +pub const TCSETAF: c_int = TIOC | 8; +pub const TCSBRK: c_int = TIOC | 9; +pub const TCXONC: c_int = TIOC | 11; +pub const TCFLSH: c_int = TIOC | 12; +pub const TCGETS: c_int = TIOC | 1; +pub const TCSETS: c_int = TIOC | 2; +pub const TCSANOW: c_int = 0; +pub const TCSETSW: c_int = TIOC | 3; +pub const TCSADRAIN: c_int = 1; +pub const TCSETSF: c_int = TIOC | 4; +pub const TCSAFLUSH: c_int = 2; +pub const TCIFLUSH: c_int = 0; +pub const TCOFLUSH: c_int = 1; +pub const TCIOFLUSH: c_int = 2; +pub const TCOOFF: c_int = 0; +pub const TCOON: c_int = 1; +pub const TCIOFF: c_int = 2; +pub const TCION: c_int = 3; +pub const TIOC: c_int = 0x5400; +pub const TIOCGWINSZ: c_int = 0x40087468; +pub const TIOCSWINSZ: c_int = 0x80087467; +pub const TIOCLBIS: c_int = 0x8004747f; +pub const TIOCLBIC: c_int = 0x8004747e; +pub const TIOCLSET: c_int = 0x8004747d; +pub const TIOCLGET: c_int = 0x4004747c; +pub const TIOCSBRK: c_int = 0x2000747b; +pub const TIOCCBRK: c_int = 0x2000747a; +pub const TIOCSDTR: c_int = 0x20007479; +pub const TIOCCDTR: c_int = 0x20007478; +pub const TIOCSLTC: c_int = 0x80067475; +pub const TIOCGLTC: c_int = 0x40067474; +pub const TIOCOUTQ: c_int = 0x40047473; +pub const TIOCNOTTY: c_int = 0x20007471; +pub const TIOCSTOP: c_int = 0x2000746f; +pub const TIOCSTART: c_int = 0x2000746e; +pub const TIOCGPGRP: c_int = 0x40047477; +pub const TIOCSPGRP: c_int = 0x80047476; +pub const TIOCGSID: c_int = 0x40047448; +pub const TIOCSTI: c_int = 0x80017472; +pub const TIOCMSET: c_int = 0x8004746d; +pub const TIOCMBIS: c_int = 0x8004746c; +pub const TIOCMBIC: c_int = 0x8004746b; +pub const TIOCMGET: c_int = 0x4004746a; +pub const TIOCREMOTE: c_int = 0x80047469; // sys/user.h -pub const MAXCOMLEN: ::c_int = 32; -pub const UF_SYSTEM: ::c_int = 0x1000; +pub const MAXCOMLEN: c_int = 32; +pub const UF_SYSTEM: c_int = 0x1000; // sys/vattr.h -pub const AT_FLAGS: ::c_int = 0x80; -pub const AT_GID: ::c_int = 8; -pub const AT_UID: ::c_int = 4; +pub const AT_FLAGS: c_int = 0x80; +pub const AT_GID: c_int = 8; +pub const AT_UID: c_int = 4; // sys/wait.h -pub const P_ALL: ::c_int = 0; -pub const P_PID: ::c_int = 1; -pub const P_PGID: ::c_int = 2; -pub const WNOHANG: ::c_int = 0x1; -pub const WUNTRACED: ::c_int = 0x2; -pub const WEXITED: ::c_int = 0x04; -pub const WCONTINUED: ::c_int = 0x01000000; -pub const WNOWAIT: ::c_int = 0x10; -pub const WSTOPPED: ::c_int = _W_STOPPED; -pub const _W_STOPPED: ::c_int = 0x00000040; -pub const _W_SLWTED: ::c_int = 0x0000007c; -pub const _W_SEWTED: ::c_int = 0x0000007d; -pub const _W_SFWTED: ::c_int = 0x0000007e; -pub const _W_STRC: ::c_int = 0x0000007f; +pub const P_ALL: c_int = 0; +pub const P_PID: c_int = 1; +pub const P_PGID: c_int = 2; +pub const WNOHANG: c_int = 0x1; +pub const WUNTRACED: c_int = 0x2; +pub const WEXITED: c_int = 0x04; +pub const WCONTINUED: c_int = 0x01000000; +pub const WNOWAIT: c_int = 0x10; +pub const WSTOPPED: c_int = _W_STOPPED; +pub const _W_STOPPED: c_int = 0x00000040; +pub const _W_SLWTED: c_int = 0x0000007c; +pub const _W_SEWTED: c_int = 0x0000007d; +pub const _W_SFWTED: c_int = 0x0000007e; +pub const _W_STRC: c_int = 0x0000007f; // termios.h pub const NCCS: usize = 16; -pub const OLCUC: ::tcflag_t = 2; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS5: ::tcflag_t = 0x00000000; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const ECHO: ::tcflag_t = 0x20000; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOCTL: ::tcflag_t = 0x00020000; -pub const ECHOPRT: ::tcflag_t = 0x00040000; -pub const ECHOKE: ::tcflag_t = 0x00080000; -pub const IGNBRK: ::tcflag_t = 0x00000001; -pub const BRKINT: ::tcflag_t = 0x00000002; -pub const IGNPAR: ::tcflag_t = 0x00000004; -pub const PARMRK: ::tcflag_t = 0x00000008; -pub const INPCK: ::tcflag_t = 0x00000010; -pub const ISTRIP: ::tcflag_t = 0x00000020; -pub const INLCR: ::tcflag_t = 0x00000040; -pub const IGNCR: ::tcflag_t = 0x00000080; -pub const ICRNL: ::tcflag_t = 0x00000100; -pub const IXON: ::tcflag_t = 0x0001; -pub const IXOFF: ::tcflag_t = 0x00000400; -pub const IXANY: ::tcflag_t = 0x00001000; -pub const IMAXBEL: ::tcflag_t = 0x00010000; -pub const OPOST: ::tcflag_t = 0x00000001; -pub const ONLCR: ::tcflag_t = 0x00000004; -pub const OCRNL: ::tcflag_t = 0x00000008; -pub const ONOCR: ::tcflag_t = 0x00000010; -pub const ONLRET: ::tcflag_t = 0x00000020; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const IEXTEN: ::tcflag_t = 0x00200000; -pub const TOSTOP: ::tcflag_t = 0x00010000; -pub const FLUSHO: ::tcflag_t = 0x00100000; -pub const PENDIN: ::tcflag_t = 0x20000000; -pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const OLCUC: crate::tcflag_t = 2; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS5: crate::tcflag_t = 0x00000000; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const ECHO: crate::tcflag_t = 0x20000; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOCTL: crate::tcflag_t = 0x00020000; +pub const ECHOPRT: crate::tcflag_t = 0x00040000; +pub const ECHOKE: crate::tcflag_t = 0x00080000; +pub const IGNBRK: crate::tcflag_t = 0x00000001; +pub const BRKINT: crate::tcflag_t = 0x00000002; +pub const IGNPAR: crate::tcflag_t = 0x00000004; +pub const PARMRK: crate::tcflag_t = 0x00000008; +pub const INPCK: crate::tcflag_t = 0x00000010; +pub const ISTRIP: crate::tcflag_t = 0x00000020; +pub const INLCR: crate::tcflag_t = 0x00000040; +pub const IGNCR: crate::tcflag_t = 0x00000080; +pub const ICRNL: crate::tcflag_t = 0x00000100; +pub const IXON: crate::tcflag_t = 0x0001; +pub const IXOFF: crate::tcflag_t = 0x00000400; +pub const IXANY: crate::tcflag_t = 0x00001000; +pub const IMAXBEL: crate::tcflag_t = 0x00010000; +pub const OPOST: crate::tcflag_t = 0x00000001; +pub const ONLCR: crate::tcflag_t = 0x00000004; +pub const OCRNL: crate::tcflag_t = 0x00000008; +pub const ONOCR: crate::tcflag_t = 0x00000010; +pub const ONLRET: crate::tcflag_t = 0x00000020; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const IEXTEN: crate::tcflag_t = 0x00200000; +pub const TOSTOP: crate::tcflag_t = 0x00010000; +pub const FLUSHO: crate::tcflag_t = 0x00100000; +pub const PENDIN: crate::tcflag_t = 0x20000000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; pub const VINTR: usize = 0; pub const VQUIT: usize = 1; pub const VERASE: usize = 2; @@ -2269,241 +2274,241 @@ pub const VREPRINT: usize = 11; pub const VDISCRD: usize = 12; pub const VWERSE: usize = 13; pub const VLNEXT: usize = 14; -pub const B0: ::speed_t = 0x0; -pub const B50: ::speed_t = 0x1; -pub const B75: ::speed_t = 0x2; -pub const B110: ::speed_t = 0x3; -pub const B134: ::speed_t = 0x4; -pub const B150: ::speed_t = 0x5; -pub const B200: ::speed_t = 0x6; -pub const B300: ::speed_t = 0x7; -pub const B600: ::speed_t = 0x8; -pub const B1200: ::speed_t = 0x9; -pub const B1800: ::speed_t = 0xa; -pub const B2400: ::speed_t = 0xb; -pub const B4800: ::speed_t = 0xc; -pub const B9600: ::speed_t = 0xd; -pub const B19200: ::speed_t = 0xe; -pub const B38400: ::speed_t = 0xf; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const IUCLC: ::tcflag_t = 0x00000800; -pub const OFILL: ::tcflag_t = 0x00000040; -pub const OFDEL: ::tcflag_t = 0x00000080; -pub const CRDLY: ::tcflag_t = 0x00000300; -pub const CR0: ::tcflag_t = 0x00000000; -pub const CR1: ::tcflag_t = 0x00000100; -pub const CR2: ::tcflag_t = 0x00000200; -pub const CR3: ::tcflag_t = 0x00000300; -pub const TABDLY: ::tcflag_t = 0x00000c00; -pub const TAB0: ::tcflag_t = 0x00000000; -pub const TAB1: ::tcflag_t = 0x00000400; -pub const TAB2: ::tcflag_t = 0x00000800; -pub const TAB3: ::tcflag_t = 0x00000c00; -pub const BSDLY: ::tcflag_t = 0x00001000; -pub const BS0: ::tcflag_t = 0x00000000; -pub const BS1: ::tcflag_t = 0x00001000; -pub const FFDLY: ::tcflag_t = 0x00002000; -pub const FF0: ::tcflag_t = 0x00000000; -pub const FF1: ::tcflag_t = 0x00002000; -pub const NLDLY: ::tcflag_t = 0x00004000; -pub const NL0: ::tcflag_t = 0x00000000; -pub const NL1: ::tcflag_t = 0x00004000; -pub const VTDLY: ::tcflag_t = 0x00008000; -pub const VT0: ::tcflag_t = 0x00000000; -pub const VT1: ::tcflag_t = 0x00008000; -pub const OXTABS: ::tcflag_t = 0x00040000; -pub const ONOEOT: ::tcflag_t = 0x00080000; -pub const CBAUD: ::tcflag_t = 0x0000000f; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const CIBAUD: ::tcflag_t = 0x000f0000; -pub const IBSHIFT: ::tcflag_t = 16; -pub const PAREXT: ::tcflag_t = 0x00100000; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const XCASE: ::tcflag_t = 0x00000004; -pub const ALTWERASE: ::tcflag_t = 0x00400000; +pub const B0: crate::speed_t = 0x0; +pub const B50: crate::speed_t = 0x1; +pub const B75: crate::speed_t = 0x2; +pub const B110: crate::speed_t = 0x3; +pub const B134: crate::speed_t = 0x4; +pub const B150: crate::speed_t = 0x5; +pub const B200: crate::speed_t = 0x6; +pub const B300: crate::speed_t = 0x7; +pub const B600: crate::speed_t = 0x8; +pub const B1200: crate::speed_t = 0x9; +pub const B1800: crate::speed_t = 0xa; +pub const B2400: crate::speed_t = 0xb; +pub const B4800: crate::speed_t = 0xc; +pub const B9600: crate::speed_t = 0xd; +pub const B19200: crate::speed_t = 0xe; +pub const B38400: crate::speed_t = 0xf; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const IUCLC: crate::tcflag_t = 0x00000800; +pub const OFILL: crate::tcflag_t = 0x00000040; +pub const OFDEL: crate::tcflag_t = 0x00000080; +pub const CRDLY: crate::tcflag_t = 0x00000300; +pub const CR0: crate::tcflag_t = 0x00000000; +pub const CR1: crate::tcflag_t = 0x00000100; +pub const CR2: crate::tcflag_t = 0x00000200; +pub const CR3: crate::tcflag_t = 0x00000300; +pub const TABDLY: crate::tcflag_t = 0x00000c00; +pub const TAB0: crate::tcflag_t = 0x00000000; +pub const TAB1: crate::tcflag_t = 0x00000400; +pub const TAB2: crate::tcflag_t = 0x00000800; +pub const TAB3: crate::tcflag_t = 0x00000c00; +pub const BSDLY: crate::tcflag_t = 0x00001000; +pub const BS0: crate::tcflag_t = 0x00000000; +pub const BS1: crate::tcflag_t = 0x00001000; +pub const FFDLY: crate::tcflag_t = 0x00002000; +pub const FF0: crate::tcflag_t = 0x00000000; +pub const FF1: crate::tcflag_t = 0x00002000; +pub const NLDLY: crate::tcflag_t = 0x00004000; +pub const NL0: crate::tcflag_t = 0x00000000; +pub const NL1: crate::tcflag_t = 0x00004000; +pub const VTDLY: crate::tcflag_t = 0x00008000; +pub const VT0: crate::tcflag_t = 0x00000000; +pub const VT1: crate::tcflag_t = 0x00008000; +pub const OXTABS: crate::tcflag_t = 0x00040000; +pub const ONOEOT: crate::tcflag_t = 0x00080000; +pub const CBAUD: crate::tcflag_t = 0x0000000f; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const CIBAUD: crate::tcflag_t = 0x000f0000; +pub const IBSHIFT: crate::tcflag_t = 16; +pub const PAREXT: crate::tcflag_t = 0x00100000; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const XCASE: crate::tcflag_t = 0x00000004; +pub const ALTWERASE: crate::tcflag_t = 0x00400000; // time.h -pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 11; -pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 12; +pub const CLOCK_PROCESS_CPUTIME_ID: crate::clockid_t = 11; +pub const CLOCK_THREAD_CPUTIME_ID: crate::clockid_t = 12; // unistd.h -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; -pub const _POSIX_VDISABLE: ::c_int = 0xff; -pub const _PC_LINK_MAX: ::c_int = 11; -pub const _PC_MAX_CANON: ::c_int = 12; -pub const _PC_MAX_INPUT: ::c_int = 13; -pub const _PC_NAME_MAX: ::c_int = 14; -pub const _PC_PATH_MAX: ::c_int = 16; -pub const _PC_PIPE_BUF: ::c_int = 17; -pub const _PC_NO_TRUNC: ::c_int = 15; -pub const _PC_VDISABLE: ::c_int = 18; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 10; -pub const _PC_ASYNC_IO: ::c_int = 19; -pub const _PC_PRIO_IO: ::c_int = 21; -pub const _PC_SYNC_IO: ::c_int = 20; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 26; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 27; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 28; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 29; -pub const _PC_REC_XFER_ALIGN: ::c_int = 30; -pub const _PC_SYMLINK_MAX: ::c_int = 25; -pub const _PC_2_SYMLINKS: ::c_int = 31; -pub const _PC_TIMESTAMP_RESOLUTION: ::c_int = 32; -pub const _PC_FILESIZEBITS: ::c_int = 22; -pub const _SC_ARG_MAX: ::c_int = 0; -pub const _SC_CHILD_MAX: ::c_int = 1; -pub const _SC_CLK_TCK: ::c_int = 2; -pub const _SC_NGROUPS_MAX: ::c_int = 3; -pub const _SC_OPEN_MAX: ::c_int = 4; -pub const _SC_JOB_CONTROL: ::c_int = 7; -pub const _SC_SAVED_IDS: ::c_int = 8; -pub const _SC_VERSION: ::c_int = 9; -pub const _SC_PASS_MAX: ::c_int = 45; -pub const _SC_PAGESIZE: ::c_int = _SC_PAGE_SIZE; -pub const _SC_PAGE_SIZE: ::c_int = 48; -pub const _SC_XOPEN_VERSION: ::c_int = 46; -pub const _SC_NPROCESSORS_CONF: ::c_int = 71; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 72; -pub const _SC_STREAM_MAX: ::c_int = 5; -pub const _SC_TZNAME_MAX: ::c_int = 6; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 75; -pub const _SC_AIO_MAX: ::c_int = 76; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 77; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 78; -pub const _SC_DELAYTIMER_MAX: ::c_int = 79; -pub const _SC_FSYNC: ::c_int = 80; -pub const _SC_MAPPED_FILES: ::c_int = 84; -pub const _SC_MEMLOCK: ::c_int = 85; -pub const _SC_MEMLOCK_RANGE: ::c_int = 86; -pub const _SC_MEMORY_PROTECTION: ::c_int = 87; -pub const _SC_MESSAGE_PASSING: ::c_int = 88; -pub const _SC_MQ_OPEN_MAX: ::c_int = 89; -pub const _SC_MQ_PRIO_MAX: ::c_int = 90; -pub const _SC_PRIORITIZED_IO: ::c_int = 91; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 92; -pub const _SC_REALTIME_SIGNALS: ::c_int = 93; -pub const _SC_RTSIG_MAX: ::c_int = 94; -pub const _SC_SEMAPHORES: ::c_int = 95; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 96; -pub const _SC_SEM_VALUE_MAX: ::c_int = 97; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 98; -pub const _SC_SIGQUEUE_MAX: ::c_int = 99; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 100; -pub const _SC_TIMERS: ::c_int = 102; -pub const _SC_TIMER_MAX: ::c_int = 103; -pub const _SC_2_C_BIND: ::c_int = 51; -pub const _SC_2_C_DEV: ::c_int = 32; -pub const _SC_2_C_VERSION: ::c_int = 52; -pub const _SC_2_FORT_DEV: ::c_int = 33; -pub const _SC_2_FORT_RUN: ::c_int = 34; -pub const _SC_2_LOCALEDEF: ::c_int = 35; -pub const _SC_2_SW_DEV: ::c_int = 36; -pub const _SC_2_UPE: ::c_int = 53; -pub const _SC_2_VERSION: ::c_int = 31; -pub const _SC_BC_BASE_MAX: ::c_int = 23; -pub const _SC_BC_DIM_MAX: ::c_int = 24; -pub const _SC_BC_SCALE_MAX: ::c_int = 25; -pub const _SC_BC_STRING_MAX: ::c_int = 26; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 50; -pub const _SC_EXPR_NEST_MAX: ::c_int = 28; -pub const _SC_LINE_MAX: ::c_int = 29; -pub const _SC_RE_DUP_MAX: ::c_int = 30; -pub const _SC_XOPEN_CRYPT: ::c_int = 56; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 57; -pub const _SC_XOPEN_SHM: ::c_int = 55; -pub const _SC_2_CHAR_TERM: ::c_int = 54; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 109; -pub const _SC_ATEXIT_MAX: ::c_int = 47; -pub const _SC_IOV_MAX: ::c_int = 58; -pub const _SC_XOPEN_UNIX: ::c_int = 73; -pub const _SC_T_IOV_MAX: ::c_int = 0; -pub const _SC_PHYS_PAGES: ::c_int = 113; -pub const _SC_AVPHYS_PAGES: ::c_int = 114; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 101; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 81; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 82; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 83; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 68; -pub const _SC_THREAD_STACK_MIN: ::c_int = 69; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 70; -pub const _SC_TTY_NAME_MAX: ::c_int = 104; -pub const _SC_THREADS: ::c_int = 60; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 61; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 62; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 64; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 65; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 66; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 59; -pub const _SC_XOPEN_LEGACY: ::c_int = 112; -pub const _SC_XOPEN_REALTIME: ::c_int = 110; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 111; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 105; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 106; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 107; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 108; -pub const _SC_2_PBS: ::c_int = 132; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 133; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 134; -pub const _SC_2_PBS_LOCATE: ::c_int = 135; -pub const _SC_2_PBS_MESSAGE: ::c_int = 136; -pub const _SC_2_PBS_TRACK: ::c_int = 137; -pub const _SC_ADVISORY_INFO: ::c_int = 130; -pub const _SC_BARRIERS: ::c_int = 138; -pub const _SC_CLOCK_SELECTION: ::c_int = 139; -pub const _SC_CPUTIME: ::c_int = 140; -pub const _SC_HOST_NAME_MAX: ::c_int = 126; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 141; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 142; -pub const _SC_REGEXP: ::c_int = 127; -pub const _SC_SHELL: ::c_int = 128; -pub const _SC_SPAWN: ::c_int = 143; -pub const _SC_SPIN_LOCKS: ::c_int = 144; -pub const _SC_SPORADIC_SERVER: ::c_int = 145; -pub const _SC_SS_REPL_MAX: ::c_int = 156; -pub const _SC_SYMLOOP_MAX: ::c_int = 129; -pub const _SC_THREAD_CPUTIME: ::c_int = 146; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 147; -pub const _SC_TIMEOUTS: ::c_int = 148; -pub const _SC_TRACE: ::c_int = 149; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 150; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 157; -pub const _SC_TRACE_INHERIT: ::c_int = 151; -pub const _SC_TRACE_LOG: ::c_int = 152; -pub const _SC_TRACE_NAME_MAX: ::c_int = 158; -pub const _SC_TRACE_SYS_MAX: ::c_int = 159; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 160; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 153; -pub const _SC_V6_ILP32_OFF32: ::c_int = 121; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 122; -pub const _SC_V6_LP64_OFF64: ::c_int = 123; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 124; -pub const _SC_XOPEN_STREAMS: ::c_int = 125; -pub const _SC_IPV6: ::c_int = 154; -pub const _SC_RAW_SOCKETS: ::c_int = 155; +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; +pub const _POSIX_VDISABLE: c_int = 0xff; +pub const _PC_LINK_MAX: c_int = 11; +pub const _PC_MAX_CANON: c_int = 12; +pub const _PC_MAX_INPUT: c_int = 13; +pub const _PC_NAME_MAX: c_int = 14; +pub const _PC_PATH_MAX: c_int = 16; +pub const _PC_PIPE_BUF: c_int = 17; +pub const _PC_NO_TRUNC: c_int = 15; +pub const _PC_VDISABLE: c_int = 18; +pub const _PC_CHOWN_RESTRICTED: c_int = 10; +pub const _PC_ASYNC_IO: c_int = 19; +pub const _PC_PRIO_IO: c_int = 21; +pub const _PC_SYNC_IO: c_int = 20; +pub const _PC_ALLOC_SIZE_MIN: c_int = 26; +pub const _PC_REC_INCR_XFER_SIZE: c_int = 27; +pub const _PC_REC_MAX_XFER_SIZE: c_int = 28; +pub const _PC_REC_MIN_XFER_SIZE: c_int = 29; +pub const _PC_REC_XFER_ALIGN: c_int = 30; +pub const _PC_SYMLINK_MAX: c_int = 25; +pub const _PC_2_SYMLINKS: c_int = 31; +pub const _PC_TIMESTAMP_RESOLUTION: c_int = 32; +pub const _PC_FILESIZEBITS: c_int = 22; +pub const _SC_ARG_MAX: c_int = 0; +pub const _SC_CHILD_MAX: c_int = 1; +pub const _SC_CLK_TCK: c_int = 2; +pub const _SC_NGROUPS_MAX: c_int = 3; +pub const _SC_OPEN_MAX: c_int = 4; +pub const _SC_JOB_CONTROL: c_int = 7; +pub const _SC_SAVED_IDS: c_int = 8; +pub const _SC_VERSION: c_int = 9; +pub const _SC_PASS_MAX: c_int = 45; +pub const _SC_PAGESIZE: c_int = _SC_PAGE_SIZE; +pub const _SC_PAGE_SIZE: c_int = 48; +pub const _SC_XOPEN_VERSION: c_int = 46; +pub const _SC_NPROCESSORS_CONF: c_int = 71; +pub const _SC_NPROCESSORS_ONLN: c_int = 72; +pub const _SC_STREAM_MAX: c_int = 5; +pub const _SC_TZNAME_MAX: c_int = 6; +pub const _SC_AIO_LISTIO_MAX: c_int = 75; +pub const _SC_AIO_MAX: c_int = 76; +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 77; +pub const _SC_ASYNCHRONOUS_IO: c_int = 78; +pub const _SC_DELAYTIMER_MAX: c_int = 79; +pub const _SC_FSYNC: c_int = 80; +pub const _SC_MAPPED_FILES: c_int = 84; +pub const _SC_MEMLOCK: c_int = 85; +pub const _SC_MEMLOCK_RANGE: c_int = 86; +pub const _SC_MEMORY_PROTECTION: c_int = 87; +pub const _SC_MESSAGE_PASSING: c_int = 88; +pub const _SC_MQ_OPEN_MAX: c_int = 89; +pub const _SC_MQ_PRIO_MAX: c_int = 90; +pub const _SC_PRIORITIZED_IO: c_int = 91; +pub const _SC_PRIORITY_SCHEDULING: c_int = 92; +pub const _SC_REALTIME_SIGNALS: c_int = 93; +pub const _SC_RTSIG_MAX: c_int = 94; +pub const _SC_SEMAPHORES: c_int = 95; +pub const _SC_SEM_NSEMS_MAX: c_int = 96; +pub const _SC_SEM_VALUE_MAX: c_int = 97; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 98; +pub const _SC_SIGQUEUE_MAX: c_int = 99; +pub const _SC_SYNCHRONIZED_IO: c_int = 100; +pub const _SC_TIMERS: c_int = 102; +pub const _SC_TIMER_MAX: c_int = 103; +pub const _SC_2_C_BIND: c_int = 51; +pub const _SC_2_C_DEV: c_int = 32; +pub const _SC_2_C_VERSION: c_int = 52; +pub const _SC_2_FORT_DEV: c_int = 33; +pub const _SC_2_FORT_RUN: c_int = 34; +pub const _SC_2_LOCALEDEF: c_int = 35; +pub const _SC_2_SW_DEV: c_int = 36; +pub const _SC_2_UPE: c_int = 53; +pub const _SC_2_VERSION: c_int = 31; +pub const _SC_BC_BASE_MAX: c_int = 23; +pub const _SC_BC_DIM_MAX: c_int = 24; +pub const _SC_BC_SCALE_MAX: c_int = 25; +pub const _SC_BC_STRING_MAX: c_int = 26; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 50; +pub const _SC_EXPR_NEST_MAX: c_int = 28; +pub const _SC_LINE_MAX: c_int = 29; +pub const _SC_RE_DUP_MAX: c_int = 30; +pub const _SC_XOPEN_CRYPT: c_int = 56; +pub const _SC_XOPEN_ENH_I18N: c_int = 57; +pub const _SC_XOPEN_SHM: c_int = 55; +pub const _SC_2_CHAR_TERM: c_int = 54; +pub const _SC_XOPEN_XCU_VERSION: c_int = 109; +pub const _SC_ATEXIT_MAX: c_int = 47; +pub const _SC_IOV_MAX: c_int = 58; +pub const _SC_XOPEN_UNIX: c_int = 73; +pub const _SC_T_IOV_MAX: c_int = 0; +pub const _SC_PHYS_PAGES: c_int = 113; +pub const _SC_AVPHYS_PAGES: c_int = 114; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 101; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 81; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 82; +pub const _SC_LOGIN_NAME_MAX: c_int = 83; +pub const _SC_THREAD_KEYS_MAX: c_int = 68; +pub const _SC_THREAD_STACK_MIN: c_int = 69; +pub const _SC_THREAD_THREADS_MAX: c_int = 70; +pub const _SC_TTY_NAME_MAX: c_int = 104; +pub const _SC_THREADS: c_int = 60; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 61; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 62; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 64; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 65; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 66; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 67; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 59; +pub const _SC_XOPEN_LEGACY: c_int = 112; +pub const _SC_XOPEN_REALTIME: c_int = 110; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 111; +pub const _SC_XBS5_ILP32_OFF32: c_int = 105; +pub const _SC_XBS5_ILP32_OFFBIG: c_int = 106; +pub const _SC_XBS5_LP64_OFF64: c_int = 107; +pub const _SC_XBS5_LPBIG_OFFBIG: c_int = 108; +pub const _SC_2_PBS: c_int = 132; +pub const _SC_2_PBS_ACCOUNTING: c_int = 133; +pub const _SC_2_PBS_CHECKPOINT: c_int = 134; +pub const _SC_2_PBS_LOCATE: c_int = 135; +pub const _SC_2_PBS_MESSAGE: c_int = 136; +pub const _SC_2_PBS_TRACK: c_int = 137; +pub const _SC_ADVISORY_INFO: c_int = 130; +pub const _SC_BARRIERS: c_int = 138; +pub const _SC_CLOCK_SELECTION: c_int = 139; +pub const _SC_CPUTIME: c_int = 140; +pub const _SC_HOST_NAME_MAX: c_int = 126; +pub const _SC_MONOTONIC_CLOCK: c_int = 141; +pub const _SC_READER_WRITER_LOCKS: c_int = 142; +pub const _SC_REGEXP: c_int = 127; +pub const _SC_SHELL: c_int = 128; +pub const _SC_SPAWN: c_int = 143; +pub const _SC_SPIN_LOCKS: c_int = 144; +pub const _SC_SPORADIC_SERVER: c_int = 145; +pub const _SC_SS_REPL_MAX: c_int = 156; +pub const _SC_SYMLOOP_MAX: c_int = 129; +pub const _SC_THREAD_CPUTIME: c_int = 146; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 147; +pub const _SC_TIMEOUTS: c_int = 148; +pub const _SC_TRACE: c_int = 149; +pub const _SC_TRACE_EVENT_FILTER: c_int = 150; +pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 157; +pub const _SC_TRACE_INHERIT: c_int = 151; +pub const _SC_TRACE_LOG: c_int = 152; +pub const _SC_TRACE_NAME_MAX: c_int = 158; +pub const _SC_TRACE_SYS_MAX: c_int = 159; +pub const _SC_TRACE_USER_EVENT_MAX: c_int = 160; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 153; +pub const _SC_V6_ILP32_OFF32: c_int = 121; +pub const _SC_V6_ILP32_OFFBIG: c_int = 122; +pub const _SC_V6_LP64_OFF64: c_int = 123; +pub const _SC_V6_LPBIG_OFFBIG: c_int = 124; +pub const _SC_XOPEN_STREAMS: c_int = 125; +pub const _SC_IPV6: c_int = 154; +pub const _SC_RAW_SOCKETS: c_int = 155; // utmp.h -pub const EMPTY: ::c_short = -1; -pub const RUN_LVL: ::c_short = 1; -pub const BOOT_TIME: ::c_short = 2; -pub const OLD_TIME: ::c_short = 3; -pub const NEW_TIME: ::c_short = 4; -pub const INIT_PROCESS: ::c_short = 5; -pub const LOGIN_PROCESS: ::c_short = 6; -pub const USER_PROCESS: ::c_short = 7; -pub const DEAD_PROCESS: ::c_short = 8; -pub const ACCOUNTING: ::c_short = 9; +pub const EMPTY: c_short = -1; +pub const RUN_LVL: c_short = 1; +pub const BOOT_TIME: c_short = 2; +pub const OLD_TIME: c_short = 3; +pub const NEW_TIME: c_short = 4; +pub const INIT_PROCESS: c_short = 5; +pub const LOGIN_PROCESS: c_short = 6; +pub const USER_PROCESS: c_short = 7; +pub const DEAD_PROCESS: c_short = 8; +pub const ACCOUNTING: c_short = 9; f! { pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= ::mem::size_of::() { + if (*mhdr).msg_controllen as usize >= crate::mem::size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { 0 as *mut cmsghdr @@ -2514,10 +2519,10 @@ f! { if cmsg.is_null() { CMSG_FIRSTHDR(mhdr) } else { - if (cmsg as usize + (*cmsg).cmsg_len as usize + ::mem::size_of::<::cmsghdr>()) + if (cmsg as usize + (*cmsg).cmsg_len as usize + crate::mem::size_of::()) > ((*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize) { - 0 as *mut ::cmsghdr + 0 as *mut cmsghdr } else { // AIX does not have any alignment/padding for ancillary data, so we don't need _CMSG_ALIGN here. (cmsg as usize + (*cmsg).cmsg_len as usize) as *mut cmsghdr @@ -2525,16 +2530,16 @@ f! { } } - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar).offset(::mem::size_of::<::cmsghdr>() as isize) + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { + (cmsg as *mut c_uchar).offset(crate::mem::size_of::() as isize) } - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - ::mem::size_of::<::cmsghdr>() as ::c_uint + length + pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + crate::mem::size_of::() as c_uint + length } - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - ::mem::size_of::<::cmsghdr>() as ::c_uint + length + pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + crate::mem::size_of::() as c_uint + length } pub fn FD_ZERO(set: *mut fd_set) -> () { @@ -2543,39 +2548,39 @@ f! { } } - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { - let bits = ::mem::size_of::<::c_long>() * 8; + pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { + let bits = crate::mem::size_of::() * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] |= 1 << (fd % bits); return; } - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { - let bits = ::mem::size_of::<::c_long>() * 8; + pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { + let bits = crate::mem::size_of::() * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); return; } - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { - let bits = ::mem::size_of::<::c_long>() * 8; + pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { + let bits = crate::mem::size_of::() * 8; let fd = fd as usize; return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0; } - pub fn major(dev: ::dev_t) -> ::c_uint { + pub fn major(dev: crate::dev_t) -> c_uint { let x = dev >> 16; - x as ::c_uint + x as c_uint } - pub fn minor(dev: ::dev_t) -> ::c_uint { + pub fn minor(dev: crate::dev_t) -> c_uint { let y = dev & 0xFFFF; - y as ::c_uint + y as c_uint } - pub fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; + pub fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + let major = major as crate::dev_t; + let minor = minor as crate::dev_t; let mut dev = 0; dev |= major << 16; dev |= minor; @@ -2584,317 +2589,306 @@ f! { } safe_f! { - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + pub {const} fn WIFSTOPPED(status: c_int) -> bool { (status & _W_STOPPED) != 0 } - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + pub {const} fn WSTOPSIG(status: c_int) -> c_int { if WIFSTOPPED(status) { - (((status as ::c_uint) >> 8) & 0xff) as ::c_int + (((status as c_uint) >> 8) & 0xff) as c_int } else { -1 } } - pub {const} fn WIFEXITED(status: ::c_int) -> bool { + pub {const} fn WIFEXITED(status: c_int) -> bool { (status & 0xFF) == 0 } - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + pub {const} fn WEXITSTATUS(status: c_int) -> c_int { if WIFEXITED(status) { - (((status as ::c_uint) >> 8) & 0xff) as ::c_int + (((status as c_uint) >> 8) & 0xff) as c_int } else { -1 } } - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + pub {const} fn WIFSIGNALED(status: c_int) -> bool { !WIFEXITED(status) && !WIFSTOPPED(status) } - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + pub {const} fn WTERMSIG(status: c_int) -> c_int { if WIFSIGNALED(status) { - (((status as ::c_uint) >> 16) & 0xff) as ::c_int + (((status as c_uint) >> 16) & 0xff) as c_int } else { -1 } } - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + pub {const} fn WIFCONTINUED(status: c_int) -> bool { (status & WCONTINUED) != 0 } // AIX doesn't have native WCOREDUMP. - pub {const} fn WCOREDUMP(_status: ::c_int) -> bool { + pub {const} fn WCOREDUMP(_status: c_int) -> bool { false } } #[link(name = "thread")] extern "C" { - pub fn thr_kill(id: thread_t, sig: ::c_int) -> ::c_int; + pub fn thr_kill(id: thread_t, sig: c_int) -> c_int; pub fn thr_self() -> thread_t; } #[link(name = "pthread")] extern "C" { pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; + prepare: Option, + parent: Option, + child: Option, + ) -> c_int; pub fn pthread_attr_getguardsize( - 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; + attr: *const crate::pthread_attr_t, + guardsize: *mut size_t, + ) -> c_int; + pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int; pub fn pthread_attr_getschedparam( - attr: *const ::pthread_attr_t, + attr: *const crate::pthread_attr_t, param: *mut sched_param, - ) -> ::c_int; + ) -> c_int; pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; + attr: *const crate::pthread_attr_t, + stackaddr: *mut *mut c_void, + stacksize: *mut size_t, + ) -> c_int; pub fn pthread_attr_setschedparam( - attr: *mut ::pthread_attr_t, + attr: *mut crate::pthread_attr_t, param: *const sched_param, - ) -> ::c_int; - pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> ::c_int; + ) -> c_int; + pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> c_int; pub fn pthread_barrier_init( barrier: *mut pthread_barrier_t, - attr: *const ::pthread_barrierattr_t, - count: ::c_uint, - ) -> ::c_int; - pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::c_int; - pub fn pthread_barrierattr_destroy(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + attr: *const crate::pthread_barrierattr_t, + count: c_uint, + ) -> c_int; + pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> c_int; + pub fn pthread_barrierattr_destroy(attr: *mut crate::pthread_barrierattr_t) -> c_int; pub fn pthread_barrierattr_getpshared( - attr: *const ::pthread_barrierattr_t, - shared: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_barrierattr_init(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + attr: *const crate::pthread_barrierattr_t, + shared: *mut c_int, + ) -> c_int; + pub fn pthread_barrierattr_init(attr: *mut crate::pthread_barrierattr_t) -> c_int; pub fn pthread_barrierattr_setpshared( - attr: *mut ::pthread_barrierattr_t, - shared: ::c_int, - ) -> ::c_int; - pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; + attr: *mut crate::pthread_barrierattr_t, + shared: c_int, + ) -> c_int; + pub fn pthread_cancel(thread: crate::pthread_t) -> c_int; pub fn pthread_condattr_getclock( attr: *const pthread_condattr_t, clock_id: *mut clockid_t, - ) -> ::c_int; + ) -> c_int; pub fn pthread_condattr_getpshared( attr: *const pthread_condattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; + pshared: *mut c_int, + ) -> c_int; pub fn pthread_condattr_setclock( attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int; + clock_id: crate::clockid_t, + ) -> c_int; + pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: c_int) -> c_int; pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - pub fn pthread_getattr_np(native: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int; + native: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + f: extern "C" fn(*mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; + pub fn pthread_getattr_np(native: crate::pthread_t, attr: *mut crate::pthread_attr_t) -> c_int; + pub fn pthread_getcpuclockid(thread: crate::pthread_t, clk_id: *mut crate::clockid_t) -> c_int; pub fn pthread_getschedparam( - thread: ::pthread_t, - policy: *mut ::c_int, + thread: crate::pthread_t, + policy: *mut c_int, param: *mut sched_param, - ) -> ::c_int; - pub fn pthread_kill(thread: ::pthread_t, signal: ::c_int) -> ::c_int; - pub fn pthread_mutex_consistent(mutex: *mut ::pthread_mutex_t) -> ::c_int; + ) -> c_int; + pub fn pthread_kill(thread: crate::pthread_t, signal: c_int) -> c_int; + pub fn pthread_mutex_consistent(mutex: *mut crate::pthread_mutex_t) -> c_int; pub fn pthread_mutex_timedlock( lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; + abstime: *const crate::timespec, + ) -> c_int; pub fn pthread_mutexattr_getprotocol( attr: *const pthread_mutexattr_t, - protocol: *mut ::c_int, - ) -> ::c_int; + protocol: *mut c_int, + ) -> c_int; pub fn pthread_mutexattr_getpshared( attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; + pshared: *mut c_int, + ) -> c_int; pub fn pthread_mutexattr_getrobust( - attr: *mut ::pthread_mutexattr_t, - robust: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_setprotocol( - attr: *mut pthread_mutexattr_t, - protocol: ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_setpshared( - attr: *mut pthread_mutexattr_t, - pshared: ::c_int, - ) -> ::c_int; + attr: *mut crate::pthread_mutexattr_t, + robust: *mut c_int, + ) -> c_int; + pub fn pthread_mutexattr_setprotocol(attr: *mut pthread_mutexattr_t, protocol: c_int) -> c_int; + pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, pshared: c_int) -> c_int; pub fn pthread_mutexattr_setrobust( - attr: *mut ::pthread_mutexattr_t, - robust: ::c_int, - ) -> ::c_int; + attr: *mut crate::pthread_mutexattr_t, + robust: c_int, + ) -> c_int; pub fn pthread_rwlockattr_getpshared( attr: *const pthread_rwlockattr_t, - val: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int; + val: *mut c_int, + ) -> c_int; + pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: c_int) -> c_int; pub fn pthread_setschedparam( - thread: ::pthread_t, - policy: ::c_int, + thread: crate::pthread_t, + policy: c_int, param: *const sched_param, - ) -> ::c_int; - pub fn pthread_setschedprio(native: ::pthread_t, priority: ::c_int) -> ::c_int; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> ::c_int; + ) -> c_int; + pub fn pthread_setschedprio(native: crate::pthread_t, priority: c_int) -> c_int; + pub fn pthread_sigmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; + pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> c_int; + pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: c_int) -> c_int; + pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> c_int; + pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> c_int; + pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> c_int; } #[link(name = "iconv")] extern "C" { pub fn iconv( cd: iconv_t, - inbuf: *mut *mut ::c_char, - inbytesleft: *mut ::size_t, - outbuf: *mut *mut ::c_char, - outbytesleft: *mut ::size_t, - ) -> ::size_t; - pub fn iconv_close(cd: iconv_t) -> ::c_int; - pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; + inbuf: *mut *mut c_char, + inbytesleft: *mut size_t, + outbuf: *mut *mut c_char, + outbytesleft: *mut size_t, + ) -> size_t; + pub fn iconv_close(cd: iconv_t) -> c_int; + pub fn iconv_open(tocode: *const c_char, fromcode: *const c_char) -> iconv_t; } extern "C" { - pub fn acct(filename: *const ::c_char) -> ::c_int; - pub fn aio_cancel(fildes: ::c_int, aiocbp: *mut ::aiocb) -> ::c_int; - pub fn aio_error(aiocbp: *mut ::aiocb) -> ::c_int; + pub fn acct(filename: *const c_char) -> c_int; + pub fn aio_cancel(fildes: c_int, aiocbp: *mut crate::aiocb) -> c_int; + pub fn aio_error(aiocbp: *mut crate::aiocb) -> c_int; #[link_name = "_posix_aio_fsync"] - pub fn aio_fsync(op: ::c_int, aiocbp: *mut ::aiocb) -> ::c_int; - pub fn aio_read(aiocbp: *mut ::aiocb) -> ::c_int; + pub fn aio_fsync(op: c_int, aiocbp: *mut crate::aiocb) -> c_int; + pub fn aio_read(aiocbp: *mut crate::aiocb) -> c_int; // pub fn aio_suspend // pub fn aio_write - pub fn basename(path: *mut ::c_char) -> *mut ::c_char; - pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; - pub fn brk(addr: *mut ::c_void) -> ::c_int; - pub fn clearenv() -> ::c_int; - pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::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 basename(path: *mut c_char) -> *mut c_char; + pub fn bind( + socket: c_int, + address: *const crate::sockaddr, + address_len: crate::socklen_t, + ) -> c_int; + pub fn brk(addr: *mut c_void) -> c_int; + pub fn clearenv() -> c_int; + pub fn clock_getcpuclockid(pid: crate::pid_t, clk_id: *mut crate::clockid_t) -> c_int; + pub fn clock_getres(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; - pub fn clock_settime(clock_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; - pub fn creat64(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; - pub fn drand48() -> ::c_double; - pub fn duplocale(arg1: ::locale_t) -> ::locale_t; + clk_id: crate::clockid_t, + flags: c_int, + rqtp: *const crate::timespec, + rmtp: *mut crate::timespec, + ) -> c_int; + pub fn clock_settime(clock_id: crate::clockid_t, tp: *const crate::timespec) -> c_int; + pub fn creat64(path: *const c_char, mode: mode_t) -> c_int; + pub fn ctermid(s: *mut c_char) -> *mut c_char; + pub fn dirfd(dirp: *mut crate::DIR) -> c_int; + pub fn dirname(path: *mut c_char) -> *mut c_char; + pub fn drand48() -> c_double; + pub fn duplocale(arg1: crate::locale_t) -> crate::locale_t; pub fn endgrent(); - pub fn endmntent(streamp: *mut ::FILE) -> ::c_int; + pub fn endmntent(streamp: *mut crate::FILE) -> c_int; pub fn endpwent(); pub fn endutent(); pub fn endutxent(); - pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double; - pub fn faccessat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::c_int, - flags: ::c_int, - ) -> ::c_int; - pub fn fattach(fildes: ::c_int, path: *const ::c_char) -> ::c_int; - pub fn fdatasync(fd: ::c_int) -> ::c_int; + pub fn erand48(xseed: *mut c_ushort) -> c_double; + pub fn faccessat(dirfd: c_int, pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; + pub fn fattach(fildes: c_int, path: *const c_char) -> c_int; + pub fn fdatasync(fd: c_int) -> c_int; // DIFF(main): changed to `*const *mut` in e77f551de9 - pub fn fexecve( - fd: ::c_int, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - - pub fn ffs(value: ::c_int) -> ::c_int; - pub fn ffsl(value: ::c_long) -> ::c_int; - pub fn ffsll(value: ::c_longlong) -> ::c_int; - pub fn fgetgrent(file: *mut ::FILE) -> *mut ::group; - pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int; - pub fn fgetpwent(file: *mut ::FILE) -> *mut ::passwd; - pub fn fopen64(filename: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn freelocale(loc: ::locale_t); + pub fn fexecve(fd: c_int, argv: *const *const c_char, envp: *const *const c_char) -> c_int; + + pub fn ffs(value: c_int) -> c_int; + pub fn ffsl(value: c_long) -> c_int; + pub fn ffsll(value: c_longlong) -> c_int; + pub fn fgetgrent(file: *mut crate::FILE) -> *mut crate::group; + pub fn fgetpos64(stream: *mut crate::FILE, ptr: *mut fpos64_t) -> c_int; + pub fn fgetpwent(file: *mut crate::FILE) -> *mut crate::passwd; + pub fn fopen64(filename: *const c_char, mode: *const c_char) -> *mut crate::FILE; + pub fn freelocale(loc: crate::locale_t); pub fn freopen64( filename: *const c_char, mode: *const c_char, - file: *mut ::FILE, - ) -> *mut ::FILE; - pub fn fseeko64(stream: *mut ::FILE, offset: ::off64_t, whence: ::c_int) -> ::c_int; - pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int; - pub fn fstat64(fildes: ::c_int, buf: *mut stat64) -> ::c_int; - pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - pub fn fstatfs64(fd: ::c_int, buf: *mut statfs64) -> ::c_int; - pub fn fstatvfs64(fd: ::c_int, buf: *mut statvfs64) -> ::c_int; - pub fn ftello64(stream: *mut ::FILE) -> ::off64_t; - pub fn ftok(path: *const ::c_char, id: ::c_int) -> ::key_t; - pub fn ftruncate64(fd: ::c_int, length: off64_t) -> ::c_int; - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; - pub fn getdomainname(name: *mut ::c_char, len: ::c_int) -> ::c_int; - pub fn getdtablesize() -> ::c_int; - pub fn getgrent() -> *mut ::group; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + file: *mut crate::FILE, + ) -> *mut crate::FILE; + pub fn fseeko64(stream: *mut crate::FILE, offset: off64_t, whence: c_int) -> c_int; + pub fn fsetpos64(stream: *mut crate::FILE, ptr: *const fpos64_t) -> c_int; + pub fn fstat64(fildes: c_int, buf: *mut stat64) -> c_int; + pub fn fstatfs(fd: c_int, buf: *mut statfs) -> c_int; + pub fn fstatfs64(fd: c_int, buf: *mut statfs64) -> c_int; + pub fn fstatvfs64(fd: c_int, buf: *mut statvfs64) -> c_int; + pub fn ftello64(stream: *mut crate::FILE) -> off64_t; + pub fn ftok(path: *const c_char, id: c_int) -> crate::key_t; + pub fn ftruncate64(fd: c_int, length: off64_t) -> c_int; + pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; + pub fn getcontext(ucp: *mut ucontext_t) -> c_int; + pub fn getdomainname(name: *mut c_char, len: c_int) -> c_int; + pub fn getdtablesize() -> c_int; + pub fn getgrent() -> *mut crate::group; + pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + gid: crate::gid_t, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn getgrnam(name: *const c_char) -> *mut crate::group; pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn getgrset(user: *mut ::c_char) -> *mut ::c_char; - pub fn gethostid() -> ::c_long; - pub fn getmntent(stream: *mut ::FILE) -> *mut ::mntent; + name: *const c_char, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn getgrset(user: *mut c_char) -> *mut c_char; + pub fn gethostid() -> c_long; + pub fn getmntent(stream: *mut crate::FILE) -> *mut crate::mntent; pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::size_t, - host: *mut ::c_char, - hostlen: ::size_t, - serv: *mut ::c_char, - servlen: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn getpagesize() -> ::c_int; - pub fn getpeereid(socket: ::c_int, euid: *mut ::uid_t, egid: *mut ::gid_t) -> ::c_int; - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn getpwent() -> *mut ::passwd; + sa: *const crate::sockaddr, + salen: size_t, + host: *mut c_char, + hostlen: size_t, + serv: *mut c_char, + servlen: size_t, + flags: c_int, + ) -> c_int; + pub fn getpagesize() -> c_int; + pub fn getpeereid(socket: c_int, euid: *mut crate::uid_t, egid: *mut crate::gid_t) -> c_int; + pub fn getpriority(which: c_int, who: crate::id_t) -> c_int; + pub fn getpwent() -> *mut crate::passwd; pub fn getpwnam_r( - name: *const ::c_char, + name: *const c_char, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; pub fn getpwuid_r( - uid: ::uid_t, + uid: crate::uid_t, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn getrlimit64(resource: ::c_int, rlim: *mut rlimit64) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn getitimer(which: ::c_int, curr_value: *mut ::itimerval) -> ::c_int; + ) -> c_int; + pub fn getrlimit(resource: c_int, rlim: *mut crate::rlimit) -> c_int; + pub fn getrlimit64(resource: c_int, rlim: *mut rlimit64) -> c_int; + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut c_void) -> c_int; + pub fn getitimer(which: c_int, curr_value: *mut crate::itimerval) -> c_int; pub fn getutent() -> *mut utmp; pub fn getutid(u: *const utmp) -> *mut utmp; pub fn getutline(u: *const utmp) -> *mut utmp; @@ -2902,437 +2896,398 @@ extern "C" { pub fn getutxid(ut: *const utmpx) -> *mut utmpx; pub fn getutxline(ut: *const utmpx) -> *mut utmpx; pub fn glob( - pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t, - ) -> ::c_int; - pub fn globfree(pglob: *mut ::glob_t); - pub fn hasmntopt(mnt: *const ::mntent, opt: *const ::c_char) -> *mut ::c_char; - pub fn hcreate(nelt: ::size_t) -> ::c_int; + pattern: *const c_char, + flags: c_int, + errfunc: Option c_int>, + pglob: *mut crate::glob_t, + ) -> c_int; + pub fn globfree(pglob: *mut crate::glob_t); + pub fn hasmntopt(mnt: *const crate::mntent, opt: *const c_char) -> *mut c_char; + pub fn hcreate(nelt: size_t) -> c_int; pub fn hdestroy(); - pub fn hsearch(entry: entry, action: ::c_int) -> *mut entry; + pub fn hsearch(entry: entry, action: c_int) -> *mut entry; pub fn if_freenameindex(ptr: *mut if_nameindex); pub fn if_nameindex() -> *mut if_nameindex; - pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; - pub fn ioctl(fildes: ::c_int, request: ::c_int, ...) -> ::c_int; - pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn lcong48(p: *mut ::c_ushort); + pub fn initgroups(name: *const c_char, basegid: crate::gid_t) -> c_int; + pub fn ioctl(fildes: c_int, request: c_int, ...) -> c_int; + pub fn jrand48(xseed: *mut c_ushort) -> c_long; + pub fn lcong48(p: *mut c_ushort); pub fn lfind( - key: *const ::c_void, - base: *const ::c_void, - nelp: *mut ::size_t, - width: ::size_t, - compar: ::Option ::c_int>, - ) -> *mut ::c_void; + key: *const c_void, + base: *const c_void, + nelp: *mut size_t, + width: size_t, + compar: Option c_int>, + ) -> *mut c_void; pub fn lio_listio( - mode: ::c_int, + mode: c_int, aiocb_list: *const *mut aiocb, - nitems: ::c_int, + nitems: c_int, sevp: *mut sigevent, - ) -> ::c_int; - pub fn loadquery(flags: ::c_int, buf: *mut ::c_char, buflen: ::c_uint) -> ::c_int; - pub fn lpar_get_info(command: ::c_int, buf: *mut ::c_void, bufsize: ::size_t) -> ::c_int; - pub fn lpar_set_resources(id: ::c_int, resource: *mut ::c_void) -> ::c_int; + ) -> c_int; + pub fn loadquery(flags: c_int, buf: *mut c_char, buflen: c_uint) -> c_int; + pub fn lpar_get_info(command: c_int, buf: *mut c_void, bufsize: size_t) -> c_int; + pub fn lpar_set_resources(id: c_int, resource: *mut c_void) -> c_int; pub fn lrand48() -> c_long; pub fn lsearch( - key: *const ::c_void, - base: *mut ::c_void, - nelp: *mut ::size_t, - width: ::size_t, - compar: ::Option ::c_int>, - ) -> *mut ::c_void; - pub fn lseek64(fd: ::c_int, offset: off64_t, whence: ::c_int) -> off64_t; - pub fn lstat64(path: *const c_char, buf: *mut stat64) -> ::c_int; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - pub fn makecontext(ucp: *mut ::ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); - pub fn mallinfo() -> ::mallinfo; - pub fn mallopt(param: ::c_int, value: ::c_int) -> ::c_int; + key: *const c_void, + base: *mut c_void, + nelp: *mut size_t, + width: size_t, + compar: Option c_int>, + ) -> *mut c_void; + pub fn lseek64(fd: c_int, offset: off64_t, whence: c_int) -> off64_t; + pub fn lstat64(path: *const c_char, buf: *mut stat64) -> c_int; + pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; + pub fn makecontext(ucp: *mut crate::ucontext_t, func: extern "C" fn(), argc: c_int, ...); + pub fn mallinfo() -> crate::mallinfo; + pub fn mallopt(param: c_int, value: c_int) -> c_int; pub fn memmem( - haystack: *const ::c_void, - haystacklen: ::size_t, - needle: *const ::c_void, - needlelen: ::size_t, - ) -> *mut ::c_void; - pub fn memset_s(s: *mut ::c_void, smax: ::size_t, c: ::c_int, n: ::size_t) -> ::c_int; - pub fn mincore(addr: *const ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; - pub fn mknodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - dev: dev_t, - ) -> ::c_int; - pub fn mount(device: *const ::c_char, path: *const ::c_char, flags: ::c_int) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn mq_close(mqd: ::mqd_t) -> ::c_int; - pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_notify(mqd: ::mqd_t, notification: *const ::sigevent) -> ::c_int; - pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; + haystack: *const c_void, + haystacklen: size_t, + needle: *const c_void, + needlelen: size_t, + ) -> *mut c_void; + pub fn memset_s(s: *mut c_void, smax: size_t, c: c_int, n: size_t) -> c_int; + pub fn mincore(addr: *const c_void, len: size_t, vec: *mut c_char) -> c_int; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; + pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t, dev: dev_t) + -> c_int; + pub fn mount(device: *const c_char, path: *const c_char, flags: c_int) -> c_int; + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; + pub fn mq_close(mqd: crate::mqd_t) -> c_int; + pub fn mq_getattr(mqd: crate::mqd_t, attr: *mut crate::mq_attr) -> c_int; + pub fn mq_notify(mqd: crate::mqd_t, notification: *const crate::sigevent) -> c_int; + pub fn mq_open(name: *const c_char, oflag: c_int, ...) -> crate::mqd_t; pub fn mq_receive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - ) -> ::ssize_t; + mqd: crate::mqd_t, + msg_ptr: *mut c_char, + msg_len: size_t, + msg_prio: *mut c_uint, + ) -> ssize_t; pub fn mq_send( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - ) -> ::c_int; - pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; + mqd: crate::mqd_t, + msg_ptr: *const c_char, + msg_len: size_t, + msg_prio: c_uint, + ) -> c_int; + pub fn mq_setattr( + mqd: crate::mqd_t, + newattr: *const crate::mq_attr, + oldattr: *mut crate::mq_attr, + ) -> c_int; pub fn mq_timedreceive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::ssize_t; + mqd: crate::mqd_t, + msg_ptr: *mut c_char, + msg_len: size_t, + msg_prio: *mut c_uint, + abs_timeout: *const crate::timespec, + ) -> ssize_t; pub fn mq_timedsend( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::c_int; - pub fn mq_unlink(name: *const ::c_char) -> ::c_int; + mqd: crate::mqd_t, + msg_ptr: *const c_char, + msg_len: size_t, + msg_prio: c_uint, + abs_timeout: *const crate::timespec, + ) -> c_int; + pub fn mq_unlink(name: *const c_char) -> c_int; pub fn mrand48() -> c_long; - pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int; - pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; + pub fn msgctl(msqid: c_int, cmd: c_int, buf: *mut msqid_ds) -> c_int; + pub fn msgget(key: crate::key_t, msgflg: c_int) -> c_int; pub fn msgrcv( - msqid: ::c_int, - msgp: *mut ::c_void, - msgsz: ::size_t, - msgtyp: ::c_long, - msgflg: ::c_int, - ) -> ::ssize_t; - pub fn msgsnd( - msqid: ::c_int, - msgp: *const ::c_void, - msgsz: ::size_t, - msgflg: ::c_int, - ) -> ::c_int; - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - pub fn nl_langinfo_l(item: ::nl_item, loc: ::locale_t) -> *mut ::c_char; - pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn open64(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; - pub fn pollset_create(maxfd: ::c_int) -> pollset_t; - pub fn pollset_ctl( - ps: pollset_t, - pollctl_array: *mut poll_ctl, - array_length: ::c_int, - ) -> ::c_int; - pub fn pollset_destroy(ps: pollset_t) -> ::c_int; + msqid: c_int, + msgp: *mut c_void, + msgsz: size_t, + msgtyp: c_long, + msgflg: c_int, + ) -> ssize_t; + pub fn msgsnd(msqid: c_int, msgp: *const c_void, msgsz: size_t, msgflg: c_int) -> c_int; + pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; + pub fn newlocale(mask: c_int, locale: *const c_char, base: crate::locale_t) -> crate::locale_t; + pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char; + pub fn nl_langinfo_l(item: crate::nl_item, loc: crate::locale_t) -> *mut c_char; + pub fn nrand48(xseed: *mut c_ushort) -> c_long; + pub fn open64(path: *const c_char, oflag: c_int, ...) -> c_int; + pub fn pollset_create(maxfd: c_int) -> pollset_t; + pub fn pollset_ctl(ps: pollset_t, pollctl_array: *mut poll_ctl, array_length: c_int) -> c_int; + pub fn pollset_destroy(ps: pollset_t) -> c_int; pub fn pollset_poll( ps: pollset_t, - polldata_array: *mut ::pollfd, - array_length: ::c_int, - timeout: ::c_int, - ) -> ::c_int; - pub fn pollset_query(ps: pollset_t, pollfd_query: *mut ::pollfd) -> ::c_int; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; - pub fn posix_fadvise64( - fd: ::c_int, - offset: ::off64_t, - len: ::off64_t, - advise: ::c_int, - ) -> ::c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn posix_fallocate64(fd: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int; - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + polldata_array: *mut crate::pollfd, + array_length: c_int, + timeout: c_int, + ) -> c_int; + pub fn pollset_query(ps: pollset_t, pollfd_query: *mut crate::pollfd) -> c_int; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut crate::FILE; + pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advise: c_int) -> c_int; + pub fn posix_fadvise64(fd: c_int, offset: off64_t, len: off64_t, advise: c_int) -> c_int; + pub fn posix_fallocate(fd: c_int, offset: off_t, len: off_t) -> c_int; + pub fn posix_fallocate64(fd: c_int, offset: off64_t, len: off64_t) -> c_int; + pub fn posix_madvise(addr: *mut c_void, len: size_t, advice: 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; + pid: *mut crate::pid_t, + path: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::posix_spawnattr_t, + argv: *const *mut c_char, + envp: *const *mut c_char, + ) -> c_int; pub fn posix_spawn_file_actions_addclose( actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; + 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; + fd: c_int, + newfd: c_int, + ) -> 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_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_getflags( - attr: *const posix_spawnattr_t, - flags: *mut ::c_short, - ) -> ::c_int; + fd: c_int, + path: *const c_char, + oflag: c_int, + mode: crate::mode_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_init(actions: *mut posix_spawn_file_actions_t) -> c_int; + pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> c_int; + pub fn posix_spawnattr_getflags(attr: *const posix_spawnattr_t, flags: *mut c_short) -> c_int; pub fn posix_spawnattr_getpgroup( attr: *const posix_spawnattr_t, - flags: *mut ::pid_t, - ) -> ::c_int; + flags: *mut crate::pid_t, + ) -> c_int; pub fn posix_spawnattr_getschedparam( attr: *const posix_spawnattr_t, - param: *mut ::sched_param, - ) -> ::c_int; + param: *mut crate::sched_param, + ) -> c_int; pub fn posix_spawnattr_getschedpolicy( attr: *const posix_spawnattr_t, - flags: *mut ::c_int, - ) -> ::c_int; + flags: *mut c_int, + ) -> c_int; pub fn posix_spawnattr_getsigdefault( attr: *const posix_spawnattr_t, default: *mut sigset_t, - ) -> ::c_int; + ) -> c_int; pub fn posix_spawnattr_getsigmask( attr: *const posix_spawnattr_t, default: *mut sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; - pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int; + ) -> c_int; + pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> c_int; + pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: c_short) -> c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: crate::pid_t) -> c_int; pub fn posix_spawnattr_setschedparam( attr: *mut posix_spawnattr_t, - param: *const ::sched_param, - ) -> ::c_int; - pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: ::c_int) -> ::c_int; + param: *const crate::sched_param, + ) -> c_int; + pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: c_int) -> c_int; pub fn posix_spawnattr_setsigdefault( attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; + default: *const crate::sigset_t, + ) -> c_int; pub fn posix_spawnattr_setsigmask( attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; + default: *const crate::sigset_t, + ) -> 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 pread64(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off64_t) -> ::ssize_t; - pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; + pid: *mut crate::pid_t, + file: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::posix_spawnattr_t, + argv: *const *mut c_char, + envp: *const *mut c_char, + ) -> c_int; + pub fn pread64(fd: c_int, buf: *mut c_void, count: size_t, offset: off64_t) -> ssize_t; + pub fn preadv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; pub fn ptrace64( - request: ::c_int, - id: ::c_longlong, - addr: ::c_longlong, - data: ::c_int, - buff: *mut ::c_int, - ) -> ::c_int; + request: c_int, + id: c_longlong, + addr: c_longlong, + data: c_int, + buff: *mut c_int, + ) -> c_int; pub fn pututline(u: *const utmp) -> *mut utmp; pub fn pututxline(ut: *const utmpx) -> *mut utmpx; - pub fn pwrite64( - fd: ::c_int, - buf: *const ::c_void, - count: ::size_t, - offset: off64_t, - ) -> ::ssize_t; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) - -> ::ssize_t; + pub fn pwrite64(fd: c_int, buf: *const c_void, count: size_t, offset: off64_t) -> ssize_t; + pub fn pwritev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; #[link_name = "__linux_quotactl"] - pub fn quotactl( - cmd: ::c_int, - special: *const ::c_char, - id: ::c_int, - data: *mut ::c_char, - ) -> ::c_int; - pub fn rand() -> ::c_int; - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn quotactl(cmd: c_int, special: *const c_char, id: c_int, data: *mut c_char) -> c_int; + pub fn rand() -> c_int; + pub fn readv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; + socket: c_int, + buf: *mut c_void, + len: size_t, + flags: c_int, + addr: *mut crate::sockaddr, + addrlen: *mut crate::socklen_t, + ) -> ssize_t; pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - timeout: *mut ::timespec, - ) -> ::c_int; - pub fn recvmsg(sockfd: ::c_int, msg: *mut msghdr, flags: ::c_int) -> ::ssize_t; - pub fn regcomp(preg: *mut regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int; + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_int, + timeout: *mut crate::timespec, + ) -> c_int; + pub fn recvmsg(sockfd: c_int, msg: *mut msghdr, flags: c_int) -> ssize_t; + pub fn regcomp(preg: *mut regex_t, pattern: *const c_char, cflags: c_int) -> c_int; pub fn regerror( - errcode: ::c_int, - preg: *const ::regex_t, - errbuf: *mut ::c_char, - errbuf_size: ::size_t, - ) -> ::size_t; + errcode: c_int, + preg: *const crate::regex_t, + errbuf: *mut c_char, + errbuf_size: size_t, + ) -> size_t; pub fn regexec( preg: *const regex_t, - input: *const ::c_char, - nmatch: ::size_t, + input: *const c_char, + nmatch: size_t, pmatch: *mut regmatch_t, - eflags: ::c_int, - ) -> ::c_int; + eflags: c_int, + ) -> c_int; pub fn regfree(preg: *mut regex_t); - pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; - pub fn sched_getparam(pid: ::pid_t, param: *mut sched_param) -> ::c_int; - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; - pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; - pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; + pub fn sbrk(increment: intptr_t) -> *mut c_void; + pub fn sched_getparam(pid: crate::pid_t, param: *mut sched_param) -> c_int; + pub fn sched_getscheduler(pid: crate::pid_t) -> c_int; + pub fn sched_get_priority_max(policy: c_int) -> c_int; + pub fn sched_get_priority_min(policy: c_int) -> c_int; + pub fn sched_rr_get_interval(pid: crate::pid_t, tp: *mut crate::timespec) -> c_int; + pub fn sched_setparam(pid: crate::pid_t, param: *const crate::sched_param) -> c_int; pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; + pid: crate::pid_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; pub fn sctp_opt_info( - sd: ::c_int, - id: ::sctp_assoc_t, - opt: ::c_int, - arg_size: *mut ::c_void, - size: *mut ::size_t, - ) -> ::c_int; - pub fn sctp_peeloff(s: ::c_int, id: ::sctp_assoc_t) -> ::c_int; - pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort; - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); - pub fn sem_close(sem: *mut sem_t) -> ::c_int; - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; - pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; - pub fn semget(key: ::key_t, nsems: ::c_int, semflag: ::c_int) -> ::c_int; - pub fn semop(semid: ::c_int, sops: *mut sembuf, nsops: ::size_t) -> ::c_int; - pub fn send_file(socket: *mut ::c_int, iobuf: *mut sf_parms, flags: ::c_uint) -> ::ssize_t; - pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - ) -> ::c_int; - pub fn sendmsg(sockfd: ::c_int, msg: *const msghdr, flags: ::c_int) -> ::ssize_t; - pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; - pub fn setdomainname(name: *const ::c_char, len: ::c_int) -> ::c_int; - pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int; + sd: c_int, + id: crate::sctp_assoc_t, + opt: c_int, + arg_size: *mut c_void, + size: *mut size_t, + ) -> c_int; + pub fn sctp_peeloff(s: c_int, id: crate::sctp_assoc_t) -> c_int; + pub fn seed48(xseed: *mut c_ushort) -> *mut c_ushort; + pub fn seekdir(dirp: *mut crate::DIR, loc: c_long); + pub fn sem_close(sem: *mut sem_t) -> c_int; + pub fn sem_destroy(sem: *mut sem_t) -> c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int; + pub fn sem_init(sem: *mut sem_t, pshared: c_int, value: c_uint) -> c_int; + pub fn sem_open(name: *const c_char, oflag: c_int, ...) -> *mut sem_t; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int; + pub fn sem_unlink(name: *const c_char) -> c_int; + pub fn semctl(semid: c_int, semnum: c_int, cmd: c_int, ...) -> c_int; + pub fn semget(key: crate::key_t, nsems: c_int, semflag: c_int) -> c_int; + pub fn semop(semid: c_int, sops: *mut sembuf, nsops: size_t) -> c_int; + pub fn send_file(socket: *mut c_int, iobuf: *mut sf_parms, flags: c_uint) -> ssize_t; + pub fn sendmmsg(sockfd: c_int, msgvec: *mut mmsghdr, vlen: c_uint, flags: c_int) -> c_int; + pub fn sendmsg(sockfd: c_int, msg: *const msghdr, flags: c_int) -> ssize_t; + pub fn setcontext(ucp: *const ucontext_t) -> c_int; + pub fn setdomainname(name: *const c_char, len: c_int) -> c_int; + pub fn setgroups(ngroups: c_int, ptr: *const crate::gid_t) -> c_int; pub fn setgrent(); - pub fn sethostid(hostid: ::c_int) -> ::c_int; - pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int; - pub fn setmntent(filename: *const ::c_char, ty: *const ::c_char) -> *mut ::FILE; - pub fn setpriority(which: ::c_int, who: id_t, priority: ::c_int) -> ::c_int; + pub fn sethostid(hostid: c_int) -> c_int; + pub fn sethostname(name: *const c_char, len: c_int) -> c_int; + pub fn setmntent(filename: *const c_char, ty: *const c_char) -> *mut crate::FILE; + pub fn setpriority(which: c_int, who: id_t, priority: c_int) -> c_int; pub fn setpwent(); - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - pub fn setrlimit64(resource: ::c_int, rlim: *const rlimit64) -> ::c_int; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; + pub fn setrlimit(resource: c_int, rlim: *const crate::rlimit) -> c_int; + pub fn setrlimit64(resource: c_int, rlim: *const rlimit64) -> c_int; + pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int; pub fn setitimer( - which: ::c_int, - new_value: *const ::itimerval, - old_value: *mut ::itimerval, - ) -> ::c_int; + which: c_int, + new_value: *const crate::itimerval, + old_value: *mut crate::itimerval, + ) -> c_int; pub fn setutent(); pub fn setutxent(); - pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; - pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> c_int; + pub fn sigsuspend(mask: *const crate::sigset_t) -> c_int; pub fn sigtimedwait( set: *const sigset_t, info: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; - 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 shmget(key: key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int; - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; - pub fn splice(socket1: ::c_int, socket2: ::c_int, flags: ::c_int) -> ::c_int; - pub fn srand(seed: ::c_uint); - pub fn srand48(seed: ::c_long); - pub fn stat64(path: *const ::c_char, buf: *mut stat64) -> ::c_int; - pub fn stat64at( - dirfd: ::c_int, - path: *const ::c_char, - buf: *mut stat64, - flags: ::c_int, - ) -> ::c_int; - pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; - pub fn statfs64(path: *const ::c_char, buf: *mut statfs64) -> ::c_int; - pub fn statvfs64(path: *const ::c_char, buf: *mut statvfs64) -> ::c_int; - pub fn statx( - path: *const ::c_char, - buf: *mut stat, - length: ::c_int, - command: ::c_int, - ) -> ::c_int; + timeout: *const crate::timespec, + ) -> c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> c_int; + 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 crate::shmid_ds) -> c_int; + pub fn shmget(key: key_t, size: size_t, shmflg: c_int) -> c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: crate::mode_t) -> c_int; + pub fn shm_unlink(name: *const c_char) -> c_int; + pub fn splice(socket1: c_int, socket2: c_int, flags: c_int) -> c_int; + pub fn srand(seed: c_uint); + pub fn srand48(seed: c_long); + pub fn stat64(path: *const c_char, buf: *mut stat64) -> c_int; + pub fn stat64at(dirfd: c_int, path: *const c_char, buf: *mut stat64, flags: c_int) -> c_int; + pub fn statfs(path: *const c_char, buf: *mut statfs) -> c_int; + pub fn statfs64(path: *const c_char, buf: *mut statfs64) -> c_int; + pub fn statvfs64(path: *const c_char, buf: *mut statvfs64) -> c_int; + pub fn statx(path: *const c_char, buf: *mut stat, length: c_int, command: c_int) -> c_int; pub fn strcasecmp_l( - string1: *const ::c_char, - string2: *const ::c_char, - locale: ::locale_t, - ) -> ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + string1: *const c_char, + string2: *const c_char, + locale: crate::locale_t, + ) -> c_int; + pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; pub fn strftime( arg1: *mut c_char, - arg2: ::size_t, + arg2: size_t, arg3: *const c_char, arg4: *const tm, - ) -> ::size_t; + ) -> size_t; pub fn strncasecmp_l( - string1: *const ::c_char, - string2: *const ::c_char, - length: ::size_t, - locale: ::locale_t, - ) -> ::c_int; - pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; - pub fn strsep(string: *mut *mut ::c_char, delim: *const ::c_char) -> *mut ::c_char; - pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> ::c_int; - pub fn swapoff(puath: *const ::c_char) -> ::c_int; - pub fn swapon(path: *const ::c_char) -> ::c_int; + string1: *const c_char, + string2: *const c_char, + length: size_t, + locale: crate::locale_t, + ) -> c_int; + pub fn strptime(s: *const c_char, format: *const c_char, tm: *mut crate::tm) -> *mut c_char; + pub fn strsep(string: *mut *mut c_char, delim: *const c_char) -> *mut c_char; + pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> c_int; + pub fn swapoff(puath: *const c_char) -> c_int; + pub fn swapon(path: *const c_char) -> c_int; pub fn sync(); - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; + pub fn telldir(dirp: *mut crate::DIR) -> c_long; pub fn timer_create( - clockid: ::clockid_t, - sevp: *mut ::sigevent, - timerid: *mut ::timer_t, - ) -> ::c_int; - pub fn timer_delete(timerid: timer_t) -> ::c_int; - pub fn timer_getoverrun(timerid: timer_t) -> ::c_int; - pub fn timer_gettime(timerid: timer_t, value: *mut itimerspec) -> ::c_int; + clockid: crate::clockid_t, + sevp: *mut crate::sigevent, + timerid: *mut crate::timer_t, + ) -> c_int; + pub fn timer_delete(timerid: timer_t) -> c_int; + pub fn timer_getoverrun(timerid: timer_t) -> c_int; + pub fn timer_gettime(timerid: timer_t, value: *mut itimerspec) -> c_int; pub fn timer_settime( - timerid: ::timer_t, - flags: ::c_int, - new_value: *const ::itimerspec, - old_value: *mut ::itimerspec, - ) -> ::c_int; - pub fn truncate64(path: *const c_char, length: off64_t) -> ::c_int; - pub fn uname(buf: *mut ::utsname) -> ::c_int; - pub fn updwtmp(file: *const ::c_char, u: *mut utmp); - pub fn uselocale(loc: ::locale_t) -> ::locale_t; - pub fn utmpname(file: *const ::c_char) -> ::c_int; + timerid: crate::timer_t, + flags: c_int, + new_value: *const crate::itimerspec, + old_value: *mut crate::itimerspec, + ) -> c_int; + pub fn truncate64(path: *const c_char, length: off64_t) -> c_int; + pub fn uname(buf: *mut crate::utsname) -> c_int; + pub fn updwtmp(file: *const c_char, u: *mut utmp); + pub fn uselocale(loc: crate::locale_t) -> crate::locale_t; + pub fn utmpname(file: *const c_char) -> c_int; pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; + dirfd: c_int, + path: *const c_char, + times: *const crate::timespec, + flag: c_int, + ) -> c_int; pub fn wait4( - pid: ::pid_t, - status: *mut ::c_int, - options: ::c_int, - rusage: *mut ::rusage, - ) -> ::pid_t; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) - -> ::c_int; - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pid: crate::pid_t, + status: *mut c_int, + options: c_int, + rusage: *mut crate::rusage, + ) -> crate::pid_t; + pub fn waitid( + idtype: idtype_t, + id: id_t, + infop: *mut crate::siginfo_t, + options: c_int, + ) -> c_int; + pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; // Use AIX thread-safe version errno. - pub fn _Errno() -> *mut ::c_int; + pub fn _Errno() -> *mut c_int; } cfg_if! { diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index c9b86c5f0eb90..a54b014d8bf16 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -1,3 +1,8 @@ +use crate::{ + c_char, c_int, c_longlong, c_short, c_uint, c_ulonglong, c_ushort, c_void, off_t, size_t, + ssize_t, +}; + pub type c_long = i64; pub type c_ulong = u64; @@ -11,294 +16,290 @@ s! { } 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 l_type: c_short, + pub l_whence: c_short, + pub l_sysid: c_uint, + pub l_pid: crate::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 f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::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], + __rw_word: [c_long; 10], } pub struct pthread_cond_t { - __cv_word: [::c_long; 6], + __cv_word: [c_long; 6], } pub struct pthread_mutex_t { - __mt_word: [::c_long; 8], + __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 st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_flag: c_ushort, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_ssize: c_int, + pub st_atime: crate::st_timespec, + pub st_mtime: crate::st_timespec, + pub st_ctime: crate::st_timespec, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::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 f_version: c_int, + pub f_type: c_int, + pub f_bsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsblkcnt_t, + pub f_ffree: crate::fsblkcnt_t, + pub f_fsid: crate::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_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: crate::sigevent, + pub aio_word2: c_int, + pub aio_fp: c_int, pub aio_handle: *mut aiocb, - pub aio_reserved: [::c_uint; 2], + 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 __sc_onstack: c_int, + pub uc_sigmask: crate::sigset_t, + pub __sc_uerror: c_int, + pub uc_mcontext: crate::mcontext_t, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, + pub uc_stack: crate::stack_t, // Should be pointer to __extctx_t - pub __extctx: *mut ::c_void, - pub __extctx_magic: ::c_int, - pub __pad: [::c_int; 1], + 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], + 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 fpr: [crate::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 ut_user: [c_char; 256], + pub ut_id: [c_char; 14], + pub ut_line: [c_char; 64], + pub ut_pid: crate::pid_t, + pub ut_type: c_short, + pub ut_tv: crate::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 __sp_word: [c_long; 3], } pub struct pthread_barrier_t { - pub __br_word: [::c_long; 5], + 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, + pub msg_perm: crate::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: crate::pid_t, + pub msg_lrpid: crate::pid_t, + pub msg_stime: crate::time_t, + pub msg_rtime: crate::time_t, + pub msg_ctime: crate::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], + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, + pub si_pid: crate::pid_t, + pub si_uid: crate::uid_t, + pub si_status: c_int, + pub si_addr: *mut c_void, + pub si_band: c_long, + pub si_value: crate::sigval, + pub __si_flags: c_int, + pub __pad: [c_int; 3], } pub union _kernel_simple_lock { - pub _slock: ::c_long, + pub _slock: c_long, // Should be pointer to 'lock_data_instrumented' - pub _slockp: *mut ::c_void, + pub _slockp: *mut c_void, } pub struct fileops_t { pub fo_rw: extern "C" fn( file: *mut file, - rw: ::uio_rw, - io: *mut ::c_void, - ext: ::c_long, - secattr: *mut ::c_void, - ) -> ::c_int, + rw: crate::uio_rw, + io: *mut c_void, + ext: c_long, + secattr: *mut c_void, + ) -> c_int, pub fo_ioctl: extern "C" fn( file: *mut file, - a: ::c_long, - b: ::caddr_t, - c: ::c_long, - d: ::c_long, - ) -> ::c_int, - pub fo_select: extern "C" fn( - file: *mut file, - a: ::c_int, - b: *mut ::c_ushort, - c: extern "C" fn(), - ) -> ::c_int, - pub fo_close: extern "C" fn(file: *mut file) -> ::c_int, - pub fo_fstat: extern "C" fn(file: *mut file, sstat: *mut ::stat) -> ::c_int, + a: c_long, + b: crate::caddr_t, + c: c_long, + d: c_long, + ) -> c_int, + pub fo_select: + extern "C" fn(file: *mut file, a: c_int, b: *mut c_ushort, c: extern "C" fn()) -> c_int, + pub fo_close: extern "C" fn(file: *mut file) -> c_int, + pub fo_fstat: extern "C" fn(file: *mut file, sstat: *mut crate::stat) -> c_int, } pub struct file { - pub f_flag: ::c_long, - pub f_count: ::c_int, - pub f_options: ::c_short, - pub f_type: ::c_short, + 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, + pub f_data: *mut c_void, + pub f_offset: c_longlong, + pub f_dir_off: c_long, // Should be pointer to 'cred' - pub f_cred: *mut ::c_void, + pub f_cred: *mut c_void, pub f_lock: _kernel_simple_lock, pub f_offset_lock: _kernel_simple_lock, - pub f_vinfo: ::caddr_t, + pub f_vinfo: crate::caddr_t, pub f_ops: *mut fileops_t, - pub f_parentp: ::caddr_t, - pub f_fnamep: ::caddr_t, - pub f_fdata: [::c_char; 160], + pub f_parentp: crate::caddr_t, + pub f_fnamep: crate::caddr_t, + pub f_fdata: [c_char; 160], } pub union __ld_info_file { - pub _ldinfo_fd: ::c_int, + pub _ldinfo_fd: c_int, pub _ldinfo_fp: *mut file, - pub _core_offset: ::c_long, + pub _core_offset: c_long, } pub struct ld_info { - pub ldinfo_next: ::c_uint, - pub ldinfo_flags: ::c_uint, + pub ldinfo_next: c_uint, + pub ldinfo_flags: c_uint, pub _file: __ld_info_file, - pub ldinfo_textorg: *mut ::c_void, - pub ldinfo_textsize: ::c_ulong, - pub ldinfo_dataorg: *mut ::c_void, - pub ldinfo_datasize: ::c_ulong, - pub ldinfo_filename: [::c_char; 2], + pub ldinfo_textorg: *mut c_void, + pub ldinfo_textsize: c_ulong, + pub ldinfo_dataorg: *mut c_void, + pub ldinfo_datasize: c_ulong, + pub ldinfo_filename: [c_char; 2], } pub union __pollfd_ext_u { - pub addr: *mut ::c_void, + pub 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, + pub fd: c_int, + pub events: c_ushort, + pub revents: c_ushort, pub data: __pollfd_ext_u, } } impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { + pub unsafe fn si_addr(&self) -> *mut c_void { self.si_addr } - pub unsafe fn si_value(&self) -> ::sigval { + pub unsafe fn si_value(&self) -> crate::sigval { self.si_value } - pub unsafe fn si_pid(&self) -> ::pid_t { + pub unsafe fn si_pid(&self) -> crate::pid_t { self.si_pid } - pub unsafe fn si_uid(&self) -> ::uid_t { + pub unsafe fn si_uid(&self) -> crate::uid_t { self.si_uid } - pub unsafe fn si_status(&self) -> ::c_int { + pub unsafe fn si_status(&self) -> c_int { self.si_status } } @@ -320,8 +321,8 @@ cfg_if! { } } impl Eq for siginfo_t {} - impl ::fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { + impl crate::fmt::Debug for siginfo_t { + fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { f.debug_struct("siginfo_t") .field("si_signo", &self.si_signo) .field("si_errno", &self.si_errno) @@ -336,8 +337,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for siginfo_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for siginfo_t { + fn hash(&self, state: &mut H) { self.si_signo.hash(state); self.si_errno.hash(state); self.si_code.hash(state); @@ -357,16 +358,16 @@ cfg_if! { } } impl Eq for _kernel_simple_lock {} - impl ::fmt::Debug for _kernel_simple_lock { - fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { + impl crate::fmt::Debug for _kernel_simple_lock { + fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { f.debug_struct("_kernel_simple_lock") .field("_slock", unsafe { &self._slock }) .field("_slockp", unsafe { &self._slockp }) .finish() } } - impl ::hash::Hash for _kernel_simple_lock { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for _kernel_simple_lock { + fn hash(&self, state: &mut H) { unsafe { self._slock.hash(state); self._slockp.hash(state); @@ -384,8 +385,8 @@ cfg_if! { } } impl Eq for fileops_t {} - impl ::fmt::Debug for fileops_t { - fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { + impl crate::fmt::Debug for fileops_t { + fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { f.debug_struct("fileops_t") .field("fo_rw", &self.fo_rw) .field("fo_ioctl", &self.fo_ioctl) @@ -395,8 +396,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for fileops_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for fileops_t { + fn hash(&self, state: &mut H) { self.fo_rw.hash(state); self.fo_ioctl.hash(state); self.fo_select.hash(state); @@ -425,8 +426,8 @@ cfg_if! { } } impl Eq for file {} - impl ::fmt::Debug for file { - fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { + impl crate::fmt::Debug for file { + fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { f.debug_struct("file") .field("f_flag", &self.f_flag) .field("f_count", &self.f_count) @@ -446,8 +447,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for file { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for file { + fn hash(&self, state: &mut H) { self.f_flag.hash(state); self.f_count.hash(state); self.f_options.hash(state); @@ -476,8 +477,8 @@ cfg_if! { } } impl Eq for __ld_info_file {} - impl ::fmt::Debug for __ld_info_file { - fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { + impl crate::fmt::Debug for __ld_info_file { + fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { f.debug_struct("__ld_info_file") .field("_ldinfo_fd", unsafe { &self._ldinfo_fd }) .field("_ldinfo_fp", unsafe { &self._ldinfo_fp }) @@ -485,8 +486,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for __ld_info_file { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __ld_info_file { + fn hash(&self, state: &mut H) { unsafe { self._ldinfo_fd.hash(state); self._ldinfo_fp.hash(state); @@ -508,8 +509,8 @@ cfg_if! { } } impl Eq for ld_info {} - impl ::fmt::Debug for ld_info { - fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { + impl crate::fmt::Debug for ld_info { + fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { f.debug_struct("ld_info") .field("ldinfo_next", &self.ldinfo_next) .field("ldinfo_flags", &self.ldinfo_flags) @@ -522,8 +523,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for ld_info { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ld_info { + fn hash(&self, state: &mut H) { self.ldinfo_next.hash(state); self.ldinfo_flags.hash(state); self.ldinfo_textorg.hash(state); @@ -545,8 +546,8 @@ cfg_if! { } } impl Eq for __pollfd_ext_u {} - impl ::fmt::Debug for __pollfd_ext_u { - fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { + impl crate::fmt::Debug for __pollfd_ext_u { + fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { f.debug_struct("__pollfd_ext_u") .field("addr", unsafe { &self.addr }) .field("data32", unsafe { &self.data32 }) @@ -554,8 +555,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for __pollfd_ext_u { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __pollfd_ext_u { + fn hash(&self, state: &mut H) { unsafe { self.addr.hash(state); self.data.hash(state); @@ -573,8 +574,8 @@ cfg_if! { } } impl Eq for pollfd_ext {} - impl ::fmt::Debug for pollfd_ext { - fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { + impl crate::fmt::Debug for pollfd_ext { + fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { f.debug_struct("pollfd_ext") .field("fd", &self.fd) .field("events", &self.events) @@ -583,8 +584,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for pollfd_ext { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pollfd_ext { + fn hash(&self, state: &mut H) { self.fd.hash(state); self.events.hash(state); self.revents.hash(state); @@ -603,8 +604,8 @@ pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { 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; +pub const RLIM_INFINITY: c_ulong = 0x7fffffffffffffff; extern "C" { - pub fn getsystemcfg(label: ::c_int) -> ::c_ulong; + pub fn getsystemcfg(label: c_int) -> c_ulong; } diff --git a/src/unix/bsd/apple/b32/mod.rs b/src/unix/bsd/apple/b32/mod.rs index 01de2c3a0f39a..9088be7d1ed94 100644 --- a/src/unix/bsd/apple/b32/mod.rs +++ b/src/unix/bsd/apple/b32/mod.rs @@ -1,19 +1,21 @@ //! 32-bit specific Apple (ios/darwin) definitions +use crate::{c_char, c_int, c_uchar, c_ushort}; + pub type c_long = i32; pub type c_ulong = u32; -pub type boolean_t = ::c_int; +pub type boolean_t = c_int; s! { pub struct if_data { - pub ifi_type: ::c_uchar, - pub ifi_typelen: ::c_uchar, - pub ifi_physical: ::c_uchar, - pub ifi_addrlen: ::c_uchar, - pub ifi_hdrlen: ::c_uchar, - pub ifi_recvquota: ::c_uchar, - pub ifi_xmitquota: ::c_uchar, - pub ifi_unused1: ::c_uchar, + pub ifi_type: c_uchar, + pub ifi_typelen: c_uchar, + pub ifi_physical: c_uchar, + pub ifi_addrlen: c_uchar, + pub ifi_hdrlen: c_uchar, + pub ifi_recvquota: c_uchar, + pub ifi_xmitquota: c_uchar, + pub ifi_unused1: c_uchar, pub ifi_mtu: u32, pub ifi_metric: u32, pub ifi_baudrate: u32, @@ -30,7 +32,7 @@ s! { pub ifi_noproto: u32, pub ifi_recvtiming: u32, pub ifi_xmittiming: u32, - pub ifi_lastchange: ::timeval, + pub ifi_lastchange: crate::timeval, pub ifi_unused2: u32, pub ifi_hwassist: u32, pub ifi_reserved1: u32, @@ -38,26 +40,26 @@ s! { } pub struct bpf_hdr { - pub bh_tstamp: ::timeval, + pub bh_tstamp: crate::timeval, pub bh_caplen: u32, pub bh_datalen: u32, - pub bh_hdrlen: ::c_ushort, + pub bh_hdrlen: c_ushort, } pub struct malloc_zone_t { - __private: [::uintptr_t; 18], // FIXME: keeping private for now + __private: [crate::uintptr_t; 18], // FIXME: keeping private for now } } s_no_extra_traits! { pub struct pthread_attr_t { __sig: c_long, - __opaque: [::c_char; 36], + __opaque: [c_char; 36], } pub struct pthread_once_t { __sig: c_long, - __opaque: [::c_char; ::__PTHREAD_ONCE_SIZE__], + __opaque: [c_char; crate::__PTHREAD_ONCE_SIZE__], } #[allow(missing_debug_implementations)] @@ -80,16 +82,16 @@ cfg_if! { } } impl Eq for pthread_attr_t {} - impl ::fmt::Debug for pthread_attr_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_attr_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_attr_t") .field("__sig", &self.__sig) // FIXME: .field("__opaque", &self.__opaque) .finish() } } - impl ::hash::Hash for pthread_attr_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_attr_t { + fn hash(&self, state: &mut H) { self.__sig.hash(state); self.__opaque.hash(state); } @@ -105,15 +107,15 @@ cfg_if! { } } impl Eq for pthread_once_t {} - impl ::fmt::Debug for pthread_once_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_once_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_once_t") .field("__sig", &self.__sig) .finish() } } - impl ::hash::Hash for pthread_once_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_once_t { + fn hash(&self, state: &mut H) { self.__sig.hash(state); self.__opaque.hash(state); } @@ -123,7 +125,7 @@ cfg_if! { #[doc(hidden)] #[deprecated(since = "0.2.55")] -pub const NET_RT_MAXID: ::c_int = 10; +pub const NET_RT_MAXID: c_int = 10; pub const __PTHREAD_MUTEX_SIZE__: usize = 40; pub const __PTHREAD_COND_SIZE__: usize = 24; @@ -132,24 +134,20 @@ pub const __PTHREAD_ONCE_SIZE__: usize = 4; pub const __PTHREAD_RWLOCK_SIZE__: usize = 124; pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 12; -pub const TIOCTIMESTAMP: ::c_ulong = 0x40087459; -pub const TIOCDCDTIMESTAMP: ::c_ulong = 0x40087458; +pub const TIOCTIMESTAMP: c_ulong = 0x40087459; +pub const TIOCDCDTIMESTAMP: c_ulong = 0x40087458; -pub const BIOCSETF: ::c_ulong = 0x80084267; -pub const BIOCSRTIMEOUT: ::c_ulong = 0x8008426d; -pub const BIOCGRTIMEOUT: ::c_ulong = 0x4008426e; -pub const BIOCSETFNR: ::c_ulong = 0x8008427e; +pub const BIOCSETF: c_ulong = 0x80084267; +pub const BIOCSRTIMEOUT: c_ulong = 0x8008426d; +pub const BIOCGRTIMEOUT: c_ulong = 0x4008426e; +pub const BIOCSETFNR: c_ulong = 0x8008427e; const _PTHREAD_ONCE_SIG_INIT: c_long = 0x30B1BCBA; -pub const PTHREAD_ONCE_INIT: ::pthread_once_t = ::pthread_once_t { +pub const PTHREAD_ONCE_INIT: crate::pthread_once_t = crate::pthread_once_t { __sig: _PTHREAD_ONCE_SIG_INIT, __opaque: [0; 4], }; extern "C" { - pub fn exchangedata( - path1: *const ::c_char, - path2: *const ::c_char, - options: ::c_ulong, - ) -> ::c_int; + pub fn exchangedata(path1: *const c_char, path2: *const c_char, options: c_ulong) -> c_int; } diff --git a/src/unix/bsd/apple/b64/aarch64/mod.rs b/src/unix/bsd/apple/b64/aarch64/mod.rs index 27b66cb816e56..6a9ea9c65f719 100644 --- a/src/unix/bsd/apple/b64/aarch64/mod.rs +++ b/src/unix/bsd/apple/b64/aarch64/mod.rs @@ -1,16 +1,18 @@ -pub type boolean_t = ::c_int; +use crate::c_int; + +pub type boolean_t = c_int; pub type mcontext_t = *mut __darwin_mcontext64; s! { pub struct malloc_zone_t { - __private: [::uintptr_t; 18], // FIXME: needs arm64 auth pointers support + __private: [crate::uintptr_t; 18], // FIXME: needs arm64 auth pointers support } pub struct ucontext_t { - pub uc_onstack: ::c_int, - pub uc_sigmask: ::sigset_t, - pub uc_stack: ::stack_t, - pub uc_link: *mut ::ucontext_t, + pub uc_onstack: c_int, + pub uc_sigmask: crate::sigset_t, + pub uc_stack: crate::stack_t, + pub uc_link: *mut crate::ucontext_t, pub uc_mcsize: usize, pub uc_mcontext: mcontext_t, } @@ -38,7 +40,7 @@ s! { } pub struct __darwin_arm_neon_state64 { - pub __v: [::__uint128_t; 32], + pub __v: [crate::__uint128_t; 32], pub __fpsr: u32, pub __fpcr: u32, } diff --git a/src/unix/bsd/apple/b64/mod.rs b/src/unix/bsd/apple/b64/mod.rs index d1e11d171fd2d..c75608cdeeadc 100644 --- a/src/unix/bsd/apple/b64/mod.rs +++ b/src/unix/bsd/apple/b64/mod.rs @@ -1,5 +1,7 @@ //! 64-bit specific Apple (ios/darwin) definitions +use crate::{c_char, c_int, c_uchar, c_uint, c_ushort}; + pub type c_long = i64; pub type c_ulong = u64; @@ -10,14 +12,14 @@ s! { } pub struct if_data { - pub ifi_type: ::c_uchar, - pub ifi_typelen: ::c_uchar, - pub ifi_physical: ::c_uchar, - pub ifi_addrlen: ::c_uchar, - pub ifi_hdrlen: ::c_uchar, - pub ifi_recvquota: ::c_uchar, - pub ifi_xmitquota: ::c_uchar, - pub ifi_unused1: ::c_uchar, + pub ifi_type: c_uchar, + pub ifi_typelen: c_uchar, + pub ifi_physical: c_uchar, + pub ifi_addrlen: c_uchar, + pub ifi_hdrlen: c_uchar, + pub ifi_recvquota: c_uchar, + pub ifi_xmitquota: c_uchar, + pub ifi_unused1: c_uchar, pub ifi_mtu: u32, pub ifi_metric: u32, pub ifi_baudrate: u32, @@ -42,22 +44,22 @@ s! { } pub struct bpf_hdr { - pub bh_tstamp: ::timeval32, + pub bh_tstamp: crate::timeval32, pub bh_caplen: u32, pub bh_datalen: u32, - pub bh_hdrlen: ::c_ushort, + pub bh_hdrlen: c_ushort, } } s_no_extra_traits! { pub struct pthread_attr_t { __sig: c_long, - __opaque: [::c_char; 56], + __opaque: [c_char; 56], } pub struct pthread_once_t { __sig: c_long, - __opaque: [::c_char; __PTHREAD_ONCE_SIZE__], + __opaque: [c_char; __PTHREAD_ONCE_SIZE__], } } @@ -74,16 +76,16 @@ cfg_if! { } } impl Eq for pthread_attr_t {} - impl ::fmt::Debug for pthread_attr_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_attr_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_attr_t") .field("__sig", &self.__sig) // FIXME: .field("__opaque", &self.__opaque) .finish() } } - impl ::hash::Hash for pthread_attr_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_attr_t { + fn hash(&self, state: &mut H) { self.__sig.hash(state); self.__opaque.hash(state); } @@ -99,15 +101,15 @@ cfg_if! { } } impl Eq for pthread_once_t {} - impl ::fmt::Debug for pthread_once_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_once_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_once_t") .field("__sig", &self.__sig) .finish() } } - impl ::hash::Hash for pthread_once_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_once_t { + fn hash(&self, state: &mut H) { self.__sig.hash(state); self.__opaque.hash(state); } @@ -117,7 +119,7 @@ cfg_if! { #[doc(hidden)] #[deprecated(since = "0.2.55")] -pub const NET_RT_MAXID: ::c_int = 11; +pub const NET_RT_MAXID: c_int = 11; pub const __PTHREAD_MUTEX_SIZE__: usize = 56; pub const __PTHREAD_COND_SIZE__: usize = 40; @@ -126,26 +128,22 @@ pub const __PTHREAD_ONCE_SIZE__: usize = 8; pub const __PTHREAD_RWLOCK_SIZE__: usize = 192; pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 16; -pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; -pub const TIOCDCDTIMESTAMP: ::c_ulong = 0x40107458; +pub const TIOCTIMESTAMP: c_ulong = 0x40107459; +pub const TIOCDCDTIMESTAMP: c_ulong = 0x40107458; -pub const BIOCSETF: ::c_ulong = 0x80104267; -pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; -pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; -pub const BIOCSETFNR: ::c_ulong = 0x8010427e; +pub const BIOCSETF: c_ulong = 0x80104267; +pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; +pub const BIOCSETFNR: c_ulong = 0x8010427e; const _PTHREAD_ONCE_SIG_INIT: c_long = 0x30B1BCBA; -pub const PTHREAD_ONCE_INIT: ::pthread_once_t = ::pthread_once_t { +pub const PTHREAD_ONCE_INIT: crate::pthread_once_t = crate::pthread_once_t { __sig: _PTHREAD_ONCE_SIG_INIT, __opaque: [0; 8], }; extern "C" { - pub fn exchangedata( - path1: *const ::c_char, - path2: *const ::c_char, - options: ::c_uint, - ) -> ::c_int; + pub fn exchangedata(path1: *const c_char, path2: *const c_char, options: c_uint) -> c_int; } cfg_if! { diff --git a/src/unix/bsd/apple/b64/x86_64/mod.rs b/src/unix/bsd/apple/b64/x86_64/mod.rs index 581bcf87fef78..c6a9261ed33e0 100644 --- a/src/unix/bsd/apple/b64/x86_64/mod.rs +++ b/src/unix/bsd/apple/b64/x86_64/mod.rs @@ -1,12 +1,14 @@ -pub type boolean_t = ::c_uint; +use crate::{c_char, c_int, c_short, c_uint, c_void, size_t}; + +pub type boolean_t = c_uint; pub type mcontext_t = *mut __darwin_mcontext64; s! { pub struct ucontext_t { - pub uc_onstack: ::c_int, - pub uc_sigmask: ::sigset_t, - pub uc_stack: ::stack_t, - pub uc_link: *mut ::ucontext_t, + pub uc_onstack: c_int, + pub uc_sigmask: crate::sigset_t, + pub uc_stack: crate::stack_t, + pub uc_link: *mut crate::ucontext_t, pub uc_mcsize: usize, pub uc_mcontext: mcontext_t, } @@ -49,9 +51,9 @@ s! { } pub struct __darwin_x86_float_state64 { - pub __fpu_reserved: [::c_int; 2], - __fpu_fcw: ::c_short, - __fpu_fsw: ::c_short, + pub __fpu_reserved: [c_int; 2], + __fpu_fcw: c_short, + __fpu_fsw: c_short, pub __fpu_ftw: u8, pub __fpu_rsrv1: u8, pub __fpu_fop: u16, @@ -91,82 +93,78 @@ s! { // allows us to auto-implement traits for it since the length of the // array is less than 32 __fpu_rsrv4: [u32; 24], - pub __fpu_reserved1: ::c_int, + pub __fpu_reserved1: c_int, } pub struct __darwin_mmst_reg { - pub __mmst_reg: [::c_char; 10], - pub __mmst_rsrv: [::c_char; 6], + pub __mmst_reg: [c_char; 10], + pub __mmst_rsrv: [c_char; 6], } pub struct __darwin_xmm_reg { - pub __xmm_reg: [::c_char; 16], + pub __xmm_reg: [c_char; 16], } pub struct malloc_introspection_t { - _private: [::uintptr_t; 16], // FIXME: keeping private for now + _private: [crate::uintptr_t; 16], // FIXME: keeping private for now } pub struct malloc_zone_t { - _reserved1: *mut ::c_void, - _reserved2: *mut ::c_void, - pub size: ::Option< - unsafe extern "C" fn(zone: *mut malloc_zone_t, ptr: *const ::c_void) -> ::size_t, - >, - pub malloc: ::Option< - unsafe extern "C" fn(zone: *mut malloc_zone_t, size: ::size_t) -> *mut ::c_void, - >, - pub calloc: ::Option< + _reserved1: *mut c_void, + _reserved2: *mut c_void, + pub size: + Option size_t>, + pub malloc: + Option *mut c_void>, + pub calloc: Option< unsafe extern "C" fn( zone: *mut malloc_zone_t, - num_items: ::size_t, - size: ::size_t, - ) -> *mut ::c_void, + num_items: size_t, + size: size_t, + ) -> *mut c_void, >, - pub valloc: ::Option< - unsafe extern "C" fn(zone: *mut malloc_zone_t, size: ::size_t) -> *mut ::c_void, - >, - pub free: ::Option, - pub realloc: ::Option< + pub valloc: + Option *mut c_void>, + pub free: Option, + pub realloc: Option< unsafe extern "C" fn( zone: *mut malloc_zone_t, - ptr: *mut ::c_void, - size: ::size_t, - ) -> *mut ::c_void, + ptr: *mut c_void, + size: size_t, + ) -> *mut c_void, >, - pub destroy: ::Option, - pub zone_name: *const ::c_char, - pub batch_malloc: ::Option< + pub destroy: Option, + pub zone_name: *const c_char, + pub batch_malloc: Option< unsafe extern "C" fn( zone: *mut malloc_zone_t, - size: ::size_t, - results: *mut *mut ::c_void, - num_requested: ::c_uint, - ) -> ::c_uint, + size: size_t, + results: *mut *mut c_void, + num_requested: c_uint, + ) -> c_uint, >, - pub batch_free: ::Option< + pub batch_free: Option< unsafe extern "C" fn( zone: *mut malloc_zone_t, - to_be_freed: *mut *mut ::c_void, - num_to_be_freed: ::c_uint, + to_be_freed: *mut *mut c_void, + num_to_be_freed: c_uint, ), >, pub introspect: *mut malloc_introspection_t, - pub version: ::c_uint, - pub memalign: ::Option< + pub version: c_uint, + pub memalign: Option< unsafe extern "C" fn( zone: *mut malloc_zone_t, - alignment: ::size_t, - size: ::size_t, - ) -> *mut ::c_void, - >, - pub free_definite_size: ::Option< - unsafe extern "C" fn(zone: *mut malloc_zone_t, ptr: *mut ::c_void, size: ::size_t), + alignment: size_t, + size: size_t, + ) -> *mut c_void, >, + pub free_definite_size: + Option, pub pressure_relief: - ::Option ::size_t>, - pub claimed_address: ::Option< - unsafe extern "C" fn(zone: *mut malloc_zone_t, ptr: *mut ::c_void) -> ::boolean_t, + Option size_t>, + pub claimed_address: Option< + unsafe extern "C" fn(zone: *mut malloc_zone_t, ptr: *mut c_void) -> crate::boolean_t, >, } } diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 34bd285666610..e82667ee7f688 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1,6 +1,12 @@ //! Apple (ios/darwin)-specific definitions //! //! This covers *-apple-* triples currently + +use crate::{ + c_int, c_longlong, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, cmsghdr, intptr_t, + off_t, size_t, ssize_t, +}; + pub type c_char = i8; pub type wchar_t = i32; pub type clock_t = c_ulong; @@ -14,65 +20,65 @@ pub type blksize_t = i32; pub type rlim_t = u64; pub type pthread_key_t = c_ulong; pub type sigset_t = u32; -pub type clockid_t = ::c_uint; -pub type fsblkcnt_t = ::c_uint; -pub type fsfilcnt_t = ::c_uint; -pub type speed_t = ::c_ulong; -pub type tcflag_t = ::c_ulong; -pub type nl_item = ::c_int; -pub type id_t = ::c_uint; -pub type sem_t = ::c_int; -pub type idtype_t = ::c_uint; -pub type integer_t = ::c_int; +pub type clockid_t = c_uint; +pub type fsblkcnt_t = c_uint; +pub type fsfilcnt_t = c_uint; +pub type speed_t = c_ulong; +pub type tcflag_t = c_ulong; +pub type nl_item = c_int; +pub type id_t = c_uint; +pub type sem_t = c_int; +pub type idtype_t = c_uint; +pub type integer_t = c_int; pub type cpu_type_t = integer_t; pub type cpu_subtype_t = integer_t; pub type natural_t = u32; pub type mach_msg_type_number_t = natural_t; -pub type kern_return_t = ::c_int; +pub type kern_return_t = c_int; pub type uuid_t = [u8; 16]; pub type task_info_t = *mut integer_t; pub type host_info_t = *mut integer_t; pub type task_flavor_t = natural_t; -pub type rusage_info_t = *mut ::c_void; -pub type vm_offset_t = ::uintptr_t; -pub type vm_size_t = ::uintptr_t; +pub type rusage_info_t = *mut c_void; +pub type vm_offset_t = crate::uintptr_t; +pub type vm_size_t = crate::uintptr_t; pub type vm_address_t = vm_offset_t; pub type quad_t = i64; pub type u_quad_t = u64; -pub type posix_spawnattr_t = *mut ::c_void; -pub type posix_spawn_file_actions_t = *mut ::c_void; -pub type key_t = ::c_int; -pub type shmatt_t = ::c_ushort; +pub type posix_spawnattr_t = *mut c_void; +pub type posix_spawn_file_actions_t = *mut c_void; +pub type key_t = c_int; +pub type shmatt_t = c_ushort; pub type sae_associd_t = u32; pub type sae_connid_t = u32; -pub type mach_port_t = ::c_uint; -pub type host_t = ::c_uint; +pub type mach_port_t = c_uint; +pub type host_t = c_uint; pub type host_flavor_t = integer_t; pub type host_info64_t = *mut integer_t; -pub type processor_flavor_t = ::c_int; +pub type processor_flavor_t = c_int; pub type thread_flavor_t = natural_t; -pub type thread_inspect_t = ::mach_port_t; -pub type thread_act_t = ::mach_port_t; -pub type thread_act_array_t = *mut ::thread_act_t; -pub type policy_t = ::c_int; -pub type mach_error_t = ::kern_return_t; +pub type thread_inspect_t = crate::mach_port_t; +pub type thread_act_t = crate::mach_port_t; +pub type thread_act_array_t = *mut crate::thread_act_t; +pub type policy_t = c_int; +pub type mach_error_t = crate::kern_return_t; pub type mach_vm_address_t = u64; pub type mach_vm_offset_t = u64; pub type mach_vm_size_t = u64; -pub type vm_map_t = ::mach_port_t; -pub type mem_entry_name_port_t = ::mach_port_t; -pub type memory_object_t = ::mach_port_t; -pub type memory_object_offset_t = ::c_ulonglong; -pub type vm_inherit_t = ::c_uint; -pub type vm_prot_t = ::c_int; +pub type vm_map_t = crate::mach_port_t; +pub type mem_entry_name_port_t = crate::mach_port_t; +pub type memory_object_t = crate::mach_port_t; +pub type memory_object_offset_t = c_ulonglong; +pub type vm_inherit_t = c_uint; +pub type vm_prot_t = c_int; -pub type ledger_t = ::mach_port_t; -pub type ledger_array_t = *mut ::ledger_t; +pub type ledger_t = crate::mach_port_t; +pub type ledger_array_t = *mut crate::ledger_t; -pub type iconv_t = *mut ::c_void; +pub type iconv_t = *mut c_void; // mach/host_info.h pub type host_cpu_load_info_t = *mut host_cpu_load_info; @@ -103,7 +109,7 @@ pub type thread_identifier_info_data_t = thread_identifier_info; pub type thread_extended_info_t = *mut thread_extended_info; pub type thread_extended_info_data_t = thread_extended_info; -pub type thread_t = ::mach_port_t; +pub type thread_t = crate::mach_port_t; pub type thread_policy_flavor_t = natural_t; pub type thread_policy_t = *mut integer_t; pub type thread_latency_qos_t = integer_t; @@ -126,8 +132,8 @@ pub type thread_throughput_qos_policy_data_t = thread_throughput_qos_policy; pub type thread_throughput_qos_policy_t = *mut thread_throughput_qos_policy; pub type pthread_introspection_hook_t = - extern "C" fn(event: ::c_uint, thread: ::pthread_t, addr: *mut ::c_void, size: ::size_t); -pub type pthread_jit_write_callback_t = ::Option ::c_int>; + extern "C" fn(event: c_uint, thread: crate::pthread_t, addr: *mut c_void, size: size_t); +pub type pthread_jit_write_callback_t = Option c_int>; pub type os_clockid_t = u32; @@ -137,7 +143,7 @@ pub type os_sync_wake_by_address_flags_t = u32; pub type os_unfair_lock = os_unfair_lock_s; pub type os_unfair_lock_t = *mut os_unfair_lock; -pub type os_log_t = *mut ::c_void; +pub type os_log_t = *mut c_void; pub type os_log_type_t = u8; pub type os_signpost_id_t = u64; pub type os_signpost_type_t = u8; @@ -147,26 +153,26 @@ pub type vm_statistics_data_t = vm_statistics; pub type vm_statistics64_t = *mut vm_statistics64; pub type vm_statistics64_data_t = vm_statistics64; -pub type task_t = ::mach_port_t; -pub type task_inspect_t = ::mach_port_t; +pub type task_t = crate::mach_port_t; +pub type task_inspect_t = crate::mach_port_t; -pub type sysdir_search_path_enumeration_state = ::c_uint; +pub type sysdir_search_path_enumeration_state = c_uint; pub type CCStatus = i32; pub type CCCryptorStatus = i32; -pub type CCRNGStatus = ::CCCryptorStatus; +pub type CCRNGStatus = crate::CCCryptorStatus; -pub type copyfile_state_t = *mut ::c_void; +pub type copyfile_state_t = *mut c_void; pub type copyfile_flags_t = u32; -pub type copyfile_callback_t = ::Option< +pub type copyfile_callback_t = Option< extern "C" fn( - ::c_int, - ::c_int, + c_int, + c_int, copyfile_state_t, - *const ::c_char, - *const ::c_char, - *mut ::c_void, - ) -> ::c_int, + *const c_char, + *const c_char, + *mut c_void, + ) -> c_int, >; pub type attrgroup_t = u32; @@ -178,8 +184,8 @@ deprecated_mach! { #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { +impl Copy for timezone {} +impl Clone for timezone { fn clone(&self) -> timezone { *self } @@ -195,8 +201,8 @@ pub enum qos_class_t { QOS_CLASS_BACKGROUND = 0x09, QOS_CLASS_UNSPECIFIED = 0x00, } -impl ::Copy for qos_class_t {} -impl ::Clone for qos_class_t { +impl Copy for qos_class_t {} +impl Clone for qos_class_t { fn clone(&self) -> qos_class_t { *self } @@ -230,8 +236,8 @@ pub enum sysdir_search_path_directory_t { SYSDIR_DIRECTORY_ALL_APPLICATIONS = 100, SYSDIR_DIRECTORY_ALL_LIBRARIES = 101, } -impl ::Copy for sysdir_search_path_directory_t {} -impl ::Clone for sysdir_search_path_directory_t { +impl Copy for sysdir_search_path_directory_t {} +impl Clone for sysdir_search_path_directory_t { fn clone(&self) -> sysdir_search_path_directory_t { *self } @@ -246,8 +252,8 @@ pub enum sysdir_search_path_domain_mask_t { SYSDIR_DOMAIN_MASK_SYSTEM = (1 << 3), SYSDIR_DOMAIN_MASK_ALL = 0x0ffff, } -impl ::Copy for sysdir_search_path_domain_mask_t {} -impl ::Clone for sysdir_search_path_domain_mask_t { +impl Copy for sysdir_search_path_domain_mask_t {} +impl Clone for sysdir_search_path_domain_mask_t { fn clone(&self) -> sysdir_search_path_domain_mask_t { *self } @@ -262,7 +268,7 @@ s! { pub struct ip_mreqn { pub imr_multiaddr: in_addr, pub imr_address: in_addr, - pub imr_ifindex: ::c_int, + pub imr_ifindex: c_int, } pub struct ip_mreq_source { @@ -272,39 +278,39 @@ s! { } pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_offset: ::off_t, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_reqprio: ::c_int, + pub aio_fildes: c_int, + pub aio_offset: off_t, + pub aio_buf: *mut c_void, + pub aio_nbytes: size_t, + pub aio_reqprio: c_int, pub aio_sigevent: sigevent, - pub aio_lio_opcode: ::c_int, + pub aio_lio_opcode: c_int, } pub struct glob_t { - pub gl_pathc: ::size_t, - __unused1: ::c_int, - pub gl_offs: ::size_t, - __unused2: ::c_int, - pub gl_pathv: *mut *mut ::c_char, + pub gl_pathc: size_t, + __unused1: c_int, + pub gl_offs: size_t, + __unused2: c_int, + pub gl_pathv: *mut *mut c_char, - __unused3: *mut ::c_void, + __unused3: *mut c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - __unused6: *mut ::c_void, - __unused7: *mut ::c_void, - __unused8: *mut ::c_void, + __unused4: *mut c_void, + __unused5: *mut c_void, + __unused6: *mut c_void, + __unused7: *mut c_void, + __unused8: *mut c_void, } pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: ::socklen_t, - pub ai_canonname: *mut ::c_char, - pub ai_addr: *mut ::sockaddr, + pub ai_flags: c_int, + pub ai_family: c_int, + pub ai_socktype: c_int, + pub ai_protocol: c_int, + pub ai_addrlen: crate::socklen_t, + pub ai_canonname: *mut c_char, + pub ai_addr: *mut crate::sockaddr, pub ai_next: *mut addrinfo, } @@ -319,8 +325,8 @@ s! { pub st_mode: mode_t, pub st_nlink: nlink_t, pub st_ino: ino_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, pub st_rdev: dev_t, pub st_atime: time_t, pub st_atime_nsec: c_long, @@ -330,8 +336,8 @@ s! { 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_size: off_t, + pub st_blocks: crate::blkcnt_t, pub st_blksize: blksize_t, pub st_flags: u32, pub st_gen: u32, @@ -340,28 +346,28 @@ s! { } pub struct pthread_mutexattr_t { - __sig: ::c_long, + __sig: c_long, __opaque: [u8; 8], } pub struct pthread_condattr_t { - __sig: ::c_long, + __sig: c_long, __opaque: [u8; __PTHREAD_CONDATTR_SIZE__], } pub struct pthread_rwlockattr_t { - __sig: ::c_long, + __sig: c_long, __opaque: [u8; __PTHREAD_RWLOCKATTR_SIZE__], } 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_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, + pub si_pid: crate::pid_t, + pub si_uid: crate::uid_t, + pub si_status: c_int, + pub si_addr: *mut c_void, //Requires it to be union for tests //pub si_value: ::sigval, _pad: [usize; 9], @@ -369,76 +375,76 @@ s! { pub struct sigaction { // FIXME: this field is actually a union - pub sa_sigaction: ::sighandler_t, + pub sa_sigaction: crate::sighandler_t, pub sa_mask: sigset_t, - pub sa_flags: ::c_int, + pub sa_flags: c_int, } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, + pub ss_sp: *mut c_void, + pub ss_size: size_t, + pub ss_flags: c_int, } pub struct fstore_t { - pub fst_flags: ::c_uint, - pub fst_posmode: ::c_int, - pub fst_offset: ::off_t, - pub fst_length: ::off_t, - pub fst_bytesalloc: ::off_t, + pub fst_flags: c_uint, + pub fst_posmode: c_int, + pub fst_offset: off_t, + pub fst_length: off_t, + 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 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 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 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, + pub ra_offset: off_t, + pub ra_count: c_int, } 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, } pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, + pub dli_fname: *const c_char, + pub dli_fbase: *mut c_void, + pub dli_sname: *const c_char, + pub dli_saddr: *mut c_void, } pub struct sockaddr_in { pub sin_len: u8, - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [::c_char; 8], + pub sin_family: crate::sa_family_t, + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, + pub sin_zero: [c_char; 8], } pub struct kevent64_s { @@ -465,41 +471,41 @@ s! { } pub struct if_msghdr { - pub ifm_msglen: ::c_ushort, - pub ifm_version: ::c_uchar, - pub ifm_type: ::c_uchar, - pub ifm_addrs: ::c_int, - pub ifm_flags: ::c_int, - pub ifm_index: ::c_ushort, + pub ifm_msglen: c_ushort, + pub ifm_version: c_uchar, + pub ifm_type: c_uchar, + pub ifm_addrs: c_int, + pub ifm_flags: c_int, + pub ifm_index: c_ushort, 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 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 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_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, } @@ -521,85 +527,85 @@ s! { } 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_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: crate::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_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_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, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_cc: [::cc_t; ::NCCS], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_cc: [crate::cc_t; crate::NCCS], + pub c_ispeed: crate::speed_t, + pub c_ospeed: crate::speed_t, } pub struct flock { - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - pub l_type: ::c_short, - pub l_whence: ::c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, + pub l_type: c_short, + pub l_whence: c_short, } pub struct sf_hdtr { - pub headers: *mut ::iovec, - pub hdr_cnt: ::c_int, - pub trailers: *mut ::iovec, - pub trl_cnt: ::c_int, + pub headers: *mut crate::iovec, + pub hdr_cnt: c_int, + pub trailers: *mut crate::iovec, + pub trl_cnt: c_int, } pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, + pub decimal_point: *mut c_char, + pub thousands_sep: *mut c_char, + pub grouping: *mut c_char, + pub int_curr_symbol: *mut c_char, + pub currency_symbol: *mut c_char, + pub mon_decimal_point: *mut c_char, + pub mon_thousands_sep: *mut c_char, + pub mon_grouping: *mut c_char, + pub positive_sign: *mut c_char, + pub negative_sign: *mut c_char, + pub int_frac_digits: c_char, + pub frac_digits: c_char, + pub p_cs_precedes: c_char, + pub p_sep_by_space: c_char, + pub n_cs_precedes: c_char, + pub n_sep_by_space: c_char, + pub p_sign_posn: c_char, + pub n_sign_posn: c_char, + pub int_p_cs_precedes: c_char, + pub int_n_cs_precedes: c_char, + pub int_p_sep_by_space: c_char, + pub int_n_sep_by_space: c_char, + pub int_p_sign_posn: c_char, + pub int_n_sign_posn: c_char, } pub struct proc_taskinfo { @@ -629,15 +635,15 @@ s! { pub pbi_xstatus: u32, pub pbi_pid: u32, pub pbi_ppid: u32, - pub pbi_uid: ::uid_t, - pub pbi_gid: ::gid_t, - pub pbi_ruid: ::uid_t, - pub pbi_rgid: ::gid_t, - pub pbi_svuid: ::uid_t, - pub pbi_svgid: ::gid_t, + pub pbi_uid: crate::uid_t, + pub pbi_gid: crate::gid_t, + pub pbi_ruid: crate::uid_t, + pub pbi_rgid: crate::gid_t, + pub pbi_svuid: crate::uid_t, + pub pbi_svgid: crate::gid_t, pub rfu_1: u32, - pub pbi_comm: [::c_char; MAXCOMLEN], - pub pbi_name: [::c_char; 32], // MAXCOMLEN * 2, but macro isn't happy... + pub pbi_comm: [c_char; MAXCOMLEN], + pub pbi_name: [c_char; 32], // MAXCOMLEN * 2, but macro isn't happy... pub pbi_nfiles: u32, pub pbi_pgid: u32, pub pbi_pjobc: u32, @@ -658,14 +664,14 @@ s! { pub xsu_avail: u64, pub xsu_used: u64, pub xsu_pagesize: u32, - pub xsu_encrypted: ::boolean_t, + pub xsu_encrypted: crate::boolean_t, } pub struct xucred { - pub cr_version: ::c_uint, - pub cr_uid: ::uid_t, - pub cr_ngroups: ::c_short, - pub cr_groups: [::gid_t; 16], + pub cr_version: c_uint, + pub cr_uid: crate::uid_t, + pub cr_ngroups: c_short, + pub cr_groups: [crate::gid_t; 16], } #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] @@ -694,7 +700,7 @@ s! { pub struct segment_command { pub cmd: u32, pub cmdsize: u32, - pub segname: [::c_char; 16], + pub segname: [c_char; 16], pub vmaddr: u32, pub vmsize: u32, pub fileoff: u32, @@ -708,7 +714,7 @@ s! { pub struct segment_command_64 { pub cmd: u32, pub cmdsize: u32, - pub segname: [::c_char; 16], + pub segname: [c_char; 16], pub vmaddr: u64, pub vmsize: u64, pub fileoff: u64, @@ -725,29 +731,29 @@ s! { } pub struct sockaddr_dl { - pub sdl_len: ::c_uchar, - pub sdl_family: ::c_uchar, - pub sdl_index: ::c_ushort, - pub sdl_type: ::c_uchar, - pub sdl_nlen: ::c_uchar, - pub sdl_alen: ::c_uchar, - pub sdl_slen: ::c_uchar, - pub sdl_data: [::c_char; 12], + pub sdl_len: c_uchar, + pub sdl_family: c_uchar, + pub sdl_index: c_ushort, + pub sdl_type: c_uchar, + pub sdl_nlen: c_uchar, + pub sdl_alen: c_uchar, + pub sdl_slen: c_uchar, + pub sdl_data: [c_char; 12], } pub struct sockaddr_inarp { - pub sin_len: ::c_uchar, - pub sin_family: ::c_uchar, - pub sin_port: ::c_ushort, - pub sin_addr: ::in_addr, - pub sin_srcaddr: ::in_addr, - pub sin_tos: ::c_ushort, - pub sin_other: ::c_ushort, + pub sin_len: c_uchar, + pub sin_family: c_uchar, + pub sin_port: c_ushort, + pub sin_addr: crate::in_addr, + pub sin_srcaddr: crate::in_addr, + pub sin_tos: c_ushort, + pub sin_other: c_ushort, } pub struct sockaddr_ctl { - pub sc_len: ::c_uchar, - pub sc_family: ::c_uchar, + pub sc_len: c_uchar, + pub sc_family: c_uchar, pub ss_sysaddr: u16, pub sc_id: u32, pub sc_unit: u32, @@ -755,34 +761,34 @@ s! { } pub struct in_pktinfo { - pub ipi_ifindex: ::c_uint, - pub ipi_spec_dst: ::in_addr, - pub ipi_addr: ::in_addr, + pub ipi_ifindex: c_uint, + pub ipi_spec_dst: crate::in_addr, + pub ipi_addr: crate::in_addr, } pub struct in6_pktinfo { - pub ipi6_addr: ::in6_addr, - pub ipi6_ifindex: ::c_uint, + pub ipi6_addr: crate::in6_addr, + pub ipi6_ifindex: c_uint, } // sys/ipc.h: pub struct ipc_perm { - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub _seq: ::c_ushort, - pub _key: ::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub _seq: c_ushort, + pub _key: crate::key_t, } // sys/sem.h pub struct sembuf { - pub sem_num: ::c_ushort, - pub sem_op: ::c_short, - pub sem_flg: ::c_short, + pub sem_num: c_ushort, + pub sem_op: c_short, + pub sem_flg: c_short, } // sys/shm.h @@ -796,52 +802,52 @@ s! { } pub struct in_addr { - pub s_addr: ::in_addr_t, + pub s_addr: crate::in_addr_t, } // net/ndrv.h pub struct sockaddr_ndrv { - pub snd_len: ::c_uchar, - pub snd_family: ::c_uchar, - pub snd_name: [::c_uchar; ::IFNAMSIZ], + pub snd_len: c_uchar, + pub snd_family: c_uchar, + pub snd_name: [c_uchar; crate::IFNAMSIZ], } // sys/socket.h pub struct sa_endpoints_t { - pub sae_srcif: ::c_uint, // optional source interface - pub sae_srcaddr: *const ::sockaddr, // optional source address - pub sae_srcaddrlen: ::socklen_t, // size of source address - pub sae_dstaddr: *const ::sockaddr, // destination address - pub sae_dstaddrlen: ::socklen_t, // size of destination address + pub sae_srcif: c_uint, // optional source interface + pub sae_srcaddr: *const crate::sockaddr, // optional source address + pub sae_srcaddrlen: crate::socklen_t, // size of source address + pub sae_dstaddr: *const crate::sockaddr, // destination address + pub sae_dstaddrlen: crate::socklen_t, // size of destination address } pub struct timex { - pub modes: ::c_uint, - pub offset: ::c_long, - pub freq: ::c_long, - pub maxerror: ::c_long, - pub esterror: ::c_long, - pub status: ::c_int, - pub constant: ::c_long, - pub precision: ::c_long, - pub tolerance: ::c_long, - pub ppsfreq: ::c_long, - pub jitter: ::c_long, - pub shift: ::c_int, - pub stabil: ::c_long, - pub jitcnt: ::c_long, - pub calcnt: ::c_long, - pub errcnt: ::c_long, - pub stbcnt: ::c_long, + pub modes: c_uint, + pub offset: c_long, + pub freq: c_long, + pub maxerror: c_long, + pub esterror: c_long, + pub status: c_int, + pub constant: c_long, + pub precision: c_long, + pub tolerance: c_long, + pub ppsfreq: c_long, + pub jitter: c_long, + pub shift: c_int, + pub stabil: c_long, + pub jitcnt: c_long, + pub calcnt: c_long, + pub errcnt: c_long, + pub stbcnt: c_long, } pub struct ntptimeval { - pub time: ::timespec, - pub maxerror: ::c_long, - pub esterror: ::c_long, - pub tai: ::c_long, - pub time_state: ::c_int, + pub time: crate::timespec, + pub maxerror: c_long, + pub esterror: c_long, + pub tai: c_long, + pub time_state: c_int, } pub struct thread_standard_policy { @@ -881,29 +887,29 @@ s! { // malloc/malloc.h pub struct malloc_statistics_t { - pub blocks_in_use: ::c_uint, - pub size_in_use: ::size_t, - pub max_size_in_use: ::size_t, - pub size_allocated: ::size_t, + pub blocks_in_use: c_uint, + pub size_in_use: size_t, + pub max_size_in_use: size_t, + pub size_allocated: size_t, } pub struct mstats { - pub bytes_total: ::size_t, - pub chunks_used: ::size_t, - pub bytes_used: ::size_t, - pub chunks_free: ::size_t, - pub bytes_free: ::size_t, + pub bytes_total: size_t, + pub chunks_used: size_t, + pub bytes_used: size_t, + pub chunks_free: size_t, + pub bytes_free: size_t, } pub struct vm_range_t { - pub address: ::vm_address_t, - pub size: ::vm_size_t, + pub address: crate::vm_address_t, + pub size: crate::vm_size_t, } // sched.h pub struct sched_param { - pub sched_priority: ::c_int, - __opaque: [::c_char; 4], + pub sched_priority: c_int, + __opaque: [c_char; 4], } pub struct vinfo_stat { @@ -911,8 +917,8 @@ s! { pub vst_mode: u16, pub vst_nlink: u16, pub vst_ino: u64, - pub vst_uid: ::uid_t, - pub vst_gid: ::gid_t, + pub vst_uid: crate::uid_t, + pub vst_gid: crate::gid_t, pub vst_atime: i64, pub vst_atimensec: i64, pub vst_mtime: i64, @@ -921,7 +927,7 @@ s! { pub vst_ctimensec: i64, pub vst_birthtime: i64, pub vst_birthtimensec: i64, - pub vst_size: ::off_t, + pub vst_size: off_t, pub vst_blocks: i64, pub vst_blksize: i32, pub vst_flags: u32, @@ -932,16 +938,16 @@ s! { pub struct vnode_info { pub vi_stat: vinfo_stat, - pub vi_type: ::c_int, - pub vi_pad: ::c_int, - pub vi_fsid: ::fsid_t, + pub vi_type: c_int, + pub vi_pad: c_int, + pub vi_fsid: crate::fsid_t, } pub struct vnode_info_path { pub vip_vi: vnode_info, - // Normally it's `vip_path: [::c_char; MAXPATHLEN]` but because libc supports an old rustc + // Normally it's `vip_path: [c_char; MAXPATHLEN]` but because libc supports an old rustc // version, we go around this limitation like this. - pub vip_path: [[::c_char; 32]; 32], + pub vip_path: [[c_char; 32]; 32], } pub struct proc_vnodepathinfo { @@ -1099,12 +1105,12 @@ s! { } pub struct image_offset { - pub uuid: ::uuid_t, + pub uuid: crate::uuid_t, pub offset: u32, } pub struct attrlist { - pub bitmapcount: ::c_ushort, + pub bitmapcount: c_ushort, pub reserved: u16, pub commonattr: attrgroup_t, pub volattr: attrgroup_t, @@ -1187,91 +1193,91 @@ s! { } pub struct in6_ifstat { - pub ifs6_in_receive: ::u_quad_t, - pub ifs6_in_hdrerr: ::u_quad_t, - pub ifs6_in_toobig: ::u_quad_t, - pub ifs6_in_noroute: ::u_quad_t, - pub ifs6_in_addrerr: ::u_quad_t, - pub ifs6_in_protounknown: ::u_quad_t, - pub ifs6_in_truncated: ::u_quad_t, - pub ifs6_in_discard: ::u_quad_t, - pub ifs6_in_deliver: ::u_quad_t, - pub ifs6_out_forward: ::u_quad_t, - pub ifs6_out_request: ::u_quad_t, - pub ifs6_out_discard: ::u_quad_t, - pub ifs6_out_fragok: ::u_quad_t, - pub ifs6_out_fragfail: ::u_quad_t, - pub ifs6_out_fragcreat: ::u_quad_t, - pub ifs6_reass_reqd: ::u_quad_t, - pub ifs6_reass_ok: ::u_quad_t, - pub ifs6_atmfrag_rcvd: ::u_quad_t, - pub ifs6_reass_fail: ::u_quad_t, - pub ifs6_in_mcast: ::u_quad_t, - pub ifs6_out_mcast: ::u_quad_t, - pub ifs6_cantfoward_icmp6: ::u_quad_t, - pub ifs6_addr_expiry_cnt: ::u_quad_t, - pub ifs6_pfx_expiry_cnt: ::u_quad_t, - pub ifs6_defrtr_expiry_cnt: ::u_quad_t, + pub ifs6_in_receive: crate::u_quad_t, + pub ifs6_in_hdrerr: crate::u_quad_t, + pub ifs6_in_toobig: crate::u_quad_t, + pub ifs6_in_noroute: crate::u_quad_t, + pub ifs6_in_addrerr: crate::u_quad_t, + pub ifs6_in_protounknown: crate::u_quad_t, + pub ifs6_in_truncated: crate::u_quad_t, + pub ifs6_in_discard: crate::u_quad_t, + pub ifs6_in_deliver: crate::u_quad_t, + pub ifs6_out_forward: crate::u_quad_t, + pub ifs6_out_request: crate::u_quad_t, + pub ifs6_out_discard: crate::u_quad_t, + pub ifs6_out_fragok: crate::u_quad_t, + pub ifs6_out_fragfail: crate::u_quad_t, + pub ifs6_out_fragcreat: crate::u_quad_t, + pub ifs6_reass_reqd: crate::u_quad_t, + pub ifs6_reass_ok: crate::u_quad_t, + pub ifs6_atmfrag_rcvd: crate::u_quad_t, + pub ifs6_reass_fail: crate::u_quad_t, + pub ifs6_in_mcast: crate::u_quad_t, + pub ifs6_out_mcast: crate::u_quad_t, + pub ifs6_cantfoward_icmp6: crate::u_quad_t, + pub ifs6_addr_expiry_cnt: crate::u_quad_t, + pub ifs6_pfx_expiry_cnt: crate::u_quad_t, + pub ifs6_defrtr_expiry_cnt: crate::u_quad_t, } pub struct icmp6_ifstat { - pub ifs6_in_msg: ::u_quad_t, - pub ifs6_in_error: ::u_quad_t, - pub ifs6_in_dstunreach: ::u_quad_t, - pub ifs6_in_adminprohib: ::u_quad_t, - pub ifs6_in_timeexceed: ::u_quad_t, - pub ifs6_in_paramprob: ::u_quad_t, - pub ifs6_in_pkttoobig: ::u_quad_t, - pub ifs6_in_echo: ::u_quad_t, - pub ifs6_in_echoreply: ::u_quad_t, - pub ifs6_in_routersolicit: ::u_quad_t, - pub ifs6_in_routeradvert: ::u_quad_t, - pub ifs6_in_neighborsolicit: ::u_quad_t, - pub ifs6_in_neighboradvert: ::u_quad_t, - pub ifs6_in_redirect: ::u_quad_t, - pub ifs6_in_mldquery: ::u_quad_t, - pub ifs6_in_mldreport: ::u_quad_t, - pub ifs6_in_mlddone: ::u_quad_t, - pub ifs6_out_msg: ::u_quad_t, - pub ifs6_out_error: ::u_quad_t, - pub ifs6_out_dstunreach: ::u_quad_t, - pub ifs6_out_adminprohib: ::u_quad_t, - pub ifs6_out_timeexceed: ::u_quad_t, - pub ifs6_out_paramprob: ::u_quad_t, - pub ifs6_out_pkttoobig: ::u_quad_t, - pub ifs6_out_echo: ::u_quad_t, - pub ifs6_out_echoreply: ::u_quad_t, - pub ifs6_out_routersolicit: ::u_quad_t, - pub ifs6_out_routeradvert: ::u_quad_t, - pub ifs6_out_neighborsolicit: ::u_quad_t, - pub ifs6_out_neighboradvert: ::u_quad_t, - pub ifs6_out_redirect: ::u_quad_t, - pub ifs6_out_mldquery: ::u_quad_t, - pub ifs6_out_mldreport: ::u_quad_t, - pub ifs6_out_mlddone: ::u_quad_t, + pub ifs6_in_msg: crate::u_quad_t, + pub ifs6_in_error: crate::u_quad_t, + pub ifs6_in_dstunreach: crate::u_quad_t, + pub ifs6_in_adminprohib: crate::u_quad_t, + pub ifs6_in_timeexceed: crate::u_quad_t, + pub ifs6_in_paramprob: crate::u_quad_t, + pub ifs6_in_pkttoobig: crate::u_quad_t, + pub ifs6_in_echo: crate::u_quad_t, + pub ifs6_in_echoreply: crate::u_quad_t, + pub ifs6_in_routersolicit: crate::u_quad_t, + pub ifs6_in_routeradvert: crate::u_quad_t, + pub ifs6_in_neighborsolicit: crate::u_quad_t, + pub ifs6_in_neighboradvert: crate::u_quad_t, + pub ifs6_in_redirect: crate::u_quad_t, + pub ifs6_in_mldquery: crate::u_quad_t, + pub ifs6_in_mldreport: crate::u_quad_t, + pub ifs6_in_mlddone: crate::u_quad_t, + pub ifs6_out_msg: crate::u_quad_t, + pub ifs6_out_error: crate::u_quad_t, + pub ifs6_out_dstunreach: crate::u_quad_t, + pub ifs6_out_adminprohib: crate::u_quad_t, + pub ifs6_out_timeexceed: crate::u_quad_t, + pub ifs6_out_paramprob: crate::u_quad_t, + pub ifs6_out_pkttoobig: crate::u_quad_t, + pub ifs6_out_echo: crate::u_quad_t, + pub ifs6_out_echoreply: crate::u_quad_t, + pub ifs6_out_routersolicit: crate::u_quad_t, + pub ifs6_out_routeradvert: crate::u_quad_t, + pub ifs6_out_neighborsolicit: crate::u_quad_t, + pub ifs6_out_neighboradvert: crate::u_quad_t, + pub ifs6_out_redirect: crate::u_quad_t, + pub ifs6_out_mldquery: crate::u_quad_t, + pub ifs6_out_mldreport: crate::u_quad_t, + pub ifs6_out_mlddone: crate::u_quad_t, } // mach/host_info.h pub struct host_cpu_load_info { - pub cpu_ticks: [::natural_t; CPU_STATE_MAX as usize], + pub cpu_ticks: [crate::natural_t; CPU_STATE_MAX as usize], } // net/if_mib.h pub struct ifmibdata { /// Name of interface - pub ifmd_name: [::c_char; ::IFNAMSIZ], + pub ifmd_name: [c_char; crate::IFNAMSIZ], /// Number of promiscuous listeners - pub ifmd_pcount: ::c_uint, + pub ifmd_pcount: c_uint, /// Interface flags - pub ifmd_flags: ::c_uint, + pub ifmd_flags: c_uint, /// Instantaneous length of send queue - pub ifmd_snd_len: ::c_uint, + pub ifmd_snd_len: c_uint, /// Maximum length of send queue - pub ifmd_snd_maxlen: ::c_uint, + pub ifmd_snd_maxlen: c_uint, /// Number of drops in send queue - pub ifmd_snd_drops: ::c_uint, + pub ifmd_snd_drops: c_uint, /// For future expansion - pub ifmd_filler: [::c_uint; 4], + pub ifmd_filler: [c_uint; 4], /// Generic information and statistics pub ifmd_data: if_data64, } @@ -1298,25 +1304,25 @@ s! { // kern_control.h pub struct ctl_info { pub ctl_id: u32, - pub ctl_name: [::c_char; MAX_KCTL_NAME], + pub ctl_name: [c_char; MAX_KCTL_NAME], } } s_no_extra_traits! { #[repr(packed(4))] pub struct ifconf { - pub ifc_len: ::c_int, + pub ifc_len: c_int, pub ifc_ifcu: __c_anonymous_ifc_ifcu, } #[repr(packed(4))] pub struct kevent { - pub ident: ::uintptr_t, + pub ident: crate::uintptr_t, pub filter: i16, pub flags: u16, pub fflags: u32, - pub data: ::intptr_t, - pub udata: *mut ::c_void, + pub data: intptr_t, + pub udata: *mut c_void, } #[repr(packed(4))] @@ -1324,10 +1330,10 @@ s_no_extra_traits! { // Note the manpage shows different types than the system header. pub sem_perm: ipc_perm, pub sem_base: i32, - pub sem_nsems: ::c_ushort, - pub sem_otime: ::time_t, + pub sem_nsems: c_ushort, + pub sem_otime: crate::time_t, pub sem_pad1: i32, - pub sem_ctime: ::time_t, + pub sem_ctime: crate::time_t, pub sem_pad2: i32, pub sem_pad3: [i32; 4], } @@ -1335,15 +1341,15 @@ s_no_extra_traits! { #[repr(packed(4))] 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, // FIXME: 64-bit wrong align => wrong offset - pub shm_dtime: ::time_t, // FIXME: 64-bit wrong align => wrong offset - pub shm_ctime: ::time_t, // FIXME: 64-bit wrong align => wrong offset + pub shm_segsz: size_t, + pub shm_lpid: crate::pid_t, + pub shm_cpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + pub shm_atime: crate::time_t, // FIXME: 64-bit wrong align => wrong offset + pub shm_dtime: crate::time_t, // FIXME: 64-bit wrong align => wrong offset + pub shm_ctime: crate::time_t, // FIXME: 64-bit wrong align => wrong offset // FIXME: 64-bit wrong align => wrong offset: - pub shm_internal: *mut ::c_void, + pub shm_internal: *mut c_void, } pub struct proc_threadinfo { @@ -1357,7 +1363,7 @@ s_no_extra_traits! { pub pth_curpri: i32, pub pth_priority: i32, pub pth_maxpriority: i32, - pub pth_name: [::c_char; MAXTHREADNAMESIZE], + pub pth_name: [c_char; MAXTHREADNAMESIZE], } pub struct statfs { @@ -1368,14 +1374,14 @@ s_no_extra_traits! { pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_owner: ::uid_t, + pub f_fsid: crate::fsid_t, + pub f_owner: crate::uid_t, pub f_type: u32, pub f_flags: u32, pub f_fssubtype: u32, - pub f_fstypename: [::c_char; 16], - pub f_mntonname: [::c_char; 1024], - pub f_mntfromname: [::c_char; 1024], + pub f_fstypename: [c_char; 16], + pub f_mntonname: [c_char; 1024], + pub f_mntfromname: [c_char; 1024], pub f_flags_ext: u32, pub f_reserved: [u32; 7], } @@ -1386,71 +1392,71 @@ s_no_extra_traits! { pub d_reclen: u16, pub d_namlen: u16, pub d_type: u8, - pub d_name: [::c_char; 1024], + pub d_name: [c_char; 1024], } pub struct pthread_rwlock_t { - __sig: ::c_long, + __sig: c_long, __opaque: [u8; __PTHREAD_RWLOCK_SIZE__], } pub struct pthread_mutex_t { - __sig: ::c_long, + __sig: c_long, __opaque: [u8; __PTHREAD_MUTEX_SIZE__], } pub struct pthread_cond_t { - __sig: ::c_long, + __sig: c_long, __opaque: [u8; __PTHREAD_COND_SIZE__], } pub struct sockaddr_storage { pub ss_len: u8, - pub ss_family: ::sa_family_t, + pub ss_family: crate::sa_family_t, __ss_pad1: [u8; 6], __ss_align: i64, __ss_pad2: [u8; 112], } pub struct utmpx { - pub ut_user: [::c_char; _UTX_USERSIZE], - pub ut_id: [::c_char; _UTX_IDSIZE], - pub ut_line: [::c_char; _UTX_LINESIZE], - pub ut_pid: ::pid_t, - pub ut_type: ::c_short, - pub ut_tv: ::timeval, - pub ut_host: [::c_char; _UTX_HOSTSIZE], + pub ut_user: [c_char; _UTX_USERSIZE], + pub ut_id: [c_char; _UTX_IDSIZE], + pub ut_line: [c_char; _UTX_LINESIZE], + pub ut_pid: crate::pid_t, + pub ut_type: c_short, + pub ut_tv: crate::timeval, + pub ut_host: [c_char; _UTX_HOSTSIZE], ut_pad: [u32; 16], } pub struct sigevent { - pub sigev_notify: ::c_int, - pub sigev_signo: ::c_int, - pub sigev_value: ::sigval, - __unused1: *mut ::c_void, //actually a function pointer - pub sigev_notify_attributes: *mut ::pthread_attr_t, + pub sigev_notify: c_int, + pub sigev_signo: c_int, + pub sigev_value: crate::sigval, + __unused1: *mut c_void, //actually a function pointer + pub sigev_notify_attributes: *mut crate::pthread_attr_t, } pub struct processor_cpu_load_info { - pub cpu_ticks: [::c_uint; CPU_STATE_MAX as usize], + pub cpu_ticks: [c_uint; CPU_STATE_MAX as usize], } pub struct processor_basic_info { pub cpu_type: cpu_type_t, pub cpu_subtype: cpu_subtype_t, - pub running: ::boolean_t, - pub slot_num: ::c_int, - pub is_master: ::boolean_t, + pub running: crate::boolean_t, + pub slot_num: c_int, + pub is_master: crate::boolean_t, } pub struct processor_set_basic_info { - pub processor_count: ::c_int, - pub default_policy: ::c_int, + pub processor_count: c_int, + pub default_policy: c_int, } pub struct processor_set_load_info { - pub task_count: ::c_int, - pub thread_count: ::c_int, + pub task_count: c_int, + pub thread_count: c_int, pub load_average: integer_t, pub mach_factor: integer_t, } @@ -1463,12 +1469,12 @@ s_no_extra_traits! { pub struct thread_basic_info { pub user_time: time_value_t, pub system_time: time_value_t, - pub cpu_usage: ::integer_t, - pub policy: ::policy_t, - pub run_state: ::integer_t, - pub flags: ::integer_t, - pub suspend_count: ::integer_t, - pub sleep_time: ::integer_t, + pub cpu_usage: crate::integer_t, + pub policy: crate::policy_t, + pub run_state: crate::integer_t, + pub flags: crate::integer_t, + pub suspend_count: crate::integer_t, + pub sleep_time: crate::integer_t, } pub struct thread_identifier_info { @@ -1488,19 +1494,19 @@ s_no_extra_traits! { pub pth_curpri: i32, pub pth_priority: i32, pub pth_maxpriority: i32, - pub pth_name: [::c_char; MAXTHREADNAMESIZE], + pub pth_name: [c_char; MAXTHREADNAMESIZE], } #[repr(packed(4))] pub struct if_data64 { - pub ifi_type: ::c_uchar, - pub ifi_typelen: ::c_uchar, - pub ifi_physical: ::c_uchar, - pub ifi_addrlen: ::c_uchar, - pub ifi_hdrlen: ::c_uchar, - pub ifi_recvquota: ::c_uchar, - pub ifi_xmitquota: ::c_uchar, - pub ifi_unused1: ::c_uchar, + pub ifi_type: c_uchar, + pub ifi_typelen: c_uchar, + pub ifi_physical: c_uchar, + pub ifi_addrlen: c_uchar, + pub ifi_hdrlen: c_uchar, + pub ifi_recvquota: c_uchar, + pub ifi_xmitquota: c_uchar, + pub ifi_unused1: c_uchar, pub ifi_mtu: u32, pub ifi_metric: u32, pub ifi_baudrate: u64, @@ -1518,23 +1524,23 @@ s_no_extra_traits! { pub ifi_recvtiming: u32, pub ifi_xmittiming: u32, #[cfg(target_pointer_width = "32")] - pub ifi_lastchange: ::timeval, + pub ifi_lastchange: crate::timeval, #[cfg(not(target_pointer_width = "32"))] pub ifi_lastchange: timeval32, } #[repr(packed(4))] pub struct if_msghdr2 { - pub ifm_msglen: ::c_ushort, - pub ifm_version: ::c_uchar, - pub ifm_type: ::c_uchar, - pub ifm_addrs: ::c_int, - pub ifm_flags: ::c_int, - pub ifm_index: ::c_ushort, - pub ifm_snd_len: ::c_int, - pub ifm_snd_maxlen: ::c_int, - pub ifm_snd_drops: ::c_int, - pub ifm_timer: ::c_int, + pub ifm_msglen: c_ushort, + pub ifm_version: c_uchar, + pub ifm_type: c_uchar, + pub ifm_addrs: c_int, + pub ifm_flags: c_int, + pub ifm_index: c_ushort, + pub ifm_snd_len: c_int, + pub ifm_snd_maxlen: c_int, + pub ifm_snd_drops: c_int, + pub ifm_timer: c_int, pub ifm_data: if_data64, } @@ -1573,15 +1579,15 @@ s_no_extra_traits! { pub resident_size_max: mach_vm_size_t, pub user_time: time_value_t, pub system_time: time_value_t, - pub policy: ::policy_t, + pub policy: crate::policy_t, pub suspend_count: integer_t, } #[repr(packed(4))] pub struct log2phys { - pub l2p_flags: ::c_uint, - pub l2p_contigbytes: ::off_t, - pub l2p_devoffset: ::off_t, + pub l2p_flags: c_uint, + pub l2p_contigbytes: off_t, + pub l2p_devoffset: off_t, } pub struct os_unfair_lock_s { @@ -1590,68 +1596,68 @@ s_no_extra_traits! { #[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 svm_len: c_uchar, + pub svm_family: crate::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, + pub ifdm_current: c_int, + pub ifdm_min: c_int, + pub ifdm_max: c_int, } pub union __c_anonymous_ifk_data { - pub ifk_ptr: *mut ::c_void, - pub ifk_value: ::c_int, + pub ifk_ptr: *mut c_void, + pub ifk_value: c_int, } #[repr(packed(4))] pub struct ifkpi { - pub ifk_module_id: ::c_uint, - pub ifk_type: ::c_uint, + pub ifk_module_id: c_uint, + pub ifk_type: c_uint, pub ifk_data: __c_anonymous_ifk_data, } 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_addr: crate::sockaddr, + pub ifru_dstaddr: crate::sockaddr, + pub ifru_broadaddr: crate::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_cap: [c_int; 2], pub ifru_functional_type: u32, } pub struct ifreq { - pub ifr_name: [::c_char; ::IFNAMSIZ], + pub ifr_name: [c_char; crate::IFNAMSIZ], pub ifr_ifru: __c_anonymous_ifr_ifru, } pub union __c_anonymous_ifc_ifcu { - pub ifcu_buf: *mut ::c_char, + pub ifcu_buf: *mut c_char, pub ifcu_req: *mut ifreq, } pub union __c_anonymous_ifr_ifru6 { - pub ifru_addr: ::sockaddr_in6, - pub ifru_dstaddr: ::sockaddr_in6, - pub ifru_flags: ::c_int, - pub ifru_flags6: ::c_int, - pub ifru_metrics: ::c_int, - pub ifru_intval: ::c_int, - pub ifru_data: *mut ::c_char, + pub ifru_addr: crate::sockaddr_in6, + pub ifru_dstaddr: crate::sockaddr_in6, + pub ifru_flags: c_int, + pub ifru_flags6: c_int, + pub ifru_metrics: c_int, + pub ifru_intval: c_int, + pub ifru_data: *mut c_char, pub ifru_lifetime: in6_addrlifetime, pub ifru_stat: in6_ifstat, pub ifru_icmp6stat: icmp6_ifstat, @@ -1659,50 +1665,50 @@ s_no_extra_traits! { } pub struct in6_ifreq { - pub ifr_name: [::c_char; ::IFNAMSIZ], + pub ifr_name: [c_char; crate::IFNAMSIZ], pub ifr_ifru: __c_anonymous_ifr_ifru6, } } impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { + pub unsafe fn si_addr(&self) -> *mut c_void { self.si_addr } - pub unsafe fn si_value(&self) -> ::sigval { + pub unsafe fn si_value(&self) -> crate::sigval { #[repr(C)] struct siginfo_timer { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - _si_pid: ::pid_t, - _si_uid: ::uid_t, - _si_status: ::c_int, - _si_addr: *mut ::c_void, - si_value: ::sigval, + _si_signo: c_int, + _si_errno: c_int, + _si_code: c_int, + _si_pid: crate::pid_t, + _si_uid: crate::uid_t, + _si_status: c_int, + _si_addr: *mut c_void, + si_value: crate::sigval, } (*(self as *const siginfo_t as *const siginfo_timer)).si_value } - pub unsafe fn si_pid(&self) -> ::pid_t { + pub unsafe fn si_pid(&self) -> crate::pid_t { self.si_pid } - pub unsafe fn si_uid(&self) -> ::uid_t { + pub unsafe fn si_uid(&self) -> crate::uid_t { self.si_uid } - pub unsafe fn si_status(&self) -> ::c_int { + pub unsafe fn si_status(&self) -> c_int { self.si_status } } s_no_extra_traits! { pub union semun { - pub val: ::c_int, + pub val: c_int, pub buf: *mut semid_ds, - pub array: *mut ::c_ushort, + pub array: *mut c_ushort, } } @@ -1714,15 +1720,15 @@ cfg_if! { } } impl Eq for semun {} - impl ::fmt::Debug for semun { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for semun { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("semun") .field("val", unsafe { &self.val }) .finish() } } - impl ::hash::Hash for semun { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for semun { + fn hash(&self, state: &mut H) { unsafe { self.val.hash(state) }; } } @@ -1751,8 +1757,8 @@ cfg_if! { } } impl Eq for ifconf {} - impl ::fmt::Debug for ifconf { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ifconf { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ifconf").finish_non_exhaustive() } } @@ -1768,8 +1774,8 @@ cfg_if! { } } impl Eq for kevent {} - impl ::fmt::Debug for kevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for kevent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { let ident = self.ident; let filter = self.filter; let flags = self.flags; @@ -1786,8 +1792,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for kevent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for kevent { + fn hash(&self, state: &mut H) { let ident = self.ident; let filter = self.filter; let flags = self.flags; @@ -1820,8 +1826,8 @@ cfg_if! { } } impl Eq for semid_ds {} - impl ::fmt::Debug for semid_ds { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for semid_ds { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { let sem_perm = self.sem_perm; let sem_base = self.sem_base; let sem_nsems = self.sem_nsems; @@ -1842,8 +1848,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for semid_ds { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for semid_ds { + fn hash(&self, state: &mut H) { let sem_perm = self.sem_perm; let sem_base = self.sem_base; let sem_nsems = self.sem_nsems; @@ -1879,8 +1885,8 @@ cfg_if! { } } impl Eq for shmid_ds {} - impl ::fmt::Debug for shmid_ds { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for shmid_ds { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { let shm_perm = self.shm_perm; let shm_segsz = self.shm_segsz; let shm_lpid = self.shm_lpid; @@ -1903,8 +1909,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for shmid_ds { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for shmid_ds { + fn hash(&self, state: &mut H) { let shm_perm = self.shm_perm; let shm_segsz = self.shm_segsz; let shm_lpid = self.shm_lpid; @@ -1946,8 +1952,8 @@ cfg_if! { } } impl Eq for proc_threadinfo {} - impl ::fmt::Debug for proc_threadinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for proc_threadinfo { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("proc_threadinfo") .field("pth_user_time", &self.pth_user_time) .field("pth_system_time", &self.pth_system_time) @@ -1963,8 +1969,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for proc_threadinfo { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for proc_threadinfo { + fn hash(&self, state: &mut H) { self.pth_user_time.hash(state); self.pth_system_time.hash(state); self.pth_cpu_usage.hash(state); @@ -2009,8 +2015,8 @@ cfg_if! { } impl Eq for statfs {} - impl ::fmt::Debug for statfs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for statfs { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("statfs") .field("f_bsize", &self.f_bsize) .field("f_iosize", &self.f_iosize) @@ -2032,8 +2038,8 @@ cfg_if! { } } - impl ::hash::Hash for statfs { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for statfs { + fn hash(&self, state: &mut H) { self.f_bsize.hash(state); self.f_iosize.hash(state); self.f_blocks.hash(state); @@ -2068,8 +2074,8 @@ cfg_if! { } } impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_seekoff", &self.d_seekoff) @@ -2080,8 +2086,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_seekoff.hash(state); self.d_reclen.hash(state); @@ -2101,16 +2107,16 @@ cfg_if! { } } impl Eq for pthread_rwlock_t {} - impl ::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_rwlock_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_rwlock_t") .field("__sig", &self.__sig) // FIXME: .field("__opaque", &self.__opaque) .finish() } } - impl ::hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_rwlock_t { + fn hash(&self, state: &mut H) { self.__sig.hash(state); self.__opaque.hash(state); } @@ -2129,8 +2135,8 @@ cfg_if! { impl Eq for pthread_mutex_t {} - impl ::fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_mutex_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_mutex_t") .field("__sig", &self.__sig) // FIXME: .field("__opaque", &self.__opaque) @@ -2138,8 +2144,8 @@ cfg_if! { } } - impl ::hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_mutex_t { + fn hash(&self, state: &mut H) { self.__sig.hash(state); self.__opaque.hash(state); } @@ -2158,8 +2164,8 @@ cfg_if! { impl Eq for pthread_cond_t {} - impl ::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_cond_t") .field("__sig", &self.__sig) // FIXME: .field("__opaque", &self.__opaque) @@ -2167,8 +2173,8 @@ cfg_if! { } } - impl ::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { self.__sig.hash(state); self.__opaque.hash(state); } @@ -2194,8 +2200,8 @@ cfg_if! { impl Eq for sockaddr_storage {} - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_len", &self.ss_len) .field("ss_family", &self.ss_family) @@ -2206,8 +2212,8 @@ cfg_if! { } } - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_len.hash(state); self.ss_family.hash(state); self.__ss_pad1.hash(state); @@ -2238,8 +2244,8 @@ cfg_if! { impl Eq for utmpx {} - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utmpx { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utmpx") // FIXME: .field("ut_user", &self.ut_user) .field("ut_id", &self.ut_id) @@ -2253,8 +2259,8 @@ cfg_if! { } } - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_user.hash(state); self.ut_id.hash(state); self.ut_line.hash(state); @@ -2277,8 +2283,8 @@ cfg_if! { impl Eq for sigevent {} - impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sigevent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sigevent") .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) @@ -2288,8 +2294,8 @@ cfg_if! { } } - impl ::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); self.sigev_signo.hash(state); self.sigev_value.hash(state); @@ -2303,15 +2309,15 @@ cfg_if! { } } impl Eq for processor_cpu_load_info {} - impl ::fmt::Debug for processor_cpu_load_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for processor_cpu_load_info { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("processor_cpu_load_info") .field("cpu_ticks", &self.cpu_ticks) .finish() } } - impl ::hash::Hash for processor_cpu_load_info { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for processor_cpu_load_info { + fn hash(&self, state: &mut H) { self.cpu_ticks.hash(state); } } @@ -2326,8 +2332,8 @@ cfg_if! { } } impl Eq for processor_basic_info {} - impl ::fmt::Debug for processor_basic_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for processor_basic_info { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("processor_basic_info") .field("cpu_type", &self.cpu_type) .field("cpu_subtype", &self.cpu_subtype) @@ -2337,8 +2343,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for processor_basic_info { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for processor_basic_info { + fn hash(&self, state: &mut H) { self.cpu_type.hash(state); self.cpu_subtype.hash(state); self.running.hash(state); @@ -2354,16 +2360,16 @@ cfg_if! { } } impl Eq for processor_set_basic_info {} - impl ::fmt::Debug for processor_set_basic_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for processor_set_basic_info { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("processor_set_basic_info") .field("processor_count", &self.processor_count) .field("default_policy", &self.default_policy) .finish() } } - impl ::hash::Hash for processor_set_basic_info { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for processor_set_basic_info { + fn hash(&self, state: &mut H) { self.processor_count.hash(state); self.default_policy.hash(state); } @@ -2378,8 +2384,8 @@ cfg_if! { } } impl Eq for processor_set_load_info {} - impl ::fmt::Debug for processor_set_load_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for processor_set_load_info { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("processor_set_load_info") .field("task_count", &self.task_count) .field("thread_count", &self.thread_count) @@ -2388,8 +2394,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for processor_set_load_info { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for processor_set_load_info { + fn hash(&self, state: &mut H) { self.task_count.hash(state); self.thread_count.hash(state); self.load_average.hash(state); @@ -2403,16 +2409,16 @@ cfg_if! { } } impl Eq for time_value_t {} - impl ::fmt::Debug for time_value_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for time_value_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("time_value_t") .field("seconds", &self.seconds) .field("microseconds", &self.microseconds) .finish() } } - impl ::hash::Hash for time_value_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for time_value_t { + fn hash(&self, state: &mut H) { self.seconds.hash(state); self.microseconds.hash(state); } @@ -2430,8 +2436,8 @@ cfg_if! { } } impl Eq for thread_basic_info {} - impl ::fmt::Debug for thread_basic_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for thread_basic_info { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("thread_basic_info") .field("user_time", &self.user_time) .field("system_time", &self.system_time) @@ -2444,8 +2450,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for thread_basic_info { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for thread_basic_info { + fn hash(&self, state: &mut H) { self.user_time.hash(state); self.system_time.hash(state); self.cpu_usage.hash(state); @@ -2476,8 +2482,8 @@ cfg_if! { } } impl Eq for thread_extended_info {} - impl ::fmt::Debug for thread_extended_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for thread_extended_info { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("proc_threadinfo") .field("pth_user_time", &self.pth_user_time) .field("pth_system_time", &self.pth_system_time) @@ -2493,8 +2499,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for thread_extended_info { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for thread_extended_info { + fn hash(&self, state: &mut H) { self.pth_user_time.hash(state); self.pth_system_time.hash(state); self.pth_cpu_usage.hash(state); @@ -2516,8 +2522,8 @@ cfg_if! { } } impl Eq for thread_identifier_info {} - impl ::fmt::Debug for thread_identifier_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for thread_identifier_info { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("thread_identifier_info") .field("thread_id", &self.thread_id) .field("thread_handle", &self.thread_handle) @@ -2525,8 +2531,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for thread_identifier_info { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for thread_identifier_info { + fn hash(&self, state: &mut H) { self.thread_id.hash(state); self.thread_handle.hash(state); self.dispatch_qaddr.hash(state); @@ -2562,8 +2568,8 @@ cfg_if! { } } impl Eq for if_data64 {} - impl ::fmt::Debug for if_data64 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for if_data64 { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { let ifi_type = self.ifi_type; let ifi_typelen = self.ifi_typelen; let ifi_physical = self.ifi_physical; @@ -2618,8 +2624,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for if_data64 { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for if_data64 { + fn hash(&self, state: &mut H) { let ifi_type = self.ifi_type; let ifi_typelen = self.ifi_typelen; let ifi_physical = self.ifi_physical; @@ -2688,8 +2694,8 @@ cfg_if! { } } impl Eq for if_msghdr2 {} - impl ::fmt::Debug for if_msghdr2 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for if_msghdr2 { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { let ifm_msglen = self.ifm_msglen; let ifm_version = self.ifm_version; let ifm_type = self.ifm_type; @@ -2716,8 +2722,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for if_msghdr2 { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for if_msghdr2 { + fn hash(&self, state: &mut H) { let ifm_msglen = self.ifm_msglen; let ifm_version = self.ifm_version; let ifm_type = self.ifm_type; @@ -2773,8 +2779,8 @@ cfg_if! { } } impl Eq for vm_statistics64 {} - impl ::fmt::Debug for vm_statistics64 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for vm_statistics64 { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { let free_count = self.free_count; let active_count = self.active_count; let inactive_count = self.inactive_count; @@ -2831,8 +2837,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for vm_statistics64 { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for vm_statistics64 { + fn hash(&self, state: &mut H) { let free_count = self.free_count; let active_count = self.active_count; let inactive_count = self.inactive_count; @@ -2897,8 +2903,8 @@ cfg_if! { } } impl Eq for mach_task_basic_info {} - impl ::fmt::Debug for mach_task_basic_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mach_task_basic_info { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { let virtual_size = self.virtual_size; let resident_size = self.resident_size; let resident_size_max = self.resident_size_max; @@ -2917,8 +2923,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for mach_task_basic_info { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for mach_task_basic_info { + fn hash(&self, state: &mut H) { let virtual_size = self.virtual_size; let resident_size = self.resident_size; let resident_size_max = self.resident_size_max; @@ -2944,8 +2950,8 @@ cfg_if! { } } impl Eq for log2phys {} - impl ::fmt::Debug for log2phys { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for log2phys { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { let l2p_flags = self.l2p_flags; let l2p_contigbytes = self.l2p_contigbytes; let l2p_devoffset = self.l2p_devoffset; @@ -2956,8 +2962,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for log2phys { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for log2phys { + fn hash(&self, state: &mut H) { let l2p_flags = self.l2p_flags; let l2p_contigbytes = self.l2p_contigbytes; let l2p_devoffset = self.l2p_devoffset; @@ -2974,16 +2980,16 @@ cfg_if! { impl Eq for os_unfair_lock {} - impl ::fmt::Debug for os_unfair_lock { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for os_unfair_lock { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("os_unfair_lock") .field("_os_unfair_lock_opaque", &self._os_unfair_lock_opaque) .finish() } } - impl ::hash::Hash for os_unfair_lock { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for os_unfair_lock { + fn hash(&self, state: &mut H) { self._os_unfair_lock_opaque.hash(state); } } @@ -3000,8 +3006,8 @@ cfg_if! { impl Eq for sockaddr_vm {} - impl ::fmt::Debug for sockaddr_vm { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_vm { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { let svm_len = self.svm_len; let svm_family = self.svm_family; let svm_reserved1 = self.svm_reserved1; @@ -3018,8 +3024,8 @@ cfg_if! { } } - impl ::hash::Hash for sockaddr_vm { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_vm { + fn hash(&self, state: &mut H) { let svm_len = self.svm_len; let svm_family = self.svm_family; let svm_reserved1 = self.svm_reserved1; @@ -3044,8 +3050,8 @@ cfg_if! { impl Eq for ifdevmtu {} - impl ::fmt::Debug for ifdevmtu { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ifdevmtu { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ifdevmtu") .field("ifdm_current", &self.ifdm_current) .field("ifdm_min", &self.ifdm_min) @@ -3054,8 +3060,8 @@ cfg_if! { } } - impl ::hash::Hash for ifdevmtu { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ifdevmtu { + fn hash(&self, state: &mut H) { self.ifdm_current.hash(state); self.ifdm_min.hash(state); self.ifdm_max.hash(state); @@ -3070,16 +3076,16 @@ cfg_if! { impl Eq for __c_anonymous_ifk_data {} - impl ::fmt::Debug for __c_anonymous_ifk_data { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_ifk_data { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("__c_anonymous_ifk_data") .field("ifk_ptr", unsafe { &self.ifk_ptr }) .field("ifk_value", unsafe { &self.ifk_value }) .finish() } } - impl ::hash::Hash for __c_anonymous_ifk_data { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_ifk_data { + fn hash(&self, state: &mut H) { unsafe { self.ifk_ptr.hash(state); self.ifk_value.hash(state); @@ -3095,8 +3101,8 @@ cfg_if! { impl Eq for ifkpi {} - impl ::fmt::Debug for ifkpi { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ifkpi { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ifkpi") .field("ifk_module_id", &self.ifk_module_id) .field("ifk_type", &self.ifk_type) @@ -3104,8 +3110,8 @@ cfg_if! { } } - impl ::hash::Hash for ifkpi { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ifkpi { + fn hash(&self, state: &mut H) { self.ifk_module_id.hash(state); self.ifk_type.hash(state); } @@ -3140,8 +3146,8 @@ cfg_if! { impl Eq for __c_anonymous_ifr_ifru {} - impl ::fmt::Debug for __c_anonymous_ifr_ifru { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_ifr_ifru { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("__c_anonymous_ifr_ifru") .field("ifru_addr", unsafe { &self.ifru_addr }) .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) @@ -3165,8 +3171,8 @@ cfg_if! { } } - impl ::hash::Hash for __c_anonymous_ifr_ifru { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_ifr_ifru { + fn hash(&self, state: &mut H) { unsafe { self.ifru_addr.hash(state); self.ifru_dstaddr.hash(state); @@ -3196,8 +3202,8 @@ cfg_if! { impl Eq for ifreq {} - impl ::fmt::Debug for ifreq { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ifreq { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ifreq") .field("ifr_name", &self.ifr_name) .field("ifr_ifru", &self.ifr_ifru) @@ -3205,8 +3211,8 @@ cfg_if! { } } - impl ::hash::Hash for ifreq { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ifreq { + fn hash(&self, state: &mut H) { self.ifr_name.hash(state); self.ifr_ifru.hash(state); } @@ -3220,8 +3226,8 @@ cfg_if! { } } - impl ::fmt::Debug for __c_anonymous_ifc_ifcu { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_ifc_ifcu { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ifc_ifcu") .field("ifcu_buf", unsafe { &self.ifcu_buf }) .field("ifcu_req", unsafe { &self.ifcu_req }) @@ -3229,8 +3235,8 @@ cfg_if! { } } - impl ::hash::Hash for __c_anonymous_ifc_ifcu { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_ifc_ifcu { + fn hash(&self, state: &mut H) { unsafe { self.ifcu_buf.hash(state) }; unsafe { self.ifcu_req.hash(state) }; } @@ -3257,8 +3263,8 @@ cfg_if! { impl Eq for __c_anonymous_ifr_ifru6 {} - impl ::fmt::Debug for __c_anonymous_ifr_ifru6 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_ifr_ifru6 { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("__c_anonymous_ifr_ifru6") .field("ifru_addr", unsafe { &self.ifru_addr }) .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) @@ -3272,8 +3278,8 @@ cfg_if! { } } - impl ::hash::Hash for __c_anonymous_ifr_ifru6 { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_ifr_ifru6 { + fn hash(&self, state: &mut H) { unsafe { self.ifru_addr.hash(state); self.ifru_dstaddr.hash(state); @@ -3295,8 +3301,8 @@ cfg_if! { impl Eq for in6_ifreq {} - impl ::fmt::Debug for in6_ifreq { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for in6_ifreq { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("in6_ifreq") .field("ifr_name", &self.ifr_name) .field("ifr_ifru", &self.ifr_ifru) @@ -3311,163 +3317,163 @@ pub const _UTX_LINESIZE: usize = 32; pub const _UTX_IDSIZE: usize = 4; pub const _UTX_HOSTSIZE: usize = 256; -pub const EMPTY: ::c_short = 0; -pub const RUN_LVL: ::c_short = 1; -pub const BOOT_TIME: ::c_short = 2; -pub const OLD_TIME: ::c_short = 3; -pub const NEW_TIME: ::c_short = 4; -pub const INIT_PROCESS: ::c_short = 5; -pub const LOGIN_PROCESS: ::c_short = 6; -pub const USER_PROCESS: ::c_short = 7; -pub const DEAD_PROCESS: ::c_short = 8; -pub const ACCOUNTING: ::c_short = 9; -pub const SIGNATURE: ::c_short = 10; -pub const SHUTDOWN_TIME: ::c_short = 11; - -pub const LC_COLLATE_MASK: ::c_int = 1 << 0; -pub const LC_CTYPE_MASK: ::c_int = 1 << 1; -pub const LC_MESSAGES_MASK: ::c_int = 1 << 2; -pub const LC_MONETARY_MASK: ::c_int = 1 << 3; -pub const LC_NUMERIC_MASK: ::c_int = 1 << 4; -pub const LC_TIME_MASK: ::c_int = 1 << 5; -pub const LC_ALL_MASK: ::c_int = LC_COLLATE_MASK +pub const EMPTY: c_short = 0; +pub const RUN_LVL: c_short = 1; +pub const BOOT_TIME: c_short = 2; +pub const OLD_TIME: c_short = 3; +pub const NEW_TIME: c_short = 4; +pub const INIT_PROCESS: c_short = 5; +pub const LOGIN_PROCESS: c_short = 6; +pub const USER_PROCESS: c_short = 7; +pub const DEAD_PROCESS: c_short = 8; +pub const ACCOUNTING: c_short = 9; +pub const SIGNATURE: c_short = 10; +pub const SHUTDOWN_TIME: c_short = 11; + +pub const LC_COLLATE_MASK: c_int = 1 << 0; +pub const LC_CTYPE_MASK: c_int = 1 << 1; +pub const LC_MESSAGES_MASK: c_int = 1 << 2; +pub const LC_MONETARY_MASK: c_int = 1 << 3; +pub const LC_NUMERIC_MASK: c_int = 1 << 4; +pub const LC_TIME_MASK: c_int = 1 << 5; +pub const LC_ALL_MASK: c_int = LC_COLLATE_MASK | LC_CTYPE_MASK | LC_MESSAGES_MASK | LC_MONETARY_MASK | LC_NUMERIC_MASK | LC_TIME_MASK; -pub const CODESET: ::nl_item = 0; -pub const D_T_FMT: ::nl_item = 1; -pub const D_FMT: ::nl_item = 2; -pub const T_FMT: ::nl_item = 3; -pub const T_FMT_AMPM: ::nl_item = 4; -pub const AM_STR: ::nl_item = 5; -pub const PM_STR: ::nl_item = 6; - -pub const DAY_1: ::nl_item = 7; -pub const DAY_2: ::nl_item = 8; -pub const DAY_3: ::nl_item = 9; -pub const DAY_4: ::nl_item = 10; -pub const DAY_5: ::nl_item = 11; -pub const DAY_6: ::nl_item = 12; -pub const DAY_7: ::nl_item = 13; - -pub const ABDAY_1: ::nl_item = 14; -pub const ABDAY_2: ::nl_item = 15; -pub const ABDAY_3: ::nl_item = 16; -pub const ABDAY_4: ::nl_item = 17; -pub const ABDAY_5: ::nl_item = 18; -pub const ABDAY_6: ::nl_item = 19; -pub const ABDAY_7: ::nl_item = 20; - -pub const MON_1: ::nl_item = 21; -pub const MON_2: ::nl_item = 22; -pub const MON_3: ::nl_item = 23; -pub const MON_4: ::nl_item = 24; -pub const MON_5: ::nl_item = 25; -pub const MON_6: ::nl_item = 26; -pub const MON_7: ::nl_item = 27; -pub const MON_8: ::nl_item = 28; -pub const MON_9: ::nl_item = 29; -pub const MON_10: ::nl_item = 30; -pub const MON_11: ::nl_item = 31; -pub const MON_12: ::nl_item = 32; - -pub const ABMON_1: ::nl_item = 33; -pub const ABMON_2: ::nl_item = 34; -pub const ABMON_3: ::nl_item = 35; -pub const ABMON_4: ::nl_item = 36; -pub const ABMON_5: ::nl_item = 37; -pub const ABMON_6: ::nl_item = 38; -pub const ABMON_7: ::nl_item = 39; -pub const ABMON_8: ::nl_item = 40; -pub const ABMON_9: ::nl_item = 41; -pub const ABMON_10: ::nl_item = 42; -pub const ABMON_11: ::nl_item = 43; -pub const ABMON_12: ::nl_item = 44; - -pub const CLOCK_REALTIME: ::clockid_t = 0; -pub const CLOCK_MONOTONIC_RAW: ::clockid_t = 4; -pub const CLOCK_MONOTONIC_RAW_APPROX: ::clockid_t = 5; -pub const CLOCK_MONOTONIC: ::clockid_t = 6; -pub const CLOCK_UPTIME_RAW: ::clockid_t = 8; -pub const CLOCK_UPTIME_RAW_APPROX: ::clockid_t = 9; -pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 12; -pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 16; - -pub const ERA: ::nl_item = 45; -pub const ERA_D_FMT: ::nl_item = 46; -pub const ERA_D_T_FMT: ::nl_item = 47; -pub const ERA_T_FMT: ::nl_item = 48; -pub const ALT_DIGITS: ::nl_item = 49; - -pub const RADIXCHAR: ::nl_item = 50; -pub const THOUSEP: ::nl_item = 51; - -pub const YESEXPR: ::nl_item = 52; -pub const NOEXPR: ::nl_item = 53; - -pub const YESSTR: ::nl_item = 54; -pub const NOSTR: ::nl_item = 55; - -pub const CRNCYSTR: ::nl_item = 56; - -pub const D_MD_ORDER: ::nl_item = 57; - -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 2147483647; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const SEEK_HOLE: ::c_int = 3; -pub const SEEK_DATA: ::c_int = 4; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 2; -pub const _IOLBF: ::c_int = 1; -pub const BUFSIZ: ::c_uint = 1024; -pub const FOPEN_MAX: ::c_uint = 20; -pub const FILENAME_MAX: ::c_uint = 1024; -pub const L_tmpnam: ::c_uint = 1024; -pub const TMP_MAX: ::c_uint = 308915776; -pub const _PC_LINK_MAX: ::c_int = 1; -pub const _PC_MAX_CANON: ::c_int = 2; -pub const _PC_MAX_INPUT: ::c_int = 3; -pub const _PC_NAME_MAX: ::c_int = 4; -pub const _PC_PATH_MAX: ::c_int = 5; -pub const _PC_PIPE_BUF: ::c_int = 6; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 7; -pub const _PC_NO_TRUNC: ::c_int = 8; -pub const _PC_VDISABLE: ::c_int = 9; -pub const _PC_NAME_CHARS_MAX: ::c_int = 10; -pub const _PC_CASE_SENSITIVE: ::c_int = 11; -pub const _PC_CASE_PRESERVING: ::c_int = 12; -pub const _PC_EXTENDED_SECURITY_NP: ::c_int = 13; -pub const _PC_AUTH_OPAQUE_NP: ::c_int = 14; -pub const _PC_2_SYMLINKS: ::c_int = 15; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 16; -pub const _PC_ASYNC_IO: ::c_int = 17; -pub const _PC_FILESIZEBITS: ::c_int = 18; -pub const _PC_PRIO_IO: ::c_int = 19; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 20; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 21; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 22; -pub const _PC_REC_XFER_ALIGN: ::c_int = 23; -pub const _PC_SYMLINK_MAX: ::c_int = 24; -pub const _PC_SYNC_IO: ::c_int = 25; -pub const _PC_XATTR_SIZE_BITS: ::c_int = 26; -pub const _PC_MIN_HOLE_SIZE: ::c_int = 27; -pub const O_EVTONLY: ::c_int = 0x00008000; -pub const O_NOCTTY: ::c_int = 0x00020000; -pub const O_DIRECTORY: ::c_int = 0x00100000; -pub const O_SYMLINK: ::c_int = 0x00200000; -pub const O_DSYNC: ::c_int = 0x00400000; -pub const O_CLOEXEC: ::c_int = 0x01000000; -pub const O_NOFOLLOW_ANY: ::c_int = 0x20000000; -pub const O_EXEC: ::c_int = 0x40000000; -pub const O_SEARCH: ::c_int = O_EXEC | O_DIRECTORY; +pub const CODESET: crate::nl_item = 0; +pub const D_T_FMT: crate::nl_item = 1; +pub const D_FMT: crate::nl_item = 2; +pub const T_FMT: crate::nl_item = 3; +pub const T_FMT_AMPM: crate::nl_item = 4; +pub const AM_STR: crate::nl_item = 5; +pub const PM_STR: crate::nl_item = 6; + +pub const DAY_1: crate::nl_item = 7; +pub const DAY_2: crate::nl_item = 8; +pub const DAY_3: crate::nl_item = 9; +pub const DAY_4: crate::nl_item = 10; +pub const DAY_5: crate::nl_item = 11; +pub const DAY_6: crate::nl_item = 12; +pub const DAY_7: crate::nl_item = 13; + +pub const ABDAY_1: crate::nl_item = 14; +pub const ABDAY_2: crate::nl_item = 15; +pub const ABDAY_3: crate::nl_item = 16; +pub const ABDAY_4: crate::nl_item = 17; +pub const ABDAY_5: crate::nl_item = 18; +pub const ABDAY_6: crate::nl_item = 19; +pub const ABDAY_7: crate::nl_item = 20; + +pub const MON_1: crate::nl_item = 21; +pub const MON_2: crate::nl_item = 22; +pub const MON_3: crate::nl_item = 23; +pub const MON_4: crate::nl_item = 24; +pub const MON_5: crate::nl_item = 25; +pub const MON_6: crate::nl_item = 26; +pub const MON_7: crate::nl_item = 27; +pub const MON_8: crate::nl_item = 28; +pub const MON_9: crate::nl_item = 29; +pub const MON_10: crate::nl_item = 30; +pub const MON_11: crate::nl_item = 31; +pub const MON_12: crate::nl_item = 32; + +pub const ABMON_1: crate::nl_item = 33; +pub const ABMON_2: crate::nl_item = 34; +pub const ABMON_3: crate::nl_item = 35; +pub const ABMON_4: crate::nl_item = 36; +pub const ABMON_5: crate::nl_item = 37; +pub const ABMON_6: crate::nl_item = 38; +pub const ABMON_7: crate::nl_item = 39; +pub const ABMON_8: crate::nl_item = 40; +pub const ABMON_9: crate::nl_item = 41; +pub const ABMON_10: crate::nl_item = 42; +pub const ABMON_11: crate::nl_item = 43; +pub const ABMON_12: crate::nl_item = 44; + +pub const CLOCK_REALTIME: crate::clockid_t = 0; +pub const CLOCK_MONOTONIC_RAW: crate::clockid_t = 4; +pub const CLOCK_MONOTONIC_RAW_APPROX: crate::clockid_t = 5; +pub const CLOCK_MONOTONIC: crate::clockid_t = 6; +pub const CLOCK_UPTIME_RAW: crate::clockid_t = 8; +pub const CLOCK_UPTIME_RAW_APPROX: crate::clockid_t = 9; +pub const CLOCK_PROCESS_CPUTIME_ID: crate::clockid_t = 12; +pub const CLOCK_THREAD_CPUTIME_ID: crate::clockid_t = 16; + +pub const ERA: crate::nl_item = 45; +pub const ERA_D_FMT: crate::nl_item = 46; +pub const ERA_D_T_FMT: crate::nl_item = 47; +pub const ERA_T_FMT: crate::nl_item = 48; +pub const ALT_DIGITS: crate::nl_item = 49; + +pub const RADIXCHAR: crate::nl_item = 50; +pub const THOUSEP: crate::nl_item = 51; + +pub const YESEXPR: crate::nl_item = 52; +pub const NOEXPR: crate::nl_item = 53; + +pub const YESSTR: crate::nl_item = 54; +pub const NOSTR: crate::nl_item = 55; + +pub const CRNCYSTR: crate::nl_item = 56; + +pub const D_MD_ORDER: crate::nl_item = 57; + +pub const EXIT_FAILURE: c_int = 1; +pub const EXIT_SUCCESS: c_int = 0; +pub const RAND_MAX: c_int = 2147483647; +pub const EOF: c_int = -1; +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; +pub const SEEK_HOLE: c_int = 3; +pub const SEEK_DATA: c_int = 4; +pub const _IOFBF: c_int = 0; +pub const _IONBF: c_int = 2; +pub const _IOLBF: c_int = 1; +pub const BUFSIZ: c_uint = 1024; +pub const FOPEN_MAX: c_uint = 20; +pub const FILENAME_MAX: c_uint = 1024; +pub const L_tmpnam: c_uint = 1024; +pub const TMP_MAX: c_uint = 308915776; +pub const _PC_LINK_MAX: c_int = 1; +pub const _PC_MAX_CANON: c_int = 2; +pub const _PC_MAX_INPUT: c_int = 3; +pub const _PC_NAME_MAX: c_int = 4; +pub const _PC_PATH_MAX: c_int = 5; +pub const _PC_PIPE_BUF: c_int = 6; +pub const _PC_CHOWN_RESTRICTED: c_int = 7; +pub const _PC_NO_TRUNC: c_int = 8; +pub const _PC_VDISABLE: c_int = 9; +pub const _PC_NAME_CHARS_MAX: c_int = 10; +pub const _PC_CASE_SENSITIVE: c_int = 11; +pub const _PC_CASE_PRESERVING: c_int = 12; +pub const _PC_EXTENDED_SECURITY_NP: c_int = 13; +pub const _PC_AUTH_OPAQUE_NP: c_int = 14; +pub const _PC_2_SYMLINKS: c_int = 15; +pub const _PC_ALLOC_SIZE_MIN: c_int = 16; +pub const _PC_ASYNC_IO: c_int = 17; +pub const _PC_FILESIZEBITS: c_int = 18; +pub const _PC_PRIO_IO: c_int = 19; +pub const _PC_REC_INCR_XFER_SIZE: c_int = 20; +pub const _PC_REC_MAX_XFER_SIZE: c_int = 21; +pub const _PC_REC_MIN_XFER_SIZE: c_int = 22; +pub const _PC_REC_XFER_ALIGN: c_int = 23; +pub const _PC_SYMLINK_MAX: c_int = 24; +pub const _PC_SYNC_IO: c_int = 25; +pub const _PC_XATTR_SIZE_BITS: c_int = 26; +pub const _PC_MIN_HOLE_SIZE: c_int = 27; +pub const O_EVTONLY: c_int = 0x00008000; +pub const O_NOCTTY: c_int = 0x00020000; +pub const O_DIRECTORY: c_int = 0x00100000; +pub const O_SYMLINK: c_int = 0x00200000; +pub const O_DSYNC: c_int = 0x00400000; +pub const O_CLOEXEC: c_int = 0x01000000; +pub const O_NOFOLLOW_ANY: c_int = 0x20000000; +pub const O_EXEC: c_int = 0x40000000; +pub const O_SEARCH: c_int = O_EXEC | O_DIRECTORY; pub const S_IFIFO: mode_t = 0o1_0000; pub const S_IFCHR: mode_t = 0o2_0000; pub const S_IFBLK: mode_t = 0o6_0000; @@ -3491,426 +3497,426 @@ pub const S_IRWXO: mode_t = 0o0007; pub const S_IXOTH: mode_t = 0o0001; pub const S_IWOTH: mode_t = 0o0002; pub const S_IROTH: mode_t = 0o0004; -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; -pub const F_GETLK: ::c_int = 7; -pub const F_SETLK: ::c_int = 8; -pub const F_SETLKW: ::c_int = 9; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSEGV: ::c_int = 11; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; - -pub const PROT_NONE: ::c_int = 0; -pub const PROT_READ: ::c_int = 1; -pub const PROT_WRITE: ::c_int = 2; -pub const PROT_EXEC: ::c_int = 4; - -pub const PT_TRACE_ME: ::c_int = 0; -pub const PT_READ_I: ::c_int = 1; -pub const PT_READ_D: ::c_int = 2; -pub const PT_READ_U: ::c_int = 3; -pub const PT_WRITE_I: ::c_int = 4; -pub const PT_WRITE_D: ::c_int = 5; -pub const PT_WRITE_U: ::c_int = 6; -pub const PT_CONTINUE: ::c_int = 7; -pub const PT_KILL: ::c_int = 8; -pub const PT_STEP: ::c_int = 9; -pub const PT_ATTACH: ::c_int = 10; -pub const PT_DETACH: ::c_int = 11; -pub const PT_SIGEXC: ::c_int = 12; -pub const PT_THUPDATE: ::c_int = 13; -pub const PT_ATTACHEXC: ::c_int = 14; - -pub const PT_FORCEQUOTA: ::c_int = 30; -pub const PT_DENY_ATTACH: ::c_int = 31; -pub const PT_FIRSTMACH: ::c_int = 32; - -pub const MAP_FILE: ::c_int = 0x0000; -pub const MAP_SHARED: ::c_int = 0x0001; -pub const MAP_PRIVATE: ::c_int = 0x0002; -pub const MAP_FIXED: ::c_int = 0x0010; -pub const MAP_ANON: ::c_int = 0x1000; -pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; - -pub const CPU_STATE_USER: ::c_int = 0; -pub const CPU_STATE_SYSTEM: ::c_int = 1; -pub const CPU_STATE_IDLE: ::c_int = 2; -pub const CPU_STATE_NICE: ::c_int = 3; -pub const CPU_STATE_MAX: ::c_int = 4; - -pub const PROCESSOR_BASIC_INFO: ::c_int = 1; -pub const PROCESSOR_CPU_LOAD_INFO: ::c_int = 2; -pub const PROCESSOR_PM_REGS_INFO: ::c_int = 0x10000001; -pub const PROCESSOR_TEMPERATURE: ::c_int = 0x10000002; -pub const PROCESSOR_SET_LOAD_INFO: ::c_int = 4; -pub const PROCESSOR_SET_BASIC_INFO: ::c_int = 5; +pub const F_OK: c_int = 0; +pub const R_OK: c_int = 4; +pub const W_OK: c_int = 2; +pub const X_OK: c_int = 1; +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; +pub const F_LOCK: c_int = 1; +pub const F_TEST: c_int = 3; +pub const F_TLOCK: c_int = 2; +pub const F_ULOCK: c_int = 0; +pub const F_GETLK: c_int = 7; +pub const F_SETLK: c_int = 8; +pub const F_SETLKW: c_int = 9; +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGABRT: c_int = 6; +pub const SIGEMT: c_int = 7; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGSEGV: c_int = 11; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; + +pub const PROT_NONE: c_int = 0; +pub const PROT_READ: c_int = 1; +pub const PROT_WRITE: c_int = 2; +pub const PROT_EXEC: c_int = 4; + +pub const PT_TRACE_ME: c_int = 0; +pub const PT_READ_I: c_int = 1; +pub const PT_READ_D: c_int = 2; +pub const PT_READ_U: c_int = 3; +pub const PT_WRITE_I: c_int = 4; +pub const PT_WRITE_D: c_int = 5; +pub const PT_WRITE_U: c_int = 6; +pub const PT_CONTINUE: c_int = 7; +pub const PT_KILL: c_int = 8; +pub const PT_STEP: c_int = 9; +pub const PT_ATTACH: c_int = 10; +pub const PT_DETACH: c_int = 11; +pub const PT_SIGEXC: c_int = 12; +pub const PT_THUPDATE: c_int = 13; +pub const PT_ATTACHEXC: c_int = 14; + +pub const PT_FORCEQUOTA: c_int = 30; +pub const PT_DENY_ATTACH: c_int = 31; +pub const PT_FIRSTMACH: c_int = 32; + +pub const MAP_FILE: c_int = 0x0000; +pub const MAP_SHARED: c_int = 0x0001; +pub const MAP_PRIVATE: c_int = 0x0002; +pub const MAP_FIXED: c_int = 0x0010; +pub const MAP_ANON: c_int = 0x1000; +pub const MAP_ANONYMOUS: c_int = MAP_ANON; + +pub const CPU_STATE_USER: c_int = 0; +pub const CPU_STATE_SYSTEM: c_int = 1; +pub const CPU_STATE_IDLE: c_int = 2; +pub const CPU_STATE_NICE: c_int = 3; +pub const CPU_STATE_MAX: c_int = 4; + +pub const PROCESSOR_BASIC_INFO: c_int = 1; +pub const PROCESSOR_CPU_LOAD_INFO: c_int = 2; +pub const PROCESSOR_PM_REGS_INFO: c_int = 0x10000001; +pub const PROCESSOR_TEMPERATURE: c_int = 0x10000002; +pub const PROCESSOR_SET_LOAD_INFO: c_int = 4; +pub const PROCESSOR_SET_BASIC_INFO: c_int = 5; deprecated_mach! { - pub const VM_FLAGS_FIXED: ::c_int = 0x0000; - pub const VM_FLAGS_ANYWHERE: ::c_int = 0x0001; - pub const VM_FLAGS_PURGABLE: ::c_int = 0x0002; - pub const VM_FLAGS_RANDOM_ADDR: ::c_int = 0x0008; - pub const VM_FLAGS_NO_CACHE: ::c_int = 0x0010; - pub const VM_FLAGS_RESILIENT_CODESIGN: ::c_int = 0x0020; - pub const VM_FLAGS_RESILIENT_MEDIA: ::c_int = 0x0040; - pub const VM_FLAGS_OVERWRITE: ::c_int = 0x4000; - pub const VM_FLAGS_SUPERPAGE_MASK: ::c_int = 0x70000; - pub const VM_FLAGS_RETURN_DATA_ADDR: ::c_int = 0x100000; - pub const VM_FLAGS_RETURN_4K_DATA_ADDR: ::c_int = 0x800000; - pub const VM_FLAGS_ALIAS_MASK: ::c_int = 0xFF000000; - pub const VM_FLAGS_USER_ALLOCATE: ::c_int = 0xff07401f; - pub const VM_FLAGS_USER_MAP: ::c_int = 0xff97401f; - pub const VM_FLAGS_USER_REMAP: ::c_int = VM_FLAGS_FIXED + pub const VM_FLAGS_FIXED: c_int = 0x0000; + pub const VM_FLAGS_ANYWHERE: c_int = 0x0001; + pub const VM_FLAGS_PURGABLE: c_int = 0x0002; + pub const VM_FLAGS_RANDOM_ADDR: c_int = 0x0008; + pub const VM_FLAGS_NO_CACHE: c_int = 0x0010; + pub const VM_FLAGS_RESILIENT_CODESIGN: c_int = 0x0020; + pub const VM_FLAGS_RESILIENT_MEDIA: c_int = 0x0040; + pub const VM_FLAGS_OVERWRITE: c_int = 0x4000; + pub const VM_FLAGS_SUPERPAGE_MASK: c_int = 0x70000; + pub const VM_FLAGS_RETURN_DATA_ADDR: c_int = 0x100000; + pub const VM_FLAGS_RETURN_4K_DATA_ADDR: c_int = 0x800000; + pub const VM_FLAGS_ALIAS_MASK: c_int = 0xFF000000; + pub const VM_FLAGS_USER_ALLOCATE: c_int = 0xff07401f; + pub const VM_FLAGS_USER_MAP: c_int = 0xff97401f; + pub const VM_FLAGS_USER_REMAP: c_int = VM_FLAGS_FIXED | VM_FLAGS_ANYWHERE | VM_FLAGS_RANDOM_ADDR | VM_FLAGS_OVERWRITE | VM_FLAGS_RETURN_DATA_ADDR | VM_FLAGS_RESILIENT_CODESIGN; - pub const VM_FLAGS_SUPERPAGE_SHIFT: ::c_int = 16; - pub const SUPERPAGE_NONE: ::c_int = 0; - pub const SUPERPAGE_SIZE_ANY: ::c_int = 1; - pub const VM_FLAGS_SUPERPAGE_NONE: ::c_int = SUPERPAGE_NONE << VM_FLAGS_SUPERPAGE_SHIFT; - pub const VM_FLAGS_SUPERPAGE_SIZE_ANY: ::c_int = SUPERPAGE_SIZE_ANY << VM_FLAGS_SUPERPAGE_SHIFT; - pub const SUPERPAGE_SIZE_2MB: ::c_int = 2; - pub const VM_FLAGS_SUPERPAGE_SIZE_2MB: ::c_int = SUPERPAGE_SIZE_2MB << VM_FLAGS_SUPERPAGE_SHIFT; - - pub const VM_MEMORY_MALLOC: ::c_int = 1; - pub const VM_MEMORY_MALLOC_SMALL: ::c_int = 2; - pub const VM_MEMORY_MALLOC_LARGE: ::c_int = 3; - pub const VM_MEMORY_MALLOC_HUGE: ::c_int = 4; - pub const VM_MEMORY_SBRK: ::c_int = 5; - pub const VM_MEMORY_REALLOC: ::c_int = 6; - pub const VM_MEMORY_MALLOC_TINY: ::c_int = 7; - pub const VM_MEMORY_MALLOC_LARGE_REUSABLE: ::c_int = 8; - pub const VM_MEMORY_MALLOC_LARGE_REUSED: ::c_int = 9; - pub const VM_MEMORY_ANALYSIS_TOOL: ::c_int = 10; - pub const VM_MEMORY_MALLOC_NANO: ::c_int = 11; - pub const VM_MEMORY_MACH_MSG: ::c_int = 20; - pub const VM_MEMORY_IOKIT: ::c_int = 21; - pub const VM_MEMORY_STACK: ::c_int = 30; - pub const VM_MEMORY_GUARD: ::c_int = 31; - pub const VM_MEMORY_SHARED_PMAP: ::c_int = 32; - pub const VM_MEMORY_DYLIB: ::c_int = 33; - pub const VM_MEMORY_OBJC_DISPATCHERS: ::c_int = 34; - pub const VM_MEMORY_UNSHARED_PMAP: ::c_int = 35; - pub const VM_MEMORY_APPKIT: ::c_int = 40; - pub const VM_MEMORY_FOUNDATION: ::c_int = 41; - pub const VM_MEMORY_COREGRAPHICS: ::c_int = 42; - pub const VM_MEMORY_CORESERVICES: ::c_int = 43; - pub const VM_MEMORY_CARBON: ::c_int = VM_MEMORY_CORESERVICES; - pub const VM_MEMORY_JAVA: ::c_int = 44; - pub const VM_MEMORY_COREDATA: ::c_int = 45; - pub const VM_MEMORY_COREDATA_OBJECTIDS: ::c_int = 46; - pub const VM_MEMORY_ATS: ::c_int = 50; - pub const VM_MEMORY_LAYERKIT: ::c_int = 51; - pub const VM_MEMORY_CGIMAGE: ::c_int = 52; - pub const VM_MEMORY_TCMALLOC: ::c_int = 53; - pub const VM_MEMORY_COREGRAPHICS_DATA: ::c_int = 54; - pub const VM_MEMORY_COREGRAPHICS_SHARED: ::c_int = 55; - pub const VM_MEMORY_COREGRAPHICS_FRAMEBUFFERS: ::c_int = 56; - pub const VM_MEMORY_COREGRAPHICS_BACKINGSTORES: ::c_int = 57; - pub const VM_MEMORY_COREGRAPHICS_XALLOC: ::c_int = 58; - pub const VM_MEMORY_COREGRAPHICS_MISC: ::c_int = VM_MEMORY_COREGRAPHICS; - pub const VM_MEMORY_DYLD: ::c_int = 60; - pub const VM_MEMORY_DYLD_MALLOC: ::c_int = 61; - pub const VM_MEMORY_SQLITE: ::c_int = 62; - pub const VM_MEMORY_JAVASCRIPT_CORE: ::c_int = 63; - pub const VM_MEMORY_JAVASCRIPT_JIT_EXECUTABLE_ALLOCATOR: ::c_int = 64; - pub const VM_MEMORY_JAVASCRIPT_JIT_REGISTER_FILE: ::c_int = 65; - pub const VM_MEMORY_GLSL: ::c_int = 66; - pub const VM_MEMORY_OPENCL: ::c_int = 67; - pub const VM_MEMORY_COREIMAGE: ::c_int = 68; - pub const VM_MEMORY_WEBCORE_PURGEABLE_BUFFERS: ::c_int = 69; - pub const VM_MEMORY_IMAGEIO: ::c_int = 70; - pub const VM_MEMORY_COREPROFILE: ::c_int = 71; - pub const VM_MEMORY_ASSETSD: ::c_int = 72; - pub const VM_MEMORY_OS_ALLOC_ONCE: ::c_int = 73; - pub const VM_MEMORY_LIBDISPATCH: ::c_int = 74; - pub const VM_MEMORY_ACCELERATE: ::c_int = 75; - pub const VM_MEMORY_COREUI: ::c_int = 76; - pub const VM_MEMORY_COREUIFILE: ::c_int = 77; - pub const VM_MEMORY_GENEALOGY: ::c_int = 78; - pub const VM_MEMORY_RAWCAMERA: ::c_int = 79; - pub const VM_MEMORY_CORPSEINFO: ::c_int = 80; - pub const VM_MEMORY_ASL: ::c_int = 81; - pub const VM_MEMORY_SWIFT_RUNTIME: ::c_int = 82; - pub const VM_MEMORY_SWIFT_METADATA: ::c_int = 83; - pub const VM_MEMORY_DHMM: ::c_int = 84; - pub const VM_MEMORY_SCENEKIT: ::c_int = 86; - pub const VM_MEMORY_SKYWALK: ::c_int = 87; - pub const VM_MEMORY_APPLICATION_SPECIFIC_1: ::c_int = 240; - pub const VM_MEMORY_APPLICATION_SPECIFIC_16: ::c_int = 255; + pub const VM_FLAGS_SUPERPAGE_SHIFT: c_int = 16; + pub const SUPERPAGE_NONE: c_int = 0; + pub const SUPERPAGE_SIZE_ANY: c_int = 1; + pub const VM_FLAGS_SUPERPAGE_NONE: c_int = SUPERPAGE_NONE << VM_FLAGS_SUPERPAGE_SHIFT; + pub const VM_FLAGS_SUPERPAGE_SIZE_ANY: c_int = SUPERPAGE_SIZE_ANY << VM_FLAGS_SUPERPAGE_SHIFT; + pub const SUPERPAGE_SIZE_2MB: c_int = 2; + pub const VM_FLAGS_SUPERPAGE_SIZE_2MB: c_int = SUPERPAGE_SIZE_2MB << VM_FLAGS_SUPERPAGE_SHIFT; + + pub const VM_MEMORY_MALLOC: c_int = 1; + pub const VM_MEMORY_MALLOC_SMALL: c_int = 2; + pub const VM_MEMORY_MALLOC_LARGE: c_int = 3; + pub const VM_MEMORY_MALLOC_HUGE: c_int = 4; + pub const VM_MEMORY_SBRK: c_int = 5; + pub const VM_MEMORY_REALLOC: c_int = 6; + pub const VM_MEMORY_MALLOC_TINY: c_int = 7; + pub const VM_MEMORY_MALLOC_LARGE_REUSABLE: c_int = 8; + pub const VM_MEMORY_MALLOC_LARGE_REUSED: c_int = 9; + pub const VM_MEMORY_ANALYSIS_TOOL: c_int = 10; + pub const VM_MEMORY_MALLOC_NANO: c_int = 11; + pub const VM_MEMORY_MACH_MSG: c_int = 20; + pub const VM_MEMORY_IOKIT: c_int = 21; + pub const VM_MEMORY_STACK: c_int = 30; + pub const VM_MEMORY_GUARD: c_int = 31; + pub const VM_MEMORY_SHARED_PMAP: c_int = 32; + pub const VM_MEMORY_DYLIB: c_int = 33; + pub const VM_MEMORY_OBJC_DISPATCHERS: c_int = 34; + pub const VM_MEMORY_UNSHARED_PMAP: c_int = 35; + pub const VM_MEMORY_APPKIT: c_int = 40; + pub const VM_MEMORY_FOUNDATION: c_int = 41; + pub const VM_MEMORY_COREGRAPHICS: c_int = 42; + pub const VM_MEMORY_CORESERVICES: c_int = 43; + pub const VM_MEMORY_CARBON: c_int = VM_MEMORY_CORESERVICES; + pub const VM_MEMORY_JAVA: c_int = 44; + pub const VM_MEMORY_COREDATA: c_int = 45; + pub const VM_MEMORY_COREDATA_OBJECTIDS: c_int = 46; + pub const VM_MEMORY_ATS: c_int = 50; + pub const VM_MEMORY_LAYERKIT: c_int = 51; + pub const VM_MEMORY_CGIMAGE: c_int = 52; + pub const VM_MEMORY_TCMALLOC: c_int = 53; + pub const VM_MEMORY_COREGRAPHICS_DATA: c_int = 54; + pub const VM_MEMORY_COREGRAPHICS_SHARED: c_int = 55; + pub const VM_MEMORY_COREGRAPHICS_FRAMEBUFFERS: c_int = 56; + pub const VM_MEMORY_COREGRAPHICS_BACKINGSTORES: c_int = 57; + pub const VM_MEMORY_COREGRAPHICS_XALLOC: c_int = 58; + pub const VM_MEMORY_COREGRAPHICS_MISC: c_int = VM_MEMORY_COREGRAPHICS; + pub const VM_MEMORY_DYLD: c_int = 60; + pub const VM_MEMORY_DYLD_MALLOC: c_int = 61; + pub const VM_MEMORY_SQLITE: c_int = 62; + pub const VM_MEMORY_JAVASCRIPT_CORE: c_int = 63; + pub const VM_MEMORY_JAVASCRIPT_JIT_EXECUTABLE_ALLOCATOR: c_int = 64; + pub const VM_MEMORY_JAVASCRIPT_JIT_REGISTER_FILE: c_int = 65; + pub const VM_MEMORY_GLSL: c_int = 66; + pub const VM_MEMORY_OPENCL: c_int = 67; + pub const VM_MEMORY_COREIMAGE: c_int = 68; + pub const VM_MEMORY_WEBCORE_PURGEABLE_BUFFERS: c_int = 69; + pub const VM_MEMORY_IMAGEIO: c_int = 70; + pub const VM_MEMORY_COREPROFILE: c_int = 71; + pub const VM_MEMORY_ASSETSD: c_int = 72; + pub const VM_MEMORY_OS_ALLOC_ONCE: c_int = 73; + pub const VM_MEMORY_LIBDISPATCH: c_int = 74; + pub const VM_MEMORY_ACCELERATE: c_int = 75; + pub const VM_MEMORY_COREUI: c_int = 76; + pub const VM_MEMORY_COREUIFILE: c_int = 77; + pub const VM_MEMORY_GENEALOGY: c_int = 78; + pub const VM_MEMORY_RAWCAMERA: c_int = 79; + pub const VM_MEMORY_CORPSEINFO: c_int = 80; + pub const VM_MEMORY_ASL: c_int = 81; + pub const VM_MEMORY_SWIFT_RUNTIME: c_int = 82; + pub const VM_MEMORY_SWIFT_METADATA: c_int = 83; + pub const VM_MEMORY_DHMM: c_int = 84; + pub const VM_MEMORY_SCENEKIT: c_int = 86; + pub const VM_MEMORY_SKYWALK: c_int = 87; + pub const VM_MEMORY_APPLICATION_SPECIFIC_1: c_int = 240; + pub const VM_MEMORY_APPLICATION_SPECIFIC_16: c_int = 255; } -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const MS_ASYNC: ::c_int = 0x0001; -pub const MS_INVALIDATE: ::c_int = 0x0002; -pub const MS_SYNC: ::c_int = 0x0010; - -pub const MS_KILLPAGES: ::c_int = 0x0004; -pub const MS_DEACTIVATE: ::c_int = 0x0008; - -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EDEADLK: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const EAGAIN: ::c_int = 35; -pub const EWOULDBLOCK: ::c_int = EAGAIN; -pub const EINPROGRESS: ::c_int = 36; -pub const EALREADY: ::c_int = 37; -pub const ENOTSOCK: ::c_int = 38; -pub const EDESTADDRREQ: ::c_int = 39; -pub const EMSGSIZE: ::c_int = 40; -pub const EPROTOTYPE: ::c_int = 41; -pub const ENOPROTOOPT: ::c_int = 42; -pub const EPROTONOSUPPORT: ::c_int = 43; -pub const ESOCKTNOSUPPORT: ::c_int = 44; -pub const ENOTSUP: ::c_int = 45; -pub const EPFNOSUPPORT: ::c_int = 46; -pub const EAFNOSUPPORT: ::c_int = 47; -pub const EADDRINUSE: ::c_int = 48; -pub const EADDRNOTAVAIL: ::c_int = 49; -pub const ENETDOWN: ::c_int = 50; -pub const ENETUNREACH: ::c_int = 51; -pub const ENETRESET: ::c_int = 52; -pub const ECONNABORTED: ::c_int = 53; -pub const ECONNRESET: ::c_int = 54; -pub const ENOBUFS: ::c_int = 55; -pub const EISCONN: ::c_int = 56; -pub const ENOTCONN: ::c_int = 57; -pub const ESHUTDOWN: ::c_int = 58; -pub const ETOOMANYREFS: ::c_int = 59; -pub const ETIMEDOUT: ::c_int = 60; -pub const ECONNREFUSED: ::c_int = 61; -pub const ELOOP: ::c_int = 62; -pub const ENAMETOOLONG: ::c_int = 63; -pub const EHOSTDOWN: ::c_int = 64; -pub const EHOSTUNREACH: ::c_int = 65; -pub const ENOTEMPTY: ::c_int = 66; -pub const EPROCLIM: ::c_int = 67; -pub const EUSERS: ::c_int = 68; -pub const EDQUOT: ::c_int = 69; -pub const ESTALE: ::c_int = 70; -pub const EREMOTE: ::c_int = 71; -pub const EBADRPC: ::c_int = 72; -pub const ERPCMISMATCH: ::c_int = 73; -pub const EPROGUNAVAIL: ::c_int = 74; -pub const EPROGMISMATCH: ::c_int = 75; -pub const EPROCUNAVAIL: ::c_int = 76; -pub const ENOLCK: ::c_int = 77; -pub const ENOSYS: ::c_int = 78; -pub const EFTYPE: ::c_int = 79; -pub const EAUTH: ::c_int = 80; -pub const ENEEDAUTH: ::c_int = 81; -pub const EPWROFF: ::c_int = 82; -pub const EDEVERR: ::c_int = 83; -pub const EOVERFLOW: ::c_int = 84; -pub const EBADEXEC: ::c_int = 85; -pub const EBADARCH: ::c_int = 86; -pub const ESHLIBVERS: ::c_int = 87; -pub const EBADMACHO: ::c_int = 88; -pub const ECANCELED: ::c_int = 89; -pub const EIDRM: ::c_int = 90; -pub const ENOMSG: ::c_int = 91; -pub const EILSEQ: ::c_int = 92; -pub const ENOATTR: ::c_int = 93; -pub const EBADMSG: ::c_int = 94; -pub const EMULTIHOP: ::c_int = 95; -pub const ENODATA: ::c_int = 96; -pub const ENOLINK: ::c_int = 97; -pub const ENOSR: ::c_int = 98; -pub const ENOSTR: ::c_int = 99; -pub const EPROTO: ::c_int = 100; -pub const ETIME: ::c_int = 101; -pub const EOPNOTSUPP: ::c_int = 102; -pub const ENOPOLICY: ::c_int = 103; -pub const ENOTRECOVERABLE: ::c_int = 104; -pub const EOWNERDEAD: ::c_int = 105; -pub const EQFULL: ::c_int = 106; -pub const ELAST: ::c_int = 106; - -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_FAMILY: ::c_int = 5; -pub const EAI_MEMORY: ::c_int = 6; -pub const EAI_NODATA: ::c_int = 7; -pub const EAI_NONAME: ::c_int = 8; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_OVERFLOW: ::c_int = 14; - -pub const F_DUPFD: ::c_int = 0; -pub const F_DUPFD_CLOEXEC: ::c_int = 67; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; -pub const F_PREALLOCATE: ::c_int = 42; -pub const F_RDADVISE: ::c_int = 44; -pub const F_RDAHEAD: ::c_int = 45; -pub const F_NOCACHE: ::c_int = 48; -pub const F_LOG2PHYS: ::c_int = 49; -pub const F_GETPATH: ::c_int = 50; -pub const F_FULLFSYNC: ::c_int = 51; -pub const F_FREEZE_FS: ::c_int = 53; -pub const F_THAW_FS: ::c_int = 54; -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 MAP_FAILED: *mut c_void = !0 as *mut c_void; + +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; + +pub const MS_ASYNC: c_int = 0x0001; +pub const MS_INVALIDATE: c_int = 0x0002; +pub const MS_SYNC: c_int = 0x0010; + +pub const MS_KILLPAGES: c_int = 0x0004; +pub const MS_DEACTIVATE: c_int = 0x0008; + +pub const EPERM: c_int = 1; +pub const ENOENT: c_int = 2; +pub const ESRCH: c_int = 3; +pub const EINTR: c_int = 4; +pub const EIO: c_int = 5; +pub const ENXIO: c_int = 6; +pub const E2BIG: c_int = 7; +pub const ENOEXEC: c_int = 8; +pub const EBADF: c_int = 9; +pub const ECHILD: c_int = 10; +pub const EDEADLK: c_int = 11; +pub const ENOMEM: c_int = 12; +pub const EACCES: c_int = 13; +pub const EFAULT: c_int = 14; +pub const ENOTBLK: c_int = 15; +pub const EBUSY: c_int = 16; +pub const EEXIST: c_int = 17; +pub const EXDEV: c_int = 18; +pub const ENODEV: c_int = 19; +pub const ENOTDIR: c_int = 20; +pub const EISDIR: c_int = 21; +pub const EINVAL: c_int = 22; +pub const ENFILE: c_int = 23; +pub const EMFILE: c_int = 24; +pub const ENOTTY: c_int = 25; +pub const ETXTBSY: c_int = 26; +pub const EFBIG: c_int = 27; +pub const ENOSPC: c_int = 28; +pub const ESPIPE: c_int = 29; +pub const EROFS: c_int = 30; +pub const EMLINK: c_int = 31; +pub const EPIPE: c_int = 32; +pub const EDOM: c_int = 33; +pub const ERANGE: c_int = 34; +pub const EAGAIN: c_int = 35; +pub const EWOULDBLOCK: c_int = EAGAIN; +pub const EINPROGRESS: c_int = 36; +pub const EALREADY: c_int = 37; +pub const ENOTSOCK: c_int = 38; +pub const EDESTADDRREQ: c_int = 39; +pub const EMSGSIZE: c_int = 40; +pub const EPROTOTYPE: c_int = 41; +pub const ENOPROTOOPT: c_int = 42; +pub const EPROTONOSUPPORT: c_int = 43; +pub const ESOCKTNOSUPPORT: c_int = 44; +pub const ENOTSUP: c_int = 45; +pub const EPFNOSUPPORT: c_int = 46; +pub const EAFNOSUPPORT: c_int = 47; +pub const EADDRINUSE: c_int = 48; +pub const EADDRNOTAVAIL: c_int = 49; +pub const ENETDOWN: c_int = 50; +pub const ENETUNREACH: c_int = 51; +pub const ENETRESET: c_int = 52; +pub const ECONNABORTED: c_int = 53; +pub const ECONNRESET: c_int = 54; +pub const ENOBUFS: c_int = 55; +pub const EISCONN: c_int = 56; +pub const ENOTCONN: c_int = 57; +pub const ESHUTDOWN: c_int = 58; +pub const ETOOMANYREFS: c_int = 59; +pub const ETIMEDOUT: c_int = 60; +pub const ECONNREFUSED: c_int = 61; +pub const ELOOP: c_int = 62; +pub const ENAMETOOLONG: c_int = 63; +pub const EHOSTDOWN: c_int = 64; +pub const EHOSTUNREACH: c_int = 65; +pub const ENOTEMPTY: c_int = 66; +pub const EPROCLIM: c_int = 67; +pub const EUSERS: c_int = 68; +pub const EDQUOT: c_int = 69; +pub const ESTALE: c_int = 70; +pub const EREMOTE: c_int = 71; +pub const EBADRPC: c_int = 72; +pub const ERPCMISMATCH: c_int = 73; +pub const EPROGUNAVAIL: c_int = 74; +pub const EPROGMISMATCH: c_int = 75; +pub const EPROCUNAVAIL: c_int = 76; +pub const ENOLCK: c_int = 77; +pub const ENOSYS: c_int = 78; +pub const EFTYPE: c_int = 79; +pub const EAUTH: c_int = 80; +pub const ENEEDAUTH: c_int = 81; +pub const EPWROFF: c_int = 82; +pub const EDEVERR: c_int = 83; +pub const EOVERFLOW: c_int = 84; +pub const EBADEXEC: c_int = 85; +pub const EBADARCH: c_int = 86; +pub const ESHLIBVERS: c_int = 87; +pub const EBADMACHO: c_int = 88; +pub const ECANCELED: c_int = 89; +pub const EIDRM: c_int = 90; +pub const ENOMSG: c_int = 91; +pub const EILSEQ: c_int = 92; +pub const ENOATTR: c_int = 93; +pub const EBADMSG: c_int = 94; +pub const EMULTIHOP: c_int = 95; +pub const ENODATA: c_int = 96; +pub const ENOLINK: c_int = 97; +pub const ENOSR: c_int = 98; +pub const ENOSTR: c_int = 99; +pub const EPROTO: c_int = 100; +pub const ETIME: c_int = 101; +pub const EOPNOTSUPP: c_int = 102; +pub const ENOPOLICY: c_int = 103; +pub const ENOTRECOVERABLE: c_int = 104; +pub const EOWNERDEAD: c_int = 105; +pub const EQFULL: c_int = 106; +pub const ELAST: c_int = 106; + +pub const EAI_AGAIN: c_int = 2; +pub const EAI_BADFLAGS: c_int = 3; +pub const EAI_FAIL: c_int = 4; +pub const EAI_FAMILY: c_int = 5; +pub const EAI_MEMORY: c_int = 6; +pub const EAI_NODATA: c_int = 7; +pub const EAI_NONAME: c_int = 8; +pub const EAI_SERVICE: c_int = 9; +pub const EAI_SOCKTYPE: c_int = 10; +pub const EAI_SYSTEM: c_int = 11; +pub const EAI_OVERFLOW: c_int = 14; + +pub const F_DUPFD: c_int = 0; +pub const F_DUPFD_CLOEXEC: c_int = 67; +pub const F_GETFD: c_int = 1; +pub const F_SETFD: c_int = 2; +pub const F_GETFL: c_int = 3; +pub const F_SETFL: c_int = 4; +pub const F_PREALLOCATE: c_int = 42; +pub const F_RDADVISE: c_int = 44; +pub const F_RDAHEAD: c_int = 45; +pub const F_NOCACHE: c_int = 48; +pub const F_LOG2PHYS: c_int = 49; +pub const F_GETPATH: c_int = 50; +pub const F_FULLFSYNC: c_int = 51; +pub const F_FREEZE_FS: c_int = 53; +pub const F_THAW_FS: c_int = 54; +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; // See https://github.com/apple/darwin-xnu/blob/main/bsd/sys/fcntl.h -pub const F_OFD_SETLK: ::c_int = 90; /* Acquire or release open file description lock */ -pub const F_OFD_SETLKW: ::c_int = 91; /* (as F_OFD_SETLK but blocking if conflicting lock) */ -pub const F_OFD_GETLK: ::c_int = 92; /* Examine OFD lock */ -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_TRANSFEREXTENTS: ::c_int = 110; - -pub const F_ALLOCATECONTIG: ::c_uint = 0x02; -pub const F_ALLOCATEALL: ::c_uint = 0x04; -pub const F_ALLOCATEPERSIST: ::c_uint = 0x08; - -pub const F_PEOFPOSMODE: ::c_int = 3; -pub const F_VOLPOSMODE: ::c_int = 4; - -pub const AT_FDCWD: ::c_int = -2; -pub const AT_EACCESS: ::c_int = 0x0010; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x0020; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x0040; -pub const AT_REMOVEDIR: ::c_int = 0x0080; - -pub const PTHREAD_INTROSPECTION_THREAD_CREATE: ::c_uint = 1; -pub const PTHREAD_INTROSPECTION_THREAD_START: ::c_uint = 2; -pub const PTHREAD_INTROSPECTION_THREAD_TERMINATE: ::c_uint = 3; -pub const PTHREAD_INTROSPECTION_THREAD_DESTROY: ::c_uint = 4; - -pub const TIOCMODG: ::c_ulong = 0x40047403; -pub const TIOCMODS: ::c_ulong = 0x80047404; -pub const TIOCM_LE: ::c_int = 0x1; -pub const TIOCM_DTR: ::c_int = 0x2; -pub const TIOCM_RTS: ::c_int = 0x4; -pub const TIOCM_ST: ::c_int = 0x8; -pub const TIOCM_SR: ::c_int = 0x10; -pub const TIOCM_CTS: ::c_int = 0x20; -pub const TIOCM_CAR: ::c_int = 0x40; -pub const TIOCM_CD: ::c_int = 0x40; -pub const TIOCM_RNG: ::c_int = 0x80; -pub const TIOCM_RI: ::c_int = 0x80; -pub const TIOCM_DSR: ::c_int = 0x100; -pub const TIOCEXCL: ::c_int = 0x2000740d; -pub const TIOCNXCL: ::c_int = 0x2000740e; -pub const TIOCFLUSH: ::c_ulong = 0x80047410; -pub const TIOCGETD: ::c_ulong = 0x4004741a; -pub const TIOCSETD: ::c_ulong = 0x8004741b; -pub const TIOCIXON: ::c_uint = 0x20007481; -pub const TIOCIXOFF: ::c_uint = 0x20007480; -pub const TIOCSDTR: ::c_uint = 0x20007479; -pub const TIOCCDTR: ::c_uint = 0x20007478; -pub const TIOCGPGRP: ::c_ulong = 0x40047477; -pub const TIOCSPGRP: ::c_ulong = 0x80047476; -pub const TIOCOUTQ: ::c_ulong = 0x40047473; -pub const TIOCSTI: ::c_ulong = 0x80017472; -pub const TIOCNOTTY: ::c_uint = 0x20007471; -pub const TIOCPKT: ::c_ulong = 0x80047470; -pub const TIOCPKT_DATA: ::c_int = 0x0; -pub const TIOCPKT_FLUSHREAD: ::c_int = 0x1; -pub const TIOCPKT_FLUSHWRITE: ::c_int = 0x2; -pub const TIOCPKT_STOP: ::c_int = 0x4; -pub const TIOCPKT_START: ::c_int = 0x8; -pub const TIOCPKT_NOSTOP: ::c_int = 0x10; -pub const TIOCPKT_DOSTOP: ::c_int = 0x20; -pub const TIOCPKT_IOCTL: ::c_int = 0x40; -pub const TIOCSTOP: ::c_uint = 0x2000746f; -pub const TIOCSTART: ::c_uint = 0x2000746e; -pub const TIOCMSET: ::c_ulong = 0x8004746d; -pub const TIOCMBIS: ::c_ulong = 0x8004746c; -pub const TIOCMBIC: ::c_ulong = 0x8004746b; -pub const TIOCMGET: ::c_ulong = 0x4004746a; -pub const TIOCREMOTE: ::c_ulong = 0x80047469; -pub const TIOCGWINSZ: ::c_ulong = 0x40087468; -pub const TIOCSWINSZ: ::c_ulong = 0x80087467; -pub const TIOCUCNTL: ::c_ulong = 0x80047466; -pub const TIOCSTAT: ::c_uint = 0x20007465; -pub const TIOCSCONS: ::c_uint = 0x20007463; -pub const TIOCCONS: ::c_ulong = 0x80047462; -pub const TIOCSCTTY: ::c_uint = 0x20007461; -pub const TIOCEXT: ::c_ulong = 0x80047460; -pub const TIOCSIG: ::c_uint = 0x2000745f; -pub const TIOCDRAIN: ::c_uint = 0x2000745e; -pub const TIOCMSDTRWAIT: ::c_ulong = 0x8004745b; -pub const TIOCMGDTRWAIT: ::c_ulong = 0x4004745a; -pub const TIOCSDRAINWAIT: ::c_ulong = 0x80047457; -pub const TIOCGDRAINWAIT: ::c_ulong = 0x40047456; -pub const TIOCDSIMICROCODE: ::c_uint = 0x20007455; -pub const TIOCPTYGRANT: ::c_uint = 0x20007454; -pub const TIOCPTYGNAME: ::c_uint = 0x40807453; -pub const TIOCPTYUNLK: ::c_uint = 0x20007452; - -pub const BIOCGRSIG: ::c_ulong = 0x40044272; -pub const BIOCSRSIG: ::c_ulong = 0x80044273; -pub const BIOCSDLT: ::c_ulong = 0x80044278; -pub const BIOCGSEESENT: ::c_ulong = 0x40044276; -pub const BIOCSSEESENT: ::c_ulong = 0x80044277; -pub const BIOCGDLTLIST: ::c_ulong = 0xc00c4279; - -pub const FIODTYPE: ::c_ulong = 0x4004667a; +pub const F_OFD_SETLK: c_int = 90; /* Acquire or release open file description lock */ +pub const F_OFD_SETLKW: c_int = 91; /* (as F_OFD_SETLK but blocking if conflicting lock) */ +pub const F_OFD_GETLK: c_int = 92; /* Examine OFD lock */ +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_TRANSFEREXTENTS: c_int = 110; + +pub const F_ALLOCATECONTIG: c_uint = 0x02; +pub const F_ALLOCATEALL: c_uint = 0x04; +pub const F_ALLOCATEPERSIST: c_uint = 0x08; + +pub const F_PEOFPOSMODE: c_int = 3; +pub const F_VOLPOSMODE: c_int = 4; + +pub const AT_FDCWD: c_int = -2; +pub const AT_EACCESS: c_int = 0x0010; +pub const AT_SYMLINK_NOFOLLOW: c_int = 0x0020; +pub const AT_SYMLINK_FOLLOW: c_int = 0x0040; +pub const AT_REMOVEDIR: c_int = 0x0080; + +pub const PTHREAD_INTROSPECTION_THREAD_CREATE: c_uint = 1; +pub const PTHREAD_INTROSPECTION_THREAD_START: c_uint = 2; +pub const PTHREAD_INTROSPECTION_THREAD_TERMINATE: c_uint = 3; +pub const PTHREAD_INTROSPECTION_THREAD_DESTROY: c_uint = 4; + +pub const TIOCMODG: c_ulong = 0x40047403; +pub const TIOCMODS: c_ulong = 0x80047404; +pub const TIOCM_LE: c_int = 0x1; +pub const TIOCM_DTR: c_int = 0x2; +pub const TIOCM_RTS: c_int = 0x4; +pub const TIOCM_ST: c_int = 0x8; +pub const TIOCM_SR: c_int = 0x10; +pub const TIOCM_CTS: c_int = 0x20; +pub const TIOCM_CAR: c_int = 0x40; +pub const TIOCM_CD: c_int = 0x40; +pub const TIOCM_RNG: c_int = 0x80; +pub const TIOCM_RI: c_int = 0x80; +pub const TIOCM_DSR: c_int = 0x100; +pub const TIOCEXCL: c_int = 0x2000740d; +pub const TIOCNXCL: c_int = 0x2000740e; +pub const TIOCFLUSH: c_ulong = 0x80047410; +pub const TIOCGETD: c_ulong = 0x4004741a; +pub const TIOCSETD: c_ulong = 0x8004741b; +pub const TIOCIXON: c_uint = 0x20007481; +pub const TIOCIXOFF: c_uint = 0x20007480; +pub const TIOCSDTR: c_uint = 0x20007479; +pub const TIOCCDTR: c_uint = 0x20007478; +pub const TIOCGPGRP: c_ulong = 0x40047477; +pub const TIOCSPGRP: c_ulong = 0x80047476; +pub const TIOCOUTQ: c_ulong = 0x40047473; +pub const TIOCSTI: c_ulong = 0x80017472; +pub const TIOCNOTTY: c_uint = 0x20007471; +pub const TIOCPKT: c_ulong = 0x80047470; +pub const TIOCPKT_DATA: c_int = 0x0; +pub const TIOCPKT_FLUSHREAD: c_int = 0x1; +pub const TIOCPKT_FLUSHWRITE: c_int = 0x2; +pub const TIOCPKT_STOP: c_int = 0x4; +pub const TIOCPKT_START: c_int = 0x8; +pub const TIOCPKT_NOSTOP: c_int = 0x10; +pub const TIOCPKT_DOSTOP: c_int = 0x20; +pub const TIOCPKT_IOCTL: c_int = 0x40; +pub const TIOCSTOP: c_uint = 0x2000746f; +pub const TIOCSTART: c_uint = 0x2000746e; +pub const TIOCMSET: c_ulong = 0x8004746d; +pub const TIOCMBIS: c_ulong = 0x8004746c; +pub const TIOCMBIC: c_ulong = 0x8004746b; +pub const TIOCMGET: c_ulong = 0x4004746a; +pub const TIOCREMOTE: c_ulong = 0x80047469; +pub const TIOCGWINSZ: c_ulong = 0x40087468; +pub const TIOCSWINSZ: c_ulong = 0x80087467; +pub const TIOCUCNTL: c_ulong = 0x80047466; +pub const TIOCSTAT: c_uint = 0x20007465; +pub const TIOCSCONS: c_uint = 0x20007463; +pub const TIOCCONS: c_ulong = 0x80047462; +pub const TIOCSCTTY: c_uint = 0x20007461; +pub const TIOCEXT: c_ulong = 0x80047460; +pub const TIOCSIG: c_uint = 0x2000745f; +pub const TIOCDRAIN: c_uint = 0x2000745e; +pub const TIOCMSDTRWAIT: c_ulong = 0x8004745b; +pub const TIOCMGDTRWAIT: c_ulong = 0x4004745a; +pub const TIOCSDRAINWAIT: c_ulong = 0x80047457; +pub const TIOCGDRAINWAIT: c_ulong = 0x40047456; +pub const TIOCDSIMICROCODE: c_uint = 0x20007455; +pub const TIOCPTYGRANT: c_uint = 0x20007454; +pub const TIOCPTYGNAME: c_uint = 0x40807453; +pub const TIOCPTYUNLK: c_uint = 0x20007452; + +pub const BIOCGRSIG: c_ulong = 0x40044272; +pub const BIOCSRSIG: c_ulong = 0x80044273; +pub const BIOCSDLT: c_ulong = 0x80044278; +pub const BIOCGSEESENT: c_ulong = 0x40044276; +pub const BIOCSSEESENT: c_ulong = 0x80044277; +pub const BIOCGDLTLIST: c_ulong = 0xc00c4279; + +pub const FIODTYPE: c_ulong = 0x4004667a; pub const B0: speed_t = 0; pub const B50: speed_t = 50; @@ -3938,113 +3944,113 @@ pub const B230400: speed_t = 230400; pub const EXTA: speed_t = 19200; pub const EXTB: speed_t = 38400; -pub const SIGTRAP: ::c_int = 5; - -pub const GLOB_APPEND: ::c_int = 0x0001; -pub const GLOB_DOOFFS: ::c_int = 0x0002; -pub const GLOB_ERR: ::c_int = 0x0004; -pub const GLOB_MARK: ::c_int = 0x0008; -pub const GLOB_NOCHECK: ::c_int = 0x0010; -pub const GLOB_NOSORT: ::c_int = 0x0020; -pub const GLOB_NOESCAPE: ::c_int = 0x2000; - -pub const GLOB_NOSPACE: ::c_int = -1; -pub const GLOB_ABORTED: ::c_int = -2; -pub const GLOB_NOMATCH: ::c_int = -3; - -pub const POSIX_MADV_NORMAL: ::c_int = 0; -pub const POSIX_MADV_RANDOM: ::c_int = 1; -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 _SC_IOV_MAX: ::c_int = 56; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 70; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 71; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 73; -pub const _SC_MQ_PRIO_MAX: ::c_int = 75; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 82; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 83; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 85; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 86; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 87; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 88; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 89; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 90; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 91; -pub const _SC_THREAD_STACK_MIN: ::c_int = 93; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 94; -pub const _SC_THREADS: ::c_int = 96; -pub const _SC_TTY_NAME_MAX: ::c_int = 101; -pub const _SC_ATEXIT_MAX: ::c_int = 107; -pub const _SC_XOPEN_CRYPT: ::c_int = 108; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 109; -pub const _SC_XOPEN_LEGACY: ::c_int = 110; -pub const _SC_XOPEN_REALTIME: ::c_int = 111; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 112; -pub const _SC_XOPEN_SHM: ::c_int = 113; -pub const _SC_XOPEN_UNIX: ::c_int = 115; -pub const _SC_XOPEN_VERSION: ::c_int = 116; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 121; -pub const _SC_PHYS_PAGES: ::c_int = 200; - -pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 2; -pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; -pub const PTHREAD_CREATE_JOINABLE: ::c_int = 1; -pub const PTHREAD_CREATE_DETACHED: ::c_int = 2; -pub const PTHREAD_INHERIT_SCHED: ::c_int = 1; -pub const PTHREAD_EXPLICIT_SCHED: ::c_int = 2; -pub const PTHREAD_CANCEL_ENABLE: ::c_int = 0x01; -pub const PTHREAD_CANCEL_DISABLE: ::c_int = 0x00; -pub const PTHREAD_CANCEL_DEFERRED: ::c_int = 0x02; -pub const PTHREAD_CANCEL_ASYNCHRONOUS: ::c_int = 0x00; -pub const PTHREAD_CANCELED: *mut ::c_void = 1 as *mut ::c_void; -pub const PTHREAD_SCOPE_SYSTEM: ::c_int = 1; -pub const PTHREAD_SCOPE_PROCESS: ::c_int = 2; -pub const PTHREAD_PRIO_NONE: ::c_int = 0; -pub const PTHREAD_PRIO_INHERIT: ::c_int = 1; -pub const PTHREAD_PRIO_PROTECT: ::c_int = 2; +pub const SIGTRAP: c_int = 5; + +pub const GLOB_APPEND: c_int = 0x0001; +pub const GLOB_DOOFFS: c_int = 0x0002; +pub const GLOB_ERR: c_int = 0x0004; +pub const GLOB_MARK: c_int = 0x0008; +pub const GLOB_NOCHECK: c_int = 0x0010; +pub const GLOB_NOSORT: c_int = 0x0020; +pub const GLOB_NOESCAPE: c_int = 0x2000; + +pub const GLOB_NOSPACE: c_int = -1; +pub const GLOB_ABORTED: c_int = -2; +pub const GLOB_NOMATCH: c_int = -3; + +pub const POSIX_MADV_NORMAL: c_int = 0; +pub const POSIX_MADV_RANDOM: c_int = 1; +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 _SC_IOV_MAX: c_int = 56; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 70; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 71; +pub const _SC_LOGIN_NAME_MAX: c_int = 73; +pub const _SC_MQ_PRIO_MAX: c_int = 75; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 82; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 83; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 85; +pub const _SC_THREAD_KEYS_MAX: c_int = 86; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 87; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 88; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 89; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 90; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 91; +pub const _SC_THREAD_STACK_MIN: c_int = 93; +pub const _SC_THREAD_THREADS_MAX: c_int = 94; +pub const _SC_THREADS: c_int = 96; +pub const _SC_TTY_NAME_MAX: c_int = 101; +pub const _SC_ATEXIT_MAX: c_int = 107; +pub const _SC_XOPEN_CRYPT: c_int = 108; +pub const _SC_XOPEN_ENH_I18N: c_int = 109; +pub const _SC_XOPEN_LEGACY: c_int = 110; +pub const _SC_XOPEN_REALTIME: c_int = 111; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 112; +pub const _SC_XOPEN_SHM: c_int = 113; +pub const _SC_XOPEN_UNIX: c_int = 115; +pub const _SC_XOPEN_VERSION: c_int = 116; +pub const _SC_XOPEN_XCU_VERSION: c_int = 121; +pub const _SC_PHYS_PAGES: c_int = 200; + +pub const PTHREAD_PROCESS_PRIVATE: c_int = 2; +pub const PTHREAD_PROCESS_SHARED: c_int = 1; +pub const PTHREAD_CREATE_JOINABLE: c_int = 1; +pub const PTHREAD_CREATE_DETACHED: c_int = 2; +pub const PTHREAD_INHERIT_SCHED: c_int = 1; +pub const PTHREAD_EXPLICIT_SCHED: c_int = 2; +pub const PTHREAD_CANCEL_ENABLE: c_int = 0x01; +pub const PTHREAD_CANCEL_DISABLE: c_int = 0x00; +pub const PTHREAD_CANCEL_DEFERRED: c_int = 0x02; +pub const PTHREAD_CANCEL_ASYNCHRONOUS: c_int = 0x00; +pub const PTHREAD_CANCELED: *mut c_void = 1 as *mut c_void; +pub const PTHREAD_SCOPE_SYSTEM: c_int = 1; +pub const PTHREAD_SCOPE_PROCESS: c_int = 2; +pub const PTHREAD_PRIO_NONE: c_int = 0; +pub const PTHREAD_PRIO_INHERIT: c_int = 1; +pub const PTHREAD_PRIO_PROTECT: c_int = 2; #[cfg(target_arch = "aarch64")] -pub const PTHREAD_STACK_MIN: ::size_t = 16384; +pub const PTHREAD_STACK_MIN: size_t = 16384; #[cfg(not(target_arch = "aarch64"))] -pub const PTHREAD_STACK_MIN: ::size_t = 8192; - -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_AS: ::c_int = 5; -pub const RLIMIT_RSS: ::c_int = RLIMIT_AS; -pub const RLIMIT_MEMLOCK: ::c_int = 6; -pub const RLIMIT_NPROC: ::c_int = 7; -pub const RLIMIT_NOFILE: ::c_int = 8; +pub const PTHREAD_STACK_MIN: size_t = 8192; + +pub const RLIMIT_CPU: c_int = 0; +pub const RLIMIT_FSIZE: c_int = 1; +pub const RLIMIT_DATA: c_int = 2; +pub const RLIMIT_STACK: c_int = 3; +pub const RLIMIT_CORE: c_int = 4; +pub const RLIMIT_AS: c_int = 5; +pub const RLIMIT_RSS: c_int = RLIMIT_AS; +pub const RLIMIT_MEMLOCK: c_int = 6; +pub const RLIMIT_NPROC: c_int = 7; +pub const RLIMIT_NOFILE: c_int = 8; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIM_NLIMITS: ::c_int = 9; -pub const _RLIMIT_POSIX_FLAG: ::c_int = 0x1000; +pub const RLIM_NLIMITS: c_int = 9; +pub const _RLIMIT_POSIX_FLAG: c_int = 0x1000; pub const RLIM_INFINITY: rlim_t = 0x7fff_ffff_ffff_ffff; -pub const RUSAGE_SELF: ::c_int = 0; -pub const RUSAGE_CHILDREN: ::c_int = -1; - -pub const MADV_NORMAL: ::c_int = 0; -pub const MADV_RANDOM: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_WILLNEED: ::c_int = 3; -pub const MADV_DONTNEED: ::c_int = 4; -pub const MADV_FREE: ::c_int = 5; -pub const MADV_ZERO_WIRED_PAGES: ::c_int = 6; -pub const MADV_FREE_REUSABLE: ::c_int = 7; -pub const MADV_FREE_REUSE: ::c_int = 8; -pub const MADV_CAN_REUSE: ::c_int = 9; - -pub const MINCORE_INCORE: ::c_int = 0x1; -pub const MINCORE_REFERENCED: ::c_int = 0x2; -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 RUSAGE_SELF: c_int = 0; +pub const RUSAGE_CHILDREN: c_int = -1; + +pub const MADV_NORMAL: c_int = 0; +pub const MADV_RANDOM: c_int = 1; +pub const MADV_SEQUENTIAL: c_int = 2; +pub const MADV_WILLNEED: c_int = 3; +pub const MADV_DONTNEED: c_int = 4; +pub const MADV_FREE: c_int = 5; +pub const MADV_ZERO_WIRED_PAGES: c_int = 6; +pub const MADV_FREE_REUSABLE: c_int = 7; +pub const MADV_FREE_REUSE: c_int = 8; +pub const MADV_CAN_REUSE: c_int = 9; + +pub const MINCORE_INCORE: c_int = 0x1; +pub const MINCORE_REFERENCED: c_int = 0x2; +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; @@ -4055,589 +4061,589 @@ pub const CTLIOCGINFO: c_ulong = 0xc0644e03; // IPPROTO_IP defined in src/unix/mod.rs /// IP6 hop-by-hop options -pub const IPPROTO_HOPOPTS: ::c_int = 0; +pub const IPPROTO_HOPOPTS: c_int = 0; // IPPROTO_ICMP defined in src/unix/mod.rs /// group mgmt protocol -pub const IPPROTO_IGMP: ::c_int = 2; +pub const IPPROTO_IGMP: c_int = 2; /// gateway2 (deprecated) -pub const IPPROTO_GGP: ::c_int = 3; +pub const IPPROTO_GGP: c_int = 3; /// for compatibility -pub const IPPROTO_IPIP: ::c_int = 4; +pub const IPPROTO_IPIP: c_int = 4; // IPPROTO_TCP defined in src/unix/mod.rs /// Stream protocol II. -pub const IPPROTO_ST: ::c_int = 7; +pub const IPPROTO_ST: c_int = 7; /// exterior gateway protocol -pub const IPPROTO_EGP: ::c_int = 8; +pub const IPPROTO_EGP: c_int = 8; /// private interior gateway -pub const IPPROTO_PIGP: ::c_int = 9; +pub const IPPROTO_PIGP: c_int = 9; /// BBN RCC Monitoring -pub const IPPROTO_RCCMON: ::c_int = 10; +pub const IPPROTO_RCCMON: c_int = 10; /// network voice protocol -pub const IPPROTO_NVPII: ::c_int = 11; +pub const IPPROTO_NVPII: c_int = 11; /// pup -pub const IPPROTO_PUP: ::c_int = 12; +pub const IPPROTO_PUP: c_int = 12; /// Argus -pub const IPPROTO_ARGUS: ::c_int = 13; +pub const IPPROTO_ARGUS: c_int = 13; /// EMCON -pub const IPPROTO_EMCON: ::c_int = 14; +pub const IPPROTO_EMCON: c_int = 14; /// Cross Net Debugger -pub const IPPROTO_XNET: ::c_int = 15; +pub const IPPROTO_XNET: c_int = 15; /// Chaos -pub const IPPROTO_CHAOS: ::c_int = 16; +pub const IPPROTO_CHAOS: c_int = 16; // IPPROTO_UDP defined in src/unix/mod.rs /// Multiplexing -pub const IPPROTO_MUX: ::c_int = 18; +pub const IPPROTO_MUX: c_int = 18; /// DCN Measurement Subsystems -pub const IPPROTO_MEAS: ::c_int = 19; +pub const IPPROTO_MEAS: c_int = 19; /// Host Monitoring -pub const IPPROTO_HMP: ::c_int = 20; +pub const IPPROTO_HMP: c_int = 20; /// Packet Radio Measurement -pub const IPPROTO_PRM: ::c_int = 21; +pub const IPPROTO_PRM: c_int = 21; /// xns idp -pub const IPPROTO_IDP: ::c_int = 22; +pub const IPPROTO_IDP: c_int = 22; /// Trunk-1 -pub const IPPROTO_TRUNK1: ::c_int = 23; +pub const IPPROTO_TRUNK1: c_int = 23; /// Trunk-2 -pub const IPPROTO_TRUNK2: ::c_int = 24; +pub const IPPROTO_TRUNK2: c_int = 24; /// Leaf-1 -pub const IPPROTO_LEAF1: ::c_int = 25; +pub const IPPROTO_LEAF1: c_int = 25; /// Leaf-2 -pub const IPPROTO_LEAF2: ::c_int = 26; +pub const IPPROTO_LEAF2: c_int = 26; /// Reliable Data -pub const IPPROTO_RDP: ::c_int = 27; +pub const IPPROTO_RDP: c_int = 27; /// Reliable Transaction -pub const IPPROTO_IRTP: ::c_int = 28; +pub const IPPROTO_IRTP: c_int = 28; /// tp-4 w/ class negotiation -pub const IPPROTO_TP: ::c_int = 29; +pub const IPPROTO_TP: c_int = 29; /// Bulk Data Transfer -pub const IPPROTO_BLT: ::c_int = 30; +pub const IPPROTO_BLT: c_int = 30; /// Network Services -pub const IPPROTO_NSP: ::c_int = 31; +pub const IPPROTO_NSP: c_int = 31; /// Merit Internodal -pub const IPPROTO_INP: ::c_int = 32; +pub const IPPROTO_INP: c_int = 32; /// Sequential Exchange -pub const IPPROTO_SEP: ::c_int = 33; +pub const IPPROTO_SEP: c_int = 33; /// Third Party Connect -pub const IPPROTO_3PC: ::c_int = 34; +pub const IPPROTO_3PC: c_int = 34; /// InterDomain Policy Routing -pub const IPPROTO_IDPR: ::c_int = 35; +pub const IPPROTO_IDPR: c_int = 35; /// XTP -pub const IPPROTO_XTP: ::c_int = 36; +pub const IPPROTO_XTP: c_int = 36; /// Datagram Delivery -pub const IPPROTO_DDP: ::c_int = 37; +pub const IPPROTO_DDP: c_int = 37; /// Control Message Transport -pub const IPPROTO_CMTP: ::c_int = 38; +pub const IPPROTO_CMTP: c_int = 38; /// TP++ Transport -pub const IPPROTO_TPXX: ::c_int = 39; +pub const IPPROTO_TPXX: c_int = 39; /// IL transport protocol -pub const IPPROTO_IL: ::c_int = 40; +pub const IPPROTO_IL: c_int = 40; // IPPROTO_IPV6 defined in src/unix/mod.rs /// Source Demand Routing -pub const IPPROTO_SDRP: ::c_int = 42; +pub const IPPROTO_SDRP: c_int = 42; /// IP6 routing header -pub const IPPROTO_ROUTING: ::c_int = 43; +pub const IPPROTO_ROUTING: c_int = 43; /// IP6 fragmentation header -pub const IPPROTO_FRAGMENT: ::c_int = 44; +pub const IPPROTO_FRAGMENT: c_int = 44; /// InterDomain Routing -pub const IPPROTO_IDRP: ::c_int = 45; +pub const IPPROTO_IDRP: c_int = 45; /// resource reservation -pub const IPPROTO_RSVP: ::c_int = 46; +pub const IPPROTO_RSVP: c_int = 46; /// General Routing Encap. -pub const IPPROTO_GRE: ::c_int = 47; +pub const IPPROTO_GRE: c_int = 47; /// Mobile Host Routing -pub const IPPROTO_MHRP: ::c_int = 48; +pub const IPPROTO_MHRP: c_int = 48; /// BHA -pub const IPPROTO_BHA: ::c_int = 49; +pub const IPPROTO_BHA: c_int = 49; /// IP6 Encap Sec. Payload -pub const IPPROTO_ESP: ::c_int = 50; +pub const IPPROTO_ESP: c_int = 50; /// IP6 Auth Header -pub const IPPROTO_AH: ::c_int = 51; +pub const IPPROTO_AH: c_int = 51; /// Integ. Net Layer Security -pub const IPPROTO_INLSP: ::c_int = 52; +pub const IPPROTO_INLSP: c_int = 52; /// IP with encryption -pub const IPPROTO_SWIPE: ::c_int = 53; +pub const IPPROTO_SWIPE: c_int = 53; /// Next Hop Resolution -pub const IPPROTO_NHRP: ::c_int = 54; +pub const IPPROTO_NHRP: c_int = 54; /* 55-57: Unassigned */ // IPPROTO_ICMPV6 defined in src/unix/mod.rs /// IP6 no next header -pub const IPPROTO_NONE: ::c_int = 59; +pub const IPPROTO_NONE: c_int = 59; /// IP6 destination option -pub const IPPROTO_DSTOPTS: ::c_int = 60; +pub const IPPROTO_DSTOPTS: c_int = 60; /// any host internal protocol -pub const IPPROTO_AHIP: ::c_int = 61; +pub const IPPROTO_AHIP: c_int = 61; /// CFTP -pub const IPPROTO_CFTP: ::c_int = 62; +pub const IPPROTO_CFTP: c_int = 62; /// "hello" routing protocol -pub const IPPROTO_HELLO: ::c_int = 63; +pub const IPPROTO_HELLO: c_int = 63; /// SATNET/Backroom EXPAK -pub const IPPROTO_SATEXPAK: ::c_int = 64; +pub const IPPROTO_SATEXPAK: c_int = 64; /// Kryptolan -pub const IPPROTO_KRYPTOLAN: ::c_int = 65; +pub const IPPROTO_KRYPTOLAN: c_int = 65; /// Remote Virtual Disk -pub const IPPROTO_RVD: ::c_int = 66; +pub const IPPROTO_RVD: c_int = 66; /// Pluribus Packet Core -pub const IPPROTO_IPPC: ::c_int = 67; +pub const IPPROTO_IPPC: c_int = 67; /// Any distributed FS -pub const IPPROTO_ADFS: ::c_int = 68; +pub const IPPROTO_ADFS: c_int = 68; /// Satnet Monitoring -pub const IPPROTO_SATMON: ::c_int = 69; +pub const IPPROTO_SATMON: c_int = 69; /// VISA Protocol -pub const IPPROTO_VISA: ::c_int = 70; +pub const IPPROTO_VISA: c_int = 70; /// Packet Core Utility -pub const IPPROTO_IPCV: ::c_int = 71; +pub const IPPROTO_IPCV: c_int = 71; /// Comp. Prot. Net. Executive -pub const IPPROTO_CPNX: ::c_int = 72; +pub const IPPROTO_CPNX: c_int = 72; /// Comp. Prot. HeartBeat -pub const IPPROTO_CPHB: ::c_int = 73; +pub const IPPROTO_CPHB: c_int = 73; /// Wang Span Network -pub const IPPROTO_WSN: ::c_int = 74; +pub const IPPROTO_WSN: c_int = 74; /// Packet Video Protocol -pub const IPPROTO_PVP: ::c_int = 75; +pub const IPPROTO_PVP: c_int = 75; /// BackRoom SATNET Monitoring -pub const IPPROTO_BRSATMON: ::c_int = 76; +pub const IPPROTO_BRSATMON: c_int = 76; /// Sun net disk proto (temp.) -pub const IPPROTO_ND: ::c_int = 77; +pub const IPPROTO_ND: c_int = 77; /// WIDEBAND Monitoring -pub const IPPROTO_WBMON: ::c_int = 78; +pub const IPPROTO_WBMON: c_int = 78; /// WIDEBAND EXPAK -pub const IPPROTO_WBEXPAK: ::c_int = 79; +pub const IPPROTO_WBEXPAK: c_int = 79; /// ISO cnlp -pub const IPPROTO_EON: ::c_int = 80; +pub const IPPROTO_EON: c_int = 80; /// VMTP -pub const IPPROTO_VMTP: ::c_int = 81; +pub const IPPROTO_VMTP: c_int = 81; /// Secure VMTP -pub const IPPROTO_SVMTP: ::c_int = 82; +pub const IPPROTO_SVMTP: c_int = 82; /// Banyon VINES -pub const IPPROTO_VINES: ::c_int = 83; +pub const IPPROTO_VINES: c_int = 83; /// TTP -pub const IPPROTO_TTP: ::c_int = 84; +pub const IPPROTO_TTP: c_int = 84; /// NSFNET-IGP -pub const IPPROTO_IGP: ::c_int = 85; +pub const IPPROTO_IGP: c_int = 85; /// dissimilar gateway prot. -pub const IPPROTO_DGP: ::c_int = 86; +pub const IPPROTO_DGP: c_int = 86; /// TCF -pub const IPPROTO_TCF: ::c_int = 87; +pub const IPPROTO_TCF: c_int = 87; /// Cisco/GXS IGRP -pub const IPPROTO_IGRP: ::c_int = 88; +pub const IPPROTO_IGRP: c_int = 88; /// OSPFIGP -pub const IPPROTO_OSPFIGP: ::c_int = 89; +pub const IPPROTO_OSPFIGP: c_int = 89; /// Strite RPC protocol -pub const IPPROTO_SRPC: ::c_int = 90; +pub const IPPROTO_SRPC: c_int = 90; /// Locus Address Resoloution -pub const IPPROTO_LARP: ::c_int = 91; +pub const IPPROTO_LARP: c_int = 91; /// Multicast Transport -pub const IPPROTO_MTP: ::c_int = 92; +pub const IPPROTO_MTP: c_int = 92; /// AX.25 Frames -pub const IPPROTO_AX25: ::c_int = 93; +pub const IPPROTO_AX25: c_int = 93; /// IP encapsulated in IP -pub const IPPROTO_IPEIP: ::c_int = 94; +pub const IPPROTO_IPEIP: c_int = 94; /// Mobile Int.ing control -pub const IPPROTO_MICP: ::c_int = 95; +pub const IPPROTO_MICP: c_int = 95; /// Semaphore Comm. security -pub const IPPROTO_SCCSP: ::c_int = 96; +pub const IPPROTO_SCCSP: c_int = 96; /// Ethernet IP encapsulation -pub const IPPROTO_ETHERIP: ::c_int = 97; +pub const IPPROTO_ETHERIP: c_int = 97; /// encapsulation header -pub const IPPROTO_ENCAP: ::c_int = 98; +pub const IPPROTO_ENCAP: c_int = 98; /// any private encr. scheme -pub const IPPROTO_APES: ::c_int = 99; +pub const IPPROTO_APES: c_int = 99; /// GMTP -pub const IPPROTO_GMTP: ::c_int = 100; +pub const IPPROTO_GMTP: c_int = 100; /* 101-254: Partly Unassigned */ /// Protocol Independent Mcast -pub const IPPROTO_PIM: ::c_int = 103; +pub const IPPROTO_PIM: c_int = 103; /// payload compression (IPComp) -pub const IPPROTO_IPCOMP: ::c_int = 108; +pub const IPPROTO_IPCOMP: c_int = 108; /// PGM -pub const IPPROTO_PGM: ::c_int = 113; +pub const IPPROTO_PGM: c_int = 113; /// SCTP -pub const IPPROTO_SCTP: ::c_int = 132; +pub const IPPROTO_SCTP: c_int = 132; /* 255: Reserved */ /* BSD Private, local use, namespace incursion */ /// divert pseudo-protocol -pub const IPPROTO_DIVERT: ::c_int = 254; +pub const IPPROTO_DIVERT: c_int = 254; /// raw IP packet -pub const IPPROTO_RAW: ::c_int = 255; -pub const IPPROTO_MAX: ::c_int = 256; +pub const IPPROTO_RAW: c_int = 255; +pub const IPPROTO_MAX: c_int = 256; /// last return value of *_input(), meaning "all job for this pkt is done". -pub const IPPROTO_DONE: ::c_int = 257; - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_LOCAL: ::c_int = 1; -pub const AF_UNIX: ::c_int = AF_LOCAL; -pub const AF_INET: ::c_int = 2; -pub const AF_IMPLINK: ::c_int = 3; -pub const AF_PUP: ::c_int = 4; -pub const AF_CHAOS: ::c_int = 5; -pub const AF_NS: ::c_int = 6; -pub const AF_ISO: ::c_int = 7; -pub const AF_OSI: ::c_int = AF_ISO; -pub const AF_ECMA: ::c_int = 8; -pub const AF_DATAKIT: ::c_int = 9; -pub const AF_CCITT: ::c_int = 10; -pub const AF_SNA: ::c_int = 11; -pub const AF_DECnet: ::c_int = 12; -pub const AF_DLI: ::c_int = 13; -pub const AF_LAT: ::c_int = 14; -pub const AF_HYLINK: ::c_int = 15; -pub const AF_APPLETALK: ::c_int = 16; -pub const AF_ROUTE: ::c_int = 17; -pub const AF_LINK: ::c_int = 18; -pub const pseudo_AF_XTP: ::c_int = 19; -pub const AF_COIP: ::c_int = 20; -pub const AF_CNT: ::c_int = 21; -pub const pseudo_AF_RTIP: ::c_int = 22; -pub const AF_IPX: ::c_int = 23; -pub const AF_SIP: ::c_int = 24; -pub const pseudo_AF_PIP: ::c_int = 25; -pub const AF_NDRV: ::c_int = 27; -pub const AF_ISDN: ::c_int = 28; -pub const AF_E164: ::c_int = AF_ISDN; -pub const pseudo_AF_KEY: ::c_int = 29; -pub const AF_INET6: ::c_int = 30; -pub const AF_NATM: ::c_int = 31; -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; -pub const SYSPROTO_CONTROL: ::c_int = 2; - -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_LOCAL: ::c_int = AF_LOCAL; -pub const PF_UNIX: ::c_int = PF_LOCAL; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_IMPLINK: ::c_int = AF_IMPLINK; -pub const PF_PUP: ::c_int = AF_PUP; -pub const PF_CHAOS: ::c_int = AF_CHAOS; -pub const PF_NS: ::c_int = AF_NS; -pub const PF_ISO: ::c_int = AF_ISO; -pub const PF_OSI: ::c_int = AF_ISO; -pub const PF_ECMA: ::c_int = AF_ECMA; -pub const PF_DATAKIT: ::c_int = AF_DATAKIT; -pub const PF_CCITT: ::c_int = AF_CCITT; -pub const PF_SNA: ::c_int = AF_SNA; -pub const PF_DECnet: ::c_int = AF_DECnet; -pub const PF_DLI: ::c_int = AF_DLI; -pub const PF_LAT: ::c_int = AF_LAT; -pub const PF_HYLINK: ::c_int = AF_HYLINK; -pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_LINK: ::c_int = AF_LINK; -pub const PF_XTP: ::c_int = pseudo_AF_XTP; -pub const PF_COIP: ::c_int = AF_COIP; -pub const PF_CNT: ::c_int = AF_CNT; -pub const PF_SIP: ::c_int = AF_SIP; -pub const PF_IPX: ::c_int = AF_IPX; -pub const PF_RTIP: ::c_int = pseudo_AF_RTIP; -pub const PF_PIP: ::c_int = pseudo_AF_PIP; -pub const PF_NDRV: ::c_int = AF_NDRV; -pub const PF_ISDN: ::c_int = AF_ISDN; -pub const PF_KEY: ::c_int = pseudo_AF_KEY; -pub const PF_INET6: ::c_int = AF_INET6; -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; -pub const NET_RT_IFLIST: ::c_int = 3; - -pub const SOMAXCONN: ::c_int = 128; - -pub const SOCK_MAXADDRLEN: ::c_int = 255; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const IP_TTL: ::c_int = 4; -pub const IP_HDRINCL: ::c_int = 2; -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; -pub const IP_DONTFRAG: ::c_int = 28; -pub const IPV6_JOIN_GROUP: ::c_int = 12; -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; -pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 70; -pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 71; -pub const IP_BLOCK_SOURCE: ::c_int = 72; -pub const IP_UNBLOCK_SOURCE: ::c_int = 73; -pub const IPV6_BOUND_IF: ::c_int = 125; - -pub const TCP_NOPUSH: ::c_int = 4; -pub const TCP_NOOPT: ::c_int = 8; -pub const TCP_KEEPALIVE: ::c_int = 0x10; -pub const TCP_KEEPINTVL: ::c_int = 0x101; -pub const TCP_KEEPCNT: ::c_int = 0x102; +pub const IPPROTO_DONE: c_int = 257; + +pub const AF_UNSPEC: c_int = 0; +pub const AF_LOCAL: c_int = 1; +pub const AF_UNIX: c_int = AF_LOCAL; +pub const AF_INET: c_int = 2; +pub const AF_IMPLINK: c_int = 3; +pub const AF_PUP: c_int = 4; +pub const AF_CHAOS: c_int = 5; +pub const AF_NS: c_int = 6; +pub const AF_ISO: c_int = 7; +pub const AF_OSI: c_int = AF_ISO; +pub const AF_ECMA: c_int = 8; +pub const AF_DATAKIT: c_int = 9; +pub const AF_CCITT: c_int = 10; +pub const AF_SNA: c_int = 11; +pub const AF_DECnet: c_int = 12; +pub const AF_DLI: c_int = 13; +pub const AF_LAT: c_int = 14; +pub const AF_HYLINK: c_int = 15; +pub const AF_APPLETALK: c_int = 16; +pub const AF_ROUTE: c_int = 17; +pub const AF_LINK: c_int = 18; +pub const pseudo_AF_XTP: c_int = 19; +pub const AF_COIP: c_int = 20; +pub const AF_CNT: c_int = 21; +pub const pseudo_AF_RTIP: c_int = 22; +pub const AF_IPX: c_int = 23; +pub const AF_SIP: c_int = 24; +pub const pseudo_AF_PIP: c_int = 25; +pub const AF_NDRV: c_int = 27; +pub const AF_ISDN: c_int = 28; +pub const AF_E164: c_int = AF_ISDN; +pub const pseudo_AF_KEY: c_int = 29; +pub const AF_INET6: c_int = 30; +pub const AF_NATM: c_int = 31; +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; +pub const SYSPROTO_CONTROL: c_int = 2; + +pub const PF_UNSPEC: c_int = AF_UNSPEC; +pub const PF_LOCAL: c_int = AF_LOCAL; +pub const PF_UNIX: c_int = PF_LOCAL; +pub const PF_INET: c_int = AF_INET; +pub const PF_IMPLINK: c_int = AF_IMPLINK; +pub const PF_PUP: c_int = AF_PUP; +pub const PF_CHAOS: c_int = AF_CHAOS; +pub const PF_NS: c_int = AF_NS; +pub const PF_ISO: c_int = AF_ISO; +pub const PF_OSI: c_int = AF_ISO; +pub const PF_ECMA: c_int = AF_ECMA; +pub const PF_DATAKIT: c_int = AF_DATAKIT; +pub const PF_CCITT: c_int = AF_CCITT; +pub const PF_SNA: c_int = AF_SNA; +pub const PF_DECnet: c_int = AF_DECnet; +pub const PF_DLI: c_int = AF_DLI; +pub const PF_LAT: c_int = AF_LAT; +pub const PF_HYLINK: c_int = AF_HYLINK; +pub const PF_APPLETALK: c_int = AF_APPLETALK; +pub const PF_ROUTE: c_int = AF_ROUTE; +pub const PF_LINK: c_int = AF_LINK; +pub const PF_XTP: c_int = pseudo_AF_XTP; +pub const PF_COIP: c_int = AF_COIP; +pub const PF_CNT: c_int = AF_CNT; +pub const PF_SIP: c_int = AF_SIP; +pub const PF_IPX: c_int = AF_IPX; +pub const PF_RTIP: c_int = pseudo_AF_RTIP; +pub const PF_PIP: c_int = pseudo_AF_PIP; +pub const PF_NDRV: c_int = AF_NDRV; +pub const PF_ISDN: c_int = AF_ISDN; +pub const PF_KEY: c_int = pseudo_AF_KEY; +pub const PF_INET6: c_int = AF_INET6; +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; +pub const NET_RT_IFLIST: c_int = 3; + +pub const SOMAXCONN: c_int = 128; + +pub const SOCK_MAXADDRLEN: c_int = 255; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; +pub const SOCK_RAW: c_int = 3; +pub const SOCK_RDM: c_int = 4; +pub const SOCK_SEQPACKET: c_int = 5; +pub const IP_TTL: c_int = 4; +pub const IP_HDRINCL: c_int = 2; +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; +pub const IP_DONTFRAG: c_int = 28; +pub const IPV6_JOIN_GROUP: c_int = 12; +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; +pub const IP_ADD_SOURCE_MEMBERSHIP: c_int = 70; +pub const IP_DROP_SOURCE_MEMBERSHIP: c_int = 71; +pub const IP_BLOCK_SOURCE: c_int = 72; +pub const IP_UNBLOCK_SOURCE: c_int = 73; +pub const IPV6_BOUND_IF: c_int = 125; + +pub const TCP_NOPUSH: c_int = 4; +pub const TCP_NOOPT: c_int = 8; +pub const TCP_KEEPALIVE: c_int = 0x10; +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 TCP_FASTOPEN: c_int = 0x105; +pub const TCP_CONNECTION_INFO: c_int = 0x106; -pub const SOL_LOCAL: ::c_int = 0; +pub const SOL_LOCAL: c_int = 0; /// Retrieve peer credentials. -pub const LOCAL_PEERCRED: ::c_int = 0x001; +pub const LOCAL_PEERCRED: c_int = 0x001; /// Retrieve peer PID. -pub const LOCAL_PEERPID: ::c_int = 0x002; +pub const LOCAL_PEERPID: c_int = 0x002; /// Retrieve effective peer PID. -pub const LOCAL_PEEREPID: ::c_int = 0x003; +pub const LOCAL_PEEREPID: c_int = 0x003; /// Retrieve peer UUID. -pub const LOCAL_PEERUUID: ::c_int = 0x004; +pub const LOCAL_PEERUUID: c_int = 0x004; /// Retrieve effective peer UUID. -pub const LOCAL_PEEREUUID: ::c_int = 0x005; +pub const LOCAL_PEEREUUID: c_int = 0x005; /// Retrieve peer audit token. -pub const LOCAL_PEERTOKEN: ::c_int = 0x006; - -pub const SOL_SOCKET: ::c_int = 0xffff; - -pub const SO_DEBUG: ::c_int = 0x01; -pub const SO_ACCEPTCONN: ::c_int = 0x0002; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_TIMESTAMP: ::c_int = 0x0400; -pub const SO_TIMESTAMP_MONOTONIC: ::c_int = 0x0800; -pub const SO_DONTTRUNC: ::c_int = 0x2000; -pub const SO_WANTMORE: ::c_int = 0x4000; -pub const SO_WANTOOBFLAG: ::c_int = 0x8000; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVLOWAT: ::c_int = 0x1004; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_TYPE: ::c_int = 0x1008; -pub const SO_LABEL: ::c_int = 0x1010; -pub const SO_PEERLABEL: ::c_int = 0x1011; -pub const SO_NREAD: ::c_int = 0x1020; -pub const SO_NKE: ::c_int = 0x1021; -pub const SO_NOSIGPIPE: ::c_int = 0x1022; -pub const SO_NOADDRERR: ::c_int = 0x1023; -pub const SO_NWRITE: ::c_int = 0x1024; -pub const SO_REUSESHAREUID: ::c_int = 0x1025; -pub const SO_NOTIFYCONFLICT: ::c_int = 0x1026; -pub const SO_LINGER_SEC: ::c_int = 0x1080; -pub const SO_RANDOMPORT: ::c_int = 0x1082; -pub const SO_NP_EXTENSIONS: ::c_int = 0x1083; - -pub const MSG_OOB: ::c_int = 0x1; -pub const MSG_PEEK: ::c_int = 0x2; -pub const MSG_DONTROUTE: ::c_int = 0x4; -pub const MSG_EOR: ::c_int = 0x8; -pub const MSG_TRUNC: ::c_int = 0x10; -pub const MSG_CTRUNC: ::c_int = 0x20; -pub const MSG_WAITALL: ::c_int = 0x40; -pub const MSG_DONTWAIT: ::c_int = 0x80; -pub const MSG_EOF: ::c_int = 0x100; -pub const MSG_FLUSH: ::c_int = 0x400; -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_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; +pub const LOCAL_PEERTOKEN: c_int = 0x006; + +pub const SOL_SOCKET: c_int = 0xffff; + +pub const SO_DEBUG: c_int = 0x01; +pub const SO_ACCEPTCONN: c_int = 0x0002; +pub const SO_REUSEADDR: c_int = 0x0004; +pub const SO_KEEPALIVE: c_int = 0x0008; +pub const SO_DONTROUTE: c_int = 0x0010; +pub const SO_BROADCAST: c_int = 0x0020; +pub const SO_USELOOPBACK: c_int = 0x0040; +pub const SO_LINGER: c_int = 0x0080; +pub const SO_OOBINLINE: c_int = 0x0100; +pub const SO_REUSEPORT: c_int = 0x0200; +pub const SO_TIMESTAMP: c_int = 0x0400; +pub const SO_TIMESTAMP_MONOTONIC: c_int = 0x0800; +pub const SO_DONTTRUNC: c_int = 0x2000; +pub const SO_WANTMORE: c_int = 0x4000; +pub const SO_WANTOOBFLAG: c_int = 0x8000; +pub const SO_SNDBUF: c_int = 0x1001; +pub const SO_RCVBUF: c_int = 0x1002; +pub const SO_SNDLOWAT: c_int = 0x1003; +pub const SO_RCVLOWAT: c_int = 0x1004; +pub const SO_SNDTIMEO: c_int = 0x1005; +pub const SO_RCVTIMEO: c_int = 0x1006; +pub const SO_ERROR: c_int = 0x1007; +pub const SO_TYPE: c_int = 0x1008; +pub const SO_LABEL: c_int = 0x1010; +pub const SO_PEERLABEL: c_int = 0x1011; +pub const SO_NREAD: c_int = 0x1020; +pub const SO_NKE: c_int = 0x1021; +pub const SO_NOSIGPIPE: c_int = 0x1022; +pub const SO_NOADDRERR: c_int = 0x1023; +pub const SO_NWRITE: c_int = 0x1024; +pub const SO_REUSESHAREUID: c_int = 0x1025; +pub const SO_NOTIFYCONFLICT: c_int = 0x1026; +pub const SO_LINGER_SEC: c_int = 0x1080; +pub const SO_RANDOMPORT: c_int = 0x1082; +pub const SO_NP_EXTENSIONS: c_int = 0x1083; + +pub const MSG_OOB: c_int = 0x1; +pub const MSG_PEEK: c_int = 0x2; +pub const MSG_DONTROUTE: c_int = 0x4; +pub const MSG_EOR: c_int = 0x8; +pub const MSG_TRUNC: c_int = 0x10; +pub const MSG_CTRUNC: c_int = 0x20; +pub const MSG_WAITALL: c_int = 0x40; +pub const MSG_DONTWAIT: c_int = 0x80; +pub const MSG_EOF: c_int = 0x100; +pub const MSG_FLUSH: c_int = 0x400; +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_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/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 -pub const IFF_LOOPBACK: ::c_int = 0x8; // is a loopback net -pub const IFF_POINTOPOINT: ::c_int = 0x10; // interface is point-to-point link -pub const IFF_NOTRAILERS: ::c_int = 0x20; // obsolete: avoid use of trailers -pub const IFF_RUNNING: ::c_int = 0x40; // resources allocated -pub const IFF_NOARP: ::c_int = 0x80; // no address resolution protocol -pub const IFF_PROMISC: ::c_int = 0x100; // receive all packets -pub const IFF_ALLMULTI: ::c_int = 0x200; // receive all multicast packets -pub const IFF_OACTIVE: ::c_int = 0x400; // transmission in progress -pub const IFF_SIMPLEX: ::c_int = 0x800; // can't hear own transmissions -pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit -pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit -pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit -pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; // use alternate physical connection -pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast - -pub const SCOPE6_ID_MAX: ::size_t = 16; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const SAE_ASSOCID_ANY: ::sae_associd_t = 0; +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 +pub const IFF_LOOPBACK: c_int = 0x8; // is a loopback net +pub const IFF_POINTOPOINT: c_int = 0x10; // interface is point-to-point link +pub const IFF_NOTRAILERS: c_int = 0x20; // obsolete: avoid use of trailers +pub const IFF_RUNNING: c_int = 0x40; // resources allocated +pub const IFF_NOARP: c_int = 0x80; // no address resolution protocol +pub const IFF_PROMISC: c_int = 0x100; // receive all packets +pub const IFF_ALLMULTI: c_int = 0x200; // receive all multicast packets +pub const IFF_OACTIVE: c_int = 0x400; // transmission in progress +pub const IFF_SIMPLEX: c_int = 0x800; // can't hear own transmissions +pub const IFF_LINK0: c_int = 0x1000; // per link layer defined bit +pub const IFF_LINK1: c_int = 0x2000; // per link layer defined bit +pub const IFF_LINK2: c_int = 0x4000; // per link layer defined bit +pub const IFF_ALTPHYS: c_int = IFF_LINK2; // use alternate physical connection +pub const IFF_MULTICAST: c_int = 0x8000; // supports multicast + +pub const SCOPE6_ID_MAX: size_t = 16; + +pub const SHUT_RD: c_int = 0; +pub const SHUT_WR: c_int = 1; +pub const SHUT_RDWR: c_int = 2; + +pub const SAE_ASSOCID_ANY: crate::sae_associd_t = 0; /// ((sae_associd_t)(-1ULL)) -pub const SAE_ASSOCID_ALL: ::sae_associd_t = 0xffffffff; +pub const SAE_ASSOCID_ALL: crate::sae_associd_t = 0xffffffff; -pub const SAE_CONNID_ANY: ::sae_connid_t = 0; +pub const SAE_CONNID_ANY: crate::sae_connid_t = 0; /// ((sae_connid_t)(-1ULL)) -pub const SAE_CONNID_ALL: ::sae_connid_t = 0xffffffff; +pub const SAE_CONNID_ALL: crate::sae_connid_t = 0xffffffff; // connectx() flag parameters /// resume connect() on read/write -pub const CONNECT_RESUME_ON_READ_WRITE: ::c_uint = 0x1; +pub const CONNECT_RESUME_ON_READ_WRITE: c_uint = 0x1; /// data is idempotent -pub const CONNECT_DATA_IDEMPOTENT: ::c_uint = 0x2; +pub const CONNECT_DATA_IDEMPOTENT: c_uint = 0x2; /// data includes security that replaces the TFO-cookie -pub const CONNECT_DATA_AUTHENTICATED: ::c_uint = 0x4; - -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_NB: ::c_int = 4; -pub const LOCK_UN: ::c_int = 8; - -pub const MAP_COPY: ::c_int = 0x0002; -pub const MAP_RENAME: ::c_int = 0x0020; -pub const MAP_NORESERVE: ::c_int = 0x0040; -pub const MAP_NOEXTEND: ::c_int = 0x0100; -pub const MAP_HASSEMAPHORE: ::c_int = 0x0200; -pub const MAP_NOCACHE: ::c_int = 0x0400; -pub const MAP_JIT: ::c_int = 0x0800; - -pub const _SC_ARG_MAX: ::c_int = 1; -pub const _SC_CHILD_MAX: ::c_int = 2; -pub const _SC_CLK_TCK: ::c_int = 3; -pub const _SC_NGROUPS_MAX: ::c_int = 4; -pub const _SC_OPEN_MAX: ::c_int = 5; -pub const _SC_JOB_CONTROL: ::c_int = 6; -pub const _SC_SAVED_IDS: ::c_int = 7; -pub const _SC_VERSION: ::c_int = 8; -pub const _SC_BC_BASE_MAX: ::c_int = 9; -pub const _SC_BC_DIM_MAX: ::c_int = 10; -pub const _SC_BC_SCALE_MAX: ::c_int = 11; -pub const _SC_BC_STRING_MAX: ::c_int = 12; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 13; -pub const _SC_EXPR_NEST_MAX: ::c_int = 14; -pub const _SC_LINE_MAX: ::c_int = 15; -pub const _SC_RE_DUP_MAX: ::c_int = 16; -pub const _SC_2_VERSION: ::c_int = 17; -pub const _SC_2_C_BIND: ::c_int = 18; -pub const _SC_2_C_DEV: ::c_int = 19; -pub const _SC_2_CHAR_TERM: ::c_int = 20; -pub const _SC_2_FORT_DEV: ::c_int = 21; -pub const _SC_2_FORT_RUN: ::c_int = 22; -pub const _SC_2_LOCALEDEF: ::c_int = 23; -pub const _SC_2_SW_DEV: ::c_int = 24; -pub const _SC_2_UPE: ::c_int = 25; -pub const _SC_STREAM_MAX: ::c_int = 26; -pub const _SC_TZNAME_MAX: ::c_int = 27; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 28; -pub const _SC_PAGESIZE: ::c_int = 29; -pub const _SC_MEMLOCK: ::c_int = 30; -pub const _SC_MEMLOCK_RANGE: ::c_int = 31; -pub const _SC_MEMORY_PROTECTION: ::c_int = 32; -pub const _SC_MESSAGE_PASSING: ::c_int = 33; -pub const _SC_PRIORITIZED_IO: ::c_int = 34; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 35; -pub const _SC_REALTIME_SIGNALS: ::c_int = 36; -pub const _SC_SEMAPHORES: ::c_int = 37; -pub const _SC_FSYNC: ::c_int = 38; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 39; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 40; -pub const _SC_TIMERS: ::c_int = 41; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 42; -pub const _SC_AIO_MAX: ::c_int = 43; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 44; -pub const _SC_DELAYTIMER_MAX: ::c_int = 45; -pub const _SC_MQ_OPEN_MAX: ::c_int = 46; -pub const _SC_MAPPED_FILES: ::c_int = 47; -pub const _SC_RTSIG_MAX: ::c_int = 48; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 49; -pub const _SC_SEM_VALUE_MAX: ::c_int = 50; -pub const _SC_SIGQUEUE_MAX: ::c_int = 51; -pub const _SC_TIMER_MAX: ::c_int = 52; -pub const _SC_NPROCESSORS_CONF: ::c_int = 57; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 58; -pub const _SC_2_PBS: ::c_int = 59; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 60; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 61; -pub const _SC_2_PBS_LOCATE: ::c_int = 62; -pub const _SC_2_PBS_MESSAGE: ::c_int = 63; -pub const _SC_2_PBS_TRACK: ::c_int = 64; -pub const _SC_ADVISORY_INFO: ::c_int = 65; -pub const _SC_BARRIERS: ::c_int = 66; -pub const _SC_CLOCK_SELECTION: ::c_int = 67; -pub const _SC_CPUTIME: ::c_int = 68; -pub const _SC_FILE_LOCKING: ::c_int = 69; -pub const _SC_HOST_NAME_MAX: ::c_int = 72; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 74; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 76; -pub const _SC_REGEXP: ::c_int = 77; -pub const _SC_SHELL: ::c_int = 78; -pub const _SC_SPAWN: ::c_int = 79; -pub const _SC_SPIN_LOCKS: ::c_int = 80; -pub const _SC_SPORADIC_SERVER: ::c_int = 81; -pub const _SC_THREAD_CPUTIME: ::c_int = 84; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 92; -pub const _SC_TIMEOUTS: ::c_int = 95; -pub const _SC_TRACE: ::c_int = 97; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 98; -pub const _SC_TRACE_INHERIT: ::c_int = 99; -pub const _SC_TRACE_LOG: ::c_int = 100; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 102; -pub const _SC_V6_ILP32_OFF32: ::c_int = 103; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 104; -pub const _SC_V6_LP64_OFF64: ::c_int = 105; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 106; -pub const _SC_IPV6: ::c_int = 118; -pub const _SC_RAW_SOCKETS: ::c_int = 119; -pub const _SC_SYMLOOP_MAX: ::c_int = 120; -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_XOPEN_STREAMS: ::c_int = 114; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 122; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 123; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 124; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 125; -pub const _SC_SS_REPL_MAX: ::c_int = 126; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 127; -pub const _SC_TRACE_NAME_MAX: ::c_int = 128; -pub const _SC_TRACE_SYS_MAX: ::c_int = 129; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 130; -pub const _SC_PASS_MAX: ::c_int = 131; +pub const CONNECT_DATA_AUTHENTICATED: c_uint = 0x4; + +pub const LOCK_SH: c_int = 1; +pub const LOCK_EX: c_int = 2; +pub const LOCK_NB: c_int = 4; +pub const LOCK_UN: c_int = 8; + +pub const MAP_COPY: c_int = 0x0002; +pub const MAP_RENAME: c_int = 0x0020; +pub const MAP_NORESERVE: c_int = 0x0040; +pub const MAP_NOEXTEND: c_int = 0x0100; +pub const MAP_HASSEMAPHORE: c_int = 0x0200; +pub const MAP_NOCACHE: c_int = 0x0400; +pub const MAP_JIT: c_int = 0x0800; + +pub const _SC_ARG_MAX: c_int = 1; +pub const _SC_CHILD_MAX: c_int = 2; +pub const _SC_CLK_TCK: c_int = 3; +pub const _SC_NGROUPS_MAX: c_int = 4; +pub const _SC_OPEN_MAX: c_int = 5; +pub const _SC_JOB_CONTROL: c_int = 6; +pub const _SC_SAVED_IDS: c_int = 7; +pub const _SC_VERSION: c_int = 8; +pub const _SC_BC_BASE_MAX: c_int = 9; +pub const _SC_BC_DIM_MAX: c_int = 10; +pub const _SC_BC_SCALE_MAX: c_int = 11; +pub const _SC_BC_STRING_MAX: c_int = 12; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 13; +pub const _SC_EXPR_NEST_MAX: c_int = 14; +pub const _SC_LINE_MAX: c_int = 15; +pub const _SC_RE_DUP_MAX: c_int = 16; +pub const _SC_2_VERSION: c_int = 17; +pub const _SC_2_C_BIND: c_int = 18; +pub const _SC_2_C_DEV: c_int = 19; +pub const _SC_2_CHAR_TERM: c_int = 20; +pub const _SC_2_FORT_DEV: c_int = 21; +pub const _SC_2_FORT_RUN: c_int = 22; +pub const _SC_2_LOCALEDEF: c_int = 23; +pub const _SC_2_SW_DEV: c_int = 24; +pub const _SC_2_UPE: c_int = 25; +pub const _SC_STREAM_MAX: c_int = 26; +pub const _SC_TZNAME_MAX: c_int = 27; +pub const _SC_ASYNCHRONOUS_IO: c_int = 28; +pub const _SC_PAGESIZE: c_int = 29; +pub const _SC_MEMLOCK: c_int = 30; +pub const _SC_MEMLOCK_RANGE: c_int = 31; +pub const _SC_MEMORY_PROTECTION: c_int = 32; +pub const _SC_MESSAGE_PASSING: c_int = 33; +pub const _SC_PRIORITIZED_IO: c_int = 34; +pub const _SC_PRIORITY_SCHEDULING: c_int = 35; +pub const _SC_REALTIME_SIGNALS: c_int = 36; +pub const _SC_SEMAPHORES: c_int = 37; +pub const _SC_FSYNC: c_int = 38; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 39; +pub const _SC_SYNCHRONIZED_IO: c_int = 40; +pub const _SC_TIMERS: c_int = 41; +pub const _SC_AIO_LISTIO_MAX: c_int = 42; +pub const _SC_AIO_MAX: c_int = 43; +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 44; +pub const _SC_DELAYTIMER_MAX: c_int = 45; +pub const _SC_MQ_OPEN_MAX: c_int = 46; +pub const _SC_MAPPED_FILES: c_int = 47; +pub const _SC_RTSIG_MAX: c_int = 48; +pub const _SC_SEM_NSEMS_MAX: c_int = 49; +pub const _SC_SEM_VALUE_MAX: c_int = 50; +pub const _SC_SIGQUEUE_MAX: c_int = 51; +pub const _SC_TIMER_MAX: c_int = 52; +pub const _SC_NPROCESSORS_CONF: c_int = 57; +pub const _SC_NPROCESSORS_ONLN: c_int = 58; +pub const _SC_2_PBS: c_int = 59; +pub const _SC_2_PBS_ACCOUNTING: c_int = 60; +pub const _SC_2_PBS_CHECKPOINT: c_int = 61; +pub const _SC_2_PBS_LOCATE: c_int = 62; +pub const _SC_2_PBS_MESSAGE: c_int = 63; +pub const _SC_2_PBS_TRACK: c_int = 64; +pub const _SC_ADVISORY_INFO: c_int = 65; +pub const _SC_BARRIERS: c_int = 66; +pub const _SC_CLOCK_SELECTION: c_int = 67; +pub const _SC_CPUTIME: c_int = 68; +pub const _SC_FILE_LOCKING: c_int = 69; +pub const _SC_HOST_NAME_MAX: c_int = 72; +pub const _SC_MONOTONIC_CLOCK: c_int = 74; +pub const _SC_READER_WRITER_LOCKS: c_int = 76; +pub const _SC_REGEXP: c_int = 77; +pub const _SC_SHELL: c_int = 78; +pub const _SC_SPAWN: c_int = 79; +pub const _SC_SPIN_LOCKS: c_int = 80; +pub const _SC_SPORADIC_SERVER: c_int = 81; +pub const _SC_THREAD_CPUTIME: c_int = 84; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 92; +pub const _SC_TIMEOUTS: c_int = 95; +pub const _SC_TRACE: c_int = 97; +pub const _SC_TRACE_EVENT_FILTER: c_int = 98; +pub const _SC_TRACE_INHERIT: c_int = 99; +pub const _SC_TRACE_LOG: c_int = 100; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 102; +pub const _SC_V6_ILP32_OFF32: c_int = 103; +pub const _SC_V6_ILP32_OFFBIG: c_int = 104; +pub const _SC_V6_LP64_OFF64: c_int = 105; +pub const _SC_V6_LPBIG_OFFBIG: c_int = 106; +pub const _SC_IPV6: c_int = 118; +pub const _SC_RAW_SOCKETS: c_int = 119; +pub const _SC_SYMLOOP_MAX: c_int = 120; +pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; +pub const _SC_XOPEN_STREAMS: c_int = 114; +pub const _SC_XBS5_ILP32_OFF32: c_int = 122; +pub const _SC_XBS5_ILP32_OFFBIG: c_int = 123; +pub const _SC_XBS5_LP64_OFF64: c_int = 124; +pub const _SC_XBS5_LPBIG_OFFBIG: c_int = 125; +pub const _SC_SS_REPL_MAX: c_int = 126; +pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 127; +pub const _SC_TRACE_NAME_MAX: c_int = 128; +pub const _SC_TRACE_SYS_MAX: c_int = 129; +pub const _SC_TRACE_USER_EVENT_MAX: c_int = 130; +pub const _SC_PASS_MAX: c_int = 131; // `confstr` keys (only the values guaranteed by `man confstr`). -pub const _CS_PATH: ::c_int = 1; -pub const _CS_DARWIN_USER_DIR: ::c_int = 65536; -pub const _CS_DARWIN_USER_TEMP_DIR: ::c_int = 65537; -pub const _CS_DARWIN_USER_CACHE_DIR: ::c_int = 65538; - -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; -pub const _PTHREAD_MUTEX_SIG_init: ::c_long = 0x32AAABA7; -pub const _PTHREAD_COND_SIG_init: ::c_long = 0x3CB0B1BB; -pub const _PTHREAD_RWLOCK_SIG_init: ::c_long = 0x2DA8B3B4; +pub const _CS_PATH: c_int = 1; +pub const _CS_DARWIN_USER_DIR: c_int = 65536; +pub const _CS_DARWIN_USER_TEMP_DIR: c_int = 65537; +pub const _CS_DARWIN_USER_CACHE_DIR: c_int = 65538; + +pub const PTHREAD_MUTEX_NORMAL: c_int = 0; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 1; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_NORMAL; +pub const _PTHREAD_MUTEX_SIG_init: c_long = 0x32AAABA7; +pub const _PTHREAD_COND_SIG_init: c_long = 0x3CB0B1BB; +pub const _PTHREAD_RWLOCK_SIG_init: c_long = 0x2DA8B3B4; pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { __sig: _PTHREAD_MUTEX_SIG_init, __opaque: [0; __PTHREAD_MUTEX_SIZE__], @@ -4655,26 +4661,26 @@ pub const OS_UNFAIR_LOCK_INIT: os_unfair_lock = os_unfair_lock { _os_unfair_lock_opaque: 0, }; -pub const OS_LOG_TYPE_DEFAULT: ::os_log_type_t = 0x00; -pub const OS_LOG_TYPE_INFO: ::os_log_type_t = 0x01; -pub const OS_LOG_TYPE_DEBUG: ::os_log_type_t = 0x02; -pub const OS_LOG_TYPE_ERROR: ::os_log_type_t = 0x10; -pub const OS_LOG_TYPE_FAULT: ::os_log_type_t = 0x11; +pub const OS_LOG_TYPE_DEFAULT: crate::os_log_type_t = 0x00; +pub const OS_LOG_TYPE_INFO: crate::os_log_type_t = 0x01; +pub const OS_LOG_TYPE_DEBUG: crate::os_log_type_t = 0x02; +pub const OS_LOG_TYPE_ERROR: crate::os_log_type_t = 0x10; +pub const OS_LOG_TYPE_FAULT: crate::os_log_type_t = 0x11; -pub const OS_SIGNPOST_EVENT: ::os_signpost_type_t = 0x00; -pub const OS_SIGNPOST_INTERVAL_BEGIN: ::os_signpost_type_t = 0x01; -pub const OS_SIGNPOST_INTERVAL_END: ::os_signpost_type_t = 0x02; +pub const OS_SIGNPOST_EVENT: crate::os_signpost_type_t = 0x00; +pub const OS_SIGNPOST_INTERVAL_BEGIN: crate::os_signpost_type_t = 0x01; +pub const OS_SIGNPOST_INTERVAL_END: crate::os_signpost_type_t = 0x02; -pub const MINSIGSTKSZ: ::size_t = 32768; -pub const SIGSTKSZ: ::size_t = 131072; +pub const MINSIGSTKSZ: size_t = 32768; +pub const SIGSTKSZ: size_t = 131072; pub const FD_SETSIZE: usize = 1024; -pub const ST_NOSUID: ::c_ulong = 2; +pub const ST_NOSUID: c_ulong = 2; -pub const SCHED_OTHER: ::c_int = 1; -pub const SCHED_FIFO: ::c_int = 4; -pub const SCHED_RR: ::c_int = 2; +pub const SCHED_OTHER: c_int = 1; +pub const SCHED_FIFO: c_int = 4; +pub const SCHED_RR: c_int = 2; pub const EVFILT_READ: i16 = -1; pub const EVFILT_WRITE: i16 = -2; @@ -4755,378 +4761,378 @@ pub const NOTE_TRACK: u32 = 0x00000001; pub const NOTE_TRACKERR: u32 = 0x00000002; pub const NOTE_CHILD: u32 = 0x00000004; -pub const OCRNL: ::tcflag_t = 0x00000010; -pub const ONOCR: ::tcflag_t = 0x00000020; -pub const ONLRET: ::tcflag_t = 0x00000040; -pub const OFILL: ::tcflag_t = 0x00000080; -pub const NLDLY: ::tcflag_t = 0x00000300; -pub const TABDLY: ::tcflag_t = 0x00000c04; -pub const CRDLY: ::tcflag_t = 0x00003000; -pub const FFDLY: ::tcflag_t = 0x00004000; -pub const BSDLY: ::tcflag_t = 0x00008000; -pub const VTDLY: ::tcflag_t = 0x00010000; -pub const OFDEL: ::tcflag_t = 0x00020000; - -pub const NL0: ::tcflag_t = 0x00000000; -pub const NL1: ::tcflag_t = 0x00000100; -pub const TAB0: ::tcflag_t = 0x00000000; -pub const TAB1: ::tcflag_t = 0x00000400; -pub const TAB2: ::tcflag_t = 0x00000800; -pub const CR0: ::tcflag_t = 0x00000000; -pub const CR1: ::tcflag_t = 0x00001000; -pub const CR2: ::tcflag_t = 0x00002000; -pub const CR3: ::tcflag_t = 0x00003000; -pub const FF0: ::tcflag_t = 0x00000000; -pub const FF1: ::tcflag_t = 0x00004000; -pub const BS0: ::tcflag_t = 0x00000000; -pub const BS1: ::tcflag_t = 0x00008000; -pub const TAB3: ::tcflag_t = 0x00000004; -pub const VT0: ::tcflag_t = 0x00000000; -pub const VT1: ::tcflag_t = 0x00010000; -pub const IUTF8: ::tcflag_t = 0x00004000; -pub const CRTSCTS: ::tcflag_t = 0x00030000; - -pub const NI_MAXHOST: ::socklen_t = 1025; -pub const NI_MAXSERV: ::socklen_t = 32; -pub const NI_NOFQDN: ::c_int = 0x00000001; -pub const NI_NUMERICHOST: ::c_int = 0x00000002; -pub const NI_NAMEREQD: ::c_int = 0x00000004; -pub const NI_NUMERICSERV: ::c_int = 0x00000008; -pub const NI_NUMERICSCOPE: ::c_int = 0x00000100; -pub const NI_DGRAM: ::c_int = 0x00000010; - -pub const Q_GETQUOTA: ::c_int = 0x300; -pub const Q_SETQUOTA: ::c_int = 0x400; - -pub const RENAME_SWAP: ::c_uint = 0x00000002; -pub const RENAME_EXCL: ::c_uint = 0x00000004; - -pub const RTLD_LOCAL: ::c_int = 0x4; -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; - -pub const LOG_NETINFO: ::c_int = 12 << 3; -pub const LOG_REMOTEAUTH: ::c_int = 13 << 3; -pub const LOG_INSTALL: ::c_int = 14 << 3; -pub const LOG_RAS: ::c_int = 15 << 3; -pub const LOG_LAUNCHD: ::c_int = 24 << 3; -pub const LOG_NFACILITIES: ::c_int = 25; - -pub const CTLTYPE: ::c_int = 0xf; -pub const CTLTYPE_NODE: ::c_int = 1; -pub const CTLTYPE_INT: ::c_int = 2; -pub const CTLTYPE_STRING: ::c_int = 3; -pub const CTLTYPE_QUAD: ::c_int = 4; -pub const CTLTYPE_OPAQUE: ::c_int = 5; -pub const CTLTYPE_STRUCT: ::c_int = CTLTYPE_OPAQUE; -pub const CTLFLAG_RD: ::c_int = 0x80000000; -pub const CTLFLAG_WR: ::c_int = 0x40000000; -pub const CTLFLAG_RW: ::c_int = CTLFLAG_RD | CTLFLAG_WR; -pub const CTLFLAG_NOLOCK: ::c_int = 0x20000000; -pub const CTLFLAG_ANYBODY: ::c_int = 0x10000000; -pub const CTLFLAG_SECURE: ::c_int = 0x08000000; -pub const CTLFLAG_MASKED: ::c_int = 0x04000000; -pub const CTLFLAG_NOAUTO: ::c_int = 0x02000000; -pub const CTLFLAG_KERN: ::c_int = 0x01000000; -pub const CTLFLAG_LOCKED: ::c_int = 0x00800000; -pub const CTLFLAG_OID2: ::c_int = 0x00400000; -pub const CTL_UNSPEC: ::c_int = 0; -pub const CTL_KERN: ::c_int = 1; -pub const CTL_VM: ::c_int = 2; -pub const CTL_VFS: ::c_int = 3; -pub const CTL_NET: ::c_int = 4; -pub const CTL_DEBUG: ::c_int = 5; -pub const CTL_HW: ::c_int = 6; -pub const CTL_MACHDEP: ::c_int = 7; -pub const CTL_USER: ::c_int = 8; -pub const CTL_MAXID: ::c_int = 9; -pub const KERN_OSTYPE: ::c_int = 1; -pub const KERN_OSRELEASE: ::c_int = 2; -pub const KERN_OSREV: ::c_int = 3; -pub const KERN_VERSION: ::c_int = 4; -pub const KERN_MAXVNODES: ::c_int = 5; -pub const KERN_MAXPROC: ::c_int = 6; -pub const KERN_MAXFILES: ::c_int = 7; -pub const KERN_ARGMAX: ::c_int = 8; -pub const KERN_SECURELVL: ::c_int = 9; -pub const KERN_HOSTNAME: ::c_int = 10; -pub const KERN_HOSTID: ::c_int = 11; -pub const KERN_CLOCKRATE: ::c_int = 12; -pub const KERN_VNODE: ::c_int = 13; -pub const KERN_PROC: ::c_int = 14; -pub const KERN_FILE: ::c_int = 15; -pub const KERN_PROF: ::c_int = 16; -pub const KERN_POSIX1: ::c_int = 17; -pub const KERN_NGROUPS: ::c_int = 18; -pub const KERN_JOB_CONTROL: ::c_int = 19; -pub const KERN_SAVED_IDS: ::c_int = 20; -pub const KERN_BOOTTIME: ::c_int = 21; -pub const KERN_NISDOMAINNAME: ::c_int = 22; -pub const KERN_DOMAINNAME: ::c_int = KERN_NISDOMAINNAME; -pub const KERN_MAXPARTITIONS: ::c_int = 23; -pub const KERN_KDEBUG: ::c_int = 24; -pub const KERN_UPDATEINTERVAL: ::c_int = 25; -pub const KERN_OSRELDATE: ::c_int = 26; -pub const KERN_NTP_PLL: ::c_int = 27; -pub const KERN_BOOTFILE: ::c_int = 28; -pub const KERN_MAXFILESPERPROC: ::c_int = 29; -pub const KERN_MAXPROCPERUID: ::c_int = 30; -pub const KERN_DUMPDEV: ::c_int = 31; -pub const KERN_IPC: ::c_int = 32; -pub const KERN_DUMMY: ::c_int = 33; -pub const KERN_PS_STRINGS: ::c_int = 34; -pub const KERN_USRSTACK32: ::c_int = 35; -pub const KERN_LOGSIGEXIT: ::c_int = 36; -pub const KERN_SYMFILE: ::c_int = 37; -pub const KERN_PROCARGS: ::c_int = 38; -pub const KERN_NETBOOT: ::c_int = 40; -pub const KERN_SYSV: ::c_int = 42; -pub const KERN_AFFINITY: ::c_int = 43; -pub const KERN_TRANSLATE: ::c_int = 44; -pub const KERN_CLASSIC: ::c_int = KERN_TRANSLATE; -pub const KERN_EXEC: ::c_int = 45; -pub const KERN_CLASSICHANDLER: ::c_int = KERN_EXEC; -pub const KERN_AIOMAX: ::c_int = 46; -pub const KERN_AIOPROCMAX: ::c_int = 47; -pub const KERN_AIOTHREADS: ::c_int = 48; -pub const KERN_COREFILE: ::c_int = 50; -pub const KERN_COREDUMP: ::c_int = 51; -pub const KERN_SUGID_COREDUMP: ::c_int = 52; -pub const KERN_PROCDELAYTERM: ::c_int = 53; -pub const KERN_SHREG_PRIVATIZABLE: ::c_int = 54; -pub const KERN_LOW_PRI_WINDOW: ::c_int = 56; -pub const KERN_LOW_PRI_DELAY: ::c_int = 57; -pub const KERN_POSIX: ::c_int = 58; -pub const KERN_USRSTACK64: ::c_int = 59; -pub const KERN_NX_PROTECTION: ::c_int = 60; -pub const KERN_TFP: ::c_int = 61; -pub const KERN_PROCNAME: ::c_int = 62; -pub const KERN_THALTSTACK: ::c_int = 63; -pub const KERN_SPECULATIVE_READS: ::c_int = 64; -pub const KERN_OSVERSION: ::c_int = 65; -pub const KERN_SAFEBOOT: ::c_int = 66; -pub const KERN_RAGEVNODE: ::c_int = 68; -pub const KERN_TTY: ::c_int = 69; -pub const KERN_CHECKOPENEVT: ::c_int = 70; -pub const KERN_THREADNAME: ::c_int = 71; -pub const KERN_MAXID: ::c_int = 72; -pub const KERN_RAGE_PROC: ::c_int = 1; -pub const KERN_RAGE_THREAD: ::c_int = 2; -pub const KERN_UNRAGE_PROC: ::c_int = 3; -pub const KERN_UNRAGE_THREAD: ::c_int = 4; -pub const KERN_OPENEVT_PROC: ::c_int = 1; -pub const KERN_UNOPENEVT_PROC: ::c_int = 2; -pub const KERN_TFP_POLICY: ::c_int = 1; -pub const KERN_TFP_POLICY_DENY: ::c_int = 0; -pub const KERN_TFP_POLICY_DEFAULT: ::c_int = 2; -pub const KERN_KDEFLAGS: ::c_int = 1; -pub const KERN_KDDFLAGS: ::c_int = 2; -pub const KERN_KDENABLE: ::c_int = 3; -pub const KERN_KDSETBUF: ::c_int = 4; -pub const KERN_KDGETBUF: ::c_int = 5; -pub const KERN_KDSETUP: ::c_int = 6; -pub const KERN_KDREMOVE: ::c_int = 7; -pub const KERN_KDSETREG: ::c_int = 8; -pub const KERN_KDGETREG: ::c_int = 9; -pub const KERN_KDREADTR: ::c_int = 10; -pub const KERN_KDPIDTR: ::c_int = 11; -pub const KERN_KDTHRMAP: ::c_int = 12; -pub const KERN_KDPIDEX: ::c_int = 14; -pub const KERN_KDSETRTCDEC: ::c_int = 15; -pub const KERN_KDGETENTROPY: ::c_int = 16; -pub const KERN_KDWRITETR: ::c_int = 17; -pub const KERN_KDWRITEMAP: ::c_int = 18; +pub const OCRNL: crate::tcflag_t = 0x00000010; +pub const ONOCR: crate::tcflag_t = 0x00000020; +pub const ONLRET: crate::tcflag_t = 0x00000040; +pub const OFILL: crate::tcflag_t = 0x00000080; +pub const NLDLY: crate::tcflag_t = 0x00000300; +pub const TABDLY: crate::tcflag_t = 0x00000c04; +pub const CRDLY: crate::tcflag_t = 0x00003000; +pub const FFDLY: crate::tcflag_t = 0x00004000; +pub const BSDLY: crate::tcflag_t = 0x00008000; +pub const VTDLY: crate::tcflag_t = 0x00010000; +pub const OFDEL: crate::tcflag_t = 0x00020000; + +pub const NL0: crate::tcflag_t = 0x00000000; +pub const NL1: crate::tcflag_t = 0x00000100; +pub const TAB0: crate::tcflag_t = 0x00000000; +pub const TAB1: crate::tcflag_t = 0x00000400; +pub const TAB2: crate::tcflag_t = 0x00000800; +pub const CR0: crate::tcflag_t = 0x00000000; +pub const CR1: crate::tcflag_t = 0x00001000; +pub const CR2: crate::tcflag_t = 0x00002000; +pub const CR3: crate::tcflag_t = 0x00003000; +pub const FF0: crate::tcflag_t = 0x00000000; +pub const FF1: crate::tcflag_t = 0x00004000; +pub const BS0: crate::tcflag_t = 0x00000000; +pub const BS1: crate::tcflag_t = 0x00008000; +pub const TAB3: crate::tcflag_t = 0x00000004; +pub const VT0: crate::tcflag_t = 0x00000000; +pub const VT1: crate::tcflag_t = 0x00010000; +pub const IUTF8: crate::tcflag_t = 0x00004000; +pub const CRTSCTS: crate::tcflag_t = 0x00030000; + +pub const NI_MAXHOST: crate::socklen_t = 1025; +pub const NI_MAXSERV: crate::socklen_t = 32; +pub const NI_NOFQDN: c_int = 0x00000001; +pub const NI_NUMERICHOST: c_int = 0x00000002; +pub const NI_NAMEREQD: c_int = 0x00000004; +pub const NI_NUMERICSERV: c_int = 0x00000008; +pub const NI_NUMERICSCOPE: c_int = 0x00000100; +pub const NI_DGRAM: c_int = 0x00000010; + +pub const Q_GETQUOTA: c_int = 0x300; +pub const Q_SETQUOTA: c_int = 0x400; + +pub const RENAME_SWAP: c_uint = 0x00000002; +pub const RENAME_EXCL: c_uint = 0x00000004; + +pub const RTLD_LOCAL: c_int = 0x4; +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; + +pub const LOG_NETINFO: c_int = 12 << 3; +pub const LOG_REMOTEAUTH: c_int = 13 << 3; +pub const LOG_INSTALL: c_int = 14 << 3; +pub const LOG_RAS: c_int = 15 << 3; +pub const LOG_LAUNCHD: c_int = 24 << 3; +pub const LOG_NFACILITIES: c_int = 25; + +pub const CTLTYPE: c_int = 0xf; +pub const CTLTYPE_NODE: c_int = 1; +pub const CTLTYPE_INT: c_int = 2; +pub const CTLTYPE_STRING: c_int = 3; +pub const CTLTYPE_QUAD: c_int = 4; +pub const CTLTYPE_OPAQUE: c_int = 5; +pub const CTLTYPE_STRUCT: c_int = CTLTYPE_OPAQUE; +pub const CTLFLAG_RD: c_int = 0x80000000; +pub const CTLFLAG_WR: c_int = 0x40000000; +pub const CTLFLAG_RW: c_int = CTLFLAG_RD | CTLFLAG_WR; +pub const CTLFLAG_NOLOCK: c_int = 0x20000000; +pub const CTLFLAG_ANYBODY: c_int = 0x10000000; +pub const CTLFLAG_SECURE: c_int = 0x08000000; +pub const CTLFLAG_MASKED: c_int = 0x04000000; +pub const CTLFLAG_NOAUTO: c_int = 0x02000000; +pub const CTLFLAG_KERN: c_int = 0x01000000; +pub const CTLFLAG_LOCKED: c_int = 0x00800000; +pub const CTLFLAG_OID2: c_int = 0x00400000; +pub const CTL_UNSPEC: c_int = 0; +pub const CTL_KERN: c_int = 1; +pub const CTL_VM: c_int = 2; +pub const CTL_VFS: c_int = 3; +pub const CTL_NET: c_int = 4; +pub const CTL_DEBUG: c_int = 5; +pub const CTL_HW: c_int = 6; +pub const CTL_MACHDEP: c_int = 7; +pub const CTL_USER: c_int = 8; +pub const CTL_MAXID: c_int = 9; +pub const KERN_OSTYPE: c_int = 1; +pub const KERN_OSRELEASE: c_int = 2; +pub const KERN_OSREV: c_int = 3; +pub const KERN_VERSION: c_int = 4; +pub const KERN_MAXVNODES: c_int = 5; +pub const KERN_MAXPROC: c_int = 6; +pub const KERN_MAXFILES: c_int = 7; +pub const KERN_ARGMAX: c_int = 8; +pub const KERN_SECURELVL: c_int = 9; +pub const KERN_HOSTNAME: c_int = 10; +pub const KERN_HOSTID: c_int = 11; +pub const KERN_CLOCKRATE: c_int = 12; +pub const KERN_VNODE: c_int = 13; +pub const KERN_PROC: c_int = 14; +pub const KERN_FILE: c_int = 15; +pub const KERN_PROF: c_int = 16; +pub const KERN_POSIX1: c_int = 17; +pub const KERN_NGROUPS: c_int = 18; +pub const KERN_JOB_CONTROL: c_int = 19; +pub const KERN_SAVED_IDS: c_int = 20; +pub const KERN_BOOTTIME: c_int = 21; +pub const KERN_NISDOMAINNAME: c_int = 22; +pub const KERN_DOMAINNAME: c_int = KERN_NISDOMAINNAME; +pub const KERN_MAXPARTITIONS: c_int = 23; +pub const KERN_KDEBUG: c_int = 24; +pub const KERN_UPDATEINTERVAL: c_int = 25; +pub const KERN_OSRELDATE: c_int = 26; +pub const KERN_NTP_PLL: c_int = 27; +pub const KERN_BOOTFILE: c_int = 28; +pub const KERN_MAXFILESPERPROC: c_int = 29; +pub const KERN_MAXPROCPERUID: c_int = 30; +pub const KERN_DUMPDEV: c_int = 31; +pub const KERN_IPC: c_int = 32; +pub const KERN_DUMMY: c_int = 33; +pub const KERN_PS_STRINGS: c_int = 34; +pub const KERN_USRSTACK32: c_int = 35; +pub const KERN_LOGSIGEXIT: c_int = 36; +pub const KERN_SYMFILE: c_int = 37; +pub const KERN_PROCARGS: c_int = 38; +pub const KERN_NETBOOT: c_int = 40; +pub const KERN_SYSV: c_int = 42; +pub const KERN_AFFINITY: c_int = 43; +pub const KERN_TRANSLATE: c_int = 44; +pub const KERN_CLASSIC: c_int = KERN_TRANSLATE; +pub const KERN_EXEC: c_int = 45; +pub const KERN_CLASSICHANDLER: c_int = KERN_EXEC; +pub const KERN_AIOMAX: c_int = 46; +pub const KERN_AIOPROCMAX: c_int = 47; +pub const KERN_AIOTHREADS: c_int = 48; +pub const KERN_COREFILE: c_int = 50; +pub const KERN_COREDUMP: c_int = 51; +pub const KERN_SUGID_COREDUMP: c_int = 52; +pub const KERN_PROCDELAYTERM: c_int = 53; +pub const KERN_SHREG_PRIVATIZABLE: c_int = 54; +pub const KERN_LOW_PRI_WINDOW: c_int = 56; +pub const KERN_LOW_PRI_DELAY: c_int = 57; +pub const KERN_POSIX: c_int = 58; +pub const KERN_USRSTACK64: c_int = 59; +pub const KERN_NX_PROTECTION: c_int = 60; +pub const KERN_TFP: c_int = 61; +pub const KERN_PROCNAME: c_int = 62; +pub const KERN_THALTSTACK: c_int = 63; +pub const KERN_SPECULATIVE_READS: c_int = 64; +pub const KERN_OSVERSION: c_int = 65; +pub const KERN_SAFEBOOT: c_int = 66; +pub const KERN_RAGEVNODE: c_int = 68; +pub const KERN_TTY: c_int = 69; +pub const KERN_CHECKOPENEVT: c_int = 70; +pub const KERN_THREADNAME: c_int = 71; +pub const KERN_MAXID: c_int = 72; +pub const KERN_RAGE_PROC: c_int = 1; +pub const KERN_RAGE_THREAD: c_int = 2; +pub const KERN_UNRAGE_PROC: c_int = 3; +pub const KERN_UNRAGE_THREAD: c_int = 4; +pub const KERN_OPENEVT_PROC: c_int = 1; +pub const KERN_UNOPENEVT_PROC: c_int = 2; +pub const KERN_TFP_POLICY: c_int = 1; +pub const KERN_TFP_POLICY_DENY: c_int = 0; +pub const KERN_TFP_POLICY_DEFAULT: c_int = 2; +pub const KERN_KDEFLAGS: c_int = 1; +pub const KERN_KDDFLAGS: c_int = 2; +pub const KERN_KDENABLE: c_int = 3; +pub const KERN_KDSETBUF: c_int = 4; +pub const KERN_KDGETBUF: c_int = 5; +pub const KERN_KDSETUP: c_int = 6; +pub const KERN_KDREMOVE: c_int = 7; +pub const KERN_KDSETREG: c_int = 8; +pub const KERN_KDGETREG: c_int = 9; +pub const KERN_KDREADTR: c_int = 10; +pub const KERN_KDPIDTR: c_int = 11; +pub const KERN_KDTHRMAP: c_int = 12; +pub const KERN_KDPIDEX: c_int = 14; +pub const KERN_KDSETRTCDEC: c_int = 15; +pub const KERN_KDGETENTROPY: c_int = 16; +pub const KERN_KDWRITETR: c_int = 17; +pub const KERN_KDWRITEMAP: c_int = 18; #[doc(hidden)] #[deprecated(since = "0.2.49", note = "Removed in MacOSX 10.12")] -pub const KERN_KDENABLE_BG_TRACE: ::c_int = 19; +pub const KERN_KDENABLE_BG_TRACE: c_int = 19; #[doc(hidden)] #[deprecated(since = "0.2.49", note = "Removed in MacOSX 10.12")] -pub const KERN_KDDISABLE_BG_TRACE: ::c_int = 20; -pub const KERN_KDREADCURTHRMAP: ::c_int = 21; -pub const KERN_KDSET_TYPEFILTER: ::c_int = 22; -pub const KERN_KDBUFWAIT: ::c_int = 23; -pub const KERN_KDCPUMAP: ::c_int = 24; -pub const KERN_PROC_ALL: ::c_int = 0; -pub const KERN_PROC_PID: ::c_int = 1; -pub const KERN_PROC_PGRP: ::c_int = 2; -pub const KERN_PROC_SESSION: ::c_int = 3; -pub const KERN_PROC_TTY: ::c_int = 4; -pub const KERN_PROC_UID: ::c_int = 5; -pub const KERN_PROC_RUID: ::c_int = 6; -pub const KERN_PROC_LCID: ::c_int = 7; -pub const KERN_SUCCESS: ::c_int = 0; -pub const KERN_INVALID_ADDRESS: ::c_int = 1; -pub const KERN_PROTECTION_FAILURE: ::c_int = 2; -pub const KERN_NO_SPACE: ::c_int = 3; -pub const KERN_INVALID_ARGUMENT: ::c_int = 4; -pub const KERN_FAILURE: ::c_int = 5; -pub const KERN_RESOURCE_SHORTAGE: ::c_int = 6; -pub const KERN_NOT_RECEIVER: ::c_int = 7; -pub const KERN_NO_ACCESS: ::c_int = 8; -pub const KERN_MEMORY_FAILURE: ::c_int = 9; -pub const KERN_MEMORY_ERROR: ::c_int = 10; -pub const KERN_ALREADY_IN_SET: ::c_int = 11; -pub const KERN_NOT_IN_SET: ::c_int = 12; -pub const KERN_NAME_EXISTS: ::c_int = 13; -pub const KERN_ABORTED: ::c_int = 14; -pub const KERN_INVALID_NAME: ::c_int = 15; -pub const KERN_INVALID_TASK: ::c_int = 16; -pub const KERN_INVALID_RIGHT: ::c_int = 17; -pub const KERN_INVALID_VALUE: ::c_int = 18; -pub const KERN_UREFS_OVERFLOW: ::c_int = 19; -pub const KERN_INVALID_CAPABILITY: ::c_int = 20; -pub const KERN_RIGHT_EXISTS: ::c_int = 21; -pub const KERN_INVALID_HOST: ::c_int = 22; -pub const KERN_MEMORY_PRESENT: ::c_int = 23; -pub const KERN_MEMORY_DATA_MOVED: ::c_int = 24; -pub const KERN_MEMORY_RESTART_COPY: ::c_int = 25; -pub const KERN_INVALID_PROCESSOR_SET: ::c_int = 26; -pub const KERN_POLICY_LIMIT: ::c_int = 27; -pub const KERN_INVALID_POLICY: ::c_int = 28; -pub const KERN_INVALID_OBJECT: ::c_int = 29; -pub const KERN_ALREADY_WAITING: ::c_int = 30; -pub const KERN_DEFAULT_SET: ::c_int = 31; -pub const KERN_EXCEPTION_PROTECTED: ::c_int = 32; -pub const KERN_INVALID_LEDGER: ::c_int = 33; -pub const KERN_INVALID_MEMORY_CONTROL: ::c_int = 34; -pub const KERN_INVALID_SECURITY: ::c_int = 35; -pub const KERN_NOT_DEPRESSED: ::c_int = 36; -pub const KERN_TERMINATED: ::c_int = 37; -pub const KERN_LOCK_SET_DESTROYED: ::c_int = 38; -pub const KERN_LOCK_UNSTABLE: ::c_int = 39; -pub const KERN_LOCK_OWNED: ::c_int = 40; -pub const KERN_LOCK_OWNED_SELF: ::c_int = 41; -pub const KERN_SEMAPHORE_DESTROYED: ::c_int = 42; -pub const KERN_RPC_SERVER_TERMINATED: ::c_int = 43; -pub const KERN_RPC_TERMINATE_ORPHAN: ::c_int = 44; -pub const KERN_RPC_CONTINUE_ORPHAN: ::c_int = 45; -pub const KERN_NOT_SUPPORTED: ::c_int = 46; -pub const KERN_NODE_DOWN: ::c_int = 47; -pub const KERN_NOT_WAITING: ::c_int = 48; -pub const KERN_OPERATION_TIMED_OUT: ::c_int = 49; -pub const KERN_CODESIGN_ERROR: ::c_int = 50; -pub const KERN_POLICY_STATIC: ::c_int = 51; -pub const KERN_INSUFFICIENT_BUFFER_SIZE: ::c_int = 52; -pub const KIPC_MAXSOCKBUF: ::c_int = 1; -pub const KIPC_SOCKBUF_WASTE: ::c_int = 2; -pub const KIPC_SOMAXCONN: ::c_int = 3; -pub const KIPC_MAX_LINKHDR: ::c_int = 4; -pub const KIPC_MAX_PROTOHDR: ::c_int = 5; -pub const KIPC_MAX_HDR: ::c_int = 6; -pub const KIPC_MAX_DATALEN: ::c_int = 7; -pub const KIPC_MBSTAT: ::c_int = 8; -pub const KIPC_NMBCLUSTERS: ::c_int = 9; -pub const KIPC_SOQLIMITCOMPAT: ::c_int = 10; -pub const VM_METER: ::c_int = 1; -pub const VM_LOADAVG: ::c_int = 2; -pub const VM_MACHFACTOR: ::c_int = 4; -pub const VM_SWAPUSAGE: ::c_int = 5; -pub const VM_MAXID: ::c_int = 6; -pub const VM_PROT_NONE: ::vm_prot_t = 0x00; -pub const VM_PROT_READ: ::vm_prot_t = 0x01; -pub const VM_PROT_WRITE: ::vm_prot_t = 0x02; -pub const VM_PROT_EXECUTE: ::vm_prot_t = 0x04; -pub const MEMORY_OBJECT_NULL: ::memory_object_t = 0; -pub const HW_MACHINE: ::c_int = 1; -pub const HW_MODEL: ::c_int = 2; -pub const HW_NCPU: ::c_int = 3; -pub const HW_BYTEORDER: ::c_int = 4; -pub const HW_PHYSMEM: ::c_int = 5; -pub const HW_USERMEM: ::c_int = 6; -pub const HW_PAGESIZE: ::c_int = 7; -pub const HW_DISKNAMES: ::c_int = 8; -pub const HW_DISKSTATS: ::c_int = 9; -pub const HW_EPOCH: ::c_int = 10; -pub const HW_FLOATINGPT: ::c_int = 11; -pub const HW_MACHINE_ARCH: ::c_int = 12; -pub const HW_VECTORUNIT: ::c_int = 13; -pub const HW_BUS_FREQ: ::c_int = 14; -pub const HW_CPU_FREQ: ::c_int = 15; -pub const HW_CACHELINE: ::c_int = 16; -pub const HW_L1ICACHESIZE: ::c_int = 17; -pub const HW_L1DCACHESIZE: ::c_int = 18; -pub const HW_L2SETTINGS: ::c_int = 19; -pub const HW_L2CACHESIZE: ::c_int = 20; -pub const HW_L3SETTINGS: ::c_int = 21; -pub const HW_L3CACHESIZE: ::c_int = 22; -pub const HW_TB_FREQ: ::c_int = 23; -pub const HW_MEMSIZE: ::c_int = 24; -pub const HW_AVAILCPU: ::c_int = 25; -pub const HW_TARGET: ::c_int = 26; -pub const HW_PRODUCT: ::c_int = 27; -pub const HW_MAXID: ::c_int = 28; -pub const USER_CS_PATH: ::c_int = 1; -pub const USER_BC_BASE_MAX: ::c_int = 2; -pub const USER_BC_DIM_MAX: ::c_int = 3; -pub const USER_BC_SCALE_MAX: ::c_int = 4; -pub const USER_BC_STRING_MAX: ::c_int = 5; -pub const USER_COLL_WEIGHTS_MAX: ::c_int = 6; -pub const USER_EXPR_NEST_MAX: ::c_int = 7; -pub const USER_LINE_MAX: ::c_int = 8; -pub const USER_RE_DUP_MAX: ::c_int = 9; -pub const USER_POSIX2_VERSION: ::c_int = 10; -pub const USER_POSIX2_C_BIND: ::c_int = 11; -pub const USER_POSIX2_C_DEV: ::c_int = 12; -pub const USER_POSIX2_CHAR_TERM: ::c_int = 13; -pub const USER_POSIX2_FORT_DEV: ::c_int = 14; -pub const USER_POSIX2_FORT_RUN: ::c_int = 15; -pub const USER_POSIX2_LOCALEDEF: ::c_int = 16; -pub const USER_POSIX2_SW_DEV: ::c_int = 17; -pub const USER_POSIX2_UPE: ::c_int = 18; -pub const USER_STREAM_MAX: ::c_int = 19; -pub const USER_TZNAME_MAX: ::c_int = 20; -pub const USER_MAXID: ::c_int = 21; -pub const CTL_DEBUG_NAME: ::c_int = 0; -pub const CTL_DEBUG_VALUE: ::c_int = 1; -pub const CTL_DEBUG_MAXID: ::c_int = 20; - -pub const PRIO_DARWIN_THREAD: ::c_int = 3; -pub const PRIO_DARWIN_PROCESS: ::c_int = 4; -pub const PRIO_DARWIN_BG: ::c_int = 0x1000; -pub const PRIO_DARWIN_NONUI: ::c_int = 0x1001; - -pub const SEM_FAILED: *mut sem_t = -1isize as *mut ::sem_t; - -pub const AI_PASSIVE: ::c_int = 0x00000001; -pub const AI_CANONNAME: ::c_int = 0x00000002; -pub const AI_NUMERICHOST: ::c_int = 0x00000004; -pub const AI_NUMERICSERV: ::c_int = 0x00001000; -pub const AI_MASK: ::c_int = +pub const KERN_KDDISABLE_BG_TRACE: c_int = 20; +pub const KERN_KDREADCURTHRMAP: c_int = 21; +pub const KERN_KDSET_TYPEFILTER: c_int = 22; +pub const KERN_KDBUFWAIT: c_int = 23; +pub const KERN_KDCPUMAP: c_int = 24; +pub const KERN_PROC_ALL: c_int = 0; +pub const KERN_PROC_PID: c_int = 1; +pub const KERN_PROC_PGRP: c_int = 2; +pub const KERN_PROC_SESSION: c_int = 3; +pub const KERN_PROC_TTY: c_int = 4; +pub const KERN_PROC_UID: c_int = 5; +pub const KERN_PROC_RUID: c_int = 6; +pub const KERN_PROC_LCID: c_int = 7; +pub const KERN_SUCCESS: c_int = 0; +pub const KERN_INVALID_ADDRESS: c_int = 1; +pub const KERN_PROTECTION_FAILURE: c_int = 2; +pub const KERN_NO_SPACE: c_int = 3; +pub const KERN_INVALID_ARGUMENT: c_int = 4; +pub const KERN_FAILURE: c_int = 5; +pub const KERN_RESOURCE_SHORTAGE: c_int = 6; +pub const KERN_NOT_RECEIVER: c_int = 7; +pub const KERN_NO_ACCESS: c_int = 8; +pub const KERN_MEMORY_FAILURE: c_int = 9; +pub const KERN_MEMORY_ERROR: c_int = 10; +pub const KERN_ALREADY_IN_SET: c_int = 11; +pub const KERN_NOT_IN_SET: c_int = 12; +pub const KERN_NAME_EXISTS: c_int = 13; +pub const KERN_ABORTED: c_int = 14; +pub const KERN_INVALID_NAME: c_int = 15; +pub const KERN_INVALID_TASK: c_int = 16; +pub const KERN_INVALID_RIGHT: c_int = 17; +pub const KERN_INVALID_VALUE: c_int = 18; +pub const KERN_UREFS_OVERFLOW: c_int = 19; +pub const KERN_INVALID_CAPABILITY: c_int = 20; +pub const KERN_RIGHT_EXISTS: c_int = 21; +pub const KERN_INVALID_HOST: c_int = 22; +pub const KERN_MEMORY_PRESENT: c_int = 23; +pub const KERN_MEMORY_DATA_MOVED: c_int = 24; +pub const KERN_MEMORY_RESTART_COPY: c_int = 25; +pub const KERN_INVALID_PROCESSOR_SET: c_int = 26; +pub const KERN_POLICY_LIMIT: c_int = 27; +pub const KERN_INVALID_POLICY: c_int = 28; +pub const KERN_INVALID_OBJECT: c_int = 29; +pub const KERN_ALREADY_WAITING: c_int = 30; +pub const KERN_DEFAULT_SET: c_int = 31; +pub const KERN_EXCEPTION_PROTECTED: c_int = 32; +pub const KERN_INVALID_LEDGER: c_int = 33; +pub const KERN_INVALID_MEMORY_CONTROL: c_int = 34; +pub const KERN_INVALID_SECURITY: c_int = 35; +pub const KERN_NOT_DEPRESSED: c_int = 36; +pub const KERN_TERMINATED: c_int = 37; +pub const KERN_LOCK_SET_DESTROYED: c_int = 38; +pub const KERN_LOCK_UNSTABLE: c_int = 39; +pub const KERN_LOCK_OWNED: c_int = 40; +pub const KERN_LOCK_OWNED_SELF: c_int = 41; +pub const KERN_SEMAPHORE_DESTROYED: c_int = 42; +pub const KERN_RPC_SERVER_TERMINATED: c_int = 43; +pub const KERN_RPC_TERMINATE_ORPHAN: c_int = 44; +pub const KERN_RPC_CONTINUE_ORPHAN: c_int = 45; +pub const KERN_NOT_SUPPORTED: c_int = 46; +pub const KERN_NODE_DOWN: c_int = 47; +pub const KERN_NOT_WAITING: c_int = 48; +pub const KERN_OPERATION_TIMED_OUT: c_int = 49; +pub const KERN_CODESIGN_ERROR: c_int = 50; +pub const KERN_POLICY_STATIC: c_int = 51; +pub const KERN_INSUFFICIENT_BUFFER_SIZE: c_int = 52; +pub const KIPC_MAXSOCKBUF: c_int = 1; +pub const KIPC_SOCKBUF_WASTE: c_int = 2; +pub const KIPC_SOMAXCONN: c_int = 3; +pub const KIPC_MAX_LINKHDR: c_int = 4; +pub const KIPC_MAX_PROTOHDR: c_int = 5; +pub const KIPC_MAX_HDR: c_int = 6; +pub const KIPC_MAX_DATALEN: c_int = 7; +pub const KIPC_MBSTAT: c_int = 8; +pub const KIPC_NMBCLUSTERS: c_int = 9; +pub const KIPC_SOQLIMITCOMPAT: c_int = 10; +pub const VM_METER: c_int = 1; +pub const VM_LOADAVG: c_int = 2; +pub const VM_MACHFACTOR: c_int = 4; +pub const VM_SWAPUSAGE: c_int = 5; +pub const VM_MAXID: c_int = 6; +pub const VM_PROT_NONE: crate::vm_prot_t = 0x00; +pub const VM_PROT_READ: crate::vm_prot_t = 0x01; +pub const VM_PROT_WRITE: crate::vm_prot_t = 0x02; +pub const VM_PROT_EXECUTE: crate::vm_prot_t = 0x04; +pub const MEMORY_OBJECT_NULL: crate::memory_object_t = 0; +pub const HW_MACHINE: c_int = 1; +pub const HW_MODEL: c_int = 2; +pub const HW_NCPU: c_int = 3; +pub const HW_BYTEORDER: c_int = 4; +pub const HW_PHYSMEM: c_int = 5; +pub const HW_USERMEM: c_int = 6; +pub const HW_PAGESIZE: c_int = 7; +pub const HW_DISKNAMES: c_int = 8; +pub const HW_DISKSTATS: c_int = 9; +pub const HW_EPOCH: c_int = 10; +pub const HW_FLOATINGPT: c_int = 11; +pub const HW_MACHINE_ARCH: c_int = 12; +pub const HW_VECTORUNIT: c_int = 13; +pub const HW_BUS_FREQ: c_int = 14; +pub const HW_CPU_FREQ: c_int = 15; +pub const HW_CACHELINE: c_int = 16; +pub const HW_L1ICACHESIZE: c_int = 17; +pub const HW_L1DCACHESIZE: c_int = 18; +pub const HW_L2SETTINGS: c_int = 19; +pub const HW_L2CACHESIZE: c_int = 20; +pub const HW_L3SETTINGS: c_int = 21; +pub const HW_L3CACHESIZE: c_int = 22; +pub const HW_TB_FREQ: c_int = 23; +pub const HW_MEMSIZE: c_int = 24; +pub const HW_AVAILCPU: c_int = 25; +pub const HW_TARGET: c_int = 26; +pub const HW_PRODUCT: c_int = 27; +pub const HW_MAXID: c_int = 28; +pub const USER_CS_PATH: c_int = 1; +pub const USER_BC_BASE_MAX: c_int = 2; +pub const USER_BC_DIM_MAX: c_int = 3; +pub const USER_BC_SCALE_MAX: c_int = 4; +pub const USER_BC_STRING_MAX: c_int = 5; +pub const USER_COLL_WEIGHTS_MAX: c_int = 6; +pub const USER_EXPR_NEST_MAX: c_int = 7; +pub const USER_LINE_MAX: c_int = 8; +pub const USER_RE_DUP_MAX: c_int = 9; +pub const USER_POSIX2_VERSION: c_int = 10; +pub const USER_POSIX2_C_BIND: c_int = 11; +pub const USER_POSIX2_C_DEV: c_int = 12; +pub const USER_POSIX2_CHAR_TERM: c_int = 13; +pub const USER_POSIX2_FORT_DEV: c_int = 14; +pub const USER_POSIX2_FORT_RUN: c_int = 15; +pub const USER_POSIX2_LOCALEDEF: c_int = 16; +pub const USER_POSIX2_SW_DEV: c_int = 17; +pub const USER_POSIX2_UPE: c_int = 18; +pub const USER_STREAM_MAX: c_int = 19; +pub const USER_TZNAME_MAX: c_int = 20; +pub const USER_MAXID: c_int = 21; +pub const CTL_DEBUG_NAME: c_int = 0; +pub const CTL_DEBUG_VALUE: c_int = 1; +pub const CTL_DEBUG_MAXID: c_int = 20; + +pub const PRIO_DARWIN_THREAD: c_int = 3; +pub const PRIO_DARWIN_PROCESS: c_int = 4; +pub const PRIO_DARWIN_BG: c_int = 0x1000; +pub const PRIO_DARWIN_NONUI: c_int = 0x1001; + +pub const SEM_FAILED: *mut sem_t = -1isize as *mut crate::sem_t; + +pub const AI_PASSIVE: c_int = 0x00000001; +pub const AI_CANONNAME: c_int = 0x00000002; +pub const AI_NUMERICHOST: c_int = 0x00000004; +pub const AI_NUMERICSERV: c_int = 0x00001000; +pub const AI_MASK: c_int = AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST | AI_NUMERICSERV | AI_ADDRCONFIG; -pub const AI_ALL: ::c_int = 0x00000100; -pub const AI_V4MAPPED_CFG: ::c_int = 0x00000200; -pub const AI_ADDRCONFIG: ::c_int = 0x00000400; -pub const AI_V4MAPPED: ::c_int = 0x00000800; -pub const AI_DEFAULT: ::c_int = AI_V4MAPPED_CFG | AI_ADDRCONFIG; -pub const AI_UNUSABLE: ::c_int = 0x10000000; - -pub const SIGEV_NONE: ::c_int = 0; -pub const SIGEV_SIGNAL: ::c_int = 1; -pub const SIGEV_THREAD: ::c_int = 3; - -pub const AIO_CANCELED: ::c_int = 2; -pub const AIO_NOTCANCELED: ::c_int = 4; -pub const AIO_ALLDONE: ::c_int = 1; +pub const AI_ALL: c_int = 0x00000100; +pub const AI_V4MAPPED_CFG: c_int = 0x00000200; +pub const AI_ADDRCONFIG: c_int = 0x00000400; +pub const AI_V4MAPPED: c_int = 0x00000800; +pub const AI_DEFAULT: c_int = AI_V4MAPPED_CFG | AI_ADDRCONFIG; +pub const AI_UNUSABLE: c_int = 0x10000000; + +pub const SIGEV_NONE: c_int = 0; +pub const SIGEV_SIGNAL: c_int = 1; +pub const SIGEV_THREAD: c_int = 3; + +pub const AIO_CANCELED: c_int = 2; +pub const AIO_NOTCANCELED: c_int = 4; +pub const AIO_ALLDONE: c_int = 1; #[deprecated( since = "0.2.64", note = "Can vary at runtime. Use sysconf(3) instead" )] -pub const AIO_LISTIO_MAX: ::c_int = 16; -pub const LIO_NOP: ::c_int = 0; -pub const LIO_WRITE: ::c_int = 2; -pub const LIO_READ: ::c_int = 1; -pub const LIO_WAIT: ::c_int = 2; -pub const LIO_NOWAIT: ::c_int = 1; - -pub const WEXITED: ::c_int = 0x00000004; -pub const WSTOPPED: ::c_int = 0x00000008; -pub const WCONTINUED: ::c_int = 0x00000010; -pub const WNOWAIT: ::c_int = 0x00000020; +pub const AIO_LISTIO_MAX: c_int = 16; +pub const LIO_NOP: c_int = 0; +pub const LIO_WRITE: c_int = 2; +pub const LIO_READ: c_int = 1; +pub const LIO_WAIT: c_int = 2; +pub const LIO_NOWAIT: c_int = 1; + +pub const WEXITED: c_int = 0x00000004; +pub const WSTOPPED: c_int = 0x00000008; +pub const WCONTINUED: c_int = 0x00000010; +pub const WNOWAIT: c_int = 0x00000020; pub const P_ALL: idtype_t = 0; pub const P_PID: idtype_t = 1; @@ -5135,79 +5141,79 @@ pub const P_PGID: idtype_t = 2; pub const UTIME_OMIT: c_long = -2; pub const UTIME_NOW: c_long = -1; -pub const XATTR_NOFOLLOW: ::c_int = 0x0001; -pub const XATTR_CREATE: ::c_int = 0x0002; -pub const XATTR_REPLACE: ::c_int = 0x0004; -pub const XATTR_NOSECURITY: ::c_int = 0x0008; -pub const XATTR_NODEFAULT: ::c_int = 0x0010; -pub const XATTR_SHOWCOMPRESSION: ::c_int = 0x0020; +pub const XATTR_NOFOLLOW: c_int = 0x0001; +pub const XATTR_CREATE: c_int = 0x0002; +pub const XATTR_REPLACE: c_int = 0x0004; +pub const XATTR_NOSECURITY: c_int = 0x0008; +pub const XATTR_NODEFAULT: c_int = 0x0010; +pub const XATTR_SHOWCOMPRESSION: c_int = 0x0020; -pub const NET_RT_IFLIST2: ::c_int = 0x0006; +pub const NET_RT_IFLIST2: c_int = 0x0006; // net/route.h -pub const RTF_DELCLONE: ::c_int = 0x80; -pub const RTF_CLONING: ::c_int = 0x100; -pub const RTF_XRESOLVE: ::c_int = 0x200; -pub const RTF_LLINFO: ::c_int = 0x400; -pub const RTF_NOIFREF: ::c_int = 0x2000; -pub const RTF_PRCLONING: ::c_int = 0x10000; -pub const RTF_WASCLONED: ::c_int = 0x20000; -pub const RTF_PROTO3: ::c_int = 0x40000; -pub const RTF_PINNED: ::c_int = 0x100000; -pub const RTF_LOCAL: ::c_int = 0x200000; -pub const RTF_BROADCAST: ::c_int = 0x400000; -pub const RTF_MULTICAST: ::c_int = 0x800000; -pub const RTF_IFSCOPE: ::c_int = 0x1000000; -pub const RTF_CONDEMNED: ::c_int = 0x2000000; -pub const RTF_IFREF: ::c_int = 0x4000000; -pub const RTF_PROXY: ::c_int = 0x8000000; -pub const RTF_ROUTER: ::c_int = 0x10000000; -pub const RTF_DEAD: ::c_int = 0x20000000; -pub const RTF_GLOBAL: ::c_int = 0x40000000; - -pub const RTM_VERSION: ::c_int = 5; +pub const RTF_DELCLONE: c_int = 0x80; +pub const RTF_CLONING: c_int = 0x100; +pub const RTF_XRESOLVE: c_int = 0x200; +pub const RTF_LLINFO: c_int = 0x400; +pub const RTF_NOIFREF: c_int = 0x2000; +pub const RTF_PRCLONING: c_int = 0x10000; +pub const RTF_WASCLONED: c_int = 0x20000; +pub const RTF_PROTO3: c_int = 0x40000; +pub const RTF_PINNED: c_int = 0x100000; +pub const RTF_LOCAL: c_int = 0x200000; +pub const RTF_BROADCAST: c_int = 0x400000; +pub const RTF_MULTICAST: c_int = 0x800000; +pub const RTF_IFSCOPE: c_int = 0x1000000; +pub const RTF_CONDEMNED: c_int = 0x2000000; +pub const RTF_IFREF: c_int = 0x4000000; +pub const RTF_PROXY: c_int = 0x8000000; +pub const RTF_ROUTER: c_int = 0x10000000; +pub const RTF_DEAD: c_int = 0x20000000; +pub const RTF_GLOBAL: c_int = 0x40000000; + +pub const RTM_VERSION: c_int = 5; // Message types -pub const RTM_LOCK: ::c_int = 0x8; -pub const RTM_OLDADD: ::c_int = 0x9; -pub const RTM_OLDDEL: ::c_int = 0xa; -pub const RTM_RESOLVE: ::c_int = 0xb; -pub const RTM_NEWADDR: ::c_int = 0xc; -pub const RTM_DELADDR: ::c_int = 0xd; -pub const RTM_IFINFO: ::c_int = 0xe; -pub const RTM_NEWMADDR: ::c_int = 0xf; -pub const RTM_DELMADDR: ::c_int = 0x10; -pub const RTM_IFINFO2: ::c_int = 0x12; -pub const RTM_NEWMADDR2: ::c_int = 0x13; -pub const RTM_GET2: ::c_int = 0x14; +pub const RTM_LOCK: c_int = 0x8; +pub const RTM_OLDADD: c_int = 0x9; +pub const RTM_OLDDEL: c_int = 0xa; +pub const RTM_RESOLVE: c_int = 0xb; +pub const RTM_NEWADDR: c_int = 0xc; +pub const RTM_DELADDR: c_int = 0xd; +pub const RTM_IFINFO: c_int = 0xe; +pub const RTM_NEWMADDR: c_int = 0xf; +pub const RTM_DELMADDR: c_int = 0x10; +pub const RTM_IFINFO2: c_int = 0x12; +pub const RTM_NEWMADDR2: c_int = 0x13; +pub const RTM_GET2: c_int = 0x14; // Bitmask values for rtm_inits and rmx_locks. -pub const RTV_MTU: ::c_int = 0x1; -pub const RTV_HOPCOUNT: ::c_int = 0x2; -pub const RTV_EXPIRE: ::c_int = 0x4; -pub const RTV_RPIPE: ::c_int = 0x8; -pub const RTV_SPIPE: ::c_int = 0x10; -pub const RTV_SSTHRESH: ::c_int = 0x20; -pub const RTV_RTT: ::c_int = 0x40; -pub const RTV_RTTVAR: ::c_int = 0x80; - -pub const RTAX_MAX: ::c_int = 8; - -pub const KERN_PROCARGS2: ::c_int = 49; - -pub const PROC_PIDTASKALLINFO: ::c_int = 2; -pub const PROC_PIDTBSDINFO: ::c_int = 3; -pub const PROC_PIDTASKINFO: ::c_int = 4; -pub const PROC_PIDTHREADINFO: ::c_int = 5; -pub const PROC_PIDVNODEPATHINFO: ::c_int = 9; -pub const PROC_PIDPATHINFO_MAXSIZE: ::c_int = 4096; -pub const PROC_CSM_ALL: ::c_uint = 0x0001; -pub const PROC_CSM_NOSMT: ::c_uint = 0x0002; -pub const PROC_CSM_TECS: ::c_uint = 0x0004; +pub const RTV_MTU: c_int = 0x1; +pub const RTV_HOPCOUNT: c_int = 0x2; +pub const RTV_EXPIRE: c_int = 0x4; +pub const RTV_RPIPE: c_int = 0x8; +pub const RTV_SPIPE: c_int = 0x10; +pub const RTV_SSTHRESH: c_int = 0x20; +pub const RTV_RTT: c_int = 0x40; +pub const RTV_RTTVAR: c_int = 0x80; + +pub const RTAX_MAX: c_int = 8; + +pub const KERN_PROCARGS2: c_int = 49; + +pub const PROC_PIDTASKALLINFO: c_int = 2; +pub const PROC_PIDTBSDINFO: c_int = 3; +pub const PROC_PIDTASKINFO: c_int = 4; +pub const PROC_PIDTHREADINFO: c_int = 5; +pub const PROC_PIDVNODEPATHINFO: c_int = 9; +pub const PROC_PIDPATHINFO_MAXSIZE: c_int = 4096; +pub const PROC_CSM_ALL: c_uint = 0x0001; +pub const PROC_CSM_NOSMT: c_uint = 0x0002; +pub const PROC_CSM_TECS: c_uint = 0x0004; pub const MAXCOMLEN: usize = 16; pub const MAXTHREADNAMESIZE: usize = 64; -pub const XUCRED_VERSION: ::c_uint = 0; +pub const XUCRED_VERSION: c_uint = 0; pub const LC_SEGMENT: u32 = 0x1; pub const LC_SEGMENT_64: u32 = 0x19; @@ -5216,153 +5222,153 @@ pub const MH_MAGIC: u32 = 0xfeedface; pub const MH_MAGIC_64: u32 = 0xfeedfacf; // net/if_utun.h -pub const UTUN_OPT_FLAGS: ::c_int = 1; -pub const UTUN_OPT_IFNAME: ::c_int = 2; +pub const UTUN_OPT_FLAGS: c_int = 1; +pub const UTUN_OPT_IFNAME: c_int = 2; // net/bpf.h -pub const DLT_NULL: ::c_uint = 0; // no link-layer encapsulation -pub const DLT_EN10MB: ::c_uint = 1; // Ethernet (10Mb) -pub const DLT_EN3MB: ::c_uint = 2; // Experimental Ethernet (3Mb) -pub const DLT_AX25: ::c_uint = 3; // Amateur Radio AX.25 -pub const DLT_PRONET: ::c_uint = 4; // Proteon ProNET Token Ring -pub const DLT_CHAOS: ::c_uint = 5; // Chaos -pub const DLT_IEEE802: ::c_uint = 6; // IEEE 802 Networks -pub const DLT_ARCNET: ::c_uint = 7; // ARCNET -pub const DLT_SLIP: ::c_uint = 8; // Serial Line IP -pub const DLT_PPP: ::c_uint = 9; // Point-to-point Protocol -pub const DLT_FDDI: ::c_uint = 10; // FDDI -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; +pub const DLT_NULL: c_uint = 0; // no link-layer encapsulation +pub const DLT_EN10MB: c_uint = 1; // Ethernet (10Mb) +pub const DLT_EN3MB: c_uint = 2; // Experimental Ethernet (3Mb) +pub const DLT_AX25: c_uint = 3; // Amateur Radio AX.25 +pub const DLT_PRONET: c_uint = 4; // Proteon ProNET Token Ring +pub const DLT_CHAOS: c_uint = 5; // Chaos +pub const DLT_IEEE802: c_uint = 6; // IEEE 802 Networks +pub const DLT_ARCNET: c_uint = 7; // ARCNET +pub const DLT_SLIP: c_uint = 8; // Serial Line IP +pub const DLT_PPP: c_uint = 9; // Point-to-point Protocol +pub const DLT_FDDI: c_uint = 10; // FDDI +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/HEAD/bsd/net/bpf.h#L100 // sizeof(i32) -pub const BPF_ALIGNMENT: ::c_int = 4; +pub const BPF_ALIGNMENT: c_int = 4; // sys/mount.h -pub const MNT_NODEV: ::c_int = 0x00000010; -pub const MNT_UNION: ::c_int = 0x00000020; -pub const MNT_CPROTECT: ::c_int = 0x00000080; +pub const MNT_NODEV: c_int = 0x00000010; +pub const MNT_UNION: c_int = 0x00000020; +pub const MNT_CPROTECT: c_int = 0x00000080; // MAC labeled / "quarantined" flag -pub const MNT_QUARANTINE: ::c_int = 0x00000400; +pub const MNT_QUARANTINE: c_int = 0x00000400; // Flags set by internal operations. -pub const MNT_LOCAL: ::c_int = 0x00001000; -pub const MNT_QUOTA: ::c_int = 0x00002000; -pub const MNT_ROOTFS: ::c_int = 0x00004000; -pub const MNT_DOVOLFS: ::c_int = 0x00008000; - -pub const MNT_DONTBROWSE: ::c_int = 0x00100000; -pub const MNT_IGNORE_OWNERSHIP: ::c_int = 0x00200000; -pub const MNT_AUTOMOUNTED: ::c_int = 0x00400000; -pub const MNT_JOURNALED: ::c_int = 0x00800000; -pub const MNT_NOUSERXATTR: ::c_int = 0x01000000; -pub const MNT_DEFWRITE: ::c_int = 0x02000000; -pub const MNT_MULTILABEL: ::c_int = 0x04000000; -pub const MNT_NOATIME: ::c_int = 0x10000000; -pub const MNT_SNAPSHOT: ::c_int = 0x40000000; +pub const MNT_LOCAL: c_int = 0x00001000; +pub const MNT_QUOTA: c_int = 0x00002000; +pub const MNT_ROOTFS: c_int = 0x00004000; +pub const MNT_DOVOLFS: c_int = 0x00008000; + +pub const MNT_DONTBROWSE: c_int = 0x00100000; +pub const MNT_IGNORE_OWNERSHIP: c_int = 0x00200000; +pub const MNT_AUTOMOUNTED: c_int = 0x00400000; +pub const MNT_JOURNALED: c_int = 0x00800000; +pub const MNT_NOUSERXATTR: c_int = 0x01000000; +pub const MNT_DEFWRITE: c_int = 0x02000000; +pub const MNT_MULTILABEL: c_int = 0x04000000; +pub const MNT_NOATIME: c_int = 0x10000000; +pub const MNT_SNAPSHOT: c_int = 0x40000000; // External filesystem command modifier flags. -pub const MNT_NOBLOCK: ::c_int = 0x00020000; +pub const MNT_NOBLOCK: c_int = 0x00020000; // sys/spawn.h: // DIFF(main): changed to `c_short` in f62eb023ab -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; +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: -pub const IPC_CREAT: ::c_int = 0x200; -pub const IPC_EXCL: ::c_int = 0x400; -pub const IPC_NOWAIT: ::c_int = 0x800; +pub const IPC_CREAT: c_int = 0x200; +pub const IPC_EXCL: c_int = 0x400; +pub const IPC_NOWAIT: c_int = 0x800; pub const IPC_PRIVATE: key_t = 0; -pub const IPC_RMID: ::c_int = 0; -pub const IPC_SET: ::c_int = 1; -pub const IPC_STAT: ::c_int = 2; +pub const IPC_RMID: c_int = 0; +pub const IPC_SET: c_int = 1; +pub const IPC_STAT: c_int = 2; -pub const IPC_R: ::c_int = 0x100; -pub const IPC_W: ::c_int = 0x80; -pub const IPC_M: ::c_int = 0x1000; +pub const IPC_R: c_int = 0x100; +pub const IPC_W: c_int = 0x80; +pub const IPC_M: c_int = 0x1000; // sys/sem.h -pub const SEM_UNDO: ::c_int = 0o10000; +pub const SEM_UNDO: c_int = 0o10000; -pub const GETNCNT: ::c_int = 3; -pub const GETPID: ::c_int = 4; -pub const GETVAL: ::c_int = 5; -pub const GETALL: ::c_int = 6; -pub const GETZCNT: ::c_int = 7; -pub const SETVAL: ::c_int = 8; -pub const SETALL: ::c_int = 9; +pub const GETNCNT: c_int = 3; +pub const GETPID: c_int = 4; +pub const GETVAL: c_int = 5; +pub const GETALL: c_int = 6; +pub const GETZCNT: c_int = 7; +pub const SETVAL: c_int = 8; +pub const SETALL: c_int = 9; // sys/shm.h -pub const SHM_RDONLY: ::c_int = 0x1000; -pub const SHM_RND: ::c_int = 0x2000; +pub const SHM_RDONLY: c_int = 0x1000; +pub const SHM_RND: c_int = 0x2000; #[cfg(target_arch = "aarch64")] -pub const SHMLBA: ::c_int = 16 * 1024; +pub const SHMLBA: c_int = 16 * 1024; #[cfg(not(target_arch = "aarch64"))] -pub const SHMLBA: ::c_int = 4096; -pub const SHM_R: ::c_int = IPC_R; -pub const SHM_W: ::c_int = IPC_W; +pub const SHMLBA: c_int = 4096; +pub const SHM_R: c_int = IPC_R; +pub const SHM_W: c_int = IPC_W; // Flags for chflags(2) -pub const UF_SETTABLE: ::c_uint = 0x0000ffff; -pub const UF_NODUMP: ::c_uint = 0x00000001; -pub const UF_IMMUTABLE: ::c_uint = 0x00000002; -pub const UF_APPEND: ::c_uint = 0x00000004; -pub const UF_OPAQUE: ::c_uint = 0x00000008; -pub const UF_COMPRESSED: ::c_uint = 0x00000020; -pub const UF_TRACKED: ::c_uint = 0x00000040; -pub const SF_SETTABLE: ::c_uint = 0xffff0000; -pub const SF_ARCHIVED: ::c_uint = 0x00010000; -pub const SF_IMMUTABLE: ::c_uint = 0x00020000; -pub const SF_APPEND: ::c_uint = 0x00040000; -pub const UF_HIDDEN: ::c_uint = 0x00008000; +pub const UF_SETTABLE: c_uint = 0x0000ffff; +pub const UF_NODUMP: c_uint = 0x00000001; +pub const UF_IMMUTABLE: c_uint = 0x00000002; +pub const UF_APPEND: c_uint = 0x00000004; +pub const UF_OPAQUE: c_uint = 0x00000008; +pub const UF_COMPRESSED: c_uint = 0x00000020; +pub const UF_TRACKED: c_uint = 0x00000040; +pub const SF_SETTABLE: c_uint = 0xffff0000; +pub const SF_ARCHIVED: c_uint = 0x00010000; +pub const SF_IMMUTABLE: c_uint = 0x00020000; +pub const SF_APPEND: c_uint = 0x00040000; +pub const UF_HIDDEN: c_uint = 0x00008000; // -pub const NTP_API: ::c_int = 4; -pub const MAXPHASE: ::c_long = 500000000; -pub const MAXFREQ: ::c_long = 500000; -pub const MINSEC: ::c_int = 256; -pub const MAXSEC: ::c_int = 2048; -pub const NANOSECOND: ::c_long = 1000000000; -pub const SCALE_PPM: ::c_int = 65; -pub const MAXTC: ::c_int = 10; -pub const MOD_OFFSET: ::c_uint = 0x0001; -pub const MOD_FREQUENCY: ::c_uint = 0x0002; -pub const MOD_MAXERROR: ::c_uint = 0x0004; -pub const MOD_ESTERROR: ::c_uint = 0x0008; -pub const MOD_STATUS: ::c_uint = 0x0010; -pub const MOD_TIMECONST: ::c_uint = 0x0020; -pub const MOD_PPSMAX: ::c_uint = 0x0040; -pub const MOD_TAI: ::c_uint = 0x0080; -pub const MOD_MICRO: ::c_uint = 0x1000; -pub const MOD_NANO: ::c_uint = 0x2000; -pub const MOD_CLKB: ::c_uint = 0x4000; -pub const MOD_CLKA: ::c_uint = 0x8000; -pub const STA_PLL: ::c_int = 0x0001; -pub const STA_PPSFREQ: ::c_int = 0x0002; -pub const STA_PPSTIME: ::c_int = 0x0004; -pub const STA_FLL: ::c_int = 0x0008; -pub const STA_INS: ::c_int = 0x0010; -pub const STA_DEL: ::c_int = 0x0020; -pub const STA_UNSYNC: ::c_int = 0x0040; -pub const STA_FREQHOLD: ::c_int = 0x0080; -pub const STA_PPSSIGNAL: ::c_int = 0x0100; -pub const STA_PPSJITTER: ::c_int = 0x0200; -pub const STA_PPSWANDER: ::c_int = 0x0400; -pub const STA_PPSERROR: ::c_int = 0x0800; -pub const STA_CLOCKERR: ::c_int = 0x1000; -pub const STA_NANO: ::c_int = 0x2000; -pub const STA_MODE: ::c_int = 0x4000; -pub const STA_CLK: ::c_int = 0x8000; -pub const STA_RONLY: ::c_int = STA_PPSSIGNAL +pub const NTP_API: c_int = 4; +pub const MAXPHASE: c_long = 500000000; +pub const MAXFREQ: c_long = 500000; +pub const MINSEC: c_int = 256; +pub const MAXSEC: c_int = 2048; +pub const NANOSECOND: c_long = 1000000000; +pub const SCALE_PPM: c_int = 65; +pub const MAXTC: c_int = 10; +pub const MOD_OFFSET: c_uint = 0x0001; +pub const MOD_FREQUENCY: c_uint = 0x0002; +pub const MOD_MAXERROR: c_uint = 0x0004; +pub const MOD_ESTERROR: c_uint = 0x0008; +pub const MOD_STATUS: c_uint = 0x0010; +pub const MOD_TIMECONST: c_uint = 0x0020; +pub const MOD_PPSMAX: c_uint = 0x0040; +pub const MOD_TAI: c_uint = 0x0080; +pub const MOD_MICRO: c_uint = 0x1000; +pub const MOD_NANO: c_uint = 0x2000; +pub const MOD_CLKB: c_uint = 0x4000; +pub const MOD_CLKA: c_uint = 0x8000; +pub const STA_PLL: c_int = 0x0001; +pub const STA_PPSFREQ: c_int = 0x0002; +pub const STA_PPSTIME: c_int = 0x0004; +pub const STA_FLL: c_int = 0x0008; +pub const STA_INS: c_int = 0x0010; +pub const STA_DEL: c_int = 0x0020; +pub const STA_UNSYNC: c_int = 0x0040; +pub const STA_FREQHOLD: c_int = 0x0080; +pub const STA_PPSSIGNAL: c_int = 0x0100; +pub const STA_PPSJITTER: c_int = 0x0200; +pub const STA_PPSWANDER: c_int = 0x0400; +pub const STA_PPSERROR: c_int = 0x0800; +pub const STA_CLOCKERR: c_int = 0x1000; +pub const STA_NANO: c_int = 0x2000; +pub const STA_MODE: c_int = 0x4000; +pub const STA_CLK: c_int = 0x8000; +pub const STA_RONLY: c_int = STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | STA_PPSERROR @@ -5370,42 +5376,42 @@ pub const STA_RONLY: ::c_int = STA_PPSSIGNAL | STA_NANO | STA_MODE | STA_CLK; -pub const TIME_OK: ::c_int = 0; -pub const TIME_INS: ::c_int = 1; -pub const TIME_DEL: ::c_int = 2; -pub const TIME_OOP: ::c_int = 3; -pub const TIME_WAIT: ::c_int = 4; -pub const TIME_ERROR: ::c_int = 5; +pub const TIME_OK: c_int = 0; +pub const TIME_INS: c_int = 1; +pub const TIME_DEL: c_int = 2; +pub const TIME_OOP: c_int = 3; +pub const TIME_WAIT: c_int = 4; +pub const TIME_ERROR: c_int = 5; // -pub const MNT_WAIT: ::c_int = 1; -pub const MNT_NOWAIT: ::c_int = 2; +pub const MNT_WAIT: c_int = 1; +pub const MNT_NOWAIT: c_int = 2; // -pub const THREAD_STANDARD_POLICY: ::c_int = 1; -pub const THREAD_STANDARD_POLICY_COUNT: ::c_int = 0; -pub const THREAD_EXTENDED_POLICY: ::c_int = 1; -pub const THREAD_TIME_CONSTRAINT_POLICY: ::c_int = 2; -pub const THREAD_PRECEDENCE_POLICY: ::c_int = 3; -pub const THREAD_AFFINITY_POLICY: ::c_int = 4; -pub const THREAD_AFFINITY_TAG_NULL: ::c_int = 0; -pub const THREAD_BACKGROUND_POLICY: ::c_int = 5; -pub const THREAD_BACKGROUND_POLICY_DARWIN_BG: ::c_int = 0x1000; -pub const THREAD_LATENCY_QOS_POLICY: ::c_int = 7; -pub const THREAD_THROUGHPUT_QOS_POLICY: ::c_int = 8; +pub const THREAD_STANDARD_POLICY: c_int = 1; +pub const THREAD_STANDARD_POLICY_COUNT: c_int = 0; +pub const THREAD_EXTENDED_POLICY: c_int = 1; +pub const THREAD_TIME_CONSTRAINT_POLICY: c_int = 2; +pub const THREAD_PRECEDENCE_POLICY: c_int = 3; +pub const THREAD_AFFINITY_POLICY: c_int = 4; +pub const THREAD_AFFINITY_TAG_NULL: c_int = 0; +pub const THREAD_BACKGROUND_POLICY: c_int = 5; +pub const THREAD_BACKGROUND_POLICY_DARWIN_BG: c_int = 0x1000; +pub const THREAD_LATENCY_QOS_POLICY: c_int = 7; +pub const THREAD_THROUGHPUT_QOS_POLICY: c_int = 8; // -pub const TH_STATE_RUNNING: ::c_int = 1; -pub const TH_STATE_STOPPED: ::c_int = 2; -pub const TH_STATE_WAITING: ::c_int = 3; -pub const TH_STATE_UNINTERRUPTIBLE: ::c_int = 4; -pub const TH_STATE_HALTED: ::c_int = 5; -pub const TH_FLAGS_SWAPPED: ::c_int = 0x1; -pub const TH_FLAGS_IDLE: ::c_int = 0x2; -pub const TH_FLAGS_GLOBAL_FORCED_IDLE: ::c_int = 0x4; -pub const THREAD_BASIC_INFO: ::c_int = 3; -pub const THREAD_IDENTIFIER_INFO: ::c_int = 4; -pub const THREAD_EXTENDED_INFO: ::c_int = 5; +pub const TH_STATE_RUNNING: c_int = 1; +pub const TH_STATE_STOPPED: c_int = 2; +pub const TH_STATE_WAITING: c_int = 3; +pub const TH_STATE_UNINTERRUPTIBLE: c_int = 4; +pub const TH_STATE_HALTED: c_int = 5; +pub const TH_FLAGS_SWAPPED: c_int = 0x1; +pub const TH_FLAGS_IDLE: c_int = 0x2; +pub const TH_FLAGS_GLOBAL_FORCED_IDLE: c_int = 0x4; +pub const THREAD_BASIC_INFO: c_int = 3; +pub const THREAD_IDENTIFIER_INFO: c_int = 4; +pub const THREAD_EXTENDED_INFO: c_int = 5; // CommonCrypto/CommonCryptoError.h pub const kCCSuccess: i32 = 0; @@ -5450,64 +5456,65 @@ pub const MACH_TASK_BASIC_INFO: u32 = 20; pub const MACH_PORT_NULL: i32 = 0; -pub const RUSAGE_INFO_V0: ::c_int = 0; -pub const RUSAGE_INFO_V1: ::c_int = 1; -pub const RUSAGE_INFO_V2: ::c_int = 2; -pub const RUSAGE_INFO_V3: ::c_int = 3; -pub const RUSAGE_INFO_V4: ::c_int = 4; +pub const RUSAGE_INFO_V0: c_int = 0; +pub const RUSAGE_INFO_V1: c_int = 1; +pub const RUSAGE_INFO_V2: c_int = 2; +pub const RUSAGE_INFO_V3: c_int = 3; +pub const RUSAGE_INFO_V4: c_int = 4; // copyfile.h -pub const COPYFILE_ACL: ::copyfile_flags_t = 1 << 0; -pub const COPYFILE_STAT: ::copyfile_flags_t = 1 << 1; -pub const COPYFILE_XATTR: ::copyfile_flags_t = 1 << 2; -pub const COPYFILE_DATA: ::copyfile_flags_t = 1 << 3; -pub const COPYFILE_SECURITY: ::copyfile_flags_t = COPYFILE_STAT | COPYFILE_ACL; -pub const COPYFILE_METADATA: ::copyfile_flags_t = COPYFILE_SECURITY | COPYFILE_XATTR; -pub const COPYFILE_RECURSIVE: ::copyfile_flags_t = 1 << 15; -pub const COPYFILE_CHECK: ::copyfile_flags_t = 1 << 16; -pub const COPYFILE_EXCL: ::copyfile_flags_t = 1 << 17; -pub const COPYFILE_NOFOLLOW_SRC: ::copyfile_flags_t = 1 << 18; -pub const COPYFILE_NOFOLLOW_DST: ::copyfile_flags_t = 1 << 19; -pub const COPYFILE_MOVE: ::copyfile_flags_t = 1 << 20; -pub const COPYFILE_UNLINK: ::copyfile_flags_t = 1 << 21; -pub const COPYFILE_NOFOLLOW: ::copyfile_flags_t = COPYFILE_NOFOLLOW_SRC | COPYFILE_NOFOLLOW_DST; -pub const COPYFILE_PACK: ::copyfile_flags_t = 1 << 22; -pub const COPYFILE_UNPACK: ::copyfile_flags_t = 1 << 23; -pub const COPYFILE_CLONE: ::copyfile_flags_t = 1 << 24; -pub const COPYFILE_CLONE_FORCE: ::copyfile_flags_t = 1 << 25; -pub const COPYFILE_RUN_IN_PLACE: ::copyfile_flags_t = 1 << 26; -pub const COPYFILE_DATA_SPARSE: ::copyfile_flags_t = 1 << 27; -pub const COPYFILE_PRESERVE_DST_TRACKED: ::copyfile_flags_t = 1 << 28; -pub const COPYFILE_VERBOSE: ::copyfile_flags_t = 1 << 30; -pub const COPYFILE_RECURSE_ERROR: ::c_int = 0; -pub const COPYFILE_RECURSE_FILE: ::c_int = 1; -pub const COPYFILE_RECURSE_DIR: ::c_int = 2; -pub const COPYFILE_RECURSE_DIR_CLEANUP: ::c_int = 3; -pub const COPYFILE_COPY_DATA: ::c_int = 4; -pub const COPYFILE_COPY_XATTR: ::c_int = 5; -pub const COPYFILE_START: ::c_int = 1; -pub const COPYFILE_FINISH: ::c_int = 2; -pub const COPYFILE_ERR: ::c_int = 3; -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; +pub const COPYFILE_ACL: crate::copyfile_flags_t = 1 << 0; +pub const COPYFILE_STAT: crate::copyfile_flags_t = 1 << 1; +pub const COPYFILE_XATTR: crate::copyfile_flags_t = 1 << 2; +pub const COPYFILE_DATA: crate::copyfile_flags_t = 1 << 3; +pub const COPYFILE_SECURITY: crate::copyfile_flags_t = COPYFILE_STAT | COPYFILE_ACL; +pub const COPYFILE_METADATA: crate::copyfile_flags_t = COPYFILE_SECURITY | COPYFILE_XATTR; +pub const COPYFILE_RECURSIVE: crate::copyfile_flags_t = 1 << 15; +pub const COPYFILE_CHECK: crate::copyfile_flags_t = 1 << 16; +pub const COPYFILE_EXCL: crate::copyfile_flags_t = 1 << 17; +pub const COPYFILE_NOFOLLOW_SRC: crate::copyfile_flags_t = 1 << 18; +pub const COPYFILE_NOFOLLOW_DST: crate::copyfile_flags_t = 1 << 19; +pub const COPYFILE_MOVE: crate::copyfile_flags_t = 1 << 20; +pub const COPYFILE_UNLINK: crate::copyfile_flags_t = 1 << 21; +pub const COPYFILE_NOFOLLOW: crate::copyfile_flags_t = + COPYFILE_NOFOLLOW_SRC | COPYFILE_NOFOLLOW_DST; +pub const COPYFILE_PACK: crate::copyfile_flags_t = 1 << 22; +pub const COPYFILE_UNPACK: crate::copyfile_flags_t = 1 << 23; +pub const COPYFILE_CLONE: crate::copyfile_flags_t = 1 << 24; +pub const COPYFILE_CLONE_FORCE: crate::copyfile_flags_t = 1 << 25; +pub const COPYFILE_RUN_IN_PLACE: crate::copyfile_flags_t = 1 << 26; +pub const COPYFILE_DATA_SPARSE: crate::copyfile_flags_t = 1 << 27; +pub const COPYFILE_PRESERVE_DST_TRACKED: crate::copyfile_flags_t = 1 << 28; +pub const COPYFILE_VERBOSE: crate::copyfile_flags_t = 1 << 30; +pub const COPYFILE_RECURSE_ERROR: c_int = 0; +pub const COPYFILE_RECURSE_FILE: c_int = 1; +pub const COPYFILE_RECURSE_DIR: c_int = 2; +pub const COPYFILE_RECURSE_DIR_CLEANUP: c_int = 3; +pub const COPYFILE_COPY_DATA: c_int = 4; +pub const COPYFILE_COPY_XATTR: c_int = 5; +pub const COPYFILE_START: c_int = 1; +pub const COPYFILE_FINISH: c_int = 2; +pub const COPYFILE_ERR: c_int = 3; +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; // -pub const ATTR_BIT_MAP_COUNT: ::c_ushort = 5; +pub const ATTR_BIT_MAP_COUNT: c_ushort = 5; pub const FSOPT_NOFOLLOW: u32 = 0x1; pub const FSOPT_NOFOLLOW_ANY: u32 = 0x800; pub const FSOPT_REPORT_FULLSIZE: u32 = 0x4; @@ -5667,111 +5674,114 @@ pub const SSTOP: u32 = 4; 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; +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; const fn __DARWIN_ALIGN32(p: usize) -> usize { - const __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::() - 1; + const __DARWIN_ALIGNBYTES32: usize = crate::mem::size_of::() - 1; p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32 } pub const THREAD_EXTENDED_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) + (crate::mem::size_of::() / crate::mem::size_of::()) as mach_msg_type_number_t; pub const THREAD_TIME_CONSTRAINT_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; + (crate::mem::size_of::() + / crate::mem::size_of::()) as mach_msg_type_number_t; pub const THREAD_PRECEDENCE_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) + (crate::mem::size_of::() / crate::mem::size_of::()) as mach_msg_type_number_t; pub const THREAD_AFFINITY_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) + (crate::mem::size_of::() / crate::mem::size_of::()) as mach_msg_type_number_t; pub const THREAD_BACKGROUND_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; -pub const THREAD_LATENCY_QOS_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) + (crate::mem::size_of::() / crate::mem::size_of::()) as mach_msg_type_number_t; +pub const THREAD_LATENCY_QOS_POLICY_COUNT: mach_msg_type_number_t = (crate::mem::size_of::< + thread_latency_qos_policy_data_t, +>() / crate::mem::size_of::< + integer_t, +>()) as mach_msg_type_number_t; pub const THREAD_THROUGHPUT_QOS_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; + (crate::mem::size_of::() + / crate::mem::size_of::()) as mach_msg_type_number_t; pub const THREAD_BASIC_INFO_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) + (crate::mem::size_of::() / crate::mem::size_of::()) as mach_msg_type_number_t; pub const THREAD_IDENTIFIER_INFO_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) + (crate::mem::size_of::() / crate::mem::size_of::()) as mach_msg_type_number_t; pub const THREAD_EXTENDED_INFO_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) + (crate::mem::size_of::() / crate::mem::size_of::()) as mach_msg_type_number_t; pub const TASK_THREAD_TIMES_INFO_COUNT: u32 = - (::mem::size_of::() / ::mem::size_of::()) as u32; -pub const MACH_TASK_BASIC_INFO_COUNT: u32 = - (::mem::size_of::() / ::mem::size_of::()) as u32; + (crate::mem::size_of::() / crate::mem::size_of::()) + as u32; +pub const MACH_TASK_BASIC_INFO_COUNT: u32 = (crate::mem::size_of::() + / crate::mem::size_of::()) as u32; pub const HOST_VM_INFO64_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) + (crate::mem::size_of::() / crate::mem::size_of::()) as mach_msg_type_number_t; // bsd/net/if_mib.h /// Non-interface-specific -pub const IFMIB_SYSTEM: ::c_int = 1; +pub const IFMIB_SYSTEM: c_int = 1; /// Per-interface data table -pub const IFMIB_IFDATA: ::c_int = 2; +pub const IFMIB_IFDATA: c_int = 2; /// All interfaces data at once -pub const IFMIB_IFALLDATA: ::c_int = 3; +pub const IFMIB_IFALLDATA: c_int = 3; /// Generic stats for all kinds of ifaces -pub const IFDATA_GENERAL: ::c_int = 1; +pub const IFDATA_GENERAL: c_int = 1; /// Specific to the type of interface -pub const IFDATA_LINKSPECIFIC: ::c_int = 2; +pub const IFDATA_LINKSPECIFIC: c_int = 2; /// Addresses assigned to interface -pub const IFDATA_ADDRS: ::c_int = 3; +pub const IFDATA_ADDRS: c_int = 3; /// Multicast addresses assigned to interface -pub const IFDATA_MULTIADDRS: ::c_int = 4; +pub const IFDATA_MULTIADDRS: c_int = 4; /// Number of interfaces configured -pub const IFMIB_IFCOUNT: ::c_int = 1; +pub const IFMIB_IFCOUNT: c_int = 1; /// Functions not specific to a type of iface -pub const NETLINK_GENERIC: ::c_int = 0; +pub const NETLINK_GENERIC: c_int = 0; -pub const DOT3COMPLIANCE_STATS: ::c_int = 1; -pub const DOT3COMPLIANCE_COLLS: ::c_int = 2; +pub const DOT3COMPLIANCE_STATS: c_int = 1; +pub const DOT3COMPLIANCE_COLLS: c_int = 2; // kern_control.h pub const MAX_KCTL_NAME: usize = 96; f! { - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { + pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { - return ::CMSG_FIRSTHDR(mhdr); + return crate::CMSG_FIRSTHDR(mhdr); }; let cmsg_len = (*cmsg).cmsg_len as usize; let next = cmsg as usize + __DARWIN_ALIGN32(cmsg_len); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; - if next + __DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) > max { + if next + __DARWIN_ALIGN32(crate::mem::size_of::()) > max { core::ptr::null_mut() } else { - next as *mut ::cmsghdr + next as *mut cmsghdr } } - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar).add(__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>())) + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { + (cmsg as *mut c_uchar).add(__DARWIN_ALIGN32(crate::mem::size_of::())) } - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) + __DARWIN_ALIGN32(length as usize)) - as ::c_uint + pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + (__DARWIN_ALIGN32(crate::mem::size_of::()) + __DARWIN_ALIGN32(length as usize)) + as c_uint } - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - (__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) + length as usize) as ::c_uint + pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + (__DARWIN_ALIGN32(crate::mem::size_of::()) + length as usize) as c_uint } pub {const} fn VM_MAKE_TAG(id: u8) -> u32 { @@ -5792,23 +5802,23 @@ f! { } safe_f! { - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + pub {const} fn WSTOPSIG(status: c_int) -> c_int { status >> 8 } - pub {const} fn _WSTATUS(status: ::c_int) -> ::c_int { + pub {const} fn _WSTATUS(status: c_int) -> c_int { status & 0x7f } - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + pub {const} fn WIFCONTINUED(status: c_int) -> bool { _WSTATUS(status) == _WSTOPPED && WSTOPSIG(status) == 0x13 } - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + pub {const} fn WIFSIGNALED(status: c_int) -> bool { _WSTATUS(status) != _WSTOPPED && _WSTATUS(status) != 0 } - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + pub {const} fn WIFSTOPPED(status: c_int) -> bool { _WSTATUS(status) == _WSTOPPED && WSTOPSIG(status) != 0x13 } } @@ -5818,244 +5828,238 @@ extern "C" { #[doc(hidden)] #[deprecated(since = "0.2.49", note = "Deprecated in MacOSX 10.5")] #[cfg_attr(not(target_arch = "aarch64"), link_name = "daemon$1050")] - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; #[doc(hidden)] #[deprecated(since = "0.2.49", note = "Deprecated in MacOSX 10.10")] - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; + pub fn sem_destroy(sem: *mut sem_t) -> c_int; #[doc(hidden)] #[deprecated(since = "0.2.49", note = "Deprecated in MacOSX 10.10")] - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; - 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; + pub fn sem_init(sem: *mut sem_t, pshared: c_int, value: c_uint) -> c_int; + 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; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "aio_suspend$UNIX2003" )] 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 chflags(path: *const ::c_char, flags: ::c_uint) -> ::c_int; - pub fn fchflags(fd: ::c_int, flags: ::c_uint) -> ::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; + nitems: c_int, + timeout: *const crate::timespec, + ) -> c_int; + pub fn aio_cancel(fd: c_int, aiocbp: *mut aiocb) -> c_int; + pub fn chflags(path: *const c_char, flags: c_uint) -> c_int; + pub fn fchflags(fd: c_int, flags: c_uint) -> c_int; + pub fn clock_getres(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; pub fn lio_listio( - mode: ::c_int, + mode: c_int, aiocb_list: *const *mut aiocb, - nitems: ::c_int, + nitems: c_int, sevp: *mut sigevent, - ) -> ::c_int; + ) -> c_int; - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; + pub fn dirfd(dirp: *mut crate::DIR) -> c_int; - pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; + pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut c_void) -> c_int; pub fn getutxent() -> *mut utmpx; pub fn getutxid(ut: *const utmpx) -> *mut utmpx; pub fn getutxline(ut: *const utmpx) -> *mut utmpx; pub fn pututxline(ut: *const utmpx) -> *mut utmpx; pub fn setutxent(); pub fn endutxent(); - pub fn utmpxname(file: *const ::c_char) -> ::c_int; + 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 asctime(tm: *const crate::tm) -> *mut c_char; + pub fn ctime(clock: *const time_t) -> *mut c_char; + pub fn getdate(datestr: *const c_char) -> *mut crate::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; + buf: *const c_char, + format: *const c_char, + timeptr: *mut crate::tm, + ) -> *mut c_char; + pub fn asctime_r(tm: *const crate::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, - servlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn mincore(addr: *const ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; - pub fn sysctlnametomib( - name: *const ::c_char, - mibp: *mut ::c_int, - sizep: *mut ::size_t, - ) -> ::c_int; + sa: *const crate::sockaddr, + salen: crate::socklen_t, + host: *mut c_char, + hostlen: crate::socklen_t, + serv: *mut c_char, + servlen: crate::socklen_t, + flags: c_int, + ) -> c_int; + pub fn mincore(addr: *const c_void, len: size_t, vec: *mut c_char) -> c_int; + pub fn sysctlnametomib(name: *const c_char, mibp: *mut c_int, sizep: *mut size_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "mprotect$UNIX2003" )] - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn semget(key: key_t, nsems: ::c_int, semflg: ::c_int) -> ::c_int; + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; + pub fn semget(key: key_t, nsems: c_int, semflg: c_int) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "semctl$UNIX2003" )] - pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; - pub fn semop(semid: ::c_int, sops: *mut sembuf, nsops: ::size_t) -> ::c_int; - pub fn shm_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::c_int; - pub fn ftok(pathname: *const c_char, proj_id: ::c_int) -> key_t; - 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 semctl(semid: c_int, semnum: c_int, cmd: c_int, ...) -> c_int; + pub fn semop(semid: c_int, sops: *mut sembuf, nsops: size_t) -> c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, ...) -> c_int; + pub fn ftok(pathname: *const c_char, proj_id: c_int) -> key_t; + 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; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "shmctl$UNIX2003" )] - pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; - pub fn shmget(key: key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; + pub fn shmctl(shmid: c_int, cmd: c_int, buf: *mut crate::shmid_ds) -> c_int; + pub fn shmget(key: key_t, size: size_t, shmflg: c_int) -> c_int; pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_uint, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; + name: *mut c_int, + namelen: c_uint, + oldp: *mut c_void, + oldlenp: *mut size_t, + newp: *mut c_void, + newlen: size_t, + ) -> c_int; pub fn sysctlbyname( - name: *const ::c_char, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; + name: *const c_char, + oldp: *mut c_void, + oldlenp: *mut size_t, + newp: *mut c_void, + newlen: size_t, + ) -> c_int; #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] pub fn mach_absolute_time() -> u64; #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] #[allow(deprecated)] - pub fn mach_timebase_info(info: *mut ::mach_timebase_info) -> ::c_int; + pub fn mach_timebase_info(info: *mut crate::mach_timebase_info) -> c_int; #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] pub fn mach_host_self() -> mach_port_t; #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] pub fn mach_thread_self() -> mach_port_t; pub fn pthread_once( - once_control: *mut ::pthread_once_t, - init_routine: ::Option, - ) -> ::c_int; + once_control: *mut crate::pthread_once_t, + init_routine: Option, + ) -> c_int; pub fn pthread_attr_getinheritsched( - attr: *const ::pthread_attr_t, - inheritsched: *mut ::c_int, - ) -> ::c_int; + attr: *const crate::pthread_attr_t, + inheritsched: *mut c_int, + ) -> c_int; pub fn pthread_attr_getschedpolicy( - attr: *const ::pthread_attr_t, - policy: *mut ::c_int, - ) -> ::c_int; + attr: *const crate::pthread_attr_t, + policy: *mut c_int, + ) -> c_int; pub fn pthread_attr_getscope( - attr: *const ::pthread_attr_t, - contentionscope: *mut ::c_int, - ) -> ::c_int; + attr: *const crate::pthread_attr_t, + contentionscope: *mut c_int, + ) -> c_int; pub fn pthread_attr_getstackaddr( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - ) -> ::c_int; + attr: *const crate::pthread_attr_t, + stackaddr: *mut *mut c_void, + ) -> c_int; pub fn pthread_attr_getdetachstate( - attr: *const ::pthread_attr_t, - detachstate: *mut ::c_int, - ) -> ::c_int; + attr: *const crate::pthread_attr_t, + detachstate: *mut c_int, + ) -> c_int; pub fn pthread_attr_setinheritsched( - attr: *mut ::pthread_attr_t, - inheritsched: ::c_int, - ) -> ::c_int; - pub fn pthread_attr_setschedpolicy(attr: *mut ::pthread_attr_t, policy: ::c_int) -> ::c_int; - pub fn pthread_attr_setscope(attr: *mut ::pthread_attr_t, contentionscope: ::c_int) -> ::c_int; + attr: *mut crate::pthread_attr_t, + inheritsched: c_int, + ) -> c_int; + pub fn pthread_attr_setschedpolicy(attr: *mut crate::pthread_attr_t, policy: c_int) -> c_int; + pub fn pthread_attr_setscope(attr: *mut crate::pthread_attr_t, contentionscope: c_int) + -> c_int; pub fn pthread_attr_setstackaddr( - attr: *mut ::pthread_attr_t, - stackaddr: *mut ::c_void, - ) -> ::c_int; - pub fn pthread_setname_np(name: *const ::c_char) -> ::c_int; - pub fn pthread_getname_np(thread: ::pthread_t, name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn pthread_mach_thread_np(thread: ::pthread_t) -> ::mach_port_t; - pub fn pthread_from_mach_thread_np(port: ::mach_port_t) -> ::pthread_t; + attr: *mut crate::pthread_attr_t, + stackaddr: *mut c_void, + ) -> c_int; + pub fn pthread_setname_np(name: *const c_char) -> c_int; + pub fn pthread_getname_np(thread: crate::pthread_t, name: *mut c_char, len: size_t) -> c_int; + pub fn pthread_mach_thread_np(thread: crate::pthread_t) -> crate::mach_port_t; + pub fn pthread_from_mach_thread_np(port: crate::mach_port_t) -> crate::pthread_t; pub fn pthread_create_from_mach_thread( - thread: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; + thread: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + f: extern "C" fn(*mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; 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; + frame_addr: crate::uintptr_t, + return_addr: *mut crate::uintptr_t, + ) -> crate::uintptr_t; + pub fn pthread_get_stackaddr_np(thread: crate::pthread_t) -> *mut c_void; + pub fn pthread_get_stacksize_np(thread: crate::pthread_t) -> size_t; + pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: c_int) -> c_int; pub fn pthread_condattr_getpshared( 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, - ) -> ::c_int; + 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) -> c_int; pub fn pthread_mutexattr_getpshared( attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; + pshared: *mut c_int, + ) -> c_int; pub fn pthread_rwlockattr_getpshared( attr: *const pthread_rwlockattr_t, - val: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int; - pub fn pthread_threadid_np(thread: ::pthread_t, thread_id: *mut u64) -> ::c_int; + val: *mut c_int, + ) -> c_int; + pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: c_int) -> c_int; + pub fn pthread_threadid_np(thread: crate::pthread_t, thread_id: *mut u64) -> c_int; pub fn pthread_attr_set_qos_class_np( attr: *mut pthread_attr_t, class: qos_class_t, - priority: ::c_int, - ) -> ::c_int; + priority: c_int, + ) -> c_int; pub fn pthread_attr_get_qos_class_np( attr: *mut pthread_attr_t, class: *mut qos_class_t, - priority: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_set_qos_class_self_np(class: qos_class_t, priority: ::c_int) -> ::c_int; + priority: *mut c_int, + ) -> c_int; + pub fn pthread_set_qos_class_self_np(class: qos_class_t, priority: c_int) -> c_int; pub fn pthread_get_qos_class_np( - thread: ::pthread_t, + thread: crate::pthread_t, class: *mut qos_class_t, - priority: *mut ::c_int, - ) -> ::c_int; + priority: *mut c_int, + ) -> c_int; pub fn pthread_attr_getschedparam( - attr: *const ::pthread_attr_t, + attr: *const crate::pthread_attr_t, param: *mut sched_param, - ) -> ::c_int; + ) -> c_int; pub fn pthread_attr_setschedparam( - attr: *mut ::pthread_attr_t, + attr: *mut crate::pthread_attr_t, param: *const sched_param, - ) -> ::c_int; + ) -> c_int; pub fn pthread_getschedparam( - thread: ::pthread_t, - policy: *mut ::c_int, + thread: crate::pthread_t, + policy: *mut c_int, param: *mut sched_param, - ) -> ::c_int; + ) -> c_int; pub fn pthread_setschedparam( - thread: ::pthread_t, - policy: ::c_int, + thread: crate::pthread_t, + policy: c_int, param: *const sched_param, - ) -> ::c_int; + ) -> c_int; // Available from Big Sur pub fn pthread_introspection_hook_install( - hook: ::pthread_introspection_hook_t, - ) -> ::pthread_introspection_hook_t; + hook: crate::pthread_introspection_hook_t, + ) -> crate::pthread_introspection_hook_t; pub fn pthread_introspection_setspecific_np( - thread: ::pthread_t, - key: ::pthread_key_t, - value: *const ::c_void, - ) -> ::c_int; + thread: crate::pthread_t, + key: crate::pthread_key_t, + value: *const c_void, + ) -> c_int; pub fn pthread_introspection_getspecific_np( - thread: ::pthread_t, - key: ::pthread_key_t, - ) -> *mut ::c_void; - pub fn pthread_jit_write_protect_np(enabled: ::c_int); - pub fn pthread_jit_write_protect_supported_np() -> ::c_int; + thread: crate::pthread_t, + key: crate::pthread_key_t, + ) -> *mut c_void; + pub fn pthread_jit_write_protect_np(enabled: c_int); + pub fn pthread_jit_write_protect_supported_np() -> c_int; // An array of pthread_jit_write_with_callback_np must declare // the list of callbacks e.g. // #[link_section = "__DATA_CONST,__pth_jit_func"] @@ -6063,45 +6067,45 @@ extern "C" { // std::mem::transmute::(std::ptr::null())]; // (a handy PTHREAD_JIT_WRITE_CALLBACK_NP macro for other languages). pub fn pthread_jit_write_with_callback_np( - callback: ::pthread_jit_write_callback_t, - ctx: *mut ::c_void, - ) -> ::c_int; + callback: crate::pthread_jit_write_callback_t, + ctx: *mut c_void, + ) -> c_int; pub fn pthread_jit_write_freeze_callbacks_np(); - pub fn pthread_cpu_number_np(cpu_number_out: *mut ::size_t) -> ::c_int; + pub fn pthread_cpu_number_np(cpu_number_out: *mut size_t) -> c_int; // Available starting with macOS 14.4. pub fn os_sync_wait_on_address( - addr: *mut ::c_void, + addr: *mut c_void, value: u64, - size: ::size_t, + size: size_t, flags: os_sync_wait_on_address_flags_t, - ) -> ::c_int; + ) -> c_int; pub fn os_sync_wait_on_address_with_deadline( - addr: *mut ::c_void, + addr: *mut c_void, value: u64, - size: ::size_t, + size: size_t, flags: os_sync_wait_on_address_flags_t, clockid: os_clockid_t, deadline: u64, - ) -> ::c_int; + ) -> c_int; pub fn os_sync_wait_on_address_with_timeout( - addr: *mut ::c_void, + addr: *mut c_void, value: u64, - size: ::size_t, + size: size_t, flags: os_sync_wait_on_address_flags_t, clockid: os_clockid_t, timeout_ns: u64, - ) -> ::c_int; + ) -> c_int; pub fn os_sync_wake_by_address_any( - addr: *mut ::c_void, - size: ::size_t, + addr: *mut c_void, + size: size_t, flags: os_sync_wake_by_address_flags_t, - ) -> ::c_int; + ) -> c_int; pub fn os_sync_wake_by_address_all( - addr: *mut ::c_void, - size: ::size_t, + addr: *mut c_void, + size: size_t, flags: os_sync_wake_by_address_flags_t, - ) -> ::c_int; + ) -> c_int; pub fn os_unfair_lock_lock(lock: os_unfair_lock_t); pub fn os_unfair_lock_trylock(lock: os_unfair_lock_t) -> bool; @@ -6109,14 +6113,14 @@ extern "C" { pub fn os_unfair_lock_assert_owner(lock: os_unfair_lock_t); pub fn os_unfair_lock_assert_not_owner(lock: os_unfair_lock_t); - pub fn os_log_create(subsystem: *const ::c_char, category: *const ::c_char) -> ::os_log_t; - pub fn os_log_type_enabled(oslog: ::os_log_t, tpe: ::os_log_type_t) -> bool; + pub fn os_log_create(subsystem: *const c_char, category: *const c_char) -> crate::os_log_t; + pub fn os_log_type_enabled(oslog: crate::os_log_t, tpe: crate::os_log_type_t) -> bool; pub fn os_signpost_id_make_with_pointer( - log: ::os_log_t, - ptr: *const ::c_void, - ) -> ::os_signpost_id_t; - pub fn os_signpost_id_generate(log: ::os_log_t) -> ::os_signpost_id_t; - pub fn os_signpost_enabled(log: ::os_log_t) -> bool; + log: crate::os_log_t, + ptr: *const c_void, + ) -> crate::os_signpost_id_t; + pub fn os_signpost_id_generate(log: crate::os_log_t) -> crate::os_signpost_id_t; + pub fn os_signpost_enabled(log: crate::os_log_t) -> bool; pub fn thread_policy_set( thread: thread_t, @@ -6139,640 +6143,595 @@ extern "C" { ) -> kern_return_t; #[cfg_attr(doc, doc(alias = "__errno_location"))] #[cfg_attr(doc, doc(alias = "errno"))] - pub fn __error() -> *mut ::c_int; - pub fn backtrace(buf: *mut *mut ::c_void, sz: ::c_int) -> ::c_int; - pub fn backtrace_symbols(addrs: *const *mut ::c_void, sz: ::c_int) -> *mut *mut ::c_char; - pub fn backtrace_symbols_fd(addrs: *const *mut ::c_void, sz: ::c_int, fd: ::c_int); - pub fn backtrace_from_fp( - startfp: *mut ::c_void, - array: *mut *mut ::c_void, - size: ::c_int, - ) -> ::c_int; + pub fn __error() -> *mut c_int; + pub fn backtrace(buf: *mut *mut c_void, sz: c_int) -> c_int; + pub fn backtrace_symbols(addrs: *const *mut c_void, sz: c_int) -> *mut *mut c_char; + pub fn backtrace_symbols_fd(addrs: *const *mut c_void, sz: c_int, fd: c_int); + pub fn backtrace_from_fp(startfp: *mut c_void, array: *mut *mut c_void, size: c_int) -> c_int; pub fn backtrace_image_offsets( - array: *const *mut ::c_void, + array: *const *mut c_void, image_offsets: *mut image_offset, - size: ::c_int, + size: c_int, ); - pub fn backtrace_async( - array: *mut *mut ::c_void, - length: ::size_t, - task_id: *mut u32, - ) -> ::size_t; + pub fn backtrace_async(array: *mut *mut c_void, length: size_t, task_id: *mut u32) -> size_t; #[cfg_attr( all(target_os = "macos", not(target_arch = "aarch64")), link_name = "statfs$INODE64" )] - pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; + pub fn statfs(path: *const c_char, buf: *mut statfs) -> c_int; #[cfg_attr( all(target_os = "macos", not(target_arch = "aarch64")), link_name = "fstatfs$INODE64" )] - pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; + pub fn fstatfs(fd: c_int, buf: *mut statfs) -> c_int; pub fn kevent( - kq: ::c_int, - changelist: *const ::kevent, - nchanges: ::c_int, - eventlist: *mut ::kevent, - nevents: ::c_int, - timeout: *const ::timespec, - ) -> ::c_int; + kq: c_int, + changelist: *const crate::kevent, + nchanges: c_int, + eventlist: *mut crate::kevent, + nevents: c_int, + timeout: *const crate::timespec, + ) -> c_int; pub fn kevent64( - kq: ::c_int, - changelist: *const ::kevent64_s, - nchanges: ::c_int, - eventlist: *mut ::kevent64_s, - nevents: ::c_int, - flags: ::c_uint, - timeout: *const ::timespec, - ) -> ::c_int; + kq: c_int, + changelist: *const crate::kevent64_s, + nchanges: c_int, + eventlist: *mut crate::kevent64_s, + nevents: c_int, + flags: c_uint, + timeout: *const crate::timespec, + ) -> c_int; pub fn mount( - src: *const ::c_char, - target: *const ::c_char, - flags: ::c_int, - data: *mut ::c_void, - ) -> ::c_int; - pub fn fmount( - src: *const ::c_char, - fd: ::c_int, - flags: ::c_int, - data: *mut ::c_void, - ) -> ::c_int; - pub fn ptrace(request: ::c_int, pid: ::pid_t, addr: *mut ::c_char, data: ::c_int) -> ::c_int; - pub fn quotactl( - special: *const ::c_char, - cmd: ::c_int, - id: ::c_int, - data: *mut ::c_char, - ) -> ::c_int; - pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int; + src: *const c_char, + target: *const c_char, + flags: c_int, + data: *mut c_void, + ) -> c_int; + pub fn fmount(src: *const c_char, fd: c_int, flags: c_int, data: *mut c_void) -> c_int; + pub fn ptrace(request: c_int, pid: crate::pid_t, addr: *mut c_char, data: c_int) -> c_int; + pub fn quotactl(special: *const c_char, cmd: c_int, id: c_int, data: *mut c_char) -> c_int; + pub fn sethostname(name: *const c_char, len: c_int) -> c_int; pub fn sendfile( - fd: ::c_int, - s: ::c_int, - offset: ::off_t, - len: *mut ::off_t, - hdtr: *mut ::sf_hdtr, - flags: ::c_int, - ) -> ::c_int; - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + fd: c_int, + s: c_int, + offset: off_t, + len: *mut off_t, + hdtr: *mut crate::sf_hdtr, + flags: c_int, + ) -> c_int; + pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; + dirfd: c_int, + path: *const c_char, + times: *const crate::timespec, + flag: c_int, + ) -> c_int; pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, + amaster: *mut c_int, + aslave: *mut c_int, + name: *mut c_char, termp: *mut termios, - winp: *mut ::winsize, - ) -> ::c_int; + winp: *mut crate::winsize, + ) -> c_int; pub fn forkpty( - amaster: *mut ::c_int, - name: *mut ::c_char, + amaster: *mut c_int, + name: *mut c_char, termp: *mut termios, - winp: *mut ::winsize, - ) -> ::pid_t; - pub fn login_tty(fd: ::c_int) -> ::c_int; - pub fn duplocale(base: ::locale_t) -> ::locale_t; - pub fn freelocale(loc: ::locale_t) -> ::c_int; - pub fn localeconv_l(loc: ::locale_t) -> *mut lconv; - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; - pub fn uselocale(loc: ::locale_t) -> ::locale_t; - pub fn querylocale(mask: ::c_int, loc: ::locale_t) -> *const ::c_char; - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - pub fn getdomainname(name: *mut ::c_char, len: ::c_int) -> ::c_int; - pub fn setdomainname(name: *const ::c_char, len: ::c_int) -> ::c_int; - pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) - -> ::ssize_t; + winp: *mut crate::winsize, + ) -> crate::pid_t; + pub fn login_tty(fd: c_int) -> c_int; + pub fn duplocale(base: crate::locale_t) -> crate::locale_t; + pub fn freelocale(loc: crate::locale_t) -> c_int; + pub fn localeconv_l(loc: crate::locale_t) -> *mut lconv; + pub fn newlocale(mask: c_int, locale: *const c_char, base: crate::locale_t) -> crate::locale_t; + pub fn uselocale(loc: crate::locale_t) -> crate::locale_t; + pub fn querylocale(mask: c_int, loc: crate::locale_t) -> *const c_char; + pub fn getpriority(which: c_int, who: crate::id_t) -> c_int; + pub fn setpriority(which: c_int, who: crate::id_t, prio: c_int) -> c_int; + pub fn getdomainname(name: *mut c_char, len: c_int) -> c_int; + pub fn setdomainname(name: *const c_char, len: c_int) -> c_int; + pub fn preadv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; + pub fn pwritev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; pub fn getxattr( - path: *const ::c_char, - name: *const ::c_char, - value: *mut ::c_void, - size: ::size_t, + path: *const c_char, + name: *const c_char, + value: *mut c_void, + size: size_t, position: u32, - flags: ::c_int, - ) -> ::ssize_t; + flags: c_int, + ) -> ssize_t; pub fn fgetxattr( - filedes: ::c_int, - name: *const ::c_char, - value: *mut ::c_void, - size: ::size_t, + filedes: c_int, + name: *const c_char, + value: *mut c_void, + size: size_t, position: u32, - flags: ::c_int, - ) -> ::ssize_t; + flags: c_int, + ) -> ssize_t; pub fn setxattr( - path: *const ::c_char, - name: *const ::c_char, - value: *const ::c_void, - size: ::size_t, + path: *const c_char, + name: *const c_char, + value: *const c_void, + size: size_t, position: u32, - flags: ::c_int, - ) -> ::c_int; + flags: c_int, + ) -> c_int; pub fn fsetxattr( - filedes: ::c_int, - name: *const ::c_char, - value: *const ::c_void, - size: ::size_t, + filedes: c_int, + name: *const c_char, + value: *const c_void, + size: size_t, position: u32, - flags: ::c_int, - ) -> ::c_int; - pub fn listxattr( - path: *const ::c_char, - list: *mut ::c_char, - size: ::size_t, - flags: ::c_int, - ) -> ::ssize_t; - pub fn flistxattr( - filedes: ::c_int, - list: *mut ::c_char, - size: ::size_t, - flags: ::c_int, - ) -> ::ssize_t; - pub fn removexattr(path: *const ::c_char, name: *const ::c_char, flags: ::c_int) -> ::c_int; - pub fn renamex_np(from: *const ::c_char, to: *const ::c_char, flags: ::c_uint) -> ::c_int; + flags: c_int, + ) -> c_int; + pub fn listxattr(path: *const c_char, list: *mut c_char, size: size_t, flags: c_int) + -> ssize_t; + pub fn flistxattr(filedes: c_int, list: *mut c_char, size: size_t, flags: c_int) -> ssize_t; + pub fn removexattr(path: *const c_char, name: *const c_char, flags: c_int) -> c_int; + pub fn renamex_np(from: *const c_char, to: *const c_char, flags: c_uint) -> c_int; pub fn renameatx_np( - fromfd: ::c_int, - from: *const ::c_char, - tofd: ::c_int, - to: *const ::c_char, - flags: ::c_uint, - ) -> ::c_int; - pub fn fremovexattr(filedes: ::c_int, name: *const ::c_char, flags: ::c_int) -> ::c_int; + fromfd: c_int, + from: *const c_char, + tofd: c_int, + to: *const c_char, + flags: c_uint, + ) -> c_int; + pub fn fremovexattr(filedes: c_int, name: *const c_char, flags: c_int) -> c_int; pub fn getgrouplist( - name: *const ::c_char, - basegid: ::c_int, - groups: *mut ::c_int, - ngroups: *mut ::c_int, - ) -> ::c_int; - pub fn initgroups(user: *const ::c_char, basegroup: ::c_int) -> ::c_int; + name: *const c_char, + basegid: c_int, + groups: *mut c_int, + ngroups: *mut c_int, + ) -> c_int; + pub fn initgroups(user: *const c_char, basegroup: c_int) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "waitid$UNIX2003" )] - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) - -> ::c_int; - pub fn brk(addr: *const ::c_void) -> *mut ::c_void; - pub fn sbrk(increment: ::c_int) -> *mut ::c_void; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; + pub fn waitid( + idtype: idtype_t, + id: id_t, + infop: *mut crate::siginfo_t, + options: c_int, + ) -> c_int; + pub fn brk(addr: *const c_void) -> *mut c_void; + pub fn sbrk(increment: c_int) -> *mut c_void; + pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int; #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] pub fn _dyld_image_count() -> u32; #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] #[allow(deprecated)] pub fn _dyld_get_image_header(image_index: u32) -> *const mach_header; #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] - pub fn _dyld_get_image_vmaddr_slide(image_index: u32) -> ::intptr_t; + pub fn _dyld_get_image_vmaddr_slide(image_index: u32) -> intptr_t; #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] - pub fn _dyld_get_image_name(image_index: u32) -> *const ::c_char; + pub fn _dyld_get_image_name(image_index: u32) -> *const c_char; 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; + pid: *mut crate::pid_t, + path: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::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; + pid: *mut crate::pid_t, + file: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::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; + default: *mut crate::sigset_t, + ) -> c_int; pub fn posix_spawnattr_setsigdefault( attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; + default: *const crate::sigset_t, + ) -> c_int; pub fn posix_spawnattr_getsigmask( attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; + default: *mut crate::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; + default: *const crate::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; + flags: *mut crate::pid_t, + ) -> c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: crate::pid_t) -> c_int; pub fn posix_spawnattr_setarchpref_np( attr: *mut posix_spawnattr_t, - count: ::size_t, - pref: *mut ::cpu_type_t, - subpref: *mut ::cpu_subtype_t, - ocount: *mut ::size_t, - ) -> ::c_int; + count: size_t, + pref: *mut crate::cpu_type_t, + subpref: *mut crate::cpu_subtype_t, + ocount: *mut size_t, + ) -> c_int; pub fn posix_spawnattr_getarchpref_np( attr: *const posix_spawnattr_t, - count: ::size_t, - pref: *mut ::cpu_type_t, - subpref: *mut ::cpu_subtype_t, - ocount: *mut ::size_t, - ) -> ::c_int; + count: size_t, + pref: *mut crate::cpu_type_t, + subpref: *mut crate::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; + count: size_t, + pref: *mut crate::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; + count: size_t, + pref: *mut crate::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; + qos_class: crate::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; + qos_class: *mut crate::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; + 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; + fd: c_int, + path: *const c_char, + oflag: c_int, + mode: crate::mode_t, + ) -> c_int; pub fn posix_spawn_file_actions_addclose( actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; + 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; - pub fn uname(buf: *mut ::utsname) -> ::c_int; + fd: c_int, + newfd: c_int, + ) -> c_int; + pub fn uname(buf: *mut crate::utsname) -> c_int; pub fn connectx( - socket: ::c_int, + socket: c_int, endpoints: *const sa_endpoints_t, associd: sae_associd_t, - flags: ::c_uint, - iov: *const ::iovec, - iovcnt: ::c_uint, - len: *mut ::size_t, + flags: c_uint, + iov: *const crate::iovec, + iovcnt: c_uint, + len: *mut size_t, connid: *mut sae_connid_t, - ) -> ::c_int; - pub fn disconnectx(socket: ::c_int, associd: sae_associd_t, connid: sae_connid_t) -> ::c_int; + ) -> c_int; + pub fn disconnectx(socket: c_int, associd: sae_associd_t, connid: sae_connid_t) -> c_int; - pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; - pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; + pub fn ntp_adjtime(buf: *mut timex) -> c_int; + pub fn ntp_gettime(buf: *mut ntptimeval) -> c_int; #[cfg_attr( all(target_os = "macos", not(target_arch = "aarch64")), link_name = "getmntinfo$INODE64" )] - pub fn getmntinfo(mntbufp: *mut *mut statfs, flags: ::c_int) -> ::c_int; + pub fn getmntinfo(mntbufp: *mut *mut statfs, flags: c_int) -> c_int; #[cfg_attr( all(target_os = "macos", not(target_arch = "aarch64")), link_name = "getfsstat$INODE64" )] - pub fn getfsstat(mntbufp: *mut statfs, bufsize: ::c_int, flags: ::c_int) -> ::c_int; + pub fn getfsstat(mntbufp: *mut statfs, bufsize: c_int, flags: c_int) -> c_int; // Copy-on-write functions. // According to the man page `flags` is an `int` but in the header // this is a `uint32_t`. - pub fn clonefile(src: *const ::c_char, dst: *const ::c_char, flags: u32) -> ::c_int; + pub fn clonefile(src: *const c_char, dst: *const c_char, flags: u32) -> c_int; pub fn clonefileat( - src_dirfd: ::c_int, - src: *const ::c_char, - dst_dirfd: ::c_int, - dst: *const ::c_char, - flags: u32, - ) -> ::c_int; - pub fn fclonefileat( - srcfd: ::c_int, - dst_dirfd: ::c_int, - dst: *const ::c_char, + src_dirfd: c_int, + src: *const c_char, + dst_dirfd: c_int, + dst: *const c_char, flags: u32, - ) -> ::c_int; + ) -> c_int; + pub fn fclonefileat(srcfd: c_int, dst_dirfd: c_int, dst: *const c_char, flags: u32) -> c_int; pub fn copyfile( - from: *const ::c_char, - to: *const ::c_char, + from: *const c_char, + to: *const c_char, state: copyfile_state_t, flags: copyfile_flags_t, - ) -> ::c_int; + ) -> c_int; pub fn fcopyfile( - from: ::c_int, - to: ::c_int, + from: c_int, + to: c_int, state: copyfile_state_t, flags: copyfile_flags_t, - ) -> ::c_int; - pub fn copyfile_state_free(s: copyfile_state_t) -> ::c_int; + ) -> 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; + 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; - pub fn mach_error_string(error_value: ::mach_error_t) -> *mut ::c_char; + pub fn mach_error_string(error_value: crate::mach_error_t) -> *mut c_char; // Added in macOS 10.13 // ISO/IEC 9899:2011 ("ISO C11") K.3.7.4.1 - pub fn memset_s(s: *mut ::c_void, smax: ::size_t, c: ::c_int, n: ::size_t) -> ::c_int; + pub fn memset_s(s: *mut c_void, smax: size_t, c: c_int, n: size_t) -> c_int; // Added in macOS 10.5 - pub fn memset_pattern4(b: *mut ::c_void, pattern4: *const ::c_void, len: ::size_t); - pub fn memset_pattern8(b: *mut ::c_void, pattern8: *const ::c_void, len: ::size_t); - pub fn memset_pattern16(b: *mut ::c_void, pattern16: *const ::c_void, len: ::size_t); + pub fn memset_pattern4(b: *mut c_void, pattern4: *const c_void, len: size_t); + pub fn memset_pattern8(b: *mut c_void, pattern8: *const c_void, len: size_t); + pub fn memset_pattern16(b: *mut c_void, pattern16: *const c_void, len: size_t); // Inherited from BSD but available from Big Sur only pub fn strtonum( - __numstr: *const ::c_char, - __minval: ::c_longlong, - __maxval: ::c_longlong, - errstrp: *mut *const ::c_char, - ) -> ::c_longlong; + __numstr: *const c_char, + __minval: c_longlong, + __maxval: c_longlong, + errstrp: *mut *const c_char, + ) -> c_longlong; pub fn mstats() -> mstats; - pub fn malloc_printf(format: *const ::c_char, ...); - pub fn malloc_zone_check(zone: *mut ::malloc_zone_t) -> ::boolean_t; - pub fn malloc_zone_print(zone: *mut ::malloc_zone_t, verbose: ::boolean_t); - pub fn malloc_zone_statistics(zone: *mut ::malloc_zone_t, stats: *mut malloc_statistics_t); - pub fn malloc_zone_log(zone: *mut ::malloc_zone_t, address: *mut ::c_void); - pub fn malloc_zone_print_ptr_info(ptr: *mut ::c_void); - pub fn malloc_default_zone() -> *mut ::malloc_zone_t; - pub fn malloc_zone_from_ptr(ptr: *const ::c_void) -> *mut ::malloc_zone_t; - pub fn malloc_zone_malloc(zone: *mut ::malloc_zone_t, size: ::size_t) -> *mut ::c_void; - pub fn malloc_zone_valloc(zone: *mut ::malloc_zone_t, size: ::size_t) -> *mut ::c_void; + pub fn malloc_printf(format: *const c_char, ...); + pub fn malloc_zone_check(zone: *mut crate::malloc_zone_t) -> crate::boolean_t; + pub fn malloc_zone_print(zone: *mut crate::malloc_zone_t, verbose: crate::boolean_t); + pub fn malloc_zone_statistics(zone: *mut crate::malloc_zone_t, stats: *mut malloc_statistics_t); + pub fn malloc_zone_log(zone: *mut crate::malloc_zone_t, address: *mut c_void); + pub fn malloc_zone_print_ptr_info(ptr: *mut c_void); + pub fn malloc_default_zone() -> *mut crate::malloc_zone_t; + pub fn malloc_zone_from_ptr(ptr: *const c_void) -> *mut crate::malloc_zone_t; + pub fn malloc_zone_malloc(zone: *mut crate::malloc_zone_t, size: size_t) -> *mut c_void; + pub fn malloc_zone_valloc(zone: *mut crate::malloc_zone_t, size: size_t) -> *mut c_void; pub fn malloc_zone_calloc( - zone: *mut ::malloc_zone_t, - num_items: ::size_t, - size: ::size_t, - ) -> *mut ::c_void; + zone: *mut crate::malloc_zone_t, + num_items: size_t, + size: size_t, + ) -> *mut c_void; pub fn malloc_zone_realloc( - zone: *mut ::malloc_zone_t, - ptr: *mut ::c_void, - size: ::size_t, - ) -> *mut ::c_void; - pub fn malloc_zone_free(zone: *mut ::malloc_zone_t, ptr: *mut ::c_void); - - pub fn proc_listpids( - t: u32, - typeinfo: u32, - buffer: *mut ::c_void, - buffersize: ::c_int, - ) -> ::c_int; - pub fn proc_listallpids(buffer: *mut ::c_void, buffersize: ::c_int) -> ::c_int; - pub fn proc_listpgrppids( - pgrpid: ::pid_t, - buffer: *mut ::c_void, - buffersize: ::c_int, - ) -> ::c_int; - pub fn proc_listchildpids(ppid: ::pid_t, buffer: *mut ::c_void, buffersize: ::c_int) - -> ::c_int; + zone: *mut crate::malloc_zone_t, + ptr: *mut c_void, + size: size_t, + ) -> *mut c_void; + pub fn malloc_zone_free(zone: *mut crate::malloc_zone_t, ptr: *mut c_void); + + pub fn proc_listpids(t: u32, typeinfo: u32, buffer: *mut c_void, buffersize: c_int) -> c_int; + pub fn proc_listallpids(buffer: *mut c_void, buffersize: c_int) -> c_int; + pub fn proc_listpgrppids(pgrpid: crate::pid_t, buffer: *mut c_void, buffersize: c_int) + -> c_int; + pub fn proc_listchildpids(ppid: crate::pid_t, buffer: *mut c_void, buffersize: c_int) -> c_int; pub fn proc_pidinfo( - pid: ::c_int, - flavor: ::c_int, + pid: c_int, + flavor: c_int, arg: u64, - buffer: *mut ::c_void, - buffersize: ::c_int, - ) -> ::c_int; + buffer: *mut c_void, + buffersize: c_int, + ) -> c_int; pub fn proc_pidfdinfo( - pid: ::c_int, - fd: ::c_int, - flavor: ::c_int, - buffer: *mut ::c_void, - buffersize: ::c_int, - ) -> ::c_int; + pid: c_int, + fd: c_int, + flavor: c_int, + buffer: *mut c_void, + buffersize: c_int, + ) -> c_int; pub fn proc_pidfileportinfo( - pid: ::c_int, + pid: c_int, fileport: u32, - flavor: ::c_int, - buffer: *mut ::c_void, - buffersize: ::c_int, - ) -> ::c_int; - pub fn proc_pidpath(pid: ::c_int, buffer: *mut ::c_void, buffersize: u32) -> ::c_int; - pub fn proc_name(pid: ::c_int, buffer: *mut ::c_void, buffersize: u32) -> ::c_int; + flavor: c_int, + buffer: *mut c_void, + buffersize: c_int, + ) -> c_int; + pub fn proc_pidpath(pid: c_int, buffer: *mut c_void, buffersize: u32) -> c_int; + pub fn proc_name(pid: c_int, buffer: *mut c_void, buffersize: u32) -> c_int; pub fn proc_regionfilename( - pid: ::c_int, + pid: c_int, address: u64, - buffer: *mut ::c_void, + buffer: *mut c_void, buffersize: u32, - ) -> ::c_int; - pub fn proc_kmsgbuf(buffer: *mut ::c_void, buffersize: u32) -> ::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; + ) -> c_int; + pub fn proc_kmsgbuf(buffer: *mut c_void, buffersize: u32) -> 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 - pub fn proc_set_no_smt() -> ::c_int; - pub fn proc_setthread_no_smt() -> ::c_int; - pub fn proc_set_csm(flags: u32) -> ::c_int; - pub fn proc_setthread_csm(flags: u32) -> ::c_int; + pub fn proc_set_no_smt() -> c_int; + pub fn proc_setthread_no_smt() -> c_int; + pub fn proc_set_csm(flags: u32) -> c_int; + pub fn proc_setthread_csm(flags: u32) -> c_int; /// # Notes /// /// `id` is of type [`uuid_t`]. - pub fn gethostuuid(id: *mut u8, timeout: *const ::timespec) -> ::c_int; + pub fn gethostuuid(id: *mut u8, timeout: *const crate::timespec) -> c_int; - pub fn gethostid() -> ::c_long; - pub fn sethostid(hostid: ::c_long); + pub fn gethostid() -> c_long; + 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 CCRandomGenerateBytes(bytes: *mut c_void, size: size_t) -> crate::CCRNGStatus; + pub fn getentropy(buf: *mut c_void, buflen: size_t) -> c_int; // FIXME(1.0): should this actually be deprecated? #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] - pub fn _NSGetExecutablePath(buf: *mut ::c_char, bufsize: *mut u32) -> ::c_int; + pub fn _NSGetExecutablePath(buf: *mut c_char, bufsize: *mut u32) -> c_int; // crt_externs.h - pub fn _NSGetArgv() -> *mut *mut *mut ::c_char; - pub fn _NSGetArgc() -> *mut ::c_int; - pub fn _NSGetEnviron() -> *mut *mut *mut ::c_char; - pub fn _NSGetProgname() -> *mut *mut ::c_char; + pub fn _NSGetArgv() -> *mut *mut *mut c_char; + pub fn _NSGetArgc() -> *mut c_int; + pub fn _NSGetEnviron() -> *mut *mut *mut c_char; + pub fn _NSGetProgname() -> *mut *mut c_char; #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] pub fn mach_vm_map( - target_task: ::vm_map_t, - address: *mut ::mach_vm_address_t, - size: ::mach_vm_size_t, - mask: ::mach_vm_offset_t, - flags: ::c_int, - object: ::mem_entry_name_port_t, - offset: ::memory_object_offset_t, - copy: ::boolean_t, - cur_protection: ::vm_prot_t, - max_protection: ::vm_prot_t, - inheritance: ::vm_inherit_t, - ) -> ::kern_return_t; + target_task: crate::vm_map_t, + address: *mut crate::mach_vm_address_t, + size: crate::mach_vm_size_t, + mask: crate::mach_vm_offset_t, + flags: c_int, + object: crate::mem_entry_name_port_t, + offset: crate::memory_object_offset_t, + copy: crate::boolean_t, + cur_protection: crate::vm_prot_t, + max_protection: crate::vm_prot_t, + inheritance: crate::vm_inherit_t, + ) -> crate::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; + flags: c_int, + ) -> crate::kern_return_t; pub fn vm_deallocate( target_task: vm_map_t, address: vm_address_t, size: vm_size_t, - ) -> ::kern_return_t; + ) -> crate::kern_return_t; pub fn host_statistics64( host_priv: host_t, flavor: host_flavor_t, host_info64_out: host_info64_t, host_info64_outCnt: *mut mach_msg_type_number_t, - ) -> ::kern_return_t; + ) -> crate::kern_return_t; pub fn host_processor_info( host: host_t, flavor: processor_flavor_t, out_processor_count: *mut natural_t, out_processor_info: *mut processor_info_array_t, out_processor_infoCnt: *mut mach_msg_type_number_t, - ) -> ::kern_return_t; + ) -> crate::kern_return_t; #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] - pub static mut mach_task_self_: ::mach_port_t; + pub static mut mach_task_self_: crate::mach_port_t; pub fn task_for_pid( - host: ::mach_port_t, - pid: ::pid_t, - task: *mut ::mach_port_t, - ) -> ::kern_return_t; + host: crate::mach_port_t, + pid: crate::pid_t, + task: *mut crate::mach_port_t, + ) -> crate::kern_return_t; pub fn task_info( - host: ::mach_port_t, + host: crate::mach_port_t, flavor: task_flavor_t, task_info_out: task_info_t, task_info_count: *mut mach_msg_type_number_t, - ) -> ::kern_return_t; + ) -> crate::kern_return_t; pub fn task_create( - target_task: ::task_t, - ledgers: ::ledger_array_t, - ledgersCnt: ::mach_msg_type_number_t, - inherit_memory: ::boolean_t, - child_task: *mut ::task_t, - ) -> ::kern_return_t; - pub fn task_terminate(target_task: ::task_t) -> ::kern_return_t; + target_task: crate::task_t, + ledgers: crate::ledger_array_t, + ledgersCnt: crate::mach_msg_type_number_t, + inherit_memory: crate::boolean_t, + child_task: *mut crate::task_t, + ) -> crate::kern_return_t; + pub fn task_terminate(target_task: crate::task_t) -> crate::kern_return_t; pub fn task_threads( - target_task: ::task_inspect_t, - act_list: *mut ::thread_act_array_t, - act_listCnt: *mut ::mach_msg_type_number_t, - ) -> ::kern_return_t; + target_task: crate::task_inspect_t, + act_list: *mut crate::thread_act_array_t, + act_listCnt: *mut crate::mach_msg_type_number_t, + ) -> crate::kern_return_t; pub fn host_statistics( host_priv: host_t, flavor: host_flavor_t, host_info_out: host_info_t, host_info_outCnt: *mut mach_msg_type_number_t, - ) -> ::kern_return_t; + ) -> crate::kern_return_t; // sysdir.h pub fn sysdir_start_search_path_enumeration( dir: sysdir_search_path_directory_t, domainMask: sysdir_search_path_domain_mask_t, - ) -> ::sysdir_search_path_enumeration_state; + ) -> crate::sysdir_search_path_enumeration_state; pub fn sysdir_get_next_search_path_enumeration( - state: ::sysdir_search_path_enumeration_state, - path: *mut ::c_char, - ) -> ::sysdir_search_path_enumeration_state; + state: crate::sysdir_search_path_enumeration_state, + path: *mut c_char, + ) -> crate::sysdir_search_path_enumeration_state; pub static vm_page_size: vm_size_t; pub fn getattrlist( - path: *const ::c_char, - attrList: *mut ::c_void, - attrBuf: *mut ::c_void, - attrBufSize: ::size_t, + path: *const c_char, + attrList: *mut c_void, + attrBuf: *mut c_void, + attrBufSize: size_t, options: u32, - ) -> ::c_int; + ) -> c_int; pub fn fgetattrlist( - fd: ::c_int, - attrList: *mut ::c_void, - attrBuf: *mut ::c_void, - attrBufSize: ::size_t, + fd: c_int, + attrList: *mut c_void, + attrBuf: *mut c_void, + attrBufSize: size_t, options: u32, - ) -> ::c_int; + ) -> c_int; pub fn getattrlistat( - fd: ::c_int, - path: *const ::c_char, - attrList: *mut ::c_void, - attrBuf: *mut ::c_void, - attrBufSize: ::size_t, - options: ::c_ulong, - ) -> ::c_int; + fd: c_int, + path: *const c_char, + attrList: *mut c_void, + attrBuf: *mut c_void, + attrBufSize: size_t, + options: c_ulong, + ) -> c_int; pub fn setattrlist( - path: *const ::c_char, - attrList: *mut ::c_void, - attrBuf: *mut ::c_void, - attrBufSize: ::size_t, + path: *const c_char, + attrList: *mut c_void, + attrBuf: *mut c_void, + attrBufSize: size_t, options: u32, - ) -> ::c_int; + ) -> c_int; pub fn fsetattrlist( - fd: ::c_int, - attrList: *mut ::c_void, - attrBuf: *mut ::c_void, - attrBufSize: ::size_t, + fd: c_int, + attrList: *mut c_void, + attrBuf: *mut c_void, + attrBufSize: size_t, options: u32, - ) -> ::c_int; + ) -> c_int; pub fn setattrlistat( - dir_fd: ::c_int, - path: *const ::c_char, - attrList: *mut ::c_void, - attrBuf: *mut ::c_void, - attrBufSize: ::size_t, + dir_fd: c_int, + path: *const c_char, + attrList: *mut c_void, + attrBuf: *mut c_void, + attrBufSize: size_t, options: u32, - ) -> ::c_int; + ) -> c_int; pub fn getattrlistbulk( - dirfd: ::c_int, - attrList: *mut ::c_void, - attrBuf: *mut ::c_void, - attrBufSize: ::size_t, + dirfd: c_int, + attrList: *mut c_void, + attrBuf: *mut c_void, + attrBufSize: size_t, options: u64, - ) -> ::c_int; - - pub fn malloc_size(ptr: *const ::c_void) -> ::size_t; - pub fn malloc_good_size(size: ::size_t) -> ::size_t; - - 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; + ) -> c_int; + + pub fn malloc_size(ptr: *const c_void) -> size_t; + pub fn malloc_good_size(size: size_t) -> size_t; + + 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: crate::mode_t) -> c_int; + pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::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; + file: *const c_char, + search_path: *const c_char, + argv: *const *mut c_char, + ) -> c_int; } #[allow(deprecated)] #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] -pub unsafe fn mach_task_self() -> ::mach_port_t { +pub unsafe fn mach_task_self() -> crate::mach_port_t { mach_task_self_ } cfg_if! { if #[cfg(target_os = "macos")] { extern "C" { - pub fn clock_settime(clock_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + pub fn clock_settime(clock_id: crate::clockid_t, tp: *const crate::timespec) -> c_int; } } } @@ -6785,17 +6744,17 @@ cfg_if! { ))] { extern "C" { pub fn memmem( - haystack: *const ::c_void, - haystacklen: ::size_t, - needle: *const ::c_void, - needlelen: ::size_t, - ) -> *mut ::c_void; + haystack: *const c_void, + haystacklen: size_t, + needle: *const c_void, + needlelen: size_t, + ) -> *mut c_void; pub fn task_set_info( - target_task: ::task_t, - flavor: ::task_flavor_t, - task_info_in: ::task_info_t, - task_info_inCnt: ::mach_msg_type_number_t, - ) -> ::kern_return_t; + target_task: crate::task_t, + flavor: crate::task_flavor_t, + task_info_in: crate::task_info_t, + task_info_inCnt: crate::mach_msg_type_number_t, + ) -> crate::kern_return_t; } } } @@ -6806,15 +6765,15 @@ cfg_if! { #[deprecated(note = "Will be removed in 1.0 to avoid the `iconv` dependency")] #[cfg_attr(not(feature = "rustc-dep-of-std"), link(name = "iconv"))] extern "C" { - pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; + pub fn iconv_open(tocode: *const c_char, fromcode: *const c_char) -> iconv_t; pub fn iconv( cd: iconv_t, - inbuf: *mut *mut ::c_char, - inbytesleft: *mut ::size_t, - outbuf: *mut *mut ::c_char, - outbytesleft: *mut ::size_t, - ) -> ::size_t; - pub fn iconv_close(cd: iconv_t) -> ::c_int; + inbuf: *mut *mut c_char, + inbytesleft: *mut size_t, + outbuf: *mut *mut c_char, + outbytesleft: *mut size_t, + ) -> size_t; + pub fn iconv_close(cd: iconv_t) -> c_int; } cfg_if! { diff --git a/src/unix/bsd/freebsdlike/dragonfly/errno.rs b/src/unix/bsd/freebsdlike/dragonfly/errno.rs index 5ec0f2ed5fd00..2a6452c635a34 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/errno.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/errno.rs @@ -1,15 +1,17 @@ +use crate::c_int; + /* DIFF(main): module removed in de76fee6 */ // DragonFlyBSD's __error function is declared with "static inline", so it must // be implemented in the libc crate, as a pointer to a static thread_local. f! { #[deprecated(since = "0.2.77", note = "Use `__errno_location()` instead")] - pub fn __error() -> *mut ::c_int { + pub fn __error() -> *mut c_int { &mut errno } } extern "C" { #[thread_local] - pub static mut errno: ::c_int; + pub static mut errno: c_int; } diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 9bf25b335cc7e..ffda3bf3312d1 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -1,3 +1,7 @@ +use crate::{ + c_int, c_short, c_uchar, c_uint, c_ushort, c_void, cmsghdr, intptr_t, off_t, size_t, ssize_t, +}; + pub type dev_t = u32; pub type c_char = i8; pub type wchar_t = i32; @@ -6,39 +10,39 @@ pub type ino_t = u64; pub type lwpid_t = i32; pub type nlink_t = u32; pub type blksize_t = i64; -pub type clockid_t = ::c_ulong; +pub type clockid_t = c_ulong; pub type c_long = i64; pub type c_ulong = u64; pub type time_t = i64; pub type suseconds_t = i64; -pub type uuid_t = ::uuid; +pub type uuid_t = crate::uuid; pub type fsblkcnt_t = u64; pub type fsfilcnt_t = u64; -pub type idtype_t = ::c_uint; -pub type shmatt_t = ::c_uint; +pub type idtype_t = c_uint; +pub type shmatt_t = c_uint; -pub type mqd_t = ::c_int; +pub type mqd_t = c_int; pub type sem_t = *mut sem; pub type cpuset_t = cpumask_t; pub type cpu_set_t = cpumask_t; -pub type register_t = ::c_long; -pub type umtx_t = ::c_int; -pub type pthread_barrierattr_t = ::c_int; -pub type pthread_barrier_t = ::uintptr_t; -pub type pthread_spinlock_t = ::uintptr_t; +pub type register_t = c_long; +pub type umtx_t = c_int; +pub type pthread_barrierattr_t = c_int; +pub type pthread_barrier_t = crate::uintptr_t; +pub type pthread_spinlock_t = crate::uintptr_t; pub type segsz_t = usize; pub type vm_prot_t = u8; pub type vm_maptype_t = u8; pub type vm_inherit_t = i8; -pub type vm_subsys_t = ::c_int; -pub type vm_eflags_t = ::c_uint; +pub type vm_subsys_t = c_int; +pub type vm_eflags_t = c_uint; pub type vm_map_t = *mut __c_anonymous_vm_map; pub type vm_map_entry_t = *mut vm_map_entry; @@ -47,8 +51,8 @@ pub type pmap = __c_anonymous_pmap; #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum sem {} -impl ::Copy for sem {} -impl ::Clone for sem { +impl Copy for sem {} +impl Clone for sem { fn clone(&self) -> sem { *self } @@ -74,12 +78,12 @@ e! { s! { pub struct kevent { - pub ident: ::uintptr_t, - pub filter: ::c_short, - pub flags: ::c_ushort, - pub fflags: ::c_uint, - pub data: ::intptr_t, - pub udata: *mut ::c_void, + pub ident: crate::uintptr_t, + pub filter: c_short, + pub flags: c_ushort, + pub fflags: c_uint, + pub data: intptr_t, + pub udata: *mut c_void, } pub struct exit_status { @@ -88,15 +92,15 @@ s! { } pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_offset: ::off_t, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, + pub aio_fildes: c_int, + pub aio_offset: off_t, + pub aio_buf: *mut c_void, + pub aio_nbytes: size_t, pub aio_sigevent: sigevent, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, - _aio_val: ::c_int, - _aio_err: ::c_int, + pub aio_lio_opcode: c_int, + pub aio_reqprio: c_int, + _aio_val: c_int, + _aio_err: c_int, } pub struct uuid { @@ -109,50 +113,50 @@ s! { } pub struct mq_attr { - pub mq_flags: ::c_long, - pub mq_maxmsg: ::c_long, - pub mq_msgsize: ::c_long, - pub mq_curmsgs: ::c_long, + pub mq_flags: c_long, + pub mq_maxmsg: c_long, + pub mq_msgsize: c_long, + pub mq_curmsgs: c_long, } 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub f_owner: ::uid_t, - pub f_type: ::c_uint, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + pub f_owner: crate::uid_t, + pub f_type: c_uint, pub f_syncreads: u64, pub f_syncwrites: u64, pub f_asyncreads: u64, pub f_asyncwrites: u64, - pub f_fsid_uuid: ::uuid_t, - pub f_uid_uuid: ::uuid_t, + pub f_fsid_uuid: crate::uuid_t, + pub f_uid_uuid: crate::uuid_t, } pub struct stat { - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_dev: ::dev_t, - pub st_mode: ::mode_t, + pub st_ino: crate::ino_t, + pub st_nlink: crate::nlink_t, + pub st_dev: crate::dev_t, + pub st_mode: crate::mode_t, pub st_padding1: u16, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - 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_size: ::off_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_size: off_t, pub st_blocks: i64, pub __old_st_blksize: u32, pub st_flags: u32, @@ -163,67 +167,67 @@ s! { } pub struct if_data { - pub ifi_type: ::c_uchar, - pub ifi_physical: ::c_uchar, - pub ifi_addrlen: ::c_uchar, - pub ifi_hdrlen: ::c_uchar, - pub ifi_recvquota: ::c_uchar, - pub ifi_xmitquota: ::c_uchar, - pub ifi_mtu: ::c_ulong, - pub ifi_metric: ::c_ulong, - pub ifi_link_state: ::c_ulong, + pub ifi_type: c_uchar, + pub ifi_physical: c_uchar, + pub ifi_addrlen: c_uchar, + pub ifi_hdrlen: c_uchar, + pub ifi_recvquota: c_uchar, + pub ifi_xmitquota: c_uchar, + pub ifi_mtu: c_ulong, + pub ifi_metric: c_ulong, + pub ifi_link_state: c_ulong, pub ifi_baudrate: u64, - pub ifi_ipackets: ::c_ulong, - pub ifi_ierrors: ::c_ulong, - pub ifi_opackets: ::c_ulong, - pub ifi_oerrors: ::c_ulong, - pub ifi_collisions: ::c_ulong, - pub ifi_ibytes: ::c_ulong, - pub ifi_obytes: ::c_ulong, - pub ifi_imcasts: ::c_ulong, - pub ifi_omcasts: ::c_ulong, - pub ifi_iqdrops: ::c_ulong, - pub ifi_noproto: ::c_ulong, - pub ifi_hwassist: ::c_ulong, - pub ifi_oqdrops: ::c_ulong, - pub ifi_lastchange: ::timeval, + pub ifi_ipackets: c_ulong, + pub ifi_ierrors: c_ulong, + pub ifi_opackets: c_ulong, + pub ifi_oerrors: c_ulong, + pub ifi_collisions: c_ulong, + pub ifi_ibytes: c_ulong, + pub ifi_obytes: c_ulong, + pub ifi_imcasts: c_ulong, + pub ifi_omcasts: c_ulong, + pub ifi_iqdrops: c_ulong, + pub ifi_noproto: c_ulong, + pub ifi_hwassist: c_ulong, + pub ifi_oqdrops: c_ulong, + pub ifi_lastchange: crate::timeval, } pub struct if_msghdr { - pub ifm_msglen: ::c_ushort, - pub ifm_version: ::c_uchar, - pub ifm_type: ::c_uchar, - pub ifm_addrs: ::c_int, - pub ifm_flags: ::c_int, - pub ifm_index: ::c_ushort, + pub ifm_msglen: c_ushort, + pub ifm_version: c_uchar, + pub ifm_type: c_uchar, + pub ifm_addrs: c_int, + pub ifm_flags: c_int, + pub ifm_index: c_ushort, pub ifm_data: if_data, } pub struct sockaddr_dl { - pub sdl_len: ::c_uchar, - pub sdl_family: ::c_uchar, - pub sdl_index: ::c_ushort, - pub sdl_type: ::c_uchar, - pub sdl_nlen: ::c_uchar, - pub sdl_alen: ::c_uchar, - pub sdl_slen: ::c_uchar, - pub sdl_data: [::c_char; 12], - pub sdl_rcf: ::c_ushort, - pub sdl_route: [::c_ushort; 16], + pub sdl_len: c_uchar, + pub sdl_family: c_uchar, + pub sdl_index: c_ushort, + pub sdl_type: c_uchar, + pub sdl_nlen: c_uchar, + pub sdl_alen: c_uchar, + pub sdl_slen: c_uchar, + pub sdl_data: [c_char; 12], + pub sdl_rcf: c_ushort, + pub sdl_route: [c_ushort; 16], } pub struct xucred { - pub cr_version: ::c_uint, - pub cr_uid: ::uid_t, - pub cr_ngroups: ::c_short, - pub cr_groups: [::gid_t; 16], - __cr_unused1: *mut ::c_void, + pub cr_version: c_uint, + pub cr_uid: crate::uid_t, + pub cr_ngroups: c_short, + pub cr_groups: [crate::gid_t; 16], + __cr_unused1: *mut c_void, } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, + pub ss_sp: *mut c_void, + pub ss_size: size_t, + pub ss_flags: c_int, } pub struct cpumask_t { @@ -231,29 +235,29 @@ 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, - shm_internal: *mut ::c_void, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_lpid: crate::pid_t, + pub shm_cpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + shm_internal: *mut c_void, } pub struct kinfo_file { - pub f_size: ::size_t, - pub f_pid: ::pid_t, - pub f_uid: ::uid_t, - pub f_fd: ::c_int, - pub f_file: *mut ::c_void, - pub f_type: ::c_short, - pub f_count: ::c_int, - pub f_msgcount: ::c_int, - pub f_offset: ::off_t, - pub f_data: *mut ::c_void, - pub f_flag: ::c_uint, + pub f_size: size_t, + pub f_pid: crate::pid_t, + pub f_uid: crate::uid_t, + pub f_fd: c_int, + pub f_file: *mut c_void, + pub f_type: c_short, + pub f_count: c_int, + pub f_msgcount: c_int, + pub f_offset: off_t, + pub f_data: *mut c_void, + pub f_flag: c_uint, } pub struct kinfo_cputime { @@ -266,223 +270,223 @@ s! { cp_unused02: u64, pub cp_sample_pc: u64, pub cp_sample_sp: u64, - pub cp_msg: [::c_char; 32], + pub cp_msg: [c_char; 32], } pub struct kinfo_lwp { - pub kl_pid: ::pid_t, - pub kl_tid: ::lwpid_t, - pub kl_flags: ::c_int, - pub kl_stat: ::lwpstat, - pub kl_lock: ::c_int, - pub kl_tdflags: ::c_int, - pub kl_mpcount: ::c_int, - pub kl_prio: ::c_int, - pub kl_tdprio: ::c_int, - pub kl_rtprio: ::rtprio, + pub kl_pid: crate::pid_t, + pub kl_tid: crate::lwpid_t, + pub kl_flags: c_int, + pub kl_stat: crate::lwpstat, + pub kl_lock: c_int, + pub kl_tdflags: c_int, + pub kl_mpcount: c_int, + pub kl_prio: c_int, + pub kl_tdprio: c_int, + pub kl_rtprio: crate::rtprio, pub kl_uticks: u64, pub kl_sticks: u64, pub kl_iticks: u64, pub kl_cpticks: u64, - pub kl_pctcpu: ::c_uint, - pub kl_slptime: ::c_uint, - pub kl_origcpu: ::c_int, - pub kl_estcpu: ::c_int, - pub kl_cpuid: ::c_int, - pub kl_ru: ::rusage, - pub kl_siglist: ::sigset_t, - pub kl_sigmask: ::sigset_t, - pub kl_wchan: ::uintptr_t, - pub kl_wmesg: [::c_char; 9], - pub kl_comm: [::c_char; MAXCOMLEN + 1], + pub kl_pctcpu: c_uint, + pub kl_slptime: c_uint, + pub kl_origcpu: c_int, + pub kl_estcpu: c_int, + pub kl_cpuid: c_int, + pub kl_ru: crate::rusage, + pub kl_siglist: crate::sigset_t, + pub kl_sigmask: crate::sigset_t, + pub kl_wchan: crate::uintptr_t, + pub kl_wmesg: [c_char; 9], + pub kl_comm: [c_char; MAXCOMLEN + 1], } pub struct kinfo_proc { - pub kp_paddr: ::uintptr_t, - pub kp_flags: ::c_int, - pub kp_stat: ::procstat, - pub kp_lock: ::c_int, - pub kp_acflag: ::c_int, - pub kp_traceflag: ::c_int, - pub kp_fd: ::uintptr_t, - pub kp_siglist: ::sigset_t, - pub kp_sigignore: ::sigset_t, - pub kp_sigcatch: ::sigset_t, - pub kp_sigflag: ::c_int, - pub kp_start: ::timeval, - pub kp_comm: [::c_char; MAXCOMLEN + 1], - pub kp_uid: ::uid_t, - pub kp_ngroups: ::c_short, - pub kp_groups: [::gid_t; NGROUPS], - pub kp_ruid: ::uid_t, - pub kp_svuid: ::uid_t, - pub kp_rgid: ::gid_t, - pub kp_svgid: ::gid_t, - pub kp_pid: ::pid_t, - pub kp_ppid: ::pid_t, - pub kp_pgid: ::pid_t, - pub kp_jobc: ::c_int, - pub kp_sid: ::pid_t, - pub kp_login: [::c_char; 40], // MAXNAMELEN rounded up to the nearest sizeof(long) - pub kp_tdev: ::dev_t, - pub kp_tpgid: ::pid_t, - pub kp_tsid: ::pid_t, - pub kp_exitstat: ::c_ushort, - pub kp_nthreads: ::c_int, - pub kp_nice: ::c_int, - pub kp_swtime: ::c_uint, - pub kp_vm_map_size: ::size_t, - pub kp_vm_rssize: ::segsz_t, - pub kp_vm_swrss: ::segsz_t, - pub kp_vm_tsize: ::segsz_t, - pub kp_vm_dsize: ::segsz_t, - pub kp_vm_ssize: ::segsz_t, - pub kp_vm_prssize: ::c_uint, - pub kp_jailid: ::c_int, - pub kp_ru: ::rusage, - pub kp_cru: ::rusage, - pub kp_auxflags: ::c_int, - pub kp_lwp: ::kinfo_lwp, - pub kp_ktaddr: ::uintptr_t, - kp_spare: [::c_int; 2], + pub kp_paddr: crate::uintptr_t, + pub kp_flags: c_int, + pub kp_stat: crate::procstat, + pub kp_lock: c_int, + pub kp_acflag: c_int, + pub kp_traceflag: c_int, + pub kp_fd: crate::uintptr_t, + pub kp_siglist: crate::sigset_t, + pub kp_sigignore: crate::sigset_t, + pub kp_sigcatch: crate::sigset_t, + pub kp_sigflag: c_int, + pub kp_start: crate::timeval, + pub kp_comm: [c_char; MAXCOMLEN + 1], + pub kp_uid: crate::uid_t, + pub kp_ngroups: c_short, + pub kp_groups: [crate::gid_t; NGROUPS], + pub kp_ruid: crate::uid_t, + pub kp_svuid: crate::uid_t, + pub kp_rgid: crate::gid_t, + pub kp_svgid: crate::gid_t, + pub kp_pid: crate::pid_t, + pub kp_ppid: crate::pid_t, + pub kp_pgid: crate::pid_t, + pub kp_jobc: c_int, + pub kp_sid: crate::pid_t, + pub kp_login: [c_char; 40], // MAXNAMELEN rounded up to the nearest sizeof(long) + pub kp_tdev: crate::dev_t, + pub kp_tpgid: crate::pid_t, + pub kp_tsid: crate::pid_t, + pub kp_exitstat: c_ushort, + pub kp_nthreads: c_int, + pub kp_nice: c_int, + pub kp_swtime: c_uint, + pub kp_vm_map_size: size_t, + pub kp_vm_rssize: crate::segsz_t, + pub kp_vm_swrss: crate::segsz_t, + pub kp_vm_tsize: crate::segsz_t, + pub kp_vm_dsize: crate::segsz_t, + pub kp_vm_ssize: crate::segsz_t, + pub kp_vm_prssize: c_uint, + pub kp_jailid: c_int, + pub kp_ru: crate::rusage, + pub kp_cru: crate::rusage, + pub kp_auxflags: c_int, + pub kp_lwp: crate::kinfo_lwp, + pub kp_ktaddr: crate::uintptr_t, + kp_spare: [c_int; 2], } pub struct __c_anonymous_vm_map { - _priv: [::uintptr_t; 36], + _priv: [crate::uintptr_t; 36], } pub struct vm_map_entry { - _priv: [::uintptr_t; 15], - pub eflags: ::vm_eflags_t, - pub maptype: ::vm_maptype_t, - pub protection: ::vm_prot_t, - pub max_protection: ::vm_prot_t, - pub inheritance: ::vm_inherit_t, - pub wired_count: ::c_int, - pub id: ::vm_subsys_t, + _priv: [crate::uintptr_t; 15], + pub eflags: crate::vm_eflags_t, + pub maptype: crate::vm_maptype_t, + pub protection: crate::vm_prot_t, + pub max_protection: crate::vm_prot_t, + pub inheritance: crate::vm_inherit_t, + pub wired_count: c_int, + pub id: crate::vm_subsys_t, } pub struct __c_anonymous_pmap { - _priv1: [::uintptr_t; 32], - _priv2: [::uintptr_t; 32], - _priv3: [::uintptr_t; 32], - _priv4: [::uintptr_t; 32], - _priv5: [::uintptr_t; 8], + _priv1: [crate::uintptr_t; 32], + _priv2: [crate::uintptr_t; 32], + _priv3: [crate::uintptr_t; 32], + _priv4: [crate::uintptr_t; 32], + _priv5: [crate::uintptr_t; 8], } pub struct vmspace { vm_map: __c_anonymous_vm_map, vm_pmap: __c_anonymous_pmap, - pub vm_flags: ::c_int, - pub vm_shm: *mut ::c_char, - pub vm_rssize: ::segsz_t, - pub vm_swrss: ::segsz_t, - pub vm_tsize: ::segsz_t, - pub vm_dsize: ::segsz_t, - pub vm_ssize: ::segsz_t, - pub vm_taddr: *mut ::c_char, - pub vm_daddr: *mut ::c_char, - pub vm_maxsaddr: *mut ::c_char, - pub vm_minsaddr: *mut ::c_char, - _unused1: ::c_int, - _unused2: ::c_int, - pub vm_pagesupply: ::c_int, - pub vm_holdcnt: ::c_uint, - pub vm_refcnt: ::c_uint, + pub vm_flags: c_int, + pub vm_shm: *mut c_char, + pub vm_rssize: crate::segsz_t, + pub vm_swrss: crate::segsz_t, + pub vm_tsize: crate::segsz_t, + pub vm_dsize: crate::segsz_t, + pub vm_ssize: crate::segsz_t, + pub vm_taddr: *mut c_char, + pub vm_daddr: *mut c_char, + pub vm_maxsaddr: *mut c_char, + pub vm_minsaddr: *mut c_char, + _unused1: c_int, + _unused2: c_int, + pub vm_pagesupply: c_int, + pub vm_holdcnt: c_uint, + pub vm_refcnt: c_uint, } pub struct cpuctl_msr_args_t { - pub msr: ::c_int, + pub msr: c_int, pub data: u64, } pub struct cpuctl_cpuid_args_t { - pub level: ::c_int, + pub level: c_int, pub data: [u32; 4], } pub struct cpuctl_cpuid_count_args_t { - pub level: ::c_int, - pub level_type: ::c_int, + pub level: c_int, + pub level_type: c_int, pub data: [u32; 4], } pub struct cpuctl_update_args_t { - pub data: *mut ::c_void, - pub size: ::size_t, + pub data: *mut c_void, + pub size: size_t, } } s_no_extra_traits! { pub struct utmpx { - pub ut_name: [::c_char; 32], - pub ut_id: [::c_char; 4], + pub ut_name: [c_char; 32], + pub ut_id: [c_char; 4], - pub ut_line: [::c_char; 32], - pub ut_host: [::c_char; 256], + pub ut_line: [c_char; 32], + pub ut_host: [c_char; 256], pub ut_unused: [u8; 16], pub ut_session: u16, pub ut_type: u16, - pub ut_pid: ::pid_t, + pub ut_pid: crate::pid_t, ut_exit: exit_status, - ut_ss: ::sockaddr_storage, - pub ut_tv: ::timeval, + ut_ss: crate::sockaddr_storage, + pub ut_tv: crate::timeval, pub ut_unused2: [u8; 16], } pub struct lastlogx { - pub ll_tv: ::timeval, - pub ll_line: [::c_char; _UTX_LINESIZE], - pub ll_host: [::c_char; _UTX_HOSTSIZE], - pub ll_ss: ::sockaddr_storage, + pub ll_tv: crate::timeval, + pub ll_line: [c_char; _UTX_LINESIZE], + pub ll_host: [c_char; _UTX_HOSTSIZE], + pub ll_ss: crate::sockaddr_storage, } pub struct dirent { - pub d_fileno: ::ino_t, + pub d_fileno: crate::ino_t, pub d_namlen: u16, pub d_type: u8, __unused1: u8, __unused2: u32, - pub d_name: [::c_char; 256], + pub d_name: [c_char; 256], } pub struct statfs { - __spare2: ::c_long, - pub f_bsize: ::c_long, - pub f_iosize: ::c_long, - pub f_blocks: ::c_long, - pub f_bfree: ::c_long, - pub f_bavail: ::c_long, - pub f_files: ::c_long, - pub f_ffree: ::c_long, - pub f_fsid: ::fsid_t, - pub f_owner: ::uid_t, - pub f_type: ::c_int, - pub f_flags: ::c_int, - pub f_syncwrites: ::c_long, - pub f_asyncwrites: ::c_long, - pub f_fstypename: [::c_char; 16], - pub f_mntonname: [::c_char; 80], - pub f_syncreads: ::c_long, - pub f_asyncreads: ::c_long, - __spares1: ::c_short, - pub f_mntfromname: [::c_char; 80], - __spares2: ::c_short, - __spare: [::c_long; 2], + __spare2: c_long, + pub f_bsize: c_long, + pub f_iosize: c_long, + pub f_blocks: c_long, + pub f_bfree: c_long, + pub f_bavail: c_long, + pub f_files: c_long, + pub f_ffree: c_long, + pub f_fsid: crate::fsid_t, + pub f_owner: crate::uid_t, + pub f_type: c_int, + pub f_flags: c_int, + pub f_syncwrites: c_long, + pub f_asyncwrites: c_long, + pub f_fstypename: [c_char; 16], + pub f_mntonname: [c_char; 80], + pub f_syncreads: c_long, + pub f_asyncreads: c_long, + __spares1: c_short, + pub f_mntfromname: [c_char; 80], + __spares2: c_short, + __spare: [c_long; 2], } pub struct sigevent { - pub sigev_notify: ::c_int, + pub sigev_notify: c_int, // The union is 8-byte in size, so it is aligned at a 8-byte offset. #[cfg(target_pointer_width = "64")] - __unused1: ::c_int, - pub sigev_signo: ::c_int, //actually a union + __unused1: c_int, + pub sigev_signo: c_int, //actually a union // pad the union #[cfg(target_pointer_width = "64")] - __unused2: ::c_int, - pub sigev_value: ::sigval, - __unused3: *mut ::c_void, //actually a function pointer + __unused2: c_int, + pub sigev_value: crate::sigval, + __unused3: *mut c_void, //actually a function pointer } pub struct mcontext_t { @@ -512,22 +516,22 @@ s_no_extra_traits! { pub mc_rflags: register_t, pub mc_rsp: register_t, pub mc_ss: register_t, - pub mc_len: ::c_uint, - pub mc_fpformat: ::c_uint, - pub mc_ownedfp: ::c_uint, - __reserved: ::c_uint, - __unused: [::c_uint; 8], - pub mc_fpregs: [[::c_uint; 8]; 32], + pub mc_len: c_uint, + pub mc_fpformat: c_uint, + pub mc_ownedfp: c_uint, + __reserved: c_uint, + __unused: [c_uint; 8], + pub mc_fpregs: [[c_uint; 8]; 32], } pub struct ucontext_t { - pub uc_sigmask: ::sigset_t, + pub uc_sigmask: crate::sigset_t, pub uc_mcontext: mcontext_t, pub uc_link: *mut ucontext_t, pub uc_stack: stack_t, - pub uc_cofunc: ::Option, - pub uc_arg: *mut ::c_void, - __pad: [::c_int; 4], + pub uc_cofunc: Option, + pub uc_arg: *mut c_void, + __pad: [c_int; 4], } } @@ -554,8 +558,8 @@ cfg_if! { } } impl Eq for utmpx {} - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utmpx { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utmpx") .field("ut_name", &self.ut_name) .field("ut_id", &self.ut_id) @@ -572,8 +576,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_name.hash(state); self.ut_id.hash(state); self.ut_line.hash(state); @@ -597,8 +601,8 @@ cfg_if! { } } impl Eq for lastlogx {} - impl ::fmt::Debug for lastlogx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for lastlogx { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("lastlogx") .field("ll_tv", &self.ll_tv) .field("ll_line", &self.ll_line) @@ -607,8 +611,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for lastlogx { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for lastlogx { + fn hash(&self, state: &mut H) { self.ll_tv.hash(state); self.ll_line.hash(state); self.ll_host.hash(state); @@ -631,8 +635,8 @@ cfg_if! { } } impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent") .field("d_fileno", &self.d_fileno) .field("d_namlen", &self.d_namlen) @@ -643,8 +647,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_fileno.hash(state); self.d_namlen.hash(state); self.d_type.hash(state); @@ -685,8 +689,8 @@ cfg_if! { } } impl Eq for statfs {} - impl ::fmt::Debug for statfs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for statfs { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("statfs") .field("f_bsize", &self.f_bsize) .field("f_iosize", &self.f_iosize) @@ -708,8 +712,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for statfs { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for statfs { + fn hash(&self, state: &mut H) { self.f_bsize.hash(state); self.f_iosize.hash(state); self.f_blocks.hash(state); @@ -739,8 +743,8 @@ cfg_if! { } } impl Eq for sigevent {} - impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sigevent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sigevent") .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) @@ -748,8 +752,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); self.sigev_signo.hash(state); self.sigev_value.hash(state); @@ -790,8 +794,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("mcontext_t") .field("mc_onstack", &self.mc_onstack) .field("mc_rdi", &self.mc_rdi) @@ -826,8 +830,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.mc_onstack.hash(state); self.mc_rdi.hash(state); self.mc_rsi.hash(state); @@ -873,8 +877,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ucontext_t") .field("uc_sigmask", &self.uc_sigmask) .field("uc_mcontext", &self.uc_mcontext) @@ -885,8 +889,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_sigmask.hash(state); self.uc_mcontext.hash(state); self.uc_link.hash(state); @@ -898,174 +902,174 @@ cfg_if! { } } -pub const RAND_MAX: ::c_int = 0x7fff_ffff; -pub const PTHREAD_STACK_MIN: ::size_t = 16384; -pub const SIGSTKSZ: ::size_t = 40960; -pub const SIGCKPT: ::c_int = 33; -pub const SIGCKPTEXIT: ::c_int = 34; -pub const CKPT_FREEZE: ::c_int = 0x1; -pub const CKPT_THAW: ::c_int = 0x2; -pub const MADV_INVAL: ::c_int = 10; -pub const MADV_SETMAP: ::c_int = 11; -pub const O_CLOEXEC: ::c_int = 0x00020000; -pub const O_DIRECTORY: ::c_int = 0x08000000; -pub const F_GETLK: ::c_int = 7; -pub const F_SETLK: ::c_int = 8; -pub const F_SETLKW: ::c_int = 9; -pub const F_GETPATH: ::c_int = 19; -pub const ENOMEDIUM: ::c_int = 93; -pub const ENOTRECOVERABLE: ::c_int = 94; -pub const EOWNERDEAD: ::c_int = 95; -pub const EASYNC: ::c_int = 99; -pub const ELAST: ::c_int = 99; -pub const RLIMIT_POSIXLOCKS: ::c_int = 11; +pub const RAND_MAX: c_int = 0x7fff_ffff; +pub const PTHREAD_STACK_MIN: size_t = 16384; +pub const SIGSTKSZ: size_t = 40960; +pub const SIGCKPT: c_int = 33; +pub const SIGCKPTEXIT: c_int = 34; +pub const CKPT_FREEZE: c_int = 0x1; +pub const CKPT_THAW: c_int = 0x2; +pub const MADV_INVAL: c_int = 10; +pub const MADV_SETMAP: c_int = 11; +pub const O_CLOEXEC: c_int = 0x00020000; +pub const O_DIRECTORY: c_int = 0x08000000; +pub const F_GETLK: c_int = 7; +pub const F_SETLK: c_int = 8; +pub const F_SETLKW: c_int = 9; +pub const F_GETPATH: c_int = 19; +pub const ENOMEDIUM: c_int = 93; +pub const ENOTRECOVERABLE: c_int = 94; +pub const EOWNERDEAD: c_int = 95; +pub const EASYNC: c_int = 99; +pub const ELAST: c_int = 99; +pub const RLIMIT_POSIXLOCKS: c_int = 11; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIM_NLIMITS: ::rlim_t = 12; - -pub const Q_GETQUOTA: ::c_int = 0x300; -pub const Q_SETQUOTA: ::c_int = 0x400; - -pub const CTL_UNSPEC: ::c_int = 0; -pub const CTL_KERN: ::c_int = 1; -pub const CTL_VM: ::c_int = 2; -pub const CTL_VFS: ::c_int = 3; -pub const CTL_NET: ::c_int = 4; -pub const CTL_DEBUG: ::c_int = 5; -pub const CTL_HW: ::c_int = 6; -pub const CTL_MACHDEP: ::c_int = 7; -pub const CTL_USER: ::c_int = 8; -pub const CTL_P1003_1B: ::c_int = 9; -pub const CTL_LWKT: ::c_int = 10; -pub const CTL_MAXID: ::c_int = 11; -pub const KERN_OSTYPE: ::c_int = 1; -pub const KERN_OSRELEASE: ::c_int = 2; -pub const KERN_OSREV: ::c_int = 3; -pub const KERN_VERSION: ::c_int = 4; -pub const KERN_MAXVNODES: ::c_int = 5; -pub const KERN_MAXPROC: ::c_int = 6; -pub const KERN_MAXFILES: ::c_int = 7; -pub const KERN_ARGMAX: ::c_int = 8; -pub const KERN_SECURELVL: ::c_int = 9; -pub const KERN_HOSTNAME: ::c_int = 10; -pub const KERN_HOSTID: ::c_int = 11; -pub const KERN_CLOCKRATE: ::c_int = 12; -pub const KERN_VNODE: ::c_int = 13; -pub const KERN_PROC: ::c_int = 14; -pub const KERN_FILE: ::c_int = 15; -pub const KERN_PROF: ::c_int = 16; -pub const KERN_POSIX1: ::c_int = 17; -pub const KERN_NGROUPS: ::c_int = 18; -pub const KERN_JOB_CONTROL: ::c_int = 19; -pub const KERN_SAVED_IDS: ::c_int = 20; -pub const KERN_BOOTTIME: ::c_int = 21; -pub const KERN_NISDOMAINNAME: ::c_int = 22; -pub const KERN_UPDATEINTERVAL: ::c_int = 23; -pub const KERN_OSRELDATE: ::c_int = 24; -pub const KERN_NTP_PLL: ::c_int = 25; -pub const KERN_BOOTFILE: ::c_int = 26; -pub const KERN_MAXFILESPERPROC: ::c_int = 27; -pub const KERN_MAXPROCPERUID: ::c_int = 28; -pub const KERN_DUMPDEV: ::c_int = 29; -pub const KERN_IPC: ::c_int = 30; -pub const KERN_DUMMY: ::c_int = 31; -pub const KERN_PS_STRINGS: ::c_int = 32; -pub const KERN_USRSTACK: ::c_int = 33; -pub const KERN_LOGSIGEXIT: ::c_int = 34; -pub const KERN_IOV_MAX: ::c_int = 35; -pub const KERN_MAXPOSIXLOCKSPERUID: ::c_int = 36; -pub const KERN_MAXID: ::c_int = 37; -pub const KERN_PROC_ALL: ::c_int = 0; -pub const KERN_PROC_PID: ::c_int = 1; -pub const KERN_PROC_PGRP: ::c_int = 2; -pub const KERN_PROC_SESSION: ::c_int = 3; -pub const KERN_PROC_TTY: ::c_int = 4; -pub const KERN_PROC_UID: ::c_int = 5; -pub const KERN_PROC_RUID: ::c_int = 6; -pub const KERN_PROC_ARGS: ::c_int = 7; -pub const KERN_PROC_CWD: ::c_int = 8; -pub const KERN_PROC_PATHNAME: ::c_int = 9; -pub const KERN_PROC_FLAGMASK: ::c_int = 0x10; -pub const KERN_PROC_FLAG_LWP: ::c_int = 0x10; -pub const KIPC_MAXSOCKBUF: ::c_int = 1; -pub const KIPC_SOCKBUF_WASTE: ::c_int = 2; -pub const KIPC_SOMAXCONN: ::c_int = 3; -pub const KIPC_MAX_LINKHDR: ::c_int = 4; -pub const KIPC_MAX_PROTOHDR: ::c_int = 5; -pub const KIPC_MAX_HDR: ::c_int = 6; -pub const KIPC_MAX_DATALEN: ::c_int = 7; -pub const KIPC_MBSTAT: ::c_int = 8; -pub const KIPC_NMBCLUSTERS: ::c_int = 9; -pub const HW_MACHINE: ::c_int = 1; -pub const HW_MODEL: ::c_int = 2; -pub const HW_NCPU: ::c_int = 3; -pub const HW_BYTEORDER: ::c_int = 4; -pub const HW_PHYSMEM: ::c_int = 5; -pub const HW_USERMEM: ::c_int = 6; -pub const HW_PAGESIZE: ::c_int = 7; -pub const HW_DISKNAMES: ::c_int = 8; -pub const HW_DISKSTATS: ::c_int = 9; -pub const HW_FLOATINGPT: ::c_int = 10; -pub const HW_MACHINE_ARCH: ::c_int = 11; -pub const HW_MACHINE_PLATFORM: ::c_int = 12; -pub const HW_SENSORS: ::c_int = 13; -pub const HW_MAXID: ::c_int = 14; -pub const USER_CS_PATH: ::c_int = 1; -pub const USER_BC_BASE_MAX: ::c_int = 2; -pub const USER_BC_DIM_MAX: ::c_int = 3; -pub const USER_BC_SCALE_MAX: ::c_int = 4; -pub const USER_BC_STRING_MAX: ::c_int = 5; -pub const USER_COLL_WEIGHTS_MAX: ::c_int = 6; -pub const USER_EXPR_NEST_MAX: ::c_int = 7; -pub const USER_LINE_MAX: ::c_int = 8; -pub const USER_RE_DUP_MAX: ::c_int = 9; -pub const USER_POSIX2_VERSION: ::c_int = 10; -pub const USER_POSIX2_C_BIND: ::c_int = 11; -pub const USER_POSIX2_C_DEV: ::c_int = 12; -pub const USER_POSIX2_CHAR_TERM: ::c_int = 13; -pub const USER_POSIX2_FORT_DEV: ::c_int = 14; -pub const USER_POSIX2_FORT_RUN: ::c_int = 15; -pub const USER_POSIX2_LOCALEDEF: ::c_int = 16; -pub const USER_POSIX2_SW_DEV: ::c_int = 17; -pub const USER_POSIX2_UPE: ::c_int = 18; -pub const USER_STREAM_MAX: ::c_int = 19; -pub const USER_TZNAME_MAX: ::c_int = 20; -pub const USER_MAXID: ::c_int = 21; -pub const CTL_P1003_1B_ASYNCHRONOUS_IO: ::c_int = 1; -pub const CTL_P1003_1B_MAPPED_FILES: ::c_int = 2; -pub const CTL_P1003_1B_MEMLOCK: ::c_int = 3; -pub const CTL_P1003_1B_MEMLOCK_RANGE: ::c_int = 4; -pub const CTL_P1003_1B_MEMORY_PROTECTION: ::c_int = 5; -pub const CTL_P1003_1B_MESSAGE_PASSING: ::c_int = 6; -pub const CTL_P1003_1B_PRIORITIZED_IO: ::c_int = 7; -pub const CTL_P1003_1B_PRIORITY_SCHEDULING: ::c_int = 8; -pub const CTL_P1003_1B_REALTIME_SIGNALS: ::c_int = 9; -pub const CTL_P1003_1B_SEMAPHORES: ::c_int = 10; -pub const CTL_P1003_1B_FSYNC: ::c_int = 11; -pub const CTL_P1003_1B_SHARED_MEMORY_OBJECTS: ::c_int = 12; -pub const CTL_P1003_1B_SYNCHRONIZED_IO: ::c_int = 13; -pub const CTL_P1003_1B_TIMERS: ::c_int = 14; -pub const CTL_P1003_1B_AIO_LISTIO_MAX: ::c_int = 15; -pub const CTL_P1003_1B_AIO_MAX: ::c_int = 16; -pub const CTL_P1003_1B_AIO_PRIO_DELTA_MAX: ::c_int = 17; -pub const CTL_P1003_1B_DELAYTIMER_MAX: ::c_int = 18; -pub const CTL_P1003_1B_UNUSED1: ::c_int = 19; -pub const CTL_P1003_1B_PAGESIZE: ::c_int = 20; -pub const CTL_P1003_1B_RTSIG_MAX: ::c_int = 21; -pub const CTL_P1003_1B_SEM_NSEMS_MAX: ::c_int = 22; -pub const CTL_P1003_1B_SEM_VALUE_MAX: ::c_int = 23; -pub const CTL_P1003_1B_SIGQUEUE_MAX: ::c_int = 24; -pub const CTL_P1003_1B_TIMER_MAX: ::c_int = 25; -pub const CTL_P1003_1B_MAXID: ::c_int = 26; - -pub const CPUCTL_RSMSR: ::c_int = 0xc0106301; -pub const CPUCTL_WRMSR: ::c_int = 0xc0106302; -pub const CPUCTL_CPUID: ::c_int = 0xc0106303; -pub const CPUCTL_UPDATE: ::c_int = 0xc0106304; -pub const CPUCTL_MSRSBIT: ::c_int = 0xc0106305; -pub const CPUCTL_MSRCBIT: ::c_int = 0xc0106306; -pub const CPUCTL_CPUID_COUNT: ::c_int = 0xc0106307; - -pub const CPU_SETSIZE: ::size_t = ::mem::size_of::<::cpumask_t>() * 8; +pub const RLIM_NLIMITS: crate::rlim_t = 12; + +pub const Q_GETQUOTA: c_int = 0x300; +pub const Q_SETQUOTA: c_int = 0x400; + +pub const CTL_UNSPEC: c_int = 0; +pub const CTL_KERN: c_int = 1; +pub const CTL_VM: c_int = 2; +pub const CTL_VFS: c_int = 3; +pub const CTL_NET: c_int = 4; +pub const CTL_DEBUG: c_int = 5; +pub const CTL_HW: c_int = 6; +pub const CTL_MACHDEP: c_int = 7; +pub const CTL_USER: c_int = 8; +pub const CTL_P1003_1B: c_int = 9; +pub const CTL_LWKT: c_int = 10; +pub const CTL_MAXID: c_int = 11; +pub const KERN_OSTYPE: c_int = 1; +pub const KERN_OSRELEASE: c_int = 2; +pub const KERN_OSREV: c_int = 3; +pub const KERN_VERSION: c_int = 4; +pub const KERN_MAXVNODES: c_int = 5; +pub const KERN_MAXPROC: c_int = 6; +pub const KERN_MAXFILES: c_int = 7; +pub const KERN_ARGMAX: c_int = 8; +pub const KERN_SECURELVL: c_int = 9; +pub const KERN_HOSTNAME: c_int = 10; +pub const KERN_HOSTID: c_int = 11; +pub const KERN_CLOCKRATE: c_int = 12; +pub const KERN_VNODE: c_int = 13; +pub const KERN_PROC: c_int = 14; +pub const KERN_FILE: c_int = 15; +pub const KERN_PROF: c_int = 16; +pub const KERN_POSIX1: c_int = 17; +pub const KERN_NGROUPS: c_int = 18; +pub const KERN_JOB_CONTROL: c_int = 19; +pub const KERN_SAVED_IDS: c_int = 20; +pub const KERN_BOOTTIME: c_int = 21; +pub const KERN_NISDOMAINNAME: c_int = 22; +pub const KERN_UPDATEINTERVAL: c_int = 23; +pub const KERN_OSRELDATE: c_int = 24; +pub const KERN_NTP_PLL: c_int = 25; +pub const KERN_BOOTFILE: c_int = 26; +pub const KERN_MAXFILESPERPROC: c_int = 27; +pub const KERN_MAXPROCPERUID: c_int = 28; +pub const KERN_DUMPDEV: c_int = 29; +pub const KERN_IPC: c_int = 30; +pub const KERN_DUMMY: c_int = 31; +pub const KERN_PS_STRINGS: c_int = 32; +pub const KERN_USRSTACK: c_int = 33; +pub const KERN_LOGSIGEXIT: c_int = 34; +pub const KERN_IOV_MAX: c_int = 35; +pub const KERN_MAXPOSIXLOCKSPERUID: c_int = 36; +pub const KERN_MAXID: c_int = 37; +pub const KERN_PROC_ALL: c_int = 0; +pub const KERN_PROC_PID: c_int = 1; +pub const KERN_PROC_PGRP: c_int = 2; +pub const KERN_PROC_SESSION: c_int = 3; +pub const KERN_PROC_TTY: c_int = 4; +pub const KERN_PROC_UID: c_int = 5; +pub const KERN_PROC_RUID: c_int = 6; +pub const KERN_PROC_ARGS: c_int = 7; +pub const KERN_PROC_CWD: c_int = 8; +pub const KERN_PROC_PATHNAME: c_int = 9; +pub const KERN_PROC_FLAGMASK: c_int = 0x10; +pub const KERN_PROC_FLAG_LWP: c_int = 0x10; +pub const KIPC_MAXSOCKBUF: c_int = 1; +pub const KIPC_SOCKBUF_WASTE: c_int = 2; +pub const KIPC_SOMAXCONN: c_int = 3; +pub const KIPC_MAX_LINKHDR: c_int = 4; +pub const KIPC_MAX_PROTOHDR: c_int = 5; +pub const KIPC_MAX_HDR: c_int = 6; +pub const KIPC_MAX_DATALEN: c_int = 7; +pub const KIPC_MBSTAT: c_int = 8; +pub const KIPC_NMBCLUSTERS: c_int = 9; +pub const HW_MACHINE: c_int = 1; +pub const HW_MODEL: c_int = 2; +pub const HW_NCPU: c_int = 3; +pub const HW_BYTEORDER: c_int = 4; +pub const HW_PHYSMEM: c_int = 5; +pub const HW_USERMEM: c_int = 6; +pub const HW_PAGESIZE: c_int = 7; +pub const HW_DISKNAMES: c_int = 8; +pub const HW_DISKSTATS: c_int = 9; +pub const HW_FLOATINGPT: c_int = 10; +pub const HW_MACHINE_ARCH: c_int = 11; +pub const HW_MACHINE_PLATFORM: c_int = 12; +pub const HW_SENSORS: c_int = 13; +pub const HW_MAXID: c_int = 14; +pub const USER_CS_PATH: c_int = 1; +pub const USER_BC_BASE_MAX: c_int = 2; +pub const USER_BC_DIM_MAX: c_int = 3; +pub const USER_BC_SCALE_MAX: c_int = 4; +pub const USER_BC_STRING_MAX: c_int = 5; +pub const USER_COLL_WEIGHTS_MAX: c_int = 6; +pub const USER_EXPR_NEST_MAX: c_int = 7; +pub const USER_LINE_MAX: c_int = 8; +pub const USER_RE_DUP_MAX: c_int = 9; +pub const USER_POSIX2_VERSION: c_int = 10; +pub const USER_POSIX2_C_BIND: c_int = 11; +pub const USER_POSIX2_C_DEV: c_int = 12; +pub const USER_POSIX2_CHAR_TERM: c_int = 13; +pub const USER_POSIX2_FORT_DEV: c_int = 14; +pub const USER_POSIX2_FORT_RUN: c_int = 15; +pub const USER_POSIX2_LOCALEDEF: c_int = 16; +pub const USER_POSIX2_SW_DEV: c_int = 17; +pub const USER_POSIX2_UPE: c_int = 18; +pub const USER_STREAM_MAX: c_int = 19; +pub const USER_TZNAME_MAX: c_int = 20; +pub const USER_MAXID: c_int = 21; +pub const CTL_P1003_1B_ASYNCHRONOUS_IO: c_int = 1; +pub const CTL_P1003_1B_MAPPED_FILES: c_int = 2; +pub const CTL_P1003_1B_MEMLOCK: c_int = 3; +pub const CTL_P1003_1B_MEMLOCK_RANGE: c_int = 4; +pub const CTL_P1003_1B_MEMORY_PROTECTION: c_int = 5; +pub const CTL_P1003_1B_MESSAGE_PASSING: c_int = 6; +pub const CTL_P1003_1B_PRIORITIZED_IO: c_int = 7; +pub const CTL_P1003_1B_PRIORITY_SCHEDULING: c_int = 8; +pub const CTL_P1003_1B_REALTIME_SIGNALS: c_int = 9; +pub const CTL_P1003_1B_SEMAPHORES: c_int = 10; +pub const CTL_P1003_1B_FSYNC: c_int = 11; +pub const CTL_P1003_1B_SHARED_MEMORY_OBJECTS: c_int = 12; +pub const CTL_P1003_1B_SYNCHRONIZED_IO: c_int = 13; +pub const CTL_P1003_1B_TIMERS: c_int = 14; +pub const CTL_P1003_1B_AIO_LISTIO_MAX: c_int = 15; +pub const CTL_P1003_1B_AIO_MAX: c_int = 16; +pub const CTL_P1003_1B_AIO_PRIO_DELTA_MAX: c_int = 17; +pub const CTL_P1003_1B_DELAYTIMER_MAX: c_int = 18; +pub const CTL_P1003_1B_UNUSED1: c_int = 19; +pub const CTL_P1003_1B_PAGESIZE: c_int = 20; +pub const CTL_P1003_1B_RTSIG_MAX: c_int = 21; +pub const CTL_P1003_1B_SEM_NSEMS_MAX: c_int = 22; +pub const CTL_P1003_1B_SEM_VALUE_MAX: c_int = 23; +pub const CTL_P1003_1B_SIGQUEUE_MAX: c_int = 24; +pub const CTL_P1003_1B_TIMER_MAX: c_int = 25; +pub const CTL_P1003_1B_MAXID: c_int = 26; + +pub const CPUCTL_RSMSR: c_int = 0xc0106301; +pub const CPUCTL_WRMSR: c_int = 0xc0106302; +pub const CPUCTL_CPUID: c_int = 0xc0106303; +pub const CPUCTL_UPDATE: c_int = 0xc0106304; +pub const CPUCTL_MSRSBIT: c_int = 0xc0106305; +pub const CPUCTL_MSRCBIT: c_int = 0xc0106306; +pub const CPUCTL_CPUID_COUNT: c_int = 0xc0106307; + +pub const CPU_SETSIZE: size_t = crate::mem::size_of::() * 8; pub const EVFILT_READ: i16 = -1; pub const EVFILT_WRITE: i16 = -2; @@ -1093,7 +1097,7 @@ pub const EV_EOF: u16 = 0x8000; pub const EV_HUP: u16 = 0x8000; pub const EV_SYSFLAGS: u16 = 0xf000; -pub const FIODNAME: ::c_ulong = 0x80106678; +pub const FIODNAME: c_ulong = 0x80106678; pub const NOTE_TRIGGER: u32 = 0x01000000; pub const NOTE_FFNOP: u32 = 0x00000000; @@ -1120,43 +1124,43 @@ pub const NOTE_TRACK: u32 = 0x00000001; pub const NOTE_TRACKERR: u32 = 0x00000002; pub const NOTE_CHILD: u32 = 0x00000004; -pub const SO_SNDSPACE: ::c_int = 0x100a; -pub const SO_CPUHINT: ::c_int = 0x1030; -pub const SO_PASSCRED: ::c_int = 0x4000; +pub const SO_SNDSPACE: c_int = 0x100a; +pub const SO_CPUHINT: c_int = 0x1030; +pub const SO_PASSCRED: c_int = 0x4000; -pub const PT_FIRSTMACH: ::c_int = 32; +pub const PT_FIRSTMACH: c_int = 32; -pub const PROC_REAP_ACQUIRE: ::c_int = 0x0001; -pub const PROC_REAP_RELEASE: ::c_int = 0x0002; -pub const PROC_REAP_STATUS: ::c_int = 0x0003; -pub const PROC_PDEATHSIG_CTL: ::c_int = 0x0004; -pub const PROC_PDEATHSIG_STATUS: ::c_int = 0x0005; +pub const PROC_REAP_ACQUIRE: c_int = 0x0001; +pub const PROC_REAP_RELEASE: c_int = 0x0002; +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/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 -pub const IFF_LOOPBACK: ::c_int = 0x8; // is a loopback net -pub const IFF_POINTOPOINT: ::c_int = 0x10; // interface is point-to-point link -pub const IFF_SMART: ::c_int = 0x20; // interface manages own routes -pub const IFF_RUNNING: ::c_int = 0x40; // resources allocated -pub const IFF_NOARP: ::c_int = 0x80; // no address resolution protocol -pub const IFF_PROMISC: ::c_int = 0x100; // receive all packets -pub const IFF_ALLMULTI: ::c_int = 0x200; // receive all multicast packets -pub const IFF_OACTIVE_COMPAT: ::c_int = 0x400; // was transmission in progress -pub const IFF_SIMPLEX: ::c_int = 0x800; // can't hear own transmissions -pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit -pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit -pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit -pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; // use alternate physical connection -pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast - // was interface is in polling mode -pub const IFF_POLLING_COMPAT: ::c_int = 0x10000; -pub const IFF_PPROMISC: ::c_int = 0x20000; // user-requested promisc mode -pub const IFF_MONITOR: ::c_int = 0x40000; // user-requested monitor mode -pub const IFF_STATICARP: ::c_int = 0x80000; // static ARP -pub const IFF_NPOLLING: ::c_int = 0x100000; // interface is in polling mode -pub const IFF_IDIRECT: ::c_int = 0x200000; // direct input +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 +pub const IFF_LOOPBACK: c_int = 0x8; // is a loopback net +pub const IFF_POINTOPOINT: c_int = 0x10; // interface is point-to-point link +pub const IFF_SMART: c_int = 0x20; // interface manages own routes +pub const IFF_RUNNING: c_int = 0x40; // resources allocated +pub const IFF_NOARP: c_int = 0x80; // no address resolution protocol +pub const IFF_PROMISC: c_int = 0x100; // receive all packets +pub const IFF_ALLMULTI: c_int = 0x200; // receive all multicast packets +pub const IFF_OACTIVE_COMPAT: c_int = 0x400; // was transmission in progress +pub const IFF_SIMPLEX: c_int = 0x800; // can't hear own transmissions +pub const IFF_LINK0: c_int = 0x1000; // per link layer defined bit +pub const IFF_LINK1: c_int = 0x2000; // per link layer defined bit +pub const IFF_LINK2: c_int = 0x4000; // per link layer defined bit +pub const IFF_ALTPHYS: c_int = IFF_LINK2; // use alternate physical connection +pub const IFF_MULTICAST: c_int = 0x8000; // supports multicast + // was interface is in polling mode +pub const IFF_POLLING_COMPAT: c_int = 0x10000; +pub const IFF_PPROMISC: c_int = 0x20000; // user-requested promisc mode +pub const IFF_MONITOR: c_int = 0x40000; // user-requested monitor mode +pub const IFF_STATICARP: c_int = 0x80000; // static ARP +pub const IFF_NPOLLING: c_int = 0x100000; // interface is in polling mode +pub const IFF_IDIRECT: c_int = 0x200000; // direct input // // sys/netinet/in.h @@ -1165,328 +1169,328 @@ pub const IFF_IDIRECT: ::c_int = 0x200000; // direct input // IPPROTO_IP defined in src/unix/mod.rs /// IP6 hop-by-hop options -pub const IPPROTO_HOPOPTS: ::c_int = 0; +pub const IPPROTO_HOPOPTS: c_int = 0; // IPPROTO_ICMP defined in src/unix/mod.rs /// group mgmt protocol -pub const IPPROTO_IGMP: ::c_int = 2; +pub const IPPROTO_IGMP: c_int = 2; /// gateway^2 (deprecated) -pub const IPPROTO_GGP: ::c_int = 3; +pub const IPPROTO_GGP: c_int = 3; /// for compatibility -pub const IPPROTO_IPIP: ::c_int = 4; +pub const IPPROTO_IPIP: c_int = 4; // IPPROTO_TCP defined in src/unix/mod.rs /// Stream protocol II. -pub const IPPROTO_ST: ::c_int = 7; +pub const IPPROTO_ST: c_int = 7; /// exterior gateway protocol -pub const IPPROTO_EGP: ::c_int = 8; +pub const IPPROTO_EGP: c_int = 8; /// private interior gateway -pub const IPPROTO_PIGP: ::c_int = 9; +pub const IPPROTO_PIGP: c_int = 9; /// BBN RCC Monitoring -pub const IPPROTO_RCCMON: ::c_int = 10; +pub const IPPROTO_RCCMON: c_int = 10; /// network voice protocol -pub const IPPROTO_NVPII: ::c_int = 11; +pub const IPPROTO_NVPII: c_int = 11; /// pup -pub const IPPROTO_PUP: ::c_int = 12; +pub const IPPROTO_PUP: c_int = 12; /// Argus -pub const IPPROTO_ARGUS: ::c_int = 13; +pub const IPPROTO_ARGUS: c_int = 13; /// EMCON -pub const IPPROTO_EMCON: ::c_int = 14; +pub const IPPROTO_EMCON: c_int = 14; /// Cross Net Debugger -pub const IPPROTO_XNET: ::c_int = 15; +pub const IPPROTO_XNET: c_int = 15; /// Chaos -pub const IPPROTO_CHAOS: ::c_int = 16; +pub const IPPROTO_CHAOS: c_int = 16; // IPPROTO_UDP defined in src/unix/mod.rs /// Multiplexing -pub const IPPROTO_MUX: ::c_int = 18; +pub const IPPROTO_MUX: c_int = 18; /// DCN Measurement Subsystems -pub const IPPROTO_MEAS: ::c_int = 19; +pub const IPPROTO_MEAS: c_int = 19; /// Host Monitoring -pub const IPPROTO_HMP: ::c_int = 20; +pub const IPPROTO_HMP: c_int = 20; /// Packet Radio Measurement -pub const IPPROTO_PRM: ::c_int = 21; +pub const IPPROTO_PRM: c_int = 21; /// xns idp -pub const IPPROTO_IDP: ::c_int = 22; +pub const IPPROTO_IDP: c_int = 22; /// Trunk-1 -pub const IPPROTO_TRUNK1: ::c_int = 23; +pub const IPPROTO_TRUNK1: c_int = 23; /// Trunk-2 -pub const IPPROTO_TRUNK2: ::c_int = 24; +pub const IPPROTO_TRUNK2: c_int = 24; /// Leaf-1 -pub const IPPROTO_LEAF1: ::c_int = 25; +pub const IPPROTO_LEAF1: c_int = 25; /// Leaf-2 -pub const IPPROTO_LEAF2: ::c_int = 26; +pub const IPPROTO_LEAF2: c_int = 26; /// Reliable Data -pub const IPPROTO_RDP: ::c_int = 27; +pub const IPPROTO_RDP: c_int = 27; /// Reliable Transaction -pub const IPPROTO_IRTP: ::c_int = 28; +pub const IPPROTO_IRTP: c_int = 28; /// tp-4 w/ class negotiation -pub const IPPROTO_TP: ::c_int = 29; +pub const IPPROTO_TP: c_int = 29; /// Bulk Data Transfer -pub const IPPROTO_BLT: ::c_int = 30; +pub const IPPROTO_BLT: c_int = 30; /// Network Services -pub const IPPROTO_NSP: ::c_int = 31; +pub const IPPROTO_NSP: c_int = 31; /// Merit Internodal -pub const IPPROTO_INP: ::c_int = 32; +pub const IPPROTO_INP: c_int = 32; /// Sequential Exchange -pub const IPPROTO_SEP: ::c_int = 33; +pub const IPPROTO_SEP: c_int = 33; /// Third Party Connect -pub const IPPROTO_3PC: ::c_int = 34; +pub const IPPROTO_3PC: c_int = 34; /// InterDomain Policy Routing -pub const IPPROTO_IDPR: ::c_int = 35; +pub const IPPROTO_IDPR: c_int = 35; /// XTP -pub const IPPROTO_XTP: ::c_int = 36; +pub const IPPROTO_XTP: c_int = 36; /// Datagram Delivery -pub const IPPROTO_DDP: ::c_int = 37; +pub const IPPROTO_DDP: c_int = 37; /// Control Message Transport -pub const IPPROTO_CMTP: ::c_int = 38; +pub const IPPROTO_CMTP: c_int = 38; /// TP++ Transport -pub const IPPROTO_TPXX: ::c_int = 39; +pub const IPPROTO_TPXX: c_int = 39; /// IL transport protocol -pub const IPPROTO_IL: ::c_int = 40; +pub const IPPROTO_IL: c_int = 40; // IPPROTO_IPV6 defined in src/unix/mod.rs /// Source Demand Routing -pub const IPPROTO_SDRP: ::c_int = 42; +pub const IPPROTO_SDRP: c_int = 42; /// IP6 routing header -pub const IPPROTO_ROUTING: ::c_int = 43; +pub const IPPROTO_ROUTING: c_int = 43; /// IP6 fragmentation header -pub const IPPROTO_FRAGMENT: ::c_int = 44; +pub const IPPROTO_FRAGMENT: c_int = 44; /// InterDomain Routing -pub const IPPROTO_IDRP: ::c_int = 45; +pub const IPPROTO_IDRP: c_int = 45; /// resource reservation -pub const IPPROTO_RSVP: ::c_int = 46; +pub const IPPROTO_RSVP: c_int = 46; /// General Routing Encap. -pub const IPPROTO_GRE: ::c_int = 47; +pub const IPPROTO_GRE: c_int = 47; /// Mobile Host Routing -pub const IPPROTO_MHRP: ::c_int = 48; +pub const IPPROTO_MHRP: c_int = 48; /// BHA -pub const IPPROTO_BHA: ::c_int = 49; +pub const IPPROTO_BHA: c_int = 49; /// IP6 Encap Sec. Payload -pub const IPPROTO_ESP: ::c_int = 50; +pub const IPPROTO_ESP: c_int = 50; /// IP6 Auth Header -pub const IPPROTO_AH: ::c_int = 51; +pub const IPPROTO_AH: c_int = 51; /// Integ. Net Layer Security -pub const IPPROTO_INLSP: ::c_int = 52; +pub const IPPROTO_INLSP: c_int = 52; /// IP with encryption -pub const IPPROTO_SWIPE: ::c_int = 53; +pub const IPPROTO_SWIPE: c_int = 53; /// Next Hop Resolution -pub const IPPROTO_NHRP: ::c_int = 54; +pub const IPPROTO_NHRP: c_int = 54; /// IP Mobility -pub const IPPROTO_MOBILE: ::c_int = 55; +pub const IPPROTO_MOBILE: c_int = 55; /// Transport Layer Security -pub const IPPROTO_TLSP: ::c_int = 56; +pub const IPPROTO_TLSP: c_int = 56; /// SKIP -pub const IPPROTO_SKIP: ::c_int = 57; +pub const IPPROTO_SKIP: c_int = 57; // IPPROTO_ICMPV6 defined in src/unix/mod.rs /// IP6 no next header -pub const IPPROTO_NONE: ::c_int = 59; +pub const IPPROTO_NONE: c_int = 59; /// IP6 destination option -pub const IPPROTO_DSTOPTS: ::c_int = 60; +pub const IPPROTO_DSTOPTS: c_int = 60; /// any host internal protocol -pub const IPPROTO_AHIP: ::c_int = 61; +pub const IPPROTO_AHIP: c_int = 61; /// CFTP -pub const IPPROTO_CFTP: ::c_int = 62; +pub const IPPROTO_CFTP: c_int = 62; /// "hello" routing protocol -pub const IPPROTO_HELLO: ::c_int = 63; +pub const IPPROTO_HELLO: c_int = 63; /// SATNET/Backroom EXPAK -pub const IPPROTO_SATEXPAK: ::c_int = 64; +pub const IPPROTO_SATEXPAK: c_int = 64; /// Kryptolan -pub const IPPROTO_KRYPTOLAN: ::c_int = 65; +pub const IPPROTO_KRYPTOLAN: c_int = 65; /// Remote Virtual Disk -pub const IPPROTO_RVD: ::c_int = 66; +pub const IPPROTO_RVD: c_int = 66; /// Pluribus Packet Core -pub const IPPROTO_IPPC: ::c_int = 67; +pub const IPPROTO_IPPC: c_int = 67; /// Any distributed FS -pub const IPPROTO_ADFS: ::c_int = 68; +pub const IPPROTO_ADFS: c_int = 68; /// Satnet Monitoring -pub const IPPROTO_SATMON: ::c_int = 69; +pub const IPPROTO_SATMON: c_int = 69; /// VISA Protocol -pub const IPPROTO_VISA: ::c_int = 70; +pub const IPPROTO_VISA: c_int = 70; /// Packet Core Utility -pub const IPPROTO_IPCV: ::c_int = 71; +pub const IPPROTO_IPCV: c_int = 71; /// Comp. Prot. Net. Executive -pub const IPPROTO_CPNX: ::c_int = 72; +pub const IPPROTO_CPNX: c_int = 72; /// Comp. Prot. HeartBeat -pub const IPPROTO_CPHB: ::c_int = 73; +pub const IPPROTO_CPHB: c_int = 73; /// Wang Span Network -pub const IPPROTO_WSN: ::c_int = 74; +pub const IPPROTO_WSN: c_int = 74; /// Packet Video Protocol -pub const IPPROTO_PVP: ::c_int = 75; +pub const IPPROTO_PVP: c_int = 75; /// BackRoom SATNET Monitoring -pub const IPPROTO_BRSATMON: ::c_int = 76; +pub const IPPROTO_BRSATMON: c_int = 76; /// Sun net disk proto (temp.) -pub const IPPROTO_ND: ::c_int = 77; +pub const IPPROTO_ND: c_int = 77; /// WIDEBAND Monitoring -pub const IPPROTO_WBMON: ::c_int = 78; +pub const IPPROTO_WBMON: c_int = 78; /// WIDEBAND EXPAK -pub const IPPROTO_WBEXPAK: ::c_int = 79; +pub const IPPROTO_WBEXPAK: c_int = 79; /// ISO cnlp -pub const IPPROTO_EON: ::c_int = 80; +pub const IPPROTO_EON: c_int = 80; /// VMTP -pub const IPPROTO_VMTP: ::c_int = 81; +pub const IPPROTO_VMTP: c_int = 81; /// Secure VMTP -pub const IPPROTO_SVMTP: ::c_int = 82; +pub const IPPROTO_SVMTP: c_int = 82; /// Banyon VINES -pub const IPPROTO_VINES: ::c_int = 83; +pub const IPPROTO_VINES: c_int = 83; /// TTP -pub const IPPROTO_TTP: ::c_int = 84; +pub const IPPROTO_TTP: c_int = 84; /// NSFNET-IGP -pub const IPPROTO_IGP: ::c_int = 85; +pub const IPPROTO_IGP: c_int = 85; /// dissimilar gateway prot. -pub const IPPROTO_DGP: ::c_int = 86; +pub const IPPROTO_DGP: c_int = 86; /// TCF -pub const IPPROTO_TCF: ::c_int = 87; +pub const IPPROTO_TCF: c_int = 87; /// Cisco/GXS IGRP -pub const IPPROTO_IGRP: ::c_int = 88; +pub const IPPROTO_IGRP: c_int = 88; /// OSPFIGP -pub const IPPROTO_OSPFIGP: ::c_int = 89; +pub const IPPROTO_OSPFIGP: c_int = 89; /// Strite RPC protocol -pub const IPPROTO_SRPC: ::c_int = 90; +pub const IPPROTO_SRPC: c_int = 90; /// Locus Address Resoloution -pub const IPPROTO_LARP: ::c_int = 91; +pub const IPPROTO_LARP: c_int = 91; /// Multicast Transport -pub const IPPROTO_MTP: ::c_int = 92; +pub const IPPROTO_MTP: c_int = 92; /// AX.25 Frames -pub const IPPROTO_AX25: ::c_int = 93; +pub const IPPROTO_AX25: c_int = 93; /// IP encapsulated in IP -pub const IPPROTO_IPEIP: ::c_int = 94; +pub const IPPROTO_IPEIP: c_int = 94; /// Mobile Int.ing control -pub const IPPROTO_MICP: ::c_int = 95; +pub const IPPROTO_MICP: c_int = 95; /// Semaphore Comm. security -pub const IPPROTO_SCCSP: ::c_int = 96; +pub const IPPROTO_SCCSP: c_int = 96; /// Ethernet IP encapsulation -pub const IPPROTO_ETHERIP: ::c_int = 97; +pub const IPPROTO_ETHERIP: c_int = 97; /// encapsulation header -pub const IPPROTO_ENCAP: ::c_int = 98; +pub const IPPROTO_ENCAP: c_int = 98; /// any private encr. scheme -pub const IPPROTO_APES: ::c_int = 99; +pub const IPPROTO_APES: c_int = 99; /// GMTP -pub const IPPROTO_GMTP: ::c_int = 100; +pub const IPPROTO_GMTP: c_int = 100; /// payload compression (IPComp) -pub const IPPROTO_IPCOMP: ::c_int = 108; +pub const IPPROTO_IPCOMP: c_int = 108; /* 101-254: Partly Unassigned */ /// Protocol Independent Mcast -pub const IPPROTO_PIM: ::c_int = 103; +pub const IPPROTO_PIM: c_int = 103; /// CARP -pub const IPPROTO_CARP: ::c_int = 112; +pub const IPPROTO_CARP: c_int = 112; /// PGM -pub const IPPROTO_PGM: ::c_int = 113; +pub const IPPROTO_PGM: c_int = 113; /// PFSYNC -pub const IPPROTO_PFSYNC: ::c_int = 240; +pub const IPPROTO_PFSYNC: c_int = 240; /* 255: Reserved */ /* BSD Private, local use, namespace incursion, no longer used */ /// divert pseudo-protocol -pub const IPPROTO_DIVERT: ::c_int = 254; -pub const IPPROTO_MAX: ::c_int = 256; +pub const IPPROTO_DIVERT: c_int = 254; +pub const IPPROTO_MAX: c_int = 256; /// last return value of *_input(), meaning "all job for this pkt is done". -pub const IPPROTO_DONE: ::c_int = 257; +pub const IPPROTO_DONE: c_int = 257; /// Used by RSS: the layer3 protocol is unknown -pub const IPPROTO_UNKNOWN: ::c_int = 258; +pub const IPPROTO_UNKNOWN: c_int = 258; // sys/netinet/tcp.h -pub const TCP_SIGNATURE_ENABLE: ::c_int = 16; -pub const TCP_KEEPINIT: ::c_int = 32; -pub const TCP_FASTKEEP: ::c_int = 128; +pub const TCP_SIGNATURE_ENABLE: c_int = 16; +pub const TCP_KEEPINIT: c_int = 32; +pub const TCP_FASTKEEP: c_int = 128; -pub const AF_BLUETOOTH: ::c_int = 33; -pub const AF_MPLS: ::c_int = 34; -pub const AF_IEEE80211: ::c_int = 35; +pub const AF_BLUETOOTH: c_int = 33; +pub const AF_MPLS: c_int = 34; +pub const AF_IEEE80211: c_int = 35; -pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; +pub const PF_BLUETOOTH: c_int = AF_BLUETOOTH; -pub const NET_RT_DUMP: ::c_int = 1; -pub const NET_RT_FLAGS: ::c_int = 2; -pub const NET_RT_IFLIST: ::c_int = 3; -pub const NET_RT_MAXID: ::c_int = 4; +pub const NET_RT_DUMP: c_int = 1; +pub const NET_RT_FLAGS: c_int = 2; +pub const NET_RT_IFLIST: c_int = 3; +pub const NET_RT_MAXID: c_int = 4; -pub const SOMAXOPT_SIZE: ::c_int = 65536; +pub const SOMAXOPT_SIZE: c_int = 65536; -pub const MSG_UNUSED09: ::c_int = 0x00000200; -pub const MSG_NOSIGNAL: ::c_int = 0x00000400; -pub const MSG_SYNC: ::c_int = 0x00000800; -pub const MSG_CMSG_CLOEXEC: ::c_int = 0x00001000; -pub const MSG_FBLOCKING: ::c_int = 0x00010000; -pub const MSG_FNONBLOCKING: ::c_int = 0x00020000; -pub const MSG_FMASK: ::c_int = 0xFFFF0000; +pub const MSG_UNUSED09: c_int = 0x00000200; +pub const MSG_NOSIGNAL: c_int = 0x00000400; +pub const MSG_SYNC: c_int = 0x00000800; +pub const MSG_CMSG_CLOEXEC: c_int = 0x00001000; +pub const MSG_FBLOCKING: c_int = 0x00010000; +pub const MSG_FNONBLOCKING: c_int = 0x00020000; +pub const MSG_FMASK: c_int = 0xFFFF0000; // sys/mount.h -pub const MNT_NODEV: ::c_int = 0x00000010; -pub const MNT_AUTOMOUNTED: ::c_int = 0x00000020; -pub const MNT_TRIM: ::c_int = 0x01000000; -pub const MNT_LOCAL: ::c_int = 0x00001000; -pub const MNT_QUOTA: ::c_int = 0x00002000; -pub const MNT_ROOTFS: ::c_int = 0x00004000; -pub const MNT_USER: ::c_int = 0x00008000; -pub const MNT_IGNORE: ::c_int = 0x00800000; +pub const MNT_NODEV: c_int = 0x00000010; +pub const MNT_AUTOMOUNTED: c_int = 0x00000020; +pub const MNT_TRIM: c_int = 0x01000000; +pub const MNT_LOCAL: c_int = 0x00001000; +pub const MNT_QUOTA: c_int = 0x00002000; +pub const MNT_ROOTFS: c_int = 0x00004000; +pub const MNT_USER: c_int = 0x00008000; +pub const MNT_IGNORE: c_int = 0x00800000; // utmpx entry types -pub const EMPTY: ::c_short = 0; -pub const RUN_LVL: ::c_short = 1; -pub const BOOT_TIME: ::c_short = 2; -pub const OLD_TIME: ::c_short = 3; -pub const NEW_TIME: ::c_short = 4; -pub const INIT_PROCESS: ::c_short = 5; -pub const LOGIN_PROCESS: ::c_short = 6; -pub const USER_PROCESS: ::c_short = 7; -pub const DEAD_PROCESS: ::c_short = 8; -pub const ACCOUNTING: ::c_short = 9; -pub const SIGNATURE: ::c_short = 10; -pub const DOWNTIME: ::c_short = 11; +pub const EMPTY: c_short = 0; +pub const RUN_LVL: c_short = 1; +pub const BOOT_TIME: c_short = 2; +pub const OLD_TIME: c_short = 3; +pub const NEW_TIME: c_short = 4; +pub const INIT_PROCESS: c_short = 5; +pub const LOGIN_PROCESS: c_short = 6; +pub const USER_PROCESS: c_short = 7; +pub const DEAD_PROCESS: c_short = 8; +pub const ACCOUNTING: c_short = 9; +pub const SIGNATURE: c_short = 10; +pub const DOWNTIME: c_short = 11; // utmpx database types -pub const UTX_DB_UTMPX: ::c_uint = 0; -pub const UTX_DB_WTMPX: ::c_uint = 1; -pub const UTX_DB_LASTLOG: ::c_uint = 2; +pub const UTX_DB_UTMPX: c_uint = 0; +pub const UTX_DB_WTMPX: c_uint = 1; +pub const UTX_DB_LASTLOG: c_uint = 2; pub const _UTX_LINESIZE: usize = 32; pub const _UTX_USERSIZE: usize = 32; pub const _UTX_IDSIZE: usize = 4; pub const _UTX_HOSTSIZE: usize = 256; -pub const LC_COLLATE_MASK: ::c_int = 1 << 0; -pub const LC_CTYPE_MASK: ::c_int = 1 << 1; -pub const LC_MONETARY_MASK: ::c_int = 1 << 2; -pub const LC_NUMERIC_MASK: ::c_int = 1 << 3; -pub const LC_TIME_MASK: ::c_int = 1 << 4; -pub const LC_MESSAGES_MASK: ::c_int = 1 << 5; -pub const LC_ALL_MASK: ::c_int = LC_COLLATE_MASK +pub const LC_COLLATE_MASK: c_int = 1 << 0; +pub const LC_CTYPE_MASK: c_int = 1 << 1; +pub const LC_MONETARY_MASK: c_int = 1 << 2; +pub const LC_NUMERIC_MASK: c_int = 1 << 3; +pub const LC_TIME_MASK: c_int = 1 << 4; +pub const LC_MESSAGES_MASK: c_int = 1 << 5; +pub const LC_ALL_MASK: c_int = LC_COLLATE_MASK | LC_CTYPE_MASK | LC_MESSAGES_MASK | LC_MONETARY_MASK | LC_NUMERIC_MASK | LC_TIME_MASK; -pub const TIOCSIG: ::c_ulong = 0x2000745f; -pub const BTUARTDISC: ::c_int = 0x7; -pub const TIOCDCDTIMESTAMP: ::c_ulong = 0x40107458; -pub const TIOCISPTMASTER: ::c_ulong = 0x20007455; -pub const TIOCMODG: ::c_ulong = 0x40047403; -pub const TIOCMODS: ::c_ulong = 0x80047404; -pub const TIOCREMOTE: ::c_ulong = 0x80047469; -pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; +pub const TIOCSIG: c_ulong = 0x2000745f; +pub const BTUARTDISC: c_int = 0x7; +pub const TIOCDCDTIMESTAMP: c_ulong = 0x40107458; +pub const TIOCISPTMASTER: c_ulong = 0x20007455; +pub const TIOCMODG: c_ulong = 0x40047403; +pub const TIOCMODS: c_ulong = 0x80047404; +pub const TIOCREMOTE: c_ulong = 0x80047469; +pub const TIOCTIMESTAMP: c_ulong = 0x40107459; // Constants used by "at" family of system calls. -pub const AT_FDCWD: ::c_int = 0xFFFAFDCD; // invalid file descriptor -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 1; -pub const AT_REMOVEDIR: ::c_int = 2; -pub const AT_EACCESS: ::c_int = 4; -pub const AT_SYMLINK_FOLLOW: ::c_int = 8; +pub const AT_FDCWD: c_int = 0xFFFAFDCD; // invalid file descriptor +pub const AT_SYMLINK_NOFOLLOW: c_int = 1; +pub const AT_REMOVEDIR: c_int = 2; +pub const AT_EACCESS: c_int = 4; +pub const AT_SYMLINK_FOLLOW: c_int = 8; pub const VCHECKPT: usize = 19; -pub const _PC_2_SYMLINKS: ::c_int = 22; -pub const _PC_TIMESTAMP_RESOLUTION: ::c_int = 23; +pub const _PC_2_SYMLINKS: c_int = 22; +pub const _PC_TIMESTAMP_RESOLUTION: c_int = 23; -pub const _SC_V7_ILP32_OFF32: ::c_int = 122; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 123; -pub const _SC_V7_LP64_OFF64: ::c_int = 124; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 125; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 126; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 127; +pub const _SC_V7_ILP32_OFF32: c_int = 122; +pub const _SC_V7_ILP32_OFFBIG: c_int = 123; +pub const _SC_V7_LP64_OFF64: c_int = 124; +pub const _SC_V7_LPBIG_OFFBIG: c_int = 125; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 126; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 127; -pub const WCONTINUED: ::c_int = 0x4; -pub const WSTOPPED: ::c_int = 0x2; -pub const WNOWAIT: ::c_int = 0x8; -pub const WEXITED: ::c_int = 0x10; -pub const WTRAPPED: ::c_int = 0x20; +pub const WCONTINUED: c_int = 0x4; +pub const WSTOPPED: c_int = 0x2; +pub const WNOWAIT: c_int = 0x8; +pub const WEXITED: c_int = 0x10; +pub const WTRAPPED: c_int = 0x20; // Similar to FreeBSD, only the standardized ones are exposed. // There are more. @@ -1495,75 +1499,75 @@ pub const P_PGID: idtype_t = 2; pub const P_ALL: idtype_t = 7; // Values for struct rtprio (type_ field) -pub const RTP_PRIO_REALTIME: ::c_ushort = 0; -pub const RTP_PRIO_NORMAL: ::c_ushort = 1; -pub const RTP_PRIO_IDLE: ::c_ushort = 2; -pub const RTP_PRIO_THREAD: ::c_ushort = 3; +pub const RTP_PRIO_REALTIME: c_ushort = 0; +pub const RTP_PRIO_NORMAL: c_ushort = 1; +pub const RTP_PRIO_IDLE: c_ushort = 2; +pub const RTP_PRIO_THREAD: c_ushort = 3; // Flags for chflags(2) -pub const UF_NOHISTORY: ::c_ulong = 0x00000040; -pub const UF_CACHE: ::c_ulong = 0x00000080; -pub const UF_XLINK: ::c_ulong = 0x00000100; -pub const SF_NOHISTORY: ::c_ulong = 0x00400000; -pub const SF_CACHE: ::c_ulong = 0x00800000; -pub const SF_XLINK: ::c_ulong = 0x01000000; +pub const UF_NOHISTORY: c_ulong = 0x00000040; +pub const UF_CACHE: c_ulong = 0x00000080; +pub const UF_XLINK: c_ulong = 0x00000100; +pub const SF_NOHISTORY: c_ulong = 0x00400000; +pub const SF_CACHE: c_ulong = 0x00800000; +pub const SF_XLINK: c_ulong = 0x01000000; // timespec constants pub const UTIME_OMIT: c_long = -2; pub const UTIME_NOW: c_long = -1; -pub const MINCORE_SUPER: ::c_int = 0x20; +pub const MINCORE_SUPER: c_int = 0x20; // kinfo_proc constants 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; +pub const RB_PAUSE: c_int = 0x40000; +pub const RB_VIDEO: c_int = 0x20000000; // net/route.h -pub const RTF_CLONING: ::c_int = 0x100; -pub const RTF_PRCLONING: ::c_int = 0x10000; -pub const RTF_WASCLONED: ::c_int = 0x20000; -pub const RTF_MPLSOPS: ::c_int = 0x1000000; +pub const RTF_CLONING: c_int = 0x100; +pub const RTF_PRCLONING: c_int = 0x10000; +pub const RTF_WASCLONED: c_int = 0x20000; +pub const RTF_MPLSOPS: c_int = 0x1000000; -pub const RTM_VERSION: ::c_int = 7; +pub const RTM_VERSION: c_int = 7; -pub const RTAX_MPLS1: ::c_int = 8; -pub const RTAX_MPLS2: ::c_int = 9; -pub const RTAX_MPLS3: ::c_int = 10; -pub const RTAX_MAX: ::c_int = 11; +pub const RTAX_MPLS1: c_int = 8; +pub const RTAX_MPLS2: c_int = 9; +pub const RTAX_MPLS3: c_int = 10; +pub const RTAX_MAX: c_int = 11; const_fn! { {const} fn _CMSG_ALIGN(n: usize) -> usize { - (n + (::mem::size_of::<::c_long>() - 1)) & !(::mem::size_of::<::c_long>() - 1) + (n + (crate::mem::size_of::() - 1)) & !(crate::mem::size_of::() - 1) } } f! { - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar).offset(_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { + (cmsg as *mut c_uchar).offset(_CMSG_ALIGN(crate::mem::size_of::()) as isize) } - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - (_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) + length as usize) as ::c_uint + pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + (_CMSG_ALIGN(crate::mem::size_of::()) + length as usize) as c_uint } - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { + pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { let next = cmsg as usize + _CMSG_ALIGN((*cmsg).cmsg_len as usize) - + _CMSG_ALIGN(::mem::size_of::<::cmsghdr>()); + + _CMSG_ALIGN(crate::mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next <= max { - (cmsg as usize + _CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut ::cmsghdr + (cmsg as usize + _CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr } else { - 0 as *mut ::cmsghdr + 0 as *mut cmsghdr } } - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) + _CMSG_ALIGN(length as usize)) as ::c_uint + pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + (_CMSG_ALIGN(crate::mem::size_of::()) + _CMSG_ALIGN(length as usize)) as c_uint } pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { @@ -1589,23 +1593,23 @@ f! { 0 != cpuset.ary[idx] & (1 << offset) } - pub fn major(dev: ::dev_t) -> ::c_int { - ((dev >> 8) & 0xff) as ::c_int + pub fn major(dev: crate::dev_t) -> c_int { + ((dev >> 8) & 0xff) as c_int } - pub fn minor(dev: ::dev_t) -> ::c_int { - (dev & 0xffff00ff) as ::c_int + pub fn minor(dev: crate::dev_t) -> c_int { + (dev & 0xffff00ff) as c_int } } safe_f! { - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + pub {const} fn WIFSIGNALED(status: c_int) -> bool { (status & 0o177) != 0o177 && (status & 0o177) != 0 } - pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; + pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + let major = major as crate::dev_t; + let minor = minor as crate::dev_t; let mut dev = 0; dev |= major << 8; dev |= minor; @@ -1614,118 +1618,127 @@ safe_f! { } extern "C" { - pub fn __errno_location() -> *mut ::c_int; + pub fn __errno_location() -> *mut c_int; pub fn setgrent(); - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; - pub fn setutxdb(_type: ::c_uint, file: *mut ::c_char) -> ::c_int; + pub fn setutxdb(_type: c_uint, file: *mut c_char) -> c_int; - pub fn aio_waitcomplete(iocbp: *mut *mut aiocb, timeout: *mut ::timespec) -> ::c_int; + pub fn aio_waitcomplete(iocbp: *mut *mut aiocb, timeout: *mut crate::timespec) -> c_int; pub fn devname_r( - dev: ::dev_t, - mode: ::mode_t, - buf: *mut ::c_char, - len: ::size_t, - ) -> *mut ::c_char; + dev: crate::dev_t, + mode: crate::mode_t, + buf: *mut c_char, + len: size_t, + ) -> *mut c_char; pub fn waitid( idtype: idtype_t, - id: ::id_t, - infop: *mut ::siginfo_t, - options: ::c_int, - ) -> ::c_int; + id: crate::id_t, + infop: *mut crate::siginfo_t, + options: c_int, + ) -> c_int; - pub fn freelocale(loc: ::locale_t); + pub fn freelocale(loc: crate::locale_t); pub fn lwp_rtprio( - function: ::c_int, - pid: ::pid_t, + function: c_int, + pid: crate::pid_t, lwpid: lwpid_t, rtp: *mut super::rtprio, - ) -> ::c_int; + ) -> c_int; - pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; - pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - pub fn uname(buf: *mut ::utsname) -> ::c_int; + pub fn statfs(path: *const c_char, buf: *mut statfs) -> c_int; + pub fn fstatfs(fd: c_int, buf: *mut statfs) -> c_int; + pub fn uname(buf: *mut crate::utsname) -> c_int; pub fn memmem( - haystack: *const ::c_void, - haystacklen: ::size_t, - needle: *const ::c_void, - needlelen: ::size_t, - ) -> *mut ::c_void; - pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> ::c_int; - - pub fn sched_getaffinity(pid: ::pid_t, cpusetsize: ::size_t, mask: *mut cpu_set_t) -> ::c_int; - pub fn sched_setaffinity(pid: ::pid_t, cpusetsize: ::size_t, mask: *const cpu_set_t) - -> ::c_int; - pub fn sched_getcpu() -> ::c_int; - pub fn setproctitle(fmt: *const ::c_char, ...); - - pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - 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 procctl(idtype: ::idtype_t, id: ::id_t, cmd: ::c_int, data: *mut ::c_void) -> ::c_int; - - pub fn updwtmpx(file: *const ::c_char, ut: *const utmpx) -> ::c_int; - pub fn getlastlogx(fname: *const ::c_char, uid: ::uid_t, ll: *mut lastlogx) -> *mut lastlogx; - pub fn updlastlogx(fname: *const ::c_char, uid: ::uid_t, ll: *mut lastlogx) -> ::c_int; - pub fn getutxuser(name: *const ::c_char) -> utmpx; - pub fn utmpxname(file: *const ::c_char) -> ::c_int; - - pub fn sys_checkpoint(tpe: ::c_int, fd: ::c_int, pid: ::pid_t, retval: ::c_int) -> ::c_int; - - pub fn umtx_sleep(ptr: *const ::c_int, value: ::c_int, timeout: ::c_int) -> ::c_int; - pub fn umtx_wakeup(ptr: *const ::c_int, count: ::c_int) -> ::c_int; - - 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; + haystack: *const c_void, + haystacklen: size_t, + needle: *const c_void, + needlelen: size_t, + ) -> *mut c_void; + pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: c_int) -> c_int; + pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> c_int; + pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> c_int; + pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> c_int; + pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> c_int; + + pub fn sched_getaffinity(pid: crate::pid_t, cpusetsize: size_t, mask: *mut cpu_set_t) -> c_int; + pub fn sched_setaffinity( + pid: crate::pid_t, + cpusetsize: size_t, + mask: *const cpu_set_t, + ) -> c_int; + pub fn sched_getcpu() -> c_int; + pub fn setproctitle(fmt: *const c_char, ...); + + pub fn shmget(key: crate::key_t, size: size_t, shmflg: c_int) -> c_int; + 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 crate::shmid_ds) -> c_int; + pub fn procctl( + idtype: crate::idtype_t, + id: crate::id_t, + cmd: c_int, + data: *mut c_void, + ) -> c_int; + + pub fn updwtmpx(file: *const c_char, ut: *const utmpx) -> c_int; + pub fn getlastlogx(fname: *const c_char, uid: crate::uid_t, ll: *mut lastlogx) + -> *mut lastlogx; + pub fn updlastlogx(fname: *const c_char, uid: crate::uid_t, ll: *mut lastlogx) -> c_int; + pub fn getutxuser(name: *const c_char) -> utmpx; + pub fn utmpxname(file: *const c_char) -> c_int; + + pub fn sys_checkpoint(tpe: c_int, fd: c_int, pid: crate::pid_t, retval: c_int) -> c_int; + + pub fn umtx_sleep(ptr: *const c_int, value: c_int, timeout: c_int) -> c_int; + pub fn umtx_wakeup(ptr: *const c_int, count: c_int) -> c_int; + + 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 crate::statfs, flags: c_int) -> c_int; pub fn getmntvinfo( - mntbufp: *mut *mut ::statfs, - mntvbufp: *mut *mut ::statvfs, - flags: ::c_int, - ) -> ::c_int; + mntbufp: *mut *mut crate::statfs, + mntvbufp: *mut *mut crate::statvfs, + flags: c_int, + ) -> c_int; } #[link(name = "rt")] extern "C" { - pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; - pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; + pub fn aio_cancel(fd: c_int, aiocbp: *mut aiocb) -> c_int; + pub fn aio_error(aiocbp: *const aiocb) -> c_int; + pub fn aio_fsync(op: c_int, aiocbp: *mut aiocb) -> c_int; + pub fn aio_read(aiocbp: *mut aiocb) -> c_int; + pub fn aio_return(aiocbp: *mut aiocb) -> ssize_t; pub fn aio_suspend( aiocb_list: *const *const aiocb, - nitems: ::c_int, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; + nitems: c_int, + timeout: *const crate::timespec, + ) -> c_int; + pub fn aio_write(aiocbp: *mut aiocb) -> c_int; pub fn lio_listio( - mode: ::c_int, + mode: c_int, aiocb_list: *const *mut aiocb, - nitems: ::c_int, + nitems: c_int, sevp: *mut sigevent, - ) -> ::c_int; + ) -> c_int; - pub fn reallocf(ptr: *mut ::c_void, size: ::size_t) -> *mut ::c_void; - pub fn freezero(ptr: *mut ::c_void, size: ::size_t); + pub fn reallocf(ptr: *mut c_void, size: size_t) -> *mut c_void; + pub fn freezero(ptr: *mut c_void, size: size_t); } #[link(name = "kvm")] extern "C" { pub fn kvm_vm_map_entry_first( - kvm: *mut ::kvm_t, + kvm: *mut crate::kvm_t, map: vm_map_t, entry: vm_map_entry_t, ) -> vm_map_entry_t; pub fn kvm_vm_map_entry_next( - kvm: *mut ::kvm_t, + kvm: *mut crate::kvm_t, map: vm_map_entry_t, entry: vm_map_entry_t, ) -> vm_map_entry_t; diff --git a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs index abda2c3dcd598..2e9dcdf15151e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs @@ -1,3 +1,5 @@ +use crate::{c_int, c_longlong, size_t}; + pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; @@ -9,32 +11,32 @@ pub type register_t = i64; s_no_extra_traits! { pub struct gpregs { - pub gp_x: [::register_t; 30], - pub gp_lr: ::register_t, - pub gp_sp: ::register_t, - pub gp_elr: ::register_t, + pub gp_x: [crate::register_t; 30], + pub gp_lr: crate::register_t, + pub gp_sp: crate::register_t, + pub gp_elr: crate::register_t, pub gp_spsr: u32, - pub gp_pad: ::c_int, + pub gp_pad: c_int, } pub struct fpregs { pub fp_q: u128, pub fp_sr: u32, pub fp_cr: u32, - pub fp_flags: ::c_int, - pub fp_pad: ::c_int, + pub fp_flags: c_int, + pub fp_pad: c_int, } pub struct mcontext_t { pub mc_gpregs: gpregs, pub mc_fpregs: fpregs, - pub mc_flags: ::c_int, - pub mc_pad: ::c_int, + pub mc_flags: c_int, + pub mc_pad: c_int, pub mc_spare: [u64; 8], } } -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; cfg_if! { if #[cfg(feature = "extra_traits")] { @@ -49,8 +51,8 @@ cfg_if! { } } impl Eq for gpregs {} - impl ::fmt::Debug for gpregs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for gpregs { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("gpregs") .field("gp_x", &self.gp_x) .field("gp_lr", &self.gp_lr) @@ -61,8 +63,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for gpregs { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for gpregs { + fn hash(&self, state: &mut H) { self.gp_x.hash(state); self.gp_lr.hash(state); self.gp_sp.hash(state); @@ -81,8 +83,8 @@ cfg_if! { } } impl Eq for fpregs {} - impl ::fmt::Debug for fpregs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for fpregs { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("fpregs") .field("fp_q", &self.fp_q) .field("fp_sr", &self.fp_sr) @@ -92,8 +94,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for fpregs { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for fpregs { + fn hash(&self, state: &mut H) { self.fp_q.hash(state); self.fp_sr.hash(state); self.fp_cr.hash(state); @@ -115,8 +117,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("mcontext_t") .field("mc_gpregs", &self.mc_gpregs) .field("mc_fpregs", &self.mc_fpregs) @@ -126,8 +128,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.mc_gpregs.hash(state); self.mc_fpregs.hash(state); self.mc_flags.hash(state); @@ -138,8 +140,8 @@ cfg_if! { } } -pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; -pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; -pub const MAP_32BIT: ::c_int = 0x00080000; -pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4 -pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; +pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; +pub const MAP_32BIT: c_int = 0x00080000; +pub const MINSIGSTKSZ: size_t = 4096; // 1024 * 4 +pub const TIOCTIMESTAMP: c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/unix/bsd/freebsdlike/freebsd/arm.rs index 37068ca35216f..c9eb88be6ebb3 100644 --- a/src/unix/bsd/freebsdlike/freebsd/arm.rs +++ b/src/unix/bsd/freebsdlike/freebsd/arm.rs @@ -1,3 +1,5 @@ +use crate::{c_int, c_uint, c_void, size_t}; + pub type c_char = u8; pub type c_long = i32; pub type c_ulong = u32; @@ -6,15 +8,15 @@ pub type wchar_t = u32; pub type time_t = i64; pub type suseconds_t = i32; pub type register_t = i32; -pub type __greg_t = ::c_uint; -pub type __gregset_t = [::__greg_t; 17]; +pub type __greg_t = c_uint; +pub type __gregset_t = [crate::__greg_t; 17]; s_no_extra_traits! { pub struct mcontext_t { - pub __gregs: ::__gregset_t, + pub __gregs: crate::__gregset_t, pub mc_vfp_size: usize, - pub mc_vfp_ptr: *mut ::c_void, - pub mc_spare: [::c_uint; 33], + pub mc_vfp_ptr: *mut c_void, + pub mc_spare: [c_uint; 33], } } @@ -33,8 +35,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("mcontext_t") .field("__gregs", &self.__gregs) .field("mc_vfp_size", &self.mc_vfp_size) @@ -43,8 +45,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.__gregs.hash(state); self.mc_vfp_size.hash(state); self.mc_vfp_ptr.hash(state); @@ -54,11 +56,11 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; -pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; -pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; +pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; -pub const MAP_32BIT: ::c_int = 0x00080000; -pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4 -pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; +pub const MAP_32BIT: c_int = 0x00080000; +pub const MINSIGSTKSZ: size_t = 4096; // 1024 * 4 +pub const TIOCTIMESTAMP: c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs index 5c1156581fd61..0ea44c348f58c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs @@ -1,33 +1,35 @@ +use crate::{c_long, off_t}; + #[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_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - 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_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: ::blksize_t, - pub st_flags: ::fflags_t, + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_size: off_t, + pub st_blocks: crate::blkcnt_t, + pub st_blksize: crate::blksize_t, + pub st_flags: crate::fflags_t, pub st_gen: u32, pub st_lspare: i32, - pub st_birthtime: ::time_t, - pub st_birthtime_nsec: ::c_long, + pub st_birthtime: crate::time_t, + pub st_birthtime_nsec: c_long, __unused: [u8; 8], } -impl ::Copy for ::stat {} -impl ::Clone for ::stat { - fn clone(&self) -> ::stat { +impl Copy for crate::stat {} +impl Clone for crate::stat { + fn clone(&self) -> crate::stat { *self } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs index f32128f775574..500676a665d79 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs @@ -1,32 +1,34 @@ +use crate::{c_long, off_t}; + #[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_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - 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_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: ::blksize_t, - pub st_flags: ::fflags_t, + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_size: off_t, + pub st_blocks: crate::blkcnt_t, + pub st_blksize: crate::blksize_t, + pub st_flags: crate::fflags_t, pub st_gen: u32, pub st_lspare: i32, - pub st_birthtime: ::time_t, - pub st_birthtime_nsec: ::c_long, + pub st_birthtime: crate::time_t, + pub st_birthtime_nsec: c_long, } -impl ::Copy for ::stat {} -impl ::Clone for ::stat { - fn clone(&self) -> ::stat { +impl Copy for crate::stat {} +impl Clone for crate::stat { + fn clone(&self) -> crate::stat { *self } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs index f62b77ba8e3c2..bd0f06162020d 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs @@ -1,3 +1,7 @@ +use crate::{ + c_char, c_int, c_long, c_short, c_uchar, c_uint, c_ushort, c_void, intptr_t, size_t, ssize_t, +}; + // APIs that were changed after FreeBSD 11 // The type of `nlink_t` changed from `u16` to `u64` in FreeBSD 12: @@ -9,216 +13,216 @@ pub type ino_t = u32; s! { pub struct kevent { - pub ident: ::uintptr_t, - pub filter: ::c_short, - pub flags: ::c_ushort, - pub fflags: ::c_uint, - pub data: ::intptr_t, - pub udata: *mut ::c_void, + pub ident: crate::uintptr_t, + pub filter: c_short, + pub flags: c_ushort, + pub fflags: c_uint, + pub data: intptr_t, + pub udata: *mut c_void, } 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_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_lpid: crate::pid_t, + pub shm_cpid: crate::pid_t, // Type of shm_nattc changed from `int` to `shmatt_t` (aka `unsigned // int`) in FreeBSD 12: - pub shm_nattch: ::c_int, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, + pub shm_nattch: c_int, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, } pub struct kinfo_proc { /// Size of this structure. - pub ki_structsize: ::c_int, + pub ki_structsize: c_int, /// Reserved: layout identifier. - pub ki_layout: ::c_int, + pub ki_layout: c_int, /// Address of command arguments. - pub ki_args: *mut ::pargs, + pub ki_args: *mut crate::pargs, // This is normally "struct proc". /// Address of proc. - pub ki_paddr: *mut ::c_void, + pub ki_paddr: *mut c_void, // This is normally "struct user". /// Kernel virtual address of u-area. - pub ki_addr: *mut ::c_void, + pub ki_addr: *mut c_void, // This is normally "struct vnode". /// Pointer to trace file. - pub ki_tracep: *mut ::c_void, + pub ki_tracep: *mut c_void, // This is normally "struct vnode". /// Pointer to executable file. - pub ki_textvp: *mut ::c_void, + pub ki_textvp: *mut c_void, // This is normally "struct filedesc". /// Pointer to open file info. - pub ki_fd: *mut ::c_void, + pub ki_fd: *mut c_void, // This is normally "struct vmspace". /// Pointer to kernel vmspace struct. - pub ki_vmspace: *mut ::c_void, + pub ki_vmspace: *mut c_void, /// Sleep address. - pub ki_wchan: *mut ::c_void, + pub ki_wchan: *mut c_void, /// Process identifier. - pub ki_pid: ::pid_t, + pub ki_pid: crate::pid_t, /// Parent process ID. - pub ki_ppid: ::pid_t, + pub ki_ppid: crate::pid_t, /// Process group ID. - pub ki_pgid: ::pid_t, + pub ki_pgid: crate::pid_t, /// tty process group ID. - pub ki_tpgid: ::pid_t, + pub ki_tpgid: crate::pid_t, /// Process session ID. - pub ki_sid: ::pid_t, + pub ki_sid: crate::pid_t, /// Terminal session ID. - pub ki_tsid: ::pid_t, + pub ki_tsid: crate::pid_t, /// Job control counter. - pub ki_jobc: ::c_short, + pub ki_jobc: c_short, /// Unused (just here for alignment). - pub ki_spare_short1: ::c_short, + pub ki_spare_short1: c_short, /// Controlling tty dev. - pub ki_tdev: ::dev_t, + pub ki_tdev: crate::dev_t, /// Signals arrived but not delivered. - pub ki_siglist: ::sigset_t, + pub ki_siglist: crate::sigset_t, /// Current signal mask. - pub ki_sigmask: ::sigset_t, + pub ki_sigmask: crate::sigset_t, /// Signals being ignored. - pub ki_sigignore: ::sigset_t, + pub ki_sigignore: crate::sigset_t, /// Signals being caught by user. - pub ki_sigcatch: ::sigset_t, + pub ki_sigcatch: crate::sigset_t, /// Effective user ID. - pub ki_uid: ::uid_t, + pub ki_uid: crate::uid_t, /// Real user ID. - pub ki_ruid: ::uid_t, + pub ki_ruid: crate::uid_t, /// Saved effective user ID. - pub ki_svuid: ::uid_t, + pub ki_svuid: crate::uid_t, /// Real group ID. - pub ki_rgid: ::gid_t, + pub ki_rgid: crate::gid_t, /// Saved effective group ID. - pub ki_svgid: ::gid_t, + pub ki_svgid: crate::gid_t, /// Number of groups. - pub ki_ngroups: ::c_short, + pub ki_ngroups: c_short, /// Unused (just here for alignment). - pub ki_spare_short2: ::c_short, + pub ki_spare_short2: c_short, /// Groups. - pub ki_groups: [::gid_t; ::KI_NGROUPS], + pub ki_groups: [crate::gid_t; crate::KI_NGROUPS], /// Virtual size. - pub ki_size: ::vm_size_t, + pub ki_size: crate::vm_size_t, /// Current resident set size in pages. - pub ki_rssize: ::segsz_t, + pub ki_rssize: crate::segsz_t, /// Resident set size before last swap. - pub ki_swrss: ::segsz_t, + pub ki_swrss: crate::segsz_t, /// Text size (pages) XXX. - pub ki_tsize: ::segsz_t, + pub ki_tsize: crate::segsz_t, /// Data size (pages) XXX. - pub ki_dsize: ::segsz_t, + pub ki_dsize: crate::segsz_t, /// Stack size (pages). - pub ki_ssize: ::segsz_t, + pub ki_ssize: crate::segsz_t, /// Exit status for wait & stop signal. - pub ki_xstat: ::u_short, + pub ki_xstat: crate::u_short, /// Accounting flags. - pub ki_acflag: ::u_short, + pub ki_acflag: crate::u_short, /// %cpu for process during `ki_swtime`. - pub ki_pctcpu: ::fixpt_t, + pub ki_pctcpu: crate::fixpt_t, /// Time averaged value of `ki_cpticks`. - pub ki_estcpu: ::u_int, + pub ki_estcpu: crate::u_int, /// Time since last blocked. - pub ki_slptime: ::u_int, + pub ki_slptime: crate::u_int, /// Time swapped in or out. - pub ki_swtime: ::u_int, + pub ki_swtime: crate::u_int, /// Number of copy-on-write faults. - pub ki_cow: ::u_int, + pub ki_cow: crate::u_int, /// Real time in microsec. pub ki_runtime: u64, /// Starting time. - pub ki_start: ::timeval, + pub ki_start: crate::timeval, /// Time used by process children. - pub ki_childtime: ::timeval, + pub ki_childtime: crate::timeval, /// P_* flags. - pub ki_flag: ::c_long, + pub ki_flag: c_long, /// KI_* flags (below). - pub ki_kiflag: ::c_long, + pub ki_kiflag: c_long, /// Kernel trace points. - pub ki_traceflag: ::c_int, + pub ki_traceflag: c_int, /// S* process status. - pub ki_stat: ::c_char, + pub ki_stat: c_char, /// Process "nice" value. pub ki_nice: i8, // signed char /// Process lock (prevent swap) count. - pub ki_lock: ::c_char, + pub ki_lock: c_char, /// Run queue index. - pub ki_rqindex: ::c_char, + pub ki_rqindex: c_char, /// Which cpu we are on. - pub ki_oncpu_old: ::c_uchar, + pub ki_oncpu_old: c_uchar, /// Last cpu we were on. - pub ki_lastcpu_old: ::c_uchar, + pub ki_lastcpu_old: c_uchar, /// Thread name. - pub ki_tdname: [::c_char; ::TDNAMLEN + 1], + pub ki_tdname: [c_char; crate::TDNAMLEN + 1], /// Wchan message. - pub ki_wmesg: [::c_char; ::WMESGLEN + 1], + pub ki_wmesg: [c_char; crate::WMESGLEN + 1], /// Setlogin name. - pub ki_login: [::c_char; ::LOGNAMELEN + 1], + pub ki_login: [c_char; crate::LOGNAMELEN + 1], /// Lock name. - pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1], + pub ki_lockname: [c_char; crate::LOCKNAMELEN + 1], /// Command name. - pub ki_comm: [::c_char; ::COMMLEN + 1], + pub ki_comm: [c_char; crate::COMMLEN + 1], /// Emulation name. - pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1], + pub ki_emul: [c_char; crate::KI_EMULNAMELEN + 1], /// Login class. - pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1], + pub ki_loginclass: [c_char; crate::LOGINCLASSLEN + 1], /// More thread name. - pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], + pub ki_moretdname: [c_char; crate::MAXCOMLEN - crate::TDNAMLEN + 1], /// Spare string space. - pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq + pub ki_sparestrings: [[c_char; 23]; 2], // little hack to allow PartialEq /// Spare room for growth. - pub ki_spareints: [::c_int; ::KI_NSPARE_INT], + pub ki_spareints: [c_int; crate::KI_NSPARE_INT], /// Which cpu we are on. - pub ki_oncpu: ::c_int, + pub ki_oncpu: c_int, /// Last cpu we were on. - pub ki_lastcpu: ::c_int, + pub ki_lastcpu: c_int, /// PID of tracing process. - pub ki_tracer: ::c_int, + pub ki_tracer: c_int, /// P2_* flags. - pub ki_flag2: ::c_int, + pub ki_flag2: c_int, /// Default FIB number. - pub ki_fibnum: ::c_int, + pub ki_fibnum: c_int, /// Credential flags. - pub ki_cr_flags: ::u_int, + pub ki_cr_flags: crate::u_int, /// Process jail ID. - pub ki_jid: ::c_int, + pub ki_jid: c_int, /// Number of threads in total. - pub ki_numthreads: ::c_int, + pub ki_numthreads: c_int, /// Thread ID. - pub ki_tid: ::lwpid_t, + pub ki_tid: crate::lwpid_t, /// Process priority. - pub ki_pri: ::priority, + pub ki_pri: crate::priority, /// Process rusage statistics. - pub ki_rusage: ::rusage, + pub ki_rusage: crate::rusage, /// rusage of children processes. - pub ki_rusage_ch: ::rusage, + pub ki_rusage_ch: crate::rusage, // This is normally "struct pcb". /// Kernel virtual addr of pcb. - pub ki_pcb: *mut ::c_void, + pub ki_pcb: *mut c_void, /// Kernel virtual addr of stack. - pub ki_kstack: *mut ::c_void, + pub ki_kstack: *mut c_void, /// User convenience pointer. - pub ki_udata: *mut ::c_void, + pub ki_udata: *mut c_void, // This is normally "struct thread". - pub ki_tdaddr: *mut ::c_void, - pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR], - pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG], + pub ki_tdaddr: *mut c_void, + pub ki_spareptrs: [*mut c_void; crate::KI_NSPARE_PTR], + pub ki_sparelongs: [c_long; crate::KI_NSPARE_LONG], /// PS_* flags. - pub ki_sflag: ::c_long, + pub ki_sflag: c_long, /// kthread flag. - pub ki_tdflags: ::c_long, + pub ki_tdflags: c_long, } } s_no_extra_traits! { pub struct dirent { - pub d_fileno: ::ino_t, + pub d_fileno: crate::ino_t, pub d_reclen: u16, pub d_type: u8, // Type of `d_namlen` changed from `char` to `u16` in FreeBSD 12: pub d_namlen: u8, - pub d_name: [::c_char; 256], + pub d_name: [c_char; 256], } pub struct statfs { @@ -238,25 +242,25 @@ s_no_extra_traits! { 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_owner: crate::uid_t, + pub f_fsid: crate::fsid_t, + f_charspare: [c_char; 80], + pub f_fstypename: [c_char; 16], // Array length changed from 88 to 1024 in FreeBSD 12: - pub f_mntfromname: [::c_char; 88], + pub f_mntfromname: [c_char; 88], // Array length changed from 88 to 1024 in FreeBSD 12: - pub f_mntonname: [::c_char; 88], + pub f_mntonname: [c_char; 88], } pub struct vnstat { pub vn_fileid: u64, pub vn_size: u64, - pub vn_mntdir: *mut ::c_char, + pub vn_mntdir: *mut c_char, pub vn_dev: u32, pub vn_fsid: u32, - pub vn_type: ::c_int, + pub vn_type: c_int, pub vn_mode: u16, - pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1], + pub vn_devname: [c_char; crate::SPECNAMELEN as usize + 1], } } @@ -295,8 +299,8 @@ cfg_if! { } } impl Eq for statfs {} - impl ::fmt::Debug for statfs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for statfs { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("statfs") .field("f_bsize", &self.f_bsize) .field("f_iosize", &self.f_iosize) @@ -318,8 +322,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for statfs { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for statfs { + fn hash(&self, state: &mut H) { self.f_version.hash(state); self.f_type.hash(state); self.f_flags.hash(state); @@ -356,8 +360,8 @@ cfg_if! { } } impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent") .field("d_fileno", &self.d_fileno) .field("d_reclen", &self.d_reclen) @@ -367,8 +371,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_fileno.hash(state); self.d_reclen.hash(state); self.d_type.hash(state); @@ -379,8 +383,8 @@ cfg_if! { 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; + 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 @@ -393,9 +397,9 @@ cfg_if! { } } 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; + impl crate::fmt::Debug for vnstat { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + let self_vn_devname: &[c_char] = &self.vn_devname; f.debug_struct("vnstat") .field("vn_fileid", &self.vn_fileid) @@ -409,9 +413,9 @@ cfg_if! { .finish() } } - impl ::hash::Hash for vnstat { - fn hash(&self, state: &mut H) { - let self_vn_devname: &[::c_char] = &self.vn_devname; + impl crate::hash::Hash for vnstat { + fn hash(&self, state: &mut H) { + let self_vn_devname: &[c_char] = &self.vn_devname; self.vn_fileid.hash(state); self.vn_size.hash(state); @@ -426,55 +430,55 @@ cfg_if! { } } -pub const ELAST: ::c_int = 96; -pub const RAND_MAX: ::c_int = 0x7fff_fffd; +pub const ELAST: c_int = 96; +pub const RAND_MAX: c_int = 0x7fff_fffd; pub const KI_NSPARE_PTR: usize = 6; -pub const MINCORE_SUPER: ::c_int = 0x20; +pub const MINCORE_SUPER: c_int = 0x20; /// max length of devicename -pub const SPECNAMELEN: ::c_int = 63; +pub const SPECNAMELEN: c_int = 63; 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; + pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + let major = major as crate::dev_t; + let minor = minor as crate::dev_t; (major << 8) | minor } } f! { - pub fn major(dev: ::dev_t) -> ::c_int { - ((dev >> 8) & 0xff) as ::c_int + pub fn major(dev: crate::dev_t) -> c_int { + ((dev >> 8) & 0xff) as c_int } - pub fn minor(dev: ::dev_t) -> ::c_int { - (dev & 0xffff00ff) as ::c_int + pub fn minor(dev: crate::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; + // Return type c_int was removed in FreeBSD 12 + pub fn setgrent() -> c_int; // Type of `addr` argument changed from `const void*` to `void*` // in FreeBSD 12 - pub fn mprotect(addr: *const ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn mprotect(addr: *const c_void, len: size_t, prot: c_int) -> c_int; - // Return type ::c_int was removed in FreeBSD 12 - pub fn freelocale(loc: ::locale_t) -> ::c_int; + // Return type c_int was removed in FreeBSD 12 + pub fn freelocale(loc: crate::locale_t) -> c_int; - // Return type ::c_int changed to ::ssize_t in FreeBSD 12: + // Return type c_int changed to ssize_t in FreeBSD 12: pub fn msgrcv( - msqid: ::c_int, - msgp: *mut ::c_void, - msgsz: ::size_t, - msgtyp: ::c_long, - msgflg: ::c_int, - ) -> ::c_int; + msqid: c_int, + msgp: *mut c_void, + msgsz: size_t, + msgtyp: c_long, + msgflg: 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; + pub fn dirname(path: *const c_char) -> *mut c_char; + pub fn basename(path: *const c_char) -> *mut c_char; } cfg_if! { diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index c5b85f99c1d49..b763d34e5fdf4 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -1,14 +1,19 @@ +use crate::{ + c_char, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void, off_t, size_t, + ssize_t, +}; + // APIs in FreeBSD 12 that have changed since 11. pub type nlink_t = u64; pub type dev_t = u64; pub type ino_t = u64; -pub type shmatt_t = ::c_uint; +pub type shmatt_t = c_uint; s! { pub struct shmid_ds { pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, + pub shm_segsz: size_t, pub shm_lpid: ::pid_t, pub shm_cpid: ::pid_t, pub shm_nattch: ::shmatt_t, @@ -19,51 +24,51 @@ s! { pub struct kevent { pub ident: ::uintptr_t, - pub filter: ::c_short, - pub flags: ::c_ushort, - pub fflags: ::c_uint, + pub filter: c_short, + pub flags: c_ushort, + pub fflags: c_uint, pub data: i64, - pub udata: *mut ::c_void, + pub udata: *mut c_void, pub ext: [u64; 4], } pub struct kvm_page { - pub version: ::c_uint, - pub paddr: ::c_ulong, - pub kmap_vaddr: ::c_ulong, - pub dmap_vaddr: ::c_ulong, + pub version: c_uint, + pub paddr: c_ulong, + pub kmap_vaddr: c_ulong, + pub dmap_vaddr: c_ulong, pub prot: ::vm_prot_t, pub offset: ::u_long, - pub len: ::size_t, + pub len: size_t, } pub struct kinfo_proc { /// Size of this structure. - pub ki_structsize: ::c_int, + pub ki_structsize: c_int, /// Reserved: layout identifier. - pub ki_layout: ::c_int, + 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, + pub ki_paddr: *mut c_void, // This is normally "struct user". /// Kernel virtual address of u-area. - pub ki_addr: *mut ::c_void, + pub ki_addr: *mut c_void, // This is normally "struct vnode". /// Pointer to trace file. - pub ki_tracep: *mut ::c_void, + pub ki_tracep: *mut c_void, // This is normally "struct vnode". /// Pointer to executable file. - pub ki_textvp: *mut ::c_void, + pub ki_textvp: *mut c_void, // This is normally "struct filedesc". /// Pointer to open file info. - pub ki_fd: *mut ::c_void, + pub ki_fd: *mut c_void, // This is normally "struct vmspace". /// Pointer to kernel vmspace struct. - pub ki_vmspace: *mut ::c_void, + pub ki_vmspace: *mut c_void, /// Sleep address. - pub ki_wchan: *mut ::c_void, + pub ki_wchan: *mut c_void, /// Process identifier. pub ki_pid: ::pid_t, /// Parent process ID. @@ -77,9 +82,9 @@ s! { /// Terminal session ID. pub ki_tsid: ::pid_t, /// Job control counter. - pub ki_jobc: ::c_short, + pub ki_jobc: c_short, /// Unused (just here for alignment). - pub ki_spare_short1: ::c_short, + pub ki_spare_short1: c_short, /// Controlling tty dev. pub ki_tdev_freebsd11: u32, /// Signals arrived but not delivered. @@ -101,9 +106,9 @@ s! { /// Saved effective group ID. pub ki_svgid: ::gid_t, /// Number of groups. - pub ki_ngroups: ::c_short, + pub ki_ngroups: c_short, /// Unused (just here for alignment). - pub ki_spare_short2: ::c_short, + pub ki_spare_short2: c_short, /// Groups. pub ki_groups: [::gid_t; ::KI_NGROUPS], /// Virtual size. @@ -139,61 +144,61 @@ s! { /// Time used by process children. pub ki_childtime: ::timeval, /// P_* flags. - pub ki_flag: ::c_long, + pub ki_flag: c_long, /// KI_* flags (below). - pub ki_kiflag: ::c_long, + pub ki_kiflag: c_long, /// Kernel trace points. - pub ki_traceflag: ::c_int, + pub ki_traceflag: c_int, /// S* process status. - pub ki_stat: ::c_char, + pub ki_stat: c_char, /// Process "nice" value. pub ki_nice: i8, // signed char /// Process lock (prevent swap) count. - pub ki_lock: ::c_char, + pub ki_lock: c_char, /// Run queue index. - pub ki_rqindex: ::c_char, + pub ki_rqindex: c_char, /// Which cpu we are on. - pub ki_oncpu_old: ::c_uchar, + pub ki_oncpu_old: c_uchar, /// Last cpu we were on. - pub ki_lastcpu_old: ::c_uchar, + pub ki_lastcpu_old: c_uchar, /// Thread name. - pub ki_tdname: [::c_char; ::TDNAMLEN + 1], + pub ki_tdname: [c_char; ::TDNAMLEN + 1], /// Wchan message. - pub ki_wmesg: [::c_char; ::WMESGLEN + 1], + pub ki_wmesg: [c_char; ::WMESGLEN + 1], /// Setlogin name. - pub ki_login: [::c_char; ::LOGNAMELEN + 1], + pub ki_login: [c_char; ::LOGNAMELEN + 1], /// Lock name. - pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1], + pub ki_lockname: [c_char; ::LOCKNAMELEN + 1], /// Command name. - pub ki_comm: [::c_char; ::COMMLEN + 1], + pub ki_comm: [c_char; ::COMMLEN + 1], /// Emulation name. - pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1], + pub ki_emul: [c_char; ::KI_EMULNAMELEN + 1], /// Login class. - pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1], + pub ki_loginclass: [c_char; ::LOGINCLASSLEN + 1], /// More thread name. - pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], + pub ki_moretdname: [c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], /// Spare string space. - pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq + pub ki_sparestrings: [[c_char; 23]; 2], // little hack to allow PartialEq /// Spare room for growth. - pub ki_spareints: [::c_int; ::KI_NSPARE_INT], + pub ki_spareints: [c_int; ::KI_NSPARE_INT], /// Controlling tty dev. pub ki_tdev: ::dev_t, /// Which cpu we are on. - pub ki_oncpu: ::c_int, + pub ki_oncpu: c_int, /// Last cpu we were on. - pub ki_lastcpu: ::c_int, + pub ki_lastcpu: c_int, /// PID of tracing process. - pub ki_tracer: ::c_int, + pub ki_tracer: c_int, /// P2_* flags. - pub ki_flag2: ::c_int, + pub ki_flag2: c_int, /// Default FIB number. - pub ki_fibnum: ::c_int, + pub ki_fibnum: c_int, /// Credential flags. pub ki_cr_flags: ::u_int, /// Process jail ID. - pub ki_jid: ::c_int, + pub ki_jid: c_int, /// Number of threads in total. - pub ki_numthreads: ::c_int, + pub ki_numthreads: c_int, /// Thread ID. pub ki_tid: ::lwpid_t, /// Process priority. @@ -204,19 +209,19 @@ s! { pub ki_rusage_ch: ::rusage, // This is normally "struct pcb". /// Kernel virtual addr of pcb. - pub ki_pcb: *mut ::c_void, + pub ki_pcb: *mut c_void, /// Kernel virtual addr of stack. - pub ki_kstack: *mut ::c_void, + pub ki_kstack: *mut c_void, /// User convenience pointer. - pub ki_udata: *mut ::c_void, + pub ki_udata: *mut c_void, // This is normally "struct thread". - pub ki_tdaddr: *mut ::c_void, - pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR], - pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG], + pub ki_tdaddr: *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, + pub ki_sflag: c_long, /// kthread flag. - pub ki_tdflags: ::c_long, + pub ki_tdflags: c_long, } pub struct stat { @@ -232,20 +237,20 @@ s! { #[cfg(target_arch = "x86")] st_atim_ext: i32, pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, + pub st_atime_nsec: c_long, #[cfg(target_arch = "x86")] st_mtim_ext: i32, pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, + pub st_mtime_nsec: c_long, #[cfg(target_arch = "x86")] st_ctim_ext: i32, pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, + pub st_ctime_nsec: c_long, #[cfg(target_arch = "x86")] st_btim_ext: i32, pub st_birthtime: ::time_t, - pub st_birthtime_nsec: ::c_long, - pub st_size: ::off_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, @@ -257,13 +262,13 @@ s! { s_no_extra_traits! { pub struct dirent { pub d_fileno: ::ino_t, - pub d_off: ::off_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 d_name: [c_char; 256], } pub struct statfs { @@ -285,10 +290,10 @@ s_no_extra_traits! { 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], + 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 { @@ -296,10 +301,10 @@ s_no_extra_traits! { 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_mntdir: *mut c_char, + pub vn_type: c_int, pub vn_mode: u16, - pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1], + pub vn_devname: [c_char; ::SPECNAMELEN as usize + 1], } } @@ -426,8 +431,8 @@ cfg_if! { 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; + 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 @@ -442,7 +447,7 @@ cfg_if! { 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; + let self_vn_devname: &[c_char] = &self.vn_devname; f.debug_struct("vnstat") .field("vn_fileid", &self.vn_fileid) @@ -458,7 +463,7 @@ cfg_if! { } impl ::hash::Hash for vnstat { fn hash(&self, state: &mut H) { - let self_vn_devname: &[::c_char] = &self.vn_devname; + let self_vn_devname: &[c_char] = &self.vn_devname; self.vn_fileid.hash(state); self.vn_size.hash(state); @@ -473,17 +478,17 @@ cfg_if! { } } -pub const RAND_MAX: ::c_int = 0x7fff_fffd; -pub const ELAST: ::c_int = 97; +pub const RAND_MAX: c_int = 0x7fff_fffd; +pub const ELAST: c_int = 97; /// max length of devicename -pub const SPECNAMELEN: ::c_int = 63; +pub const SPECNAMELEN: c_int = 63; pub const KI_NSPARE_PTR: usize = 6; -pub const MINCORE_SUPER: ::c_int = 0x20; +pub const MINCORE_SUPER: c_int = 0x20; safe_f! { - pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { + 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; @@ -496,29 +501,29 @@ safe_f! { } f! { - pub fn major(dev: ::dev_t) -> ::c_int { - (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int + 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 + 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 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; + msqid: c_int, + msgp: *mut c_void, + msgsz: size_t, + msgtyp: c_long, + msgflg: c_int, + ) -> ssize_t; - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; - pub fn basename(path: *mut ::c_char) -> *mut ::c_char; + pub fn dirname(path: *mut c_char) -> *mut c_char; + pub fn basename(path: *mut c_char) -> *mut c_char; } cfg_if! { diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs index 7bf2534455bf9..7c2d6853a8514 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs @@ -1,5 +1,7 @@ -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; +use crate::c_int; + +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; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs index b0a2786022011..f777c990d8d93 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -1,267 +1,272 @@ +use crate::{ + c_char, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void, off_t, size_t, + ssize_t, +}; + // APIs in FreeBSD 13 that have changed since 11. pub type nlink_t = u64; pub type dev_t = u64; pub type ino_t = u64; -pub type shmatt_t = ::c_uint; +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 shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_lpid: crate::pid_t, + pub shm_cpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, } pub struct kevent { - pub ident: ::uintptr_t, - pub filter: ::c_short, - pub flags: ::c_ushort, - pub fflags: ::c_uint, + pub ident: crate::uintptr_t, + pub filter: c_short, + pub flags: c_ushort, + pub fflags: c_uint, pub data: i64, - pub udata: *mut ::c_void, + 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 kp_version: crate::u_int, + pub kp_paddr: crate::kpaddr_t, + pub kp_kmap_vaddr: crate::kvaddr_t, + pub kp_dmap_vaddr: crate::kvaddr_t, + pub kp_prot: crate::vm_prot_t, + pub kp_offset: off_t, + pub kp_len: size_t, } pub struct __c_anonymous_domainset { #[cfg(target_pointer_width = "64")] - _priv: [::c_ulong; 4], + _priv: [c_ulong; 4], #[cfg(target_pointer_width = "32")] - _priv: [::c_ulong; 8], + _priv: [c_ulong; 8], } pub struct kinfo_proc { /// Size of this structure. - pub ki_structsize: ::c_int, + pub ki_structsize: c_int, /// Reserved: layout identifier. - pub ki_layout: ::c_int, + pub ki_layout: c_int, /// Address of command arguments. - pub ki_args: *mut ::pargs, + pub ki_args: *mut crate::pargs, // This is normally "struct proc". /// Address of proc. - pub ki_paddr: *mut ::c_void, + pub ki_paddr: *mut c_void, // This is normally "struct user". /// Kernel virtual address of u-area. - pub ki_addr: *mut ::c_void, + pub ki_addr: *mut c_void, // This is normally "struct vnode". /// Pointer to trace file. - pub ki_tracep: *mut ::c_void, + pub ki_tracep: *mut c_void, // This is normally "struct vnode". /// Pointer to executable file. - pub ki_textvp: *mut ::c_void, + pub ki_textvp: *mut c_void, // This is normally "struct filedesc". /// Pointer to open file info. - pub ki_fd: *mut ::c_void, + pub ki_fd: *mut c_void, // This is normally "struct vmspace". /// Pointer to kernel vmspace struct. - pub ki_vmspace: *mut ::c_void, + pub ki_vmspace: *mut c_void, /// Sleep address. - pub ki_wchan: *const ::c_void, + pub ki_wchan: *const c_void, /// Process identifier. - pub ki_pid: ::pid_t, + pub ki_pid: crate::pid_t, /// Parent process ID. - pub ki_ppid: ::pid_t, + pub ki_ppid: crate::pid_t, /// Process group ID. - pub ki_pgid: ::pid_t, + pub ki_pgid: crate::pid_t, /// tty process group ID. - pub ki_tpgid: ::pid_t, + pub ki_tpgid: crate::pid_t, /// Process session ID. - pub ki_sid: ::pid_t, + pub ki_sid: crate::pid_t, /// Terminal session ID. - pub ki_tsid: ::pid_t, + pub ki_tsid: crate::pid_t, /// Job control counter. - pub ki_jobc: ::c_short, + pub ki_jobc: c_short, /// Unused (just here for alignment). - pub ki_spare_short1: ::c_short, + pub ki_spare_short1: c_short, /// Controlling tty dev. pub ki_tdev_freebsd11: u32, /// Signals arrived but not delivered. - pub ki_siglist: ::sigset_t, + pub ki_siglist: crate::sigset_t, /// Current signal mask. - pub ki_sigmask: ::sigset_t, + pub ki_sigmask: crate::sigset_t, /// Signals being ignored. - pub ki_sigignore: ::sigset_t, + pub ki_sigignore: crate::sigset_t, /// Signals being caught by user. - pub ki_sigcatch: ::sigset_t, + pub ki_sigcatch: crate::sigset_t, /// Effective user ID. - pub ki_uid: ::uid_t, + pub ki_uid: crate::uid_t, /// Real user ID. - pub ki_ruid: ::uid_t, + pub ki_ruid: crate::uid_t, /// Saved effective user ID. - pub ki_svuid: ::uid_t, + pub ki_svuid: crate::uid_t, /// Real group ID. - pub ki_rgid: ::gid_t, + pub ki_rgid: crate::gid_t, /// Saved effective group ID. - pub ki_svgid: ::gid_t, + pub ki_svgid: crate::gid_t, /// Number of groups. - pub ki_ngroups: ::c_short, + pub ki_ngroups: c_short, /// Unused (just here for alignment). - pub ki_spare_short2: ::c_short, + pub ki_spare_short2: c_short, /// Groups. - pub ki_groups: [::gid_t; ::KI_NGROUPS], + pub ki_groups: [crate::gid_t; crate::KI_NGROUPS], /// Virtual size. - pub ki_size: ::vm_size_t, + pub ki_size: crate::vm_size_t, /// Current resident set size in pages. - pub ki_rssize: ::segsz_t, + pub ki_rssize: crate::segsz_t, /// Resident set size before last swap. - pub ki_swrss: ::segsz_t, + pub ki_swrss: crate::segsz_t, /// Text size (pages) XXX. - pub ki_tsize: ::segsz_t, + pub ki_tsize: crate::segsz_t, /// Data size (pages) XXX. - pub ki_dsize: ::segsz_t, + pub ki_dsize: crate::segsz_t, /// Stack size (pages). - pub ki_ssize: ::segsz_t, + pub ki_ssize: crate::segsz_t, /// Exit status for wait & stop signal. - pub ki_xstat: ::u_short, + pub ki_xstat: crate::u_short, /// Accounting flags. - pub ki_acflag: ::u_short, + pub ki_acflag: crate::u_short, /// %cpu for process during `ki_swtime`. - pub ki_pctcpu: ::fixpt_t, + pub ki_pctcpu: crate::fixpt_t, /// Time averaged value of `ki_cpticks`. - pub ki_estcpu: ::u_int, + pub ki_estcpu: crate::u_int, /// Time since last blocked. - pub ki_slptime: ::u_int, + pub ki_slptime: crate::u_int, /// Time swapped in or out. - pub ki_swtime: ::u_int, + pub ki_swtime: crate::u_int, /// Number of copy-on-write faults. - pub ki_cow: ::u_int, + pub ki_cow: crate::u_int, /// Real time in microsec. pub ki_runtime: u64, /// Starting time. - pub ki_start: ::timeval, + pub ki_start: crate::timeval, /// Time used by process children. - pub ki_childtime: ::timeval, + pub ki_childtime: crate::timeval, /// P_* flags. - pub ki_flag: ::c_long, + pub ki_flag: c_long, /// KI_* flags (below). - pub ki_kiflag: ::c_long, + pub ki_kiflag: c_long, /// Kernel trace points. - pub ki_traceflag: ::c_int, + pub ki_traceflag: c_int, /// S* process status. - pub ki_stat: ::c_char, + pub ki_stat: c_char, /// Process "nice" value. pub ki_nice: i8, // signed char /// Process lock (prevent swap) count. - pub ki_lock: ::c_char, + pub ki_lock: c_char, /// Run queue index. - pub ki_rqindex: ::c_char, + pub ki_rqindex: c_char, /// Which cpu we are on. - pub ki_oncpu_old: ::c_uchar, + pub ki_oncpu_old: c_uchar, /// Last cpu we were on. - pub ki_lastcpu_old: ::c_uchar, + pub ki_lastcpu_old: c_uchar, /// Thread name. - pub ki_tdname: [::c_char; ::TDNAMLEN + 1], + pub ki_tdname: [c_char; crate::TDNAMLEN + 1], /// Wchan message. - pub ki_wmesg: [::c_char; ::WMESGLEN + 1], + pub ki_wmesg: [c_char; crate::WMESGLEN + 1], /// Setlogin name. - pub ki_login: [::c_char; ::LOGNAMELEN + 1], + pub ki_login: [c_char; crate::LOGNAMELEN + 1], /// Lock name. - pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1], + pub ki_lockname: [c_char; crate::LOCKNAMELEN + 1], /// Command name. - pub ki_comm: [::c_char; ::COMMLEN + 1], + pub ki_comm: [c_char; crate::COMMLEN + 1], /// Emulation name. - pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1], + pub ki_emul: [c_char; crate::KI_EMULNAMELEN + 1], /// Login class. - pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1], + pub ki_loginclass: [c_char; crate::LOGINCLASSLEN + 1], /// More thread name. - pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], + pub ki_moretdname: [c_char; crate::MAXCOMLEN - crate::TDNAMLEN + 1], /// Spare string space. - pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq + pub ki_sparestrings: [[c_char; 23]; 2], // little hack to allow PartialEq /// Spare room for growth. - pub ki_spareints: [::c_int; ::KI_NSPARE_INT], + pub ki_spareints: [c_int; crate::KI_NSPARE_INT], /// Controlling tty dev. pub ki_tdev: u64, /// Which cpu we are on. - pub ki_oncpu: ::c_int, + pub ki_oncpu: c_int, /// Last cpu we were on. - pub ki_lastcpu: ::c_int, + pub ki_lastcpu: c_int, /// PID of tracing process. - pub ki_tracer: ::c_int, + pub ki_tracer: c_int, /// P2_* flags. - pub ki_flag2: ::c_int, + pub ki_flag2: c_int, /// Default FIB number. - pub ki_fibnum: ::c_int, + pub ki_fibnum: c_int, /// Credential flags. - pub ki_cr_flags: ::u_int, + pub ki_cr_flags: crate::u_int, /// Process jail ID. - pub ki_jid: ::c_int, + pub ki_jid: c_int, /// Number of threads in total. - pub ki_numthreads: ::c_int, + pub ki_numthreads: c_int, /// Thread ID. - pub ki_tid: ::lwpid_t, + pub ki_tid: crate::lwpid_t, /// Process priority. - pub ki_pri: ::priority, + pub ki_pri: crate::priority, /// Process rusage statistics. - pub ki_rusage: ::rusage, + pub ki_rusage: crate::rusage, /// rusage of children processes. - pub ki_rusage_ch: ::rusage, + pub ki_rusage_ch: crate::rusage, // This is normally "struct pcb". /// Kernel virtual addr of pcb. - pub ki_pcb: *mut ::c_void, + pub ki_pcb: *mut c_void, /// Kernel virtual addr of stack. - pub ki_kstack: *mut ::c_void, + pub ki_kstack: *mut c_void, /// User convenience pointer. - pub ki_udata: *mut ::c_void, + pub ki_udata: *mut c_void, // This is normally "struct thread". - pub ki_tdaddr: *mut ::c_void, + 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], + pub ki_pd: *mut c_void, + pub ki_spareptrs: [*mut c_void; crate::KI_NSPARE_PTR], + pub ki_sparelongs: [c_long; crate::KI_NSPARE_LONG], /// PS_* flags. - pub ki_sflag: ::c_long, + pub ki_sflag: c_long, /// kthread flag. - pub ki_tdflags: ::c_long, + pub ki_tdflags: c_long, } 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_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, st_padding0: i16, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, st_padding1: i32, - pub st_rdev: ::dev_t, + pub st_rdev: crate::dev_t, #[cfg(target_arch = "x86")] st_atim_ext: i32, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, #[cfg(target_arch = "x86")] st_mtim_ext: i32, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, #[cfg(target_arch = "x86")] st_ctim_ext: i32, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, #[cfg(target_arch = "x86")] st_btim_ext: i32, - 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_birthtime: crate::time_t, + pub st_birthtime_nsec: c_long, + pub st_size: off_t, + pub st_blocks: crate::blkcnt_t, + pub st_blksize: crate::blksize_t, + pub st_flags: crate::fflags_t, pub st_gen: u64, pub st_spare: [u64; 10], } @@ -269,14 +274,14 @@ s! { s_no_extra_traits! { pub struct dirent { - pub d_fileno: ::ino_t, - pub d_off: ::off_t, + pub d_fileno: crate::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 d_name: [c_char; 256], } pub struct statfs { @@ -296,12 +301,12 @@ s_no_extra_traits! { 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 f_owner: crate::uid_t, + pub f_fsid: crate::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 { @@ -309,10 +314,10 @@ s_no_extra_traits! { 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_mntdir: *mut c_char, + pub vn_type: c_int, pub vn_mode: u16, - pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1], + pub vn_devname: [c_char; crate::SPECNAMELEN as usize + 1], } } @@ -351,8 +356,8 @@ cfg_if! { } } impl Eq for statfs {} - impl ::fmt::Debug for statfs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for statfs { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("statfs") .field("f_bsize", &self.f_bsize) .field("f_iosize", &self.f_iosize) @@ -374,8 +379,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for statfs { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for statfs { + fn hash(&self, state: &mut H) { self.f_version.hash(state); self.f_type.hash(state); self.f_flags.hash(state); @@ -414,8 +419,8 @@ cfg_if! { } } impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent") .field("d_fileno", &self.d_fileno) .field("d_off", &self.d_off) @@ -426,8 +431,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_fileno.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -439,8 +444,8 @@ cfg_if! { 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; + 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 @@ -453,9 +458,9 @@ cfg_if! { } } 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; + impl crate::fmt::Debug for vnstat { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + let self_vn_devname: &[c_char] = &self.vn_devname; f.debug_struct("vnstat") .field("vn_fileid", &self.vn_fileid) @@ -469,9 +474,9 @@ cfg_if! { .finish() } } - impl ::hash::Hash for vnstat { - fn hash(&self, state: &mut H) { - let self_vn_devname: &[::c_char] = &self.vn_devname; + impl crate::hash::Hash for vnstat { + fn hash(&self, state: &mut H) { + let self_vn_devname: &[c_char] = &self.vn_devname; self.vn_fileid.hash(state); self.vn_size.hash(state); @@ -486,28 +491,28 @@ cfg_if! { } } -pub const RAND_MAX: ::c_int = 0x7fff_ffff; -pub const ELAST: ::c_int = 97; +pub const RAND_MAX: c_int = 0x7fff_ffff; +pub const ELAST: c_int = 97; -pub const KF_TYPE_EVENTFD: ::c_int = 13; +pub const KF_TYPE_EVENTFD: c_int = 13; /// max length of devicename -pub const SPECNAMELEN: ::c_int = 255; +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 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 = 0x20; +pub const MINCORE_SUPER: c_int = 0x20; 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; + pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + let major = major as crate::dev_t; + let minor = minor as crate::dev_t; let mut dev = 0; dev |= ((major & 0xffffff00) as dev_t) << 32; dev |= ((major & 0x000000ff) as dev_t) << 8; @@ -518,51 +523,51 @@ safe_f! { } f! { - pub fn major(dev: ::dev_t) -> ::c_int { - (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int + pub fn major(dev: crate::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 + pub fn minor(dev: crate::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 mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; + pub fn freelocale(loc: crate::locale_t); pub fn msgrcv( - msqid: ::c_int, - msgp: *mut ::c_void, - msgsz: ::size_t, - msgtyp: ::c_long, - msgflg: ::c_int, - ) -> ::ssize_t; + 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; + level: crate::cpulevel_t, + which: crate::cpuwhich_t, + id: crate::id_t, + setsize: size_t, + mask: *mut crate::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; + level: crate::cpulevel_t, + which: crate::cpuwhich_t, + id: crate::id_t, + setsize: size_t, + mask: *const crate::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; + 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; + pub fn kvm_kerndisp(kd: *mut crate::kvm_t) -> crate::kssize_t; } cfg_if! { diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs index 7bf2534455bf9..24713993f90a7 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs @@ -1,5 +1,7 @@ -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; +use crate::c_int; + +pub const PROC_KPTI_CTL: c_int = crate::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 = crate::PROC_PROCCTL_MD_MIN + 1; +pub const PROC_KPTI_STATUS_ACTIVE: c_int = 0x80000000; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index 265cc2ba595d9..380791488bf97 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -1,267 +1,272 @@ +use crate::{ + c_char, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void, off_t, size_t, + ssize_t, +}; + // APIs in FreeBSD 14 that have changed since 11. pub type nlink_t = u64; pub type dev_t = u64; pub type ino_t = u64; -pub type shmatt_t = ::c_uint; +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 shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_lpid: crate::pid_t, + pub shm_cpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, } pub struct kevent { - pub ident: ::uintptr_t, - pub filter: ::c_short, - pub flags: ::c_ushort, - pub fflags: ::c_uint, + pub ident: crate::uintptr_t, + pub filter: c_short, + pub flags: c_ushort, + pub fflags: c_uint, pub data: i64, - pub udata: *mut ::c_void, + 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 kp_version: crate::u_int, + pub kp_paddr: crate::kpaddr_t, + pub kp_kmap_vaddr: crate::kvaddr_t, + pub kp_dmap_vaddr: crate::kvaddr_t, + pub kp_prot: crate::vm_prot_t, + pub kp_offset: off_t, + pub kp_len: size_t, } pub struct __c_anonymous_domainset { #[cfg(target_pointer_width = "64")] - _priv: [::c_ulong; 4], + _priv: [c_ulong; 4], #[cfg(target_pointer_width = "32")] - _priv: [::c_ulong; 8], + _priv: [c_ulong; 8], } pub struct kinfo_proc { /// Size of this structure. - pub ki_structsize: ::c_int, + pub ki_structsize: c_int, /// Reserved: layout identifier. - pub ki_layout: ::c_int, + pub ki_layout: c_int, /// Address of command arguments. - pub ki_args: *mut ::pargs, + pub ki_args: *mut crate::pargs, // This is normally "struct proc". /// Address of proc. - pub ki_paddr: *mut ::c_void, + pub ki_paddr: *mut c_void, // This is normally "struct user". /// Kernel virtual address of u-area. - pub ki_addr: *mut ::c_void, + pub ki_addr: *mut c_void, // This is normally "struct vnode". /// Pointer to trace file. - pub ki_tracep: *mut ::c_void, + pub ki_tracep: *mut c_void, // This is normally "struct vnode". /// Pointer to executable file. - pub ki_textvp: *mut ::c_void, + pub ki_textvp: *mut c_void, // This is normally "struct filedesc". /// Pointer to open file info. - pub ki_fd: *mut ::c_void, + pub ki_fd: *mut c_void, // This is normally "struct vmspace". /// Pointer to kernel vmspace struct. - pub ki_vmspace: *mut ::c_void, + pub ki_vmspace: *mut c_void, /// Sleep address. - pub ki_wchan: *const ::c_void, + pub ki_wchan: *const c_void, /// Process identifier. - pub ki_pid: ::pid_t, + pub ki_pid: crate::pid_t, /// Parent process ID. - pub ki_ppid: ::pid_t, + pub ki_ppid: crate::pid_t, /// Process group ID. - pub ki_pgid: ::pid_t, + pub ki_pgid: crate::pid_t, /// tty process group ID. - pub ki_tpgid: ::pid_t, + pub ki_tpgid: crate::pid_t, /// Process session ID. - pub ki_sid: ::pid_t, + pub ki_sid: crate::pid_t, /// Terminal session ID. - pub ki_tsid: ::pid_t, + pub ki_tsid: crate::pid_t, /// Job control counter. - pub ki_jobc: ::c_short, + pub ki_jobc: c_short, /// Unused (just here for alignment). - pub ki_spare_short1: ::c_short, + pub ki_spare_short1: c_short, /// Controlling tty dev. pub ki_tdev_freebsd11: u32, /// Signals arrived but not delivered. - pub ki_siglist: ::sigset_t, + pub ki_siglist: crate::sigset_t, /// Current signal mask. - pub ki_sigmask: ::sigset_t, + pub ki_sigmask: crate::sigset_t, /// Signals being ignored. - pub ki_sigignore: ::sigset_t, + pub ki_sigignore: crate::sigset_t, /// Signals being caught by user. - pub ki_sigcatch: ::sigset_t, + pub ki_sigcatch: crate::sigset_t, /// Effective user ID. - pub ki_uid: ::uid_t, + pub ki_uid: crate::uid_t, /// Real user ID. - pub ki_ruid: ::uid_t, + pub ki_ruid: crate::uid_t, /// Saved effective user ID. - pub ki_svuid: ::uid_t, + pub ki_svuid: crate::uid_t, /// Real group ID. - pub ki_rgid: ::gid_t, + pub ki_rgid: crate::gid_t, /// Saved effective group ID. - pub ki_svgid: ::gid_t, + pub ki_svgid: crate::gid_t, /// Number of groups. - pub ki_ngroups: ::c_short, + pub ki_ngroups: c_short, /// Unused (just here for alignment). - pub ki_spare_short2: ::c_short, + pub ki_spare_short2: c_short, /// Groups. - pub ki_groups: [::gid_t; ::KI_NGROUPS], + pub ki_groups: [crate::gid_t; crate::KI_NGROUPS], /// Virtual size. - pub ki_size: ::vm_size_t, + pub ki_size: crate::vm_size_t, /// Current resident set size in pages. - pub ki_rssize: ::segsz_t, + pub ki_rssize: crate::segsz_t, /// Resident set size before last swap. - pub ki_swrss: ::segsz_t, + pub ki_swrss: crate::segsz_t, /// Text size (pages) XXX. - pub ki_tsize: ::segsz_t, + pub ki_tsize: crate::segsz_t, /// Data size (pages) XXX. - pub ki_dsize: ::segsz_t, + pub ki_dsize: crate::segsz_t, /// Stack size (pages). - pub ki_ssize: ::segsz_t, + pub ki_ssize: crate::segsz_t, /// Exit status for wait & stop signal. - pub ki_xstat: ::u_short, + pub ki_xstat: crate::u_short, /// Accounting flags. - pub ki_acflag: ::u_short, + pub ki_acflag: crate::u_short, /// %cpu for process during `ki_swtime`. - pub ki_pctcpu: ::fixpt_t, + pub ki_pctcpu: crate::fixpt_t, /// Time averaged value of `ki_cpticks`. - pub ki_estcpu: ::u_int, + pub ki_estcpu: crate::u_int, /// Time since last blocked. - pub ki_slptime: ::u_int, + pub ki_slptime: crate::u_int, /// Time swapped in or out. - pub ki_swtime: ::u_int, + pub ki_swtime: crate::u_int, /// Number of copy-on-write faults. - pub ki_cow: ::u_int, + pub ki_cow: crate::u_int, /// Real time in microsec. pub ki_runtime: u64, /// Starting time. - pub ki_start: ::timeval, + pub ki_start: crate::timeval, /// Time used by process children. - pub ki_childtime: ::timeval, + pub ki_childtime: crate::timeval, /// P_* flags. - pub ki_flag: ::c_long, + pub ki_flag: c_long, /// KI_* flags (below). - pub ki_kiflag: ::c_long, + pub ki_kiflag: c_long, /// Kernel trace points. - pub ki_traceflag: ::c_int, + pub ki_traceflag: c_int, /// S* process status. - pub ki_stat: ::c_char, + pub ki_stat: c_char, /// Process "nice" value. pub ki_nice: i8, // signed char /// Process lock (prevent swap) count. - pub ki_lock: ::c_char, + pub ki_lock: c_char, /// Run queue index. - pub ki_rqindex: ::c_char, + pub ki_rqindex: c_char, /// Which cpu we are on. - pub ki_oncpu_old: ::c_uchar, + pub ki_oncpu_old: c_uchar, /// Last cpu we were on. - pub ki_lastcpu_old: ::c_uchar, + pub ki_lastcpu_old: c_uchar, /// Thread name. - pub ki_tdname: [::c_char; ::TDNAMLEN + 1], + pub ki_tdname: [c_char; crate::TDNAMLEN + 1], /// Wchan message. - pub ki_wmesg: [::c_char; ::WMESGLEN + 1], + pub ki_wmesg: [c_char; crate::WMESGLEN + 1], /// Setlogin name. - pub ki_login: [::c_char; ::LOGNAMELEN + 1], + pub ki_login: [c_char; crate::LOGNAMELEN + 1], /// Lock name. - pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1], + pub ki_lockname: [c_char; crate::LOCKNAMELEN + 1], /// Command name. - pub ki_comm: [::c_char; ::COMMLEN + 1], + pub ki_comm: [c_char; crate::COMMLEN + 1], /// Emulation name. - pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1], + pub ki_emul: [c_char; crate::KI_EMULNAMELEN + 1], /// Login class. - pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1], + pub ki_loginclass: [c_char; crate::LOGINCLASSLEN + 1], /// More thread name. - pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], + pub ki_moretdname: [c_char; crate::MAXCOMLEN - crate::TDNAMLEN + 1], /// Spare string space. - pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq + pub ki_sparestrings: [[c_char; 23]; 2], // little hack to allow PartialEq /// Spare room for growth. - pub ki_spareints: [::c_int; ::KI_NSPARE_INT], + pub ki_spareints: [c_int; crate::KI_NSPARE_INT], /// Controlling tty dev. pub ki_tdev: u64, /// Which cpu we are on. - pub ki_oncpu: ::c_int, + pub ki_oncpu: c_int, /// Last cpu we were on. - pub ki_lastcpu: ::c_int, + pub ki_lastcpu: c_int, /// PID of tracing process. - pub ki_tracer: ::c_int, + pub ki_tracer: c_int, /// P2_* flags. - pub ki_flag2: ::c_int, + pub ki_flag2: c_int, /// Default FIB number. - pub ki_fibnum: ::c_int, + pub ki_fibnum: c_int, /// Credential flags. - pub ki_cr_flags: ::u_int, + pub ki_cr_flags: crate::u_int, /// Process jail ID. - pub ki_jid: ::c_int, + pub ki_jid: c_int, /// Number of threads in total. - pub ki_numthreads: ::c_int, + pub ki_numthreads: c_int, /// Thread ID. - pub ki_tid: ::lwpid_t, + pub ki_tid: crate::lwpid_t, /// Process priority. - pub ki_pri: ::priority, + pub ki_pri: crate::priority, /// Process rusage statistics. - pub ki_rusage: ::rusage, + pub ki_rusage: crate::rusage, /// rusage of children processes. - pub ki_rusage_ch: ::rusage, + pub ki_rusage_ch: crate::rusage, // This is normally "struct pcb". /// Kernel virtual addr of pcb. - pub ki_pcb: *mut ::c_void, + pub ki_pcb: *mut c_void, /// Kernel virtual addr of stack. - pub ki_kstack: *mut ::c_void, + pub ki_kstack: *mut c_void, /// User convenience pointer. - pub ki_udata: *mut ::c_void, + pub ki_udata: *mut c_void, // This is normally "struct thread". - pub ki_tdaddr: *mut ::c_void, + 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], + pub ki_pd: *mut c_void, + pub ki_spareptrs: [*mut c_void; crate::KI_NSPARE_PTR], + pub ki_sparelongs: [c_long; crate::KI_NSPARE_LONG], /// PS_* flags. - pub ki_sflag: ::c_long, + pub ki_sflag: c_long, /// kthread flag. - pub ki_tdflags: ::c_long, + pub ki_tdflags: c_long, } 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_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, st_padding0: i16, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, st_padding1: i32, - pub st_rdev: ::dev_t, + pub st_rdev: crate::dev_t, #[cfg(target_arch = "x86")] st_atim_ext: i32, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, #[cfg(target_arch = "x86")] st_mtim_ext: i32, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, #[cfg(target_arch = "x86")] st_ctim_ext: i32, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, #[cfg(target_arch = "x86")] st_btim_ext: i32, - 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_birthtime: crate::time_t, + pub st_birthtime_nsec: c_long, + pub st_size: off_t, + pub st_blocks: crate::blkcnt_t, + pub st_blksize: crate::blksize_t, + pub st_flags: crate::fflags_t, pub st_gen: u64, pub st_spare: [u64; 10], } @@ -269,14 +274,14 @@ s! { s_no_extra_traits! { pub struct dirent { - pub d_fileno: ::ino_t, - pub d_off: ::off_t, + pub d_fileno: crate::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 d_name: [c_char; 256], } pub struct statfs { @@ -296,12 +301,12 @@ s_no_extra_traits! { 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 f_owner: crate::uid_t, + pub f_fsid: crate::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 { @@ -309,10 +314,10 @@ s_no_extra_traits! { 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_mntdir: *mut c_char, + pub vn_type: c_int, pub vn_mode: u16, - pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1], + pub vn_devname: [c_char; crate::SPECNAMELEN as usize + 1], } } @@ -351,8 +356,8 @@ cfg_if! { } } impl Eq for statfs {} - impl ::fmt::Debug for statfs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for statfs { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("statfs") .field("f_bsize", &self.f_bsize) .field("f_iosize", &self.f_iosize) @@ -374,8 +379,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for statfs { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for statfs { + fn hash(&self, state: &mut H) { self.f_version.hash(state); self.f_type.hash(state); self.f_flags.hash(state); @@ -414,8 +419,8 @@ cfg_if! { } } impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent") .field("d_fileno", &self.d_fileno) .field("d_off", &self.d_off) @@ -426,8 +431,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_fileno.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -439,8 +444,8 @@ cfg_if! { 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; + 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 @@ -453,9 +458,9 @@ cfg_if! { } } 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; + impl crate::fmt::Debug for vnstat { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + let self_vn_devname: &[c_char] = &self.vn_devname; f.debug_struct("vnstat") .field("vn_fileid", &self.vn_fileid) @@ -469,9 +474,9 @@ cfg_if! { .finish() } } - impl ::hash::Hash for vnstat { - fn hash(&self, state: &mut H) { - let self_vn_devname: &[::c_char] = &self.vn_devname; + impl crate::hash::Hash for vnstat { + fn hash(&self, state: &mut H) { + let self_vn_devname: &[c_char] = &self.vn_devname; self.vn_fileid.hash(state); self.vn_size.hash(state); @@ -486,28 +491,28 @@ cfg_if! { } } -pub const RAND_MAX: ::c_int = 0x7fff_ffff; -pub const ELAST: ::c_int = 97; +pub const RAND_MAX: c_int = 0x7fff_ffff; +pub const ELAST: c_int = 97; -pub const KF_TYPE_EVENTFD: ::c_int = 13; +pub const KF_TYPE_EVENTFD: c_int = 13; /// max length of devicename -pub const SPECNAMELEN: ::c_int = 255; +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 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; +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; + pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + let major = major as crate::dev_t; + let minor = minor as crate::dev_t; let mut dev = 0; dev |= ((major & 0xffffff00) as dev_t) << 32; dev |= ((major & 0x000000ff) as dev_t) << 8; @@ -518,51 +523,51 @@ safe_f! { } f! { - pub fn major(dev: ::dev_t) -> ::c_int { - (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int + pub fn major(dev: crate::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 + pub fn minor(dev: crate::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 mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; + pub fn freelocale(loc: crate::locale_t); pub fn msgrcv( - msqid: ::c_int, - msgp: *mut ::c_void, - msgsz: ::size_t, - msgtyp: ::c_long, - msgflg: ::c_int, - ) -> ::ssize_t; + 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; + level: crate::cpulevel_t, + which: crate::cpuwhich_t, + id: crate::id_t, + setsize: size_t, + mask: *mut crate::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; + level: crate::cpulevel_t, + which: crate::cpuwhich_t, + id: crate::id_t, + setsize: size_t, + mask: *const crate::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; + 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; + pub fn kvm_kerndisp(kd: *mut crate::kvm_t) -> crate::kssize_t; } cfg_if! { diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs index 01d0b4328da81..2c403114c0305 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs @@ -1,12 +1,14 @@ -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; +use crate::c_int; + +pub const PROC_KPTI_CTL: c_int = crate::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 = crate::PROC_PROCCTL_MD_MIN + 1; +pub const PROC_KPTI_STATUS_ACTIVE: c_int = 0x80000000; +pub const PROC_LA_CTL: c_int = crate::PROC_PROCCTL_MD_MIN + 2; +pub const PROC_LA_STATUS: c_int = crate::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; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index 47012e38b7db7..d5c068ec49cef 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -1,267 +1,272 @@ +use crate::{ + c_char, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void, off_t, size_t, + ssize_t, +}; + // APIs in FreeBSD 15 that have changed since 11. pub type nlink_t = u64; pub type dev_t = u64; pub type ino_t = u64; -pub type shmatt_t = ::c_uint; +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 shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_lpid: crate::pid_t, + pub shm_cpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, } pub struct kevent { - pub ident: ::uintptr_t, - pub filter: ::c_short, - pub flags: ::c_ushort, - pub fflags: ::c_uint, + pub ident: crate::uintptr_t, + pub filter: c_short, + pub flags: c_ushort, + pub fflags: c_uint, pub data: i64, - pub udata: *mut ::c_void, + 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 kp_version: crate::u_int, + pub kp_paddr: crate::kpaddr_t, + pub kp_kmap_vaddr: crate::kvaddr_t, + pub kp_dmap_vaddr: crate::kvaddr_t, + pub kp_prot: crate::vm_prot_t, + pub kp_offset: off_t, + pub kp_len: size_t, } pub struct __c_anonymous_domainset { #[cfg(target_pointer_width = "64")] - _priv: [::c_ulong; 4], + _priv: [c_ulong; 4], #[cfg(target_pointer_width = "32")] - _priv: [::c_ulong; 8], + _priv: [c_ulong; 8], } pub struct kinfo_proc { /// Size of this structure. - pub ki_structsize: ::c_int, + pub ki_structsize: c_int, /// Reserved: layout identifier. - pub ki_layout: ::c_int, + pub ki_layout: c_int, /// Address of command arguments. - pub ki_args: *mut ::pargs, + pub ki_args: *mut crate::pargs, // This is normally "struct proc". /// Address of proc. - pub ki_paddr: *mut ::c_void, + pub ki_paddr: *mut c_void, // This is normally "struct user". /// Kernel virtual address of u-area. - pub ki_addr: *mut ::c_void, + pub ki_addr: *mut c_void, // This is normally "struct vnode". /// Pointer to trace file. - pub ki_tracep: *mut ::c_void, + pub ki_tracep: *mut c_void, // This is normally "struct vnode". /// Pointer to executable file. - pub ki_textvp: *mut ::c_void, + pub ki_textvp: *mut c_void, // This is normally "struct filedesc". /// Pointer to open file info. - pub ki_fd: *mut ::c_void, + pub ki_fd: *mut c_void, // This is normally "struct vmspace". /// Pointer to kernel vmspace struct. - pub ki_vmspace: *mut ::c_void, + pub ki_vmspace: *mut c_void, /// Sleep address. - pub ki_wchan: *const ::c_void, + pub ki_wchan: *const c_void, /// Process identifier. - pub ki_pid: ::pid_t, + pub ki_pid: crate::pid_t, /// Parent process ID. - pub ki_ppid: ::pid_t, + pub ki_ppid: crate::pid_t, /// Process group ID. - pub ki_pgid: ::pid_t, + pub ki_pgid: crate::pid_t, /// tty process group ID. - pub ki_tpgid: ::pid_t, + pub ki_tpgid: crate::pid_t, /// Process session ID. - pub ki_sid: ::pid_t, + pub ki_sid: crate::pid_t, /// Terminal session ID. - pub ki_tsid: ::pid_t, + pub ki_tsid: crate::pid_t, /// Job control counter. - pub ki_jobc: ::c_short, + pub ki_jobc: c_short, /// Unused (just here for alignment). - pub ki_spare_short1: ::c_short, + pub ki_spare_short1: c_short, /// Controlling tty dev. pub ki_tdev_freebsd11: u32, /// Signals arrived but not delivered. - pub ki_siglist: ::sigset_t, + pub ki_siglist: crate::sigset_t, /// Current signal mask. - pub ki_sigmask: ::sigset_t, + pub ki_sigmask: crate::sigset_t, /// Signals being ignored. - pub ki_sigignore: ::sigset_t, + pub ki_sigignore: crate::sigset_t, /// Signals being caught by user. - pub ki_sigcatch: ::sigset_t, + pub ki_sigcatch: crate::sigset_t, /// Effective user ID. - pub ki_uid: ::uid_t, + pub ki_uid: crate::uid_t, /// Real user ID. - pub ki_ruid: ::uid_t, + pub ki_ruid: crate::uid_t, /// Saved effective user ID. - pub ki_svuid: ::uid_t, + pub ki_svuid: crate::uid_t, /// Real group ID. - pub ki_rgid: ::gid_t, + pub ki_rgid: crate::gid_t, /// Saved effective group ID. - pub ki_svgid: ::gid_t, + pub ki_svgid: crate::gid_t, /// Number of groups. - pub ki_ngroups: ::c_short, + pub ki_ngroups: c_short, /// Unused (just here for alignment). - pub ki_spare_short2: ::c_short, + pub ki_spare_short2: c_short, /// Groups. - pub ki_groups: [::gid_t; ::KI_NGROUPS], + pub ki_groups: [crate::gid_t; crate::KI_NGROUPS], /// Virtual size. - pub ki_size: ::vm_size_t, + pub ki_size: crate::vm_size_t, /// Current resident set size in pages. - pub ki_rssize: ::segsz_t, + pub ki_rssize: crate::segsz_t, /// Resident set size before last swap. - pub ki_swrss: ::segsz_t, + pub ki_swrss: crate::segsz_t, /// Text size (pages) XXX. - pub ki_tsize: ::segsz_t, + pub ki_tsize: crate::segsz_t, /// Data size (pages) XXX. - pub ki_dsize: ::segsz_t, + pub ki_dsize: crate::segsz_t, /// Stack size (pages). - pub ki_ssize: ::segsz_t, + pub ki_ssize: crate::segsz_t, /// Exit status for wait & stop signal. - pub ki_xstat: ::u_short, + pub ki_xstat: crate::u_short, /// Accounting flags. - pub ki_acflag: ::u_short, + pub ki_acflag: crate::u_short, /// %cpu for process during `ki_swtime`. - pub ki_pctcpu: ::fixpt_t, + pub ki_pctcpu: crate::fixpt_t, /// Time averaged value of `ki_cpticks`. - pub ki_estcpu: ::u_int, + pub ki_estcpu: crate::u_int, /// Time since last blocked. - pub ki_slptime: ::u_int, + pub ki_slptime: crate::u_int, /// Time swapped in or out. - pub ki_swtime: ::u_int, + pub ki_swtime: crate::u_int, /// Number of copy-on-write faults. - pub ki_cow: ::u_int, + pub ki_cow: crate::u_int, /// Real time in microsec. pub ki_runtime: u64, /// Starting time. - pub ki_start: ::timeval, + pub ki_start: crate::timeval, /// Time used by process children. - pub ki_childtime: ::timeval, + pub ki_childtime: crate::timeval, /// P_* flags. - pub ki_flag: ::c_long, + pub ki_flag: c_long, /// KI_* flags (below). - pub ki_kiflag: ::c_long, + pub ki_kiflag: c_long, /// Kernel trace points. - pub ki_traceflag: ::c_int, + pub ki_traceflag: c_int, /// S* process status. - pub ki_stat: ::c_char, + pub ki_stat: c_char, /// Process "nice" value. pub ki_nice: i8, // signed char /// Process lock (prevent swap) count. - pub ki_lock: ::c_char, + pub ki_lock: c_char, /// Run queue index. - pub ki_rqindex: ::c_char, + pub ki_rqindex: c_char, /// Which cpu we are on. - pub ki_oncpu_old: ::c_uchar, + pub ki_oncpu_old: c_uchar, /// Last cpu we were on. - pub ki_lastcpu_old: ::c_uchar, + pub ki_lastcpu_old: c_uchar, /// Thread name. - pub ki_tdname: [::c_char; ::TDNAMLEN + 1], + pub ki_tdname: [c_char; crate::TDNAMLEN + 1], /// Wchan message. - pub ki_wmesg: [::c_char; ::WMESGLEN + 1], + pub ki_wmesg: [c_char; crate::WMESGLEN + 1], /// Setlogin name. - pub ki_login: [::c_char; ::LOGNAMELEN + 1], + pub ki_login: [c_char; crate::LOGNAMELEN + 1], /// Lock name. - pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1], + pub ki_lockname: [c_char; crate::LOCKNAMELEN + 1], /// Command name. - pub ki_comm: [::c_char; ::COMMLEN + 1], + pub ki_comm: [c_char; crate::COMMLEN + 1], /// Emulation name. - pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1], + pub ki_emul: [c_char; crate::KI_EMULNAMELEN + 1], /// Login class. - pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1], + pub ki_loginclass: [c_char; crate::LOGINCLASSLEN + 1], /// More thread name. - pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], + pub ki_moretdname: [c_char; crate::MAXCOMLEN - crate::TDNAMLEN + 1], /// Spare string space. - pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq + pub ki_sparestrings: [[c_char; 23]; 2], // little hack to allow PartialEq /// Spare room for growth. - pub ki_spareints: [::c_int; ::KI_NSPARE_INT], + pub ki_spareints: [c_int; crate::KI_NSPARE_INT], /// Controlling tty dev. pub ki_tdev: u64, /// Which cpu we are on. - pub ki_oncpu: ::c_int, + pub ki_oncpu: c_int, /// Last cpu we were on. - pub ki_lastcpu: ::c_int, + pub ki_lastcpu: c_int, /// PID of tracing process. - pub ki_tracer: ::c_int, + pub ki_tracer: c_int, /// P2_* flags. - pub ki_flag2: ::c_int, + pub ki_flag2: c_int, /// Default FIB number. - pub ki_fibnum: ::c_int, + pub ki_fibnum: c_int, /// Credential flags. - pub ki_cr_flags: ::u_int, + pub ki_cr_flags: crate::u_int, /// Process jail ID. - pub ki_jid: ::c_int, + pub ki_jid: c_int, /// Number of threads in total. - pub ki_numthreads: ::c_int, + pub ki_numthreads: c_int, /// Thread ID. - pub ki_tid: ::lwpid_t, + pub ki_tid: crate::lwpid_t, /// Process priority. - pub ki_pri: ::priority, + pub ki_pri: crate::priority, /// Process rusage statistics. - pub ki_rusage: ::rusage, + pub ki_rusage: crate::rusage, /// rusage of children processes. - pub ki_rusage_ch: ::rusage, + pub ki_rusage_ch: crate::rusage, // This is normally "struct pcb". /// Kernel virtual addr of pcb. - pub ki_pcb: *mut ::c_void, + pub ki_pcb: *mut c_void, /// Kernel virtual addr of stack. - pub ki_kstack: *mut ::c_void, + pub ki_kstack: *mut c_void, /// User convenience pointer. - pub ki_udata: *mut ::c_void, + pub ki_udata: *mut c_void, // This is normally "struct thread". - pub ki_tdaddr: *mut ::c_void, + 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], + pub ki_pd: *mut c_void, + pub ki_spareptrs: [*mut c_void; crate::KI_NSPARE_PTR], + pub ki_sparelongs: [c_long; crate::KI_NSPARE_LONG], /// PS_* flags. - pub ki_sflag: ::c_long, + pub ki_sflag: c_long, /// kthread flag. - pub ki_tdflags: ::c_long, + pub ki_tdflags: c_long, } 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_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, st_padding0: i16, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, st_padding1: i32, - pub st_rdev: ::dev_t, + pub st_rdev: crate::dev_t, #[cfg(target_arch = "x86")] st_atim_ext: i32, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, #[cfg(target_arch = "x86")] st_mtim_ext: i32, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, #[cfg(target_arch = "x86")] st_ctim_ext: i32, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, #[cfg(target_arch = "x86")] st_btim_ext: i32, - 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_birthtime: crate::time_t, + pub st_birthtime_nsec: c_long, + pub st_size: off_t, + pub st_blocks: crate::blkcnt_t, + pub st_blksize: crate::blksize_t, + pub st_flags: crate::fflags_t, pub st_gen: u64, pub st_spare: [u64; 10], } @@ -269,14 +274,14 @@ s! { s_no_extra_traits! { pub struct dirent { - pub d_fileno: ::ino_t, - pub d_off: ::off_t, + pub d_fileno: crate::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 d_name: [c_char; 256], } pub struct statfs { @@ -296,12 +301,12 @@ s_no_extra_traits! { 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 f_owner: crate::uid_t, + pub f_fsid: crate::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 { @@ -309,10 +314,10 @@ s_no_extra_traits! { 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_mntdir: *mut c_char, + pub vn_type: c_int, pub vn_mode: u16, - pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1], + pub vn_devname: [c_char; crate::SPECNAMELEN as usize + 1], } } @@ -351,8 +356,8 @@ cfg_if! { } } impl Eq for statfs {} - impl ::fmt::Debug for statfs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for statfs { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("statfs") .field("f_bsize", &self.f_bsize) .field("f_iosize", &self.f_iosize) @@ -374,8 +379,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for statfs { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for statfs { + fn hash(&self, state: &mut H) { self.f_version.hash(state); self.f_type.hash(state); self.f_flags.hash(state); @@ -414,8 +419,8 @@ cfg_if! { } } impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent") .field("d_fileno", &self.d_fileno) .field("d_off", &self.d_off) @@ -426,8 +431,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_fileno.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -439,8 +444,8 @@ cfg_if! { 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; + 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 @@ -453,9 +458,9 @@ cfg_if! { } } 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; + impl crate::fmt::Debug for vnstat { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + let self_vn_devname: &[c_char] = &self.vn_devname; f.debug_struct("vnstat") .field("vn_fileid", &self.vn_fileid) @@ -469,9 +474,9 @@ cfg_if! { .finish() } } - impl ::hash::Hash for vnstat { - fn hash(&self, state: &mut H) { - let self_vn_devname: &[::c_char] = &self.vn_devname; + impl crate::hash::Hash for vnstat { + fn hash(&self, state: &mut H) { + let self_vn_devname: &[c_char] = &self.vn_devname; self.vn_fileid.hash(state); self.vn_size.hash(state); @@ -486,28 +491,28 @@ cfg_if! { } } -pub const RAND_MAX: ::c_int = 0x7fff_ffff; -pub const ELAST: ::c_int = 97; +pub const RAND_MAX: c_int = 0x7fff_ffff; +pub const ELAST: c_int = 97; -pub const KF_TYPE_EVENTFD: ::c_int = 13; +pub const KF_TYPE_EVENTFD: c_int = 13; /// max length of devicename -pub const SPECNAMELEN: ::c_int = 255; +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 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; +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; + pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + let major = major as crate::dev_t; + let minor = minor as crate::dev_t; let mut dev = 0; dev |= ((major & 0xffffff00) as dev_t) << 32; dev |= ((major & 0x000000ff) as dev_t) << 8; @@ -518,51 +523,51 @@ safe_f! { } f! { - pub fn major(dev: ::dev_t) -> ::c_int { - (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int + pub fn major(dev: crate::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 + pub fn minor(dev: crate::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 mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; + pub fn freelocale(loc: crate::locale_t); pub fn msgrcv( - msqid: ::c_int, - msgp: *mut ::c_void, - msgsz: ::size_t, - msgtyp: ::c_long, - msgflg: ::c_int, - ) -> ::ssize_t; + 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; + level: crate::cpulevel_t, + which: crate::cpuwhich_t, + id: crate::id_t, + setsize: size_t, + mask: *mut crate::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; + level: crate::cpulevel_t, + which: crate::cpuwhich_t, + id: crate::id_t, + setsize: size_t, + mask: *const crate::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; + 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; + pub fn kvm_kerndisp(kd: *mut crate::kvm_t) -> crate::kssize_t; } cfg_if! { diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs index 01d0b4328da81..2c403114c0305 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs @@ -1,12 +1,14 @@ -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; +use crate::c_int; + +pub const PROC_KPTI_CTL: c_int = crate::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 = crate::PROC_PROCCTL_MD_MIN + 1; +pub const PROC_KPTI_STATUS_ACTIVE: c_int = 0x80000000; +pub const PROC_LA_CTL: c_int = crate::PROC_PROCCTL_MD_MIN + 2; +pub const PROC_LA_STATUS: c_int = crate::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; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index e9bc592ddd61d..6a443d93b6c46 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1,3 +1,7 @@ +use crate::{ + c_int, c_longlong, c_short, c_uchar, c_uint, c_ushort, c_void, cmsghdr, off_t, size_t, ssize_t, +}; + pub type fflags_t = u32; pub type vm_prot_t = u_char; @@ -8,42 +12,42 @@ pub type fixpt_t = __fixpt_t; pub type __lwpid_t = i32; pub type lwpid_t = __lwpid_t; pub type blksize_t = i32; -pub type clockid_t = ::c_int; +pub type clockid_t = c_int; pub type sem_t = _sem; pub type timer_t = *mut __c_anonymous__timer; pub type fsblkcnt_t = u64; pub type fsfilcnt_t = u64; -pub type idtype_t = ::c_uint; +pub type idtype_t = c_uint; -pub type msglen_t = ::c_ulong; -pub type msgqnum_t = ::c_ulong; +pub type msglen_t = c_ulong; +pub type msgqnum_t = c_ulong; -pub type cpulevel_t = ::c_int; -pub type cpuwhich_t = ::c_int; +pub type cpulevel_t = c_int; +pub type cpuwhich_t = c_int; -pub type mqd_t = *mut ::c_void; -pub type posix_spawnattr_t = *mut ::c_void; -pub type posix_spawn_file_actions_t = *mut ::c_void; +pub type mqd_t = *mut c_void; +pub type posix_spawnattr_t = *mut c_void; +pub type posix_spawn_file_actions_t = *mut c_void; pub type pthread_spinlock_t = *mut __c_anonymous_pthread_spinlock; pub type pthread_barrierattr_t = *mut __c_anonymous_pthread_barrierattr; pub type pthread_barrier_t = *mut __c_anonymous_pthread_barrier; -pub type uuid_t = ::uuid; -pub type u_int = ::c_uint; -pub type u_char = ::c_uchar; -pub type u_long = ::c_ulong; -pub type u_short = ::c_ushort; +pub type uuid_t = crate::uuid; +pub type u_int = c_uint; +pub type u_char = c_uchar; +pub type u_long = c_ulong; +pub type u_short = c_ushort; -pub type caddr_t = *mut ::c_char; +pub type caddr_t = *mut c_char; pub type fhandle_t = fhandle; -pub type au_id_t = ::uid_t; -pub type au_asid_t = ::pid_t; +pub type au_id_t = crate::uid_t; +pub type au_asid_t = crate::pid_t; -pub type cpusetid_t = ::c_int; +pub type cpusetid_t = c_int; pub type sctp_assoc_t = u32; @@ -57,8 +61,8 @@ pub enum devstat_support_flags { DEVSTAT_NO_ORDERED_TAGS = 0x02, DEVSTAT_BS_UNAVAILABLE = 0x04, } -impl ::Copy for devstat_support_flags {} -impl ::Clone for devstat_support_flags { +impl Copy for devstat_support_flags {} +impl Clone for devstat_support_flags { fn clone(&self) -> devstat_support_flags { *self } @@ -73,8 +77,8 @@ pub enum devstat_trans_flags { DEVSTAT_FREE = 0x03, } -impl ::Copy for devstat_trans_flags {} -impl ::Clone for devstat_trans_flags { +impl Copy for devstat_trans_flags {} +impl Clone for devstat_trans_flags { fn clone(&self) -> devstat_trans_flags { *self } @@ -88,8 +92,8 @@ pub enum devstat_tag_type { DEVSTAT_TAG_ORDERED = 0x02, DEVSTAT_TAG_NONE = 0x03, } -impl ::Copy for devstat_tag_type {} -impl ::Clone for devstat_tag_type { +impl Copy for devstat_tag_type {} +impl Clone for devstat_tag_type { fn clone(&self) -> devstat_tag_type { *self } @@ -103,8 +107,8 @@ pub enum devstat_match_flags { DEVSTAT_MATCH_IF = 0x02, DEVSTAT_MATCH_PASS = 0x04, } -impl ::Copy for devstat_match_flags {} -impl ::Clone for devstat_match_flags { +impl Copy for devstat_match_flags {} +impl Clone for devstat_match_flags { fn clone(&self) -> devstat_match_flags { *self } @@ -124,8 +128,8 @@ pub enum devstat_priority { DEVSTAT_PRIORITY_ARRAY = 0x120, DEVSTAT_PRIORITY_MAX = 0xfff, } -impl ::Copy for devstat_priority {} -impl ::Clone for devstat_priority { +impl Copy for devstat_priority {} +impl Clone for devstat_priority { fn clone(&self) -> devstat_priority { *self } @@ -156,8 +160,8 @@ pub enum devstat_type_flags { DEVSTAT_TYPE_IF_MASK = 0x0f0, DEVSTAT_TYPE_PASS = 0x100, } -impl ::Copy for devstat_type_flags {} -impl ::Clone for devstat_type_flags { +impl Copy for devstat_type_flags {} +impl Clone for devstat_type_flags { fn clone(&self) -> devstat_type_flags { *self } @@ -213,8 +217,8 @@ pub enum devstat_metric { DSM_TOTAL_BUSY_TIME, DSM_MAX, } -impl ::Copy for devstat_metric {} -impl ::Clone for devstat_metric { +impl Copy for devstat_metric {} +impl Clone for devstat_metric { fn clone(&self) -> devstat_metric { *self } @@ -228,8 +232,8 @@ pub enum devstat_select_mode { DS_SELECT_REMOVE, DS_SELECT_ADDONLY, } -impl ::Copy for devstat_select_mode {} -impl ::Clone for devstat_select_mode { +impl Copy for devstat_select_mode {} +impl Clone for devstat_select_mode { fn clone(&self) -> devstat_select_mode { *self } @@ -237,44 +241,44 @@ impl ::Clone for devstat_select_mode { s! { pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_offset: ::off_t, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - __unused1: [::c_int; 2], - __unused2: *mut ::c_void, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, + pub aio_fildes: c_int, + pub aio_offset: off_t, + pub aio_buf: *mut c_void, + pub aio_nbytes: size_t, + __unused1: [c_int; 2], + __unused2: *mut c_void, + pub aio_lio_opcode: c_int, + pub aio_reqprio: c_int, // unused 3 through 5 are the __aiocb_private structure - __unused3: ::c_long, - __unused4: ::c_long, - __unused5: *mut ::c_void, + __unused3: c_long, + __unused4: c_long, + __unused5: *mut c_void, pub aio_sigevent: sigevent, } pub struct jail { pub version: u32, - pub path: *mut ::c_char, - pub hostname: *mut ::c_char, - pub jailname: *mut ::c_char, - pub ip4s: ::c_uint, - pub ip6s: ::c_uint, - pub ip4: *mut ::in_addr, - pub ip6: *mut ::in6_addr, + pub path: *mut c_char, + pub hostname: *mut c_char, + pub jailname: *mut c_char, + pub ip4s: c_uint, + pub ip6s: c_uint, + pub ip4: *mut crate::in_addr, + pub ip6: *mut crate::in6_addr, } pub struct statvfs { - pub f_bavail: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_blocks: ::fsblkcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_bsize: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_fsid: ::c_ulong, - pub f_namemax: ::c_ulong, + pub f_bavail: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_blocks: crate::fsblkcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_bsize: c_ulong, + pub f_flag: c_ulong, + pub f_frsize: c_ulong, + pub f_fsid: c_ulong, + pub f_namemax: c_ulong, } // internal structure has changed over time @@ -282,98 +286,98 @@ s! { data: [u32; 4], } pub struct sembuf { - pub sem_num: ::c_ushort, - pub sem_op: ::c_short, - pub sem_flg: ::c_short, + pub sem_num: c_ushort, + pub sem_op: c_short, + pub sem_flg: c_short, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - pub msg_cbytes: ::msglen_t, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - 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_perm: crate::ipc_perm, + __unused1: *mut c_void, + __unused2: *mut c_void, + pub msg_cbytes: crate::msglen_t, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + pub msg_stime: crate::time_t, + pub msg_rtime: crate::time_t, + pub msg_ctime: crate::time_t, } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, + pub ss_sp: *mut c_void, + pub ss_size: size_t, + pub ss_flags: c_int, } pub struct mmsghdr { - pub msg_hdr: ::msghdr, - pub msg_len: ::ssize_t, + pub msg_hdr: crate::msghdr, + pub msg_len: ssize_t, } pub struct sockcred { - pub sc_uid: ::uid_t, - pub sc_euid: ::uid_t, - pub sc_gid: ::gid_t, - pub sc_egid: ::gid_t, - pub sc_ngroups: ::c_int, - pub sc_groups: [::gid_t; 1], + pub sc_uid: crate::uid_t, + pub sc_euid: crate::uid_t, + pub sc_gid: crate::gid_t, + pub sc_egid: crate::gid_t, + pub sc_ngroups: c_int, + pub sc_groups: [crate::gid_t; 1], } pub struct ptrace_vm_entry { - pub pve_entry: ::c_int, - pub pve_timestamp: ::c_int, - pub pve_start: ::c_ulong, - pub pve_end: ::c_ulong, - pub pve_offset: ::c_ulong, - pub pve_prot: ::c_uint, - pub pve_pathlen: ::c_uint, - pub pve_fileid: ::c_long, + pub pve_entry: c_int, + pub pve_timestamp: c_int, + pub pve_start: c_ulong, + pub pve_end: c_ulong, + pub pve_offset: c_ulong, + pub pve_prot: c_uint, + pub pve_pathlen: c_uint, + pub pve_fileid: c_long, pub pve_fsid: u32, - pub pve_path: *mut ::c_char, + pub pve_path: *mut c_char, } pub struct ptrace_lwpinfo { pub pl_lwpid: lwpid_t, - pub pl_event: ::c_int, - pub pl_flags: ::c_int, - pub pl_sigmask: ::sigset_t, - pub pl_siglist: ::sigset_t, - pub pl_siginfo: ::siginfo_t, - pub pl_tdname: [::c_char; ::MAXCOMLEN as usize + 1], - pub pl_child_pid: ::pid_t, - pub pl_syscall_code: ::c_uint, - pub pl_syscall_narg: ::c_uint, + pub pl_event: c_int, + pub pl_flags: c_int, + pub pl_sigmask: crate::sigset_t, + pub pl_siglist: crate::sigset_t, + pub pl_siginfo: crate::siginfo_t, + pub pl_tdname: [c_char; crate::MAXCOMLEN as usize + 1], + pub pl_child_pid: crate::pid_t, + pub pl_syscall_code: c_uint, + pub pl_syscall_narg: c_uint, } pub struct ptrace_sc_ret { - pub sr_retval: [::register_t; 2], - pub sr_error: ::c_int, + pub sr_retval: [crate::register_t; 2], + pub sr_error: c_int, } pub struct ptrace_coredump { - pub pc_fd: ::c_int, + pub pc_fd: c_int, pub pc_flags: u32, - pub pc_limit: ::off_t, + pub pc_limit: off_t, } pub struct ptrace_sc_remote { pub pscr_ret: ptrace_sc_ret, - pub pscr_syscall: ::c_uint, - pub pscr_nargs: ::c_uint, - pub pscr_args: *mut ::register_t, + pub pscr_syscall: c_uint, + pub pscr_nargs: c_uint, + pub pscr_args: *mut crate::register_t, } pub struct cpuset_t { #[cfg(all(any(freebsd15, freebsd14), target_pointer_width = "64"))] - __bits: [::c_long; 16], + __bits: [c_long; 16], #[cfg(all(any(freebsd15, freebsd14), target_pointer_width = "32"))] - __bits: [::c_long; 32], + __bits: [c_long; 32], #[cfg(all(not(any(freebsd15, freebsd14)), target_pointer_width = "64"))] - __bits: [::c_long; 4], + __bits: [c_long; 4], #[cfg(all(not(any(freebsd15, freebsd14)), target_pointer_width = "32"))] - __bits: [::c_long; 8], + __bits: [c_long; 8], } pub struct cap_rights_t { @@ -381,10 +385,10 @@ s! { } pub struct umutex { - m_owner: ::lwpid_t, + m_owner: crate::lwpid_t, m_flags: u32, m_ceilings: [u32; 2], - m_rb_link: ::uintptr_t, + m_rb_link: crate::uintptr_t, #[cfg(target_pointer_width = "32")] m_pad: u32, m_spare: [u32; 2], @@ -411,22 +415,22 @@ s! { } pub struct __c_anonymous_pthread_barrierattr { - pshared: ::c_int, + pshared: c_int, } pub struct __c_anonymous_pthread_barrier { b_lock: umutex, b_cv: ucond, b_cycle: i64, - b_count: ::c_int, - b_waiters: ::c_int, - b_refcount: ::c_int, - b_destroying: ::c_int, + b_count: c_int, + b_waiters: c_int, + b_refcount: c_int, + b_destroying: c_int, } pub struct kinfo_vmentry { - pub kve_structsize: ::c_int, - pub kve_type: ::c_int, + pub kve_structsize: c_int, + pub kve_type: c_int, pub kve_start: u64, pub kve_end: u64, pub kve_offset: u64, @@ -435,13 +439,13 @@ s! { pub kve_vn_fsid_freebsd11: u32, #[cfg(freebsd11)] pub kve_vn_fsid: u32, - pub kve_flags: ::c_int, - pub kve_resident: ::c_int, - pub kve_private_resident: ::c_int, - pub kve_protection: ::c_int, - pub kve_ref_count: ::c_int, - pub kve_shadow_count: ::c_int, - pub kve_vn_type: ::c_int, + pub kve_flags: c_int, + pub kve_resident: c_int, + pub kve_private_resident: c_int, + pub kve_protection: c_int, + pub kve_ref_count: c_int, + pub kve_shadow_count: c_int, + pub kve_vn_type: c_int, pub kve_vn_size: u64, #[cfg(not(freebsd11))] pub kve_vn_rdev_freebsd11: u32, @@ -454,10 +458,10 @@ s! { #[cfg(not(freebsd11))] pub kve_vn_rdev: u64, #[cfg(not(freebsd11))] - _kve_is_spare: [::c_int; 8], + _kve_is_spare: [c_int; 8], #[cfg(freebsd11)] - _kve_is_spare: [::c_int; 12], - pub kve_path: [[::c_char; 32]; 32], + _kve_is_spare: [c_int; 12], + pub kve_path: [[c_char; 32]; 32], } pub struct __c_anonymous_filestat { @@ -465,15 +469,15 @@ s! { } pub struct filestat { - pub fs_type: ::c_int, - pub fs_flags: ::c_int, - pub fs_fflags: ::c_int, - pub fs_uflags: ::c_int, - pub fs_fd: ::c_int, - pub fs_ref_count: ::c_int, - pub fs_offset: ::off_t, - pub fs_typedep: *mut ::c_void, - pub fs_path: *mut ::c_char, + pub fs_type: c_int, + pub fs_flags: c_int, + pub fs_fflags: c_int, + pub fs_uflags: c_int, + pub fs_fd: c_int, + pub fs_ref_count: c_int, + pub fs_offset: off_t, + pub fs_typedep: *mut c_void, + pub fs_path: *mut c_char, pub next: __c_anonymous_filestat, pub fs_cap_rights: cap_rights_t, } @@ -484,22 +488,22 @@ s! { } pub struct procstat { - pub tpe: ::c_int, - pub kd: ::uintptr_t, - pub vmentries: *mut ::c_void, - pub files: *mut ::c_void, - pub argv: *mut ::c_void, - pub envv: *mut ::c_void, - pub core: ::uintptr_t, + pub tpe: c_int, + pub kd: crate::uintptr_t, + pub vmentries: *mut c_void, + pub files: *mut c_void, + pub argv: *mut c_void, + pub envv: *mut c_void, + pub core: crate::uintptr_t, } pub struct itimerspec { - pub it_interval: ::timespec, - pub it_value: ::timespec, + pub it_interval: crate::timespec, + pub it_value: crate::timespec, } pub struct __c_anonymous__timer { - _priv: [::c_int; 3], + _priv: [c_int; 3], } /// Used to hold a copy of the command line, if it had a sane length. @@ -509,7 +513,7 @@ s! { /// Length. pub ar_length: u_int, /// Arguments. - pub ar_args: [::c_uchar; 1], + pub ar_args: [c_uchar; 1], } pub struct priority { @@ -524,42 +528,42 @@ s! { } pub struct kvm_swap { - pub ksw_devname: [::c_char; 32], + pub ksw_devname: [c_char; 32], pub ksw_used: u_int, pub ksw_total: u_int, - pub ksw_flags: ::c_int, + pub ksw_flags: c_int, pub ksw_reserved1: u_int, pub ksw_reserved2: u_int, } pub struct nlist { /// symbol name (in memory) - pub n_name: *const ::c_char, + pub n_name: *const c_char, /// type defines - pub n_type: ::c_uchar, + pub n_type: c_uchar, /// "type" and binding information - pub n_other: ::c_char, + pub n_other: c_char, /// used by stab entries - pub n_desc: ::c_short, - pub n_value: ::c_ulong, + pub n_desc: c_short, + pub n_value: c_ulong, } pub struct kvm_nlist { - pub n_name: *const ::c_char, - pub n_type: ::c_uchar, - pub n_value: ::kvaddr_t, + pub n_name: *const c_char, + pub n_type: c_uchar, + pub n_value: crate::kvaddr_t, } pub struct __c_anonymous_sem { - _priv: ::uintptr_t, + _priv: crate::uintptr_t, } pub struct semid_ds { - pub sem_perm: ::ipc_perm, + pub sem_perm: crate::ipc_perm, pub __sem_base: *mut __c_anonymous_sem, - pub sem_nsems: ::c_ushort, - pub sem_otime: ::time_t, - pub sem_ctime: ::time_t, + pub sem_nsems: c_ushort, + pub sem_otime: crate::time_t, + pub sem_ctime: crate::time_t, } pub struct vmtotal { @@ -585,20 +589,20 @@ s! { pub so_addr: u64, pub so_pcb: u64, pub unp_conn: u64, - pub dom_family: ::c_int, - pub proto: ::c_int, - pub so_rcv_sb_state: ::c_int, - pub so_snd_sb_state: ::c_int, + pub dom_family: c_int, + pub proto: c_int, + pub so_rcv_sb_state: c_int, + pub so_snd_sb_state: c_int, /// Socket address. - pub sa_local: ::sockaddr_storage, + pub sa_local: crate::sockaddr_storage, /// Peer address. - pub sa_peer: ::sockaddr_storage, - pub type_: ::c_int, - pub dname: [::c_char; 32], + pub sa_peer: crate::sockaddr_storage, + pub type_: c_int, + pub dname: [c_char; 32], #[cfg(any(freebsd12, freebsd13, freebsd14, freebsd15))] - pub sendq: ::c_uint, + pub sendq: c_uint, #[cfg(any(freebsd12, freebsd13, freebsd14, freebsd15))] - pub recvq: ::c_uint, + pub recvq: c_uint, } pub struct shmstat { @@ -607,8 +611,8 @@ s! { } pub struct spacectl_range { - pub r_offset: ::off_t, - pub r_len: ::off_t, + pub r_offset: off_t, + pub r_len: off_t, } pub struct rusage_ext { @@ -622,173 +626,173 @@ s! { } pub struct if_clonereq { - pub ifcr_total: ::c_int, - pub ifcr_count: ::c_int, - pub ifcr_buffer: *mut ::c_char, + pub ifcr_total: c_int, + pub ifcr_count: c_int, + pub ifcr_buffer: *mut c_char, } pub struct if_msghdr { /// to skip over non-understood messages - pub ifm_msglen: ::c_ushort, + pub ifm_msglen: c_ushort, /// future binary compatibility - pub ifm_version: ::c_uchar, + pub ifm_version: c_uchar, /// message type - pub ifm_type: ::c_uchar, + pub ifm_type: c_uchar, /// like rtm_addrs - pub ifm_addrs: ::c_int, + pub ifm_addrs: c_int, /// value of if_flags - pub ifm_flags: ::c_int, + pub ifm_flags: c_int, /// index for associated ifp - pub ifm_index: ::c_ushort, - pub _ifm_spare1: ::c_ushort, + pub ifm_index: c_ushort, + pub _ifm_spare1: c_ushort, /// statistics and other data about if pub ifm_data: if_data, } pub struct if_msghdrl { /// to skip over non-understood messages - pub ifm_msglen: ::c_ushort, + pub ifm_msglen: c_ushort, /// future binary compatibility - pub ifm_version: ::c_uchar, + pub ifm_version: c_uchar, /// message type - pub ifm_type: ::c_uchar, + pub ifm_type: c_uchar, /// like rtm_addrs - pub ifm_addrs: ::c_int, + pub ifm_addrs: c_int, /// value of if_flags - pub ifm_flags: ::c_int, + pub ifm_flags: c_int, /// index for associated ifp - pub ifm_index: ::c_ushort, + pub ifm_index: c_ushort, /// spare space to grow if_index, see if_var.h - pub _ifm_spare1: ::c_ushort, + pub _ifm_spare1: c_ushort, /// length of if_msghdrl incl. if_data - pub ifm_len: ::c_ushort, + pub ifm_len: c_ushort, /// offset of if_data from beginning - pub ifm_data_off: ::c_ushort, - pub _ifm_spare2: ::c_int, + pub ifm_data_off: c_ushort, + pub _ifm_spare2: c_int, /// statistics and other data about if pub ifm_data: if_data, } pub struct ifa_msghdr { /// to skip over non-understood messages - pub ifam_msglen: ::c_ushort, + pub ifam_msglen: c_ushort, /// future binary compatibility - pub ifam_version: ::c_uchar, + pub ifam_version: c_uchar, /// message type - pub ifam_type: ::c_uchar, + pub ifam_type: c_uchar, /// like rtm_addrs - pub ifam_addrs: ::c_int, + pub ifam_addrs: c_int, /// value of ifa_flags - pub ifam_flags: ::c_int, + pub ifam_flags: c_int, /// index for associated ifp - pub ifam_index: ::c_ushort, - pub _ifam_spare1: ::c_ushort, + pub ifam_index: c_ushort, + pub _ifam_spare1: c_ushort, /// value of ifa_ifp->if_metric - pub ifam_metric: ::c_int, + pub ifam_metric: c_int, } pub struct ifa_msghdrl { /// to skip over non-understood messages - pub ifam_msglen: ::c_ushort, + pub ifam_msglen: c_ushort, /// future binary compatibility - pub ifam_version: ::c_uchar, + pub ifam_version: c_uchar, /// message type - pub ifam_type: ::c_uchar, + pub ifam_type: c_uchar, /// like rtm_addrs - pub ifam_addrs: ::c_int, + pub ifam_addrs: c_int, /// value of ifa_flags - pub ifam_flags: ::c_int, + pub ifam_flags: c_int, /// index for associated ifp - pub ifam_index: ::c_ushort, + pub ifam_index: c_ushort, /// spare space to grow if_index, see if_var.h - pub _ifam_spare1: ::c_ushort, + pub _ifam_spare1: c_ushort, /// length of ifa_msghdrl incl. if_data - pub ifam_len: ::c_ushort, + pub ifam_len: c_ushort, /// offset of if_data from beginning - pub ifam_data_off: ::c_ushort, + pub ifam_data_off: c_ushort, /// value of ifa_ifp->if_metric - pub ifam_metric: ::c_int, + pub ifam_metric: c_int, /// statistics and other data about if or address pub ifam_data: if_data, } pub struct ifma_msghdr { /// to skip over non-understood messages - pub ifmam_msglen: ::c_ushort, + pub ifmam_msglen: c_ushort, /// future binary compatibility - pub ifmam_version: ::c_uchar, + pub ifmam_version: c_uchar, /// message type - pub ifmam_type: ::c_uchar, + pub ifmam_type: c_uchar, /// like rtm_addrs - pub ifmam_addrs: ::c_int, + pub ifmam_addrs: c_int, /// value of ifa_flags - pub ifmam_flags: ::c_int, + pub ifmam_flags: c_int, /// index for associated ifp - pub ifmam_index: ::c_ushort, - pub _ifmam_spare1: ::c_ushort, + pub ifmam_index: c_ushort, + pub _ifmam_spare1: c_ushort, } pub struct if_announcemsghdr { /// to skip over non-understood messages - pub ifan_msglen: ::c_ushort, + pub ifan_msglen: c_ushort, /// future binary compatibility - pub ifan_version: ::c_uchar, + pub ifan_version: c_uchar, /// message type - pub ifan_type: ::c_uchar, + pub ifan_type: c_uchar, /// index for associated ifp - pub ifan_index: ::c_ushort, + pub ifan_index: c_ushort, /// if name, e.g. "en0" - pub ifan_name: [::c_char; ::IFNAMSIZ as usize], + pub ifan_name: [c_char; crate::IFNAMSIZ as usize], /// what type of announcement - pub ifan_what: ::c_ushort, + pub ifan_what: c_ushort, } pub struct ifreq_buffer { - pub length: ::size_t, - pub buffer: *mut ::c_void, + pub length: size_t, + pub buffer: *mut c_void, } pub struct ifaliasreq { /// if name, e.g. "en0" - pub ifra_name: [::c_char; ::IFNAMSIZ as usize], - pub ifra_addr: ::sockaddr, - pub ifra_broadaddr: ::sockaddr, - pub ifra_mask: ::sockaddr, - pub ifra_vhid: ::c_int, + pub ifra_name: [c_char; crate::IFNAMSIZ as usize], + pub ifra_addr: crate::sockaddr, + pub ifra_broadaddr: crate::sockaddr, + pub ifra_mask: crate::sockaddr, + pub ifra_vhid: c_int, } /// 9.x compat pub struct oifaliasreq { /// if name, e.g. "en0" - pub ifra_name: [::c_char; ::IFNAMSIZ as usize], - pub ifra_addr: ::sockaddr, - pub ifra_broadaddr: ::sockaddr, - pub ifra_mask: ::sockaddr, + pub ifra_name: [c_char; crate::IFNAMSIZ as usize], + pub ifra_addr: crate::sockaddr, + pub ifra_broadaddr: crate::sockaddr, + pub ifra_mask: crate::sockaddr, } pub struct ifmediareq { /// if name, e.g. "en0" - pub ifm_name: [::c_char; ::IFNAMSIZ as usize], + pub ifm_name: [c_char; crate::IFNAMSIZ as usize], /// current media options - pub ifm_current: ::c_int, + pub ifm_current: c_int, /// don't care mask - pub ifm_mask: ::c_int, + pub ifm_mask: c_int, /// media status - pub ifm_status: ::c_int, + pub ifm_status: c_int, /// active options - pub ifm_active: ::c_int, + pub ifm_active: c_int, /// # entries in ifm_ulist array - pub ifm_count: ::c_int, + pub ifm_count: c_int, /// media words - pub ifm_ulist: *mut ::c_int, + pub ifm_ulist: *mut c_int, } pub struct ifdrv { /// if name, e.g. "en0" - pub ifd_name: [::c_char; ::IFNAMSIZ as usize], - pub ifd_cmd: ::c_ulong, - pub ifd_len: ::size_t, - pub ifd_data: *mut ::c_void, + pub ifd_name: [c_char; crate::IFNAMSIZ as usize], + pub ifd_cmd: c_ulong, + pub ifd_len: size_t, + pub ifd_data: *mut c_void, } pub struct ifi2creq { @@ -806,7 +810,7 @@ s! { pub struct ifrsshash { /// if name, e.g. "en0" - pub ifrh_name: [::c_char; ::IFNAMSIZ as usize], + pub ifrh_name: [c_char; crate::IFNAMSIZ as usize], /// RSS_FUNC_ pub ifrh_func: u8, pub ifrh_spare0: u8, @@ -817,19 +821,19 @@ s! { pub struct ifmibdata { /// name of interface - pub ifmd_name: [::c_char; ::IFNAMSIZ as usize], + pub ifmd_name: [c_char; crate::IFNAMSIZ as usize], /// number of promiscuous listeners - pub ifmd_pcount: ::c_int, + pub ifmd_pcount: c_int, /// interface flags - pub ifmd_flags: ::c_int, + pub ifmd_flags: c_int, /// instantaneous length of send queue - pub ifmd_snd_len: ::c_int, + pub ifmd_snd_len: c_int, /// maximum length of send queue - pub ifmd_snd_maxlen: ::c_int, + pub ifmd_snd_maxlen: c_int, /// number of drops in send queue - pub ifmd_snd_drops: ::c_int, + pub ifmd_snd_drops: c_int, /// for future expansion - pub ifmd_filler: [::c_int; 4], + pub ifmd_filler: [c_int; 4], /// generic information and statistics pub ifmd_data: if_data, } @@ -859,31 +863,31 @@ s! { } pub struct fid { - pub fid_len: ::c_ushort, - pub fid_data0: ::c_ushort, - pub fid_data: [::c_char; ::MAXFIDSZ as usize], + pub fid_len: c_ushort, + pub fid_data0: c_ushort, + pub fid_data: [c_char; crate::MAXFIDSZ as usize], } pub struct fhandle { - pub fh_fsid: ::fsid_t, + pub fh_fsid: crate::fsid_t, pub fh_fid: fid, } pub struct bintime { - pub sec: ::time_t, + pub sec: crate::time_t, pub frac: u64, } pub struct clockinfo { /// clock frequency - pub hz: ::c_int, + pub hz: c_int, /// micro-seconds per hz tick - pub tick: ::c_int, - pub spare: ::c_int, + pub tick: c_int, + pub spare: c_int, /// statistics clock frequency - pub stathz: ::c_int, + pub stathz: c_int, /// profiling clock frequency - pub profhz: ::c_int, + pub profhz: c_int, } pub struct __c_anonymous_stailq_entry_devstat { @@ -892,20 +896,20 @@ s! { pub struct devstat { /// Update sequence - pub sequence0: ::u_int, + pub sequence0: crate::u_int, /// Allocated entry - pub allocated: ::c_int, + pub allocated: c_int, /// started ops - pub start_count: ::u_int, + pub start_count: crate::u_int, /// completed ops - pub end_count: ::u_int, + pub end_count: crate::u_int, /// busy time unaccounted for since this time pub busy_from: bintime, pub dev_links: __c_anonymous_stailq_entry_devstat, /// Devstat device number. pub device_number: u32, - pub device_name: [::c_char; DEVSTAT_NAME_LEN as usize], - pub unit_number: ::c_int, + pub device_name: [c_char; DEVSTAT_NAME_LEN as usize], + pub unit_number: c_int, pub bytes: [u64; DEVSTAT_N_TRANS_FLAGS as usize], pub operations: [u64; DEVSTAT_N_TRANS_FLAGS as usize], pub duration: [bintime; DEVSTAT_N_TRANS_FLAGS as usize], @@ -923,58 +927,58 @@ s! { /// Controls list pos. pub priority: devstat_priority, /// Identification for GEOM nodes - pub id: *const ::c_void, + pub id: *const c_void, /// Update sequence - pub sequence1: ::u_int, + pub sequence1: crate::u_int, } pub struct devstat_match { pub match_fields: devstat_match_flags, pub device_type: devstat_type_flags, - pub num_match_categories: ::c_int, + pub num_match_categories: c_int, } pub struct devstat_match_table { - pub match_str: *const ::c_char, + pub match_str: *const c_char, pub type_: devstat_type_flags, pub match_field: devstat_match_flags, } pub struct device_selection { pub device_number: u32, - pub device_name: [::c_char; DEVSTAT_NAME_LEN as usize], - pub unit_number: ::c_int, - pub selected: ::c_int, + pub device_name: [c_char; DEVSTAT_NAME_LEN as usize], + pub unit_number: c_int, + pub selected: c_int, pub bytes: u64, - pub position: ::c_int, + pub position: c_int, } pub struct devinfo { pub devices: *mut devstat, pub mem_ptr: *mut u8, - pub generation: ::c_long, - pub numdevs: ::c_int, + pub generation: c_long, + pub numdevs: c_int, } pub struct sockcred2 { - pub sc_version: ::c_int, - pub sc_pid: ::pid_t, - pub sc_uid: ::uid_t, - pub sc_euid: ::uid_t, - pub sc_gid: ::gid_t, - pub sc_egid: ::gid_t, - pub sc_ngroups: ::c_int, - pub sc_groups: [::gid_t; 1], + pub sc_version: c_int, + pub sc_pid: crate::pid_t, + pub sc_uid: crate::uid_t, + pub sc_euid: crate::uid_t, + pub sc_gid: crate::gid_t, + pub sc_egid: crate::gid_t, + pub sc_ngroups: c_int, + pub sc_groups: [crate::gid_t; 1], } pub struct ifconf { - pub ifc_len: ::c_int, + pub ifc_len: c_int, pub ifc_ifcu: __c_anonymous_ifc_ifcu, } pub struct au_mask_t { - pub am_success: ::c_uint, - pub am_failure: ::c_uint, + pub am_success: c_uint, + pub am_failure: c_uint, } pub struct au_tid_t { @@ -983,19 +987,19 @@ s! { } pub struct auditinfo_t { - pub ai_auid: ::au_id_t, - pub ai_mask: ::au_mask_t, + pub ai_auid: crate::au_id_t, + pub ai_mask: crate::au_mask_t, pub ai_termid: au_tid_t, - pub ai_asid: ::au_asid_t, + pub ai_asid: crate::au_asid_t, } pub struct tcp_fastopen { - pub enable: ::c_int, - pub psk: [u8; ::TCP_FASTOPEN_PSK_LEN as usize], + pub enable: c_int, + pub psk: [u8; crate::TCP_FASTOPEN_PSK_LEN as usize], } pub struct tcp_function_set { - pub function_set_name: [::c_char; ::TCP_FUNCTION_NAME_LEN_MAX as usize], + pub function_set_name: [c_char; crate::TCP_FUNCTION_NAME_LEN_MAX as usize], pub pcbcnt: u32, } @@ -1080,33 +1084,33 @@ s! { } pub struct _umtx_time { - pub _timeout: ::timespec, + pub _timeout: crate::timespec, pub _flags: u32, pub _clockid: u32, } pub struct shm_largepage_conf { - pub psind: ::c_int, - pub alloc_policy: ::c_int, - __pad: [::c_int; 10], + pub psind: c_int, + pub alloc_policy: c_int, + __pad: [c_int; 10], } pub struct memory_type { - __priva: [::uintptr_t; 32], - __privb: [::uintptr_t; 26], + __priva: [crate::uintptr_t; 32], + __privb: [crate::uintptr_t; 26], } pub struct memory_type_list { - __priv: [::uintptr_t; 2], + __priv: [crate::uintptr_t; 2], } pub struct pidfh { - __priva: [[::uintptr_t; 32]; 8], - __privb: [::uintptr_t; 2], + __priva: [[crate::uintptr_t; 32]; 8], + __privb: [crate::uintptr_t; 2], } pub struct sctp_event { - pub se_assoc_id: ::sctp_assoc_t, + pub se_assoc_id: crate::sctp_assoc_t, pub se_type: u16, pub se_on: u8, } @@ -1141,7 +1145,7 @@ s! { pub sinfo_timetolive: u32, pub sinfo_tsn: u32, pub sinfo_cumtsn: u32, - pub sinfo_assoc_id: ::sctp_assoc_t, + pub sinfo_assoc_id: crate::sctp_assoc_t, pub sinfo_keynumber: u16, pub sinfo_keynumber_valid: u16, pub __reserve_pad: [[u8; 23]; 4], @@ -1156,7 +1160,7 @@ s! { pub sinfo_timetolive: u32, pub sinfo_tsn: u32, pub sinfo_cumtsn: u32, - pub sinfo_assoc_id: ::sctp_assoc_t, + pub sinfo_assoc_id: crate::sctp_assoc_t, pub serinfo_next_flags: u16, pub serinfo_next_stream: u16, pub serinfo_next_aid: u32, @@ -1172,7 +1176,7 @@ s! { pub snd_flags: u16, pub snd_ppid: u32, pub snd_context: u32, - pub snd_assoc_id: ::sctp_assoc_t, + pub snd_assoc_id: crate::sctp_assoc_t, } pub struct sctp_prinfo { @@ -1183,7 +1187,7 @@ s! { pub struct sctp_default_prinfo { pub pr_policy: u16, pub pr_value: u32, - pub pr_assoc_id: ::sctp_assoc_t, + pub pr_assoc_id: crate::sctp_assoc_t, } pub struct sctp_authinfo { @@ -1198,7 +1202,7 @@ s! { pub rcv_tsn: u32, pub rcv_cumtsn: u32, pub rcv_context: u32, - pub rcv_assoc_id: ::sctp_assoc_t, + pub rcv_assoc_id: crate::sctp_assoc_t, } pub struct sctp_nxtinfo { @@ -1206,7 +1210,7 @@ s! { pub nxt_flags: u16, pub nxt_ppid: u32, pub nxt_length: u32, - pub nxt_assoc_id: ::sctp_assoc_t, + pub nxt_assoc_id: crate::sctp_assoc_t, } pub struct sctp_recvv_rn { @@ -1242,7 +1246,7 @@ s! { } pub struct sctp_sockstat { - pub ss_assoc_id: ::sctp_assoc_t, + pub ss_assoc_id: crate::sctp_assoc_t, pub ss_total_sndbuf: u32, pub ss_total_recv_buf: u32, } @@ -1255,7 +1259,7 @@ s! { pub sac_error: u16, pub sac_outbound_streams: u16, pub sac_inbound_streams: u16, - pub sac_assoc_id: ::sctp_assoc_t, + pub sac_assoc_id: crate::sctp_assoc_t, pub sac_info: [u8; 0], } @@ -1263,10 +1267,10 @@ s! { pub spc_type: u16, pub spc_flags: u16, pub spc_length: u32, - pub spc_aaddr: ::sockaddr_storage, + pub spc_aaddr: crate::sockaddr_storage, pub spc_state: u32, pub spc_error: u32, - pub spc_assoc_id: ::sctp_assoc_t, + pub spc_assoc_id: crate::sctp_assoc_t, } pub struct sctp_remote_error { @@ -1274,7 +1278,7 @@ s! { pub sre_flags: u16, pub sre_length: u32, pub sre_error: u16, - pub sre_assoc_id: ::sctp_assoc_t, + pub sre_assoc_id: crate::sctp_assoc_t, pub sre_data: [u8; 0], } @@ -1284,7 +1288,7 @@ s! { pub ssfe_length: u32, pub ssfe_error: u32, pub ssfe_info: sctp_sndinfo, - pub ssfe_assoc_id: ::sctp_assoc_t, + pub ssfe_assoc_id: crate::sctp_assoc_t, pub ssfe_data: [u8; 0], } @@ -1292,7 +1296,7 @@ s! { pub sse_type: u16, pub sse_flags: u16, pub sse_length: u32, - pub sse_assoc_id: ::sctp_assoc_t, + pub sse_assoc_id: crate::sctp_assoc_t, } pub struct sctp_adaptation_event { @@ -1300,7 +1304,7 @@ s! { pub sai_flags: u16, pub sai_length: u32, pub sai_adaptation_ind: u32, - pub sai_assoc_id: ::sctp_assoc_t, + pub sai_assoc_id: crate::sctp_assoc_t, } pub struct sctp_setadaptation { @@ -1314,21 +1318,21 @@ s! { pub pdapi_indication: u32, pub pdapi_stream: u16, pub pdapi_seq: u16, - pub pdapi_assoc_id: ::sctp_assoc_t, + pub pdapi_assoc_id: crate::sctp_assoc_t, } pub struct sctp_sender_dry_event { pub sender_dry_type: u16, pub sender_dry_flags: u16, pub sender_dry_length: u32, - pub sender_dry_assoc_id: ::sctp_assoc_t, + pub sender_dry_assoc_id: crate::sctp_assoc_t, } pub struct sctp_stream_reset_event { pub strreset_type: u16, pub strreset_flags: u16, pub strreset_length: u32, - pub strreset_assoc_id: ::sctp_assoc_t, + pub strreset_assoc_id: crate::sctp_assoc_t, pub strreset_stream_list: [u16; 0], } @@ -1336,7 +1340,7 @@ s! { pub strchange_type: u16, pub strchange_flags: u16, pub strchange_length: u32, - pub strchange_assoc_id: ::sctp_assoc_t, + pub strchange_assoc_id: crate::sctp_assoc_t, pub strchange_instrms: u16, pub strchange_outstrms: u16, } @@ -1344,58 +1348,58 @@ s! { s_no_extra_traits! { pub struct utmpx { - pub ut_type: ::c_short, - pub ut_tv: ::timeval, - pub ut_id: [::c_char; 8], - pub ut_pid: ::pid_t, - pub ut_user: [::c_char; 32], - pub ut_line: [::c_char; 16], - pub ut_host: [::c_char; 128], - pub __ut_spare: [::c_char; 64], + pub ut_type: c_short, + pub ut_tv: crate::timeval, + pub ut_id: [c_char; 8], + pub ut_pid: crate::pid_t, + pub ut_user: [c_char; 32], + pub ut_line: [c_char; 16], + pub ut_host: [c_char; 128], + pub __ut_spare: [c_char; 64], } pub union __c_anonymous_cr_pid { - __cr_unused: *mut ::c_void, - pub cr_pid: ::pid_t, + __cr_unused: *mut c_void, + pub cr_pid: crate::pid_t, } pub struct xucred { - pub cr_version: ::c_uint, - pub cr_uid: ::uid_t, - pub cr_ngroups: ::c_short, - pub cr_groups: [::gid_t; 16], + pub cr_version: c_uint, + pub cr_uid: crate::uid_t, + pub cr_ngroups: c_short, + pub cr_groups: [crate::gid_t; 16], pub cr_pid__c_anonymous_union: __c_anonymous_cr_pid, } pub struct sockaddr_dl { - pub sdl_len: ::c_uchar, - pub sdl_family: ::c_uchar, - pub sdl_index: ::c_ushort, - pub sdl_type: ::c_uchar, - pub sdl_nlen: ::c_uchar, - pub sdl_alen: ::c_uchar, - pub sdl_slen: ::c_uchar, - pub sdl_data: [::c_char; 46], + pub sdl_len: c_uchar, + pub sdl_family: c_uchar, + pub sdl_index: c_ushort, + pub sdl_type: c_uchar, + pub sdl_nlen: c_uchar, + pub sdl_alen: c_uchar, + pub sdl_slen: c_uchar, + pub sdl_data: [c_char; 46], } pub struct mq_attr { - pub mq_flags: ::c_long, - pub mq_maxmsg: ::c_long, - pub mq_msgsize: ::c_long, - pub mq_curmsgs: ::c_long, - __reserved: [::c_long; 4], + pub mq_flags: c_long, + pub mq_maxmsg: c_long, + pub mq_msgsize: c_long, + pub mq_curmsgs: c_long, + __reserved: [c_long; 4], } pub struct sigevent { - pub sigev_notify: ::c_int, - pub sigev_signo: ::c_int, - pub sigev_value: ::sigval, + pub sigev_notify: c_int, + pub sigev_signo: c_int, + pub sigev_value: crate::sigval, //The rest of the structure is actually a union. We expose only //sigev_notify_thread_id because it's the most useful union member. - pub sigev_notify_thread_id: ::lwpid_t, + pub sigev_notify_thread_id: crate::lwpid_t, #[cfg(target_pointer_width = "64")] - __unused1: ::c_int, - __unused2: [::c_long; 7], + __unused1: c_int, + __unused2: [c_long; 7], } pub struct ptsstat { @@ -1403,25 +1407,25 @@ s_no_extra_traits! { pub dev: u64, #[cfg(not(any(freebsd12, freebsd13, freebsd14, freebsd15)))] pub dev: u32, - pub devname: [::c_char; SPECNAMELEN as usize + 1], + pub devname: [c_char; SPECNAMELEN as usize + 1], } pub union __c_anonymous_elf32_auxv_union { - pub a_val: ::c_int, + pub a_val: c_int, } pub struct Elf32_Auxinfo { - pub a_type: ::c_int, + pub a_type: c_int, pub a_un: __c_anonymous_elf32_auxv_union, } pub union __c_anonymous_ifi_epoch { - pub tt: ::time_t, + pub tt: crate::time_t, pub ph: u64, } pub union __c_anonymous_ifi_lastchange { - pub tv: ::timeval, + pub tv: crate::timeval, pub ph: __c_anonymous_ph, } @@ -1479,55 +1483,55 @@ s_no_extra_traits! { } pub union __c_anonymous_ifr_ifru { - pub ifru_addr: ::sockaddr, - pub ifru_dstaddr: ::sockaddr, - pub ifru_broadaddr: ::sockaddr, + pub ifru_addr: crate::sockaddr, + pub ifru_dstaddr: crate::sockaddr, + pub ifru_broadaddr: crate::sockaddr, pub ifru_buffer: ifreq_buffer, - pub ifru_flags: [::c_short; 2], - pub ifru_index: ::c_short, - pub ifru_jid: ::c_int, - pub ifru_metric: ::c_int, - pub ifru_mtu: ::c_int, - pub ifru_phys: ::c_int, - pub ifru_media: ::c_int, - pub ifru_data: ::caddr_t, - pub ifru_cap: [::c_int; 2], - pub ifru_fib: ::c_uint, - pub ifru_vlan_pcp: ::c_uchar, + pub ifru_flags: [c_short; 2], + pub ifru_index: c_short, + pub ifru_jid: c_int, + pub ifru_metric: c_int, + pub ifru_mtu: c_int, + pub ifru_phys: c_int, + pub ifru_media: c_int, + pub ifru_data: crate::caddr_t, + pub ifru_cap: [c_int; 2], + pub ifru_fib: c_uint, + pub ifru_vlan_pcp: c_uchar, } pub struct ifreq { /// if name, e.g. "en0" - pub ifr_name: [::c_char; ::IFNAMSIZ], + pub ifr_name: [c_char; crate::IFNAMSIZ], pub ifr_ifru: __c_anonymous_ifr_ifru, } pub union __c_anonymous_ifc_ifcu { - pub ifcu_buf: ::caddr_t, + pub ifcu_buf: crate::caddr_t, pub ifcu_req: *mut ifreq, } pub struct ifstat { /// if name, e.g. "en0" - pub ifs_name: [::c_char; ::IFNAMSIZ as usize], - pub ascii: [::c_char; ::IFSTATMAX as usize + 1], + pub ifs_name: [c_char; crate::IFNAMSIZ as usize], + pub ascii: [c_char; crate::IFSTATMAX as usize + 1], } pub struct ifrsskey { /// if name, e.g. "en0" - pub ifrk_name: [::c_char; ::IFNAMSIZ as usize], + pub ifrk_name: [c_char; crate::IFNAMSIZ as usize], /// RSS_FUNC_ pub ifrk_func: u8, pub ifrk_spare0: u8, pub ifrk_keylen: u16, - pub ifrk_key: [u8; ::RSS_KEYLEN as usize], + pub ifrk_key: [u8; crate::RSS_KEYLEN as usize], } pub struct ifdownreason { - pub ifdr_name: [::c_char; ::IFNAMSIZ as usize], + pub ifdr_name: [c_char; crate::IFNAMSIZ as usize], pub ifdr_reason: u32, pub ifdr_vendor: u32, - pub ifdr_msg: [::c_char; ::IFDR_MSG_SIZE as usize], + pub ifdr_msg: [c_char; crate::IFDR_MSG_SIZE as usize], } #[repr(packed)] @@ -1613,29 +1617,29 @@ s_no_extra_traits! { } pub struct kinfo_file { - pub kf_structsize: ::c_int, - pub kf_type: ::c_int, - pub kf_fd: ::c_int, - pub kf_ref_count: ::c_int, - pub kf_flags: ::c_int, - _kf_pad0: ::c_int, + pub kf_structsize: c_int, + pub kf_type: c_int, + pub kf_fd: c_int, + pub kf_ref_count: c_int, + pub kf_flags: c_int, + _kf_pad0: c_int, pub kf_offset: i64, _priv: [u8; 304], // FIXME: this is really a giant union pub kf_status: u16, _kf_pad1: u16, - _kf_ispare0: ::c_int, - pub kf_cap_rights: ::cap_rights_t, + _kf_ispare0: c_int, + pub kf_cap_rights: crate::cap_rights_t, _kf_cap_spare: u64, - pub kf_path: [::c_char; ::PATH_MAX as usize], + pub kf_path: [c_char; crate::PATH_MAX as usize], } 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], + pub uc_sigmask: crate::sigset_t, + pub uc_mcontext: crate::mcontext_t, + pub uc_link: *mut crate::ucontext_t, + pub uc_stack: crate::stack_t, + pub uc_flags: c_int, + __spare__: [c_int; 4], } } @@ -1662,8 +1666,8 @@ cfg_if! { } } impl Eq for utmpx {} - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utmpx { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utmpx") .field("ut_type", &self.ut_type) .field("ut_tv", &self.ut_tv) @@ -1676,8 +1680,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_type.hash(state); self.ut_tv.hash(state); self.ut_id.hash(state); @@ -1695,15 +1699,15 @@ cfg_if! { } } impl Eq for __c_anonymous_cr_pid {} - impl ::fmt::Debug for __c_anonymous_cr_pid { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_cr_pid { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("cr_pid") .field("cr_pid", unsafe { &self.cr_pid }) .finish() } } - impl ::hash::Hash for __c_anonymous_cr_pid { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_cr_pid { + fn hash(&self, state: &mut H) { unsafe { self.cr_pid.hash(state) }; } } @@ -1718,8 +1722,8 @@ cfg_if! { } } impl Eq for xucred {} - impl ::fmt::Debug for xucred { - fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result { + impl crate::fmt::Debug for xucred { + fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { f.debug_struct("xucred") .field("cr_version", &self.cr_version) .field("cr_uid", &self.cr_uid) @@ -1729,8 +1733,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for xucred { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for xucred { + fn hash(&self, state: &mut H) { self.cr_version.hash(state); self.cr_uid.hash(state); self.cr_ngroups.hash(state); @@ -1756,8 +1760,8 @@ cfg_if! { } } impl Eq for sockaddr_dl {} - impl ::fmt::Debug for sockaddr_dl { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_dl { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_dl") .field("sdl_len", &self.sdl_len) .field("sdl_family", &self.sdl_family) @@ -1770,8 +1774,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sockaddr_dl { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_dl { + fn hash(&self, state: &mut H) { self.sdl_len.hash(state); self.sdl_family.hash(state); self.sdl_index.hash(state); @@ -1792,8 +1796,8 @@ cfg_if! { } } impl Eq for mq_attr {} - impl ::fmt::Debug for mq_attr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mq_attr { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("mq_attr") .field("mq_flags", &self.mq_flags) .field("mq_maxmsg", &self.mq_maxmsg) @@ -1802,8 +1806,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for mq_attr { + fn hash(&self, state: &mut H) { self.mq_flags.hash(state); self.mq_maxmsg.hash(state); self.mq_msgsize.hash(state); @@ -1820,8 +1824,8 @@ cfg_if! { } } impl Eq for sigevent {} - impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sigevent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sigevent") .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) @@ -1830,8 +1834,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); self.sigev_signo.hash(state); self.sigev_value.hash(state); @@ -1841,16 +1845,16 @@ cfg_if! { impl PartialEq for ptsstat { fn eq(&self, other: &ptsstat) -> bool { - let self_devname: &[::c_char] = &self.devname; - let other_devname: &[::c_char] = &other.devname; + let self_devname: &[c_char] = &self.devname; + let other_devname: &[c_char] = &other.devname; self.dev == other.dev && self_devname == other_devname } } impl Eq for ptsstat {} - impl ::fmt::Debug for ptsstat { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let self_devname: &[::c_char] = &self.devname; + impl crate::fmt::Debug for ptsstat { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + let self_devname: &[c_char] = &self.devname; f.debug_struct("ptsstat") .field("dev", &self.dev) @@ -1858,9 +1862,9 @@ cfg_if! { .finish() } } - impl ::hash::Hash for ptsstat { - fn hash(&self, state: &mut H) { - let self_devname: &[::c_char] = &self.devname; + impl crate::hash::Hash for ptsstat { + fn hash(&self, state: &mut H) { + let self_devname: &[c_char] = &self.devname; self.dev.hash(state); self_devname.hash(state); @@ -1873,8 +1877,8 @@ cfg_if! { } } impl Eq for __c_anonymous_elf32_auxv_union {} - impl ::fmt::Debug for __c_anonymous_elf32_auxv_union { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_elf32_auxv_union { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("a_val") .field("a_val", unsafe { &self.a_val }) .finish() @@ -1886,8 +1890,8 @@ cfg_if! { } } impl Eq for Elf32_Auxinfo {} - impl ::fmt::Debug for Elf32_Auxinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for Elf32_Auxinfo { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("Elf32_Auxinfo") .field("a_type", &self.a_type) .field("a_un", &self.a_un) @@ -1917,8 +1921,8 @@ cfg_if! { } } impl Eq for __c_anonymous_ifr_ifru {} - impl ::fmt::Debug for __c_anonymous_ifr_ifru { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_ifr_ifru { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ifr_ifru") .field("ifru_addr", unsafe { &self.ifru_addr }) .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) @@ -1938,8 +1942,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for __c_anonymous_ifr_ifru { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_ifr_ifru { + fn hash(&self, state: &mut H) { unsafe { self.ifru_addr.hash(state) }; unsafe { self.ifru_dstaddr.hash(state) }; unsafe { self.ifru_broadaddr.hash(state) }; @@ -1964,16 +1968,16 @@ cfg_if! { } } impl Eq for ifreq {} - impl ::fmt::Debug for ifreq { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ifreq { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::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(&self, state: &mut H) { + impl crate::hash::Hash for ifreq { + fn hash(&self, state: &mut H) { self.ifr_name.hash(state); self.ifr_ifru.hash(state); } @@ -1987,8 +1991,8 @@ cfg_if! { } } - impl ::fmt::Debug for __c_anonymous_ifc_ifcu { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_ifc_ifcu { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ifc_ifcu") .field("ifcu_buf", unsafe { &self.ifcu_buf }) .field("ifcu_req", unsafe { &self.ifcu_req }) @@ -1996,8 +2000,8 @@ cfg_if! { } } - impl ::hash::Hash for __c_anonymous_ifc_ifcu { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_ifc_ifcu { + fn hash(&self, state: &mut H) { unsafe { self.ifcu_buf.hash(state) }; unsafe { self.ifcu_req.hash(state) }; } @@ -2005,16 +2009,16 @@ cfg_if! { impl PartialEq for ifstat { fn eq(&self, other: &ifstat) -> bool { - let self_ascii: &[::c_char] = &self.ascii; - let other_ascii: &[::c_char] = &other.ascii; + let self_ascii: &[c_char] = &self.ascii; + let other_ascii: &[c_char] = &other.ascii; self.ifs_name == other.ifs_name && self_ascii == other_ascii } } impl Eq for ifstat {} - impl ::fmt::Debug for ifstat { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let ascii: &[::c_char] = &self.ascii; + impl crate::fmt::Debug for ifstat { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + let ascii: &[c_char] = &self.ascii; f.debug_struct("ifstat") .field("ifs_name", &self.ifs_name) @@ -2022,8 +2026,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for ifstat { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ifstat { + fn hash(&self, state: &mut H) { self.ifs_name.hash(state); self.ascii.hash(state); } @@ -2042,8 +2046,8 @@ cfg_if! { } } impl Eq for ifrsskey {} - impl ::fmt::Debug for ifrsskey { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ifrsskey { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { let ifrk_key: &[u8] = &self.ifrk_key; f.debug_struct("ifrsskey") @@ -2055,8 +2059,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for ifrsskey { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ifrsskey { + fn hash(&self, state: &mut H) { self.ifrk_name.hash(state); self.ifrk_func.hash(state); self.ifrk_spare0.hash(state); @@ -2067,8 +2071,8 @@ cfg_if! { impl PartialEq for ifdownreason { fn eq(&self, other: &ifdownreason) -> bool { - let self_ifdr_msg: &[::c_char] = &self.ifdr_msg; - let other_ifdr_msg: &[::c_char] = &other.ifdr_msg; + let self_ifdr_msg: &[c_char] = &self.ifdr_msg; + let other_ifdr_msg: &[c_char] = &other.ifdr_msg; self.ifdr_name == other.ifdr_name && self.ifdr_reason == other.ifdr_reason @@ -2077,9 +2081,9 @@ cfg_if! { } } impl Eq for ifdownreason {} - impl ::fmt::Debug for ifdownreason { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let ifdr_msg: &[::c_char] = &self.ifdr_msg; + impl crate::fmt::Debug for ifdownreason { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + let ifdr_msg: &[c_char] = &self.ifdr_msg; f.debug_struct("ifdownreason") .field("ifdr_name", &self.ifdr_name) @@ -2089,8 +2093,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for ifdownreason { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ifdownreason { + fn hash(&self, state: &mut H) { self.ifdr_name.hash(state); self.ifdr_reason.hash(state); self.ifdr_vendor.hash(state); @@ -2104,16 +2108,16 @@ cfg_if! { } } impl Eq for __c_anonymous_ifi_epoch {} - impl ::fmt::Debug for __c_anonymous_ifi_epoch { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_ifi_epoch { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("__c_anonymous_ifi_epoch") .field("tt", unsafe { &self.tt }) .field("ph", unsafe { &self.ph }) .finish() } } - impl ::hash::Hash for __c_anonymous_ifi_epoch { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_ifi_epoch { + fn hash(&self, state: &mut H) { unsafe { self.tt.hash(state); self.ph.hash(state); @@ -2127,16 +2131,16 @@ cfg_if! { } } impl Eq for __c_anonymous_ifi_lastchange {} - impl ::fmt::Debug for __c_anonymous_ifi_lastchange { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_ifi_lastchange { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("__c_anonymous_ifi_lastchange") .field("tv", unsafe { &self.tv }) .field("ph", unsafe { &self.ph }) .finish() } } - impl ::hash::Hash for __c_anonymous_ifi_lastchange { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_ifi_lastchange { + fn hash(&self, state: &mut H) { unsafe { self.tv.hash(state); self.ph.hash(state); @@ -2174,8 +2178,8 @@ cfg_if! { } } impl Eq for if_data {} - impl ::fmt::Debug for if_data { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for if_data { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("if_data") .field("ifi_type", &self.ifi_type) .field("ifi_physical", &self.ifi_physical) @@ -2205,8 +2209,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for if_data { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for if_data { + fn hash(&self, state: &mut H) { self.ifi_type.hash(state); self.ifi_physical.hash(state); self.ifi_addrlen.hash(state); @@ -2244,8 +2248,8 @@ cfg_if! { } } impl Eq for sctphdr {} - impl ::fmt::Debug for sctphdr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sctphdr { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sctphdr") .field("src_port", &{ self.src_port }) .field("dest_port", &{ self.dest_port }) @@ -2254,8 +2258,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sctphdr { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sctphdr { + fn hash(&self, state: &mut H) { { self.src_port }.hash(state); { self.dest_port }.hash(state); { self.v_tag }.hash(state); @@ -2271,8 +2275,8 @@ cfg_if! { } } impl Eq for sctp_chunkhdr {} - impl ::fmt::Debug for sctp_chunkhdr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sctp_chunkhdr { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sctp_chunkhdr") .field("chunk_type", &{ self.chunk_type }) .field("chunk_flags", &{ self.chunk_flags }) @@ -2280,8 +2284,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sctp_chunkhdr { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sctp_chunkhdr { + fn hash(&self, state: &mut H) { { self.chunk_type }.hash(state); { self.chunk_flags }.hash(state); { self.chunk_length }.hash(state); @@ -2296,16 +2300,16 @@ cfg_if! { } } impl Eq for sctp_paramhdr {} - impl ::fmt::Debug for sctp_paramhdr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sctp_paramhdr { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sctp_paramhdr") .field("param_type", &{ self.param_type }) .field("param_length", &{ self.param_length }) .finish() } } - impl ::hash::Hash for sctp_paramhdr { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sctp_paramhdr { + fn hash(&self, state: &mut H) { { self.param_type }.hash(state); { self.param_length }.hash(state); } @@ -2322,8 +2326,8 @@ cfg_if! { } } impl Eq for sctp_gen_error_cause {} - impl ::fmt::Debug for sctp_gen_error_cause { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sctp_gen_error_cause { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sctp_gen_error_cause") .field("code", &{ self.code }) .field("length", &{ self.length }) @@ -2331,8 +2335,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sctp_gen_error_cause { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sctp_gen_error_cause { + fn hash(&self, state: &mut H) { { self.code }.hash(state); { self.length }.hash(state); { self.info }.hash(state); @@ -2345,16 +2349,16 @@ cfg_if! { } } impl Eq for sctp_error_cause {} - impl ::fmt::Debug for sctp_error_cause { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sctp_error_cause { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sctp_error_cause") .field("code", &{ self.code }) .field("length", &{ self.length }) .finish() } } - impl ::hash::Hash for sctp_error_cause { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sctp_error_cause { + fn hash(&self, state: &mut H) { { self.code }.hash(state); { self.length }.hash(state); } @@ -2368,16 +2372,16 @@ cfg_if! { } } impl Eq for sctp_error_invalid_stream {} - impl ::fmt::Debug for sctp_error_invalid_stream { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sctp_error_invalid_stream { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sctp_error_invalid_stream") .field("cause", &{ self.cause }) .field("stream_id", &{ self.stream_id }) .finish() } } - impl ::hash::Hash for sctp_error_invalid_stream { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sctp_error_invalid_stream { + fn hash(&self, state: &mut H) { { self.cause }.hash(state); { self.stream_id }.hash(state); } @@ -2394,8 +2398,8 @@ cfg_if! { } } impl Eq for sctp_error_missing_param {} - impl ::fmt::Debug for sctp_error_missing_param { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sctp_error_missing_param { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sctp_error_missing_param") .field("cause", &{ self.cause }) .field("num_missing_params", &{ self.num_missing_params }) @@ -2403,8 +2407,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sctp_error_missing_param { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sctp_error_missing_param { + fn hash(&self, state: &mut H) { { self.cause }.hash(state); { self.num_missing_params }.hash(state); { self.tpe }.hash(state); @@ -2419,16 +2423,16 @@ cfg_if! { } } impl Eq for sctp_error_stale_cookie {} - impl ::fmt::Debug for sctp_error_stale_cookie { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sctp_error_stale_cookie { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sctp_error_stale_cookie") .field("cause", &{ self.cause }) .field("stale_time", &{ self.stale_time }) .finish() } } - impl ::hash::Hash for sctp_error_stale_cookie { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sctp_error_stale_cookie { + fn hash(&self, state: &mut H) { { self.cause }.hash(state); { self.stale_time }.hash(state); } @@ -2440,15 +2444,15 @@ cfg_if! { } } impl Eq for sctp_error_out_of_resource {} - impl ::fmt::Debug for sctp_error_out_of_resource { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sctp_error_out_of_resource { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sctp_error_out_of_resource") .field("cause", &{ self.cause }) .finish() } } - impl ::hash::Hash for sctp_error_out_of_resource { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sctp_error_out_of_resource { + fn hash(&self, state: &mut H) { { self.cause }.hash(state); } } @@ -2459,15 +2463,15 @@ cfg_if! { } } impl Eq for sctp_error_unresolv_addr {} - impl ::fmt::Debug for sctp_error_unresolv_addr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sctp_error_unresolv_addr { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sctp_error_unresolv_addr") .field("cause", &{ self.cause }) .finish() } } - impl ::hash::Hash for sctp_error_unresolv_addr { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sctp_error_unresolv_addr { + fn hash(&self, state: &mut H) { { self.cause }.hash(state); } } @@ -2478,16 +2482,16 @@ cfg_if! { } } impl Eq for sctp_error_unrecognized_chunk {} - impl ::fmt::Debug for sctp_error_unrecognized_chunk { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sctp_error_unrecognized_chunk { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sctp_error_unrecognized_chunk") .field("cause", &{ self.cause }) .field("ch", &{ self.ch }) .finish() } } - impl ::hash::Hash for sctp_error_unrecognized_chunk { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sctp_error_unrecognized_chunk { + fn hash(&self, state: &mut H) { { self.cause }.hash(state); { self.ch }.hash(state); } @@ -2499,16 +2503,16 @@ cfg_if! { } } impl Eq for sctp_error_no_user_data {} - impl ::fmt::Debug for sctp_error_no_user_data { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sctp_error_no_user_data { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sctp_error_no_user_data") .field("cause", &{ self.cause }) .field("tsn", &{ self.tsn }) .finish() } } - impl ::hash::Hash for sctp_error_no_user_data { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sctp_error_no_user_data { + fn hash(&self, state: &mut H) { { self.cause }.hash(state); { self.tsn }.hash(state); } @@ -2520,16 +2524,16 @@ cfg_if! { } } impl Eq for sctp_error_auth_invalid_hmac {} - impl ::fmt::Debug for sctp_error_auth_invalid_hmac { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sctp_error_auth_invalid_hmac { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sctp_error_invalid_hmac") .field("cause", &{ self.cause }) .field("hmac_id", &{ self.hmac_id }) .finish() } } - impl ::hash::Hash for sctp_error_auth_invalid_hmac { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sctp_error_auth_invalid_hmac { + fn hash(&self, state: &mut H) { { self.cause }.hash(state); { self.hmac_id }.hash(state); } @@ -2553,8 +2557,8 @@ cfg_if! { } } impl Eq for kinfo_file {} - impl ::fmt::Debug for kinfo_file { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for kinfo_file { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("kinfo_file") .field("kf_structsize", &self.kf_structsize) .field("kf_type", &self.kf_type) @@ -2568,8 +2572,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for kinfo_file { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for kinfo_file { + fn hash(&self, state: &mut H) { self.kf_structsize.hash(state); self.kf_type.hash(state); self.kf_fd.hash(state); @@ -2582,8 +2586,8 @@ cfg_if! { } } - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ucontext_t") .field("uc_sigmask", &self.uc_sigmask) .field("uc_mcontext", &self.uc_mcontext) @@ -2606,17 +2610,17 @@ pub enum dot3Vendors { dot3VendorDigital = 6, dot3VendorWesternDigital = 7, } -impl ::Copy for dot3Vendors {} -impl ::Clone for dot3Vendors { +impl Copy for dot3Vendors {} +impl Clone for dot3Vendors { fn clone(&self) -> dot3Vendors { *self } } // aio.h -pub const LIO_VECTORED: ::c_int = 4; -pub const LIO_WRITEV: ::c_int = 5; -pub const LIO_READV: ::c_int = 6; +pub const LIO_VECTORED: c_int = 4; +pub const LIO_WRITEV: c_int = 5; +pub const LIO_READV: c_int = 6; // sys/caprights.h pub const CAP_RIGHTS_VERSION_00: i32 = 0; @@ -2742,96 +2746,96 @@ pub const CAP_FCNTL_GETOWN: u32 = 1 << 5; pub const CAP_FCNTL_SETOWN: u32 = 1 << 6; // sys/devicestat.h -pub const DEVSTAT_N_TRANS_FLAGS: ::c_int = 4; -pub const DEVSTAT_NAME_LEN: ::c_int = 16; +pub const DEVSTAT_N_TRANS_FLAGS: c_int = 4; +pub const DEVSTAT_NAME_LEN: c_int = 16; // sys/cpuset.h cfg_if! { if #[cfg(any(freebsd15, freebsd14))] { - pub const CPU_SETSIZE: ::c_int = 1024; + pub const CPU_SETSIZE: c_int = 1024; } else { - pub const CPU_SETSIZE: ::c_int = 256; + pub const CPU_SETSIZE: c_int = 256; } } -pub const SIGEV_THREAD_ID: ::c_int = 4; - -pub const EXTATTR_NAMESPACE_EMPTY: ::c_int = 0; -pub const EXTATTR_NAMESPACE_USER: ::c_int = 1; -pub const EXTATTR_NAMESPACE_SYSTEM: ::c_int = 2; - -pub const PTHREAD_STACK_MIN: ::size_t = MINSIGSTKSZ; -pub const PTHREAD_MUTEX_ADAPTIVE_NP: ::c_int = 4; -pub const PTHREAD_MUTEX_STALLED: ::c_int = 0; -pub const PTHREAD_MUTEX_ROBUST: ::c_int = 1; -pub const SIGSTKSZ: ::size_t = MINSIGSTKSZ + 32768; -pub const SF_NODISKIO: ::c_int = 0x00000001; -pub const SF_MNOWAIT: ::c_int = 0x00000002; -pub const SF_SYNC: ::c_int = 0x00000004; -pub const SF_USER_READAHEAD: ::c_int = 0x00000008; -pub const SF_NOCACHE: ::c_int = 0x00000010; -pub const O_CLOEXEC: ::c_int = 0x00100000; -pub const O_DIRECTORY: ::c_int = 0x00020000; -pub const O_DSYNC: ::c_int = 0x01000000; -pub const O_EMPTY_PATH: ::c_int = 0x02000000; -pub const O_EXEC: ::c_int = 0x00040000; -pub const O_PATH: ::c_int = 0x00400000; -pub const O_RESOLVE_BENEATH: ::c_int = 0x00800000; -pub const O_SEARCH: ::c_int = O_EXEC; -pub const O_TTY_INIT: ::c_int = 0x00080000; -pub const O_VERIFY: ::c_int = 0x00200000; -pub const F_GETLK: ::c_int = 11; -pub const F_SETLK: ::c_int = 12; -pub const F_SETLKW: ::c_int = 13; -pub const ENOTCAPABLE: ::c_int = 93; -pub const ECAPMODE: ::c_int = 94; -pub const ENOTRECOVERABLE: ::c_int = 95; -pub const EOWNERDEAD: ::c_int = 96; -pub const EINTEGRITY: ::c_int = 97; -pub const RLIMIT_NPTS: ::c_int = 11; -pub const RLIMIT_SWAP: ::c_int = 12; -pub const RLIMIT_KQUEUES: ::c_int = 13; -pub const RLIMIT_UMTXP: ::c_int = 14; +pub const SIGEV_THREAD_ID: c_int = 4; + +pub const EXTATTR_NAMESPACE_EMPTY: c_int = 0; +pub const EXTATTR_NAMESPACE_USER: c_int = 1; +pub const EXTATTR_NAMESPACE_SYSTEM: c_int = 2; + +pub const PTHREAD_STACK_MIN: size_t = MINSIGSTKSZ; +pub const PTHREAD_MUTEX_ADAPTIVE_NP: c_int = 4; +pub const PTHREAD_MUTEX_STALLED: c_int = 0; +pub const PTHREAD_MUTEX_ROBUST: c_int = 1; +pub const SIGSTKSZ: size_t = MINSIGSTKSZ + 32768; +pub const SF_NODISKIO: c_int = 0x00000001; +pub const SF_MNOWAIT: c_int = 0x00000002; +pub const SF_SYNC: c_int = 0x00000004; +pub const SF_USER_READAHEAD: c_int = 0x00000008; +pub const SF_NOCACHE: c_int = 0x00000010; +pub const O_CLOEXEC: c_int = 0x00100000; +pub const O_DIRECTORY: c_int = 0x00020000; +pub const O_DSYNC: c_int = 0x01000000; +pub const O_EMPTY_PATH: c_int = 0x02000000; +pub const O_EXEC: c_int = 0x00040000; +pub const O_PATH: c_int = 0x00400000; +pub const O_RESOLVE_BENEATH: c_int = 0x00800000; +pub const O_SEARCH: c_int = O_EXEC; +pub const O_TTY_INIT: c_int = 0x00080000; +pub const O_VERIFY: c_int = 0x00200000; +pub const F_GETLK: c_int = 11; +pub const F_SETLK: c_int = 12; +pub const F_SETLKW: c_int = 13; +pub const ENOTCAPABLE: c_int = 93; +pub const ECAPMODE: c_int = 94; +pub const ENOTRECOVERABLE: c_int = 95; +pub const EOWNERDEAD: c_int = 96; +pub const EINTEGRITY: c_int = 97; +pub const RLIMIT_NPTS: c_int = 11; +pub const RLIMIT_SWAP: c_int = 12; +pub const RLIMIT_KQUEUES: c_int = 13; +pub const RLIMIT_UMTXP: c_int = 14; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIM_NLIMITS: ::rlim_t = 15; -pub const RLIM_SAVED_MAX: ::rlim_t = ::RLIM_INFINITY; -pub const RLIM_SAVED_CUR: ::rlim_t = ::RLIM_INFINITY; - -pub const CP_USER: ::c_int = 0; -pub const CP_NICE: ::c_int = 1; -pub const CP_SYS: ::c_int = 2; -pub const CP_INTR: ::c_int = 3; -pub const CP_IDLE: ::c_int = 4; -pub const CPUSTATES: ::c_int = 5; - -pub const NI_NOFQDN: ::c_int = 0x00000001; -pub const NI_NUMERICHOST: ::c_int = 0x00000002; -pub const NI_NAMEREQD: ::c_int = 0x00000004; -pub const NI_NUMERICSERV: ::c_int = 0x00000008; -pub const NI_DGRAM: ::c_int = 0x00000010; -pub const NI_NUMERICSCOPE: ::c_int = 0x00000020; - -pub const XU_NGROUPS: ::c_int = 16; - -pub const Q_GETQUOTA: ::c_int = 0x700; -pub const Q_SETQUOTA: ::c_int = 0x800; - -pub const MAP_GUARD: ::c_int = 0x00002000; -pub const MAP_EXCL: ::c_int = 0x00004000; -pub const MAP_PREFAULT_READ: ::c_int = 0x00040000; -pub const MAP_ALIGNMENT_SHIFT: ::c_int = 24; -pub const MAP_ALIGNMENT_MASK: ::c_int = 0xff << MAP_ALIGNMENT_SHIFT; -pub const MAP_ALIGNED_SUPER: ::c_int = 1 << MAP_ALIGNMENT_SHIFT; - -pub const POSIX_FADV_NORMAL: ::c_int = 0; -pub const POSIX_FADV_RANDOM: ::c_int = 1; -pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_FADV_WILLNEED: ::c_int = 3; -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; - -pub const POLLINIGNEOF: ::c_short = 0x2000; -pub const POLLRDHUP: ::c_short = 0x4000; +pub const RLIM_NLIMITS: crate::rlim_t = 15; +pub const RLIM_SAVED_MAX: crate::rlim_t = crate::RLIM_INFINITY; +pub const RLIM_SAVED_CUR: crate::rlim_t = crate::RLIM_INFINITY; + +pub const CP_USER: c_int = 0; +pub const CP_NICE: c_int = 1; +pub const CP_SYS: c_int = 2; +pub const CP_INTR: c_int = 3; +pub const CP_IDLE: c_int = 4; +pub const CPUSTATES: c_int = 5; + +pub const NI_NOFQDN: c_int = 0x00000001; +pub const NI_NUMERICHOST: c_int = 0x00000002; +pub const NI_NAMEREQD: c_int = 0x00000004; +pub const NI_NUMERICSERV: c_int = 0x00000008; +pub const NI_DGRAM: c_int = 0x00000010; +pub const NI_NUMERICSCOPE: c_int = 0x00000020; + +pub const XU_NGROUPS: c_int = 16; + +pub const Q_GETQUOTA: c_int = 0x700; +pub const Q_SETQUOTA: c_int = 0x800; + +pub const MAP_GUARD: c_int = 0x00002000; +pub const MAP_EXCL: c_int = 0x00004000; +pub const MAP_PREFAULT_READ: c_int = 0x00040000; +pub const MAP_ALIGNMENT_SHIFT: c_int = 24; +pub const MAP_ALIGNMENT_MASK: c_int = 0xff << MAP_ALIGNMENT_SHIFT; +pub const MAP_ALIGNED_SUPER: c_int = 1 << MAP_ALIGNMENT_SHIFT; + +pub const POSIX_FADV_NORMAL: c_int = 0; +pub const POSIX_FADV_RANDOM: c_int = 1; +pub const POSIX_FADV_SEQUENTIAL: c_int = 2; +pub const POSIX_FADV_WILLNEED: c_int = 3; +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; + +pub const POLLINIGNEOF: c_short = 0x2000; +pub const POLLRDHUP: c_short = 0x4000; pub const EVFILT_READ: i16 = -1; pub const EVFILT_WRITE: i16 = -2; @@ -2900,648 +2904,648 @@ pub const NOTE_USECONDS: u32 = 0x00000004; pub const NOTE_NSECONDS: u32 = 0x00000008; pub const NOTE_ABSTIME: u32 = 0x00000010; -pub const MADV_PROTECT: ::c_int = 10; +pub const MADV_PROTECT: c_int = 10; #[doc(hidden)] #[deprecated( since = "0.2.72", note = "CTL_UNSPEC is deprecated. Use CTL_SYSCTL instead" )] -pub const CTL_UNSPEC: ::c_int = 0; -pub const CTL_SYSCTL: ::c_int = 0; -pub const CTL_KERN: ::c_int = 1; -pub const CTL_VM: ::c_int = 2; -pub const CTL_VFS: ::c_int = 3; -pub const CTL_NET: ::c_int = 4; -pub const CTL_DEBUG: ::c_int = 5; -pub const CTL_HW: ::c_int = 6; -pub const CTL_MACHDEP: ::c_int = 7; -pub const CTL_USER: ::c_int = 8; -pub const CTL_P1003_1B: ::c_int = 9; +pub const CTL_UNSPEC: c_int = 0; +pub const CTL_SYSCTL: c_int = 0; +pub const CTL_KERN: c_int = 1; +pub const CTL_VM: c_int = 2; +pub const CTL_VFS: c_int = 3; +pub const CTL_NET: c_int = 4; +pub const CTL_DEBUG: c_int = 5; +pub const CTL_HW: c_int = 6; +pub const CTL_MACHDEP: c_int = 7; +pub const CTL_USER: c_int = 8; +pub const CTL_P1003_1B: c_int = 9; // sys/sysctl.h -pub const CTL_MAXNAME: ::c_int = 24; - -pub const CTLTYPE: ::c_int = 0xf; -pub const CTLTYPE_NODE: ::c_int = 1; -pub const CTLTYPE_INT: ::c_int = 2; -pub const CTLTYPE_STRING: ::c_int = 3; -pub const CTLTYPE_S64: ::c_int = 4; -pub const CTLTYPE_OPAQUE: ::c_int = 5; -pub const CTLTYPE_STRUCT: ::c_int = CTLTYPE_OPAQUE; -pub const CTLTYPE_UINT: ::c_int = 6; -pub const CTLTYPE_LONG: ::c_int = 7; -pub const CTLTYPE_ULONG: ::c_int = 8; -pub const CTLTYPE_U64: ::c_int = 9; -pub const CTLTYPE_U8: ::c_int = 0xa; -pub const CTLTYPE_U16: ::c_int = 0xb; -pub const CTLTYPE_S8: ::c_int = 0xc; -pub const CTLTYPE_S16: ::c_int = 0xd; -pub const CTLTYPE_S32: ::c_int = 0xe; -pub const CTLTYPE_U32: ::c_int = 0xf; - -pub const CTLFLAG_RD: ::c_int = 0x80000000; -pub const CTLFLAG_WR: ::c_int = 0x40000000; -pub const CTLFLAG_RW: ::c_int = CTLFLAG_RD | CTLFLAG_WR; -pub const CTLFLAG_DORMANT: ::c_int = 0x20000000; -pub const CTLFLAG_ANYBODY: ::c_int = 0x10000000; -pub const CTLFLAG_SECURE: ::c_int = 0x08000000; -pub const CTLFLAG_PRISON: ::c_int = 0x04000000; -pub const CTLFLAG_DYN: ::c_int = 0x02000000; -pub const CTLFLAG_SKIP: ::c_int = 0x01000000; -pub const CTLMASK_SECURE: ::c_int = 0x00F00000; -pub const CTLFLAG_TUN: ::c_int = 0x00080000; -pub const CTLFLAG_RDTUN: ::c_int = CTLFLAG_RD | CTLFLAG_TUN; -pub const CTLFLAG_RWTUN: ::c_int = CTLFLAG_RW | CTLFLAG_TUN; -pub const CTLFLAG_MPSAFE: ::c_int = 0x00040000; -pub const CTLFLAG_VNET: ::c_int = 0x00020000; -pub const CTLFLAG_DYING: ::c_int = 0x00010000; -pub const CTLFLAG_CAPRD: ::c_int = 0x00008000; -pub const CTLFLAG_CAPWR: ::c_int = 0x00004000; -pub const CTLFLAG_STATS: ::c_int = 0x00002000; -pub const CTLFLAG_NOFETCH: ::c_int = 0x00001000; -pub const CTLFLAG_CAPRW: ::c_int = CTLFLAG_CAPRD | CTLFLAG_CAPWR; -pub const CTLFLAG_NEEDGIANT: ::c_int = 0x00000800; - -pub const CTLSHIFT_SECURE: ::c_int = 20; -pub const CTLFLAG_SECURE1: ::c_int = CTLFLAG_SECURE | (0 << CTLSHIFT_SECURE); -pub const CTLFLAG_SECURE2: ::c_int = CTLFLAG_SECURE | (1 << CTLSHIFT_SECURE); -pub const CTLFLAG_SECURE3: ::c_int = CTLFLAG_SECURE | (2 << CTLSHIFT_SECURE); - -pub const OID_AUTO: ::c_int = -1; - -pub const CTL_SYSCTL_DEBUG: ::c_int = 0; -pub const CTL_SYSCTL_NAME: ::c_int = 1; -pub const CTL_SYSCTL_NEXT: ::c_int = 2; -pub const CTL_SYSCTL_NAME2OID: ::c_int = 3; -pub const CTL_SYSCTL_OIDFMT: ::c_int = 4; -pub const CTL_SYSCTL_OIDDESCR: ::c_int = 5; -pub const CTL_SYSCTL_OIDLABEL: ::c_int = 6; -pub const CTL_SYSCTL_NEXTNOSKIP: ::c_int = 7; - -pub const KERN_OSTYPE: ::c_int = 1; -pub const KERN_OSRELEASE: ::c_int = 2; -pub const KERN_OSREV: ::c_int = 3; -pub const KERN_VERSION: ::c_int = 4; -pub const KERN_MAXVNODES: ::c_int = 5; -pub const KERN_MAXPROC: ::c_int = 6; -pub const KERN_MAXFILES: ::c_int = 7; -pub const KERN_ARGMAX: ::c_int = 8; -pub const KERN_SECURELVL: ::c_int = 9; -pub const KERN_HOSTNAME: ::c_int = 10; -pub const KERN_HOSTID: ::c_int = 11; -pub const KERN_CLOCKRATE: ::c_int = 12; -pub const KERN_VNODE: ::c_int = 13; -pub const KERN_PROC: ::c_int = 14; -pub const KERN_FILE: ::c_int = 15; -pub const KERN_PROF: ::c_int = 16; -pub const KERN_POSIX1: ::c_int = 17; -pub const KERN_NGROUPS: ::c_int = 18; -pub const KERN_JOB_CONTROL: ::c_int = 19; -pub const KERN_SAVED_IDS: ::c_int = 20; -pub const KERN_BOOTTIME: ::c_int = 21; -pub const KERN_NISDOMAINNAME: ::c_int = 22; -pub const KERN_UPDATEINTERVAL: ::c_int = 23; -pub const KERN_OSRELDATE: ::c_int = 24; -pub const KERN_NTP_PLL: ::c_int = 25; -pub const KERN_BOOTFILE: ::c_int = 26; -pub const KERN_MAXFILESPERPROC: ::c_int = 27; -pub const KERN_MAXPROCPERUID: ::c_int = 28; -pub const KERN_DUMPDEV: ::c_int = 29; -pub const KERN_IPC: ::c_int = 30; -pub const KERN_DUMMY: ::c_int = 31; -pub const KERN_PS_STRINGS: ::c_int = 32; -pub const KERN_USRSTACK: ::c_int = 33; -pub const KERN_LOGSIGEXIT: ::c_int = 34; -pub const KERN_IOV_MAX: ::c_int = 35; -pub const KERN_HOSTUUID: ::c_int = 36; -pub const KERN_ARND: ::c_int = 37; -pub const KERN_MAXPHYS: ::c_int = 38; - -pub const KERN_PROC_ALL: ::c_int = 0; -pub const KERN_PROC_PID: ::c_int = 1; -pub const KERN_PROC_PGRP: ::c_int = 2; -pub const KERN_PROC_SESSION: ::c_int = 3; -pub const KERN_PROC_TTY: ::c_int = 4; -pub const KERN_PROC_UID: ::c_int = 5; -pub const KERN_PROC_RUID: ::c_int = 6; -pub const KERN_PROC_ARGS: ::c_int = 7; -pub const KERN_PROC_PROC: ::c_int = 8; -pub const KERN_PROC_SV_NAME: ::c_int = 9; -pub const KERN_PROC_RGID: ::c_int = 10; -pub const KERN_PROC_GID: ::c_int = 11; -pub const KERN_PROC_PATHNAME: ::c_int = 12; -pub const KERN_PROC_OVMMAP: ::c_int = 13; -pub const KERN_PROC_OFILEDESC: ::c_int = 14; -pub const KERN_PROC_KSTACK: ::c_int = 15; -pub const KERN_PROC_INC_THREAD: ::c_int = 0x10; -pub const KERN_PROC_VMMAP: ::c_int = 32; -pub const KERN_PROC_FILEDESC: ::c_int = 33; -pub const KERN_PROC_GROUPS: ::c_int = 34; -pub const KERN_PROC_ENV: ::c_int = 35; -pub const KERN_PROC_AUXV: ::c_int = 36; -pub const KERN_PROC_RLIMIT: ::c_int = 37; -pub const KERN_PROC_PS_STRINGS: ::c_int = 38; -pub const KERN_PROC_UMASK: ::c_int = 39; -pub const KERN_PROC_OSREL: ::c_int = 40; -pub const KERN_PROC_SIGTRAMP: ::c_int = 41; -pub const KERN_PROC_CWD: ::c_int = 42; -pub const KERN_PROC_NFDS: ::c_int = 43; -pub const KERN_PROC_SIGFASTBLK: ::c_int = 44; - -pub const KIPC_MAXSOCKBUF: ::c_int = 1; -pub const KIPC_SOCKBUF_WASTE: ::c_int = 2; -pub const KIPC_SOMAXCONN: ::c_int = 3; -pub const KIPC_MAX_LINKHDR: ::c_int = 4; -pub const KIPC_MAX_PROTOHDR: ::c_int = 5; -pub const KIPC_MAX_HDR: ::c_int = 6; -pub const KIPC_MAX_DATALEN: ::c_int = 7; - -pub const HW_MACHINE: ::c_int = 1; -pub const HW_MODEL: ::c_int = 2; -pub const HW_NCPU: ::c_int = 3; -pub const HW_BYTEORDER: ::c_int = 4; -pub const HW_PHYSMEM: ::c_int = 5; -pub const HW_USERMEM: ::c_int = 6; -pub const HW_PAGESIZE: ::c_int = 7; -pub const HW_DISKNAMES: ::c_int = 8; -pub const HW_DISKSTATS: ::c_int = 9; -pub const HW_FLOATINGPT: ::c_int = 10; -pub const HW_MACHINE_ARCH: ::c_int = 11; -pub const HW_REALMEM: ::c_int = 12; - -pub const USER_CS_PATH: ::c_int = 1; -pub const USER_BC_BASE_MAX: ::c_int = 2; -pub const USER_BC_DIM_MAX: ::c_int = 3; -pub const USER_BC_SCALE_MAX: ::c_int = 4; -pub const USER_BC_STRING_MAX: ::c_int = 5; -pub const USER_COLL_WEIGHTS_MAX: ::c_int = 6; -pub const USER_EXPR_NEST_MAX: ::c_int = 7; -pub const USER_LINE_MAX: ::c_int = 8; -pub const USER_RE_DUP_MAX: ::c_int = 9; -pub const USER_POSIX2_VERSION: ::c_int = 10; -pub const USER_POSIX2_C_BIND: ::c_int = 11; -pub const USER_POSIX2_C_DEV: ::c_int = 12; -pub const USER_POSIX2_CHAR_TERM: ::c_int = 13; -pub const USER_POSIX2_FORT_DEV: ::c_int = 14; -pub const USER_POSIX2_FORT_RUN: ::c_int = 15; -pub const USER_POSIX2_LOCALEDEF: ::c_int = 16; -pub const USER_POSIX2_SW_DEV: ::c_int = 17; -pub const USER_POSIX2_UPE: ::c_int = 18; -pub const USER_STREAM_MAX: ::c_int = 19; -pub const USER_TZNAME_MAX: ::c_int = 20; -pub const USER_LOCALBASE: ::c_int = 21; - -pub const CTL_P1003_1B_ASYNCHRONOUS_IO: ::c_int = 1; -pub const CTL_P1003_1B_MAPPED_FILES: ::c_int = 2; -pub const CTL_P1003_1B_MEMLOCK: ::c_int = 3; -pub const CTL_P1003_1B_MEMLOCK_RANGE: ::c_int = 4; -pub const CTL_P1003_1B_MEMORY_PROTECTION: ::c_int = 5; -pub const CTL_P1003_1B_MESSAGE_PASSING: ::c_int = 6; -pub const CTL_P1003_1B_PRIORITIZED_IO: ::c_int = 7; -pub const CTL_P1003_1B_PRIORITY_SCHEDULING: ::c_int = 8; -pub const CTL_P1003_1B_REALTIME_SIGNALS: ::c_int = 9; -pub const CTL_P1003_1B_SEMAPHORES: ::c_int = 10; -pub const CTL_P1003_1B_FSYNC: ::c_int = 11; -pub const CTL_P1003_1B_SHARED_MEMORY_OBJECTS: ::c_int = 12; -pub const CTL_P1003_1B_SYNCHRONIZED_IO: ::c_int = 13; -pub const CTL_P1003_1B_TIMERS: ::c_int = 14; -pub const CTL_P1003_1B_AIO_LISTIO_MAX: ::c_int = 15; -pub const CTL_P1003_1B_AIO_MAX: ::c_int = 16; -pub const CTL_P1003_1B_AIO_PRIO_DELTA_MAX: ::c_int = 17; -pub const CTL_P1003_1B_DELAYTIMER_MAX: ::c_int = 18; -pub const CTL_P1003_1B_MQ_OPEN_MAX: ::c_int = 19; -pub const CTL_P1003_1B_PAGESIZE: ::c_int = 20; -pub const CTL_P1003_1B_RTSIG_MAX: ::c_int = 21; -pub const CTL_P1003_1B_SEM_NSEMS_MAX: ::c_int = 22; -pub const CTL_P1003_1B_SEM_VALUE_MAX: ::c_int = 23; -pub const CTL_P1003_1B_SIGQUEUE_MAX: ::c_int = 24; -pub const CTL_P1003_1B_TIMER_MAX: ::c_int = 25; - -pub const TIOCGPTN: ::c_ulong = 0x4004740f; -pub const TIOCPTMASTER: ::c_ulong = 0x2000741c; -pub const TIOCSIG: ::c_ulong = 0x2004745f; -pub const TIOCM_DCD: ::c_int = 0x40; -pub const H4DISC: ::c_int = 0x7; - -pub const VM_TOTAL: ::c_int = 1; +pub const CTL_MAXNAME: c_int = 24; + +pub const CTLTYPE: c_int = 0xf; +pub const CTLTYPE_NODE: c_int = 1; +pub const CTLTYPE_INT: c_int = 2; +pub const CTLTYPE_STRING: c_int = 3; +pub const CTLTYPE_S64: c_int = 4; +pub const CTLTYPE_OPAQUE: c_int = 5; +pub const CTLTYPE_STRUCT: c_int = CTLTYPE_OPAQUE; +pub const CTLTYPE_UINT: c_int = 6; +pub const CTLTYPE_LONG: c_int = 7; +pub const CTLTYPE_ULONG: c_int = 8; +pub const CTLTYPE_U64: c_int = 9; +pub const CTLTYPE_U8: c_int = 0xa; +pub const CTLTYPE_U16: c_int = 0xb; +pub const CTLTYPE_S8: c_int = 0xc; +pub const CTLTYPE_S16: c_int = 0xd; +pub const CTLTYPE_S32: c_int = 0xe; +pub const CTLTYPE_U32: c_int = 0xf; + +pub const CTLFLAG_RD: c_int = 0x80000000; +pub const CTLFLAG_WR: c_int = 0x40000000; +pub const CTLFLAG_RW: c_int = CTLFLAG_RD | CTLFLAG_WR; +pub const CTLFLAG_DORMANT: c_int = 0x20000000; +pub const CTLFLAG_ANYBODY: c_int = 0x10000000; +pub const CTLFLAG_SECURE: c_int = 0x08000000; +pub const CTLFLAG_PRISON: c_int = 0x04000000; +pub const CTLFLAG_DYN: c_int = 0x02000000; +pub const CTLFLAG_SKIP: c_int = 0x01000000; +pub const CTLMASK_SECURE: c_int = 0x00F00000; +pub const CTLFLAG_TUN: c_int = 0x00080000; +pub const CTLFLAG_RDTUN: c_int = CTLFLAG_RD | CTLFLAG_TUN; +pub const CTLFLAG_RWTUN: c_int = CTLFLAG_RW | CTLFLAG_TUN; +pub const CTLFLAG_MPSAFE: c_int = 0x00040000; +pub const CTLFLAG_VNET: c_int = 0x00020000; +pub const CTLFLAG_DYING: c_int = 0x00010000; +pub const CTLFLAG_CAPRD: c_int = 0x00008000; +pub const CTLFLAG_CAPWR: c_int = 0x00004000; +pub const CTLFLAG_STATS: c_int = 0x00002000; +pub const CTLFLAG_NOFETCH: c_int = 0x00001000; +pub const CTLFLAG_CAPRW: c_int = CTLFLAG_CAPRD | CTLFLAG_CAPWR; +pub const CTLFLAG_NEEDGIANT: c_int = 0x00000800; + +pub const CTLSHIFT_SECURE: c_int = 20; +pub const CTLFLAG_SECURE1: c_int = CTLFLAG_SECURE | (0 << CTLSHIFT_SECURE); +pub const CTLFLAG_SECURE2: c_int = CTLFLAG_SECURE | (1 << CTLSHIFT_SECURE); +pub const CTLFLAG_SECURE3: c_int = CTLFLAG_SECURE | (2 << CTLSHIFT_SECURE); + +pub const OID_AUTO: c_int = -1; + +pub const CTL_SYSCTL_DEBUG: c_int = 0; +pub const CTL_SYSCTL_NAME: c_int = 1; +pub const CTL_SYSCTL_NEXT: c_int = 2; +pub const CTL_SYSCTL_NAME2OID: c_int = 3; +pub const CTL_SYSCTL_OIDFMT: c_int = 4; +pub const CTL_SYSCTL_OIDDESCR: c_int = 5; +pub const CTL_SYSCTL_OIDLABEL: c_int = 6; +pub const CTL_SYSCTL_NEXTNOSKIP: c_int = 7; + +pub const KERN_OSTYPE: c_int = 1; +pub const KERN_OSRELEASE: c_int = 2; +pub const KERN_OSREV: c_int = 3; +pub const KERN_VERSION: c_int = 4; +pub const KERN_MAXVNODES: c_int = 5; +pub const KERN_MAXPROC: c_int = 6; +pub const KERN_MAXFILES: c_int = 7; +pub const KERN_ARGMAX: c_int = 8; +pub const KERN_SECURELVL: c_int = 9; +pub const KERN_HOSTNAME: c_int = 10; +pub const KERN_HOSTID: c_int = 11; +pub const KERN_CLOCKRATE: c_int = 12; +pub const KERN_VNODE: c_int = 13; +pub const KERN_PROC: c_int = 14; +pub const KERN_FILE: c_int = 15; +pub const KERN_PROF: c_int = 16; +pub const KERN_POSIX1: c_int = 17; +pub const KERN_NGROUPS: c_int = 18; +pub const KERN_JOB_CONTROL: c_int = 19; +pub const KERN_SAVED_IDS: c_int = 20; +pub const KERN_BOOTTIME: c_int = 21; +pub const KERN_NISDOMAINNAME: c_int = 22; +pub const KERN_UPDATEINTERVAL: c_int = 23; +pub const KERN_OSRELDATE: c_int = 24; +pub const KERN_NTP_PLL: c_int = 25; +pub const KERN_BOOTFILE: c_int = 26; +pub const KERN_MAXFILESPERPROC: c_int = 27; +pub const KERN_MAXPROCPERUID: c_int = 28; +pub const KERN_DUMPDEV: c_int = 29; +pub const KERN_IPC: c_int = 30; +pub const KERN_DUMMY: c_int = 31; +pub const KERN_PS_STRINGS: c_int = 32; +pub const KERN_USRSTACK: c_int = 33; +pub const KERN_LOGSIGEXIT: c_int = 34; +pub const KERN_IOV_MAX: c_int = 35; +pub const KERN_HOSTUUID: c_int = 36; +pub const KERN_ARND: c_int = 37; +pub const KERN_MAXPHYS: c_int = 38; + +pub const KERN_PROC_ALL: c_int = 0; +pub const KERN_PROC_PID: c_int = 1; +pub const KERN_PROC_PGRP: c_int = 2; +pub const KERN_PROC_SESSION: c_int = 3; +pub const KERN_PROC_TTY: c_int = 4; +pub const KERN_PROC_UID: c_int = 5; +pub const KERN_PROC_RUID: c_int = 6; +pub const KERN_PROC_ARGS: c_int = 7; +pub const KERN_PROC_PROC: c_int = 8; +pub const KERN_PROC_SV_NAME: c_int = 9; +pub const KERN_PROC_RGID: c_int = 10; +pub const KERN_PROC_GID: c_int = 11; +pub const KERN_PROC_PATHNAME: c_int = 12; +pub const KERN_PROC_OVMMAP: c_int = 13; +pub const KERN_PROC_OFILEDESC: c_int = 14; +pub const KERN_PROC_KSTACK: c_int = 15; +pub const KERN_PROC_INC_THREAD: c_int = 0x10; +pub const KERN_PROC_VMMAP: c_int = 32; +pub const KERN_PROC_FILEDESC: c_int = 33; +pub const KERN_PROC_GROUPS: c_int = 34; +pub const KERN_PROC_ENV: c_int = 35; +pub const KERN_PROC_AUXV: c_int = 36; +pub const KERN_PROC_RLIMIT: c_int = 37; +pub const KERN_PROC_PS_STRINGS: c_int = 38; +pub const KERN_PROC_UMASK: c_int = 39; +pub const KERN_PROC_OSREL: c_int = 40; +pub const KERN_PROC_SIGTRAMP: c_int = 41; +pub const KERN_PROC_CWD: c_int = 42; +pub const KERN_PROC_NFDS: c_int = 43; +pub const KERN_PROC_SIGFASTBLK: c_int = 44; + +pub const KIPC_MAXSOCKBUF: c_int = 1; +pub const KIPC_SOCKBUF_WASTE: c_int = 2; +pub const KIPC_SOMAXCONN: c_int = 3; +pub const KIPC_MAX_LINKHDR: c_int = 4; +pub const KIPC_MAX_PROTOHDR: c_int = 5; +pub const KIPC_MAX_HDR: c_int = 6; +pub const KIPC_MAX_DATALEN: c_int = 7; + +pub const HW_MACHINE: c_int = 1; +pub const HW_MODEL: c_int = 2; +pub const HW_NCPU: c_int = 3; +pub const HW_BYTEORDER: c_int = 4; +pub const HW_PHYSMEM: c_int = 5; +pub const HW_USERMEM: c_int = 6; +pub const HW_PAGESIZE: c_int = 7; +pub const HW_DISKNAMES: c_int = 8; +pub const HW_DISKSTATS: c_int = 9; +pub const HW_FLOATINGPT: c_int = 10; +pub const HW_MACHINE_ARCH: c_int = 11; +pub const HW_REALMEM: c_int = 12; + +pub const USER_CS_PATH: c_int = 1; +pub const USER_BC_BASE_MAX: c_int = 2; +pub const USER_BC_DIM_MAX: c_int = 3; +pub const USER_BC_SCALE_MAX: c_int = 4; +pub const USER_BC_STRING_MAX: c_int = 5; +pub const USER_COLL_WEIGHTS_MAX: c_int = 6; +pub const USER_EXPR_NEST_MAX: c_int = 7; +pub const USER_LINE_MAX: c_int = 8; +pub const USER_RE_DUP_MAX: c_int = 9; +pub const USER_POSIX2_VERSION: c_int = 10; +pub const USER_POSIX2_C_BIND: c_int = 11; +pub const USER_POSIX2_C_DEV: c_int = 12; +pub const USER_POSIX2_CHAR_TERM: c_int = 13; +pub const USER_POSIX2_FORT_DEV: c_int = 14; +pub const USER_POSIX2_FORT_RUN: c_int = 15; +pub const USER_POSIX2_LOCALEDEF: c_int = 16; +pub const USER_POSIX2_SW_DEV: c_int = 17; +pub const USER_POSIX2_UPE: c_int = 18; +pub const USER_STREAM_MAX: c_int = 19; +pub const USER_TZNAME_MAX: c_int = 20; +pub const USER_LOCALBASE: c_int = 21; + +pub const CTL_P1003_1B_ASYNCHRONOUS_IO: c_int = 1; +pub const CTL_P1003_1B_MAPPED_FILES: c_int = 2; +pub const CTL_P1003_1B_MEMLOCK: c_int = 3; +pub const CTL_P1003_1B_MEMLOCK_RANGE: c_int = 4; +pub const CTL_P1003_1B_MEMORY_PROTECTION: c_int = 5; +pub const CTL_P1003_1B_MESSAGE_PASSING: c_int = 6; +pub const CTL_P1003_1B_PRIORITIZED_IO: c_int = 7; +pub const CTL_P1003_1B_PRIORITY_SCHEDULING: c_int = 8; +pub const CTL_P1003_1B_REALTIME_SIGNALS: c_int = 9; +pub const CTL_P1003_1B_SEMAPHORES: c_int = 10; +pub const CTL_P1003_1B_FSYNC: c_int = 11; +pub const CTL_P1003_1B_SHARED_MEMORY_OBJECTS: c_int = 12; +pub const CTL_P1003_1B_SYNCHRONIZED_IO: c_int = 13; +pub const CTL_P1003_1B_TIMERS: c_int = 14; +pub const CTL_P1003_1B_AIO_LISTIO_MAX: c_int = 15; +pub const CTL_P1003_1B_AIO_MAX: c_int = 16; +pub const CTL_P1003_1B_AIO_PRIO_DELTA_MAX: c_int = 17; +pub const CTL_P1003_1B_DELAYTIMER_MAX: c_int = 18; +pub const CTL_P1003_1B_MQ_OPEN_MAX: c_int = 19; +pub const CTL_P1003_1B_PAGESIZE: c_int = 20; +pub const CTL_P1003_1B_RTSIG_MAX: c_int = 21; +pub const CTL_P1003_1B_SEM_NSEMS_MAX: c_int = 22; +pub const CTL_P1003_1B_SEM_VALUE_MAX: c_int = 23; +pub const CTL_P1003_1B_SIGQUEUE_MAX: c_int = 24; +pub const CTL_P1003_1B_TIMER_MAX: c_int = 25; + +pub const TIOCGPTN: c_ulong = 0x4004740f; +pub const TIOCPTMASTER: c_ulong = 0x2000741c; +pub const TIOCSIG: c_ulong = 0x2004745f; +pub const TIOCM_DCD: c_int = 0x40; +pub const H4DISC: c_int = 0x7; + +pub const VM_TOTAL: c_int = 1; cfg_if! { if #[cfg(target_pointer_width = "64")] { - pub const BIOCSETFNR: ::c_ulong = 0x80104282; + pub const BIOCSETFNR: c_ulong = 0x80104282; } else { - pub const BIOCSETFNR: ::c_ulong = 0x80084282; + pub const BIOCSETFNR: c_ulong = 0x80084282; } } cfg_if! { if #[cfg(target_pointer_width = "64")] { - pub const FIODGNAME: ::c_ulong = 0x80106678; + pub const FIODGNAME: c_ulong = 0x80106678; } else { - pub const FIODGNAME: ::c_ulong = 0x80086678; + pub const FIODGNAME: c_ulong = 0x80086678; } } -pub const FIONWRITE: ::c_ulong = 0x40046677; -pub const FIONSPACE: ::c_ulong = 0x40046676; -pub const FIOSEEKDATA: ::c_ulong = 0xc0086661; -pub const FIOSEEKHOLE: ::c_ulong = 0xc0086662; -pub const FIOSSHMLPGCNF: ::c_ulong = 0x80306664; +pub const FIONWRITE: c_ulong = 0x40046677; +pub const FIONSPACE: c_ulong = 0x40046676; +pub const FIOSEEKDATA: c_ulong = 0xc0086661; +pub const FIOSEEKHOLE: c_ulong = 0xc0086662; +pub const FIOSSHMLPGCNF: c_ulong = 0x80306664; pub const JAIL_API_VERSION: u32 = 2; -pub const JAIL_CREATE: ::c_int = 0x01; -pub const JAIL_UPDATE: ::c_int = 0x02; -pub const JAIL_ATTACH: ::c_int = 0x04; -pub const JAIL_DYING: ::c_int = 0x08; -pub const JAIL_SET_MASK: ::c_int = 0x0f; -pub const JAIL_GET_MASK: ::c_int = 0x08; -pub const JAIL_SYS_DISABLE: ::c_int = 0; -pub const JAIL_SYS_NEW: ::c_int = 1; -pub const JAIL_SYS_INHERIT: ::c_int = 2; - -pub const MNT_ACLS: ::c_int = 0x08000000; -pub const MNT_BYFSID: ::c_int = 0x08000000; -pub const MNT_GJOURNAL: ::c_int = 0x02000000; -pub const MNT_MULTILABEL: ::c_int = 0x04000000; -pub const MNT_NFS4ACLS: ::c_int = 0x00000010; -pub const MNT_SNAPSHOT: ::c_int = 0x01000000; -pub const MNT_UNION: ::c_int = 0x00000020; -pub const MNT_NONBUSY: ::c_int = 0x04000000; - -pub const SCM_BINTIME: ::c_int = 0x04; -pub const SCM_REALTIME: ::c_int = 0x05; -pub const SCM_MONOTONIC: ::c_int = 0x06; -pub const SCM_TIME_INFO: ::c_int = 0x07; -pub const SCM_CREDS2: ::c_int = 0x08; - -pub const SO_BINTIME: ::c_int = 0x2000; -pub const SO_NO_OFFLOAD: ::c_int = 0x4000; -pub const SO_NO_DDP: ::c_int = 0x8000; -pub const SO_REUSEPORT_LB: ::c_int = 0x10000; -pub const SO_LABEL: ::c_int = 0x1009; -pub const SO_PEERLABEL: ::c_int = 0x1010; -pub const SO_LISTENQLIMIT: ::c_int = 0x1011; -pub const SO_LISTENQLEN: ::c_int = 0x1012; -pub const SO_LISTENINCQLEN: ::c_int = 0x1013; -pub const SO_SETFIB: ::c_int = 0x1014; -pub const SO_USER_COOKIE: ::c_int = 0x1015; -pub const SO_PROTOCOL: ::c_int = 0x1016; -pub const SO_PROTOTYPE: ::c_int = SO_PROTOCOL; -pub const SO_TS_CLOCK: ::c_int = 0x1017; -pub const SO_DOMAIN: ::c_int = 0x1019; -pub const SO_VENDOR: ::c_int = 0x80000000; - -pub const SO_TS_REALTIME_MICRO: ::c_int = 0; -pub const SO_TS_BINTIME: ::c_int = 1; -pub const SO_TS_REALTIME: ::c_int = 2; -pub const SO_TS_MONOTONIC: ::c_int = 3; -pub const SO_TS_DEFAULT: ::c_int = SO_TS_REALTIME_MICRO; -pub const SO_TS_CLOCK_MAX: ::c_int = SO_TS_MONOTONIC; - -pub const LOCAL_CREDS: ::c_int = 2; -pub const LOCAL_CREDS_PERSISTENT: ::c_int = 3; -pub const LOCAL_CONNWAIT: ::c_int = 4; -pub const LOCAL_VENDOR: ::c_int = SO_VENDOR; - -pub const PL_EVENT_NONE: ::c_int = 0; -pub const PL_EVENT_SIGNAL: ::c_int = 1; -pub const PL_FLAG_SA: ::c_int = 0x01; -pub const PL_FLAG_BOUND: ::c_int = 0x02; -pub const PL_FLAG_SCE: ::c_int = 0x04; -pub const PL_FLAG_SCX: ::c_int = 0x08; -pub const PL_FLAG_EXEC: ::c_int = 0x10; -pub const PL_FLAG_SI: ::c_int = 0x20; -pub const PL_FLAG_FORKED: ::c_int = 0x40; -pub const PL_FLAG_CHILD: ::c_int = 0x80; -pub const PL_FLAG_BORN: ::c_int = 0x100; -pub const PL_FLAG_EXITED: ::c_int = 0x200; -pub const PL_FLAG_VFORKED: ::c_int = 0x400; -pub const PL_FLAG_VFORK_DONE: ::c_int = 0x800; - -pub const PT_LWPINFO: ::c_int = 13; -pub const PT_GETNUMLWPS: ::c_int = 14; -pub const PT_GETLWPLIST: ::c_int = 15; -pub const PT_CLEARSTEP: ::c_int = 16; -pub const PT_SETSTEP: ::c_int = 17; -pub const PT_SUSPEND: ::c_int = 18; -pub const PT_RESUME: ::c_int = 19; -pub const PT_TO_SCE: ::c_int = 20; -pub const PT_TO_SCX: ::c_int = 21; -pub const PT_SYSCALL: ::c_int = 22; -pub const PT_FOLLOW_FORK: ::c_int = 23; -pub const PT_LWP_EVENTS: ::c_int = 24; -pub const PT_GET_EVENT_MASK: ::c_int = 25; -pub const PT_SET_EVENT_MASK: ::c_int = 26; -pub const PT_GET_SC_ARGS: ::c_int = 27; -pub const PT_GET_SC_RET: ::c_int = 28; -pub const PT_COREDUMP: ::c_int = 29; -pub const PT_GETREGS: ::c_int = 33; -pub const PT_SETREGS: ::c_int = 34; -pub const PT_GETFPREGS: ::c_int = 35; -pub const PT_SETFPREGS: ::c_int = 36; -pub const PT_GETDBREGS: ::c_int = 37; -pub const PT_SETDBREGS: ::c_int = 38; -pub const PT_VM_TIMESTAMP: ::c_int = 40; -pub const PT_VM_ENTRY: ::c_int = 41; -pub const PT_GETREGSET: ::c_int = 42; -pub const PT_SETREGSET: ::c_int = 43; -pub const PT_SC_REMOTE: ::c_int = 44; -pub const PT_FIRSTMACH: ::c_int = 64; - -pub const PTRACE_EXEC: ::c_int = 0x0001; -pub const PTRACE_SCE: ::c_int = 0x0002; -pub const PTRACE_SCX: ::c_int = 0x0004; -pub const PTRACE_SYSCALL: ::c_int = PTRACE_SCE | PTRACE_SCX; -pub const PTRACE_FORK: ::c_int = 0x0008; -pub const PTRACE_LWP: ::c_int = 0x0010; -pub const PTRACE_VFORK: ::c_int = 0x0020; -pub const PTRACE_DEFAULT: ::c_int = PTRACE_EXEC; +pub const JAIL_CREATE: c_int = 0x01; +pub const JAIL_UPDATE: c_int = 0x02; +pub const JAIL_ATTACH: c_int = 0x04; +pub const JAIL_DYING: c_int = 0x08; +pub const JAIL_SET_MASK: c_int = 0x0f; +pub const JAIL_GET_MASK: c_int = 0x08; +pub const JAIL_SYS_DISABLE: c_int = 0; +pub const JAIL_SYS_NEW: c_int = 1; +pub const JAIL_SYS_INHERIT: c_int = 2; + +pub const MNT_ACLS: c_int = 0x08000000; +pub const MNT_BYFSID: c_int = 0x08000000; +pub const MNT_GJOURNAL: c_int = 0x02000000; +pub const MNT_MULTILABEL: c_int = 0x04000000; +pub const MNT_NFS4ACLS: c_int = 0x00000010; +pub const MNT_SNAPSHOT: c_int = 0x01000000; +pub const MNT_UNION: c_int = 0x00000020; +pub const MNT_NONBUSY: c_int = 0x04000000; + +pub const SCM_BINTIME: c_int = 0x04; +pub const SCM_REALTIME: c_int = 0x05; +pub const SCM_MONOTONIC: c_int = 0x06; +pub const SCM_TIME_INFO: c_int = 0x07; +pub const SCM_CREDS2: c_int = 0x08; + +pub const SO_BINTIME: c_int = 0x2000; +pub const SO_NO_OFFLOAD: c_int = 0x4000; +pub const SO_NO_DDP: c_int = 0x8000; +pub const SO_REUSEPORT_LB: c_int = 0x10000; +pub const SO_LABEL: c_int = 0x1009; +pub const SO_PEERLABEL: c_int = 0x1010; +pub const SO_LISTENQLIMIT: c_int = 0x1011; +pub const SO_LISTENQLEN: c_int = 0x1012; +pub const SO_LISTENINCQLEN: c_int = 0x1013; +pub const SO_SETFIB: c_int = 0x1014; +pub const SO_USER_COOKIE: c_int = 0x1015; +pub const SO_PROTOCOL: c_int = 0x1016; +pub const SO_PROTOTYPE: c_int = SO_PROTOCOL; +pub const SO_TS_CLOCK: c_int = 0x1017; +pub const SO_DOMAIN: c_int = 0x1019; +pub const SO_VENDOR: c_int = 0x80000000; + +pub const SO_TS_REALTIME_MICRO: c_int = 0; +pub const SO_TS_BINTIME: c_int = 1; +pub const SO_TS_REALTIME: c_int = 2; +pub const SO_TS_MONOTONIC: c_int = 3; +pub const SO_TS_DEFAULT: c_int = SO_TS_REALTIME_MICRO; +pub const SO_TS_CLOCK_MAX: c_int = SO_TS_MONOTONIC; + +pub const LOCAL_CREDS: c_int = 2; +pub const LOCAL_CREDS_PERSISTENT: c_int = 3; +pub const LOCAL_CONNWAIT: c_int = 4; +pub const LOCAL_VENDOR: c_int = SO_VENDOR; + +pub const PL_EVENT_NONE: c_int = 0; +pub const PL_EVENT_SIGNAL: c_int = 1; +pub const PL_FLAG_SA: c_int = 0x01; +pub const PL_FLAG_BOUND: c_int = 0x02; +pub const PL_FLAG_SCE: c_int = 0x04; +pub const PL_FLAG_SCX: c_int = 0x08; +pub const PL_FLAG_EXEC: c_int = 0x10; +pub const PL_FLAG_SI: c_int = 0x20; +pub const PL_FLAG_FORKED: c_int = 0x40; +pub const PL_FLAG_CHILD: c_int = 0x80; +pub const PL_FLAG_BORN: c_int = 0x100; +pub const PL_FLAG_EXITED: c_int = 0x200; +pub const PL_FLAG_VFORKED: c_int = 0x400; +pub const PL_FLAG_VFORK_DONE: c_int = 0x800; + +pub const PT_LWPINFO: c_int = 13; +pub const PT_GETNUMLWPS: c_int = 14; +pub const PT_GETLWPLIST: c_int = 15; +pub const PT_CLEARSTEP: c_int = 16; +pub const PT_SETSTEP: c_int = 17; +pub const PT_SUSPEND: c_int = 18; +pub const PT_RESUME: c_int = 19; +pub const PT_TO_SCE: c_int = 20; +pub const PT_TO_SCX: c_int = 21; +pub const PT_SYSCALL: c_int = 22; +pub const PT_FOLLOW_FORK: c_int = 23; +pub const PT_LWP_EVENTS: c_int = 24; +pub const PT_GET_EVENT_MASK: c_int = 25; +pub const PT_SET_EVENT_MASK: c_int = 26; +pub const PT_GET_SC_ARGS: c_int = 27; +pub const PT_GET_SC_RET: c_int = 28; +pub const PT_COREDUMP: c_int = 29; +pub const PT_GETREGS: c_int = 33; +pub const PT_SETREGS: c_int = 34; +pub const PT_GETFPREGS: c_int = 35; +pub const PT_SETFPREGS: c_int = 36; +pub const PT_GETDBREGS: c_int = 37; +pub const PT_SETDBREGS: c_int = 38; +pub const PT_VM_TIMESTAMP: c_int = 40; +pub const PT_VM_ENTRY: c_int = 41; +pub const PT_GETREGSET: c_int = 42; +pub const PT_SETREGSET: c_int = 43; +pub const PT_SC_REMOTE: c_int = 44; +pub const PT_FIRSTMACH: c_int = 64; + +pub const PTRACE_EXEC: c_int = 0x0001; +pub const PTRACE_SCE: c_int = 0x0002; +pub const PTRACE_SCX: c_int = 0x0004; +pub const PTRACE_SYSCALL: c_int = PTRACE_SCE | PTRACE_SCX; +pub const PTRACE_FORK: c_int = 0x0008; +pub const PTRACE_LWP: c_int = 0x0010; +pub const PTRACE_VFORK: c_int = 0x0020; +pub const PTRACE_DEFAULT: c_int = PTRACE_EXEC; pub const PC_COMPRESS: u32 = 0x00000001; pub const PC_ALL: u32 = 0x00000002; -pub const PROC_SPROTECT: ::c_int = 1; -pub const PROC_REAP_ACQUIRE: ::c_int = 2; -pub const PROC_REAP_RELEASE: ::c_int = 3; -pub const PROC_REAP_STATUS: ::c_int = 4; -pub const PROC_REAP_GETPIDS: ::c_int = 5; -pub const PROC_REAP_KILL: ::c_int = 6; -pub const PROC_TRACE_CTL: ::c_int = 7; -pub const PROC_TRACE_STATUS: ::c_int = 8; -pub const PROC_TRAPCAP_CTL: ::c_int = 9; -pub const PROC_TRAPCAP_STATUS: ::c_int = 10; -pub const PROC_PDEATHSIG_CTL: ::c_int = 11; -pub const PROC_PDEATHSIG_STATUS: ::c_int = 12; -pub const PROC_ASLR_CTL: ::c_int = 13; -pub const PROC_ASLR_STATUS: ::c_int = 14; -pub const PROC_PROTMAX_CTL: ::c_int = 15; -pub const PROC_PROTMAX_STATUS: ::c_int = 16; -pub const PROC_STACKGAP_CTL: ::c_int = 17; -pub const PROC_STACKGAP_STATUS: ::c_int = 18; -pub const PROC_NO_NEW_PRIVS_CTL: ::c_int = 19; -pub const PROC_NO_NEW_PRIVS_STATUS: ::c_int = 20; -pub const PROC_WXMAP_CTL: ::c_int = 21; -pub const PROC_WXMAP_STATUS: ::c_int = 22; -pub const PROC_PROCCTL_MD_MIN: ::c_int = 0x10000000; - -pub const PPROT_SET: ::c_int = 1; -pub const PPROT_CLEAR: ::c_int = 2; -pub const PPROT_DESCEND: ::c_int = 0x10; -pub const PPROT_INHERIT: ::c_int = 0x20; - -pub const PROC_TRACE_CTL_ENABLE: ::c_int = 1; -pub const PROC_TRACE_CTL_DISABLE: ::c_int = 2; -pub const PROC_TRACE_CTL_DISABLE_EXEC: ::c_int = 3; - -pub const PROC_TRAPCAP_CTL_ENABLE: ::c_int = 1; -pub const PROC_TRAPCAP_CTL_DISABLE: ::c_int = 2; - -pub const PROC_ASLR_FORCE_ENABLE: ::c_int = 1; -pub const PROC_ASLR_FORCE_DISABLE: ::c_int = 2; -pub const PROC_ASLR_NOFORCE: ::c_int = 3; -pub const PROC_ASLR_ACTIVE: ::c_int = 0x80000000; - -pub const PROC_PROTMAX_FORCE_ENABLE: ::c_int = 1; -pub const PROC_PROTMAX_FORCE_DISABLE: ::c_int = 2; -pub const PROC_PROTMAX_NOFORCE: ::c_int = 3; -pub const PROC_PROTMAX_ACTIVE: ::c_int = 0x80000000; - -pub const PROC_STACKGAP_ENABLE: ::c_int = 0x0001; -pub const PROC_STACKGAP_DISABLE: ::c_int = 0x0002; -pub const PROC_STACKGAP_ENABLE_EXEC: ::c_int = 0x0004; -pub const PROC_STACKGAP_DISABLE_EXEC: ::c_int = 0x0008; - -pub const PROC_NO_NEW_PRIVS_ENABLE: ::c_int = 1; -pub const PROC_NO_NEW_PRIVS_DISABLE: ::c_int = 2; - -pub const PROC_WX_MAPPINGS_PERMIT: ::c_int = 0x0001; -pub const PROC_WX_MAPPINGS_DISALLOW_EXEC: ::c_int = 0x0002; -pub const PROC_WXORX_ENFORCE: ::c_int = 0x80000000; - -pub const AF_SLOW: ::c_int = 33; -pub const AF_SCLUSTER: ::c_int = 34; -pub const AF_ARP: ::c_int = 35; -pub const AF_BLUETOOTH: ::c_int = 36; -pub const AF_IEEE80211: ::c_int = 37; -pub const AF_INET_SDP: ::c_int = 40; -pub const AF_INET6_SDP: ::c_int = 42; +pub const PROC_SPROTECT: c_int = 1; +pub const PROC_REAP_ACQUIRE: c_int = 2; +pub const PROC_REAP_RELEASE: c_int = 3; +pub const PROC_REAP_STATUS: c_int = 4; +pub const PROC_REAP_GETPIDS: c_int = 5; +pub const PROC_REAP_KILL: c_int = 6; +pub const PROC_TRACE_CTL: c_int = 7; +pub const PROC_TRACE_STATUS: c_int = 8; +pub const PROC_TRAPCAP_CTL: c_int = 9; +pub const PROC_TRAPCAP_STATUS: c_int = 10; +pub const PROC_PDEATHSIG_CTL: c_int = 11; +pub const PROC_PDEATHSIG_STATUS: c_int = 12; +pub const PROC_ASLR_CTL: c_int = 13; +pub const PROC_ASLR_STATUS: c_int = 14; +pub const PROC_PROTMAX_CTL: c_int = 15; +pub const PROC_PROTMAX_STATUS: c_int = 16; +pub const PROC_STACKGAP_CTL: c_int = 17; +pub const PROC_STACKGAP_STATUS: c_int = 18; +pub const PROC_NO_NEW_PRIVS_CTL: c_int = 19; +pub const PROC_NO_NEW_PRIVS_STATUS: c_int = 20; +pub const PROC_WXMAP_CTL: c_int = 21; +pub const PROC_WXMAP_STATUS: c_int = 22; +pub const PROC_PROCCTL_MD_MIN: c_int = 0x10000000; + +pub const PPROT_SET: c_int = 1; +pub const PPROT_CLEAR: c_int = 2; +pub const PPROT_DESCEND: c_int = 0x10; +pub const PPROT_INHERIT: c_int = 0x20; + +pub const PROC_TRACE_CTL_ENABLE: c_int = 1; +pub const PROC_TRACE_CTL_DISABLE: c_int = 2; +pub const PROC_TRACE_CTL_DISABLE_EXEC: c_int = 3; + +pub const PROC_TRAPCAP_CTL_ENABLE: c_int = 1; +pub const PROC_TRAPCAP_CTL_DISABLE: c_int = 2; + +pub const PROC_ASLR_FORCE_ENABLE: c_int = 1; +pub const PROC_ASLR_FORCE_DISABLE: c_int = 2; +pub const PROC_ASLR_NOFORCE: c_int = 3; +pub const PROC_ASLR_ACTIVE: c_int = 0x80000000; + +pub const PROC_PROTMAX_FORCE_ENABLE: c_int = 1; +pub const PROC_PROTMAX_FORCE_DISABLE: c_int = 2; +pub const PROC_PROTMAX_NOFORCE: c_int = 3; +pub const PROC_PROTMAX_ACTIVE: c_int = 0x80000000; + +pub const PROC_STACKGAP_ENABLE: c_int = 0x0001; +pub const PROC_STACKGAP_DISABLE: c_int = 0x0002; +pub const PROC_STACKGAP_ENABLE_EXEC: c_int = 0x0004; +pub const PROC_STACKGAP_DISABLE_EXEC: c_int = 0x0008; + +pub const PROC_NO_NEW_PRIVS_ENABLE: c_int = 1; +pub const PROC_NO_NEW_PRIVS_DISABLE: c_int = 2; + +pub const PROC_WX_MAPPINGS_PERMIT: c_int = 0x0001; +pub const PROC_WX_MAPPINGS_DISALLOW_EXEC: c_int = 0x0002; +pub const PROC_WXORX_ENFORCE: c_int = 0x80000000; + +pub const AF_SLOW: c_int = 33; +pub const AF_SCLUSTER: c_int = 34; +pub const AF_ARP: c_int = 35; +pub const AF_BLUETOOTH: c_int = 36; +pub const AF_IEEE80211: c_int = 37; +pub const AF_INET_SDP: c_int = 40; +pub const AF_INET6_SDP: c_int = 42; // sys/net/if.h -pub const IF_MAXUNIT: ::c_int = 0x7fff; +pub const IF_MAXUNIT: c_int = 0x7fff; /// (n) interface is up -pub const IFF_UP: ::c_int = 0x1; +pub const IFF_UP: c_int = 0x1; /// (i) broadcast address valid -pub const IFF_BROADCAST: ::c_int = 0x2; +pub const IFF_BROADCAST: c_int = 0x2; /// (n) turn on debugging -pub const IFF_DEBUG: ::c_int = 0x4; +pub const IFF_DEBUG: c_int = 0x4; /// (i) is a loopback net -pub const IFF_LOOPBACK: ::c_int = 0x8; +pub const IFF_LOOPBACK: c_int = 0x8; /// (i) is a point-to-point link -pub const IFF_POINTOPOINT: ::c_int = 0x10; +pub const IFF_POINTOPOINT: c_int = 0x10; /// (i) calls if_input in net epoch #[deprecated(since = "0.2.149", note = "Removed in FreeBSD 14")] -pub const IFF_KNOWSEPOCH: ::c_int = 0x20; +pub const IFF_KNOWSEPOCH: c_int = 0x20; /// (d) resources allocated -pub const IFF_RUNNING: ::c_int = 0x40; +pub const IFF_RUNNING: c_int = 0x40; #[doc(hidden)] #[deprecated( since = "0.2.54", note = "IFF_DRV_RUNNING is deprecated. Use the portable IFF_RUNNING instead" )] /// (d) resources allocate -pub const IFF_DRV_RUNNING: ::c_int = 0x40; +pub const IFF_DRV_RUNNING: c_int = 0x40; /// (n) no address resolution protocol -pub const IFF_NOARP: ::c_int = 0x80; +pub const IFF_NOARP: c_int = 0x80; /// (n) receive all packets -pub const IFF_PROMISC: ::c_int = 0x100; +pub const IFF_PROMISC: c_int = 0x100; /// (n) receive all multicast packets -pub const IFF_ALLMULTI: ::c_int = 0x200; +pub const IFF_ALLMULTI: c_int = 0x200; /// (d) tx hardware queue is full -pub const IFF_OACTIVE: ::c_int = 0x400; +pub const IFF_OACTIVE: c_int = 0x400; #[doc(hidden)] #[deprecated(since = "0.2.54", note = "Use the portable `IFF_OACTIVE` instead")] /// (d) tx hardware queue is full -pub const IFF_DRV_OACTIVE: ::c_int = 0x400; +pub const IFF_DRV_OACTIVE: c_int = 0x400; /// (i) can't hear own transmissions -pub const IFF_SIMPLEX: ::c_int = 0x800; +pub const IFF_SIMPLEX: c_int = 0x800; /// per link layer defined bit -pub const IFF_LINK0: ::c_int = 0x1000; +pub const IFF_LINK0: c_int = 0x1000; /// per link layer defined bit -pub const IFF_LINK1: ::c_int = 0x2000; +pub const IFF_LINK1: c_int = 0x2000; /// per link layer defined bit -pub const IFF_LINK2: ::c_int = 0x4000; +pub const IFF_LINK2: c_int = 0x4000; /// use alternate physical connection -pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; +pub const IFF_ALTPHYS: c_int = IFF_LINK2; /// (i) supports multicast -pub const IFF_MULTICAST: ::c_int = 0x8000; +pub const IFF_MULTICAST: c_int = 0x8000; /// (i) unconfigurable using ioctl(2) -pub const IFF_CANTCONFIG: ::c_int = 0x10000; +pub const IFF_CANTCONFIG: c_int = 0x10000; /// (n) user-requested promisc mode -pub const IFF_PPROMISC: ::c_int = 0x20000; +pub const IFF_PPROMISC: c_int = 0x20000; /// (n) user-requested monitor mode -pub const IFF_MONITOR: ::c_int = 0x40000; +pub const IFF_MONITOR: c_int = 0x40000; /// (n) static ARP -pub const IFF_STATICARP: ::c_int = 0x80000; +pub const IFF_STATICARP: c_int = 0x80000; /// (n) interface is winding down -pub const IFF_DYING: ::c_int = 0x200000; +pub const IFF_DYING: c_int = 0x200000; /// (n) interface is being renamed -pub const IFF_RENAMING: ::c_int = 0x400000; +pub const IFF_RENAMING: c_int = 0x400000; /// interface is not part of any groups #[deprecated(since = "0.2.149", note = "Removed in FreeBSD 14")] -pub const IFF_NOGROUP: ::c_int = 0x800000; +pub const IFF_NOGROUP: c_int = 0x800000; /// link invalid/unknown -pub const LINK_STATE_UNKNOWN: ::c_int = 0; +pub const LINK_STATE_UNKNOWN: c_int = 0; /// link is down -pub const LINK_STATE_DOWN: ::c_int = 1; +pub const LINK_STATE_DOWN: c_int = 1; /// link is up -pub const LINK_STATE_UP: ::c_int = 2; +pub const LINK_STATE_UP: c_int = 2; /// can offload checksum on RX -pub const IFCAP_RXCSUM: ::c_int = 0x00001; +pub const IFCAP_RXCSUM: c_int = 0x00001; /// can offload checksum on TX -pub const IFCAP_TXCSUM: ::c_int = 0x00002; +pub const IFCAP_TXCSUM: c_int = 0x00002; /// can be a network console -pub const IFCAP_NETCONS: ::c_int = 0x00004; +pub const IFCAP_NETCONS: c_int = 0x00004; /// VLAN-compatible MTU -pub const IFCAP_VLAN_MTU: ::c_int = 0x00008; +pub const IFCAP_VLAN_MTU: c_int = 0x00008; /// hardware VLAN tag support -pub const IFCAP_VLAN_HWTAGGING: ::c_int = 0x00010; +pub const IFCAP_VLAN_HWTAGGING: c_int = 0x00010; /// 9000 byte MTU supported -pub const IFCAP_JUMBO_MTU: ::c_int = 0x00020; +pub const IFCAP_JUMBO_MTU: c_int = 0x00020; /// driver supports polling -pub const IFCAP_POLLING: ::c_int = 0x00040; +pub const IFCAP_POLLING: c_int = 0x00040; /// can do IFCAP_HWCSUM on VLANs -pub const IFCAP_VLAN_HWCSUM: ::c_int = 0x00080; +pub const IFCAP_VLAN_HWCSUM: c_int = 0x00080; /// can do TCP Segmentation Offload -pub const IFCAP_TSO4: ::c_int = 0x00100; +pub const IFCAP_TSO4: c_int = 0x00100; /// can do TCP6 Segmentation Offload -pub const IFCAP_TSO6: ::c_int = 0x00200; +pub const IFCAP_TSO6: c_int = 0x00200; /// can do Large Receive Offload -pub const IFCAP_LRO: ::c_int = 0x00400; +pub const IFCAP_LRO: c_int = 0x00400; /// wake on any unicast frame -pub const IFCAP_WOL_UCAST: ::c_int = 0x00800; +pub const IFCAP_WOL_UCAST: c_int = 0x00800; /// wake on any multicast frame -pub const IFCAP_WOL_MCAST: ::c_int = 0x01000; +pub const IFCAP_WOL_MCAST: c_int = 0x01000; /// wake on any Magic Packet -pub const IFCAP_WOL_MAGIC: ::c_int = 0x02000; +pub const IFCAP_WOL_MAGIC: c_int = 0x02000; /// interface can offload TCP -pub const IFCAP_TOE4: ::c_int = 0x04000; +pub const IFCAP_TOE4: c_int = 0x04000; /// interface can offload TCP6 -pub const IFCAP_TOE6: ::c_int = 0x08000; +pub const IFCAP_TOE6: c_int = 0x08000; /// interface hw can filter vlan tag -pub const IFCAP_VLAN_HWFILTER: ::c_int = 0x10000; +pub const IFCAP_VLAN_HWFILTER: c_int = 0x10000; /// can do SIOCGIFCAPNV/SIOCSIFCAPNV -pub const IFCAP_NV: ::c_int = 0x20000; +pub const IFCAP_NV: c_int = 0x20000; /// can do IFCAP_TSO on VLANs -pub const IFCAP_VLAN_HWTSO: ::c_int = 0x40000; +pub const IFCAP_VLAN_HWTSO: c_int = 0x40000; /// the runtime link state is dynamic -pub const IFCAP_LINKSTATE: ::c_int = 0x80000; +pub const IFCAP_LINKSTATE: c_int = 0x80000; /// netmap mode supported/enabled -pub const IFCAP_NETMAP: ::c_int = 0x100000; +pub const IFCAP_NETMAP: c_int = 0x100000; /// can offload checksum on IPv6 RX -pub const IFCAP_RXCSUM_IPV6: ::c_int = 0x200000; +pub const IFCAP_RXCSUM_IPV6: c_int = 0x200000; /// can offload checksum on IPv6 TX -pub const IFCAP_TXCSUM_IPV6: ::c_int = 0x400000; +pub const IFCAP_TXCSUM_IPV6: c_int = 0x400000; /// manages counters internally -pub const IFCAP_HWSTATS: ::c_int = 0x800000; +pub const IFCAP_HWSTATS: c_int = 0x800000; /// hardware supports TX rate limiting -pub const IFCAP_TXRTLMT: ::c_int = 0x1000000; +pub const IFCAP_TXRTLMT: c_int = 0x1000000; /// hardware rx timestamping -pub const IFCAP_HWRXTSTMP: ::c_int = 0x2000000; +pub const IFCAP_HWRXTSTMP: c_int = 0x2000000; /// understands M_EXTPG mbufs -pub const IFCAP_MEXTPG: ::c_int = 0x4000000; +pub const IFCAP_MEXTPG: c_int = 0x4000000; /// can do TLS encryption and segmentation for TCP -pub const IFCAP_TXTLS4: ::c_int = 0x8000000; +pub const IFCAP_TXTLS4: c_int = 0x8000000; /// can do TLS encryption and segmentation for TCP6 -pub const IFCAP_TXTLS6: ::c_int = 0x10000000; +pub const IFCAP_TXTLS6: c_int = 0x10000000; /// can do IFCAN_HWCSUM on VXLANs -pub const IFCAP_VXLAN_HWCSUM: ::c_int = 0x20000000; +pub const IFCAP_VXLAN_HWCSUM: c_int = 0x20000000; /// can do IFCAP_TSO on VXLANs -pub const IFCAP_VXLAN_HWTSO: ::c_int = 0x40000000; +pub const IFCAP_VXLAN_HWTSO: c_int = 0x40000000; /// can do TLS with rate limiting -pub const IFCAP_TXTLS_RTLMT: ::c_int = 0x80000000; - -pub const IFCAP_HWCSUM_IPV6: ::c_int = IFCAP_RXCSUM_IPV6 | IFCAP_TXCSUM_IPV6; -pub const IFCAP_HWCSUM: ::c_int = IFCAP_RXCSUM | IFCAP_TXCSUM; -pub const IFCAP_TSO: ::c_int = IFCAP_TSO4 | IFCAP_TSO6; -pub const IFCAP_WOL: ::c_int = IFCAP_WOL_UCAST | IFCAP_WOL_MCAST | IFCAP_WOL_MAGIC; -pub const IFCAP_TOE: ::c_int = IFCAP_TOE4 | IFCAP_TOE6; -pub const IFCAP_TXTLS: ::c_int = IFCAP_TXTLS4 | IFCAP_TXTLS6; -pub const IFCAP_CANTCHANGE: ::c_int = IFCAP_NETMAP | IFCAP_NV; - -pub const IFQ_MAXLEN: ::c_int = 50; -pub const IFNET_SLOWHZ: ::c_int = 1; - -pub const IFAN_ARRIVAL: ::c_int = 0; -pub const IFAN_DEPARTURE: ::c_int = 1; - -pub const IFSTATMAX: ::c_int = 800; - -pub const RSS_FUNC_NONE: ::c_int = 0; -pub const RSS_FUNC_PRIVATE: ::c_int = 1; -pub const RSS_FUNC_TOEPLITZ: ::c_int = 2; - -pub const RSS_TYPE_IPV4: ::c_int = 0x00000001; -pub const RSS_TYPE_TCP_IPV4: ::c_int = 0x00000002; -pub const RSS_TYPE_IPV6: ::c_int = 0x00000004; -pub const RSS_TYPE_IPV6_EX: ::c_int = 0x00000008; -pub const RSS_TYPE_TCP_IPV6: ::c_int = 0x00000010; -pub const RSS_TYPE_TCP_IPV6_EX: ::c_int = 0x00000020; -pub const RSS_TYPE_UDP_IPV4: ::c_int = 0x00000040; -pub const RSS_TYPE_UDP_IPV6: ::c_int = 0x00000080; -pub const RSS_TYPE_UDP_IPV6_EX: ::c_int = 0x00000100; -pub const RSS_KEYLEN: ::c_int = 128; - -pub const IFNET_PCP_NONE: ::c_int = 0xff; -pub const IFDR_MSG_SIZE: ::c_int = 64; -pub const IFDR_REASON_MSG: ::c_int = 1; -pub const IFDR_REASON_VENDOR: ::c_int = 2; +pub const IFCAP_TXTLS_RTLMT: c_int = 0x80000000; + +pub const IFCAP_HWCSUM_IPV6: c_int = IFCAP_RXCSUM_IPV6 | IFCAP_TXCSUM_IPV6; +pub const IFCAP_HWCSUM: c_int = IFCAP_RXCSUM | IFCAP_TXCSUM; +pub const IFCAP_TSO: c_int = IFCAP_TSO4 | IFCAP_TSO6; +pub const IFCAP_WOL: c_int = IFCAP_WOL_UCAST | IFCAP_WOL_MCAST | IFCAP_WOL_MAGIC; +pub const IFCAP_TOE: c_int = IFCAP_TOE4 | IFCAP_TOE6; +pub const IFCAP_TXTLS: c_int = IFCAP_TXTLS4 | IFCAP_TXTLS6; +pub const IFCAP_CANTCHANGE: c_int = IFCAP_NETMAP | IFCAP_NV; + +pub const IFQ_MAXLEN: c_int = 50; +pub const IFNET_SLOWHZ: c_int = 1; + +pub const IFAN_ARRIVAL: c_int = 0; +pub const IFAN_DEPARTURE: c_int = 1; + +pub const IFSTATMAX: c_int = 800; + +pub const RSS_FUNC_NONE: c_int = 0; +pub const RSS_FUNC_PRIVATE: c_int = 1; +pub const RSS_FUNC_TOEPLITZ: c_int = 2; + +pub const RSS_TYPE_IPV4: c_int = 0x00000001; +pub const RSS_TYPE_TCP_IPV4: c_int = 0x00000002; +pub const RSS_TYPE_IPV6: c_int = 0x00000004; +pub const RSS_TYPE_IPV6_EX: c_int = 0x00000008; +pub const RSS_TYPE_TCP_IPV6: c_int = 0x00000010; +pub const RSS_TYPE_TCP_IPV6_EX: c_int = 0x00000020; +pub const RSS_TYPE_UDP_IPV4: c_int = 0x00000040; +pub const RSS_TYPE_UDP_IPV6: c_int = 0x00000080; +pub const RSS_TYPE_UDP_IPV6_EX: c_int = 0x00000100; +pub const RSS_KEYLEN: c_int = 128; + +pub const IFNET_PCP_NONE: c_int = 0xff; +pub const IFDR_MSG_SIZE: c_int = 64; +pub const IFDR_REASON_MSG: c_int = 1; +pub const IFDR_REASON_VENDOR: c_int = 2; // sys/net/if_mib.h /// non-interface-specific -pub const IFMIB_SYSTEM: ::c_int = 1; +pub const IFMIB_SYSTEM: c_int = 1; /// per-interface data table -pub const IFMIB_IFDATA: ::c_int = 2; +pub const IFMIB_IFDATA: c_int = 2; /// generic stats for all kinds of ifaces -pub const IFDATA_GENERAL: ::c_int = 1; +pub const IFDATA_GENERAL: c_int = 1; /// specific to the type of interface -pub const IFDATA_LINKSPECIFIC: ::c_int = 2; +pub const IFDATA_LINKSPECIFIC: c_int = 2; /// driver name and unit -pub const IFDATA_DRIVERNAME: ::c_int = 3; +pub const IFDATA_DRIVERNAME: c_int = 3; /// number of interfaces configured -pub const IFMIB_IFCOUNT: ::c_int = 1; +pub const IFMIB_IFCOUNT: c_int = 1; /// functions not specific to a type of iface -pub const NETLINK_GENERIC: ::c_int = 0; +pub const NETLINK_GENERIC: c_int = 0; -pub const DOT3COMPLIANCE_STATS: ::c_int = 1; -pub const DOT3COMPLIANCE_COLLS: ::c_int = 2; +pub const DOT3COMPLIANCE_STATS: c_int = 1; +pub const DOT3COMPLIANCE_COLLS: c_int = 2; -pub const dot3ChipSetAMD7990: ::c_int = 1; -pub const dot3ChipSetAMD79900: ::c_int = 2; -pub const dot3ChipSetAMD79C940: ::c_int = 3; +pub const dot3ChipSetAMD7990: c_int = 1; +pub const dot3ChipSetAMD79900: c_int = 2; +pub const dot3ChipSetAMD79C940: c_int = 3; -pub const dot3ChipSetIntel82586: ::c_int = 1; -pub const dot3ChipSetIntel82596: ::c_int = 2; -pub const dot3ChipSetIntel82557: ::c_int = 3; +pub const dot3ChipSetIntel82586: c_int = 1; +pub const dot3ChipSetIntel82596: c_int = 2; +pub const dot3ChipSetIntel82557: c_int = 3; -pub const dot3ChipSetNational8390: ::c_int = 1; -pub const dot3ChipSetNationalSonic: ::c_int = 2; +pub const dot3ChipSetNational8390: c_int = 1; +pub const dot3ChipSetNationalSonic: c_int = 2; -pub const dot3ChipSetFujitsu86950: ::c_int = 1; +pub const dot3ChipSetFujitsu86950: c_int = 1; -pub const dot3ChipSetDigitalDC21040: ::c_int = 1; -pub const dot3ChipSetDigitalDC21140: ::c_int = 2; -pub const dot3ChipSetDigitalDC21041: ::c_int = 3; -pub const dot3ChipSetDigitalDC21140A: ::c_int = 4; -pub const dot3ChipSetDigitalDC21142: ::c_int = 5; +pub const dot3ChipSetDigitalDC21040: c_int = 1; +pub const dot3ChipSetDigitalDC21140: c_int = 2; +pub const dot3ChipSetDigitalDC21041: c_int = 3; +pub const dot3ChipSetDigitalDC21140A: c_int = 4; +pub const dot3ChipSetDigitalDC21142: c_int = 5; -pub const dot3ChipSetWesternDigital83C690: ::c_int = 1; -pub const dot3ChipSetWesternDigital83C790: ::c_int = 2; +pub const dot3ChipSetWesternDigital83C690: c_int = 1; +pub const dot3ChipSetWesternDigital83C790: c_int = 2; // sys/netinet/in.h // Protocols (RFC 1700) @@ -3549,307 +3553,307 @@ pub const dot3ChipSetWesternDigital83C790: ::c_int = 2; // IPPROTO_IP defined in src/unix/mod.rs /// IP6 hop-by-hop options -pub const IPPROTO_HOPOPTS: ::c_int = 0; +pub const IPPROTO_HOPOPTS: c_int = 0; // IPPROTO_ICMP defined in src/unix/mod.rs /// group mgmt protocol -pub const IPPROTO_IGMP: ::c_int = 2; +pub const IPPROTO_IGMP: c_int = 2; /// gateway^2 (deprecated) -pub const IPPROTO_GGP: ::c_int = 3; +pub const IPPROTO_GGP: c_int = 3; /// for compatibility -pub const IPPROTO_IPIP: ::c_int = 4; +pub const IPPROTO_IPIP: c_int = 4; // IPPROTO_TCP defined in src/unix/mod.rs /// Stream protocol II. -pub const IPPROTO_ST: ::c_int = 7; +pub const IPPROTO_ST: c_int = 7; /// exterior gateway protocol -pub const IPPROTO_EGP: ::c_int = 8; +pub const IPPROTO_EGP: c_int = 8; /// private interior gateway -pub const IPPROTO_PIGP: ::c_int = 9; +pub const IPPROTO_PIGP: c_int = 9; /// BBN RCC Monitoring -pub const IPPROTO_RCCMON: ::c_int = 10; +pub const IPPROTO_RCCMON: c_int = 10; /// network voice protocol -pub const IPPROTO_NVPII: ::c_int = 11; +pub const IPPROTO_NVPII: c_int = 11; /// pup -pub const IPPROTO_PUP: ::c_int = 12; +pub const IPPROTO_PUP: c_int = 12; /// Argus -pub const IPPROTO_ARGUS: ::c_int = 13; +pub const IPPROTO_ARGUS: c_int = 13; /// EMCON -pub const IPPROTO_EMCON: ::c_int = 14; +pub const IPPROTO_EMCON: c_int = 14; /// Cross Net Debugger -pub const IPPROTO_XNET: ::c_int = 15; +pub const IPPROTO_XNET: c_int = 15; /// Chaos -pub const IPPROTO_CHAOS: ::c_int = 16; +pub const IPPROTO_CHAOS: c_int = 16; // IPPROTO_UDP defined in src/unix/mod.rs /// Multiplexing -pub const IPPROTO_MUX: ::c_int = 18; +pub const IPPROTO_MUX: c_int = 18; /// DCN Measurement Subsystems -pub const IPPROTO_MEAS: ::c_int = 19; +pub const IPPROTO_MEAS: c_int = 19; /// Host Monitoring -pub const IPPROTO_HMP: ::c_int = 20; +pub const IPPROTO_HMP: c_int = 20; /// Packet Radio Measurement -pub const IPPROTO_PRM: ::c_int = 21; +pub const IPPROTO_PRM: c_int = 21; /// xns idp -pub const IPPROTO_IDP: ::c_int = 22; +pub const IPPROTO_IDP: c_int = 22; /// Trunk-1 -pub const IPPROTO_TRUNK1: ::c_int = 23; +pub const IPPROTO_TRUNK1: c_int = 23; /// Trunk-2 -pub const IPPROTO_TRUNK2: ::c_int = 24; +pub const IPPROTO_TRUNK2: c_int = 24; /// Leaf-1 -pub const IPPROTO_LEAF1: ::c_int = 25; +pub const IPPROTO_LEAF1: c_int = 25; /// Leaf-2 -pub const IPPROTO_LEAF2: ::c_int = 26; +pub const IPPROTO_LEAF2: c_int = 26; /// Reliable Data -pub const IPPROTO_RDP: ::c_int = 27; +pub const IPPROTO_RDP: c_int = 27; /// Reliable Transaction -pub const IPPROTO_IRTP: ::c_int = 28; +pub const IPPROTO_IRTP: c_int = 28; /// tp-4 w/ class negotiation -pub const IPPROTO_TP: ::c_int = 29; +pub const IPPROTO_TP: c_int = 29; /// Bulk Data Transfer -pub const IPPROTO_BLT: ::c_int = 30; +pub const IPPROTO_BLT: c_int = 30; /// Network Services -pub const IPPROTO_NSP: ::c_int = 31; +pub const IPPROTO_NSP: c_int = 31; /// Merit Internodal -pub const IPPROTO_INP: ::c_int = 32; +pub const IPPROTO_INP: c_int = 32; #[doc(hidden)] #[deprecated( since = "0.2.72", note = "IPPROTO_SEP is deprecated. Use IPPROTO_DCCP instead" )] -pub const IPPROTO_SEP: ::c_int = 33; +pub const IPPROTO_SEP: c_int = 33; /// Datagram Congestion Control Protocol -pub const IPPROTO_DCCP: ::c_int = 33; +pub const IPPROTO_DCCP: c_int = 33; /// Third Party Connect -pub const IPPROTO_3PC: ::c_int = 34; +pub const IPPROTO_3PC: c_int = 34; /// InterDomain Policy Routing -pub const IPPROTO_IDPR: ::c_int = 35; +pub const IPPROTO_IDPR: c_int = 35; /// XTP -pub const IPPROTO_XTP: ::c_int = 36; +pub const IPPROTO_XTP: c_int = 36; /// Datagram Delivery -pub const IPPROTO_DDP: ::c_int = 37; +pub const IPPROTO_DDP: c_int = 37; /// Control Message Transport -pub const IPPROTO_CMTP: ::c_int = 38; +pub const IPPROTO_CMTP: c_int = 38; /// TP++ Transport -pub const IPPROTO_TPXX: ::c_int = 39; +pub const IPPROTO_TPXX: c_int = 39; /// IL transport protocol -pub const IPPROTO_IL: ::c_int = 40; +pub const IPPROTO_IL: c_int = 40; // IPPROTO_IPV6 defined in src/unix/mod.rs /// Source Demand Routing -pub const IPPROTO_SDRP: ::c_int = 42; +pub const IPPROTO_SDRP: c_int = 42; /// IP6 routing header -pub const IPPROTO_ROUTING: ::c_int = 43; +pub const IPPROTO_ROUTING: c_int = 43; /// IP6 fragmentation header -pub const IPPROTO_FRAGMENT: ::c_int = 44; +pub const IPPROTO_FRAGMENT: c_int = 44; /// InterDomain Routing -pub const IPPROTO_IDRP: ::c_int = 45; +pub const IPPROTO_IDRP: c_int = 45; /// resource reservation -pub const IPPROTO_RSVP: ::c_int = 46; +pub const IPPROTO_RSVP: c_int = 46; /// General Routing Encap. -pub const IPPROTO_GRE: ::c_int = 47; +pub const IPPROTO_GRE: c_int = 47; /// Mobile Host Routing -pub const IPPROTO_MHRP: ::c_int = 48; +pub const IPPROTO_MHRP: c_int = 48; /// BHA -pub const IPPROTO_BHA: ::c_int = 49; +pub const IPPROTO_BHA: c_int = 49; /// IP6 Encap Sec. Payload -pub const IPPROTO_ESP: ::c_int = 50; +pub const IPPROTO_ESP: c_int = 50; /// IP6 Auth Header -pub const IPPROTO_AH: ::c_int = 51; +pub const IPPROTO_AH: c_int = 51; /// Integ. Net Layer Security -pub const IPPROTO_INLSP: ::c_int = 52; +pub const IPPROTO_INLSP: c_int = 52; /// IP with encryption -pub const IPPROTO_SWIPE: ::c_int = 53; +pub const IPPROTO_SWIPE: c_int = 53; /// Next Hop Resolution -pub const IPPROTO_NHRP: ::c_int = 54; +pub const IPPROTO_NHRP: c_int = 54; /// IP Mobility -pub const IPPROTO_MOBILE: ::c_int = 55; +pub const IPPROTO_MOBILE: c_int = 55; /// Transport Layer Security -pub const IPPROTO_TLSP: ::c_int = 56; +pub const IPPROTO_TLSP: c_int = 56; /// SKIP -pub const IPPROTO_SKIP: ::c_int = 57; +pub const IPPROTO_SKIP: c_int = 57; // IPPROTO_ICMPV6 defined in src/unix/mod.rs /// IP6 no next header -pub const IPPROTO_NONE: ::c_int = 59; +pub const IPPROTO_NONE: c_int = 59; /// IP6 destination option -pub const IPPROTO_DSTOPTS: ::c_int = 60; +pub const IPPROTO_DSTOPTS: c_int = 60; /// any host internal protocol -pub const IPPROTO_AHIP: ::c_int = 61; +pub const IPPROTO_AHIP: c_int = 61; /// CFTP -pub const IPPROTO_CFTP: ::c_int = 62; +pub const IPPROTO_CFTP: c_int = 62; /// "hello" routing protocol -pub const IPPROTO_HELLO: ::c_int = 63; +pub const IPPROTO_HELLO: c_int = 63; /// SATNET/Backroom EXPAK -pub const IPPROTO_SATEXPAK: ::c_int = 64; +pub const IPPROTO_SATEXPAK: c_int = 64; /// Kryptolan -pub const IPPROTO_KRYPTOLAN: ::c_int = 65; +pub const IPPROTO_KRYPTOLAN: c_int = 65; /// Remote Virtual Disk -pub const IPPROTO_RVD: ::c_int = 66; +pub const IPPROTO_RVD: c_int = 66; /// Pluribus Packet Core -pub const IPPROTO_IPPC: ::c_int = 67; +pub const IPPROTO_IPPC: c_int = 67; /// Any distributed FS -pub const IPPROTO_ADFS: ::c_int = 68; +pub const IPPROTO_ADFS: c_int = 68; /// Satnet Monitoring -pub const IPPROTO_SATMON: ::c_int = 69; +pub const IPPROTO_SATMON: c_int = 69; /// VISA Protocol -pub const IPPROTO_VISA: ::c_int = 70; +pub const IPPROTO_VISA: c_int = 70; /// Packet Core Utility -pub const IPPROTO_IPCV: ::c_int = 71; +pub const IPPROTO_IPCV: c_int = 71; /// Comp. Prot. Net. Executive -pub const IPPROTO_CPNX: ::c_int = 72; +pub const IPPROTO_CPNX: c_int = 72; /// Comp. Prot. HeartBeat -pub const IPPROTO_CPHB: ::c_int = 73; +pub const IPPROTO_CPHB: c_int = 73; /// Wang Span Network -pub const IPPROTO_WSN: ::c_int = 74; +pub const IPPROTO_WSN: c_int = 74; /// Packet Video Protocol -pub const IPPROTO_PVP: ::c_int = 75; +pub const IPPROTO_PVP: c_int = 75; /// BackRoom SATNET Monitoring -pub const IPPROTO_BRSATMON: ::c_int = 76; +pub const IPPROTO_BRSATMON: c_int = 76; /// Sun net disk proto (temp.) -pub const IPPROTO_ND: ::c_int = 77; +pub const IPPROTO_ND: c_int = 77; /// WIDEBAND Monitoring -pub const IPPROTO_WBMON: ::c_int = 78; +pub const IPPROTO_WBMON: c_int = 78; /// WIDEBAND EXPAK -pub const IPPROTO_WBEXPAK: ::c_int = 79; +pub const IPPROTO_WBEXPAK: c_int = 79; /// ISO cnlp -pub const IPPROTO_EON: ::c_int = 80; +pub const IPPROTO_EON: c_int = 80; /// VMTP -pub const IPPROTO_VMTP: ::c_int = 81; +pub const IPPROTO_VMTP: c_int = 81; /// Secure VMTP -pub const IPPROTO_SVMTP: ::c_int = 82; +pub const IPPROTO_SVMTP: c_int = 82; /// Banyon VINES -pub const IPPROTO_VINES: ::c_int = 83; +pub const IPPROTO_VINES: c_int = 83; /// TTP -pub const IPPROTO_TTP: ::c_int = 84; +pub const IPPROTO_TTP: c_int = 84; /// NSFNET-IGP -pub const IPPROTO_IGP: ::c_int = 85; +pub const IPPROTO_IGP: c_int = 85; /// dissimilar gateway prot. -pub const IPPROTO_DGP: ::c_int = 86; +pub const IPPROTO_DGP: c_int = 86; /// TCF -pub const IPPROTO_TCF: ::c_int = 87; +pub const IPPROTO_TCF: c_int = 87; /// Cisco/GXS IGRP -pub const IPPROTO_IGRP: ::c_int = 88; +pub const IPPROTO_IGRP: c_int = 88; /// OSPFIGP -pub const IPPROTO_OSPFIGP: ::c_int = 89; +pub const IPPROTO_OSPFIGP: c_int = 89; /// Strite RPC protocol -pub const IPPROTO_SRPC: ::c_int = 90; +pub const IPPROTO_SRPC: c_int = 90; /// Locus Address Resoloution -pub const IPPROTO_LARP: ::c_int = 91; +pub const IPPROTO_LARP: c_int = 91; /// Multicast Transport -pub const IPPROTO_MTP: ::c_int = 92; +pub const IPPROTO_MTP: c_int = 92; /// AX.25 Frames -pub const IPPROTO_AX25: ::c_int = 93; +pub const IPPROTO_AX25: c_int = 93; /// IP encapsulated in IP -pub const IPPROTO_IPEIP: ::c_int = 94; +pub const IPPROTO_IPEIP: c_int = 94; /// Mobile Int.ing control -pub const IPPROTO_MICP: ::c_int = 95; +pub const IPPROTO_MICP: c_int = 95; /// Semaphore Comm. security -pub const IPPROTO_SCCSP: ::c_int = 96; +pub const IPPROTO_SCCSP: c_int = 96; /// Ethernet IP encapsulation -pub const IPPROTO_ETHERIP: ::c_int = 97; +pub const IPPROTO_ETHERIP: c_int = 97; /// encapsulation header -pub const IPPROTO_ENCAP: ::c_int = 98; +pub const IPPROTO_ENCAP: c_int = 98; /// any private encr. scheme -pub const IPPROTO_APES: ::c_int = 99; +pub const IPPROTO_APES: c_int = 99; /// GMTP -pub const IPPROTO_GMTP: ::c_int = 100; +pub const IPPROTO_GMTP: c_int = 100; /// payload compression (IPComp) -pub const IPPROTO_IPCOMP: ::c_int = 108; +pub const IPPROTO_IPCOMP: c_int = 108; /// SCTP -pub const IPPROTO_SCTP: ::c_int = 132; +pub const IPPROTO_SCTP: c_int = 132; /// IPv6 Mobility Header -pub const IPPROTO_MH: ::c_int = 135; +pub const IPPROTO_MH: c_int = 135; /// UDP-Lite -pub const IPPROTO_UDPLITE: ::c_int = 136; +pub const IPPROTO_UDPLITE: c_int = 136; /// IP6 Host Identity Protocol -pub const IPPROTO_HIP: ::c_int = 139; +pub const IPPROTO_HIP: c_int = 139; /// IP6 Shim6 Protocol -pub const IPPROTO_SHIM6: ::c_int = 140; +pub const IPPROTO_SHIM6: c_int = 140; /* 101-254: Partly Unassigned */ /// Protocol Independent Mcast -pub const IPPROTO_PIM: ::c_int = 103; +pub const IPPROTO_PIM: c_int = 103; /// CARP -pub const IPPROTO_CARP: ::c_int = 112; +pub const IPPROTO_CARP: c_int = 112; /// PGM -pub const IPPROTO_PGM: ::c_int = 113; +pub const IPPROTO_PGM: c_int = 113; /// MPLS-in-IP -pub const IPPROTO_MPLS: ::c_int = 137; +pub const IPPROTO_MPLS: c_int = 137; /// PFSYNC -pub const IPPROTO_PFSYNC: ::c_int = 240; +pub const IPPROTO_PFSYNC: c_int = 240; /* 255: Reserved */ /* BSD Private, local use, namespace incursion, no longer used */ /// OLD divert pseudo-proto -pub const IPPROTO_OLD_DIVERT: ::c_int = 254; -pub const IPPROTO_MAX: ::c_int = 256; +pub const IPPROTO_OLD_DIVERT: c_int = 254; +pub const IPPROTO_MAX: c_int = 256; /// last return value of *_input(), meaning "all job for this pkt is done". -pub const IPPROTO_DONE: ::c_int = 257; +pub const IPPROTO_DONE: c_int = 257; /* Only used internally, so can be outside the range of valid IP protocols. */ /// divert pseudo-protocol -pub const IPPROTO_DIVERT: ::c_int = 258; +pub const IPPROTO_DIVERT: c_int = 258; /// SeND pseudo-protocol -pub const IPPROTO_SEND: ::c_int = 259; +pub const IPPROTO_SEND: c_int = 259; // sys/netinet/TCP.h -pub const TCP_MD5SIG: ::c_int = 16; -pub const TCP_INFO: ::c_int = 32; -pub const TCP_CONGESTION: ::c_int = 64; -pub const TCP_CCALGOOPT: ::c_int = 65; -pub const TCP_MAXUNACKTIME: ::c_int = 68; +pub const TCP_MD5SIG: c_int = 16; +pub const TCP_INFO: c_int = 32; +pub const TCP_CONGESTION: c_int = 64; +pub const TCP_CCALGOOPT: c_int = 65; +pub const TCP_MAXUNACKTIME: c_int = 68; #[deprecated(since = "0.2.160", note = "Removed in FreeBSD 15")] -pub const TCP_MAXPEAKRATE: ::c_int = 69; -pub const TCP_IDLE_REDUCE: ::c_int = 70; -pub const TCP_REMOTE_UDP_ENCAPS_PORT: ::c_int = 71; -pub const TCP_DELACK: ::c_int = 72; -pub const TCP_FIN_IS_RST: ::c_int = 73; -pub const TCP_LOG_LIMIT: ::c_int = 74; -pub const TCP_SHARED_CWND_ALLOWED: ::c_int = 75; -pub const TCP_PROC_ACCOUNTING: ::c_int = 76; -pub const TCP_USE_CMP_ACKS: ::c_int = 77; -pub const TCP_PERF_INFO: ::c_int = 78; -pub const TCP_LRD: ::c_int = 79; -pub const TCP_KEEPINIT: ::c_int = 128; -pub const TCP_FASTOPEN: ::c_int = 1025; -pub const TCP_PCAP_OUT: ::c_int = 2048; -pub const TCP_PCAP_IN: ::c_int = 4096; -pub const TCP_FUNCTION_BLK: ::c_int = 8192; -pub const TCP_FUNCTION_ALIAS: ::c_int = 8193; -pub const TCP_FASTOPEN_PSK_LEN: ::c_int = 16; -pub const TCP_FUNCTION_NAME_LEN_MAX: ::c_int = 32; - -pub const IP_BINDANY: ::c_int = 24; -pub const IP_BINDMULTI: ::c_int = 25; -pub const IP_RSS_LISTEN_BUCKET: ::c_int = 26; -pub const IP_ORIGDSTADDR: ::c_int = 27; -pub const IP_RECVORIGDSTADDR: ::c_int = IP_ORIGDSTADDR; - -pub const IP_DONTFRAG: ::c_int = 67; -pub const IP_RECVTOS: ::c_int = 68; - -pub const IPV6_BINDANY: ::c_int = 64; -pub const IPV6_ORIGDSTADDR: ::c_int = 72; -pub const IPV6_RECVORIGDSTADDR: ::c_int = IPV6_ORIGDSTADDR; - -pub const PF_SLOW: ::c_int = AF_SLOW; -pub const PF_SCLUSTER: ::c_int = AF_SCLUSTER; -pub const PF_ARP: ::c_int = AF_ARP; -pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -pub const PF_IEEE80211: ::c_int = AF_IEEE80211; -pub const PF_INET_SDP: ::c_int = AF_INET_SDP; -pub const PF_INET6_SDP: ::c_int = AF_INET6_SDP; - -pub const NET_RT_DUMP: ::c_int = 1; -pub const NET_RT_FLAGS: ::c_int = 2; -pub const NET_RT_IFLIST: ::c_int = 3; -pub const NET_RT_IFMALIST: ::c_int = 4; -pub const NET_RT_IFLISTL: ::c_int = 5; +pub const TCP_MAXPEAKRATE: c_int = 69; +pub const TCP_IDLE_REDUCE: c_int = 70; +pub const TCP_REMOTE_UDP_ENCAPS_PORT: c_int = 71; +pub const TCP_DELACK: c_int = 72; +pub const TCP_FIN_IS_RST: c_int = 73; +pub const TCP_LOG_LIMIT: c_int = 74; +pub const TCP_SHARED_CWND_ALLOWED: c_int = 75; +pub const TCP_PROC_ACCOUNTING: c_int = 76; +pub const TCP_USE_CMP_ACKS: c_int = 77; +pub const TCP_PERF_INFO: c_int = 78; +pub const TCP_LRD: c_int = 79; +pub const TCP_KEEPINIT: c_int = 128; +pub const TCP_FASTOPEN: c_int = 1025; +pub const TCP_PCAP_OUT: c_int = 2048; +pub const TCP_PCAP_IN: c_int = 4096; +pub const TCP_FUNCTION_BLK: c_int = 8192; +pub const TCP_FUNCTION_ALIAS: c_int = 8193; +pub const TCP_FASTOPEN_PSK_LEN: c_int = 16; +pub const TCP_FUNCTION_NAME_LEN_MAX: c_int = 32; + +pub const IP_BINDANY: c_int = 24; +pub const IP_BINDMULTI: c_int = 25; +pub const IP_RSS_LISTEN_BUCKET: c_int = 26; +pub const IP_ORIGDSTADDR: c_int = 27; +pub const IP_RECVORIGDSTADDR: c_int = IP_ORIGDSTADDR; + +pub const IP_DONTFRAG: c_int = 67; +pub const IP_RECVTOS: c_int = 68; + +pub const IPV6_BINDANY: c_int = 64; +pub const IPV6_ORIGDSTADDR: c_int = 72; +pub const IPV6_RECVORIGDSTADDR: c_int = IPV6_ORIGDSTADDR; + +pub const PF_SLOW: c_int = AF_SLOW; +pub const PF_SCLUSTER: c_int = AF_SCLUSTER; +pub const PF_ARP: c_int = AF_ARP; +pub const PF_BLUETOOTH: c_int = AF_BLUETOOTH; +pub const PF_IEEE80211: c_int = AF_IEEE80211; +pub const PF_INET_SDP: c_int = AF_INET_SDP; +pub const PF_INET6_SDP: c_int = AF_INET6_SDP; + +pub const NET_RT_DUMP: c_int = 1; +pub const NET_RT_FLAGS: c_int = 2; +pub const NET_RT_IFLIST: c_int = 3; +pub const NET_RT_IFMALIST: c_int = 4; +pub const NET_RT_IFLISTL: c_int = 5; // System V IPC -pub const IPC_INFO: ::c_int = 3; -pub const MSG_NOERROR: ::c_int = 0o10000; -pub const SHM_LOCK: ::c_int = 11; -pub const SHM_UNLOCK: ::c_int = 12; -pub const SHM_STAT: ::c_int = 13; -pub const SHM_INFO: ::c_int = 14; -pub const SHM_ANON: *mut ::c_char = 1 as *mut ::c_char; +pub const IPC_INFO: c_int = 3; +pub const MSG_NOERROR: c_int = 0o10000; +pub const SHM_LOCK: c_int = 11; +pub const SHM_UNLOCK: c_int = 12; +pub const SHM_STAT: c_int = 13; +pub const SHM_INFO: c_int = 14; +pub const SHM_ANON: *mut c_char = 1 as *mut c_char; // The *_MAXID constants never should've been used outside of the // FreeBSD base system. And with the exception of CTL_P1003_1B_MAXID, @@ -3857,60 +3861,60 @@ pub const SHM_ANON: *mut ::c_char = 1 as *mut ::c_char; // compatibility only, and are scheduled to be removed in libc 1.0.0. #[doc(hidden)] #[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] -pub const CTL_MAXID: ::c_int = 10; +pub const CTL_MAXID: c_int = 10; #[doc(hidden)] #[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] -pub const KERN_MAXID: ::c_int = 38; +pub const KERN_MAXID: c_int = 38; #[doc(hidden)] #[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] -pub const HW_MAXID: ::c_int = 13; +pub const HW_MAXID: c_int = 13; #[doc(hidden)] #[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] -pub const USER_MAXID: ::c_int = 21; +pub const USER_MAXID: c_int = 21; #[doc(hidden)] #[deprecated(since = "0.2.74", note = "Removed in FreeBSD 13")] -pub const CTL_P1003_1B_MAXID: ::c_int = 26; +pub const CTL_P1003_1B_MAXID: c_int = 26; -pub const MSG_NOTIFICATION: ::c_int = 0x00002000; -pub const MSG_NBIO: ::c_int = 0x00004000; -pub const MSG_COMPAT: ::c_int = 0x00008000; -pub const MSG_CMSG_CLOEXEC: ::c_int = 0x00040000; -pub const MSG_NOSIGNAL: ::c_int = 0x20000; -pub const MSG_WAITFORONE: ::c_int = 0x00080000; +pub const MSG_NOTIFICATION: c_int = 0x00002000; +pub const MSG_NBIO: c_int = 0x00004000; +pub const MSG_COMPAT: c_int = 0x00008000; +pub const MSG_CMSG_CLOEXEC: c_int = 0x00040000; +pub const MSG_NOSIGNAL: c_int = 0x20000; +pub const MSG_WAITFORONE: c_int = 0x00080000; // utmpx entry types -pub const EMPTY: ::c_short = 0; -pub const BOOT_TIME: ::c_short = 1; -pub const OLD_TIME: ::c_short = 2; -pub const NEW_TIME: ::c_short = 3; -pub const USER_PROCESS: ::c_short = 4; -pub const INIT_PROCESS: ::c_short = 5; -pub const LOGIN_PROCESS: ::c_short = 6; -pub const DEAD_PROCESS: ::c_short = 7; -pub const SHUTDOWN_TIME: ::c_short = 8; +pub const EMPTY: c_short = 0; +pub const BOOT_TIME: c_short = 1; +pub const OLD_TIME: c_short = 2; +pub const NEW_TIME: c_short = 3; +pub const USER_PROCESS: c_short = 4; +pub const INIT_PROCESS: c_short = 5; +pub const LOGIN_PROCESS: c_short = 6; +pub const DEAD_PROCESS: c_short = 7; +pub const SHUTDOWN_TIME: c_short = 8; // utmp database types -pub const UTXDB_ACTIVE: ::c_int = 0; -pub const UTXDB_LASTLOGIN: ::c_int = 1; -pub const UTXDB_LOG: ::c_int = 2; - -pub const LC_COLLATE_MASK: ::c_int = 1 << 0; -pub const LC_CTYPE_MASK: ::c_int = 1 << 1; -pub const LC_MONETARY_MASK: ::c_int = 1 << 2; -pub const LC_NUMERIC_MASK: ::c_int = 1 << 3; -pub const LC_TIME_MASK: ::c_int = 1 << 4; -pub const LC_MESSAGES_MASK: ::c_int = 1 << 5; -pub const LC_ALL_MASK: ::c_int = LC_COLLATE_MASK +pub const UTXDB_ACTIVE: c_int = 0; +pub const UTXDB_LASTLOGIN: c_int = 1; +pub const UTXDB_LOG: c_int = 2; + +pub const LC_COLLATE_MASK: c_int = 1 << 0; +pub const LC_CTYPE_MASK: c_int = 1 << 1; +pub const LC_MONETARY_MASK: c_int = 1 << 2; +pub const LC_NUMERIC_MASK: c_int = 1 << 3; +pub const LC_TIME_MASK: c_int = 1 << 4; +pub const LC_MESSAGES_MASK: c_int = 1 << 5; +pub const LC_ALL_MASK: c_int = LC_COLLATE_MASK | LC_CTYPE_MASK | LC_MESSAGES_MASK | LC_MONETARY_MASK | LC_NUMERIC_MASK | LC_TIME_MASK; -pub const WSTOPPED: ::c_int = 2; // same as WUNTRACED -pub const WCONTINUED: ::c_int = 4; -pub const WNOWAIT: ::c_int = 8; -pub const WEXITED: ::c_int = 16; -pub const WTRAPPED: ::c_int = 32; +pub const WSTOPPED: c_int = 2; // same as WUNTRACED +pub const WCONTINUED: c_int = 4; +pub const WNOWAIT: c_int = 8; +pub const WEXITED: c_int = 16; +pub const WTRAPPED: c_int = 32; // FreeBSD defines a great many more of these, we only expose the // standardized ones. @@ -3921,125 +3925,125 @@ pub const P_ALL: idtype_t = 7; pub const UTIME_OMIT: c_long = -2; pub const UTIME_NOW: c_long = -1; -pub const B460800: ::speed_t = 460800; -pub const B921600: ::speed_t = 921600; - -pub const AT_FDCWD: ::c_int = -100; -pub const AT_EACCESS: ::c_int = 0x100; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x200; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400; -pub const AT_REMOVEDIR: ::c_int = 0x800; -pub const AT_RESOLVE_BENEATH: ::c_int = 0x2000; -pub const AT_EMPTY_PATH: ::c_int = 0x4000; - -pub const AT_NULL: ::c_int = 0; -pub const AT_IGNORE: ::c_int = 1; -pub const AT_EXECFD: ::c_int = 2; -pub const AT_PHDR: ::c_int = 3; -pub const AT_PHENT: ::c_int = 4; -pub const AT_PHNUM: ::c_int = 5; -pub const AT_PAGESZ: ::c_int = 6; -pub const AT_BASE: ::c_int = 7; -pub const AT_FLAGS: ::c_int = 8; -pub const AT_ENTRY: ::c_int = 9; -pub const AT_NOTELF: ::c_int = 10; -pub const AT_UID: ::c_int = 11; -pub const AT_EUID: ::c_int = 12; -pub const AT_GID: ::c_int = 13; -pub const AT_EGID: ::c_int = 14; -pub const AT_EXECPATH: ::c_int = 15; -pub const AT_CANARY: ::c_int = 16; -pub const AT_OSRELDATE: ::c_int = 18; -pub const AT_NCPUS: ::c_int = 19; -pub const AT_PAGESIZES: ::c_int = 20; -pub const AT_TIMEKEEP: ::c_int = 22; -pub const AT_HWCAP: ::c_int = 25; -pub const AT_HWCAP2: ::c_int = 26; -pub const AT_USRSTACKBASE: ::c_int = 35; -pub const AT_USRSTACKLIM: ::c_int = 36; - -pub const TABDLY: ::tcflag_t = 0x00000004; -pub const TAB0: ::tcflag_t = 0x00000000; -pub const TAB3: ::tcflag_t = 0x00000004; - -pub const _PC_ACL_NFS4: ::c_int = 64; - -pub const _SC_CPUSET_SIZE: ::c_int = 122; +pub const B460800: crate::speed_t = 460800; +pub const B921600: crate::speed_t = 921600; + +pub const AT_FDCWD: c_int = -100; +pub const AT_EACCESS: c_int = 0x100; +pub const AT_SYMLINK_NOFOLLOW: c_int = 0x200; +pub const AT_SYMLINK_FOLLOW: c_int = 0x400; +pub const AT_REMOVEDIR: c_int = 0x800; +pub const AT_RESOLVE_BENEATH: c_int = 0x2000; +pub const AT_EMPTY_PATH: c_int = 0x4000; + +pub const AT_NULL: c_int = 0; +pub const AT_IGNORE: c_int = 1; +pub const AT_EXECFD: c_int = 2; +pub const AT_PHDR: c_int = 3; +pub const AT_PHENT: c_int = 4; +pub const AT_PHNUM: c_int = 5; +pub const AT_PAGESZ: c_int = 6; +pub const AT_BASE: c_int = 7; +pub const AT_FLAGS: c_int = 8; +pub const AT_ENTRY: c_int = 9; +pub const AT_NOTELF: c_int = 10; +pub const AT_UID: c_int = 11; +pub const AT_EUID: c_int = 12; +pub const AT_GID: c_int = 13; +pub const AT_EGID: c_int = 14; +pub const AT_EXECPATH: c_int = 15; +pub const AT_CANARY: c_int = 16; +pub const AT_OSRELDATE: c_int = 18; +pub const AT_NCPUS: c_int = 19; +pub const AT_PAGESIZES: c_int = 20; +pub const AT_TIMEKEEP: c_int = 22; +pub const AT_HWCAP: c_int = 25; +pub const AT_HWCAP2: c_int = 26; +pub const AT_USRSTACKBASE: c_int = 35; +pub const AT_USRSTACKLIM: c_int = 36; + +pub const TABDLY: crate::tcflag_t = 0x00000004; +pub const TAB0: crate::tcflag_t = 0x00000000; +pub const TAB3: crate::tcflag_t = 0x00000004; + +pub const _PC_ACL_NFS4: c_int = 64; + +pub const _SC_CPUSET_SIZE: c_int = 122; pub const _UUID_NODE_LEN: usize = 6; // Flags which can be passed to pdfork(2) -pub const PD_DAEMON: ::c_int = 0x00000001; -pub const PD_CLOEXEC: ::c_int = 0x00000002; -pub const PD_ALLOWED_AT_FORK: ::c_int = PD_DAEMON | PD_CLOEXEC; +pub const PD_DAEMON: c_int = 0x00000001; +pub const PD_CLOEXEC: c_int = 0x00000002; +pub const PD_ALLOWED_AT_FORK: c_int = PD_DAEMON | PD_CLOEXEC; // Values for struct rtprio (type_ field) -pub const RTP_PRIO_REALTIME: ::c_ushort = 2; -pub const RTP_PRIO_NORMAL: ::c_ushort = 3; -pub const RTP_PRIO_IDLE: ::c_ushort = 4; +pub const RTP_PRIO_REALTIME: c_ushort = 2; +pub const RTP_PRIO_NORMAL: c_ushort = 3; +pub const RTP_PRIO_IDLE: c_ushort = 4; // DIFF(main): changed to `c_short` in f62eb023ab -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_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; // Flags for chflags(2) -pub const UF_SYSTEM: ::c_ulong = 0x00000080; -pub const UF_SPARSE: ::c_ulong = 0x00000100; -pub const UF_OFFLINE: ::c_ulong = 0x00000200; -pub const UF_REPARSE: ::c_ulong = 0x00000400; -pub const UF_ARCHIVE: ::c_ulong = 0x00000800; -pub const UF_READONLY: ::c_ulong = 0x00001000; -pub const UF_HIDDEN: ::c_ulong = 0x00008000; -pub const SF_SNAPSHOT: ::c_ulong = 0x00200000; +pub const UF_SYSTEM: c_ulong = 0x00000080; +pub const UF_SPARSE: c_ulong = 0x00000100; +pub const UF_OFFLINE: c_ulong = 0x00000200; +pub const UF_REPARSE: c_ulong = 0x00000400; +pub const UF_ARCHIVE: c_ulong = 0x00000800; +pub const UF_READONLY: c_ulong = 0x00001000; +pub const UF_HIDDEN: c_ulong = 0x00008000; +pub const SF_SNAPSHOT: c_ulong = 0x00200000; // fcntl commands -pub const F_ADD_SEALS: ::c_int = 19; -pub const F_GET_SEALS: ::c_int = 20; -pub const F_OGETLK: ::c_int = 7; -pub const F_OSETLK: ::c_int = 8; -pub const F_OSETLKW: ::c_int = 9; -pub const F_RDAHEAD: ::c_int = 16; -pub const F_READAHEAD: ::c_int = 15; -pub const F_SETLK_REMOTE: ::c_int = 14; -pub const F_KINFO: ::c_int = 22; +pub const F_ADD_SEALS: c_int = 19; +pub const F_GET_SEALS: c_int = 20; +pub const F_OGETLK: c_int = 7; +pub const F_OSETLK: c_int = 8; +pub const F_OSETLKW: c_int = 9; +pub const F_RDAHEAD: c_int = 16; +pub const F_READAHEAD: c_int = 15; +pub const F_SETLK_REMOTE: c_int = 14; +pub const F_KINFO: c_int = 22; // for use with F_ADD_SEALS -pub const F_SEAL_GROW: ::c_int = 4; -pub const F_SEAL_SEAL: ::c_int = 1; -pub const F_SEAL_SHRINK: ::c_int = 2; -pub const F_SEAL_WRITE: ::c_int = 8; +pub const F_SEAL_GROW: c_int = 4; +pub const F_SEAL_SEAL: c_int = 1; +pub const F_SEAL_SHRINK: c_int = 2; +pub const F_SEAL_WRITE: c_int = 8; // for use with fspacectl -pub const SPACECTL_DEALLOC: ::c_int = 1; +pub const SPACECTL_DEALLOC: c_int = 1; // For realhostname* api -pub const HOSTNAME_FOUND: ::c_int = 0; -pub const HOSTNAME_INCORRECTNAME: ::c_int = 1; -pub const HOSTNAME_INVALIDADDR: ::c_int = 2; -pub const HOSTNAME_INVALIDNAME: ::c_int = 3; +pub const HOSTNAME_FOUND: c_int = 0; +pub const HOSTNAME_INCORRECTNAME: c_int = 1; +pub const HOSTNAME_INVALIDADDR: c_int = 2; +pub const HOSTNAME_INVALIDNAME: c_int = 3; // For rfork -pub const RFFDG: ::c_int = 4; -pub const RFPROC: ::c_int = 16; -pub const RFMEM: ::c_int = 32; -pub const RFNOWAIT: ::c_int = 64; -pub const RFCFDG: ::c_int = 4096; -pub const RFTHREAD: ::c_int = 8192; -pub const RFSIGSHARE: ::c_int = 16384; -pub const RFLINUXTHPN: ::c_int = 65536; -pub const RFTSIGZMB: ::c_int = 524288; -pub const RFSPAWN: ::c_int = 2147483648; +pub const RFFDG: c_int = 4; +pub const RFPROC: c_int = 16; +pub const RFMEM: c_int = 32; +pub const RFNOWAIT: c_int = 64; +pub const RFCFDG: c_int = 4096; +pub const RFTHREAD: c_int = 8192; +pub const RFSIGSHARE: c_int = 16384; +pub const RFLINUXTHPN: c_int = 65536; +pub const RFTSIGZMB: c_int = 524288; +pub const RFSPAWN: c_int = 2147483648; // For eventfd -pub const EFD_SEMAPHORE: ::c_int = 0x1; -pub const EFD_NONBLOCK: ::c_int = 0x4; -pub const EFD_CLOEXEC: ::c_int = 0x100000; +pub const EFD_SEMAPHORE: c_int = 0x1; +pub const EFD_NONBLOCK: c_int = 0x4; +pub const EFD_CLOEXEC: c_int = 0x100000; -pub const MALLOCX_ZERO: ::c_int = 0x40; +pub const MALLOCX_ZERO: c_int = 0x40; /// size of returned wchan message pub const WMESGLEN: usize = 8; @@ -4077,448 +4081,448 @@ pub const LOGNAMELEN: usize = 17; /// size of returned ki_loginclass pub const LOGINCLASSLEN: usize = 17; -pub const KF_ATTR_VALID: ::c_int = 0x0001; -pub const KF_TYPE_NONE: ::c_int = 0; -pub const KF_TYPE_VNODE: ::c_int = 1; -pub const KF_TYPE_SOCKET: ::c_int = 2; -pub const KF_TYPE_PIPE: ::c_int = 3; -pub const KF_TYPE_FIFO: ::c_int = 4; -pub const KF_TYPE_KQUEUE: ::c_int = 5; -pub const KF_TYPE_MQUEUE: ::c_int = 7; -pub const KF_TYPE_SHM: ::c_int = 8; -pub const KF_TYPE_SEM: ::c_int = 9; -pub const KF_TYPE_PTS: ::c_int = 10; -pub const KF_TYPE_PROCDESC: ::c_int = 11; -pub const KF_TYPE_DEV: ::c_int = 12; -pub const KF_TYPE_UNKNOWN: ::c_int = 255; - -pub const KF_VTYPE_VNON: ::c_int = 0; -pub const KF_VTYPE_VREG: ::c_int = 1; -pub const KF_VTYPE_VDIR: ::c_int = 2; -pub const KF_VTYPE_VBLK: ::c_int = 3; -pub const KF_VTYPE_VCHR: ::c_int = 4; -pub const KF_VTYPE_VLNK: ::c_int = 5; -pub const KF_VTYPE_VSOCK: ::c_int = 6; -pub const KF_VTYPE_VFIFO: ::c_int = 7; -pub const KF_VTYPE_VBAD: ::c_int = 8; -pub const KF_VTYPE_UNKNOWN: ::c_int = 255; +pub const KF_ATTR_VALID: c_int = 0x0001; +pub const KF_TYPE_NONE: c_int = 0; +pub const KF_TYPE_VNODE: c_int = 1; +pub const KF_TYPE_SOCKET: c_int = 2; +pub const KF_TYPE_PIPE: c_int = 3; +pub const KF_TYPE_FIFO: c_int = 4; +pub const KF_TYPE_KQUEUE: c_int = 5; +pub const KF_TYPE_MQUEUE: c_int = 7; +pub const KF_TYPE_SHM: c_int = 8; +pub const KF_TYPE_SEM: c_int = 9; +pub const KF_TYPE_PTS: c_int = 10; +pub const KF_TYPE_PROCDESC: c_int = 11; +pub const KF_TYPE_DEV: c_int = 12; +pub const KF_TYPE_UNKNOWN: c_int = 255; + +pub const KF_VTYPE_VNON: c_int = 0; +pub const KF_VTYPE_VREG: c_int = 1; +pub const KF_VTYPE_VDIR: c_int = 2; +pub const KF_VTYPE_VBLK: c_int = 3; +pub const KF_VTYPE_VCHR: c_int = 4; +pub const KF_VTYPE_VLNK: c_int = 5; +pub const KF_VTYPE_VSOCK: c_int = 6; +pub const KF_VTYPE_VFIFO: c_int = 7; +pub const KF_VTYPE_VBAD: c_int = 8; +pub const KF_VTYPE_UNKNOWN: c_int = 255; /// Current working directory -pub const KF_FD_TYPE_CWD: ::c_int = -1; +pub const KF_FD_TYPE_CWD: c_int = -1; /// Root directory -pub const KF_FD_TYPE_ROOT: ::c_int = -2; +pub const KF_FD_TYPE_ROOT: c_int = -2; /// Jail directory -pub const KF_FD_TYPE_JAIL: ::c_int = -3; +pub const KF_FD_TYPE_JAIL: c_int = -3; /// Ktrace vnode -pub const KF_FD_TYPE_TRACE: ::c_int = -4; -pub const KF_FD_TYPE_TEXT: ::c_int = -5; +pub const KF_FD_TYPE_TRACE: c_int = -4; +pub const KF_FD_TYPE_TEXT: c_int = -5; /// Controlling terminal -pub const KF_FD_TYPE_CTTY: ::c_int = -6; -pub const KF_FLAG_READ: ::c_int = 0x00000001; -pub const KF_FLAG_WRITE: ::c_int = 0x00000002; -pub const KF_FLAG_APPEND: ::c_int = 0x00000004; -pub const KF_FLAG_ASYNC: ::c_int = 0x00000008; -pub const KF_FLAG_FSYNC: ::c_int = 0x00000010; -pub const KF_FLAG_NONBLOCK: ::c_int = 0x00000020; -pub const KF_FLAG_DIRECT: ::c_int = 0x00000040; -pub const KF_FLAG_HASLOCK: ::c_int = 0x00000080; -pub const KF_FLAG_SHLOCK: ::c_int = 0x00000100; -pub const KF_FLAG_EXLOCK: ::c_int = 0x00000200; -pub const KF_FLAG_NOFOLLOW: ::c_int = 0x00000400; -pub const KF_FLAG_CREAT: ::c_int = 0x00000800; -pub const KF_FLAG_TRUNC: ::c_int = 0x00001000; -pub const KF_FLAG_EXCL: ::c_int = 0x00002000; -pub const KF_FLAG_EXEC: ::c_int = 0x00004000; - -pub const KVME_TYPE_NONE: ::c_int = 0; -pub const KVME_TYPE_DEFAULT: ::c_int = 1; -pub const KVME_TYPE_VNODE: ::c_int = 2; -pub const KVME_TYPE_SWAP: ::c_int = 3; -pub const KVME_TYPE_DEVICE: ::c_int = 4; -pub const KVME_TYPE_PHYS: ::c_int = 5; -pub const KVME_TYPE_DEAD: ::c_int = 6; -pub const KVME_TYPE_SG: ::c_int = 7; -pub const KVME_TYPE_MGTDEVICE: ::c_int = 8; +pub const KF_FD_TYPE_CTTY: c_int = -6; +pub const KF_FLAG_READ: c_int = 0x00000001; +pub const KF_FLAG_WRITE: c_int = 0x00000002; +pub const KF_FLAG_APPEND: c_int = 0x00000004; +pub const KF_FLAG_ASYNC: c_int = 0x00000008; +pub const KF_FLAG_FSYNC: c_int = 0x00000010; +pub const KF_FLAG_NONBLOCK: c_int = 0x00000020; +pub const KF_FLAG_DIRECT: c_int = 0x00000040; +pub const KF_FLAG_HASLOCK: c_int = 0x00000080; +pub const KF_FLAG_SHLOCK: c_int = 0x00000100; +pub const KF_FLAG_EXLOCK: c_int = 0x00000200; +pub const KF_FLAG_NOFOLLOW: c_int = 0x00000400; +pub const KF_FLAG_CREAT: c_int = 0x00000800; +pub const KF_FLAG_TRUNC: c_int = 0x00001000; +pub const KF_FLAG_EXCL: c_int = 0x00002000; +pub const KF_FLAG_EXEC: c_int = 0x00004000; + +pub const KVME_TYPE_NONE: c_int = 0; +pub const KVME_TYPE_DEFAULT: c_int = 1; +pub const KVME_TYPE_VNODE: c_int = 2; +pub const KVME_TYPE_SWAP: c_int = 3; +pub const KVME_TYPE_DEVICE: c_int = 4; +pub const KVME_TYPE_PHYS: c_int = 5; +pub const KVME_TYPE_DEAD: c_int = 6; +pub const KVME_TYPE_SG: c_int = 7; +pub const KVME_TYPE_MGTDEVICE: c_int = 8; // Present in `sys/user.h` but is undefined for whatever reason... -// pub const KVME_TYPE_GUARD: ::c_int = 9; -pub const KVME_TYPE_UNKNOWN: ::c_int = 255; -pub const KVME_PROT_READ: ::c_int = 0x00000001; -pub const KVME_PROT_WRITE: ::c_int = 0x00000002; -pub const KVME_PROT_EXEC: ::c_int = 0x00000004; -pub const KVME_FLAG_COW: ::c_int = 0x00000001; -pub const KVME_FLAG_NEEDS_COPY: ::c_int = 0x00000002; -pub const KVME_FLAG_NOCOREDUMP: ::c_int = 0x00000004; -pub const KVME_FLAG_SUPER: ::c_int = 0x00000008; -pub const KVME_FLAG_GROWS_UP: ::c_int = 0x00000010; -pub const KVME_FLAG_GROWS_DOWN: ::c_int = 0x00000020; -pub const KVME_FLAG_USER_WIRED: ::c_int = 0x00000040; - -pub const KKST_MAXLEN: ::c_int = 1024; +// pub const KVME_TYPE_GUARD: c_int = 9; +pub const KVME_TYPE_UNKNOWN: c_int = 255; +pub const KVME_PROT_READ: c_int = 0x00000001; +pub const KVME_PROT_WRITE: c_int = 0x00000002; +pub const KVME_PROT_EXEC: c_int = 0x00000004; +pub const KVME_FLAG_COW: c_int = 0x00000001; +pub const KVME_FLAG_NEEDS_COPY: c_int = 0x00000002; +pub const KVME_FLAG_NOCOREDUMP: c_int = 0x00000004; +pub const KVME_FLAG_SUPER: c_int = 0x00000008; +pub const KVME_FLAG_GROWS_UP: c_int = 0x00000010; +pub const KVME_FLAG_GROWS_DOWN: c_int = 0x00000020; +pub const KVME_FLAG_USER_WIRED: c_int = 0x00000040; + +pub const KKST_MAXLEN: c_int = 1024; /// Stack is valid. -pub const KKST_STATE_STACKOK: ::c_int = 0; +pub const KKST_STATE_STACKOK: c_int = 0; /// Stack swapped out. -pub const KKST_STATE_SWAPPED: ::c_int = 1; -pub const KKST_STATE_RUNNING: ::c_int = 2; +pub const KKST_STATE_SWAPPED: c_int = 1; +pub const KKST_STATE_RUNNING: c_int = 2; // Constants about priority. -pub const PRI_MIN: ::c_int = 0; -pub const PRI_MAX: ::c_int = 255; -pub const PRI_MIN_ITHD: ::c_int = PRI_MIN; +pub const PRI_MIN: c_int = 0; +pub const PRI_MAX: c_int = 255; +pub const PRI_MIN_ITHD: c_int = PRI_MIN; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] #[allow(deprecated)] -pub const PRI_MAX_ITHD: ::c_int = PRI_MIN_REALTIME - 1; -pub const PI_REALTIME: ::c_int = PRI_MIN_ITHD + 0; +pub const PRI_MAX_ITHD: c_int = PRI_MIN_REALTIME - 1; +pub const PI_REALTIME: c_int = PRI_MIN_ITHD + 0; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PI_AV: ::c_int = PRI_MIN_ITHD + 4; +pub const PI_AV: c_int = PRI_MIN_ITHD + 4; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PI_NET: ::c_int = PRI_MIN_ITHD + 8; +pub const PI_NET: c_int = PRI_MIN_ITHD + 8; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PI_DISK: ::c_int = PRI_MIN_ITHD + 12; +pub const PI_DISK: c_int = PRI_MIN_ITHD + 12; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PI_TTY: ::c_int = PRI_MIN_ITHD + 16; +pub const PI_TTY: c_int = PRI_MIN_ITHD + 16; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PI_DULL: ::c_int = PRI_MIN_ITHD + 20; +pub const PI_DULL: c_int = PRI_MIN_ITHD + 20; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PI_SOFT: ::c_int = PRI_MIN_ITHD + 24; +pub const PI_SOFT: c_int = PRI_MIN_ITHD + 24; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PRI_MIN_REALTIME: ::c_int = 48; +pub const PRI_MIN_REALTIME: c_int = 48; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] #[allow(deprecated)] -pub const PRI_MAX_REALTIME: ::c_int = PRI_MIN_KERN - 1; +pub const PRI_MAX_REALTIME: c_int = PRI_MIN_KERN - 1; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PRI_MIN_KERN: ::c_int = 80; +pub const PRI_MIN_KERN: c_int = 80; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] #[allow(deprecated)] -pub const PRI_MAX_KERN: ::c_int = PRI_MIN_TIMESHARE - 1; +pub const PRI_MAX_KERN: c_int = PRI_MIN_TIMESHARE - 1; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] #[allow(deprecated)] -pub const PSWP: ::c_int = PRI_MIN_KERN + 0; +pub const PSWP: c_int = PRI_MIN_KERN + 0; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] #[allow(deprecated)] -pub const PVM: ::c_int = PRI_MIN_KERN + 4; +pub const PVM: c_int = PRI_MIN_KERN + 4; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] #[allow(deprecated)] -pub const PINOD: ::c_int = PRI_MIN_KERN + 8; +pub const PINOD: c_int = PRI_MIN_KERN + 8; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] #[allow(deprecated)] -pub const PRIBIO: ::c_int = PRI_MIN_KERN + 12; +pub const PRIBIO: c_int = PRI_MIN_KERN + 12; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] #[allow(deprecated)] -pub const PVFS: ::c_int = PRI_MIN_KERN + 16; +pub const PVFS: c_int = PRI_MIN_KERN + 16; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] #[allow(deprecated)] -pub const PZERO: ::c_int = PRI_MIN_KERN + 20; +pub const PZERO: c_int = PRI_MIN_KERN + 20; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] #[allow(deprecated)] -pub const PSOCK: ::c_int = PRI_MIN_KERN + 24; +pub const PSOCK: c_int = PRI_MIN_KERN + 24; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] #[allow(deprecated)] -pub const PWAIT: ::c_int = PRI_MIN_KERN + 28; +pub const PWAIT: c_int = PRI_MIN_KERN + 28; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] #[allow(deprecated)] -pub const PLOCK: ::c_int = PRI_MIN_KERN + 32; +pub const PLOCK: c_int = PRI_MIN_KERN + 32; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] #[allow(deprecated)] -pub const PPAUSE: ::c_int = PRI_MIN_KERN + 36; +pub const PPAUSE: c_int = PRI_MIN_KERN + 36; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PRI_MIN_TIMESHARE: ::c_int = 120; -pub const PRI_MAX_TIMESHARE: ::c_int = PRI_MIN_IDLE - 1; +pub const PRI_MIN_TIMESHARE: c_int = 120; +pub const PRI_MAX_TIMESHARE: c_int = PRI_MIN_IDLE - 1; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] #[allow(deprecated)] -pub const PUSER: ::c_int = PRI_MIN_TIMESHARE; -pub const PRI_MIN_IDLE: ::c_int = 224; -pub const PRI_MAX_IDLE: ::c_int = PRI_MAX; +pub const PUSER: c_int = PRI_MIN_TIMESHARE; +pub const PRI_MIN_IDLE: c_int = 224; +pub const PRI_MAX_IDLE: c_int = PRI_MAX; -pub const NZERO: ::c_int = 0; +pub const NZERO: c_int = 0; // Resource utilization information. -pub const RUSAGE_THREAD: ::c_int = 1; +pub const RUSAGE_THREAD: c_int = 1; cfg_if! { if #[cfg(any(freebsd11, target_pointer_width = "32"))] { - pub const ARG_MAX: ::c_int = 256 * 1024; + pub const ARG_MAX: c_int = 256 * 1024; } else { - pub const ARG_MAX: ::c_int = 2 * 256 * 1024; + pub const ARG_MAX: c_int = 2 * 256 * 1024; } } -pub const CHILD_MAX: ::c_int = 40; +pub const CHILD_MAX: c_int = 40; /// max command name remembered pub const MAXCOMLEN: usize = 19; /// max interpreter file name length -pub const MAXINTERP: ::c_int = ::PATH_MAX; +pub const MAXINTERP: c_int = crate::PATH_MAX; /// max login name length (incl. NUL) -pub const MAXLOGNAME: ::c_int = 33; +pub const MAXLOGNAME: c_int = 33; /// max simultaneous processes -pub const MAXUPRC: ::c_int = CHILD_MAX; +pub const MAXUPRC: c_int = CHILD_MAX; /// max bytes for an exec function -pub const NCARGS: ::c_int = ARG_MAX; +pub const NCARGS: c_int = ARG_MAX; /// /* max number groups -pub const NGROUPS: ::c_int = NGROUPS_MAX + 1; +pub const NGROUPS: c_int = NGROUPS_MAX + 1; /// max open files per process -pub const NOFILE: ::c_int = OPEN_MAX; +pub const NOFILE: c_int = OPEN_MAX; /// marker for empty group set member -pub const NOGROUP: ::c_int = 65535; +pub const NOGROUP: c_int = 65535; /// max hostname size -pub const MAXHOSTNAMELEN: ::c_int = 256; +pub const MAXHOSTNAMELEN: c_int = 256; /// max bytes in term canon input line -pub const MAX_CANON: ::c_int = 255; +pub const MAX_CANON: c_int = 255; /// max bytes in terminal input -pub const MAX_INPUT: ::c_int = 255; +pub const MAX_INPUT: c_int = 255; /// max bytes in a file name -pub const NAME_MAX: ::c_int = 255; -pub const MAXSYMLINKS: ::c_int = 32; +pub const NAME_MAX: c_int = 255; +pub const MAXSYMLINKS: c_int = 32; /// max supplemental group id's -pub const NGROUPS_MAX: ::c_int = 1023; +pub const NGROUPS_MAX: c_int = 1023; /// max open files per process -pub const OPEN_MAX: ::c_int = 64; +pub const OPEN_MAX: c_int = 64; -pub const _POSIX_ARG_MAX: ::c_int = 4096; -pub const _POSIX_LINK_MAX: ::c_int = 8; -pub const _POSIX_MAX_CANON: ::c_int = 255; -pub const _POSIX_MAX_INPUT: ::c_int = 255; -pub const _POSIX_NAME_MAX: ::c_int = 14; -pub const _POSIX_PIPE_BUF: ::c_int = 512; -pub const _POSIX_SSIZE_MAX: ::c_int = 32767; -pub const _POSIX_STREAM_MAX: ::c_int = 8; +pub const _POSIX_ARG_MAX: c_int = 4096; +pub const _POSIX_LINK_MAX: c_int = 8; +pub const _POSIX_MAX_CANON: c_int = 255; +pub const _POSIX_MAX_INPUT: c_int = 255; +pub const _POSIX_NAME_MAX: c_int = 14; +pub const _POSIX_PIPE_BUF: c_int = 512; +pub const _POSIX_SSIZE_MAX: c_int = 32767; +pub const _POSIX_STREAM_MAX: c_int = 8; /// max ibase/obase values in bc(1) -pub const BC_BASE_MAX: ::c_int = 99; +pub const BC_BASE_MAX: c_int = 99; /// max array elements in bc(1) -pub const BC_DIM_MAX: ::c_int = 2048; +pub const BC_DIM_MAX: c_int = 2048; /// max scale value in bc(1) -pub const BC_SCALE_MAX: ::c_int = 99; +pub const BC_SCALE_MAX: c_int = 99; /// max const string length in bc(1) -pub const BC_STRING_MAX: ::c_int = 1000; +pub const BC_STRING_MAX: c_int = 1000; /// max character class name size -pub const CHARCLASS_NAME_MAX: ::c_int = 14; +pub const CHARCLASS_NAME_MAX: c_int = 14; /// max weights for order keyword -pub const COLL_WEIGHTS_MAX: ::c_int = 10; +pub const COLL_WEIGHTS_MAX: c_int = 10; /// max expressions nested in expr(1) -pub const EXPR_NEST_MAX: ::c_int = 32; +pub const EXPR_NEST_MAX: c_int = 32; /// max bytes in an input line -pub const LINE_MAX: ::c_int = 2048; +pub const LINE_MAX: c_int = 2048; /// max RE's in interval notation -pub const RE_DUP_MAX: ::c_int = 255; - -pub const _POSIX2_BC_BASE_MAX: ::c_int = 99; -pub const _POSIX2_BC_DIM_MAX: ::c_int = 2048; -pub const _POSIX2_BC_SCALE_MAX: ::c_int = 99; -pub const _POSIX2_BC_STRING_MAX: ::c_int = 1000; -pub const _POSIX2_CHARCLASS_NAME_MAX: ::c_int = 14; -pub const _POSIX2_COLL_WEIGHTS_MAX: ::c_int = 2; -pub const _POSIX2_EQUIV_CLASS_MAX: ::c_int = 2; -pub const _POSIX2_EXPR_NEST_MAX: ::c_int = 32; -pub const _POSIX2_LINE_MAX: ::c_int = 2048; -pub const _POSIX2_RE_DUP_MAX: ::c_int = 255; +pub const RE_DUP_MAX: c_int = 255; + +pub const _POSIX2_BC_BASE_MAX: c_int = 99; +pub const _POSIX2_BC_DIM_MAX: c_int = 2048; +pub const _POSIX2_BC_SCALE_MAX: c_int = 99; +pub const _POSIX2_BC_STRING_MAX: c_int = 1000; +pub const _POSIX2_CHARCLASS_NAME_MAX: c_int = 14; +pub const _POSIX2_COLL_WEIGHTS_MAX: c_int = 2; +pub const _POSIX2_EQUIV_CLASS_MAX: c_int = 2; +pub const _POSIX2_EXPR_NEST_MAX: c_int = 32; +pub const _POSIX2_LINE_MAX: c_int = 2048; +pub const _POSIX2_RE_DUP_MAX: c_int = 255; // sys/proc.h -pub const TDF_BORROWING: ::c_int = 0x00000001; -pub const TDF_INPANIC: ::c_int = 0x00000002; -pub const TDF_INMEM: ::c_int = 0x00000004; -pub const TDF_SINTR: ::c_int = 0x00000008; -pub const TDF_TIMEOUT: ::c_int = 0x00000010; -pub const TDF_IDLETD: ::c_int = 0x00000020; -pub const TDF_CANSWAP: ::c_int = 0x00000040; -pub const TDF_KTH_SUSP: ::c_int = 0x00000100; -pub const TDF_ALLPROCSUSP: ::c_int = 0x00000200; -pub const TDF_BOUNDARY: ::c_int = 0x00000400; +pub const TDF_BORROWING: c_int = 0x00000001; +pub const TDF_INPANIC: c_int = 0x00000002; +pub const TDF_INMEM: c_int = 0x00000004; +pub const TDF_SINTR: c_int = 0x00000008; +pub const TDF_TIMEOUT: c_int = 0x00000010; +pub const TDF_IDLETD: c_int = 0x00000020; +pub const TDF_CANSWAP: c_int = 0x00000040; +pub const TDF_KTH_SUSP: c_int = 0x00000100; +pub const TDF_ALLPROCSUSP: c_int = 0x00000200; +pub const TDF_BOUNDARY: c_int = 0x00000400; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const TDF_ASTPENDING: ::c_int = 0x00000800; -pub const TDF_SBDRY: ::c_int = 0x00002000; -pub const TDF_UPIBLOCKED: ::c_int = 0x00004000; +pub const TDF_ASTPENDING: c_int = 0x00000800; +pub const TDF_SBDRY: c_int = 0x00002000; +pub const TDF_UPIBLOCKED: c_int = 0x00004000; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const TDF_NEEDSUSPCHK: ::c_int = 0x00008000; +pub const TDF_NEEDSUSPCHK: c_int = 0x00008000; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const TDF_NEEDRESCHED: ::c_int = 0x00010000; +pub const TDF_NEEDRESCHED: c_int = 0x00010000; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const TDF_NEEDSIGCHK: ::c_int = 0x00020000; -pub const TDF_NOLOAD: ::c_int = 0x00040000; -pub const TDF_SERESTART: ::c_int = 0x00080000; -pub const TDF_THRWAKEUP: ::c_int = 0x00100000; -pub const TDF_SEINTR: ::c_int = 0x00200000; -pub const TDF_SWAPINREQ: ::c_int = 0x00400000; +pub const TDF_NEEDSIGCHK: c_int = 0x00020000; +pub const TDF_NOLOAD: c_int = 0x00040000; +pub const TDF_SERESTART: c_int = 0x00080000; +pub const TDF_THRWAKEUP: c_int = 0x00100000; +pub const TDF_SEINTR: c_int = 0x00200000; +pub const TDF_SWAPINREQ: c_int = 0x00400000; #[deprecated(since = "0.2.133", note = "Removed in FreeBSD 14")] -pub const TDF_UNUSED23: ::c_int = 0x00800000; -pub const TDF_SCHED0: ::c_int = 0x01000000; -pub const TDF_SCHED1: ::c_int = 0x02000000; -pub const TDF_SCHED2: ::c_int = 0x04000000; -pub const TDF_SCHED3: ::c_int = 0x08000000; +pub const TDF_UNUSED23: c_int = 0x00800000; +pub const TDF_SCHED0: c_int = 0x01000000; +pub const TDF_SCHED1: c_int = 0x02000000; +pub const TDF_SCHED2: c_int = 0x04000000; +pub const TDF_SCHED3: c_int = 0x08000000; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const TDF_ALRMPEND: ::c_int = 0x10000000; +pub const TDF_ALRMPEND: c_int = 0x10000000; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const TDF_PROFPEND: ::c_int = 0x20000000; +pub const TDF_PROFPEND: c_int = 0x20000000; #[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const TDF_MACPEND: ::c_int = 0x40000000; - -pub const TDB_SUSPEND: ::c_int = 0x00000001; -pub const TDB_XSIG: ::c_int = 0x00000002; -pub const TDB_USERWR: ::c_int = 0x00000004; -pub const TDB_SCE: ::c_int = 0x00000008; -pub const TDB_SCX: ::c_int = 0x00000010; -pub const TDB_EXEC: ::c_int = 0x00000020; -pub const TDB_FORK: ::c_int = 0x00000040; -pub const TDB_STOPATFORK: ::c_int = 0x00000080; -pub const TDB_CHILD: ::c_int = 0x00000100; -pub const TDB_BORN: ::c_int = 0x00000200; -pub const TDB_EXIT: ::c_int = 0x00000400; -pub const TDB_VFORK: ::c_int = 0x00000800; -pub const TDB_FSTP: ::c_int = 0x00001000; -pub const TDB_STEP: ::c_int = 0x00002000; - -pub const TDP_OLDMASK: ::c_int = 0x00000001; -pub const TDP_INKTR: ::c_int = 0x00000002; -pub const TDP_INKTRACE: ::c_int = 0x00000004; -pub const TDP_BUFNEED: ::c_int = 0x00000008; -pub const TDP_COWINPROGRESS: ::c_int = 0x00000010; -pub const TDP_ALTSTACK: ::c_int = 0x00000020; -pub const TDP_DEADLKTREAT: ::c_int = 0x00000040; -pub const TDP_NOFAULTING: ::c_int = 0x00000080; -pub const TDP_OWEUPC: ::c_int = 0x00000200; -pub const TDP_ITHREAD: ::c_int = 0x00000400; -pub const TDP_SYNCIO: ::c_int = 0x00000800; -pub const TDP_SCHED1: ::c_int = 0x00001000; -pub const TDP_SCHED2: ::c_int = 0x00002000; -pub const TDP_SCHED3: ::c_int = 0x00004000; -pub const TDP_SCHED4: ::c_int = 0x00008000; -pub const TDP_GEOM: ::c_int = 0x00010000; -pub const TDP_SOFTDEP: ::c_int = 0x00020000; -pub const TDP_NORUNNINGBUF: ::c_int = 0x00040000; -pub const TDP_WAKEUP: ::c_int = 0x00080000; -pub const TDP_INBDFLUSH: ::c_int = 0x00100000; -pub const TDP_KTHREAD: ::c_int = 0x00200000; -pub const TDP_CALLCHAIN: ::c_int = 0x00400000; -pub const TDP_IGNSUSP: ::c_int = 0x00800000; -pub const TDP_AUDITREC: ::c_int = 0x01000000; -pub const TDP_RFPPWAIT: ::c_int = 0x02000000; -pub const TDP_RESETSPUR: ::c_int = 0x04000000; -pub const TDP_NERRNO: ::c_int = 0x08000000; -pub const TDP_EXECVMSPC: ::c_int = 0x40000000; - -pub const TDI_SUSPENDED: ::c_int = 0x0001; -pub const TDI_SLEEPING: ::c_int = 0x0002; -pub const TDI_SWAPPED: ::c_int = 0x0004; -pub const TDI_LOCK: ::c_int = 0x0008; -pub const TDI_IWAIT: ::c_int = 0x0010; - -pub const P_ADVLOCK: ::c_int = 0x00000001; -pub const P_CONTROLT: ::c_int = 0x00000002; -pub const P_KPROC: ::c_int = 0x00000004; -pub const P_UNUSED3: ::c_int = 0x00000008; -pub const P_PPWAIT: ::c_int = 0x00000010; -pub const P_PROFIL: ::c_int = 0x00000020; -pub const P_STOPPROF: ::c_int = 0x00000040; -pub const P_HADTHREADS: ::c_int = 0x00000080; -pub const P_SUGID: ::c_int = 0x00000100; -pub const P_SYSTEM: ::c_int = 0x00000200; -pub const P_SINGLE_EXIT: ::c_int = 0x00000400; -pub const P_TRACED: ::c_int = 0x00000800; -pub const P_WAITED: ::c_int = 0x00001000; -pub const P_WEXIT: ::c_int = 0x00002000; -pub const P_EXEC: ::c_int = 0x00004000; -pub const P_WKILLED: ::c_int = 0x00008000; -pub const P_CONTINUED: ::c_int = 0x00010000; -pub const P_STOPPED_SIG: ::c_int = 0x00020000; -pub const P_STOPPED_TRACE: ::c_int = 0x00040000; -pub const P_STOPPED_SINGLE: ::c_int = 0x00080000; -pub const P_PROTECTED: ::c_int = 0x00100000; -pub const P_SIGEVENT: ::c_int = 0x00200000; -pub const P_SINGLE_BOUNDARY: ::c_int = 0x00400000; -pub const P_HWPMC: ::c_int = 0x00800000; -pub const P_JAILED: ::c_int = 0x01000000; -pub const P_TOTAL_STOP: ::c_int = 0x02000000; -pub const P_INEXEC: ::c_int = 0x04000000; -pub const P_STATCHILD: ::c_int = 0x08000000; -pub const P_INMEM: ::c_int = 0x10000000; -pub const P_SWAPPINGOUT: ::c_int = 0x20000000; -pub const P_SWAPPINGIN: ::c_int = 0x40000000; -pub const P_PPTRACE: ::c_int = 0x80000000; -pub const P_STOPPED: ::c_int = P_STOPPED_SIG | P_STOPPED_SINGLE | P_STOPPED_TRACE; - -pub const P2_INHERIT_PROTECTED: ::c_int = 0x00000001; -pub const P2_NOTRACE: ::c_int = 0x00000002; -pub const P2_NOTRACE_EXEC: ::c_int = 0x00000004; -pub const P2_AST_SU: ::c_int = 0x00000008; -pub const P2_PTRACE_FSTP: ::c_int = 0x00000010; -pub const P2_TRAPCAP: ::c_int = 0x00000020; -pub const P2_STKGAP_DISABLE: ::c_int = 0x00000800; -pub const P2_STKGAP_DISABLE_EXEC: ::c_int = 0x00001000; - -pub const P_TREE_ORPHANED: ::c_int = 0x00000001; -pub const P_TREE_FIRST_ORPHAN: ::c_int = 0x00000002; -pub const P_TREE_REAPER: ::c_int = 0x00000004; - -pub const SIDL: ::c_char = 1; -pub const SRUN: ::c_char = 2; -pub const SSLEEP: ::c_char = 3; -pub const SSTOP: ::c_char = 4; -pub const SZOMB: ::c_char = 5; -pub const SWAIT: ::c_char = 6; -pub const SLOCK: ::c_char = 7; - -pub const P_MAGIC: ::c_int = 0xbeefface; - -pub const TDP_SIGFASTBLOCK: ::c_int = 0x00000100; -pub const TDP_UIOHELD: ::c_int = 0x10000000; -pub const TDP_SIGFASTPENDING: ::c_int = 0x80000000; -pub const TDP2_COMPAT32RB: ::c_int = 0x00000002; -pub const P2_PROTMAX_ENABLE: ::c_int = 0x00000200; -pub const P2_PROTMAX_DISABLE: ::c_int = 0x00000400; -pub const TDP2_SBPAGES: ::c_int = 0x00000001; -pub const P2_ASLR_ENABLE: ::c_int = 0x00000040; -pub const P2_ASLR_DISABLE: ::c_int = 0x00000080; -pub const P2_ASLR_IGNSTART: ::c_int = 0x00000100; -pub const P_TREE_GRPEXITED: ::c_int = 0x00000008; +pub const TDF_MACPEND: c_int = 0x40000000; + +pub const TDB_SUSPEND: c_int = 0x00000001; +pub const TDB_XSIG: c_int = 0x00000002; +pub const TDB_USERWR: c_int = 0x00000004; +pub const TDB_SCE: c_int = 0x00000008; +pub const TDB_SCX: c_int = 0x00000010; +pub const TDB_EXEC: c_int = 0x00000020; +pub const TDB_FORK: c_int = 0x00000040; +pub const TDB_STOPATFORK: c_int = 0x00000080; +pub const TDB_CHILD: c_int = 0x00000100; +pub const TDB_BORN: c_int = 0x00000200; +pub const TDB_EXIT: c_int = 0x00000400; +pub const TDB_VFORK: c_int = 0x00000800; +pub const TDB_FSTP: c_int = 0x00001000; +pub const TDB_STEP: c_int = 0x00002000; + +pub const TDP_OLDMASK: c_int = 0x00000001; +pub const TDP_INKTR: c_int = 0x00000002; +pub const TDP_INKTRACE: c_int = 0x00000004; +pub const TDP_BUFNEED: c_int = 0x00000008; +pub const TDP_COWINPROGRESS: c_int = 0x00000010; +pub const TDP_ALTSTACK: c_int = 0x00000020; +pub const TDP_DEADLKTREAT: c_int = 0x00000040; +pub const TDP_NOFAULTING: c_int = 0x00000080; +pub const TDP_OWEUPC: c_int = 0x00000200; +pub const TDP_ITHREAD: c_int = 0x00000400; +pub const TDP_SYNCIO: c_int = 0x00000800; +pub const TDP_SCHED1: c_int = 0x00001000; +pub const TDP_SCHED2: c_int = 0x00002000; +pub const TDP_SCHED3: c_int = 0x00004000; +pub const TDP_SCHED4: c_int = 0x00008000; +pub const TDP_GEOM: c_int = 0x00010000; +pub const TDP_SOFTDEP: c_int = 0x00020000; +pub const TDP_NORUNNINGBUF: c_int = 0x00040000; +pub const TDP_WAKEUP: c_int = 0x00080000; +pub const TDP_INBDFLUSH: c_int = 0x00100000; +pub const TDP_KTHREAD: c_int = 0x00200000; +pub const TDP_CALLCHAIN: c_int = 0x00400000; +pub const TDP_IGNSUSP: c_int = 0x00800000; +pub const TDP_AUDITREC: c_int = 0x01000000; +pub const TDP_RFPPWAIT: c_int = 0x02000000; +pub const TDP_RESETSPUR: c_int = 0x04000000; +pub const TDP_NERRNO: c_int = 0x08000000; +pub const TDP_EXECVMSPC: c_int = 0x40000000; + +pub const TDI_SUSPENDED: c_int = 0x0001; +pub const TDI_SLEEPING: c_int = 0x0002; +pub const TDI_SWAPPED: c_int = 0x0004; +pub const TDI_LOCK: c_int = 0x0008; +pub const TDI_IWAIT: c_int = 0x0010; + +pub const P_ADVLOCK: c_int = 0x00000001; +pub const P_CONTROLT: c_int = 0x00000002; +pub const P_KPROC: c_int = 0x00000004; +pub const P_UNUSED3: c_int = 0x00000008; +pub const P_PPWAIT: c_int = 0x00000010; +pub const P_PROFIL: c_int = 0x00000020; +pub const P_STOPPROF: c_int = 0x00000040; +pub const P_HADTHREADS: c_int = 0x00000080; +pub const P_SUGID: c_int = 0x00000100; +pub const P_SYSTEM: c_int = 0x00000200; +pub const P_SINGLE_EXIT: c_int = 0x00000400; +pub const P_TRACED: c_int = 0x00000800; +pub const P_WAITED: c_int = 0x00001000; +pub const P_WEXIT: c_int = 0x00002000; +pub const P_EXEC: c_int = 0x00004000; +pub const P_WKILLED: c_int = 0x00008000; +pub const P_CONTINUED: c_int = 0x00010000; +pub const P_STOPPED_SIG: c_int = 0x00020000; +pub const P_STOPPED_TRACE: c_int = 0x00040000; +pub const P_STOPPED_SINGLE: c_int = 0x00080000; +pub const P_PROTECTED: c_int = 0x00100000; +pub const P_SIGEVENT: c_int = 0x00200000; +pub const P_SINGLE_BOUNDARY: c_int = 0x00400000; +pub const P_HWPMC: c_int = 0x00800000; +pub const P_JAILED: c_int = 0x01000000; +pub const P_TOTAL_STOP: c_int = 0x02000000; +pub const P_INEXEC: c_int = 0x04000000; +pub const P_STATCHILD: c_int = 0x08000000; +pub const P_INMEM: c_int = 0x10000000; +pub const P_SWAPPINGOUT: c_int = 0x20000000; +pub const P_SWAPPINGIN: c_int = 0x40000000; +pub const P_PPTRACE: c_int = 0x80000000; +pub const P_STOPPED: c_int = P_STOPPED_SIG | P_STOPPED_SINGLE | P_STOPPED_TRACE; + +pub const P2_INHERIT_PROTECTED: c_int = 0x00000001; +pub const P2_NOTRACE: c_int = 0x00000002; +pub const P2_NOTRACE_EXEC: c_int = 0x00000004; +pub const P2_AST_SU: c_int = 0x00000008; +pub const P2_PTRACE_FSTP: c_int = 0x00000010; +pub const P2_TRAPCAP: c_int = 0x00000020; +pub const P2_STKGAP_DISABLE: c_int = 0x00000800; +pub const P2_STKGAP_DISABLE_EXEC: c_int = 0x00001000; + +pub const P_TREE_ORPHANED: c_int = 0x00000001; +pub const P_TREE_FIRST_ORPHAN: c_int = 0x00000002; +pub const P_TREE_REAPER: c_int = 0x00000004; + +pub const SIDL: c_char = 1; +pub const SRUN: c_char = 2; +pub const SSLEEP: c_char = 3; +pub const SSTOP: c_char = 4; +pub const SZOMB: c_char = 5; +pub const SWAIT: c_char = 6; +pub const SLOCK: c_char = 7; + +pub const P_MAGIC: c_int = 0xbeefface; + +pub const TDP_SIGFASTBLOCK: c_int = 0x00000100; +pub const TDP_UIOHELD: c_int = 0x10000000; +pub const TDP_SIGFASTPENDING: c_int = 0x80000000; +pub const TDP2_COMPAT32RB: c_int = 0x00000002; +pub const P2_PROTMAX_ENABLE: c_int = 0x00000200; +pub const P2_PROTMAX_DISABLE: c_int = 0x00000400; +pub const TDP2_SBPAGES: c_int = 0x00000001; +pub const P2_ASLR_ENABLE: c_int = 0x00000040; +pub const P2_ASLR_DISABLE: c_int = 0x00000080; +pub const P2_ASLR_IGNSTART: c_int = 0x00000100; +pub const P_TREE_GRPEXITED: c_int = 0x00000008; // libprocstat.h -pub const PS_FST_VTYPE_VNON: ::c_int = 1; -pub const PS_FST_VTYPE_VREG: ::c_int = 2; -pub const PS_FST_VTYPE_VDIR: ::c_int = 3; -pub const PS_FST_VTYPE_VBLK: ::c_int = 4; -pub const PS_FST_VTYPE_VCHR: ::c_int = 5; -pub const PS_FST_VTYPE_VLNK: ::c_int = 6; -pub const PS_FST_VTYPE_VSOCK: ::c_int = 7; -pub const PS_FST_VTYPE_VFIFO: ::c_int = 8; -pub const PS_FST_VTYPE_VBAD: ::c_int = 9; -pub const PS_FST_VTYPE_UNKNOWN: ::c_int = 255; - -pub const PS_FST_TYPE_VNODE: ::c_int = 1; -pub const PS_FST_TYPE_FIFO: ::c_int = 2; -pub const PS_FST_TYPE_SOCKET: ::c_int = 3; -pub const PS_FST_TYPE_PIPE: ::c_int = 4; -pub const PS_FST_TYPE_PTS: ::c_int = 5; -pub const PS_FST_TYPE_KQUEUE: ::c_int = 6; -pub const PS_FST_TYPE_MQUEUE: ::c_int = 8; -pub const PS_FST_TYPE_SHM: ::c_int = 9; -pub const PS_FST_TYPE_SEM: ::c_int = 10; -pub const PS_FST_TYPE_UNKNOWN: ::c_int = 11; -pub const PS_FST_TYPE_NONE: ::c_int = 12; -pub const PS_FST_TYPE_PROCDESC: ::c_int = 13; -pub const PS_FST_TYPE_DEV: ::c_int = 14; -pub const PS_FST_TYPE_EVENTFD: ::c_int = 15; - -pub const PS_FST_UFLAG_RDIR: ::c_int = 0x0001; -pub const PS_FST_UFLAG_CDIR: ::c_int = 0x0002; -pub const PS_FST_UFLAG_JAIL: ::c_int = 0x0004; -pub const PS_FST_UFLAG_TRACE: ::c_int = 0x0008; -pub const PS_FST_UFLAG_TEXT: ::c_int = 0x0010; -pub const PS_FST_UFLAG_MMAP: ::c_int = 0x0020; -pub const PS_FST_UFLAG_CTTY: ::c_int = 0x0040; - -pub const PS_FST_FFLAG_READ: ::c_int = 0x0001; -pub const PS_FST_FFLAG_WRITE: ::c_int = 0x0002; -pub const PS_FST_FFLAG_NONBLOCK: ::c_int = 0x0004; -pub const PS_FST_FFLAG_APPEND: ::c_int = 0x0008; -pub const PS_FST_FFLAG_SHLOCK: ::c_int = 0x0010; -pub const PS_FST_FFLAG_EXLOCK: ::c_int = 0x0020; -pub const PS_FST_FFLAG_ASYNC: ::c_int = 0x0040; -pub const PS_FST_FFLAG_SYNC: ::c_int = 0x0080; -pub const PS_FST_FFLAG_NOFOLLOW: ::c_int = 0x0100; -pub const PS_FST_FFLAG_CREAT: ::c_int = 0x0200; -pub const PS_FST_FFLAG_TRUNC: ::c_int = 0x0400; -pub const PS_FST_FFLAG_EXCL: ::c_int = 0x0800; -pub const PS_FST_FFLAG_DIRECT: ::c_int = 0x1000; -pub const PS_FST_FFLAG_EXEC: ::c_int = 0x2000; -pub const PS_FST_FFLAG_HASLOCK: ::c_int = 0x4000; +pub const PS_FST_VTYPE_VNON: c_int = 1; +pub const PS_FST_VTYPE_VREG: c_int = 2; +pub const PS_FST_VTYPE_VDIR: c_int = 3; +pub const PS_FST_VTYPE_VBLK: c_int = 4; +pub const PS_FST_VTYPE_VCHR: c_int = 5; +pub const PS_FST_VTYPE_VLNK: c_int = 6; +pub const PS_FST_VTYPE_VSOCK: c_int = 7; +pub const PS_FST_VTYPE_VFIFO: c_int = 8; +pub const PS_FST_VTYPE_VBAD: c_int = 9; +pub const PS_FST_VTYPE_UNKNOWN: c_int = 255; + +pub const PS_FST_TYPE_VNODE: c_int = 1; +pub const PS_FST_TYPE_FIFO: c_int = 2; +pub const PS_FST_TYPE_SOCKET: c_int = 3; +pub const PS_FST_TYPE_PIPE: c_int = 4; +pub const PS_FST_TYPE_PTS: c_int = 5; +pub const PS_FST_TYPE_KQUEUE: c_int = 6; +pub const PS_FST_TYPE_MQUEUE: c_int = 8; +pub const PS_FST_TYPE_SHM: c_int = 9; +pub const PS_FST_TYPE_SEM: c_int = 10; +pub const PS_FST_TYPE_UNKNOWN: c_int = 11; +pub const PS_FST_TYPE_NONE: c_int = 12; +pub const PS_FST_TYPE_PROCDESC: c_int = 13; +pub const PS_FST_TYPE_DEV: c_int = 14; +pub const PS_FST_TYPE_EVENTFD: c_int = 15; + +pub const PS_FST_UFLAG_RDIR: c_int = 0x0001; +pub const PS_FST_UFLAG_CDIR: c_int = 0x0002; +pub const PS_FST_UFLAG_JAIL: c_int = 0x0004; +pub const PS_FST_UFLAG_TRACE: c_int = 0x0008; +pub const PS_FST_UFLAG_TEXT: c_int = 0x0010; +pub const PS_FST_UFLAG_MMAP: c_int = 0x0020; +pub const PS_FST_UFLAG_CTTY: c_int = 0x0040; + +pub const PS_FST_FFLAG_READ: c_int = 0x0001; +pub const PS_FST_FFLAG_WRITE: c_int = 0x0002; +pub const PS_FST_FFLAG_NONBLOCK: c_int = 0x0004; +pub const PS_FST_FFLAG_APPEND: c_int = 0x0008; +pub const PS_FST_FFLAG_SHLOCK: c_int = 0x0010; +pub const PS_FST_FFLAG_EXLOCK: c_int = 0x0020; +pub const PS_FST_FFLAG_ASYNC: c_int = 0x0040; +pub const PS_FST_FFLAG_SYNC: c_int = 0x0080; +pub const PS_FST_FFLAG_NOFOLLOW: c_int = 0x0100; +pub const PS_FST_FFLAG_CREAT: c_int = 0x0200; +pub const PS_FST_FFLAG_TRUNC: c_int = 0x0400; +pub const PS_FST_FFLAG_EXCL: c_int = 0x0800; +pub const PS_FST_FFLAG_DIRECT: c_int = 0x1000; +pub const PS_FST_FFLAG_EXEC: c_int = 0x2000; +pub const PS_FST_FFLAG_HASLOCK: c_int = 0x4000; // sys/mount.h @@ -4527,16 +4531,16 @@ pub const PS_FST_FFLAG_HASLOCK: ::c_int = 0x4000; /// /// Note that the offset of fid_data is 4 bytes, so care must be taken to avoid /// undefined behavior accessing unaligned fields within an embedded struct. -pub const MAXFIDSZ: ::c_int = 16; +pub const MAXFIDSZ: c_int = 16; /// Length of type name including null. -pub const MFSNAMELEN: ::c_int = 16; +pub const MFSNAMELEN: c_int = 16; cfg_if! { if #[cfg(any(freebsd10, freebsd11))] { /// Size of on/from name bufs. - pub const MNAMELEN: ::c_int = 88; + pub const MNAMELEN: c_int = 88; } else { /// Size of on/from name bufs. - pub const MNAMELEN: ::c_int = 1024; + pub const MNAMELEN: c_int = 1024; } } @@ -4577,326 +4581,326 @@ pub const MNT_RECURSE: u64 = 0x100000000000; pub const MNT_DEFERRED: u64 = 0x200000000000; /// Get configured filesystems. -pub const VFS_VFSCONF: ::c_int = 0; +pub const VFS_VFSCONF: c_int = 0; /// Generic filesystem information. -pub const VFS_GENERIC: ::c_int = 0; +pub const VFS_GENERIC: c_int = 0; /// int: highest defined filesystem type. -pub const VFS_MAXTYPENUM: ::c_int = 1; +pub const VFS_MAXTYPENUM: c_int = 1; /// struct: vfsconf for filesystem given as next argument. -pub const VFS_CONF: ::c_int = 2; +pub const VFS_CONF: c_int = 2; /// Synchronously wait for I/O to complete. -pub const MNT_WAIT: ::c_int = 1; +pub const MNT_WAIT: c_int = 1; /// Start all I/O, but do not wait for it. -pub const MNT_NOWAIT: ::c_int = 2; +pub const MNT_NOWAIT: c_int = 2; /// Push data not written by filesystem syncer. -pub const MNT_LAZY: ::c_int = 3; +pub const MNT_LAZY: c_int = 3; /// Suspend file system after sync. -pub const MNT_SUSPEND: ::c_int = 4; +pub const MNT_SUSPEND: c_int = 4; -pub const MAXSECFLAVORS: ::c_int = 5; +pub const MAXSECFLAVORS: c_int = 5; /// Statically compiled into kernel. -pub const VFCF_STATIC: ::c_int = 0x00010000; +pub const VFCF_STATIC: c_int = 0x00010000; /// May get data over the network. -pub const VFCF_NETWORK: ::c_int = 0x00020000; +pub const VFCF_NETWORK: c_int = 0x00020000; /// Writes are not implemented. -pub const VFCF_READONLY: ::c_int = 0x00040000; +pub const VFCF_READONLY: c_int = 0x00040000; /// Data does not represent real files. -pub const VFCF_SYNTHETIC: ::c_int = 0x00080000; +pub const VFCF_SYNTHETIC: c_int = 0x00080000; /// Aliases some other mounted FS. -pub const VFCF_LOOPBACK: ::c_int = 0x00100000; +pub const VFCF_LOOPBACK: c_int = 0x00100000; /// Stores file names as Unicode. -pub const VFCF_UNICODE: ::c_int = 0x00200000; +pub const VFCF_UNICODE: c_int = 0x00200000; /// Can be mounted from within a jail. -pub const VFCF_JAIL: ::c_int = 0x00400000; +pub const VFCF_JAIL: c_int = 0x00400000; /// Supports delegated administration. -pub const VFCF_DELEGADMIN: ::c_int = 0x00800000; +pub const VFCF_DELEGADMIN: c_int = 0x00800000; /// Stop at Boundary: defer stop requests to kernel->user (AST) transition. -pub const VFCF_SBDRY: ::c_int = 0x01000000; +pub const VFCF_SBDRY: c_int = 0x01000000; // time.h /// not on dst -pub const DST_NONE: ::c_int = 0; +pub const DST_NONE: c_int = 0; /// USA style dst -pub const DST_USA: ::c_int = 1; +pub const DST_USA: c_int = 1; /// Australian style dst -pub const DST_AUST: ::c_int = 2; +pub const DST_AUST: c_int = 2; /// Western European dst -pub const DST_WET: ::c_int = 3; +pub const DST_WET: c_int = 3; /// Middle European dst -pub const DST_MET: ::c_int = 4; +pub const DST_MET: c_int = 4; /// Eastern European dst -pub const DST_EET: ::c_int = 5; +pub const DST_EET: c_int = 5; /// Canada -pub const DST_CAN: ::c_int = 6; - -pub const CPUCLOCK_WHICH_PID: ::c_int = 0; -pub const CPUCLOCK_WHICH_TID: ::c_int = 1; - -pub const MFD_CLOEXEC: ::c_uint = 0x00000001; -pub const MFD_ALLOW_SEALING: ::c_uint = 0x00000002; -pub const MFD_HUGETLB: ::c_uint = 0x00000004; -pub const MFD_HUGE_MASK: ::c_uint = 0xFC000000; -pub const MFD_HUGE_64KB: ::c_uint = 16 << 26; -pub const MFD_HUGE_512KB: ::c_uint = 19 << 26; -pub const MFD_HUGE_1MB: ::c_uint = 20 << 26; -pub const MFD_HUGE_2MB: ::c_uint = 21 << 26; -pub const MFD_HUGE_8MB: ::c_uint = 23 << 26; -pub const MFD_HUGE_16MB: ::c_uint = 24 << 26; -pub const MFD_HUGE_32MB: ::c_uint = 25 << 26; -pub const MFD_HUGE_256MB: ::c_uint = 28 << 26; -pub const MFD_HUGE_512MB: ::c_uint = 29 << 26; -pub const MFD_HUGE_1GB: ::c_uint = 30 << 26; -pub const MFD_HUGE_2GB: ::c_uint = 31 << 26; -pub const MFD_HUGE_16GB: ::c_uint = 34 << 26; - -pub const SHM_LARGEPAGE_ALLOC_DEFAULT: ::c_int = 0; -pub const SHM_LARGEPAGE_ALLOC_NOWAIT: ::c_int = 1; -pub const SHM_LARGEPAGE_ALLOC_HARD: ::c_int = 2; -pub const SHM_RENAME_NOREPLACE: ::c_int = 1 << 0; -pub const SHM_RENAME_EXCHANGE: ::c_int = 1 << 1; +pub const DST_CAN: c_int = 6; + +pub const CPUCLOCK_WHICH_PID: c_int = 0; +pub const CPUCLOCK_WHICH_TID: c_int = 1; + +pub const MFD_CLOEXEC: c_uint = 0x00000001; +pub const MFD_ALLOW_SEALING: c_uint = 0x00000002; +pub const MFD_HUGETLB: c_uint = 0x00000004; +pub const MFD_HUGE_MASK: c_uint = 0xFC000000; +pub const MFD_HUGE_64KB: c_uint = 16 << 26; +pub const MFD_HUGE_512KB: c_uint = 19 << 26; +pub const MFD_HUGE_1MB: c_uint = 20 << 26; +pub const MFD_HUGE_2MB: c_uint = 21 << 26; +pub const MFD_HUGE_8MB: c_uint = 23 << 26; +pub const MFD_HUGE_16MB: c_uint = 24 << 26; +pub const MFD_HUGE_32MB: c_uint = 25 << 26; +pub const MFD_HUGE_256MB: c_uint = 28 << 26; +pub const MFD_HUGE_512MB: c_uint = 29 << 26; +pub const MFD_HUGE_1GB: c_uint = 30 << 26; +pub const MFD_HUGE_2GB: c_uint = 31 << 26; +pub const MFD_HUGE_16GB: c_uint = 34 << 26; + +pub const SHM_LARGEPAGE_ALLOC_DEFAULT: c_int = 0; +pub const SHM_LARGEPAGE_ALLOC_NOWAIT: c_int = 1; +pub const SHM_LARGEPAGE_ALLOC_HARD: c_int = 2; +pub const SHM_RENAME_NOREPLACE: c_int = 1 << 0; +pub const SHM_RENAME_EXCHANGE: c_int = 1 << 1; // sys/umtx.h -pub const UMTX_OP_WAIT: ::c_int = 2; -pub const UMTX_OP_WAKE: ::c_int = 3; -pub const UMTX_OP_MUTEX_TRYLOCK: ::c_int = 4; -pub const UMTX_OP_MUTEX_LOCK: ::c_int = 5; -pub const UMTX_OP_MUTEX_UNLOCK: ::c_int = 6; -pub const UMTX_OP_SET_CEILING: ::c_int = 7; -pub const UMTX_OP_CV_WAIT: ::c_int = 8; -pub const UMTX_OP_CV_SIGNAL: ::c_int = 9; -pub const UMTX_OP_CV_BROADCAST: ::c_int = 10; -pub const UMTX_OP_WAIT_UINT: ::c_int = 11; -pub const UMTX_OP_RW_RDLOCK: ::c_int = 12; -pub const UMTX_OP_RW_WRLOCK: ::c_int = 13; -pub const UMTX_OP_RW_UNLOCK: ::c_int = 14; -pub const UMTX_OP_WAIT_UINT_PRIVATE: ::c_int = 15; -pub const UMTX_OP_WAKE_PRIVATE: ::c_int = 16; -pub const UMTX_OP_MUTEX_WAIT: ::c_int = 17; -pub const UMTX_OP_NWAKE_PRIVATE: ::c_int = 21; -pub const UMTX_OP_MUTEX_WAKE2: ::c_int = 22; -pub const UMTX_OP_SEM2_WAIT: ::c_int = 23; -pub const UMTX_OP_SEM2_WAKE: ::c_int = 24; -pub const UMTX_OP_SHM: ::c_int = 25; -pub const UMTX_OP_ROBUST_LISTS: ::c_int = 26; +pub const UMTX_OP_WAIT: c_int = 2; +pub const UMTX_OP_WAKE: c_int = 3; +pub const UMTX_OP_MUTEX_TRYLOCK: c_int = 4; +pub const UMTX_OP_MUTEX_LOCK: c_int = 5; +pub const UMTX_OP_MUTEX_UNLOCK: c_int = 6; +pub const UMTX_OP_SET_CEILING: c_int = 7; +pub const UMTX_OP_CV_WAIT: c_int = 8; +pub const UMTX_OP_CV_SIGNAL: c_int = 9; +pub const UMTX_OP_CV_BROADCAST: c_int = 10; +pub const UMTX_OP_WAIT_UINT: c_int = 11; +pub const UMTX_OP_RW_RDLOCK: c_int = 12; +pub const UMTX_OP_RW_WRLOCK: c_int = 13; +pub const UMTX_OP_RW_UNLOCK: c_int = 14; +pub const UMTX_OP_WAIT_UINT_PRIVATE: c_int = 15; +pub const UMTX_OP_WAKE_PRIVATE: c_int = 16; +pub const UMTX_OP_MUTEX_WAIT: c_int = 17; +pub const UMTX_OP_NWAKE_PRIVATE: c_int = 21; +pub const UMTX_OP_MUTEX_WAKE2: c_int = 22; +pub const UMTX_OP_SEM2_WAIT: c_int = 23; +pub const UMTX_OP_SEM2_WAKE: c_int = 24; +pub const UMTX_OP_SHM: c_int = 25; +pub const UMTX_OP_ROBUST_LISTS: c_int = 26; pub const UMTX_ABSTIME: u32 = 1; -pub const CPU_LEVEL_ROOT: ::c_int = 1; -pub const CPU_LEVEL_CPUSET: ::c_int = 2; -pub const CPU_LEVEL_WHICH: ::c_int = 3; +pub const CPU_LEVEL_ROOT: c_int = 1; +pub const CPU_LEVEL_CPUSET: c_int = 2; +pub const CPU_LEVEL_WHICH: c_int = 3; -pub const CPU_WHICH_TID: ::c_int = 1; -pub const CPU_WHICH_PID: ::c_int = 2; -pub const CPU_WHICH_CPUSET: ::c_int = 3; -pub const CPU_WHICH_IRQ: ::c_int = 4; -pub const CPU_WHICH_JAIL: ::c_int = 5; +pub const CPU_WHICH_TID: c_int = 1; +pub const CPU_WHICH_PID: c_int = 2; +pub const CPU_WHICH_CPUSET: c_int = 3; +pub const CPU_WHICH_IRQ: c_int = 4; +pub const CPU_WHICH_JAIL: c_int = 5; // net/route.h -pub const RTF_LLDATA: ::c_int = 0x400; -pub const RTF_FIXEDMTU: ::c_int = 0x80000; +pub const RTF_LLDATA: c_int = 0x400; +pub const RTF_FIXEDMTU: c_int = 0x80000; -pub const RTM_VERSION: ::c_int = 5; +pub const RTM_VERSION: c_int = 5; -pub const RTAX_MAX: ::c_int = 8; +pub const RTAX_MAX: c_int = 8; // sys/signal.h -pub const SIGTHR: ::c_int = 32; -pub const SIGLWP: ::c_int = SIGTHR; -pub const SIGLIBRT: ::c_int = 33; +pub const SIGTHR: c_int = 32; +pub const SIGLWP: c_int = SIGTHR; +pub const SIGLIBRT: c_int = 33; // netinet/sctp.h -pub const SCTP_FUTURE_ASSOC: ::c_int = 0; -pub const SCTP_CURRENT_ASSOC: ::c_int = 1; -pub const SCTP_ALL_ASSOC: ::c_int = 2; - -pub const SCTP_NO_NEXT_MSG: ::c_int = 0x0000; -pub const SCTP_NEXT_MSG_AVAIL: ::c_int = 0x0001; -pub const SCTP_NEXT_MSG_ISCOMPLETE: ::c_int = 0x0002; -pub const SCTP_NEXT_MSG_IS_UNORDERED: ::c_int = 0x0004; -pub const SCTP_NEXT_MSG_IS_NOTIFICATION: ::c_int = 0x0008; - -pub const SCTP_RECVV_NOINFO: ::c_int = 0; -pub const SCTP_RECVV_RCVINFO: ::c_int = 1; -pub const SCTP_RECVV_NXTINFO: ::c_int = 2; -pub const SCTP_RECVV_RN: ::c_int = 3; - -pub const SCTP_SENDV_NOINFO: ::c_int = 0; -pub const SCTP_SENDV_SNDINFO: ::c_int = 1; -pub const SCTP_SENDV_PRINFO: ::c_int = 2; -pub const SCTP_SENDV_AUTHINFO: ::c_int = 3; -pub const SCTP_SENDV_SPA: ::c_int = 4; - -pub const SCTP_SEND_SNDINFO_VALID: ::c_int = 0x00000001; -pub const SCTP_SEND_PRINFO_VALID: ::c_int = 0x00000002; -pub const SCTP_SEND_AUTHINFO_VALID: ::c_int = 0x00000004; - -pub const SCTP_NOTIFICATION: ::c_int = 0x0010; -pub const SCTP_COMPLETE: ::c_int = 0x0020; -pub const SCTP_EOF: ::c_int = 0x0100; -pub const SCTP_ABORT: ::c_int = 0x0200; -pub const SCTP_UNORDERED: ::c_int = 0x0400; -pub const SCTP_ADDR_OVER: ::c_int = 0x0800; -pub const SCTP_SENDALL: ::c_int = 0x1000; -pub const SCTP_EOR: ::c_int = 0x2000; -pub const SCTP_SACK_IMMEDIATELY: ::c_int = 0x4000; -pub const SCTP_PR_SCTP_NONE: ::c_int = 0x0000; -pub const SCTP_PR_SCTP_TTL: ::c_int = 0x0001; -pub const SCTP_PR_SCTP_PRIO: ::c_int = 0x0002; -pub const SCTP_PR_SCTP_BUF: ::c_int = SCTP_PR_SCTP_PRIO; -pub const SCTP_PR_SCTP_RTX: ::c_int = 0x0003; -pub const SCTP_PR_SCTP_MAX: ::c_int = SCTP_PR_SCTP_RTX; -pub const SCTP_PR_SCTP_ALL: ::c_int = 0x000f; - -pub const SCTP_INIT: ::c_int = 0x0001; -pub const SCTP_SNDRCV: ::c_int = 0x0002; -pub const SCTP_EXTRCV: ::c_int = 0x0003; -pub const SCTP_SNDINFO: ::c_int = 0x0004; -pub const SCTP_RCVINFO: ::c_int = 0x0005; -pub const SCTP_NXTINFO: ::c_int = 0x0006; -pub const SCTP_PRINFO: ::c_int = 0x0007; -pub const SCTP_AUTHINFO: ::c_int = 0x0008; -pub const SCTP_DSTADDRV4: ::c_int = 0x0009; -pub const SCTP_DSTADDRV6: ::c_int = 0x000a; - -pub const SCTP_RTOINFO: ::c_int = 0x00000001; -pub const SCTP_ASSOCINFO: ::c_int = 0x00000002; -pub const SCTP_INITMSG: ::c_int = 0x00000003; -pub const SCTP_NODELAY: ::c_int = 0x00000004; -pub const SCTP_AUTOCLOSE: ::c_int = 0x00000005; -pub const SCTP_SET_PEER_PRIMARY_ADDR: ::c_int = 0x00000006; -pub const SCTP_PRIMARY_ADDR: ::c_int = 0x00000007; -pub const SCTP_ADAPTATION_LAYER: ::c_int = 0x00000008; -pub const SCTP_ADAPTION_LAYER: ::c_int = 0x00000008; -pub const SCTP_DISABLE_FRAGMENTS: ::c_int = 0x00000009; -pub const SCTP_PEER_ADDR_PARAMS: ::c_int = 0x0000000a; -pub const SCTP_DEFAULT_SEND_PARAM: ::c_int = 0x0000000b; -pub const SCTP_EVENTS: ::c_int = 0x0000000c; -pub const SCTP_I_WANT_MAPPED_V4_ADDR: ::c_int = 0x0000000d; -pub const SCTP_MAXSEG: ::c_int = 0x0000000e; -pub const SCTP_DELAYED_SACK: ::c_int = 0x0000000f; -pub const SCTP_FRAGMENT_INTERLEAVE: ::c_int = 0x00000010; -pub const SCTP_PARTIAL_DELIVERY_POINT: ::c_int = 0x00000011; -pub const SCTP_AUTH_CHUNK: ::c_int = 0x00000012; -pub const SCTP_AUTH_KEY: ::c_int = 0x00000013; -pub const SCTP_HMAC_IDENT: ::c_int = 0x00000014; -pub const SCTP_AUTH_ACTIVE_KEY: ::c_int = 0x00000015; -pub const SCTP_AUTH_DELETE_KEY: ::c_int = 0x00000016; -pub const SCTP_USE_EXT_RCVINFO: ::c_int = 0x00000017; -pub const SCTP_AUTO_ASCONF: ::c_int = 0x00000018; -pub const SCTP_MAXBURST: ::c_int = 0x00000019; -pub const SCTP_MAX_BURST: ::c_int = 0x00000019; -pub const SCTP_CONTEXT: ::c_int = 0x0000001a; -pub const SCTP_EXPLICIT_EOR: ::c_int = 0x00000001b; -pub const SCTP_REUSE_PORT: ::c_int = 0x00000001c; -pub const SCTP_AUTH_DEACTIVATE_KEY: ::c_int = 0x00000001d; -pub const SCTP_EVENT: ::c_int = 0x0000001e; -pub const SCTP_RECVRCVINFO: ::c_int = 0x0000001f; -pub const SCTP_RECVNXTINFO: ::c_int = 0x00000020; -pub const SCTP_DEFAULT_SNDINFO: ::c_int = 0x00000021; -pub const SCTP_DEFAULT_PRINFO: ::c_int = 0x00000022; -pub const SCTP_PEER_ADDR_THLDS: ::c_int = 0x00000023; -pub const SCTP_REMOTE_UDP_ENCAPS_PORT: ::c_int = 0x00000024; -pub const SCTP_ECN_SUPPORTED: ::c_int = 0x00000025; -pub const SCTP_AUTH_SUPPORTED: ::c_int = 0x00000027; -pub const SCTP_ASCONF_SUPPORTED: ::c_int = 0x00000028; -pub const SCTP_RECONFIG_SUPPORTED: ::c_int = 0x00000029; -pub const SCTP_NRSACK_SUPPORTED: ::c_int = 0x00000030; -pub const SCTP_PKTDROP_SUPPORTED: ::c_int = 0x00000031; -pub const SCTP_MAX_CWND: ::c_int = 0x00000032; - -pub const SCTP_STATUS: ::c_int = 0x00000100; -pub const SCTP_GET_PEER_ADDR_INFO: ::c_int = 0x00000101; -pub const SCTP_PEER_AUTH_CHUNKS: ::c_int = 0x00000102; -pub const SCTP_LOCAL_AUTH_CHUNKS: ::c_int = 0x00000103; -pub const SCTP_GET_ASSOC_NUMBER: ::c_int = 0x00000104; -pub const SCTP_GET_ASSOC_ID_LIST: ::c_int = 0x00000105; -pub const SCTP_TIMEOUTS: ::c_int = 0x00000106; -pub const SCTP_PR_STREAM_STATUS: ::c_int = 0x00000107; -pub const SCTP_PR_ASSOC_STATUS: ::c_int = 0x00000108; - -pub const SCTP_COMM_UP: ::c_int = 0x0001; -pub const SCTP_COMM_LOST: ::c_int = 0x0002; -pub const SCTP_RESTART: ::c_int = 0x0003; -pub const SCTP_SHUTDOWN_COMP: ::c_int = 0x0004; -pub const SCTP_CANT_STR_ASSOC: ::c_int = 0x0005; - -pub const SCTP_ASSOC_SUPPORTS_PR: ::c_int = 0x01; -pub const SCTP_ASSOC_SUPPORTS_AUTH: ::c_int = 0x02; -pub const SCTP_ASSOC_SUPPORTS_ASCONF: ::c_int = 0x03; -pub const SCTP_ASSOC_SUPPORTS_MULTIBUF: ::c_int = 0x04; -pub const SCTP_ASSOC_SUPPORTS_RE_CONFIG: ::c_int = 0x05; -pub const SCTP_ASSOC_SUPPORTS_INTERLEAVING: ::c_int = 0x06; -pub const SCTP_ASSOC_SUPPORTS_MAX: ::c_int = 0x06; - -pub const SCTP_ADDR_AVAILABLE: ::c_int = 0x0001; -pub const SCTP_ADDR_UNREACHABLE: ::c_int = 0x0002; -pub const SCTP_ADDR_REMOVED: ::c_int = 0x0003; -pub const SCTP_ADDR_ADDED: ::c_int = 0x0004; -pub const SCTP_ADDR_MADE_PRIM: ::c_int = 0x0005; -pub const SCTP_ADDR_CONFIRMED: ::c_int = 0x0006; - -pub const SCTP_ACTIVE: ::c_int = 0x0001; -pub const SCTP_INACTIVE: ::c_int = 0x0002; -pub const SCTP_UNCONFIRMED: ::c_int = 0x0200; - -pub const SCTP_DATA_UNSENT: ::c_int = 0x0001; -pub const SCTP_DATA_SENT: ::c_int = 0x0002; - -pub const SCTP_PARTIAL_DELIVERY_ABORTED: ::c_int = 0x0001; - -pub const SCTP_AUTH_NEW_KEY: ::c_int = 0x0001; -pub const SCTP_AUTH_NEWKEY: ::c_int = SCTP_AUTH_NEW_KEY; -pub const SCTP_AUTH_NO_AUTH: ::c_int = 0x0002; -pub const SCTP_AUTH_FREE_KEY: ::c_int = 0x0003; - -pub const SCTP_STREAM_RESET_INCOMING_SSN: ::c_int = 0x0001; -pub const SCTP_STREAM_RESET_OUTGOING_SSN: ::c_int = 0x0002; -pub const SCTP_STREAM_RESET_DENIED: ::c_int = 0x0004; -pub const SCTP_STREAM_RESET_FAILED: ::c_int = 0x0008; - -pub const SCTP_ASSOC_RESET_DENIED: ::c_int = 0x0004; -pub const SCTP_ASSOC_RESET_FAILED: ::c_int = 0x0008; - -pub const SCTP_STREAM_CHANGE_DENIED: ::c_int = 0x0004; -pub const SCTP_STREAM_CHANGE_FAILED: ::c_int = 0x0008; - -pub const KENV_DUMP_LOADER: ::c_int = 4; -pub const KENV_DUMP_STATIC: ::c_int = 5; - -pub const RB_PAUSE: ::c_int = 0x100000; -pub const RB_REROOT: ::c_int = 0x200000; -pub const RB_POWERCYCLE: ::c_int = 0x400000; -pub const RB_PROBE: ::c_int = 0x10000000; -pub const RB_MULTIPLE: ::c_int = 0x20000000; +pub const SCTP_FUTURE_ASSOC: c_int = 0; +pub const SCTP_CURRENT_ASSOC: c_int = 1; +pub const SCTP_ALL_ASSOC: c_int = 2; + +pub const SCTP_NO_NEXT_MSG: c_int = 0x0000; +pub const SCTP_NEXT_MSG_AVAIL: c_int = 0x0001; +pub const SCTP_NEXT_MSG_ISCOMPLETE: c_int = 0x0002; +pub const SCTP_NEXT_MSG_IS_UNORDERED: c_int = 0x0004; +pub const SCTP_NEXT_MSG_IS_NOTIFICATION: c_int = 0x0008; + +pub const SCTP_RECVV_NOINFO: c_int = 0; +pub const SCTP_RECVV_RCVINFO: c_int = 1; +pub const SCTP_RECVV_NXTINFO: c_int = 2; +pub const SCTP_RECVV_RN: c_int = 3; + +pub const SCTP_SENDV_NOINFO: c_int = 0; +pub const SCTP_SENDV_SNDINFO: c_int = 1; +pub const SCTP_SENDV_PRINFO: c_int = 2; +pub const SCTP_SENDV_AUTHINFO: c_int = 3; +pub const SCTP_SENDV_SPA: c_int = 4; + +pub const SCTP_SEND_SNDINFO_VALID: c_int = 0x00000001; +pub const SCTP_SEND_PRINFO_VALID: c_int = 0x00000002; +pub const SCTP_SEND_AUTHINFO_VALID: c_int = 0x00000004; + +pub const SCTP_NOTIFICATION: c_int = 0x0010; +pub const SCTP_COMPLETE: c_int = 0x0020; +pub const SCTP_EOF: c_int = 0x0100; +pub const SCTP_ABORT: c_int = 0x0200; +pub const SCTP_UNORDERED: c_int = 0x0400; +pub const SCTP_ADDR_OVER: c_int = 0x0800; +pub const SCTP_SENDALL: c_int = 0x1000; +pub const SCTP_EOR: c_int = 0x2000; +pub const SCTP_SACK_IMMEDIATELY: c_int = 0x4000; +pub const SCTP_PR_SCTP_NONE: c_int = 0x0000; +pub const SCTP_PR_SCTP_TTL: c_int = 0x0001; +pub const SCTP_PR_SCTP_PRIO: c_int = 0x0002; +pub const SCTP_PR_SCTP_BUF: c_int = SCTP_PR_SCTP_PRIO; +pub const SCTP_PR_SCTP_RTX: c_int = 0x0003; +pub const SCTP_PR_SCTP_MAX: c_int = SCTP_PR_SCTP_RTX; +pub const SCTP_PR_SCTP_ALL: c_int = 0x000f; + +pub const SCTP_INIT: c_int = 0x0001; +pub const SCTP_SNDRCV: c_int = 0x0002; +pub const SCTP_EXTRCV: c_int = 0x0003; +pub const SCTP_SNDINFO: c_int = 0x0004; +pub const SCTP_RCVINFO: c_int = 0x0005; +pub const SCTP_NXTINFO: c_int = 0x0006; +pub const SCTP_PRINFO: c_int = 0x0007; +pub const SCTP_AUTHINFO: c_int = 0x0008; +pub const SCTP_DSTADDRV4: c_int = 0x0009; +pub const SCTP_DSTADDRV6: c_int = 0x000a; + +pub const SCTP_RTOINFO: c_int = 0x00000001; +pub const SCTP_ASSOCINFO: c_int = 0x00000002; +pub const SCTP_INITMSG: c_int = 0x00000003; +pub const SCTP_NODELAY: c_int = 0x00000004; +pub const SCTP_AUTOCLOSE: c_int = 0x00000005; +pub const SCTP_SET_PEER_PRIMARY_ADDR: c_int = 0x00000006; +pub const SCTP_PRIMARY_ADDR: c_int = 0x00000007; +pub const SCTP_ADAPTATION_LAYER: c_int = 0x00000008; +pub const SCTP_ADAPTION_LAYER: c_int = 0x00000008; +pub const SCTP_DISABLE_FRAGMENTS: c_int = 0x00000009; +pub const SCTP_PEER_ADDR_PARAMS: c_int = 0x0000000a; +pub const SCTP_DEFAULT_SEND_PARAM: c_int = 0x0000000b; +pub const SCTP_EVENTS: c_int = 0x0000000c; +pub const SCTP_I_WANT_MAPPED_V4_ADDR: c_int = 0x0000000d; +pub const SCTP_MAXSEG: c_int = 0x0000000e; +pub const SCTP_DELAYED_SACK: c_int = 0x0000000f; +pub const SCTP_FRAGMENT_INTERLEAVE: c_int = 0x00000010; +pub const SCTP_PARTIAL_DELIVERY_POINT: c_int = 0x00000011; +pub const SCTP_AUTH_CHUNK: c_int = 0x00000012; +pub const SCTP_AUTH_KEY: c_int = 0x00000013; +pub const SCTP_HMAC_IDENT: c_int = 0x00000014; +pub const SCTP_AUTH_ACTIVE_KEY: c_int = 0x00000015; +pub const SCTP_AUTH_DELETE_KEY: c_int = 0x00000016; +pub const SCTP_USE_EXT_RCVINFO: c_int = 0x00000017; +pub const SCTP_AUTO_ASCONF: c_int = 0x00000018; +pub const SCTP_MAXBURST: c_int = 0x00000019; +pub const SCTP_MAX_BURST: c_int = 0x00000019; +pub const SCTP_CONTEXT: c_int = 0x0000001a; +pub const SCTP_EXPLICIT_EOR: c_int = 0x00000001b; +pub const SCTP_REUSE_PORT: c_int = 0x00000001c; +pub const SCTP_AUTH_DEACTIVATE_KEY: c_int = 0x00000001d; +pub const SCTP_EVENT: c_int = 0x0000001e; +pub const SCTP_RECVRCVINFO: c_int = 0x0000001f; +pub const SCTP_RECVNXTINFO: c_int = 0x00000020; +pub const SCTP_DEFAULT_SNDINFO: c_int = 0x00000021; +pub const SCTP_DEFAULT_PRINFO: c_int = 0x00000022; +pub const SCTP_PEER_ADDR_THLDS: c_int = 0x00000023; +pub const SCTP_REMOTE_UDP_ENCAPS_PORT: c_int = 0x00000024; +pub const SCTP_ECN_SUPPORTED: c_int = 0x00000025; +pub const SCTP_AUTH_SUPPORTED: c_int = 0x00000027; +pub const SCTP_ASCONF_SUPPORTED: c_int = 0x00000028; +pub const SCTP_RECONFIG_SUPPORTED: c_int = 0x00000029; +pub const SCTP_NRSACK_SUPPORTED: c_int = 0x00000030; +pub const SCTP_PKTDROP_SUPPORTED: c_int = 0x00000031; +pub const SCTP_MAX_CWND: c_int = 0x00000032; + +pub const SCTP_STATUS: c_int = 0x00000100; +pub const SCTP_GET_PEER_ADDR_INFO: c_int = 0x00000101; +pub const SCTP_PEER_AUTH_CHUNKS: c_int = 0x00000102; +pub const SCTP_LOCAL_AUTH_CHUNKS: c_int = 0x00000103; +pub const SCTP_GET_ASSOC_NUMBER: c_int = 0x00000104; +pub const SCTP_GET_ASSOC_ID_LIST: c_int = 0x00000105; +pub const SCTP_TIMEOUTS: c_int = 0x00000106; +pub const SCTP_PR_STREAM_STATUS: c_int = 0x00000107; +pub const SCTP_PR_ASSOC_STATUS: c_int = 0x00000108; + +pub const SCTP_COMM_UP: c_int = 0x0001; +pub const SCTP_COMM_LOST: c_int = 0x0002; +pub const SCTP_RESTART: c_int = 0x0003; +pub const SCTP_SHUTDOWN_COMP: c_int = 0x0004; +pub const SCTP_CANT_STR_ASSOC: c_int = 0x0005; + +pub const SCTP_ASSOC_SUPPORTS_PR: c_int = 0x01; +pub const SCTP_ASSOC_SUPPORTS_AUTH: c_int = 0x02; +pub const SCTP_ASSOC_SUPPORTS_ASCONF: c_int = 0x03; +pub const SCTP_ASSOC_SUPPORTS_MULTIBUF: c_int = 0x04; +pub const SCTP_ASSOC_SUPPORTS_RE_CONFIG: c_int = 0x05; +pub const SCTP_ASSOC_SUPPORTS_INTERLEAVING: c_int = 0x06; +pub const SCTP_ASSOC_SUPPORTS_MAX: c_int = 0x06; + +pub const SCTP_ADDR_AVAILABLE: c_int = 0x0001; +pub const SCTP_ADDR_UNREACHABLE: c_int = 0x0002; +pub const SCTP_ADDR_REMOVED: c_int = 0x0003; +pub const SCTP_ADDR_ADDED: c_int = 0x0004; +pub const SCTP_ADDR_MADE_PRIM: c_int = 0x0005; +pub const SCTP_ADDR_CONFIRMED: c_int = 0x0006; + +pub const SCTP_ACTIVE: c_int = 0x0001; +pub const SCTP_INACTIVE: c_int = 0x0002; +pub const SCTP_UNCONFIRMED: c_int = 0x0200; + +pub const SCTP_DATA_UNSENT: c_int = 0x0001; +pub const SCTP_DATA_SENT: c_int = 0x0002; + +pub const SCTP_PARTIAL_DELIVERY_ABORTED: c_int = 0x0001; + +pub const SCTP_AUTH_NEW_KEY: c_int = 0x0001; +pub const SCTP_AUTH_NEWKEY: c_int = SCTP_AUTH_NEW_KEY; +pub const SCTP_AUTH_NO_AUTH: c_int = 0x0002; +pub const SCTP_AUTH_FREE_KEY: c_int = 0x0003; + +pub const SCTP_STREAM_RESET_INCOMING_SSN: c_int = 0x0001; +pub const SCTP_STREAM_RESET_OUTGOING_SSN: c_int = 0x0002; +pub const SCTP_STREAM_RESET_DENIED: c_int = 0x0004; +pub const SCTP_STREAM_RESET_FAILED: c_int = 0x0008; + +pub const SCTP_ASSOC_RESET_DENIED: c_int = 0x0004; +pub const SCTP_ASSOC_RESET_FAILED: c_int = 0x0008; + +pub const SCTP_STREAM_CHANGE_DENIED: c_int = 0x0004; +pub const SCTP_STREAM_CHANGE_FAILED: c_int = 0x0008; + +pub const KENV_DUMP_LOADER: c_int = 4; +pub const KENV_DUMP_STATIC: c_int = 5; + +pub const RB_PAUSE: c_int = 0x100000; +pub const RB_REROOT: c_int = 0x200000; +pub const RB_POWERCYCLE: c_int = 0x400000; +pub const RB_PROBE: c_int = 0x10000000; +pub const RB_MULTIPLE: c_int = 0x20000000; // sys/time.h -pub const CLOCK_BOOTTIME: ::clockid_t = ::CLOCK_UPTIME; -pub const CLOCK_REALTIME_COARSE: ::clockid_t = ::CLOCK_REALTIME_FAST; -pub const CLOCK_MONOTONIC_COARSE: ::clockid_t = ::CLOCK_MONOTONIC_FAST; +pub const CLOCK_BOOTTIME: crate::clockid_t = crate::CLOCK_UPTIME; +pub const CLOCK_REALTIME_COARSE: crate::clockid_t = crate::CLOCK_REALTIME_FAST; +pub const CLOCK_MONOTONIC_COARSE: crate::clockid_t = crate::CLOCK_MONOTONIC_FAST; // sys/timerfd.h -pub const TFD_NONBLOCK: ::c_int = ::O_NONBLOCK; -pub const TFD_CLOEXEC: ::c_int = O_CLOEXEC; -pub const TFD_TIMER_ABSTIME: ::c_int = 0x01; -pub const TFD_TIMER_CANCEL_ON_SET: ::c_int = 0x02; +pub const TFD_NONBLOCK: c_int = crate::O_NONBLOCK; +pub const TFD_CLOEXEC: c_int = O_CLOEXEC; +pub const TFD_TIMER_ABSTIME: c_int = 0x01; +pub const TFD_TIMER_CANCEL_ON_SET: c_int = 0x02; // sys/unistd.h -pub const CLOSE_RANGE_CLOEXEC: ::c_uint = 1 << 2; +pub const CLOSE_RANGE_CLOEXEC: c_uint = 1 << 2; -pub const KCMP_FILE: ::c_int = 100; -pub const KCMP_FILEOBJ: ::c_int = 101; -pub const KCMP_FILES: ::c_int = 102; -pub const KCMP_SIGHAND: ::c_int = 103; -pub const KCMP_VM: ::c_int = 104; +pub const KCMP_FILE: c_int = 100; +pub const KCMP_FILEOBJ: c_int = 101; +pub const KCMP_FILES: c_int = 102; +pub const KCMP_SIGHAND: c_int = 103; +pub const KCMP_VM: c_int = 104; -pub const fn MAP_ALIGNED(a: ::c_int) -> ::c_int { +pub const fn MAP_ALIGNED(a: c_int) -> c_int { a << 24 } @@ -4907,52 +4911,52 @@ const_fn! { } f! { - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar).offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { + (cmsg as *mut c_uchar).offset(_ALIGN(crate::mem::size_of::()) as isize) } - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - _ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length + pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + _ALIGN(crate::mem::size_of::()) as c_uint + length } - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { + pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { - return ::CMSG_FIRSTHDR(mhdr); + return crate::CMSG_FIRSTHDR(mhdr); }; let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) - + _ALIGN(::mem::size_of::<::cmsghdr>()); + + _ALIGN(crate::mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { - 0 as *mut ::cmsghdr + 0 as *mut cmsghdr } else { - (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) as *mut ::cmsghdr + (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr } } - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (_ALIGN(::mem::size_of::<::cmsghdr>()) + _ALIGN(length as usize)) as ::c_uint + pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + (_ALIGN(crate::mem::size_of::()) + _ALIGN(length as usize)) as c_uint } - pub fn MALLOCX_ALIGN(lg: ::c_uint) -> ::c_int { - ffsl(lg as ::c_long - 1) + pub fn MALLOCX_ALIGN(lg: c_uint) -> c_int { + ffsl(lg as c_long - 1) } - pub {const} fn MALLOCX_TCACHE(tc: ::c_int) -> ::c_int { - (tc + 2) << 8 as ::c_int + pub {const} fn MALLOCX_TCACHE(tc: c_int) -> c_int { + (tc + 2) << 8 as c_int } - pub {const} fn MALLOCX_ARENA(a: ::c_int) -> ::c_int { - (a + 1) << 20 as ::c_int + pub {const} fn MALLOCX_ARENA(a: c_int) -> c_int { + (a + 1) << 20 as c_int } pub fn SOCKCREDSIZE(ngrps: usize) -> usize { let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 }; - ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps + crate::mem::size_of::() + crate::mem::size_of::() * ngrps } - pub fn uname(buf: *mut ::utsname) -> ::c_int { - __xuname(256, buf as *mut ::c_void) + pub fn uname(buf: *mut crate::utsname) -> c_int { + __xuname(256, buf as *mut c_void) } pub fn CPU_ZERO(cpuset: &mut cpuset_t) -> () { @@ -4968,56 +4972,56 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpuset_t) -> () { - let bitset_bits = 8 * ::mem::size_of::<::c_long>(); + let bitset_bits = 8 * crate::mem::size_of::(); let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); cpuset.__bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpuset_t) -> () { - let bitset_bits = 8 * ::mem::size_of::<::c_long>(); + let bitset_bits = 8 * crate::mem::size_of::(); let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); cpuset.__bits[idx] &= !(1 << offset); () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpuset_t) -> bool { - let bitset_bits = 8 * ::mem::size_of::<::c_long>(); + let bitset_bits = 8 * crate::mem::size_of::(); let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); 0 != cpuset.__bits[idx] & (1 << offset) } - pub fn CPU_COUNT(cpuset: &cpuset_t) -> ::c_int { + pub fn CPU_COUNT(cpuset: &cpuset_t) -> c_int { let mut s: u32 = 0; - let cpuset_size = ::mem::size_of::(); - let bitset_size = ::mem::size_of::<::c_long>(); + let cpuset_size = crate::mem::size_of::(); + let bitset_size = crate::mem::size_of::(); for i in cpuset.__bits[..(cpuset_size / bitset_size)].iter() { s += i.count_ones(); } - s as ::c_int + s as c_int } pub fn SOCKCRED2SIZE(ngrps: usize) -> usize { let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 }; - ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps + crate::mem::size_of::() + crate::mem::size_of::() * ngrps } - pub fn PROT_MAX(x: ::c_int) -> ::c_int { + pub fn PROT_MAX(x: c_int) -> c_int { x << 16 } - pub fn PROT_MAX_EXTRACT(x: ::c_int) -> ::c_int { - (x >> 16) & (::PROT_READ | ::PROT_WRITE | ::PROT_EXEC) + pub fn PROT_MAX_EXTRACT(x: c_int) -> c_int { + (x >> 16) & (crate::PROT_READ | crate::PROT_WRITE | crate::PROT_EXEC) } } safe_f! { - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + pub {const} fn WIFSIGNALED(status: c_int) -> bool { (status & 0o177) != 0o177 && (status & 0o177) != 0 && status != 0x13 } - pub {const} fn INVALID_SINFO_FLAG(x: ::c_int) -> bool { + pub {const} fn INVALID_SINFO_FLAG(x: c_int) -> bool { (x) & 0xfffffff0 & !(SCTP_EOF | SCTP_ABORT @@ -5029,31 +5033,31 @@ safe_f! { != 0 } - pub {const} fn PR_SCTP_POLICY(x: ::c_int) -> ::c_int { + pub {const} fn PR_SCTP_POLICY(x: c_int) -> c_int { x & 0x0f } - pub {const} fn PR_SCTP_ENABLED(x: ::c_int) -> bool { + pub {const} fn PR_SCTP_ENABLED(x: c_int) -> bool { PR_SCTP_POLICY(x) != SCTP_PR_SCTP_NONE && PR_SCTP_POLICY(x) != SCTP_PR_SCTP_ALL } - pub {const} fn PR_SCTP_TTL_ENABLED(x: ::c_int) -> bool { + pub {const} fn PR_SCTP_TTL_ENABLED(x: c_int) -> bool { PR_SCTP_POLICY(x) == SCTP_PR_SCTP_TTL } - pub {const} fn PR_SCTP_BUF_ENABLED(x: ::c_int) -> bool { + pub {const} fn PR_SCTP_BUF_ENABLED(x: c_int) -> bool { PR_SCTP_POLICY(x) == SCTP_PR_SCTP_BUF } - pub {const} fn PR_SCTP_RTX_ENABLED(x: ::c_int) -> bool { + pub {const} fn PR_SCTP_RTX_ENABLED(x: c_int) -> bool { PR_SCTP_POLICY(x) == SCTP_PR_SCTP_RTX } - pub {const} fn PR_SCTP_INVALID_POLICY(x: ::c_int) -> bool { + pub {const} fn PR_SCTP_INVALID_POLICY(x: c_int) -> bool { PR_SCTP_POLICY(x) > SCTP_PR_SCTP_MAX } - pub {const} fn PR_SCTP_VALID_POLICY(x: ::c_int) -> bool { + pub {const} fn PR_SCTP_VALID_POLICY(x: c_int) -> bool { PR_SCTP_POLICY(x) <= SCTP_PR_SCTP_MAX } } @@ -5061,19 +5065,10 @@ safe_f! { cfg_if! { if #[cfg(not(any(freebsd10, freebsd11)))] { extern "C" { - pub fn fhlink(fhp: *mut fhandle_t, to: *const ::c_char) -> ::c_int; - pub fn fhlinkat(fhp: *mut fhandle_t, tofd: ::c_int, to: *const ::c_char) -> ::c_int; - pub fn fhreadlink( - fhp: *mut fhandle_t, - buf: *mut ::c_char, - bufsize: ::size_t, - ) -> ::c_int; - pub fn getfhat( - fd: ::c_int, - path: *mut ::c_char, - fhp: *mut fhandle, - flag: ::c_int, - ) -> ::c_int; + pub fn fhlink(fhp: *mut fhandle_t, to: *const c_char) -> c_int; + pub fn fhlinkat(fhp: *mut fhandle_t, tofd: c_int, to: *const c_char) -> c_int; + pub fn fhreadlink(fhp: *mut fhandle_t, buf: *mut c_char, bufsize: size_t) -> c_int; + pub fn getfhat(fd: c_int, path: *mut c_char, fhp: *mut fhandle, flag: c_int) -> c_int; } } } @@ -5081,648 +5076,635 @@ cfg_if! { extern "C" { #[cfg_attr(doc, doc(alias = "__errno_location"))] #[cfg_attr(doc, doc(alias = "errno"))] - pub fn __error() -> *mut ::c_int; - - pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; - pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_readv(aiocbp: *mut ::aiocb) -> ::c_int; - pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; + pub fn __error() -> *mut c_int; + + pub fn aio_cancel(fd: c_int, aiocbp: *mut aiocb) -> c_int; + pub fn aio_error(aiocbp: *const aiocb) -> c_int; + pub fn aio_fsync(op: c_int, aiocbp: *mut aiocb) -> c_int; + pub fn aio_read(aiocbp: *mut aiocb) -> c_int; + pub fn aio_readv(aiocbp: *mut crate::aiocb) -> c_int; + pub fn aio_return(aiocbp: *mut aiocb) -> ssize_t; pub fn aio_suspend( aiocb_list: *const *const aiocb, - nitems: ::c_int, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_writev(aiocbp: *mut ::aiocb) -> ::c_int; + nitems: c_int, + timeout: *const crate::timespec, + ) -> c_int; + pub fn aio_write(aiocbp: *mut aiocb) -> c_int; + pub fn aio_writev(aiocbp: *mut crate::aiocb) -> c_int; pub fn copy_file_range( - infd: ::c_int, - inoffp: *mut ::off_t, - outfd: ::c_int, - outoffp: *mut ::off_t, - len: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; + infd: c_int, + inoffp: *mut off_t, + outfd: c_int, + outoffp: *mut off_t, + len: size_t, + flags: c_uint, + ) -> ssize_t; pub fn devname_r( - dev: ::dev_t, - mode: ::mode_t, - buf: *mut ::c_char, - len: ::c_int, - ) -> *mut ::c_char; - - pub fn extattr_delete_fd( - fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char, - ) -> ::c_int; + dev: crate::dev_t, + mode: crate::mode_t, + buf: *mut c_char, + len: c_int, + ) -> *mut c_char; + + pub fn extattr_delete_fd(fd: c_int, attrnamespace: c_int, attrname: *const c_char) -> c_int; pub fn extattr_delete_file( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - ) -> ::c_int; + path: *const c_char, + attrnamespace: c_int, + attrname: *const c_char, + ) -> c_int; pub fn extattr_delete_link( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - ) -> ::c_int; + path: *const c_char, + attrnamespace: c_int, + attrname: *const c_char, + ) -> c_int; pub fn extattr_get_fd( - fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; + fd: c_int, + attrnamespace: c_int, + attrname: *const c_char, + data: *mut c_void, + nbytes: size_t, + ) -> ssize_t; pub fn extattr_get_file( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; + path: *const c_char, + attrnamespace: c_int, + attrname: *const c_char, + data: *mut c_void, + nbytes: size_t, + ) -> ssize_t; pub fn extattr_get_link( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; + path: *const c_char, + attrnamespace: c_int, + attrname: *const c_char, + data: *mut c_void, + nbytes: size_t, + ) -> ssize_t; pub fn extattr_list_fd( - fd: ::c_int, - attrnamespace: ::c_int, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; + fd: c_int, + attrnamespace: c_int, + data: *mut c_void, + nbytes: size_t, + ) -> ssize_t; pub fn extattr_list_file( - path: *const ::c_char, - attrnamespace: ::c_int, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; + path: *const c_char, + attrnamespace: c_int, + data: *mut c_void, + nbytes: size_t, + ) -> ssize_t; pub fn extattr_list_link( - path: *const ::c_char, - attrnamespace: ::c_int, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; + path: *const c_char, + attrnamespace: c_int, + data: *mut c_void, + nbytes: size_t, + ) -> ssize_t; pub fn extattr_set_fd( - fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; + fd: c_int, + attrnamespace: c_int, + attrname: *const c_char, + data: *const c_void, + nbytes: size_t, + ) -> ssize_t; pub fn extattr_set_file( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; + path: *const c_char, + attrnamespace: c_int, + attrname: *const c_char, + data: *const c_void, + nbytes: size_t, + ) -> ssize_t; pub fn extattr_set_link( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; + path: *const c_char, + attrnamespace: c_int, + attrname: *const c_char, + data: *const c_void, + nbytes: size_t, + ) -> ssize_t; pub fn fspacectl( - fd: ::c_int, - cmd: ::c_int, + fd: c_int, + cmd: c_int, rqsr: *const spacectl_range, - flags: ::c_int, + flags: c_int, rmsr: *mut spacectl_range, - ) -> ::c_int; + ) -> c_int; - pub fn jail(jail: *mut ::jail) -> ::c_int; - pub fn jail_attach(jid: ::c_int) -> ::c_int; - pub fn jail_remove(jid: ::c_int) -> ::c_int; - pub fn jail_get(iov: *mut ::iovec, niov: ::c_uint, flags: ::c_int) -> ::c_int; - pub fn jail_set(iov: *mut ::iovec, niov: ::c_uint, flags: ::c_int) -> ::c_int; + pub fn jail(jail: *mut crate::jail) -> c_int; + pub fn jail_attach(jid: c_int) -> c_int; + pub fn jail_remove(jid: c_int) -> c_int; + pub fn jail_get(iov: *mut crate::iovec, niov: c_uint, flags: c_int) -> c_int; + pub fn jail_set(iov: *mut crate::iovec, niov: c_uint, flags: c_int) -> c_int; pub fn lio_listio( - mode: ::c_int, + mode: c_int, aiocb_list: *const *mut aiocb, - nitems: ::c_int, + nitems: c_int, sevp: *mut sigevent, - ) -> ::c_int; + ) -> c_int; - pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; + pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int; + pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int; - pub fn getutxuser(user: *const ::c_char) -> *mut utmpx; - pub fn setutxdb(_type: ::c_int, file: *const ::c_char) -> ::c_int; + pub fn getutxuser(user: *const c_char) -> *mut utmpx; + pub fn setutxdb(_type: c_int, file: *const c_char) -> c_int; - pub fn aio_waitcomplete(iocbp: *mut *mut aiocb, timeout: *mut ::timespec) -> ::ssize_t; - pub fn mq_getfd_np(mqd: ::mqd_t) -> ::c_int; + pub fn aio_waitcomplete(iocbp: *mut *mut aiocb, timeout: *mut crate::timespec) -> ssize_t; + pub fn mq_getfd_np(mqd: crate::mqd_t) -> c_int; pub fn waitid( idtype: idtype_t, - id: ::id_t, - infop: *mut ::siginfo_t, - options: ::c_int, - ) -> ::c_int; - pub fn ptsname_r(fd: ::c_int, buf: *mut ::c_char, buflen: ::size_t) -> ::c_int; - - pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; - pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - 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 semget(key: ::key_t, nsems: ::c_int, semflg: ::c_int) -> ::c_int; - pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; - pub fn semop(semid: ::c_int, sops: *mut sembuf, nsops: ::size_t) -> ::c_int; - pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut ::msqid_ds) -> ::c_int; - pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; - pub fn msgsnd( - msqid: ::c_int, - msgp: *const ::c_void, - msgsz: ::size_t, - msgflg: ::c_int, - ) -> ::c_int; - pub fn cfmakesane(termios: *mut ::termios); - - pub fn pdfork(fdp: *mut ::c_int, flags: ::c_int) -> ::pid_t; - pub fn pdgetpid(fd: ::c_int, pidp: *mut ::pid_t) -> ::c_int; - pub fn pdkill(fd: ::c_int, signum: ::c_int) -> ::c_int; - - pub fn rtprio_thread(function: ::c_int, lwpid: ::lwpid_t, rtp: *mut super::rtprio) -> ::c_int; + id: crate::id_t, + infop: *mut crate::siginfo_t, + options: c_int, + ) -> c_int; + pub fn ptsname_r(fd: c_int, buf: *mut c_char, buflen: size_t) -> c_int; + + pub fn ftok(pathname: *const c_char, proj_id: c_int) -> crate::key_t; + pub fn shmget(key: crate::key_t, size: size_t, shmflg: c_int) -> c_int; + 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 crate::shmid_ds) -> c_int; + pub fn semget(key: crate::key_t, nsems: c_int, semflg: c_int) -> c_int; + pub fn semctl(semid: c_int, semnum: c_int, cmd: c_int, ...) -> c_int; + pub fn semop(semid: c_int, sops: *mut sembuf, nsops: size_t) -> c_int; + pub fn msgctl(msqid: c_int, cmd: c_int, buf: *mut crate::msqid_ds) -> c_int; + pub fn msgget(key: crate::key_t, msgflg: c_int) -> c_int; + pub fn msgsnd(msqid: c_int, msgp: *const c_void, msgsz: size_t, msgflg: c_int) -> c_int; + pub fn cfmakesane(termios: *mut crate::termios); + + pub fn pdfork(fdp: *mut c_int, flags: c_int) -> crate::pid_t; + pub fn pdgetpid(fd: c_int, pidp: *mut crate::pid_t) -> c_int; + pub fn pdkill(fd: c_int, signum: c_int) -> c_int; + + pub fn rtprio_thread(function: c_int, lwpid: crate::lwpid_t, rtp: *mut super::rtprio) -> 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; + pid: *mut crate::pid_t, + path: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::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; + pid: *mut crate::pid_t, + file: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::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; + default: *mut crate::sigset_t, + ) -> c_int; pub fn posix_spawnattr_setsigdefault( attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; + default: *const crate::sigset_t, + ) -> c_int; pub fn posix_spawnattr_getsigmask( attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; + default: *mut crate::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; + default: *const crate::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; + flags: *mut crate::pid_t, + ) -> c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: crate::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; + 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; + param: *mut crate::sched_param, + ) -> c_int; pub fn posix_spawnattr_setschedparam( attr: *mut posix_spawnattr_t, - param: *const ::sched_param, - ) -> ::c_int; + param: *const crate::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_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; + fd: c_int, + path: *const c_char, + oflag: c_int, + mode: crate::mode_t, + ) -> c_int; pub fn posix_spawn_file_actions_addclose( actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; + 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; + fd: c_int, + newfd: c_int, + ) -> c_int; - pub fn uuidgen(store: *mut uuid, count: ::c_int) -> ::c_int; + pub fn uuidgen(store: *mut uuid, count: c_int) -> c_int; - pub fn thr_kill(id: ::c_long, sig: ::c_int) -> ::c_int; - pub fn thr_kill2(pid: ::pid_t, id: ::c_long, sig: ::c_int) -> ::c_int; - pub fn thr_self(tid: *mut ::c_long) -> ::c_int; - pub fn pthread_getthreadid_np() -> ::c_int; + pub fn thr_kill(id: c_long, sig: c_int) -> c_int; + pub fn thr_kill2(pid: crate::pid_t, id: c_long, sig: c_int) -> c_int; + pub fn thr_self(tid: *mut c_long) -> c_int; + pub fn pthread_getthreadid_np() -> c_int; pub fn pthread_getaffinity_np( - td: ::pthread_t, - cpusetsize: ::size_t, + td: crate::pthread_t, + cpusetsize: size_t, cpusetp: *mut cpuset_t, - ) -> ::c_int; + ) -> c_int; pub fn pthread_setaffinity_np( - td: ::pthread_t, - cpusetsize: ::size_t, + td: crate::pthread_t, + cpusetsize: size_t, cpusetp: *const cpuset_t, - ) -> ::c_int; + ) -> c_int; // sched.h linux compatibility api - pub fn sched_getaffinity(pid: ::pid_t, cpusetsz: ::size_t, cpuset: *mut ::cpuset_t) -> ::c_int; + pub fn sched_getaffinity( + pid: crate::pid_t, + cpusetsz: size_t, + cpuset: *mut crate::cpuset_t, + ) -> c_int; pub fn sched_setaffinity( - pid: ::pid_t, - cpusetsz: ::size_t, - cpuset: *const ::cpuset_t, - ) -> ::c_int; - pub fn sched_getcpu() -> ::c_int; + pid: crate::pid_t, + cpusetsz: size_t, + cpuset: *const crate::cpuset_t, + ) -> c_int; + pub fn sched_getcpu() -> c_int; - pub fn pthread_mutex_consistent(mutex: *mut ::pthread_mutex_t) -> ::c_int; + pub fn pthread_mutex_consistent(mutex: *mut crate::pthread_mutex_t) -> c_int; pub fn pthread_mutexattr_getrobust( - attr: *mut ::pthread_mutexattr_t, - robust: *mut ::c_int, - ) -> ::c_int; + attr: *mut crate::pthread_mutexattr_t, + robust: *mut c_int, + ) -> c_int; pub fn pthread_mutexattr_setrobust( - attr: *mut ::pthread_mutexattr_t, - robust: ::c_int, - ) -> ::c_int; + attr: *mut crate::pthread_mutexattr_t, + robust: c_int, + ) -> c_int; - pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: c_int) -> c_int; + pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> c_int; + pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> c_int; + pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> c_int; + pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> c_int; #[cfg_attr(all(target_os = "freebsd", freebsd11), link_name = "statfs@FBSD_1.0")] - pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; + pub fn statfs(path: *const c_char, buf: *mut statfs) -> c_int; #[cfg_attr(all(target_os = "freebsd", freebsd11), link_name = "fstatfs@FBSD_1.0")] - pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; + pub fn fstatfs(fd: c_int, buf: *mut statfs) -> c_int; - pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; - pub fn __xuname(nmln: ::c_int, buf: *mut ::c_void) -> ::c_int; + pub fn dup3(src: c_int, dst: c_int, flags: c_int) -> c_int; + pub fn __xuname(nmln: c_int, buf: *mut c_void) -> c_int; pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::size_t, - flags: ::c_int, - ) -> ::ssize_t; + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: size_t, + flags: c_int, + ) -> ssize_t; pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::size_t, - flags: ::c_int, - timeout: *const ::timespec, - ) -> ::ssize_t; + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: size_t, + flags: c_int, + timeout: *const crate::timespec, + ) -> ssize_t; pub fn memmem( - haystack: *const ::c_void, - haystacklen: ::size_t, - needle: *const ::c_void, - needlelen: ::size_t, - ) -> *mut ::c_void; - - pub fn fhopen(fhp: *const fhandle_t, flags: ::c_int) -> ::c_int; - pub fn fhstat(fhp: *const fhandle, buf: *mut ::stat) -> ::c_int; - pub fn fhstatfs(fhp: *const fhandle_t, buf: *mut ::statfs) -> ::c_int; - pub fn getfh(path: *const ::c_char, fhp: *mut fhandle_t) -> ::c_int; - pub fn lgetfh(path: *const ::c_char, fhp: *mut fhandle_t) -> ::c_int; - pub fn getfsstat(buf: *mut ::statfs, bufsize: ::c_long, mode: ::c_int) -> ::c_int; + haystack: *const c_void, + haystacklen: size_t, + needle: *const c_void, + needlelen: size_t, + ) -> *mut c_void; + + pub fn fhopen(fhp: *const fhandle_t, flags: c_int) -> c_int; + pub fn fhstat(fhp: *const fhandle, buf: *mut crate::stat) -> c_int; + pub fn fhstatfs(fhp: *const fhandle_t, buf: *mut crate::statfs) -> c_int; + pub fn getfh(path: *const c_char, fhp: *mut fhandle_t) -> c_int; + pub fn lgetfh(path: *const c_char, fhp: *mut fhandle_t) -> c_int; + pub fn getfsstat(buf: *mut crate::statfs, bufsize: c_long, mode: c_int) -> c_int; #[cfg_attr( all(target_os = "freebsd", freebsd11), link_name = "getmntinfo@FBSD_1.0" )] - pub fn getmntinfo(mntbufp: *mut *mut ::statfs, mode: ::c_int) -> ::c_int; + pub fn getmntinfo(mntbufp: *mut *mut crate::statfs, mode: c_int) -> c_int; pub fn mount( - type_: *const ::c_char, - dir: *const ::c_char, - flags: ::c_int, - data: *mut ::c_void, - ) -> ::c_int; - pub fn nmount(iov: *mut ::iovec, niov: ::c_uint, flags: ::c_int) -> ::c_int; - - pub fn setproctitle(fmt: *const ::c_char, ...); - pub fn rfork(flags: ::c_int) -> ::c_int; + type_: *const c_char, + dir: *const c_char, + flags: c_int, + data: *mut c_void, + ) -> c_int; + pub fn nmount(iov: *mut crate::iovec, niov: c_uint, flags: c_int) -> c_int; + + pub fn setproctitle(fmt: *const c_char, ...); + pub fn rfork(flags: c_int) -> c_int; pub fn cpuset_getaffinity( level: cpulevel_t, which: cpuwhich_t, - id: ::id_t, - setsize: ::size_t, + id: crate::id_t, + setsize: size_t, mask: *mut cpuset_t, - ) -> ::c_int; + ) -> c_int; pub fn cpuset_setaffinity( level: cpulevel_t, which: cpuwhich_t, - id: ::id_t, - setsize: ::size_t, + id: crate::id_t, + setsize: size_t, mask: *const cpuset_t, - ) -> ::c_int; - pub fn cpuset(setid: *mut ::cpusetid_t) -> ::c_int; + ) -> c_int; + pub fn cpuset(setid: *mut crate::cpusetid_t) -> c_int; pub fn cpuset_getid( level: cpulevel_t, which: cpuwhich_t, - id: ::id_t, - setid: *mut ::cpusetid_t, - ) -> ::c_int; - pub fn cpuset_setid(which: cpuwhich_t, id: ::id_t, setid: ::cpusetid_t) -> ::c_int; - pub fn cap_enter() -> ::c_int; - pub fn cap_getmode(modep: *mut ::c_uint) -> ::c_int; - pub fn cap_fcntls_get(fd: ::c_int, fcntlrightsp: *mut u32) -> ::c_int; - pub fn cap_fcntls_limit(fd: ::c_int, fcntlrights: u32) -> ::c_int; - pub fn cap_ioctls_get(fd: ::c_int, cmds: *mut u_long, maxcmds: usize) -> isize; - pub fn cap_ioctls_limit(fd: ::c_int, cmds: *const u_long, ncmds: usize) -> ::c_int; - pub fn __cap_rights_init(version: ::c_int, rights: *mut cap_rights_t, ...) - -> *mut cap_rights_t; - pub fn __cap_rights_get(version: ::c_int, fd: ::c_int, rightsp: *mut cap_rights_t) -> ::c_int; + id: crate::id_t, + setid: *mut crate::cpusetid_t, + ) -> c_int; + pub fn cpuset_setid(which: cpuwhich_t, id: crate::id_t, setid: crate::cpusetid_t) -> c_int; + pub fn cap_enter() -> c_int; + pub fn cap_getmode(modep: *mut c_uint) -> c_int; + pub fn cap_fcntls_get(fd: c_int, fcntlrightsp: *mut u32) -> c_int; + pub fn cap_fcntls_limit(fd: c_int, fcntlrights: u32) -> c_int; + pub fn cap_ioctls_get(fd: c_int, cmds: *mut u_long, maxcmds: usize) -> isize; + pub fn cap_ioctls_limit(fd: c_int, cmds: *const u_long, ncmds: usize) -> c_int; + pub fn __cap_rights_init(version: c_int, rights: *mut cap_rights_t, ...) -> *mut cap_rights_t; + pub fn __cap_rights_get(version: c_int, fd: c_int, rightsp: *mut cap_rights_t) -> c_int; pub fn __cap_rights_set(rights: *mut cap_rights_t, ...) -> *mut cap_rights_t; pub fn __cap_rights_clear(rights: *mut cap_rights_t, ...) -> *mut cap_rights_t; pub fn __cap_rights_is_set(rights: *const cap_rights_t, ...) -> bool; pub fn cap_rights_is_valid(rights: *const cap_rights_t) -> bool; - pub fn cap_rights_limit(fd: ::c_int, rights: *const cap_rights_t) -> ::c_int; + pub fn cap_rights_limit(fd: c_int, rights: *const cap_rights_t) -> c_int; pub fn cap_rights_merge(dst: *mut cap_rights_t, src: *const cap_rights_t) -> *mut cap_rights_t; pub fn cap_rights_remove(dst: *mut cap_rights_t, src: *const cap_rights_t) -> *mut cap_rights_t; pub fn cap_rights_contains(big: *const cap_rights_t, little: *const cap_rights_t) -> bool; pub fn cap_sandboxed() -> bool; - pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; + pub fn reallocarray(ptr: *mut c_void, nmemb: size_t, size: size_t) -> *mut c_void; - pub fn ffs(value: ::c_int) -> ::c_int; - pub fn ffsl(value: ::c_long) -> ::c_int; - pub fn ffsll(value: ::c_longlong) -> ::c_int; - pub fn fls(value: ::c_int) -> ::c_int; - pub fn flsl(value: ::c_long) -> ::c_int; - pub fn flsll(value: ::c_longlong) -> ::c_int; + pub fn ffs(value: c_int) -> c_int; + pub fn ffsl(value: c_long) -> c_int; + pub fn ffsll(value: c_longlong) -> c_int; + pub fn fls(value: c_int) -> c_int; + pub fn flsl(value: c_long) -> c_int; + pub fn flsll(value: c_longlong) -> c_int; pub fn malloc_stats_print( - write_cb: unsafe extern "C" fn(*mut ::c_void, *const ::c_char), - cbopaque: *mut ::c_void, - opt: *const ::c_char, + write_cb: unsafe extern "C" fn(*mut c_void, *const c_char), + cbopaque: *mut c_void, + opt: *const c_char, ); pub fn mallctl( - name: *const ::c_char, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; - pub fn mallctlnametomib( - name: *const ::c_char, - mibp: *mut ::size_t, - miplen: *mut ::size_t, - ) -> ::c_int; + name: *const c_char, + oldp: *mut c_void, + oldlenp: *mut size_t, + newp: *mut c_void, + newlen: size_t, + ) -> c_int; + pub fn mallctlnametomib(name: *const c_char, mibp: *mut size_t, miplen: *mut size_t) -> c_int; pub fn mallctlbymib( - mib: *const ::size_t, - mible: ::size_t, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; - pub fn mallocx(size: ::size_t, flags: ::c_int) -> *mut ::c_void; - pub fn rallocx(ptr: *mut ::c_void, size: ::size_t, flags: ::c_int) -> *mut ::c_void; - pub fn xallocx(ptr: *mut ::c_void, size: ::size_t, extra: ::size_t, flags: ::c_int) - -> ::size_t; - pub fn sallocx(ptr: *const ::c_void, flags: ::c_int) -> ::size_t; - pub fn dallocx(ptr: *mut ::c_void, flags: ::c_int); - pub fn sdallocx(ptr: *mut ::c_void, size: ::size_t, flags: ::c_int); - pub fn nallocx(size: ::size_t, flags: ::c_int) -> ::size_t; - - pub fn procctl(idtype: ::idtype_t, id: ::id_t, cmd: ::c_int, data: *mut ::c_void) -> ::c_int; - - pub fn getpagesize() -> ::c_int; - pub fn getpagesizes(pagesize: *mut ::size_t, nelem: ::c_int) -> ::c_int; - - pub fn clock_getcpuclockid2(arg1: ::id_t, arg2: ::c_int, arg3: *mut clockid_t) -> ::c_int; - pub fn strchrnul(s: *const ::c_char, c: ::c_int) -> *mut ::c_char; + mib: *const size_t, + mible: size_t, + oldp: *mut c_void, + oldlenp: *mut size_t, + newp: *mut c_void, + newlen: size_t, + ) -> c_int; + pub fn mallocx(size: size_t, flags: c_int) -> *mut c_void; + pub fn rallocx(ptr: *mut c_void, size: size_t, flags: c_int) -> *mut c_void; + pub fn xallocx(ptr: *mut c_void, size: size_t, extra: size_t, flags: c_int) -> size_t; + pub fn sallocx(ptr: *const c_void, flags: c_int) -> size_t; + pub fn dallocx(ptr: *mut c_void, flags: c_int); + pub fn sdallocx(ptr: *mut c_void, size: size_t, flags: c_int); + pub fn nallocx(size: size_t, flags: c_int) -> size_t; + + pub fn procctl( + idtype: crate::idtype_t, + id: crate::id_t, + cmd: c_int, + data: *mut c_void, + ) -> c_int; + + pub fn getpagesize() -> c_int; + pub fn getpagesizes(pagesize: *mut size_t, nelem: c_int) -> c_int; + + pub fn clock_getcpuclockid2(arg1: crate::id_t, arg2: c_int, arg3: *mut clockid_t) -> c_int; + pub fn strchrnul(s: *const c_char, c: c_int) -> *mut c_char; pub fn shm_create_largepage( - path: *const ::c_char, - flags: ::c_int, - psind: ::c_int, - alloc_policy: ::c_int, - mode: ::mode_t, - ) -> ::c_int; - pub fn shm_rename( - path_from: *const ::c_char, - path_to: *const ::c_char, - flags: ::c_int, - ) -> ::c_int; - pub fn memfd_create(name: *const ::c_char, flags: ::c_uint) -> ::c_int; - pub fn setaudit(auditinfo: *const auditinfo_t) -> ::c_int; - - pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; - pub fn eventfd_read(fd: ::c_int, value: *mut eventfd_t) -> ::c_int; - pub fn eventfd_write(fd: ::c_int, value: eventfd_t) -> ::c_int; - - pub fn fdatasync(fd: ::c_int) -> ::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; + path: *const c_char, + flags: c_int, + psind: c_int, + alloc_policy: c_int, + mode: crate::mode_t, + ) -> c_int; + pub fn shm_rename(path_from: *const c_char, path_to: *const c_char, flags: c_int) -> c_int; + pub fn memfd_create(name: *const c_char, flags: c_uint) -> c_int; + pub fn setaudit(auditinfo: *const auditinfo_t) -> c_int; + + pub fn eventfd(init: c_uint, flags: c_int) -> c_int; + pub fn eventfd_read(fd: c_int, value: *mut eventfd_t) -> c_int; + pub fn eventfd_write(fd: c_int, value: eventfd_t) -> c_int; + + pub fn fdatasync(fd: c_int) -> 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 _umtx_op( - obj: *mut ::c_void, - op: ::c_int, - val: ::c_ulong, - uaddr: *mut ::c_void, - uaddr2: *mut ::c_void, - ) -> ::c_int; - - pub fn sctp_peeloff(s: ::c_int, id: ::sctp_assoc_t) -> ::c_int; - pub fn sctp_bindx(s: ::c_int, addrs: *mut ::sockaddr, num: ::c_int, tpe: ::c_int) -> ::c_int; + obj: *mut c_void, + op: c_int, + val: c_ulong, + uaddr: *mut c_void, + uaddr2: *mut c_void, + ) -> c_int; + + pub fn sctp_peeloff(s: c_int, id: crate::sctp_assoc_t) -> c_int; + pub fn sctp_bindx(s: c_int, addrs: *mut crate::sockaddr, num: c_int, tpe: c_int) -> c_int; pub fn sctp_connectx( - s: ::c_int, - addrs: *const ::sockaddr, - addrcnt: ::c_int, - id: *mut ::sctp_assoc_t, - ) -> ::c_int; - pub fn sctp_getaddrlen(family: ::sa_family_t) -> ::c_int; + s: c_int, + addrs: *const crate::sockaddr, + addrcnt: c_int, + id: *mut crate::sctp_assoc_t, + ) -> c_int; + pub fn sctp_getaddrlen(family: crate::sa_family_t) -> c_int; pub fn sctp_getpaddrs( - s: ::c_int, - asocid: ::sctp_assoc_t, - addrs: *mut *mut ::sockaddr, - ) -> ::c_int; - pub fn sctp_freepaddrs(addrs: *mut ::sockaddr); + s: c_int, + asocid: crate::sctp_assoc_t, + addrs: *mut *mut crate::sockaddr, + ) -> c_int; + pub fn sctp_freepaddrs(addrs: *mut crate::sockaddr); pub fn sctp_getladdrs( - s: ::c_int, - asocid: ::sctp_assoc_t, - addrs: *mut *mut ::sockaddr, - ) -> ::c_int; - pub fn sctp_freeladdrs(addrs: *mut ::sockaddr); + s: c_int, + asocid: crate::sctp_assoc_t, + addrs: *mut *mut crate::sockaddr, + ) -> c_int; + pub fn sctp_freeladdrs(addrs: *mut crate::sockaddr); pub fn sctp_opt_info( - s: ::c_int, - id: ::sctp_assoc_t, - opt: ::c_int, - arg: *mut ::c_void, - size: *mut ::socklen_t, - ) -> ::c_int; + s: c_int, + id: crate::sctp_assoc_t, + opt: c_int, + arg: *mut c_void, + size: *mut crate::socklen_t, + ) -> c_int; pub fn sctp_sendv( - sd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - addrs: *mut ::sockaddr, - addrcnt: ::c_int, - info: *mut ::c_void, - infolen: ::socklen_t, - infotype: ::c_uint, - flags: ::c_int, - ) -> ::ssize_t; + sd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + addrs: *mut crate::sockaddr, + addrcnt: c_int, + info: *mut c_void, + infolen: crate::socklen_t, + infotype: c_uint, + flags: c_int, + ) -> ssize_t; pub fn sctp_recvv( - sd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - from: *mut ::sockaddr, - fromlen: *mut ::socklen_t, - info: *mut ::c_void, - infolen: *mut ::socklen_t, - infotype: *mut ::c_uint, - flags: *mut ::c_int, - ) -> ::ssize_t; - - pub fn timerfd_create(clockid: ::c_int, flags: ::c_int) -> ::c_int; - pub fn timerfd_gettime(fd: ::c_int, curr_value: *mut itimerspec) -> ::c_int; + sd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + from: *mut crate::sockaddr, + fromlen: *mut crate::socklen_t, + info: *mut c_void, + infolen: *mut crate::socklen_t, + infotype: *mut c_uint, + flags: *mut c_int, + ) -> ssize_t; + + pub fn timerfd_create(clockid: c_int, flags: c_int) -> c_int; + pub fn timerfd_gettime(fd: c_int, curr_value: *mut itimerspec) -> c_int; pub fn timerfd_settime( - fd: ::c_int, - flags: ::c_int, + fd: c_int, + flags: c_int, new_value: *const itimerspec, old_value: *mut itimerspec, - ) -> ::c_int; - pub fn closefrom(lowfd: ::c_int); - pub fn close_range(lowfd: ::c_uint, highfd: ::c_uint, flags: ::c_int) -> ::c_int; + ) -> c_int; + pub fn closefrom(lowfd: c_int); + pub fn close_range(lowfd: c_uint, highfd: c_uint, flags: c_int) -> c_int; pub fn execvpe( - file: *const ::c_char, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; + file: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + ) -> c_int; pub fn kcmp( - pid1: ::pid_t, - pid2: ::pid_t, - type_: ::c_int, - idx1: ::c_ulong, - idx2: ::c_ulong, - ) -> ::c_int; + pid1: crate::pid_t, + pid2: crate::pid_t, + type_: c_int, + idx1: c_ulong, + idx2: c_ulong, + ) -> c_int; } #[link(name = "memstat")] extern "C" { - pub fn memstat_strerror(error: ::c_int) -> *const ::c_char; + pub fn memstat_strerror(error: c_int) -> *const c_char; pub fn memstat_mtl_alloc() -> *mut memory_type_list; pub fn memstat_mtl_first(list: *mut memory_type_list) -> *mut memory_type; pub fn memstat_mtl_next(mtp: *mut memory_type) -> *mut memory_type; pub fn memstat_mtl_find( list: *mut memory_type_list, - allocator: ::c_int, - name: *const ::c_char, + allocator: c_int, + name: *const c_char, ) -> *mut memory_type; pub fn memstat_mtl_free(list: *mut memory_type_list); - pub fn memstat_mtl_geterror(list: *mut memory_type_list) -> ::c_int; - pub fn memstat_get_name(mtp: *const memory_type) -> *const ::c_char; + pub fn memstat_mtl_geterror(list: *mut memory_type_list) -> c_int; + pub fn memstat_get_name(mtp: *const memory_type) -> *const c_char; } #[link(name = "kvm")] extern "C" { - pub fn kvm_dpcpu_setcpu(kd: *mut ::kvm_t, cpu: ::c_uint) -> ::c_int; - pub fn kvm_getargv(kd: *mut ::kvm_t, p: *const kinfo_proc, nchr: ::c_int) - -> *mut *mut ::c_char; - pub fn kvm_getcptime(kd: *mut ::kvm_t, cp_time: *mut ::c_long) -> ::c_int; - pub fn kvm_getenvv(kd: *mut ::kvm_t, p: *const kinfo_proc, nchr: ::c_int) - -> *mut *mut ::c_char; - pub fn kvm_geterr(kd: *mut ::kvm_t) -> *mut ::c_char; - pub fn kvm_getmaxcpu(kd: *mut ::kvm_t) -> ::c_int; - pub fn kvm_getncpus(kd: *mut ::kvm_t) -> ::c_int; - pub fn kvm_getpcpu(kd: *mut ::kvm_t, cpu: ::c_int) -> *mut ::c_void; - pub fn kvm_counter_u64_fetch(kd: *mut ::kvm_t, base: ::c_ulong) -> u64; + pub fn kvm_dpcpu_setcpu(kd: *mut crate::kvm_t, cpu: c_uint) -> c_int; + pub fn kvm_getargv( + kd: *mut crate::kvm_t, + p: *const kinfo_proc, + nchr: c_int, + ) -> *mut *mut c_char; + pub fn kvm_getcptime(kd: *mut crate::kvm_t, cp_time: *mut c_long) -> c_int; + pub fn kvm_getenvv( + kd: *mut crate::kvm_t, + p: *const kinfo_proc, + nchr: c_int, + ) -> *mut *mut c_char; + pub fn kvm_geterr(kd: *mut crate::kvm_t) -> *mut c_char; + pub fn kvm_getmaxcpu(kd: *mut crate::kvm_t) -> c_int; + pub fn kvm_getncpus(kd: *mut crate::kvm_t) -> c_int; + pub fn kvm_getpcpu(kd: *mut crate::kvm_t, cpu: c_int) -> *mut c_void; + pub fn kvm_counter_u64_fetch(kd: *mut crate::kvm_t, base: c_ulong) -> u64; pub fn kvm_getswapinfo( - kd: *mut ::kvm_t, + kd: *mut crate::kvm_t, info: *mut kvm_swap, - maxswap: ::c_int, - flags: ::c_int, - ) -> ::c_int; - pub fn kvm_native(kd: *mut ::kvm_t) -> ::c_int; - pub fn kvm_nlist(kd: *mut ::kvm_t, nl: *mut nlist) -> ::c_int; - pub fn kvm_nlist2(kd: *mut ::kvm_t, nl: *mut kvm_nlist) -> ::c_int; + maxswap: c_int, + flags: c_int, + ) -> c_int; + pub fn kvm_native(kd: *mut crate::kvm_t) -> c_int; + pub fn kvm_nlist(kd: *mut crate::kvm_t, nl: *mut nlist) -> c_int; + pub fn kvm_nlist2(kd: *mut crate::kvm_t, nl: *mut kvm_nlist) -> c_int; pub fn kvm_read_zpcpu( - kd: *mut ::kvm_t, - base: ::c_ulong, - buf: *mut ::c_void, - size: ::size_t, - cpu: ::c_int, - ) -> ::ssize_t; + kd: *mut crate::kvm_t, + base: c_ulong, + buf: *mut c_void, + size: size_t, + cpu: c_int, + ) -> ssize_t; pub fn kvm_read2( - kd: *mut ::kvm_t, + kd: *mut crate::kvm_t, addr: kvaddr_t, - buf: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; + buf: *mut c_void, + nbytes: size_t, + ) -> ssize_t; } #[link(name = "util")] extern "C" { - pub fn extattr_namespace_to_string( - attrnamespace: ::c_int, - string: *mut *mut ::c_char, - ) -> ::c_int; - pub fn extattr_string_to_namespace( - string: *const ::c_char, - attrnamespace: *mut ::c_int, - ) -> ::c_int; - pub fn realhostname(host: *mut ::c_char, hsize: ::size_t, ip: *const ::in_addr) -> ::c_int; + pub fn extattr_namespace_to_string(attrnamespace: c_int, string: *mut *mut c_char) -> c_int; + pub fn extattr_string_to_namespace(string: *const c_char, attrnamespace: *mut c_int) -> c_int; + pub fn realhostname(host: *mut c_char, hsize: size_t, ip: *const crate::in_addr) -> c_int; pub fn realhostname_sa( - host: *mut ::c_char, - hsize: ::size_t, - addr: *mut ::sockaddr, - addrlen: ::c_int, - ) -> ::c_int; + host: *mut c_char, + hsize: size_t, + addr: *mut crate::sockaddr, + addrlen: c_int, + ) -> c_int; - pub fn kld_isloaded(name: *const ::c_char) -> ::c_int; - pub fn kld_load(name: *const ::c_char) -> ::c_int; + pub fn kld_isloaded(name: *const c_char) -> c_int; + pub fn kld_load(name: *const c_char) -> c_int; - pub fn kinfo_getvmmap(pid: ::pid_t, cntp: *mut ::c_int) -> *mut kinfo_vmentry; + pub fn kinfo_getvmmap(pid: crate::pid_t, cntp: *mut c_int) -> *mut kinfo_vmentry; - pub fn hexdump(ptr: *const ::c_void, length: ::c_int, hdr: *const ::c_char, flags: ::c_int); + pub fn hexdump(ptr: *const c_void, length: c_int, hdr: *const c_char, flags: c_int); pub fn humanize_number( - buf: *mut ::c_char, - len: ::size_t, + buf: *mut c_char, + len: size_t, number: i64, - suffix: *const ::c_char, - scale: ::c_int, - flags: ::c_int, - ) -> ::c_int; + suffix: *const c_char, + scale: c_int, + flags: c_int, + ) -> c_int; - pub fn flopen(path: *const ::c_char, flags: ::c_int, ...) -> ::c_int; - pub fn flopenat(fd: ::c_int, path: *const ::c_char, flags: ::c_int, ...) -> ::c_int; + pub fn flopen(path: *const c_char, flags: c_int, ...) -> c_int; + pub fn flopenat(fd: c_int, path: *const c_char, flags: c_int, ...) -> c_int; - pub fn getlocalbase() -> *const ::c_char; + pub fn getlocalbase() -> *const c_char; pub fn pidfile_open( - path: *const ::c_char, - mode: ::mode_t, - pidptr: *mut ::pid_t, - ) -> *mut ::pidfh; - pub fn pidfile_write(path: *mut ::pidfh) -> ::c_int; - pub fn pidfile_close(path: *mut ::pidfh) -> ::c_int; - pub fn pidfile_remove(path: *mut ::pidfh) -> ::c_int; - pub fn pidfile_fileno(path: *const ::pidfh) -> ::c_int; + path: *const c_char, + mode: crate::mode_t, + pidptr: *mut crate::pid_t, + ) -> *mut crate::pidfh; + pub fn pidfile_write(path: *mut crate::pidfh) -> c_int; + pub fn pidfile_close(path: *mut crate::pidfh) -> c_int; + pub fn pidfile_remove(path: *mut crate::pidfh) -> c_int; + pub fn pidfile_fileno(path: *const crate::pidfh) -> c_int; // FIXME: pidfile_signal in due time (both manpage present and updated image snapshot) } @@ -5732,133 +5714,133 @@ extern "C" { pub fn procstat_getfiles( procstat: *mut procstat, kp: *mut kinfo_proc, - mmapped: ::c_int, + mmapped: c_int, ) -> *mut filestat_list; pub fn procstat_freefiles(procstat: *mut procstat, head: *mut filestat_list); pub fn procstat_getprocs( procstat: *mut procstat, - what: ::c_int, - arg: ::c_int, - count: *mut ::c_uint, + what: c_int, + arg: c_int, + count: *mut c_uint, ) -> *mut kinfo_proc; pub fn procstat_freeprocs(procstat: *mut procstat, p: *mut kinfo_proc); pub fn procstat_getvmmap( procstat: *mut procstat, kp: *mut kinfo_proc, - count: *mut ::c_uint, + count: *mut c_uint, ) -> *mut kinfo_vmentry; pub fn procstat_freevmmap(procstat: *mut procstat, vmmap: *mut kinfo_vmentry); pub fn procstat_close(procstat: *mut procstat); pub fn procstat_freeargv(procstat: *mut procstat); pub fn procstat_freeenvv(procstat: *mut procstat); - pub fn procstat_freegroups(procstat: *mut procstat, groups: *mut ::gid_t); + pub fn procstat_freegroups(procstat: *mut procstat, groups: *mut crate::gid_t); pub fn procstat_freeptlwpinfo(procstat: *mut procstat, pl: *mut ptrace_lwpinfo); pub fn procstat_getargv( procstat: *mut procstat, kp: *mut kinfo_proc, - nchr: ::size_t, - ) -> *mut *mut ::c_char; + nchr: size_t, + ) -> *mut *mut c_char; pub fn procstat_getenvv( procstat: *mut procstat, kp: *mut kinfo_proc, - nchr: ::size_t, - ) -> *mut *mut ::c_char; + nchr: size_t, + ) -> *mut *mut c_char; pub fn procstat_getgroups( procstat: *mut procstat, kp: *mut kinfo_proc, - count: *mut ::c_uint, - ) -> *mut ::gid_t; + count: *mut c_uint, + ) -> *mut crate::gid_t; pub fn procstat_getosrel( procstat: *mut procstat, kp: *mut kinfo_proc, - osrelp: *mut ::c_int, - ) -> ::c_int; + osrelp: *mut c_int, + ) -> c_int; pub fn procstat_getpathname( procstat: *mut procstat, kp: *mut kinfo_proc, - pathname: *mut ::c_char, - maxlen: ::size_t, - ) -> ::c_int; + pathname: *mut c_char, + maxlen: size_t, + ) -> c_int; pub fn procstat_getrlimit( procstat: *mut procstat, kp: *mut kinfo_proc, - which: ::c_int, - rlimit: *mut ::rlimit, - ) -> ::c_int; + which: c_int, + rlimit: *mut crate::rlimit, + ) -> c_int; pub fn procstat_getumask( procstat: *mut procstat, kp: *mut kinfo_proc, - maskp: *mut ::c_ushort, - ) -> ::c_int; - pub fn procstat_open_core(filename: *const ::c_char) -> *mut procstat; - pub fn procstat_open_kvm(nlistf: *const ::c_char, memf: *const ::c_char) -> *mut procstat; + maskp: *mut c_ushort, + ) -> c_int; + pub fn procstat_open_core(filename: *const c_char) -> *mut procstat; + pub fn procstat_open_kvm(nlistf: *const c_char, memf: *const c_char) -> *mut procstat; pub fn procstat_get_socket_info( proc_: *mut procstat, fst: *mut filestat, sock: *mut sockstat, - errbuf: *mut ::c_char, - ) -> ::c_int; + errbuf: *mut c_char, + ) -> c_int; pub fn procstat_get_vnode_info( proc_: *mut procstat, fst: *mut filestat, vn: *mut vnstat, - errbuf: *mut ::c_char, - ) -> ::c_int; + errbuf: *mut c_char, + ) -> c_int; pub fn procstat_get_pts_info( proc_: *mut procstat, fst: *mut filestat, pts: *mut ptsstat, - errbuf: *mut ::c_char, - ) -> ::c_int; + errbuf: *mut c_char, + ) -> c_int; pub fn procstat_get_shm_info( proc_: *mut procstat, fst: *mut filestat, shm: *mut shmstat, - errbuf: *mut ::c_char, - ) -> ::c_int; + errbuf: *mut c_char, + ) -> c_int; } #[link(name = "rt")] extern "C" { - pub fn timer_create(clock_id: clockid_t, evp: *mut sigevent, timerid: *mut timer_t) -> ::c_int; - pub fn timer_delete(timerid: timer_t) -> ::c_int; - pub fn timer_getoverrun(timerid: timer_t) -> ::c_int; - pub fn timer_gettime(timerid: timer_t, value: *mut itimerspec) -> ::c_int; + pub fn timer_create(clock_id: clockid_t, evp: *mut sigevent, timerid: *mut timer_t) -> c_int; + pub fn timer_delete(timerid: timer_t) -> c_int; + pub fn timer_getoverrun(timerid: timer_t) -> c_int; + pub fn timer_gettime(timerid: timer_t, value: *mut itimerspec) -> c_int; pub fn timer_settime( timerid: timer_t, - flags: ::c_int, + flags: c_int, value: *const itimerspec, ovalue: *mut itimerspec, - ) -> ::c_int; + ) -> c_int; } #[link(name = "devstat")] extern "C" { - pub fn devstat_getnumdevs(kd: *mut ::kvm_t) -> ::c_int; - pub fn devstat_getgeneration(kd: *mut ::kvm_t) -> ::c_long; - pub fn devstat_getversion(kd: *mut ::kvm_t) -> ::c_int; - pub fn devstat_checkversion(kd: *mut ::kvm_t) -> ::c_int; + pub fn devstat_getnumdevs(kd: *mut crate::kvm_t) -> c_int; + pub fn devstat_getgeneration(kd: *mut crate::kvm_t) -> c_long; + pub fn devstat_getversion(kd: *mut crate::kvm_t) -> c_int; + pub fn devstat_checkversion(kd: *mut crate::kvm_t) -> c_int; pub fn devstat_selectdevs( dev_select: *mut *mut device_selection, - num_selected: *mut ::c_int, - num_selections: *mut ::c_int, - select_generation: *mut ::c_long, - current_generation: ::c_long, + num_selected: *mut c_int, + num_selections: *mut c_int, + select_generation: *mut c_long, + current_generation: c_long, devices: *mut devstat, - numdevs: ::c_int, + numdevs: c_int, matches: *mut devstat_match, - num_matches: ::c_int, - dev_selections: *mut *mut ::c_char, - num_dev_selections: ::c_int, + num_matches: c_int, + dev_selections: *mut *mut c_char, + num_dev_selections: c_int, select_mode: devstat_select_mode, - maxshowdevs: ::c_int, - perf_select: ::c_int, - ) -> ::c_int; + maxshowdevs: c_int, + perf_select: c_int, + ) -> c_int; pub fn devstat_buildmatch( - match_str: *mut ::c_char, + match_str: *mut c_char, matches: *mut *mut devstat_match, - num_matches: *mut ::c_int, - ) -> ::c_int; + num_matches: *mut c_int, + ) -> c_int; } cfg_if! { diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs index 0c2e3a668bf9a..beec2dfae9679 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs @@ -1,3 +1,5 @@ +use crate::{c_int, size_t}; + pub type c_char = u8; pub type c_long = i32; pub type c_ulong = u32; @@ -10,13 +12,13 @@ pub type register_t = i32; s_no_extra_traits! { #[repr(align(16))] pub struct mcontext_t { - pub mc_vers: ::c_int, - pub mc_flags: ::c_int, - pub mc_onstack: ::c_int, - pub mc_len: ::c_int, + pub mc_vers: c_int, + pub mc_flags: c_int, + pub mc_onstack: c_int, + pub mc_len: c_int, pub mc_avec: [u64; 64], pub mc_av: [u32; 2], - pub mc_frame: [::register_t; 42], + pub mc_frame: [crate::register_t; 42], pub mc_fpreg: [u64; 33], pub mc_vsxfpreg: [u64; 32], } @@ -38,8 +40,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("mcontext_t") .field("mc_vers", &self.mc_vers) .field("mc_flags", &self.mc_flags) @@ -53,8 +55,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.mc_vers.hash(state); self.mc_flags.hash(state); self.mc_onstack.hash(state); @@ -69,10 +71,10 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; -pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; -pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; -pub const MAP_32BIT: ::c_int = 0x00080000; -pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 -pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; +pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; +pub const MAP_32BIT: c_int = 0x00080000; +pub const MINSIGSTKSZ: size_t = 2048; // 512 * 4 +pub const TIOCTIMESTAMP: c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs index b1e76001370e1..5f9ed7a5c2d95 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs @@ -1,3 +1,5 @@ +use crate::{c_int, size_t}; + pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; @@ -10,13 +12,13 @@ pub type register_t = i64; s_no_extra_traits! { #[repr(align(16))] pub struct mcontext_t { - pub mc_vers: ::c_int, - pub mc_flags: ::c_int, - pub mc_onstack: ::c_int, - pub mc_len: ::c_int, + pub mc_vers: c_int, + pub mc_flags: c_int, + pub mc_onstack: c_int, + pub mc_len: c_int, pub mc_avec: [u64; 64], pub mc_av: [u32; 2], - pub mc_frame: [::register_t; 42], + pub mc_frame: [crate::register_t; 42], pub mc_fpreg: [u64; 33], pub mc_vsxfpreg: [u64; 32], } @@ -38,8 +40,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("mcontext_t") .field("mc_vers", &self.mc_vers) .field("mc_flags", &self.mc_flags) @@ -53,8 +55,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.mc_vers.hash(state); self.mc_flags.hash(state); self.mc_onstack.hash(state); @@ -69,11 +71,11 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; -pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; -pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; +pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; -pub const MAP_32BIT: ::c_int = 0x00080000; -pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 -pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; +pub const MAP_32BIT: c_int = 0x00080000; +pub const MINSIGSTKSZ: size_t = 2048; // 512 * 4 +pub const TIOCTIMESTAMP: c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs index 85afef02975bf..5864a88d7d616 100644 --- a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs @@ -1,37 +1,39 @@ +use crate::{c_int, c_longlong, size_t}; + pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; pub type clock_t = i32; -pub type wchar_t = ::c_int; +pub type wchar_t = c_int; pub type time_t = i64; -pub type suseconds_t = ::c_long; +pub type suseconds_t = c_long; pub type register_t = i64; s_no_extra_traits! { pub struct gpregs { - pub gp_ra: ::register_t, - pub gp_sp: ::register_t, - pub gp_gp: ::register_t, - pub gp_tp: ::register_t, - pub gp_t: [::register_t; 7], - pub gp_s: [::register_t; 12], - pub gp_a: [::register_t; 8], - pub gp_sepc: ::register_t, - pub gp_sstatus: ::register_t, + pub gp_ra: crate::register_t, + pub gp_sp: crate::register_t, + pub gp_gp: crate::register_t, + pub gp_tp: crate::register_t, + pub gp_t: [crate::register_t; 7], + pub gp_s: [crate::register_t; 12], + pub gp_a: [crate::register_t; 8], + pub gp_sepc: crate::register_t, + pub gp_sstatus: crate::register_t, } pub struct fpregs { pub fp_x: [[u64; 2]; 32], pub fp_fcsr: u64, - pub fp_flags: ::c_int, - pub pad: ::c_int, + pub fp_flags: c_int, + pub pad: c_int, } pub struct mcontext_t { pub mc_gpregs: gpregs, pub mc_fpregs: fpregs, - pub mc_flags: ::c_int, - pub mc_pad: ::c_int, + pub mc_flags: c_int, + pub mc_pad: c_int, pub mc_spare: [u64; 8], } } @@ -52,8 +54,8 @@ cfg_if! { } } impl Eq for gpregs {} - impl ::fmt::Debug for gpregs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for gpregs { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("gpregs") .field("gp_ra", &self.gp_ra) .field("gp_sp", &self.gp_sp) @@ -67,8 +69,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for gpregs { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for gpregs { + fn hash(&self, state: &mut H) { self.gp_ra.hash(state); self.gp_sp.hash(state); self.gp_gp.hash(state); @@ -89,8 +91,8 @@ cfg_if! { } } impl Eq for fpregs {} - impl ::fmt::Debug for fpregs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for fpregs { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("fpregs") .field("fp_x", &self.fp_x) .field("fp_fcsr", &self.fp_fcsr) @@ -99,8 +101,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for fpregs { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for fpregs { + fn hash(&self, state: &mut H) { self.fp_x.hash(state); self.fp_fcsr.hash(state); self.fp_flags.hash(state); @@ -121,8 +123,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("mcontext_t") .field("mc_gpregs", &self.mc_gpregs) .field("mc_fpregs", &self.mc_fpregs) @@ -132,8 +134,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.mc_gpregs.hash(state); self.mc_fpregs.hash(state); self.mc_flags.hash(state); @@ -144,10 +146,10 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; -pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; -pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; -pub const MAP_32BIT: ::c_int = 0x00080000; -pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4 -pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; +pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; +pub const MAP_32BIT: c_int = 0x00080000; +pub const MINSIGSTKSZ: size_t = 4096; // 1024 * 4 +pub const TIOCTIMESTAMP: c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index 9aaeff66cc6e0..40c3b25b1375e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -1,7 +1,9 @@ +use crate::{c_int, size_t}; + pub type c_char = i8; pub type c_long = i32; pub type c_ulong = u32; -pub type clock_t = ::c_ulong; +pub type clock_t = c_ulong; pub type wchar_t = i32; pub type time_t = i32; pub type suseconds_t = i32; @@ -30,16 +32,16 @@ s_no_extra_traits! { 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_len: c_int, + pub mc_fpformat: c_int, + pub mc_ownedfp: c_int, pub mc_flags: register_t, - pub mc_fpstate: [::c_int; 128], + pub mc_fpstate: [c_int; 128], 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], + pub mc_spare2: [c_int; 4], } } @@ -88,8 +90,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("mcontext_t") .field("mc_onstack", &self.mc_onstack) .field("mc_gs", &self.mc_gs) @@ -124,8 +126,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.mc_onstack.hash(state); self.mc_gs.hash(state); self.mc_fs.hash(state); @@ -161,11 +163,11 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; -pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 +pub const MINSIGSTKSZ: size_t = 2048; // 512 * 4 -pub const BIOCSRTIMEOUT: ::c_ulong = 0x8008426d; -pub const BIOCGRTIMEOUT: ::c_ulong = 0x4008426e; -pub const KINFO_FILE_SIZE: ::c_int = 1392; -pub const TIOCTIMESTAMP: ::c_ulong = 0x40087459; +pub const BIOCSRTIMEOUT: c_ulong = 0x8008426d; +pub const BIOCGRTIMEOUT: c_ulong = 0x4008426e; +pub const KINFO_FILE_SIZE: c_int = 1392; +pub const TIOCTIMESTAMP: c_ulong = 0x40087459; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index 093b3e87b6b26..912b5f39b6d80 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -1,3 +1,5 @@ +use crate::{c_int, c_void, size_t}; + pub type c_char = i8; pub type c_long = i64; pub type c_ulong = u64; @@ -83,13 +85,13 @@ s_no_extra_traits! { } pub union __c_anonymous_elf64_auxv_union { - pub a_val: ::c_long, - pub a_ptr: *mut ::c_void, + pub a_val: c_long, + pub a_ptr: *mut c_void, pub a_fcn: extern "C" fn(), } pub struct Elf64_Auxinfo { - pub a_type: ::c_long, + pub a_type: c_long, pub a_un: __c_anonymous_elf64_auxv_union, } @@ -157,8 +159,8 @@ cfg_if! { } } impl Eq for fpreg32 {} - impl ::fmt::Debug for fpreg32 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for fpreg32 { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("fpreg32") .field("fpr_env", &&self.fpr_env[..]) .field("fpr_acc", &self.fpr_acc) @@ -167,8 +169,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for fpreg32 { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for fpreg32 { + fn hash(&self, state: &mut H) { self.fpr_env.hash(state); self.fpr_acc.hash(state); self.fpr_ex_sw.hash(state); @@ -185,8 +187,8 @@ cfg_if! { } } impl Eq for fpreg {} - impl ::fmt::Debug for fpreg { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for fpreg { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("fpreg") .field("fpr_env", &self.fpr_env) .field("fpr_acc", &self.fpr_acc) @@ -195,8 +197,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for fpreg { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for fpreg { + fn hash(&self, state: &mut H) { self.fpr_env.hash(state); self.fpr_acc.hash(state); self.fpr_xacc.hash(state); @@ -217,8 +219,8 @@ cfg_if! { } } impl Eq for xmmreg {} - impl ::fmt::Debug for xmmreg { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for xmmreg { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("xmmreg") .field("xmm_env", &self.xmm_env) .field("xmm_acc", &self.xmm_acc) @@ -227,8 +229,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for xmmreg { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for xmmreg { + fn hash(&self, state: &mut H) { self.xmm_env.hash(state); self.xmm_acc.hash(state); self.xmm_reg.hash(state); @@ -246,8 +248,8 @@ cfg_if! { } } impl Eq for __c_anonymous_elf64_auxv_union {} - impl ::fmt::Debug for __c_anonymous_elf64_auxv_union { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_elf64_auxv_union { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("a_val") .field("a_val", unsafe { &self.a_val }) .finish() @@ -259,8 +261,8 @@ cfg_if! { } } impl Eq for Elf64_Auxinfo {} - impl ::fmt::Debug for Elf64_Auxinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for Elf64_Auxinfo { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("Elf64_Auxinfo") .field("a_type", &self.a_type) .field("a_un", &self.a_un) @@ -315,8 +317,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("mcontext_t") .field("mc_onstack", &self.mc_onstack) .field("mc_rdi", &self.mc_rdi) @@ -359,8 +361,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.mc_onstack.hash(state); self.mc_rdi.hash(state); self.mc_rsi.hash(state); @@ -404,13 +406,13 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; -pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; -pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; +pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; -pub const MAP_32BIT: ::c_int = 0x00080000; -pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 +pub const MAP_32BIT: c_int = 0x00080000; +pub const MINSIGSTKSZ: size_t = 2048; // 512 * 4 pub const _MC_HASSEGS: u32 = 0x1; pub const _MC_HASBASES: u32 = 0x2; @@ -423,6 +425,6 @@ pub const _MC_FPOWNED_NONE: c_long = 0x20000; pub const _MC_FPOWNED_FPU: c_long = 0x20001; pub const _MC_FPOWNED_PCB: c_long = 0x20002; -pub const KINFO_FILE_SIZE: ::c_int = 1392; +pub const KINFO_FILE_SIZE: c_int = 1392; -pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; +pub const TIOCTIMESTAMP: c_ulong = 0x40107459; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 7628eee7f5c11..fcedc565e3655 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1,19 +1,24 @@ +use crate::{ + c_double, c_int, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, off_t, size_t, + ssize_t, +}; + pub type mode_t = u16; -pub type pthread_attr_t = *mut ::c_void; +pub type pthread_attr_t = *mut c_void; pub type rlim_t = i64; -pub type pthread_mutex_t = *mut ::c_void; -pub type pthread_mutexattr_t = *mut ::c_void; -pub type pthread_cond_t = *mut ::c_void; -pub type pthread_condattr_t = *mut ::c_void; -pub type pthread_rwlock_t = *mut ::c_void; -pub type pthread_rwlockattr_t = *mut ::c_void; -pub type pthread_key_t = ::c_int; -pub type tcflag_t = ::c_uint; -pub type speed_t = ::c_uint; -pub type nl_item = ::c_int; +pub type pthread_mutex_t = *mut c_void; +pub type pthread_mutexattr_t = *mut c_void; +pub type pthread_cond_t = *mut c_void; +pub type pthread_condattr_t = *mut c_void; +pub type pthread_rwlock_t = *mut c_void; +pub type pthread_rwlockattr_t = *mut c_void; +pub type pthread_key_t = c_int; +pub type tcflag_t = c_uint; +pub type speed_t = c_uint; +pub type nl_item = c_int; pub type id_t = i64; -pub type vm_size_t = ::uintptr_t; -pub type key_t = ::c_long; +pub type vm_size_t = crate::uintptr_t; +pub type key_t = c_long; // elf.h @@ -33,11 +38,11 @@ pub type Elf64_Sxword = i64; pub type Elf64_Word = u32; pub type Elf64_Xword = u64; -pub type iconv_t = *mut ::c_void; +pub type iconv_t = *mut c_void; // It's an alias over "struct __kvm_t". However, its fields aren't supposed to be used directly, // making the type definition system dependent. Better not bind it exactly. -pub type kvm_t = ::c_void; +pub type kvm_t = c_void; cfg_if! { if #[cfg(target_pointer_width = "64")] { @@ -55,38 +60,38 @@ cfg_if! { #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { +impl Copy for timezone {} +impl Clone for timezone { fn clone(&self) -> timezone { *self } } impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { + pub unsafe fn si_addr(&self) -> *mut c_void { self.si_addr } - pub unsafe fn si_value(&self) -> ::sigval { + pub unsafe fn si_value(&self) -> crate::sigval { self.si_value } - pub unsafe fn si_pid(&self) -> ::pid_t { + pub unsafe fn si_pid(&self) -> crate::pid_t { self.si_pid } - pub unsafe fn si_uid(&self) -> ::uid_t { + pub unsafe fn si_uid(&self) -> crate::uid_t { self.si_uid } - pub unsafe fn si_status(&self) -> ::c_int { + pub unsafe fn si_status(&self) -> c_int { self.si_status } } s! { pub struct in_addr { - pub s_addr: ::in_addr_t, + pub s_addr: crate::in_addr_t, } pub struct ip_mreq { @@ -97,7 +102,7 @@ s! { pub struct ip_mreqn { pub imr_multiaddr: in_addr, pub imr_address: in_addr, - pub imr_ifindex: ::c_int, + pub imr_ifindex: c_int, } pub struct ip_mreq_source { @@ -107,27 +112,27 @@ s! { } pub struct glob_t { - pub gl_pathc: ::size_t, - pub gl_matchc: ::size_t, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - pub gl_pathv: *mut *mut ::c_char, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - __unused6: *mut ::c_void, - __unused7: *mut ::c_void, - __unused8: *mut ::c_void, + pub gl_pathc: size_t, + pub gl_matchc: size_t, + pub gl_offs: size_t, + pub gl_flags: c_int, + pub gl_pathv: *mut *mut c_char, + __unused3: *mut c_void, + __unused4: *mut c_void, + __unused5: *mut c_void, + __unused6: *mut c_void, + __unused7: *mut c_void, + __unused8: *mut c_void, } pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: ::socklen_t, - pub ai_canonname: *mut ::c_char, - pub ai_addr: *mut ::sockaddr, + pub ai_flags: c_int, + pub ai_family: c_int, + pub ai_socktype: c_int, + pub ai_protocol: c_int, + pub ai_addrlen: crate::socklen_t, + pub ai_canonname: *mut c_char, + pub ai_addr: *mut crate::sockaddr, pub ai_next: *mut addrinfo, } @@ -136,114 +141,114 @@ s! { } 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_value: ::sigval, - _pad1: ::c_long, - _pad2: [::c_int; 7], + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, + pub si_pid: crate::pid_t, + pub si_uid: crate::uid_t, + pub si_status: c_int, + pub si_addr: *mut c_void, + pub si_value: crate::sigval, + _pad1: c_long, + _pad2: [c_int; 7], } pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_flags: ::c_int, + pub sa_sigaction: crate::sighandler_t, + pub sa_flags: c_int, pub sa_mask: sigset_t, } pub struct sched_param { - pub sched_priority: ::c_int, + pub sched_priority: c_int, } pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, + pub dli_fname: *const c_char, + pub dli_fbase: *mut c_void, + pub dli_sname: *const c_char, + pub dli_saddr: *mut c_void, } pub struct sockaddr_in { pub sin_len: u8, - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [::c_char; 8], + pub sin_family: crate::sa_family_t, + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, + pub sin_zero: [c_char; 8], } pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_cc: [::cc_t; ::NCCS], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_cc: [crate::cc_t; crate::NCCS], + pub c_ispeed: crate::speed_t, + pub c_ospeed: crate::speed_t, } pub struct flock { - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - pub l_type: ::c_short, - pub l_whence: ::c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, + pub l_type: c_short, + pub l_whence: c_short, #[cfg(not(target_os = "dragonfly"))] - pub l_sysid: ::c_int, + pub l_sysid: c_int, } pub struct sf_hdtr { - pub headers: *mut ::iovec, - pub hdr_cnt: ::c_int, - pub trailers: *mut ::iovec, - pub trl_cnt: ::c_int, + pub headers: *mut crate::iovec, + pub hdr_cnt: c_int, + pub trailers: *mut crate::iovec, + pub trl_cnt: c_int, } pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, + pub decimal_point: *mut c_char, + pub thousands_sep: *mut c_char, + pub grouping: *mut c_char, + pub int_curr_symbol: *mut c_char, + pub currency_symbol: *mut c_char, + pub mon_decimal_point: *mut c_char, + pub mon_thousands_sep: *mut c_char, + pub mon_grouping: *mut c_char, + pub positive_sign: *mut c_char, + pub negative_sign: *mut c_char, + pub int_frac_digits: c_char, + pub frac_digits: c_char, + pub p_cs_precedes: c_char, + pub p_sep_by_space: c_char, + pub n_cs_precedes: c_char, + pub n_sep_by_space: c_char, + pub p_sign_posn: c_char, + pub n_sign_posn: c_char, + pub int_p_cs_precedes: c_char, + pub int_n_cs_precedes: c_char, + pub int_p_sep_by_space: c_char, + pub int_n_sep_by_space: c_char, + pub int_p_sign_posn: c_char, + pub int_n_sign_posn: c_char, } pub struct cmsgcred { - pub cmcred_pid: ::pid_t, - pub cmcred_uid: ::uid_t, - pub cmcred_euid: ::uid_t, - pub cmcred_gid: ::gid_t, - pub cmcred_ngroups: ::c_short, - pub cmcred_groups: [::gid_t; CMGROUP_MAX], + pub cmcred_pid: crate::pid_t, + pub cmcred_uid: crate::uid_t, + pub cmcred_euid: crate::uid_t, + pub cmcred_gid: crate::gid_t, + pub cmcred_ngroups: c_short, + pub cmcred_groups: [crate::gid_t; CMGROUP_MAX], } pub struct rtprio { - pub type_: ::c_ushort, - pub prio: ::c_ushort, + pub type_: c_ushort, + pub prio: c_ushort, } pub struct in6_pktinfo { - pub ipi6_addr: ::in6_addr, - pub ipi6_ifindex: ::c_uint, + pub ipi6_addr: crate::in6_addr, + pub ipi6_ifindex: c_uint, } pub struct arphdr { @@ -255,79 +260,79 @@ s! { } pub struct timex { - pub modes: ::c_uint, - pub offset: ::c_long, - pub freq: ::c_long, - pub maxerror: ::c_long, - pub esterror: ::c_long, - pub status: ::c_int, - pub constant: ::c_long, - pub precision: ::c_long, - pub tolerance: ::c_long, - pub ppsfreq: ::c_long, - pub jitter: ::c_long, - pub shift: ::c_int, - pub stabil: ::c_long, - pub jitcnt: ::c_long, - pub calcnt: ::c_long, - pub errcnt: ::c_long, - pub stbcnt: ::c_long, + pub modes: c_uint, + pub offset: c_long, + pub freq: c_long, + pub maxerror: c_long, + pub esterror: c_long, + pub status: c_int, + pub constant: c_long, + pub precision: c_long, + pub tolerance: c_long, + pub ppsfreq: c_long, + pub jitter: c_long, + pub shift: c_int, + pub stabil: c_long, + pub jitcnt: c_long, + pub calcnt: c_long, + pub errcnt: c_long, + pub stbcnt: c_long, } pub struct ntptimeval { - pub time: ::timespec, - pub maxerror: ::c_long, - pub esterror: ::c_long, - pub tai: ::c_long, - pub time_state: ::c_int, + pub time: crate::timespec, + pub maxerror: c_long, + pub esterror: c_long, + pub tai: c_long, + pub time_state: c_int, } pub struct accept_filter_arg { - pub af_name: [::c_char; 16], - af_arg: [::c_char; 256 - 16], + pub af_name: [c_char; 16], + af_arg: [c_char; 256 - 16], } pub struct ptrace_io_desc { - pub piod_op: ::c_int, - pub piod_offs: *mut ::c_void, - pub piod_addr: *mut ::c_void, - pub piod_len: ::size_t, + pub piod_op: c_int, + pub piod_offs: *mut c_void, + pub piod_addr: *mut c_void, + pub piod_len: size_t, } // bpf.h pub struct bpf_program { - pub bf_len: ::c_uint, + pub bf_len: c_uint, pub bf_insns: *mut bpf_insn, } pub struct bpf_stat { - pub bs_recv: ::c_uint, - pub bs_drop: ::c_uint, + pub bs_recv: c_uint, + pub bs_drop: c_uint, } pub struct bpf_version { - pub bv_major: ::c_ushort, - pub bv_minor: ::c_ushort, + pub bv_major: c_ushort, + pub bv_minor: c_ushort, } pub struct bpf_hdr { - pub bh_tstamp: ::timeval, + pub bh_tstamp: crate::timeval, pub bh_caplen: u32, pub bh_datalen: u32, - pub bh_hdrlen: ::c_ushort, + pub bh_hdrlen: c_ushort, } pub struct bpf_insn { - pub code: ::c_ushort, - pub jt: ::c_uchar, - pub jf: ::c_uchar, + pub code: c_ushort, + pub jt: c_uchar, + pub jf: c_uchar, pub k: u32, } pub struct bpf_dltlist { - bfl_len: ::c_uint, - bfl_list: *mut ::c_uint, + bfl_len: c_uint, + bfl_list: *mut c_uint, } // elf.h @@ -358,23 +363,23 @@ s! { pub struct dl_phdr_info { pub dlpi_addr: Elf_Addr, - pub dlpi_name: *const ::c_char, + pub dlpi_name: *const c_char, pub dlpi_phdr: *const Elf_Phdr, pub dlpi_phnum: Elf_Half, - pub dlpi_adds: ::c_ulonglong, - pub dlpi_subs: ::c_ulonglong, + pub dlpi_adds: c_ulonglong, + pub dlpi_subs: c_ulonglong, pub dlpi_tls_modid: usize, - pub dlpi_tls_data: *mut ::c_void, + pub dlpi_tls_data: *mut c_void, } pub struct ipc_perm { - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub mode: ::mode_t, - pub seq: ::c_ushort, - pub key: ::key_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub mode: crate::mode_t, + pub seq: c_ushort, + pub key: crate::key_t, } pub struct eui64 { @@ -385,7 +390,7 @@ s! { s_no_extra_traits! { pub struct sockaddr_storage { pub ss_len: u8, - pub ss_family: ::sa_family_t, + pub ss_family: crate::sa_family_t, __ss_pad1: [u8; 6], __ss_align: i64, __ss_pad2: [u8; 112], @@ -408,8 +413,8 @@ cfg_if! { } } impl Eq for sockaddr_storage {} - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_len", &self.ss_len) .field("ss_family", &self.ss_family) @@ -419,8 +424,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_len.hash(state); self.ss_family.hash(state); self.__ss_pad1.hash(state); @@ -432,128 +437,128 @@ cfg_if! { } // Non-public helper constant -const SIZEOF_LONG: usize = ::mem::size_of::<::c_long>(); +const SIZEOF_LONG: usize = crate::mem::size_of::(); #[deprecated( since = "0.2.64", note = "Can vary at runtime. Use sysconf(3) instead" )] -pub const AIO_LISTIO_MAX: ::c_int = 16; -pub const AIO_CANCELED: ::c_int = 1; -pub const AIO_NOTCANCELED: ::c_int = 2; -pub const AIO_ALLDONE: ::c_int = 3; -pub const LIO_NOP: ::c_int = 0; -pub const LIO_WRITE: ::c_int = 1; -pub const LIO_READ: ::c_int = 2; -pub const LIO_WAIT: ::c_int = 1; -pub const LIO_NOWAIT: ::c_int = 0; - -pub const SIGEV_NONE: ::c_int = 0; -pub const SIGEV_SIGNAL: ::c_int = 1; -pub const SIGEV_THREAD: ::c_int = 2; -pub const SIGEV_KEVENT: ::c_int = 3; - -pub const CODESET: ::nl_item = 0; -pub const D_T_FMT: ::nl_item = 1; -pub const D_FMT: ::nl_item = 2; -pub const T_FMT: ::nl_item = 3; -pub const T_FMT_AMPM: ::nl_item = 4; -pub const AM_STR: ::nl_item = 5; -pub const PM_STR: ::nl_item = 6; - -pub const DAY_1: ::nl_item = 7; -pub const DAY_2: ::nl_item = 8; -pub const DAY_3: ::nl_item = 9; -pub const DAY_4: ::nl_item = 10; -pub const DAY_5: ::nl_item = 11; -pub const DAY_6: ::nl_item = 12; -pub const DAY_7: ::nl_item = 13; - -pub const ABDAY_1: ::nl_item = 14; -pub const ABDAY_2: ::nl_item = 15; -pub const ABDAY_3: ::nl_item = 16; -pub const ABDAY_4: ::nl_item = 17; -pub const ABDAY_5: ::nl_item = 18; -pub const ABDAY_6: ::nl_item = 19; -pub const ABDAY_7: ::nl_item = 20; - -pub const MON_1: ::nl_item = 21; -pub const MON_2: ::nl_item = 22; -pub const MON_3: ::nl_item = 23; -pub const MON_4: ::nl_item = 24; -pub const MON_5: ::nl_item = 25; -pub const MON_6: ::nl_item = 26; -pub const MON_7: ::nl_item = 27; -pub const MON_8: ::nl_item = 28; -pub const MON_9: ::nl_item = 29; -pub const MON_10: ::nl_item = 30; -pub const MON_11: ::nl_item = 31; -pub const MON_12: ::nl_item = 32; - -pub const ABMON_1: ::nl_item = 33; -pub const ABMON_2: ::nl_item = 34; -pub const ABMON_3: ::nl_item = 35; -pub const ABMON_4: ::nl_item = 36; -pub const ABMON_5: ::nl_item = 37; -pub const ABMON_6: ::nl_item = 38; -pub const ABMON_7: ::nl_item = 39; -pub const ABMON_8: ::nl_item = 40; -pub const ABMON_9: ::nl_item = 41; -pub const ABMON_10: ::nl_item = 42; -pub const ABMON_11: ::nl_item = 43; -pub const ABMON_12: ::nl_item = 44; - -pub const ERA: ::nl_item = 45; -pub const ERA_D_FMT: ::nl_item = 46; -pub const ERA_D_T_FMT: ::nl_item = 47; -pub const ERA_T_FMT: ::nl_item = 48; -pub const ALT_DIGITS: ::nl_item = 49; - -pub const RADIXCHAR: ::nl_item = 50; -pub const THOUSEP: ::nl_item = 51; - -pub const YESEXPR: ::nl_item = 52; -pub const NOEXPR: ::nl_item = 53; - -pub const YESSTR: ::nl_item = 54; -pub const NOSTR: ::nl_item = 55; - -pub const CRNCYSTR: ::nl_item = 56; - -pub const D_MD_ORDER: ::nl_item = 57; - -pub const ALTMON_1: ::nl_item = 58; -pub const ALTMON_2: ::nl_item = 59; -pub const ALTMON_3: ::nl_item = 60; -pub const ALTMON_4: ::nl_item = 61; -pub const ALTMON_5: ::nl_item = 62; -pub const ALTMON_6: ::nl_item = 63; -pub const ALTMON_7: ::nl_item = 64; -pub const ALTMON_8: ::nl_item = 65; -pub const ALTMON_9: ::nl_item = 66; -pub const ALTMON_10: ::nl_item = 67; -pub const ALTMON_11: ::nl_item = 68; -pub const ALTMON_12: ::nl_item = 69; - -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const SEEK_DATA: ::c_int = 3; -pub const SEEK_HOLE: ::c_int = 4; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 2; -pub const _IOLBF: ::c_int = 1; -pub const BUFSIZ: ::c_uint = 1024; -pub const FOPEN_MAX: ::c_uint = 20; -pub const FILENAME_MAX: ::c_uint = 1024; -pub const L_tmpnam: ::c_uint = 1024; -pub const TMP_MAX: ::c_uint = 308915776; - -pub const O_NOCTTY: ::c_int = 32768; -pub const O_DIRECT: ::c_int = 0x00010000; +pub const AIO_LISTIO_MAX: c_int = 16; +pub const AIO_CANCELED: c_int = 1; +pub const AIO_NOTCANCELED: c_int = 2; +pub const AIO_ALLDONE: c_int = 3; +pub const LIO_NOP: c_int = 0; +pub const LIO_WRITE: c_int = 1; +pub const LIO_READ: c_int = 2; +pub const LIO_WAIT: c_int = 1; +pub const LIO_NOWAIT: c_int = 0; + +pub const SIGEV_NONE: c_int = 0; +pub const SIGEV_SIGNAL: c_int = 1; +pub const SIGEV_THREAD: c_int = 2; +pub const SIGEV_KEVENT: c_int = 3; + +pub const CODESET: crate::nl_item = 0; +pub const D_T_FMT: crate::nl_item = 1; +pub const D_FMT: crate::nl_item = 2; +pub const T_FMT: crate::nl_item = 3; +pub const T_FMT_AMPM: crate::nl_item = 4; +pub const AM_STR: crate::nl_item = 5; +pub const PM_STR: crate::nl_item = 6; + +pub const DAY_1: crate::nl_item = 7; +pub const DAY_2: crate::nl_item = 8; +pub const DAY_3: crate::nl_item = 9; +pub const DAY_4: crate::nl_item = 10; +pub const DAY_5: crate::nl_item = 11; +pub const DAY_6: crate::nl_item = 12; +pub const DAY_7: crate::nl_item = 13; + +pub const ABDAY_1: crate::nl_item = 14; +pub const ABDAY_2: crate::nl_item = 15; +pub const ABDAY_3: crate::nl_item = 16; +pub const ABDAY_4: crate::nl_item = 17; +pub const ABDAY_5: crate::nl_item = 18; +pub const ABDAY_6: crate::nl_item = 19; +pub const ABDAY_7: crate::nl_item = 20; + +pub const MON_1: crate::nl_item = 21; +pub const MON_2: crate::nl_item = 22; +pub const MON_3: crate::nl_item = 23; +pub const MON_4: crate::nl_item = 24; +pub const MON_5: crate::nl_item = 25; +pub const MON_6: crate::nl_item = 26; +pub const MON_7: crate::nl_item = 27; +pub const MON_8: crate::nl_item = 28; +pub const MON_9: crate::nl_item = 29; +pub const MON_10: crate::nl_item = 30; +pub const MON_11: crate::nl_item = 31; +pub const MON_12: crate::nl_item = 32; + +pub const ABMON_1: crate::nl_item = 33; +pub const ABMON_2: crate::nl_item = 34; +pub const ABMON_3: crate::nl_item = 35; +pub const ABMON_4: crate::nl_item = 36; +pub const ABMON_5: crate::nl_item = 37; +pub const ABMON_6: crate::nl_item = 38; +pub const ABMON_7: crate::nl_item = 39; +pub const ABMON_8: crate::nl_item = 40; +pub const ABMON_9: crate::nl_item = 41; +pub const ABMON_10: crate::nl_item = 42; +pub const ABMON_11: crate::nl_item = 43; +pub const ABMON_12: crate::nl_item = 44; + +pub const ERA: crate::nl_item = 45; +pub const ERA_D_FMT: crate::nl_item = 46; +pub const ERA_D_T_FMT: crate::nl_item = 47; +pub const ERA_T_FMT: crate::nl_item = 48; +pub const ALT_DIGITS: crate::nl_item = 49; + +pub const RADIXCHAR: crate::nl_item = 50; +pub const THOUSEP: crate::nl_item = 51; + +pub const YESEXPR: crate::nl_item = 52; +pub const NOEXPR: crate::nl_item = 53; + +pub const YESSTR: crate::nl_item = 54; +pub const NOSTR: crate::nl_item = 55; + +pub const CRNCYSTR: crate::nl_item = 56; + +pub const D_MD_ORDER: crate::nl_item = 57; + +pub const ALTMON_1: crate::nl_item = 58; +pub const ALTMON_2: crate::nl_item = 59; +pub const ALTMON_3: crate::nl_item = 60; +pub const ALTMON_4: crate::nl_item = 61; +pub const ALTMON_5: crate::nl_item = 62; +pub const ALTMON_6: crate::nl_item = 63; +pub const ALTMON_7: crate::nl_item = 64; +pub const ALTMON_8: crate::nl_item = 65; +pub const ALTMON_9: crate::nl_item = 66; +pub const ALTMON_10: crate::nl_item = 67; +pub const ALTMON_11: crate::nl_item = 68; +pub const ALTMON_12: crate::nl_item = 69; + +pub const EXIT_FAILURE: c_int = 1; +pub const EXIT_SUCCESS: c_int = 0; +pub const EOF: c_int = -1; +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; +pub const SEEK_DATA: c_int = 3; +pub const SEEK_HOLE: c_int = 4; +pub const _IOFBF: c_int = 0; +pub const _IONBF: c_int = 2; +pub const _IOLBF: c_int = 1; +pub const BUFSIZ: c_uint = 1024; +pub const FOPEN_MAX: c_uint = 20; +pub const FILENAME_MAX: c_uint = 1024; +pub const L_tmpnam: c_uint = 1024; +pub const TMP_MAX: c_uint = 308915776; + +pub const O_NOCTTY: c_int = 32768; +pub const O_DIRECT: c_int = 0x00010000; pub const S_IFIFO: mode_t = 0o1_0000; pub const S_IFCHR: mode_t = 0o2_0000; @@ -578,737 +583,737 @@ pub const S_IRWXO: mode_t = 0o0007; pub const S_IXOTH: mode_t = 0o0001; pub const S_IWOTH: mode_t = 0o0002; pub const S_IROTH: mode_t = 0o0004; -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; -pub const F_DUPFD_CLOEXEC: ::c_int = 17; -pub const F_DUP2FD: ::c_int = 10; -pub const F_DUP2FD_CLOEXEC: ::c_int = 18; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSEGV: ::c_int = 11; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; - -pub const PROT_NONE: ::c_int = 0; -pub const PROT_READ: ::c_int = 1; -pub const PROT_WRITE: ::c_int = 2; -pub const PROT_EXEC: ::c_int = 4; - -pub const MAP_FILE: ::c_int = 0x0000; -pub const MAP_SHARED: ::c_int = 0x0001; -pub const MAP_PRIVATE: ::c_int = 0x0002; -pub const MAP_FIXED: ::c_int = 0x0010; -pub const MAP_ANON: ::c_int = 0x1000; -pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; - -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const MNT_EXPUBLIC: ::c_int = 0x20000000; -pub const MNT_NOATIME: ::c_int = 0x10000000; -pub const MNT_NOCLUSTERR: ::c_int = 0x40000000; -pub const MNT_NOCLUSTERW: ::c_int = 0x80000000; -pub const MNT_NOSYMFOLLOW: ::c_int = 0x00400000; -pub const MNT_SOFTDEP: ::c_int = 0x00200000; -pub const MNT_SUIDDIR: ::c_int = 0x00100000; -pub const MNT_EXRDONLY: ::c_int = 0x00000080; -pub const MNT_DEFEXPORTED: ::c_int = 0x00000200; -pub const MNT_EXPORTANON: ::c_int = 0x00000400; -pub const MNT_EXKERB: ::c_int = 0x00000800; -pub const MNT_DELEXPORT: ::c_int = 0x00020000; - -pub const MS_SYNC: ::c_int = 0x0000; -pub const MS_ASYNC: ::c_int = 0x0001; -pub const MS_INVALIDATE: ::c_int = 0x0002; - -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EDEADLK: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const EAGAIN: ::c_int = 35; -pub const EWOULDBLOCK: ::c_int = 35; -pub const EINPROGRESS: ::c_int = 36; -pub const EALREADY: ::c_int = 37; -pub const ENOTSOCK: ::c_int = 38; -pub const EDESTADDRREQ: ::c_int = 39; -pub const EMSGSIZE: ::c_int = 40; -pub const EPROTOTYPE: ::c_int = 41; -pub const ENOPROTOOPT: ::c_int = 42; -pub const EPROTONOSUPPORT: ::c_int = 43; -pub const ESOCKTNOSUPPORT: ::c_int = 44; -pub const EOPNOTSUPP: ::c_int = 45; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 46; -pub const EAFNOSUPPORT: ::c_int = 47; -pub const EADDRINUSE: ::c_int = 48; -pub const EADDRNOTAVAIL: ::c_int = 49; -pub const ENETDOWN: ::c_int = 50; -pub const ENETUNREACH: ::c_int = 51; -pub const ENETRESET: ::c_int = 52; -pub const ECONNABORTED: ::c_int = 53; -pub const ECONNRESET: ::c_int = 54; -pub const ENOBUFS: ::c_int = 55; -pub const EISCONN: ::c_int = 56; -pub const ENOTCONN: ::c_int = 57; -pub const ESHUTDOWN: ::c_int = 58; -pub const ETOOMANYREFS: ::c_int = 59; -pub const ETIMEDOUT: ::c_int = 60; -pub const ECONNREFUSED: ::c_int = 61; -pub const ELOOP: ::c_int = 62; -pub const ENAMETOOLONG: ::c_int = 63; -pub const EHOSTDOWN: ::c_int = 64; -pub const EHOSTUNREACH: ::c_int = 65; -pub const ENOTEMPTY: ::c_int = 66; -pub const EPROCLIM: ::c_int = 67; -pub const EUSERS: ::c_int = 68; -pub const EDQUOT: ::c_int = 69; -pub const ESTALE: ::c_int = 70; -pub const EREMOTE: ::c_int = 71; -pub const EBADRPC: ::c_int = 72; -pub const ERPCMISMATCH: ::c_int = 73; -pub const EPROGUNAVAIL: ::c_int = 74; -pub const EPROGMISMATCH: ::c_int = 75; -pub const EPROCUNAVAIL: ::c_int = 76; -pub const ENOLCK: ::c_int = 77; -pub const ENOSYS: ::c_int = 78; -pub const EFTYPE: ::c_int = 79; -pub const EAUTH: ::c_int = 80; -pub const ENEEDAUTH: ::c_int = 81; -pub const EIDRM: ::c_int = 82; -pub const ENOMSG: ::c_int = 83; -pub const EOVERFLOW: ::c_int = 84; -pub const ECANCELED: ::c_int = 85; -pub const EILSEQ: ::c_int = 86; -pub const ENOATTR: ::c_int = 87; -pub const EDOOFUS: ::c_int = 88; -pub const EBADMSG: ::c_int = 89; -pub const EMULTIHOP: ::c_int = 90; -pub const ENOLINK: ::c_int = 91; -pub const EPROTO: ::c_int = 92; - -pub const POLLSTANDARD: ::c_short = ::POLLIN - | ::POLLPRI - | ::POLLOUT - | ::POLLRDNORM - | ::POLLRDBAND - | ::POLLWRBAND - | ::POLLERR - | ::POLLHUP - | ::POLLNVAL; - -pub const AI_PASSIVE: ::c_int = 0x00000001; -pub const AI_CANONNAME: ::c_int = 0x00000002; -pub const AI_NUMERICHOST: ::c_int = 0x00000004; -pub const AI_NUMERICSERV: ::c_int = 0x00000008; -pub const AI_ALL: ::c_int = 0x00000100; -pub const AI_ADDRCONFIG: ::c_int = 0x00000400; -pub const AI_V4MAPPED: ::c_int = 0x00000800; - -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_FAMILY: ::c_int = 5; -pub const EAI_MEMORY: ::c_int = 6; -pub const EAI_NONAME: ::c_int = 8; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_OVERFLOW: ::c_int = 14; - -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; - -pub const SIGTRAP: ::c_int = 5; - -pub const GLOB_APPEND: ::c_int = 0x0001; -pub const GLOB_DOOFFS: ::c_int = 0x0002; -pub const GLOB_ERR: ::c_int = 0x0004; -pub const GLOB_MARK: ::c_int = 0x0008; -pub const GLOB_NOCHECK: ::c_int = 0x0010; -pub const GLOB_NOSORT: ::c_int = 0x0020; -pub const GLOB_NOESCAPE: ::c_int = 0x2000; - -pub const GLOB_NOSPACE: ::c_int = -1; -pub const GLOB_ABORTED: ::c_int = -2; -pub const GLOB_NOMATCH: ::c_int = -3; - -pub const POSIX_MADV_NORMAL: ::c_int = 0; -pub const POSIX_MADV_RANDOM: ::c_int = 1; -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 PTHREAD_BARRIER_SERIAL_THREAD: ::c_int = -1; -pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0; -pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; -pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; -pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; - -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_RSS: ::c_int = 5; -pub const RLIMIT_MEMLOCK: ::c_int = 6; -pub const RLIMIT_NPROC: ::c_int = 7; -pub const RLIMIT_NOFILE: ::c_int = 8; -pub const RLIMIT_SBSIZE: ::c_int = 9; -pub const RLIMIT_VMEM: ::c_int = 10; -pub const RLIMIT_AS: ::c_int = RLIMIT_VMEM; +pub const F_OK: c_int = 0; +pub const R_OK: c_int = 4; +pub const W_OK: c_int = 2; +pub const X_OK: c_int = 1; +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; +pub const F_LOCK: c_int = 1; +pub const F_TEST: c_int = 3; +pub const F_TLOCK: c_int = 2; +pub const F_ULOCK: c_int = 0; +pub const F_DUPFD_CLOEXEC: c_int = 17; +pub const F_DUP2FD: c_int = 10; +pub const F_DUP2FD_CLOEXEC: c_int = 18; +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGABRT: c_int = 6; +pub const SIGEMT: c_int = 7; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGSEGV: c_int = 11; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; + +pub const PROT_NONE: c_int = 0; +pub const PROT_READ: c_int = 1; +pub const PROT_WRITE: c_int = 2; +pub const PROT_EXEC: c_int = 4; + +pub const MAP_FILE: c_int = 0x0000; +pub const MAP_SHARED: c_int = 0x0001; +pub const MAP_PRIVATE: c_int = 0x0002; +pub const MAP_FIXED: c_int = 0x0010; +pub const MAP_ANON: c_int = 0x1000; +pub const MAP_ANONYMOUS: c_int = MAP_ANON; + +pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; + +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; + +pub const MNT_EXPUBLIC: c_int = 0x20000000; +pub const MNT_NOATIME: c_int = 0x10000000; +pub const MNT_NOCLUSTERR: c_int = 0x40000000; +pub const MNT_NOCLUSTERW: c_int = 0x80000000; +pub const MNT_NOSYMFOLLOW: c_int = 0x00400000; +pub const MNT_SOFTDEP: c_int = 0x00200000; +pub const MNT_SUIDDIR: c_int = 0x00100000; +pub const MNT_EXRDONLY: c_int = 0x00000080; +pub const MNT_DEFEXPORTED: c_int = 0x00000200; +pub const MNT_EXPORTANON: c_int = 0x00000400; +pub const MNT_EXKERB: c_int = 0x00000800; +pub const MNT_DELEXPORT: c_int = 0x00020000; + +pub const MS_SYNC: c_int = 0x0000; +pub const MS_ASYNC: c_int = 0x0001; +pub const MS_INVALIDATE: c_int = 0x0002; + +pub const EPERM: c_int = 1; +pub const ENOENT: c_int = 2; +pub const ESRCH: c_int = 3; +pub const EINTR: c_int = 4; +pub const EIO: c_int = 5; +pub const ENXIO: c_int = 6; +pub const E2BIG: c_int = 7; +pub const ENOEXEC: c_int = 8; +pub const EBADF: c_int = 9; +pub const ECHILD: c_int = 10; +pub const EDEADLK: c_int = 11; +pub const ENOMEM: c_int = 12; +pub const EACCES: c_int = 13; +pub const EFAULT: c_int = 14; +pub const ENOTBLK: c_int = 15; +pub const EBUSY: c_int = 16; +pub const EEXIST: c_int = 17; +pub const EXDEV: c_int = 18; +pub const ENODEV: c_int = 19; +pub const ENOTDIR: c_int = 20; +pub const EISDIR: c_int = 21; +pub const EINVAL: c_int = 22; +pub const ENFILE: c_int = 23; +pub const EMFILE: c_int = 24; +pub const ENOTTY: c_int = 25; +pub const ETXTBSY: c_int = 26; +pub const EFBIG: c_int = 27; +pub const ENOSPC: c_int = 28; +pub const ESPIPE: c_int = 29; +pub const EROFS: c_int = 30; +pub const EMLINK: c_int = 31; +pub const EPIPE: c_int = 32; +pub const EDOM: c_int = 33; +pub const ERANGE: c_int = 34; +pub const EAGAIN: c_int = 35; +pub const EWOULDBLOCK: c_int = 35; +pub const EINPROGRESS: c_int = 36; +pub const EALREADY: c_int = 37; +pub const ENOTSOCK: c_int = 38; +pub const EDESTADDRREQ: c_int = 39; +pub const EMSGSIZE: c_int = 40; +pub const EPROTOTYPE: c_int = 41; +pub const ENOPROTOOPT: c_int = 42; +pub const EPROTONOSUPPORT: c_int = 43; +pub const ESOCKTNOSUPPORT: c_int = 44; +pub const EOPNOTSUPP: c_int = 45; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 46; +pub const EAFNOSUPPORT: c_int = 47; +pub const EADDRINUSE: c_int = 48; +pub const EADDRNOTAVAIL: c_int = 49; +pub const ENETDOWN: c_int = 50; +pub const ENETUNREACH: c_int = 51; +pub const ENETRESET: c_int = 52; +pub const ECONNABORTED: c_int = 53; +pub const ECONNRESET: c_int = 54; +pub const ENOBUFS: c_int = 55; +pub const EISCONN: c_int = 56; +pub const ENOTCONN: c_int = 57; +pub const ESHUTDOWN: c_int = 58; +pub const ETOOMANYREFS: c_int = 59; +pub const ETIMEDOUT: c_int = 60; +pub const ECONNREFUSED: c_int = 61; +pub const ELOOP: c_int = 62; +pub const ENAMETOOLONG: c_int = 63; +pub const EHOSTDOWN: c_int = 64; +pub const EHOSTUNREACH: c_int = 65; +pub const ENOTEMPTY: c_int = 66; +pub const EPROCLIM: c_int = 67; +pub const EUSERS: c_int = 68; +pub const EDQUOT: c_int = 69; +pub const ESTALE: c_int = 70; +pub const EREMOTE: c_int = 71; +pub const EBADRPC: c_int = 72; +pub const ERPCMISMATCH: c_int = 73; +pub const EPROGUNAVAIL: c_int = 74; +pub const EPROGMISMATCH: c_int = 75; +pub const EPROCUNAVAIL: c_int = 76; +pub const ENOLCK: c_int = 77; +pub const ENOSYS: c_int = 78; +pub const EFTYPE: c_int = 79; +pub const EAUTH: c_int = 80; +pub const ENEEDAUTH: c_int = 81; +pub const EIDRM: c_int = 82; +pub const ENOMSG: c_int = 83; +pub const EOVERFLOW: c_int = 84; +pub const ECANCELED: c_int = 85; +pub const EILSEQ: c_int = 86; +pub const ENOATTR: c_int = 87; +pub const EDOOFUS: c_int = 88; +pub const EBADMSG: c_int = 89; +pub const EMULTIHOP: c_int = 90; +pub const ENOLINK: c_int = 91; +pub const EPROTO: c_int = 92; + +pub const POLLSTANDARD: c_short = crate::POLLIN + | crate::POLLPRI + | crate::POLLOUT + | crate::POLLRDNORM + | crate::POLLRDBAND + | crate::POLLWRBAND + | crate::POLLERR + | crate::POLLHUP + | crate::POLLNVAL; + +pub const AI_PASSIVE: c_int = 0x00000001; +pub const AI_CANONNAME: c_int = 0x00000002; +pub const AI_NUMERICHOST: c_int = 0x00000004; +pub const AI_NUMERICSERV: c_int = 0x00000008; +pub const AI_ALL: c_int = 0x00000100; +pub const AI_ADDRCONFIG: c_int = 0x00000400; +pub const AI_V4MAPPED: c_int = 0x00000800; + +pub const EAI_AGAIN: c_int = 2; +pub const EAI_BADFLAGS: c_int = 3; +pub const EAI_FAIL: c_int = 4; +pub const EAI_FAMILY: c_int = 5; +pub const EAI_MEMORY: c_int = 6; +pub const EAI_NONAME: c_int = 8; +pub const EAI_SERVICE: c_int = 9; +pub const EAI_SOCKTYPE: c_int = 10; +pub const EAI_SYSTEM: c_int = 11; +pub const EAI_OVERFLOW: c_int = 14; + +pub const F_DUPFD: c_int = 0; +pub const F_GETFD: c_int = 1; +pub const F_SETFD: c_int = 2; +pub const F_GETFL: c_int = 3; +pub const F_SETFL: c_int = 4; + +pub const SIGTRAP: c_int = 5; + +pub const GLOB_APPEND: c_int = 0x0001; +pub const GLOB_DOOFFS: c_int = 0x0002; +pub const GLOB_ERR: c_int = 0x0004; +pub const GLOB_MARK: c_int = 0x0008; +pub const GLOB_NOCHECK: c_int = 0x0010; +pub const GLOB_NOSORT: c_int = 0x0020; +pub const GLOB_NOESCAPE: c_int = 0x2000; + +pub const GLOB_NOSPACE: c_int = -1; +pub const GLOB_ABORTED: c_int = -2; +pub const GLOB_NOMATCH: c_int = -3; + +pub const POSIX_MADV_NORMAL: c_int = 0; +pub const POSIX_MADV_RANDOM: c_int = 1; +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 PTHREAD_BARRIER_SERIAL_THREAD: c_int = -1; +pub const PTHREAD_PROCESS_PRIVATE: c_int = 0; +pub const PTHREAD_PROCESS_SHARED: c_int = 1; +pub const PTHREAD_CREATE_JOINABLE: c_int = 0; +pub const PTHREAD_CREATE_DETACHED: c_int = 1; + +pub const RLIMIT_CPU: c_int = 0; +pub const RLIMIT_FSIZE: c_int = 1; +pub const RLIMIT_DATA: c_int = 2; +pub const RLIMIT_STACK: c_int = 3; +pub const RLIMIT_CORE: c_int = 4; +pub const RLIMIT_RSS: c_int = 5; +pub const RLIMIT_MEMLOCK: c_int = 6; +pub const RLIMIT_NPROC: c_int = 7; +pub const RLIMIT_NOFILE: c_int = 8; +pub const RLIMIT_SBSIZE: c_int = 9; +pub const RLIMIT_VMEM: c_int = 10; +pub const RLIMIT_AS: c_int = RLIMIT_VMEM; pub const RLIM_INFINITY: rlim_t = 0x7fff_ffff_ffff_ffff; -pub const RUSAGE_SELF: ::c_int = 0; -pub const RUSAGE_CHILDREN: ::c_int = -1; - -pub const CLOCK_REALTIME: ::clockid_t = 0; -pub const CLOCK_VIRTUAL: ::clockid_t = 1; -pub const CLOCK_PROF: ::clockid_t = 2; -pub const CLOCK_MONOTONIC: ::clockid_t = 4; -pub const CLOCK_UPTIME: ::clockid_t = 5; -pub const CLOCK_UPTIME_PRECISE: ::clockid_t = 7; -pub const CLOCK_UPTIME_FAST: ::clockid_t = 8; -pub const CLOCK_REALTIME_PRECISE: ::clockid_t = 9; -pub const CLOCK_REALTIME_FAST: ::clockid_t = 10; -pub const CLOCK_MONOTONIC_PRECISE: ::clockid_t = 11; -pub const CLOCK_MONOTONIC_FAST: ::clockid_t = 12; -pub const CLOCK_SECOND: ::clockid_t = 13; -pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 14; -pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 15; - -pub const MADV_NORMAL: ::c_int = 0; -pub const MADV_RANDOM: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_WILLNEED: ::c_int = 3; -pub const MADV_DONTNEED: ::c_int = 4; -pub const MADV_FREE: ::c_int = 5; -pub const MADV_NOSYNC: ::c_int = 6; -pub const MADV_AUTOSYNC: ::c_int = 7; -pub const MADV_NOCORE: ::c_int = 8; -pub const MADV_CORE: ::c_int = 9; - -pub const MINCORE_INCORE: ::c_int = 0x1; -pub const MINCORE_REFERENCED: ::c_int = 0x2; -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 AF_UNSPEC: ::c_int = 0; -pub const AF_LOCAL: ::c_int = 1; -pub const AF_UNIX: ::c_int = AF_LOCAL; -pub const AF_INET: ::c_int = 2; -pub const AF_IMPLINK: ::c_int = 3; -pub const AF_PUP: ::c_int = 4; -pub const AF_CHAOS: ::c_int = 5; -pub const AF_NETBIOS: ::c_int = 6; -pub const AF_ISO: ::c_int = 7; -pub const AF_OSI: ::c_int = AF_ISO; -pub const AF_ECMA: ::c_int = 8; -pub const AF_DATAKIT: ::c_int = 9; -pub const AF_CCITT: ::c_int = 10; -pub const AF_SNA: ::c_int = 11; -pub const AF_DECnet: ::c_int = 12; -pub const AF_DLI: ::c_int = 13; -pub const AF_LAT: ::c_int = 14; -pub const AF_HYLINK: ::c_int = 15; -pub const AF_APPLETALK: ::c_int = 16; -pub const AF_ROUTE: ::c_int = 17; -pub const AF_LINK: ::c_int = 18; -pub const pseudo_AF_XTP: ::c_int = 19; -pub const AF_COIP: ::c_int = 20; -pub const AF_CNT: ::c_int = 21; -pub const pseudo_AF_RTIP: ::c_int = 22; -pub const AF_IPX: ::c_int = 23; -pub const AF_SIP: ::c_int = 24; -pub const pseudo_AF_PIP: ::c_int = 25; -pub const AF_ISDN: ::c_int = 26; -pub const AF_E164: ::c_int = AF_ISDN; -pub const pseudo_AF_KEY: ::c_int = 27; -pub const AF_INET6: ::c_int = 28; -pub const AF_NATM: ::c_int = 29; -pub const AF_ATM: ::c_int = 30; -pub const pseudo_AF_HDRCMPLT: ::c_int = 31; -pub const AF_NETGRAPH: ::c_int = 32; - -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_LOCAL: ::c_int = AF_LOCAL; -pub const PF_UNIX: ::c_int = PF_LOCAL; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_IMPLINK: ::c_int = AF_IMPLINK; -pub const PF_PUP: ::c_int = AF_PUP; -pub const PF_CHAOS: ::c_int = AF_CHAOS; -pub const PF_NETBIOS: ::c_int = AF_NETBIOS; -pub const PF_ISO: ::c_int = AF_ISO; -pub const PF_OSI: ::c_int = AF_ISO; -pub const PF_ECMA: ::c_int = AF_ECMA; -pub const PF_DATAKIT: ::c_int = AF_DATAKIT; -pub const PF_CCITT: ::c_int = AF_CCITT; -pub const PF_SNA: ::c_int = AF_SNA; -pub const PF_DECnet: ::c_int = AF_DECnet; -pub const PF_DLI: ::c_int = AF_DLI; -pub const PF_LAT: ::c_int = AF_LAT; -pub const PF_HYLINK: ::c_int = AF_HYLINK; -pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_LINK: ::c_int = AF_LINK; -pub const PF_XTP: ::c_int = pseudo_AF_XTP; -pub const PF_COIP: ::c_int = AF_COIP; -pub const PF_CNT: ::c_int = AF_CNT; -pub const PF_SIP: ::c_int = AF_SIP; -pub const PF_IPX: ::c_int = AF_IPX; -pub const PF_RTIP: ::c_int = pseudo_AF_RTIP; -pub const PF_PIP: ::c_int = pseudo_AF_PIP; -pub const PF_ISDN: ::c_int = AF_ISDN; -pub const PF_KEY: ::c_int = pseudo_AF_KEY; -pub const PF_INET6: ::c_int = AF_INET6; -pub const PF_NATM: ::c_int = AF_NATM; -pub const PF_ATM: ::c_int = AF_ATM; -pub const PF_NETGRAPH: ::c_int = AF_NETGRAPH; - -pub const PIOD_READ_D: ::c_int = 1; -pub const PIOD_WRITE_D: ::c_int = 2; -pub const PIOD_READ_I: ::c_int = 3; -pub const PIOD_WRITE_I: ::c_int = 4; - -pub const PT_TRACE_ME: ::c_int = 0; -pub const PT_READ_I: ::c_int = 1; -pub const PT_READ_D: ::c_int = 2; -pub const PT_WRITE_I: ::c_int = 4; -pub const PT_WRITE_D: ::c_int = 5; -pub const PT_CONTINUE: ::c_int = 7; -pub const PT_KILL: ::c_int = 8; -pub const PT_STEP: ::c_int = 9; -pub const PT_ATTACH: ::c_int = 10; -pub const PT_DETACH: ::c_int = 11; -pub const PT_IO: ::c_int = 12; - -pub const SOMAXCONN: ::c_int = 128; - -pub const MSG_OOB: ::c_int = 0x00000001; -pub const MSG_PEEK: ::c_int = 0x00000002; -pub const MSG_DONTROUTE: ::c_int = 0x00000004; -pub const MSG_EOR: ::c_int = 0x00000008; -pub const MSG_TRUNC: ::c_int = 0x00000010; -pub const MSG_CTRUNC: ::c_int = 0x00000020; -pub const MSG_WAITALL: ::c_int = 0x00000040; -pub const MSG_DONTWAIT: ::c_int = 0x00000080; -pub const MSG_EOF: ::c_int = 0x00000100; - -pub const SCM_TIMESTAMP: ::c_int = 0x02; -pub const SCM_CREDS: ::c_int = 0x03; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOCK_CLOEXEC: ::c_int = 0x10000000; -pub const SOCK_NONBLOCK: ::c_int = 0x20000000; -pub const SOCK_MAXADDRLEN: ::c_int = 255; -pub const IP_TTL: ::c_int = 4; -pub const IP_HDRINCL: ::c_int = 2; -pub const IP_RECVDSTADDR: ::c_int = 7; -pub const IP_SENDSRCADDR: ::c_int = IP_RECVDSTADDR; -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 = 65; -pub const IPV6_RECVHOPLIMIT: ::c_int = 37; -pub const IPV6_JOIN_GROUP: ::c_int = 12; -pub const IPV6_LEAVE_GROUP: ::c_int = 13; -pub const IPV6_CHECKSUM: ::c_int = 26; -pub const IPV6_RECVPKTINFO: ::c_int = 36; -pub const IPV6_PKTINFO: ::c_int = 46; -pub const IPV6_HOPLIMIT: ::c_int = 47; -pub const IPV6_RECVTCLASS: ::c_int = 57; -pub const IPV6_TCLASS: ::c_int = 61; -pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 70; -pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 71; -pub const IP_BLOCK_SOURCE: ::c_int = 72; -pub const IP_UNBLOCK_SOURCE: ::c_int = 73; - -pub const TCP_NOPUSH: ::c_int = 4; -pub const TCP_NOOPT: ::c_int = 8; -pub const TCP_KEEPIDLE: ::c_int = 256; -pub const TCP_KEEPINTVL: ::c_int = 512; -pub const TCP_KEEPCNT: ::c_int = 1024; - -pub const SOL_SOCKET: ::c_int = 0xffff; -pub const SO_DEBUG: ::c_int = 0x01; -pub const SO_ACCEPTCONN: ::c_int = 0x0002; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_TIMESTAMP: ::c_int = 0x0400; -pub const SO_NOSIGPIPE: ::c_int = 0x0800; -pub const SO_ACCEPTFILTER: ::c_int = 0x1000; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVLOWAT: ::c_int = 0x1004; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_TYPE: ::c_int = 0x1008; - -pub const LOCAL_PEERCRED: ::c_int = 1; +pub const RUSAGE_SELF: c_int = 0; +pub const RUSAGE_CHILDREN: c_int = -1; + +pub const CLOCK_REALTIME: crate::clockid_t = 0; +pub const CLOCK_VIRTUAL: crate::clockid_t = 1; +pub const CLOCK_PROF: crate::clockid_t = 2; +pub const CLOCK_MONOTONIC: crate::clockid_t = 4; +pub const CLOCK_UPTIME: crate::clockid_t = 5; +pub const CLOCK_UPTIME_PRECISE: crate::clockid_t = 7; +pub const CLOCK_UPTIME_FAST: crate::clockid_t = 8; +pub const CLOCK_REALTIME_PRECISE: crate::clockid_t = 9; +pub const CLOCK_REALTIME_FAST: crate::clockid_t = 10; +pub const CLOCK_MONOTONIC_PRECISE: crate::clockid_t = 11; +pub const CLOCK_MONOTONIC_FAST: crate::clockid_t = 12; +pub const CLOCK_SECOND: crate::clockid_t = 13; +pub const CLOCK_THREAD_CPUTIME_ID: crate::clockid_t = 14; +pub const CLOCK_PROCESS_CPUTIME_ID: crate::clockid_t = 15; + +pub const MADV_NORMAL: c_int = 0; +pub const MADV_RANDOM: c_int = 1; +pub const MADV_SEQUENTIAL: c_int = 2; +pub const MADV_WILLNEED: c_int = 3; +pub const MADV_DONTNEED: c_int = 4; +pub const MADV_FREE: c_int = 5; +pub const MADV_NOSYNC: c_int = 6; +pub const MADV_AUTOSYNC: c_int = 7; +pub const MADV_NOCORE: c_int = 8; +pub const MADV_CORE: c_int = 9; + +pub const MINCORE_INCORE: c_int = 0x1; +pub const MINCORE_REFERENCED: c_int = 0x2; +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 AF_UNSPEC: c_int = 0; +pub const AF_LOCAL: c_int = 1; +pub const AF_UNIX: c_int = AF_LOCAL; +pub const AF_INET: c_int = 2; +pub const AF_IMPLINK: c_int = 3; +pub const AF_PUP: c_int = 4; +pub const AF_CHAOS: c_int = 5; +pub const AF_NETBIOS: c_int = 6; +pub const AF_ISO: c_int = 7; +pub const AF_OSI: c_int = AF_ISO; +pub const AF_ECMA: c_int = 8; +pub const AF_DATAKIT: c_int = 9; +pub const AF_CCITT: c_int = 10; +pub const AF_SNA: c_int = 11; +pub const AF_DECnet: c_int = 12; +pub const AF_DLI: c_int = 13; +pub const AF_LAT: c_int = 14; +pub const AF_HYLINK: c_int = 15; +pub const AF_APPLETALK: c_int = 16; +pub const AF_ROUTE: c_int = 17; +pub const AF_LINK: c_int = 18; +pub const pseudo_AF_XTP: c_int = 19; +pub const AF_COIP: c_int = 20; +pub const AF_CNT: c_int = 21; +pub const pseudo_AF_RTIP: c_int = 22; +pub const AF_IPX: c_int = 23; +pub const AF_SIP: c_int = 24; +pub const pseudo_AF_PIP: c_int = 25; +pub const AF_ISDN: c_int = 26; +pub const AF_E164: c_int = AF_ISDN; +pub const pseudo_AF_KEY: c_int = 27; +pub const AF_INET6: c_int = 28; +pub const AF_NATM: c_int = 29; +pub const AF_ATM: c_int = 30; +pub const pseudo_AF_HDRCMPLT: c_int = 31; +pub const AF_NETGRAPH: c_int = 32; + +pub const PF_UNSPEC: c_int = AF_UNSPEC; +pub const PF_LOCAL: c_int = AF_LOCAL; +pub const PF_UNIX: c_int = PF_LOCAL; +pub const PF_INET: c_int = AF_INET; +pub const PF_IMPLINK: c_int = AF_IMPLINK; +pub const PF_PUP: c_int = AF_PUP; +pub const PF_CHAOS: c_int = AF_CHAOS; +pub const PF_NETBIOS: c_int = AF_NETBIOS; +pub const PF_ISO: c_int = AF_ISO; +pub const PF_OSI: c_int = AF_ISO; +pub const PF_ECMA: c_int = AF_ECMA; +pub const PF_DATAKIT: c_int = AF_DATAKIT; +pub const PF_CCITT: c_int = AF_CCITT; +pub const PF_SNA: c_int = AF_SNA; +pub const PF_DECnet: c_int = AF_DECnet; +pub const PF_DLI: c_int = AF_DLI; +pub const PF_LAT: c_int = AF_LAT; +pub const PF_HYLINK: c_int = AF_HYLINK; +pub const PF_APPLETALK: c_int = AF_APPLETALK; +pub const PF_ROUTE: c_int = AF_ROUTE; +pub const PF_LINK: c_int = AF_LINK; +pub const PF_XTP: c_int = pseudo_AF_XTP; +pub const PF_COIP: c_int = AF_COIP; +pub const PF_CNT: c_int = AF_CNT; +pub const PF_SIP: c_int = AF_SIP; +pub const PF_IPX: c_int = AF_IPX; +pub const PF_RTIP: c_int = pseudo_AF_RTIP; +pub const PF_PIP: c_int = pseudo_AF_PIP; +pub const PF_ISDN: c_int = AF_ISDN; +pub const PF_KEY: c_int = pseudo_AF_KEY; +pub const PF_INET6: c_int = AF_INET6; +pub const PF_NATM: c_int = AF_NATM; +pub const PF_ATM: c_int = AF_ATM; +pub const PF_NETGRAPH: c_int = AF_NETGRAPH; + +pub const PIOD_READ_D: c_int = 1; +pub const PIOD_WRITE_D: c_int = 2; +pub const PIOD_READ_I: c_int = 3; +pub const PIOD_WRITE_I: c_int = 4; + +pub const PT_TRACE_ME: c_int = 0; +pub const PT_READ_I: c_int = 1; +pub const PT_READ_D: c_int = 2; +pub const PT_WRITE_I: c_int = 4; +pub const PT_WRITE_D: c_int = 5; +pub const PT_CONTINUE: c_int = 7; +pub const PT_KILL: c_int = 8; +pub const PT_STEP: c_int = 9; +pub const PT_ATTACH: c_int = 10; +pub const PT_DETACH: c_int = 11; +pub const PT_IO: c_int = 12; + +pub const SOMAXCONN: c_int = 128; + +pub const MSG_OOB: c_int = 0x00000001; +pub const MSG_PEEK: c_int = 0x00000002; +pub const MSG_DONTROUTE: c_int = 0x00000004; +pub const MSG_EOR: c_int = 0x00000008; +pub const MSG_TRUNC: c_int = 0x00000010; +pub const MSG_CTRUNC: c_int = 0x00000020; +pub const MSG_WAITALL: c_int = 0x00000040; +pub const MSG_DONTWAIT: c_int = 0x00000080; +pub const MSG_EOF: c_int = 0x00000100; + +pub const SCM_TIMESTAMP: c_int = 0x02; +pub const SCM_CREDS: c_int = 0x03; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; +pub const SOCK_RAW: c_int = 3; +pub const SOCK_RDM: c_int = 4; +pub const SOCK_SEQPACKET: c_int = 5; +pub const SOCK_CLOEXEC: c_int = 0x10000000; +pub const SOCK_NONBLOCK: c_int = 0x20000000; +pub const SOCK_MAXADDRLEN: c_int = 255; +pub const IP_TTL: c_int = 4; +pub const IP_HDRINCL: c_int = 2; +pub const IP_RECVDSTADDR: c_int = 7; +pub const IP_SENDSRCADDR: c_int = IP_RECVDSTADDR; +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 = 65; +pub const IPV6_RECVHOPLIMIT: c_int = 37; +pub const IPV6_JOIN_GROUP: c_int = 12; +pub const IPV6_LEAVE_GROUP: c_int = 13; +pub const IPV6_CHECKSUM: c_int = 26; +pub const IPV6_RECVPKTINFO: c_int = 36; +pub const IPV6_PKTINFO: c_int = 46; +pub const IPV6_HOPLIMIT: c_int = 47; +pub const IPV6_RECVTCLASS: c_int = 57; +pub const IPV6_TCLASS: c_int = 61; +pub const IP_ADD_SOURCE_MEMBERSHIP: c_int = 70; +pub const IP_DROP_SOURCE_MEMBERSHIP: c_int = 71; +pub const IP_BLOCK_SOURCE: c_int = 72; +pub const IP_UNBLOCK_SOURCE: c_int = 73; + +pub const TCP_NOPUSH: c_int = 4; +pub const TCP_NOOPT: c_int = 8; +pub const TCP_KEEPIDLE: c_int = 256; +pub const TCP_KEEPINTVL: c_int = 512; +pub const TCP_KEEPCNT: c_int = 1024; + +pub const SOL_SOCKET: c_int = 0xffff; +pub const SO_DEBUG: c_int = 0x01; +pub const SO_ACCEPTCONN: c_int = 0x0002; +pub const SO_REUSEADDR: c_int = 0x0004; +pub const SO_KEEPALIVE: c_int = 0x0008; +pub const SO_DONTROUTE: c_int = 0x0010; +pub const SO_BROADCAST: c_int = 0x0020; +pub const SO_USELOOPBACK: c_int = 0x0040; +pub const SO_LINGER: c_int = 0x0080; +pub const SO_OOBINLINE: c_int = 0x0100; +pub const SO_REUSEPORT: c_int = 0x0200; +pub const SO_TIMESTAMP: c_int = 0x0400; +pub const SO_NOSIGPIPE: c_int = 0x0800; +pub const SO_ACCEPTFILTER: c_int = 0x1000; +pub const SO_SNDBUF: c_int = 0x1001; +pub const SO_RCVBUF: c_int = 0x1002; +pub const SO_SNDLOWAT: c_int = 0x1003; +pub const SO_RCVLOWAT: c_int = 0x1004; +pub const SO_SNDTIMEO: c_int = 0x1005; +pub const SO_RCVTIMEO: c_int = 0x1006; +pub const SO_ERROR: c_int = 0x1007; +pub const SO_TYPE: c_int = 0x1008; + +pub const LOCAL_PEERCRED: c_int = 1; // net/route.h -pub const RTF_XRESOLVE: ::c_int = 0x200; -pub const RTF_LLINFO: ::c_int = 0x400; -pub const RTF_PROTO3: ::c_int = 0x40000; -pub const RTF_PINNED: ::c_int = 0x100000; -pub const RTF_LOCAL: ::c_int = 0x200000; -pub const RTF_BROADCAST: ::c_int = 0x400000; -pub const RTF_MULTICAST: ::c_int = 0x800000; - -pub const RTM_LOCK: ::c_int = 0x8; -pub const RTM_RESOLVE: ::c_int = 0xb; -pub const RTM_NEWADDR: ::c_int = 0xc; -pub const RTM_DELADDR: ::c_int = 0xd; -pub const RTM_IFINFO: ::c_int = 0xe; -pub const RTM_NEWMADDR: ::c_int = 0xf; -pub const RTM_DELMADDR: ::c_int = 0x10; -pub const RTM_IFANNOUNCE: ::c_int = 0x11; -pub const RTM_IEEE80211: ::c_int = 0x12; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_NB: ::c_int = 4; -pub const LOCK_UN: ::c_int = 8; - -pub const MAP_COPY: ::c_int = 0x0002; +pub const RTF_XRESOLVE: c_int = 0x200; +pub const RTF_LLINFO: c_int = 0x400; +pub const RTF_PROTO3: c_int = 0x40000; +pub const RTF_PINNED: c_int = 0x100000; +pub const RTF_LOCAL: c_int = 0x200000; +pub const RTF_BROADCAST: c_int = 0x400000; +pub const RTF_MULTICAST: c_int = 0x800000; + +pub const RTM_LOCK: c_int = 0x8; +pub const RTM_RESOLVE: c_int = 0xb; +pub const RTM_NEWADDR: c_int = 0xc; +pub const RTM_DELADDR: c_int = 0xd; +pub const RTM_IFINFO: c_int = 0xe; +pub const RTM_NEWMADDR: c_int = 0xf; +pub const RTM_DELMADDR: c_int = 0x10; +pub const RTM_IFANNOUNCE: c_int = 0x11; +pub const RTM_IEEE80211: c_int = 0x12; + +pub const SHUT_RD: c_int = 0; +pub const SHUT_WR: c_int = 1; +pub const SHUT_RDWR: c_int = 2; + +pub const LOCK_SH: c_int = 1; +pub const LOCK_EX: c_int = 2; +pub const LOCK_NB: c_int = 4; +pub const LOCK_UN: c_int = 8; + +pub const MAP_COPY: c_int = 0x0002; #[doc(hidden)] #[deprecated( since = "0.2.54", note = "Removed in FreeBSD 11, unused in DragonFlyBSD" )] -pub const MAP_RENAME: ::c_int = 0x0020; +pub const MAP_RENAME: c_int = 0x0020; #[doc(hidden)] #[deprecated( since = "0.2.54", note = "Removed in FreeBSD 11, unused in DragonFlyBSD" )] -pub const MAP_NORESERVE: ::c_int = 0x0040; -pub const MAP_HASSEMAPHORE: ::c_int = 0x0200; -pub const MAP_STACK: ::c_int = 0x0400; -pub const MAP_NOSYNC: ::c_int = 0x0800; -pub const MAP_NOCORE: ::c_int = 0x020000; - -pub const IPPROTO_RAW: ::c_int = 255; - -pub const _PC_LINK_MAX: ::c_int = 1; -pub const _PC_MAX_CANON: ::c_int = 2; -pub const _PC_MAX_INPUT: ::c_int = 3; -pub const _PC_NAME_MAX: ::c_int = 4; -pub const _PC_PATH_MAX: ::c_int = 5; -pub const _PC_PIPE_BUF: ::c_int = 6; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 7; -pub const _PC_NO_TRUNC: ::c_int = 8; -pub const _PC_VDISABLE: ::c_int = 9; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 10; -pub const _PC_FILESIZEBITS: ::c_int = 12; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; -pub const _PC_REC_XFER_ALIGN: ::c_int = 17; -pub const _PC_SYMLINK_MAX: ::c_int = 18; -pub const _PC_MIN_HOLE_SIZE: ::c_int = 21; -pub const _PC_ASYNC_IO: ::c_int = 53; -pub const _PC_PRIO_IO: ::c_int = 54; -pub const _PC_SYNC_IO: ::c_int = 55; -pub const _PC_ACL_EXTENDED: ::c_int = 59; -pub const _PC_ACL_PATH_MAX: ::c_int = 60; -pub const _PC_CAP_PRESENT: ::c_int = 61; -pub const _PC_INF_PRESENT: ::c_int = 62; -pub const _PC_MAC_PRESENT: ::c_int = 63; - -pub const _SC_ARG_MAX: ::c_int = 1; -pub const _SC_CHILD_MAX: ::c_int = 2; -pub const _SC_CLK_TCK: ::c_int = 3; -pub const _SC_NGROUPS_MAX: ::c_int = 4; -pub const _SC_OPEN_MAX: ::c_int = 5; -pub const _SC_JOB_CONTROL: ::c_int = 6; -pub const _SC_SAVED_IDS: ::c_int = 7; -pub const _SC_VERSION: ::c_int = 8; -pub const _SC_BC_BASE_MAX: ::c_int = 9; -pub const _SC_BC_DIM_MAX: ::c_int = 10; -pub const _SC_BC_SCALE_MAX: ::c_int = 11; -pub const _SC_BC_STRING_MAX: ::c_int = 12; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 13; -pub const _SC_EXPR_NEST_MAX: ::c_int = 14; -pub const _SC_LINE_MAX: ::c_int = 15; -pub const _SC_RE_DUP_MAX: ::c_int = 16; -pub const _SC_2_VERSION: ::c_int = 17; -pub const _SC_2_C_BIND: ::c_int = 18; -pub const _SC_2_C_DEV: ::c_int = 19; -pub const _SC_2_CHAR_TERM: ::c_int = 20; -pub const _SC_2_FORT_DEV: ::c_int = 21; -pub const _SC_2_FORT_RUN: ::c_int = 22; -pub const _SC_2_LOCALEDEF: ::c_int = 23; -pub const _SC_2_SW_DEV: ::c_int = 24; -pub const _SC_2_UPE: ::c_int = 25; -pub const _SC_STREAM_MAX: ::c_int = 26; -pub const _SC_TZNAME_MAX: ::c_int = 27; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 28; -pub const _SC_MAPPED_FILES: ::c_int = 29; -pub const _SC_MEMLOCK: ::c_int = 30; -pub const _SC_MEMLOCK_RANGE: ::c_int = 31; -pub const _SC_MEMORY_PROTECTION: ::c_int = 32; -pub const _SC_MESSAGE_PASSING: ::c_int = 33; -pub const _SC_PRIORITIZED_IO: ::c_int = 34; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 35; -pub const _SC_REALTIME_SIGNALS: ::c_int = 36; -pub const _SC_SEMAPHORES: ::c_int = 37; -pub const _SC_FSYNC: ::c_int = 38; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 39; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 40; -pub const _SC_TIMERS: ::c_int = 41; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 42; -pub const _SC_AIO_MAX: ::c_int = 43; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 44; -pub const _SC_DELAYTIMER_MAX: ::c_int = 45; -pub const _SC_MQ_OPEN_MAX: ::c_int = 46; -pub const _SC_PAGESIZE: ::c_int = 47; -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_RTSIG_MAX: ::c_int = 48; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 49; -pub const _SC_SEM_VALUE_MAX: ::c_int = 50; -pub const _SC_SIGQUEUE_MAX: ::c_int = 51; -pub const _SC_TIMER_MAX: ::c_int = 52; -pub const _SC_IOV_MAX: ::c_int = 56; -pub const _SC_NPROCESSORS_CONF: ::c_int = 57; -pub const _SC_2_PBS: ::c_int = 59; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 60; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 61; -pub const _SC_2_PBS_LOCATE: ::c_int = 62; -pub const _SC_2_PBS_MESSAGE: ::c_int = 63; -pub const _SC_2_PBS_TRACK: ::c_int = 64; -pub const _SC_ADVISORY_INFO: ::c_int = 65; -pub const _SC_BARRIERS: ::c_int = 66; -pub const _SC_CLOCK_SELECTION: ::c_int = 67; -pub const _SC_CPUTIME: ::c_int = 68; -pub const _SC_FILE_LOCKING: ::c_int = 69; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 58; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 70; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 71; -pub const _SC_HOST_NAME_MAX: ::c_int = 72; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 73; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 74; -pub const _SC_MQ_PRIO_MAX: ::c_int = 75; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 76; -pub const _SC_REGEXP: ::c_int = 77; -pub const _SC_SHELL: ::c_int = 78; -pub const _SC_SPAWN: ::c_int = 79; -pub const _SC_SPIN_LOCKS: ::c_int = 80; -pub const _SC_SPORADIC_SERVER: ::c_int = 81; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 82; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 83; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 85; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 86; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 87; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 88; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 89; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 90; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 91; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 92; -pub const _SC_THREAD_STACK_MIN: ::c_int = 93; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 94; -pub const _SC_TIMEOUTS: ::c_int = 95; -pub const _SC_THREADS: ::c_int = 96; -pub const _SC_TRACE: ::c_int = 97; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 98; -pub const _SC_TRACE_INHERIT: ::c_int = 99; -pub const _SC_TRACE_LOG: ::c_int = 100; -pub const _SC_TTY_NAME_MAX: ::c_int = 101; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 102; -pub const _SC_V6_ILP32_OFF32: ::c_int = 103; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 104; -pub const _SC_V6_LP64_OFF64: ::c_int = 105; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 106; -pub const _SC_ATEXIT_MAX: ::c_int = 107; -pub const _SC_XOPEN_CRYPT: ::c_int = 108; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 109; -pub const _SC_XOPEN_LEGACY: ::c_int = 110; -pub const _SC_XOPEN_REALTIME: ::c_int = 111; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 112; -pub const _SC_XOPEN_SHM: ::c_int = 113; -pub const _SC_XOPEN_STREAMS: ::c_int = 114; -pub const _SC_XOPEN_UNIX: ::c_int = 115; -pub const _SC_XOPEN_VERSION: ::c_int = 116; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 117; -pub const _SC_IPV6: ::c_int = 118; -pub const _SC_RAW_SOCKETS: ::c_int = 119; -pub const _SC_SYMLOOP_MAX: ::c_int = 120; -pub const _SC_PHYS_PAGES: ::c_int = 121; +pub const MAP_NORESERVE: c_int = 0x0040; +pub const MAP_HASSEMAPHORE: c_int = 0x0200; +pub const MAP_STACK: c_int = 0x0400; +pub const MAP_NOSYNC: c_int = 0x0800; +pub const MAP_NOCORE: c_int = 0x020000; + +pub const IPPROTO_RAW: c_int = 255; + +pub const _PC_LINK_MAX: c_int = 1; +pub const _PC_MAX_CANON: c_int = 2; +pub const _PC_MAX_INPUT: c_int = 3; +pub const _PC_NAME_MAX: c_int = 4; +pub const _PC_PATH_MAX: c_int = 5; +pub const _PC_PIPE_BUF: c_int = 6; +pub const _PC_CHOWN_RESTRICTED: c_int = 7; +pub const _PC_NO_TRUNC: c_int = 8; +pub const _PC_VDISABLE: c_int = 9; +pub const _PC_ALLOC_SIZE_MIN: c_int = 10; +pub const _PC_FILESIZEBITS: c_int = 12; +pub const _PC_REC_INCR_XFER_SIZE: c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: c_int = 16; +pub const _PC_REC_XFER_ALIGN: c_int = 17; +pub const _PC_SYMLINK_MAX: c_int = 18; +pub const _PC_MIN_HOLE_SIZE: c_int = 21; +pub const _PC_ASYNC_IO: c_int = 53; +pub const _PC_PRIO_IO: c_int = 54; +pub const _PC_SYNC_IO: c_int = 55; +pub const _PC_ACL_EXTENDED: c_int = 59; +pub const _PC_ACL_PATH_MAX: c_int = 60; +pub const _PC_CAP_PRESENT: c_int = 61; +pub const _PC_INF_PRESENT: c_int = 62; +pub const _PC_MAC_PRESENT: c_int = 63; + +pub const _SC_ARG_MAX: c_int = 1; +pub const _SC_CHILD_MAX: c_int = 2; +pub const _SC_CLK_TCK: c_int = 3; +pub const _SC_NGROUPS_MAX: c_int = 4; +pub const _SC_OPEN_MAX: c_int = 5; +pub const _SC_JOB_CONTROL: c_int = 6; +pub const _SC_SAVED_IDS: c_int = 7; +pub const _SC_VERSION: c_int = 8; +pub const _SC_BC_BASE_MAX: c_int = 9; +pub const _SC_BC_DIM_MAX: c_int = 10; +pub const _SC_BC_SCALE_MAX: c_int = 11; +pub const _SC_BC_STRING_MAX: c_int = 12; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 13; +pub const _SC_EXPR_NEST_MAX: c_int = 14; +pub const _SC_LINE_MAX: c_int = 15; +pub const _SC_RE_DUP_MAX: c_int = 16; +pub const _SC_2_VERSION: c_int = 17; +pub const _SC_2_C_BIND: c_int = 18; +pub const _SC_2_C_DEV: c_int = 19; +pub const _SC_2_CHAR_TERM: c_int = 20; +pub const _SC_2_FORT_DEV: c_int = 21; +pub const _SC_2_FORT_RUN: c_int = 22; +pub const _SC_2_LOCALEDEF: c_int = 23; +pub const _SC_2_SW_DEV: c_int = 24; +pub const _SC_2_UPE: c_int = 25; +pub const _SC_STREAM_MAX: c_int = 26; +pub const _SC_TZNAME_MAX: c_int = 27; +pub const _SC_ASYNCHRONOUS_IO: c_int = 28; +pub const _SC_MAPPED_FILES: c_int = 29; +pub const _SC_MEMLOCK: c_int = 30; +pub const _SC_MEMLOCK_RANGE: c_int = 31; +pub const _SC_MEMORY_PROTECTION: c_int = 32; +pub const _SC_MESSAGE_PASSING: c_int = 33; +pub const _SC_PRIORITIZED_IO: c_int = 34; +pub const _SC_PRIORITY_SCHEDULING: c_int = 35; +pub const _SC_REALTIME_SIGNALS: c_int = 36; +pub const _SC_SEMAPHORES: c_int = 37; +pub const _SC_FSYNC: c_int = 38; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 39; +pub const _SC_SYNCHRONIZED_IO: c_int = 40; +pub const _SC_TIMERS: c_int = 41; +pub const _SC_AIO_LISTIO_MAX: c_int = 42; +pub const _SC_AIO_MAX: c_int = 43; +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 44; +pub const _SC_DELAYTIMER_MAX: c_int = 45; +pub const _SC_MQ_OPEN_MAX: c_int = 46; +pub const _SC_PAGESIZE: c_int = 47; +pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; +pub const _SC_RTSIG_MAX: c_int = 48; +pub const _SC_SEM_NSEMS_MAX: c_int = 49; +pub const _SC_SEM_VALUE_MAX: c_int = 50; +pub const _SC_SIGQUEUE_MAX: c_int = 51; +pub const _SC_TIMER_MAX: c_int = 52; +pub const _SC_IOV_MAX: c_int = 56; +pub const _SC_NPROCESSORS_CONF: c_int = 57; +pub const _SC_2_PBS: c_int = 59; +pub const _SC_2_PBS_ACCOUNTING: c_int = 60; +pub const _SC_2_PBS_CHECKPOINT: c_int = 61; +pub const _SC_2_PBS_LOCATE: c_int = 62; +pub const _SC_2_PBS_MESSAGE: c_int = 63; +pub const _SC_2_PBS_TRACK: c_int = 64; +pub const _SC_ADVISORY_INFO: c_int = 65; +pub const _SC_BARRIERS: c_int = 66; +pub const _SC_CLOCK_SELECTION: c_int = 67; +pub const _SC_CPUTIME: c_int = 68; +pub const _SC_FILE_LOCKING: c_int = 69; +pub const _SC_NPROCESSORS_ONLN: c_int = 58; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 70; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 71; +pub const _SC_HOST_NAME_MAX: c_int = 72; +pub const _SC_LOGIN_NAME_MAX: c_int = 73; +pub const _SC_MONOTONIC_CLOCK: c_int = 74; +pub const _SC_MQ_PRIO_MAX: c_int = 75; +pub const _SC_READER_WRITER_LOCKS: c_int = 76; +pub const _SC_REGEXP: c_int = 77; +pub const _SC_SHELL: c_int = 78; +pub const _SC_SPAWN: c_int = 79; +pub const _SC_SPIN_LOCKS: c_int = 80; +pub const _SC_SPORADIC_SERVER: c_int = 81; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 82; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 83; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 85; +pub const _SC_THREAD_KEYS_MAX: c_int = 86; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 87; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 88; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 89; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 90; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 91; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 92; +pub const _SC_THREAD_STACK_MIN: c_int = 93; +pub const _SC_THREAD_THREADS_MAX: c_int = 94; +pub const _SC_TIMEOUTS: c_int = 95; +pub const _SC_THREADS: c_int = 96; +pub const _SC_TRACE: c_int = 97; +pub const _SC_TRACE_EVENT_FILTER: c_int = 98; +pub const _SC_TRACE_INHERIT: c_int = 99; +pub const _SC_TRACE_LOG: c_int = 100; +pub const _SC_TTY_NAME_MAX: c_int = 101; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 102; +pub const _SC_V6_ILP32_OFF32: c_int = 103; +pub const _SC_V6_ILP32_OFFBIG: c_int = 104; +pub const _SC_V6_LP64_OFF64: c_int = 105; +pub const _SC_V6_LPBIG_OFFBIG: c_int = 106; +pub const _SC_ATEXIT_MAX: c_int = 107; +pub const _SC_XOPEN_CRYPT: c_int = 108; +pub const _SC_XOPEN_ENH_I18N: c_int = 109; +pub const _SC_XOPEN_LEGACY: c_int = 110; +pub const _SC_XOPEN_REALTIME: c_int = 111; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 112; +pub const _SC_XOPEN_SHM: c_int = 113; +pub const _SC_XOPEN_STREAMS: c_int = 114; +pub const _SC_XOPEN_UNIX: c_int = 115; +pub const _SC_XOPEN_VERSION: c_int = 116; +pub const _SC_XOPEN_XCU_VERSION: c_int = 117; +pub const _SC_IPV6: c_int = 118; +pub const _SC_RAW_SOCKETS: c_int = 119; +pub const _SC_SYMLOOP_MAX: c_int = 120; +pub const _SC_PHYS_PAGES: c_int = 121; pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0 as *mut _; pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0 as *mut _; pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 0 as *mut _; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 3; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_ERRORCHECK; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 1; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 2; +pub const PTHREAD_MUTEX_NORMAL: c_int = 3; +pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_ERRORCHECK; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_OTHER: ::c_int = 2; -pub const SCHED_RR: ::c_int = 3; +pub const SCHED_FIFO: c_int = 1; +pub const SCHED_OTHER: c_int = 2; +pub const SCHED_RR: c_int = 3; pub const FD_SETSIZE: usize = 1024; -pub const ST_NOSUID: ::c_ulong = 2; - -pub const NI_MAXHOST: ::size_t = 1025; - -pub const XUCRED_VERSION: ::c_uint = 0; - -pub const RTLD_LOCAL: ::c_int = 0; -pub const RTLD_NODELETE: ::c_int = 0x1000; -pub const RTLD_NOLOAD: ::c_int = 0x2000; -pub const RTLD_GLOBAL: ::c_int = 0x100; - -pub const LOG_NTP: ::c_int = 12 << 3; -pub const LOG_SECURITY: ::c_int = 13 << 3; -pub const LOG_CONSOLE: ::c_int = 14 << 3; -pub const LOG_NFACILITIES: ::c_int = 24; - -pub const TIOCEXCL: ::c_ulong = 0x2000740d; -pub const TIOCNXCL: ::c_ulong = 0x2000740e; -pub const TIOCFLUSH: ::c_ulong = 0x80047410; -pub const TIOCGETA: ::c_ulong = 0x402c7413; -pub const TIOCSETA: ::c_ulong = 0x802c7414; -pub const TIOCSETAW: ::c_ulong = 0x802c7415; -pub const TIOCSETAF: ::c_ulong = 0x802c7416; -pub const TIOCGETD: ::c_ulong = 0x4004741a; -pub const TIOCSETD: ::c_ulong = 0x8004741b; -pub const TIOCGDRAINWAIT: ::c_ulong = 0x40047456; -pub const TIOCSDRAINWAIT: ::c_ulong = 0x80047457; -pub const TIOCMGDTRWAIT: ::c_ulong = 0x4004745a; -pub const TIOCMSDTRWAIT: ::c_ulong = 0x8004745b; -pub const TIOCDRAIN: ::c_ulong = 0x2000745e; -pub const TIOCEXT: ::c_ulong = 0x80047460; -pub const TIOCSCTTY: ::c_ulong = 0x20007461; -pub const TIOCCONS: ::c_ulong = 0x80047462; -pub const TIOCGSID: ::c_ulong = 0x40047463; -pub const TIOCSTAT: ::c_ulong = 0x20007465; -pub const TIOCUCNTL: ::c_ulong = 0x80047466; -pub const TIOCSWINSZ: ::c_ulong = 0x80087467; -pub const TIOCGWINSZ: ::c_ulong = 0x40087468; -pub const TIOCMGET: ::c_ulong = 0x4004746a; -pub const TIOCM_LE: ::c_int = 0x1; -pub const TIOCM_DTR: ::c_int = 0x2; -pub const TIOCM_RTS: ::c_int = 0x4; -pub const TIOCM_ST: ::c_int = 0x8; -pub const TIOCM_SR: ::c_int = 0x10; -pub const TIOCM_CTS: ::c_int = 0x20; -pub const TIOCM_RI: ::c_int = 0x80; -pub const TIOCM_DSR: ::c_int = 0x100; -pub const TIOCM_CD: ::c_int = 0x40; -pub const TIOCM_CAR: ::c_int = 0x40; -pub const TIOCM_RNG: ::c_int = 0x80; -pub const TIOCMBIC: ::c_ulong = 0x8004746b; -pub const TIOCMBIS: ::c_ulong = 0x8004746c; -pub const TIOCMSET: ::c_ulong = 0x8004746d; -pub const TIOCSTART: ::c_ulong = 0x2000746e; -pub const TIOCSTOP: ::c_ulong = 0x2000746f; -pub const TIOCPKT: ::c_ulong = 0x80047470; -pub const TIOCPKT_DATA: ::c_int = 0x0; -pub const TIOCPKT_FLUSHREAD: ::c_int = 0x1; -pub const TIOCPKT_FLUSHWRITE: ::c_int = 0x2; -pub const TIOCPKT_STOP: ::c_int = 0x4; -pub const TIOCPKT_START: ::c_int = 0x8; -pub const TIOCPKT_NOSTOP: ::c_int = 0x10; -pub const TIOCPKT_DOSTOP: ::c_int = 0x20; -pub const TIOCPKT_IOCTL: ::c_int = 0x40; -pub const TIOCNOTTY: ::c_ulong = 0x20007471; -pub const TIOCSTI: ::c_ulong = 0x80017472; -pub const TIOCOUTQ: ::c_ulong = 0x40047473; -pub const TIOCSPGRP: ::c_ulong = 0x80047476; -pub const TIOCGPGRP: ::c_ulong = 0x40047477; -pub const TIOCCDTR: ::c_ulong = 0x20007478; -pub const TIOCSDTR: ::c_ulong = 0x20007479; -pub const TTYDISC: ::c_int = 0x0; -pub const SLIPDISC: ::c_int = 0x4; -pub const PPPDISC: ::c_int = 0x5; -pub const NETGRAPHDISC: ::c_int = 0x6; - -pub const BIOCGRSIG: ::c_ulong = 0x40044272; -pub const BIOCSRSIG: ::c_ulong = 0x80044273; -pub const BIOCSDLT: ::c_ulong = 0x80044278; -pub const BIOCGSEESENT: ::c_ulong = 0x40044276; -pub const BIOCSSEESENT: ::c_ulong = 0x80044277; +pub const ST_NOSUID: c_ulong = 2; + +pub const NI_MAXHOST: size_t = 1025; + +pub const XUCRED_VERSION: c_uint = 0; + +pub const RTLD_LOCAL: c_int = 0; +pub const RTLD_NODELETE: c_int = 0x1000; +pub const RTLD_NOLOAD: c_int = 0x2000; +pub const RTLD_GLOBAL: c_int = 0x100; + +pub const LOG_NTP: c_int = 12 << 3; +pub const LOG_SECURITY: c_int = 13 << 3; +pub const LOG_CONSOLE: c_int = 14 << 3; +pub const LOG_NFACILITIES: c_int = 24; + +pub const TIOCEXCL: c_ulong = 0x2000740d; +pub const TIOCNXCL: c_ulong = 0x2000740e; +pub const TIOCFLUSH: c_ulong = 0x80047410; +pub const TIOCGETA: c_ulong = 0x402c7413; +pub const TIOCSETA: c_ulong = 0x802c7414; +pub const TIOCSETAW: c_ulong = 0x802c7415; +pub const TIOCSETAF: c_ulong = 0x802c7416; +pub const TIOCGETD: c_ulong = 0x4004741a; +pub const TIOCSETD: c_ulong = 0x8004741b; +pub const TIOCGDRAINWAIT: c_ulong = 0x40047456; +pub const TIOCSDRAINWAIT: c_ulong = 0x80047457; +pub const TIOCMGDTRWAIT: c_ulong = 0x4004745a; +pub const TIOCMSDTRWAIT: c_ulong = 0x8004745b; +pub const TIOCDRAIN: c_ulong = 0x2000745e; +pub const TIOCEXT: c_ulong = 0x80047460; +pub const TIOCSCTTY: c_ulong = 0x20007461; +pub const TIOCCONS: c_ulong = 0x80047462; +pub const TIOCGSID: c_ulong = 0x40047463; +pub const TIOCSTAT: c_ulong = 0x20007465; +pub const TIOCUCNTL: c_ulong = 0x80047466; +pub const TIOCSWINSZ: c_ulong = 0x80087467; +pub const TIOCGWINSZ: c_ulong = 0x40087468; +pub const TIOCMGET: c_ulong = 0x4004746a; +pub const TIOCM_LE: c_int = 0x1; +pub const TIOCM_DTR: c_int = 0x2; +pub const TIOCM_RTS: c_int = 0x4; +pub const TIOCM_ST: c_int = 0x8; +pub const TIOCM_SR: c_int = 0x10; +pub const TIOCM_CTS: c_int = 0x20; +pub const TIOCM_RI: c_int = 0x80; +pub const TIOCM_DSR: c_int = 0x100; +pub const TIOCM_CD: c_int = 0x40; +pub const TIOCM_CAR: c_int = 0x40; +pub const TIOCM_RNG: c_int = 0x80; +pub const TIOCMBIC: c_ulong = 0x8004746b; +pub const TIOCMBIS: c_ulong = 0x8004746c; +pub const TIOCMSET: c_ulong = 0x8004746d; +pub const TIOCSTART: c_ulong = 0x2000746e; +pub const TIOCSTOP: c_ulong = 0x2000746f; +pub const TIOCPKT: c_ulong = 0x80047470; +pub const TIOCPKT_DATA: c_int = 0x0; +pub const TIOCPKT_FLUSHREAD: c_int = 0x1; +pub const TIOCPKT_FLUSHWRITE: c_int = 0x2; +pub const TIOCPKT_STOP: c_int = 0x4; +pub const TIOCPKT_START: c_int = 0x8; +pub const TIOCPKT_NOSTOP: c_int = 0x10; +pub const TIOCPKT_DOSTOP: c_int = 0x20; +pub const TIOCPKT_IOCTL: c_int = 0x40; +pub const TIOCNOTTY: c_ulong = 0x20007471; +pub const TIOCSTI: c_ulong = 0x80017472; +pub const TIOCOUTQ: c_ulong = 0x40047473; +pub const TIOCSPGRP: c_ulong = 0x80047476; +pub const TIOCGPGRP: c_ulong = 0x40047477; +pub const TIOCCDTR: c_ulong = 0x20007478; +pub const TIOCSDTR: c_ulong = 0x20007479; +pub const TTYDISC: c_int = 0x0; +pub const SLIPDISC: c_int = 0x4; +pub const PPPDISC: c_int = 0x5; +pub const NETGRAPHDISC: c_int = 0x6; + +pub const BIOCGRSIG: c_ulong = 0x40044272; +pub const BIOCSRSIG: c_ulong = 0x80044273; +pub const BIOCSDLT: c_ulong = 0x80044278; +pub const BIOCGSEESENT: c_ulong = 0x40044276; +pub const BIOCSSEESENT: c_ulong = 0x80044277; cfg_if! { if #[cfg(target_pointer_width = "64")] { - pub const BIOCGDLTLIST: ::c_ulong = 0xc0104279; - pub const BIOCSETF: ::c_ulong = 0x80104267; + pub const BIOCGDLTLIST: c_ulong = 0xc0104279; + pub const BIOCSETF: c_ulong = 0x80104267; } else if #[cfg(target_pointer_width = "32")] { - pub const BIOCGDLTLIST: ::c_ulong = 0xc0084279; - pub const BIOCSETF: ::c_ulong = 0x80084267; + pub const BIOCGDLTLIST: c_ulong = 0xc0084279; + pub const BIOCSETF: c_ulong = 0x80084267; } } -pub const FIODTYPE: ::c_ulong = 0x4004667a; -pub const FIOGETLBA: ::c_ulong = 0x40046679; +pub const FIODTYPE: c_ulong = 0x4004667a; +pub const FIOGETLBA: c_ulong = 0x40046679; pub const B0: speed_t = 0; pub const B50: speed_t = 50; @@ -1338,16 +1343,16 @@ pub const EXTB: speed_t = 38400; pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; -pub const CRTSCTS: ::tcflag_t = 0x00030000; -pub const CCTS_OFLOW: ::tcflag_t = 0x00010000; -pub const CRTS_IFLOW: ::tcflag_t = 0x00020000; -pub const CDTR_IFLOW: ::tcflag_t = 0x00040000; -pub const CDSR_OFLOW: ::tcflag_t = 0x00080000; -pub const CCAR_OFLOW: ::tcflag_t = 0x00100000; +pub const CRTSCTS: crate::tcflag_t = 0x00030000; +pub const CCTS_OFLOW: crate::tcflag_t = 0x00010000; +pub const CRTS_IFLOW: crate::tcflag_t = 0x00020000; +pub const CDTR_IFLOW: crate::tcflag_t = 0x00040000; +pub const CDSR_OFLOW: crate::tcflag_t = 0x00080000; +pub const CCAR_OFLOW: crate::tcflag_t = 0x00100000; pub const VERASE2: usize = 7; -pub const OCRNL: ::tcflag_t = 0x10; -pub const ONOCR: ::tcflag_t = 0x20; -pub const ONLRET: ::tcflag_t = 0x40; +pub const OCRNL: crate::tcflag_t = 0x10; +pub const ONOCR: crate::tcflag_t = 0x20; +pub const ONLRET: crate::tcflag_t = 0x40; pub const CMGROUP_MAX: usize = 16; @@ -1357,64 +1362,64 @@ pub const EUI64_LEN: usize = 8; pub const BPF_ALIGNMENT: usize = SIZEOF_LONG; // Values for rtprio struct (prio field) and syscall (function argument) -pub const RTP_PRIO_MIN: ::c_ushort = 0; -pub const RTP_PRIO_MAX: ::c_ushort = 31; -pub const RTP_LOOKUP: ::c_int = 0; -pub const RTP_SET: ::c_int = 1; +pub const RTP_PRIO_MIN: c_ushort = 0; +pub const RTP_PRIO_MAX: c_ushort = 31; +pub const RTP_LOOKUP: c_int = 0; +pub const RTP_SET: c_int = 1; // Flags for chflags(2) -pub const UF_SETTABLE: ::c_ulong = 0x0000ffff; -pub const UF_NODUMP: ::c_ulong = 0x00000001; -pub const UF_IMMUTABLE: ::c_ulong = 0x00000002; -pub const UF_APPEND: ::c_ulong = 0x00000004; -pub const UF_OPAQUE: ::c_ulong = 0x00000008; -pub const UF_NOUNLINK: ::c_ulong = 0x00000010; -pub const SF_SETTABLE: ::c_ulong = 0xffff0000; -pub const SF_ARCHIVED: ::c_ulong = 0x00010000; -pub const SF_IMMUTABLE: ::c_ulong = 0x00020000; -pub const SF_APPEND: ::c_ulong = 0x00040000; -pub const SF_NOUNLINK: ::c_ulong = 0x00100000; - -pub const TIMER_ABSTIME: ::c_int = 1; +pub const UF_SETTABLE: c_ulong = 0x0000ffff; +pub const UF_NODUMP: c_ulong = 0x00000001; +pub const UF_IMMUTABLE: c_ulong = 0x00000002; +pub const UF_APPEND: c_ulong = 0x00000004; +pub const UF_OPAQUE: c_ulong = 0x00000008; +pub const UF_NOUNLINK: c_ulong = 0x00000010; +pub const SF_SETTABLE: c_ulong = 0xffff0000; +pub const SF_ARCHIVED: c_ulong = 0x00010000; +pub const SF_IMMUTABLE: c_ulong = 0x00020000; +pub const SF_APPEND: c_ulong = 0x00040000; +pub const SF_NOUNLINK: c_ulong = 0x00100000; + +pub const TIMER_ABSTIME: c_int = 1; // -pub const NTP_API: ::c_int = 4; -pub const MAXPHASE: ::c_long = 500000000; -pub const MAXFREQ: ::c_long = 500000; -pub const MINSEC: ::c_int = 256; -pub const MAXSEC: ::c_int = 2048; -pub const NANOSECOND: ::c_long = 1000000000; -pub const SCALE_PPM: ::c_int = 65; -pub const MAXTC: ::c_int = 10; -pub const MOD_OFFSET: ::c_uint = 0x0001; -pub const MOD_FREQUENCY: ::c_uint = 0x0002; -pub const MOD_MAXERROR: ::c_uint = 0x0004; -pub const MOD_ESTERROR: ::c_uint = 0x0008; -pub const MOD_STATUS: ::c_uint = 0x0010; -pub const MOD_TIMECONST: ::c_uint = 0x0020; -pub const MOD_PPSMAX: ::c_uint = 0x0040; -pub const MOD_TAI: ::c_uint = 0x0080; -pub const MOD_MICRO: ::c_uint = 0x1000; -pub const MOD_NANO: ::c_uint = 0x2000; -pub const MOD_CLKB: ::c_uint = 0x4000; -pub const MOD_CLKA: ::c_uint = 0x8000; -pub const STA_PLL: ::c_int = 0x0001; -pub const STA_PPSFREQ: ::c_int = 0x0002; -pub const STA_PPSTIME: ::c_int = 0x0004; -pub const STA_FLL: ::c_int = 0x0008; -pub const STA_INS: ::c_int = 0x0010; -pub const STA_DEL: ::c_int = 0x0020; -pub const STA_UNSYNC: ::c_int = 0x0040; -pub const STA_FREQHOLD: ::c_int = 0x0080; -pub const STA_PPSSIGNAL: ::c_int = 0x0100; -pub const STA_PPSJITTER: ::c_int = 0x0200; -pub const STA_PPSWANDER: ::c_int = 0x0400; -pub const STA_PPSERROR: ::c_int = 0x0800; -pub const STA_CLOCKERR: ::c_int = 0x1000; -pub const STA_NANO: ::c_int = 0x2000; -pub const STA_MODE: ::c_int = 0x4000; -pub const STA_CLK: ::c_int = 0x8000; -pub const STA_RONLY: ::c_int = STA_PPSSIGNAL +pub const NTP_API: c_int = 4; +pub const MAXPHASE: c_long = 500000000; +pub const MAXFREQ: c_long = 500000; +pub const MINSEC: c_int = 256; +pub const MAXSEC: c_int = 2048; +pub const NANOSECOND: c_long = 1000000000; +pub const SCALE_PPM: c_int = 65; +pub const MAXTC: c_int = 10; +pub const MOD_OFFSET: c_uint = 0x0001; +pub const MOD_FREQUENCY: c_uint = 0x0002; +pub const MOD_MAXERROR: c_uint = 0x0004; +pub const MOD_ESTERROR: c_uint = 0x0008; +pub const MOD_STATUS: c_uint = 0x0010; +pub const MOD_TIMECONST: c_uint = 0x0020; +pub const MOD_PPSMAX: c_uint = 0x0040; +pub const MOD_TAI: c_uint = 0x0080; +pub const MOD_MICRO: c_uint = 0x1000; +pub const MOD_NANO: c_uint = 0x2000; +pub const MOD_CLKB: c_uint = 0x4000; +pub const MOD_CLKA: c_uint = 0x8000; +pub const STA_PLL: c_int = 0x0001; +pub const STA_PPSFREQ: c_int = 0x0002; +pub const STA_PPSTIME: c_int = 0x0004; +pub const STA_FLL: c_int = 0x0008; +pub const STA_INS: c_int = 0x0010; +pub const STA_DEL: c_int = 0x0020; +pub const STA_UNSYNC: c_int = 0x0040; +pub const STA_FREQHOLD: c_int = 0x0080; +pub const STA_PPSSIGNAL: c_int = 0x0100; +pub const STA_PPSJITTER: c_int = 0x0200; +pub const STA_PPSWANDER: c_int = 0x0400; +pub const STA_PPSERROR: c_int = 0x0800; +pub const STA_CLOCKERR: c_int = 0x1000; +pub const STA_NANO: c_int = 0x2000; +pub const STA_MODE: c_int = 0x4000; +pub const STA_CLK: c_int = 0x8000; +pub const STA_RONLY: c_int = STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | STA_PPSERROR @@ -1422,515 +1427,489 @@ pub const STA_RONLY: ::c_int = STA_PPSSIGNAL | STA_NANO | STA_MODE | STA_CLK; -pub const TIME_OK: ::c_int = 0; -pub const TIME_INS: ::c_int = 1; -pub const TIME_DEL: ::c_int = 2; -pub const TIME_OOP: ::c_int = 3; -pub const TIME_WAIT: ::c_int = 4; -pub const TIME_ERROR: ::c_int = 5; - -pub const REG_ENOSYS: ::c_int = -1; -pub const REG_ILLSEQ: ::c_int = 17; - -pub const IPC_PRIVATE: ::key_t = 0; -pub const IPC_CREAT: ::c_int = 0o1000; -pub const IPC_EXCL: ::c_int = 0o2000; -pub const IPC_NOWAIT: ::c_int = 0o4000; -pub const IPC_RMID: ::c_int = 0; -pub const IPC_SET: ::c_int = 1; -pub const IPC_STAT: ::c_int = 2; -pub const IPC_R: ::c_int = 0o400; -pub const IPC_W: ::c_int = 0o200; -pub const IPC_M: ::c_int = 0o10000; - -pub const SHM_RDONLY: ::c_int = 0o10000; -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; +pub const TIME_OK: c_int = 0; +pub const TIME_INS: c_int = 1; +pub const TIME_DEL: c_int = 2; +pub const TIME_OOP: c_int = 3; +pub const TIME_WAIT: c_int = 4; +pub const TIME_ERROR: c_int = 5; + +pub const REG_ENOSYS: c_int = -1; +pub const REG_ILLSEQ: c_int = 17; + +pub const IPC_PRIVATE: crate::key_t = 0; +pub const IPC_CREAT: c_int = 0o1000; +pub const IPC_EXCL: c_int = 0o2000; +pub const IPC_NOWAIT: c_int = 0o4000; +pub const IPC_RMID: c_int = 0; +pub const IPC_SET: c_int = 1; +pub const IPC_STAT: c_int = 2; +pub const IPC_R: c_int = 0o400; +pub const IPC_W: c_int = 0o200; +pub const IPC_M: c_int = 0o10000; + +pub const SHM_RDONLY: c_int = 0o10000; +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; // For getrandom() -pub const GRND_NONBLOCK: ::c_uint = 0x1; -pub const GRND_RANDOM: ::c_uint = 0x2; -pub const GRND_INSECURE: ::c_uint = 0x4; +pub const GRND_NONBLOCK: c_uint = 0x1; +pub const GRND_RANDOM: c_uint = 0x2; +pub const GRND_INSECURE: c_uint = 0x4; safe_f! { - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + pub {const} fn WIFCONTINUED(status: c_int) -> bool { status == 0x13 } - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + pub {const} fn WSTOPSIG(status: c_int) -> c_int { status >> 8 } - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + pub {const} fn WIFSTOPPED(status: c_int) -> bool { (status & 0o177) == 0o177 } } extern "C" { - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; + pub fn sem_destroy(sem: *mut sem_t) -> c_int; + pub fn sem_init(sem: *mut sem_t, pshared: c_int, value: c_uint) -> c_int; - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; + pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut crate::timezone) -> c_int; pub fn accept4( - s: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn chflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int; - pub fn chflagsat( - fd: ::c_int, - path: *const ::c_char, - flags: ::c_ulong, - atflag: ::c_int, - ) -> ::c_int; + s: c_int, + addr: *mut crate::sockaddr, + addrlen: *mut crate::socklen_t, + flags: c_int, + ) -> c_int; + pub fn chflags(path: *const c_char, flags: c_ulong) -> c_int; + pub fn chflagsat(fd: c_int, path: *const c_char, flags: c_ulong, atflag: c_int) -> c_int; pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; + clk_id: crate::clockid_t, + flags: c_int, + rqtp: *const crate::timespec, + rmtp: *mut crate::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; - pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int; + pub fn clock_getres(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + pub fn clock_settime(clk_id: crate::clockid_t, tp: *const crate::timespec) -> c_int; + pub fn clock_getcpuclockid(pid: crate::pid_t, clk_id: *mut crate::clockid_t) -> c_int; - pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int; + pub fn pthread_getcpuclockid(thread: crate::pthread_t, clk_id: *mut crate::clockid_t) -> c_int; - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn duplocale(base: ::locale_t) -> ::locale_t; + pub fn dirfd(dirp: *mut crate::DIR) -> c_int; + pub fn duplocale(base: crate::locale_t) -> crate::locale_t; pub fn endutxent(); - pub fn fchflags(fd: ::c_int, flags: ::c_ulong) -> ::c_int; + pub fn fchflags(fd: c_int, flags: c_ulong) -> c_int; // DIFF(main): changed to `*const *mut` in e77f551de9 - pub fn fexecve( - fd: ::c_int, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn getdomainname(name: *mut ::c_char, len: ::c_int) -> ::c_int; + pub fn fexecve(fd: c_int, argv: *const *const c_char, envp: *const *const c_char) -> c_int; + + pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; + pub fn getdomainname(name: *mut c_char, len: c_int) -> c_int; pub fn getgrent_r( - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; pub fn getpwent_r( - pwd: *mut ::passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::passwd, - ) -> ::c_int; + pwd: *mut crate::passwd, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::passwd, + ) -> c_int; pub fn getgrouplist( - name: *const ::c_char, - basegid: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int, - ) -> ::c_int; + name: *const c_char, + basegid: crate::gid_t, + groups: *mut crate::gid_t, + ngroups: *mut c_int, + ) -> c_int; pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::size_t, - serv: *mut ::c_char, - servlen: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn getpriority(which: ::c_int, who: ::c_int) -> ::c_int; - pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int; - pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int; + sa: *const crate::sockaddr, + salen: crate::socklen_t, + host: *mut c_char, + hostlen: size_t, + serv: *mut c_char, + servlen: size_t, + flags: c_int, + ) -> c_int; + pub fn getpriority(which: c_int, who: c_int) -> c_int; + pub fn getresgid( + rgid: *mut crate::gid_t, + egid: *mut crate::gid_t, + sgid: *mut crate::gid_t, + ) -> c_int; + pub fn getresuid( + ruid: *mut crate::uid_t, + euid: *mut crate::uid_t, + suid: *mut crate::uid_t, + ) -> c_int; pub fn getutxent() -> *mut utmpx; pub fn getutxid(ut: *const utmpx) -> *mut utmpx; pub fn getutxline(ut: *const utmpx) -> *mut utmpx; - pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; + pub fn initgroups(name: *const c_char, basegid: crate::gid_t) -> c_int; #[cfg_attr( all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "kevent@FBSD_1.0" )] pub fn kevent( - kq: ::c_int, - changelist: *const ::kevent, - nchanges: ::c_int, - eventlist: *mut ::kevent, - nevents: ::c_int, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn lchflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int; - pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; - pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + kq: c_int, + changelist: *const crate::kevent, + nchanges: c_int, + eventlist: *mut crate::kevent, + nevents: c_int, + timeout: *const crate::timespec, + ) -> c_int; + pub fn lchflags(path: *const c_char, flags: c_ulong) -> c_int; + pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int; + pub fn memrchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; #[cfg_attr( all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "mknodat@FBSD_1.1" )] - pub fn mknodat( - dirfd: ::c_int, - pathname: *const ::c_char, - 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; - pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; + pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::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: crate::locale_t) -> crate::locale_t; + pub fn nl_langinfo_l(item: crate::nl_item, locale: crate::locale_t) -> *mut c_char; + pub fn pipe2(fds: *mut c_int, flags: c_int) -> c_int; + pub fn posix_fallocate(fd: c_int, offset: off_t, len: off_t) -> c_int; + pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advise: c_int) -> c_int; pub fn ppoll( - fds: *mut ::pollfd, - nfds: ::nfds_t, - timeout: *const ::timespec, + fds: *mut crate::pollfd, + nfds: crate::nfds_t, + timeout: *const crate::timespec, sigmask: *const sigset_t, - ) -> ::c_int; - pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn pthread_attr_get_np(tid: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; + ) -> c_int; + pub fn preadv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; + pub fn pthread_attr_get_np(tid: crate::pthread_t, attr: *mut crate::pthread_attr_t) -> c_int; pub fn pthread_attr_getguardsize( - 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; + attr: *const crate::pthread_attr_t, + guardsize: *mut size_t, + ) -> c_int; + pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int; pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; + attr: *const crate::pthread_attr_t, + stackaddr: *mut *mut c_void, + stacksize: *mut size_t, + ) -> c_int; pub fn pthread_condattr_getclock( attr: *const pthread_condattr_t, clock_id: *mut clockid_t, - ) -> ::c_int; + ) -> c_int; pub fn pthread_condattr_getpshared( attr: *const pthread_condattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; + pshared: *mut c_int, + ) -> c_int; pub fn pthread_condattr_setclock( attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_main_np() -> ::c_int; + clock_id: crate::clockid_t, + ) -> c_int; + pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: c_int) -> c_int; + pub fn pthread_main_np() -> c_int; pub fn pthread_mutex_timedlock( lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; + abstime: *const crate::timespec, + ) -> c_int; pub fn pthread_mutexattr_getpshared( attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_setpshared( - attr: *mut pthread_mutexattr_t, - pshared: ::c_int, - ) -> ::c_int; + pshared: *mut c_int, + ) -> c_int; + pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, pshared: c_int) -> c_int; pub fn pthread_rwlockattr_getpshared( attr: *const pthread_rwlockattr_t, - val: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int; - pub fn pthread_barrierattr_init(attr: *mut ::pthread_barrierattr_t) -> ::c_int; - pub fn pthread_barrierattr_destroy(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + val: *mut c_int, + ) -> c_int; + pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: c_int) -> c_int; + pub fn pthread_barrierattr_init(attr: *mut crate::pthread_barrierattr_t) -> c_int; + pub fn pthread_barrierattr_destroy(attr: *mut crate::pthread_barrierattr_t) -> c_int; pub fn pthread_barrierattr_getpshared( - attr: *const ::pthread_barrierattr_t, - shared: *mut ::c_int, - ) -> ::c_int; + attr: *const crate::pthread_barrierattr_t, + shared: *mut c_int, + ) -> c_int; pub fn pthread_barrierattr_setpshared( - attr: *mut ::pthread_barrierattr_t, - shared: ::c_int, - ) -> ::c_int; + attr: *mut crate::pthread_barrierattr_t, + shared: c_int, + ) -> c_int; pub fn pthread_barrier_init( barrier: *mut pthread_barrier_t, - attr: *const ::pthread_barrierattr_t, - count: ::c_uint, - ) -> ::c_int; - pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> ::c_int; - 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); + attr: *const crate::pthread_barrierattr_t, + count: c_uint, + ) -> c_int; + pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> c_int; + pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> c_int; + pub fn pthread_get_name_np(tid: crate::pthread_t, name: *mut c_char, len: size_t); + pub fn pthread_set_name_np(tid: crate::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; + thread: crate::pthread_t, + buffer: *mut c_char, + length: size_t, + ) -> c_int; + pub fn pthread_setname_np(thread: crate::pthread_t, name: *const c_char) -> c_int; pub fn pthread_setschedparam( - native: ::pthread_t, - policy: ::c_int, + native: crate::pthread_t, + policy: c_int, param: *const sched_param, - ) -> ::c_int; + ) -> c_int; pub fn pthread_getschedparam( - native: ::pthread_t, - policy: *mut ::c_int, + native: crate::pthread_t, + policy: *mut c_int, param: *mut sched_param, - ) -> ::c_int; - pub fn ptrace(request: ::c_int, pid: ::pid_t, addr: *mut ::c_char, data: ::c_int) -> ::c_int; - pub fn utrace(addr: *const ::c_void, len: ::size_t) -> ::c_int; + ) -> c_int; + pub fn ptrace(request: c_int, pid: crate::pid_t, addr: *mut c_char, data: c_int) -> c_int; + pub fn utrace(addr: *const c_void, len: size_t) -> c_int; pub fn pututxline(ut: *const utmpx) -> *mut utmpx; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) - -> ::ssize_t; - pub fn querylocale(mask: ::c_int, loc: ::locale_t) -> *const ::c_char; - pub fn rtprio(function: ::c_int, pid: ::pid_t, rtp: *mut rtprio) -> ::c_int; - pub fn sched_rr_get_interval(pid: ::pid_t, t: *mut ::timespec) -> ::c_int; - pub fn sched_getparam(pid: ::pid_t, param: *mut sched_param) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const sched_param) -> ::c_int; - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + pub fn pwritev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; + pub fn querylocale(mask: c_int, loc: crate::locale_t) -> *const c_char; + pub fn rtprio(function: c_int, pid: crate::pid_t, rtp: *mut rtprio) -> c_int; + pub fn sched_rr_get_interval(pid: crate::pid_t, t: *mut crate::timespec) -> c_int; + pub fn sched_getparam(pid: crate::pid_t, param: *mut sched_param) -> c_int; + pub fn sched_setparam(pid: crate::pid_t, param: *const sched_param) -> c_int; + pub fn sched_getscheduler(pid: crate::pid_t) -> c_int; pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; + pid: crate::pid_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int; pub fn sendfile( - fd: ::c_int, - s: ::c_int, - offset: ::off_t, - nbytes: ::size_t, - hdtr: *mut ::sf_hdtr, - sbytes: *mut ::off_t, - flags: ::c_int, - ) -> ::c_int; - pub fn setdomainname(name: *const ::c_char, len: ::c_int) -> ::c_int; - pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::c_int, prio: ::c_int) -> ::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 settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; + fd: c_int, + s: c_int, + offset: off_t, + nbytes: size_t, + hdtr: *mut crate::sf_hdtr, + sbytes: *mut off_t, + flags: c_int, + ) -> c_int; + pub fn setdomainname(name: *const c_char, len: c_int) -> c_int; + pub fn sethostname(name: *const c_char, len: c_int) -> c_int; + pub fn setpriority(which: c_int, who: c_int, prio: c_int) -> c_int; + pub fn setresgid(rgid: crate::gid_t, egid: crate::gid_t, sgid: crate::gid_t) -> c_int; + pub fn setresuid(ruid: crate::uid_t, euid: crate::uid_t, suid: crate::uid_t) -> c_int; + pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int; pub fn setutxent(); - pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: crate::mode_t) -> c_int; pub fn sigtimedwait( set: *const sigset_t, info: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; + timeout: *const crate::timespec, + ) -> c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> c_int; pub fn sysctl( - name: *const ::c_int, - namelen: ::c_uint, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *const ::c_void, - newlen: ::size_t, - ) -> ::c_int; + name: *const c_int, + namelen: c_uint, + oldp: *mut c_void, + oldlenp: *mut size_t, + newp: *const c_void, + newlen: size_t, + ) -> c_int; pub fn sysctlbyname( - name: *const ::c_char, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *const ::c_void, - newlen: ::size_t, - ) -> ::c_int; - pub fn sysctlnametomib( - name: *const ::c_char, - mibp: *mut ::c_int, - sizep: *mut ::size_t, - ) -> ::c_int; - pub fn uselocale(loc: ::locale_t) -> ::locale_t; + name: *const c_char, + oldp: *mut c_void, + oldlenp: *mut size_t, + newp: *const c_void, + newlen: size_t, + ) -> c_int; + pub fn sysctlnametomib(name: *const c_char, mibp: *mut c_int, sizep: *mut size_t) -> c_int; + pub fn uselocale(loc: crate::locale_t) -> crate::locale_t; pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; + dirfd: c_int, + path: *const c_char, + times: *const crate::timespec, + flag: c_int, + ) -> c_int; - pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; - pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; + pub fn ntp_adjtime(buf: *mut timex) -> c_int; + pub fn ntp_gettime(buf: *mut ntptimeval) -> c_int; // #include pub fn dl_iterate_phdr( - callback: ::Option< - unsafe extern "C" fn( - info: *mut dl_phdr_info, - size: usize, - data: *mut ::c_void, - ) -> ::c_int, + callback: Option< + unsafe extern "C" fn(info: *mut dl_phdr_info, size: usize, data: *mut c_void) -> c_int, >, - data: *mut ::c_void, - ) -> ::c_int; + data: *mut c_void, + ) -> c_int; - pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; + pub fn iconv_open(tocode: *const c_char, fromcode: *const c_char) -> iconv_t; pub fn iconv( cd: iconv_t, - inbuf: *mut *mut ::c_char, - inbytesleft: *mut ::size_t, - outbuf: *mut *mut ::c_char, - outbytesleft: *mut ::size_t, - ) -> ::size_t; - pub fn iconv_close(cd: iconv_t) -> ::c_int; + inbuf: *mut *mut c_char, + inbytesleft: *mut size_t, + outbuf: *mut *mut c_char, + outbytesleft: *mut size_t, + ) -> size_t; + pub fn iconv_close(cd: iconv_t) -> c_int; // Added in `FreeBSD` 11.0 // Added in `DragonFly BSD` 5.4 - pub fn explicit_bzero(s: *mut ::c_void, len: ::size_t); + pub fn explicit_bzero(s: *mut c_void, len: size_t); // ISO/IEC 9899:2011 ("ISO C11") K.3.7.4.1 - pub fn memset_s(s: *mut ::c_void, smax: ::size_t, c: ::c_int, n: ::size_t) -> ::c_int; - pub fn gethostid() -> ::c_long; - pub fn sethostid(hostid: ::c_long); - - pub fn eui64_aton(a: *const ::c_char, e: *mut eui64) -> ::c_int; - pub fn eui64_ntoa(id: *const eui64, a: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn eui64_ntohost(hostname: *mut ::c_char, len: ::size_t, id: *const eui64) -> ::c_int; - 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 memset_s(s: *mut c_void, smax: size_t, c: c_int, n: size_t) -> c_int; + pub fn gethostid() -> c_long; + pub fn sethostid(hostid: c_long); + + pub fn eui64_aton(a: *const c_char, e: *mut eui64) -> c_int; + pub fn eui64_ntoa(id: *const eui64, a: *mut c_char, len: size_t) -> c_int; + pub fn eui64_ntohost(hostname: *mut c_char, len: size_t, id: *const eui64) -> c_int; + 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; + file: *const c_char, + search_path: *const c_char, + argv: *const *mut c_char, + ) -> c_int; } #[link(name = "rt")] extern "C" { - pub fn mq_close(mqd: ::mqd_t) -> ::c_int; - pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_notify(mqd: ::mqd_t, notification: *const ::sigevent) -> ::c_int; - pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; + pub fn mq_close(mqd: crate::mqd_t) -> c_int; + pub fn mq_getattr(mqd: crate::mqd_t, attr: *mut crate::mq_attr) -> c_int; + pub fn mq_notify(mqd: crate::mqd_t, notification: *const crate::sigevent) -> c_int; + pub fn mq_open(name: *const c_char, oflag: c_int, ...) -> crate::mqd_t; pub fn mq_receive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - ) -> ::ssize_t; + mqd: crate::mqd_t, + msg_ptr: *mut c_char, + msg_len: size_t, + msg_prio: *mut c_uint, + ) -> ssize_t; pub fn mq_send( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - ) -> ::c_int; - pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; + mqd: crate::mqd_t, + msg_ptr: *const c_char, + msg_len: size_t, + msg_prio: c_uint, + ) -> c_int; + pub fn mq_setattr( + mqd: crate::mqd_t, + newattr: *const crate::mq_attr, + oldattr: *mut crate::mq_attr, + ) -> c_int; pub fn mq_timedreceive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::ssize_t; + mqd: crate::mqd_t, + msg_ptr: *mut c_char, + msg_len: size_t, + msg_prio: *mut c_uint, + abs_timeout: *const crate::timespec, + ) -> ssize_t; pub fn mq_timedsend( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::c_int; - pub fn mq_unlink(name: *const ::c_char) -> ::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; + mqd: crate::mqd_t, + msg_ptr: *const c_char, + msg_len: size_t, + msg_prio: c_uint, + abs_timeout: *const crate::timespec, + ) -> c_int; + pub fn mq_unlink(name: *const c_char) -> 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; } #[link(name = "util")] extern "C" { pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, + amaster: *mut c_int, + aslave: *mut c_int, + name: *mut c_char, termp: *mut termios, - winp: *mut ::winsize, - ) -> ::c_int; + winp: *mut crate::winsize, + ) -> c_int; pub fn forkpty( - amaster: *mut ::c_int, - name: *mut ::c_char, + amaster: *mut c_int, + name: *mut c_char, termp: *mut termios, - winp: *mut ::winsize, - ) -> ::pid_t; - pub fn login_tty(fd: ::c_int) -> ::c_int; + winp: *mut crate::winsize, + ) -> crate::pid_t; + pub fn login_tty(fd: c_int) -> c_int; pub fn fparseln( - stream: *mut ::FILE, - len: *mut ::size_t, - lineno: *mut ::size_t, - delim: *const ::c_char, - flags: ::c_int, - ) -> *mut ::c_char; + stream: *mut crate::FILE, + len: *mut size_t, + lineno: *mut size_t, + delim: *const c_char, + flags: c_int, + ) -> *mut c_char; } #[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(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; } #[link(name = "kvm")] extern "C" { pub fn kvm_open( - execfile: *const ::c_char, - corefile: *const ::c_char, - swapfile: *const ::c_char, - flags: ::c_int, - errstr: *const ::c_char, - ) -> *mut ::kvm_t; - pub fn kvm_close(kd: *mut ::kvm_t) -> ::c_int; + execfile: *const c_char, + corefile: *const c_char, + swapfile: *const c_char, + flags: c_int, + errstr: *const c_char, + ) -> *mut crate::kvm_t; + pub fn kvm_close(kd: *mut crate::kvm_t) -> c_int; pub fn kvm_getprocs( - kd: *mut ::kvm_t, - op: ::c_int, - arg: ::c_int, - cnt: *mut ::c_int, - ) -> *mut ::kinfo_proc; - pub fn kvm_getloadavg(kd: *mut kvm_t, loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; + kd: *mut crate::kvm_t, + op: c_int, + arg: c_int, + cnt: *mut c_int, + ) -> *mut crate::kinfo_proc; + pub fn kvm_getloadavg(kd: *mut kvm_t, loadavg: *mut c_double, nelem: c_int) -> c_int; pub fn kvm_openfiles( - execfile: *const ::c_char, - corefile: *const ::c_char, - swapfile: *const ::c_char, - flags: ::c_int, - errbuf: *mut ::c_char, - ) -> *mut ::kvm_t; + execfile: *const c_char, + corefile: *const c_char, + swapfile: *const c_char, + flags: c_int, + errbuf: *mut c_char, + ) -> *mut crate::kvm_t; pub fn kvm_read( - kd: *mut ::kvm_t, - addr: ::c_ulong, - buf: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; + kd: *mut crate::kvm_t, + addr: c_ulong, + buf: *mut c_void, + nbytes: size_t, + ) -> ssize_t; pub fn kvm_write( - kd: *mut ::kvm_t, - addr: ::c_ulong, - buf: *const ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; + kd: *mut crate::kvm_t, + addr: c_ulong, + buf: *const c_void, + nbytes: size_t, + ) -> ssize_t; } cfg_if! { diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 77271c38f50c4..0ce8fd9d1dd92 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -1,39 +1,41 @@ +use crate::{c_double, c_int, c_short, c_uint, c_ushort, c_void, size_t, ssize_t}; + pub type off_t = i64; pub type useconds_t = u32; pub type blkcnt_t = i64; pub type socklen_t = u32; pub type sa_family_t = u8; -pub type pthread_t = ::uintptr_t; -pub type nfds_t = ::c_uint; +pub type pthread_t = crate::uintptr_t; +pub type nfds_t = c_uint; pub type regoff_t = off_t; s! { pub struct sockaddr { pub sa_len: u8, pub sa_family: sa_family_t, - pub sa_data: [::c_char; 14], + pub sa_data: [c_char; 14], } pub struct sockaddr_in6 { pub sin6_len: u8, pub sin6_family: sa_family_t, - pub sin6_port: ::in_port_t, + pub sin6_port: crate::in_port_t, pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, + pub sin6_addr: crate::in6_addr, pub sin6_scope_id: u32, } pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_change: ::time_t, - pub pw_class: *mut ::c_char, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, - pub pw_expire: ::time_t, + pub pw_name: *mut c_char, + pub pw_passwd: *mut c_char, + pub pw_uid: crate::uid_t, + pub pw_gid: crate::gid_t, + pub pw_change: crate::time_t, + pub pw_class: *mut c_char, + pub pw_gecos: *mut c_char, + pub pw_dir: *mut c_char, + pub pw_shell: *mut c_char, + pub pw_expire: crate::time_t, #[cfg(not(any( target_os = "macos", @@ -44,19 +46,19 @@ s! { target_os = "netbsd", target_os = "openbsd" )))] - pub pw_fields: ::c_int, + pub pw_fields: c_int, } pub struct ifaddrs { pub ifa_next: *mut ifaddrs, - pub ifa_name: *mut ::c_char, - pub ifa_flags: ::c_uint, - pub ifa_addr: *mut ::sockaddr, - pub ifa_netmask: *mut ::sockaddr, - pub ifa_dstaddr: *mut ::sockaddr, - pub ifa_data: *mut ::c_void, + pub ifa_name: *mut c_char, + pub ifa_flags: c_uint, + pub ifa_addr: *mut crate::sockaddr, + pub ifa_netmask: *mut crate::sockaddr, + pub ifa_dstaddr: *mut crate::sockaddr, + pub ifa_data: *mut c_void, #[cfg(target_os = "netbsd")] - pub ifa_addrflags: ::c_uint, + pub ifa_addrflags: c_uint, } pub struct fd_set { @@ -73,33 +75,33 @@ s! { } pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, - pub tm_gmtoff: ::c_long, - pub tm_zone: *mut ::c_char, + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + pub tm_gmtoff: c_long, + pub tm_zone: *mut c_char, } pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - pub msg_flags: ::c_int, + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: c_int, + pub msg_control: *mut c_void, + pub msg_controllen: crate::socklen_t, + pub msg_flags: c_int, } pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub cmsg_len: crate::socklen_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } pub struct fsid_t { @@ -107,15 +109,15 @@ s! { } pub struct if_nameindex { - pub if_index: ::c_uint, - pub if_name: *mut ::c_char, + pub if_index: c_uint, + pub if_name: *mut c_char, } pub struct regex_t { - __re_magic: ::c_int, - __re_nsub: ::size_t, - __re_endp: *const ::c_char, - __re_g: *mut ::c_void, + __re_magic: c_int, + __re_nsub: size_t, + __re_endp: *const c_char, + __re_g: *mut c_void, } pub struct regmatch_t { @@ -124,10 +126,10 @@ s! { } pub struct option { - pub name: *const ::c_char, - pub has_arg: ::c_int, - pub flag: *mut ::c_int, - pub val: ::c_int, + pub name: *const c_char, + pub has_arg: c_int, + pub flag: *mut c_int, + pub val: c_int, } } @@ -135,30 +137,30 @@ s_no_extra_traits! { pub struct sockaddr_un { pub sun_len: u8, pub sun_family: sa_family_t, - pub sun_path: [::c_char; 104], + pub sun_path: [c_char; 104], } pub struct utsname { #[cfg(not(target_os = "dragonfly"))] - pub sysname: [::c_char; 256], + pub sysname: [c_char; 256], #[cfg(target_os = "dragonfly")] - pub sysname: [::c_char; 32], + pub sysname: [c_char; 32], #[cfg(not(target_os = "dragonfly"))] - pub nodename: [::c_char; 256], + pub nodename: [c_char; 256], #[cfg(target_os = "dragonfly")] - pub nodename: [::c_char; 32], + pub nodename: [c_char; 32], #[cfg(not(target_os = "dragonfly"))] - pub release: [::c_char; 256], + pub release: [c_char; 256], #[cfg(target_os = "dragonfly")] - pub release: [::c_char; 32], + pub release: [c_char; 32], #[cfg(not(target_os = "dragonfly"))] - pub version: [::c_char; 256], + pub version: [c_char; 256], #[cfg(target_os = "dragonfly")] - pub version: [::c_char; 32], + pub version: [c_char; 32], #[cfg(not(target_os = "dragonfly"))] - pub machine: [::c_char; 256], + pub machine: [c_char; 256], #[cfg(target_os = "dragonfly")] - pub machine: [::c_char; 32], + pub machine: [c_char; 32], } } @@ -178,8 +180,8 @@ cfg_if! { impl Eq for sockaddr_un {} - impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_un") .field("sun_len", &self.sun_len) .field("sun_family", &self.sun_family) @@ -188,8 +190,8 @@ cfg_if! { } } - impl ::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { self.sun_len.hash(state); self.sun_family.hash(state); self.sun_path.hash(state); @@ -227,8 +229,8 @@ cfg_if! { impl Eq for utsname {} - impl ::fmt::Debug for utsname { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utsname { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utsname") // FIXME: .field("sysname", &self.sysname) // FIXME: .field("nodename", &self.nodename) @@ -239,8 +241,8 @@ cfg_if! { } } - impl ::hash::Hash for utsname { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utsname { + fn hash(&self, state: &mut H) { self.sysname.hash(state); self.nodename.hash(state); self.release.hash(state); @@ -251,72 +253,72 @@ cfg_if! { } } -pub const LC_ALL: ::c_int = 0; -pub const LC_COLLATE: ::c_int = 1; -pub const LC_CTYPE: ::c_int = 2; -pub const LC_MONETARY: ::c_int = 3; -pub const LC_NUMERIC: ::c_int = 4; -pub const LC_TIME: ::c_int = 5; -pub const LC_MESSAGES: ::c_int = 6; - -pub const FIOCLEX: ::c_ulong = 0x20006601; -pub const FIONCLEX: ::c_ulong = 0x20006602; -pub const FIONREAD: ::c_ulong = 0x4004667f; -pub const FIONBIO: ::c_ulong = 0x8004667e; -pub const FIOASYNC: ::c_ulong = 0x8004667d; -pub const FIOSETOWN: ::c_ulong = 0x8004667c; -pub const FIOGETOWN: ::c_ulong = 0x4004667b; - -pub const PATH_MAX: ::c_int = 1024; -pub const MAXPATHLEN: ::c_int = PATH_MAX; - -pub const IOV_MAX: ::c_int = 1024; - -pub const SA_ONSTACK: ::c_int = 0x0001; -pub const SA_SIGINFO: ::c_int = 0x0040; -pub const SA_RESTART: ::c_int = 0x0002; -pub const SA_RESETHAND: ::c_int = 0x0004; -pub const SA_NOCLDSTOP: ::c_int = 0x0008; -pub const SA_NODEFER: ::c_int = 0x0010; -pub const SA_NOCLDWAIT: ::c_int = 0x0020; - -pub const SS_ONSTACK: ::c_int = 1; -pub const SS_DISABLE: ::c_int = 4; - -pub const SIGCHLD: ::c_int = 20; -pub const SIGBUS: ::c_int = 10; -pub const SIGUSR1: ::c_int = 30; -pub const SIGUSR2: ::c_int = 31; -pub const SIGCONT: ::c_int = 19; -pub const SIGSTOP: ::c_int = 17; -pub const SIGTSTP: ::c_int = 18; -pub const SIGURG: ::c_int = 16; -pub const SIGIO: ::c_int = 23; -pub const SIGSYS: ::c_int = 12; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGINFO: ::c_int = 29; - -pub const SIG_SETMASK: ::c_int = 3; -pub const SIG_BLOCK: ::c_int = 0x1; -pub const SIG_UNBLOCK: ::c_int = 0x2; - -pub const IP_TOS: ::c_int = 3; -pub const IP_MULTICAST_IF: ::c_int = 9; -pub const IP_MULTICAST_TTL: ::c_int = 10; -pub const IP_MULTICAST_LOOP: ::c_int = 11; - -pub const IPV6_UNICAST_HOPS: ::c_int = 4; -pub const IPV6_MULTICAST_IF: ::c_int = 9; -pub const IPV6_MULTICAST_HOPS: ::c_int = 10; -pub const IPV6_MULTICAST_LOOP: ::c_int = 11; -pub const IPV6_V6ONLY: ::c_int = 27; -pub const IPV6_DONTFRAG: ::c_int = 62; +pub const LC_ALL: c_int = 0; +pub const LC_COLLATE: c_int = 1; +pub const LC_CTYPE: c_int = 2; +pub const LC_MONETARY: c_int = 3; +pub const LC_NUMERIC: c_int = 4; +pub const LC_TIME: c_int = 5; +pub const LC_MESSAGES: c_int = 6; + +pub const FIOCLEX: c_ulong = 0x20006601; +pub const FIONCLEX: c_ulong = 0x20006602; +pub const FIONREAD: c_ulong = 0x4004667f; +pub const FIONBIO: c_ulong = 0x8004667e; +pub const FIOASYNC: c_ulong = 0x8004667d; +pub const FIOSETOWN: c_ulong = 0x8004667c; +pub const FIOGETOWN: c_ulong = 0x4004667b; + +pub const PATH_MAX: c_int = 1024; +pub const MAXPATHLEN: c_int = PATH_MAX; + +pub const IOV_MAX: c_int = 1024; + +pub const SA_ONSTACK: c_int = 0x0001; +pub const SA_SIGINFO: c_int = 0x0040; +pub const SA_RESTART: c_int = 0x0002; +pub const SA_RESETHAND: c_int = 0x0004; +pub const SA_NOCLDSTOP: c_int = 0x0008; +pub const SA_NODEFER: c_int = 0x0010; +pub const SA_NOCLDWAIT: c_int = 0x0020; + +pub const SS_ONSTACK: c_int = 1; +pub const SS_DISABLE: c_int = 4; + +pub const SIGCHLD: c_int = 20; +pub const SIGBUS: c_int = 10; +pub const SIGUSR1: c_int = 30; +pub const SIGUSR2: c_int = 31; +pub const SIGCONT: c_int = 19; +pub const SIGSTOP: c_int = 17; +pub const SIGTSTP: c_int = 18; +pub const SIGURG: c_int = 16; +pub const SIGIO: c_int = 23; +pub const SIGSYS: c_int = 12; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGINFO: c_int = 29; + +pub const SIG_SETMASK: c_int = 3; +pub const SIG_BLOCK: c_int = 0x1; +pub const SIG_UNBLOCK: c_int = 0x2; + +pub const IP_TOS: c_int = 3; +pub const IP_MULTICAST_IF: c_int = 9; +pub const IP_MULTICAST_TTL: c_int = 10; +pub const IP_MULTICAST_LOOP: c_int = 11; + +pub const IPV6_UNICAST_HOPS: c_int = 4; +pub const IPV6_MULTICAST_IF: c_int = 9; +pub const IPV6_MULTICAST_HOPS: c_int = 10; +pub const IPV6_MULTICAST_LOOP: c_int = 11; +pub const IPV6_V6ONLY: c_int = 27; +pub const IPV6_DONTFRAG: c_int = 62; pub const IPTOS_ECN_NOTECT: u8 = 0x00; pub const IPTOS_ECN_MASK: u8 = 0x03; @@ -324,60 +326,60 @@ pub const IPTOS_ECN_ECT1: u8 = 0x01; pub const IPTOS_ECN_ECT0: u8 = 0x02; pub const IPTOS_ECN_CE: u8 = 0x03; -pub const ST_RDONLY: ::c_ulong = 1; +pub const ST_RDONLY: c_ulong = 1; -pub const SCM_RIGHTS: ::c_int = 0x01; +pub const SCM_RIGHTS: c_int = 0x01; pub const NCCS: usize = 20; -pub const O_ACCMODE: ::c_int = 0x3; -pub const O_RDONLY: ::c_int = 0; -pub const O_WRONLY: ::c_int = 1; -pub const O_RDWR: ::c_int = 2; -pub const O_APPEND: ::c_int = 8; -pub const O_CREAT: ::c_int = 512; -pub const O_TRUNC: ::c_int = 1024; -pub const O_EXCL: ::c_int = 2048; -pub const O_ASYNC: ::c_int = 0x40; -pub const O_SYNC: ::c_int = 0x80; -pub const O_NONBLOCK: ::c_int = 0x4; -pub const O_NOFOLLOW: ::c_int = 0x100; -pub const O_SHLOCK: ::c_int = 0x10; -pub const O_EXLOCK: ::c_int = 0x20; -pub const O_FSYNC: ::c_int = O_SYNC; -pub const O_NDELAY: ::c_int = O_NONBLOCK; - -pub const F_GETOWN: ::c_int = 5; -pub const F_SETOWN: ::c_int = 6; - -pub const F_RDLCK: ::c_short = 1; -pub const F_UNLCK: ::c_short = 2; -pub const F_WRLCK: ::c_short = 3; - -pub const MNT_RDONLY: ::c_int = 0x00000001; -pub const MNT_SYNCHRONOUS: ::c_int = 0x00000002; -pub const MNT_NOEXEC: ::c_int = 0x00000004; -pub const MNT_NOSUID: ::c_int = 0x00000008; -pub const MNT_ASYNC: ::c_int = 0x00000040; -pub const MNT_EXPORTED: ::c_int = 0x00000100; -pub const MNT_UPDATE: ::c_int = 0x00010000; -pub const MNT_RELOAD: ::c_int = 0x00040000; -pub const MNT_FORCE: ::c_int = 0x00080000; - -pub const Q_SYNC: ::c_int = 0x600; -pub const Q_QUOTAON: ::c_int = 0x100; -pub const Q_QUOTAOFF: ::c_int = 0x200; - -pub const TCIOFF: ::c_int = 3; -pub const TCION: ::c_int = 4; -pub const TCOOFF: ::c_int = 1; -pub const TCOON: ::c_int = 2; -pub const TCIFLUSH: ::c_int = 1; -pub const TCOFLUSH: ::c_int = 2; -pub const TCIOFLUSH: ::c_int = 3; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; +pub const O_ACCMODE: c_int = 0x3; +pub const O_RDONLY: c_int = 0; +pub const O_WRONLY: c_int = 1; +pub const O_RDWR: c_int = 2; +pub const O_APPEND: c_int = 8; +pub const O_CREAT: c_int = 512; +pub const O_TRUNC: c_int = 1024; +pub const O_EXCL: c_int = 2048; +pub const O_ASYNC: c_int = 0x40; +pub const O_SYNC: c_int = 0x80; +pub const O_NONBLOCK: c_int = 0x4; +pub const O_NOFOLLOW: c_int = 0x100; +pub const O_SHLOCK: c_int = 0x10; +pub const O_EXLOCK: c_int = 0x20; +pub const O_FSYNC: c_int = O_SYNC; +pub const O_NDELAY: c_int = O_NONBLOCK; + +pub const F_GETOWN: c_int = 5; +pub const F_SETOWN: c_int = 6; + +pub const F_RDLCK: c_short = 1; +pub const F_UNLCK: c_short = 2; +pub const F_WRLCK: c_short = 3; + +pub const MNT_RDONLY: c_int = 0x00000001; +pub const MNT_SYNCHRONOUS: c_int = 0x00000002; +pub const MNT_NOEXEC: c_int = 0x00000004; +pub const MNT_NOSUID: c_int = 0x00000008; +pub const MNT_ASYNC: c_int = 0x00000040; +pub const MNT_EXPORTED: c_int = 0x00000100; +pub const MNT_UPDATE: c_int = 0x00010000; +pub const MNT_RELOAD: c_int = 0x00040000; +pub const MNT_FORCE: c_int = 0x00080000; + +pub const Q_SYNC: c_int = 0x600; +pub const Q_QUOTAON: c_int = 0x100; +pub const Q_QUOTAOFF: c_int = 0x200; + +pub const TCIOFF: c_int = 3; +pub const TCION: c_int = 4; +pub const TCOOFF: c_int = 1; +pub const TCOON: c_int = 2; +pub const TCIFLUSH: c_int = 1; +pub const TCOFLUSH: c_int = 2; +pub const TCIOFLUSH: c_int = 3; +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; pub const VEOF: usize = 0; pub const VEOL: usize = 1; pub const VEOL2: usize = 2; @@ -396,225 +398,225 @@ pub const VDISCARD: usize = 15; pub const VMIN: usize = 16; pub const VTIME: usize = 17; pub const VSTATUS: usize = 18; -pub const _POSIX_VDISABLE: ::cc_t = 0xff; -pub const IGNBRK: ::tcflag_t = 0x00000001; -pub const BRKINT: ::tcflag_t = 0x00000002; -pub const IGNPAR: ::tcflag_t = 0x00000004; -pub const PARMRK: ::tcflag_t = 0x00000008; -pub const INPCK: ::tcflag_t = 0x00000010; -pub const ISTRIP: ::tcflag_t = 0x00000020; -pub const INLCR: ::tcflag_t = 0x00000040; -pub const IGNCR: ::tcflag_t = 0x00000080; -pub const ICRNL: ::tcflag_t = 0x00000100; -pub const IXON: ::tcflag_t = 0x00000200; -pub const IXOFF: ::tcflag_t = 0x00000400; -pub const IXANY: ::tcflag_t = 0x00000800; -pub const IMAXBEL: ::tcflag_t = 0x00002000; -pub const OPOST: ::tcflag_t = 0x1; -pub const ONLCR: ::tcflag_t = 0x2; -pub const OXTABS: ::tcflag_t = 0x4; -pub const ONOEOT: ::tcflag_t = 0x8; -pub const CIGNORE: ::tcflag_t = 0x00000001; -pub const CSIZE: ::tcflag_t = 0x00000300; -pub const CS5: ::tcflag_t = 0x00000000; -pub const CS6: ::tcflag_t = 0x00000100; -pub const CS7: ::tcflag_t = 0x00000200; -pub const CS8: ::tcflag_t = 0x00000300; -pub const CSTOPB: ::tcflag_t = 0x00000400; -pub const CREAD: ::tcflag_t = 0x00000800; -pub const PARENB: ::tcflag_t = 0x00001000; -pub const PARODD: ::tcflag_t = 0x00002000; -pub const HUPCL: ::tcflag_t = 0x00004000; -pub const CLOCAL: ::tcflag_t = 0x00008000; -pub const ECHOKE: ::tcflag_t = 0x00000001; -pub const ECHOE: ::tcflag_t = 0x00000002; -pub const ECHOK: ::tcflag_t = 0x00000004; -pub const ECHO: ::tcflag_t = 0x00000008; -pub const ECHONL: ::tcflag_t = 0x00000010; -pub const ECHOPRT: ::tcflag_t = 0x00000020; -pub const ECHOCTL: ::tcflag_t = 0x00000040; -pub const ISIG: ::tcflag_t = 0x00000080; -pub const ICANON: ::tcflag_t = 0x00000100; -pub const ALTWERASE: ::tcflag_t = 0x00000200; -pub const IEXTEN: ::tcflag_t = 0x00000400; -pub const EXTPROC: ::tcflag_t = 0x00000800; -pub const TOSTOP: ::tcflag_t = 0x00400000; -pub const FLUSHO: ::tcflag_t = 0x00800000; -pub const NOKERNINFO: ::tcflag_t = 0x02000000; -pub const PENDIN: ::tcflag_t = 0x20000000; -pub const NOFLSH: ::tcflag_t = 0x80000000; -pub const MDMBUF: ::tcflag_t = 0x00100000; - -pub const WNOHANG: ::c_int = 0x00000001; -pub const WUNTRACED: ::c_int = 0x00000002; - -pub const RTLD_LAZY: ::c_int = 0x1; -pub const RTLD_NOW: ::c_int = 0x2; -pub const RTLD_NEXT: *mut ::c_void = -1isize as *mut ::c_void; -pub const RTLD_DEFAULT: *mut ::c_void = -2isize as *mut ::c_void; -pub const RTLD_SELF: *mut ::c_void = -3isize as *mut ::c_void; - -pub const LOG_CRON: ::c_int = 9 << 3; -pub const LOG_AUTHPRIV: ::c_int = 10 << 3; -pub const LOG_FTP: ::c_int = 11 << 3; -pub const LOG_PERROR: ::c_int = 0x20; - -pub const TCP_NODELAY: ::c_int = 1; -pub const TCP_MAXSEG: ::c_int = 2; +pub const _POSIX_VDISABLE: crate::cc_t = 0xff; +pub const IGNBRK: crate::tcflag_t = 0x00000001; +pub const BRKINT: crate::tcflag_t = 0x00000002; +pub const IGNPAR: crate::tcflag_t = 0x00000004; +pub const PARMRK: crate::tcflag_t = 0x00000008; +pub const INPCK: crate::tcflag_t = 0x00000010; +pub const ISTRIP: crate::tcflag_t = 0x00000020; +pub const INLCR: crate::tcflag_t = 0x00000040; +pub const IGNCR: crate::tcflag_t = 0x00000080; +pub const ICRNL: crate::tcflag_t = 0x00000100; +pub const IXON: crate::tcflag_t = 0x00000200; +pub const IXOFF: crate::tcflag_t = 0x00000400; +pub const IXANY: crate::tcflag_t = 0x00000800; +pub const IMAXBEL: crate::tcflag_t = 0x00002000; +pub const OPOST: crate::tcflag_t = 0x1; +pub const ONLCR: crate::tcflag_t = 0x2; +pub const OXTABS: crate::tcflag_t = 0x4; +pub const ONOEOT: crate::tcflag_t = 0x8; +pub const CIGNORE: crate::tcflag_t = 0x00000001; +pub const CSIZE: crate::tcflag_t = 0x00000300; +pub const CS5: crate::tcflag_t = 0x00000000; +pub const CS6: crate::tcflag_t = 0x00000100; +pub const CS7: crate::tcflag_t = 0x00000200; +pub const CS8: crate::tcflag_t = 0x00000300; +pub const CSTOPB: crate::tcflag_t = 0x00000400; +pub const CREAD: crate::tcflag_t = 0x00000800; +pub const PARENB: crate::tcflag_t = 0x00001000; +pub const PARODD: crate::tcflag_t = 0x00002000; +pub const HUPCL: crate::tcflag_t = 0x00004000; +pub const CLOCAL: crate::tcflag_t = 0x00008000; +pub const ECHOKE: crate::tcflag_t = 0x00000001; +pub const ECHOE: crate::tcflag_t = 0x00000002; +pub const ECHOK: crate::tcflag_t = 0x00000004; +pub const ECHO: crate::tcflag_t = 0x00000008; +pub const ECHONL: crate::tcflag_t = 0x00000010; +pub const ECHOPRT: crate::tcflag_t = 0x00000020; +pub const ECHOCTL: crate::tcflag_t = 0x00000040; +pub const ISIG: crate::tcflag_t = 0x00000080; +pub const ICANON: crate::tcflag_t = 0x00000100; +pub const ALTWERASE: crate::tcflag_t = 0x00000200; +pub const IEXTEN: crate::tcflag_t = 0x00000400; +pub const EXTPROC: crate::tcflag_t = 0x00000800; +pub const TOSTOP: crate::tcflag_t = 0x00400000; +pub const FLUSHO: crate::tcflag_t = 0x00800000; +pub const NOKERNINFO: crate::tcflag_t = 0x02000000; +pub const PENDIN: crate::tcflag_t = 0x20000000; +pub const NOFLSH: crate::tcflag_t = 0x80000000; +pub const MDMBUF: crate::tcflag_t = 0x00100000; + +pub const WNOHANG: c_int = 0x00000001; +pub const WUNTRACED: c_int = 0x00000002; + +pub const RTLD_LAZY: c_int = 0x1; +pub const RTLD_NOW: c_int = 0x2; +pub const RTLD_NEXT: *mut c_void = -1isize as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = -2isize as *mut c_void; +pub const RTLD_SELF: *mut c_void = -3isize as *mut c_void; + +pub const LOG_CRON: c_int = 9 << 3; +pub const LOG_AUTHPRIV: c_int = 10 << 3; +pub const LOG_FTP: c_int = 11 << 3; +pub const LOG_PERROR: c_int = 0x20; + +pub const TCP_NODELAY: c_int = 1; +pub const TCP_MAXSEG: c_int = 2; pub const PIPE_BUF: usize = 512; // si_code values for SIGBUS signal -pub const BUS_ADRALN: ::c_int = 1; -pub const BUS_ADRERR: ::c_int = 2; -pub const BUS_OBJERR: ::c_int = 3; +pub const BUS_ADRALN: c_int = 1; +pub const BUS_ADRERR: c_int = 2; +pub const BUS_OBJERR: c_int = 3; // si_code values for SIGCHLD signal -pub const CLD_EXITED: ::c_int = 1; -pub const CLD_KILLED: ::c_int = 2; -pub const CLD_DUMPED: ::c_int = 3; -pub const CLD_TRAPPED: ::c_int = 4; -pub const CLD_STOPPED: ::c_int = 5; -pub const CLD_CONTINUED: ::c_int = 6; - -pub const POLLIN: ::c_short = 0x1; -pub const POLLPRI: ::c_short = 0x2; -pub const POLLOUT: ::c_short = 0x4; -pub const POLLERR: ::c_short = 0x8; -pub const POLLHUP: ::c_short = 0x10; -pub const POLLNVAL: ::c_short = 0x20; -pub const POLLRDNORM: ::c_short = 0x040; -pub const POLLWRNORM: ::c_short = 0x004; -pub const POLLRDBAND: ::c_short = 0x080; -pub const POLLWRBAND: ::c_short = 0x100; - -pub const BIOCGBLEN: ::c_ulong = 0x40044266; -pub const BIOCSBLEN: ::c_ulong = 0xc0044266; -pub const BIOCFLUSH: ::c_uint = 0x20004268; -pub const BIOCPROMISC: ::c_uint = 0x20004269; -pub const BIOCGDLT: ::c_ulong = 0x4004426a; -pub const BIOCGETIF: ::c_ulong = 0x4020426b; -pub const BIOCSETIF: ::c_ulong = 0x8020426c; -pub const BIOCGSTATS: ::c_ulong = 0x4008426f; -pub const BIOCIMMEDIATE: ::c_ulong = 0x80044270; -pub const BIOCVERSION: ::c_ulong = 0x40044271; -pub const BIOCGHDRCMPLT: ::c_ulong = 0x40044274; -pub const BIOCSHDRCMPLT: ::c_ulong = 0x80044275; -pub const SIOCGIFADDR: ::c_ulong = 0xc0206921; - -pub const REG_BASIC: ::c_int = 0o0000; -pub const REG_EXTENDED: ::c_int = 0o0001; -pub const REG_ICASE: ::c_int = 0o0002; -pub const REG_NOSUB: ::c_int = 0o0004; -pub const REG_NEWLINE: ::c_int = 0o0010; -pub const REG_NOSPEC: ::c_int = 0o0020; -pub const REG_PEND: ::c_int = 0o0040; -pub const REG_DUMP: ::c_int = 0o0200; - -pub const REG_NOMATCH: ::c_int = 1; -pub const REG_BADPAT: ::c_int = 2; -pub const REG_ECOLLATE: ::c_int = 3; -pub const REG_ECTYPE: ::c_int = 4; -pub const REG_EESCAPE: ::c_int = 5; -pub const REG_ESUBREG: ::c_int = 6; -pub const REG_EBRACK: ::c_int = 7; -pub const REG_EPAREN: ::c_int = 8; -pub const REG_EBRACE: ::c_int = 9; -pub const REG_BADBR: ::c_int = 10; -pub const REG_ERANGE: ::c_int = 11; -pub const REG_ESPACE: ::c_int = 12; -pub const REG_BADRPT: ::c_int = 13; -pub const REG_EMPTY: ::c_int = 14; -pub const REG_ASSERT: ::c_int = 15; -pub const REG_INVARG: ::c_int = 16; -pub const REG_ATOI: ::c_int = 255; -pub const REG_ITOA: ::c_int = 0o0400; - -pub const REG_NOTBOL: ::c_int = 0o00001; -pub const REG_NOTEOL: ::c_int = 0o00002; -pub const REG_STARTEND: ::c_int = 0o00004; -pub const REG_TRACE: ::c_int = 0o00400; -pub const REG_LARGE: ::c_int = 0o01000; -pub const REG_BACKR: ::c_int = 0o02000; - -pub const TIOCCBRK: ::c_uint = 0x2000747a; -pub const TIOCSBRK: ::c_uint = 0x2000747b; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; - -pub const ITIMER_REAL: ::c_int = 0; -pub const ITIMER_VIRTUAL: ::c_int = 1; -pub const ITIMER_PROF: ::c_int = 2; +pub const CLD_EXITED: c_int = 1; +pub const CLD_KILLED: c_int = 2; +pub const CLD_DUMPED: c_int = 3; +pub const CLD_TRAPPED: c_int = 4; +pub const CLD_STOPPED: c_int = 5; +pub const CLD_CONTINUED: c_int = 6; + +pub const POLLIN: c_short = 0x1; +pub const POLLPRI: c_short = 0x2; +pub const POLLOUT: c_short = 0x4; +pub const POLLERR: c_short = 0x8; +pub const POLLHUP: c_short = 0x10; +pub const POLLNVAL: c_short = 0x20; +pub const POLLRDNORM: c_short = 0x040; +pub const POLLWRNORM: c_short = 0x004; +pub const POLLRDBAND: c_short = 0x080; +pub const POLLWRBAND: c_short = 0x100; + +pub const BIOCGBLEN: c_ulong = 0x40044266; +pub const BIOCSBLEN: c_ulong = 0xc0044266; +pub const BIOCFLUSH: c_uint = 0x20004268; +pub const BIOCPROMISC: c_uint = 0x20004269; +pub const BIOCGDLT: c_ulong = 0x4004426a; +pub const BIOCGETIF: c_ulong = 0x4020426b; +pub const BIOCSETIF: c_ulong = 0x8020426c; +pub const BIOCGSTATS: c_ulong = 0x4008426f; +pub const BIOCIMMEDIATE: c_ulong = 0x80044270; +pub const BIOCVERSION: c_ulong = 0x40044271; +pub const BIOCGHDRCMPLT: c_ulong = 0x40044274; +pub const BIOCSHDRCMPLT: c_ulong = 0x80044275; +pub const SIOCGIFADDR: c_ulong = 0xc0206921; + +pub const REG_BASIC: c_int = 0o0000; +pub const REG_EXTENDED: c_int = 0o0001; +pub const REG_ICASE: c_int = 0o0002; +pub const REG_NOSUB: c_int = 0o0004; +pub const REG_NEWLINE: c_int = 0o0010; +pub const REG_NOSPEC: c_int = 0o0020; +pub const REG_PEND: c_int = 0o0040; +pub const REG_DUMP: c_int = 0o0200; + +pub const REG_NOMATCH: c_int = 1; +pub const REG_BADPAT: c_int = 2; +pub const REG_ECOLLATE: c_int = 3; +pub const REG_ECTYPE: c_int = 4; +pub const REG_EESCAPE: c_int = 5; +pub const REG_ESUBREG: c_int = 6; +pub const REG_EBRACK: c_int = 7; +pub const REG_EPAREN: c_int = 8; +pub const REG_EBRACE: c_int = 9; +pub const REG_BADBR: c_int = 10; +pub const REG_ERANGE: c_int = 11; +pub const REG_ESPACE: c_int = 12; +pub const REG_BADRPT: c_int = 13; +pub const REG_EMPTY: c_int = 14; +pub const REG_ASSERT: c_int = 15; +pub const REG_INVARG: c_int = 16; +pub const REG_ATOI: c_int = 255; +pub const REG_ITOA: c_int = 0o0400; + +pub const REG_NOTBOL: c_int = 0o00001; +pub const REG_NOTEOL: c_int = 0o00002; +pub const REG_STARTEND: c_int = 0o00004; +pub const REG_TRACE: c_int = 0o00400; +pub const REG_LARGE: c_int = 0o01000; +pub const REG_BACKR: c_int = 0o02000; + +pub const TIOCCBRK: c_uint = 0x2000747a; +pub const TIOCSBRK: c_uint = 0x2000747b; + +pub const PRIO_PROCESS: c_int = 0; +pub const PRIO_PGRP: c_int = 1; +pub const PRIO_USER: c_int = 2; + +pub const ITIMER_REAL: c_int = 0; +pub const ITIMER_VIRTUAL: c_int = 1; +pub const ITIMER_PROF: c_int = 2; // net/route.h -pub const RTF_UP: ::c_int = 0x1; -pub const RTF_GATEWAY: ::c_int = 0x2; -pub const RTF_HOST: ::c_int = 0x4; -pub const RTF_REJECT: ::c_int = 0x8; -pub const RTF_DYNAMIC: ::c_int = 0x10; -pub const RTF_MODIFIED: ::c_int = 0x20; -pub const RTF_DONE: ::c_int = 0x40; -pub const RTF_STATIC: ::c_int = 0x800; -pub const RTF_BLACKHOLE: ::c_int = 0x1000; -pub const RTF_PROTO2: ::c_int = 0x4000; -pub const RTF_PROTO1: ::c_int = 0x8000; +pub const RTF_UP: c_int = 0x1; +pub const RTF_GATEWAY: c_int = 0x2; +pub const RTF_HOST: c_int = 0x4; +pub const RTF_REJECT: c_int = 0x8; +pub const RTF_DYNAMIC: c_int = 0x10; +pub const RTF_MODIFIED: c_int = 0x20; +pub const RTF_DONE: c_int = 0x40; +pub const RTF_STATIC: c_int = 0x800; +pub const RTF_BLACKHOLE: c_int = 0x1000; +pub const RTF_PROTO2: c_int = 0x4000; +pub const RTF_PROTO1: c_int = 0x8000; // Message types -pub const RTM_ADD: ::c_int = 0x1; -pub const RTM_DELETE: ::c_int = 0x2; -pub const RTM_CHANGE: ::c_int = 0x3; -pub const RTM_GET: ::c_int = 0x4; -pub const RTM_LOSING: ::c_int = 0x5; -pub const RTM_REDIRECT: ::c_int = 0x6; -pub const RTM_MISS: ::c_int = 0x7; +pub const RTM_ADD: c_int = 0x1; +pub const RTM_DELETE: c_int = 0x2; +pub const RTM_CHANGE: c_int = 0x3; +pub const RTM_GET: c_int = 0x4; +pub const RTM_LOSING: c_int = 0x5; +pub const RTM_REDIRECT: c_int = 0x6; +pub const RTM_MISS: c_int = 0x7; // Bitmask values for rtm_addrs. -pub const RTA_DST: ::c_int = 0x1; -pub const RTA_GATEWAY: ::c_int = 0x2; -pub const RTA_NETMASK: ::c_int = 0x4; -pub const RTA_GENMASK: ::c_int = 0x8; -pub const RTA_IFP: ::c_int = 0x10; -pub const RTA_IFA: ::c_int = 0x20; -pub const RTA_AUTHOR: ::c_int = 0x40; -pub const RTA_BRD: ::c_int = 0x80; +pub const RTA_DST: c_int = 0x1; +pub const RTA_GATEWAY: c_int = 0x2; +pub const RTA_NETMASK: c_int = 0x4; +pub const RTA_GENMASK: c_int = 0x8; +pub const RTA_IFP: c_int = 0x10; +pub const RTA_IFA: c_int = 0x20; +pub const RTA_AUTHOR: c_int = 0x40; +pub const RTA_BRD: c_int = 0x80; // Index offsets for sockaddr array for alternate internal encoding. -pub const RTAX_DST: ::c_int = 0; -pub const RTAX_GATEWAY: ::c_int = 1; -pub const RTAX_NETMASK: ::c_int = 2; -pub const RTAX_GENMASK: ::c_int = 3; -pub const RTAX_IFP: ::c_int = 4; -pub const RTAX_IFA: ::c_int = 5; -pub const RTAX_AUTHOR: ::c_int = 6; -pub const RTAX_BRD: ::c_int = 7; +pub const RTAX_DST: c_int = 0; +pub const RTAX_GATEWAY: c_int = 1; +pub const RTAX_NETMASK: c_int = 2; +pub const RTAX_GENMASK: c_int = 3; +pub const RTAX_IFP: c_int = 4; +pub const RTAX_IFA: c_int = 5; +pub const RTAX_AUTHOR: c_int = 6; +pub const RTAX_BRD: c_int = 7; f! { - pub fn CMSG_FIRSTHDR(mhdr: *const ::msghdr) -> *mut ::cmsghdr { - if (*mhdr).msg_controllen as usize >= ::mem::size_of::<::cmsghdr>() { - (*mhdr).msg_control as *mut ::cmsghdr + pub fn CMSG_FIRSTHDR(mhdr: *const crate::msghdr) -> *mut cmsghdr { + if (*mhdr).msg_controllen as usize >= crate::mem::size_of::() { + (*mhdr).msg_control as *mut cmsghdr } else { core::ptr::null_mut() } } - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { + let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); return; } - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { + let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0; } - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { + let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] |= 1 << (fd % bits); return; @@ -628,23 +630,23 @@ f! { } safe_f! { - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + pub {const} fn WTERMSIG(status: c_int) -> c_int { status & 0o177 } - pub {const} fn WIFEXITED(status: ::c_int) -> bool { + pub {const} fn WIFEXITED(status: c_int) -> bool { (status & 0o177) == 0 } - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + pub {const} fn WEXITSTATUS(status: c_int) -> c_int { status >> 8 } - pub {const} fn WCOREDUMP(status: ::c_int) -> bool { + pub {const} fn WCOREDUMP(status: c_int) -> bool { (status & 0o200) != 0 } - pub {const} fn QCMD(cmd: ::c_int, type_: ::c_int) -> ::c_int { + pub {const} fn QCMD(cmd: c_int, type_: c_int) -> c_int { (cmd << 8) | (type_ & 0x00ff) } } @@ -654,49 +656,49 @@ extern "C" { all(target_os = "macos", target_arch = "x86"), link_name = "getrlimit$UNIX2003" )] - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; + pub fn getrlimit(resource: c_int, rlim: *mut crate::rlimit) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "setrlimit$UNIX2003" )] - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; + pub fn setrlimit(resource: c_int, rlim: *const crate::rlimit) -> c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - pub fn abs(i: ::c_int) -> ::c_int; - pub fn labs(i: ::c_long) -> ::c_long; + pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; + pub fn abs(i: c_int) -> c_int; + pub fn labs(i: c_long) -> c_long; #[cfg_attr( all(target_os = "freebsd", any(freebsd12, freebsd11, freebsd10)), link_name = "rand@FBSD_1.0" )] - pub fn rand() -> ::c_int; + pub fn rand() -> c_int; #[cfg_attr( all(target_os = "freebsd", any(freebsd12, freebsd11, freebsd10)), link_name = "srand@FBSD_1.0" )] - pub fn srand(seed: ::c_uint); - - 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; - pub fn syscall(num: ::c_int, ...) -> ::c_int; + pub fn srand(seed: c_uint); + + pub fn getifaddrs(ifap: *mut *mut crate::ifaddrs) -> c_int; + pub fn freeifaddrs(ifa: *mut crate::ifaddrs); + pub fn setgroups(ngroups: c_int, ptr: *const crate::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; + pub fn syscall(num: c_int, ...) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getpwent50")] pub fn getpwent() -> *mut passwd; pub fn setpwent(); pub fn endpwent(); pub fn endgrent(); - pub fn getgrent() -> *mut ::group; + pub fn getgrent() -> *mut crate::group; - pub fn getprogname() -> *const ::c_char; - pub fn setprogname(name: *const ::c_char); - pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; + pub fn getprogname() -> *const c_char; + pub fn setprogname(name: *const c_char); + pub fn getloadavg(loadavg: *mut c_double, nelem: c_int) -> c_int; pub fn if_nameindex() -> *mut if_nameindex; pub fn if_freenameindex(ptr: *mut if_nameindex); - pub fn getpeereid(socket: ::c_int, euid: *mut ::uid_t, egid: *mut ::gid_t) -> ::c_int; + pub fn getpeereid(socket: c_int, euid: *mut crate::uid_t, egid: *mut crate::gid_t) -> c_int; #[cfg_attr( all(target_os = "macos", not(target_arch = "aarch64")), @@ -708,21 +710,21 @@ extern "C" { link_name = "glob@FBSD_1.0" )] pub fn glob( - pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t, - ) -> ::c_int; + pattern: *const c_char, + flags: c_int, + errfunc: Option c_int>, + pglob: *mut crate::glob_t, + ) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__globfree30")] #[cfg_attr( all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "globfree@FBSD_1.0" )] - pub fn globfree(pglob: *mut ::glob_t); + pub fn globfree(pglob: *mut crate::glob_t); - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn posix_madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + pub fn shm_unlink(name: *const c_char) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86_64"), @@ -732,7 +734,7 @@ extern "C" { all(target_os = "macos", target_arch = "x86"), link_name = "seekdir$INODE64$UNIX2003" )] - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + pub fn seekdir(dirp: *mut crate::DIR, loc: c_long); #[cfg_attr( all(target_os = "macos", target_arch = "x86_64"), @@ -742,146 +744,145 @@ extern "C" { all(target_os = "macos", target_arch = "x86"), link_name = "telldir$INODE64$UNIX2003" )] - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn telldir(dirp: *mut crate::DIR) -> c_long; + pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "msync$UNIX2003" )] #[cfg_attr(target_os = "netbsd", link_name = "__msync13")] - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "recvfrom$UNIX2003" )] pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; + socket: c_int, + buf: *mut c_void, + len: size_t, + flags: c_int, + addr: *mut crate::sockaddr, + addrlen: *mut crate::socklen_t, + ) -> ssize_t; + pub fn mkstemps(template: *mut c_char, suffixlen: c_int) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__futimes50")] - pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; + pub fn futimes(fd: c_int, times: *const crate::timeval) -> c_int; + pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "bind$UNIX2003" )] - pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; + pub fn bind( + socket: c_int, + address: *const crate::sockaddr, + address_len: crate::socklen_t, + ) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "writev$UNIX2003" )] - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "readv$UNIX2003" )] - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn readv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "sendmsg$UNIX2003" )] - pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn sendmsg(fd: c_int, msg: *const crate::msghdr, flags: c_int) -> ssize_t; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "recvmsg$UNIX2003" )] - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn recvmsg(fd: c_int, msg: *mut crate::msghdr, flags: c_int) -> ssize_t; pub fn sync(); pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; + gid: crate::gid_t, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "sigaltstack$UNIX2003" )] #[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 sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> c_int; + pub fn sigsuspend(mask: *const crate::sigset_t) -> c_int; + pub fn sem_close(sem: *mut sem_t) -> c_int; + pub fn getdtablesize() -> c_int; pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; + name: *const c_char, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_sigmask$UNIX2003" )] - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + pub fn pthread_sigmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; + pub fn sem_open(name: *const c_char, oflag: c_int, ...) -> *mut sem_t; + pub fn getgrnam(name: *const c_char) -> *mut crate::group; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_cancel$UNIX2003" )] - pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; - pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; - pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; + pub fn pthread_cancel(thread: crate::pthread_t) -> c_int; + pub fn pthread_kill(thread: crate::pthread_t, sig: c_int) -> c_int; + pub fn sched_get_priority_min(policy: c_int) -> c_int; + pub fn sched_get_priority_max(policy: c_int) -> c_int; + pub fn sem_unlink(name: *const c_char) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam_r50")] pub fn getpwnam_r( - name: *const ::c_char, + name: *const c_char, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid_r50")] pub fn getpwuid_r( - uid: ::uid_t, + uid: crate::uid_t, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "sigwait$UNIX2003" )] - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int; pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + prepare: Option, + parent: Option, + child: Option, + ) -> c_int; + pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "popen$UNIX2003" )] - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn faccessat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::c_int, - flags: ::c_int, - ) -> ::c_int; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut crate::FILE; + pub fn faccessat(dirfd: c_int, pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - pub fn acct(filename: *const ::c_char) -> ::c_int; + native: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + f: extern "C" fn(*mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; + pub fn acct(filename: *const c_char) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "wait4$UNIX2003" @@ -891,79 +892,79 @@ extern "C" { link_name = "wait4@FBSD_1.0" )] pub fn wait4( - pid: ::pid_t, - status: *mut ::c_int, - options: ::c_int, - rusage: *mut ::rusage, - ) -> ::pid_t; + pid: crate::pid_t, + status: *mut c_int, + options: c_int, + rusage: *mut crate::rusage, + ) -> crate::pid_t; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "getitimer$UNIX2003" )] - pub fn getitimer(which: ::c_int, curr_value: *mut ::itimerval) -> ::c_int; + pub fn getitimer(which: c_int, curr_value: *mut crate::itimerval) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "setitimer$UNIX2003" )] pub fn setitimer( - which: ::c_int, - new_value: *const ::itimerval, - old_value: *mut ::itimerval, - ) -> ::c_int; + which: c_int, + new_value: *const crate::itimerval, + old_value: *mut crate::itimerval, + ) -> c_int; - pub fn regcomp(preg: *mut regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int; + pub fn regcomp(preg: *mut regex_t, pattern: *const c_char, cflags: c_int) -> c_int; pub fn regexec( preg: *const regex_t, - input: *const ::c_char, - nmatch: ::size_t, + input: *const c_char, + nmatch: size_t, pmatch: *mut regmatch_t, - eflags: ::c_int, - ) -> ::c_int; + eflags: c_int, + ) -> c_int; pub fn regerror( - errcode: ::c_int, + errcode: c_int, preg: *const regex_t, - errbuf: *mut ::c_char, - errbuf_size: ::size_t, - ) -> ::size_t; + errbuf: *mut c_char, + errbuf_size: size_t, + ) -> size_t; pub fn regfree(preg: *mut regex_t); pub fn arc4random() -> u32; - pub fn arc4random_buf(buf: *mut ::c_void, size: ::size_t); + pub fn arc4random_buf(buf: *mut c_void, size: size_t); pub fn arc4random_uniform(l: u32) -> u32; - pub fn drand48() -> ::c_double; - pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double; - pub fn lrand48() -> ::c_long; - pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn mrand48() -> ::c_long; - pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn srand48(seed: ::c_long); - pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort; - pub fn lcong48(p: *mut ::c_ushort); + pub fn drand48() -> c_double; + pub fn erand48(xseed: *mut c_ushort) -> c_double; + pub fn lrand48() -> c_long; + pub fn nrand48(xseed: *mut c_ushort) -> c_long; + pub fn mrand48() -> c_long; + pub fn jrand48(xseed: *mut c_ushort) -> c_long; + pub fn srand48(seed: c_long); + pub fn seed48(xseed: *mut c_ushort) -> *mut c_ushort; + pub fn lcong48(p: *mut c_ushort); pub fn getopt_long( - argc: ::c_int, + argc: c_int, argv: *const *mut c_char, optstring: *const c_char, longopts: *const option, - longindex: *mut ::c_int, - ) -> ::c_int; + 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; + buf: *mut c_char, + maxsize: size_t, + format: *const c_char, + timeptr: *const crate::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; + buf: *mut c_char, + maxsize: size_t, + format: *const c_char, + timeptr: *const crate::tm, + locale: crate::locale_t, + ) -> size_t; } cfg_if! { diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index 496a66c08955f..6cd40777468db 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -1,30 +1,32 @@ +use crate::{c_int, c_short, c_uint, c_ushort, c_void, off_t, size_t, ssize_t}; + pub type wchar_t = i32; pub type time_t = i64; pub type mode_t = u32; pub type nlink_t = u32; pub type ino_t = u64; -pub type pthread_key_t = ::c_int; +pub type pthread_key_t = c_int; pub type rlim_t = u64; -pub type speed_t = ::c_uint; -pub type tcflag_t = ::c_uint; +pub type speed_t = c_uint; +pub type tcflag_t = c_uint; pub type nl_item = c_long; -pub type clockid_t = ::c_int; +pub type clockid_t = c_int; pub type id_t = u32; pub type sem_t = *mut sem; pub type key_t = c_long; #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { +impl Copy for timezone {} +impl Clone for timezone { fn clone(&self) -> timezone { *self } } #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum sem {} -impl ::Copy for sem {} -impl ::Clone for sem { +impl Copy for sem {} +impl Clone for sem { fn clone(&self) -> sem { *self } @@ -32,147 +34,147 @@ impl ::Clone for sem { s! { pub struct sched_param { - pub sched_priority: ::c_int, + pub sched_priority: c_int, } pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, + pub sa_flags: c_int, } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, + pub ss_sp: *mut c_void, + pub ss_size: size_t, + pub ss_flags: c_int, } pub struct in6_pktinfo { - pub ipi6_addr: ::in6_addr, - pub ipi6_ifindex: ::c_uint, + pub ipi6_addr: crate::in6_addr, + pub ipi6_ifindex: c_uint, } pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_cc: [::cc_t; ::NCCS], - pub c_ispeed: ::c_int, - pub c_ospeed: ::c_int, + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_cc: [crate::cc_t; crate::NCCS], + pub c_ispeed: c_int, + pub c_ospeed: c_int, } pub struct flock { - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - pub l_type: ::c_short, - pub l_whence: ::c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, + pub l_type: c_short, + pub l_whence: c_short, } pub struct ipc_perm { - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub mode: ::mode_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub mode: crate::mode_t, #[cfg(target_os = "openbsd")] - pub seq: ::c_ushort, + pub seq: c_ushort, #[cfg(target_os = "netbsd")] - pub _seq: ::c_ushort, + pub _seq: c_ushort, #[cfg(target_os = "openbsd")] - pub key: ::key_t, + pub key: crate::key_t, #[cfg(target_os = "netbsd")] - pub _key: ::key_t, + pub _key: crate::key_t, } pub struct ptrace_io_desc { - pub piod_op: ::c_int, - pub piod_offs: *mut ::c_void, - pub piod_addr: *mut ::c_void, - pub piod_len: ::size_t, + pub piod_op: c_int, + pub piod_offs: *mut c_void, + pub piod_addr: *mut c_void, + pub piod_len: size_t, } pub struct mmsghdr { - pub msg_hdr: ::msghdr, - pub msg_len: ::c_uint, + pub msg_hdr: crate::msghdr, + pub msg_len: c_uint, } } -pub const D_T_FMT: ::nl_item = 0; -pub const D_FMT: ::nl_item = 1; -pub const T_FMT: ::nl_item = 2; -pub const T_FMT_AMPM: ::nl_item = 3; -pub const AM_STR: ::nl_item = 4; -pub const PM_STR: ::nl_item = 5; - -pub const DAY_1: ::nl_item = 6; -pub const DAY_2: ::nl_item = 7; -pub const DAY_3: ::nl_item = 8; -pub const DAY_4: ::nl_item = 9; -pub const DAY_5: ::nl_item = 10; -pub const DAY_6: ::nl_item = 11; -pub const DAY_7: ::nl_item = 12; - -pub const ABDAY_1: ::nl_item = 13; -pub const ABDAY_2: ::nl_item = 14; -pub const ABDAY_3: ::nl_item = 15; -pub const ABDAY_4: ::nl_item = 16; -pub const ABDAY_5: ::nl_item = 17; -pub const ABDAY_6: ::nl_item = 18; -pub const ABDAY_7: ::nl_item = 19; - -pub const MON_1: ::nl_item = 20; -pub const MON_2: ::nl_item = 21; -pub const MON_3: ::nl_item = 22; -pub const MON_4: ::nl_item = 23; -pub const MON_5: ::nl_item = 24; -pub const MON_6: ::nl_item = 25; -pub const MON_7: ::nl_item = 26; -pub const MON_8: ::nl_item = 27; -pub const MON_9: ::nl_item = 28; -pub const MON_10: ::nl_item = 29; -pub const MON_11: ::nl_item = 30; -pub const MON_12: ::nl_item = 31; - -pub const ABMON_1: ::nl_item = 32; -pub const ABMON_2: ::nl_item = 33; -pub const ABMON_3: ::nl_item = 34; -pub const ABMON_4: ::nl_item = 35; -pub const ABMON_5: ::nl_item = 36; -pub const ABMON_6: ::nl_item = 37; -pub const ABMON_7: ::nl_item = 38; -pub const ABMON_8: ::nl_item = 39; -pub const ABMON_9: ::nl_item = 40; -pub const ABMON_10: ::nl_item = 41; -pub const ABMON_11: ::nl_item = 42; -pub const ABMON_12: ::nl_item = 43; - -pub const RADIXCHAR: ::nl_item = 44; -pub const THOUSEP: ::nl_item = 45; -pub const YESSTR: ::nl_item = 46; -pub const YESEXPR: ::nl_item = 47; -pub const NOSTR: ::nl_item = 48; -pub const NOEXPR: ::nl_item = 49; -pub const CRNCYSTR: ::nl_item = 50; - -pub const CODESET: ::nl_item = 51; - -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 2147483647; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 2; -pub const _IOLBF: ::c_int = 1; -pub const BUFSIZ: ::c_uint = 1024; -pub const FOPEN_MAX: ::c_uint = 20; -pub const FILENAME_MAX: ::c_uint = 1024; -pub const L_tmpnam: ::c_uint = 1024; -pub const O_NOCTTY: ::c_int = 32768; +pub const D_T_FMT: crate::nl_item = 0; +pub const D_FMT: crate::nl_item = 1; +pub const T_FMT: crate::nl_item = 2; +pub const T_FMT_AMPM: crate::nl_item = 3; +pub const AM_STR: crate::nl_item = 4; +pub const PM_STR: crate::nl_item = 5; + +pub const DAY_1: crate::nl_item = 6; +pub const DAY_2: crate::nl_item = 7; +pub const DAY_3: crate::nl_item = 8; +pub const DAY_4: crate::nl_item = 9; +pub const DAY_5: crate::nl_item = 10; +pub const DAY_6: crate::nl_item = 11; +pub const DAY_7: crate::nl_item = 12; + +pub const ABDAY_1: crate::nl_item = 13; +pub const ABDAY_2: crate::nl_item = 14; +pub const ABDAY_3: crate::nl_item = 15; +pub const ABDAY_4: crate::nl_item = 16; +pub const ABDAY_5: crate::nl_item = 17; +pub const ABDAY_6: crate::nl_item = 18; +pub const ABDAY_7: crate::nl_item = 19; + +pub const MON_1: crate::nl_item = 20; +pub const MON_2: crate::nl_item = 21; +pub const MON_3: crate::nl_item = 22; +pub const MON_4: crate::nl_item = 23; +pub const MON_5: crate::nl_item = 24; +pub const MON_6: crate::nl_item = 25; +pub const MON_7: crate::nl_item = 26; +pub const MON_8: crate::nl_item = 27; +pub const MON_9: crate::nl_item = 28; +pub const MON_10: crate::nl_item = 29; +pub const MON_11: crate::nl_item = 30; +pub const MON_12: crate::nl_item = 31; + +pub const ABMON_1: crate::nl_item = 32; +pub const ABMON_2: crate::nl_item = 33; +pub const ABMON_3: crate::nl_item = 34; +pub const ABMON_4: crate::nl_item = 35; +pub const ABMON_5: crate::nl_item = 36; +pub const ABMON_6: crate::nl_item = 37; +pub const ABMON_7: crate::nl_item = 38; +pub const ABMON_8: crate::nl_item = 39; +pub const ABMON_9: crate::nl_item = 40; +pub const ABMON_10: crate::nl_item = 41; +pub const ABMON_11: crate::nl_item = 42; +pub const ABMON_12: crate::nl_item = 43; + +pub const RADIXCHAR: crate::nl_item = 44; +pub const THOUSEP: crate::nl_item = 45; +pub const YESSTR: crate::nl_item = 46; +pub const YESEXPR: crate::nl_item = 47; +pub const NOSTR: crate::nl_item = 48; +pub const NOEXPR: crate::nl_item = 49; +pub const CRNCYSTR: crate::nl_item = 50; + +pub const CODESET: crate::nl_item = 51; + +pub const EXIT_FAILURE: c_int = 1; +pub const EXIT_SUCCESS: c_int = 0; +pub const RAND_MAX: c_int = 2147483647; +pub const EOF: c_int = -1; +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; +pub const _IOFBF: c_int = 0; +pub const _IONBF: c_int = 2; +pub const _IOLBF: c_int = 1; +pub const BUFSIZ: c_uint = 1024; +pub const FOPEN_MAX: c_uint = 20; +pub const FILENAME_MAX: c_uint = 1024; +pub const L_tmpnam: c_uint = 1024; +pub const O_NOCTTY: c_int = 32768; pub const S_IFIFO: mode_t = 0o1_0000; pub const S_IFCHR: mode_t = 0o2_0000; pub const S_IFBLK: mode_t = 0o6_0000; @@ -196,206 +198,206 @@ pub const S_IRWXO: mode_t = 0o0007; pub const S_IXOTH: mode_t = 0o0001; pub const S_IWOTH: mode_t = 0o0002; pub const S_IROTH: mode_t = 0o0004; -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; -pub const F_GETLK: ::c_int = 7; -pub const F_SETLK: ::c_int = 8; -pub const F_SETLKW: ::c_int = 9; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSEGV: ::c_int = 11; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; - -pub const PROT_NONE: ::c_int = 0; -pub const PROT_READ: ::c_int = 1; -pub const PROT_WRITE: ::c_int = 2; -pub const PROT_EXEC: ::c_int = 4; - -pub const MAP_FILE: ::c_int = 0x0000; -pub const MAP_SHARED: ::c_int = 0x0001; -pub const MAP_PRIVATE: ::c_int = 0x0002; -pub const MAP_FIXED: ::c_int = 0x0010; -pub const MAP_ANON: ::c_int = 0x1000; -pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; - -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; - -pub const IPC_CREAT: ::c_int = 0o001000; -pub const IPC_EXCL: ::c_int = 0o002000; -pub const IPC_NOWAIT: ::c_int = 0o004000; - -pub const IPC_PRIVATE: ::key_t = 0; - -pub const IPC_RMID: ::c_int = 0; -pub const IPC_SET: ::c_int = 1; -pub const IPC_STAT: ::c_int = 2; - -pub const IPC_R: ::c_int = 0o000400; -pub const IPC_W: ::c_int = 0o000200; -pub const IPC_M: ::c_int = 0o010000; - -pub const SHM_R: ::c_int = IPC_R; -pub const SHM_W: ::c_int = IPC_W; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const MS_ASYNC: ::c_int = 0x0001; - -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EDEADLK: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const EAGAIN: ::c_int = 35; -pub const EWOULDBLOCK: ::c_int = 35; -pub const EINPROGRESS: ::c_int = 36; -pub const EALREADY: ::c_int = 37; -pub const ENOTSOCK: ::c_int = 38; -pub const EDESTADDRREQ: ::c_int = 39; -pub const EMSGSIZE: ::c_int = 40; -pub const EPROTOTYPE: ::c_int = 41; -pub const ENOPROTOOPT: ::c_int = 42; -pub const EPROTONOSUPPORT: ::c_int = 43; -pub const ESOCKTNOSUPPORT: ::c_int = 44; -pub const EOPNOTSUPP: ::c_int = 45; -pub const EPFNOSUPPORT: ::c_int = 46; -pub const EAFNOSUPPORT: ::c_int = 47; -pub const EADDRINUSE: ::c_int = 48; -pub const EADDRNOTAVAIL: ::c_int = 49; -pub const ENETDOWN: ::c_int = 50; -pub const ENETUNREACH: ::c_int = 51; -pub const ENETRESET: ::c_int = 52; -pub const ECONNABORTED: ::c_int = 53; -pub const ECONNRESET: ::c_int = 54; -pub const ENOBUFS: ::c_int = 55; -pub const EISCONN: ::c_int = 56; -pub const ENOTCONN: ::c_int = 57; -pub const ESHUTDOWN: ::c_int = 58; -pub const ETOOMANYREFS: ::c_int = 59; -pub const ETIMEDOUT: ::c_int = 60; -pub const ECONNREFUSED: ::c_int = 61; -pub const ELOOP: ::c_int = 62; -pub const ENAMETOOLONG: ::c_int = 63; -pub const EHOSTDOWN: ::c_int = 64; -pub const EHOSTUNREACH: ::c_int = 65; -pub const ENOTEMPTY: ::c_int = 66; -pub const EPROCLIM: ::c_int = 67; -pub const EUSERS: ::c_int = 68; -pub const EDQUOT: ::c_int = 69; -pub const ESTALE: ::c_int = 70; -pub const EREMOTE: ::c_int = 71; -pub const EBADRPC: ::c_int = 72; -pub const ERPCMISMATCH: ::c_int = 73; -pub const EPROGUNAVAIL: ::c_int = 74; -pub const EPROGMISMATCH: ::c_int = 75; -pub const EPROCUNAVAIL: ::c_int = 76; -pub const ENOLCK: ::c_int = 77; -pub const ENOSYS: ::c_int = 78; -pub const EFTYPE: ::c_int = 79; -pub const EAUTH: ::c_int = 80; -pub const ENEEDAUTH: ::c_int = 81; - -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; - -pub const SIGTRAP: ::c_int = 5; - -pub const GLOB_APPEND: ::c_int = 0x0001; -pub const GLOB_DOOFFS: ::c_int = 0x0002; -pub const GLOB_ERR: ::c_int = 0x0004; -pub const GLOB_MARK: ::c_int = 0x0008; -pub const GLOB_NOCHECK: ::c_int = 0x0010; -pub const GLOB_NOSORT: ::c_int = 0x0020; -pub const GLOB_NOESCAPE: ::c_int = 0x1000; - -pub const GLOB_NOSPACE: ::c_int = -1; -pub const GLOB_ABORTED: ::c_int = -2; -pub const GLOB_NOMATCH: ::c_int = -3; -pub const GLOB_NOSYS: ::c_int = -4; - -pub const POSIX_MADV_NORMAL: ::c_int = 0; -pub const POSIX_MADV_RANDOM: ::c_int = 1; -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 F_OK: c_int = 0; +pub const R_OK: c_int = 4; +pub const W_OK: c_int = 2; +pub const X_OK: c_int = 1; +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; +pub const F_LOCK: c_int = 1; +pub const F_TEST: c_int = 3; +pub const F_TLOCK: c_int = 2; +pub const F_ULOCK: c_int = 0; +pub const F_GETLK: c_int = 7; +pub const F_SETLK: c_int = 8; +pub const F_SETLKW: c_int = 9; +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGABRT: c_int = 6; +pub const SIGEMT: c_int = 7; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGSEGV: c_int = 11; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; + +pub const PROT_NONE: c_int = 0; +pub const PROT_READ: c_int = 1; +pub const PROT_WRITE: c_int = 2; +pub const PROT_EXEC: c_int = 4; + +pub const MAP_FILE: c_int = 0x0000; +pub const MAP_SHARED: c_int = 0x0001; +pub const MAP_PRIVATE: c_int = 0x0002; +pub const MAP_FIXED: c_int = 0x0010; +pub const MAP_ANON: c_int = 0x1000; +pub const MAP_ANONYMOUS: c_int = MAP_ANON; + +pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; + +pub const IPC_CREAT: c_int = 0o001000; +pub const IPC_EXCL: c_int = 0o002000; +pub const IPC_NOWAIT: c_int = 0o004000; + +pub const IPC_PRIVATE: crate::key_t = 0; + +pub const IPC_RMID: c_int = 0; +pub const IPC_SET: c_int = 1; +pub const IPC_STAT: c_int = 2; + +pub const IPC_R: c_int = 0o000400; +pub const IPC_W: c_int = 0o000200; +pub const IPC_M: c_int = 0o010000; + +pub const SHM_R: c_int = IPC_R; +pub const SHM_W: c_int = IPC_W; + +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; + +pub const MS_ASYNC: c_int = 0x0001; + +pub const EPERM: c_int = 1; +pub const ENOENT: c_int = 2; +pub const ESRCH: c_int = 3; +pub const EINTR: c_int = 4; +pub const EIO: c_int = 5; +pub const ENXIO: c_int = 6; +pub const E2BIG: c_int = 7; +pub const ENOEXEC: c_int = 8; +pub const EBADF: c_int = 9; +pub const ECHILD: c_int = 10; +pub const EDEADLK: c_int = 11; +pub const ENOMEM: c_int = 12; +pub const EACCES: c_int = 13; +pub const EFAULT: c_int = 14; +pub const ENOTBLK: c_int = 15; +pub const EBUSY: c_int = 16; +pub const EEXIST: c_int = 17; +pub const EXDEV: c_int = 18; +pub const ENODEV: c_int = 19; +pub const ENOTDIR: c_int = 20; +pub const EISDIR: c_int = 21; +pub const EINVAL: c_int = 22; +pub const ENFILE: c_int = 23; +pub const EMFILE: c_int = 24; +pub const ENOTTY: c_int = 25; +pub const ETXTBSY: c_int = 26; +pub const EFBIG: c_int = 27; +pub const ENOSPC: c_int = 28; +pub const ESPIPE: c_int = 29; +pub const EROFS: c_int = 30; +pub const EMLINK: c_int = 31; +pub const EPIPE: c_int = 32; +pub const EDOM: c_int = 33; +pub const ERANGE: c_int = 34; +pub const EAGAIN: c_int = 35; +pub const EWOULDBLOCK: c_int = 35; +pub const EINPROGRESS: c_int = 36; +pub const EALREADY: c_int = 37; +pub const ENOTSOCK: c_int = 38; +pub const EDESTADDRREQ: c_int = 39; +pub const EMSGSIZE: c_int = 40; +pub const EPROTOTYPE: c_int = 41; +pub const ENOPROTOOPT: c_int = 42; +pub const EPROTONOSUPPORT: c_int = 43; +pub const ESOCKTNOSUPPORT: c_int = 44; +pub const EOPNOTSUPP: c_int = 45; +pub const EPFNOSUPPORT: c_int = 46; +pub const EAFNOSUPPORT: c_int = 47; +pub const EADDRINUSE: c_int = 48; +pub const EADDRNOTAVAIL: c_int = 49; +pub const ENETDOWN: c_int = 50; +pub const ENETUNREACH: c_int = 51; +pub const ENETRESET: c_int = 52; +pub const ECONNABORTED: c_int = 53; +pub const ECONNRESET: c_int = 54; +pub const ENOBUFS: c_int = 55; +pub const EISCONN: c_int = 56; +pub const ENOTCONN: c_int = 57; +pub const ESHUTDOWN: c_int = 58; +pub const ETOOMANYREFS: c_int = 59; +pub const ETIMEDOUT: c_int = 60; +pub const ECONNREFUSED: c_int = 61; +pub const ELOOP: c_int = 62; +pub const ENAMETOOLONG: c_int = 63; +pub const EHOSTDOWN: c_int = 64; +pub const EHOSTUNREACH: c_int = 65; +pub const ENOTEMPTY: c_int = 66; +pub const EPROCLIM: c_int = 67; +pub const EUSERS: c_int = 68; +pub const EDQUOT: c_int = 69; +pub const ESTALE: c_int = 70; +pub const EREMOTE: c_int = 71; +pub const EBADRPC: c_int = 72; +pub const ERPCMISMATCH: c_int = 73; +pub const EPROGUNAVAIL: c_int = 74; +pub const EPROGMISMATCH: c_int = 75; +pub const EPROCUNAVAIL: c_int = 76; +pub const ENOLCK: c_int = 77; +pub const ENOSYS: c_int = 78; +pub const EFTYPE: c_int = 79; +pub const EAUTH: c_int = 80; +pub const ENEEDAUTH: c_int = 81; + +pub const F_DUPFD: c_int = 0; +pub const F_GETFD: c_int = 1; +pub const F_SETFD: c_int = 2; +pub const F_GETFL: c_int = 3; +pub const F_SETFL: c_int = 4; + +pub const SIGTRAP: c_int = 5; + +pub const GLOB_APPEND: c_int = 0x0001; +pub const GLOB_DOOFFS: c_int = 0x0002; +pub const GLOB_ERR: c_int = 0x0004; +pub const GLOB_MARK: c_int = 0x0008; +pub const GLOB_NOCHECK: c_int = 0x0010; +pub const GLOB_NOSORT: c_int = 0x0020; +pub const GLOB_NOESCAPE: c_int = 0x1000; + +pub const GLOB_NOSPACE: c_int = -1; +pub const GLOB_ABORTED: c_int = -2; +pub const GLOB_NOMATCH: c_int = -3; +pub const GLOB_NOSYS: c_int = -4; + +pub const POSIX_MADV_NORMAL: c_int = 0; +pub const POSIX_MADV_RANDOM: c_int = 1; +pub const POSIX_MADV_SEQUENTIAL: c_int = 2; +pub const POSIX_MADV_WILLNEED: c_int = 3; +pub const POSIX_MADV_DONTNEED: c_int = 4; // DIFF(main): changed to `c_short` in f62eb023ab -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; - -pub const PIOD_READ_D: ::c_int = 1; -pub const PIOD_WRITE_D: ::c_int = 2; -pub const PIOD_READ_I: ::c_int = 3; -pub const PIOD_WRITE_I: ::c_int = 4; -pub const PIOD_READ_AUXV: ::c_int = 5; - -pub const PT_TRACE_ME: ::c_int = 0; -pub const PT_READ_I: ::c_int = 1; -pub const PT_READ_D: ::c_int = 2; -pub const PT_WRITE_I: ::c_int = 4; -pub const PT_WRITE_D: ::c_int = 5; -pub const PT_CONTINUE: ::c_int = 7; -pub const PT_KILL: ::c_int = 8; -pub const PT_ATTACH: ::c_int = 9; -pub const PT_DETACH: ::c_int = 10; -pub const PT_IO: ::c_int = 11; +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; + +pub const PIOD_READ_D: c_int = 1; +pub const PIOD_WRITE_D: c_int = 2; +pub const PIOD_READ_I: c_int = 3; +pub const PIOD_WRITE_I: c_int = 4; +pub const PIOD_READ_AUXV: c_int = 5; + +pub const PT_TRACE_ME: c_int = 0; +pub const PT_READ_I: c_int = 1; +pub const PT_READ_D: c_int = 2; +pub const PT_WRITE_I: c_int = 4; +pub const PT_WRITE_D: c_int = 5; +pub const PT_CONTINUE: c_int = 7; +pub const PT_KILL: c_int = 8; +pub const PT_ATTACH: c_int = 9; +pub const PT_DETACH: c_int = 10; +pub const PT_IO: c_int = 11; // http://man.openbsd.org/OpenBSD-current/man2/clock_getres.2 // The man page says clock_gettime(3) can accept various values as clockid_t but @@ -405,194 +407,194 @@ pub const PT_IO: ::c_int = 11; // http://netbsd.gw.com/cgi-bin/man-cgi?clock_gettime // https://github.com/jsonn/src/blob/HEAD/sys/kern/subr_time.c#L222 // Basically the same goes for NetBSD -pub const CLOCK_REALTIME: ::clockid_t = 0; -pub const CLOCK_MONOTONIC: ::clockid_t = 3; - -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_RSS: ::c_int = 5; -pub const RLIMIT_MEMLOCK: ::c_int = 6; -pub const RLIMIT_NPROC: ::c_int = 7; -pub const RLIMIT_NOFILE: ::c_int = 8; +pub const CLOCK_REALTIME: crate::clockid_t = 0; +pub const CLOCK_MONOTONIC: crate::clockid_t = 3; + +pub const RLIMIT_CPU: c_int = 0; +pub const RLIMIT_FSIZE: c_int = 1; +pub const RLIMIT_DATA: c_int = 2; +pub const RLIMIT_STACK: c_int = 3; +pub const RLIMIT_CORE: c_int = 4; +pub const RLIMIT_RSS: c_int = 5; +pub const RLIMIT_MEMLOCK: c_int = 6; +pub const RLIMIT_NPROC: c_int = 7; +pub const RLIMIT_NOFILE: c_int = 8; pub const RLIM_INFINITY: rlim_t = 0x7fff_ffff_ffff_ffff; pub const RLIM_SAVED_MAX: rlim_t = RLIM_INFINITY; pub const RLIM_SAVED_CUR: rlim_t = RLIM_INFINITY; -pub const RUSAGE_SELF: ::c_int = 0; -pub const RUSAGE_CHILDREN: ::c_int = -1; +pub const RUSAGE_SELF: c_int = 0; +pub const RUSAGE_CHILDREN: c_int = -1; -pub const MADV_NORMAL: ::c_int = 0; -pub const MADV_RANDOM: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_WILLNEED: ::c_int = 3; -pub const MADV_DONTNEED: ::c_int = 4; -pub const MADV_FREE: ::c_int = 6; +pub const MADV_NORMAL: c_int = 0; +pub const MADV_RANDOM: c_int = 1; +pub const MADV_SEQUENTIAL: c_int = 2; +pub const MADV_WILLNEED: c_int = 3; +pub const MADV_DONTNEED: c_int = 4; +pub const MADV_FREE: c_int = 6; // sys/fstypes.h in NetBSD, or sys/mount.h in OpenBSD -pub const MNT_NODEV: ::c_int = 0x00000010; -pub const MNT_LOCAL: ::c_int = 0x00001000; -pub const MNT_QUOTA: ::c_int = 0x00002000; - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_LOCAL: ::c_int = 1; -pub const AF_UNIX: ::c_int = AF_LOCAL; -pub const AF_INET: ::c_int = 2; -pub const AF_IMPLINK: ::c_int = 3; -pub const AF_PUP: ::c_int = 4; -pub const AF_CHAOS: ::c_int = 5; -pub const AF_NS: ::c_int = 6; -pub const AF_ISO: ::c_int = 7; -pub const AF_OSI: ::c_int = AF_ISO; -pub const AF_DATAKIT: ::c_int = 9; -pub const AF_CCITT: ::c_int = 10; -pub const AF_SNA: ::c_int = 11; -pub const AF_DECnet: ::c_int = 12; -pub const AF_DLI: ::c_int = 13; -pub const AF_LAT: ::c_int = 14; -pub const AF_HYLINK: ::c_int = 15; -pub const AF_APPLETALK: ::c_int = 16; -pub const AF_LINK: ::c_int = 18; -pub const pseudo_AF_XTP: ::c_int = 19; -pub const AF_COIP: ::c_int = 20; -pub const AF_CNT: ::c_int = 21; -pub const pseudo_AF_RTIP: ::c_int = 22; -pub const AF_IPX: ::c_int = 23; -pub const AF_INET6: ::c_int = 24; -pub const pseudo_AF_PIP: ::c_int = 25; -pub const AF_ISDN: ::c_int = 26; -pub const AF_E164: ::c_int = AF_ISDN; -pub const AF_NATM: ::c_int = 27; - -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_LOCAL: ::c_int = AF_LOCAL; -pub const PF_UNIX: ::c_int = PF_LOCAL; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_IMPLINK: ::c_int = AF_IMPLINK; -pub const PF_PUP: ::c_int = AF_PUP; -pub const PF_CHAOS: ::c_int = AF_CHAOS; -pub const PF_NS: ::c_int = AF_NS; -pub const PF_ISO: ::c_int = AF_ISO; -pub const PF_OSI: ::c_int = AF_ISO; -pub const PF_DATAKIT: ::c_int = AF_DATAKIT; -pub const PF_CCITT: ::c_int = AF_CCITT; -pub const PF_SNA: ::c_int = AF_SNA; -pub const PF_DECnet: ::c_int = AF_DECnet; -pub const PF_DLI: ::c_int = AF_DLI; -pub const PF_LAT: ::c_int = AF_LAT; -pub const PF_HYLINK: ::c_int = AF_HYLINK; -pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -pub const PF_LINK: ::c_int = AF_LINK; -pub const PF_XTP: ::c_int = pseudo_AF_XTP; -pub const PF_COIP: ::c_int = AF_COIP; -pub const PF_CNT: ::c_int = AF_CNT; -pub const PF_IPX: ::c_int = AF_IPX; -pub const PF_INET6: ::c_int = AF_INET6; -pub const PF_RTIP: ::c_int = pseudo_AF_RTIP; -pub const PF_PIP: ::c_int = pseudo_AF_PIP; -pub const PF_ISDN: ::c_int = AF_ISDN; -pub const PF_NATM: ::c_int = AF_NATM; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const IP_TTL: ::c_int = 4; -pub const IP_HDRINCL: ::c_int = 2; -pub const IP_ADD_MEMBERSHIP: ::c_int = 12; -pub const IP_DROP_MEMBERSHIP: ::c_int = 13; -pub const IPV6_RECVPKTINFO: ::c_int = 36; -pub const IPV6_PKTINFO: ::c_int = 46; -pub const IPV6_RECVTCLASS: ::c_int = 57; -pub const IPV6_TCLASS: ::c_int = 61; - -pub const SOL_SOCKET: ::c_int = 0xffff; -pub const SO_DEBUG: ::c_int = 0x01; -pub const SO_ACCEPTCONN: ::c_int = 0x0002; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVLOWAT: ::c_int = 0x1004; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_TYPE: ::c_int = 0x1008; - -pub const SOMAXCONN: ::c_int = 128; - -pub const MSG_OOB: ::c_int = 0x1; -pub const MSG_PEEK: ::c_int = 0x2; -pub const MSG_DONTROUTE: ::c_int = 0x4; -pub const MSG_EOR: ::c_int = 0x8; -pub const MSG_TRUNC: ::c_int = 0x10; -pub const MSG_CTRUNC: ::c_int = 0x20; -pub const MSG_WAITALL: ::c_int = 0x40; -pub const MSG_DONTWAIT: ::c_int = 0x80; -pub const MSG_BCAST: ::c_int = 0x100; -pub const MSG_MCAST: ::c_int = 0x200; -pub const MSG_NOSIGNAL: ::c_int = 0x400; -pub const MSG_CMSG_CLOEXEC: ::c_int = 0x800; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_NB: ::c_int = 4; -pub const LOCK_UN: ::c_int = 8; - -pub const IPPROTO_RAW: ::c_int = 255; - -pub const _SC_ARG_MAX: ::c_int = 1; -pub const _SC_CHILD_MAX: ::c_int = 2; -pub const _SC_NGROUPS_MAX: ::c_int = 4; -pub const _SC_OPEN_MAX: ::c_int = 5; -pub const _SC_JOB_CONTROL: ::c_int = 6; -pub const _SC_SAVED_IDS: ::c_int = 7; -pub const _SC_VERSION: ::c_int = 8; -pub const _SC_BC_BASE_MAX: ::c_int = 9; -pub const _SC_BC_DIM_MAX: ::c_int = 10; -pub const _SC_BC_SCALE_MAX: ::c_int = 11; -pub const _SC_BC_STRING_MAX: ::c_int = 12; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 13; -pub const _SC_EXPR_NEST_MAX: ::c_int = 14; -pub const _SC_LINE_MAX: ::c_int = 15; -pub const _SC_RE_DUP_MAX: ::c_int = 16; -pub const _SC_2_VERSION: ::c_int = 17; -pub const _SC_2_C_BIND: ::c_int = 18; -pub const _SC_2_C_DEV: ::c_int = 19; -pub const _SC_2_CHAR_TERM: ::c_int = 20; -pub const _SC_2_FORT_DEV: ::c_int = 21; -pub const _SC_2_FORT_RUN: ::c_int = 22; -pub const _SC_2_LOCALEDEF: ::c_int = 23; -pub const _SC_2_SW_DEV: ::c_int = 24; -pub const _SC_2_UPE: ::c_int = 25; -pub const _SC_STREAM_MAX: ::c_int = 26; -pub const _SC_TZNAME_MAX: ::c_int = 27; -pub const _SC_PAGESIZE: ::c_int = 28; -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_FSYNC: ::c_int = 29; -pub const _SC_XOPEN_SHM: ::c_int = 30; - -pub const Q_GETQUOTA: ::c_int = 0x300; -pub const Q_SETQUOTA: ::c_int = 0x400; - -pub const RTLD_GLOBAL: ::c_int = 0x100; - -pub const LOG_NFACILITIES: ::c_int = 24; - -pub const HW_NCPU: ::c_int = 3; +pub const MNT_NODEV: c_int = 0x00000010; +pub const MNT_LOCAL: c_int = 0x00001000; +pub const MNT_QUOTA: c_int = 0x00002000; + +pub const AF_UNSPEC: c_int = 0; +pub const AF_LOCAL: c_int = 1; +pub const AF_UNIX: c_int = AF_LOCAL; +pub const AF_INET: c_int = 2; +pub const AF_IMPLINK: c_int = 3; +pub const AF_PUP: c_int = 4; +pub const AF_CHAOS: c_int = 5; +pub const AF_NS: c_int = 6; +pub const AF_ISO: c_int = 7; +pub const AF_OSI: c_int = AF_ISO; +pub const AF_DATAKIT: c_int = 9; +pub const AF_CCITT: c_int = 10; +pub const AF_SNA: c_int = 11; +pub const AF_DECnet: c_int = 12; +pub const AF_DLI: c_int = 13; +pub const AF_LAT: c_int = 14; +pub const AF_HYLINK: c_int = 15; +pub const AF_APPLETALK: c_int = 16; +pub const AF_LINK: c_int = 18; +pub const pseudo_AF_XTP: c_int = 19; +pub const AF_COIP: c_int = 20; +pub const AF_CNT: c_int = 21; +pub const pseudo_AF_RTIP: c_int = 22; +pub const AF_IPX: c_int = 23; +pub const AF_INET6: c_int = 24; +pub const pseudo_AF_PIP: c_int = 25; +pub const AF_ISDN: c_int = 26; +pub const AF_E164: c_int = AF_ISDN; +pub const AF_NATM: c_int = 27; + +pub const PF_UNSPEC: c_int = AF_UNSPEC; +pub const PF_LOCAL: c_int = AF_LOCAL; +pub const PF_UNIX: c_int = PF_LOCAL; +pub const PF_INET: c_int = AF_INET; +pub const PF_IMPLINK: c_int = AF_IMPLINK; +pub const PF_PUP: c_int = AF_PUP; +pub const PF_CHAOS: c_int = AF_CHAOS; +pub const PF_NS: c_int = AF_NS; +pub const PF_ISO: c_int = AF_ISO; +pub const PF_OSI: c_int = AF_ISO; +pub const PF_DATAKIT: c_int = AF_DATAKIT; +pub const PF_CCITT: c_int = AF_CCITT; +pub const PF_SNA: c_int = AF_SNA; +pub const PF_DECnet: c_int = AF_DECnet; +pub const PF_DLI: c_int = AF_DLI; +pub const PF_LAT: c_int = AF_LAT; +pub const PF_HYLINK: c_int = AF_HYLINK; +pub const PF_APPLETALK: c_int = AF_APPLETALK; +pub const PF_LINK: c_int = AF_LINK; +pub const PF_XTP: c_int = pseudo_AF_XTP; +pub const PF_COIP: c_int = AF_COIP; +pub const PF_CNT: c_int = AF_CNT; +pub const PF_IPX: c_int = AF_IPX; +pub const PF_INET6: c_int = AF_INET6; +pub const PF_RTIP: c_int = pseudo_AF_RTIP; +pub const PF_PIP: c_int = pseudo_AF_PIP; +pub const PF_ISDN: c_int = AF_ISDN; +pub const PF_NATM: c_int = AF_NATM; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; +pub const SOCK_RAW: c_int = 3; +pub const SOCK_RDM: c_int = 4; +pub const SOCK_SEQPACKET: c_int = 5; +pub const IP_TTL: c_int = 4; +pub const IP_HDRINCL: c_int = 2; +pub const IP_ADD_MEMBERSHIP: c_int = 12; +pub const IP_DROP_MEMBERSHIP: c_int = 13; +pub const IPV6_RECVPKTINFO: c_int = 36; +pub const IPV6_PKTINFO: c_int = 46; +pub const IPV6_RECVTCLASS: c_int = 57; +pub const IPV6_TCLASS: c_int = 61; + +pub const SOL_SOCKET: c_int = 0xffff; +pub const SO_DEBUG: c_int = 0x01; +pub const SO_ACCEPTCONN: c_int = 0x0002; +pub const SO_REUSEADDR: c_int = 0x0004; +pub const SO_KEEPALIVE: c_int = 0x0008; +pub const SO_DONTROUTE: c_int = 0x0010; +pub const SO_BROADCAST: c_int = 0x0020; +pub const SO_USELOOPBACK: c_int = 0x0040; +pub const SO_LINGER: c_int = 0x0080; +pub const SO_OOBINLINE: c_int = 0x0100; +pub const SO_REUSEPORT: c_int = 0x0200; +pub const SO_SNDBUF: c_int = 0x1001; +pub const SO_RCVBUF: c_int = 0x1002; +pub const SO_SNDLOWAT: c_int = 0x1003; +pub const SO_RCVLOWAT: c_int = 0x1004; +pub const SO_ERROR: c_int = 0x1007; +pub const SO_TYPE: c_int = 0x1008; + +pub const SOMAXCONN: c_int = 128; + +pub const MSG_OOB: c_int = 0x1; +pub const MSG_PEEK: c_int = 0x2; +pub const MSG_DONTROUTE: c_int = 0x4; +pub const MSG_EOR: c_int = 0x8; +pub const MSG_TRUNC: c_int = 0x10; +pub const MSG_CTRUNC: c_int = 0x20; +pub const MSG_WAITALL: c_int = 0x40; +pub const MSG_DONTWAIT: c_int = 0x80; +pub const MSG_BCAST: c_int = 0x100; +pub const MSG_MCAST: c_int = 0x200; +pub const MSG_NOSIGNAL: c_int = 0x400; +pub const MSG_CMSG_CLOEXEC: c_int = 0x800; + +pub const SHUT_RD: c_int = 0; +pub const SHUT_WR: c_int = 1; +pub const SHUT_RDWR: c_int = 2; + +pub const LOCK_SH: c_int = 1; +pub const LOCK_EX: c_int = 2; +pub const LOCK_NB: c_int = 4; +pub const LOCK_UN: c_int = 8; + +pub const IPPROTO_RAW: c_int = 255; + +pub const _SC_ARG_MAX: c_int = 1; +pub const _SC_CHILD_MAX: c_int = 2; +pub const _SC_NGROUPS_MAX: c_int = 4; +pub const _SC_OPEN_MAX: c_int = 5; +pub const _SC_JOB_CONTROL: c_int = 6; +pub const _SC_SAVED_IDS: c_int = 7; +pub const _SC_VERSION: c_int = 8; +pub const _SC_BC_BASE_MAX: c_int = 9; +pub const _SC_BC_DIM_MAX: c_int = 10; +pub const _SC_BC_SCALE_MAX: c_int = 11; +pub const _SC_BC_STRING_MAX: c_int = 12; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 13; +pub const _SC_EXPR_NEST_MAX: c_int = 14; +pub const _SC_LINE_MAX: c_int = 15; +pub const _SC_RE_DUP_MAX: c_int = 16; +pub const _SC_2_VERSION: c_int = 17; +pub const _SC_2_C_BIND: c_int = 18; +pub const _SC_2_C_DEV: c_int = 19; +pub const _SC_2_CHAR_TERM: c_int = 20; +pub const _SC_2_FORT_DEV: c_int = 21; +pub const _SC_2_FORT_RUN: c_int = 22; +pub const _SC_2_LOCALEDEF: c_int = 23; +pub const _SC_2_SW_DEV: c_int = 24; +pub const _SC_2_UPE: c_int = 25; +pub const _SC_STREAM_MAX: c_int = 26; +pub const _SC_TZNAME_MAX: c_int = 27; +pub const _SC_PAGESIZE: c_int = 28; +pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; +pub const _SC_FSYNC: c_int = 29; +pub const _SC_XOPEN_SHM: c_int = 30; + +pub const Q_GETQUOTA: c_int = 0x300; +pub const Q_SETQUOTA: c_int = 0x400; + +pub const RTLD_GLOBAL: c_int = 0x100; + +pub const LOG_NFACILITIES: c_int = 24; + +pub const HW_NCPU: c_int = 3; pub const B0: speed_t = 0; pub const B50: speed_t = 50; @@ -622,255 +624,242 @@ pub const EXTB: speed_t = 38400; pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; -pub const CRTSCTS: ::tcflag_t = 0x00010000; -pub const CRTS_IFLOW: ::tcflag_t = CRTSCTS; -pub const CCTS_OFLOW: ::tcflag_t = CRTSCTS; -pub const OCRNL: ::tcflag_t = 0x10; - -pub const TIOCEXCL: ::c_ulong = 0x2000740d; -pub const TIOCNXCL: ::c_ulong = 0x2000740e; -pub const TIOCFLUSH: ::c_ulong = 0x80047410; -pub const TIOCGETA: ::c_ulong = 0x402c7413; -pub const TIOCSETA: ::c_ulong = 0x802c7414; -pub const TIOCSETAW: ::c_ulong = 0x802c7415; -pub const TIOCSETAF: ::c_ulong = 0x802c7416; -pub const TIOCGETD: ::c_ulong = 0x4004741a; -pub const TIOCSETD: ::c_ulong = 0x8004741b; -pub const TIOCMGET: ::c_ulong = 0x4004746a; -pub const TIOCMBIC: ::c_ulong = 0x8004746b; -pub const TIOCMBIS: ::c_ulong = 0x8004746c; -pub const TIOCMSET: ::c_ulong = 0x8004746d; -pub const TIOCSTART: ::c_ulong = 0x2000746e; -pub const TIOCSTOP: ::c_ulong = 0x2000746f; -pub const TIOCSCTTY: ::c_ulong = 0x20007461; -pub const TIOCGWINSZ: ::c_ulong = 0x40087468; -pub const TIOCSWINSZ: ::c_ulong = 0x80087467; -pub const TIOCM_LE: ::c_int = 0o0001; -pub const TIOCM_DTR: ::c_int = 0o0002; -pub const TIOCM_RTS: ::c_int = 0o0004; -pub const TIOCM_ST: ::c_int = 0o0010; -pub const TIOCM_SR: ::c_int = 0o0020; -pub const TIOCM_CTS: ::c_int = 0o0040; -pub const TIOCM_CAR: ::c_int = 0o0100; -pub const TIOCM_RNG: ::c_int = 0o0200; -pub const TIOCM_DSR: ::c_int = 0o0400; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; - -pub const TIMER_ABSTIME: ::c_int = 1; +pub const CRTSCTS: crate::tcflag_t = 0x00010000; +pub const CRTS_IFLOW: crate::tcflag_t = CRTSCTS; +pub const CCTS_OFLOW: crate::tcflag_t = CRTSCTS; +pub const OCRNL: crate::tcflag_t = 0x10; + +pub const TIOCEXCL: c_ulong = 0x2000740d; +pub const TIOCNXCL: c_ulong = 0x2000740e; +pub const TIOCFLUSH: c_ulong = 0x80047410; +pub const TIOCGETA: c_ulong = 0x402c7413; +pub const TIOCSETA: c_ulong = 0x802c7414; +pub const TIOCSETAW: c_ulong = 0x802c7415; +pub const TIOCSETAF: c_ulong = 0x802c7416; +pub const TIOCGETD: c_ulong = 0x4004741a; +pub const TIOCSETD: c_ulong = 0x8004741b; +pub const TIOCMGET: c_ulong = 0x4004746a; +pub const TIOCMBIC: c_ulong = 0x8004746b; +pub const TIOCMBIS: c_ulong = 0x8004746c; +pub const TIOCMSET: c_ulong = 0x8004746d; +pub const TIOCSTART: c_ulong = 0x2000746e; +pub const TIOCSTOP: c_ulong = 0x2000746f; +pub const TIOCSCTTY: c_ulong = 0x20007461; +pub const TIOCGWINSZ: c_ulong = 0x40087468; +pub const TIOCSWINSZ: c_ulong = 0x80087467; +pub const TIOCM_LE: c_int = 0o0001; +pub const TIOCM_DTR: c_int = 0o0002; +pub const TIOCM_RTS: c_int = 0o0004; +pub const TIOCM_ST: c_int = 0o0010; +pub const TIOCM_SR: c_int = 0o0020; +pub const TIOCM_CTS: c_int = 0o0040; +pub const TIOCM_CAR: c_int = 0o0100; +pub const TIOCM_RNG: c_int = 0o0200; +pub const TIOCM_DSR: c_int = 0o0400; +pub const TIOCM_CD: c_int = TIOCM_CAR; +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 RB_AUTOBOOT: c_int = 0; -pub const TCP_INFO: ::c_int = 9; +pub const TCP_INFO: c_int = 9; #[link(name = "util")] extern "C" { pub fn setgrent(); - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; + pub fn sem_destroy(sem: *mut sem_t) -> c_int; + pub fn sem_init(sem: *mut sem_t, pshared: c_int, value: c_uint) -> c_int; - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; pub fn accept4( - s: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn mincore(addr: *mut ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; + s: c_int, + addr: *mut crate::sockaddr, + addrlen: *mut crate::socklen_t, + flags: c_int, + ) -> c_int; + pub fn mincore(addr: *mut c_void, len: size_t, vec: *mut c_char) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__clock_getres50")] - pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_getres(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__clock_gettime50")] - pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__clock_settime50")] - pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; - pub fn __errno() -> *mut ::c_int; - pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int; - pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; - pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) - -> ::ssize_t; - pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + pub fn clock_settime(clk_id: crate::clockid_t, tp: *const crate::timespec) -> c_int; + pub fn __errno() -> *mut c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: crate::mode_t) -> c_int; + pub fn memrchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; + pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int; + pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int; + pub fn pwritev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; + pub fn preadv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; + pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; - pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn login_tty(fd: ::c_int) -> ::c_int; - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - - pub fn mknodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - dev: dev_t, - ) -> ::c_int; - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + dirfd: c_int, + path: *const c_char, + times: *const crate::timespec, + flag: c_int, + ) -> c_int; + pub fn fdatasync(fd: c_int) -> c_int; + pub fn login_tty(fd: c_int) -> c_int; + pub fn getpriority(which: c_int, who: crate::id_t) -> c_int; + pub fn setpriority(which: c_int, who: crate::id_t, prio: c_int) -> c_int; + + pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t, dev: dev_t) + -> c_int; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int; pub fn pthread_condattr_setclock( attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; + clock_id: crate::clockid_t, + ) -> c_int; + pub fn sethostname(name: *const c_char, len: size_t) -> c_int; pub fn pthread_mutex_timedlock( lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> ::c_int; + abstime: *const crate::timespec, + ) -> c_int; + pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: c_int) -> c_int; + pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> c_int; + pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> c_int; + pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> c_int; + pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> c_int; pub fn pthread_setschedparam( - native: ::pthread_t, - policy: ::c_int, + native: crate::pthread_t, + policy: c_int, param: *const sched_param, - ) -> ::c_int; + ) -> c_int; pub fn pthread_getschedparam( - native: ::pthread_t, - policy: *mut ::c_int, + native: crate::pthread_t, + policy: *mut c_int, param: *mut sched_param, - ) -> ::c_int; - pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; + ) -> c_int; + pub fn pipe2(fds: *mut c_int, flags: c_int) -> c_int; pub fn getgrouplist( - name: *const ::c_char, - basegid: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int, - ) -> ::c_int; - pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; - pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn uname(buf: *mut ::utsname) -> ::c_int; - - pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - 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; + name: *const c_char, + basegid: crate::gid_t, + groups: *mut crate::gid_t, + ngroups: *mut c_int, + ) -> c_int; + pub fn initgroups(name: *const c_char, basegid: crate::gid_t) -> c_int; + pub fn getdomainname(name: *mut c_char, len: size_t) -> c_int; + pub fn setdomainname(name: *const c_char, len: size_t) -> c_int; + pub fn uname(buf: *mut crate::utsname) -> c_int; + + pub fn shmget(key: crate::key_t, size: size_t, shmflg: c_int) -> c_int; + 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 crate::shmid_ds) -> c_int; // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execvpe( - file: *const ::c_char, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; + 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; + id: crate::id_t, + infop: *mut crate::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; + pid: *mut crate::pid_t, + path: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::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; + pid: *mut crate::pid_t, + file: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::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; + default: *mut crate::sigset_t, + ) -> c_int; pub fn posix_spawnattr_setsigdefault( attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; + default: *const crate::sigset_t, + ) -> c_int; pub fn posix_spawnattr_getsigmask( attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; + default: *mut crate::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; + default: *const crate::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; + flags: *mut crate::pid_t, + ) -> c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: crate::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; + 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; + param: *mut crate::sched_param, + ) -> c_int; pub fn posix_spawnattr_setschedparam( attr: *mut posix_spawnattr_t, - param: *const ::sched_param, - ) -> ::c_int; + param: *const crate::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_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; + fd: c_int, + path: *const c_char, + oflag: c_int, + mode: crate::mode_t, + ) -> c_int; pub fn posix_spawn_file_actions_addclose( actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; + 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; + fd: c_int, + newfd: c_int, + ) -> c_int; } extern "C" { - pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn gethostid() -> ::c_long; - pub fn sethostid(hostid: ::c_long) -> ::c_int; - pub fn ftok(path: *const ::c_char, id: ::c_int) -> ::key_t; - - 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; - - pub fn sendmmsg( - sockfd: ::c_int, - mmsg: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - ) -> ::c_int; + pub fn reallocarray(ptr: *mut c_void, nmemb: size_t, size: size_t) -> *mut c_void; + pub fn gethostid() -> c_long; + pub fn sethostid(hostid: c_long) -> c_int; + pub fn ftok(path: *const c_char, id: c_int) -> crate::key_t; + + 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; + + pub fn sendmmsg(sockfd: c_int, mmsg: *mut crate::mmsghdr, vlen: c_uint, flags: c_int) -> c_int; pub fn recvmmsg( - sockfd: ::c_int, - mmsg: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - timeout: *mut ::timespec, - ) -> ::c_int; + sockfd: c_int, + mmsg: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_int, + timeout: *mut crate::timespec, + ) -> c_int; } cfg_if! { diff --git a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs index 4cdcb070095eb..b74f57636ffe8 100644 --- a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs @@ -1,10 +1,10 @@ -use PT_FIRSTMACH; +use crate::{c_int, c_uchar, c_uint, PT_FIRSTMACH}; pub type c_long = i64; pub type c_ulong = u64; pub type c_char = u8; pub type greg_t = u64; -pub type __cpu_simple_lock_nv_t = ::c_uchar; +pub type __cpu_simple_lock_nv_t = c_uchar; s! { pub struct __fregset { @@ -14,16 +14,16 @@ s! { } pub struct mcontext_t { - pub __gregs: [::greg_t; 32], + pub __gregs: [crate::greg_t; 32], pub __fregs: __fregset, - __spare: [::greg_t; 8], + __spare: [crate::greg_t; 8], } pub struct ucontext_t { - pub uc_flags: ::c_uint, + pub uc_flags: c_uint, pub uc_link: *mut ucontext_t, - pub uc_sigmask: ::sigset_t, - pub uc_stack: ::stack_t, + pub uc_sigmask: crate::sigset_t, + pub uc_stack: crate::stack_t, pub uc_mcontext: mcontext_t, } } @@ -53,8 +53,8 @@ cfg_if! { } } impl Eq for __c_anonymous__freg {} - impl ::fmt::Debug for __c_anonymous__freg { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous__freg { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { unsafe { f.debug_struct("__c_anonymous__freg") .field("__b8", &self.__b8) @@ -66,8 +66,8 @@ cfg_if! { } } } - impl ::hash::Hash for __c_anonymous__freg { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous__freg { + fn hash(&self, state: &mut H) { unsafe { self.__b8.hash(state); self.__h16.hash(state); @@ -80,68 +80,68 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 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; +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_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; +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; diff --git a/src/unix/bsd/netbsdlike/netbsd/arm.rs b/src/unix/bsd/netbsdlike/netbsd/arm.rs index 2da780ec6ddcb..aff875801e89c 100644 --- a/src/unix/bsd/netbsdlike/netbsd/arm.rs +++ b/src/unix/bsd/netbsdlike/netbsd/arm.rs @@ -1,72 +1,72 @@ -use PT_FIRSTMACH; +use crate::{c_int, c_longlong, PT_FIRSTMACH}; pub type c_long = i32; pub type c_ulong = u32; pub type c_char = u8; -pub type __cpu_simple_lock_nv_t = ::c_int; +pub type __cpu_simple_lock_nv_t = c_int; -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 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; +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_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; +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; diff --git a/src/unix/bsd/netbsdlike/netbsd/mips.rs b/src/unix/bsd/netbsdlike/netbsd/mips.rs index c25407fd97393..089154cd2a40a 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mips.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mips.rs @@ -1,13 +1,13 @@ -use PT_FIRSTMACH; +use crate::{c_int, c_longlong, 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; +pub type __cpu_simple_lock_nv_t = c_int; -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 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; +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; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index a0b1c232d69d9..6efb197cb6431 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1,19 +1,24 @@ -pub type clock_t = ::c_uint; -pub type suseconds_t = ::c_int; +use crate::{ + c_int, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, cmsghdr, intptr_t, off_t, + size_t, ssize_t, +}; + +pub type clock_t = c_uint; +pub type suseconds_t = c_int; pub type dev_t = u64; pub type blksize_t = i32; pub type fsblkcnt_t = u64; pub type fsfilcnt_t = u64; -pub type idtype_t = ::c_int; -pub type mqd_t = ::c_int; +pub type idtype_t = c_int; +pub type mqd_t = c_int; 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 = ::c_ulong; +pub type vm_size_t = crate::uintptr_t; // FIXME: deprecated since long time +pub type lwpid_t = c_uint; +pub type shmatt_t = c_uint; +pub type cpuid_t = c_ulong; pub type cpuset_t = _cpuset; -pub type pthread_spin_t = ::c_uchar; -pub type timer_t = ::c_int; +pub type pthread_spin_t = c_uchar; +pub type timer_t = c_int; // elf.h @@ -33,7 +38,7 @@ pub type Elf64_Sxword = i64; pub type Elf64_Word = u32; pub type Elf64_Xword = u64; -pub type iconv_t = *mut ::c_void; +pub type iconv_t = *mut c_void; e! { pub enum fae_action { @@ -56,70 +61,70 @@ cfg_if! { } impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { + pub unsafe fn si_addr(&self) -> *mut c_void { self.si_addr } - pub unsafe fn si_code(&self) -> ::c_int { + pub unsafe fn si_code(&self) -> c_int { self.si_code } - pub unsafe fn si_errno(&self) -> ::c_int { + pub unsafe fn si_errno(&self) -> c_int { self.si_errno } - pub unsafe fn si_pid(&self) -> ::pid_t { + pub unsafe fn si_pid(&self) -> crate::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, + _si_signo: c_int, + _si_errno: c_int, + _si_code: c_int, + __pad1: c_int, + _pid: crate::pid_t, } (*(self as *const siginfo_t as *const siginfo_timer))._pid } - pub unsafe fn si_uid(&self) -> ::uid_t { + pub unsafe fn si_uid(&self) -> crate::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, + _si_signo: c_int, + _si_errno: c_int, + _si_code: c_int, + __pad1: c_int, + _pid: crate::pid_t, + _uid: crate::uid_t, } (*(self as *const siginfo_t as *const siginfo_timer))._uid } - pub unsafe fn si_value(&self) -> ::sigval { + pub unsafe fn si_value(&self) -> crate::sigval { #[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, - value: ::sigval, + _si_signo: c_int, + _si_errno: c_int, + _si_code: c_int, + __pad1: c_int, + _pid: crate::pid_t, + _uid: crate::uid_t, + value: crate::sigval, } (*(self as *const siginfo_t as *const siginfo_timer)).value } - pub unsafe fn si_status(&self) -> ::c_int { + pub unsafe fn si_status(&self) -> c_int { #[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, - _value: ::sigval, - _cpid: ::pid_t, - _cuid: ::uid_t, - status: ::c_int, + _si_signo: c_int, + _si_errno: c_int, + _si_code: c_int, + __pad1: c_int, + _pid: crate::pid_t, + _uid: crate::uid_t, + _value: crate::sigval, + _cpid: crate::pid_t, + _cuid: crate::uid_t, + status: c_int, } (*(self as *const siginfo_t as *const siginfo_timer)).status } @@ -127,44 +132,44 @@ impl siginfo_t { s! { pub struct aiocb { - pub aio_offset: ::off_t, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_fildes: ::c_int, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, - pub aio_sigevent: ::sigevent, - _state: ::c_int, - _errno: ::c_int, - _retval: ::ssize_t, + pub aio_offset: off_t, + pub aio_buf: *mut c_void, + pub aio_nbytes: size_t, + pub aio_fildes: c_int, + pub aio_lio_opcode: c_int, + pub aio_reqprio: c_int, + pub aio_sigevent: crate::sigevent, + _state: c_int, + _errno: c_int, + _retval: ssize_t, } pub struct glob_t { - pub gl_pathc: ::size_t, - pub gl_matchc: ::size_t, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - pub gl_pathv: *mut *mut ::c_char, + pub gl_pathc: size_t, + pub gl_matchc: size_t, + pub gl_offs: size_t, + pub gl_flags: c_int, + pub gl_pathv: *mut *mut c_char, - __unused3: *mut ::c_void, + __unused3: *mut c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - __unused6: *mut ::c_void, - __unused7: *mut ::c_void, - __unused8: *mut ::c_void, + __unused4: *mut c_void, + __unused5: *mut c_void, + __unused6: *mut c_void, + __unused7: *mut c_void, + __unused8: *mut c_void, } pub struct mq_attr { - pub mq_flags: ::c_long, - pub mq_maxmsg: ::c_long, - pub mq_msgsize: ::c_long, - pub mq_curmsgs: ::c_long, + pub mq_flags: c_long, + pub mq_maxmsg: c_long, + pub mq_msgsize: c_long, + pub mq_curmsgs: c_long, } pub struct itimerspec { - pub it_interval: ::timespec, - pub it_value: ::timespec, + pub it_interval: crate::timespec, + pub it_value: crate::timespec, } pub struct sigset_t { @@ -172,57 +177,57 @@ s! { } pub struct stat { - pub st_dev: ::dev_t, - pub st_mode: ::mode_t, - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_atime: ::time_t, - pub st_atimensec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtimensec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctimensec: ::c_long, - pub st_birthtime: ::time_t, - pub st_birthtimensec: ::c_long, - pub st_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: ::blksize_t, + pub st_dev: crate::dev_t, + pub st_mode: crate::mode_t, + pub st_ino: crate::ino_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_atime: crate::time_t, + pub st_atimensec: c_long, + pub st_mtime: crate::time_t, + pub st_mtimensec: c_long, + pub st_ctime: crate::time_t, + pub st_ctimensec: c_long, + pub st_birthtime: crate::time_t, + pub st_birthtimensec: c_long, + pub st_size: off_t, + pub st_blocks: crate::blkcnt_t, + pub st_blksize: crate::blksize_t, pub st_flags: u32, pub st_gen: u32, pub st_spare: [u32; 2], } pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: ::socklen_t, - pub ai_canonname: *mut ::c_char, - pub ai_addr: *mut ::sockaddr, - pub ai_next: *mut ::addrinfo, + pub ai_flags: c_int, + pub ai_family: c_int, + pub ai_socktype: c_int, + pub ai_protocol: c_int, + pub ai_addrlen: crate::socklen_t, + pub ai_canonname: *mut c_char, + pub ai_addr: *mut crate::sockaddr, + pub ai_next: *mut crate::addrinfo, } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - __pad1: ::c_int, - pub si_addr: *mut ::c_void, + pub si_signo: c_int, + pub si_code: c_int, + pub si_errno: c_int, + __pad1: c_int, + pub si_addr: *mut c_void, __pad2: [u64; 13], } pub struct pthread_attr_t { - pta_magic: ::c_uint, - pta_flags: ::c_int, - pta_private: *mut ::c_void, + pta_magic: c_uint, + pta_flags: c_int, + pta_private: *mut c_void, } pub struct pthread_mutex_t { - ptm_magic: ::c_uint, + ptm_magic: c_uint, ptm_errorcheck: __pthread_spin_t, #[cfg(any( target_arch = "sparc", @@ -240,61 +245,61 @@ s! { target_arch = "x86_64" ))] ptm_pad2: [u8; 3], - ptm_owner: ::pthread_t, + ptm_owner: crate::pthread_t, ptm_waiters: *mut u8, - ptm_recursed: ::c_uint, - ptm_spare2: *mut ::c_void, + ptm_recursed: c_uint, + ptm_spare2: *mut c_void, } pub struct pthread_mutexattr_t { - ptma_magic: ::c_uint, - ptma_private: *mut ::c_void, + ptma_magic: c_uint, + ptma_private: *mut c_void, } pub struct pthread_rwlockattr_t { - ptra_magic: ::c_uint, - ptra_private: *mut ::c_void, + ptra_magic: c_uint, + ptra_private: *mut c_void, } pub struct pthread_cond_t { - ptc_magic: ::c_uint, + ptc_magic: c_uint, ptc_lock: __pthread_spin_t, ptc_waiters_first: *mut u8, ptc_waiters_last: *mut u8, - ptc_mutex: *mut ::pthread_mutex_t, - ptc_private: *mut ::c_void, + ptc_mutex: *mut crate::pthread_mutex_t, + ptc_private: *mut c_void, } pub struct pthread_condattr_t { - ptca_magic: ::c_uint, - ptca_private: *mut ::c_void, + ptca_magic: c_uint, + ptca_private: *mut c_void, } pub struct pthread_rwlock_t { - ptr_magic: ::c_uint, + ptr_magic: c_uint, ptr_interlock: __pthread_spin_t, ptr_rblocked_first: *mut u8, ptr_rblocked_last: *mut u8, ptr_wblocked_first: *mut u8, ptr_wblocked_last: *mut u8, - ptr_nreaders: ::c_uint, - ptr_owner: ::pthread_t, - ptr_private: *mut ::c_void, + ptr_nreaders: c_uint, + ptr_owner: crate::pthread_t, + ptr_private: *mut c_void, } pub struct pthread_spinlock_t { - pts_magic: ::c_uint, - pts_spin: ::pthread_spin_t, - pts_flags: ::c_int, + pts_magic: c_uint, + pts_spin: crate::pthread_spin_t, + pts_flags: c_int, } pub struct kevent { - pub ident: ::uintptr_t, + pub ident: crate::uintptr_t, pub filter: u32, pub flags: u32, pub fflags: u32, pub data: i64, - pub udata: ::intptr_t, /* FIXME: NetBSD 10.0 will finally have same layout as other BSD */ + pub udata: intptr_t, /* FIXME: NetBSD 10.0 will finally have same layout as other BSD */ } pub struct dqblk { @@ -309,44 +314,44 @@ s! { } pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *const ::c_void, + pub dli_fname: *const c_char, + pub dli_fbase: *mut c_void, + pub dli_sname: *const c_char, + pub dli_saddr: *const c_void, } pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, + pub decimal_point: *mut c_char, + pub thousands_sep: *mut c_char, + pub grouping: *mut c_char, + pub int_curr_symbol: *mut c_char, + pub currency_symbol: *mut c_char, + pub mon_decimal_point: *mut c_char, + pub mon_thousands_sep: *mut c_char, + pub mon_grouping: *mut c_char, + pub positive_sign: *mut c_char, + pub negative_sign: *mut c_char, + pub int_frac_digits: c_char, + pub frac_digits: c_char, + pub p_cs_precedes: c_char, + pub p_sep_by_space: c_char, + pub n_cs_precedes: c_char, + pub n_sep_by_space: c_char, + pub p_sign_posn: c_char, + pub n_sign_posn: c_char, + pub int_p_cs_precedes: c_char, + pub int_n_cs_precedes: c_char, + pub int_p_sep_by_space: c_char, + pub int_n_sep_by_space: c_char, + pub int_p_sign_posn: c_char, + pub int_n_sign_posn: c_char, } pub struct if_data { - pub ifi_type: ::c_uchar, - pub ifi_addrlen: ::c_uchar, - pub ifi_hdrlen: ::c_uchar, - pub ifi_link_state: ::c_int, + pub ifi_type: c_uchar, + pub ifi_addrlen: c_uchar, + pub ifi_hdrlen: c_uchar, + pub ifi_link_state: c_int, pub ifi_mtu: u64, pub ifi_metric: u64, pub ifi_baudrate: u64, @@ -361,52 +366,52 @@ s! { pub ifi_omcasts: u64, pub ifi_iqdrops: u64, pub ifi_noproto: u64, - pub ifi_lastchange: ::timespec, + pub ifi_lastchange: crate::timespec, } pub struct if_msghdr { - pub ifm_msglen: ::c_ushort, - pub ifm_version: ::c_uchar, - pub ifm_type: ::c_uchar, - pub ifm_addrs: ::c_int, - pub ifm_flags: ::c_int, - pub ifm_index: ::c_ushort, + pub ifm_msglen: c_ushort, + pub ifm_version: c_uchar, + pub ifm_type: c_uchar, + pub ifm_addrs: c_int, + pub ifm_flags: c_int, + pub ifm_index: c_ushort, pub ifm_data: if_data, } pub struct sockcred { - pub sc_pid: ::pid_t, - pub sc_uid: ::uid_t, - pub sc_euid: ::uid_t, - pub sc_gid: ::gid_t, - pub sc_egid: ::gid_t, - pub sc_ngroups: ::c_int, - pub sc_groups: [::gid_t; 1], + pub sc_pid: crate::pid_t, + pub sc_uid: crate::uid_t, + pub sc_euid: crate::uid_t, + pub sc_gid: crate::gid_t, + pub sc_egid: crate::gid_t, + pub sc_ngroups: c_int, + pub sc_groups: [crate::gid_t; 1], } pub struct uucred { - pub cr_unused: ::c_ushort, - pub cr_uid: ::uid_t, - pub cr_gid: ::gid_t, - pub cr_ngroups: ::c_int, - pub cr_groups: [::gid_t; NGROUPS_MAX as usize], + pub cr_unused: c_ushort, + pub cr_uid: crate::uid_t, + pub cr_gid: crate::gid_t, + pub cr_ngroups: c_int, + pub cr_groups: [crate::gid_t; NGROUPS_MAX as usize], } pub struct unpcbid { - pub unp_pid: ::pid_t, - pub unp_euid: ::uid_t, - pub unp_egid: ::gid_t, + pub unp_pid: crate::pid_t, + pub unp_euid: crate::uid_t, + pub unp_egid: crate::gid_t, } pub struct sockaddr_dl { - pub sdl_len: ::c_uchar, - pub sdl_family: ::c_uchar, - pub sdl_index: ::c_ushort, + pub sdl_len: c_uchar, + pub sdl_family: c_uchar, + pub sdl_index: c_ushort, pub sdl_type: u8, pub sdl_nlen: u8, pub sdl_alen: u8, pub sdl_slen: u8, - pub sdl_data: [::c_char; 12], + pub sdl_data: [c_char; 12], } pub struct __exit_status { @@ -415,56 +420,56 @@ 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, - _shm_internal: *mut ::c_void, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_lpid: crate::pid_t, + pub shm_cpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + _shm_internal: *mut c_void, } pub struct utmp { - pub ut_line: [::c_char; UT_LINESIZE], - pub ut_name: [::c_char; UT_NAMESIZE], - pub ut_host: [::c_char; UT_HOSTSIZE], - pub ut_time: ::time_t, + pub ut_line: [c_char; UT_LINESIZE], + pub ut_name: [c_char; UT_NAMESIZE], + pub ut_host: [c_char; UT_HOSTSIZE], + pub ut_time: crate::time_t, } pub struct lastlog { - pub ll_line: [::c_char; UT_LINESIZE], - pub ll_host: [::c_char; UT_HOSTSIZE], - pub ll_time: ::time_t, + pub ll_line: [c_char; UT_LINESIZE], + pub ll_host: [c_char; UT_HOSTSIZE], + pub ll_time: crate::time_t, } pub struct timex { - pub modes: ::c_uint, - pub offset: ::c_long, - pub freq: ::c_long, - pub maxerror: ::c_long, - pub esterror: ::c_long, - pub status: ::c_int, - pub constant: ::c_long, - pub precision: ::c_long, - pub tolerance: ::c_long, - pub ppsfreq: ::c_long, - pub jitter: ::c_long, - pub shift: ::c_int, - pub stabil: ::c_long, - pub jitcnt: ::c_long, - pub calcnt: ::c_long, - pub errcnt: ::c_long, - pub stbcnt: ::c_long, + pub modes: c_uint, + pub offset: c_long, + pub freq: c_long, + pub maxerror: c_long, + pub esterror: c_long, + pub status: c_int, + pub constant: c_long, + pub precision: c_long, + pub tolerance: c_long, + pub ppsfreq: c_long, + pub jitter: c_long, + pub shift: c_int, + pub stabil: c_long, + pub jitcnt: c_long, + pub calcnt: c_long, + pub errcnt: c_long, + pub stbcnt: c_long, } pub struct ntptimeval { - pub time: ::timespec, - pub maxerror: ::c_long, - pub esterror: ::c_long, - pub tai: ::c_long, - pub time_state: ::c_int, + pub time: crate::timespec, + pub maxerror: c_long, + pub esterror: c_long, + pub tai: c_long, + pub time_state: c_int, } // elf.h @@ -505,13 +510,13 @@ s! { pub struct dl_phdr_info { pub dlpi_addr: Elf_Addr, - pub dlpi_name: *const ::c_char, + pub dlpi_name: *const c_char, pub dlpi_phdr: *const Elf_Phdr, pub dlpi_phnum: Elf_Half, - pub dlpi_adds: ::c_ulonglong, - pub dlpi_subs: ::c_ulonglong, + pub dlpi_adds: c_ulonglong, + pub dlpi_subs: c_ulonglong, pub dlpi_tls_modid: usize, - pub dlpi_tls_data: *mut ::c_void, + pub dlpi_tls_data: *mut c_void, } pub struct _cpuset { @@ -519,8 +524,8 @@ s! { } pub struct accept_filter_arg { - pub af_name: [::c_char; 16], - af_arg: [::c_char; 256 - 16], + pub af_name: [c_char; 16], + af_arg: [c_char; 256 - 16], } pub struct ki_sigset_t { @@ -581,10 +586,10 @@ s! { pub p_nice: u8, pub p_xstat: u16, pub p_acflag: u16, - pub p_comm: [::c_char; KI_MAXCOMLEN as usize], - pub p_wmesg: [::c_char; KI_WMESGLEN as usize], + pub p_comm: [c_char; KI_MAXCOMLEN as usize], + pub p_wmesg: [c_char; KI_WMESGLEN as usize], pub p_wchan: u64, - pub p_login: [::c_char; KI_MAXLOGNAME as usize], + pub p_login: [c_char; KI_MAXLOGNAME as usize], pub p_vm_rssize: i32, pub p_vm_tsize: i32, pub p_vm_dsize: i32, @@ -619,7 +624,7 @@ s! { pub p_realstat: u64, pub p_svuid: u32, pub p_svgid: u32, - pub p_ename: [::c_char; KI_MAXEMULLEN as usize], + pub p_ename: [c_char; KI_MAXEMULLEN as usize], pub p_vm_vsize: i64, pub p_vm_msize: i64, } @@ -640,7 +645,7 @@ s! { pub l_stat: i8, l_pad1: i8, l_pad2: i32, - pub l_wmesg: [::c_char; KI_WMESGLEN as usize], + pub l_wmesg: [c_char; KI_WMESGLEN as usize], pub l_wchan: u64, pub l_cpuid: u64, pub l_rtime_sec: u32, @@ -648,7 +653,7 @@ s! { pub l_cpticks: u32, pub l_pctcpu: u32, pub l_pid: u32, - pub l_name: [::c_char; KI_LNAMELEN as usize], + pub l_name: [c_char; KI_LNAMELEN as usize], } pub struct kinfo_vmentry { @@ -671,51 +676,51 @@ s! { pub kve_vn_rdev: u64, pub kve_vn_type: u32, pub kve_vn_mode: u32, - pub kve_path: [[::c_char; 32]; 32], + pub kve_path: [[c_char; 32]; 32], } pub struct __c_anonymous_posix_spawn_fae_open { - pub path: *mut ::c_char, - pub oflag: ::c_int, - pub mode: ::mode_t, + pub path: *mut c_char, + pub oflag: c_int, + pub mode: crate::mode_t, } pub struct __c_anonymous_posix_spawn_fae_dup2 { - pub newfildes: ::c_int, + pub newfildes: c_int, } pub struct posix_spawnattr_t { - pub sa_flags: ::c_short, - pub sa_pgroup: ::pid_t, - pub sa_schedparam: ::sched_param, - pub sa_schedpolicy: ::c_int, + pub sa_flags: c_short, + pub sa_pgroup: crate::pid_t, + pub sa_schedparam: crate::sched_param, + pub sa_schedpolicy: c_int, pub sa_sigdefault: sigset_t, pub sa_sigmask: sigset_t, } pub struct posix_spawn_file_actions_entry_t { pub fae_action: fae_action, - pub fae_fildes: ::c_int, + pub fae_fildes: c_int, pub fae_data: __c_anonymous_posix_spawn_fae, } pub struct posix_spawn_file_actions_t { - pub size: ::c_uint, - pub len: ::c_uint, + pub size: c_uint, + pub len: c_uint, pub fae: *mut posix_spawn_file_actions_entry_t, } pub struct ptrace_lwpinfo { pub pl_lwpid: lwpid_t, - pub pl_event: ::c_int, + pub pl_event: c_int, } pub struct ptrace_lwpstatus { pub pl_lwpid: lwpid_t, pub pl_sigpend: sigset_t, pub pl_sigmask: sigset_t, - pub pl_name: [::c_char; 20], - pub pl_private: *mut ::c_void, + pub pl_name: [c_char; 20], + pub pl_private: *mut c_void, } pub struct ptrace_siginfo { @@ -724,22 +729,22 @@ s! { } pub struct ptrace_event { - pub pe_set_event: ::c_int, + pub pe_set_event: c_int, } pub struct sysctldesc { pub descr_num: i32, pub descr_ver: u32, pub descr_len: u32, - pub descr_str: [::c_char; 1], + pub descr_str: [c_char; 1], } pub struct ifreq { - pub _priv: [[::c_char; 6]; 24], + pub _priv: [[c_char; 6]; 24], } pub struct ifconf { - pub ifc_len: ::c_int, + pub ifc_len: c_int, pub ifc_ifcu: __c_anonymous_ifc_ifcu, } @@ -789,29 +794,29 @@ s! { s_no_extra_traits! { pub struct utmpx { - pub ut_name: [::c_char; _UTX_USERSIZE], - pub ut_id: [::c_char; _UTX_IDSIZE], - pub ut_line: [::c_char; _UTX_LINESIZE], - pub ut_host: [::c_char; _UTX_HOSTSIZE], + pub ut_name: [c_char; _UTX_USERSIZE], + pub ut_id: [c_char; _UTX_IDSIZE], + pub ut_line: [c_char; _UTX_LINESIZE], + pub ut_host: [c_char; _UTX_HOSTSIZE], pub ut_session: u16, pub ut_type: u16, - pub ut_pid: ::pid_t, + pub ut_pid: crate::pid_t, pub ut_exit: __exit_status, // FIXME: when anonymous struct are supported pub ut_ss: sockaddr_storage, - pub ut_tv: ::timeval, + pub ut_tv: crate::timeval, pub ut_pad: [u8; _UTX_PADSIZE], } pub struct lastlogx { - pub ll_tv: ::timeval, - pub ll_line: [::c_char; _UTX_LINESIZE], - pub ll_host: [::c_char; _UTX_HOSTSIZE], + pub ll_tv: crate::timeval, + pub ll_line: [c_char; _UTX_LINESIZE], + pub ll_host: [c_char; _UTX_HOSTSIZE], pub ll_ss: sockaddr_storage, } pub struct in_pktinfo { - pub ipi_addr: ::in_addr, - pub ipi_ifindex: ::c_uint, + pub ipi_addr: crate::in_addr, + pub ipi_ifindex: c_uint, } pub struct arphdr { @@ -823,7 +828,7 @@ s_no_extra_traits! { } pub struct in_addr { - pub s_addr: ::in_addr_t, + pub s_addr: crate::in_addr_t, } pub struct ip_mreq { @@ -833,35 +838,35 @@ s_no_extra_traits! { pub struct sockaddr_in { pub sin_len: u8, - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, + pub sin_family: crate::sa_family_t, + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, pub sin_zero: [i8; 8], } pub struct dirent { - pub d_fileno: ::ino_t, + pub d_fileno: crate::ino_t, pub d_reclen: u16, pub d_namlen: u16, pub d_type: u8, - pub d_name: [::c_char; 512], + pub d_name: [c_char; 512], } pub struct statvfs { - pub f_flag: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_iosize: ::c_ulong, + pub f_flag: c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_iosize: c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_bresvd: ::fsblkcnt_t, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_bresvd: crate::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fresvd: ::fsfilcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fresvd: crate::fsfilcnt_t, pub f_syncreads: u64, pub f_syncwrites: u64, @@ -869,32 +874,32 @@ s_no_extra_traits! { pub f_asyncreads: u64, pub f_asyncwrites: u64, - pub f_fsidx: ::fsid_t, - pub f_fsid: ::c_ulong, - pub f_namemax: ::c_ulong, - pub f_owner: ::uid_t, + pub f_fsidx: crate::fsid_t, + pub f_fsid: c_ulong, + pub f_namemax: c_ulong, + pub f_owner: crate::uid_t, pub f_spare: [u32; 4], - pub f_fstypename: [::c_char; 32], - pub f_mntonname: [::c_char; 1024], - pub f_mntfromname: [::c_char; 1024], + pub f_fstypename: [c_char; 32], + pub f_mntonname: [c_char; 1024], + pub f_mntfromname: [c_char; 1024], } pub struct sockaddr_storage { pub ss_len: u8, - pub ss_family: ::sa_family_t, + pub ss_family: crate::sa_family_t, __ss_pad1: [u8; 6], __ss_pad2: i64, __ss_pad3: [u8; 112], } pub struct sigevent { - pub sigev_notify: ::c_int, - pub sigev_signo: ::c_int, - pub sigev_value: ::sigval, - __unused1: *mut ::c_void, //actually a function pointer - pub sigev_notify_attributes: *mut ::c_void, + pub sigev_notify: c_int, + pub sigev_signo: c_int, + pub sigev_value: crate::sigval, + __unused1: *mut c_void, //actually a function pointer + pub sigev_notify_attributes: *mut c_void, } pub union __c_anonymous_posix_spawn_fae { @@ -903,7 +908,7 @@ s_no_extra_traits! { } pub union __c_anonymous_ifc_ifcu { - pub ifcu_buf: *mut ::c_void, + pub ifcu_buf: *mut c_void, pub ifcu_req: *mut ifreq, } } @@ -936,8 +941,8 @@ cfg_if! { impl Eq for utmpx {} - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utmpx { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utmpx") .field("ut_name", &self.ut_name) .field("ut_id", &self.ut_id) @@ -954,8 +959,8 @@ cfg_if! { } } - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_name.hash(state); self.ut_type.hash(state); self.ut_pid.hash(state); @@ -985,8 +990,8 @@ cfg_if! { impl Eq for lastlogx {} - impl ::fmt::Debug for lastlogx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for lastlogx { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("lastlogx") .field("ll_tv", &self.ll_tv) .field("ll_line", &self.ll_line) @@ -996,8 +1001,8 @@ cfg_if! { } } - impl ::hash::Hash for lastlogx { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for lastlogx { + fn hash(&self, state: &mut H) { self.ll_tv.hash(state); self.ll_line.hash(state); self.ll_host.hash(state); @@ -1011,16 +1016,16 @@ cfg_if! { } } impl Eq for in_pktinfo {} - impl ::fmt::Debug for in_pktinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for in_pktinfo { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("in_pktinfo") .field("ipi_addr", &self.ipi_addr) .field("ipi_ifindex", &self.ipi_ifindex) .finish() } } - impl ::hash::Hash for in_pktinfo { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for in_pktinfo { + fn hash(&self, state: &mut H) { self.ipi_addr.hash(state); self.ipi_ifindex.hash(state); } @@ -1036,8 +1041,8 @@ cfg_if! { } } impl Eq for arphdr {} - impl ::fmt::Debug for arphdr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for arphdr { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { let ar_hrd = self.ar_hrd; let ar_pro = self.ar_pro; let ar_op = self.ar_op; @@ -1050,8 +1055,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for arphdr { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for arphdr { + fn hash(&self, state: &mut H) { let ar_hrd = self.ar_hrd; let ar_pro = self.ar_pro; let ar_op = self.ar_op; @@ -1069,14 +1074,14 @@ cfg_if! { } } impl Eq for in_addr {} - impl ::fmt::Debug for in_addr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for in_addr { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { let s_addr = self.s_addr; f.debug_struct("in_addr").field("s_addr", &s_addr).finish() } } - impl ::hash::Hash for in_addr { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for in_addr { + fn hash(&self, state: &mut H) { let s_addr = self.s_addr; s_addr.hash(state); } @@ -1089,16 +1094,16 @@ cfg_if! { } } impl Eq for ip_mreq {} - impl ::fmt::Debug for ip_mreq { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ip_mreq { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ip_mreq") .field("imr_multiaddr", &self.imr_multiaddr) .field("imr_interface", &self.imr_interface) .finish() } } - impl ::hash::Hash for ip_mreq { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ip_mreq { + fn hash(&self, state: &mut H) { self.imr_multiaddr.hash(state); self.imr_interface.hash(state); } @@ -1114,8 +1119,8 @@ cfg_if! { } } impl Eq for sockaddr_in {} - impl ::fmt::Debug for sockaddr_in { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_in { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_in") .field("sin_len", &self.sin_len) .field("sin_family", &self.sin_family) @@ -1125,8 +1130,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sockaddr_in { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_in { + fn hash(&self, state: &mut H) { self.sin_len.hash(state); self.sin_family.hash(state); self.sin_port.hash(state); @@ -1149,8 +1154,8 @@ cfg_if! { } } impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent") .field("d_fileno", &self.d_fileno) .field("d_reclen", &self.d_reclen) @@ -1160,8 +1165,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_fileno.hash(state); self.d_reclen.hash(state); self.d_namlen.hash(state); @@ -1207,8 +1212,8 @@ cfg_if! { } } impl Eq for statvfs {} - impl ::fmt::Debug for statvfs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for statvfs { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("statvfs") .field("f_flag", &self.f_flag) .field("f_bsize", &self.f_bsize) @@ -1237,8 +1242,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for statvfs { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for statvfs { + fn hash(&self, state: &mut H) { self.f_flag.hash(state); self.f_bsize.hash(state); self.f_frsize.hash(state); @@ -1280,8 +1285,8 @@ cfg_if! { } } impl Eq for sockaddr_storage {} - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_len", &self.ss_len) .field("ss_family", &self.ss_family) @@ -1291,8 +1296,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_len.hash(state); self.ss_family.hash(state); self.__ss_pad1.hash(state); @@ -1310,8 +1315,8 @@ cfg_if! { } } impl Eq for sigevent {} - impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sigevent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sigevent") .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) @@ -1320,8 +1325,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); self.sigev_signo.hash(state); self.sigev_value.hash(state); @@ -1337,8 +1342,8 @@ cfg_if! { } } - impl ::fmt::Debug for __c_anonymous_posix_spawn_fae { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_posix_spawn_fae { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { unsafe { f.debug_struct("__c_anonymous_posix_fae") .field("open", &self.open) @@ -1348,8 +1353,8 @@ cfg_if! { } } - impl ::hash::Hash for __c_anonymous_posix_spawn_fae { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_posix_spawn_fae { + fn hash(&self, state: &mut H) { unsafe { self.open.hash(state); self.dup2.hash(state); @@ -1365,8 +1370,8 @@ cfg_if! { } } - impl ::fmt::Debug for __c_anonymous_ifc_ifcu { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_ifc_ifcu { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { unsafe { f.debug_struct("__c_anonymous_ifc_ifcu") .field("ifcu_buf", &self.ifcu_buf) @@ -1376,8 +1381,8 @@ cfg_if! { } } - impl ::hash::Hash for __c_anonymous_ifc_ifcu { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_ifc_ifcu { + fn hash(&self, state: &mut H) { unsafe { self.ifcu_buf.hash(state); self.ifcu_req.hash(state); @@ -1387,127 +1392,127 @@ cfg_if! { } } -pub const AT_FDCWD: ::c_int = -100; -pub const AT_EACCESS: ::c_int = 0x100; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x200; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400; -pub const AT_REMOVEDIR: ::c_int = 0x800; - -pub const AT_NULL: ::c_int = 0; -pub const AT_IGNORE: ::c_int = 1; -pub const AT_EXECFD: ::c_int = 2; -pub const AT_PHDR: ::c_int = 3; -pub const AT_PHENT: ::c_int = 4; -pub const AT_PHNUM: ::c_int = 5; -pub const AT_PAGESZ: ::c_int = 6; -pub const AT_BASE: ::c_int = 7; -pub const AT_FLAGS: ::c_int = 8; -pub const AT_ENTRY: ::c_int = 9; -pub const AT_DCACHEBSIZE: ::c_int = 10; -pub const AT_ICACHEBSIZE: ::c_int = 11; -pub const AT_UCACHEBSIZE: ::c_int = 12; -pub const AT_STACKBASE: ::c_int = 13; -pub const AT_EUID: ::c_int = 2000; -pub const AT_RUID: ::c_int = 2001; -pub const AT_EGID: ::c_int = 2002; -pub const AT_RGID: ::c_int = 2003; -pub const AT_SUN_LDELF: ::c_int = 2004; -pub const AT_SUN_LDSHDR: ::c_int = 2005; -pub const AT_SUN_LDNAME: ::c_int = 2006; -pub const AT_SUN_LDPGSIZE: ::c_int = 2007; -pub const AT_SUN_PLATFORM: ::c_int = 2008; -pub const AT_SUN_HWCAP: ::c_int = 2009; -pub const AT_SUN_IFLUSH: ::c_int = 2010; -pub const AT_SUN_CPU: ::c_int = 2011; -pub const AT_SUN_EMUL_ENTRY: ::c_int = 2012; -pub const AT_SUN_EMUL_EXECFD: ::c_int = 2013; -pub const AT_SUN_EXECNAME: ::c_int = 2014; - -pub const EXTATTR_NAMESPACE_USER: ::c_int = 1; -pub const EXTATTR_NAMESPACE_SYSTEM: ::c_int = 2; - -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; -pub const LC_NUMERIC_MASK: ::c_int = 1 << ::LC_NUMERIC; -pub const LC_TIME_MASK: ::c_int = 1 << ::LC_TIME; -pub const LC_MESSAGES_MASK: ::c_int = 1 << ::LC_MESSAGES; -pub const LC_ALL_MASK: ::c_int = !0; - -pub const ERA: ::nl_item = 52; -pub const ERA_D_FMT: ::nl_item = 53; -pub const ERA_D_T_FMT: ::nl_item = 54; -pub const ERA_T_FMT: ::nl_item = 55; -pub const ALT_DIGITS: ::nl_item = 56; - -pub const O_CLOEXEC: ::c_int = 0x400000; -pub const O_ALT_IO: ::c_int = 0x40000; -pub const O_NOSIGPIPE: ::c_int = 0x1000000; -pub const O_SEARCH: ::c_int = 0x800000; -pub const O_DIRECTORY: ::c_int = 0x200000; -pub const O_DIRECT: ::c_int = 0x00080000; -pub const O_RSYNC: ::c_int = 0x00020000; - -pub const MS_SYNC: ::c_int = 0x4; -pub const MS_INVALIDATE: ::c_int = 0x2; +pub const AT_FDCWD: c_int = -100; +pub const AT_EACCESS: c_int = 0x100; +pub const AT_SYMLINK_NOFOLLOW: c_int = 0x200; +pub const AT_SYMLINK_FOLLOW: c_int = 0x400; +pub const AT_REMOVEDIR: c_int = 0x800; + +pub const AT_NULL: c_int = 0; +pub const AT_IGNORE: c_int = 1; +pub const AT_EXECFD: c_int = 2; +pub const AT_PHDR: c_int = 3; +pub const AT_PHENT: c_int = 4; +pub const AT_PHNUM: c_int = 5; +pub const AT_PAGESZ: c_int = 6; +pub const AT_BASE: c_int = 7; +pub const AT_FLAGS: c_int = 8; +pub const AT_ENTRY: c_int = 9; +pub const AT_DCACHEBSIZE: c_int = 10; +pub const AT_ICACHEBSIZE: c_int = 11; +pub const AT_UCACHEBSIZE: c_int = 12; +pub const AT_STACKBASE: c_int = 13; +pub const AT_EUID: c_int = 2000; +pub const AT_RUID: c_int = 2001; +pub const AT_EGID: c_int = 2002; +pub const AT_RGID: c_int = 2003; +pub const AT_SUN_LDELF: c_int = 2004; +pub const AT_SUN_LDSHDR: c_int = 2005; +pub const AT_SUN_LDNAME: c_int = 2006; +pub const AT_SUN_LDPGSIZE: c_int = 2007; +pub const AT_SUN_PLATFORM: c_int = 2008; +pub const AT_SUN_HWCAP: c_int = 2009; +pub const AT_SUN_IFLUSH: c_int = 2010; +pub const AT_SUN_CPU: c_int = 2011; +pub const AT_SUN_EMUL_ENTRY: c_int = 2012; +pub const AT_SUN_EMUL_EXECFD: c_int = 2013; +pub const AT_SUN_EXECNAME: c_int = 2014; + +pub const EXTATTR_NAMESPACE_USER: c_int = 1; +pub const EXTATTR_NAMESPACE_SYSTEM: c_int = 2; + +pub const LC_COLLATE_MASK: c_int = 1 << crate::LC_COLLATE; +pub const LC_CTYPE_MASK: c_int = 1 << crate::LC_CTYPE; +pub const LC_MONETARY_MASK: c_int = 1 << crate::LC_MONETARY; +pub const LC_NUMERIC_MASK: c_int = 1 << crate::LC_NUMERIC; +pub const LC_TIME_MASK: c_int = 1 << crate::LC_TIME; +pub const LC_MESSAGES_MASK: c_int = 1 << crate::LC_MESSAGES; +pub const LC_ALL_MASK: c_int = !0; + +pub const ERA: crate::nl_item = 52; +pub const ERA_D_FMT: crate::nl_item = 53; +pub const ERA_D_T_FMT: crate::nl_item = 54; +pub const ERA_T_FMT: crate::nl_item = 55; +pub const ALT_DIGITS: crate::nl_item = 56; + +pub const O_CLOEXEC: c_int = 0x400000; +pub const O_ALT_IO: c_int = 0x40000; +pub const O_NOSIGPIPE: c_int = 0x1000000; +pub const O_SEARCH: c_int = 0x800000; +pub const O_DIRECTORY: c_int = 0x200000; +pub const O_DIRECT: c_int = 0x00080000; +pub const O_RSYNC: c_int = 0x00020000; + +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/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; +pub const RLIMIT_SBSIZE: c_int = 9; +pub const RLIMIT_AS: c_int = 10; +pub const RLIMIT_NTHR: c_int = 11; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIM_NLIMITS: ::c_int = 12; - -pub const EIDRM: ::c_int = 82; -pub const ENOMSG: ::c_int = 83; -pub const EOVERFLOW: ::c_int = 84; -pub const EILSEQ: ::c_int = 85; -pub const ENOTSUP: ::c_int = 86; -pub const ECANCELED: ::c_int = 87; -pub const EBADMSG: ::c_int = 88; -pub const ENODATA: ::c_int = 89; -pub const ENOSR: ::c_int = 90; -pub const ENOSTR: ::c_int = 91; -pub const ETIME: ::c_int = 92; -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 EOWNERDEAD: ::c_int = 97; -pub const ENOTRECOVERABLE: ::c_int = 98; +pub const RLIM_NLIMITS: c_int = 12; + +pub const EIDRM: c_int = 82; +pub const ENOMSG: c_int = 83; +pub const EOVERFLOW: c_int = 84; +pub const EILSEQ: c_int = 85; +pub const ENOTSUP: c_int = 86; +pub const ECANCELED: c_int = 87; +pub const EBADMSG: c_int = 88; +pub const ENODATA: c_int = 89; +pub const ENOSR: c_int = 90; +pub const ENOSTR: c_int = 91; +pub const ETIME: c_int = 92; +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 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; -pub const F_GETNOSIGPIPE: ::c_int = 13; -pub const F_SETNOSIGPIPE: ::c_int = 14; -pub const F_MAXFD: ::c_int = 11; -pub const F_GETPATH: ::c_int = 15; - -pub const FUTEX_WAIT: ::c_int = 0; -pub const FUTEX_WAKE: ::c_int = 1; -pub const FUTEX_FD: ::c_int = 2; -pub const FUTEX_REQUEUE: ::c_int = 3; -pub const FUTEX_CMP_REQUEUE: ::c_int = 4; -pub const FUTEX_WAKE_OP: ::c_int = 5; -pub const FUTEX_LOCK_PI: ::c_int = 6; -pub const FUTEX_UNLOCK_PI: ::c_int = 7; -pub const FUTEX_TRYLOCK_PI: ::c_int = 8; -pub const FUTEX_WAIT_BITSET: ::c_int = 9; -pub const FUTEX_WAKE_BITSET: ::c_int = 10; -pub const FUTEX_WAIT_REQUEUE_PI: ::c_int = 11; -pub const FUTEX_CMP_REQUEUE_PI: ::c_int = 12; -pub const FUTEX_PRIVATE_FLAG: ::c_int = 1 << 7; -pub const FUTEX_CLOCK_REALTIME: ::c_int = 1 << 8; -pub const FUTEX_CMD_MASK: ::c_int = !(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME); +pub const ELAST: c_int = 98; + +pub const F_DUPFD_CLOEXEC: c_int = 12; +pub const F_CLOSEM: c_int = 10; +pub const F_GETNOSIGPIPE: c_int = 13; +pub const F_SETNOSIGPIPE: c_int = 14; +pub const F_MAXFD: c_int = 11; +pub const F_GETPATH: c_int = 15; + +pub const FUTEX_WAIT: c_int = 0; +pub const FUTEX_WAKE: c_int = 1; +pub const FUTEX_FD: c_int = 2; +pub const FUTEX_REQUEUE: c_int = 3; +pub const FUTEX_CMP_REQUEUE: c_int = 4; +pub const FUTEX_WAKE_OP: c_int = 5; +pub const FUTEX_LOCK_PI: c_int = 6; +pub const FUTEX_UNLOCK_PI: c_int = 7; +pub const FUTEX_TRYLOCK_PI: c_int = 8; +pub const FUTEX_WAIT_BITSET: c_int = 9; +pub const FUTEX_WAKE_BITSET: c_int = 10; +pub const FUTEX_WAIT_REQUEUE_PI: c_int = 11; +pub const FUTEX_CMP_REQUEUE_PI: c_int = 12; +pub const FUTEX_PRIVATE_FLAG: c_int = 1 << 7; +pub const FUTEX_CLOCK_REALTIME: c_int = 1 << 8; +pub const FUTEX_CMD_MASK: c_int = !(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME); pub const FUTEX_WAITERS: u32 = 1 << 31; pub const FUTEX_OWNER_DIED: u32 = 1 << 30; pub const FUTEX_SYNCOBJ_1: u32 = 1 << 29; @@ -1515,57 +1520,57 @@ pub const FUTEX_SYNCOBJ_0: u32 = 1 << 28; pub const FUTEX_TID_MASK: u32 = (1 << 28) - 1; pub const FUTEX_BITSET_MATCH_ANY: u32 = !0; -pub const IP_RECVDSTADDR: ::c_int = 7; -pub const IP_SENDSRCADDR: ::c_int = IP_RECVDSTADDR; -pub const IP_RECVIF: ::c_int = 20; -pub const IP_PKTINFO: ::c_int = 25; -pub const IP_RECVPKTINFO: ::c_int = 26; -pub const IPV6_JOIN_GROUP: ::c_int = 12; -pub const IPV6_LEAVE_GROUP: ::c_int = 13; - -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_MD5SIG: ::c_int = 0x10; -pub const TCP_CONGCTL: ::c_int = 0x20; - -pub const SOCK_CONN_DGRAM: ::c_int = 6; -pub const SOCK_DCCP: ::c_int = SOCK_CONN_DGRAM; -pub const SOCK_NOSIGPIPE: ::c_int = 0x40000000; -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; -pub const SO_NOHEADER: ::c_int = 0x100a; +pub const IP_RECVDSTADDR: c_int = 7; +pub const IP_SENDSRCADDR: c_int = IP_RECVDSTADDR; +pub const IP_RECVIF: c_int = 20; +pub const IP_PKTINFO: c_int = 25; +pub const IP_RECVPKTINFO: c_int = 26; +pub const IPV6_JOIN_GROUP: c_int = 12; +pub const IPV6_LEAVE_GROUP: c_int = 13; + +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_MD5SIG: c_int = 0x10; +pub const TCP_CONGCTL: c_int = 0x20; + +pub const SOCK_CONN_DGRAM: c_int = 6; +pub const SOCK_DCCP: c_int = SOCK_CONN_DGRAM; +pub const SOCK_NOSIGPIPE: c_int = 0x40000000; +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; +pub const SO_NOHEADER: c_int = 0x100a; // http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/un.h?annotate -pub const LOCAL_OCREDS: ::c_int = 0x0001; // pass credentials to receiver -pub const LOCAL_CONNWAIT: ::c_int = 0x0002; // connects block until accepted -pub const LOCAL_PEEREID: ::c_int = 0x0003; // get peer identification -pub const LOCAL_CREDS: ::c_int = 0x0004; // pass credentials to receiver +pub const LOCAL_OCREDS: c_int = 0x0001; // pass credentials to receiver +pub const LOCAL_CONNWAIT: c_int = 0x0002; // connects block until accepted +pub const LOCAL_PEEREID: c_int = 0x0003; // get peer identification +pub const LOCAL_CREDS: c_int = 0x0004; // pass credentials to receiver // https://github.com/NetBSD/src/blob/trunk/sys/net/if.h#L373 -pub const IFF_UP: ::c_int = 0x0001; // interface is up -pub const IFF_BROADCAST: ::c_int = 0x0002; // broadcast address valid -pub const IFF_DEBUG: ::c_int = 0x0004; // turn on debugging -pub const IFF_LOOPBACK: ::c_int = 0x0008; // is a loopback net -pub const IFF_POINTOPOINT: ::c_int = 0x0010; // interface is point-to-point link -pub const IFF_NOTRAILERS: ::c_int = 0x0020; // avoid use of trailers -pub const IFF_RUNNING: ::c_int = 0x0040; // resources allocated -pub const IFF_NOARP: ::c_int = 0x0080; // no address resolution protocol -pub const IFF_PROMISC: ::c_int = 0x0100; // receive all packets -pub const IFF_ALLMULTI: ::c_int = 0x0200; // receive all multicast packets -pub const IFF_OACTIVE: ::c_int = 0x0400; // transmission in progress -pub const IFF_SIMPLEX: ::c_int = 0x0800; // can't hear own transmissions -pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit -pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit -pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit -pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast +pub const IFF_UP: c_int = 0x0001; // interface is up +pub const IFF_BROADCAST: c_int = 0x0002; // broadcast address valid +pub const IFF_DEBUG: c_int = 0x0004; // turn on debugging +pub const IFF_LOOPBACK: c_int = 0x0008; // is a loopback net +pub const IFF_POINTOPOINT: c_int = 0x0010; // interface is point-to-point link +pub const IFF_NOTRAILERS: c_int = 0x0020; // avoid use of trailers +pub const IFF_RUNNING: c_int = 0x0040; // resources allocated +pub const IFF_NOARP: c_int = 0x0080; // no address resolution protocol +pub const IFF_PROMISC: c_int = 0x0100; // receive all packets +pub const IFF_ALLMULTI: c_int = 0x0200; // receive all multicast packets +pub const IFF_OACTIVE: c_int = 0x0400; // transmission in progress +pub const IFF_SIMPLEX: c_int = 0x0800; // can't hear own transmissions +pub const IFF_LINK0: c_int = 0x1000; // per link layer defined bit +pub const IFF_LINK1: c_int = 0x2000; // per link layer defined bit +pub const IFF_LINK2: c_int = 0x4000; // per link layer defined bit +pub const IFF_MULTICAST: c_int = 0x8000; // supports multicast // sys/netinet/in.h // Protocols (RFC 1700) @@ -1573,341 +1578,341 @@ pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast // IPPROTO_IP defined in src/unix/mod.rs /// Hop-by-hop option header -pub const IPPROTO_HOPOPTS: ::c_int = 0; +pub const IPPROTO_HOPOPTS: c_int = 0; // IPPROTO_ICMP defined in src/unix/mod.rs /// group mgmt protocol -pub const IPPROTO_IGMP: ::c_int = 2; +pub const IPPROTO_IGMP: c_int = 2; /// gateway^2 (deprecated) -pub const IPPROTO_GGP: ::c_int = 3; +pub const IPPROTO_GGP: c_int = 3; /// for compatibility -pub const IPPROTO_IPIP: ::c_int = 4; +pub const IPPROTO_IPIP: c_int = 4; // IPPROTO_TCP defined in src/unix/mod.rs /// exterior gateway protocol -pub const IPPROTO_EGP: ::c_int = 8; +pub const IPPROTO_EGP: c_int = 8; /// pup -pub const IPPROTO_PUP: ::c_int = 12; +pub const IPPROTO_PUP: c_int = 12; // IPPROTO_UDP defined in src/unix/mod.rs /// xns idp -pub const IPPROTO_IDP: ::c_int = 22; +pub const IPPROTO_IDP: c_int = 22; /// tp-4 w/ class negotiation -pub const IPPROTO_TP: ::c_int = 29; +pub const IPPROTO_TP: c_int = 29; /// DCCP -pub const IPPROTO_DCCP: ::c_int = 33; +pub const IPPROTO_DCCP: c_int = 33; // IPPROTO_IPV6 defined in src/unix/mod.rs /// IP6 routing header -pub const IPPROTO_ROUTING: ::c_int = 43; +pub const IPPROTO_ROUTING: c_int = 43; /// IP6 fragmentation header -pub const IPPROTO_FRAGMENT: ::c_int = 44; +pub const IPPROTO_FRAGMENT: c_int = 44; /// resource reservation -pub const IPPROTO_RSVP: ::c_int = 46; +pub const IPPROTO_RSVP: c_int = 46; /// General Routing Encap. -pub const IPPROTO_GRE: ::c_int = 47; +pub const IPPROTO_GRE: c_int = 47; /// IP6 Encap Sec. Payload -pub const IPPROTO_ESP: ::c_int = 50; +pub const IPPROTO_ESP: c_int = 50; /// IP6 Auth Header -pub const IPPROTO_AH: ::c_int = 51; +pub const IPPROTO_AH: c_int = 51; /// IP Mobility RFC 2004 -pub const IPPROTO_MOBILE: ::c_int = 55; +pub const IPPROTO_MOBILE: c_int = 55; /// IPv6 ICMP -pub const IPPROTO_IPV6_ICMP: ::c_int = 58; +pub const IPPROTO_IPV6_ICMP: c_int = 58; // IPPROTO_ICMPV6 defined in src/unix/mod.rs /// IP6 no next header -pub const IPPROTO_NONE: ::c_int = 59; +pub const IPPROTO_NONE: c_int = 59; /// IP6 destination option -pub const IPPROTO_DSTOPTS: ::c_int = 60; +pub const IPPROTO_DSTOPTS: c_int = 60; /// ISO cnlp -pub const IPPROTO_EON: ::c_int = 80; +pub const IPPROTO_EON: c_int = 80; /// Ethernet-in-IP -pub const IPPROTO_ETHERIP: ::c_int = 97; +pub const IPPROTO_ETHERIP: c_int = 97; /// encapsulation header -pub const IPPROTO_ENCAP: ::c_int = 98; +pub const IPPROTO_ENCAP: c_int = 98; /// Protocol indep. multicast -pub const IPPROTO_PIM: ::c_int = 103; +pub const IPPROTO_PIM: c_int = 103; /// IP Payload Comp. Protocol -pub const IPPROTO_IPCOMP: ::c_int = 108; +pub const IPPROTO_IPCOMP: c_int = 108; /// VRRP RFC 2338 -pub const IPPROTO_VRRP: ::c_int = 112; +pub const IPPROTO_VRRP: c_int = 112; /// Common Address Resolution Protocol -pub const IPPROTO_CARP: ::c_int = 112; +pub const IPPROTO_CARP: c_int = 112; /// L2TPv3 -pub const IPPROTO_L2TP: ::c_int = 115; +pub const IPPROTO_L2TP: c_int = 115; /// SCTP -pub const IPPROTO_SCTP: ::c_int = 132; +pub const IPPROTO_SCTP: c_int = 132; /// PFSYNC -pub const IPPROTO_PFSYNC: ::c_int = 240; -pub const IPPROTO_MAX: ::c_int = 256; +pub const IPPROTO_PFSYNC: c_int = 240; +pub const IPPROTO_MAX: c_int = 256; /// last return value of *_input(), meaning "all job for this pkt is done". -pub const IPPROTO_DONE: ::c_int = 257; +pub const IPPROTO_DONE: c_int = 257; /// sysctl placeholder for (FAST_)IPSEC -pub const CTL_IPPROTO_IPSEC: ::c_int = 258; - -pub const AF_OROUTE: ::c_int = 17; -pub const AF_ARP: ::c_int = 28; -pub const pseudo_AF_KEY: ::c_int = 29; -pub const pseudo_AF_HDRCMPLT: ::c_int = 30; -pub const AF_BLUETOOTH: ::c_int = 31; -pub const AF_IEEE80211: ::c_int = 32; -pub const AF_MPLS: ::c_int = 33; -pub const AF_ROUTE: ::c_int = 34; -pub const NET_RT_DUMP: ::c_int = 1; -pub const NET_RT_FLAGS: ::c_int = 2; -pub const NET_RT_OOOIFLIST: ::c_int = 3; -pub const NET_RT_OOIFLIST: ::c_int = 4; -pub const NET_RT_OIFLIST: ::c_int = 5; -pub const NET_RT_IFLIST: ::c_int = 6; -pub const NET_RT_MAXID: ::c_int = 7; - -pub const PF_OROUTE: ::c_int = AF_OROUTE; -pub const PF_ARP: ::c_int = AF_ARP; -pub const PF_KEY: ::c_int = pseudo_AF_KEY; -pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -pub const PF_MPLS: ::c_int = AF_MPLS; -pub const PF_ROUTE: ::c_int = AF_ROUTE; - -pub const MSG_NBIO: ::c_int = 0x1000; -pub const MSG_WAITFORONE: ::c_int = 0x2000; -pub const MSG_NOTIFICATION: ::c_int = 0x4000; - -pub const SCM_TIMESTAMP: ::c_int = 0x08; -pub const SCM_CREDS: ::c_int = 0x10; - -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; +pub const CTL_IPPROTO_IPSEC: c_int = 258; + +pub const AF_OROUTE: c_int = 17; +pub const AF_ARP: c_int = 28; +pub const pseudo_AF_KEY: c_int = 29; +pub const pseudo_AF_HDRCMPLT: c_int = 30; +pub const AF_BLUETOOTH: c_int = 31; +pub const AF_IEEE80211: c_int = 32; +pub const AF_MPLS: c_int = 33; +pub const AF_ROUTE: c_int = 34; +pub const NET_RT_DUMP: c_int = 1; +pub const NET_RT_FLAGS: c_int = 2; +pub const NET_RT_OOOIFLIST: c_int = 3; +pub const NET_RT_OOIFLIST: c_int = 4; +pub const NET_RT_OIFLIST: c_int = 5; +pub const NET_RT_IFLIST: c_int = 6; +pub const NET_RT_MAXID: c_int = 7; + +pub const PF_OROUTE: c_int = AF_OROUTE; +pub const PF_ARP: c_int = AF_ARP; +pub const PF_KEY: c_int = pseudo_AF_KEY; +pub const PF_BLUETOOTH: c_int = AF_BLUETOOTH; +pub const PF_MPLS: c_int = AF_MPLS; +pub const PF_ROUTE: c_int = AF_ROUTE; + +pub const MSG_NBIO: c_int = 0x1000; +pub const MSG_WAITFORONE: c_int = 0x2000; +pub const MSG_NOTIFICATION: c_int = 0x4000; + +pub const SCM_TIMESTAMP: c_int = 0x08; +pub const SCM_CREDS: c_int = 0x10; + +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 -pub const MAP_ALIGNMENT_SHIFT: ::c_int = 24; -pub const MAP_ALIGNMENT_MASK: ::c_int = 0xff << MAP_ALIGNMENT_SHIFT; -pub const MAP_ALIGNMENT_64KB: ::c_int = 16 << MAP_ALIGNMENT_SHIFT; -pub const MAP_ALIGNMENT_16MB: ::c_int = 24 << MAP_ALIGNMENT_SHIFT; -pub const MAP_ALIGNMENT_4GB: ::c_int = 32 << MAP_ALIGNMENT_SHIFT; -pub const MAP_ALIGNMENT_1TB: ::c_int = 40 << MAP_ALIGNMENT_SHIFT; -pub const MAP_ALIGNMENT_256TB: ::c_int = 48 << MAP_ALIGNMENT_SHIFT; -pub const MAP_ALIGNMENT_64PB: ::c_int = 56 << MAP_ALIGNMENT_SHIFT; +pub const MAP_ALIGNMENT_SHIFT: c_int = 24; +pub const MAP_ALIGNMENT_MASK: c_int = 0xff << MAP_ALIGNMENT_SHIFT; +pub const MAP_ALIGNMENT_64KB: c_int = 16 << MAP_ALIGNMENT_SHIFT; +pub const MAP_ALIGNMENT_16MB: c_int = 24 << MAP_ALIGNMENT_SHIFT; +pub const MAP_ALIGNMENT_4GB: c_int = 32 << MAP_ALIGNMENT_SHIFT; +pub const MAP_ALIGNMENT_1TB: c_int = 40 << MAP_ALIGNMENT_SHIFT; +pub const MAP_ALIGNMENT_256TB: c_int = 48 << MAP_ALIGNMENT_SHIFT; +pub const MAP_ALIGNMENT_64PB: c_int = 56 << MAP_ALIGNMENT_SHIFT; // mremap flag -pub const MAP_REMAPDUP: ::c_int = 0x004; - -pub const DCCP_TYPE_REQUEST: ::c_int = 0; -pub const DCCP_TYPE_RESPONSE: ::c_int = 1; -pub const DCCP_TYPE_DATA: ::c_int = 2; -pub const DCCP_TYPE_ACK: ::c_int = 3; -pub const DCCP_TYPE_DATAACK: ::c_int = 4; -pub const DCCP_TYPE_CLOSEREQ: ::c_int = 5; -pub const DCCP_TYPE_CLOSE: ::c_int = 6; -pub const DCCP_TYPE_RESET: ::c_int = 7; -pub const DCCP_TYPE_MOVE: ::c_int = 8; - -pub const DCCP_FEATURE_CC: ::c_int = 1; -pub const DCCP_FEATURE_ECN: ::c_int = 2; -pub const DCCP_FEATURE_ACKRATIO: ::c_int = 3; -pub const DCCP_FEATURE_ACKVECTOR: ::c_int = 4; -pub const DCCP_FEATURE_MOBILITY: ::c_int = 5; -pub const DCCP_FEATURE_LOSSWINDOW: ::c_int = 6; -pub const DCCP_FEATURE_CONN_NONCE: ::c_int = 8; -pub const DCCP_FEATURE_IDENTREG: ::c_int = 7; - -pub const DCCP_OPT_PADDING: ::c_int = 0; -pub const DCCP_OPT_DATA_DISCARD: ::c_int = 1; -pub const DCCP_OPT_SLOW_RECV: ::c_int = 2; -pub const DCCP_OPT_BUF_CLOSED: ::c_int = 3; -pub const DCCP_OPT_CHANGE_L: ::c_int = 32; -pub const DCCP_OPT_CONFIRM_L: ::c_int = 33; -pub const DCCP_OPT_CHANGE_R: ::c_int = 34; -pub const DCCP_OPT_CONFIRM_R: ::c_int = 35; -pub const DCCP_OPT_INIT_COOKIE: ::c_int = 36; -pub const DCCP_OPT_NDP_COUNT: ::c_int = 37; -pub const DCCP_OPT_ACK_VECTOR0: ::c_int = 38; -pub const DCCP_OPT_ACK_VECTOR1: ::c_int = 39; -pub const DCCP_OPT_RECV_BUF_DROPS: ::c_int = 40; -pub const DCCP_OPT_TIMESTAMP: ::c_int = 41; -pub const DCCP_OPT_TIMESTAMP_ECHO: ::c_int = 42; -pub const DCCP_OPT_ELAPSEDTIME: ::c_int = 43; -pub const DCCP_OPT_DATACHECKSUM: ::c_int = 44; - -pub const DCCP_REASON_UNSPEC: ::c_int = 0; -pub const DCCP_REASON_CLOSED: ::c_int = 1; -pub const DCCP_REASON_INVALID: ::c_int = 2; -pub const DCCP_REASON_OPTION_ERR: ::c_int = 3; -pub const DCCP_REASON_FEA_ERR: ::c_int = 4; -pub const DCCP_REASON_CONN_REF: ::c_int = 5; -pub const DCCP_REASON_BAD_SNAME: ::c_int = 6; -pub const DCCP_REASON_BAD_COOKIE: ::c_int = 7; -pub const DCCP_REASON_INV_MOVE: ::c_int = 8; -pub const DCCP_REASON_UNANSW_CH: ::c_int = 10; -pub const DCCP_REASON_FRUITLESS_NEG: ::c_int = 11; - -pub const DCCP_CCID: ::c_int = 1; -pub const DCCP_CSLEN: ::c_int = 2; -pub const DCCP_MAXSEG: ::c_int = 4; -pub const DCCP_SERVICE: ::c_int = 8; - -pub const DCCP_NDP_LIMIT: ::c_int = 16; -pub const DCCP_SEQ_NUM_LIMIT: ::c_int = 16777216; -pub const DCCP_MAX_OPTIONS: ::c_int = 32; -pub const DCCP_MAX_PKTS: ::c_int = 100; - -pub const _PC_LINK_MAX: ::c_int = 1; -pub const _PC_MAX_CANON: ::c_int = 2; -pub const _PC_MAX_INPUT: ::c_int = 3; -pub const _PC_NAME_MAX: ::c_int = 4; -pub const _PC_PATH_MAX: ::c_int = 5; -pub const _PC_PIPE_BUF: ::c_int = 6; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 7; -pub const _PC_NO_TRUNC: ::c_int = 8; -pub const _PC_VDISABLE: ::c_int = 9; -pub const _PC_SYNC_IO: ::c_int = 10; -pub const _PC_FILESIZEBITS: ::c_int = 11; -pub const _PC_SYMLINK_MAX: ::c_int = 12; -pub const _PC_2_SYMLINKS: ::c_int = 13; -pub const _PC_ACL_EXTENDED: ::c_int = 14; -pub const _PC_MIN_HOLE_SIZE: ::c_int = 15; - -pub const _SC_SYNCHRONIZED_IO: ::c_int = 31; -pub const _SC_IOV_MAX: ::c_int = 32; -pub const _SC_MAPPED_FILES: ::c_int = 33; -pub const _SC_MEMLOCK: ::c_int = 34; -pub const _SC_MEMLOCK_RANGE: ::c_int = 35; -pub const _SC_MEMORY_PROTECTION: ::c_int = 36; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 37; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 38; -pub const _SC_CLK_TCK: ::c_int = 39; -pub const _SC_ATEXIT_MAX: ::c_int = 40; -pub const _SC_THREADS: ::c_int = 41; -pub const _SC_SEMAPHORES: ::c_int = 42; -pub const _SC_BARRIERS: ::c_int = 43; -pub const _SC_TIMERS: ::c_int = 44; -pub const _SC_SPIN_LOCKS: ::c_int = 45; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 46; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 47; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 48; -pub const _SC_CLOCK_SELECTION: ::c_int = 49; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 50; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 51; -pub const _SC_AIO_MAX: ::c_int = 52; -pub const _SC_MESSAGE_PASSING: ::c_int = 53; -pub const _SC_MQ_OPEN_MAX: ::c_int = 54; -pub const _SC_MQ_PRIO_MAX: ::c_int = 55; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 56; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 57; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 58; -pub const _SC_THREAD_STACK_MIN: ::c_int = 59; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 60; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 61; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 62; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 63; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 64; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 65; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 66; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 67; -pub const _SC_TTY_NAME_MAX: ::c_int = 68; -pub const _SC_HOST_NAME_MAX: ::c_int = 69; -pub const _SC_PASS_MAX: ::c_int = 70; -pub const _SC_REGEXP: ::c_int = 71; -pub const _SC_SHELL: ::c_int = 72; -pub const _SC_SYMLOOP_MAX: ::c_int = 73; -pub const _SC_V6_ILP32_OFF32: ::c_int = 74; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 75; -pub const _SC_V6_LP64_OFF64: ::c_int = 76; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 77; -pub const _SC_2_PBS: ::c_int = 80; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 81; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 82; -pub const _SC_2_PBS_LOCATE: ::c_int = 83; -pub const _SC_2_PBS_MESSAGE: ::c_int = 84; -pub const _SC_2_PBS_TRACK: ::c_int = 85; -pub const _SC_SPAWN: ::c_int = 86; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 87; -pub const _SC_TIMER_MAX: ::c_int = 88; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 89; -pub const _SC_CPUTIME: ::c_int = 90; -pub const _SC_THREAD_CPUTIME: ::c_int = 91; -pub const _SC_DELAYTIMER_MAX: ::c_int = 92; +pub const MAP_REMAPDUP: c_int = 0x004; + +pub const DCCP_TYPE_REQUEST: c_int = 0; +pub const DCCP_TYPE_RESPONSE: c_int = 1; +pub const DCCP_TYPE_DATA: c_int = 2; +pub const DCCP_TYPE_ACK: c_int = 3; +pub const DCCP_TYPE_DATAACK: c_int = 4; +pub const DCCP_TYPE_CLOSEREQ: c_int = 5; +pub const DCCP_TYPE_CLOSE: c_int = 6; +pub const DCCP_TYPE_RESET: c_int = 7; +pub const DCCP_TYPE_MOVE: c_int = 8; + +pub const DCCP_FEATURE_CC: c_int = 1; +pub const DCCP_FEATURE_ECN: c_int = 2; +pub const DCCP_FEATURE_ACKRATIO: c_int = 3; +pub const DCCP_FEATURE_ACKVECTOR: c_int = 4; +pub const DCCP_FEATURE_MOBILITY: c_int = 5; +pub const DCCP_FEATURE_LOSSWINDOW: c_int = 6; +pub const DCCP_FEATURE_CONN_NONCE: c_int = 8; +pub const DCCP_FEATURE_IDENTREG: c_int = 7; + +pub const DCCP_OPT_PADDING: c_int = 0; +pub const DCCP_OPT_DATA_DISCARD: c_int = 1; +pub const DCCP_OPT_SLOW_RECV: c_int = 2; +pub const DCCP_OPT_BUF_CLOSED: c_int = 3; +pub const DCCP_OPT_CHANGE_L: c_int = 32; +pub const DCCP_OPT_CONFIRM_L: c_int = 33; +pub const DCCP_OPT_CHANGE_R: c_int = 34; +pub const DCCP_OPT_CONFIRM_R: c_int = 35; +pub const DCCP_OPT_INIT_COOKIE: c_int = 36; +pub const DCCP_OPT_NDP_COUNT: c_int = 37; +pub const DCCP_OPT_ACK_VECTOR0: c_int = 38; +pub const DCCP_OPT_ACK_VECTOR1: c_int = 39; +pub const DCCP_OPT_RECV_BUF_DROPS: c_int = 40; +pub const DCCP_OPT_TIMESTAMP: c_int = 41; +pub const DCCP_OPT_TIMESTAMP_ECHO: c_int = 42; +pub const DCCP_OPT_ELAPSEDTIME: c_int = 43; +pub const DCCP_OPT_DATACHECKSUM: c_int = 44; + +pub const DCCP_REASON_UNSPEC: c_int = 0; +pub const DCCP_REASON_CLOSED: c_int = 1; +pub const DCCP_REASON_INVALID: c_int = 2; +pub const DCCP_REASON_OPTION_ERR: c_int = 3; +pub const DCCP_REASON_FEA_ERR: c_int = 4; +pub const DCCP_REASON_CONN_REF: c_int = 5; +pub const DCCP_REASON_BAD_SNAME: c_int = 6; +pub const DCCP_REASON_BAD_COOKIE: c_int = 7; +pub const DCCP_REASON_INV_MOVE: c_int = 8; +pub const DCCP_REASON_UNANSW_CH: c_int = 10; +pub const DCCP_REASON_FRUITLESS_NEG: c_int = 11; + +pub const DCCP_CCID: c_int = 1; +pub const DCCP_CSLEN: c_int = 2; +pub const DCCP_MAXSEG: c_int = 4; +pub const DCCP_SERVICE: c_int = 8; + +pub const DCCP_NDP_LIMIT: c_int = 16; +pub const DCCP_SEQ_NUM_LIMIT: c_int = 16777216; +pub const DCCP_MAX_OPTIONS: c_int = 32; +pub const DCCP_MAX_PKTS: c_int = 100; + +pub const _PC_LINK_MAX: c_int = 1; +pub const _PC_MAX_CANON: c_int = 2; +pub const _PC_MAX_INPUT: c_int = 3; +pub const _PC_NAME_MAX: c_int = 4; +pub const _PC_PATH_MAX: c_int = 5; +pub const _PC_PIPE_BUF: c_int = 6; +pub const _PC_CHOWN_RESTRICTED: c_int = 7; +pub const _PC_NO_TRUNC: c_int = 8; +pub const _PC_VDISABLE: c_int = 9; +pub const _PC_SYNC_IO: c_int = 10; +pub const _PC_FILESIZEBITS: c_int = 11; +pub const _PC_SYMLINK_MAX: c_int = 12; +pub const _PC_2_SYMLINKS: c_int = 13; +pub const _PC_ACL_EXTENDED: c_int = 14; +pub const _PC_MIN_HOLE_SIZE: c_int = 15; + +pub const _SC_SYNCHRONIZED_IO: c_int = 31; +pub const _SC_IOV_MAX: c_int = 32; +pub const _SC_MAPPED_FILES: c_int = 33; +pub const _SC_MEMLOCK: c_int = 34; +pub const _SC_MEMLOCK_RANGE: c_int = 35; +pub const _SC_MEMORY_PROTECTION: c_int = 36; +pub const _SC_LOGIN_NAME_MAX: c_int = 37; +pub const _SC_MONOTONIC_CLOCK: c_int = 38; +pub const _SC_CLK_TCK: c_int = 39; +pub const _SC_ATEXIT_MAX: c_int = 40; +pub const _SC_THREADS: c_int = 41; +pub const _SC_SEMAPHORES: c_int = 42; +pub const _SC_BARRIERS: c_int = 43; +pub const _SC_TIMERS: c_int = 44; +pub const _SC_SPIN_LOCKS: c_int = 45; +pub const _SC_READER_WRITER_LOCKS: c_int = 46; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 47; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 48; +pub const _SC_CLOCK_SELECTION: c_int = 49; +pub const _SC_ASYNCHRONOUS_IO: c_int = 50; +pub const _SC_AIO_LISTIO_MAX: c_int = 51; +pub const _SC_AIO_MAX: c_int = 52; +pub const _SC_MESSAGE_PASSING: c_int = 53; +pub const _SC_MQ_OPEN_MAX: c_int = 54; +pub const _SC_MQ_PRIO_MAX: c_int = 55; +pub const _SC_PRIORITY_SCHEDULING: c_int = 56; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 57; +pub const _SC_THREAD_KEYS_MAX: c_int = 58; +pub const _SC_THREAD_STACK_MIN: c_int = 59; +pub const _SC_THREAD_THREADS_MAX: c_int = 60; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 61; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 62; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 63; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 64; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 65; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 66; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 67; +pub const _SC_TTY_NAME_MAX: c_int = 68; +pub const _SC_HOST_NAME_MAX: c_int = 69; +pub const _SC_PASS_MAX: c_int = 70; +pub const _SC_REGEXP: c_int = 71; +pub const _SC_SHELL: c_int = 72; +pub const _SC_SYMLOOP_MAX: c_int = 73; +pub const _SC_V6_ILP32_OFF32: c_int = 74; +pub const _SC_V6_ILP32_OFFBIG: c_int = 75; +pub const _SC_V6_LP64_OFF64: c_int = 76; +pub const _SC_V6_LPBIG_OFFBIG: c_int = 77; +pub const _SC_2_PBS: c_int = 80; +pub const _SC_2_PBS_ACCOUNTING: c_int = 81; +pub const _SC_2_PBS_CHECKPOINT: c_int = 82; +pub const _SC_2_PBS_LOCATE: c_int = 83; +pub const _SC_2_PBS_MESSAGE: c_int = 84; +pub const _SC_2_PBS_TRACK: c_int = 85; +pub const _SC_SPAWN: c_int = 86; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 87; +pub const _SC_TIMER_MAX: c_int = 88; +pub const _SC_SEM_NSEMS_MAX: c_int = 89; +pub const _SC_CPUTIME: c_int = 90; +pub const _SC_THREAD_CPUTIME: c_int = 91; +pub const _SC_DELAYTIMER_MAX: c_int = 92; // These two variables will be supported in NetBSD 8.0 -// pub const _SC_SIGQUEUE_MAX : ::c_int = 93; -// pub const _SC_REALTIME_SIGNALS : ::c_int = 94; -pub const _SC_PHYS_PAGES: ::c_int = 121; -pub const _SC_NPROCESSORS_CONF: ::c_int = 1001; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 1002; -pub const _SC_SCHED_RT_TS: ::c_int = 2001; -pub const _SC_SCHED_PRI_MIN: ::c_int = 2002; -pub const _SC_SCHED_PRI_MAX: ::c_int = 2003; +// pub const _SC_SIGQUEUE_MAX : c_int = 93; +// pub const _SC_REALTIME_SIGNALS : c_int = 94; +pub const _SC_PHYS_PAGES: c_int = 121; +pub const _SC_NPROCESSORS_CONF: c_int = 1001; +pub const _SC_NPROCESSORS_ONLN: c_int = 1002; +pub const _SC_SCHED_RT_TS: c_int = 2001; +pub const _SC_SCHED_PRI_MIN: c_int = 2002; +pub const _SC_SCHED_PRI_MAX: c_int = 2003; pub const FD_SETSIZE: usize = 0x100; -pub const ST_NOSUID: ::c_ulong = 8; +pub const ST_NOSUID: c_ulong = 8; -pub const BIOCGRSIG: ::c_ulong = 0x40044272; -pub const BIOCSRSIG: ::c_ulong = 0x80044273; -pub const BIOCSDLT: ::c_ulong = 0x80044278; -pub const BIOCGSEESENT: ::c_ulong = 0x40044276; -pub const BIOCSSEESENT: ::c_ulong = 0x80044277; +pub const BIOCGRSIG: c_ulong = 0x40044272; +pub const BIOCSRSIG: c_ulong = 0x80044273; +pub const BIOCSDLT: c_ulong = 0x80044278; +pub const BIOCGSEESENT: c_ulong = 0x40044276; +pub const BIOCSSEESENT: c_ulong = 0x80044277; // -pub const MNT_UNION: ::c_int = 0x00000020; -pub const MNT_NOCOREDUMP: ::c_int = 0x00008000; -pub const MNT_RELATIME: ::c_int = 0x00020000; -pub const MNT_IGNORE: ::c_int = 0x00100000; -pub const MNT_NFS4ACLS: ::c_int = 0x00200000; -pub const MNT_DISCARD: ::c_int = 0x00800000; -pub const MNT_EXTATTR: ::c_int = 0x01000000; -pub const MNT_LOG: ::c_int = 0x02000000; -pub const MNT_NOATIME: ::c_int = 0x04000000; -pub const MNT_AUTOMOUNTED: ::c_int = 0x10000000; -pub const MNT_SYMPERM: ::c_int = 0x20000000; -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; +pub const MNT_UNION: c_int = 0x00000020; +pub const MNT_NOCOREDUMP: c_int = 0x00008000; +pub const MNT_RELATIME: c_int = 0x00020000; +pub const MNT_IGNORE: c_int = 0x00100000; +pub const MNT_NFS4ACLS: c_int = 0x00200000; +pub const MNT_DISCARD: c_int = 0x00800000; +pub const MNT_EXTATTR: c_int = 0x01000000; +pub const MNT_LOG: c_int = 0x02000000; +pub const MNT_NOATIME: c_int = 0x04000000; +pub const MNT_AUTOMOUNTED: c_int = 0x10000000; +pub const MNT_SYMPERM: c_int = 0x20000000; +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; // -pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 2; -pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 4; -pub const NTP_API: ::c_int = 4; -pub const MAXPHASE: ::c_long = 500000000; -pub const MAXFREQ: ::c_long = 500000; -pub const MINSEC: ::c_int = 256; -pub const MAXSEC: ::c_int = 2048; -pub const NANOSECOND: ::c_long = 1000000000; -pub const SCALE_PPM: ::c_int = 65; -pub const MAXTC: ::c_int = 10; -pub const MOD_OFFSET: ::c_uint = 0x0001; -pub const MOD_FREQUENCY: ::c_uint = 0x0002; -pub const MOD_MAXERROR: ::c_uint = 0x0004; -pub const MOD_ESTERROR: ::c_uint = 0x0008; -pub const MOD_STATUS: ::c_uint = 0x0010; -pub const MOD_TIMECONST: ::c_uint = 0x0020; -pub const MOD_PPSMAX: ::c_uint = 0x0040; -pub const MOD_TAI: ::c_uint = 0x0080; -pub const MOD_MICRO: ::c_uint = 0x1000; -pub const MOD_NANO: ::c_uint = 0x2000; -pub const MOD_CLKB: ::c_uint = 0x4000; -pub const MOD_CLKA: ::c_uint = 0x8000; -pub const STA_PLL: ::c_int = 0x0001; -pub const STA_PPSFREQ: ::c_int = 0x0002; -pub const STA_PPSTIME: ::c_int = 0x0004; -pub const STA_FLL: ::c_int = 0x0008; -pub const STA_INS: ::c_int = 0x0010; -pub const STA_DEL: ::c_int = 0x0020; -pub const STA_UNSYNC: ::c_int = 0x0040; -pub const STA_FREQHOLD: ::c_int = 0x0080; -pub const STA_PPSSIGNAL: ::c_int = 0x0100; -pub const STA_PPSJITTER: ::c_int = 0x0200; -pub const STA_PPSWANDER: ::c_int = 0x0400; -pub const STA_PPSERROR: ::c_int = 0x0800; -pub const STA_CLOCKERR: ::c_int = 0x1000; -pub const STA_NANO: ::c_int = 0x2000; -pub const STA_MODE: ::c_int = 0x4000; -pub const STA_CLK: ::c_int = 0x8000; -pub const STA_RONLY: ::c_int = STA_PPSSIGNAL +pub const CLOCK_PROCESS_CPUTIME_ID: crate::clockid_t = 2; +pub const CLOCK_THREAD_CPUTIME_ID: crate::clockid_t = 4; +pub const NTP_API: c_int = 4; +pub const MAXPHASE: c_long = 500000000; +pub const MAXFREQ: c_long = 500000; +pub const MINSEC: c_int = 256; +pub const MAXSEC: c_int = 2048; +pub const NANOSECOND: c_long = 1000000000; +pub const SCALE_PPM: c_int = 65; +pub const MAXTC: c_int = 10; +pub const MOD_OFFSET: c_uint = 0x0001; +pub const MOD_FREQUENCY: c_uint = 0x0002; +pub const MOD_MAXERROR: c_uint = 0x0004; +pub const MOD_ESTERROR: c_uint = 0x0008; +pub const MOD_STATUS: c_uint = 0x0010; +pub const MOD_TIMECONST: c_uint = 0x0020; +pub const MOD_PPSMAX: c_uint = 0x0040; +pub const MOD_TAI: c_uint = 0x0080; +pub const MOD_MICRO: c_uint = 0x1000; +pub const MOD_NANO: c_uint = 0x2000; +pub const MOD_CLKB: c_uint = 0x4000; +pub const MOD_CLKA: c_uint = 0x8000; +pub const STA_PLL: c_int = 0x0001; +pub const STA_PPSFREQ: c_int = 0x0002; +pub const STA_PPSTIME: c_int = 0x0004; +pub const STA_FLL: c_int = 0x0008; +pub const STA_INS: c_int = 0x0010; +pub const STA_DEL: c_int = 0x0020; +pub const STA_UNSYNC: c_int = 0x0040; +pub const STA_FREQHOLD: c_int = 0x0080; +pub const STA_PPSSIGNAL: c_int = 0x0100; +pub const STA_PPSJITTER: c_int = 0x0200; +pub const STA_PPSWANDER: c_int = 0x0400; +pub const STA_PPSERROR: c_int = 0x0800; +pub const STA_CLOCKERR: c_int = 0x1000; +pub const STA_NANO: c_int = 0x2000; +pub const STA_MODE: c_int = 0x4000; +pub const STA_CLK: c_int = 0x8000; +pub const STA_RONLY: c_int = STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | STA_PPSERROR @@ -1915,19 +1920,19 @@ pub const STA_RONLY: ::c_int = STA_PPSSIGNAL | STA_NANO | STA_MODE | STA_CLK; -pub const TIME_OK: ::c_int = 0; -pub const TIME_INS: ::c_int = 1; -pub const TIME_DEL: ::c_int = 2; -pub const TIME_OOP: ::c_int = 3; -pub const TIME_WAIT: ::c_int = 4; -pub const TIME_ERROR: ::c_int = 5; +pub const TIME_OK: c_int = 0; +pub const TIME_INS: c_int = 1; +pub const TIME_DEL: c_int = 2; +pub const TIME_OOP: c_int = 3; +pub const TIME_WAIT: c_int = 4; +pub const TIME_ERROR: c_int = 5; -pub const LITTLE_ENDIAN: ::c_int = 1234; -pub const BIG_ENDIAN: ::c_int = 4321; +pub const LITTLE_ENDIAN: c_int = 1234; +pub const BIG_ENDIAN: c_int = 4321; -pub const PL_EVENT_NONE: ::c_int = 0; -pub const PL_EVENT_SIGNAL: ::c_int = 1; -pub const PL_EVENT_SUSPENDED: ::c_int = 2; +pub const PL_EVENT_NONE: c_int = 0; +pub const PL_EVENT_SIGNAL: c_int = 1; +pub const PL_EVENT_SUSPENDED: c_int = 2; cfg_if! { if #[cfg(any( @@ -1979,15 +1984,15 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { ptr_owner: 0, ptr_private: 0 as *mut _, }; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; +pub const PTHREAD_MUTEX_NORMAL: c_int = 0; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 1; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_NORMAL; -pub const SCHED_NONE: ::c_int = -1; -pub const SCHED_OTHER: ::c_int = 0; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; +pub const SCHED_NONE: c_int = -1; +pub const SCHED_OTHER: c_int = 0; +pub const SCHED_FIFO: c_int = 1; +pub const SCHED_RR: c_int = 2; pub const EVFILT_AIO: u32 = 2; pub const EVFILT_PROC: u32 = 4; @@ -2042,215 +2047,215 @@ 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; - -pub const AI_PASSIVE: ::c_int = 0x00000001; -pub const AI_CANONNAME: ::c_int = 0x00000002; -pub const AI_NUMERICHOST: ::c_int = 0x00000004; -pub const AI_NUMERICSERV: ::c_int = 0x00000008; -pub const AI_ADDRCONFIG: ::c_int = 0x00000400; -pub const AI_SRV: ::c_int = 0x00000800; - -pub const NI_MAXHOST: ::socklen_t = 1025; -pub const NI_MAXSERV: ::socklen_t = 32; - -pub const NI_NOFQDN: ::c_int = 0x00000001; -pub const NI_NUMERICHOST: ::c_int = 0x000000002; -pub const NI_NAMEREQD: ::c_int = 0x000000004; -pub const NI_NUMERICSERV: ::c_int = 0x000000008; -pub const NI_DGRAM: ::c_int = 0x00000010; -pub const NI_WITHSCOPEID: ::c_int = 0x00000020; -pub const NI_NUMERICSCOPE: ::c_int = 0x00000040; - -pub const RTLD_NOLOAD: ::c_int = 0x2000; -pub const RTLD_LOCAL: ::c_int = 0x200; - -pub const CTL_MAXNAME: ::c_int = 12; -pub const SYSCTL_NAMELEN: ::c_int = 32; -pub const SYSCTL_DEFSIZE: ::c_int = 8; -pub const CTLTYPE_NODE: ::c_int = 1; -pub const CTLTYPE_INT: ::c_int = 2; -pub const CTLTYPE_STRING: ::c_int = 3; -pub const CTLTYPE_QUAD: ::c_int = 4; -pub const CTLTYPE_STRUCT: ::c_int = 5; -pub const CTLTYPE_BOOL: ::c_int = 6; -pub const CTLFLAG_READONLY: ::c_int = 0x00000000; -pub const CTLFLAG_READWRITE: ::c_int = 0x00000070; -pub const CTLFLAG_ANYWRITE: ::c_int = 0x00000080; -pub const CTLFLAG_PRIVATE: ::c_int = 0x00000100; -pub const CTLFLAG_PERMANENT: ::c_int = 0x00000200; -pub const CTLFLAG_OWNDATA: ::c_int = 0x00000400; -pub const CTLFLAG_IMMEDIATE: ::c_int = 0x00000800; -pub const CTLFLAG_HEX: ::c_int = 0x00001000; -pub const CTLFLAG_ROOT: ::c_int = 0x00002000; -pub const CTLFLAG_ANYNUMBER: ::c_int = 0x00004000; -pub const CTLFLAG_HIDDEN: ::c_int = 0x00008000; -pub const CTLFLAG_ALIAS: ::c_int = 0x00010000; -pub const CTLFLAG_MMAP: ::c_int = 0x00020000; -pub const CTLFLAG_OWNDESC: ::c_int = 0x00040000; -pub const CTLFLAG_UNSIGNED: ::c_int = 0x00080000; -pub const SYSCTL_VERS_MASK: ::c_int = 0xff000000; -pub const SYSCTL_VERS_0: ::c_int = 0x00000000; -pub const SYSCTL_VERS_1: ::c_int = 0x01000000; -pub const SYSCTL_VERSION: ::c_int = SYSCTL_VERS_1; -pub const CTL_EOL: ::c_int = -1; -pub const CTL_QUERY: ::c_int = -2; -pub const CTL_CREATE: ::c_int = -3; -pub const CTL_CREATESYM: ::c_int = -4; -pub const CTL_DESTROY: ::c_int = -5; -pub const CTL_MMAP: ::c_int = -6; -pub const CTL_DESCRIBE: ::c_int = -7; -pub const CTL_UNSPEC: ::c_int = 0; -pub const CTL_KERN: ::c_int = 1; -pub const CTL_VM: ::c_int = 2; -pub const CTL_VFS: ::c_int = 3; -pub const CTL_NET: ::c_int = 4; -pub const CTL_DEBUG: ::c_int = 5; -pub const CTL_HW: ::c_int = 6; -pub const CTL_MACHDEP: ::c_int = 7; -pub const CTL_USER: ::c_int = 8; -pub const CTL_DDB: ::c_int = 9; -pub const CTL_PROC: ::c_int = 10; -pub const CTL_VENDOR: ::c_int = 11; -pub const CTL_EMUL: ::c_int = 12; -pub const CTL_SECURITY: ::c_int = 13; -pub const CTL_MAXID: ::c_int = 14; -pub const KERN_OSTYPE: ::c_int = 1; -pub const KERN_OSRELEASE: ::c_int = 2; -pub const KERN_OSREV: ::c_int = 3; -pub const KERN_VERSION: ::c_int = 4; -pub const KERN_MAXVNODES: ::c_int = 5; -pub const KERN_MAXPROC: ::c_int = 6; -pub const KERN_MAXFILES: ::c_int = 7; -pub const KERN_ARGMAX: ::c_int = 8; -pub const KERN_SECURELVL: ::c_int = 9; -pub const KERN_HOSTNAME: ::c_int = 10; -pub const KERN_HOSTID: ::c_int = 11; -pub const KERN_CLOCKRATE: ::c_int = 12; -pub const KERN_VNODE: ::c_int = 13; -pub const KERN_PROC: ::c_int = 14; -pub const KERN_FILE: ::c_int = 15; -pub const KERN_PROF: ::c_int = 16; -pub const KERN_POSIX1: ::c_int = 17; -pub const KERN_NGROUPS: ::c_int = 18; -pub const KERN_JOB_CONTROL: ::c_int = 19; -pub const KERN_SAVED_IDS: ::c_int = 20; -pub const KERN_OBOOTTIME: ::c_int = 21; -pub const KERN_DOMAINNAME: ::c_int = 22; -pub const KERN_MAXPARTITIONS: ::c_int = 23; -pub const KERN_RAWPARTITION: ::c_int = 24; -pub const KERN_NTPTIME: ::c_int = 25; -pub const KERN_TIMEX: ::c_int = 26; -pub const KERN_AUTONICETIME: ::c_int = 27; -pub const KERN_AUTONICEVAL: ::c_int = 28; -pub const KERN_RTC_OFFSET: ::c_int = 29; -pub const KERN_ROOT_DEVICE: ::c_int = 30; -pub const KERN_MSGBUFSIZE: ::c_int = 31; -pub const KERN_FSYNC: ::c_int = 32; -pub const KERN_OLDSYSVMSG: ::c_int = 33; -pub const KERN_OLDSYSVSEM: ::c_int = 34; -pub const KERN_OLDSYSVSHM: ::c_int = 35; -pub const KERN_OLDSHORTCORENAME: ::c_int = 36; -pub const KERN_SYNCHRONIZED_IO: ::c_int = 37; -pub const KERN_IOV_MAX: ::c_int = 38; -pub const KERN_MBUF: ::c_int = 39; -pub const KERN_MAPPED_FILES: ::c_int = 40; -pub const KERN_MEMLOCK: ::c_int = 41; -pub const KERN_MEMLOCK_RANGE: ::c_int = 42; -pub const KERN_MEMORY_PROTECTION: ::c_int = 43; -pub const KERN_LOGIN_NAME_MAX: ::c_int = 44; -pub const KERN_DEFCORENAME: ::c_int = 45; -pub const KERN_LOGSIGEXIT: ::c_int = 46; -pub const KERN_PROC2: ::c_int = 47; -pub const KERN_PROC_ARGS: ::c_int = 48; -pub const KERN_FSCALE: ::c_int = 49; -pub const KERN_CCPU: ::c_int = 50; -pub const KERN_CP_TIME: ::c_int = 51; -pub const KERN_OLDSYSVIPC_INFO: ::c_int = 52; -pub const KERN_MSGBUF: ::c_int = 53; -pub const KERN_CONSDEV: ::c_int = 54; -pub const KERN_MAXPTYS: ::c_int = 55; -pub const KERN_PIPE: ::c_int = 56; -pub const KERN_MAXPHYS: ::c_int = 57; -pub const KERN_SBMAX: ::c_int = 58; -pub const KERN_TKSTAT: ::c_int = 59; -pub const KERN_MONOTONIC_CLOCK: ::c_int = 60; -pub const KERN_URND: ::c_int = 61; -pub const KERN_LABELSECTOR: ::c_int = 62; -pub const KERN_LABELOFFSET: ::c_int = 63; -pub const KERN_LWP: ::c_int = 64; -pub const KERN_FORKFSLEEP: ::c_int = 65; -pub const KERN_POSIX_THREADS: ::c_int = 66; -pub const KERN_POSIX_SEMAPHORES: ::c_int = 67; -pub const KERN_POSIX_BARRIERS: ::c_int = 68; -pub const KERN_POSIX_TIMERS: ::c_int = 69; -pub const KERN_POSIX_SPIN_LOCKS: ::c_int = 70; -pub const KERN_POSIX_READER_WRITER_LOCKS: ::c_int = 71; -pub const KERN_DUMP_ON_PANIC: ::c_int = 72; -pub const KERN_SOMAXKVA: ::c_int = 73; -pub const KERN_ROOT_PARTITION: ::c_int = 74; -pub const KERN_DRIVERS: ::c_int = 75; -pub const KERN_BUF: ::c_int = 76; -pub const KERN_FILE2: ::c_int = 77; -pub const KERN_VERIEXEC: ::c_int = 78; -pub const KERN_CP_ID: ::c_int = 79; -pub const KERN_HARDCLOCK_TICKS: ::c_int = 80; -pub const KERN_ARND: ::c_int = 81; -pub const KERN_SYSVIPC: ::c_int = 82; -pub const KERN_BOOTTIME: ::c_int = 83; -pub const KERN_EVCNT: ::c_int = 84; -pub const KERN_MAXID: ::c_int = 85; -pub const KERN_PROC_ALL: ::c_int = 0; -pub const KERN_PROC_PID: ::c_int = 1; -pub const KERN_PROC_PGRP: ::c_int = 2; -pub const KERN_PROC_SESSION: ::c_int = 3; -pub const KERN_PROC_TTY: ::c_int = 4; -pub const KERN_PROC_UID: ::c_int = 5; -pub const KERN_PROC_RUID: ::c_int = 6; -pub const KERN_PROC_GID: ::c_int = 7; -pub const KERN_PROC_RGID: ::c_int = 8; -pub const KERN_PROC_ARGV: ::c_int = 1; -pub const KERN_PROC_NARGV: ::c_int = 2; -pub const KERN_PROC_ENV: ::c_int = 3; -pub const KERN_PROC_NENV: ::c_int = 4; -pub const KERN_PROC_PATHNAME: ::c_int = 5; -pub const VM_PROC: ::c_int = 16; -pub const VM_PROC_MAP: ::c_int = 1; - -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_FAMILY: ::c_int = 5; -pub const EAI_MEMORY: ::c_int = 6; -pub const EAI_NODATA: ::c_int = 7; -pub const EAI_NONAME: ::c_int = 8; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_OVERFLOW: ::c_int = 14; - -pub const AIO_CANCELED: ::c_int = 1; -pub const AIO_NOTCANCELED: ::c_int = 2; -pub const AIO_ALLDONE: ::c_int = 3; -pub const LIO_NOP: ::c_int = 0; -pub const LIO_WRITE: ::c_int = 1; -pub const LIO_READ: ::c_int = 2; -pub const LIO_WAIT: ::c_int = 1; -pub const LIO_NOWAIT: ::c_int = 0; - -pub const SIGEV_NONE: ::c_int = 0; -pub const SIGEV_SIGNAL: ::c_int = 1; -pub const SIGEV_THREAD: ::c_int = 2; - -pub const WSTOPPED: ::c_int = 0x00000002; // same as WUNTRACED -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 TMP_MAX: c_uint = 308915776; + +pub const AI_PASSIVE: c_int = 0x00000001; +pub const AI_CANONNAME: c_int = 0x00000002; +pub const AI_NUMERICHOST: c_int = 0x00000004; +pub const AI_NUMERICSERV: c_int = 0x00000008; +pub const AI_ADDRCONFIG: c_int = 0x00000400; +pub const AI_SRV: c_int = 0x00000800; + +pub const NI_MAXHOST: crate::socklen_t = 1025; +pub const NI_MAXSERV: crate::socklen_t = 32; + +pub const NI_NOFQDN: c_int = 0x00000001; +pub const NI_NUMERICHOST: c_int = 0x000000002; +pub const NI_NAMEREQD: c_int = 0x000000004; +pub const NI_NUMERICSERV: c_int = 0x000000008; +pub const NI_DGRAM: c_int = 0x00000010; +pub const NI_WITHSCOPEID: c_int = 0x00000020; +pub const NI_NUMERICSCOPE: c_int = 0x00000040; + +pub const RTLD_NOLOAD: c_int = 0x2000; +pub const RTLD_LOCAL: c_int = 0x200; + +pub const CTL_MAXNAME: c_int = 12; +pub const SYSCTL_NAMELEN: c_int = 32; +pub const SYSCTL_DEFSIZE: c_int = 8; +pub const CTLTYPE_NODE: c_int = 1; +pub const CTLTYPE_INT: c_int = 2; +pub const CTLTYPE_STRING: c_int = 3; +pub const CTLTYPE_QUAD: c_int = 4; +pub const CTLTYPE_STRUCT: c_int = 5; +pub const CTLTYPE_BOOL: c_int = 6; +pub const CTLFLAG_READONLY: c_int = 0x00000000; +pub const CTLFLAG_READWRITE: c_int = 0x00000070; +pub const CTLFLAG_ANYWRITE: c_int = 0x00000080; +pub const CTLFLAG_PRIVATE: c_int = 0x00000100; +pub const CTLFLAG_PERMANENT: c_int = 0x00000200; +pub const CTLFLAG_OWNDATA: c_int = 0x00000400; +pub const CTLFLAG_IMMEDIATE: c_int = 0x00000800; +pub const CTLFLAG_HEX: c_int = 0x00001000; +pub const CTLFLAG_ROOT: c_int = 0x00002000; +pub const CTLFLAG_ANYNUMBER: c_int = 0x00004000; +pub const CTLFLAG_HIDDEN: c_int = 0x00008000; +pub const CTLFLAG_ALIAS: c_int = 0x00010000; +pub const CTLFLAG_MMAP: c_int = 0x00020000; +pub const CTLFLAG_OWNDESC: c_int = 0x00040000; +pub const CTLFLAG_UNSIGNED: c_int = 0x00080000; +pub const SYSCTL_VERS_MASK: c_int = 0xff000000; +pub const SYSCTL_VERS_0: c_int = 0x00000000; +pub const SYSCTL_VERS_1: c_int = 0x01000000; +pub const SYSCTL_VERSION: c_int = SYSCTL_VERS_1; +pub const CTL_EOL: c_int = -1; +pub const CTL_QUERY: c_int = -2; +pub const CTL_CREATE: c_int = -3; +pub const CTL_CREATESYM: c_int = -4; +pub const CTL_DESTROY: c_int = -5; +pub const CTL_MMAP: c_int = -6; +pub const CTL_DESCRIBE: c_int = -7; +pub const CTL_UNSPEC: c_int = 0; +pub const CTL_KERN: c_int = 1; +pub const CTL_VM: c_int = 2; +pub const CTL_VFS: c_int = 3; +pub const CTL_NET: c_int = 4; +pub const CTL_DEBUG: c_int = 5; +pub const CTL_HW: c_int = 6; +pub const CTL_MACHDEP: c_int = 7; +pub const CTL_USER: c_int = 8; +pub const CTL_DDB: c_int = 9; +pub const CTL_PROC: c_int = 10; +pub const CTL_VENDOR: c_int = 11; +pub const CTL_EMUL: c_int = 12; +pub const CTL_SECURITY: c_int = 13; +pub const CTL_MAXID: c_int = 14; +pub const KERN_OSTYPE: c_int = 1; +pub const KERN_OSRELEASE: c_int = 2; +pub const KERN_OSREV: c_int = 3; +pub const KERN_VERSION: c_int = 4; +pub const KERN_MAXVNODES: c_int = 5; +pub const KERN_MAXPROC: c_int = 6; +pub const KERN_MAXFILES: c_int = 7; +pub const KERN_ARGMAX: c_int = 8; +pub const KERN_SECURELVL: c_int = 9; +pub const KERN_HOSTNAME: c_int = 10; +pub const KERN_HOSTID: c_int = 11; +pub const KERN_CLOCKRATE: c_int = 12; +pub const KERN_VNODE: c_int = 13; +pub const KERN_PROC: c_int = 14; +pub const KERN_FILE: c_int = 15; +pub const KERN_PROF: c_int = 16; +pub const KERN_POSIX1: c_int = 17; +pub const KERN_NGROUPS: c_int = 18; +pub const KERN_JOB_CONTROL: c_int = 19; +pub const KERN_SAVED_IDS: c_int = 20; +pub const KERN_OBOOTTIME: c_int = 21; +pub const KERN_DOMAINNAME: c_int = 22; +pub const KERN_MAXPARTITIONS: c_int = 23; +pub const KERN_RAWPARTITION: c_int = 24; +pub const KERN_NTPTIME: c_int = 25; +pub const KERN_TIMEX: c_int = 26; +pub const KERN_AUTONICETIME: c_int = 27; +pub const KERN_AUTONICEVAL: c_int = 28; +pub const KERN_RTC_OFFSET: c_int = 29; +pub const KERN_ROOT_DEVICE: c_int = 30; +pub const KERN_MSGBUFSIZE: c_int = 31; +pub const KERN_FSYNC: c_int = 32; +pub const KERN_OLDSYSVMSG: c_int = 33; +pub const KERN_OLDSYSVSEM: c_int = 34; +pub const KERN_OLDSYSVSHM: c_int = 35; +pub const KERN_OLDSHORTCORENAME: c_int = 36; +pub const KERN_SYNCHRONIZED_IO: c_int = 37; +pub const KERN_IOV_MAX: c_int = 38; +pub const KERN_MBUF: c_int = 39; +pub const KERN_MAPPED_FILES: c_int = 40; +pub const KERN_MEMLOCK: c_int = 41; +pub const KERN_MEMLOCK_RANGE: c_int = 42; +pub const KERN_MEMORY_PROTECTION: c_int = 43; +pub const KERN_LOGIN_NAME_MAX: c_int = 44; +pub const KERN_DEFCORENAME: c_int = 45; +pub const KERN_LOGSIGEXIT: c_int = 46; +pub const KERN_PROC2: c_int = 47; +pub const KERN_PROC_ARGS: c_int = 48; +pub const KERN_FSCALE: c_int = 49; +pub const KERN_CCPU: c_int = 50; +pub const KERN_CP_TIME: c_int = 51; +pub const KERN_OLDSYSVIPC_INFO: c_int = 52; +pub const KERN_MSGBUF: c_int = 53; +pub const KERN_CONSDEV: c_int = 54; +pub const KERN_MAXPTYS: c_int = 55; +pub const KERN_PIPE: c_int = 56; +pub const KERN_MAXPHYS: c_int = 57; +pub const KERN_SBMAX: c_int = 58; +pub const KERN_TKSTAT: c_int = 59; +pub const KERN_MONOTONIC_CLOCK: c_int = 60; +pub const KERN_URND: c_int = 61; +pub const KERN_LABELSECTOR: c_int = 62; +pub const KERN_LABELOFFSET: c_int = 63; +pub const KERN_LWP: c_int = 64; +pub const KERN_FORKFSLEEP: c_int = 65; +pub const KERN_POSIX_THREADS: c_int = 66; +pub const KERN_POSIX_SEMAPHORES: c_int = 67; +pub const KERN_POSIX_BARRIERS: c_int = 68; +pub const KERN_POSIX_TIMERS: c_int = 69; +pub const KERN_POSIX_SPIN_LOCKS: c_int = 70; +pub const KERN_POSIX_READER_WRITER_LOCKS: c_int = 71; +pub const KERN_DUMP_ON_PANIC: c_int = 72; +pub const KERN_SOMAXKVA: c_int = 73; +pub const KERN_ROOT_PARTITION: c_int = 74; +pub const KERN_DRIVERS: c_int = 75; +pub const KERN_BUF: c_int = 76; +pub const KERN_FILE2: c_int = 77; +pub const KERN_VERIEXEC: c_int = 78; +pub const KERN_CP_ID: c_int = 79; +pub const KERN_HARDCLOCK_TICKS: c_int = 80; +pub const KERN_ARND: c_int = 81; +pub const KERN_SYSVIPC: c_int = 82; +pub const KERN_BOOTTIME: c_int = 83; +pub const KERN_EVCNT: c_int = 84; +pub const KERN_MAXID: c_int = 85; +pub const KERN_PROC_ALL: c_int = 0; +pub const KERN_PROC_PID: c_int = 1; +pub const KERN_PROC_PGRP: c_int = 2; +pub const KERN_PROC_SESSION: c_int = 3; +pub const KERN_PROC_TTY: c_int = 4; +pub const KERN_PROC_UID: c_int = 5; +pub const KERN_PROC_RUID: c_int = 6; +pub const KERN_PROC_GID: c_int = 7; +pub const KERN_PROC_RGID: c_int = 8; +pub const KERN_PROC_ARGV: c_int = 1; +pub const KERN_PROC_NARGV: c_int = 2; +pub const KERN_PROC_ENV: c_int = 3; +pub const KERN_PROC_NENV: c_int = 4; +pub const KERN_PROC_PATHNAME: c_int = 5; +pub const VM_PROC: c_int = 16; +pub const VM_PROC_MAP: c_int = 1; + +pub const EAI_AGAIN: c_int = 2; +pub const EAI_BADFLAGS: c_int = 3; +pub const EAI_FAIL: c_int = 4; +pub const EAI_FAMILY: c_int = 5; +pub const EAI_MEMORY: c_int = 6; +pub const EAI_NODATA: c_int = 7; +pub const EAI_NONAME: c_int = 8; +pub const EAI_SERVICE: c_int = 9; +pub const EAI_SOCKTYPE: c_int = 10; +pub const EAI_SYSTEM: c_int = 11; +pub const EAI_OVERFLOW: c_int = 14; + +pub const AIO_CANCELED: c_int = 1; +pub const AIO_NOTCANCELED: c_int = 2; +pub const AIO_ALLDONE: c_int = 3; +pub const LIO_NOP: c_int = 0; +pub const LIO_WRITE: c_int = 1; +pub const LIO_READ: c_int = 2; +pub const LIO_WAIT: c_int = 1; +pub const LIO_NOWAIT: c_int = 0; + +pub const SIGEV_NONE: c_int = 0; +pub const SIGEV_SIGNAL: c_int = 1; +pub const SIGEV_THREAD: c_int = 2; + +pub const WSTOPPED: c_int = 0x00000002; // same as WUNTRACED +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; @@ -2259,18 +2264,18 @@ pub const P_PGID: idtype_t = 4; pub const UTIME_OMIT: c_long = 1073741822; pub const UTIME_NOW: c_long = 1073741823; -pub const B460800: ::speed_t = 460800; -pub const B921600: ::speed_t = 921600; +pub const B460800: crate::speed_t = 460800; +pub const B921600: crate::speed_t = 921600; -pub const ONOCR: ::tcflag_t = 0x20; -pub const ONLRET: ::tcflag_t = 0x40; -pub const CDTRCTS: ::tcflag_t = 0x00020000; -pub const CHWFLOW: ::tcflag_t = ::MDMBUF | ::CRTSCTS | ::CDTRCTS; +pub const ONOCR: crate::tcflag_t = 0x20; +pub const ONLRET: crate::tcflag_t = 0x40; +pub const CDTRCTS: crate::tcflag_t = 0x00020000; +pub const CHWFLOW: crate::tcflag_t = crate::MDMBUF | crate::CRTSCTS | crate::CDTRCTS; -// pub const _PATH_UTMPX: &[::c_char; 14] = b"/var/run/utmpx"; -// pub const _PATH_WTMPX: &[::c_char; 14] = b"/var/log/wtmpx"; -// pub const _PATH_LASTLOGX: &[::c_char; 17] = b"/var/log/lastlogx"; -// pub const _PATH_UTMP_UPDATE: &[::c_char; 24] = b"/usr/libexec/utmp_update"; +// pub const _PATH_UTMPX: &[c_char; 14] = b"/var/run/utmpx"; +// pub const _PATH_WTMPX: &[c_char; 14] = b"/var/log/wtmpx"; +// pub const _PATH_LASTLOGX: &[c_char; 17] = b"/var/log/lastlogx"; +// pub const _PATH_UTMP_UPDATE: &[c_char; 24] = b"/usr/libexec/utmp_update"; pub const UT_NAMESIZE: usize = 8; pub const UT_LINESIZE: usize = 8; pub const UT_HOSTSIZE: usize = 16; @@ -2292,140 +2297,140 @@ pub const ACCOUNTING: u16 = 9; pub const SIGNATURE: u16 = 10; pub const DOWN_TIME: u16 = 11; -pub const SOCK_CLOEXEC: ::c_int = 0x10000000; -pub const SOCK_NONBLOCK: ::c_int = 0x20000000; +pub const SOCK_CLOEXEC: c_int = 0x10000000; +pub const SOCK_NONBLOCK: c_int = 0x20000000; // Uncomment on next NetBSD release -// pub const FIOSEEKDATA: ::c_ulong = 0xc0086661; -// pub const FIOSEEKHOLE: ::c_ulong = 0xc0086662; -pub const OFIOGETBMAP: ::c_ulong = 0xc004667a; -pub const FIOGETBMAP: ::c_ulong = 0xc008667a; -pub const FIONWRITE: ::c_ulong = 0x40046679; -pub const FIONSPACE: ::c_ulong = 0x40046678; -pub const FIBMAP: ::c_ulong = 0xc008667a; - -pub const SIGSTKSZ: ::size_t = 40960; - -pub const REG_ENOSYS: ::c_int = 17; - -pub const PT_DUMPCORE: ::c_int = 12; -pub const PT_LWPINFO: ::c_int = 13; -pub const PT_SYSCALL: ::c_int = 14; -pub const PT_SYSCALLEMU: ::c_int = 15; -pub const PT_SET_EVENT_MASK: ::c_int = 16; -pub const PT_GET_EVENT_MASK: ::c_int = 17; -pub const PT_GET_PROCESS_STATE: ::c_int = 18; -pub const PT_SET_SIGINFO: ::c_int = 19; -pub const PT_GET_SIGINFO: ::c_int = 20; -pub const PT_RESUME: ::c_int = 21; -pub const PT_SUSPEND: ::c_int = 23; -pub const PT_STOP: ::c_int = 23; -pub const PT_LWPSTATUS: ::c_int = 24; -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_RETURNERROR: ::c_int = 0x40; +// pub const FIOSEEKDATA: c_ulong = 0xc0086661; +// pub const FIOSEEKHOLE: c_ulong = 0xc0086662; +pub const OFIOGETBMAP: c_ulong = 0xc004667a; +pub const FIOGETBMAP: c_ulong = 0xc008667a; +pub const FIONWRITE: c_ulong = 0x40046679; +pub const FIONSPACE: c_ulong = 0x40046678; +pub const FIBMAP: c_ulong = 0xc008667a; + +pub const SIGSTKSZ: size_t = 40960; + +pub const REG_ENOSYS: c_int = 17; + +pub const PT_DUMPCORE: c_int = 12; +pub const PT_LWPINFO: c_int = 13; +pub const PT_SYSCALL: c_int = 14; +pub const PT_SYSCALLEMU: c_int = 15; +pub const PT_SET_EVENT_MASK: c_int = 16; +pub const PT_GET_EVENT_MASK: c_int = 17; +pub const PT_GET_PROCESS_STATE: c_int = 18; +pub const PT_SET_SIGINFO: c_int = 19; +pub const PT_GET_SIGINFO: c_int = 20; +pub const PT_RESUME: c_int = 21; +pub const PT_SUSPEND: c_int = 23; +pub const PT_STOP: c_int = 23; +pub const PT_LWPSTATUS: c_int = 24; +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_RETURNERROR: c_int = 0x40; // Flags for chflags(2) -pub const SF_APPEND: ::c_ulong = 0x00040000; -pub const SF_ARCHIVED: ::c_ulong = 0x00010000; -pub const SF_IMMUTABLE: ::c_ulong = 0x00020000; -pub const SF_LOG: ::c_ulong = 0x00400000; -pub const SF_SETTABLE: ::c_ulong = 0xffff0000; -pub const SF_SNAPINVAL: ::c_ulong = 0x00800000; -pub const SF_SNAPSHOT: ::c_ulong = 0x00200000; -pub const UF_APPEND: ::c_ulong = 0x00000004; -pub const UF_IMMUTABLE: ::c_ulong = 0x00000002; -pub const UF_NODUMP: ::c_ulong = 0x00000001; -pub const UF_OPAQUE: ::c_ulong = 0x00000008; -pub const UF_SETTABLE: ::c_ulong = 0x0000ffff; +pub const SF_APPEND: c_ulong = 0x00040000; +pub const SF_ARCHIVED: c_ulong = 0x00010000; +pub const SF_IMMUTABLE: c_ulong = 0x00020000; +pub const SF_LOG: c_ulong = 0x00400000; +pub const SF_SETTABLE: c_ulong = 0xffff0000; +pub const SF_SNAPINVAL: c_ulong = 0x00800000; +pub const SF_SNAPSHOT: c_ulong = 0x00200000; +pub const UF_APPEND: c_ulong = 0x00000004; +pub const UF_IMMUTABLE: c_ulong = 0x00000002; +pub const UF_NODUMP: c_ulong = 0x00000001; +pub const UF_OPAQUE: c_ulong = 0x00000008; +pub const UF_SETTABLE: c_ulong = 0x0000ffff; // sys/sysctl.h -pub const KVME_PROT_READ: ::c_int = 0x00000001; -pub const KVME_PROT_WRITE: ::c_int = 0x00000002; -pub const KVME_PROT_EXEC: ::c_int = 0x00000004; - -pub const KVME_FLAG_COW: ::c_int = 0x00000001; -pub const KVME_FLAG_NEEDS_COPY: ::c_int = 0x00000002; -pub const KVME_FLAG_NOCOREDUMP: ::c_int = 0x000000004; -pub const KVME_FLAG_PAGEABLE: ::c_int = 0x000000008; -pub const KVME_FLAG_GROWS_UP: ::c_int = 0x000000010; -pub const KVME_FLAG_GROWS_DOWN: ::c_int = 0x000000020; - -pub const NGROUPS_MAX: ::c_int = 16; - -pub const KI_NGROUPS: ::c_int = 16; -pub const KI_MAXCOMLEN: ::c_int = 24; -pub const KI_WMESGLEN: ::c_int = 8; -pub const KI_MAXLOGNAME: ::c_int = 24; -pub const KI_MAXEMULLEN: ::c_int = 16; -pub const KI_LNAMELEN: ::c_int = 20; +pub const KVME_PROT_READ: c_int = 0x00000001; +pub const KVME_PROT_WRITE: c_int = 0x00000002; +pub const KVME_PROT_EXEC: c_int = 0x00000004; + +pub const KVME_FLAG_COW: c_int = 0x00000001; +pub const KVME_FLAG_NEEDS_COPY: c_int = 0x00000002; +pub const KVME_FLAG_NOCOREDUMP: c_int = 0x000000004; +pub const KVME_FLAG_PAGEABLE: c_int = 0x000000008; +pub const KVME_FLAG_GROWS_UP: c_int = 0x000000010; +pub const KVME_FLAG_GROWS_DOWN: c_int = 0x000000020; + +pub const NGROUPS_MAX: c_int = 16; + +pub const KI_NGROUPS: c_int = 16; +pub const KI_MAXCOMLEN: c_int = 24; +pub const KI_WMESGLEN: c_int = 8; +pub const KI_MAXLOGNAME: c_int = 24; +pub const KI_MAXEMULLEN: c_int = 16; +pub const KI_LNAMELEN: c_int = 20; // sys/lwp.h -pub const LSIDL: ::c_int = 1; -pub const LSRUN: ::c_int = 2; -pub const LSSLEEP: ::c_int = 3; -pub const LSSTOP: ::c_int = 4; -pub const LSZOMB: ::c_int = 5; -pub const LSONPROC: ::c_int = 7; -pub const LSSUSPENDED: ::c_int = 8; +pub const LSIDL: c_int = 1; +pub const LSRUN: c_int = 2; +pub const LSSLEEP: c_int = 3; +pub const LSSTOP: c_int = 4; +pub const LSZOMB: c_int = 5; +pub const LSONPROC: c_int = 7; +pub const LSSUSPENDED: c_int = 8; // sys/xattr.h -pub const XATTR_CREATE: ::c_int = 0x01; -pub const XATTR_REPLACE: ::c_int = 0x02; +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; +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; +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; - -pub const fn MAP_ALIGNED(alignment: ::c_int) -> ::c_int { +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; + +pub const fn MAP_ALIGNED(alignment: c_int) -> c_int { alignment << MAP_ALIGNMENT_SHIFT } // net/route.h -pub const RTF_MASK: ::c_int = 0x80; -pub const RTF_CONNECTED: ::c_int = 0x100; -pub const RTF_ANNOUNCE: ::c_int = 0x20000; -pub const RTF_SRC: ::c_int = 0x10000; -pub const RTF_LOCAL: ::c_int = 0x40000; -pub const RTF_BROADCAST: ::c_int = 0x80000; -pub const RTF_UPDATING: ::c_int = 0x100000; -pub const RTF_DONTCHANGEIFA: ::c_int = 0x200000; - -pub const RTM_VERSION: ::c_int = 4; -pub const RTM_LOCK: ::c_int = 0x8; -pub const RTM_IFANNOUNCE: ::c_int = 0x10; -pub const RTM_IEEE80211: ::c_int = 0x11; -pub const RTM_SETGATE: ::c_int = 0x12; -pub const RTM_LLINFO_UPD: ::c_int = 0x13; -pub const RTM_IFINFO: ::c_int = 0x14; -pub const RTM_OCHGADDR: ::c_int = 0x15; -pub const RTM_NEWADDR: ::c_int = 0x16; -pub const RTM_DELADDR: ::c_int = 0x17; -pub const RTM_CHGADDR: ::c_int = 0x18; - -pub const RTA_TAG: ::c_int = 0x100; - -pub const RTAX_TAG: ::c_int = 8; -pub const RTAX_MAX: ::c_int = 9; +pub const RTF_MASK: c_int = 0x80; +pub const RTF_CONNECTED: c_int = 0x100; +pub const RTF_ANNOUNCE: c_int = 0x20000; +pub const RTF_SRC: c_int = 0x10000; +pub const RTF_LOCAL: c_int = 0x40000; +pub const RTF_BROADCAST: c_int = 0x80000; +pub const RTF_UPDATING: c_int = 0x100000; +pub const RTF_DONTCHANGEIFA: c_int = 0x200000; + +pub const RTM_VERSION: c_int = 4; +pub const RTM_LOCK: c_int = 0x8; +pub const RTM_IFANNOUNCE: c_int = 0x10; +pub const RTM_IEEE80211: c_int = 0x11; +pub const RTM_SETGATE: c_int = 0x12; +pub const RTM_LLINFO_UPD: c_int = 0x13; +pub const RTM_IFINFO: c_int = 0x14; +pub const RTM_OCHGADDR: c_int = 0x15; +pub const RTM_NEWADDR: c_int = 0x16; +pub const RTM_DELADDR: c_int = 0x17; +pub const RTM_CHGADDR: c_int = 0x18; + +pub const RTA_TAG: c_int = 0x100; + +pub const RTAX_TAG: c_int = 8; +pub const RTAX_MAX: c_int = 9; const_fn! { {const} fn _ALIGN(p: usize) -> usize { @@ -2434,85 +2439,85 @@ const_fn! { } f! { - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar).offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { + (cmsg as *mut c_uchar).offset(_ALIGN(crate::mem::size_of::()) as isize) } - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - _ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length + pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + _ALIGN(crate::mem::size_of::()) as c_uint + length } - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { + pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { - return ::CMSG_FIRSTHDR(mhdr); + return crate::CMSG_FIRSTHDR(mhdr); }; let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) - + _ALIGN(::mem::size_of::<::cmsghdr>()); + + _ALIGN(crate::mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { - 0 as *mut ::cmsghdr + 0 as *mut cmsghdr } else { - (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) as *mut ::cmsghdr + (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr } } - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (_ALIGN(::mem::size_of::<::cmsghdr>()) + _ALIGN(length as usize)) as ::c_uint + pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + (_ALIGN(crate::mem::size_of::()) + _ALIGN(length as usize)) as c_uint } // dirfd() is a macro on netbsd to access // the first field of the struct where dirp points to: // http://cvsweb.netbsd.org/bsdweb.cgi/src/include/dirent.h?rev=1.36 - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int { - *(dirp as *const ::c_int) + pub fn dirfd(dirp: *mut crate::DIR) -> c_int { + *(dirp as *const c_int) } pub fn SOCKCREDSIZE(ngrps: usize) -> usize { let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 }; - ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps + crate::mem::size_of::() + crate::mem::size_of::() * ngrps } - pub fn PROT_MPROTECT(x: ::c_int) -> ::c_int { + pub fn PROT_MPROTECT(x: c_int) -> c_int { x << 3 } - pub fn PROT_MPROTECT_EXTRACT(x: ::c_int) -> ::c_int { + 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 major(dev: crate::dev_t) -> c_int { + (((dev as u32) & 0x000fff00) >> 8) as c_int } - pub fn minor(dev: ::dev_t) -> ::c_int { + pub fn minor(dev: crate::dev_t) -> c_int { let mut res = 0; res |= ((dev as u32) & 0xfff00000) >> 12; res |= (dev as u32) & 0x000000ff; - res as ::c_int + res as c_int } } safe_f! { - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + pub {const} fn WSTOPSIG(status: c_int) -> c_int { status >> 8 } - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + pub {const} fn WIFSIGNALED(status: c_int) -> bool { (status & 0o177) != 0o177 && (status & 0o177) != 0 } - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + pub {const} fn WIFSTOPPED(status: c_int) -> bool { (status & 0o177) == 0o177 } - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + pub {const} fn WIFCONTINUED(status: c_int) -> bool { status == 0xffff } - pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; + pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + let major = major as crate::dev_t; + let minor = minor as crate::dev_t; let mut dev = 0; dev |= (major << 8) & 0x000ff00; dev |= (minor << 12) & 0xfff00000; @@ -2522,413 +2527,401 @@ safe_f! { } extern "C" { - pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; - pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; + pub fn ntp_adjtime(buf: *mut timex) -> c_int; + pub fn ntp_gettime(buf: *mut ntptimeval) -> c_int; pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; + clk_id: crate::clockid_t, + flags: c_int, + rqtp: *const crate::timespec, + rmtp: *mut crate::timespec, + ) -> c_int; - pub fn reallocarr(ptr: *mut ::c_void, number: ::size_t, size: ::size_t) -> ::c_int; + pub fn reallocarr(ptr: *mut c_void, number: size_t, size: size_t) -> c_int; - 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 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 extattr_list_fd( - fd: ::c_int, - attrnamespace: ::c_int, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; + fd: c_int, + attrnamespace: c_int, + data: *mut c_void, + nbytes: size_t, + ) -> ssize_t; pub fn extattr_list_file( - path: *const ::c_char, - attrnamespace: ::c_int, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; + path: *const c_char, + attrnamespace: c_int, + data: *mut c_void, + nbytes: size_t, + ) -> ssize_t; pub fn extattr_list_link( - path: *const ::c_char, - attrnamespace: ::c_int, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - pub fn extattr_delete_fd( - fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char, - ) -> ::c_int; + path: *const c_char, + attrnamespace: c_int, + data: *mut c_void, + nbytes: size_t, + ) -> ssize_t; + pub fn extattr_delete_fd(fd: c_int, attrnamespace: c_int, attrname: *const c_char) -> c_int; pub fn extattr_delete_file( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - ) -> ::c_int; + path: *const c_char, + attrnamespace: c_int, + attrname: *const c_char, + ) -> c_int; pub fn extattr_delete_link( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - ) -> ::c_int; + path: *const c_char, + attrnamespace: c_int, + attrname: *const c_char, + ) -> c_int; pub fn extattr_get_fd( - fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; + fd: c_int, + attrnamespace: c_int, + attrname: *const c_char, + data: *mut c_void, + nbytes: size_t, + ) -> ssize_t; pub fn extattr_get_file( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; + path: *const c_char, + attrnamespace: c_int, + attrname: *const c_char, + data: *mut c_void, + nbytes: size_t, + ) -> ssize_t; pub fn extattr_get_link( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - pub fn extattr_namespace_to_string( - attrnamespace: ::c_int, - string: *mut *mut ::c_char, - ) -> ::c_int; + path: *const c_char, + attrnamespace: c_int, + attrname: *const c_char, + data: *mut c_void, + nbytes: size_t, + ) -> ssize_t; + pub fn extattr_namespace_to_string(attrnamespace: c_int, string: *mut *mut c_char) -> c_int; pub fn extattr_set_fd( - fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t, - ) -> ::c_int; + fd: c_int, + attrnamespace: c_int, + attrname: *const c_char, + data: *const c_void, + nbytes: size_t, + ) -> c_int; pub fn extattr_set_file( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t, - ) -> ::c_int; + path: *const c_char, + attrnamespace: c_int, + attrname: *const c_char, + data: *const c_void, + nbytes: size_t, + ) -> c_int; pub fn extattr_set_link( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t, - ) -> ::c_int; - pub fn extattr_string_to_namespace( - string: *const ::c_char, - attrnamespace: *mut ::c_int, - ) -> ::c_int; + path: *const c_char, + attrnamespace: c_int, + attrname: *const c_char, + data: *const c_void, + nbytes: size_t, + ) -> c_int; + pub fn extattr_string_to_namespace(string: *const c_char, attrnamespace: *mut c_int) -> c_int; pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *mut ::termios, - winp: *mut ::winsize, - ) -> ::c_int; + amaster: *mut c_int, + aslave: *mut c_int, + name: *mut c_char, + termp: *mut crate::termios, + winp: *mut crate::winsize, + ) -> c_int; pub fn forkpty( - amaster: *mut ::c_int, - name: *mut ::c_char, - termp: *mut ::termios, - winp: *mut ::winsize, - ) -> ::pid_t; + amaster: *mut c_int, + name: *mut c_char, + termp: *mut crate::termios, + winp: *mut crate::winsize, + ) -> crate::pid_t; #[link_name = "__lutimes50"] - pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; + pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int; #[link_name = "__gettimeofday50"] - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut c_void) -> c_int; pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - servlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + sa: *const crate::sockaddr, + salen: crate::socklen_t, + host: *mut c_char, + hostlen: crate::socklen_t, + serv: *mut c_char, + servlen: crate::socklen_t, + flags: c_int, + ) -> c_int; + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; pub fn sysctl( - name: *const ::c_int, - namelen: ::c_uint, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *const ::c_void, - newlen: ::size_t, - ) -> ::c_int; + name: *const c_int, + namelen: c_uint, + oldp: *mut c_void, + oldlenp: *mut size_t, + newp: *const c_void, + newlen: size_t, + ) -> c_int; pub fn sysctlbyname( - name: *const ::c_char, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *const ::c_void, - newlen: ::size_t, - ) -> ::c_int; - pub fn sysctlnametomib( - sname: *const ::c_char, - name: *mut ::c_int, - namelenp: *mut ::size_t, - ) -> ::c_int; + name: *const c_char, + oldp: *mut c_void, + oldlenp: *mut size_t, + newp: *const c_void, + newlen: size_t, + ) -> c_int; + pub fn sysctlnametomib(sname: *const c_char, name: *mut c_int, namelenp: *mut size_t) -> c_int; #[link_name = "__kevent50"] pub fn kevent( - kq: ::c_int, - changelist: *const ::kevent, - nchanges: ::size_t, - eventlist: *mut ::kevent, - nevents: ::size_t, - timeout: *const ::timespec, - ) -> ::c_int; + kq: c_int, + changelist: *const crate::kevent, + nchanges: size_t, + eventlist: *mut crate::kevent, + nevents: size_t, + timeout: *const crate::timespec, + ) -> c_int; #[link_name = "__mount50"] pub fn mount( - src: *const ::c_char, - target: *const ::c_char, - flags: ::c_int, - data: *mut ::c_void, - size: ::size_t, - ) -> ::c_int; - pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; - pub fn mq_close(mqd: ::mqd_t) -> ::c_int; - pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_notify(mqd: ::mqd_t, notification: *const ::sigevent) -> ::c_int; + src: *const c_char, + target: *const c_char, + flags: c_int, + data: *mut c_void, + size: size_t, + ) -> c_int; + pub fn mq_open(name: *const c_char, oflag: c_int, ...) -> crate::mqd_t; + pub fn mq_close(mqd: crate::mqd_t) -> c_int; + pub fn mq_getattr(mqd: crate::mqd_t, attr: *mut crate::mq_attr) -> c_int; + pub fn mq_notify(mqd: crate::mqd_t, notification: *const crate::sigevent) -> c_int; pub fn mq_receive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - ) -> ::ssize_t; + mqd: crate::mqd_t, + msg_ptr: *mut c_char, + msg_len: size_t, + msg_prio: *mut c_uint, + ) -> ssize_t; pub fn mq_send( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - ) -> ::c_int; - pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; + mqd: crate::mqd_t, + msg_ptr: *const c_char, + msg_len: size_t, + msg_prio: c_uint, + ) -> c_int; + pub fn mq_setattr( + mqd: crate::mqd_t, + newattr: *const crate::mq_attr, + oldattr: *mut crate::mq_attr, + ) -> c_int; #[link_name = "__mq_timedreceive50"] pub fn mq_timedreceive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::ssize_t; + mqd: crate::mqd_t, + msg_ptr: *mut c_char, + msg_len: size_t, + msg_prio: *mut c_uint, + abs_timeout: *const crate::timespec, + ) -> ssize_t; #[link_name = "__mq_timedsend50"] pub fn mq_timedsend( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::c_int; - pub fn mq_unlink(name: *const ::c_char) -> ::c_int; - pub fn ptrace(request: ::c_int, pid: ::pid_t, addr: *mut ::c_void, data: ::c_int) -> ::c_int; - pub fn utrace(label: *const ::c_char, addr: *mut ::c_void, len: ::size_t) -> ::c_int; - pub fn pthread_getname_np(t: ::pthread_t, name: *mut ::c_char, len: ::size_t) -> ::c_int; + mqd: crate::mqd_t, + msg_ptr: *const c_char, + msg_len: size_t, + msg_prio: c_uint, + abs_timeout: *const crate::timespec, + ) -> c_int; + pub fn mq_unlink(name: *const c_char) -> c_int; + pub fn ptrace(request: c_int, pid: crate::pid_t, addr: *mut c_void, data: c_int) -> c_int; + pub fn utrace(label: *const c_char, addr: *mut c_void, len: size_t) -> c_int; + pub fn pthread_getname_np(t: crate::pthread_t, name: *mut c_char, len: size_t) -> c_int; pub fn pthread_setname_np( - t: ::pthread_t, - name: *const ::c_char, - arg: *const ::c_void, - ) -> ::c_int; - pub fn pthread_attr_get_np(thread: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_getattr_np(native: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; + t: crate::pthread_t, + name: *const c_char, + arg: *const c_void, + ) -> c_int; + pub fn pthread_attr_get_np(thread: crate::pthread_t, attr: *mut crate::pthread_attr_t) + -> c_int; + pub fn pthread_getattr_np(native: crate::pthread_t, attr: *mut crate::pthread_attr_t) -> c_int; pub fn pthread_attr_getguardsize( - 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; + attr: *const crate::pthread_attr_t, + guardsize: *mut size_t, + ) -> c_int; + pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int; pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; + attr: *const crate::pthread_attr_t, + stackaddr: *mut *mut c_void, + stacksize: *mut size_t, + ) -> c_int; pub fn pthread_getaffinity_np( - thread: ::pthread_t, - size: ::size_t, + thread: crate::pthread_t, + size: size_t, set: *mut cpuset_t, - ) -> ::c_int; + ) -> c_int; pub fn pthread_setaffinity_np( - thread: ::pthread_t, - size: ::size_t, + thread: crate::pthread_t, + size: size_t, set: *mut cpuset_t, - ) -> ::c_int; + ) -> c_int; pub fn _cpuset_create() -> *mut cpuset_t; pub fn _cpuset_destroy(set: *mut cpuset_t); - pub fn _cpuset_clr(cpu: cpuid_t, set: *mut cpuset_t) -> ::c_int; - pub fn _cpuset_set(cpu: cpuid_t, set: *mut cpuset_t) -> ::c_int; - pub fn _cpuset_isset(cpu: cpuid_t, set: *const cpuset_t) -> ::c_int; - pub fn _cpuset_size(set: *const cpuset_t) -> ::size_t; + pub fn _cpuset_clr(cpu: cpuid_t, set: *mut cpuset_t) -> c_int; + pub fn _cpuset_set(cpu: cpuid_t, set: *mut cpuset_t) -> c_int; + pub fn _cpuset_isset(cpu: cpuid_t, set: *const cpuset_t) -> c_int; + pub fn _cpuset_size(set: *const cpuset_t) -> size_t; pub fn _cpuset_zero(set: *mut cpuset_t); #[link_name = "__sigtimedwait50"] pub fn sigtimedwait( set: *const sigset_t, info: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; - - pub fn duplocale(base: ::locale_t) -> ::locale_t; - pub fn freelocale(loc: ::locale_t); - pub fn localeconv_l(loc: ::locale_t) -> *mut lconv; - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; + timeout: *const crate::timespec, + ) -> c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> c_int; + + pub fn duplocale(base: crate::locale_t) -> crate::locale_t; + pub fn freelocale(loc: crate::locale_t); + pub fn localeconv_l(loc: crate::locale_t) -> *mut lconv; + pub fn newlocale(mask: c_int, locale: *const c_char, base: crate::locale_t) -> crate::locale_t; #[link_name = "__settimeofday50"] - pub fn settimeofday(tv: *const ::timeval, tz: *const ::c_void) -> ::c_int; + pub fn settimeofday(tv: *const crate::timeval, tz: *const c_void) -> c_int; - pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; + pub fn dup3(src: c_int, dst: c_int, flags: c_int) -> c_int; - pub fn kqueue1(flags: ::c_int) -> ::c_int; + pub fn kqueue1(flags: c_int) -> c_int; pub fn _lwp_self() -> lwpid_t; pub fn memmem( - haystack: *const ::c_void, - haystacklen: ::size_t, - needle: *const ::c_void, - needlelen: ::size_t, - ) -> *mut ::c_void; + haystack: *const c_void, + haystacklen: size_t, + needle: *const c_void, + needlelen: size_t, + ) -> *mut c_void; // link.h pub fn dl_iterate_phdr( - callback: ::Option< - unsafe extern "C" fn( - info: *mut dl_phdr_info, - size: usize, - data: *mut ::c_void, - ) -> ::c_int, + callback: Option< + unsafe extern "C" fn(info: *mut dl_phdr_info, size: usize, data: *mut c_void) -> c_int, >, - data: *mut ::c_void, - ) -> ::c_int; + data: *mut c_void, + ) -> c_int; // dlfcn.h - pub fn _dlauxinfo() -> *mut ::c_void; + pub fn _dlauxinfo() -> *mut c_void; - pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; + pub fn iconv_open(tocode: *const c_char, fromcode: *const c_char) -> iconv_t; pub fn iconv( cd: iconv_t, - inbuf: *mut *mut ::c_char, - inbytesleft: *mut ::size_t, - outbuf: *mut *mut ::c_char, - outbytesleft: *mut ::size_t, - ) -> ::size_t; - pub fn iconv_close(cd: iconv_t) -> ::c_int; + inbuf: *mut *mut c_char, + inbytesleft: *mut size_t, + outbuf: *mut *mut c_char, + outbytesleft: *mut size_t, + ) -> size_t; + pub fn iconv_close(cd: iconv_t) -> c_int; pub fn timer_create( - clockid: ::clockid_t, - sevp: *mut ::sigevent, - timerid: *mut ::timer_t, - ) -> ::c_int; - pub fn timer_delete(timerid: ::timer_t) -> ::c_int; - pub fn timer_getoverrun(timerid: ::timer_t) -> ::c_int; - pub fn timer_gettime(timerid: ::timer_t, curr_value: *mut ::itimerspec) -> ::c_int; + clockid: crate::clockid_t, + sevp: *mut crate::sigevent, + timerid: *mut crate::timer_t, + ) -> c_int; + pub fn timer_delete(timerid: crate::timer_t) -> c_int; + pub fn timer_getoverrun(timerid: crate::timer_t) -> c_int; + pub fn timer_gettime(timerid: crate::timer_t, curr_value: *mut crate::itimerspec) -> c_int; pub fn timer_settime( - timerid: ::timer_t, - flags: ::c_int, - new_value: *const ::itimerspec, - old_value: *mut ::itimerspec, - ) -> ::c_int; + timerid: crate::timer_t, + flags: c_int, + new_value: *const crate::itimerspec, + old_value: *mut crate::itimerspec, + ) -> c_int; // Added in `NetBSD` 7.0 - pub fn explicit_memset(b: *mut ::c_void, c: ::c_int, len: ::size_t); - pub fn consttime_memequal(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int; + pub fn explicit_memset(b: *mut c_void, c: c_int, len: size_t); + pub fn consttime_memequal(a: *const c_void, b: *const c_void, len: size_t) -> c_int; - pub fn setproctitle(fmt: *const ::c_char, ...); + pub fn setproctitle(fmt: *const c_char, ...); pub fn mremap( - oldp: *mut ::c_void, - oldsize: ::size_t, - newp: *mut ::c_void, - newsize: ::size_t, - flags: ::c_int, - ) -> *mut ::c_void; - - pub fn sched_rr_get_interval(pid: ::pid_t, t: *mut ::timespec) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; - pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + oldp: *mut c_void, + oldsize: size_t, + newp: *mut c_void, + newsize: size_t, + flags: c_int, + ) -> *mut c_void; + + pub fn sched_rr_get_interval(pid: crate::pid_t, t: *mut crate::timespec) -> c_int; + pub fn sched_setparam(pid: crate::pid_t, param: *const crate::sched_param) -> c_int; + pub fn sched_getparam(pid: crate::pid_t, param: *mut crate::sched_param) -> c_int; + pub fn sched_getscheduler(pid: crate::pid_t) -> c_int; pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; + pid: crate::pid_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; #[link_name = "__pollts50"] pub fn pollts( - fds: *mut ::pollfd, - nfds: ::nfds_t, - ts: *const ::timespec, - sigmask: *const ::sigset_t, - ) -> ::c_int; + fds: *mut crate::pollfd, + nfds: crate::nfds_t, + ts: *const crate::timespec, + sigmask: *const crate::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; + fds: *mut crate::pollfd, + nfds: crate::nfds_t, + ts: *const crate::timespec, + sigmask: *const crate::sigset_t, + ) -> c_int; + pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; - pub fn reboot(mode: ::c_int, bootstr: *mut ::c_char) -> ::c_int; + pub fn reboot(mode: c_int, bootstr: *mut c_char) -> c_int; #[link_name = "___lwp_park60"] pub fn _lwp_park( - clock: ::clockid_t, - flags: ::c_int, - ts: *const ::timespec, - unpark: ::lwpid_t, - hint: *const ::c_void, - unparkhint: *mut ::c_void, - ) -> ::c_int; - pub fn _lwp_unpark(lwp: ::lwpid_t, hint: *const ::c_void) -> ::c_int; + clock: crate::clockid_t, + flags: c_int, + ts: *const crate::timespec, + unpark: crate::lwpid_t, + hint: *const c_void, + unparkhint: *mut c_void, + ) -> c_int; + pub fn _lwp_unpark(lwp: crate::lwpid_t, hint: *const c_void) -> c_int; pub fn _lwp_unpark_all( - targets: *const ::lwpid_t, - ntargets: ::size_t, - hint: *const ::c_void, - ) -> ::c_int; + targets: *const crate::lwpid_t, + ntargets: size_t, + hint: *const c_void, + ) -> c_int; - 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; + pub fn getmntinfo(mntbufp: *mut *mut crate::statvfs, flags: c_int) -> c_int; + pub fn getvfsstat(buf: *mut statvfs, bufsize: size_t, flags: c_int) -> 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; + 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; + nitems: c_int, + timeout: *const crate::timespec, + ) -> c_int; + pub fn aio_cancel(fd: c_int, aiocbp: *mut aiocb) -> c_int; pub fn lio_listio( - mode: ::c_int, + mode: c_int, aiocb_list: *const *mut aiocb, - nitems: ::c_int, + nitems: c_int, sevp: *mut sigevent, - ) -> ::c_int; + ) -> c_int; } #[link(name = "util")] extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__getpwent_r50")] pub fn getpwent_r( - pwd: *mut ::passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::passwd, - ) -> ::c_int; + pwd: *mut crate::passwd, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::passwd, + ) -> c_int; pub fn getgrent_r( - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - - pub fn updwtmpx(file: *const ::c_char, ut: *const utmpx) -> ::c_int; - pub fn getlastlogx(fname: *const ::c_char, uid: ::uid_t, ll: *mut lastlogx) -> *mut lastlogx; - pub fn updlastlogx(fname: *const ::c_char, uid: ::uid_t, ll: *mut lastlogx) -> ::c_int; - pub fn utmpxname(file: *const ::c_char) -> ::c_int; + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + + pub fn updwtmpx(file: *const c_char, ut: *const utmpx) -> c_int; + pub fn getlastlogx(fname: *const c_char, uid: crate::uid_t, ll: *mut lastlogx) + -> *mut lastlogx; + pub fn updlastlogx(fname: *const c_char, uid: crate::uid_t, ll: *mut lastlogx) -> c_int; + pub fn utmpxname(file: *const c_char) -> c_int; pub fn getutxent() -> *mut utmpx; pub fn getutxid(ut: *const utmpx) -> *mut utmpx; pub fn getutxline(ut: *const utmpx) -> *mut utmpx; @@ -2939,173 +2932,156 @@ extern "C" { pub fn getutmp(ux: *const utmpx, u: *mut utmp); pub fn getutmpx(u: *const utmp, ux: *mut utmpx); - pub fn utpname(file: *const ::c_char) -> ::c_int; + pub fn utpname(file: *const c_char) -> c_int; pub fn setutent(); pub fn endutent(); pub fn getutent() -> *mut utmp; - pub fn efopen(p: *const ::c_char, m: *const ::c_char) -> ::FILE; - pub fn emalloc(n: ::size_t) -> *mut ::c_void; - pub fn ecalloc(n: ::size_t, c: ::size_t) -> *mut ::c_void; - pub fn erealloc(p: *mut ::c_void, n: ::size_t) -> *mut ::c_void; - pub fn ereallocarr(p: *mut ::c_void, n: ::size_t, s: ::size_t); - pub fn estrdup(s: *const ::c_char) -> *mut ::c_char; - pub fn estrndup(s: *const ::c_char, len: ::size_t) -> *mut ::c_char; - pub fn estrlcpy(dst: *mut ::c_char, src: *const ::c_char, len: ::size_t) -> ::size_t; - pub fn estrlcat(dst: *mut ::c_char, src: *const ::c_char, len: ::size_t) -> ::size_t; + pub fn efopen(p: *const c_char, m: *const c_char) -> crate::FILE; + pub fn emalloc(n: size_t) -> *mut c_void; + pub fn ecalloc(n: size_t, c: size_t) -> *mut c_void; + pub fn erealloc(p: *mut c_void, n: size_t) -> *mut c_void; + pub fn ereallocarr(p: *mut c_void, n: size_t, s: size_t); + pub fn estrdup(s: *const c_char) -> *mut c_char; + pub fn estrndup(s: *const c_char, len: size_t) -> *mut c_char; + pub fn estrlcpy(dst: *mut c_char, src: *const c_char, len: size_t) -> size_t; + pub fn estrlcat(dst: *mut c_char, src: *const c_char, len: size_t) -> size_t; pub fn estrtoi( - nptr: *const ::c_char, - base: ::c_int, - lo: ::intmax_t, - hi: ::intmax_t, - ) -> ::intmax_t; + nptr: *const c_char, + base: c_int, + lo: crate::intmax_t, + hi: crate::intmax_t, + ) -> crate::intmax_t; pub fn estrtou( - nptr: *const ::c_char, - base: ::c_int, - lo: ::uintmax_t, - hi: ::uintmax_t, - ) -> ::uintmax_t; - pub fn easprintf(string: *mut *mut ::c_char, fmt: *const ::c_char, ...) -> ::c_int; - pub fn evasprintf(string: *mut *mut ::c_char, fmt: *const ::c_char, ...) -> ::c_int; + nptr: *const c_char, + base: c_int, + lo: crate::uintmax_t, + hi: crate::uintmax_t, + ) -> crate::uintmax_t; + pub fn easprintf(string: *mut *mut c_char, fmt: *const c_char, ...) -> c_int; + pub fn evasprintf(string: *mut *mut c_char, fmt: *const c_char, ...) -> c_int; pub fn esetfunc( - cb: ::Option, - ) -> ::Option; - pub fn secure_path(path: *const ::c_char) -> ::c_int; - pub fn snprintb( - buf: *mut ::c_char, - buflen: ::size_t, - fmt: *const ::c_char, - val: u64, - ) -> ::c_int; + cb: Option, + ) -> Option; + pub fn secure_path(path: *const c_char) -> c_int; + pub fn snprintb(buf: *mut c_char, buflen: size_t, fmt: *const c_char, val: u64) -> c_int; pub fn snprintb_m( - buf: *mut ::c_char, - buflen: ::size_t, - fmt: *const ::c_char, + buf: *mut c_char, + buflen: size_t, + fmt: *const c_char, val: u64, - max: ::size_t, - ) -> ::c_int; - - pub fn getbootfile() -> *const ::c_char; - pub fn getbyteorder() -> ::c_int; - pub fn getdiskrawname( - buf: *mut ::c_char, - buflen: ::size_t, - name: *const ::c_char, - ) -> *const ::c_char; + max: size_t, + ) -> c_int; + + pub fn getbootfile() -> *const c_char; + pub fn getbyteorder() -> c_int; + pub fn getdiskrawname(buf: *mut c_char, buflen: size_t, name: *const c_char) -> *const c_char; pub fn getdiskcookedname( - buf: *mut ::c_char, - buflen: ::size_t, - name: *const ::c_char, - ) -> *const ::c_char; - pub fn getfsspecname( - buf: *mut ::c_char, - buflen: ::size_t, - spec: *const ::c_char, - ) -> *const ::c_char; + buf: *mut c_char, + buflen: size_t, + name: *const c_char, + ) -> *const c_char; + pub fn getfsspecname(buf: *mut c_char, buflen: size_t, spec: *const c_char) -> *const c_char; pub fn strpct( - buf: *mut ::c_char, - bufsiz: ::size_t, - numerator: ::uintmax_t, - denominator: ::uintmax_t, - precision: ::size_t, - ) -> *mut ::c_char; + buf: *mut c_char, + bufsiz: size_t, + numerator: crate::uintmax_t, + denominator: crate::uintmax_t, + precision: size_t, + ) -> *mut c_char; pub fn strspct( - buf: *mut ::c_char, - bufsiz: ::size_t, - numerator: ::intmax_t, - denominator: ::intmax_t, - precision: ::size_t, - ) -> *mut ::c_char; + buf: *mut c_char, + bufsiz: size_t, + numerator: crate::intmax_t, + denominator: crate::intmax_t, + precision: size_t, + ) -> *mut c_char; #[link_name = "__login50"] pub fn login(ut: *const utmp); #[link_name = "__loginx50"] pub fn loginx(ut: *const utmpx); - pub fn logout(line: *const ::c_char); - pub fn logoutx(line: *const ::c_char, status: ::c_int, tpe: ::c_int); - pub fn logwtmp(line: *const ::c_char, name: *const ::c_char, host: *const ::c_char); + pub fn logout(line: *const c_char); + pub fn logoutx(line: *const c_char, status: c_int, tpe: c_int); + pub fn logwtmp(line: *const c_char, name: *const c_char, host: *const c_char); pub fn logwtmpx( - line: *const ::c_char, - name: *const ::c_char, - host: *const ::c_char, - status: ::c_int, - tpe: ::c_int, + line: *const c_char, + name: *const c_char, + host: *const c_char, + status: c_int, + tpe: c_int, ); pub fn getxattr( - path: *const ::c_char, - name: *const ::c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; + path: *const c_char, + name: *const c_char, + value: *mut c_void, + size: size_t, + ) -> ssize_t; pub fn lgetxattr( - path: *const ::c_char, - name: *const ::c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; + path: *const c_char, + name: *const c_char, + value: *mut c_void, + size: size_t, + ) -> ssize_t; pub fn fgetxattr( - filedes: ::c_int, - name: *const ::c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; + filedes: c_int, + name: *const c_char, + value: *mut c_void, + size: size_t, + ) -> ssize_t; pub fn setxattr( - path: *const ::c_char, - name: *const ::c_char, - value: *const ::c_void, - size: ::size_t, - ) -> ::c_int; + path: *const c_char, + name: *const c_char, + value: *const c_void, + size: size_t, + ) -> c_int; pub fn lsetxattr( - path: *const ::c_char, - name: *const ::c_char, - value: *const ::c_void, - size: ::size_t, - ) -> ::c_int; + path: *const c_char, + name: *const c_char, + value: *const c_void, + size: size_t, + ) -> c_int; pub fn fsetxattr( - filedes: ::c_int, - name: *const ::c_char, - value: *const ::c_void, - size: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn listxattr(path: *const ::c_char, list: *mut ::c_char, size: ::size_t) -> ::ssize_t; - pub fn llistxattr(path: *const ::c_char, list: *mut ::c_char, size: ::size_t) -> ::ssize_t; - pub fn flistxattr(filedes: ::c_int, list: *mut ::c_char, size: ::size_t) -> ::ssize_t; - pub fn removexattr(path: *const ::c_char, name: *const ::c_char) -> ::c_int; - pub fn lremovexattr(path: *const ::c_char, name: *const ::c_char) -> ::c_int; - pub fn fremovexattr(fd: ::c_int, path: *const ::c_char, name: *const ::c_char) -> ::c_int; + filedes: c_int, + name: *const c_char, + value: *const c_void, + size: size_t, + flags: c_int, + ) -> c_int; + pub fn listxattr(path: *const c_char, list: *mut c_char, size: size_t) -> ssize_t; + pub fn llistxattr(path: *const c_char, list: *mut c_char, size: size_t) -> ssize_t; + pub fn flistxattr(filedes: c_int, list: *mut c_char, size: size_t) -> ssize_t; + pub fn removexattr(path: *const c_char, name: *const c_char) -> c_int; + pub fn lremovexattr(path: *const c_char, name: *const c_char) -> c_int; + pub fn fremovexattr(fd: c_int, path: *const c_char, name: *const c_char) -> c_int; pub fn string_to_flags( - string_p: *mut *mut ::c_char, - setp: *mut ::c_ulong, - clrp: *mut ::c_ulong, - ) -> ::c_int; - pub fn flags_to_string(flags: ::c_ulong, def: *const ::c_char) -> ::c_int; + string_p: *mut *mut c_char, + setp: *mut c_ulong, + clrp: *mut c_ulong, + ) -> c_int; + pub fn flags_to_string(flags: c_ulong, def: *const c_char) -> c_int; - pub fn kinfo_getvmmap(pid: ::pid_t, cntp: *mut ::size_t) -> *mut kinfo_vmentry; + pub fn kinfo_getvmmap(pid: crate::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(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; + 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; + addrlist: *const *mut c_void, + len: size_t, + fd: c_int, + fmt: *const c_char, + ) -> c_int; } cfg_if! { diff --git a/src/unix/bsd/netbsdlike/netbsd/powerpc.rs b/src/unix/bsd/netbsdlike/netbsd/powerpc.rs index b4bfacf6a0185..1d74f171aa01c 100644 --- a/src/unix/bsd/netbsdlike/netbsd/powerpc.rs +++ b/src/unix/bsd/netbsdlike/netbsd/powerpc.rs @@ -1,12 +1,12 @@ -use PT_FIRSTMACH; +use crate::{c_double, c_int, PT_FIRSTMACH}; pub type c_long = i32; pub type c_ulong = u32; pub type c_char = u8; -pub type __cpu_simple_lock_nv_t = ::c_int; +pub type __cpu_simple_lock_nv_t = c_int; -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_double>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; -pub const PT_STEP: ::c_int = PT_FIRSTMACH + 0; -pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; -pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2; +pub const PT_STEP: c_int = PT_FIRSTMACH + 0; +pub const PT_GETREGS: c_int = PT_FIRSTMACH + 1; +pub const PT_SETREGS: c_int = PT_FIRSTMACH + 2; diff --git a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs index 14b1be38041c7..d43269607d29c 100644 --- a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs @@ -1,10 +1,12 @@ use PT_FIRSTMACH; +use crate::{c_double, c_int}; + pub type c_long = i64; pub type c_ulong = u64; pub type c_char = u8; pub type __greg_t = u64; -pub type __cpu_simple_lock_nv_t = ::c_int; +pub type __cpu_simple_lock_nv_t = c_int; pub type __gregset = [__greg_t; _NGREG]; pub type __fregset = [__freg; _NFREG]; @@ -20,60 +22,60 @@ s_no_extra_traits! { #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] pub union __fpreg { pub u_u64: u64, - pub u_d: ::c_double, + pub u_d: c_double, } } -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; +pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::() - 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; +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 _NGREG: usize = 32; pub const _NFREG: usize = 33; -pub const _REG_X1: ::c_int = 0; -pub const _REG_X2: ::c_int = 1; -pub const _REG_X3: ::c_int = 2; -pub const _REG_X4: ::c_int = 3; -pub const _REG_X5: ::c_int = 4; -pub const _REG_X6: ::c_int = 5; -pub const _REG_X7: ::c_int = 6; -pub const _REG_X8: ::c_int = 7; -pub const _REG_X9: ::c_int = 8; -pub const _REG_X10: ::c_int = 9; -pub const _REG_X11: ::c_int = 10; -pub const _REG_X12: ::c_int = 11; -pub const _REG_X13: ::c_int = 12; -pub const _REG_X14: ::c_int = 13; -pub const _REG_X15: ::c_int = 14; -pub const _REG_X16: ::c_int = 15; -pub const _REG_X17: ::c_int = 16; -pub const _REG_X18: ::c_int = 17; -pub const _REG_X19: ::c_int = 18; -pub const _REG_X20: ::c_int = 19; -pub const _REG_X21: ::c_int = 20; -pub const _REG_X22: ::c_int = 21; -pub const _REG_X23: ::c_int = 22; -pub const _REG_X24: ::c_int = 23; -pub const _REG_X25: ::c_int = 24; -pub const _REG_X26: ::c_int = 25; -pub const _REG_X27: ::c_int = 26; -pub const _REG_X28: ::c_int = 27; -pub const _REG_X29: ::c_int = 28; -pub const _REG_X30: ::c_int = 29; -pub const _REG_X31: ::c_int = 30; -pub const _REG_PC: ::c_int = 31; +pub const _REG_X1: c_int = 0; +pub const _REG_X2: c_int = 1; +pub const _REG_X3: c_int = 2; +pub const _REG_X4: c_int = 3; +pub const _REG_X5: c_int = 4; +pub const _REG_X6: c_int = 5; +pub const _REG_X7: c_int = 6; +pub const _REG_X8: c_int = 7; +pub const _REG_X9: c_int = 8; +pub const _REG_X10: c_int = 9; +pub const _REG_X11: c_int = 10; +pub const _REG_X12: c_int = 11; +pub const _REG_X13: c_int = 12; +pub const _REG_X14: c_int = 13; +pub const _REG_X15: c_int = 14; +pub const _REG_X16: c_int = 15; +pub const _REG_X17: c_int = 16; +pub const _REG_X18: c_int = 17; +pub const _REG_X19: c_int = 18; +pub const _REG_X20: c_int = 19; +pub const _REG_X21: c_int = 20; +pub const _REG_X22: c_int = 21; +pub const _REG_X23: c_int = 22; +pub const _REG_X24: c_int = 23; +pub const _REG_X25: c_int = 24; +pub const _REG_X26: c_int = 25; +pub const _REG_X27: c_int = 26; +pub const _REG_X28: c_int = 27; +pub const _REG_X29: c_int = 28; +pub const _REG_X30: c_int = 29; +pub const _REG_X31: c_int = 30; +pub const _REG_PC: c_int = 31; -pub const _REG_RA: ::c_int = _REG_X1; -pub const _REG_SP: ::c_int = _REG_X2; -pub const _REG_GP: ::c_int = _REG_X3; -pub const _REG_TP: ::c_int = _REG_X4; -pub const _REG_S0: ::c_int = _REG_X8; -pub const _REG_RV: ::c_int = _REG_X10; -pub const _REG_A0: ::c_int = _REG_X10; +pub const _REG_RA: c_int = _REG_X1; +pub const _REG_SP: c_int = _REG_X2; +pub const _REG_GP: c_int = _REG_X3; +pub const _REG_TP: c_int = _REG_X4; +pub const _REG_S0: c_int = _REG_X8; +pub const _REG_RV: c_int = _REG_X10; +pub const _REG_A0: c_int = _REG_X10; -pub const _REG_F0: ::c_int = 0; -pub const _REG_FPCSR: ::c_int = 32; +pub const _REG_F0: c_int = 0; +pub const _REG_FPCSR: c_int = 32; diff --git a/src/unix/bsd/netbsdlike/netbsd/sparc64.rs b/src/unix/bsd/netbsdlike/netbsd/sparc64.rs index 6a86759e07e76..ff0320a9a81da 100644 --- a/src/unix/bsd/netbsdlike/netbsd/sparc64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/sparc64.rs @@ -1,7 +1,9 @@ +use crate::c_uchar; + pub type c_long = i64; pub type c_ulong = u64; pub type c_char = i8; -pub type __cpu_simple_lock_nv_t = ::c_uchar; +pub type __cpu_simple_lock_nv_t = c_uchar; // should be pub(crate), but that requires Rust 1.18.0 #[doc(hidden)] diff --git a/src/unix/bsd/netbsdlike/netbsd/x86.rs b/src/unix/bsd/netbsdlike/netbsd/x86.rs index d3a3967df17ef..db21dc326cc53 100644 --- a/src/unix/bsd/netbsdlike/netbsd/x86.rs +++ b/src/unix/bsd/netbsdlike/netbsd/x86.rs @@ -1,6 +1,8 @@ +use crate::{c_int, c_uchar}; + pub type c_long = i32; pub type c_ulong = u32; pub type c_char = i8; -pub type __cpu_simple_lock_nv_t = ::c_uchar; +pub type __cpu_simple_lock_nv_t = c_uchar; -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/x86_64.rs b/src/unix/bsd/netbsdlike/netbsd/x86_64.rs index 792156484902c..28829ee11ea83 100644 --- a/src/unix/bsd/netbsdlike/netbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/x86_64.rs @@ -1,58 +1,58 @@ -use PT_FIRSTMACH; +use crate::{c_int, c_uchar, c_uint, PT_FIRSTMACH}; pub type c_long = i64; pub type c_ulong = u64; pub type c_char = i8; pub type c___greg_t = u64; -pub type __cpu_simple_lock_nv_t = ::c_uchar; +pub type __cpu_simple_lock_nv_t = c_uchar; s! { pub struct mcontext_t { pub __gregs: [c___greg_t; 26], pub _mc_tlsbase: c___greg_t, - pub __fpregs: [[::c_char; 32]; 16], + pub __fpregs: [[c_char; 32]; 16], } pub struct ucontext_t { - pub uc_flags: ::c_uint, - pub uc_link: *mut ::ucontext_t, - pub uc_sigmask: ::sigset_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: ::mcontext_t, + pub uc_flags: c_uint, + pub uc_link: *mut crate::ucontext_t, + pub uc_sigmask: crate::sigset_t, + pub uc_stack: crate::stack_t, + pub uc_mcontext: crate::mcontext_t, } } -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; -pub const PT_STEP: ::c_int = PT_FIRSTMACH + 0; -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 PT_STEP: c_int = PT_FIRSTMACH + 0; +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; +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; diff --git a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs index f2159c4dc2142..02f3f1bc61577 100644 --- a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs @@ -1,3 +1,5 @@ +use crate::c_int; + pub type c_long = i64; pub type c_ulong = u64; pub type c_char = u8; @@ -5,17 +7,17 @@ pub type ucontext_t = sigcontext; s! { pub struct sigcontext { - __sc_unused: ::c_int, - pub sc_mask: ::c_int, - pub sc_sp: ::c_ulong, - pub sc_lr: ::c_ulong, - pub sc_elr: ::c_ulong, - pub sc_spsr: ::c_ulong, - pub sc_x: [::c_ulong; 30], - pub sc_cookie: ::c_long, + __sc_unused: c_int, + pub sc_mask: c_int, + pub sc_sp: c_ulong, + pub sc_lr: c_ulong, + pub sc_elr: c_ulong, + pub sc_spsr: c_ulong, + pub sc_x: [c_ulong; 30], + pub sc_cookie: c_long, } } -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/arm.rs b/src/unix/bsd/netbsdlike/openbsd/arm.rs index 6394df9300245..89603fba92853 100644 --- a/src/unix/bsd/netbsdlike/openbsd/arm.rs +++ b/src/unix/bsd/netbsdlike/openbsd/arm.rs @@ -1,7 +1,9 @@ +use crate::c_double; + pub type c_long = i32; pub type c_ulong = u32; pub type c_char = u8; -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_double>() - 1; +pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index e89bbc99a6060..eded05a7bdb9b 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1,22 +1,25 @@ -use unix::bsd::O_SYNC; +use crate::unix::bsd::O_SYNC; +use crate::{ + c_int, c_longlong, c_short, c_uchar, c_uint, c_ushort, c_void, cmsghdr, off_t, size_t, +}; pub type clock_t = i64; -pub type suseconds_t = ::c_long; +pub type suseconds_t = c_long; pub type dev_t = i32; -pub type sigset_t = ::c_uint; +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; -pub type pthread_cond_t = *mut ::c_void; -pub type pthread_condattr_t = *mut ::c_void; -pub type pthread_rwlock_t = *mut ::c_void; -pub type pthread_rwlockattr_t = *mut ::c_void; -pub type pthread_spinlock_t = ::uintptr_t; -pub type caddr_t = *mut ::c_char; +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; +pub type pthread_cond_t = *mut c_void; +pub type pthread_condattr_t = *mut c_void; +pub type pthread_rwlock_t = *mut c_void; +pub type pthread_rwlockattr_t = *mut c_void; +pub type pthread_spinlock_t = crate::uintptr_t; +pub type caddr_t = *mut c_char; // elf.h @@ -39,11 +42,11 @@ pub type Elf64_Xword = u64; // search.h pub type ENTRY = entry; -pub type ACTION = ::c_uint; +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; +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")] { @@ -61,151 +64,151 @@ s! { pub struct ip_mreqn { pub imr_multiaddr: in_addr, pub imr_address: in_addr, - pub imr_ifindex: ::c_int, + pub imr_ifindex: c_int, } pub struct glob_t { - pub gl_pathc: ::size_t, - pub gl_matchc: ::size_t, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - pub gl_pathv: *mut *mut ::c_char, - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - __unused6: *mut ::c_void, - __unused7: *mut ::c_void, + pub gl_pathc: size_t, + pub gl_matchc: size_t, + pub gl_offs: size_t, + pub gl_flags: c_int, + pub gl_pathv: *mut *mut c_char, + __unused1: *mut c_void, + __unused2: *mut c_void, + __unused3: *mut c_void, + __unused4: *mut c_void, + __unused5: *mut c_void, + __unused6: *mut c_void, + __unused7: *mut c_void, } pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, + pub decimal_point: *mut c_char, + pub thousands_sep: *mut c_char, + pub grouping: *mut c_char, + pub int_curr_symbol: *mut c_char, + pub currency_symbol: *mut c_char, + pub mon_decimal_point: *mut c_char, + pub mon_thousands_sep: *mut c_char, + pub mon_grouping: *mut c_char, + pub positive_sign: *mut c_char, + pub negative_sign: *mut c_char, + pub int_frac_digits: c_char, + pub frac_digits: c_char, + pub p_cs_precedes: c_char, + pub p_sep_by_space: c_char, + pub n_cs_precedes: c_char, + pub n_sep_by_space: c_char, + pub p_sign_posn: c_char, + pub n_sign_posn: c_char, + pub int_p_cs_precedes: c_char, + pub int_p_sep_by_space: c_char, + pub int_n_cs_precedes: c_char, + pub int_n_sep_by_space: c_char, + pub int_p_sign_posn: c_char, + pub int_n_sign_posn: c_char, } pub struct ufs_args { - pub fspec: *mut ::c_char, + pub fspec: *mut c_char, pub export_info: export_args, } pub struct mfs_args { - pub fspec: *mut ::c_char, + pub fspec: *mut c_char, pub export_info: export_args, // https://github.com/openbsd/src/blob/HEAD/sys/sys/types.h#L134 - pub base: *mut ::c_char, - pub size: ::c_ulong, + pub base: *mut c_char, + pub size: c_ulong, } pub struct iso_args { - pub fspec: *mut ::c_char, + pub fspec: *mut c_char, pub export_info: export_args, - pub flags: ::c_int, - pub sess: ::c_int, + pub flags: c_int, + pub sess: c_int, } pub struct nfs_args { - pub version: ::c_int, - pub addr: *mut ::sockaddr, - pub addrlen: ::c_int, - pub sotype: ::c_int, - pub proto: ::c_int, - pub fh: *mut ::c_uchar, - pub fhsize: ::c_int, - pub flags: ::c_int, - pub wsize: ::c_int, - pub rsize: ::c_int, - pub readdirsize: ::c_int, - pub timeo: ::c_int, - pub retrans: ::c_int, - pub maxgrouplist: ::c_int, - pub readahead: ::c_int, - pub leaseterm: ::c_int, - pub deadthresh: ::c_int, - pub hostname: *mut ::c_char, - pub acregmin: ::c_int, - pub acregmax: ::c_int, - pub acdirmin: ::c_int, - pub acdirmax: ::c_int, + pub version: c_int, + pub addr: *mut crate::sockaddr, + pub addrlen: c_int, + pub sotype: c_int, + pub proto: c_int, + pub fh: *mut c_uchar, + pub fhsize: c_int, + pub flags: c_int, + pub wsize: c_int, + pub rsize: c_int, + pub readdirsize: c_int, + pub timeo: c_int, + pub retrans: c_int, + pub maxgrouplist: c_int, + pub readahead: c_int, + pub leaseterm: c_int, + pub deadthresh: c_int, + pub hostname: *mut c_char, + pub acregmin: c_int, + pub acregmax: c_int, + pub acdirmin: c_int, + pub acdirmax: c_int, } pub struct msdosfs_args { - pub fspec: *mut ::c_char, + pub fspec: *mut c_char, pub export_info: export_args, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub mask: ::mode_t, - pub flags: ::c_int, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub mask: crate::mode_t, + pub flags: c_int, } pub struct ntfs_args { - pub fspec: *mut ::c_char, + pub fspec: *mut c_char, pub export_info: export_args, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub mode: ::mode_t, - pub flag: ::c_ulong, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub mode: crate::mode_t, + pub flag: c_ulong, } pub struct udf_args { - pub fspec: *mut ::c_char, + pub fspec: *mut c_char, pub lastblock: u32, } pub struct tmpfs_args { - pub ta_version: ::c_int, - pub ta_nodes_max: ::ino_t, - pub ta_size_max: ::off_t, - pub ta_root_uid: ::uid_t, - pub ta_root_gid: ::gid_t, - pub ta_root_mode: ::mode_t, + pub ta_version: c_int, + pub ta_nodes_max: crate::ino_t, + pub ta_size_max: off_t, + pub ta_root_uid: crate::uid_t, + pub ta_root_gid: crate::gid_t, + pub ta_root_mode: crate::mode_t, } pub struct fusefs_args { - pub name: *mut ::c_char, - pub fd: ::c_int, - pub max_read: ::c_int, - pub allow_other: ::c_int, + pub name: *mut c_char, + pub fd: c_int, + pub max_read: c_int, + pub allow_other: c_int, } pub struct xucred { - pub cr_uid: ::uid_t, - pub cr_gid: ::gid_t, - pub cr_ngroups: ::c_short, + pub cr_uid: crate::uid_t, + pub cr_gid: crate::gid_t, + pub cr_ngroups: c_short, //https://github.com/openbsd/src/blob/HEAD/sys/sys/syslimits.h#L44 - pub cr_groups: [::gid_t; 16], + pub cr_groups: [crate::gid_t; 16], } pub struct export_args { - pub ex_flags: ::c_int, - pub ex_root: ::uid_t, + pub ex_flags: c_int, + pub ex_root: crate::uid_t, pub ex_anon: xucred, - pub ex_addr: *mut ::sockaddr, - pub ex_addrlen: ::c_int, - pub ex_mask: *mut ::sockaddr, - pub ex_masklen: ::c_int, + pub ex_addr: *mut crate::sockaddr, + pub ex_addrlen: c_int, + pub ex_mask: *mut crate::sockaddr, + pub ex_masklen: c_int, } pub struct ip_mreq { @@ -214,92 +217,92 @@ s! { } pub struct in_addr { - pub s_addr: ::in_addr_t, + pub s_addr: crate::in_addr_t, } pub struct sockaddr_in { pub sin_len: u8, - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, + pub sin_family: crate::sa_family_t, + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, pub sin_zero: [i8; 8], } pub struct splice { - pub sp_fd: ::c_int, - pub sp_max: ::off_t, - pub sp_idle: ::timeval, + pub sp_fd: c_int, + pub sp_max: off_t, + pub sp_idle: crate::timeval, } pub struct kevent { - pub ident: ::uintptr_t, - pub filter: ::c_short, - pub flags: ::c_ushort, - pub fflags: ::c_uint, + pub ident: crate::uintptr_t, + pub filter: c_short, + pub flags: c_ushort, + pub fflags: c_uint, pub data: i64, - pub udata: *mut ::c_void, + pub udata: *mut c_void, } pub struct stat { - pub st_mode: ::mode_t, - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - 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_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: ::blksize_t, + pub st_mode: crate::mode_t, + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_size: off_t, + pub st_blocks: crate::blkcnt_t, + pub st_blksize: crate::blksize_t, pub st_flags: u32, pub st_gen: u32, - pub st_birthtime: ::time_t, - pub st_birthtime_nsec: ::c_long, + pub st_birthtime: crate::time_t, + pub st_birthtime_nsec: c_long, } 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, } pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: ::socklen_t, - pub ai_addr: *mut ::sockaddr, - pub ai_canonname: *mut ::c_char, - pub ai_next: *mut ::addrinfo, + pub ai_flags: c_int, + pub ai_family: c_int, + pub ai_socktype: c_int, + pub ai_protocol: c_int, + pub ai_addrlen: crate::socklen_t, + pub ai_addr: *mut crate::sockaddr, + pub ai_canonname: *mut c_char, + pub ai_next: *mut crate::addrinfo, } pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, + pub dli_fname: *const c_char, + pub dli_fbase: *mut c_void, + pub dli_sname: *const c_char, + pub dli_saddr: *mut c_void, } pub struct if_data { - pub ifi_type: ::c_uchar, - pub ifi_addrlen: ::c_uchar, - pub ifi_hdrlen: ::c_uchar, - pub ifi_link_state: ::c_uchar, + pub ifi_type: c_uchar, + pub ifi_addrlen: c_uchar, + pub ifi_hdrlen: c_uchar, + pub ifi_link_state: c_uchar, pub ifi_mtu: u32, pub ifi_metric: u32, pub ifi_rdomain: u32, @@ -317,39 +320,39 @@ s! { pub ifi_oqdrops: u64, pub ifi_noproto: u64, pub ifi_capabilities: u32, - pub ifi_lastchange: ::timeval, + pub ifi_lastchange: crate::timeval, } pub struct if_msghdr { - pub ifm_msglen: ::c_ushort, - pub ifm_version: ::c_uchar, - pub ifm_type: ::c_uchar, - pub ifm_hdrlen: ::c_ushort, - pub ifm_index: ::c_ushort, - pub ifm_tableid: ::c_ushort, - pub ifm_pad1: ::c_uchar, - pub ifm_pad2: ::c_uchar, - pub ifm_addrs: ::c_int, - pub ifm_flags: ::c_int, - pub ifm_xflags: ::c_int, + pub ifm_msglen: c_ushort, + pub ifm_version: c_uchar, + pub ifm_type: c_uchar, + pub ifm_hdrlen: c_ushort, + pub ifm_index: c_ushort, + pub ifm_tableid: c_ushort, + pub ifm_pad1: c_uchar, + pub ifm_pad2: c_uchar, + pub ifm_addrs: c_int, + pub ifm_flags: c_int, + pub ifm_xflags: c_int, pub ifm_data: if_data, } pub struct sockaddr_dl { - pub sdl_len: ::c_uchar, - pub sdl_family: ::c_uchar, - pub sdl_index: ::c_ushort, - pub sdl_type: ::c_uchar, - pub sdl_nlen: ::c_uchar, - pub sdl_alen: ::c_uchar, - pub sdl_slen: ::c_uchar, - pub sdl_data: [::c_char; 24], + pub sdl_len: c_uchar, + pub sdl_family: c_uchar, + pub sdl_index: c_ushort, + pub sdl_type: c_uchar, + pub sdl_nlen: c_uchar, + pub sdl_alen: c_uchar, + pub sdl_slen: c_uchar, + pub sdl_data: [c_char; 24], } pub struct sockpeercred { - pub uid: ::uid_t, - pub gid: ::gid_t, - pub pid: ::pid_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub pid: crate::pid_t, } pub struct arphdr { @@ -361,18 +364,18 @@ s! { } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::c_int, - pub shm_lpid: ::pid_t, - pub shm_cpid: ::pid_t, - pub shm_nattch: ::c_short, - pub shm_atime: ::time_t, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: c_int, + pub shm_lpid: crate::pid_t, + pub shm_cpid: crate::pid_t, + pub shm_nattch: c_short, + pub shm_atime: crate::time_t, __shm_atimensec: c_long, - pub shm_dtime: ::time_t, + pub shm_dtime: crate::time_t, __shm_dtimensec: c_long, - pub shm_ctime: ::time_t, + pub shm_ctime: crate::time_t, __shm_ctimensec: c_long, - pub shm_internal: *mut ::c_void, + pub shm_internal: *mut c_void, } // elf.h @@ -402,7 +405,7 @@ s! { pub struct dl_phdr_info { pub dlpi_addr: Elf_Addr, - pub dlpi_name: *const ::c_char, + pub dlpi_name: *const c_char, pub dlpi_phdr: *const Elf_Phdr, pub dlpi_phnum: Elf_Half, } @@ -461,10 +464,10 @@ s! { pub p_nice: u8, pub p_xstat: u16, pub p_spare: u16, - pub p_comm: [::c_char; KI_MAXCOMLEN as usize], - pub p_wmesg: [::c_char; KI_WMESGLEN as usize], + pub p_comm: [c_char; KI_MAXCOMLEN as usize], + pub p_wmesg: [c_char; KI_WMESGLEN as usize], pub p_wchan: u64, - pub p_login: [::c_char; KI_MAXLOGNAME as usize], + pub p_login: [c_char; KI_MAXLOGNAME as usize], pub p_vm_rssize: i32, pub p_vm_tsize: i32, pub p_vm_dsize: i32, @@ -496,50 +499,50 @@ s! { pub p_acflag: u32, pub p_svuid: u32, pub p_svgid: u32, - pub p_emul: [::c_char; KI_EMULNAMELEN as usize], + pub p_emul: [c_char; KI_EMULNAMELEN as usize], pub p_rlim_rss_cur: u64, pub p_cpuid: u64, pub p_vm_map_size: u64, pub p_tid: i32, pub p_rtableid: u32, pub p_pledge: u64, - pub p_name: [::c_char; KI_MAXCOMLEN as usize], + pub p_name: [c_char; KI_MAXCOMLEN as usize], } pub struct kinfo_vmentry { - pub kve_start: ::c_ulong, - pub kve_end: ::c_ulong, - pub kve_guard: ::c_ulong, - pub kve_fspace: ::c_ulong, - pub kve_fspace_augment: ::c_ulong, + pub kve_start: c_ulong, + pub kve_end: c_ulong, + pub kve_guard: c_ulong, + pub kve_fspace: c_ulong, + pub kve_fspace_augment: c_ulong, pub kve_offset: u64, - pub kve_wired_count: ::c_int, - pub kve_etype: ::c_int, - pub kve_protection: ::c_int, - pub kve_max_protection: ::c_int, - pub kve_advice: ::c_int, - pub kve_inheritance: ::c_int, + pub kve_wired_count: c_int, + pub kve_etype: c_int, + pub kve_protection: c_int, + pub kve_max_protection: c_int, + pub kve_advice: c_int, + pub kve_inheritance: c_int, pub kve_flags: u8, } pub struct ptrace_state { - pub pe_report_event: ::c_int, - pub pe_other_pid: ::pid_t, - pub pe_tid: ::pid_t, + pub pe_report_event: c_int, + pub pe_other_pid: crate::pid_t, + pub pe_tid: crate::pid_t, } pub struct ptrace_thread_state { - pub pts_tid: ::pid_t, + pub pts_tid: crate::pid_t, } // search.h pub struct entry { - pub key: *mut ::c_char, - pub data: *mut ::c_void, + pub key: *mut c_char, + pub data: *mut c_void, } pub struct ifreq { - pub ifr_name: [::c_char; ::IFNAMSIZ], + pub ifr_name: [c_char; crate::IFNAMSIZ], pub ifr_ifru: __c_anonymous_ifr_ifru, } @@ -607,53 +610,53 @@ s! { } impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_char { + pub unsafe fn si_addr(&self) -> *mut c_char { self.si_addr } - pub unsafe fn si_code(&self) -> ::c_int { + pub unsafe fn si_code(&self) -> c_int { self.si_code } - pub unsafe fn si_errno(&self) -> ::c_int { + pub unsafe fn si_errno(&self) -> c_int { self.si_errno } - pub unsafe fn si_pid(&self) -> ::pid_t { + pub unsafe fn si_pid(&self) -> crate::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, + _si_signo: c_int, + _si_code: c_int, + _si_errno: c_int, + _pad: [c_int; SI_PAD], + _pid: crate::pid_t, } (*(self as *const siginfo_t as *const siginfo_timer))._pid } - pub unsafe fn si_uid(&self) -> ::uid_t { + pub unsafe fn si_uid(&self) -> crate::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, + _si_signo: c_int, + _si_code: c_int, + _si_errno: c_int, + _pad: [c_int; SI_PAD], + _pid: crate::pid_t, + _uid: crate::uid_t, } (*(self as *const siginfo_t as *const siginfo_timer))._uid } - pub unsafe fn si_value(&self) -> ::sigval { + pub unsafe fn si_value(&self) -> crate::sigval { #[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, - value: ::sigval, + _si_signo: c_int, + _si_code: c_int, + _si_errno: c_int, + _pad: [c_int; SI_PAD], + _pid: crate::pid_t, + _uid: crate::uid_t, + value: crate::sigval, } (*(self as *const siginfo_t as *const siginfo_timer)).value } @@ -661,28 +664,28 @@ impl siginfo_t { s_no_extra_traits! { pub struct dirent { - pub d_fileno: ::ino_t, - pub d_off: ::off_t, + pub d_fileno: crate::ino_t, + pub d_off: off_t, pub d_reclen: u16, pub d_type: u8, pub d_namlen: u8, __d_padding: [u8; 4], - pub d_name: [::c_char; 256], + pub d_name: [c_char; 256], } pub struct sockaddr_storage { pub ss_len: u8, - pub ss_family: ::sa_family_t, + pub ss_family: crate::sa_family_t, __ss_pad1: [u8; 6], __ss_pad2: i64, __ss_pad3: [u8; 240], } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - pub si_addr: *mut ::c_char, + pub si_signo: c_int, + pub si_code: c_int, + pub si_errno: c_int, + pub si_addr: *mut c_char, #[cfg(target_pointer_width = "32")] __pad: [u8; 112], #[cfg(target_pointer_width = "64")] @@ -690,16 +693,16 @@ s_no_extra_traits! { } pub struct lastlog { - ll_time: ::time_t, - ll_line: [::c_char; UT_LINESIZE], - ll_host: [::c_char; UT_HOSTSIZE], + ll_time: crate::time_t, + ll_line: [c_char; UT_LINESIZE], + ll_host: [c_char; UT_HOSTSIZE], } pub struct utmp { - pub ut_line: [::c_char; UT_LINESIZE], - pub ut_name: [::c_char; UT_NAMESIZE], - pub ut_host: [::c_char; UT_HOSTSIZE], - pub ut_time: ::time_t, + pub ut_line: [c_char; UT_LINESIZE], + pub ut_name: [c_char; UT_NAMESIZE], + pub ut_host: [c_char; UT_HOSTSIZE], + pub ut_time: crate::time_t, } pub union mount_info { @@ -710,19 +713,19 @@ s_no_extra_traits! { pub msdosfs_args: msdosfs_args, pub ntfs_args: ntfs_args, pub tmpfs_args: tmpfs_args, - align: [::c_char; 160], + align: [c_char; 160], } 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_addr: crate::sockaddr, + pub ifru_dstaddr: crate::sockaddr, + pub ifru_broadaddr: crate::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, + pub ifru_data: crate::caddr_t, + pub ifru_index: c_uint, } // This type uses the union mount_info: @@ -740,14 +743,14 @@ s_no_extra_traits! { pub f_syncreads: u64, pub f_asyncwrites: u64, pub f_asyncreads: u64, - pub f_fsid: ::fsid_t, + pub f_fsid: crate::fsid_t, pub f_namemax: u32, - pub f_owner: ::uid_t, + pub f_owner: crate::uid_t, pub f_ctime: u64, - pub f_fstypename: [::c_char; 16], - pub f_mntonname: [::c_char; 90], - pub f_mntfromname: [::c_char; 90], - pub f_mntfromspec: [::c_char; 90], + pub f_fstypename: [c_char; 16], + pub f_mntonname: [c_char; 90], + pub f_mntfromname: [c_char; 90], + pub f_mntfromspec: [c_char; 90], pub mount_info: mount_info, } } @@ -771,8 +774,8 @@ cfg_if! { impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent") .field("d_fileno", &self.d_fileno) .field("d_off", &self.d_off) @@ -784,8 +787,8 @@ cfg_if! { } } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_fileno.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -803,8 +806,8 @@ cfg_if! { impl Eq for sockaddr_storage {} - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_len", &self.ss_len) .field("ss_family", &self.ss_family) @@ -812,8 +815,8 @@ cfg_if! { } } - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_len.hash(state); self.ss_family.hash(state); } @@ -830,8 +833,8 @@ cfg_if! { impl Eq for siginfo_t {} - impl ::fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for siginfo_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("siginfo_t") .field("si_signo", &self.si_signo) .field("si_code", &self.si_code) @@ -841,8 +844,8 @@ cfg_if! { } } - impl ::hash::Hash for siginfo_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for siginfo_t { + fn hash(&self, state: &mut H) { self.si_signo.hash(state); self.si_code.hash(state); self.si_errno.hash(state); @@ -868,8 +871,8 @@ cfg_if! { impl Eq for lastlog {} - impl ::fmt::Debug for lastlog { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for lastlog { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("lastlog") .field("ll_time", &self.ll_time) // FIXME: .field("ll_line", &self.ll_line) @@ -878,8 +881,8 @@ cfg_if! { } } - impl ::hash::Hash for lastlog { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for lastlog { + fn hash(&self, state: &mut H) { self.ll_time.hash(state); self.ll_line.hash(state); self.ll_host.hash(state); @@ -909,8 +912,8 @@ cfg_if! { impl Eq for utmp {} - impl ::fmt::Debug for utmp { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utmp { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utmp") // FIXME: .field("ut_line", &self.ut_line) // FIXME: .field("ut_name", &self.ut_name) @@ -920,8 +923,8 @@ cfg_if! { } } - impl ::hash::Hash for utmp { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utmp { + fn hash(&self, state: &mut H) { self.ut_line.hash(state); self.ut_name.hash(state); self.ut_host.hash(state); @@ -942,16 +945,16 @@ cfg_if! { impl Eq for mount_info {} - impl ::fmt::Debug for mount_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mount_info { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("mount_info") // FIXME: .field("align", &self.align) .finish() } } - impl ::hash::Hash for mount_info { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for mount_info { + fn hash(&self, state: &mut H) { unsafe { self.align.hash(state) }; } } @@ -974,8 +977,8 @@ cfg_if! { impl Eq for __c_anonymous_ifr_ifru {} - impl ::fmt::Debug for __c_anonymous_ifr_ifru { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_ifr_ifru { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("__c_anonymous_ifr_ifru") .field("ifru_addr", unsafe { &self.ifru_addr }) .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) @@ -990,8 +993,8 @@ cfg_if! { } } - impl ::hash::Hash for __c_anonymous_ifr_ifru { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_ifr_ifru { + fn hash(&self, state: &mut H) { unsafe { self.ifru_addr.hash(state); self.ifru_dstaddr.hash(state); @@ -1051,8 +1054,8 @@ cfg_if! { impl Eq for statfs {} - impl ::fmt::Debug for statfs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for statfs { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("statfs") .field("f_flags", &self.f_flags) .field("f_bsize", &self.f_bsize) @@ -1080,8 +1083,8 @@ cfg_if! { } } - impl ::hash::Hash for statfs { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for statfs { + fn hash(&self, state: &mut H) { self.f_flags.hash(state); self.f_bsize.hash(state); self.f_iosize.hash(state); @@ -1113,52 +1116,52 @@ pub const UT_NAMESIZE: usize = 32; pub const UT_LINESIZE: usize = 8; pub const UT_HOSTSIZE: usize = 256; -pub const O_CLOEXEC: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x20000; -pub const O_RSYNC: ::c_int = O_SYNC; +pub const O_CLOEXEC: c_int = 0x10000; +pub const O_DIRECTORY: c_int = 0x20000; +pub const O_RSYNC: c_int = O_SYNC; -pub const MS_SYNC: ::c_int = 0x0002; -pub const MS_INVALIDATE: ::c_int = 0x0004; +pub const MS_SYNC: c_int = 0x0002; +pub const MS_INVALIDATE: c_int = 0x0004; -pub const POLLNORM: ::c_short = ::POLLRDNORM; +pub const POLLNORM: c_short = crate::POLLRDNORM; -pub const ENOATTR: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const EOVERFLOW: ::c_int = 87; -pub const ECANCELED: ::c_int = 88; -pub const EIDRM: ::c_int = 89; -pub const ENOMSG: ::c_int = 90; -pub const ENOTSUP: ::c_int = 91; -pub const EBADMSG: ::c_int = 92; -pub const ENOTRECOVERABLE: ::c_int = 93; -pub const EOWNERDEAD: ::c_int = 94; -pub const EPROTO: ::c_int = 95; -pub const ELAST: ::c_int = 95; +pub const ENOATTR: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const EOVERFLOW: c_int = 87; +pub const ECANCELED: c_int = 88; +pub const EIDRM: c_int = 89; +pub const ENOMSG: c_int = 90; +pub const ENOTSUP: c_int = 91; +pub const EBADMSG: c_int = 92; +pub const ENOTRECOVERABLE: c_int = 93; +pub const EOWNERDEAD: c_int = 94; +pub const EPROTO: c_int = 95; +pub const ELAST: c_int = 95; -pub const F_DUPFD_CLOEXEC: ::c_int = 10; +pub const F_DUPFD_CLOEXEC: c_int = 10; pub const UTIME_OMIT: c_long = -1; pub const UTIME_NOW: c_long = -2; -pub const AT_FDCWD: ::c_int = -100; -pub const AT_EACCESS: ::c_int = 0x01; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x02; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x04; -pub const AT_REMOVEDIR: ::c_int = 0x08; +pub const AT_FDCWD: c_int = -100; +pub const AT_EACCESS: c_int = 0x01; +pub const AT_SYMLINK_NOFOLLOW: c_int = 0x02; +pub const AT_SYMLINK_FOLLOW: c_int = 0x04; +pub const AT_REMOVEDIR: c_int = 0x08; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIM_NLIMITS: ::c_int = 9; - -pub const SO_TIMESTAMP: ::c_int = 0x0800; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -pub const SO_BINDANY: ::c_int = 0x1000; -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; +pub const RLIM_NLIMITS: c_int = 9; + +pub const SO_TIMESTAMP: c_int = 0x0800; +pub const SO_SNDTIMEO: c_int = 0x1005; +pub const SO_RCVTIMEO: c_int = 0x1006; +pub const SO_BINDANY: c_int = 0x1000; +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) @@ -1166,282 +1169,282 @@ pub const SO_PROTOCOL: ::c_int = 0x1025; // IPPROTO_IP defined in src/unix/mod.rs /// Hop-by-hop option header -pub const IPPROTO_HOPOPTS: ::c_int = 0; +pub const IPPROTO_HOPOPTS: c_int = 0; // IPPROTO_ICMP defined in src/unix/mod.rs /// group mgmt protocol -pub const IPPROTO_IGMP: ::c_int = 2; +pub const IPPROTO_IGMP: c_int = 2; /// gateway^2 (deprecated) -pub const IPPROTO_GGP: ::c_int = 3; +pub const IPPROTO_GGP: c_int = 3; /// for compatibility -pub const IPPROTO_IPIP: ::c_int = 4; +pub const IPPROTO_IPIP: c_int = 4; // IPPROTO_TCP defined in src/unix/mod.rs /// exterior gateway protocol -pub const IPPROTO_EGP: ::c_int = 8; +pub const IPPROTO_EGP: c_int = 8; /// pup -pub const IPPROTO_PUP: ::c_int = 12; +pub const IPPROTO_PUP: c_int = 12; // IPPROTO_UDP defined in src/unix/mod.rs /// xns idp -pub const IPPROTO_IDP: ::c_int = 22; +pub const IPPROTO_IDP: c_int = 22; /// tp-4 w/ class negotiation -pub const IPPROTO_TP: ::c_int = 29; +pub const IPPROTO_TP: c_int = 29; // IPPROTO_IPV6 defined in src/unix/mod.rs /// IP6 routing header -pub const IPPROTO_ROUTING: ::c_int = 43; +pub const IPPROTO_ROUTING: c_int = 43; /// IP6 fragmentation header -pub const IPPROTO_FRAGMENT: ::c_int = 44; +pub const IPPROTO_FRAGMENT: c_int = 44; /// resource reservation -pub const IPPROTO_RSVP: ::c_int = 46; +pub const IPPROTO_RSVP: c_int = 46; /// General Routing Encap. -pub const IPPROTO_GRE: ::c_int = 47; +pub const IPPROTO_GRE: c_int = 47; /// IP6 Encap Sec. Payload -pub const IPPROTO_ESP: ::c_int = 50; +pub const IPPROTO_ESP: c_int = 50; /// IP6 Auth Header -pub const IPPROTO_AH: ::c_int = 51; +pub const IPPROTO_AH: c_int = 51; /// IP Mobility RFC 2004 -pub const IPPROTO_MOBILE: ::c_int = 55; +pub const IPPROTO_MOBILE: c_int = 55; // IPPROTO_ICMPV6 defined in src/unix/mod.rs /// IP6 no next header -pub const IPPROTO_NONE: ::c_int = 59; +pub const IPPROTO_NONE: c_int = 59; /// IP6 destination option -pub const IPPROTO_DSTOPTS: ::c_int = 60; +pub const IPPROTO_DSTOPTS: c_int = 60; /// ISO cnlp -pub const IPPROTO_EON: ::c_int = 80; +pub const IPPROTO_EON: c_int = 80; /// Ethernet-in-IP -pub const IPPROTO_ETHERIP: ::c_int = 97; +pub const IPPROTO_ETHERIP: c_int = 97; /// encapsulation header -pub const IPPROTO_ENCAP: ::c_int = 98; +pub const IPPROTO_ENCAP: c_int = 98; /// Protocol indep. multicast -pub const IPPROTO_PIM: ::c_int = 103; +pub const IPPROTO_PIM: c_int = 103; /// IP Payload Comp. Protocol -pub const IPPROTO_IPCOMP: ::c_int = 108; +pub const IPPROTO_IPCOMP: c_int = 108; /// CARP -pub const IPPROTO_CARP: ::c_int = 112; +pub const IPPROTO_CARP: c_int = 112; /// unicast MPLS packet -pub const IPPROTO_MPLS: ::c_int = 137; +pub const IPPROTO_MPLS: c_int = 137; /// PFSYNC -pub const IPPROTO_PFSYNC: ::c_int = 240; -pub const IPPROTO_MAX: ::c_int = 256; +pub const IPPROTO_PFSYNC: c_int = 240; +pub const IPPROTO_MAX: c_int = 256; // Only used internally, so it can be outside the range of valid IP protocols -pub const IPPROTO_DIVERT: ::c_int = 258; +pub const IPPROTO_DIVERT: c_int = 258; -pub const IP_RECVDSTADDR: ::c_int = 7; -pub const IP_SENDSRCADDR: ::c_int = IP_RECVDSTADDR; -pub const IP_RECVIF: ::c_int = 30; +pub const IP_RECVDSTADDR: c_int = 7; +pub const IP_SENDSRCADDR: c_int = IP_RECVDSTADDR; +pub const IP_RECVIF: c_int = 30; // sys/netinet/in.h -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; -pub const AF_SIP: ::c_int = 29; -pub const AF_KEY: ::c_int = 30; -pub const pseudo_AF_HDRCMPLT: ::c_int = 31; -pub const AF_BLUETOOTH: ::c_int = 32; -pub const AF_MPLS: ::c_int = 33; -pub const pseudo_AF_PFLOW: ::c_int = 34; -pub const pseudo_AF_PIPEX: ::c_int = 35; -pub const NET_RT_DUMP: ::c_int = 1; -pub const NET_RT_FLAGS: ::c_int = 2; -pub const NET_RT_IFLIST: ::c_int = 3; -pub const NET_RT_STATS: ::c_int = 4; -pub const NET_RT_TABLE: ::c_int = 5; -pub const NET_RT_IFNAMES: ::c_int = 6; +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; +pub const AF_SIP: c_int = 29; +pub const AF_KEY: c_int = 30; +pub const pseudo_AF_HDRCMPLT: c_int = 31; +pub const AF_BLUETOOTH: c_int = 32; +pub const AF_MPLS: c_int = 33; +pub const pseudo_AF_PFLOW: c_int = 34; +pub const pseudo_AF_PIPEX: c_int = 35; +pub const NET_RT_DUMP: c_int = 1; +pub const NET_RT_FLAGS: c_int = 2; +pub const NET_RT_IFLIST: c_int = 3; +pub const NET_RT_STATS: c_int = 4; +pub const NET_RT_TABLE: c_int = 5; +pub const NET_RT_IFNAMES: c_int = 6; #[doc(hidden)] #[deprecated( since = "0.2.95", note = "Possibly increasing over the releases and might not be so used in the field" )] -pub const NET_RT_MAXID: ::c_int = 7; - -pub const IPV6_JOIN_GROUP: ::c_int = 12; -pub const IPV6_LEAVE_GROUP: ::c_int = 13; - -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_ECMA: ::c_int = AF_ECMA; -pub const PF_ENCAP: ::c_int = AF_ENCAP; -pub const PF_SIP: ::c_int = AF_SIP; -pub const PF_KEY: ::c_int = AF_KEY; -pub const PF_BPF: ::c_int = pseudo_AF_HDRCMPLT; -pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -pub const PF_MPLS: ::c_int = AF_MPLS; -pub const PF_PFLOW: ::c_int = pseudo_AF_PFLOW; -pub const PF_PIPEX: ::c_int = pseudo_AF_PIPEX; - -pub const SCM_TIMESTAMP: ::c_int = 0x04; - -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; -pub const EMEDIUMTYPE: ::c_int = 86; - -pub const EAI_BADFLAGS: ::c_int = -1; -pub const EAI_NONAME: ::c_int = -2; -pub const EAI_AGAIN: ::c_int = -3; -pub const EAI_FAIL: ::c_int = -4; -pub const EAI_NODATA: ::c_int = -5; -pub const EAI_FAMILY: ::c_int = -6; -pub const EAI_SOCKTYPE: ::c_int = -7; -pub const EAI_SERVICE: ::c_int = -8; -pub const EAI_MEMORY: ::c_int = -10; -pub const EAI_SYSTEM: ::c_int = -11; -pub const EAI_OVERFLOW: ::c_int = -14; - -pub const RUSAGE_THREAD: ::c_int = 1; - -pub const MAP_COPY: ::c_int = 0x0002; -pub const MAP_NOEXTEND: ::c_int = 0x0000; - -pub const _PC_LINK_MAX: ::c_int = 1; -pub const _PC_MAX_CANON: ::c_int = 2; -pub const _PC_MAX_INPUT: ::c_int = 3; -pub const _PC_NAME_MAX: ::c_int = 4; -pub const _PC_PATH_MAX: ::c_int = 5; -pub const _PC_PIPE_BUF: ::c_int = 6; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 7; -pub const _PC_NO_TRUNC: ::c_int = 8; -pub const _PC_VDISABLE: ::c_int = 9; -pub const _PC_2_SYMLINKS: ::c_int = 10; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 11; -pub const _PC_ASYNC_IO: ::c_int = 12; -pub const _PC_FILESIZEBITS: ::c_int = 13; -pub const _PC_PRIO_IO: ::c_int = 14; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 15; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 16; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 17; -pub const _PC_REC_XFER_ALIGN: ::c_int = 18; -pub const _PC_SYMLINK_MAX: ::c_int = 19; -pub const _PC_SYNC_IO: ::c_int = 20; -pub const _PC_TIMESTAMP_RESOLUTION: ::c_int = 21; - -pub const _SC_CLK_TCK: ::c_int = 3; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 31; -pub const _SC_SEM_VALUE_MAX: ::c_int = 32; -pub const _SC_HOST_NAME_MAX: ::c_int = 33; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 34; -pub const _SC_2_PBS: ::c_int = 35; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 36; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 37; -pub const _SC_2_PBS_LOCATE: ::c_int = 38; -pub const _SC_2_PBS_MESSAGE: ::c_int = 39; -pub const _SC_2_PBS_TRACK: ::c_int = 40; -pub const _SC_ADVISORY_INFO: ::c_int = 41; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 42; -pub const _SC_AIO_MAX: ::c_int = 43; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 44; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 45; -pub const _SC_ATEXIT_MAX: ::c_int = 46; -pub const _SC_BARRIERS: ::c_int = 47; -pub const _SC_CLOCK_SELECTION: ::c_int = 48; -pub const _SC_CPUTIME: ::c_int = 49; -pub const _SC_DELAYTIMER_MAX: ::c_int = 50; -pub const _SC_IOV_MAX: ::c_int = 51; -pub const _SC_IPV6: ::c_int = 52; -pub const _SC_MAPPED_FILES: ::c_int = 53; -pub const _SC_MEMLOCK: ::c_int = 54; -pub const _SC_MEMLOCK_RANGE: ::c_int = 55; -pub const _SC_MEMORY_PROTECTION: ::c_int = 56; -pub const _SC_MESSAGE_PASSING: ::c_int = 57; -pub const _SC_MQ_OPEN_MAX: ::c_int = 58; -pub const _SC_MQ_PRIO_MAX: ::c_int = 59; -pub const _SC_PRIORITIZED_IO: ::c_int = 60; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 61; -pub const _SC_RAW_SOCKETS: ::c_int = 62; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 63; -pub const _SC_REALTIME_SIGNALS: ::c_int = 64; -pub const _SC_REGEXP: ::c_int = 65; -pub const _SC_RTSIG_MAX: ::c_int = 66; -pub const _SC_SEMAPHORES: ::c_int = 67; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 68; -pub const _SC_SHELL: ::c_int = 69; -pub const _SC_SIGQUEUE_MAX: ::c_int = 70; -pub const _SC_SPAWN: ::c_int = 71; -pub const _SC_SPIN_LOCKS: ::c_int = 72; -pub const _SC_SPORADIC_SERVER: ::c_int = 73; -pub const _SC_SS_REPL_MAX: ::c_int = 74; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 75; -pub const _SC_SYMLOOP_MAX: ::c_int = 76; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78; -pub const _SC_THREAD_CPUTIME: ::c_int = 79; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 80; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 81; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 82; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 83; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 84; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 85; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 86; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 87; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 88; -pub const _SC_THREAD_STACK_MIN: ::c_int = 89; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 90; -pub const _SC_THREADS: ::c_int = 91; -pub const _SC_TIMEOUTS: ::c_int = 92; -pub const _SC_TIMER_MAX: ::c_int = 93; -pub const _SC_TIMERS: ::c_int = 94; -pub const _SC_TRACE: ::c_int = 95; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 96; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 97; -pub const _SC_TRACE_INHERIT: ::c_int = 98; -pub const _SC_TRACE_LOG: ::c_int = 99; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 100; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 101; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 102; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 103; -pub const _SC_TRACE_NAME_MAX: ::c_int = 104; -pub const _SC_TRACE_SYS_MAX: ::c_int = 105; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 106; -pub const _SC_TTY_NAME_MAX: ::c_int = 107; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 108; -pub const _SC_V6_ILP32_OFF32: ::c_int = 109; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 110; -pub const _SC_V6_LP64_OFF64: ::c_int = 111; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 112; -pub const _SC_V7_ILP32_OFF32: ::c_int = 113; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 114; -pub const _SC_V7_LP64_OFF64: ::c_int = 115; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 116; -pub const _SC_XOPEN_CRYPT: ::c_int = 117; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 118; -pub const _SC_XOPEN_LEGACY: ::c_int = 119; -pub const _SC_XOPEN_REALTIME: ::c_int = 120; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 121; -pub const _SC_XOPEN_STREAMS: ::c_int = 122; -pub const _SC_XOPEN_UNIX: ::c_int = 123; -pub const _SC_XOPEN_UUCP: ::c_int = 124; -pub const _SC_XOPEN_VERSION: ::c_int = 125; -pub const _SC_PHYS_PAGES: ::c_int = 500; -pub const _SC_AVPHYS_PAGES: ::c_int = 501; -pub const _SC_NPROCESSORS_CONF: ::c_int = 502; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 503; +pub const NET_RT_MAXID: c_int = 7; + +pub const IPV6_JOIN_GROUP: c_int = 12; +pub const IPV6_LEAVE_GROUP: c_int = 13; + +pub const PF_ROUTE: c_int = AF_ROUTE; +pub const PF_ECMA: c_int = AF_ECMA; +pub const PF_ENCAP: c_int = AF_ENCAP; +pub const PF_SIP: c_int = AF_SIP; +pub const PF_KEY: c_int = AF_KEY; +pub const PF_BPF: c_int = pseudo_AF_HDRCMPLT; +pub const PF_BLUETOOTH: c_int = AF_BLUETOOTH; +pub const PF_MPLS: c_int = AF_MPLS; +pub const PF_PFLOW: c_int = pseudo_AF_PFLOW; +pub const PF_PIPEX: c_int = pseudo_AF_PIPEX; + +pub const SCM_TIMESTAMP: c_int = 0x04; + +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; +pub const EMEDIUMTYPE: c_int = 86; + +pub const EAI_BADFLAGS: c_int = -1; +pub const EAI_NONAME: c_int = -2; +pub const EAI_AGAIN: c_int = -3; +pub const EAI_FAIL: c_int = -4; +pub const EAI_NODATA: c_int = -5; +pub const EAI_FAMILY: c_int = -6; +pub const EAI_SOCKTYPE: c_int = -7; +pub const EAI_SERVICE: c_int = -8; +pub const EAI_MEMORY: c_int = -10; +pub const EAI_SYSTEM: c_int = -11; +pub const EAI_OVERFLOW: c_int = -14; + +pub const RUSAGE_THREAD: c_int = 1; + +pub const MAP_COPY: c_int = 0x0002; +pub const MAP_NOEXTEND: c_int = 0x0000; + +pub const _PC_LINK_MAX: c_int = 1; +pub const _PC_MAX_CANON: c_int = 2; +pub const _PC_MAX_INPUT: c_int = 3; +pub const _PC_NAME_MAX: c_int = 4; +pub const _PC_PATH_MAX: c_int = 5; +pub const _PC_PIPE_BUF: c_int = 6; +pub const _PC_CHOWN_RESTRICTED: c_int = 7; +pub const _PC_NO_TRUNC: c_int = 8; +pub const _PC_VDISABLE: c_int = 9; +pub const _PC_2_SYMLINKS: c_int = 10; +pub const _PC_ALLOC_SIZE_MIN: c_int = 11; +pub const _PC_ASYNC_IO: c_int = 12; +pub const _PC_FILESIZEBITS: c_int = 13; +pub const _PC_PRIO_IO: c_int = 14; +pub const _PC_REC_INCR_XFER_SIZE: c_int = 15; +pub const _PC_REC_MAX_XFER_SIZE: c_int = 16; +pub const _PC_REC_MIN_XFER_SIZE: c_int = 17; +pub const _PC_REC_XFER_ALIGN: c_int = 18; +pub const _PC_SYMLINK_MAX: c_int = 19; +pub const _PC_SYNC_IO: c_int = 20; +pub const _PC_TIMESTAMP_RESOLUTION: c_int = 21; + +pub const _SC_CLK_TCK: c_int = 3; +pub const _SC_SEM_NSEMS_MAX: c_int = 31; +pub const _SC_SEM_VALUE_MAX: c_int = 32; +pub const _SC_HOST_NAME_MAX: c_int = 33; +pub const _SC_MONOTONIC_CLOCK: c_int = 34; +pub const _SC_2_PBS: c_int = 35; +pub const _SC_2_PBS_ACCOUNTING: c_int = 36; +pub const _SC_2_PBS_CHECKPOINT: c_int = 37; +pub const _SC_2_PBS_LOCATE: c_int = 38; +pub const _SC_2_PBS_MESSAGE: c_int = 39; +pub const _SC_2_PBS_TRACK: c_int = 40; +pub const _SC_ADVISORY_INFO: c_int = 41; +pub const _SC_AIO_LISTIO_MAX: c_int = 42; +pub const _SC_AIO_MAX: c_int = 43; +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 44; +pub const _SC_ASYNCHRONOUS_IO: c_int = 45; +pub const _SC_ATEXIT_MAX: c_int = 46; +pub const _SC_BARRIERS: c_int = 47; +pub const _SC_CLOCK_SELECTION: c_int = 48; +pub const _SC_CPUTIME: c_int = 49; +pub const _SC_DELAYTIMER_MAX: c_int = 50; +pub const _SC_IOV_MAX: c_int = 51; +pub const _SC_IPV6: c_int = 52; +pub const _SC_MAPPED_FILES: c_int = 53; +pub const _SC_MEMLOCK: c_int = 54; +pub const _SC_MEMLOCK_RANGE: c_int = 55; +pub const _SC_MEMORY_PROTECTION: c_int = 56; +pub const _SC_MESSAGE_PASSING: c_int = 57; +pub const _SC_MQ_OPEN_MAX: c_int = 58; +pub const _SC_MQ_PRIO_MAX: c_int = 59; +pub const _SC_PRIORITIZED_IO: c_int = 60; +pub const _SC_PRIORITY_SCHEDULING: c_int = 61; +pub const _SC_RAW_SOCKETS: c_int = 62; +pub const _SC_READER_WRITER_LOCKS: c_int = 63; +pub const _SC_REALTIME_SIGNALS: c_int = 64; +pub const _SC_REGEXP: c_int = 65; +pub const _SC_RTSIG_MAX: c_int = 66; +pub const _SC_SEMAPHORES: c_int = 67; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 68; +pub const _SC_SHELL: c_int = 69; +pub const _SC_SIGQUEUE_MAX: c_int = 70; +pub const _SC_SPAWN: c_int = 71; +pub const _SC_SPIN_LOCKS: c_int = 72; +pub const _SC_SPORADIC_SERVER: c_int = 73; +pub const _SC_SS_REPL_MAX: c_int = 74; +pub const _SC_SYNCHRONIZED_IO: c_int = 75; +pub const _SC_SYMLOOP_MAX: c_int = 76; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 77; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 78; +pub const _SC_THREAD_CPUTIME: c_int = 79; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 80; +pub const _SC_THREAD_KEYS_MAX: c_int = 81; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 82; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 83; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 84; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 85; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 86; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 87; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 88; +pub const _SC_THREAD_STACK_MIN: c_int = 89; +pub const _SC_THREAD_THREADS_MAX: c_int = 90; +pub const _SC_THREADS: c_int = 91; +pub const _SC_TIMEOUTS: c_int = 92; +pub const _SC_TIMER_MAX: c_int = 93; +pub const _SC_TIMERS: c_int = 94; +pub const _SC_TRACE: c_int = 95; +pub const _SC_TRACE_EVENT_FILTER: c_int = 96; +pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 97; +pub const _SC_TRACE_INHERIT: c_int = 98; +pub const _SC_TRACE_LOG: c_int = 99; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 100; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 101; +pub const _SC_LOGIN_NAME_MAX: c_int = 102; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 103; +pub const _SC_TRACE_NAME_MAX: c_int = 104; +pub const _SC_TRACE_SYS_MAX: c_int = 105; +pub const _SC_TRACE_USER_EVENT_MAX: c_int = 106; +pub const _SC_TTY_NAME_MAX: c_int = 107; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 108; +pub const _SC_V6_ILP32_OFF32: c_int = 109; +pub const _SC_V6_ILP32_OFFBIG: c_int = 110; +pub const _SC_V6_LP64_OFF64: c_int = 111; +pub const _SC_V6_LPBIG_OFFBIG: c_int = 112; +pub const _SC_V7_ILP32_OFF32: c_int = 113; +pub const _SC_V7_ILP32_OFFBIG: c_int = 114; +pub const _SC_V7_LP64_OFF64: c_int = 115; +pub const _SC_V7_LPBIG_OFFBIG: c_int = 116; +pub const _SC_XOPEN_CRYPT: c_int = 117; +pub const _SC_XOPEN_ENH_I18N: c_int = 118; +pub const _SC_XOPEN_LEGACY: c_int = 119; +pub const _SC_XOPEN_REALTIME: c_int = 120; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 121; +pub const _SC_XOPEN_STREAMS: c_int = 122; +pub const _SC_XOPEN_UNIX: c_int = 123; +pub const _SC_XOPEN_UUCP: c_int = 124; +pub const _SC_XOPEN_VERSION: c_int = 125; +pub const _SC_PHYS_PAGES: c_int = 500; +pub const _SC_AVPHYS_PAGES: c_int = 501; +pub const _SC_NPROCESSORS_CONF: c_int = 502; +pub const _SC_NPROCESSORS_ONLN: c_int = 503; pub const FD_SETSIZE: usize = 1024; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_OTHER: ::c_int = 2; -pub const SCHED_RR: ::c_int = 3; +pub const SCHED_FIFO: c_int = 1; +pub const SCHED_OTHER: c_int = 2; +pub const SCHED_RR: c_int = 3; -pub const ST_NOSUID: ::c_ulong = 2; +pub const ST_NOSUID: c_ulong = 2; pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0 as *mut _; pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0 as *mut _; pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 0 as *mut _; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; -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 PTHREAD_MUTEX_ERRORCHECK: c_int = 1; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 2; +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_READ: i16 = -1; pub const EVFILT_WRITE: i16 = -2; @@ -1489,318 +1492,318 @@ 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; - -pub const AI_PASSIVE: ::c_int = 1; -pub const AI_CANONNAME: ::c_int = 2; -pub const AI_NUMERICHOST: ::c_int = 4; -pub const AI_EXT: ::c_int = 8; -pub const AI_NUMERICSERV: ::c_int = 16; -pub const AI_FQDN: ::c_int = 32; -pub const AI_ADDRCONFIG: ::c_int = 64; - -pub const NI_NUMERICHOST: ::c_int = 1; -pub const NI_NUMERICSERV: ::c_int = 2; -pub const NI_NOFQDN: ::c_int = 4; -pub const NI_NAMEREQD: ::c_int = 8; -pub const NI_DGRAM: ::c_int = 16; - -pub const NI_MAXHOST: ::size_t = 256; - -pub const RTLD_LOCAL: ::c_int = 0; - -pub const CTL_MAXNAME: ::c_int = 12; - -pub const CTLTYPE_NODE: ::c_int = 1; -pub const CTLTYPE_INT: ::c_int = 2; -pub const CTLTYPE_STRING: ::c_int = 3; -pub const CTLTYPE_QUAD: ::c_int = 4; -pub const CTLTYPE_STRUCT: ::c_int = 5; - -pub const CTL_UNSPEC: ::c_int = 0; -pub const CTL_KERN: ::c_int = 1; -pub const CTL_VM: ::c_int = 2; -pub const CTL_FS: ::c_int = 3; -pub const CTL_NET: ::c_int = 4; -pub const CTL_DEBUG: ::c_int = 5; -pub const CTL_HW: ::c_int = 6; -pub const CTL_MACHDEP: ::c_int = 7; -pub const CTL_DDB: ::c_int = 9; -pub const CTL_VFS: ::c_int = 10; -pub const CTL_MAXID: ::c_int = 11; - -pub const HW_NCPUONLINE: ::c_int = 25; - -pub const KERN_OSTYPE: ::c_int = 1; -pub const KERN_OSRELEASE: ::c_int = 2; -pub const KERN_OSREV: ::c_int = 3; -pub const KERN_VERSION: ::c_int = 4; -pub const KERN_MAXVNODES: ::c_int = 5; -pub const KERN_MAXPROC: ::c_int = 6; -pub const KERN_MAXFILES: ::c_int = 7; -pub const KERN_ARGMAX: ::c_int = 8; -pub const KERN_SECURELVL: ::c_int = 9; -pub const KERN_HOSTNAME: ::c_int = 10; -pub const KERN_HOSTID: ::c_int = 11; -pub const KERN_CLOCKRATE: ::c_int = 12; -pub const KERN_PROF: ::c_int = 16; -pub const KERN_POSIX1: ::c_int = 17; -pub const KERN_NGROUPS: ::c_int = 18; -pub const KERN_JOB_CONTROL: ::c_int = 19; -pub const KERN_SAVED_IDS: ::c_int = 20; -pub const KERN_BOOTTIME: ::c_int = 21; -pub const KERN_DOMAINNAME: ::c_int = 22; -pub const KERN_MAXPARTITIONS: ::c_int = 23; -pub const KERN_RAWPARTITION: ::c_int = 24; -pub const KERN_MAXTHREAD: ::c_int = 25; -pub const KERN_NTHREADS: ::c_int = 26; -pub const KERN_OSVERSION: ::c_int = 27; -pub const KERN_SOMAXCONN: ::c_int = 28; -pub const KERN_SOMINCONN: ::c_int = 29; +pub const TMP_MAX: c_uint = 0x7fffffff; + +pub const AI_PASSIVE: c_int = 1; +pub const AI_CANONNAME: c_int = 2; +pub const AI_NUMERICHOST: c_int = 4; +pub const AI_EXT: c_int = 8; +pub const AI_NUMERICSERV: c_int = 16; +pub const AI_FQDN: c_int = 32; +pub const AI_ADDRCONFIG: c_int = 64; + +pub const NI_NUMERICHOST: c_int = 1; +pub const NI_NUMERICSERV: c_int = 2; +pub const NI_NOFQDN: c_int = 4; +pub const NI_NAMEREQD: c_int = 8; +pub const NI_DGRAM: c_int = 16; + +pub const NI_MAXHOST: size_t = 256; + +pub const RTLD_LOCAL: c_int = 0; + +pub const CTL_MAXNAME: c_int = 12; + +pub const CTLTYPE_NODE: c_int = 1; +pub const CTLTYPE_INT: c_int = 2; +pub const CTLTYPE_STRING: c_int = 3; +pub const CTLTYPE_QUAD: c_int = 4; +pub const CTLTYPE_STRUCT: c_int = 5; + +pub const CTL_UNSPEC: c_int = 0; +pub const CTL_KERN: c_int = 1; +pub const CTL_VM: c_int = 2; +pub const CTL_FS: c_int = 3; +pub const CTL_NET: c_int = 4; +pub const CTL_DEBUG: c_int = 5; +pub const CTL_HW: c_int = 6; +pub const CTL_MACHDEP: c_int = 7; +pub const CTL_DDB: c_int = 9; +pub const CTL_VFS: c_int = 10; +pub const CTL_MAXID: c_int = 11; + +pub const HW_NCPUONLINE: c_int = 25; + +pub const KERN_OSTYPE: c_int = 1; +pub const KERN_OSRELEASE: c_int = 2; +pub const KERN_OSREV: c_int = 3; +pub const KERN_VERSION: c_int = 4; +pub const KERN_MAXVNODES: c_int = 5; +pub const KERN_MAXPROC: c_int = 6; +pub const KERN_MAXFILES: c_int = 7; +pub const KERN_ARGMAX: c_int = 8; +pub const KERN_SECURELVL: c_int = 9; +pub const KERN_HOSTNAME: c_int = 10; +pub const KERN_HOSTID: c_int = 11; +pub const KERN_CLOCKRATE: c_int = 12; +pub const KERN_PROF: c_int = 16; +pub const KERN_POSIX1: c_int = 17; +pub const KERN_NGROUPS: c_int = 18; +pub const KERN_JOB_CONTROL: c_int = 19; +pub const KERN_SAVED_IDS: c_int = 20; +pub const KERN_BOOTTIME: c_int = 21; +pub const KERN_DOMAINNAME: c_int = 22; +pub const KERN_MAXPARTITIONS: c_int = 23; +pub const KERN_RAWPARTITION: c_int = 24; +pub const KERN_MAXTHREAD: c_int = 25; +pub const KERN_NTHREADS: c_int = 26; +pub const KERN_OSVERSION: c_int = 27; +pub const KERN_SOMAXCONN: c_int = 28; +pub const KERN_SOMINCONN: c_int = 29; #[deprecated(since = "0.2.71", note = "Removed in OpenBSD 6.0")] -pub const KERN_USERMOUNT: ::c_int = 30; -pub const KERN_NOSUIDCOREDUMP: ::c_int = 32; -pub const KERN_FSYNC: ::c_int = 33; -pub const KERN_SYSVMSG: ::c_int = 34; -pub const KERN_SYSVSEM: ::c_int = 35; -pub const KERN_SYSVSHM: ::c_int = 36; +pub const KERN_USERMOUNT: c_int = 30; +pub const KERN_NOSUIDCOREDUMP: c_int = 32; +pub const KERN_FSYNC: c_int = 33; +pub const KERN_SYSVMSG: c_int = 34; +pub const KERN_SYSVSEM: c_int = 35; +pub const KERN_SYSVSHM: c_int = 36; #[deprecated(since = "0.2.71", note = "Removed in OpenBSD 6.0")] -pub const KERN_ARND: ::c_int = 37; -pub const KERN_MSGBUFSIZE: ::c_int = 38; -pub const KERN_MALLOCSTATS: ::c_int = 39; -pub const KERN_CPTIME: ::c_int = 40; -pub const KERN_NCHSTATS: ::c_int = 41; -pub const KERN_FORKSTAT: ::c_int = 42; -pub const KERN_NSELCOLL: ::c_int = 43; -pub const KERN_TTY: ::c_int = 44; -pub const KERN_CCPU: ::c_int = 45; -pub const KERN_FSCALE: ::c_int = 46; -pub const KERN_NPROCS: ::c_int = 47; -pub const KERN_MSGBUF: ::c_int = 48; -pub const KERN_POOL: ::c_int = 49; -pub const KERN_STACKGAPRANDOM: ::c_int = 50; -pub const KERN_SYSVIPC_INFO: ::c_int = 51; -pub const KERN_SPLASSERT: ::c_int = 54; -pub const KERN_PROC_ARGS: ::c_int = 55; -pub const KERN_NFILES: ::c_int = 56; -pub const KERN_TTYCOUNT: ::c_int = 57; -pub const KERN_NUMVNODES: ::c_int = 58; -pub const KERN_MBSTAT: ::c_int = 59; -pub const KERN_SEMINFO: ::c_int = 61; -pub const KERN_SHMINFO: ::c_int = 62; -pub const KERN_INTRCNT: ::c_int = 63; -pub const KERN_WATCHDOG: ::c_int = 64; -pub const KERN_PROC: ::c_int = 66; -pub const KERN_MAXCLUSTERS: ::c_int = 67; -pub const KERN_EVCOUNT: ::c_int = 68; -pub const KERN_TIMECOUNTER: ::c_int = 69; -pub const KERN_MAXLOCKSPERUID: ::c_int = 70; -pub const KERN_CPTIME2: ::c_int = 71; -pub const KERN_CACHEPCT: ::c_int = 72; -pub const KERN_FILE: ::c_int = 73; -pub const KERN_CONSDEV: ::c_int = 75; -pub const KERN_NETLIVELOCKS: ::c_int = 76; -pub const KERN_POOL_DEBUG: ::c_int = 77; -pub const KERN_PROC_CWD: ::c_int = 78; -pub const KERN_PROC_NOBROADCASTKILL: ::c_int = 79; -pub const KERN_PROC_VMMAP: ::c_int = 80; -pub const KERN_GLOBAL_PTRACE: ::c_int = 81; -pub const KERN_CONSBUFSIZE: ::c_int = 82; -pub const KERN_CONSBUF: ::c_int = 83; -pub const KERN_AUDIO: ::c_int = 84; -pub const KERN_CPUSTATS: ::c_int = 85; -pub const KERN_PFSTATUS: ::c_int = 86; -pub const KERN_TIMEOUT_STATS: ::c_int = 87; +pub const KERN_ARND: c_int = 37; +pub const KERN_MSGBUFSIZE: c_int = 38; +pub const KERN_MALLOCSTATS: c_int = 39; +pub const KERN_CPTIME: c_int = 40; +pub const KERN_NCHSTATS: c_int = 41; +pub const KERN_FORKSTAT: c_int = 42; +pub const KERN_NSELCOLL: c_int = 43; +pub const KERN_TTY: c_int = 44; +pub const KERN_CCPU: c_int = 45; +pub const KERN_FSCALE: c_int = 46; +pub const KERN_NPROCS: c_int = 47; +pub const KERN_MSGBUF: c_int = 48; +pub const KERN_POOL: c_int = 49; +pub const KERN_STACKGAPRANDOM: c_int = 50; +pub const KERN_SYSVIPC_INFO: c_int = 51; +pub const KERN_SPLASSERT: c_int = 54; +pub const KERN_PROC_ARGS: c_int = 55; +pub const KERN_NFILES: c_int = 56; +pub const KERN_TTYCOUNT: c_int = 57; +pub const KERN_NUMVNODES: c_int = 58; +pub const KERN_MBSTAT: c_int = 59; +pub const KERN_SEMINFO: c_int = 61; +pub const KERN_SHMINFO: c_int = 62; +pub const KERN_INTRCNT: c_int = 63; +pub const KERN_WATCHDOG: c_int = 64; +pub const KERN_PROC: c_int = 66; +pub const KERN_MAXCLUSTERS: c_int = 67; +pub const KERN_EVCOUNT: c_int = 68; +pub const KERN_TIMECOUNTER: c_int = 69; +pub const KERN_MAXLOCKSPERUID: c_int = 70; +pub const KERN_CPTIME2: c_int = 71; +pub const KERN_CACHEPCT: c_int = 72; +pub const KERN_FILE: c_int = 73; +pub const KERN_CONSDEV: c_int = 75; +pub const KERN_NETLIVELOCKS: c_int = 76; +pub const KERN_POOL_DEBUG: c_int = 77; +pub const KERN_PROC_CWD: c_int = 78; +pub const KERN_PROC_NOBROADCASTKILL: c_int = 79; +pub const KERN_PROC_VMMAP: c_int = 80; +pub const KERN_GLOBAL_PTRACE: c_int = 81; +pub const KERN_CONSBUFSIZE: c_int = 82; +pub const KERN_CONSBUF: c_int = 83; +pub const KERN_AUDIO: c_int = 84; +pub const KERN_CPUSTATS: c_int = 85; +pub const KERN_PFSTATUS: c_int = 86; +pub const KERN_TIMEOUT_STATS: c_int = 87; #[deprecated( since = "0.2.95", note = "Possibly increasing over the releases and might not be so used in the field" )] -pub const KERN_MAXID: ::c_int = 88; - -pub const KERN_PROC_ALL: ::c_int = 0; -pub const KERN_PROC_PID: ::c_int = 1; -pub const KERN_PROC_PGRP: ::c_int = 2; -pub const KERN_PROC_SESSION: ::c_int = 3; -pub const KERN_PROC_TTY: ::c_int = 4; -pub const KERN_PROC_UID: ::c_int = 5; -pub const KERN_PROC_RUID: ::c_int = 6; -pub const KERN_PROC_KTHREAD: ::c_int = 7; -pub const KERN_PROC_SHOW_THREADS: ::c_int = 0x40000000; - -pub const KERN_SYSVIPC_MSG_INFO: ::c_int = 1; -pub const KERN_SYSVIPC_SEM_INFO: ::c_int = 2; -pub const KERN_SYSVIPC_SHM_INFO: ::c_int = 3; - -pub const KERN_PROC_ARGV: ::c_int = 1; -pub const KERN_PROC_NARGV: ::c_int = 2; -pub const KERN_PROC_ENV: ::c_int = 3; -pub const KERN_PROC_NENV: ::c_int = 4; - -pub const KI_NGROUPS: ::c_int = 16; -pub const KI_MAXCOMLEN: ::c_int = 24; -pub const KI_WMESGLEN: ::c_int = 8; -pub const KI_MAXLOGNAME: ::c_int = 32; -pub const KI_EMULNAMELEN: ::c_int = 8; - -pub const KVE_ET_OBJ: ::c_int = 0x00000001; -pub const KVE_ET_SUBMAP: ::c_int = 0x00000002; -pub const KVE_ET_COPYONWRITE: ::c_int = 0x00000004; -pub const KVE_ET_NEEDSCOPY: ::c_int = 0x00000008; -pub const KVE_ET_HOLE: ::c_int = 0x00000010; -pub const KVE_ET_NOFAULT: ::c_int = 0x00000020; -pub const KVE_ET_STACK: ::c_int = 0x00000040; -pub const KVE_ET_WC: ::c_int = 0x000000080; -pub const KVE_ET_CONCEAL: ::c_int = 0x000000100; -pub const KVE_ET_SYSCALL: ::c_int = 0x000000200; -pub const KVE_ET_FREEMAPPED: ::c_int = 0x000000800; - -pub const KVE_PROT_NONE: ::c_int = 0x00000000; -pub const KVE_PROT_READ: ::c_int = 0x00000001; -pub const KVE_PROT_WRITE: ::c_int = 0x00000002; -pub const KVE_PROT_EXEC: ::c_int = 0x00000004; - -pub const KVE_ADV_NORMAL: ::c_int = 0x00000000; -pub const KVE_ADV_RANDOM: ::c_int = 0x00000001; -pub const KVE_ADV_SEQUENTIAL: ::c_int = 0x00000002; - -pub const KVE_INH_SHARE: ::c_int = 0x00000000; -pub const KVE_INH_COPY: ::c_int = 0x00000010; -pub const KVE_INH_NONE: ::c_int = 0x00000020; -pub const KVE_INH_ZERO: ::c_int = 0x00000030; - -pub const KVE_F_STATIC: ::c_int = 0x1; -pub const KVE_F_KMEM: ::c_int = 0x2; - -pub const CHWFLOW: ::tcflag_t = ::MDMBUF | ::CRTSCTS; -pub const OLCUC: ::tcflag_t = 0x20; -pub const ONOCR: ::tcflag_t = 0x40; -pub const ONLRET: ::tcflag_t = 0x80; +pub const KERN_MAXID: c_int = 88; + +pub const KERN_PROC_ALL: c_int = 0; +pub const KERN_PROC_PID: c_int = 1; +pub const KERN_PROC_PGRP: c_int = 2; +pub const KERN_PROC_SESSION: c_int = 3; +pub const KERN_PROC_TTY: c_int = 4; +pub const KERN_PROC_UID: c_int = 5; +pub const KERN_PROC_RUID: c_int = 6; +pub const KERN_PROC_KTHREAD: c_int = 7; +pub const KERN_PROC_SHOW_THREADS: c_int = 0x40000000; + +pub const KERN_SYSVIPC_MSG_INFO: c_int = 1; +pub const KERN_SYSVIPC_SEM_INFO: c_int = 2; +pub const KERN_SYSVIPC_SHM_INFO: c_int = 3; + +pub const KERN_PROC_ARGV: c_int = 1; +pub const KERN_PROC_NARGV: c_int = 2; +pub const KERN_PROC_ENV: c_int = 3; +pub const KERN_PROC_NENV: c_int = 4; + +pub const KI_NGROUPS: c_int = 16; +pub const KI_MAXCOMLEN: c_int = 24; +pub const KI_WMESGLEN: c_int = 8; +pub const KI_MAXLOGNAME: c_int = 32; +pub const KI_EMULNAMELEN: c_int = 8; + +pub const KVE_ET_OBJ: c_int = 0x00000001; +pub const KVE_ET_SUBMAP: c_int = 0x00000002; +pub const KVE_ET_COPYONWRITE: c_int = 0x00000004; +pub const KVE_ET_NEEDSCOPY: c_int = 0x00000008; +pub const KVE_ET_HOLE: c_int = 0x00000010; +pub const KVE_ET_NOFAULT: c_int = 0x00000020; +pub const KVE_ET_STACK: c_int = 0x00000040; +pub const KVE_ET_WC: c_int = 0x000000080; +pub const KVE_ET_CONCEAL: c_int = 0x000000100; +pub const KVE_ET_SYSCALL: c_int = 0x000000200; +pub const KVE_ET_FREEMAPPED: c_int = 0x000000800; + +pub const KVE_PROT_NONE: c_int = 0x00000000; +pub const KVE_PROT_READ: c_int = 0x00000001; +pub const KVE_PROT_WRITE: c_int = 0x00000002; +pub const KVE_PROT_EXEC: c_int = 0x00000004; + +pub const KVE_ADV_NORMAL: c_int = 0x00000000; +pub const KVE_ADV_RANDOM: c_int = 0x00000001; +pub const KVE_ADV_SEQUENTIAL: c_int = 0x00000002; + +pub const KVE_INH_SHARE: c_int = 0x00000000; +pub const KVE_INH_COPY: c_int = 0x00000010; +pub const KVE_INH_NONE: c_int = 0x00000020; +pub const KVE_INH_ZERO: c_int = 0x00000030; + +pub const KVE_F_STATIC: c_int = 0x1; +pub const KVE_F_KMEM: c_int = 0x2; + +pub const CHWFLOW: crate::tcflag_t = crate::MDMBUF | crate::CRTSCTS; +pub const OLCUC: crate::tcflag_t = 0x20; +pub const ONOCR: crate::tcflag_t = 0x40; +pub const ONLRET: crate::tcflag_t = 0x80; //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 -pub const ISOFSMNT_NOJOLIET: ::c_int = 0x8; // disable Joliet Ext -pub const ISOFSMNT_SESS: ::c_int = 0x10; // use iso_args.sess - -pub const NFS_ARGSVERSION: ::c_int = 4; // change when nfs_args changes - -pub const NFSMNT_RESVPORT: ::c_int = 0; // always use reserved ports -pub const NFSMNT_SOFT: ::c_int = 0x1; // soft mount (hard is default) -pub const NFSMNT_WSIZE: ::c_int = 0x2; // set write size -pub const NFSMNT_RSIZE: ::c_int = 0x4; // set read size -pub const NFSMNT_TIMEO: ::c_int = 0x8; // set initial timeout -pub const NFSMNT_RETRANS: ::c_int = 0x10; // set number of request retries -pub const NFSMNT_MAXGRPS: ::c_int = 0x20; // set maximum grouplist size -pub const NFSMNT_INT: ::c_int = 0x40; // allow interrupts on hard mount -pub const NFSMNT_NOCONN: ::c_int = 0x80; // Don't Connect the socket -pub const NFSMNT_NQNFS: ::c_int = 0x100; // Use Nqnfs protocol -pub const NFSMNT_NFSV3: ::c_int = 0x200; // Use NFS Version 3 protocol -pub const NFSMNT_KERB: ::c_int = 0x400; // Use Kerberos authentication -pub const NFSMNT_DUMBTIMR: ::c_int = 0x800; // Don't estimate rtt dynamically -pub const NFSMNT_LEASETERM: ::c_int = 0x1000; // set lease term (nqnfs) -pub const NFSMNT_READAHEAD: ::c_int = 0x2000; // set read ahead -pub const NFSMNT_DEADTHRESH: ::c_int = 0x4000; // set dead server retry thresh -pub const NFSMNT_NOAC: ::c_int = 0x8000; // disable attribute cache -pub const NFSMNT_RDIRPLUS: ::c_int = 0x10000; // Use Readdirplus for V3 -pub const NFSMNT_READDIRSIZE: ::c_int = 0x20000; // Set readdir size +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 +pub const ISOFSMNT_NOJOLIET: c_int = 0x8; // disable Joliet Ext +pub const ISOFSMNT_SESS: c_int = 0x10; // use iso_args.sess + +pub const NFS_ARGSVERSION: c_int = 4; // change when nfs_args changes + +pub const NFSMNT_RESVPORT: c_int = 0; // always use reserved ports +pub const NFSMNT_SOFT: c_int = 0x1; // soft mount (hard is default) +pub const NFSMNT_WSIZE: c_int = 0x2; // set write size +pub const NFSMNT_RSIZE: c_int = 0x4; // set read size +pub const NFSMNT_TIMEO: c_int = 0x8; // set initial timeout +pub const NFSMNT_RETRANS: c_int = 0x10; // set number of request retries +pub const NFSMNT_MAXGRPS: c_int = 0x20; // set maximum grouplist size +pub const NFSMNT_INT: c_int = 0x40; // allow interrupts on hard mount +pub const NFSMNT_NOCONN: c_int = 0x80; // Don't Connect the socket +pub const NFSMNT_NQNFS: c_int = 0x100; // Use Nqnfs protocol +pub const NFSMNT_NFSV3: c_int = 0x200; // Use NFS Version 3 protocol +pub const NFSMNT_KERB: c_int = 0x400; // Use Kerberos authentication +pub const NFSMNT_DUMBTIMR: c_int = 0x800; // Don't estimate rtt dynamically +pub const NFSMNT_LEASETERM: c_int = 0x1000; // set lease term (nqnfs) +pub const NFSMNT_READAHEAD: c_int = 0x2000; // set read ahead +pub const NFSMNT_DEADTHRESH: c_int = 0x4000; // set dead server retry thresh +pub const NFSMNT_NOAC: c_int = 0x8000; // disable attribute cache +pub const NFSMNT_RDIRPLUS: c_int = 0x10000; // Use Readdirplus for V3 +pub const NFSMNT_READDIRSIZE: c_int = 0x20000; // Set readdir size /* Flags valid only in mount syscall arguments */ -pub const NFSMNT_ACREGMIN: ::c_int = 0x40000; // acregmin field valid -pub const NFSMNT_ACREGMAX: ::c_int = 0x80000; // acregmax field valid -pub const NFSMNT_ACDIRMIN: ::c_int = 0x100000; // acdirmin field valid -pub const NFSMNT_ACDIRMAX: ::c_int = 0x200000; // acdirmax field valid +pub const NFSMNT_ACREGMIN: c_int = 0x40000; // acregmin field valid +pub const NFSMNT_ACREGMAX: c_int = 0x80000; // acregmax field valid +pub const NFSMNT_ACDIRMIN: c_int = 0x100000; // acdirmin field valid +pub const NFSMNT_ACDIRMAX: c_int = 0x200000; // acdirmax field valid /* Flags valid only in kernel */ -pub const NFSMNT_INTERNAL: ::c_int = 0xfffc0000; // Bits set internally -pub const NFSMNT_HASWRITEVERF: ::c_int = 0x40000; // Has write verifier for V3 -pub const NFSMNT_GOTPATHCONF: ::c_int = 0x80000; // Got the V3 pathconf info -pub const NFSMNT_GOTFSINFO: ::c_int = 0x100000; // Got the V3 fsinfo -pub const NFSMNT_MNTD: ::c_int = 0x200000; // Mnt server for mnt point -pub const NFSMNT_DISMINPROG: ::c_int = 0x400000; // Dismount in progress -pub const NFSMNT_DISMNT: ::c_int = 0x800000; // Dismounted -pub const NFSMNT_SNDLOCK: ::c_int = 0x1000000; // Send socket lock -pub const NFSMNT_WANTSND: ::c_int = 0x2000000; // Want above -pub const NFSMNT_RCVLOCK: ::c_int = 0x4000000; // Rcv socket lock -pub const NFSMNT_WANTRCV: ::c_int = 0x8000000; // Want above -pub const NFSMNT_WAITAUTH: ::c_int = 0x10000000; // Wait for authentication -pub const NFSMNT_HASAUTH: ::c_int = 0x20000000; // Has authenticator -pub const NFSMNT_WANTAUTH: ::c_int = 0x40000000; // Wants an authenticator -pub const NFSMNT_AUTHERR: ::c_int = 0x80000000; // Authentication error - -pub const MSDOSFSMNT_SHORTNAME: ::c_int = 0x1; // Force old DOS short names only -pub const MSDOSFSMNT_LONGNAME: ::c_int = 0x2; // Force Win'95 long names -pub const MSDOSFSMNT_NOWIN95: ::c_int = 0x4; // Completely ignore Win95 entries - -pub const NTFS_MFLAG_CASEINS: ::c_int = 0x1; -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; +pub const NFSMNT_INTERNAL: c_int = 0xfffc0000; // Bits set internally +pub const NFSMNT_HASWRITEVERF: c_int = 0x40000; // Has write verifier for V3 +pub const NFSMNT_GOTPATHCONF: c_int = 0x80000; // Got the V3 pathconf info +pub const NFSMNT_GOTFSINFO: c_int = 0x100000; // Got the V3 fsinfo +pub const NFSMNT_MNTD: c_int = 0x200000; // Mnt server for mnt point +pub const NFSMNT_DISMINPROG: c_int = 0x400000; // Dismount in progress +pub const NFSMNT_DISMNT: c_int = 0x800000; // Dismounted +pub const NFSMNT_SNDLOCK: c_int = 0x1000000; // Send socket lock +pub const NFSMNT_WANTSND: c_int = 0x2000000; // Want above +pub const NFSMNT_RCVLOCK: c_int = 0x4000000; // Rcv socket lock +pub const NFSMNT_WANTRCV: c_int = 0x8000000; // Want above +pub const NFSMNT_WAITAUTH: c_int = 0x10000000; // Wait for authentication +pub const NFSMNT_HASAUTH: c_int = 0x20000000; // Has authenticator +pub const NFSMNT_WANTAUTH: c_int = 0x40000000; // Wants an authenticator +pub const NFSMNT_AUTHERR: c_int = 0x80000000; // Authentication error + +pub const MSDOSFSMNT_SHORTNAME: c_int = 0x1; // Force old DOS short names only +pub const MSDOSFSMNT_LONGNAME: c_int = 0x2; // Force Win'95 long names +pub const MSDOSFSMNT_NOWIN95: c_int = 0x4; // Completely ignore Win95 entries + +pub const NTFS_MFLAG_CASEINS: c_int = 0x1; +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 / crate::mem::size_of::()) - 3; + +pub const MAP_STACK: c_int = 0x4000; +pub const MAP_CONCEAL: c_int = 0x8000; // 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 -pub const IFF_LOOPBACK: ::c_int = 0x8; // is a loopback net -pub const IFF_POINTOPOINT: ::c_int = 0x10; // interface is point-to-point link -pub const IFF_STATICARP: ::c_int = 0x20; // only static ARP -pub const IFF_RUNNING: ::c_int = 0x40; // resources allocated -pub const IFF_NOARP: ::c_int = 0x80; // no address resolution protocol -pub const IFF_PROMISC: ::c_int = 0x100; // receive all packets -pub const IFF_ALLMULTI: ::c_int = 0x200; // receive all multicast packets -pub const IFF_OACTIVE: ::c_int = 0x400; // transmission in progress -pub const IFF_SIMPLEX: ::c_int = 0x800; // can't hear own transmissions -pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit -pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit -pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit -pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast - -pub const PTHREAD_STACK_MIN: ::size_t = 1_usize << _MAX_PAGE_SHIFT; -pub const MINSIGSTKSZ: ::size_t = 3_usize << _MAX_PAGE_SHIFT; -pub const SIGSTKSZ: ::size_t = MINSIGSTKSZ + (1_usize << _MAX_PAGE_SHIFT) * 4; - -pub const PT_SET_EVENT_MASK: ::c_int = 12; -pub const PT_GET_EVENT_MASK: ::c_int = 13; -pub const PT_GET_PROCESS_STATE: ::c_int = 14; -pub const PT_GET_THREAD_FIRST: ::c_int = 15; -pub const PT_GET_THREAD_NEXT: ::c_int = 16; -pub const PT_FIRSTMACH: ::c_int = 32; - -pub const SOCK_CLOEXEC: ::c_int = 0x8000; -pub const SOCK_NONBLOCK: ::c_int = 0x4000; -pub const SOCK_DNS: ::c_int = 0x1000; - -pub const BIOCGRSIG: ::c_ulong = 0x40044273; -pub const BIOCSRSIG: ::c_ulong = 0x80044272; -pub const BIOCSDLT: ::c_ulong = 0x8004427a; - -pub const PTRACE_FORK: ::c_int = 0x0002; - -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; +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 +pub const IFF_LOOPBACK: c_int = 0x8; // is a loopback net +pub const IFF_POINTOPOINT: c_int = 0x10; // interface is point-to-point link +pub const IFF_STATICARP: c_int = 0x20; // only static ARP +pub const IFF_RUNNING: c_int = 0x40; // resources allocated +pub const IFF_NOARP: c_int = 0x80; // no address resolution protocol +pub const IFF_PROMISC: c_int = 0x100; // receive all packets +pub const IFF_ALLMULTI: c_int = 0x200; // receive all multicast packets +pub const IFF_OACTIVE: c_int = 0x400; // transmission in progress +pub const IFF_SIMPLEX: c_int = 0x800; // can't hear own transmissions +pub const IFF_LINK0: c_int = 0x1000; // per link layer defined bit +pub const IFF_LINK1: c_int = 0x2000; // per link layer defined bit +pub const IFF_LINK2: c_int = 0x4000; // per link layer defined bit +pub const IFF_MULTICAST: c_int = 0x8000; // supports multicast + +pub const PTHREAD_STACK_MIN: size_t = 1_usize << _MAX_PAGE_SHIFT; +pub const MINSIGSTKSZ: size_t = 3_usize << _MAX_PAGE_SHIFT; +pub const SIGSTKSZ: size_t = MINSIGSTKSZ + (1_usize << _MAX_PAGE_SHIFT) * 4; + +pub const PT_SET_EVENT_MASK: c_int = 12; +pub const PT_GET_EVENT_MASK: c_int = 13; +pub const PT_GET_PROCESS_STATE: c_int = 14; +pub const PT_GET_THREAD_FIRST: c_int = 15; +pub const PT_GET_THREAD_NEXT: c_int = 16; +pub const PT_FIRSTMACH: c_int = 32; + +pub const SOCK_CLOEXEC: c_int = 0x8000; +pub const SOCK_NONBLOCK: c_int = 0x4000; +pub const SOCK_DNS: c_int = 0x1000; + +pub const BIOCGRSIG: c_ulong = 0x40044273; +pub const BIOCSRSIG: c_ulong = 0x80044272; +pub const BIOCSDLT: c_ulong = 0x8004427a; + +pub const PTRACE_FORK: c_int = 0x0002; + +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: crate::idtype_t = 0; +pub const P_PGID: crate::idtype_t = 1; +pub const P_PID: crate::idtype_t = 2; // search.h -pub const FIND: ::ACTION = 0; -pub const ENTER: ::ACTION = 1; +pub const FIND: crate::ACTION = 0; +pub const ENTER: crate::ACTION = 1; // futex.h -pub const FUTEX_WAIT: ::c_int = 1; -pub const FUTEX_WAKE: ::c_int = 2; -pub const FUTEX_REQUEUE: ::c_int = 3; -pub const FUTEX_PRIVATE_FLAG: ::c_int = 128; +pub const FUTEX_WAIT: c_int = 1; +pub const FUTEX_WAKE: c_int = 2; +pub const FUTEX_REQUEUE: c_int = 3; +pub const FUTEX_PRIVATE_FLAG: c_int = 128; // sysctl.h, kinfo_proc p_eflag constants pub const EPROC_CTTY: i32 = 0x01; // controlling tty vnode active @@ -1809,15 +1812,15 @@ pub const EPROC_UNVEIL: i32 = 0x04; // has unveil settings pub const EPROC_LKUNVEIL: i32 = 0x08; // unveil is locked // Flags for chflags(2) -pub const UF_SETTABLE: ::c_uint = 0x0000ffff; -pub const UF_NODUMP: ::c_uint = 0x00000001; -pub const UF_IMMUTABLE: ::c_uint = 0x00000002; -pub const UF_APPEND: ::c_uint = 0x00000004; -pub const UF_OPAQUE: ::c_uint = 0x00000008; -pub const SF_SETTABLE: ::c_uint = 0xffff0000; -pub const SF_ARCHIVED: ::c_uint = 0x00010000; -pub const SF_IMMUTABLE: ::c_uint = 0x00020000; -pub const SF_APPEND: ::c_uint = 0x00040000; +pub const UF_SETTABLE: c_uint = 0x0000ffff; +pub const UF_NODUMP: c_uint = 0x00000001; +pub const UF_IMMUTABLE: c_uint = 0x00000002; +pub const UF_APPEND: c_uint = 0x00000004; +pub const UF_OPAQUE: c_uint = 0x00000008; +pub const SF_SETTABLE: c_uint = 0xffff0000; +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; @@ -1844,117 +1847,117 @@ 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; -pub const MNT_EXRDONLY: ::c_int = 0x00000080; -pub const MNT_DEFEXPORTED: ::c_int = 0x00000200; -pub const MNT_EXPORTANON: ::c_int = 0x00000400; -pub const MNT_ROOTFS: ::c_int = 0x00004000; -pub const MNT_NOATIME: ::c_int = 0x00008000; -pub const MNT_DELEXPORT: ::c_int = 0x00020000; -pub const MNT_STALLED: ::c_int = 0x00100000; -pub const MNT_SWAPPABLE: ::c_int = 0x00200000; -pub const MNT_WANTRDWR: ::c_int = 0x02000000; -pub const MNT_SOFTDEP: ::c_int = 0x04000000; -pub const MNT_DOOMED: ::c_int = 0x08000000; +pub const MNT_NOPERM: c_int = 0x00000020; +pub const MNT_WXALLOWED: c_int = 0x00000800; +pub const MNT_EXRDONLY: c_int = 0x00000080; +pub const MNT_DEFEXPORTED: c_int = 0x00000200; +pub const MNT_EXPORTANON: c_int = 0x00000400; +pub const MNT_ROOTFS: c_int = 0x00004000; +pub const MNT_NOATIME: c_int = 0x00008000; +pub const MNT_DELEXPORT: c_int = 0x00020000; +pub const MNT_STALLED: c_int = 0x00100000; +pub const MNT_SWAPPABLE: c_int = 0x00200000; +pub const MNT_WANTRDWR: c_int = 0x02000000; +pub const MNT_SOFTDEP: c_int = 0x04000000; +pub const MNT_DOOMED: c_int = 0x08000000; // For use with vfs_fsync and getfsstat -pub const MNT_WAIT: ::c_int = 1; -pub const MNT_NOWAIT: ::c_int = 2; -pub const MNT_LAZY: ::c_int = 3; +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 CLOCK_PROCESS_CPUTIME_ID: crate::clockid_t = 2; +pub const CLOCK_THREAD_CPUTIME_ID: crate::clockid_t = 4; +pub const CLOCK_UPTIME: crate::clockid_t = 5; +pub const CLOCK_BOOTTIME: crate::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; -pub const LC_NUMERIC_MASK: ::c_int = 1 << ::LC_NUMERIC; -pub const LC_TIME_MASK: ::c_int = 1 << ::LC_TIME; -pub const LC_MESSAGES_MASK: ::c_int = 1 << ::LC_MESSAGES; +pub const LC_COLLATE_MASK: c_int = 1 << crate::LC_COLLATE; +pub const LC_CTYPE_MASK: c_int = 1 << crate::LC_CTYPE; +pub const LC_MONETARY_MASK: c_int = 1 << crate::LC_MONETARY; +pub const LC_NUMERIC_MASK: c_int = 1 << crate::LC_NUMERIC; +pub const LC_TIME_MASK: c_int = 1 << crate::LC_TIME; +pub const LC_MESSAGES_MASK: c_int = 1 << crate::LC_MESSAGES; -const _LC_LAST: ::c_int = 7; -pub const LC_ALL_MASK: ::c_int = (1 << _LC_LAST) - 2; +const _LC_LAST: c_int = 7; +pub const LC_ALL_MASK: c_int = (1 << _LC_LAST) - 2; -pub const LC_GLOBAL_LOCALE: ::locale_t = -1isize as ::locale_t; +pub const LC_GLOBAL_LOCALE: crate::locale_t = -1isize as crate::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; +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; // net/route.h -pub const RTF_CLONING: ::c_int = 0x100; -pub const RTF_MULTICAST: ::c_int = 0x200; -pub const RTF_LLINFO: ::c_int = 0x400; -pub const RTF_PROTO3: ::c_int = 0x2000; -pub const RTF_ANNOUNCE: ::c_int = ::RTF_PROTO2; - -pub const RTF_CLONED: ::c_int = 0x10000; -pub const RTF_CACHED: ::c_int = 0x20000; -pub const RTF_MPATH: ::c_int = 0x40000; -pub const RTF_MPLS: ::c_int = 0x100000; -pub const RTF_LOCAL: ::c_int = 0x200000; -pub const RTF_BROADCAST: ::c_int = 0x400000; -pub const RTF_CONNECTED: ::c_int = 0x800000; -pub const RTF_BFD: ::c_int = 0x1000000; -pub const RTF_FMASK: ::c_int = ::RTF_LLINFO - | ::RTF_PROTO1 - | ::RTF_PROTO2 - | ::RTF_PROTO3 - | ::RTF_BLACKHOLE - | ::RTF_REJECT - | ::RTF_STATIC - | ::RTF_MPLS - | ::RTF_BFD; - -pub const RTM_VERSION: ::c_int = 5; -pub const RTM_RESOLVE: ::c_int = 0xb; -pub const RTM_NEWADDR: ::c_int = 0xc; -pub const RTM_DELADDR: ::c_int = 0xd; -pub const RTM_IFINFO: ::c_int = 0xe; -pub const RTM_IFANNOUNCE: ::c_int = 0xf; -pub const RTM_DESYNC: ::c_int = 0x10; -pub const RTM_INVALIDATE: ::c_int = 0x11; -pub const RTM_BFD: ::c_int = 0x12; -pub const RTM_PROPOSAL: ::c_int = 0x13; -pub const RTM_CHGADDRATTR: ::c_int = 0x14; -pub const RTM_80211INFO: ::c_int = 0x15; -pub const RTM_SOURCE: ::c_int = 0x16; - -pub const RTA_SRC: ::c_int = 0x100; -pub const RTA_SRCMASK: ::c_int = 0x200; -pub const RTA_LABEL: ::c_int = 0x400; -pub const RTA_BFD: ::c_int = 0x800; -pub const RTA_DNS: ::c_int = 0x1000; -pub const RTA_STATIC: ::c_int = 0x2000; -pub const RTA_SEARCH: ::c_int = 0x4000; - -pub const RTAX_SRC: ::c_int = 8; -pub const RTAX_SRCMASK: ::c_int = 9; -pub const RTAX_LABEL: ::c_int = 10; -pub const RTAX_BFD: ::c_int = 11; -pub const RTAX_DNS: ::c_int = 12; -pub const RTAX_STATIC: ::c_int = 13; -pub const RTAX_SEARCH: ::c_int = 14; -pub const RTAX_MAX: ::c_int = 15; +pub const RTF_CLONING: c_int = 0x100; +pub const RTF_MULTICAST: c_int = 0x200; +pub const RTF_LLINFO: c_int = 0x400; +pub const RTF_PROTO3: c_int = 0x2000; +pub const RTF_ANNOUNCE: c_int = crate::RTF_PROTO2; + +pub const RTF_CLONED: c_int = 0x10000; +pub const RTF_CACHED: c_int = 0x20000; +pub const RTF_MPATH: c_int = 0x40000; +pub const RTF_MPLS: c_int = 0x100000; +pub const RTF_LOCAL: c_int = 0x200000; +pub const RTF_BROADCAST: c_int = 0x400000; +pub const RTF_CONNECTED: c_int = 0x800000; +pub const RTF_BFD: c_int = 0x1000000; +pub const RTF_FMASK: c_int = crate::RTF_LLINFO + | crate::RTF_PROTO1 + | crate::RTF_PROTO2 + | crate::RTF_PROTO3 + | crate::RTF_BLACKHOLE + | crate::RTF_REJECT + | crate::RTF_STATIC + | crate::RTF_MPLS + | crate::RTF_BFD; + +pub const RTM_VERSION: c_int = 5; +pub const RTM_RESOLVE: c_int = 0xb; +pub const RTM_NEWADDR: c_int = 0xc; +pub const RTM_DELADDR: c_int = 0xd; +pub const RTM_IFINFO: c_int = 0xe; +pub const RTM_IFANNOUNCE: c_int = 0xf; +pub const RTM_DESYNC: c_int = 0x10; +pub const RTM_INVALIDATE: c_int = 0x11; +pub const RTM_BFD: c_int = 0x12; +pub const RTM_PROPOSAL: c_int = 0x13; +pub const RTM_CHGADDRATTR: c_int = 0x14; +pub const RTM_80211INFO: c_int = 0x15; +pub const RTM_SOURCE: c_int = 0x16; + +pub const RTA_SRC: c_int = 0x100; +pub const RTA_SRCMASK: c_int = 0x200; +pub const RTA_LABEL: c_int = 0x400; +pub const RTA_BFD: c_int = 0x800; +pub const RTA_DNS: c_int = 0x1000; +pub const RTA_STATIC: c_int = 0x2000; +pub const RTA_SEARCH: c_int = 0x4000; + +pub const RTAX_SRC: c_int = 8; +pub const RTAX_SRCMASK: c_int = 9; +pub const RTAX_LABEL: c_int = 10; +pub const RTAX_BFD: c_int = 11; +pub const RTAX_DNS: c_int = 12; +pub const RTAX_STATIC: c_int = 13; +pub const RTAX_SEARCH: c_int = 14; +pub const RTAX_MAX: c_int = 15; const_fn! { {const} fn _ALIGN(p: usize) -> usize { @@ -1963,39 +1966,39 @@ const_fn! { } f! { - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar).offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { + (cmsg as *mut c_uchar).offset(_ALIGN(crate::mem::size_of::()) as isize) } - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - _ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length + pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + _ALIGN(crate::mem::size_of::()) as c_uint + length } - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { + pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { - return ::CMSG_FIRSTHDR(mhdr); + return crate::CMSG_FIRSTHDR(mhdr); }; let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) - + _ALIGN(::mem::size_of::<::cmsghdr>()); + + _ALIGN(crate::mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { - 0 as *mut ::cmsghdr + 0 as *mut cmsghdr } else { - (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) as *mut ::cmsghdr + (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr } } - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (_ALIGN(::mem::size_of::<::cmsghdr>()) + _ALIGN(length as usize)) as ::c_uint + pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + (_ALIGN(crate::mem::size_of::()) + _ALIGN(length as usize)) as c_uint } - pub fn major(dev: ::dev_t) -> ::c_uint { - ((dev as ::c_uint) >> 8) & 0xff + pub fn major(dev: crate::dev_t) -> c_uint { + ((dev as c_uint) >> 8) & 0xff } - pub fn minor(dev: ::dev_t) -> ::c_uint { - let dev = dev as ::c_uint; + pub fn minor(dev: crate::dev_t) -> c_uint { + let dev = dev as c_uint; let mut res = 0; res |= (dev) & 0xff; res |= ((dev) & 0xffff0000) >> 8; @@ -2005,25 +2008,25 @@ f! { } safe_f! { - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + pub {const} fn WSTOPSIG(status: c_int) -> c_int { status >> 8 } - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + pub {const} fn WIFSIGNALED(status: c_int) -> bool { (status & 0o177) != 0o177 && (status & 0o177) != 0 } - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + pub {const} fn WIFSTOPPED(status: c_int) -> bool { (status & 0xff) == 0o177 } - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + pub {const} fn WIFCONTINUED(status: c_int) -> bool { (status & 0o177777) == 0o177777 } - pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; + pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + let major = major as crate::dev_t; + let minor = minor as crate::dev_t; let mut dev = 0; dev |= (major & 0xff) << 8; dev |= minor & 0xff; @@ -2033,174 +2036,169 @@ 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 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 gettimeofday(tp: *mut crate::timeval, tz: *mut crate::timezone) -> c_int; + pub fn settimeofday(tp: *const crate::timeval, tz: *const crate::timezone) -> 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( - nptr: *const ::c_char, - minval: ::c_longlong, - maxval: ::c_longlong, - errstr: *mut *const ::c_char, - ) -> ::c_longlong; - pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; - pub fn chflags(path: *const ::c_char, flags: ::c_uint) -> ::c_int; - pub fn fchflags(fd: ::c_int, flags: ::c_uint) -> ::c_int; - pub fn chflagsat( - fd: ::c_int, - path: *const ::c_char, - flags: ::c_uint, - atflag: ::c_int, - ) -> ::c_int; - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; + nptr: *const c_char, + minval: c_longlong, + maxval: c_longlong, + errstr: *mut *const c_char, + ) -> c_longlong; + pub fn dup3(src: c_int, dst: c_int, flags: c_int) -> c_int; + pub fn chflags(path: *const c_char, flags: c_uint) -> c_int; + pub fn fchflags(fd: c_int, flags: c_uint) -> c_int; + pub fn chflagsat(fd: c_int, path: *const c_char, flags: c_uint, atflag: c_int) -> c_int; + pub fn dirfd(dirp: *mut crate::DIR) -> c_int; pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::size_t, - serv: *mut ::c_char, - servlen: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int; - pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int; + sa: *const crate::sockaddr, + salen: crate::socklen_t, + host: *mut c_char, + hostlen: size_t, + serv: *mut c_char, + servlen: size_t, + flags: c_int, + ) -> c_int; + pub fn getresgid( + rgid: *mut crate::gid_t, + egid: *mut crate::gid_t, + sgid: *mut crate::gid_t, + ) -> c_int; + pub fn getresuid( + ruid: *mut crate::uid_t, + euid: *mut crate::uid_t, + suid: *mut crate::uid_t, + ) -> c_int; pub fn kevent( - kq: ::c_int, - changelist: *const ::kevent, - nchanges: ::c_int, - eventlist: *mut ::kevent, - nevents: ::c_int, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn getthrid() -> ::pid_t; + kq: c_int, + changelist: *const crate::kevent, + nchanges: c_int, + eventlist: *mut crate::kevent, + nevents: c_int, + timeout: *const crate::timespec, + ) -> c_int; + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; + pub fn getthrid() -> crate::pid_t; pub fn pthread_attr_getguardsize( - 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; + attr: *const crate::pthread_attr_t, + guardsize: *mut size_t, + ) -> c_int; + pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int; pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; - pub fn pthread_main_np() -> ::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_stackseg_np(thread: ::pthread_t, sinfo: *mut ::stack_t) -> ::c_int; + attr: *const crate::pthread_attr_t, + stackaddr: *mut *mut c_void, + stacksize: *mut size_t, + ) -> c_int; + pub fn pthread_main_np() -> c_int; + pub fn pthread_get_name_np(tid: crate::pthread_t, name: *mut c_char, len: size_t); + pub fn pthread_set_name_np(tid: crate::pthread_t, name: *const c_char); + pub fn pthread_stackseg_np(thread: crate::pthread_t, sinfo: *mut crate::stack_t) -> c_int; pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *const ::termios, - winp: *const ::winsize, - ) -> ::c_int; + amaster: *mut c_int, + aslave: *mut c_int, + name: *mut c_char, + termp: *const crate::termios, + winp: *const crate::winsize, + ) -> c_int; pub fn forkpty( - amaster: *mut ::c_int, - name: *mut ::c_char, - termp: *const ::termios, - winp: *const ::winsize, - ) -> ::pid_t; + amaster: *mut c_int, + name: *mut c_char, + termp: *const crate::termios, + winp: *const crate::winsize, + ) -> crate::pid_t; pub fn sysctl( - name: *const ::c_int, - namelen: ::c_uint, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::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; - pub fn utrace(label: *const ::c_char, addr: *const ::c_void, len: ::size_t) -> ::c_int; + name: *const c_int, + namelen: c_uint, + oldp: *mut c_void, + oldlenp: *mut size_t, + newp: *mut c_void, + newlen: size_t, + ) -> c_int; + pub fn setresgid(rgid: crate::gid_t, egid: crate::gid_t, sgid: crate::gid_t) -> c_int; + pub fn setresuid(ruid: crate::uid_t, euid: crate::uid_t, suid: crate::uid_t) -> c_int; + pub fn ptrace(request: c_int, pid: crate::pid_t, addr: caddr_t, data: c_int) -> c_int; + pub fn utrace(label: *const c_char, addr: *const c_void, len: size_t) -> c_int; pub fn memmem( - haystack: *const ::c_void, - haystacklen: ::size_t, - needle: *const ::c_void, - needlelen: ::size_t, - ) -> *mut ::c_void; + haystack: *const c_void, + haystacklen: size_t, + needle: *const c_void, + needlelen: size_t, + ) -> *mut c_void; // #include pub fn dl_iterate_phdr( - callback: ::Option< - unsafe extern "C" fn( - info: *mut dl_phdr_info, - size: usize, - data: *mut ::c_void, - ) -> ::c_int, + callback: Option< + unsafe extern "C" fn(info: *mut dl_phdr_info, size: usize, data: *mut c_void) -> c_int, >, - data: *mut ::c_void, - ) -> ::c_int; - pub fn uselocale(loc: ::locale_t) -> ::locale_t; - pub fn freelocale(loc: ::locale_t); - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; - pub fn duplocale(base: ::locale_t) -> ::locale_t; + data: *mut c_void, + ) -> c_int; + pub fn uselocale(loc: crate::locale_t) -> crate::locale_t; + pub fn freelocale(loc: crate::locale_t); + pub fn newlocale(mask: c_int, locale: *const c_char, base: crate::locale_t) -> crate::locale_t; + pub fn duplocale(base: crate::locale_t) -> crate::locale_t; // Added in `OpenBSD` 5.5 - pub fn explicit_bzero(s: *mut ::c_void, len: ::size_t); + pub fn explicit_bzero(s: *mut c_void, len: size_t); - pub fn setproctitle(fmt: *const ::c_char, ...); + pub fn setproctitle(fmt: *const c_char, ...); - pub fn freezero(ptr: *mut ::c_void, size: ::size_t); - pub fn malloc_conceal(size: ::size_t) -> *mut ::c_void; - pub fn calloc_conceal(nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; + pub fn freezero(ptr: *mut c_void, size: size_t); + pub fn malloc_conceal(size: size_t) -> *mut c_void; + pub fn calloc_conceal(nmemb: size_t, size: size_t) -> *mut c_void; - pub fn srand48_deterministic(seed: ::c_long); - pub fn seed48_deterministic(xseed: *mut ::c_ushort) -> *mut ::c_ushort; - pub fn lcong48_deterministic(p: *mut ::c_ushort); + pub fn srand48_deterministic(seed: c_long); + pub fn seed48_deterministic(xseed: *mut c_ushort) -> *mut c_ushort; + pub fn lcong48_deterministic(p: *mut c_ushort); pub fn lsearch( - key: *const ::c_void, - base: *mut ::c_void, - nelp: *mut ::size_t, - width: ::size_t, - compar: ::Option ::c_int>, - ) -> *mut ::c_void; + key: *const c_void, + base: *mut c_void, + nelp: *mut size_t, + width: size_t, + compar: Option c_int>, + ) -> *mut c_void; pub fn lfind( - key: *const ::c_void, - base: *const ::c_void, - nelp: *mut ::size_t, - width: ::size_t, - compar: ::Option ::c_int>, - ) -> *mut ::c_void; - pub fn hcreate(nelt: ::size_t) -> ::c_int; + key: *const c_void, + base: *const c_void, + nelp: *mut size_t, + width: size_t, + compar: Option c_int>, + ) -> *mut c_void; + pub fn hcreate(nelt: size_t) -> c_int; pub fn hdestroy(); - pub fn hsearch(entry: ::ENTRY, action: ::ACTION) -> *mut ::ENTRY; + pub fn hsearch(entry: crate::ENTRY, action: crate::ACTION) -> *mut crate::ENTRY; // futex.h pub fn futex( uaddr: *mut u32, - op: ::c_int, - val: ::c_int, - timeout: *const ::timespec, + op: c_int, + val: c_int, + timeout: *const crate::timespec, uaddr2: *mut u32, - ) -> ::c_int; + ) -> c_int; - pub fn mimmutable(addr: *mut ::c_void, len: ::size_t) -> ::c_int; + pub fn mimmutable(addr: *mut c_void, len: size_t) -> c_int; - pub fn reboot(mode: ::c_int) -> ::c_int; + pub fn reboot(mode: c_int) -> c_int; - pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; - pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - pub fn getmntinfo(mntbufp: *mut *mut ::statfs, flags: ::c_int) -> ::c_int; - pub fn getfsstat(buf: *mut statfs, bufsize: ::size_t, flags: ::c_int) -> ::c_int; + pub fn statfs(path: *const c_char, buf: *mut statfs) -> c_int; + pub fn fstatfs(fd: c_int, buf: *mut statfs) -> c_int; + pub fn getmntinfo(mntbufp: *mut *mut crate::statfs, flags: c_int) -> c_int; + pub fn getfsstat(buf: *mut statfs, bufsize: size_t, flags: c_int) -> c_int; } #[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(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; + addrlist: *const *mut c_void, + len: size_t, + fmt: *const c_char, + ) -> *mut *mut c_char; } cfg_if! { diff --git a/src/unix/bsd/netbsdlike/openbsd/powerpc.rs b/src/unix/bsd/netbsdlike/openbsd/powerpc.rs index 6394df9300245..e781fa7484ac1 100644 --- a/src/unix/bsd/netbsdlike/openbsd/powerpc.rs +++ b/src/unix/bsd/netbsdlike/openbsd/powerpc.rs @@ -1,7 +1,9 @@ +use crate::c_double; + pub type c_long = i32; pub type c_ulong = u32; pub type c_char = u8; -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_double>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs b/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs index df0cdd6d1ac53..7aec9eb638772 100644 --- a/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs @@ -2,6 +2,6 @@ pub type c_long = i64; pub type c_ulong = u64; pub type c_char = u8; -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/riscv64.rs b/src/unix/bsd/netbsdlike/openbsd/riscv64.rs index fbcc5a76bbed3..baaab22337c39 100644 --- a/src/unix/bsd/netbsdlike/openbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/riscv64.rs @@ -1,3 +1,5 @@ +use crate::c_int; + pub type c_long = i64; pub type c_ulong = u64; pub type c_char = u8; @@ -5,22 +7,22 @@ pub type ucontext_t = sigcontext; s! { pub struct sigcontext { - __sc_unused: ::c_int, - pub sc_mask: ::c_int, - pub sc_ra: ::c_long, - pub sc_sp: ::c_long, - pub sc_gp: ::c_long, - pub sc_tp: ::c_long, - pub sc_t: [::c_long; 7], - pub sc_s: [::c_long; 12], - pub sc_a: [::c_long; 8], - pub sc_sepc: ::c_long, - pub sc_f: [::c_long; 32], - pub sc_fcsr: ::c_long, - pub sc_cookie: ::c_long, + __sc_unused: c_int, + pub sc_mask: c_int, + pub sc_ra: c_long, + pub sc_sp: c_long, + pub sc_gp: c_long, + pub sc_tp: c_long, + pub sc_t: [c_long; 7], + pub sc_s: [c_long; 12], + pub sc_a: [c_long; 8], + pub sc_sepc: c_long, + pub sc_f: [c_long; 32], + pub sc_fcsr: c_long, + pub sc_cookie: c_long, } } -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/x86.rs b/src/unix/bsd/netbsdlike/openbsd/x86.rs index a12107bc2a482..bad2eddc84b48 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86.rs @@ -1,7 +1,9 @@ +use crate::c_int; + pub type c_long = i32; pub type c_ulong = u32; pub type c_char = i8; -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs index 6a825176efab8..d75b20f8fcebb 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs @@ -1,4 +1,4 @@ -use PT_FIRSTMACH; +use crate::{c_int, PT_FIRSTMACH}; pub type c_long = i64; pub type c_ulong = u64; @@ -7,36 +7,36 @@ pub type ucontext_t = sigcontext; s! { pub struct sigcontext { - pub sc_rdi: ::c_long, - pub sc_rsi: ::c_long, - pub sc_rdx: ::c_long, - pub sc_rcx: ::c_long, - pub sc_r8: ::c_long, - pub sc_r9: ::c_long, - pub sc_r10: ::c_long, - pub sc_r11: ::c_long, - pub sc_r12: ::c_long, - pub sc_r13: ::c_long, - pub sc_r14: ::c_long, - pub sc_r15: ::c_long, - pub sc_rbp: ::c_long, - pub sc_rbx: ::c_long, - pub sc_rax: ::c_long, - pub sc_gs: ::c_long, - pub sc_fs: ::c_long, - pub sc_es: ::c_long, - pub sc_ds: ::c_long, - pub sc_trapno: ::c_long, - pub sc_err: ::c_long, - pub sc_rip: ::c_long, - pub sc_cs: ::c_long, - pub sc_rflags: ::c_long, - pub sc_rsp: ::c_long, - pub sc_ss: ::c_long, + pub sc_rdi: c_long, + pub sc_rsi: c_long, + pub sc_rdx: c_long, + pub sc_rcx: c_long, + pub sc_r8: c_long, + pub sc_r9: c_long, + pub sc_r10: c_long, + pub sc_r11: c_long, + pub sc_r12: c_long, + pub sc_r13: c_long, + pub sc_r14: c_long, + pub sc_r15: c_long, + pub sc_rbp: c_long, + pub sc_rbx: c_long, + pub sc_rax: c_long, + pub sc_gs: c_long, + pub sc_fs: c_long, + pub sc_es: c_long, + pub sc_ds: c_long, + pub sc_trapno: c_long, + pub sc_err: c_long, + pub sc_rip: c_long, + pub sc_cs: c_long, + pub sc_rflags: c_long, + pub sc_rsp: c_long, + pub sc_ss: c_long, pub sc_fpstate: *mut fxsave64, - __sc_unused: ::c_int, - pub sc_mask: ::c_int, - pub sc_cookie: ::c_long, + __sc_unused: c_int, + pub sc_mask: c_int, + pub sc_cookie: c_long, } } @@ -83,8 +83,8 @@ cfg_if! { } } impl Eq for fxsave64 {} - impl ::fmt::Debug for fxsave64 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for fxsave64 { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("fxsave64") .field("fx_fcw", &{ self.fx_fcw }) .field("fx_fsw", &{ self.fx_fsw }) @@ -99,8 +99,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for fxsave64 { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for fxsave64 { + fn hash(&self, state: &mut H) { { self.fx_fcw }.hash(state); { self.fx_fsw }.hash(state); { self.fx_ftw }.hash(state); @@ -116,12 +116,12 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; -pub const PT_STEP: ::c_int = PT_FIRSTMACH + 0; -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 PT_STEP: c_int = PT_FIRSTMACH + 0; +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; diff --git a/src/unix/haiku/b32.rs b/src/unix/haiku/b32.rs index 073ae9d4b58e2..c1135c834ef8b 100644 --- a/src/unix/haiku/b32.rs +++ b/src/unix/haiku/b32.rs @@ -2,19 +2,19 @@ pub type c_long = i32; pub type c_ulong = u32; pub type time_t = i32; -pub type Elf_Addr = ::Elf32_Addr; -pub type Elf_Half = ::Elf32_Half; -pub type Elf_Phdr = ::Elf32_Phdr; +pub type Elf_Addr = crate::Elf32_Addr; +pub type Elf_Half = crate::Elf32_Half; +pub type Elf_Phdr = crate::Elf32_Phdr; s! { pub struct Elf32_Phdr { - pub p_type: ::Elf32_Word, - pub p_offset: ::Elf32_Off, - pub p_vaddr: ::Elf32_Addr, - pub p_paddr: ::Elf32_Addr, - pub p_filesz: ::Elf32_Word, - pub p_memsz: ::Elf32_Word, - pub p_flags: ::Elf32_Word, - pub p_align: ::Elf32_Word, + pub p_type: crate::Elf32_Word, + pub p_offset: crate::Elf32_Off, + pub p_vaddr: crate::Elf32_Addr, + pub p_paddr: crate::Elf32_Addr, + pub p_filesz: crate::Elf32_Word, + pub p_memsz: crate::Elf32_Word, + pub p_flags: crate::Elf32_Word, + pub p_align: crate::Elf32_Word, } } diff --git a/src/unix/haiku/b64.rs b/src/unix/haiku/b64.rs index 456918052d289..96617042cf2ab 100644 --- a/src/unix/haiku/b64.rs +++ b/src/unix/haiku/b64.rs @@ -2,19 +2,19 @@ pub type c_ulong = u64; pub type c_long = i64; pub type time_t = i64; -pub type Elf_Addr = ::Elf64_Addr; -pub type Elf_Half = ::Elf64_Half; -pub type Elf_Phdr = ::Elf64_Phdr; +pub type Elf_Addr = crate::Elf64_Addr; +pub type Elf_Half = crate::Elf64_Half; +pub type Elf_Phdr = crate::Elf64_Phdr; s! { pub struct Elf64_Phdr { - pub p_type: ::Elf64_Word, - pub p_flags: ::Elf64_Word, - pub p_offset: ::Elf64_Off, - pub p_vaddr: ::Elf64_Addr, - pub p_paddr: ::Elf64_Addr, - pub p_filesz: ::Elf64_Xword, - pub p_memsz: ::Elf64_Xword, - pub p_align: ::Elf64_Xword, + pub p_type: crate::Elf64_Word, + pub p_flags: crate::Elf64_Word, + pub p_offset: crate::Elf64_Off, + pub p_vaddr: crate::Elf64_Addr, + pub p_paddr: crate::Elf64_Addr, + pub p_filesz: crate::Elf64_Xword, + pub p_memsz: crate::Elf64_Xword, + pub p_align: crate::Elf64_Xword, } } diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 94d3c2790852b..9bee01185f6a0 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1,9 +1,13 @@ -pub type rlim_t = ::uintptr_t; +use crate::{ + c_double, c_int, c_short, c_uchar, c_uint, c_ushort, c_void, intptr_t, size_t, ssize_t, +}; + +pub type rlim_t = crate::uintptr_t; pub type sa_family_t = u8; -pub type pthread_key_t = ::c_int; -pub type nfds_t = ::c_ulong; -pub type tcflag_t = ::c_uint; -pub type speed_t = ::c_uchar; +pub type pthread_key_t = c_int; +pub type nfds_t = c_ulong; +pub type tcflag_t = c_uint; +pub type speed_t = c_uchar; pub type c_char = i8; pub type clock_t = i32; pub type clockid_t = i32; @@ -18,19 +22,19 @@ pub type mode_t = u32; pub type nlink_t = i32; pub type useconds_t = u32; pub type socklen_t = u32; -pub type pthread_t = ::uintptr_t; -pub type pthread_condattr_t = ::uintptr_t; -pub type pthread_mutexattr_t = ::uintptr_t; -pub type pthread_rwlockattr_t = ::uintptr_t; +pub type pthread_t = crate::uintptr_t; +pub type pthread_condattr_t = crate::uintptr_t; +pub type pthread_mutexattr_t = crate::uintptr_t; +pub type pthread_rwlockattr_t = crate::uintptr_t; pub type sigset_t = u64; pub type fsblkcnt_t = i64; pub type fsfilcnt_t = i64; -pub type pthread_attr_t = *mut ::c_void; -pub type nl_item = ::c_int; +pub type pthread_attr_t = *mut c_void; +pub type nl_item = c_int; pub type id_t = i32; -pub type idtype_t = ::c_int; +pub type idtype_t = c_int; pub type fd_mask = u32; -pub type regoff_t = ::c_int; +pub type regoff_t = c_int; pub type key_t = i32; pub type msgqnum_t = u32; pub type msglen_t = u32; @@ -50,43 +54,43 @@ pub type Elf64_Word = u32; pub type Elf64_Xword = u64; pub type ENTRY = entry; -pub type ACTION = ::c_int; +pub type ACTION = c_int; -pub type posix_spawnattr_t = *mut ::c_void; -pub type posix_spawn_file_actions_t = *mut ::c_void; +pub type posix_spawnattr_t = *mut c_void; +pub type posix_spawn_file_actions_t = *mut c_void; pub type StringList = _stringlist; #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { +impl Copy for timezone {} +impl Clone for timezone { fn clone(&self) -> timezone { *self } } impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { + pub unsafe fn si_addr(&self) -> *mut c_void { self.si_addr } - pub unsafe fn si_pid(&self) -> ::pid_t { + pub unsafe fn si_pid(&self) -> crate::pid_t { self.si_pid } - pub unsafe fn si_uid(&self) -> ::uid_t { + pub unsafe fn si_uid(&self) -> crate::uid_t { self.si_uid } - pub unsafe fn si_status(&self) -> ::c_int { + pub unsafe fn si_status(&self) -> c_int { self.si_status } } s! { pub struct in_addr { - pub s_addr: ::in_addr_t, + pub s_addr: crate::in_addr_t, } pub struct ip_mreq { @@ -103,8 +107,8 @@ s! { pub struct sockaddr_in { pub sin_len: u8, pub sin_family: sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, pub sin_zero: [i8; 24], } @@ -113,29 +117,29 @@ s! { pub sin6_family: u8, pub sin6_port: u16, pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, + pub sin6_addr: crate::in6_addr, pub sin6_scope_id: u32, } pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, + pub ai_flags: c_int, + pub ai_family: c_int, + pub ai_socktype: c_int, + pub ai_protocol: c_int, pub ai_addrlen: socklen_t, pub ai_canonname: *mut c_char, - pub ai_addr: *mut ::sockaddr, + pub ai_addr: *mut crate::sockaddr, pub ai_next: *mut addrinfo, } pub struct ifaddrs { pub ifa_next: *mut ifaddrs, - pub ifa_name: *const ::c_char, - pub ifa_flags: ::c_uint, - pub ifa_addr: *mut ::sockaddr, - pub ifa_netmask: *mut ::sockaddr, - pub ifa_dstaddr: *mut ::sockaddr, - pub ifa_data: *mut ::c_void, + pub ifa_name: *const c_char, + pub ifa_flags: c_uint, + pub ifa_addr: *mut crate::sockaddr, + pub ifa_netmask: *mut crate::sockaddr, + pub ifa_dstaddr: *mut crate::sockaddr, + pub ifa_data: *mut c_void, } pub struct fd_set { @@ -144,94 +148,94 @@ s! { } pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, - pub tm_gmtoff: ::c_int, - pub tm_zone: *mut ::c_char, + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + pub tm_gmtoff: c_int, + pub tm_zone: *mut c_char, } pub struct utsname { - pub sysname: [::c_char; 32], - pub nodename: [::c_char; 32], - pub release: [::c_char; 32], - pub version: [::c_char; 32], - pub machine: [::c_char; 32], + pub sysname: [c_char; 32], + pub nodename: [c_char; 32], + pub release: [c_char; 32], + pub version: [c_char; 32], + pub machine: [c_char; 32], } pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, + pub decimal_point: *mut c_char, + pub thousands_sep: *mut c_char, + pub grouping: *mut c_char, + pub int_curr_symbol: *mut c_char, + pub currency_symbol: *mut c_char, + pub mon_decimal_point: *mut c_char, + pub mon_thousands_sep: *mut c_char, + pub mon_grouping: *mut c_char, + pub positive_sign: *mut c_char, + pub negative_sign: *mut c_char, + pub int_frac_digits: c_char, + pub frac_digits: c_char, + pub p_cs_precedes: c_char, + pub p_sep_by_space: c_char, + pub n_cs_precedes: c_char, + pub n_sep_by_space: c_char, + pub p_sign_posn: c_char, + pub n_sign_posn: c_char, + pub int_p_cs_precedes: c_char, + pub int_p_sep_by_space: c_char, + pub int_n_cs_precedes: c_char, + pub int_n_sep_by_space: c_char, + pub int_p_sign_posn: c_char, + pub int_n_sign_posn: c_char, } pub struct msghdr { - pub msg_name: *mut ::c_void, + pub msg_name: *mut c_void, pub msg_namelen: socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: c_int, + pub msg_control: *mut c_void, pub msg_controllen: socklen_t, - pub msg_flags: ::c_int, + pub msg_flags: c_int, } pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub cmsg_len: crate::socklen_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, + pub dli_fname: *const c_char, + pub dli_fbase: *mut c_void, + pub dli_sname: *const c_char, + pub dli_saddr: *mut c_void, } pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::c_char, - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, - pub c_cc: [::cc_t; ::NCCS], + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: c_char, + pub c_ispeed: crate::speed_t, + pub c_ospeed: crate::speed_t, + pub c_cc: [crate::cc_t; crate::NCCS], } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct stat { @@ -239,8 +243,8 @@ s! { pub st_ino: ino_t, pub st_mode: mode_t, pub st_nlink: nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, pub st_size: off_t, pub st_rdev: dev_t, pub st_blksize: blksize_t, @@ -257,18 +261,18 @@ s! { } pub struct glob_t { - pub gl_pathc: ::size_t, - __unused1: ::size_t, - pub gl_offs: ::size_t, - __unused2: ::size_t, + pub gl_pathc: size_t, + __unused1: size_t, + pub gl_offs: size_t, + __unused2: size_t, pub gl_pathv: *mut *mut c_char, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - __unused6: *mut ::c_void, - __unused7: *mut ::c_void, - __unused8: *mut ::c_void, + __unused3: *mut c_void, + __unused4: *mut c_void, + __unused5: *mut c_void, + __unused6: *mut c_void, + __unused7: *mut c_void, + __unused8: *mut c_void, } pub struct pthread_mutex_t { @@ -282,7 +286,7 @@ s! { pub struct pthread_cond_t { flags: u32, unused: i32, - mutex: *mut ::c_void, + mutex: *mut c_void, waiter_count: i32, lock: i32, } @@ -294,7 +298,7 @@ s! { lock_count: i32, reader_count: i32, writer_count: i32, - waiters: [*mut ::c_void; 2], + waiters: [*mut c_void; 2], } pub struct pthread_spinlock_t { @@ -302,52 +306,52 @@ s! { } pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, - pub pw_gecos: *mut ::c_char, + pub pw_name: *mut c_char, + pub pw_passwd: *mut c_char, + pub pw_uid: crate::uid_t, + pub pw_gid: crate::gid_t, + pub pw_dir: *mut c_char, + pub pw_shell: *mut c_char, + pub pw_gecos: *mut c_char, } 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, + pub ss_sp: *mut c_void, + pub ss_size: size_t, + pub ss_flags: c_int, } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - pub si_pid: ::pid_t, - pub si_uid: ::uid_t, - pub si_addr: *mut ::c_void, - pub si_status: ::c_int, + pub si_signo: c_int, + pub si_code: c_int, + pub si_errno: c_int, + pub si_pid: crate::pid_t, + pub si_uid: crate::uid_t, + pub si_addr: *mut c_void, + pub si_status: c_int, pub si_band: c_long, - pub sigval: *mut ::c_void, + pub sigval: *mut c_void, } pub struct sigaction { - pub sa_sigaction: ::sighandler_t, //actually a union with sa_handler - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - sa_userdata: *mut ::c_void, + pub sa_sigaction: crate::sighandler_t, //actually a union with sa_handler + pub sa_mask: crate::sigset_t, + pub sa_flags: c_int, + sa_userdata: *mut c_void, } pub struct sem_t { @@ -357,9 +361,9 @@ s! { } pub struct ucred { - pub pid: ::pid_t, - pub uid: ::uid_t, - pub gid: ::gid_t, + pub pid: crate::pid_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, } pub struct sockaddr_dl { @@ -375,25 +379,25 @@ s! { } pub struct spwd { - pub sp_namp: *mut ::c_char, - pub sp_pwdp: *mut ::c_char, - pub sp_lstchg: ::c_int, - pub sp_min: ::c_int, - pub sp_max: ::c_int, - pub sp_warn: ::c_int, - pub sp_inact: ::c_int, - pub sp_expire: ::c_int, - pub sp_flag: ::c_int, + pub sp_namp: *mut c_char, + pub sp_pwdp: *mut c_char, + pub sp_lstchg: c_int, + pub sp_min: c_int, + pub sp_max: c_int, + pub sp_warn: c_int, + pub sp_inact: c_int, + pub sp_expire: c_int, + pub sp_flag: c_int, } pub struct regex_t { - __buffer: *mut ::c_void, - __allocated: ::size_t, - __used: ::size_t, - __syntax: ::c_ulong, - __fastmap: *mut ::c_char, - __translate: *mut ::c_char, - __re_nsub: ::size_t, + __buffer: *mut c_void, + __allocated: size_t, + __used: size_t, + __syntax: c_ulong, + __fastmap: *mut c_char, + __translate: *mut c_char, + __re_nsub: size_t, __bitfield: u8, } @@ -403,54 +407,54 @@ s! { } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - 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_perm: crate::ipc_perm, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + pub msg_stime: crate::time_t, + pub msg_rtime: crate::time_t, + pub msg_ctime: crate::time_t, } pub struct ipc_perm { - pub key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, + pub key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, } pub struct sembuf { - pub sem_num: ::c_ushort, - pub sem_op: ::c_short, - pub sem_flg: ::c_short, + pub sem_num: c_ushort, + pub sem_op: c_short, + pub sem_flg: c_short, } pub struct entry { - pub key: *mut ::c_char, - pub data: *mut ::c_void, + pub key: *mut c_char, + pub data: *mut c_void, } pub struct option { - pub name: *const ::c_char, - pub has_arg: ::c_int, - pub flag: *mut ::c_int, - pub val: ::c_int, + pub name: *const c_char, + pub has_arg: c_int, + pub flag: *mut c_int, + pub val: c_int, } pub struct _stringlist { - pub sl_str: *mut *mut ::c_char, - pub sl_max: ::size_t, - pub sl_cur: ::size_t, + pub sl_str: *mut *mut c_char, + pub sl_max: size_t, + pub sl_cur: size_t, } pub struct dl_phdr_info { - pub dlpi_addr: ::Elf_Addr, - pub dlpi_name: *const ::c_char, - pub dlpi_phdr: *const ::Elf_Phdr, - pub dlpi_phnum: ::Elf_Half, + pub dlpi_addr: crate::Elf_Addr, + pub dlpi_name: *const c_char, + pub dlpi_phdr: *const crate::Elf_Phdr, + pub dlpi_phnum: crate::Elf_Half, } } @@ -458,7 +462,7 @@ s_no_extra_traits! { pub struct sockaddr_un { pub sun_len: u8, pub sun_family: sa_family_t, - pub sun_path: [::c_char; 126], + pub sun_path: [c_char; 126], } pub struct sockaddr_storage { pub ss_len: u8, @@ -472,27 +476,27 @@ s_no_extra_traits! { pub d_pdev: dev_t, pub d_ino: ino_t, pub d_pino: i64, - pub d_reclen: ::c_ushort, - pub d_name: [::c_char; 1024], // Max length is _POSIX_PATH_MAX + pub d_reclen: c_ushort, + pub d_name: [c_char; 1024], // Max length is _POSIX_PATH_MAX } pub struct sigevent { - pub sigev_notify: ::c_int, - pub sigev_signo: ::c_int, - pub sigev_value: ::sigval, - __unused1: *mut ::c_void, // actually a function pointer - pub sigev_notify_attributes: *mut ::pthread_attr_t, + pub sigev_notify: c_int, + pub sigev_signo: c_int, + pub sigev_value: crate::sigval, + __unused1: *mut c_void, // actually a function pointer + pub sigev_notify_attributes: *mut crate::pthread_attr_t, } pub struct utmpx { - pub ut_type: ::c_short, - pub ut_tv: ::timeval, - pub ut_id: [::c_char; 8], - pub ut_pid: ::pid_t, - pub ut_user: [::c_char; 32], - pub ut_line: [::c_char; 16], - pub ut_host: [::c_char; 128], - __ut_reserved: [::c_char; 64], + pub ut_type: c_short, + pub ut_tv: crate::timeval, + pub ut_id: [c_char; 8], + pub ut_pid: crate::pid_t, + pub ut_user: [c_char; 32], + pub ut_line: [c_char; 16], + pub ut_host: [c_char; 128], + __ut_reserved: [c_char; 64], } } @@ -517,8 +521,8 @@ cfg_if! { impl Eq for utmpx {} - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utmpx { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utmpx") .field("ut_type", &self.ut_type) .field("ut_tv", &self.ut_tv) @@ -532,8 +536,8 @@ cfg_if! { } } - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_type.hash(state); self.ut_tv.hash(state); self.ut_id.hash(state); @@ -556,8 +560,8 @@ cfg_if! { } } impl Eq for sockaddr_un {} - impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_un") .field("sun_len", &self.sun_len) .field("sun_family", &self.sun_family) @@ -565,8 +569,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { self.sun_len.hash(state); self.sun_family.hash(state); self.sun_path.hash(state); @@ -591,8 +595,8 @@ cfg_if! { } } impl Eq for sockaddr_storage {} - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_len", &self.ss_len) .field("ss_family", &self.ss_family) @@ -602,8 +606,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_len.hash(state); self.ss_family.hash(state); self.__ss_pad1.hash(state); @@ -627,8 +631,8 @@ cfg_if! { } } impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent") .field("d_dev", &self.d_dev) .field("d_pdev", &self.d_pdev) @@ -639,8 +643,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_dev.hash(state); self.d_pdev.hash(state); self.d_ino.hash(state); @@ -659,8 +663,8 @@ cfg_if! { } } impl Eq for sigevent {} - impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sigevent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sigevent") .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) @@ -669,8 +673,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); self.sigev_signo.hash(state); self.sigev_value.hash(state); @@ -680,597 +684,597 @@ cfg_if! { } } -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 2147483647; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const L_SET: ::c_int = SEEK_SET; -pub const L_INCR: ::c_int = SEEK_CUR; -pub const L_XTND: ::c_int = SEEK_END; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 2; -pub const _IOLBF: ::c_int = 1; - -pub const F_DUPFD: ::c_int = 0x0001; -pub const F_GETFD: ::c_int = 0x0002; -pub const F_SETFD: ::c_int = 0x0004; -pub const F_GETFL: ::c_int = 0x0008; -pub const F_SETFL: ::c_int = 0x0010; -pub const F_GETLK: ::c_int = 0x0020; -pub const F_SETLK: ::c_int = 0x0080; -pub const F_SETLKW: ::c_int = 0x0100; -pub const F_DUPFD_CLOEXEC: ::c_int = 0x0200; - -pub const F_RDLCK: ::c_int = 0x0040; -pub const F_UNLCK: ::c_int = 0x0200; -pub const F_WRLCK: ::c_int = 0x0400; - -pub const AT_FDCWD: ::c_int = -100; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x01; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x02; -pub const AT_REMOVEDIR: ::c_int = 0x04; -pub const AT_EACCESS: ::c_int = 0x08; - -pub const POLLIN: ::c_short = 0x0001; -pub const POLLOUT: ::c_short = 0x0002; -pub const POLLRDNORM: ::c_short = POLLIN; -pub const POLLWRNORM: ::c_short = POLLOUT; -pub const POLLRDBAND: ::c_short = 0x0008; -pub const POLLWRBAND: ::c_short = 0x0010; -pub const POLLPRI: ::c_short = 0x0020; -pub const POLLERR: ::c_short = 0x0004; -pub const POLLHUP: ::c_short = 0x0080; -pub const POLLNVAL: ::c_short = 0x1000; - -pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; -pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; - -pub const CLOCK_REALTIME: ::c_int = -1; -pub const CLOCK_MONOTONIC: ::c_int = 0; -pub const CLOCK_PROCESS_CPUTIME_ID: ::c_int = -2; -pub const CLOCK_THREAD_CPUTIME_ID: ::c_int = -3; - -pub const RLIMIT_CORE: ::c_int = 0; -pub const RLIMIT_CPU: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_FSIZE: ::c_int = 3; -pub const RLIMIT_NOFILE: ::c_int = 4; -pub const RLIMIT_STACK: ::c_int = 5; -pub const RLIMIT_AS: ::c_int = 6; -pub const RLIM_INFINITY: ::rlim_t = 0xffffffff; +pub const EXIT_FAILURE: c_int = 1; +pub const EXIT_SUCCESS: c_int = 0; +pub const RAND_MAX: c_int = 2147483647; +pub const EOF: c_int = -1; +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; +pub const L_SET: c_int = SEEK_SET; +pub const L_INCR: c_int = SEEK_CUR; +pub const L_XTND: c_int = SEEK_END; +pub const _IOFBF: c_int = 0; +pub const _IONBF: c_int = 2; +pub const _IOLBF: c_int = 1; + +pub const F_DUPFD: c_int = 0x0001; +pub const F_GETFD: c_int = 0x0002; +pub const F_SETFD: c_int = 0x0004; +pub const F_GETFL: c_int = 0x0008; +pub const F_SETFL: c_int = 0x0010; +pub const F_GETLK: c_int = 0x0020; +pub const F_SETLK: c_int = 0x0080; +pub const F_SETLKW: c_int = 0x0100; +pub const F_DUPFD_CLOEXEC: c_int = 0x0200; + +pub const F_RDLCK: c_int = 0x0040; +pub const F_UNLCK: c_int = 0x0200; +pub const F_WRLCK: c_int = 0x0400; + +pub const AT_FDCWD: c_int = -100; +pub const AT_SYMLINK_NOFOLLOW: c_int = 0x01; +pub const AT_SYMLINK_FOLLOW: c_int = 0x02; +pub const AT_REMOVEDIR: c_int = 0x04; +pub const AT_EACCESS: c_int = 0x08; + +pub const POLLIN: c_short = 0x0001; +pub const POLLOUT: c_short = 0x0002; +pub const POLLRDNORM: c_short = POLLIN; +pub const POLLWRNORM: c_short = POLLOUT; +pub const POLLRDBAND: c_short = 0x0008; +pub const POLLWRBAND: c_short = 0x0010; +pub const POLLPRI: c_short = 0x0020; +pub const POLLERR: c_short = 0x0004; +pub const POLLHUP: c_short = 0x0080; +pub const POLLNVAL: c_short = 0x1000; + +pub const PTHREAD_CREATE_JOINABLE: c_int = 0; +pub const PTHREAD_CREATE_DETACHED: c_int = 1; + +pub const CLOCK_REALTIME: c_int = -1; +pub const CLOCK_MONOTONIC: c_int = 0; +pub const CLOCK_PROCESS_CPUTIME_ID: c_int = -2; +pub const CLOCK_THREAD_CPUTIME_ID: c_int = -3; + +pub const RLIMIT_CORE: c_int = 0; +pub const RLIMIT_CPU: c_int = 1; +pub const RLIMIT_DATA: c_int = 2; +pub const RLIMIT_FSIZE: c_int = 3; +pub const RLIMIT_NOFILE: c_int = 4; +pub const RLIMIT_STACK: c_int = 5; +pub const RLIMIT_AS: c_int = 6; +pub const RLIM_INFINITY: crate::rlim_t = 0xffffffff; // Haiku specific -pub const RLIMIT_NOVMON: ::c_int = 7; +pub const RLIMIT_NOVMON: c_int = 7; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIM_NLIMITS: ::c_int = 8; +pub const RLIM_NLIMITS: c_int = 8; -pub const RUSAGE_SELF: ::c_int = 0; +pub const RUSAGE_SELF: c_int = 0; -pub const RTLD_LAZY: ::c_int = 0; +pub const RTLD_LAZY: c_int = 0; pub const NCCS: usize = 11; -pub const O_RDONLY: ::c_int = 0x0000; -pub const O_WRONLY: ::c_int = 0x0001; -pub const O_RDWR: ::c_int = 0x0002; -pub const O_ACCMODE: ::c_int = 0x0003; - -pub const O_EXCL: ::c_int = 0x0100; -pub const O_CREAT: ::c_int = 0x0200; -pub const O_TRUNC: ::c_int = 0x0400; -pub const O_NOCTTY: ::c_int = 0x1000; -pub const O_NOTRAVERSE: ::c_int = 0x2000; - -pub const O_CLOEXEC: ::c_int = 0x00000040; -pub const O_NONBLOCK: ::c_int = 0x00000080; -pub const O_APPEND: ::c_int = 0x00000800; -pub const O_SYNC: ::c_int = 0x00010000; -pub const O_RSYNC: ::c_int = 0x00020000; -pub const O_DSYNC: ::c_int = 0x00040000; -pub const O_NOFOLLOW: ::c_int = 0x00080000; -pub const O_NOCACHE: ::c_int = 0x00100000; -pub const O_DIRECTORY: ::c_int = 0x00200000; - -pub const S_IFIFO: ::mode_t = 0o1_0000; -pub const S_IFCHR: ::mode_t = 0o2_0000; -pub const S_IFBLK: ::mode_t = 0o6_0000; -pub const S_IFDIR: ::mode_t = 0o4_0000; -pub const S_IFREG: ::mode_t = 0o10_0000; -pub const S_IFLNK: ::mode_t = 0o12_0000; -pub const S_IFSOCK: ::mode_t = 0o14_0000; -pub const S_IFMT: ::mode_t = 0o17_0000; - -pub const S_IRWXU: ::mode_t = 0o0700; -pub const S_IRUSR: ::mode_t = 0o0400; -pub const S_IWUSR: ::mode_t = 0o0200; -pub const S_IXUSR: ::mode_t = 0o0100; -pub const S_IRWXG: ::mode_t = 0o0070; -pub const S_IRGRP: ::mode_t = 0o0040; -pub const S_IWGRP: ::mode_t = 0o0020; -pub const S_IXGRP: ::mode_t = 0o0010; -pub const S_IRWXO: ::mode_t = 0o0007; -pub const S_IROTH: ::mode_t = 0o0004; -pub const S_IWOTH: ::mode_t = 0o0002; -pub const S_IXOTH: ::mode_t = 0o0001; - -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; - -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGCHLD: ::c_int = 5; -pub const SIGABRT: ::c_int = 6; -pub const SIGPIPE: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSTOP: ::c_int = 10; -pub const SIGSEGV: ::c_int = 11; -pub const SIGCONT: ::c_int = 12; -pub const SIGTSTP: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; -pub const SIGTTIN: ::c_int = 16; -pub const SIGTTOU: ::c_int = 17; -pub const SIGUSR1: ::c_int = 18; -pub const SIGUSR2: ::c_int = 19; -pub const SIGWINCH: ::c_int = 20; -pub const SIGKILLTHR: ::c_int = 21; -pub const SIGTRAP: ::c_int = 22; -pub const SIGPOLL: ::c_int = 23; -pub const SIGPROF: ::c_int = 24; -pub const SIGSYS: ::c_int = 25; -pub const SIGURG: ::c_int = 26; -pub const SIGVTALRM: ::c_int = 27; -pub const SIGXCPU: ::c_int = 28; -pub const SIGXFSZ: ::c_int = 29; -pub const SIGBUS: ::c_int = 30; - -pub const SIG_BLOCK: ::c_int = 1; -pub const SIG_UNBLOCK: ::c_int = 2; -pub const SIG_SETMASK: ::c_int = 3; - -pub const SIGEV_NONE: ::c_int = 0; -pub const SIGEV_SIGNAL: ::c_int = 1; -pub const SIGEV_THREAD: ::c_int = 2; - -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_FAMILY: ::c_int = 5; -pub const EAI_MEMORY: ::c_int = 6; -pub const EAI_NODATA: ::c_int = 7; -pub const EAI_NONAME: ::c_int = 8; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_OVERFLOW: ::c_int = 14; - -pub const PROT_NONE: ::c_int = 0; -pub const PROT_READ: ::c_int = 1; -pub const PROT_WRITE: ::c_int = 2; -pub const PROT_EXEC: ::c_int = 4; - -pub const LC_ALL: ::c_int = 0; -pub const LC_COLLATE: ::c_int = 1; -pub const LC_CTYPE: ::c_int = 2; -pub const LC_MONETARY: ::c_int = 3; -pub const LC_NUMERIC: ::c_int = 4; -pub const LC_TIME: ::c_int = 5; -pub const LC_MESSAGES: ::c_int = 6; +pub const O_RDONLY: c_int = 0x0000; +pub const O_WRONLY: c_int = 0x0001; +pub const O_RDWR: c_int = 0x0002; +pub const O_ACCMODE: c_int = 0x0003; + +pub const O_EXCL: c_int = 0x0100; +pub const O_CREAT: c_int = 0x0200; +pub const O_TRUNC: c_int = 0x0400; +pub const O_NOCTTY: c_int = 0x1000; +pub const O_NOTRAVERSE: c_int = 0x2000; + +pub const O_CLOEXEC: c_int = 0x00000040; +pub const O_NONBLOCK: c_int = 0x00000080; +pub const O_APPEND: c_int = 0x00000800; +pub const O_SYNC: c_int = 0x00010000; +pub const O_RSYNC: c_int = 0x00020000; +pub const O_DSYNC: c_int = 0x00040000; +pub const O_NOFOLLOW: c_int = 0x00080000; +pub const O_NOCACHE: c_int = 0x00100000; +pub const O_DIRECTORY: c_int = 0x00200000; + +pub const S_IFIFO: crate::mode_t = 0o1_0000; +pub const S_IFCHR: crate::mode_t = 0o2_0000; +pub const S_IFBLK: crate::mode_t = 0o6_0000; +pub const S_IFDIR: crate::mode_t = 0o4_0000; +pub const S_IFREG: crate::mode_t = 0o10_0000; +pub const S_IFLNK: crate::mode_t = 0o12_0000; +pub const S_IFSOCK: crate::mode_t = 0o14_0000; +pub const S_IFMT: crate::mode_t = 0o17_0000; + +pub const S_IRWXU: crate::mode_t = 0o0700; +pub const S_IRUSR: crate::mode_t = 0o0400; +pub const S_IWUSR: crate::mode_t = 0o0200; +pub const S_IXUSR: crate::mode_t = 0o0100; +pub const S_IRWXG: crate::mode_t = 0o0070; +pub const S_IRGRP: crate::mode_t = 0o0040; +pub const S_IWGRP: crate::mode_t = 0o0020; +pub const S_IXGRP: crate::mode_t = 0o0010; +pub const S_IRWXO: crate::mode_t = 0o0007; +pub const S_IROTH: crate::mode_t = 0o0004; +pub const S_IWOTH: crate::mode_t = 0o0002; +pub const S_IXOTH: crate::mode_t = 0o0001; + +pub const F_OK: c_int = 0; +pub const R_OK: c_int = 4; +pub const W_OK: c_int = 2; +pub const X_OK: c_int = 1; +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; + +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGCHLD: c_int = 5; +pub const SIGABRT: c_int = 6; +pub const SIGPIPE: c_int = 7; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGSTOP: c_int = 10; +pub const SIGSEGV: c_int = 11; +pub const SIGCONT: c_int = 12; +pub const SIGTSTP: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; +pub const SIGTTIN: c_int = 16; +pub const SIGTTOU: c_int = 17; +pub const SIGUSR1: c_int = 18; +pub const SIGUSR2: c_int = 19; +pub const SIGWINCH: c_int = 20; +pub const SIGKILLTHR: c_int = 21; +pub const SIGTRAP: c_int = 22; +pub const SIGPOLL: c_int = 23; +pub const SIGPROF: c_int = 24; +pub const SIGSYS: c_int = 25; +pub const SIGURG: c_int = 26; +pub const SIGVTALRM: c_int = 27; +pub const SIGXCPU: c_int = 28; +pub const SIGXFSZ: c_int = 29; +pub const SIGBUS: c_int = 30; + +pub const SIG_BLOCK: c_int = 1; +pub const SIG_UNBLOCK: c_int = 2; +pub const SIG_SETMASK: c_int = 3; + +pub const SIGEV_NONE: c_int = 0; +pub const SIGEV_SIGNAL: c_int = 1; +pub const SIGEV_THREAD: c_int = 2; + +pub const EAI_AGAIN: c_int = 2; +pub const EAI_BADFLAGS: c_int = 3; +pub const EAI_FAIL: c_int = 4; +pub const EAI_FAMILY: c_int = 5; +pub const EAI_MEMORY: c_int = 6; +pub const EAI_NODATA: c_int = 7; +pub const EAI_NONAME: c_int = 8; +pub const EAI_SERVICE: c_int = 9; +pub const EAI_SOCKTYPE: c_int = 10; +pub const EAI_SYSTEM: c_int = 11; +pub const EAI_OVERFLOW: c_int = 14; + +pub const PROT_NONE: c_int = 0; +pub const PROT_READ: c_int = 1; +pub const PROT_WRITE: c_int = 2; +pub const PROT_EXEC: c_int = 4; + +pub const LC_ALL: c_int = 0; +pub const LC_COLLATE: c_int = 1; +pub const LC_CTYPE: c_int = 2; +pub const LC_MONETARY: c_int = 3; +pub const LC_NUMERIC: c_int = 4; +pub const LC_TIME: c_int = 5; +pub const LC_MESSAGES: c_int = 6; // FIXME: Haiku does not have MAP_FILE, but library/std/os.rs requires it -pub const MAP_FILE: ::c_int = 0x00; -pub const MAP_SHARED: ::c_int = 0x01; -pub const MAP_PRIVATE: ::c_int = 0x02; -pub const MAP_FIXED: ::c_int = 0x04; -pub const MAP_ANONYMOUS: ::c_int = 0x08; -pub const MAP_NORESERVE: ::c_int = 0x10; -pub const MAP_ANON: ::c_int = MAP_ANONYMOUS; - -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; - -pub const MS_ASYNC: ::c_int = 0x01; -pub const MS_INVALIDATE: ::c_int = 0x04; -pub const MS_SYNC: ::c_int = 0x02; - -pub const E2BIG: ::c_int = -2147454975; -pub const ECHILD: ::c_int = -2147454974; -pub const EDEADLK: ::c_int = -2147454973; -pub const EFBIG: ::c_int = -2147454972; -pub const EMLINK: ::c_int = -2147454971; -pub const ENFILE: ::c_int = -2147454970; -pub const ENODEV: ::c_int = -2147454969; -pub const ENOLCK: ::c_int = -2147454968; -pub const ENOSYS: ::c_int = -2147454967; -pub const ENOTTY: ::c_int = -2147454966; -pub const ENXIO: ::c_int = -2147454965; -pub const ESPIPE: ::c_int = -2147454964; -pub const ESRCH: ::c_int = -2147454963; -pub const EFPOS: ::c_int = -2147454962; -pub const ESIGPARM: ::c_int = -2147454961; -pub const EDOM: ::c_int = -2147454960; -pub const ERANGE: ::c_int = -2147454959; -pub const EPROTOTYPE: ::c_int = -2147454958; -pub const EPROTONOSUPPORT: ::c_int = -2147454957; -pub const EPFNOSUPPORT: ::c_int = -2147454956; -pub const EAFNOSUPPORT: ::c_int = -2147454955; -pub const EADDRINUSE: ::c_int = -2147454954; -pub const EADDRNOTAVAIL: ::c_int = -2147454953; -pub const ENETDOWN: ::c_int = -2147454952; -pub const ENETUNREACH: ::c_int = -2147454951; -pub const ENETRESET: ::c_int = -2147454950; -pub const ECONNABORTED: ::c_int = -2147454949; -pub const ECONNRESET: ::c_int = -2147454948; -pub const EISCONN: ::c_int = -2147454947; -pub const ENOTCONN: ::c_int = -2147454946; -pub const ESHUTDOWN: ::c_int = -2147454945; -pub const ECONNREFUSED: ::c_int = -2147454944; -pub const EHOSTUNREACH: ::c_int = -2147454943; -pub const ENOPROTOOPT: ::c_int = -2147454942; -pub const ENOBUFS: ::c_int = -2147454941; -pub const EINPROGRESS: ::c_int = -2147454940; -pub const EALREADY: ::c_int = -2147454939; -pub const EILSEQ: ::c_int = -2147454938; -pub const ENOMSG: ::c_int = -2147454937; -pub const ESTALE: ::c_int = -2147454936; -pub const EOVERFLOW: ::c_int = -2147454935; -pub const EMSGSIZE: ::c_int = -2147454934; -pub const EOPNOTSUPP: ::c_int = -2147454933; -pub const ENOTSOCK: ::c_int = -2147454932; -pub const EHOSTDOWN: ::c_int = -2147454931; -pub const EBADMSG: ::c_int = -2147454930; -pub const ECANCELED: ::c_int = -2147454929; -pub const EDESTADDRREQ: ::c_int = -2147454928; -pub const EDQUOT: ::c_int = -2147454927; -pub const EIDRM: ::c_int = -2147454926; -pub const EMULTIHOP: ::c_int = -2147454925; -pub const ENODATA: ::c_int = -2147454924; -pub const ENOLINK: ::c_int = -2147454923; -pub const ENOSR: ::c_int = -2147454922; -pub const ENOSTR: ::c_int = -2147454921; -pub const ENOTSUP: ::c_int = -2147454920; -pub const EPROTO: ::c_int = -2147454919; -pub const ETIME: ::c_int = -2147454918; -pub const ETXTBSY: ::c_int = -2147454917; -pub const ENOATTR: ::c_int = -2147454916; +pub const MAP_FILE: c_int = 0x00; +pub const MAP_SHARED: c_int = 0x01; +pub const MAP_PRIVATE: c_int = 0x02; +pub const MAP_FIXED: c_int = 0x04; +pub const MAP_ANONYMOUS: c_int = 0x08; +pub const MAP_NORESERVE: c_int = 0x10; +pub const MAP_ANON: c_int = MAP_ANONYMOUS; + +pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; + +pub const MS_ASYNC: c_int = 0x01; +pub const MS_INVALIDATE: c_int = 0x04; +pub const MS_SYNC: c_int = 0x02; + +pub const E2BIG: c_int = -2147454975; +pub const ECHILD: c_int = -2147454974; +pub const EDEADLK: c_int = -2147454973; +pub const EFBIG: c_int = -2147454972; +pub const EMLINK: c_int = -2147454971; +pub const ENFILE: c_int = -2147454970; +pub const ENODEV: c_int = -2147454969; +pub const ENOLCK: c_int = -2147454968; +pub const ENOSYS: c_int = -2147454967; +pub const ENOTTY: c_int = -2147454966; +pub const ENXIO: c_int = -2147454965; +pub const ESPIPE: c_int = -2147454964; +pub const ESRCH: c_int = -2147454963; +pub const EFPOS: c_int = -2147454962; +pub const ESIGPARM: c_int = -2147454961; +pub const EDOM: c_int = -2147454960; +pub const ERANGE: c_int = -2147454959; +pub const EPROTOTYPE: c_int = -2147454958; +pub const EPROTONOSUPPORT: c_int = -2147454957; +pub const EPFNOSUPPORT: c_int = -2147454956; +pub const EAFNOSUPPORT: c_int = -2147454955; +pub const EADDRINUSE: c_int = -2147454954; +pub const EADDRNOTAVAIL: c_int = -2147454953; +pub const ENETDOWN: c_int = -2147454952; +pub const ENETUNREACH: c_int = -2147454951; +pub const ENETRESET: c_int = -2147454950; +pub const ECONNABORTED: c_int = -2147454949; +pub const ECONNRESET: c_int = -2147454948; +pub const EISCONN: c_int = -2147454947; +pub const ENOTCONN: c_int = -2147454946; +pub const ESHUTDOWN: c_int = -2147454945; +pub const ECONNREFUSED: c_int = -2147454944; +pub const EHOSTUNREACH: c_int = -2147454943; +pub const ENOPROTOOPT: c_int = -2147454942; +pub const ENOBUFS: c_int = -2147454941; +pub const EINPROGRESS: c_int = -2147454940; +pub const EALREADY: c_int = -2147454939; +pub const EILSEQ: c_int = -2147454938; +pub const ENOMSG: c_int = -2147454937; +pub const ESTALE: c_int = -2147454936; +pub const EOVERFLOW: c_int = -2147454935; +pub const EMSGSIZE: c_int = -2147454934; +pub const EOPNOTSUPP: c_int = -2147454933; +pub const ENOTSOCK: c_int = -2147454932; +pub const EHOSTDOWN: c_int = -2147454931; +pub const EBADMSG: c_int = -2147454930; +pub const ECANCELED: c_int = -2147454929; +pub const EDESTADDRREQ: c_int = -2147454928; +pub const EDQUOT: c_int = -2147454927; +pub const EIDRM: c_int = -2147454926; +pub const EMULTIHOP: c_int = -2147454925; +pub const ENODATA: c_int = -2147454924; +pub const ENOLINK: c_int = -2147454923; +pub const ENOSR: c_int = -2147454922; +pub const ENOSTR: c_int = -2147454921; +pub const ENOTSUP: c_int = -2147454920; +pub const EPROTO: c_int = -2147454919; +pub const ETIME: c_int = -2147454918; +pub const ETXTBSY: c_int = -2147454917; +pub const ENOATTR: c_int = -2147454916; // INT_MIN -pub const ENOMEM: ::c_int = -2147483648; +pub const ENOMEM: c_int = -2147483648; // POSIX errors that can be mapped to BeOS error codes -pub const EACCES: ::c_int = -2147483646; -pub const EINTR: ::c_int = -2147483638; -pub const EIO: ::c_int = -2147483647; -pub const EBUSY: ::c_int = -2147483634; -pub const EFAULT: ::c_int = -2147478783; -pub const ETIMEDOUT: ::c_int = -2147483639; -pub const EAGAIN: ::c_int = -2147483637; -pub const EWOULDBLOCK: ::c_int = -2147483637; -pub const EBADF: ::c_int = -2147459072; -pub const EEXIST: ::c_int = -2147459070; -pub const EINVAL: ::c_int = -2147483643; -pub const ENAMETOOLONG: ::c_int = -2147459068; -pub const ENOENT: ::c_int = -2147459069; -pub const EPERM: ::c_int = -2147483633; -pub const ENOTDIR: ::c_int = -2147459067; -pub const EISDIR: ::c_int = -2147459063; -pub const ENOTEMPTY: ::c_int = -2147459066; -pub const ENOSPC: ::c_int = -2147459065; -pub const EROFS: ::c_int = -2147459064; -pub const EMFILE: ::c_int = -2147459062; -pub const EXDEV: ::c_int = -2147459061; -pub const ELOOP: ::c_int = -2147459060; -pub const ENOEXEC: ::c_int = -2147478782; -pub const EPIPE: ::c_int = -2147459059; - -pub const IPPROTO_RAW: ::c_int = 255; +pub const EACCES: c_int = -2147483646; +pub const EINTR: c_int = -2147483638; +pub const EIO: c_int = -2147483647; +pub const EBUSY: c_int = -2147483634; +pub const EFAULT: c_int = -2147478783; +pub const ETIMEDOUT: c_int = -2147483639; +pub const EAGAIN: c_int = -2147483637; +pub const EWOULDBLOCK: c_int = -2147483637; +pub const EBADF: c_int = -2147459072; +pub const EEXIST: c_int = -2147459070; +pub const EINVAL: c_int = -2147483643; +pub const ENAMETOOLONG: c_int = -2147459068; +pub const ENOENT: c_int = -2147459069; +pub const EPERM: c_int = -2147483633; +pub const ENOTDIR: c_int = -2147459067; +pub const EISDIR: c_int = -2147459063; +pub const ENOTEMPTY: c_int = -2147459066; +pub const ENOSPC: c_int = -2147459065; +pub const EROFS: c_int = -2147459064; +pub const EMFILE: c_int = -2147459062; +pub const EXDEV: c_int = -2147459061; +pub const ELOOP: c_int = -2147459060; +pub const ENOEXEC: c_int = -2147478782; +pub const EPIPE: c_int = -2147459059; + +pub const IPPROTO_RAW: c_int = 255; // These are prefixed with POSIX_ on Haiku -pub const MADV_NORMAL: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_RANDOM: ::c_int = 3; -pub const MADV_WILLNEED: ::c_int = 4; -pub const MADV_DONTNEED: ::c_int = 5; -pub const MADV_FREE: ::c_int = 6; +pub const MADV_NORMAL: c_int = 1; +pub const MADV_SEQUENTIAL: c_int = 2; +pub const MADV_RANDOM: c_int = 3; +pub const MADV_WILLNEED: c_int = 4; +pub const MADV_DONTNEED: c_int = 5; +pub const MADV_FREE: c_int = 6; // https://github.com/haiku/haiku/blob/HEAD/headers/posix/net/if.h#L80 -pub const IFF_UP: ::c_int = 0x0001; -pub const IFF_BROADCAST: ::c_int = 0x0002; // valid broadcast address -pub const IFF_LOOPBACK: ::c_int = 0x0008; -pub const IFF_POINTOPOINT: ::c_int = 0x0010; // point-to-point link -pub const IFF_NOARP: ::c_int = 0x0040; // no address resolution -pub const IFF_AUTOUP: ::c_int = 0x0080; // auto dial -pub const IFF_PROMISC: ::c_int = 0x0100; // receive all packets -pub const IFF_ALLMULTI: ::c_int = 0x0200; // receive all multicast packets -pub const IFF_SIMPLEX: ::c_int = 0x0800; // doesn't receive own transmissions -pub const IFF_LINK: ::c_int = 0x1000; // has link -pub const IFF_AUTO_CONFIGURED: ::c_int = 0x2000; -pub const IFF_CONFIGURING: ::c_int = 0x4000; -pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_INET: ::c_int = 1; -pub const AF_APPLETALK: ::c_int = 2; -pub const AF_ROUTE: ::c_int = 3; -pub const AF_LINK: ::c_int = 4; -pub const AF_INET6: ::c_int = 5; -pub const AF_DLI: ::c_int = 6; -pub const AF_IPX: ::c_int = 7; -pub const AF_NOTIFY: ::c_int = 8; -pub const AF_LOCAL: ::c_int = 9; -pub const AF_UNIX: ::c_int = AF_LOCAL; -pub const AF_BLUETOOTH: ::c_int = 10; - -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_LINK: ::c_int = AF_LINK; -pub const PF_INET6: ::c_int = AF_INET6; -pub const PF_LOCAL: ::c_int = AF_LOCAL; -pub const PF_UNIX: ::c_int = AF_UNIX; -pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; - -pub const IP_OPTIONS: ::c_int = 1; -pub const IP_HDRINCL: ::c_int = 2; -pub const IP_TOS: ::c_int = 3; -pub const IP_TTL: ::c_int = 4; -pub const IP_RECVOPTS: ::c_int = 5; -pub const IP_RECVRETOPTS: ::c_int = 6; -pub const IP_RECVDSTADDR: ::c_int = 7; -pub const IP_RETOPTS: ::c_int = 8; -pub const IP_MULTICAST_IF: ::c_int = 9; -pub const IP_MULTICAST_TTL: ::c_int = 10; -pub const IP_MULTICAST_LOOP: ::c_int = 11; -pub const IP_ADD_MEMBERSHIP: ::c_int = 12; -pub const IP_DROP_MEMBERSHIP: ::c_int = 13; -pub const IP_BLOCK_SOURCE: ::c_int = 14; -pub const IP_UNBLOCK_SOURCE: ::c_int = 15; -pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 16; -pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 17; - -pub const TCP_NODELAY: ::c_int = 0x01; -pub const TCP_MAXSEG: ::c_int = 0x02; -pub const TCP_NOPUSH: ::c_int = 0x04; -pub const TCP_NOOPT: ::c_int = 0x08; - -pub const IF_NAMESIZE: ::size_t = 32; -pub const IFNAMSIZ: ::size_t = IF_NAMESIZE; - -pub const IPV6_MULTICAST_IF: ::c_int = 24; -pub const IPV6_MULTICAST_HOPS: ::c_int = 25; -pub const IPV6_MULTICAST_LOOP: ::c_int = 26; -pub const IPV6_UNICAST_HOPS: ::c_int = 27; -pub const IPV6_JOIN_GROUP: ::c_int = 28; -pub const IPV6_LEAVE_GROUP: ::c_int = 29; -pub const IPV6_V6ONLY: ::c_int = 30; -pub const IPV6_PKTINFO: ::c_int = 31; -pub const IPV6_RECVPKTINFO: ::c_int = 32; -pub const IPV6_HOPLIMIT: ::c_int = 33; -pub const IPV6_RECVHOPLIMIT: ::c_int = 34; -pub const IPV6_HOPOPTS: ::c_int = 35; -pub const IPV6_DSTOPTS: ::c_int = 36; -pub const IPV6_RTHDR: ::c_int = 37; - -pub const MSG_OOB: ::c_int = 0x0001; -pub const MSG_PEEK: ::c_int = 0x0002; -pub const MSG_DONTROUTE: ::c_int = 0x0004; -pub const MSG_EOR: ::c_int = 0x0008; -pub const MSG_TRUNC: ::c_int = 0x0010; -pub const MSG_CTRUNC: ::c_int = 0x0020; -pub const MSG_WAITALL: ::c_int = 0x0040; -pub const MSG_DONTWAIT: ::c_int = 0x0080; -pub const MSG_BCAST: ::c_int = 0x0100; -pub const MSG_MCAST: ::c_int = 0x0200; -pub const MSG_EOF: ::c_int = 0x0400; -pub const MSG_NOSIGNAL: ::c_int = 0x0800; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const LOCK_SH: ::c_int = 0x01; -pub const LOCK_EX: ::c_int = 0x02; -pub const LOCK_NB: ::c_int = 0x04; -pub const LOCK_UN: ::c_int = 0x08; - -pub const MINSIGSTKSZ: ::size_t = 8192; -pub const SIGSTKSZ: ::size_t = 16384; - -pub const IOV_MAX: ::c_int = 1024; -pub const PATH_MAX: ::c_int = 1024; - -pub const SA_NOCLDSTOP: ::c_int = 0x01; -pub const SA_NOCLDWAIT: ::c_int = 0x02; -pub const SA_RESETHAND: ::c_int = 0x04; -pub const SA_NODEFER: ::c_int = 0x08; -pub const SA_RESTART: ::c_int = 0x10; -pub const SA_ONSTACK: ::c_int = 0x20; -pub const SA_SIGINFO: ::c_int = 0x40; -pub const SA_NOMASK: ::c_int = SA_NODEFER; -pub const SA_STACK: ::c_int = SA_ONSTACK; -pub const SA_ONESHOT: ::c_int = SA_RESETHAND; - -pub const SS_ONSTACK: ::c_int = 0x1; -pub const SS_DISABLE: ::c_int = 0x2; +pub const IFF_UP: c_int = 0x0001; +pub const IFF_BROADCAST: c_int = 0x0002; // valid broadcast address +pub const IFF_LOOPBACK: c_int = 0x0008; +pub const IFF_POINTOPOINT: c_int = 0x0010; // point-to-point link +pub const IFF_NOARP: c_int = 0x0040; // no address resolution +pub const IFF_AUTOUP: c_int = 0x0080; // auto dial +pub const IFF_PROMISC: c_int = 0x0100; // receive all packets +pub const IFF_ALLMULTI: c_int = 0x0200; // receive all multicast packets +pub const IFF_SIMPLEX: c_int = 0x0800; // doesn't receive own transmissions +pub const IFF_LINK: c_int = 0x1000; // has link +pub const IFF_AUTO_CONFIGURED: c_int = 0x2000; +pub const IFF_CONFIGURING: c_int = 0x4000; +pub const IFF_MULTICAST: c_int = 0x8000; // supports multicast + +pub const AF_UNSPEC: c_int = 0; +pub const AF_INET: c_int = 1; +pub const AF_APPLETALK: c_int = 2; +pub const AF_ROUTE: c_int = 3; +pub const AF_LINK: c_int = 4; +pub const AF_INET6: c_int = 5; +pub const AF_DLI: c_int = 6; +pub const AF_IPX: c_int = 7; +pub const AF_NOTIFY: c_int = 8; +pub const AF_LOCAL: c_int = 9; +pub const AF_UNIX: c_int = AF_LOCAL; +pub const AF_BLUETOOTH: c_int = 10; + +pub const PF_UNSPEC: c_int = AF_UNSPEC; +pub const PF_INET: c_int = AF_INET; +pub const PF_ROUTE: c_int = AF_ROUTE; +pub const PF_LINK: c_int = AF_LINK; +pub const PF_INET6: c_int = AF_INET6; +pub const PF_LOCAL: c_int = AF_LOCAL; +pub const PF_UNIX: c_int = AF_UNIX; +pub const PF_BLUETOOTH: c_int = AF_BLUETOOTH; + +pub const IP_OPTIONS: c_int = 1; +pub const IP_HDRINCL: c_int = 2; +pub const IP_TOS: c_int = 3; +pub const IP_TTL: c_int = 4; +pub const IP_RECVOPTS: c_int = 5; +pub const IP_RECVRETOPTS: c_int = 6; +pub const IP_RECVDSTADDR: c_int = 7; +pub const IP_RETOPTS: c_int = 8; +pub const IP_MULTICAST_IF: c_int = 9; +pub const IP_MULTICAST_TTL: c_int = 10; +pub const IP_MULTICAST_LOOP: c_int = 11; +pub const IP_ADD_MEMBERSHIP: c_int = 12; +pub const IP_DROP_MEMBERSHIP: c_int = 13; +pub const IP_BLOCK_SOURCE: c_int = 14; +pub const IP_UNBLOCK_SOURCE: c_int = 15; +pub const IP_ADD_SOURCE_MEMBERSHIP: c_int = 16; +pub const IP_DROP_SOURCE_MEMBERSHIP: c_int = 17; + +pub const TCP_NODELAY: c_int = 0x01; +pub const TCP_MAXSEG: c_int = 0x02; +pub const TCP_NOPUSH: c_int = 0x04; +pub const TCP_NOOPT: c_int = 0x08; + +pub const IF_NAMESIZE: size_t = 32; +pub const IFNAMSIZ: size_t = IF_NAMESIZE; + +pub const IPV6_MULTICAST_IF: c_int = 24; +pub const IPV6_MULTICAST_HOPS: c_int = 25; +pub const IPV6_MULTICAST_LOOP: c_int = 26; +pub const IPV6_UNICAST_HOPS: c_int = 27; +pub const IPV6_JOIN_GROUP: c_int = 28; +pub const IPV6_LEAVE_GROUP: c_int = 29; +pub const IPV6_V6ONLY: c_int = 30; +pub const IPV6_PKTINFO: c_int = 31; +pub const IPV6_RECVPKTINFO: c_int = 32; +pub const IPV6_HOPLIMIT: c_int = 33; +pub const IPV6_RECVHOPLIMIT: c_int = 34; +pub const IPV6_HOPOPTS: c_int = 35; +pub const IPV6_DSTOPTS: c_int = 36; +pub const IPV6_RTHDR: c_int = 37; + +pub const MSG_OOB: c_int = 0x0001; +pub const MSG_PEEK: c_int = 0x0002; +pub const MSG_DONTROUTE: c_int = 0x0004; +pub const MSG_EOR: c_int = 0x0008; +pub const MSG_TRUNC: c_int = 0x0010; +pub const MSG_CTRUNC: c_int = 0x0020; +pub const MSG_WAITALL: c_int = 0x0040; +pub const MSG_DONTWAIT: c_int = 0x0080; +pub const MSG_BCAST: c_int = 0x0100; +pub const MSG_MCAST: c_int = 0x0200; +pub const MSG_EOF: c_int = 0x0400; +pub const MSG_NOSIGNAL: c_int = 0x0800; + +pub const SHUT_RD: c_int = 0; +pub const SHUT_WR: c_int = 1; +pub const SHUT_RDWR: c_int = 2; + +pub const LOCK_SH: c_int = 0x01; +pub const LOCK_EX: c_int = 0x02; +pub const LOCK_NB: c_int = 0x04; +pub const LOCK_UN: c_int = 0x08; + +pub const MINSIGSTKSZ: size_t = 8192; +pub const SIGSTKSZ: size_t = 16384; + +pub const IOV_MAX: c_int = 1024; +pub const PATH_MAX: c_int = 1024; + +pub const SA_NOCLDSTOP: c_int = 0x01; +pub const SA_NOCLDWAIT: c_int = 0x02; +pub const SA_RESETHAND: c_int = 0x04; +pub const SA_NODEFER: c_int = 0x08; +pub const SA_RESTART: c_int = 0x10; +pub const SA_ONSTACK: c_int = 0x20; +pub const SA_SIGINFO: c_int = 0x40; +pub const SA_NOMASK: c_int = SA_NODEFER; +pub const SA_STACK: c_int = SA_ONSTACK; +pub const SA_ONESHOT: c_int = SA_RESETHAND; + +pub const SS_ONSTACK: c_int = 0x1; +pub const SS_DISABLE: c_int = 0x2; // DIFF(main): changed to `c_int` in 500365e1 pub const FD_SETSIZE: usize = 1024; -pub const RTLD_LOCAL: ::c_int = 0x0; -pub const RTLD_NOW: ::c_int = 0x1; -pub const RTLD_GLOBAL: ::c_int = 0x2; -pub const RTLD_DEFAULT: *mut ::c_void = 0isize as *mut ::c_void; - -pub const BUFSIZ: ::c_uint = 8192; -pub const FILENAME_MAX: ::c_uint = 256; -pub const FOPEN_MAX: ::c_uint = 128; -pub const L_tmpnam: ::c_uint = 512; -pub const TMP_MAX: ::c_uint = 32768; - -pub const _PC_CHOWN_RESTRICTED: ::c_int = 1; -pub const _PC_MAX_CANON: ::c_int = 2; -pub const _PC_MAX_INPUT: ::c_int = 3; -pub const _PC_NAME_MAX: ::c_int = 4; -pub const _PC_NO_TRUNC: ::c_int = 5; -pub const _PC_PATH_MAX: ::c_int = 6; -pub const _PC_PIPE_BUF: ::c_int = 7; -pub const _PC_VDISABLE: ::c_int = 8; -pub const _PC_LINK_MAX: ::c_int = 25; -pub const _PC_SYNC_IO: ::c_int = 26; -pub const _PC_ASYNC_IO: ::c_int = 27; -pub const _PC_PRIO_IO: ::c_int = 28; -pub const _PC_SOCK_MAXBUF: ::c_int = 29; -pub const _PC_FILESIZEBITS: ::c_int = 30; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 31; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 32; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 33; -pub const _PC_REC_XFER_ALIGN: ::c_int = 34; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 35; -pub const _PC_SYMLINK_MAX: ::c_int = 36; -pub const _PC_2_SYMLINKS: ::c_int = 37; -pub const _PC_XATTR_EXISTS: ::c_int = 38; -pub const _PC_XATTR_ENABLED: ::c_int = 39; - -pub const FIONBIO: ::c_ulong = 0xbe000000; -pub const FIONREAD: ::c_ulong = 0xbe000001; -pub const FIOSEEKDATA: ::c_ulong = 0xbe000002; -pub const FIOSEEKHOLE: ::c_ulong = 0xbe000003; - -pub const _SC_ARG_MAX: ::c_int = 15; -pub const _SC_CHILD_MAX: ::c_int = 16; -pub const _SC_CLK_TCK: ::c_int = 17; -pub const _SC_JOB_CONTROL: ::c_int = 18; -pub const _SC_NGROUPS_MAX: ::c_int = 19; -pub const _SC_OPEN_MAX: ::c_int = 20; -pub const _SC_SAVED_IDS: ::c_int = 21; -pub const _SC_STREAM_MAX: ::c_int = 22; -pub const _SC_TZNAME_MAX: ::c_int = 23; -pub const _SC_VERSION: ::c_int = 24; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 25; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 26; -pub const _SC_PAGESIZE: ::c_int = 27; -pub const _SC_PAGE_SIZE: ::c_int = 27; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 28; -pub const _SC_SEM_VALUE_MAX: ::c_int = 29; -pub const _SC_SEMAPHORES: ::c_int = 30; -pub const _SC_THREADS: ::c_int = 31; -pub const _SC_IOV_MAX: ::c_int = 32; -pub const _SC_UIO_MAXIOV: ::c_int = 32; -pub const _SC_NPROCESSORS_CONF: ::c_int = 34; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 35; -pub const _SC_ATEXIT_MAX: ::c_int = 37; -pub const _SC_PASS_MAX: ::c_int = 39; -pub const _SC_PHYS_PAGES: ::c_int = 40; -pub const _SC_AVPHYS_PAGES: ::c_int = 41; -pub const _SC_PIPE: ::c_int = 42; -pub const _SC_SELECT: ::c_int = 43; -pub const _SC_POLL: ::c_int = 44; -pub const _SC_MAPPED_FILES: ::c_int = 45; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 46; -pub const _SC_THREAD_STACK_MIN: ::c_int = 47; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 48; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 49; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 50; -pub const _SC_REALTIME_SIGNALS: ::c_int = 51; -pub const _SC_MEMORY_PROTECTION: ::c_int = 52; -pub const _SC_SIGQUEUE_MAX: ::c_int = 53; -pub const _SC_RTSIG_MAX: ::c_int = 54; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 55; -pub const _SC_DELAYTIMER_MAX: ::c_int = 56; -pub const _SC_TIMER_MAX: ::c_int = 57; -pub const _SC_TIMERS: ::c_int = 58; -pub const _SC_CPUTIME: ::c_int = 59; -pub const _SC_THREAD_CPUTIME: ::c_int = 60; -pub const _SC_HOST_NAME_MAX: ::c_int = 61; -pub const _SC_REGEXP: ::c_int = 62; -pub const _SC_SYMLOOP_MAX: ::c_int = 63; -pub const _SC_SHELL: ::c_int = 64; -pub const _SC_TTY_NAME_MAX: ::c_int = 65; -pub const _SC_ADVISORY_INFO: ::c_int = 66; -pub const _SC_BARRIERS: ::c_int = 67; -pub const _SC_CLOCK_SELECTION: ::c_int = 68; -pub const _SC_FSYNC: ::c_int = 69; -pub const _SC_IPV6: ::c_int = 70; -pub const _SC_MEMLOCK: ::c_int = 71; -pub const _SC_MEMLOCK_RANGE: ::c_int = 72; -pub const _SC_MESSAGE_PASSING: ::c_int = 73; -pub const _SC_PRIORITIZED_IO: ::c_int = 74; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 75; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 76; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 77; -pub const _SC_SPAWN: ::c_int = 78; -pub const _SC_SPIN_LOCKS: ::c_int = 79; -pub const _SC_SPORADIC_SERVER: ::c_int = 80; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 81; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 82; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 83; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 84; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 85; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 86; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 87; -pub const _SC_TIMEOUTS: ::c_int = 88; -pub const _SC_TRACE: ::c_int = 89; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 90; -pub const _SC_TRACE_INHERIT: ::c_int = 91; -pub const _SC_TRACE_LOG: ::c_int = 92; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 93; -pub const _SC_V6_ILP32_OFF32: ::c_int = 94; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 95; -pub const _SC_V6_LP64_OFF64: ::c_int = 96; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 97; -pub const _SC_V7_ILP32_OFF32: ::c_int = 98; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 99; -pub const _SC_V7_LP64_OFF64: ::c_int = 100; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 101; -pub const _SC_2_C_BIND: ::c_int = 102; -pub const _SC_2_C_DEV: ::c_int = 103; -pub const _SC_2_CHAR_TERM: ::c_int = 104; -pub const _SC_2_FORT_DEV: ::c_int = 105; -pub const _SC_2_FORT_RUN: ::c_int = 106; -pub const _SC_2_LOCALEDEF: ::c_int = 107; -pub const _SC_2_PBS: ::c_int = 108; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 109; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 110; -pub const _SC_2_PBS_LOCATE: ::c_int = 111; -pub const _SC_2_PBS_MESSAGE: ::c_int = 112; -pub const _SC_2_PBS_TRACK: ::c_int = 113; -pub const _SC_2_SW_DEV: ::c_int = 114; -pub const _SC_2_UPE: ::c_int = 115; -pub const _SC_2_VERSION: ::c_int = 116; -pub const _SC_XOPEN_CRYPT: ::c_int = 117; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 118; -pub const _SC_XOPEN_REALTIME: ::c_int = 119; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 120; -pub const _SC_XOPEN_SHM: ::c_int = 121; -pub const _SC_XOPEN_STREAMS: ::c_int = 122; -pub const _SC_XOPEN_UNIX: ::c_int = 123; -pub const _SC_XOPEN_UUCP: ::c_int = 124; -pub const _SC_XOPEN_VERSION: ::c_int = 125; -pub const _SC_BC_BASE_MAX: ::c_int = 129; -pub const _SC_BC_DIM_MAX: ::c_int = 130; -pub const _SC_BC_SCALE_MAX: ::c_int = 131; -pub const _SC_BC_STRING_MAX: ::c_int = 132; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 133; -pub const _SC_EXPR_NEST_MAX: ::c_int = 134; -pub const _SC_LINE_MAX: ::c_int = 135; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 136; -pub const _SC_MQ_OPEN_MAX: ::c_int = 137; -pub const _SC_MQ_PRIO_MAX: ::c_int = 138; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 139; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 140; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 141; -pub const _SC_RE_DUP_MAX: ::c_int = 142; - -pub const PTHREAD_STACK_MIN: ::size_t = 8192; +pub const RTLD_LOCAL: c_int = 0x0; +pub const RTLD_NOW: c_int = 0x1; +pub const RTLD_GLOBAL: c_int = 0x2; +pub const RTLD_DEFAULT: *mut c_void = 0isize as *mut c_void; + +pub const BUFSIZ: c_uint = 8192; +pub const FILENAME_MAX: c_uint = 256; +pub const FOPEN_MAX: c_uint = 128; +pub const L_tmpnam: c_uint = 512; +pub const TMP_MAX: c_uint = 32768; + +pub const _PC_CHOWN_RESTRICTED: c_int = 1; +pub const _PC_MAX_CANON: c_int = 2; +pub const _PC_MAX_INPUT: c_int = 3; +pub const _PC_NAME_MAX: c_int = 4; +pub const _PC_NO_TRUNC: c_int = 5; +pub const _PC_PATH_MAX: c_int = 6; +pub const _PC_PIPE_BUF: c_int = 7; +pub const _PC_VDISABLE: c_int = 8; +pub const _PC_LINK_MAX: c_int = 25; +pub const _PC_SYNC_IO: c_int = 26; +pub const _PC_ASYNC_IO: c_int = 27; +pub const _PC_PRIO_IO: c_int = 28; +pub const _PC_SOCK_MAXBUF: c_int = 29; +pub const _PC_FILESIZEBITS: c_int = 30; +pub const _PC_REC_INCR_XFER_SIZE: c_int = 31; +pub const _PC_REC_MAX_XFER_SIZE: c_int = 32; +pub const _PC_REC_MIN_XFER_SIZE: c_int = 33; +pub const _PC_REC_XFER_ALIGN: c_int = 34; +pub const _PC_ALLOC_SIZE_MIN: c_int = 35; +pub const _PC_SYMLINK_MAX: c_int = 36; +pub const _PC_2_SYMLINKS: c_int = 37; +pub const _PC_XATTR_EXISTS: c_int = 38; +pub const _PC_XATTR_ENABLED: c_int = 39; + +pub const FIONBIO: c_ulong = 0xbe000000; +pub const FIONREAD: c_ulong = 0xbe000001; +pub const FIOSEEKDATA: c_ulong = 0xbe000002; +pub const FIOSEEKHOLE: c_ulong = 0xbe000003; + +pub const _SC_ARG_MAX: c_int = 15; +pub const _SC_CHILD_MAX: c_int = 16; +pub const _SC_CLK_TCK: c_int = 17; +pub const _SC_JOB_CONTROL: c_int = 18; +pub const _SC_NGROUPS_MAX: c_int = 19; +pub const _SC_OPEN_MAX: c_int = 20; +pub const _SC_SAVED_IDS: c_int = 21; +pub const _SC_STREAM_MAX: c_int = 22; +pub const _SC_TZNAME_MAX: c_int = 23; +pub const _SC_VERSION: c_int = 24; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 25; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 26; +pub const _SC_PAGESIZE: c_int = 27; +pub const _SC_PAGE_SIZE: c_int = 27; +pub const _SC_SEM_NSEMS_MAX: c_int = 28; +pub const _SC_SEM_VALUE_MAX: c_int = 29; +pub const _SC_SEMAPHORES: c_int = 30; +pub const _SC_THREADS: c_int = 31; +pub const _SC_IOV_MAX: c_int = 32; +pub const _SC_UIO_MAXIOV: c_int = 32; +pub const _SC_NPROCESSORS_CONF: c_int = 34; +pub const _SC_NPROCESSORS_ONLN: c_int = 35; +pub const _SC_ATEXIT_MAX: c_int = 37; +pub const _SC_PASS_MAX: c_int = 39; +pub const _SC_PHYS_PAGES: c_int = 40; +pub const _SC_AVPHYS_PAGES: c_int = 41; +pub const _SC_PIPE: c_int = 42; +pub const _SC_SELECT: c_int = 43; +pub const _SC_POLL: c_int = 44; +pub const _SC_MAPPED_FILES: c_int = 45; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 46; +pub const _SC_THREAD_STACK_MIN: c_int = 47; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 48; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 49; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 50; +pub const _SC_REALTIME_SIGNALS: c_int = 51; +pub const _SC_MEMORY_PROTECTION: c_int = 52; +pub const _SC_SIGQUEUE_MAX: c_int = 53; +pub const _SC_RTSIG_MAX: c_int = 54; +pub const _SC_MONOTONIC_CLOCK: c_int = 55; +pub const _SC_DELAYTIMER_MAX: c_int = 56; +pub const _SC_TIMER_MAX: c_int = 57; +pub const _SC_TIMERS: c_int = 58; +pub const _SC_CPUTIME: c_int = 59; +pub const _SC_THREAD_CPUTIME: c_int = 60; +pub const _SC_HOST_NAME_MAX: c_int = 61; +pub const _SC_REGEXP: c_int = 62; +pub const _SC_SYMLOOP_MAX: c_int = 63; +pub const _SC_SHELL: c_int = 64; +pub const _SC_TTY_NAME_MAX: c_int = 65; +pub const _SC_ADVISORY_INFO: c_int = 66; +pub const _SC_BARRIERS: c_int = 67; +pub const _SC_CLOCK_SELECTION: c_int = 68; +pub const _SC_FSYNC: c_int = 69; +pub const _SC_IPV6: c_int = 70; +pub const _SC_MEMLOCK: c_int = 71; +pub const _SC_MEMLOCK_RANGE: c_int = 72; +pub const _SC_MESSAGE_PASSING: c_int = 73; +pub const _SC_PRIORITIZED_IO: c_int = 74; +pub const _SC_PRIORITY_SCHEDULING: c_int = 75; +pub const _SC_READER_WRITER_LOCKS: c_int = 76; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 77; +pub const _SC_SPAWN: c_int = 78; +pub const _SC_SPIN_LOCKS: c_int = 79; +pub const _SC_SPORADIC_SERVER: c_int = 80; +pub const _SC_SYNCHRONIZED_IO: c_int = 81; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 82; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 83; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 84; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 85; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 86; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 87; +pub const _SC_TIMEOUTS: c_int = 88; +pub const _SC_TRACE: c_int = 89; +pub const _SC_TRACE_EVENT_FILTER: c_int = 90; +pub const _SC_TRACE_INHERIT: c_int = 91; +pub const _SC_TRACE_LOG: c_int = 92; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 93; +pub const _SC_V6_ILP32_OFF32: c_int = 94; +pub const _SC_V6_ILP32_OFFBIG: c_int = 95; +pub const _SC_V6_LP64_OFF64: c_int = 96; +pub const _SC_V6_LPBIG_OFFBIG: c_int = 97; +pub const _SC_V7_ILP32_OFF32: c_int = 98; +pub const _SC_V7_ILP32_OFFBIG: c_int = 99; +pub const _SC_V7_LP64_OFF64: c_int = 100; +pub const _SC_V7_LPBIG_OFFBIG: c_int = 101; +pub const _SC_2_C_BIND: c_int = 102; +pub const _SC_2_C_DEV: c_int = 103; +pub const _SC_2_CHAR_TERM: c_int = 104; +pub const _SC_2_FORT_DEV: c_int = 105; +pub const _SC_2_FORT_RUN: c_int = 106; +pub const _SC_2_LOCALEDEF: c_int = 107; +pub const _SC_2_PBS: c_int = 108; +pub const _SC_2_PBS_ACCOUNTING: c_int = 109; +pub const _SC_2_PBS_CHECKPOINT: c_int = 110; +pub const _SC_2_PBS_LOCATE: c_int = 111; +pub const _SC_2_PBS_MESSAGE: c_int = 112; +pub const _SC_2_PBS_TRACK: c_int = 113; +pub const _SC_2_SW_DEV: c_int = 114; +pub const _SC_2_UPE: c_int = 115; +pub const _SC_2_VERSION: c_int = 116; +pub const _SC_XOPEN_CRYPT: c_int = 117; +pub const _SC_XOPEN_ENH_I18N: c_int = 118; +pub const _SC_XOPEN_REALTIME: c_int = 119; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 120; +pub const _SC_XOPEN_SHM: c_int = 121; +pub const _SC_XOPEN_STREAMS: c_int = 122; +pub const _SC_XOPEN_UNIX: c_int = 123; +pub const _SC_XOPEN_UUCP: c_int = 124; +pub const _SC_XOPEN_VERSION: c_int = 125; +pub const _SC_BC_BASE_MAX: c_int = 129; +pub const _SC_BC_DIM_MAX: c_int = 130; +pub const _SC_BC_SCALE_MAX: c_int = 131; +pub const _SC_BC_STRING_MAX: c_int = 132; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 133; +pub const _SC_EXPR_NEST_MAX: c_int = 134; +pub const _SC_LINE_MAX: c_int = 135; +pub const _SC_LOGIN_NAME_MAX: c_int = 136; +pub const _SC_MQ_OPEN_MAX: c_int = 137; +pub const _SC_MQ_PRIO_MAX: c_int = 138; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 139; +pub const _SC_THREAD_KEYS_MAX: c_int = 140; +pub const _SC_THREAD_THREADS_MAX: c_int = 141; +pub const _SC_RE_DUP_MAX: c_int = 142; + +pub const PTHREAD_STACK_MIN: size_t = 8192; pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { flags: 0, @@ -1296,68 +1300,68 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { waiters: [0 as *mut _; 2], }; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = 0; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 3; +pub const PTHREAD_MUTEX_DEFAULT: c_int = 0; +pub const PTHREAD_MUTEX_NORMAL: c_int = 1; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 2; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 3; pub const FIOCLEX: c_ulong = 0; // FIXME: does not exist on Haiku! -pub const RUSAGE_CHILDREN: ::c_int = -1; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_SEQPACKET: ::c_int = 5; - -pub const SOL_SOCKET: ::c_int = -1; -pub const SO_ACCEPTCONN: ::c_int = 0x00000001; -pub const SO_BROADCAST: ::c_int = 0x00000002; -pub const SO_DEBUG: ::c_int = 0x00000004; -pub const SO_DONTROUTE: ::c_int = 0x00000008; -pub const SO_KEEPALIVE: ::c_int = 0x00000010; -pub const SO_OOBINLINE: ::c_int = 0x00000020; -pub const SO_REUSEADDR: ::c_int = 0x00000040; -pub const SO_REUSEPORT: ::c_int = 0x00000080; -pub const SO_USELOOPBACK: ::c_int = 0x00000100; -pub const SO_LINGER: ::c_int = 0x00000200; -pub const SO_SNDBUF: ::c_int = 0x40000001; -pub const SO_SNDLOWAT: ::c_int = 0x40000002; -pub const SO_SNDTIMEO: ::c_int = 0x40000003; -pub const SO_RCVBUF: ::c_int = 0x40000004; -pub const SO_RCVLOWAT: ::c_int = 0x40000005; -pub const SO_RCVTIMEO: ::c_int = 0x40000006; -pub const SO_ERROR: ::c_int = 0x40000007; -pub const SO_TYPE: ::c_int = 0x40000008; -pub const SO_NONBLOCK: ::c_int = 0x40000009; -pub const SO_BINDTODEVICE: ::c_int = 0x4000000a; -pub const SO_PEERCRED: ::c_int = 0x4000000b; - -pub const SCM_RIGHTS: ::c_int = 0x01; - -pub const SOMAXCONN: ::c_int = 32; - -pub const NI_MAXHOST: ::size_t = 1025; - -pub const WNOHANG: ::c_int = 0x01; -pub const WUNTRACED: ::c_int = 0x02; -pub const WCONTINUED: ::c_int = 0x04; -pub const WEXITED: ::c_int = 0x08; -pub const WSTOPPED: ::c_int = 0x10; -pub const WNOWAIT: ::c_int = 0x20; +pub const RUSAGE_CHILDREN: c_int = -1; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; +pub const SOCK_RAW: c_int = 3; +pub const SOCK_SEQPACKET: c_int = 5; + +pub const SOL_SOCKET: c_int = -1; +pub const SO_ACCEPTCONN: c_int = 0x00000001; +pub const SO_BROADCAST: c_int = 0x00000002; +pub const SO_DEBUG: c_int = 0x00000004; +pub const SO_DONTROUTE: c_int = 0x00000008; +pub const SO_KEEPALIVE: c_int = 0x00000010; +pub const SO_OOBINLINE: c_int = 0x00000020; +pub const SO_REUSEADDR: c_int = 0x00000040; +pub const SO_REUSEPORT: c_int = 0x00000080; +pub const SO_USELOOPBACK: c_int = 0x00000100; +pub const SO_LINGER: c_int = 0x00000200; +pub const SO_SNDBUF: c_int = 0x40000001; +pub const SO_SNDLOWAT: c_int = 0x40000002; +pub const SO_SNDTIMEO: c_int = 0x40000003; +pub const SO_RCVBUF: c_int = 0x40000004; +pub const SO_RCVLOWAT: c_int = 0x40000005; +pub const SO_RCVTIMEO: c_int = 0x40000006; +pub const SO_ERROR: c_int = 0x40000007; +pub const SO_TYPE: c_int = 0x40000008; +pub const SO_NONBLOCK: c_int = 0x40000009; +pub const SO_BINDTODEVICE: c_int = 0x4000000a; +pub const SO_PEERCRED: c_int = 0x4000000b; + +pub const SCM_RIGHTS: c_int = 0x01; + +pub const SOMAXCONN: c_int = 32; + +pub const NI_MAXHOST: size_t = 1025; + +pub const WNOHANG: c_int = 0x01; +pub const WUNTRACED: c_int = 0x02; +pub const WCONTINUED: c_int = 0x04; +pub const WEXITED: c_int = 0x08; +pub const WSTOPPED: c_int = 0x10; +pub const WNOWAIT: c_int = 0x20; // si_code values for SIGBUS signal -pub const BUS_ADRALN: ::c_int = 40; -pub const BUS_ADRERR: ::c_int = 41; -pub const BUS_OBJERR: ::c_int = 42; +pub const BUS_ADRALN: c_int = 40; +pub const BUS_ADRERR: c_int = 41; +pub const BUS_OBJERR: c_int = 42; // si_code values for SIGCHLD signal -pub const CLD_EXITED: ::c_int = 60; -pub const CLD_KILLED: ::c_int = 61; -pub const CLD_DUMPED: ::c_int = 62; -pub const CLD_TRAPPED: ::c_int = 63; -pub const CLD_STOPPED: ::c_int = 64; -pub const CLD_CONTINUED: ::c_int = 65; +pub const CLD_EXITED: c_int = 60; +pub const CLD_KILLED: c_int = 61; +pub const CLD_DUMPED: c_int = 62; +pub const CLD_TRAPPED: c_int = 63; +pub const CLD_STOPPED: c_int = 64; +pub const CLD_CONTINUED: c_int = 65; pub const P_ALL: idtype_t = 0; pub const P_PID: idtype_t = 1; @@ -1380,95 +1384,95 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VSUSP: usize = 10; -pub const IGNBRK: ::tcflag_t = 0x01; -pub const BRKINT: ::tcflag_t = 0x02; -pub const IGNPAR: ::tcflag_t = 0x04; -pub const PARMRK: ::tcflag_t = 0x08; -pub const INPCK: ::tcflag_t = 0x10; -pub const ISTRIP: ::tcflag_t = 0x20; -pub const INLCR: ::tcflag_t = 0x40; -pub const IGNCR: ::tcflag_t = 0x80; -pub const ICRNL: ::tcflag_t = 0x100; -pub const IUCLC: ::tcflag_t = 0x200; -pub const IXON: ::tcflag_t = 0x400; -pub const IXANY: ::tcflag_t = 0x800; -pub const IXOFF: ::tcflag_t = 0x1000; - -pub const OPOST: ::tcflag_t = 0x00000001; -pub const OLCUC: ::tcflag_t = 0x00000002; -pub const ONLCR: ::tcflag_t = 0x00000004; -pub const OCRNL: ::tcflag_t = 0x00000008; -pub const ONOCR: ::tcflag_t = 0x00000010; -pub const ONLRET: ::tcflag_t = 0x00000020; -pub const OFILL: ::tcflag_t = 0x00000040; -pub const OFDEL: ::tcflag_t = 0x00000080; -pub const NLDLY: ::tcflag_t = 0x00000100; -pub const NL0: ::tcflag_t = 0x00000000; -pub const NL1: ::tcflag_t = 0x00000100; -pub const CRDLY: ::tcflag_t = 0x00000600; -pub const CR0: ::tcflag_t = 0x00000000; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const TABDLY: ::tcflag_t = 0x00001800; -pub const TAB0: ::tcflag_t = 0x00000000; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const BSDLY: ::tcflag_t = 0x00002000; -pub const BS0: ::tcflag_t = 0x00000000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VTDLY: ::tcflag_t = 0x00004000; -pub const VT0: ::tcflag_t = 0x00000000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const FFDLY: ::tcflag_t = 0x00008000; -pub const FF0: ::tcflag_t = 0x00000000; -pub const FF1: ::tcflag_t = 0x00008000; - -pub const CSIZE: ::tcflag_t = 0x00000020; -pub const CS5: ::tcflag_t = 0x00000000; -pub const CS6: ::tcflag_t = 0x00000000; -pub const CS7: ::tcflag_t = 0x00000000; -pub const CS8: ::tcflag_t = 0x00000020; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const XLOBLK: ::tcflag_t = 0x00001000; -pub const CTSFLOW: ::tcflag_t = 0x00002000; -pub const RTSFLOW: ::tcflag_t = 0x00004000; -pub const CRTSCTS: ::tcflag_t = RTSFLOW | CTSFLOW; - -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const XCASE: ::tcflag_t = 0x00000004; -pub const ECHO: ::tcflag_t = 0x00000008; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const IEXTEN: ::tcflag_t = 0x00000200; -pub const ECHOCTL: ::tcflag_t = 0x00000400; -pub const ECHOPRT: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00001000; -pub const FLUSHO: ::tcflag_t = 0x00002000; -pub const PENDIN: ::tcflag_t = 0x00004000; - -pub const TCGB_CTS: ::c_int = 0x01; -pub const TCGB_DSR: ::c_int = 0x02; -pub const TCGB_RI: ::c_int = 0x04; -pub const TCGB_DCD: ::c_int = 0x08; -pub const TIOCM_CTS: ::c_int = TCGB_CTS; -pub const TIOCM_CD: ::c_int = TCGB_DCD; -pub const TIOCM_CAR: ::c_int = TCGB_DCD; -pub const TIOCM_RI: ::c_int = TCGB_RI; -pub const TIOCM_RNG: ::c_int = TCGB_RI; -pub const TIOCM_DSR: ::c_int = TCGB_DSR; -pub const TIOCM_DTR: ::c_int = 0x10; -pub const TIOCM_RTS: ::c_int = 0x20; +pub const IGNBRK: crate::tcflag_t = 0x01; +pub const BRKINT: crate::tcflag_t = 0x02; +pub const IGNPAR: crate::tcflag_t = 0x04; +pub const PARMRK: crate::tcflag_t = 0x08; +pub const INPCK: crate::tcflag_t = 0x10; +pub const ISTRIP: crate::tcflag_t = 0x20; +pub const INLCR: crate::tcflag_t = 0x40; +pub const IGNCR: crate::tcflag_t = 0x80; +pub const ICRNL: crate::tcflag_t = 0x100; +pub const IUCLC: crate::tcflag_t = 0x200; +pub const IXON: crate::tcflag_t = 0x400; +pub const IXANY: crate::tcflag_t = 0x800; +pub const IXOFF: crate::tcflag_t = 0x1000; + +pub const OPOST: crate::tcflag_t = 0x00000001; +pub const OLCUC: crate::tcflag_t = 0x00000002; +pub const ONLCR: crate::tcflag_t = 0x00000004; +pub const OCRNL: crate::tcflag_t = 0x00000008; +pub const ONOCR: crate::tcflag_t = 0x00000010; +pub const ONLRET: crate::tcflag_t = 0x00000020; +pub const OFILL: crate::tcflag_t = 0x00000040; +pub const OFDEL: crate::tcflag_t = 0x00000080; +pub const NLDLY: crate::tcflag_t = 0x00000100; +pub const NL0: crate::tcflag_t = 0x00000000; +pub const NL1: crate::tcflag_t = 0x00000100; +pub const CRDLY: crate::tcflag_t = 0x00000600; +pub const CR0: crate::tcflag_t = 0x00000000; +pub const CR1: crate::tcflag_t = 0x00000200; +pub const CR2: crate::tcflag_t = 0x00000400; +pub const CR3: crate::tcflag_t = 0x00000600; +pub const TABDLY: crate::tcflag_t = 0x00001800; +pub const TAB0: crate::tcflag_t = 0x00000000; +pub const TAB1: crate::tcflag_t = 0x00000800; +pub const TAB2: crate::tcflag_t = 0x00001000; +pub const TAB3: crate::tcflag_t = 0x00001800; +pub const BSDLY: crate::tcflag_t = 0x00002000; +pub const BS0: crate::tcflag_t = 0x00000000; +pub const BS1: crate::tcflag_t = 0x00002000; +pub const VTDLY: crate::tcflag_t = 0x00004000; +pub const VT0: crate::tcflag_t = 0x00000000; +pub const VT1: crate::tcflag_t = 0x00004000; +pub const FFDLY: crate::tcflag_t = 0x00008000; +pub const FF0: crate::tcflag_t = 0x00000000; +pub const FF1: crate::tcflag_t = 0x00008000; + +pub const CSIZE: crate::tcflag_t = 0x00000020; +pub const CS5: crate::tcflag_t = 0x00000000; +pub const CS6: crate::tcflag_t = 0x00000000; +pub const CS7: crate::tcflag_t = 0x00000000; +pub const CS8: crate::tcflag_t = 0x00000020; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const XLOBLK: crate::tcflag_t = 0x00001000; +pub const CTSFLOW: crate::tcflag_t = 0x00002000; +pub const RTSFLOW: crate::tcflag_t = 0x00004000; +pub const CRTSCTS: crate::tcflag_t = RTSFLOW | CTSFLOW; + +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const XCASE: crate::tcflag_t = 0x00000004; +pub const ECHO: crate::tcflag_t = 0x00000008; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const IEXTEN: crate::tcflag_t = 0x00000200; +pub const ECHOCTL: crate::tcflag_t = 0x00000400; +pub const ECHOPRT: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00001000; +pub const FLUSHO: crate::tcflag_t = 0x00002000; +pub const PENDIN: crate::tcflag_t = 0x00004000; + +pub const TCGB_CTS: c_int = 0x01; +pub const TCGB_DSR: c_int = 0x02; +pub const TCGB_RI: c_int = 0x04; +pub const TCGB_DCD: c_int = 0x08; +pub const TIOCM_CTS: c_int = TCGB_CTS; +pub const TIOCM_CD: c_int = TCGB_DCD; +pub const TIOCM_CAR: c_int = TCGB_DCD; +pub const TIOCM_RI: c_int = TCGB_RI; +pub const TIOCM_RNG: c_int = TCGB_RI; +pub const TIOCM_DSR: c_int = TCGB_DSR; +pub const TIOCM_DTR: c_int = 0x10; +pub const TIOCM_RTS: c_int = 0x20; pub const B0: speed_t = 0x00; pub const B50: speed_t = 0x01; @@ -1491,133 +1495,133 @@ pub const B115200: speed_t = 0x11; pub const B230400: speed_t = 0x12; pub const B31250: speed_t = 0x13; -pub const TCSANOW: ::c_int = 0x01; -pub const TCSADRAIN: ::c_int = 0x02; -pub const TCSAFLUSH: ::c_int = 0x04; - -pub const TCOOFF: ::c_int = 0x01; -pub const TCOON: ::c_int = 0x02; -pub const TCIOFF: ::c_int = 0x04; -pub const TCION: ::c_int = 0x08; - -pub const TCIFLUSH: ::c_int = 0x01; -pub const TCOFLUSH: ::c_int = 0x02; -pub const TCIOFLUSH: ::c_int = 0x03; - -pub const TCGETA: ::c_ulong = 0x8000; -pub const TCSETA: ::c_ulong = TCGETA + 1; -pub const TCSETAF: ::c_ulong = TCGETA + 2; -pub const TCSETAW: ::c_ulong = TCGETA + 3; -pub const TCSBRK: ::c_ulong = TCGETA + 5; -pub const TCFLSH: ::c_ulong = TCGETA + 6; -pub const TCXONC: ::c_ulong = TCGETA + 7; -pub const TCGETBITS: ::c_ulong = TCGETA + 9; -pub const TCSETDTR: ::c_ulong = TCGETA + 10; -pub const TCSETRTS: ::c_ulong = TCGETA + 11; -pub const TIOCGWINSZ: ::c_ulong = TCGETA + 12; -pub const TIOCSWINSZ: ::c_ulong = TCGETA + 13; -pub const TIOCGPGRP: ::c_ulong = TCGETA + 15; -pub const TIOCSPGRP: ::c_ulong = TCGETA + 16; -pub const TIOCSCTTY: ::c_ulong = TCGETA + 17; -pub const TIOCMGET: ::c_ulong = TCGETA + 18; -pub const TIOCMSET: ::c_ulong = TCGETA + 19; -pub const TIOCSBRK: ::c_ulong = TCGETA + 20; -pub const TIOCCBRK: ::c_ulong = TCGETA + 21; -pub const TIOCMBIS: ::c_ulong = TCGETA + 22; -pub const TIOCMBIC: ::c_ulong = TCGETA + 23; -pub const TIOCGSID: ::c_ulong = TCGETA + 24; -pub const TIOCOUTQ: ::c_ulong = TCGETA + 25; -pub const TIOCEXCL: ::c_ulong = TCGETA + 26; -pub const TIOCNXCL: ::c_ulong = TCGETA + 27; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; +pub const TCSANOW: c_int = 0x01; +pub const TCSADRAIN: c_int = 0x02; +pub const TCSAFLUSH: c_int = 0x04; + +pub const TCOOFF: c_int = 0x01; +pub const TCOON: c_int = 0x02; +pub const TCIOFF: c_int = 0x04; +pub const TCION: c_int = 0x08; + +pub const TCIFLUSH: c_int = 0x01; +pub const TCOFLUSH: c_int = 0x02; +pub const TCIOFLUSH: c_int = 0x03; + +pub const TCGETA: c_ulong = 0x8000; +pub const TCSETA: c_ulong = TCGETA + 1; +pub const TCSETAF: c_ulong = TCGETA + 2; +pub const TCSETAW: c_ulong = TCGETA + 3; +pub const TCSBRK: c_ulong = TCGETA + 5; +pub const TCFLSH: c_ulong = TCGETA + 6; +pub const TCXONC: c_ulong = TCGETA + 7; +pub const TCGETBITS: c_ulong = TCGETA + 9; +pub const TCSETDTR: c_ulong = TCGETA + 10; +pub const TCSETRTS: c_ulong = TCGETA + 11; +pub const TIOCGWINSZ: c_ulong = TCGETA + 12; +pub const TIOCSWINSZ: c_ulong = TCGETA + 13; +pub const TIOCGPGRP: c_ulong = TCGETA + 15; +pub const TIOCSPGRP: c_ulong = TCGETA + 16; +pub const TIOCSCTTY: c_ulong = TCGETA + 17; +pub const TIOCMGET: c_ulong = TCGETA + 18; +pub const TIOCMSET: c_ulong = TCGETA + 19; +pub const TIOCSBRK: c_ulong = TCGETA + 20; +pub const TIOCCBRK: c_ulong = TCGETA + 21; +pub const TIOCMBIS: c_ulong = TCGETA + 22; +pub const TIOCMBIC: c_ulong = TCGETA + 23; +pub const TIOCGSID: c_ulong = TCGETA + 24; +pub const TIOCOUTQ: c_ulong = TCGETA + 25; +pub const TIOCEXCL: c_ulong = TCGETA + 26; +pub const TIOCNXCL: c_ulong = TCGETA + 27; + +pub const PRIO_PROCESS: c_int = 0; +pub const PRIO_PGRP: c_int = 1; +pub const PRIO_USER: c_int = 2; // utmpx entry types -pub const EMPTY: ::c_short = 0; -pub const BOOT_TIME: ::c_short = 1; -pub const OLD_TIME: ::c_short = 2; -pub const NEW_TIME: ::c_short = 3; -pub const USER_PROCESS: ::c_short = 4; -pub const INIT_PROCESS: ::c_short = 5; -pub const LOGIN_PROCESS: ::c_short = 6; -pub const DEAD_PROCESS: ::c_short = 7; - -pub const LOG_PID: ::c_int = 1 << 12; -pub const LOG_CONS: ::c_int = 2 << 12; -pub const LOG_ODELAY: ::c_int = 4 << 12; -pub const LOG_NDELAY: ::c_int = 8 << 12; -pub const LOG_SERIAL: ::c_int = 16 << 12; -pub const LOG_PERROR: ::c_int = 32 << 12; -pub const LOG_NOWAIT: ::c_int = 64 << 12; +pub const EMPTY: c_short = 0; +pub const BOOT_TIME: c_short = 1; +pub const OLD_TIME: c_short = 2; +pub const NEW_TIME: c_short = 3; +pub const USER_PROCESS: c_short = 4; +pub const INIT_PROCESS: c_short = 5; +pub const LOGIN_PROCESS: c_short = 6; +pub const DEAD_PROCESS: c_short = 7; + +pub const LOG_PID: c_int = 1 << 12; +pub const LOG_CONS: c_int = 2 << 12; +pub const LOG_ODELAY: c_int = 4 << 12; +pub const LOG_NDELAY: c_int = 8 << 12; +pub const LOG_SERIAL: c_int = 16 << 12; +pub const LOG_PERROR: c_int = 32 << 12; +pub const LOG_NOWAIT: c_int = 64 << 12; // spawn.h // DIFF(main): changed to `c_short` in f62eb023ab -pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; -pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; -pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x10; -pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x20; -pub const POSIX_SPAWN_SETSID: ::c_int = 0x40; +pub const POSIX_SPAWN_RESETIDS: c_int = 0x01; +pub const POSIX_SPAWN_SETPGROUP: c_int = 0x02; +pub const POSIX_SPAWN_SETSIGDEF: c_int = 0x10; +pub const POSIX_SPAWN_SETSIGMASK: c_int = 0x20; +pub const POSIX_SPAWN_SETSID: c_int = 0x40; const_fn! { {const} fn CMSG_ALIGN(len: usize) -> usize { - len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) + len + crate::mem::size_of::() - 1 & !(crate::mem::size_of::() - 1) } } f! { pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= ::mem::size_of::() { + if (*mhdr).msg_controllen as usize >= crate::mem::size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { 0 as *mut cmsghdr } } - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar).offset(CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { + (cmsg as *mut c_uchar).offset(CMSG_ALIGN(crate::mem::size_of::()) as isize) } - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) as ::c_uint + pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(crate::mem::size_of::())) as c_uint } - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - CMSG_ALIGN(::mem::size_of::()) as ::c_uint + length + pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + CMSG_ALIGN(crate::mem::size_of::()) as c_uint + length } pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { - return ::CMSG_FIRSTHDR(mhdr); + return crate::CMSG_FIRSTHDR(mhdr); }; let next = cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize) - + CMSG_ALIGN(::mem::size_of::<::cmsghdr>()); + + CMSG_ALIGN(crate::mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { - 0 as *mut ::cmsghdr + 0 as *mut cmsghdr } else { - (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut ::cmsghdr + (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr } } - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { + pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } @@ -1630,536 +1634,522 @@ f! { } safe_f! { - pub {const} fn WIFEXITED(status: ::c_int) -> bool { + pub {const} fn WIFEXITED(status: c_int) -> bool { (status & !0xff) == 0 } - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + pub {const} fn WEXITSTATUS(status: c_int) -> c_int { status & 0xff } - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + pub {const} fn WIFSIGNALED(status: c_int) -> bool { ((status >> 8) & 0xff) != 0 } - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + pub {const} fn WTERMSIG(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + pub {const} fn WIFSTOPPED(status: c_int) -> bool { ((status >> 16) & 0xff) != 0 } - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + pub {const} fn WSTOPSIG(status: c_int) -> c_int { (status >> 16) & 0xff } // actually WIFCORED, but this is used everywhere else - pub {const} fn WCOREDUMP(status: ::c_int) -> bool { + pub {const} fn WCOREDUMP(status: c_int) -> bool { (status & 0x10000) != 0 } - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + pub {const} fn WIFCONTINUED(status: c_int) -> bool { (status & 0x20000) != 0 } } extern "C" { - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - pub fn getpriority(which: ::c_int, who: id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: id_t, priority: ::c_int) -> ::c_int; + pub fn getrlimit(resource: c_int, rlim: *mut crate::rlimit) -> c_int; + pub fn setrlimit(resource: c_int, rlim: *const crate::rlimit) -> c_int; + pub fn getpriority(which: c_int, who: id_t) -> c_int; + pub fn setpriority(which: c_int, who: id_t, priority: c_int) -> c_int; pub fn endusershell(); - pub fn getpass(prompt: *const ::c_char) -> *mut ::c_char; - pub fn getusershell() -> *mut ::c_char; - pub fn issetugid() -> ::c_int; + pub fn getpass(prompt: *const c_char) -> *mut c_char; + pub fn getusershell() -> *mut c_char; + pub fn issetugid() -> c_int; pub fn setusershell(); pub fn utimensat( - fd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - pub fn _errnop() -> *mut ::c_int; - - pub fn abs(i: ::c_int) -> ::c_int; - pub fn labs(i: ::c_long) -> ::c_long; - pub fn rand() -> ::c_int; - pub fn srand(seed: ::c_uint); - pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; - pub fn freeifaddrs(ifa: *mut ::ifaddrs); + fd: c_int, + path: *const c_char, + times: *const crate::timespec, + flag: c_int, + ) -> c_int; + pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; + pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; + pub fn _errnop() -> *mut c_int; + + pub fn abs(i: c_int) -> c_int; + pub fn labs(i: c_long) -> c_long; + pub fn rand() -> c_int; + pub fn srand(seed: c_uint); + pub fn getifaddrs(ifap: *mut *mut crate::ifaddrs) -> c_int; + pub fn freeifaddrs(ifa: *mut crate::ifaddrs); pub fn ppoll( - fds: *mut ::pollfd, - numfds: ::nfds_t, - timeout: *const ::timespec, + fds: *mut crate::pollfd, + numfds: crate::nfds_t, + timeout: *const crate::timespec, sigMask: *const sigset_t, - ) -> ::c_int; + ) -> c_int; pub fn getspent() -> *mut spwd; pub fn getspent_r( pwd: *mut spwd, - buf: *mut ::c_char, - bufferSize: ::size_t, + buf: *mut c_char, + bufferSize: size_t, res: *mut *mut spwd, - ) -> ::c_int; + ) -> c_int; pub fn setspent(); pub fn endspent(); - pub fn getspnam(name: *const ::c_char) -> *mut spwd; + pub fn getspnam(name: *const c_char) -> *mut spwd; pub fn getspnam_r( - name: *const ::c_char, + name: *const c_char, spwd: *mut spwd, - buffer: *mut ::c_char, - bufferSize: ::size_t, + buffer: *mut c_char, + bufferSize: size_t, res: *mut *mut spwd, - ) -> ::c_int; - pub fn sgetspent(line: *const ::c_char) -> *mut spwd; + ) -> c_int; + pub fn sgetspent(line: *const c_char) -> *mut spwd; pub fn sgetspent_r( - line: *const ::c_char, + line: *const c_char, spwd: *mut spwd, - buffer: *mut ::c_char, - bufferSize: ::size_t, + buffer: *mut c_char, + bufferSize: size_t, res: *mut *mut spwd, - ) -> ::c_int; - pub fn fgetspent(file: *mut ::FILE) -> *mut spwd; + ) -> c_int; + pub fn fgetspent(file: *mut crate::FILE) -> *mut spwd; pub fn fgetspent_r( - file: *mut ::FILE, + file: *mut crate::FILE, spwd: *mut spwd, - buffer: *mut ::c_char, - bufferSize: ::size_t, + buffer: *mut c_char, + bufferSize: size_t, res: *mut *mut spwd, - ) -> ::c_int; - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; - pub fn mknodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - dev: dev_t, - ) -> ::c_int; - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::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; - pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int; + ) -> c_int; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; + pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t, dev: dev_t) + -> c_int; + pub fn sem_destroy(sem: *mut sem_t) -> c_int; + pub fn sem_init(sem: *mut sem_t, pshared: c_int, value: c_uint) -> c_int; + + pub fn clock_getres(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + pub fn clock_settime(clk_id: crate::clockid_t, tp: *const crate::timespec) -> c_int; + pub fn clock_getcpuclockid(pid: crate::pid_t, clk_id: *mut crate::clockid_t) -> c_int; pub fn pthread_create( - thread: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; + thread: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + f: extern "C" fn(*mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; pub fn pthread_attr_getguardsize( - 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; + attr: *const crate::pthread_attr_t, + guardsize: *mut size_t, + ) -> c_int; + pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int; pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; + attr: *const crate::pthread_attr_t, + stackaddr: *mut *mut c_void, + stacksize: *mut size_t, + ) -> c_int; pub fn pthread_condattr_getclock( attr: *const pthread_condattr_t, clock_id: *mut clockid_t, - ) -> ::c_int; + ) -> c_int; pub fn pthread_condattr_setclock( attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - pub fn valloc(numBytes: ::size_t) -> *mut ::c_void; - pub fn malloc_usable_size(ptr: *mut ::c_void) -> ::size_t; - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int; - pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; - pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; + clock_id: crate::clockid_t, + ) -> c_int; + pub fn valloc(numBytes: size_t) -> *mut c_void; + pub fn malloc_usable_size(ptr: *mut c_void) -> size_t; + pub fn memalign(align: size_t, size: size_t) -> *mut c_void; + pub fn setgroups(ngroups: c_int, ptr: *const crate::gid_t) -> c_int; + pub fn initgroups(name: *const c_char, basegid: crate::gid_t) -> c_int; + pub fn ioctl(fd: c_int, request: c_ulong, ...) -> c_int; + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; + pub fn dirfd(dirp: *mut crate::DIR) -> c_int; pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - servlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; + sa: *const crate::sockaddr, + salen: crate::socklen_t, + host: *mut c_char, + hostlen: crate::socklen_t, + serv: *mut c_char, + servlen: crate::socklen_t, + flags: c_int, + ) -> c_int; pub fn pthread_mutex_timedlock( lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_sigqueue(thread: ::pthread_t, sig: ::c_int, value: ::sigval) -> ::c_int; - pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_trylock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_unlock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) - -> ::c_int; + abstime: *const crate::timespec, + ) -> c_int; + pub fn pthread_sigqueue(thread: crate::pthread_t, sig: c_int, value: crate::sigval) -> c_int; + pub fn pthread_spin_init(lock: *mut crate::pthread_spinlock_t, pshared: c_int) -> c_int; + pub fn pthread_spin_destroy(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn pthread_spin_lock(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn pthread_spin_trylock(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn pthread_spin_unlock(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn waitid( + idtype: idtype_t, + id: id_t, + infop: *mut crate::siginfo_t, + options: c_int, + ) -> c_int; pub fn glob( - pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t, - ) -> ::c_int; - pub fn globfree(pglob: *mut ::glob_t); - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advice: ::c_int) -> ::c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; + pattern: *const c_char, + flags: c_int, + errfunc: Option c_int>, + pglob: *mut crate::glob_t, + ) -> c_int; + pub fn globfree(pglob: *mut crate::glob_t); + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut c_void) -> c_int; + pub fn posix_madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; + pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advice: c_int) -> c_int; + pub fn posix_fallocate(fd: c_int, offset: off_t, len: off_t) -> c_int; - pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int; - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: crate::mode_t) -> c_int; + pub fn shm_unlink(name: *const c_char) -> c_int; - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + pub fn seekdir(dirp: *mut crate::DIR, loc: c_long); - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn telldir(dirp: *mut crate::DIR) -> c_long; + pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - - pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; - - pub fn writev(fd: ::c_int, iov: *const ::iovec, count: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, iov: *const ::iovec, count: ::c_int) -> ::ssize_t; - - pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + socket: c_int, + buf: *mut c_void, + len: size_t, + flags: c_int, + addr: *mut crate::sockaddr, + addrlen: *mut crate::socklen_t, + ) -> ssize_t; + pub fn mkstemps(template: *mut c_char, suffixlen: c_int) -> c_int; + pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char; + + pub fn bind( + socket: c_int, + address: *const crate::sockaddr, + address_len: crate::socklen_t, + ) -> c_int; + + pub fn writev(fd: c_int, iov: *const crate::iovec, count: c_int) -> ssize_t; + pub fn readv(fd: c_int, iov: *const crate::iovec, count: c_int) -> ssize_t; + + pub fn sendmsg(fd: c_int, msg: *const crate::msghdr, flags: c_int) -> ssize_t; + pub fn recvmsg(fd: c_int, msg: *mut crate::msghdr, flags: c_int) -> ssize_t; // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execvpe( - file: *const ::c_char, - argv: *const *const ::c_char, - environment: *const *const ::c_char, - ) -> ::c_int; + file: *const c_char, + argv: *const *const c_char, + environment: *const *const c_char, + ) -> c_int; pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; + gid: crate::gid_t, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; pub fn getgrouplist( - user: *const ::c_char, - basegroup: ::gid_t, - grouplist: *mut ::gid_t, - groupcount: *mut ::c_int, - ) -> ::c_int; - 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; + user: *const c_char, + basegroup: crate::gid_t, + grouplist: *mut crate::gid_t, + groupcount: *mut c_int, + ) -> c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> c_int; + pub fn sigsuspend(mask: *const crate::sigset_t) -> c_int; + pub fn sem_close(sem: *mut sem_t) -> c_int; + pub fn getdtablesize() -> c_int; pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; + name: *const c_char, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn pthread_sigmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; + pub fn sem_open(name: *const c_char, oflag: c_int, ...) -> *mut sem_t; + pub fn getgrnam(name: *const c_char) -> *mut crate::group; + pub fn pthread_kill(thread: crate::pthread_t, sig: c_int) -> c_int; + pub fn sem_unlink(name: *const c_char) -> c_int; pub fn getpwnam_r( - name: *const ::c_char, + name: *const c_char, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; pub fn getpwuid_r( - uid: ::uid_t, + uid: crate::uid_t, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; pub fn getpwent() -> *mut passwd; pub fn setpwent(); pub fn endpwent(); pub fn endgrent(); - pub fn getgrent() -> *mut ::group; + pub fn getgrent() -> *mut crate::group; pub fn setgrent(); - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int; pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn uname(buf: *mut ::utsname) -> ::c_int; + prepare: Option, + parent: Option, + child: Option, + ) -> c_int; + pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut crate::FILE; + pub fn sethostname(name: *const c_char, len: size_t) -> c_int; + pub fn uname(buf: *mut crate::utsname) -> c_int; pub fn getutxent() -> *mut utmpx; pub fn getutxid(ut: *const utmpx) -> *mut utmpx; pub fn getutxline(ut: *const utmpx) -> *mut utmpx; pub fn pututxline(ut: *const utmpx) -> *mut utmpx; pub fn setutxent(); pub fn endutxent(); - pub fn faccessat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::c_int, - flags: ::c_int, - ) -> ::c_int; + pub fn faccessat(dirfd: c_int, pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; pub fn sigtimedwait( set: *const sigset_t, info: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; + timeout: *const crate::timespec, + ) -> c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> c_int; - pub fn getitimer(which: ::c_int, curr_value: *mut ::itimerval) -> ::c_int; + pub fn getitimer(which: c_int, curr_value: *mut crate::itimerval) -> c_int; pub fn setitimer( - which: ::c_int, - new_value: *const ::itimerval, - old_value: *mut ::itimerval, - ) -> ::c_int; + which: c_int, + new_value: *const crate::itimerval, + old_value: *mut crate::itimerval, + ) -> c_int; - pub fn regcomp(preg: *mut regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int; + pub fn regcomp(preg: *mut regex_t, pattern: *const c_char, cflags: c_int) -> c_int; pub fn regexec( preg: *const regex_t, - input: *const ::c_char, - nmatch: ::size_t, + input: *const c_char, + nmatch: size_t, pmatch: *mut regmatch_t, - eflags: ::c_int, - ) -> ::c_int; + eflags: c_int, + ) -> c_int; pub fn regerror( - errcode: ::c_int, + errcode: c_int, preg: *const regex_t, - errbuf: *mut ::c_char, - errbuf_size: ::size_t, - ) -> ::size_t; + errbuf: *mut c_char, + errbuf_size: size_t, + ) -> size_t; pub fn regfree(preg: *mut regex_t); - pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int; - pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; + pub fn msgctl(msqid: c_int, cmd: c_int, buf: *mut msqid_ds) -> c_int; + pub fn msgget(key: crate::key_t, msgflg: c_int) -> c_int; pub fn msgrcv( - msqid: ::c_int, - msgp: *mut ::c_void, - msgsz: ::size_t, - msgtype: ::c_long, - msgflg: ::c_int, - ) -> ::ssize_t; - pub fn msgsnd( - msqid: ::c_int, - msgp: *const ::c_void, - msgsz: ::size_t, - msgflg: ::c_int, - ) -> ::c_int; - pub fn semget(key: ::key_t, nsems: ::c_int, semflg: ::c_int) -> ::c_int; - pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; - pub fn semop(semid: ::c_int, sops: *mut sembuf, nsops: ::size_t) -> ::c_int; - pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; - - pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; + msqid: c_int, + msgp: *mut c_void, + msgsz: size_t, + msgtype: c_long, + msgflg: c_int, + ) -> ssize_t; + pub fn msgsnd(msqid: c_int, msgp: *const c_void, msgsz: size_t, msgflg: c_int) -> c_int; + pub fn semget(key: crate::key_t, nsems: c_int, semflg: c_int) -> c_int; + pub fn semctl(semid: c_int, semnum: c_int, cmd: c_int, ...) -> c_int; + pub fn semop(semid: c_int, sops: *mut sembuf, nsops: size_t) -> c_int; + pub fn ftok(pathname: *const c_char, proj_id: c_int) -> crate::key_t; + + pub fn memrchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; pub fn lsearch( - key: *const ::c_void, - base: *mut ::c_void, - nelp: *mut ::size_t, - width: ::size_t, - compar: ::Option ::c_int>, - ) -> *mut ::c_void; + key: *const c_void, + base: *mut c_void, + nelp: *mut size_t, + width: size_t, + compar: Option c_int>, + ) -> *mut c_void; pub fn lfind( - key: *const ::c_void, - base: *const ::c_void, - nelp: *mut ::size_t, - width: ::size_t, - compar: ::Option ::c_int>, - ) -> *mut ::c_void; - pub fn hcreate(nelt: ::size_t) -> ::c_int; + key: *const c_void, + base: *const c_void, + nelp: *mut size_t, + width: size_t, + compar: Option c_int>, + ) -> *mut c_void; + pub fn hcreate(nelt: size_t) -> c_int; pub fn hdestroy(); - pub fn hsearch(entry: ::ENTRY, action: ::ACTION) -> *mut ::ENTRY; + pub fn hsearch(entry: crate::ENTRY, action: crate::ACTION) -> *mut crate::ENTRY; - pub fn drand48() -> ::c_double; - pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double; - pub fn lrand48() -> ::c_long; - pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn mrand48() -> ::c_long; - pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn srand48(seed: ::c_long); - pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort; - pub fn lcong48(p: *mut ::c_ushort); + pub fn drand48() -> c_double; + pub fn erand48(xseed: *mut c_ushort) -> c_double; + pub fn lrand48() -> c_long; + pub fn nrand48(xseed: *mut c_ushort) -> c_long; + pub fn mrand48() -> c_long; + pub fn jrand48(xseed: *mut c_ushort) -> c_long; + pub fn srand48(seed: c_long); + pub fn seed48(xseed: *mut c_ushort) -> *mut c_ushort; + pub fn lcong48(p: *mut c_ushort); - pub fn clearenv() -> ::c_int; - pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; + pub fn clearenv() -> c_int; + pub fn ctermid(s: *mut c_char) -> *mut c_char; pub fn sync(); - pub fn getpagesize() -> ::c_int; + pub fn getpagesize() -> c_int; - pub fn brk(addr: *mut ::c_void) -> ::c_int; - pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; + pub fn brk(addr: *mut c_void) -> c_int; + pub fn sbrk(increment: intptr_t) -> *mut c_void; 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; + pid: *mut crate::pid_t, + path: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::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_spawn_file_actions_init(file_actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawn_file_actions_destroy( - file_actions: *mut posix_spawn_file_actions_t, - ) -> ::c_int; + pid: *mut crate::pid_t, + file: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::posix_spawnattr_t, + argv: *const *mut c_char, + envp: *const *mut c_char, + ) -> c_int; + + pub fn posix_spawn_file_actions_init(file_actions: *mut posix_spawn_file_actions_t) -> c_int; + pub fn posix_spawn_file_actions_destroy(file_actions: *mut posix_spawn_file_actions_t) + -> c_int; pub fn posix_spawn_file_actions_addopen( file_actions: *mut posix_spawn_file_actions_t, - fildes: ::c_int, - path: *const ::c_char, - oflag: ::c_int, - mode: ::mode_t, - ) -> ::c_int; + fildes: c_int, + path: *const c_char, + oflag: c_int, + mode: crate::mode_t, + ) -> c_int; pub fn posix_spawn_file_actions_addclose( file_actions: *mut posix_spawn_file_actions_t, - fildes: ::c_int, - ) -> ::c_int; + fildes: c_int, + ) -> c_int; pub fn posix_spawn_file_actions_adddup2( file_actions: *mut posix_spawn_file_actions_t, - fildes: ::c_int, - newfildes: ::c_int, - ) -> ::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_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; + fildes: c_int, + newfildes: c_int, + ) -> 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_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, - _pgroup: *mut ::pid_t, - ) -> ::c_int; - pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, pgroup: ::pid_t) -> ::c_int; + _pgroup: *mut crate::pid_t, + ) -> c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, pgroup: crate::pid_t) -> c_int; pub fn posix_spawnattr_getsigdefault( attr: *const posix_spawnattr_t, - sigdefault: *mut ::sigset_t, - ) -> ::c_int; + sigdefault: *mut crate::sigset_t, + ) -> c_int; pub fn posix_spawnattr_setsigdefault( attr: *mut posix_spawnattr_t, - sigdefault: *const ::sigset_t, - ) -> ::c_int; + sigdefault: *const crate::sigset_t, + ) -> c_int; pub fn posix_spawnattr_getsigmask( attr: *const posix_spawnattr_t, - _sigmask: *mut ::sigset_t, - ) -> ::c_int; + _sigmask: *mut crate::sigset_t, + ) -> c_int; pub fn posix_spawnattr_setsigmask( attr: *mut posix_spawnattr_t, - sigmask: *const ::sigset_t, - ) -> ::c_int; + sigmask: *const crate::sigset_t, + ) -> c_int; pub fn getopt_long( - argc: ::c_int, + argc: c_int, argv: *const *mut c_char, optstring: *const c_char, longopts: *const option, - longindex: *mut ::c_int, - ) -> ::c_int; + longindex: *mut c_int, + ) -> c_int; pub fn strcasecmp_l( - string1: *const ::c_char, - string2: *const ::c_char, - locale: ::locale_t, - ) -> ::c_int; + string1: *const c_char, + string2: *const c_char, + locale: crate::locale_t, + ) -> c_int; pub fn strncasecmp_l( - string1: *const ::c_char, - string2: *const ::c_char, - length: ::size_t, - locale: ::locale_t, - ) -> ::c_int; + string1: *const c_char, + string2: *const c_char, + length: size_t, + locale: crate::locale_t, + ) -> c_int; - pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; + pub fn getentropy(buf: *mut c_void, buflen: size_t) -> c_int; } #[link(name = "bsd")] extern "C" { - pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int; + pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; pub fn forkpty( - amaster: *mut ::c_int, - name: *mut ::c_char, + amaster: *mut c_int, + name: *mut c_char, termp: *mut termios, - winp: *mut ::winsize, - ) -> ::pid_t; + winp: *mut crate::winsize, + ) -> crate::pid_t; pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, + amaster: *mut c_int, + aslave: *mut c_int, + name: *mut c_char, termp: *mut termios, - winp: *mut ::winsize, - ) -> ::c_int; - pub fn strsep(string: *mut *mut ::c_char, delimiters: *const ::c_char) -> *mut ::c_char; - pub fn explicit_bzero(buf: *mut ::c_void, len: ::size_t); - pub fn login_tty(_fd: ::c_int) -> ::c_int; + winp: *mut crate::winsize, + ) -> c_int; + pub fn strsep(string: *mut *mut c_char, delimiters: *const c_char) -> *mut c_char; + pub fn explicit_bzero(buf: *mut c_void, len: size_t); + pub fn login_tty(_fd: c_int) -> c_int; pub fn sl_init() -> *mut StringList; - pub fn sl_add(sl: *mut StringList, n: *mut ::c_char) -> ::c_int; - pub fn sl_free(sl: *mut StringList, i: ::c_int); - pub fn sl_find(sl: *mut StringList, n: *mut ::c_char) -> *mut ::c_char; + pub fn sl_add(sl: *mut StringList, n: *mut c_char) -> c_int; + pub fn sl_free(sl: *mut StringList, i: c_int); + pub fn sl_find(sl: *mut StringList, n: *mut c_char) -> *mut c_char; - pub fn getprogname() -> *const ::c_char; - pub fn setprogname(progname: *const ::c_char); + pub fn getprogname() -> *const c_char; + pub fn setprogname(progname: *const c_char); pub fn dl_iterate_phdr( - callback: ::Option< - unsafe extern "C" fn( - info: *mut dl_phdr_info, - size: usize, - data: *mut ::c_void, - ) -> ::c_int, + callback: Option< + unsafe extern "C" fn(info: *mut dl_phdr_info, size: usize, data: *mut c_void) -> c_int, >, - data: *mut ::c_void, - ) -> ::c_int; + data: *mut c_void, + ) -> c_int; pub fn arc4random() -> u32; pub fn arc4random_uniform(upper_bound: u32) -> u32; - pub fn arc4random_buf(buf: *mut ::c_void, n: ::size_t); + pub fn arc4random_buf(buf: *mut c_void, n: size_t); } #[link(name = "gnu")] extern "C" { pub fn memmem( - source: *const ::c_void, - sourceLength: ::size_t, - search: *const ::c_void, - searchLength: ::size_t, - ) -> *mut ::c_void; + source: *const c_void, + sourceLength: size_t, + search: *const c_void, + searchLength: size_t, + ) -> *mut c_void; - pub fn pthread_getattr_np(thread: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_getattr_np(thread: crate::pthread_t, attr: *mut crate::pthread_attr_t) -> c_int; 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; + thread: crate::pthread_t, + buffer: *mut c_char, + length: size_t, + ) -> c_int; + pub fn pthread_setname_np(thread: crate::pthread_t, name: *const c_char) -> c_int; } cfg_if! { diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs index e2997d1da986c..4d51a38e97f41 100644 --- a/src/unix/haiku/native.rs +++ b/src/unix/haiku/native.rs @@ -1,3 +1,5 @@ +use crate::{c_char, c_double, c_int, c_uint, c_ulong, c_void, off_t, size_t, ssize_t}; + // This module contains bindings to the native Haiku API. The Haiku API // originates from BeOS, and it was the original way to perform low level // system and IO operations. The POSIX API was in that era was like a @@ -38,7 +40,7 @@ pub type sem_id = i32; pub type team_id = i32; pub type thread_id = i32; -pub type thread_func = extern "C" fn(*mut ::c_void) -> status_t; +pub type thread_func = extern "C" fn(*mut c_void) -> status_t; // kernel/image.h pub type image_id = i32; @@ -247,7 +249,7 @@ s! { // kernel/OS.h pub struct area_info { pub area: area_id, - pub name: [::c_char; B_OS_NAME_LENGTH], + pub name: [c_char; B_OS_NAME_LENGTH], pub size: usize, pub lock: u32, pub protection: u32, @@ -256,23 +258,23 @@ s! { pub copy_count: u32, pub in_count: u32, pub out_count: u32, - pub address: *mut ::c_void, + pub address: *mut c_void, } pub struct port_info { pub port: port_id, pub team: team_id, - pub name: [::c_char; B_OS_NAME_LENGTH], + pub name: [c_char; B_OS_NAME_LENGTH], pub capacity: i32, pub queue_count: i32, pub total_count: i32, } pub struct port_message_info { - pub size: ::size_t, - pub sender: ::uid_t, - pub sender_group: ::gid_t, - pub sender_team: ::team_id, + pub size: size_t, + pub sender: crate::uid_t, + pub sender_group: crate::gid_t, + pub sender_team: crate::team_id, } pub struct team_info { @@ -283,15 +285,15 @@ s! { pub debugger_nub_thread: thread_id, pub debugger_nub_port: port_id, pub argc: i32, - pub args: [::c_char; 64], - pub uid: ::uid_t, - pub gid: ::gid_t, + pub args: [c_char; 64], + pub uid: crate::uid_t, + pub gid: crate::gid_t, } pub struct sem_info { pub sem: sem_id, pub team: team_id, - pub name: [::c_char; B_OS_NAME_LENGTH], + pub name: [c_char; B_OS_NAME_LENGTH], pub count: i32, pub latest_holder: thread_id, } @@ -304,14 +306,14 @@ s! { pub struct thread_info { pub thread: thread_id, pub team: team_id, - pub name: [::c_char; B_OS_NAME_LENGTH], + pub name: [c_char; B_OS_NAME_LENGTH], pub state: thread_state, pub priority: i32, pub sem: sem_id, pub user_time: bigtime_t, pub kernel_time: bigtime_t, - pub stack_base: *mut ::c_void, - pub stack_end: *mut ::c_void, + pub stack_base: *mut c_void, + pub stack_end: *mut c_void, } pub struct cpu_info { @@ -341,9 +343,9 @@ s! { pub used_threads: u32, pub max_teams: u32, pub used_teams: u32, - pub kernel_name: [::c_char; B_FILE_NAME_LENGTH], - pub kernel_build_date: [::c_char; B_OS_NAME_LENGTH], - pub kernel_build_time: [::c_char; B_OS_NAME_LENGTH], + pub kernel_name: [c_char; B_FILE_NAME_LENGTH], + pub kernel_build_date: [c_char; B_OS_NAME_LENGTH], + pub kernel_build_time: [c_char; B_OS_NAME_LENGTH], pub kernel_version: i64, pub abi: u32, } @@ -370,48 +372,48 @@ s! { // kernel/fs_attr.h pub struct attr_info { pub type_: u32, - pub size: ::off_t, + pub size: off_t, } // kernel/fs_index.h pub struct index_info { pub type_: u32, - pub size: ::off_t, - pub modification_time: ::time_t, - pub creation_time: ::time_t, - pub uid: ::uid_t, - pub gid: ::gid_t, + pub size: off_t, + pub modification_time: crate::time_t, + pub creation_time: crate::time_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, } //kernel/fs_info.h pub struct fs_info { - pub dev: ::dev_t, - pub root: ::ino_t, + pub dev: crate::dev_t, + pub root: crate::ino_t, pub flags: u32, - pub block_size: ::off_t, - pub io_size: ::off_t, - pub total_blocks: ::off_t, - pub free_blocks: ::off_t, - pub total_nodes: ::off_t, - pub free_nodes: ::off_t, - pub device_name: [::c_char; 128], - pub volume_name: [::c_char; B_FILE_NAME_LENGTH], - pub fsh_name: [::c_char; B_OS_NAME_LENGTH], + pub block_size: off_t, + pub io_size: off_t, + pub total_blocks: off_t, + pub free_blocks: off_t, + pub total_nodes: off_t, + pub free_nodes: off_t, + pub device_name: [c_char; 128], + pub volume_name: [c_char; B_FILE_NAME_LENGTH], + pub fsh_name: [c_char; B_OS_NAME_LENGTH], } // kernel/image.h pub struct image_info { pub id: image_id, - pub image_type: ::c_int, + pub image_type: c_int, pub sequence: i32, pub init_order: i32, pub init_routine: extern "C" fn(), pub term_routine: extern "C" fn(), - pub device: ::dev_t, - pub node: ::ino_t, - pub name: [::c_char; ::PATH_MAX as usize], - pub text: *mut ::c_void, - pub data: *mut ::c_void, + pub device: crate::dev_t, + pub node: crate::ino_t, + pub name: [c_char; crate::PATH_MAX as usize], + pub text: *mut c_void, + pub data: *mut c_void, pub text_size: i32, pub data_size: i32, pub api_version: i32, @@ -420,7 +422,7 @@ s! { pub struct __c_anonymous_eax_0 { pub max_eax: u32, - pub vendor_id: [::c_char; 12], + pub vendor_id: [c_char; 12], } pub struct __c_anonymous_eax_1 { @@ -465,7 +467,7 @@ s_no_extra_traits! { pub eax_1: __c_anonymous_eax_1, pub eax_2: __c_anonymous_eax_2, pub eax_3: __c_anonymous_eax_3, - pub as_chars: [::c_char; 16], + pub as_chars: [c_char; 16], pub regs: __c_anonymous_regs, } @@ -498,8 +500,8 @@ cfg_if! { } } impl Eq for cpuid_info {} - impl ::fmt::Debug for cpuid_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for cpuid_info { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { unsafe { f.debug_struct("cpuid_info") .field("eax_0", &self.eax_0) @@ -523,8 +525,8 @@ cfg_if! { } } impl Eq for __c_anonymous_cpu_topology_info_data {} - impl ::fmt::Debug for __c_anonymous_cpu_topology_info_data { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_cpu_topology_info_data { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { unsafe { f.debug_struct("__c_anonymous_cpu_topology_info_data") .field("root", &self.root) @@ -542,8 +544,8 @@ cfg_if! { } impl Eq for cpu_topology_node_info {} - impl ::fmt::Debug for cpu_topology_node_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for cpu_topology_node_info { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("cpu_topology_node_info") .field("id", &self.id) .field("type", &self.type_) @@ -666,21 +668,21 @@ pub const B_SYMBOL_TYPE_ANY: i32 = 0x5; // storage/StorageDefs.h pub const B_DEV_NAME_LENGTH: usize = 128; -pub const B_FILE_NAME_LENGTH: usize = ::FILENAME_MAX as usize; -pub const B_PATH_NAME_LENGTH: usize = ::PATH_MAX as usize; +pub const B_FILE_NAME_LENGTH: usize = crate::FILENAME_MAX as usize; +pub const B_PATH_NAME_LENGTH: usize = crate::PATH_MAX as usize; pub const B_ATTR_NAME_LENGTH: usize = B_FILE_NAME_LENGTH - 1; pub const B_MIME_TYPE_LENGTH: usize = B_ATTR_NAME_LENGTH - 15; pub const B_MAX_SYMLINKS: usize = 16; // Haiku open modes in BFile are passed as u32 -pub const B_READ_ONLY: u32 = ::O_RDONLY as u32; -pub const B_WRITE_ONLY: u32 = ::O_WRONLY as u32; -pub const B_READ_WRITE: u32 = ::O_RDWR as u32; +pub const B_READ_ONLY: u32 = crate::O_RDONLY as u32; +pub const B_WRITE_ONLY: u32 = crate::O_WRONLY as u32; +pub const B_READ_WRITE: u32 = crate::O_RDWR as u32; -pub const B_FAIL_IF_EXISTS: u32 = ::O_EXCL as u32; -pub const B_CREATE_FILE: u32 = ::O_CREAT as u32; -pub const B_ERASE_FILE: u32 = ::O_TRUNC as u32; -pub const B_OPEN_AT_END: u32 = ::O_APPEND as u32; +pub const B_FAIL_IF_EXISTS: u32 = crate::O_EXCL as u32; +pub const B_CREATE_FILE: u32 = crate::O_CREAT as u32; +pub const B_ERASE_FILE: u32 = crate::O_TRUNC as u32; +pub const B_OPEN_AT_END: u32 = crate::O_APPEND as u32; pub const B_FILE_NODE: u32 = 0x01; pub const B_SYMLINK_NODE: u32 = 0x02; @@ -791,12 +793,12 @@ pub const B_PARTIAL_READ: status_t = B_STORAGE_ERROR_BASE + 16; pub const B_PARTIAL_WRITE: status_t = B_STORAGE_ERROR_BASE + 17; // Mapped posix errors -pub const B_BUFFER_OVERFLOW: status_t = ::EOVERFLOW; -pub const B_TOO_MANY_ARGS: status_t = ::E2BIG; -pub const B_FILE_TOO_LARGE: status_t = ::EFBIG; -pub const B_RESULT_NOT_REPRESENTABLE: status_t = ::ERANGE; -pub const B_DEVICE_NOT_FOUND: status_t = ::ENODEV; -pub const B_NOT_SUPPORTED: status_t = ::EOPNOTSUPP; +pub const B_BUFFER_OVERFLOW: status_t = crate::EOVERFLOW; +pub const B_TOO_MANY_ARGS: status_t = crate::E2BIG; +pub const B_FILE_TOO_LARGE: status_t = crate::EFBIG; +pub const B_RESULT_NOT_REPRESENTABLE: status_t = crate::ERANGE; +pub const B_DEVICE_NOT_FOUND: status_t = crate::ENODEV; +pub const B_NOT_SUPPORTED: status_t = crate::EOPNOTSUPP; // Media kit errors pub const B_STREAM_NOT_FOUND: status_t = B_MEDIA_ERROR_BASE + 0; @@ -943,27 +945,27 @@ pub const B_XATTR_TYPE: u32 = haiku_constant!('X', 'A', 'T', 'R'); pub const B_NETWORK_ADDRESS_TYPE: u32 = haiku_constant!('N', 'W', 'A', 'D'); pub const B_MIME_STRING_TYPE: u32 = haiku_constant!('M', 'I', 'M', 'S'); pub const B_ASCII_TYPE: u32 = haiku_constant!('T', 'E', 'X', 'T'); -pub const B_APP_IMAGE_SYMBOL: *const ::c_void = core::ptr::null(); +pub const B_APP_IMAGE_SYMBOL: *const c_void = core::ptr::null(); extern "C" { // kernel/OS.h pub fn create_area( - name: *const ::c_char, - startAddress: *mut *mut ::c_void, + name: *const c_char, + startAddress: *mut *mut c_void, addressSpec: u32, size: usize, lock: u32, protection: u32, ) -> area_id; pub fn clone_area( - name: *const ::c_char, - destAddress: *mut *mut ::c_void, + name: *const c_char, + destAddress: *mut *mut c_void, addressSpec: u32, protection: u32, source: area_id, ) -> area_id; - pub fn find_area(name: *const ::c_char) -> area_id; - pub fn area_for(address: *mut ::c_void) -> area_id; + pub fn find_area(name: *const c_char) -> area_id; + pub fn area_for(address: *mut c_void) -> area_id; pub fn delete_area(id: area_id) -> status_t; pub fn resize_area(id: area_id, newSize: usize) -> status_t; pub fn set_area_protection(id: area_id, newProtection: u32) -> status_t; @@ -975,59 +977,59 @@ extern "C" { size: usize, ) -> status_t; - pub fn create_port(capacity: i32, name: *const ::c_char) -> port_id; - pub fn find_port(name: *const ::c_char) -> port_id; + pub fn create_port(capacity: i32, name: *const c_char) -> port_id; + pub fn find_port(name: *const c_char) -> port_id; pub fn read_port( port: port_id, code: *mut i32, - buffer: *mut ::c_void, - bufferSize: ::size_t, - ) -> ::ssize_t; + buffer: *mut c_void, + bufferSize: size_t, + ) -> ssize_t; pub fn read_port_etc( port: port_id, code: *mut i32, - buffer: *mut ::c_void, - bufferSize: ::size_t, + buffer: *mut c_void, + bufferSize: size_t, flags: u32, timeout: bigtime_t, - ) -> ::ssize_t; + ) -> ssize_t; pub fn write_port( port: port_id, code: i32, - buffer: *const ::c_void, - bufferSize: ::size_t, + buffer: *const c_void, + bufferSize: size_t, ) -> status_t; pub fn write_port_etc( port: port_id, code: i32, - buffer: *const ::c_void, - bufferSize: ::size_t, + buffer: *const c_void, + bufferSize: size_t, flags: u32, timeout: bigtime_t, ) -> status_t; pub fn close_port(port: port_id) -> status_t; pub fn delete_port(port: port_id) -> status_t; - pub fn port_buffer_size(port: port_id) -> ::ssize_t; - pub fn port_buffer_size_etc(port: port_id, flags: u32, timeout: bigtime_t) -> ::ssize_t; - pub fn port_count(port: port_id) -> ::ssize_t; + pub fn port_buffer_size(port: port_id) -> ssize_t; + pub fn port_buffer_size_etc(port: port_id, flags: u32, timeout: bigtime_t) -> ssize_t; + pub fn port_count(port: port_id) -> ssize_t; pub fn set_port_owner(port: port_id, team: team_id) -> status_t; - pub fn _get_port_info(port: port_id, buf: *mut port_info, portInfoSize: ::size_t) -> status_t; + pub fn _get_port_info(port: port_id, buf: *mut port_info, portInfoSize: size_t) -> status_t; pub fn _get_next_port_info( port: port_id, cookie: *mut i32, portInfo: *mut port_info, - portInfoSize: ::size_t, + portInfoSize: size_t, ) -> status_t; pub fn _get_port_message_info_etc( port: port_id, info: *mut port_message_info, - infoSize: ::size_t, + infoSize: size_t, flags: u32, timeout: bigtime_t, ) -> status_t; - pub fn create_sem(count: i32, name: *const ::c_char) -> sem_id; + pub fn create_sem(count: i32, name: *const c_char) -> sem_id; pub fn delete_sem(id: sem_id) -> status_t; pub fn acquire_sem(id: sem_id) -> status_t; pub fn acquire_sem_etc(id: sem_id, count: i32, flags: u32, timeout: bigtime_t) -> status_t; @@ -1043,42 +1045,42 @@ extern "C" { ) -> status_t; pub fn get_sem_count(id: sem_id, threadCount: *mut i32) -> status_t; pub fn set_sem_owner(id: sem_id, team: team_id) -> status_t; - pub fn _get_sem_info(id: sem_id, info: *mut sem_info, infoSize: ::size_t) -> status_t; + pub fn _get_sem_info(id: sem_id, info: *mut sem_info, infoSize: size_t) -> status_t; pub fn _get_next_sem_info( team: team_id, cookie: *mut i32, info: *mut sem_info, - infoSize: ::size_t, + infoSize: size_t, ) -> status_t; pub fn kill_team(team: team_id) -> status_t; - pub fn _get_team_info(team: team_id, info: *mut team_info, size: ::size_t) -> status_t; - pub fn _get_next_team_info(cookie: *mut i32, info: *mut team_info, size: ::size_t) -> status_t; + pub fn _get_team_info(team: team_id, info: *mut team_info, size: size_t) -> status_t; + pub fn _get_next_team_info(cookie: *mut i32, info: *mut team_info, size: size_t) -> status_t; pub fn spawn_thread( func: thread_func, - name: *const ::c_char, + name: *const c_char, priority: i32, - data: *mut ::c_void, + data: *mut c_void, ) -> thread_id; pub fn kill_thread(thread: thread_id) -> status_t; pub fn resume_thread(thread: thread_id) -> status_t; pub fn suspend_thread(thread: thread_id) -> status_t; - pub fn rename_thread(thread: thread_id, newName: *const ::c_char) -> status_t; + pub fn rename_thread(thread: thread_id, newName: *const c_char) -> status_t; pub fn set_thread_priority(thread: thread_id, newPriority: i32) -> status_t; pub fn suggest_thread_priority( what: u32, period: i32, - jitter: ::bigtime_t, - length: ::bigtime_t, + jitter: crate::bigtime_t, + length: crate::bigtime_t, ) -> i32; - pub fn estimate_max_scheduling_latency(th: ::thread_id) -> ::bigtime_t; + pub fn estimate_max_scheduling_latency(th: crate::thread_id) -> crate::bigtime_t; pub fn exit_thread(status: status_t); pub fn wait_for_thread(thread: thread_id, returnValue: *mut status_t) -> status_t; - pub fn on_exit_thread(callback: extern "C" fn(*mut ::c_void), data: *mut ::c_void) -> status_t; + pub fn on_exit_thread(callback: extern "C" fn(*mut c_void), data: *mut c_void) -> status_t; - pub fn find_thread(name: *const ::c_char) -> thread_id; + pub fn find_thread(name: *const c_char) -> thread_id; pub fn get_scheduler_mode() -> i32; pub fn set_scheduler_mode(mode: i32) -> status_t; @@ -1086,244 +1088,237 @@ extern "C" { pub fn send_data( thread: thread_id, code: i32, - buffer: *const ::c_void, - bufferSize: ::size_t, + buffer: *const c_void, + bufferSize: size_t, ) -> status_t; - pub fn receive_data(sender: *mut thread_id, buffer: *mut ::c_void, bufferSize: ::size_t) - -> i32; + pub fn receive_data(sender: *mut thread_id, buffer: *mut c_void, bufferSize: size_t) -> i32; pub fn has_data(thread: thread_id) -> bool; pub fn snooze(amount: bigtime_t) -> status_t; - pub fn snooze_etc(amount: bigtime_t, timeBase: ::c_int, flags: u32) -> status_t; - pub fn snooze_until(time: bigtime_t, timeBase: ::c_int) -> status_t; + pub fn snooze_etc(amount: bigtime_t, timeBase: c_int, flags: u32) -> status_t; + pub fn snooze_until(time: bigtime_t, timeBase: c_int) -> status_t; - pub fn _get_thread_info(id: thread_id, info: *mut thread_info, size: ::size_t) -> status_t; + pub fn _get_thread_info(id: thread_id, info: *mut thread_info, size: size_t) -> status_t; pub fn _get_next_thread_info( team: team_id, cookie: *mut i32, info: *mut thread_info, - size: ::size_t, + size: size_t, ) -> status_t; - pub fn get_pthread_thread_id(thread: ::pthread_t) -> thread_id; + pub fn get_pthread_thread_id(thread: crate::pthread_t) -> thread_id; pub fn _get_team_usage_info( team: team_id, who: i32, info: *mut team_usage_info, - size: ::size_t, + size: size_t, ) -> status_t; - pub fn real_time_clock() -> ::c_ulong; - pub fn set_real_time_clock(secsSinceJan1st1970: ::c_ulong); + pub fn real_time_clock() -> c_ulong; + pub fn set_real_time_clock(secsSinceJan1st1970: c_ulong); pub fn real_time_clock_usecs() -> bigtime_t; pub fn system_time() -> bigtime_t; pub fn system_time_nsecs() -> nanotime_t; // set_timezone() is deprecated and a no-op pub fn set_alarm(when: bigtime_t, flags: u32) -> bigtime_t; - pub fn debugger(message: *const ::c_char); - pub fn disable_debugger(state: ::c_int) -> ::c_int; + pub fn debugger(message: *const c_char); + pub fn disable_debugger(state: c_int) -> c_int; pub fn get_system_info(info: *mut system_info) -> status_t; pub fn _get_cpu_info_etc( firstCPU: u32, cpuCount: u32, info: *mut cpu_info, - size: ::size_t, + size: size_t, ) -> status_t; pub fn get_cpu_topology_info( topologyInfos: *mut cpu_topology_node_info, topologyInfoCount: *mut u32, ) -> status_t; pub fn is_computer_on() -> i32; - pub fn is_computer_on_fire() -> ::c_double; - pub fn send_signal(threadID: thread_id, signal: ::c_uint) -> ::c_int; - pub fn set_signal_stack(base: *mut ::c_void, size: ::size_t); + pub fn is_computer_on_fire() -> c_double; + pub fn send_signal(threadID: thread_id, signal: c_uint) -> c_int; + pub fn set_signal_stack(base: *mut c_void, size: size_t); - pub fn wait_for_objects(infos: *mut object_wait_info, numInfos: ::c_int) -> ::ssize_t; + pub fn wait_for_objects(infos: *mut object_wait_info, numInfos: c_int) -> ssize_t; pub fn wait_for_objects_etc( infos: *mut object_wait_info, - numInfos: ::c_int, + numInfos: c_int, flags: u32, timeout: bigtime_t, - ) -> ::ssize_t; + ) -> ssize_t; // kernel/fs_attr.h pub fn fs_read_attr( - fd: ::c_int, - attribute: *const ::c_char, + fd: c_int, + attribute: *const c_char, type_: u32, - pos: ::off_t, - buffer: *mut ::c_void, - readBytes: ::size_t, - ) -> ::ssize_t; + pos: off_t, + buffer: *mut c_void, + readBytes: size_t, + ) -> ssize_t; pub fn fs_write_attr( - fd: ::c_int, - attribute: *const ::c_char, + fd: c_int, + attribute: *const c_char, type_: u32, - pos: ::off_t, - buffer: *const ::c_void, - writeBytes: ::size_t, - ) -> ::ssize_t; - pub fn fs_remove_attr(fd: ::c_int, attribute: *const ::c_char) -> ::c_int; - pub fn fs_stat_attr( - fd: ::c_int, - attribute: *const ::c_char, - attrInfo: *mut attr_info, - ) -> ::c_int; + pos: off_t, + buffer: *const c_void, + writeBytes: size_t, + ) -> ssize_t; + pub fn fs_remove_attr(fd: c_int, attribute: *const c_char) -> c_int; + pub fn fs_stat_attr(fd: c_int, attribute: *const c_char, attrInfo: *mut attr_info) -> c_int; pub fn fs_open_attr( - path: *const ::c_char, - attribute: *const ::c_char, - type_: u32, - openMode: ::c_int, - ) -> ::c_int; - pub fn fs_fopen_attr( - fd: ::c_int, - attribute: *const ::c_char, + path: *const c_char, + attribute: *const c_char, type_: u32, - openMode: ::c_int, - ) -> ::c_int; - pub fn fs_close_attr(fd: ::c_int) -> ::c_int; - - pub fn fs_open_attr_dir(path: *const ::c_char) -> *mut ::DIR; - pub fn fs_lopen_attr_dir(path: *const ::c_char) -> *mut ::DIR; - pub fn fs_fopen_attr_dir(fd: ::c_int) -> *mut ::DIR; - pub fn fs_close_attr_dir(dir: *mut ::DIR) -> ::c_int; - pub fn fs_read_attr_dir(dir: *mut ::DIR) -> *mut ::dirent; - pub fn fs_rewind_attr_dir(dir: *mut ::DIR); + openMode: c_int, + ) -> c_int; + pub fn fs_fopen_attr(fd: c_int, attribute: *const c_char, type_: u32, openMode: c_int) + -> c_int; + pub fn fs_close_attr(fd: c_int) -> c_int; + + pub fn fs_open_attr_dir(path: *const c_char) -> *mut crate::DIR; + pub fn fs_lopen_attr_dir(path: *const c_char) -> *mut crate::DIR; + pub fn fs_fopen_attr_dir(fd: c_int) -> *mut crate::DIR; + pub fn fs_close_attr_dir(dir: *mut crate::DIR) -> c_int; + pub fn fs_read_attr_dir(dir: *mut crate::DIR) -> *mut crate::dirent; + pub fn fs_rewind_attr_dir(dir: *mut crate::DIR); // kernel/fs_image.h pub fn fs_create_index( - device: ::dev_t, - name: *const ::c_char, + device: crate::dev_t, + name: *const c_char, type_: u32, flags: u32, - ) -> ::c_int; - pub fn fs_remove_index(device: ::dev_t, name: *const ::c_char) -> ::c_int; + ) -> c_int; + pub fn fs_remove_index(device: crate::dev_t, name: *const c_char) -> c_int; pub fn fs_stat_index( - device: ::dev_t, - name: *const ::c_char, + device: crate::dev_t, + name: *const c_char, indexInfo: *mut index_info, - ) -> ::c_int; + ) -> c_int; - pub fn fs_open_index_dir(device: ::dev_t) -> *mut ::DIR; - pub fn fs_close_index_dir(indexDirectory: *mut ::DIR) -> ::c_int; - pub fn fs_read_index_dir(indexDirectory: *mut ::DIR) -> *mut ::dirent; - pub fn fs_rewind_index_dir(indexDirectory: *mut ::DIR); + pub fn fs_open_index_dir(device: crate::dev_t) -> *mut crate::DIR; + pub fn fs_close_index_dir(indexDirectory: *mut crate::DIR) -> c_int; + pub fn fs_read_index_dir(indexDirectory: *mut crate::DIR) -> *mut crate::dirent; + pub fn fs_rewind_index_dir(indexDirectory: *mut crate::DIR); // kernel/fs_info.h - pub fn dev_for_path(path: *const ::c_char) -> ::dev_t; - pub fn next_dev(pos: *mut i32) -> ::dev_t; - pub fn fs_stat_dev(dev: ::dev_t, info: *mut fs_info) -> ::c_int; + pub fn dev_for_path(path: *const c_char) -> crate::dev_t; + pub fn next_dev(pos: *mut i32) -> crate::dev_t; + pub fn fs_stat_dev(dev: crate::dev_t, info: *mut fs_info) -> c_int; // kernel/fs_query.h - pub fn fs_open_query(device: ::dev_t, query: *const ::c_char, flags: u32) -> *mut ::DIR; + pub fn fs_open_query(device: crate::dev_t, query: *const c_char, flags: u32) + -> *mut crate::DIR; pub fn fs_open_live_query( - device: ::dev_t, - query: *const ::c_char, + device: crate::dev_t, + query: *const c_char, flags: u32, port: port_id, token: i32, - ) -> *mut ::DIR; - pub fn fs_close_query(d: *mut ::DIR) -> ::c_int; - pub fn fs_read_query(d: *mut ::DIR) -> *mut ::dirent; - pub fn get_path_for_dirent(dent: *mut ::dirent, buf: *mut ::c_char, len: ::size_t) -> status_t; + ) -> *mut crate::DIR; + pub fn fs_close_query(d: *mut crate::DIR) -> c_int; + pub fn fs_read_query(d: *mut crate::DIR) -> *mut crate::dirent; + pub fn get_path_for_dirent(dent: *mut crate::dirent, buf: *mut c_char, len: size_t) + -> status_t; // kernel/fs_volume.h pub fn fs_mount_volume( - where_: *const ::c_char, - device: *const ::c_char, - filesystem: *const ::c_char, + where_: *const c_char, + device: *const c_char, + filesystem: *const c_char, flags: u32, - parameters: *const ::c_char, - ) -> ::dev_t; - pub fn fs_unmount_volume(path: *const ::c_char, flags: u32) -> status_t; + parameters: *const c_char, + ) -> crate::dev_t; + pub fn fs_unmount_volume(path: *const c_char, flags: u32) -> status_t; // kernel/image.h pub fn load_image( argc: i32, - argv: *mut *const ::c_char, - environ: *mut *const ::c_char, + argv: *mut *const c_char, + environ: *mut *const c_char, ) -> thread_id; - pub fn load_add_on(path: *const ::c_char) -> image_id; + pub fn load_add_on(path: *const c_char) -> image_id; pub fn unload_add_on(image: image_id) -> status_t; pub fn get_image_symbol( image: image_id, - name: *const ::c_char, + name: *const c_char, symbolType: i32, - symbolLocation: *mut *mut ::c_void, + symbolLocation: *mut *mut c_void, ) -> status_t; pub fn get_nth_image_symbol( image: image_id, n: i32, - nameBuffer: *mut ::c_char, + nameBuffer: *mut c_char, nameLength: *mut i32, symbolType: *mut i32, - symbolLocation: *mut *mut ::c_void, + symbolLocation: *mut *mut c_void, ) -> status_t; - pub fn clear_caches(address: *mut ::c_void, length: ::size_t, flags: u32); - pub fn _get_image_info(image: image_id, info: *mut image_info, size: ::size_t) -> status_t; + pub fn clear_caches(address: *mut c_void, length: size_t, flags: u32); + pub fn _get_image_info(image: image_id, info: *mut image_info, size: size_t) -> status_t; pub fn _get_next_image_info( team: team_id, cookie: *mut i32, info: *mut image_info, - size: ::size_t, + size: size_t, ) -> status_t; pub fn find_path( - codePointer: *const ::c_void, + codePointer: *const c_void, baseDirectory: path_base_directory, - subPath: *const ::c_char, - pathBuffer: *mut ::c_char, + subPath: *const c_char, + pathBuffer: *mut c_char, bufferSize: usize, ) -> status_t; pub fn find_path_etc( - codePointer: *const ::c_void, - dependency: *const ::c_char, - architecture: *const ::c_char, + codePointer: *const c_void, + dependency: *const c_char, + architecture: *const c_char, baseDirectory: path_base_directory, - subPath: *const ::c_char, + subPath: *const c_char, flags: u32, - pathBuffer: *mut ::c_char, - bufferSize: ::size_t, + pathBuffer: *mut c_char, + bufferSize: size_t, ) -> status_t; pub fn find_path_for_path( - path: *const ::c_char, + path: *const c_char, baseDirectory: path_base_directory, - subPath: *const ::c_char, - pathBuffer: *mut ::c_char, - bufferSize: ::size_t, + subPath: *const c_char, + pathBuffer: *mut c_char, + bufferSize: size_t, ) -> status_t; pub fn find_path_for_path_etc( - path: *const ::c_char, - dependency: *const ::c_char, - architecture: *const ::c_char, + path: *const c_char, + dependency: *const c_char, + architecture: *const c_char, baseDirectory: path_base_directory, - subPath: *const ::c_char, + subPath: *const c_char, flags: u32, - pathBuffer: *mut ::c_char, - bufferSize: ::size_t, + pathBuffer: *mut c_char, + bufferSize: size_t, ) -> status_t; pub fn find_paths( baseDirectory: path_base_directory, - subPath: *const ::c_char, - _paths: *mut *mut *mut ::c_char, - pathCount: *mut ::size_t, + subPath: *const c_char, + _paths: *mut *mut *mut c_char, + pathCount: *mut size_t, ) -> status_t; pub fn find_paths_etc( - architecture: *const ::c_char, + architecture: *const c_char, baseDirectory: path_base_directory, - subPath: *const ::c_char, + subPath: *const c_char, flags: u32, - _paths: *mut *mut *mut ::c_char, - pathCount: *mut ::size_t, + _paths: *mut *mut *mut c_char, + pathCount: *mut size_t, ) -> status_t; pub fn find_directory( which: directory_which, - volume: ::dev_t, + volume: crate::dev_t, createIt: bool, - pathString: *mut ::c_char, + pathString: *mut c_char, length: i32, ) -> status_t; @@ -1337,7 +1332,7 @@ pub unsafe fn get_cpu_info(firstCPU: u32, cpuCount: u32, info: *mut cpu_info) -> firstCPU, cpuCount, info, - core::mem::size_of::() as ::size_t, + core::mem::size_of::() as size_t, ) } @@ -1362,7 +1357,7 @@ pub unsafe fn get_next_area_info( #[inline] pub unsafe fn get_port_info(port: port_id, buf: *mut port_info) -> status_t { - _get_port_info(port, buf, core::mem::size_of::() as ::size_t) + _get_port_info(port, buf, core::mem::size_of::() as size_t) } #[inline] @@ -1375,7 +1370,7 @@ pub unsafe fn get_next_port_info( port, cookie, portInfo, - core::mem::size_of::() as ::size_t, + core::mem::size_of::() as size_t, ) } @@ -1389,7 +1384,7 @@ pub unsafe fn get_port_message_info_etc( _get_port_message_info_etc( port, info, - core::mem::size_of::() as ::size_t, + core::mem::size_of::() as size_t, flags, timeout, ) @@ -1397,7 +1392,7 @@ pub unsafe fn get_port_message_info_etc( #[inline] pub unsafe fn get_sem_info(id: sem_id, info: *mut sem_info) -> status_t { - _get_sem_info(id, info, core::mem::size_of::() as ::size_t) + _get_sem_info(id, info, core::mem::size_of::() as size_t) } #[inline] @@ -1406,18 +1401,18 @@ pub unsafe fn get_next_sem_info(team: team_id, cookie: *mut i32, info: *mut sem_ team, cookie, info, - core::mem::size_of::() as ::size_t, + core::mem::size_of::() as size_t, ) } #[inline] pub unsafe fn get_team_info(team: team_id, info: *mut team_info) -> status_t { - _get_team_info(team, info, core::mem::size_of::() as ::size_t) + _get_team_info(team, info, core::mem::size_of::() as size_t) } #[inline] pub unsafe fn get_next_team_info(cookie: *mut i32, info: *mut team_info) -> status_t { - _get_next_team_info(cookie, info, core::mem::size_of::() as ::size_t) + _get_next_team_info(cookie, info, core::mem::size_of::() as size_t) } #[inline] @@ -1426,13 +1421,13 @@ pub unsafe fn get_team_usage_info(team: team_id, who: i32, info: *mut team_usage team, who, info, - core::mem::size_of::() as ::size_t, + core::mem::size_of::() as size_t, ) } #[inline] pub unsafe fn get_thread_info(id: thread_id, info: *mut thread_info) -> status_t { - _get_thread_info(id, info, core::mem::size_of::() as ::size_t) + _get_thread_info(id, info, core::mem::size_of::() as size_t) } #[inline] @@ -1445,14 +1440,14 @@ pub unsafe fn get_next_thread_info( team, cookie, info, - core::mem::size_of::() as ::size_t, + core::mem::size_of::() as size_t, ) } // kernel/image.h #[inline] pub unsafe fn get_image_info(image: image_id, info: *mut image_info) -> status_t { - _get_image_info(image, info, core::mem::size_of::() as ::size_t) + _get_image_info(image, info, core::mem::size_of::() as size_t) } #[inline] @@ -1465,6 +1460,6 @@ pub unsafe fn get_next_image_info( team, cookie, info, - core::mem::size_of::() as ::size_t, + core::mem::size_of::() as size_t, ) } diff --git a/src/unix/haiku/x86_64.rs b/src/unix/haiku/x86_64.rs index b52643695d42a..0b6f03b6daf6d 100644 --- a/src/unix/haiku/x86_64.rs +++ b/src/unix/haiku/x86_64.rs @@ -1,56 +1,58 @@ +use crate::{c_uchar, c_uint, c_ulong, c_ushort}; + s_no_extra_traits! { pub struct fpu_state { - pub control: ::c_ushort, - pub status: ::c_ushort, - pub tag: ::c_ushort, - pub opcode: ::c_ushort, - pub rip: ::c_ulong, - pub rdp: ::c_ulong, - pub mxcsr: ::c_uint, - pub mscsr_mask: ::c_uint, - pub _fpreg: [[::c_uchar; 8]; 16], - pub _xmm: [[::c_uchar; 16]; 16], - pub _reserved_416_511: [::c_uchar; 96], + pub control: c_ushort, + pub status: c_ushort, + pub tag: c_ushort, + pub opcode: c_ushort, + pub rip: c_ulong, + pub rdp: c_ulong, + pub mxcsr: c_uint, + pub mscsr_mask: c_uint, + pub _fpreg: [[c_uchar; 8]; 16], + pub _xmm: [[c_uchar; 16]; 16], + pub _reserved_416_511: [c_uchar; 96], } pub struct xstate_hdr { - pub bv: ::c_ulong, - pub xcomp_bv: ::c_ulong, - pub _reserved: [::c_uchar; 48], + pub bv: c_ulong, + pub xcomp_bv: c_ulong, + pub _reserved: [c_uchar; 48], } pub struct savefpu { pub fp_fxsave: fpu_state, pub fp_xstate: xstate_hdr, - pub _fp_ymm: [[::c_uchar; 16]; 16], + pub _fp_ymm: [[c_uchar; 16]; 16], } pub struct mcontext_t { - pub rax: ::c_ulong, - pub rbx: ::c_ulong, - pub rcx: ::c_ulong, - pub rdx: ::c_ulong, - pub rdi: ::c_ulong, - pub rsi: ::c_ulong, - pub rbp: ::c_ulong, - pub r8: ::c_ulong, - pub r9: ::c_ulong, - pub r10: ::c_ulong, - pub r11: ::c_ulong, - pub r12: ::c_ulong, - pub r13: ::c_ulong, - pub r14: ::c_ulong, - pub r15: ::c_ulong, - pub rsp: ::c_ulong, - pub rip: ::c_ulong, - pub rflags: ::c_ulong, + pub rax: c_ulong, + pub rbx: c_ulong, + pub rcx: c_ulong, + pub rdx: c_ulong, + pub rdi: c_ulong, + pub rsi: c_ulong, + pub rbp: c_ulong, + pub r8: c_ulong, + pub r9: c_ulong, + pub r10: c_ulong, + pub r11: c_ulong, + pub r12: c_ulong, + pub r13: c_ulong, + pub r14: c_ulong, + pub r15: c_ulong, + pub rsp: c_ulong, + pub rip: c_ulong, + pub rflags: c_ulong, pub fpu: savefpu, } pub struct ucontext_t { pub uc_link: *mut ucontext_t, - pub uc_sigmask: ::sigset_t, - pub uc_stack: ::stack_t, + pub uc_sigmask: crate::sigset_t, + pub uc_stack: crate::stack_t, pub uc_mcontext: mcontext_t, } } @@ -81,8 +83,8 @@ cfg_if! { } } impl Eq for fpu_state {} - impl ::fmt::Debug for fpu_state { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for fpu_state { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("fpu_state") .field("control", &self.control) .field("status", &self.status) @@ -98,8 +100,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for fpu_state { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for fpu_state { + fn hash(&self, state: &mut H) { self.control.hash(state); self.status.hash(state); self.tag.hash(state); @@ -126,8 +128,8 @@ cfg_if! { } } impl Eq for xstate_hdr {} - impl ::fmt::Debug for xstate_hdr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for xstate_hdr { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("xstate_hdr") .field("bv", &self.bv) .field("xcomp_bv", &self.xcomp_bv) @@ -135,8 +137,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for xstate_hdr { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for xstate_hdr { + fn hash(&self, state: &mut H) { self.bv.hash(state); self.xcomp_bv.hash(state); self._reserved.hash(state); @@ -155,8 +157,8 @@ cfg_if! { } } impl Eq for savefpu {} - impl ::fmt::Debug for savefpu { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for savefpu { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("savefpu") .field("fp_fxsave", &self.fp_fxsave) .field("fp_xstate", &self.fp_xstate) @@ -164,8 +166,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for savefpu { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for savefpu { + fn hash(&self, state: &mut H) { self.fp_fxsave.hash(state); self.fp_xstate.hash(state); self._fp_ymm.hash(state); @@ -196,8 +198,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("mcontext_t") .field("rax", &self.rax) .field("rbx", &self.rbx) @@ -221,8 +223,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.rax.hash(state); self.rbx.hash(state); self.rcx.hash(state); @@ -254,8 +256,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ucontext_t") .field("uc_link", &self.uc_link) .field("uc_sigmask", &self.uc_sigmask) @@ -264,8 +266,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_link.hash(state); self.uc_sigmask.hash(state); self.uc_stack.hash(state); diff --git a/src/unix/hurd/b32.rs b/src/unix/hurd/b32.rs index 7e82a91d3be03..d98b97268fbb1 100644 --- a/src/unix/hurd/b32.rs +++ b/src/unix/hurd/b32.rs @@ -1,31 +1,33 @@ +use crate::{c_int, c_longlong, c_uchar, c_uint, c_ulonglong, c_ushort}; + pub type c_long = i32; pub type c_ulong = u32; -pub type __int64_t = ::c_longlong; -pub type __uint64_t = ::c_ulonglong; +pub type __int64_t = c_longlong; +pub type __uint64_t = c_ulonglong; -pub type int_fast16_t = ::c_int; -pub type int_fast32_t = ::c_int; -pub type int_fast64_t = ::c_longlong; -pub type uint_fast16_t = ::c_uint; -pub type uint_fast32_t = ::c_uint; -pub type uint_fast64_t = ::c_ulonglong; +pub type int_fast16_t = c_int; +pub type int_fast32_t = c_int; +pub type int_fast64_t = c_longlong; +pub type uint_fast16_t = c_uint; +pub type uint_fast32_t = c_uint; +pub type uint_fast64_t = c_ulonglong; -pub type __quad_t = ::c_longlong; -pub type __u_quad_t = ::c_ulonglong; -pub type __intmax_t = ::c_longlong; -pub type __uintmax_t = ::c_ulonglong; +pub type __quad_t = c_longlong; +pub type __u_quad_t = c_ulonglong; +pub type __intmax_t = c_longlong; +pub type __uintmax_t = c_ulonglong; -pub type __squad_type = ::__int64_t; -pub type __uquad_type = ::__uint64_t; -pub type __sword_type = ::c_int; -pub type __uword_type = ::c_uint; -pub type __slong32_type = ::c_long; -pub type __ulong32_type = ::c_ulong; -pub type __s64_type = ::__int64_t; -pub type __u64_type = ::__uint64_t; +pub type __squad_type = crate::__int64_t; +pub type __uquad_type = crate::__uint64_t; +pub type __sword_type = c_int; +pub type __uword_type = c_uint; +pub type __slong32_type = c_long; +pub type __ulong32_type = c_ulong; +pub type __s64_type = crate::__int64_t; +pub type __u64_type = crate::__uint64_t; -pub type __ipc_pid_t = ::c_ushort; +pub type __ipc_pid_t = c_ushort; pub type Elf32_Half = u16; pub type Elf32_Word = u32; @@ -33,16 +35,16 @@ pub type Elf32_Off = u32; pub type Elf32_Addr = u32; pub type Elf32_Section = u16; -pub type Elf_Addr = ::Elf32_Addr; -pub type Elf_Half = ::Elf32_Half; -pub type Elf_Ehdr = ::Elf32_Ehdr; -pub type Elf_Phdr = ::Elf32_Phdr; -pub type Elf_Shdr = ::Elf32_Shdr; -pub type Elf_Sym = ::Elf32_Sym; +pub type Elf_Addr = crate::Elf32_Addr; +pub type Elf_Half = crate::Elf32_Half; +pub type Elf_Ehdr = crate::Elf32_Ehdr; +pub type Elf_Phdr = crate::Elf32_Phdr; +pub type Elf_Shdr = crate::Elf32_Shdr; +pub type Elf_Sym = crate::Elf32_Sym; s! { pub struct Elf32_Ehdr { - pub e_ident: [::c_uchar; 16], + pub e_ident: [c_uchar; 16], pub e_type: Elf32_Half, pub e_machine: Elf32_Half, pub e_version: Elf32_Word, @@ -75,19 +77,19 @@ s! { pub st_name: Elf32_Word, pub st_value: Elf32_Addr, pub st_size: Elf32_Word, - pub st_info: ::c_uchar, - pub st_other: ::c_uchar, + pub st_info: c_uchar, + pub st_other: c_uchar, pub st_shndx: Elf32_Section, } pub struct Elf32_Phdr { - pub p_type: ::Elf32_Word, - pub p_offset: ::Elf32_Off, - pub p_vaddr: ::Elf32_Addr, - pub p_paddr: ::Elf32_Addr, - pub p_filesz: ::Elf32_Word, - pub p_memsz: ::Elf32_Word, - pub p_flags: ::Elf32_Word, - pub p_align: ::Elf32_Word, + pub p_type: crate::Elf32_Word, + pub p_offset: crate::Elf32_Off, + pub p_vaddr: crate::Elf32_Addr, + pub p_paddr: crate::Elf32_Addr, + pub p_filesz: crate::Elf32_Word, + pub p_memsz: crate::Elf32_Word, + pub p_flags: crate::Elf32_Word, + pub p_align: crate::Elf32_Word, } } diff --git a/src/unix/hurd/b64.rs b/src/unix/hurd/b64.rs index e2e502af2b645..41ba87ae59bf3 100644 --- a/src/unix/hurd/b64.rs +++ b/src/unix/hurd/b64.rs @@ -1,31 +1,33 @@ +use crate::{c_int, c_uchar, c_uint}; + pub type c_long = i64; pub type c_ulong = u64; -pub type __int64_t = ::c_long; -pub type __uint64_t = ::c_ulong; +pub type __int64_t = c_long; +pub type __uint64_t = c_ulong; -pub type int_fast16_t = ::c_long; -pub type int_fast32_t = ::c_long; -pub type int_fast64_t = ::c_long; -pub type uint_fast16_t = ::c_ulong; -pub type uint_fast32_t = ::c_ulong; -pub type uint_fast64_t = ::c_ulong; +pub type int_fast16_t = c_long; +pub type int_fast32_t = c_long; +pub type int_fast64_t = c_long; +pub type uint_fast16_t = c_ulong; +pub type uint_fast32_t = c_ulong; +pub type uint_fast64_t = c_ulong; -pub type __quad_t = ::c_long; -pub type __u_quad_t = ::c_ulong; -pub type __intmax_t = ::c_long; -pub type __uintmax_t = ::c_ulong; +pub type __quad_t = c_long; +pub type __u_quad_t = c_ulong; +pub type __intmax_t = c_long; +pub type __uintmax_t = c_ulong; -pub type __squad_type = ::c_long; -pub type __uquad_type = ::c_ulong; -pub type __sword_type = ::c_long; -pub type __uword_type = ::c_ulong; -pub type __slong32_type = ::c_int; -pub type __ulong32_type = ::c_uint; -pub type __s64_type = ::c_long; -pub type __u64_type = ::c_ulong; +pub type __squad_type = c_long; +pub type __uquad_type = c_ulong; +pub type __sword_type = c_long; +pub type __uword_type = c_ulong; +pub type __slong32_type = c_int; +pub type __ulong32_type = c_uint; +pub type __s64_type = c_long; +pub type __u64_type = c_ulong; -pub type __ipc_pid_t = ::c_int; +pub type __ipc_pid_t = c_int; pub type Elf64_Half = u16; pub type Elf64_Word = u32; @@ -35,16 +37,16 @@ pub type Elf64_Xword = u64; pub type Elf64_Sxword = i64; pub type Elf64_Section = u16; -pub type Elf_Addr = ::Elf64_Addr; -pub type Elf_Half = ::Elf64_Half; -pub type Elf_Ehdr = ::Elf64_Ehdr; -pub type Elf_Phdr = ::Elf64_Phdr; -pub type Elf_Shdr = ::Elf64_Shdr; -pub type Elf_Sym = ::Elf64_Sym; +pub type Elf_Addr = crate::Elf64_Addr; +pub type Elf_Half = crate::Elf64_Half; +pub type Elf_Ehdr = crate::Elf64_Ehdr; +pub type Elf_Phdr = crate::Elf64_Phdr; +pub type Elf_Shdr = crate::Elf64_Shdr; +pub type Elf_Sym = crate::Elf64_Sym; s! { pub struct Elf64_Ehdr { - pub e_ident: [::c_uchar; 16], + pub e_ident: [c_uchar; 16], pub e_type: Elf64_Half, pub e_machine: Elf64_Half, pub e_version: Elf64_Word, @@ -75,21 +77,21 @@ s! { pub struct Elf64_Sym { pub st_name: Elf64_Word, - pub st_info: ::c_uchar, - pub st_other: ::c_uchar, + pub st_info: c_uchar, + pub st_other: c_uchar, pub st_shndx: Elf64_Section, pub st_value: Elf64_Addr, pub st_size: Elf64_Xword, } pub struct Elf64_Phdr { - pub p_type: ::Elf64_Word, - pub p_flags: ::Elf64_Word, - pub p_offset: ::Elf64_Off, - pub p_vaddr: ::Elf64_Addr, - pub p_paddr: ::Elf64_Addr, - pub p_filesz: ::Elf64_Xword, - pub p_memsz: ::Elf64_Xword, - pub p_align: ::Elf64_Xword, + pub p_type: crate::Elf64_Word, + pub p_flags: crate::Elf64_Word, + pub p_offset: crate::Elf64_Off, + pub p_vaddr: crate::Elf64_Addr, + pub p_paddr: crate::Elf64_Addr, + pub p_filesz: crate::Elf64_Xword, + pub p_memsz: crate::Elf64_Xword, + pub p_align: crate::Elf64_Xword, } } diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index f9410317a8bfa..c6720e5534841 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -1,25 +1,30 @@ #![allow(dead_code)] +use crate::{ + c_double, c_int, c_schar, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, intptr_t, + size_t, ssize_t, +}; + // types pub type c_char = i8; -pub type __s16_type = ::c_short; -pub type __u16_type = ::c_ushort; -pub type __s32_type = ::c_int; -pub type __u32_type = ::c_uint; -pub type __slongword_type = ::c_long; -pub type __ulongword_type = ::c_ulong; - -pub type __u_char = ::c_uchar; -pub type __u_short = ::c_ushort; -pub type __u_int = ::c_uint; -pub type __u_long = ::c_ulong; -pub type __int8_t = ::c_schar; -pub type __uint8_t = ::c_uchar; -pub type __int16_t = ::c_short; -pub type __uint16_t = ::c_ushort; -pub type __int32_t = ::c_int; -pub type __uint32_t = ::c_uint; +pub type __s16_type = c_short; +pub type __u16_type = c_ushort; +pub type __s32_type = c_int; +pub type __u32_type = c_uint; +pub type __slongword_type = c_long; +pub type __ulongword_type = c_ulong; + +pub type __u_char = c_uchar; +pub type __u_short = c_ushort; +pub type __u_int = c_uint; +pub type __u_long = c_ulong; +pub type __int8_t = c_schar; +pub type __uint8_t = c_uchar; +pub type __int16_t = c_short; +pub type __uint16_t = c_ushort; +pub type __int32_t = c_int; +pub type __uint32_t = c_uint; pub type __int_least8_t = __int8_t; pub type __uint_least8_t = __uint8_t; pub type __int_least16_t = __int16_t; @@ -66,14 +71,14 @@ pub type __syscall_ulong_t = __ulongword_type; pub type __cpu_mask = __ulongword_type; pub type __loff_t = __off64_t; -pub type __caddr_t = *mut ::c_char; +pub type __caddr_t = *mut c_char; pub type __intptr_t = __sword_type; pub type __ptrdiff_t = __sword_type; pub type __socklen_t = __u32_type; -pub type __sig_atomic_t = ::c_int; +pub type __sig_atomic_t = c_int; pub type __time64_t = __int64_t; -pub type wchar_t = ::c_int; -pub type wint_t = ::c_uint; +pub type wchar_t = c_int; +pub type wint_t = c_uint; pub type gid_t = __gid_t; pub type uid_t = __uid_t; pub type off_t = __off_t; @@ -114,18 +119,18 @@ pub type clockid_t = __clockid_t; pub type time_t = __time_t; pub type timer_t = __timer_t; pub type suseconds_t = __suseconds_t; -pub type ulong = ::c_ulong; -pub type ushort = ::c_ushort; -pub type uint = ::c_uint; +pub type ulong = c_ulong; +pub type ushort = c_ushort; +pub type uint = c_uint; pub type u_int8_t = __uint8_t; pub type u_int16_t = __uint16_t; pub type u_int32_t = __uint32_t; pub type u_int64_t = __uint64_t; -pub type register_t = ::c_int; -pub type __sigset_t = ::c_ulong; +pub type register_t = c_int; +pub type __sigset_t = c_ulong; pub type sigset_t = __sigset_t; -pub type __fd_mask = ::c_long; +pub type __fd_mask = c_long; pub type fd_mask = __fd_mask; pub type blksize_t = __blksize_t; pub type blkcnt_t = __blkcnt_t; @@ -135,19 +140,19 @@ pub type blkcnt64_t = __blkcnt64_t; pub type fsblkcnt64_t = __fsblkcnt64_t; pub type fsfilcnt64_t = __fsfilcnt64_t; -pub type __pthread_spinlock_t = ::c_int; -pub type __tss_t = ::c_int; -pub type __thrd_t = ::c_long; -pub type __pthread_t = ::c_long; +pub type __pthread_spinlock_t = c_int; +pub type __tss_t = c_int; +pub type __thrd_t = c_long; +pub type __pthread_t = c_long; pub type pthread_t = __pthread_t; -pub type __pthread_process_shared = ::c_uint; -pub type __pthread_inheritsched = ::c_uint; -pub type __pthread_contentionscope = ::c_uint; -pub type __pthread_detachstate = ::c_uint; +pub type __pthread_process_shared = c_uint; +pub type __pthread_inheritsched = c_uint; +pub type __pthread_contentionscope = c_uint; +pub type __pthread_detachstate = c_uint; pub type pthread_attr_t = __pthread_attr; -pub type __pthread_mutex_protocol = ::c_uint; -pub type __pthread_mutex_type = ::c_uint; -pub type __pthread_mutex_robustness = ::c_uint; +pub type __pthread_mutex_protocol = c_uint; +pub type __pthread_mutex_type = c_uint; +pub type __pthread_mutex_robustness = c_uint; pub type pthread_mutexattr_t = __pthread_mutexattr; pub type pthread_mutex_t = __pthread_mutex; pub type pthread_condattr_t = __pthread_condattr; @@ -157,43 +162,43 @@ pub type pthread_rwlockattr_t = __pthread_rwlockattr; pub type pthread_rwlock_t = __pthread_rwlock; pub type pthread_barrierattr_t = __pthread_barrierattr; pub type pthread_barrier_t = __pthread_barrier; -pub type __pthread_key = ::c_int; +pub type __pthread_key = c_int; pub type pthread_key_t = __pthread_key; pub type pthread_once_t = __pthread_once; -pub type __rlimit_resource = ::c_uint; +pub type __rlimit_resource = c_uint; pub type __rlimit_resource_t = __rlimit_resource; pub type rlim_t = __rlim_t; pub type rlim64_t = __rlim64_t; -pub type __rusage_who = ::c_int; +pub type __rusage_who = c_int; -pub type __priority_which = ::c_uint; +pub type __priority_which = c_uint; -pub type sa_family_t = ::c_uchar; +pub type sa_family_t = c_uchar; pub type in_port_t = u16; -pub type __sigval_t = ::sigval; +pub type __sigval_t = crate::sigval; pub type sigevent_t = sigevent; -pub type nfds_t = ::c_ulong; +pub type nfds_t = c_ulong; -pub type tcflag_t = ::c_uint; -pub type cc_t = ::c_uchar; -pub type speed_t = ::c_int; +pub type tcflag_t = c_uint; +pub type cc_t = c_uchar; +pub type speed_t = c_int; -pub type sigval_t = ::sigval; +pub type sigval_t = crate::sigval; -pub type greg_t = ::c_int; +pub type greg_t = c_int; pub type gregset_t = [greg_t; 19usize]; -pub type __ioctl_dir = ::c_uint; +pub type __ioctl_dir = c_uint; -pub type __ioctl_datum = ::c_uint; +pub type __ioctl_datum = c_uint; -pub type __error_t_codes = ::c_int; +pub type __error_t_codes = c_int; pub type int_least8_t = __int_least8_t; pub type int_least16_t = __int_least16_t; @@ -203,31 +208,31 @@ pub type uint_least8_t = __uint_least8_t; pub type uint_least16_t = __uint_least16_t; pub type uint_least32_t = __uint_least32_t; pub type uint_least64_t = __uint_least64_t; -pub type int_fast8_t = ::c_schar; -pub type uint_fast8_t = ::c_uchar; +pub type int_fast8_t = c_schar; +pub type uint_fast8_t = c_uchar; pub type intmax_t = __intmax_t; pub type uintmax_t = __uintmax_t; pub type tcp_seq = u32; -pub type tcp_ca_state = ::c_uint; +pub type tcp_ca_state = c_uint; -pub type idtype_t = ::c_uint; +pub type idtype_t = c_uint; -pub type mqd_t = ::c_int; +pub type mqd_t = c_int; -pub type Lmid_t = ::c_long; +pub type Lmid_t = c_long; -pub type regoff_t = ::c_int; +pub type regoff_t = c_int; -pub type nl_item = ::c_int; +pub type nl_item = c_int; -pub type iconv_t = *mut ::c_void; +pub type iconv_t = *mut c_void; #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum fpos64_t {} // FIXME: fill this out with a struct -impl ::Copy for fpos64_t {} -impl ::Clone for fpos64_t { +impl Copy for fpos64_t {} +impl Clone for fpos64_t { fn clone(&self) -> fpos64_t { *self } @@ -235,8 +240,8 @@ impl ::Clone for fpos64_t { #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { +impl Copy for timezone {} +impl Clone for timezone { fn clone(&self) -> timezone { *self } @@ -252,7 +257,7 @@ s! { pub struct ip_mreqn { pub imr_multiaddr: in_addr, pub imr_address: in_addr, - pub imr_ifindex: ::c_int, + pub imr_ifindex: c_int, } pub struct ip_mreq_source { @@ -262,9 +267,9 @@ s! { } pub struct sockaddr { - pub sa_len: ::c_uchar, + pub sa_len: c_uchar, pub sa_family: sa_family_t, - pub sa_data: [::c_char; 14usize], + pub sa_data: [c_char; 14usize], } pub struct in_addr { @@ -272,32 +277,32 @@ s! { } pub struct sockaddr_in { - pub sin_len: ::c_uchar, + pub sin_len: c_uchar, pub sin_family: sa_family_t, pub sin_port: in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [::c_uchar; 8usize], + pub sin_addr: crate::in_addr, + pub sin_zero: [c_uchar; 8usize], } pub struct sockaddr_in6 { - pub sin6_len: ::c_uchar, + pub sin6_len: c_uchar, pub sin6_family: sa_family_t, pub sin6_port: in_port_t, pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, + pub sin6_addr: crate::in6_addr, pub sin6_scope_id: u32, } pub struct sockaddr_un { - pub sun_len: ::c_uchar, + pub sun_len: c_uchar, pub sun_family: sa_family_t, - pub sun_path: [::c_char; 108usize], + pub sun_path: [c_char; 108usize], } pub struct sockaddr_storage { - pub ss_len: ::c_uchar, + pub ss_len: c_uchar, pub ss_family: sa_family_t, - pub __ss_padding: [::c_char; 122usize], + pub __ss_padding: [c_char; 122usize], pub __ss_align: __uint32_t, } @@ -335,46 +340,46 @@ s! { } pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: ::socklen_t, + pub ai_flags: c_int, + pub ai_family: c_int, + pub ai_socktype: c_int, + pub ai_protocol: c_int, + pub ai_addrlen: crate::socklen_t, pub ai_addr: *mut sockaddr, - pub ai_canonname: *mut ::c_char, + pub ai_canonname: *mut c_char, pub ai_next: *mut addrinfo, } pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - pub msg_flags: ::c_int, + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: c_int, + pub msg_control: *mut c_void, + pub msg_controllen: crate::socklen_t, + pub msg_flags: c_int, } pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub cmsg_len: crate::socklen_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } pub struct dirent { pub d_ino: __ino_t, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_namlen: ::c_uchar, - pub d_name: [::c_char; 1usize], + pub d_reclen: c_ushort, + pub d_type: c_uchar, + pub d_namlen: c_uchar, + pub d_name: [c_char; 1usize], } pub struct dirent64 { pub d_ino: __ino64_t, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_namlen: ::c_uchar, - pub d_name: [::c_char; 1usize], + pub d_reclen: c_ushort, + pub d_type: c_uchar, + pub d_namlen: c_uchar, + pub d_name: [c_char; 1usize], } pub struct fd_set { @@ -382,65 +387,65 @@ s! { } pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_cc: [::cc_t; 20usize], - pub __ispeed: ::speed_t, - pub __ospeed: ::speed_t, + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_cc: [crate::cc_t; 20usize], + pub __ispeed: crate::speed_t, + pub __ospeed: crate::speed_t, } pub struct mallinfo { - pub arena: ::c_int, - pub ordblks: ::c_int, - pub smblks: ::c_int, - pub hblks: ::c_int, - pub hblkhd: ::c_int, - pub usmblks: ::c_int, - pub fsmblks: ::c_int, - pub uordblks: ::c_int, - pub fordblks: ::c_int, - pub keepcost: ::c_int, + pub arena: c_int, + pub ordblks: c_int, + pub smblks: c_int, + pub hblks: c_int, + pub hblkhd: c_int, + pub usmblks: c_int, + pub fsmblks: c_int, + pub uordblks: c_int, + pub fordblks: c_int, + pub keepcost: c_int, } pub struct mallinfo2 { - pub arena: ::size_t, - pub ordblks: ::size_t, - pub smblks: ::size_t, - pub hblks: ::size_t, - pub hblkhd: ::size_t, - pub usmblks: ::size_t, - pub fsmblks: ::size_t, - pub uordblks: ::size_t, - pub fordblks: ::size_t, - pub keepcost: ::size_t, + pub arena: size_t, + pub ordblks: size_t, + pub smblks: size_t, + pub hblks: size_t, + pub hblkhd: size_t, + pub usmblks: size_t, + pub fsmblks: size_t, + pub uordblks: size_t, + pub fordblks: size_t, + pub keepcost: size_t, } pub struct sigaction { - pub sa_sigaction: ::sighandler_t, + pub sa_sigaction: crate::sighandler_t, pub sa_mask: __sigset_t, - pub sa_flags: ::c_int, + pub sa_flags: c_int, } pub struct sigevent { - pub sigev_value: ::sigval, - pub sigev_signo: ::c_int, - pub sigev_notify: ::c_int, - __unused1: *mut ::c_void, //actually a function pointer + pub sigev_value: crate::sigval, + pub sigev_signo: c_int, + pub sigev_notify: c_int, + __unused1: *mut c_void, //actually a function pointer pub sigev_notify_attributes: *mut pthread_attr_t, } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, + 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_addr: *mut ::c_void, - pub si_status: ::c_int, - pub si_band: ::c_long, - pub si_value: ::sigval, + pub si_addr: *mut c_void, + pub si_status: c_int, + pub si_band: c_long, + pub si_value: crate::sigval, } pub struct timespec { @@ -458,45 +463,45 @@ s! { } pub struct stat { - pub st_fstype: ::c_int, + pub st_fstype: c_int, pub st_dev: __fsid_t, /* Actually st_fsid */ pub st_ino: __ino_t, - pub st_gen: ::c_uint, + pub st_gen: c_uint, pub st_rdev: __dev_t, pub st_mode: __mode_t, pub st_nlink: __nlink_t, pub st_uid: __uid_t, pub st_gid: __gid_t, pub st_size: __off_t, - pub st_atim: ::timespec, - pub st_mtim: ::timespec, - pub st_ctim: ::timespec, + pub st_atim: crate::timespec, + pub st_mtim: crate::timespec, + pub st_ctim: crate::timespec, pub st_blksize: __blksize_t, pub st_blocks: __blkcnt_t, pub st_author: __uid_t, - pub st_flags: ::c_uint, - pub st_spare: [::c_int; 11usize], + pub st_flags: c_uint, + pub st_spare: [c_int; 11usize], } pub struct stat64 { - pub st_fstype: ::c_int, + pub st_fstype: c_int, pub st_dev: __fsid_t, /* Actually st_fsid */ pub st_ino: __ino64_t, - pub st_gen: ::c_uint, + pub st_gen: c_uint, pub st_rdev: __dev_t, pub st_mode: __mode_t, pub st_nlink: __nlink_t, pub st_uid: __uid_t, pub st_gid: __gid_t, pub st_size: __off64_t, - pub st_atim: ::timespec, - pub st_mtim: ::timespec, - pub st_ctim: ::timespec, + pub st_atim: crate::timespec, + pub st_mtim: crate::timespec, + pub st_ctim: crate::timespec, pub st_blksize: __blksize_t, pub st_blocks: __blkcnt64_t, pub st_author: __uid_t, - pub st_flags: ::c_uint, - pub st_spare: [::c_int; 8usize], + pub st_flags: c_uint, + pub st_spare: [c_int; 8usize], } pub struct statx { @@ -512,10 +517,10 @@ s! { pub stx_size: u64, pub stx_blocks: u64, pub stx_attributes_mask: u64, - pub stx_atime: ::statx_timestamp, - pub stx_btime: ::statx_timestamp, - pub stx_ctime: ::statx_timestamp, - pub stx_mtime: ::statx_timestamp, + pub stx_atime: crate::statx_timestamp, + pub stx_btime: crate::statx_timestamp, + pub stx_ctime: crate::statx_timestamp, + pub stx_mtime: crate::statx_timestamp, pub stx_rdev_major: u32, pub stx_rdev_minor: u32, pub stx_dev_major: u32, @@ -530,103 +535,103 @@ s! { } pub struct statfs { - pub f_type: ::c_uint, - pub f_bsize: ::c_ulong, + pub f_type: c_uint, + 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: __fsid_t, - pub f_namelen: ::c_ulong, + pub f_namelen: c_ulong, pub f_favail: __fsfilcnt_t, - pub f_frsize: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_spare: [::c_uint; 3usize], + pub f_frsize: c_ulong, + pub f_flag: c_ulong, + pub f_spare: [c_uint; 3usize], } pub struct statfs64 { - pub f_type: ::c_uint, - pub f_bsize: ::c_ulong, + pub f_type: c_uint, + pub f_bsize: c_ulong, pub f_blocks: __fsblkcnt64_t, pub f_bfree: __fsblkcnt64_t, pub f_bavail: __fsblkcnt64_t, pub f_files: __fsblkcnt64_t, pub f_ffree: __fsblkcnt64_t, pub f_fsid: __fsid_t, - pub f_namelen: ::c_ulong, + pub f_namelen: c_ulong, pub f_favail: __fsfilcnt64_t, - pub f_frsize: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_spare: [::c_uint; 3usize], + pub f_frsize: c_ulong, + pub f_flag: c_ulong, + pub f_spare: [c_uint; 3usize], } pub struct statvfs { - pub __f_type: ::c_uint, - pub f_bsize: ::c_ulong, + pub __f_type: c_uint, + pub f_bsize: 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_fsid: __fsid_t, - pub f_namemax: ::c_ulong, + pub f_namemax: c_ulong, pub f_favail: __fsfilcnt_t, - pub f_frsize: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_spare: [::c_uint; 3usize], + pub f_frsize: c_ulong, + pub f_flag: c_ulong, + pub f_spare: [c_uint; 3usize], } pub struct statvfs64 { - pub __f_type: ::c_uint, - pub f_bsize: ::c_ulong, + pub __f_type: c_uint, + pub f_bsize: c_ulong, pub f_blocks: __fsblkcnt64_t, pub f_bfree: __fsblkcnt64_t, pub f_bavail: __fsblkcnt64_t, pub f_files: __fsfilcnt64_t, pub f_ffree: __fsfilcnt64_t, pub f_fsid: __fsid_t, - pub f_namemax: ::c_ulong, + pub f_namemax: c_ulong, pub f_favail: __fsfilcnt64_t, - pub f_frsize: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_spare: [::c_uint; 3usize], + pub f_frsize: c_ulong, + pub f_flag: c_ulong, + pub f_spare: [c_uint; 3usize], } pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_sigevent: ::sigevent, + pub aio_fildes: c_int, + pub aio_lio_opcode: c_int, + pub aio_reqprio: c_int, + pub aio_buf: *mut c_void, + pub aio_nbytes: size_t, + pub aio_sigevent: crate::sigevent, __next_prio: *mut aiocb, - __abs_prio: ::c_int, - __policy: ::c_int, - __error_code: ::c_int, - __return_value: ::ssize_t, + __abs_prio: c_int, + __policy: c_int, + __error_code: c_int, + __return_value: ssize_t, pub aio_offset: off_t, #[cfg(all(not(target_arch = "x86_64"), target_pointer_width = "32"))] - __unused1: [::c_char; 4], - __glibc_reserved: [::c_char; 32], + __unused1: [c_char; 4], + __glibc_reserved: [c_char; 32], } pub struct mq_attr { - pub mq_flags: ::c_long, - pub mq_maxmsg: ::c_long, - pub mq_msgsize: ::c_long, - pub mq_curmsgs: ::c_long, + pub mq_flags: c_long, + pub mq_maxmsg: c_long, + pub mq_msgsize: c_long, + pub mq_curmsgs: c_long, } pub struct __exit_status { - pub e_termination: ::c_short, - pub e_exit: ::c_short, + pub e_termination: c_short, + pub e_exit: c_short, } #[cfg_attr(target_pointer_width = "32", repr(align(4)))] #[cfg_attr(target_pointer_width = "64", repr(align(8)))] pub struct sem_t { - __size: [::c_char; 20usize], + __size: [c_char; 20usize], } pub struct __pthread { @@ -634,20 +639,20 @@ s! { } pub struct __pthread_mutexattr { - pub __prioceiling: ::c_int, + pub __prioceiling: c_int, pub __protocol: __pthread_mutex_protocol, pub __pshared: __pthread_process_shared, pub __mutex_type: __pthread_mutex_type, } pub struct __pthread_mutex { - pub __lock: ::c_uint, - pub __owner_id: ::c_uint, - pub __cnt: ::c_uint, - pub __shpid: ::c_int, - pub __type: ::c_int, - pub __flags: ::c_int, - pub __reserved1: ::c_uint, - pub __reserved2: ::c_uint, + pub __lock: c_uint, + pub __owner_id: c_uint, + pub __cnt: c_uint, + pub __shpid: c_int, + pub __type: c_int, + pub __flags: c_int, + pub __reserved1: c_uint, + pub __reserved2: c_uint, } pub struct __pthread_condattr { @@ -664,7 +669,7 @@ s! { } pub struct __pthread_once { - pub __run: ::c_int, + pub __run: c_int, pub __lock: __pthread_spinlock_t, } @@ -672,51 +677,51 @@ s! { pub __lock: __pthread_spinlock_t, pub __queue: *mut __pthread, pub __attr: *mut __pthread_condattr, - pub __wrefs: ::c_uint, - pub __data: *mut ::c_void, + pub __wrefs: c_uint, + pub __data: *mut c_void, } pub struct __pthread_attr { pub __schedparam: sched_param, - pub __stackaddr: *mut ::c_void, - pub __stacksize: ::size_t, - pub __guardsize: ::size_t, + pub __stackaddr: *mut c_void, + pub __stacksize: size_t, + pub __guardsize: size_t, pub __detachstate: __pthread_detachstate, pub __inheritsched: __pthread_inheritsched, pub __contentionscope: __pthread_contentionscope, - pub __schedpolicy: ::c_int, + pub __schedpolicy: c_int, } pub struct __pthread_rwlock { pub __held: __pthread_spinlock_t, pub __lock: __pthread_spinlock_t, - pub __readers: ::c_int, + pub __readers: c_int, pub __readerqueue: *mut __pthread, pub __writerqueue: *mut __pthread, pub __attr: *mut __pthread_rwlockattr, - pub __data: *mut ::c_void, + pub __data: *mut c_void, } pub struct __pthread_barrier { pub __lock: __pthread_spinlock_t, pub __queue: *mut __pthread, - pub __pending: ::c_uint, - pub __count: ::c_uint, + pub __pending: c_uint, + pub __count: c_uint, pub __attr: *mut __pthread_barrierattr, - pub __data: *mut ::c_void, + pub __data: *mut c_void, } pub struct seminfo { - pub semmap: ::c_int, - pub semmni: ::c_int, - pub semmns: ::c_int, - pub semmnu: ::c_int, - pub semmsl: ::c_int, - pub semopm: ::c_int, - pub semume: ::c_int, - pub semusz: ::c_int, - pub semvmx: ::c_int, - pub semaem: ::c_int, + pub semmap: c_int, + pub semmni: c_int, + pub semmns: c_int, + pub semmnu: c_int, + pub semmsl: c_int, + pub semopm: c_int, + pub semume: c_int, + pub semusz: c_int, + pub semvmx: c_int, + pub semaem: c_int, } pub struct _IO_FILE { @@ -724,112 +729,112 @@ s! { } pub struct sched_param { - pub sched_priority: ::c_int, + pub sched_priority: c_int, } pub struct iovec { - pub iov_base: *mut ::c_void, - pub iov_len: ::size_t, + pub iov_base: *mut c_void, + pub iov_len: size_t, } pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, + pub pw_name: *mut c_char, + pub pw_passwd: *mut c_char, pub pw_uid: __uid_t, pub pw_gid: __gid_t, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, + pub pw_gecos: *mut c_char, + pub pw_dir: *mut c_char, + pub pw_shell: *mut c_char, } pub struct spwd { - pub sp_namp: *mut ::c_char, - pub sp_pwdp: *mut ::c_char, - pub sp_lstchg: ::c_long, - pub sp_min: ::c_long, - pub sp_max: ::c_long, - pub sp_warn: ::c_long, - pub sp_inact: ::c_long, - pub sp_expire: ::c_long, - pub sp_flag: ::c_ulong, + pub sp_namp: *mut c_char, + pub sp_pwdp: *mut c_char, + pub sp_lstchg: c_long, + pub sp_min: c_long, + pub sp_max: c_long, + pub sp_warn: c_long, + pub sp_inact: c_long, + pub sp_expire: c_long, + pub sp_flag: c_ulong, } pub struct itimerspec { - pub it_interval: ::timespec, - pub it_value: ::timespec, + pub it_interval: crate::timespec, + pub it_value: crate::timespec, } pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, - pub tm_gmtoff: ::c_long, - pub tm_zone: *const ::c_char, + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + pub tm_gmtoff: c_long, + pub tm_zone: *const c_char, } pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, + pub decimal_point: *mut c_char, + pub thousands_sep: *mut c_char, + pub grouping: *mut c_char, + pub int_curr_symbol: *mut c_char, + pub currency_symbol: *mut c_char, + pub mon_decimal_point: *mut c_char, + pub mon_thousands_sep: *mut c_char, + pub mon_grouping: *mut c_char, + pub positive_sign: *mut c_char, + pub negative_sign: *mut c_char, + pub int_frac_digits: c_char, + pub frac_digits: c_char, + pub p_cs_precedes: c_char, + pub p_sep_by_space: c_char, + pub n_cs_precedes: c_char, + pub n_sep_by_space: c_char, + pub p_sign_posn: c_char, + pub n_sign_posn: c_char, + pub int_p_cs_precedes: c_char, + pub int_p_sep_by_space: c_char, + pub int_n_cs_precedes: c_char, + pub int_n_sep_by_space: c_char, + pub int_p_sign_posn: c_char, + pub int_n_sign_posn: c_char, } pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, + pub dli_fname: *const c_char, + pub dli_fbase: *mut c_void, + pub dli_sname: *const c_char, + pub dli_saddr: *mut c_void, } pub struct ifaddrs { pub ifa_next: *mut ifaddrs, pub ifa_name: *mut c_char, - pub ifa_flags: ::c_uint, - pub ifa_addr: *mut ::sockaddr, - pub ifa_netmask: *mut ::sockaddr, - pub ifa_ifu: *mut ::sockaddr, // FIXME This should be a union - pub ifa_data: *mut ::c_void, + pub ifa_flags: c_uint, + pub ifa_addr: *mut crate::sockaddr, + pub ifa_netmask: *mut crate::sockaddr, + pub ifa_ifu: *mut crate::sockaddr, // FIXME This should be a union + pub ifa_data: *mut c_void, } pub struct arpreq { - pub arp_pa: ::sockaddr, - pub arp_ha: ::sockaddr, - pub arp_flags: ::c_int, - pub arp_netmask: ::sockaddr, - pub arp_dev: [::c_char; 16], + pub arp_pa: crate::sockaddr, + pub arp_ha: crate::sockaddr, + pub arp_flags: c_int, + pub arp_netmask: crate::sockaddr, + pub arp_dev: [c_char; 16], } pub struct arpreq_old { - pub arp_pa: ::sockaddr, - pub arp_ha: ::sockaddr, - pub arp_flags: ::c_int, - pub arp_netmask: ::sockaddr, + pub arp_pa: crate::sockaddr, + pub arp_ha: crate::sockaddr, + pub arp_flags: c_int, + pub arp_netmask: crate::sockaddr, } pub struct arphdr { @@ -841,40 +846,40 @@ s! { } pub struct arpd_request { - pub req: ::c_ushort, + pub req: c_ushort, pub ip: u32, - pub dev: ::c_ulong, - pub stamp: ::c_ulong, - pub updated: ::c_ulong, - pub ha: [::c_uchar; ::MAX_ADDR_LEN], + pub dev: c_ulong, + pub stamp: c_ulong, + pub updated: c_ulong, + pub ha: [c_uchar; crate::MAX_ADDR_LEN], } pub struct mmsghdr { - pub msg_hdr: ::msghdr, - pub msg_len: ::c_uint, + pub msg_hdr: crate::msghdr, + pub msg_len: c_uint, } pub struct ifreq { /// interface name, e.g. "en0" - pub ifr_name: [::c_char; ::IFNAMSIZ], - pub ifr_ifru: ::sockaddr, + pub ifr_name: [c_char; crate::IFNAMSIZ], + pub ifr_ifru: crate::sockaddr, } pub struct __locale_struct { pub __locales: [*mut __locale_data; 13usize], - pub __ctype_b: *const ::c_ushort, - pub __ctype_tolower: *const ::c_int, - pub __ctype_toupper: *const ::c_int, - pub __names: [*const ::c_char; 13usize], + pub __ctype_b: *const c_ushort, + pub __ctype_tolower: *const c_int, + pub __ctype_toupper: *const c_int, + pub __names: [*const c_char; 13usize], } pub struct utsname { - pub sysname: [::c_char; _UTSNAME_LENGTH], - pub nodename: [::c_char; _UTSNAME_LENGTH], - pub release: [::c_char; _UTSNAME_LENGTH], - pub version: [::c_char; _UTSNAME_LENGTH], - pub machine: [::c_char; _UTSNAME_LENGTH], - pub domainname: [::c_char; _UTSNAME_LENGTH], + pub sysname: [c_char; _UTSNAME_LENGTH], + pub nodename: [c_char; _UTSNAME_LENGTH], + pub release: [c_char; _UTSNAME_LENGTH], + pub version: [c_char; _UTSNAME_LENGTH], + pub machine: [c_char; _UTSNAME_LENGTH], + pub domainname: [c_char; _UTSNAME_LENGTH], } pub struct rlimit64 { @@ -883,31 +888,31 @@ s! { } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, + pub ss_sp: *mut c_void, + pub ss_size: size_t, + pub ss_flags: c_int, } pub struct dl_phdr_info { pub dlpi_addr: Elf_Addr, - pub dlpi_name: *const ::c_char, + pub dlpi_name: *const c_char, pub dlpi_phdr: *const Elf_Phdr, pub dlpi_phnum: Elf_Half, - pub dlpi_adds: ::c_ulonglong, - pub dlpi_subs: ::c_ulonglong, - pub dlpi_tls_modid: ::size_t, - pub dlpi_tls_data: *mut ::c_void, + pub dlpi_adds: c_ulonglong, + pub dlpi_subs: c_ulonglong, + pub dlpi_tls_modid: size_t, + pub dlpi_tls_data: *mut c_void, } pub struct flock { #[cfg(target_pointer_width = "32")] - pub l_type: ::c_int, + pub l_type: c_int, #[cfg(target_pointer_width = "32")] - pub l_whence: ::c_int, + pub l_whence: c_int, #[cfg(target_pointer_width = "64")] - pub l_type: ::c_short, + pub l_type: c_short, #[cfg(target_pointer_width = "64")] - pub l_whence: ::c_short, + pub l_whence: c_short, pub l_start: __off_t, pub l_len: __off_t, pub l_pid: __pid_t, @@ -915,52 +920,52 @@ s! { pub struct flock64 { #[cfg(target_pointer_width = "32")] - pub l_type: ::c_int, + pub l_type: c_int, #[cfg(target_pointer_width = "32")] - pub l_whence: ::c_int, + pub l_whence: c_int, #[cfg(target_pointer_width = "64")] - pub l_type: ::c_short, + pub l_type: c_short, #[cfg(target_pointer_width = "64")] - pub l_whence: ::c_short, + pub l_whence: c_short, pub l_start: __off_t, pub l_len: __off64_t, pub l_pid: __pid_t, } pub struct glob_t { - pub gl_pathc: ::size_t, + pub gl_pathc: size_t, pub gl_pathv: *mut *mut c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, + pub gl_offs: size_t, + pub gl_flags: c_int, - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, + __unused1: *mut c_void, + __unused2: *mut c_void, + __unused3: *mut c_void, + __unused4: *mut c_void, + __unused5: *mut c_void, } pub struct glob64_t { - pub gl_pathc: ::size_t, - pub gl_pathv: *mut *mut ::c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, + pub gl_pathc: size_t, + pub gl_pathv: *mut *mut c_char, + pub gl_offs: size_t, + pub gl_flags: c_int, - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, + __unused1: *mut c_void, + __unused2: *mut c_void, + __unused3: *mut c_void, + __unused4: *mut c_void, + __unused5: *mut c_void, } pub struct regex_t { - __buffer: *mut ::c_void, - __allocated: ::size_t, - __used: ::size_t, - __syntax: ::c_ulong, - __fastmap: *mut ::c_char, - __translate: *mut ::c_char, - __re_nsub: ::size_t, + __buffer: *mut c_void, + __allocated: size_t, + __used: size_t, + __syntax: c_ulong, + __fastmap: *mut c_char, + __translate: *mut c_char, + __re_nsub: size_t, __bitfield: u8, } @@ -972,52 +977,52 @@ s! { } pub struct if_nameindex { - pub if_index: ::c_uint, - pub if_name: *mut ::c_char, + pub if_index: c_uint, + pub if_name: *mut c_char, } // System V IPC pub struct msginfo { - pub msgpool: ::c_int, - pub msgmap: ::c_int, - pub msgmax: ::c_int, - pub msgmnb: ::c_int, - pub msgmni: ::c_int, - pub msgssz: ::c_int, - pub msgtql: ::c_int, - pub msgseg: ::c_ushort, + pub msgpool: c_int, + pub msgmap: c_int, + pub msgmax: c_int, + pub msgmnb: c_int, + pub msgmni: c_int, + pub msgssz: c_int, + pub msgtql: c_int, + pub msgseg: c_ushort, } pub struct sembuf { - pub sem_num: ::c_ushort, - pub sem_op: ::c_short, - pub sem_flg: ::c_short, + pub sem_num: c_ushort, + pub sem_op: c_short, + pub sem_flg: c_short, } pub struct mntent { - pub mnt_fsname: *mut ::c_char, - pub mnt_dir: *mut ::c_char, - pub mnt_type: *mut ::c_char, - pub mnt_opts: *mut ::c_char, - pub mnt_freq: ::c_int, - pub mnt_passno: ::c_int, + pub mnt_fsname: *mut c_char, + pub mnt_dir: *mut c_char, + pub mnt_type: *mut c_char, + pub mnt_opts: *mut c_char, + pub mnt_freq: c_int, + pub mnt_passno: c_int, } pub struct posix_spawn_file_actions_t { - __allocated: ::c_int, - __used: ::c_int, - __actions: *mut ::c_int, - __pad: [::c_int; 16], + __allocated: c_int, + __used: c_int, + __actions: *mut c_int, + __pad: [c_int; 16], } pub struct posix_spawnattr_t { - __flags: ::c_short, - __pgrp: ::pid_t, - __sd: ::sigset_t, - __ss: ::sigset_t, - __sp: ::sched_param, - __policy: ::c_int, - __pad: [::c_int; 16], + __flags: c_short, + __pgrp: crate::pid_t, + __sd: crate::sigset_t, + __ss: crate::sigset_t, + __sp: crate::sched_param, + __policy: c_int, + __pad: [c_int; 16], } pub struct regmatch_t { @@ -1026,28 +1031,28 @@ s! { } pub struct option { - pub name: *const ::c_char, - pub has_arg: ::c_int, - pub flag: *mut ::c_int, - pub val: ::c_int, + pub name: *const c_char, + pub has_arg: c_int, + pub flag: *mut c_int, + pub val: c_int, } } s_no_extra_traits! { pub struct utmpx { - pub ut_type: ::c_short, - pub ut_pid: ::pid_t, - pub ut_line: [::c_char; __UT_LINESIZE], - pub ut_id: [::c_char; 4], + pub ut_type: c_short, + pub ut_pid: crate::pid_t, + pub ut_line: [c_char; __UT_LINESIZE], + pub ut_id: [c_char; 4], - pub ut_user: [::c_char; __UT_NAMESIZE], - pub ut_host: [::c_char; __UT_HOSTSIZE], + pub ut_user: [c_char; __UT_NAMESIZE], + pub ut_host: [c_char; __UT_HOSTSIZE], pub ut_exit: __exit_status, #[cfg(any(all(target_pointer_width = "32", not(target_arch = "x86_64"))))] - pub ut_session: ::c_long, + pub ut_session: c_long, #[cfg(any(all(target_pointer_width = "32", not(target_arch = "x86_64"))))] - pub ut_tv: ::timeval, + pub ut_tv: crate::timeval, #[cfg(not(any(all(target_pointer_width = "32", not(target_arch = "x86_64")))))] pub ut_session: i32, @@ -1055,7 +1060,7 @@ s_no_extra_traits! { pub ut_tv: __timeval, pub ut_addr_v6: [i32; 4], - __glibc_reserved: [::c_char; 20], + __glibc_reserved: [c_char; 20], } } @@ -1083,8 +1088,8 @@ cfg_if! { impl Eq for utmpx {} - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utmpx { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utmpx") .field("ut_type", &self.ut_type) .field("ut_pid", &self.ut_pid) @@ -1101,8 +1106,8 @@ cfg_if! { } } - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_type.hash(state); self.ut_pid.hash(state); self.ut_line.hash(state); @@ -1120,23 +1125,23 @@ cfg_if! { } impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { + pub unsafe fn si_addr(&self) -> *mut c_void { self.si_addr } - pub unsafe fn si_value(&self) -> ::sigval { + pub unsafe fn si_value(&self) -> crate::sigval { self.si_value } - pub unsafe fn si_pid(&self) -> ::pid_t { + pub unsafe fn si_pid(&self) -> crate::pid_t { self.si_pid } - pub unsafe fn si_uid(&self) -> ::uid_t { + pub unsafe fn si_uid(&self) -> crate::uid_t { self.si_uid } - pub unsafe fn si_status(&self) -> ::c_int { + pub unsafe fn si_status(&self) -> c_int { self.si_status } } @@ -1144,101 +1149,101 @@ impl siginfo_t { // const // aio.h -pub const AIO_CANCELED: ::c_int = 0; -pub const AIO_NOTCANCELED: ::c_int = 1; -pub const AIO_ALLDONE: ::c_int = 2; -pub const LIO_READ: ::c_int = 0; -pub const LIO_WRITE: ::c_int = 1; -pub const LIO_NOP: ::c_int = 2; -pub const LIO_WAIT: ::c_int = 0; -pub const LIO_NOWAIT: ::c_int = 1; +pub const AIO_CANCELED: c_int = 0; +pub const AIO_NOTCANCELED: c_int = 1; +pub const AIO_ALLDONE: c_int = 2; +pub const LIO_READ: c_int = 0; +pub const LIO_WRITE: c_int = 1; +pub const LIO_NOP: c_int = 2; +pub const LIO_WAIT: c_int = 0; +pub const LIO_NOWAIT: c_int = 1; // glob.h -pub const GLOB_ERR: ::c_int = 1 << 0; -pub const GLOB_MARK: ::c_int = 1 << 1; -pub const GLOB_NOSORT: ::c_int = 1 << 2; -pub const GLOB_DOOFFS: ::c_int = 1 << 3; -pub const GLOB_NOCHECK: ::c_int = 1 << 4; -pub const GLOB_APPEND: ::c_int = 1 << 5; -pub const GLOB_NOESCAPE: ::c_int = 1 << 6; - -pub const GLOB_NOSPACE: ::c_int = 1; -pub const GLOB_ABORTED: ::c_int = 2; -pub const GLOB_NOMATCH: ::c_int = 3; - -pub const GLOB_PERIOD: ::c_int = 1 << 7; -pub const GLOB_ALTDIRFUNC: ::c_int = 1 << 9; -pub const GLOB_BRACE: ::c_int = 1 << 10; -pub const GLOB_NOMAGIC: ::c_int = 1 << 11; -pub const GLOB_TILDE: ::c_int = 1 << 12; -pub const GLOB_ONLYDIR: ::c_int = 1 << 13; -pub const GLOB_TILDE_CHECK: ::c_int = 1 << 14; +pub const GLOB_ERR: c_int = 1 << 0; +pub const GLOB_MARK: c_int = 1 << 1; +pub const GLOB_NOSORT: c_int = 1 << 2; +pub const GLOB_DOOFFS: c_int = 1 << 3; +pub const GLOB_NOCHECK: c_int = 1 << 4; +pub const GLOB_APPEND: c_int = 1 << 5; +pub const GLOB_NOESCAPE: c_int = 1 << 6; + +pub const GLOB_NOSPACE: c_int = 1; +pub const GLOB_ABORTED: c_int = 2; +pub const GLOB_NOMATCH: c_int = 3; + +pub const GLOB_PERIOD: c_int = 1 << 7; +pub const GLOB_ALTDIRFUNC: c_int = 1 << 9; +pub const GLOB_BRACE: c_int = 1 << 10; +pub const GLOB_NOMAGIC: c_int = 1 << 11; +pub const GLOB_TILDE: c_int = 1 << 12; +pub const GLOB_ONLYDIR: c_int = 1 << 13; +pub const GLOB_TILDE_CHECK: c_int = 1 << 14; // ipc.h -pub const IPC_PRIVATE: ::key_t = 0; +pub const IPC_PRIVATE: crate::key_t = 0; -pub const IPC_CREAT: ::c_int = 0o1000; -pub const IPC_EXCL: ::c_int = 0o2000; -pub const IPC_NOWAIT: ::c_int = 0o4000; +pub const IPC_CREAT: c_int = 0o1000; +pub const IPC_EXCL: c_int = 0o2000; +pub const IPC_NOWAIT: c_int = 0o4000; -pub const IPC_RMID: ::c_int = 0; -pub const IPC_SET: ::c_int = 1; -pub const IPC_STAT: ::c_int = 2; -pub const IPC_INFO: ::c_int = 3; -pub const MSG_STAT: ::c_int = 11; -pub const MSG_INFO: ::c_int = 12; +pub const IPC_RMID: c_int = 0; +pub const IPC_SET: c_int = 1; +pub const IPC_STAT: c_int = 2; +pub const IPC_INFO: c_int = 3; +pub const MSG_STAT: c_int = 11; +pub const MSG_INFO: c_int = 12; -pub const MSG_NOERROR: ::c_int = 0o10000; -pub const MSG_EXCEPT: ::c_int = 0o20000; +pub const MSG_NOERROR: c_int = 0o10000; +pub const MSG_EXCEPT: c_int = 0o20000; // shm.h -pub const SHM_R: ::c_int = 0o400; -pub const SHM_W: ::c_int = 0o200; +pub const SHM_R: c_int = 0o400; +pub const SHM_W: c_int = 0o200; -pub const SHM_RDONLY: ::c_int = 0o10000; -pub const SHM_RND: ::c_int = 0o20000; -pub const SHM_REMAP: ::c_int = 0o40000; +pub const SHM_RDONLY: c_int = 0o10000; +pub const SHM_RND: c_int = 0o20000; +pub const SHM_REMAP: c_int = 0o40000; -pub const SHM_LOCK: ::c_int = 11; -pub const SHM_UNLOCK: ::c_int = 12; +pub const SHM_LOCK: c_int = 11; +pub const SHM_UNLOCK: c_int = 12; // unistd.h -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; pub const __FD_SETSIZE: usize = 256; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; -pub const F_OK: ::c_int = 0; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const SEEK_DATA: ::c_int = 3; -pub const SEEK_HOLE: ::c_int = 4; -pub const L_SET: ::c_int = 0; -pub const L_INCR: ::c_int = 1; -pub const L_XTND: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; -pub const F_LOCK: ::c_int = 1; -pub const F_TLOCK: ::c_int = 2; -pub const F_TEST: ::c_int = 3; -pub const CLOSE_RANGE_CLOEXEC: ::c_int = 4; +pub const R_OK: c_int = 4; +pub const W_OK: c_int = 2; +pub const X_OK: c_int = 1; +pub const F_OK: c_int = 0; +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; +pub const SEEK_DATA: c_int = 3; +pub const SEEK_HOLE: c_int = 4; +pub const L_SET: c_int = 0; +pub const L_INCR: c_int = 1; +pub const L_XTND: c_int = 2; +pub const F_ULOCK: c_int = 0; +pub const F_LOCK: c_int = 1; +pub const F_TLOCK: c_int = 2; +pub const F_TEST: c_int = 3; +pub const CLOSE_RANGE_CLOEXEC: c_int = 4; // stdio.h -pub const EOF: ::c_int = -1; +pub const EOF: c_int = -1; // stdlib.h -pub const WNOHANG: ::c_int = 1; -pub const WUNTRACED: ::c_int = 2; -pub const WSTOPPED: ::c_int = 2; -pub const WCONTINUED: ::c_int = 4; -pub const WNOWAIT: ::c_int = 8; -pub const WEXITED: ::c_int = 16; -pub const __W_CONTINUED: ::c_int = 65535; -pub const __WCOREFLAG: ::c_int = 128; -pub const RAND_MAX: ::c_int = 2147483647; -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; +pub const WNOHANG: c_int = 1; +pub const WUNTRACED: c_int = 2; +pub const WSTOPPED: c_int = 2; +pub const WCONTINUED: c_int = 4; +pub const WNOWAIT: c_int = 8; +pub const WEXITED: c_int = 16; +pub const __W_CONTINUED: c_int = 65535; +pub const __WCOREFLAG: c_int = 128; +pub const RAND_MAX: c_int = 2147483647; +pub const EXIT_FAILURE: c_int = 1; +pub const EXIT_SUCCESS: c_int = 0; pub const __LITTLE_ENDIAN: usize = 1234; pub const __BIG_ENDIAN: usize = 4321; pub const __PDP_ENDIAN: usize = 3412; @@ -1261,160 +1266,160 @@ pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 8; pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_ONCE_T: usize = 8; -pub const __PTHREAD_SPIN_LOCK_INITIALIZER: ::c_int = 0; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; +pub const __PTHREAD_SPIN_LOCK_INITIALIZER: c_int = 0; +pub const PTHREAD_MUTEX_NORMAL: c_int = 0; // sys/resource.h -pub const RLIM_INFINITY: ::rlim_t = 2147483647; -pub const RLIM64_INFINITY: ::rlim64_t = 9223372036854775807; -pub const RLIM_SAVED_MAX: ::rlim_t = RLIM_INFINITY; -pub const RLIM_SAVED_CUR: ::rlim_t = RLIM_INFINITY; -pub const PRIO_MIN: ::c_int = -20; -pub const PRIO_MAX: ::c_int = 20; +pub const RLIM_INFINITY: crate::rlim_t = 2147483647; +pub const RLIM64_INFINITY: crate::rlim64_t = 9223372036854775807; +pub const RLIM_SAVED_MAX: crate::rlim_t = RLIM_INFINITY; +pub const RLIM_SAVED_CUR: crate::rlim_t = RLIM_INFINITY; +pub const PRIO_MIN: c_int = -20; +pub const PRIO_MAX: c_int = 20; // pwd.h pub const NSS_BUFLEN_PASSWD: usize = 1024; // sys/socket.h pub const SOCK_TYPE_MASK: usize = 15; -pub const PF_UNSPEC: ::c_int = 0; -pub const PF_LOCAL: ::c_int = 1; -pub const PF_UNIX: ::c_int = 1; -pub const PF_FILE: ::c_int = 1; -pub const PF_INET: ::c_int = 2; -pub const PF_IMPLINK: ::c_int = 3; -pub const PF_PUP: ::c_int = 4; -pub const PF_CHAOS: ::c_int = 5; -pub const PF_NS: ::c_int = 6; -pub const PF_ISO: ::c_int = 7; -pub const PF_OSI: ::c_int = 7; -pub const PF_ECMA: ::c_int = 8; -pub const PF_DATAKIT: ::c_int = 9; -pub const PF_CCITT: ::c_int = 10; -pub const PF_SNA: ::c_int = 11; -pub const PF_DECnet: ::c_int = 12; -pub const PF_DLI: ::c_int = 13; -pub const PF_LAT: ::c_int = 14; -pub const PF_HYLINK: ::c_int = 15; -pub const PF_APPLETALK: ::c_int = 16; -pub const PF_ROUTE: ::c_int = 17; -pub const PF_XTP: ::c_int = 19; -pub const PF_COIP: ::c_int = 20; -pub const PF_CNT: ::c_int = 21; -pub const PF_RTIP: ::c_int = 22; -pub const PF_IPX: ::c_int = 23; -pub const PF_SIP: ::c_int = 24; -pub const PF_PIP: ::c_int = 25; -pub const PF_INET6: ::c_int = 26; -pub const PF_MAX: ::c_int = 27; -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_LOCAL: ::c_int = 1; -pub const AF_UNIX: ::c_int = 1; -pub const AF_FILE: ::c_int = 1; -pub const AF_INET: ::c_int = 2; -pub const AF_IMPLINK: ::c_int = 3; -pub const AF_PUP: ::c_int = 4; -pub const AF_CHAOS: ::c_int = 5; -pub const AF_NS: ::c_int = 6; -pub const AF_ISO: ::c_int = 7; -pub const AF_OSI: ::c_int = 7; -pub const AF_ECMA: ::c_int = 8; -pub const AF_DATAKIT: ::c_int = 9; -pub const AF_CCITT: ::c_int = 10; -pub const AF_SNA: ::c_int = 11; -pub const AF_DECnet: ::c_int = 12; -pub const AF_DLI: ::c_int = 13; -pub const AF_LAT: ::c_int = 14; -pub const AF_HYLINK: ::c_int = 15; -pub const AF_APPLETALK: ::c_int = 16; -pub const AF_ROUTE: ::c_int = 17; -pub const pseudo_AF_XTP: ::c_int = 19; -pub const AF_COIP: ::c_int = 20; -pub const AF_CNT: ::c_int = 21; -pub const pseudo_AF_RTIP: ::c_int = 22; -pub const AF_IPX: ::c_int = 23; -pub const AF_SIP: ::c_int = 24; -pub const pseudo_AF_PIP: ::c_int = 25; -pub const AF_INET6: ::c_int = 26; -pub const AF_MAX: ::c_int = 27; -pub const SOMAXCONN: ::c_int = 4096; +pub const PF_UNSPEC: c_int = 0; +pub const PF_LOCAL: c_int = 1; +pub const PF_UNIX: c_int = 1; +pub const PF_FILE: c_int = 1; +pub const PF_INET: c_int = 2; +pub const PF_IMPLINK: c_int = 3; +pub const PF_PUP: c_int = 4; +pub const PF_CHAOS: c_int = 5; +pub const PF_NS: c_int = 6; +pub const PF_ISO: c_int = 7; +pub const PF_OSI: c_int = 7; +pub const PF_ECMA: c_int = 8; +pub const PF_DATAKIT: c_int = 9; +pub const PF_CCITT: c_int = 10; +pub const PF_SNA: c_int = 11; +pub const PF_DECnet: c_int = 12; +pub const PF_DLI: c_int = 13; +pub const PF_LAT: c_int = 14; +pub const PF_HYLINK: c_int = 15; +pub const PF_APPLETALK: c_int = 16; +pub const PF_ROUTE: c_int = 17; +pub const PF_XTP: c_int = 19; +pub const PF_COIP: c_int = 20; +pub const PF_CNT: c_int = 21; +pub const PF_RTIP: c_int = 22; +pub const PF_IPX: c_int = 23; +pub const PF_SIP: c_int = 24; +pub const PF_PIP: c_int = 25; +pub const PF_INET6: c_int = 26; +pub const PF_MAX: c_int = 27; +pub const AF_UNSPEC: c_int = 0; +pub const AF_LOCAL: c_int = 1; +pub const AF_UNIX: c_int = 1; +pub const AF_FILE: c_int = 1; +pub const AF_INET: c_int = 2; +pub const AF_IMPLINK: c_int = 3; +pub const AF_PUP: c_int = 4; +pub const AF_CHAOS: c_int = 5; +pub const AF_NS: c_int = 6; +pub const AF_ISO: c_int = 7; +pub const AF_OSI: c_int = 7; +pub const AF_ECMA: c_int = 8; +pub const AF_DATAKIT: c_int = 9; +pub const AF_CCITT: c_int = 10; +pub const AF_SNA: c_int = 11; +pub const AF_DECnet: c_int = 12; +pub const AF_DLI: c_int = 13; +pub const AF_LAT: c_int = 14; +pub const AF_HYLINK: c_int = 15; +pub const AF_APPLETALK: c_int = 16; +pub const AF_ROUTE: c_int = 17; +pub const pseudo_AF_XTP: c_int = 19; +pub const AF_COIP: c_int = 20; +pub const AF_CNT: c_int = 21; +pub const pseudo_AF_RTIP: c_int = 22; +pub const AF_IPX: c_int = 23; +pub const AF_SIP: c_int = 24; +pub const pseudo_AF_PIP: c_int = 25; +pub const AF_INET6: c_int = 26; +pub const AF_MAX: c_int = 27; +pub const SOMAXCONN: c_int = 4096; pub const _SS_SIZE: usize = 128; pub const CMGROUP_MAX: usize = 16; -pub const SOL_SOCKET: ::c_int = 65535; +pub const SOL_SOCKET: c_int = 65535; // sys/time.h -pub const ITIMER_REAL: ::c_int = 0; -pub const ITIMER_VIRTUAL: ::c_int = 1; -pub const ITIMER_PROF: ::c_int = 2; +pub const ITIMER_REAL: c_int = 0; +pub const ITIMER_VIRTUAL: c_int = 1; +pub const ITIMER_PROF: c_int = 2; // netinet/in.h -pub const SOL_IP: ::c_int = 0; -pub const SOL_TCP: ::c_int = 6; -pub const SOL_UDP: ::c_int = 17; -pub const SOL_IPV6: ::c_int = 41; -pub const SOL_ICMPV6: ::c_int = 58; -pub const IP_OPTIONS: ::c_int = 1; -pub const IP_HDRINCL: ::c_int = 2; -pub const IP_TOS: ::c_int = 3; -pub const IP_TTL: ::c_int = 4; -pub const IP_RECVOPTS: ::c_int = 5; -pub const IP_RECVRETOPTS: ::c_int = 6; -pub const IP_RECVDSTADDR: ::c_int = 7; -pub const IP_RETOPTS: ::c_int = 8; -pub const IP_MULTICAST_IF: ::c_int = 9; -pub const IP_MULTICAST_TTL: ::c_int = 10; -pub const IP_MULTICAST_LOOP: ::c_int = 11; -pub const IP_ADD_MEMBERSHIP: ::c_int = 12; -pub const IP_DROP_MEMBERSHIP: ::c_int = 13; -pub const IPV6_ADDRFORM: ::c_int = 1; -pub const IPV6_2292PKTINFO: ::c_int = 2; -pub const IPV6_2292HOPOPTS: ::c_int = 3; -pub const IPV6_2292DSTOPTS: ::c_int = 4; -pub const IPV6_2292RTHDR: ::c_int = 5; -pub const IPV6_2292PKTOPTIONS: ::c_int = 6; -pub const IPV6_CHECKSUM: ::c_int = 7; -pub const IPV6_2292HOPLIMIT: ::c_int = 8; -pub const IPV6_RXINFO: ::c_int = 2; -pub const IPV6_TXINFO: ::c_int = 2; -pub const SCM_SRCINFO: ::c_int = 2; -pub const IPV6_UNICAST_HOPS: ::c_int = 16; -pub const IPV6_MULTICAST_IF: ::c_int = 17; -pub const IPV6_MULTICAST_HOPS: ::c_int = 18; -pub const IPV6_MULTICAST_LOOP: ::c_int = 19; -pub const IPV6_JOIN_GROUP: ::c_int = 20; -pub const IPV6_LEAVE_GROUP: ::c_int = 21; -pub const IPV6_ROUTER_ALERT: ::c_int = 22; -pub const IPV6_MTU_DISCOVER: ::c_int = 23; -pub const IPV6_MTU: ::c_int = 24; -pub const IPV6_RECVERR: ::c_int = 25; -pub const IPV6_V6ONLY: ::c_int = 26; -pub const IPV6_JOIN_ANYCAST: ::c_int = 27; -pub const IPV6_LEAVE_ANYCAST: ::c_int = 28; -pub const IPV6_RECVPKTINFO: ::c_int = 49; -pub const IPV6_PKTINFO: ::c_int = 50; -pub const IPV6_RECVHOPLIMIT: ::c_int = 51; -pub const IPV6_HOPLIMIT: ::c_int = 52; -pub const IPV6_RECVHOPOPTS: ::c_int = 53; -pub const IPV6_HOPOPTS: ::c_int = 54; -pub const IPV6_RTHDRDSTOPTS: ::c_int = 55; -pub const IPV6_RECVRTHDR: ::c_int = 56; -pub const IPV6_RTHDR: ::c_int = 57; -pub const IPV6_RECVDSTOPTS: ::c_int = 58; -pub const IPV6_DSTOPTS: ::c_int = 59; -pub const IPV6_RECVPATHMTU: ::c_int = 60; -pub const IPV6_PATHMTU: ::c_int = 61; -pub const IPV6_DONTFRAG: ::c_int = 62; -pub const IPV6_RECVTCLASS: ::c_int = 66; -pub const IPV6_TCLASS: ::c_int = 67; -pub const IPV6_ADDR_PREFERENCES: ::c_int = 72; -pub const IPV6_MINHOPCOUNT: ::c_int = 73; -pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; -pub const IPV6_RXHOPOPTS: ::c_int = 3; -pub const IPV6_RXDSTOPTS: ::c_int = 4; -pub const IPV6_RTHDR_LOOSE: ::c_int = 0; -pub const IPV6_RTHDR_STRICT: ::c_int = 1; -pub const IPV6_RTHDR_TYPE_0: ::c_int = 0; +pub const SOL_IP: c_int = 0; +pub const SOL_TCP: c_int = 6; +pub const SOL_UDP: c_int = 17; +pub const SOL_IPV6: c_int = 41; +pub const SOL_ICMPV6: c_int = 58; +pub const IP_OPTIONS: c_int = 1; +pub const IP_HDRINCL: c_int = 2; +pub const IP_TOS: c_int = 3; +pub const IP_TTL: c_int = 4; +pub const IP_RECVOPTS: c_int = 5; +pub const IP_RECVRETOPTS: c_int = 6; +pub const IP_RECVDSTADDR: c_int = 7; +pub const IP_RETOPTS: c_int = 8; +pub const IP_MULTICAST_IF: c_int = 9; +pub const IP_MULTICAST_TTL: c_int = 10; +pub const IP_MULTICAST_LOOP: c_int = 11; +pub const IP_ADD_MEMBERSHIP: c_int = 12; +pub const IP_DROP_MEMBERSHIP: c_int = 13; +pub const IPV6_ADDRFORM: c_int = 1; +pub const IPV6_2292PKTINFO: c_int = 2; +pub const IPV6_2292HOPOPTS: c_int = 3; +pub const IPV6_2292DSTOPTS: c_int = 4; +pub const IPV6_2292RTHDR: c_int = 5; +pub const IPV6_2292PKTOPTIONS: c_int = 6; +pub const IPV6_CHECKSUM: c_int = 7; +pub const IPV6_2292HOPLIMIT: c_int = 8; +pub const IPV6_RXINFO: c_int = 2; +pub const IPV6_TXINFO: c_int = 2; +pub const SCM_SRCINFO: c_int = 2; +pub const IPV6_UNICAST_HOPS: c_int = 16; +pub const IPV6_MULTICAST_IF: c_int = 17; +pub const IPV6_MULTICAST_HOPS: c_int = 18; +pub const IPV6_MULTICAST_LOOP: c_int = 19; +pub const IPV6_JOIN_GROUP: c_int = 20; +pub const IPV6_LEAVE_GROUP: c_int = 21; +pub const IPV6_ROUTER_ALERT: c_int = 22; +pub const IPV6_MTU_DISCOVER: c_int = 23; +pub const IPV6_MTU: c_int = 24; +pub const IPV6_RECVERR: c_int = 25; +pub const IPV6_V6ONLY: c_int = 26; +pub const IPV6_JOIN_ANYCAST: c_int = 27; +pub const IPV6_LEAVE_ANYCAST: c_int = 28; +pub const IPV6_RECVPKTINFO: c_int = 49; +pub const IPV6_PKTINFO: c_int = 50; +pub const IPV6_RECVHOPLIMIT: c_int = 51; +pub const IPV6_HOPLIMIT: c_int = 52; +pub const IPV6_RECVHOPOPTS: c_int = 53; +pub const IPV6_HOPOPTS: c_int = 54; +pub const IPV6_RTHDRDSTOPTS: c_int = 55; +pub const IPV6_RECVRTHDR: c_int = 56; +pub const IPV6_RTHDR: c_int = 57; +pub const IPV6_RECVDSTOPTS: c_int = 58; +pub const IPV6_DSTOPTS: c_int = 59; +pub const IPV6_RECVPATHMTU: c_int = 60; +pub const IPV6_PATHMTU: c_int = 61; +pub const IPV6_DONTFRAG: c_int = 62; +pub const IPV6_RECVTCLASS: c_int = 66; +pub const IPV6_TCLASS: c_int = 67; +pub const IPV6_ADDR_PREFERENCES: c_int = 72; +pub const IPV6_MINHOPCOUNT: c_int = 73; +pub const IPV6_ADD_MEMBERSHIP: c_int = 20; +pub const IPV6_DROP_MEMBERSHIP: c_int = 21; +pub const IPV6_RXHOPOPTS: c_int = 3; +pub const IPV6_RXDSTOPTS: c_int = 4; +pub const IPV6_RTHDR_LOOSE: c_int = 0; +pub const IPV6_RTHDR_STRICT: c_int = 1; +pub const IPV6_RTHDR_TYPE_0: c_int = 0; pub const IN_CLASSA_NET: u32 = 4278190080; pub const IN_CLASSA_NSHIFT: usize = 24; pub const IN_CLASSA_HOST: u32 = 16777215; @@ -1497,13 +1502,13 @@ pub const ARPOP_InREPLY: u16 = 9; pub const ARPOP_NAK: u16 = 10; pub const MAX_ADDR_LEN: usize = 7; -pub const ARPD_UPDATE: ::c_ushort = 0x01; -pub const ARPD_LOOKUP: ::c_ushort = 0x02; -pub const ARPD_FLUSH: ::c_ushort = 0x03; -pub const ATF_MAGIC: ::c_int = 0x80; +pub const ARPD_UPDATE: c_ushort = 0x01; +pub const ARPD_LOOKUP: c_ushort = 0x02; +pub const ARPD_FLUSH: c_ushort = 0x03; +pub const ATF_MAGIC: c_int = 0x80; -pub const ATF_NETMASK: ::c_int = 0x20; -pub const ATF_DONTPUB: ::c_int = 0x40; +pub const ATF_NETMASK: c_int = 0x20; +pub const ATF_DONTPUB: c_int = 0x40; pub const ARPHRD_NETROM: u16 = 0; pub const ARPHRD_ETHER: u16 = 1; @@ -1607,7 +1612,7 @@ pub const NGROUPS_MAX: usize = 256; pub const _POSIX_THREAD_KEYS_MAX: usize = 128; pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: usize = 4; pub const _POSIX_THREAD_THREADS_MAX: usize = 64; -pub const SEM_VALUE_MAX: ::c_int = 2147483647; +pub const SEM_VALUE_MAX: c_int = 2147483647; pub const MAXNAMLEN: usize = 255; // netdb.h @@ -1617,63 +1622,63 @@ pub const _PATH_NETWORKS: &'static [u8; 14usize] = b"/etc/networks\0"; pub const _PATH_NSSWITCH_CONF: &'static [u8; 19usize] = b"/etc/nsswitch.conf\0"; pub const _PATH_PROTOCOLS: &'static [u8; 15usize] = b"/etc/protocols\0"; pub const _PATH_SERVICES: &'static [u8; 14usize] = b"/etc/services\0"; -pub const HOST_NOT_FOUND: ::c_int = 1; -pub const TRY_AGAIN: ::c_int = 2; -pub const NO_RECOVERY: ::c_int = 3; -pub const NO_DATA: ::c_int = 4; -pub const NETDB_INTERNAL: ::c_int = -1; -pub const NETDB_SUCCESS: ::c_int = 0; -pub const NO_ADDRESS: ::c_int = 4; -pub const IPPORT_RESERVED: ::c_int = 1024; +pub const HOST_NOT_FOUND: c_int = 1; +pub const TRY_AGAIN: c_int = 2; +pub const NO_RECOVERY: c_int = 3; +pub const NO_DATA: c_int = 4; +pub const NETDB_INTERNAL: c_int = -1; +pub const NETDB_SUCCESS: c_int = 0; +pub const NO_ADDRESS: c_int = 4; +pub const IPPORT_RESERVED: c_int = 1024; pub const SCOPE_DELIMITER: u8 = 37u8; -pub const GAI_WAIT: ::c_int = 0; -pub const GAI_NOWAIT: ::c_int = 1; -pub const AI_PASSIVE: ::c_int = 1; -pub const AI_CANONNAME: ::c_int = 2; -pub const AI_NUMERICHOST: ::c_int = 4; -pub const AI_V4MAPPED: ::c_int = 8; -pub const AI_ALL: ::c_int = 16; -pub const AI_ADDRCONFIG: ::c_int = 32; -pub const AI_IDN: ::c_int = 64; -pub const AI_CANONIDN: ::c_int = 128; -pub const AI_NUMERICSERV: ::c_int = 1024; -pub const EAI_BADFLAGS: ::c_int = -1; -pub const EAI_NONAME: ::c_int = -2; -pub const EAI_AGAIN: ::c_int = -3; -pub const EAI_FAIL: ::c_int = -4; -pub const EAI_FAMILY: ::c_int = -6; -pub const EAI_SOCKTYPE: ::c_int = -7; -pub const EAI_SERVICE: ::c_int = -8; -pub const EAI_MEMORY: ::c_int = -10; -pub const EAI_SYSTEM: ::c_int = -11; -pub const EAI_OVERFLOW: ::c_int = -12; -pub const EAI_NODATA: ::c_int = -5; -pub const EAI_ADDRFAMILY: ::c_int = -9; -pub const EAI_INPROGRESS: ::c_int = -100; -pub const EAI_CANCELED: ::c_int = -101; -pub const EAI_NOTCANCELED: ::c_int = -102; -pub const EAI_ALLDONE: ::c_int = -103; -pub const EAI_INTR: ::c_int = -104; -pub const EAI_IDN_ENCODE: ::c_int = -105; +pub const GAI_WAIT: c_int = 0; +pub const GAI_NOWAIT: c_int = 1; +pub const AI_PASSIVE: c_int = 1; +pub const AI_CANONNAME: c_int = 2; +pub const AI_NUMERICHOST: c_int = 4; +pub const AI_V4MAPPED: c_int = 8; +pub const AI_ALL: c_int = 16; +pub const AI_ADDRCONFIG: c_int = 32; +pub const AI_IDN: c_int = 64; +pub const AI_CANONIDN: c_int = 128; +pub const AI_NUMERICSERV: c_int = 1024; +pub const EAI_BADFLAGS: c_int = -1; +pub const EAI_NONAME: c_int = -2; +pub const EAI_AGAIN: c_int = -3; +pub const EAI_FAIL: c_int = -4; +pub const EAI_FAMILY: c_int = -6; +pub const EAI_SOCKTYPE: c_int = -7; +pub const EAI_SERVICE: c_int = -8; +pub const EAI_MEMORY: c_int = -10; +pub const EAI_SYSTEM: c_int = -11; +pub const EAI_OVERFLOW: c_int = -12; +pub const EAI_NODATA: c_int = -5; +pub const EAI_ADDRFAMILY: c_int = -9; +pub const EAI_INPROGRESS: c_int = -100; +pub const EAI_CANCELED: c_int = -101; +pub const EAI_NOTCANCELED: c_int = -102; +pub const EAI_ALLDONE: c_int = -103; +pub const EAI_INTR: c_int = -104; +pub const EAI_IDN_ENCODE: c_int = -105; pub const NI_MAXHOST: usize = 1025; pub const NI_MAXSERV: usize = 32; -pub const NI_NUMERICHOST: ::c_int = 1; -pub const NI_NUMERICSERV: ::c_int = 2; -pub const NI_NOFQDN: ::c_int = 4; -pub const NI_NAMEREQD: ::c_int = 8; -pub const NI_DGRAM: ::c_int = 16; -pub const NI_IDN: ::c_int = 32; +pub const NI_NUMERICHOST: c_int = 1; +pub const NI_NUMERICSERV: c_int = 2; +pub const NI_NOFQDN: c_int = 4; +pub const NI_NAMEREQD: c_int = 8; +pub const NI_DGRAM: c_int = 16; +pub const NI_IDN: c_int = 32; // time.h -pub const CLOCK_REALTIME: ::clockid_t = 0; -pub const CLOCK_MONOTONIC: ::clockid_t = 1; -pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 2; -pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 3; -pub const CLOCK_MONOTONIC_RAW: ::clockid_t = 4; -pub const CLOCK_REALTIME_COARSE: ::clockid_t = 5; -pub const CLOCK_MONOTONIC_COARSE: ::clockid_t = 6; -pub const TIMER_ABSTIME: ::c_int = 1; -pub const TIME_UTC: ::c_int = 1; +pub const CLOCK_REALTIME: crate::clockid_t = 0; +pub const CLOCK_MONOTONIC: crate::clockid_t = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: crate::clockid_t = 2; +pub const CLOCK_THREAD_CPUTIME_ID: crate::clockid_t = 3; +pub const CLOCK_MONOTONIC_RAW: crate::clockid_t = 4; +pub const CLOCK_REALTIME_COARSE: crate::clockid_t = 5; +pub const CLOCK_MONOTONIC_COARSE: crate::clockid_t = 6; +pub const TIMER_ABSTIME: c_int = 1; +pub const TIME_UTC: c_int = 1; // sys/poll.h pub const POLLIN: i16 = 1; @@ -1701,205 +1706,205 @@ pub const __LC_ADDRESS: usize = 9; pub const __LC_TELEPHONE: usize = 10; pub const __LC_MEASUREMENT: usize = 11; pub const __LC_IDENTIFICATION: usize = 12; -pub const LC_CTYPE: ::c_int = 0; -pub const LC_NUMERIC: ::c_int = 1; -pub const LC_TIME: ::c_int = 2; -pub const LC_COLLATE: ::c_int = 3; -pub const LC_MONETARY: ::c_int = 4; -pub const LC_MESSAGES: ::c_int = 5; -pub const LC_ALL: ::c_int = 6; -pub const LC_PAPER: ::c_int = 7; -pub const LC_NAME: ::c_int = 8; -pub const LC_ADDRESS: ::c_int = 9; -pub const LC_TELEPHONE: ::c_int = 10; -pub const LC_MEASUREMENT: ::c_int = 11; -pub const LC_IDENTIFICATION: ::c_int = 12; -pub const LC_CTYPE_MASK: ::c_int = 1; -pub const LC_NUMERIC_MASK: ::c_int = 2; -pub const LC_TIME_MASK: ::c_int = 4; -pub const LC_COLLATE_MASK: ::c_int = 8; -pub const LC_MONETARY_MASK: ::c_int = 16; -pub const LC_MESSAGES_MASK: ::c_int = 32; -pub const LC_PAPER_MASK: ::c_int = 128; -pub const LC_NAME_MASK: ::c_int = 256; -pub const LC_ADDRESS_MASK: ::c_int = 512; -pub const LC_TELEPHONE_MASK: ::c_int = 1024; -pub const LC_MEASUREMENT_MASK: ::c_int = 2048; -pub const LC_IDENTIFICATION_MASK: ::c_int = 4096; -pub const LC_ALL_MASK: ::c_int = 8127; - -pub const ABDAY_1: ::nl_item = 0x20000; -pub const ABDAY_2: ::nl_item = 0x20001; -pub const ABDAY_3: ::nl_item = 0x20002; -pub const ABDAY_4: ::nl_item = 0x20003; -pub const ABDAY_5: ::nl_item = 0x20004; -pub const ABDAY_6: ::nl_item = 0x20005; -pub const ABDAY_7: ::nl_item = 0x20006; - -pub const DAY_1: ::nl_item = 0x20007; -pub const DAY_2: ::nl_item = 0x20008; -pub const DAY_3: ::nl_item = 0x20009; -pub const DAY_4: ::nl_item = 0x2000A; -pub const DAY_5: ::nl_item = 0x2000B; -pub const DAY_6: ::nl_item = 0x2000C; -pub const DAY_7: ::nl_item = 0x2000D; - -pub const ABMON_1: ::nl_item = 0x2000E; -pub const ABMON_2: ::nl_item = 0x2000F; -pub const ABMON_3: ::nl_item = 0x20010; -pub const ABMON_4: ::nl_item = 0x20011; -pub const ABMON_5: ::nl_item = 0x20012; -pub const ABMON_6: ::nl_item = 0x20013; -pub const ABMON_7: ::nl_item = 0x20014; -pub const ABMON_8: ::nl_item = 0x20015; -pub const ABMON_9: ::nl_item = 0x20016; -pub const ABMON_10: ::nl_item = 0x20017; -pub const ABMON_11: ::nl_item = 0x20018; -pub const ABMON_12: ::nl_item = 0x20019; - -pub const MON_1: ::nl_item = 0x2001A; -pub const MON_2: ::nl_item = 0x2001B; -pub const MON_3: ::nl_item = 0x2001C; -pub const MON_4: ::nl_item = 0x2001D; -pub const MON_5: ::nl_item = 0x2001E; -pub const MON_6: ::nl_item = 0x2001F; -pub const MON_7: ::nl_item = 0x20020; -pub const MON_8: ::nl_item = 0x20021; -pub const MON_9: ::nl_item = 0x20022; -pub const MON_10: ::nl_item = 0x20023; -pub const MON_11: ::nl_item = 0x20024; -pub const MON_12: ::nl_item = 0x20025; - -pub const AM_STR: ::nl_item = 0x20026; -pub const PM_STR: ::nl_item = 0x20027; - -pub const D_T_FMT: ::nl_item = 0x20028; -pub const D_FMT: ::nl_item = 0x20029; -pub const T_FMT: ::nl_item = 0x2002A; -pub const T_FMT_AMPM: ::nl_item = 0x2002B; - -pub const ERA: ::nl_item = 0x2002C; -pub const ERA_D_FMT: ::nl_item = 0x2002E; -pub const ALT_DIGITS: ::nl_item = 0x2002F; -pub const ERA_D_T_FMT: ::nl_item = 0x20030; -pub const ERA_T_FMT: ::nl_item = 0x20031; - -pub const CODESET: ::nl_item = 14; -pub const CRNCYSTR: ::nl_item = 0x4000F; -pub const RADIXCHAR: ::nl_item = 0x10000; -pub const THOUSEP: ::nl_item = 0x10001; -pub const YESEXPR: ::nl_item = 0x50000; -pub const NOEXPR: ::nl_item = 0x50001; -pub const YESSTR: ::nl_item = 0x50002; -pub const NOSTR: ::nl_item = 0x50003; +pub const LC_CTYPE: c_int = 0; +pub const LC_NUMERIC: c_int = 1; +pub const LC_TIME: c_int = 2; +pub const LC_COLLATE: c_int = 3; +pub const LC_MONETARY: c_int = 4; +pub const LC_MESSAGES: c_int = 5; +pub const LC_ALL: c_int = 6; +pub const LC_PAPER: c_int = 7; +pub const LC_NAME: c_int = 8; +pub const LC_ADDRESS: c_int = 9; +pub const LC_TELEPHONE: c_int = 10; +pub const LC_MEASUREMENT: c_int = 11; +pub const LC_IDENTIFICATION: c_int = 12; +pub const LC_CTYPE_MASK: c_int = 1; +pub const LC_NUMERIC_MASK: c_int = 2; +pub const LC_TIME_MASK: c_int = 4; +pub const LC_COLLATE_MASK: c_int = 8; +pub const LC_MONETARY_MASK: c_int = 16; +pub const LC_MESSAGES_MASK: c_int = 32; +pub const LC_PAPER_MASK: c_int = 128; +pub const LC_NAME_MASK: c_int = 256; +pub const LC_ADDRESS_MASK: c_int = 512; +pub const LC_TELEPHONE_MASK: c_int = 1024; +pub const LC_MEASUREMENT_MASK: c_int = 2048; +pub const LC_IDENTIFICATION_MASK: c_int = 4096; +pub const LC_ALL_MASK: c_int = 8127; + +pub const ABDAY_1: crate::nl_item = 0x20000; +pub const ABDAY_2: crate::nl_item = 0x20001; +pub const ABDAY_3: crate::nl_item = 0x20002; +pub const ABDAY_4: crate::nl_item = 0x20003; +pub const ABDAY_5: crate::nl_item = 0x20004; +pub const ABDAY_6: crate::nl_item = 0x20005; +pub const ABDAY_7: crate::nl_item = 0x20006; + +pub const DAY_1: crate::nl_item = 0x20007; +pub const DAY_2: crate::nl_item = 0x20008; +pub const DAY_3: crate::nl_item = 0x20009; +pub const DAY_4: crate::nl_item = 0x2000A; +pub const DAY_5: crate::nl_item = 0x2000B; +pub const DAY_6: crate::nl_item = 0x2000C; +pub const DAY_7: crate::nl_item = 0x2000D; + +pub const ABMON_1: crate::nl_item = 0x2000E; +pub const ABMON_2: crate::nl_item = 0x2000F; +pub const ABMON_3: crate::nl_item = 0x20010; +pub const ABMON_4: crate::nl_item = 0x20011; +pub const ABMON_5: crate::nl_item = 0x20012; +pub const ABMON_6: crate::nl_item = 0x20013; +pub const ABMON_7: crate::nl_item = 0x20014; +pub const ABMON_8: crate::nl_item = 0x20015; +pub const ABMON_9: crate::nl_item = 0x20016; +pub const ABMON_10: crate::nl_item = 0x20017; +pub const ABMON_11: crate::nl_item = 0x20018; +pub const ABMON_12: crate::nl_item = 0x20019; + +pub const MON_1: crate::nl_item = 0x2001A; +pub const MON_2: crate::nl_item = 0x2001B; +pub const MON_3: crate::nl_item = 0x2001C; +pub const MON_4: crate::nl_item = 0x2001D; +pub const MON_5: crate::nl_item = 0x2001E; +pub const MON_6: crate::nl_item = 0x2001F; +pub const MON_7: crate::nl_item = 0x20020; +pub const MON_8: crate::nl_item = 0x20021; +pub const MON_9: crate::nl_item = 0x20022; +pub const MON_10: crate::nl_item = 0x20023; +pub const MON_11: crate::nl_item = 0x20024; +pub const MON_12: crate::nl_item = 0x20025; + +pub const AM_STR: crate::nl_item = 0x20026; +pub const PM_STR: crate::nl_item = 0x20027; + +pub const D_T_FMT: crate::nl_item = 0x20028; +pub const D_FMT: crate::nl_item = 0x20029; +pub const T_FMT: crate::nl_item = 0x2002A; +pub const T_FMT_AMPM: crate::nl_item = 0x2002B; + +pub const ERA: crate::nl_item = 0x2002C; +pub const ERA_D_FMT: crate::nl_item = 0x2002E; +pub const ALT_DIGITS: crate::nl_item = 0x2002F; +pub const ERA_D_T_FMT: crate::nl_item = 0x20030; +pub const ERA_T_FMT: crate::nl_item = 0x20031; + +pub const CODESET: crate::nl_item = 14; +pub const CRNCYSTR: crate::nl_item = 0x4000F; +pub const RADIXCHAR: crate::nl_item = 0x10000; +pub const THOUSEP: crate::nl_item = 0x10001; +pub const YESEXPR: crate::nl_item = 0x50000; +pub const NOEXPR: crate::nl_item = 0x50001; +pub const YESSTR: crate::nl_item = 0x50002; +pub const NOSTR: crate::nl_item = 0x50003; // reboot.h -pub const RB_AUTOBOOT: ::c_int = 0x0; -pub const RB_ASKNAME: ::c_int = 0x1; -pub const RB_SINGLE: ::c_int = 0x2; -pub const RB_KBD: ::c_int = 0x4; -pub const RB_HALT: ::c_int = 0x8; -pub const RB_INITNAME: ::c_int = 0x10; -pub const RB_DFLTROOT: ::c_int = 0x20; -pub const RB_NOBOOTRC: ::c_int = 0x20; -pub const RB_ALTBOOT: ::c_int = 0x40; -pub const RB_UNIPROC: ::c_int = 0x80; -pub const RB_DEBUGGER: ::c_int = 0x1000; +pub const RB_AUTOBOOT: c_int = 0x0; +pub const RB_ASKNAME: c_int = 0x1; +pub const RB_SINGLE: c_int = 0x2; +pub const RB_KBD: c_int = 0x4; +pub const RB_HALT: c_int = 0x8; +pub const RB_INITNAME: c_int = 0x10; +pub const RB_DFLTROOT: c_int = 0x20; +pub const RB_NOBOOTRC: c_int = 0x20; +pub const RB_ALTBOOT: c_int = 0x40; +pub const RB_UNIPROC: c_int = 0x80; +pub const RB_DEBUGGER: c_int = 0x1000; // semaphore.h pub const __SIZEOF_SEM_T: usize = 20; -pub const SEM_FAILED: *mut ::sem_t = 0 as *mut sem_t; +pub const SEM_FAILED: *mut crate::sem_t = 0 as *mut sem_t; // termios.h -pub const IGNBRK: ::tcflag_t = 1; -pub const BRKINT: ::tcflag_t = 2; -pub const IGNPAR: ::tcflag_t = 4; -pub const PARMRK: ::tcflag_t = 8; -pub const INPCK: ::tcflag_t = 16; -pub const ISTRIP: ::tcflag_t = 32; -pub const INLCR: ::tcflag_t = 64; -pub const IGNCR: ::tcflag_t = 128; -pub const ICRNL: ::tcflag_t = 256; -pub const IXON: ::tcflag_t = 512; -pub const IXOFF: ::tcflag_t = 1024; -pub const IXANY: ::tcflag_t = 2048; -pub const IMAXBEL: ::tcflag_t = 8192; -pub const IUCLC: ::tcflag_t = 16384; -pub const OPOST: ::tcflag_t = 1; -pub const ONLCR: ::tcflag_t = 2; -pub const ONOEOT: ::tcflag_t = 8; -pub const OCRNL: ::tcflag_t = 16; -pub const ONOCR: ::tcflag_t = 32; -pub const ONLRET: ::tcflag_t = 64; -pub const NLDLY: ::tcflag_t = 768; -pub const NL0: ::tcflag_t = 0; -pub const NL1: ::tcflag_t = 256; -pub const TABDLY: ::tcflag_t = 3076; -pub const TAB0: ::tcflag_t = 0; -pub const TAB1: ::tcflag_t = 1024; -pub const TAB2: ::tcflag_t = 2048; -pub const TAB3: ::tcflag_t = 4; -pub const CRDLY: ::tcflag_t = 12288; -pub const CR0: ::tcflag_t = 0; -pub const CR1: ::tcflag_t = 4096; -pub const CR2: ::tcflag_t = 8192; -pub const CR3: ::tcflag_t = 12288; -pub const FFDLY: ::tcflag_t = 16384; -pub const FF0: ::tcflag_t = 0; -pub const FF1: ::tcflag_t = 16384; -pub const BSDLY: ::tcflag_t = 32768; -pub const BS0: ::tcflag_t = 0; -pub const BS1: ::tcflag_t = 32768; -pub const VTDLY: ::tcflag_t = 65536; -pub const VT0: ::tcflag_t = 0; -pub const VT1: ::tcflag_t = 65536; -pub const OLCUC: ::tcflag_t = 131072; -pub const OFILL: ::tcflag_t = 262144; -pub const OFDEL: ::tcflag_t = 524288; -pub const CIGNORE: ::tcflag_t = 1; -pub const CSIZE: ::tcflag_t = 768; -pub const CS5: ::tcflag_t = 0; -pub const CS6: ::tcflag_t = 256; -pub const CS7: ::tcflag_t = 512; -pub const CS8: ::tcflag_t = 768; -pub const CSTOPB: ::tcflag_t = 1024; -pub const CREAD: ::tcflag_t = 2048; -pub const PARENB: ::tcflag_t = 4096; -pub const PARODD: ::tcflag_t = 8192; -pub const HUPCL: ::tcflag_t = 16384; -pub const CLOCAL: ::tcflag_t = 32768; -pub const CRTSCTS: ::tcflag_t = 65536; -pub const CRTS_IFLOW: ::tcflag_t = 65536; -pub const CCTS_OFLOW: ::tcflag_t = 65536; -pub const CDTRCTS: ::tcflag_t = 131072; -pub const MDMBUF: ::tcflag_t = 1048576; -pub const CHWFLOW: ::tcflag_t = 1245184; -pub const ECHOKE: ::tcflag_t = 1; -pub const _ECHOE: ::tcflag_t = 2; -pub const ECHOE: ::tcflag_t = 2; -pub const _ECHOK: ::tcflag_t = 4; -pub const ECHOK: ::tcflag_t = 4; -pub const _ECHO: ::tcflag_t = 8; -pub const ECHO: ::tcflag_t = 8; -pub const _ECHONL: ::tcflag_t = 16; -pub const ECHONL: ::tcflag_t = 16; -pub const ECHOPRT: ::tcflag_t = 32; -pub const ECHOCTL: ::tcflag_t = 64; -pub const _ISIG: ::tcflag_t = 128; -pub const ISIG: ::tcflag_t = 128; -pub const _ICANON: ::tcflag_t = 256; -pub const ICANON: ::tcflag_t = 256; -pub const ALTWERASE: ::tcflag_t = 512; -pub const _IEXTEN: ::tcflag_t = 1024; -pub const IEXTEN: ::tcflag_t = 1024; -pub const EXTPROC: ::tcflag_t = 2048; -pub const _TOSTOP: ::tcflag_t = 4194304; -pub const TOSTOP: ::tcflag_t = 4194304; -pub const FLUSHO: ::tcflag_t = 8388608; -pub const NOKERNINFO: ::tcflag_t = 33554432; -pub const PENDIN: ::tcflag_t = 536870912; -pub const _NOFLSH: ::tcflag_t = 2147483648; -pub const NOFLSH: ::tcflag_t = 2147483648; +pub const IGNBRK: crate::tcflag_t = 1; +pub const BRKINT: crate::tcflag_t = 2; +pub const IGNPAR: crate::tcflag_t = 4; +pub const PARMRK: crate::tcflag_t = 8; +pub const INPCK: crate::tcflag_t = 16; +pub const ISTRIP: crate::tcflag_t = 32; +pub const INLCR: crate::tcflag_t = 64; +pub const IGNCR: crate::tcflag_t = 128; +pub const ICRNL: crate::tcflag_t = 256; +pub const IXON: crate::tcflag_t = 512; +pub const IXOFF: crate::tcflag_t = 1024; +pub const IXANY: crate::tcflag_t = 2048; +pub const IMAXBEL: crate::tcflag_t = 8192; +pub const IUCLC: crate::tcflag_t = 16384; +pub const OPOST: crate::tcflag_t = 1; +pub const ONLCR: crate::tcflag_t = 2; +pub const ONOEOT: crate::tcflag_t = 8; +pub const OCRNL: crate::tcflag_t = 16; +pub const ONOCR: crate::tcflag_t = 32; +pub const ONLRET: crate::tcflag_t = 64; +pub const NLDLY: crate::tcflag_t = 768; +pub const NL0: crate::tcflag_t = 0; +pub const NL1: crate::tcflag_t = 256; +pub const TABDLY: crate::tcflag_t = 3076; +pub const TAB0: crate::tcflag_t = 0; +pub const TAB1: crate::tcflag_t = 1024; +pub const TAB2: crate::tcflag_t = 2048; +pub const TAB3: crate::tcflag_t = 4; +pub const CRDLY: crate::tcflag_t = 12288; +pub const CR0: crate::tcflag_t = 0; +pub const CR1: crate::tcflag_t = 4096; +pub const CR2: crate::tcflag_t = 8192; +pub const CR3: crate::tcflag_t = 12288; +pub const FFDLY: crate::tcflag_t = 16384; +pub const FF0: crate::tcflag_t = 0; +pub const FF1: crate::tcflag_t = 16384; +pub const BSDLY: crate::tcflag_t = 32768; +pub const BS0: crate::tcflag_t = 0; +pub const BS1: crate::tcflag_t = 32768; +pub const VTDLY: crate::tcflag_t = 65536; +pub const VT0: crate::tcflag_t = 0; +pub const VT1: crate::tcflag_t = 65536; +pub const OLCUC: crate::tcflag_t = 131072; +pub const OFILL: crate::tcflag_t = 262144; +pub const OFDEL: crate::tcflag_t = 524288; +pub const CIGNORE: crate::tcflag_t = 1; +pub const CSIZE: crate::tcflag_t = 768; +pub const CS5: crate::tcflag_t = 0; +pub const CS6: crate::tcflag_t = 256; +pub const CS7: crate::tcflag_t = 512; +pub const CS8: crate::tcflag_t = 768; +pub const CSTOPB: crate::tcflag_t = 1024; +pub const CREAD: crate::tcflag_t = 2048; +pub const PARENB: crate::tcflag_t = 4096; +pub const PARODD: crate::tcflag_t = 8192; +pub const HUPCL: crate::tcflag_t = 16384; +pub const CLOCAL: crate::tcflag_t = 32768; +pub const CRTSCTS: crate::tcflag_t = 65536; +pub const CRTS_IFLOW: crate::tcflag_t = 65536; +pub const CCTS_OFLOW: crate::tcflag_t = 65536; +pub const CDTRCTS: crate::tcflag_t = 131072; +pub const MDMBUF: crate::tcflag_t = 1048576; +pub const CHWFLOW: crate::tcflag_t = 1245184; +pub const ECHOKE: crate::tcflag_t = 1; +pub const _ECHOE: crate::tcflag_t = 2; +pub const ECHOE: crate::tcflag_t = 2; +pub const _ECHOK: crate::tcflag_t = 4; +pub const ECHOK: crate::tcflag_t = 4; +pub const _ECHO: crate::tcflag_t = 8; +pub const ECHO: crate::tcflag_t = 8; +pub const _ECHONL: crate::tcflag_t = 16; +pub const ECHONL: crate::tcflag_t = 16; +pub const ECHOPRT: crate::tcflag_t = 32; +pub const ECHOCTL: crate::tcflag_t = 64; +pub const _ISIG: crate::tcflag_t = 128; +pub const ISIG: crate::tcflag_t = 128; +pub const _ICANON: crate::tcflag_t = 256; +pub const ICANON: crate::tcflag_t = 256; +pub const ALTWERASE: crate::tcflag_t = 512; +pub const _IEXTEN: crate::tcflag_t = 1024; +pub const IEXTEN: crate::tcflag_t = 1024; +pub const EXTPROC: crate::tcflag_t = 2048; +pub const _TOSTOP: crate::tcflag_t = 4194304; +pub const TOSTOP: crate::tcflag_t = 4194304; +pub const FLUSHO: crate::tcflag_t = 8388608; +pub const NOKERNINFO: crate::tcflag_t = 33554432; +pub const PENDIN: crate::tcflag_t = 536870912; +pub const _NOFLSH: crate::tcflag_t = 2147483648; +pub const NOFLSH: crate::tcflag_t = 2147483648; pub const VEOF: usize = 0; pub const VEOL: usize = 1; pub const VEOL2: usize = 2; @@ -1919,58 +1924,58 @@ pub const VMIN: usize = 16; pub const VTIME: usize = 17; pub const VSTATUS: usize = 18; pub const NCCS: usize = 20; -pub const B0: ::speed_t = 0; -pub const B50: ::speed_t = 50; -pub const B75: ::speed_t = 75; -pub const B110: ::speed_t = 110; -pub const B134: ::speed_t = 134; -pub const B150: ::speed_t = 150; -pub const B200: ::speed_t = 200; -pub const B300: ::speed_t = 300; -pub const B600: ::speed_t = 600; -pub const B1200: ::speed_t = 1200; -pub const B1800: ::speed_t = 1800; -pub const B2400: ::speed_t = 2400; -pub const B4800: ::speed_t = 4800; -pub const B9600: ::speed_t = 9600; -pub const B7200: ::speed_t = 7200; -pub const B14400: ::speed_t = 14400; -pub const B19200: ::speed_t = 19200; -pub const B28800: ::speed_t = 28800; -pub const B38400: ::speed_t = 38400; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 57600; -pub const B76800: ::speed_t = 76800; -pub const B115200: ::speed_t = 115200; -pub const B230400: ::speed_t = 230400; -pub const B460800: ::speed_t = 460800; -pub const B500000: ::speed_t = 500000; -pub const B576000: ::speed_t = 576000; -pub const B921600: ::speed_t = 921600; -pub const B1000000: ::speed_t = 1000000; -pub const B1152000: ::speed_t = 1152000; -pub const B1500000: ::speed_t = 1500000; -pub const B2000000: ::speed_t = 2000000; -pub const B2500000: ::speed_t = 2500000; -pub const B3000000: ::speed_t = 3000000; -pub const B3500000: ::speed_t = 3500000; -pub const B4000000: ::speed_t = 4000000; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; -pub const TCSASOFT: ::c_int = 16; -pub const TCIFLUSH: ::c_int = 1; -pub const TCOFLUSH: ::c_int = 2; -pub const TCIOFLUSH: ::c_int = 3; -pub const TCOOFF: ::c_int = 1; -pub const TCOON: ::c_int = 2; -pub const TCIOFF: ::c_int = 3; -pub const TCION: ::c_int = 4; -pub const TTYDEF_IFLAG: ::tcflag_t = 11042; -pub const TTYDEF_LFLAG: ::tcflag_t = 1483; -pub const TTYDEF_CFLAG: ::tcflag_t = 23040; -pub const TTYDEF_SPEED: ::tcflag_t = 9600; +pub const B0: crate::speed_t = 0; +pub const B50: crate::speed_t = 50; +pub const B75: crate::speed_t = 75; +pub const B110: crate::speed_t = 110; +pub const B134: crate::speed_t = 134; +pub const B150: crate::speed_t = 150; +pub const B200: crate::speed_t = 200; +pub const B300: crate::speed_t = 300; +pub const B600: crate::speed_t = 600; +pub const B1200: crate::speed_t = 1200; +pub const B1800: crate::speed_t = 1800; +pub const B2400: crate::speed_t = 2400; +pub const B4800: crate::speed_t = 4800; +pub const B9600: crate::speed_t = 9600; +pub const B7200: crate::speed_t = 7200; +pub const B14400: crate::speed_t = 14400; +pub const B19200: crate::speed_t = 19200; +pub const B28800: crate::speed_t = 28800; +pub const B38400: crate::speed_t = 38400; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const B57600: crate::speed_t = 57600; +pub const B76800: crate::speed_t = 76800; +pub const B115200: crate::speed_t = 115200; +pub const B230400: crate::speed_t = 230400; +pub const B460800: crate::speed_t = 460800; +pub const B500000: crate::speed_t = 500000; +pub const B576000: crate::speed_t = 576000; +pub const B921600: crate::speed_t = 921600; +pub const B1000000: crate::speed_t = 1000000; +pub const B1152000: crate::speed_t = 1152000; +pub const B1500000: crate::speed_t = 1500000; +pub const B2000000: crate::speed_t = 2000000; +pub const B2500000: crate::speed_t = 2500000; +pub const B3000000: crate::speed_t = 3000000; +pub const B3500000: crate::speed_t = 3500000; +pub const B4000000: crate::speed_t = 4000000; +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; +pub const TCSASOFT: c_int = 16; +pub const TCIFLUSH: c_int = 1; +pub const TCOFLUSH: c_int = 2; +pub const TCIOFLUSH: c_int = 3; +pub const TCOOFF: c_int = 1; +pub const TCOON: c_int = 2; +pub const TCIOFF: c_int = 3; +pub const TCION: c_int = 4; +pub const TTYDEF_IFLAG: crate::tcflag_t = 11042; +pub const TTYDEF_LFLAG: crate::tcflag_t = 1483; +pub const TTYDEF_CFLAG: crate::tcflag_t = 23040; +pub const TTYDEF_SPEED: crate::tcflag_t = 9600; pub const CEOL: u8 = 0u8; pub const CERASE: u8 = 127; pub const CMIN: u8 = 1; @@ -1979,76 +1984,76 @@ pub const CTIME: u8 = 0; pub const CBRK: u8 = 0u8; // dlfcn.h -pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; -pub const RTLD_NEXT: *mut ::c_void = -1i64 as *mut ::c_void; -pub const RTLD_LAZY: ::c_int = 1; -pub const RTLD_NOW: ::c_int = 2; -pub const RTLD_BINDING_MASK: ::c_int = 3; -pub const RTLD_NOLOAD: ::c_int = 4; -pub const RTLD_DEEPBIND: ::c_int = 8; -pub const RTLD_GLOBAL: ::c_int = 256; -pub const RTLD_LOCAL: ::c_int = 0; -pub const RTLD_NODELETE: ::c_int = 4096; +pub const RTLD_DEFAULT: *mut c_void = 0i64 as *mut c_void; +pub const RTLD_NEXT: *mut c_void = -1i64 as *mut c_void; +pub const RTLD_LAZY: c_int = 1; +pub const RTLD_NOW: c_int = 2; +pub const RTLD_BINDING_MASK: c_int = 3; +pub const RTLD_NOLOAD: c_int = 4; +pub const RTLD_DEEPBIND: c_int = 8; +pub const RTLD_GLOBAL: c_int = 256; +pub const RTLD_LOCAL: c_int = 0; +pub const RTLD_NODELETE: c_int = 4096; pub const DLFO_STRUCT_HAS_EH_DBASE: usize = 1; pub const DLFO_STRUCT_HAS_EH_COUNT: usize = 0; pub const LM_ID_BASE: c_long = 0; pub const LM_ID_NEWLM: c_long = -1; // bits/signum_generic.h -pub const SIGINT: ::c_int = 2; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGFPE: ::c_int = 8; -pub const SIGSEGV: ::c_int = 11; -pub const SIGTERM: ::c_int = 15; -pub const SIGHUP: ::c_int = 1; -pub const SIGQUIT: ::c_int = 3; -pub const SIGTRAP: ::c_int = 5; -pub const SIGKILL: ::c_int = 9; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGIOT: ::c_int = 6; -pub const SIGBUS: ::c_int = 10; -pub const SIGSYS: ::c_int = 12; -pub const SIGEMT: ::c_int = 7; -pub const SIGINFO: ::c_int = 29; -pub const SIGLOST: ::c_int = 32; -pub const SIGURG: ::c_int = 16; -pub const SIGSTOP: ::c_int = 17; -pub const SIGTSTP: ::c_int = 18; -pub const SIGCONT: ::c_int = 19; -pub const SIGCHLD: ::c_int = 20; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGPOLL: ::c_int = 23; -pub const SIGXCPU: ::c_int = 24; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGUSR1: ::c_int = 30; -pub const SIGUSR2: ::c_int = 31; -pub const SIGWINCH: ::c_int = 28; -pub const SIGIO: ::c_int = 23; -pub const SIGCLD: ::c_int = 20; +pub const SIGINT: c_int = 2; +pub const SIGILL: c_int = 4; +pub const SIGABRT: c_int = 6; +pub const SIGFPE: c_int = 8; +pub const SIGSEGV: c_int = 11; +pub const SIGTERM: c_int = 15; +pub const SIGHUP: c_int = 1; +pub const SIGQUIT: c_int = 3; +pub const SIGTRAP: c_int = 5; +pub const SIGKILL: c_int = 9; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGIOT: c_int = 6; +pub const SIGBUS: c_int = 10; +pub const SIGSYS: c_int = 12; +pub const SIGEMT: c_int = 7; +pub const SIGINFO: c_int = 29; +pub const SIGLOST: c_int = 32; +pub const SIGURG: c_int = 16; +pub const SIGSTOP: c_int = 17; +pub const SIGTSTP: c_int = 18; +pub const SIGCONT: c_int = 19; +pub const SIGCHLD: c_int = 20; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGPOLL: c_int = 23; +pub const SIGXCPU: c_int = 24; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGXFSZ: c_int = 25; +pub const SIGUSR1: c_int = 30; +pub const SIGUSR2: c_int = 31; +pub const SIGWINCH: c_int = 28; +pub const SIGIO: c_int = 23; +pub const SIGCLD: c_int = 20; pub const __SIGRTMIN: usize = 32; pub const __SIGRTMAX: usize = 32; pub const _NSIG: usize = 33; pub const NSIG: usize = 33; // bits/sigaction.h -pub const SA_ONSTACK: ::c_int = 1; -pub const SA_RESTART: ::c_int = 2; -pub const SA_NODEFER: ::c_int = 16; -pub const SA_RESETHAND: ::c_int = 4; -pub const SA_NOCLDSTOP: ::c_int = 8; -pub const SA_SIGINFO: ::c_int = 64; -pub const SA_INTERRUPT: ::c_int = 0; -pub const SA_NOMASK: ::c_int = 16; -pub const SA_ONESHOT: ::c_int = 4; -pub const SA_STACK: ::c_int = 1; -pub const SIG_BLOCK: ::c_int = 1; -pub const SIG_UNBLOCK: ::c_int = 2; -pub const SIG_SETMASK: ::c_int = 3; +pub const SA_ONSTACK: c_int = 1; +pub const SA_RESTART: c_int = 2; +pub const SA_NODEFER: c_int = 16; +pub const SA_RESETHAND: c_int = 4; +pub const SA_NOCLDSTOP: c_int = 8; +pub const SA_SIGINFO: c_int = 64; +pub const SA_INTERRUPT: c_int = 0; +pub const SA_NOMASK: c_int = 16; +pub const SA_ONESHOT: c_int = 4; +pub const SA_STACK: c_int = 1; +pub const SIG_BLOCK: c_int = 1; +pub const SIG_UNBLOCK: c_int = 2; +pub const SIG_SETMASK: c_int = 3; // bits/sigcontext.h pub const FPC_IE: u16 = 1; @@ -2088,21 +2093,21 @@ pub const FPS_TOS: u16 = 14336; pub const FPS_TOS_SHIFT: u16 = 11; pub const FPS_C3: u16 = 16384; pub const FPS_BUSY: u16 = 32768; -pub const FPE_INTOVF_TRAP: ::c_int = 1; -pub const FPE_INTDIV_FAULT: ::c_int = 2; -pub const FPE_FLTOVF_FAULT: ::c_int = 3; -pub const FPE_FLTDIV_FAULT: ::c_int = 4; -pub const FPE_FLTUND_FAULT: ::c_int = 5; -pub const FPE_SUBRNG_FAULT: ::c_int = 7; -pub const FPE_FLTDNR_FAULT: ::c_int = 8; -pub const FPE_FLTINX_FAULT: ::c_int = 9; -pub const FPE_EMERR_FAULT: ::c_int = 10; -pub const FPE_EMBND_FAULT: ::c_int = 11; -pub const ILL_INVOPR_FAULT: ::c_int = 1; -pub const ILL_STACK_FAULT: ::c_int = 2; -pub const ILL_FPEOPR_FAULT: ::c_int = 3; -pub const DBG_SINGLE_TRAP: ::c_int = 1; -pub const DBG_BRKPNT_FAULT: ::c_int = 2; +pub const FPE_INTOVF_TRAP: c_int = 1; +pub const FPE_INTDIV_FAULT: c_int = 2; +pub const FPE_FLTOVF_FAULT: c_int = 3; +pub const FPE_FLTDIV_FAULT: c_int = 4; +pub const FPE_FLTUND_FAULT: c_int = 5; +pub const FPE_SUBRNG_FAULT: c_int = 7; +pub const FPE_FLTDNR_FAULT: c_int = 8; +pub const FPE_FLTINX_FAULT: c_int = 9; +pub const FPE_EMERR_FAULT: c_int = 10; +pub const FPE_EMBND_FAULT: c_int = 11; +pub const ILL_INVOPR_FAULT: c_int = 1; +pub const ILL_STACK_FAULT: c_int = 2; +pub const ILL_FPEOPR_FAULT: c_int = 3; +pub const DBG_SINGLE_TRAP: c_int = 1; +pub const DBG_BRKPNT_FAULT: c_int = 2; pub const __NGREG: usize = 19; pub const NGREG: usize = 19; @@ -2135,465 +2140,465 @@ pub const S_IROOT: mode_t = 0o4000_0000; pub const S_ITRANS: mode_t = 0o7000_0000; pub const S_IMMAP0: mode_t = 0o10000_0000; pub const CMASK: mode_t = 18; -pub const UF_SETTABLE: ::c_uint = 65535; -pub const UF_NODUMP: ::c_uint = 1; -pub const UF_IMMUTABLE: ::c_uint = 2; -pub const UF_APPEND: ::c_uint = 4; -pub const UF_OPAQUE: ::c_uint = 8; -pub const UF_NOUNLINK: ::c_uint = 16; -pub const SF_SETTABLE: ::c_uint = 4294901760; -pub const SF_ARCHIVED: ::c_uint = 65536; -pub const SF_IMMUTABLE: ::c_uint = 131072; -pub const SF_APPEND: ::c_uint = 262144; -pub const SF_NOUNLINK: ::c_uint = 1048576; -pub const SF_SNAPSHOT: ::c_uint = 2097152; -pub const UTIME_NOW: ::c_long = -1; -pub const UTIME_OMIT: ::c_long = -2; -pub const S_IFMT: ::mode_t = 0o17_0000; -pub const S_IFDIR: ::mode_t = 0o4_0000; -pub const S_IFCHR: ::mode_t = 0o2_0000; -pub const S_IFBLK: ::mode_t = 0o6_0000; -pub const S_IFREG: ::mode_t = 0o10_0000; -pub const S_IFIFO: ::mode_t = 0o1_0000; -pub const S_IFLNK: ::mode_t = 0o12_0000; -pub const S_IFSOCK: ::mode_t = 0o14_0000; -pub const S_ISUID: ::mode_t = 0o4000; -pub const S_ISGID: ::mode_t = 0o2000; -pub const S_ISVTX: ::mode_t = 0o1000; -pub const S_IRUSR: ::mode_t = 0o0400; -pub const S_IWUSR: ::mode_t = 0o0200; -pub const S_IXUSR: ::mode_t = 0o0100; -pub const S_IRWXU: ::mode_t = 0o0700; -pub const S_IREAD: ::mode_t = 0o0400; -pub const S_IWRITE: ::mode_t = 0o0200; -pub const S_IEXEC: ::mode_t = 0o0100; -pub const S_IRGRP: ::mode_t = 0o0040; -pub const S_IWGRP: ::mode_t = 0o0020; -pub const S_IXGRP: ::mode_t = 0o0010; -pub const S_IRWXG: ::mode_t = 0o0070; -pub const S_IROTH: ::mode_t = 0o0004; -pub const S_IWOTH: ::mode_t = 0o0002; -pub const S_IXOTH: ::mode_t = 0o0001; -pub const S_IRWXO: ::mode_t = 0o0007; -pub const ACCESSPERMS: ::mode_t = 511; -pub const ALLPERMS: ::mode_t = 4095; -pub const DEFFILEMODE: ::mode_t = 438; +pub const UF_SETTABLE: c_uint = 65535; +pub const UF_NODUMP: c_uint = 1; +pub const UF_IMMUTABLE: c_uint = 2; +pub const UF_APPEND: c_uint = 4; +pub const UF_OPAQUE: c_uint = 8; +pub const UF_NOUNLINK: c_uint = 16; +pub const SF_SETTABLE: c_uint = 4294901760; +pub const SF_ARCHIVED: c_uint = 65536; +pub const SF_IMMUTABLE: c_uint = 131072; +pub const SF_APPEND: c_uint = 262144; +pub const SF_NOUNLINK: c_uint = 1048576; +pub const SF_SNAPSHOT: c_uint = 2097152; +pub const UTIME_NOW: c_long = -1; +pub const UTIME_OMIT: c_long = -2; +pub const S_IFMT: crate::mode_t = 0o17_0000; +pub const S_IFDIR: crate::mode_t = 0o4_0000; +pub const S_IFCHR: crate::mode_t = 0o2_0000; +pub const S_IFBLK: crate::mode_t = 0o6_0000; +pub const S_IFREG: crate::mode_t = 0o10_0000; +pub const S_IFIFO: crate::mode_t = 0o1_0000; +pub const S_IFLNK: crate::mode_t = 0o12_0000; +pub const S_IFSOCK: crate::mode_t = 0o14_0000; +pub const S_ISUID: crate::mode_t = 0o4000; +pub const S_ISGID: crate::mode_t = 0o2000; +pub const S_ISVTX: crate::mode_t = 0o1000; +pub const S_IRUSR: crate::mode_t = 0o0400; +pub const S_IWUSR: crate::mode_t = 0o0200; +pub const S_IXUSR: crate::mode_t = 0o0100; +pub const S_IRWXU: crate::mode_t = 0o0700; +pub const S_IREAD: crate::mode_t = 0o0400; +pub const S_IWRITE: crate::mode_t = 0o0200; +pub const S_IEXEC: crate::mode_t = 0o0100; +pub const S_IRGRP: crate::mode_t = 0o0040; +pub const S_IWGRP: crate::mode_t = 0o0020; +pub const S_IXGRP: crate::mode_t = 0o0010; +pub const S_IRWXG: crate::mode_t = 0o0070; +pub const S_IROTH: crate::mode_t = 0o0004; +pub const S_IWOTH: crate::mode_t = 0o0002; +pub const S_IXOTH: crate::mode_t = 0o0001; +pub const S_IRWXO: crate::mode_t = 0o0007; +pub const ACCESSPERMS: crate::mode_t = 511; +pub const ALLPERMS: crate::mode_t = 4095; +pub const DEFFILEMODE: crate::mode_t = 438; pub const S_BLKSIZE: usize = 512; -pub const STATX_TYPE: ::c_uint = 1; -pub const STATX_MODE: ::c_uint = 2; -pub const STATX_NLINK: ::c_uint = 4; -pub const STATX_UID: ::c_uint = 8; -pub const STATX_GID: ::c_uint = 16; -pub const STATX_ATIME: ::c_uint = 32; -pub const STATX_MTIME: ::c_uint = 64; -pub const STATX_CTIME: ::c_uint = 128; -pub const STATX_INO: ::c_uint = 256; -pub const STATX_SIZE: ::c_uint = 512; -pub const STATX_BLOCKS: ::c_uint = 1024; -pub const STATX_BASIC_STATS: ::c_uint = 2047; -pub const STATX_ALL: ::c_uint = 4095; -pub const STATX_BTIME: ::c_uint = 2048; -pub const STATX_MNT_ID: ::c_uint = 4096; -pub const STATX_DIOALIGN: ::c_uint = 8192; -pub const STATX__RESERVED: ::c_uint = 2147483648; -pub const STATX_ATTR_COMPRESSED: ::c_uint = 4; -pub const STATX_ATTR_IMMUTABLE: ::c_uint = 16; -pub const STATX_ATTR_APPEND: ::c_uint = 32; -pub const STATX_ATTR_NODUMP: ::c_uint = 64; -pub const STATX_ATTR_ENCRYPTED: ::c_uint = 2048; -pub const STATX_ATTR_AUTOMOUNT: ::c_uint = 4096; -pub const STATX_ATTR_MOUNT_ROOT: ::c_uint = 8192; -pub const STATX_ATTR_VERITY: ::c_uint = 1048576; -pub const STATX_ATTR_DAX: ::c_uint = 2097152; +pub const STATX_TYPE: c_uint = 1; +pub const STATX_MODE: c_uint = 2; +pub const STATX_NLINK: c_uint = 4; +pub const STATX_UID: c_uint = 8; +pub const STATX_GID: c_uint = 16; +pub const STATX_ATIME: c_uint = 32; +pub const STATX_MTIME: c_uint = 64; +pub const STATX_CTIME: c_uint = 128; +pub const STATX_INO: c_uint = 256; +pub const STATX_SIZE: c_uint = 512; +pub const STATX_BLOCKS: c_uint = 1024; +pub const STATX_BASIC_STATS: c_uint = 2047; +pub const STATX_ALL: c_uint = 4095; +pub const STATX_BTIME: c_uint = 2048; +pub const STATX_MNT_ID: c_uint = 4096; +pub const STATX_DIOALIGN: c_uint = 8192; +pub const STATX__RESERVED: c_uint = 2147483648; +pub const STATX_ATTR_COMPRESSED: c_uint = 4; +pub const STATX_ATTR_IMMUTABLE: c_uint = 16; +pub const STATX_ATTR_APPEND: c_uint = 32; +pub const STATX_ATTR_NODUMP: c_uint = 64; +pub const STATX_ATTR_ENCRYPTED: c_uint = 2048; +pub const STATX_ATTR_AUTOMOUNT: c_uint = 4096; +pub const STATX_ATTR_MOUNT_ROOT: c_uint = 8192; +pub const STATX_ATTR_VERITY: c_uint = 1048576; +pub const STATX_ATTR_DAX: c_uint = 2097152; // sys/ioctl.h -pub const TIOCM_LE: ::c_int = 1; -pub const TIOCM_DTR: ::c_int = 2; -pub const TIOCM_RTS: ::c_int = 4; -pub const TIOCM_ST: ::c_int = 8; -pub const TIOCM_SR: ::c_int = 16; -pub const TIOCM_CTS: ::c_int = 32; -pub const TIOCM_CAR: ::c_int = 64; -pub const TIOCM_CD: ::c_int = 64; -pub const TIOCM_RNG: ::c_int = 128; -pub const TIOCM_RI: ::c_int = 128; -pub const TIOCM_DSR: ::c_int = 256; -pub const TIOCPKT_DATA: ::c_int = 0; -pub const TIOCPKT_FLUSHREAD: ::c_int = 1; -pub const TIOCPKT_FLUSHWRITE: ::c_int = 2; -pub const TIOCPKT_STOP: ::c_int = 4; -pub const TIOCPKT_START: ::c_int = 8; -pub const TIOCPKT_NOSTOP: ::c_int = 16; -pub const TIOCPKT_DOSTOP: ::c_int = 32; -pub const TIOCPKT_IOCTL: ::c_int = 64; -pub const TTYDISC: ::c_int = 0; -pub const TABLDISC: ::c_int = 3; -pub const SLIPDISC: ::c_int = 4; -pub const TANDEM: ::tcflag_t = 1; -pub const CBREAK: ::tcflag_t = 2; -pub const LCASE: ::tcflag_t = 4; -pub const CRMOD: ::tcflag_t = 16; -pub const RAW: ::tcflag_t = 32; -pub const ODDP: ::tcflag_t = 64; -pub const EVENP: ::tcflag_t = 128; -pub const ANYP: ::tcflag_t = 192; -pub const NLDELAY: ::tcflag_t = 768; -pub const NL2: ::tcflag_t = 512; -pub const NL3: ::tcflag_t = 768; -pub const TBDELAY: ::tcflag_t = 3072; -pub const XTABS: ::tcflag_t = 3072; -pub const CRDELAY: ::tcflag_t = 12288; -pub const VTDELAY: ::tcflag_t = 16384; -pub const BSDELAY: ::tcflag_t = 32768; -pub const ALLDELAY: ::tcflag_t = 65280; -pub const CRTBS: ::tcflag_t = 65536; -pub const PRTERA: ::tcflag_t = 131072; -pub const CRTERA: ::tcflag_t = 262144; -pub const TILDE: ::tcflag_t = 524288; -pub const LITOUT: ::tcflag_t = 2097152; -pub const NOHANG: ::tcflag_t = 16777216; -pub const L001000: ::tcflag_t = 33554432; -pub const CRTKIL: ::tcflag_t = 67108864; -pub const PASS8: ::tcflag_t = 134217728; -pub const CTLECH: ::tcflag_t = 268435456; -pub const DECCTQ: ::tcflag_t = 1073741824; - -pub const FIONBIO: ::c_ulong = 0xa008007e; -pub const FIONREAD: ::c_ulong = 0x6008007f; -pub const TIOCSWINSZ: ::c_ulong = 0x90200767; -pub const TIOCGWINSZ: ::c_ulong = 0x50200768; -pub const TIOCEXCL: ::c_ulong = 0x70d; -pub const TIOCNXCL: ::c_ulong = 0x70e; -pub const TIOCSCTTY: ::c_ulong = 0x761; - -pub const FIOCLEX: ::c_ulong = 1; +pub const TIOCM_LE: c_int = 1; +pub const TIOCM_DTR: c_int = 2; +pub const TIOCM_RTS: c_int = 4; +pub const TIOCM_ST: c_int = 8; +pub const TIOCM_SR: c_int = 16; +pub const TIOCM_CTS: c_int = 32; +pub const TIOCM_CAR: c_int = 64; +pub const TIOCM_CD: c_int = 64; +pub const TIOCM_RNG: c_int = 128; +pub const TIOCM_RI: c_int = 128; +pub const TIOCM_DSR: c_int = 256; +pub const TIOCPKT_DATA: c_int = 0; +pub const TIOCPKT_FLUSHREAD: c_int = 1; +pub const TIOCPKT_FLUSHWRITE: c_int = 2; +pub const TIOCPKT_STOP: c_int = 4; +pub const TIOCPKT_START: c_int = 8; +pub const TIOCPKT_NOSTOP: c_int = 16; +pub const TIOCPKT_DOSTOP: c_int = 32; +pub const TIOCPKT_IOCTL: c_int = 64; +pub const TTYDISC: c_int = 0; +pub const TABLDISC: c_int = 3; +pub const SLIPDISC: c_int = 4; +pub const TANDEM: crate::tcflag_t = 1; +pub const CBREAK: crate::tcflag_t = 2; +pub const LCASE: crate::tcflag_t = 4; +pub const CRMOD: crate::tcflag_t = 16; +pub const RAW: crate::tcflag_t = 32; +pub const ODDP: crate::tcflag_t = 64; +pub const EVENP: crate::tcflag_t = 128; +pub const ANYP: crate::tcflag_t = 192; +pub const NLDELAY: crate::tcflag_t = 768; +pub const NL2: crate::tcflag_t = 512; +pub const NL3: crate::tcflag_t = 768; +pub const TBDELAY: crate::tcflag_t = 3072; +pub const XTABS: crate::tcflag_t = 3072; +pub const CRDELAY: crate::tcflag_t = 12288; +pub const VTDELAY: crate::tcflag_t = 16384; +pub const BSDELAY: crate::tcflag_t = 32768; +pub const ALLDELAY: crate::tcflag_t = 65280; +pub const CRTBS: crate::tcflag_t = 65536; +pub const PRTERA: crate::tcflag_t = 131072; +pub const CRTERA: crate::tcflag_t = 262144; +pub const TILDE: crate::tcflag_t = 524288; +pub const LITOUT: crate::tcflag_t = 2097152; +pub const NOHANG: crate::tcflag_t = 16777216; +pub const L001000: crate::tcflag_t = 33554432; +pub const CRTKIL: crate::tcflag_t = 67108864; +pub const PASS8: crate::tcflag_t = 134217728; +pub const CTLECH: crate::tcflag_t = 268435456; +pub const DECCTQ: crate::tcflag_t = 1073741824; + +pub const FIONBIO: c_ulong = 0xa008007e; +pub const FIONREAD: c_ulong = 0x6008007f; +pub const TIOCSWINSZ: c_ulong = 0x90200767; +pub const TIOCGWINSZ: c_ulong = 0x50200768; +pub const TIOCEXCL: c_ulong = 0x70d; +pub const TIOCNXCL: c_ulong = 0x70e; +pub const TIOCSCTTY: c_ulong = 0x761; + +pub const FIOCLEX: c_ulong = 1; // fcntl.h -pub const O_EXEC: ::c_int = 4; -pub const O_NORW: ::c_int = 0; -pub const O_RDONLY: ::c_int = 1; -pub const O_WRONLY: ::c_int = 2; -pub const O_RDWR: ::c_int = 3; -pub const O_ACCMODE: ::c_int = 3; -pub const O_LARGEFILE: ::c_int = 0; -pub const O_CREAT: ::c_int = 16; -pub const O_EXCL: ::c_int = 32; -pub const O_NOLINK: ::c_int = 64; -pub const O_NOTRANS: ::c_int = 128; -pub const O_NOFOLLOW: ::c_int = 1048576; -pub const O_DIRECTORY: ::c_int = 2097152; -pub const O_APPEND: ::c_int = 256; -pub const O_ASYNC: ::c_int = 512; -pub const O_FSYNC: ::c_int = 1024; -pub const O_SYNC: ::c_int = 1024; -pub const O_NOATIME: ::c_int = 2048; -pub const O_SHLOCK: ::c_int = 131072; -pub const O_EXLOCK: ::c_int = 262144; -pub const O_DSYNC: ::c_int = 1024; -pub const O_RSYNC: ::c_int = 1024; -pub const O_NONBLOCK: ::c_int = 8; -pub const O_NDELAY: ::c_int = 8; -pub const O_HURD: ::c_int = 458751; -pub const O_TRUNC: ::c_int = 65536; -pub const O_CLOEXEC: ::c_int = 4194304; -pub const O_IGNORE_CTTY: ::c_int = 524288; -pub const O_TMPFILE: ::c_int = 8388608; -pub const O_NOCTTY: ::c_int = 0; -pub const FREAD: ::c_int = 1; -pub const FWRITE: ::c_int = 2; -pub const FASYNC: ::c_int = 512; -pub const FCREAT: ::c_int = 16; -pub const FEXCL: ::c_int = 32; -pub const FTRUNC: ::c_int = 65536; -pub const FNOCTTY: ::c_int = 0; -pub const FFSYNC: ::c_int = 1024; -pub const FSYNC: ::c_int = 1024; -pub const FAPPEND: ::c_int = 256; -pub const FNONBLOCK: ::c_int = 8; -pub const FNDELAY: ::c_int = 8; -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; -pub const F_GETOWN: ::c_int = 5; -pub const F_SETOWN: ::c_int = 6; -pub const F_GETLK: ::c_int = 7; -pub const F_SETLK: ::c_int = 8; -pub const F_SETLKW: ::c_int = 9; -pub const F_GETLK64: ::c_int = 10; -pub const F_SETLK64: ::c_int = 11; -pub const F_SETLKW64: ::c_int = 12; -pub const F_DUPFD_CLOEXEC: ::c_int = 1030; -pub const FD_CLOEXEC: ::c_int = 1; -pub const F_RDLCK: ::c_int = 1; -pub const F_WRLCK: ::c_int = 2; -pub const F_UNLCK: ::c_int = 3; -pub const POSIX_FADV_NORMAL: ::c_int = 0; -pub const POSIX_FADV_RANDOM: ::c_int = 1; -pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_FADV_WILLNEED: ::c_int = 3; -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; -pub const AT_FDCWD: ::c_int = -100; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 256; -pub const AT_REMOVEDIR: ::c_int = 512; -pub const AT_SYMLINK_FOLLOW: ::c_int = 1024; -pub const AT_NO_AUTOMOUNT: ::c_int = 2048; -pub const AT_EMPTY_PATH: ::c_int = 4096; -pub const AT_STATX_SYNC_TYPE: ::c_int = 24576; -pub const AT_STATX_SYNC_AS_STAT: ::c_int = 0; -pub const AT_STATX_FORCE_SYNC: ::c_int = 8192; -pub const AT_STATX_DONT_SYNC: ::c_int = 16384; -pub const AT_RECURSIVE: ::c_int = 32768; -pub const AT_EACCESS: ::c_int = 512; +pub const O_EXEC: c_int = 4; +pub const O_NORW: c_int = 0; +pub const O_RDONLY: c_int = 1; +pub const O_WRONLY: c_int = 2; +pub const O_RDWR: c_int = 3; +pub const O_ACCMODE: c_int = 3; +pub const O_LARGEFILE: c_int = 0; +pub const O_CREAT: c_int = 16; +pub const O_EXCL: c_int = 32; +pub const O_NOLINK: c_int = 64; +pub const O_NOTRANS: c_int = 128; +pub const O_NOFOLLOW: c_int = 1048576; +pub const O_DIRECTORY: c_int = 2097152; +pub const O_APPEND: c_int = 256; +pub const O_ASYNC: c_int = 512; +pub const O_FSYNC: c_int = 1024; +pub const O_SYNC: c_int = 1024; +pub const O_NOATIME: c_int = 2048; +pub const O_SHLOCK: c_int = 131072; +pub const O_EXLOCK: c_int = 262144; +pub const O_DSYNC: c_int = 1024; +pub const O_RSYNC: c_int = 1024; +pub const O_NONBLOCK: c_int = 8; +pub const O_NDELAY: c_int = 8; +pub const O_HURD: c_int = 458751; +pub const O_TRUNC: c_int = 65536; +pub const O_CLOEXEC: c_int = 4194304; +pub const O_IGNORE_CTTY: c_int = 524288; +pub const O_TMPFILE: c_int = 8388608; +pub const O_NOCTTY: c_int = 0; +pub const FREAD: c_int = 1; +pub const FWRITE: c_int = 2; +pub const FASYNC: c_int = 512; +pub const FCREAT: c_int = 16; +pub const FEXCL: c_int = 32; +pub const FTRUNC: c_int = 65536; +pub const FNOCTTY: c_int = 0; +pub const FFSYNC: c_int = 1024; +pub const FSYNC: c_int = 1024; +pub const FAPPEND: c_int = 256; +pub const FNONBLOCK: c_int = 8; +pub const FNDELAY: c_int = 8; +pub const F_DUPFD: c_int = 0; +pub const F_GETFD: c_int = 1; +pub const F_SETFD: c_int = 2; +pub const F_GETFL: c_int = 3; +pub const F_SETFL: c_int = 4; +pub const F_GETOWN: c_int = 5; +pub const F_SETOWN: c_int = 6; +pub const F_GETLK: c_int = 7; +pub const F_SETLK: c_int = 8; +pub const F_SETLKW: c_int = 9; +pub const F_GETLK64: c_int = 10; +pub const F_SETLK64: c_int = 11; +pub const F_SETLKW64: c_int = 12; +pub const F_DUPFD_CLOEXEC: c_int = 1030; +pub const FD_CLOEXEC: c_int = 1; +pub const F_RDLCK: c_int = 1; +pub const F_WRLCK: c_int = 2; +pub const F_UNLCK: c_int = 3; +pub const POSIX_FADV_NORMAL: c_int = 0; +pub const POSIX_FADV_RANDOM: c_int = 1; +pub const POSIX_FADV_SEQUENTIAL: c_int = 2; +pub const POSIX_FADV_WILLNEED: c_int = 3; +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; +pub const AT_FDCWD: c_int = -100; +pub const AT_SYMLINK_NOFOLLOW: c_int = 256; +pub const AT_REMOVEDIR: c_int = 512; +pub const AT_SYMLINK_FOLLOW: c_int = 1024; +pub const AT_NO_AUTOMOUNT: c_int = 2048; +pub const AT_EMPTY_PATH: c_int = 4096; +pub const AT_STATX_SYNC_TYPE: c_int = 24576; +pub const AT_STATX_SYNC_AS_STAT: c_int = 0; +pub const AT_STATX_FORCE_SYNC: c_int = 8192; +pub const AT_STATX_DONT_SYNC: c_int = 16384; +pub const AT_RECURSIVE: c_int = 32768; +pub const AT_EACCESS: c_int = 512; // sys/uio.h -pub const RWF_HIPRI: ::c_int = 1; -pub const RWF_DSYNC: ::c_int = 2; -pub const RWF_SYNC: ::c_int = 4; -pub const RWF_NOWAIT: ::c_int = 8; -pub const RWF_APPEND: ::c_int = 16; +pub const RWF_HIPRI: c_int = 1; +pub const RWF_DSYNC: c_int = 2; +pub const RWF_SYNC: c_int = 4; +pub const RWF_NOWAIT: c_int = 8; +pub const RWF_APPEND: c_int = 16; // errno.h -pub const EPERM: ::c_int = 1073741825; -pub const ENOENT: ::c_int = 1073741826; -pub const ESRCH: ::c_int = 1073741827; -pub const EINTR: ::c_int = 1073741828; -pub const EIO: ::c_int = 1073741829; -pub const ENXIO: ::c_int = 1073741830; -pub const E2BIG: ::c_int = 1073741831; -pub const ENOEXEC: ::c_int = 1073741832; -pub const EBADF: ::c_int = 1073741833; -pub const ECHILD: ::c_int = 1073741834; -pub const EDEADLK: ::c_int = 1073741835; -pub const ENOMEM: ::c_int = 1073741836; -pub const EACCES: ::c_int = 1073741837; -pub const EFAULT: ::c_int = 1073741838; -pub const ENOTBLK: ::c_int = 1073741839; -pub const EBUSY: ::c_int = 1073741840; -pub const EEXIST: ::c_int = 1073741841; -pub const EXDEV: ::c_int = 1073741842; -pub const ENODEV: ::c_int = 1073741843; -pub const ENOTDIR: ::c_int = 1073741844; -pub const EISDIR: ::c_int = 1073741845; -pub const EINVAL: ::c_int = 1073741846; -pub const EMFILE: ::c_int = 1073741848; -pub const ENFILE: ::c_int = 1073741847; -pub const ENOTTY: ::c_int = 1073741849; -pub const ETXTBSY: ::c_int = 1073741850; -pub const EFBIG: ::c_int = 1073741851; -pub const ENOSPC: ::c_int = 1073741852; -pub const ESPIPE: ::c_int = 1073741853; -pub const EROFS: ::c_int = 1073741854; -pub const EMLINK: ::c_int = 1073741855; -pub const EPIPE: ::c_int = 1073741856; -pub const EDOM: ::c_int = 1073741857; -pub const ERANGE: ::c_int = 1073741858; -pub const EAGAIN: ::c_int = 1073741859; -pub const EWOULDBLOCK: ::c_int = 1073741859; -pub const EINPROGRESS: ::c_int = 1073741860; -pub const EALREADY: ::c_int = 1073741861; -pub const ENOTSOCK: ::c_int = 1073741862; -pub const EMSGSIZE: ::c_int = 1073741864; -pub const EPROTOTYPE: ::c_int = 1073741865; -pub const ENOPROTOOPT: ::c_int = 1073741866; -pub const EPROTONOSUPPORT: ::c_int = 1073741867; -pub const ESOCKTNOSUPPORT: ::c_int = 1073741868; -pub const EOPNOTSUPP: ::c_int = 1073741869; -pub const EPFNOSUPPORT: ::c_int = 1073741870; -pub const EAFNOSUPPORT: ::c_int = 1073741871; -pub const EADDRINUSE: ::c_int = 1073741872; -pub const EADDRNOTAVAIL: ::c_int = 1073741873; -pub const ENETDOWN: ::c_int = 1073741874; -pub const ENETUNREACH: ::c_int = 1073741875; -pub const ENETRESET: ::c_int = 1073741876; -pub const ECONNABORTED: ::c_int = 1073741877; -pub const ECONNRESET: ::c_int = 1073741878; -pub const ENOBUFS: ::c_int = 1073741879; -pub const EISCONN: ::c_int = 1073741880; -pub const ENOTCONN: ::c_int = 1073741881; -pub const EDESTADDRREQ: ::c_int = 1073741863; -pub const ESHUTDOWN: ::c_int = 1073741882; -pub const ETOOMANYREFS: ::c_int = 1073741883; -pub const ETIMEDOUT: ::c_int = 1073741884; -pub const ECONNREFUSED: ::c_int = 1073741885; -pub const ELOOP: ::c_int = 1073741886; -pub const ENAMETOOLONG: ::c_int = 1073741887; -pub const EHOSTDOWN: ::c_int = 1073741888; -pub const EHOSTUNREACH: ::c_int = 1073741889; -pub const ENOTEMPTY: ::c_int = 1073741890; -pub const EPROCLIM: ::c_int = 1073741891; -pub const EUSERS: ::c_int = 1073741892; -pub const EDQUOT: ::c_int = 1073741893; -pub const ESTALE: ::c_int = 1073741894; -pub const EREMOTE: ::c_int = 1073741895; -pub const EBADRPC: ::c_int = 1073741896; -pub const ERPCMISMATCH: ::c_int = 1073741897; -pub const EPROGUNAVAIL: ::c_int = 1073741898; -pub const EPROGMISMATCH: ::c_int = 1073741899; -pub const EPROCUNAVAIL: ::c_int = 1073741900; -pub const ENOLCK: ::c_int = 1073741901; -pub const EFTYPE: ::c_int = 1073741903; -pub const EAUTH: ::c_int = 1073741904; -pub const ENEEDAUTH: ::c_int = 1073741905; -pub const ENOSYS: ::c_int = 1073741902; -pub const ELIBEXEC: ::c_int = 1073741907; -pub const ENOTSUP: ::c_int = 1073741942; -pub const EILSEQ: ::c_int = 1073741930; -pub const EBACKGROUND: ::c_int = 1073741924; -pub const EDIED: ::c_int = 1073741925; -pub const EGREGIOUS: ::c_int = 1073741927; -pub const EIEIO: ::c_int = 1073741928; -pub const EGRATUITOUS: ::c_int = 1073741929; -pub const EBADMSG: ::c_int = 1073741931; -pub const EIDRM: ::c_int = 1073741932; -pub const EMULTIHOP: ::c_int = 1073741933; -pub const ENODATA: ::c_int = 1073741934; -pub const ENOLINK: ::c_int = 1073741935; -pub const ENOMSG: ::c_int = 1073741936; -pub const ENOSR: ::c_int = 1073741937; -pub const ENOSTR: ::c_int = 1073741938; -pub const EOVERFLOW: ::c_int = 1073741939; -pub const EPROTO: ::c_int = 1073741940; -pub const ETIME: ::c_int = 1073741941; -pub const ECANCELED: ::c_int = 1073741943; -pub const EOWNERDEAD: ::c_int = 1073741944; -pub const ENOTRECOVERABLE: ::c_int = 1073741945; -pub const EMACH_SEND_IN_PROGRESS: ::c_int = 268435457; -pub const EMACH_SEND_INVALID_DATA: ::c_int = 268435458; -pub const EMACH_SEND_INVALID_DEST: ::c_int = 268435459; -pub const EMACH_SEND_TIMED_OUT: ::c_int = 268435460; -pub const EMACH_SEND_WILL_NOTIFY: ::c_int = 268435461; -pub const EMACH_SEND_NOTIFY_IN_PROGRESS: ::c_int = 268435462; -pub const EMACH_SEND_INTERRUPTED: ::c_int = 268435463; -pub const EMACH_SEND_MSG_TOO_SMALL: ::c_int = 268435464; -pub const EMACH_SEND_INVALID_REPLY: ::c_int = 268435465; -pub const EMACH_SEND_INVALID_RIGHT: ::c_int = 268435466; -pub const EMACH_SEND_INVALID_NOTIFY: ::c_int = 268435467; -pub const EMACH_SEND_INVALID_MEMORY: ::c_int = 268435468; -pub const EMACH_SEND_NO_BUFFER: ::c_int = 268435469; -pub const EMACH_SEND_NO_NOTIFY: ::c_int = 268435470; -pub const EMACH_SEND_INVALID_TYPE: ::c_int = 268435471; -pub const EMACH_SEND_INVALID_HEADER: ::c_int = 268435472; -pub const EMACH_RCV_IN_PROGRESS: ::c_int = 268451841; -pub const EMACH_RCV_INVALID_NAME: ::c_int = 268451842; -pub const EMACH_RCV_TIMED_OUT: ::c_int = 268451843; -pub const EMACH_RCV_TOO_LARGE: ::c_int = 268451844; -pub const EMACH_RCV_INTERRUPTED: ::c_int = 268451845; -pub const EMACH_RCV_PORT_CHANGED: ::c_int = 268451846; -pub const EMACH_RCV_INVALID_NOTIFY: ::c_int = 268451847; -pub const EMACH_RCV_INVALID_DATA: ::c_int = 268451848; -pub const EMACH_RCV_PORT_DIED: ::c_int = 268451849; -pub const EMACH_RCV_IN_SET: ::c_int = 268451850; -pub const EMACH_RCV_HEADER_ERROR: ::c_int = 268451851; -pub const EMACH_RCV_BODY_ERROR: ::c_int = 268451852; -pub const EKERN_INVALID_ADDRESS: ::c_int = 1; -pub const EKERN_PROTECTION_FAILURE: ::c_int = 2; -pub const EKERN_NO_SPACE: ::c_int = 3; -pub const EKERN_INVALID_ARGUMENT: ::c_int = 4; -pub const EKERN_FAILURE: ::c_int = 5; -pub const EKERN_RESOURCE_SHORTAGE: ::c_int = 6; -pub const EKERN_NOT_RECEIVER: ::c_int = 7; -pub const EKERN_NO_ACCESS: ::c_int = 8; -pub const EKERN_MEMORY_FAILURE: ::c_int = 9; -pub const EKERN_MEMORY_ERROR: ::c_int = 10; -pub const EKERN_NOT_IN_SET: ::c_int = 12; -pub const EKERN_NAME_EXISTS: ::c_int = 13; -pub const EKERN_ABORTED: ::c_int = 14; -pub const EKERN_INVALID_NAME: ::c_int = 15; -pub const EKERN_INVALID_TASK: ::c_int = 16; -pub const EKERN_INVALID_RIGHT: ::c_int = 17; -pub const EKERN_INVALID_VALUE: ::c_int = 18; -pub const EKERN_UREFS_OVERFLOW: ::c_int = 19; -pub const EKERN_INVALID_CAPABILITY: ::c_int = 20; -pub const EKERN_RIGHT_EXISTS: ::c_int = 21; -pub const EKERN_INVALID_HOST: ::c_int = 22; -pub const EKERN_MEMORY_PRESENT: ::c_int = 23; -pub const EKERN_WRITE_PROTECTION_FAILURE: ::c_int = 24; -pub const EKERN_TERMINATED: ::c_int = 26; -pub const EKERN_TIMEDOUT: ::c_int = 27; -pub const EKERN_INTERRUPTED: ::c_int = 28; -pub const EMIG_TYPE_ERROR: ::c_int = -300; -pub const EMIG_REPLY_MISMATCH: ::c_int = -301; -pub const EMIG_REMOTE_ERROR: ::c_int = -302; -pub const EMIG_BAD_ID: ::c_int = -303; -pub const EMIG_BAD_ARGUMENTS: ::c_int = -304; -pub const EMIG_NO_REPLY: ::c_int = -305; -pub const EMIG_EXCEPTION: ::c_int = -306; -pub const EMIG_ARRAY_TOO_LARGE: ::c_int = -307; -pub const EMIG_SERVER_DIED: ::c_int = -308; -pub const EMIG_DESTROY_REQUEST: ::c_int = -309; -pub const ED_IO_ERROR: ::c_int = 2500; -pub const ED_WOULD_BLOCK: ::c_int = 2501; -pub const ED_NO_SUCH_DEVICE: ::c_int = 2502; -pub const ED_ALREADY_OPEN: ::c_int = 2503; -pub const ED_DEVICE_DOWN: ::c_int = 2504; -pub const ED_INVALID_OPERATION: ::c_int = 2505; -pub const ED_INVALID_RECNUM: ::c_int = 2506; -pub const ED_INVALID_SIZE: ::c_int = 2507; -pub const ED_NO_MEMORY: ::c_int = 2508; -pub const ED_READ_ONLY: ::c_int = 2509; +pub const EPERM: c_int = 1073741825; +pub const ENOENT: c_int = 1073741826; +pub const ESRCH: c_int = 1073741827; +pub const EINTR: c_int = 1073741828; +pub const EIO: c_int = 1073741829; +pub const ENXIO: c_int = 1073741830; +pub const E2BIG: c_int = 1073741831; +pub const ENOEXEC: c_int = 1073741832; +pub const EBADF: c_int = 1073741833; +pub const ECHILD: c_int = 1073741834; +pub const EDEADLK: c_int = 1073741835; +pub const ENOMEM: c_int = 1073741836; +pub const EACCES: c_int = 1073741837; +pub const EFAULT: c_int = 1073741838; +pub const ENOTBLK: c_int = 1073741839; +pub const EBUSY: c_int = 1073741840; +pub const EEXIST: c_int = 1073741841; +pub const EXDEV: c_int = 1073741842; +pub const ENODEV: c_int = 1073741843; +pub const ENOTDIR: c_int = 1073741844; +pub const EISDIR: c_int = 1073741845; +pub const EINVAL: c_int = 1073741846; +pub const EMFILE: c_int = 1073741848; +pub const ENFILE: c_int = 1073741847; +pub const ENOTTY: c_int = 1073741849; +pub const ETXTBSY: c_int = 1073741850; +pub const EFBIG: c_int = 1073741851; +pub const ENOSPC: c_int = 1073741852; +pub const ESPIPE: c_int = 1073741853; +pub const EROFS: c_int = 1073741854; +pub const EMLINK: c_int = 1073741855; +pub const EPIPE: c_int = 1073741856; +pub const EDOM: c_int = 1073741857; +pub const ERANGE: c_int = 1073741858; +pub const EAGAIN: c_int = 1073741859; +pub const EWOULDBLOCK: c_int = 1073741859; +pub const EINPROGRESS: c_int = 1073741860; +pub const EALREADY: c_int = 1073741861; +pub const ENOTSOCK: c_int = 1073741862; +pub const EMSGSIZE: c_int = 1073741864; +pub const EPROTOTYPE: c_int = 1073741865; +pub const ENOPROTOOPT: c_int = 1073741866; +pub const EPROTONOSUPPORT: c_int = 1073741867; +pub const ESOCKTNOSUPPORT: c_int = 1073741868; +pub const EOPNOTSUPP: c_int = 1073741869; +pub const EPFNOSUPPORT: c_int = 1073741870; +pub const EAFNOSUPPORT: c_int = 1073741871; +pub const EADDRINUSE: c_int = 1073741872; +pub const EADDRNOTAVAIL: c_int = 1073741873; +pub const ENETDOWN: c_int = 1073741874; +pub const ENETUNREACH: c_int = 1073741875; +pub const ENETRESET: c_int = 1073741876; +pub const ECONNABORTED: c_int = 1073741877; +pub const ECONNRESET: c_int = 1073741878; +pub const ENOBUFS: c_int = 1073741879; +pub const EISCONN: c_int = 1073741880; +pub const ENOTCONN: c_int = 1073741881; +pub const EDESTADDRREQ: c_int = 1073741863; +pub const ESHUTDOWN: c_int = 1073741882; +pub const ETOOMANYREFS: c_int = 1073741883; +pub const ETIMEDOUT: c_int = 1073741884; +pub const ECONNREFUSED: c_int = 1073741885; +pub const ELOOP: c_int = 1073741886; +pub const ENAMETOOLONG: c_int = 1073741887; +pub const EHOSTDOWN: c_int = 1073741888; +pub const EHOSTUNREACH: c_int = 1073741889; +pub const ENOTEMPTY: c_int = 1073741890; +pub const EPROCLIM: c_int = 1073741891; +pub const EUSERS: c_int = 1073741892; +pub const EDQUOT: c_int = 1073741893; +pub const ESTALE: c_int = 1073741894; +pub const EREMOTE: c_int = 1073741895; +pub const EBADRPC: c_int = 1073741896; +pub const ERPCMISMATCH: c_int = 1073741897; +pub const EPROGUNAVAIL: c_int = 1073741898; +pub const EPROGMISMATCH: c_int = 1073741899; +pub const EPROCUNAVAIL: c_int = 1073741900; +pub const ENOLCK: c_int = 1073741901; +pub const EFTYPE: c_int = 1073741903; +pub const EAUTH: c_int = 1073741904; +pub const ENEEDAUTH: c_int = 1073741905; +pub const ENOSYS: c_int = 1073741902; +pub const ELIBEXEC: c_int = 1073741907; +pub const ENOTSUP: c_int = 1073741942; +pub const EILSEQ: c_int = 1073741930; +pub const EBACKGROUND: c_int = 1073741924; +pub const EDIED: c_int = 1073741925; +pub const EGREGIOUS: c_int = 1073741927; +pub const EIEIO: c_int = 1073741928; +pub const EGRATUITOUS: c_int = 1073741929; +pub const EBADMSG: c_int = 1073741931; +pub const EIDRM: c_int = 1073741932; +pub const EMULTIHOP: c_int = 1073741933; +pub const ENODATA: c_int = 1073741934; +pub const ENOLINK: c_int = 1073741935; +pub const ENOMSG: c_int = 1073741936; +pub const ENOSR: c_int = 1073741937; +pub const ENOSTR: c_int = 1073741938; +pub const EOVERFLOW: c_int = 1073741939; +pub const EPROTO: c_int = 1073741940; +pub const ETIME: c_int = 1073741941; +pub const ECANCELED: c_int = 1073741943; +pub const EOWNERDEAD: c_int = 1073741944; +pub const ENOTRECOVERABLE: c_int = 1073741945; +pub const EMACH_SEND_IN_PROGRESS: c_int = 268435457; +pub const EMACH_SEND_INVALID_DATA: c_int = 268435458; +pub const EMACH_SEND_INVALID_DEST: c_int = 268435459; +pub const EMACH_SEND_TIMED_OUT: c_int = 268435460; +pub const EMACH_SEND_WILL_NOTIFY: c_int = 268435461; +pub const EMACH_SEND_NOTIFY_IN_PROGRESS: c_int = 268435462; +pub const EMACH_SEND_INTERRUPTED: c_int = 268435463; +pub const EMACH_SEND_MSG_TOO_SMALL: c_int = 268435464; +pub const EMACH_SEND_INVALID_REPLY: c_int = 268435465; +pub const EMACH_SEND_INVALID_RIGHT: c_int = 268435466; +pub const EMACH_SEND_INVALID_NOTIFY: c_int = 268435467; +pub const EMACH_SEND_INVALID_MEMORY: c_int = 268435468; +pub const EMACH_SEND_NO_BUFFER: c_int = 268435469; +pub const EMACH_SEND_NO_NOTIFY: c_int = 268435470; +pub const EMACH_SEND_INVALID_TYPE: c_int = 268435471; +pub const EMACH_SEND_INVALID_HEADER: c_int = 268435472; +pub const EMACH_RCV_IN_PROGRESS: c_int = 268451841; +pub const EMACH_RCV_INVALID_NAME: c_int = 268451842; +pub const EMACH_RCV_TIMED_OUT: c_int = 268451843; +pub const EMACH_RCV_TOO_LARGE: c_int = 268451844; +pub const EMACH_RCV_INTERRUPTED: c_int = 268451845; +pub const EMACH_RCV_PORT_CHANGED: c_int = 268451846; +pub const EMACH_RCV_INVALID_NOTIFY: c_int = 268451847; +pub const EMACH_RCV_INVALID_DATA: c_int = 268451848; +pub const EMACH_RCV_PORT_DIED: c_int = 268451849; +pub const EMACH_RCV_IN_SET: c_int = 268451850; +pub const EMACH_RCV_HEADER_ERROR: c_int = 268451851; +pub const EMACH_RCV_BODY_ERROR: c_int = 268451852; +pub const EKERN_INVALID_ADDRESS: c_int = 1; +pub const EKERN_PROTECTION_FAILURE: c_int = 2; +pub const EKERN_NO_SPACE: c_int = 3; +pub const EKERN_INVALID_ARGUMENT: c_int = 4; +pub const EKERN_FAILURE: c_int = 5; +pub const EKERN_RESOURCE_SHORTAGE: c_int = 6; +pub const EKERN_NOT_RECEIVER: c_int = 7; +pub const EKERN_NO_ACCESS: c_int = 8; +pub const EKERN_MEMORY_FAILURE: c_int = 9; +pub const EKERN_MEMORY_ERROR: c_int = 10; +pub const EKERN_NOT_IN_SET: c_int = 12; +pub const EKERN_NAME_EXISTS: c_int = 13; +pub const EKERN_ABORTED: c_int = 14; +pub const EKERN_INVALID_NAME: c_int = 15; +pub const EKERN_INVALID_TASK: c_int = 16; +pub const EKERN_INVALID_RIGHT: c_int = 17; +pub const EKERN_INVALID_VALUE: c_int = 18; +pub const EKERN_UREFS_OVERFLOW: c_int = 19; +pub const EKERN_INVALID_CAPABILITY: c_int = 20; +pub const EKERN_RIGHT_EXISTS: c_int = 21; +pub const EKERN_INVALID_HOST: c_int = 22; +pub const EKERN_MEMORY_PRESENT: c_int = 23; +pub const EKERN_WRITE_PROTECTION_FAILURE: c_int = 24; +pub const EKERN_TERMINATED: c_int = 26; +pub const EKERN_TIMEDOUT: c_int = 27; +pub const EKERN_INTERRUPTED: c_int = 28; +pub const EMIG_TYPE_ERROR: c_int = -300; +pub const EMIG_REPLY_MISMATCH: c_int = -301; +pub const EMIG_REMOTE_ERROR: c_int = -302; +pub const EMIG_BAD_ID: c_int = -303; +pub const EMIG_BAD_ARGUMENTS: c_int = -304; +pub const EMIG_NO_REPLY: c_int = -305; +pub const EMIG_EXCEPTION: c_int = -306; +pub const EMIG_ARRAY_TOO_LARGE: c_int = -307; +pub const EMIG_SERVER_DIED: c_int = -308; +pub const EMIG_DESTROY_REQUEST: c_int = -309; +pub const ED_IO_ERROR: c_int = 2500; +pub const ED_WOULD_BLOCK: c_int = 2501; +pub const ED_NO_SUCH_DEVICE: c_int = 2502; +pub const ED_ALREADY_OPEN: c_int = 2503; +pub const ED_DEVICE_DOWN: c_int = 2504; +pub const ED_INVALID_OPERATION: c_int = 2505; +pub const ED_INVALID_RECNUM: c_int = 2506; +pub const ED_INVALID_SIZE: c_int = 2507; +pub const ED_NO_MEMORY: c_int = 2508; +pub const ED_READ_ONLY: c_int = 2509; pub const _HURD_ERRNOS: usize = 122; // sched.h -pub const SCHED_OTHER: ::c_int = 0; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; +pub const SCHED_OTHER: c_int = 0; +pub const SCHED_FIFO: c_int = 1; +pub const SCHED_RR: c_int = 2; pub const _BITS_TYPES_STRUCT_SCHED_PARAM: usize = 1; pub const __CPU_SETSIZE: usize = 1024; pub const CPU_SETSIZE: usize = 1024; // pthread.h -pub const PTHREAD_SPINLOCK_INITIALIZER: ::c_int = 0; -pub const PTHREAD_CANCEL_DISABLE: ::c_int = 0; -pub const PTHREAD_CANCEL_ENABLE: ::c_int = 1; -pub const PTHREAD_CANCEL_DEFERRED: ::c_int = 0; -pub const PTHREAD_CANCEL_ASYNCHRONOUS: ::c_int = 1; -pub const PTHREAD_BARRIER_SERIAL_THREAD: ::c_int = -1; +pub const PTHREAD_SPINLOCK_INITIALIZER: c_int = 0; +pub const PTHREAD_CANCEL_DISABLE: c_int = 0; +pub const PTHREAD_CANCEL_ENABLE: c_int = 1; +pub const PTHREAD_CANCEL_DEFERRED: c_int = 0; +pub const PTHREAD_CANCEL_ASYNCHRONOUS: c_int = 1; +pub const PTHREAD_BARRIER_SERIAL_THREAD: c_int = -1; // netinet/tcp.h -pub const TCP_NODELAY: ::c_int = 1; -pub const TCP_MAXSEG: ::c_int = 2; -pub const TCP_CORK: ::c_int = 3; -pub const TCP_KEEPIDLE: ::c_int = 4; -pub const TCP_KEEPINTVL: ::c_int = 5; -pub const TCP_KEEPCNT: ::c_int = 6; -pub const TCP_SYNCNT: ::c_int = 7; -pub const TCP_LINGER2: ::c_int = 8; -pub const TCP_DEFER_ACCEPT: ::c_int = 9; -pub const TCP_WINDOW_CLAMP: ::c_int = 10; -pub const TCP_INFO: ::c_int = 11; -pub const TCP_QUICKACK: ::c_int = 12; -pub const TCP_CONGESTION: ::c_int = 13; -pub const TCP_MD5SIG: ::c_int = 14; -pub const TCP_COOKIE_TRANSACTIONS: ::c_int = 15; -pub const TCP_THIN_LINEAR_TIMEOUTS: ::c_int = 16; -pub const TCP_THIN_DUPACK: ::c_int = 17; -pub const TCP_USER_TIMEOUT: ::c_int = 18; -pub const TCP_REPAIR: ::c_int = 19; -pub const TCP_REPAIR_QUEUE: ::c_int = 20; -pub const TCP_QUEUE_SEQ: ::c_int = 21; -pub const TCP_REPAIR_OPTIONS: ::c_int = 22; -pub const TCP_FASTOPEN: ::c_int = 23; -pub const TCP_TIMESTAMP: ::c_int = 24; -pub const TCP_NOTSENT_LOWAT: ::c_int = 25; -pub const TCP_CC_INFO: ::c_int = 26; -pub const TCP_SAVE_SYN: ::c_int = 27; -pub const TCP_SAVED_SYN: ::c_int = 28; -pub const TCP_REPAIR_WINDOW: ::c_int = 29; -pub const TCP_FASTOPEN_CONNECT: ::c_int = 30; -pub const TCP_ULP: ::c_int = 31; -pub const TCP_MD5SIG_EXT: ::c_int = 32; -pub const TCP_FASTOPEN_KEY: ::c_int = 33; -pub const TCP_FASTOPEN_NO_COOKIE: ::c_int = 34; -pub const TCP_ZEROCOPY_RECEIVE: ::c_int = 35; -pub const TCP_INQ: ::c_int = 36; -pub const TCP_CM_INQ: ::c_int = 36; -pub const TCP_TX_DELAY: ::c_int = 37; -pub const TCP_REPAIR_ON: ::c_int = 1; -pub const TCP_REPAIR_OFF: ::c_int = 0; -pub const TCP_REPAIR_OFF_NO_WP: ::c_int = -1; +pub const TCP_NODELAY: c_int = 1; +pub const TCP_MAXSEG: c_int = 2; +pub const TCP_CORK: c_int = 3; +pub const TCP_KEEPIDLE: c_int = 4; +pub const TCP_KEEPINTVL: c_int = 5; +pub const TCP_KEEPCNT: c_int = 6; +pub const TCP_SYNCNT: c_int = 7; +pub const TCP_LINGER2: c_int = 8; +pub const TCP_DEFER_ACCEPT: c_int = 9; +pub const TCP_WINDOW_CLAMP: c_int = 10; +pub const TCP_INFO: c_int = 11; +pub const TCP_QUICKACK: c_int = 12; +pub const TCP_CONGESTION: c_int = 13; +pub const TCP_MD5SIG: c_int = 14; +pub const TCP_COOKIE_TRANSACTIONS: c_int = 15; +pub const TCP_THIN_LINEAR_TIMEOUTS: c_int = 16; +pub const TCP_THIN_DUPACK: c_int = 17; +pub const TCP_USER_TIMEOUT: c_int = 18; +pub const TCP_REPAIR: c_int = 19; +pub const TCP_REPAIR_QUEUE: c_int = 20; +pub const TCP_QUEUE_SEQ: c_int = 21; +pub const TCP_REPAIR_OPTIONS: c_int = 22; +pub const TCP_FASTOPEN: c_int = 23; +pub const TCP_TIMESTAMP: c_int = 24; +pub const TCP_NOTSENT_LOWAT: c_int = 25; +pub const TCP_CC_INFO: c_int = 26; +pub const TCP_SAVE_SYN: c_int = 27; +pub const TCP_SAVED_SYN: c_int = 28; +pub const TCP_REPAIR_WINDOW: c_int = 29; +pub const TCP_FASTOPEN_CONNECT: c_int = 30; +pub const TCP_ULP: c_int = 31; +pub const TCP_MD5SIG_EXT: c_int = 32; +pub const TCP_FASTOPEN_KEY: c_int = 33; +pub const TCP_FASTOPEN_NO_COOKIE: c_int = 34; +pub const TCP_ZEROCOPY_RECEIVE: c_int = 35; +pub const TCP_INQ: c_int = 36; +pub const TCP_CM_INQ: c_int = 36; +pub const TCP_TX_DELAY: c_int = 37; +pub const TCP_REPAIR_ON: c_int = 1; +pub const TCP_REPAIR_OFF: c_int = 0; +pub const TCP_REPAIR_OFF_NO_WP: c_int = -1; // stdint.h pub const INT8_MIN: i8 = -128; @@ -2700,403 +2705,403 @@ pub const TCP_MD5SIG_FLAG_PREFIX: usize = 1; pub const TCP_COOKIE_MIN: usize = 8; pub const TCP_COOKIE_MAX: usize = 16; pub const TCP_COOKIE_PAIR_SIZE: usize = 32; -pub const TCP_COOKIE_IN_ALWAYS: ::c_int = 1; -pub const TCP_COOKIE_OUT_NEVER: ::c_int = 2; -pub const TCP_S_DATA_IN: ::c_int = 4; -pub const TCP_S_DATA_OUT: ::c_int = 8; +pub const TCP_COOKIE_IN_ALWAYS: c_int = 1; +pub const TCP_COOKIE_OUT_NEVER: c_int = 2; +pub const TCP_S_DATA_IN: c_int = 4; +pub const TCP_S_DATA_OUT: c_int = 8; pub const TCP_MSS_DEFAULT: usize = 536; pub const TCP_MSS_DESIRED: usize = 1220; // sys/wait.h -pub const WCOREFLAG: ::c_int = 128; +pub const WCOREFLAG: c_int = 128; pub const WAIT_ANY: pid_t = -1; pub const WAIT_MYPGRP: pid_t = 0; // sys/file.h -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_UN: ::c_int = 8; -pub const LOCK_NB: ::c_int = 4; +pub const LOCK_SH: c_int = 1; +pub const LOCK_EX: c_int = 2; +pub const LOCK_UN: c_int = 8; +pub const LOCK_NB: c_int = 4; // sys/mman.h -pub const PROT_NONE: ::c_int = 0; -pub const PROT_READ: ::c_int = 4; -pub const PROT_WRITE: ::c_int = 2; -pub const PROT_EXEC: ::c_int = 1; -pub const MAP_FILE: ::c_int = 1; -pub const MAP_ANON: ::c_int = 2; -pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; -pub const MAP_TYPE: ::c_int = 15; -pub const MAP_COPY: ::c_int = 32; -pub const MAP_SHARED: ::c_int = 16; -pub const MAP_PRIVATE: ::c_int = 0; -pub const MAP_FIXED: ::c_int = 256; -pub const MAP_NOEXTEND: ::c_int = 512; -pub const MAP_HASSEMAPHORE: ::c_int = 1024; -pub const MAP_INHERIT: ::c_int = 2048; -pub const MAP_32BIT: ::c_int = 4096; -pub const MAP_EXCL: ::c_int = 16384; -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; -pub const MADV_NORMAL: ::c_int = 0; -pub const MADV_RANDOM: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_WILLNEED: ::c_int = 3; -pub const MADV_DONTNEED: ::c_int = 4; -pub const POSIX_MADV_NORMAL: ::c_int = 0; -pub const POSIX_MADV_RANDOM: ::c_int = 1; -pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_MADV_WILLNEED: ::c_int = 3; -pub const POSIX_MADV_WONTNEED: ::c_int = 4; - -pub const MS_ASYNC: ::c_int = 1; -pub const MS_SYNC: ::c_int = 0; -pub const MS_INVALIDATE: ::c_int = 2; -pub const MREMAP_MAYMOVE: ::c_int = 1; -pub const MREMAP_FIXED: ::c_int = 2; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; +pub const PROT_NONE: c_int = 0; +pub const PROT_READ: c_int = 4; +pub const PROT_WRITE: c_int = 2; +pub const PROT_EXEC: c_int = 1; +pub const MAP_FILE: c_int = 1; +pub const MAP_ANON: c_int = 2; +pub const MAP_ANONYMOUS: c_int = MAP_ANON; +pub const MAP_TYPE: c_int = 15; +pub const MAP_COPY: c_int = 32; +pub const MAP_SHARED: c_int = 16; +pub const MAP_PRIVATE: c_int = 0; +pub const MAP_FIXED: c_int = 256; +pub const MAP_NOEXTEND: c_int = 512; +pub const MAP_HASSEMAPHORE: c_int = 1024; +pub const MAP_INHERIT: c_int = 2048; +pub const MAP_32BIT: c_int = 4096; +pub const MAP_EXCL: c_int = 16384; +pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; +pub const MADV_NORMAL: c_int = 0; +pub const MADV_RANDOM: c_int = 1; +pub const MADV_SEQUENTIAL: c_int = 2; +pub const MADV_WILLNEED: c_int = 3; +pub const MADV_DONTNEED: c_int = 4; +pub const POSIX_MADV_NORMAL: c_int = 0; +pub const POSIX_MADV_RANDOM: c_int = 1; +pub const POSIX_MADV_SEQUENTIAL: c_int = 2; +pub const POSIX_MADV_WILLNEED: c_int = 3; +pub const POSIX_MADV_WONTNEED: c_int = 4; + +pub const MS_ASYNC: c_int = 1; +pub const MS_SYNC: c_int = 0; +pub const MS_INVALIDATE: c_int = 2; +pub const MREMAP_MAYMOVE: c_int = 1; +pub const MREMAP_FIXED: c_int = 2; +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; // sys/xattr.h -pub const XATTR_CREATE: ::c_int = 0x1; -pub const XATTR_REPLACE: ::c_int = 0x2; +pub const XATTR_CREATE: c_int = 0x1; +pub const XATTR_REPLACE: c_int = 0x2; // spawn.h -pub const POSIX_SPAWN_USEVFORK: ::c_int = 64; -pub const POSIX_SPAWN_SETSID: ::c_int = 128; +pub const POSIX_SPAWN_USEVFORK: c_int = 64; +pub const POSIX_SPAWN_SETSID: c_int = 128; // sys/syslog.h -pub const LOG_CRON: ::c_int = 9 << 3; -pub const LOG_AUTHPRIV: ::c_int = 10 << 3; -pub const LOG_FTP: ::c_int = 11 << 3; -pub const LOG_PERROR: ::c_int = 0x20; +pub const LOG_CRON: c_int = 9 << 3; +pub const LOG_AUTHPRIV: c_int = 10 << 3; +pub const LOG_FTP: c_int = 11 << 3; +pub const LOG_PERROR: c_int = 0x20; // net/if.h -pub const IFF_UP: ::c_int = 0x1; -pub const IFF_BROADCAST: ::c_int = 0x2; -pub const IFF_DEBUG: ::c_int = 0x4; -pub const IFF_LOOPBACK: ::c_int = 0x8; -pub const IFF_POINTOPOINT: ::c_int = 0x10; -pub const IFF_NOTRAILERS: ::c_int = 0x20; -pub const IFF_RUNNING: ::c_int = 0x40; -pub const IFF_NOARP: ::c_int = 0x80; -pub const IFF_PROMISC: ::c_int = 0x100; -pub const IFF_ALLMULTI: ::c_int = 0x200; -pub const IFF_MASTER: ::c_int = 0x400; -pub const IFF_SLAVE: ::c_int = 0x800; -pub const IFF_MULTICAST: ::c_int = 0x1000; -pub const IFF_PORTSEL: ::c_int = 0x2000; -pub const IFF_AUTOMEDIA: ::c_int = 0x4000; -pub const IFF_DYNAMIC: ::c_int = 0x8000; +pub const IFF_UP: c_int = 0x1; +pub const IFF_BROADCAST: c_int = 0x2; +pub const IFF_DEBUG: c_int = 0x4; +pub const IFF_LOOPBACK: c_int = 0x8; +pub const IFF_POINTOPOINT: c_int = 0x10; +pub const IFF_NOTRAILERS: c_int = 0x20; +pub const IFF_RUNNING: c_int = 0x40; +pub const IFF_NOARP: c_int = 0x80; +pub const IFF_PROMISC: c_int = 0x100; +pub const IFF_ALLMULTI: c_int = 0x200; +pub const IFF_MASTER: c_int = 0x400; +pub const IFF_SLAVE: c_int = 0x800; +pub const IFF_MULTICAST: c_int = 0x1000; +pub const IFF_PORTSEL: c_int = 0x2000; +pub const IFF_AUTOMEDIA: c_int = 0x4000; +pub const IFF_DYNAMIC: c_int = 0x8000; // random.h -pub const GRND_NONBLOCK: ::c_uint = 1; -pub const GRND_RANDOM: ::c_uint = 2; -pub const GRND_INSECURE: ::c_uint = 4; - -pub const _PC_LINK_MAX: ::c_int = 0; -pub const _PC_MAX_CANON: ::c_int = 1; -pub const _PC_MAX_INPUT: ::c_int = 2; -pub const _PC_NAME_MAX: ::c_int = 3; -pub const _PC_PATH_MAX: ::c_int = 4; -pub const _PC_PIPE_BUF: ::c_int = 5; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 6; -pub const _PC_NO_TRUNC: ::c_int = 7; -pub const _PC_VDISABLE: ::c_int = 8; -pub const _PC_SYNC_IO: ::c_int = 9; -pub const _PC_ASYNC_IO: ::c_int = 10; -pub const _PC_PRIO_IO: ::c_int = 11; -pub const _PC_SOCK_MAXBUF: ::c_int = 12; -pub const _PC_FILESIZEBITS: ::c_int = 13; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; -pub const _PC_REC_XFER_ALIGN: ::c_int = 17; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 18; -pub const _PC_SYMLINK_MAX: ::c_int = 19; -pub const _PC_2_SYMLINKS: ::c_int = 20; -pub const _SC_ARG_MAX: ::c_int = 0; -pub const _SC_CHILD_MAX: ::c_int = 1; -pub const _SC_CLK_TCK: ::c_int = 2; -pub const _SC_NGROUPS_MAX: ::c_int = 3; -pub const _SC_OPEN_MAX: ::c_int = 4; -pub const _SC_STREAM_MAX: ::c_int = 5; -pub const _SC_TZNAME_MAX: ::c_int = 6; -pub const _SC_JOB_CONTROL: ::c_int = 7; -pub const _SC_SAVED_IDS: ::c_int = 8; -pub const _SC_REALTIME_SIGNALS: ::c_int = 9; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 10; -pub const _SC_TIMERS: ::c_int = 11; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 12; -pub const _SC_PRIORITIZED_IO: ::c_int = 13; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 14; -pub const _SC_FSYNC: ::c_int = 15; -pub const _SC_MAPPED_FILES: ::c_int = 16; -pub const _SC_MEMLOCK: ::c_int = 17; -pub const _SC_MEMLOCK_RANGE: ::c_int = 18; -pub const _SC_MEMORY_PROTECTION: ::c_int = 19; -pub const _SC_MESSAGE_PASSING: ::c_int = 20; -pub const _SC_SEMAPHORES: ::c_int = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 22; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 23; -pub const _SC_AIO_MAX: ::c_int = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 25; -pub const _SC_DELAYTIMER_MAX: ::c_int = 26; -pub const _SC_MQ_OPEN_MAX: ::c_int = 27; -pub const _SC_MQ_PRIO_MAX: ::c_int = 28; -pub const _SC_VERSION: ::c_int = 29; -pub const _SC_PAGESIZE: ::c_int = 30; -pub const _SC_PAGE_SIZE: ::c_int = 30; -pub const _SC_RTSIG_MAX: ::c_int = 31; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 32; -pub const _SC_SEM_VALUE_MAX: ::c_int = 33; -pub const _SC_SIGQUEUE_MAX: ::c_int = 34; -pub const _SC_TIMER_MAX: ::c_int = 35; -pub const _SC_BC_BASE_MAX: ::c_int = 36; -pub const _SC_BC_DIM_MAX: ::c_int = 37; -pub const _SC_BC_SCALE_MAX: ::c_int = 38; -pub const _SC_BC_STRING_MAX: ::c_int = 39; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 40; -pub const _SC_EQUIV_CLASS_MAX: ::c_int = 41; -pub const _SC_EXPR_NEST_MAX: ::c_int = 42; -pub const _SC_LINE_MAX: ::c_int = 43; -pub const _SC_RE_DUP_MAX: ::c_int = 44; -pub const _SC_CHARCLASS_NAME_MAX: ::c_int = 45; -pub const _SC_2_VERSION: ::c_int = 46; -pub const _SC_2_C_BIND: ::c_int = 47; -pub const _SC_2_C_DEV: ::c_int = 48; -pub const _SC_2_FORT_DEV: ::c_int = 49; -pub const _SC_2_FORT_RUN: ::c_int = 50; -pub const _SC_2_SW_DEV: ::c_int = 51; -pub const _SC_2_LOCALEDEF: ::c_int = 52; -pub const _SC_PII: ::c_int = 53; -pub const _SC_PII_XTI: ::c_int = 54; -pub const _SC_PII_SOCKET: ::c_int = 55; -pub const _SC_PII_INTERNET: ::c_int = 56; -pub const _SC_PII_OSI: ::c_int = 57; -pub const _SC_POLL: ::c_int = 58; -pub const _SC_SELECT: ::c_int = 59; -pub const _SC_UIO_MAXIOV: ::c_int = 60; -pub const _SC_IOV_MAX: ::c_int = 60; -pub const _SC_PII_INTERNET_STREAM: ::c_int = 61; -pub const _SC_PII_INTERNET_DGRAM: ::c_int = 62; -pub const _SC_PII_OSI_COTS: ::c_int = 63; -pub const _SC_PII_OSI_CLTS: ::c_int = 64; -pub const _SC_PII_OSI_M: ::c_int = 65; -pub const _SC_T_IOV_MAX: ::c_int = 66; -pub const _SC_THREADS: ::c_int = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 68; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 69; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 70; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 71; -pub const _SC_TTY_NAME_MAX: ::c_int = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 73; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 74; -pub const _SC_THREAD_STACK_MIN: ::c_int = 75; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 76; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 79; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 80; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 81; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 82; -pub const _SC_NPROCESSORS_CONF: ::c_int = 83; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 84; -pub const _SC_PHYS_PAGES: ::c_int = 85; -pub const _SC_AVPHYS_PAGES: ::c_int = 86; -pub const _SC_ATEXIT_MAX: ::c_int = 87; -pub const _SC_PASS_MAX: ::c_int = 88; -pub const _SC_XOPEN_VERSION: ::c_int = 89; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 90; -pub const _SC_XOPEN_UNIX: ::c_int = 91; -pub const _SC_XOPEN_CRYPT: ::c_int = 92; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 93; -pub const _SC_XOPEN_SHM: ::c_int = 94; -pub const _SC_2_CHAR_TERM: ::c_int = 95; -pub const _SC_2_C_VERSION: ::c_int = 96; -pub const _SC_2_UPE: ::c_int = 97; -pub const _SC_XOPEN_XPG2: ::c_int = 98; -pub const _SC_XOPEN_XPG3: ::c_int = 99; -pub const _SC_XOPEN_XPG4: ::c_int = 100; -pub const _SC_CHAR_BIT: ::c_int = 101; -pub const _SC_CHAR_MAX: ::c_int = 102; -pub const _SC_CHAR_MIN: ::c_int = 103; -pub const _SC_INT_MAX: ::c_int = 104; -pub const _SC_INT_MIN: ::c_int = 105; -pub const _SC_LONG_BIT: ::c_int = 106; -pub const _SC_WORD_BIT: ::c_int = 107; -pub const _SC_MB_LEN_MAX: ::c_int = 108; -pub const _SC_NZERO: ::c_int = 109; -pub const _SC_SSIZE_MAX: ::c_int = 110; -pub const _SC_SCHAR_MAX: ::c_int = 111; -pub const _SC_SCHAR_MIN: ::c_int = 112; -pub const _SC_SHRT_MAX: ::c_int = 113; -pub const _SC_SHRT_MIN: ::c_int = 114; -pub const _SC_UCHAR_MAX: ::c_int = 115; -pub const _SC_UINT_MAX: ::c_int = 116; -pub const _SC_ULONG_MAX: ::c_int = 117; -pub const _SC_USHRT_MAX: ::c_int = 118; -pub const _SC_NL_ARGMAX: ::c_int = 119; -pub const _SC_NL_LANGMAX: ::c_int = 120; -pub const _SC_NL_MSGMAX: ::c_int = 121; -pub const _SC_NL_NMAX: ::c_int = 122; -pub const _SC_NL_SETMAX: ::c_int = 123; -pub const _SC_NL_TEXTMAX: ::c_int = 124; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 125; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 126; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 128; -pub const _SC_XOPEN_LEGACY: ::c_int = 129; -pub const _SC_XOPEN_REALTIME: ::c_int = 130; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 131; -pub const _SC_ADVISORY_INFO: ::c_int = 132; -pub const _SC_BARRIERS: ::c_int = 133; -pub const _SC_BASE: ::c_int = 134; -pub const _SC_C_LANG_SUPPORT: ::c_int = 135; -pub const _SC_C_LANG_SUPPORT_R: ::c_int = 136; -pub const _SC_CLOCK_SELECTION: ::c_int = 137; -pub const _SC_CPUTIME: ::c_int = 138; -pub const _SC_THREAD_CPUTIME: ::c_int = 139; -pub const _SC_DEVICE_IO: ::c_int = 140; -pub const _SC_DEVICE_SPECIFIC: ::c_int = 141; -pub const _SC_DEVICE_SPECIFIC_R: ::c_int = 142; -pub const _SC_FD_MGMT: ::c_int = 143; -pub const _SC_FIFO: ::c_int = 144; -pub const _SC_PIPE: ::c_int = 145; -pub const _SC_FILE_ATTRIBUTES: ::c_int = 146; -pub const _SC_FILE_LOCKING: ::c_int = 147; -pub const _SC_FILE_SYSTEM: ::c_int = 148; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 149; -pub const _SC_MULTI_PROCESS: ::c_int = 150; -pub const _SC_SINGLE_PROCESS: ::c_int = 151; -pub const _SC_NETWORKING: ::c_int = 152; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 153; -pub const _SC_SPIN_LOCKS: ::c_int = 154; -pub const _SC_REGEXP: ::c_int = 155; -pub const _SC_REGEX_VERSION: ::c_int = 156; -pub const _SC_SHELL: ::c_int = 157; -pub const _SC_SIGNALS: ::c_int = 158; -pub const _SC_SPAWN: ::c_int = 159; -pub const _SC_SPORADIC_SERVER: ::c_int = 160; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 161; -pub const _SC_SYSTEM_DATABASE: ::c_int = 162; -pub const _SC_SYSTEM_DATABASE_R: ::c_int = 163; -pub const _SC_TIMEOUTS: ::c_int = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 165; -pub const _SC_USER_GROUPS: ::c_int = 166; -pub const _SC_USER_GROUPS_R: ::c_int = 167; -pub const _SC_2_PBS: ::c_int = 168; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 169; -pub const _SC_2_PBS_LOCATE: ::c_int = 170; -pub const _SC_2_PBS_MESSAGE: ::c_int = 171; -pub const _SC_2_PBS_TRACK: ::c_int = 172; -pub const _SC_SYMLOOP_MAX: ::c_int = 173; -pub const _SC_STREAMS: ::c_int = 174; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 175; -pub const _SC_V6_ILP32_OFF32: ::c_int = 176; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 177; -pub const _SC_V6_LP64_OFF64: ::c_int = 178; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 179; -pub const _SC_HOST_NAME_MAX: ::c_int = 180; -pub const _SC_TRACE: ::c_int = 181; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 182; -pub const _SC_TRACE_INHERIT: ::c_int = 183; -pub const _SC_TRACE_LOG: ::c_int = 184; -pub const _SC_LEVEL1_ICACHE_SIZE: ::c_int = 185; -pub const _SC_LEVEL1_ICACHE_ASSOC: ::c_int = 186; -pub const _SC_LEVEL1_ICACHE_LINESIZE: ::c_int = 187; -pub const _SC_LEVEL1_DCACHE_SIZE: ::c_int = 188; -pub const _SC_LEVEL1_DCACHE_ASSOC: ::c_int = 189; -pub const _SC_LEVEL1_DCACHE_LINESIZE: ::c_int = 190; -pub const _SC_LEVEL2_CACHE_SIZE: ::c_int = 191; -pub const _SC_LEVEL2_CACHE_ASSOC: ::c_int = 192; -pub const _SC_LEVEL2_CACHE_LINESIZE: ::c_int = 193; -pub const _SC_LEVEL3_CACHE_SIZE: ::c_int = 194; -pub const _SC_LEVEL3_CACHE_ASSOC: ::c_int = 195; -pub const _SC_LEVEL3_CACHE_LINESIZE: ::c_int = 196; -pub const _SC_LEVEL4_CACHE_SIZE: ::c_int = 197; -pub const _SC_LEVEL4_CACHE_ASSOC: ::c_int = 198; -pub const _SC_LEVEL4_CACHE_LINESIZE: ::c_int = 199; -pub const _SC_IPV6: ::c_int = 235; -pub const _SC_RAW_SOCKETS: ::c_int = 236; -pub const _SC_V7_ILP32_OFF32: ::c_int = 237; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 238; -pub const _SC_V7_LP64_OFF64: ::c_int = 239; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 240; -pub const _SC_SS_REPL_MAX: ::c_int = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 242; -pub const _SC_TRACE_NAME_MAX: ::c_int = 243; -pub const _SC_TRACE_SYS_MAX: ::c_int = 244; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 245; -pub const _SC_XOPEN_STREAMS: ::c_int = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 248; -pub const _SC_MINSIGSTKSZ: ::c_int = 249; -pub const _SC_SIGSTKSZ: ::c_int = 250; - -pub const _CS_PATH: ::c_int = 0; -pub const _CS_V6_WIDTH_RESTRICTED_ENVS: ::c_int = 1; -pub const _CS_GNU_LIBC_VERSION: ::c_int = 2; -pub const _CS_GNU_LIBPTHREAD_VERSION: ::c_int = 3; -pub const _CS_V5_WIDTH_RESTRICTED_ENVS: ::c_int = 4; -pub const _CS_V7_WIDTH_RESTRICTED_ENVS: ::c_int = 5; -pub const _CS_LFS_CFLAGS: ::c_int = 1000; -pub const _CS_LFS_LDFLAGS: ::c_int = 1001; -pub const _CS_LFS_LIBS: ::c_int = 1002; -pub const _CS_LFS_LINTFLAGS: ::c_int = 1003; -pub const _CS_LFS64_CFLAGS: ::c_int = 1004; -pub const _CS_LFS64_LDFLAGS: ::c_int = 1005; -pub const _CS_LFS64_LIBS: ::c_int = 1006; -pub const _CS_LFS64_LINTFLAGS: ::c_int = 1007; -pub const _CS_XBS5_ILP32_OFF32_CFLAGS: ::c_int = 1100; -pub const _CS_XBS5_ILP32_OFF32_LDFLAGS: ::c_int = 1101; -pub const _CS_XBS5_ILP32_OFF32_LIBS: ::c_int = 1102; -pub const _CS_XBS5_ILP32_OFF32_LINTFLAGS: ::c_int = 1103; -pub const _CS_XBS5_ILP32_OFFBIG_CFLAGS: ::c_int = 1104; -pub const _CS_XBS5_ILP32_OFFBIG_LDFLAGS: ::c_int = 1105; -pub const _CS_XBS5_ILP32_OFFBIG_LIBS: ::c_int = 1106; -pub const _CS_XBS5_ILP32_OFFBIG_LINTFLAGS: ::c_int = 1107; -pub const _CS_XBS5_LP64_OFF64_CFLAGS: ::c_int = 1108; -pub const _CS_XBS5_LP64_OFF64_LDFLAGS: ::c_int = 1109; -pub const _CS_XBS5_LP64_OFF64_LIBS: ::c_int = 1110; -pub const _CS_XBS5_LP64_OFF64_LINTFLAGS: ::c_int = 1111; -pub const _CS_XBS5_LPBIG_OFFBIG_CFLAGS: ::c_int = 1112; -pub const _CS_XBS5_LPBIG_OFFBIG_LDFLAGS: ::c_int = 1113; -pub const _CS_XBS5_LPBIG_OFFBIG_LIBS: ::c_int = 1114; -pub const _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS: ::c_int = 1115; -pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: ::c_int = 1116; -pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: ::c_int = 1117; -pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: ::c_int = 1118; -pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: ::c_int = 1119; -pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: ::c_int = 1120; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: ::c_int = 1121; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: ::c_int = 1122; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: ::c_int = 1123; -pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: ::c_int = 1124; -pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: ::c_int = 1125; -pub const _CS_POSIX_V6_LP64_OFF64_LIBS: ::c_int = 1126; -pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: ::c_int = 1127; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: ::c_int = 1128; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: ::c_int = 1129; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: ::c_int = 1130; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: ::c_int = 1131; -pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: ::c_int = 1132; -pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: ::c_int = 1133; -pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: ::c_int = 1134; -pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: ::c_int = 1135; -pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: ::c_int = 1136; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: ::c_int = 1137; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: ::c_int = 1138; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: ::c_int = 1139; -pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: ::c_int = 1140; -pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: ::c_int = 1141; -pub const _CS_POSIX_V7_LP64_OFF64_LIBS: ::c_int = 1142; -pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: ::c_int = 1143; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: ::c_int = 1144; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: ::c_int = 1145; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: ::c_int = 1146; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: ::c_int = 1147; -pub const _CS_V6_ENV: ::c_int = 1148; -pub const _CS_V7_ENV: ::c_int = 1149; +pub const GRND_NONBLOCK: c_uint = 1; +pub const GRND_RANDOM: c_uint = 2; +pub const GRND_INSECURE: c_uint = 4; + +pub const _PC_LINK_MAX: c_int = 0; +pub const _PC_MAX_CANON: c_int = 1; +pub const _PC_MAX_INPUT: c_int = 2; +pub const _PC_NAME_MAX: c_int = 3; +pub const _PC_PATH_MAX: c_int = 4; +pub const _PC_PIPE_BUF: c_int = 5; +pub const _PC_CHOWN_RESTRICTED: c_int = 6; +pub const _PC_NO_TRUNC: c_int = 7; +pub const _PC_VDISABLE: c_int = 8; +pub const _PC_SYNC_IO: c_int = 9; +pub const _PC_ASYNC_IO: c_int = 10; +pub const _PC_PRIO_IO: c_int = 11; +pub const _PC_SOCK_MAXBUF: c_int = 12; +pub const _PC_FILESIZEBITS: c_int = 13; +pub const _PC_REC_INCR_XFER_SIZE: c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: c_int = 16; +pub const _PC_REC_XFER_ALIGN: c_int = 17; +pub const _PC_ALLOC_SIZE_MIN: c_int = 18; +pub const _PC_SYMLINK_MAX: c_int = 19; +pub const _PC_2_SYMLINKS: c_int = 20; +pub const _SC_ARG_MAX: c_int = 0; +pub const _SC_CHILD_MAX: c_int = 1; +pub const _SC_CLK_TCK: c_int = 2; +pub const _SC_NGROUPS_MAX: c_int = 3; +pub const _SC_OPEN_MAX: c_int = 4; +pub const _SC_STREAM_MAX: c_int = 5; +pub const _SC_TZNAME_MAX: c_int = 6; +pub const _SC_JOB_CONTROL: c_int = 7; +pub const _SC_SAVED_IDS: c_int = 8; +pub const _SC_REALTIME_SIGNALS: c_int = 9; +pub const _SC_PRIORITY_SCHEDULING: c_int = 10; +pub const _SC_TIMERS: c_int = 11; +pub const _SC_ASYNCHRONOUS_IO: c_int = 12; +pub const _SC_PRIORITIZED_IO: c_int = 13; +pub const _SC_SYNCHRONIZED_IO: c_int = 14; +pub const _SC_FSYNC: c_int = 15; +pub const _SC_MAPPED_FILES: c_int = 16; +pub const _SC_MEMLOCK: c_int = 17; +pub const _SC_MEMLOCK_RANGE: c_int = 18; +pub const _SC_MEMORY_PROTECTION: c_int = 19; +pub const _SC_MESSAGE_PASSING: c_int = 20; +pub const _SC_SEMAPHORES: c_int = 21; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 22; +pub const _SC_AIO_LISTIO_MAX: c_int = 23; +pub const _SC_AIO_MAX: c_int = 24; +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 25; +pub const _SC_DELAYTIMER_MAX: c_int = 26; +pub const _SC_MQ_OPEN_MAX: c_int = 27; +pub const _SC_MQ_PRIO_MAX: c_int = 28; +pub const _SC_VERSION: c_int = 29; +pub const _SC_PAGESIZE: c_int = 30; +pub const _SC_PAGE_SIZE: c_int = 30; +pub const _SC_RTSIG_MAX: c_int = 31; +pub const _SC_SEM_NSEMS_MAX: c_int = 32; +pub const _SC_SEM_VALUE_MAX: c_int = 33; +pub const _SC_SIGQUEUE_MAX: c_int = 34; +pub const _SC_TIMER_MAX: c_int = 35; +pub const _SC_BC_BASE_MAX: c_int = 36; +pub const _SC_BC_DIM_MAX: c_int = 37; +pub const _SC_BC_SCALE_MAX: c_int = 38; +pub const _SC_BC_STRING_MAX: c_int = 39; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 40; +pub const _SC_EQUIV_CLASS_MAX: c_int = 41; +pub const _SC_EXPR_NEST_MAX: c_int = 42; +pub const _SC_LINE_MAX: c_int = 43; +pub const _SC_RE_DUP_MAX: c_int = 44; +pub const _SC_CHARCLASS_NAME_MAX: c_int = 45; +pub const _SC_2_VERSION: c_int = 46; +pub const _SC_2_C_BIND: c_int = 47; +pub const _SC_2_C_DEV: c_int = 48; +pub const _SC_2_FORT_DEV: c_int = 49; +pub const _SC_2_FORT_RUN: c_int = 50; +pub const _SC_2_SW_DEV: c_int = 51; +pub const _SC_2_LOCALEDEF: c_int = 52; +pub const _SC_PII: c_int = 53; +pub const _SC_PII_XTI: c_int = 54; +pub const _SC_PII_SOCKET: c_int = 55; +pub const _SC_PII_INTERNET: c_int = 56; +pub const _SC_PII_OSI: c_int = 57; +pub const _SC_POLL: c_int = 58; +pub const _SC_SELECT: c_int = 59; +pub const _SC_UIO_MAXIOV: c_int = 60; +pub const _SC_IOV_MAX: c_int = 60; +pub const _SC_PII_INTERNET_STREAM: c_int = 61; +pub const _SC_PII_INTERNET_DGRAM: c_int = 62; +pub const _SC_PII_OSI_COTS: c_int = 63; +pub const _SC_PII_OSI_CLTS: c_int = 64; +pub const _SC_PII_OSI_M: c_int = 65; +pub const _SC_T_IOV_MAX: c_int = 66; +pub const _SC_THREADS: c_int = 67; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 68; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 69; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 70; +pub const _SC_LOGIN_NAME_MAX: c_int = 71; +pub const _SC_TTY_NAME_MAX: c_int = 72; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 73; +pub const _SC_THREAD_KEYS_MAX: c_int = 74; +pub const _SC_THREAD_STACK_MIN: c_int = 75; +pub const _SC_THREAD_THREADS_MAX: c_int = 76; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 77; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 78; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 79; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 80; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 81; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 82; +pub const _SC_NPROCESSORS_CONF: c_int = 83; +pub const _SC_NPROCESSORS_ONLN: c_int = 84; +pub const _SC_PHYS_PAGES: c_int = 85; +pub const _SC_AVPHYS_PAGES: c_int = 86; +pub const _SC_ATEXIT_MAX: c_int = 87; +pub const _SC_PASS_MAX: c_int = 88; +pub const _SC_XOPEN_VERSION: c_int = 89; +pub const _SC_XOPEN_XCU_VERSION: c_int = 90; +pub const _SC_XOPEN_UNIX: c_int = 91; +pub const _SC_XOPEN_CRYPT: c_int = 92; +pub const _SC_XOPEN_ENH_I18N: c_int = 93; +pub const _SC_XOPEN_SHM: c_int = 94; +pub const _SC_2_CHAR_TERM: c_int = 95; +pub const _SC_2_C_VERSION: c_int = 96; +pub const _SC_2_UPE: c_int = 97; +pub const _SC_XOPEN_XPG2: c_int = 98; +pub const _SC_XOPEN_XPG3: c_int = 99; +pub const _SC_XOPEN_XPG4: c_int = 100; +pub const _SC_CHAR_BIT: c_int = 101; +pub const _SC_CHAR_MAX: c_int = 102; +pub const _SC_CHAR_MIN: c_int = 103; +pub const _SC_INT_MAX: c_int = 104; +pub const _SC_INT_MIN: c_int = 105; +pub const _SC_LONG_BIT: c_int = 106; +pub const _SC_WORD_BIT: c_int = 107; +pub const _SC_MB_LEN_MAX: c_int = 108; +pub const _SC_NZERO: c_int = 109; +pub const _SC_SSIZE_MAX: c_int = 110; +pub const _SC_SCHAR_MAX: c_int = 111; +pub const _SC_SCHAR_MIN: c_int = 112; +pub const _SC_SHRT_MAX: c_int = 113; +pub const _SC_SHRT_MIN: c_int = 114; +pub const _SC_UCHAR_MAX: c_int = 115; +pub const _SC_UINT_MAX: c_int = 116; +pub const _SC_ULONG_MAX: c_int = 117; +pub const _SC_USHRT_MAX: c_int = 118; +pub const _SC_NL_ARGMAX: c_int = 119; +pub const _SC_NL_LANGMAX: c_int = 120; +pub const _SC_NL_MSGMAX: c_int = 121; +pub const _SC_NL_NMAX: c_int = 122; +pub const _SC_NL_SETMAX: c_int = 123; +pub const _SC_NL_TEXTMAX: c_int = 124; +pub const _SC_XBS5_ILP32_OFF32: c_int = 125; +pub const _SC_XBS5_ILP32_OFFBIG: c_int = 126; +pub const _SC_XBS5_LP64_OFF64: c_int = 127; +pub const _SC_XBS5_LPBIG_OFFBIG: c_int = 128; +pub const _SC_XOPEN_LEGACY: c_int = 129; +pub const _SC_XOPEN_REALTIME: c_int = 130; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 131; +pub const _SC_ADVISORY_INFO: c_int = 132; +pub const _SC_BARRIERS: c_int = 133; +pub const _SC_BASE: c_int = 134; +pub const _SC_C_LANG_SUPPORT: c_int = 135; +pub const _SC_C_LANG_SUPPORT_R: c_int = 136; +pub const _SC_CLOCK_SELECTION: c_int = 137; +pub const _SC_CPUTIME: c_int = 138; +pub const _SC_THREAD_CPUTIME: c_int = 139; +pub const _SC_DEVICE_IO: c_int = 140; +pub const _SC_DEVICE_SPECIFIC: c_int = 141; +pub const _SC_DEVICE_SPECIFIC_R: c_int = 142; +pub const _SC_FD_MGMT: c_int = 143; +pub const _SC_FIFO: c_int = 144; +pub const _SC_PIPE: c_int = 145; +pub const _SC_FILE_ATTRIBUTES: c_int = 146; +pub const _SC_FILE_LOCKING: c_int = 147; +pub const _SC_FILE_SYSTEM: c_int = 148; +pub const _SC_MONOTONIC_CLOCK: c_int = 149; +pub const _SC_MULTI_PROCESS: c_int = 150; +pub const _SC_SINGLE_PROCESS: c_int = 151; +pub const _SC_NETWORKING: c_int = 152; +pub const _SC_READER_WRITER_LOCKS: c_int = 153; +pub const _SC_SPIN_LOCKS: c_int = 154; +pub const _SC_REGEXP: c_int = 155; +pub const _SC_REGEX_VERSION: c_int = 156; +pub const _SC_SHELL: c_int = 157; +pub const _SC_SIGNALS: c_int = 158; +pub const _SC_SPAWN: c_int = 159; +pub const _SC_SPORADIC_SERVER: c_int = 160; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 161; +pub const _SC_SYSTEM_DATABASE: c_int = 162; +pub const _SC_SYSTEM_DATABASE_R: c_int = 163; +pub const _SC_TIMEOUTS: c_int = 164; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 165; +pub const _SC_USER_GROUPS: c_int = 166; +pub const _SC_USER_GROUPS_R: c_int = 167; +pub const _SC_2_PBS: c_int = 168; +pub const _SC_2_PBS_ACCOUNTING: c_int = 169; +pub const _SC_2_PBS_LOCATE: c_int = 170; +pub const _SC_2_PBS_MESSAGE: c_int = 171; +pub const _SC_2_PBS_TRACK: c_int = 172; +pub const _SC_SYMLOOP_MAX: c_int = 173; +pub const _SC_STREAMS: c_int = 174; +pub const _SC_2_PBS_CHECKPOINT: c_int = 175; +pub const _SC_V6_ILP32_OFF32: c_int = 176; +pub const _SC_V6_ILP32_OFFBIG: c_int = 177; +pub const _SC_V6_LP64_OFF64: c_int = 178; +pub const _SC_V6_LPBIG_OFFBIG: c_int = 179; +pub const _SC_HOST_NAME_MAX: c_int = 180; +pub const _SC_TRACE: c_int = 181; +pub const _SC_TRACE_EVENT_FILTER: c_int = 182; +pub const _SC_TRACE_INHERIT: c_int = 183; +pub const _SC_TRACE_LOG: c_int = 184; +pub const _SC_LEVEL1_ICACHE_SIZE: c_int = 185; +pub const _SC_LEVEL1_ICACHE_ASSOC: c_int = 186; +pub const _SC_LEVEL1_ICACHE_LINESIZE: c_int = 187; +pub const _SC_LEVEL1_DCACHE_SIZE: c_int = 188; +pub const _SC_LEVEL1_DCACHE_ASSOC: c_int = 189; +pub const _SC_LEVEL1_DCACHE_LINESIZE: c_int = 190; +pub const _SC_LEVEL2_CACHE_SIZE: c_int = 191; +pub const _SC_LEVEL2_CACHE_ASSOC: c_int = 192; +pub const _SC_LEVEL2_CACHE_LINESIZE: c_int = 193; +pub const _SC_LEVEL3_CACHE_SIZE: c_int = 194; +pub const _SC_LEVEL3_CACHE_ASSOC: c_int = 195; +pub const _SC_LEVEL3_CACHE_LINESIZE: c_int = 196; +pub const _SC_LEVEL4_CACHE_SIZE: c_int = 197; +pub const _SC_LEVEL4_CACHE_ASSOC: c_int = 198; +pub const _SC_LEVEL4_CACHE_LINESIZE: c_int = 199; +pub const _SC_IPV6: c_int = 235; +pub const _SC_RAW_SOCKETS: c_int = 236; +pub const _SC_V7_ILP32_OFF32: c_int = 237; +pub const _SC_V7_ILP32_OFFBIG: c_int = 238; +pub const _SC_V7_LP64_OFF64: c_int = 239; +pub const _SC_V7_LPBIG_OFFBIG: c_int = 240; +pub const _SC_SS_REPL_MAX: c_int = 241; +pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 242; +pub const _SC_TRACE_NAME_MAX: c_int = 243; +pub const _SC_TRACE_SYS_MAX: c_int = 244; +pub const _SC_TRACE_USER_EVENT_MAX: c_int = 245; +pub const _SC_XOPEN_STREAMS: c_int = 246; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 247; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 248; +pub const _SC_MINSIGSTKSZ: c_int = 249; +pub const _SC_SIGSTKSZ: c_int = 250; + +pub const _CS_PATH: c_int = 0; +pub const _CS_V6_WIDTH_RESTRICTED_ENVS: c_int = 1; +pub const _CS_GNU_LIBC_VERSION: c_int = 2; +pub const _CS_GNU_LIBPTHREAD_VERSION: c_int = 3; +pub const _CS_V5_WIDTH_RESTRICTED_ENVS: c_int = 4; +pub const _CS_V7_WIDTH_RESTRICTED_ENVS: c_int = 5; +pub const _CS_LFS_CFLAGS: c_int = 1000; +pub const _CS_LFS_LDFLAGS: c_int = 1001; +pub const _CS_LFS_LIBS: c_int = 1002; +pub const _CS_LFS_LINTFLAGS: c_int = 1003; +pub const _CS_LFS64_CFLAGS: c_int = 1004; +pub const _CS_LFS64_LDFLAGS: c_int = 1005; +pub const _CS_LFS64_LIBS: c_int = 1006; +pub const _CS_LFS64_LINTFLAGS: c_int = 1007; +pub const _CS_XBS5_ILP32_OFF32_CFLAGS: c_int = 1100; +pub const _CS_XBS5_ILP32_OFF32_LDFLAGS: c_int = 1101; +pub const _CS_XBS5_ILP32_OFF32_LIBS: c_int = 1102; +pub const _CS_XBS5_ILP32_OFF32_LINTFLAGS: c_int = 1103; +pub const _CS_XBS5_ILP32_OFFBIG_CFLAGS: c_int = 1104; +pub const _CS_XBS5_ILP32_OFFBIG_LDFLAGS: c_int = 1105; +pub const _CS_XBS5_ILP32_OFFBIG_LIBS: c_int = 1106; +pub const _CS_XBS5_ILP32_OFFBIG_LINTFLAGS: c_int = 1107; +pub const _CS_XBS5_LP64_OFF64_CFLAGS: c_int = 1108; +pub const _CS_XBS5_LP64_OFF64_LDFLAGS: c_int = 1109; +pub const _CS_XBS5_LP64_OFF64_LIBS: c_int = 1110; +pub const _CS_XBS5_LP64_OFF64_LINTFLAGS: c_int = 1111; +pub const _CS_XBS5_LPBIG_OFFBIG_CFLAGS: c_int = 1112; +pub const _CS_XBS5_LPBIG_OFFBIG_LDFLAGS: c_int = 1113; +pub const _CS_XBS5_LPBIG_OFFBIG_LIBS: c_int = 1114; +pub const _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS: c_int = 1115; +pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: c_int = 1116; +pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: c_int = 1117; +pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: c_int = 1118; +pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: c_int = 1119; +pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: c_int = 1120; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: c_int = 1121; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: c_int = 1122; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: c_int = 1123; +pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: c_int = 1124; +pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: c_int = 1125; +pub const _CS_POSIX_V6_LP64_OFF64_LIBS: c_int = 1126; +pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: c_int = 1127; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: c_int = 1128; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: c_int = 1129; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: c_int = 1130; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: c_int = 1131; +pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: c_int = 1132; +pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: c_int = 1133; +pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: c_int = 1134; +pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: c_int = 1135; +pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: c_int = 1136; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: c_int = 1137; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: c_int = 1138; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: c_int = 1139; +pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: c_int = 1140; +pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: c_int = 1141; +pub const _CS_POSIX_V7_LP64_OFF64_LIBS: c_int = 1142; +pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: c_int = 1143; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: c_int = 1144; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: c_int = 1145; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: c_int = 1146; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: c_int = 1147; +pub const _CS_V6_ENV: c_int = 1148; +pub const _CS_V7_ENV: c_int = 1149; pub const PTHREAD_PROCESS_PRIVATE: __pthread_process_shared = 0; pub const PTHREAD_PROCESS_SHARED: __pthread_process_shared = 1; @@ -3121,21 +3126,21 @@ pub const PTHREAD_MUTEX_RECURSIVE: __pthread_mutex_type = 2; pub const PTHREAD_MUTEX_STALLED: __pthread_mutex_robustness = 0; pub const PTHREAD_MUTEX_ROBUST: __pthread_mutex_robustness = 256; -pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; -pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; -pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; -pub const RLIMIT_STACK: ::__rlimit_resource_t = 3; -pub const RLIMIT_CORE: ::__rlimit_resource_t = 4; -pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; -pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 6; -pub const RLIMIT_NPROC: ::__rlimit_resource_t = 7; -pub const RLIMIT_OFILE: ::__rlimit_resource_t = 8; -pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 8; -pub const RLIMIT_SBSIZE: ::__rlimit_resource_t = 9; -pub const RLIMIT_AS: ::__rlimit_resource_t = 10; -pub const RLIMIT_VMEM: ::__rlimit_resource_t = 10; -pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = 11; -pub const RLIM_NLIMITS: ::__rlimit_resource_t = 11; +pub const RLIMIT_CPU: crate::__rlimit_resource_t = 0; +pub const RLIMIT_FSIZE: crate::__rlimit_resource_t = 1; +pub const RLIMIT_DATA: crate::__rlimit_resource_t = 2; +pub const RLIMIT_STACK: crate::__rlimit_resource_t = 3; +pub const RLIMIT_CORE: crate::__rlimit_resource_t = 4; +pub const RLIMIT_RSS: crate::__rlimit_resource_t = 5; +pub const RLIMIT_MEMLOCK: crate::__rlimit_resource_t = 6; +pub const RLIMIT_NPROC: crate::__rlimit_resource_t = 7; +pub const RLIMIT_OFILE: crate::__rlimit_resource_t = 8; +pub const RLIMIT_NOFILE: crate::__rlimit_resource_t = 8; +pub const RLIMIT_SBSIZE: crate::__rlimit_resource_t = 9; +pub const RLIMIT_AS: crate::__rlimit_resource_t = 10; +pub const RLIMIT_VMEM: crate::__rlimit_resource_t = 10; +pub const RLIMIT_NLIMITS: crate::__rlimit_resource_t = 11; +pub const RLIM_NLIMITS: crate::__rlimit_resource_t = 11; pub const RUSAGE_SELF: __rusage_who = 0; pub const RUSAGE_CHILDREN: __rusage_who = -1; @@ -3148,86 +3153,86 @@ pub const __UT_LINESIZE: usize = 32; pub const __UT_NAMESIZE: usize = 32; pub const __UT_HOSTSIZE: usize = 256; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOCK_CLOEXEC: ::c_int = 4194304; -pub const SOCK_NONBLOCK: ::c_int = 2048; - -pub const MSG_OOB: ::c_int = 1; -pub const MSG_PEEK: ::c_int = 2; -pub const MSG_DONTROUTE: ::c_int = 4; -pub const MSG_EOR: ::c_int = 8; -pub const MSG_TRUNC: ::c_int = 16; -pub const MSG_CTRUNC: ::c_int = 32; -pub const MSG_WAITALL: ::c_int = 64; -pub const MSG_DONTWAIT: ::c_int = 128; -pub const MSG_NOSIGNAL: ::c_int = 1024; -pub const MSG_CMSG_CLOEXEC: ::c_int = 0x40000000; - -pub const SCM_RIGHTS: ::c_int = 1; -pub const SCM_TIMESTAMP: ::c_int = 2; -pub const SCM_CREDS: ::c_int = 3; - -pub const SO_DEBUG: ::c_int = 1; -pub const SO_ACCEPTCONN: ::c_int = 2; -pub const SO_REUSEADDR: ::c_int = 4; -pub const SO_KEEPALIVE: ::c_int = 8; -pub const SO_DONTROUTE: ::c_int = 16; -pub const SO_BROADCAST: ::c_int = 32; -pub const SO_USELOOPBACK: ::c_int = 64; -pub const SO_LINGER: ::c_int = 128; -pub const SO_OOBINLINE: ::c_int = 256; -pub const SO_REUSEPORT: ::c_int = 512; -pub const SO_SNDBUF: ::c_int = 4097; -pub const SO_RCVBUF: ::c_int = 4098; -pub const SO_SNDLOWAT: ::c_int = 4099; -pub const SO_RCVLOWAT: ::c_int = 4100; -pub const SO_SNDTIMEO: ::c_int = 4101; -pub const SO_RCVTIMEO: ::c_int = 4102; -pub const SO_ERROR: ::c_int = 4103; -pub const SO_STYLE: ::c_int = 4104; -pub const SO_TYPE: ::c_int = 4104; - -pub const IPPROTO_IP: ::c_int = 0; -pub const IPPROTO_ICMP: ::c_int = 1; -pub const IPPROTO_IGMP: ::c_int = 2; -pub const IPPROTO_IPIP: ::c_int = 4; -pub const IPPROTO_TCP: ::c_int = 6; -pub const IPPROTO_EGP: ::c_int = 8; -pub const IPPROTO_PUP: ::c_int = 12; -pub const IPPROTO_UDP: ::c_int = 17; -pub const IPPROTO_IDP: ::c_int = 22; -pub const IPPROTO_TP: ::c_int = 29; -pub const IPPROTO_DCCP: ::c_int = 33; -pub const IPPROTO_IPV6: ::c_int = 41; -pub const IPPROTO_RSVP: ::c_int = 46; -pub const IPPROTO_GRE: ::c_int = 47; -pub const IPPROTO_ESP: ::c_int = 50; -pub const IPPROTO_AH: ::c_int = 51; -pub const IPPROTO_MTP: ::c_int = 92; -pub const IPPROTO_BEETPH: ::c_int = 94; -pub const IPPROTO_ENCAP: ::c_int = 98; -pub const IPPROTO_PIM: ::c_int = 103; -pub const IPPROTO_COMP: ::c_int = 108; -pub const IPPROTO_L2TP: ::c_int = 115; -pub const IPPROTO_SCTP: ::c_int = 132; -pub const IPPROTO_UDPLITE: ::c_int = 136; -pub const IPPROTO_MPLS: ::c_int = 137; -pub const IPPROTO_ETHERNET: ::c_int = 143; -pub const IPPROTO_RAW: ::c_int = 255; -pub const IPPROTO_MPTCP: ::c_int = 262; -pub const IPPROTO_MAX: ::c_int = 263; - -pub const IPPROTO_HOPOPTS: ::c_int = 0; -pub const IPPROTO_ROUTING: ::c_int = 43; -pub const IPPROTO_FRAGMENT: ::c_int = 44; -pub const IPPROTO_ICMPV6: ::c_int = 58; -pub const IPPROTO_NONE: ::c_int = 59; -pub const IPPROTO_DSTOPTS: ::c_int = 60; -pub const IPPROTO_MH: ::c_int = 135; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; +pub const SOCK_RAW: c_int = 3; +pub const SOCK_RDM: c_int = 4; +pub const SOCK_SEQPACKET: c_int = 5; +pub const SOCK_CLOEXEC: c_int = 4194304; +pub const SOCK_NONBLOCK: c_int = 2048; + +pub const MSG_OOB: c_int = 1; +pub const MSG_PEEK: c_int = 2; +pub const MSG_DONTROUTE: c_int = 4; +pub const MSG_EOR: c_int = 8; +pub const MSG_TRUNC: c_int = 16; +pub const MSG_CTRUNC: c_int = 32; +pub const MSG_WAITALL: c_int = 64; +pub const MSG_DONTWAIT: c_int = 128; +pub const MSG_NOSIGNAL: c_int = 1024; +pub const MSG_CMSG_CLOEXEC: c_int = 0x40000000; + +pub const SCM_RIGHTS: c_int = 1; +pub const SCM_TIMESTAMP: c_int = 2; +pub const SCM_CREDS: c_int = 3; + +pub const SO_DEBUG: c_int = 1; +pub const SO_ACCEPTCONN: c_int = 2; +pub const SO_REUSEADDR: c_int = 4; +pub const SO_KEEPALIVE: c_int = 8; +pub const SO_DONTROUTE: c_int = 16; +pub const SO_BROADCAST: c_int = 32; +pub const SO_USELOOPBACK: c_int = 64; +pub const SO_LINGER: c_int = 128; +pub const SO_OOBINLINE: c_int = 256; +pub const SO_REUSEPORT: c_int = 512; +pub const SO_SNDBUF: c_int = 4097; +pub const SO_RCVBUF: c_int = 4098; +pub const SO_SNDLOWAT: c_int = 4099; +pub const SO_RCVLOWAT: c_int = 4100; +pub const SO_SNDTIMEO: c_int = 4101; +pub const SO_RCVTIMEO: c_int = 4102; +pub const SO_ERROR: c_int = 4103; +pub const SO_STYLE: c_int = 4104; +pub const SO_TYPE: c_int = 4104; + +pub const IPPROTO_IP: c_int = 0; +pub const IPPROTO_ICMP: c_int = 1; +pub const IPPROTO_IGMP: c_int = 2; +pub const IPPROTO_IPIP: c_int = 4; +pub const IPPROTO_TCP: c_int = 6; +pub const IPPROTO_EGP: c_int = 8; +pub const IPPROTO_PUP: c_int = 12; +pub const IPPROTO_UDP: c_int = 17; +pub const IPPROTO_IDP: c_int = 22; +pub const IPPROTO_TP: c_int = 29; +pub const IPPROTO_DCCP: c_int = 33; +pub const IPPROTO_IPV6: c_int = 41; +pub const IPPROTO_RSVP: c_int = 46; +pub const IPPROTO_GRE: c_int = 47; +pub const IPPROTO_ESP: c_int = 50; +pub const IPPROTO_AH: c_int = 51; +pub const IPPROTO_MTP: c_int = 92; +pub const IPPROTO_BEETPH: c_int = 94; +pub const IPPROTO_ENCAP: c_int = 98; +pub const IPPROTO_PIM: c_int = 103; +pub const IPPROTO_COMP: c_int = 108; +pub const IPPROTO_L2TP: c_int = 115; +pub const IPPROTO_SCTP: c_int = 132; +pub const IPPROTO_UDPLITE: c_int = 136; +pub const IPPROTO_MPLS: c_int = 137; +pub const IPPROTO_ETHERNET: c_int = 143; +pub const IPPROTO_RAW: c_int = 255; +pub const IPPROTO_MPTCP: c_int = 262; +pub const IPPROTO_MAX: c_int = 263; + +pub const IPPROTO_HOPOPTS: c_int = 0; +pub const IPPROTO_ROUTING: c_int = 43; +pub const IPPROTO_FRAGMENT: c_int = 44; +pub const IPPROTO_ICMPV6: c_int = 58; +pub const IPPROTO_NONE: c_int = 59; +pub const IPPROTO_DSTOPTS: c_int = 60; +pub const IPPROTO_MH: c_int = 135; pub const IPPORT_ECHO: in_port_t = 7; pub const IPPORT_DISCARD: in_port_t = 9; @@ -3255,107 +3260,107 @@ pub const IPPORT_WHOSERVER: in_port_t = 513; pub const IPPORT_ROUTESERVER: in_port_t = 520; pub const IPPORT_USERRESERVED: in_port_t = 5000; -pub const DT_UNKNOWN: ::c_uchar = 0; -pub const DT_FIFO: ::c_uchar = 1; -pub const DT_CHR: ::c_uchar = 2; -pub const DT_DIR: ::c_uchar = 4; -pub const DT_BLK: ::c_uchar = 6; -pub const DT_REG: ::c_uchar = 8; -pub const DT_LNK: ::c_uchar = 10; -pub const DT_SOCK: ::c_uchar = 12; -pub const DT_WHT: ::c_uchar = 14; - -pub const ST_RDONLY: ::c_ulong = 1; -pub const ST_NOSUID: ::c_ulong = 2; -pub const ST_NOEXEC: ::c_ulong = 8; -pub const ST_SYNCHRONOUS: ::c_ulong = 16; -pub const ST_NOATIME: ::c_ulong = 32; -pub const ST_RELATIME: ::c_ulong = 64; - -pub const RTLD_DI_LMID: ::c_int = 1; -pub const RTLD_DI_LINKMAP: ::c_int = 2; -pub const RTLD_DI_CONFIGADDR: ::c_int = 3; -pub const RTLD_DI_SERINFO: ::c_int = 4; -pub const RTLD_DI_SERINFOSIZE: ::c_int = 5; -pub const RTLD_DI_ORIGIN: ::c_int = 6; -pub const RTLD_DI_PROFILENAME: ::c_int = 7; -pub const RTLD_DI_PROFILEOUT: ::c_int = 8; -pub const RTLD_DI_TLS_MODID: ::c_int = 9; -pub const RTLD_DI_TLS_DATA: ::c_int = 10; -pub const RTLD_DI_PHDR: ::c_int = 11; -pub const RTLD_DI_MAX: ::c_int = 11; - -pub const SI_ASYNCIO: ::c_int = -4; -pub const SI_MESGQ: ::c_int = -3; -pub const SI_TIMER: ::c_int = -2; -pub const SI_QUEUE: ::c_int = -1; -pub const SI_USER: ::c_int = 0; - -pub const ILL_ILLOPC: ::c_int = 1; -pub const ILL_ILLOPN: ::c_int = 2; -pub const ILL_ILLADR: ::c_int = 3; -pub const ILL_ILLTRP: ::c_int = 4; -pub const ILL_PRVOPC: ::c_int = 5; -pub const ILL_PRVREG: ::c_int = 6; -pub const ILL_COPROC: ::c_int = 7; -pub const ILL_BADSTK: ::c_int = 8; - -pub const FPE_INTDIV: ::c_int = 1; -pub const FPE_INTOVF: ::c_int = 2; -pub const FPE_FLTDIV: ::c_int = 3; -pub const FPE_FLTOVF: ::c_int = 4; -pub const FPE_FLTUND: ::c_int = 5; -pub const FPE_FLTRES: ::c_int = 6; -pub const FPE_FLTINV: ::c_int = 7; -pub const FPE_FLTSUB: ::c_int = 8; - -pub const SEGV_MAPERR: ::c_int = 1; -pub const SEGV_ACCERR: ::c_int = 2; - -pub const BUS_ADRALN: ::c_int = 1; -pub const BUS_ADRERR: ::c_int = 2; -pub const BUS_OBJERR: ::c_int = 3; - -pub const TRAP_BRKPT: ::c_int = 1; -pub const TRAP_TRACE: ::c_int = 2; - -pub const CLD_EXITED: ::c_int = 1; -pub const CLD_KILLED: ::c_int = 2; -pub const CLD_DUMPED: ::c_int = 3; -pub const CLD_TRAPPED: ::c_int = 4; -pub const CLD_STOPPED: ::c_int = 5; -pub const CLD_CONTINUED: ::c_int = 6; - -pub const POLL_IN: ::c_int = 1; -pub const POLL_OUT: ::c_int = 2; -pub const POLL_MSG: ::c_int = 3; -pub const POLL_ERR: ::c_int = 4; -pub const POLL_PRI: ::c_int = 5; -pub const POLL_HUP: ::c_int = 6; - -pub const SIGEV_SIGNAL: ::c_int = 0; -pub const SIGEV_NONE: ::c_int = 1; -pub const SIGEV_THREAD: ::c_int = 2; - -pub const REG_GS: ::c_uint = 0; -pub const REG_FS: ::c_uint = 1; -pub const REG_ES: ::c_uint = 2; -pub const REG_DS: ::c_uint = 3; -pub const REG_EDI: ::c_uint = 4; -pub const REG_ESI: ::c_uint = 5; -pub const REG_EBP: ::c_uint = 6; -pub const REG_ESP: ::c_uint = 7; -pub const REG_EBX: ::c_uint = 8; -pub const REG_EDX: ::c_uint = 9; -pub const REG_ECX: ::c_uint = 10; -pub const REG_EAX: ::c_uint = 11; -pub const REG_TRAPNO: ::c_uint = 12; -pub const REG_ERR: ::c_uint = 13; -pub const REG_EIP: ::c_uint = 14; -pub const REG_CS: ::c_uint = 15; -pub const REG_EFL: ::c_uint = 16; -pub const REG_UESP: ::c_uint = 17; -pub const REG_SS: ::c_uint = 18; +pub const DT_UNKNOWN: c_uchar = 0; +pub const DT_FIFO: c_uchar = 1; +pub const DT_CHR: c_uchar = 2; +pub const DT_DIR: c_uchar = 4; +pub const DT_BLK: c_uchar = 6; +pub const DT_REG: c_uchar = 8; +pub const DT_LNK: c_uchar = 10; +pub const DT_SOCK: c_uchar = 12; +pub const DT_WHT: c_uchar = 14; + +pub const ST_RDONLY: c_ulong = 1; +pub const ST_NOSUID: c_ulong = 2; +pub const ST_NOEXEC: c_ulong = 8; +pub const ST_SYNCHRONOUS: c_ulong = 16; +pub const ST_NOATIME: c_ulong = 32; +pub const ST_RELATIME: c_ulong = 64; + +pub const RTLD_DI_LMID: c_int = 1; +pub const RTLD_DI_LINKMAP: c_int = 2; +pub const RTLD_DI_CONFIGADDR: c_int = 3; +pub const RTLD_DI_SERINFO: c_int = 4; +pub const RTLD_DI_SERINFOSIZE: c_int = 5; +pub const RTLD_DI_ORIGIN: c_int = 6; +pub const RTLD_DI_PROFILENAME: c_int = 7; +pub const RTLD_DI_PROFILEOUT: c_int = 8; +pub const RTLD_DI_TLS_MODID: c_int = 9; +pub const RTLD_DI_TLS_DATA: c_int = 10; +pub const RTLD_DI_PHDR: c_int = 11; +pub const RTLD_DI_MAX: c_int = 11; + +pub const SI_ASYNCIO: c_int = -4; +pub const SI_MESGQ: c_int = -3; +pub const SI_TIMER: c_int = -2; +pub const SI_QUEUE: c_int = -1; +pub const SI_USER: c_int = 0; + +pub const ILL_ILLOPC: c_int = 1; +pub const ILL_ILLOPN: c_int = 2; +pub const ILL_ILLADR: c_int = 3; +pub const ILL_ILLTRP: c_int = 4; +pub const ILL_PRVOPC: c_int = 5; +pub const ILL_PRVREG: c_int = 6; +pub const ILL_COPROC: c_int = 7; +pub const ILL_BADSTK: c_int = 8; + +pub const FPE_INTDIV: c_int = 1; +pub const FPE_INTOVF: c_int = 2; +pub const FPE_FLTDIV: c_int = 3; +pub const FPE_FLTOVF: c_int = 4; +pub const FPE_FLTUND: c_int = 5; +pub const FPE_FLTRES: c_int = 6; +pub const FPE_FLTINV: c_int = 7; +pub const FPE_FLTSUB: c_int = 8; + +pub const SEGV_MAPERR: c_int = 1; +pub const SEGV_ACCERR: c_int = 2; + +pub const BUS_ADRALN: c_int = 1; +pub const BUS_ADRERR: c_int = 2; +pub const BUS_OBJERR: c_int = 3; + +pub const TRAP_BRKPT: c_int = 1; +pub const TRAP_TRACE: c_int = 2; + +pub const CLD_EXITED: c_int = 1; +pub const CLD_KILLED: c_int = 2; +pub const CLD_DUMPED: c_int = 3; +pub const CLD_TRAPPED: c_int = 4; +pub const CLD_STOPPED: c_int = 5; +pub const CLD_CONTINUED: c_int = 6; + +pub const POLL_IN: c_int = 1; +pub const POLL_OUT: c_int = 2; +pub const POLL_MSG: c_int = 3; +pub const POLL_ERR: c_int = 4; +pub const POLL_PRI: c_int = 5; +pub const POLL_HUP: c_int = 6; + +pub const SIGEV_SIGNAL: c_int = 0; +pub const SIGEV_NONE: c_int = 1; +pub const SIGEV_THREAD: c_int = 2; + +pub const REG_GS: c_uint = 0; +pub const REG_FS: c_uint = 1; +pub const REG_ES: c_uint = 2; +pub const REG_DS: c_uint = 3; +pub const REG_EDI: c_uint = 4; +pub const REG_ESI: c_uint = 5; +pub const REG_EBP: c_uint = 6; +pub const REG_ESP: c_uint = 7; +pub const REG_EBX: c_uint = 8; +pub const REG_EDX: c_uint = 9; +pub const REG_ECX: c_uint = 10; +pub const REG_EAX: c_uint = 11; +pub const REG_TRAPNO: c_uint = 12; +pub const REG_ERR: c_uint = 13; +pub const REG_EIP: c_uint = 14; +pub const REG_CS: c_uint = 15; +pub const REG_EFL: c_uint = 16; +pub const REG_UESP: c_uint = 17; +pub const REG_SS: c_uint = 18; pub const IOC_VOID: __ioctl_dir = 0; pub const IOC_OUT: __ioctl_dir = 1; @@ -3367,17 +3372,17 @@ pub const IOC_16: __ioctl_datum = 1; pub const IOC_32: __ioctl_datum = 2; pub const IOC_64: __ioctl_datum = 3; -pub const TCP_ESTABLISHED: ::c_uint = 1; -pub const TCP_SYN_SENT: ::c_uint = 2; -pub const TCP_SYN_RECV: ::c_uint = 3; -pub const TCP_FIN_WAIT1: ::c_uint = 4; -pub const TCP_FIN_WAIT2: ::c_uint = 5; -pub const TCP_TIME_WAIT: ::c_uint = 6; -pub const TCP_CLOSE: ::c_uint = 7; -pub const TCP_CLOSE_WAIT: ::c_uint = 8; -pub const TCP_LAST_ACK: ::c_uint = 9; -pub const TCP_LISTEN: ::c_uint = 10; -pub const TCP_CLOSING: ::c_uint = 11; +pub const TCP_ESTABLISHED: c_uint = 1; +pub const TCP_SYN_SENT: c_uint = 2; +pub const TCP_SYN_RECV: c_uint = 3; +pub const TCP_FIN_WAIT1: c_uint = 4; +pub const TCP_FIN_WAIT2: c_uint = 5; +pub const TCP_TIME_WAIT: c_uint = 6; +pub const TCP_CLOSE: c_uint = 7; +pub const TCP_CLOSE_WAIT: c_uint = 8; +pub const TCP_LAST_ACK: c_uint = 9; +pub const TCP_LISTEN: c_uint = 10; +pub const TCP_CLOSING: c_uint = 11; pub const TCP_CA_Open: tcp_ca_state = 0; pub const TCP_CA_Disorder: tcp_ca_state = 1; @@ -3385,27 +3390,27 @@ pub const TCP_CA_CWR: tcp_ca_state = 2; pub const TCP_CA_Recovery: tcp_ca_state = 3; pub const TCP_CA_Loss: tcp_ca_state = 4; -pub const TCP_NO_QUEUE: ::c_uint = 0; -pub const TCP_RECV_QUEUE: ::c_uint = 1; -pub const TCP_SEND_QUEUE: ::c_uint = 2; -pub const TCP_QUEUES_NR: ::c_uint = 3; +pub const TCP_NO_QUEUE: c_uint = 0; +pub const TCP_RECV_QUEUE: c_uint = 1; +pub const TCP_SEND_QUEUE: c_uint = 2; +pub const TCP_QUEUES_NR: c_uint = 3; pub const P_ALL: idtype_t = 0; pub const P_PID: idtype_t = 1; pub const P_PGID: idtype_t = 2; -pub const SS_ONSTACK: ::c_int = 1; -pub const SS_DISABLE: ::c_int = 4; +pub const SS_ONSTACK: c_int = 1; +pub const SS_DISABLE: c_int = 4; -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; +pub const SHUT_RD: c_int = 0; +pub const SHUT_WR: c_int = 1; +pub const SHUT_RDWR: c_int = 2; pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { __lock: 0, __owner_id: 0, __cnt: 0, __shpid: 0, - __type: PTHREAD_MUTEX_TIMED as ::c_int, + __type: PTHREAD_MUTEX_TIMED as c_int, __flags: 0, __reserved1: 0, __reserved2: 0, @@ -3415,7 +3420,7 @@ pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { __queue: 0i64 as *mut __pthread, __attr: 0i64 as *mut __pthread_condattr, __wrefs: 0, - __data: 0i64 as *mut ::c_void, + __data: 0i64 as *mut c_void, }; pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { __held: __PTHREAD_SPIN_LOCK_INITIALIZER, @@ -3424,43 +3429,43 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { __readerqueue: 0i64 as *mut __pthread, __writerqueue: 0i64 as *mut __pthread, __attr: 0i64 as *mut __pthread_rwlockattr, - __data: 0i64 as *mut ::c_void, + __data: 0i64 as *mut c_void, }; -pub const PTHREAD_STACK_MIN: ::size_t = 0; +pub const PTHREAD_STACK_MIN: size_t = 0; // Non-public helper constants const _UTSNAME_LENGTH: usize = 1024; const_fn! { {const} fn CMSG_ALIGN(len: usize) -> usize { - len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) + len + crate::mem::size_of::() - 1 & !(crate::mem::size_of::() - 1) } } // functions f! { pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= ::mem::size_of::() { + if (*mhdr).msg_controllen as usize >= crate::mem::size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { 0 as *mut cmsghdr } } - pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut ::c_uchar { - cmsg.offset(1) as *mut ::c_uchar + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { + cmsg.offset(1) as *mut c_uchar } - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) as ::c_uint + pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(crate::mem::size_of::())) as c_uint } - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - CMSG_ALIGN(::mem::size_of::()) as ::c_uint + length + pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + CMSG_ALIGN(crate::mem::size_of::()) as c_uint + length } pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { - if ((*cmsg).cmsg_len as usize) < ::mem::size_of::() { + if ((*cmsg).cmsg_len as usize) < crate::mem::size_of::() { return 0 as *mut cmsghdr; }; let next = (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; @@ -3474,10 +3479,10 @@ f! { } } - pub fn CPU_ALLOC_SIZE(count: ::c_int) -> ::size_t { - let _dummy: cpu_set_t = ::mem::zeroed(); - let size_in_bits = 8 * ::mem::size_of_val(&_dummy.bits[0]); - ((count as ::size_t + size_in_bits - 1) / 8) as ::size_t + pub fn CPU_ALLOC_SIZE(count: c_int) -> size_t { + let _dummy: cpu_set_t = crate::mem::zeroed(); + let size_in_bits = 8 * crate::mem::size_of_val(&_dummy.bits[0]); + ((count as size_t + size_in_bits - 1) / 8) as size_t } pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { @@ -3487,48 +3492,48 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); + let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); 0 != (cpuset.bits[idx] & (1 << offset)) } - pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> ::c_int { + pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int { let mut s: u32 = 0; - let size_of_mask = ::mem::size_of_val(&cpuset.bits[0]); + let size_of_mask = crate::mem::size_of_val(&cpuset.bits[0]); for i in cpuset.bits[..(size / size_of_mask)].iter() { s += i.count_ones(); } - s as ::c_int + s as c_int } - pub fn CPU_COUNT(cpuset: &cpu_set_t) -> ::c_int { - CPU_COUNT_S(::mem::size_of::(), cpuset) + pub fn CPU_COUNT(cpuset: &cpu_set_t) -> c_int { + CPU_COUNT_S(crate::mem::size_of::(), cpuset) } pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { set1.bits == set2.bits } - pub fn major(dev: ::dev_t) -> ::c_uint { - ((dev >> 8) & 0xff) as ::c_uint + pub fn major(dev: crate::dev_t) -> c_uint { + ((dev >> 8) & 0xff) as c_uint } - pub fn minor(dev: ::dev_t) -> ::c_uint { - (dev & 0xffff00ff) as ::c_uint + pub fn minor(dev: crate::dev_t) -> c_uint { + (dev & 0xffff00ff) as c_uint } pub fn IPTOS_TOS(tos: u8) -> u8 { @@ -3539,22 +3544,22 @@ f! { tos & IPTOS_PREC_MASK } - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { + pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } @@ -3567,327 +3572,312 @@ f! { } extern "C" { - pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; + pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int; - pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; - pub fn futimens(__fd: ::c_int, __times: *const ::timespec) -> ::c_int; + pub fn futimes(fd: c_int, times: *const crate::timeval) -> c_int; + pub fn futimens(__fd: c_int, __times: *const crate::timespec) -> c_int; pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; + dirfd: c_int, + path: *const c_char, + times: *const crate::timespec, + flag: c_int, + ) -> c_int; - pub fn mkfifoat(__fd: ::c_int, __path: *const ::c_char, __mode: __mode_t) -> ::c_int; + pub fn mkfifoat(__fd: c_int, __path: *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 mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t, dev: dev_t) + -> c_int; - pub fn __libc_current_sigrtmin() -> ::c_int; + pub fn __libc_current_sigrtmin() -> c_int; - pub fn __libc_current_sigrtmax() -> ::c_int; + pub fn __libc_current_sigrtmax() -> c_int; pub fn wait4( - pid: ::pid_t, - status: *mut ::c_int, - options: ::c_int, - rusage: *mut ::rusage, - ) -> ::pid_t; - - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) - -> ::c_int; - - pub fn sigwait(__set: *const sigset_t, __sig: *mut ::c_int) -> ::c_int; - - pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; + pid: crate::pid_t, + status: *mut c_int, + options: c_int, + rusage: *mut crate::rusage, + ) -> crate::pid_t; + + pub fn waitid( + idtype: idtype_t, + id: id_t, + infop: *mut crate::siginfo_t, + options: c_int, + ) -> c_int; + + pub fn sigwait(__set: *const sigset_t, __sig: *mut c_int) -> c_int; + + pub fn sigsuspend(mask: *const crate::sigset_t) -> c_int; pub fn sigtimedwait( set: *const sigset_t, info: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; + timeout: *const crate::timespec, + ) -> c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> c_int; - pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> c_int; - pub fn ioctl(__fd: ::c_int, __request: ::c_ulong, ...) -> ::c_int; + pub fn ioctl(__fd: c_int, __request: c_ulong, ...) -> c_int; - pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; + pub fn pipe2(fds: *mut c_int, flags: c_int) -> c_int; - pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int; + pub fn dup3(oldfd: c_int, newfd: c_int, flags: c_int) -> c_int; - pub fn pread64(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off64_t) -> ::ssize_t; - pub fn pwrite64( - fd: ::c_int, - buf: *const ::c_void, - count: ::size_t, - offset: off64_t, - ) -> ::ssize_t; + pub fn pread64(fd: c_int, buf: *mut c_void, count: size_t, offset: off64_t) -> ssize_t; + pub fn pwrite64(fd: c_int, buf: *const c_void, count: size_t, offset: off64_t) -> ssize_t; - pub fn readv(__fd: ::c_int, __iovec: *const ::iovec, __count: ::c_int) -> ::ssize_t; - pub fn writev(__fd: ::c_int, __iovec: *const ::iovec, __count: ::c_int) -> ::ssize_t; + pub fn readv(__fd: c_int, __iovec: *const crate::iovec, __count: c_int) -> ssize_t; + pub fn writev(__fd: c_int, __iovec: *const crate::iovec, __count: c_int) -> ssize_t; pub fn preadv( - __fd: ::c_int, - __iovec: *const ::iovec, - __count: ::c_int, + __fd: c_int, + __iovec: *const crate::iovec, + __count: c_int, __offset: __off_t, - ) -> ::ssize_t; + ) -> ssize_t; pub fn pwritev( - __fd: ::c_int, - __iovec: *const ::iovec, - __count: ::c_int, + __fd: c_int, + __iovec: *const crate::iovec, + __count: c_int, __offset: __off_t, - ) -> ::ssize_t; - - pub fn preadv64( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, - ) -> ::ssize_t; + ) -> ssize_t; + + pub fn preadv64(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off64_t) + -> ssize_t; pub fn pwritev64( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, - ) -> ::ssize_t; + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: off64_t, + ) -> ssize_t; pub fn fread_unlocked( - buf: *mut ::c_void, - size: ::size_t, - nobj: ::size_t, - stream: *mut ::FILE, - ) -> ::size_t; - - 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; + buf: *mut c_void, + size: size_t, + nobj: size_t, + stream: *mut crate::FILE, + ) -> size_t; + + 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; 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; + nitems: c_int, + timeout: *const crate::timespec, + ) -> c_int; + pub fn aio_cancel(fd: c_int, aiocbp: *mut aiocb) -> c_int; pub fn lio_listio( - mode: ::c_int, + mode: c_int, aiocb_list: *const *mut aiocb, - nitems: ::c_int, - sevp: *mut ::sigevent, - ) -> ::c_int; + nitems: c_int, + sevp: *mut crate::sigevent, + ) -> c_int; - pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; - pub fn mq_close(mqd: ::mqd_t) -> ::c_int; - pub fn mq_unlink(name: *const ::c_char) -> ::c_int; + pub fn mq_open(name: *const c_char, oflag: c_int, ...) -> crate::mqd_t; + pub fn mq_close(mqd: crate::mqd_t) -> c_int; + pub fn mq_unlink(name: *const c_char) -> c_int; pub fn mq_receive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - ) -> ::ssize_t; + mqd: crate::mqd_t, + msg_ptr: *mut c_char, + msg_len: size_t, + msg_prio: *mut c_uint, + ) -> ssize_t; pub fn mq_timedreceive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::ssize_t; + mqd: crate::mqd_t, + msg_ptr: *mut c_char, + msg_len: size_t, + msg_prio: *mut c_uint, + abs_timeout: *const crate::timespec, + ) -> ssize_t; pub fn mq_send( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - ) -> ::c_int; + mqd: crate::mqd_t, + msg_ptr: *const c_char, + msg_len: size_t, + msg_prio: c_uint, + ) -> c_int; pub fn mq_timedsend( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::c_int; - pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; - - pub fn lseek64(__fd: ::c_int, __offset: __off64_t, __whence: ::c_int) -> __off64_t; - - pub fn lseek(__fd: ::c_int, __offset: __off_t, __whence: ::c_int) -> __off_t; - - pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int; - pub fn fseeko64(stream: *mut ::FILE, offset: ::off64_t, whence: ::c_int) -> ::c_int; - pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int; - pub fn ftello64(stream: *mut ::FILE) -> ::off64_t; - - pub fn bind(__fd: ::c_int, __addr: *const sockaddr, __len: ::socklen_t) -> ::c_int; + mqd: crate::mqd_t, + msg_ptr: *const c_char, + msg_len: size_t, + msg_prio: c_uint, + abs_timeout: *const crate::timespec, + ) -> c_int; + pub fn mq_getattr(mqd: crate::mqd_t, attr: *mut crate::mq_attr) -> c_int; + pub fn mq_setattr( + mqd: crate::mqd_t, + newattr: *const crate::mq_attr, + oldattr: *mut crate::mq_attr, + ) -> c_int; + + pub fn lseek64(__fd: c_int, __offset: __off64_t, __whence: c_int) -> __off64_t; + + pub fn lseek(__fd: c_int, __offset: __off_t, __whence: c_int) -> __off_t; + + pub fn fgetpos64(stream: *mut crate::FILE, ptr: *mut fpos64_t) -> c_int; + pub fn fseeko64(stream: *mut crate::FILE, offset: off64_t, whence: c_int) -> c_int; + pub fn fsetpos64(stream: *mut crate::FILE, ptr: *const fpos64_t) -> c_int; + pub fn ftello64(stream: *mut crate::FILE) -> off64_t; + + pub fn bind(__fd: c_int, __addr: *const sockaddr, __len: crate::socklen_t) -> c_int; pub fn accept4( - fd: ::c_int, - addr: *mut ::sockaddr, - len: *mut ::socklen_t, - flg: ::c_int, - ) -> ::c_int; + fd: c_int, + addr: *mut crate::sockaddr, + len: *mut crate::socklen_t, + flg: c_int, + ) -> c_int; pub fn ppoll( - fds: *mut ::pollfd, + fds: *mut crate::pollfd, nfds: nfds_t, - timeout: *const ::timespec, + timeout: *const crate::timespec, sigmask: *const sigset_t, - ) -> ::c_int; + ) -> c_int; - pub fn recvmsg(__fd: ::c_int, __message: *mut msghdr, __flags: ::c_int) -> ::ssize_t; + pub fn recvmsg(__fd: c_int, __message: *mut msghdr, __flags: c_int) -> ssize_t; - pub fn sendmsg(__fd: ::c_int, __message: *const msghdr, __flags: ::c_int) -> ::ssize_t; + pub fn sendmsg(__fd: c_int, __message: *const msghdr, __flags: c_int) -> ssize_t; pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - - pub fn sendfile( - out_fd: ::c_int, - in_fd: ::c_int, - offset: *mut off_t, - count: ::size_t, - ) -> ::ssize_t; - pub fn sendfile64( - out_fd: ::c_int, - in_fd: ::c_int, - offset: *mut off64_t, - count: ::size_t, - ) -> ::ssize_t; - - pub fn shutdown(__fd: ::c_int, __how: ::c_int) -> ::c_int; - - pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; + socket: c_int, + buf: *mut c_void, + len: size_t, + flags: c_int, + addr: *mut crate::sockaddr, + addrlen: *mut crate::socklen_t, + ) -> ssize_t; + + pub fn sendfile(out_fd: c_int, in_fd: c_int, offset: *mut off_t, count: size_t) -> ssize_t; + pub fn sendfile64(out_fd: c_int, in_fd: c_int, offset: *mut off64_t, count: size_t) -> ssize_t; + + pub fn shutdown(__fd: c_int, __how: c_int) -> c_int; + + pub fn sethostname(name: *const c_char, len: size_t) -> c_int; + pub fn getdomainname(name: *mut c_char, len: size_t) -> c_int; + pub fn setdomainname(name: *const c_char, len: size_t) -> c_int; pub fn if_nameindex() -> *mut if_nameindex; pub fn if_freenameindex(ptr: *mut if_nameindex); pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - servlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; + sa: *const crate::sockaddr, + salen: crate::socklen_t, + host: *mut c_char, + hostlen: crate::socklen_t, + serv: *mut c_char, + servlen: crate::socklen_t, + flags: c_int, + ) -> c_int; - pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; - pub fn freeifaddrs(ifa: *mut ::ifaddrs); + pub fn getifaddrs(ifap: *mut *mut crate::ifaddrs) -> c_int; + pub fn freeifaddrs(ifa: *mut crate::ifaddrs); - pub fn uname(buf: *mut ::utsname) -> ::c_int; + pub fn uname(buf: *mut crate::utsname) -> c_int; - pub fn gethostid() -> ::c_long; - pub fn sethostid(hostid: ::c_long) -> ::c_int; + pub fn gethostid() -> c_long; + pub fn sethostid(hostid: c_long) -> c_int; pub fn setpwent(); pub fn endpwent(); pub fn getpwent() -> *mut passwd; pub fn setgrent(); pub fn endgrent(); - pub fn getgrent() -> *mut ::group; + pub fn getgrent() -> *mut crate::group; pub fn setspent(); pub fn endspent(); pub fn getspent() -> *mut spwd; - pub fn getspnam(name: *const ::c_char) -> *mut spwd; + pub fn getspnam(name: *const c_char) -> *mut spwd; pub fn getpwent_r( - pwd: *mut ::passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::passwd, - ) -> ::c_int; + pwd: *mut crate::passwd, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::passwd, + ) -> c_int; pub fn getgrent_r( - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; pub fn fgetpwent_r( - stream: *mut ::FILE, - pwd: *mut ::passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::passwd, - ) -> ::c_int; + stream: *mut crate::FILE, + pwd: *mut crate::passwd, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::passwd, + ) -> c_int; pub fn fgetgrent_r( - stream: *mut ::FILE, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; + stream: *mut crate::FILE, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; - pub fn putpwent(p: *const ::passwd, stream: *mut ::FILE) -> ::c_int; - pub fn putgrent(grp: *const ::group, stream: *mut ::FILE) -> ::c_int; + pub fn putpwent(p: *const crate::passwd, stream: *mut crate::FILE) -> c_int; + pub fn putgrent(grp: *const crate::group, stream: *mut crate::FILE) -> c_int; pub fn getpwnam_r( - name: *const ::c_char, + name: *const c_char, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; pub fn getpwuid_r( - uid: ::uid_t, + uid: crate::uid_t, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; pub fn fgetspent_r( - fp: *mut ::FILE, - spbuf: *mut ::spwd, - buf: *mut ::c_char, - buflen: ::size_t, - spbufp: *mut *mut ::spwd, - ) -> ::c_int; + fp: *mut crate::FILE, + spbuf: *mut crate::spwd, + buf: *mut c_char, + buflen: size_t, + spbufp: *mut *mut crate::spwd, + ) -> c_int; pub fn sgetspent_r( - s: *const ::c_char, - spbuf: *mut ::spwd, - buf: *mut ::c_char, - buflen: ::size_t, - spbufp: *mut *mut ::spwd, - ) -> ::c_int; + s: *const c_char, + spbuf: *mut crate::spwd, + buf: *mut c_char, + buflen: size_t, + spbufp: *mut *mut crate::spwd, + ) -> c_int; pub fn getspent_r( - spbuf: *mut ::spwd, - buf: *mut ::c_char, - buflen: ::size_t, - spbufp: *mut *mut ::spwd, - ) -> ::c_int; + spbuf: *mut crate::spwd, + buf: *mut c_char, + buflen: size_t, + spbufp: *mut *mut crate::spwd, + ) -> c_int; pub fn getspnam_r( - name: *const ::c_char, + name: *const c_char, spbuf: *mut spwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, spbufp: *mut *mut spwd, - ) -> ::c_int; + ) -> c_int; // mntent.h pub fn getmntent_r( - stream: *mut ::FILE, - mntbuf: *mut ::mntent, - buf: *mut ::c_char, - buflen: ::c_int, - ) -> *mut ::mntent; - - pub fn utmpname(file: *const ::c_char) -> ::c_int; - pub fn utmpxname(file: *const ::c_char) -> ::c_int; + stream: *mut crate::FILE, + mntbuf: *mut crate::mntent, + buf: *mut c_char, + buflen: c_int, + ) -> *mut crate::mntent; + + pub fn utmpname(file: *const c_char) -> c_int; + pub fn utmpxname(file: *const c_char) -> c_int; pub fn getutxent() -> *mut utmpx; pub fn getutxid(ut: *const utmpx) -> *mut utmpx; pub fn getutxline(ut: *const utmpx) -> *mut utmpx; @@ -3895,755 +3885,740 @@ extern "C" { pub fn setutxent(); pub fn endutxent(); - pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int; - pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int; - pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; - pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int; - - pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; - - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + pub fn getresuid( + ruid: *mut crate::uid_t, + euid: *mut crate::uid_t, + suid: *mut crate::uid_t, + ) -> c_int; + pub fn getresgid( + rgid: *mut crate::gid_t, + egid: *mut crate::gid_t, + sgid: *mut crate::gid_t, + ) -> c_int; + pub fn setresuid(ruid: crate::uid_t, euid: crate::uid_t, suid: crate::uid_t) -> c_int; + pub fn setresgid(rgid: crate::gid_t, egid: crate::gid_t, sgid: crate::gid_t) -> c_int; + + pub fn initgroups(user: *const c_char, group: crate::gid_t) -> c_int; + + pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + gid: crate::gid_t, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + + pub fn getgrnam(name: *const c_char) -> *mut crate::group; pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; + name: *const c_char, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; pub fn getgrouplist( - user: *const ::c_char, - group: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int, - ) -> ::c_int; + user: *const c_char, + group: crate::gid_t, + groups: *mut crate::gid_t, + ngroups: *mut c_int, + ) -> c_int; - pub fn setgroups(ngroups: ::size_t, ptr: *const ::gid_t) -> ::c_int; + pub fn setgroups(ngroups: size_t, ptr: *const crate::gid_t) -> c_int; - pub fn acct(filename: *const ::c_char) -> ::c_int; + pub fn acct(filename: *const c_char) -> c_int; - pub fn setmntent(filename: *const ::c_char, ty: *const ::c_char) -> *mut ::FILE; - pub fn getmntent(stream: *mut ::FILE) -> *mut ::mntent; - pub fn addmntent(stream: *mut ::FILE, mnt: *const ::mntent) -> ::c_int; - pub fn endmntent(streamp: *mut ::FILE) -> ::c_int; - pub fn hasmntopt(mnt: *const ::mntent, opt: *const ::c_char) -> *mut ::c_char; + pub fn setmntent(filename: *const c_char, ty: *const c_char) -> *mut crate::FILE; + pub fn getmntent(stream: *mut crate::FILE) -> *mut crate::mntent; + pub fn addmntent(stream: *mut crate::FILE, mnt: *const crate::mntent) -> c_int; + pub fn endmntent(streamp: *mut crate::FILE) -> c_int; + pub fn hasmntopt(mnt: *const crate::mntent, opt: *const c_char) -> *mut c_char; pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - pub fn pthread_kill(__threadid: ::pthread_t, __signo: ::c_int) -> ::c_int; - pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; - pub fn __pthread_equal(__t1: __pthread_t, __t2: __pthread_t) -> ::c_int; + native: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + f: extern "C" fn(*mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; + pub fn pthread_kill(__threadid: crate::pthread_t, __signo: c_int) -> c_int; + pub fn pthread_cancel(thread: crate::pthread_t) -> c_int; + pub fn __pthread_equal(__t1: __pthread_t, __t2: __pthread_t) -> c_int; - pub fn pthread_getattr_np(__thr: ::pthread_t, __attr: *mut pthread_attr_t) -> ::c_int; + pub fn pthread_getattr_np(__thr: crate::pthread_t, __attr: *mut pthread_attr_t) -> c_int; pub fn pthread_attr_getguardsize( __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; + __guardsize: *mut size_t, + ) -> c_int; + pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int; pub fn pthread_attr_getstack( __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::c_void, - __stacksize: *mut ::size_t, - ) -> ::c_int; + __stackaddr: *mut *mut c_void, + __stacksize: *mut size_t, + ) -> c_int; pub fn pthread_mutexattr_getpshared( attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_setpshared( - attr: *mut pthread_mutexattr_t, - pshared: ::c_int, - ) -> ::c_int; + pshared: *mut c_int, + ) -> c_int; + pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, pshared: c_int) -> c_int; pub fn pthread_mutex_timedlock( lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; + abstime: *const crate::timespec, + ) -> c_int; pub fn pthread_rwlockattr_getpshared( attr: *const pthread_rwlockattr_t, - val: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int; + val: *mut c_int, + ) -> c_int; + pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: c_int) -> c_int; pub fn pthread_condattr_getclock( attr: *const pthread_condattr_t, clock_id: *mut clockid_t, - ) -> ::c_int; + ) -> c_int; pub fn pthread_condattr_setclock( __attr: *mut pthread_condattr_t, __clock_id: __clockid_t, - ) -> ::c_int; + ) -> c_int; pub fn pthread_condattr_getpshared( attr: *const pthread_condattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int; + pshared: *mut c_int, + ) -> c_int; + pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: c_int) -> c_int; - pub fn pthread_once(control: *mut pthread_once_t, routine: extern "C" fn()) -> ::c_int; + pub fn pthread_once(control: *mut pthread_once_t, routine: extern "C" fn()) -> c_int; - pub fn pthread_barrierattr_init(attr: *mut ::pthread_barrierattr_t) -> ::c_int; - pub fn pthread_barrierattr_destroy(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + pub fn pthread_barrierattr_init(attr: *mut crate::pthread_barrierattr_t) -> c_int; + pub fn pthread_barrierattr_destroy(attr: *mut crate::pthread_barrierattr_t) -> c_int; pub fn pthread_barrierattr_getpshared( - attr: *const ::pthread_barrierattr_t, - shared: *mut ::c_int, - ) -> ::c_int; + attr: *const crate::pthread_barrierattr_t, + shared: *mut c_int, + ) -> c_int; pub fn pthread_barrierattr_setpshared( - attr: *mut ::pthread_barrierattr_t, - shared: ::c_int, - ) -> ::c_int; + attr: *mut crate::pthread_barrierattr_t, + shared: c_int, + ) -> c_int; pub fn pthread_barrier_init( barrier: *mut pthread_barrier_t, - attr: *const ::pthread_barrierattr_t, - count: ::c_uint, - ) -> ::c_int; - pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> ::c_int; - pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::c_int; - pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_trylock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_unlock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + attr: *const crate::pthread_barrierattr_t, + count: c_uint, + ) -> c_int; + pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> c_int; + pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> c_int; + pub fn pthread_spin_init(lock: *mut crate::pthread_spinlock_t, pshared: c_int) -> c_int; + pub fn pthread_spin_destroy(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn pthread_spin_lock(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn pthread_spin_trylock(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn pthread_spin_unlock(lock: *mut crate::pthread_spinlock_t) -> c_int; pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; + prepare: Option, + parent: Option, + child: Option, + ) -> c_int; pub fn pthread_sigmask( - __how: ::c_int, + __how: c_int, __newmask: *const __sigset_t, __oldmask: *mut __sigset_t, - ) -> ::c_int; + ) -> c_int; - pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + pub fn sched_getparam(pid: crate::pid_t, param: *mut crate::sched_param) -> c_int; + pub fn sched_setparam(pid: crate::pid_t, param: *const crate::sched_param) -> c_int; + pub fn sched_getscheduler(pid: crate::pid_t) -> c_int; pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; + pid: crate::pid_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; pub fn pthread_getschedparam( - native: ::pthread_t, - policy: *mut ::c_int, - param: *mut ::sched_param, - ) -> ::c_int; + native: crate::pthread_t, + policy: *mut c_int, + param: *mut crate::sched_param, + ) -> c_int; pub fn pthread_setschedparam( - native: ::pthread_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; + native: crate::pthread_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; - pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int; + pub fn pthread_getcpuclockid(thread: crate::pthread_t, clk_id: *mut crate::clockid_t) -> c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + pub fn sem_init(sem: *mut sem_t, pshared: c_int, value: c_uint) -> c_int; + pub fn sem_destroy(sem: *mut sem_t) -> c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int; - pub fn clock_getres(__clock_id: clockid_t, __res: *mut ::timespec) -> ::c_int; - pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut ::timespec) -> ::c_int; - pub fn clock_settime(__clock_id: clockid_t, __tp: *const ::timespec) -> ::c_int; - pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int; + pub fn clock_getres(__clock_id: clockid_t, __res: *mut crate::timespec) -> c_int; + pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut crate::timespec) -> c_int; + pub fn clock_settime(__clock_id: clockid_t, __tp: *const crate::timespec) -> c_int; + pub fn clock_getcpuclockid(pid: crate::pid_t, clk_id: *mut crate::clockid_t) -> c_int; pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; + clk_id: crate::clockid_t, + flags: c_int, + rqtp: *const crate::timespec, + rmtp: *mut crate::timespec, + ) -> c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut crate::timezone) -> c_int; + pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int; - pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char; - pub fn ctime_r(timep: *const time_t, buf: *mut ::c_char) -> *mut ::c_char; + pub fn asctime_r(tm: *const crate::tm, buf: *mut c_char) -> *mut c_char; + pub fn ctime_r(timep: *const time_t, buf: *mut c_char) -> *mut c_char; pub fn strftime( - s: *mut ::c_char, - max: ::size_t, - format: *const ::c_char, - tm: *const ::tm, - ) -> ::size_t; - pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; + s: *mut c_char, + max: size_t, + format: *const c_char, + tm: *const crate::tm, + ) -> size_t; + pub fn strptime(s: *const c_char, format: *const c_char, tm: *mut crate::tm) -> *mut c_char; pub fn timer_create( - clockid: ::clockid_t, - sevp: *mut ::sigevent, - timerid: *mut ::timer_t, - ) -> ::c_int; - pub fn timer_delete(timerid: ::timer_t) -> ::c_int; - pub fn timer_getoverrun(timerid: ::timer_t) -> ::c_int; - pub fn timer_gettime(timerid: ::timer_t, curr_value: *mut ::itimerspec) -> ::c_int; + clockid: crate::clockid_t, + sevp: *mut crate::sigevent, + timerid: *mut crate::timer_t, + ) -> c_int; + pub fn timer_delete(timerid: crate::timer_t) -> c_int; + pub fn timer_getoverrun(timerid: crate::timer_t) -> c_int; + pub fn timer_gettime(timerid: crate::timer_t, curr_value: *mut crate::itimerspec) -> c_int; pub fn timer_settime( - timerid: ::timer_t, - flags: ::c_int, - new_value: *const ::itimerspec, - old_value: *mut ::itimerspec, - ) -> ::c_int; - - pub fn fstat(__fd: ::c_int, __buf: *mut stat) -> ::c_int; - pub fn fstat64(__fd: ::c_int, __buf: *mut stat64) -> ::c_int; - - pub fn fstatat( - __fd: ::c_int, - __file: *const ::c_char, - __buf: *mut stat, - __flag: ::c_int, - ) -> ::c_int; + timerid: crate::timer_t, + flags: c_int, + new_value: *const crate::itimerspec, + old_value: *mut crate::itimerspec, + ) -> c_int; + + pub fn fstat(__fd: c_int, __buf: *mut stat) -> c_int; + pub fn fstat64(__fd: c_int, __buf: *mut stat64) -> c_int; + + pub fn fstatat(__fd: c_int, __file: *const c_char, __buf: *mut stat, __flag: c_int) -> c_int; pub fn fstatat64( - __fd: ::c_int, - __file: *const ::c_char, + __fd: c_int, + __file: *const c_char, __buf: *mut stat64, - __flag: ::c_int, - ) -> ::c_int; + __flag: c_int, + ) -> c_int; pub fn statx( - dirfd: ::c_int, + dirfd: c_int, pathname: *const c_char, - flags: ::c_int, - mask: ::c_uint, + flags: c_int, + mask: c_uint, statxbuf: *mut statx, - ) -> ::c_int; + ) -> c_int; - pub fn ftruncate(__fd: ::c_int, __length: __off_t) -> ::c_int; - pub fn ftruncate64(__fd: ::c_int, __length: __off64_t) -> ::c_int; - pub fn truncate64(__file: *const ::c_char, __length: __off64_t) -> ::c_int; + pub fn ftruncate(__fd: c_int, __length: __off_t) -> c_int; + pub fn ftruncate64(__fd: c_int, __length: __off64_t) -> c_int; + pub fn truncate64(__file: *const c_char, __length: __off64_t) -> c_int; - pub fn lstat(__file: *const ::c_char, __buf: *mut stat) -> ::c_int; - pub fn lstat64(__file: *const ::c_char, __buf: *mut stat64) -> ::c_int; + pub fn lstat(__file: *const c_char, __buf: *mut stat) -> c_int; + pub fn lstat64(__file: *const c_char, __buf: *mut stat64) -> c_int; - pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; - pub fn statfs64(__file: *const ::c_char, __buf: *mut statfs64) -> ::c_int; - pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - pub fn fstatfs64(__fildes: ::c_int, __buf: *mut statfs64) -> ::c_int; + pub fn statfs(path: *const c_char, buf: *mut statfs) -> c_int; + pub fn statfs64(__file: *const c_char, __buf: *mut statfs64) -> c_int; + pub fn fstatfs(fd: c_int, buf: *mut statfs) -> c_int; + pub fn fstatfs64(__fildes: c_int, __buf: *mut statfs64) -> c_int; - pub fn statvfs(__file: *const ::c_char, __buf: *mut statvfs) -> ::c_int; - pub fn statvfs64(__file: *const ::c_char, __buf: *mut statvfs64) -> ::c_int; - pub fn fstatvfs(__fildes: ::c_int, __buf: *mut statvfs) -> ::c_int; - pub fn fstatvfs64(__fildes: ::c_int, __buf: *mut statvfs64) -> ::c_int; + pub fn statvfs(__file: *const c_char, __buf: *mut statvfs) -> c_int; + pub fn statvfs64(__file: *const c_char, __buf: *mut statvfs64) -> c_int; + pub fn fstatvfs(__fildes: c_int, __buf: *mut statvfs) -> c_int; + pub fn fstatvfs64(__fildes: c_int, __buf: *mut statvfs64) -> c_int; - pub fn open(__file: *const ::c_char, __oflag: ::c_int, ...) -> ::c_int; - pub fn open64(__file: *const ::c_char, __oflag: ::c_int, ...) -> ::c_int; + pub fn open(__file: *const c_char, __oflag: c_int, ...) -> c_int; + pub fn open64(__file: *const c_char, __oflag: c_int, ...) -> c_int; - pub fn openat(__fd: ::c_int, __file: *const ::c_char, __oflag: ::c_int, ...) -> ::c_int; - pub fn openat64(__fd: ::c_int, __file: *const ::c_char, __oflag: ::c_int, ...) -> ::c_int; + pub fn openat(__fd: c_int, __file: *const c_char, __oflag: c_int, ...) -> c_int; + pub fn openat64(__fd: c_int, __file: *const c_char, __oflag: c_int, ...) -> c_int; - pub fn fopen64(filename: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn fopen64(filename: *const c_char, mode: *const c_char) -> *mut crate::FILE; pub fn freopen64( filename: *const c_char, mode: *const c_char, - file: *mut ::FILE, - ) -> *mut ::FILE; + file: *mut crate::FILE, + ) -> *mut crate::FILE; - pub fn creat64(path: *const c_char, mode: mode_t) -> ::c_int; + pub fn creat64(path: *const c_char, mode: mode_t) -> c_int; - pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; - pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; - pub fn tmpfile64() -> *mut ::FILE; + pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int; + pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int; + pub fn mkstemps(template: *mut c_char, suffixlen: c_int) -> c_int; + pub fn tmpfile64() -> *mut crate::FILE; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut crate::FILE; - pub fn getdtablesize() -> ::c_int; + pub fn getdtablesize() -> c_int; // Added in `glibc` 2.34 - pub fn close_range(first: ::c_uint, last: ::c_uint, flags: ::c_int) -> ::c_int; + pub fn close_range(first: c_uint, last: c_uint, flags: c_int) -> c_int; pub fn openpty( - __amaster: *mut ::c_int, - __aslave: *mut ::c_int, - __name: *mut ::c_char, + __amaster: *mut c_int, + __aslave: *mut c_int, + __name: *mut c_char, __termp: *const termios, - __winp: *const ::winsize, - ) -> ::c_int; + __winp: *const crate::winsize, + ) -> c_int; pub fn forkpty( - __amaster: *mut ::c_int, - __name: *mut ::c_char, + __amaster: *mut c_int, + __name: *mut c_char, __termp: *const termios, - __winp: *const ::winsize, - ) -> ::pid_t; + __winp: *const crate::winsize, + ) -> crate::pid_t; - pub fn getpt() -> ::c_int; - pub fn ptsname_r(fd: ::c_int, buf: *mut ::c_char, buflen: ::size_t) -> ::c_int; - pub fn login_tty(fd: ::c_int) -> ::c_int; + pub fn getpt() -> c_int; + pub fn ptsname_r(fd: c_int, buf: *mut c_char, buflen: size_t) -> c_int; + pub fn login_tty(fd: c_int) -> c_int; - pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; + pub fn ctermid(s: *mut c_char) -> *mut c_char; - pub fn clearenv() -> ::c_int; + pub fn clearenv() -> c_int; pub fn execveat( - dirfd: ::c_int, - pathname: *const ::c_char, + dirfd: c_int, + pathname: *const c_char, argv: *const *mut c_char, envp: *const *mut c_char, - flags: ::c_int, - ) -> ::c_int; + flags: c_int, + ) -> c_int; // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execvpe( - file: *const ::c_char, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - pub fn fexecve( - fd: ::c_int, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + file: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + ) -> c_int; + pub fn fexecve(fd: c_int, argv: *const *const c_char, envp: *const *const c_char) -> c_int; + + pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; // posix/spawn.h 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; + pid: *mut crate::pid_t, + path: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::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; + pid: *mut crate::pid_t, + file: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::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; + default: *mut crate::sigset_t, + ) -> c_int; pub fn posix_spawnattr_setsigdefault( attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; + default: *const crate::sigset_t, + ) -> c_int; pub fn posix_spawnattr_getsigmask( attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; + default: *mut crate::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; + default: *const crate::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; + flags: *mut crate::pid_t, + ) -> c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: crate::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; + 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; + param: *mut crate::sched_param, + ) -> c_int; pub fn posix_spawnattr_setschedparam( attr: *mut posix_spawnattr_t, - param: *const ::sched_param, - ) -> ::c_int; + param: *const crate::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_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; + fd: c_int, + path: *const c_char, + oflag: c_int, + mode: crate::mode_t, + ) -> c_int; pub fn posix_spawn_file_actions_addclose( actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; + 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; + fd: c_int, + newfd: c_int, + ) -> c_int; // Added in `glibc` 2.29 pub fn posix_spawn_file_actions_addchdir_np( - actions: *mut ::posix_spawn_file_actions_t, - path: *const ::c_char, - ) -> ::c_int; + actions: *mut crate::posix_spawn_file_actions_t, + path: *const c_char, + ) -> c_int; // Added in `glibc` 2.29 pub fn posix_spawn_file_actions_addfchdir_np( - actions: *mut ::posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; + actions: *mut crate::posix_spawn_file_actions_t, + fd: c_int, + ) -> c_int; // Added in `glibc` 2.34 pub fn posix_spawn_file_actions_addclosefrom_np( - actions: *mut ::posix_spawn_file_actions_t, - from: ::c_int, - ) -> ::c_int; + actions: *mut crate::posix_spawn_file_actions_t, + from: c_int, + ) -> c_int; // Added in `glibc` 2.35 pub fn posix_spawn_file_actions_addtcsetpgrp_np( - actions: *mut ::posix_spawn_file_actions_t, - tcfd: ::c_int, - ) -> ::c_int; - - pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; - - pub fn euidaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; - pub fn eaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; - - pub fn faccessat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::c_int, - flags: ::c_int, - ) -> ::c_int; - - pub fn stat(__file: *const ::c_char, __buf: *mut stat) -> ::c_int; - pub fn stat64(__file: *const ::c_char, __buf: *mut stat64) -> ::c_int; - - pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; - pub fn readdir64(dirp: *mut ::DIR) -> *mut ::dirent64; - pub fn readdir_r(dirp: *mut ::DIR, entry: *mut ::dirent, result: *mut *mut ::dirent) - -> ::c_int; + actions: *mut crate::posix_spawn_file_actions_t, + tcfd: c_int, + ) -> c_int; + + pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; + pub fn shm_unlink(name: *const c_char) -> c_int; + + pub fn euidaccess(pathname: *const c_char, mode: c_int) -> c_int; + pub fn eaccess(pathname: *const c_char, mode: c_int) -> c_int; + + pub fn faccessat(dirfd: c_int, pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; + + pub fn stat(__file: *const c_char, __buf: *mut stat) -> c_int; + pub fn stat64(__file: *const c_char, __buf: *mut stat64) -> c_int; + + pub fn readdir(dirp: *mut crate::DIR) -> *mut crate::dirent; + pub fn readdir64(dirp: *mut crate::DIR) -> *mut crate::dirent64; + pub fn readdir_r( + dirp: *mut crate::DIR, + entry: *mut crate::dirent, + result: *mut *mut crate::dirent, + ) -> c_int; pub fn readdir64_r( - dirp: *mut ::DIR, - entry: *mut ::dirent64, - result: *mut *mut ::dirent64, - ) -> ::c_int; - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; + dirp: *mut crate::DIR, + entry: *mut crate::dirent64, + result: *mut *mut crate::dirent64, + ) -> c_int; + pub fn seekdir(dirp: *mut crate::DIR, loc: c_long); + pub fn telldir(dirp: *mut crate::DIR) -> c_long; - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; + pub fn dirfd(dirp: *mut crate::DIR) -> c_int; #[link_name = "__xpg_strerror_r"] - pub fn strerror_r(__errnum: ::c_int, __buf: *mut ::c_char, __buflen: ::size_t) -> ::c_int; + pub fn strerror_r(__errnum: c_int, __buf: *mut c_char, __buflen: size_t) -> c_int; - pub fn __errno_location() -> *mut ::c_int; + pub fn __errno_location() -> *mut c_int; pub fn mmap64( - __addr: *mut ::c_void, - __len: ::size_t, - __prot: ::c_int, - __flags: ::c_int, - __fd: ::c_int, + __addr: *mut c_void, + __len: size_t, + __prot: c_int, + __flags: c_int, + __fd: c_int, __offset: __off64_t, - ) -> *mut ::c_void; + ) -> *mut c_void; pub fn mremap( - addr: *mut ::c_void, - len: ::size_t, - new_len: ::size_t, - flags: ::c_int, + addr: *mut c_void, + len: size_t, + new_len: size_t, + flags: c_int, ... - ) -> *mut ::c_void; + ) -> *mut c_void; - pub fn mprotect(__addr: *mut ::c_void, __len: ::size_t, __prot: ::c_int) -> ::c_int; + pub fn mprotect(__addr: *mut c_void, __len: size_t, __prot: c_int) -> c_int; - pub fn msync(__addr: *mut ::c_void, __len: ::size_t, __flags: ::c_int) -> ::c_int; + pub fn msync(__addr: *mut c_void, __len: size_t, __flags: c_int) -> c_int; pub fn sync(); - pub fn syncfs(fd: ::c_int) -> ::c_int; - pub fn fdatasync(fd: ::c_int) -> ::c_int; + pub fn syncfs(fd: c_int) -> c_int; + pub fn fdatasync(fd: c_int) -> c_int; - pub fn fallocate64(fd: ::c_int, mode: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn posix_fallocate64(fd: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int; + pub fn fallocate64(fd: c_int, mode: c_int, offset: off64_t, len: off64_t) -> c_int; + pub fn posix_fallocate(fd: c_int, offset: off_t, len: off_t) -> c_int; + pub fn posix_fallocate64(fd: c_int, offset: off64_t, len: off64_t) -> c_int; - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; + pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advise: c_int) -> c_int; - pub fn posix_fadvise64( - fd: ::c_int, - offset: ::off64_t, - len: ::off64_t, - advise: ::c_int, - ) -> ::c_int; + pub fn posix_fadvise64(fd: c_int, offset: off64_t, len: off64_t, advise: c_int) -> c_int; - pub fn madvise(__addr: *mut ::c_void, __len: ::size_t, __advice: ::c_int) -> ::c_int; + pub fn madvise(__addr: *mut c_void, __len: size_t, __advice: c_int) -> c_int; - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn posix_madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; - pub fn getrlimit(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit) -> ::c_int; - pub fn getrlimit64(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit64) -> ::c_int; - pub fn setrlimit(resource: ::__rlimit_resource_t, rlim: *const ::rlimit) -> ::c_int; - pub fn setrlimit64(resource: ::__rlimit_resource_t, rlim: *const ::rlimit64) -> ::c_int; + pub fn getrlimit(resource: crate::__rlimit_resource_t, rlim: *mut crate::rlimit) -> c_int; + pub fn getrlimit64(resource: crate::__rlimit_resource_t, rlim: *mut crate::rlimit64) -> c_int; + pub fn setrlimit(resource: crate::__rlimit_resource_t, rlim: *const crate::rlimit) -> c_int; + pub fn setrlimit64(resource: crate::__rlimit_resource_t, rlim: *const crate::rlimit64) + -> c_int; - pub fn getpriority(which: ::__priority_which, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::__priority_which, who: ::id_t, prio: ::c_int) -> ::c_int; + pub fn getpriority(which: crate::__priority_which, who: crate::id_t) -> c_int; + pub fn setpriority(which: crate::__priority_which, who: crate::id_t, prio: c_int) -> c_int; - pub fn getrandom(__buffer: *mut ::c_void, __length: ::size_t, __flags: ::c_uint) -> ::ssize_t; - pub fn getentropy(__buffer: *mut ::c_void, __length: ::size_t) -> ::c_int; + pub fn getrandom(__buffer: *mut c_void, __length: size_t, __flags: c_uint) -> ssize_t; + pub fn getentropy(__buffer: *mut c_void, __length: size_t) -> c_int; - pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; + pub fn memrchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; pub fn memmem( - haystack: *const ::c_void, - haystacklen: ::size_t, - needle: *const ::c_void, - needlelen: ::size_t, - ) -> *mut ::c_void; - pub fn strchrnul(s: *const ::c_char, c: ::c_int) -> *mut ::c_char; - - pub fn abs(i: ::c_int) -> ::c_int; - pub fn labs(i: ::c_long) -> ::c_long; - pub fn rand() -> ::c_int; - pub fn srand(seed: ::c_uint); - - pub fn drand48() -> ::c_double; - pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double; - pub fn lrand48() -> ::c_long; - pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn mrand48() -> ::c_long; - pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn srand48(seed: ::c_long); - pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort; - pub fn lcong48(p: *mut ::c_ushort); + haystack: *const c_void, + haystacklen: size_t, + needle: *const c_void, + needlelen: size_t, + ) -> *mut c_void; + pub fn strchrnul(s: *const c_char, c: c_int) -> *mut c_char; + + pub fn abs(i: c_int) -> c_int; + pub fn labs(i: c_long) -> c_long; + pub fn rand() -> c_int; + pub fn srand(seed: c_uint); + + pub fn drand48() -> c_double; + pub fn erand48(xseed: *mut c_ushort) -> c_double; + pub fn lrand48() -> c_long; + pub fn nrand48(xseed: *mut c_ushort) -> c_long; + pub fn mrand48() -> c_long; + pub fn jrand48(xseed: *mut c_ushort) -> c_long; + pub fn srand48(seed: c_long); + pub fn seed48(xseed: *mut c_ushort) -> *mut c_ushort; + pub fn lcong48(p: *mut c_ushort); pub fn qsort_r( - base: *mut ::c_void, - num: ::size_t, - size: ::size_t, - compar: ::Option< - unsafe extern "C" fn(*const ::c_void, *const ::c_void, *mut ::c_void) -> ::c_int, - >, - arg: *mut ::c_void, + base: *mut c_void, + num: size_t, + size: size_t, + compar: Option c_int>, + arg: *mut c_void, ); - pub fn brk(addr: *mut ::c_void) -> ::c_int; - pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; + pub fn brk(addr: *mut c_void) -> c_int; + pub fn sbrk(increment: intptr_t) -> *mut c_void; - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn mallopt(param: ::c_int, value: ::c_int) -> ::c_int; + pub fn memalign(align: size_t, size: size_t) -> *mut c_void; + pub fn mallopt(param: c_int, value: c_int) -> c_int; - pub fn mallinfo() -> ::mallinfo; - pub fn mallinfo2() -> ::mallinfo2; - pub fn malloc_info(options: ::c_int, stream: *mut ::FILE) -> ::c_int; - pub fn malloc_usable_size(ptr: *mut ::c_void) -> ::size_t; - pub fn malloc_trim(__pad: ::size_t) -> ::c_int; + pub fn mallinfo() -> crate::mallinfo; + pub fn mallinfo2() -> crate::mallinfo2; + pub fn malloc_info(options: c_int, stream: *mut crate::FILE) -> c_int; + pub fn malloc_usable_size(ptr: *mut c_void) -> size_t; + pub fn malloc_trim(__pad: size_t) -> c_int; - pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; + pub fn iconv_open(tocode: *const c_char, fromcode: *const c_char) -> iconv_t; pub fn iconv( cd: iconv_t, - inbuf: *mut *mut ::c_char, - inbytesleft: *mut ::size_t, - outbuf: *mut *mut ::c_char, - outbytesleft: *mut ::size_t, - ) -> ::size_t; - pub fn iconv_close(cd: iconv_t) -> ::c_int; + inbuf: *mut *mut c_char, + inbytesleft: *mut size_t, + outbuf: *mut *mut c_char, + outbytesleft: *mut size_t, + ) -> size_t; + pub fn iconv_close(cd: iconv_t) -> c_int; pub fn getopt_long( - argc: ::c_int, + argc: c_int, argv: *const *mut c_char, optstring: *const c_char, longopts: *const option, - longindex: *mut ::c_int, - ) -> ::c_int; + longindex: *mut c_int, + ) -> c_int; - pub fn backtrace(buf: *mut *mut ::c_void, sz: ::c_int) -> ::c_int; + pub fn backtrace(buf: *mut *mut c_void, sz: c_int) -> c_int; - pub fn reboot(how_to: ::c_int) -> ::c_int; + pub fn reboot(how_to: c_int) -> c_int; - pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; + pub fn getloadavg(loadavg: *mut c_double, nelem: c_int) -> c_int; pub fn regexec( - preg: *const ::regex_t, - input: *const ::c_char, - nmatch: ::size_t, + preg: *const crate::regex_t, + input: *const c_char, + nmatch: size_t, pmatch: *mut regmatch_t, - eflags: ::c_int, - ) -> ::c_int; + eflags: c_int, + ) -> c_int; pub fn regerror( - errcode: ::c_int, - preg: *const ::regex_t, - errbuf: *mut ::c_char, - errbuf_size: ::size_t, - ) -> ::size_t; + errcode: c_int, + preg: *const crate::regex_t, + errbuf: *mut c_char, + errbuf_size: size_t, + ) -> size_t; - pub fn regfree(preg: *mut ::regex_t); + pub fn regfree(preg: *mut crate::regex_t); pub fn glob( pattern: *const c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t, - ) -> ::c_int; - pub fn globfree(pglob: *mut ::glob_t); + flags: c_int, + errfunc: Option c_int>, + pglob: *mut crate::glob_t, + ) -> c_int; + pub fn globfree(pglob: *mut crate::glob_t); pub fn glob64( - pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, + pattern: *const c_char, + flags: c_int, + errfunc: Option c_int>, pglob: *mut glob64_t, - ) -> ::c_int; + ) -> c_int; pub fn globfree64(pglob: *mut glob64_t); pub fn getxattr( path: *const c_char, name: *const c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; + value: *mut c_void, + size: size_t, + ) -> ssize_t; pub fn lgetxattr( path: *const c_char, name: *const c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; + value: *mut c_void, + size: size_t, + ) -> ssize_t; pub fn fgetxattr( - filedes: ::c_int, + filedes: c_int, name: *const c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; + value: *mut c_void, + size: size_t, + ) -> ssize_t; pub fn setxattr( path: *const c_char, name: *const c_char, - value: *const ::c_void, - size: ::size_t, - flags: ::c_int, - ) -> ::c_int; + value: *const c_void, + size: size_t, + flags: c_int, + ) -> c_int; pub fn lsetxattr( path: *const c_char, name: *const c_char, - value: *const ::c_void, - size: ::size_t, - flags: ::c_int, - ) -> ::c_int; + value: *const c_void, + size: size_t, + flags: c_int, + ) -> c_int; pub fn fsetxattr( - filedes: ::c_int, + filedes: c_int, name: *const c_char, - value: *const ::c_void, - size: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn listxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t; - pub fn llistxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t; - pub fn flistxattr(filedes: ::c_int, list: *mut c_char, size: ::size_t) -> ::ssize_t; - pub fn removexattr(path: *const c_char, name: *const c_char) -> ::c_int; - pub fn lremovexattr(path: *const c_char, name: *const c_char) -> ::c_int; - pub fn fremovexattr(filedes: ::c_int, name: *const c_char) -> ::c_int; - - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; + value: *const c_void, + size: size_t, + flags: c_int, + ) -> c_int; + pub fn listxattr(path: *const c_char, list: *mut c_char, size: size_t) -> ssize_t; + pub fn llistxattr(path: *const c_char, list: *mut c_char, size: size_t) -> ssize_t; + pub fn flistxattr(filedes: c_int, list: *mut c_char, size: size_t) -> ssize_t; + pub fn removexattr(path: *const c_char, name: *const c_char) -> c_int; + pub fn lremovexattr(path: *const c_char, name: *const c_char) -> c_int; + pub fn fremovexattr(filedes: c_int, name: *const c_char) -> c_int; + + pub fn dirname(path: *mut c_char) -> *mut c_char; /// POSIX version of `basename(3)`, defined in `libgen.h`. #[link_name = "__xpg_basename"] - pub fn posix_basename(path: *mut ::c_char) -> *mut ::c_char; + pub fn posix_basename(path: *mut c_char) -> *mut c_char; /// GNU version of `basename(3)`, defined in `string.h`. #[link_name = "basename"] - pub fn gnu_basename(path: *const ::c_char) -> *mut ::c_char; + pub fn gnu_basename(path: *const c_char) -> *mut c_char; - pub fn dlmopen(lmid: Lmid_t, filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; - pub fn dlinfo(handle: *mut ::c_void, request: ::c_int, info: *mut ::c_void) -> ::c_int; + pub fn dlmopen(lmid: Lmid_t, filename: *const c_char, flag: c_int) -> *mut c_void; + pub fn dlinfo(handle: *mut c_void, request: c_int, info: *mut c_void) -> c_int; pub fn dladdr1( - addr: *const ::c_void, - info: *mut ::Dl_info, - extra_info: *mut *mut ::c_void, - flags: ::c_int, - ) -> ::c_int; - - pub fn duplocale(base: ::locale_t) -> ::locale_t; - pub fn freelocale(loc: ::locale_t); - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; - pub fn uselocale(loc: ::locale_t) -> ::locale_t; - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; + addr: *const c_void, + info: *mut crate::Dl_info, + extra_info: *mut *mut c_void, + flags: c_int, + ) -> c_int; + + pub fn duplocale(base: crate::locale_t) -> crate::locale_t; + pub fn freelocale(loc: crate::locale_t); + pub fn newlocale(mask: c_int, locale: *const c_char, base: crate::locale_t) -> crate::locale_t; + pub fn uselocale(loc: crate::locale_t) -> crate::locale_t; + pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char; + pub fn nl_langinfo_l(item: crate::nl_item, locale: crate::locale_t) -> *mut c_char; pub fn dl_iterate_phdr( - callback: ::Option< + callback: Option< unsafe extern "C" fn( - info: *mut ::dl_phdr_info, - size: ::size_t, - data: *mut ::c_void, - ) -> ::c_int, + info: *mut crate::dl_phdr_info, + size: size_t, + data: *mut c_void, + ) -> c_int, >, - data: *mut ::c_void, - ) -> ::c_int; + data: *mut c_void, + ) -> c_int; - pub fn gnu_get_libc_release() -> *const ::c_char; - pub fn gnu_get_libc_version() -> *const ::c_char; + pub fn gnu_get_libc_release() -> *const c_char; + pub fn gnu_get_libc_version() -> *const c_char; } 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; + pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + let major = major as crate::dev_t; + let minor = minor as crate::dev_t; let mut dev = 0; dev |= major << 8; dev |= minor; dev } - pub fn SIGRTMAX() -> ::c_int { + pub fn SIGRTMAX() -> c_int { unsafe { __libc_current_sigrtmax() } } - pub fn SIGRTMIN() -> ::c_int { + pub fn SIGRTMIN() -> c_int { unsafe { __libc_current_sigrtmin() } } - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + pub {const} fn WIFSTOPPED(status: c_int) -> bool { (status & 0xff) == 0x7f } - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + pub {const} fn WSTOPSIG(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + pub {const} fn WIFCONTINUED(status: c_int) -> bool { status == 0xffff } - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + pub {const} fn WIFSIGNALED(status: c_int) -> bool { ((status & 0x7f) + 1) as i8 >= 2 } - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + pub {const} fn WTERMSIG(status: c_int) -> c_int { status & 0x7f } - pub {const} fn WIFEXITED(status: ::c_int) -> bool { + pub {const} fn WIFEXITED(status: c_int) -> bool { (status & 0x7f) == 0 } - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + pub {const} fn WEXITSTATUS(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WCOREDUMP(status: ::c_int) -> bool { + pub {const} fn WCOREDUMP(status: c_int) -> bool { (status & 0x80) != 0 } - pub {const} fn W_EXITCODE(ret: ::c_int, sig: ::c_int) -> ::c_int { + pub {const} fn W_EXITCODE(ret: c_int, sig: c_int) -> c_int { (ret << 8) | sig } - pub {const} fn W_STOPCODE(sig: ::c_int) -> ::c_int { + pub {const} fn W_STOPCODE(sig: c_int) -> c_int { (sig << 8) | 0x7f } - pub {const} fn QCMD(cmd: ::c_int, type_: ::c_int) -> ::c_int { + pub {const} fn QCMD(cmd: c_int, type_: c_int) -> c_int { (cmd << 8) | (type_ & 0x00ff) } @@ -4660,7 +4635,7 @@ safe_f! { } pub {const} fn IPTOS_ECN(x: u8) -> u8 { - x & ::IPTOS_ECN_MASK + x & crate::IPTOS_ECN_MASK } } diff --git a/src/unix/linux_like/android/b32/arm.rs b/src/unix/linux_like/android/b32/arm.rs index f8e5f613fb1ea..c9bf6c8bee3dc 100644 --- a/src/unix/linux_like/android/b32/arm.rs +++ b/src/unix/linux_like/android/b32/arm.rs @@ -1,3 +1,5 @@ +use crate::{c_int, c_long, c_longlong, c_ulong}; + pub type c_char = u8; pub type wchar_t = u32; pub type greg_t = i32; @@ -5,53 +7,53 @@ pub type mcontext_t = sigcontext; s! { pub struct sigcontext { - pub trap_no: ::c_ulong, - pub error_code: ::c_ulong, - pub oldmask: ::c_ulong, - pub arm_r0: ::c_ulong, - pub arm_r1: ::c_ulong, - pub arm_r2: ::c_ulong, - pub arm_r3: ::c_ulong, - pub arm_r4: ::c_ulong, - pub arm_r5: ::c_ulong, - pub arm_r6: ::c_ulong, - pub arm_r7: ::c_ulong, - pub arm_r8: ::c_ulong, - pub arm_r9: ::c_ulong, - pub arm_r10: ::c_ulong, - pub arm_fp: ::c_ulong, - pub arm_ip: ::c_ulong, - pub arm_sp: ::c_ulong, - pub arm_lr: ::c_ulong, - pub arm_pc: ::c_ulong, - pub arm_cpsr: ::c_ulong, - pub fault_address: ::c_ulong, + pub trap_no: c_ulong, + pub error_code: c_ulong, + pub oldmask: c_ulong, + pub arm_r0: c_ulong, + pub arm_r1: c_ulong, + pub arm_r2: c_ulong, + pub arm_r3: c_ulong, + pub arm_r4: c_ulong, + pub arm_r5: c_ulong, + pub arm_r6: c_ulong, + pub arm_r7: c_ulong, + pub arm_r8: c_ulong, + pub arm_r9: c_ulong, + pub arm_r10: c_ulong, + pub arm_fp: c_ulong, + pub arm_ip: c_ulong, + pub arm_sp: c_ulong, + pub arm_lr: c_ulong, + pub arm_pc: c_ulong, + pub arm_cpsr: c_ulong, + pub fault_address: c_ulong, } } s_no_extra_traits! { pub struct __c_anonymous_uc_sigmask_with_padding { - pub uc_sigmask: ::sigset_t, + pub uc_sigmask: crate::sigset_t, /* Android has a wrong (smaller) sigset_t on x86. */ __padding_rt_sigset: u32, } pub union __c_anonymous_uc_sigmask { uc_sigmask: __c_anonymous_uc_sigmask_with_padding, - uc_sigmask64: ::sigset64_t, + uc_sigmask64: crate::sigset64_t, } pub struct ucontext_t { - pub uc_flags: ::c_ulong, + pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, + pub uc_stack: crate::stack_t, pub uc_mcontext: mcontext_t, pub uc_sigmask__c_anonymous_union: __c_anonymous_uc_sigmask, /* The kernel adds extra padding after uc_sigmask to match * glibc sigset_t on ARM. */ __padding: [c_char; 120], - __align: [::c_longlong; 0], - uc_regspace: [::c_ulong; 128], + __align: [c_longlong; 0], + uc_regspace: [c_ulong; 128], } } @@ -64,16 +66,16 @@ cfg_if! { } } impl Eq for __c_anonymous_uc_sigmask_with_padding {} - impl ::fmt::Debug for __c_anonymous_uc_sigmask_with_padding { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_uc_sigmask_with_padding { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("uc_sigmask_with_padding") .field("uc_sigmask_with_padding", &self.uc_sigmask) // Ignore padding .finish() } } - impl ::hash::Hash for __c_anonymous_uc_sigmask_with_padding { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_uc_sigmask_with_padding { + fn hash(&self, state: &mut H) { self.uc_sigmask.hash(state) // Ignore padding } @@ -85,15 +87,15 @@ cfg_if! { } } impl Eq for __c_anonymous_uc_sigmask {} - impl ::fmt::Debug for __c_anonymous_uc_sigmask { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_uc_sigmask { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("uc_sigmask") .field("uc_sigmask", unsafe { &self.uc_sigmask }) .finish() } } - impl ::hash::Hash for __c_anonymous_uc_sigmask { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_uc_sigmask { + fn hash(&self, state: &mut H) { unsafe { self.uc_sigmask.hash(state) } } } @@ -110,8 +112,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -126,8 +128,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); @@ -140,410 +142,410 @@ cfg_if! { } } -pub const O_DIRECT: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_LARGEFILE: ::c_int = 0o400000; +pub const O_DIRECT: c_int = 0x10000; +pub const O_DIRECTORY: c_int = 0x4000; +pub const O_NOFOLLOW: c_int = 0x8000; +pub const O_LARGEFILE: c_int = 0o400000; -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_pause: ::c_long = 29; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS_getdents: ::c_long = 141; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_setresgid: ::c_long = 170; -pub const SYS_getresgid: ::c_long = 171; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_chown: ::c_long = 182; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_ugetrlimit: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_lchown32: ::c_long = 198; -pub const SYS_getuid32: ::c_long = 199; -pub const SYS_getgid32: ::c_long = 200; -pub const SYS_geteuid32: ::c_long = 201; -pub const SYS_getegid32: ::c_long = 202; -pub const SYS_setreuid32: ::c_long = 203; -pub const SYS_setregid32: ::c_long = 204; -pub const SYS_getgroups32: ::c_long = 205; -pub const SYS_setgroups32: ::c_long = 206; -pub const SYS_fchown32: ::c_long = 207; -pub const SYS_setresuid32: ::c_long = 208; -pub const SYS_getresuid32: ::c_long = 209; -pub const SYS_setresgid32: ::c_long = 210; -pub const SYS_getresgid32: ::c_long = 211; -pub const SYS_chown32: ::c_long = 212; -pub const SYS_setuid32: ::c_long = 213; -pub const SYS_setgid32: ::c_long = 214; -pub const SYS_setfsuid32: ::c_long = 215; -pub const SYS_setfsgid32: ::c_long = 216; -pub const SYS_getdents64: ::c_long = 217; -pub const SYS_pivot_root: ::c_long = 218; -pub const SYS_mincore: ::c_long = 219; -pub const SYS_madvise: ::c_long = 220; -pub const SYS_fcntl64: ::c_long = 221; -pub const SYS_gettid: ::c_long = 224; -pub const SYS_readahead: ::c_long = 225; -pub const SYS_setxattr: ::c_long = 226; -pub const SYS_lsetxattr: ::c_long = 227; -pub const SYS_fsetxattr: ::c_long = 228; -pub const SYS_getxattr: ::c_long = 229; -pub const SYS_lgetxattr: ::c_long = 230; -pub const SYS_fgetxattr: ::c_long = 231; -pub const SYS_listxattr: ::c_long = 232; -pub const SYS_llistxattr: ::c_long = 233; -pub const SYS_flistxattr: ::c_long = 234; -pub const SYS_removexattr: ::c_long = 235; -pub const SYS_lremovexattr: ::c_long = 236; -pub const SYS_fremovexattr: ::c_long = 237; -pub const SYS_tkill: ::c_long = 238; -pub const SYS_sendfile64: ::c_long = 239; -pub const SYS_futex: ::c_long = 240; -pub const SYS_sched_setaffinity: ::c_long = 241; -pub const SYS_sched_getaffinity: ::c_long = 242; -pub const SYS_io_setup: ::c_long = 243; -pub const SYS_io_destroy: ::c_long = 244; -pub const SYS_io_getevents: ::c_long = 245; -pub const SYS_io_submit: ::c_long = 246; -pub const SYS_io_cancel: ::c_long = 247; -pub const SYS_exit_group: ::c_long = 248; -pub const SYS_lookup_dcookie: ::c_long = 249; -pub const SYS_epoll_create: ::c_long = 250; -pub const SYS_epoll_ctl: ::c_long = 251; -pub const SYS_epoll_wait: ::c_long = 252; -pub const SYS_remap_file_pages: ::c_long = 253; -pub const SYS_set_tid_address: ::c_long = 256; -pub const SYS_timer_create: ::c_long = 257; -pub const SYS_timer_settime: ::c_long = 258; -pub const SYS_timer_gettime: ::c_long = 259; -pub const SYS_timer_getoverrun: ::c_long = 260; -pub const SYS_timer_delete: ::c_long = 261; -pub const SYS_clock_settime: ::c_long = 262; -pub const SYS_clock_gettime: ::c_long = 263; -pub const SYS_clock_getres: ::c_long = 264; -pub const SYS_clock_nanosleep: ::c_long = 265; -pub const SYS_statfs64: ::c_long = 266; -pub const SYS_fstatfs64: ::c_long = 267; -pub const SYS_tgkill: ::c_long = 268; -pub const SYS_utimes: ::c_long = 269; -pub const SYS_arm_fadvise64_64: ::c_long = 270; -pub const SYS_pciconfig_iobase: ::c_long = 271; -pub const SYS_pciconfig_read: ::c_long = 272; -pub const SYS_pciconfig_write: ::c_long = 273; -pub const SYS_mq_open: ::c_long = 274; -pub const SYS_mq_unlink: ::c_long = 275; -pub const SYS_mq_timedsend: ::c_long = 276; -pub const SYS_mq_timedreceive: ::c_long = 277; -pub const SYS_mq_notify: ::c_long = 278; -pub const SYS_mq_getsetattr: ::c_long = 279; -pub const SYS_waitid: ::c_long = 280; -pub const SYS_socket: ::c_long = 281; -pub const SYS_bind: ::c_long = 282; -pub const SYS_connect: ::c_long = 283; -pub const SYS_listen: ::c_long = 284; -pub const SYS_accept: ::c_long = 285; -pub const SYS_getsockname: ::c_long = 286; -pub const SYS_getpeername: ::c_long = 287; -pub const SYS_socketpair: ::c_long = 288; -pub const SYS_send: ::c_long = 289; -pub const SYS_sendto: ::c_long = 290; -pub const SYS_recv: ::c_long = 291; -pub const SYS_recvfrom: ::c_long = 292; -pub const SYS_shutdown: ::c_long = 293; -pub const SYS_setsockopt: ::c_long = 294; -pub const SYS_getsockopt: ::c_long = 295; -pub const SYS_sendmsg: ::c_long = 296; -pub const SYS_recvmsg: ::c_long = 297; -pub const SYS_semop: ::c_long = 298; -pub const SYS_semget: ::c_long = 299; -pub const SYS_semctl: ::c_long = 300; -pub const SYS_msgsnd: ::c_long = 301; -pub const SYS_msgrcv: ::c_long = 302; -pub const SYS_msgget: ::c_long = 303; -pub const SYS_msgctl: ::c_long = 304; -pub const SYS_shmat: ::c_long = 305; -pub const SYS_shmdt: ::c_long = 306; -pub const SYS_shmget: ::c_long = 307; -pub const SYS_shmctl: ::c_long = 308; -pub const SYS_add_key: ::c_long = 309; -pub const SYS_request_key: ::c_long = 310; -pub const SYS_keyctl: ::c_long = 311; -pub const SYS_semtimedop: ::c_long = 312; -pub const SYS_vserver: ::c_long = 313; -pub const SYS_ioprio_set: ::c_long = 314; -pub const SYS_ioprio_get: ::c_long = 315; -pub const SYS_inotify_init: ::c_long = 316; -pub const SYS_inotify_add_watch: ::c_long = 317; -pub const SYS_inotify_rm_watch: ::c_long = 318; -pub const SYS_mbind: ::c_long = 319; -pub const SYS_get_mempolicy: ::c_long = 320; -pub const SYS_set_mempolicy: ::c_long = 321; -pub const SYS_openat: ::c_long = 322; -pub const SYS_mkdirat: ::c_long = 323; -pub const SYS_mknodat: ::c_long = 324; -pub const SYS_fchownat: ::c_long = 325; -pub const SYS_futimesat: ::c_long = 326; -pub const SYS_fstatat64: ::c_long = 327; -pub const SYS_unlinkat: ::c_long = 328; -pub const SYS_renameat: ::c_long = 329; -pub const SYS_linkat: ::c_long = 330; -pub const SYS_symlinkat: ::c_long = 331; -pub const SYS_readlinkat: ::c_long = 332; -pub const SYS_fchmodat: ::c_long = 333; -pub const SYS_faccessat: ::c_long = 334; -pub const SYS_pselect6: ::c_long = 335; -pub const SYS_ppoll: ::c_long = 336; -pub const SYS_unshare: ::c_long = 337; -pub const SYS_set_robust_list: ::c_long = 338; -pub const SYS_get_robust_list: ::c_long = 339; -pub const SYS_splice: ::c_long = 340; -pub const SYS_arm_sync_file_range: ::c_long = 341; -pub const SYS_tee: ::c_long = 342; -pub const SYS_vmsplice: ::c_long = 343; -pub const SYS_move_pages: ::c_long = 344; -pub const SYS_getcpu: ::c_long = 345; -pub const SYS_epoll_pwait: ::c_long = 346; -pub const SYS_kexec_load: ::c_long = 347; -pub const SYS_utimensat: ::c_long = 348; -pub const SYS_signalfd: ::c_long = 349; -pub const SYS_timerfd_create: ::c_long = 350; -pub const SYS_eventfd: ::c_long = 351; -pub const SYS_fallocate: ::c_long = 352; -pub const SYS_timerfd_settime: ::c_long = 353; -pub const SYS_timerfd_gettime: ::c_long = 354; -pub const SYS_signalfd4: ::c_long = 355; -pub const SYS_eventfd2: ::c_long = 356; -pub const SYS_epoll_create1: ::c_long = 357; -pub const SYS_dup3: ::c_long = 358; -pub const SYS_pipe2: ::c_long = 359; -pub const SYS_inotify_init1: ::c_long = 360; -pub const SYS_preadv: ::c_long = 361; -pub const SYS_pwritev: ::c_long = 362; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 363; -pub const SYS_perf_event_open: ::c_long = 364; -pub const SYS_recvmmsg: ::c_long = 365; -pub const SYS_accept4: ::c_long = 366; -pub const SYS_fanotify_init: ::c_long = 367; -pub const SYS_fanotify_mark: ::c_long = 368; -pub const SYS_prlimit64: ::c_long = 369; -pub const SYS_name_to_handle_at: ::c_long = 370; -pub const SYS_open_by_handle_at: ::c_long = 371; -pub const SYS_clock_adjtime: ::c_long = 372; -pub const SYS_syncfs: ::c_long = 373; -pub const SYS_sendmmsg: ::c_long = 374; -pub const SYS_setns: ::c_long = 375; -pub const SYS_process_vm_readv: ::c_long = 376; -pub const SYS_process_vm_writev: ::c_long = 377; -pub const SYS_kcmp: ::c_long = 378; -pub const SYS_finit_module: ::c_long = 379; -pub const SYS_sched_setattr: ::c_long = 380; -pub const SYS_sched_getattr: ::c_long = 381; -pub const SYS_renameat2: ::c_long = 382; -pub const SYS_seccomp: ::c_long = 383; -pub const SYS_getrandom: ::c_long = 384; -pub const SYS_memfd_create: ::c_long = 385; -pub const SYS_bpf: ::c_long = 386; -pub const SYS_execveat: ::c_long = 387; -pub const SYS_userfaultfd: ::c_long = 388; -pub const SYS_membarrier: ::c_long = 389; -pub const SYS_mlock2: ::c_long = 390; -pub const SYS_copy_file_range: ::c_long = 391; -pub const SYS_preadv2: ::c_long = 392; -pub const SYS_pwritev2: ::c_long = 393; -pub const SYS_pkey_mprotect: ::c_long = 394; -pub const SYS_pkey_alloc: ::c_long = 395; -pub const SYS_pkey_free: ::c_long = 396; -pub const SYS_statx: ::c_long = 397; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_restart_syscall: c_long = 0; +pub const SYS_exit: c_long = 1; +pub const SYS_fork: c_long = 2; +pub const SYS_read: c_long = 3; +pub const SYS_write: c_long = 4; +pub const SYS_open: c_long = 5; +pub const SYS_close: c_long = 6; +pub const SYS_creat: c_long = 8; +pub const SYS_link: c_long = 9; +pub const SYS_unlink: c_long = 10; +pub const SYS_execve: c_long = 11; +pub const SYS_chdir: c_long = 12; +pub const SYS_mknod: c_long = 14; +pub const SYS_chmod: c_long = 15; +pub const SYS_lchown: c_long = 16; +pub const SYS_lseek: c_long = 19; +pub const SYS_getpid: c_long = 20; +pub const SYS_mount: c_long = 21; +pub const SYS_setuid: c_long = 23; +pub const SYS_getuid: c_long = 24; +pub const SYS_ptrace: c_long = 26; +pub const SYS_pause: c_long = 29; +pub const SYS_access: c_long = 33; +pub const SYS_nice: c_long = 34; +pub const SYS_sync: c_long = 36; +pub const SYS_kill: c_long = 37; +pub const SYS_rename: c_long = 38; +pub const SYS_mkdir: c_long = 39; +pub const SYS_rmdir: c_long = 40; +pub const SYS_dup: c_long = 41; +pub const SYS_pipe: c_long = 42; +pub const SYS_times: c_long = 43; +pub const SYS_brk: c_long = 45; +pub const SYS_setgid: c_long = 46; +pub const SYS_getgid: c_long = 47; +pub const SYS_geteuid: c_long = 49; +pub const SYS_getegid: c_long = 50; +pub const SYS_acct: c_long = 51; +pub const SYS_umount2: c_long = 52; +pub const SYS_ioctl: c_long = 54; +pub const SYS_fcntl: c_long = 55; +pub const SYS_setpgid: c_long = 57; +pub const SYS_umask: c_long = 60; +pub const SYS_chroot: c_long = 61; +pub const SYS_ustat: c_long = 62; +pub const SYS_dup2: c_long = 63; +pub const SYS_getppid: c_long = 64; +pub const SYS_getpgrp: c_long = 65; +pub const SYS_setsid: c_long = 66; +pub const SYS_sigaction: c_long = 67; +pub const SYS_setreuid: c_long = 70; +pub const SYS_setregid: c_long = 71; +pub const SYS_sigsuspend: c_long = 72; +pub const SYS_sigpending: c_long = 73; +pub const SYS_sethostname: c_long = 74; +pub const SYS_setrlimit: c_long = 75; +pub const SYS_getrusage: c_long = 77; +pub const SYS_gettimeofday: c_long = 78; +pub const SYS_settimeofday: c_long = 79; +pub const SYS_getgroups: c_long = 80; +pub const SYS_setgroups: c_long = 81; +pub const SYS_symlink: c_long = 83; +pub const SYS_readlink: c_long = 85; +pub const SYS_uselib: c_long = 86; +pub const SYS_swapon: c_long = 87; +pub const SYS_reboot: c_long = 88; +pub const SYS_munmap: c_long = 91; +pub const SYS_truncate: c_long = 92; +pub const SYS_ftruncate: c_long = 93; +pub const SYS_fchmod: c_long = 94; +pub const SYS_fchown: c_long = 95; +pub const SYS_getpriority: c_long = 96; +pub const SYS_setpriority: c_long = 97; +pub const SYS_statfs: c_long = 99; +pub const SYS_fstatfs: c_long = 100; +pub const SYS_syslog: c_long = 103; +pub const SYS_setitimer: c_long = 104; +pub const SYS_getitimer: c_long = 105; +pub const SYS_stat: c_long = 106; +pub const SYS_lstat: c_long = 107; +pub const SYS_fstat: c_long = 108; +pub const SYS_vhangup: c_long = 111; +pub const SYS_wait4: c_long = 114; +pub const SYS_swapoff: c_long = 115; +pub const SYS_sysinfo: c_long = 116; +pub const SYS_fsync: c_long = 118; +pub const SYS_sigreturn: c_long = 119; +pub const SYS_clone: c_long = 120; +pub const SYS_setdomainname: c_long = 121; +pub const SYS_uname: c_long = 122; +pub const SYS_adjtimex: c_long = 124; +pub const SYS_mprotect: c_long = 125; +pub const SYS_sigprocmask: c_long = 126; +pub const SYS_init_module: c_long = 128; +pub const SYS_delete_module: c_long = 129; +pub const SYS_quotactl: c_long = 131; +pub const SYS_getpgid: c_long = 132; +pub const SYS_fchdir: c_long = 133; +pub const SYS_bdflush: c_long = 134; +pub const SYS_sysfs: c_long = 135; +pub const SYS_personality: c_long = 136; +pub const SYS_setfsuid: c_long = 138; +pub const SYS_setfsgid: c_long = 139; +pub const SYS_getdents: c_long = 141; +pub const SYS_flock: c_long = 143; +pub const SYS_msync: c_long = 144; +pub const SYS_readv: c_long = 145; +pub const SYS_writev: c_long = 146; +pub const SYS_getsid: c_long = 147; +pub const SYS_fdatasync: c_long = 148; +pub const SYS_mlock: c_long = 150; +pub const SYS_munlock: c_long = 151; +pub const SYS_mlockall: c_long = 152; +pub const SYS_munlockall: c_long = 153; +pub const SYS_sched_setparam: c_long = 154; +pub const SYS_sched_getparam: c_long = 155; +pub const SYS_sched_setscheduler: c_long = 156; +pub const SYS_sched_getscheduler: c_long = 157; +pub const SYS_sched_yield: c_long = 158; +pub const SYS_sched_get_priority_max: c_long = 159; +pub const SYS_sched_get_priority_min: c_long = 160; +pub const SYS_sched_rr_get_interval: c_long = 161; +pub const SYS_nanosleep: c_long = 162; +pub const SYS_mremap: c_long = 163; +pub const SYS_setresuid: c_long = 164; +pub const SYS_getresuid: c_long = 165; +pub const SYS_poll: c_long = 168; +pub const SYS_nfsservctl: c_long = 169; +pub const SYS_setresgid: c_long = 170; +pub const SYS_getresgid: c_long = 171; +pub const SYS_prctl: c_long = 172; +pub const SYS_rt_sigreturn: c_long = 173; +pub const SYS_rt_sigaction: c_long = 174; +pub const SYS_rt_sigprocmask: c_long = 175; +pub const SYS_rt_sigpending: c_long = 176; +pub const SYS_rt_sigtimedwait: c_long = 177; +pub const SYS_rt_sigqueueinfo: c_long = 178; +pub const SYS_rt_sigsuspend: c_long = 179; +pub const SYS_pread64: c_long = 180; +pub const SYS_pwrite64: c_long = 181; +pub const SYS_chown: c_long = 182; +pub const SYS_getcwd: c_long = 183; +pub const SYS_capget: c_long = 184; +pub const SYS_capset: c_long = 185; +pub const SYS_sigaltstack: c_long = 186; +pub const SYS_sendfile: c_long = 187; +pub const SYS_vfork: c_long = 190; +pub const SYS_ugetrlimit: c_long = 191; +pub const SYS_mmap2: c_long = 192; +pub const SYS_truncate64: c_long = 193; +pub const SYS_ftruncate64: c_long = 194; +pub const SYS_stat64: c_long = 195; +pub const SYS_lstat64: c_long = 196; +pub const SYS_fstat64: c_long = 197; +pub const SYS_lchown32: c_long = 198; +pub const SYS_getuid32: c_long = 199; +pub const SYS_getgid32: c_long = 200; +pub const SYS_geteuid32: c_long = 201; +pub const SYS_getegid32: c_long = 202; +pub const SYS_setreuid32: c_long = 203; +pub const SYS_setregid32: c_long = 204; +pub const SYS_getgroups32: c_long = 205; +pub const SYS_setgroups32: c_long = 206; +pub const SYS_fchown32: c_long = 207; +pub const SYS_setresuid32: c_long = 208; +pub const SYS_getresuid32: c_long = 209; +pub const SYS_setresgid32: c_long = 210; +pub const SYS_getresgid32: c_long = 211; +pub const SYS_chown32: c_long = 212; +pub const SYS_setuid32: c_long = 213; +pub const SYS_setgid32: c_long = 214; +pub const SYS_setfsuid32: c_long = 215; +pub const SYS_setfsgid32: c_long = 216; +pub const SYS_getdents64: c_long = 217; +pub const SYS_pivot_root: c_long = 218; +pub const SYS_mincore: c_long = 219; +pub const SYS_madvise: c_long = 220; +pub const SYS_fcntl64: c_long = 221; +pub const SYS_gettid: c_long = 224; +pub const SYS_readahead: c_long = 225; +pub const SYS_setxattr: c_long = 226; +pub const SYS_lsetxattr: c_long = 227; +pub const SYS_fsetxattr: c_long = 228; +pub const SYS_getxattr: c_long = 229; +pub const SYS_lgetxattr: c_long = 230; +pub const SYS_fgetxattr: c_long = 231; +pub const SYS_listxattr: c_long = 232; +pub const SYS_llistxattr: c_long = 233; +pub const SYS_flistxattr: c_long = 234; +pub const SYS_removexattr: c_long = 235; +pub const SYS_lremovexattr: c_long = 236; +pub const SYS_fremovexattr: c_long = 237; +pub const SYS_tkill: c_long = 238; +pub const SYS_sendfile64: c_long = 239; +pub const SYS_futex: c_long = 240; +pub const SYS_sched_setaffinity: c_long = 241; +pub const SYS_sched_getaffinity: c_long = 242; +pub const SYS_io_setup: c_long = 243; +pub const SYS_io_destroy: c_long = 244; +pub const SYS_io_getevents: c_long = 245; +pub const SYS_io_submit: c_long = 246; +pub const SYS_io_cancel: c_long = 247; +pub const SYS_exit_group: c_long = 248; +pub const SYS_lookup_dcookie: c_long = 249; +pub const SYS_epoll_create: c_long = 250; +pub const SYS_epoll_ctl: c_long = 251; +pub const SYS_epoll_wait: c_long = 252; +pub const SYS_remap_file_pages: c_long = 253; +pub const SYS_set_tid_address: c_long = 256; +pub const SYS_timer_create: c_long = 257; +pub const SYS_timer_settime: c_long = 258; +pub const SYS_timer_gettime: c_long = 259; +pub const SYS_timer_getoverrun: c_long = 260; +pub const SYS_timer_delete: c_long = 261; +pub const SYS_clock_settime: c_long = 262; +pub const SYS_clock_gettime: c_long = 263; +pub const SYS_clock_getres: c_long = 264; +pub const SYS_clock_nanosleep: c_long = 265; +pub const SYS_statfs64: c_long = 266; +pub const SYS_fstatfs64: c_long = 267; +pub const SYS_tgkill: c_long = 268; +pub const SYS_utimes: c_long = 269; +pub const SYS_arm_fadvise64_64: c_long = 270; +pub const SYS_pciconfig_iobase: c_long = 271; +pub const SYS_pciconfig_read: c_long = 272; +pub const SYS_pciconfig_write: c_long = 273; +pub const SYS_mq_open: c_long = 274; +pub const SYS_mq_unlink: c_long = 275; +pub const SYS_mq_timedsend: c_long = 276; +pub const SYS_mq_timedreceive: c_long = 277; +pub const SYS_mq_notify: c_long = 278; +pub const SYS_mq_getsetattr: c_long = 279; +pub const SYS_waitid: c_long = 280; +pub const SYS_socket: c_long = 281; +pub const SYS_bind: c_long = 282; +pub const SYS_connect: c_long = 283; +pub const SYS_listen: c_long = 284; +pub const SYS_accept: c_long = 285; +pub const SYS_getsockname: c_long = 286; +pub const SYS_getpeername: c_long = 287; +pub const SYS_socketpair: c_long = 288; +pub const SYS_send: c_long = 289; +pub const SYS_sendto: c_long = 290; +pub const SYS_recv: c_long = 291; +pub const SYS_recvfrom: c_long = 292; +pub const SYS_shutdown: c_long = 293; +pub const SYS_setsockopt: c_long = 294; +pub const SYS_getsockopt: c_long = 295; +pub const SYS_sendmsg: c_long = 296; +pub const SYS_recvmsg: c_long = 297; +pub const SYS_semop: c_long = 298; +pub const SYS_semget: c_long = 299; +pub const SYS_semctl: c_long = 300; +pub const SYS_msgsnd: c_long = 301; +pub const SYS_msgrcv: c_long = 302; +pub const SYS_msgget: c_long = 303; +pub const SYS_msgctl: c_long = 304; +pub const SYS_shmat: c_long = 305; +pub const SYS_shmdt: c_long = 306; +pub const SYS_shmget: c_long = 307; +pub const SYS_shmctl: c_long = 308; +pub const SYS_add_key: c_long = 309; +pub const SYS_request_key: c_long = 310; +pub const SYS_keyctl: c_long = 311; +pub const SYS_semtimedop: c_long = 312; +pub const SYS_vserver: c_long = 313; +pub const SYS_ioprio_set: c_long = 314; +pub const SYS_ioprio_get: c_long = 315; +pub const SYS_inotify_init: c_long = 316; +pub const SYS_inotify_add_watch: c_long = 317; +pub const SYS_inotify_rm_watch: c_long = 318; +pub const SYS_mbind: c_long = 319; +pub const SYS_get_mempolicy: c_long = 320; +pub const SYS_set_mempolicy: c_long = 321; +pub const SYS_openat: c_long = 322; +pub const SYS_mkdirat: c_long = 323; +pub const SYS_mknodat: c_long = 324; +pub const SYS_fchownat: c_long = 325; +pub const SYS_futimesat: c_long = 326; +pub const SYS_fstatat64: c_long = 327; +pub const SYS_unlinkat: c_long = 328; +pub const SYS_renameat: c_long = 329; +pub const SYS_linkat: c_long = 330; +pub const SYS_symlinkat: c_long = 331; +pub const SYS_readlinkat: c_long = 332; +pub const SYS_fchmodat: c_long = 333; +pub const SYS_faccessat: c_long = 334; +pub const SYS_pselect6: c_long = 335; +pub const SYS_ppoll: c_long = 336; +pub const SYS_unshare: c_long = 337; +pub const SYS_set_robust_list: c_long = 338; +pub const SYS_get_robust_list: c_long = 339; +pub const SYS_splice: c_long = 340; +pub const SYS_arm_sync_file_range: c_long = 341; +pub const SYS_tee: c_long = 342; +pub const SYS_vmsplice: c_long = 343; +pub const SYS_move_pages: c_long = 344; +pub const SYS_getcpu: c_long = 345; +pub const SYS_epoll_pwait: c_long = 346; +pub const SYS_kexec_load: c_long = 347; +pub const SYS_utimensat: c_long = 348; +pub const SYS_signalfd: c_long = 349; +pub const SYS_timerfd_create: c_long = 350; +pub const SYS_eventfd: c_long = 351; +pub const SYS_fallocate: c_long = 352; +pub const SYS_timerfd_settime: c_long = 353; +pub const SYS_timerfd_gettime: c_long = 354; +pub const SYS_signalfd4: c_long = 355; +pub const SYS_eventfd2: c_long = 356; +pub const SYS_epoll_create1: c_long = 357; +pub const SYS_dup3: c_long = 358; +pub const SYS_pipe2: c_long = 359; +pub const SYS_inotify_init1: c_long = 360; +pub const SYS_preadv: c_long = 361; +pub const SYS_pwritev: c_long = 362; +pub const SYS_rt_tgsigqueueinfo: c_long = 363; +pub const SYS_perf_event_open: c_long = 364; +pub const SYS_recvmmsg: c_long = 365; +pub const SYS_accept4: c_long = 366; +pub const SYS_fanotify_init: c_long = 367; +pub const SYS_fanotify_mark: c_long = 368; +pub const SYS_prlimit64: c_long = 369; +pub const SYS_name_to_handle_at: c_long = 370; +pub const SYS_open_by_handle_at: c_long = 371; +pub const SYS_clock_adjtime: c_long = 372; +pub const SYS_syncfs: c_long = 373; +pub const SYS_sendmmsg: c_long = 374; +pub const SYS_setns: c_long = 375; +pub const SYS_process_vm_readv: c_long = 376; +pub const SYS_process_vm_writev: c_long = 377; +pub const SYS_kcmp: c_long = 378; +pub const SYS_finit_module: c_long = 379; +pub const SYS_sched_setattr: c_long = 380; +pub const SYS_sched_getattr: c_long = 381; +pub const SYS_renameat2: c_long = 382; +pub const SYS_seccomp: c_long = 383; +pub const SYS_getrandom: c_long = 384; +pub const SYS_memfd_create: c_long = 385; +pub const SYS_bpf: c_long = 386; +pub const SYS_execveat: c_long = 387; +pub const SYS_userfaultfd: c_long = 388; +pub const SYS_membarrier: c_long = 389; +pub const SYS_mlock2: c_long = 390; +pub const SYS_copy_file_range: c_long = 391; +pub const SYS_preadv2: c_long = 392; +pub const SYS_pwritev2: c_long = 393; +pub const SYS_pkey_mprotect: c_long = 394; +pub const SYS_pkey_alloc: c_long = 395; +pub const SYS_pkey_free: c_long = 396; +pub const SYS_statx: c_long = 397; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; // offsets in mcontext_t.gregs from sys/ucontext.h -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_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 NGREG: ::c_int = 18; +pub const NGREG: c_int = 18; // From NDK's asm/auxvec.h -pub const AT_SYSINFO_EHDR: ::c_ulong = 33; +pub const AT_SYSINFO_EHDR: c_ulong = 33; f! { // Sadly, Android before 5.0 (API level 21), the accept4 syscall is not @@ -552,11 +554,11 @@ f! { // Android is bumped. When the workaround is removed, `accept4` can be // moved back to `linux_like/mod.rs` pub fn accept4( - fd: ::c_int, - addr: *mut ::sockaddr, - len: *mut ::socklen_t, - flg: ::c_int, - ) -> ::c_int { - ::syscall(SYS_accept4, fd, addr, len, flg) as ::c_int + fd: c_int, + addr: *mut crate::sockaddr, + len: *mut crate::socklen_t, + flg: c_int, + ) -> c_int { + crate::syscall(SYS_accept4, fd, addr, len, flg) as c_int } } diff --git a/src/unix/linux_like/android/b32/mod.rs b/src/unix/linux_like/android/b32/mod.rs index 49f7579463c11..8ef7a917007a1 100644 --- a/src/unix/linux_like/android/b32/mod.rs +++ b/src/unix/linux_like/android/b32/mod.rs @@ -1,22 +1,24 @@ +use crate::{c_int, c_longlong, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, size_t}; + // The following definitions are correct for arm and i686, // but may be wrong for mips pub type c_long = i32; pub type c_ulong = u32; pub type mode_t = u16; -pub type off64_t = ::c_longlong; -pub type sigset_t = ::c_ulong; +pub type off64_t = c_longlong; +pub type sigset_t = c_ulong; pub type socklen_t = i32; pub type time64_t = i64; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; s! { pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, + pub sa_flags: c_int, + pub sa_restorer: Option, } pub struct rlimit64 { @@ -25,47 +27,47 @@ s! { } pub struct stat { - pub st_dev: ::c_ulonglong, - __pad0: [::c_uchar; 4], - __st_ino: ::ino_t, - pub st_mode: ::c_uint, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulonglong, - __pad3: [::c_uchar; 4], - pub st_size: ::c_longlong, - pub st_blksize: ::blksize_t, - pub st_blocks: ::c_ulonglong, - pub st_atime: ::c_long, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::c_long, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::c_long, - pub st_ctime_nsec: ::c_long, - pub st_ino: ::c_ulonglong, + pub st_dev: c_ulonglong, + __pad0: [c_uchar; 4], + __st_ino: crate::ino_t, + pub st_mode: c_uint, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: c_ulonglong, + __pad3: [c_uchar; 4], + pub st_size: c_longlong, + pub st_blksize: crate::blksize_t, + pub st_blocks: c_ulonglong, + pub st_atime: c_long, + pub st_atime_nsec: c_long, + pub st_mtime: c_long, + pub st_mtime_nsec: c_long, + pub st_ctime: c_long, + pub st_ctime_nsec: c_long, + pub st_ino: c_ulonglong, } pub struct stat64 { - pub st_dev: ::c_ulonglong, - __pad0: [::c_uchar; 4], - __st_ino: ::ino_t, - pub st_mode: ::c_uint, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulonglong, - __pad3: [::c_uchar; 4], - pub st_size: ::c_longlong, - pub st_blksize: ::blksize_t, - pub st_blocks: ::c_ulonglong, - pub st_atime: ::c_long, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::c_long, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::c_long, - pub st_ctime_nsec: ::c_long, - pub st_ino: ::c_ulonglong, + pub st_dev: c_ulonglong, + __pad0: [c_uchar; 4], + __st_ino: crate::ino_t, + pub st_mode: c_uint, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: c_ulonglong, + __pad3: [c_uchar; 4], + pub st_size: c_longlong, + pub st_blksize: crate::blksize_t, + pub st_blocks: c_ulonglong, + pub st_atime: c_long, + pub st_atime_nsec: c_long, + pub st_mtime: c_long, + pub st_mtime_nsec: c_long, + pub st_ctime: c_long, + pub st_ctime_nsec: c_long, + pub st_ino: c_ulonglong, } pub struct statfs64 { @@ -76,7 +78,7 @@ s! { pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, - pub f_fsid: ::__fsid_t, + pub f_fsid: crate::__fsid_t, pub f_namelen: u32, pub f_frsize: u32, pub f_flags: u32, @@ -84,45 +86,45 @@ s! { } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::c_ulong, - pub f_bfree: ::c_ulong, - pub f_bavail: ::c_ulong, - pub f_files: ::c_ulong, - pub f_ffree: ::c_ulong, - pub f_favail: ::c_ulong, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: c_ulong, + pub f_bfree: c_ulong, + pub f_bavail: c_ulong, + pub f_files: c_ulong, + pub f_ffree: c_ulong, + pub f_favail: c_ulong, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, } pub struct pthread_attr_t { pub flags: u32, - pub stack_base: *mut ::c_void, - pub stack_size: ::size_t, - pub guard_size: ::size_t, + pub stack_base: *mut c_void, + pub stack_size: size_t, + pub guard_size: size_t, pub sched_policy: i32, pub sched_priority: i32, } pub struct pthread_mutex_t { - value: ::c_int, + value: c_int, } pub struct pthread_cond_t { - value: ::c_int, + value: c_int, } pub struct pthread_rwlock_t { lock: pthread_mutex_t, cond: pthread_cond_t, - numLocks: ::c_int, - writerThreadId: ::c_int, - pendingReaders: ::c_int, - pendingWriters: ::c_int, + numLocks: c_int, + writerThreadId: c_int, + pendingReaders: c_int, + pendingWriters: c_int, attr: i32, - __reserved: [::c_char; 12], + __reserved: [c_char; 12], } pub struct pthread_barrier_t { @@ -134,12 +136,12 @@ s! { } pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, + pub pw_name: *mut c_char, + pub pw_passwd: *mut c_char, + pub pw_uid: crate::uid_t, + pub pw_gid: crate::gid_t, + pub pw_dir: *mut c_char, + pub pw_shell: *mut c_char, } pub struct statfs { @@ -150,7 +152,7 @@ s! { pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, - pub f_fsid: ::__fsid_t, + pub f_fsid: crate::__fsid_t, pub f_namelen: u32, pub f_frsize: u32, pub f_flags: u32, @@ -158,33 +160,33 @@ s! { } pub struct sysinfo { - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 8], + pub uptime: c_long, + pub loads: [c_ulong; 3], + pub totalram: c_ulong, + pub freeram: c_ulong, + pub sharedram: c_ulong, + pub bufferram: c_ulong, + pub totalswap: c_ulong, + pub freeswap: c_ulong, + pub procs: c_ushort, + pub pad: c_ushort, + pub totalhigh: c_ulong, + pub freehigh: c_ulong, + pub mem_unit: c_uint, + pub _f: [c_char; 8], } } s_no_extra_traits! { pub struct sigset64_t { - __bits: [::c_ulong; 2], + __bits: [c_ulong; 2], } } cfg_if! { if #[cfg(feature = "extra_traits")] { - impl ::fmt::Debug for sigset64_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sigset64_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sigset64_t") .field("__bits", &self.__bits) .finish() @@ -194,20 +196,20 @@ cfg_if! { } // These constants must be of the same type of sigaction.sa_flags -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDSTOP: c_int = 0x00000001; +pub const SA_NOCLDWAIT: c_int = 0x00000002; +pub const SA_NODEFER: c_int = 0x40000000; +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_RESETHAND: c_int = 0x80000000; +pub const SA_RESTART: c_int = 0x10000000; +pub const SA_SIGINFO: c_int = 0x00000004; -pub const RTLD_GLOBAL: ::c_int = 2; -pub const RTLD_NOW: ::c_int = 0; -pub const RTLD_DEFAULT: *mut ::c_void = -1isize as *mut ::c_void; +pub const RTLD_GLOBAL: c_int = 2; +pub const RTLD_NOW: c_int = 0; +pub const RTLD_DEFAULT: *mut c_void = -1isize as *mut c_void; -pub const PTRACE_GETFPREGS: ::c_int = 14; -pub const PTRACE_SETFPREGS: ::c_int = 15; +pub const PTRACE_GETFPREGS: c_int = 14; +pub const PTRACE_SETFPREGS: c_int = 15; pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { value: 0 }; pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { value: 0 }; @@ -221,19 +223,19 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { attr: 0, __reserved: [0; 12], }; -pub const PTHREAD_STACK_MIN: ::size_t = 4096 * 2; -pub const CPU_SETSIZE: ::size_t = 32; -pub const __CPU_BITS: ::size_t = 32; +pub const PTHREAD_STACK_MIN: size_t = 4096 * 2; +pub const CPU_SETSIZE: size_t = 32; +pub const __CPU_BITS: size_t = 32; pub const UT_LINESIZE: usize = 8; pub const UT_NAMESIZE: usize = 8; pub const UT_HOSTSIZE: usize = 16; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; extern "C" { - pub fn timegm64(tm: *const ::tm) -> ::time64_t; + pub fn timegm64(tm: *const crate::tm) -> crate::time64_t; } cfg_if! { diff --git a/src/unix/linux_like/android/b32/x86/mod.rs b/src/unix/linux_like/android/b32/x86/mod.rs index 742916bf8861d..a456ad6a4a34b 100644 --- a/src/unix/linux_like/android/b32/x86/mod.rs +++ b/src/unix/linux_like/android/b32/x86/mod.rs @@ -1,3 +1,5 @@ +use crate::{c_int, c_long, c_ulong}; + pub type c_char = i8; pub type wchar_t = i32; pub type greg_t = i32; @@ -9,41 +11,41 @@ s! { } pub struct _libc_fpstate { - pub cw: ::c_ulong, - pub sw: ::c_ulong, - pub tag: ::c_ulong, - pub ipoff: ::c_ulong, - pub cssel: ::c_ulong, - pub dataoff: ::c_ulong, - pub datasel: ::c_ulong, + pub cw: c_ulong, + pub sw: c_ulong, + pub tag: c_ulong, + pub ipoff: c_ulong, + pub cssel: c_ulong, + pub dataoff: c_ulong, + pub datasel: c_ulong, pub _st: [_libc_fpreg; 8], - pub status: ::c_ulong, + pub status: c_ulong, } pub struct mcontext_t { pub gregs: [greg_t; 19], pub fpregs: *mut _libc_fpstate, - pub oldmask: ::c_ulong, - pub cr2: ::c_ulong, + pub oldmask: c_ulong, + pub cr2: c_ulong, } } s_no_extra_traits! { pub struct __c_anonymous_uc_sigmask_with_padding { - pub uc_sigmask: ::sigset_t, + pub uc_sigmask: crate::sigset_t, /* Android has a wrong (smaller) sigset_t on x86. */ __padding_rt_sigset: u32, } pub union __c_anonymous_uc_sigmask { uc_sigmask: __c_anonymous_uc_sigmask_with_padding, - uc_sigmask64: ::sigset64_t, + uc_sigmask64: crate::sigset64_t, } pub struct ucontext_t { - pub uc_flags: ::c_ulong, + pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, + pub uc_stack: crate::stack_t, pub uc_mcontext: mcontext_t, pub uc_sigmask__c_anonymous_union: __c_anonymous_uc_sigmask, __padding_rt_sigset: u32, @@ -66,16 +68,16 @@ cfg_if! { } } impl Eq for __c_anonymous_uc_sigmask_with_padding {} - impl ::fmt::Debug for __c_anonymous_uc_sigmask_with_padding { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_uc_sigmask_with_padding { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("uc_sigmask_with_padding") .field("uc_sigmask_with_padding", &self.uc_sigmask) // Ignore padding .finish() } } - impl ::hash::Hash for __c_anonymous_uc_sigmask_with_padding { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_uc_sigmask_with_padding { + fn hash(&self, state: &mut H) { self.uc_sigmask.hash(state) // Ignore padding } @@ -87,15 +89,15 @@ cfg_if! { } } impl Eq for __c_anonymous_uc_sigmask {} - impl ::fmt::Debug for __c_anonymous_uc_sigmask { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_uc_sigmask { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("uc_sigmask") .field("uc_sigmask", unsafe { &self.uc_sigmask }) .finish() } } - impl ::hash::Hash for __c_anonymous_uc_sigmask { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_uc_sigmask { + fn hash(&self, state: &mut H) { unsafe { self.uc_sigmask.hash(state) } } } @@ -111,8 +113,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -126,8 +128,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); @@ -139,475 +141,475 @@ cfg_if! { } } -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_LARGEFILE: ::c_int = 0o0100000; +pub const O_DIRECT: c_int = 0x4000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_NOFOLLOW: c_int = 0x20000; +pub const O_LARGEFILE: c_int = 0o0100000; -pub const MAP_32BIT: ::c_int = 0x40; +pub const MAP_32BIT: c_int = 0x40; // Syscall table -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_waitpid: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_time: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_break: ::c_long = 17; -pub const SYS_oldstat: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_stime: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_oldfstat: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_stty: ::c_long = 31; -pub const SYS_gtty: ::c_long = 32; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_ftime: ::c_long = 35; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_prof: ::c_long = 44; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_lock: ::c_long = 53; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_mpx: ::c_long = 56; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_ulimit: ::c_long = 58; -pub const SYS_oldolduname: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sgetmask: ::c_long = 68; -pub const SYS_ssetmask: ::c_long = 69; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrlimit: ::c_long = 76; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_select: ::c_long = 82; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_oldlstat: ::c_long = 84; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_profil: ::c_long = 98; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_ioperm: ::c_long = 101; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_olduname: ::c_long = 109; -pub const SYS_iopl: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_vm86old: ::c_long = 113; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_modify_ldt: ::c_long = 123; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; +pub const SYS_restart_syscall: c_long = 0; +pub const SYS_exit: c_long = 1; +pub const SYS_fork: c_long = 2; +pub const SYS_read: c_long = 3; +pub const SYS_write: c_long = 4; +pub const SYS_open: c_long = 5; +pub const SYS_close: c_long = 6; +pub const SYS_waitpid: c_long = 7; +pub const SYS_creat: c_long = 8; +pub const SYS_link: c_long = 9; +pub const SYS_unlink: c_long = 10; +pub const SYS_execve: c_long = 11; +pub const SYS_chdir: c_long = 12; +pub const SYS_time: c_long = 13; +pub const SYS_mknod: c_long = 14; +pub const SYS_chmod: c_long = 15; +pub const SYS_lchown: c_long = 16; +pub const SYS_break: c_long = 17; +pub const SYS_oldstat: c_long = 18; +pub const SYS_lseek: c_long = 19; +pub const SYS_getpid: c_long = 20; +pub const SYS_mount: c_long = 21; +pub const SYS_umount: c_long = 22; +pub const SYS_setuid: c_long = 23; +pub const SYS_getuid: c_long = 24; +pub const SYS_stime: c_long = 25; +pub const SYS_ptrace: c_long = 26; +pub const SYS_alarm: c_long = 27; +pub const SYS_oldfstat: c_long = 28; +pub const SYS_pause: c_long = 29; +pub const SYS_utime: c_long = 30; +pub const SYS_stty: c_long = 31; +pub const SYS_gtty: c_long = 32; +pub const SYS_access: c_long = 33; +pub const SYS_nice: c_long = 34; +pub const SYS_ftime: c_long = 35; +pub const SYS_sync: c_long = 36; +pub const SYS_kill: c_long = 37; +pub const SYS_rename: c_long = 38; +pub const SYS_mkdir: c_long = 39; +pub const SYS_rmdir: c_long = 40; +pub const SYS_dup: c_long = 41; +pub const SYS_pipe: c_long = 42; +pub const SYS_times: c_long = 43; +pub const SYS_prof: c_long = 44; +pub const SYS_brk: c_long = 45; +pub const SYS_setgid: c_long = 46; +pub const SYS_getgid: c_long = 47; +pub const SYS_signal: c_long = 48; +pub const SYS_geteuid: c_long = 49; +pub const SYS_getegid: c_long = 50; +pub const SYS_acct: c_long = 51; +pub const SYS_umount2: c_long = 52; +pub const SYS_lock: c_long = 53; +pub const SYS_ioctl: c_long = 54; +pub const SYS_fcntl: c_long = 55; +pub const SYS_mpx: c_long = 56; +pub const SYS_setpgid: c_long = 57; +pub const SYS_ulimit: c_long = 58; +pub const SYS_oldolduname: c_long = 59; +pub const SYS_umask: c_long = 60; +pub const SYS_chroot: c_long = 61; +pub const SYS_ustat: c_long = 62; +pub const SYS_dup2: c_long = 63; +pub const SYS_getppid: c_long = 64; +pub const SYS_getpgrp: c_long = 65; +pub const SYS_setsid: c_long = 66; +pub const SYS_sigaction: c_long = 67; +pub const SYS_sgetmask: c_long = 68; +pub const SYS_ssetmask: c_long = 69; +pub const SYS_setreuid: c_long = 70; +pub const SYS_setregid: c_long = 71; +pub const SYS_sigsuspend: c_long = 72; +pub const SYS_sigpending: c_long = 73; +pub const SYS_sethostname: c_long = 74; +pub const SYS_setrlimit: c_long = 75; +pub const SYS_getrlimit: c_long = 76; +pub const SYS_getrusage: c_long = 77; +pub const SYS_gettimeofday: c_long = 78; +pub const SYS_settimeofday: c_long = 79; +pub const SYS_getgroups: c_long = 80; +pub const SYS_setgroups: c_long = 81; +pub const SYS_select: c_long = 82; +pub const SYS_symlink: c_long = 83; +pub const SYS_oldlstat: c_long = 84; +pub const SYS_readlink: c_long = 85; +pub const SYS_uselib: c_long = 86; +pub const SYS_swapon: c_long = 87; +pub const SYS_reboot: c_long = 88; +pub const SYS_readdir: c_long = 89; +pub const SYS_mmap: c_long = 90; +pub const SYS_munmap: c_long = 91; +pub const SYS_truncate: c_long = 92; +pub const SYS_ftruncate: c_long = 93; +pub const SYS_fchmod: c_long = 94; +pub const SYS_fchown: c_long = 95; +pub const SYS_getpriority: c_long = 96; +pub const SYS_setpriority: c_long = 97; +pub const SYS_profil: c_long = 98; +pub const SYS_statfs: c_long = 99; +pub const SYS_fstatfs: c_long = 100; +pub const SYS_ioperm: c_long = 101; +pub const SYS_socketcall: c_long = 102; +pub const SYS_syslog: c_long = 103; +pub const SYS_setitimer: c_long = 104; +pub const SYS_getitimer: c_long = 105; +pub const SYS_stat: c_long = 106; +pub const SYS_lstat: c_long = 107; +pub const SYS_fstat: c_long = 108; +pub const SYS_olduname: c_long = 109; +pub const SYS_iopl: c_long = 110; +pub const SYS_vhangup: c_long = 111; +pub const SYS_idle: c_long = 112; +pub const SYS_vm86old: c_long = 113; +pub const SYS_wait4: c_long = 114; +pub const SYS_swapoff: c_long = 115; +pub const SYS_sysinfo: c_long = 116; +pub const SYS_ipc: c_long = 117; +pub const SYS_fsync: c_long = 118; +pub const SYS_sigreturn: c_long = 119; +pub const SYS_clone: c_long = 120; +pub const SYS_setdomainname: c_long = 121; +pub const SYS_uname: c_long = 122; +pub const SYS_modify_ldt: c_long = 123; +pub const SYS_adjtimex: c_long = 124; +pub const SYS_mprotect: c_long = 125; +pub const SYS_sigprocmask: c_long = 126; +pub const SYS_create_module: c_long = 127; +pub const SYS_init_module: c_long = 128; +pub const SYS_delete_module: c_long = 129; +pub const SYS_get_kernel_syms: c_long = 130; +pub const SYS_quotactl: c_long = 131; +pub const SYS_getpgid: c_long = 132; +pub const SYS_fchdir: c_long = 133; +pub const SYS_bdflush: c_long = 134; +pub const SYS_sysfs: c_long = 135; +pub const SYS_personality: c_long = 136; +pub const SYS_afs_syscall: c_long = 137; +pub const SYS_setfsuid: c_long = 138; +pub const SYS_setfsgid: c_long = 139; // FIXME: SYS__llseek is in the NDK sources but for some reason is // not available in the tests -// pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; +// pub const SYS__llseek: c_long = 140; +pub const SYS_getdents: c_long = 141; // FIXME: SYS__newselect is in the NDK sources but for some reason is // not available in the tests -// pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; +// pub const SYS__newselect: c_long = 142; +pub const SYS_flock: c_long = 143; +pub const SYS_msync: c_long = 144; +pub const SYS_readv: c_long = 145; +pub const SYS_writev: c_long = 146; +pub const SYS_getsid: c_long = 147; +pub const SYS_fdatasync: c_long = 148; // FIXME: SYS__llseek is in the NDK sources but for some reason is // not available in the tests -// pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_vm86: ::c_long = 166; -pub const SYS_query_module: ::c_long = 167; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_setresgid: ::c_long = 170; -pub const SYS_getresgid: ::c_long = 171; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_chown: ::c_long = 182; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_getpmsg: ::c_long = 188; -pub const SYS_putpmsg: ::c_long = 189; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_ugetrlimit: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_lchown32: ::c_long = 198; -pub const SYS_getuid32: ::c_long = 199; -pub const SYS_getgid32: ::c_long = 200; -pub const SYS_geteuid32: ::c_long = 201; -pub const SYS_getegid32: ::c_long = 202; -pub const SYS_setreuid32: ::c_long = 203; -pub const SYS_setregid32: ::c_long = 204; -pub const SYS_getgroups32: ::c_long = 205; -pub const SYS_setgroups32: ::c_long = 206; -pub const SYS_fchown32: ::c_long = 207; -pub const SYS_setresuid32: ::c_long = 208; -pub const SYS_getresuid32: ::c_long = 209; -pub const SYS_setresgid32: ::c_long = 210; -pub const SYS_getresgid32: ::c_long = 211; -pub const SYS_chown32: ::c_long = 212; -pub const SYS_setuid32: ::c_long = 213; -pub const SYS_setgid32: ::c_long = 214; -pub const SYS_setfsuid32: ::c_long = 215; -pub const SYS_setfsgid32: ::c_long = 216; -pub const SYS_pivot_root: ::c_long = 217; -pub const SYS_mincore: ::c_long = 218; -pub const SYS_madvise: ::c_long = 219; -pub const SYS_getdents64: ::c_long = 220; -pub const SYS_fcntl64: ::c_long = 221; -pub const SYS_gettid: ::c_long = 224; -pub const SYS_readahead: ::c_long = 225; -pub const SYS_setxattr: ::c_long = 226; -pub const SYS_lsetxattr: ::c_long = 227; -pub const SYS_fsetxattr: ::c_long = 228; -pub const SYS_getxattr: ::c_long = 229; -pub const SYS_lgetxattr: ::c_long = 230; -pub const SYS_fgetxattr: ::c_long = 231; -pub const SYS_listxattr: ::c_long = 232; -pub const SYS_llistxattr: ::c_long = 233; -pub const SYS_flistxattr: ::c_long = 234; -pub const SYS_removexattr: ::c_long = 235; -pub const SYS_lremovexattr: ::c_long = 236; -pub const SYS_fremovexattr: ::c_long = 237; -pub const SYS_tkill: ::c_long = 238; -pub const SYS_sendfile64: ::c_long = 239; -pub const SYS_futex: ::c_long = 240; -pub const SYS_sched_setaffinity: ::c_long = 241; -pub const SYS_sched_getaffinity: ::c_long = 242; -pub const SYS_set_thread_area: ::c_long = 243; -pub const SYS_get_thread_area: ::c_long = 244; -pub const SYS_io_setup: ::c_long = 245; -pub const SYS_io_destroy: ::c_long = 246; -pub const SYS_io_getevents: ::c_long = 247; -pub const SYS_io_submit: ::c_long = 248; -pub const SYS_io_cancel: ::c_long = 249; -pub const SYS_fadvise64: ::c_long = 250; -pub const SYS_exit_group: ::c_long = 252; -pub const SYS_lookup_dcookie: ::c_long = 253; -pub const SYS_epoll_create: ::c_long = 254; -pub const SYS_epoll_ctl: ::c_long = 255; -pub const SYS_epoll_wait: ::c_long = 256; -pub const SYS_remap_file_pages: ::c_long = 257; -pub const SYS_set_tid_address: ::c_long = 258; -pub const SYS_timer_create: ::c_long = 259; -pub const SYS_timer_settime: ::c_long = 260; -pub const SYS_timer_gettime: ::c_long = 261; -pub const SYS_timer_getoverrun: ::c_long = 262; -pub const SYS_timer_delete: ::c_long = 263; -pub const SYS_clock_settime: ::c_long = 264; -pub const SYS_clock_gettime: ::c_long = 265; -pub const SYS_clock_getres: ::c_long = 266; -pub const SYS_clock_nanosleep: ::c_long = 267; -pub const SYS_statfs64: ::c_long = 268; -pub const SYS_fstatfs64: ::c_long = 269; -pub const SYS_tgkill: ::c_long = 270; -pub const SYS_utimes: ::c_long = 271; -pub const SYS_fadvise64_64: ::c_long = 272; -pub const SYS_vserver: ::c_long = 273; -pub const SYS_mbind: ::c_long = 274; -pub const SYS_get_mempolicy: ::c_long = 275; -pub const SYS_set_mempolicy: ::c_long = 276; -pub const SYS_mq_open: ::c_long = 277; -pub const SYS_mq_unlink: ::c_long = 278; -pub const SYS_mq_timedsend: ::c_long = 279; -pub const SYS_mq_timedreceive: ::c_long = 280; -pub const SYS_mq_notify: ::c_long = 281; -pub const SYS_mq_getsetattr: ::c_long = 282; -pub const SYS_kexec_load: ::c_long = 283; -pub const SYS_waitid: ::c_long = 284; -pub const SYS_add_key: ::c_long = 286; -pub const SYS_request_key: ::c_long = 287; -pub const SYS_keyctl: ::c_long = 288; -pub const SYS_ioprio_set: ::c_long = 289; -pub const SYS_ioprio_get: ::c_long = 290; -pub const SYS_inotify_init: ::c_long = 291; -pub const SYS_inotify_add_watch: ::c_long = 292; -pub const SYS_inotify_rm_watch: ::c_long = 293; -pub const SYS_migrate_pages: ::c_long = 294; -pub const SYS_openat: ::c_long = 295; -pub const SYS_mkdirat: ::c_long = 296; -pub const SYS_mknodat: ::c_long = 297; -pub const SYS_fchownat: ::c_long = 298; -pub const SYS_futimesat: ::c_long = 299; -pub const SYS_fstatat64: ::c_long = 300; -pub const SYS_unlinkat: ::c_long = 301; -pub const SYS_renameat: ::c_long = 302; -pub const SYS_linkat: ::c_long = 303; -pub const SYS_symlinkat: ::c_long = 304; -pub const SYS_readlinkat: ::c_long = 305; -pub const SYS_fchmodat: ::c_long = 306; -pub const SYS_faccessat: ::c_long = 307; -pub const SYS_pselect6: ::c_long = 308; -pub const SYS_ppoll: ::c_long = 309; -pub const SYS_unshare: ::c_long = 310; -pub const SYS_set_robust_list: ::c_long = 311; -pub const SYS_get_robust_list: ::c_long = 312; -pub const SYS_splice: ::c_long = 313; -pub const SYS_sync_file_range: ::c_long = 314; -pub const SYS_tee: ::c_long = 315; -pub const SYS_vmsplice: ::c_long = 316; -pub const SYS_move_pages: ::c_long = 317; -pub const SYS_getcpu: ::c_long = 318; -pub const SYS_epoll_pwait: ::c_long = 319; -pub const SYS_utimensat: ::c_long = 320; -pub const SYS_signalfd: ::c_long = 321; -pub const SYS_timerfd_create: ::c_long = 322; -pub const SYS_eventfd: ::c_long = 323; -pub const SYS_fallocate: ::c_long = 324; -pub const SYS_timerfd_settime: ::c_long = 325; -pub const SYS_timerfd_gettime: ::c_long = 326; -pub const SYS_signalfd4: ::c_long = 327; -pub const SYS_eventfd2: ::c_long = 328; -pub const SYS_epoll_create1: ::c_long = 329; -pub const SYS_dup3: ::c_long = 330; -pub const SYS_pipe2: ::c_long = 331; -pub const SYS_inotify_init1: ::c_long = 332; -pub const SYS_preadv: ::c_long = 333; -pub const SYS_pwritev: ::c_long = 334; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 335; -pub const SYS_perf_event_open: ::c_long = 336; -pub const SYS_recvmmsg: ::c_long = 337; -pub const SYS_fanotify_init: ::c_long = 338; -pub const SYS_fanotify_mark: ::c_long = 339; -pub const SYS_prlimit64: ::c_long = 340; -pub const SYS_name_to_handle_at: ::c_long = 341; -pub const SYS_open_by_handle_at: ::c_long = 342; -pub const SYS_clock_adjtime: ::c_long = 343; -pub const SYS_syncfs: ::c_long = 344; -pub const SYS_sendmmsg: ::c_long = 345; -pub const SYS_setns: ::c_long = 346; -pub const SYS_process_vm_readv: ::c_long = 347; -pub const SYS_process_vm_writev: ::c_long = 348; -pub const SYS_kcmp: ::c_long = 349; -pub const SYS_finit_module: ::c_long = 350; -pub const SYS_sched_setattr: ::c_long = 351; -pub const SYS_sched_getattr: ::c_long = 352; -pub const SYS_renameat2: ::c_long = 353; -pub const SYS_seccomp: ::c_long = 354; -pub const SYS_getrandom: ::c_long = 355; -pub const SYS_memfd_create: ::c_long = 356; -pub const SYS_bpf: ::c_long = 357; -pub const SYS_execveat: ::c_long = 358; -pub const SYS_socket: ::c_long = 359; -pub const SYS_socketpair: ::c_long = 360; -pub const SYS_bind: ::c_long = 361; -pub const SYS_connect: ::c_long = 362; -pub const SYS_listen: ::c_long = 363; -pub const SYS_accept4: ::c_long = 364; -pub const SYS_getsockopt: ::c_long = 365; -pub const SYS_setsockopt: ::c_long = 366; -pub const SYS_getsockname: ::c_long = 367; -pub const SYS_getpeername: ::c_long = 368; -pub const SYS_sendto: ::c_long = 369; -pub const SYS_sendmsg: ::c_long = 370; -pub const SYS_recvfrom: ::c_long = 371; -pub const SYS_recvmsg: ::c_long = 372; -pub const SYS_shutdown: ::c_long = 373; -pub const SYS_userfaultfd: ::c_long = 374; -pub const SYS_membarrier: ::c_long = 375; -pub const SYS_mlock2: ::c_long = 376; -pub const SYS_copy_file_range: ::c_long = 377; -pub const SYS_preadv2: ::c_long = 378; -pub const SYS_pwritev2: ::c_long = 379; -pub const SYS_pkey_mprotect: ::c_long = 380; -pub const SYS_pkey_alloc: ::c_long = 381; -pub const SYS_pkey_free: ::c_long = 382; -pub const SYS_statx: ::c_long = 383; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; +// pub const SYS__sysctl: c_long = 149; +pub const SYS_mlock: c_long = 150; +pub const SYS_munlock: c_long = 151; +pub const SYS_mlockall: c_long = 152; +pub const SYS_munlockall: c_long = 153; +pub const SYS_sched_setparam: c_long = 154; +pub const SYS_sched_getparam: c_long = 155; +pub const SYS_sched_setscheduler: c_long = 156; +pub const SYS_sched_getscheduler: c_long = 157; +pub const SYS_sched_yield: c_long = 158; +pub const SYS_sched_get_priority_max: c_long = 159; +pub const SYS_sched_get_priority_min: c_long = 160; +pub const SYS_sched_rr_get_interval: c_long = 161; +pub const SYS_nanosleep: c_long = 162; +pub const SYS_mremap: c_long = 163; +pub const SYS_setresuid: c_long = 164; +pub const SYS_getresuid: c_long = 165; +pub const SYS_vm86: c_long = 166; +pub const SYS_query_module: c_long = 167; +pub const SYS_poll: c_long = 168; +pub const SYS_nfsservctl: c_long = 169; +pub const SYS_setresgid: c_long = 170; +pub const SYS_getresgid: c_long = 171; +pub const SYS_prctl: c_long = 172; +pub const SYS_rt_sigreturn: c_long = 173; +pub const SYS_rt_sigaction: c_long = 174; +pub const SYS_rt_sigprocmask: c_long = 175; +pub const SYS_rt_sigpending: c_long = 176; +pub const SYS_rt_sigtimedwait: c_long = 177; +pub const SYS_rt_sigqueueinfo: c_long = 178; +pub const SYS_rt_sigsuspend: c_long = 179; +pub const SYS_pread64: c_long = 180; +pub const SYS_pwrite64: c_long = 181; +pub const SYS_chown: c_long = 182; +pub const SYS_getcwd: c_long = 183; +pub const SYS_capget: c_long = 184; +pub const SYS_capset: c_long = 185; +pub const SYS_sigaltstack: c_long = 186; +pub const SYS_sendfile: c_long = 187; +pub const SYS_getpmsg: c_long = 188; +pub const SYS_putpmsg: c_long = 189; +pub const SYS_vfork: c_long = 190; +pub const SYS_ugetrlimit: c_long = 191; +pub const SYS_mmap2: c_long = 192; +pub const SYS_truncate64: c_long = 193; +pub const SYS_ftruncate64: c_long = 194; +pub const SYS_stat64: c_long = 195; +pub const SYS_lstat64: c_long = 196; +pub const SYS_fstat64: c_long = 197; +pub const SYS_lchown32: c_long = 198; +pub const SYS_getuid32: c_long = 199; +pub const SYS_getgid32: c_long = 200; +pub const SYS_geteuid32: c_long = 201; +pub const SYS_getegid32: c_long = 202; +pub const SYS_setreuid32: c_long = 203; +pub const SYS_setregid32: c_long = 204; +pub const SYS_getgroups32: c_long = 205; +pub const SYS_setgroups32: c_long = 206; +pub const SYS_fchown32: c_long = 207; +pub const SYS_setresuid32: c_long = 208; +pub const SYS_getresuid32: c_long = 209; +pub const SYS_setresgid32: c_long = 210; +pub const SYS_getresgid32: c_long = 211; +pub const SYS_chown32: c_long = 212; +pub const SYS_setuid32: c_long = 213; +pub const SYS_setgid32: c_long = 214; +pub const SYS_setfsuid32: c_long = 215; +pub const SYS_setfsgid32: c_long = 216; +pub const SYS_pivot_root: c_long = 217; +pub const SYS_mincore: c_long = 218; +pub const SYS_madvise: c_long = 219; +pub const SYS_getdents64: c_long = 220; +pub const SYS_fcntl64: c_long = 221; +pub const SYS_gettid: c_long = 224; +pub const SYS_readahead: c_long = 225; +pub const SYS_setxattr: c_long = 226; +pub const SYS_lsetxattr: c_long = 227; +pub const SYS_fsetxattr: c_long = 228; +pub const SYS_getxattr: c_long = 229; +pub const SYS_lgetxattr: c_long = 230; +pub const SYS_fgetxattr: c_long = 231; +pub const SYS_listxattr: c_long = 232; +pub const SYS_llistxattr: c_long = 233; +pub const SYS_flistxattr: c_long = 234; +pub const SYS_removexattr: c_long = 235; +pub const SYS_lremovexattr: c_long = 236; +pub const SYS_fremovexattr: c_long = 237; +pub const SYS_tkill: c_long = 238; +pub const SYS_sendfile64: c_long = 239; +pub const SYS_futex: c_long = 240; +pub const SYS_sched_setaffinity: c_long = 241; +pub const SYS_sched_getaffinity: c_long = 242; +pub const SYS_set_thread_area: c_long = 243; +pub const SYS_get_thread_area: c_long = 244; +pub const SYS_io_setup: c_long = 245; +pub const SYS_io_destroy: c_long = 246; +pub const SYS_io_getevents: c_long = 247; +pub const SYS_io_submit: c_long = 248; +pub const SYS_io_cancel: c_long = 249; +pub const SYS_fadvise64: c_long = 250; +pub const SYS_exit_group: c_long = 252; +pub const SYS_lookup_dcookie: c_long = 253; +pub const SYS_epoll_create: c_long = 254; +pub const SYS_epoll_ctl: c_long = 255; +pub const SYS_epoll_wait: c_long = 256; +pub const SYS_remap_file_pages: c_long = 257; +pub const SYS_set_tid_address: c_long = 258; +pub const SYS_timer_create: c_long = 259; +pub const SYS_timer_settime: c_long = 260; +pub const SYS_timer_gettime: c_long = 261; +pub const SYS_timer_getoverrun: c_long = 262; +pub const SYS_timer_delete: c_long = 263; +pub const SYS_clock_settime: c_long = 264; +pub const SYS_clock_gettime: c_long = 265; +pub const SYS_clock_getres: c_long = 266; +pub const SYS_clock_nanosleep: c_long = 267; +pub const SYS_statfs64: c_long = 268; +pub const SYS_fstatfs64: c_long = 269; +pub const SYS_tgkill: c_long = 270; +pub const SYS_utimes: c_long = 271; +pub const SYS_fadvise64_64: c_long = 272; +pub const SYS_vserver: c_long = 273; +pub const SYS_mbind: c_long = 274; +pub const SYS_get_mempolicy: c_long = 275; +pub const SYS_set_mempolicy: c_long = 276; +pub const SYS_mq_open: c_long = 277; +pub const SYS_mq_unlink: c_long = 278; +pub const SYS_mq_timedsend: c_long = 279; +pub const SYS_mq_timedreceive: c_long = 280; +pub const SYS_mq_notify: c_long = 281; +pub const SYS_mq_getsetattr: c_long = 282; +pub const SYS_kexec_load: c_long = 283; +pub const SYS_waitid: c_long = 284; +pub const SYS_add_key: c_long = 286; +pub const SYS_request_key: c_long = 287; +pub const SYS_keyctl: c_long = 288; +pub const SYS_ioprio_set: c_long = 289; +pub const SYS_ioprio_get: c_long = 290; +pub const SYS_inotify_init: c_long = 291; +pub const SYS_inotify_add_watch: c_long = 292; +pub const SYS_inotify_rm_watch: c_long = 293; +pub const SYS_migrate_pages: c_long = 294; +pub const SYS_openat: c_long = 295; +pub const SYS_mkdirat: c_long = 296; +pub const SYS_mknodat: c_long = 297; +pub const SYS_fchownat: c_long = 298; +pub const SYS_futimesat: c_long = 299; +pub const SYS_fstatat64: c_long = 300; +pub const SYS_unlinkat: c_long = 301; +pub const SYS_renameat: c_long = 302; +pub const SYS_linkat: c_long = 303; +pub const SYS_symlinkat: c_long = 304; +pub const SYS_readlinkat: c_long = 305; +pub const SYS_fchmodat: c_long = 306; +pub const SYS_faccessat: c_long = 307; +pub const SYS_pselect6: c_long = 308; +pub const SYS_ppoll: c_long = 309; +pub const SYS_unshare: c_long = 310; +pub const SYS_set_robust_list: c_long = 311; +pub const SYS_get_robust_list: c_long = 312; +pub const SYS_splice: c_long = 313; +pub const SYS_sync_file_range: c_long = 314; +pub const SYS_tee: c_long = 315; +pub const SYS_vmsplice: c_long = 316; +pub const SYS_move_pages: c_long = 317; +pub const SYS_getcpu: c_long = 318; +pub const SYS_epoll_pwait: c_long = 319; +pub const SYS_utimensat: c_long = 320; +pub const SYS_signalfd: c_long = 321; +pub const SYS_timerfd_create: c_long = 322; +pub const SYS_eventfd: c_long = 323; +pub const SYS_fallocate: c_long = 324; +pub const SYS_timerfd_settime: c_long = 325; +pub const SYS_timerfd_gettime: c_long = 326; +pub const SYS_signalfd4: c_long = 327; +pub const SYS_eventfd2: c_long = 328; +pub const SYS_epoll_create1: c_long = 329; +pub const SYS_dup3: c_long = 330; +pub const SYS_pipe2: c_long = 331; +pub const SYS_inotify_init1: c_long = 332; +pub const SYS_preadv: c_long = 333; +pub const SYS_pwritev: c_long = 334; +pub const SYS_rt_tgsigqueueinfo: c_long = 335; +pub const SYS_perf_event_open: c_long = 336; +pub const SYS_recvmmsg: c_long = 337; +pub const SYS_fanotify_init: c_long = 338; +pub const SYS_fanotify_mark: c_long = 339; +pub const SYS_prlimit64: c_long = 340; +pub const SYS_name_to_handle_at: c_long = 341; +pub const SYS_open_by_handle_at: c_long = 342; +pub const SYS_clock_adjtime: c_long = 343; +pub const SYS_syncfs: c_long = 344; +pub const SYS_sendmmsg: c_long = 345; +pub const SYS_setns: c_long = 346; +pub const SYS_process_vm_readv: c_long = 347; +pub const SYS_process_vm_writev: c_long = 348; +pub const SYS_kcmp: c_long = 349; +pub const SYS_finit_module: c_long = 350; +pub const SYS_sched_setattr: c_long = 351; +pub const SYS_sched_getattr: c_long = 352; +pub const SYS_renameat2: c_long = 353; +pub const SYS_seccomp: c_long = 354; +pub const SYS_getrandom: c_long = 355; +pub const SYS_memfd_create: c_long = 356; +pub const SYS_bpf: c_long = 357; +pub const SYS_execveat: c_long = 358; +pub const SYS_socket: c_long = 359; +pub const SYS_socketpair: c_long = 360; +pub const SYS_bind: c_long = 361; +pub const SYS_connect: c_long = 362; +pub const SYS_listen: c_long = 363; +pub const SYS_accept4: c_long = 364; +pub const SYS_getsockopt: c_long = 365; +pub const SYS_setsockopt: c_long = 366; +pub const SYS_getsockname: c_long = 367; +pub const SYS_getpeername: c_long = 368; +pub const SYS_sendto: c_long = 369; +pub const SYS_sendmsg: c_long = 370; +pub const SYS_recvfrom: c_long = 371; +pub const SYS_recvmsg: c_long = 372; +pub const SYS_shutdown: c_long = 373; +pub const SYS_userfaultfd: c_long = 374; +pub const SYS_membarrier: c_long = 375; +pub const SYS_mlock2: c_long = 376; +pub const SYS_copy_file_range: c_long = 377; +pub const SYS_preadv2: c_long = 378; +pub const SYS_pwritev2: c_long = 379; +pub const SYS_pkey_mprotect: c_long = 380; +pub const SYS_pkey_alloc: c_long = 381; +pub const SYS_pkey_free: c_long = 382; +pub const SYS_statx: c_long = 383; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; // offsets in user_regs_structs, from sys/reg.h -pub const EBX: ::c_int = 0; -pub const ECX: ::c_int = 1; -pub const EDX: ::c_int = 2; -pub const ESI: ::c_int = 3; -pub const EDI: ::c_int = 4; -pub const EBP: ::c_int = 5; -pub const EAX: ::c_int = 6; -pub const DS: ::c_int = 7; -pub const ES: ::c_int = 8; -pub const FS: ::c_int = 9; -pub const GS: ::c_int = 10; -pub const ORIG_EAX: ::c_int = 11; -pub const EIP: ::c_int = 12; -pub const CS: ::c_int = 13; -pub const EFL: ::c_int = 14; -pub const UESP: ::c_int = 15; -pub const SS: ::c_int = 16; +pub const EBX: c_int = 0; +pub const ECX: c_int = 1; +pub const EDX: c_int = 2; +pub const ESI: c_int = 3; +pub const EDI: c_int = 4; +pub const EBP: c_int = 5; +pub const EAX: c_int = 6; +pub const DS: c_int = 7; +pub const ES: c_int = 8; +pub const FS: c_int = 9; +pub const GS: c_int = 10; +pub const ORIG_EAX: c_int = 11; +pub const EIP: c_int = 12; +pub const CS: c_int = 13; +pub const EFL: c_int = 14; +pub const UESP: c_int = 15; +pub const SS: c_int = 16; // offsets in mcontext_t.gregs from sys/ucontext.h -pub const REG_GS: ::c_int = 0; -pub const REG_FS: ::c_int = 1; -pub const REG_ES: ::c_int = 2; -pub const REG_DS: ::c_int = 3; -pub const REG_EDI: ::c_int = 4; -pub const REG_ESI: ::c_int = 5; -pub const REG_EBP: ::c_int = 6; -pub const REG_ESP: ::c_int = 7; -pub const REG_EBX: ::c_int = 8; -pub const REG_EDX: ::c_int = 9; -pub const REG_ECX: ::c_int = 10; -pub const REG_EAX: ::c_int = 11; -pub const REG_TRAPNO: ::c_int = 12; -pub const REG_ERR: ::c_int = 13; -pub const REG_EIP: ::c_int = 14; -pub const REG_CS: ::c_int = 15; -pub const REG_EFL: ::c_int = 16; -pub const REG_UESP: ::c_int = 17; -pub const REG_SS: ::c_int = 18; +pub const REG_GS: c_int = 0; +pub const REG_FS: c_int = 1; +pub const REG_ES: c_int = 2; +pub const REG_DS: c_int = 3; +pub const REG_EDI: c_int = 4; +pub const REG_ESI: c_int = 5; +pub const REG_EBP: c_int = 6; +pub const REG_ESP: c_int = 7; +pub const REG_EBX: c_int = 8; +pub const REG_EDX: c_int = 9; +pub const REG_ECX: c_int = 10; +pub const REG_EAX: c_int = 11; +pub const REG_TRAPNO: c_int = 12; +pub const REG_ERR: c_int = 13; +pub const REG_EIP: c_int = 14; +pub const REG_CS: c_int = 15; +pub const REG_EFL: c_int = 16; +pub const REG_UESP: c_int = 17; +pub const REG_SS: c_int = 18; // From NDK's asm/auxvec.h -pub const AT_SYSINFO: ::c_ulong = 32; -pub const AT_SYSINFO_EHDR: ::c_ulong = 33; -pub const AT_VECTOR_SIZE_ARCH: ::c_ulong = 3; +pub const AT_SYSINFO: c_ulong = 32; +pub const AT_SYSINFO_EHDR: c_ulong = 33; +pub const AT_VECTOR_SIZE_ARCH: c_ulong = 3; // socketcall values from linux/net.h (only the needed ones, and not public) -const SYS_ACCEPT4: ::c_int = 18; +const SYS_ACCEPT4: c_int = 18; f! { // Sadly, Android before 5.0 (API level 21), the accept4 syscall is not @@ -618,19 +620,14 @@ f! { // When the workaround is removed, `accept4` can be moved back // to `linux_like/mod.rs` pub fn accept4( - fd: ::c_int, - addr: *mut ::sockaddr, - len: *mut ::socklen_t, - flg: ::c_int, - ) -> ::c_int { + fd: c_int, + addr: *mut crate::sockaddr, + len: *mut crate::socklen_t, + flg: c_int, + ) -> c_int { // Arguments are passed as array of `long int` // (which is big enough on x86 for a pointer). - let mut args = [ - fd as ::c_long, - addr as ::c_long, - len as ::c_long, - flg as ::c_long, - ]; - ::syscall(SYS_socketcall, SYS_ACCEPT4, args[..].as_mut_ptr()) + let mut args = [fd as c_long, addr as c_long, len as c_long, flg as c_long]; + crate::syscall(SYS_socketcall, SYS_ACCEPT4, args[..].as_mut_ptr()) } } diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index 2ea2d2cfcc0ac..aceb52c0722d6 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -1,53 +1,55 @@ +use crate::{c_int, c_long, c_longlong, c_uint, c_ulong, c_ulonglong, off64_t, size_t}; + pub type c_char = u8; pub type wchar_t = u32; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; s! { pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::c_uint, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad1: ::c_ulong, - pub st_size: ::off64_t, - pub st_blksize: ::c_int, - __pad2: ::c_int, - pub st_blocks: ::c_long, - 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, - __unused4: ::c_uint, - __unused5: ::c_uint, + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: c_uint, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad1: c_ulong, + pub st_size: off64_t, + pub st_blksize: c_int, + __pad2: c_int, + pub st_blocks: c_long, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused4: c_uint, + __unused5: c_uint, } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::c_uint, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad1: ::c_ulong, - pub st_size: ::off64_t, - pub st_blksize: ::c_int, - __pad2: ::c_int, - pub st_blocks: ::c_long, - 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, - __unused4: ::c_uint, - __unused5: ::c_uint, + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: c_uint, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad1: c_ulong, + pub st_size: off64_t, + pub st_blksize: c_int, + __pad2: c_int, + pub st_blocks: c_long, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused4: c_uint, + __unused5: c_uint, } pub struct user_regs_struct { @@ -58,25 +60,25 @@ s! { } pub struct ucontext_t { - pub uc_flags: ::c_ulong, + pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, + pub uc_stack: crate::stack_t, + pub uc_sigmask: crate::sigset_t, pub uc_mcontext: mcontext_t, } #[repr(align(16))] pub struct mcontext_t { - pub fault_address: ::c_ulonglong, - pub regs: [::c_ulonglong; 31], - pub sp: ::c_ulonglong, - pub pc: ::c_ulonglong, - pub pstate: ::c_ulonglong, + pub fault_address: c_ulonglong, + pub regs: [c_ulonglong; 31], + pub sp: c_ulonglong, + pub pc: c_ulonglong, + pub pstate: c_ulonglong, __reserved: [u64; 512], } pub struct user_fpsimd_struct { - pub vregs: [::__uint128_t; 32], + pub vregs: [crate::__uint128_t; 32], pub fpsr: u32, pub fpcr: u32, } @@ -90,383 +92,383 @@ s_no_extra_traits! { } } -pub const O_DIRECT: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_LARGEFILE: ::c_int = 0o400000; +pub const O_DIRECT: c_int = 0x10000; +pub const O_DIRECTORY: c_int = 0x4000; +pub const O_NOFOLLOW: c_int = 0x8000; +pub const O_LARGEFILE: c_int = 0o400000; -pub const SIGSTKSZ: ::size_t = 16384; -pub const MINSIGSTKSZ: ::size_t = 5120; +pub const SIGSTKSZ: size_t = 16384; +pub const MINSIGSTKSZ: size_t = 5120; // From NDK's asm/hwcap.h -pub const HWCAP_FP: ::c_ulong = 1 << 0; -pub const HWCAP_ASIMD: ::c_ulong = 1 << 1; -pub const HWCAP_EVTSTRM: ::c_ulong = 1 << 2; -pub const HWCAP_AES: ::c_ulong = 1 << 3; -pub const HWCAP_PMULL: ::c_ulong = 1 << 4; -pub const HWCAP_SHA1: ::c_ulong = 1 << 5; -pub const HWCAP_SHA2: ::c_ulong = 1 << 6; -pub const HWCAP_CRC32: ::c_ulong = 1 << 7; -pub const HWCAP_ATOMICS: ::c_ulong = 1 << 8; -pub const HWCAP_FPHP: ::c_ulong = 1 << 9; -pub const HWCAP_ASIMDHP: ::c_ulong = 1 << 10; -pub const HWCAP_CPUID: ::c_ulong = 1 << 11; -pub const HWCAP_ASIMDRDM: ::c_ulong = 1 << 12; -pub const HWCAP_JSCVT: ::c_ulong = 1 << 13; -pub const HWCAP_FCMA: ::c_ulong = 1 << 14; -pub const HWCAP_LRCPC: ::c_ulong = 1 << 15; -pub const HWCAP_DCPOP: ::c_ulong = 1 << 16; -pub const HWCAP_SHA3: ::c_ulong = 1 << 17; -pub const HWCAP_SM3: ::c_ulong = 1 << 18; -pub const HWCAP_SM4: ::c_ulong = 1 << 19; -pub const HWCAP_ASIMDDP: ::c_ulong = 1 << 20; -pub const HWCAP_SHA512: ::c_ulong = 1 << 21; -pub const HWCAP_SVE: ::c_ulong = 1 << 22; -pub const HWCAP_ASIMDFHM: ::c_ulong = 1 << 23; -pub const HWCAP_DIT: ::c_ulong = 1 << 24; -pub const HWCAP_USCAT: ::c_ulong = 1 << 25; -pub const HWCAP_ILRCPC: ::c_ulong = 1 << 26; -pub const HWCAP_FLAGM: ::c_ulong = 1 << 27; -pub const HWCAP_SSBS: ::c_ulong = 1 << 28; -pub const HWCAP_SB: ::c_ulong = 1 << 29; -pub const HWCAP_PACA: ::c_ulong = 1 << 30; -pub const HWCAP_PACG: ::c_ulong = 1 << 31; -pub const HWCAP2_DCPODP: ::c_ulong = 1 << 0; -pub const HWCAP2_SVE2: ::c_ulong = 1 << 1; -pub const HWCAP2_SVEAES: ::c_ulong = 1 << 2; -pub const HWCAP2_SVEPMULL: ::c_ulong = 1 << 3; -pub const HWCAP2_SVEBITPERM: ::c_ulong = 1 << 4; -pub const HWCAP2_SVESHA3: ::c_ulong = 1 << 5; -pub const HWCAP2_SVESM4: ::c_ulong = 1 << 6; -pub const HWCAP2_FLAGM2: ::c_ulong = 1 << 7; -pub const HWCAP2_FRINT: ::c_ulong = 1 << 8; -pub const HWCAP2_SVEI8MM: ::c_ulong = 1 << 9; -pub const HWCAP2_SVEF32MM: ::c_ulong = 1 << 10; -pub const HWCAP2_SVEF64MM: ::c_ulong = 1 << 11; -pub const HWCAP2_SVEBF16: ::c_ulong = 1 << 12; -pub const HWCAP2_I8MM: ::c_ulong = 1 << 13; -pub const HWCAP2_BF16: ::c_ulong = 1 << 14; -pub const HWCAP2_DGH: ::c_ulong = 1 << 15; -pub const HWCAP2_RNG: ::c_ulong = 1 << 16; -pub const HWCAP2_BTI: ::c_ulong = 1 << 17; -pub const HWCAP2_MTE: ::c_ulong = 1 << 18; -pub const HWCAP2_ECV: ::c_ulong = 1 << 19; -pub const HWCAP2_AFP: ::c_ulong = 1 << 20; -pub const HWCAP2_RPRES: ::c_ulong = 1 << 21; -pub const HWCAP2_MTE3: ::c_ulong = 1 << 22; -pub const HWCAP2_SME: ::c_ulong = 1 << 23; -pub const HWCAP2_SME_I16I64: ::c_ulong = 1 << 24; -pub const HWCAP2_SME_F64F64: ::c_ulong = 1 << 25; -pub const HWCAP2_SME_I8I32: ::c_ulong = 1 << 26; -pub const HWCAP2_SME_F16F32: ::c_ulong = 1 << 27; -pub const HWCAP2_SME_B16F32: ::c_ulong = 1 << 28; -pub const HWCAP2_SME_F32F32: ::c_ulong = 1 << 29; -pub const HWCAP2_SME_FA64: ::c_ulong = 1 << 30; -pub const HWCAP2_WFXT: ::c_ulong = 1 << 31; -pub const HWCAP2_EBF16: ::c_ulong = 1 << 32; -pub const HWCAP2_SVE_EBF16: ::c_ulong = 1 << 33; +pub const HWCAP_FP: c_ulong = 1 << 0; +pub const HWCAP_ASIMD: c_ulong = 1 << 1; +pub const HWCAP_EVTSTRM: c_ulong = 1 << 2; +pub const HWCAP_AES: c_ulong = 1 << 3; +pub const HWCAP_PMULL: c_ulong = 1 << 4; +pub const HWCAP_SHA1: c_ulong = 1 << 5; +pub const HWCAP_SHA2: c_ulong = 1 << 6; +pub const HWCAP_CRC32: c_ulong = 1 << 7; +pub const HWCAP_ATOMICS: c_ulong = 1 << 8; +pub const HWCAP_FPHP: c_ulong = 1 << 9; +pub const HWCAP_ASIMDHP: c_ulong = 1 << 10; +pub const HWCAP_CPUID: c_ulong = 1 << 11; +pub const HWCAP_ASIMDRDM: c_ulong = 1 << 12; +pub const HWCAP_JSCVT: c_ulong = 1 << 13; +pub const HWCAP_FCMA: c_ulong = 1 << 14; +pub const HWCAP_LRCPC: c_ulong = 1 << 15; +pub const HWCAP_DCPOP: c_ulong = 1 << 16; +pub const HWCAP_SHA3: c_ulong = 1 << 17; +pub const HWCAP_SM3: c_ulong = 1 << 18; +pub const HWCAP_SM4: c_ulong = 1 << 19; +pub const HWCAP_ASIMDDP: c_ulong = 1 << 20; +pub const HWCAP_SHA512: c_ulong = 1 << 21; +pub const HWCAP_SVE: c_ulong = 1 << 22; +pub const HWCAP_ASIMDFHM: c_ulong = 1 << 23; +pub const HWCAP_DIT: c_ulong = 1 << 24; +pub const HWCAP_USCAT: c_ulong = 1 << 25; +pub const HWCAP_ILRCPC: c_ulong = 1 << 26; +pub const HWCAP_FLAGM: c_ulong = 1 << 27; +pub const HWCAP_SSBS: c_ulong = 1 << 28; +pub const HWCAP_SB: c_ulong = 1 << 29; +pub const HWCAP_PACA: c_ulong = 1 << 30; +pub const HWCAP_PACG: c_ulong = 1 << 31; +pub const HWCAP2_DCPODP: c_ulong = 1 << 0; +pub const HWCAP2_SVE2: c_ulong = 1 << 1; +pub const HWCAP2_SVEAES: c_ulong = 1 << 2; +pub const HWCAP2_SVEPMULL: c_ulong = 1 << 3; +pub const HWCAP2_SVEBITPERM: c_ulong = 1 << 4; +pub const HWCAP2_SVESHA3: c_ulong = 1 << 5; +pub const HWCAP2_SVESM4: c_ulong = 1 << 6; +pub const HWCAP2_FLAGM2: c_ulong = 1 << 7; +pub const HWCAP2_FRINT: c_ulong = 1 << 8; +pub const HWCAP2_SVEI8MM: c_ulong = 1 << 9; +pub const HWCAP2_SVEF32MM: c_ulong = 1 << 10; +pub const HWCAP2_SVEF64MM: c_ulong = 1 << 11; +pub const HWCAP2_SVEBF16: c_ulong = 1 << 12; +pub const HWCAP2_I8MM: c_ulong = 1 << 13; +pub const HWCAP2_BF16: c_ulong = 1 << 14; +pub const HWCAP2_DGH: c_ulong = 1 << 15; +pub const HWCAP2_RNG: c_ulong = 1 << 16; +pub const HWCAP2_BTI: c_ulong = 1 << 17; +pub const HWCAP2_MTE: c_ulong = 1 << 18; +pub const HWCAP2_ECV: c_ulong = 1 << 19; +pub const HWCAP2_AFP: c_ulong = 1 << 20; +pub const HWCAP2_RPRES: c_ulong = 1 << 21; +pub const HWCAP2_MTE3: c_ulong = 1 << 22; +pub const HWCAP2_SME: c_ulong = 1 << 23; +pub const HWCAP2_SME_I16I64: c_ulong = 1 << 24; +pub const HWCAP2_SME_F64F64: c_ulong = 1 << 25; +pub const HWCAP2_SME_I8I32: c_ulong = 1 << 26; +pub const HWCAP2_SME_F16F32: c_ulong = 1 << 27; +pub const HWCAP2_SME_B16F32: c_ulong = 1 << 28; +pub const HWCAP2_SME_F32F32: c_ulong = 1 << 29; +pub const HWCAP2_SME_FA64: c_ulong = 1 << 30; +pub const HWCAP2_WFXT: c_ulong = 1 << 31; +pub const HWCAP2_EBF16: c_ulong = 1 << 32; +pub const HWCAP2_SVE_EBF16: c_ulong = 1 << 33; -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_dup: ::c_long = 23; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_flock: ::c_long = 32; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_renameat: ::c_long = 38; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_mount: ::c_long = 40; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_openat: ::c_long = 56; -pub const SYS_close: ::c_long = 57; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_lseek: ::c_long = 62; -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_sync: ::c_long = 81; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_acct: ::c_long = 89; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_personality: ::c_long = 92; -pub const SYS_exit: ::c_long = 93; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_futex: ::c_long = 98; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_kill: ::c_long = 129; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_times: ::c_long = 153; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_uname: ::c_long = 160; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_setrlimit: ::c_long = 164; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_umask: ::c_long = 166; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_semop: ::c_long = 193; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_socket: ::c_long = 198; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_accept: ::c_long = 202; -pub const SYS_connect: ::c_long = 203; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_brk: ::c_long = 214; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_mmap: ::c_long = 222; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_arch_specific_syscall: ::c_long = 244; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_setns: ::c_long = 268; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; -pub const SYS_syscalls: ::c_long = 451; +pub const SYS_io_setup: c_long = 0; +pub const SYS_io_destroy: c_long = 1; +pub const SYS_io_submit: c_long = 2; +pub const SYS_io_cancel: c_long = 3; +pub const SYS_io_getevents: c_long = 4; +pub const SYS_setxattr: c_long = 5; +pub const SYS_lsetxattr: c_long = 6; +pub const SYS_fsetxattr: c_long = 7; +pub const SYS_getxattr: c_long = 8; +pub const SYS_lgetxattr: c_long = 9; +pub const SYS_fgetxattr: c_long = 10; +pub const SYS_listxattr: c_long = 11; +pub const SYS_llistxattr: c_long = 12; +pub const SYS_flistxattr: c_long = 13; +pub const SYS_removexattr: c_long = 14; +pub const SYS_lremovexattr: c_long = 15; +pub const SYS_fremovexattr: c_long = 16; +pub const SYS_getcwd: c_long = 17; +pub const SYS_lookup_dcookie: c_long = 18; +pub const SYS_eventfd2: c_long = 19; +pub const SYS_epoll_create1: c_long = 20; +pub const SYS_epoll_ctl: c_long = 21; +pub const SYS_epoll_pwait: c_long = 22; +pub const SYS_dup: c_long = 23; +pub const SYS_dup3: c_long = 24; +pub const SYS_fcntl: c_long = 25; +pub const SYS_inotify_init1: c_long = 26; +pub const SYS_inotify_add_watch: c_long = 27; +pub const SYS_inotify_rm_watch: c_long = 28; +pub const SYS_ioctl: c_long = 29; +pub const SYS_ioprio_set: c_long = 30; +pub const SYS_ioprio_get: c_long = 31; +pub const SYS_flock: c_long = 32; +pub const SYS_mknodat: c_long = 33; +pub const SYS_mkdirat: c_long = 34; +pub const SYS_unlinkat: c_long = 35; +pub const SYS_symlinkat: c_long = 36; +pub const SYS_linkat: c_long = 37; +pub const SYS_renameat: c_long = 38; +pub const SYS_umount2: c_long = 39; +pub const SYS_mount: c_long = 40; +pub const SYS_pivot_root: c_long = 41; +pub const SYS_nfsservctl: c_long = 42; +pub const SYS_fallocate: c_long = 47; +pub const SYS_faccessat: c_long = 48; +pub const SYS_chdir: c_long = 49; +pub const SYS_fchdir: c_long = 50; +pub const SYS_chroot: c_long = 51; +pub const SYS_fchmod: c_long = 52; +pub const SYS_fchmodat: c_long = 53; +pub const SYS_fchownat: c_long = 54; +pub const SYS_fchown: c_long = 55; +pub const SYS_openat: c_long = 56; +pub const SYS_close: c_long = 57; +pub const SYS_vhangup: c_long = 58; +pub const SYS_pipe2: c_long = 59; +pub const SYS_quotactl: c_long = 60; +pub const SYS_getdents64: c_long = 61; +pub const SYS_lseek: c_long = 62; +pub const SYS_read: c_long = 63; +pub const SYS_write: c_long = 64; +pub const SYS_readv: c_long = 65; +pub const SYS_writev: c_long = 66; +pub const SYS_pread64: c_long = 67; +pub const SYS_pwrite64: c_long = 68; +pub const SYS_preadv: c_long = 69; +pub const SYS_pwritev: c_long = 70; +pub const SYS_pselect6: c_long = 72; +pub const SYS_ppoll: c_long = 73; +pub const SYS_signalfd4: c_long = 74; +pub const SYS_vmsplice: c_long = 75; +pub const SYS_splice: c_long = 76; +pub const SYS_tee: c_long = 77; +pub const SYS_readlinkat: c_long = 78; +pub const SYS_sync: c_long = 81; +pub const SYS_fsync: c_long = 82; +pub const SYS_fdatasync: c_long = 83; +pub const SYS_sync_file_range: c_long = 84; +pub const SYS_timerfd_create: c_long = 85; +pub const SYS_timerfd_settime: c_long = 86; +pub const SYS_timerfd_gettime: c_long = 87; +pub const SYS_utimensat: c_long = 88; +pub const SYS_acct: c_long = 89; +pub const SYS_capget: c_long = 90; +pub const SYS_capset: c_long = 91; +pub const SYS_personality: c_long = 92; +pub const SYS_exit: c_long = 93; +pub const SYS_exit_group: c_long = 94; +pub const SYS_waitid: c_long = 95; +pub const SYS_set_tid_address: c_long = 96; +pub const SYS_unshare: c_long = 97; +pub const SYS_futex: c_long = 98; +pub const SYS_set_robust_list: c_long = 99; +pub const SYS_get_robust_list: c_long = 100; +pub const SYS_nanosleep: c_long = 101; +pub const SYS_getitimer: c_long = 102; +pub const SYS_setitimer: c_long = 103; +pub const SYS_kexec_load: c_long = 104; +pub const SYS_init_module: c_long = 105; +pub const SYS_delete_module: c_long = 106; +pub const SYS_timer_create: c_long = 107; +pub const SYS_timer_gettime: c_long = 108; +pub const SYS_timer_getoverrun: c_long = 109; +pub const SYS_timer_settime: c_long = 110; +pub const SYS_timer_delete: c_long = 111; +pub const SYS_clock_settime: c_long = 112; +pub const SYS_clock_gettime: c_long = 113; +pub const SYS_clock_getres: c_long = 114; +pub const SYS_clock_nanosleep: c_long = 115; +pub const SYS_syslog: c_long = 116; +pub const SYS_ptrace: c_long = 117; +pub const SYS_sched_setparam: c_long = 118; +pub const SYS_sched_setscheduler: c_long = 119; +pub const SYS_sched_getscheduler: c_long = 120; +pub const SYS_sched_getparam: c_long = 121; +pub const SYS_sched_setaffinity: c_long = 122; +pub const SYS_sched_getaffinity: c_long = 123; +pub const SYS_sched_yield: c_long = 124; +pub const SYS_sched_get_priority_max: c_long = 125; +pub const SYS_sched_get_priority_min: c_long = 126; +pub const SYS_sched_rr_get_interval: c_long = 127; +pub const SYS_restart_syscall: c_long = 128; +pub const SYS_kill: c_long = 129; +pub const SYS_tkill: c_long = 130; +pub const SYS_tgkill: c_long = 131; +pub const SYS_sigaltstack: c_long = 132; +pub const SYS_rt_sigsuspend: c_long = 133; +pub const SYS_rt_sigaction: c_long = 134; +pub const SYS_rt_sigprocmask: c_long = 135; +pub const SYS_rt_sigpending: c_long = 136; +pub const SYS_rt_sigtimedwait: c_long = 137; +pub const SYS_rt_sigqueueinfo: c_long = 138; +pub const SYS_rt_sigreturn: c_long = 139; +pub const SYS_setpriority: c_long = 140; +pub const SYS_getpriority: c_long = 141; +pub const SYS_reboot: c_long = 142; +pub const SYS_setregid: c_long = 143; +pub const SYS_setgid: c_long = 144; +pub const SYS_setreuid: c_long = 145; +pub const SYS_setuid: c_long = 146; +pub const SYS_setresuid: c_long = 147; +pub const SYS_getresuid: c_long = 148; +pub const SYS_setresgid: c_long = 149; +pub const SYS_getresgid: c_long = 150; +pub const SYS_setfsuid: c_long = 151; +pub const SYS_setfsgid: c_long = 152; +pub const SYS_times: c_long = 153; +pub const SYS_setpgid: c_long = 154; +pub const SYS_getpgid: c_long = 155; +pub const SYS_getsid: c_long = 156; +pub const SYS_setsid: c_long = 157; +pub const SYS_getgroups: c_long = 158; +pub const SYS_setgroups: c_long = 159; +pub const SYS_uname: c_long = 160; +pub const SYS_sethostname: c_long = 161; +pub const SYS_setdomainname: c_long = 162; +pub const SYS_getrlimit: c_long = 163; +pub const SYS_setrlimit: c_long = 164; +pub const SYS_getrusage: c_long = 165; +pub const SYS_umask: c_long = 166; +pub const SYS_prctl: c_long = 167; +pub const SYS_getcpu: c_long = 168; +pub const SYS_gettimeofday: c_long = 169; +pub const SYS_settimeofday: c_long = 170; +pub const SYS_adjtimex: c_long = 171; +pub const SYS_getpid: c_long = 172; +pub const SYS_getppid: c_long = 173; +pub const SYS_getuid: c_long = 174; +pub const SYS_geteuid: c_long = 175; +pub const SYS_getgid: c_long = 176; +pub const SYS_getegid: c_long = 177; +pub const SYS_gettid: c_long = 178; +pub const SYS_sysinfo: c_long = 179; +pub const SYS_mq_open: c_long = 180; +pub const SYS_mq_unlink: c_long = 181; +pub const SYS_mq_timedsend: c_long = 182; +pub const SYS_mq_timedreceive: c_long = 183; +pub const SYS_mq_notify: c_long = 184; +pub const SYS_mq_getsetattr: c_long = 185; +pub const SYS_msgget: c_long = 186; +pub const SYS_msgctl: c_long = 187; +pub const SYS_msgrcv: c_long = 188; +pub const SYS_msgsnd: c_long = 189; +pub const SYS_semget: c_long = 190; +pub const SYS_semctl: c_long = 191; +pub const SYS_semtimedop: c_long = 192; +pub const SYS_semop: c_long = 193; +pub const SYS_shmget: c_long = 194; +pub const SYS_shmctl: c_long = 195; +pub const SYS_shmat: c_long = 196; +pub const SYS_shmdt: c_long = 197; +pub const SYS_socket: c_long = 198; +pub const SYS_socketpair: c_long = 199; +pub const SYS_bind: c_long = 200; +pub const SYS_listen: c_long = 201; +pub const SYS_accept: c_long = 202; +pub const SYS_connect: c_long = 203; +pub const SYS_getsockname: c_long = 204; +pub const SYS_getpeername: c_long = 205; +pub const SYS_sendto: c_long = 206; +pub const SYS_recvfrom: c_long = 207; +pub const SYS_setsockopt: c_long = 208; +pub const SYS_getsockopt: c_long = 209; +pub const SYS_shutdown: c_long = 210; +pub const SYS_sendmsg: c_long = 211; +pub const SYS_recvmsg: c_long = 212; +pub const SYS_readahead: c_long = 213; +pub const SYS_brk: c_long = 214; +pub const SYS_munmap: c_long = 215; +pub const SYS_mremap: c_long = 216; +pub const SYS_add_key: c_long = 217; +pub const SYS_request_key: c_long = 218; +pub const SYS_keyctl: c_long = 219; +pub const SYS_clone: c_long = 220; +pub const SYS_execve: c_long = 221; +pub const SYS_mmap: c_long = 222; +pub const SYS_swapon: c_long = 224; +pub const SYS_swapoff: c_long = 225; +pub const SYS_mprotect: c_long = 226; +pub const SYS_msync: c_long = 227; +pub const SYS_mlock: c_long = 228; +pub const SYS_munlock: c_long = 229; +pub const SYS_mlockall: c_long = 230; +pub const SYS_munlockall: c_long = 231; +pub const SYS_mincore: c_long = 232; +pub const SYS_madvise: c_long = 233; +pub const SYS_remap_file_pages: c_long = 234; +pub const SYS_mbind: c_long = 235; +pub const SYS_get_mempolicy: c_long = 236; +pub const SYS_set_mempolicy: c_long = 237; +pub const SYS_migrate_pages: c_long = 238; +pub const SYS_move_pages: c_long = 239; +pub const SYS_rt_tgsigqueueinfo: c_long = 240; +pub const SYS_perf_event_open: c_long = 241; +pub const SYS_accept4: c_long = 242; +pub const SYS_recvmmsg: c_long = 243; +pub const SYS_arch_specific_syscall: c_long = 244; +pub const SYS_wait4: c_long = 260; +pub const SYS_prlimit64: c_long = 261; +pub const SYS_fanotify_init: c_long = 262; +pub const SYS_fanotify_mark: c_long = 263; +pub const SYS_name_to_handle_at: c_long = 264; +pub const SYS_open_by_handle_at: c_long = 265; +pub const SYS_clock_adjtime: c_long = 266; +pub const SYS_syncfs: c_long = 267; +pub const SYS_setns: c_long = 268; +pub const SYS_sendmmsg: c_long = 269; +pub const SYS_process_vm_readv: c_long = 270; +pub const SYS_process_vm_writev: c_long = 271; +pub const SYS_kcmp: c_long = 272; +pub const SYS_finit_module: c_long = 273; +pub const SYS_sched_setattr: c_long = 274; +pub const SYS_sched_getattr: c_long = 275; +pub const SYS_renameat2: c_long = 276; +pub const SYS_seccomp: c_long = 277; +pub const SYS_getrandom: c_long = 278; +pub const SYS_memfd_create: c_long = 279; +pub const SYS_bpf: c_long = 280; +pub const SYS_execveat: c_long = 281; +pub const SYS_userfaultfd: c_long = 282; +pub const SYS_membarrier: c_long = 283; +pub const SYS_mlock2: c_long = 284; +pub const SYS_copy_file_range: c_long = 285; +pub const SYS_preadv2: c_long = 286; +pub const SYS_pwritev2: c_long = 287; +pub const SYS_pkey_mprotect: c_long = 288; +pub const SYS_pkey_alloc: c_long = 289; +pub const SYS_pkey_free: c_long = 290; +pub const SYS_statx: c_long = 291; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; +pub const SYS_syscalls: c_long = 451; -pub const PROT_BTI: ::c_int = 0x10; -pub const PROT_MTE: ::c_int = 0x20; +pub const PROT_BTI: c_int = 0x10; +pub const PROT_MTE: c_int = 0x20; // From NDK's asm/auxvec.h -pub const AT_SYSINFO_EHDR: ::c_ulong = 33; -pub const AT_VECTOR_SIZE_ARCH: ::c_ulong = 2; +pub const AT_SYSINFO_EHDR: c_ulong = 33; +pub const AT_VECTOR_SIZE_ARCH: c_ulong = 2; diff --git a/src/unix/linux_like/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs index 88db6a3fa4246..73390421602d1 100644 --- a/src/unix/linux_like/android/b64/mod.rs +++ b/src/unix/linux_like/android/b64/mod.rs @@ -1,3 +1,5 @@ +use crate::{c_int, c_uint, c_ulonglong, c_ushort, c_void, size_t}; + // The following definitions are correct for aarch64 and x86_64, // but may be wrong for mips64 @@ -9,39 +11,39 @@ pub type socklen_t = u32; s! { pub struct sigset_t { - __val: [::c_ulong; 1], + __val: [c_ulong; 1], } pub struct sigaction { - pub sa_flags: ::c_int, - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_restorer: ::Option, + pub sa_flags: c_int, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, + pub sa_restorer: Option, } pub struct rlimit64 { - pub rlim_cur: ::c_ulonglong, - pub rlim_max: ::c_ulonglong, + pub rlim_cur: c_ulonglong, + pub rlim_max: c_ulonglong, } pub struct pthread_attr_t { pub flags: u32, - pub stack_base: *mut ::c_void, - pub stack_size: ::size_t, - pub guard_size: ::size_t, + pub stack_base: *mut c_void, + pub stack_size: size_t, + pub guard_size: size_t, pub sched_policy: i32, pub sched_priority: i32, - __reserved: [::c_char; 16], + __reserved: [c_char; 16], } pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, + pub pw_name: *mut c_char, + pub pw_passwd: *mut c_char, + pub pw_uid: crate::uid_t, + pub pw_gid: crate::gid_t, + pub pw_gecos: *mut c_char, + pub pw_dir: *mut c_char, + pub pw_shell: *mut c_char, } pub struct statfs { @@ -52,7 +54,7 @@ s! { pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, - pub f_fsid: ::__fsid_t, + pub f_fsid: crate::__fsid_t, pub f_namelen: u64, pub f_frsize: u64, pub f_flags: u64, @@ -60,20 +62,20 @@ s! { } pub struct sysinfo { - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 0], + pub uptime: c_long, + pub loads: [c_ulong; 3], + pub totalram: c_ulong, + pub freeram: c_ulong, + pub sharedram: c_ulong, + pub bufferram: c_ulong, + pub totalswap: c_ulong, + pub freeswap: c_ulong, + pub procs: c_ushort, + pub pad: c_ushort, + pub totalhigh: c_ulong, + pub freehigh: c_ulong, + pub mem_unit: c_uint, + pub _f: [c_char; 0], } pub struct statfs64 { @@ -84,7 +86,7 @@ s! { pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, - pub f_fsid: ::__fsid_t, + pub f_fsid: crate::__fsid_t, pub f_namelen: u64, pub f_frsize: u64, pub f_flags: u64, @@ -92,18 +94,18 @@ s! { } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct pthread_barrier_t { @@ -117,26 +119,26 @@ s! { s_no_extra_traits! { pub struct pthread_mutex_t { - value: ::c_int, - __reserved: [::c_char; 36], + value: c_int, + __reserved: [c_char; 36], } pub struct pthread_cond_t { - value: ::c_int, - __reserved: [::c_char; 44], + value: c_int, + __reserved: [c_char; 44], } pub struct pthread_rwlock_t { - numLocks: ::c_int, - writerThreadId: ::c_int, - pendingReaders: ::c_int, - pendingWriters: ::c_int, + numLocks: c_int, + writerThreadId: c_int, + pendingReaders: c_int, + pendingWriters: c_int, attr: i32, - __reserved: [::c_char; 36], + __reserved: [c_char; 36], } pub struct sigset64_t { - __bits: [::c_ulong; 1], + __bits: [c_ulong; 1], } } @@ -155,8 +157,8 @@ cfg_if! { impl Eq for pthread_mutex_t {} - impl ::fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_mutex_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_mutex_t") .field("value", &self.value) // FIXME: .field("__reserved", &self.__reserved) @@ -164,8 +166,8 @@ cfg_if! { } } - impl ::hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_mutex_t { + fn hash(&self, state: &mut H) { self.value.hash(state); self.__reserved.hash(state); } @@ -184,8 +186,8 @@ cfg_if! { impl Eq for pthread_cond_t {} - impl ::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_cond_t") .field("value", &self.value) // FIXME: .field("__reserved", &self.__reserved) @@ -193,8 +195,8 @@ cfg_if! { } } - impl ::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { self.value.hash(state); self.__reserved.hash(state); } @@ -217,8 +219,8 @@ cfg_if! { impl Eq for pthread_rwlock_t {} - impl ::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_rwlock_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_rwlock_t") .field("numLocks", &self.numLocks) .field("writerThreadId", &self.writerThreadId) @@ -230,8 +232,8 @@ cfg_if! { } } - impl ::hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_rwlock_t { + fn hash(&self, state: &mut H) { self.numLocks.hash(state); self.writerThreadId.hash(state); self.pendingReaders.hash(state); @@ -241,8 +243,8 @@ cfg_if! { } } - impl ::fmt::Debug for sigset64_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sigset64_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sigset64_t") .field("__bits", &self.__bits) .finish() @@ -252,17 +254,17 @@ cfg_if! { } // These constants must be of the same type of sigaction.sa_flags -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; - -pub const RTLD_GLOBAL: ::c_int = 0x00100; -pub const RTLD_NOW: ::c_int = 2; -pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; +pub const SA_NOCLDSTOP: c_int = 0x00000001; +pub const SA_NOCLDWAIT: c_int = 0x00000002; +pub const SA_NODEFER: c_int = 0x40000000; +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_RESETHAND: c_int = 0x80000000; +pub const SA_RESTART: c_int = 0x10000000; +pub const SA_SIGINFO: c_int = 0x00000004; + +pub const RTLD_GLOBAL: c_int = 0x00100; +pub const RTLD_NOW: c_int = 2; +pub const RTLD_DEFAULT: *mut c_void = 0i64 as *mut c_void; pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { value: 0, @@ -280,9 +282,9 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { attr: 0, __reserved: [0; 36], }; -pub const PTHREAD_STACK_MIN: ::size_t = 4096 * 4; -pub const CPU_SETSIZE: ::size_t = 1024; -pub const __CPU_BITS: ::size_t = 64; +pub const PTHREAD_STACK_MIN: size_t = 4096 * 4; +pub const CPU_SETSIZE: size_t = 1024; +pub const __CPU_BITS: size_t = 64; pub const UT_LINESIZE: usize = 32; pub const UT_NAMESIZE: usize = 32; @@ -295,22 +297,22 @@ f! { // Android is bumped. When the workaround is removed, `accept4` can be // moved back to `linux_like/mod.rs` pub fn accept4( - fd: ::c_int, - addr: *mut ::sockaddr, - len: *mut ::socklen_t, - flg: ::c_int, - ) -> ::c_int { - ::syscall(SYS_accept4, fd, addr, len, flg) as ::c_int + fd: c_int, + addr: *mut crate::sockaddr, + len: *mut crate::socklen_t, + flg: c_int, + ) -> c_int { + crate::syscall(SYS_accept4, fd, addr, len, flg) as c_int } } extern "C" { - pub fn getauxval(type_: ::c_ulong) -> ::c_ulong; + pub fn getauxval(type_: c_ulong) -> c_ulong; pub fn __system_property_wait( - pi: *const ::prop_info, + pi: *const crate::prop_info, __old_serial: u32, __new_serial_ptr: *mut u32, - __relative_timeout: *const ::timespec, + __relative_timeout: *const crate::timespec, ) -> bool; } diff --git a/src/unix/linux_like/android/b64/riscv64/mod.rs b/src/unix/linux_like/android/b64/riscv64/mod.rs index cd7175c1b99d2..8fff9a6793335 100644 --- a/src/unix/linux_like/android/b64/riscv64/mod.rs +++ b/src/unix/linux_like/android/b64/riscv64/mod.rs @@ -1,54 +1,56 @@ +use crate::{c_int, c_long, c_longlong, c_uint, c_ulong, c_ulonglong, off64_t, size_t}; + pub type c_char = i8; pub type wchar_t = u32; pub type greg_t = i64; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; s! { pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::c_uint, - pub st_nlink: ::c_uint, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad1: ::c_ulong, - pub st_size: ::off64_t, - pub st_blksize: ::c_int, - __pad2: ::c_int, - pub st_blocks: ::c_long, - 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, - __unused4: ::c_uint, - __unused5: ::c_uint, + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: c_uint, + pub st_nlink: c_uint, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad1: c_ulong, + pub st_size: off64_t, + pub st_blksize: c_int, + __pad2: c_int, + pub st_blocks: c_long, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused4: c_uint, + __unused5: c_uint, } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::c_uint, - pub st_nlink: ::c_uint, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad1: ::c_ulong, - pub st_size: ::off64_t, - pub st_blksize: ::c_int, - __pad2: ::c_int, - pub st_blocks: ::c_long, - 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, - __unused4: ::c_uint, - __unused5: ::c_uint, + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: c_uint, + pub st_nlink: c_uint, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad1: c_ulong, + pub st_size: off64_t, + pub st_blksize: c_int, + __pad2: c_int, + pub st_blocks: c_long, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused4: c_uint, + __unused5: c_uint, } } @@ -60,324 +62,324 @@ s_no_extra_traits! { } } -pub const O_DIRECT: ::c_int = 0x40000; -pub const O_DIRECTORY: ::c_int = 0x200000; -pub const O_NOFOLLOW: ::c_int = 0x400000; -pub const O_LARGEFILE: ::c_int = 0x100000; +pub const O_DIRECT: c_int = 0x40000; +pub const O_DIRECTORY: c_int = 0x200000; +pub const O_NOFOLLOW: c_int = 0x400000; +pub const O_LARGEFILE: c_int = 0x100000; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; // From NDK's asm/hwcap.h -pub const COMPAT_HWCAP_ISA_I: ::c_ulong = 1 << (b'I' - b'A'); -pub const COMPAT_HWCAP_ISA_M: ::c_ulong = 1 << (b'M' - b'A'); -pub const COMPAT_HWCAP_ISA_A: ::c_ulong = 1 << (b'A' - b'A'); -pub const COMPAT_HWCAP_ISA_F: ::c_ulong = 1 << (b'F' - b'A'); -pub const COMPAT_HWCAP_ISA_D: ::c_ulong = 1 << (b'D' - b'A'); -pub const COMPAT_HWCAP_ISA_C: ::c_ulong = 1 << (b'C' - b'A'); +pub const COMPAT_HWCAP_ISA_I: c_ulong = 1 << (b'I' - b'A'); +pub const COMPAT_HWCAP_ISA_M: c_ulong = 1 << (b'M' - b'A'); +pub const COMPAT_HWCAP_ISA_A: c_ulong = 1 << (b'A' - b'A'); +pub const COMPAT_HWCAP_ISA_F: c_ulong = 1 << (b'F' - b'A'); +pub const COMPAT_HWCAP_ISA_D: c_ulong = 1 << (b'D' - b'A'); +pub const COMPAT_HWCAP_ISA_C: c_ulong = 1 << (b'C' - b'A'); -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_dup: ::c_long = 23; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_flock: ::c_long = 32; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_renameat: ::c_long = 38; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_mount: ::c_long = 40; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_openat: ::c_long = 56; -pub const SYS_close: ::c_long = 57; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_sync: ::c_long = 81; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_acct: ::c_long = 89; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_personality: ::c_long = 92; -pub const SYS_exit: ::c_long = 93; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_futex: ::c_long = 98; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_kill: ::c_long = 129; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_times: ::c_long = 153; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_uname: ::c_long = 160; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_setrlimit: ::c_long = 164; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_umask: ::c_long = 166; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_semop: ::c_long = 193; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_socket: ::c_long = 198; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_accept: ::c_long = 202; -pub const SYS_connect: ::c_long = 203; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_brk: ::c_long = 214; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_arch_specific_syscall: ::c_long = 244; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_setns: ::c_long = 268; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_io_setup: c_long = 0; +pub const SYS_io_destroy: c_long = 1; +pub const SYS_io_submit: c_long = 2; +pub const SYS_io_cancel: c_long = 3; +pub const SYS_io_getevents: c_long = 4; +pub const SYS_setxattr: c_long = 5; +pub const SYS_lsetxattr: c_long = 6; +pub const SYS_fsetxattr: c_long = 7; +pub const SYS_getxattr: c_long = 8; +pub const SYS_lgetxattr: c_long = 9; +pub const SYS_fgetxattr: c_long = 10; +pub const SYS_listxattr: c_long = 11; +pub const SYS_llistxattr: c_long = 12; +pub const SYS_flistxattr: c_long = 13; +pub const SYS_removexattr: c_long = 14; +pub const SYS_lremovexattr: c_long = 15; +pub const SYS_fremovexattr: c_long = 16; +pub const SYS_getcwd: c_long = 17; +pub const SYS_lookup_dcookie: c_long = 18; +pub const SYS_eventfd2: c_long = 19; +pub const SYS_epoll_create1: c_long = 20; +pub const SYS_epoll_ctl: c_long = 21; +pub const SYS_epoll_pwait: c_long = 22; +pub const SYS_dup: c_long = 23; +pub const SYS_dup3: c_long = 24; +pub const SYS_inotify_init1: c_long = 26; +pub const SYS_inotify_add_watch: c_long = 27; +pub const SYS_inotify_rm_watch: c_long = 28; +pub const SYS_ioctl: c_long = 29; +pub const SYS_ioprio_set: c_long = 30; +pub const SYS_ioprio_get: c_long = 31; +pub const SYS_flock: c_long = 32; +pub const SYS_mknodat: c_long = 33; +pub const SYS_mkdirat: c_long = 34; +pub const SYS_unlinkat: c_long = 35; +pub const SYS_symlinkat: c_long = 36; +pub const SYS_linkat: c_long = 37; +pub const SYS_renameat: c_long = 38; +pub const SYS_umount2: c_long = 39; +pub const SYS_mount: c_long = 40; +pub const SYS_pivot_root: c_long = 41; +pub const SYS_nfsservctl: c_long = 42; +pub const SYS_fallocate: c_long = 47; +pub const SYS_faccessat: c_long = 48; +pub const SYS_chdir: c_long = 49; +pub const SYS_fchdir: c_long = 50; +pub const SYS_chroot: c_long = 51; +pub const SYS_fchmod: c_long = 52; +pub const SYS_fchmodat: c_long = 53; +pub const SYS_fchownat: c_long = 54; +pub const SYS_fchown: c_long = 55; +pub const SYS_openat: c_long = 56; +pub const SYS_close: c_long = 57; +pub const SYS_vhangup: c_long = 58; +pub const SYS_pipe2: c_long = 59; +pub const SYS_quotactl: c_long = 60; +pub const SYS_getdents64: c_long = 61; +pub const SYS_read: c_long = 63; +pub const SYS_write: c_long = 64; +pub const SYS_readv: c_long = 65; +pub const SYS_writev: c_long = 66; +pub const SYS_pread64: c_long = 67; +pub const SYS_pwrite64: c_long = 68; +pub const SYS_preadv: c_long = 69; +pub const SYS_pwritev: c_long = 70; +pub const SYS_pselect6: c_long = 72; +pub const SYS_ppoll: c_long = 73; +pub const SYS_signalfd4: c_long = 74; +pub const SYS_vmsplice: c_long = 75; +pub const SYS_splice: c_long = 76; +pub const SYS_tee: c_long = 77; +pub const SYS_readlinkat: c_long = 78; +pub const SYS_sync: c_long = 81; +pub const SYS_fsync: c_long = 82; +pub const SYS_fdatasync: c_long = 83; +pub const SYS_sync_file_range: c_long = 84; +pub const SYS_timerfd_create: c_long = 85; +pub const SYS_timerfd_settime: c_long = 86; +pub const SYS_timerfd_gettime: c_long = 87; +pub const SYS_utimensat: c_long = 88; +pub const SYS_acct: c_long = 89; +pub const SYS_capget: c_long = 90; +pub const SYS_capset: c_long = 91; +pub const SYS_personality: c_long = 92; +pub const SYS_exit: c_long = 93; +pub const SYS_exit_group: c_long = 94; +pub const SYS_waitid: c_long = 95; +pub const SYS_set_tid_address: c_long = 96; +pub const SYS_unshare: c_long = 97; +pub const SYS_futex: c_long = 98; +pub const SYS_set_robust_list: c_long = 99; +pub const SYS_get_robust_list: c_long = 100; +pub const SYS_nanosleep: c_long = 101; +pub const SYS_getitimer: c_long = 102; +pub const SYS_setitimer: c_long = 103; +pub const SYS_kexec_load: c_long = 104; +pub const SYS_init_module: c_long = 105; +pub const SYS_delete_module: c_long = 106; +pub const SYS_timer_create: c_long = 107; +pub const SYS_timer_gettime: c_long = 108; +pub const SYS_timer_getoverrun: c_long = 109; +pub const SYS_timer_settime: c_long = 110; +pub const SYS_timer_delete: c_long = 111; +pub const SYS_clock_settime: c_long = 112; +pub const SYS_clock_gettime: c_long = 113; +pub const SYS_clock_getres: c_long = 114; +pub const SYS_clock_nanosleep: c_long = 115; +pub const SYS_syslog: c_long = 116; +pub const SYS_ptrace: c_long = 117; +pub const SYS_sched_setparam: c_long = 118; +pub const SYS_sched_setscheduler: c_long = 119; +pub const SYS_sched_getscheduler: c_long = 120; +pub const SYS_sched_getparam: c_long = 121; +pub const SYS_sched_setaffinity: c_long = 122; +pub const SYS_sched_getaffinity: c_long = 123; +pub const SYS_sched_yield: c_long = 124; +pub const SYS_sched_get_priority_max: c_long = 125; +pub const SYS_sched_get_priority_min: c_long = 126; +pub const SYS_sched_rr_get_interval: c_long = 127; +pub const SYS_restart_syscall: c_long = 128; +pub const SYS_kill: c_long = 129; +pub const SYS_tkill: c_long = 130; +pub const SYS_tgkill: c_long = 131; +pub const SYS_sigaltstack: c_long = 132; +pub const SYS_rt_sigsuspend: c_long = 133; +pub const SYS_rt_sigaction: c_long = 134; +pub const SYS_rt_sigprocmask: c_long = 135; +pub const SYS_rt_sigpending: c_long = 136; +pub const SYS_rt_sigtimedwait: c_long = 137; +pub const SYS_rt_sigqueueinfo: c_long = 138; +pub const SYS_rt_sigreturn: c_long = 139; +pub const SYS_setpriority: c_long = 140; +pub const SYS_getpriority: c_long = 141; +pub const SYS_reboot: c_long = 142; +pub const SYS_setregid: c_long = 143; +pub const SYS_setgid: c_long = 144; +pub const SYS_setreuid: c_long = 145; +pub const SYS_setuid: c_long = 146; +pub const SYS_setresuid: c_long = 147; +pub const SYS_getresuid: c_long = 148; +pub const SYS_setresgid: c_long = 149; +pub const SYS_getresgid: c_long = 150; +pub const SYS_setfsuid: c_long = 151; +pub const SYS_setfsgid: c_long = 152; +pub const SYS_times: c_long = 153; +pub const SYS_setpgid: c_long = 154; +pub const SYS_getpgid: c_long = 155; +pub const SYS_getsid: c_long = 156; +pub const SYS_setsid: c_long = 157; +pub const SYS_getgroups: c_long = 158; +pub const SYS_setgroups: c_long = 159; +pub const SYS_uname: c_long = 160; +pub const SYS_sethostname: c_long = 161; +pub const SYS_setdomainname: c_long = 162; +pub const SYS_getrlimit: c_long = 163; +pub const SYS_setrlimit: c_long = 164; +pub const SYS_getrusage: c_long = 165; +pub const SYS_umask: c_long = 166; +pub const SYS_prctl: c_long = 167; +pub const SYS_getcpu: c_long = 168; +pub const SYS_gettimeofday: c_long = 169; +pub const SYS_settimeofday: c_long = 170; +pub const SYS_adjtimex: c_long = 171; +pub const SYS_getpid: c_long = 172; +pub const SYS_getppid: c_long = 173; +pub const SYS_getuid: c_long = 174; +pub const SYS_geteuid: c_long = 175; +pub const SYS_getgid: c_long = 176; +pub const SYS_getegid: c_long = 177; +pub const SYS_gettid: c_long = 178; +pub const SYS_sysinfo: c_long = 179; +pub const SYS_mq_open: c_long = 180; +pub const SYS_mq_unlink: c_long = 181; +pub const SYS_mq_timedsend: c_long = 182; +pub const SYS_mq_timedreceive: c_long = 183; +pub const SYS_mq_notify: c_long = 184; +pub const SYS_mq_getsetattr: c_long = 185; +pub const SYS_msgget: c_long = 186; +pub const SYS_msgctl: c_long = 187; +pub const SYS_msgrcv: c_long = 188; +pub const SYS_msgsnd: c_long = 189; +pub const SYS_semget: c_long = 190; +pub const SYS_semctl: c_long = 191; +pub const SYS_semtimedop: c_long = 192; +pub const SYS_semop: c_long = 193; +pub const SYS_shmget: c_long = 194; +pub const SYS_shmctl: c_long = 195; +pub const SYS_shmat: c_long = 196; +pub const SYS_shmdt: c_long = 197; +pub const SYS_socket: c_long = 198; +pub const SYS_socketpair: c_long = 199; +pub const SYS_bind: c_long = 200; +pub const SYS_listen: c_long = 201; +pub const SYS_accept: c_long = 202; +pub const SYS_connect: c_long = 203; +pub const SYS_getsockname: c_long = 204; +pub const SYS_getpeername: c_long = 205; +pub const SYS_sendto: c_long = 206; +pub const SYS_recvfrom: c_long = 207; +pub const SYS_setsockopt: c_long = 208; +pub const SYS_getsockopt: c_long = 209; +pub const SYS_shutdown: c_long = 210; +pub const SYS_sendmsg: c_long = 211; +pub const SYS_recvmsg: c_long = 212; +pub const SYS_readahead: c_long = 213; +pub const SYS_brk: c_long = 214; +pub const SYS_munmap: c_long = 215; +pub const SYS_mremap: c_long = 216; +pub const SYS_add_key: c_long = 217; +pub const SYS_request_key: c_long = 218; +pub const SYS_keyctl: c_long = 219; +pub const SYS_clone: c_long = 220; +pub const SYS_execve: c_long = 221; +pub const SYS_swapon: c_long = 224; +pub const SYS_swapoff: c_long = 225; +pub const SYS_mprotect: c_long = 226; +pub const SYS_msync: c_long = 227; +pub const SYS_mlock: c_long = 228; +pub const SYS_munlock: c_long = 229; +pub const SYS_mlockall: c_long = 230; +pub const SYS_munlockall: c_long = 231; +pub const SYS_mincore: c_long = 232; +pub const SYS_madvise: c_long = 233; +pub const SYS_remap_file_pages: c_long = 234; +pub const SYS_mbind: c_long = 235; +pub const SYS_get_mempolicy: c_long = 236; +pub const SYS_set_mempolicy: c_long = 237; +pub const SYS_migrate_pages: c_long = 238; +pub const SYS_move_pages: c_long = 239; +pub const SYS_rt_tgsigqueueinfo: c_long = 240; +pub const SYS_perf_event_open: c_long = 241; +pub const SYS_accept4: c_long = 242; +pub const SYS_recvmmsg: c_long = 243; +pub const SYS_arch_specific_syscall: c_long = 244; +pub const SYS_wait4: c_long = 260; +pub const SYS_prlimit64: c_long = 261; +pub const SYS_fanotify_init: c_long = 262; +pub const SYS_fanotify_mark: c_long = 263; +pub const SYS_name_to_handle_at: c_long = 264; +pub const SYS_open_by_handle_at: c_long = 265; +pub const SYS_clock_adjtime: c_long = 266; +pub const SYS_syncfs: c_long = 267; +pub const SYS_setns: c_long = 268; +pub const SYS_sendmmsg: c_long = 269; +pub const SYS_process_vm_readv: c_long = 270; +pub const SYS_process_vm_writev: c_long = 271; +pub const SYS_kcmp: c_long = 272; +pub const SYS_finit_module: c_long = 273; +pub const SYS_sched_setattr: c_long = 274; +pub const SYS_sched_getattr: c_long = 275; +pub const SYS_renameat2: c_long = 276; +pub const SYS_seccomp: c_long = 277; +pub const SYS_getrandom: c_long = 278; +pub const SYS_memfd_create: c_long = 279; +pub const SYS_bpf: c_long = 280; +pub const SYS_execveat: c_long = 281; +pub const SYS_userfaultfd: c_long = 282; +pub const SYS_membarrier: c_long = 283; +pub const SYS_mlock2: c_long = 284; +pub const SYS_copy_file_range: c_long = 285; +pub const SYS_preadv2: c_long = 286; +pub const SYS_pwritev2: c_long = 287; +pub const SYS_pkey_mprotect: c_long = 288; +pub const SYS_pkey_alloc: c_long = 289; +pub const SYS_pkey_free: c_long = 290; +pub const SYS_statx: c_long = 291; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; // From NDK's asm/auxvec.h -pub const AT_SYSINFO_EHDR: ::c_ulong = 33; -pub const AT_L1I_CACHESIZE: ::c_ulong = 40; -pub const AT_L1I_CACHEGEOMETRY: ::c_ulong = 41; -pub const AT_L1D_CACHESIZE: ::c_ulong = 42; -pub const AT_L1D_CACHEGEOMETRY: ::c_ulong = 43; -pub const AT_L2_CACHESIZE: ::c_ulong = 44; -pub const AT_L2_CACHEGEOMETRY: ::c_ulong = 45; -pub const AT_L3_CACHESIZE: ::c_ulong = 46; -pub const AT_L3_CACHEGEOMETRY: ::c_ulong = 47; -pub const AT_VECTOR_SIZE_ARCH: ::c_ulong = 9; +pub const AT_SYSINFO_EHDR: c_ulong = 33; +pub const AT_L1I_CACHESIZE: c_ulong = 40; +pub const AT_L1I_CACHEGEOMETRY: c_ulong = 41; +pub const AT_L1D_CACHESIZE: c_ulong = 42; +pub const AT_L1D_CACHEGEOMETRY: c_ulong = 43; +pub const AT_L2_CACHESIZE: c_ulong = 44; +pub const AT_L2_CACHEGEOMETRY: c_ulong = 45; +pub const AT_L3_CACHESIZE: c_ulong = 46; +pub const AT_L3_CACHEGEOMETRY: c_ulong = 47; +pub const AT_VECTOR_SIZE_ARCH: c_ulong = 9; diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index 1f88573704b3e..609def88b2d97 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -1,48 +1,50 @@ +use crate::{c_int, c_long, c_longlong, c_uint, c_ulong, c_ulonglong, c_ushort, off64_t, size_t}; + pub type c_char = i8; pub type wchar_t = i32; pub type greg_t = i64; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; s! { pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::c_ulong, - pub st_mode: ::c_uint, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::c_long, - pub st_blocks: ::c_long, - pub st_atime: ::c_long, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::c_long, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::c_long, - pub st_ctime_nsec: ::c_long, - __unused: [::c_long; 3], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_nlink: c_ulong, + pub st_mode: c_uint, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_size: off64_t, + pub st_blksize: c_long, + pub st_blocks: c_long, + pub st_atime: c_long, + pub st_atime_nsec: c_long, + pub st_mtime: c_long, + pub st_mtime_nsec: c_long, + pub st_ctime: c_long, + pub st_ctime_nsec: c_long, + __unused: [c_long; 3], } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::c_ulong, - pub st_mode: ::c_uint, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::c_long, - pub st_blocks: ::c_long, - pub st_atime: ::c_long, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::c_long, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::c_long, - pub st_ctime_nsec: ::c_long, - __unused: [::c_long; 3], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_nlink: c_ulong, + pub st_mode: c_uint, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_size: off64_t, + pub st_blksize: c_long, + pub st_blocks: c_long, + pub st_atime: c_long, + pub st_atime_nsec: c_long, + pub st_mtime: c_long, + pub st_mtime_nsec: c_long, + pub st_ctime: c_long, + pub st_ctime_nsec: c_long, + __unused: [c_long; 3], } pub struct _libc_xmmreg { @@ -50,64 +52,64 @@ s! { } pub struct user_regs_struct { - pub r15: ::c_ulong, - pub r14: ::c_ulong, - pub r13: ::c_ulong, - pub r12: ::c_ulong, - pub rbp: ::c_ulong, - pub rbx: ::c_ulong, - pub r11: ::c_ulong, - pub r10: ::c_ulong, - pub r9: ::c_ulong, - pub r8: ::c_ulong, - pub rax: ::c_ulong, - pub rcx: ::c_ulong, - pub rdx: ::c_ulong, - pub rsi: ::c_ulong, - pub rdi: ::c_ulong, - pub orig_rax: ::c_ulong, - pub rip: ::c_ulong, - pub cs: ::c_ulong, - pub eflags: ::c_ulong, - pub rsp: ::c_ulong, - pub ss: ::c_ulong, - pub fs_base: ::c_ulong, - pub gs_base: ::c_ulong, - pub ds: ::c_ulong, - pub es: ::c_ulong, - pub fs: ::c_ulong, - pub gs: ::c_ulong, + pub r15: c_ulong, + pub r14: c_ulong, + pub r13: c_ulong, + pub r12: c_ulong, + pub rbp: c_ulong, + pub rbx: c_ulong, + pub r11: c_ulong, + pub r10: c_ulong, + pub r9: c_ulong, + pub r8: c_ulong, + pub rax: c_ulong, + pub rcx: c_ulong, + pub rdx: c_ulong, + pub rsi: c_ulong, + pub rdi: c_ulong, + pub orig_rax: c_ulong, + pub rip: c_ulong, + pub cs: c_ulong, + pub eflags: c_ulong, + pub rsp: c_ulong, + pub ss: c_ulong, + pub fs_base: c_ulong, + pub gs_base: c_ulong, + pub ds: c_ulong, + pub es: c_ulong, + pub fs: c_ulong, + pub gs: c_ulong, } pub struct user { pub regs: user_regs_struct, - pub u_fpvalid: ::c_int, + pub u_fpvalid: c_int, pub i387: user_fpregs_struct, - pub u_tsize: ::c_ulong, - pub u_dsize: ::c_ulong, - pub u_ssize: ::c_ulong, - pub start_code: ::c_ulong, - pub start_stack: ::c_ulong, - pub signal: ::c_long, - __reserved: ::c_int, + pub u_tsize: c_ulong, + pub u_dsize: c_ulong, + pub u_ssize: c_ulong, + pub start_code: c_ulong, + pub start_stack: c_ulong, + pub signal: c_long, + __reserved: c_int, #[cfg(target_pointer_width = "32")] __pad1: u32, pub u_ar0: *mut user_regs_struct, #[cfg(target_pointer_width = "32")] __pad2: u32, pub u_fpstate: *mut user_fpregs_struct, - pub magic: ::c_ulong, - pub u_comm: [::c_char; 32], - pub u_debugreg: [::c_ulong; 8], - pub error_code: ::c_ulong, - pub fault_address: ::c_ulong, + pub magic: c_ulong, + pub u_comm: [c_char; 32], + pub u_debugreg: [c_ulong; 8], + pub error_code: c_ulong, + pub fault_address: c_ulong, } } s_no_extra_traits! { pub union __c_anonymous_uc_sigmask { - uc_sigmask: ::sigset_t, - uc_sigmask64: ::sigset64_t, + uc_sigmask: crate::sigset_t, + uc_sigmask64: crate::sigset64_t, } #[allow(missing_debug_implementations)] @@ -125,15 +127,15 @@ cfg_if! { } } impl Eq for __c_anonymous_uc_sigmask {} - impl ::fmt::Debug for __c_anonymous_uc_sigmask { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_uc_sigmask { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("uc_sigmask") .field("uc_sigmask", unsafe { &self.uc_sigmask }) .finish() } } - impl ::hash::Hash for __c_anonymous_uc_sigmask { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_uc_sigmask { + fn hash(&self, state: &mut H) { unsafe { self.uc_sigmask.hash(state) } } } @@ -168,26 +170,26 @@ s_no_extra_traits! { } pub struct ucontext_t { - pub uc_flags: ::c_ulong, + pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, + pub uc_stack: crate::stack_t, pub uc_mcontext: mcontext_t, pub uc_sigmask64: __c_anonymous_uc_sigmask, __fpregs_mem: _libc_fpstate, } pub struct user_fpregs_struct { - pub cwd: ::c_ushort, - pub swd: ::c_ushort, - pub ftw: ::c_ushort, - pub fop: ::c_ushort, - pub rip: ::c_ulong, - pub rdp: ::c_ulong, - pub mxcsr: ::c_uint, - pub mxcr_mask: ::c_uint, - pub st_space: [::c_uint; 32], - pub xmm_space: [::c_uint; 64], - padding: [::c_uint; 24], + pub cwd: c_ushort, + pub swd: c_ushort, + pub ftw: c_ushort, + pub fop: c_ushort, + pub rip: c_ulong, + pub rdp: c_ulong, + pub mxcsr: c_uint, + pub mxcr_mask: c_uint, + pub st_space: [c_uint; 32], + pub xmm_space: [c_uint; 64], + padding: [c_uint; 24], } } @@ -200,8 +202,8 @@ cfg_if! { } } impl Eq for _libc_fpxreg {} - impl ::fmt::Debug for _libc_fpxreg { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for _libc_fpxreg { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("_libc_fpxreg") .field("significand", &self.significand) .field("exponent", &self.exponent) @@ -209,8 +211,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for _libc_fpxreg { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for _libc_fpxreg { + fn hash(&self, state: &mut H) { self.significand.hash(state); self.exponent.hash(state); // Ignore padding field @@ -233,8 +235,8 @@ cfg_if! { } } impl Eq for _libc_fpstate {} - impl ::fmt::Debug for _libc_fpstate { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for _libc_fpstate { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("_libc_fpstate") .field("cwd", &self.cwd) .field("swd", &self.swd) @@ -250,8 +252,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for _libc_fpstate { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for _libc_fpstate { + fn hash(&self, state: &mut H) { self.cwd.hash(state); self.swd.hash(state); self.ftw.hash(state); @@ -273,8 +275,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("mcontext_t") .field("gregs", &self.gregs) .field("fpregs", &self.fpregs) @@ -282,8 +284,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.gregs.hash(state); self.fpregs.hash(state); // Ignore padding field @@ -301,8 +303,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -313,8 +315,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); @@ -346,8 +348,8 @@ cfg_if! { impl Eq for user_fpregs_struct {} - impl ::fmt::Debug for user_fpregs_struct { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for user_fpregs_struct { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("user_fpregs_struct") .field("cwd", &self.cwd) .field("swd", &self.swd) @@ -364,8 +366,8 @@ cfg_if! { } } - impl ::hash::Hash for user_fpregs_struct { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for user_fpregs_struct { + fn hash(&self, state: &mut H) { self.cwd.hash(state); self.swd.hash(state); self.ftw.hash(state); @@ -382,435 +384,435 @@ cfg_if! { } } -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_LARGEFILE: ::c_int = 0o0100000; +pub const O_DIRECT: c_int = 0x4000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_NOFOLLOW: c_int = 0x20000; +pub const O_LARGEFILE: c_int = 0o0100000; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; -pub const MAP_32BIT: ::c_int = 0x40; +pub const MAP_32BIT: c_int = 0x40; // Syscall table -pub const SYS_read: ::c_long = 0; -pub const SYS_write: ::c_long = 1; -pub const SYS_open: ::c_long = 2; -pub const SYS_close: ::c_long = 3; -pub const SYS_stat: ::c_long = 4; -pub const SYS_fstat: ::c_long = 5; -pub const SYS_lstat: ::c_long = 6; -pub const SYS_poll: ::c_long = 7; -pub const SYS_lseek: ::c_long = 8; -pub const SYS_mmap: ::c_long = 9; -pub const SYS_mprotect: ::c_long = 10; -pub const SYS_munmap: ::c_long = 11; -pub const SYS_brk: ::c_long = 12; -pub const SYS_rt_sigaction: ::c_long = 13; -pub const SYS_rt_sigprocmask: ::c_long = 14; -pub const SYS_rt_sigreturn: ::c_long = 15; -pub const SYS_ioctl: ::c_long = 16; -pub const SYS_pread64: ::c_long = 17; -pub const SYS_pwrite64: ::c_long = 18; -pub const SYS_readv: ::c_long = 19; -pub const SYS_writev: ::c_long = 20; -pub const SYS_access: ::c_long = 21; -pub const SYS_pipe: ::c_long = 22; -pub const SYS_select: ::c_long = 23; -pub const SYS_sched_yield: ::c_long = 24; -pub const SYS_mremap: ::c_long = 25; -pub const SYS_msync: ::c_long = 26; -pub const SYS_mincore: ::c_long = 27; -pub const SYS_madvise: ::c_long = 28; -pub const SYS_shmget: ::c_long = 29; -pub const SYS_shmat: ::c_long = 30; -pub const SYS_shmctl: ::c_long = 31; -pub const SYS_dup: ::c_long = 32; -pub const SYS_dup2: ::c_long = 33; -pub const SYS_pause: ::c_long = 34; -pub const SYS_nanosleep: ::c_long = 35; -pub const SYS_getitimer: ::c_long = 36; -pub const SYS_alarm: ::c_long = 37; -pub const SYS_setitimer: ::c_long = 38; -pub const SYS_getpid: ::c_long = 39; -pub const SYS_sendfile: ::c_long = 40; -pub const SYS_socket: ::c_long = 41; -pub const SYS_connect: ::c_long = 42; -pub const SYS_accept: ::c_long = 43; -pub const SYS_sendto: ::c_long = 44; -pub const SYS_recvfrom: ::c_long = 45; -pub const SYS_sendmsg: ::c_long = 46; -pub const SYS_recvmsg: ::c_long = 47; -pub const SYS_shutdown: ::c_long = 48; -pub const SYS_bind: ::c_long = 49; -pub const SYS_listen: ::c_long = 50; -pub const SYS_getsockname: ::c_long = 51; -pub const SYS_getpeername: ::c_long = 52; -pub const SYS_socketpair: ::c_long = 53; -pub const SYS_setsockopt: ::c_long = 54; -pub const SYS_getsockopt: ::c_long = 55; -pub const SYS_clone: ::c_long = 56; -pub const SYS_fork: ::c_long = 57; -pub const SYS_vfork: ::c_long = 58; -pub const SYS_execve: ::c_long = 59; -pub const SYS_exit: ::c_long = 60; -pub const SYS_wait4: ::c_long = 61; -pub const SYS_kill: ::c_long = 62; -pub const SYS_uname: ::c_long = 63; -pub const SYS_semget: ::c_long = 64; -pub const SYS_semop: ::c_long = 65; -pub const SYS_semctl: ::c_long = 66; -pub const SYS_shmdt: ::c_long = 67; -pub const SYS_msgget: ::c_long = 68; -pub const SYS_msgsnd: ::c_long = 69; -pub const SYS_msgrcv: ::c_long = 70; -pub const SYS_msgctl: ::c_long = 71; -pub const SYS_fcntl: ::c_long = 72; -pub const SYS_flock: ::c_long = 73; -pub const SYS_fsync: ::c_long = 74; -pub const SYS_fdatasync: ::c_long = 75; -pub const SYS_truncate: ::c_long = 76; -pub const SYS_ftruncate: ::c_long = 77; -pub const SYS_getdents: ::c_long = 78; -pub const SYS_getcwd: ::c_long = 79; -pub const SYS_chdir: ::c_long = 80; -pub const SYS_fchdir: ::c_long = 81; -pub const SYS_rename: ::c_long = 82; -pub const SYS_mkdir: ::c_long = 83; -pub const SYS_rmdir: ::c_long = 84; -pub const SYS_creat: ::c_long = 85; -pub const SYS_link: ::c_long = 86; -pub const SYS_unlink: ::c_long = 87; -pub const SYS_symlink: ::c_long = 88; -pub const SYS_readlink: ::c_long = 89; -pub const SYS_chmod: ::c_long = 90; -pub const SYS_fchmod: ::c_long = 91; -pub const SYS_chown: ::c_long = 92; -pub const SYS_fchown: ::c_long = 93; -pub const SYS_lchown: ::c_long = 94; -pub const SYS_umask: ::c_long = 95; -pub const SYS_gettimeofday: ::c_long = 96; -pub const SYS_getrlimit: ::c_long = 97; -pub const SYS_getrusage: ::c_long = 98; -pub const SYS_sysinfo: ::c_long = 99; -pub const SYS_times: ::c_long = 100; -pub const SYS_ptrace: ::c_long = 101; -pub const SYS_getuid: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_getgid: ::c_long = 104; -pub const SYS_setuid: ::c_long = 105; -pub const SYS_setgid: ::c_long = 106; -pub const SYS_geteuid: ::c_long = 107; -pub const SYS_getegid: ::c_long = 108; -pub const SYS_setpgid: ::c_long = 109; -pub const SYS_getppid: ::c_long = 110; -pub const SYS_getpgrp: ::c_long = 111; -pub const SYS_setsid: ::c_long = 112; -pub const SYS_setreuid: ::c_long = 113; -pub const SYS_setregid: ::c_long = 114; -pub const SYS_getgroups: ::c_long = 115; -pub const SYS_setgroups: ::c_long = 116; -pub const SYS_setresuid: ::c_long = 117; -pub const SYS_getresuid: ::c_long = 118; -pub const SYS_setresgid: ::c_long = 119; -pub const SYS_getresgid: ::c_long = 120; -pub const SYS_getpgid: ::c_long = 121; -pub const SYS_setfsuid: ::c_long = 122; -pub const SYS_setfsgid: ::c_long = 123; -pub const SYS_getsid: ::c_long = 124; -pub const SYS_capget: ::c_long = 125; -pub const SYS_capset: ::c_long = 126; -pub const SYS_rt_sigpending: ::c_long = 127; -pub const SYS_rt_sigtimedwait: ::c_long = 128; -pub const SYS_rt_sigqueueinfo: ::c_long = 129; -pub const SYS_rt_sigsuspend: ::c_long = 130; -pub const SYS_sigaltstack: ::c_long = 131; -pub const SYS_utime: ::c_long = 132; -pub const SYS_mknod: ::c_long = 133; -pub const SYS_uselib: ::c_long = 134; -pub const SYS_personality: ::c_long = 135; -pub const SYS_ustat: ::c_long = 136; -pub const SYS_statfs: ::c_long = 137; -pub const SYS_fstatfs: ::c_long = 138; -pub const SYS_sysfs: ::c_long = 139; -pub const SYS_getpriority: ::c_long = 140; -pub const SYS_setpriority: ::c_long = 141; -pub const SYS_sched_setparam: ::c_long = 142; -pub const SYS_sched_getparam: ::c_long = 143; -pub const SYS_sched_setscheduler: ::c_long = 144; -pub const SYS_sched_getscheduler: ::c_long = 145; -pub const SYS_sched_get_priority_max: ::c_long = 146; -pub const SYS_sched_get_priority_min: ::c_long = 147; -pub const SYS_sched_rr_get_interval: ::c_long = 148; -pub const SYS_mlock: ::c_long = 149; -pub const SYS_munlock: ::c_long = 150; -pub const SYS_mlockall: ::c_long = 151; -pub const SYS_munlockall: ::c_long = 152; -pub const SYS_vhangup: ::c_long = 153; -pub const SYS_modify_ldt: ::c_long = 154; -pub const SYS_pivot_root: ::c_long = 155; +pub const SYS_read: c_long = 0; +pub const SYS_write: c_long = 1; +pub const SYS_open: c_long = 2; +pub const SYS_close: c_long = 3; +pub const SYS_stat: c_long = 4; +pub const SYS_fstat: c_long = 5; +pub const SYS_lstat: c_long = 6; +pub const SYS_poll: c_long = 7; +pub const SYS_lseek: c_long = 8; +pub const SYS_mmap: c_long = 9; +pub const SYS_mprotect: c_long = 10; +pub const SYS_munmap: c_long = 11; +pub const SYS_brk: c_long = 12; +pub const SYS_rt_sigaction: c_long = 13; +pub const SYS_rt_sigprocmask: c_long = 14; +pub const SYS_rt_sigreturn: c_long = 15; +pub const SYS_ioctl: c_long = 16; +pub const SYS_pread64: c_long = 17; +pub const SYS_pwrite64: c_long = 18; +pub const SYS_readv: c_long = 19; +pub const SYS_writev: c_long = 20; +pub const SYS_access: c_long = 21; +pub const SYS_pipe: c_long = 22; +pub const SYS_select: c_long = 23; +pub const SYS_sched_yield: c_long = 24; +pub const SYS_mremap: c_long = 25; +pub const SYS_msync: c_long = 26; +pub const SYS_mincore: c_long = 27; +pub const SYS_madvise: c_long = 28; +pub const SYS_shmget: c_long = 29; +pub const SYS_shmat: c_long = 30; +pub const SYS_shmctl: c_long = 31; +pub const SYS_dup: c_long = 32; +pub const SYS_dup2: c_long = 33; +pub const SYS_pause: c_long = 34; +pub const SYS_nanosleep: c_long = 35; +pub const SYS_getitimer: c_long = 36; +pub const SYS_alarm: c_long = 37; +pub const SYS_setitimer: c_long = 38; +pub const SYS_getpid: c_long = 39; +pub const SYS_sendfile: c_long = 40; +pub const SYS_socket: c_long = 41; +pub const SYS_connect: c_long = 42; +pub const SYS_accept: c_long = 43; +pub const SYS_sendto: c_long = 44; +pub const SYS_recvfrom: c_long = 45; +pub const SYS_sendmsg: c_long = 46; +pub const SYS_recvmsg: c_long = 47; +pub const SYS_shutdown: c_long = 48; +pub const SYS_bind: c_long = 49; +pub const SYS_listen: c_long = 50; +pub const SYS_getsockname: c_long = 51; +pub const SYS_getpeername: c_long = 52; +pub const SYS_socketpair: c_long = 53; +pub const SYS_setsockopt: c_long = 54; +pub const SYS_getsockopt: c_long = 55; +pub const SYS_clone: c_long = 56; +pub const SYS_fork: c_long = 57; +pub const SYS_vfork: c_long = 58; +pub const SYS_execve: c_long = 59; +pub const SYS_exit: c_long = 60; +pub const SYS_wait4: c_long = 61; +pub const SYS_kill: c_long = 62; +pub const SYS_uname: c_long = 63; +pub const SYS_semget: c_long = 64; +pub const SYS_semop: c_long = 65; +pub const SYS_semctl: c_long = 66; +pub const SYS_shmdt: c_long = 67; +pub const SYS_msgget: c_long = 68; +pub const SYS_msgsnd: c_long = 69; +pub const SYS_msgrcv: c_long = 70; +pub const SYS_msgctl: c_long = 71; +pub const SYS_fcntl: c_long = 72; +pub const SYS_flock: c_long = 73; +pub const SYS_fsync: c_long = 74; +pub const SYS_fdatasync: c_long = 75; +pub const SYS_truncate: c_long = 76; +pub const SYS_ftruncate: c_long = 77; +pub const SYS_getdents: c_long = 78; +pub const SYS_getcwd: c_long = 79; +pub const SYS_chdir: c_long = 80; +pub const SYS_fchdir: c_long = 81; +pub const SYS_rename: c_long = 82; +pub const SYS_mkdir: c_long = 83; +pub const SYS_rmdir: c_long = 84; +pub const SYS_creat: c_long = 85; +pub const SYS_link: c_long = 86; +pub const SYS_unlink: c_long = 87; +pub const SYS_symlink: c_long = 88; +pub const SYS_readlink: c_long = 89; +pub const SYS_chmod: c_long = 90; +pub const SYS_fchmod: c_long = 91; +pub const SYS_chown: c_long = 92; +pub const SYS_fchown: c_long = 93; +pub const SYS_lchown: c_long = 94; +pub const SYS_umask: c_long = 95; +pub const SYS_gettimeofday: c_long = 96; +pub const SYS_getrlimit: c_long = 97; +pub const SYS_getrusage: c_long = 98; +pub const SYS_sysinfo: c_long = 99; +pub const SYS_times: c_long = 100; +pub const SYS_ptrace: c_long = 101; +pub const SYS_getuid: c_long = 102; +pub const SYS_syslog: c_long = 103; +pub const SYS_getgid: c_long = 104; +pub const SYS_setuid: c_long = 105; +pub const SYS_setgid: c_long = 106; +pub const SYS_geteuid: c_long = 107; +pub const SYS_getegid: c_long = 108; +pub const SYS_setpgid: c_long = 109; +pub const SYS_getppid: c_long = 110; +pub const SYS_getpgrp: c_long = 111; +pub const SYS_setsid: c_long = 112; +pub const SYS_setreuid: c_long = 113; +pub const SYS_setregid: c_long = 114; +pub const SYS_getgroups: c_long = 115; +pub const SYS_setgroups: c_long = 116; +pub const SYS_setresuid: c_long = 117; +pub const SYS_getresuid: c_long = 118; +pub const SYS_setresgid: c_long = 119; +pub const SYS_getresgid: c_long = 120; +pub const SYS_getpgid: c_long = 121; +pub const SYS_setfsuid: c_long = 122; +pub const SYS_setfsgid: c_long = 123; +pub const SYS_getsid: c_long = 124; +pub const SYS_capget: c_long = 125; +pub const SYS_capset: c_long = 126; +pub const SYS_rt_sigpending: c_long = 127; +pub const SYS_rt_sigtimedwait: c_long = 128; +pub const SYS_rt_sigqueueinfo: c_long = 129; +pub const SYS_rt_sigsuspend: c_long = 130; +pub const SYS_sigaltstack: c_long = 131; +pub const SYS_utime: c_long = 132; +pub const SYS_mknod: c_long = 133; +pub const SYS_uselib: c_long = 134; +pub const SYS_personality: c_long = 135; +pub const SYS_ustat: c_long = 136; +pub const SYS_statfs: c_long = 137; +pub const SYS_fstatfs: c_long = 138; +pub const SYS_sysfs: c_long = 139; +pub const SYS_getpriority: c_long = 140; +pub const SYS_setpriority: c_long = 141; +pub const SYS_sched_setparam: c_long = 142; +pub const SYS_sched_getparam: c_long = 143; +pub const SYS_sched_setscheduler: c_long = 144; +pub const SYS_sched_getscheduler: c_long = 145; +pub const SYS_sched_get_priority_max: c_long = 146; +pub const SYS_sched_get_priority_min: c_long = 147; +pub const SYS_sched_rr_get_interval: c_long = 148; +pub const SYS_mlock: c_long = 149; +pub const SYS_munlock: c_long = 150; +pub const SYS_mlockall: c_long = 151; +pub const SYS_munlockall: c_long = 152; +pub const SYS_vhangup: c_long = 153; +pub const SYS_modify_ldt: c_long = 154; +pub const SYS_pivot_root: c_long = 155; // FIXME: SYS__sysctl is in the NDK sources but for some reason is // not available in the tests -// pub const SYS__sysctl: ::c_long = 156; -pub const SYS_prctl: ::c_long = 157; -pub const SYS_arch_prctl: ::c_long = 158; -pub const SYS_adjtimex: ::c_long = 159; -pub const SYS_setrlimit: ::c_long = 160; -pub const SYS_chroot: ::c_long = 161; -pub const SYS_sync: ::c_long = 162; -pub const SYS_acct: ::c_long = 163; -pub const SYS_settimeofday: ::c_long = 164; -pub const SYS_mount: ::c_long = 165; -pub const SYS_umount2: ::c_long = 166; -pub const SYS_swapon: ::c_long = 167; -pub const SYS_swapoff: ::c_long = 168; -pub const SYS_reboot: ::c_long = 169; -pub const SYS_sethostname: ::c_long = 170; -pub const SYS_setdomainname: ::c_long = 171; -pub const SYS_iopl: ::c_long = 172; -pub const SYS_ioperm: ::c_long = 173; -pub const SYS_create_module: ::c_long = 174; -pub const SYS_init_module: ::c_long = 175; -pub const SYS_delete_module: ::c_long = 176; -pub const SYS_get_kernel_syms: ::c_long = 177; -pub const SYS_query_module: ::c_long = 178; -pub const SYS_quotactl: ::c_long = 179; -pub const SYS_nfsservctl: ::c_long = 180; -pub const SYS_getpmsg: ::c_long = 181; -pub const SYS_putpmsg: ::c_long = 182; -pub const SYS_afs_syscall: ::c_long = 183; -pub const SYS_tuxcall: ::c_long = 184; -pub const SYS_security: ::c_long = 185; -pub const SYS_gettid: ::c_long = 186; -pub const SYS_readahead: ::c_long = 187; -pub const SYS_setxattr: ::c_long = 188; -pub const SYS_lsetxattr: ::c_long = 189; -pub const SYS_fsetxattr: ::c_long = 190; -pub const SYS_getxattr: ::c_long = 191; -pub const SYS_lgetxattr: ::c_long = 192; -pub const SYS_fgetxattr: ::c_long = 193; -pub const SYS_listxattr: ::c_long = 194; -pub const SYS_llistxattr: ::c_long = 195; -pub const SYS_flistxattr: ::c_long = 196; -pub const SYS_removexattr: ::c_long = 197; -pub const SYS_lremovexattr: ::c_long = 198; -pub const SYS_fremovexattr: ::c_long = 199; -pub const SYS_tkill: ::c_long = 200; -pub const SYS_time: ::c_long = 201; -pub const SYS_futex: ::c_long = 202; -pub const SYS_sched_setaffinity: ::c_long = 203; -pub const SYS_sched_getaffinity: ::c_long = 204; -pub const SYS_set_thread_area: ::c_long = 205; -pub const SYS_io_setup: ::c_long = 206; -pub const SYS_io_destroy: ::c_long = 207; -pub const SYS_io_getevents: ::c_long = 208; -pub const SYS_io_submit: ::c_long = 209; -pub const SYS_io_cancel: ::c_long = 210; -pub const SYS_get_thread_area: ::c_long = 211; -pub const SYS_lookup_dcookie: ::c_long = 212; -pub const SYS_epoll_create: ::c_long = 213; -pub const SYS_epoll_ctl_old: ::c_long = 214; -pub const SYS_epoll_wait_old: ::c_long = 215; -pub const SYS_remap_file_pages: ::c_long = 216; -pub const SYS_getdents64: ::c_long = 217; -pub const SYS_set_tid_address: ::c_long = 218; -pub const SYS_restart_syscall: ::c_long = 219; -pub const SYS_semtimedop: ::c_long = 220; -pub const SYS_fadvise64: ::c_long = 221; -pub const SYS_timer_create: ::c_long = 222; -pub const SYS_timer_settime: ::c_long = 223; -pub const SYS_timer_gettime: ::c_long = 224; -pub const SYS_timer_getoverrun: ::c_long = 225; -pub const SYS_timer_delete: ::c_long = 226; -pub const SYS_clock_settime: ::c_long = 227; -pub const SYS_clock_gettime: ::c_long = 228; -pub const SYS_clock_getres: ::c_long = 229; -pub const SYS_clock_nanosleep: ::c_long = 230; -pub const SYS_exit_group: ::c_long = 231; -pub const SYS_epoll_wait: ::c_long = 232; -pub const SYS_epoll_ctl: ::c_long = 233; -pub const SYS_tgkill: ::c_long = 234; -pub const SYS_utimes: ::c_long = 235; -pub const SYS_vserver: ::c_long = 236; -pub const SYS_mbind: ::c_long = 237; -pub const SYS_set_mempolicy: ::c_long = 238; -pub const SYS_get_mempolicy: ::c_long = 239; -pub const SYS_mq_open: ::c_long = 240; -pub const SYS_mq_unlink: ::c_long = 241; -pub const SYS_mq_timedsend: ::c_long = 242; -pub const SYS_mq_timedreceive: ::c_long = 243; -pub const SYS_mq_notify: ::c_long = 244; -pub const SYS_mq_getsetattr: ::c_long = 245; -pub const SYS_kexec_load: ::c_long = 246; -pub const SYS_waitid: ::c_long = 247; -pub const SYS_add_key: ::c_long = 248; -pub const SYS_request_key: ::c_long = 249; -pub const SYS_keyctl: ::c_long = 250; -pub const SYS_ioprio_set: ::c_long = 251; -pub const SYS_ioprio_get: ::c_long = 252; -pub const SYS_inotify_init: ::c_long = 253; -pub const SYS_inotify_add_watch: ::c_long = 254; -pub const SYS_inotify_rm_watch: ::c_long = 255; -pub const SYS_migrate_pages: ::c_long = 256; -pub const SYS_openat: ::c_long = 257; -pub const SYS_mkdirat: ::c_long = 258; -pub const SYS_mknodat: ::c_long = 259; -pub const SYS_fchownat: ::c_long = 260; -pub const SYS_futimesat: ::c_long = 261; -pub const SYS_newfstatat: ::c_long = 262; -pub const SYS_unlinkat: ::c_long = 263; -pub const SYS_renameat: ::c_long = 264; -pub const SYS_linkat: ::c_long = 265; -pub const SYS_symlinkat: ::c_long = 266; -pub const SYS_readlinkat: ::c_long = 267; -pub const SYS_fchmodat: ::c_long = 268; -pub const SYS_faccessat: ::c_long = 269; -pub const SYS_pselect6: ::c_long = 270; -pub const SYS_ppoll: ::c_long = 271; -pub const SYS_unshare: ::c_long = 272; -pub const SYS_set_robust_list: ::c_long = 273; -pub const SYS_get_robust_list: ::c_long = 274; -pub const SYS_splice: ::c_long = 275; -pub const SYS_tee: ::c_long = 276; -pub const SYS_sync_file_range: ::c_long = 277; -pub const SYS_vmsplice: ::c_long = 278; -pub const SYS_move_pages: ::c_long = 279; -pub const SYS_utimensat: ::c_long = 280; -pub const SYS_epoll_pwait: ::c_long = 281; -pub const SYS_signalfd: ::c_long = 282; -pub const SYS_timerfd_create: ::c_long = 283; -pub const SYS_eventfd: ::c_long = 284; -pub const SYS_fallocate: ::c_long = 285; -pub const SYS_timerfd_settime: ::c_long = 286; -pub const SYS_timerfd_gettime: ::c_long = 287; -pub const SYS_accept4: ::c_long = 288; -pub const SYS_signalfd4: ::c_long = 289; -pub const SYS_eventfd2: ::c_long = 290; -pub const SYS_epoll_create1: ::c_long = 291; -pub const SYS_dup3: ::c_long = 292; -pub const SYS_pipe2: ::c_long = 293; -pub const SYS_inotify_init1: ::c_long = 294; -pub const SYS_preadv: ::c_long = 295; -pub const SYS_pwritev: ::c_long = 296; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 297; -pub const SYS_perf_event_open: ::c_long = 298; -pub const SYS_recvmmsg: ::c_long = 299; -pub const SYS_fanotify_init: ::c_long = 300; -pub const SYS_fanotify_mark: ::c_long = 301; -pub const SYS_prlimit64: ::c_long = 302; -pub const SYS_name_to_handle_at: ::c_long = 303; -pub const SYS_open_by_handle_at: ::c_long = 304; -pub const SYS_clock_adjtime: ::c_long = 305; -pub const SYS_syncfs: ::c_long = 306; -pub const SYS_sendmmsg: ::c_long = 307; -pub const SYS_setns: ::c_long = 308; -pub const SYS_getcpu: ::c_long = 309; -pub const SYS_process_vm_readv: ::c_long = 310; -pub const SYS_process_vm_writev: ::c_long = 311; -pub const SYS_kcmp: ::c_long = 312; -pub const SYS_finit_module: ::c_long = 313; -pub const SYS_sched_setattr: ::c_long = 314; -pub const SYS_sched_getattr: ::c_long = 315; -pub const SYS_renameat2: ::c_long = 316; -pub const SYS_seccomp: ::c_long = 317; -pub const SYS_getrandom: ::c_long = 318; -pub const SYS_memfd_create: ::c_long = 319; -pub const SYS_kexec_file_load: ::c_long = 320; -pub const SYS_bpf: ::c_long = 321; -pub const SYS_execveat: ::c_long = 322; -pub const SYS_userfaultfd: ::c_long = 323; -pub const SYS_membarrier: ::c_long = 324; -pub const SYS_mlock2: ::c_long = 325; -pub const SYS_copy_file_range: ::c_long = 326; -pub const SYS_preadv2: ::c_long = 327; -pub const SYS_pwritev2: ::c_long = 328; -pub const SYS_pkey_mprotect: ::c_long = 329; -pub const SYS_pkey_alloc: ::c_long = 330; -pub const SYS_pkey_free: ::c_long = 331; -pub const SYS_statx: ::c_long = 332; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; +// pub const SYS__sysctl: c_long = 156; +pub const SYS_prctl: c_long = 157; +pub const SYS_arch_prctl: c_long = 158; +pub const SYS_adjtimex: c_long = 159; +pub const SYS_setrlimit: c_long = 160; +pub const SYS_chroot: c_long = 161; +pub const SYS_sync: c_long = 162; +pub const SYS_acct: c_long = 163; +pub const SYS_settimeofday: c_long = 164; +pub const SYS_mount: c_long = 165; +pub const SYS_umount2: c_long = 166; +pub const SYS_swapon: c_long = 167; +pub const SYS_swapoff: c_long = 168; +pub const SYS_reboot: c_long = 169; +pub const SYS_sethostname: c_long = 170; +pub const SYS_setdomainname: c_long = 171; +pub const SYS_iopl: c_long = 172; +pub const SYS_ioperm: c_long = 173; +pub const SYS_create_module: c_long = 174; +pub const SYS_init_module: c_long = 175; +pub const SYS_delete_module: c_long = 176; +pub const SYS_get_kernel_syms: c_long = 177; +pub const SYS_query_module: c_long = 178; +pub const SYS_quotactl: c_long = 179; +pub const SYS_nfsservctl: c_long = 180; +pub const SYS_getpmsg: c_long = 181; +pub const SYS_putpmsg: c_long = 182; +pub const SYS_afs_syscall: c_long = 183; +pub const SYS_tuxcall: c_long = 184; +pub const SYS_security: c_long = 185; +pub const SYS_gettid: c_long = 186; +pub const SYS_readahead: c_long = 187; +pub const SYS_setxattr: c_long = 188; +pub const SYS_lsetxattr: c_long = 189; +pub const SYS_fsetxattr: c_long = 190; +pub const SYS_getxattr: c_long = 191; +pub const SYS_lgetxattr: c_long = 192; +pub const SYS_fgetxattr: c_long = 193; +pub const SYS_listxattr: c_long = 194; +pub const SYS_llistxattr: c_long = 195; +pub const SYS_flistxattr: c_long = 196; +pub const SYS_removexattr: c_long = 197; +pub const SYS_lremovexattr: c_long = 198; +pub const SYS_fremovexattr: c_long = 199; +pub const SYS_tkill: c_long = 200; +pub const SYS_time: c_long = 201; +pub const SYS_futex: c_long = 202; +pub const SYS_sched_setaffinity: c_long = 203; +pub const SYS_sched_getaffinity: c_long = 204; +pub const SYS_set_thread_area: c_long = 205; +pub const SYS_io_setup: c_long = 206; +pub const SYS_io_destroy: c_long = 207; +pub const SYS_io_getevents: c_long = 208; +pub const SYS_io_submit: c_long = 209; +pub const SYS_io_cancel: c_long = 210; +pub const SYS_get_thread_area: c_long = 211; +pub const SYS_lookup_dcookie: c_long = 212; +pub const SYS_epoll_create: c_long = 213; +pub const SYS_epoll_ctl_old: c_long = 214; +pub const SYS_epoll_wait_old: c_long = 215; +pub const SYS_remap_file_pages: c_long = 216; +pub const SYS_getdents64: c_long = 217; +pub const SYS_set_tid_address: c_long = 218; +pub const SYS_restart_syscall: c_long = 219; +pub const SYS_semtimedop: c_long = 220; +pub const SYS_fadvise64: c_long = 221; +pub const SYS_timer_create: c_long = 222; +pub const SYS_timer_settime: c_long = 223; +pub const SYS_timer_gettime: c_long = 224; +pub const SYS_timer_getoverrun: c_long = 225; +pub const SYS_timer_delete: c_long = 226; +pub const SYS_clock_settime: c_long = 227; +pub const SYS_clock_gettime: c_long = 228; +pub const SYS_clock_getres: c_long = 229; +pub const SYS_clock_nanosleep: c_long = 230; +pub const SYS_exit_group: c_long = 231; +pub const SYS_epoll_wait: c_long = 232; +pub const SYS_epoll_ctl: c_long = 233; +pub const SYS_tgkill: c_long = 234; +pub const SYS_utimes: c_long = 235; +pub const SYS_vserver: c_long = 236; +pub const SYS_mbind: c_long = 237; +pub const SYS_set_mempolicy: c_long = 238; +pub const SYS_get_mempolicy: c_long = 239; +pub const SYS_mq_open: c_long = 240; +pub const SYS_mq_unlink: c_long = 241; +pub const SYS_mq_timedsend: c_long = 242; +pub const SYS_mq_timedreceive: c_long = 243; +pub const SYS_mq_notify: c_long = 244; +pub const SYS_mq_getsetattr: c_long = 245; +pub const SYS_kexec_load: c_long = 246; +pub const SYS_waitid: c_long = 247; +pub const SYS_add_key: c_long = 248; +pub const SYS_request_key: c_long = 249; +pub const SYS_keyctl: c_long = 250; +pub const SYS_ioprio_set: c_long = 251; +pub const SYS_ioprio_get: c_long = 252; +pub const SYS_inotify_init: c_long = 253; +pub const SYS_inotify_add_watch: c_long = 254; +pub const SYS_inotify_rm_watch: c_long = 255; +pub const SYS_migrate_pages: c_long = 256; +pub const SYS_openat: c_long = 257; +pub const SYS_mkdirat: c_long = 258; +pub const SYS_mknodat: c_long = 259; +pub const SYS_fchownat: c_long = 260; +pub const SYS_futimesat: c_long = 261; +pub const SYS_newfstatat: c_long = 262; +pub const SYS_unlinkat: c_long = 263; +pub const SYS_renameat: c_long = 264; +pub const SYS_linkat: c_long = 265; +pub const SYS_symlinkat: c_long = 266; +pub const SYS_readlinkat: c_long = 267; +pub const SYS_fchmodat: c_long = 268; +pub const SYS_faccessat: c_long = 269; +pub const SYS_pselect6: c_long = 270; +pub const SYS_ppoll: c_long = 271; +pub const SYS_unshare: c_long = 272; +pub const SYS_set_robust_list: c_long = 273; +pub const SYS_get_robust_list: c_long = 274; +pub const SYS_splice: c_long = 275; +pub const SYS_tee: c_long = 276; +pub const SYS_sync_file_range: c_long = 277; +pub const SYS_vmsplice: c_long = 278; +pub const SYS_move_pages: c_long = 279; +pub const SYS_utimensat: c_long = 280; +pub const SYS_epoll_pwait: c_long = 281; +pub const SYS_signalfd: c_long = 282; +pub const SYS_timerfd_create: c_long = 283; +pub const SYS_eventfd: c_long = 284; +pub const SYS_fallocate: c_long = 285; +pub const SYS_timerfd_settime: c_long = 286; +pub const SYS_timerfd_gettime: c_long = 287; +pub const SYS_accept4: c_long = 288; +pub const SYS_signalfd4: c_long = 289; +pub const SYS_eventfd2: c_long = 290; +pub const SYS_epoll_create1: c_long = 291; +pub const SYS_dup3: c_long = 292; +pub const SYS_pipe2: c_long = 293; +pub const SYS_inotify_init1: c_long = 294; +pub const SYS_preadv: c_long = 295; +pub const SYS_pwritev: c_long = 296; +pub const SYS_rt_tgsigqueueinfo: c_long = 297; +pub const SYS_perf_event_open: c_long = 298; +pub const SYS_recvmmsg: c_long = 299; +pub const SYS_fanotify_init: c_long = 300; +pub const SYS_fanotify_mark: c_long = 301; +pub const SYS_prlimit64: c_long = 302; +pub const SYS_name_to_handle_at: c_long = 303; +pub const SYS_open_by_handle_at: c_long = 304; +pub const SYS_clock_adjtime: c_long = 305; +pub const SYS_syncfs: c_long = 306; +pub const SYS_sendmmsg: c_long = 307; +pub const SYS_setns: c_long = 308; +pub const SYS_getcpu: c_long = 309; +pub const SYS_process_vm_readv: c_long = 310; +pub const SYS_process_vm_writev: c_long = 311; +pub const SYS_kcmp: c_long = 312; +pub const SYS_finit_module: c_long = 313; +pub const SYS_sched_setattr: c_long = 314; +pub const SYS_sched_getattr: c_long = 315; +pub const SYS_renameat2: c_long = 316; +pub const SYS_seccomp: c_long = 317; +pub const SYS_getrandom: c_long = 318; +pub const SYS_memfd_create: c_long = 319; +pub const SYS_kexec_file_load: c_long = 320; +pub const SYS_bpf: c_long = 321; +pub const SYS_execveat: c_long = 322; +pub const SYS_userfaultfd: c_long = 323; +pub const SYS_membarrier: c_long = 324; +pub const SYS_mlock2: c_long = 325; +pub const SYS_copy_file_range: c_long = 326; +pub const SYS_preadv2: c_long = 327; +pub const SYS_pwritev2: c_long = 328; +pub const SYS_pkey_mprotect: c_long = 329; +pub const SYS_pkey_alloc: c_long = 330; +pub const SYS_pkey_free: c_long = 331; +pub const SYS_statx: c_long = 332; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; // offsets in user_regs_structs, from sys/reg.h -pub const R15: ::c_int = 0; -pub const R14: ::c_int = 1; -pub const R13: ::c_int = 2; -pub const R12: ::c_int = 3; -pub const RBP: ::c_int = 4; -pub const RBX: ::c_int = 5; -pub const R11: ::c_int = 6; -pub const R10: ::c_int = 7; -pub const R9: ::c_int = 8; -pub const R8: ::c_int = 9; -pub const RAX: ::c_int = 10; -pub const RCX: ::c_int = 11; -pub const RDX: ::c_int = 12; -pub const RSI: ::c_int = 13; -pub const RDI: ::c_int = 14; -pub const ORIG_RAX: ::c_int = 15; -pub const RIP: ::c_int = 16; -pub const CS: ::c_int = 17; -pub const EFLAGS: ::c_int = 18; -pub const RSP: ::c_int = 19; -pub const SS: ::c_int = 20; -pub const FS_BASE: ::c_int = 21; -pub const GS_BASE: ::c_int = 22; -pub const DS: ::c_int = 23; -pub const ES: ::c_int = 24; -pub const FS: ::c_int = 25; -pub const GS: ::c_int = 26; +pub const R15: c_int = 0; +pub const R14: c_int = 1; +pub const R13: c_int = 2; +pub const R12: c_int = 3; +pub const RBP: c_int = 4; +pub const RBX: c_int = 5; +pub const R11: c_int = 6; +pub const R10: c_int = 7; +pub const R9: c_int = 8; +pub const R8: c_int = 9; +pub const RAX: c_int = 10; +pub const RCX: c_int = 11; +pub const RDX: c_int = 12; +pub const RSI: c_int = 13; +pub const RDI: c_int = 14; +pub const ORIG_RAX: c_int = 15; +pub const RIP: c_int = 16; +pub const CS: c_int = 17; +pub const EFLAGS: c_int = 18; +pub const RSP: c_int = 19; +pub const SS: c_int = 20; +pub const FS_BASE: c_int = 21; +pub const GS_BASE: c_int = 22; +pub const DS: c_int = 23; +pub const ES: c_int = 24; +pub const FS: c_int = 25; +pub const GS: c_int = 26; // offsets in mcontext_t.gregs from sys/ucontext.h -pub const REG_R8: ::c_int = 0; -pub const REG_R9: ::c_int = 1; -pub const REG_R10: ::c_int = 2; -pub const REG_R11: ::c_int = 3; -pub const REG_R12: ::c_int = 4; -pub const REG_R13: ::c_int = 5; -pub const REG_R14: ::c_int = 6; -pub const REG_R15: ::c_int = 7; -pub const REG_RDI: ::c_int = 8; -pub const REG_RSI: ::c_int = 9; -pub const REG_RBP: ::c_int = 10; -pub const REG_RBX: ::c_int = 11; -pub const REG_RDX: ::c_int = 12; -pub const REG_RAX: ::c_int = 13; -pub const REG_RCX: ::c_int = 14; -pub const REG_RSP: ::c_int = 15; -pub const REG_RIP: ::c_int = 16; -pub const REG_EFL: ::c_int = 17; -pub const REG_CSGSFS: ::c_int = 18; -pub const REG_ERR: ::c_int = 19; -pub const REG_TRAPNO: ::c_int = 20; -pub const REG_OLDMASK: ::c_int = 21; -pub const REG_CR2: ::c_int = 22; +pub const REG_R8: c_int = 0; +pub const REG_R9: c_int = 1; +pub const REG_R10: c_int = 2; +pub const REG_R11: c_int = 3; +pub const REG_R12: c_int = 4; +pub const REG_R13: c_int = 5; +pub const REG_R14: c_int = 6; +pub const REG_R15: c_int = 7; +pub const REG_RDI: c_int = 8; +pub const REG_RSI: c_int = 9; +pub const REG_RBP: c_int = 10; +pub const REG_RBX: c_int = 11; +pub const REG_RDX: c_int = 12; +pub const REG_RAX: c_int = 13; +pub const REG_RCX: c_int = 14; +pub const REG_RSP: c_int = 15; +pub const REG_RIP: c_int = 16; +pub const REG_EFL: c_int = 17; +pub const REG_CSGSFS: c_int = 18; +pub const REG_ERR: c_int = 19; +pub const REG_TRAPNO: c_int = 20; +pub const REG_OLDMASK: c_int = 21; +pub const REG_CR2: c_int = 22; // From NDK's asm/auxvec.h -pub const AT_SYSINFO_EHDR: ::c_ulong = 33; -pub const AT_VECTOR_SIZE_ARCH: ::c_ulong = 3; +pub const AT_SYSINFO_EHDR: c_ulong = 33; +pub const AT_VECTOR_SIZE_ARCH: c_ulong = 3; diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index db83b494a4a48..8c3c488cbcc82 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1,37 +1,41 @@ //! Android-specific definitions for linux-like values -pub type clock_t = ::c_long; -pub type time_t = ::c_long; -pub type suseconds_t = ::c_long; -pub type off_t = ::c_long; -pub type blkcnt_t = ::c_ulong; -pub type blksize_t = ::c_ulong; +use crate::{ + c_int, c_longlong, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, size_t, ssize_t, +}; + +pub type clock_t = c_long; +pub type time_t = c_long; +pub type suseconds_t = c_long; +pub type off_t = c_long; +pub type blkcnt_t = c_ulong; +pub type blksize_t = c_ulong; pub type nlink_t = u32; pub type useconds_t = u32; -pub type pthread_t = ::c_long; -pub type pthread_mutexattr_t = ::c_long; -pub type pthread_rwlockattr_t = ::c_long; -pub type pthread_barrierattr_t = ::c_int; -pub type pthread_condattr_t = ::c_long; -pub type pthread_key_t = ::c_int; -pub type fsfilcnt_t = ::c_ulong; -pub type fsblkcnt_t = ::c_ulong; -pub type nfds_t = ::c_uint; -pub type rlim_t = ::c_ulong; -pub type dev_t = ::c_ulong; -pub type ino_t = ::c_ulong; +pub type pthread_t = c_long; +pub type pthread_mutexattr_t = c_long; +pub type pthread_rwlockattr_t = c_long; +pub type pthread_barrierattr_t = c_int; +pub type pthread_condattr_t = c_long; +pub type pthread_key_t = c_int; +pub type fsfilcnt_t = c_ulong; +pub type fsblkcnt_t = c_ulong; +pub type nfds_t = c_uint; +pub type rlim_t = c_ulong; +pub type dev_t = c_ulong; +pub type ino_t = c_ulong; pub type ino64_t = u64; -pub type __CPU_BITTYPE = ::c_ulong; -pub type idtype_t = ::c_int; -pub type loff_t = ::c_longlong; -pub type __kernel_loff_t = ::c_longlong; -pub type __kernel_pid_t = ::c_int; - -pub type __u8 = ::c_uchar; -pub type __u16 = ::c_ushort; -pub type __s16 = ::c_short; -pub type __u32 = ::c_uint; -pub type __s32 = ::c_int; +pub type __CPU_BITTYPE = c_ulong; +pub type idtype_t = c_int; +pub type loff_t = c_longlong; +pub type __kernel_loff_t = c_longlong; +pub type __kernel_pid_t = c_int; + +pub type __u8 = c_uchar; +pub type __u16 = c_ushort; +pub type __s16 = c_short; +pub type __u32 = c_uint; +pub type __s32 = c_int; // linux/elf.h @@ -49,83 +53,83 @@ pub type Elf64_Xword = u64; pub type eventfd_t = u64; // these structs sit behind a heap allocation on Android -pub type posix_spawn_file_actions_t = *mut ::c_void; -pub type posix_spawnattr_t = *mut ::c_void; +pub type posix_spawn_file_actions_t = *mut c_void; +pub type posix_spawnattr_t = *mut c_void; s! { pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } pub struct __fsid_t { - __val: [::c_int; 2], + __val: [c_int; 2], } pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::size_t, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::size_t, - pub msg_flags: ::c_int, + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: size_t, + pub msg_control: *mut c_void, + pub msg_controllen: size_t, + pub msg_flags: c_int, } pub struct cmsghdr { - pub cmsg_len: ::size_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub cmsg_len: size_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; crate::NCCS], } pub struct termios2 { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; 19], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; 19], + pub c_ispeed: crate::speed_t, + pub c_ospeed: crate::speed_t, } pub struct mallinfo { - pub arena: ::size_t, - pub ordblks: ::size_t, - pub smblks: ::size_t, - pub hblks: ::size_t, - pub hblkhd: ::size_t, - pub usmblks: ::size_t, - pub fsmblks: ::size_t, - pub uordblks: ::size_t, - pub fordblks: ::size_t, - pub keepcost: ::size_t, + pub arena: size_t, + pub ordblks: size_t, + pub smblks: size_t, + pub hblks: size_t, + pub hblkhd: size_t, + pub usmblks: size_t, + pub fsmblks: size_t, + pub uordblks: size_t, + pub fordblks: size_t, + pub keepcost: size_t, } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::__kernel_loff_t, - pub l_len: ::__kernel_loff_t, - pub l_pid: ::__kernel_pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: crate::__kernel_loff_t, + pub l_len: crate::__kernel_loff_t, + pub l_pid: crate::__kernel_pid_t, } pub struct cpu_set_t { @@ -136,28 +140,28 @@ s! { } pub struct sem_t { - count: ::c_uint, + count: c_uint, #[cfg(target_pointer_width = "64")] - __reserved: [::c_int; 3], + __reserved: [c_int; 3], } pub struct exit_status { - pub e_termination: ::c_short, - pub e_exit: ::c_short, + pub e_termination: c_short, + pub e_exit: c_short, } 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, #[cfg(target_pointer_width = "64")] __f_reserved: [u32; 6], } @@ -175,10 +179,10 @@ s! { pub ssi_trapno: u32, pub ssi_status: i32, pub ssi_int: i32, - pub ssi_ptr: ::c_ulonglong, - pub ssi_utime: ::c_ulonglong, - pub ssi_stime: ::c_ulonglong, - pub ssi_addr: ::c_ulonglong, + pub ssi_ptr: c_ulonglong, + pub ssi_utime: c_ulonglong, + pub ssi_stime: c_ulonglong, + pub ssi_addr: c_ulonglong, pub ssi_addr_lsb: u16, _pad2: u16, pub ssi_syscall: i32, @@ -188,14 +192,14 @@ s! { } pub struct itimerspec { - pub it_interval: ::timespec, - pub it_value: ::timespec, + pub it_interval: crate::timespec, + pub it_value: crate::timespec, } pub struct ucred { - pub pid: ::pid_t, - pub uid: ::uid_t, - pub gid: ::gid_t, + pub pid: crate::pid_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, } pub struct genlmsghdr { @@ -213,7 +217,7 @@ s! { } pub struct nlmsgerr { - pub error: ::c_int, + pub error: c_int, pub msg: nlmsghdr, } @@ -222,15 +226,15 @@ s! { } pub struct nl_mmap_req { - pub nm_block_size: ::c_uint, - pub nm_block_nr: ::c_uint, - pub nm_frame_size: ::c_uint, - pub nm_frame_nr: ::c_uint, + pub nm_block_size: c_uint, + pub nm_block_nr: c_uint, + pub nm_frame_size: c_uint, + pub nm_frame_nr: c_uint, } pub struct nl_mmap_hdr { - pub nm_status: ::c_uint, - pub nm_len: ::c_uint, + pub nm_status: c_uint, + pub nm_len: c_uint, pub nm_group: u32, pub nm_pid: u32, pub nm_uid: u32, @@ -243,12 +247,12 @@ s! { } pub struct in6_pktinfo { - pub ipi6_addr: ::in6_addr, - pub ipi6_ifindex: ::c_int, + pub ipi6_addr: crate::in6_addr, + pub ipi6_ifindex: c_int, } pub struct inotify_event { - pub wd: ::c_int, + pub wd: c_int, pub mask: u32, pub cookie: u32, pub len: u32, @@ -265,22 +269,22 @@ s! { } pub struct regex_t { - re_magic: ::c_int, - re_nsub: ::size_t, - re_endp: *const ::c_char, - re_guts: *mut ::c_void, + re_magic: c_int, + re_nsub: size_t, + re_endp: *const c_char, + re_guts: *mut c_void, } pub struct regmatch_t { - pub rm_so: ::ssize_t, - pub rm_eo: ::ssize_t, + pub rm_so: ssize_t, + pub rm_eo: ssize_t, } pub struct sockaddr_vm { - pub svm_family: ::sa_family_t, - pub svm_reserved1: ::c_ushort, - pub svm_port: ::c_uint, - pub svm_cid: ::c_uint, + pub svm_family: crate::sa_family_t, + pub svm_reserved1: c_ushort, + pub svm_port: c_uint, + pub svm_cid: c_uint, pub svm_zero: [u8; 4], } @@ -316,7 +320,7 @@ s! { #[cfg(target_pointer_width = "32")] pub dlpi_addr: Elf32_Addr, - pub dlpi_name: *const ::c_char, + pub dlpi_name: *const c_char, #[cfg(target_pointer_width = "64")] pub dlpi_phdr: *const Elf64_Phdr, @@ -329,143 +333,143 @@ s! { pub dlpi_phnum: Elf32_Half, // These fields were added in Android R - pub dlpi_adds: ::c_ulonglong, - pub dlpi_subs: ::c_ulonglong, - pub dlpi_tls_modid: ::size_t, - pub dlpi_tls_data: *mut ::c_void, + pub dlpi_adds: c_ulonglong, + pub dlpi_subs: c_ulonglong, + pub dlpi_tls_modid: size_t, + pub dlpi_tls_data: *mut c_void, } // linux/filter.h pub struct sock_filter { - pub code: ::__u16, - pub jt: ::__u8, - pub jf: ::__u8, - pub k: ::__u32, + pub code: crate::__u16, + pub jt: crate::__u8, + pub jf: crate::__u8, + pub k: crate::__u32, } pub struct sock_fprog { - pub len: ::c_ushort, + pub len: c_ushort, pub filter: *mut sock_filter, } // linux/seccomp.h pub struct seccomp_data { - pub nr: ::c_int, - pub arch: ::__u32, - pub instruction_pointer: ::__u64, - pub args: [::__u64; 6], + pub nr: c_int, + pub arch: crate::__u32, + pub instruction_pointer: crate::__u64, + pub args: [crate::__u64; 6], } pub struct seccomp_metadata { - pub filter_off: ::__u64, - pub flags: ::__u64, + pub filter_off: crate::__u64, + pub flags: crate::__u64, } pub struct ptrace_peeksiginfo_args { - pub off: ::__u64, - pub flags: ::__u32, - pub nr: ::__s32, + pub off: crate::__u64, + pub flags: crate::__u32, + pub nr: crate::__s32, } // linux/input.h pub struct input_event { - pub time: ::timeval, - pub type_: ::__u16, - pub code: ::__u16, - pub value: ::__s32, + pub time: crate::timeval, + pub type_: crate::__u16, + pub code: crate::__u16, + pub value: crate::__s32, } pub struct input_id { - pub bustype: ::__u16, - pub vendor: ::__u16, - pub product: ::__u16, - pub version: ::__u16, + pub bustype: crate::__u16, + pub vendor: crate::__u16, + pub product: crate::__u16, + pub version: crate::__u16, } pub struct input_absinfo { - pub value: ::__s32, - pub minimum: ::__s32, - pub maximum: ::__s32, - pub fuzz: ::__s32, - pub flat: ::__s32, - pub resolution: ::__s32, + pub value: crate::__s32, + pub minimum: crate::__s32, + pub maximum: crate::__s32, + pub fuzz: crate::__s32, + pub flat: crate::__s32, + pub resolution: crate::__s32, } pub struct input_keymap_entry { - pub flags: ::__u8, - pub len: ::__u8, - pub index: ::__u16, - pub keycode: ::__u32, - pub scancode: [::__u8; 32], + pub flags: crate::__u8, + pub len: crate::__u8, + pub index: crate::__u16, + pub keycode: crate::__u32, + pub scancode: [crate::__u8; 32], } pub struct input_mask { - pub type_: ::__u32, - pub codes_size: ::__u32, - pub codes_ptr: ::__u64, + pub type_: crate::__u32, + pub codes_size: crate::__u32, + pub codes_ptr: crate::__u64, } pub struct ff_replay { - pub length: ::__u16, - pub delay: ::__u16, + pub length: crate::__u16, + pub delay: crate::__u16, } pub struct ff_trigger { - pub button: ::__u16, - pub interval: ::__u16, + pub button: crate::__u16, + pub interval: crate::__u16, } pub struct ff_envelope { - pub attack_length: ::__u16, - pub attack_level: ::__u16, - pub fade_length: ::__u16, - pub fade_level: ::__u16, + pub attack_length: crate::__u16, + pub attack_level: crate::__u16, + pub fade_length: crate::__u16, + pub fade_level: crate::__u16, } pub struct ff_constant_effect { - pub level: ::__s16, + pub level: crate::__s16, pub envelope: ff_envelope, } pub struct ff_ramp_effect { - pub start_level: ::__s16, - pub end_level: ::__s16, + pub start_level: crate::__s16, + pub end_level: crate::__s16, pub envelope: ff_envelope, } pub struct ff_condition_effect { - pub right_saturation: ::__u16, - pub left_saturation: ::__u16, + pub right_saturation: crate::__u16, + pub left_saturation: crate::__u16, - pub right_coeff: ::__s16, - pub left_coeff: ::__s16, + pub right_coeff: crate::__s16, + pub left_coeff: crate::__s16, - pub deadband: ::__u16, - pub center: ::__s16, + pub deadband: crate::__u16, + pub center: crate::__s16, } pub struct ff_periodic_effect { - pub waveform: ::__u16, - pub period: ::__u16, - pub magnitude: ::__s16, - pub offset: ::__s16, - pub phase: ::__u16, + pub waveform: crate::__u16, + pub period: crate::__u16, + pub magnitude: crate::__s16, + pub offset: crate::__s16, + pub phase: crate::__u16, pub envelope: ff_envelope, - pub custom_len: ::__u32, - pub custom_data: *mut ::__s16, + pub custom_len: crate::__u32, + pub custom_data: *mut crate::__s16, } pub struct ff_rumble_effect { - pub strong_magnitude: ::__u16, - pub weak_magnitude: ::__u16, + pub strong_magnitude: crate::__u16, + pub weak_magnitude: crate::__u16, } pub struct ff_effect { - pub type_: ::__u16, - pub id: ::__s16, - pub direction: ::__u16, + pub type_: crate::__u16, + pub id: crate::__s16, + pub direction: crate::__u16, pub trigger: ff_trigger, pub replay: ff_replay, // FIXME(1.0): this is actually a union @@ -477,50 +481,50 @@ s! { // linux/uinput.h pub struct uinput_ff_upload { - pub request_id: ::__u32, - pub retval: ::__s32, + pub request_id: crate::__u32, + pub retval: crate::__s32, pub effect: ff_effect, pub old: ff_effect, } pub struct uinput_ff_erase { - pub request_id: ::__u32, - pub retval: ::__s32, - pub effect_id: ::__u32, + pub request_id: crate::__u32, + pub retval: crate::__s32, + pub effect_id: crate::__u32, } pub struct uinput_abs_setup { - pub code: ::__u16, + pub code: crate::__u16, pub absinfo: input_absinfo, } pub struct option { - pub name: *const ::c_char, - pub has_arg: ::c_int, - pub flag: *mut ::c_int, - pub val: ::c_int, + pub name: *const c_char, + pub has_arg: c_int, + pub flag: *mut c_int, + pub val: c_int, } pub struct __c_anonymous_ifru_map { - pub mem_start: ::c_ulong, - pub mem_end: ::c_ulong, - pub base_addr: ::c_ushort, - pub irq: ::c_uchar, - pub dma: ::c_uchar, - pub port: ::c_uchar, + pub mem_start: c_ulong, + pub mem_end: c_ulong, + pub base_addr: c_ushort, + pub irq: c_uchar, + pub dma: c_uchar, + pub port: c_uchar, } pub struct in6_ifreq { - pub ifr6_addr: ::in6_addr, + pub ifr6_addr: crate::in6_addr, pub ifr6_prefixlen: u32, - pub ifr6_ifindex: ::c_int, + pub ifr6_ifindex: c_int, } } s_no_extra_traits! { pub struct sockaddr_nl { - pub nl_family: ::sa_family_t, - nl_pad: ::c_ushort, + pub nl_family: crate::sa_family_t, + nl_pad: c_ushort, pub nl_pid: u32, pub nl_groups: u32, } @@ -528,69 +532,69 @@ s_no_extra_traits! { pub struct dirent { pub d_ino: u64, pub d_off: i64, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], + pub d_reclen: c_ushort, + pub d_type: c_uchar, + pub d_name: [c_char; 256], } pub struct dirent64 { pub d_ino: u64, pub d_off: i64, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], + pub d_reclen: c_ushort, + pub d_type: c_uchar, + pub d_name: [c_char; 256], } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, + pub _pad: [c_int; 29], _align: [usize; 0], } pub struct lastlog { - ll_time: ::time_t, - ll_line: [::c_char; UT_LINESIZE], - ll_host: [::c_char; UT_HOSTSIZE], + ll_time: crate::time_t, + ll_line: [c_char; UT_LINESIZE], + ll_host: [c_char; UT_HOSTSIZE], } pub struct utmp { - pub ut_type: ::c_short, - pub ut_pid: ::pid_t, - pub ut_line: [::c_char; UT_LINESIZE], - pub ut_id: [::c_char; 4], - pub ut_user: [::c_char; UT_NAMESIZE], - pub ut_host: [::c_char; UT_HOSTSIZE], + pub ut_type: c_short, + pub ut_pid: crate::pid_t, + pub ut_line: [c_char; UT_LINESIZE], + pub ut_id: [c_char; 4], + pub ut_user: [c_char; UT_NAMESIZE], + pub ut_host: [c_char; UT_HOSTSIZE], pub ut_exit: exit_status, - pub ut_session: ::c_long, - pub ut_tv: ::timeval, + pub ut_session: c_long, + pub ut_tv: crate::timeval, pub ut_addr_v6: [i32; 4], - unused: [::c_char; 20], + unused: [c_char; 20], } pub struct sockaddr_alg { - pub salg_family: ::sa_family_t, - pub salg_type: [::c_uchar; 14], + pub salg_family: crate::sa_family_t, + pub salg_type: [c_uchar; 14], pub salg_feat: u32, pub salg_mask: u32, - pub salg_name: [::c_uchar; 64], + pub salg_name: [c_uchar; 64], } pub struct uinput_setup { pub id: input_id, - pub name: [::c_char; UINPUT_MAX_NAME_SIZE], - pub ff_effects_max: ::__u32, + pub name: [c_char; UINPUT_MAX_NAME_SIZE], + pub ff_effects_max: crate::__u32, } pub struct uinput_user_dev { - pub name: [::c_char; UINPUT_MAX_NAME_SIZE], + pub name: [c_char; UINPUT_MAX_NAME_SIZE], pub id: input_id, - pub ff_effects_max: ::__u32, - pub absmax: [::__s32; ABS_CNT], - pub absmin: [::__s32; ABS_CNT], - pub absfuzz: [::__s32; ABS_CNT], - pub absflat: [::__s32; ABS_CNT], + pub ff_effects_max: crate::__u32, + pub absmax: [crate::__s32; ABS_CNT], + pub absmin: [crate::__s32; ABS_CNT], + pub absfuzz: [crate::__s32; ABS_CNT], + pub absflat: [crate::__s32; ABS_CNT], } /// WARNING: The `PartialEq`, `Eq` and `Hash` implementations of this @@ -602,47 +606,47 @@ s_no_extra_traits! { )] pub struct af_alg_iv { pub ivlen: u32, - pub iv: [::c_uchar; 0], + pub iv: [c_uchar; 0], } pub struct prop_info { - __name: [::c_char; 32], - __serial: ::c_uint, - __value: [::c_char; 92], + __name: [c_char; 32], + __serial: c_uint, + __value: [c_char; 92], } pub union __c_anonymous_ifr_ifru { - pub ifru_addr: ::sockaddr, - pub ifru_dstaddr: ::sockaddr, - pub ifru_broadaddr: ::sockaddr, - pub ifru_netmask: ::sockaddr, - pub ifru_hwaddr: ::sockaddr, - pub ifru_flags: ::c_short, - pub ifru_ifindex: ::c_int, - pub ifru_metric: ::c_int, - pub ifru_mtu: ::c_int, + pub ifru_addr: crate::sockaddr, + pub ifru_dstaddr: crate::sockaddr, + pub ifru_broadaddr: crate::sockaddr, + pub ifru_netmask: crate::sockaddr, + pub ifru_hwaddr: crate::sockaddr, + pub ifru_flags: c_short, + pub ifru_ifindex: c_int, + pub ifru_metric: c_int, + pub ifru_mtu: c_int, pub ifru_map: __c_anonymous_ifru_map, - pub ifru_slave: [::c_char; ::IFNAMSIZ], - pub ifru_newname: [::c_char; ::IFNAMSIZ], - pub ifru_data: *mut ::c_char, + pub ifru_slave: [c_char; crate::IFNAMSIZ], + pub ifru_newname: [c_char; crate::IFNAMSIZ], + pub ifru_data: *mut c_char, } pub struct ifreq { /// interface name, e.g. "en0" - pub ifr_name: [::c_char; ::IFNAMSIZ], + pub ifr_name: [c_char; crate::IFNAMSIZ], pub ifr_ifru: __c_anonymous_ifr_ifru, } pub union __c_anonymous_ifc_ifcu { - pub ifcu_buf: *mut ::c_char, - pub ifcu_req: *mut ::ifreq, + pub ifcu_buf: *mut c_char, + pub ifcu_req: *mut crate::ifreq, } /* Structure used in SIOCGIFCONF request. Used to retrieve interface configuration for machine (useful for programs which must know all networks accessible). */ pub struct ifconf { - pub ifc_len: ::c_int, /* Size of buffer. */ + pub ifc_len: c_int, /* Size of buffer. */ pub ifc_ifcu: __c_anonymous_ifc_ifcu, } } @@ -657,8 +661,8 @@ cfg_if! { } } impl Eq for sockaddr_nl {} - impl ::fmt::Debug for sockaddr_nl { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_nl { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_nl") .field("nl_family", &self.nl_family) .field("nl_pid", &self.nl_pid) @@ -666,8 +670,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sockaddr_nl { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_nl { + fn hash(&self, state: &mut H) { self.nl_family.hash(state); self.nl_pid.hash(state); self.nl_groups.hash(state); @@ -690,8 +694,8 @@ cfg_if! { impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -702,8 +706,8 @@ cfg_if! { } } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -728,8 +732,8 @@ cfg_if! { impl Eq for dirent64 {} - impl ::fmt::Debug for dirent64 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent64 { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent64") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -740,8 +744,8 @@ cfg_if! { } } - impl ::hash::Hash for dirent64 { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent64 { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -762,8 +766,8 @@ cfg_if! { impl Eq for siginfo_t {} - impl ::fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for siginfo_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("siginfo_t") .field("si_signo", &self.si_signo) .field("si_errno", &self.si_errno) @@ -774,8 +778,8 @@ cfg_if! { } } - impl ::hash::Hash for siginfo_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for siginfo_t { + fn hash(&self, state: &mut H) { self.si_signo.hash(state); self.si_errno.hash(state); self.si_code.hash(state); @@ -802,8 +806,8 @@ cfg_if! { impl Eq for lastlog {} - impl ::fmt::Debug for lastlog { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for lastlog { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("lastlog") .field("ll_time", &self.ll_time) .field("ll_line", &self.ll_line) @@ -812,8 +816,8 @@ cfg_if! { } } - impl ::hash::Hash for lastlog { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for lastlog { + fn hash(&self, state: &mut H) { self.ll_time.hash(state); self.ll_line.hash(state); self.ll_host.hash(state); @@ -850,8 +854,8 @@ cfg_if! { impl Eq for utmp {} - impl ::fmt::Debug for utmp { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utmp { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utmp") .field("ut_type", &self.ut_type) .field("ut_pid", &self.ut_pid) @@ -868,8 +872,8 @@ cfg_if! { } } - impl ::hash::Hash for utmp { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utmp { + fn hash(&self, state: &mut H) { self.ut_type.hash(state); self.ut_pid.hash(state); self.ut_line.hash(state); @@ -904,8 +908,8 @@ cfg_if! { impl Eq for sockaddr_alg {} - impl ::fmt::Debug for sockaddr_alg { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_alg { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_alg") .field("salg_family", &self.salg_family) .field("salg_type", &self.salg_type) @@ -916,8 +920,8 @@ cfg_if! { } } - impl ::hash::Hash for sockaddr_alg { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_alg { + fn hash(&self, state: &mut H) { self.salg_family.hash(state); self.salg_type.hash(state); self.salg_feat.hash(state); @@ -935,8 +939,8 @@ cfg_if! { } impl Eq for uinput_setup {} - impl ::fmt::Debug for uinput_setup { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for uinput_setup { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("uinput_setup") .field("id", &self.id) .field("name", &&self.name[..]) @@ -945,8 +949,8 @@ cfg_if! { } } - impl ::hash::Hash for uinput_setup { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for uinput_setup { + fn hash(&self, state: &mut H) { self.id.hash(state); self.name.hash(state); self.ff_effects_max.hash(state); @@ -966,8 +970,8 @@ cfg_if! { } impl Eq for uinput_user_dev {} - impl ::fmt::Debug for uinput_user_dev { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for uinput_user_dev { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("uinput_setup") .field("name", &&self.name[..]) .field("id", &self.id) @@ -980,8 +984,8 @@ cfg_if! { } } - impl ::hash::Hash for uinput_user_dev { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for uinput_user_dev { + fn hash(&self, state: &mut H) { self.name.hash(state); self.id.hash(state); self.ff_effects_max.hash(state); @@ -992,8 +996,8 @@ cfg_if! { } } - impl ::fmt::Debug for __c_anonymous_ifr_ifru { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_ifr_ifru { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ifr_ifru") .field("ifru_addr", unsafe { &self.ifru_addr }) .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) @@ -1011,8 +1015,8 @@ cfg_if! { .finish() } } - impl ::fmt::Debug for ifreq { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ifreq { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ifreq") .field("ifr_name", &self.ifr_name) .field("ifr_ifru", &self.ifr_ifru) @@ -1020,16 +1024,16 @@ cfg_if! { } } - impl ::fmt::Debug for __c_anonymous_ifc_ifcu { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_ifc_ifcu { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ifr_ifru") .field("ifcu_buf", unsafe { &self.ifcu_buf }) .field("ifcu_req", unsafe { &self.ifcu_req }) .finish() } } - impl ::fmt::Debug for ifconf { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ifconf { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ifconf") .field("ifc_len", &self.ifc_len) .field("ifc_ifcu", &self.ifc_ifcu) @@ -1055,8 +1059,8 @@ cfg_if! { impl Eq for af_alg_iv {} #[allow(deprecated)] - impl ::fmt::Debug for af_alg_iv { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for af_alg_iv { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("af_alg_iv") .field("ivlen", &self.ivlen) .finish() @@ -1064,8 +1068,8 @@ cfg_if! { } #[allow(deprecated)] - impl ::hash::Hash for af_alg_iv { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for af_alg_iv { + fn hash(&self, state: &mut H) { self.as_slice().hash(state); } } @@ -1078,8 +1082,8 @@ cfg_if! { } } impl Eq for prop_info {} - impl ::fmt::Debug for prop_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for prop_info { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("prop_info") .field("__name", &self.__name) .field("__serial", &self.__serial) @@ -1090,309 +1094,309 @@ cfg_if! { } } -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MS_NOUSER: ::c_ulong = 0xffffffff80000000; -pub const MS_RMT_MASK: ::c_ulong = 0x02800051; - -pub const O_TRUNC: ::c_int = 512; -pub const O_CLOEXEC: ::c_int = 0x80000; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_NOATIME: ::c_int = 0o1000000; - -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MS_NOUSER: c_ulong = 0xffffffff80000000; +pub const MS_RMT_MASK: c_ulong = 0x02800051; + +pub const O_TRUNC: c_int = 512; +pub const O_CLOEXEC: c_int = 0x80000; +pub const O_PATH: c_int = 0o10000000; +pub const O_NOATIME: c_int = 0o1000000; + +pub const EBFONT: c_int = 59; +pub const ENOSTR: c_int = 60; +pub const ENODATA: c_int = 61; +pub const ETIME: c_int = 62; +pub const ENOSR: c_int = 63; +pub const ENONET: c_int = 64; +pub const ENOPKG: c_int = 65; +pub const EREMOTE: c_int = 66; +pub const ENOLINK: c_int = 67; +pub const EADV: c_int = 68; +pub const ESRMNT: c_int = 69; +pub const ECOMM: c_int = 70; +pub const EPROTO: c_int = 71; +pub const EDOTDOT: c_int = 73; + +pub const EPOLL_CLOEXEC: c_int = 0x80000; // sys/eventfd.h -pub const EFD_SEMAPHORE: ::c_int = 0x1; -pub const EFD_CLOEXEC: ::c_int = O_CLOEXEC; -pub const EFD_NONBLOCK: ::c_int = O_NONBLOCK; +pub const EFD_SEMAPHORE: c_int = 0x1; +pub const EFD_CLOEXEC: c_int = O_CLOEXEC; +pub const EFD_NONBLOCK: c_int = O_NONBLOCK; // sys/timerfd.h -pub const TFD_CLOEXEC: ::c_int = O_CLOEXEC; -pub const TFD_NONBLOCK: ::c_int = O_NONBLOCK; -pub const TFD_TIMER_ABSTIME: ::c_int = 1; -pub const TFD_TIMER_CANCEL_ON_SET: ::c_int = 2; +pub const TFD_CLOEXEC: c_int = O_CLOEXEC; +pub const TFD_NONBLOCK: c_int = O_NONBLOCK; +pub const TFD_TIMER_ABSTIME: c_int = 1; +pub const TFD_TIMER_CANCEL_ON_SET: c_int = 2; -pub const USER_PROCESS: ::c_short = 7; +pub const USER_PROCESS: c_short = 7; -pub const _POSIX_VDISABLE: ::cc_t = 0; +pub const _POSIX_VDISABLE: crate::cc_t = 0; // linux/falloc.h -pub const FALLOC_FL_KEEP_SIZE: ::c_int = 0x01; -pub const FALLOC_FL_PUNCH_HOLE: ::c_int = 0x02; -pub const FALLOC_FL_NO_HIDE_STALE: ::c_int = 0x04; -pub const FALLOC_FL_COLLAPSE_RANGE: ::c_int = 0x08; -pub const FALLOC_FL_ZERO_RANGE: ::c_int = 0x10; -pub const FALLOC_FL_INSERT_RANGE: ::c_int = 0x20; -pub const FALLOC_FL_UNSHARE_RANGE: ::c_int = 0x40; - -pub const BUFSIZ: ::c_uint = 1024; -pub const FILENAME_MAX: ::c_uint = 4096; -pub const FOPEN_MAX: ::c_uint = 20; -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; -pub const L_tmpnam: ::c_uint = 4096; -pub const TMP_MAX: ::c_uint = 308915776; -pub const _PC_LINK_MAX: ::c_int = 1; -pub const _PC_MAX_CANON: ::c_int = 2; -pub const _PC_MAX_INPUT: ::c_int = 3; -pub const _PC_NAME_MAX: ::c_int = 4; -pub const _PC_PATH_MAX: ::c_int = 5; -pub const _PC_PIPE_BUF: ::c_int = 6; -pub const _PC_2_SYMLINKS: ::c_int = 7; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 8; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 9; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 10; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 11; -pub const _PC_REC_XFER_ALIGN: ::c_int = 12; -pub const _PC_SYMLINK_MAX: ::c_int = 13; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 14; -pub const _PC_NO_TRUNC: ::c_int = 15; -pub const _PC_VDISABLE: ::c_int = 16; -pub const _PC_ASYNC_IO: ::c_int = 17; -pub const _PC_PRIO_IO: ::c_int = 18; -pub const _PC_SYNC_IO: ::c_int = 19; - -pub const FIONBIO: ::c_int = 0x5421; - -pub const _SC_ARG_MAX: ::c_int = 0x0000; -pub const _SC_BC_BASE_MAX: ::c_int = 0x0001; -pub const _SC_BC_DIM_MAX: ::c_int = 0x0002; -pub const _SC_BC_SCALE_MAX: ::c_int = 0x0003; -pub const _SC_BC_STRING_MAX: ::c_int = 0x0004; -pub const _SC_CHILD_MAX: ::c_int = 0x0005; -pub const _SC_CLK_TCK: ::c_int = 0x0006; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 0x0007; -pub const _SC_EXPR_NEST_MAX: ::c_int = 0x0008; -pub const _SC_LINE_MAX: ::c_int = 0x0009; -pub const _SC_NGROUPS_MAX: ::c_int = 0x000a; -pub const _SC_OPEN_MAX: ::c_int = 0x000b; -pub const _SC_PASS_MAX: ::c_int = 0x000c; -pub const _SC_2_C_BIND: ::c_int = 0x000d; -pub const _SC_2_C_DEV: ::c_int = 0x000e; -pub const _SC_2_C_VERSION: ::c_int = 0x000f; -pub const _SC_2_CHAR_TERM: ::c_int = 0x0010; -pub const _SC_2_FORT_DEV: ::c_int = 0x0011; -pub const _SC_2_FORT_RUN: ::c_int = 0x0012; -pub const _SC_2_LOCALEDEF: ::c_int = 0x0013; -pub const _SC_2_SW_DEV: ::c_int = 0x0014; -pub const _SC_2_UPE: ::c_int = 0x0015; -pub const _SC_2_VERSION: ::c_int = 0x0016; -pub const _SC_JOB_CONTROL: ::c_int = 0x0017; -pub const _SC_SAVED_IDS: ::c_int = 0x0018; -pub const _SC_VERSION: ::c_int = 0x0019; -pub const _SC_RE_DUP_MAX: ::c_int = 0x001a; -pub const _SC_STREAM_MAX: ::c_int = 0x001b; -pub const _SC_TZNAME_MAX: ::c_int = 0x001c; -pub const _SC_XOPEN_CRYPT: ::c_int = 0x001d; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 0x001e; -pub const _SC_XOPEN_SHM: ::c_int = 0x001f; -pub const _SC_XOPEN_VERSION: ::c_int = 0x0020; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 0x0021; -pub const _SC_XOPEN_REALTIME: ::c_int = 0x0022; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 0x0023; -pub const _SC_XOPEN_LEGACY: ::c_int = 0x0024; -pub const _SC_ATEXIT_MAX: ::c_int = 0x0025; -pub const _SC_IOV_MAX: ::c_int = 0x0026; -pub const _SC_UIO_MAXIOV: ::c_int = _SC_IOV_MAX; -pub const _SC_PAGESIZE: ::c_int = 0x0027; -pub const _SC_PAGE_SIZE: ::c_int = 0x0028; -pub const _SC_XOPEN_UNIX: ::c_int = 0x0029; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 0x002a; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 0x002b; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 0x002c; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 0x002d; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 0x002e; -pub const _SC_AIO_MAX: ::c_int = 0x002f; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 0x0030; -pub const _SC_DELAYTIMER_MAX: ::c_int = 0x0031; -pub const _SC_MQ_OPEN_MAX: ::c_int = 0x0032; -pub const _SC_MQ_PRIO_MAX: ::c_int = 0x0033; -pub const _SC_RTSIG_MAX: ::c_int = 0x0034; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 0x0035; -pub const _SC_SEM_VALUE_MAX: ::c_int = 0x0036; -pub const _SC_SIGQUEUE_MAX: ::c_int = 0x0037; -pub const _SC_TIMER_MAX: ::c_int = 0x0038; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 0x0039; -pub const _SC_FSYNC: ::c_int = 0x003a; -pub const _SC_MAPPED_FILES: ::c_int = 0x003b; -pub const _SC_MEMLOCK: ::c_int = 0x003c; -pub const _SC_MEMLOCK_RANGE: ::c_int = 0x003d; -pub const _SC_MEMORY_PROTECTION: ::c_int = 0x003e; -pub const _SC_MESSAGE_PASSING: ::c_int = 0x003f; -pub const _SC_PRIORITIZED_IO: ::c_int = 0x0040; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 0x0041; -pub const _SC_REALTIME_SIGNALS: ::c_int = 0x0042; -pub const _SC_SEMAPHORES: ::c_int = 0x0043; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 0x0044; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 0x0045; -pub const _SC_TIMERS: ::c_int = 0x0046; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 0x0047; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 0x0048; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 0x0049; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 0x004a; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 0x004b; -pub const _SC_THREAD_STACK_MIN: ::c_int = 0x004c; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 0x004d; -pub const _SC_TTY_NAME_MAX: ::c_int = 0x004e; -pub const _SC_THREADS: ::c_int = 0x004f; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 0x0050; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 0x0051; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 0x0052; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 0x0053; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 0x0054; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 0x0055; -pub const _SC_NPROCESSORS_CONF: ::c_int = 0x0060; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 0x0061; -pub const _SC_PHYS_PAGES: ::c_int = 0x0062; -pub const _SC_AVPHYS_PAGES: ::c_int = 0x0063; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 0x0064; -pub const _SC_2_PBS: ::c_int = 0x0065; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 0x0066; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 0x0067; -pub const _SC_2_PBS_LOCATE: ::c_int = 0x0068; -pub const _SC_2_PBS_MESSAGE: ::c_int = 0x0069; -pub const _SC_2_PBS_TRACK: ::c_int = 0x006a; -pub const _SC_ADVISORY_INFO: ::c_int = 0x006b; -pub const _SC_BARRIERS: ::c_int = 0x006c; -pub const _SC_CLOCK_SELECTION: ::c_int = 0x006d; -pub const _SC_CPUTIME: ::c_int = 0x006e; -pub const _SC_HOST_NAME_MAX: ::c_int = 0x006f; -pub const _SC_IPV6: ::c_int = 0x0070; -pub const _SC_RAW_SOCKETS: ::c_int = 0x0071; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 0x0072; -pub const _SC_REGEXP: ::c_int = 0x0073; -pub const _SC_SHELL: ::c_int = 0x0074; -pub const _SC_SPAWN: ::c_int = 0x0075; -pub const _SC_SPIN_LOCKS: ::c_int = 0x0076; -pub const _SC_SPORADIC_SERVER: ::c_int = 0x0077; -pub const _SC_SS_REPL_MAX: ::c_int = 0x0078; -pub const _SC_SYMLOOP_MAX: ::c_int = 0x0079; -pub const _SC_THREAD_CPUTIME: ::c_int = 0x007a; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 0x007b; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 0x007c; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 0x007d; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 0x007e; -pub const _SC_TIMEOUTS: ::c_int = 0x007f; -pub const _SC_TRACE: ::c_int = 0x0080; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 0x0081; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 0x0082; -pub const _SC_TRACE_INHERIT: ::c_int = 0x0083; -pub const _SC_TRACE_LOG: ::c_int = 0x0084; -pub const _SC_TRACE_NAME_MAX: ::c_int = 0x0085; -pub const _SC_TRACE_SYS_MAX: ::c_int = 0x0086; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 0x0087; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 0x0088; -pub const _SC_V7_ILP32_OFF32: ::c_int = 0x0089; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 0x008a; -pub const _SC_V7_LP64_OFF64: ::c_int = 0x008b; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 0x008c; -pub const _SC_XOPEN_STREAMS: ::c_int = 0x008d; -pub const _SC_XOPEN_UUCP: ::c_int = 0x008e; -pub const _SC_LEVEL1_ICACHE_SIZE: ::c_int = 0x008f; -pub const _SC_LEVEL1_ICACHE_ASSOC: ::c_int = 0x0090; -pub const _SC_LEVEL1_ICACHE_LINESIZE: ::c_int = 0x0091; -pub const _SC_LEVEL1_DCACHE_SIZE: ::c_int = 0x0092; -pub const _SC_LEVEL1_DCACHE_ASSOC: ::c_int = 0x0093; -pub const _SC_LEVEL1_DCACHE_LINESIZE: ::c_int = 0x0094; -pub const _SC_LEVEL2_CACHE_SIZE: ::c_int = 0x0095; -pub const _SC_LEVEL2_CACHE_ASSOC: ::c_int = 0x0096; -pub const _SC_LEVEL2_CACHE_LINESIZE: ::c_int = 0x0097; -pub const _SC_LEVEL3_CACHE_SIZE: ::c_int = 0x0098; -pub const _SC_LEVEL3_CACHE_ASSOC: ::c_int = 0x0099; -pub const _SC_LEVEL3_CACHE_LINESIZE: ::c_int = 0x009a; -pub const _SC_LEVEL4_CACHE_SIZE: ::c_int = 0x009b; -pub const _SC_LEVEL4_CACHE_ASSOC: ::c_int = 0x009c; -pub const _SC_LEVEL4_CACHE_LINESIZE: ::c_int = 0x009d; - -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; - -pub const F_SEAL_FUTURE_WRITE: ::c_int = 0x0010; - -pub const IFF_LOWER_UP: ::c_int = 0x10000; -pub const IFF_DORMANT: ::c_int = 0x20000; -pub const IFF_ECHO: ::c_int = 0x40000; - -pub const PTHREAD_BARRIER_SERIAL_THREAD: ::c_int = -1; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; - -pub const PTHREAD_EXPLICIT_SCHED: ::c_int = 0; -pub const PTHREAD_INHERIT_SCHED: ::c_int = 1; +pub const FALLOC_FL_KEEP_SIZE: c_int = 0x01; +pub const FALLOC_FL_PUNCH_HOLE: c_int = 0x02; +pub const FALLOC_FL_NO_HIDE_STALE: c_int = 0x04; +pub const FALLOC_FL_COLLAPSE_RANGE: c_int = 0x08; +pub const FALLOC_FL_ZERO_RANGE: c_int = 0x10; +pub const FALLOC_FL_INSERT_RANGE: c_int = 0x20; +pub const FALLOC_FL_UNSHARE_RANGE: c_int = 0x40; + +pub const BUFSIZ: c_uint = 1024; +pub const FILENAME_MAX: c_uint = 4096; +pub const FOPEN_MAX: c_uint = 20; +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; +pub const L_tmpnam: c_uint = 4096; +pub const TMP_MAX: c_uint = 308915776; +pub const _PC_LINK_MAX: c_int = 1; +pub const _PC_MAX_CANON: c_int = 2; +pub const _PC_MAX_INPUT: c_int = 3; +pub const _PC_NAME_MAX: c_int = 4; +pub const _PC_PATH_MAX: c_int = 5; +pub const _PC_PIPE_BUF: c_int = 6; +pub const _PC_2_SYMLINKS: c_int = 7; +pub const _PC_ALLOC_SIZE_MIN: c_int = 8; +pub const _PC_REC_INCR_XFER_SIZE: c_int = 9; +pub const _PC_REC_MAX_XFER_SIZE: c_int = 10; +pub const _PC_REC_MIN_XFER_SIZE: c_int = 11; +pub const _PC_REC_XFER_ALIGN: c_int = 12; +pub const _PC_SYMLINK_MAX: c_int = 13; +pub const _PC_CHOWN_RESTRICTED: c_int = 14; +pub const _PC_NO_TRUNC: c_int = 15; +pub const _PC_VDISABLE: c_int = 16; +pub const _PC_ASYNC_IO: c_int = 17; +pub const _PC_PRIO_IO: c_int = 18; +pub const _PC_SYNC_IO: c_int = 19; + +pub const FIONBIO: c_int = 0x5421; + +pub const _SC_ARG_MAX: c_int = 0x0000; +pub const _SC_BC_BASE_MAX: c_int = 0x0001; +pub const _SC_BC_DIM_MAX: c_int = 0x0002; +pub const _SC_BC_SCALE_MAX: c_int = 0x0003; +pub const _SC_BC_STRING_MAX: c_int = 0x0004; +pub const _SC_CHILD_MAX: c_int = 0x0005; +pub const _SC_CLK_TCK: c_int = 0x0006; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 0x0007; +pub const _SC_EXPR_NEST_MAX: c_int = 0x0008; +pub const _SC_LINE_MAX: c_int = 0x0009; +pub const _SC_NGROUPS_MAX: c_int = 0x000a; +pub const _SC_OPEN_MAX: c_int = 0x000b; +pub const _SC_PASS_MAX: c_int = 0x000c; +pub const _SC_2_C_BIND: c_int = 0x000d; +pub const _SC_2_C_DEV: c_int = 0x000e; +pub const _SC_2_C_VERSION: c_int = 0x000f; +pub const _SC_2_CHAR_TERM: c_int = 0x0010; +pub const _SC_2_FORT_DEV: c_int = 0x0011; +pub const _SC_2_FORT_RUN: c_int = 0x0012; +pub const _SC_2_LOCALEDEF: c_int = 0x0013; +pub const _SC_2_SW_DEV: c_int = 0x0014; +pub const _SC_2_UPE: c_int = 0x0015; +pub const _SC_2_VERSION: c_int = 0x0016; +pub const _SC_JOB_CONTROL: c_int = 0x0017; +pub const _SC_SAVED_IDS: c_int = 0x0018; +pub const _SC_VERSION: c_int = 0x0019; +pub const _SC_RE_DUP_MAX: c_int = 0x001a; +pub const _SC_STREAM_MAX: c_int = 0x001b; +pub const _SC_TZNAME_MAX: c_int = 0x001c; +pub const _SC_XOPEN_CRYPT: c_int = 0x001d; +pub const _SC_XOPEN_ENH_I18N: c_int = 0x001e; +pub const _SC_XOPEN_SHM: c_int = 0x001f; +pub const _SC_XOPEN_VERSION: c_int = 0x0020; +pub const _SC_XOPEN_XCU_VERSION: c_int = 0x0021; +pub const _SC_XOPEN_REALTIME: c_int = 0x0022; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 0x0023; +pub const _SC_XOPEN_LEGACY: c_int = 0x0024; +pub const _SC_ATEXIT_MAX: c_int = 0x0025; +pub const _SC_IOV_MAX: c_int = 0x0026; +pub const _SC_UIO_MAXIOV: c_int = _SC_IOV_MAX; +pub const _SC_PAGESIZE: c_int = 0x0027; +pub const _SC_PAGE_SIZE: c_int = 0x0028; +pub const _SC_XOPEN_UNIX: c_int = 0x0029; +pub const _SC_XBS5_ILP32_OFF32: c_int = 0x002a; +pub const _SC_XBS5_ILP32_OFFBIG: c_int = 0x002b; +pub const _SC_XBS5_LP64_OFF64: c_int = 0x002c; +pub const _SC_XBS5_LPBIG_OFFBIG: c_int = 0x002d; +pub const _SC_AIO_LISTIO_MAX: c_int = 0x002e; +pub const _SC_AIO_MAX: c_int = 0x002f; +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 0x0030; +pub const _SC_DELAYTIMER_MAX: c_int = 0x0031; +pub const _SC_MQ_OPEN_MAX: c_int = 0x0032; +pub const _SC_MQ_PRIO_MAX: c_int = 0x0033; +pub const _SC_RTSIG_MAX: c_int = 0x0034; +pub const _SC_SEM_NSEMS_MAX: c_int = 0x0035; +pub const _SC_SEM_VALUE_MAX: c_int = 0x0036; +pub const _SC_SIGQUEUE_MAX: c_int = 0x0037; +pub const _SC_TIMER_MAX: c_int = 0x0038; +pub const _SC_ASYNCHRONOUS_IO: c_int = 0x0039; +pub const _SC_FSYNC: c_int = 0x003a; +pub const _SC_MAPPED_FILES: c_int = 0x003b; +pub const _SC_MEMLOCK: c_int = 0x003c; +pub const _SC_MEMLOCK_RANGE: c_int = 0x003d; +pub const _SC_MEMORY_PROTECTION: c_int = 0x003e; +pub const _SC_MESSAGE_PASSING: c_int = 0x003f; +pub const _SC_PRIORITIZED_IO: c_int = 0x0040; +pub const _SC_PRIORITY_SCHEDULING: c_int = 0x0041; +pub const _SC_REALTIME_SIGNALS: c_int = 0x0042; +pub const _SC_SEMAPHORES: c_int = 0x0043; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 0x0044; +pub const _SC_SYNCHRONIZED_IO: c_int = 0x0045; +pub const _SC_TIMERS: c_int = 0x0046; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 0x0047; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 0x0048; +pub const _SC_LOGIN_NAME_MAX: c_int = 0x0049; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 0x004a; +pub const _SC_THREAD_KEYS_MAX: c_int = 0x004b; +pub const _SC_THREAD_STACK_MIN: c_int = 0x004c; +pub const _SC_THREAD_THREADS_MAX: c_int = 0x004d; +pub const _SC_TTY_NAME_MAX: c_int = 0x004e; +pub const _SC_THREADS: c_int = 0x004f; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 0x0050; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 0x0051; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 0x0052; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 0x0053; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 0x0054; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 0x0055; +pub const _SC_NPROCESSORS_CONF: c_int = 0x0060; +pub const _SC_NPROCESSORS_ONLN: c_int = 0x0061; +pub const _SC_PHYS_PAGES: c_int = 0x0062; +pub const _SC_AVPHYS_PAGES: c_int = 0x0063; +pub const _SC_MONOTONIC_CLOCK: c_int = 0x0064; +pub const _SC_2_PBS: c_int = 0x0065; +pub const _SC_2_PBS_ACCOUNTING: c_int = 0x0066; +pub const _SC_2_PBS_CHECKPOINT: c_int = 0x0067; +pub const _SC_2_PBS_LOCATE: c_int = 0x0068; +pub const _SC_2_PBS_MESSAGE: c_int = 0x0069; +pub const _SC_2_PBS_TRACK: c_int = 0x006a; +pub const _SC_ADVISORY_INFO: c_int = 0x006b; +pub const _SC_BARRIERS: c_int = 0x006c; +pub const _SC_CLOCK_SELECTION: c_int = 0x006d; +pub const _SC_CPUTIME: c_int = 0x006e; +pub const _SC_HOST_NAME_MAX: c_int = 0x006f; +pub const _SC_IPV6: c_int = 0x0070; +pub const _SC_RAW_SOCKETS: c_int = 0x0071; +pub const _SC_READER_WRITER_LOCKS: c_int = 0x0072; +pub const _SC_REGEXP: c_int = 0x0073; +pub const _SC_SHELL: c_int = 0x0074; +pub const _SC_SPAWN: c_int = 0x0075; +pub const _SC_SPIN_LOCKS: c_int = 0x0076; +pub const _SC_SPORADIC_SERVER: c_int = 0x0077; +pub const _SC_SS_REPL_MAX: c_int = 0x0078; +pub const _SC_SYMLOOP_MAX: c_int = 0x0079; +pub const _SC_THREAD_CPUTIME: c_int = 0x007a; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 0x007b; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 0x007c; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 0x007d; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 0x007e; +pub const _SC_TIMEOUTS: c_int = 0x007f; +pub const _SC_TRACE: c_int = 0x0080; +pub const _SC_TRACE_EVENT_FILTER: c_int = 0x0081; +pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 0x0082; +pub const _SC_TRACE_INHERIT: c_int = 0x0083; +pub const _SC_TRACE_LOG: c_int = 0x0084; +pub const _SC_TRACE_NAME_MAX: c_int = 0x0085; +pub const _SC_TRACE_SYS_MAX: c_int = 0x0086; +pub const _SC_TRACE_USER_EVENT_MAX: c_int = 0x0087; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 0x0088; +pub const _SC_V7_ILP32_OFF32: c_int = 0x0089; +pub const _SC_V7_ILP32_OFFBIG: c_int = 0x008a; +pub const _SC_V7_LP64_OFF64: c_int = 0x008b; +pub const _SC_V7_LPBIG_OFFBIG: c_int = 0x008c; +pub const _SC_XOPEN_STREAMS: c_int = 0x008d; +pub const _SC_XOPEN_UUCP: c_int = 0x008e; +pub const _SC_LEVEL1_ICACHE_SIZE: c_int = 0x008f; +pub const _SC_LEVEL1_ICACHE_ASSOC: c_int = 0x0090; +pub const _SC_LEVEL1_ICACHE_LINESIZE: c_int = 0x0091; +pub const _SC_LEVEL1_DCACHE_SIZE: c_int = 0x0092; +pub const _SC_LEVEL1_DCACHE_ASSOC: c_int = 0x0093; +pub const _SC_LEVEL1_DCACHE_LINESIZE: c_int = 0x0094; +pub const _SC_LEVEL2_CACHE_SIZE: c_int = 0x0095; +pub const _SC_LEVEL2_CACHE_ASSOC: c_int = 0x0096; +pub const _SC_LEVEL2_CACHE_LINESIZE: c_int = 0x0097; +pub const _SC_LEVEL3_CACHE_SIZE: c_int = 0x0098; +pub const _SC_LEVEL3_CACHE_ASSOC: c_int = 0x0099; +pub const _SC_LEVEL3_CACHE_LINESIZE: c_int = 0x009a; +pub const _SC_LEVEL4_CACHE_SIZE: c_int = 0x009b; +pub const _SC_LEVEL4_CACHE_ASSOC: c_int = 0x009c; +pub const _SC_LEVEL4_CACHE_LINESIZE: c_int = 0x009d; + +pub const F_LOCK: c_int = 1; +pub const F_TEST: c_int = 3; +pub const F_TLOCK: c_int = 2; +pub const F_ULOCK: c_int = 0; + +pub const F_SEAL_FUTURE_WRITE: c_int = 0x0010; + +pub const IFF_LOWER_UP: c_int = 0x10000; +pub const IFF_DORMANT: c_int = 0x20000; +pub const IFF_ECHO: c_int = 0x40000; + +pub const PTHREAD_BARRIER_SERIAL_THREAD: c_int = -1; +pub const PTHREAD_MUTEX_NORMAL: c_int = 0; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 1; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_NORMAL; + +pub const PTHREAD_EXPLICIT_SCHED: c_int = 0; +pub const PTHREAD_INHERIT_SCHED: c_int = 1; // stdio.h -pub const RENAME_NOREPLACE: ::c_int = 1; -pub const RENAME_EXCHANGE: ::c_int = 2; -pub const RENAME_WHITEOUT: ::c_int = 4; - -pub const FIOCLEX: ::c_int = 0x5451; -pub const FIONCLEX: ::c_int = 0x5450; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; +pub const RENAME_NOREPLACE: c_int = 1; +pub const RENAME_EXCHANGE: c_int = 2; +pub const RENAME_WHITEOUT: c_int = 4; + +pub const FIOCLEX: c_int = 0x5451; +pub const FIONCLEX: c_int = 0x5450; + +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; #[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const RUSAGE_CHILDREN: ::c_int = -1; - -pub const LC_PAPER: ::c_int = 7; -pub const LC_NAME: ::c_int = 8; -pub const LC_ADDRESS: ::c_int = 9; -pub const LC_TELEPHONE: ::c_int = 10; -pub const LC_MEASUREMENT: ::c_int = 11; -pub const LC_IDENTIFICATION: ::c_int = 12; -pub const LC_PAPER_MASK: ::c_int = 1 << LC_PAPER; -pub const LC_NAME_MASK: ::c_int = 1 << LC_NAME; -pub const LC_ADDRESS_MASK: ::c_int = 1 << LC_ADDRESS; -pub const LC_TELEPHONE_MASK: ::c_int = 1 << LC_TELEPHONE; -pub const LC_MEASUREMENT_MASK: ::c_int = 1 << LC_MEASUREMENT; -pub const LC_IDENTIFICATION_MASK: ::c_int = 1 << LC_IDENTIFICATION; -pub const LC_ALL_MASK: ::c_int = ::LC_CTYPE_MASK - | ::LC_NUMERIC_MASK - | ::LC_TIME_MASK - | ::LC_COLLATE_MASK - | ::LC_MONETARY_MASK - | ::LC_MESSAGES_MASK +pub const SIGUNUSED: c_int = 31; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; + +pub const RUSAGE_CHILDREN: c_int = -1; + +pub const LC_PAPER: c_int = 7; +pub const LC_NAME: c_int = 8; +pub const LC_ADDRESS: c_int = 9; +pub const LC_TELEPHONE: c_int = 10; +pub const LC_MEASUREMENT: c_int = 11; +pub const LC_IDENTIFICATION: c_int = 12; +pub const LC_PAPER_MASK: c_int = 1 << LC_PAPER; +pub const LC_NAME_MASK: c_int = 1 << LC_NAME; +pub const LC_ADDRESS_MASK: c_int = 1 << LC_ADDRESS; +pub const LC_TELEPHONE_MASK: c_int = 1 << LC_TELEPHONE; +pub const LC_MEASUREMENT_MASK: c_int = 1 << LC_MEASUREMENT; +pub const LC_IDENTIFICATION_MASK: c_int = 1 << LC_IDENTIFICATION; +pub const LC_ALL_MASK: c_int = crate::LC_CTYPE_MASK + | crate::LC_NUMERIC_MASK + | crate::LC_TIME_MASK + | crate::LC_COLLATE_MASK + | crate::LC_MONETARY_MASK + | crate::LC_MESSAGES_MASK | LC_PAPER_MASK | LC_NAME_MASK | LC_ADDRESS_MASK @@ -1400,321 +1404,321 @@ pub const LC_ALL_MASK: ::c_int = ::LC_CTYPE_MASK | LC_MEASUREMENT_MASK | LC_IDENTIFICATION_MASK; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; - -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; - -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOCK_DCCP: ::c_int = 6; -pub const SOCK_PACKET: ::c_int = 10; - -pub const IPPROTO_MAX: ::c_int = 256; - -pub const SOL_SOCKET: ::c_int = 1; -pub const SOL_SCTP: ::c_int = 132; -pub const SOL_IPX: ::c_int = 256; -pub const SOL_AX25: ::c_int = 257; -pub const SOL_ATALK: ::c_int = 258; -pub const SOL_NETROM: ::c_int = 259; -pub const SOL_ROSE: ::c_int = 260; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_ANONYMOUS: c_int = 0x0020; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; + +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; + +pub const EMULTIHOP: c_int = 72; +pub const EBADMSG: c_int = 74; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; +pub const SOCK_SEQPACKET: c_int = 5; +pub const SOCK_DCCP: c_int = 6; +pub const SOCK_PACKET: c_int = 10; + +pub const IPPROTO_MAX: c_int = 256; + +pub const SOL_SOCKET: c_int = 1; +pub const SOL_SCTP: c_int = 132; +pub const SOL_IPX: c_int = 256; +pub const SOL_AX25: c_int = 257; +pub const SOL_ATALK: c_int = 258; +pub const SOL_NETROM: c_int = 259; +pub const SOL_ROSE: c_int = 260; /* DCCP socket options */ -pub const DCCP_SOCKOPT_PACKET_SIZE: ::c_int = 1; -pub const DCCP_SOCKOPT_SERVICE: ::c_int = 2; -pub const DCCP_SOCKOPT_CHANGE_L: ::c_int = 3; -pub const DCCP_SOCKOPT_CHANGE_R: ::c_int = 4; -pub const DCCP_SOCKOPT_GET_CUR_MPS: ::c_int = 5; -pub const DCCP_SOCKOPT_SERVER_TIMEWAIT: ::c_int = 6; -pub const DCCP_SOCKOPT_SEND_CSCOV: ::c_int = 10; -pub const DCCP_SOCKOPT_RECV_CSCOV: ::c_int = 11; -pub const DCCP_SOCKOPT_AVAILABLE_CCIDS: ::c_int = 12; -pub const DCCP_SOCKOPT_CCID: ::c_int = 13; -pub const DCCP_SOCKOPT_TX_CCID: ::c_int = 14; -pub const DCCP_SOCKOPT_RX_CCID: ::c_int = 15; -pub const DCCP_SOCKOPT_QPOLICY_ID: ::c_int = 16; -pub const DCCP_SOCKOPT_QPOLICY_TXQLEN: ::c_int = 17; -pub const DCCP_SOCKOPT_CCID_RX_INFO: ::c_int = 128; -pub const DCCP_SOCKOPT_CCID_TX_INFO: ::c_int = 192; +pub const DCCP_SOCKOPT_PACKET_SIZE: c_int = 1; +pub const DCCP_SOCKOPT_SERVICE: c_int = 2; +pub const DCCP_SOCKOPT_CHANGE_L: c_int = 3; +pub const DCCP_SOCKOPT_CHANGE_R: c_int = 4; +pub const DCCP_SOCKOPT_GET_CUR_MPS: c_int = 5; +pub const DCCP_SOCKOPT_SERVER_TIMEWAIT: c_int = 6; +pub const DCCP_SOCKOPT_SEND_CSCOV: c_int = 10; +pub const DCCP_SOCKOPT_RECV_CSCOV: c_int = 11; +pub const DCCP_SOCKOPT_AVAILABLE_CCIDS: c_int = 12; +pub const DCCP_SOCKOPT_CCID: c_int = 13; +pub const DCCP_SOCKOPT_TX_CCID: c_int = 14; +pub const DCCP_SOCKOPT_RX_CCID: c_int = 15; +pub const DCCP_SOCKOPT_QPOLICY_ID: c_int = 16; +pub const DCCP_SOCKOPT_QPOLICY_TXQLEN: c_int = 17; +pub const DCCP_SOCKOPT_CCID_RX_INFO: c_int = 128; +pub const DCCP_SOCKOPT_CCID_TX_INFO: c_int = 192; /// maximum number of services provided on the same listening port -pub const DCCP_SERVICE_LIST_MAX_LEN: ::c_int = 32; - -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_LINGER: ::c_int = 13; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_REUSEPORT: ::c_int = 15; -pub const SO_PASSCRED: ::c_int = 16; -pub const SO_PEERCRED: ::c_int = 17; -pub const SO_RCVLOWAT: ::c_int = 18; -pub const SO_SNDLOWAT: ::c_int = 19; -pub const SO_RCVTIMEO: ::c_int = 20; -pub const SO_SNDTIMEO: ::c_int = 21; -pub const SO_BINDTODEVICE: ::c_int = 25; -pub const SO_ATTACH_FILTER: ::c_int = 26; -pub const SO_DETACH_FILTER: ::c_int = 27; -pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; -pub const SO_TIMESTAMP: ::c_int = 29; -pub const SO_ACCEPTCONN: ::c_int = 30; -pub const SO_PEERSEC: ::c_int = 31; -pub const SO_SNDBUFFORCE: ::c_int = 32; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PASSSEC: ::c_int = 34; -pub const SO_TIMESTAMPNS: ::c_int = 35; -// pub const SO_TIMESTAMPNS_OLD: ::c_int = 35; -pub const SO_MARK: ::c_int = 36; -pub const SO_TIMESTAMPING: ::c_int = 37; -// pub const SO_TIMESTAMPING_OLD: ::c_int = 37; -pub const SO_PROTOCOL: ::c_int = 38; -pub const SO_DOMAIN: ::c_int = 39; -pub const SO_RXQ_OVFL: ::c_int = 40; -pub const SO_PEEK_OFF: ::c_int = 42; -pub const SO_BUSY_POLL: ::c_int = 46; -pub const SCM_TIMESTAMPING_OPT_STATS: ::c_int = 54; -pub const SCM_TIMESTAMPING_PKTINFO: ::c_int = 58; -pub const SO_TIMESTAMP_NEW: ::c_int = 63; -pub const SO_TIMESTAMPNS_NEW: ::c_int = 64; -pub const SO_TIMESTAMPING_NEW: ::c_int = 65; +pub const DCCP_SERVICE_LIST_MAX_LEN: c_int = 32; + +pub const SO_REUSEADDR: c_int = 2; +pub const SO_TYPE: c_int = 3; +pub const SO_ERROR: c_int = 4; +pub const SO_DONTROUTE: c_int = 5; +pub const SO_BROADCAST: c_int = 6; +pub const SO_SNDBUF: c_int = 7; +pub const SO_RCVBUF: c_int = 8; +pub const SO_KEEPALIVE: c_int = 9; +pub const SO_OOBINLINE: c_int = 10; +pub const SO_PRIORITY: c_int = 12; +pub const SO_LINGER: c_int = 13; +pub const SO_BSDCOMPAT: c_int = 14; +pub const SO_REUSEPORT: c_int = 15; +pub const SO_PASSCRED: c_int = 16; +pub const SO_PEERCRED: c_int = 17; +pub const SO_RCVLOWAT: c_int = 18; +pub const SO_SNDLOWAT: c_int = 19; +pub const SO_RCVTIMEO: c_int = 20; +pub const SO_SNDTIMEO: c_int = 21; +pub const SO_BINDTODEVICE: c_int = 25; +pub const SO_ATTACH_FILTER: c_int = 26; +pub const SO_DETACH_FILTER: c_int = 27; +pub const SO_GET_FILTER: c_int = SO_ATTACH_FILTER; +pub const SO_TIMESTAMP: c_int = 29; +pub const SO_ACCEPTCONN: c_int = 30; +pub const SO_PEERSEC: c_int = 31; +pub const SO_SNDBUFFORCE: c_int = 32; +pub const SO_RCVBUFFORCE: c_int = 33; +pub const SO_PASSSEC: c_int = 34; +pub const SO_TIMESTAMPNS: c_int = 35; +// pub const SO_TIMESTAMPNS_OLD: c_int = 35; +pub const SO_MARK: c_int = 36; +pub const SO_TIMESTAMPING: c_int = 37; +// pub const SO_TIMESTAMPING_OLD: c_int = 37; +pub const SO_PROTOCOL: c_int = 38; +pub const SO_DOMAIN: c_int = 39; +pub const SO_RXQ_OVFL: c_int = 40; +pub const SO_PEEK_OFF: c_int = 42; +pub const SO_BUSY_POLL: c_int = 46; +pub const SCM_TIMESTAMPING_OPT_STATS: c_int = 54; +pub const SCM_TIMESTAMPING_PKTINFO: c_int = 58; +pub const SO_TIMESTAMP_NEW: c_int = 63; +pub const SO_TIMESTAMPNS_NEW: c_int = 64; +pub const SO_TIMESTAMPING_NEW: c_int = 65; // Defined in unix/linux_like/mod.rs -// pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; -pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; -pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; +// pub const SCM_TIMESTAMP: c_int = SO_TIMESTAMP; +pub const SCM_TIMESTAMPNS: c_int = SO_TIMESTAMPNS; +pub const SCM_TIMESTAMPING: c_int = SO_TIMESTAMPING; pub const IPTOS_ECN_NOTECT: u8 = 0x00; -pub const O_ACCMODE: ::c_int = 3; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 0x101000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; -pub const O_DSYNC: ::c_int = 4096; -pub const O_RSYNC: ::c_int = O_SYNC; - -pub const NI_MAXHOST: ::size_t = 1025; -pub const NI_MAXSERV: ::size_t = 32; - -pub const NI_NOFQDN: ::c_int = 0x00000001; -pub const NI_NUMERICHOST: ::c_int = 0x00000002; -pub const NI_NAMEREQD: ::c_int = 0x00000004; -pub const NI_NUMERICSERV: ::c_int = 0x00000008; -pub const NI_DGRAM: ::c_int = 0x00000010; +pub const O_ACCMODE: c_int = 3; +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 0x101000; +pub const O_ASYNC: c_int = 0x2000; +pub const O_NDELAY: c_int = 0x800; +pub const O_DSYNC: c_int = 4096; +pub const O_RSYNC: c_int = O_SYNC; + +pub const NI_MAXHOST: size_t = 1025; +pub const NI_MAXSERV: size_t = 32; + +pub const NI_NOFQDN: c_int = 0x00000001; +pub const NI_NUMERICHOST: c_int = 0x00000002; +pub const NI_NAMEREQD: c_int = 0x00000004; +pub const NI_NUMERICSERV: c_int = 0x00000008; +pub const NI_DGRAM: c_int = 0x00000010; pub const NCCS: usize = 19; -pub const TCSBRKP: ::c_int = 0x5425; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 0x1; -pub const TCSAFLUSH: ::c_int = 0x2; +pub const TCSBRKP: c_int = 0x5425; +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 0x1; +pub const TCSAFLUSH: c_int = 0x2; pub const VEOF: usize = 4; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; -pub const EXTPROC: ::tcflag_t = 0o200000; - -pub const MAP_HUGETLB: ::c_int = 0x040000; - -pub const PTRACE_TRACEME: ::c_int = 0; -pub const PTRACE_PEEKTEXT: ::c_int = 1; -pub const PTRACE_PEEKDATA: ::c_int = 2; -pub const PTRACE_PEEKUSER: ::c_int = 3; -pub const PTRACE_POKETEXT: ::c_int = 4; -pub const PTRACE_POKEDATA: ::c_int = 5; -pub const PTRACE_POKEUSER: ::c_int = 6; -pub const PTRACE_CONT: ::c_int = 7; -pub const PTRACE_KILL: ::c_int = 8; -pub const PTRACE_SINGLESTEP: ::c_int = 9; -pub const PTRACE_GETREGS: ::c_int = 12; -pub const PTRACE_SETREGS: ::c_int = 13; -pub const PTRACE_ATTACH: ::c_int = 16; -pub const PTRACE_DETACH: ::c_int = 17; -pub const PTRACE_SYSCALL: ::c_int = 24; -pub const PTRACE_SETOPTIONS: ::c_int = 0x4200; -pub const PTRACE_GETEVENTMSG: ::c_int = 0x4201; -pub const PTRACE_GETSIGINFO: ::c_int = 0x4202; -pub const PTRACE_SETSIGINFO: ::c_int = 0x4203; -pub const PTRACE_GETREGSET: ::c_int = 0x4204; -pub const PTRACE_SETREGSET: ::c_int = 0x4205; -pub const PTRACE_SECCOMP_GET_METADATA: ::c_int = 0x420d; - -pub const PTRACE_EVENT_STOP: ::c_int = 128; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_RSS: ::c_int = 5; -pub const RLIMIT_NPROC: ::c_int = 6; -pub const RLIMIT_NOFILE: ::c_int = 7; -pub const RLIMIT_MEMLOCK: ::c_int = 8; -pub const RLIMIT_AS: ::c_int = 9; -pub const RLIMIT_LOCKS: ::c_int = 10; -pub const RLIMIT_SIGPENDING: ::c_int = 11; -pub const RLIMIT_MSGQUEUE: ::c_int = 12; -pub const RLIMIT_NICE: ::c_int = 13; -pub const RLIMIT_RTPRIO: ::c_int = 14; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; +pub const EXTPROC: crate::tcflag_t = 0o200000; + +pub const MAP_HUGETLB: c_int = 0x040000; + +pub const PTRACE_TRACEME: c_int = 0; +pub const PTRACE_PEEKTEXT: c_int = 1; +pub const PTRACE_PEEKDATA: c_int = 2; +pub const PTRACE_PEEKUSER: c_int = 3; +pub const PTRACE_POKETEXT: c_int = 4; +pub const PTRACE_POKEDATA: c_int = 5; +pub const PTRACE_POKEUSER: c_int = 6; +pub const PTRACE_CONT: c_int = 7; +pub const PTRACE_KILL: c_int = 8; +pub const PTRACE_SINGLESTEP: c_int = 9; +pub const PTRACE_GETREGS: c_int = 12; +pub const PTRACE_SETREGS: c_int = 13; +pub const PTRACE_ATTACH: c_int = 16; +pub const PTRACE_DETACH: c_int = 17; +pub const PTRACE_SYSCALL: c_int = 24; +pub const PTRACE_SETOPTIONS: c_int = 0x4200; +pub const PTRACE_GETEVENTMSG: c_int = 0x4201; +pub const PTRACE_GETSIGINFO: c_int = 0x4202; +pub const PTRACE_SETSIGINFO: c_int = 0x4203; +pub const PTRACE_GETREGSET: c_int = 0x4204; +pub const PTRACE_SETREGSET: c_int = 0x4205; +pub const PTRACE_SECCOMP_GET_METADATA: c_int = 0x420d; + +pub const PTRACE_EVENT_STOP: c_int = 128; + +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETOWN: c_int = 8; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; +pub const F_RDLCK: c_int = 0; +pub const F_WRLCK: c_int = 1; +pub const F_UNLCK: c_int = 2; +pub const F_OFD_GETLK: c_int = 36; +pub const F_OFD_SETLK: c_int = 37; +pub const F_OFD_SETLKW: c_int = 38; + +pub const RLIMIT_CPU: c_int = 0; +pub const RLIMIT_FSIZE: c_int = 1; +pub const RLIMIT_DATA: c_int = 2; +pub const RLIMIT_STACK: c_int = 3; +pub const RLIMIT_CORE: c_int = 4; +pub const RLIMIT_RSS: c_int = 5; +pub const RLIMIT_NPROC: c_int = 6; +pub const RLIMIT_NOFILE: c_int = 7; +pub const RLIMIT_MEMLOCK: c_int = 8; +pub const RLIMIT_AS: c_int = 9; +pub const RLIMIT_LOCKS: c_int = 10; +pub const RLIMIT_SIGPENDING: c_int = 11; +pub const RLIMIT_MSGQUEUE: c_int = 12; +pub const RLIMIT_NICE: c_int = 13; +pub const RLIMIT_RTPRIO: c_int = 14; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIM_NLIMITS: ::c_int = 16; -pub const RLIM_INFINITY: ::rlim_t = !0; - -pub const TCGETS: ::c_int = 0x5401; -pub const TCSETS: ::c_int = 0x5402; -pub const TCSETSW: ::c_int = 0x5403; -pub const TCSETSF: ::c_int = 0x5404; -pub const TCGETS2: ::c_int = 0x802c542a; -pub const TCSETS2: ::c_int = 0x402c542b; -pub const TCSETSW2: ::c_int = 0x402c542c; -pub const TCSETSF2: ::c_int = 0x402c542d; -pub const TCGETA: ::c_int = 0x5405; -pub const TCSETA: ::c_int = 0x5406; -pub const TCSETAW: ::c_int = 0x5407; -pub const TCSETAF: ::c_int = 0x5408; -pub const TCSBRK: ::c_int = 0x5409; -pub const TCXONC: ::c_int = 0x540A; -pub const TCFLSH: ::c_int = 0x540B; -pub const TIOCGSOFTCAR: ::c_int = 0x5419; -pub const TIOCSSOFTCAR: ::c_int = 0x541A; -pub const TIOCINQ: ::c_int = 0x541B; -pub const TIOCLINUX: ::c_int = 0x541C; -pub const TIOCGSERIAL: ::c_int = 0x541E; -pub const TIOCEXCL: ::c_int = 0x540C; -pub const TIOCNXCL: ::c_int = 0x540D; -pub const TIOCSCTTY: ::c_int = 0x540E; -pub const TIOCGPGRP: ::c_int = 0x540F; -pub const TIOCSPGRP: ::c_int = 0x5410; -pub const TIOCOUTQ: ::c_int = 0x5411; -pub const TIOCSTI: ::c_int = 0x5412; -pub const TIOCGWINSZ: ::c_int = 0x5413; -pub const TIOCSWINSZ: ::c_int = 0x5414; -pub const TIOCMGET: ::c_int = 0x5415; -pub const TIOCMBIS: ::c_int = 0x5416; -pub const TIOCMBIC: ::c_int = 0x5417; -pub const TIOCMSET: ::c_int = 0x5418; -pub const FIONREAD: ::c_int = 0x541B; -pub const TIOCCONS: ::c_int = 0x541D; -pub const TIOCSBRK: ::c_int = 0x5427; -pub const TIOCCBRK: ::c_int = 0x5428; +pub const RLIM_NLIMITS: c_int = 16; +pub const RLIM_INFINITY: crate::rlim_t = !0; + +pub const TCGETS: c_int = 0x5401; +pub const TCSETS: c_int = 0x5402; +pub const TCSETSW: c_int = 0x5403; +pub const TCSETSF: c_int = 0x5404; +pub const TCGETS2: c_int = 0x802c542a; +pub const TCSETS2: c_int = 0x402c542b; +pub const TCSETSW2: c_int = 0x402c542c; +pub const TCSETSF2: c_int = 0x402c542d; +pub const TCGETA: c_int = 0x5405; +pub const TCSETA: c_int = 0x5406; +pub const TCSETAW: c_int = 0x5407; +pub const TCSETAF: c_int = 0x5408; +pub const TCSBRK: c_int = 0x5409; +pub const TCXONC: c_int = 0x540A; +pub const TCFLSH: c_int = 0x540B; +pub const TIOCGSOFTCAR: c_int = 0x5419; +pub const TIOCSSOFTCAR: c_int = 0x541A; +pub const TIOCINQ: c_int = 0x541B; +pub const TIOCLINUX: c_int = 0x541C; +pub const TIOCGSERIAL: c_int = 0x541E; +pub const TIOCEXCL: c_int = 0x540C; +pub const TIOCNXCL: c_int = 0x540D; +pub const TIOCSCTTY: c_int = 0x540E; +pub const TIOCGPGRP: c_int = 0x540F; +pub const TIOCSPGRP: c_int = 0x5410; +pub const TIOCOUTQ: c_int = 0x5411; +pub const TIOCSTI: c_int = 0x5412; +pub const TIOCGWINSZ: c_int = 0x5413; +pub const TIOCSWINSZ: c_int = 0x5414; +pub const TIOCMGET: c_int = 0x5415; +pub const TIOCMBIS: c_int = 0x5416; +pub const TIOCMBIC: c_int = 0x5417; +pub const TIOCMSET: c_int = 0x5418; +pub const FIONREAD: c_int = 0x541B; +pub const TIOCCONS: c_int = 0x541D; +pub const TIOCSBRK: c_int = 0x5427; +pub const TIOCCBRK: c_int = 0x5428; cfg_if! { if #[cfg(any( target_arch = "x86", @@ -1724,118 +1728,118 @@ cfg_if! { target_arch = "riscv64", target_arch = "s390x" ))] { - pub const FICLONE: ::c_int = 0x40049409; - pub const FICLONERANGE: ::c_int = 0x4020940D; + pub const FICLONE: c_int = 0x40049409; + pub const FICLONERANGE: c_int = 0x4020940D; } else if #[cfg(any( target_arch = "mips", target_arch = "mips64", target_arch = "powerpc", target_arch = "powerpc64" ))] { - pub const FICLONE: ::c_int = 0x80049409; - pub const FICLONERANGE: ::c_int = 0x8020940D; + pub const FICLONE: c_int = 0x80049409; + pub const FICLONERANGE: c_int = 0x8020940D; } } -pub const ST_RDONLY: ::c_ulong = 1; -pub const ST_NOSUID: ::c_ulong = 2; -pub const ST_NODEV: ::c_ulong = 4; -pub const ST_NOEXEC: ::c_ulong = 8; -pub const ST_SYNCHRONOUS: ::c_ulong = 16; -pub const ST_MANDLOCK: ::c_ulong = 64; -pub const ST_NOATIME: ::c_ulong = 1024; -pub const ST_NODIRATIME: ::c_ulong = 2048; -pub const ST_RELATIME: ::c_ulong = 4096; +pub const ST_RDONLY: c_ulong = 1; +pub const ST_NOSUID: c_ulong = 2; +pub const ST_NODEV: c_ulong = 4; +pub const ST_NOEXEC: c_ulong = 8; +pub const ST_SYNCHRONOUS: c_ulong = 16; +pub const ST_MANDLOCK: c_ulong = 64; +pub const ST_NOATIME: c_ulong = 1024; +pub const ST_NODIRATIME: c_ulong = 2048; +pub const ST_RELATIME: c_ulong = 4096; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const RTLD_NODELETE: ::c_int = 0x1000; +pub const RTLD_NOLOAD: c_int = 0x4; +pub const RTLD_NODELETE: c_int = 0x1000; pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; -pub const AI_PASSIVE: ::c_int = 0x00000001; -pub const AI_CANONNAME: ::c_int = 0x00000002; -pub const AI_NUMERICHOST: ::c_int = 0x00000004; -pub const AI_NUMERICSERV: ::c_int = 0x00000008; -pub const AI_MASK: ::c_int = +pub const AI_PASSIVE: c_int = 0x00000001; +pub const AI_CANONNAME: c_int = 0x00000002; +pub const AI_NUMERICHOST: c_int = 0x00000004; +pub const AI_NUMERICSERV: c_int = 0x00000008; +pub const AI_MASK: c_int = AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST | AI_NUMERICSERV | AI_ADDRCONFIG; -pub const AI_ALL: ::c_int = 0x00000100; -pub const AI_V4MAPPED_CFG: ::c_int = 0x00000200; -pub const AI_ADDRCONFIG: ::c_int = 0x00000400; -pub const AI_V4MAPPED: ::c_int = 0x00000800; -pub const AI_DEFAULT: ::c_int = AI_V4MAPPED_CFG | AI_ADDRCONFIG; +pub const AI_ALL: c_int = 0x00000100; +pub const AI_V4MAPPED_CFG: c_int = 0x00000200; +pub const AI_ADDRCONFIG: c_int = 0x00000400; +pub const AI_V4MAPPED: c_int = 0x00000800; +pub const AI_DEFAULT: c_int = AI_V4MAPPED_CFG | AI_ADDRCONFIG; // linux/kexec.h -pub const KEXEC_ON_CRASH: ::c_int = 0x00000001; -pub const KEXEC_PRESERVE_CONTEXT: ::c_int = 0x00000002; -pub const KEXEC_ARCH_MASK: ::c_int = 0xffff0000; -pub const KEXEC_FILE_UNLOAD: ::c_int = 0x00000001; -pub const KEXEC_FILE_ON_CRASH: ::c_int = 0x00000002; -pub const KEXEC_FILE_NO_INITRAMFS: ::c_int = 0x00000004; - -pub const LINUX_REBOOT_MAGIC1: ::c_int = 0xfee1dead; -pub const LINUX_REBOOT_MAGIC2: ::c_int = 672274793; -pub const LINUX_REBOOT_MAGIC2A: ::c_int = 85072278; -pub const LINUX_REBOOT_MAGIC2B: ::c_int = 369367448; -pub const LINUX_REBOOT_MAGIC2C: ::c_int = 537993216; - -pub const LINUX_REBOOT_CMD_RESTART: ::c_int = 0x01234567; -pub const LINUX_REBOOT_CMD_HALT: ::c_int = 0xCDEF0123; -pub const LINUX_REBOOT_CMD_CAD_ON: ::c_int = 0x89ABCDEF; -pub const LINUX_REBOOT_CMD_CAD_OFF: ::c_int = 0x00000000; -pub const LINUX_REBOOT_CMD_POWER_OFF: ::c_int = 0x4321FEDC; -pub const LINUX_REBOOT_CMD_RESTART2: ::c_int = 0xA1B2C3D4; -pub const LINUX_REBOOT_CMD_SW_SUSPEND: ::c_int = 0xD000FCE2; -pub const LINUX_REBOOT_CMD_KEXEC: ::c_int = 0x45584543; - -pub const REG_BASIC: ::c_int = 0; -pub const REG_EXTENDED: ::c_int = 1; -pub const REG_ICASE: ::c_int = 2; -pub const REG_NOSUB: ::c_int = 4; -pub const REG_NEWLINE: ::c_int = 8; -pub const REG_NOSPEC: ::c_int = 16; -pub const REG_PEND: ::c_int = 32; -pub const REG_DUMP: ::c_int = 128; - -pub const REG_NOMATCH: ::c_int = 1; -pub const REG_BADPAT: ::c_int = 2; -pub const REG_ECOLLATE: ::c_int = 3; -pub const REG_ECTYPE: ::c_int = 4; -pub const REG_EESCAPE: ::c_int = 5; -pub const REG_ESUBREG: ::c_int = 6; -pub const REG_EBRACK: ::c_int = 7; -pub const REG_EPAREN: ::c_int = 8; -pub const REG_EBRACE: ::c_int = 9; -pub const REG_BADBR: ::c_int = 10; -pub const REG_ERANGE: ::c_int = 11; -pub const REG_ESPACE: ::c_int = 12; -pub const REG_BADRPT: ::c_int = 13; -pub const REG_EMPTY: ::c_int = 14; -pub const REG_ASSERT: ::c_int = 15; -pub const REG_INVARG: ::c_int = 16; -pub const REG_ATOI: ::c_int = 255; -pub const REG_ITOA: ::c_int = 256; - -pub const REG_NOTBOL: ::c_int = 1; -pub const REG_NOTEOL: ::c_int = 2; -pub const REG_STARTEND: ::c_int = 4; -pub const REG_TRACE: ::c_int = 256; -pub const REG_LARGE: ::c_int = 512; -pub const REG_BACKR: ::c_int = 1024; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; - -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; +pub const KEXEC_ON_CRASH: c_int = 0x00000001; +pub const KEXEC_PRESERVE_CONTEXT: c_int = 0x00000002; +pub const KEXEC_ARCH_MASK: c_int = 0xffff0000; +pub const KEXEC_FILE_UNLOAD: c_int = 0x00000001; +pub const KEXEC_FILE_ON_CRASH: c_int = 0x00000002; +pub const KEXEC_FILE_NO_INITRAMFS: c_int = 0x00000004; + +pub const LINUX_REBOOT_MAGIC1: c_int = 0xfee1dead; +pub const LINUX_REBOOT_MAGIC2: c_int = 672274793; +pub const LINUX_REBOOT_MAGIC2A: c_int = 85072278; +pub const LINUX_REBOOT_MAGIC2B: c_int = 369367448; +pub const LINUX_REBOOT_MAGIC2C: c_int = 537993216; + +pub const LINUX_REBOOT_CMD_RESTART: c_int = 0x01234567; +pub const LINUX_REBOOT_CMD_HALT: c_int = 0xCDEF0123; +pub const LINUX_REBOOT_CMD_CAD_ON: c_int = 0x89ABCDEF; +pub const LINUX_REBOOT_CMD_CAD_OFF: c_int = 0x00000000; +pub const LINUX_REBOOT_CMD_POWER_OFF: c_int = 0x4321FEDC; +pub const LINUX_REBOOT_CMD_RESTART2: c_int = 0xA1B2C3D4; +pub const LINUX_REBOOT_CMD_SW_SUSPEND: c_int = 0xD000FCE2; +pub const LINUX_REBOOT_CMD_KEXEC: c_int = 0x45584543; + +pub const REG_BASIC: c_int = 0; +pub const REG_EXTENDED: c_int = 1; +pub const REG_ICASE: c_int = 2; +pub const REG_NOSUB: c_int = 4; +pub const REG_NEWLINE: c_int = 8; +pub const REG_NOSPEC: c_int = 16; +pub const REG_PEND: c_int = 32; +pub const REG_DUMP: c_int = 128; + +pub const REG_NOMATCH: c_int = 1; +pub const REG_BADPAT: c_int = 2; +pub const REG_ECOLLATE: c_int = 3; +pub const REG_ECTYPE: c_int = 4; +pub const REG_EESCAPE: c_int = 5; +pub const REG_ESUBREG: c_int = 6; +pub const REG_EBRACK: c_int = 7; +pub const REG_EPAREN: c_int = 8; +pub const REG_EBRACE: c_int = 9; +pub const REG_BADBR: c_int = 10; +pub const REG_ERANGE: c_int = 11; +pub const REG_ESPACE: c_int = 12; +pub const REG_BADRPT: c_int = 13; +pub const REG_EMPTY: c_int = 14; +pub const REG_ASSERT: c_int = 15; +pub const REG_INVARG: c_int = 16; +pub const REG_ATOI: c_int = 255; +pub const REG_ITOA: c_int = 256; + +pub const REG_NOTBOL: c_int = 1; +pub const REG_NOTEOL: c_int = 2; +pub const REG_STARTEND: c_int = 4; +pub const REG_TRACE: c_int = 256; +pub const REG_LARGE: c_int = 512; +pub const REG_BACKR: c_int = 1024; + +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; + +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: crate::tcflag_t = 0x00000800; +pub const TAB2: crate::tcflag_t = 0x00001000; +pub const TAB3: crate::tcflag_t = 0x00001800; +pub const CR1: crate::tcflag_t = 0x00000200; +pub const CR2: crate::tcflag_t = 0x00000400; +pub const CR3: crate::tcflag_t = 0x00000600; +pub const FF1: crate::tcflag_t = 0x00008000; +pub const BS1: crate::tcflag_t = 0x00002000; +pub const VT1: crate::tcflag_t = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -1843,79 +1847,79 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const BOTHER: ::speed_t = 0o010000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; -pub const IBSHIFT: ::tcflag_t = 16; - -pub const BLKIOMIN: ::c_int = 0x1278; -pub const BLKIOOPT: ::c_int = 0x1279; -pub const BLKSSZGET: ::c_int = 0x1268; -pub const BLKPBSZGET: ::c_int = 0x127B; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; + +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const BOTHER: crate::speed_t = 0o010000; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; +pub const IBSHIFT: crate::tcflag_t = 16; + +pub const BLKIOMIN: c_int = 0x1278; +pub const BLKIOOPT: c_int = 0x1279; +pub const BLKSSZGET: c_int = 0x1268; +pub const BLKPBSZGET: c_int = 0x127B; cfg_if! { // Those type are constructed using the _IOC macro @@ -1925,384 +1929,384 @@ cfg_if! { // where T stands for type ('f','v','X'...) // where N stands for NR (NumbeR) if #[cfg(any(target_arch = "x86", target_arch = "arm"))] { - pub const FS_IOC_GETFLAGS: ::c_int = 0x80046601; - pub const FS_IOC_SETFLAGS: ::c_int = 0x40046602; - pub const FS_IOC_GETVERSION: ::c_int = 0x80047601; - pub const FS_IOC_SETVERSION: ::c_int = 0x40047602; - pub const FS_IOC32_GETFLAGS: ::c_int = 0x80046601; - pub const FS_IOC32_SETFLAGS: ::c_int = 0x40046602; - pub const FS_IOC32_GETVERSION: ::c_int = 0x80047601; - pub const FS_IOC32_SETVERSION: ::c_int = 0x40047602; + pub const FS_IOC_GETFLAGS: c_int = 0x80046601; + pub const FS_IOC_SETFLAGS: c_int = 0x40046602; + pub const FS_IOC_GETVERSION: c_int = 0x80047601; + pub const FS_IOC_SETVERSION: c_int = 0x40047602; + pub const FS_IOC32_GETFLAGS: c_int = 0x80046601; + pub const FS_IOC32_SETFLAGS: c_int = 0x40046602; + pub const FS_IOC32_GETVERSION: c_int = 0x80047601; + pub const FS_IOC32_SETVERSION: c_int = 0x40047602; } else if #[cfg(any( target_arch = "x86_64", target_arch = "riscv64", target_arch = "aarch64" ))] { - pub const FS_IOC_GETFLAGS: ::c_int = 0x80086601; - pub const FS_IOC_SETFLAGS: ::c_int = 0x40086602; - pub const FS_IOC_GETVERSION: ::c_int = 0x80087601; - pub const FS_IOC_SETVERSION: ::c_int = 0x40087602; - pub const FS_IOC32_GETFLAGS: ::c_int = 0x80046601; - pub const FS_IOC32_SETFLAGS: ::c_int = 0x40046602; - pub const FS_IOC32_GETVERSION: ::c_int = 0x80047601; - pub const FS_IOC32_SETVERSION: ::c_int = 0x40047602; + pub const FS_IOC_GETFLAGS: c_int = 0x80086601; + pub const FS_IOC_SETFLAGS: c_int = 0x40086602; + pub const FS_IOC_GETVERSION: c_int = 0x80087601; + pub const FS_IOC_SETVERSION: c_int = 0x40087602; + pub const FS_IOC32_GETFLAGS: c_int = 0x80046601; + pub const FS_IOC32_SETFLAGS: c_int = 0x40046602; + pub const FS_IOC32_GETVERSION: c_int = 0x80047601; + pub const FS_IOC32_SETVERSION: c_int = 0x40047602; } } -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_FAMILY: ::c_int = 5; -pub const EAI_MEMORY: ::c_int = 6; -pub const EAI_NODATA: ::c_int = 7; -pub const EAI_NONAME: ::c_int = 8; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_OVERFLOW: ::c_int = 14; - -pub const NETLINK_ROUTE: ::c_int = 0; -pub const NETLINK_UNUSED: ::c_int = 1; -pub const NETLINK_USERSOCK: ::c_int = 2; -pub const NETLINK_FIREWALL: ::c_int = 3; -pub const NETLINK_SOCK_DIAG: ::c_int = 4; -pub const NETLINK_NFLOG: ::c_int = 5; -pub const NETLINK_XFRM: ::c_int = 6; -pub const NETLINK_SELINUX: ::c_int = 7; -pub const NETLINK_ISCSI: ::c_int = 8; -pub const NETLINK_AUDIT: ::c_int = 9; -pub const NETLINK_FIB_LOOKUP: ::c_int = 10; -pub const NETLINK_CONNECTOR: ::c_int = 11; -pub const NETLINK_NETFILTER: ::c_int = 12; -pub const NETLINK_IP6_FW: ::c_int = 13; -pub const NETLINK_DNRTMSG: ::c_int = 14; -pub const NETLINK_KOBJECT_UEVENT: ::c_int = 15; -pub const NETLINK_GENERIC: ::c_int = 16; -pub const NETLINK_SCSITRANSPORT: ::c_int = 18; -pub const NETLINK_ECRYPTFS: ::c_int = 19; -pub const NETLINK_RDMA: ::c_int = 20; -pub const NETLINK_CRYPTO: ::c_int = 21; -pub const NETLINK_INET_DIAG: ::c_int = NETLINK_SOCK_DIAG; - -pub const MAX_LINKS: ::c_int = 32; - -pub const NLM_F_REQUEST: ::c_int = 1; -pub const NLM_F_MULTI: ::c_int = 2; -pub const NLM_F_ACK: ::c_int = 4; -pub const NLM_F_ECHO: ::c_int = 8; -pub const NLM_F_DUMP_INTR: ::c_int = 16; -pub const NLM_F_DUMP_FILTERED: ::c_int = 32; - -pub const NLM_F_ROOT: ::c_int = 0x100; -pub const NLM_F_MATCH: ::c_int = 0x200; -pub const NLM_F_ATOMIC: ::c_int = 0x400; -pub const NLM_F_DUMP: ::c_int = NLM_F_ROOT | NLM_F_MATCH; - -pub const NLM_F_REPLACE: ::c_int = 0x100; -pub const NLM_F_EXCL: ::c_int = 0x200; -pub const NLM_F_CREATE: ::c_int = 0x400; -pub const NLM_F_APPEND: ::c_int = 0x800; - -pub const NLMSG_NOOP: ::c_int = 0x1; -pub const NLMSG_ERROR: ::c_int = 0x2; -pub const NLMSG_DONE: ::c_int = 0x3; -pub const NLMSG_OVERRUN: ::c_int = 0x4; -pub const NLMSG_MIN_TYPE: ::c_int = 0x10; +pub const EAI_AGAIN: c_int = 2; +pub const EAI_BADFLAGS: c_int = 3; +pub const EAI_FAIL: c_int = 4; +pub const EAI_FAMILY: c_int = 5; +pub const EAI_MEMORY: c_int = 6; +pub const EAI_NODATA: c_int = 7; +pub const EAI_NONAME: c_int = 8; +pub const EAI_SERVICE: c_int = 9; +pub const EAI_SOCKTYPE: c_int = 10; +pub const EAI_SYSTEM: c_int = 11; +pub const EAI_OVERFLOW: c_int = 14; + +pub const NETLINK_ROUTE: c_int = 0; +pub const NETLINK_UNUSED: c_int = 1; +pub const NETLINK_USERSOCK: c_int = 2; +pub const NETLINK_FIREWALL: c_int = 3; +pub const NETLINK_SOCK_DIAG: c_int = 4; +pub const NETLINK_NFLOG: c_int = 5; +pub const NETLINK_XFRM: c_int = 6; +pub const NETLINK_SELINUX: c_int = 7; +pub const NETLINK_ISCSI: c_int = 8; +pub const NETLINK_AUDIT: c_int = 9; +pub const NETLINK_FIB_LOOKUP: c_int = 10; +pub const NETLINK_CONNECTOR: c_int = 11; +pub const NETLINK_NETFILTER: c_int = 12; +pub const NETLINK_IP6_FW: c_int = 13; +pub const NETLINK_DNRTMSG: c_int = 14; +pub const NETLINK_KOBJECT_UEVENT: c_int = 15; +pub const NETLINK_GENERIC: c_int = 16; +pub const NETLINK_SCSITRANSPORT: c_int = 18; +pub const NETLINK_ECRYPTFS: c_int = 19; +pub const NETLINK_RDMA: c_int = 20; +pub const NETLINK_CRYPTO: c_int = 21; +pub const NETLINK_INET_DIAG: c_int = NETLINK_SOCK_DIAG; + +pub const MAX_LINKS: c_int = 32; + +pub const NLM_F_REQUEST: c_int = 1; +pub const NLM_F_MULTI: c_int = 2; +pub const NLM_F_ACK: c_int = 4; +pub const NLM_F_ECHO: c_int = 8; +pub const NLM_F_DUMP_INTR: c_int = 16; +pub const NLM_F_DUMP_FILTERED: c_int = 32; + +pub const NLM_F_ROOT: c_int = 0x100; +pub const NLM_F_MATCH: c_int = 0x200; +pub const NLM_F_ATOMIC: c_int = 0x400; +pub const NLM_F_DUMP: c_int = NLM_F_ROOT | NLM_F_MATCH; + +pub const NLM_F_REPLACE: c_int = 0x100; +pub const NLM_F_EXCL: c_int = 0x200; +pub const NLM_F_CREATE: c_int = 0x400; +pub const NLM_F_APPEND: c_int = 0x800; + +pub const NLMSG_NOOP: c_int = 0x1; +pub const NLMSG_ERROR: c_int = 0x2; +pub const NLMSG_DONE: c_int = 0x3; +pub const NLMSG_OVERRUN: c_int = 0x4; +pub const NLMSG_MIN_TYPE: c_int = 0x10; // linux/netfilter/nfnetlink.h -pub const NFNLGRP_NONE: ::c_int = 0; -pub const NFNLGRP_CONNTRACK_NEW: ::c_int = 1; -pub const NFNLGRP_CONNTRACK_UPDATE: ::c_int = 2; -pub const NFNLGRP_CONNTRACK_DESTROY: ::c_int = 3; -pub const NFNLGRP_CONNTRACK_EXP_NEW: ::c_int = 4; -pub const NFNLGRP_CONNTRACK_EXP_UPDATE: ::c_int = 5; -pub const NFNLGRP_CONNTRACK_EXP_DESTROY: ::c_int = 6; -pub const NFNLGRP_NFTABLES: ::c_int = 7; -pub const NFNLGRP_ACCT_QUOTA: ::c_int = 8; - -pub const NFNETLINK_V0: ::c_int = 0; - -pub const NFNL_SUBSYS_NONE: ::c_int = 0; -pub const NFNL_SUBSYS_CTNETLINK: ::c_int = 1; -pub const NFNL_SUBSYS_CTNETLINK_EXP: ::c_int = 2; -pub const NFNL_SUBSYS_QUEUE: ::c_int = 3; -pub const NFNL_SUBSYS_ULOG: ::c_int = 4; -pub const NFNL_SUBSYS_OSF: ::c_int = 5; -pub const NFNL_SUBSYS_IPSET: ::c_int = 6; -pub const NFNL_SUBSYS_ACCT: ::c_int = 7; -pub const NFNL_SUBSYS_CTNETLINK_TIMEOUT: ::c_int = 8; -pub const NFNL_SUBSYS_CTHELPER: ::c_int = 9; -pub const NFNL_SUBSYS_NFTABLES: ::c_int = 10; -pub const NFNL_SUBSYS_NFT_COMPAT: ::c_int = 11; -pub const NFNL_SUBSYS_COUNT: ::c_int = 12; - -pub const NFNL_MSG_BATCH_BEGIN: ::c_int = NLMSG_MIN_TYPE; -pub const NFNL_MSG_BATCH_END: ::c_int = NLMSG_MIN_TYPE + 1; +pub const NFNLGRP_NONE: c_int = 0; +pub const NFNLGRP_CONNTRACK_NEW: c_int = 1; +pub const NFNLGRP_CONNTRACK_UPDATE: c_int = 2; +pub const NFNLGRP_CONNTRACK_DESTROY: c_int = 3; +pub const NFNLGRP_CONNTRACK_EXP_NEW: c_int = 4; +pub const NFNLGRP_CONNTRACK_EXP_UPDATE: c_int = 5; +pub const NFNLGRP_CONNTRACK_EXP_DESTROY: c_int = 6; +pub const NFNLGRP_NFTABLES: c_int = 7; +pub const NFNLGRP_ACCT_QUOTA: c_int = 8; + +pub const NFNETLINK_V0: c_int = 0; + +pub const NFNL_SUBSYS_NONE: c_int = 0; +pub const NFNL_SUBSYS_CTNETLINK: c_int = 1; +pub const NFNL_SUBSYS_CTNETLINK_EXP: c_int = 2; +pub const NFNL_SUBSYS_QUEUE: c_int = 3; +pub const NFNL_SUBSYS_ULOG: c_int = 4; +pub const NFNL_SUBSYS_OSF: c_int = 5; +pub const NFNL_SUBSYS_IPSET: c_int = 6; +pub const NFNL_SUBSYS_ACCT: c_int = 7; +pub const NFNL_SUBSYS_CTNETLINK_TIMEOUT: c_int = 8; +pub const NFNL_SUBSYS_CTHELPER: c_int = 9; +pub const NFNL_SUBSYS_NFTABLES: c_int = 10; +pub const NFNL_SUBSYS_NFT_COMPAT: c_int = 11; +pub const NFNL_SUBSYS_COUNT: c_int = 12; + +pub const NFNL_MSG_BATCH_BEGIN: c_int = NLMSG_MIN_TYPE; +pub const NFNL_MSG_BATCH_END: c_int = NLMSG_MIN_TYPE + 1; // linux/netfilter/nfnetlink_log.h -pub const NFULNL_MSG_PACKET: ::c_int = 0; -pub const NFULNL_MSG_CONFIG: ::c_int = 1; - -pub const NFULA_UNSPEC: ::c_int = 0; -pub const NFULA_PACKET_HDR: ::c_int = 1; -pub const NFULA_MARK: ::c_int = 2; -pub const NFULA_TIMESTAMP: ::c_int = 3; -pub const NFULA_IFINDEX_INDEV: ::c_int = 4; -pub const NFULA_IFINDEX_OUTDEV: ::c_int = 5; -pub const NFULA_IFINDEX_PHYSINDEV: ::c_int = 6; -pub const NFULA_IFINDEX_PHYSOUTDEV: ::c_int = 7; -pub const NFULA_HWADDR: ::c_int = 8; -pub const NFULA_PAYLOAD: ::c_int = 9; -pub const NFULA_PREFIX: ::c_int = 10; -pub const NFULA_UID: ::c_int = 11; -pub const NFULA_SEQ: ::c_int = 12; -pub const NFULA_SEQ_GLOBAL: ::c_int = 13; -pub const NFULA_GID: ::c_int = 14; -pub const NFULA_HWTYPE: ::c_int = 15; -pub const NFULA_HWHEADER: ::c_int = 16; -pub const NFULA_HWLEN: ::c_int = 17; -pub const NFULA_CT: ::c_int = 18; -pub const NFULA_CT_INFO: ::c_int = 19; - -pub const NFULNL_CFG_CMD_NONE: ::c_int = 0; -pub const NFULNL_CFG_CMD_BIND: ::c_int = 1; -pub const NFULNL_CFG_CMD_UNBIND: ::c_int = 2; -pub const NFULNL_CFG_CMD_PF_BIND: ::c_int = 3; -pub const NFULNL_CFG_CMD_PF_UNBIND: ::c_int = 4; - -pub const NFULA_CFG_UNSPEC: ::c_int = 0; -pub const NFULA_CFG_CMD: ::c_int = 1; -pub const NFULA_CFG_MODE: ::c_int = 2; -pub const NFULA_CFG_NLBUFSIZ: ::c_int = 3; -pub const NFULA_CFG_TIMEOUT: ::c_int = 4; -pub const NFULA_CFG_QTHRESH: ::c_int = 5; -pub const NFULA_CFG_FLAGS: ::c_int = 6; - -pub const NFULNL_COPY_NONE: ::c_int = 0x00; -pub const NFULNL_COPY_META: ::c_int = 0x01; -pub const NFULNL_COPY_PACKET: ::c_int = 0x02; - -pub const NFULNL_CFG_F_SEQ: ::c_int = 0x0001; -pub const NFULNL_CFG_F_SEQ_GLOBAL: ::c_int = 0x0002; -pub const NFULNL_CFG_F_CONNTRACK: ::c_int = 0x0004; +pub const NFULNL_MSG_PACKET: c_int = 0; +pub const NFULNL_MSG_CONFIG: c_int = 1; + +pub const NFULA_UNSPEC: c_int = 0; +pub const NFULA_PACKET_HDR: c_int = 1; +pub const NFULA_MARK: c_int = 2; +pub const NFULA_TIMESTAMP: c_int = 3; +pub const NFULA_IFINDEX_INDEV: c_int = 4; +pub const NFULA_IFINDEX_OUTDEV: c_int = 5; +pub const NFULA_IFINDEX_PHYSINDEV: c_int = 6; +pub const NFULA_IFINDEX_PHYSOUTDEV: c_int = 7; +pub const NFULA_HWADDR: c_int = 8; +pub const NFULA_PAYLOAD: c_int = 9; +pub const NFULA_PREFIX: c_int = 10; +pub const NFULA_UID: c_int = 11; +pub const NFULA_SEQ: c_int = 12; +pub const NFULA_SEQ_GLOBAL: c_int = 13; +pub const NFULA_GID: c_int = 14; +pub const NFULA_HWTYPE: c_int = 15; +pub const NFULA_HWHEADER: c_int = 16; +pub const NFULA_HWLEN: c_int = 17; +pub const NFULA_CT: c_int = 18; +pub const NFULA_CT_INFO: c_int = 19; + +pub const NFULNL_CFG_CMD_NONE: c_int = 0; +pub const NFULNL_CFG_CMD_BIND: c_int = 1; +pub const NFULNL_CFG_CMD_UNBIND: c_int = 2; +pub const NFULNL_CFG_CMD_PF_BIND: c_int = 3; +pub const NFULNL_CFG_CMD_PF_UNBIND: c_int = 4; + +pub const NFULA_CFG_UNSPEC: c_int = 0; +pub const NFULA_CFG_CMD: c_int = 1; +pub const NFULA_CFG_MODE: c_int = 2; +pub const NFULA_CFG_NLBUFSIZ: c_int = 3; +pub const NFULA_CFG_TIMEOUT: c_int = 4; +pub const NFULA_CFG_QTHRESH: c_int = 5; +pub const NFULA_CFG_FLAGS: c_int = 6; + +pub const NFULNL_COPY_NONE: c_int = 0x00; +pub const NFULNL_COPY_META: c_int = 0x01; +pub const NFULNL_COPY_PACKET: c_int = 0x02; + +pub const NFULNL_CFG_F_SEQ: c_int = 0x0001; +pub const NFULNL_CFG_F_SEQ_GLOBAL: c_int = 0x0002; +pub const NFULNL_CFG_F_CONNTRACK: c_int = 0x0004; // linux/netfilter/nfnetlink_log.h -pub const NFQNL_MSG_PACKET: ::c_int = 0; -pub const NFQNL_MSG_VERDICT: ::c_int = 1; -pub const NFQNL_MSG_CONFIG: ::c_int = 2; -pub const NFQNL_MSG_VERDICT_BATCH: ::c_int = 3; - -pub const NFQA_UNSPEC: ::c_int = 0; -pub const NFQA_PACKET_HDR: ::c_int = 1; -pub const NFQA_VERDICT_HDR: ::c_int = 2; -pub const NFQA_MARK: ::c_int = 3; -pub const NFQA_TIMESTAMP: ::c_int = 4; -pub const NFQA_IFINDEX_INDEV: ::c_int = 5; -pub const NFQA_IFINDEX_OUTDEV: ::c_int = 6; -pub const NFQA_IFINDEX_PHYSINDEV: ::c_int = 7; -pub const NFQA_IFINDEX_PHYSOUTDEV: ::c_int = 8; -pub const NFQA_HWADDR: ::c_int = 9; -pub const NFQA_PAYLOAD: ::c_int = 10; -pub const NFQA_CT: ::c_int = 11; -pub const NFQA_CT_INFO: ::c_int = 12; -pub const NFQA_CAP_LEN: ::c_int = 13; -pub const NFQA_SKB_INFO: ::c_int = 14; -pub const NFQA_EXP: ::c_int = 15; -pub const NFQA_UID: ::c_int = 16; -pub const NFQA_GID: ::c_int = 17; -pub const NFQA_SECCTX: ::c_int = 18; +pub const NFQNL_MSG_PACKET: c_int = 0; +pub const NFQNL_MSG_VERDICT: c_int = 1; +pub const NFQNL_MSG_CONFIG: c_int = 2; +pub const NFQNL_MSG_VERDICT_BATCH: c_int = 3; + +pub const NFQA_UNSPEC: c_int = 0; +pub const NFQA_PACKET_HDR: c_int = 1; +pub const NFQA_VERDICT_HDR: c_int = 2; +pub const NFQA_MARK: c_int = 3; +pub const NFQA_TIMESTAMP: c_int = 4; +pub const NFQA_IFINDEX_INDEV: c_int = 5; +pub const NFQA_IFINDEX_OUTDEV: c_int = 6; +pub const NFQA_IFINDEX_PHYSINDEV: c_int = 7; +pub const NFQA_IFINDEX_PHYSOUTDEV: c_int = 8; +pub const NFQA_HWADDR: c_int = 9; +pub const NFQA_PAYLOAD: c_int = 10; +pub const NFQA_CT: c_int = 11; +pub const NFQA_CT_INFO: c_int = 12; +pub const NFQA_CAP_LEN: c_int = 13; +pub const NFQA_SKB_INFO: c_int = 14; +pub const NFQA_EXP: c_int = 15; +pub const NFQA_UID: c_int = 16; +pub const NFQA_GID: c_int = 17; +pub const NFQA_SECCTX: c_int = 18; /* FIXME: These are not yet available in musl sanitized kernel headers and make the tests fail. Enable them once musl has them. See https://github.com/rust-lang/libc/pull/1628 for more details. -pub const NFQA_VLAN: ::c_int = 19; -pub const NFQA_L2HDR: ::c_int = 20; +pub const NFQA_VLAN: c_int = 19; +pub const NFQA_L2HDR: c_int = 20; -pub const NFQA_VLAN_UNSPEC: ::c_int = 0; -pub const NFQA_VLAN_PROTO: ::c_int = 1; -pub const NFQA_VLAN_TCI: ::c_int = 2; +pub const NFQA_VLAN_UNSPEC: c_int = 0; +pub const NFQA_VLAN_PROTO: c_int = 1; +pub const NFQA_VLAN_TCI: c_int = 2; */ -pub const NFQNL_CFG_CMD_NONE: ::c_int = 0; -pub const NFQNL_CFG_CMD_BIND: ::c_int = 1; -pub const NFQNL_CFG_CMD_UNBIND: ::c_int = 2; -pub const NFQNL_CFG_CMD_PF_BIND: ::c_int = 3; -pub const NFQNL_CFG_CMD_PF_UNBIND: ::c_int = 4; - -pub const NFQNL_COPY_NONE: ::c_int = 0; -pub const NFQNL_COPY_META: ::c_int = 1; -pub const NFQNL_COPY_PACKET: ::c_int = 2; - -pub const NFQA_CFG_UNSPEC: ::c_int = 0; -pub const NFQA_CFG_CMD: ::c_int = 1; -pub const NFQA_CFG_PARAMS: ::c_int = 2; -pub const NFQA_CFG_QUEUE_MAXLEN: ::c_int = 3; -pub const NFQA_CFG_MASK: ::c_int = 4; -pub const NFQA_CFG_FLAGS: ::c_int = 5; - -pub const NFQA_CFG_F_FAIL_OPEN: ::c_int = 0x0001; -pub const NFQA_CFG_F_CONNTRACK: ::c_int = 0x0002; -pub const NFQA_CFG_F_GSO: ::c_int = 0x0004; -pub const NFQA_CFG_F_UID_GID: ::c_int = 0x0008; -pub const NFQA_CFG_F_SECCTX: ::c_int = 0x0010; -pub const NFQA_CFG_F_MAX: ::c_int = 0x0020; - -pub const NFQA_SKB_CSUMNOTREADY: ::c_int = 0x0001; -pub const NFQA_SKB_GSO: ::c_int = 0x0002; -pub const NFQA_SKB_CSUM_NOTVERIFIED: ::c_int = 0x0004; - -pub const GENL_NAMSIZ: ::c_int = 16; - -pub const GENL_MIN_ID: ::c_int = NLMSG_MIN_TYPE; -pub const GENL_MAX_ID: ::c_int = 1023; - -pub const GENL_ADMIN_PERM: ::c_int = 0x01; -pub const GENL_CMD_CAP_DO: ::c_int = 0x02; -pub const GENL_CMD_CAP_DUMP: ::c_int = 0x04; -pub const GENL_CMD_CAP_HASPOL: ::c_int = 0x08; -pub const GENL_UNS_ADMIN_PERM: ::c_int = 0x10; - -pub const GENL_ID_CTRL: ::c_int = NLMSG_MIN_TYPE; -pub const GENL_ID_VFS_DQUOT: ::c_int = NLMSG_MIN_TYPE + 1; -pub const GENL_ID_PMCRAID: ::c_int = NLMSG_MIN_TYPE + 2; - -pub const CTRL_CMD_UNSPEC: ::c_int = 0; -pub const CTRL_CMD_NEWFAMILY: ::c_int = 1; -pub const CTRL_CMD_DELFAMILY: ::c_int = 2; -pub const CTRL_CMD_GETFAMILY: ::c_int = 3; -pub const CTRL_CMD_NEWOPS: ::c_int = 4; -pub const CTRL_CMD_DELOPS: ::c_int = 5; -pub const CTRL_CMD_GETOPS: ::c_int = 6; -pub const CTRL_CMD_NEWMCAST_GRP: ::c_int = 7; -pub const CTRL_CMD_DELMCAST_GRP: ::c_int = 8; -pub const CTRL_CMD_GETMCAST_GRP: ::c_int = 9; - -pub const CTRL_ATTR_UNSPEC: ::c_int = 0; -pub const CTRL_ATTR_FAMILY_ID: ::c_int = 1; -pub const CTRL_ATTR_FAMILY_NAME: ::c_int = 2; -pub const CTRL_ATTR_VERSION: ::c_int = 3; -pub const CTRL_ATTR_HDRSIZE: ::c_int = 4; -pub const CTRL_ATTR_MAXATTR: ::c_int = 5; -pub const CTRL_ATTR_OPS: ::c_int = 6; -pub const CTRL_ATTR_MCAST_GROUPS: ::c_int = 7; - -pub const CTRL_ATTR_OP_UNSPEC: ::c_int = 0; -pub const CTRL_ATTR_OP_ID: ::c_int = 1; -pub const CTRL_ATTR_OP_FLAGS: ::c_int = 2; - -pub const CTRL_ATTR_MCAST_GRP_UNSPEC: ::c_int = 0; -pub const CTRL_ATTR_MCAST_GRP_NAME: ::c_int = 1; -pub const CTRL_ATTR_MCAST_GRP_ID: ::c_int = 2; - -pub const NETLINK_ADD_MEMBERSHIP: ::c_int = 1; -pub const NETLINK_DROP_MEMBERSHIP: ::c_int = 2; -pub const NETLINK_PKTINFO: ::c_int = 3; -pub const NETLINK_BROADCAST_ERROR: ::c_int = 4; -pub const NETLINK_NO_ENOBUFS: ::c_int = 5; -pub const NETLINK_RX_RING: ::c_int = 6; -pub const NETLINK_TX_RING: ::c_int = 7; -pub const NETLINK_LISTEN_ALL_NSID: ::c_int = 8; -pub const NETLINK_LIST_MEMBERSHIPS: ::c_int = 9; -pub const NETLINK_CAP_ACK: ::c_int = 10; -pub const NETLINK_EXT_ACK: ::c_int = 11; -pub const NETLINK_GET_STRICT_CHK: ::c_int = 12; - -pub const GRND_NONBLOCK: ::c_uint = 0x0001; -pub const GRND_RANDOM: ::c_uint = 0x0002; -pub const GRND_INSECURE: ::c_uint = 0x0004; - -pub const SECCOMP_MODE_DISABLED: ::c_uint = 0; -pub const SECCOMP_MODE_STRICT: ::c_uint = 1; -pub const SECCOMP_MODE_FILTER: ::c_uint = 2; - -pub const SECCOMP_FILTER_FLAG_TSYNC: ::c_ulong = 1; -pub const SECCOMP_FILTER_FLAG_LOG: ::c_ulong = 2; -pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: ::c_ulong = 4; -pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: ::c_ulong = 8; - -pub const SECCOMP_RET_ACTION_FULL: ::c_uint = 0xffff0000; -pub const SECCOMP_RET_ACTION: ::c_uint = 0x7fff0000; -pub const SECCOMP_RET_DATA: ::c_uint = 0x0000ffff; - -pub const SECCOMP_RET_KILL_PROCESS: ::c_uint = 0x80000000; -pub const SECCOMP_RET_KILL_THREAD: ::c_uint = 0x00000000; -pub const SECCOMP_RET_KILL: ::c_uint = SECCOMP_RET_KILL_THREAD; -pub const SECCOMP_RET_TRAP: ::c_uint = 0x00030000; -pub const SECCOMP_RET_ERRNO: ::c_uint = 0x00050000; -pub const SECCOMP_RET_USER_NOTIF: ::c_uint = 0x7fc00000; -pub const SECCOMP_RET_TRACE: ::c_uint = 0x7ff00000; -pub const SECCOMP_RET_LOG: ::c_uint = 0x7ffc0000; -pub const SECCOMP_RET_ALLOW: ::c_uint = 0x7fff0000; - -pub const NLA_F_NESTED: ::c_int = 1 << 15; -pub const NLA_F_NET_BYTEORDER: ::c_int = 1 << 14; -pub const NLA_TYPE_MASK: ::c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER); - -pub const NLA_ALIGNTO: ::c_int = 4; - -pub const SIGEV_THREAD_ID: ::c_int = 4; - -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; - -pub const TIOCM_LE: ::c_int = 0x001; -pub const TIOCM_DTR: ::c_int = 0x002; -pub const TIOCM_RTS: ::c_int = 0x004; -pub const TIOCM_ST: ::c_int = 0x008; -pub const TIOCM_SR: ::c_int = 0x010; -pub const TIOCM_CTS: ::c_int = 0x020; -pub const TIOCM_CAR: ::c_int = 0x040; -pub const TIOCM_RNG: ::c_int = 0x080; -pub const TIOCM_DSR: ::c_int = 0x100; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const SFD_CLOEXEC: ::c_int = O_CLOEXEC; -pub const SFD_NONBLOCK: ::c_int = O_NONBLOCK; - -pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK; - -pub const SO_ORIGINAL_DST: ::c_int = 80; - -pub const IP_RECVFRAGSIZE: ::c_int = 25; - -pub const IPV6_FLOWINFO: ::c_int = 11; -pub const IPV6_MULTICAST_ALL: ::c_int = 29; -pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30; -pub const IPV6_FLOWLABEL_MGR: ::c_int = 32; -pub const IPV6_FLOWINFO_SEND: ::c_int = 33; -pub const IPV6_RECVFRAGSIZE: ::c_int = 77; -pub const IPV6_FREEBIND: ::c_int = 78; -pub const IPV6_FLOWINFO_FLOWLABEL: ::c_int = 0x000fffff; -pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 0x0ff00000; - -pub const IUTF8: ::tcflag_t = 0x00004000; -pub const CMSPAR: ::tcflag_t = 0o10000000000; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; - -pub const MFD_CLOEXEC: ::c_uint = 0x0001; -pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002; -pub const MFD_HUGETLB: ::c_uint = 0x0004; -pub const MFD_NOEXEC_SEAL: ::c_uint = 0x0008; -pub const MFD_EXEC: ::c_uint = 0x0010; -pub const MFD_HUGE_64KB: ::c_uint = 0x40000000; -pub const MFD_HUGE_512KB: ::c_uint = 0x4c000000; -pub const MFD_HUGE_1MB: ::c_uint = 0x50000000; -pub const MFD_HUGE_2MB: ::c_uint = 0x54000000; -pub const MFD_HUGE_8MB: ::c_uint = 0x5c000000; -pub const MFD_HUGE_16MB: ::c_uint = 0x60000000; -pub const MFD_HUGE_32MB: ::c_uint = 0x64000000; -pub const MFD_HUGE_256MB: ::c_uint = 0x70000000; -pub const MFD_HUGE_512MB: ::c_uint = 0x74000000; -pub const MFD_HUGE_1GB: ::c_uint = 0x78000000; -pub const MFD_HUGE_2GB: ::c_uint = 0x7c000000; -pub const MFD_HUGE_16GB: ::c_uint = 0x88000000; -pub const MFD_HUGE_MASK: ::c_uint = 63; -pub const MFD_HUGE_SHIFT: ::c_uint = 26; +pub const NFQNL_CFG_CMD_NONE: c_int = 0; +pub const NFQNL_CFG_CMD_BIND: c_int = 1; +pub const NFQNL_CFG_CMD_UNBIND: c_int = 2; +pub const NFQNL_CFG_CMD_PF_BIND: c_int = 3; +pub const NFQNL_CFG_CMD_PF_UNBIND: c_int = 4; + +pub const NFQNL_COPY_NONE: c_int = 0; +pub const NFQNL_COPY_META: c_int = 1; +pub const NFQNL_COPY_PACKET: c_int = 2; + +pub const NFQA_CFG_UNSPEC: c_int = 0; +pub const NFQA_CFG_CMD: c_int = 1; +pub const NFQA_CFG_PARAMS: c_int = 2; +pub const NFQA_CFG_QUEUE_MAXLEN: c_int = 3; +pub const NFQA_CFG_MASK: c_int = 4; +pub const NFQA_CFG_FLAGS: c_int = 5; + +pub const NFQA_CFG_F_FAIL_OPEN: c_int = 0x0001; +pub const NFQA_CFG_F_CONNTRACK: c_int = 0x0002; +pub const NFQA_CFG_F_GSO: c_int = 0x0004; +pub const NFQA_CFG_F_UID_GID: c_int = 0x0008; +pub const NFQA_CFG_F_SECCTX: c_int = 0x0010; +pub const NFQA_CFG_F_MAX: c_int = 0x0020; + +pub const NFQA_SKB_CSUMNOTREADY: c_int = 0x0001; +pub const NFQA_SKB_GSO: c_int = 0x0002; +pub const NFQA_SKB_CSUM_NOTVERIFIED: c_int = 0x0004; + +pub const GENL_NAMSIZ: c_int = 16; + +pub const GENL_MIN_ID: c_int = NLMSG_MIN_TYPE; +pub const GENL_MAX_ID: c_int = 1023; + +pub const GENL_ADMIN_PERM: c_int = 0x01; +pub const GENL_CMD_CAP_DO: c_int = 0x02; +pub const GENL_CMD_CAP_DUMP: c_int = 0x04; +pub const GENL_CMD_CAP_HASPOL: c_int = 0x08; +pub const GENL_UNS_ADMIN_PERM: c_int = 0x10; + +pub const GENL_ID_CTRL: c_int = NLMSG_MIN_TYPE; +pub const GENL_ID_VFS_DQUOT: c_int = NLMSG_MIN_TYPE + 1; +pub const GENL_ID_PMCRAID: c_int = NLMSG_MIN_TYPE + 2; + +pub const CTRL_CMD_UNSPEC: c_int = 0; +pub const CTRL_CMD_NEWFAMILY: c_int = 1; +pub const CTRL_CMD_DELFAMILY: c_int = 2; +pub const CTRL_CMD_GETFAMILY: c_int = 3; +pub const CTRL_CMD_NEWOPS: c_int = 4; +pub const CTRL_CMD_DELOPS: c_int = 5; +pub const CTRL_CMD_GETOPS: c_int = 6; +pub const CTRL_CMD_NEWMCAST_GRP: c_int = 7; +pub const CTRL_CMD_DELMCAST_GRP: c_int = 8; +pub const CTRL_CMD_GETMCAST_GRP: c_int = 9; + +pub const CTRL_ATTR_UNSPEC: c_int = 0; +pub const CTRL_ATTR_FAMILY_ID: c_int = 1; +pub const CTRL_ATTR_FAMILY_NAME: c_int = 2; +pub const CTRL_ATTR_VERSION: c_int = 3; +pub const CTRL_ATTR_HDRSIZE: c_int = 4; +pub const CTRL_ATTR_MAXATTR: c_int = 5; +pub const CTRL_ATTR_OPS: c_int = 6; +pub const CTRL_ATTR_MCAST_GROUPS: c_int = 7; + +pub const CTRL_ATTR_OP_UNSPEC: c_int = 0; +pub const CTRL_ATTR_OP_ID: c_int = 1; +pub const CTRL_ATTR_OP_FLAGS: c_int = 2; + +pub const CTRL_ATTR_MCAST_GRP_UNSPEC: c_int = 0; +pub const CTRL_ATTR_MCAST_GRP_NAME: c_int = 1; +pub const CTRL_ATTR_MCAST_GRP_ID: c_int = 2; + +pub const NETLINK_ADD_MEMBERSHIP: c_int = 1; +pub const NETLINK_DROP_MEMBERSHIP: c_int = 2; +pub const NETLINK_PKTINFO: c_int = 3; +pub const NETLINK_BROADCAST_ERROR: c_int = 4; +pub const NETLINK_NO_ENOBUFS: c_int = 5; +pub const NETLINK_RX_RING: c_int = 6; +pub const NETLINK_TX_RING: c_int = 7; +pub const NETLINK_LISTEN_ALL_NSID: c_int = 8; +pub const NETLINK_LIST_MEMBERSHIPS: c_int = 9; +pub const NETLINK_CAP_ACK: c_int = 10; +pub const NETLINK_EXT_ACK: c_int = 11; +pub const NETLINK_GET_STRICT_CHK: c_int = 12; + +pub const GRND_NONBLOCK: c_uint = 0x0001; +pub const GRND_RANDOM: c_uint = 0x0002; +pub const GRND_INSECURE: c_uint = 0x0004; + +pub const SECCOMP_MODE_DISABLED: c_uint = 0; +pub const SECCOMP_MODE_STRICT: c_uint = 1; +pub const SECCOMP_MODE_FILTER: c_uint = 2; + +pub const SECCOMP_FILTER_FLAG_TSYNC: c_ulong = 1; +pub const SECCOMP_FILTER_FLAG_LOG: c_ulong = 2; +pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: c_ulong = 4; +pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: c_ulong = 8; + +pub const SECCOMP_RET_ACTION_FULL: c_uint = 0xffff0000; +pub const SECCOMP_RET_ACTION: c_uint = 0x7fff0000; +pub const SECCOMP_RET_DATA: c_uint = 0x0000ffff; + +pub const SECCOMP_RET_KILL_PROCESS: c_uint = 0x80000000; +pub const SECCOMP_RET_KILL_THREAD: c_uint = 0x00000000; +pub const SECCOMP_RET_KILL: c_uint = SECCOMP_RET_KILL_THREAD; +pub const SECCOMP_RET_TRAP: c_uint = 0x00030000; +pub const SECCOMP_RET_ERRNO: c_uint = 0x00050000; +pub const SECCOMP_RET_USER_NOTIF: c_uint = 0x7fc00000; +pub const SECCOMP_RET_TRACE: c_uint = 0x7ff00000; +pub const SECCOMP_RET_LOG: c_uint = 0x7ffc0000; +pub const SECCOMP_RET_ALLOW: c_uint = 0x7fff0000; + +pub const NLA_F_NESTED: c_int = 1 << 15; +pub const NLA_F_NET_BYTEORDER: c_int = 1 << 14; +pub const NLA_TYPE_MASK: c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER); + +pub const NLA_ALIGNTO: c_int = 4; + +pub const SIGEV_THREAD_ID: c_int = 4; + +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; + +pub const TIOCM_LE: c_int = 0x001; +pub const TIOCM_DTR: c_int = 0x002; +pub const TIOCM_RTS: c_int = 0x004; +pub const TIOCM_ST: c_int = 0x008; +pub const TIOCM_SR: c_int = 0x010; +pub const TIOCM_CTS: c_int = 0x020; +pub const TIOCM_CAR: c_int = 0x040; +pub const TIOCM_RNG: c_int = 0x080; +pub const TIOCM_DSR: c_int = 0x100; +pub const TIOCM_CD: c_int = TIOCM_CAR; +pub const TIOCM_RI: c_int = TIOCM_RNG; + +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; + +pub const SFD_CLOEXEC: c_int = O_CLOEXEC; +pub const SFD_NONBLOCK: c_int = O_NONBLOCK; + +pub const SOCK_NONBLOCK: c_int = O_NONBLOCK; + +pub const SO_ORIGINAL_DST: c_int = 80; + +pub const IP_RECVFRAGSIZE: c_int = 25; + +pub const IPV6_FLOWINFO: c_int = 11; +pub const IPV6_MULTICAST_ALL: c_int = 29; +pub const IPV6_ROUTER_ALERT_ISOLATE: c_int = 30; +pub const IPV6_FLOWLABEL_MGR: c_int = 32; +pub const IPV6_FLOWINFO_SEND: c_int = 33; +pub const IPV6_RECVFRAGSIZE: c_int = 77; +pub const IPV6_FREEBIND: c_int = 78; +pub const IPV6_FLOWINFO_FLOWLABEL: c_int = 0x000fffff; +pub const IPV6_FLOWINFO_PRIORITY: c_int = 0x0ff00000; + +pub const IUTF8: crate::tcflag_t = 0x00004000; +pub const CMSPAR: crate::tcflag_t = 0o10000000000; +pub const O_TMPFILE: c_int = 0o20000000 | O_DIRECTORY; + +pub const MFD_CLOEXEC: c_uint = 0x0001; +pub const MFD_ALLOW_SEALING: c_uint = 0x0002; +pub const MFD_HUGETLB: c_uint = 0x0004; +pub const MFD_NOEXEC_SEAL: c_uint = 0x0008; +pub const MFD_EXEC: c_uint = 0x0010; +pub const MFD_HUGE_64KB: c_uint = 0x40000000; +pub const MFD_HUGE_512KB: c_uint = 0x4c000000; +pub const MFD_HUGE_1MB: c_uint = 0x50000000; +pub const MFD_HUGE_2MB: c_uint = 0x54000000; +pub const MFD_HUGE_8MB: c_uint = 0x5c000000; +pub const MFD_HUGE_16MB: c_uint = 0x60000000; +pub const MFD_HUGE_32MB: c_uint = 0x64000000; +pub const MFD_HUGE_256MB: c_uint = 0x70000000; +pub const MFD_HUGE_512MB: c_uint = 0x74000000; +pub const MFD_HUGE_1GB: c_uint = 0x78000000; +pub const MFD_HUGE_2GB: c_uint = 0x7c000000; +pub const MFD_HUGE_16GB: c_uint = 0x88000000; +pub const MFD_HUGE_MASK: c_uint = 63; +pub const MFD_HUGE_SHIFT: c_uint = 26; // these are used in the p_type field of Elf32_Phdr and Elf64_Phdr, which has // the type Elf32Word and Elf64Word respectively. Luckily, both of those are u32 @@ -2324,490 +2328,490 @@ pub const PT_LOPROC: u32 = 0x70000000; pub const PT_HIPROC: u32 = 0x7fffffff; // uapi/linux/mount.h -pub const OPEN_TREE_CLONE: ::c_uint = 0x01; -pub const OPEN_TREE_CLOEXEC: ::c_uint = O_CLOEXEC as ::c_uint; +pub const OPEN_TREE_CLONE: c_uint = 0x01; +pub const OPEN_TREE_CLOEXEC: c_uint = O_CLOEXEC as c_uint; // linux/netfilter.h -pub const NF_DROP: ::c_int = 0; -pub const NF_ACCEPT: ::c_int = 1; -pub const NF_STOLEN: ::c_int = 2; -pub const NF_QUEUE: ::c_int = 3; -pub const NF_REPEAT: ::c_int = 4; -pub const NF_STOP: ::c_int = 5; -pub const NF_MAX_VERDICT: ::c_int = NF_STOP; - -pub const NF_VERDICT_MASK: ::c_int = 0x000000ff; -pub const NF_VERDICT_FLAG_QUEUE_BYPASS: ::c_int = 0x00008000; - -pub const NF_VERDICT_QMASK: ::c_int = 0xffff0000; -pub const NF_VERDICT_QBITS: ::c_int = 16; - -pub const NF_VERDICT_BITS: ::c_int = 16; - -pub const NF_INET_PRE_ROUTING: ::c_int = 0; -pub const NF_INET_LOCAL_IN: ::c_int = 1; -pub const NF_INET_FORWARD: ::c_int = 2; -pub const NF_INET_LOCAL_OUT: ::c_int = 3; -pub const NF_INET_POST_ROUTING: ::c_int = 4; -pub const NF_INET_NUMHOOKS: ::c_int = 5; -pub const NF_INET_INGRESS: ::c_int = NF_INET_NUMHOOKS; - -pub const NF_NETDEV_INGRESS: ::c_int = 0; -pub const NF_NETDEV_EGRESS: ::c_int = 1; -pub const NF_NETDEV_NUMHOOKS: ::c_int = 2; - -pub const NFPROTO_UNSPEC: ::c_int = 0; -pub const NFPROTO_INET: ::c_int = 1; -pub const NFPROTO_IPV4: ::c_int = 2; -pub const NFPROTO_ARP: ::c_int = 3; -pub const NFPROTO_NETDEV: ::c_int = 5; -pub const NFPROTO_BRIDGE: ::c_int = 7; -pub const NFPROTO_IPV6: ::c_int = 10; -pub const NFPROTO_DECNET: ::c_int = 12; -pub const NFPROTO_NUMPROTO: ::c_int = 13; +pub const NF_DROP: c_int = 0; +pub const NF_ACCEPT: c_int = 1; +pub const NF_STOLEN: c_int = 2; +pub const NF_QUEUE: c_int = 3; +pub const NF_REPEAT: c_int = 4; +pub const NF_STOP: c_int = 5; +pub const NF_MAX_VERDICT: c_int = NF_STOP; + +pub const NF_VERDICT_MASK: c_int = 0x000000ff; +pub const NF_VERDICT_FLAG_QUEUE_BYPASS: c_int = 0x00008000; + +pub const NF_VERDICT_QMASK: c_int = 0xffff0000; +pub const NF_VERDICT_QBITS: c_int = 16; + +pub const NF_VERDICT_BITS: c_int = 16; + +pub const NF_INET_PRE_ROUTING: c_int = 0; +pub const NF_INET_LOCAL_IN: c_int = 1; +pub const NF_INET_FORWARD: c_int = 2; +pub const NF_INET_LOCAL_OUT: c_int = 3; +pub const NF_INET_POST_ROUTING: c_int = 4; +pub const NF_INET_NUMHOOKS: c_int = 5; +pub const NF_INET_INGRESS: c_int = NF_INET_NUMHOOKS; + +pub const NF_NETDEV_INGRESS: c_int = 0; +pub const NF_NETDEV_EGRESS: c_int = 1; +pub const NF_NETDEV_NUMHOOKS: c_int = 2; + +pub const NFPROTO_UNSPEC: c_int = 0; +pub const NFPROTO_INET: c_int = 1; +pub const NFPROTO_IPV4: c_int = 2; +pub const NFPROTO_ARP: c_int = 3; +pub const NFPROTO_NETDEV: c_int = 5; +pub const NFPROTO_BRIDGE: c_int = 7; +pub const NFPROTO_IPV6: c_int = 10; +pub const NFPROTO_DECNET: c_int = 12; +pub const NFPROTO_NUMPROTO: c_int = 13; // linux/netfilter_arp.h -pub const NF_ARP: ::c_int = 0; -pub const NF_ARP_IN: ::c_int = 0; -pub const NF_ARP_OUT: ::c_int = 1; -pub const NF_ARP_FORWARD: ::c_int = 2; -pub const NF_ARP_NUMHOOKS: ::c_int = 3; +pub const NF_ARP: c_int = 0; +pub const NF_ARP_IN: c_int = 0; +pub const NF_ARP_OUT: c_int = 1; +pub const NF_ARP_FORWARD: c_int = 2; +pub const NF_ARP_NUMHOOKS: c_int = 3; // linux/netfilter_bridge.h -pub const NF_BR_PRE_ROUTING: ::c_int = 0; -pub const NF_BR_LOCAL_IN: ::c_int = 1; -pub const NF_BR_FORWARD: ::c_int = 2; -pub const NF_BR_LOCAL_OUT: ::c_int = 3; -pub const NF_BR_POST_ROUTING: ::c_int = 4; -pub const NF_BR_BROUTING: ::c_int = 5; -pub const NF_BR_NUMHOOKS: ::c_int = 6; - -pub const NF_BR_PRI_FIRST: ::c_int = ::INT_MIN; -pub const NF_BR_PRI_NAT_DST_BRIDGED: ::c_int = -300; -pub const NF_BR_PRI_FILTER_BRIDGED: ::c_int = -200; -pub const NF_BR_PRI_BRNF: ::c_int = 0; -pub const NF_BR_PRI_NAT_DST_OTHER: ::c_int = 100; -pub const NF_BR_PRI_FILTER_OTHER: ::c_int = 200; -pub const NF_BR_PRI_NAT_SRC: ::c_int = 300; -pub const NF_BR_PRI_LAST: ::c_int = ::INT_MAX; +pub const NF_BR_PRE_ROUTING: c_int = 0; +pub const NF_BR_LOCAL_IN: c_int = 1; +pub const NF_BR_FORWARD: c_int = 2; +pub const NF_BR_LOCAL_OUT: c_int = 3; +pub const NF_BR_POST_ROUTING: c_int = 4; +pub const NF_BR_BROUTING: c_int = 5; +pub const NF_BR_NUMHOOKS: c_int = 6; + +pub const NF_BR_PRI_FIRST: c_int = crate::INT_MIN; +pub const NF_BR_PRI_NAT_DST_BRIDGED: c_int = -300; +pub const NF_BR_PRI_FILTER_BRIDGED: c_int = -200; +pub const NF_BR_PRI_BRNF: c_int = 0; +pub const NF_BR_PRI_NAT_DST_OTHER: c_int = 100; +pub const NF_BR_PRI_FILTER_OTHER: c_int = 200; +pub const NF_BR_PRI_NAT_SRC: c_int = 300; +pub const NF_BR_PRI_LAST: c_int = crate::INT_MAX; // linux/netfilter_ipv4.h -pub const NF_IP_PRE_ROUTING: ::c_int = 0; -pub const NF_IP_LOCAL_IN: ::c_int = 1; -pub const NF_IP_FORWARD: ::c_int = 2; -pub const NF_IP_LOCAL_OUT: ::c_int = 3; -pub const NF_IP_POST_ROUTING: ::c_int = 4; -pub const NF_IP_NUMHOOKS: ::c_int = 5; - -pub const NF_IP_PRI_FIRST: ::c_int = ::INT_MIN; -pub const NF_IP_PRI_RAW_BEFORE_DEFRAG: ::c_int = -450; -pub const NF_IP_PRI_CONNTRACK_DEFRAG: ::c_int = -400; -pub const NF_IP_PRI_RAW: ::c_int = -300; -pub const NF_IP_PRI_SELINUX_FIRST: ::c_int = -225; -pub const NF_IP_PRI_CONNTRACK: ::c_int = -200; -pub const NF_IP_PRI_MANGLE: ::c_int = -150; -pub const NF_IP_PRI_NAT_DST: ::c_int = -100; -pub const NF_IP_PRI_FILTER: ::c_int = 0; -pub const NF_IP_PRI_SECURITY: ::c_int = 50; -pub const NF_IP_PRI_NAT_SRC: ::c_int = 100; -pub const NF_IP_PRI_SELINUX_LAST: ::c_int = 225; -pub const NF_IP_PRI_CONNTRACK_HELPER: ::c_int = 300; -pub const NF_IP_PRI_CONNTRACK_CONFIRM: ::c_int = ::INT_MAX; -pub const NF_IP_PRI_LAST: ::c_int = ::INT_MAX; +pub const NF_IP_PRE_ROUTING: c_int = 0; +pub const NF_IP_LOCAL_IN: c_int = 1; +pub const NF_IP_FORWARD: c_int = 2; +pub const NF_IP_LOCAL_OUT: c_int = 3; +pub const NF_IP_POST_ROUTING: c_int = 4; +pub const NF_IP_NUMHOOKS: c_int = 5; + +pub const NF_IP_PRI_FIRST: c_int = crate::INT_MIN; +pub const NF_IP_PRI_RAW_BEFORE_DEFRAG: c_int = -450; +pub const NF_IP_PRI_CONNTRACK_DEFRAG: c_int = -400; +pub const NF_IP_PRI_RAW: c_int = -300; +pub const NF_IP_PRI_SELINUX_FIRST: c_int = -225; +pub const NF_IP_PRI_CONNTRACK: c_int = -200; +pub const NF_IP_PRI_MANGLE: c_int = -150; +pub const NF_IP_PRI_NAT_DST: c_int = -100; +pub const NF_IP_PRI_FILTER: c_int = 0; +pub const NF_IP_PRI_SECURITY: c_int = 50; +pub const NF_IP_PRI_NAT_SRC: c_int = 100; +pub const NF_IP_PRI_SELINUX_LAST: c_int = 225; +pub const NF_IP_PRI_CONNTRACK_HELPER: c_int = 300; +pub const NF_IP_PRI_CONNTRACK_CONFIRM: c_int = crate::INT_MAX; +pub const NF_IP_PRI_LAST: c_int = crate::INT_MAX; // linux/netfilter_ipv6.h -pub const NF_IP6_PRE_ROUTING: ::c_int = 0; -pub const NF_IP6_LOCAL_IN: ::c_int = 1; -pub const NF_IP6_FORWARD: ::c_int = 2; -pub const NF_IP6_LOCAL_OUT: ::c_int = 3; -pub const NF_IP6_POST_ROUTING: ::c_int = 4; -pub const NF_IP6_NUMHOOKS: ::c_int = 5; - -pub const NF_IP6_PRI_FIRST: ::c_int = ::INT_MIN; -pub const NF_IP6_PRI_RAW_BEFORE_DEFRAG: ::c_int = -450; -pub const NF_IP6_PRI_CONNTRACK_DEFRAG: ::c_int = -400; -pub const NF_IP6_PRI_RAW: ::c_int = -300; -pub const NF_IP6_PRI_SELINUX_FIRST: ::c_int = -225; -pub const NF_IP6_PRI_CONNTRACK: ::c_int = -200; -pub const NF_IP6_PRI_MANGLE: ::c_int = -150; -pub const NF_IP6_PRI_NAT_DST: ::c_int = -100; -pub const NF_IP6_PRI_FILTER: ::c_int = 0; -pub const NF_IP6_PRI_SECURITY: ::c_int = 50; -pub const NF_IP6_PRI_NAT_SRC: ::c_int = 100; -pub const NF_IP6_PRI_SELINUX_LAST: ::c_int = 225; -pub const NF_IP6_PRI_CONNTRACK_HELPER: ::c_int = 300; -pub const NF_IP6_PRI_LAST: ::c_int = ::INT_MAX; +pub const NF_IP6_PRE_ROUTING: c_int = 0; +pub const NF_IP6_LOCAL_IN: c_int = 1; +pub const NF_IP6_FORWARD: c_int = 2; +pub const NF_IP6_LOCAL_OUT: c_int = 3; +pub const NF_IP6_POST_ROUTING: c_int = 4; +pub const NF_IP6_NUMHOOKS: c_int = 5; + +pub const NF_IP6_PRI_FIRST: c_int = crate::INT_MIN; +pub const NF_IP6_PRI_RAW_BEFORE_DEFRAG: c_int = -450; +pub const NF_IP6_PRI_CONNTRACK_DEFRAG: c_int = -400; +pub const NF_IP6_PRI_RAW: c_int = -300; +pub const NF_IP6_PRI_SELINUX_FIRST: c_int = -225; +pub const NF_IP6_PRI_CONNTRACK: c_int = -200; +pub const NF_IP6_PRI_MANGLE: c_int = -150; +pub const NF_IP6_PRI_NAT_DST: c_int = -100; +pub const NF_IP6_PRI_FILTER: c_int = 0; +pub const NF_IP6_PRI_SECURITY: c_int = 50; +pub const NF_IP6_PRI_NAT_SRC: c_int = 100; +pub const NF_IP6_PRI_SELINUX_LAST: c_int = 225; +pub const NF_IP6_PRI_CONNTRACK_HELPER: c_int = 300; +pub const NF_IP6_PRI_LAST: c_int = crate::INT_MAX; // linux/netfilter_ipv6/ip6_tables.h -pub const IP6T_SO_ORIGINAL_DST: ::c_int = 80; +pub const IP6T_SO_ORIGINAL_DST: c_int = 80; // linux/netfilter/nf_tables.h -pub const NFT_TABLE_MAXNAMELEN: ::c_int = 256; -pub const NFT_CHAIN_MAXNAMELEN: ::c_int = 256; -pub const NFT_SET_MAXNAMELEN: ::c_int = 256; -pub const NFT_OBJ_MAXNAMELEN: ::c_int = 256; -pub const NFT_USERDATA_MAXLEN: ::c_int = 256; - -pub const NFT_REG_VERDICT: ::c_int = 0; -pub const NFT_REG_1: ::c_int = 1; -pub const NFT_REG_2: ::c_int = 2; -pub const NFT_REG_3: ::c_int = 3; -pub const NFT_REG_4: ::c_int = 4; -pub const __NFT_REG_MAX: ::c_int = 5; -pub const NFT_REG32_00: ::c_int = 8; -pub const NFT_REG32_01: ::c_int = 9; -pub const NFT_REG32_02: ::c_int = 10; -pub const NFT_REG32_03: ::c_int = 11; -pub const NFT_REG32_04: ::c_int = 12; -pub const NFT_REG32_05: ::c_int = 13; -pub const NFT_REG32_06: ::c_int = 14; -pub const NFT_REG32_07: ::c_int = 15; -pub const NFT_REG32_08: ::c_int = 16; -pub const NFT_REG32_09: ::c_int = 17; -pub const NFT_REG32_10: ::c_int = 18; -pub const NFT_REG32_11: ::c_int = 19; -pub const NFT_REG32_12: ::c_int = 20; -pub const NFT_REG32_13: ::c_int = 21; -pub const NFT_REG32_14: ::c_int = 22; -pub const NFT_REG32_15: ::c_int = 23; - -pub const NFT_REG_SIZE: ::c_int = 16; -pub const NFT_REG32_SIZE: ::c_int = 4; - -pub const NFT_CONTINUE: ::c_int = -1; -pub const NFT_BREAK: ::c_int = -2; -pub const NFT_JUMP: ::c_int = -3; -pub const NFT_GOTO: ::c_int = -4; -pub const NFT_RETURN: ::c_int = -5; - -pub const NFT_MSG_NEWTABLE: ::c_int = 0; -pub const NFT_MSG_GETTABLE: ::c_int = 1; -pub const NFT_MSG_DELTABLE: ::c_int = 2; -pub const NFT_MSG_NEWCHAIN: ::c_int = 3; -pub const NFT_MSG_GETCHAIN: ::c_int = 4; -pub const NFT_MSG_DELCHAIN: ::c_int = 5; -pub const NFT_MSG_NEWRULE: ::c_int = 6; -pub const NFT_MSG_GETRULE: ::c_int = 7; -pub const NFT_MSG_DELRULE: ::c_int = 8; -pub const NFT_MSG_NEWSET: ::c_int = 9; -pub const NFT_MSG_GETSET: ::c_int = 10; -pub const NFT_MSG_DELSET: ::c_int = 11; -pub const NFT_MSG_NEWSETELEM: ::c_int = 12; -pub const NFT_MSG_GETSETELEM: ::c_int = 13; -pub const NFT_MSG_DELSETELEM: ::c_int = 14; -pub const NFT_MSG_NEWGEN: ::c_int = 15; -pub const NFT_MSG_GETGEN: ::c_int = 16; -pub const NFT_MSG_TRACE: ::c_int = 17; -pub const NFT_MSG_NEWOBJ: ::c_int = 18; -pub const NFT_MSG_GETOBJ: ::c_int = 19; -pub const NFT_MSG_DELOBJ: ::c_int = 20; -pub const NFT_MSG_GETOBJ_RESET: ::c_int = 21; -pub const NFT_MSG_MAX: ::c_int = 25; - -pub const NFT_SET_ANONYMOUS: ::c_int = 0x1; -pub const NFT_SET_CONSTANT: ::c_int = 0x2; -pub const NFT_SET_INTERVAL: ::c_int = 0x4; -pub const NFT_SET_MAP: ::c_int = 0x8; -pub const NFT_SET_TIMEOUT: ::c_int = 0x10; -pub const NFT_SET_EVAL: ::c_int = 0x20; - -pub const NFT_SET_POL_PERFORMANCE: ::c_int = 0; -pub const NFT_SET_POL_MEMORY: ::c_int = 1; - -pub const NFT_SET_ELEM_INTERVAL_END: ::c_int = 0x1; - -pub const NFT_DATA_VALUE: ::c_uint = 0; -pub const NFT_DATA_VERDICT: ::c_uint = 0xffffff00; - -pub const NFT_DATA_RESERVED_MASK: ::c_uint = 0xffffff00; - -pub const NFT_DATA_VALUE_MAXLEN: ::c_int = 64; - -pub const NFT_BYTEORDER_NTOH: ::c_int = 0; -pub const NFT_BYTEORDER_HTON: ::c_int = 1; - -pub const NFT_CMP_EQ: ::c_int = 0; -pub const NFT_CMP_NEQ: ::c_int = 1; -pub const NFT_CMP_LT: ::c_int = 2; -pub const NFT_CMP_LTE: ::c_int = 3; -pub const NFT_CMP_GT: ::c_int = 4; -pub const NFT_CMP_GTE: ::c_int = 5; - -pub const NFT_RANGE_EQ: ::c_int = 0; -pub const NFT_RANGE_NEQ: ::c_int = 1; - -pub const NFT_LOOKUP_F_INV: ::c_int = 1 << 0; - -pub const NFT_DYNSET_OP_ADD: ::c_int = 0; -pub const NFT_DYNSET_OP_UPDATE: ::c_int = 1; - -pub const NFT_DYNSET_F_INV: ::c_int = 1 << 0; - -pub const NFT_PAYLOAD_LL_HEADER: ::c_int = 0; -pub const NFT_PAYLOAD_NETWORK_HEADER: ::c_int = 1; -pub const NFT_PAYLOAD_TRANSPORT_HEADER: ::c_int = 2; - -pub const NFT_PAYLOAD_CSUM_NONE: ::c_int = 0; -pub const NFT_PAYLOAD_CSUM_INET: ::c_int = 1; - -pub const NFT_META_LEN: ::c_int = 0; -pub const NFT_META_PROTOCOL: ::c_int = 1; -pub const NFT_META_PRIORITY: ::c_int = 2; -pub const NFT_META_MARK: ::c_int = 3; -pub const NFT_META_IIF: ::c_int = 4; -pub const NFT_META_OIF: ::c_int = 5; -pub const NFT_META_IIFNAME: ::c_int = 6; -pub const NFT_META_OIFNAME: ::c_int = 7; -pub const NFT_META_IIFTYPE: ::c_int = 8; -pub const NFT_META_OIFTYPE: ::c_int = 9; -pub const NFT_META_SKUID: ::c_int = 10; -pub const NFT_META_SKGID: ::c_int = 11; -pub const NFT_META_NFTRACE: ::c_int = 12; -pub const NFT_META_RTCLASSID: ::c_int = 13; -pub const NFT_META_SECMARK: ::c_int = 14; -pub const NFT_META_NFPROTO: ::c_int = 15; -pub const NFT_META_L4PROTO: ::c_int = 16; -pub const NFT_META_BRI_IIFNAME: ::c_int = 17; -pub const NFT_META_BRI_OIFNAME: ::c_int = 18; -pub const NFT_META_PKTTYPE: ::c_int = 19; -pub const NFT_META_CPU: ::c_int = 20; -pub const NFT_META_IIFGROUP: ::c_int = 21; -pub const NFT_META_OIFGROUP: ::c_int = 22; -pub const NFT_META_CGROUP: ::c_int = 23; -pub const NFT_META_PRANDOM: ::c_int = 24; - -pub const NFT_CT_STATE: ::c_int = 0; -pub const NFT_CT_DIRECTION: ::c_int = 1; -pub const NFT_CT_STATUS: ::c_int = 2; -pub const NFT_CT_MARK: ::c_int = 3; -pub const NFT_CT_SECMARK: ::c_int = 4; -pub const NFT_CT_EXPIRATION: ::c_int = 5; -pub const NFT_CT_HELPER: ::c_int = 6; -pub const NFT_CT_L3PROTOCOL: ::c_int = 7; -pub const NFT_CT_SRC: ::c_int = 8; -pub const NFT_CT_DST: ::c_int = 9; -pub const NFT_CT_PROTOCOL: ::c_int = 10; -pub const NFT_CT_PROTO_SRC: ::c_int = 11; -pub const NFT_CT_PROTO_DST: ::c_int = 12; -pub const NFT_CT_LABELS: ::c_int = 13; -pub const NFT_CT_PKTS: ::c_int = 14; -pub const NFT_CT_BYTES: ::c_int = 15; -pub const NFT_CT_AVGPKT: ::c_int = 16; -pub const NFT_CT_ZONE: ::c_int = 17; -pub const NFT_CT_EVENTMASK: ::c_int = 18; -pub const NFT_CT_SRC_IP: ::c_int = 19; -pub const NFT_CT_DST_IP: ::c_int = 20; -pub const NFT_CT_SRC_IP6: ::c_int = 21; -pub const NFT_CT_DST_IP6: ::c_int = 22; -pub const NFT_CT_ID: ::c_int = 23; - -pub const NFT_LIMIT_PKTS: ::c_int = 0; -pub const NFT_LIMIT_PKT_BYTES: ::c_int = 1; - -pub const NFT_LIMIT_F_INV: ::c_int = 1 << 0; - -pub const NFT_QUEUE_FLAG_BYPASS: ::c_int = 0x01; -pub const NFT_QUEUE_FLAG_CPU_FANOUT: ::c_int = 0x02; -pub const NFT_QUEUE_FLAG_MASK: ::c_int = 0x03; - -pub const NFT_QUOTA_F_INV: ::c_int = 1 << 0; - -pub const NFT_REJECT_ICMP_UNREACH: ::c_int = 0; -pub const NFT_REJECT_TCP_RST: ::c_int = 1; -pub const NFT_REJECT_ICMPX_UNREACH: ::c_int = 2; - -pub const NFT_REJECT_ICMPX_NO_ROUTE: ::c_int = 0; -pub const NFT_REJECT_ICMPX_PORT_UNREACH: ::c_int = 1; -pub const NFT_REJECT_ICMPX_HOST_UNREACH: ::c_int = 2; -pub const NFT_REJECT_ICMPX_ADMIN_PROHIBITED: ::c_int = 3; - -pub const NFT_NAT_SNAT: ::c_int = 0; -pub const NFT_NAT_DNAT: ::c_int = 1; - -pub const NFT_TRACETYPE_UNSPEC: ::c_int = 0; -pub const NFT_TRACETYPE_POLICY: ::c_int = 1; -pub const NFT_TRACETYPE_RETURN: ::c_int = 2; -pub const NFT_TRACETYPE_RULE: ::c_int = 3; - -pub const NFT_NG_INCREMENTAL: ::c_int = 0; -pub const NFT_NG_RANDOM: ::c_int = 1; +pub const NFT_TABLE_MAXNAMELEN: c_int = 256; +pub const NFT_CHAIN_MAXNAMELEN: c_int = 256; +pub const NFT_SET_MAXNAMELEN: c_int = 256; +pub const NFT_OBJ_MAXNAMELEN: c_int = 256; +pub const NFT_USERDATA_MAXLEN: c_int = 256; + +pub const NFT_REG_VERDICT: c_int = 0; +pub const NFT_REG_1: c_int = 1; +pub const NFT_REG_2: c_int = 2; +pub const NFT_REG_3: c_int = 3; +pub const NFT_REG_4: c_int = 4; +pub const __NFT_REG_MAX: c_int = 5; +pub const NFT_REG32_00: c_int = 8; +pub const NFT_REG32_01: c_int = 9; +pub const NFT_REG32_02: c_int = 10; +pub const NFT_REG32_03: c_int = 11; +pub const NFT_REG32_04: c_int = 12; +pub const NFT_REG32_05: c_int = 13; +pub const NFT_REG32_06: c_int = 14; +pub const NFT_REG32_07: c_int = 15; +pub const NFT_REG32_08: c_int = 16; +pub const NFT_REG32_09: c_int = 17; +pub const NFT_REG32_10: c_int = 18; +pub const NFT_REG32_11: c_int = 19; +pub const NFT_REG32_12: c_int = 20; +pub const NFT_REG32_13: c_int = 21; +pub const NFT_REG32_14: c_int = 22; +pub const NFT_REG32_15: c_int = 23; + +pub const NFT_REG_SIZE: c_int = 16; +pub const NFT_REG32_SIZE: c_int = 4; + +pub const NFT_CONTINUE: c_int = -1; +pub const NFT_BREAK: c_int = -2; +pub const NFT_JUMP: c_int = -3; +pub const NFT_GOTO: c_int = -4; +pub const NFT_RETURN: c_int = -5; + +pub const NFT_MSG_NEWTABLE: c_int = 0; +pub const NFT_MSG_GETTABLE: c_int = 1; +pub const NFT_MSG_DELTABLE: c_int = 2; +pub const NFT_MSG_NEWCHAIN: c_int = 3; +pub const NFT_MSG_GETCHAIN: c_int = 4; +pub const NFT_MSG_DELCHAIN: c_int = 5; +pub const NFT_MSG_NEWRULE: c_int = 6; +pub const NFT_MSG_GETRULE: c_int = 7; +pub const NFT_MSG_DELRULE: c_int = 8; +pub const NFT_MSG_NEWSET: c_int = 9; +pub const NFT_MSG_GETSET: c_int = 10; +pub const NFT_MSG_DELSET: c_int = 11; +pub const NFT_MSG_NEWSETELEM: c_int = 12; +pub const NFT_MSG_GETSETELEM: c_int = 13; +pub const NFT_MSG_DELSETELEM: c_int = 14; +pub const NFT_MSG_NEWGEN: c_int = 15; +pub const NFT_MSG_GETGEN: c_int = 16; +pub const NFT_MSG_TRACE: c_int = 17; +pub const NFT_MSG_NEWOBJ: c_int = 18; +pub const NFT_MSG_GETOBJ: c_int = 19; +pub const NFT_MSG_DELOBJ: c_int = 20; +pub const NFT_MSG_GETOBJ_RESET: c_int = 21; +pub const NFT_MSG_MAX: c_int = 25; + +pub const NFT_SET_ANONYMOUS: c_int = 0x1; +pub const NFT_SET_CONSTANT: c_int = 0x2; +pub const NFT_SET_INTERVAL: c_int = 0x4; +pub const NFT_SET_MAP: c_int = 0x8; +pub const NFT_SET_TIMEOUT: c_int = 0x10; +pub const NFT_SET_EVAL: c_int = 0x20; + +pub const NFT_SET_POL_PERFORMANCE: c_int = 0; +pub const NFT_SET_POL_MEMORY: c_int = 1; + +pub const NFT_SET_ELEM_INTERVAL_END: c_int = 0x1; + +pub const NFT_DATA_VALUE: c_uint = 0; +pub const NFT_DATA_VERDICT: c_uint = 0xffffff00; + +pub const NFT_DATA_RESERVED_MASK: c_uint = 0xffffff00; + +pub const NFT_DATA_VALUE_MAXLEN: c_int = 64; + +pub const NFT_BYTEORDER_NTOH: c_int = 0; +pub const NFT_BYTEORDER_HTON: c_int = 1; + +pub const NFT_CMP_EQ: c_int = 0; +pub const NFT_CMP_NEQ: c_int = 1; +pub const NFT_CMP_LT: c_int = 2; +pub const NFT_CMP_LTE: c_int = 3; +pub const NFT_CMP_GT: c_int = 4; +pub const NFT_CMP_GTE: c_int = 5; + +pub const NFT_RANGE_EQ: c_int = 0; +pub const NFT_RANGE_NEQ: c_int = 1; + +pub const NFT_LOOKUP_F_INV: c_int = 1 << 0; + +pub const NFT_DYNSET_OP_ADD: c_int = 0; +pub const NFT_DYNSET_OP_UPDATE: c_int = 1; + +pub const NFT_DYNSET_F_INV: c_int = 1 << 0; + +pub const NFT_PAYLOAD_LL_HEADER: c_int = 0; +pub const NFT_PAYLOAD_NETWORK_HEADER: c_int = 1; +pub const NFT_PAYLOAD_TRANSPORT_HEADER: c_int = 2; + +pub const NFT_PAYLOAD_CSUM_NONE: c_int = 0; +pub const NFT_PAYLOAD_CSUM_INET: c_int = 1; + +pub const NFT_META_LEN: c_int = 0; +pub const NFT_META_PROTOCOL: c_int = 1; +pub const NFT_META_PRIORITY: c_int = 2; +pub const NFT_META_MARK: c_int = 3; +pub const NFT_META_IIF: c_int = 4; +pub const NFT_META_OIF: c_int = 5; +pub const NFT_META_IIFNAME: c_int = 6; +pub const NFT_META_OIFNAME: c_int = 7; +pub const NFT_META_IIFTYPE: c_int = 8; +pub const NFT_META_OIFTYPE: c_int = 9; +pub const NFT_META_SKUID: c_int = 10; +pub const NFT_META_SKGID: c_int = 11; +pub const NFT_META_NFTRACE: c_int = 12; +pub const NFT_META_RTCLASSID: c_int = 13; +pub const NFT_META_SECMARK: c_int = 14; +pub const NFT_META_NFPROTO: c_int = 15; +pub const NFT_META_L4PROTO: c_int = 16; +pub const NFT_META_BRI_IIFNAME: c_int = 17; +pub const NFT_META_BRI_OIFNAME: c_int = 18; +pub const NFT_META_PKTTYPE: c_int = 19; +pub const NFT_META_CPU: c_int = 20; +pub const NFT_META_IIFGROUP: c_int = 21; +pub const NFT_META_OIFGROUP: c_int = 22; +pub const NFT_META_CGROUP: c_int = 23; +pub const NFT_META_PRANDOM: c_int = 24; + +pub const NFT_CT_STATE: c_int = 0; +pub const NFT_CT_DIRECTION: c_int = 1; +pub const NFT_CT_STATUS: c_int = 2; +pub const NFT_CT_MARK: c_int = 3; +pub const NFT_CT_SECMARK: c_int = 4; +pub const NFT_CT_EXPIRATION: c_int = 5; +pub const NFT_CT_HELPER: c_int = 6; +pub const NFT_CT_L3PROTOCOL: c_int = 7; +pub const NFT_CT_SRC: c_int = 8; +pub const NFT_CT_DST: c_int = 9; +pub const NFT_CT_PROTOCOL: c_int = 10; +pub const NFT_CT_PROTO_SRC: c_int = 11; +pub const NFT_CT_PROTO_DST: c_int = 12; +pub const NFT_CT_LABELS: c_int = 13; +pub const NFT_CT_PKTS: c_int = 14; +pub const NFT_CT_BYTES: c_int = 15; +pub const NFT_CT_AVGPKT: c_int = 16; +pub const NFT_CT_ZONE: c_int = 17; +pub const NFT_CT_EVENTMASK: c_int = 18; +pub const NFT_CT_SRC_IP: c_int = 19; +pub const NFT_CT_DST_IP: c_int = 20; +pub const NFT_CT_SRC_IP6: c_int = 21; +pub const NFT_CT_DST_IP6: c_int = 22; +pub const NFT_CT_ID: c_int = 23; + +pub const NFT_LIMIT_PKTS: c_int = 0; +pub const NFT_LIMIT_PKT_BYTES: c_int = 1; + +pub const NFT_LIMIT_F_INV: c_int = 1 << 0; + +pub const NFT_QUEUE_FLAG_BYPASS: c_int = 0x01; +pub const NFT_QUEUE_FLAG_CPU_FANOUT: c_int = 0x02; +pub const NFT_QUEUE_FLAG_MASK: c_int = 0x03; + +pub const NFT_QUOTA_F_INV: c_int = 1 << 0; + +pub const NFT_REJECT_ICMP_UNREACH: c_int = 0; +pub const NFT_REJECT_TCP_RST: c_int = 1; +pub const NFT_REJECT_ICMPX_UNREACH: c_int = 2; + +pub const NFT_REJECT_ICMPX_NO_ROUTE: c_int = 0; +pub const NFT_REJECT_ICMPX_PORT_UNREACH: c_int = 1; +pub const NFT_REJECT_ICMPX_HOST_UNREACH: c_int = 2; +pub const NFT_REJECT_ICMPX_ADMIN_PROHIBITED: c_int = 3; + +pub const NFT_NAT_SNAT: c_int = 0; +pub const NFT_NAT_DNAT: c_int = 1; + +pub const NFT_TRACETYPE_UNSPEC: c_int = 0; +pub const NFT_TRACETYPE_POLICY: c_int = 1; +pub const NFT_TRACETYPE_RETURN: c_int = 2; +pub const NFT_TRACETYPE_RULE: c_int = 3; + +pub const NFT_NG_INCREMENTAL: c_int = 0; +pub const NFT_NG_RANDOM: c_int = 1; // linux/input.h -pub const FF_MAX: ::__u16 = 0x7f; +pub const FF_MAX: crate::__u16 = 0x7f; pub const FF_CNT: usize = FF_MAX as usize + 1; // linux/input-event-codes.h -pub const INPUT_PROP_MAX: ::__u16 = 0x1f; +pub const INPUT_PROP_MAX: crate::__u16 = 0x1f; pub const INPUT_PROP_CNT: usize = INPUT_PROP_MAX as usize + 1; -pub const EV_MAX: ::__u16 = 0x1f; +pub const EV_MAX: crate::__u16 = 0x1f; pub const EV_CNT: usize = EV_MAX as usize + 1; -pub const SYN_MAX: ::__u16 = 0xf; +pub const SYN_MAX: crate::__u16 = 0xf; pub const SYN_CNT: usize = SYN_MAX as usize + 1; -pub const KEY_MAX: ::__u16 = 0x2ff; +pub const KEY_MAX: crate::__u16 = 0x2ff; pub const KEY_CNT: usize = KEY_MAX as usize + 1; -pub const REL_MAX: ::__u16 = 0x0f; +pub const REL_MAX: crate::__u16 = 0x0f; pub const REL_CNT: usize = REL_MAX as usize + 1; -pub const ABS_MAX: ::__u16 = 0x3f; +pub const ABS_MAX: crate::__u16 = 0x3f; pub const ABS_CNT: usize = ABS_MAX as usize + 1; -pub const SW_MAX: ::__u16 = 0x0f; +pub const SW_MAX: crate::__u16 = 0x0f; pub const SW_CNT: usize = SW_MAX as usize + 1; -pub const MSC_MAX: ::__u16 = 0x07; +pub const MSC_MAX: crate::__u16 = 0x07; pub const MSC_CNT: usize = MSC_MAX as usize + 1; -pub const LED_MAX: ::__u16 = 0x0f; +pub const LED_MAX: crate::__u16 = 0x0f; pub const LED_CNT: usize = LED_MAX as usize + 1; -pub const REP_MAX: ::__u16 = 0x01; +pub const REP_MAX: crate::__u16 = 0x01; pub const REP_CNT: usize = REP_MAX as usize + 1; -pub const SND_MAX: ::__u16 = 0x07; +pub const SND_MAX: crate::__u16 = 0x07; pub const SND_CNT: usize = SND_MAX as usize + 1; // linux/uinput.h -pub const UINPUT_VERSION: ::c_uint = 5; +pub const UINPUT_VERSION: c_uint = 5; pub const UINPUT_MAX_NAME_SIZE: usize = 80; // bionic/libc/kernel/uapi/linux/if_tun.h -pub const IFF_TUN: ::c_int = 0x0001; -pub const IFF_TAP: ::c_int = 0x0002; -pub const IFF_NAPI: ::c_int = 0x0010; -pub const IFF_NAPI_FRAGS: ::c_int = 0x0020; -pub const IFF_NO_CARRIER: ::c_int = 0x0040; -pub const IFF_NO_PI: ::c_int = 0x1000; -pub const IFF_ONE_QUEUE: ::c_int = 0x2000; -pub const IFF_VNET_HDR: ::c_int = 0x4000; -pub const IFF_TUN_EXCL: ::c_int = 0x8000; -pub const IFF_MULTI_QUEUE: ::c_int = 0x0100; -pub const IFF_ATTACH_QUEUE: ::c_int = 0x0200; -pub const IFF_DETACH_QUEUE: ::c_int = 0x0400; -pub const IFF_PERSIST: ::c_int = 0x0800; -pub const IFF_NOFILTER: ::c_int = 0x1000; +pub const IFF_TUN: c_int = 0x0001; +pub const IFF_TAP: c_int = 0x0002; +pub const IFF_NAPI: c_int = 0x0010; +pub const IFF_NAPI_FRAGS: c_int = 0x0020; +pub const IFF_NO_CARRIER: c_int = 0x0040; +pub const IFF_NO_PI: c_int = 0x1000; +pub const IFF_ONE_QUEUE: c_int = 0x2000; +pub const IFF_VNET_HDR: c_int = 0x4000; +pub const IFF_TUN_EXCL: c_int = 0x8000; +pub const IFF_MULTI_QUEUE: c_int = 0x0100; +pub const IFF_ATTACH_QUEUE: c_int = 0x0200; +pub const IFF_DETACH_QUEUE: c_int = 0x0400; +pub const IFF_PERSIST: c_int = 0x0800; +pub const IFF_NOFILTER: c_int = 0x1000; // Features for GSO (TUNSETOFFLOAD) -pub const TUN_F_CSUM: ::c_uint = 0x01; -pub const TUN_F_TSO4: ::c_uint = 0x02; -pub const TUN_F_TSO6: ::c_uint = 0x04; -pub const TUN_F_TSO_ECN: ::c_uint = 0x08; -pub const TUN_F_UFO: ::c_uint = 0x10; -pub const TUN_F_USO4: ::c_uint = 0x20; -pub const TUN_F_USO6: ::c_uint = 0x40; +pub const TUN_F_CSUM: c_uint = 0x01; +pub const TUN_F_TSO4: c_uint = 0x02; +pub const TUN_F_TSO6: c_uint = 0x04; +pub const TUN_F_TSO_ECN: c_uint = 0x08; +pub const TUN_F_UFO: c_uint = 0x10; +pub const TUN_F_USO4: c_uint = 0x20; +pub const TUN_F_USO6: c_uint = 0x40; // start android/platform/bionic/libc/kernel/uapi/linux/if_ether.h // from https://android.googlesource.com/platform/bionic/+/HEAD/libc/kernel/uapi/linux/if_ether.h -pub const ETH_ALEN: ::c_int = 6; -pub const ETH_HLEN: ::c_int = 14; -pub const ETH_ZLEN: ::c_int = 60; -pub const ETH_DATA_LEN: ::c_int = 1500; -pub const ETH_FRAME_LEN: ::c_int = 1514; -pub const ETH_FCS_LEN: ::c_int = 4; -pub const ETH_MIN_MTU: ::c_int = 68; -pub const ETH_MAX_MTU: ::c_int = 0xFFFF; -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_TSN: ::c_int = 0x22F0; -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; -/* see rust-lang/libc#924 pub const ETH_P_ERSPAN: ::c_int = 0x88BE;*/ -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_MACSEC: ::c_int = 0x88E5; -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_NCSI: ::c_int = 0x88F8; -pub const ETH_P_PRP: ::c_int = 0x88FB; -pub const ETH_P_FCOE: ::c_int = 0x8906; -/* see rust-lang/libc#924 pub const ETH_P_IBOE: ::c_int = 0x8915;*/ -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_HSR: ::c_int = 0x892F; -/* see rust-lang/libc#924 pub const ETH_P_NSH: ::c_int = 0x894F;*/ -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; -/* see rust-lang/libc#924 pub const ETH_P_IFE: ::c_int = 0xED3E;*/ -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 ETH_P_XDSA: ::c_int = 0x00F8; -/* see rust-lang/libc#924 pub const ETH_P_MAP: ::c_int = 0x00F9;*/ +pub const ETH_ALEN: c_int = 6; +pub const ETH_HLEN: c_int = 14; +pub const ETH_ZLEN: c_int = 60; +pub const ETH_DATA_LEN: c_int = 1500; +pub const ETH_FRAME_LEN: c_int = 1514; +pub const ETH_FCS_LEN: c_int = 4; +pub const ETH_MIN_MTU: c_int = 68; +pub const ETH_MAX_MTU: c_int = 0xFFFF; +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_TSN: c_int = 0x22F0; +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; +/* see rust-lang/libc#924 pub const ETH_P_ERSPAN: c_int = 0x88BE;*/ +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_MACSEC: c_int = 0x88E5; +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_NCSI: c_int = 0x88F8; +pub const ETH_P_PRP: c_int = 0x88FB; +pub const ETH_P_FCOE: c_int = 0x8906; +/* see rust-lang/libc#924 pub const ETH_P_IBOE: c_int = 0x8915;*/ +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_HSR: c_int = 0x892F; +/* see rust-lang/libc#924 pub const ETH_P_NSH: c_int = 0x894F;*/ +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; +/* see rust-lang/libc#924 pub const ETH_P_IFE: c_int = 0xED3E;*/ +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 ETH_P_XDSA: c_int = 0x00F8; +/* see rust-lang/libc#924 pub const ETH_P_MAP: c_int = 0x00F9;*/ // end android/platform/bionic/libc/kernel/uapi/linux/if_ether.h // start android/platform/bionic/libc/kernel/uapi/linux/neighbour.h -pub const NDA_UNSPEC: ::c_ushort = 0; -pub const NDA_DST: ::c_ushort = 1; -pub const NDA_LLADDR: ::c_ushort = 2; -pub const NDA_CACHEINFO: ::c_ushort = 3; -pub const NDA_PROBES: ::c_ushort = 4; -pub const NDA_VLAN: ::c_ushort = 5; -pub const NDA_PORT: ::c_ushort = 6; -pub const NDA_VNI: ::c_ushort = 7; -pub const NDA_IFINDEX: ::c_ushort = 8; -pub const NDA_MASTER: ::c_ushort = 9; -pub const NDA_LINK_NETNSID: ::c_ushort = 10; -pub const NDA_SRC_VNI: ::c_ushort = 11; -pub const NDA_PROTOCOL: ::c_ushort = 12; -pub const NDA_NH_ID: ::c_ushort = 13; -pub const NDA_FDB_EXT_ATTRS: ::c_ushort = 14; -pub const NDA_FLAGS_EXT: ::c_ushort = 15; -pub const NDA_NDM_STATE_MASK: ::c_ushort = 16; -pub const NDA_NDM_FLAGS_MASK: ::c_ushort = 17; +pub const NDA_UNSPEC: c_ushort = 0; +pub const NDA_DST: c_ushort = 1; +pub const NDA_LLADDR: c_ushort = 2; +pub const NDA_CACHEINFO: c_ushort = 3; +pub const NDA_PROBES: c_ushort = 4; +pub const NDA_VLAN: c_ushort = 5; +pub const NDA_PORT: c_ushort = 6; +pub const NDA_VNI: c_ushort = 7; +pub const NDA_IFINDEX: c_ushort = 8; +pub const NDA_MASTER: c_ushort = 9; +pub const NDA_LINK_NETNSID: c_ushort = 10; +pub const NDA_SRC_VNI: c_ushort = 11; +pub const NDA_PROTOCOL: c_ushort = 12; +pub const NDA_NH_ID: c_ushort = 13; +pub const NDA_FDB_EXT_ATTRS: c_ushort = 14; +pub const NDA_FLAGS_EXT: c_ushort = 15; +pub const NDA_NDM_STATE_MASK: c_ushort = 16; +pub const NDA_NDM_FLAGS_MASK: c_ushort = 17; pub const NTF_USE: u8 = 0x01; pub const NTF_SELF: u8 = 0x02; @@ -2831,169 +2835,169 @@ pub const NUD_FAILED: u16 = 0x20; pub const NUD_NOARP: u16 = 0x40; pub const NUD_PERMANENT: u16 = 0x80; -pub const NDTPA_UNSPEC: ::c_ushort = 0; -pub const NDTPA_IFINDEX: ::c_ushort = 1; -pub const NDTPA_REFCNT: ::c_ushort = 2; -pub const NDTPA_REACHABLE_TIME: ::c_ushort = 3; -pub const NDTPA_BASE_REACHABLE_TIME: ::c_ushort = 4; -pub const NDTPA_RETRANS_TIME: ::c_ushort = 5; -pub const NDTPA_GC_STALETIME: ::c_ushort = 6; -pub const NDTPA_DELAY_PROBE_TIME: ::c_ushort = 7; -pub const NDTPA_QUEUE_LEN: ::c_ushort = 8; -pub const NDTPA_APP_PROBES: ::c_ushort = 9; -pub const NDTPA_UCAST_PROBES: ::c_ushort = 10; -pub const NDTPA_MCAST_PROBES: ::c_ushort = 11; -pub const NDTPA_ANYCAST_DELAY: ::c_ushort = 12; -pub const NDTPA_PROXY_DELAY: ::c_ushort = 13; -pub const NDTPA_PROXY_QLEN: ::c_ushort = 14; -pub const NDTPA_LOCKTIME: ::c_ushort = 15; -pub const NDTPA_QUEUE_LENBYTES: ::c_ushort = 16; -pub const NDTPA_MCAST_REPROBES: ::c_ushort = 17; -pub const NDTPA_PAD: ::c_ushort = 18; -pub const NDTPA_INTERVAL_PROBE_TIME_MS: ::c_ushort = 19; - -pub const NDTA_UNSPEC: ::c_ushort = 0; -pub const NDTA_NAME: ::c_ushort = 1; -pub const NDTA_THRESH1: ::c_ushort = 2; -pub const NDTA_THRESH2: ::c_ushort = 3; -pub const NDTA_THRESH3: ::c_ushort = 4; -pub const NDTA_CONFIG: ::c_ushort = 5; -pub const NDTA_PARMS: ::c_ushort = 6; -pub const NDTA_STATS: ::c_ushort = 7; -pub const NDTA_GC_INTERVAL: ::c_ushort = 8; -pub const NDTA_PAD: ::c_ushort = 9; +pub const NDTPA_UNSPEC: c_ushort = 0; +pub const NDTPA_IFINDEX: c_ushort = 1; +pub const NDTPA_REFCNT: c_ushort = 2; +pub const NDTPA_REACHABLE_TIME: c_ushort = 3; +pub const NDTPA_BASE_REACHABLE_TIME: c_ushort = 4; +pub const NDTPA_RETRANS_TIME: c_ushort = 5; +pub const NDTPA_GC_STALETIME: c_ushort = 6; +pub const NDTPA_DELAY_PROBE_TIME: c_ushort = 7; +pub const NDTPA_QUEUE_LEN: c_ushort = 8; +pub const NDTPA_APP_PROBES: c_ushort = 9; +pub const NDTPA_UCAST_PROBES: c_ushort = 10; +pub const NDTPA_MCAST_PROBES: c_ushort = 11; +pub const NDTPA_ANYCAST_DELAY: c_ushort = 12; +pub const NDTPA_PROXY_DELAY: c_ushort = 13; +pub const NDTPA_PROXY_QLEN: c_ushort = 14; +pub const NDTPA_LOCKTIME: c_ushort = 15; +pub const NDTPA_QUEUE_LENBYTES: c_ushort = 16; +pub const NDTPA_MCAST_REPROBES: c_ushort = 17; +pub const NDTPA_PAD: c_ushort = 18; +pub const NDTPA_INTERVAL_PROBE_TIME_MS: c_ushort = 19; + +pub const NDTA_UNSPEC: c_ushort = 0; +pub const NDTA_NAME: c_ushort = 1; +pub const NDTA_THRESH1: c_ushort = 2; +pub const NDTA_THRESH2: c_ushort = 3; +pub const NDTA_THRESH3: c_ushort = 4; +pub const NDTA_CONFIG: c_ushort = 5; +pub const NDTA_PARMS: c_ushort = 6; +pub const NDTA_STATS: c_ushort = 7; +pub const NDTA_GC_INTERVAL: c_ushort = 8; +pub const NDTA_PAD: c_ushort = 9; pub const FDB_NOTIFY_BIT: u16 = 0x01; pub const FDB_NOTIFY_INACTIVE_BIT: u16 = 0x02; -pub const NFEA_UNSPEC: ::c_ushort = 0; -pub const NFEA_ACTIVITY_NOTIFY: ::c_ushort = 1; -pub const NFEA_DONT_REFRESH: ::c_ushort = 2; +pub const NFEA_UNSPEC: c_ushort = 0; +pub const NFEA_ACTIVITY_NOTIFY: c_ushort = 1; +pub const NFEA_DONT_REFRESH: c_ushort = 2; // end android/platform/bionic/libc/kernel/uapi/linux/neighbour.h -pub const SIOCADDRT: ::c_ulong = 0x0000890B; -pub const SIOCDELRT: ::c_ulong = 0x0000890C; -pub const SIOCRTMSG: ::c_ulong = 0x0000890D; -pub const SIOCGIFNAME: ::c_ulong = 0x00008910; -pub const SIOCSIFLINK: ::c_ulong = 0x00008911; -pub const SIOCGIFCONF: ::c_ulong = 0x00008912; -pub const SIOCGIFFLAGS: ::c_ulong = 0x00008913; -pub const SIOCSIFFLAGS: ::c_ulong = 0x00008914; -pub const SIOCGIFADDR: ::c_ulong = 0x00008915; -pub const SIOCSIFADDR: ::c_ulong = 0x00008916; -pub const SIOCGIFDSTADDR: ::c_ulong = 0x00008917; -pub const SIOCSIFDSTADDR: ::c_ulong = 0x00008918; -pub const SIOCGIFBRDADDR: ::c_ulong = 0x00008919; -pub const SIOCSIFBRDADDR: ::c_ulong = 0x0000891A; -pub const SIOCGIFNETMASK: ::c_ulong = 0x0000891B; -pub const SIOCSIFNETMASK: ::c_ulong = 0x0000891C; -pub const SIOCGIFMETRIC: ::c_ulong = 0x0000891D; -pub const SIOCSIFMETRIC: ::c_ulong = 0x0000891E; -pub const SIOCGIFMEM: ::c_ulong = 0x0000891F; -pub const SIOCSIFMEM: ::c_ulong = 0x00008920; -pub const SIOCGIFMTU: ::c_ulong = 0x00008921; -pub const SIOCSIFMTU: ::c_ulong = 0x00008922; -pub const SIOCSIFNAME: ::c_ulong = 0x00008923; -pub const SIOCSIFHWADDR: ::c_ulong = 0x00008924; -pub const SIOCGIFENCAP: ::c_ulong = 0x00008925; -pub const SIOCSIFENCAP: ::c_ulong = 0x00008926; -pub const SIOCGIFHWADDR: ::c_ulong = 0x00008927; -pub const SIOCGIFSLAVE: ::c_ulong = 0x00008929; -pub const SIOCSIFSLAVE: ::c_ulong = 0x00008930; -pub const SIOCADDMULTI: ::c_ulong = 0x00008931; -pub const SIOCDELMULTI: ::c_ulong = 0x00008932; -pub const SIOCGIFINDEX: ::c_ulong = 0x00008933; -pub const SIOGIFINDEX: ::c_ulong = SIOCGIFINDEX; -pub const SIOCSIFPFLAGS: ::c_ulong = 0x00008934; -pub const SIOCGIFPFLAGS: ::c_ulong = 0x00008935; -pub const SIOCDIFADDR: ::c_ulong = 0x00008936; -pub const SIOCSIFHWBROADCAST: ::c_ulong = 0x00008937; -pub const SIOCGIFCOUNT: ::c_ulong = 0x00008938; -pub const SIOCGIFBR: ::c_ulong = 0x00008940; -pub const SIOCSIFBR: ::c_ulong = 0x00008941; -pub const SIOCGIFTXQLEN: ::c_ulong = 0x00008942; -pub const SIOCSIFTXQLEN: ::c_ulong = 0x00008943; -pub const SIOCETHTOOL: ::c_ulong = 0x00008946; -pub const SIOCGMIIPHY: ::c_ulong = 0x00008947; -pub const SIOCGMIIREG: ::c_ulong = 0x00008948; -pub const SIOCSMIIREG: ::c_ulong = 0x00008949; -pub const SIOCWANDEV: ::c_ulong = 0x0000894A; -pub const SIOCOUTQNSD: ::c_ulong = 0x0000894B; -pub const SIOCGSKNS: ::c_ulong = 0x0000894C; -pub const SIOCDARP: ::c_ulong = 0x00008953; -pub const SIOCGARP: ::c_ulong = 0x00008954; -pub const SIOCSARP: ::c_ulong = 0x00008955; -pub const SIOCDRARP: ::c_ulong = 0x00008960; -pub const SIOCGRARP: ::c_ulong = 0x00008961; -pub const SIOCSRARP: ::c_ulong = 0x00008962; -pub const SIOCGIFMAP: ::c_ulong = 0x00008970; -pub const SIOCSIFMAP: ::c_ulong = 0x00008971; -pub const SIOCADDDLCI: ::c_ulong = 0x00008980; -pub const SIOCDELDLCI: ::c_ulong = 0x00008981; -pub const SIOCGIFVLAN: ::c_ulong = 0x00008982; -pub const SIOCSIFVLAN: ::c_ulong = 0x00008983; -pub const SIOCBONDENSLAVE: ::c_ulong = 0x00008990; -pub const SIOCBONDRELEASE: ::c_ulong = 0x00008991; -pub const SIOCBONDSETHWADDR: ::c_ulong = 0x00008992; -pub const SIOCBONDSLAVEINFOQUERY: ::c_ulong = 0x00008993; -pub const SIOCBONDINFOQUERY: ::c_ulong = 0x00008994; -pub const SIOCBONDCHANGEACTIVE: ::c_ulong = 0x00008995; -pub const SIOCBRADDBR: ::c_ulong = 0x000089a0; -pub const SIOCBRDELBR: ::c_ulong = 0x000089a1; -pub const SIOCBRADDIF: ::c_ulong = 0x000089a2; -pub const SIOCBRDELIF: ::c_ulong = 0x000089a3; -pub const SIOCSHWTSTAMP: ::c_ulong = 0x000089b0; -pub const SIOCGHWTSTAMP: ::c_ulong = 0x000089b1; -pub const SIOCDEVPRIVATE: ::c_ulong = 0x000089F0; -pub const SIOCPROTOPRIVATE: ::c_ulong = 0x000089E0; +pub const SIOCADDRT: c_ulong = 0x0000890B; +pub const SIOCDELRT: c_ulong = 0x0000890C; +pub const SIOCRTMSG: c_ulong = 0x0000890D; +pub const SIOCGIFNAME: c_ulong = 0x00008910; +pub const SIOCSIFLINK: c_ulong = 0x00008911; +pub const SIOCGIFCONF: c_ulong = 0x00008912; +pub const SIOCGIFFLAGS: c_ulong = 0x00008913; +pub const SIOCSIFFLAGS: c_ulong = 0x00008914; +pub const SIOCGIFADDR: c_ulong = 0x00008915; +pub const SIOCSIFADDR: c_ulong = 0x00008916; +pub const SIOCGIFDSTADDR: c_ulong = 0x00008917; +pub const SIOCSIFDSTADDR: c_ulong = 0x00008918; +pub const SIOCGIFBRDADDR: c_ulong = 0x00008919; +pub const SIOCSIFBRDADDR: c_ulong = 0x0000891A; +pub const SIOCGIFNETMASK: c_ulong = 0x0000891B; +pub const SIOCSIFNETMASK: c_ulong = 0x0000891C; +pub const SIOCGIFMETRIC: c_ulong = 0x0000891D; +pub const SIOCSIFMETRIC: c_ulong = 0x0000891E; +pub const SIOCGIFMEM: c_ulong = 0x0000891F; +pub const SIOCSIFMEM: c_ulong = 0x00008920; +pub const SIOCGIFMTU: c_ulong = 0x00008921; +pub const SIOCSIFMTU: c_ulong = 0x00008922; +pub const SIOCSIFNAME: c_ulong = 0x00008923; +pub const SIOCSIFHWADDR: c_ulong = 0x00008924; +pub const SIOCGIFENCAP: c_ulong = 0x00008925; +pub const SIOCSIFENCAP: c_ulong = 0x00008926; +pub const SIOCGIFHWADDR: c_ulong = 0x00008927; +pub const SIOCGIFSLAVE: c_ulong = 0x00008929; +pub const SIOCSIFSLAVE: c_ulong = 0x00008930; +pub const SIOCADDMULTI: c_ulong = 0x00008931; +pub const SIOCDELMULTI: c_ulong = 0x00008932; +pub const SIOCGIFINDEX: c_ulong = 0x00008933; +pub const SIOGIFINDEX: c_ulong = SIOCGIFINDEX; +pub const SIOCSIFPFLAGS: c_ulong = 0x00008934; +pub const SIOCGIFPFLAGS: c_ulong = 0x00008935; +pub const SIOCDIFADDR: c_ulong = 0x00008936; +pub const SIOCSIFHWBROADCAST: c_ulong = 0x00008937; +pub const SIOCGIFCOUNT: c_ulong = 0x00008938; +pub const SIOCGIFBR: c_ulong = 0x00008940; +pub const SIOCSIFBR: c_ulong = 0x00008941; +pub const SIOCGIFTXQLEN: c_ulong = 0x00008942; +pub const SIOCSIFTXQLEN: c_ulong = 0x00008943; +pub const SIOCETHTOOL: c_ulong = 0x00008946; +pub const SIOCGMIIPHY: c_ulong = 0x00008947; +pub const SIOCGMIIREG: c_ulong = 0x00008948; +pub const SIOCSMIIREG: c_ulong = 0x00008949; +pub const SIOCWANDEV: c_ulong = 0x0000894A; +pub const SIOCOUTQNSD: c_ulong = 0x0000894B; +pub const SIOCGSKNS: c_ulong = 0x0000894C; +pub const SIOCDARP: c_ulong = 0x00008953; +pub const SIOCGARP: c_ulong = 0x00008954; +pub const SIOCSARP: c_ulong = 0x00008955; +pub const SIOCDRARP: c_ulong = 0x00008960; +pub const SIOCGRARP: c_ulong = 0x00008961; +pub const SIOCSRARP: c_ulong = 0x00008962; +pub const SIOCGIFMAP: c_ulong = 0x00008970; +pub const SIOCSIFMAP: c_ulong = 0x00008971; +pub const SIOCADDDLCI: c_ulong = 0x00008980; +pub const SIOCDELDLCI: c_ulong = 0x00008981; +pub const SIOCGIFVLAN: c_ulong = 0x00008982; +pub const SIOCSIFVLAN: c_ulong = 0x00008983; +pub const SIOCBONDENSLAVE: c_ulong = 0x00008990; +pub const SIOCBONDRELEASE: c_ulong = 0x00008991; +pub const SIOCBONDSETHWADDR: c_ulong = 0x00008992; +pub const SIOCBONDSLAVEINFOQUERY: c_ulong = 0x00008993; +pub const SIOCBONDINFOQUERY: c_ulong = 0x00008994; +pub const SIOCBONDCHANGEACTIVE: c_ulong = 0x00008995; +pub const SIOCBRADDBR: c_ulong = 0x000089a0; +pub const SIOCBRDELBR: c_ulong = 0x000089a1; +pub const SIOCBRADDIF: c_ulong = 0x000089a2; +pub const SIOCBRDELIF: c_ulong = 0x000089a3; +pub const SIOCSHWTSTAMP: c_ulong = 0x000089b0; +pub const SIOCGHWTSTAMP: c_ulong = 0x000089b1; +pub const SIOCDEVPRIVATE: c_ulong = 0x000089F0; +pub const SIOCPROTOPRIVATE: c_ulong = 0x000089E0; // linux/module.h -pub const MODULE_INIT_IGNORE_MODVERSIONS: ::c_uint = 0x0001; -pub const MODULE_INIT_IGNORE_VERMAGIC: ::c_uint = 0x0002; +pub const MODULE_INIT_IGNORE_MODVERSIONS: c_uint = 0x0001; +pub const MODULE_INIT_IGNORE_VERMAGIC: c_uint = 0x0002; // linux/net_tstamp.h -pub const SOF_TIMESTAMPING_TX_HARDWARE: ::c_uint = 1 << 0; -pub const SOF_TIMESTAMPING_TX_SOFTWARE: ::c_uint = 1 << 1; -pub const SOF_TIMESTAMPING_RX_HARDWARE: ::c_uint = 1 << 2; -pub const SOF_TIMESTAMPING_RX_SOFTWARE: ::c_uint = 1 << 3; -pub const SOF_TIMESTAMPING_SOFTWARE: ::c_uint = 1 << 4; -pub const SOF_TIMESTAMPING_SYS_HARDWARE: ::c_uint = 1 << 5; -pub const SOF_TIMESTAMPING_RAW_HARDWARE: ::c_uint = 1 << 6; -pub const SOF_TIMESTAMPING_OPT_ID: ::c_uint = 1 << 7; -pub const SOF_TIMESTAMPING_TX_SCHED: ::c_uint = 1 << 8; -pub const SOF_TIMESTAMPING_TX_ACK: ::c_uint = 1 << 9; -pub const SOF_TIMESTAMPING_OPT_CMSG: ::c_uint = 1 << 10; -pub const SOF_TIMESTAMPING_OPT_TSONLY: ::c_uint = 1 << 11; -pub const SOF_TIMESTAMPING_OPT_STATS: ::c_uint = 1 << 12; -pub const SOF_TIMESTAMPING_OPT_PKTINFO: ::c_uint = 1 << 13; -pub const SOF_TIMESTAMPING_OPT_TX_SWHW: ::c_uint = 1 << 14; +pub const SOF_TIMESTAMPING_TX_HARDWARE: c_uint = 1 << 0; +pub const SOF_TIMESTAMPING_TX_SOFTWARE: c_uint = 1 << 1; +pub const SOF_TIMESTAMPING_RX_HARDWARE: c_uint = 1 << 2; +pub const SOF_TIMESTAMPING_RX_SOFTWARE: c_uint = 1 << 3; +pub const SOF_TIMESTAMPING_SOFTWARE: c_uint = 1 << 4; +pub const SOF_TIMESTAMPING_SYS_HARDWARE: c_uint = 1 << 5; +pub const SOF_TIMESTAMPING_RAW_HARDWARE: c_uint = 1 << 6; +pub const SOF_TIMESTAMPING_OPT_ID: c_uint = 1 << 7; +pub const SOF_TIMESTAMPING_TX_SCHED: c_uint = 1 << 8; +pub const SOF_TIMESTAMPING_TX_ACK: c_uint = 1 << 9; +pub const SOF_TIMESTAMPING_OPT_CMSG: c_uint = 1 << 10; +pub const SOF_TIMESTAMPING_OPT_TSONLY: c_uint = 1 << 11; +pub const SOF_TIMESTAMPING_OPT_STATS: c_uint = 1 << 12; +pub const SOF_TIMESTAMPING_OPT_PKTINFO: c_uint = 1 << 13; +pub const SOF_TIMESTAMPING_OPT_TX_SWHW: c_uint = 1 << 14; #[deprecated( since = "0.2.55", note = "ENOATTR is not available on Android; use ENODATA instead" )] -pub const ENOATTR: ::c_int = ::ENODATA; +pub const ENOATTR: c_int = crate::ENODATA; // linux/if_alg.h -pub const ALG_SET_KEY: ::c_int = 1; -pub const ALG_SET_IV: ::c_int = 2; -pub const ALG_SET_OP: ::c_int = 3; -pub const ALG_SET_AEAD_ASSOCLEN: ::c_int = 4; -pub const ALG_SET_AEAD_AUTHSIZE: ::c_int = 5; -pub const ALG_SET_DRBG_ENTROPY: ::c_int = 6; +pub const ALG_SET_KEY: c_int = 1; +pub const ALG_SET_IV: c_int = 2; +pub const ALG_SET_OP: c_int = 3; +pub const ALG_SET_AEAD_ASSOCLEN: c_int = 4; +pub const ALG_SET_AEAD_AUTHSIZE: c_int = 5; +pub const ALG_SET_DRBG_ENTROPY: c_int = 6; -pub const ALG_OP_DECRYPT: ::c_int = 0; -pub const ALG_OP_ENCRYPT: ::c_int = 1; +pub const ALG_OP_DECRYPT: c_int = 0; +pub const ALG_OP_ENCRYPT: c_int = 1; // sys/mman.h -pub const MLOCK_ONFAULT: ::c_int = 0x01; +pub const MLOCK_ONFAULT: c_int = 0x01; // uapi/linux/vm_sockets.h -pub const VMADDR_CID_ANY: ::c_uint = 0xFFFFFFFF; -pub const VMADDR_CID_HYPERVISOR: ::c_uint = 0; -pub const VMADDR_CID_LOCAL: ::c_uint = 1; -pub const VMADDR_CID_HOST: ::c_uint = 2; -pub const VMADDR_PORT_ANY: ::c_uint = 0xFFFFFFFF; +pub const VMADDR_CID_ANY: c_uint = 0xFFFFFFFF; +pub const VMADDR_CID_HYPERVISOR: c_uint = 0; +pub const VMADDR_CID_LOCAL: c_uint = 1; +pub const VMADDR_CID_HOST: c_uint = 2; +pub const VMADDR_PORT_ANY: c_uint = 0xFFFFFFFF; // uapi/linux/inotify.h pub const IN_ACCESS: u32 = 0x0000_0001; @@ -3035,27 +3039,27 @@ pub const IN_ALL_EVENTS: u32 = IN_ACCESS | IN_DELETE_SELF | IN_MOVE_SELF; -pub const IN_CLOEXEC: ::c_int = O_CLOEXEC; -pub const IN_NONBLOCK: ::c_int = O_NONBLOCK; - -pub const FUTEX_WAIT: ::c_int = 0; -pub const FUTEX_WAKE: ::c_int = 1; -pub const FUTEX_FD: ::c_int = 2; -pub const FUTEX_REQUEUE: ::c_int = 3; -pub const FUTEX_CMP_REQUEUE: ::c_int = 4; -pub const FUTEX_WAKE_OP: ::c_int = 5; -pub const FUTEX_LOCK_PI: ::c_int = 6; -pub const FUTEX_UNLOCK_PI: ::c_int = 7; -pub const FUTEX_TRYLOCK_PI: ::c_int = 8; -pub const FUTEX_WAIT_BITSET: ::c_int = 9; -pub const FUTEX_WAKE_BITSET: ::c_int = 10; -pub const FUTEX_WAIT_REQUEUE_PI: ::c_int = 11; -pub const FUTEX_CMP_REQUEUE_PI: ::c_int = 12; -pub const FUTEX_LOCK_PI2: ::c_int = 13; - -pub const FUTEX_PRIVATE_FLAG: ::c_int = 128; -pub const FUTEX_CLOCK_REALTIME: ::c_int = 256; -pub const FUTEX_CMD_MASK: ::c_int = !(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME); +pub const IN_CLOEXEC: c_int = O_CLOEXEC; +pub const IN_NONBLOCK: c_int = O_NONBLOCK; + +pub const FUTEX_WAIT: c_int = 0; +pub const FUTEX_WAKE: c_int = 1; +pub const FUTEX_FD: c_int = 2; +pub const FUTEX_REQUEUE: c_int = 3; +pub const FUTEX_CMP_REQUEUE: c_int = 4; +pub const FUTEX_WAKE_OP: c_int = 5; +pub const FUTEX_LOCK_PI: c_int = 6; +pub const FUTEX_UNLOCK_PI: c_int = 7; +pub const FUTEX_TRYLOCK_PI: c_int = 8; +pub const FUTEX_WAIT_BITSET: c_int = 9; +pub const FUTEX_WAKE_BITSET: c_int = 10; +pub const FUTEX_WAIT_REQUEUE_PI: c_int = 11; +pub const FUTEX_CMP_REQUEUE_PI: c_int = 12; +pub const FUTEX_LOCK_PI2: c_int = 13; + +pub const FUTEX_PRIVATE_FLAG: c_int = 128; +pub const FUTEX_CLOCK_REALTIME: c_int = 256; +pub const FUTEX_CMD_MASK: c_int = !(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME); // linux/errqueue.h pub const SO_EE_ORIGIN_NONE: u8 = 0; @@ -3066,125 +3070,125 @@ pub const SO_EE_ORIGIN_TXSTATUS: u8 = 4; pub const SO_EE_ORIGIN_TIMESTAMPING: u8 = SO_EE_ORIGIN_TXSTATUS; // errno.h -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const EWOULDBLOCK: ::c_int = EAGAIN; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; +pub const EPERM: c_int = 1; +pub const ENOENT: c_int = 2; +pub const ESRCH: c_int = 3; +pub const EINTR: c_int = 4; +pub const EIO: c_int = 5; +pub const ENXIO: c_int = 6; +pub const E2BIG: c_int = 7; +pub const ENOEXEC: c_int = 8; +pub const EBADF: c_int = 9; +pub const ECHILD: c_int = 10; +pub const EAGAIN: c_int = 11; +pub const ENOMEM: c_int = 12; +pub const EACCES: c_int = 13; +pub const EFAULT: c_int = 14; +pub const ENOTBLK: c_int = 15; +pub const EBUSY: c_int = 16; +pub const EEXIST: c_int = 17; +pub const EXDEV: c_int = 18; +pub const ENODEV: c_int = 19; +pub const ENOTDIR: c_int = 20; +pub const EISDIR: c_int = 21; +pub const EINVAL: c_int = 22; +pub const ENFILE: c_int = 23; +pub const EMFILE: c_int = 24; +pub const ENOTTY: c_int = 25; +pub const ETXTBSY: c_int = 26; +pub const EFBIG: c_int = 27; +pub const ENOSPC: c_int = 28; +pub const ESPIPE: c_int = 29; +pub const EROFS: c_int = 30; +pub const EMLINK: c_int = 31; +pub const EPIPE: c_int = 32; +pub const EDOM: c_int = 33; +pub const ERANGE: c_int = 34; +pub const EWOULDBLOCK: c_int = EAGAIN; + +pub const PRIO_PROCESS: c_int = 0; +pub const PRIO_PGRP: c_int = 1; +pub const PRIO_USER: c_int = 2; // linux/sched.h -pub const SCHED_NORMAL: ::c_int = 0; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; -pub const SCHED_BATCH: ::c_int = 3; -pub const SCHED_IDLE: ::c_int = 5; -pub const SCHED_DEADLINE: ::c_int = 6; +pub const SCHED_NORMAL: c_int = 0; +pub const SCHED_FIFO: c_int = 1; +pub const SCHED_RR: c_int = 2; +pub const SCHED_BATCH: c_int = 3; +pub const SCHED_IDLE: c_int = 5; +pub const SCHED_DEADLINE: c_int = 6; -pub const SCHED_RESET_ON_FORK: ::c_int = 0x40000000; +pub const SCHED_RESET_ON_FORK: c_int = 0x40000000; -pub const CLONE_PIDFD: ::c_int = 0x1000; +pub const CLONE_PIDFD: c_int = 0x1000; // linux/membarrier.h -pub const MEMBARRIER_CMD_QUERY: ::c_int = 0; -pub const MEMBARRIER_CMD_GLOBAL: ::c_int = 1 << 0; -pub const MEMBARRIER_CMD_GLOBAL_EXPEDITED: ::c_int = 1 << 1; -pub const MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED: ::c_int = 1 << 2; -pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED: ::c_int = 1 << 3; -pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED: ::c_int = 1 << 4; -pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 5; -pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 6; -pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 7; -pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 8; +pub const MEMBARRIER_CMD_QUERY: c_int = 0; +pub const MEMBARRIER_CMD_GLOBAL: c_int = 1 << 0; +pub const MEMBARRIER_CMD_GLOBAL_EXPEDITED: c_int = 1 << 1; +pub const MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED: c_int = 1 << 2; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED: c_int = 1 << 3; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED: c_int = 1 << 4; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE: c_int = 1 << 5; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE: c_int = 1 << 6; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: c_int = 1 << 7; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: c_int = 1 << 8; // linux/mempolicy.h -pub const MPOL_DEFAULT: ::c_int = 0; -pub const MPOL_PREFERRED: ::c_int = 1; -pub const MPOL_BIND: ::c_int = 2; -pub const MPOL_INTERLEAVE: ::c_int = 3; -pub const MPOL_LOCAL: ::c_int = 4; -pub const MPOL_F_NUMA_BALANCING: ::c_int = 1 << 13; -pub const MPOL_F_RELATIVE_NODES: ::c_int = 1 << 14; -pub const MPOL_F_STATIC_NODES: ::c_int = 1 << 15; +pub const MPOL_DEFAULT: c_int = 0; +pub const MPOL_PREFERRED: c_int = 1; +pub const MPOL_BIND: c_int = 2; +pub const MPOL_INTERLEAVE: c_int = 3; +pub const MPOL_LOCAL: c_int = 4; +pub const MPOL_F_NUMA_BALANCING: c_int = 1 << 13; +pub const MPOL_F_RELATIVE_NODES: c_int = 1 << 14; +pub const MPOL_F_STATIC_NODES: c_int = 1 << 15; // bits/seek_constants.h -pub const SEEK_DATA: ::c_int = 3; -pub const SEEK_HOLE: ::c_int = 4; +pub const SEEK_DATA: c_int = 3; +pub const SEEK_HOLE: c_int = 4; // sys/socket.h -pub const AF_NFC: ::c_int = 39; -pub const AF_VSOCK: ::c_int = 40; -pub const PF_NFC: ::c_int = AF_NFC; -pub const PF_VSOCK: ::c_int = AF_VSOCK; +pub const AF_NFC: c_int = 39; +pub const AF_VSOCK: c_int = 40; +pub const PF_NFC: c_int = AF_NFC; +pub const PF_VSOCK: c_int = AF_VSOCK; -pub const SOMAXCONN: ::c_int = 128; +pub const SOMAXCONN: c_int = 128; // sys/prctl.h -pub const PR_SET_PDEATHSIG: ::c_int = 1; -pub const PR_GET_PDEATHSIG: ::c_int = 2; -pub const PR_GET_SECUREBITS: ::c_int = 27; -pub const PR_SET_SECUREBITS: ::c_int = 28; +pub const PR_SET_PDEATHSIG: c_int = 1; +pub const PR_GET_PDEATHSIG: c_int = 2; +pub const PR_GET_SECUREBITS: c_int = 27; +pub const PR_SET_SECUREBITS: c_int = 28; // sys/system_properties.h -pub const PROP_VALUE_MAX: ::c_int = 92; -pub const PROP_NAME_MAX: ::c_int = 32; +pub const PROP_VALUE_MAX: c_int = 92; +pub const PROP_NAME_MAX: c_int = 32; // sys/prctl.h -pub const PR_SET_VMA: ::c_int = 0x53564d41; -pub const PR_SET_VMA_ANON_NAME: ::c_int = 0; -pub const PR_SET_NO_NEW_PRIVS: ::c_int = 38; -pub const PR_GET_NO_NEW_PRIVS: ::c_int = 39; -pub const PR_GET_SECCOMP: ::c_int = 21; -pub const PR_SET_SECCOMP: ::c_int = 22; -pub const PR_GET_TIMING: ::c_int = 13; -pub const PR_SET_TIMING: ::c_int = 14; -pub const PR_TIMING_STATISTICAL: ::c_int = 0; -pub const PR_TIMING_TIMESTAMP: ::c_int = 1; -pub const PR_SET_NAME: ::c_int = 15; -pub const PR_GET_NAME: ::c_int = 16; +pub const PR_SET_VMA: c_int = 0x53564d41; +pub const PR_SET_VMA_ANON_NAME: c_int = 0; +pub const PR_SET_NO_NEW_PRIVS: c_int = 38; +pub const PR_GET_NO_NEW_PRIVS: c_int = 39; +pub const PR_GET_SECCOMP: c_int = 21; +pub const PR_SET_SECCOMP: c_int = 22; +pub const PR_GET_TIMING: c_int = 13; +pub const PR_SET_TIMING: c_int = 14; +pub const PR_TIMING_STATISTICAL: c_int = 0; +pub const PR_TIMING_TIMESTAMP: c_int = 1; +pub const PR_SET_NAME: c_int = 15; +pub const PR_GET_NAME: c_int = 16; // linux/if_addr.h -pub const IFA_UNSPEC: ::c_ushort = 0; -pub const IFA_ADDRESS: ::c_ushort = 1; -pub const IFA_LOCAL: ::c_ushort = 2; -pub const IFA_LABEL: ::c_ushort = 3; -pub const IFA_BROADCAST: ::c_ushort = 4; -pub const IFA_ANYCAST: ::c_ushort = 5; -pub const IFA_CACHEINFO: ::c_ushort = 6; -pub const IFA_MULTICAST: ::c_ushort = 7; +pub const IFA_UNSPEC: c_ushort = 0; +pub const IFA_ADDRESS: c_ushort = 1; +pub const IFA_LOCAL: c_ushort = 2; +pub const IFA_LABEL: c_ushort = 3; +pub const IFA_BROADCAST: c_ushort = 4; +pub const IFA_ANYCAST: c_ushort = 5; +pub const IFA_CACHEINFO: c_ushort = 6; +pub const IFA_MULTICAST: c_ushort = 7; pub const IFA_F_SECONDARY: u32 = 0x01; pub const IFA_F_TEMPORARY: u32 = 0x01; @@ -3197,90 +3201,90 @@ pub const IFA_F_TENTATIVE: u32 = 0x40; pub const IFA_F_PERMANENT: u32 = 0x80; // linux/if_link.h -pub const IFLA_UNSPEC: ::c_ushort = 0; -pub const IFLA_ADDRESS: ::c_ushort = 1; -pub const IFLA_BROADCAST: ::c_ushort = 2; -pub const IFLA_IFNAME: ::c_ushort = 3; -pub const IFLA_MTU: ::c_ushort = 4; -pub const IFLA_LINK: ::c_ushort = 5; -pub const IFLA_QDISC: ::c_ushort = 6; -pub const IFLA_STATS: ::c_ushort = 7; -pub const IFLA_COST: ::c_ushort = 8; -pub const IFLA_PRIORITY: ::c_ushort = 9; -pub const IFLA_MASTER: ::c_ushort = 10; -pub const IFLA_WIRELESS: ::c_ushort = 11; -pub const IFLA_PROTINFO: ::c_ushort = 12; -pub const IFLA_TXQLEN: ::c_ushort = 13; -pub const IFLA_MAP: ::c_ushort = 14; -pub const IFLA_WEIGHT: ::c_ushort = 15; -pub const IFLA_OPERSTATE: ::c_ushort = 16; -pub const IFLA_LINKMODE: ::c_ushort = 17; -pub const IFLA_LINKINFO: ::c_ushort = 18; -pub const IFLA_NET_NS_PID: ::c_ushort = 19; -pub const IFLA_IFALIAS: ::c_ushort = 20; -pub const IFLA_NUM_VF: ::c_ushort = 21; -pub const IFLA_VFINFO_LIST: ::c_ushort = 22; -pub const IFLA_STATS64: ::c_ushort = 23; -pub const IFLA_VF_PORTS: ::c_ushort = 24; -pub const IFLA_PORT_SELF: ::c_ushort = 25; -pub const IFLA_AF_SPEC: ::c_ushort = 26; -pub const IFLA_GROUP: ::c_ushort = 27; -pub const IFLA_NET_NS_FD: ::c_ushort = 28; -pub const IFLA_EXT_MASK: ::c_ushort = 29; -pub const IFLA_PROMISCUITY: ::c_ushort = 30; -pub const IFLA_NUM_TX_QUEUES: ::c_ushort = 31; -pub const IFLA_NUM_RX_QUEUES: ::c_ushort = 32; -pub const IFLA_CARRIER: ::c_ushort = 33; -pub const IFLA_PHYS_PORT_ID: ::c_ushort = 34; -pub const IFLA_CARRIER_CHANGES: ::c_ushort = 35; -pub const IFLA_PHYS_SWITCH_ID: ::c_ushort = 36; -pub const IFLA_LINK_NETNSID: ::c_ushort = 37; -pub const IFLA_PHYS_PORT_NAME: ::c_ushort = 38; -pub const IFLA_PROTO_DOWN: ::c_ushort = 39; -pub const IFLA_GSO_MAX_SEGS: ::c_ushort = 40; -pub const IFLA_GSO_MAX_SIZE: ::c_ushort = 41; -pub const IFLA_PAD: ::c_ushort = 42; -pub const IFLA_XDP: ::c_ushort = 43; -pub const IFLA_EVENT: ::c_ushort = 44; -pub const IFLA_NEW_NETNSID: ::c_ushort = 45; -pub const IFLA_IF_NETNSID: ::c_ushort = 46; -pub const IFLA_TARGET_NETNSID: ::c_ushort = IFLA_IF_NETNSID; -pub const IFLA_CARRIER_UP_COUNT: ::c_ushort = 47; -pub const IFLA_CARRIER_DOWN_COUNT: ::c_ushort = 48; -pub const IFLA_NEW_IFINDEX: ::c_ushort = 49; -pub const IFLA_MIN_MTU: ::c_ushort = 50; -pub const IFLA_MAX_MTU: ::c_ushort = 51; -pub const IFLA_PROP_LIST: ::c_ushort = 52; -pub const IFLA_ALT_IFNAME: ::c_ushort = 53; -pub const IFLA_PERM_ADDRESS: ::c_ushort = 54; -pub const IFLA_PROTO_DOWN_REASON: ::c_ushort = 55; -pub const IFLA_PARENT_DEV_NAME: ::c_ushort = 56; -pub const IFLA_PARENT_DEV_BUS_NAME: ::c_ushort = 57; -pub const IFLA_GRO_MAX_SIZE: ::c_ushort = 58; -pub const IFLA_TSO_MAX_SIZE: ::c_ushort = 59; -pub const IFLA_TSO_MAX_SEGS: ::c_ushort = 60; -pub const IFLA_ALLMULTI: ::c_ushort = 61; -pub const IFLA_DEVLINK_PORT: ::c_ushort = 62; -pub const IFLA_GSO_IPV4_MAX_SIZE: ::c_ushort = 63; -pub const IFLA_GRO_IPV4_MAX_SIZE: ::c_ushort = 64; - -pub const IFLA_INFO_UNSPEC: ::c_ushort = 0; -pub const IFLA_INFO_KIND: ::c_ushort = 1; -pub const IFLA_INFO_DATA: ::c_ushort = 2; -pub const IFLA_INFO_XSTATS: ::c_ushort = 3; -pub const IFLA_INFO_SLAVE_KIND: ::c_ushort = 4; -pub const IFLA_INFO_SLAVE_DATA: ::c_ushort = 5; +pub const IFLA_UNSPEC: c_ushort = 0; +pub const IFLA_ADDRESS: c_ushort = 1; +pub const IFLA_BROADCAST: c_ushort = 2; +pub const IFLA_IFNAME: c_ushort = 3; +pub const IFLA_MTU: c_ushort = 4; +pub const IFLA_LINK: c_ushort = 5; +pub const IFLA_QDISC: c_ushort = 6; +pub const IFLA_STATS: c_ushort = 7; +pub const IFLA_COST: c_ushort = 8; +pub const IFLA_PRIORITY: c_ushort = 9; +pub const IFLA_MASTER: c_ushort = 10; +pub const IFLA_WIRELESS: c_ushort = 11; +pub const IFLA_PROTINFO: c_ushort = 12; +pub const IFLA_TXQLEN: c_ushort = 13; +pub const IFLA_MAP: c_ushort = 14; +pub const IFLA_WEIGHT: c_ushort = 15; +pub const IFLA_OPERSTATE: c_ushort = 16; +pub const IFLA_LINKMODE: c_ushort = 17; +pub const IFLA_LINKINFO: c_ushort = 18; +pub const IFLA_NET_NS_PID: c_ushort = 19; +pub const IFLA_IFALIAS: c_ushort = 20; +pub const IFLA_NUM_VF: c_ushort = 21; +pub const IFLA_VFINFO_LIST: c_ushort = 22; +pub const IFLA_STATS64: c_ushort = 23; +pub const IFLA_VF_PORTS: c_ushort = 24; +pub const IFLA_PORT_SELF: c_ushort = 25; +pub const IFLA_AF_SPEC: c_ushort = 26; +pub const IFLA_GROUP: c_ushort = 27; +pub const IFLA_NET_NS_FD: c_ushort = 28; +pub const IFLA_EXT_MASK: c_ushort = 29; +pub const IFLA_PROMISCUITY: c_ushort = 30; +pub const IFLA_NUM_TX_QUEUES: c_ushort = 31; +pub const IFLA_NUM_RX_QUEUES: c_ushort = 32; +pub const IFLA_CARRIER: c_ushort = 33; +pub const IFLA_PHYS_PORT_ID: c_ushort = 34; +pub const IFLA_CARRIER_CHANGES: c_ushort = 35; +pub const IFLA_PHYS_SWITCH_ID: c_ushort = 36; +pub const IFLA_LINK_NETNSID: c_ushort = 37; +pub const IFLA_PHYS_PORT_NAME: c_ushort = 38; +pub const IFLA_PROTO_DOWN: c_ushort = 39; +pub const IFLA_GSO_MAX_SEGS: c_ushort = 40; +pub const IFLA_GSO_MAX_SIZE: c_ushort = 41; +pub const IFLA_PAD: c_ushort = 42; +pub const IFLA_XDP: c_ushort = 43; +pub const IFLA_EVENT: c_ushort = 44; +pub const IFLA_NEW_NETNSID: c_ushort = 45; +pub const IFLA_IF_NETNSID: c_ushort = 46; +pub const IFLA_TARGET_NETNSID: c_ushort = IFLA_IF_NETNSID; +pub const IFLA_CARRIER_UP_COUNT: c_ushort = 47; +pub const IFLA_CARRIER_DOWN_COUNT: c_ushort = 48; +pub const IFLA_NEW_IFINDEX: c_ushort = 49; +pub const IFLA_MIN_MTU: c_ushort = 50; +pub const IFLA_MAX_MTU: c_ushort = 51; +pub const IFLA_PROP_LIST: c_ushort = 52; +pub const IFLA_ALT_IFNAME: c_ushort = 53; +pub const IFLA_PERM_ADDRESS: c_ushort = 54; +pub const IFLA_PROTO_DOWN_REASON: c_ushort = 55; +pub const IFLA_PARENT_DEV_NAME: c_ushort = 56; +pub const IFLA_PARENT_DEV_BUS_NAME: c_ushort = 57; +pub const IFLA_GRO_MAX_SIZE: c_ushort = 58; +pub const IFLA_TSO_MAX_SIZE: c_ushort = 59; +pub const IFLA_TSO_MAX_SEGS: c_ushort = 60; +pub const IFLA_ALLMULTI: c_ushort = 61; +pub const IFLA_DEVLINK_PORT: c_ushort = 62; +pub const IFLA_GSO_IPV4_MAX_SIZE: c_ushort = 63; +pub const IFLA_GRO_IPV4_MAX_SIZE: c_ushort = 64; + +pub const IFLA_INFO_UNSPEC: c_ushort = 0; +pub const IFLA_INFO_KIND: c_ushort = 1; +pub const IFLA_INFO_DATA: c_ushort = 2; +pub const IFLA_INFO_XSTATS: c_ushort = 3; +pub const IFLA_INFO_SLAVE_KIND: c_ushort = 4; +pub const IFLA_INFO_SLAVE_DATA: c_ushort = 5; // linux/rtnetlink.h -pub const TCA_UNSPEC: ::c_ushort = 0; -pub const TCA_KIND: ::c_ushort = 1; -pub const TCA_OPTIONS: ::c_ushort = 2; -pub const TCA_STATS: ::c_ushort = 3; -pub const TCA_XSTATS: ::c_ushort = 4; -pub const TCA_RATE: ::c_ushort = 5; -pub const TCA_FCNT: ::c_ushort = 6; -pub const TCA_STATS2: ::c_ushort = 7; -pub const TCA_STAB: ::c_ushort = 8; +pub const TCA_UNSPEC: c_ushort = 0; +pub const TCA_KIND: c_ushort = 1; +pub const TCA_OPTIONS: c_ushort = 2; +pub const TCA_STATS: c_ushort = 3; +pub const TCA_XSTATS: c_ushort = 4; +pub const TCA_RATE: c_ushort = 5; +pub const TCA_FCNT: c_ushort = 6; +pub const TCA_STATS2: c_ushort = 7; +pub const TCA_STAB: c_ushort = 8; pub const RTM_NEWLINK: u16 = 16; pub const RTM_DELLINK: u16 = 17; @@ -3331,276 +3335,276 @@ pub const RTM_NEWNSID: u16 = 88; pub const RTM_DELNSID: u16 = 89; pub const RTM_GETNSID: u16 = 90; -pub const RTM_F_NOTIFY: ::c_uint = 0x100; -pub const RTM_F_CLONED: ::c_uint = 0x200; -pub const RTM_F_EQUALIZE: ::c_uint = 0x400; -pub const RTM_F_PREFIX: ::c_uint = 0x800; - -pub const RTA_UNSPEC: ::c_ushort = 0; -pub const RTA_DST: ::c_ushort = 1; -pub const RTA_SRC: ::c_ushort = 2; -pub const RTA_IIF: ::c_ushort = 3; -pub const RTA_OIF: ::c_ushort = 4; -pub const RTA_GATEWAY: ::c_ushort = 5; -pub const RTA_PRIORITY: ::c_ushort = 6; -pub const RTA_PREFSRC: ::c_ushort = 7; -pub const RTA_METRICS: ::c_ushort = 8; -pub const RTA_MULTIPATH: ::c_ushort = 9; -pub const RTA_PROTOINFO: ::c_ushort = 10; // No longer used -pub const RTA_FLOW: ::c_ushort = 11; -pub const RTA_CACHEINFO: ::c_ushort = 12; -pub const RTA_SESSION: ::c_ushort = 13; // No longer used -pub const RTA_MP_ALGO: ::c_ushort = 14; // No longer used -pub const RTA_TABLE: ::c_ushort = 15; -pub const RTA_MARK: ::c_ushort = 16; -pub const RTA_MFC_STATS: ::c_ushort = 17; - -pub const RTN_UNSPEC: ::c_uchar = 0; -pub const RTN_UNICAST: ::c_uchar = 1; -pub const RTN_LOCAL: ::c_uchar = 2; -pub const RTN_BROADCAST: ::c_uchar = 3; -pub const RTN_ANYCAST: ::c_uchar = 4; -pub const RTN_MULTICAST: ::c_uchar = 5; -pub const RTN_BLACKHOLE: ::c_uchar = 6; -pub const RTN_UNREACHABLE: ::c_uchar = 7; -pub const RTN_PROHIBIT: ::c_uchar = 8; -pub const RTN_THROW: ::c_uchar = 9; -pub const RTN_NAT: ::c_uchar = 10; -pub const RTN_XRESOLVE: ::c_uchar = 11; - -pub const RTPROT_UNSPEC: ::c_uchar = 0; -pub const RTPROT_REDIRECT: ::c_uchar = 1; -pub const RTPROT_KERNEL: ::c_uchar = 2; -pub const RTPROT_BOOT: ::c_uchar = 3; -pub const RTPROT_STATIC: ::c_uchar = 4; - -pub const RT_SCOPE_UNIVERSE: ::c_uchar = 0; -pub const RT_SCOPE_SITE: ::c_uchar = 200; -pub const RT_SCOPE_LINK: ::c_uchar = 253; -pub const RT_SCOPE_HOST: ::c_uchar = 254; -pub const RT_SCOPE_NOWHERE: ::c_uchar = 255; - -pub const RT_TABLE_UNSPEC: ::c_uchar = 0; -pub const RT_TABLE_COMPAT: ::c_uchar = 252; -pub const RT_TABLE_DEFAULT: ::c_uchar = 253; -pub const RT_TABLE_MAIN: ::c_uchar = 254; -pub const RT_TABLE_LOCAL: ::c_uchar = 255; +pub const RTM_F_NOTIFY: c_uint = 0x100; +pub const RTM_F_CLONED: c_uint = 0x200; +pub const RTM_F_EQUALIZE: c_uint = 0x400; +pub const RTM_F_PREFIX: c_uint = 0x800; + +pub const RTA_UNSPEC: c_ushort = 0; +pub const RTA_DST: c_ushort = 1; +pub const RTA_SRC: c_ushort = 2; +pub const RTA_IIF: c_ushort = 3; +pub const RTA_OIF: c_ushort = 4; +pub const RTA_GATEWAY: c_ushort = 5; +pub const RTA_PRIORITY: c_ushort = 6; +pub const RTA_PREFSRC: c_ushort = 7; +pub const RTA_METRICS: c_ushort = 8; +pub const RTA_MULTIPATH: c_ushort = 9; +pub const RTA_PROTOINFO: c_ushort = 10; // No longer used +pub const RTA_FLOW: c_ushort = 11; +pub const RTA_CACHEINFO: c_ushort = 12; +pub const RTA_SESSION: c_ushort = 13; // No longer used +pub const RTA_MP_ALGO: c_ushort = 14; // No longer used +pub const RTA_TABLE: c_ushort = 15; +pub const RTA_MARK: c_ushort = 16; +pub const RTA_MFC_STATS: c_ushort = 17; + +pub const RTN_UNSPEC: c_uchar = 0; +pub const RTN_UNICAST: c_uchar = 1; +pub const RTN_LOCAL: c_uchar = 2; +pub const RTN_BROADCAST: c_uchar = 3; +pub const RTN_ANYCAST: c_uchar = 4; +pub const RTN_MULTICAST: c_uchar = 5; +pub const RTN_BLACKHOLE: c_uchar = 6; +pub const RTN_UNREACHABLE: c_uchar = 7; +pub const RTN_PROHIBIT: c_uchar = 8; +pub const RTN_THROW: c_uchar = 9; +pub const RTN_NAT: c_uchar = 10; +pub const RTN_XRESOLVE: c_uchar = 11; + +pub const RTPROT_UNSPEC: c_uchar = 0; +pub const RTPROT_REDIRECT: c_uchar = 1; +pub const RTPROT_KERNEL: c_uchar = 2; +pub const RTPROT_BOOT: c_uchar = 3; +pub const RTPROT_STATIC: c_uchar = 4; + +pub const RT_SCOPE_UNIVERSE: c_uchar = 0; +pub const RT_SCOPE_SITE: c_uchar = 200; +pub const RT_SCOPE_LINK: c_uchar = 253; +pub const RT_SCOPE_HOST: c_uchar = 254; +pub const RT_SCOPE_NOWHERE: c_uchar = 255; + +pub const RT_TABLE_UNSPEC: c_uchar = 0; +pub const RT_TABLE_COMPAT: c_uchar = 252; +pub const RT_TABLE_DEFAULT: c_uchar = 253; +pub const RT_TABLE_MAIN: c_uchar = 254; +pub const RT_TABLE_LOCAL: c_uchar = 255; pub const RTMSG_NEWDEVICE: u32 = 0x11; pub const RTMSG_DELDEVICE: u32 = 0x12; pub const RTMSG_NEWROUTE: u32 = 0x21; pub const RTMSG_DELROUTE: u32 = 0x22; -pub const CTL_KERN: ::c_int = 1; -pub const CTL_VM: ::c_int = 2; -pub const CTL_NET: ::c_int = 3; -pub const CTL_FS: ::c_int = 5; -pub const CTL_DEBUG: ::c_int = 6; -pub const CTL_DEV: ::c_int = 7; -pub const CTL_BUS: ::c_int = 8; -pub const CTL_ABI: ::c_int = 9; -pub const CTL_CPU: ::c_int = 10; - -pub const CTL_BUS_ISA: ::c_int = 1; - -pub const INOTIFY_MAX_USER_INSTANCES: ::c_int = 1; -pub const INOTIFY_MAX_USER_WATCHES: ::c_int = 2; -pub const INOTIFY_MAX_QUEUED_EVENTS: ::c_int = 3; - -pub const KERN_OSTYPE: ::c_int = 1; -pub const KERN_OSRELEASE: ::c_int = 2; -pub const KERN_OSREV: ::c_int = 3; -pub const KERN_VERSION: ::c_int = 4; -pub const KERN_SECUREMASK: ::c_int = 5; -pub const KERN_PROF: ::c_int = 6; -pub const KERN_NODENAME: ::c_int = 7; -pub const KERN_DOMAINNAME: ::c_int = 8; -pub const KERN_PANIC: ::c_int = 15; -pub const KERN_REALROOTDEV: ::c_int = 16; -pub const KERN_SPARC_REBOOT: ::c_int = 21; -pub const KERN_CTLALTDEL: ::c_int = 22; -pub const KERN_PRINTK: ::c_int = 23; -pub const KERN_NAMETRANS: ::c_int = 24; -pub const KERN_PPC_HTABRECLAIM: ::c_int = 25; -pub const KERN_PPC_ZEROPAGED: ::c_int = 26; -pub const KERN_PPC_POWERSAVE_NAP: ::c_int = 27; -pub const KERN_MODPROBE: ::c_int = 28; -pub const KERN_SG_BIG_BUFF: ::c_int = 29; -pub const KERN_ACCT: ::c_int = 30; -pub const KERN_PPC_L2CR: ::c_int = 31; -pub const KERN_RTSIGNR: ::c_int = 32; -pub const KERN_RTSIGMAX: ::c_int = 33; -pub const KERN_SHMMAX: ::c_int = 34; -pub const KERN_MSGMAX: ::c_int = 35; -pub const KERN_MSGMNB: ::c_int = 36; -pub const KERN_MSGPOOL: ::c_int = 37; -pub const KERN_SYSRQ: ::c_int = 38; -pub const KERN_MAX_THREADS: ::c_int = 39; -pub const KERN_RANDOM: ::c_int = 40; -pub const KERN_SHMALL: ::c_int = 41; -pub const KERN_MSGMNI: ::c_int = 42; -pub const KERN_SEM: ::c_int = 43; -pub const KERN_SPARC_STOP_A: ::c_int = 44; -pub const KERN_SHMMNI: ::c_int = 45; -pub const KERN_OVERFLOWUID: ::c_int = 46; -pub const KERN_OVERFLOWGID: ::c_int = 47; -pub const KERN_SHMPATH: ::c_int = 48; -pub const KERN_HOTPLUG: ::c_int = 49; -pub const KERN_IEEE_EMULATION_WARNINGS: ::c_int = 50; -pub const KERN_S390_USER_DEBUG_LOGGING: ::c_int = 51; -pub const KERN_CORE_USES_PID: ::c_int = 52; -pub const KERN_TAINTED: ::c_int = 53; -pub const KERN_CADPID: ::c_int = 54; -pub const KERN_PIDMAX: ::c_int = 55; -pub const KERN_CORE_PATTERN: ::c_int = 56; -pub const KERN_PANIC_ON_OOPS: ::c_int = 57; -pub const KERN_HPPA_PWRSW: ::c_int = 58; -pub const KERN_HPPA_UNALIGNED: ::c_int = 59; -pub const KERN_PRINTK_RATELIMIT: ::c_int = 60; -pub const KERN_PRINTK_RATELIMIT_BURST: ::c_int = 61; -pub const KERN_PTY: ::c_int = 62; -pub const KERN_NGROUPS_MAX: ::c_int = 63; -pub const KERN_SPARC_SCONS_PWROFF: ::c_int = 64; -pub const KERN_HZ_TIMER: ::c_int = 65; -pub const KERN_UNKNOWN_NMI_PANIC: ::c_int = 66; -pub const KERN_BOOTLOADER_TYPE: ::c_int = 67; -pub const KERN_RANDOMIZE: ::c_int = 68; -pub const KERN_SETUID_DUMPABLE: ::c_int = 69; -pub const KERN_SPIN_RETRY: ::c_int = 70; -pub const KERN_ACPI_VIDEO_FLAGS: ::c_int = 71; -pub const KERN_IA64_UNALIGNED: ::c_int = 72; -pub const KERN_COMPAT_LOG: ::c_int = 73; -pub const KERN_MAX_LOCK_DEPTH: ::c_int = 74; - -pub const VM_OVERCOMMIT_MEMORY: ::c_int = 5; -pub const VM_PAGE_CLUSTER: ::c_int = 10; -pub const VM_DIRTY_BACKGROUND: ::c_int = 11; -pub const VM_DIRTY_RATIO: ::c_int = 12; -pub const VM_DIRTY_WB_CS: ::c_int = 13; -pub const VM_DIRTY_EXPIRE_CS: ::c_int = 14; -pub const VM_NR_PDFLUSH_THREADS: ::c_int = 15; -pub const VM_OVERCOMMIT_RATIO: ::c_int = 16; -pub const VM_PAGEBUF: ::c_int = 17; -pub const VM_HUGETLB_PAGES: ::c_int = 18; -pub const VM_SWAPPINESS: ::c_int = 19; -pub const VM_LOWMEM_RESERVE_RATIO: ::c_int = 20; -pub const VM_MIN_FREE_KBYTES: ::c_int = 21; -pub const VM_MAX_MAP_COUNT: ::c_int = 22; -pub const VM_LAPTOP_MODE: ::c_int = 23; -pub const VM_BLOCK_DUMP: ::c_int = 24; -pub const VM_HUGETLB_GROUP: ::c_int = 25; -pub const VM_VFS_CACHE_PRESSURE: ::c_int = 26; -pub const VM_LEGACY_VA_LAYOUT: ::c_int = 27; -pub const VM_SWAP_TOKEN_TIMEOUT: ::c_int = 28; -pub const VM_DROP_PAGECACHE: ::c_int = 29; -pub const VM_PERCPU_PAGELIST_FRACTION: ::c_int = 30; -pub const VM_ZONE_RECLAIM_MODE: ::c_int = 31; -pub const VM_MIN_UNMAPPED: ::c_int = 32; -pub const VM_PANIC_ON_OOM: ::c_int = 33; -pub const VM_VDSO_ENABLED: ::c_int = 34; - -pub const NET_CORE: ::c_int = 1; -pub const NET_ETHER: ::c_int = 2; -pub const NET_802: ::c_int = 3; -pub const NET_UNIX: ::c_int = 4; -pub const NET_IPV4: ::c_int = 5; -pub const NET_IPX: ::c_int = 6; -pub const NET_ATALK: ::c_int = 7; -pub const NET_NETROM: ::c_int = 8; -pub const NET_AX25: ::c_int = 9; -pub const NET_BRIDGE: ::c_int = 10; -pub const NET_ROSE: ::c_int = 11; -pub const NET_IPV6: ::c_int = 12; -pub const NET_X25: ::c_int = 13; -pub const NET_TR: ::c_int = 14; -pub const NET_DECNET: ::c_int = 15; -pub const NET_ECONET: ::c_int = 16; -pub const NET_SCTP: ::c_int = 17; -pub const NET_LLC: ::c_int = 18; -pub const NET_NETFILTER: ::c_int = 19; -pub const NET_DCCP: ::c_int = 20; -pub const HUGETLB_FLAG_ENCODE_SHIFT: ::c_int = 26; -pub const MAP_HUGE_SHIFT: ::c_int = HUGETLB_FLAG_ENCODE_SHIFT; +pub const CTL_KERN: c_int = 1; +pub const CTL_VM: c_int = 2; +pub const CTL_NET: c_int = 3; +pub const CTL_FS: c_int = 5; +pub const CTL_DEBUG: c_int = 6; +pub const CTL_DEV: c_int = 7; +pub const CTL_BUS: c_int = 8; +pub const CTL_ABI: c_int = 9; +pub const CTL_CPU: c_int = 10; + +pub const CTL_BUS_ISA: c_int = 1; + +pub const INOTIFY_MAX_USER_INSTANCES: c_int = 1; +pub const INOTIFY_MAX_USER_WATCHES: c_int = 2; +pub const INOTIFY_MAX_QUEUED_EVENTS: c_int = 3; + +pub const KERN_OSTYPE: c_int = 1; +pub const KERN_OSRELEASE: c_int = 2; +pub const KERN_OSREV: c_int = 3; +pub const KERN_VERSION: c_int = 4; +pub const KERN_SECUREMASK: c_int = 5; +pub const KERN_PROF: c_int = 6; +pub const KERN_NODENAME: c_int = 7; +pub const KERN_DOMAINNAME: c_int = 8; +pub const KERN_PANIC: c_int = 15; +pub const KERN_REALROOTDEV: c_int = 16; +pub const KERN_SPARC_REBOOT: c_int = 21; +pub const KERN_CTLALTDEL: c_int = 22; +pub const KERN_PRINTK: c_int = 23; +pub const KERN_NAMETRANS: c_int = 24; +pub const KERN_PPC_HTABRECLAIM: c_int = 25; +pub const KERN_PPC_ZEROPAGED: c_int = 26; +pub const KERN_PPC_POWERSAVE_NAP: c_int = 27; +pub const KERN_MODPROBE: c_int = 28; +pub const KERN_SG_BIG_BUFF: c_int = 29; +pub const KERN_ACCT: c_int = 30; +pub const KERN_PPC_L2CR: c_int = 31; +pub const KERN_RTSIGNR: c_int = 32; +pub const KERN_RTSIGMAX: c_int = 33; +pub const KERN_SHMMAX: c_int = 34; +pub const KERN_MSGMAX: c_int = 35; +pub const KERN_MSGMNB: c_int = 36; +pub const KERN_MSGPOOL: c_int = 37; +pub const KERN_SYSRQ: c_int = 38; +pub const KERN_MAX_THREADS: c_int = 39; +pub const KERN_RANDOM: c_int = 40; +pub const KERN_SHMALL: c_int = 41; +pub const KERN_MSGMNI: c_int = 42; +pub const KERN_SEM: c_int = 43; +pub const KERN_SPARC_STOP_A: c_int = 44; +pub const KERN_SHMMNI: c_int = 45; +pub const KERN_OVERFLOWUID: c_int = 46; +pub const KERN_OVERFLOWGID: c_int = 47; +pub const KERN_SHMPATH: c_int = 48; +pub const KERN_HOTPLUG: c_int = 49; +pub const KERN_IEEE_EMULATION_WARNINGS: c_int = 50; +pub const KERN_S390_USER_DEBUG_LOGGING: c_int = 51; +pub const KERN_CORE_USES_PID: c_int = 52; +pub const KERN_TAINTED: c_int = 53; +pub const KERN_CADPID: c_int = 54; +pub const KERN_PIDMAX: c_int = 55; +pub const KERN_CORE_PATTERN: c_int = 56; +pub const KERN_PANIC_ON_OOPS: c_int = 57; +pub const KERN_HPPA_PWRSW: c_int = 58; +pub const KERN_HPPA_UNALIGNED: c_int = 59; +pub const KERN_PRINTK_RATELIMIT: c_int = 60; +pub const KERN_PRINTK_RATELIMIT_BURST: c_int = 61; +pub const KERN_PTY: c_int = 62; +pub const KERN_NGROUPS_MAX: c_int = 63; +pub const KERN_SPARC_SCONS_PWROFF: c_int = 64; +pub const KERN_HZ_TIMER: c_int = 65; +pub const KERN_UNKNOWN_NMI_PANIC: c_int = 66; +pub const KERN_BOOTLOADER_TYPE: c_int = 67; +pub const KERN_RANDOMIZE: c_int = 68; +pub const KERN_SETUID_DUMPABLE: c_int = 69; +pub const KERN_SPIN_RETRY: c_int = 70; +pub const KERN_ACPI_VIDEO_FLAGS: c_int = 71; +pub const KERN_IA64_UNALIGNED: c_int = 72; +pub const KERN_COMPAT_LOG: c_int = 73; +pub const KERN_MAX_LOCK_DEPTH: c_int = 74; + +pub const VM_OVERCOMMIT_MEMORY: c_int = 5; +pub const VM_PAGE_CLUSTER: c_int = 10; +pub const VM_DIRTY_BACKGROUND: c_int = 11; +pub const VM_DIRTY_RATIO: c_int = 12; +pub const VM_DIRTY_WB_CS: c_int = 13; +pub const VM_DIRTY_EXPIRE_CS: c_int = 14; +pub const VM_NR_PDFLUSH_THREADS: c_int = 15; +pub const VM_OVERCOMMIT_RATIO: c_int = 16; +pub const VM_PAGEBUF: c_int = 17; +pub const VM_HUGETLB_PAGES: c_int = 18; +pub const VM_SWAPPINESS: c_int = 19; +pub const VM_LOWMEM_RESERVE_RATIO: c_int = 20; +pub const VM_MIN_FREE_KBYTES: c_int = 21; +pub const VM_MAX_MAP_COUNT: c_int = 22; +pub const VM_LAPTOP_MODE: c_int = 23; +pub const VM_BLOCK_DUMP: c_int = 24; +pub const VM_HUGETLB_GROUP: c_int = 25; +pub const VM_VFS_CACHE_PRESSURE: c_int = 26; +pub const VM_LEGACY_VA_LAYOUT: c_int = 27; +pub const VM_SWAP_TOKEN_TIMEOUT: c_int = 28; +pub const VM_DROP_PAGECACHE: c_int = 29; +pub const VM_PERCPU_PAGELIST_FRACTION: c_int = 30; +pub const VM_ZONE_RECLAIM_MODE: c_int = 31; +pub const VM_MIN_UNMAPPED: c_int = 32; +pub const VM_PANIC_ON_OOM: c_int = 33; +pub const VM_VDSO_ENABLED: c_int = 34; + +pub const NET_CORE: c_int = 1; +pub const NET_ETHER: c_int = 2; +pub const NET_802: c_int = 3; +pub const NET_UNIX: c_int = 4; +pub const NET_IPV4: c_int = 5; +pub const NET_IPX: c_int = 6; +pub const NET_ATALK: c_int = 7; +pub const NET_NETROM: c_int = 8; +pub const NET_AX25: c_int = 9; +pub const NET_BRIDGE: c_int = 10; +pub const NET_ROSE: c_int = 11; +pub const NET_IPV6: c_int = 12; +pub const NET_X25: c_int = 13; +pub const NET_TR: c_int = 14; +pub const NET_DECNET: c_int = 15; +pub const NET_ECONET: c_int = 16; +pub const NET_SCTP: c_int = 17; +pub const NET_LLC: c_int = 18; +pub const NET_NETFILTER: c_int = 19; +pub const NET_DCCP: c_int = 20; +pub const HUGETLB_FLAG_ENCODE_SHIFT: c_int = 26; +pub const MAP_HUGE_SHIFT: c_int = HUGETLB_FLAG_ENCODE_SHIFT; // include/linux/sched.h -pub const PF_VCPU: ::c_int = 0x00000001; -pub const PF_IDLE: ::c_int = 0x00000002; -pub const PF_EXITING: ::c_int = 0x00000004; -pub const PF_POSTCOREDUMP: ::c_int = 0x00000008; -pub const PF_IO_WORKER: ::c_int = 0x00000010; -pub const PF_WQ_WORKER: ::c_int = 0x00000020; -pub const PF_FORKNOEXEC: ::c_int = 0x00000040; -pub const PF_MCE_PROCESS: ::c_int = 0x00000080; -pub const PF_SUPERPRIV: ::c_int = 0x00000100; -pub const PF_DUMPCORE: ::c_int = 0x00000200; -pub const PF_SIGNALED: ::c_int = 0x00000400; -pub const PF_MEMALLOC: ::c_int = 0x00000800; -pub const PF_NPROC_EXCEEDED: ::c_int = 0x00001000; -pub const PF_USED_MATH: ::c_int = 0x00002000; -pub const PF_USER_WORKER: ::c_int = 0x00004000; -pub const PF_NOFREEZE: ::c_int = 0x00008000; - -pub const PF_KSWAPD: ::c_int = 0x00020000; -pub const PF_MEMALLOC_NOFS: ::c_int = 0x00040000; -pub const PF_MEMALLOC_NOIO: ::c_int = 0x00080000; -pub const PF_LOCAL_THROTTLE: ::c_int = 0x00100000; -pub const PF_KTHREAD: ::c_int = 0x00200000; -pub const PF_RANDOMIZE: ::c_int = 0x00400000; - -pub const PF_NO_SETAFFINITY: ::c_int = 0x04000000; -pub const PF_MCE_EARLY: ::c_int = 0x08000000; -pub const PF_MEMALLOC_PIN: ::c_int = 0x10000000; - -pub const PF_SUSPEND_TASK: ::c_int = 0x80000000; - -pub const KLOG_CLOSE: ::c_int = 0; -pub const KLOG_OPEN: ::c_int = 1; -pub const KLOG_READ: ::c_int = 2; -pub const KLOG_READ_ALL: ::c_int = 3; -pub const KLOG_READ_CLEAR: ::c_int = 4; -pub const KLOG_CLEAR: ::c_int = 5; -pub const KLOG_CONSOLE_OFF: ::c_int = 6; -pub const KLOG_CONSOLE_ON: ::c_int = 7; -pub const KLOG_CONSOLE_LEVEL: ::c_int = 8; -pub const KLOG_SIZE_UNREAD: ::c_int = 9; -pub const KLOG_SIZE_BUFFER: ::c_int = 10; +pub const PF_VCPU: c_int = 0x00000001; +pub const PF_IDLE: c_int = 0x00000002; +pub const PF_EXITING: c_int = 0x00000004; +pub const PF_POSTCOREDUMP: c_int = 0x00000008; +pub const PF_IO_WORKER: c_int = 0x00000010; +pub const PF_WQ_WORKER: c_int = 0x00000020; +pub const PF_FORKNOEXEC: c_int = 0x00000040; +pub const PF_MCE_PROCESS: c_int = 0x00000080; +pub const PF_SUPERPRIV: c_int = 0x00000100; +pub const PF_DUMPCORE: c_int = 0x00000200; +pub const PF_SIGNALED: c_int = 0x00000400; +pub const PF_MEMALLOC: c_int = 0x00000800; +pub const PF_NPROC_EXCEEDED: c_int = 0x00001000; +pub const PF_USED_MATH: c_int = 0x00002000; +pub const PF_USER_WORKER: c_int = 0x00004000; +pub const PF_NOFREEZE: c_int = 0x00008000; + +pub const PF_KSWAPD: c_int = 0x00020000; +pub const PF_MEMALLOC_NOFS: c_int = 0x00040000; +pub const PF_MEMALLOC_NOIO: c_int = 0x00080000; +pub const PF_LOCAL_THROTTLE: c_int = 0x00100000; +pub const PF_KTHREAD: c_int = 0x00200000; +pub const PF_RANDOMIZE: c_int = 0x00400000; + +pub const PF_NO_SETAFFINITY: c_int = 0x04000000; +pub const PF_MCE_EARLY: c_int = 0x08000000; +pub const PF_MEMALLOC_PIN: c_int = 0x10000000; + +pub const PF_SUSPEND_TASK: c_int = 0x80000000; + +pub const KLOG_CLOSE: c_int = 0; +pub const KLOG_OPEN: c_int = 1; +pub const KLOG_READ: c_int = 2; +pub const KLOG_READ_ALL: c_int = 3; +pub const KLOG_READ_CLEAR: c_int = 4; +pub const KLOG_CLEAR: c_int = 5; +pub const KLOG_CONSOLE_OFF: c_int = 6; +pub const KLOG_CONSOLE_ON: c_int = 7; +pub const KLOG_CONSOLE_LEVEL: c_int = 8; +pub const KLOG_SIZE_UNREAD: c_int = 9; +pub const KLOG_SIZE_BUFFER: c_int = 10; // From NDK's linux/auxvec.h -pub const AT_NULL: ::c_ulong = 0; -pub const AT_IGNORE: ::c_ulong = 1; -pub const AT_EXECFD: ::c_ulong = 2; -pub const AT_PHDR: ::c_ulong = 3; -pub const AT_PHENT: ::c_ulong = 4; -pub const AT_PHNUM: ::c_ulong = 5; -pub const AT_PAGESZ: ::c_ulong = 6; -pub const AT_BASE: ::c_ulong = 7; -pub const AT_FLAGS: ::c_ulong = 8; -pub const AT_ENTRY: ::c_ulong = 9; -pub const AT_NOTELF: ::c_ulong = 10; -pub const AT_UID: ::c_ulong = 11; -pub const AT_EUID: ::c_ulong = 12; -pub const AT_GID: ::c_ulong = 13; -pub const AT_EGID: ::c_ulong = 14; -pub const AT_PLATFORM: ::c_ulong = 15; -pub const AT_HWCAP: ::c_ulong = 16; -pub const AT_CLKTCK: ::c_ulong = 17; -pub const AT_SECURE: ::c_ulong = 23; -pub const AT_BASE_PLATFORM: ::c_ulong = 24; -pub const AT_RANDOM: ::c_ulong = 25; -pub const AT_HWCAP2: ::c_ulong = 26; -pub const AT_RSEQ_FEATURE_SIZE: ::c_ulong = 27; -pub const AT_RSEQ_ALIGN: ::c_ulong = 28; -pub const AT_EXECFN: ::c_ulong = 31; -pub const AT_MINSIGSTKSZ: ::c_ulong = 51; +pub const AT_NULL: c_ulong = 0; +pub const AT_IGNORE: c_ulong = 1; +pub const AT_EXECFD: c_ulong = 2; +pub const AT_PHDR: c_ulong = 3; +pub const AT_PHENT: c_ulong = 4; +pub const AT_PHNUM: c_ulong = 5; +pub const AT_PAGESZ: c_ulong = 6; +pub const AT_BASE: c_ulong = 7; +pub const AT_FLAGS: c_ulong = 8; +pub const AT_ENTRY: c_ulong = 9; +pub const AT_NOTELF: c_ulong = 10; +pub const AT_UID: c_ulong = 11; +pub const AT_EUID: c_ulong = 12; +pub const AT_GID: c_ulong = 13; +pub const AT_EGID: c_ulong = 14; +pub const AT_PLATFORM: c_ulong = 15; +pub const AT_HWCAP: c_ulong = 16; +pub const AT_CLKTCK: c_ulong = 17; +pub const AT_SECURE: c_ulong = 23; +pub const AT_BASE_PLATFORM: c_ulong = 24; +pub const AT_RANDOM: c_ulong = 25; +pub const AT_HWCAP2: c_ulong = 26; +pub const AT_RSEQ_FEATURE_SIZE: c_ulong = 27; +pub const AT_RSEQ_ALIGN: c_ulong = 28; +pub const AT_EXECFN: c_ulong = 31; +pub const AT_MINSIGSTKSZ: c_ulong = 51; // Most `*_SUPER_MAGIC` constants are defined at the `linux_like` level; the // following are only available on newer Linux versions than the versions // currently used in CI in some configurations, so we define them here. cfg_if! { if #[cfg(not(target_arch = "s390x"))] { - pub const XFS_SUPER_MAGIC: ::c_long = 0x58465342; + pub const XFS_SUPER_MAGIC: c_long = 0x58465342; } else if #[cfg(target_arch = "s390x")] { - pub const XFS_SUPER_MAGIC: ::c_uint = 0x58465342; + pub const XFS_SUPER_MAGIC: c_uint = 0x58465342; } } @@ -3615,10 +3619,10 @@ f! { } } - pub fn CPU_ALLOC_SIZE(count: ::c_int) -> ::size_t { - let _dummy: cpu_set_t = ::mem::zeroed(); - let size_in_bits = 8 * ::mem::size_of_val(&_dummy.__bits[0]); - ((count as ::size_t + size_in_bits - 1) / 8) as ::size_t + pub fn CPU_ALLOC_SIZE(count: c_int) -> size_t { + let _dummy: cpu_set_t = crate::mem::zeroed(); + let size_in_bits = 8 * crate::mem::size_of_val(&_dummy.__bits[0]); + ((count as size_t + size_in_bits - 1) / 8) as size_t } pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { @@ -3628,61 +3632,61 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc + let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.__bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc + let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.__bits[idx] &= !(1 << offset); () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.__bits[0]); + let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.__bits[0]); let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); 0 != (cpuset.__bits[idx] & (1 << offset)) } - pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> ::c_int { + pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int { let mut s: u32 = 0; - let size_of_mask = ::mem::size_of_val(&cpuset.__bits[0]); + let size_of_mask = crate::mem::size_of_val(&cpuset.__bits[0]); for i in cpuset.__bits[..(size / size_of_mask)].iter() { s += i.count_ones(); } - s as ::c_int + s as c_int } - pub fn CPU_COUNT(cpuset: &cpu_set_t) -> ::c_int { - CPU_COUNT_S(::mem::size_of::(), cpuset) + pub fn CPU_COUNT(cpuset: &cpu_set_t) -> c_int { + CPU_COUNT_S(crate::mem::size_of::(), cpuset) } pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { set1.__bits == set2.__bits } - pub fn major(dev: ::dev_t) -> ::c_int { - ((dev >> 8) & 0xfff) as ::c_int + pub fn major(dev: crate::dev_t) -> c_int { + ((dev >> 8) & 0xfff) as c_int } - pub fn minor(dev: ::dev_t) -> ::c_int { - ((dev & 0xff) | ((dev >> 12) & 0xfff00)) as ::c_int + pub fn minor(dev: crate::dev_t) -> c_int { + ((dev & 0xff) | ((dev >> 12) & 0xfff00)) as c_int } - pub fn NLA_ALIGN(len: ::c_int) -> ::c_int { + pub fn NLA_ALIGN(len: c_int) -> c_int { return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1); } - pub fn SO_EE_OFFENDER(ee: *const ::sock_extended_err) -> *mut ::sockaddr { - ee.offset(1) as *mut ::sockaddr + pub fn SO_EE_OFFENDER(ee: *const crate::sock_extended_err) -> *mut crate::sockaddr { + ee.offset(1) as *mut crate::sockaddr } } safe_f! { - pub {const} fn makedev(ma: ::c_uint, mi: ::c_uint) -> ::dev_t { - let ma = ma as ::dev_t; - let mi = mi as ::dev_t; + pub {const} fn makedev(ma: c_uint, mi: c_uint) -> crate::dev_t { + let ma = ma as crate::dev_t; + let mi = mi as crate::dev_t; ((ma & 0xfff) << 8) | (mi & 0xff) | ((mi & 0xfff00) << 12) } } @@ -3690,488 +3694,467 @@ safe_f! { extern "C" { pub fn setgrent(); pub fn endgrent(); - pub fn getgrent() -> *mut ::group; - pub fn getrlimit64(resource: ::c_int, rlim: *mut rlimit64) -> ::c_int; - pub fn setrlimit64(resource: ::c_int, rlim: *const rlimit64) -> ::c_int; - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; + pub fn getgrent() -> *mut crate::group; + pub fn getrlimit64(resource: c_int, rlim: *mut rlimit64) -> c_int; + pub fn setrlimit64(resource: c_int, rlim: *const rlimit64) -> c_int; + pub fn getrlimit(resource: c_int, rlim: *mut crate::rlimit) -> c_int; + pub fn setrlimit(resource: c_int, rlim: *const crate::rlimit) -> c_int; pub fn prlimit( - pid: ::pid_t, - resource: ::c_int, - new_limit: *const ::rlimit, - old_limit: *mut ::rlimit, - ) -> ::c_int; + pid: crate::pid_t, + resource: c_int, + new_limit: *const crate::rlimit, + old_limit: *mut crate::rlimit, + ) -> c_int; pub fn prlimit64( - pid: ::pid_t, - resource: ::c_int, - new_limit: *const ::rlimit64, - old_limit: *mut ::rlimit64, - ) -> ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; - pub fn mlock2(addr: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pid: crate::pid_t, + resource: c_int, + new_limit: *const crate::rlimit64, + old_limit: *mut crate::rlimit64, + ) -> c_int; + pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; + + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut crate::timezone) -> c_int; + pub fn mlock2(addr: *const c_void, len: size_t, flags: c_int) -> c_int; + pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; + pub fn ioctl(fd: c_int, request: c_int, ...) -> c_int; + pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; + socket: c_int, + buf: *mut c_void, + len: size_t, + flags: c_int, + addr: *mut crate::sockaddr, + addrlen: *mut crate::socklen_t, + ) -> ssize_t; pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::size_t, - serv: *mut ::c_char, - servlen: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn preadv(fd: ::c_int, iov: *const ::iovec, count: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, count: ::c_int, offset: ::off_t) -> ::ssize_t; + sa: *const crate::sockaddr, + salen: crate::socklen_t, + host: *mut c_char, + hostlen: size_t, + serv: *mut c_char, + servlen: size_t, + flags: c_int, + ) -> c_int; + pub fn preadv(fd: c_int, iov: *const crate::iovec, count: c_int, offset: off_t) -> ssize_t; + pub fn pwritev(fd: c_int, iov: *const crate::iovec, count: c_int, offset: off_t) -> ssize_t; pub fn process_vm_readv( - pid: ::pid_t, - local_iov: *const ::iovec, - local_iov_count: ::c_ulong, - remote_iov: *const ::iovec, - remote_iov_count: ::c_ulong, - flags: ::c_ulong, - ) -> ::ssize_t; + pid: crate::pid_t, + local_iov: *const crate::iovec, + local_iov_count: c_ulong, + remote_iov: *const crate::iovec, + remote_iov_count: c_ulong, + flags: c_ulong, + ) -> ssize_t; pub fn process_vm_writev( - pid: ::pid_t, - local_iov: *const ::iovec, - local_iov_count: ::c_ulong, - remote_iov: *const ::iovec, - remote_iov_count: ::c_ulong, - flags: ::c_ulong, - ) -> ::ssize_t; - pub fn ptrace(request: ::c_int, ...) -> ::c_long; - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - pub fn __sched_cpualloc(count: ::size_t) -> *mut ::cpu_set_t; - pub fn __sched_cpufree(set: *mut ::cpu_set_t); - pub fn __sched_cpucount(setsize: ::size_t, set: *const cpu_set_t) -> ::c_int; - pub fn sched_getcpu() -> ::c_int; - pub fn mallinfo() -> ::mallinfo; + pid: crate::pid_t, + local_iov: *const crate::iovec, + local_iov_count: c_ulong, + remote_iov: *const crate::iovec, + remote_iov_count: c_ulong, + flags: c_ulong, + ) -> ssize_t; + pub fn ptrace(request: c_int, ...) -> c_long; + pub fn getpriority(which: c_int, who: crate::id_t) -> c_int; + pub fn setpriority(which: c_int, who: crate::id_t, prio: c_int) -> c_int; + pub fn __sched_cpualloc(count: size_t) -> *mut crate::cpu_set_t; + pub fn __sched_cpufree(set: *mut crate::cpu_set_t); + pub fn __sched_cpucount(setsize: size_t, set: *const cpu_set_t) -> c_int; + pub fn sched_getcpu() -> c_int; + pub fn mallinfo() -> crate::mallinfo; // available from API 23 - pub fn malloc_info(options: ::c_int, stream: *mut ::FILE) -> ::c_int; + pub fn malloc_info(options: c_int, stream: *mut crate::FILE) -> c_int; - pub fn malloc_usable_size(ptr: *const ::c_void) -> ::size_t; + pub fn malloc_usable_size(ptr: *const c_void) -> size_t; - pub fn utmpname(name: *const ::c_char) -> ::c_int; + pub fn utmpname(name: *const c_char) -> c_int; pub fn setutent(); pub fn getutent() -> *mut utmp; - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn fallocate(fd: ::c_int, mode: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn fallocate64(fd: ::c_int, mode: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn posix_fallocate64(fd: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int; + pub fn seekdir(dirp: *mut crate::DIR, loc: c_long); + pub fn telldir(dirp: *mut crate::DIR) -> c_long; + pub fn fallocate(fd: c_int, mode: c_int, offset: off_t, len: off_t) -> c_int; + pub fn fallocate64(fd: c_int, mode: c_int, offset: off64_t, len: off64_t) -> c_int; + pub fn posix_fallocate(fd: c_int, offset: off_t, len: off_t) -> c_int; + pub fn posix_fallocate64(fd: c_int, offset: off64_t, len: off64_t) -> c_int; pub fn getxattr( path: *const c_char, name: *const c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; + value: *mut c_void, + size: size_t, + ) -> ssize_t; pub fn lgetxattr( path: *const c_char, name: *const c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; + value: *mut c_void, + size: size_t, + ) -> ssize_t; pub fn fgetxattr( - filedes: ::c_int, + filedes: c_int, name: *const c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; + value: *mut c_void, + size: size_t, + ) -> ssize_t; pub fn setxattr( path: *const c_char, name: *const c_char, - value: *const ::c_void, - size: ::size_t, - flags: ::c_int, - ) -> ::c_int; + value: *const c_void, + size: size_t, + flags: c_int, + ) -> c_int; pub fn lsetxattr( path: *const c_char, name: *const c_char, - value: *const ::c_void, - size: ::size_t, - flags: ::c_int, - ) -> ::c_int; + value: *const c_void, + size: size_t, + flags: c_int, + ) -> c_int; pub fn fsetxattr( - filedes: ::c_int, + filedes: c_int, name: *const c_char, - value: *const ::c_void, - size: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn listxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t; - pub fn llistxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t; - pub fn flistxattr(filedes: ::c_int, list: *mut c_char, size: ::size_t) -> ::ssize_t; - pub fn removexattr(path: *const c_char, name: *const c_char) -> ::c_int; - pub fn lremovexattr(path: *const c_char, name: *const c_char) -> ::c_int; - pub fn fremovexattr(filedes: ::c_int, name: *const c_char) -> ::c_int; - pub fn signalfd(fd: ::c_int, mask: *const ::sigset_t, flags: ::c_int) -> ::c_int; - pub fn timerfd_create(clock: ::clockid_t, flags: ::c_int) -> ::c_int; - pub fn timerfd_gettime(fd: ::c_int, current_value: *mut itimerspec) -> ::c_int; + value: *const c_void, + size: size_t, + flags: c_int, + ) -> c_int; + pub fn listxattr(path: *const c_char, list: *mut c_char, size: size_t) -> ssize_t; + pub fn llistxattr(path: *const c_char, list: *mut c_char, size: size_t) -> ssize_t; + pub fn flistxattr(filedes: c_int, list: *mut c_char, size: size_t) -> ssize_t; + pub fn removexattr(path: *const c_char, name: *const c_char) -> c_int; + pub fn lremovexattr(path: *const c_char, name: *const c_char) -> c_int; + pub fn fremovexattr(filedes: c_int, name: *const c_char) -> c_int; + pub fn signalfd(fd: c_int, mask: *const crate::sigset_t, flags: c_int) -> c_int; + pub fn timerfd_create(clock: crate::clockid_t, flags: c_int) -> c_int; + pub fn timerfd_gettime(fd: c_int, current_value: *mut itimerspec) -> c_int; pub fn timerfd_settime( - fd: ::c_int, - flags: ::c_int, + fd: c_int, + flags: c_int, new_value: *const itimerspec, old_value: *mut itimerspec, - ) -> ::c_int; - pub fn syscall(num: ::c_long, ...) -> ::c_long; - pub fn sched_getaffinity(pid: ::pid_t, cpusetsize: ::size_t, cpuset: *mut cpu_set_t) - -> ::c_int; + ) -> c_int; + pub fn syscall(num: c_long, ...) -> c_long; + pub fn sched_getaffinity( + pid: crate::pid_t, + cpusetsize: size_t, + cpuset: *mut cpu_set_t, + ) -> c_int; pub fn sched_setaffinity( - pid: ::pid_t, - cpusetsize: ::size_t, + pid: crate::pid_t, + cpusetsize: size_t, cpuset: *const cpu_set_t, - ) -> ::c_int; - pub fn epoll_create(size: ::c_int) -> ::c_int; - pub fn epoll_create1(flags: ::c_int) -> ::c_int; + ) -> c_int; + pub fn epoll_create(size: c_int) -> c_int; + pub fn epoll_create1(flags: c_int) -> c_int; pub fn epoll_wait( - epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - ) -> ::c_int; - pub fn epoll_ctl(epfd: ::c_int, op: ::c_int, fd: ::c_int, event: *mut ::epoll_event) - -> ::c_int; + epfd: c_int, + events: *mut crate::epoll_event, + maxevents: c_int, + timeout: c_int, + ) -> c_int; + pub fn epoll_ctl(epfd: c_int, op: c_int, fd: c_int, event: *mut crate::epoll_event) -> c_int; pub fn pthread_getschedparam( - native: ::pthread_t, - policy: *mut ::c_int, - param: *mut ::sched_param, - ) -> ::c_int; - pub fn unshare(flags: ::c_int) -> ::c_int; - pub fn umount(target: *const ::c_char) -> ::c_int; - pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn tee(fd_in: ::c_int, fd_out: ::c_int, len: ::size_t, flags: ::c_uint) -> ::ssize_t; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; + native: crate::pthread_t, + policy: *mut c_int, + param: *mut crate::sched_param, + ) -> c_int; + pub fn unshare(flags: c_int) -> c_int; + pub fn umount(target: *const c_char) -> c_int; + pub fn sched_get_priority_max(policy: c_int) -> c_int; + pub fn tee(fd_in: c_int, fd_out: c_int, len: size_t, flags: c_uint) -> ssize_t; + pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int; pub fn splice( - fd_in: ::c_int, - off_in: *mut ::loff_t, - fd_out: ::c_int, - off_out: *mut ::loff_t, - len: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; - pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; - pub fn eventfd_read(fd: ::c_int, value: *mut eventfd_t) -> ::c_int; - pub fn eventfd_write(fd: ::c_int, value: eventfd_t) -> ::c_int; - pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; - pub fn setns(fd: ::c_int, nstype: ::c_int) -> ::c_int; - pub fn swapoff(puath: *const ::c_char) -> ::c_int; - pub fn vmsplice( - fd: ::c_int, - iov: *const ::iovec, - nr_segs: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; + fd_in: c_int, + off_in: *mut crate::loff_t, + fd_out: c_int, + off_out: *mut crate::loff_t, + len: size_t, + flags: c_uint, + ) -> ssize_t; + pub fn eventfd(init: c_uint, flags: c_int) -> c_int; + pub fn eventfd_read(fd: c_int, value: *mut eventfd_t) -> c_int; + pub fn eventfd_write(fd: c_int, value: eventfd_t) -> c_int; + pub fn sched_rr_get_interval(pid: crate::pid_t, tp: *mut crate::timespec) -> c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int; + pub fn sched_setparam(pid: crate::pid_t, param: *const crate::sched_param) -> c_int; + pub fn setns(fd: c_int, nstype: c_int) -> c_int; + pub fn swapoff(puath: *const c_char) -> c_int; + pub fn vmsplice(fd: c_int, iov: *const crate::iovec, nr_segs: size_t, flags: c_uint) + -> ssize_t; pub fn mount( - src: *const ::c_char, - target: *const ::c_char, - fstype: *const ::c_char, - flags: ::c_ulong, - data: *const ::c_void, - ) -> ::c_int; - pub fn personality(persona: ::c_uint) -> ::c_int; - pub fn prctl(option: ::c_int, ...) -> ::c_int; - pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; + src: *const c_char, + target: *const c_char, + fstype: *const c_char, + flags: c_ulong, + data: *const c_void, + ) -> c_int; + pub fn personality(persona: c_uint) -> c_int; + pub fn prctl(option: c_int, ...) -> c_int; + pub fn sched_getparam(pid: crate::pid_t, param: *mut crate::sched_param) -> c_int; pub fn ppoll( - fds: *mut ::pollfd, + fds: *mut crate::pollfd, nfds: nfds_t, - timeout: *const ::timespec, + timeout: *const crate::timespec, sigmask: *const sigset_t, - ) -> ::c_int; + ) -> c_int; pub fn pthread_mutex_timedlock( lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_barrierattr_init(attr: *mut ::pthread_barrierattr_t) -> ::c_int; - pub fn pthread_barrierattr_destroy(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + abstime: *const crate::timespec, + ) -> c_int; + pub fn pthread_barrierattr_init(attr: *mut crate::pthread_barrierattr_t) -> c_int; + pub fn pthread_barrierattr_destroy(attr: *mut crate::pthread_barrierattr_t) -> c_int; pub fn pthread_barrierattr_getpshared( - attr: *const ::pthread_barrierattr_t, - shared: *mut ::c_int, - ) -> ::c_int; + attr: *const crate::pthread_barrierattr_t, + shared: *mut c_int, + ) -> c_int; pub fn pthread_barrierattr_setpshared( - attr: *mut ::pthread_barrierattr_t, - shared: ::c_int, - ) -> ::c_int; + attr: *mut crate::pthread_barrierattr_t, + shared: c_int, + ) -> c_int; pub fn pthread_barrier_init( barrier: *mut pthread_barrier_t, - attr: *const ::pthread_barrierattr_t, - count: ::c_uint, - ) -> ::c_int; - pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> ::c_int; - pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::c_int; - pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_trylock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_unlock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + attr: *const crate::pthread_barrierattr_t, + count: c_uint, + ) -> c_int; + pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> c_int; + pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> c_int; + pub fn pthread_spin_init(lock: *mut crate::pthread_spinlock_t, pshared: c_int) -> c_int; + pub fn pthread_spin_destroy(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn pthread_spin_lock(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn pthread_spin_trylock(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn pthread_spin_unlock(lock: *mut crate::pthread_spinlock_t) -> c_int; pub fn clone( - cb: extern "C" fn(*mut ::c_void) -> ::c_int, - child_stack: *mut ::c_void, - flags: ::c_int, - arg: *mut ::c_void, + cb: extern "C" fn(*mut c_void) -> c_int, + child_stack: *mut c_void, + flags: c_int, + arg: *mut c_void, ... - ) -> ::c_int; - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + ) -> c_int; + pub fn sched_getscheduler(pid: crate::pid_t) -> c_int; pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; + clk_id: crate::clockid_t, + flags: c_int, + rqtp: *const crate::timespec, + rmtp: *mut crate::timespec, + ) -> c_int; pub fn pthread_attr_getguardsize( - 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; + attr: *const crate::pthread_attr_t, + guardsize: *mut size_t, + ) -> c_int; + pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int; pub fn pthread_attr_getinheritsched( - attr: *const ::pthread_attr_t, - flag: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_attr_setinheritsched(attr: *mut ::pthread_attr_t, flag: ::c_int) -> ::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; + attr: *const crate::pthread_attr_t, + flag: *mut c_int, + ) -> c_int; + pub fn pthread_attr_setinheritsched(attr: *mut crate::pthread_attr_t, flag: c_int) -> 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 pthread_condattr_getpshared( attr: *const pthread_condattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn sysinfo(info: *mut ::sysinfo) -> ::c_int; - pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int; + pshared: *mut c_int, + ) -> c_int; + pub fn sysinfo(info: *mut crate::sysinfo) -> c_int; + pub fn umount2(target: *const c_char, flags: c_int) -> c_int; pub fn pthread_setschedparam( - native: ::pthread_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn swapon(path: *const ::c_char, swapflags: ::c_int) -> ::c_int; + native: crate::pthread_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; + pub fn swapon(path: *const c_char, swapflags: c_int) -> c_int; pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn sendfile( - out_fd: ::c_int, - in_fd: ::c_int, - offset: *mut ::off_t, - count: ::size_t, - ) -> ::ssize_t; - pub fn sendfile64( - out_fd: ::c_int, - in_fd: ::c_int, - offset: *mut ::off64_t, - count: ::size_t, - ) -> ::ssize_t; - pub fn setfsgid(gid: ::gid_t) -> ::c_int; - pub fn setfsuid(uid: ::uid_t) -> ::c_int; - pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; + pid: crate::pid_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; + pub fn sendfile(out_fd: c_int, in_fd: c_int, offset: *mut off_t, count: size_t) -> ssize_t; + pub fn sendfile64(out_fd: c_int, in_fd: c_int, offset: *mut off64_t, count: size_t) -> ssize_t; + pub fn setfsgid(gid: crate::gid_t) -> c_int; + pub fn setfsuid(uid: crate::uid_t) -> c_int; + pub fn sigsuspend(mask: *const crate::sigset_t) -> c_int; pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; - pub fn sem_close(sem: *mut sem_t) -> ::c_int; + gid: crate::gid_t, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> c_int; + pub fn sem_close(sem: *mut sem_t) -> c_int; pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + name: *const c_char, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn pthread_sigmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; + pub fn sem_open(name: *const c_char, oflag: c_int, ...) -> *mut sem_t; + pub fn getgrnam(name: *const c_char) -> *mut crate::group; + pub fn pthread_kill(thread: crate::pthread_t, sig: c_int) -> c_int; + pub fn sem_unlink(name: *const c_char) -> c_int; + pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; pub fn getpwnam_r( - name: *const ::c_char, + name: *const c_char, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; pub fn getpwuid_r( - uid: ::uid_t, + uid: crate::uid_t, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; pub fn sigtimedwait( set: *const sigset_t, info: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + timeout: *const crate::timespec, + ) -> c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int; pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + prepare: Option, + parent: Option, + child: Option, + ) -> c_int; + pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; pub fn getgrouplist( - user: *const ::c_char, - group: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int, - ) -> ::c_int; - pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; + user: *const c_char, + group: crate::gid_t, + groups: *mut crate::gid_t, + ngroups: *mut c_int, + ) -> c_int; + pub fn initgroups(user: *const c_char, group: crate::gid_t) -> c_int; pub fn pthread_mutexattr_getpshared( attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn faccessat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::c_int, - flags: ::c_int, - ) -> ::c_int; + pshared: *mut c_int, + ) -> c_int; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut crate::FILE; + pub fn faccessat(dirfd: c_int, pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - pub fn __errno() -> *mut ::c_int; - pub fn inotify_rm_watch(fd: ::c_int, wd: u32) -> ::c_int; + native: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + f: extern "C" fn(*mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; + pub fn __errno() -> *mut c_int; + pub fn inotify_rm_watch(fd: c_int, wd: u32) -> c_int; pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *const ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - ) -> ::c_int; + sockfd: c_int, + msgvec: *const crate::mmsghdr, + vlen: c_uint, + flags: c_int, + ) -> c_int; pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn inotify_init() -> ::c_int; - pub fn inotify_init1(flags: ::c_int) -> ::c_int; - pub fn inotify_add_watch(fd: ::c_int, path: *const ::c_char, mask: u32) -> ::c_int; - - pub fn regcomp(preg: *mut ::regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int; + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_int, + timeout: *const crate::timespec, + ) -> c_int; + pub fn inotify_init() -> c_int; + pub fn inotify_init1(flags: c_int) -> c_int; + pub fn inotify_add_watch(fd: c_int, path: *const c_char, mask: u32) -> c_int; + + pub fn regcomp(preg: *mut crate::regex_t, pattern: *const c_char, cflags: c_int) -> c_int; pub fn regexec( - preg: *const ::regex_t, - input: *const ::c_char, - nmatch: ::size_t, + preg: *const crate::regex_t, + input: *const c_char, + nmatch: size_t, pmatch: *mut regmatch_t, - eflags: ::c_int, - ) -> ::c_int; + eflags: c_int, + ) -> c_int; pub fn regerror( - errcode: ::c_int, - preg: *const ::regex_t, - errbuf: *mut ::c_char, - errbuf_size: ::size_t, - ) -> ::size_t; + errcode: c_int, + preg: *const crate::regex_t, + errbuf: *mut c_char, + errbuf_size: size_t, + ) -> size_t; - pub fn regfree(preg: *mut ::regex_t); + pub fn regfree(preg: *mut crate::regex_t); - pub fn android_set_abort_message(msg: *const ::c_char); + pub fn android_set_abort_message(msg: *const c_char); - pub fn gettid() -> ::pid_t; + pub fn gettid() -> crate::pid_t; /// Only available in API Version 28+ - 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 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 pthread_setname_np(thread: ::pthread_t, name: *const ::c_char) -> ::c_int; + pub fn pthread_setname_np(thread: crate::pthread_t, name: *const c_char) -> c_int; - pub fn __system_property_set(__name: *const ::c_char, __value: *const ::c_char) -> ::c_int; - pub fn __system_property_get(__name: *const ::c_char, __value: *mut ::c_char) -> ::c_int; - pub fn __system_property_find(__name: *const ::c_char) -> *const prop_info; - pub fn __system_property_find_nth(__n: ::c_uint) -> *const prop_info; + pub fn __system_property_set(__name: *const c_char, __value: *const c_char) -> c_int; + pub fn __system_property_get(__name: *const c_char, __value: *mut c_char) -> c_int; + pub fn __system_property_find(__name: *const c_char) -> *const prop_info; + pub fn __system_property_find_nth(__n: c_uint) -> *const prop_info; pub fn __system_property_foreach( - __callback: unsafe extern "C" fn(__pi: *const prop_info, __cookie: *mut ::c_void), - __cookie: *mut ::c_void, - ) -> ::c_int; + __callback: unsafe extern "C" fn(__pi: *const prop_info, __cookie: *mut c_void), + __cookie: *mut c_void, + ) -> c_int; // #include /// Only available in API Version 21+ pub fn dl_iterate_phdr( - callback: ::Option< - unsafe extern "C" fn( - info: *mut dl_phdr_info, - size: usize, - data: *mut ::c_void, - ) -> ::c_int, + callback: Option< + unsafe extern "C" fn(info: *mut dl_phdr_info, size: usize, data: *mut c_void) -> c_int, >, - data: *mut ::c_void, - ) -> ::c_int; + data: *mut c_void, + ) -> c_int; pub fn arc4random() -> u32; pub fn arc4random_uniform(__upper_bound: u32) -> u32; - pub fn arc4random_buf(__buf: *mut ::c_void, __n: ::size_t); + pub fn arc4random_buf(__buf: *mut c_void, __n: size_t); - pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; + pub fn reallocarray(ptr: *mut c_void, nmemb: size_t, size: size_t) -> *mut c_void; - pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int; + pub fn pthread_getcpuclockid(thread: crate::pthread_t, clk_id: *mut crate::clockid_t) -> c_int; - pub fn dirname(path: *const ::c_char) -> *mut ::c_char; - pub fn basename(path: *const ::c_char) -> *mut ::c_char; + pub fn dirname(path: *const c_char) -> *mut c_char; + pub fn basename(path: *const c_char) -> *mut c_char; pub fn getopt_long( - argc: ::c_int, + argc: c_int, argv: *const *mut c_char, optstring: *const c_char, longopts: *const option, - longindex: *mut ::c_int, - ) -> ::c_int; + longindex: *mut c_int, + ) -> c_int; pub fn sync(); - pub fn syncfs(fd: ::c_int) -> ::c_int; + pub fn syncfs(fd: c_int) -> c_int; pub fn memmem( - haystack: *const ::c_void, - haystacklen: ::size_t, - needle: *const ::c_void, - needlelen: ::size_t, - ) -> *mut ::c_void; + haystack: *const c_void, + haystacklen: size_t, + needle: *const c_void, + needlelen: size_t, + ) -> *mut c_void; pub fn fread_unlocked( - buf: *mut ::c_void, - size: ::size_t, - nobj: ::size_t, - stream: *mut ::FILE, - ) -> ::size_t; + buf: *mut c_void, + size: size_t, + nobj: size_t, + stream: *mut crate::FILE, + ) -> size_t; pub fn fwrite_unlocked( - buf: *const ::c_void, - size: ::size_t, - nobj: ::size_t, - stream: *mut ::FILE, - ) -> ::size_t; - pub fn fflush_unlocked(stream: *mut ::FILE) -> ::c_int; - pub fn fgets_unlocked(buf: *mut ::c_char, size: ::c_int, stream: *mut ::FILE) -> *mut ::c_char; + buf: *const c_void, + size: size_t, + nobj: size_t, + stream: *mut crate::FILE, + ) -> size_t; + pub fn fflush_unlocked(stream: *mut crate::FILE) -> c_int; + pub fn fgets_unlocked(buf: *mut c_char, size: c_int, stream: *mut crate::FILE) -> *mut c_char; - pub fn klogctl(syslog_type: ::c_int, bufp: *mut ::c_char, len: ::c_int) -> ::c_int; + pub fn klogctl(syslog_type: c_int, bufp: *mut c_char, len: c_int) -> c_int; - pub fn memfd_create(name: *const ::c_char, flags: ::c_uint) -> ::c_int; + pub fn memfd_create(name: *const c_char, flags: c_uint) -> c_int; pub fn renameat2( - olddirfd: ::c_int, - oldpath: *const ::c_char, - newdirfd: ::c_int, - newpath: *const ::c_char, - flags: ::c_uint, - ) -> ::c_int; + olddirfd: c_int, + oldpath: *const c_char, + newdirfd: c_int, + newpath: *const c_char, + flags: c_uint, + ) -> c_int; } cfg_if! { @@ -4187,26 +4170,26 @@ cfg_if! { } impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { + pub unsafe fn si_addr(&self) -> *mut c_void { #[repr(C)] struct siginfo_sigfault { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - si_addr: *mut ::c_void, + _si_signo: c_int, + _si_errno: c_int, + _si_code: c_int, + si_addr: *mut c_void, } (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr } - pub unsafe fn si_value(&self) -> ::sigval { + pub unsafe fn si_value(&self) -> crate::sigval { #[repr(C)] struct siginfo_timer { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - _si_tid: ::c_int, - _si_overrun: ::c_int, - si_sigval: ::sigval, + _si_signo: c_int, + _si_errno: c_int, + _si_code: c_int, + _si_tid: c_int, + _si_overrun: c_int, + si_sigval: crate::sigval, } (*(self as *const siginfo_t as *const siginfo_timer)).si_sigval } @@ -4215,14 +4198,14 @@ impl siginfo_t { // Internal, for casts to access union fields #[repr(C)] struct sifields_sigchld { - si_pid: ::pid_t, - si_uid: ::uid_t, - si_status: ::c_int, - si_utime: ::c_long, - si_stime: ::c_long, + si_pid: crate::pid_t, + si_uid: crate::uid_t, + si_status: c_int, + si_utime: c_long, + si_stime: c_long, } -impl ::Copy for sifields_sigchld {} -impl ::Clone for sifields_sigchld { +impl Copy for sifields_sigchld {} +impl Clone for sifields_sigchld { fn clone(&self) -> sifields_sigchld { *self } @@ -4231,7 +4214,7 @@ impl ::Clone for sifields_sigchld { // Internal, for casts to access union fields #[repr(C)] union sifields { - _align_pointer: *mut ::c_void, + _align_pointer: *mut c_void, sigchld: sifields_sigchld, } @@ -4240,7 +4223,7 @@ union sifields { // sifields vary on 32-bit and 64-bit architectures. #[repr(C)] struct siginfo_f { - _siginfo_base: [::c_int; 3], + _siginfo_base: [c_int; 3], sifields: sifields, } @@ -4249,23 +4232,23 @@ impl siginfo_t { &(*(self as *const siginfo_t as *const siginfo_f)).sifields } - pub unsafe fn si_pid(&self) -> ::pid_t { + pub unsafe fn si_pid(&self) -> crate::pid_t { self.sifields().sigchld.si_pid } - pub unsafe fn si_uid(&self) -> ::uid_t { + pub unsafe fn si_uid(&self) -> crate::uid_t { self.sifields().sigchld.si_uid } - pub unsafe fn si_status(&self) -> ::c_int { + pub unsafe fn si_status(&self) -> c_int { self.sifields().sigchld.si_status } - pub unsafe fn si_utime(&self) -> ::c_long { + pub unsafe fn si_utime(&self) -> c_long { self.sifields().sigchld.si_utime } - pub unsafe fn si_stime(&self) -> ::c_long { + pub unsafe fn si_stime(&self) -> c_long { self.sifields().sigchld.si_stime } } diff --git a/src/unix/linux_like/emscripten/lfs64.rs b/src/unix/linux_like/emscripten/lfs64.rs index c4cdfb849a2ff..70d10dba393b1 100644 --- a/src/unix/linux_like/emscripten/lfs64.rs +++ b/src/unix/linux_like/emscripten/lfs64.rs @@ -1,103 +1,105 @@ +use crate::{c_char, c_int, c_void, off64_t, size_t, ssize_t}; + // In-sync with ../linux/musl/lfs64.rs except for fallocate64, prlimit64 and sendfile64 #[inline] -pub unsafe extern "C" fn creat64(path: *const ::c_char, mode: ::mode_t) -> ::c_int { - ::creat(path, mode) +pub unsafe extern "C" fn creat64(path: *const c_char, mode: crate::mode_t) -> c_int { + crate::creat(path, mode) } #[inline] -pub unsafe extern "C" fn fgetpos64(stream: *mut ::FILE, pos: *mut ::fpos64_t) -> ::c_int { - ::fgetpos(stream, pos as *mut _) +pub unsafe extern "C" fn fgetpos64(stream: *mut crate::FILE, pos: *mut crate::fpos64_t) -> c_int { + crate::fgetpos(stream, pos as *mut _) } #[inline] -pub unsafe extern "C" fn fopen64(pathname: *const ::c_char, mode: *const ::c_char) -> *mut ::FILE { - ::fopen(pathname, mode) +pub unsafe extern "C" fn fopen64(pathname: *const c_char, mode: *const c_char) -> *mut crate::FILE { + crate::fopen(pathname, mode) } #[inline] pub unsafe extern "C" fn freopen64( - pathname: *const ::c_char, - mode: *const ::c_char, - stream: *mut ::FILE, -) -> *mut ::FILE { - ::freopen(pathname, mode, stream) + pathname: *const c_char, + mode: *const c_char, + stream: *mut crate::FILE, +) -> *mut crate::FILE { + crate::freopen(pathname, mode, stream) } #[inline] pub unsafe extern "C" fn fseeko64( - stream: *mut ::FILE, - offset: ::off64_t, - whence: ::c_int, -) -> ::c_int { - ::fseeko(stream, offset, whence) + stream: *mut crate::FILE, + offset: off64_t, + whence: c_int, +) -> c_int { + crate::fseeko(stream, offset, whence) } #[inline] -pub unsafe extern "C" fn fsetpos64(stream: *mut ::FILE, pos: *const ::fpos64_t) -> ::c_int { - ::fsetpos(stream, pos as *mut _) +pub unsafe extern "C" fn fsetpos64(stream: *mut crate::FILE, pos: *const crate::fpos64_t) -> c_int { + crate::fsetpos(stream, pos as *mut _) } #[inline] -pub unsafe extern "C" fn fstat64(fildes: ::c_int, buf: *mut ::stat64) -> ::c_int { - ::fstat(fildes, buf as *mut _) +pub unsafe extern "C" fn fstat64(fildes: c_int, buf: *mut crate::stat64) -> c_int { + crate::fstat(fildes, buf as *mut _) } #[inline] pub unsafe extern "C" fn fstatat64( - fd: ::c_int, - path: *const ::c_char, - buf: *mut ::stat64, - flag: ::c_int, -) -> ::c_int { - ::fstatat(fd, path, buf as *mut _, flag) + fd: c_int, + path: *const c_char, + buf: *mut crate::stat64, + flag: c_int, +) -> c_int { + crate::fstatat(fd, path, buf as *mut _, flag) } #[inline] -pub unsafe extern "C" fn fstatfs64(fd: ::c_int, buf: *mut ::statfs64) -> ::c_int { - ::fstatfs(fd, buf as *mut _) +pub unsafe extern "C" fn fstatfs64(fd: c_int, buf: *mut crate::statfs64) -> c_int { + crate::fstatfs(fd, buf as *mut _) } #[inline] -pub unsafe extern "C" fn fstatvfs64(fd: ::c_int, buf: *mut ::statvfs64) -> ::c_int { - ::fstatvfs(fd, buf as *mut _) +pub unsafe extern "C" fn fstatvfs64(fd: c_int, buf: *mut crate::statvfs64) -> c_int { + crate::fstatvfs(fd, buf as *mut _) } #[inline] -pub unsafe extern "C" fn ftello64(stream: *mut ::FILE) -> ::off64_t { - ::ftello(stream) +pub unsafe extern "C" fn ftello64(stream: *mut crate::FILE) -> off64_t { + crate::ftello(stream) } #[inline] -pub unsafe extern "C" fn ftruncate64(fd: ::c_int, length: ::off64_t) -> ::c_int { - ::ftruncate(fd, length) +pub unsafe extern "C" fn ftruncate64(fd: c_int, length: off64_t) -> c_int { + crate::ftruncate(fd, length) } #[inline] -pub unsafe extern "C" fn getrlimit64(resource: ::c_int, rlim: *mut ::rlimit64) -> ::c_int { - ::getrlimit(resource, rlim as *mut _) +pub unsafe extern "C" fn getrlimit64(resource: c_int, rlim: *mut crate::rlimit64) -> c_int { + crate::getrlimit(resource, rlim as *mut _) } #[inline] -pub unsafe extern "C" fn lseek64(fd: ::c_int, offset: ::off64_t, whence: ::c_int) -> ::off64_t { - ::lseek(fd, offset, whence) +pub unsafe extern "C" fn lseek64(fd: c_int, offset: off64_t, whence: c_int) -> off64_t { + crate::lseek(fd, offset, whence) } #[inline] -pub unsafe extern "C" fn lstat64(path: *const ::c_char, buf: *mut ::stat64) -> ::c_int { - ::lstat(path, buf as *mut _) +pub unsafe extern "C" fn lstat64(path: *const c_char, buf: *mut crate::stat64) -> c_int { + crate::lstat(path, buf as *mut _) } #[inline] pub unsafe extern "C" fn mmap64( - addr: *mut ::c_void, - length: ::size_t, - prot: ::c_int, - flags: ::c_int, - fd: ::c_int, - offset: ::off64_t, -) -> *mut ::c_void { - ::mmap(addr, length, prot, flags, fd, offset) + addr: *mut c_void, + length: size_t, + prot: c_int, + flags: c_int, + fd: c_int, + offset: off64_t, +) -> *mut c_void { + crate::mmap(addr, length, prot, flags, fd, offset) } // These functions are variadic in the C ABI since the `mode` argument is "optional". Variadic @@ -106,107 +108,103 @@ pub unsafe extern "C" fn mmap64( // // These aliases are mostly fine though, neither function takes a LFS64-namespaced type as an // argument, nor do their names clash with any declared types. -pub use {open as open64, openat as openat64}; +pub use crate::{open as open64, openat as openat64}; #[inline] pub unsafe extern "C" fn posix_fadvise64( - fd: ::c_int, - offset: ::off64_t, - len: ::off64_t, - advice: ::c_int, -) -> ::c_int { - ::posix_fadvise(fd, offset, len, advice) + fd: c_int, + offset: off64_t, + len: off64_t, + advice: c_int, +) -> c_int { + crate::posix_fadvise(fd, offset, len, advice) } #[inline] -pub unsafe extern "C" fn posix_fallocate64( - fd: ::c_int, - offset: ::off64_t, - len: ::off64_t, -) -> ::c_int { - ::posix_fallocate(fd, offset, len) +pub unsafe extern "C" fn posix_fallocate64(fd: c_int, offset: off64_t, len: off64_t) -> c_int { + crate::posix_fallocate(fd, offset, len) } #[inline] pub unsafe extern "C" fn pread64( - fd: ::c_int, - buf: *mut ::c_void, - count: ::size_t, - offset: ::off64_t, -) -> ::ssize_t { - ::pread(fd, buf, count, offset) + fd: c_int, + buf: *mut c_void, + count: size_t, + offset: off64_t, +) -> ssize_t { + crate::pread(fd, buf, count, offset) } #[inline] pub unsafe extern "C" fn preadv64( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, -) -> ::ssize_t { - ::preadv(fd, iov, iovcnt, offset) + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: off64_t, +) -> ssize_t { + crate::preadv(fd, iov, iovcnt, offset) } #[inline] pub unsafe extern "C" fn pwrite64( - fd: ::c_int, - buf: *const ::c_void, - count: ::size_t, - offset: ::off64_t, -) -> ::ssize_t { - ::pwrite(fd, buf, count, offset) + fd: c_int, + buf: *const c_void, + count: size_t, + offset: off64_t, +) -> ssize_t { + crate::pwrite(fd, buf, count, offset) } #[inline] pub unsafe extern "C" fn pwritev64( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, -) -> ::ssize_t { - ::pwritev(fd, iov, iovcnt, offset) + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: off64_t, +) -> ssize_t { + crate::pwritev(fd, iov, iovcnt, offset) } #[inline] -pub unsafe extern "C" fn readdir64(dirp: *mut ::DIR) -> *mut ::dirent64 { - ::readdir(dirp) as *mut _ +pub unsafe extern "C" fn readdir64(dirp: *mut crate::DIR) -> *mut crate::dirent64 { + crate::readdir(dirp) as *mut _ } #[inline] pub unsafe extern "C" fn readdir64_r( - dirp: *mut ::DIR, - entry: *mut ::dirent64, - result: *mut *mut ::dirent64, -) -> ::c_int { - ::readdir_r(dirp, entry as *mut _, result as *mut _) + dirp: *mut crate::DIR, + entry: *mut crate::dirent64, + result: *mut *mut crate::dirent64, +) -> c_int { + crate::readdir_r(dirp, entry as *mut _, result as *mut _) } #[inline] -pub unsafe extern "C" fn setrlimit64(resource: ::c_int, rlim: *const ::rlimit64) -> ::c_int { - ::setrlimit(resource, rlim as *mut _) +pub unsafe extern "C" fn setrlimit64(resource: c_int, rlim: *const crate::rlimit64) -> c_int { + crate::setrlimit(resource, rlim as *mut _) } #[inline] -pub unsafe extern "C" fn stat64(pathname: *const ::c_char, statbuf: *mut ::stat64) -> ::c_int { - ::stat(pathname, statbuf as *mut _) +pub unsafe extern "C" fn stat64(pathname: *const c_char, statbuf: *mut crate::stat64) -> c_int { + crate::stat(pathname, statbuf as *mut _) } #[inline] -pub unsafe extern "C" fn statfs64(pathname: *const ::c_char, buf: *mut ::statfs64) -> ::c_int { - ::statfs(pathname, buf as *mut _) +pub unsafe extern "C" fn statfs64(pathname: *const c_char, buf: *mut crate::statfs64) -> c_int { + crate::statfs(pathname, buf as *mut _) } #[inline] -pub unsafe extern "C" fn statvfs64(path: *const ::c_char, buf: *mut ::statvfs64) -> ::c_int { - ::statvfs(path, buf as *mut _) +pub unsafe extern "C" fn statvfs64(path: *const c_char, buf: *mut crate::statvfs64) -> c_int { + crate::statvfs(path, buf as *mut _) } #[inline] -pub unsafe extern "C" fn tmpfile64() -> *mut ::FILE { - ::tmpfile() +pub unsafe extern "C" fn tmpfile64() -> *mut crate::FILE { + crate::tmpfile() } #[inline] -pub unsafe extern "C" fn truncate64(path: *const ::c_char, length: ::off64_t) -> ::c_int { - ::truncate(path, length) +pub unsafe extern "C" fn truncate64(path: *const c_char, length: off64_t) -> c_int { + crate::truncate(path, length) } diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index e873a85cb9c03..32d19da2e2a49 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -1,3 +1,5 @@ +use crate::{c_double, c_int, c_short, c_uchar, c_uint, c_ushort, c_void, size_t, ssize_t}; + pub type c_char = i8; pub type wchar_t = i32; pub type useconds_t = u32; @@ -5,15 +7,15 @@ pub type dev_t = u32; pub type socklen_t = u32; pub type pthread_t = c_ulong; pub type mode_t = u32; -pub type shmatt_t = ::c_ulong; -pub type mqd_t = ::c_int; -pub type msgqnum_t = ::c_ulong; -pub type msglen_t = ::c_ulong; -pub type nfds_t = ::c_ulong; -pub type nl_item = ::c_int; -pub type idtype_t = ::c_uint; +pub type shmatt_t = c_ulong; +pub type mqd_t = c_int; +pub type msgqnum_t = c_ulong; +pub type msglen_t = c_ulong; +pub type nfds_t = c_ulong; +pub type nl_item = c_int; +pub type idtype_t = c_uint; pub type loff_t = i64; -pub type pthread_key_t = ::c_uint; +pub type pthread_key_t = c_uint; pub type clock_t = c_long; pub type time_t = i64; @@ -30,22 +32,22 @@ pub type c_long = i32; pub type c_ulong = u32; pub type nlink_t = u32; -pub type ino64_t = ::ino_t; -pub type off64_t = ::off_t; -pub type blkcnt64_t = ::blkcnt_t; -pub type rlim64_t = ::rlim_t; +pub type ino64_t = crate::ino_t; +pub type off64_t = off_t; +pub type blkcnt64_t = crate::blkcnt_t; +pub type rlim64_t = crate::rlim_t; -pub type rlimit64 = ::rlimit; -pub type flock64 = ::flock; -pub type stat64 = ::stat; -pub type statfs64 = ::statfs; -pub type statvfs64 = ::statvfs; -pub type dirent64 = ::dirent; +pub type rlimit64 = crate::rlimit; +pub type flock64 = crate::flock; +pub type stat64 = crate::stat; +pub type statfs64 = crate::statfs; +pub type statvfs64 = crate::statvfs; +pub type dirent64 = crate::dirent; #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum fpos64_t {} // FIXME: fill this out with a struct -impl ::Copy for fpos64_t {} -impl ::Clone for fpos64_t { +impl Copy for fpos64_t {} +impl Clone for fpos64_t { fn clone(&self) -> fpos64_t { *self } @@ -53,54 +55,54 @@ impl ::Clone for fpos64_t { s! { pub struct glob_t { - pub gl_pathc: ::size_t, + pub gl_pathc: size_t, pub gl_pathv: *mut *mut c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, + pub gl_offs: size_t, + pub gl_flags: c_int, + + __unused1: *mut c_void, + __unused2: *mut c_void, + __unused3: *mut c_void, + __unused4: *mut c_void, + __unused5: *mut c_void, } pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, + pub pw_name: *mut c_char, + pub pw_passwd: *mut c_char, + pub pw_uid: crate::uid_t, + pub pw_gid: crate::gid_t, + pub pw_gecos: *mut c_char, + pub pw_dir: *mut c_char, + pub pw_shell: *mut c_char, } pub struct spwd { - pub sp_namp: *mut ::c_char, - pub sp_pwdp: *mut ::c_char, - pub sp_lstchg: ::c_long, - pub sp_min: ::c_long, - pub sp_max: ::c_long, - pub sp_warn: ::c_long, - pub sp_inact: ::c_long, - pub sp_expire: ::c_long, - pub sp_flag: ::c_ulong, + pub sp_namp: *mut c_char, + pub sp_pwdp: *mut c_char, + pub sp_lstchg: c_long, + pub sp_min: c_long, + pub sp_max: c_long, + pub sp_warn: c_long, + pub sp_inact: c_long, + pub sp_expire: c_long, + pub sp_flag: c_ulong, } 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, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + __f_unused: c_int, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct signalfd_siginfo { @@ -129,7 +131,7 @@ s! { } pub struct fsid_t { - __val: [::c_int; 2], + __val: [c_int; 2], } pub struct cpu_set_t { @@ -137,64 +139,64 @@ s! { } pub struct if_nameindex { - pub if_index: ::c_uint, - pub if_name: *mut ::c_char, + pub if_index: c_uint, + pub if_name: *mut c_char, } // System V IPC pub struct msginfo { - pub msgpool: ::c_int, - pub msgmap: ::c_int, - pub msgmax: ::c_int, - pub msgmnb: ::c_int, - pub msgmni: ::c_int, - pub msgssz: ::c_int, - pub msgtql: ::c_int, - pub msgseg: ::c_ushort, + pub msgpool: c_int, + pub msgmap: c_int, + pub msgmax: c_int, + pub msgmnb: c_int, + pub msgmni: c_int, + pub msgssz: c_int, + pub msgtql: c_int, + pub msgseg: c_ushort, } pub struct sembuf { - pub sem_num: ::c_ushort, - pub sem_op: ::c_short, - pub sem_flg: ::c_short, + pub sem_num: c_ushort, + pub sem_op: c_short, + pub sem_flg: c_short, } pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, + pub sa_flags: c_int, + pub sa_restorer: Option, } 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_int, - __unused1: ::c_long, - __unused2: ::c_long, + pub __ipc_perm_key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub __seq: c_int, + __unused1: c_long, + __unused2: c_long, } pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - pub __c_ispeed: ::speed_t, - pub __c_ospeed: ::speed_t, + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; crate::NCCS], + pub __c_ispeed: crate::speed_t, + pub __c_ospeed: crate::speed_t, } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct pthread_attr_t { @@ -202,183 +204,183 @@ s! { } pub struct sigset_t { - __val: [::c_ulong; 32], + __val: [c_ulong; 32], } pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - pub msg_flags: ::c_int, + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: c_int, + pub msg_control: *mut c_void, + pub msg_controllen: crate::socklen_t, + pub msg_flags: c_int, } pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub cmsg_len: crate::socklen_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } pub struct sem_t { - __val: [::c_int; 4], + __val: [c_int; 4], } pub struct stat { - pub st_dev: ::dev_t, + pub st_dev: crate::dev_t, #[cfg(not(emscripten_new_stat_abi))] - __st_dev_padding: ::c_int, + __st_dev_padding: c_int, #[cfg(not(emscripten_new_stat_abi))] - __st_ino_truncated: ::c_long, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, + __st_ino_truncated: c_long, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, #[cfg(not(emscripten_new_stat_abi))] - __st_rdev_padding: ::c_int, - 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, - pub st_ino: ::ino_t, + __st_rdev_padding: c_int, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_ino: crate::ino_t, } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::c_ulong, - __pad1: ::c_ulong, - __pad2: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: c_ulong, + __pad1: c_ulong, + __pad2: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, + pub msg_perm: crate::ipc_perm, + pub msg_stime: crate::time_t, + pub msg_rtime: crate::time_t, + pub msg_ctime: crate::time_t, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __pad1: c_ulong, + __pad2: c_ulong, } pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], + pub f_type: c_ulong, + pub f_bsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_ulong, + pub f_frsize: c_ulong, + pub f_flags: c_ulong, + pub f_spare: [c_ulong; 4], } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, + pub _pad: [c_int; 29], _align: [usize; 0], } pub struct arpd_request { - pub req: ::c_ushort, + pub req: c_ushort, pub ip: u32, - pub dev: ::c_ulong, - pub stamp: ::c_ulong, - pub updated: ::c_ulong, - pub ha: [::c_uchar; ::MAX_ADDR_LEN], + pub dev: c_ulong, + pub stamp: c_ulong, + pub updated: c_ulong, + pub ha: [c_uchar; crate::MAX_ADDR_LEN], } #[allow(missing_debug_implementations)] #[repr(align(4))] pub struct pthread_mutex_t { - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], + size: [u8; crate::__SIZEOF_PTHREAD_MUTEX_T], } #[repr(align(4))] pub struct pthread_rwlock_t { - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], + size: [u8; crate::__SIZEOF_PTHREAD_RWLOCK_T], } #[repr(align(4))] pub struct pthread_mutexattr_t { - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + size: [u8; crate::__SIZEOF_PTHREAD_MUTEXATTR_T], } #[repr(align(4))] pub struct pthread_rwlockattr_t { - size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], + size: [u8; crate::__SIZEOF_PTHREAD_RWLOCKATTR_T], } #[repr(align(4))] pub struct pthread_condattr_t { - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + size: [u8; crate::__SIZEOF_PTHREAD_CONDATTR_T], } } s_no_extra_traits! { pub struct dirent { - pub d_ino: ::ino_t, - pub d_off: ::off_t, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], + pub d_ino: crate::ino_t, + pub d_off: off_t, + pub d_reclen: c_ushort, + pub d_type: c_uchar, + pub d_name: [c_char; 256], } pub struct sysinfo { - pub uptime: ::c_ulong, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub __reserved: [::c_char; 256], + pub uptime: c_ulong, + pub loads: [c_ulong; 3], + pub totalram: c_ulong, + pub freeram: c_ulong, + pub sharedram: c_ulong, + pub bufferram: c_ulong, + pub totalswap: c_ulong, + pub freeswap: c_ulong, + pub procs: c_ushort, + pub pad: c_ushort, + pub totalhigh: c_ulong, + pub freehigh: c_ulong, + pub mem_unit: c_uint, + pub __reserved: [c_char; 256], } pub struct mq_attr { - pub mq_flags: ::c_long, - pub mq_maxmsg: ::c_long, - pub mq_msgsize: ::c_long, - pub mq_curmsgs: ::c_long, - pad: [::c_long; 4], + pub mq_flags: c_long, + pub mq_maxmsg: c_long, + pub mq_msgsize: c_long, + pub mq_curmsgs: c_long, + pad: [c_long; 4], } #[cfg_attr(target_pointer_width = "32", repr(align(4)))] #[cfg_attr(target_pointer_width = "64", repr(align(8)))] pub struct pthread_cond_t { - size: [u8; ::__SIZEOF_PTHREAD_COND_T], + size: [u8; crate::__SIZEOF_PTHREAD_COND_T], } #[allow(missing_debug_implementations)] @@ -404,8 +406,8 @@ cfg_if! { } } impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -415,8 +417,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -448,8 +450,8 @@ cfg_if! { } } impl Eq for sysinfo {} - impl ::fmt::Debug for sysinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sysinfo { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sysinfo") .field("uptime", &self.uptime) .field("loads", &self.loads) @@ -468,8 +470,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sysinfo { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sysinfo { + fn hash(&self, state: &mut H) { self.uptime.hash(state); self.loads.hash(state); self.totalram.hash(state); @@ -496,8 +498,8 @@ cfg_if! { } } impl Eq for mq_attr {} - impl ::fmt::Debug for mq_attr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mq_attr { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("mq_attr") .field("mq_flags", &self.mq_flags) .field("mq_maxmsg", &self.mq_maxmsg) @@ -506,8 +508,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for mq_attr { + fn hash(&self, state: &mut H) { self.mq_flags.hash(state); self.mq_maxmsg.hash(state); self.mq_msgsize.hash(state); @@ -521,309 +523,309 @@ cfg_if! { } } impl Eq for pthread_cond_t {} - impl ::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_cond_t") // FIXME: .field("size", &self.size) .finish() } } - impl ::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { self.size.hash(state); } } } } -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MS_NOUSER: ::c_ulong = 0x80000000; -pub const MS_RMT_MASK: ::c_ulong = 0x02800051; - -pub const ABDAY_1: ::nl_item = 0x20000; -pub const ABDAY_2: ::nl_item = 0x20001; -pub const ABDAY_3: ::nl_item = 0x20002; -pub const ABDAY_4: ::nl_item = 0x20003; -pub const ABDAY_5: ::nl_item = 0x20004; -pub const ABDAY_6: ::nl_item = 0x20005; -pub const ABDAY_7: ::nl_item = 0x20006; - -pub const DAY_1: ::nl_item = 0x20007; -pub const DAY_2: ::nl_item = 0x20008; -pub const DAY_3: ::nl_item = 0x20009; -pub const DAY_4: ::nl_item = 0x2000A; -pub const DAY_5: ::nl_item = 0x2000B; -pub const DAY_6: ::nl_item = 0x2000C; -pub const DAY_7: ::nl_item = 0x2000D; - -pub const ABMON_1: ::nl_item = 0x2000E; -pub const ABMON_2: ::nl_item = 0x2000F; -pub const ABMON_3: ::nl_item = 0x20010; -pub const ABMON_4: ::nl_item = 0x20011; -pub const ABMON_5: ::nl_item = 0x20012; -pub const ABMON_6: ::nl_item = 0x20013; -pub const ABMON_7: ::nl_item = 0x20014; -pub const ABMON_8: ::nl_item = 0x20015; -pub const ABMON_9: ::nl_item = 0x20016; -pub const ABMON_10: ::nl_item = 0x20017; -pub const ABMON_11: ::nl_item = 0x20018; -pub const ABMON_12: ::nl_item = 0x20019; - -pub const MON_1: ::nl_item = 0x2001A; -pub const MON_2: ::nl_item = 0x2001B; -pub const MON_3: ::nl_item = 0x2001C; -pub const MON_4: ::nl_item = 0x2001D; -pub const MON_5: ::nl_item = 0x2001E; -pub const MON_6: ::nl_item = 0x2001F; -pub const MON_7: ::nl_item = 0x20020; -pub const MON_8: ::nl_item = 0x20021; -pub const MON_9: ::nl_item = 0x20022; -pub const MON_10: ::nl_item = 0x20023; -pub const MON_11: ::nl_item = 0x20024; -pub const MON_12: ::nl_item = 0x20025; - -pub const AM_STR: ::nl_item = 0x20026; -pub const PM_STR: ::nl_item = 0x20027; - -pub const D_T_FMT: ::nl_item = 0x20028; -pub const D_FMT: ::nl_item = 0x20029; -pub const T_FMT: ::nl_item = 0x2002A; -pub const T_FMT_AMPM: ::nl_item = 0x2002B; - -pub const ERA: ::nl_item = 0x2002C; -pub const ERA_D_FMT: ::nl_item = 0x2002E; -pub const ALT_DIGITS: ::nl_item = 0x2002F; -pub const ERA_D_T_FMT: ::nl_item = 0x20030; -pub const ERA_T_FMT: ::nl_item = 0x20031; - -pub const CODESET: ::nl_item = 14; - -pub const CRNCYSTR: ::nl_item = 0x4000F; - -pub const RUSAGE_THREAD: ::c_int = 1; -pub const RUSAGE_CHILDREN: ::c_int = -1; - -pub const RADIXCHAR: ::nl_item = 0x10000; -pub const THOUSEP: ::nl_item = 0x10001; - -pub const YESEXPR: ::nl_item = 0x50000; -pub const NOEXPR: ::nl_item = 0x50001; -pub const YESSTR: ::nl_item = 0x50002; -pub const NOSTR: ::nl_item = 0x50003; - -pub const FILENAME_MAX: ::c_uint = 4096; -pub const L_tmpnam: ::c_uint = 20; -pub const _PC_LINK_MAX: ::c_int = 0; -pub const _PC_MAX_CANON: ::c_int = 1; -pub const _PC_MAX_INPUT: ::c_int = 2; -pub const _PC_NAME_MAX: ::c_int = 3; -pub const _PC_PATH_MAX: ::c_int = 4; -pub const _PC_PIPE_BUF: ::c_int = 5; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 6; -pub const _PC_NO_TRUNC: ::c_int = 7; -pub const _PC_VDISABLE: ::c_int = 8; -pub const _PC_SYNC_IO: ::c_int = 9; -pub const _PC_ASYNC_IO: ::c_int = 10; -pub const _PC_PRIO_IO: ::c_int = 11; -pub const _PC_SOCK_MAXBUF: ::c_int = 12; -pub const _PC_FILESIZEBITS: ::c_int = 13; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; -pub const _PC_REC_XFER_ALIGN: ::c_int = 17; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 18; -pub const _PC_SYMLINK_MAX: ::c_int = 19; -pub const _PC_2_SYMLINKS: ::c_int = 20; - -pub const _SC_ARG_MAX: ::c_int = 0; -pub const _SC_CHILD_MAX: ::c_int = 1; -pub const _SC_CLK_TCK: ::c_int = 2; -pub const _SC_NGROUPS_MAX: ::c_int = 3; -pub const _SC_OPEN_MAX: ::c_int = 4; -pub const _SC_STREAM_MAX: ::c_int = 5; -pub const _SC_TZNAME_MAX: ::c_int = 6; -pub const _SC_JOB_CONTROL: ::c_int = 7; -pub const _SC_SAVED_IDS: ::c_int = 8; -pub const _SC_REALTIME_SIGNALS: ::c_int = 9; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 10; -pub const _SC_TIMERS: ::c_int = 11; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 12; -pub const _SC_PRIORITIZED_IO: ::c_int = 13; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 14; -pub const _SC_FSYNC: ::c_int = 15; -pub const _SC_MAPPED_FILES: ::c_int = 16; -pub const _SC_MEMLOCK: ::c_int = 17; -pub const _SC_MEMLOCK_RANGE: ::c_int = 18; -pub const _SC_MEMORY_PROTECTION: ::c_int = 19; -pub const _SC_MESSAGE_PASSING: ::c_int = 20; -pub const _SC_SEMAPHORES: ::c_int = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 22; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 23; -pub const _SC_AIO_MAX: ::c_int = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 25; -pub const _SC_DELAYTIMER_MAX: ::c_int = 26; -pub const _SC_MQ_OPEN_MAX: ::c_int = 27; -pub const _SC_MQ_PRIO_MAX: ::c_int = 28; -pub const _SC_VERSION: ::c_int = 29; -pub const _SC_PAGESIZE: ::c_int = 30; -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_RTSIG_MAX: ::c_int = 31; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 32; -pub const _SC_SEM_VALUE_MAX: ::c_int = 33; -pub const _SC_SIGQUEUE_MAX: ::c_int = 34; -pub const _SC_TIMER_MAX: ::c_int = 35; -pub const _SC_BC_BASE_MAX: ::c_int = 36; -pub const _SC_BC_DIM_MAX: ::c_int = 37; -pub const _SC_BC_SCALE_MAX: ::c_int = 38; -pub const _SC_BC_STRING_MAX: ::c_int = 39; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 40; -pub const _SC_EXPR_NEST_MAX: ::c_int = 42; -pub const _SC_LINE_MAX: ::c_int = 43; -pub const _SC_RE_DUP_MAX: ::c_int = 44; -pub const _SC_2_VERSION: ::c_int = 46; -pub const _SC_2_C_BIND: ::c_int = 47; -pub const _SC_2_C_DEV: ::c_int = 48; -pub const _SC_2_FORT_DEV: ::c_int = 49; -pub const _SC_2_FORT_RUN: ::c_int = 50; -pub const _SC_2_SW_DEV: ::c_int = 51; -pub const _SC_2_LOCALEDEF: ::c_int = 52; -pub const _SC_UIO_MAXIOV: ::c_int = 60; -pub const _SC_IOV_MAX: ::c_int = 60; -pub const _SC_THREADS: ::c_int = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 68; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 69; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 70; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 71; -pub const _SC_TTY_NAME_MAX: ::c_int = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 73; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 74; -pub const _SC_THREAD_STACK_MIN: ::c_int = 75; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 76; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 79; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 80; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 81; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 82; -pub const _SC_NPROCESSORS_CONF: ::c_int = 83; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 84; -pub const _SC_PHYS_PAGES: ::c_int = 85; -pub const _SC_AVPHYS_PAGES: ::c_int = 86; -pub const _SC_ATEXIT_MAX: ::c_int = 87; -pub const _SC_PASS_MAX: ::c_int = 88; -pub const _SC_XOPEN_VERSION: ::c_int = 89; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 90; -pub const _SC_XOPEN_UNIX: ::c_int = 91; -pub const _SC_XOPEN_CRYPT: ::c_int = 92; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 93; -pub const _SC_XOPEN_SHM: ::c_int = 94; -pub const _SC_2_CHAR_TERM: ::c_int = 95; -pub const _SC_2_UPE: ::c_int = 97; -pub const _SC_XOPEN_XPG2: ::c_int = 98; -pub const _SC_XOPEN_XPG3: ::c_int = 99; -pub const _SC_XOPEN_XPG4: ::c_int = 100; -pub const _SC_NZERO: ::c_int = 109; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 125; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 126; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 128; -pub const _SC_XOPEN_LEGACY: ::c_int = 129; -pub const _SC_XOPEN_REALTIME: ::c_int = 130; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 131; -pub const _SC_ADVISORY_INFO: ::c_int = 132; -pub const _SC_BARRIERS: ::c_int = 133; -pub const _SC_CLOCK_SELECTION: ::c_int = 137; -pub const _SC_CPUTIME: ::c_int = 138; -pub const _SC_THREAD_CPUTIME: ::c_int = 139; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 149; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 153; -pub const _SC_SPIN_LOCKS: ::c_int = 154; -pub const _SC_REGEXP: ::c_int = 155; -pub const _SC_SHELL: ::c_int = 157; -pub const _SC_SPAWN: ::c_int = 159; -pub const _SC_SPORADIC_SERVER: ::c_int = 160; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 161; -pub const _SC_TIMEOUTS: ::c_int = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 165; -pub const _SC_2_PBS: ::c_int = 168; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 169; -pub const _SC_2_PBS_LOCATE: ::c_int = 170; -pub const _SC_2_PBS_MESSAGE: ::c_int = 171; -pub const _SC_2_PBS_TRACK: ::c_int = 172; -pub const _SC_SYMLOOP_MAX: ::c_int = 173; -pub const _SC_STREAMS: ::c_int = 174; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 175; -pub const _SC_V6_ILP32_OFF32: ::c_int = 176; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 177; -pub const _SC_V6_LP64_OFF64: ::c_int = 178; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 179; -pub const _SC_HOST_NAME_MAX: ::c_int = 180; -pub const _SC_TRACE: ::c_int = 181; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 182; -pub const _SC_TRACE_INHERIT: ::c_int = 183; -pub const _SC_TRACE_LOG: ::c_int = 184; -pub const _SC_IPV6: ::c_int = 235; -pub const _SC_RAW_SOCKETS: ::c_int = 236; -pub const _SC_V7_ILP32_OFF32: ::c_int = 237; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 238; -pub const _SC_V7_LP64_OFF64: ::c_int = 239; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 240; -pub const _SC_SS_REPL_MAX: ::c_int = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 242; -pub const _SC_TRACE_NAME_MAX: ::c_int = 243; -pub const _SC_TRACE_SYS_MAX: ::c_int = 244; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 245; -pub const _SC_XOPEN_STREAMS: ::c_int = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 248; - -pub const RLIM_SAVED_MAX: ::rlim_t = RLIM_INFINITY; -pub const RLIM_SAVED_CUR: ::rlim_t = RLIM_INFINITY; - -pub const GLOB_ERR: ::c_int = 1 << 0; -pub const GLOB_MARK: ::c_int = 1 << 1; -pub const GLOB_NOSORT: ::c_int = 1 << 2; -pub const GLOB_DOOFFS: ::c_int = 1 << 3; -pub const GLOB_NOCHECK: ::c_int = 1 << 4; -pub const GLOB_APPEND: ::c_int = 1 << 5; -pub const GLOB_NOESCAPE: ::c_int = 1 << 6; - -pub const GLOB_NOSPACE: ::c_int = 1; -pub const GLOB_ABORTED: ::c_int = 2; -pub const GLOB_NOMATCH: ::c_int = 3; - -pub const POSIX_MADV_NORMAL: ::c_int = 0; -pub const POSIX_MADV_RANDOM: ::c_int = 1; -pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_MADV_WILLNEED: ::c_int = 3; - -pub const AT_EACCESS: ::c_int = 0x200; +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MS_NOUSER: c_ulong = 0x80000000; +pub const MS_RMT_MASK: c_ulong = 0x02800051; + +pub const ABDAY_1: crate::nl_item = 0x20000; +pub const ABDAY_2: crate::nl_item = 0x20001; +pub const ABDAY_3: crate::nl_item = 0x20002; +pub const ABDAY_4: crate::nl_item = 0x20003; +pub const ABDAY_5: crate::nl_item = 0x20004; +pub const ABDAY_6: crate::nl_item = 0x20005; +pub const ABDAY_7: crate::nl_item = 0x20006; + +pub const DAY_1: crate::nl_item = 0x20007; +pub const DAY_2: crate::nl_item = 0x20008; +pub const DAY_3: crate::nl_item = 0x20009; +pub const DAY_4: crate::nl_item = 0x2000A; +pub const DAY_5: crate::nl_item = 0x2000B; +pub const DAY_6: crate::nl_item = 0x2000C; +pub const DAY_7: crate::nl_item = 0x2000D; + +pub const ABMON_1: crate::nl_item = 0x2000E; +pub const ABMON_2: crate::nl_item = 0x2000F; +pub const ABMON_3: crate::nl_item = 0x20010; +pub const ABMON_4: crate::nl_item = 0x20011; +pub const ABMON_5: crate::nl_item = 0x20012; +pub const ABMON_6: crate::nl_item = 0x20013; +pub const ABMON_7: crate::nl_item = 0x20014; +pub const ABMON_8: crate::nl_item = 0x20015; +pub const ABMON_9: crate::nl_item = 0x20016; +pub const ABMON_10: crate::nl_item = 0x20017; +pub const ABMON_11: crate::nl_item = 0x20018; +pub const ABMON_12: crate::nl_item = 0x20019; + +pub const MON_1: crate::nl_item = 0x2001A; +pub const MON_2: crate::nl_item = 0x2001B; +pub const MON_3: crate::nl_item = 0x2001C; +pub const MON_4: crate::nl_item = 0x2001D; +pub const MON_5: crate::nl_item = 0x2001E; +pub const MON_6: crate::nl_item = 0x2001F; +pub const MON_7: crate::nl_item = 0x20020; +pub const MON_8: crate::nl_item = 0x20021; +pub const MON_9: crate::nl_item = 0x20022; +pub const MON_10: crate::nl_item = 0x20023; +pub const MON_11: crate::nl_item = 0x20024; +pub const MON_12: crate::nl_item = 0x20025; + +pub const AM_STR: crate::nl_item = 0x20026; +pub const PM_STR: crate::nl_item = 0x20027; + +pub const D_T_FMT: crate::nl_item = 0x20028; +pub const D_FMT: crate::nl_item = 0x20029; +pub const T_FMT: crate::nl_item = 0x2002A; +pub const T_FMT_AMPM: crate::nl_item = 0x2002B; + +pub const ERA: crate::nl_item = 0x2002C; +pub const ERA_D_FMT: crate::nl_item = 0x2002E; +pub const ALT_DIGITS: crate::nl_item = 0x2002F; +pub const ERA_D_T_FMT: crate::nl_item = 0x20030; +pub const ERA_T_FMT: crate::nl_item = 0x20031; + +pub const CODESET: crate::nl_item = 14; + +pub const CRNCYSTR: crate::nl_item = 0x4000F; + +pub const RUSAGE_THREAD: c_int = 1; +pub const RUSAGE_CHILDREN: c_int = -1; + +pub const RADIXCHAR: crate::nl_item = 0x10000; +pub const THOUSEP: crate::nl_item = 0x10001; + +pub const YESEXPR: crate::nl_item = 0x50000; +pub const NOEXPR: crate::nl_item = 0x50001; +pub const YESSTR: crate::nl_item = 0x50002; +pub const NOSTR: crate::nl_item = 0x50003; + +pub const FILENAME_MAX: c_uint = 4096; +pub const L_tmpnam: c_uint = 20; +pub const _PC_LINK_MAX: c_int = 0; +pub const _PC_MAX_CANON: c_int = 1; +pub const _PC_MAX_INPUT: c_int = 2; +pub const _PC_NAME_MAX: c_int = 3; +pub const _PC_PATH_MAX: c_int = 4; +pub const _PC_PIPE_BUF: c_int = 5; +pub const _PC_CHOWN_RESTRICTED: c_int = 6; +pub const _PC_NO_TRUNC: c_int = 7; +pub const _PC_VDISABLE: c_int = 8; +pub const _PC_SYNC_IO: c_int = 9; +pub const _PC_ASYNC_IO: c_int = 10; +pub const _PC_PRIO_IO: c_int = 11; +pub const _PC_SOCK_MAXBUF: c_int = 12; +pub const _PC_FILESIZEBITS: c_int = 13; +pub const _PC_REC_INCR_XFER_SIZE: c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: c_int = 16; +pub const _PC_REC_XFER_ALIGN: c_int = 17; +pub const _PC_ALLOC_SIZE_MIN: c_int = 18; +pub const _PC_SYMLINK_MAX: c_int = 19; +pub const _PC_2_SYMLINKS: c_int = 20; + +pub const _SC_ARG_MAX: c_int = 0; +pub const _SC_CHILD_MAX: c_int = 1; +pub const _SC_CLK_TCK: c_int = 2; +pub const _SC_NGROUPS_MAX: c_int = 3; +pub const _SC_OPEN_MAX: c_int = 4; +pub const _SC_STREAM_MAX: c_int = 5; +pub const _SC_TZNAME_MAX: c_int = 6; +pub const _SC_JOB_CONTROL: c_int = 7; +pub const _SC_SAVED_IDS: c_int = 8; +pub const _SC_REALTIME_SIGNALS: c_int = 9; +pub const _SC_PRIORITY_SCHEDULING: c_int = 10; +pub const _SC_TIMERS: c_int = 11; +pub const _SC_ASYNCHRONOUS_IO: c_int = 12; +pub const _SC_PRIORITIZED_IO: c_int = 13; +pub const _SC_SYNCHRONIZED_IO: c_int = 14; +pub const _SC_FSYNC: c_int = 15; +pub const _SC_MAPPED_FILES: c_int = 16; +pub const _SC_MEMLOCK: c_int = 17; +pub const _SC_MEMLOCK_RANGE: c_int = 18; +pub const _SC_MEMORY_PROTECTION: c_int = 19; +pub const _SC_MESSAGE_PASSING: c_int = 20; +pub const _SC_SEMAPHORES: c_int = 21; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 22; +pub const _SC_AIO_LISTIO_MAX: c_int = 23; +pub const _SC_AIO_MAX: c_int = 24; +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 25; +pub const _SC_DELAYTIMER_MAX: c_int = 26; +pub const _SC_MQ_OPEN_MAX: c_int = 27; +pub const _SC_MQ_PRIO_MAX: c_int = 28; +pub const _SC_VERSION: c_int = 29; +pub const _SC_PAGESIZE: c_int = 30; +pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; +pub const _SC_RTSIG_MAX: c_int = 31; +pub const _SC_SEM_NSEMS_MAX: c_int = 32; +pub const _SC_SEM_VALUE_MAX: c_int = 33; +pub const _SC_SIGQUEUE_MAX: c_int = 34; +pub const _SC_TIMER_MAX: c_int = 35; +pub const _SC_BC_BASE_MAX: c_int = 36; +pub const _SC_BC_DIM_MAX: c_int = 37; +pub const _SC_BC_SCALE_MAX: c_int = 38; +pub const _SC_BC_STRING_MAX: c_int = 39; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 40; +pub const _SC_EXPR_NEST_MAX: c_int = 42; +pub const _SC_LINE_MAX: c_int = 43; +pub const _SC_RE_DUP_MAX: c_int = 44; +pub const _SC_2_VERSION: c_int = 46; +pub const _SC_2_C_BIND: c_int = 47; +pub const _SC_2_C_DEV: c_int = 48; +pub const _SC_2_FORT_DEV: c_int = 49; +pub const _SC_2_FORT_RUN: c_int = 50; +pub const _SC_2_SW_DEV: c_int = 51; +pub const _SC_2_LOCALEDEF: c_int = 52; +pub const _SC_UIO_MAXIOV: c_int = 60; +pub const _SC_IOV_MAX: c_int = 60; +pub const _SC_THREADS: c_int = 67; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 68; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 69; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 70; +pub const _SC_LOGIN_NAME_MAX: c_int = 71; +pub const _SC_TTY_NAME_MAX: c_int = 72; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 73; +pub const _SC_THREAD_KEYS_MAX: c_int = 74; +pub const _SC_THREAD_STACK_MIN: c_int = 75; +pub const _SC_THREAD_THREADS_MAX: c_int = 76; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 77; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 78; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 79; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 80; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 81; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 82; +pub const _SC_NPROCESSORS_CONF: c_int = 83; +pub const _SC_NPROCESSORS_ONLN: c_int = 84; +pub const _SC_PHYS_PAGES: c_int = 85; +pub const _SC_AVPHYS_PAGES: c_int = 86; +pub const _SC_ATEXIT_MAX: c_int = 87; +pub const _SC_PASS_MAX: c_int = 88; +pub const _SC_XOPEN_VERSION: c_int = 89; +pub const _SC_XOPEN_XCU_VERSION: c_int = 90; +pub const _SC_XOPEN_UNIX: c_int = 91; +pub const _SC_XOPEN_CRYPT: c_int = 92; +pub const _SC_XOPEN_ENH_I18N: c_int = 93; +pub const _SC_XOPEN_SHM: c_int = 94; +pub const _SC_2_CHAR_TERM: c_int = 95; +pub const _SC_2_UPE: c_int = 97; +pub const _SC_XOPEN_XPG2: c_int = 98; +pub const _SC_XOPEN_XPG3: c_int = 99; +pub const _SC_XOPEN_XPG4: c_int = 100; +pub const _SC_NZERO: c_int = 109; +pub const _SC_XBS5_ILP32_OFF32: c_int = 125; +pub const _SC_XBS5_ILP32_OFFBIG: c_int = 126; +pub const _SC_XBS5_LP64_OFF64: c_int = 127; +pub const _SC_XBS5_LPBIG_OFFBIG: c_int = 128; +pub const _SC_XOPEN_LEGACY: c_int = 129; +pub const _SC_XOPEN_REALTIME: c_int = 130; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 131; +pub const _SC_ADVISORY_INFO: c_int = 132; +pub const _SC_BARRIERS: c_int = 133; +pub const _SC_CLOCK_SELECTION: c_int = 137; +pub const _SC_CPUTIME: c_int = 138; +pub const _SC_THREAD_CPUTIME: c_int = 139; +pub const _SC_MONOTONIC_CLOCK: c_int = 149; +pub const _SC_READER_WRITER_LOCKS: c_int = 153; +pub const _SC_SPIN_LOCKS: c_int = 154; +pub const _SC_REGEXP: c_int = 155; +pub const _SC_SHELL: c_int = 157; +pub const _SC_SPAWN: c_int = 159; +pub const _SC_SPORADIC_SERVER: c_int = 160; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 161; +pub const _SC_TIMEOUTS: c_int = 164; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 165; +pub const _SC_2_PBS: c_int = 168; +pub const _SC_2_PBS_ACCOUNTING: c_int = 169; +pub const _SC_2_PBS_LOCATE: c_int = 170; +pub const _SC_2_PBS_MESSAGE: c_int = 171; +pub const _SC_2_PBS_TRACK: c_int = 172; +pub const _SC_SYMLOOP_MAX: c_int = 173; +pub const _SC_STREAMS: c_int = 174; +pub const _SC_2_PBS_CHECKPOINT: c_int = 175; +pub const _SC_V6_ILP32_OFF32: c_int = 176; +pub const _SC_V6_ILP32_OFFBIG: c_int = 177; +pub const _SC_V6_LP64_OFF64: c_int = 178; +pub const _SC_V6_LPBIG_OFFBIG: c_int = 179; +pub const _SC_HOST_NAME_MAX: c_int = 180; +pub const _SC_TRACE: c_int = 181; +pub const _SC_TRACE_EVENT_FILTER: c_int = 182; +pub const _SC_TRACE_INHERIT: c_int = 183; +pub const _SC_TRACE_LOG: c_int = 184; +pub const _SC_IPV6: c_int = 235; +pub const _SC_RAW_SOCKETS: c_int = 236; +pub const _SC_V7_ILP32_OFF32: c_int = 237; +pub const _SC_V7_ILP32_OFFBIG: c_int = 238; +pub const _SC_V7_LP64_OFF64: c_int = 239; +pub const _SC_V7_LPBIG_OFFBIG: c_int = 240; +pub const _SC_SS_REPL_MAX: c_int = 241; +pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 242; +pub const _SC_TRACE_NAME_MAX: c_int = 243; +pub const _SC_TRACE_SYS_MAX: c_int = 244; +pub const _SC_TRACE_USER_EVENT_MAX: c_int = 245; +pub const _SC_XOPEN_STREAMS: c_int = 246; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 247; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 248; + +pub const RLIM_SAVED_MAX: crate::rlim_t = RLIM_INFINITY; +pub const RLIM_SAVED_CUR: crate::rlim_t = RLIM_INFINITY; + +pub const GLOB_ERR: c_int = 1 << 0; +pub const GLOB_MARK: c_int = 1 << 1; +pub const GLOB_NOSORT: c_int = 1 << 2; +pub const GLOB_DOOFFS: c_int = 1 << 3; +pub const GLOB_NOCHECK: c_int = 1 << 4; +pub const GLOB_APPEND: c_int = 1 << 5; +pub const GLOB_NOESCAPE: c_int = 1 << 6; + +pub const GLOB_NOSPACE: c_int = 1; +pub const GLOB_ABORTED: c_int = 2; +pub const GLOB_NOMATCH: c_int = 3; + +pub const POSIX_MADV_NORMAL: c_int = 0; +pub const POSIX_MADV_RANDOM: c_int = 1; +pub const POSIX_MADV_SEQUENTIAL: c_int = 2; +pub const POSIX_MADV_WILLNEED: c_int = 3; + +pub const AT_EACCESS: c_int = 0x200; pub const S_IEXEC: mode_t = 0o0100; pub const S_IWRITE: mode_t = 0o0200; pub const S_IREAD: mode_t = 0o0400; -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; - -pub const ST_RDONLY: ::c_ulong = 1; -pub const ST_NOSUID: ::c_ulong = 2; -pub const ST_NODEV: ::c_ulong = 4; -pub const ST_NOEXEC: ::c_ulong = 8; -pub const ST_SYNCHRONOUS: ::c_ulong = 16; -pub const ST_MANDLOCK: ::c_ulong = 64; -pub const ST_WRITE: ::c_ulong = 128; -pub const ST_APPEND: ::c_ulong = 256; -pub const ST_IMMUTABLE: ::c_ulong = 512; -pub const ST_NOATIME: ::c_ulong = 1024; -pub const ST_NODIRATIME: ::c_ulong = 2048; - -pub const RTLD_NEXT: *mut ::c_void = -1i64 as *mut ::c_void; -pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; -pub const RTLD_NODELETE: ::c_int = 0x1000; -pub const RTLD_NOW: ::c_int = 0x2; +pub const F_LOCK: c_int = 1; +pub const F_TEST: c_int = 3; +pub const F_TLOCK: c_int = 2; +pub const F_ULOCK: c_int = 0; + +pub const ST_RDONLY: c_ulong = 1; +pub const ST_NOSUID: c_ulong = 2; +pub const ST_NODEV: c_ulong = 4; +pub const ST_NOEXEC: c_ulong = 8; +pub const ST_SYNCHRONOUS: c_ulong = 16; +pub const ST_MANDLOCK: c_ulong = 64; +pub const ST_WRITE: c_ulong = 128; +pub const ST_APPEND: c_ulong = 256; +pub const ST_IMMUTABLE: c_ulong = 512; +pub const ST_NOATIME: c_ulong = 1024; +pub const ST_NODIRATIME: c_ulong = 2048; + +pub const RTLD_NEXT: *mut c_void = -1i64 as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = 0i64 as *mut c_void; +pub const RTLD_NODELETE: c_int = 0x1000; +pub const RTLD_NOW: c_int = 0x2; pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { size: [0; __SIZEOF_PTHREAD_MUTEX_T], @@ -835,315 +837,315 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { size: [0; __SIZEOF_PTHREAD_RWLOCK_T], }; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; -pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0; -pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; +pub const PTHREAD_MUTEX_NORMAL: c_int = 0; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 1; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_NORMAL; +pub const PTHREAD_PROCESS_PRIVATE: c_int = 0; +pub const PTHREAD_PROCESS_SHARED: c_int = 1; pub const __SIZEOF_PTHREAD_COND_T: usize = 48; -pub const SCHED_OTHER: ::c_int = 0; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; -pub const SCHED_BATCH: ::c_int = 3; -pub const SCHED_IDLE: ::c_int = 5; - -pub const AF_IB: ::c_int = 27; -pub const AF_MPLS: ::c_int = 28; -pub const AF_NFC: ::c_int = 39; -pub const AF_VSOCK: ::c_int = 40; -pub const PF_IB: ::c_int = AF_IB; -pub const PF_MPLS: ::c_int = AF_MPLS; -pub const PF_NFC: ::c_int = AF_NFC; -pub const PF_VSOCK: ::c_int = AF_VSOCK; +pub const SCHED_OTHER: c_int = 0; +pub const SCHED_FIFO: c_int = 1; +pub const SCHED_RR: c_int = 2; +pub const SCHED_BATCH: c_int = 3; +pub const SCHED_IDLE: c_int = 5; + +pub const AF_IB: c_int = 27; +pub const AF_MPLS: c_int = 28; +pub const AF_NFC: c_int = 39; +pub const AF_VSOCK: c_int = 40; +pub const PF_IB: c_int = AF_IB; +pub const PF_MPLS: c_int = AF_MPLS; +pub const PF_NFC: c_int = AF_NFC; +pub const PF_VSOCK: c_int = AF_VSOCK; // System V IPC -pub const IPC_PRIVATE: ::key_t = 0; +pub const IPC_PRIVATE: crate::key_t = 0; -pub const IPC_CREAT: ::c_int = 0o1000; -pub const IPC_EXCL: ::c_int = 0o2000; -pub const IPC_NOWAIT: ::c_int = 0o4000; +pub const IPC_CREAT: c_int = 0o1000; +pub const IPC_EXCL: c_int = 0o2000; +pub const IPC_NOWAIT: c_int = 0o4000; -pub const IPC_RMID: ::c_int = 0; -pub const IPC_SET: ::c_int = 1; -pub const IPC_STAT: ::c_int = 2; -pub const IPC_INFO: ::c_int = 3; -pub const MSG_STAT: ::c_int = 11; -pub const MSG_INFO: ::c_int = 12; +pub const IPC_RMID: c_int = 0; +pub const IPC_SET: c_int = 1; +pub const IPC_STAT: c_int = 2; +pub const IPC_INFO: c_int = 3; +pub const MSG_STAT: c_int = 11; +pub const MSG_INFO: c_int = 12; -pub const MSG_NOERROR: ::c_int = 0o10000; -pub const MSG_EXCEPT: ::c_int = 0o20000; +pub const MSG_NOERROR: c_int = 0o10000; +pub const MSG_EXCEPT: c_int = 0o20000; -pub const SHM_R: ::c_int = 0o400; -pub const SHM_W: ::c_int = 0o200; +pub const SHM_R: c_int = 0o400; +pub const SHM_W: c_int = 0o200; -pub const SHM_RDONLY: ::c_int = 0o10000; -pub const SHM_RND: ::c_int = 0o20000; -pub const SHM_REMAP: ::c_int = 0o40000; -pub const SHM_EXEC: ::c_int = 0o100000; +pub const SHM_RDONLY: c_int = 0o10000; +pub const SHM_RND: c_int = 0o20000; +pub const SHM_REMAP: c_int = 0o40000; +pub const SHM_EXEC: c_int = 0o100000; -pub const SHM_LOCK: ::c_int = 11; -pub const SHM_UNLOCK: ::c_int = 12; +pub const SHM_LOCK: c_int = 11; +pub const SHM_UNLOCK: c_int = 12; -pub const SHM_HUGETLB: ::c_int = 0o4000; -pub const SHM_NORESERVE: ::c_int = 0o10000; +pub const SHM_HUGETLB: c_int = 0o4000; +pub const SHM_NORESERVE: c_int = 0o10000; -pub const LOG_NFACILITIES: ::c_int = 24; +pub const LOG_NFACILITIES: c_int = 24; -pub const SEM_FAILED: *mut ::sem_t = 0 as *mut sem_t; +pub const SEM_FAILED: *mut crate::sem_t = 0 as *mut sem_t; -pub const AI_PASSIVE: ::c_int = 0x0001; -pub const AI_CANONNAME: ::c_int = 0x0002; -pub const AI_NUMERICHOST: ::c_int = 0x0004; -pub const AI_V4MAPPED: ::c_int = 0x0008; -pub const AI_ALL: ::c_int = 0x0010; -pub const AI_ADDRCONFIG: ::c_int = 0x0020; +pub const AI_PASSIVE: c_int = 0x0001; +pub const AI_CANONNAME: c_int = 0x0002; +pub const AI_NUMERICHOST: c_int = 0x0004; +pub const AI_V4MAPPED: c_int = 0x0008; +pub const AI_ALL: c_int = 0x0010; +pub const AI_ADDRCONFIG: c_int = 0x0020; -pub const AI_NUMERICSERV: ::c_int = 0x0400; +pub const AI_NUMERICSERV: c_int = 0x0400; -pub const EAI_BADFLAGS: ::c_int = -1; -pub const EAI_NONAME: ::c_int = -2; -pub const EAI_AGAIN: ::c_int = -3; -pub const EAI_FAIL: ::c_int = -4; -pub const EAI_FAMILY: ::c_int = -6; -pub const EAI_SOCKTYPE: ::c_int = -7; -pub const EAI_SERVICE: ::c_int = -8; -pub const EAI_MEMORY: ::c_int = -10; -pub const EAI_OVERFLOW: ::c_int = -12; +pub const EAI_BADFLAGS: c_int = -1; +pub const EAI_NONAME: c_int = -2; +pub const EAI_AGAIN: c_int = -3; +pub const EAI_FAIL: c_int = -4; +pub const EAI_FAMILY: c_int = -6; +pub const EAI_SOCKTYPE: c_int = -7; +pub const EAI_SERVICE: c_int = -8; +pub const EAI_MEMORY: c_int = -10; +pub const EAI_OVERFLOW: c_int = -12; -pub const NI_NUMERICHOST: ::c_int = 1; -pub const NI_NUMERICSERV: ::c_int = 2; -pub const NI_NOFQDN: ::c_int = 4; -pub const NI_NAMEREQD: ::c_int = 8; -pub const NI_DGRAM: ::c_int = 16; +pub const NI_NUMERICHOST: c_int = 1; +pub const NI_NUMERICSERV: c_int = 2; +pub const NI_NOFQDN: c_int = 4; +pub const NI_NAMEREQD: c_int = 8; +pub const NI_DGRAM: c_int = 16; -pub const SYNC_FILE_RANGE_WAIT_BEFORE: ::c_uint = 1; -pub const SYNC_FILE_RANGE_WRITE: ::c_uint = 2; -pub const SYNC_FILE_RANGE_WAIT_AFTER: ::c_uint = 4; +pub const SYNC_FILE_RANGE_WAIT_BEFORE: c_uint = 1; +pub const SYNC_FILE_RANGE_WRITE: c_uint = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: c_uint = 4; -pub const EAI_SYSTEM: ::c_int = -11; +pub const EAI_SYSTEM: c_int = -11; -pub const MREMAP_MAYMOVE: ::c_int = 1; -pub const MREMAP_FIXED: ::c_int = 2; +pub const MREMAP_MAYMOVE: c_int = 1; +pub const MREMAP_FIXED: c_int = 2; -pub const ITIMER_REAL: ::c_int = 0; -pub const ITIMER_VIRTUAL: ::c_int = 1; -pub const ITIMER_PROF: ::c_int = 2; +pub const ITIMER_REAL: c_int = 0; +pub const ITIMER_VIRTUAL: c_int = 1; +pub const ITIMER_PROF: c_int = 2; -pub const _POSIX_VDISABLE: ::cc_t = 0; +pub const _POSIX_VDISABLE: crate::cc_t = 0; -pub const FALLOC_FL_KEEP_SIZE: ::c_int = 0x01; -pub const FALLOC_FL_PUNCH_HOLE: ::c_int = 0x02; +pub const FALLOC_FL_KEEP_SIZE: c_int = 0x01; +pub const FALLOC_FL_PUNCH_HOLE: c_int = 0x02; pub const NCCS: usize = 32; -pub const O_TRUNC: ::c_int = 512; -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_CLOEXEC: ::c_int = 0x80000; +pub const O_TRUNC: c_int = 512; +pub const O_NOATIME: c_int = 0o1000000; +pub const O_CLOEXEC: c_int = 0x80000; // Defined as wasi value. -pub const EPERM: ::c_int = 63; -pub const ENOENT: ::c_int = 44; -pub const ESRCH: ::c_int = 71; -pub const EINTR: ::c_int = 27; -pub const EIO: ::c_int = 29; -pub const ENXIO: ::c_int = 60; -pub const E2BIG: ::c_int = 1; -pub const ENOEXEC: ::c_int = 45; -pub const EBADF: ::c_int = 8; -pub const ECHILD: ::c_int = 12; -pub const EAGAIN: ::c_int = 6; -pub const ENOMEM: ::c_int = 48; -pub const EACCES: ::c_int = 2; -pub const EFAULT: ::c_int = 21; -pub const ENOTBLK: ::c_int = 105; -pub const EBUSY: ::c_int = 10; -pub const EEXIST: ::c_int = 20; -pub const EXDEV: ::c_int = 75; -pub const ENODEV: ::c_int = 43; -pub const ENOTDIR: ::c_int = 54; -pub const EISDIR: ::c_int = 31; -pub const EINVAL: ::c_int = 28; -pub const ENFILE: ::c_int = 41; -pub const EMFILE: ::c_int = 33; -pub const ENOTTY: ::c_int = 59; -pub const ETXTBSY: ::c_int = 74; -pub const EFBIG: ::c_int = 22; -pub const ENOSPC: ::c_int = 51; -pub const ESPIPE: ::c_int = 70; -pub const EROFS: ::c_int = 69; -pub const EMLINK: ::c_int = 34; -pub const EPIPE: ::c_int = 64; -pub const EDOM: ::c_int = 18; -pub const ERANGE: ::c_int = 68; -pub const EWOULDBLOCK: ::c_int = EAGAIN; -pub const ENOLINK: ::c_int = 47; -pub const EPROTO: ::c_int = 65; -pub const EDEADLK: ::c_int = 16; -pub const EDEADLOCK: ::c_int = EDEADLK; -pub const ENAMETOOLONG: ::c_int = 37; -pub const ENOLCK: ::c_int = 46; -pub const ENOSYS: ::c_int = 52; -pub const ENOTEMPTY: ::c_int = 55; -pub const ELOOP: ::c_int = 32; -pub const ENOMSG: ::c_int = 49; -pub const EIDRM: ::c_int = 24; -pub const EMULTIHOP: ::c_int = 36; -pub const EBADMSG: ::c_int = 9; -pub const EOVERFLOW: ::c_int = 61; -pub const EILSEQ: ::c_int = 25; -pub const ENOTSOCK: ::c_int = 57; -pub const EDESTADDRREQ: ::c_int = 17; -pub const EMSGSIZE: ::c_int = 35; -pub const EPROTOTYPE: ::c_int = 67; -pub const ENOPROTOOPT: ::c_int = 50; -pub const EPROTONOSUPPORT: ::c_int = 66; -pub const EAFNOSUPPORT: ::c_int = 5; -pub const EADDRINUSE: ::c_int = 3; -pub const EADDRNOTAVAIL: ::c_int = 4; -pub const ENETDOWN: ::c_int = 38; -pub const ENETUNREACH: ::c_int = 40; -pub const ENETRESET: ::c_int = 39; -pub const ECONNABORTED: ::c_int = 13; -pub const ECONNRESET: ::c_int = 15; -pub const ENOBUFS: ::c_int = 42; -pub const EISCONN: ::c_int = 30; -pub const ENOTCONN: ::c_int = 53; -pub const ETIMEDOUT: ::c_int = 73; -pub const ECONNREFUSED: ::c_int = 14; -pub const EHOSTUNREACH: ::c_int = 23; -pub const EALREADY: ::c_int = 7; -pub const EINPROGRESS: ::c_int = 26; -pub const ESTALE: ::c_int = 72; -pub const EDQUOT: ::c_int = 19; -pub const ECANCELED: ::c_int = 11; -pub const EOWNERDEAD: ::c_int = 62; -pub const ENOTRECOVERABLE: ::c_int = 56; - -pub const ENOSTR: ::c_int = 100; -pub const EBFONT: ::c_int = 101; -pub const EBADSLT: ::c_int = 102; -pub const EBADRQC: ::c_int = 103; -pub const ENOANO: ::c_int = 104; -pub const ECHRNG: ::c_int = 106; -pub const EL3HLT: ::c_int = 107; -pub const EL3RST: ::c_int = 108; -pub const ELNRNG: ::c_int = 109; -pub const EUNATCH: ::c_int = 110; -pub const ENOCSI: ::c_int = 111; -pub const EL2HLT: ::c_int = 112; -pub const EBADE: ::c_int = 113; -pub const EBADR: ::c_int = 114; -pub const EXFULL: ::c_int = 115; -pub const ENODATA: ::c_int = 116; -pub const ETIME: ::c_int = 117; -pub const ENOSR: ::c_int = 118; -pub const ENONET: ::c_int = 119; -pub const ENOPKG: ::c_int = 120; -pub const EREMOTE: ::c_int = 121; -pub const EADV: ::c_int = 122; -pub const ESRMNT: ::c_int = 123; -pub const ECOMM: ::c_int = 124; -pub const EDOTDOT: ::c_int = 125; -pub const ENOTUNIQ: ::c_int = 126; -pub const EBADFD: ::c_int = 127; -pub const EREMCHG: ::c_int = 128; -pub const ELIBACC: ::c_int = 129; -pub const ELIBBAD: ::c_int = 130; -pub const ELIBSCN: ::c_int = 131; -pub const ELIBMAX: ::c_int = 132; -pub const ELIBEXEC: ::c_int = 133; -pub const ERESTART: ::c_int = 134; -pub const ESTRPIPE: ::c_int = 135; -pub const EUSERS: ::c_int = 136; -pub const ESOCKTNOSUPPORT: ::c_int = 137; -pub const EOPNOTSUPP: ::c_int = 138; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 139; -pub const ESHUTDOWN: ::c_int = 140; -pub const ETOOMANYREFS: ::c_int = 141; -pub const EHOSTDOWN: ::c_int = 142; -pub const EUCLEAN: ::c_int = 143; -pub const ENOTNAM: ::c_int = 144; -pub const ENAVAIL: ::c_int = 145; -pub const EISNAM: ::c_int = 146; -pub const EREMOTEIO: ::c_int = 147; -pub const ENOMEDIUM: ::c_int = 148; -pub const EMEDIUMTYPE: ::c_int = 149; -pub const ENOKEY: ::c_int = 150; -pub const EKEYEXPIRED: ::c_int = 151; -pub const EKEYREVOKED: ::c_int = 152; -pub const EKEYREJECTED: ::c_int = 153; -pub const ERFKILL: ::c_int = 154; -pub const EHWPOISON: ::c_int = 155; -pub const EL2NSYNC: ::c_int = 156; - -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - -pub const BUFSIZ: ::c_uint = 1024; -pub const TMP_MAX: ::c_uint = 10000; -pub const FOPEN_MAX: ::c_uint = 1000; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_EXEC: ::c_int = 0o10000000; -pub const O_SEARCH: ::c_int = 0o10000000; -pub const O_ACCMODE: ::c_int = 0o10000003; -pub const O_NDELAY: ::c_int = O_NONBLOCK; -pub const NI_MAXHOST: ::socklen_t = 255; -pub const PTHREAD_STACK_MIN: ::size_t = 2048; -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; - -pub const POSIX_MADV_DONTNEED: ::c_int = 4; - -pub const RLIM_INFINITY: ::rlim_t = !0; +pub const EPERM: c_int = 63; +pub const ENOENT: c_int = 44; +pub const ESRCH: c_int = 71; +pub const EINTR: c_int = 27; +pub const EIO: c_int = 29; +pub const ENXIO: c_int = 60; +pub const E2BIG: c_int = 1; +pub const ENOEXEC: c_int = 45; +pub const EBADF: c_int = 8; +pub const ECHILD: c_int = 12; +pub const EAGAIN: c_int = 6; +pub const ENOMEM: c_int = 48; +pub const EACCES: c_int = 2; +pub const EFAULT: c_int = 21; +pub const ENOTBLK: c_int = 105; +pub const EBUSY: c_int = 10; +pub const EEXIST: c_int = 20; +pub const EXDEV: c_int = 75; +pub const ENODEV: c_int = 43; +pub const ENOTDIR: c_int = 54; +pub const EISDIR: c_int = 31; +pub const EINVAL: c_int = 28; +pub const ENFILE: c_int = 41; +pub const EMFILE: c_int = 33; +pub const ENOTTY: c_int = 59; +pub const ETXTBSY: c_int = 74; +pub const EFBIG: c_int = 22; +pub const ENOSPC: c_int = 51; +pub const ESPIPE: c_int = 70; +pub const EROFS: c_int = 69; +pub const EMLINK: c_int = 34; +pub const EPIPE: c_int = 64; +pub const EDOM: c_int = 18; +pub const ERANGE: c_int = 68; +pub const EWOULDBLOCK: c_int = EAGAIN; +pub const ENOLINK: c_int = 47; +pub const EPROTO: c_int = 65; +pub const EDEADLK: c_int = 16; +pub const EDEADLOCK: c_int = EDEADLK; +pub const ENAMETOOLONG: c_int = 37; +pub const ENOLCK: c_int = 46; +pub const ENOSYS: c_int = 52; +pub const ENOTEMPTY: c_int = 55; +pub const ELOOP: c_int = 32; +pub const ENOMSG: c_int = 49; +pub const EIDRM: c_int = 24; +pub const EMULTIHOP: c_int = 36; +pub const EBADMSG: c_int = 9; +pub const EOVERFLOW: c_int = 61; +pub const EILSEQ: c_int = 25; +pub const ENOTSOCK: c_int = 57; +pub const EDESTADDRREQ: c_int = 17; +pub const EMSGSIZE: c_int = 35; +pub const EPROTOTYPE: c_int = 67; +pub const ENOPROTOOPT: c_int = 50; +pub const EPROTONOSUPPORT: c_int = 66; +pub const EAFNOSUPPORT: c_int = 5; +pub const EADDRINUSE: c_int = 3; +pub const EADDRNOTAVAIL: c_int = 4; +pub const ENETDOWN: c_int = 38; +pub const ENETUNREACH: c_int = 40; +pub const ENETRESET: c_int = 39; +pub const ECONNABORTED: c_int = 13; +pub const ECONNRESET: c_int = 15; +pub const ENOBUFS: c_int = 42; +pub const EISCONN: c_int = 30; +pub const ENOTCONN: c_int = 53; +pub const ETIMEDOUT: c_int = 73; +pub const ECONNREFUSED: c_int = 14; +pub const EHOSTUNREACH: c_int = 23; +pub const EALREADY: c_int = 7; +pub const EINPROGRESS: c_int = 26; +pub const ESTALE: c_int = 72; +pub const EDQUOT: c_int = 19; +pub const ECANCELED: c_int = 11; +pub const EOWNERDEAD: c_int = 62; +pub const ENOTRECOVERABLE: c_int = 56; + +pub const ENOSTR: c_int = 100; +pub const EBFONT: c_int = 101; +pub const EBADSLT: c_int = 102; +pub const EBADRQC: c_int = 103; +pub const ENOANO: c_int = 104; +pub const ECHRNG: c_int = 106; +pub const EL3HLT: c_int = 107; +pub const EL3RST: c_int = 108; +pub const ELNRNG: c_int = 109; +pub const EUNATCH: c_int = 110; +pub const ENOCSI: c_int = 111; +pub const EL2HLT: c_int = 112; +pub const EBADE: c_int = 113; +pub const EBADR: c_int = 114; +pub const EXFULL: c_int = 115; +pub const ENODATA: c_int = 116; +pub const ETIME: c_int = 117; +pub const ENOSR: c_int = 118; +pub const ENONET: c_int = 119; +pub const ENOPKG: c_int = 120; +pub const EREMOTE: c_int = 121; +pub const EADV: c_int = 122; +pub const ESRMNT: c_int = 123; +pub const ECOMM: c_int = 124; +pub const EDOTDOT: c_int = 125; +pub const ENOTUNIQ: c_int = 126; +pub const EBADFD: c_int = 127; +pub const EREMCHG: c_int = 128; +pub const ELIBACC: c_int = 129; +pub const ELIBBAD: c_int = 130; +pub const ELIBSCN: c_int = 131; +pub const ELIBMAX: c_int = 132; +pub const ELIBEXEC: c_int = 133; +pub const ERESTART: c_int = 134; +pub const ESTRPIPE: c_int = 135; +pub const EUSERS: c_int = 136; +pub const ESOCKTNOSUPPORT: c_int = 137; +pub const EOPNOTSUPP: c_int = 138; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 139; +pub const ESHUTDOWN: c_int = 140; +pub const ETOOMANYREFS: c_int = 141; +pub const EHOSTDOWN: c_int = 142; +pub const EUCLEAN: c_int = 143; +pub const ENOTNAM: c_int = 144; +pub const ENAVAIL: c_int = 145; +pub const EISNAM: c_int = 146; +pub const EREMOTEIO: c_int = 147; +pub const ENOMEDIUM: c_int = 148; +pub const EMEDIUMTYPE: c_int = 149; +pub const ENOKEY: c_int = 150; +pub const EKEYEXPIRED: c_int = 151; +pub const EKEYREVOKED: c_int = 152; +pub const EKEYREJECTED: c_int = 153; +pub const ERFKILL: c_int = 154; +pub const EHWPOISON: c_int = 155; +pub const EL2NSYNC: c_int = 156; + +pub const SA_NODEFER: c_int = 0x40000000; +pub const SA_RESETHAND: c_int = 0x80000000; +pub const SA_RESTART: c_int = 0x10000000; +pub const SA_NOCLDSTOP: c_int = 0x00000001; + +pub const BUFSIZ: c_uint = 1024; +pub const TMP_MAX: c_uint = 10000; +pub const FOPEN_MAX: c_uint = 1000; +pub const O_PATH: c_int = 0o10000000; +pub const O_EXEC: c_int = 0o10000000; +pub const O_SEARCH: c_int = 0o10000000; +pub const O_ACCMODE: c_int = 0o10000003; +pub const O_NDELAY: c_int = O_NONBLOCK; +pub const NI_MAXHOST: crate::socklen_t = 255; +pub const PTHREAD_STACK_MIN: size_t = 2048; +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; + +pub const POSIX_MADV_DONTNEED: c_int = 4; + +pub const RLIM_INFINITY: crate::rlim_t = !0; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIMIT_NLIMITS: ::c_int = 16; +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 RLIM_NLIMITS: c_int = RLIMIT_NLIMITS; -pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; +pub const MAP_ANONYMOUS: c_int = MAP_ANON; #[doc(hidden)] #[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = ::SIGSYS; +pub const SIGUNUSED: c_int = crate::SIGSYS; pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; -pub const CPU_SETSIZE: ::c_int = 1024; +pub const CPU_SETSIZE: c_int = 1024; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; -pub const TIOCINQ: ::c_int = ::FIONREAD; +pub const TIOCINQ: c_int = crate::FIONREAD; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_NOLOAD: c_int = 0x4; -pub const CLOCK_SGI_CYCLE: ::clockid_t = 10; +pub const CLOCK_SGI_CYCLE: crate::clockid_t = 10; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::c_int = 0x00000800; -pub const TAB2: ::c_int = 0x00001000; -pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: c_int = 0x00000800; +pub const TAB2: c_int = 0x00001000; +pub const TAB3: c_int = 0x00001800; +pub const CR1: c_int = 0x00000200; +pub const CR2: c_int = 0x00000400; +pub const CR3: c_int = 0x00000600; +pub const FF1: c_int = 0x00008000; +pub const BS1: c_int = 0x00002000; +pub const VT1: c_int = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -1151,268 +1153,268 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const SO_BINDTODEVICE: ::c_int = 25; -pub const SO_TIMESTAMP: ::c_int = 63; -pub const SO_MARK: ::c_int = 36; -pub const SO_RXQ_OVFL: ::c_int = 40; -pub const SO_PEEK_OFF: ::c_int = 42; -pub const SO_BUSY_POLL: ::c_int = 46; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; + +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; + +pub const SO_BINDTODEVICE: c_int = 25; +pub const SO_TIMESTAMP: c_int = 63; +pub const SO_MARK: c_int = 36; +pub const SO_RXQ_OVFL: c_int = 40; +pub const SO_PEEK_OFF: c_int = 42; +pub const SO_BUSY_POLL: c_int = 46; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_ASYNC: ::c_int = 0x2000; - -pub const FIOCLEX: ::c_int = 0x5451; -pub const FIONBIO: ::c_int = 0x5421; - -pub const RLIMIT_RSS: ::c_int = 5; -pub const RLIMIT_NOFILE: ::c_int = 7; -pub const RLIMIT_AS: ::c_int = 9; -pub const RLIMIT_NPROC: ::c_int = 6; -pub const RLIMIT_MEMLOCK: ::c_int = 8; -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_LOCKS: ::c_int = 10; -pub const RLIMIT_SIGPENDING: ::c_int = 11; -pub const RLIMIT_MSGQUEUE: ::c_int = 12; -pub const RLIMIT_NICE: ::c_int = 13; -pub const RLIMIT_RTPRIO: ::c_int = 14; - -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; - -pub const SOCK_NONBLOCK: ::c_int = 2048; - -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_SEQPACKET: ::c_int = 5; - -pub const IPPROTO_MAX: ::c_int = 263; - -pub const SOL_SOCKET: ::c_int = 1; - -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; -pub const SO_LINGER: ::c_int = 13; -pub const SO_REUSEPORT: ::c_int = 15; -pub const SO_RCVLOWAT: ::c_int = 18; -pub const SO_SNDLOWAT: ::c_int = 19; -pub const SO_RCVTIMEO: ::c_int = 66; -pub const SO_SNDTIMEO: ::c_int = 67; -pub const SO_ACCEPTCONN: ::c_int = 30; - -pub const IPV6_RTHDR_LOOSE: ::c_int = 0; -pub const IPV6_RTHDR_STRICT: ::c_int = 1; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const EXTPROC: ::tcflag_t = 0x00010000; - -pub const MAP_HUGETLB: ::c_int = 0x040000; - -pub const F_GETLK: ::c_int = 12; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 13; -pub const F_SETLKW: ::c_int = 14; -pub const F_SETOWN: ::c_int = 8; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; +pub const O_DIRECT: c_int = 0x4000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_NOFOLLOW: c_int = 0x20000; +pub const O_ASYNC: c_int = 0x2000; + +pub const FIOCLEX: c_int = 0x5451; +pub const FIONBIO: c_int = 0x5421; + +pub const RLIMIT_RSS: c_int = 5; +pub const RLIMIT_NOFILE: c_int = 7; +pub const RLIMIT_AS: c_int = 9; +pub const RLIMIT_NPROC: c_int = 6; +pub const RLIMIT_MEMLOCK: c_int = 8; +pub const RLIMIT_CPU: c_int = 0; +pub const RLIMIT_FSIZE: c_int = 1; +pub const RLIMIT_DATA: c_int = 2; +pub const RLIMIT_STACK: c_int = 3; +pub const RLIMIT_CORE: c_int = 4; +pub const RLIMIT_LOCKS: c_int = 10; +pub const RLIMIT_SIGPENDING: c_int = 11; +pub const RLIMIT_MSGQUEUE: c_int = 12; +pub const RLIMIT_NICE: c_int = 13; +pub const RLIMIT_RTPRIO: c_int = 14; + +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; + +pub const SOCK_NONBLOCK: c_int = 2048; + +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; +pub const SOCK_SEQPACKET: c_int = 5; + +pub const IPPROTO_MAX: c_int = 263; + +pub const SOL_SOCKET: c_int = 1; + +pub const SO_REUSEADDR: c_int = 2; +pub const SO_TYPE: c_int = 3; +pub const SO_ERROR: c_int = 4; +pub const SO_DONTROUTE: c_int = 5; +pub const SO_BROADCAST: c_int = 6; +pub const SO_SNDBUF: c_int = 7; +pub const SO_RCVBUF: c_int = 8; +pub const SO_KEEPALIVE: c_int = 9; +pub const SO_OOBINLINE: c_int = 10; +pub const SO_LINGER: c_int = 13; +pub const SO_REUSEPORT: c_int = 15; +pub const SO_RCVLOWAT: c_int = 18; +pub const SO_SNDLOWAT: c_int = 19; +pub const SO_RCVTIMEO: c_int = 66; +pub const SO_SNDTIMEO: c_int = 67; +pub const SO_ACCEPTCONN: c_int = 30; + +pub const IPV6_RTHDR_LOOSE: c_int = 0; +pub const IPV6_RTHDR_STRICT: c_int = 1; + +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; + +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; + +pub const EXTPROC: crate::tcflag_t = 0x00010000; + +pub const MAP_HUGETLB: c_int = 0x040000; + +pub const F_GETLK: c_int = 12; +pub const F_GETOWN: c_int = 9; +pub const F_SETLK: c_int = 13; +pub const F_SETLKW: c_int = 14; +pub const F_SETOWN: c_int = 8; +pub const F_OFD_GETLK: c_int = 36; +pub const F_OFD_SETLK: c_int = 37; +pub const F_OFD_SETLKW: c_int = 38; pub const VEOF: usize = 4; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; - -pub const TCGETS: ::c_int = 0x5401; -pub const TCSETS: ::c_int = 0x5402; -pub const TCSETSW: ::c_int = 0x5403; -pub const TCSETSF: ::c_int = 0x5404; -pub const TCGETA: ::c_int = 0x5405; -pub const TCSETA: ::c_int = 0x5406; -pub const TCSETAW: ::c_int = 0x5407; -pub const TCSETAF: ::c_int = 0x5408; -pub const TCSBRK: ::c_int = 0x5409; -pub const TCXONC: ::c_int = 0x540A; -pub const TCFLSH: ::c_int = 0x540B; -pub const TIOCGSOFTCAR: ::c_int = 0x5419; -pub const TIOCSSOFTCAR: ::c_int = 0x541A; -pub const TIOCLINUX: ::c_int = 0x541C; -pub const TIOCGSERIAL: ::c_int = 0x541E; -pub const TIOCEXCL: ::c_int = 0x540C; -pub const TIOCNXCL: ::c_int = 0x540D; -pub const TIOCSCTTY: ::c_int = 0x540E; -pub const TIOCGPGRP: ::c_int = 0x540F; -pub const TIOCSPGRP: ::c_int = 0x5410; -pub const TIOCOUTQ: ::c_int = 0x5411; -pub const TIOCSTI: ::c_int = 0x5412; -pub const TIOCGWINSZ: ::c_int = 0x5413; -pub const TIOCSWINSZ: ::c_int = 0x5414; -pub const TIOCMGET: ::c_int = 0x5415; -pub const TIOCMBIS: ::c_int = 0x5416; -pub const TIOCMBIC: ::c_int = 0x5417; -pub const TIOCMSET: ::c_int = 0x5418; -pub const FIONREAD: ::c_int = 0x541B; -pub const TIOCCONS: ::c_int = 0x541D; - -pub const SYS_gettid: ::c_long = 224; // Valid for arm (32-bit) and x86 (32-bit) - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const TIOCM_LE: ::c_int = 0x001; -pub const TIOCM_DTR: ::c_int = 0x002; -pub const TIOCM_RTS: ::c_int = 0x004; -pub const TIOCM_ST: ::c_int = 0x008; -pub const TIOCM_SR: ::c_int = 0x010; -pub const TIOCM_CTS: ::c_int = 0x020; -pub const TIOCM_CAR: ::c_int = 0x040; -pub const TIOCM_RNG: ::c_int = 0x080; -pub const TIOCM_DSR: ::c_int = 0x100; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; -pub const O_TMPFILE: ::c_int = 0x410000; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; + +pub const TCGETS: c_int = 0x5401; +pub const TCSETS: c_int = 0x5402; +pub const TCSETSW: c_int = 0x5403; +pub const TCSETSF: c_int = 0x5404; +pub const TCGETA: c_int = 0x5405; +pub const TCSETA: c_int = 0x5406; +pub const TCSETAW: c_int = 0x5407; +pub const TCSETAF: c_int = 0x5408; +pub const TCSBRK: c_int = 0x5409; +pub const TCXONC: c_int = 0x540A; +pub const TCFLSH: c_int = 0x540B; +pub const TIOCGSOFTCAR: c_int = 0x5419; +pub const TIOCSSOFTCAR: c_int = 0x541A; +pub const TIOCLINUX: c_int = 0x541C; +pub const TIOCGSERIAL: c_int = 0x541E; +pub const TIOCEXCL: c_int = 0x540C; +pub const TIOCNXCL: c_int = 0x540D; +pub const TIOCSCTTY: c_int = 0x540E; +pub const TIOCGPGRP: c_int = 0x540F; +pub const TIOCSPGRP: c_int = 0x5410; +pub const TIOCOUTQ: c_int = 0x5411; +pub const TIOCSTI: c_int = 0x5412; +pub const TIOCGWINSZ: c_int = 0x5413; +pub const TIOCSWINSZ: c_int = 0x5414; +pub const TIOCMGET: c_int = 0x5415; +pub const TIOCMBIS: c_int = 0x5416; +pub const TIOCMBIC: c_int = 0x5417; +pub const TIOCMSET: c_int = 0x5418; +pub const FIONREAD: c_int = 0x541B; +pub const TIOCCONS: c_int = 0x541D; + +pub const SYS_gettid: c_long = 224; // Valid for arm (32-bit) and x86 (32-bit) + +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; + +pub const TIOCM_LE: c_int = 0x001; +pub const TIOCM_DTR: c_int = 0x002; +pub const TIOCM_RTS: c_int = 0x004; +pub const TIOCM_ST: c_int = 0x008; +pub const TIOCM_SR: c_int = 0x010; +pub const TIOCM_CTS: c_int = 0x020; +pub const TIOCM_CAR: c_int = 0x040; +pub const TIOCM_RNG: c_int = 0x080; +pub const TIOCM_DSR: c_int = 0x100; +pub const TIOCM_CD: c_int = TIOCM_CAR; +pub const TIOCM_RI: c_int = TIOCM_RNG; +pub const O_TMPFILE: c_int = 0x410000; pub const MAX_ADDR_LEN: usize = 7; -pub const ARPD_UPDATE: ::c_ushort = 0x01; -pub const ARPD_LOOKUP: ::c_ushort = 0x02; -pub const ARPD_FLUSH: ::c_ushort = 0x03; -pub const ATF_MAGIC: ::c_int = 0x80; +pub const ARPD_UPDATE: c_ushort = 0x01; +pub const ARPD_LOOKUP: c_ushort = 0x02; +pub const ARPD_FLUSH: c_ushort = 0x03; +pub const ATF_MAGIC: c_int = 0x80; -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; +pub const PRIO_PROCESS: c_int = 0; +pub const PRIO_PGRP: c_int = 1; +pub const PRIO_USER: c_int = 2; -pub const SOMAXCONN: ::c_int = 128; +pub const SOMAXCONN: c_int = 128; f! { pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { - if ((*cmsg).cmsg_len as usize) < ::mem::size_of::() { + if ((*cmsg).cmsg_len as usize) < crate::mem::size_of::() { return 0 as *mut cmsghdr; }; let next = (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; @@ -1431,21 +1433,21 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); + let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); 0 != (cpuset.bits[idx] & (1 << offset)) } @@ -1454,31 +1456,31 @@ f! { set1.bits == set2.bits } - pub fn major(dev: ::dev_t) -> ::c_uint { + pub fn major(dev: crate::dev_t) -> c_uint { // see // https://github.com/emscripten-core/emscripten/blob/ // main/system/lib/libc/musl/include/sys/sysmacros.h let mut major = 0; major |= (dev & 0x00000fff) >> 8; major |= (dev & 0xfffff000) >> 31 >> 1; - major as ::c_uint + major as c_uint } - pub fn minor(dev: ::dev_t) -> ::c_uint { + pub fn minor(dev: crate::dev_t) -> c_uint { // see // https://github.com/emscripten-core/emscripten/blob/ // main/system/lib/libc/musl/include/sys/sysmacros.h let mut minor = 0; minor |= (dev & 0x000000ff) >> 0; minor |= (dev & 0xffffff00) >> 12; - minor as ::c_uint + minor as c_uint } } 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; + pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + let major = major as crate::dev_t; + let minor = minor as crate::dev_t; let mut dev = 0; dev |= (major & 0x00000fff) << 8; dev |= (major & 0xfffff000) << 31 << 1; @@ -1489,151 +1491,150 @@ safe_f! { } extern "C" { - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + pub fn getrlimit(resource: c_int, rlim: *mut crate::rlimit) -> c_int; + pub fn setrlimit(resource: c_int, rlim: *const crate::rlimit) -> c_int; + pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; - pub fn abs(i: ::c_int) -> ::c_int; - pub fn labs(i: ::c_long) -> ::c_long; - pub fn rand() -> ::c_int; - pub fn srand(seed: ::c_uint); + pub fn abs(i: c_int) -> c_int; + pub fn labs(i: c_long) -> c_long; + pub fn rand() -> c_int; + pub fn srand(seed: c_uint); - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut c_void) -> c_int; pub fn setpwent(); pub fn endpwent(); pub fn getpwent() -> *mut passwd; - pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn __errno_location() -> *mut ::c_int; + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; + pub fn __errno_location() -> *mut c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) - -> ::ssize_t; - pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int; - pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; + pub fn posix_fallocate(fd: c_int, offset: off_t, len: off_t) -> c_int; + pub fn pwritev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; + pub fn preadv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; + pub fn dup3(oldfd: c_int, newfd: c_int, flags: c_int) -> c_int; + pub fn nl_langinfo_l(item: crate::nl_item, locale: crate::locale_t) -> *mut c_char; pub fn accept4( - fd: ::c_int, - addr: *mut ::sockaddr, - len: *mut ::socklen_t, - flg: ::c_int, - ) -> ::c_int; + fd: c_int, + addr: *mut crate::sockaddr, + len: *mut crate::socklen_t, + flg: c_int, + ) -> c_int; pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - servlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; - - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + sa: *const crate::sockaddr, + salen: crate::socklen_t, + host: *mut c_char, + hostlen: crate::socklen_t, + serv: *mut c_char, + servlen: crate::socklen_t, + flags: c_int, + ) -> c_int; + pub fn getloadavg(loadavg: *mut c_double, nelem: c_int) -> c_int; + + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; pub fn if_nameindex() -> *mut if_nameindex; pub fn if_freenameindex(ptr: *mut if_nameindex); pub fn mremap( - addr: *mut ::c_void, - len: ::size_t, - new_len: ::size_t, - flags: ::c_int, + addr: *mut c_void, + len: size_t, + new_len: size_t, + flags: c_int, ... - ) -> *mut ::c_void; + ) -> *mut c_void; pub fn glob( pattern: *const c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t, - ) -> ::c_int; - pub fn globfree(pglob: *mut ::glob_t); + flags: c_int, + errfunc: Option c_int>, + pglob: *mut crate::glob_t, + ) -> c_int; + pub fn globfree(pglob: *mut crate::glob_t); - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn posix_madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + pub fn shm_unlink(name: *const c_char) -> c_int; - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + pub fn seekdir(dirp: *mut crate::DIR, loc: c_long); - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn telldir(dirp: *mut crate::DIR) -> c_long; + pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - - pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; + socket: c_int, + buf: *mut c_void, + len: size_t, + flags: c_int, + addr: *mut crate::sockaddr, + addrlen: *mut crate::socklen_t, + ) -> ssize_t; + pub fn mkstemps(template: *mut c_char, suffixlen: c_int) -> c_int; + pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char; + + pub fn getdomainname(name: *mut c_char, len: size_t) -> c_int; + pub fn setdomainname(name: *const c_char, len: size_t) -> c_int; pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_uint, - ) -> ::c_int; + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_uint, + ) -> c_int; pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_uint, - timeout: *mut ::timespec, - ) -> ::c_int; + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_uint, + timeout: *mut crate::timespec, + ) -> c_int; pub fn sync(); - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; + pub fn ioctl(fd: c_int, request: c_int, ...) -> c_int; + pub fn getpriority(which: c_int, who: crate::id_t) -> c_int; + pub fn setpriority(which: c_int, who: crate::id_t, prio: c_int) -> c_int; pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; + native: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + f: extern "C" fn(*mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; - pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; + pub fn getentropy(buf: *mut c_void, buflen: size_t) -> c_int; pub fn getpwnam_r( - name: *const ::c_char, + name: *const c_char, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; pub fn getpwuid_r( - uid: ::uid_t, + uid: crate::uid_t, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; // grp.h - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; + pub fn getgrnam(name: *const c_char) -> *mut crate::group; pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; + name: *const c_char, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; + gid: crate::gid_t, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; } // Alias to 64 to mimic glibc's LFS64 support diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index 0d2514b60aa41..3e7d3a1117d52 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -1,13 +1,15 @@ +use crate::{c_int, Ioctl}; + s! { pub struct termios2 { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; 19], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; 19], + pub c_ispeed: crate::speed_t, + pub c_ospeed: crate::speed_t, } } @@ -15,80 +17,80 @@ s! { // arch/alpha/include/uapi/asm/socket.h // tools/include/uapi/asm-generic/socket.h // arch/mips/include/uapi/asm/socket.h -pub const SOL_SOCKET: ::c_int = 1; +pub const SOL_SOCKET: c_int = 1; // Defined in unix/linux_like/mod.rs -// pub const SO_DEBUG: ::c_int = 1; -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; -pub const SO_NO_CHECK: ::c_int = 11; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_LINGER: ::c_int = 13; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_REUSEPORT: ::c_int = 15; -pub const SO_PASSCRED: ::c_int = 16; -pub const SO_PEERCRED: ::c_int = 17; -pub const SO_RCVLOWAT: ::c_int = 18; -pub const SO_SNDLOWAT: ::c_int = 19; -pub const SO_RCVTIMEO: ::c_int = 20; -pub const SO_SNDTIMEO: ::c_int = 21; -// pub const SO_RCVTIMEO_OLD: ::c_int = 20; -// pub const SO_SNDTIMEO_OLD: ::c_int = 21; -pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; -pub const SO_BINDTODEVICE: ::c_int = 25; -pub const SO_ATTACH_FILTER: ::c_int = 26; -pub const SO_DETACH_FILTER: ::c_int = 27; -pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; -pub const SO_PEERNAME: ::c_int = 28; -pub const SO_TIMESTAMP: ::c_int = 29; -// pub const SO_TIMESTAMP_OLD: ::c_int = 29; -pub const SO_ACCEPTCONN: ::c_int = 30; -pub const SO_PEERSEC: ::c_int = 31; -pub const SO_SNDBUFFORCE: ::c_int = 32; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PASSSEC: ::c_int = 34; -pub const SO_TIMESTAMPNS: ::c_int = 35; -// pub const SO_TIMESTAMPNS_OLD: ::c_int = 35; -pub const SO_MARK: ::c_int = 36; -pub const SO_TIMESTAMPING: ::c_int = 37; -// pub const SO_TIMESTAMPING_OLD: ::c_int = 37; -pub const SO_PROTOCOL: ::c_int = 38; -pub const SO_DOMAIN: ::c_int = 39; -pub const SO_RXQ_OVFL: ::c_int = 40; -pub const SO_WIFI_STATUS: ::c_int = 41; -pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; -pub const SO_PEEK_OFF: ::c_int = 42; -pub const SO_NOFCS: ::c_int = 43; -pub const SO_LOCK_FILTER: ::c_int = 44; -pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; -pub const SO_BUSY_POLL: ::c_int = 46; -pub const SO_MAX_PACING_RATE: ::c_int = 47; -pub const SO_BPF_EXTENSIONS: ::c_int = 48; -pub const SO_INCOMING_CPU: ::c_int = 49; -pub const SO_ATTACH_BPF: ::c_int = 50; -pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; -pub const SO_ATTACH_REUSEPORT_CBPF: ::c_int = 51; -pub const SO_ATTACH_REUSEPORT_EBPF: ::c_int = 52; -pub const SO_CNX_ADVICE: ::c_int = 53; -pub const SCM_TIMESTAMPING_OPT_STATS: ::c_int = 54; -pub const SO_MEMINFO: ::c_int = 55; -pub const SO_INCOMING_NAPI_ID: ::c_int = 56; -pub const SO_COOKIE: ::c_int = 57; -pub const SCM_TIMESTAMPING_PKTINFO: ::c_int = 58; -pub const SO_PEERGROUPS: ::c_int = 59; -pub const SO_ZEROCOPY: ::c_int = 60; -pub const SO_TXTIME: ::c_int = 61; -pub const SCM_TXTIME: ::c_int = SO_TXTIME; -pub const SO_BINDTOIFINDEX: ::c_int = 62; +// pub const SO_DEBUG: c_int = 1; +pub const SO_REUSEADDR: c_int = 2; +pub const SO_TYPE: c_int = 3; +pub const SO_ERROR: c_int = 4; +pub const SO_DONTROUTE: c_int = 5; +pub const SO_BROADCAST: c_int = 6; +pub const SO_SNDBUF: c_int = 7; +pub const SO_RCVBUF: c_int = 8; +pub const SO_KEEPALIVE: c_int = 9; +pub const SO_OOBINLINE: c_int = 10; +pub const SO_NO_CHECK: c_int = 11; +pub const SO_PRIORITY: c_int = 12; +pub const SO_LINGER: c_int = 13; +pub const SO_BSDCOMPAT: c_int = 14; +pub const SO_REUSEPORT: c_int = 15; +pub const SO_PASSCRED: c_int = 16; +pub const SO_PEERCRED: c_int = 17; +pub const SO_RCVLOWAT: c_int = 18; +pub const SO_SNDLOWAT: c_int = 19; +pub const SO_RCVTIMEO: c_int = 20; +pub const SO_SNDTIMEO: c_int = 21; +// pub const SO_RCVTIMEO_OLD: c_int = 20; +// pub const SO_SNDTIMEO_OLD: c_int = 21; +pub const SO_SECURITY_AUTHENTICATION: c_int = 22; +pub const SO_SECURITY_ENCRYPTION_TRANSPORT: c_int = 23; +pub const SO_SECURITY_ENCRYPTION_NETWORK: c_int = 24; +pub const SO_BINDTODEVICE: c_int = 25; +pub const SO_ATTACH_FILTER: c_int = 26; +pub const SO_DETACH_FILTER: c_int = 27; +pub const SO_GET_FILTER: c_int = SO_ATTACH_FILTER; +pub const SO_PEERNAME: c_int = 28; +pub const SO_TIMESTAMP: c_int = 29; +// pub const SO_TIMESTAMP_OLD: c_int = 29; +pub const SO_ACCEPTCONN: c_int = 30; +pub const SO_PEERSEC: c_int = 31; +pub const SO_SNDBUFFORCE: c_int = 32; +pub const SO_RCVBUFFORCE: c_int = 33; +pub const SO_PASSSEC: c_int = 34; +pub const SO_TIMESTAMPNS: c_int = 35; +// pub const SO_TIMESTAMPNS_OLD: c_int = 35; +pub const SO_MARK: c_int = 36; +pub const SO_TIMESTAMPING: c_int = 37; +// pub const SO_TIMESTAMPING_OLD: c_int = 37; +pub const SO_PROTOCOL: c_int = 38; +pub const SO_DOMAIN: c_int = 39; +pub const SO_RXQ_OVFL: c_int = 40; +pub const SO_WIFI_STATUS: c_int = 41; +pub const SCM_WIFI_STATUS: c_int = SO_WIFI_STATUS; +pub const SO_PEEK_OFF: c_int = 42; +pub const SO_NOFCS: c_int = 43; +pub const SO_LOCK_FILTER: c_int = 44; +pub const SO_SELECT_ERR_QUEUE: c_int = 45; +pub const SO_BUSY_POLL: c_int = 46; +pub const SO_MAX_PACING_RATE: c_int = 47; +pub const SO_BPF_EXTENSIONS: c_int = 48; +pub const SO_INCOMING_CPU: c_int = 49; +pub const SO_ATTACH_BPF: c_int = 50; +pub const SO_DETACH_BPF: c_int = SO_DETACH_FILTER; +pub const SO_ATTACH_REUSEPORT_CBPF: c_int = 51; +pub const SO_ATTACH_REUSEPORT_EBPF: c_int = 52; +pub const SO_CNX_ADVICE: c_int = 53; +pub const SCM_TIMESTAMPING_OPT_STATS: c_int = 54; +pub const SO_MEMINFO: c_int = 55; +pub const SO_INCOMING_NAPI_ID: c_int = 56; +pub const SO_COOKIE: c_int = 57; +pub const SCM_TIMESTAMPING_PKTINFO: c_int = 58; +pub const SO_PEERGROUPS: c_int = 59; +pub const SO_ZEROCOPY: c_int = 60; +pub const SO_TXTIME: c_int = 61; +pub const SCM_TXTIME: c_int = SO_TXTIME; +pub const SO_BINDTOIFINDEX: c_int = 62; cfg_if! { // Some of these platforms in CI already have these constants. // But they may still not have those _OLD ones. @@ -102,16 +104,16 @@ cfg_if! { ), not(any(target_env = "musl", target_env = "ohos")) ))] { - pub const SO_TIMESTAMP_NEW: ::c_int = 63; - pub const SO_TIMESTAMPNS_NEW: ::c_int = 64; - pub const SO_TIMESTAMPING_NEW: ::c_int = 65; - pub const SO_RCVTIMEO_NEW: ::c_int = 66; - pub const SO_SNDTIMEO_NEW: ::c_int = 67; - pub const SO_DETACH_REUSEPORT_BPF: ::c_int = 68; + pub const SO_TIMESTAMP_NEW: c_int = 63; + pub const SO_TIMESTAMPNS_NEW: c_int = 64; + pub const SO_TIMESTAMPING_NEW: c_int = 65; + pub const SO_RCVTIMEO_NEW: c_int = 66; + pub const SO_SNDTIMEO_NEW: c_int = 67; + pub const SO_DETACH_REUSEPORT_BPF: c_int = 68; } } -// pub const SO_PREFER_BUSY_POLL: ::c_int = 69; -// pub const SO_BUSY_POLL_BUDGET: ::c_int = 70; +// pub const SO_PREFER_BUSY_POLL: c_int = 69; +// pub const SO_BUSY_POLL_BUDGET: c_int = 70; cfg_if! { if #[cfg(any( @@ -124,126 +126,126 @@ cfg_if! { target_arch = "csky", target_arch = "loongarch64" ))] { - pub const FICLONE: ::c_ulong = 0x40049409; - pub const FICLONERANGE: ::c_ulong = 0x4020940D; + pub const FICLONE: crate::c_ulong = 0x40049409; + pub const FICLONERANGE: crate::c_ulong = 0x4020940D; } } // Defined in unix/linux_like/mod.rs -// pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; -pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; -pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; +// pub const SCM_TIMESTAMP: c_int = SO_TIMESTAMP; +pub const SCM_TIMESTAMPNS: c_int = SO_TIMESTAMPNS; +pub const SCM_TIMESTAMPING: c_int = SO_TIMESTAMPING; // Ioctl Constants -pub const TCGETS: ::Ioctl = 0x5401; -pub const TCSETS: ::Ioctl = 0x5402; -pub const TCSETSW: ::Ioctl = 0x5403; -pub const TCSETSF: ::Ioctl = 0x5404; -pub const TCGETA: ::Ioctl = 0x5405; -pub const TCSETA: ::Ioctl = 0x5406; -pub const TCSETAW: ::Ioctl = 0x5407; -pub const TCSETAF: ::Ioctl = 0x5408; -pub const TCSBRK: ::Ioctl = 0x5409; -pub const TCXONC: ::Ioctl = 0x540A; -pub const TCFLSH: ::Ioctl = 0x540B; -pub const TIOCEXCL: ::Ioctl = 0x540C; -pub const TIOCNXCL: ::Ioctl = 0x540D; -pub const TIOCSCTTY: ::Ioctl = 0x540E; -pub const TIOCGPGRP: ::Ioctl = 0x540F; -pub const TIOCSPGRP: ::Ioctl = 0x5410; -pub const TIOCOUTQ: ::Ioctl = 0x5411; -pub const TIOCSTI: ::Ioctl = 0x5412; -pub const TIOCGWINSZ: ::Ioctl = 0x5413; -pub const TIOCSWINSZ: ::Ioctl = 0x5414; -pub const TIOCMGET: ::Ioctl = 0x5415; -pub const TIOCMBIS: ::Ioctl = 0x5416; -pub const TIOCMBIC: ::Ioctl = 0x5417; -pub const TIOCMSET: ::Ioctl = 0x5418; -pub const TIOCGSOFTCAR: ::Ioctl = 0x5419; -pub const TIOCSSOFTCAR: ::Ioctl = 0x541A; -pub const FIONREAD: ::Ioctl = 0x541B; -pub const TIOCINQ: ::Ioctl = FIONREAD; -pub const TIOCLINUX: ::Ioctl = 0x541C; -pub const TIOCCONS: ::Ioctl = 0x541D; -pub const TIOCGSERIAL: ::Ioctl = 0x541E; -pub const TIOCSSERIAL: ::Ioctl = 0x541F; -pub const TIOCPKT: ::Ioctl = 0x5420; -pub const FIONBIO: ::Ioctl = 0x5421; -pub const TIOCNOTTY: ::Ioctl = 0x5422; -pub const TIOCSETD: ::Ioctl = 0x5423; -pub const TIOCGETD: ::Ioctl = 0x5424; -pub const TCSBRKP: ::Ioctl = 0x5425; -pub const TIOCSBRK: ::Ioctl = 0x5427; -pub const TIOCCBRK: ::Ioctl = 0x5428; -pub const TIOCGSID: ::Ioctl = 0x5429; -pub const TCGETS2: ::Ioctl = 0x802c542a; -pub const TCSETS2: ::Ioctl = 0x402c542b; -pub const TCSETSW2: ::Ioctl = 0x402c542c; -pub const TCSETSF2: ::Ioctl = 0x402c542d; -pub const TIOCGRS485: ::Ioctl = 0x542E; -pub const TIOCSRS485: ::Ioctl = 0x542F; -pub const TIOCGPTN: ::Ioctl = 0x80045430; -pub const TIOCSPTLCK: ::Ioctl = 0x40045431; -pub const TIOCGDEV: ::Ioctl = 0x80045432; -pub const TCGETX: ::Ioctl = 0x5432; -pub const TCSETX: ::Ioctl = 0x5433; -pub const TCSETXF: ::Ioctl = 0x5434; -pub const TCSETXW: ::Ioctl = 0x5435; -pub const TIOCSIG: ::Ioctl = 0x40045436; -pub const TIOCVHANGUP: ::Ioctl = 0x5437; -pub const TIOCGPKT: ::Ioctl = 0x80045438; -pub const TIOCGPTLCK: ::Ioctl = 0x80045439; -pub const TIOCGEXCL: ::Ioctl = 0x80045440; -pub const TIOCGPTPEER: ::Ioctl = 0x5441; -// pub const TIOCGISO7816: ::Ioctl = 0x80285442; -// pub const TIOCSISO7816: ::Ioctl = 0xc0285443; -pub const FIONCLEX: ::Ioctl = 0x5450; -pub const FIOCLEX: ::Ioctl = 0x5451; -pub const FIOASYNC: ::Ioctl = 0x5452; -pub const TIOCSERCONFIG: ::Ioctl = 0x5453; -pub const TIOCSERGWILD: ::Ioctl = 0x5454; -pub const TIOCSERSWILD: ::Ioctl = 0x5455; -pub const TIOCGLCKTRMIOS: ::Ioctl = 0x5456; -pub const TIOCSLCKTRMIOS: ::Ioctl = 0x5457; -pub const TIOCSERGSTRUCT: ::Ioctl = 0x5458; -pub const TIOCSERGETLSR: ::Ioctl = 0x5459; -pub const TIOCSERGETMULTI: ::Ioctl = 0x545A; -pub const TIOCSERSETMULTI: ::Ioctl = 0x545B; -pub const TIOCMIWAIT: ::Ioctl = 0x545C; -pub const TIOCGICOUNT: ::Ioctl = 0x545D; -pub const BLKIOMIN: ::Ioctl = 0x1278; -pub const BLKIOOPT: ::Ioctl = 0x1279; -pub const BLKSSZGET: ::Ioctl = 0x1268; -pub const BLKPBSZGET: ::Ioctl = 0x127B; +pub const TCGETS: Ioctl = 0x5401; +pub const TCSETS: Ioctl = 0x5402; +pub const TCSETSW: Ioctl = 0x5403; +pub const TCSETSF: Ioctl = 0x5404; +pub const TCGETA: Ioctl = 0x5405; +pub const TCSETA: Ioctl = 0x5406; +pub const TCSETAW: Ioctl = 0x5407; +pub const TCSETAF: Ioctl = 0x5408; +pub const TCSBRK: Ioctl = 0x5409; +pub const TCXONC: Ioctl = 0x540A; +pub const TCFLSH: Ioctl = 0x540B; +pub const TIOCEXCL: Ioctl = 0x540C; +pub const TIOCNXCL: Ioctl = 0x540D; +pub const TIOCSCTTY: Ioctl = 0x540E; +pub const TIOCGPGRP: Ioctl = 0x540F; +pub const TIOCSPGRP: Ioctl = 0x5410; +pub const TIOCOUTQ: Ioctl = 0x5411; +pub const TIOCSTI: Ioctl = 0x5412; +pub const TIOCGWINSZ: Ioctl = 0x5413; +pub const TIOCSWINSZ: Ioctl = 0x5414; +pub const TIOCMGET: Ioctl = 0x5415; +pub const TIOCMBIS: Ioctl = 0x5416; +pub const TIOCMBIC: Ioctl = 0x5417; +pub const TIOCMSET: Ioctl = 0x5418; +pub const TIOCGSOFTCAR: Ioctl = 0x5419; +pub const TIOCSSOFTCAR: Ioctl = 0x541A; +pub const FIONREAD: Ioctl = 0x541B; +pub const TIOCINQ: Ioctl = FIONREAD; +pub const TIOCLINUX: Ioctl = 0x541C; +pub const TIOCCONS: Ioctl = 0x541D; +pub const TIOCGSERIAL: Ioctl = 0x541E; +pub const TIOCSSERIAL: Ioctl = 0x541F; +pub const TIOCPKT: Ioctl = 0x5420; +pub const FIONBIO: Ioctl = 0x5421; +pub const TIOCNOTTY: Ioctl = 0x5422; +pub const TIOCSETD: Ioctl = 0x5423; +pub const TIOCGETD: Ioctl = 0x5424; +pub const TCSBRKP: Ioctl = 0x5425; +pub const TIOCSBRK: Ioctl = 0x5427; +pub const TIOCCBRK: Ioctl = 0x5428; +pub const TIOCGSID: Ioctl = 0x5429; +pub const TCGETS2: Ioctl = 0x802c542a; +pub const TCSETS2: Ioctl = 0x402c542b; +pub const TCSETSW2: Ioctl = 0x402c542c; +pub const TCSETSF2: Ioctl = 0x402c542d; +pub const TIOCGRS485: Ioctl = 0x542E; +pub const TIOCSRS485: Ioctl = 0x542F; +pub const TIOCGPTN: Ioctl = 0x80045430; +pub const TIOCSPTLCK: Ioctl = 0x40045431; +pub const TIOCGDEV: Ioctl = 0x80045432; +pub const TCGETX: Ioctl = 0x5432; +pub const TCSETX: Ioctl = 0x5433; +pub const TCSETXF: Ioctl = 0x5434; +pub const TCSETXW: Ioctl = 0x5435; +pub const TIOCSIG: Ioctl = 0x40045436; +pub const TIOCVHANGUP: Ioctl = 0x5437; +pub const TIOCGPKT: Ioctl = 0x80045438; +pub const TIOCGPTLCK: Ioctl = 0x80045439; +pub const TIOCGEXCL: Ioctl = 0x80045440; +pub const TIOCGPTPEER: Ioctl = 0x5441; +// pub const TIOCGISO7816: Ioctl = 0x80285442; +// pub const TIOCSISO7816: Ioctl = 0xc0285443; +pub const FIONCLEX: Ioctl = 0x5450; +pub const FIOCLEX: Ioctl = 0x5451; +pub const FIOASYNC: Ioctl = 0x5452; +pub const TIOCSERCONFIG: Ioctl = 0x5453; +pub const TIOCSERGWILD: Ioctl = 0x5454; +pub const TIOCSERSWILD: Ioctl = 0x5455; +pub const TIOCGLCKTRMIOS: Ioctl = 0x5456; +pub const TIOCSLCKTRMIOS: Ioctl = 0x5457; +pub const TIOCSERGSTRUCT: Ioctl = 0x5458; +pub const TIOCSERGETLSR: Ioctl = 0x5459; +pub const TIOCSERGETMULTI: Ioctl = 0x545A; +pub const TIOCSERSETMULTI: Ioctl = 0x545B; +pub const TIOCMIWAIT: Ioctl = 0x545C; +pub const TIOCGICOUNT: Ioctl = 0x545D; +pub const BLKIOMIN: Ioctl = 0x1278; +pub const BLKIOOPT: Ioctl = 0x1279; +pub const BLKSSZGET: Ioctl = 0x1268; +pub const BLKPBSZGET: Ioctl = 0x127B; // linux/if_tun.h -pub const TUNSETNOCSUM: ::Ioctl = 0x400454c8; -pub const TUNSETDEBUG: ::Ioctl = 0x400454c9; -pub const TUNSETIFF: ::Ioctl = 0x400454ca; -pub const TUNSETPERSIST: ::Ioctl = 0x400454cb; -pub const TUNSETOWNER: ::Ioctl = 0x400454cc; -pub const TUNSETLINK: ::Ioctl = 0x400454cd; -pub const TUNSETGROUP: ::Ioctl = 0x400454ce; -pub const TUNGETFEATURES: ::Ioctl = 0x800454cf; -pub const TUNSETOFFLOAD: ::Ioctl = 0x400454d0; -pub const TUNSETTXFILTER: ::Ioctl = 0x400454d1; -pub const TUNGETIFF: ::Ioctl = 0x800454d2; -pub const TUNGETSNDBUF: ::Ioctl = 0x800454d3; -pub const TUNSETSNDBUF: ::Ioctl = 0x400454d4; -pub const TUNGETVNETHDRSZ: ::Ioctl = 0x800454d7; -pub const TUNSETVNETHDRSZ: ::Ioctl = 0x400454d8; -pub const TUNSETQUEUE: ::Ioctl = 0x400454d9; -pub const TUNSETIFINDEX: ::Ioctl = 0x400454da; -pub const TUNSETVNETLE: ::Ioctl = 0x400454dc; -pub const TUNGETVNETLE: ::Ioctl = 0x800454dd; +pub const TUNSETNOCSUM: Ioctl = 0x400454c8; +pub const TUNSETDEBUG: Ioctl = 0x400454c9; +pub const TUNSETIFF: Ioctl = 0x400454ca; +pub const TUNSETPERSIST: Ioctl = 0x400454cb; +pub const TUNSETOWNER: Ioctl = 0x400454cc; +pub const TUNSETLINK: Ioctl = 0x400454cd; +pub const TUNSETGROUP: Ioctl = 0x400454ce; +pub const TUNGETFEATURES: Ioctl = 0x800454cf; +pub const TUNSETOFFLOAD: Ioctl = 0x400454d0; +pub const TUNSETTXFILTER: Ioctl = 0x400454d1; +pub const TUNGETIFF: Ioctl = 0x800454d2; +pub const TUNGETSNDBUF: Ioctl = 0x800454d3; +pub const TUNSETSNDBUF: Ioctl = 0x400454d4; +pub const TUNGETVNETHDRSZ: Ioctl = 0x800454d7; +pub const TUNSETVNETHDRSZ: Ioctl = 0x400454d8; +pub const TUNSETQUEUE: Ioctl = 0x400454d9; +pub const TUNSETIFINDEX: Ioctl = 0x400454da; +pub const TUNSETVNETLE: Ioctl = 0x400454dc; +pub const TUNGETVNETLE: Ioctl = 0x800454dd; /* The TUNSETVNETBE and TUNGETVNETBE ioctls are for cross-endian support on * little-endian hosts. Not all kernel configurations support them, but all * configurations that support SET also support GET. */ -pub const TUNSETVNETBE: ::Ioctl = 0x400454de; -pub const TUNGETVNETBE: ::Ioctl = 0x800454df; -pub const TUNSETSTEERINGEBPF: ::Ioctl = 0x800454e0; -pub const TUNSETFILTEREBPF: ::Ioctl = 0x800454e1; +pub const TUNSETVNETBE: Ioctl = 0x400454de; +pub const TUNGETVNETBE: Ioctl = 0x800454df; +pub const TUNSETSTEERINGEBPF: Ioctl = 0x800454e0; +pub const TUNSETFILTEREBPF: Ioctl = 0x800454e1; cfg_if! { // Those type are constructed using the _IOC macro @@ -257,17 +259,17 @@ cfg_if! { target_arch = "arm", target_arch = "csky" ))] { - pub const FS_IOC_GETFLAGS: ::Ioctl = 0x80046601; - pub const FS_IOC_SETFLAGS: ::Ioctl = 0x40046602; - pub const FS_IOC_GETVERSION: ::Ioctl = 0x80047601; - pub const FS_IOC_SETVERSION: ::Ioctl = 0x40047602; - pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x80046601; - pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x40046602; - pub const FS_IOC32_GETVERSION: ::Ioctl = 0x80047601; - pub const FS_IOC32_SETVERSION: ::Ioctl = 0x40047602; - pub const TUNATTACHFILTER: ::Ioctl = 0x400854d5; - pub const TUNDETACHFILTER: ::Ioctl = 0x400854d6; - pub const TUNGETFILTER: ::Ioctl = 0x800854db; + pub const FS_IOC_GETFLAGS: Ioctl = 0x80046601; + pub const FS_IOC_SETFLAGS: Ioctl = 0x40046602; + pub const FS_IOC_GETVERSION: Ioctl = 0x80047601; + pub const FS_IOC_SETVERSION: Ioctl = 0x40047602; + pub const FS_IOC32_GETFLAGS: Ioctl = 0x80046601; + pub const FS_IOC32_SETFLAGS: Ioctl = 0x40046602; + pub const FS_IOC32_GETVERSION: Ioctl = 0x80047601; + pub const FS_IOC32_SETVERSION: Ioctl = 0x40047602; + pub const TUNATTACHFILTER: Ioctl = 0x400854d5; + pub const TUNDETACHFILTER: Ioctl = 0x400854d6; + pub const TUNGETFILTER: Ioctl = 0x800854db; } else if #[cfg(any( target_arch = "x86_64", target_arch = "riscv64", @@ -275,102 +277,102 @@ cfg_if! { target_arch = "s390x", target_arch = "loongarch64" ))] { - pub const FS_IOC_GETFLAGS: ::Ioctl = 0x80086601; - pub const FS_IOC_SETFLAGS: ::Ioctl = 0x40086602; - pub const FS_IOC_GETVERSION: ::Ioctl = 0x80087601; - pub const FS_IOC_SETVERSION: ::Ioctl = 0x40087602; - pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x80046601; - pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x40046602; - pub const FS_IOC32_GETVERSION: ::Ioctl = 0x80047601; - pub const FS_IOC32_SETVERSION: ::Ioctl = 0x40047602; - pub const TUNATTACHFILTER: ::Ioctl = 0x401054d5; - pub const TUNDETACHFILTER: ::Ioctl = 0x401054d6; - pub const TUNGETFILTER: ::Ioctl = 0x801054db; + pub const FS_IOC_GETFLAGS: Ioctl = 0x80086601; + pub const FS_IOC_SETFLAGS: Ioctl = 0x40086602; + pub const FS_IOC_GETVERSION: Ioctl = 0x80087601; + pub const FS_IOC_SETVERSION: Ioctl = 0x40087602; + pub const FS_IOC32_GETFLAGS: Ioctl = 0x80046601; + pub const FS_IOC32_SETFLAGS: Ioctl = 0x40046602; + pub const FS_IOC32_GETVERSION: Ioctl = 0x80047601; + pub const FS_IOC32_SETVERSION: Ioctl = 0x40047602; + pub const TUNATTACHFILTER: Ioctl = 0x401054d5; + pub const TUNDETACHFILTER: Ioctl = 0x401054d6; + pub const TUNGETFILTER: Ioctl = 0x801054db; } } cfg_if! { if #[cfg(any(target_arch = "arm", target_arch = "s390x"))] { - pub const FIOQSIZE: ::Ioctl = 0x545E; + pub const FIOQSIZE: Ioctl = 0x545E; } else { - pub const FIOQSIZE: ::Ioctl = 0x5460; + pub const FIOQSIZE: Ioctl = 0x5460; } } -pub const TIOCM_LE: ::c_int = 0x001; -pub const TIOCM_DTR: ::c_int = 0x002; -pub const TIOCM_RTS: ::c_int = 0x004; -pub const TIOCM_ST: ::c_int = 0x008; -pub const TIOCM_SR: ::c_int = 0x010; -pub const TIOCM_CTS: ::c_int = 0x020; -pub const TIOCM_CAR: ::c_int = 0x040; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RNG: ::c_int = 0x080; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; -pub const TIOCM_DSR: ::c_int = 0x100; +pub const TIOCM_LE: c_int = 0x001; +pub const TIOCM_DTR: c_int = 0x002; +pub const TIOCM_RTS: c_int = 0x004; +pub const TIOCM_ST: c_int = 0x008; +pub const TIOCM_SR: c_int = 0x010; +pub const TIOCM_CTS: c_int = 0x020; +pub const TIOCM_CAR: c_int = 0x040; +pub const TIOCM_CD: c_int = TIOCM_CAR; +pub const TIOCM_RNG: c_int = 0x080; +pub const TIOCM_RI: c_int = TIOCM_RNG; +pub const TIOCM_DSR: c_int = 0x100; -pub const BOTHER: ::speed_t = 0o010000; -pub const IBSHIFT: ::tcflag_t = 16; +pub const BOTHER: crate::speed_t = 0o010000; +pub const IBSHIFT: crate::tcflag_t = 16; // RLIMIT Constants cfg_if! { if #[cfg(any(target_env = "gnu", target_env = "uclibc"))] { - pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; - pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; - pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; - pub const RLIMIT_STACK: ::__rlimit_resource_t = 3; - pub const RLIMIT_CORE: ::__rlimit_resource_t = 4; - pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; - pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; - pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; - pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; - pub const RLIMIT_AS: ::__rlimit_resource_t = 9; - pub const RLIMIT_LOCKS: ::__rlimit_resource_t = 10; - pub const RLIMIT_SIGPENDING: ::__rlimit_resource_t = 11; - pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12; - pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; - pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; - pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; + pub const RLIMIT_CPU: crate::__rlimit_resource_t = 0; + pub const RLIMIT_FSIZE: crate::__rlimit_resource_t = 1; + pub const RLIMIT_DATA: crate::__rlimit_resource_t = 2; + pub const RLIMIT_STACK: crate::__rlimit_resource_t = 3; + pub const RLIMIT_CORE: crate::__rlimit_resource_t = 4; + pub const RLIMIT_RSS: crate::__rlimit_resource_t = 5; + pub const RLIMIT_NPROC: crate::__rlimit_resource_t = 6; + pub const RLIMIT_NOFILE: crate::__rlimit_resource_t = 7; + pub const RLIMIT_MEMLOCK: crate::__rlimit_resource_t = 8; + pub const RLIMIT_AS: crate::__rlimit_resource_t = 9; + pub const RLIMIT_LOCKS: crate::__rlimit_resource_t = 10; + pub const RLIMIT_SIGPENDING: crate::__rlimit_resource_t = 11; + pub const RLIMIT_MSGQUEUE: crate::__rlimit_resource_t = 12; + pub const RLIMIT_NICE: crate::__rlimit_resource_t = 13; + pub const RLIMIT_RTPRIO: crate::__rlimit_resource_t = 14; + pub const RLIMIT_RTTIME: crate::__rlimit_resource_t = 15; #[allow(deprecated)] #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] - pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; + pub const RLIMIT_NLIMITS: crate::__rlimit_resource_t = RLIM_NLIMITS; } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] { - pub const RLIMIT_CPU: ::c_int = 0; - pub const RLIMIT_FSIZE: ::c_int = 1; - pub const RLIMIT_DATA: ::c_int = 2; - pub const RLIMIT_STACK: ::c_int = 3; - pub const RLIMIT_CORE: ::c_int = 4; - pub const RLIMIT_RSS: ::c_int = 5; - pub const RLIMIT_NPROC: ::c_int = 6; - pub const RLIMIT_NOFILE: ::c_int = 7; - pub const RLIMIT_MEMLOCK: ::c_int = 8; - pub const RLIMIT_AS: ::c_int = 9; - pub const RLIMIT_LOCKS: ::c_int = 10; - pub const RLIMIT_SIGPENDING: ::c_int = 11; - pub const RLIMIT_MSGQUEUE: ::c_int = 12; - pub const RLIMIT_NICE: ::c_int = 13; - pub const RLIMIT_RTPRIO: ::c_int = 14; - pub const RLIMIT_RTTIME: ::c_int = 15; + pub const RLIMIT_CPU: c_int = 0; + pub const RLIMIT_FSIZE: c_int = 1; + pub const RLIMIT_DATA: c_int = 2; + pub const RLIMIT_STACK: c_int = 3; + pub const RLIMIT_CORE: c_int = 4; + pub const RLIMIT_RSS: c_int = 5; + pub const RLIMIT_NPROC: c_int = 6; + pub const RLIMIT_NOFILE: c_int = 7; + pub const RLIMIT_MEMLOCK: c_int = 8; + pub const RLIMIT_AS: c_int = 9; + pub const RLIMIT_LOCKS: c_int = 10; + pub const RLIMIT_SIGPENDING: c_int = 11; + pub const RLIMIT_MSGQUEUE: c_int = 12; + pub const RLIMIT_NICE: c_int = 13; + pub const RLIMIT_RTPRIO: c_int = 14; + pub const RLIMIT_RTTIME: c_int = 15; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] #[cfg(not(target_arch = "loongarch64"))] - pub const RLIM_NLIMITS: ::c_int = 15; + pub const RLIM_NLIMITS: c_int = 15; #[cfg(target_arch = "loongarch64")] - pub const RLIM_NLIMITS: ::c_int = 16; + pub const RLIM_NLIMITS: c_int = 16; #[allow(deprecated)] #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] - pub const RLIMIT_NLIMITS: ::c_int = RLIM_NLIMITS; + pub const RLIMIT_NLIMITS: c_int = RLIM_NLIMITS; } } cfg_if! { if #[cfg(target_env = "gnu")] { #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] - pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16; + pub const RLIM_NLIMITS: crate::__rlimit_resource_t = 16; } else if #[cfg(target_env = "uclibc")] { #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] - pub const RLIM_NLIMITS: ::__rlimit_resource_t = 15; + pub const RLIM_NLIMITS: crate::__rlimit_resource_t = 15; } } -pub const RLIM_INFINITY: ::rlim_t = !0; +pub const RLIM_INFINITY: crate::rlim_t = !0; diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index 6432bc405bf66..52469befdccc0 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -1,225 +1,227 @@ +use crate::{c_int, c_ulong, Ioctl}; + s! { pub struct termios2 { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; 23], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; 23], + pub c_ispeed: crate::speed_t, + pub c_ospeed: crate::speed_t, } } // arch/mips/include/uapi/asm/socket.h -pub const SOL_SOCKET: ::c_int = 0xffff; +pub const SOL_SOCKET: c_int = 0xffff; // Defined in unix/linux_like/mod.rs -// pub const SO_DEBUG: ::c_int = 0x0001; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_TYPE: ::c_int = 0x1008; -// pub const SO_STYLE: ::c_int = SO_TYPE; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVLOWAT: ::c_int = 0x1004; +// pub const SO_DEBUG: c_int = 0x0001; +pub const SO_REUSEADDR: c_int = 0x0004; +pub const SO_KEEPALIVE: c_int = 0x0008; +pub const SO_DONTROUTE: c_int = 0x0010; +pub const SO_BROADCAST: c_int = 0x0020; +pub const SO_LINGER: c_int = 0x0080; +pub const SO_OOBINLINE: c_int = 0x0100; +pub const SO_REUSEPORT: c_int = 0x0200; +pub const SO_TYPE: c_int = 0x1008; +// pub const SO_STYLE: c_int = SO_TYPE; +pub const SO_ERROR: c_int = 0x1007; +pub const SO_SNDBUF: c_int = 0x1001; +pub const SO_RCVBUF: c_int = 0x1002; +pub const SO_SNDLOWAT: c_int = 0x1003; +pub const SO_RCVLOWAT: c_int = 0x1004; // NOTE: These definitions are now being renamed with _OLD postfix, // but CI haven't support them yet. // Some related consts could be found in b32.rs and b64.rs -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -// pub const SO_SNDTIMEO_OLD: ::c_int = 0x1005; -// pub const SO_RCVTIMEO_OLD: ::c_int = 0x1006; -pub const SO_ACCEPTCONN: ::c_int = 0x1009; -pub const SO_PROTOCOL: ::c_int = 0x1028; -pub const SO_DOMAIN: ::c_int = 0x1029; +pub const SO_SNDTIMEO: c_int = 0x1005; +pub const SO_RCVTIMEO: c_int = 0x1006; +// pub const SO_SNDTIMEO_OLD: c_int = 0x1005; +// pub const SO_RCVTIMEO_OLD: c_int = 0x1006; +pub const SO_ACCEPTCONN: c_int = 0x1009; +pub const SO_PROTOCOL: c_int = 0x1028; +pub const SO_DOMAIN: c_int = 0x1029; -pub const SO_NO_CHECK: ::c_int = 11; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_PASSCRED: ::c_int = 17; -pub const SO_PEERCRED: ::c_int = 18; -pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; -pub const SO_BINDTODEVICE: ::c_int = 25; -pub const SO_ATTACH_FILTER: ::c_int = 26; -pub const SO_DETACH_FILTER: ::c_int = 27; -pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; -pub const SO_PEERNAME: ::c_int = 28; -pub const SO_PEERSEC: ::c_int = 30; -pub const SO_SNDBUFFORCE: ::c_int = 31; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PASSSEC: ::c_int = 34; -pub const SO_MARK: ::c_int = 36; -pub const SO_RXQ_OVFL: ::c_int = 40; -pub const SO_WIFI_STATUS: ::c_int = 41; -pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; -pub const SO_PEEK_OFF: ::c_int = 42; -pub const SO_NOFCS: ::c_int = 43; -pub const SO_LOCK_FILTER: ::c_int = 44; -pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; -pub const SO_BUSY_POLL: ::c_int = 46; -pub const SO_MAX_PACING_RATE: ::c_int = 47; -pub const SO_BPF_EXTENSIONS: ::c_int = 48; -pub const SO_INCOMING_CPU: ::c_int = 49; -pub const SO_ATTACH_BPF: ::c_int = 50; -pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; -pub const SO_ATTACH_REUSEPORT_CBPF: ::c_int = 51; -pub const SO_ATTACH_REUSEPORT_EBPF: ::c_int = 52; -pub const SO_CNX_ADVICE: ::c_int = 53; -pub const SCM_TIMESTAMPING_OPT_STATS: ::c_int = 54; -pub const SO_MEMINFO: ::c_int = 55; -pub const SO_INCOMING_NAPI_ID: ::c_int = 56; -pub const SO_COOKIE: ::c_int = 57; -pub const SCM_TIMESTAMPING_PKTINFO: ::c_int = 58; -pub const SO_PEERGROUPS: ::c_int = 59; -pub const SO_ZEROCOPY: ::c_int = 60; -pub const SO_TXTIME: ::c_int = 61; -pub const SCM_TXTIME: ::c_int = SO_TXTIME; -pub const SO_BINDTOIFINDEX: ::c_int = 62; +pub const SO_NO_CHECK: c_int = 11; +pub const SO_PRIORITY: c_int = 12; +pub const SO_BSDCOMPAT: c_int = 14; +pub const SO_PASSCRED: c_int = 17; +pub const SO_PEERCRED: c_int = 18; +pub const SO_SECURITY_AUTHENTICATION: c_int = 22; +pub const SO_SECURITY_ENCRYPTION_TRANSPORT: c_int = 23; +pub const SO_SECURITY_ENCRYPTION_NETWORK: c_int = 24; +pub const SO_BINDTODEVICE: c_int = 25; +pub const SO_ATTACH_FILTER: c_int = 26; +pub const SO_DETACH_FILTER: c_int = 27; +pub const SO_GET_FILTER: c_int = SO_ATTACH_FILTER; +pub const SO_PEERNAME: c_int = 28; +pub const SO_PEERSEC: c_int = 30; +pub const SO_SNDBUFFORCE: c_int = 31; +pub const SO_RCVBUFFORCE: c_int = 33; +pub const SO_PASSSEC: c_int = 34; +pub const SO_MARK: c_int = 36; +pub const SO_RXQ_OVFL: c_int = 40; +pub const SO_WIFI_STATUS: c_int = 41; +pub const SCM_WIFI_STATUS: c_int = SO_WIFI_STATUS; +pub const SO_PEEK_OFF: c_int = 42; +pub const SO_NOFCS: c_int = 43; +pub const SO_LOCK_FILTER: c_int = 44; +pub const SO_SELECT_ERR_QUEUE: c_int = 45; +pub const SO_BUSY_POLL: c_int = 46; +pub const SO_MAX_PACING_RATE: c_int = 47; +pub const SO_BPF_EXTENSIONS: c_int = 48; +pub const SO_INCOMING_CPU: c_int = 49; +pub const SO_ATTACH_BPF: c_int = 50; +pub const SO_DETACH_BPF: c_int = SO_DETACH_FILTER; +pub const SO_ATTACH_REUSEPORT_CBPF: c_int = 51; +pub const SO_ATTACH_REUSEPORT_EBPF: c_int = 52; +pub const SO_CNX_ADVICE: c_int = 53; +pub const SCM_TIMESTAMPING_OPT_STATS: c_int = 54; +pub const SO_MEMINFO: c_int = 55; +pub const SO_INCOMING_NAPI_ID: c_int = 56; +pub const SO_COOKIE: c_int = 57; +pub const SCM_TIMESTAMPING_PKTINFO: c_int = 58; +pub const SO_PEERGROUPS: c_int = 59; +pub const SO_ZEROCOPY: c_int = 60; +pub const SO_TXTIME: c_int = 61; +pub const SCM_TXTIME: c_int = SO_TXTIME; +pub const SO_BINDTOIFINDEX: c_int = 62; // NOTE: These definitions are now being renamed with _OLD postfix, // but CI haven't support them yet. // Some related consts could be found in b32.rs and b64.rs -pub const SO_TIMESTAMP: ::c_int = 29; -pub const SO_TIMESTAMPNS: ::c_int = 35; -pub const SO_TIMESTAMPING: ::c_int = 37; -// pub const SO_TIMESTAMP_OLD: ::c_int = 29; -// pub const SO_TIMESTAMPNS_OLD: ::c_int = 35; -// pub const SO_TIMESTAMPING_OLD: ::c_int = 37; -// pub const SO_TIMESTAMP_NEW: ::c_int = 63; -// pub const SO_TIMESTAMPNS_NEW: ::c_int = 64; -// pub const SO_TIMESTAMPING_NEW: ::c_int = 65; -// pub const SO_RCVTIMEO_NEW: ::c_int = 66; -// pub const SO_SNDTIMEO_NEW: ::c_int = 67; -// pub const SO_DETACH_REUSEPORT_BPF: ::c_int = 68; -// pub const SO_PREFER_BUSY_POLL: ::c_int = 69; -// pub const SO_BUSY_POLL_BUDGET: ::c_int = 70; +pub const SO_TIMESTAMP: c_int = 29; +pub const SO_TIMESTAMPNS: c_int = 35; +pub const SO_TIMESTAMPING: c_int = 37; +// pub const SO_TIMESTAMP_OLD: c_int = 29; +// pub const SO_TIMESTAMPNS_OLD: c_int = 35; +// pub const SO_TIMESTAMPING_OLD: c_int = 37; +// pub const SO_TIMESTAMP_NEW: c_int = 63; +// pub const SO_TIMESTAMPNS_NEW: c_int = 64; +// pub const SO_TIMESTAMPING_NEW: c_int = 65; +// pub const SO_RCVTIMEO_NEW: c_int = 66; +// pub const SO_SNDTIMEO_NEW: c_int = 67; +// pub const SO_DETACH_REUSEPORT_BPF: c_int = 68; +// pub const SO_PREFER_BUSY_POLL: c_int = 69; +// pub const SO_BUSY_POLL_BUDGET: c_int = 70; -pub const FICLONE: ::c_ulong = 0x80049409; -pub const FICLONERANGE: ::c_ulong = 0x8020940D; +pub const FICLONE: c_ulong = 0x80049409; +pub const FICLONERANGE: c_ulong = 0x8020940D; // Defined in unix/linux_like/mod.rs -// pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; -pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; -pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; +// pub const SCM_TIMESTAMP: c_int = SO_TIMESTAMP; +pub const SCM_TIMESTAMPNS: c_int = SO_TIMESTAMPNS; +pub const SCM_TIMESTAMPING: c_int = SO_TIMESTAMPING; // Ioctl Constants -pub const TCGETS: ::Ioctl = 0x540d; -pub const TCSETS: ::Ioctl = 0x540e; -pub const TCSETSW: ::Ioctl = 0x540f; -pub const TCSETSF: ::Ioctl = 0x5410; -pub const TCGETA: ::Ioctl = 0x5401; -pub const TCSETA: ::Ioctl = 0x5402; -pub const TCSETAW: ::Ioctl = 0x5403; -pub const TCSETAF: ::Ioctl = 0x5404; -pub const TCSBRK: ::Ioctl = 0x5405; -pub const TCXONC: ::Ioctl = 0x5406; -pub const TCFLSH: ::Ioctl = 0x5407; -pub const TIOCEXCL: ::Ioctl = 0x740d; -pub const TIOCNXCL: ::Ioctl = 0x740e; -pub const TIOCSCTTY: ::Ioctl = 0x5480; -pub const TIOCGPGRP: ::Ioctl = 0x40047477; -pub const TIOCSPGRP: ::Ioctl = 0x80047476; -pub const TIOCOUTQ: ::Ioctl = 0x7472; -pub const TIOCSTI: ::Ioctl = 0x5472; -pub const TIOCGWINSZ: ::Ioctl = 0x40087468; -pub const TIOCSWINSZ: ::Ioctl = 0x80087467; -pub const TIOCMGET: ::Ioctl = 0x741d; -pub const TIOCMBIS: ::Ioctl = 0x741b; -pub const TIOCMBIC: ::Ioctl = 0x741c; -pub const TIOCMSET: ::Ioctl = 0x741a; -pub const TIOCGSOFTCAR: ::Ioctl = 0x5481; -pub const TIOCSSOFTCAR: ::Ioctl = 0x5482; -pub const FIONREAD: ::Ioctl = 0x467f; -pub const TIOCINQ: ::Ioctl = FIONREAD; -pub const TIOCLINUX: ::Ioctl = 0x5483; -pub const TIOCCONS: ::Ioctl = 0x80047478; -pub const TIOCGSERIAL: ::Ioctl = 0x5484; -pub const TIOCSSERIAL: ::Ioctl = 0x5485; -pub const TIOCPKT: ::Ioctl = 0x5470; -pub const FIONBIO: ::Ioctl = 0x667e; -pub const TIOCNOTTY: ::Ioctl = 0x5471; -pub const TIOCSETD: ::Ioctl = 0x7401; -pub const TIOCGETD: ::Ioctl = 0x7400; -pub const TCSBRKP: ::Ioctl = 0x5486; -pub const TIOCSBRK: ::Ioctl = 0x5427; -pub const TIOCCBRK: ::Ioctl = 0x5428; -pub const TIOCGSID: ::Ioctl = 0x7416; -pub const TCGETS2: ::Ioctl = 0x4030542a; -pub const TCSETS2: ::Ioctl = 0x8030542b; -pub const TCSETSW2: ::Ioctl = 0x8030542c; -pub const TCSETSF2: ::Ioctl = 0x8030542d; -pub const TIOCGPTN: ::Ioctl = 0x40045430; -pub const TIOCSPTLCK: ::Ioctl = 0x80045431; -pub const TIOCGDEV: ::Ioctl = 0x40045432; -pub const TIOCSIG: ::Ioctl = 0x80045436; -pub const TIOCVHANGUP: ::Ioctl = 0x5437; -pub const TIOCGPKT: ::Ioctl = 0x40045438; -pub const TIOCGPTLCK: ::Ioctl = 0x40045439; -pub const TIOCGEXCL: ::Ioctl = 0x40045440; -pub const TIOCGPTPEER: ::Ioctl = 0x20005441; -//pub const TIOCGISO7816: ::Ioctl = 0x40285442; -//pub const TIOCSISO7816: ::Ioctl = 0xc0285443; -pub const FIONCLEX: ::Ioctl = 0x6602; -pub const FIOCLEX: ::Ioctl = 0x6601; -pub const FIOASYNC: ::Ioctl = 0x667d; -pub const TIOCSERCONFIG: ::Ioctl = 0x5488; -pub const TIOCSERGWILD: ::Ioctl = 0x5489; -pub const TIOCSERSWILD: ::Ioctl = 0x548a; -pub const TIOCGLCKTRMIOS: ::Ioctl = 0x548b; -pub const TIOCSLCKTRMIOS: ::Ioctl = 0x548c; -pub const TIOCSERGSTRUCT: ::Ioctl = 0x548d; -pub const TIOCSERGETLSR: ::Ioctl = 0x548e; -pub const TIOCSERGETMULTI: ::Ioctl = 0x548f; -pub const TIOCSERSETMULTI: ::Ioctl = 0x5490; -pub const TIOCMIWAIT: ::Ioctl = 0x5491; -pub const TIOCGICOUNT: ::Ioctl = 0x5492; -pub const FIOQSIZE: ::Ioctl = 0x667f; -pub const TIOCSLTC: ::Ioctl = 0x7475; -pub const TIOCGETP: ::Ioctl = 0x7408; -pub const TIOCSETP: ::Ioctl = 0x7409; -pub const TIOCSETN: ::Ioctl = 0x740a; -pub const BLKIOMIN: ::Ioctl = 0x20001278; -pub const BLKIOOPT: ::Ioctl = 0x20001279; -pub const BLKSSZGET: ::Ioctl = 0x20001268; -pub const BLKPBSZGET: ::Ioctl = 0x2000127B; +pub const TCGETS: Ioctl = 0x540d; +pub const TCSETS: Ioctl = 0x540e; +pub const TCSETSW: Ioctl = 0x540f; +pub const TCSETSF: Ioctl = 0x5410; +pub const TCGETA: Ioctl = 0x5401; +pub const TCSETA: Ioctl = 0x5402; +pub const TCSETAW: Ioctl = 0x5403; +pub const TCSETAF: Ioctl = 0x5404; +pub const TCSBRK: Ioctl = 0x5405; +pub const TCXONC: Ioctl = 0x5406; +pub const TCFLSH: Ioctl = 0x5407; +pub const TIOCEXCL: Ioctl = 0x740d; +pub const TIOCNXCL: Ioctl = 0x740e; +pub const TIOCSCTTY: Ioctl = 0x5480; +pub const TIOCGPGRP: Ioctl = 0x40047477; +pub const TIOCSPGRP: Ioctl = 0x80047476; +pub const TIOCOUTQ: Ioctl = 0x7472; +pub const TIOCSTI: Ioctl = 0x5472; +pub const TIOCGWINSZ: Ioctl = 0x40087468; +pub const TIOCSWINSZ: Ioctl = 0x80087467; +pub const TIOCMGET: Ioctl = 0x741d; +pub const TIOCMBIS: Ioctl = 0x741b; +pub const TIOCMBIC: Ioctl = 0x741c; +pub const TIOCMSET: Ioctl = 0x741a; +pub const TIOCGSOFTCAR: Ioctl = 0x5481; +pub const TIOCSSOFTCAR: Ioctl = 0x5482; +pub const FIONREAD: Ioctl = 0x467f; +pub const TIOCINQ: Ioctl = FIONREAD; +pub const TIOCLINUX: Ioctl = 0x5483; +pub const TIOCCONS: Ioctl = 0x80047478; +pub const TIOCGSERIAL: Ioctl = 0x5484; +pub const TIOCSSERIAL: Ioctl = 0x5485; +pub const TIOCPKT: Ioctl = 0x5470; +pub const FIONBIO: Ioctl = 0x667e; +pub const TIOCNOTTY: Ioctl = 0x5471; +pub const TIOCSETD: Ioctl = 0x7401; +pub const TIOCGETD: Ioctl = 0x7400; +pub const TCSBRKP: Ioctl = 0x5486; +pub const TIOCSBRK: Ioctl = 0x5427; +pub const TIOCCBRK: Ioctl = 0x5428; +pub const TIOCGSID: Ioctl = 0x7416; +pub const TCGETS2: Ioctl = 0x4030542a; +pub const TCSETS2: Ioctl = 0x8030542b; +pub const TCSETSW2: Ioctl = 0x8030542c; +pub const TCSETSF2: Ioctl = 0x8030542d; +pub const TIOCGPTN: Ioctl = 0x40045430; +pub const TIOCSPTLCK: Ioctl = 0x80045431; +pub const TIOCGDEV: Ioctl = 0x40045432; +pub const TIOCSIG: Ioctl = 0x80045436; +pub const TIOCVHANGUP: Ioctl = 0x5437; +pub const TIOCGPKT: Ioctl = 0x40045438; +pub const TIOCGPTLCK: Ioctl = 0x40045439; +pub const TIOCGEXCL: Ioctl = 0x40045440; +pub const TIOCGPTPEER: Ioctl = 0x20005441; +//pub const TIOCGISO7816: Ioctl = 0x40285442; +//pub const TIOCSISO7816: Ioctl = 0xc0285443; +pub const FIONCLEX: Ioctl = 0x6602; +pub const FIOCLEX: Ioctl = 0x6601; +pub const FIOASYNC: Ioctl = 0x667d; +pub const TIOCSERCONFIG: Ioctl = 0x5488; +pub const TIOCSERGWILD: Ioctl = 0x5489; +pub const TIOCSERSWILD: Ioctl = 0x548a; +pub const TIOCGLCKTRMIOS: Ioctl = 0x548b; +pub const TIOCSLCKTRMIOS: Ioctl = 0x548c; +pub const TIOCSERGSTRUCT: Ioctl = 0x548d; +pub const TIOCSERGETLSR: Ioctl = 0x548e; +pub const TIOCSERGETMULTI: Ioctl = 0x548f; +pub const TIOCSERSETMULTI: Ioctl = 0x5490; +pub const TIOCMIWAIT: Ioctl = 0x5491; +pub const TIOCGICOUNT: Ioctl = 0x5492; +pub const FIOQSIZE: Ioctl = 0x667f; +pub const TIOCSLTC: Ioctl = 0x7475; +pub const TIOCGETP: Ioctl = 0x7408; +pub const TIOCSETP: Ioctl = 0x7409; +pub const TIOCSETN: Ioctl = 0x740a; +pub const BLKIOMIN: Ioctl = 0x20001278; +pub const BLKIOOPT: Ioctl = 0x20001279; +pub const BLKSSZGET: Ioctl = 0x20001268; +pub const BLKPBSZGET: Ioctl = 0x2000127B; // linux/if_tun.h -pub const TUNSETNOCSUM: ::Ioctl = 0x800454c8; -pub const TUNSETDEBUG: ::Ioctl = 0x800454c9; -pub const TUNSETIFF: ::Ioctl = 0x800454ca; -pub const TUNSETPERSIST: ::Ioctl = 0x800454cb; -pub const TUNSETOWNER: ::Ioctl = 0x800454cc; -pub const TUNSETLINK: ::Ioctl = 0x800454cd; -pub const TUNSETGROUP: ::Ioctl = 0x800454ce; -pub const TUNGETFEATURES: ::Ioctl = 0x400454cf; -pub const TUNSETOFFLOAD: ::Ioctl = 0x800454d0; -pub const TUNSETTXFILTER: ::Ioctl = 0x800454d1; -pub const TUNGETIFF: ::Ioctl = 0x400454d2; -pub const TUNGETSNDBUF: ::Ioctl = 0x400454d3; -pub const TUNSETSNDBUF: ::Ioctl = 0x800454d4; -pub const TUNGETVNETHDRSZ: ::Ioctl = 0x400454d7; -pub const TUNSETVNETHDRSZ: ::Ioctl = 0x800454d8; -pub const TUNSETQUEUE: ::Ioctl = 0x800454d9; -pub const TUNSETIFINDEX: ::Ioctl = 0x800454da; -pub const TUNSETVNETLE: ::Ioctl = 0x800454dc; -pub const TUNGETVNETLE: ::Ioctl = 0x400454dd; +pub const TUNSETNOCSUM: Ioctl = 0x800454c8; +pub const TUNSETDEBUG: Ioctl = 0x800454c9; +pub const TUNSETIFF: Ioctl = 0x800454ca; +pub const TUNSETPERSIST: Ioctl = 0x800454cb; +pub const TUNSETOWNER: Ioctl = 0x800454cc; +pub const TUNSETLINK: Ioctl = 0x800454cd; +pub const TUNSETGROUP: Ioctl = 0x800454ce; +pub const TUNGETFEATURES: Ioctl = 0x400454cf; +pub const TUNSETOFFLOAD: Ioctl = 0x800454d0; +pub const TUNSETTXFILTER: Ioctl = 0x800454d1; +pub const TUNGETIFF: Ioctl = 0x400454d2; +pub const TUNGETSNDBUF: Ioctl = 0x400454d3; +pub const TUNSETSNDBUF: Ioctl = 0x800454d4; +pub const TUNGETVNETHDRSZ: Ioctl = 0x400454d7; +pub const TUNSETVNETHDRSZ: Ioctl = 0x800454d8; +pub const TUNSETQUEUE: Ioctl = 0x800454d9; +pub const TUNSETIFINDEX: Ioctl = 0x800454da; +pub const TUNSETVNETLE: Ioctl = 0x800454dc; +pub const TUNGETVNETLE: Ioctl = 0x400454dd; /* The TUNSETVNETBE and TUNGETVNETBE ioctls are for cross-endian support on * little-endian hosts. Not all kernel configurations support them, but all * configurations that support SET also support GET. */ -pub const TUNSETVNETBE: ::Ioctl = 0x800454de; -pub const TUNGETVNETBE: ::Ioctl = 0x400454df; -pub const TUNSETSTEERINGEBPF: ::Ioctl = 0x400454e0; -pub const TUNSETFILTEREBPF: ::Ioctl = 0x400454e1; +pub const TUNSETVNETBE: Ioctl = 0x800454de; +pub const TUNGETVNETBE: Ioctl = 0x400454df; +pub const TUNSETSTEERINGEBPF: Ioctl = 0x400454e0; +pub const TUNSETFILTEREBPF: Ioctl = 0x400454e1; cfg_if! { // Those type are constructed using the _IOC macro @@ -229,110 +231,110 @@ cfg_if! { // where T stands for type ('f','v','X'...) // where N stands for NR (NumbeR) if #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] { - pub const FS_IOC_GETFLAGS: ::Ioctl = 0x40046601; - pub const FS_IOC_SETFLAGS: ::Ioctl = 0x80046602; - pub const FS_IOC_GETVERSION: ::Ioctl = 0x40047601; - pub const FS_IOC_SETVERSION: ::Ioctl = 0x80047602; - pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x40046601; - pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; - pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; - pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; - pub const TUNATTACHFILTER: ::Ioctl = 0x800854d5; - pub const TUNDETACHFILTER: ::Ioctl = 0x800854d6; - pub const TUNGETFILTER: ::Ioctl = 0x400854db; + pub const FS_IOC_GETFLAGS: Ioctl = 0x40046601; + pub const FS_IOC_SETFLAGS: Ioctl = 0x80046602; + pub const FS_IOC_GETVERSION: Ioctl = 0x40047601; + pub const FS_IOC_SETVERSION: Ioctl = 0x80047602; + pub const FS_IOC32_GETFLAGS: Ioctl = 0x40046601; + pub const FS_IOC32_SETFLAGS: Ioctl = 0x80046602; + pub const FS_IOC32_GETVERSION: Ioctl = 0x40047601; + pub const FS_IOC32_SETVERSION: Ioctl = 0x80047602; + pub const TUNATTACHFILTER: Ioctl = 0x800854d5; + pub const TUNDETACHFILTER: Ioctl = 0x800854d6; + pub const TUNGETFILTER: Ioctl = 0x400854db; } else if #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))] { - pub const FS_IOC_GETFLAGS: ::Ioctl = 0x40086601; - pub const FS_IOC_SETFLAGS: ::Ioctl = 0x80086602; - pub const FS_IOC_GETVERSION: ::Ioctl = 0x40087601; - pub const FS_IOC_SETVERSION: ::Ioctl = 0x80087602; - pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x40046601; - pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; - pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; - pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; - pub const TUNATTACHFILTER: ::Ioctl = 0x801054d5; - pub const TUNDETACHFILTER: ::Ioctl = 0x801054d6; - pub const TUNGETFILTER: ::Ioctl = 0x401054db; + pub const FS_IOC_GETFLAGS: Ioctl = 0x40086601; + pub const FS_IOC_SETFLAGS: Ioctl = 0x80086602; + pub const FS_IOC_GETVERSION: Ioctl = 0x40087601; + pub const FS_IOC_SETVERSION: Ioctl = 0x80087602; + pub const FS_IOC32_GETFLAGS: Ioctl = 0x40046601; + pub const FS_IOC32_SETFLAGS: Ioctl = 0x80046602; + pub const FS_IOC32_GETVERSION: Ioctl = 0x40047601; + pub const FS_IOC32_SETVERSION: Ioctl = 0x80047602; + pub const TUNATTACHFILTER: Ioctl = 0x801054d5; + pub const TUNDETACHFILTER: Ioctl = 0x801054d6; + pub const TUNGETFILTER: Ioctl = 0x401054db; } } cfg_if! { if #[cfg(target_env = "musl")] { - pub const TIOCGRS485: ::Ioctl = 0x4020542e; - pub const TIOCSRS485: ::Ioctl = 0xc020542f; + pub const TIOCGRS485: Ioctl = 0x4020542e; + pub const TIOCSRS485: Ioctl = 0xc020542f; } } -pub const TIOCM_LE: ::c_int = 0x001; -pub const TIOCM_DTR: ::c_int = 0x002; -pub const TIOCM_RTS: ::c_int = 0x004; -pub const TIOCM_ST: ::c_int = 0x010; -pub const TIOCM_SR: ::c_int = 0x020; -pub const TIOCM_CTS: ::c_int = 0x040; -pub const TIOCM_CAR: ::c_int = 0x100; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RNG: ::c_int = 0x200; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; -pub const TIOCM_DSR: ::c_int = 0x400; +pub const TIOCM_LE: c_int = 0x001; +pub const TIOCM_DTR: c_int = 0x002; +pub const TIOCM_RTS: c_int = 0x004; +pub const TIOCM_ST: c_int = 0x010; +pub const TIOCM_SR: c_int = 0x020; +pub const TIOCM_CTS: c_int = 0x040; +pub const TIOCM_CAR: c_int = 0x100; +pub const TIOCM_CD: c_int = TIOCM_CAR; +pub const TIOCM_RNG: c_int = 0x200; +pub const TIOCM_RI: c_int = TIOCM_RNG; +pub const TIOCM_DSR: c_int = 0x400; -pub const BOTHER: ::speed_t = 0o010000; -pub const IBSHIFT: ::tcflag_t = 16; +pub const BOTHER: crate::speed_t = 0o010000; +pub const IBSHIFT: crate::tcflag_t = 16; // RLIMIT Constants cfg_if! { if #[cfg(any(target_env = "gnu", target_env = "uclibc"))] { - pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; - pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; - pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; - pub const RLIMIT_STACK: ::__rlimit_resource_t = 3; - pub const RLIMIT_CORE: ::__rlimit_resource_t = 4; - pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 5; - pub const RLIMIT_AS: ::__rlimit_resource_t = 6; - pub const RLIMIT_RSS: ::__rlimit_resource_t = 7; - pub const RLIMIT_NPROC: ::__rlimit_resource_t = 8; - pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 9; - pub const RLIMIT_LOCKS: ::__rlimit_resource_t = 10; - pub const RLIMIT_SIGPENDING: ::__rlimit_resource_t = 11; - pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12; - pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; - pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; - pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; + pub const RLIMIT_CPU: crate::__rlimit_resource_t = 0; + pub const RLIMIT_FSIZE: crate::__rlimit_resource_t = 1; + pub const RLIMIT_DATA: crate::__rlimit_resource_t = 2; + pub const RLIMIT_STACK: crate::__rlimit_resource_t = 3; + pub const RLIMIT_CORE: crate::__rlimit_resource_t = 4; + pub const RLIMIT_NOFILE: crate::__rlimit_resource_t = 5; + pub const RLIMIT_AS: crate::__rlimit_resource_t = 6; + pub const RLIMIT_RSS: crate::__rlimit_resource_t = 7; + pub const RLIMIT_NPROC: crate::__rlimit_resource_t = 8; + pub const RLIMIT_MEMLOCK: crate::__rlimit_resource_t = 9; + pub const RLIMIT_LOCKS: crate::__rlimit_resource_t = 10; + pub const RLIMIT_SIGPENDING: crate::__rlimit_resource_t = 11; + pub const RLIMIT_MSGQUEUE: crate::__rlimit_resource_t = 12; + pub const RLIMIT_NICE: crate::__rlimit_resource_t = 13; + pub const RLIMIT_RTPRIO: crate::__rlimit_resource_t = 14; + pub const RLIMIT_RTTIME: crate::__rlimit_resource_t = 15; #[allow(deprecated)] #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] - pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; + pub const RLIMIT_NLIMITS: crate::__rlimit_resource_t = RLIM_NLIMITS; } else if #[cfg(target_env = "musl")] { - pub const RLIMIT_CPU: ::c_int = 0; - pub const RLIMIT_FSIZE: ::c_int = 1; - pub const RLIMIT_DATA: ::c_int = 2; - pub const RLIMIT_STACK: ::c_int = 3; - pub const RLIMIT_CORE: ::c_int = 4; - pub const RLIMIT_NOFILE: ::c_int = 5; - pub const RLIMIT_AS: ::c_int = 6; - pub const RLIMIT_RSS: ::c_int = 7; - pub const RLIMIT_NPROC: ::c_int = 8; - pub const RLIMIT_MEMLOCK: ::c_int = 9; - pub const RLIMIT_LOCKS: ::c_int = 10; - pub const RLIMIT_SIGPENDING: ::c_int = 11; - pub const RLIMIT_MSGQUEUE: ::c_int = 12; - pub const RLIMIT_NICE: ::c_int = 13; - pub const RLIMIT_RTPRIO: ::c_int = 14; - pub const RLIMIT_RTTIME: ::c_int = 15; + pub const RLIMIT_CPU: c_int = 0; + pub const RLIMIT_FSIZE: c_int = 1; + pub const RLIMIT_DATA: c_int = 2; + pub const RLIMIT_STACK: c_int = 3; + pub const RLIMIT_CORE: c_int = 4; + pub const RLIMIT_NOFILE: c_int = 5; + pub const RLIMIT_AS: c_int = 6; + pub const RLIMIT_RSS: c_int = 7; + pub const RLIMIT_NPROC: c_int = 8; + pub const RLIMIT_MEMLOCK: c_int = 9; + pub const RLIMIT_LOCKS: c_int = 10; + pub const RLIMIT_SIGPENDING: c_int = 11; + pub const RLIMIT_MSGQUEUE: c_int = 12; + pub const RLIMIT_NICE: c_int = 13; + pub const RLIMIT_RTPRIO: c_int = 14; + pub const RLIMIT_RTTIME: c_int = 15; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] - pub const RLIM_NLIMITS: ::c_int = 15; + pub const RLIM_NLIMITS: c_int = 15; #[allow(deprecated)] #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] - pub const RLIMIT_NLIMITS: ::c_int = RLIM_NLIMITS; - pub const RLIM_INFINITY: ::rlim_t = !0; + pub const RLIMIT_NLIMITS: c_int = RLIM_NLIMITS; + pub const RLIM_INFINITY: crate::rlim_t = !0; } } cfg_if! { if #[cfg(target_env = "gnu")] { #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] - pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16; + pub const RLIM_NLIMITS: crate::__rlimit_resource_t = 16; } else if #[cfg(target_env = "uclibc")] { #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] - pub const RLIM_NLIMITS: ::__rlimit_resource_t = 15; + pub const RLIM_NLIMITS: crate::__rlimit_resource_t = 15; } } @@ -341,7 +343,7 @@ cfg_if! { any(target_arch = "mips64", target_arch = "mips64r6"), any(target_env = "gnu", target_env = "uclibc") )] { - pub const RLIM_INFINITY: ::rlim_t = !0; + pub const RLIM_INFINITY: crate::rlim_t = !0; } } @@ -350,6 +352,6 @@ cfg_if! { any(target_arch = "mips", target_arch = "mips32r6"), any(target_env = "gnu", target_env = "uclibc") )] { - pub const RLIM_INFINITY: ::rlim_t = 0x7fffffff; + pub const RLIM_INFINITY: crate::rlim_t = 0x7fffffff; } } diff --git a/src/unix/linux_like/linux/arch/powerpc/mod.rs b/src/unix/linux_like/linux/arch/powerpc/mod.rs index ca2ffd348e8db..2c856061d3391 100644 --- a/src/unix/linux_like/linux/arch/powerpc/mod.rs +++ b/src/unix/linux_like/linux/arch/powerpc/mod.rs @@ -1,211 +1,213 @@ +use crate::{c_int, c_ulong, Ioctl}; + // arch/powerpc/include/uapi/asm/socket.h -pub const SOL_SOCKET: ::c_int = 1; +pub const SOL_SOCKET: c_int = 1; // Defined in unix/linux_like/mod.rs -// pub const SO_DEBUG: ::c_int = 1; -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; -pub const SO_NO_CHECK: ::c_int = 11; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_LINGER: ::c_int = 13; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_REUSEPORT: ::c_int = 15; +// pub const SO_DEBUG: c_int = 1; +pub const SO_REUSEADDR: c_int = 2; +pub const SO_TYPE: c_int = 3; +pub const SO_ERROR: c_int = 4; +pub const SO_DONTROUTE: c_int = 5; +pub const SO_BROADCAST: c_int = 6; +pub const SO_SNDBUF: c_int = 7; +pub const SO_RCVBUF: c_int = 8; +pub const SO_KEEPALIVE: c_int = 9; +pub const SO_OOBINLINE: c_int = 10; +pub const SO_NO_CHECK: c_int = 11; +pub const SO_PRIORITY: c_int = 12; +pub const SO_LINGER: c_int = 13; +pub const SO_BSDCOMPAT: c_int = 14; +pub const SO_REUSEPORT: c_int = 15; // powerpc only differs in these -pub const SO_RCVLOWAT: ::c_int = 16; -pub const SO_SNDLOWAT: ::c_int = 17; -pub const SO_RCVTIMEO: ::c_int = 18; -pub const SO_SNDTIMEO: ::c_int = 19; -// pub const SO_RCVTIMEO_OLD: ::c_int = 18; -// pub const SO_SNDTIMEO_OLD: ::c_int = 19; -pub const SO_PASSCRED: ::c_int = 20; -pub const SO_PEERCRED: ::c_int = 21; +pub const SO_RCVLOWAT: c_int = 16; +pub const SO_SNDLOWAT: c_int = 17; +pub const SO_RCVTIMEO: c_int = 18; +pub const SO_SNDTIMEO: c_int = 19; +// pub const SO_RCVTIMEO_OLD: c_int = 18; +// pub const SO_SNDTIMEO_OLD: c_int = 19; +pub const SO_PASSCRED: c_int = 20; +pub const SO_PEERCRED: c_int = 21; // end -pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; -pub const SO_BINDTODEVICE: ::c_int = 25; -pub const SO_ATTACH_FILTER: ::c_int = 26; -pub const SO_DETACH_FILTER: ::c_int = 27; -pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; -pub const SO_PEERNAME: ::c_int = 28; -pub const SO_TIMESTAMP: ::c_int = 29; -// pub const SO_TIMESTAMP_OLD: ::c_int = 29; -pub const SO_ACCEPTCONN: ::c_int = 30; -pub const SO_PEERSEC: ::c_int = 31; -pub const SO_SNDBUFFORCE: ::c_int = 32; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PASSSEC: ::c_int = 34; -pub const SO_TIMESTAMPNS: ::c_int = 35; -// pub const SO_TIMESTAMPNS_OLD: ::c_int = 35; -pub const SO_MARK: ::c_int = 36; -pub const SO_TIMESTAMPING: ::c_int = 37; -// pub const SO_TIMESTAMPING_OLD: ::c_int = 37; -pub const SO_PROTOCOL: ::c_int = 38; -pub const SO_DOMAIN: ::c_int = 39; -pub const SO_RXQ_OVFL: ::c_int = 40; -pub const SO_WIFI_STATUS: ::c_int = 41; -pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; -pub const SO_PEEK_OFF: ::c_int = 42; -pub const SO_NOFCS: ::c_int = 43; -pub const SO_LOCK_FILTER: ::c_int = 44; -pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; -pub const SO_BUSY_POLL: ::c_int = 46; -pub const SO_MAX_PACING_RATE: ::c_int = 47; -pub const SO_BPF_EXTENSIONS: ::c_int = 48; -pub const SO_INCOMING_CPU: ::c_int = 49; -pub const SO_ATTACH_BPF: ::c_int = 50; -pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; -pub const SO_ATTACH_REUSEPORT_CBPF: ::c_int = 51; -pub const SO_ATTACH_REUSEPORT_EBPF: ::c_int = 52; -pub const SO_CNX_ADVICE: ::c_int = 53; -pub const SCM_TIMESTAMPING_OPT_STATS: ::c_int = 54; -pub const SO_MEMINFO: ::c_int = 55; -pub const SO_INCOMING_NAPI_ID: ::c_int = 56; -pub const SO_COOKIE: ::c_int = 57; -pub const SCM_TIMESTAMPING_PKTINFO: ::c_int = 58; -pub const SO_PEERGROUPS: ::c_int = 59; -pub const SO_ZEROCOPY: ::c_int = 60; -pub const SO_TXTIME: ::c_int = 61; -pub const SCM_TXTIME: ::c_int = SO_TXTIME; -pub const SO_BINDTOIFINDEX: ::c_int = 62; -// pub const SO_TIMESTAMP_NEW: ::c_int = 63; -// pub const SO_TIMESTAMPNS_NEW: ::c_int = 64; -// pub const SO_TIMESTAMPING_NEW: ::c_int = 65; -// pub const SO_RCVTIMEO_NEW: ::c_int = 66; -// pub const SO_SNDTIMEO_NEW: ::c_int = 67; -// pub const SO_DETACH_REUSEPORT_BPF: ::c_int = 68; -// pub const SO_PREFER_BUSY_POLL: ::c_int = 69; -// pub const SO_BUSY_POLL_BUDGET: ::c_int = 70; +pub const SO_SECURITY_AUTHENTICATION: c_int = 22; +pub const SO_SECURITY_ENCRYPTION_TRANSPORT: c_int = 23; +pub const SO_SECURITY_ENCRYPTION_NETWORK: c_int = 24; +pub const SO_BINDTODEVICE: c_int = 25; +pub const SO_ATTACH_FILTER: c_int = 26; +pub const SO_DETACH_FILTER: c_int = 27; +pub const SO_GET_FILTER: c_int = SO_ATTACH_FILTER; +pub const SO_PEERNAME: c_int = 28; +pub const SO_TIMESTAMP: c_int = 29; +// pub const SO_TIMESTAMP_OLD: c_int = 29; +pub const SO_ACCEPTCONN: c_int = 30; +pub const SO_PEERSEC: c_int = 31; +pub const SO_SNDBUFFORCE: c_int = 32; +pub const SO_RCVBUFFORCE: c_int = 33; +pub const SO_PASSSEC: c_int = 34; +pub const SO_TIMESTAMPNS: c_int = 35; +// pub const SO_TIMESTAMPNS_OLD: c_int = 35; +pub const SO_MARK: c_int = 36; +pub const SO_TIMESTAMPING: c_int = 37; +// pub const SO_TIMESTAMPING_OLD: c_int = 37; +pub const SO_PROTOCOL: c_int = 38; +pub const SO_DOMAIN: c_int = 39; +pub const SO_RXQ_OVFL: c_int = 40; +pub const SO_WIFI_STATUS: c_int = 41; +pub const SCM_WIFI_STATUS: c_int = SO_WIFI_STATUS; +pub const SO_PEEK_OFF: c_int = 42; +pub const SO_NOFCS: c_int = 43; +pub const SO_LOCK_FILTER: c_int = 44; +pub const SO_SELECT_ERR_QUEUE: c_int = 45; +pub const SO_BUSY_POLL: c_int = 46; +pub const SO_MAX_PACING_RATE: c_int = 47; +pub const SO_BPF_EXTENSIONS: c_int = 48; +pub const SO_INCOMING_CPU: c_int = 49; +pub const SO_ATTACH_BPF: c_int = 50; +pub const SO_DETACH_BPF: c_int = SO_DETACH_FILTER; +pub const SO_ATTACH_REUSEPORT_CBPF: c_int = 51; +pub const SO_ATTACH_REUSEPORT_EBPF: c_int = 52; +pub const SO_CNX_ADVICE: c_int = 53; +pub const SCM_TIMESTAMPING_OPT_STATS: c_int = 54; +pub const SO_MEMINFO: c_int = 55; +pub const SO_INCOMING_NAPI_ID: c_int = 56; +pub const SO_COOKIE: c_int = 57; +pub const SCM_TIMESTAMPING_PKTINFO: c_int = 58; +pub const SO_PEERGROUPS: c_int = 59; +pub const SO_ZEROCOPY: c_int = 60; +pub const SO_TXTIME: c_int = 61; +pub const SCM_TXTIME: c_int = SO_TXTIME; +pub const SO_BINDTOIFINDEX: c_int = 62; +// pub const SO_TIMESTAMP_NEW: c_int = 63; +// pub const SO_TIMESTAMPNS_NEW: c_int = 64; +// pub const SO_TIMESTAMPING_NEW: c_int = 65; +// pub const SO_RCVTIMEO_NEW: c_int = 66; +// pub const SO_SNDTIMEO_NEW: c_int = 67; +// pub const SO_DETACH_REUSEPORT_BPF: c_int = 68; +// pub const SO_PREFER_BUSY_POLL: c_int = 69; +// pub const SO_BUSY_POLL_BUDGET: c_int = 70; -pub const FICLONE: ::c_ulong = 0x80049409; -pub const FICLONERANGE: ::c_ulong = 0x8020940D; +pub const FICLONE: c_ulong = 0x80049409; +pub const FICLONERANGE: c_ulong = 0x8020940D; // Defined in unix/linux_like/mod.rs -// pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; -pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; -pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; +// pub const SCM_TIMESTAMP: c_int = SO_TIMESTAMP; +pub const SCM_TIMESTAMPNS: c_int = SO_TIMESTAMPNS; +pub const SCM_TIMESTAMPING: c_int = SO_TIMESTAMPING; // Ioctl Constants cfg_if! { if #[cfg(target_env = "gnu")] { - pub const TCGETS: ::Ioctl = 0x403c7413; - pub const TCSETS: ::Ioctl = 0x803c7414; - pub const TCSETSW: ::Ioctl = 0x803c7415; - pub const TCSETSF: ::Ioctl = 0x803c7416; + pub const TCGETS: Ioctl = 0x403c7413; + pub const TCSETS: Ioctl = 0x803c7414; + pub const TCSETSW: Ioctl = 0x803c7415; + pub const TCSETSF: Ioctl = 0x803c7416; } else if #[cfg(target_env = "musl")] { - pub const TCGETS: ::Ioctl = 0x402c7413; - pub const TCSETS: ::Ioctl = 0x802c7414; - pub const TCSETSW: ::Ioctl = 0x802c7415; - pub const TCSETSF: ::Ioctl = 0x802c7416; + pub const TCGETS: Ioctl = 0x402c7413; + pub const TCSETS: Ioctl = 0x802c7414; + pub const TCSETSW: Ioctl = 0x802c7415; + pub const TCSETSF: Ioctl = 0x802c7416; } } -pub const TCGETA: ::Ioctl = 0x40147417; -pub const TCSETA: ::Ioctl = 0x80147418; -pub const TCSETAW: ::Ioctl = 0x80147419; -pub const TCSETAF: ::Ioctl = 0x8014741C; -pub const TCSBRK: ::Ioctl = 0x2000741D; -pub const TCXONC: ::Ioctl = 0x2000741E; -pub const TCFLSH: ::Ioctl = 0x2000741F; -pub const TIOCEXCL: ::Ioctl = 0x540C; -pub const TIOCNXCL: ::Ioctl = 0x540D; -pub const TIOCSCTTY: ::Ioctl = 0x540E; -pub const TIOCGPGRP: ::Ioctl = 0x40047477; -pub const TIOCSPGRP: ::Ioctl = 0x80047476; -pub const TIOCOUTQ: ::Ioctl = 0x40047473; -pub const TIOCSTI: ::Ioctl = 0x5412; -pub const TIOCGWINSZ: ::Ioctl = 0x40087468; -pub const TIOCSWINSZ: ::Ioctl = 0x80087467; -pub const TIOCMGET: ::Ioctl = 0x5415; -pub const TIOCMBIS: ::Ioctl = 0x5416; -pub const TIOCMBIC: ::Ioctl = 0x5417; -pub const TIOCMSET: ::Ioctl = 0x5418; -pub const TIOCGSOFTCAR: ::Ioctl = 0x5419; -pub const TIOCSSOFTCAR: ::Ioctl = 0x541A; -pub const FIONREAD: ::Ioctl = 0x4004667F; -pub const TIOCINQ: ::Ioctl = FIONREAD; -pub const TIOCLINUX: ::Ioctl = 0x541C; -pub const TIOCCONS: ::Ioctl = 0x541D; -pub const TIOCGSERIAL: ::Ioctl = 0x541E; -pub const TIOCSSERIAL: ::Ioctl = 0x541F; -pub const TIOCPKT: ::Ioctl = 0x5420; -pub const FIONBIO: ::Ioctl = 0x8004667e; -pub const TIOCNOTTY: ::Ioctl = 0x5422; -pub const TIOCSETD: ::Ioctl = 0x5423; -pub const TIOCGETD: ::Ioctl = 0x5424; -pub const TCSBRKP: ::Ioctl = 0x5425; -pub const TIOCSBRK: ::Ioctl = 0x5427; -pub const TIOCCBRK: ::Ioctl = 0x5428; -pub const TIOCGSID: ::Ioctl = 0x5429; -pub const TIOCGRS485: ::Ioctl = 0x542e; -pub const TIOCSRS485: ::Ioctl = 0x542f; -pub const TIOCGPTN: ::Ioctl = 0x40045430; -pub const TIOCSPTLCK: ::Ioctl = 0x80045431; -pub const TIOCGDEV: ::Ioctl = 0x40045432; -pub const TIOCSIG: ::Ioctl = 0x80045436; -pub const TIOCVHANGUP: ::Ioctl = 0x5437; -pub const TIOCGPKT: ::Ioctl = 0x40045438; -pub const TIOCGPTLCK: ::Ioctl = 0x40045439; -pub const TIOCGEXCL: ::Ioctl = 0x40045440; -pub const TIOCGPTPEER: ::Ioctl = 0x20005441; -//pub const TIOCGISO7816: ::Ioctl = 0x40285442; -//pub const TIOCSISO7816: ::Ioctl = 0xc0285443; -pub const FIONCLEX: ::Ioctl = 0x20006602; -pub const FIOCLEX: ::Ioctl = 0x20006601; -pub const FIOASYNC: ::Ioctl = 0x8004667d; -pub const TIOCSERCONFIG: ::Ioctl = 0x5453; -pub const TIOCSERGWILD: ::Ioctl = 0x5454; -pub const TIOCSERSWILD: ::Ioctl = 0x5455; -pub const TIOCGLCKTRMIOS: ::Ioctl = 0x5456; -pub const TIOCSLCKTRMIOS: ::Ioctl = 0x5457; -pub const TIOCSERGSTRUCT: ::Ioctl = 0x5458; -pub const TIOCSERGETLSR: ::Ioctl = 0x5459; -pub const TIOCSERGETMULTI: ::Ioctl = 0x545A; -pub const TIOCSERSETMULTI: ::Ioctl = 0x545B; -pub const TIOCMIWAIT: ::Ioctl = 0x545C; -pub const TIOCGICOUNT: ::Ioctl = 0x545D; -pub const BLKIOMIN: ::Ioctl = 0x20001278; -pub const BLKIOOPT: ::Ioctl = 0x20001279; -pub const BLKSSZGET: ::Ioctl = 0x20001268; -pub const BLKPBSZGET: ::Ioctl = 0x2000127B; -//pub const FIOQSIZE: ::Ioctl = 0x40086680; +pub const TCGETA: Ioctl = 0x40147417; +pub const TCSETA: Ioctl = 0x80147418; +pub const TCSETAW: Ioctl = 0x80147419; +pub const TCSETAF: Ioctl = 0x8014741C; +pub const TCSBRK: Ioctl = 0x2000741D; +pub const TCXONC: Ioctl = 0x2000741E; +pub const TCFLSH: Ioctl = 0x2000741F; +pub const TIOCEXCL: Ioctl = 0x540C; +pub const TIOCNXCL: Ioctl = 0x540D; +pub const TIOCSCTTY: Ioctl = 0x540E; +pub const TIOCGPGRP: Ioctl = 0x40047477; +pub const TIOCSPGRP: Ioctl = 0x80047476; +pub const TIOCOUTQ: Ioctl = 0x40047473; +pub const TIOCSTI: Ioctl = 0x5412; +pub const TIOCGWINSZ: Ioctl = 0x40087468; +pub const TIOCSWINSZ: Ioctl = 0x80087467; +pub const TIOCMGET: Ioctl = 0x5415; +pub const TIOCMBIS: Ioctl = 0x5416; +pub const TIOCMBIC: Ioctl = 0x5417; +pub const TIOCMSET: Ioctl = 0x5418; +pub const TIOCGSOFTCAR: Ioctl = 0x5419; +pub const TIOCSSOFTCAR: Ioctl = 0x541A; +pub const FIONREAD: Ioctl = 0x4004667F; +pub const TIOCINQ: Ioctl = FIONREAD; +pub const TIOCLINUX: Ioctl = 0x541C; +pub const TIOCCONS: Ioctl = 0x541D; +pub const TIOCGSERIAL: Ioctl = 0x541E; +pub const TIOCSSERIAL: Ioctl = 0x541F; +pub const TIOCPKT: Ioctl = 0x5420; +pub const FIONBIO: Ioctl = 0x8004667e; +pub const TIOCNOTTY: Ioctl = 0x5422; +pub const TIOCSETD: Ioctl = 0x5423; +pub const TIOCGETD: Ioctl = 0x5424; +pub const TCSBRKP: Ioctl = 0x5425; +pub const TIOCSBRK: Ioctl = 0x5427; +pub const TIOCCBRK: Ioctl = 0x5428; +pub const TIOCGSID: Ioctl = 0x5429; +pub const TIOCGRS485: Ioctl = 0x542e; +pub const TIOCSRS485: Ioctl = 0x542f; +pub const TIOCGPTN: Ioctl = 0x40045430; +pub const TIOCSPTLCK: Ioctl = 0x80045431; +pub const TIOCGDEV: Ioctl = 0x40045432; +pub const TIOCSIG: Ioctl = 0x80045436; +pub const TIOCVHANGUP: Ioctl = 0x5437; +pub const TIOCGPKT: Ioctl = 0x40045438; +pub const TIOCGPTLCK: Ioctl = 0x40045439; +pub const TIOCGEXCL: Ioctl = 0x40045440; +pub const TIOCGPTPEER: Ioctl = 0x20005441; +//pub const TIOCGISO7816: Ioctl = 0x40285442; +//pub const TIOCSISO7816: Ioctl = 0xc0285443; +pub const FIONCLEX: Ioctl = 0x20006602; +pub const FIOCLEX: Ioctl = 0x20006601; +pub const FIOASYNC: Ioctl = 0x8004667d; +pub const TIOCSERCONFIG: Ioctl = 0x5453; +pub const TIOCSERGWILD: Ioctl = 0x5454; +pub const TIOCSERSWILD: Ioctl = 0x5455; +pub const TIOCGLCKTRMIOS: Ioctl = 0x5456; +pub const TIOCSLCKTRMIOS: Ioctl = 0x5457; +pub const TIOCSERGSTRUCT: Ioctl = 0x5458; +pub const TIOCSERGETLSR: Ioctl = 0x5459; +pub const TIOCSERGETMULTI: Ioctl = 0x545A; +pub const TIOCSERSETMULTI: Ioctl = 0x545B; +pub const TIOCMIWAIT: Ioctl = 0x545C; +pub const TIOCGICOUNT: Ioctl = 0x545D; +pub const BLKIOMIN: Ioctl = 0x20001278; +pub const BLKIOOPT: Ioctl = 0x20001279; +pub const BLKSSZGET: Ioctl = 0x20001268; +pub const BLKPBSZGET: Ioctl = 0x2000127B; +//pub const FIOQSIZE: Ioctl = 0x40086680; // linux/if_tun.h -pub const TUNSETNOCSUM: ::Ioctl = 0x800454c8; -pub const TUNSETDEBUG: ::Ioctl = 0x800454c9; -pub const TUNSETIFF: ::Ioctl = 0x800454ca; -pub const TUNSETPERSIST: ::Ioctl = 0x800454cb; -pub const TUNSETOWNER: ::Ioctl = 0x800454cc; -pub const TUNSETLINK: ::Ioctl = 0x800454cd; -pub const TUNSETGROUP: ::Ioctl = 0x800454ce; -pub const TUNGETFEATURES: ::Ioctl = 0x400454cf; -pub const TUNSETOFFLOAD: ::Ioctl = 0x800454d0; -pub const TUNSETTXFILTER: ::Ioctl = 0x800454d1; -pub const TUNGETIFF: ::Ioctl = 0x400454d2; -pub const TUNGETSNDBUF: ::Ioctl = 0x400454d3; -pub const TUNSETSNDBUF: ::Ioctl = 0x800454d4; -pub const TUNGETVNETHDRSZ: ::Ioctl = 0x400454d7; -pub const TUNSETVNETHDRSZ: ::Ioctl = 0x800454d8; -pub const TUNSETQUEUE: ::Ioctl = 0x800454d9; -pub const TUNSETIFINDEX: ::Ioctl = 0x800454da; -pub const TUNSETVNETLE: ::Ioctl = 0x800454dc; -pub const TUNGETVNETLE: ::Ioctl = 0x400454dd; +pub const TUNSETNOCSUM: Ioctl = 0x800454c8; +pub const TUNSETDEBUG: Ioctl = 0x800454c9; +pub const TUNSETIFF: Ioctl = 0x800454ca; +pub const TUNSETPERSIST: Ioctl = 0x800454cb; +pub const TUNSETOWNER: Ioctl = 0x800454cc; +pub const TUNSETLINK: Ioctl = 0x800454cd; +pub const TUNSETGROUP: Ioctl = 0x800454ce; +pub const TUNGETFEATURES: Ioctl = 0x400454cf; +pub const TUNSETOFFLOAD: Ioctl = 0x800454d0; +pub const TUNSETTXFILTER: Ioctl = 0x800454d1; +pub const TUNGETIFF: Ioctl = 0x400454d2; +pub const TUNGETSNDBUF: Ioctl = 0x400454d3; +pub const TUNSETSNDBUF: Ioctl = 0x800454d4; +pub const TUNGETVNETHDRSZ: Ioctl = 0x400454d7; +pub const TUNSETVNETHDRSZ: Ioctl = 0x800454d8; +pub const TUNSETQUEUE: Ioctl = 0x800454d9; +pub const TUNSETIFINDEX: Ioctl = 0x800454da; +pub const TUNSETVNETLE: Ioctl = 0x800454dc; +pub const TUNGETVNETLE: Ioctl = 0x400454dd; /* The TUNSETVNETBE and TUNGETVNETBE ioctls are for cross-endian support on * little-endian hosts. Not all kernel configurations support them, but all * configurations that support SET also support GET. */ -pub const TUNSETVNETBE: ::Ioctl = 0x800454de; -pub const TUNGETVNETBE: ::Ioctl = 0x400454df; -pub const TUNSETSTEERINGEBPF: ::Ioctl = 0x400454e0; -pub const TUNSETFILTEREBPF: ::Ioctl = 0x400454e1; +pub const TUNSETVNETBE: Ioctl = 0x800454de; +pub const TUNGETVNETBE: Ioctl = 0x400454df; +pub const TUNSETSTEERINGEBPF: Ioctl = 0x400454e0; +pub const TUNSETFILTEREBPF: Ioctl = 0x400454e1; cfg_if! { // Those type are constructed using the _IOC macro @@ -215,94 +217,94 @@ cfg_if! { // where T stands for type ('f','v','X'...) // where N stands for NR (NumbeR) if #[cfg(target_arch = "powerpc")] { - pub const FS_IOC_GETFLAGS: ::Ioctl = 0x40046601; - pub const FS_IOC_SETFLAGS: ::Ioctl = 0x80046602; - pub const FS_IOC_GETVERSION: ::Ioctl = 0x40047601; - pub const FS_IOC_SETVERSION: ::Ioctl = 0x80047602; - pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x40046601; - pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; - pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; - pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; - pub const TUNATTACHFILTER: ::Ioctl = 0x800854d5; - pub const TUNDETACHFILTER: ::Ioctl = 0x800854d6; - pub const TUNGETFILTER: ::Ioctl = 0x400854db; + pub const FS_IOC_GETFLAGS: Ioctl = 0x40046601; + pub const FS_IOC_SETFLAGS: Ioctl = 0x80046602; + pub const FS_IOC_GETVERSION: Ioctl = 0x40047601; + pub const FS_IOC_SETVERSION: Ioctl = 0x80047602; + pub const FS_IOC32_GETFLAGS: Ioctl = 0x40046601; + pub const FS_IOC32_SETFLAGS: Ioctl = 0x80046602; + pub const FS_IOC32_GETVERSION: Ioctl = 0x40047601; + pub const FS_IOC32_SETVERSION: Ioctl = 0x80047602; + pub const TUNATTACHFILTER: Ioctl = 0x800854d5; + pub const TUNDETACHFILTER: Ioctl = 0x800854d6; + pub const TUNGETFILTER: Ioctl = 0x400854db; } else if #[cfg(target_arch = "powerpc64")] { - pub const FS_IOC_GETFLAGS: ::Ioctl = 0x40086601; - pub const FS_IOC_SETFLAGS: ::Ioctl = 0x80086602; - pub const FS_IOC_GETVERSION: ::Ioctl = 0x40087601; - pub const FS_IOC_SETVERSION: ::Ioctl = 0x80087602; - pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x40046601; - pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; - pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; - pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; - pub const TUNATTACHFILTER: ::Ioctl = 0x801054d5; - pub const TUNDETACHFILTER: ::Ioctl = 0x801054d6; - pub const TUNGETFILTER: ::Ioctl = 0x401054db; + pub const FS_IOC_GETFLAGS: Ioctl = 0x40086601; + pub const FS_IOC_SETFLAGS: Ioctl = 0x80086602; + pub const FS_IOC_GETVERSION: Ioctl = 0x40087601; + pub const FS_IOC_SETVERSION: Ioctl = 0x80087602; + pub const FS_IOC32_GETFLAGS: Ioctl = 0x40046601; + pub const FS_IOC32_SETFLAGS: Ioctl = 0x80046602; + pub const FS_IOC32_GETVERSION: Ioctl = 0x40047601; + pub const FS_IOC32_SETVERSION: Ioctl = 0x80047602; + pub const TUNATTACHFILTER: Ioctl = 0x801054d5; + pub const TUNDETACHFILTER: Ioctl = 0x801054d6; + pub const TUNGETFILTER: Ioctl = 0x401054db; } } -pub const TIOCM_LE: ::c_int = 0x001; -pub const TIOCM_DTR: ::c_int = 0x002; -pub const TIOCM_RTS: ::c_int = 0x004; -pub const TIOCM_ST: ::c_int = 0x008; -pub const TIOCM_SR: ::c_int = 0x010; -pub const TIOCM_CTS: ::c_int = 0x020; -pub const TIOCM_CAR: ::c_int = 0x040; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RNG: ::c_int = 0x080; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; -pub const TIOCM_DSR: ::c_int = 0x100; +pub const TIOCM_LE: c_int = 0x001; +pub const TIOCM_DTR: c_int = 0x002; +pub const TIOCM_RTS: c_int = 0x004; +pub const TIOCM_ST: c_int = 0x008; +pub const TIOCM_SR: c_int = 0x010; +pub const TIOCM_CTS: c_int = 0x020; +pub const TIOCM_CAR: c_int = 0x040; +pub const TIOCM_CD: c_int = TIOCM_CAR; +pub const TIOCM_RNG: c_int = 0x080; +pub const TIOCM_RI: c_int = TIOCM_RNG; +pub const TIOCM_DSR: c_int = 0x100; -pub const BOTHER: ::speed_t = 0o0037; -pub const IBSHIFT: ::tcflag_t = 16; +pub const BOTHER: crate::speed_t = 0o0037; +pub const IBSHIFT: crate::tcflag_t = 16; // RLIMIT Constants cfg_if! { if #[cfg(target_env = "gnu")] { - pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; - pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; - pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; - pub const RLIMIT_STACK: ::__rlimit_resource_t = 3; - pub const RLIMIT_CORE: ::__rlimit_resource_t = 4; - pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; - pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; - pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; - pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; - pub const RLIMIT_AS: ::__rlimit_resource_t = 9; - pub const RLIMIT_LOCKS: ::__rlimit_resource_t = 10; - pub const RLIMIT_SIGPENDING: ::__rlimit_resource_t = 11; - pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12; - pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; - pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; - pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; + pub const RLIMIT_CPU: crate::__rlimit_resource_t = 0; + pub const RLIMIT_FSIZE: crate::__rlimit_resource_t = 1; + pub const RLIMIT_DATA: crate::__rlimit_resource_t = 2; + pub const RLIMIT_STACK: crate::__rlimit_resource_t = 3; + pub const RLIMIT_CORE: crate::__rlimit_resource_t = 4; + pub const RLIMIT_RSS: crate::__rlimit_resource_t = 5; + pub const RLIMIT_NPROC: crate::__rlimit_resource_t = 6; + pub const RLIMIT_NOFILE: crate::__rlimit_resource_t = 7; + pub const RLIMIT_MEMLOCK: crate::__rlimit_resource_t = 8; + pub const RLIMIT_AS: crate::__rlimit_resource_t = 9; + pub const RLIMIT_LOCKS: crate::__rlimit_resource_t = 10; + pub const RLIMIT_SIGPENDING: crate::__rlimit_resource_t = 11; + pub const RLIMIT_MSGQUEUE: crate::__rlimit_resource_t = 12; + pub const RLIMIT_NICE: crate::__rlimit_resource_t = 13; + pub const RLIMIT_RTPRIO: crate::__rlimit_resource_t = 14; + pub const RLIMIT_RTTIME: crate::__rlimit_resource_t = 15; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] - pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16; + pub const RLIM_NLIMITS: crate::__rlimit_resource_t = 16; #[allow(deprecated)] #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] - pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; + pub const RLIMIT_NLIMITS: crate::__rlimit_resource_t = RLIM_NLIMITS; } else if #[cfg(target_env = "musl")] { - pub const RLIMIT_CPU: ::c_int = 0; - pub const RLIMIT_FSIZE: ::c_int = 1; - pub const RLIMIT_DATA: ::c_int = 2; - pub const RLIMIT_STACK: ::c_int = 3; - pub const RLIMIT_CORE: ::c_int = 4; - pub const RLIMIT_RSS: ::c_int = 5; - pub const RLIMIT_NPROC: ::c_int = 6; - pub const RLIMIT_NOFILE: ::c_int = 7; - pub const RLIMIT_MEMLOCK: ::c_int = 8; - pub const RLIMIT_AS: ::c_int = 9; - pub const RLIMIT_LOCKS: ::c_int = 10; - pub const RLIMIT_SIGPENDING: ::c_int = 11; - pub const RLIMIT_MSGQUEUE: ::c_int = 12; - pub const RLIMIT_NICE: ::c_int = 13; - pub const RLIMIT_RTPRIO: ::c_int = 14; - pub const RLIMIT_RTTIME: ::c_int = 15; + pub const RLIMIT_CPU: c_int = 0; + pub const RLIMIT_FSIZE: c_int = 1; + pub const RLIMIT_DATA: c_int = 2; + pub const RLIMIT_STACK: c_int = 3; + pub const RLIMIT_CORE: c_int = 4; + pub const RLIMIT_RSS: c_int = 5; + pub const RLIMIT_NPROC: c_int = 6; + pub const RLIMIT_NOFILE: c_int = 7; + pub const RLIMIT_MEMLOCK: c_int = 8; + pub const RLIMIT_AS: c_int = 9; + pub const RLIMIT_LOCKS: c_int = 10; + pub const RLIMIT_SIGPENDING: c_int = 11; + pub const RLIMIT_MSGQUEUE: c_int = 12; + pub const RLIMIT_NICE: c_int = 13; + pub const RLIMIT_RTPRIO: c_int = 14; + pub const RLIMIT_RTTIME: c_int = 15; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] - pub const RLIM_NLIMITS: ::c_int = 15; + pub const RLIM_NLIMITS: c_int = 15; #[allow(deprecated)] #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] - pub const RLIMIT_NLIMITS: ::c_int = RLIM_NLIMITS; + pub const RLIMIT_NLIMITS: c_int = RLIM_NLIMITS; } } -pub const RLIM_INFINITY: ::rlim_t = !0; +pub const RLIM_INFINITY: crate::rlim_t = !0; diff --git a/src/unix/linux_like/linux/arch/sparc/mod.rs b/src/unix/linux_like/linux/arch/sparc/mod.rs index b64e6ce7149a5..40454fde34f5d 100644 --- a/src/unix/linux_like/linux/arch/sparc/mod.rs +++ b/src/unix/linux_like/linux/arch/sparc/mod.rs @@ -1,261 +1,263 @@ +use crate::{c_int, Ioctl}; + s! { pub struct termios2 { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; 19], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; 19], + pub c_ispeed: crate::speed_t, + pub c_ospeed: crate::speed_t, } } // arch/sparc/include/uapi/asm/socket.h -pub const SOL_SOCKET: ::c_int = 0xffff; +pub const SOL_SOCKET: c_int = 0xffff; // Defined in unix/linux_like/mod.rs -// pub const SO_DEBUG: ::c_int = 0x0001; -pub const SO_PASSCRED: ::c_int = 0x0002; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_PEERCRED: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_BSDCOMPAT: ::c_int = 0x0400; -pub const SO_RCVLOWAT: ::c_int = 0x0800; -pub const SO_SNDLOWAT: ::c_int = 0x1000; -pub const SO_RCVTIMEO: ::c_int = 0x2000; -pub const SO_SNDTIMEO: ::c_int = 0x4000; -// pub const SO_RCVTIMEO_OLD: ::c_int = 0x2000; -// pub const SO_SNDTIMEO_OLD: ::c_int = 0x4000; -pub const SO_ACCEPTCONN: ::c_int = 0x8000; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDBUFFORCE: ::c_int = 0x100a; -pub const SO_RCVBUFFORCE: ::c_int = 0x100b; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_TYPE: ::c_int = 0x1008; -pub const SO_PROTOCOL: ::c_int = 0x1028; -pub const SO_DOMAIN: ::c_int = 0x1029; -pub const SO_NO_CHECK: ::c_int = 0x000b; -pub const SO_PRIORITY: ::c_int = 0x000c; -pub const SO_BINDTODEVICE: ::c_int = 0x000d; -pub const SO_ATTACH_FILTER: ::c_int = 0x001a; -pub const SO_DETACH_FILTER: ::c_int = 0x001b; -pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; -pub const SO_PEERNAME: ::c_int = 0x001c; -pub const SO_PEERSEC: ::c_int = 0x001e; -pub const SO_PASSSEC: ::c_int = 0x001f; -pub const SO_MARK: ::c_int = 0x0022; -pub const SO_RXQ_OVFL: ::c_int = 0x0024; -pub const SO_WIFI_STATUS: ::c_int = 0x0025; -pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; -pub const SO_PEEK_OFF: ::c_int = 0x0026; -pub const SO_NOFCS: ::c_int = 0x0027; -pub const SO_LOCK_FILTER: ::c_int = 0x0028; -pub const SO_SELECT_ERR_QUEUE: ::c_int = 0x0029; -pub const SO_BUSY_POLL: ::c_int = 0x0030; -pub const SO_MAX_PACING_RATE: ::c_int = 0x0031; -pub const SO_BPF_EXTENSIONS: ::c_int = 0x0032; -pub const SO_INCOMING_CPU: ::c_int = 0x0033; -pub const SO_ATTACH_BPF: ::c_int = 0x0034; -pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; -pub const SO_ATTACH_REUSEPORT_CBPF: ::c_int = 0x0035; -pub const SO_ATTACH_REUSEPORT_EBPF: ::c_int = 0x0036; -pub const SO_CNX_ADVICE: ::c_int = 0x0037; -pub const SCM_TIMESTAMPING_OPT_STATS: ::c_int = 0x0038; -pub const SO_MEMINFO: ::c_int = 0x0039; -pub const SO_INCOMING_NAPI_ID: ::c_int = 0x003a; -pub const SO_COOKIE: ::c_int = 0x003b; -pub const SCM_TIMESTAMPING_PKTINFO: ::c_int = 0x003c; -pub const SO_PEERGROUPS: ::c_int = 0x003d; -pub const SO_ZEROCOPY: ::c_int = 0x003e; -pub const SO_TXTIME: ::c_int = 0x003f; -pub const SCM_TXTIME: ::c_int = SO_TXTIME; -pub const SO_BINDTOIFINDEX: ::c_int = 0x0041; -pub const SO_SECURITY_AUTHENTICATION: ::c_int = 0x5001; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 0x5002; -pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 0x5004; -pub const SO_TIMESTAMP: ::c_int = 0x001d; -pub const SO_TIMESTAMPNS: ::c_int = 0x0021; -pub const SO_TIMESTAMPING: ::c_int = 0x0023; -// pub const SO_TIMESTAMP_OLD: ::c_int = 0x001d; -// pub const SO_TIMESTAMPNS_OLD: ::c_int = 0x0021; -// pub const SO_TIMESTAMPING_OLD: ::c_int = 0x0023; -// pub const SO_TIMESTAMP_NEW: ::c_int = 0x0046; -// pub const SO_TIMESTAMPNS_NEW: ::c_int = 0x0042; -// pub const SO_TIMESTAMPING_NEW: ::c_int = 0x0043; -// pub const SO_RCVTIMEO_NEW: ::c_int = 0x0044; -// pub const SO_SNDTIMEO_NEW: ::c_int = 0x0045; -// pub const SO_DETACH_REUSEPORT_BPF: ::c_int = 0x0047; -// pub const SO_PREFER_BUSY_POLL: ::c_int = 0x0048; -// pub const SO_BUSY_POLL_BUDGET: ::c_int = 0x0049; +// pub const SO_DEBUG: c_int = 0x0001; +pub const SO_PASSCRED: c_int = 0x0002; +pub const SO_REUSEADDR: c_int = 0x0004; +pub const SO_KEEPALIVE: c_int = 0x0008; +pub const SO_DONTROUTE: c_int = 0x0010; +pub const SO_BROADCAST: c_int = 0x0020; +pub const SO_PEERCRED: c_int = 0x0040; +pub const SO_LINGER: c_int = 0x0080; +pub const SO_OOBINLINE: c_int = 0x0100; +pub const SO_REUSEPORT: c_int = 0x0200; +pub const SO_BSDCOMPAT: c_int = 0x0400; +pub const SO_RCVLOWAT: c_int = 0x0800; +pub const SO_SNDLOWAT: c_int = 0x1000; +pub const SO_RCVTIMEO: c_int = 0x2000; +pub const SO_SNDTIMEO: c_int = 0x4000; +// pub const SO_RCVTIMEO_OLD: c_int = 0x2000; +// pub const SO_SNDTIMEO_OLD: c_int = 0x4000; +pub const SO_ACCEPTCONN: c_int = 0x8000; +pub const SO_SNDBUF: c_int = 0x1001; +pub const SO_RCVBUF: c_int = 0x1002; +pub const SO_SNDBUFFORCE: c_int = 0x100a; +pub const SO_RCVBUFFORCE: c_int = 0x100b; +pub const SO_ERROR: c_int = 0x1007; +pub const SO_TYPE: c_int = 0x1008; +pub const SO_PROTOCOL: c_int = 0x1028; +pub const SO_DOMAIN: c_int = 0x1029; +pub const SO_NO_CHECK: c_int = 0x000b; +pub const SO_PRIORITY: c_int = 0x000c; +pub const SO_BINDTODEVICE: c_int = 0x000d; +pub const SO_ATTACH_FILTER: c_int = 0x001a; +pub const SO_DETACH_FILTER: c_int = 0x001b; +pub const SO_GET_FILTER: c_int = SO_ATTACH_FILTER; +pub const SO_PEERNAME: c_int = 0x001c; +pub const SO_PEERSEC: c_int = 0x001e; +pub const SO_PASSSEC: c_int = 0x001f; +pub const SO_MARK: c_int = 0x0022; +pub const SO_RXQ_OVFL: c_int = 0x0024; +pub const SO_WIFI_STATUS: c_int = 0x0025; +pub const SCM_WIFI_STATUS: c_int = SO_WIFI_STATUS; +pub const SO_PEEK_OFF: c_int = 0x0026; +pub const SO_NOFCS: c_int = 0x0027; +pub const SO_LOCK_FILTER: c_int = 0x0028; +pub const SO_SELECT_ERR_QUEUE: c_int = 0x0029; +pub const SO_BUSY_POLL: c_int = 0x0030; +pub const SO_MAX_PACING_RATE: c_int = 0x0031; +pub const SO_BPF_EXTENSIONS: c_int = 0x0032; +pub const SO_INCOMING_CPU: c_int = 0x0033; +pub const SO_ATTACH_BPF: c_int = 0x0034; +pub const SO_DETACH_BPF: c_int = SO_DETACH_FILTER; +pub const SO_ATTACH_REUSEPORT_CBPF: c_int = 0x0035; +pub const SO_ATTACH_REUSEPORT_EBPF: c_int = 0x0036; +pub const SO_CNX_ADVICE: c_int = 0x0037; +pub const SCM_TIMESTAMPING_OPT_STATS: c_int = 0x0038; +pub const SO_MEMINFO: c_int = 0x0039; +pub const SO_INCOMING_NAPI_ID: c_int = 0x003a; +pub const SO_COOKIE: c_int = 0x003b; +pub const SCM_TIMESTAMPING_PKTINFO: c_int = 0x003c; +pub const SO_PEERGROUPS: c_int = 0x003d; +pub const SO_ZEROCOPY: c_int = 0x003e; +pub const SO_TXTIME: c_int = 0x003f; +pub const SCM_TXTIME: c_int = SO_TXTIME; +pub const SO_BINDTOIFINDEX: c_int = 0x0041; +pub const SO_SECURITY_AUTHENTICATION: c_int = 0x5001; +pub const SO_SECURITY_ENCRYPTION_TRANSPORT: c_int = 0x5002; +pub const SO_SECURITY_ENCRYPTION_NETWORK: c_int = 0x5004; +pub const SO_TIMESTAMP: c_int = 0x001d; +pub const SO_TIMESTAMPNS: c_int = 0x0021; +pub const SO_TIMESTAMPING: c_int = 0x0023; +// pub const SO_TIMESTAMP_OLD: c_int = 0x001d; +// pub const SO_TIMESTAMPNS_OLD: c_int = 0x0021; +// pub const SO_TIMESTAMPING_OLD: c_int = 0x0023; +// pub const SO_TIMESTAMP_NEW: c_int = 0x0046; +// pub const SO_TIMESTAMPNS_NEW: c_int = 0x0042; +// pub const SO_TIMESTAMPING_NEW: c_int = 0x0043; +// pub const SO_RCVTIMEO_NEW: c_int = 0x0044; +// pub const SO_SNDTIMEO_NEW: c_int = 0x0045; +// pub const SO_DETACH_REUSEPORT_BPF: c_int = 0x0047; +// pub const SO_PREFER_BUSY_POLL: c_int = 0x0048; +// pub const SO_BUSY_POLL_BUDGET: c_int = 0x0049; // Defined in unix/linux_like/mod.rs -// pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; -pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; -pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; +// pub const SCM_TIMESTAMP: c_int = SO_TIMESTAMP; +pub const SCM_TIMESTAMPNS: c_int = SO_TIMESTAMPNS; +pub const SCM_TIMESTAMPING: c_int = SO_TIMESTAMPING; // Ioctl Constants -pub const TCGETS: ::Ioctl = 0x40245408; -pub const TCSETS: ::Ioctl = 0x80245409; -pub const TCSETSW: ::Ioctl = 0x8024540a; -pub const TCSETSF: ::Ioctl = 0x8024540b; -pub const TCGETA: ::Ioctl = 0x40125401; -pub const TCSETA: ::Ioctl = 0x80125402; -pub const TCSETAW: ::Ioctl = 0x80125403; -pub const TCSETAF: ::Ioctl = 0x80125404; -pub const TCSBRK: ::Ioctl = 0x20005405; -pub const TCXONC: ::Ioctl = 0x20005406; -pub const TCFLSH: ::Ioctl = 0x20005407; -pub const TIOCEXCL: ::Ioctl = 0x2000740d; -pub const TIOCNXCL: ::Ioctl = 0x2000740e; -pub const TIOCSCTTY: ::Ioctl = 0x20007484; -pub const TIOCGPGRP: ::Ioctl = 0x40047483; -pub const TIOCSPGRP: ::Ioctl = 0x80047482; -pub const TIOCOUTQ: ::Ioctl = 0x40047473; -pub const TIOCSTI: ::Ioctl = 0x80017472; -pub const TIOCGWINSZ: ::Ioctl = 0x40087468; -pub const TIOCSWINSZ: ::Ioctl = 0x80087467; -pub const TIOCMGET: ::Ioctl = 0x4004746a; -pub const TIOCMBIS: ::Ioctl = 0x8004746c; -pub const TIOCMBIC: ::Ioctl = 0x8004746b; -pub const TIOCMSET: ::Ioctl = 0x8004746d; -pub const TIOCGSOFTCAR: ::Ioctl = 0x40047464; -pub const TIOCSSOFTCAR: ::Ioctl = 0x80047465; -pub const FIONREAD: ::Ioctl = 0x4004667f; -pub const TIOCINQ: ::Ioctl = FIONREAD; -pub const TIOCLINUX: ::Ioctl = 0x541C; -pub const TIOCCONS: ::Ioctl = 0x20007424; -pub const TIOCGSERIAL: ::Ioctl = 0x541E; -pub const TIOCSSERIAL: ::Ioctl = 0x541F; -pub const TIOCPKT: ::Ioctl = 0x80047470; -pub const FIONBIO: ::Ioctl = 0x8004667e; -pub const TIOCNOTTY: ::Ioctl = 0x20007471; -pub const TIOCSETD: ::Ioctl = 0x80047401; -pub const TIOCGETD: ::Ioctl = 0x40047400; -pub const TCSBRKP: ::Ioctl = 0x5425; -pub const TIOCSBRK: ::Ioctl = 0x2000747b; -pub const TIOCCBRK: ::Ioctl = 0x2000747a; -pub const TIOCGSID: ::Ioctl = 0x40047485; -pub const TCGETS2: ::Ioctl = 0x402c540c; -pub const TCSETS2: ::Ioctl = 0x802c540d; -pub const TCSETSW2: ::Ioctl = 0x802c540e; -pub const TCSETSF2: ::Ioctl = 0x802c540f; -pub const TIOCGPTN: ::Ioctl = 0x40047486; -pub const TIOCSPTLCK: ::Ioctl = 0x80047487; -pub const TIOCGDEV: ::Ioctl = 0x40045432; -pub const TIOCSIG: ::Ioctl = 0x80047488; -pub const TIOCVHANGUP: ::Ioctl = 0x20005437; -pub const TIOCGPKT: ::Ioctl = 0x40045438; -pub const TIOCGPTLCK: ::Ioctl = 0x40045439; -pub const TIOCGEXCL: ::Ioctl = 0x40045440; -pub const TIOCGPTPEER: ::Ioctl = 0x20007489; -pub const FIONCLEX: ::Ioctl = 0x20006602; -pub const FIOCLEX: ::Ioctl = 0x20006601; -pub const TIOCSERCONFIG: ::Ioctl = 0x5453; -pub const TIOCSERGWILD: ::Ioctl = 0x5454; -pub const TIOCSERSWILD: ::Ioctl = 0x5455; -pub const TIOCGLCKTRMIOS: ::Ioctl = 0x5456; -pub const TIOCSLCKTRMIOS: ::Ioctl = 0x5457; -pub const TIOCSERGSTRUCT: ::Ioctl = 0x5458; -pub const TIOCSERGETLSR: ::Ioctl = 0x5459; -pub const TIOCSERGETMULTI: ::Ioctl = 0x545A; -pub const TIOCSERSETMULTI: ::Ioctl = 0x545B; -pub const TIOCMIWAIT: ::Ioctl = 0x545C; -pub const TIOCGICOUNT: ::Ioctl = 0x545D; -pub const TIOCSTART: ::Ioctl = 0x2000746e; -pub const TIOCSTOP: ::Ioctl = 0x2000746f; -pub const BLKIOMIN: ::Ioctl = 0x20001278; -pub const BLKIOOPT: ::Ioctl = 0x20001279; -pub const BLKSSZGET: ::Ioctl = 0x20001268; -pub const BLKPBSZGET: ::Ioctl = 0x2000127B; +pub const TCGETS: Ioctl = 0x40245408; +pub const TCSETS: Ioctl = 0x80245409; +pub const TCSETSW: Ioctl = 0x8024540a; +pub const TCSETSF: Ioctl = 0x8024540b; +pub const TCGETA: Ioctl = 0x40125401; +pub const TCSETA: Ioctl = 0x80125402; +pub const TCSETAW: Ioctl = 0x80125403; +pub const TCSETAF: Ioctl = 0x80125404; +pub const TCSBRK: Ioctl = 0x20005405; +pub const TCXONC: Ioctl = 0x20005406; +pub const TCFLSH: Ioctl = 0x20005407; +pub const TIOCEXCL: Ioctl = 0x2000740d; +pub const TIOCNXCL: Ioctl = 0x2000740e; +pub const TIOCSCTTY: Ioctl = 0x20007484; +pub const TIOCGPGRP: Ioctl = 0x40047483; +pub const TIOCSPGRP: Ioctl = 0x80047482; +pub const TIOCOUTQ: Ioctl = 0x40047473; +pub const TIOCSTI: Ioctl = 0x80017472; +pub const TIOCGWINSZ: Ioctl = 0x40087468; +pub const TIOCSWINSZ: Ioctl = 0x80087467; +pub const TIOCMGET: Ioctl = 0x4004746a; +pub const TIOCMBIS: Ioctl = 0x8004746c; +pub const TIOCMBIC: Ioctl = 0x8004746b; +pub const TIOCMSET: Ioctl = 0x8004746d; +pub const TIOCGSOFTCAR: Ioctl = 0x40047464; +pub const TIOCSSOFTCAR: Ioctl = 0x80047465; +pub const FIONREAD: Ioctl = 0x4004667f; +pub const TIOCINQ: Ioctl = FIONREAD; +pub const TIOCLINUX: Ioctl = 0x541C; +pub const TIOCCONS: Ioctl = 0x20007424; +pub const TIOCGSERIAL: Ioctl = 0x541E; +pub const TIOCSSERIAL: Ioctl = 0x541F; +pub const TIOCPKT: Ioctl = 0x80047470; +pub const FIONBIO: Ioctl = 0x8004667e; +pub const TIOCNOTTY: Ioctl = 0x20007471; +pub const TIOCSETD: Ioctl = 0x80047401; +pub const TIOCGETD: Ioctl = 0x40047400; +pub const TCSBRKP: Ioctl = 0x5425; +pub const TIOCSBRK: Ioctl = 0x2000747b; +pub const TIOCCBRK: Ioctl = 0x2000747a; +pub const TIOCGSID: Ioctl = 0x40047485; +pub const TCGETS2: Ioctl = 0x402c540c; +pub const TCSETS2: Ioctl = 0x802c540d; +pub const TCSETSW2: Ioctl = 0x802c540e; +pub const TCSETSF2: Ioctl = 0x802c540f; +pub const TIOCGPTN: Ioctl = 0x40047486; +pub const TIOCSPTLCK: Ioctl = 0x80047487; +pub const TIOCGDEV: Ioctl = 0x40045432; +pub const TIOCSIG: Ioctl = 0x80047488; +pub const TIOCVHANGUP: Ioctl = 0x20005437; +pub const TIOCGPKT: Ioctl = 0x40045438; +pub const TIOCGPTLCK: Ioctl = 0x40045439; +pub const TIOCGEXCL: Ioctl = 0x40045440; +pub const TIOCGPTPEER: Ioctl = 0x20007489; +pub const FIONCLEX: Ioctl = 0x20006602; +pub const FIOCLEX: Ioctl = 0x20006601; +pub const TIOCSERCONFIG: Ioctl = 0x5453; +pub const TIOCSERGWILD: Ioctl = 0x5454; +pub const TIOCSERSWILD: Ioctl = 0x5455; +pub const TIOCGLCKTRMIOS: Ioctl = 0x5456; +pub const TIOCSLCKTRMIOS: Ioctl = 0x5457; +pub const TIOCSERGSTRUCT: Ioctl = 0x5458; +pub const TIOCSERGETLSR: Ioctl = 0x5459; +pub const TIOCSERGETMULTI: Ioctl = 0x545A; +pub const TIOCSERSETMULTI: Ioctl = 0x545B; +pub const TIOCMIWAIT: Ioctl = 0x545C; +pub const TIOCGICOUNT: Ioctl = 0x545D; +pub const TIOCSTART: Ioctl = 0x2000746e; +pub const TIOCSTOP: Ioctl = 0x2000746f; +pub const BLKIOMIN: Ioctl = 0x20001278; +pub const BLKIOOPT: Ioctl = 0x20001279; +pub const BLKSSZGET: Ioctl = 0x20001268; +pub const BLKPBSZGET: Ioctl = 0x2000127B; -//pub const FIOASYNC: ::Ioctl = 0x4004667d; -//pub const FIOQSIZE: ::Ioctl = ; -//pub const TIOCGISO7816: ::Ioctl = 0x40285443; -//pub const TIOCSISO7816: ::Ioctl = 0xc0285444; -//pub const TIOCGRS485: ::Ioctl = 0x40205441; -//pub const TIOCSRS485: ::Ioctl = 0xc0205442; +//pub const FIOASYNC: Ioctl = 0x4004667d; +//pub const FIOQSIZE: Ioctl = ; +//pub const TIOCGISO7816: Ioctl = 0x40285443; +//pub const TIOCSISO7816: Ioctl = 0xc0285444; +//pub const TIOCGRS485: Ioctl = 0x40205441; +//pub const TIOCSRS485: Ioctl = 0xc0205442; // linux/if_tun.h -pub const TUNSETNOCSUM: ::Ioctl = 0x800454c8; -pub const TUNSETDEBUG: ::Ioctl = 0x800454c9; -pub const TUNSETIFF: ::Ioctl = 0x800454ca; -pub const TUNSETPERSIST: ::Ioctl = 0x800454cb; -pub const TUNSETOWNER: ::Ioctl = 0x800454cc; -pub const TUNSETLINK: ::Ioctl = 0x800454cd; -pub const TUNSETGROUP: ::Ioctl = 0x800454ce; -pub const TUNGETFEATURES: ::Ioctl = 0x400454cf; -pub const TUNSETOFFLOAD: ::Ioctl = 0x800454d0; -pub const TUNSETTXFILTER: ::Ioctl = 0x800454d1; -pub const TUNGETIFF: ::Ioctl = 0x400454d2; -pub const TUNGETSNDBUF: ::Ioctl = 0x400454d3; -pub const TUNSETSNDBUF: ::Ioctl = 0x800454d4; -pub const TUNGETVNETHDRSZ: ::Ioctl = 0x400454d7; -pub const TUNSETVNETHDRSZ: ::Ioctl = 0x800454d8; -pub const TUNSETQUEUE: ::Ioctl = 0x800454d9; -pub const TUNSETIFINDEX: ::Ioctl = 0x800454da; -pub const TUNSETVNETLE: ::Ioctl = 0x800454dc; -pub const TUNGETVNETLE: ::Ioctl = 0x400454dd; +pub const TUNSETNOCSUM: Ioctl = 0x800454c8; +pub const TUNSETDEBUG: Ioctl = 0x800454c9; +pub const TUNSETIFF: Ioctl = 0x800454ca; +pub const TUNSETPERSIST: Ioctl = 0x800454cb; +pub const TUNSETOWNER: Ioctl = 0x800454cc; +pub const TUNSETLINK: Ioctl = 0x800454cd; +pub const TUNSETGROUP: Ioctl = 0x800454ce; +pub const TUNGETFEATURES: Ioctl = 0x400454cf; +pub const TUNSETOFFLOAD: Ioctl = 0x800454d0; +pub const TUNSETTXFILTER: Ioctl = 0x800454d1; +pub const TUNGETIFF: Ioctl = 0x400454d2; +pub const TUNGETSNDBUF: Ioctl = 0x400454d3; +pub const TUNSETSNDBUF: Ioctl = 0x800454d4; +pub const TUNGETVNETHDRSZ: Ioctl = 0x400454d7; +pub const TUNSETVNETHDRSZ: Ioctl = 0x800454d8; +pub const TUNSETQUEUE: Ioctl = 0x800454d9; +pub const TUNSETIFINDEX: Ioctl = 0x800454da; +pub const TUNSETVNETLE: Ioctl = 0x800454dc; +pub const TUNGETVNETLE: Ioctl = 0x400454dd; /* The TUNSETVNETBE and TUNGETVNETBE ioctls are for cross-endian support on * little-endian hosts. Not all kernel configurations support them, but all * configurations that support SET also support GET. */ -pub const TUNSETVNETBE: ::Ioctl = 0x800454de; -pub const TUNGETVNETBE: ::Ioctl = 0x400454df; -pub const TUNSETSTEERINGEBPF: ::Ioctl = 0x400454e0; -pub const TUNSETFILTEREBPF: ::Ioctl = 0x400454e1; +pub const TUNSETVNETBE: Ioctl = 0x800454de; +pub const TUNGETVNETBE: Ioctl = 0x400454df; +pub const TUNSETSTEERINGEBPF: Ioctl = 0x400454e0; +pub const TUNSETFILTEREBPF: Ioctl = 0x400454e1; -pub const TIOCM_LE: ::c_int = 0x001; -pub const TIOCM_DTR: ::c_int = 0x002; -pub const TIOCM_RTS: ::c_int = 0x004; -pub const TIOCM_ST: ::c_int = 0x008; -pub const TIOCM_SR: ::c_int = 0x010; -pub const TIOCM_CTS: ::c_int = 0x020; -pub const TIOCM_CAR: ::c_int = 0x040; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RNG: ::c_int = 0x080; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; -pub const TIOCM_DSR: ::c_int = 0x100; +pub const TIOCM_LE: c_int = 0x001; +pub const TIOCM_DTR: c_int = 0x002; +pub const TIOCM_RTS: c_int = 0x004; +pub const TIOCM_ST: c_int = 0x008; +pub const TIOCM_SR: c_int = 0x010; +pub const TIOCM_CTS: c_int = 0x020; +pub const TIOCM_CAR: c_int = 0x040; +pub const TIOCM_CD: c_int = TIOCM_CAR; +pub const TIOCM_RNG: c_int = 0x080; +pub const TIOCM_RI: c_int = TIOCM_RNG; +pub const TIOCM_DSR: c_int = 0x100; -pub const BOTHER: ::speed_t = 0x1000; -pub const IBSHIFT: ::tcflag_t = 16; +pub const BOTHER: crate::speed_t = 0x1000; +pub const IBSHIFT: crate::tcflag_t = 16; // RLIMIT Constants -pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; -pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; -pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; -pub const RLIMIT_STACK: ::__rlimit_resource_t = 3; -pub const RLIMIT_CORE: ::__rlimit_resource_t = 4; -pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; -pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 6; -pub const RLIMIT_NPROC: ::__rlimit_resource_t = 7; -pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; -pub const RLIMIT_AS: ::__rlimit_resource_t = 9; -pub const RLIMIT_LOCKS: ::__rlimit_resource_t = 10; -pub const RLIMIT_SIGPENDING: ::__rlimit_resource_t = 11; -pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12; -pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; -pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; -pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; +pub const RLIMIT_CPU: crate::__rlimit_resource_t = 0; +pub const RLIMIT_FSIZE: crate::__rlimit_resource_t = 1; +pub const RLIMIT_DATA: crate::__rlimit_resource_t = 2; +pub const RLIMIT_STACK: crate::__rlimit_resource_t = 3; +pub const RLIMIT_CORE: crate::__rlimit_resource_t = 4; +pub const RLIMIT_RSS: crate::__rlimit_resource_t = 5; +pub const RLIMIT_NOFILE: crate::__rlimit_resource_t = 6; +pub const RLIMIT_NPROC: crate::__rlimit_resource_t = 7; +pub const RLIMIT_MEMLOCK: crate::__rlimit_resource_t = 8; +pub const RLIMIT_AS: crate::__rlimit_resource_t = 9; +pub const RLIMIT_LOCKS: crate::__rlimit_resource_t = 10; +pub const RLIMIT_SIGPENDING: crate::__rlimit_resource_t = 11; +pub const RLIMIT_MSGQUEUE: crate::__rlimit_resource_t = 12; +pub const RLIMIT_NICE: crate::__rlimit_resource_t = 13; +pub const RLIMIT_RTPRIO: crate::__rlimit_resource_t = 14; +pub const RLIMIT_RTTIME: crate::__rlimit_resource_t = 15; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16; +pub const RLIM_NLIMITS: crate::__rlimit_resource_t = 16; #[allow(deprecated)] #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; +pub const RLIMIT_NLIMITS: crate::__rlimit_resource_t = RLIM_NLIMITS; cfg_if! { if #[cfg(target_arch = "sparc64")] { - pub const RLIM_INFINITY: ::rlim_t = !0; + pub const RLIM_INFINITY: crate::rlim_t = !0; } else if #[cfg(target_arch = "sparc")] { - pub const RLIM_INFINITY: ::rlim_t = 0x7fffffff; + pub const RLIM_INFINITY: crate::rlim_t = 0x7fffffff; } } @@ -267,28 +269,28 @@ cfg_if! { // where T stands for type ('f','v','X'...) // where N stands for NR (NumbeR) if #[cfg(target_arch = "sparc")] { - pub const FS_IOC_GETFLAGS: ::Ioctl = 0x40046601; - pub const FS_IOC_SETFLAGS: ::Ioctl = 0x80046602; - pub const FS_IOC_GETVERSION: ::Ioctl = 0x40047601; - pub const FS_IOC_SETVERSION: ::Ioctl = 0x80047602; - pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x40046601; - pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; - pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; - pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; - pub const TUNATTACHFILTER: ::Ioctl = 0x800854d5; - pub const TUNDETACHFILTER: ::Ioctl = 0x800854d6; - pub const TUNGETFILTER: ::Ioctl = 0x400854db; + pub const FS_IOC_GETFLAGS: Ioctl = 0x40046601; + pub const FS_IOC_SETFLAGS: Ioctl = 0x80046602; + pub const FS_IOC_GETVERSION: Ioctl = 0x40047601; + pub const FS_IOC_SETVERSION: Ioctl = 0x80047602; + pub const FS_IOC32_GETFLAGS: Ioctl = 0x40046601; + pub const FS_IOC32_SETFLAGS: Ioctl = 0x80046602; + pub const FS_IOC32_GETVERSION: Ioctl = 0x40047601; + pub const FS_IOC32_SETVERSION: Ioctl = 0x80047602; + pub const TUNATTACHFILTER: Ioctl = 0x800854d5; + pub const TUNDETACHFILTER: Ioctl = 0x800854d6; + pub const TUNGETFILTER: Ioctl = 0x400854db; } else if #[cfg(target_arch = "sparc64")] { - pub const FS_IOC_GETFLAGS: ::Ioctl = 0x40086601; - pub const FS_IOC_SETFLAGS: ::Ioctl = 0x80086602; - pub const FS_IOC_GETVERSION: ::Ioctl = 0x40087601; - pub const FS_IOC_SETVERSION: ::Ioctl = 0x80087602; - pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x40046601; - pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; - pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; - pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; - pub const TUNATTACHFILTER: ::Ioctl = 0x801054d5; - pub const TUNDETACHFILTER: ::Ioctl = 0x801054d6; - pub const TUNGETFILTER: ::Ioctl = 0x401054db; + pub const FS_IOC_GETFLAGS: Ioctl = 0x40086601; + pub const FS_IOC_SETFLAGS: Ioctl = 0x80086602; + pub const FS_IOC_GETVERSION: Ioctl = 0x40087601; + pub const FS_IOC_SETVERSION: Ioctl = 0x80087602; + pub const FS_IOC32_GETFLAGS: Ioctl = 0x40046601; + pub const FS_IOC32_SETFLAGS: Ioctl = 0x80046602; + pub const FS_IOC32_GETVERSION: Ioctl = 0x40047601; + pub const FS_IOC32_SETVERSION: Ioctl = 0x80047602; + pub const TUNATTACHFILTER: Ioctl = 0x801054d5; + pub const TUNDETACHFILTER: Ioctl = 0x801054d6; + pub const TUNGETFILTER: Ioctl = 0x401054db; } } diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 67a91084e81c5..f318b4ad9223f 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -1,151 +1,153 @@ +use crate::{c_int, c_long, c_short, c_uint, c_ulong, c_ushort, c_void, off64_t, off_t, size_t}; + pub type c_char = u8; pub type wchar_t = u32; s! { pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, + pub sa_flags: c_int, + pub sa_restorer: Option, } pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - 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_fsid: ::fsid_t, - - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - f_spare: [::__fsword_t; 4], + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, + + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + pub f_flags: crate::__fsword_t, + f_spare: [crate::__fsword_t; 4], } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off64_t, + pub l_len: off64_t, + pub l_pid: crate::pid_t, } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: c_ushort, + __pad1: c_ushort, + pub __seq: c_ushort, + __pad2: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } pub struct stat64 { - pub st_dev: ::dev_t, - __pad1: ::c_uint, - __st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: ::c_uint, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_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_ino: ::ino64_t, + pub st_dev: crate::dev_t, + __pad1: c_uint, + __st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad2: c_uint, + pub st_size: off64_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_ino: crate::ino64_t, } pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], + pub f_fsid: crate::fsid_t, + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + pub f_flags: crate::__fsword_t, + pub f_spare: [crate::__fsword_t; 4], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + __f_unused: c_int, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - __unused1: ::c_ulong, - pub shm_dtime: ::time_t, - __unused2: ::c_ulong, - pub shm_ctime: ::time_t, - __unused3: ::c_ulong, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + __unused1: c_ulong, + pub shm_dtime: crate::time_t, + __unused2: c_ulong, + pub shm_ctime: crate::time_t, + __unused3: c_ulong, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __unused4: c_ulong, + __unused5: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - __glibc_reserved1: ::c_ulong, - pub msg_rtime: ::time_t, - __glibc_reserved2: ::c_ulong, - pub msg_ctime: ::time_t, - __glibc_reserved3: ::c_ulong, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, + pub msg_perm: crate::ipc_perm, + pub msg_stime: crate::time_t, + __glibc_reserved1: c_ulong, + pub msg_rtime: crate::time_t, + __glibc_reserved2: c_ulong, + pub msg_ctime: crate::time_t, + __glibc_reserved3: c_ulong, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __glibc_reserved4: c_ulong, + __glibc_reserved5: c_ulong, } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, #[doc(hidden)] #[deprecated( since = "0.2.54", @@ -153,59 +155,59 @@ s! { https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] - pub _pad: [::c_int; 29], + pub _pad: [c_int; 29], _align: [usize; 0], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } pub struct mcontext_t { - pub trap_no: ::c_ulong, - pub error_code: ::c_ulong, - pub oldmask: ::c_ulong, - pub arm_r0: ::c_ulong, - pub arm_r1: ::c_ulong, - pub arm_r2: ::c_ulong, - pub arm_r3: ::c_ulong, - pub arm_r4: ::c_ulong, - pub arm_r5: ::c_ulong, - pub arm_r6: ::c_ulong, - pub arm_r7: ::c_ulong, - pub arm_r8: ::c_ulong, - pub arm_r9: ::c_ulong, - pub arm_r10: ::c_ulong, - pub arm_fp: ::c_ulong, - pub arm_ip: ::c_ulong, - pub arm_sp: ::c_ulong, - pub arm_lr: ::c_ulong, - pub arm_pc: ::c_ulong, - pub arm_cpsr: ::c_ulong, - pub fault_address: ::c_ulong, + pub trap_no: c_ulong, + pub error_code: c_ulong, + pub oldmask: c_ulong, + pub arm_r0: c_ulong, + pub arm_r1: c_ulong, + pub arm_r2: c_ulong, + pub arm_r3: c_ulong, + pub arm_r4: c_ulong, + pub arm_r5: c_ulong, + pub arm_r6: c_ulong, + pub arm_r7: c_ulong, + pub arm_r8: c_ulong, + pub arm_r9: c_ulong, + pub arm_r10: c_ulong, + pub arm_fp: c_ulong, + pub arm_ip: c_ulong, + pub arm_sp: c_ulong, + pub arm_lr: c_ulong, + pub arm_pc: c_ulong, + pub arm_cpsr: c_ulong, + pub fault_address: c_ulong, } pub struct user_regs { - pub arm_r0: ::c_ulong, - pub arm_r1: ::c_ulong, - pub arm_r2: ::c_ulong, - pub arm_r3: ::c_ulong, - pub arm_r4: ::c_ulong, - pub arm_r5: ::c_ulong, - pub arm_r6: ::c_ulong, - pub arm_r7: ::c_ulong, - pub arm_r8: ::c_ulong, - pub arm_r9: ::c_ulong, - pub arm_r10: ::c_ulong, - pub arm_fp: ::c_ulong, - pub arm_ip: ::c_ulong, - pub arm_sp: ::c_ulong, - pub arm_lr: ::c_ulong, - pub arm_pc: ::c_ulong, - pub arm_cpsr: ::c_ulong, - pub arm_orig_r0: ::c_ulong, + pub arm_r0: c_ulong, + pub arm_r1: c_ulong, + pub arm_r2: c_ulong, + pub arm_r3: c_ulong, + pub arm_r4: c_ulong, + pub arm_r5: c_ulong, + pub arm_r6: c_ulong, + pub arm_r7: c_ulong, + pub arm_r8: c_ulong, + pub arm_r9: c_ulong, + pub arm_r10: c_ulong, + pub arm_fp: c_ulong, + pub arm_ip: c_ulong, + pub arm_sp: c_ulong, + pub arm_lr: c_ulong, + pub arm_pc: c_ulong, + pub arm_cpsr: c_ulong, + pub arm_orig_r0: c_ulong, } } @@ -219,12 +221,12 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct ucontext_t { - pub uc_flags: ::c_ulong, + pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: ::mcontext_t, - pub uc_sigmask: ::sigset_t, - pub uc_regspace: [::c_ulong; 128], + pub uc_stack: crate::stack_t, + pub uc_mcontext: crate::mcontext_t, + pub uc_sigmask: crate::sigset_t, + pub uc_regspace: [c_ulong; 128], } } @@ -240,8 +242,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_link) .field("uc_link", &self.uc_link) @@ -251,8 +253,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); @@ -264,181 +266,181 @@ cfg_if! { } pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const O_DIRECT: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_LARGEFILE: ::c_int = 0o400000; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const EDEADLOCK: ::c_int = 35; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; - -pub const EFD_NONBLOCK: ::c_int = 0x800; -pub const SFD_NONBLOCK: ::c_int = 0x0800; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; +pub const RTLD_DEEPBIND: c_int = 0x8; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_NOLOAD: c_int = 0x4; +pub const O_DIRECT: c_int = 0x10000; +pub const O_DIRECTORY: c_int = 0x4000; +pub const O_NOFOLLOW: c_int = 0x8000; +pub const O_LARGEFILE: c_int = 0o400000; +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_FSYNC: c_int = 0x101000; +pub const O_ASYNC: c_int = 0x2000; +pub const O_NDELAY: c_int = 0x800; + +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_ANONYMOUS: c_int = 0x0020; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_SYNC: c_int = 0x080000; + +pub const EDEADLOCK: c_int = 35; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EBADMSG: c_int = 74; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const EHWPOISON: c_int = 133; +pub const ERFKILL: c_int = 132; + +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; + +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; + +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; + +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETOWN: c_int = 8; + +pub const EFD_NONBLOCK: c_int = 0x800; +pub const SFD_NONBLOCK: c_int = 0x0800; + +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; #[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; +pub const SIGUNUSED: c_int = 31; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: crate::tcflag_t = 0x00000800; +pub const TAB2: crate::tcflag_t = 0x00001000; +pub const TAB3: crate::tcflag_t = 0x00001800; +pub const CR1: crate::tcflag_t = 0x00000200; +pub const CR2: crate::tcflag_t = 0x00000400; +pub const CR3: crate::tcflag_t = 0x00000600; +pub const FF1: crate::tcflag_t = 0x00008000; +pub const BS1: crate::tcflag_t = 0x00002000; +pub const VT1: crate::tcflag_t = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -446,468 +448,468 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; + +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; -pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; +pub const EXTPROC: crate::tcflag_t = 0x00010000; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; // Syscall table -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_pause: ::c_long = 29; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_setresgid: ::c_long = 170; -pub const SYS_getresgid: ::c_long = 171; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_chown: ::c_long = 182; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_ugetrlimit: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_lchown32: ::c_long = 198; -pub const SYS_getuid32: ::c_long = 199; -pub const SYS_getgid32: ::c_long = 200; -pub const SYS_geteuid32: ::c_long = 201; -pub const SYS_getegid32: ::c_long = 202; -pub const SYS_setreuid32: ::c_long = 203; -pub const SYS_setregid32: ::c_long = 204; -pub const SYS_getgroups32: ::c_long = 205; -pub const SYS_setgroups32: ::c_long = 206; -pub const SYS_fchown32: ::c_long = 207; -pub const SYS_setresuid32: ::c_long = 208; -pub const SYS_getresuid32: ::c_long = 209; -pub const SYS_setresgid32: ::c_long = 210; -pub const SYS_getresgid32: ::c_long = 211; -pub const SYS_chown32: ::c_long = 212; -pub const SYS_setuid32: ::c_long = 213; -pub const SYS_setgid32: ::c_long = 214; -pub const SYS_setfsuid32: ::c_long = 215; -pub const SYS_setfsgid32: ::c_long = 216; -pub const SYS_getdents64: ::c_long = 217; -pub const SYS_pivot_root: ::c_long = 218; -pub const SYS_mincore: ::c_long = 219; -pub const SYS_madvise: ::c_long = 220; -pub const SYS_fcntl64: ::c_long = 221; -pub const SYS_gettid: ::c_long = 224; -pub const SYS_readahead: ::c_long = 225; -pub const SYS_setxattr: ::c_long = 226; -pub const SYS_lsetxattr: ::c_long = 227; -pub const SYS_fsetxattr: ::c_long = 228; -pub const SYS_getxattr: ::c_long = 229; -pub const SYS_lgetxattr: ::c_long = 230; -pub const SYS_fgetxattr: ::c_long = 231; -pub const SYS_listxattr: ::c_long = 232; -pub const SYS_llistxattr: ::c_long = 233; -pub const SYS_flistxattr: ::c_long = 234; -pub const SYS_removexattr: ::c_long = 235; -pub const SYS_lremovexattr: ::c_long = 236; -pub const SYS_fremovexattr: ::c_long = 237; -pub const SYS_tkill: ::c_long = 238; -pub const SYS_sendfile64: ::c_long = 239; -pub const SYS_futex: ::c_long = 240; -pub const SYS_sched_setaffinity: ::c_long = 241; -pub const SYS_sched_getaffinity: ::c_long = 242; -pub const SYS_io_setup: ::c_long = 243; -pub const SYS_io_destroy: ::c_long = 244; -pub const SYS_io_getevents: ::c_long = 245; -pub const SYS_io_submit: ::c_long = 246; -pub const SYS_io_cancel: ::c_long = 247; -pub const SYS_exit_group: ::c_long = 248; -pub const SYS_lookup_dcookie: ::c_long = 249; -pub const SYS_epoll_create: ::c_long = 250; -pub const SYS_epoll_ctl: ::c_long = 251; -pub const SYS_epoll_wait: ::c_long = 252; -pub const SYS_remap_file_pages: ::c_long = 253; -pub const SYS_set_tid_address: ::c_long = 256; -pub const SYS_timer_create: ::c_long = 257; -pub const SYS_timer_settime: ::c_long = 258; -pub const SYS_timer_gettime: ::c_long = 259; -pub const SYS_timer_getoverrun: ::c_long = 260; -pub const SYS_timer_delete: ::c_long = 261; -pub const SYS_clock_settime: ::c_long = 262; -pub const SYS_clock_gettime: ::c_long = 263; -pub const SYS_clock_getres: ::c_long = 264; -pub const SYS_clock_nanosleep: ::c_long = 265; -pub const SYS_statfs64: ::c_long = 266; -pub const SYS_fstatfs64: ::c_long = 267; -pub const SYS_tgkill: ::c_long = 268; -pub const SYS_utimes: ::c_long = 269; -pub const SYS_arm_fadvise64_64: ::c_long = 270; -pub const SYS_pciconfig_iobase: ::c_long = 271; -pub const SYS_pciconfig_read: ::c_long = 272; -pub const SYS_pciconfig_write: ::c_long = 273; -pub const SYS_mq_open: ::c_long = 274; -pub const SYS_mq_unlink: ::c_long = 275; -pub const SYS_mq_timedsend: ::c_long = 276; -pub const SYS_mq_timedreceive: ::c_long = 277; -pub const SYS_mq_notify: ::c_long = 278; -pub const SYS_mq_getsetattr: ::c_long = 279; -pub const SYS_waitid: ::c_long = 280; -pub const SYS_socket: ::c_long = 281; -pub const SYS_bind: ::c_long = 282; -pub const SYS_connect: ::c_long = 283; -pub const SYS_listen: ::c_long = 284; -pub const SYS_accept: ::c_long = 285; -pub const SYS_getsockname: ::c_long = 286; -pub const SYS_getpeername: ::c_long = 287; -pub const SYS_socketpair: ::c_long = 288; -pub const SYS_send: ::c_long = 289; -pub const SYS_sendto: ::c_long = 290; -pub const SYS_recv: ::c_long = 291; -pub const SYS_recvfrom: ::c_long = 292; -pub const SYS_shutdown: ::c_long = 293; -pub const SYS_setsockopt: ::c_long = 294; -pub const SYS_getsockopt: ::c_long = 295; -pub const SYS_sendmsg: ::c_long = 296; -pub const SYS_recvmsg: ::c_long = 297; -pub const SYS_semop: ::c_long = 298; -pub const SYS_semget: ::c_long = 299; -pub const SYS_semctl: ::c_long = 300; -pub const SYS_msgsnd: ::c_long = 301; -pub const SYS_msgrcv: ::c_long = 302; -pub const SYS_msgget: ::c_long = 303; -pub const SYS_msgctl: ::c_long = 304; -pub const SYS_shmat: ::c_long = 305; -pub const SYS_shmdt: ::c_long = 306; -pub const SYS_shmget: ::c_long = 307; -pub const SYS_shmctl: ::c_long = 308; -pub const SYS_add_key: ::c_long = 309; -pub const SYS_request_key: ::c_long = 310; -pub const SYS_keyctl: ::c_long = 311; -pub const SYS_semtimedop: ::c_long = 312; -pub const SYS_vserver: ::c_long = 313; -pub const SYS_ioprio_set: ::c_long = 314; -pub const SYS_ioprio_get: ::c_long = 315; -pub const SYS_inotify_init: ::c_long = 316; -pub const SYS_inotify_add_watch: ::c_long = 317; -pub const SYS_inotify_rm_watch: ::c_long = 318; -pub const SYS_mbind: ::c_long = 319; -pub const SYS_get_mempolicy: ::c_long = 320; -pub const SYS_set_mempolicy: ::c_long = 321; -pub const SYS_openat: ::c_long = 322; -pub const SYS_mkdirat: ::c_long = 323; -pub const SYS_mknodat: ::c_long = 324; -pub const SYS_fchownat: ::c_long = 325; -pub const SYS_futimesat: ::c_long = 326; -pub const SYS_fstatat64: ::c_long = 327; -pub const SYS_unlinkat: ::c_long = 328; -pub const SYS_renameat: ::c_long = 329; -pub const SYS_linkat: ::c_long = 330; -pub const SYS_symlinkat: ::c_long = 331; -pub const SYS_readlinkat: ::c_long = 332; -pub const SYS_fchmodat: ::c_long = 333; -pub const SYS_faccessat: ::c_long = 334; -pub const SYS_pselect6: ::c_long = 335; -pub const SYS_ppoll: ::c_long = 336; -pub const SYS_unshare: ::c_long = 337; -pub const SYS_set_robust_list: ::c_long = 338; -pub const SYS_get_robust_list: ::c_long = 339; -pub const SYS_splice: ::c_long = 340; -pub const SYS_arm_sync_file_range: ::c_long = 341; -pub const SYS_tee: ::c_long = 342; -pub const SYS_vmsplice: ::c_long = 343; -pub const SYS_move_pages: ::c_long = 344; -pub const SYS_getcpu: ::c_long = 345; -pub const SYS_epoll_pwait: ::c_long = 346; -pub const SYS_kexec_load: ::c_long = 347; -pub const SYS_utimensat: ::c_long = 348; -pub const SYS_signalfd: ::c_long = 349; -pub const SYS_timerfd_create: ::c_long = 350; -pub const SYS_eventfd: ::c_long = 351; -pub const SYS_fallocate: ::c_long = 352; -pub const SYS_timerfd_settime: ::c_long = 353; -pub const SYS_timerfd_gettime: ::c_long = 354; -pub const SYS_signalfd4: ::c_long = 355; -pub const SYS_eventfd2: ::c_long = 356; -pub const SYS_epoll_create1: ::c_long = 357; -pub const SYS_dup3: ::c_long = 358; -pub const SYS_pipe2: ::c_long = 359; -pub const SYS_inotify_init1: ::c_long = 360; -pub const SYS_preadv: ::c_long = 361; -pub const SYS_pwritev: ::c_long = 362; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 363; -pub const SYS_perf_event_open: ::c_long = 364; -pub const SYS_recvmmsg: ::c_long = 365; -pub const SYS_accept4: ::c_long = 366; -pub const SYS_fanotify_init: ::c_long = 367; -pub const SYS_fanotify_mark: ::c_long = 368; -pub const SYS_prlimit64: ::c_long = 369; -pub const SYS_name_to_handle_at: ::c_long = 370; -pub const SYS_open_by_handle_at: ::c_long = 371; -pub const SYS_clock_adjtime: ::c_long = 372; -pub const SYS_syncfs: ::c_long = 373; -pub const SYS_sendmmsg: ::c_long = 374; -pub const SYS_setns: ::c_long = 375; -pub const SYS_process_vm_readv: ::c_long = 376; -pub const SYS_process_vm_writev: ::c_long = 377; -pub const SYS_kcmp: ::c_long = 378; -pub const SYS_finit_module: ::c_long = 379; -pub const SYS_sched_setattr: ::c_long = 380; -pub const SYS_sched_getattr: ::c_long = 381; -pub const SYS_renameat2: ::c_long = 382; -pub const SYS_seccomp: ::c_long = 383; -pub const SYS_getrandom: ::c_long = 384; -pub const SYS_memfd_create: ::c_long = 385; -pub const SYS_bpf: ::c_long = 386; -pub const SYS_execveat: ::c_long = 387; -pub const SYS_userfaultfd: ::c_long = 388; -pub const SYS_membarrier: ::c_long = 389; -pub const SYS_mlock2: ::c_long = 390; -pub const SYS_copy_file_range: ::c_long = 391; -pub const SYS_preadv2: ::c_long = 392; -pub const SYS_pwritev2: ::c_long = 393; -pub const SYS_pkey_mprotect: ::c_long = 394; -pub const SYS_pkey_alloc: ::c_long = 395; -pub const SYS_pkey_free: ::c_long = 396; -pub const SYS_statx: ::c_long = 397; -pub const SYS_rseq: ::c_long = 398; -pub const SYS_kexec_file_load: ::c_long = 401; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; -pub const SYS_mseal: ::c_long = 462; +pub const SYS_restart_syscall: c_long = 0; +pub const SYS_exit: c_long = 1; +pub const SYS_fork: c_long = 2; +pub const SYS_read: c_long = 3; +pub const SYS_write: c_long = 4; +pub const SYS_open: c_long = 5; +pub const SYS_close: c_long = 6; +pub const SYS_creat: c_long = 8; +pub const SYS_link: c_long = 9; +pub const SYS_unlink: c_long = 10; +pub const SYS_execve: c_long = 11; +pub const SYS_chdir: c_long = 12; +pub const SYS_mknod: c_long = 14; +pub const SYS_chmod: c_long = 15; +pub const SYS_lchown: c_long = 16; +pub const SYS_lseek: c_long = 19; +pub const SYS_getpid: c_long = 20; +pub const SYS_mount: c_long = 21; +pub const SYS_setuid: c_long = 23; +pub const SYS_getuid: c_long = 24; +pub const SYS_ptrace: c_long = 26; +pub const SYS_pause: c_long = 29; +pub const SYS_access: c_long = 33; +pub const SYS_nice: c_long = 34; +pub const SYS_sync: c_long = 36; +pub const SYS_kill: c_long = 37; +pub const SYS_rename: c_long = 38; +pub const SYS_mkdir: c_long = 39; +pub const SYS_rmdir: c_long = 40; +pub const SYS_dup: c_long = 41; +pub const SYS_pipe: c_long = 42; +pub const SYS_times: c_long = 43; +pub const SYS_brk: c_long = 45; +pub const SYS_setgid: c_long = 46; +pub const SYS_getgid: c_long = 47; +pub const SYS_geteuid: c_long = 49; +pub const SYS_getegid: c_long = 50; +pub const SYS_acct: c_long = 51; +pub const SYS_umount2: c_long = 52; +pub const SYS_ioctl: c_long = 54; +pub const SYS_fcntl: c_long = 55; +pub const SYS_setpgid: c_long = 57; +pub const SYS_umask: c_long = 60; +pub const SYS_chroot: c_long = 61; +pub const SYS_ustat: c_long = 62; +pub const SYS_dup2: c_long = 63; +pub const SYS_getppid: c_long = 64; +pub const SYS_getpgrp: c_long = 65; +pub const SYS_setsid: c_long = 66; +pub const SYS_sigaction: c_long = 67; +pub const SYS_setreuid: c_long = 70; +pub const SYS_setregid: c_long = 71; +pub const SYS_sigsuspend: c_long = 72; +pub const SYS_sigpending: c_long = 73; +pub const SYS_sethostname: c_long = 74; +pub const SYS_setrlimit: c_long = 75; +pub const SYS_getrusage: c_long = 77; +pub const SYS_gettimeofday: c_long = 78; +pub const SYS_settimeofday: c_long = 79; +pub const SYS_getgroups: c_long = 80; +pub const SYS_setgroups: c_long = 81; +pub const SYS_symlink: c_long = 83; +pub const SYS_readlink: c_long = 85; +pub const SYS_uselib: c_long = 86; +pub const SYS_swapon: c_long = 87; +pub const SYS_reboot: c_long = 88; +pub const SYS_munmap: c_long = 91; +pub const SYS_truncate: c_long = 92; +pub const SYS_ftruncate: c_long = 93; +pub const SYS_fchmod: c_long = 94; +pub const SYS_fchown: c_long = 95; +pub const SYS_getpriority: c_long = 96; +pub const SYS_setpriority: c_long = 97; +pub const SYS_statfs: c_long = 99; +pub const SYS_fstatfs: c_long = 100; +pub const SYS_syslog: c_long = 103; +pub const SYS_setitimer: c_long = 104; +pub const SYS_getitimer: c_long = 105; +pub const SYS_stat: c_long = 106; +pub const SYS_lstat: c_long = 107; +pub const SYS_fstat: c_long = 108; +pub const SYS_vhangup: c_long = 111; +pub const SYS_wait4: c_long = 114; +pub const SYS_swapoff: c_long = 115; +pub const SYS_sysinfo: c_long = 116; +pub const SYS_fsync: c_long = 118; +pub const SYS_sigreturn: c_long = 119; +pub const SYS_clone: c_long = 120; +pub const SYS_setdomainname: c_long = 121; +pub const SYS_uname: c_long = 122; +pub const SYS_adjtimex: c_long = 124; +pub const SYS_mprotect: c_long = 125; +pub const SYS_sigprocmask: c_long = 126; +pub const SYS_init_module: c_long = 128; +pub const SYS_delete_module: c_long = 129; +pub const SYS_quotactl: c_long = 131; +pub const SYS_getpgid: c_long = 132; +pub const SYS_fchdir: c_long = 133; +pub const SYS_bdflush: c_long = 134; +pub const SYS_sysfs: c_long = 135; +pub const SYS_personality: c_long = 136; +pub const SYS_setfsuid: c_long = 138; +pub const SYS_setfsgid: c_long = 139; +pub const SYS__llseek: c_long = 140; +pub const SYS_getdents: c_long = 141; +pub const SYS__newselect: c_long = 142; +pub const SYS_flock: c_long = 143; +pub const SYS_msync: c_long = 144; +pub const SYS_readv: c_long = 145; +pub const SYS_writev: c_long = 146; +pub const SYS_getsid: c_long = 147; +pub const SYS_fdatasync: c_long = 148; +pub const SYS__sysctl: c_long = 149; +pub const SYS_mlock: c_long = 150; +pub const SYS_munlock: c_long = 151; +pub const SYS_mlockall: c_long = 152; +pub const SYS_munlockall: c_long = 153; +pub const SYS_sched_setparam: c_long = 154; +pub const SYS_sched_getparam: c_long = 155; +pub const SYS_sched_setscheduler: c_long = 156; +pub const SYS_sched_getscheduler: c_long = 157; +pub const SYS_sched_yield: c_long = 158; +pub const SYS_sched_get_priority_max: c_long = 159; +pub const SYS_sched_get_priority_min: c_long = 160; +pub const SYS_sched_rr_get_interval: c_long = 161; +pub const SYS_nanosleep: c_long = 162; +pub const SYS_mremap: c_long = 163; +pub const SYS_setresuid: c_long = 164; +pub const SYS_getresuid: c_long = 165; +pub const SYS_poll: c_long = 168; +pub const SYS_nfsservctl: c_long = 169; +pub const SYS_setresgid: c_long = 170; +pub const SYS_getresgid: c_long = 171; +pub const SYS_prctl: c_long = 172; +pub const SYS_rt_sigreturn: c_long = 173; +pub const SYS_rt_sigaction: c_long = 174; +pub const SYS_rt_sigprocmask: c_long = 175; +pub const SYS_rt_sigpending: c_long = 176; +pub const SYS_rt_sigtimedwait: c_long = 177; +pub const SYS_rt_sigqueueinfo: c_long = 178; +pub const SYS_rt_sigsuspend: c_long = 179; +pub const SYS_pread64: c_long = 180; +pub const SYS_pwrite64: c_long = 181; +pub const SYS_chown: c_long = 182; +pub const SYS_getcwd: c_long = 183; +pub const SYS_capget: c_long = 184; +pub const SYS_capset: c_long = 185; +pub const SYS_sigaltstack: c_long = 186; +pub const SYS_sendfile: c_long = 187; +pub const SYS_vfork: c_long = 190; +pub const SYS_ugetrlimit: c_long = 191; +pub const SYS_mmap2: c_long = 192; +pub const SYS_truncate64: c_long = 193; +pub const SYS_ftruncate64: c_long = 194; +pub const SYS_stat64: c_long = 195; +pub const SYS_lstat64: c_long = 196; +pub const SYS_fstat64: c_long = 197; +pub const SYS_lchown32: c_long = 198; +pub const SYS_getuid32: c_long = 199; +pub const SYS_getgid32: c_long = 200; +pub const SYS_geteuid32: c_long = 201; +pub const SYS_getegid32: c_long = 202; +pub const SYS_setreuid32: c_long = 203; +pub const SYS_setregid32: c_long = 204; +pub const SYS_getgroups32: c_long = 205; +pub const SYS_setgroups32: c_long = 206; +pub const SYS_fchown32: c_long = 207; +pub const SYS_setresuid32: c_long = 208; +pub const SYS_getresuid32: c_long = 209; +pub const SYS_setresgid32: c_long = 210; +pub const SYS_getresgid32: c_long = 211; +pub const SYS_chown32: c_long = 212; +pub const SYS_setuid32: c_long = 213; +pub const SYS_setgid32: c_long = 214; +pub const SYS_setfsuid32: c_long = 215; +pub const SYS_setfsgid32: c_long = 216; +pub const SYS_getdents64: c_long = 217; +pub const SYS_pivot_root: c_long = 218; +pub const SYS_mincore: c_long = 219; +pub const SYS_madvise: c_long = 220; +pub const SYS_fcntl64: c_long = 221; +pub const SYS_gettid: c_long = 224; +pub const SYS_readahead: c_long = 225; +pub const SYS_setxattr: c_long = 226; +pub const SYS_lsetxattr: c_long = 227; +pub const SYS_fsetxattr: c_long = 228; +pub const SYS_getxattr: c_long = 229; +pub const SYS_lgetxattr: c_long = 230; +pub const SYS_fgetxattr: c_long = 231; +pub const SYS_listxattr: c_long = 232; +pub const SYS_llistxattr: c_long = 233; +pub const SYS_flistxattr: c_long = 234; +pub const SYS_removexattr: c_long = 235; +pub const SYS_lremovexattr: c_long = 236; +pub const SYS_fremovexattr: c_long = 237; +pub const SYS_tkill: c_long = 238; +pub const SYS_sendfile64: c_long = 239; +pub const SYS_futex: c_long = 240; +pub const SYS_sched_setaffinity: c_long = 241; +pub const SYS_sched_getaffinity: c_long = 242; +pub const SYS_io_setup: c_long = 243; +pub const SYS_io_destroy: c_long = 244; +pub const SYS_io_getevents: c_long = 245; +pub const SYS_io_submit: c_long = 246; +pub const SYS_io_cancel: c_long = 247; +pub const SYS_exit_group: c_long = 248; +pub const SYS_lookup_dcookie: c_long = 249; +pub const SYS_epoll_create: c_long = 250; +pub const SYS_epoll_ctl: c_long = 251; +pub const SYS_epoll_wait: c_long = 252; +pub const SYS_remap_file_pages: c_long = 253; +pub const SYS_set_tid_address: c_long = 256; +pub const SYS_timer_create: c_long = 257; +pub const SYS_timer_settime: c_long = 258; +pub const SYS_timer_gettime: c_long = 259; +pub const SYS_timer_getoverrun: c_long = 260; +pub const SYS_timer_delete: c_long = 261; +pub const SYS_clock_settime: c_long = 262; +pub const SYS_clock_gettime: c_long = 263; +pub const SYS_clock_getres: c_long = 264; +pub const SYS_clock_nanosleep: c_long = 265; +pub const SYS_statfs64: c_long = 266; +pub const SYS_fstatfs64: c_long = 267; +pub const SYS_tgkill: c_long = 268; +pub const SYS_utimes: c_long = 269; +pub const SYS_arm_fadvise64_64: c_long = 270; +pub const SYS_pciconfig_iobase: c_long = 271; +pub const SYS_pciconfig_read: c_long = 272; +pub const SYS_pciconfig_write: c_long = 273; +pub const SYS_mq_open: c_long = 274; +pub const SYS_mq_unlink: c_long = 275; +pub const SYS_mq_timedsend: c_long = 276; +pub const SYS_mq_timedreceive: c_long = 277; +pub const SYS_mq_notify: c_long = 278; +pub const SYS_mq_getsetattr: c_long = 279; +pub const SYS_waitid: c_long = 280; +pub const SYS_socket: c_long = 281; +pub const SYS_bind: c_long = 282; +pub const SYS_connect: c_long = 283; +pub const SYS_listen: c_long = 284; +pub const SYS_accept: c_long = 285; +pub const SYS_getsockname: c_long = 286; +pub const SYS_getpeername: c_long = 287; +pub const SYS_socketpair: c_long = 288; +pub const SYS_send: c_long = 289; +pub const SYS_sendto: c_long = 290; +pub const SYS_recv: c_long = 291; +pub const SYS_recvfrom: c_long = 292; +pub const SYS_shutdown: c_long = 293; +pub const SYS_setsockopt: c_long = 294; +pub const SYS_getsockopt: c_long = 295; +pub const SYS_sendmsg: c_long = 296; +pub const SYS_recvmsg: c_long = 297; +pub const SYS_semop: c_long = 298; +pub const SYS_semget: c_long = 299; +pub const SYS_semctl: c_long = 300; +pub const SYS_msgsnd: c_long = 301; +pub const SYS_msgrcv: c_long = 302; +pub const SYS_msgget: c_long = 303; +pub const SYS_msgctl: c_long = 304; +pub const SYS_shmat: c_long = 305; +pub const SYS_shmdt: c_long = 306; +pub const SYS_shmget: c_long = 307; +pub const SYS_shmctl: c_long = 308; +pub const SYS_add_key: c_long = 309; +pub const SYS_request_key: c_long = 310; +pub const SYS_keyctl: c_long = 311; +pub const SYS_semtimedop: c_long = 312; +pub const SYS_vserver: c_long = 313; +pub const SYS_ioprio_set: c_long = 314; +pub const SYS_ioprio_get: c_long = 315; +pub const SYS_inotify_init: c_long = 316; +pub const SYS_inotify_add_watch: c_long = 317; +pub const SYS_inotify_rm_watch: c_long = 318; +pub const SYS_mbind: c_long = 319; +pub const SYS_get_mempolicy: c_long = 320; +pub const SYS_set_mempolicy: c_long = 321; +pub const SYS_openat: c_long = 322; +pub const SYS_mkdirat: c_long = 323; +pub const SYS_mknodat: c_long = 324; +pub const SYS_fchownat: c_long = 325; +pub const SYS_futimesat: c_long = 326; +pub const SYS_fstatat64: c_long = 327; +pub const SYS_unlinkat: c_long = 328; +pub const SYS_renameat: c_long = 329; +pub const SYS_linkat: c_long = 330; +pub const SYS_symlinkat: c_long = 331; +pub const SYS_readlinkat: c_long = 332; +pub const SYS_fchmodat: c_long = 333; +pub const SYS_faccessat: c_long = 334; +pub const SYS_pselect6: c_long = 335; +pub const SYS_ppoll: c_long = 336; +pub const SYS_unshare: c_long = 337; +pub const SYS_set_robust_list: c_long = 338; +pub const SYS_get_robust_list: c_long = 339; +pub const SYS_splice: c_long = 340; +pub const SYS_arm_sync_file_range: c_long = 341; +pub const SYS_tee: c_long = 342; +pub const SYS_vmsplice: c_long = 343; +pub const SYS_move_pages: c_long = 344; +pub const SYS_getcpu: c_long = 345; +pub const SYS_epoll_pwait: c_long = 346; +pub const SYS_kexec_load: c_long = 347; +pub const SYS_utimensat: c_long = 348; +pub const SYS_signalfd: c_long = 349; +pub const SYS_timerfd_create: c_long = 350; +pub const SYS_eventfd: c_long = 351; +pub const SYS_fallocate: c_long = 352; +pub const SYS_timerfd_settime: c_long = 353; +pub const SYS_timerfd_gettime: c_long = 354; +pub const SYS_signalfd4: c_long = 355; +pub const SYS_eventfd2: c_long = 356; +pub const SYS_epoll_create1: c_long = 357; +pub const SYS_dup3: c_long = 358; +pub const SYS_pipe2: c_long = 359; +pub const SYS_inotify_init1: c_long = 360; +pub const SYS_preadv: c_long = 361; +pub const SYS_pwritev: c_long = 362; +pub const SYS_rt_tgsigqueueinfo: c_long = 363; +pub const SYS_perf_event_open: c_long = 364; +pub const SYS_recvmmsg: c_long = 365; +pub const SYS_accept4: c_long = 366; +pub const SYS_fanotify_init: c_long = 367; +pub const SYS_fanotify_mark: c_long = 368; +pub const SYS_prlimit64: c_long = 369; +pub const SYS_name_to_handle_at: c_long = 370; +pub const SYS_open_by_handle_at: c_long = 371; +pub const SYS_clock_adjtime: c_long = 372; +pub const SYS_syncfs: c_long = 373; +pub const SYS_sendmmsg: c_long = 374; +pub const SYS_setns: c_long = 375; +pub const SYS_process_vm_readv: c_long = 376; +pub const SYS_process_vm_writev: c_long = 377; +pub const SYS_kcmp: c_long = 378; +pub const SYS_finit_module: c_long = 379; +pub const SYS_sched_setattr: c_long = 380; +pub const SYS_sched_getattr: c_long = 381; +pub const SYS_renameat2: c_long = 382; +pub const SYS_seccomp: c_long = 383; +pub const SYS_getrandom: c_long = 384; +pub const SYS_memfd_create: c_long = 385; +pub const SYS_bpf: c_long = 386; +pub const SYS_execveat: c_long = 387; +pub const SYS_userfaultfd: c_long = 388; +pub const SYS_membarrier: c_long = 389; +pub const SYS_mlock2: c_long = 390; +pub const SYS_copy_file_range: c_long = 391; +pub const SYS_preadv2: c_long = 392; +pub const SYS_pwritev2: c_long = 393; +pub const SYS_pkey_mprotect: c_long = 394; +pub const SYS_pkey_alloc: c_long = 395; +pub const SYS_pkey_free: c_long = 396; +pub const SYS_statx: c_long = 397; +pub const SYS_rseq: c_long = 398; +pub const SYS_kexec_file_load: c_long = 401; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; +pub const SYS_mseal: c_long = 462; diff --git a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs index 7560fd0ab7d5e..7677f10571912 100644 --- a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs @@ -1,150 +1,152 @@ +use crate::{c_int, c_long, c_short, c_uint, c_ulong, c_ushort, c_void, off64_t, off_t, size_t}; + pub type c_char = u8; pub type wchar_t = u32; s! { pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, + pub sa_flags: c_int, + pub sa_restorer: Option, } pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - f_spare: [::__fsword_t; 5], + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + f_spare: [crate::__fsword_t; 5], } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off64_t, + pub l_len: off64_t, + pub l_pid: crate::pid_t, } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: c_ushort, + __pad1: c_ushort, + pub __seq: c_ushort, + __pad2: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } pub struct stat64 { - pub st_dev: ::dev_t, - __pad1: ::c_uint, - __st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: ::c_uint, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_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_ino: ::ino64_t, + pub st_dev: crate::dev_t, + __pad1: c_uint, + __st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad2: c_uint, + pub st_size: off64_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_ino: crate::ino64_t, } pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], + pub f_fsid: crate::fsid_t, + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + pub f_flags: crate::__fsword_t, + pub f_spare: [crate::__fsword_t; 4], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + __f_unused: c_int, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - __unused1: ::c_ulong, - pub shm_dtime: ::time_t, - __unused2: ::c_ulong, - pub shm_ctime: ::time_t, - __unused3: ::c_ulong, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + __unused1: c_ulong, + pub shm_dtime: crate::time_t, + __unused2: c_ulong, + pub shm_ctime: crate::time_t, + __unused3: c_ulong, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __unused4: c_ulong, + __unused5: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - __glibc_reserved1: ::c_ulong, - pub msg_rtime: ::time_t, - __glibc_reserved2: ::c_ulong, - pub msg_ctime: ::time_t, - __glibc_reserved3: ::c_ulong, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, + pub msg_perm: crate::ipc_perm, + pub msg_stime: crate::time_t, + __glibc_reserved1: c_ulong, + pub msg_rtime: crate::time_t, + __glibc_reserved2: c_ulong, + pub msg_ctime: crate::time_t, + __glibc_reserved3: c_ulong, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __glibc_reserved4: c_ulong, + __glibc_reserved5: c_ulong, } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, #[doc(hidden)] #[deprecated( since = "0.2.54", @@ -152,14 +154,14 @@ s! { https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] - pub _pad: [::c_int; 29], + pub _pad: [c_int; 29], _align: [usize; 0], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } } @@ -172,181 +174,181 @@ s_no_extra_traits! { } pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_LARGEFILE: ::c_int = 0o100000; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; +pub const RTLD_DEEPBIND: c_int = 0x8; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_NOLOAD: c_int = 0x4; +pub const O_DIRECT: c_int = 0x4000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_NOFOLLOW: c_int = 0x20000; +pub const O_LARGEFILE: c_int = 0o100000; +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_FSYNC: c_int = 0x101000; +pub const O_ASYNC: c_int = 0x2000; +pub const O_NDELAY: c_int = 0x800; -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_SYNC: ::c_int = 0x080000; +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_ANONYMOUS: c_int = 0x0020; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_SYNC: c_int = 0x080000; -pub const EDEADLOCK: ::c_int = 35; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; +pub const EDEADLOCK: c_int = 35; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EBADMSG: c_int = 74; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const EHWPOISON: c_int = 133; +pub const ERFKILL: c_int = 132; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETOWN: c_int = 8; -pub const EFD_NONBLOCK: ::c_int = 0x800; -pub const SFD_NONBLOCK: ::c_int = 0x0800; +pub const EFD_NONBLOCK: c_int = 0x800; +pub const SFD_NONBLOCK: c_int = 0x0800; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; #[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; +pub const SIGUNUSED: c_int = 31; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: crate::tcflag_t = 0x00000800; +pub const TAB2: crate::tcflag_t = 0x00001000; +pub const TAB3: crate::tcflag_t = 0x00001800; +pub const CR1: crate::tcflag_t = 0x00000200; +pub const CR2: crate::tcflag_t = 0x00000400; +pub const CR3: crate::tcflag_t = 0x00000600; +pub const FF1: crate::tcflag_t = 0x00008000; +pub const BS1: crate::tcflag_t = 0x00002000; +pub const VT1: crate::tcflag_t = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -354,389 +356,389 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; -pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; +pub const EXTPROC: crate::tcflag_t = 0x00010000; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; // Syscall table -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_close: ::c_long = 57; -pub const SYS_fstat: ::c_long = 80; -pub const SYS_lseek: ::c_long = 62; -pub const SYS_mmap: ::c_long = 222; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_brk: ::c_long = 214; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_dup: ::c_long = 23; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_sendfile: ::c_long = 71; -pub const SYS_socket: ::c_long = 198; -pub const SYS_connect: ::c_long = 203; -pub const SYS_accept: ::c_long = 202; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_exit: ::c_long = 93; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_kill: ::c_long = 129; -pub const SYS_uname: ::c_long = 160; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semop: ::c_long = 193; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_flock: ::c_long = 32; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_truncate: ::c_long = 45; -pub const SYS_ftruncate: ::c_long = 46; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_umask: ::c_long = 166; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_times: ::c_long = 153; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_personality: ::c_long = 92; -pub const SYS_statfs: ::c_long = 43; -pub const SYS_fstatfs: ::c_long = 44; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_setrlimit: ::c_long = 164; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_sync: ::c_long = 81; -pub const SYS_acct: ::c_long = 89; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_mount: ::c_long = 40; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_futex: ::c_long = 98; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_fadvise64: ::c_long = 223; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_openat: ::c_long = 56; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_newfstatat: ::c_long = 79; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_setns: ::c_long = 268; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_rseq: ::c_long = 293; -pub const SYS_syscall: ::c_long = 294; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_read: c_long = 63; +pub const SYS_write: c_long = 64; +pub const SYS_close: c_long = 57; +pub const SYS_fstat: c_long = 80; +pub const SYS_lseek: c_long = 62; +pub const SYS_mmap: c_long = 222; +pub const SYS_mprotect: c_long = 226; +pub const SYS_munmap: c_long = 215; +pub const SYS_brk: c_long = 214; +pub const SYS_rt_sigaction: c_long = 134; +pub const SYS_rt_sigprocmask: c_long = 135; +pub const SYS_rt_sigreturn: c_long = 139; +pub const SYS_ioctl: c_long = 29; +pub const SYS_pread64: c_long = 67; +pub const SYS_pwrite64: c_long = 68; +pub const SYS_readv: c_long = 65; +pub const SYS_writev: c_long = 66; +pub const SYS_sched_yield: c_long = 124; +pub const SYS_mremap: c_long = 216; +pub const SYS_msync: c_long = 227; +pub const SYS_mincore: c_long = 232; +pub const SYS_madvise: c_long = 233; +pub const SYS_shmget: c_long = 194; +pub const SYS_shmat: c_long = 196; +pub const SYS_shmctl: c_long = 195; +pub const SYS_dup: c_long = 23; +pub const SYS_nanosleep: c_long = 101; +pub const SYS_getitimer: c_long = 102; +pub const SYS_setitimer: c_long = 103; +pub const SYS_getpid: c_long = 172; +pub const SYS_sendfile: c_long = 71; +pub const SYS_socket: c_long = 198; +pub const SYS_connect: c_long = 203; +pub const SYS_accept: c_long = 202; +pub const SYS_sendto: c_long = 206; +pub const SYS_recvfrom: c_long = 207; +pub const SYS_sendmsg: c_long = 211; +pub const SYS_recvmsg: c_long = 212; +pub const SYS_shutdown: c_long = 210; +pub const SYS_bind: c_long = 200; +pub const SYS_listen: c_long = 201; +pub const SYS_getsockname: c_long = 204; +pub const SYS_getpeername: c_long = 205; +pub const SYS_socketpair: c_long = 199; +pub const SYS_setsockopt: c_long = 208; +pub const SYS_getsockopt: c_long = 209; +pub const SYS_clone: c_long = 220; +pub const SYS_execve: c_long = 221; +pub const SYS_exit: c_long = 93; +pub const SYS_wait4: c_long = 260; +pub const SYS_kill: c_long = 129; +pub const SYS_uname: c_long = 160; +pub const SYS_semget: c_long = 190; +pub const SYS_semop: c_long = 193; +pub const SYS_semctl: c_long = 191; +pub const SYS_shmdt: c_long = 197; +pub const SYS_msgget: c_long = 186; +pub const SYS_msgsnd: c_long = 189; +pub const SYS_msgrcv: c_long = 188; +pub const SYS_msgctl: c_long = 187; +pub const SYS_fcntl: c_long = 25; +pub const SYS_flock: c_long = 32; +pub const SYS_fsync: c_long = 82; +pub const SYS_fdatasync: c_long = 83; +pub const SYS_truncate: c_long = 45; +pub const SYS_ftruncate: c_long = 46; +pub const SYS_getcwd: c_long = 17; +pub const SYS_chdir: c_long = 49; +pub const SYS_fchdir: c_long = 50; +pub const SYS_fchmod: c_long = 52; +pub const SYS_fchown: c_long = 55; +pub const SYS_umask: c_long = 166; +pub const SYS_gettimeofday: c_long = 169; +pub const SYS_getrlimit: c_long = 163; +pub const SYS_getrusage: c_long = 165; +pub const SYS_sysinfo: c_long = 179; +pub const SYS_times: c_long = 153; +pub const SYS_ptrace: c_long = 117; +pub const SYS_getuid: c_long = 174; +pub const SYS_syslog: c_long = 116; +pub const SYS_getgid: c_long = 176; +pub const SYS_setuid: c_long = 146; +pub const SYS_setgid: c_long = 144; +pub const SYS_geteuid: c_long = 175; +pub const SYS_getegid: c_long = 177; +pub const SYS_setpgid: c_long = 154; +pub const SYS_getppid: c_long = 173; +pub const SYS_setsid: c_long = 157; +pub const SYS_setreuid: c_long = 145; +pub const SYS_setregid: c_long = 143; +pub const SYS_getgroups: c_long = 158; +pub const SYS_setgroups: c_long = 159; +pub const SYS_setresuid: c_long = 147; +pub const SYS_getresuid: c_long = 148; +pub const SYS_setresgid: c_long = 149; +pub const SYS_getresgid: c_long = 150; +pub const SYS_getpgid: c_long = 155; +pub const SYS_setfsuid: c_long = 151; +pub const SYS_setfsgid: c_long = 152; +pub const SYS_getsid: c_long = 156; +pub const SYS_capget: c_long = 90; +pub const SYS_capset: c_long = 91; +pub const SYS_rt_sigpending: c_long = 136; +pub const SYS_rt_sigtimedwait: c_long = 137; +pub const SYS_rt_sigqueueinfo: c_long = 138; +pub const SYS_rt_sigsuspend: c_long = 133; +pub const SYS_sigaltstack: c_long = 132; +pub const SYS_personality: c_long = 92; +pub const SYS_statfs: c_long = 43; +pub const SYS_fstatfs: c_long = 44; +pub const SYS_getpriority: c_long = 141; +pub const SYS_setpriority: c_long = 140; +pub const SYS_sched_setparam: c_long = 118; +pub const SYS_sched_getparam: c_long = 121; +pub const SYS_sched_setscheduler: c_long = 119; +pub const SYS_sched_getscheduler: c_long = 120; +pub const SYS_sched_get_priority_max: c_long = 125; +pub const SYS_sched_get_priority_min: c_long = 126; +pub const SYS_sched_rr_get_interval: c_long = 127; +pub const SYS_mlock: c_long = 228; +pub const SYS_munlock: c_long = 229; +pub const SYS_mlockall: c_long = 230; +pub const SYS_munlockall: c_long = 231; +pub const SYS_vhangup: c_long = 58; +pub const SYS_pivot_root: c_long = 41; +pub const SYS_prctl: c_long = 167; +pub const SYS_adjtimex: c_long = 171; +pub const SYS_setrlimit: c_long = 164; +pub const SYS_chroot: c_long = 51; +pub const SYS_sync: c_long = 81; +pub const SYS_acct: c_long = 89; +pub const SYS_settimeofday: c_long = 170; +pub const SYS_mount: c_long = 40; +pub const SYS_umount2: c_long = 39; +pub const SYS_swapon: c_long = 224; +pub const SYS_swapoff: c_long = 225; +pub const SYS_reboot: c_long = 142; +pub const SYS_sethostname: c_long = 161; +pub const SYS_setdomainname: c_long = 162; +pub const SYS_init_module: c_long = 105; +pub const SYS_delete_module: c_long = 106; +pub const SYS_quotactl: c_long = 60; +pub const SYS_nfsservctl: c_long = 42; +pub const SYS_gettid: c_long = 178; +pub const SYS_readahead: c_long = 213; +pub const SYS_setxattr: c_long = 5; +pub const SYS_lsetxattr: c_long = 6; +pub const SYS_fsetxattr: c_long = 7; +pub const SYS_getxattr: c_long = 8; +pub const SYS_lgetxattr: c_long = 9; +pub const SYS_fgetxattr: c_long = 10; +pub const SYS_listxattr: c_long = 11; +pub const SYS_llistxattr: c_long = 12; +pub const SYS_flistxattr: c_long = 13; +pub const SYS_removexattr: c_long = 14; +pub const SYS_lremovexattr: c_long = 15; +pub const SYS_fremovexattr: c_long = 16; +pub const SYS_tkill: c_long = 130; +pub const SYS_futex: c_long = 98; +pub const SYS_sched_setaffinity: c_long = 122; +pub const SYS_sched_getaffinity: c_long = 123; +pub const SYS_io_setup: c_long = 0; +pub const SYS_io_destroy: c_long = 1; +pub const SYS_io_getevents: c_long = 4; +pub const SYS_io_submit: c_long = 2; +pub const SYS_io_cancel: c_long = 3; +pub const SYS_lookup_dcookie: c_long = 18; +pub const SYS_remap_file_pages: c_long = 234; +pub const SYS_getdents64: c_long = 61; +pub const SYS_set_tid_address: c_long = 96; +pub const SYS_restart_syscall: c_long = 128; +pub const SYS_semtimedop: c_long = 192; +pub const SYS_fadvise64: c_long = 223; +pub const SYS_timer_create: c_long = 107; +pub const SYS_timer_settime: c_long = 110; +pub const SYS_timer_gettime: c_long = 108; +pub const SYS_timer_getoverrun: c_long = 109; +pub const SYS_timer_delete: c_long = 111; +pub const SYS_clock_settime: c_long = 112; +pub const SYS_clock_gettime: c_long = 113; +pub const SYS_clock_getres: c_long = 114; +pub const SYS_clock_nanosleep: c_long = 115; +pub const SYS_exit_group: c_long = 94; +pub const SYS_epoll_ctl: c_long = 21; +pub const SYS_tgkill: c_long = 131; +pub const SYS_mbind: c_long = 235; +pub const SYS_set_mempolicy: c_long = 237; +pub const SYS_get_mempolicy: c_long = 236; +pub const SYS_mq_open: c_long = 180; +pub const SYS_mq_unlink: c_long = 181; +pub const SYS_mq_timedsend: c_long = 182; +pub const SYS_mq_timedreceive: c_long = 183; +pub const SYS_mq_notify: c_long = 184; +pub const SYS_mq_getsetattr: c_long = 185; +pub const SYS_kexec_load: c_long = 104; +pub const SYS_waitid: c_long = 95; +pub const SYS_add_key: c_long = 217; +pub const SYS_request_key: c_long = 218; +pub const SYS_keyctl: c_long = 219; +pub const SYS_ioprio_set: c_long = 30; +pub const SYS_ioprio_get: c_long = 31; +pub const SYS_inotify_add_watch: c_long = 27; +pub const SYS_inotify_rm_watch: c_long = 28; +pub const SYS_migrate_pages: c_long = 238; +pub const SYS_openat: c_long = 56; +pub const SYS_mkdirat: c_long = 34; +pub const SYS_mknodat: c_long = 33; +pub const SYS_fchownat: c_long = 54; +pub const SYS_newfstatat: c_long = 79; +pub const SYS_unlinkat: c_long = 35; +pub const SYS_linkat: c_long = 37; +pub const SYS_symlinkat: c_long = 36; +pub const SYS_readlinkat: c_long = 78; +pub const SYS_fchmodat: c_long = 53; +pub const SYS_faccessat: c_long = 48; +pub const SYS_pselect6: c_long = 72; +pub const SYS_ppoll: c_long = 73; +pub const SYS_unshare: c_long = 97; +pub const SYS_set_robust_list: c_long = 99; +pub const SYS_get_robust_list: c_long = 100; +pub const SYS_splice: c_long = 76; +pub const SYS_tee: c_long = 77; +pub const SYS_sync_file_range: c_long = 84; +pub const SYS_vmsplice: c_long = 75; +pub const SYS_move_pages: c_long = 239; +pub const SYS_utimensat: c_long = 88; +pub const SYS_epoll_pwait: c_long = 22; +pub const SYS_timerfd_create: c_long = 85; +pub const SYS_fallocate: c_long = 47; +pub const SYS_timerfd_settime: c_long = 86; +pub const SYS_timerfd_gettime: c_long = 87; +pub const SYS_accept4: c_long = 242; +pub const SYS_signalfd4: c_long = 74; +pub const SYS_eventfd2: c_long = 19; +pub const SYS_epoll_create1: c_long = 20; +pub const SYS_dup3: c_long = 24; +pub const SYS_pipe2: c_long = 59; +pub const SYS_inotify_init1: c_long = 26; +pub const SYS_preadv: c_long = 69; +pub const SYS_pwritev: c_long = 70; +pub const SYS_rt_tgsigqueueinfo: c_long = 240; +pub const SYS_perf_event_open: c_long = 241; +pub const SYS_recvmmsg: c_long = 243; +pub const SYS_fanotify_init: c_long = 262; +pub const SYS_fanotify_mark: c_long = 263; +pub const SYS_prlimit64: c_long = 261; +pub const SYS_name_to_handle_at: c_long = 264; +pub const SYS_open_by_handle_at: c_long = 265; +pub const SYS_clock_adjtime: c_long = 266; +pub const SYS_syncfs: c_long = 267; +pub const SYS_sendmmsg: c_long = 269; +pub const SYS_setns: c_long = 268; +pub const SYS_getcpu: c_long = 168; +pub const SYS_process_vm_readv: c_long = 270; +pub const SYS_process_vm_writev: c_long = 271; +pub const SYS_kcmp: c_long = 272; +pub const SYS_finit_module: c_long = 273; +pub const SYS_sched_setattr: c_long = 274; +pub const SYS_sched_getattr: c_long = 275; +pub const SYS_renameat2: c_long = 276; +pub const SYS_seccomp: c_long = 277; +pub const SYS_getrandom: c_long = 278; +pub const SYS_memfd_create: c_long = 279; +pub const SYS_bpf: c_long = 280; +pub const SYS_execveat: c_long = 281; +pub const SYS_userfaultfd: c_long = 282; +pub const SYS_membarrier: c_long = 283; +pub const SYS_mlock2: c_long = 284; +pub const SYS_copy_file_range: c_long = 285; +pub const SYS_preadv2: c_long = 286; +pub const SYS_pwritev2: c_long = 287; +pub const SYS_pkey_mprotect: c_long = 288; +pub const SYS_pkey_alloc: c_long = 289; +pub const SYS_pkey_free: c_long = 290; +pub const SYS_statx: c_long = 291; +pub const SYS_rseq: c_long = 293; +pub const SYS_syscall: c_long = 294; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index 68c59babe0411..6b705ffe7f159 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -1,3 +1,5 @@ +use crate::{c_int, c_long, c_short, c_uint, c_ulong, c_ushort, c_void, off64_t, off_t, size_t}; + pub type c_char = i8; pub type wchar_t = i32; @@ -5,8 +7,8 @@ s! { pub struct sigaction { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_flags: c_int, + pub sa_restorer: Option, } pub struct statfs { @@ -27,18 +29,18 @@ s! { } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, pub l_pid: ::pid_t, } pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off64_t, + pub l_len: off64_t, pub l_pid: ::pid_t, } @@ -49,31 +51,31 @@ s! { pub cuid: ::uid_t, pub cgid: ::gid_t, pub mode: ::mode_t, - __seq: ::c_ushort, - __pad1: ::c_ushort, - __glibc_reserved1: ::c_ulong, - __glibc_reserved2: ::c_ulong, + __seq: c_ushort, + __pad1: c_ushort, + __glibc_reserved1: c_ulong, + __glibc_reserved2: c_ulong, } pub struct stat64 { pub st_dev: ::dev_t, - __pad1: ::c_ushort, + __pad1: c_ushort, pub __st_ino: ::ino_t, pub st_mode: ::mode_t, pub st_nlink: ::nlink_t, pub st_uid: ::uid_t, pub st_gid: ::gid_t, pub st_rdev: ::dev_t, - __pad2: ::c_ushort, - pub st_size: ::off64_t, + __pad2: c_ushort, + pub st_size: off64_t, pub st_blksize: ::blksize_t, pub st_blocks: ::blkcnt64_t, pub st_atime: ::time_t, - pub st_atime_nsec: ::c_ulong, + pub st_atime_nsec: c_ulong, pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_ulong, + pub st_mtime_nsec: c_ulong, pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_ulong, + pub st_ctime_nsec: c_ulong, pub st_ino: ::ino64_t, } @@ -93,66 +95,66 @@ s! { } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: ::fsblkcnt64_t, pub f_bfree: ::fsblkcnt64_t, pub f_bavail: ::fsblkcnt64_t, pub f_files: ::fsblkcnt64_t, pub f_ffree: ::fsblkcnt64_t, pub f_favail: ::fsblkcnt64_t, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + __f_unused: c_int, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct shmid_ds { pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, + pub shm_segsz: size_t, pub shm_atime: ::time_t, - __glibc_reserved1: ::c_long, + __glibc_reserved1: c_long, pub shm_dtime: ::time_t, - __glibc_reserved2: ::c_long, + __glibc_reserved2: c_long, pub shm_ctime: ::time_t, - __glibc_reserved3: ::c_long, + __glibc_reserved3: c_long, pub shm_cpid: ::pid_t, pub shm_lpid: ::pid_t, pub shm_nattch: ::shmatt_t, - __glibc_reserved5: ::c_ulong, - __glibc_reserved6: ::c_ulong, + __glibc_reserved5: c_ulong, + __glibc_reserved6: c_ulong, } pub struct msqid_ds { pub msg_perm: ::ipc_perm, pub msg_stime: ::time_t, - __glibc_reserved1: ::c_uint, + __glibc_reserved1: c_uint, pub msg_rtime: ::time_t, - __glibc_reserved2: ::c_uint, + __glibc_reserved2: c_uint, pub msg_ctime: ::time_t, - __glibc_reserved3: ::c_uint, - __msg_cbytes: ::c_ulong, + __glibc_reserved3: c_uint, + __msg_cbytes: c_ulong, pub msg_qnum: ::msgqnum_t, pub msg_qbytes: ::msglen_t, pub msg_lspid: ::pid_t, pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, + __glibc_reserved4: c_ulong, + __glibc_reserved5: c_ulong, } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - _pad: [::c_int; 29], + pub si_signo: c_int, + pub si_code: c_int, + pub si_errno: c_int, + _pad: [c_int; 29], _align: [usize; 0], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } } @@ -165,177 +167,177 @@ s_no_extra_traits! { } pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const O_DIRECT: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_LARGEFILE: ::c_int = 0x20000; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; +pub const RTLD_DEEPBIND: c_int = 0x8; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_NOLOAD: c_int = 0x4; +pub const O_DIRECT: c_int = 0x10000; +pub const O_DIRECTORY: c_int = 0x4000; +pub const O_NOFOLLOW: c_int = 0x8000; +pub const O_LARGEFILE: c_int = 0x20000; +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_FSYNC: c_int = 0x101000; +pub const O_ASYNC: c_int = 0x2000; +pub const O_NDELAY: c_int = 0x800; -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_32BIT: ::c_int = 0x0040; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_SYNC: ::c_int = 0x080000; +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_32BIT: c_int = 0x0040; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_ANONYMOUS: c_int = 0x0020; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_SYNC: c_int = 0x080000; -pub const EDEADLOCK: ::c_int = 35; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; +pub const EDEADLOCK: c_int = 35; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EBADMSG: c_int = 74; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const EHWPOISON: c_int = 133; +pub const ERFKILL: c_int = 132; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETOWN: c_int = 8; -pub const PTRACE_GETFPXREGS: ::c_uint = 18; -pub const PTRACE_SETFPXREGS: ::c_uint = 19; -pub const PTRACE_SYSEMU: ::c_uint = 31; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32; +pub const PTRACE_GETFPXREGS: c_uint = 18; +pub const PTRACE_SETFPXREGS: c_uint = 19; +pub const PTRACE_SYSEMU: c_uint = 31; +pub const PTRACE_SYSEMU_SINGLESTEP: c_uint = 32; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; -pub const EFD_NONBLOCK: ::c_int = 0x800; -pub const SFD_NONBLOCK: ::c_int = 0x0800; +pub const EFD_NONBLOCK: c_int = 0x800; +pub const SFD_NONBLOCK: c_int = 0x0800; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; #[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; +pub const SIGUNUSED: c_int = 31; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; pub const CBAUD: ::tcflag_t = 0o0010017; pub const TAB1: ::tcflag_t = 0x00000800; pub const TAB2: ::tcflag_t = 0x00001000; @@ -430,429 +432,429 @@ pub const TOSTOP: ::tcflag_t = 0x00000100; pub const FLUSHO: ::tcflag_t = 0x00001000; pub const EXTPROC: ::tcflag_t = 0x00010000; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_waitpid: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_time32: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_chown16: ::c_long = 16; -pub const SYS_stat: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_oldumount: ::c_long = 22; -pub const SYS_setuid16: ::c_long = 23; -pub const SYS_getuid16: ::c_long = 24; -pub const SYS_stime32: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_fstat: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime32: ::c_long = 30; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid16: ::c_long = 46; -pub const SYS_getgid16: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid16: ::c_long = 49; -pub const SYS_getegid16: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount: ::c_long = 52; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sgetmask: ::c_long = 68; -pub const SYS_ssetmask: ::c_long = 69; -pub const SYS_setreuid16: ::c_long = 70; -pub const SYS_setregid16: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_old_getrlimit: ::c_long = 76; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups16: ::c_long = 80; -pub const SYS_setgroups16: ::c_long = 81; -pub const SYS_old_select: ::c_long = 82; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_lstat: ::c_long = 84; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_old_readdir: ::c_long = 89; -pub const SYS_old_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown16: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_newstat: ::c_long = 106; -pub const SYS_newlstat: ::c_long = 107; -pub const SYS_newfstat: ::c_long = 108; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_newuname: ::c_long = 122; -pub const SYS_cacheflush: ::c_long = 123; -pub const SYS_adjtimex_time32: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_setfsuid16: ::c_long = 138; -pub const SYS_setfsgid16: ::c_long = 139; -pub const SYS_llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS_select: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval_time32: ::c_long = 161; -pub const SYS_nanosleep_time32: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid16: ::c_long = 164; -pub const SYS_getresuid16: ::c_long = 165; -pub const SYS_getpagesize: ::c_long = 166; -pub const SYS_query_module: ::c_long = 167; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_setresgid16: ::c_long = 170; -pub const SYS_getresgid16: ::c_long = 171; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait_time32: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_lchown16: ::c_long = 182; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_getpmsg: ::c_long = 188; -pub const SYS_putpmsg: ::c_long = 189; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_getrlimit: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_chown: ::c_long = 198; -pub const SYS_getuid: ::c_long = 199; -pub const SYS_getgid: ::c_long = 200; -pub const SYS_geteuid: ::c_long = 201; -pub const SYS_getegid: ::c_long = 202; -pub const SYS_setreuid: ::c_long = 203; -pub const SYS_setregid: ::c_long = 204; -pub const SYS_getgroups: ::c_long = 205; -pub const SYS_setgroups: ::c_long = 206; -pub const SYS_fchown: ::c_long = 207; -pub const SYS_setresuid: ::c_long = 208; -pub const SYS_getresuid: ::c_long = 209; -pub const SYS_setresgid: ::c_long = 210; -pub const SYS_getresgid: ::c_long = 211; -pub const SYS_lchown: ::c_long = 212; -pub const SYS_setuid: ::c_long = 213; -pub const SYS_setgid: ::c_long = 214; -pub const SYS_setfsuid: ::c_long = 215; -pub const SYS_setfsgid: ::c_long = 216; -pub const SYS_pivot_root: ::c_long = 217; -pub const SYS_getdents64: ::c_long = 220; -pub const SYS_gettid: ::c_long = 221; -pub const SYS_tkill: ::c_long = 222; -pub const SYS_setxattr: ::c_long = 223; -pub const SYS_lsetxattr: ::c_long = 224; -pub const SYS_fsetxattr: ::c_long = 225; -pub const SYS_getxattr: ::c_long = 226; -pub const SYS_lgetxattr: ::c_long = 227; -pub const SYS_fgetxattr: ::c_long = 228; -pub const SYS_listxattr: ::c_long = 229; -pub const SYS_llistxattr: ::c_long = 230; -pub const SYS_flistxattr: ::c_long = 231; -pub const SYS_removexattr: ::c_long = 232; -pub const SYS_lremovexattr: ::c_long = 233; -pub const SYS_fremovexattr: ::c_long = 234; -pub const SYS_futex_time32: ::c_long = 235; -pub const SYS_sendfile64: ::c_long = 236; -pub const SYS_mincore: ::c_long = 237; -pub const SYS_madvise: ::c_long = 238; -pub const SYS_fcntl64: ::c_long = 239; -pub const SYS_readahead: ::c_long = 240; -pub const SYS_io_setup: ::c_long = 241; -pub const SYS_io_destroy: ::c_long = 242; -pub const SYS_io_getevents_time32: ::c_long = 243; -pub const SYS_io_submit: ::c_long = 244; -pub const SYS_io_cancel: ::c_long = 245; -pub const SYS_fadvise64: ::c_long = 246; -pub const SYS_exit_group: ::c_long = 247; -pub const SYS_lookup_dcookie: ::c_long = 248; -pub const SYS_epoll_create: ::c_long = 249; -pub const SYS_epoll_ctl: ::c_long = 250; -pub const SYS_epoll_wait: ::c_long = 251; -pub const SYS_remap_file_pages: ::c_long = 252; -pub const SYS_set_tid_address: ::c_long = 253; -pub const SYS_timer_create: ::c_long = 254; -pub const SYS_timer_settime32: ::c_long = 255; -pub const SYS_timer_gettime32: ::c_long = 256; -pub const SYS_timer_getoverrun: ::c_long = 257; -pub const SYS_timer_delete: ::c_long = 258; -pub const SYS_clock_settime32: ::c_long = 259; -pub const SYS_clock_gettime32: ::c_long = 260; -pub const SYS_clock_getres_time32: ::c_long = 261; -pub const SYS_clock_nanosleep_time32: ::c_long = 262; -pub const SYS_statfs64: ::c_long = 263; -pub const SYS_fstatfs64: ::c_long = 264; -pub const SYS_tgkill: ::c_long = 265; -pub const SYS_utimes_time32: ::c_long = 266; -pub const SYS_fadvise64_64: ::c_long = 267; -pub const SYS_mbind: ::c_long = 268; -pub const SYS_get_mempolicy: ::c_long = 269; -pub const SYS_set_mempolicy: ::c_long = 270; -pub const SYS_mq_open: ::c_long = 271; -pub const SYS_mq_unlink: ::c_long = 272; -pub const SYS_mq_timedsend_time32: ::c_long = 273; -pub const SYS_mq_timedreceive_time32: ::c_long = 274; -pub const SYS_mq_notify: ::c_long = 275; -pub const SYS_mq_getsetattr: ::c_long = 276; -pub const SYS_waitid: ::c_long = 277; -pub const SYS_add_key: ::c_long = 279; -pub const SYS_request_key: ::c_long = 280; -pub const SYS_keyctl: ::c_long = 281; -pub const SYS_ioprio_set: ::c_long = 282; -pub const SYS_ioprio_get: ::c_long = 283; -pub const SYS_inotify_init: ::c_long = 284; -pub const SYS_inotify_add_watch: ::c_long = 285; -pub const SYS_inotify_rm_watch: ::c_long = 286; -pub const SYS_migrate_pages: ::c_long = 287; -pub const SYS_openat: ::c_long = 288; -pub const SYS_mkdirat: ::c_long = 289; -pub const SYS_mknodat: ::c_long = 290; -pub const SYS_fchownat: ::c_long = 291; -pub const SYS_futimesat_time32: ::c_long = 292; -pub const SYS_fstatat64: ::c_long = 293; -pub const SYS_unlinkat: ::c_long = 294; -pub const SYS_renameat: ::c_long = 295; -pub const SYS_linkat: ::c_long = 296; -pub const SYS_symlinkat: ::c_long = 297; -pub const SYS_readlinkat: ::c_long = 298; -pub const SYS_fchmodat: ::c_long = 299; -pub const SYS_faccessat: ::c_long = 300; -pub const SYS_pselect6_time32: ::c_long = 301; -pub const SYS_ppoll_time32: ::c_long = 302; -pub const SYS_unshare: ::c_long = 303; -pub const SYS_set_robust_list: ::c_long = 304; -pub const SYS_get_robust_list: ::c_long = 305; -pub const SYS_splice: ::c_long = 306; -pub const SYS_sync_file_range: ::c_long = 307; -pub const SYS_tee: ::c_long = 308; -pub const SYS_vmsplice: ::c_long = 309; -pub const SYS_move_pages: ::c_long = 310; -pub const SYS_sched_setaffinity: ::c_long = 311; -pub const SYS_sched_getaffinity: ::c_long = 312; -pub const SYS_kexec_load: ::c_long = 313; -pub const SYS_getcpu: ::c_long = 314; -pub const SYS_epoll_pwait: ::c_long = 315; -pub const SYS_utimensat_time32: ::c_long = 316; -pub const SYS_signalfd: ::c_long = 317; -pub const SYS_timerfd_create: ::c_long = 318; -pub const SYS_eventfd: ::c_long = 319; -pub const SYS_fallocate: ::c_long = 320; -pub const SYS_timerfd_settime32: ::c_long = 321; -pub const SYS_timerfd_gettime32: ::c_long = 322; -pub const SYS_signalfd4: ::c_long = 323; -pub const SYS_eventfd2: ::c_long = 324; -pub const SYS_epoll_create1: ::c_long = 325; -pub const SYS_dup3: ::c_long = 326; -pub const SYS_pipe2: ::c_long = 327; -pub const SYS_inotify_init1: ::c_long = 328; -pub const SYS_preadv: ::c_long = 329; -pub const SYS_pwritev: ::c_long = 330; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 331; -pub const SYS_perf_event_open: ::c_long = 332; -pub const SYS_get_thread_area: ::c_long = 333; -pub const SYS_set_thread_area: ::c_long = 334; -pub const SYS_atomic_cmpxchg_32: ::c_long = 335; -pub const SYS_atomic_barrier: ::c_long = 336; -pub const SYS_fanotify_init: ::c_long = 337; -pub const SYS_fanotify_mark: ::c_long = 338; -pub const SYS_prlimit64: ::c_long = 339; -pub const SYS_name_to_handle_at: ::c_long = 340; -pub const SYS_open_by_handle_at: ::c_long = 341; -pub const SYS_clock_adjtime32: ::c_long = 342; -pub const SYS_syncfs: ::c_long = 343; -pub const SYS_setns: ::c_long = 344; -pub const SYS_process_vm_readv: ::c_long = 345; -pub const SYS_process_vm_writev: ::c_long = 346; -pub const SYS_kcmp: ::c_long = 347; -pub const SYS_finit_module: ::c_long = 348; -pub const SYS_sched_setattr: ::c_long = 349; -pub const SYS_sched_getattr: ::c_long = 350; -pub const SYS_renameat2: ::c_long = 351; -pub const SYS_getrandom: ::c_long = 352; -pub const SYS_memfd_create: ::c_long = 353; -pub const SYS_bpf: ::c_long = 354; -pub const SYS_execveat: ::c_long = 355; -pub const SYS_socket: ::c_long = 356; -pub const SYS_socketpair: ::c_long = 357; -pub const SYS_bind: ::c_long = 358; -pub const SYS_connect: ::c_long = 359; -pub const SYS_listen: ::c_long = 360; -pub const SYS_accept4: ::c_long = 361; -pub const SYS_getsockopt: ::c_long = 362; -pub const SYS_setsockopt: ::c_long = 363; -pub const SYS_getsockname: ::c_long = 364; -pub const SYS_getpeername: ::c_long = 365; -pub const SYS_sendto: ::c_long = 366; -pub const SYS_sendmsg: ::c_long = 367; -pub const SYS_recvfrom: ::c_long = 368; -pub const SYS_recvmsg: ::c_long = 369; -pub const SYS_shutdown: ::c_long = 370; -pub const SYS_recvmmsg_time32: ::c_long = 371; -pub const SYS_sendmmsg: ::c_long = 372; -pub const SYS_userfaultfd: ::c_long = 373; -pub const SYS_membarrier: ::c_long = 374; -pub const SYS_mlock2: ::c_long = 375; -pub const SYS_copy_file_range: ::c_long = 376; -pub const SYS_preadv2: ::c_long = 377; -pub const SYS_pwritev2: ::c_long = 378; -pub const SYS_statx: ::c_long = 379; -pub const SYS_seccomp: ::c_long = 380; -pub const SYS_pkey_mprotect: ::c_long = 381; -pub const SYS_pkey_alloc: ::c_long = 382; -pub const SYS_pkey_free: ::c_long = 383; -pub const SYS_rseq: ::c_long = 384; -pub const SYS_semget: ::c_long = 393; -pub const SYS_semctl: ::c_long = 394; -pub const SYS_shmget: ::c_long = 395; -pub const SYS_shmctl: ::c_long = 396; -pub const SYS_shmat: ::c_long = 397; -pub const SYS_shmdt: ::c_long = 398; -pub const SYS_msgget: ::c_long = 399; -pub const SYS_msgsnd: ::c_long = 400; -pub const SYS_msgrcv: ::c_long = 401; -pub const SYS_msgctl: ::c_long = 402; -pub const SYS_clock_gettime: ::c_long = 403; -pub const SYS_clock_settime: ::c_long = 404; -pub const SYS_clock_adjtime: ::c_long = 405; -pub const SYS_clock_getres: ::c_long = 406; -pub const SYS_clock_nanosleep: ::c_long = 407; -pub const SYS_timer_gettime: ::c_long = 408; -pub const SYS_timer_settime: ::c_long = 409; -pub const SYS_timerfd_gettime: ::c_long = 410; -pub const SYS_timerfd_settime: ::c_long = 411; -pub const SYS_utimensat: ::c_long = 412; -pub const SYS_pselect6: ::c_long = 413; -pub const SYS_ppoll: ::c_long = 414; -pub const SYS_io_pgetevents: ::c_long = 416; -pub const SYS_recvmmsg: ::c_long = 417; -pub const SYS_mq_timedsend: ::c_long = 418; -pub const SYS_mq_timedreceive: ::c_long = 419; -pub const SYS_semtimedop: ::c_long = 420; -pub const SYS_rt_sigtimedwait: ::c_long = 421; -pub const SYS_futex: ::c_long = 422; -pub const SYS_sched_rr_get_interval: ::c_long = 423; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_restart_syscall: c_long = 0; +pub const SYS_exit: c_long = 1; +pub const SYS_fork: c_long = 2; +pub const SYS_read: c_long = 3; +pub const SYS_write: c_long = 4; +pub const SYS_open: c_long = 5; +pub const SYS_close: c_long = 6; +pub const SYS_waitpid: c_long = 7; +pub const SYS_creat: c_long = 8; +pub const SYS_link: c_long = 9; +pub const SYS_unlink: c_long = 10; +pub const SYS_execve: c_long = 11; +pub const SYS_chdir: c_long = 12; +pub const SYS_time32: c_long = 13; +pub const SYS_mknod: c_long = 14; +pub const SYS_chmod: c_long = 15; +pub const SYS_chown16: c_long = 16; +pub const SYS_stat: c_long = 18; +pub const SYS_lseek: c_long = 19; +pub const SYS_getpid: c_long = 20; +pub const SYS_mount: c_long = 21; +pub const SYS_oldumount: c_long = 22; +pub const SYS_setuid16: c_long = 23; +pub const SYS_getuid16: c_long = 24; +pub const SYS_stime32: c_long = 25; +pub const SYS_ptrace: c_long = 26; +pub const SYS_alarm: c_long = 27; +pub const SYS_fstat: c_long = 28; +pub const SYS_pause: c_long = 29; +pub const SYS_utime32: c_long = 30; +pub const SYS_access: c_long = 33; +pub const SYS_nice: c_long = 34; +pub const SYS_sync: c_long = 36; +pub const SYS_kill: c_long = 37; +pub const SYS_rename: c_long = 38; +pub const SYS_mkdir: c_long = 39; +pub const SYS_rmdir: c_long = 40; +pub const SYS_dup: c_long = 41; +pub const SYS_pipe: c_long = 42; +pub const SYS_times: c_long = 43; +pub const SYS_brk: c_long = 45; +pub const SYS_setgid16: c_long = 46; +pub const SYS_getgid16: c_long = 47; +pub const SYS_signal: c_long = 48; +pub const SYS_geteuid16: c_long = 49; +pub const SYS_getegid16: c_long = 50; +pub const SYS_acct: c_long = 51; +pub const SYS_umount: c_long = 52; +pub const SYS_ioctl: c_long = 54; +pub const SYS_fcntl: c_long = 55; +pub const SYS_setpgid: c_long = 57; +pub const SYS_umask: c_long = 60; +pub const SYS_chroot: c_long = 61; +pub const SYS_ustat: c_long = 62; +pub const SYS_dup2: c_long = 63; +pub const SYS_getppid: c_long = 64; +pub const SYS_getpgrp: c_long = 65; +pub const SYS_setsid: c_long = 66; +pub const SYS_sigaction: c_long = 67; +pub const SYS_sgetmask: c_long = 68; +pub const SYS_ssetmask: c_long = 69; +pub const SYS_setreuid16: c_long = 70; +pub const SYS_setregid16: c_long = 71; +pub const SYS_sigsuspend: c_long = 72; +pub const SYS_sigpending: c_long = 73; +pub const SYS_sethostname: c_long = 74; +pub const SYS_setrlimit: c_long = 75; +pub const SYS_old_getrlimit: c_long = 76; +pub const SYS_getrusage: c_long = 77; +pub const SYS_gettimeofday: c_long = 78; +pub const SYS_settimeofday: c_long = 79; +pub const SYS_getgroups16: c_long = 80; +pub const SYS_setgroups16: c_long = 81; +pub const SYS_old_select: c_long = 82; +pub const SYS_symlink: c_long = 83; +pub const SYS_lstat: c_long = 84; +pub const SYS_readlink: c_long = 85; +pub const SYS_uselib: c_long = 86; +pub const SYS_swapon: c_long = 87; +pub const SYS_reboot: c_long = 88; +pub const SYS_old_readdir: c_long = 89; +pub const SYS_old_mmap: c_long = 90; +pub const SYS_munmap: c_long = 91; +pub const SYS_truncate: c_long = 92; +pub const SYS_ftruncate: c_long = 93; +pub const SYS_fchmod: c_long = 94; +pub const SYS_fchown16: c_long = 95; +pub const SYS_getpriority: c_long = 96; +pub const SYS_setpriority: c_long = 97; +pub const SYS_statfs: c_long = 99; +pub const SYS_fstatfs: c_long = 100; +pub const SYS_socketcall: c_long = 102; +pub const SYS_syslog: c_long = 103; +pub const SYS_setitimer: c_long = 104; +pub const SYS_getitimer: c_long = 105; +pub const SYS_newstat: c_long = 106; +pub const SYS_newlstat: c_long = 107; +pub const SYS_newfstat: c_long = 108; +pub const SYS_vhangup: c_long = 111; +pub const SYS_wait4: c_long = 114; +pub const SYS_swapoff: c_long = 115; +pub const SYS_sysinfo: c_long = 116; +pub const SYS_ipc: c_long = 117; +pub const SYS_fsync: c_long = 118; +pub const SYS_sigreturn: c_long = 119; +pub const SYS_clone: c_long = 120; +pub const SYS_setdomainname: c_long = 121; +pub const SYS_newuname: c_long = 122; +pub const SYS_cacheflush: c_long = 123; +pub const SYS_adjtimex_time32: c_long = 124; +pub const SYS_mprotect: c_long = 125; +pub const SYS_sigprocmask: c_long = 126; +pub const SYS_create_module: c_long = 127; +pub const SYS_init_module: c_long = 128; +pub const SYS_delete_module: c_long = 129; +pub const SYS_get_kernel_syms: c_long = 130; +pub const SYS_quotactl: c_long = 131; +pub const SYS_getpgid: c_long = 132; +pub const SYS_fchdir: c_long = 133; +pub const SYS_bdflush: c_long = 134; +pub const SYS_sysfs: c_long = 135; +pub const SYS_personality: c_long = 136; +pub const SYS_setfsuid16: c_long = 138; +pub const SYS_setfsgid16: c_long = 139; +pub const SYS_llseek: c_long = 140; +pub const SYS_getdents: c_long = 141; +pub const SYS_select: c_long = 142; +pub const SYS_flock: c_long = 143; +pub const SYS_msync: c_long = 144; +pub const SYS_readv: c_long = 145; +pub const SYS_writev: c_long = 146; +pub const SYS_getsid: c_long = 147; +pub const SYS_fdatasync: c_long = 148; +pub const SYS__sysctl: c_long = 149; +pub const SYS_mlock: c_long = 150; +pub const SYS_munlock: c_long = 151; +pub const SYS_mlockall: c_long = 152; +pub const SYS_munlockall: c_long = 153; +pub const SYS_sched_setparam: c_long = 154; +pub const SYS_sched_getparam: c_long = 155; +pub const SYS_sched_setscheduler: c_long = 156; +pub const SYS_sched_getscheduler: c_long = 157; +pub const SYS_sched_yield: c_long = 158; +pub const SYS_sched_get_priority_max: c_long = 159; +pub const SYS_sched_get_priority_min: c_long = 160; +pub const SYS_sched_rr_get_interval_time32: c_long = 161; +pub const SYS_nanosleep_time32: c_long = 162; +pub const SYS_mremap: c_long = 163; +pub const SYS_setresuid16: c_long = 164; +pub const SYS_getresuid16: c_long = 165; +pub const SYS_getpagesize: c_long = 166; +pub const SYS_query_module: c_long = 167; +pub const SYS_poll: c_long = 168; +pub const SYS_nfsservctl: c_long = 169; +pub const SYS_setresgid16: c_long = 170; +pub const SYS_getresgid16: c_long = 171; +pub const SYS_prctl: c_long = 172; +pub const SYS_rt_sigreturn: c_long = 173; +pub const SYS_rt_sigaction: c_long = 174; +pub const SYS_rt_sigprocmask: c_long = 175; +pub const SYS_rt_sigpending: c_long = 176; +pub const SYS_rt_sigtimedwait_time32: c_long = 177; +pub const SYS_rt_sigqueueinfo: c_long = 178; +pub const SYS_rt_sigsuspend: c_long = 179; +pub const SYS_pread64: c_long = 180; +pub const SYS_pwrite64: c_long = 181; +pub const SYS_lchown16: c_long = 182; +pub const SYS_getcwd: c_long = 183; +pub const SYS_capget: c_long = 184; +pub const SYS_capset: c_long = 185; +pub const SYS_sigaltstack: c_long = 186; +pub const SYS_sendfile: c_long = 187; +pub const SYS_getpmsg: c_long = 188; +pub const SYS_putpmsg: c_long = 189; +pub const SYS_vfork: c_long = 190; +pub const SYS_getrlimit: c_long = 191; +pub const SYS_mmap2: c_long = 192; +pub const SYS_truncate64: c_long = 193; +pub const SYS_ftruncate64: c_long = 194; +pub const SYS_stat64: c_long = 195; +pub const SYS_lstat64: c_long = 196; +pub const SYS_fstat64: c_long = 197; +pub const SYS_chown: c_long = 198; +pub const SYS_getuid: c_long = 199; +pub const SYS_getgid: c_long = 200; +pub const SYS_geteuid: c_long = 201; +pub const SYS_getegid: c_long = 202; +pub const SYS_setreuid: c_long = 203; +pub const SYS_setregid: c_long = 204; +pub const SYS_getgroups: c_long = 205; +pub const SYS_setgroups: c_long = 206; +pub const SYS_fchown: c_long = 207; +pub const SYS_setresuid: c_long = 208; +pub const SYS_getresuid: c_long = 209; +pub const SYS_setresgid: c_long = 210; +pub const SYS_getresgid: c_long = 211; +pub const SYS_lchown: c_long = 212; +pub const SYS_setuid: c_long = 213; +pub const SYS_setgid: c_long = 214; +pub const SYS_setfsuid: c_long = 215; +pub const SYS_setfsgid: c_long = 216; +pub const SYS_pivot_root: c_long = 217; +pub const SYS_getdents64: c_long = 220; +pub const SYS_gettid: c_long = 221; +pub const SYS_tkill: c_long = 222; +pub const SYS_setxattr: c_long = 223; +pub const SYS_lsetxattr: c_long = 224; +pub const SYS_fsetxattr: c_long = 225; +pub const SYS_getxattr: c_long = 226; +pub const SYS_lgetxattr: c_long = 227; +pub const SYS_fgetxattr: c_long = 228; +pub const SYS_listxattr: c_long = 229; +pub const SYS_llistxattr: c_long = 230; +pub const SYS_flistxattr: c_long = 231; +pub const SYS_removexattr: c_long = 232; +pub const SYS_lremovexattr: c_long = 233; +pub const SYS_fremovexattr: c_long = 234; +pub const SYS_futex_time32: c_long = 235; +pub const SYS_sendfile64: c_long = 236; +pub const SYS_mincore: c_long = 237; +pub const SYS_madvise: c_long = 238; +pub const SYS_fcntl64: c_long = 239; +pub const SYS_readahead: c_long = 240; +pub const SYS_io_setup: c_long = 241; +pub const SYS_io_destroy: c_long = 242; +pub const SYS_io_getevents_time32: c_long = 243; +pub const SYS_io_submit: c_long = 244; +pub const SYS_io_cancel: c_long = 245; +pub const SYS_fadvise64: c_long = 246; +pub const SYS_exit_group: c_long = 247; +pub const SYS_lookup_dcookie: c_long = 248; +pub const SYS_epoll_create: c_long = 249; +pub const SYS_epoll_ctl: c_long = 250; +pub const SYS_epoll_wait: c_long = 251; +pub const SYS_remap_file_pages: c_long = 252; +pub const SYS_set_tid_address: c_long = 253; +pub const SYS_timer_create: c_long = 254; +pub const SYS_timer_settime32: c_long = 255; +pub const SYS_timer_gettime32: c_long = 256; +pub const SYS_timer_getoverrun: c_long = 257; +pub const SYS_timer_delete: c_long = 258; +pub const SYS_clock_settime32: c_long = 259; +pub const SYS_clock_gettime32: c_long = 260; +pub const SYS_clock_getres_time32: c_long = 261; +pub const SYS_clock_nanosleep_time32: c_long = 262; +pub const SYS_statfs64: c_long = 263; +pub const SYS_fstatfs64: c_long = 264; +pub const SYS_tgkill: c_long = 265; +pub const SYS_utimes_time32: c_long = 266; +pub const SYS_fadvise64_64: c_long = 267; +pub const SYS_mbind: c_long = 268; +pub const SYS_get_mempolicy: c_long = 269; +pub const SYS_set_mempolicy: c_long = 270; +pub const SYS_mq_open: c_long = 271; +pub const SYS_mq_unlink: c_long = 272; +pub const SYS_mq_timedsend_time32: c_long = 273; +pub const SYS_mq_timedreceive_time32: c_long = 274; +pub const SYS_mq_notify: c_long = 275; +pub const SYS_mq_getsetattr: c_long = 276; +pub const SYS_waitid: c_long = 277; +pub const SYS_add_key: c_long = 279; +pub const SYS_request_key: c_long = 280; +pub const SYS_keyctl: c_long = 281; +pub const SYS_ioprio_set: c_long = 282; +pub const SYS_ioprio_get: c_long = 283; +pub const SYS_inotify_init: c_long = 284; +pub const SYS_inotify_add_watch: c_long = 285; +pub const SYS_inotify_rm_watch: c_long = 286; +pub const SYS_migrate_pages: c_long = 287; +pub const SYS_openat: c_long = 288; +pub const SYS_mkdirat: c_long = 289; +pub const SYS_mknodat: c_long = 290; +pub const SYS_fchownat: c_long = 291; +pub const SYS_futimesat_time32: c_long = 292; +pub const SYS_fstatat64: c_long = 293; +pub const SYS_unlinkat: c_long = 294; +pub const SYS_renameat: c_long = 295; +pub const SYS_linkat: c_long = 296; +pub const SYS_symlinkat: c_long = 297; +pub const SYS_readlinkat: c_long = 298; +pub const SYS_fchmodat: c_long = 299; +pub const SYS_faccessat: c_long = 300; +pub const SYS_pselect6_time32: c_long = 301; +pub const SYS_ppoll_time32: c_long = 302; +pub const SYS_unshare: c_long = 303; +pub const SYS_set_robust_list: c_long = 304; +pub const SYS_get_robust_list: c_long = 305; +pub const SYS_splice: c_long = 306; +pub const SYS_sync_file_range: c_long = 307; +pub const SYS_tee: c_long = 308; +pub const SYS_vmsplice: c_long = 309; +pub const SYS_move_pages: c_long = 310; +pub const SYS_sched_setaffinity: c_long = 311; +pub const SYS_sched_getaffinity: c_long = 312; +pub const SYS_kexec_load: c_long = 313; +pub const SYS_getcpu: c_long = 314; +pub const SYS_epoll_pwait: c_long = 315; +pub const SYS_utimensat_time32: c_long = 316; +pub const SYS_signalfd: c_long = 317; +pub const SYS_timerfd_create: c_long = 318; +pub const SYS_eventfd: c_long = 319; +pub const SYS_fallocate: c_long = 320; +pub const SYS_timerfd_settime32: c_long = 321; +pub const SYS_timerfd_gettime32: c_long = 322; +pub const SYS_signalfd4: c_long = 323; +pub const SYS_eventfd2: c_long = 324; +pub const SYS_epoll_create1: c_long = 325; +pub const SYS_dup3: c_long = 326; +pub const SYS_pipe2: c_long = 327; +pub const SYS_inotify_init1: c_long = 328; +pub const SYS_preadv: c_long = 329; +pub const SYS_pwritev: c_long = 330; +pub const SYS_rt_tgsigqueueinfo: c_long = 331; +pub const SYS_perf_event_open: c_long = 332; +pub const SYS_get_thread_area: c_long = 333; +pub const SYS_set_thread_area: c_long = 334; +pub const SYS_atomic_cmpxchg_32: c_long = 335; +pub const SYS_atomic_barrier: c_long = 336; +pub const SYS_fanotify_init: c_long = 337; +pub const SYS_fanotify_mark: c_long = 338; +pub const SYS_prlimit64: c_long = 339; +pub const SYS_name_to_handle_at: c_long = 340; +pub const SYS_open_by_handle_at: c_long = 341; +pub const SYS_clock_adjtime32: c_long = 342; +pub const SYS_syncfs: c_long = 343; +pub const SYS_setns: c_long = 344; +pub const SYS_process_vm_readv: c_long = 345; +pub const SYS_process_vm_writev: c_long = 346; +pub const SYS_kcmp: c_long = 347; +pub const SYS_finit_module: c_long = 348; +pub const SYS_sched_setattr: c_long = 349; +pub const SYS_sched_getattr: c_long = 350; +pub const SYS_renameat2: c_long = 351; +pub const SYS_getrandom: c_long = 352; +pub const SYS_memfd_create: c_long = 353; +pub const SYS_bpf: c_long = 354; +pub const SYS_execveat: c_long = 355; +pub const SYS_socket: c_long = 356; +pub const SYS_socketpair: c_long = 357; +pub const SYS_bind: c_long = 358; +pub const SYS_connect: c_long = 359; +pub const SYS_listen: c_long = 360; +pub const SYS_accept4: c_long = 361; +pub const SYS_getsockopt: c_long = 362; +pub const SYS_setsockopt: c_long = 363; +pub const SYS_getsockname: c_long = 364; +pub const SYS_getpeername: c_long = 365; +pub const SYS_sendto: c_long = 366; +pub const SYS_sendmsg: c_long = 367; +pub const SYS_recvfrom: c_long = 368; +pub const SYS_recvmsg: c_long = 369; +pub const SYS_shutdown: c_long = 370; +pub const SYS_recvmmsg_time32: c_long = 371; +pub const SYS_sendmmsg: c_long = 372; +pub const SYS_userfaultfd: c_long = 373; +pub const SYS_membarrier: c_long = 374; +pub const SYS_mlock2: c_long = 375; +pub const SYS_copy_file_range: c_long = 376; +pub const SYS_preadv2: c_long = 377; +pub const SYS_pwritev2: c_long = 378; +pub const SYS_statx: c_long = 379; +pub const SYS_seccomp: c_long = 380; +pub const SYS_pkey_mprotect: c_long = 381; +pub const SYS_pkey_alloc: c_long = 382; +pub const SYS_pkey_free: c_long = 383; +pub const SYS_rseq: c_long = 384; +pub const SYS_semget: c_long = 393; +pub const SYS_semctl: c_long = 394; +pub const SYS_shmget: c_long = 395; +pub const SYS_shmctl: c_long = 396; +pub const SYS_shmat: c_long = 397; +pub const SYS_shmdt: c_long = 398; +pub const SYS_msgget: c_long = 399; +pub const SYS_msgsnd: c_long = 400; +pub const SYS_msgrcv: c_long = 401; +pub const SYS_msgctl: c_long = 402; +pub const SYS_clock_gettime: c_long = 403; +pub const SYS_clock_settime: c_long = 404; +pub const SYS_clock_adjtime: c_long = 405; +pub const SYS_clock_getres: c_long = 406; +pub const SYS_clock_nanosleep: c_long = 407; +pub const SYS_timer_gettime: c_long = 408; +pub const SYS_timer_settime: c_long = 409; +pub const SYS_timerfd_gettime: c_long = 410; +pub const SYS_timerfd_settime: c_long = 411; +pub const SYS_utimensat: c_long = 412; +pub const SYS_pselect6: c_long = 413; +pub const SYS_ppoll: c_long = 414; +pub const SYS_io_pgetevents: c_long = 416; +pub const SYS_recvmmsg: c_long = 417; +pub const SYS_mq_timedsend: c_long = 418; +pub const SYS_mq_timedreceive: c_long = 419; +pub const SYS_semtimedop: c_long = 420; +pub const SYS_rt_sigtimedwait: c_long = 421; +pub const SYS_futex: c_long = 422; +pub const SYS_sched_rr_get_interval: c_long = 423; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 13feaf6ff2a31..19fe9b23d4ade 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -1,158 +1,160 @@ +use crate::{c_int, c_long, c_short, c_uint, c_ulong, c_ushort, c_void, off64_t, off_t, size_t}; + pub type c_char = i8; pub type wchar_t = i32; s! { pub struct stat64 { - pub st_dev: ::c_ulong, - st_pad1: [::c_long; 3], - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulong, - st_pad2: [::c_long; 2], - pub st_size: ::off64_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_blksize: ::blksize_t, - st_pad3: ::c_long, - pub st_blocks: ::blkcnt64_t, - st_pad5: [::c_long; 14], + pub st_dev: c_ulong, + st_pad1: [c_long; 3], + pub st_ino: crate::ino64_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: c_ulong, + st_pad2: [c_long; 2], + pub st_size: off64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_blksize: crate::blksize_t, + st_pad3: c_long, + pub st_blocks: crate::blkcnt64_t, + st_pad5: [c_long; 14], } pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_frsize: ::c_long, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_files: ::fsblkcnt_t, - pub f_ffree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_fsid: ::fsid_t, - - pub f_namelen: ::c_long, - pub f_flags: ::c_long, - f_spare: [::c_long; 5], + pub f_type: c_long, + pub f_bsize: c_long, + pub f_frsize: c_long, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_files: crate::fsblkcnt_t, + pub f_ffree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_fsid: crate::fsid_t, + + pub f_namelen: c_long, + pub f_flags: c_long, + f_spare: [c_long; 5], } pub struct statfs64 { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_frsize: ::c_long, + pub f_type: c_long, + pub f_bsize: c_long, + pub f_frsize: c_long, pub f_blocks: u64, pub f_bfree: u64, pub f_files: u64, pub f_ffree: u64, pub f_bavail: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 5], + pub f_fsid: crate::fsid_t, + pub f_namelen: c_long, + pub f_flags: c_long, + pub f_spare: [c_long; 5], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + __f_unused: c_int, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct sigaction { - pub sa_flags: ::c_int, - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_restorer: ::Option, - _resv: [::c_int; 1], + pub sa_flags: c_int, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, + pub sa_restorer: Option, + _resv: [c_int; 1], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, + pub ss_sp: *mut c_void, + pub ss_size: size_t, + pub ss_flags: c_int, } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - pub _pad: [::c_int; 29], + pub si_signo: c_int, + pub si_code: c_int, + pub si_errno: c_int, + pub _pad: [c_int; 29], } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_uint, - pub __seq: ::c_ushort, - __pad1: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: c_uint, + pub __seq: c_ushort, + __pad1: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __unused4: c_ulong, + __unused5: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, + pub msg_perm: crate::ipc_perm, #[cfg(target_endian = "big")] - __glibc_reserved1: ::c_ulong, - pub msg_stime: ::time_t, + __glibc_reserved1: c_ulong, + pub msg_stime: crate::time_t, #[cfg(target_endian = "little")] - __glibc_reserved1: ::c_ulong, + __glibc_reserved1: c_ulong, #[cfg(target_endian = "big")] - __glibc_reserved2: ::c_ulong, - pub msg_rtime: ::time_t, + __glibc_reserved2: c_ulong, + pub msg_rtime: crate::time_t, #[cfg(target_endian = "little")] - __glibc_reserved2: ::c_ulong, + __glibc_reserved2: c_ulong, #[cfg(target_endian = "big")] - __glibc_reserved3: ::c_ulong, - pub msg_ctime: ::time_t, + __glibc_reserved3: c_ulong, + pub msg_ctime: crate::time_t, #[cfg(target_endian = "little")] - __glibc_reserved3: ::c_ulong, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, + __glibc_reserved3: c_ulong, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __glibc_reserved4: c_ulong, + __glibc_reserved5: c_ulong, } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_sysid: ::c_long, - pub l_pid: ::pid_t, - pad: [::c_long; 4], + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_sysid: c_long, + pub l_pid: crate::pid_t, + pad: [c_long; 4], } } @@ -164,584 +166,584 @@ s_no_extra_traits! { } } -pub const O_LARGEFILE: ::c_int = 0x2000; - -pub const SYS_syscall: ::c_long = 4000 + 0; -pub const SYS_exit: ::c_long = 4000 + 1; -pub const SYS_fork: ::c_long = 4000 + 2; -pub const SYS_read: ::c_long = 4000 + 3; -pub const SYS_write: ::c_long = 4000 + 4; -pub const SYS_open: ::c_long = 4000 + 5; -pub const SYS_close: ::c_long = 4000 + 6; -pub const SYS_waitpid: ::c_long = 4000 + 7; -pub const SYS_creat: ::c_long = 4000 + 8; -pub const SYS_link: ::c_long = 4000 + 9; -pub const SYS_unlink: ::c_long = 4000 + 10; -pub const SYS_execve: ::c_long = 4000 + 11; -pub const SYS_chdir: ::c_long = 4000 + 12; -pub const SYS_time: ::c_long = 4000 + 13; -pub const SYS_mknod: ::c_long = 4000 + 14; -pub const SYS_chmod: ::c_long = 4000 + 15; -pub const SYS_lchown: ::c_long = 4000 + 16; -pub const SYS_break: ::c_long = 4000 + 17; -pub const SYS_lseek: ::c_long = 4000 + 19; -pub const SYS_getpid: ::c_long = 4000 + 20; -pub const SYS_mount: ::c_long = 4000 + 21; -pub const SYS_umount: ::c_long = 4000 + 22; -pub const SYS_setuid: ::c_long = 4000 + 23; -pub const SYS_getuid: ::c_long = 4000 + 24; -pub const SYS_stime: ::c_long = 4000 + 25; -pub const SYS_ptrace: ::c_long = 4000 + 26; -pub const SYS_alarm: ::c_long = 4000 + 27; -pub const SYS_pause: ::c_long = 4000 + 29; -pub const SYS_utime: ::c_long = 4000 + 30; -pub const SYS_stty: ::c_long = 4000 + 31; -pub const SYS_gtty: ::c_long = 4000 + 32; -pub const SYS_access: ::c_long = 4000 + 33; -pub const SYS_nice: ::c_long = 4000 + 34; -pub const SYS_ftime: ::c_long = 4000 + 35; -pub const SYS_sync: ::c_long = 4000 + 36; -pub const SYS_kill: ::c_long = 4000 + 37; -pub const SYS_rename: ::c_long = 4000 + 38; -pub const SYS_mkdir: ::c_long = 4000 + 39; -pub const SYS_rmdir: ::c_long = 4000 + 40; -pub const SYS_dup: ::c_long = 4000 + 41; -pub const SYS_pipe: ::c_long = 4000 + 42; -pub const SYS_times: ::c_long = 4000 + 43; -pub const SYS_prof: ::c_long = 4000 + 44; -pub const SYS_brk: ::c_long = 4000 + 45; -pub const SYS_setgid: ::c_long = 4000 + 46; -pub const SYS_getgid: ::c_long = 4000 + 47; -pub const SYS_signal: ::c_long = 4000 + 48; -pub const SYS_geteuid: ::c_long = 4000 + 49; -pub const SYS_getegid: ::c_long = 4000 + 50; -pub const SYS_acct: ::c_long = 4000 + 51; -pub const SYS_umount2: ::c_long = 4000 + 52; -pub const SYS_lock: ::c_long = 4000 + 53; -pub const SYS_ioctl: ::c_long = 4000 + 54; -pub const SYS_fcntl: ::c_long = 4000 + 55; -pub const SYS_mpx: ::c_long = 4000 + 56; -pub const SYS_setpgid: ::c_long = 4000 + 57; -pub const SYS_ulimit: ::c_long = 4000 + 58; -pub const SYS_umask: ::c_long = 4000 + 60; -pub const SYS_chroot: ::c_long = 4000 + 61; -pub const SYS_ustat: ::c_long = 4000 + 62; -pub const SYS_dup2: ::c_long = 4000 + 63; -pub const SYS_getppid: ::c_long = 4000 + 64; -pub const SYS_getpgrp: ::c_long = 4000 + 65; -pub const SYS_setsid: ::c_long = 4000 + 66; -pub const SYS_sigaction: ::c_long = 4000 + 67; -pub const SYS_sgetmask: ::c_long = 4000 + 68; -pub const SYS_ssetmask: ::c_long = 4000 + 69; -pub const SYS_setreuid: ::c_long = 4000 + 70; -pub const SYS_setregid: ::c_long = 4000 + 71; -pub const SYS_sigsuspend: ::c_long = 4000 + 72; -pub const SYS_sigpending: ::c_long = 4000 + 73; -pub const SYS_sethostname: ::c_long = 4000 + 74; -pub const SYS_setrlimit: ::c_long = 4000 + 75; -pub const SYS_getrlimit: ::c_long = 4000 + 76; -pub const SYS_getrusage: ::c_long = 4000 + 77; -pub const SYS_gettimeofday: ::c_long = 4000 + 78; -pub const SYS_settimeofday: ::c_long = 4000 + 79; -pub const SYS_getgroups: ::c_long = 4000 + 80; -pub const SYS_setgroups: ::c_long = 4000 + 81; -pub const SYS_symlink: ::c_long = 4000 + 83; -pub const SYS_readlink: ::c_long = 4000 + 85; -pub const SYS_uselib: ::c_long = 4000 + 86; -pub const SYS_swapon: ::c_long = 4000 + 87; -pub const SYS_reboot: ::c_long = 4000 + 88; -pub const SYS_readdir: ::c_long = 4000 + 89; -pub const SYS_mmap: ::c_long = 4000 + 90; -pub const SYS_munmap: ::c_long = 4000 + 91; -pub const SYS_truncate: ::c_long = 4000 + 92; -pub const SYS_ftruncate: ::c_long = 4000 + 93; -pub const SYS_fchmod: ::c_long = 4000 + 94; -pub const SYS_fchown: ::c_long = 4000 + 95; -pub const SYS_getpriority: ::c_long = 4000 + 96; -pub const SYS_setpriority: ::c_long = 4000 + 97; -pub const SYS_profil: ::c_long = 4000 + 98; -pub const SYS_statfs: ::c_long = 4000 + 99; -pub const SYS_fstatfs: ::c_long = 4000 + 100; -pub const SYS_ioperm: ::c_long = 4000 + 101; -pub const SYS_socketcall: ::c_long = 4000 + 102; -pub const SYS_syslog: ::c_long = 4000 + 103; -pub const SYS_setitimer: ::c_long = 4000 + 104; -pub const SYS_getitimer: ::c_long = 4000 + 105; -pub const SYS_stat: ::c_long = 4000 + 106; -pub const SYS_lstat: ::c_long = 4000 + 107; -pub const SYS_fstat: ::c_long = 4000 + 108; -pub const SYS_iopl: ::c_long = 4000 + 110; -pub const SYS_vhangup: ::c_long = 4000 + 111; -pub const SYS_idle: ::c_long = 4000 + 112; -pub const SYS_vm86: ::c_long = 4000 + 113; -pub const SYS_wait4: ::c_long = 4000 + 114; -pub const SYS_swapoff: ::c_long = 4000 + 115; -pub const SYS_sysinfo: ::c_long = 4000 + 116; -pub const SYS_ipc: ::c_long = 4000 + 117; -pub const SYS_fsync: ::c_long = 4000 + 118; -pub const SYS_sigreturn: ::c_long = 4000 + 119; -pub const SYS_clone: ::c_long = 4000 + 120; -pub const SYS_setdomainname: ::c_long = 4000 + 121; -pub const SYS_uname: ::c_long = 4000 + 122; -pub const SYS_modify_ldt: ::c_long = 4000 + 123; -pub const SYS_adjtimex: ::c_long = 4000 + 124; -pub const SYS_mprotect: ::c_long = 4000 + 125; -pub const SYS_sigprocmask: ::c_long = 4000 + 126; -pub const SYS_create_module: ::c_long = 4000 + 127; -pub const SYS_init_module: ::c_long = 4000 + 128; -pub const SYS_delete_module: ::c_long = 4000 + 129; -pub const SYS_get_kernel_syms: ::c_long = 4000 + 130; -pub const SYS_quotactl: ::c_long = 4000 + 131; -pub const SYS_getpgid: ::c_long = 4000 + 132; -pub const SYS_fchdir: ::c_long = 4000 + 133; -pub const SYS_bdflush: ::c_long = 4000 + 134; -pub const SYS_sysfs: ::c_long = 4000 + 135; -pub const SYS_personality: ::c_long = 4000 + 136; -pub const SYS_afs_syscall: ::c_long = 4000 + 137; -pub const SYS_setfsuid: ::c_long = 4000 + 138; -pub const SYS_setfsgid: ::c_long = 4000 + 139; -pub const SYS__llseek: ::c_long = 4000 + 140; -pub const SYS_getdents: ::c_long = 4000 + 141; -pub const SYS__newselect: ::c_long = 4000 + 142; -pub const SYS_flock: ::c_long = 4000 + 143; -pub const SYS_msync: ::c_long = 4000 + 144; -pub const SYS_readv: ::c_long = 4000 + 145; -pub const SYS_writev: ::c_long = 4000 + 146; -pub const SYS_cacheflush: ::c_long = 4000 + 147; -pub const SYS_cachectl: ::c_long = 4000 + 148; -pub const SYS_sysmips: ::c_long = 4000 + 149; -pub const SYS_getsid: ::c_long = 4000 + 151; -pub const SYS_fdatasync: ::c_long = 4000 + 152; -pub const SYS__sysctl: ::c_long = 4000 + 153; -pub const SYS_mlock: ::c_long = 4000 + 154; -pub const SYS_munlock: ::c_long = 4000 + 155; -pub const SYS_mlockall: ::c_long = 4000 + 156; -pub const SYS_munlockall: ::c_long = 4000 + 157; -pub const SYS_sched_setparam: ::c_long = 4000 + 158; -pub const SYS_sched_getparam: ::c_long = 4000 + 159; -pub const SYS_sched_setscheduler: ::c_long = 4000 + 160; -pub const SYS_sched_getscheduler: ::c_long = 4000 + 161; -pub const SYS_sched_yield: ::c_long = 4000 + 162; -pub const SYS_sched_get_priority_max: ::c_long = 4000 + 163; -pub const SYS_sched_get_priority_min: ::c_long = 4000 + 164; -pub const SYS_sched_rr_get_interval: ::c_long = 4000 + 165; -pub const SYS_nanosleep: ::c_long = 4000 + 166; -pub const SYS_mremap: ::c_long = 4000 + 167; -pub const SYS_accept: ::c_long = 4000 + 168; -pub const SYS_bind: ::c_long = 4000 + 169; -pub const SYS_connect: ::c_long = 4000 + 170; -pub const SYS_getpeername: ::c_long = 4000 + 171; -pub const SYS_getsockname: ::c_long = 4000 + 172; -pub const SYS_getsockopt: ::c_long = 4000 + 173; -pub const SYS_listen: ::c_long = 4000 + 174; -pub const SYS_recv: ::c_long = 4000 + 175; -pub const SYS_recvfrom: ::c_long = 4000 + 176; -pub const SYS_recvmsg: ::c_long = 4000 + 177; -pub const SYS_send: ::c_long = 4000 + 178; -pub const SYS_sendmsg: ::c_long = 4000 + 179; -pub const SYS_sendto: ::c_long = 4000 + 180; -pub const SYS_setsockopt: ::c_long = 4000 + 181; -pub const SYS_shutdown: ::c_long = 4000 + 182; -pub const SYS_socket: ::c_long = 4000 + 183; -pub const SYS_socketpair: ::c_long = 4000 + 184; -pub const SYS_setresuid: ::c_long = 4000 + 185; -pub const SYS_getresuid: ::c_long = 4000 + 186; -pub const SYS_query_module: ::c_long = 4000 + 187; -pub const SYS_poll: ::c_long = 4000 + 188; -pub const SYS_nfsservctl: ::c_long = 4000 + 189; -pub const SYS_setresgid: ::c_long = 4000 + 190; -pub const SYS_getresgid: ::c_long = 4000 + 191; -pub const SYS_prctl: ::c_long = 4000 + 192; -pub const SYS_rt_sigreturn: ::c_long = 4000 + 193; -pub const SYS_rt_sigaction: ::c_long = 4000 + 194; -pub const SYS_rt_sigprocmask: ::c_long = 4000 + 195; -pub const SYS_rt_sigpending: ::c_long = 4000 + 196; -pub const SYS_rt_sigtimedwait: ::c_long = 4000 + 197; -pub const SYS_rt_sigqueueinfo: ::c_long = 4000 + 198; -pub const SYS_rt_sigsuspend: ::c_long = 4000 + 199; -pub const SYS_pread64: ::c_long = 4000 + 200; -pub const SYS_pwrite64: ::c_long = 4000 + 201; -pub const SYS_chown: ::c_long = 4000 + 202; -pub const SYS_getcwd: ::c_long = 4000 + 203; -pub const SYS_capget: ::c_long = 4000 + 204; -pub const SYS_capset: ::c_long = 4000 + 205; -pub const SYS_sigaltstack: ::c_long = 4000 + 206; -pub const SYS_sendfile: ::c_long = 4000 + 207; -pub const SYS_getpmsg: ::c_long = 4000 + 208; -pub const SYS_putpmsg: ::c_long = 4000 + 209; -pub const SYS_mmap2: ::c_long = 4000 + 210; -pub const SYS_truncate64: ::c_long = 4000 + 211; -pub const SYS_ftruncate64: ::c_long = 4000 + 212; -pub const SYS_stat64: ::c_long = 4000 + 213; -pub const SYS_lstat64: ::c_long = 4000 + 214; -pub const SYS_fstat64: ::c_long = 4000 + 215; -pub const SYS_pivot_root: ::c_long = 4000 + 216; -pub const SYS_mincore: ::c_long = 4000 + 217; -pub const SYS_madvise: ::c_long = 4000 + 218; -pub const SYS_getdents64: ::c_long = 4000 + 219; -pub const SYS_fcntl64: ::c_long = 4000 + 220; -pub const SYS_gettid: ::c_long = 4000 + 222; -pub const SYS_readahead: ::c_long = 4000 + 223; -pub const SYS_setxattr: ::c_long = 4000 + 224; -pub const SYS_lsetxattr: ::c_long = 4000 + 225; -pub const SYS_fsetxattr: ::c_long = 4000 + 226; -pub const SYS_getxattr: ::c_long = 4000 + 227; -pub const SYS_lgetxattr: ::c_long = 4000 + 228; -pub const SYS_fgetxattr: ::c_long = 4000 + 229; -pub const SYS_listxattr: ::c_long = 4000 + 230; -pub const SYS_llistxattr: ::c_long = 4000 + 231; -pub const SYS_flistxattr: ::c_long = 4000 + 232; -pub const SYS_removexattr: ::c_long = 4000 + 233; -pub const SYS_lremovexattr: ::c_long = 4000 + 234; -pub const SYS_fremovexattr: ::c_long = 4000 + 235; -pub const SYS_tkill: ::c_long = 4000 + 236; -pub const SYS_sendfile64: ::c_long = 4000 + 237; -pub const SYS_futex: ::c_long = 4000 + 238; -pub const SYS_sched_setaffinity: ::c_long = 4000 + 239; -pub const SYS_sched_getaffinity: ::c_long = 4000 + 240; -pub const SYS_io_setup: ::c_long = 4000 + 241; -pub const SYS_io_destroy: ::c_long = 4000 + 242; -pub const SYS_io_getevents: ::c_long = 4000 + 243; -pub const SYS_io_submit: ::c_long = 4000 + 244; -pub const SYS_io_cancel: ::c_long = 4000 + 245; -pub const SYS_exit_group: ::c_long = 4000 + 246; -pub const SYS_lookup_dcookie: ::c_long = 4000 + 247; -pub const SYS_epoll_create: ::c_long = 4000 + 248; -pub const SYS_epoll_ctl: ::c_long = 4000 + 249; -pub const SYS_epoll_wait: ::c_long = 4000 + 250; -pub const SYS_remap_file_pages: ::c_long = 4000 + 251; -pub const SYS_set_tid_address: ::c_long = 4000 + 252; -pub const SYS_restart_syscall: ::c_long = 4000 + 253; -pub const SYS_fadvise64: ::c_long = 4000 + 254; -pub const SYS_statfs64: ::c_long = 4000 + 255; -pub const SYS_fstatfs64: ::c_long = 4000 + 256; -pub const SYS_timer_create: ::c_long = 4000 + 257; -pub const SYS_timer_settime: ::c_long = 4000 + 258; -pub const SYS_timer_gettime: ::c_long = 4000 + 259; -pub const SYS_timer_getoverrun: ::c_long = 4000 + 260; -pub const SYS_timer_delete: ::c_long = 4000 + 261; -pub const SYS_clock_settime: ::c_long = 4000 + 262; -pub const SYS_clock_gettime: ::c_long = 4000 + 263; -pub const SYS_clock_getres: ::c_long = 4000 + 264; -pub const SYS_clock_nanosleep: ::c_long = 4000 + 265; -pub const SYS_tgkill: ::c_long = 4000 + 266; -pub const SYS_utimes: ::c_long = 4000 + 267; -pub const SYS_mbind: ::c_long = 4000 + 268; -pub const SYS_get_mempolicy: ::c_long = 4000 + 269; -pub const SYS_set_mempolicy: ::c_long = 4000 + 270; -pub const SYS_mq_open: ::c_long = 4000 + 271; -pub const SYS_mq_unlink: ::c_long = 4000 + 272; -pub const SYS_mq_timedsend: ::c_long = 4000 + 273; -pub const SYS_mq_timedreceive: ::c_long = 4000 + 274; -pub const SYS_mq_notify: ::c_long = 4000 + 275; -pub const SYS_mq_getsetattr: ::c_long = 4000 + 276; -pub const SYS_vserver: ::c_long = 4000 + 277; -pub const SYS_waitid: ::c_long = 4000 + 278; -/* pub const SYS_sys_setaltroot: ::c_long = 4000 + 279; */ -pub const SYS_add_key: ::c_long = 4000 + 280; -pub const SYS_request_key: ::c_long = 4000 + 281; -pub const SYS_keyctl: ::c_long = 4000 + 282; -pub const SYS_set_thread_area: ::c_long = 4000 + 283; -pub const SYS_inotify_init: ::c_long = 4000 + 284; -pub const SYS_inotify_add_watch: ::c_long = 4000 + 285; -pub const SYS_inotify_rm_watch: ::c_long = 4000 + 286; -pub const SYS_migrate_pages: ::c_long = 4000 + 287; -pub const SYS_openat: ::c_long = 4000 + 288; -pub const SYS_mkdirat: ::c_long = 4000 + 289; -pub const SYS_mknodat: ::c_long = 4000 + 290; -pub const SYS_fchownat: ::c_long = 4000 + 291; -pub const SYS_futimesat: ::c_long = 4000 + 292; -pub const SYS_fstatat64: ::c_long = 4000 + 293; -pub const SYS_unlinkat: ::c_long = 4000 + 294; -pub const SYS_renameat: ::c_long = 4000 + 295; -pub const SYS_linkat: ::c_long = 4000 + 296; -pub const SYS_symlinkat: ::c_long = 4000 + 297; -pub const SYS_readlinkat: ::c_long = 4000 + 298; -pub const SYS_fchmodat: ::c_long = 4000 + 299; -pub const SYS_faccessat: ::c_long = 4000 + 300; -pub const SYS_pselect6: ::c_long = 4000 + 301; -pub const SYS_ppoll: ::c_long = 4000 + 302; -pub const SYS_unshare: ::c_long = 4000 + 303; -pub const SYS_splice: ::c_long = 4000 + 304; -pub const SYS_sync_file_range: ::c_long = 4000 + 305; -pub const SYS_tee: ::c_long = 4000 + 306; -pub const SYS_vmsplice: ::c_long = 4000 + 307; -pub const SYS_move_pages: ::c_long = 4000 + 308; -pub const SYS_set_robust_list: ::c_long = 4000 + 309; -pub const SYS_get_robust_list: ::c_long = 4000 + 310; -pub const SYS_kexec_load: ::c_long = 4000 + 311; -pub const SYS_getcpu: ::c_long = 4000 + 312; -pub const SYS_epoll_pwait: ::c_long = 4000 + 313; -pub const SYS_ioprio_set: ::c_long = 4000 + 314; -pub const SYS_ioprio_get: ::c_long = 4000 + 315; -pub const SYS_utimensat: ::c_long = 4000 + 316; -pub const SYS_signalfd: ::c_long = 4000 + 317; -pub const SYS_timerfd: ::c_long = 4000 + 318; -pub const SYS_eventfd: ::c_long = 4000 + 319; -pub const SYS_fallocate: ::c_long = 4000 + 320; -pub const SYS_timerfd_create: ::c_long = 4000 + 321; -pub const SYS_timerfd_gettime: ::c_long = 4000 + 322; -pub const SYS_timerfd_settime: ::c_long = 4000 + 323; -pub const SYS_signalfd4: ::c_long = 4000 + 324; -pub const SYS_eventfd2: ::c_long = 4000 + 325; -pub const SYS_epoll_create1: ::c_long = 4000 + 326; -pub const SYS_dup3: ::c_long = 4000 + 327; -pub const SYS_pipe2: ::c_long = 4000 + 328; -pub const SYS_inotify_init1: ::c_long = 4000 + 329; -pub const SYS_preadv: ::c_long = 4000 + 330; -pub const SYS_pwritev: ::c_long = 4000 + 331; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 4000 + 332; -pub const SYS_perf_event_open: ::c_long = 4000 + 333; -pub const SYS_accept4: ::c_long = 4000 + 334; -pub const SYS_recvmmsg: ::c_long = 4000 + 335; -pub const SYS_fanotify_init: ::c_long = 4000 + 336; -pub const SYS_fanotify_mark: ::c_long = 4000 + 337; -pub const SYS_prlimit64: ::c_long = 4000 + 338; -pub const SYS_name_to_handle_at: ::c_long = 4000 + 339; -pub const SYS_open_by_handle_at: ::c_long = 4000 + 340; -pub const SYS_clock_adjtime: ::c_long = 4000 + 341; -pub const SYS_syncfs: ::c_long = 4000 + 342; -pub const SYS_sendmmsg: ::c_long = 4000 + 343; -pub const SYS_setns: ::c_long = 4000 + 344; -pub const SYS_process_vm_readv: ::c_long = 4000 + 345; -pub const SYS_process_vm_writev: ::c_long = 4000 + 346; -pub const SYS_kcmp: ::c_long = 4000 + 347; -pub const SYS_finit_module: ::c_long = 4000 + 348; -pub const SYS_sched_setattr: ::c_long = 4000 + 349; -pub const SYS_sched_getattr: ::c_long = 4000 + 350; -pub const SYS_renameat2: ::c_long = 4000 + 351; -pub const SYS_seccomp: ::c_long = 4000 + 352; -pub const SYS_getrandom: ::c_long = 4000 + 353; -pub const SYS_memfd_create: ::c_long = 4000 + 354; -pub const SYS_bpf: ::c_long = 4000 + 355; -pub const SYS_execveat: ::c_long = 4000 + 356; -pub const SYS_userfaultfd: ::c_long = 4000 + 357; -pub const SYS_membarrier: ::c_long = 4000 + 358; -pub const SYS_mlock2: ::c_long = 4000 + 359; -pub const SYS_copy_file_range: ::c_long = 4000 + 360; -pub const SYS_preadv2: ::c_long = 4000 + 361; -pub const SYS_pwritev2: ::c_long = 4000 + 362; -pub const SYS_pkey_mprotect: ::c_long = 4000 + 363; -pub const SYS_pkey_alloc: ::c_long = 4000 + 364; -pub const SYS_pkey_free: ::c_long = 4000 + 365; -pub const SYS_statx: ::c_long = 4000 + 366; -pub const SYS_rseq: ::c_long = 4000 + 367; -pub const SYS_pidfd_send_signal: ::c_long = 4000 + 424; -pub const SYS_io_uring_setup: ::c_long = 4000 + 425; -pub const SYS_io_uring_enter: ::c_long = 4000 + 426; -pub const SYS_io_uring_register: ::c_long = 4000 + 427; -pub const SYS_open_tree: ::c_long = 4000 + 428; -pub const SYS_move_mount: ::c_long = 4000 + 429; -pub const SYS_fsopen: ::c_long = 4000 + 430; -pub const SYS_fsconfig: ::c_long = 4000 + 431; -pub const SYS_fsmount: ::c_long = 4000 + 432; -pub const SYS_fspick: ::c_long = 4000 + 433; -pub const SYS_pidfd_open: ::c_long = 4000 + 434; -pub const SYS_clone3: ::c_long = 4000 + 435; -pub const SYS_close_range: ::c_long = 4000 + 436; -pub const SYS_openat2: ::c_long = 4000 + 437; -pub const SYS_pidfd_getfd: ::c_long = 4000 + 438; -pub const SYS_faccessat2: ::c_long = 4000 + 439; -pub const SYS_process_madvise: ::c_long = 4000 + 440; -pub const SYS_epoll_pwait2: ::c_long = 4000 + 441; -pub const SYS_mount_setattr: ::c_long = 4000 + 442; -pub const SYS_quotactl_fd: ::c_long = 4000 + 443; -pub const SYS_landlock_create_ruleset: ::c_long = 4000 + 444; -pub const SYS_landlock_add_rule: ::c_long = 4000 + 445; -pub const SYS_landlock_restrict_self: ::c_long = 4000 + 446; -pub const SYS_memfd_secret: ::c_long = 4000 + 447; -pub const SYS_process_mrelease: ::c_long = 4000 + 448; -pub const SYS_futex_waitv: ::c_long = 4000 + 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 4000 + 450; - -pub const O_DIRECT: ::c_int = 0x8000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; - -pub const O_APPEND: ::c_int = 8; -pub const O_CREAT: ::c_int = 256; -pub const O_EXCL: ::c_int = 1024; -pub const O_NOCTTY: ::c_int = 2048; -pub const O_NONBLOCK: ::c_int = 128; -pub const O_SYNC: ::c_int = 0x4010; -pub const O_RSYNC: ::c_int = 0x4010; -pub const O_DSYNC: ::c_int = 0x10; -pub const O_FSYNC: ::c_int = 0x4010; -pub const O_ASYNC: ::c_int = 0x1000; -pub const O_NDELAY: ::c_int = 0x80; - -pub const EDEADLK: ::c_int = 45; -pub const ENAMETOOLONG: ::c_int = 78; -pub const ENOLCK: ::c_int = 46; -pub const ENOSYS: ::c_int = 89; -pub const ENOTEMPTY: ::c_int = 93; -pub const ELOOP: ::c_int = 90; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const ECHRNG: ::c_int = 37; -pub const EL2NSYNC: ::c_int = 38; -pub const EL3HLT: ::c_int = 39; -pub const EL3RST: ::c_int = 40; -pub const ELNRNG: ::c_int = 41; -pub const EUNATCH: ::c_int = 42; -pub const ENOCSI: ::c_int = 43; -pub const EL2HLT: ::c_int = 44; -pub const EBADE: ::c_int = 50; -pub const EBADR: ::c_int = 51; -pub const EXFULL: ::c_int = 52; -pub const ENOANO: ::c_int = 53; -pub const EBADRQC: ::c_int = 54; -pub const EBADSLT: ::c_int = 55; -pub const EDEADLOCK: ::c_int = 56; -pub const EMULTIHOP: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 79; -pub const ENOTUNIQ: ::c_int = 80; -pub const EBADFD: ::c_int = 81; -pub const EBADMSG: ::c_int = 77; -pub const EREMCHG: ::c_int = 82; -pub const ELIBACC: ::c_int = 83; -pub const ELIBBAD: ::c_int = 84; -pub const ELIBSCN: ::c_int = 85; -pub const ELIBMAX: ::c_int = 86; -pub const ELIBEXEC: ::c_int = 87; -pub const EILSEQ: ::c_int = 88; -pub const ERESTART: ::c_int = 91; -pub const ESTRPIPE: ::c_int = 92; -pub const EUSERS: ::c_int = 94; -pub const ENOTSOCK: ::c_int = 95; -pub const EDESTADDRREQ: ::c_int = 96; -pub const EMSGSIZE: ::c_int = 97; -pub const EPROTOTYPE: ::c_int = 98; -pub const ENOPROTOOPT: ::c_int = 99; -pub const EPROTONOSUPPORT: ::c_int = 120; -pub const ESOCKTNOSUPPORT: ::c_int = 121; -pub const EOPNOTSUPP: ::c_int = 122; -pub const EPFNOSUPPORT: ::c_int = 123; -pub const EAFNOSUPPORT: ::c_int = 124; -pub const EADDRINUSE: ::c_int = 125; -pub const EADDRNOTAVAIL: ::c_int = 126; -pub const ENETDOWN: ::c_int = 127; -pub const ENETUNREACH: ::c_int = 128; -pub const ENETRESET: ::c_int = 129; -pub const ECONNABORTED: ::c_int = 130; -pub const ECONNRESET: ::c_int = 131; -pub const ENOBUFS: ::c_int = 132; -pub const EISCONN: ::c_int = 133; -pub const ENOTCONN: ::c_int = 134; -pub const ESHUTDOWN: ::c_int = 143; -pub const ETOOMANYREFS: ::c_int = 144; -pub const ETIMEDOUT: ::c_int = 145; -pub const ECONNREFUSED: ::c_int = 146; -pub const EHOSTDOWN: ::c_int = 147; -pub const EHOSTUNREACH: ::c_int = 148; -pub const EALREADY: ::c_int = 149; -pub const EINPROGRESS: ::c_int = 150; -pub const ESTALE: ::c_int = 151; -pub const EUCLEAN: ::c_int = 135; -pub const ENOTNAM: ::c_int = 137; -pub const ENAVAIL: ::c_int = 138; -pub const EISNAM: ::c_int = 139; -pub const EREMOTEIO: ::c_int = 140; -pub const EDQUOT: ::c_int = 1133; -pub const ENOMEDIUM: ::c_int = 159; -pub const EMEDIUMTYPE: ::c_int = 160; -pub const ECANCELED: ::c_int = 158; -pub const ENOKEY: ::c_int = 161; -pub const EKEYEXPIRED: ::c_int = 162; -pub const EKEYREVOKED: ::c_int = 163; -pub const EKEYREJECTED: ::c_int = 164; -pub const EOWNERDEAD: ::c_int = 165; -pub const ENOTRECOVERABLE: ::c_int = 166; -pub const ERFKILL: ::c_int = 167; - -pub const MAP_NORESERVE: ::c_int = 0x400; -pub const MAP_ANON: ::c_int = 0x800; -pub const MAP_ANONYMOUS: ::c_int = 0x800; -pub const MAP_GROWSDOWN: ::c_int = 0x1000; -pub const MAP_DENYWRITE: ::c_int = 0x2000; -pub const MAP_EXECUTABLE: ::c_int = 0x4000; -pub const MAP_LOCKED: ::c_int = 0x8000; -pub const MAP_POPULATE: ::c_int = 0x10000; -pub const MAP_NONBLOCK: ::c_int = 0x20000; -pub const MAP_STACK: ::c_int = 0x40000; - -pub const SOCK_STREAM: ::c_int = 2; -pub const SOCK_DGRAM: ::c_int = 1; - -pub const SA_SIGINFO: ::c_int = 0x00000008; -pub const SA_NOCLDWAIT: ::c_int = 0x00010000; - -pub const SIGCHLD: ::c_int = 18; -pub const SIGBUS: ::c_int = 10; -pub const SIGTTIN: ::c_int = 26; -pub const SIGTTOU: ::c_int = 27; -pub const SIGXCPU: ::c_int = 30; -pub const SIGXFSZ: ::c_int = 31; -pub const SIGVTALRM: ::c_int = 28; -pub const SIGPROF: ::c_int = 29; -pub const SIGWINCH: ::c_int = 20; -pub const SIGUSR1: ::c_int = 16; -pub const SIGUSR2: ::c_int = 17; -pub const SIGCONT: ::c_int = 25; -pub const SIGSTOP: ::c_int = 23; -pub const SIGTSTP: ::c_int = 24; -pub const SIGURG: ::c_int = 21; -pub const SIGIO: ::c_int = 22; -pub const SIGSYS: ::c_int = 12; -pub const SIGPOLL: ::c_int = 22; -pub const SIGPWR: ::c_int = 19; -pub const SIG_SETMASK: ::c_int = 3; -pub const SIG_BLOCK: ::c_int = 0x1; -pub const SIG_UNBLOCK: ::c_int = 0x2; - -pub const POLLWRNORM: ::c_short = 0x004; -pub const POLLWRBAND: ::c_short = 0x100; +pub const O_LARGEFILE: c_int = 0x2000; + +pub const SYS_syscall: c_long = 4000 + 0; +pub const SYS_exit: c_long = 4000 + 1; +pub const SYS_fork: c_long = 4000 + 2; +pub const SYS_read: c_long = 4000 + 3; +pub const SYS_write: c_long = 4000 + 4; +pub const SYS_open: c_long = 4000 + 5; +pub const SYS_close: c_long = 4000 + 6; +pub const SYS_waitpid: c_long = 4000 + 7; +pub const SYS_creat: c_long = 4000 + 8; +pub const SYS_link: c_long = 4000 + 9; +pub const SYS_unlink: c_long = 4000 + 10; +pub const SYS_execve: c_long = 4000 + 11; +pub const SYS_chdir: c_long = 4000 + 12; +pub const SYS_time: c_long = 4000 + 13; +pub const SYS_mknod: c_long = 4000 + 14; +pub const SYS_chmod: c_long = 4000 + 15; +pub const SYS_lchown: c_long = 4000 + 16; +pub const SYS_break: c_long = 4000 + 17; +pub const SYS_lseek: c_long = 4000 + 19; +pub const SYS_getpid: c_long = 4000 + 20; +pub const SYS_mount: c_long = 4000 + 21; +pub const SYS_umount: c_long = 4000 + 22; +pub const SYS_setuid: c_long = 4000 + 23; +pub const SYS_getuid: c_long = 4000 + 24; +pub const SYS_stime: c_long = 4000 + 25; +pub const SYS_ptrace: c_long = 4000 + 26; +pub const SYS_alarm: c_long = 4000 + 27; +pub const SYS_pause: c_long = 4000 + 29; +pub const SYS_utime: c_long = 4000 + 30; +pub const SYS_stty: c_long = 4000 + 31; +pub const SYS_gtty: c_long = 4000 + 32; +pub const SYS_access: c_long = 4000 + 33; +pub const SYS_nice: c_long = 4000 + 34; +pub const SYS_ftime: c_long = 4000 + 35; +pub const SYS_sync: c_long = 4000 + 36; +pub const SYS_kill: c_long = 4000 + 37; +pub const SYS_rename: c_long = 4000 + 38; +pub const SYS_mkdir: c_long = 4000 + 39; +pub const SYS_rmdir: c_long = 4000 + 40; +pub const SYS_dup: c_long = 4000 + 41; +pub const SYS_pipe: c_long = 4000 + 42; +pub const SYS_times: c_long = 4000 + 43; +pub const SYS_prof: c_long = 4000 + 44; +pub const SYS_brk: c_long = 4000 + 45; +pub const SYS_setgid: c_long = 4000 + 46; +pub const SYS_getgid: c_long = 4000 + 47; +pub const SYS_signal: c_long = 4000 + 48; +pub const SYS_geteuid: c_long = 4000 + 49; +pub const SYS_getegid: c_long = 4000 + 50; +pub const SYS_acct: c_long = 4000 + 51; +pub const SYS_umount2: c_long = 4000 + 52; +pub const SYS_lock: c_long = 4000 + 53; +pub const SYS_ioctl: c_long = 4000 + 54; +pub const SYS_fcntl: c_long = 4000 + 55; +pub const SYS_mpx: c_long = 4000 + 56; +pub const SYS_setpgid: c_long = 4000 + 57; +pub const SYS_ulimit: c_long = 4000 + 58; +pub const SYS_umask: c_long = 4000 + 60; +pub const SYS_chroot: c_long = 4000 + 61; +pub const SYS_ustat: c_long = 4000 + 62; +pub const SYS_dup2: c_long = 4000 + 63; +pub const SYS_getppid: c_long = 4000 + 64; +pub const SYS_getpgrp: c_long = 4000 + 65; +pub const SYS_setsid: c_long = 4000 + 66; +pub const SYS_sigaction: c_long = 4000 + 67; +pub const SYS_sgetmask: c_long = 4000 + 68; +pub const SYS_ssetmask: c_long = 4000 + 69; +pub const SYS_setreuid: c_long = 4000 + 70; +pub const SYS_setregid: c_long = 4000 + 71; +pub const SYS_sigsuspend: c_long = 4000 + 72; +pub const SYS_sigpending: c_long = 4000 + 73; +pub const SYS_sethostname: c_long = 4000 + 74; +pub const SYS_setrlimit: c_long = 4000 + 75; +pub const SYS_getrlimit: c_long = 4000 + 76; +pub const SYS_getrusage: c_long = 4000 + 77; +pub const SYS_gettimeofday: c_long = 4000 + 78; +pub const SYS_settimeofday: c_long = 4000 + 79; +pub const SYS_getgroups: c_long = 4000 + 80; +pub const SYS_setgroups: c_long = 4000 + 81; +pub const SYS_symlink: c_long = 4000 + 83; +pub const SYS_readlink: c_long = 4000 + 85; +pub const SYS_uselib: c_long = 4000 + 86; +pub const SYS_swapon: c_long = 4000 + 87; +pub const SYS_reboot: c_long = 4000 + 88; +pub const SYS_readdir: c_long = 4000 + 89; +pub const SYS_mmap: c_long = 4000 + 90; +pub const SYS_munmap: c_long = 4000 + 91; +pub const SYS_truncate: c_long = 4000 + 92; +pub const SYS_ftruncate: c_long = 4000 + 93; +pub const SYS_fchmod: c_long = 4000 + 94; +pub const SYS_fchown: c_long = 4000 + 95; +pub const SYS_getpriority: c_long = 4000 + 96; +pub const SYS_setpriority: c_long = 4000 + 97; +pub const SYS_profil: c_long = 4000 + 98; +pub const SYS_statfs: c_long = 4000 + 99; +pub const SYS_fstatfs: c_long = 4000 + 100; +pub const SYS_ioperm: c_long = 4000 + 101; +pub const SYS_socketcall: c_long = 4000 + 102; +pub const SYS_syslog: c_long = 4000 + 103; +pub const SYS_setitimer: c_long = 4000 + 104; +pub const SYS_getitimer: c_long = 4000 + 105; +pub const SYS_stat: c_long = 4000 + 106; +pub const SYS_lstat: c_long = 4000 + 107; +pub const SYS_fstat: c_long = 4000 + 108; +pub const SYS_iopl: c_long = 4000 + 110; +pub const SYS_vhangup: c_long = 4000 + 111; +pub const SYS_idle: c_long = 4000 + 112; +pub const SYS_vm86: c_long = 4000 + 113; +pub const SYS_wait4: c_long = 4000 + 114; +pub const SYS_swapoff: c_long = 4000 + 115; +pub const SYS_sysinfo: c_long = 4000 + 116; +pub const SYS_ipc: c_long = 4000 + 117; +pub const SYS_fsync: c_long = 4000 + 118; +pub const SYS_sigreturn: c_long = 4000 + 119; +pub const SYS_clone: c_long = 4000 + 120; +pub const SYS_setdomainname: c_long = 4000 + 121; +pub const SYS_uname: c_long = 4000 + 122; +pub const SYS_modify_ldt: c_long = 4000 + 123; +pub const SYS_adjtimex: c_long = 4000 + 124; +pub const SYS_mprotect: c_long = 4000 + 125; +pub const SYS_sigprocmask: c_long = 4000 + 126; +pub const SYS_create_module: c_long = 4000 + 127; +pub const SYS_init_module: c_long = 4000 + 128; +pub const SYS_delete_module: c_long = 4000 + 129; +pub const SYS_get_kernel_syms: c_long = 4000 + 130; +pub const SYS_quotactl: c_long = 4000 + 131; +pub const SYS_getpgid: c_long = 4000 + 132; +pub const SYS_fchdir: c_long = 4000 + 133; +pub const SYS_bdflush: c_long = 4000 + 134; +pub const SYS_sysfs: c_long = 4000 + 135; +pub const SYS_personality: c_long = 4000 + 136; +pub const SYS_afs_syscall: c_long = 4000 + 137; +pub const SYS_setfsuid: c_long = 4000 + 138; +pub const SYS_setfsgid: c_long = 4000 + 139; +pub const SYS__llseek: c_long = 4000 + 140; +pub const SYS_getdents: c_long = 4000 + 141; +pub const SYS__newselect: c_long = 4000 + 142; +pub const SYS_flock: c_long = 4000 + 143; +pub const SYS_msync: c_long = 4000 + 144; +pub const SYS_readv: c_long = 4000 + 145; +pub const SYS_writev: c_long = 4000 + 146; +pub const SYS_cacheflush: c_long = 4000 + 147; +pub const SYS_cachectl: c_long = 4000 + 148; +pub const SYS_sysmips: c_long = 4000 + 149; +pub const SYS_getsid: c_long = 4000 + 151; +pub const SYS_fdatasync: c_long = 4000 + 152; +pub const SYS__sysctl: c_long = 4000 + 153; +pub const SYS_mlock: c_long = 4000 + 154; +pub const SYS_munlock: c_long = 4000 + 155; +pub const SYS_mlockall: c_long = 4000 + 156; +pub const SYS_munlockall: c_long = 4000 + 157; +pub const SYS_sched_setparam: c_long = 4000 + 158; +pub const SYS_sched_getparam: c_long = 4000 + 159; +pub const SYS_sched_setscheduler: c_long = 4000 + 160; +pub const SYS_sched_getscheduler: c_long = 4000 + 161; +pub const SYS_sched_yield: c_long = 4000 + 162; +pub const SYS_sched_get_priority_max: c_long = 4000 + 163; +pub const SYS_sched_get_priority_min: c_long = 4000 + 164; +pub const SYS_sched_rr_get_interval: c_long = 4000 + 165; +pub const SYS_nanosleep: c_long = 4000 + 166; +pub const SYS_mremap: c_long = 4000 + 167; +pub const SYS_accept: c_long = 4000 + 168; +pub const SYS_bind: c_long = 4000 + 169; +pub const SYS_connect: c_long = 4000 + 170; +pub const SYS_getpeername: c_long = 4000 + 171; +pub const SYS_getsockname: c_long = 4000 + 172; +pub const SYS_getsockopt: c_long = 4000 + 173; +pub const SYS_listen: c_long = 4000 + 174; +pub const SYS_recv: c_long = 4000 + 175; +pub const SYS_recvfrom: c_long = 4000 + 176; +pub const SYS_recvmsg: c_long = 4000 + 177; +pub const SYS_send: c_long = 4000 + 178; +pub const SYS_sendmsg: c_long = 4000 + 179; +pub const SYS_sendto: c_long = 4000 + 180; +pub const SYS_setsockopt: c_long = 4000 + 181; +pub const SYS_shutdown: c_long = 4000 + 182; +pub const SYS_socket: c_long = 4000 + 183; +pub const SYS_socketpair: c_long = 4000 + 184; +pub const SYS_setresuid: c_long = 4000 + 185; +pub const SYS_getresuid: c_long = 4000 + 186; +pub const SYS_query_module: c_long = 4000 + 187; +pub const SYS_poll: c_long = 4000 + 188; +pub const SYS_nfsservctl: c_long = 4000 + 189; +pub const SYS_setresgid: c_long = 4000 + 190; +pub const SYS_getresgid: c_long = 4000 + 191; +pub const SYS_prctl: c_long = 4000 + 192; +pub const SYS_rt_sigreturn: c_long = 4000 + 193; +pub const SYS_rt_sigaction: c_long = 4000 + 194; +pub const SYS_rt_sigprocmask: c_long = 4000 + 195; +pub const SYS_rt_sigpending: c_long = 4000 + 196; +pub const SYS_rt_sigtimedwait: c_long = 4000 + 197; +pub const SYS_rt_sigqueueinfo: c_long = 4000 + 198; +pub const SYS_rt_sigsuspend: c_long = 4000 + 199; +pub const SYS_pread64: c_long = 4000 + 200; +pub const SYS_pwrite64: c_long = 4000 + 201; +pub const SYS_chown: c_long = 4000 + 202; +pub const SYS_getcwd: c_long = 4000 + 203; +pub const SYS_capget: c_long = 4000 + 204; +pub const SYS_capset: c_long = 4000 + 205; +pub const SYS_sigaltstack: c_long = 4000 + 206; +pub const SYS_sendfile: c_long = 4000 + 207; +pub const SYS_getpmsg: c_long = 4000 + 208; +pub const SYS_putpmsg: c_long = 4000 + 209; +pub const SYS_mmap2: c_long = 4000 + 210; +pub const SYS_truncate64: c_long = 4000 + 211; +pub const SYS_ftruncate64: c_long = 4000 + 212; +pub const SYS_stat64: c_long = 4000 + 213; +pub const SYS_lstat64: c_long = 4000 + 214; +pub const SYS_fstat64: c_long = 4000 + 215; +pub const SYS_pivot_root: c_long = 4000 + 216; +pub const SYS_mincore: c_long = 4000 + 217; +pub const SYS_madvise: c_long = 4000 + 218; +pub const SYS_getdents64: c_long = 4000 + 219; +pub const SYS_fcntl64: c_long = 4000 + 220; +pub const SYS_gettid: c_long = 4000 + 222; +pub const SYS_readahead: c_long = 4000 + 223; +pub const SYS_setxattr: c_long = 4000 + 224; +pub const SYS_lsetxattr: c_long = 4000 + 225; +pub const SYS_fsetxattr: c_long = 4000 + 226; +pub const SYS_getxattr: c_long = 4000 + 227; +pub const SYS_lgetxattr: c_long = 4000 + 228; +pub const SYS_fgetxattr: c_long = 4000 + 229; +pub const SYS_listxattr: c_long = 4000 + 230; +pub const SYS_llistxattr: c_long = 4000 + 231; +pub const SYS_flistxattr: c_long = 4000 + 232; +pub const SYS_removexattr: c_long = 4000 + 233; +pub const SYS_lremovexattr: c_long = 4000 + 234; +pub const SYS_fremovexattr: c_long = 4000 + 235; +pub const SYS_tkill: c_long = 4000 + 236; +pub const SYS_sendfile64: c_long = 4000 + 237; +pub const SYS_futex: c_long = 4000 + 238; +pub const SYS_sched_setaffinity: c_long = 4000 + 239; +pub const SYS_sched_getaffinity: c_long = 4000 + 240; +pub const SYS_io_setup: c_long = 4000 + 241; +pub const SYS_io_destroy: c_long = 4000 + 242; +pub const SYS_io_getevents: c_long = 4000 + 243; +pub const SYS_io_submit: c_long = 4000 + 244; +pub const SYS_io_cancel: c_long = 4000 + 245; +pub const SYS_exit_group: c_long = 4000 + 246; +pub const SYS_lookup_dcookie: c_long = 4000 + 247; +pub const SYS_epoll_create: c_long = 4000 + 248; +pub const SYS_epoll_ctl: c_long = 4000 + 249; +pub const SYS_epoll_wait: c_long = 4000 + 250; +pub const SYS_remap_file_pages: c_long = 4000 + 251; +pub const SYS_set_tid_address: c_long = 4000 + 252; +pub const SYS_restart_syscall: c_long = 4000 + 253; +pub const SYS_fadvise64: c_long = 4000 + 254; +pub const SYS_statfs64: c_long = 4000 + 255; +pub const SYS_fstatfs64: c_long = 4000 + 256; +pub const SYS_timer_create: c_long = 4000 + 257; +pub const SYS_timer_settime: c_long = 4000 + 258; +pub const SYS_timer_gettime: c_long = 4000 + 259; +pub const SYS_timer_getoverrun: c_long = 4000 + 260; +pub const SYS_timer_delete: c_long = 4000 + 261; +pub const SYS_clock_settime: c_long = 4000 + 262; +pub const SYS_clock_gettime: c_long = 4000 + 263; +pub const SYS_clock_getres: c_long = 4000 + 264; +pub const SYS_clock_nanosleep: c_long = 4000 + 265; +pub const SYS_tgkill: c_long = 4000 + 266; +pub const SYS_utimes: c_long = 4000 + 267; +pub const SYS_mbind: c_long = 4000 + 268; +pub const SYS_get_mempolicy: c_long = 4000 + 269; +pub const SYS_set_mempolicy: c_long = 4000 + 270; +pub const SYS_mq_open: c_long = 4000 + 271; +pub const SYS_mq_unlink: c_long = 4000 + 272; +pub const SYS_mq_timedsend: c_long = 4000 + 273; +pub const SYS_mq_timedreceive: c_long = 4000 + 274; +pub const SYS_mq_notify: c_long = 4000 + 275; +pub const SYS_mq_getsetattr: c_long = 4000 + 276; +pub const SYS_vserver: c_long = 4000 + 277; +pub const SYS_waitid: c_long = 4000 + 278; +/* pub const SYS_sys_setaltroot: c_long = 4000 + 279; */ +pub const SYS_add_key: c_long = 4000 + 280; +pub const SYS_request_key: c_long = 4000 + 281; +pub const SYS_keyctl: c_long = 4000 + 282; +pub const SYS_set_thread_area: c_long = 4000 + 283; +pub const SYS_inotify_init: c_long = 4000 + 284; +pub const SYS_inotify_add_watch: c_long = 4000 + 285; +pub const SYS_inotify_rm_watch: c_long = 4000 + 286; +pub const SYS_migrate_pages: c_long = 4000 + 287; +pub const SYS_openat: c_long = 4000 + 288; +pub const SYS_mkdirat: c_long = 4000 + 289; +pub const SYS_mknodat: c_long = 4000 + 290; +pub const SYS_fchownat: c_long = 4000 + 291; +pub const SYS_futimesat: c_long = 4000 + 292; +pub const SYS_fstatat64: c_long = 4000 + 293; +pub const SYS_unlinkat: c_long = 4000 + 294; +pub const SYS_renameat: c_long = 4000 + 295; +pub const SYS_linkat: c_long = 4000 + 296; +pub const SYS_symlinkat: c_long = 4000 + 297; +pub const SYS_readlinkat: c_long = 4000 + 298; +pub const SYS_fchmodat: c_long = 4000 + 299; +pub const SYS_faccessat: c_long = 4000 + 300; +pub const SYS_pselect6: c_long = 4000 + 301; +pub const SYS_ppoll: c_long = 4000 + 302; +pub const SYS_unshare: c_long = 4000 + 303; +pub const SYS_splice: c_long = 4000 + 304; +pub const SYS_sync_file_range: c_long = 4000 + 305; +pub const SYS_tee: c_long = 4000 + 306; +pub const SYS_vmsplice: c_long = 4000 + 307; +pub const SYS_move_pages: c_long = 4000 + 308; +pub const SYS_set_robust_list: c_long = 4000 + 309; +pub const SYS_get_robust_list: c_long = 4000 + 310; +pub const SYS_kexec_load: c_long = 4000 + 311; +pub const SYS_getcpu: c_long = 4000 + 312; +pub const SYS_epoll_pwait: c_long = 4000 + 313; +pub const SYS_ioprio_set: c_long = 4000 + 314; +pub const SYS_ioprio_get: c_long = 4000 + 315; +pub const SYS_utimensat: c_long = 4000 + 316; +pub const SYS_signalfd: c_long = 4000 + 317; +pub const SYS_timerfd: c_long = 4000 + 318; +pub const SYS_eventfd: c_long = 4000 + 319; +pub const SYS_fallocate: c_long = 4000 + 320; +pub const SYS_timerfd_create: c_long = 4000 + 321; +pub const SYS_timerfd_gettime: c_long = 4000 + 322; +pub const SYS_timerfd_settime: c_long = 4000 + 323; +pub const SYS_signalfd4: c_long = 4000 + 324; +pub const SYS_eventfd2: c_long = 4000 + 325; +pub const SYS_epoll_create1: c_long = 4000 + 326; +pub const SYS_dup3: c_long = 4000 + 327; +pub const SYS_pipe2: c_long = 4000 + 328; +pub const SYS_inotify_init1: c_long = 4000 + 329; +pub const SYS_preadv: c_long = 4000 + 330; +pub const SYS_pwritev: c_long = 4000 + 331; +pub const SYS_rt_tgsigqueueinfo: c_long = 4000 + 332; +pub const SYS_perf_event_open: c_long = 4000 + 333; +pub const SYS_accept4: c_long = 4000 + 334; +pub const SYS_recvmmsg: c_long = 4000 + 335; +pub const SYS_fanotify_init: c_long = 4000 + 336; +pub const SYS_fanotify_mark: c_long = 4000 + 337; +pub const SYS_prlimit64: c_long = 4000 + 338; +pub const SYS_name_to_handle_at: c_long = 4000 + 339; +pub const SYS_open_by_handle_at: c_long = 4000 + 340; +pub const SYS_clock_adjtime: c_long = 4000 + 341; +pub const SYS_syncfs: c_long = 4000 + 342; +pub const SYS_sendmmsg: c_long = 4000 + 343; +pub const SYS_setns: c_long = 4000 + 344; +pub const SYS_process_vm_readv: c_long = 4000 + 345; +pub const SYS_process_vm_writev: c_long = 4000 + 346; +pub const SYS_kcmp: c_long = 4000 + 347; +pub const SYS_finit_module: c_long = 4000 + 348; +pub const SYS_sched_setattr: c_long = 4000 + 349; +pub const SYS_sched_getattr: c_long = 4000 + 350; +pub const SYS_renameat2: c_long = 4000 + 351; +pub const SYS_seccomp: c_long = 4000 + 352; +pub const SYS_getrandom: c_long = 4000 + 353; +pub const SYS_memfd_create: c_long = 4000 + 354; +pub const SYS_bpf: c_long = 4000 + 355; +pub const SYS_execveat: c_long = 4000 + 356; +pub const SYS_userfaultfd: c_long = 4000 + 357; +pub const SYS_membarrier: c_long = 4000 + 358; +pub const SYS_mlock2: c_long = 4000 + 359; +pub const SYS_copy_file_range: c_long = 4000 + 360; +pub const SYS_preadv2: c_long = 4000 + 361; +pub const SYS_pwritev2: c_long = 4000 + 362; +pub const SYS_pkey_mprotect: c_long = 4000 + 363; +pub const SYS_pkey_alloc: c_long = 4000 + 364; +pub const SYS_pkey_free: c_long = 4000 + 365; +pub const SYS_statx: c_long = 4000 + 366; +pub const SYS_rseq: c_long = 4000 + 367; +pub const SYS_pidfd_send_signal: c_long = 4000 + 424; +pub const SYS_io_uring_setup: c_long = 4000 + 425; +pub const SYS_io_uring_enter: c_long = 4000 + 426; +pub const SYS_io_uring_register: c_long = 4000 + 427; +pub const SYS_open_tree: c_long = 4000 + 428; +pub const SYS_move_mount: c_long = 4000 + 429; +pub const SYS_fsopen: c_long = 4000 + 430; +pub const SYS_fsconfig: c_long = 4000 + 431; +pub const SYS_fsmount: c_long = 4000 + 432; +pub const SYS_fspick: c_long = 4000 + 433; +pub const SYS_pidfd_open: c_long = 4000 + 434; +pub const SYS_clone3: c_long = 4000 + 435; +pub const SYS_close_range: c_long = 4000 + 436; +pub const SYS_openat2: c_long = 4000 + 437; +pub const SYS_pidfd_getfd: c_long = 4000 + 438; +pub const SYS_faccessat2: c_long = 4000 + 439; +pub const SYS_process_madvise: c_long = 4000 + 440; +pub const SYS_epoll_pwait2: c_long = 4000 + 441; +pub const SYS_mount_setattr: c_long = 4000 + 442; +pub const SYS_quotactl_fd: c_long = 4000 + 443; +pub const SYS_landlock_create_ruleset: c_long = 4000 + 444; +pub const SYS_landlock_add_rule: c_long = 4000 + 445; +pub const SYS_landlock_restrict_self: c_long = 4000 + 446; +pub const SYS_memfd_secret: c_long = 4000 + 447; +pub const SYS_process_mrelease: c_long = 4000 + 448; +pub const SYS_futex_waitv: c_long = 4000 + 449; +pub const SYS_set_mempolicy_home_node: c_long = 4000 + 450; + +pub const O_DIRECT: c_int = 0x8000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_NOFOLLOW: c_int = 0x20000; + +pub const O_APPEND: c_int = 8; +pub const O_CREAT: c_int = 256; +pub const O_EXCL: c_int = 1024; +pub const O_NOCTTY: c_int = 2048; +pub const O_NONBLOCK: c_int = 128; +pub const O_SYNC: c_int = 0x4010; +pub const O_RSYNC: c_int = 0x4010; +pub const O_DSYNC: c_int = 0x10; +pub const O_FSYNC: c_int = 0x4010; +pub const O_ASYNC: c_int = 0x1000; +pub const O_NDELAY: c_int = 0x80; + +pub const EDEADLK: c_int = 45; +pub const ENAMETOOLONG: c_int = 78; +pub const ENOLCK: c_int = 46; +pub const ENOSYS: c_int = 89; +pub const ENOTEMPTY: c_int = 93; +pub const ELOOP: c_int = 90; +pub const ENOMSG: c_int = 35; +pub const EIDRM: c_int = 36; +pub const ECHRNG: c_int = 37; +pub const EL2NSYNC: c_int = 38; +pub const EL3HLT: c_int = 39; +pub const EL3RST: c_int = 40; +pub const ELNRNG: c_int = 41; +pub const EUNATCH: c_int = 42; +pub const ENOCSI: c_int = 43; +pub const EL2HLT: c_int = 44; +pub const EBADE: c_int = 50; +pub const EBADR: c_int = 51; +pub const EXFULL: c_int = 52; +pub const ENOANO: c_int = 53; +pub const EBADRQC: c_int = 54; +pub const EBADSLT: c_int = 55; +pub const EDEADLOCK: c_int = 56; +pub const EMULTIHOP: c_int = 74; +pub const EOVERFLOW: c_int = 79; +pub const ENOTUNIQ: c_int = 80; +pub const EBADFD: c_int = 81; +pub const EBADMSG: c_int = 77; +pub const EREMCHG: c_int = 82; +pub const ELIBACC: c_int = 83; +pub const ELIBBAD: c_int = 84; +pub const ELIBSCN: c_int = 85; +pub const ELIBMAX: c_int = 86; +pub const ELIBEXEC: c_int = 87; +pub const EILSEQ: c_int = 88; +pub const ERESTART: c_int = 91; +pub const ESTRPIPE: c_int = 92; +pub const EUSERS: c_int = 94; +pub const ENOTSOCK: c_int = 95; +pub const EDESTADDRREQ: c_int = 96; +pub const EMSGSIZE: c_int = 97; +pub const EPROTOTYPE: c_int = 98; +pub const ENOPROTOOPT: c_int = 99; +pub const EPROTONOSUPPORT: c_int = 120; +pub const ESOCKTNOSUPPORT: c_int = 121; +pub const EOPNOTSUPP: c_int = 122; +pub const EPFNOSUPPORT: c_int = 123; +pub const EAFNOSUPPORT: c_int = 124; +pub const EADDRINUSE: c_int = 125; +pub const EADDRNOTAVAIL: c_int = 126; +pub const ENETDOWN: c_int = 127; +pub const ENETUNREACH: c_int = 128; +pub const ENETRESET: c_int = 129; +pub const ECONNABORTED: c_int = 130; +pub const ECONNRESET: c_int = 131; +pub const ENOBUFS: c_int = 132; +pub const EISCONN: c_int = 133; +pub const ENOTCONN: c_int = 134; +pub const ESHUTDOWN: c_int = 143; +pub const ETOOMANYREFS: c_int = 144; +pub const ETIMEDOUT: c_int = 145; +pub const ECONNREFUSED: c_int = 146; +pub const EHOSTDOWN: c_int = 147; +pub const EHOSTUNREACH: c_int = 148; +pub const EALREADY: c_int = 149; +pub const EINPROGRESS: c_int = 150; +pub const ESTALE: c_int = 151; +pub const EUCLEAN: c_int = 135; +pub const ENOTNAM: c_int = 137; +pub const ENAVAIL: c_int = 138; +pub const EISNAM: c_int = 139; +pub const EREMOTEIO: c_int = 140; +pub const EDQUOT: c_int = 1133; +pub const ENOMEDIUM: c_int = 159; +pub const EMEDIUMTYPE: c_int = 160; +pub const ECANCELED: c_int = 158; +pub const ENOKEY: c_int = 161; +pub const EKEYEXPIRED: c_int = 162; +pub const EKEYREVOKED: c_int = 163; +pub const EKEYREJECTED: c_int = 164; +pub const EOWNERDEAD: c_int = 165; +pub const ENOTRECOVERABLE: c_int = 166; +pub const ERFKILL: c_int = 167; + +pub const MAP_NORESERVE: c_int = 0x400; +pub const MAP_ANON: c_int = 0x800; +pub const MAP_ANONYMOUS: c_int = 0x800; +pub const MAP_GROWSDOWN: c_int = 0x1000; +pub const MAP_DENYWRITE: c_int = 0x2000; +pub const MAP_EXECUTABLE: c_int = 0x4000; +pub const MAP_LOCKED: c_int = 0x8000; +pub const MAP_POPULATE: c_int = 0x10000; +pub const MAP_NONBLOCK: c_int = 0x20000; +pub const MAP_STACK: c_int = 0x40000; + +pub const SOCK_STREAM: c_int = 2; +pub const SOCK_DGRAM: c_int = 1; + +pub const SA_SIGINFO: c_int = 0x00000008; +pub const SA_NOCLDWAIT: c_int = 0x00010000; + +pub const SIGCHLD: c_int = 18; +pub const SIGBUS: c_int = 10; +pub const SIGTTIN: c_int = 26; +pub const SIGTTOU: c_int = 27; +pub const SIGXCPU: c_int = 30; +pub const SIGXFSZ: c_int = 31; +pub const SIGVTALRM: c_int = 28; +pub const SIGPROF: c_int = 29; +pub const SIGWINCH: c_int = 20; +pub const SIGUSR1: c_int = 16; +pub const SIGUSR2: c_int = 17; +pub const SIGCONT: c_int = 25; +pub const SIGSTOP: c_int = 23; +pub const SIGTSTP: c_int = 24; +pub const SIGURG: c_int = 21; +pub const SIGIO: c_int = 22; +pub const SIGSYS: c_int = 12; +pub const SIGPOLL: c_int = 22; +pub const SIGPWR: c_int = 19; +pub const SIG_SETMASK: c_int = 3; +pub const SIG_BLOCK: c_int = 0x1; +pub const SIG_UNBLOCK: c_int = 0x2; + +pub const POLLWRNORM: c_short = 0x004; +pub const POLLWRBAND: c_short = 0x100; pub const VEOF: usize = 16; pub const VEOL: usize = 17; pub const VEOL2: usize = 6; pub const VMIN: usize = 4; -pub const IEXTEN: ::tcflag_t = 0x00000100; -pub const TOSTOP: ::tcflag_t = 0x00008000; -pub const FLUSHO: ::tcflag_t = 0x00002000; -pub const EXTPROC: ::tcflag_t = 0o200000; -pub const TCSANOW: ::c_int = 0x540e; -pub const TCSADRAIN: ::c_int = 0x540f; -pub const TCSAFLUSH: ::c_int = 0x5410; - -pub const PTRACE_GETFPXREGS: ::c_uint = 18; -pub const PTRACE_SETFPXREGS: ::c_uint = 19; - -pub const MAP_HUGETLB: ::c_int = 0x080000; - -pub const EFD_NONBLOCK: ::c_int = 0x80; - -pub const F_GETLK: ::c_int = 14; -pub const F_GETOWN: ::c_int = 23; -pub const F_SETOWN: ::c_int = 24; - -pub const SFD_NONBLOCK: ::c_int = 0x80; - -pub const RTLD_DEEPBIND: ::c_int = 0x10; -pub const RTLD_GLOBAL: ::c_int = 0x4; -pub const RTLD_NOLOAD: ::c_int = 0x8; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; +pub const IEXTEN: crate::tcflag_t = 0x00000100; +pub const TOSTOP: crate::tcflag_t = 0x00008000; +pub const FLUSHO: crate::tcflag_t = 0x00002000; +pub const EXTPROC: crate::tcflag_t = 0o200000; +pub const TCSANOW: c_int = 0x540e; +pub const TCSADRAIN: c_int = 0x540f; +pub const TCSAFLUSH: c_int = 0x5410; + +pub const PTRACE_GETFPXREGS: c_uint = 18; +pub const PTRACE_SETFPXREGS: c_uint = 19; + +pub const MAP_HUGETLB: c_int = 0x080000; + +pub const EFD_NONBLOCK: c_int = 0x80; + +pub const F_GETLK: c_int = 14; +pub const F_GETOWN: c_int = 23; +pub const F_SETOWN: c_int = 24; + +pub const SFD_NONBLOCK: c_int = 0x80; + +pub const RTLD_DEEPBIND: c_int = 0x10; +pub const RTLD_GLOBAL: c_int = 0x4; +pub const RTLD_NOLOAD: c_int = 0x8; + +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; + +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: crate::tcflag_t = 0x00000800; +pub const TAB2: crate::tcflag_t = 0x00001000; +pub const TAB3: crate::tcflag_t = 0x00001800; +pub const CR1: crate::tcflag_t = 0x00000200; +pub const CR2: crate::tcflag_t = 0x00000400; +pub const CR3: crate::tcflag_t = 0x00000600; +pub const FF1: crate::tcflag_t = 0x00008000; +pub const BS1: crate::tcflag_t = 0x00002000; +pub const VT1: crate::tcflag_t = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -749,73 +751,73 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const EHWPOISON: ::c_int = 168; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; + +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; + +pub const EHWPOISON: c_int = 168; diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index eb09a5b3ed9dd..c4550e183de19 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -1,21 +1,21 @@ //! 32-bit specific definitions for linux-like values -use pthread_mutex_t; +use crate::{c_int, c_longlong, c_uint, c_ulonglong, c_ushort, c_void, pthread_mutex_t, size_t}; pub type c_long = i32; pub type c_ulong = u32; pub type clock_t = i32; -pub type shmatt_t = ::c_ulong; -pub type msgqnum_t = ::c_ulong; -pub type msglen_t = ::c_ulong; +pub type shmatt_t = c_ulong; +pub type msgqnum_t = c_ulong; +pub type msglen_t = c_ulong; pub type nlink_t = u32; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; pub type __fsword_t = i32; pub type fsblkcnt64_t = u64; pub type fsfilcnt64_t = u64; -pub type __syscall_ulong_t = ::c_ulong; +pub type __syscall_ulong_t = c_ulong; cfg_if! { if #[cfg(target_arch = "riscv32")] { @@ -34,8 +34,8 @@ cfg_if! { pub type ino_t = u32; pub type off_t = i32; pub type blkcnt_t = i32; - pub type fsblkcnt_t = ::c_ulong; - pub type fsfilcnt_t = ::c_ulong; + pub type fsblkcnt_t = c_ulong; + pub type fsfilcnt_t = c_ulong; pub type rlim_t = c_ulong; pub type blksize_t = i32; } @@ -44,66 +44,66 @@ cfg_if! { s! { pub struct stat { #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - pub st_dev: ::dev_t, + pub st_dev: crate::dev_t, #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - pub st_dev: ::c_ulong, + pub st_dev: c_ulong, #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - __pad1: ::c_short, + __pad1: crate::c_short, #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - st_pad1: [::c_long; 3], - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, + st_pad1: [c_long; 3], + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - pub st_rdev: ::dev_t, + pub st_rdev: crate::dev_t, #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - pub st_rdev: ::c_ulong, + pub st_rdev: c_ulong, #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - __pad2: ::c_short, + __pad2: crate::c_short, #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - st_pad2: [::c_long; 2], - pub st_size: ::off_t, + st_pad2: [c_long; 2], + pub st_size: off_t, #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - st_pad3: ::c_long, + st_pad3: c_long, #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - pub st_blksize: ::blksize_t, + pub st_blksize: crate::blksize_t, #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - 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, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - __unused4: ::c_long, + __unused4: c_long, #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - __unused5: ::c_long, + __unused5: c_long, #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - pub st_blksize: ::blksize_t, + pub st_blksize: crate::blksize_t, #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - pub st_blocks: ::blkcnt_t, + pub st_blocks: crate::blkcnt_t, #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - st_pad5: [::c_long; 14], + st_pad5: [c_long; 14], } 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, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + __f_unused: c_int, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct pthread_attr_t { @@ -111,62 +111,62 @@ s! { } pub struct sigset_t { - __val: [::c_ulong; 32], + __val: [c_ulong; 32], } pub struct sysinfo { - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, + pub uptime: c_long, + pub loads: [c_ulong; 3], + pub totalram: c_ulong, + pub freeram: c_ulong, + pub sharedram: c_ulong, + pub bufferram: c_ulong, + pub totalswap: c_ulong, + pub freeswap: c_ulong, + pub procs: c_ushort, #[deprecated( since = "0.2.58", note = "This padding field might become private in the future" )] - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 8], + pub pad: c_ushort, + pub totalhigh: c_ulong, + pub freehigh: c_ulong, + pub mem_unit: c_uint, + pub _f: [c_char; 8], } pub struct semid_ds { pub sem_perm: ipc_perm, #[cfg(target_arch = "powerpc")] - __reserved: ::__syscall_ulong_t, - pub sem_otime: ::time_t, + __reserved: crate::__syscall_ulong_t, + pub sem_otime: crate::time_t, #[cfg(not(any( target_arch = "mips", target_arch = "mips32r6", target_arch = "powerpc" )))] - __reserved: ::__syscall_ulong_t, + __reserved: crate::__syscall_ulong_t, #[cfg(target_arch = "powerpc")] - __reserved2: ::__syscall_ulong_t, - pub sem_ctime: ::time_t, + __reserved2: crate::__syscall_ulong_t, + pub sem_ctime: crate::time_t, #[cfg(not(any( target_arch = "mips", target_arch = "mips32r6", target_arch = "powerpc" )))] - __reserved2: ::__syscall_ulong_t, - pub sem_nsems: ::__syscall_ulong_t, - __glibc_reserved3: ::__syscall_ulong_t, - __glibc_reserved4: ::__syscall_ulong_t, + __reserved2: crate::__syscall_ulong_t, + pub sem_nsems: crate::__syscall_ulong_t, + __glibc_reserved3: crate::__syscall_ulong_t, + __glibc_reserved4: crate::__syscall_ulong_t, } } -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; +pub const F_OFD_GETLK: c_int = 36; +pub const F_OFD_SETLK: c_int = 37; +pub const F_OFD_SETLKW: c_int = 38; pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; @@ -178,150 +178,150 @@ pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; cfg_if! { if #[cfg(target_arch = "sparc")] { - pub const O_NOATIME: ::c_int = 0x200000; - pub const O_PATH: ::c_int = 0x1000000; - pub const O_TMPFILE: ::c_int = 0x2000000 | O_DIRECTORY; + pub const O_NOATIME: c_int = 0x200000; + pub const O_PATH: c_int = 0x1000000; + pub const O_TMPFILE: c_int = 0x2000000 | O_DIRECTORY; - pub const SA_ONSTACK: ::c_int = 1; + pub const SA_ONSTACK: c_int = 1; - pub const PTRACE_DETACH: ::c_uint = 11; + pub const PTRACE_DETACH: c_uint = 11; - pub const F_SETLK: ::c_int = 8; - pub const F_SETLKW: ::c_int = 9; + pub const F_SETLK: c_int = 8; + pub const F_SETLKW: c_int = 9; - pub const F_RDLCK: ::c_int = 1; - pub const F_WRLCK: ::c_int = 2; - pub const F_UNLCK: ::c_int = 3; + pub const F_RDLCK: c_int = 1; + pub const F_WRLCK: c_int = 2; + pub const F_UNLCK: c_int = 3; - pub const SFD_CLOEXEC: ::c_int = 0x400000; + pub const SFD_CLOEXEC: c_int = 0x400000; pub const NCCS: usize = 17; - pub const O_TRUNC: ::c_int = 0x400; - pub const O_CLOEXEC: ::c_int = 0x400000; - - pub const EBFONT: ::c_int = 109; - pub const ENOSTR: ::c_int = 72; - pub const ENODATA: ::c_int = 111; - pub const ETIME: ::c_int = 73; - pub const ENOSR: ::c_int = 74; - pub const ENONET: ::c_int = 80; - pub const ENOPKG: ::c_int = 113; - pub const EREMOTE: ::c_int = 71; - pub const ENOLINK: ::c_int = 82; - pub const EADV: ::c_int = 83; - pub const ESRMNT: ::c_int = 84; - pub const ECOMM: ::c_int = 85; - pub const EPROTO: ::c_int = 86; - pub const EDOTDOT: ::c_int = 88; - - pub const SA_NODEFER: ::c_int = 0x20; - pub const SA_RESETHAND: ::c_int = 0x4; - pub const SA_RESTART: ::c_int = 0x2; - pub const SA_NOCLDSTOP: ::c_int = 0x00000008; - - pub const EPOLL_CLOEXEC: ::c_int = 0x400000; - - pub const EFD_CLOEXEC: ::c_int = 0x400000; + pub const O_TRUNC: c_int = 0x400; + pub const O_CLOEXEC: c_int = 0x400000; + + pub const EBFONT: c_int = 109; + pub const ENOSTR: c_int = 72; + pub const ENODATA: c_int = 111; + pub const ETIME: c_int = 73; + pub const ENOSR: c_int = 74; + pub const ENONET: c_int = 80; + pub const ENOPKG: c_int = 113; + pub const EREMOTE: c_int = 71; + pub const ENOLINK: c_int = 82; + pub const EADV: c_int = 83; + pub const ESRMNT: c_int = 84; + pub const ECOMM: c_int = 85; + pub const EPROTO: c_int = 86; + pub const EDOTDOT: c_int = 88; + + pub const SA_NODEFER: c_int = 0x20; + pub const SA_RESETHAND: c_int = 0x4; + pub const SA_RESTART: c_int = 0x2; + pub const SA_NOCLDSTOP: c_int = 0x00000008; + + pub const EPOLL_CLOEXEC: c_int = 0x400000; + + pub const EFD_CLOEXEC: c_int = 0x400000; } else { - pub const O_NOATIME: ::c_int = 0o1000000; - pub const O_PATH: ::c_int = 0o10000000; - pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; + pub const O_NOATIME: c_int = 0o1000000; + pub const O_PATH: c_int = 0o10000000; + pub const O_TMPFILE: c_int = 0o20000000 | O_DIRECTORY; - pub const SA_ONSTACK: ::c_int = 0x08000000; + pub const SA_ONSTACK: c_int = 0x08000000; - pub const PTRACE_DETACH: ::c_uint = 17; + pub const PTRACE_DETACH: c_uint = 17; - pub const F_SETLK: ::c_int = 6; - pub const F_SETLKW: ::c_int = 7; + pub const F_SETLK: c_int = 6; + pub const F_SETLKW: c_int = 7; - pub const F_RDLCK: ::c_int = 0; - pub const F_WRLCK: ::c_int = 1; - pub const F_UNLCK: ::c_int = 2; + pub const F_RDLCK: c_int = 0; + pub const F_WRLCK: c_int = 1; + pub const F_UNLCK: c_int = 2; - pub const SFD_CLOEXEC: ::c_int = 0x080000; + pub const SFD_CLOEXEC: c_int = 0x080000; pub const NCCS: usize = 32; - pub const O_TRUNC: ::c_int = 512; - pub const O_CLOEXEC: ::c_int = 0x80000; - pub const EBFONT: ::c_int = 59; - pub const ENOSTR: ::c_int = 60; - pub const ENODATA: ::c_int = 61; - pub const ETIME: ::c_int = 62; - pub const ENOSR: ::c_int = 63; - pub const ENONET: ::c_int = 64; - pub const ENOPKG: ::c_int = 65; - pub const EREMOTE: ::c_int = 66; - pub const ENOLINK: ::c_int = 67; - pub const EADV: ::c_int = 68; - pub const ESRMNT: ::c_int = 69; - pub const ECOMM: ::c_int = 70; - pub const EPROTO: ::c_int = 71; - pub const EDOTDOT: ::c_int = 73; - - pub const SA_NODEFER: ::c_int = 0x40000000; - pub const SA_RESETHAND: ::c_int = 0x80000000; - pub const SA_RESTART: ::c_int = 0x10000000; - pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - - pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - - pub const EFD_CLOEXEC: ::c_int = 0x80000; + pub const O_TRUNC: c_int = 512; + pub const O_CLOEXEC: c_int = 0x80000; + pub const EBFONT: c_int = 59; + pub const ENOSTR: c_int = 60; + pub const ENODATA: c_int = 61; + pub const ETIME: c_int = 62; + pub const ENOSR: c_int = 63; + pub const ENONET: c_int = 64; + pub const ENOPKG: c_int = 65; + pub const EREMOTE: c_int = 66; + pub const ENOLINK: c_int = 67; + pub const EADV: c_int = 68; + pub const ESRMNT: c_int = 69; + pub const ECOMM: c_int = 70; + pub const EPROTO: c_int = 71; + pub const EDOTDOT: c_int = 73; + + pub const SA_NODEFER: c_int = 0x40000000; + pub const SA_RESETHAND: c_int = 0x80000000; + pub const SA_RESTART: c_int = 0x10000000; + pub const SA_NOCLDSTOP: c_int = 0x00000001; + + pub const EPOLL_CLOEXEC: c_int = 0x80000; + + pub const EFD_CLOEXEC: c_int = 0x80000; } } #[cfg(target_endian = "little")] -pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "little")] -pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "little")] -pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, ], }; -pub const PTRACE_GETFPREGS: ::c_uint = 14; -pub const PTRACE_SETFPREGS: ::c_uint = 15; -pub const PTRACE_GETREGS: ::c_uint = 12; -pub const PTRACE_SETREGS: ::c_uint = 13; +pub const PTRACE_GETFPREGS: c_uint = 14; +pub const PTRACE_SETFPREGS: c_uint = 15; +pub const PTRACE_GETREGS: c_uint = 12; +pub const PTRACE_SETREGS: c_uint = 13; extern "C" { pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; + name: *mut c_int, + namelen: c_int, + oldp: *mut c_void, + oldlenp: *mut size_t, + newp: *mut c_void, + newlen: size_t, + ) -> c_int; } cfg_if! { diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 9a045cedb1a86..e2e5088bb390d 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -1,54 +1,56 @@ +use crate::{c_int, c_long, c_short, c_uint, c_ulong, c_ushort, c_void, off64_t, off_t, size_t}; + pub type c_char = u8; pub type wchar_t = i32; s! { pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, + pub sa_flags: c_int, + pub sa_restorer: Option, } pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - f_spare: [::__fsword_t; 4], + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + pub f_flags: crate::__fsword_t, + f_spare: [crate::__fsword_t; 4], } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off64_t, + pub l_len: off64_t, + pub l_pid: crate::pid_t, } pub struct 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, + __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, __seq: u32, __pad1: u32, __glibc_reserved1: u64, @@ -56,96 +58,96 @@ s! { } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: ::c_ushort, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_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, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, + pub st_dev: crate::dev_t, + pub st_ino: crate::ino64_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad2: c_ushort, + pub st_size: off64_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __glibc_reserved4: c_ulong, + __glibc_reserved5: c_ulong, } pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], + pub f_fsid: crate::fsid_t, + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + pub f_flags: crate::__fsword_t, + pub f_spare: [crate::__fsword_t; 4], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + __f_unused: c_int, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - __glibc_reserved1: ::c_uint, - pub shm_atime: ::time_t, - __glibc_reserved2: ::c_uint, - pub shm_dtime: ::time_t, - __glibc_reserved3: ::c_uint, - pub shm_ctime: ::time_t, - __glibc_reserved4: ::c_uint, - pub shm_segsz: ::size_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __glibc_reserved5: ::c_ulong, - __glibc_reserved6: ::c_ulong, + pub shm_perm: crate::ipc_perm, + __glibc_reserved1: c_uint, + pub shm_atime: crate::time_t, + __glibc_reserved2: c_uint, + pub shm_dtime: crate::time_t, + __glibc_reserved3: c_uint, + pub shm_ctime: crate::time_t, + __glibc_reserved4: c_uint, + pub shm_segsz: size_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __glibc_reserved5: c_ulong, + __glibc_reserved6: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - __glibc_reserved1: ::c_uint, - pub msg_stime: ::time_t, - __glibc_reserved2: ::c_uint, - pub msg_rtime: ::time_t, - __glibc_reserved3: ::c_uint, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, + pub msg_perm: crate::ipc_perm, + __glibc_reserved1: c_uint, + pub msg_stime: crate::time_t, + __glibc_reserved2: c_uint, + pub msg_rtime: crate::time_t, + __glibc_reserved3: c_uint, + pub msg_ctime: crate::time_t, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __glibc_reserved4: c_ulong, + __glibc_reserved5: c_ulong, } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, #[doc(hidden)] #[deprecated( since = "0.2.54", @@ -153,196 +155,196 @@ s! { https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] - pub _pad: [::c_int; 29], + pub _pad: [c_int; 29], _align: [usize; 0], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } } pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const O_DIRECT: ::c_int = 0x20000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_LARGEFILE: ::c_int = 0o200000; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; +pub const RTLD_DEEPBIND: c_int = 0x8; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_NOLOAD: c_int = 0x4; +pub const O_DIRECT: c_int = 0x20000; +pub const O_DIRECTORY: c_int = 0x4000; +pub const O_NOFOLLOW: c_int = 0x8000; +pub const O_LARGEFILE: c_int = 0o200000; +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_FSYNC: c_int = 0x101000; +pub const O_ASYNC: c_int = 0x2000; +pub const O_NDELAY: c_int = 0x800; +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_LOCKED: ::c_int = 0x00080; -pub const MAP_NORESERVE: ::c_int = 0x00040; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_SYNC: ::c_int = 0x080000; +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MAP_LOCKED: c_int = 0x00080; +pub const MAP_NORESERVE: c_int = 0x00040; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_ANONYMOUS: c_int = 0x0020; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_SYNC: c_int = 0x080000; -pub const EDEADLOCK: ::c_int = 58; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; +pub const EDEADLOCK: c_int = 58; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EBADMSG: c_int = 74; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const EHWPOISON: c_int = 133; +pub const ERFKILL: c_int = 132; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; -pub const MCL_CURRENT: ::c_int = 0x2000; -pub const MCL_FUTURE: ::c_int = 0x4000; -pub const MCL_ONFAULT: ::c_int = 0x8000; +pub const MCL_CURRENT: c_int = 0x2000; +pub const MCL_FUTURE: c_int = 0x4000; +pub const MCL_ONFAULT: c_int = 0x8000; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETOWN: c_int = 8; -pub const EFD_NONBLOCK: ::c_int = 0x800; -pub const SFD_NONBLOCK: ::c_int = 0x0800; +pub const EFD_NONBLOCK: c_int = 0x800; +pub const SFD_NONBLOCK: c_int = 0x0800; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; #[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGSTKSZ: ::size_t = 0x4000; -pub const MINSIGSTKSZ: ::size_t = 4096; -pub const CBAUD: ::tcflag_t = 0xff; -pub const TAB1: ::tcflag_t = 0x400; -pub const TAB2: ::tcflag_t = 0x800; -pub const TAB3: ::tcflag_t = 0xc00; -pub const CR1: ::tcflag_t = 0x1000; -pub const CR2: ::tcflag_t = 0x2000; -pub const CR3: ::tcflag_t = 0x3000; -pub const FF1: ::tcflag_t = 0x4000; -pub const BS1: ::tcflag_t = 0x8000; -pub const VT1: ::tcflag_t = 0x10000; +pub const SIGUNUSED: c_int = 31; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGSTKSZ: size_t = 0x4000; +pub const MINSIGSTKSZ: size_t = 4096; +pub const CBAUD: crate::tcflag_t = 0xff; +pub const TAB1: crate::tcflag_t = 0x400; +pub const TAB2: crate::tcflag_t = 0x800; +pub const TAB3: crate::tcflag_t = 0xc00; +pub const CR1: crate::tcflag_t = 0x1000; +pub const CR2: crate::tcflag_t = 0x2000; +pub const CR3: crate::tcflag_t = 0x3000; +pub const FF1: crate::tcflag_t = 0x4000; +pub const BS1: crate::tcflag_t = 0x8000; +pub const VT1: crate::tcflag_t = 0x10000; pub const VWERASE: usize = 0xa; pub const VREPRINT: usize = 0xb; pub const VSUSP: usize = 0xc; @@ -350,478 +352,478 @@ pub const VSTART: usize = 0xd; pub const VSTOP: usize = 0xe; pub const VDISCARD: usize = 0x10; pub const VTIME: usize = 0x7; -pub const IXON: ::tcflag_t = 0x200; -pub const IXOFF: ::tcflag_t = 0x400; -pub const ONLCR: ::tcflag_t = 0x2; -pub const CSIZE: ::tcflag_t = 0x300; -pub const CS6: ::tcflag_t = 0x100; -pub const CS7: ::tcflag_t = 0x200; -pub const CS8: ::tcflag_t = 0x300; -pub const CSTOPB: ::tcflag_t = 0x400; -pub const CREAD: ::tcflag_t = 0x800; -pub const PARENB: ::tcflag_t = 0x1000; -pub const PARODD: ::tcflag_t = 0x2000; -pub const HUPCL: ::tcflag_t = 0x4000; -pub const CLOCAL: ::tcflag_t = 0x8000; -pub const ECHOKE: ::tcflag_t = 0x1; -pub const ECHOE: ::tcflag_t = 0x2; -pub const ECHOK: ::tcflag_t = 0x4; -pub const ECHONL: ::tcflag_t = 0x10; -pub const ECHOPRT: ::tcflag_t = 0x20; -pub const ECHOCTL: ::tcflag_t = 0x40; -pub const ISIG: ::tcflag_t = 0x80; -pub const ICANON: ::tcflag_t = 0x100; -pub const PENDIN: ::tcflag_t = 0x20000000; -pub const NOFLSH: ::tcflag_t = 0x80000000; +pub const IXON: crate::tcflag_t = 0x200; +pub const IXOFF: crate::tcflag_t = 0x400; +pub const ONLCR: crate::tcflag_t = 0x2; +pub const CSIZE: crate::tcflag_t = 0x300; +pub const CS6: crate::tcflag_t = 0x100; +pub const CS7: crate::tcflag_t = 0x200; +pub const CS8: crate::tcflag_t = 0x300; +pub const CSTOPB: crate::tcflag_t = 0x400; +pub const CREAD: crate::tcflag_t = 0x800; +pub const PARENB: crate::tcflag_t = 0x1000; +pub const PARODD: crate::tcflag_t = 0x2000; +pub const HUPCL: crate::tcflag_t = 0x4000; +pub const CLOCAL: crate::tcflag_t = 0x8000; +pub const ECHOKE: crate::tcflag_t = 0x1; +pub const ECHOE: crate::tcflag_t = 0x2; +pub const ECHOK: crate::tcflag_t = 0x4; +pub const ECHONL: crate::tcflag_t = 0x10; +pub const ECHOPRT: crate::tcflag_t = 0x20; +pub const ECHOCTL: crate::tcflag_t = 0x40; +pub const ISIG: crate::tcflag_t = 0x80; +pub const ICANON: crate::tcflag_t = 0x100; +pub const PENDIN: crate::tcflag_t = 0x20000000; +pub const NOFLSH: crate::tcflag_t = 0x80000000; pub const VSWTC: usize = 9; -pub const OLCUC: ::tcflag_t = 0o000004; -pub const NLDLY: ::tcflag_t = 0o001400; -pub const CRDLY: ::tcflag_t = 0o030000; -pub const TABDLY: ::tcflag_t = 0o006000; -pub const BSDLY: ::tcflag_t = 0o100000; -pub const FFDLY: ::tcflag_t = 0o040000; -pub const VTDLY: ::tcflag_t = 0o200000; -pub const XTABS: ::tcflag_t = 0o006000; +pub const OLCUC: crate::tcflag_t = 0o000004; +pub const NLDLY: crate::tcflag_t = 0o001400; +pub const CRDLY: crate::tcflag_t = 0o030000; +pub const TABDLY: crate::tcflag_t = 0o006000; +pub const BSDLY: crate::tcflag_t = 0o100000; +pub const FFDLY: crate::tcflag_t = 0o040000; +pub const VTDLY: crate::tcflag_t = 0o200000; +pub const XTABS: crate::tcflag_t = 0o006000; -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const CBAUDEX: ::speed_t = 0o000020; -pub const B57600: ::speed_t = 0o0020; -pub const B115200: ::speed_t = 0o0021; -pub const B230400: ::speed_t = 0o0022; -pub const B460800: ::speed_t = 0o0023; -pub const B500000: ::speed_t = 0o0024; -pub const B576000: ::speed_t = 0o0025; -pub const B921600: ::speed_t = 0o0026; -pub const B1000000: ::speed_t = 0o0027; -pub const B1152000: ::speed_t = 0o0030; -pub const B1500000: ::speed_t = 0o0031; -pub const B2000000: ::speed_t = 0o0032; -pub const B2500000: ::speed_t = 0o0033; -pub const B3000000: ::speed_t = 0o0034; -pub const B3500000: ::speed_t = 0o0035; -pub const B4000000: ::speed_t = 0o0036; +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const CBAUDEX: crate::speed_t = 0o000020; +pub const B57600: crate::speed_t = 0o0020; +pub const B115200: crate::speed_t = 0o0021; +pub const B230400: crate::speed_t = 0o0022; +pub const B460800: crate::speed_t = 0o0023; +pub const B500000: crate::speed_t = 0o0024; +pub const B576000: crate::speed_t = 0o0025; +pub const B921600: crate::speed_t = 0o0026; +pub const B1000000: crate::speed_t = 0o0027; +pub const B1152000: crate::speed_t = 0o0030; +pub const B1500000: crate::speed_t = 0o0031; +pub const B2000000: crate::speed_t = 0o0032; +pub const B2500000: crate::speed_t = 0o0033; +pub const B3000000: crate::speed_t = 0o0034; +pub const B3500000: crate::speed_t = 0o0035; +pub const B4000000: crate::speed_t = 0o0036; pub const VEOL: usize = 6; pub const VEOL2: usize = 8; pub const VMIN: usize = 5; -pub const IEXTEN: ::tcflag_t = 0x400; -pub const TOSTOP: ::tcflag_t = 0x400000; -pub const FLUSHO: ::tcflag_t = 0x800000; -pub const EXTPROC: ::tcflag_t = 0x10000000; +pub const IEXTEN: crate::tcflag_t = 0x400; +pub const TOSTOP: crate::tcflag_t = 0x400000; +pub const FLUSHO: crate::tcflag_t = 0x800000; +pub const EXTPROC: crate::tcflag_t = 0x10000000; -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_waitpid: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_time: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_break: ::c_long = 17; -pub const SYS_oldstat: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_stime: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_oldfstat: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_stty: ::c_long = 31; -pub const SYS_gtty: ::c_long = 32; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_ftime: ::c_long = 35; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_prof: ::c_long = 44; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_lock: ::c_long = 53; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_mpx: ::c_long = 56; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_ulimit: ::c_long = 58; -pub const SYS_oldolduname: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sgetmask: ::c_long = 68; -pub const SYS_ssetmask: ::c_long = 69; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrlimit: ::c_long = 76; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_select: ::c_long = 82; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_oldlstat: ::c_long = 84; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_profil: ::c_long = 98; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_ioperm: ::c_long = 101; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_olduname: ::c_long = 109; -pub const SYS_iopl: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_vm86: ::c_long = 113; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_modify_ldt: ::c_long = 123; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; /* Syscall for Andrew File System */ -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_query_module: ::c_long = 166; -pub const SYS_poll: ::c_long = 167; -pub const SYS_nfsservctl: ::c_long = 168; -pub const SYS_setresgid: ::c_long = 169; -pub const SYS_getresgid: ::c_long = 170; -pub const SYS_prctl: ::c_long = 171; -pub const SYS_rt_sigreturn: ::c_long = 172; -pub const SYS_rt_sigaction: ::c_long = 173; -pub const SYS_rt_sigprocmask: ::c_long = 174; -pub const SYS_rt_sigpending: ::c_long = 175; -pub const SYS_rt_sigtimedwait: ::c_long = 176; -pub const SYS_rt_sigqueueinfo: ::c_long = 177; -pub const SYS_rt_sigsuspend: ::c_long = 178; -pub const SYS_pread64: ::c_long = 179; -pub const SYS_pwrite64: ::c_long = 180; -pub const SYS_chown: ::c_long = 181; -pub const SYS_getcwd: ::c_long = 182; -pub const SYS_capget: ::c_long = 183; -pub const SYS_capset: ::c_long = 184; -pub const SYS_sigaltstack: ::c_long = 185; -pub const SYS_sendfile: ::c_long = 186; -pub const SYS_getpmsg: ::c_long = 187; /* some people actually want streams */ -pub const SYS_putpmsg: ::c_long = 188; /* some people actually want streams */ -pub const SYS_vfork: ::c_long = 189; -pub const SYS_ugetrlimit: ::c_long = 190; /* SuS compliant getrlimit */ -pub const SYS_readahead: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_pciconfig_read: ::c_long = 198; -pub const SYS_pciconfig_write: ::c_long = 199; -pub const SYS_pciconfig_iobase: ::c_long = 200; -pub const SYS_multiplexer: ::c_long = 201; -pub const SYS_getdents64: ::c_long = 202; -pub const SYS_pivot_root: ::c_long = 203; -pub const SYS_fcntl64: ::c_long = 204; -pub const SYS_madvise: ::c_long = 205; -pub const SYS_mincore: ::c_long = 206; -pub const SYS_gettid: ::c_long = 207; -pub const SYS_tkill: ::c_long = 208; -pub const SYS_setxattr: ::c_long = 209; -pub const SYS_lsetxattr: ::c_long = 210; -pub const SYS_fsetxattr: ::c_long = 211; -pub const SYS_getxattr: ::c_long = 212; -pub const SYS_lgetxattr: ::c_long = 213; -pub const SYS_fgetxattr: ::c_long = 214; -pub const SYS_listxattr: ::c_long = 215; -pub const SYS_llistxattr: ::c_long = 216; -pub const SYS_flistxattr: ::c_long = 217; -pub const SYS_removexattr: ::c_long = 218; -pub const SYS_lremovexattr: ::c_long = 219; -pub const SYS_fremovexattr: ::c_long = 220; -pub const SYS_futex: ::c_long = 221; -pub const SYS_sched_setaffinity: ::c_long = 222; -pub const SYS_sched_getaffinity: ::c_long = 223; -pub const SYS_tuxcall: ::c_long = 225; -pub const SYS_sendfile64: ::c_long = 226; -pub const SYS_io_setup: ::c_long = 227; -pub const SYS_io_destroy: ::c_long = 228; -pub const SYS_io_getevents: ::c_long = 229; -pub const SYS_io_submit: ::c_long = 230; -pub const SYS_io_cancel: ::c_long = 231; -pub const SYS_set_tid_address: ::c_long = 232; -pub const SYS_fadvise64: ::c_long = 233; -pub const SYS_exit_group: ::c_long = 234; -pub const SYS_lookup_dcookie: ::c_long = 235; -pub const SYS_epoll_create: ::c_long = 236; -pub const SYS_epoll_ctl: ::c_long = 237; -pub const SYS_epoll_wait: ::c_long = 238; -pub const SYS_remap_file_pages: ::c_long = 239; -pub const SYS_timer_create: ::c_long = 240; -pub const SYS_timer_settime: ::c_long = 241; -pub const SYS_timer_gettime: ::c_long = 242; -pub const SYS_timer_getoverrun: ::c_long = 243; -pub const SYS_timer_delete: ::c_long = 244; -pub const SYS_clock_settime: ::c_long = 245; -pub const SYS_clock_gettime: ::c_long = 246; -pub const SYS_clock_getres: ::c_long = 247; -pub const SYS_clock_nanosleep: ::c_long = 248; -pub const SYS_swapcontext: ::c_long = 249; -pub const SYS_tgkill: ::c_long = 250; -pub const SYS_utimes: ::c_long = 251; -pub const SYS_statfs64: ::c_long = 252; -pub const SYS_fstatfs64: ::c_long = 253; -pub const SYS_fadvise64_64: ::c_long = 254; -pub const SYS_rtas: ::c_long = 255; -pub const SYS_sys_debug_setcontext: ::c_long = 256; -pub const SYS_migrate_pages: ::c_long = 258; -pub const SYS_mbind: ::c_long = 259; -pub const SYS_get_mempolicy: ::c_long = 260; -pub const SYS_set_mempolicy: ::c_long = 261; -pub const SYS_mq_open: ::c_long = 262; -pub const SYS_mq_unlink: ::c_long = 263; -pub const SYS_mq_timedsend: ::c_long = 264; -pub const SYS_mq_timedreceive: ::c_long = 265; -pub const SYS_mq_notify: ::c_long = 266; -pub const SYS_mq_getsetattr: ::c_long = 267; -pub const SYS_kexec_load: ::c_long = 268; -pub const SYS_add_key: ::c_long = 269; -pub const SYS_request_key: ::c_long = 270; -pub const SYS_keyctl: ::c_long = 271; -pub const SYS_waitid: ::c_long = 272; -pub const SYS_ioprio_set: ::c_long = 273; -pub const SYS_ioprio_get: ::c_long = 274; -pub const SYS_inotify_init: ::c_long = 275; -pub const SYS_inotify_add_watch: ::c_long = 276; -pub const SYS_inotify_rm_watch: ::c_long = 277; -pub const SYS_spu_run: ::c_long = 278; -pub const SYS_spu_create: ::c_long = 279; -pub const SYS_pselect6: ::c_long = 280; -pub const SYS_ppoll: ::c_long = 281; -pub const SYS_unshare: ::c_long = 282; -pub const SYS_splice: ::c_long = 283; -pub const SYS_tee: ::c_long = 284; -pub const SYS_vmsplice: ::c_long = 285; -pub const SYS_openat: ::c_long = 286; -pub const SYS_mkdirat: ::c_long = 287; -pub const SYS_mknodat: ::c_long = 288; -pub const SYS_fchownat: ::c_long = 289; -pub const SYS_futimesat: ::c_long = 290; -pub const SYS_fstatat64: ::c_long = 291; -pub const SYS_unlinkat: ::c_long = 292; -pub const SYS_renameat: ::c_long = 293; -pub const SYS_linkat: ::c_long = 294; -pub const SYS_symlinkat: ::c_long = 295; -pub const SYS_readlinkat: ::c_long = 296; -pub const SYS_fchmodat: ::c_long = 297; -pub const SYS_faccessat: ::c_long = 298; -pub const SYS_get_robust_list: ::c_long = 299; -pub const SYS_set_robust_list: ::c_long = 300; -pub const SYS_move_pages: ::c_long = 301; -pub const SYS_getcpu: ::c_long = 302; -pub const SYS_epoll_pwait: ::c_long = 303; -pub const SYS_utimensat: ::c_long = 304; -pub const SYS_signalfd: ::c_long = 305; -pub const SYS_timerfd_create: ::c_long = 306; -pub const SYS_eventfd: ::c_long = 307; -pub const SYS_sync_file_range2: ::c_long = 308; -pub const SYS_fallocate: ::c_long = 309; -pub const SYS_subpage_prot: ::c_long = 310; -pub const SYS_timerfd_settime: ::c_long = 311; -pub const SYS_timerfd_gettime: ::c_long = 312; -pub const SYS_signalfd4: ::c_long = 313; -pub const SYS_eventfd2: ::c_long = 314; -pub const SYS_epoll_create1: ::c_long = 315; -pub const SYS_dup3: ::c_long = 316; -pub const SYS_pipe2: ::c_long = 317; -pub const SYS_inotify_init1: ::c_long = 318; -pub const SYS_perf_event_open: ::c_long = 319; -pub const SYS_preadv: ::c_long = 320; -pub const SYS_pwritev: ::c_long = 321; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 322; -pub const SYS_fanotify_init: ::c_long = 323; -pub const SYS_fanotify_mark: ::c_long = 324; -pub const SYS_prlimit64: ::c_long = 325; -pub const SYS_socket: ::c_long = 326; -pub const SYS_bind: ::c_long = 327; -pub const SYS_connect: ::c_long = 328; -pub const SYS_listen: ::c_long = 329; -pub const SYS_accept: ::c_long = 330; -pub const SYS_getsockname: ::c_long = 331; -pub const SYS_getpeername: ::c_long = 332; -pub const SYS_socketpair: ::c_long = 333; -pub const SYS_send: ::c_long = 334; -pub const SYS_sendto: ::c_long = 335; -pub const SYS_recv: ::c_long = 336; -pub const SYS_recvfrom: ::c_long = 337; -pub const SYS_shutdown: ::c_long = 338; -pub const SYS_setsockopt: ::c_long = 339; -pub const SYS_getsockopt: ::c_long = 340; -pub const SYS_sendmsg: ::c_long = 341; -pub const SYS_recvmsg: ::c_long = 342; -pub const SYS_recvmmsg: ::c_long = 343; -pub const SYS_accept4: ::c_long = 344; -pub const SYS_name_to_handle_at: ::c_long = 345; -pub const SYS_open_by_handle_at: ::c_long = 346; -pub const SYS_clock_adjtime: ::c_long = 347; -pub const SYS_syncfs: ::c_long = 348; -pub const SYS_sendmmsg: ::c_long = 349; -pub const SYS_setns: ::c_long = 350; -pub const SYS_process_vm_readv: ::c_long = 351; -pub const SYS_process_vm_writev: ::c_long = 352; -pub const SYS_finit_module: ::c_long = 353; -pub const SYS_kcmp: ::c_long = 354; -pub const SYS_sched_setattr: ::c_long = 355; -pub const SYS_sched_getattr: ::c_long = 356; -pub const SYS_renameat2: ::c_long = 357; -pub const SYS_seccomp: ::c_long = 358; -pub const SYS_getrandom: ::c_long = 359; -pub const SYS_memfd_create: ::c_long = 360; -pub const SYS_bpf: ::c_long = 361; -pub const SYS_execveat: ::c_long = 362; -pub const SYS_switch_endian: ::c_long = 363; -pub const SYS_userfaultfd: ::c_long = 364; -pub const SYS_membarrier: ::c_long = 365; -pub const SYS_mlock2: ::c_long = 378; -pub const SYS_copy_file_range: ::c_long = 379; -pub const SYS_preadv2: ::c_long = 380; -pub const SYS_pwritev2: ::c_long = 381; -pub const SYS_kexec_file_load: ::c_long = 382; -pub const SYS_statx: ::c_long = 383; -pub const SYS_rseq: ::c_long = 387; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; -pub const SYS_mseal: ::c_long = 462; +pub const SYS_restart_syscall: c_long = 0; +pub const SYS_exit: c_long = 1; +pub const SYS_fork: c_long = 2; +pub const SYS_read: c_long = 3; +pub const SYS_write: c_long = 4; +pub const SYS_open: c_long = 5; +pub const SYS_close: c_long = 6; +pub const SYS_waitpid: c_long = 7; +pub const SYS_creat: c_long = 8; +pub const SYS_link: c_long = 9; +pub const SYS_unlink: c_long = 10; +pub const SYS_execve: c_long = 11; +pub const SYS_chdir: c_long = 12; +pub const SYS_time: c_long = 13; +pub const SYS_mknod: c_long = 14; +pub const SYS_chmod: c_long = 15; +pub const SYS_lchown: c_long = 16; +pub const SYS_break: c_long = 17; +pub const SYS_oldstat: c_long = 18; +pub const SYS_lseek: c_long = 19; +pub const SYS_getpid: c_long = 20; +pub const SYS_mount: c_long = 21; +pub const SYS_umount: c_long = 22; +pub const SYS_setuid: c_long = 23; +pub const SYS_getuid: c_long = 24; +pub const SYS_stime: c_long = 25; +pub const SYS_ptrace: c_long = 26; +pub const SYS_alarm: c_long = 27; +pub const SYS_oldfstat: c_long = 28; +pub const SYS_pause: c_long = 29; +pub const SYS_utime: c_long = 30; +pub const SYS_stty: c_long = 31; +pub const SYS_gtty: c_long = 32; +pub const SYS_access: c_long = 33; +pub const SYS_nice: c_long = 34; +pub const SYS_ftime: c_long = 35; +pub const SYS_sync: c_long = 36; +pub const SYS_kill: c_long = 37; +pub const SYS_rename: c_long = 38; +pub const SYS_mkdir: c_long = 39; +pub const SYS_rmdir: c_long = 40; +pub const SYS_dup: c_long = 41; +pub const SYS_pipe: c_long = 42; +pub const SYS_times: c_long = 43; +pub const SYS_prof: c_long = 44; +pub const SYS_brk: c_long = 45; +pub const SYS_setgid: c_long = 46; +pub const SYS_getgid: c_long = 47; +pub const SYS_signal: c_long = 48; +pub const SYS_geteuid: c_long = 49; +pub const SYS_getegid: c_long = 50; +pub const SYS_acct: c_long = 51; +pub const SYS_umount2: c_long = 52; +pub const SYS_lock: c_long = 53; +pub const SYS_ioctl: c_long = 54; +pub const SYS_fcntl: c_long = 55; +pub const SYS_mpx: c_long = 56; +pub const SYS_setpgid: c_long = 57; +pub const SYS_ulimit: c_long = 58; +pub const SYS_oldolduname: c_long = 59; +pub const SYS_umask: c_long = 60; +pub const SYS_chroot: c_long = 61; +pub const SYS_ustat: c_long = 62; +pub const SYS_dup2: c_long = 63; +pub const SYS_getppid: c_long = 64; +pub const SYS_getpgrp: c_long = 65; +pub const SYS_setsid: c_long = 66; +pub const SYS_sigaction: c_long = 67; +pub const SYS_sgetmask: c_long = 68; +pub const SYS_ssetmask: c_long = 69; +pub const SYS_setreuid: c_long = 70; +pub const SYS_setregid: c_long = 71; +pub const SYS_sigsuspend: c_long = 72; +pub const SYS_sigpending: c_long = 73; +pub const SYS_sethostname: c_long = 74; +pub const SYS_setrlimit: c_long = 75; +pub const SYS_getrlimit: c_long = 76; +pub const SYS_getrusage: c_long = 77; +pub const SYS_gettimeofday: c_long = 78; +pub const SYS_settimeofday: c_long = 79; +pub const SYS_getgroups: c_long = 80; +pub const SYS_setgroups: c_long = 81; +pub const SYS_select: c_long = 82; +pub const SYS_symlink: c_long = 83; +pub const SYS_oldlstat: c_long = 84; +pub const SYS_readlink: c_long = 85; +pub const SYS_uselib: c_long = 86; +pub const SYS_swapon: c_long = 87; +pub const SYS_reboot: c_long = 88; +pub const SYS_readdir: c_long = 89; +pub const SYS_mmap: c_long = 90; +pub const SYS_munmap: c_long = 91; +pub const SYS_truncate: c_long = 92; +pub const SYS_ftruncate: c_long = 93; +pub const SYS_fchmod: c_long = 94; +pub const SYS_fchown: c_long = 95; +pub const SYS_getpriority: c_long = 96; +pub const SYS_setpriority: c_long = 97; +pub const SYS_profil: c_long = 98; +pub const SYS_statfs: c_long = 99; +pub const SYS_fstatfs: c_long = 100; +pub const SYS_ioperm: c_long = 101; +pub const SYS_socketcall: c_long = 102; +pub const SYS_syslog: c_long = 103; +pub const SYS_setitimer: c_long = 104; +pub const SYS_getitimer: c_long = 105; +pub const SYS_stat: c_long = 106; +pub const SYS_lstat: c_long = 107; +pub const SYS_fstat: c_long = 108; +pub const SYS_olduname: c_long = 109; +pub const SYS_iopl: c_long = 110; +pub const SYS_vhangup: c_long = 111; +pub const SYS_idle: c_long = 112; +pub const SYS_vm86: c_long = 113; +pub const SYS_wait4: c_long = 114; +pub const SYS_swapoff: c_long = 115; +pub const SYS_sysinfo: c_long = 116; +pub const SYS_ipc: c_long = 117; +pub const SYS_fsync: c_long = 118; +pub const SYS_sigreturn: c_long = 119; +pub const SYS_clone: c_long = 120; +pub const SYS_setdomainname: c_long = 121; +pub const SYS_uname: c_long = 122; +pub const SYS_modify_ldt: c_long = 123; +pub const SYS_adjtimex: c_long = 124; +pub const SYS_mprotect: c_long = 125; +pub const SYS_sigprocmask: c_long = 126; +pub const SYS_create_module: c_long = 127; +pub const SYS_init_module: c_long = 128; +pub const SYS_delete_module: c_long = 129; +pub const SYS_get_kernel_syms: c_long = 130; +pub const SYS_quotactl: c_long = 131; +pub const SYS_getpgid: c_long = 132; +pub const SYS_fchdir: c_long = 133; +pub const SYS_bdflush: c_long = 134; +pub const SYS_sysfs: c_long = 135; +pub const SYS_personality: c_long = 136; +pub const SYS_afs_syscall: c_long = 137; /* Syscall for Andrew File System */ +pub const SYS_setfsuid: c_long = 138; +pub const SYS_setfsgid: c_long = 139; +pub const SYS__llseek: c_long = 140; +pub const SYS_getdents: c_long = 141; +pub const SYS__newselect: c_long = 142; +pub const SYS_flock: c_long = 143; +pub const SYS_msync: c_long = 144; +pub const SYS_readv: c_long = 145; +pub const SYS_writev: c_long = 146; +pub const SYS_getsid: c_long = 147; +pub const SYS_fdatasync: c_long = 148; +pub const SYS__sysctl: c_long = 149; +pub const SYS_mlock: c_long = 150; +pub const SYS_munlock: c_long = 151; +pub const SYS_mlockall: c_long = 152; +pub const SYS_munlockall: c_long = 153; +pub const SYS_sched_setparam: c_long = 154; +pub const SYS_sched_getparam: c_long = 155; +pub const SYS_sched_setscheduler: c_long = 156; +pub const SYS_sched_getscheduler: c_long = 157; +pub const SYS_sched_yield: c_long = 158; +pub const SYS_sched_get_priority_max: c_long = 159; +pub const SYS_sched_get_priority_min: c_long = 160; +pub const SYS_sched_rr_get_interval: c_long = 161; +pub const SYS_nanosleep: c_long = 162; +pub const SYS_mremap: c_long = 163; +pub const SYS_setresuid: c_long = 164; +pub const SYS_getresuid: c_long = 165; +pub const SYS_query_module: c_long = 166; +pub const SYS_poll: c_long = 167; +pub const SYS_nfsservctl: c_long = 168; +pub const SYS_setresgid: c_long = 169; +pub const SYS_getresgid: c_long = 170; +pub const SYS_prctl: c_long = 171; +pub const SYS_rt_sigreturn: c_long = 172; +pub const SYS_rt_sigaction: c_long = 173; +pub const SYS_rt_sigprocmask: c_long = 174; +pub const SYS_rt_sigpending: c_long = 175; +pub const SYS_rt_sigtimedwait: c_long = 176; +pub const SYS_rt_sigqueueinfo: c_long = 177; +pub const SYS_rt_sigsuspend: c_long = 178; +pub const SYS_pread64: c_long = 179; +pub const SYS_pwrite64: c_long = 180; +pub const SYS_chown: c_long = 181; +pub const SYS_getcwd: c_long = 182; +pub const SYS_capget: c_long = 183; +pub const SYS_capset: c_long = 184; +pub const SYS_sigaltstack: c_long = 185; +pub const SYS_sendfile: c_long = 186; +pub const SYS_getpmsg: c_long = 187; /* some people actually want streams */ +pub const SYS_putpmsg: c_long = 188; /* some people actually want streams */ +pub const SYS_vfork: c_long = 189; +pub const SYS_ugetrlimit: c_long = 190; /* SuS compliant getrlimit */ +pub const SYS_readahead: c_long = 191; +pub const SYS_mmap2: c_long = 192; +pub const SYS_truncate64: c_long = 193; +pub const SYS_ftruncate64: c_long = 194; +pub const SYS_stat64: c_long = 195; +pub const SYS_lstat64: c_long = 196; +pub const SYS_fstat64: c_long = 197; +pub const SYS_pciconfig_read: c_long = 198; +pub const SYS_pciconfig_write: c_long = 199; +pub const SYS_pciconfig_iobase: c_long = 200; +pub const SYS_multiplexer: c_long = 201; +pub const SYS_getdents64: c_long = 202; +pub const SYS_pivot_root: c_long = 203; +pub const SYS_fcntl64: c_long = 204; +pub const SYS_madvise: c_long = 205; +pub const SYS_mincore: c_long = 206; +pub const SYS_gettid: c_long = 207; +pub const SYS_tkill: c_long = 208; +pub const SYS_setxattr: c_long = 209; +pub const SYS_lsetxattr: c_long = 210; +pub const SYS_fsetxattr: c_long = 211; +pub const SYS_getxattr: c_long = 212; +pub const SYS_lgetxattr: c_long = 213; +pub const SYS_fgetxattr: c_long = 214; +pub const SYS_listxattr: c_long = 215; +pub const SYS_llistxattr: c_long = 216; +pub const SYS_flistxattr: c_long = 217; +pub const SYS_removexattr: c_long = 218; +pub const SYS_lremovexattr: c_long = 219; +pub const SYS_fremovexattr: c_long = 220; +pub const SYS_futex: c_long = 221; +pub const SYS_sched_setaffinity: c_long = 222; +pub const SYS_sched_getaffinity: c_long = 223; +pub const SYS_tuxcall: c_long = 225; +pub const SYS_sendfile64: c_long = 226; +pub const SYS_io_setup: c_long = 227; +pub const SYS_io_destroy: c_long = 228; +pub const SYS_io_getevents: c_long = 229; +pub const SYS_io_submit: c_long = 230; +pub const SYS_io_cancel: c_long = 231; +pub const SYS_set_tid_address: c_long = 232; +pub const SYS_fadvise64: c_long = 233; +pub const SYS_exit_group: c_long = 234; +pub const SYS_lookup_dcookie: c_long = 235; +pub const SYS_epoll_create: c_long = 236; +pub const SYS_epoll_ctl: c_long = 237; +pub const SYS_epoll_wait: c_long = 238; +pub const SYS_remap_file_pages: c_long = 239; +pub const SYS_timer_create: c_long = 240; +pub const SYS_timer_settime: c_long = 241; +pub const SYS_timer_gettime: c_long = 242; +pub const SYS_timer_getoverrun: c_long = 243; +pub const SYS_timer_delete: c_long = 244; +pub const SYS_clock_settime: c_long = 245; +pub const SYS_clock_gettime: c_long = 246; +pub const SYS_clock_getres: c_long = 247; +pub const SYS_clock_nanosleep: c_long = 248; +pub const SYS_swapcontext: c_long = 249; +pub const SYS_tgkill: c_long = 250; +pub const SYS_utimes: c_long = 251; +pub const SYS_statfs64: c_long = 252; +pub const SYS_fstatfs64: c_long = 253; +pub const SYS_fadvise64_64: c_long = 254; +pub const SYS_rtas: c_long = 255; +pub const SYS_sys_debug_setcontext: c_long = 256; +pub const SYS_migrate_pages: c_long = 258; +pub const SYS_mbind: c_long = 259; +pub const SYS_get_mempolicy: c_long = 260; +pub const SYS_set_mempolicy: c_long = 261; +pub const SYS_mq_open: c_long = 262; +pub const SYS_mq_unlink: c_long = 263; +pub const SYS_mq_timedsend: c_long = 264; +pub const SYS_mq_timedreceive: c_long = 265; +pub const SYS_mq_notify: c_long = 266; +pub const SYS_mq_getsetattr: c_long = 267; +pub const SYS_kexec_load: c_long = 268; +pub const SYS_add_key: c_long = 269; +pub const SYS_request_key: c_long = 270; +pub const SYS_keyctl: c_long = 271; +pub const SYS_waitid: c_long = 272; +pub const SYS_ioprio_set: c_long = 273; +pub const SYS_ioprio_get: c_long = 274; +pub const SYS_inotify_init: c_long = 275; +pub const SYS_inotify_add_watch: c_long = 276; +pub const SYS_inotify_rm_watch: c_long = 277; +pub const SYS_spu_run: c_long = 278; +pub const SYS_spu_create: c_long = 279; +pub const SYS_pselect6: c_long = 280; +pub const SYS_ppoll: c_long = 281; +pub const SYS_unshare: c_long = 282; +pub const SYS_splice: c_long = 283; +pub const SYS_tee: c_long = 284; +pub const SYS_vmsplice: c_long = 285; +pub const SYS_openat: c_long = 286; +pub const SYS_mkdirat: c_long = 287; +pub const SYS_mknodat: c_long = 288; +pub const SYS_fchownat: c_long = 289; +pub const SYS_futimesat: c_long = 290; +pub const SYS_fstatat64: c_long = 291; +pub const SYS_unlinkat: c_long = 292; +pub const SYS_renameat: c_long = 293; +pub const SYS_linkat: c_long = 294; +pub const SYS_symlinkat: c_long = 295; +pub const SYS_readlinkat: c_long = 296; +pub const SYS_fchmodat: c_long = 297; +pub const SYS_faccessat: c_long = 298; +pub const SYS_get_robust_list: c_long = 299; +pub const SYS_set_robust_list: c_long = 300; +pub const SYS_move_pages: c_long = 301; +pub const SYS_getcpu: c_long = 302; +pub const SYS_epoll_pwait: c_long = 303; +pub const SYS_utimensat: c_long = 304; +pub const SYS_signalfd: c_long = 305; +pub const SYS_timerfd_create: c_long = 306; +pub const SYS_eventfd: c_long = 307; +pub const SYS_sync_file_range2: c_long = 308; +pub const SYS_fallocate: c_long = 309; +pub const SYS_subpage_prot: c_long = 310; +pub const SYS_timerfd_settime: c_long = 311; +pub const SYS_timerfd_gettime: c_long = 312; +pub const SYS_signalfd4: c_long = 313; +pub const SYS_eventfd2: c_long = 314; +pub const SYS_epoll_create1: c_long = 315; +pub const SYS_dup3: c_long = 316; +pub const SYS_pipe2: c_long = 317; +pub const SYS_inotify_init1: c_long = 318; +pub const SYS_perf_event_open: c_long = 319; +pub const SYS_preadv: c_long = 320; +pub const SYS_pwritev: c_long = 321; +pub const SYS_rt_tgsigqueueinfo: c_long = 322; +pub const SYS_fanotify_init: c_long = 323; +pub const SYS_fanotify_mark: c_long = 324; +pub const SYS_prlimit64: c_long = 325; +pub const SYS_socket: c_long = 326; +pub const SYS_bind: c_long = 327; +pub const SYS_connect: c_long = 328; +pub const SYS_listen: c_long = 329; +pub const SYS_accept: c_long = 330; +pub const SYS_getsockname: c_long = 331; +pub const SYS_getpeername: c_long = 332; +pub const SYS_socketpair: c_long = 333; +pub const SYS_send: c_long = 334; +pub const SYS_sendto: c_long = 335; +pub const SYS_recv: c_long = 336; +pub const SYS_recvfrom: c_long = 337; +pub const SYS_shutdown: c_long = 338; +pub const SYS_setsockopt: c_long = 339; +pub const SYS_getsockopt: c_long = 340; +pub const SYS_sendmsg: c_long = 341; +pub const SYS_recvmsg: c_long = 342; +pub const SYS_recvmmsg: c_long = 343; +pub const SYS_accept4: c_long = 344; +pub const SYS_name_to_handle_at: c_long = 345; +pub const SYS_open_by_handle_at: c_long = 346; +pub const SYS_clock_adjtime: c_long = 347; +pub const SYS_syncfs: c_long = 348; +pub const SYS_sendmmsg: c_long = 349; +pub const SYS_setns: c_long = 350; +pub const SYS_process_vm_readv: c_long = 351; +pub const SYS_process_vm_writev: c_long = 352; +pub const SYS_finit_module: c_long = 353; +pub const SYS_kcmp: c_long = 354; +pub const SYS_sched_setattr: c_long = 355; +pub const SYS_sched_getattr: c_long = 356; +pub const SYS_renameat2: c_long = 357; +pub const SYS_seccomp: c_long = 358; +pub const SYS_getrandom: c_long = 359; +pub const SYS_memfd_create: c_long = 360; +pub const SYS_bpf: c_long = 361; +pub const SYS_execveat: c_long = 362; +pub const SYS_switch_endian: c_long = 363; +pub const SYS_userfaultfd: c_long = 364; +pub const SYS_membarrier: c_long = 365; +pub const SYS_mlock2: c_long = 378; +pub const SYS_copy_file_range: c_long = 379; +pub const SYS_preadv2: c_long = 380; +pub const SYS_pwritev2: c_long = 381; +pub const SYS_kexec_file_load: c_long = 382; +pub const SYS_statx: c_long = 383; +pub const SYS_rseq: c_long = 387; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; +pub const SYS_mseal: c_long = 462; diff --git a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs index 950be29a42ae7..2b86d5eacc8fd 100644 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -1,94 +1,98 @@ //! RISC-V-specific definitions for 32-bit linux-like values +use crate::{ + c_int, c_long, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, c_void, off64_t, off_t, size_t, +}; + pub type c_char = u8; -pub type wchar_t = ::c_int; +pub type wchar_t = c_int; s! { pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, + pub msg_perm: crate::ipc_perm, + pub msg_stime: crate::time_t, + pub msg_rtime: crate::time_t, + pub msg_ctime: crate::time_t, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __glibc_reserved4: c_ulong, + __glibc_reserved5: c_ulong, } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - pub st_blocks: ::blkcnt64_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_int; 2], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino64_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub __pad1: crate::dev_t, + pub st_size: off64_t, + pub st_blksize: crate::blksize_t, + pub __pad2: c_int, + pub st_blocks: crate::blkcnt64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_int; 2], } pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - 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_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_frsize: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 4], + pub f_type: c_long, + pub f_bsize: c_long, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_long, + pub f_frsize: c_long, + pub f_flags: c_long, + pub f_spare: [c_long; 4], } pub struct statfs64 { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_frsize: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 4], + pub f_type: c_long, + pub f_bsize: c_long, + pub f_blocks: crate::fsblkcnt64_t, + pub f_bfree: crate::fsblkcnt64_t, + pub f_bavail: crate::fsblkcnt64_t, + pub f_files: crate::fsfilcnt64_t, + pub f_ffree: crate::fsfilcnt64_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_long, + pub f_frsize: c_long, + pub f_flags: c_long, + pub f_spare: [c_long; 4], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_favail: ::fsfilcnt64_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub __f_spare: [::c_int; 6], + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt64_t, + pub f_bfree: crate::fsblkcnt64_t, + pub f_bavail: crate::fsblkcnt64_t, + pub f_files: crate::fsfilcnt64_t, + pub f_ffree: crate::fsfilcnt64_t, + pub f_favail: crate::fsfilcnt64_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + pub __f_spare: [c_int; 6], } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, #[doc(hidden)] #[deprecated( since = "0.2.54", @@ -96,116 +100,116 @@ s! { https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] - pub _pad: [::c_int; 29], + pub _pad: [c_int; 29], _align: [u64; 0], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, + pub sa_flags: c_int, + pub sa_restorer: Option, } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: c_ushort, + __pad1: c_ushort, + pub __seq: c_ushort, + __pad2: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused5: ::c_ulong, - __unused6: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __unused5: c_ulong, + __unused6: c_ulong, } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off64_t, + pub l_len: off64_t, + pub l_pid: crate::pid_t, } pub struct user_regs_struct { - pub pc: ::c_ulong, - pub ra: ::c_ulong, - pub sp: ::c_ulong, - pub gp: ::c_ulong, - pub tp: ::c_ulong, - pub t0: ::c_ulong, - pub t1: ::c_ulong, - pub t2: ::c_ulong, - pub s0: ::c_ulong, - pub s1: ::c_ulong, - pub a0: ::c_ulong, - pub a1: ::c_ulong, - pub a2: ::c_ulong, - pub a3: ::c_ulong, - pub a4: ::c_ulong, - pub a5: ::c_ulong, - pub a6: ::c_ulong, - pub a7: ::c_ulong, - pub s2: ::c_ulong, - pub s3: ::c_ulong, - pub s4: ::c_ulong, - pub s5: ::c_ulong, - pub s6: ::c_ulong, - pub s7: ::c_ulong, - pub s8: ::c_ulong, - pub s9: ::c_ulong, - pub s10: ::c_ulong, - pub s11: ::c_ulong, - pub t3: ::c_ulong, - pub t4: ::c_ulong, - pub t5: ::c_ulong, - pub t6: ::c_ulong, + pub pc: c_ulong, + pub ra: c_ulong, + pub sp: c_ulong, + pub gp: c_ulong, + pub tp: c_ulong, + pub t0: c_ulong, + pub t1: c_ulong, + pub t2: c_ulong, + pub s0: c_ulong, + pub s1: c_ulong, + pub a0: c_ulong, + pub a1: c_ulong, + pub a2: c_ulong, + pub a3: c_ulong, + pub a4: c_ulong, + pub a5: c_ulong, + pub a6: c_ulong, + pub a7: c_ulong, + pub s2: c_ulong, + pub s3: c_ulong, + pub s4: c_ulong, + pub s5: c_ulong, + pub s6: c_ulong, + pub s7: c_ulong, + pub s8: c_ulong, + pub s9: c_ulong, + pub s10: c_ulong, + pub s11: c_ulong, + pub t3: c_ulong, + pub t4: c_ulong, + pub t5: c_ulong, + pub t6: c_ulong, } } s_no_extra_traits! { #[allow(missing_debug_implementations)] pub struct ucontext_t { - pub __uc_flags: ::c_ulong, + pub __uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, + pub uc_stack: crate::stack_t, + pub uc_sigmask: crate::sigset_t, pub uc_mcontext: mcontext_t, } #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct mcontext_t { - pub __gregs: [::c_ulong; 32], + pub __gregs: [c_ulong; 32], pub __fpregs: __riscv_mc_fp_state, } @@ -218,198 +222,198 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] pub struct __riscv_mc_f_ext_state { - pub __f: [::c_uint; 32], - pub __fcsr: ::c_uint, + pub __f: [c_uint; 32], + pub __fcsr: c_uint, } #[allow(missing_debug_implementations)] pub struct __riscv_mc_d_ext_state { - pub __f: [::c_ulonglong; 32], - pub __fcsr: ::c_uint, + pub __f: [c_ulonglong; 32], + pub __fcsr: c_uint, } #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct __riscv_mc_q_ext_state { - pub __f: [::c_ulonglong; 64], - pub __fcsr: ::c_uint, - pub __glibc_reserved: [::c_uint; 3], + pub __f: [c_ulonglong; 64], + pub __fcsr: c_uint, + pub __glibc_reserved: [c_uint; 3], } } -pub const O_LARGEFILE: ::c_int = 0; +pub const O_LARGEFILE: c_int = 0; pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 1052672; -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 256; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; +pub const RTLD_DEEPBIND: c_int = 0x8; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_NOLOAD: c_int = 0x4; +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_FSYNC: c_int = 1052672; +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MAP_GROWSDOWN: c_int = 256; +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EBADMSG: c_int = 74; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const EHWPOISON: c_int = 133; +pub const ERFKILL: c_int = 132; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SA_SIGINFO: ::c_int = 4; -pub const SA_NOCLDWAIT: ::c_int = 2; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0; -pub const SIG_UNBLOCK: ::c_int = 1; -pub const POLLWRNORM: ::c_short = 256; -pub const POLLWRBAND: ::c_short = 512; -pub const O_ASYNC: ::c_int = 8192; -pub const O_NDELAY: ::c_int = 2048; -pub const EFD_NONBLOCK: ::c_int = 2048; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; -pub const SFD_NONBLOCK: ::c_int = 2048; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; +pub const SA_SIGINFO: c_int = 4; +pub const SA_NOCLDWAIT: c_int = 2; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0; +pub const SIG_UNBLOCK: c_int = 1; +pub const POLLWRNORM: c_short = 256; +pub const POLLWRBAND: c_short = 512; +pub const O_ASYNC: c_int = 8192; +pub const O_NDELAY: c_int = 2048; +pub const EFD_NONBLOCK: c_int = 2048; +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETOWN: c_int = 8; +pub const SFD_NONBLOCK: c_int = 2048; +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const O_DIRECT: ::c_int = 16384; -pub const O_DIRECTORY: ::c_int = 65536; -pub const O_NOFOLLOW: ::c_int = 131072; -pub const MAP_HUGETLB: ::c_int = 262144; -pub const MAP_LOCKED: ::c_int = 8192; -pub const MAP_NORESERVE: ::c_int = 16384; -pub const MAP_ANON: ::c_int = 32; -pub const MAP_ANONYMOUS: ::c_int = 32; -pub const MAP_DENYWRITE: ::c_int = 2048; -pub const MAP_EXECUTABLE: ::c_int = 4096; -pub const MAP_POPULATE: ::c_int = 32768; -pub const MAP_NONBLOCK: ::c_int = 65536; -pub const MAP_STACK: ::c_int = 131072; -pub const MAP_SYNC: ::c_int = 0x080000; -pub const EDEADLOCK: ::c_int = 35; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const MCL_CURRENT: ::c_int = 1; -pub const MCL_FUTURE: ::c_int = 2; -pub const MCL_ONFAULT: ::c_int = 4; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 4111; -pub const TAB1: ::tcflag_t = 2048; -pub const TAB2: ::tcflag_t = 4096; -pub const TAB3: ::tcflag_t = 6144; -pub const CR1: ::tcflag_t = 512; -pub const CR2: ::tcflag_t = 1024; -pub const CR3: ::tcflag_t = 1536; -pub const FF1: ::tcflag_t = 32768; -pub const BS1: ::tcflag_t = 8192; -pub const VT1: ::tcflag_t = 16384; +pub const O_DIRECT: c_int = 16384; +pub const O_DIRECTORY: c_int = 65536; +pub const O_NOFOLLOW: c_int = 131072; +pub const MAP_HUGETLB: c_int = 262144; +pub const MAP_LOCKED: c_int = 8192; +pub const MAP_NORESERVE: c_int = 16384; +pub const MAP_ANON: c_int = 32; +pub const MAP_ANONYMOUS: c_int = 32; +pub const MAP_DENYWRITE: c_int = 2048; +pub const MAP_EXECUTABLE: c_int = 4096; +pub const MAP_POPULATE: c_int = 32768; +pub const MAP_NONBLOCK: c_int = 65536; +pub const MAP_STACK: c_int = 131072; +pub const MAP_SYNC: c_int = 0x080000; +pub const EDEADLOCK: c_int = 35; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const MCL_CURRENT: c_int = 1; +pub const MCL_FUTURE: c_int = 2; +pub const MCL_ONFAULT: c_int = 4; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; +pub const CBAUD: crate::tcflag_t = 4111; +pub const TAB1: crate::tcflag_t = 2048; +pub const TAB2: crate::tcflag_t = 4096; +pub const TAB3: crate::tcflag_t = 6144; +pub const CR1: crate::tcflag_t = 512; +pub const CR2: crate::tcflag_t = 1024; +pub const CR3: crate::tcflag_t = 1536; +pub const FF1: crate::tcflag_t = 32768; +pub const BS1: crate::tcflag_t = 8192; +pub const VT1: crate::tcflag_t = 16384; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -417,80 +421,80 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 1024; -pub const IXOFF: ::tcflag_t = 4096; -pub const ONLCR: ::tcflag_t = 4; -pub const CSIZE: ::tcflag_t = 48; -pub const CS6: ::tcflag_t = 16; -pub const CS7: ::tcflag_t = 32; -pub const CS8: ::tcflag_t = 48; -pub const CSTOPB: ::tcflag_t = 64; -pub const CREAD: ::tcflag_t = 128; -pub const PARENB: ::tcflag_t = 256; -pub const PARODD: ::tcflag_t = 512; -pub const HUPCL: ::tcflag_t = 1024; -pub const CLOCAL: ::tcflag_t = 2048; -pub const ECHOKE: ::tcflag_t = 2048; -pub const ECHOE: ::tcflag_t = 16; -pub const ECHOK: ::tcflag_t = 32; -pub const ECHONL: ::tcflag_t = 64; -pub const ECHOPRT: ::tcflag_t = 1024; -pub const ECHOCTL: ::tcflag_t = 512; -pub const ISIG: ::tcflag_t = 1; -pub const ICANON: ::tcflag_t = 2; -pub const PENDIN: ::tcflag_t = 16384; -pub const NOFLSH: ::tcflag_t = 128; -pub const CIBAUD: ::tcflag_t = 269418496; -pub const CBAUDEX: ::tcflag_t = 4096; +pub const IXON: crate::tcflag_t = 1024; +pub const IXOFF: crate::tcflag_t = 4096; +pub const ONLCR: crate::tcflag_t = 4; +pub const CSIZE: crate::tcflag_t = 48; +pub const CS6: crate::tcflag_t = 16; +pub const CS7: crate::tcflag_t = 32; +pub const CS8: crate::tcflag_t = 48; +pub const CSTOPB: crate::tcflag_t = 64; +pub const CREAD: crate::tcflag_t = 128; +pub const PARENB: crate::tcflag_t = 256; +pub const PARODD: crate::tcflag_t = 512; +pub const HUPCL: crate::tcflag_t = 1024; +pub const CLOCAL: crate::tcflag_t = 2048; +pub const ECHOKE: crate::tcflag_t = 2048; +pub const ECHOE: crate::tcflag_t = 16; +pub const ECHOK: crate::tcflag_t = 32; +pub const ECHONL: crate::tcflag_t = 64; +pub const ECHOPRT: crate::tcflag_t = 1024; +pub const ECHOCTL: crate::tcflag_t = 512; +pub const ISIG: crate::tcflag_t = 1; +pub const ICANON: crate::tcflag_t = 2; +pub const PENDIN: crate::tcflag_t = 16384; +pub const NOFLSH: crate::tcflag_t = 128; +pub const CIBAUD: crate::tcflag_t = 269418496; +pub const CBAUDEX: crate::tcflag_t = 4096; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 2; -pub const NLDLY: ::tcflag_t = 256; -pub const CRDLY: ::tcflag_t = 1536; -pub const TABDLY: ::tcflag_t = 6144; -pub const BSDLY: ::tcflag_t = 8192; -pub const FFDLY: ::tcflag_t = 32768; -pub const VTDLY: ::tcflag_t = 16384; -pub const XTABS: ::tcflag_t = 6144; -pub const B0: ::speed_t = 0; -pub const B50: ::speed_t = 1; -pub const B75: ::speed_t = 2; -pub const B110: ::speed_t = 3; -pub const B134: ::speed_t = 4; -pub const B150: ::speed_t = 5; -pub const B200: ::speed_t = 6; -pub const B300: ::speed_t = 7; -pub const B600: ::speed_t = 8; -pub const B1200: ::speed_t = 9; -pub const B1800: ::speed_t = 10; -pub const B2400: ::speed_t = 11; -pub const B4800: ::speed_t = 12; -pub const B9600: ::speed_t = 13; -pub const B19200: ::speed_t = 14; -pub const B38400: ::speed_t = 15; -pub const EXTA: ::speed_t = 14; -pub const EXTB: ::speed_t = 15; -pub const B57600: ::speed_t = 4097; -pub const B115200: ::speed_t = 4098; -pub const B230400: ::speed_t = 4099; -pub const B460800: ::speed_t = 4100; -pub const B500000: ::speed_t = 4101; -pub const B576000: ::speed_t = 4102; -pub const B921600: ::speed_t = 4103; -pub const B1000000: ::speed_t = 4104; -pub const B1152000: ::speed_t = 4105; -pub const B1500000: ::speed_t = 4106; -pub const B2000000: ::speed_t = 4107; -pub const B2500000: ::speed_t = 4108; -pub const B3000000: ::speed_t = 4109; -pub const B3500000: ::speed_t = 4110; -pub const B4000000: ::speed_t = 4111; +pub const OLCUC: crate::tcflag_t = 2; +pub const NLDLY: crate::tcflag_t = 256; +pub const CRDLY: crate::tcflag_t = 1536; +pub const TABDLY: crate::tcflag_t = 6144; +pub const BSDLY: crate::tcflag_t = 8192; +pub const FFDLY: crate::tcflag_t = 32768; +pub const VTDLY: crate::tcflag_t = 16384; +pub const XTABS: crate::tcflag_t = 6144; +pub const B0: crate::speed_t = 0; +pub const B50: crate::speed_t = 1; +pub const B75: crate::speed_t = 2; +pub const B110: crate::speed_t = 3; +pub const B134: crate::speed_t = 4; +pub const B150: crate::speed_t = 5; +pub const B200: crate::speed_t = 6; +pub const B300: crate::speed_t = 7; +pub const B600: crate::speed_t = 8; +pub const B1200: crate::speed_t = 9; +pub const B1800: crate::speed_t = 10; +pub const B2400: crate::speed_t = 11; +pub const B4800: crate::speed_t = 12; +pub const B9600: crate::speed_t = 13; +pub const B19200: crate::speed_t = 14; +pub const B38400: crate::speed_t = 15; +pub const EXTA: crate::speed_t = 14; +pub const EXTB: crate::speed_t = 15; +pub const B57600: crate::speed_t = 4097; +pub const B115200: crate::speed_t = 4098; +pub const B230400: crate::speed_t = 4099; +pub const B460800: crate::speed_t = 4100; +pub const B500000: crate::speed_t = 4101; +pub const B576000: crate::speed_t = 4102; +pub const B921600: crate::speed_t = 4103; +pub const B1000000: crate::speed_t = 4104; +pub const B1152000: crate::speed_t = 4105; +pub const B1500000: crate::speed_t = 4106; +pub const B2000000: crate::speed_t = 4107; +pub const B2500000: crate::speed_t = 4108; +pub const B3000000: crate::speed_t = 4109; +pub const B3500000: crate::speed_t = 4110; +pub const B4000000: crate::speed_t = 4111; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 32768; -pub const TOSTOP: ::tcflag_t = 256; -pub const FLUSHO: ::tcflag_t = 4096; -pub const EXTPROC: ::tcflag_t = 65536; +pub const IEXTEN: crate::tcflag_t = 32768; +pub const TOSTOP: crate::tcflag_t = 256; +pub const FLUSHO: crate::tcflag_t = 4096; +pub const EXTPROC: crate::tcflag_t = 65536; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; @@ -505,306 +509,306 @@ pub const REG_A0: usize = 10; pub const REG_S2: usize = 18; pub const REG_NARGS: usize = 8; -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_close: ::c_long = 57; -pub const SYS_fstat: ::c_long = 80; -pub const SYS_lseek: ::c_long = 62; -pub const SYS_mmap: ::c_long = 222; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_brk: ::c_long = 214; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_dup: ::c_long = 23; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_sendfile: ::c_long = 71; -pub const SYS_socket: ::c_long = 198; -pub const SYS_connect: ::c_long = 203; -pub const SYS_accept: ::c_long = 202; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_exit: ::c_long = 93; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_kill: ::c_long = 129; -pub const SYS_uname: ::c_long = 160; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semop: ::c_long = 193; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_flock: ::c_long = 32; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_truncate: ::c_long = 45; -pub const SYS_ftruncate: ::c_long = 46; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_umask: ::c_long = 166; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_times: ::c_long = 153; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_personality: ::c_long = 92; -pub const SYS_statfs: ::c_long = 43; -pub const SYS_fstatfs: ::c_long = 44; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_setrlimit: ::c_long = 164; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_sync: ::c_long = 81; -pub const SYS_acct: ::c_long = 89; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_mount: ::c_long = 40; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_futex: ::c_long = 98; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_fadvise64: ::c_long = 223; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_openat: ::c_long = 56; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_newfstatat: ::c_long = 79; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_setns: ::c_long = 268; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_rseq: ::c_long = 293; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_read: c_long = 63; +pub const SYS_write: c_long = 64; +pub const SYS_close: c_long = 57; +pub const SYS_fstat: c_long = 80; +pub const SYS_lseek: c_long = 62; +pub const SYS_mmap: c_long = 222; +pub const SYS_mprotect: c_long = 226; +pub const SYS_munmap: c_long = 215; +pub const SYS_brk: c_long = 214; +pub const SYS_rt_sigaction: c_long = 134; +pub const SYS_rt_sigprocmask: c_long = 135; +pub const SYS_rt_sigreturn: c_long = 139; +pub const SYS_ioctl: c_long = 29; +pub const SYS_pread64: c_long = 67; +pub const SYS_pwrite64: c_long = 68; +pub const SYS_readv: c_long = 65; +pub const SYS_writev: c_long = 66; +pub const SYS_sched_yield: c_long = 124; +pub const SYS_mremap: c_long = 216; +pub const SYS_msync: c_long = 227; +pub const SYS_mincore: c_long = 232; +pub const SYS_madvise: c_long = 233; +pub const SYS_shmget: c_long = 194; +pub const SYS_shmat: c_long = 196; +pub const SYS_shmctl: c_long = 195; +pub const SYS_dup: c_long = 23; +pub const SYS_nanosleep: c_long = 101; +pub const SYS_getitimer: c_long = 102; +pub const SYS_setitimer: c_long = 103; +pub const SYS_getpid: c_long = 172; +pub const SYS_sendfile: c_long = 71; +pub const SYS_socket: c_long = 198; +pub const SYS_connect: c_long = 203; +pub const SYS_accept: c_long = 202; +pub const SYS_sendto: c_long = 206; +pub const SYS_recvfrom: c_long = 207; +pub const SYS_sendmsg: c_long = 211; +pub const SYS_recvmsg: c_long = 212; +pub const SYS_shutdown: c_long = 210; +pub const SYS_bind: c_long = 200; +pub const SYS_listen: c_long = 201; +pub const SYS_getsockname: c_long = 204; +pub const SYS_getpeername: c_long = 205; +pub const SYS_socketpair: c_long = 199; +pub const SYS_setsockopt: c_long = 208; +pub const SYS_getsockopt: c_long = 209; +pub const SYS_clone: c_long = 220; +pub const SYS_execve: c_long = 221; +pub const SYS_exit: c_long = 93; +pub const SYS_wait4: c_long = 260; +pub const SYS_kill: c_long = 129; +pub const SYS_uname: c_long = 160; +pub const SYS_semget: c_long = 190; +pub const SYS_semop: c_long = 193; +pub const SYS_semctl: c_long = 191; +pub const SYS_shmdt: c_long = 197; +pub const SYS_msgget: c_long = 186; +pub const SYS_msgsnd: c_long = 189; +pub const SYS_msgrcv: c_long = 188; +pub const SYS_msgctl: c_long = 187; +pub const SYS_fcntl: c_long = 25; +pub const SYS_flock: c_long = 32; +pub const SYS_fsync: c_long = 82; +pub const SYS_fdatasync: c_long = 83; +pub const SYS_truncate: c_long = 45; +pub const SYS_ftruncate: c_long = 46; +pub const SYS_getcwd: c_long = 17; +pub const SYS_chdir: c_long = 49; +pub const SYS_fchdir: c_long = 50; +pub const SYS_fchmod: c_long = 52; +pub const SYS_fchown: c_long = 55; +pub const SYS_umask: c_long = 166; +pub const SYS_gettimeofday: c_long = 169; +pub const SYS_getrlimit: c_long = 163; +pub const SYS_getrusage: c_long = 165; +pub const SYS_sysinfo: c_long = 179; +pub const SYS_times: c_long = 153; +pub const SYS_ptrace: c_long = 117; +pub const SYS_getuid: c_long = 174; +pub const SYS_syslog: c_long = 116; +pub const SYS_getgid: c_long = 176; +pub const SYS_setuid: c_long = 146; +pub const SYS_setgid: c_long = 144; +pub const SYS_geteuid: c_long = 175; +pub const SYS_getegid: c_long = 177; +pub const SYS_setpgid: c_long = 154; +pub const SYS_getppid: c_long = 173; +pub const SYS_setsid: c_long = 157; +pub const SYS_setreuid: c_long = 145; +pub const SYS_setregid: c_long = 143; +pub const SYS_getgroups: c_long = 158; +pub const SYS_setgroups: c_long = 159; +pub const SYS_setresuid: c_long = 147; +pub const SYS_getresuid: c_long = 148; +pub const SYS_setresgid: c_long = 149; +pub const SYS_getresgid: c_long = 150; +pub const SYS_getpgid: c_long = 155; +pub const SYS_setfsuid: c_long = 151; +pub const SYS_setfsgid: c_long = 152; +pub const SYS_getsid: c_long = 156; +pub const SYS_capget: c_long = 90; +pub const SYS_capset: c_long = 91; +pub const SYS_rt_sigpending: c_long = 136; +pub const SYS_rt_sigtimedwait: c_long = 137; +pub const SYS_rt_sigqueueinfo: c_long = 138; +pub const SYS_rt_sigsuspend: c_long = 133; +pub const SYS_sigaltstack: c_long = 132; +pub const SYS_personality: c_long = 92; +pub const SYS_statfs: c_long = 43; +pub const SYS_fstatfs: c_long = 44; +pub const SYS_getpriority: c_long = 141; +pub const SYS_setpriority: c_long = 140; +pub const SYS_sched_setparam: c_long = 118; +pub const SYS_sched_getparam: c_long = 121; +pub const SYS_sched_setscheduler: c_long = 119; +pub const SYS_sched_getscheduler: c_long = 120; +pub const SYS_sched_get_priority_max: c_long = 125; +pub const SYS_sched_get_priority_min: c_long = 126; +pub const SYS_sched_rr_get_interval: c_long = 127; +pub const SYS_mlock: c_long = 228; +pub const SYS_munlock: c_long = 229; +pub const SYS_mlockall: c_long = 230; +pub const SYS_munlockall: c_long = 231; +pub const SYS_vhangup: c_long = 58; +pub const SYS_pivot_root: c_long = 41; +pub const SYS_prctl: c_long = 167; +pub const SYS_adjtimex: c_long = 171; +pub const SYS_setrlimit: c_long = 164; +pub const SYS_chroot: c_long = 51; +pub const SYS_sync: c_long = 81; +pub const SYS_acct: c_long = 89; +pub const SYS_settimeofday: c_long = 170; +pub const SYS_mount: c_long = 40; +pub const SYS_umount2: c_long = 39; +pub const SYS_swapon: c_long = 224; +pub const SYS_swapoff: c_long = 225; +pub const SYS_reboot: c_long = 142; +pub const SYS_sethostname: c_long = 161; +pub const SYS_setdomainname: c_long = 162; +pub const SYS_init_module: c_long = 105; +pub const SYS_delete_module: c_long = 106; +pub const SYS_quotactl: c_long = 60; +pub const SYS_nfsservctl: c_long = 42; +pub const SYS_gettid: c_long = 178; +pub const SYS_readahead: c_long = 213; +pub const SYS_setxattr: c_long = 5; +pub const SYS_lsetxattr: c_long = 6; +pub const SYS_fsetxattr: c_long = 7; +pub const SYS_getxattr: c_long = 8; +pub const SYS_lgetxattr: c_long = 9; +pub const SYS_fgetxattr: c_long = 10; +pub const SYS_listxattr: c_long = 11; +pub const SYS_llistxattr: c_long = 12; +pub const SYS_flistxattr: c_long = 13; +pub const SYS_removexattr: c_long = 14; +pub const SYS_lremovexattr: c_long = 15; +pub const SYS_fremovexattr: c_long = 16; +pub const SYS_tkill: c_long = 130; +pub const SYS_futex: c_long = 98; +pub const SYS_sched_setaffinity: c_long = 122; +pub const SYS_sched_getaffinity: c_long = 123; +pub const SYS_io_setup: c_long = 0; +pub const SYS_io_destroy: c_long = 1; +pub const SYS_io_getevents: c_long = 4; +pub const SYS_io_submit: c_long = 2; +pub const SYS_io_cancel: c_long = 3; +pub const SYS_lookup_dcookie: c_long = 18; +pub const SYS_remap_file_pages: c_long = 234; +pub const SYS_getdents64: c_long = 61; +pub const SYS_set_tid_address: c_long = 96; +pub const SYS_restart_syscall: c_long = 128; +pub const SYS_semtimedop: c_long = 192; +pub const SYS_fadvise64: c_long = 223; +pub const SYS_timer_create: c_long = 107; +pub const SYS_timer_settime: c_long = 110; +pub const SYS_timer_gettime: c_long = 108; +pub const SYS_timer_getoverrun: c_long = 109; +pub const SYS_timer_delete: c_long = 111; +pub const SYS_clock_settime: c_long = 112; +pub const SYS_clock_gettime: c_long = 113; +pub const SYS_clock_getres: c_long = 114; +pub const SYS_clock_nanosleep: c_long = 115; +pub const SYS_exit_group: c_long = 94; +pub const SYS_epoll_ctl: c_long = 21; +pub const SYS_tgkill: c_long = 131; +pub const SYS_mbind: c_long = 235; +pub const SYS_set_mempolicy: c_long = 237; +pub const SYS_get_mempolicy: c_long = 236; +pub const SYS_mq_open: c_long = 180; +pub const SYS_mq_unlink: c_long = 181; +pub const SYS_mq_timedsend: c_long = 182; +pub const SYS_mq_timedreceive: c_long = 183; +pub const SYS_mq_notify: c_long = 184; +pub const SYS_mq_getsetattr: c_long = 185; +pub const SYS_kexec_load: c_long = 104; +pub const SYS_waitid: c_long = 95; +pub const SYS_add_key: c_long = 217; +pub const SYS_request_key: c_long = 218; +pub const SYS_keyctl: c_long = 219; +pub const SYS_ioprio_set: c_long = 30; +pub const SYS_ioprio_get: c_long = 31; +pub const SYS_inotify_add_watch: c_long = 27; +pub const SYS_inotify_rm_watch: c_long = 28; +pub const SYS_migrate_pages: c_long = 238; +pub const SYS_openat: c_long = 56; +pub const SYS_mkdirat: c_long = 34; +pub const SYS_mknodat: c_long = 33; +pub const SYS_fchownat: c_long = 54; +pub const SYS_newfstatat: c_long = 79; +pub const SYS_unlinkat: c_long = 35; +pub const SYS_linkat: c_long = 37; +pub const SYS_symlinkat: c_long = 36; +pub const SYS_readlinkat: c_long = 78; +pub const SYS_fchmodat: c_long = 53; +pub const SYS_faccessat: c_long = 48; +pub const SYS_pselect6: c_long = 72; +pub const SYS_ppoll: c_long = 73; +pub const SYS_unshare: c_long = 97; +pub const SYS_set_robust_list: c_long = 99; +pub const SYS_get_robust_list: c_long = 100; +pub const SYS_splice: c_long = 76; +pub const SYS_tee: c_long = 77; +pub const SYS_sync_file_range: c_long = 84; +pub const SYS_vmsplice: c_long = 75; +pub const SYS_move_pages: c_long = 239; +pub const SYS_utimensat: c_long = 88; +pub const SYS_epoll_pwait: c_long = 22; +pub const SYS_timerfd_create: c_long = 85; +pub const SYS_fallocate: c_long = 47; +pub const SYS_timerfd_settime: c_long = 86; +pub const SYS_timerfd_gettime: c_long = 87; +pub const SYS_accept4: c_long = 242; +pub const SYS_signalfd4: c_long = 74; +pub const SYS_eventfd2: c_long = 19; +pub const SYS_epoll_create1: c_long = 20; +pub const SYS_dup3: c_long = 24; +pub const SYS_pipe2: c_long = 59; +pub const SYS_inotify_init1: c_long = 26; +pub const SYS_preadv: c_long = 69; +pub const SYS_pwritev: c_long = 70; +pub const SYS_rt_tgsigqueueinfo: c_long = 240; +pub const SYS_perf_event_open: c_long = 241; +pub const SYS_recvmmsg: c_long = 243; +pub const SYS_fanotify_init: c_long = 262; +pub const SYS_fanotify_mark: c_long = 263; +pub const SYS_prlimit64: c_long = 261; +pub const SYS_name_to_handle_at: c_long = 264; +pub const SYS_open_by_handle_at: c_long = 265; +pub const SYS_clock_adjtime: c_long = 266; +pub const SYS_syncfs: c_long = 267; +pub const SYS_sendmmsg: c_long = 269; +pub const SYS_setns: c_long = 268; +pub const SYS_getcpu: c_long = 168; +pub const SYS_process_vm_readv: c_long = 270; +pub const SYS_process_vm_writev: c_long = 271; +pub const SYS_kcmp: c_long = 272; +pub const SYS_finit_module: c_long = 273; +pub const SYS_sched_setattr: c_long = 274; +pub const SYS_sched_getattr: c_long = 275; +pub const SYS_renameat2: c_long = 276; +pub const SYS_seccomp: c_long = 277; +pub const SYS_getrandom: c_long = 278; +pub const SYS_memfd_create: c_long = 279; +pub const SYS_bpf: c_long = 280; +pub const SYS_execveat: c_long = 281; +pub const SYS_userfaultfd: c_long = 282; +pub const SYS_membarrier: c_long = 283; +pub const SYS_mlock2: c_long = 284; +pub const SYS_copy_file_range: c_long = 285; +pub const SYS_preadv2: c_long = 286; +pub const SYS_pwritev2: c_long = 287; +pub const SYS_pkey_mprotect: c_long = 288; +pub const SYS_pkey_alloc: c_long = 289; +pub const SYS_pkey_free: c_long = 290; +pub const SYS_statx: c_long = 291; +pub const SYS_rseq: c_long = 293; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index fac8cd0a85d83..d14309f45a8ed 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -1,159 +1,163 @@ //! SPARC-specific definitions for 32-bit linux-like values +use crate::{ + c_int, c_long, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, c_void, off64_t, off_t, size_t, +}; + pub type c_char = i8; pub type wchar_t = i32; s! { pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, + pub sa_flags: c_int, + pub sa_restorer: Option, } pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - 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_fsid: ::fsid_t, - - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - f_spare: [::__fsword_t; 5], + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, + + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + f_spare: [crate::__fsword_t; 5], } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - _pad: [::c_int; 29], + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, + _pad: [c_int; 29], _align: [usize; 0], } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - __reserved: ::c_short, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off64_t, + pub l_len: off64_t, + pub l_pid: crate::pid_t, + __reserved: c_short, } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: ::c_ushort, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_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, - __reserved: [::c_long; 2], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino64_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad2: c_ushort, + pub st_size: off64_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __reserved: [c_long; 2], } pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], + pub f_fsid: crate::fsid_t, + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + pub f_flags: crate::__fsword_t, + pub f_spare: [crate::__fsword_t; 4], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - __pad1: ::c_ushort, - pub mode: ::c_ushort, - __pad2: ::c_ushort, - pub __seq: ::c_ushort, - __unused1: ::c_ulonglong, - __unused2: ::c_ulonglong, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + __pad1: c_ushort, + pub mode: c_ushort, + __pad2: c_ushort, + pub __seq: c_ushort, + __unused1: c_ulonglong, + __unused2: c_ulonglong, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - __pad1: ::c_uint, - pub shm_atime: ::time_t, - __pad2: ::c_uint, - pub shm_dtime: ::time_t, - __pad3: ::c_uint, - pub shm_ctime: ::time_t, - pub shm_segsz: ::size_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __reserved1: ::c_ulong, - __reserved2: ::c_ulong, + pub shm_perm: crate::ipc_perm, + __pad1: c_uint, + pub shm_atime: crate::time_t, + __pad2: c_uint, + pub shm_dtime: crate::time_t, + __pad3: c_uint, + pub shm_ctime: crate::time_t, + pub shm_segsz: size_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __reserved1: c_ulong, + __reserved2: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - __pad1: ::c_uint, - pub msg_stime: ::time_t, - __pad2: ::c_uint, - pub msg_rtime: ::time_t, - __pad3: ::c_uint, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ushort, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved1: ::c_ulong, - __glibc_reserved2: ::c_ulong, + pub msg_perm: crate::ipc_perm, + __pad1: c_uint, + pub msg_stime: crate::time_t, + __pad2: c_uint, + pub msg_rtime: crate::time_t, + __pad3: c_uint, + pub msg_ctime: crate::time_t, + __msg_cbytes: c_ushort, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __glibc_reserved1: c_ulong, + __glibc_reserved2: c_ulong, } } @@ -166,189 +170,189 @@ s_no_extra_traits! { } pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; - -pub const O_APPEND: ::c_int = 0x8; -pub const O_CREAT: ::c_int = 0x200; -pub const O_EXCL: ::c_int = 0x800; -pub const O_NOCTTY: ::c_int = 0x8000; -pub const O_NONBLOCK: ::c_int = 0x4000; -pub const O_SYNC: ::c_int = 0x802000; -pub const O_RSYNC: ::c_int = 0x802000; -pub const O_DSYNC: ::c_int = 0x2000; -pub const O_FSYNC: ::c_int = 0x802000; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 0x0200; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const EDEADLK: ::c_int = 78; -pub const ENAMETOOLONG: ::c_int = 63; -pub const ENOLCK: ::c_int = 79; -pub const ENOSYS: ::c_int = 90; -pub const ENOTEMPTY: ::c_int = 66; -pub const ELOOP: ::c_int = 62; -pub const ENOMSG: ::c_int = 75; -pub const EIDRM: ::c_int = 77; -pub const ECHRNG: ::c_int = 94; -pub const EL2NSYNC: ::c_int = 95; -pub const EL3HLT: ::c_int = 96; -pub const EL3RST: ::c_int = 97; -pub const ELNRNG: ::c_int = 98; -pub const EUNATCH: ::c_int = 99; -pub const ENOCSI: ::c_int = 100; -pub const EL2HLT: ::c_int = 101; -pub const EBADE: ::c_int = 102; -pub const EBADR: ::c_int = 103; -pub const EXFULL: ::c_int = 104; -pub const ENOANO: ::c_int = 105; -pub const EBADRQC: ::c_int = 106; -pub const EBADSLT: ::c_int = 107; -pub const EMULTIHOP: ::c_int = 87; -pub const EOVERFLOW: ::c_int = 92; -pub const ENOTUNIQ: ::c_int = 115; -pub const EBADFD: ::c_int = 93; -pub const EBADMSG: ::c_int = 76; -pub const EREMCHG: ::c_int = 89; -pub const ELIBACC: ::c_int = 114; -pub const ELIBBAD: ::c_int = 112; -pub const ELIBSCN: ::c_int = 124; -pub const ELIBMAX: ::c_int = 123; -pub const ELIBEXEC: ::c_int = 110; -pub const EILSEQ: ::c_int = 122; -pub const ERESTART: ::c_int = 116; -pub const ESTRPIPE: ::c_int = 91; -pub const EUSERS: ::c_int = 68; -pub const ENOTSOCK: ::c_int = 38; -pub const EDESTADDRREQ: ::c_int = 39; -pub const EMSGSIZE: ::c_int = 40; -pub const EPROTOTYPE: ::c_int = 41; -pub const ENOPROTOOPT: ::c_int = 42; -pub const EPROTONOSUPPORT: ::c_int = 43; -pub const ESOCKTNOSUPPORT: ::c_int = 44; -pub const EOPNOTSUPP: ::c_int = 45; -pub const EPFNOSUPPORT: ::c_int = 46; -pub const EAFNOSUPPORT: ::c_int = 47; -pub const EADDRINUSE: ::c_int = 48; -pub const EADDRNOTAVAIL: ::c_int = 49; -pub const ENETDOWN: ::c_int = 50; -pub const ENETUNREACH: ::c_int = 51; -pub const ENETRESET: ::c_int = 52; -pub const ECONNABORTED: ::c_int = 53; -pub const ECONNRESET: ::c_int = 54; -pub const ENOBUFS: ::c_int = 55; -pub const EISCONN: ::c_int = 56; -pub const ENOTCONN: ::c_int = 57; -pub const ESHUTDOWN: ::c_int = 58; -pub const ETOOMANYREFS: ::c_int = 59; -pub const ETIMEDOUT: ::c_int = 60; -pub const ECONNREFUSED: ::c_int = 61; -pub const EHOSTDOWN: ::c_int = 64; -pub const EHOSTUNREACH: ::c_int = 65; -pub const EALREADY: ::c_int = 37; -pub const EINPROGRESS: ::c_int = 36; -pub const ESTALE: ::c_int = 70; -pub const EDQUOT: ::c_int = 69; -pub const ENOMEDIUM: ::c_int = 125; -pub const EMEDIUMTYPE: ::c_int = 126; -pub const ECANCELED: ::c_int = 127; -pub const ENOKEY: ::c_int = 128; -pub const EKEYEXPIRED: ::c_int = 129; -pub const EKEYREVOKED: ::c_int = 130; -pub const EKEYREJECTED: ::c_int = 131; -pub const EOWNERDEAD: ::c_int = 132; -pub const ENOTRECOVERABLE: ::c_int = 133; -pub const EHWPOISON: ::c_int = 135; -pub const ERFKILL: ::c_int = 134; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const SA_SIGINFO: ::c_int = 0x200; -pub const SA_NOCLDWAIT: ::c_int = 0x100; - -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 20; -pub const SIGBUS: ::c_int = 10; -pub const SIGUSR1: ::c_int = 30; -pub const SIGUSR2: ::c_int = 31; -pub const SIGCONT: ::c_int = 19; -pub const SIGSTOP: ::c_int = 17; -pub const SIGTSTP: ::c_int = 18; -pub const SIGURG: ::c_int = 16; -pub const SIGIO: ::c_int = 23; -pub const SIGSYS: ::c_int = 12; -pub const SIGPOLL: ::c_int = 23; -pub const SIGPWR: ::c_int = 29; -pub const SIG_SETMASK: ::c_int = 4; -pub const SIG_BLOCK: ::c_int = 1; -pub const SIG_UNBLOCK: ::c_int = 2; - -pub const POLLWRNORM: ::c_short = 4; -pub const POLLWRBAND: ::c_short = 0x100; - -pub const O_ASYNC: ::c_int = 0x40; -pub const O_NDELAY: ::c_int = 0x4004; - -pub const EFD_NONBLOCK: ::c_int = 0x4000; - -pub const F_GETLK: ::c_int = 7; -pub const F_GETOWN: ::c_int = 5; -pub const F_SETOWN: ::c_int = 6; - -pub const SFD_NONBLOCK: ::c_int = 0x4000; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -pub const O_DIRECTORY: ::c_int = 0o200000; -pub const O_NOFOLLOW: ::c_int = 0o400000; -pub const O_LARGEFILE: ::c_int = 0x40000; -pub const O_DIRECT: ::c_int = 0x100000; - -pub const MAP_LOCKED: ::c_int = 0x0100; -pub const MAP_NORESERVE: ::c_int = 0x00040; - -pub const EDEADLOCK: ::c_int = 108; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; - -pub const MCL_CURRENT: ::c_int = 0x2000; -pub const MCL_FUTURE: ::c_int = 0x4000; -pub const MCL_ONFAULT: ::c_int = 0x8000; - -pub const SIGSTKSZ: ::size_t = 16384; -pub const MINSIGSTKSZ: ::size_t = 4096; -pub const CBAUD: ::tcflag_t = 0x0000100f; -pub const TAB1: ::tcflag_t = 0x800; -pub const TAB2: ::tcflag_t = 0x1000; -pub const TAB3: ::tcflag_t = 0x1800; -pub const CR1: ::tcflag_t = 0x200; -pub const CR2: ::tcflag_t = 0x400; -pub const CR3: ::tcflag_t = 0x600; -pub const FF1: ::tcflag_t = 0x8000; -pub const BS1: ::tcflag_t = 0x2000; -pub const VT1: ::tcflag_t = 0x4000; +pub const RTLD_DEEPBIND: c_int = 0x8; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_NOLOAD: c_int = 0x4; + +pub const O_APPEND: c_int = 0x8; +pub const O_CREAT: c_int = 0x200; +pub const O_EXCL: c_int = 0x800; +pub const O_NOCTTY: c_int = 0x8000; +pub const O_NONBLOCK: c_int = 0x4000; +pub const O_SYNC: c_int = 0x802000; +pub const O_RSYNC: c_int = 0x802000; +pub const O_DSYNC: c_int = 0x2000; +pub const O_FSYNC: c_int = 0x802000; + +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MAP_GROWSDOWN: c_int = 0x0200; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_ANONYMOUS: c_int = 0x0020; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_SYNC: c_int = 0x080000; + +pub const EDEADLK: c_int = 78; +pub const ENAMETOOLONG: c_int = 63; +pub const ENOLCK: c_int = 79; +pub const ENOSYS: c_int = 90; +pub const ENOTEMPTY: c_int = 66; +pub const ELOOP: c_int = 62; +pub const ENOMSG: c_int = 75; +pub const EIDRM: c_int = 77; +pub const ECHRNG: c_int = 94; +pub const EL2NSYNC: c_int = 95; +pub const EL3HLT: c_int = 96; +pub const EL3RST: c_int = 97; +pub const ELNRNG: c_int = 98; +pub const EUNATCH: c_int = 99; +pub const ENOCSI: c_int = 100; +pub const EL2HLT: c_int = 101; +pub const EBADE: c_int = 102; +pub const EBADR: c_int = 103; +pub const EXFULL: c_int = 104; +pub const ENOANO: c_int = 105; +pub const EBADRQC: c_int = 106; +pub const EBADSLT: c_int = 107; +pub const EMULTIHOP: c_int = 87; +pub const EOVERFLOW: c_int = 92; +pub const ENOTUNIQ: c_int = 115; +pub const EBADFD: c_int = 93; +pub const EBADMSG: c_int = 76; +pub const EREMCHG: c_int = 89; +pub const ELIBACC: c_int = 114; +pub const ELIBBAD: c_int = 112; +pub const ELIBSCN: c_int = 124; +pub const ELIBMAX: c_int = 123; +pub const ELIBEXEC: c_int = 110; +pub const EILSEQ: c_int = 122; +pub const ERESTART: c_int = 116; +pub const ESTRPIPE: c_int = 91; +pub const EUSERS: c_int = 68; +pub const ENOTSOCK: c_int = 38; +pub const EDESTADDRREQ: c_int = 39; +pub const EMSGSIZE: c_int = 40; +pub const EPROTOTYPE: c_int = 41; +pub const ENOPROTOOPT: c_int = 42; +pub const EPROTONOSUPPORT: c_int = 43; +pub const ESOCKTNOSUPPORT: c_int = 44; +pub const EOPNOTSUPP: c_int = 45; +pub const EPFNOSUPPORT: c_int = 46; +pub const EAFNOSUPPORT: c_int = 47; +pub const EADDRINUSE: c_int = 48; +pub const EADDRNOTAVAIL: c_int = 49; +pub const ENETDOWN: c_int = 50; +pub const ENETUNREACH: c_int = 51; +pub const ENETRESET: c_int = 52; +pub const ECONNABORTED: c_int = 53; +pub const ECONNRESET: c_int = 54; +pub const ENOBUFS: c_int = 55; +pub const EISCONN: c_int = 56; +pub const ENOTCONN: c_int = 57; +pub const ESHUTDOWN: c_int = 58; +pub const ETOOMANYREFS: c_int = 59; +pub const ETIMEDOUT: c_int = 60; +pub const ECONNREFUSED: c_int = 61; +pub const EHOSTDOWN: c_int = 64; +pub const EHOSTUNREACH: c_int = 65; +pub const EALREADY: c_int = 37; +pub const EINPROGRESS: c_int = 36; +pub const ESTALE: c_int = 70; +pub const EDQUOT: c_int = 69; +pub const ENOMEDIUM: c_int = 125; +pub const EMEDIUMTYPE: c_int = 126; +pub const ECANCELED: c_int = 127; +pub const ENOKEY: c_int = 128; +pub const EKEYEXPIRED: c_int = 129; +pub const EKEYREVOKED: c_int = 130; +pub const EKEYREJECTED: c_int = 131; +pub const EOWNERDEAD: c_int = 132; +pub const ENOTRECOVERABLE: c_int = 133; +pub const EHWPOISON: c_int = 135; +pub const ERFKILL: c_int = 134; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; + +pub const SA_SIGINFO: c_int = 0x200; +pub const SA_NOCLDWAIT: c_int = 0x100; + +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGCHLD: c_int = 20; +pub const SIGBUS: c_int = 10; +pub const SIGUSR1: c_int = 30; +pub const SIGUSR2: c_int = 31; +pub const SIGCONT: c_int = 19; +pub const SIGSTOP: c_int = 17; +pub const SIGTSTP: c_int = 18; +pub const SIGURG: c_int = 16; +pub const SIGIO: c_int = 23; +pub const SIGSYS: c_int = 12; +pub const SIGPOLL: c_int = 23; +pub const SIGPWR: c_int = 29; +pub const SIG_SETMASK: c_int = 4; +pub const SIG_BLOCK: c_int = 1; +pub const SIG_UNBLOCK: c_int = 2; + +pub const POLLWRNORM: c_short = 4; +pub const POLLWRBAND: c_short = 0x100; + +pub const O_ASYNC: c_int = 0x40; +pub const O_NDELAY: c_int = 0x4004; + +pub const EFD_NONBLOCK: c_int = 0x4000; + +pub const F_GETLK: c_int = 7; +pub const F_GETOWN: c_int = 5; +pub const F_SETOWN: c_int = 6; + +pub const SFD_NONBLOCK: c_int = 0x4000; + +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; + +pub const O_DIRECTORY: c_int = 0o200000; +pub const O_NOFOLLOW: c_int = 0o400000; +pub const O_LARGEFILE: c_int = 0x40000; +pub const O_DIRECT: c_int = 0x100000; + +pub const MAP_LOCKED: c_int = 0x0100; +pub const MAP_NORESERVE: c_int = 0x00040; + +pub const EDEADLOCK: c_int = 108; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; + +pub const MCL_CURRENT: c_int = 0x2000; +pub const MCL_FUTURE: c_int = 0x4000; +pub const MCL_ONFAULT: c_int = 0x8000; + +pub const SIGSTKSZ: size_t = 16384; +pub const MINSIGSTKSZ: size_t = 4096; +pub const CBAUD: crate::tcflag_t = 0x0000100f; +pub const TAB1: crate::tcflag_t = 0x800; +pub const TAB2: crate::tcflag_t = 0x1000; +pub const TAB3: crate::tcflag_t = 0x1800; +pub const CR1: crate::tcflag_t = 0x200; +pub const CR2: crate::tcflag_t = 0x400; +pub const CR3: crate::tcflag_t = 0x600; +pub const FF1: crate::tcflag_t = 0x8000; +pub const BS1: crate::tcflag_t = 0x2000; +pub const VT1: crate::tcflag_t = 0x4000; pub const VWERASE: usize = 0xe; pub const VREPRINT: usize = 0xc; pub const VSUSP: usize = 0xa; @@ -356,467 +360,467 @@ pub const VSTART: usize = 0x8; pub const VSTOP: usize = 0x9; pub const VDISCARD: usize = 0xd; pub const VTIME: usize = 0x5; -pub const IXON: ::tcflag_t = 0x400; -pub const IXOFF: ::tcflag_t = 0x1000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x30; -pub const CS6: ::tcflag_t = 0x10; -pub const CS7: ::tcflag_t = 0x20; -pub const CS8: ::tcflag_t = 0x30; -pub const CSTOPB: ::tcflag_t = 0x40; -pub const CREAD: ::tcflag_t = 0x80; -pub const PARENB: ::tcflag_t = 0x100; -pub const PARODD: ::tcflag_t = 0x200; -pub const HUPCL: ::tcflag_t = 0x400; -pub const CLOCAL: ::tcflag_t = 0x800; -pub const ECHOKE: ::tcflag_t = 0x800; -pub const ECHOE: ::tcflag_t = 0x10; -pub const ECHOK: ::tcflag_t = 0x20; -pub const ECHONL: ::tcflag_t = 0x40; -pub const ECHOPRT: ::tcflag_t = 0x400; -pub const ECHOCTL: ::tcflag_t = 0x200; -pub const ISIG: ::tcflag_t = 0x1; -pub const ICANON: ::tcflag_t = 0x2; -pub const PENDIN: ::tcflag_t = 0x4000; -pub const NOFLSH: ::tcflag_t = 0x80; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0x00001000; +pub const IXON: crate::tcflag_t = 0x400; +pub const IXOFF: crate::tcflag_t = 0x1000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x30; +pub const CS6: crate::tcflag_t = 0x10; +pub const CS7: crate::tcflag_t = 0x20; +pub const CS8: crate::tcflag_t = 0x30; +pub const CSTOPB: crate::tcflag_t = 0x40; +pub const CREAD: crate::tcflag_t = 0x80; +pub const PARENB: crate::tcflag_t = 0x100; +pub const PARODD: crate::tcflag_t = 0x200; +pub const HUPCL: crate::tcflag_t = 0x400; +pub const CLOCAL: crate::tcflag_t = 0x800; +pub const ECHOKE: crate::tcflag_t = 0x800; +pub const ECHOE: crate::tcflag_t = 0x10; +pub const ECHOK: crate::tcflag_t = 0x20; +pub const ECHONL: crate::tcflag_t = 0x40; +pub const ECHOPRT: crate::tcflag_t = 0x400; +pub const ECHOCTL: crate::tcflag_t = 0x200; +pub const ISIG: crate::tcflag_t = 0x1; +pub const ICANON: crate::tcflag_t = 0x2; +pub const PENDIN: crate::tcflag_t = 0x4000; +pub const NOFLSH: crate::tcflag_t = 0x80; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0x00001000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0x1001; -pub const B115200: ::speed_t = 0x1002; -pub const B230400: ::speed_t = 0x1003; -pub const B460800: ::speed_t = 0x1004; -pub const B76800: ::speed_t = 0x1005; -pub const B153600: ::speed_t = 0x1006; -pub const B307200: ::speed_t = 0x1007; -pub const B614400: ::speed_t = 0x1008; -pub const B921600: ::speed_t = 0x1009; -pub const B500000: ::speed_t = 0x100a; -pub const B576000: ::speed_t = 0x100b; -pub const B1000000: ::speed_t = 0x100c; -pub const B1152000: ::speed_t = 0x100d; -pub const B1500000: ::speed_t = 0x100e; -pub const B2000000: ::speed_t = 0x100f; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; + +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const B57600: crate::speed_t = 0x1001; +pub const B115200: crate::speed_t = 0x1002; +pub const B230400: crate::speed_t = 0x1003; +pub const B460800: crate::speed_t = 0x1004; +pub const B76800: crate::speed_t = 0x1005; +pub const B153600: crate::speed_t = 0x1006; +pub const B307200: crate::speed_t = 0x1007; +pub const B614400: crate::speed_t = 0x1008; +pub const B921600: crate::speed_t = 0x1009; +pub const B500000: crate::speed_t = 0x100a; +pub const B576000: crate::speed_t = 0x100b; +pub const B1000000: crate::speed_t = 0x100c; +pub const B1152000: crate::speed_t = 0x100d; +pub const B1500000: crate::speed_t = 0x100e; +pub const B2000000: crate::speed_t = 0x100f; pub const VEOL: usize = 5; pub const VEOL2: usize = 6; pub const VMIN: usize = 4; -pub const IEXTEN: ::tcflag_t = 0x8000; -pub const TOSTOP: ::tcflag_t = 0x100; -pub const FLUSHO: ::tcflag_t = 0x1000; -pub const EXTPROC: ::tcflag_t = 0x10000; - -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_wait4: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execv: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_chown: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_brk: ::c_long = 17; -pub const SYS_perfctr: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_capget: ::c_long = 21; -pub const SYS_capset: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_vmsplice: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_sigaltstack: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_lchown32: ::c_long = 31; -pub const SYS_fchown32: ::c_long = 32; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_chown32: ::c_long = 35; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_stat: ::c_long = 38; -pub const SYS_sendfile: ::c_long = 39; -pub const SYS_lstat: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_getuid32: ::c_long = 44; -pub const SYS_umount2: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_getgid32: ::c_long = 53; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_reboot: ::c_long = 55; -pub const SYS_mmap2: ::c_long = 56; -pub const SYS_symlink: ::c_long = 57; -pub const SYS_readlink: ::c_long = 58; -pub const SYS_execve: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_fstat: ::c_long = 62; -pub const SYS_fstat64: ::c_long = 63; -pub const SYS_getpagesize: ::c_long = 64; -pub const SYS_msync: ::c_long = 65; -pub const SYS_vfork: ::c_long = 66; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_geteuid32: ::c_long = 69; -pub const SYS_getegid32: ::c_long = 70; -pub const SYS_mmap: ::c_long = 71; -pub const SYS_setreuid32: ::c_long = 72; -pub const SYS_munmap: ::c_long = 73; -pub const SYS_mprotect: ::c_long = 74; -pub const SYS_madvise: ::c_long = 75; -pub const SYS_vhangup: ::c_long = 76; -pub const SYS_truncate64: ::c_long = 77; -pub const SYS_mincore: ::c_long = 78; -pub const SYS_getgroups: ::c_long = 79; -pub const SYS_setgroups: ::c_long = 80; -pub const SYS_getpgrp: ::c_long = 81; -pub const SYS_setgroups32: ::c_long = 82; -pub const SYS_setitimer: ::c_long = 83; -pub const SYS_ftruncate64: ::c_long = 84; -pub const SYS_swapon: ::c_long = 85; -pub const SYS_getitimer: ::c_long = 86; -pub const SYS_setuid32: ::c_long = 87; -pub const SYS_sethostname: ::c_long = 88; -pub const SYS_setgid32: ::c_long = 89; -pub const SYS_dup2: ::c_long = 90; -pub const SYS_setfsuid32: ::c_long = 91; -pub const SYS_fcntl: ::c_long = 92; -pub const SYS_select: ::c_long = 93; -pub const SYS_setfsgid32: ::c_long = 94; -pub const SYS_fsync: ::c_long = 95; -pub const SYS_setpriority: ::c_long = 96; -pub const SYS_socket: ::c_long = 97; -pub const SYS_connect: ::c_long = 98; -pub const SYS_accept: ::c_long = 99; -pub const SYS_getpriority: ::c_long = 100; -pub const SYS_rt_sigreturn: ::c_long = 101; -pub const SYS_rt_sigaction: ::c_long = 102; -pub const SYS_rt_sigprocmask: ::c_long = 103; -pub const SYS_rt_sigpending: ::c_long = 104; -pub const SYS_rt_sigtimedwait: ::c_long = 105; -pub const SYS_rt_sigqueueinfo: ::c_long = 106; -pub const SYS_rt_sigsuspend: ::c_long = 107; -pub const SYS_setresuid32: ::c_long = 108; -pub const SYS_getresuid32: ::c_long = 109; -pub const SYS_setresgid32: ::c_long = 110; -pub const SYS_getresgid32: ::c_long = 111; -pub const SYS_setregid32: ::c_long = 112; -pub const SYS_recvmsg: ::c_long = 113; -pub const SYS_sendmsg: ::c_long = 114; -pub const SYS_getgroups32: ::c_long = 115; -pub const SYS_gettimeofday: ::c_long = 116; -pub const SYS_getrusage: ::c_long = 117; -pub const SYS_getsockopt: ::c_long = 118; -pub const SYS_getcwd: ::c_long = 119; -pub const SYS_readv: ::c_long = 120; -pub const SYS_writev: ::c_long = 121; -pub const SYS_settimeofday: ::c_long = 122; -pub const SYS_fchown: ::c_long = 123; -pub const SYS_fchmod: ::c_long = 124; -pub const SYS_recvfrom: ::c_long = 125; -pub const SYS_setreuid: ::c_long = 126; -pub const SYS_setregid: ::c_long = 127; -pub const SYS_rename: ::c_long = 128; -pub const SYS_truncate: ::c_long = 129; -pub const SYS_ftruncate: ::c_long = 130; -pub const SYS_flock: ::c_long = 131; -pub const SYS_lstat64: ::c_long = 132; -pub const SYS_sendto: ::c_long = 133; -pub const SYS_shutdown: ::c_long = 134; -pub const SYS_socketpair: ::c_long = 135; -pub const SYS_mkdir: ::c_long = 136; -pub const SYS_rmdir: ::c_long = 137; -pub const SYS_utimes: ::c_long = 138; -pub const SYS_stat64: ::c_long = 139; -pub const SYS_sendfile64: ::c_long = 140; -pub const SYS_getpeername: ::c_long = 141; -pub const SYS_futex: ::c_long = 142; -pub const SYS_gettid: ::c_long = 143; -pub const SYS_getrlimit: ::c_long = 144; -pub const SYS_setrlimit: ::c_long = 145; -pub const SYS_pivot_root: ::c_long = 146; -pub const SYS_prctl: ::c_long = 147; -pub const SYS_pciconfig_read: ::c_long = 148; -pub const SYS_pciconfig_write: ::c_long = 149; -pub const SYS_getsockname: ::c_long = 150; -pub const SYS_inotify_init: ::c_long = 151; -pub const SYS_inotify_add_watch: ::c_long = 152; -pub const SYS_poll: ::c_long = 153; -pub const SYS_getdents64: ::c_long = 154; -pub const SYS_fcntl64: ::c_long = 155; -pub const SYS_inotify_rm_watch: ::c_long = 156; -pub const SYS_statfs: ::c_long = 157; -pub const SYS_fstatfs: ::c_long = 158; -pub const SYS_umount: ::c_long = 159; -pub const SYS_sched_set_affinity: ::c_long = 160; -pub const SYS_sched_get_affinity: ::c_long = 161; -pub const SYS_getdomainname: ::c_long = 162; -pub const SYS_setdomainname: ::c_long = 163; -pub const SYS_quotactl: ::c_long = 165; -pub const SYS_set_tid_address: ::c_long = 166; -pub const SYS_mount: ::c_long = 167; -pub const SYS_ustat: ::c_long = 168; -pub const SYS_setxattr: ::c_long = 169; -pub const SYS_lsetxattr: ::c_long = 170; -pub const SYS_fsetxattr: ::c_long = 171; -pub const SYS_getxattr: ::c_long = 172; -pub const SYS_lgetxattr: ::c_long = 173; -pub const SYS_getdents: ::c_long = 174; -pub const SYS_setsid: ::c_long = 175; -pub const SYS_fchdir: ::c_long = 176; -pub const SYS_fgetxattr: ::c_long = 177; -pub const SYS_listxattr: ::c_long = 178; -pub const SYS_llistxattr: ::c_long = 179; -pub const SYS_flistxattr: ::c_long = 180; -pub const SYS_removexattr: ::c_long = 181; -pub const SYS_lremovexattr: ::c_long = 182; -pub const SYS_sigpending: ::c_long = 183; -pub const SYS_query_module: ::c_long = 184; -pub const SYS_setpgid: ::c_long = 185; -pub const SYS_fremovexattr: ::c_long = 186; -pub const SYS_tkill: ::c_long = 187; -pub const SYS_exit_group: ::c_long = 188; -pub const SYS_uname: ::c_long = 189; -pub const SYS_init_module: ::c_long = 190; -pub const SYS_personality: ::c_long = 191; -pub const SYS_remap_file_pages: ::c_long = 192; -pub const SYS_epoll_create: ::c_long = 193; -pub const SYS_epoll_ctl: ::c_long = 194; -pub const SYS_epoll_wait: ::c_long = 195; -pub const SYS_ioprio_set: ::c_long = 196; -pub const SYS_getppid: ::c_long = 197; -pub const SYS_sigaction: ::c_long = 198; -pub const SYS_sgetmask: ::c_long = 199; -pub const SYS_ssetmask: ::c_long = 200; -pub const SYS_sigsuspend: ::c_long = 201; -pub const SYS_oldlstat: ::c_long = 202; -pub const SYS_uselib: ::c_long = 203; -pub const SYS_readdir: ::c_long = 204; -pub const SYS_readahead: ::c_long = 205; -pub const SYS_socketcall: ::c_long = 206; -pub const SYS_syslog: ::c_long = 207; -pub const SYS_lookup_dcookie: ::c_long = 208; -pub const SYS_fadvise64: ::c_long = 209; -pub const SYS_fadvise64_64: ::c_long = 210; -pub const SYS_tgkill: ::c_long = 211; -pub const SYS_waitpid: ::c_long = 212; -pub const SYS_swapoff: ::c_long = 213; -pub const SYS_sysinfo: ::c_long = 214; -pub const SYS_ipc: ::c_long = 215; -pub const SYS_sigreturn: ::c_long = 216; -pub const SYS_clone: ::c_long = 217; -pub const SYS_ioprio_get: ::c_long = 218; -pub const SYS_adjtimex: ::c_long = 219; -pub const SYS_sigprocmask: ::c_long = 220; -pub const SYS_create_module: ::c_long = 221; -pub const SYS_delete_module: ::c_long = 222; -pub const SYS_get_kernel_syms: ::c_long = 223; -pub const SYS_getpgid: ::c_long = 224; -pub const SYS_bdflush: ::c_long = 225; -pub const SYS_sysfs: ::c_long = 226; -pub const SYS_afs_syscall: ::c_long = 227; -pub const SYS_setfsuid: ::c_long = 228; -pub const SYS_setfsgid: ::c_long = 229; -pub const SYS__newselect: ::c_long = 230; -pub const SYS_time: ::c_long = 231; -pub const SYS_splice: ::c_long = 232; -pub const SYS_stime: ::c_long = 233; -pub const SYS_statfs64: ::c_long = 234; -pub const SYS_fstatfs64: ::c_long = 235; -pub const SYS__llseek: ::c_long = 236; -pub const SYS_mlock: ::c_long = 237; -pub const SYS_munlock: ::c_long = 238; -pub const SYS_mlockall: ::c_long = 239; -pub const SYS_munlockall: ::c_long = 240; -pub const SYS_sched_setparam: ::c_long = 241; -pub const SYS_sched_getparam: ::c_long = 242; -pub const SYS_sched_setscheduler: ::c_long = 243; -pub const SYS_sched_getscheduler: ::c_long = 244; -pub const SYS_sched_yield: ::c_long = 245; -pub const SYS_sched_get_priority_max: ::c_long = 246; -pub const SYS_sched_get_priority_min: ::c_long = 247; -pub const SYS_sched_rr_get_interval: ::c_long = 248; -pub const SYS_nanosleep: ::c_long = 249; -pub const SYS_mremap: ::c_long = 250; -pub const SYS__sysctl: ::c_long = 251; -pub const SYS_getsid: ::c_long = 252; -pub const SYS_fdatasync: ::c_long = 253; -pub const SYS_nfsservctl: ::c_long = 254; -pub const SYS_sync_file_range: ::c_long = 255; -pub const SYS_clock_settime: ::c_long = 256; -pub const SYS_clock_gettime: ::c_long = 257; -pub const SYS_clock_getres: ::c_long = 258; -pub const SYS_clock_nanosleep: ::c_long = 259; -pub const SYS_sched_getaffinity: ::c_long = 260; -pub const SYS_sched_setaffinity: ::c_long = 261; -pub const SYS_timer_settime: ::c_long = 262; -pub const SYS_timer_gettime: ::c_long = 263; -pub const SYS_timer_getoverrun: ::c_long = 264; -pub const SYS_timer_delete: ::c_long = 265; -pub const SYS_timer_create: ::c_long = 266; -pub const SYS_io_setup: ::c_long = 268; -pub const SYS_io_destroy: ::c_long = 269; -pub const SYS_io_submit: ::c_long = 270; -pub const SYS_io_cancel: ::c_long = 271; -pub const SYS_io_getevents: ::c_long = 272; -pub const SYS_mq_open: ::c_long = 273; -pub const SYS_mq_unlink: ::c_long = 274; -pub const SYS_mq_timedsend: ::c_long = 275; -pub const SYS_mq_timedreceive: ::c_long = 276; -pub const SYS_mq_notify: ::c_long = 277; -pub const SYS_mq_getsetattr: ::c_long = 278; -pub const SYS_waitid: ::c_long = 279; -pub const SYS_tee: ::c_long = 280; -pub const SYS_add_key: ::c_long = 281; -pub const SYS_request_key: ::c_long = 282; -pub const SYS_keyctl: ::c_long = 283; -pub const SYS_openat: ::c_long = 284; -pub const SYS_mkdirat: ::c_long = 285; -pub const SYS_mknodat: ::c_long = 286; -pub const SYS_fchownat: ::c_long = 287; -pub const SYS_futimesat: ::c_long = 288; -pub const SYS_fstatat64: ::c_long = 289; -pub const SYS_unlinkat: ::c_long = 290; -pub const SYS_renameat: ::c_long = 291; -pub const SYS_linkat: ::c_long = 292; -pub const SYS_symlinkat: ::c_long = 293; -pub const SYS_readlinkat: ::c_long = 294; -pub const SYS_fchmodat: ::c_long = 295; -pub const SYS_faccessat: ::c_long = 296; -pub const SYS_pselect6: ::c_long = 297; -pub const SYS_ppoll: ::c_long = 298; -pub const SYS_unshare: ::c_long = 299; -pub const SYS_set_robust_list: ::c_long = 300; -pub const SYS_get_robust_list: ::c_long = 301; -pub const SYS_migrate_pages: ::c_long = 302; -pub const SYS_mbind: ::c_long = 303; -pub const SYS_get_mempolicy: ::c_long = 304; -pub const SYS_set_mempolicy: ::c_long = 305; -pub const SYS_kexec_load: ::c_long = 306; -pub const SYS_move_pages: ::c_long = 307; -pub const SYS_getcpu: ::c_long = 308; -pub const SYS_epoll_pwait: ::c_long = 309; -pub const SYS_utimensat: ::c_long = 310; -pub const SYS_signalfd: ::c_long = 311; -pub const SYS_timerfd_create: ::c_long = 312; -pub const SYS_eventfd: ::c_long = 313; -pub const SYS_fallocate: ::c_long = 314; -pub const SYS_timerfd_settime: ::c_long = 315; -pub const SYS_timerfd_gettime: ::c_long = 316; -pub const SYS_signalfd4: ::c_long = 317; -pub const SYS_eventfd2: ::c_long = 318; -pub const SYS_epoll_create1: ::c_long = 319; -pub const SYS_dup3: ::c_long = 320; -pub const SYS_pipe2: ::c_long = 321; -pub const SYS_inotify_init1: ::c_long = 322; -pub const SYS_accept4: ::c_long = 323; -pub const SYS_preadv: ::c_long = 324; -pub const SYS_pwritev: ::c_long = 325; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 326; -pub const SYS_perf_event_open: ::c_long = 327; -pub const SYS_recvmmsg: ::c_long = 328; -pub const SYS_fanotify_init: ::c_long = 329; -pub const SYS_fanotify_mark: ::c_long = 330; -pub const SYS_prlimit64: ::c_long = 331; -pub const SYS_name_to_handle_at: ::c_long = 332; -pub const SYS_open_by_handle_at: ::c_long = 333; -pub const SYS_clock_adjtime: ::c_long = 334; -pub const SYS_syncfs: ::c_long = 335; -pub const SYS_sendmmsg: ::c_long = 336; -pub const SYS_setns: ::c_long = 337; -pub const SYS_process_vm_readv: ::c_long = 338; -pub const SYS_process_vm_writev: ::c_long = 339; -pub const SYS_kern_features: ::c_long = 340; -pub const SYS_kcmp: ::c_long = 341; -pub const SYS_finit_module: ::c_long = 342; -pub const SYS_sched_setattr: ::c_long = 343; -pub const SYS_sched_getattr: ::c_long = 344; -pub const SYS_renameat2: ::c_long = 345; -pub const SYS_seccomp: ::c_long = 346; -pub const SYS_getrandom: ::c_long = 347; -pub const SYS_memfd_create: ::c_long = 348; -pub const SYS_bpf: ::c_long = 349; -pub const SYS_execveat: ::c_long = 350; -pub const SYS_membarrier: ::c_long = 351; -pub const SYS_userfaultfd: ::c_long = 352; -pub const SYS_bind: ::c_long = 353; -pub const SYS_listen: ::c_long = 354; -pub const SYS_setsockopt: ::c_long = 355; -pub const SYS_mlock2: ::c_long = 356; -pub const SYS_copy_file_range: ::c_long = 357; -pub const SYS_preadv2: ::c_long = 358; -pub const SYS_pwritev2: ::c_long = 359; -pub const SYS_statx: ::c_long = 360; -pub const SYS_rseq: ::c_long = 365; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; +pub const IEXTEN: crate::tcflag_t = 0x8000; +pub const TOSTOP: crate::tcflag_t = 0x100; +pub const FLUSHO: crate::tcflag_t = 0x1000; +pub const EXTPROC: crate::tcflag_t = 0x10000; + +pub const SYS_restart_syscall: c_long = 0; +pub const SYS_exit: c_long = 1; +pub const SYS_fork: c_long = 2; +pub const SYS_read: c_long = 3; +pub const SYS_write: c_long = 4; +pub const SYS_open: c_long = 5; +pub const SYS_close: c_long = 6; +pub const SYS_wait4: c_long = 7; +pub const SYS_creat: c_long = 8; +pub const SYS_link: c_long = 9; +pub const SYS_unlink: c_long = 10; +pub const SYS_execv: c_long = 11; +pub const SYS_chdir: c_long = 12; +pub const SYS_chown: c_long = 13; +pub const SYS_mknod: c_long = 14; +pub const SYS_chmod: c_long = 15; +pub const SYS_lchown: c_long = 16; +pub const SYS_brk: c_long = 17; +pub const SYS_perfctr: c_long = 18; +pub const SYS_lseek: c_long = 19; +pub const SYS_getpid: c_long = 20; +pub const SYS_capget: c_long = 21; +pub const SYS_capset: c_long = 22; +pub const SYS_setuid: c_long = 23; +pub const SYS_getuid: c_long = 24; +pub const SYS_vmsplice: c_long = 25; +pub const SYS_ptrace: c_long = 26; +pub const SYS_alarm: c_long = 27; +pub const SYS_sigaltstack: c_long = 28; +pub const SYS_pause: c_long = 29; +pub const SYS_utime: c_long = 30; +pub const SYS_lchown32: c_long = 31; +pub const SYS_fchown32: c_long = 32; +pub const SYS_access: c_long = 33; +pub const SYS_nice: c_long = 34; +pub const SYS_chown32: c_long = 35; +pub const SYS_sync: c_long = 36; +pub const SYS_kill: c_long = 37; +pub const SYS_stat: c_long = 38; +pub const SYS_sendfile: c_long = 39; +pub const SYS_lstat: c_long = 40; +pub const SYS_dup: c_long = 41; +pub const SYS_pipe: c_long = 42; +pub const SYS_times: c_long = 43; +pub const SYS_getuid32: c_long = 44; +pub const SYS_umount2: c_long = 45; +pub const SYS_setgid: c_long = 46; +pub const SYS_getgid: c_long = 47; +pub const SYS_signal: c_long = 48; +pub const SYS_geteuid: c_long = 49; +pub const SYS_getegid: c_long = 50; +pub const SYS_acct: c_long = 51; +pub const SYS_getgid32: c_long = 53; +pub const SYS_ioctl: c_long = 54; +pub const SYS_reboot: c_long = 55; +pub const SYS_mmap2: c_long = 56; +pub const SYS_symlink: c_long = 57; +pub const SYS_readlink: c_long = 58; +pub const SYS_execve: c_long = 59; +pub const SYS_umask: c_long = 60; +pub const SYS_chroot: c_long = 61; +pub const SYS_fstat: c_long = 62; +pub const SYS_fstat64: c_long = 63; +pub const SYS_getpagesize: c_long = 64; +pub const SYS_msync: c_long = 65; +pub const SYS_vfork: c_long = 66; +pub const SYS_pread64: c_long = 67; +pub const SYS_pwrite64: c_long = 68; +pub const SYS_geteuid32: c_long = 69; +pub const SYS_getegid32: c_long = 70; +pub const SYS_mmap: c_long = 71; +pub const SYS_setreuid32: c_long = 72; +pub const SYS_munmap: c_long = 73; +pub const SYS_mprotect: c_long = 74; +pub const SYS_madvise: c_long = 75; +pub const SYS_vhangup: c_long = 76; +pub const SYS_truncate64: c_long = 77; +pub const SYS_mincore: c_long = 78; +pub const SYS_getgroups: c_long = 79; +pub const SYS_setgroups: c_long = 80; +pub const SYS_getpgrp: c_long = 81; +pub const SYS_setgroups32: c_long = 82; +pub const SYS_setitimer: c_long = 83; +pub const SYS_ftruncate64: c_long = 84; +pub const SYS_swapon: c_long = 85; +pub const SYS_getitimer: c_long = 86; +pub const SYS_setuid32: c_long = 87; +pub const SYS_sethostname: c_long = 88; +pub const SYS_setgid32: c_long = 89; +pub const SYS_dup2: c_long = 90; +pub const SYS_setfsuid32: c_long = 91; +pub const SYS_fcntl: c_long = 92; +pub const SYS_select: c_long = 93; +pub const SYS_setfsgid32: c_long = 94; +pub const SYS_fsync: c_long = 95; +pub const SYS_setpriority: c_long = 96; +pub const SYS_socket: c_long = 97; +pub const SYS_connect: c_long = 98; +pub const SYS_accept: c_long = 99; +pub const SYS_getpriority: c_long = 100; +pub const SYS_rt_sigreturn: c_long = 101; +pub const SYS_rt_sigaction: c_long = 102; +pub const SYS_rt_sigprocmask: c_long = 103; +pub const SYS_rt_sigpending: c_long = 104; +pub const SYS_rt_sigtimedwait: c_long = 105; +pub const SYS_rt_sigqueueinfo: c_long = 106; +pub const SYS_rt_sigsuspend: c_long = 107; +pub const SYS_setresuid32: c_long = 108; +pub const SYS_getresuid32: c_long = 109; +pub const SYS_setresgid32: c_long = 110; +pub const SYS_getresgid32: c_long = 111; +pub const SYS_setregid32: c_long = 112; +pub const SYS_recvmsg: c_long = 113; +pub const SYS_sendmsg: c_long = 114; +pub const SYS_getgroups32: c_long = 115; +pub const SYS_gettimeofday: c_long = 116; +pub const SYS_getrusage: c_long = 117; +pub const SYS_getsockopt: c_long = 118; +pub const SYS_getcwd: c_long = 119; +pub const SYS_readv: c_long = 120; +pub const SYS_writev: c_long = 121; +pub const SYS_settimeofday: c_long = 122; +pub const SYS_fchown: c_long = 123; +pub const SYS_fchmod: c_long = 124; +pub const SYS_recvfrom: c_long = 125; +pub const SYS_setreuid: c_long = 126; +pub const SYS_setregid: c_long = 127; +pub const SYS_rename: c_long = 128; +pub const SYS_truncate: c_long = 129; +pub const SYS_ftruncate: c_long = 130; +pub const SYS_flock: c_long = 131; +pub const SYS_lstat64: c_long = 132; +pub const SYS_sendto: c_long = 133; +pub const SYS_shutdown: c_long = 134; +pub const SYS_socketpair: c_long = 135; +pub const SYS_mkdir: c_long = 136; +pub const SYS_rmdir: c_long = 137; +pub const SYS_utimes: c_long = 138; +pub const SYS_stat64: c_long = 139; +pub const SYS_sendfile64: c_long = 140; +pub const SYS_getpeername: c_long = 141; +pub const SYS_futex: c_long = 142; +pub const SYS_gettid: c_long = 143; +pub const SYS_getrlimit: c_long = 144; +pub const SYS_setrlimit: c_long = 145; +pub const SYS_pivot_root: c_long = 146; +pub const SYS_prctl: c_long = 147; +pub const SYS_pciconfig_read: c_long = 148; +pub const SYS_pciconfig_write: c_long = 149; +pub const SYS_getsockname: c_long = 150; +pub const SYS_inotify_init: c_long = 151; +pub const SYS_inotify_add_watch: c_long = 152; +pub const SYS_poll: c_long = 153; +pub const SYS_getdents64: c_long = 154; +pub const SYS_fcntl64: c_long = 155; +pub const SYS_inotify_rm_watch: c_long = 156; +pub const SYS_statfs: c_long = 157; +pub const SYS_fstatfs: c_long = 158; +pub const SYS_umount: c_long = 159; +pub const SYS_sched_set_affinity: c_long = 160; +pub const SYS_sched_get_affinity: c_long = 161; +pub const SYS_getdomainname: c_long = 162; +pub const SYS_setdomainname: c_long = 163; +pub const SYS_quotactl: c_long = 165; +pub const SYS_set_tid_address: c_long = 166; +pub const SYS_mount: c_long = 167; +pub const SYS_ustat: c_long = 168; +pub const SYS_setxattr: c_long = 169; +pub const SYS_lsetxattr: c_long = 170; +pub const SYS_fsetxattr: c_long = 171; +pub const SYS_getxattr: c_long = 172; +pub const SYS_lgetxattr: c_long = 173; +pub const SYS_getdents: c_long = 174; +pub const SYS_setsid: c_long = 175; +pub const SYS_fchdir: c_long = 176; +pub const SYS_fgetxattr: c_long = 177; +pub const SYS_listxattr: c_long = 178; +pub const SYS_llistxattr: c_long = 179; +pub const SYS_flistxattr: c_long = 180; +pub const SYS_removexattr: c_long = 181; +pub const SYS_lremovexattr: c_long = 182; +pub const SYS_sigpending: c_long = 183; +pub const SYS_query_module: c_long = 184; +pub const SYS_setpgid: c_long = 185; +pub const SYS_fremovexattr: c_long = 186; +pub const SYS_tkill: c_long = 187; +pub const SYS_exit_group: c_long = 188; +pub const SYS_uname: c_long = 189; +pub const SYS_init_module: c_long = 190; +pub const SYS_personality: c_long = 191; +pub const SYS_remap_file_pages: c_long = 192; +pub const SYS_epoll_create: c_long = 193; +pub const SYS_epoll_ctl: c_long = 194; +pub const SYS_epoll_wait: c_long = 195; +pub const SYS_ioprio_set: c_long = 196; +pub const SYS_getppid: c_long = 197; +pub const SYS_sigaction: c_long = 198; +pub const SYS_sgetmask: c_long = 199; +pub const SYS_ssetmask: c_long = 200; +pub const SYS_sigsuspend: c_long = 201; +pub const SYS_oldlstat: c_long = 202; +pub const SYS_uselib: c_long = 203; +pub const SYS_readdir: c_long = 204; +pub const SYS_readahead: c_long = 205; +pub const SYS_socketcall: c_long = 206; +pub const SYS_syslog: c_long = 207; +pub const SYS_lookup_dcookie: c_long = 208; +pub const SYS_fadvise64: c_long = 209; +pub const SYS_fadvise64_64: c_long = 210; +pub const SYS_tgkill: c_long = 211; +pub const SYS_waitpid: c_long = 212; +pub const SYS_swapoff: c_long = 213; +pub const SYS_sysinfo: c_long = 214; +pub const SYS_ipc: c_long = 215; +pub const SYS_sigreturn: c_long = 216; +pub const SYS_clone: c_long = 217; +pub const SYS_ioprio_get: c_long = 218; +pub const SYS_adjtimex: c_long = 219; +pub const SYS_sigprocmask: c_long = 220; +pub const SYS_create_module: c_long = 221; +pub const SYS_delete_module: c_long = 222; +pub const SYS_get_kernel_syms: c_long = 223; +pub const SYS_getpgid: c_long = 224; +pub const SYS_bdflush: c_long = 225; +pub const SYS_sysfs: c_long = 226; +pub const SYS_afs_syscall: c_long = 227; +pub const SYS_setfsuid: c_long = 228; +pub const SYS_setfsgid: c_long = 229; +pub const SYS__newselect: c_long = 230; +pub const SYS_time: c_long = 231; +pub const SYS_splice: c_long = 232; +pub const SYS_stime: c_long = 233; +pub const SYS_statfs64: c_long = 234; +pub const SYS_fstatfs64: c_long = 235; +pub const SYS__llseek: c_long = 236; +pub const SYS_mlock: c_long = 237; +pub const SYS_munlock: c_long = 238; +pub const SYS_mlockall: c_long = 239; +pub const SYS_munlockall: c_long = 240; +pub const SYS_sched_setparam: c_long = 241; +pub const SYS_sched_getparam: c_long = 242; +pub const SYS_sched_setscheduler: c_long = 243; +pub const SYS_sched_getscheduler: c_long = 244; +pub const SYS_sched_yield: c_long = 245; +pub const SYS_sched_get_priority_max: c_long = 246; +pub const SYS_sched_get_priority_min: c_long = 247; +pub const SYS_sched_rr_get_interval: c_long = 248; +pub const SYS_nanosleep: c_long = 249; +pub const SYS_mremap: c_long = 250; +pub const SYS__sysctl: c_long = 251; +pub const SYS_getsid: c_long = 252; +pub const SYS_fdatasync: c_long = 253; +pub const SYS_nfsservctl: c_long = 254; +pub const SYS_sync_file_range: c_long = 255; +pub const SYS_clock_settime: c_long = 256; +pub const SYS_clock_gettime: c_long = 257; +pub const SYS_clock_getres: c_long = 258; +pub const SYS_clock_nanosleep: c_long = 259; +pub const SYS_sched_getaffinity: c_long = 260; +pub const SYS_sched_setaffinity: c_long = 261; +pub const SYS_timer_settime: c_long = 262; +pub const SYS_timer_gettime: c_long = 263; +pub const SYS_timer_getoverrun: c_long = 264; +pub const SYS_timer_delete: c_long = 265; +pub const SYS_timer_create: c_long = 266; +pub const SYS_io_setup: c_long = 268; +pub const SYS_io_destroy: c_long = 269; +pub const SYS_io_submit: c_long = 270; +pub const SYS_io_cancel: c_long = 271; +pub const SYS_io_getevents: c_long = 272; +pub const SYS_mq_open: c_long = 273; +pub const SYS_mq_unlink: c_long = 274; +pub const SYS_mq_timedsend: c_long = 275; +pub const SYS_mq_timedreceive: c_long = 276; +pub const SYS_mq_notify: c_long = 277; +pub const SYS_mq_getsetattr: c_long = 278; +pub const SYS_waitid: c_long = 279; +pub const SYS_tee: c_long = 280; +pub const SYS_add_key: c_long = 281; +pub const SYS_request_key: c_long = 282; +pub const SYS_keyctl: c_long = 283; +pub const SYS_openat: c_long = 284; +pub const SYS_mkdirat: c_long = 285; +pub const SYS_mknodat: c_long = 286; +pub const SYS_fchownat: c_long = 287; +pub const SYS_futimesat: c_long = 288; +pub const SYS_fstatat64: c_long = 289; +pub const SYS_unlinkat: c_long = 290; +pub const SYS_renameat: c_long = 291; +pub const SYS_linkat: c_long = 292; +pub const SYS_symlinkat: c_long = 293; +pub const SYS_readlinkat: c_long = 294; +pub const SYS_fchmodat: c_long = 295; +pub const SYS_faccessat: c_long = 296; +pub const SYS_pselect6: c_long = 297; +pub const SYS_ppoll: c_long = 298; +pub const SYS_unshare: c_long = 299; +pub const SYS_set_robust_list: c_long = 300; +pub const SYS_get_robust_list: c_long = 301; +pub const SYS_migrate_pages: c_long = 302; +pub const SYS_mbind: c_long = 303; +pub const SYS_get_mempolicy: c_long = 304; +pub const SYS_set_mempolicy: c_long = 305; +pub const SYS_kexec_load: c_long = 306; +pub const SYS_move_pages: c_long = 307; +pub const SYS_getcpu: c_long = 308; +pub const SYS_epoll_pwait: c_long = 309; +pub const SYS_utimensat: c_long = 310; +pub const SYS_signalfd: c_long = 311; +pub const SYS_timerfd_create: c_long = 312; +pub const SYS_eventfd: c_long = 313; +pub const SYS_fallocate: c_long = 314; +pub const SYS_timerfd_settime: c_long = 315; +pub const SYS_timerfd_gettime: c_long = 316; +pub const SYS_signalfd4: c_long = 317; +pub const SYS_eventfd2: c_long = 318; +pub const SYS_epoll_create1: c_long = 319; +pub const SYS_dup3: c_long = 320; +pub const SYS_pipe2: c_long = 321; +pub const SYS_inotify_init1: c_long = 322; +pub const SYS_accept4: c_long = 323; +pub const SYS_preadv: c_long = 324; +pub const SYS_pwritev: c_long = 325; +pub const SYS_rt_tgsigqueueinfo: c_long = 326; +pub const SYS_perf_event_open: c_long = 327; +pub const SYS_recvmmsg: c_long = 328; +pub const SYS_fanotify_init: c_long = 329; +pub const SYS_fanotify_mark: c_long = 330; +pub const SYS_prlimit64: c_long = 331; +pub const SYS_name_to_handle_at: c_long = 332; +pub const SYS_open_by_handle_at: c_long = 333; +pub const SYS_clock_adjtime: c_long = 334; +pub const SYS_syncfs: c_long = 335; +pub const SYS_sendmmsg: c_long = 336; +pub const SYS_setns: c_long = 337; +pub const SYS_process_vm_readv: c_long = 338; +pub const SYS_process_vm_writev: c_long = 339; +pub const SYS_kern_features: c_long = 340; +pub const SYS_kcmp: c_long = 341; +pub const SYS_finit_module: c_long = 342; +pub const SYS_sched_setattr: c_long = 343; +pub const SYS_sched_getattr: c_long = 344; +pub const SYS_renameat2: c_long = 345; +pub const SYS_seccomp: c_long = 346; +pub const SYS_getrandom: c_long = 347; +pub const SYS_memfd_create: c_long = 348; +pub const SYS_bpf: c_long = 349; +pub const SYS_execveat: c_long = 350; +pub const SYS_membarrier: c_long = 351; +pub const SYS_userfaultfd: c_long = 352; +pub const SYS_bind: c_long = 353; +pub const SYS_listen: c_long = 354; +pub const SYS_setsockopt: c_long = 355; +pub const SYS_mlock2: c_long = 356; +pub const SYS_copy_file_range: c_long = 357; +pub const SYS_preadv2: c_long = 358; +pub const SYS_pwritev2: c_long = 359; +pub const SYS_statx: c_long = 360; +pub const SYS_rseq: c_long = 365; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; // Reserved in the kernel, but not actually implemented yet -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 137ed0bfd1aad..7e7de0ce2dfaf 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -1,46 +1,48 @@ +use crate::{c_int, c_long, c_short, c_uint, c_ulong, c_ushort, c_void, off64_t, off_t, size_t}; + pub type c_char = i8; pub type wchar_t = i32; pub type greg_t = i32; s! { pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, + pub sa_flags: c_int, + pub sa_restorer: Option, } pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - f_spare: [::__fsword_t; 4], + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + pub f_flags: crate::__fsword_t, + f_spare: [crate::__fsword_t; 4], } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off64_t, + pub l_len: off64_t, + pub l_pid: crate::pid_t, } pub struct _libc_fpreg { @@ -49,177 +51,177 @@ s! { } pub struct _libc_fpstate { - pub cw: ::c_ulong, - pub sw: ::c_ulong, - pub tag: ::c_ulong, - pub ipoff: ::c_ulong, - pub cssel: ::c_ulong, - pub dataoff: ::c_ulong, - pub datasel: ::c_ulong, + pub cw: c_ulong, + pub sw: c_ulong, + pub tag: c_ulong, + pub ipoff: c_ulong, + pub cssel: c_ulong, + pub dataoff: c_ulong, + pub datasel: c_ulong, pub _st: [_libc_fpreg; 8], - pub status: ::c_ulong, + pub status: c_ulong, } pub struct user_fpregs_struct { - pub cwd: ::c_long, - pub swd: ::c_long, - pub twd: ::c_long, - pub fip: ::c_long, - pub fcs: ::c_long, - pub foo: ::c_long, - pub fos: ::c_long, - pub st_space: [::c_long; 20], + pub cwd: c_long, + pub swd: c_long, + pub twd: c_long, + pub fip: c_long, + pub fcs: c_long, + pub foo: c_long, + pub fos: c_long, + pub st_space: [c_long; 20], } pub struct user_regs_struct { - pub ebx: ::c_long, - pub ecx: ::c_long, - pub edx: ::c_long, - pub esi: ::c_long, - pub edi: ::c_long, - pub ebp: ::c_long, - pub eax: ::c_long, - pub xds: ::c_long, - pub xes: ::c_long, - pub xfs: ::c_long, - pub xgs: ::c_long, - pub orig_eax: ::c_long, - pub eip: ::c_long, - pub xcs: ::c_long, - pub eflags: ::c_long, - pub esp: ::c_long, - pub xss: ::c_long, + pub ebx: c_long, + pub ecx: c_long, + pub edx: c_long, + pub esi: c_long, + pub edi: c_long, + pub ebp: c_long, + pub eax: c_long, + pub xds: c_long, + pub xes: c_long, + pub xfs: c_long, + pub xgs: c_long, + pub orig_eax: c_long, + pub eip: c_long, + pub xcs: c_long, + pub eflags: c_long, + pub esp: c_long, + pub xss: c_long, } pub struct user { pub regs: user_regs_struct, - pub u_fpvalid: ::c_int, + pub u_fpvalid: c_int, pub i387: user_fpregs_struct, - pub u_tsize: ::c_ulong, - pub u_dsize: ::c_ulong, - pub u_ssize: ::c_ulong, - pub start_code: ::c_ulong, - pub start_stack: ::c_ulong, - pub signal: ::c_long, - __reserved: ::c_int, + pub u_tsize: c_ulong, + pub u_dsize: c_ulong, + pub u_ssize: c_ulong, + pub start_code: c_ulong, + pub start_stack: c_ulong, + pub signal: c_long, + __reserved: c_int, pub u_ar0: *mut user_regs_struct, pub u_fpstate: *mut user_fpregs_struct, - pub magic: ::c_ulong, + pub magic: c_ulong, pub u_comm: [c_char; 32], - pub u_debugreg: [::c_int; 8], + pub u_debugreg: [c_int; 8], } pub struct mcontext_t { pub gregs: [greg_t; 19], pub fpregs: *mut _libc_fpstate, - pub oldmask: ::c_ulong, - pub cr2: ::c_ulong, + pub oldmask: c_ulong, + pub cr2: c_ulong, } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: c_ushort, + __pad1: c_ushort, + pub __seq: c_ushort, + __pad2: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } pub struct stat64 { - pub st_dev: ::dev_t, - __pad1: ::c_uint, - __st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: ::c_uint, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_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_ino: ::ino64_t, + pub st_dev: crate::dev_t, + __pad1: c_uint, + __st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad2: c_uint, + pub st_size: off64_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_ino: crate::ino64_t, } pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], + pub f_fsid: crate::fsid_t, + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + pub f_flags: crate::__fsword_t, + pub f_spare: [crate::__fsword_t; 4], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + __f_unused: c_int, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - __unused1: ::c_ulong, - pub shm_dtime: ::time_t, - __unused2: ::c_ulong, - pub shm_ctime: ::time_t, - __unused3: ::c_ulong, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + __unused1: c_ulong, + pub shm_dtime: crate::time_t, + __unused2: c_ulong, + pub shm_ctime: crate::time_t, + __unused3: c_ulong, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __unused4: c_ulong, + __unused5: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - __glibc_reserved1: ::c_ulong, - pub msg_rtime: ::time_t, - __glibc_reserved2: ::c_ulong, - pub msg_ctime: ::time_t, - __glibc_reserved3: ::c_ulong, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, + pub msg_perm: crate::ipc_perm, + pub msg_stime: crate::time_t, + __glibc_reserved1: c_ulong, + pub msg_rtime: crate::time_t, + __glibc_reserved2: c_ulong, + pub msg_ctime: crate::time_t, + __glibc_reserved3: c_ulong, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __glibc_reserved4: c_ulong, + __glibc_reserved5: c_ulong, } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, #[doc(hidden)] #[deprecated( since = "0.2.54", @@ -227,42 +229,42 @@ s! { https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] - pub _pad: [::c_int; 29], + pub _pad: [c_int; 29], _align: [usize; 0], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } } s_no_extra_traits! { pub struct user_fpxregs_struct { - pub cwd: ::c_ushort, - pub swd: ::c_ushort, - pub twd: ::c_ushort, - pub fop: ::c_ushort, - pub fip: ::c_long, - pub fcs: ::c_long, - pub foo: ::c_long, - pub fos: ::c_long, - pub mxcsr: ::c_long, - __reserved: ::c_long, - pub st_space: [::c_long; 32], - pub xmm_space: [::c_long; 32], - padding: [::c_long; 56], + pub cwd: c_ushort, + pub swd: c_ushort, + pub twd: c_ushort, + pub fop: c_ushort, + pub fip: c_long, + pub fcs: c_long, + pub foo: c_long, + pub fos: c_long, + pub mxcsr: c_long, + __reserved: c_long, + pub st_space: [c_long; 32], + pub xmm_space: [c_long; 32], + padding: [c_long; 56], } pub struct ucontext_t { - pub uc_flags: ::c_ulong, + pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, + pub uc_stack: crate::stack_t, pub uc_mcontext: mcontext_t, - pub uc_sigmask: ::sigset_t, + pub uc_sigmask: crate::sigset_t, __private: [u8; 112], - __ssp: [::c_ulong; 4], + __ssp: [c_ulong; 4], } #[allow(missing_debug_implementations)] @@ -294,8 +296,8 @@ cfg_if! { impl Eq for user_fpxregs_struct {} - impl ::fmt::Debug for user_fpxregs_struct { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for user_fpxregs_struct { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("user_fpxregs_struct") .field("cwd", &self.cwd) .field("swd", &self.swd) @@ -314,8 +316,8 @@ cfg_if! { } } - impl ::hash::Hash for user_fpxregs_struct { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for user_fpxregs_struct { + fn hash(&self, state: &mut H) { self.cwd.hash(state); self.swd.hash(state); self.twd.hash(state); @@ -345,8 +347,8 @@ cfg_if! { impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -358,8 +360,8 @@ cfg_if! { } } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); @@ -372,187 +374,187 @@ cfg_if! { } pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_LARGEFILE: ::c_int = 0o0100000; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; +pub const RTLD_DEEPBIND: c_int = 0x8; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_NOLOAD: c_int = 0x4; +pub const O_DIRECT: c_int = 0x4000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_NOFOLLOW: c_int = 0x20000; +pub const O_LARGEFILE: c_int = 0o0100000; +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_FSYNC: c_int = 0x101000; +pub const O_ASYNC: c_int = 0x2000; +pub const O_NDELAY: c_int = 0x800; -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_32BIT: ::c_int = 0x0040; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_SYNC: ::c_int = 0x080000; +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_32BIT: c_int = 0x0040; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_ANONYMOUS: c_int = 0x0020; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_SYNC: c_int = 0x080000; -pub const EDEADLOCK: ::c_int = 35; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; +pub const EDEADLOCK: c_int = 35; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EBADMSG: c_int = 74; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const EHWPOISON: c_int = 133; +pub const ERFKILL: c_int = 132; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETOWN: c_int = 8; -pub const PTRACE_GETFPXREGS: ::c_uint = 18; -pub const PTRACE_SETFPXREGS: ::c_uint = 19; -pub const PTRACE_SYSEMU: ::c_uint = 31; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32; +pub const PTRACE_GETFPXREGS: c_uint = 18; +pub const PTRACE_SETFPXREGS: c_uint = 19; +pub const PTRACE_SYSEMU: c_uint = 31; +pub const PTRACE_SYSEMU_SINGLESTEP: c_uint = 32; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; -pub const EFD_NONBLOCK: ::c_int = 0x800; -pub const SFD_NONBLOCK: ::c_int = 0x0800; +pub const EFD_NONBLOCK: c_int = 0x800; +pub const SFD_NONBLOCK: c_int = 0x0800; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; #[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; +pub const SIGUNUSED: c_int = 31; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: crate::tcflag_t = 0x00000800; +pub const TAB2: crate::tcflag_t = 0x00001000; +pub const TAB3: crate::tcflag_t = 0x00001800; +pub const CR1: crate::tcflag_t = 0x00000200; +pub const CR2: crate::tcflag_t = 0x00000400; +pub const CR3: crate::tcflag_t = 0x00000600; +pub const FF1: crate::tcflag_t = 0x00008000; +pub const BS1: crate::tcflag_t = 0x00002000; +pub const VT1: crate::tcflag_t = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -560,542 +562,542 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; -pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; +pub const EXTPROC: crate::tcflag_t = 0x00010000; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; // Syscall table -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_waitpid: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_time: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_break: ::c_long = 17; -pub const SYS_oldstat: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_stime: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_oldfstat: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_stty: ::c_long = 31; -pub const SYS_gtty: ::c_long = 32; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_ftime: ::c_long = 35; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_prof: ::c_long = 44; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_lock: ::c_long = 53; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_mpx: ::c_long = 56; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_ulimit: ::c_long = 58; -pub const SYS_oldolduname: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sgetmask: ::c_long = 68; -pub const SYS_ssetmask: ::c_long = 69; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrlimit: ::c_long = 76; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_select: ::c_long = 82; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_oldlstat: ::c_long = 84; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_profil: ::c_long = 98; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_ioperm: ::c_long = 101; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_olduname: ::c_long = 109; -pub const SYS_iopl: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_vm86old: ::c_long = 113; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_modify_ldt: ::c_long = 123; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_vm86: ::c_long = 166; -pub const SYS_query_module: ::c_long = 167; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_setresgid: ::c_long = 170; -pub const SYS_getresgid: ::c_long = 171; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_chown: ::c_long = 182; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_getpmsg: ::c_long = 188; -pub const SYS_putpmsg: ::c_long = 189; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_ugetrlimit: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_lchown32: ::c_long = 198; -pub const SYS_getuid32: ::c_long = 199; -pub const SYS_getgid32: ::c_long = 200; -pub const SYS_geteuid32: ::c_long = 201; -pub const SYS_getegid32: ::c_long = 202; -pub const SYS_setreuid32: ::c_long = 203; -pub const SYS_setregid32: ::c_long = 204; -pub const SYS_getgroups32: ::c_long = 205; -pub const SYS_setgroups32: ::c_long = 206; -pub const SYS_fchown32: ::c_long = 207; -pub const SYS_setresuid32: ::c_long = 208; -pub const SYS_getresuid32: ::c_long = 209; -pub const SYS_setresgid32: ::c_long = 210; -pub const SYS_getresgid32: ::c_long = 211; -pub const SYS_chown32: ::c_long = 212; -pub const SYS_setuid32: ::c_long = 213; -pub const SYS_setgid32: ::c_long = 214; -pub const SYS_setfsuid32: ::c_long = 215; -pub const SYS_setfsgid32: ::c_long = 216; -pub const SYS_pivot_root: ::c_long = 217; -pub const SYS_mincore: ::c_long = 218; -pub const SYS_madvise: ::c_long = 219; -pub const SYS_getdents64: ::c_long = 220; -pub const SYS_fcntl64: ::c_long = 221; -pub const SYS_gettid: ::c_long = 224; -pub const SYS_readahead: ::c_long = 225; -pub const SYS_setxattr: ::c_long = 226; -pub const SYS_lsetxattr: ::c_long = 227; -pub const SYS_fsetxattr: ::c_long = 228; -pub const SYS_getxattr: ::c_long = 229; -pub const SYS_lgetxattr: ::c_long = 230; -pub const SYS_fgetxattr: ::c_long = 231; -pub const SYS_listxattr: ::c_long = 232; -pub const SYS_llistxattr: ::c_long = 233; -pub const SYS_flistxattr: ::c_long = 234; -pub const SYS_removexattr: ::c_long = 235; -pub const SYS_lremovexattr: ::c_long = 236; -pub const SYS_fremovexattr: ::c_long = 237; -pub const SYS_tkill: ::c_long = 238; -pub const SYS_sendfile64: ::c_long = 239; -pub const SYS_futex: ::c_long = 240; -pub const SYS_sched_setaffinity: ::c_long = 241; -pub const SYS_sched_getaffinity: ::c_long = 242; -pub const SYS_set_thread_area: ::c_long = 243; -pub const SYS_get_thread_area: ::c_long = 244; -pub const SYS_io_setup: ::c_long = 245; -pub const SYS_io_destroy: ::c_long = 246; -pub const SYS_io_getevents: ::c_long = 247; -pub const SYS_io_submit: ::c_long = 248; -pub const SYS_io_cancel: ::c_long = 249; -pub const SYS_fadvise64: ::c_long = 250; -pub const SYS_exit_group: ::c_long = 252; -pub const SYS_lookup_dcookie: ::c_long = 253; -pub const SYS_epoll_create: ::c_long = 254; -pub const SYS_epoll_ctl: ::c_long = 255; -pub const SYS_epoll_wait: ::c_long = 256; -pub const SYS_remap_file_pages: ::c_long = 257; -pub const SYS_set_tid_address: ::c_long = 258; -pub const SYS_timer_create: ::c_long = 259; -pub const SYS_timer_settime: ::c_long = 260; -pub const SYS_timer_gettime: ::c_long = 261; -pub const SYS_timer_getoverrun: ::c_long = 262; -pub const SYS_timer_delete: ::c_long = 263; -pub const SYS_clock_settime: ::c_long = 264; -pub const SYS_clock_gettime: ::c_long = 265; -pub const SYS_clock_getres: ::c_long = 266; -pub const SYS_clock_nanosleep: ::c_long = 267; -pub const SYS_statfs64: ::c_long = 268; -pub const SYS_fstatfs64: ::c_long = 269; -pub const SYS_tgkill: ::c_long = 270; -pub const SYS_utimes: ::c_long = 271; -pub const SYS_fadvise64_64: ::c_long = 272; -pub const SYS_vserver: ::c_long = 273; -pub const SYS_mbind: ::c_long = 274; -pub const SYS_get_mempolicy: ::c_long = 275; -pub const SYS_set_mempolicy: ::c_long = 276; -pub const SYS_mq_open: ::c_long = 277; -pub const SYS_mq_unlink: ::c_long = 278; -pub const SYS_mq_timedsend: ::c_long = 279; -pub const SYS_mq_timedreceive: ::c_long = 280; -pub const SYS_mq_notify: ::c_long = 281; -pub const SYS_mq_getsetattr: ::c_long = 282; -pub const SYS_kexec_load: ::c_long = 283; -pub const SYS_waitid: ::c_long = 284; -pub const SYS_add_key: ::c_long = 286; -pub const SYS_request_key: ::c_long = 287; -pub const SYS_keyctl: ::c_long = 288; -pub const SYS_ioprio_set: ::c_long = 289; -pub const SYS_ioprio_get: ::c_long = 290; -pub const SYS_inotify_init: ::c_long = 291; -pub const SYS_inotify_add_watch: ::c_long = 292; -pub const SYS_inotify_rm_watch: ::c_long = 293; -pub const SYS_migrate_pages: ::c_long = 294; -pub const SYS_openat: ::c_long = 295; -pub const SYS_mkdirat: ::c_long = 296; -pub const SYS_mknodat: ::c_long = 297; -pub const SYS_fchownat: ::c_long = 298; -pub const SYS_futimesat: ::c_long = 299; -pub const SYS_fstatat64: ::c_long = 300; -pub const SYS_unlinkat: ::c_long = 301; -pub const SYS_renameat: ::c_long = 302; -pub const SYS_linkat: ::c_long = 303; -pub const SYS_symlinkat: ::c_long = 304; -pub const SYS_readlinkat: ::c_long = 305; -pub const SYS_fchmodat: ::c_long = 306; -pub const SYS_faccessat: ::c_long = 307; -pub const SYS_pselect6: ::c_long = 308; -pub const SYS_ppoll: ::c_long = 309; -pub const SYS_unshare: ::c_long = 310; -pub const SYS_set_robust_list: ::c_long = 311; -pub const SYS_get_robust_list: ::c_long = 312; -pub const SYS_splice: ::c_long = 313; -pub const SYS_sync_file_range: ::c_long = 314; -pub const SYS_tee: ::c_long = 315; -pub const SYS_vmsplice: ::c_long = 316; -pub const SYS_move_pages: ::c_long = 317; -pub const SYS_getcpu: ::c_long = 318; -pub const SYS_epoll_pwait: ::c_long = 319; -pub const SYS_utimensat: ::c_long = 320; -pub const SYS_signalfd: ::c_long = 321; -pub const SYS_timerfd_create: ::c_long = 322; -pub const SYS_eventfd: ::c_long = 323; -pub const SYS_fallocate: ::c_long = 324; -pub const SYS_timerfd_settime: ::c_long = 325; -pub const SYS_timerfd_gettime: ::c_long = 326; -pub const SYS_signalfd4: ::c_long = 327; -pub const SYS_eventfd2: ::c_long = 328; -pub const SYS_epoll_create1: ::c_long = 329; -pub const SYS_dup3: ::c_long = 330; -pub const SYS_pipe2: ::c_long = 331; -pub const SYS_inotify_init1: ::c_long = 332; -pub const SYS_preadv: ::c_long = 333; -pub const SYS_pwritev: ::c_long = 334; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 335; -pub const SYS_perf_event_open: ::c_long = 336; -pub const SYS_recvmmsg: ::c_long = 337; -pub const SYS_fanotify_init: ::c_long = 338; -pub const SYS_fanotify_mark: ::c_long = 339; -pub const SYS_prlimit64: ::c_long = 340; -pub const SYS_name_to_handle_at: ::c_long = 341; -pub const SYS_open_by_handle_at: ::c_long = 342; -pub const SYS_clock_adjtime: ::c_long = 343; -pub const SYS_syncfs: ::c_long = 344; -pub const SYS_sendmmsg: ::c_long = 345; -pub const SYS_setns: ::c_long = 346; -pub const SYS_process_vm_readv: ::c_long = 347; -pub const SYS_process_vm_writev: ::c_long = 348; -pub const SYS_kcmp: ::c_long = 349; -pub const SYS_finit_module: ::c_long = 350; -pub const SYS_sched_setattr: ::c_long = 351; -pub const SYS_sched_getattr: ::c_long = 352; -pub const SYS_renameat2: ::c_long = 353; -pub const SYS_seccomp: ::c_long = 354; -pub const SYS_getrandom: ::c_long = 355; -pub const SYS_memfd_create: ::c_long = 356; -pub const SYS_bpf: ::c_long = 357; -pub const SYS_execveat: ::c_long = 358; -pub const SYS_socket: ::c_long = 359; -pub const SYS_socketpair: ::c_long = 360; -pub const SYS_bind: ::c_long = 361; -pub const SYS_connect: ::c_long = 362; -pub const SYS_listen: ::c_long = 363; -pub const SYS_accept4: ::c_long = 364; -pub const SYS_getsockopt: ::c_long = 365; -pub const SYS_setsockopt: ::c_long = 366; -pub const SYS_getsockname: ::c_long = 367; -pub const SYS_getpeername: ::c_long = 368; -pub const SYS_sendto: ::c_long = 369; -pub const SYS_sendmsg: ::c_long = 370; -pub const SYS_recvfrom: ::c_long = 371; -pub const SYS_recvmsg: ::c_long = 372; -pub const SYS_shutdown: ::c_long = 373; -pub const SYS_userfaultfd: ::c_long = 374; -pub const SYS_membarrier: ::c_long = 375; -pub const SYS_mlock2: ::c_long = 376; -pub const SYS_copy_file_range: ::c_long = 377; -pub const SYS_preadv2: ::c_long = 378; -pub const SYS_pwritev2: ::c_long = 379; -pub const SYS_pkey_mprotect: ::c_long = 380; -pub const SYS_pkey_alloc: ::c_long = 381; -pub const SYS_pkey_free: ::c_long = 382; -pub const SYS_statx: ::c_long = 383; -pub const SYS_rseq: ::c_long = 386; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; -pub const SYS_fchmodat2: ::c_long = 452; -pub const SYS_mseal: ::c_long = 462; +pub const SYS_restart_syscall: c_long = 0; +pub const SYS_exit: c_long = 1; +pub const SYS_fork: c_long = 2; +pub const SYS_read: c_long = 3; +pub const SYS_write: c_long = 4; +pub const SYS_open: c_long = 5; +pub const SYS_close: c_long = 6; +pub const SYS_waitpid: c_long = 7; +pub const SYS_creat: c_long = 8; +pub const SYS_link: c_long = 9; +pub const SYS_unlink: c_long = 10; +pub const SYS_execve: c_long = 11; +pub const SYS_chdir: c_long = 12; +pub const SYS_time: c_long = 13; +pub const SYS_mknod: c_long = 14; +pub const SYS_chmod: c_long = 15; +pub const SYS_lchown: c_long = 16; +pub const SYS_break: c_long = 17; +pub const SYS_oldstat: c_long = 18; +pub const SYS_lseek: c_long = 19; +pub const SYS_getpid: c_long = 20; +pub const SYS_mount: c_long = 21; +pub const SYS_umount: c_long = 22; +pub const SYS_setuid: c_long = 23; +pub const SYS_getuid: c_long = 24; +pub const SYS_stime: c_long = 25; +pub const SYS_ptrace: c_long = 26; +pub const SYS_alarm: c_long = 27; +pub const SYS_oldfstat: c_long = 28; +pub const SYS_pause: c_long = 29; +pub const SYS_utime: c_long = 30; +pub const SYS_stty: c_long = 31; +pub const SYS_gtty: c_long = 32; +pub const SYS_access: c_long = 33; +pub const SYS_nice: c_long = 34; +pub const SYS_ftime: c_long = 35; +pub const SYS_sync: c_long = 36; +pub const SYS_kill: c_long = 37; +pub const SYS_rename: c_long = 38; +pub const SYS_mkdir: c_long = 39; +pub const SYS_rmdir: c_long = 40; +pub const SYS_dup: c_long = 41; +pub const SYS_pipe: c_long = 42; +pub const SYS_times: c_long = 43; +pub const SYS_prof: c_long = 44; +pub const SYS_brk: c_long = 45; +pub const SYS_setgid: c_long = 46; +pub const SYS_getgid: c_long = 47; +pub const SYS_signal: c_long = 48; +pub const SYS_geteuid: c_long = 49; +pub const SYS_getegid: c_long = 50; +pub const SYS_acct: c_long = 51; +pub const SYS_umount2: c_long = 52; +pub const SYS_lock: c_long = 53; +pub const SYS_ioctl: c_long = 54; +pub const SYS_fcntl: c_long = 55; +pub const SYS_mpx: c_long = 56; +pub const SYS_setpgid: c_long = 57; +pub const SYS_ulimit: c_long = 58; +pub const SYS_oldolduname: c_long = 59; +pub const SYS_umask: c_long = 60; +pub const SYS_chroot: c_long = 61; +pub const SYS_ustat: c_long = 62; +pub const SYS_dup2: c_long = 63; +pub const SYS_getppid: c_long = 64; +pub const SYS_getpgrp: c_long = 65; +pub const SYS_setsid: c_long = 66; +pub const SYS_sigaction: c_long = 67; +pub const SYS_sgetmask: c_long = 68; +pub const SYS_ssetmask: c_long = 69; +pub const SYS_setreuid: c_long = 70; +pub const SYS_setregid: c_long = 71; +pub const SYS_sigsuspend: c_long = 72; +pub const SYS_sigpending: c_long = 73; +pub const SYS_sethostname: c_long = 74; +pub const SYS_setrlimit: c_long = 75; +pub const SYS_getrlimit: c_long = 76; +pub const SYS_getrusage: c_long = 77; +pub const SYS_gettimeofday: c_long = 78; +pub const SYS_settimeofday: c_long = 79; +pub const SYS_getgroups: c_long = 80; +pub const SYS_setgroups: c_long = 81; +pub const SYS_select: c_long = 82; +pub const SYS_symlink: c_long = 83; +pub const SYS_oldlstat: c_long = 84; +pub const SYS_readlink: c_long = 85; +pub const SYS_uselib: c_long = 86; +pub const SYS_swapon: c_long = 87; +pub const SYS_reboot: c_long = 88; +pub const SYS_readdir: c_long = 89; +pub const SYS_mmap: c_long = 90; +pub const SYS_munmap: c_long = 91; +pub const SYS_truncate: c_long = 92; +pub const SYS_ftruncate: c_long = 93; +pub const SYS_fchmod: c_long = 94; +pub const SYS_fchown: c_long = 95; +pub const SYS_getpriority: c_long = 96; +pub const SYS_setpriority: c_long = 97; +pub const SYS_profil: c_long = 98; +pub const SYS_statfs: c_long = 99; +pub const SYS_fstatfs: c_long = 100; +pub const SYS_ioperm: c_long = 101; +pub const SYS_socketcall: c_long = 102; +pub const SYS_syslog: c_long = 103; +pub const SYS_setitimer: c_long = 104; +pub const SYS_getitimer: c_long = 105; +pub const SYS_stat: c_long = 106; +pub const SYS_lstat: c_long = 107; +pub const SYS_fstat: c_long = 108; +pub const SYS_olduname: c_long = 109; +pub const SYS_iopl: c_long = 110; +pub const SYS_vhangup: c_long = 111; +pub const SYS_idle: c_long = 112; +pub const SYS_vm86old: c_long = 113; +pub const SYS_wait4: c_long = 114; +pub const SYS_swapoff: c_long = 115; +pub const SYS_sysinfo: c_long = 116; +pub const SYS_ipc: c_long = 117; +pub const SYS_fsync: c_long = 118; +pub const SYS_sigreturn: c_long = 119; +pub const SYS_clone: c_long = 120; +pub const SYS_setdomainname: c_long = 121; +pub const SYS_uname: c_long = 122; +pub const SYS_modify_ldt: c_long = 123; +pub const SYS_adjtimex: c_long = 124; +pub const SYS_mprotect: c_long = 125; +pub const SYS_sigprocmask: c_long = 126; +pub const SYS_create_module: c_long = 127; +pub const SYS_init_module: c_long = 128; +pub const SYS_delete_module: c_long = 129; +pub const SYS_get_kernel_syms: c_long = 130; +pub const SYS_quotactl: c_long = 131; +pub const SYS_getpgid: c_long = 132; +pub const SYS_fchdir: c_long = 133; +pub const SYS_bdflush: c_long = 134; +pub const SYS_sysfs: c_long = 135; +pub const SYS_personality: c_long = 136; +pub const SYS_afs_syscall: c_long = 137; +pub const SYS_setfsuid: c_long = 138; +pub const SYS_setfsgid: c_long = 139; +pub const SYS__llseek: c_long = 140; +pub const SYS_getdents: c_long = 141; +pub const SYS__newselect: c_long = 142; +pub const SYS_flock: c_long = 143; +pub const SYS_msync: c_long = 144; +pub const SYS_readv: c_long = 145; +pub const SYS_writev: c_long = 146; +pub const SYS_getsid: c_long = 147; +pub const SYS_fdatasync: c_long = 148; +pub const SYS__sysctl: c_long = 149; +pub const SYS_mlock: c_long = 150; +pub const SYS_munlock: c_long = 151; +pub const SYS_mlockall: c_long = 152; +pub const SYS_munlockall: c_long = 153; +pub const SYS_sched_setparam: c_long = 154; +pub const SYS_sched_getparam: c_long = 155; +pub const SYS_sched_setscheduler: c_long = 156; +pub const SYS_sched_getscheduler: c_long = 157; +pub const SYS_sched_yield: c_long = 158; +pub const SYS_sched_get_priority_max: c_long = 159; +pub const SYS_sched_get_priority_min: c_long = 160; +pub const SYS_sched_rr_get_interval: c_long = 161; +pub const SYS_nanosleep: c_long = 162; +pub const SYS_mremap: c_long = 163; +pub const SYS_setresuid: c_long = 164; +pub const SYS_getresuid: c_long = 165; +pub const SYS_vm86: c_long = 166; +pub const SYS_query_module: c_long = 167; +pub const SYS_poll: c_long = 168; +pub const SYS_nfsservctl: c_long = 169; +pub const SYS_setresgid: c_long = 170; +pub const SYS_getresgid: c_long = 171; +pub const SYS_prctl: c_long = 172; +pub const SYS_rt_sigreturn: c_long = 173; +pub const SYS_rt_sigaction: c_long = 174; +pub const SYS_rt_sigprocmask: c_long = 175; +pub const SYS_rt_sigpending: c_long = 176; +pub const SYS_rt_sigtimedwait: c_long = 177; +pub const SYS_rt_sigqueueinfo: c_long = 178; +pub const SYS_rt_sigsuspend: c_long = 179; +pub const SYS_pread64: c_long = 180; +pub const SYS_pwrite64: c_long = 181; +pub const SYS_chown: c_long = 182; +pub const SYS_getcwd: c_long = 183; +pub const SYS_capget: c_long = 184; +pub const SYS_capset: c_long = 185; +pub const SYS_sigaltstack: c_long = 186; +pub const SYS_sendfile: c_long = 187; +pub const SYS_getpmsg: c_long = 188; +pub const SYS_putpmsg: c_long = 189; +pub const SYS_vfork: c_long = 190; +pub const SYS_ugetrlimit: c_long = 191; +pub const SYS_mmap2: c_long = 192; +pub const SYS_truncate64: c_long = 193; +pub const SYS_ftruncate64: c_long = 194; +pub const SYS_stat64: c_long = 195; +pub const SYS_lstat64: c_long = 196; +pub const SYS_fstat64: c_long = 197; +pub const SYS_lchown32: c_long = 198; +pub const SYS_getuid32: c_long = 199; +pub const SYS_getgid32: c_long = 200; +pub const SYS_geteuid32: c_long = 201; +pub const SYS_getegid32: c_long = 202; +pub const SYS_setreuid32: c_long = 203; +pub const SYS_setregid32: c_long = 204; +pub const SYS_getgroups32: c_long = 205; +pub const SYS_setgroups32: c_long = 206; +pub const SYS_fchown32: c_long = 207; +pub const SYS_setresuid32: c_long = 208; +pub const SYS_getresuid32: c_long = 209; +pub const SYS_setresgid32: c_long = 210; +pub const SYS_getresgid32: c_long = 211; +pub const SYS_chown32: c_long = 212; +pub const SYS_setuid32: c_long = 213; +pub const SYS_setgid32: c_long = 214; +pub const SYS_setfsuid32: c_long = 215; +pub const SYS_setfsgid32: c_long = 216; +pub const SYS_pivot_root: c_long = 217; +pub const SYS_mincore: c_long = 218; +pub const SYS_madvise: c_long = 219; +pub const SYS_getdents64: c_long = 220; +pub const SYS_fcntl64: c_long = 221; +pub const SYS_gettid: c_long = 224; +pub const SYS_readahead: c_long = 225; +pub const SYS_setxattr: c_long = 226; +pub const SYS_lsetxattr: c_long = 227; +pub const SYS_fsetxattr: c_long = 228; +pub const SYS_getxattr: c_long = 229; +pub const SYS_lgetxattr: c_long = 230; +pub const SYS_fgetxattr: c_long = 231; +pub const SYS_listxattr: c_long = 232; +pub const SYS_llistxattr: c_long = 233; +pub const SYS_flistxattr: c_long = 234; +pub const SYS_removexattr: c_long = 235; +pub const SYS_lremovexattr: c_long = 236; +pub const SYS_fremovexattr: c_long = 237; +pub const SYS_tkill: c_long = 238; +pub const SYS_sendfile64: c_long = 239; +pub const SYS_futex: c_long = 240; +pub const SYS_sched_setaffinity: c_long = 241; +pub const SYS_sched_getaffinity: c_long = 242; +pub const SYS_set_thread_area: c_long = 243; +pub const SYS_get_thread_area: c_long = 244; +pub const SYS_io_setup: c_long = 245; +pub const SYS_io_destroy: c_long = 246; +pub const SYS_io_getevents: c_long = 247; +pub const SYS_io_submit: c_long = 248; +pub const SYS_io_cancel: c_long = 249; +pub const SYS_fadvise64: c_long = 250; +pub const SYS_exit_group: c_long = 252; +pub const SYS_lookup_dcookie: c_long = 253; +pub const SYS_epoll_create: c_long = 254; +pub const SYS_epoll_ctl: c_long = 255; +pub const SYS_epoll_wait: c_long = 256; +pub const SYS_remap_file_pages: c_long = 257; +pub const SYS_set_tid_address: c_long = 258; +pub const SYS_timer_create: c_long = 259; +pub const SYS_timer_settime: c_long = 260; +pub const SYS_timer_gettime: c_long = 261; +pub const SYS_timer_getoverrun: c_long = 262; +pub const SYS_timer_delete: c_long = 263; +pub const SYS_clock_settime: c_long = 264; +pub const SYS_clock_gettime: c_long = 265; +pub const SYS_clock_getres: c_long = 266; +pub const SYS_clock_nanosleep: c_long = 267; +pub const SYS_statfs64: c_long = 268; +pub const SYS_fstatfs64: c_long = 269; +pub const SYS_tgkill: c_long = 270; +pub const SYS_utimes: c_long = 271; +pub const SYS_fadvise64_64: c_long = 272; +pub const SYS_vserver: c_long = 273; +pub const SYS_mbind: c_long = 274; +pub const SYS_get_mempolicy: c_long = 275; +pub const SYS_set_mempolicy: c_long = 276; +pub const SYS_mq_open: c_long = 277; +pub const SYS_mq_unlink: c_long = 278; +pub const SYS_mq_timedsend: c_long = 279; +pub const SYS_mq_timedreceive: c_long = 280; +pub const SYS_mq_notify: c_long = 281; +pub const SYS_mq_getsetattr: c_long = 282; +pub const SYS_kexec_load: c_long = 283; +pub const SYS_waitid: c_long = 284; +pub const SYS_add_key: c_long = 286; +pub const SYS_request_key: c_long = 287; +pub const SYS_keyctl: c_long = 288; +pub const SYS_ioprio_set: c_long = 289; +pub const SYS_ioprio_get: c_long = 290; +pub const SYS_inotify_init: c_long = 291; +pub const SYS_inotify_add_watch: c_long = 292; +pub const SYS_inotify_rm_watch: c_long = 293; +pub const SYS_migrate_pages: c_long = 294; +pub const SYS_openat: c_long = 295; +pub const SYS_mkdirat: c_long = 296; +pub const SYS_mknodat: c_long = 297; +pub const SYS_fchownat: c_long = 298; +pub const SYS_futimesat: c_long = 299; +pub const SYS_fstatat64: c_long = 300; +pub const SYS_unlinkat: c_long = 301; +pub const SYS_renameat: c_long = 302; +pub const SYS_linkat: c_long = 303; +pub const SYS_symlinkat: c_long = 304; +pub const SYS_readlinkat: c_long = 305; +pub const SYS_fchmodat: c_long = 306; +pub const SYS_faccessat: c_long = 307; +pub const SYS_pselect6: c_long = 308; +pub const SYS_ppoll: c_long = 309; +pub const SYS_unshare: c_long = 310; +pub const SYS_set_robust_list: c_long = 311; +pub const SYS_get_robust_list: c_long = 312; +pub const SYS_splice: c_long = 313; +pub const SYS_sync_file_range: c_long = 314; +pub const SYS_tee: c_long = 315; +pub const SYS_vmsplice: c_long = 316; +pub const SYS_move_pages: c_long = 317; +pub const SYS_getcpu: c_long = 318; +pub const SYS_epoll_pwait: c_long = 319; +pub const SYS_utimensat: c_long = 320; +pub const SYS_signalfd: c_long = 321; +pub const SYS_timerfd_create: c_long = 322; +pub const SYS_eventfd: c_long = 323; +pub const SYS_fallocate: c_long = 324; +pub const SYS_timerfd_settime: c_long = 325; +pub const SYS_timerfd_gettime: c_long = 326; +pub const SYS_signalfd4: c_long = 327; +pub const SYS_eventfd2: c_long = 328; +pub const SYS_epoll_create1: c_long = 329; +pub const SYS_dup3: c_long = 330; +pub const SYS_pipe2: c_long = 331; +pub const SYS_inotify_init1: c_long = 332; +pub const SYS_preadv: c_long = 333; +pub const SYS_pwritev: c_long = 334; +pub const SYS_rt_tgsigqueueinfo: c_long = 335; +pub const SYS_perf_event_open: c_long = 336; +pub const SYS_recvmmsg: c_long = 337; +pub const SYS_fanotify_init: c_long = 338; +pub const SYS_fanotify_mark: c_long = 339; +pub const SYS_prlimit64: c_long = 340; +pub const SYS_name_to_handle_at: c_long = 341; +pub const SYS_open_by_handle_at: c_long = 342; +pub const SYS_clock_adjtime: c_long = 343; +pub const SYS_syncfs: c_long = 344; +pub const SYS_sendmmsg: c_long = 345; +pub const SYS_setns: c_long = 346; +pub const SYS_process_vm_readv: c_long = 347; +pub const SYS_process_vm_writev: c_long = 348; +pub const SYS_kcmp: c_long = 349; +pub const SYS_finit_module: c_long = 350; +pub const SYS_sched_setattr: c_long = 351; +pub const SYS_sched_getattr: c_long = 352; +pub const SYS_renameat2: c_long = 353; +pub const SYS_seccomp: c_long = 354; +pub const SYS_getrandom: c_long = 355; +pub const SYS_memfd_create: c_long = 356; +pub const SYS_bpf: c_long = 357; +pub const SYS_execveat: c_long = 358; +pub const SYS_socket: c_long = 359; +pub const SYS_socketpair: c_long = 360; +pub const SYS_bind: c_long = 361; +pub const SYS_connect: c_long = 362; +pub const SYS_listen: c_long = 363; +pub const SYS_accept4: c_long = 364; +pub const SYS_getsockopt: c_long = 365; +pub const SYS_setsockopt: c_long = 366; +pub const SYS_getsockname: c_long = 367; +pub const SYS_getpeername: c_long = 368; +pub const SYS_sendto: c_long = 369; +pub const SYS_sendmsg: c_long = 370; +pub const SYS_recvfrom: c_long = 371; +pub const SYS_recvmsg: c_long = 372; +pub const SYS_shutdown: c_long = 373; +pub const SYS_userfaultfd: c_long = 374; +pub const SYS_membarrier: c_long = 375; +pub const SYS_mlock2: c_long = 376; +pub const SYS_copy_file_range: c_long = 377; +pub const SYS_preadv2: c_long = 378; +pub const SYS_pwritev2: c_long = 379; +pub const SYS_pkey_mprotect: c_long = 380; +pub const SYS_pkey_alloc: c_long = 381; +pub const SYS_pkey_free: c_long = 382; +pub const SYS_statx: c_long = 383; +pub const SYS_rseq: c_long = 386; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; +pub const SYS_fchmodat2: c_long = 452; +pub const SYS_mseal: c_long = 462; // offsets in user_regs_structs, from sys/reg.h -pub const EBX: ::c_int = 0; -pub const ECX: ::c_int = 1; -pub const EDX: ::c_int = 2; -pub const ESI: ::c_int = 3; -pub const EDI: ::c_int = 4; -pub const EBP: ::c_int = 5; -pub const EAX: ::c_int = 6; -pub const DS: ::c_int = 7; -pub const ES: ::c_int = 8; -pub const FS: ::c_int = 9; -pub const GS: ::c_int = 10; -pub const ORIG_EAX: ::c_int = 11; -pub const EIP: ::c_int = 12; -pub const CS: ::c_int = 13; -pub const EFL: ::c_int = 14; -pub const UESP: ::c_int = 15; -pub const SS: ::c_int = 16; +pub const EBX: c_int = 0; +pub const ECX: c_int = 1; +pub const EDX: c_int = 2; +pub const ESI: c_int = 3; +pub const EDI: c_int = 4; +pub const EBP: c_int = 5; +pub const EAX: c_int = 6; +pub const DS: c_int = 7; +pub const ES: c_int = 8; +pub const FS: c_int = 9; +pub const GS: c_int = 10; +pub const ORIG_EAX: c_int = 11; +pub const EIP: c_int = 12; +pub const CS: c_int = 13; +pub const EFL: c_int = 14; +pub const UESP: c_int = 15; +pub const SS: c_int = 16; // offsets in mcontext_t.gregs from sys/ucontext.h -pub const REG_GS: ::c_int = 0; -pub const REG_FS: ::c_int = 1; -pub const REG_ES: ::c_int = 2; -pub const REG_DS: ::c_int = 3; -pub const REG_EDI: ::c_int = 4; -pub const REG_ESI: ::c_int = 5; -pub const REG_EBP: ::c_int = 6; -pub const REG_ESP: ::c_int = 7; -pub const REG_EBX: ::c_int = 8; -pub const REG_EDX: ::c_int = 9; -pub const REG_ECX: ::c_int = 10; -pub const REG_EAX: ::c_int = 11; -pub const REG_TRAPNO: ::c_int = 12; -pub const REG_ERR: ::c_int = 13; -pub const REG_EIP: ::c_int = 14; -pub const REG_CS: ::c_int = 15; -pub const REG_EFL: ::c_int = 16; -pub const REG_UESP: ::c_int = 17; -pub const REG_SS: ::c_int = 18; +pub const REG_GS: c_int = 0; +pub const REG_FS: c_int = 1; +pub const REG_ES: c_int = 2; +pub const REG_DS: c_int = 3; +pub const REG_EDI: c_int = 4; +pub const REG_ESI: c_int = 5; +pub const REG_EBP: c_int = 6; +pub const REG_ESP: c_int = 7; +pub const REG_EBX: c_int = 8; +pub const REG_EDX: c_int = 9; +pub const REG_ECX: c_int = 10; +pub const REG_EAX: c_int = 11; +pub const REG_TRAPNO: c_int = 12; +pub const REG_ERR: c_int = 13; +pub const REG_EIP: c_int = 14; +pub const REG_CS: c_int = 15; +pub const REG_EFL: c_int = 16; +pub const REG_UESP: c_int = 17; +pub const REG_SS: c_int = 18; extern "C" { - pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; - pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; - pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); - pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> ::c_int; + pub fn getcontext(ucp: *mut ucontext_t) -> c_int; + pub fn setcontext(ucp: *const ucontext_t) -> c_int; + pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: c_int, ...); + pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> c_int; } diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs index 5a0785c13c7a8..cec3b7ee28b5a 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs @@ -1,4 +1,4 @@ -use pthread_mutex_t; +use crate::pthread_mutex_t; pub type c_long = i32; pub type c_ulong = u32; @@ -11,46 +11,46 @@ pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20; #[cfg(target_endian = "little")] -pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "little")] -pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "little")] -pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; -pub const SYS_sync_file_range2: ::c_long = 84; +pub const SYS_sync_file_range2: c_long = 84; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs index efe3cc57e8a2f..4b09e476d370c 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs @@ -1,4 +1,4 @@ -use pthread_mutex_t; +use crate::pthread_mutex_t; pub type c_long = i64; pub type c_ulong = u64; @@ -11,49 +11,49 @@ pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 8; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; #[cfg(target_endian = "little")] -pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "little")] -pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "little")] -pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; -pub const SYS_renameat: ::c_long = 38; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_setrlimit: ::c_long = 164; +pub const SYS_renameat: c_long = 38; +pub const SYS_sync_file_range: c_long = 84; +pub const SYS_getrlimit: c_long = 163; +pub const SYS_setrlimit: c_long = 164; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index 82273217aacf1..a12614e8f8c71 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -1,142 +1,146 @@ //! AArch64-specific definitions for 64-bit linux-like values +use crate::{ + c_int, c_longlong, c_short, c_uint, c_ulonglong, c_ushort, c_void, off64_t, off_t, size_t, +}; + pub type c_char = u8; pub type wchar_t = u32; pub type nlink_t = u32; pub type blksize_t = i32; pub type suseconds_t = i64; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; s! { pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, #[cfg(target_arch = "sparc64")] - __reserved0: ::c_int, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + __reserved0: c_int, + pub sa_flags: c_int, + pub sa_restorer: Option, } pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - 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_fsid: ::fsid_t, - - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - f_spare: [::__fsword_t; 5], + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, + + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + f_spare: [crate::__fsword_t; 5], } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off64_t, + pub l_len: off64_t, + pub l_pid: crate::pid_t, } 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_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad1: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - __pad2: ::c_int, - 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_int; 2], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad1: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + __pad2: c_int, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_int; 2], } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad1: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - __pad2: ::c_int, - pub st_blocks: ::blkcnt64_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_int; 2], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad1: crate::dev_t, + pub st_size: off64_t, + pub st_blksize: crate::blksize_t, + __pad2: c_int, + pub st_blocks: crate::blkcnt64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_int; 2], } pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], + pub f_fsid: crate::fsid_t, + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + pub f_flags: crate::__fsword_t, + pub f_spare: [crate::__fsword_t; 4], } 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct pthread_attr_t { @@ -144,42 +148,42 @@ s! { } pub struct user_regs_struct { - pub regs: [::c_ulonglong; 31], - pub sp: ::c_ulonglong, - pub pc: ::c_ulonglong, - pub pstate: ::c_ulonglong, + pub regs: [c_ulonglong; 31], + pub sp: c_ulonglong, + pub pc: c_ulonglong, + pub pstate: c_ulonglong, } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_uint, - pub __seq: ::c_ushort, - __pad1: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: c_uint, + pub __seq: c_ushort, + __pad1: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __unused4: c_ulong, + __unused5: c_ulong, } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, #[doc(hidden)] #[deprecated( since = "0.2.54", @@ -187,53 +191,53 @@ s! { https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] - pub _pad: [::c_int; 29], + pub _pad: [c_int; 29], _align: [usize; 0], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } pub struct ucontext_t { - pub uc_flags: ::c_ulong, + pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, + pub uc_stack: crate::stack_t, + pub uc_sigmask: crate::sigset_t, pub uc_mcontext: mcontext_t, } #[repr(align(16))] pub struct mcontext_t { - pub fault_address: ::c_ulonglong, - pub regs: [::c_ulonglong; 31], - pub sp: ::c_ulonglong, - pub pc: ::c_ulonglong, - pub pstate: ::c_ulonglong, + pub fault_address: c_ulonglong, + pub regs: [c_ulonglong; 31], + pub sp: c_ulonglong, + pub pc: c_ulonglong, + pub pstate: c_ulonglong, __reserved: [u64; 512], } pub struct user_fpsimd_struct { - pub vregs: [::__uint128_t; 32], - pub fpsr: ::c_uint, - pub fpcr: ::c_uint, + pub vregs: [crate::__uint128_t; 32], + pub fpsr: c_uint, + pub fpcr: c_uint, } #[repr(align(8))] pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, + pub flags: c_ulonglong, + pub pidfd: c_ulonglong, + pub child_tid: c_ulonglong, + pub parent_tid: c_ulonglong, + pub exit_signal: c_ulonglong, + pub stack: c_ulonglong, + pub stack_size: c_ulonglong, + pub tls: c_ulonglong, + pub set_tid: c_ulonglong, + pub set_tid_size: c_ulonglong, + pub cgroup: c_ulonglong, } } @@ -247,237 +251,237 @@ s_no_extra_traits! { pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; - -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; - -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; +pub const RTLD_DEEPBIND: c_int = 0x8; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_NOLOAD: c_int = 0x4; + +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_FSYNC: c_int = 0x101000; +pub const O_NOATIME: c_int = 0o1000000; +pub const O_PATH: c_int = 0o10000000; +pub const O_TMPFILE: c_int = 0o20000000 | O_DIRECTORY; + +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MAP_GROWSDOWN: c_int = 0x0100; + +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EBADMSG: c_int = 74; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const EHWPOISON: c_int = 133; +pub const ERFKILL: c_int = 132; + +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; + +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; + +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; #[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGUNUSED: c_int = 31; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; +pub const O_ASYNC: c_int = 0x2000; +pub const O_NDELAY: c_int = 0x800; -pub const PTRACE_DETACH: ::c_uint = 17; +pub const PTRACE_DETACH: c_uint = 17; -pub const EFD_NONBLOCK: ::c_int = 0x800; +pub const EFD_NONBLOCK: c_int = 0x800; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETOWN: c_int = 8; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; +pub const F_OFD_GETLK: c_int = 36; +pub const F_OFD_SETLK: c_int = 37; +pub const F_OFD_SETLKW: c_int = 38; -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; +pub const F_RDLCK: c_int = 0; +pub const F_WRLCK: c_int = 1; +pub const F_UNLCK: c_int = 2; -pub const SFD_NONBLOCK: ::c_int = 0x0800; +pub const SFD_NONBLOCK: c_int = 0x0800; -pub const SFD_CLOEXEC: ::c_int = 0x080000; +pub const SFD_CLOEXEC: c_int = 0x080000; pub const NCCS: usize = 32; -pub const O_TRUNC: ::c_int = 512; - -pub const O_CLOEXEC: ::c_int = 0x80000; - -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; - -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -pub const EFD_CLOEXEC: ::c_int = 0x80000; - -pub const O_DIRECT: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; - -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const EDEADLOCK: ::c_int = 35; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; - -pub const SIGSTKSZ: ::size_t = 16384; -pub const MINSIGSTKSZ: ::size_t = 5120; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; +pub const O_TRUNC: c_int = 512; + +pub const O_CLOEXEC: c_int = 0x80000; + +pub const EBFONT: c_int = 59; +pub const ENOSTR: c_int = 60; +pub const ENODATA: c_int = 61; +pub const ETIME: c_int = 62; +pub const ENOSR: c_int = 63; +pub const ENONET: c_int = 64; +pub const ENOPKG: c_int = 65; +pub const EREMOTE: c_int = 66; +pub const ENOLINK: c_int = 67; +pub const EADV: c_int = 68; +pub const ESRMNT: c_int = 69; +pub const ECOMM: c_int = 70; +pub const EPROTO: c_int = 71; +pub const EDOTDOT: c_int = 73; + +pub const SA_NODEFER: c_int = 0x40000000; +pub const SA_RESETHAND: c_int = 0x80000000; +pub const SA_RESTART: c_int = 0x10000000; +pub const SA_NOCLDSTOP: c_int = 0x00000001; + +pub const EPOLL_CLOEXEC: c_int = 0x80000; + +pub const EFD_CLOEXEC: c_int = 0x80000; + +pub const O_DIRECT: c_int = 0x10000; +pub const O_DIRECTORY: c_int = 0x4000; +pub const O_NOFOLLOW: c_int = 0x8000; + +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_ANONYMOUS: c_int = 0x0020; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_SYNC: c_int = 0x080000; + +pub const EDEADLOCK: c_int = 35; + +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; + +pub const SIGSTKSZ: size_t = 16384; +pub const MINSIGSTKSZ: size_t = 5120; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: crate::tcflag_t = 0x00000800; +pub const TAB2: crate::tcflag_t = 0x00001000; +pub const TAB3: crate::tcflag_t = 0x00001800; +pub const CR1: crate::tcflag_t = 0x00000200; +pub const CR2: crate::tcflag_t = 0x00000400; +pub const CR3: crate::tcflag_t = 0x00000600; +pub const FF1: crate::tcflag_t = 0x00008000; +pub const BS1: crate::tcflag_t = 0x00002000; +pub const VT1: crate::tcflag_t = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -485,478 +489,478 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; + +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; -pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; +pub const EXTPROC: crate::tcflag_t = 0x00010000; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; // sys/auxv.h -pub const HWCAP_FP: ::c_ulong = 1 << 0; -pub const HWCAP_ASIMD: ::c_ulong = 1 << 1; -pub const HWCAP_EVTSTRM: ::c_ulong = 1 << 2; -pub const HWCAP_AES: ::c_ulong = 1 << 3; -pub const HWCAP_PMULL: ::c_ulong = 1 << 4; -pub const HWCAP_SHA1: ::c_ulong = 1 << 5; -pub const HWCAP_SHA2: ::c_ulong = 1 << 6; -pub const HWCAP_CRC32: ::c_ulong = 1 << 7; -pub const HWCAP_ATOMICS: ::c_ulong = 1 << 8; -pub const HWCAP_FPHP: ::c_ulong = 1 << 9; -pub const HWCAP_ASIMDHP: ::c_ulong = 1 << 10; -pub const HWCAP_CPUID: ::c_ulong = 1 << 11; -pub const HWCAP_ASIMDRDM: ::c_ulong = 1 << 12; -pub const HWCAP_JSCVT: ::c_ulong = 1 << 13; -pub const HWCAP_FCMA: ::c_ulong = 1 << 14; -pub const HWCAP_LRCPC: ::c_ulong = 1 << 15; -pub const HWCAP_DCPOP: ::c_ulong = 1 << 16; -pub const HWCAP_SHA3: ::c_ulong = 1 << 17; -pub const HWCAP_SM3: ::c_ulong = 1 << 18; -pub const HWCAP_SM4: ::c_ulong = 1 << 19; -pub const HWCAP_ASIMDDP: ::c_ulong = 1 << 20; -pub const HWCAP_SHA512: ::c_ulong = 1 << 21; -pub const HWCAP_SVE: ::c_ulong = 1 << 22; -pub const HWCAP_ASIMDFHM: ::c_ulong = 1 << 23; -pub const HWCAP_DIT: ::c_ulong = 1 << 24; -pub const HWCAP_USCAT: ::c_ulong = 1 << 25; -pub const HWCAP_ILRCPC: ::c_ulong = 1 << 26; -pub const HWCAP_FLAGM: ::c_ulong = 1 << 27; -pub const HWCAP_SSBS: ::c_ulong = 1 << 28; -pub const HWCAP_SB: ::c_ulong = 1 << 29; -pub const HWCAP_PACA: ::c_ulong = 1 << 30; -pub const HWCAP_PACG: ::c_ulong = 1 << 31; +pub const HWCAP_FP: c_ulong = 1 << 0; +pub const HWCAP_ASIMD: c_ulong = 1 << 1; +pub const HWCAP_EVTSTRM: c_ulong = 1 << 2; +pub const HWCAP_AES: c_ulong = 1 << 3; +pub const HWCAP_PMULL: c_ulong = 1 << 4; +pub const HWCAP_SHA1: c_ulong = 1 << 5; +pub const HWCAP_SHA2: c_ulong = 1 << 6; +pub const HWCAP_CRC32: c_ulong = 1 << 7; +pub const HWCAP_ATOMICS: c_ulong = 1 << 8; +pub const HWCAP_FPHP: c_ulong = 1 << 9; +pub const HWCAP_ASIMDHP: c_ulong = 1 << 10; +pub const HWCAP_CPUID: c_ulong = 1 << 11; +pub const HWCAP_ASIMDRDM: c_ulong = 1 << 12; +pub const HWCAP_JSCVT: c_ulong = 1 << 13; +pub const HWCAP_FCMA: c_ulong = 1 << 14; +pub const HWCAP_LRCPC: c_ulong = 1 << 15; +pub const HWCAP_DCPOP: c_ulong = 1 << 16; +pub const HWCAP_SHA3: c_ulong = 1 << 17; +pub const HWCAP_SM3: c_ulong = 1 << 18; +pub const HWCAP_SM4: c_ulong = 1 << 19; +pub const HWCAP_ASIMDDP: c_ulong = 1 << 20; +pub const HWCAP_SHA512: c_ulong = 1 << 21; +pub const HWCAP_SVE: c_ulong = 1 << 22; +pub const HWCAP_ASIMDFHM: c_ulong = 1 << 23; +pub const HWCAP_DIT: c_ulong = 1 << 24; +pub const HWCAP_USCAT: c_ulong = 1 << 25; +pub const HWCAP_ILRCPC: c_ulong = 1 << 26; +pub const HWCAP_FLAGM: c_ulong = 1 << 27; +pub const HWCAP_SSBS: c_ulong = 1 << 28; +pub const HWCAP_SB: c_ulong = 1 << 29; +pub const HWCAP_PACA: c_ulong = 1 << 30; +pub const HWCAP_PACG: c_ulong = 1 << 31; // FIXME: enable these again once linux-api-headers are up to date enough on CI. // See discussion in https://github.com/rust-lang/libc/pull/1638 -//pub const HWCAP2_DCPODP: ::c_ulong = 1 << 0; -//pub const HWCAP2_SVE2: ::c_ulong = 1 << 1; -//pub const HWCAP2_SVEAES: ::c_ulong = 1 << 2; -//pub const HWCAP2_SVEPMULL: ::c_ulong = 1 << 3; -//pub const HWCAP2_SVEBITPERM: ::c_ulong = 1 << 4; -//pub const HWCAP2_SVESHA3: ::c_ulong = 1 << 5; -//pub const HWCAP2_SVESM4: ::c_ulong = 1 << 6; -//pub const HWCAP2_FLAGM2: ::c_ulong = 1 << 7; -//pub const HWCAP2_FRINT: ::c_ulong = 1 << 8; -//pub const HWCAP2_MTE: ::c_ulong = 1 << 18; +//pub const HWCAP2_DCPODP: c_ulong = 1 << 0; +//pub const HWCAP2_SVE2: c_ulong = 1 << 1; +//pub const HWCAP2_SVEAES: c_ulong = 1 << 2; +//pub const HWCAP2_SVEPMULL: c_ulong = 1 << 3; +//pub const HWCAP2_SVEBITPERM: c_ulong = 1 << 4; +//pub const HWCAP2_SVESHA3: c_ulong = 1 << 5; +//pub const HWCAP2_SVESM4: c_ulong = 1 << 6; +//pub const HWCAP2_FLAGM2: c_ulong = 1 << 7; +//pub const HWCAP2_FRINT: c_ulong = 1 << 8; +//pub const HWCAP2_MTE: c_ulong = 1 << 18; // linux/prctl.h -pub const PR_PAC_RESET_KEYS: ::c_int = 54; -pub const PR_SET_TAGGED_ADDR_CTRL: ::c_int = 55; -pub const PR_GET_TAGGED_ADDR_CTRL: ::c_int = 56; -pub const PR_PAC_SET_ENABLED_KEYS: ::c_int = 60; -pub const PR_PAC_GET_ENABLED_KEYS: ::c_int = 61; +pub const PR_PAC_RESET_KEYS: c_int = 54; +pub const PR_SET_TAGGED_ADDR_CTRL: c_int = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: c_int = 56; +pub const PR_PAC_SET_ENABLED_KEYS: c_int = 60; +pub const PR_PAC_GET_ENABLED_KEYS: c_int = 61; -pub const PR_TAGGED_ADDR_ENABLE: ::c_ulong = 1; +pub const PR_TAGGED_ADDR_ENABLE: c_ulong = 1; -pub const PR_PAC_APIAKEY: ::c_ulong = 1 << 0; -pub const PR_PAC_APIBKEY: ::c_ulong = 1 << 1; -pub const PR_PAC_APDAKEY: ::c_ulong = 1 << 2; -pub const PR_PAC_APDBKEY: ::c_ulong = 1 << 3; -pub const PR_PAC_APGAKEY: ::c_ulong = 1 << 4; +pub const PR_PAC_APIAKEY: c_ulong = 1 << 0; +pub const PR_PAC_APIBKEY: c_ulong = 1 << 1; +pub const PR_PAC_APDAKEY: c_ulong = 1 << 2; +pub const PR_PAC_APDBKEY: c_ulong = 1 << 3; +pub const PR_PAC_APGAKEY: c_ulong = 1 << 4; -pub const PR_SME_SET_VL: ::c_int = 63; -pub const PR_SME_GET_VL: ::c_int = 64; -pub const PR_SME_VL_LEN_MAX: ::c_int = 0xffff; +pub const PR_SME_SET_VL: c_int = 63; +pub const PR_SME_GET_VL: c_int = 64; +pub const PR_SME_VL_LEN_MAX: c_int = 0xffff; -pub const PR_SME_SET_VL_INHERIT: ::c_ulong = 1 << 17; -pub const PR_SME_SET_VL_ONE_EXEC: ::c_ulong = 1 << 18; +pub const PR_SME_SET_VL_INHERIT: c_ulong = 1 << 17; +pub const PR_SME_SET_VL_ONE_EXEC: c_ulong = 1 << 18; // Syscall table -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_dup: ::c_long = 23; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_flock: ::c_long = 32; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_linkat: ::c_long = 37; +pub const SYS_io_setup: c_long = 0; +pub const SYS_io_destroy: c_long = 1; +pub const SYS_io_submit: c_long = 2; +pub const SYS_io_cancel: c_long = 3; +pub const SYS_io_getevents: c_long = 4; +pub const SYS_setxattr: c_long = 5; +pub const SYS_lsetxattr: c_long = 6; +pub const SYS_fsetxattr: c_long = 7; +pub const SYS_getxattr: c_long = 8; +pub const SYS_lgetxattr: c_long = 9; +pub const SYS_fgetxattr: c_long = 10; +pub const SYS_listxattr: c_long = 11; +pub const SYS_llistxattr: c_long = 12; +pub const SYS_flistxattr: c_long = 13; +pub const SYS_removexattr: c_long = 14; +pub const SYS_lremovexattr: c_long = 15; +pub const SYS_fremovexattr: c_long = 16; +pub const SYS_getcwd: c_long = 17; +pub const SYS_lookup_dcookie: c_long = 18; +pub const SYS_eventfd2: c_long = 19; +pub const SYS_epoll_create1: c_long = 20; +pub const SYS_epoll_ctl: c_long = 21; +pub const SYS_epoll_pwait: c_long = 22; +pub const SYS_dup: c_long = 23; +pub const SYS_dup3: c_long = 24; +pub const SYS_fcntl: c_long = 25; +pub const SYS_inotify_init1: c_long = 26; +pub const SYS_inotify_add_watch: c_long = 27; +pub const SYS_inotify_rm_watch: c_long = 28; +pub const SYS_ioctl: c_long = 29; +pub const SYS_ioprio_set: c_long = 30; +pub const SYS_ioprio_get: c_long = 31; +pub const SYS_flock: c_long = 32; +pub const SYS_mknodat: c_long = 33; +pub const SYS_mkdirat: c_long = 34; +pub const SYS_unlinkat: c_long = 35; +pub const SYS_symlinkat: c_long = 36; +pub const SYS_linkat: c_long = 37; // 38 is renameat only on LP64 -pub const SYS_umount2: ::c_long = 39; -pub const SYS_mount: ::c_long = 40; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_statfs: ::c_long = 43; -pub const SYS_fstatfs: ::c_long = 44; -pub const SYS_truncate: ::c_long = 45; -pub const SYS_ftruncate: ::c_long = 46; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_openat: ::c_long = 56; -pub const SYS_close: ::c_long = 57; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_lseek: ::c_long = 62; -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_newfstatat: ::c_long = 79; -pub const SYS_fstat: ::c_long = 80; -pub const SYS_sync: ::c_long = 81; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; +pub const SYS_umount2: c_long = 39; +pub const SYS_mount: c_long = 40; +pub const SYS_pivot_root: c_long = 41; +pub const SYS_nfsservctl: c_long = 42; +pub const SYS_statfs: c_long = 43; +pub const SYS_fstatfs: c_long = 44; +pub const SYS_truncate: c_long = 45; +pub const SYS_ftruncate: c_long = 46; +pub const SYS_fallocate: c_long = 47; +pub const SYS_faccessat: c_long = 48; +pub const SYS_chdir: c_long = 49; +pub const SYS_fchdir: c_long = 50; +pub const SYS_chroot: c_long = 51; +pub const SYS_fchmod: c_long = 52; +pub const SYS_fchmodat: c_long = 53; +pub const SYS_fchownat: c_long = 54; +pub const SYS_fchown: c_long = 55; +pub const SYS_openat: c_long = 56; +pub const SYS_close: c_long = 57; +pub const SYS_vhangup: c_long = 58; +pub const SYS_pipe2: c_long = 59; +pub const SYS_quotactl: c_long = 60; +pub const SYS_getdents64: c_long = 61; +pub const SYS_lseek: c_long = 62; +pub const SYS_read: c_long = 63; +pub const SYS_write: c_long = 64; +pub const SYS_readv: c_long = 65; +pub const SYS_writev: c_long = 66; +pub const SYS_pread64: c_long = 67; +pub const SYS_pwrite64: c_long = 68; +pub const SYS_preadv: c_long = 69; +pub const SYS_pwritev: c_long = 70; +pub const SYS_pselect6: c_long = 72; +pub const SYS_ppoll: c_long = 73; +pub const SYS_signalfd4: c_long = 74; +pub const SYS_vmsplice: c_long = 75; +pub const SYS_splice: c_long = 76; +pub const SYS_tee: c_long = 77; +pub const SYS_readlinkat: c_long = 78; +pub const SYS_newfstatat: c_long = 79; +pub const SYS_fstat: c_long = 80; +pub const SYS_sync: c_long = 81; +pub const SYS_fsync: c_long = 82; +pub const SYS_fdatasync: c_long = 83; // 84 sync_file_range on LP64 and sync_file_range2 on ILP32 -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_acct: ::c_long = 89; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_personality: ::c_long = 92; -pub const SYS_exit: ::c_long = 93; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_futex: ::c_long = 98; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_kill: ::c_long = 129; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_times: ::c_long = 153; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_uname: ::c_long = 160; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; +pub const SYS_timerfd_create: c_long = 85; +pub const SYS_timerfd_settime: c_long = 86; +pub const SYS_timerfd_gettime: c_long = 87; +pub const SYS_utimensat: c_long = 88; +pub const SYS_acct: c_long = 89; +pub const SYS_capget: c_long = 90; +pub const SYS_capset: c_long = 91; +pub const SYS_personality: c_long = 92; +pub const SYS_exit: c_long = 93; +pub const SYS_exit_group: c_long = 94; +pub const SYS_waitid: c_long = 95; +pub const SYS_set_tid_address: c_long = 96; +pub const SYS_unshare: c_long = 97; +pub const SYS_futex: c_long = 98; +pub const SYS_set_robust_list: c_long = 99; +pub const SYS_get_robust_list: c_long = 100; +pub const SYS_nanosleep: c_long = 101; +pub const SYS_getitimer: c_long = 102; +pub const SYS_setitimer: c_long = 103; +pub const SYS_kexec_load: c_long = 104; +pub const SYS_init_module: c_long = 105; +pub const SYS_delete_module: c_long = 106; +pub const SYS_timer_create: c_long = 107; +pub const SYS_timer_gettime: c_long = 108; +pub const SYS_timer_getoverrun: c_long = 109; +pub const SYS_timer_settime: c_long = 110; +pub const SYS_timer_delete: c_long = 111; +pub const SYS_clock_settime: c_long = 112; +pub const SYS_clock_gettime: c_long = 113; +pub const SYS_clock_getres: c_long = 114; +pub const SYS_clock_nanosleep: c_long = 115; +pub const SYS_syslog: c_long = 116; +pub const SYS_ptrace: c_long = 117; +pub const SYS_sched_setparam: c_long = 118; +pub const SYS_sched_setscheduler: c_long = 119; +pub const SYS_sched_getscheduler: c_long = 120; +pub const SYS_sched_getparam: c_long = 121; +pub const SYS_sched_setaffinity: c_long = 122; +pub const SYS_sched_getaffinity: c_long = 123; +pub const SYS_sched_yield: c_long = 124; +pub const SYS_sched_get_priority_max: c_long = 125; +pub const SYS_sched_get_priority_min: c_long = 126; +pub const SYS_sched_rr_get_interval: c_long = 127; +pub const SYS_restart_syscall: c_long = 128; +pub const SYS_kill: c_long = 129; +pub const SYS_tkill: c_long = 130; +pub const SYS_tgkill: c_long = 131; +pub const SYS_sigaltstack: c_long = 132; +pub const SYS_rt_sigsuspend: c_long = 133; +pub const SYS_rt_sigaction: c_long = 134; +pub const SYS_rt_sigprocmask: c_long = 135; +pub const SYS_rt_sigpending: c_long = 136; +pub const SYS_rt_sigtimedwait: c_long = 137; +pub const SYS_rt_sigqueueinfo: c_long = 138; +pub const SYS_rt_sigreturn: c_long = 139; +pub const SYS_setpriority: c_long = 140; +pub const SYS_getpriority: c_long = 141; +pub const SYS_reboot: c_long = 142; +pub const SYS_setregid: c_long = 143; +pub const SYS_setgid: c_long = 144; +pub const SYS_setreuid: c_long = 145; +pub const SYS_setuid: c_long = 146; +pub const SYS_setresuid: c_long = 147; +pub const SYS_getresuid: c_long = 148; +pub const SYS_setresgid: c_long = 149; +pub const SYS_getresgid: c_long = 150; +pub const SYS_setfsuid: c_long = 151; +pub const SYS_setfsgid: c_long = 152; +pub const SYS_times: c_long = 153; +pub const SYS_setpgid: c_long = 154; +pub const SYS_getpgid: c_long = 155; +pub const SYS_getsid: c_long = 156; +pub const SYS_setsid: c_long = 157; +pub const SYS_getgroups: c_long = 158; +pub const SYS_setgroups: c_long = 159; +pub const SYS_uname: c_long = 160; +pub const SYS_sethostname: c_long = 161; +pub const SYS_setdomainname: c_long = 162; // 163 is getrlimit only on LP64 // 164 is setrlimit only on LP64 -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_umask: ::c_long = 166; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_semop: ::c_long = 193; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_socket: ::c_long = 198; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_accept: ::c_long = 202; -pub const SYS_connect: ::c_long = 203; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_brk: ::c_long = 214; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_mmap: ::c_long = 222; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_setns: ::c_long = 268; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_rseq: ::c_long = 293; -pub const SYS_kexec_file_load: ::c_long = 294; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; -pub const SYS_mseal: ::c_long = 462; - -pub const PROT_BTI: ::c_int = 0x10; -pub const PROT_MTE: ::c_int = 0x20; +pub const SYS_getrusage: c_long = 165; +pub const SYS_umask: c_long = 166; +pub const SYS_prctl: c_long = 167; +pub const SYS_getcpu: c_long = 168; +pub const SYS_gettimeofday: c_long = 169; +pub const SYS_settimeofday: c_long = 170; +pub const SYS_adjtimex: c_long = 171; +pub const SYS_getpid: c_long = 172; +pub const SYS_getppid: c_long = 173; +pub const SYS_getuid: c_long = 174; +pub const SYS_geteuid: c_long = 175; +pub const SYS_getgid: c_long = 176; +pub const SYS_getegid: c_long = 177; +pub const SYS_gettid: c_long = 178; +pub const SYS_sysinfo: c_long = 179; +pub const SYS_mq_open: c_long = 180; +pub const SYS_mq_unlink: c_long = 181; +pub const SYS_mq_timedsend: c_long = 182; +pub const SYS_mq_timedreceive: c_long = 183; +pub const SYS_mq_notify: c_long = 184; +pub const SYS_mq_getsetattr: c_long = 185; +pub const SYS_msgget: c_long = 186; +pub const SYS_msgctl: c_long = 187; +pub const SYS_msgrcv: c_long = 188; +pub const SYS_msgsnd: c_long = 189; +pub const SYS_semget: c_long = 190; +pub const SYS_semctl: c_long = 191; +pub const SYS_semtimedop: c_long = 192; +pub const SYS_semop: c_long = 193; +pub const SYS_shmget: c_long = 194; +pub const SYS_shmctl: c_long = 195; +pub const SYS_shmat: c_long = 196; +pub const SYS_shmdt: c_long = 197; +pub const SYS_socket: c_long = 198; +pub const SYS_socketpair: c_long = 199; +pub const SYS_bind: c_long = 200; +pub const SYS_listen: c_long = 201; +pub const SYS_accept: c_long = 202; +pub const SYS_connect: c_long = 203; +pub const SYS_getsockname: c_long = 204; +pub const SYS_getpeername: c_long = 205; +pub const SYS_sendto: c_long = 206; +pub const SYS_recvfrom: c_long = 207; +pub const SYS_setsockopt: c_long = 208; +pub const SYS_getsockopt: c_long = 209; +pub const SYS_shutdown: c_long = 210; +pub const SYS_sendmsg: c_long = 211; +pub const SYS_recvmsg: c_long = 212; +pub const SYS_readahead: c_long = 213; +pub const SYS_brk: c_long = 214; +pub const SYS_munmap: c_long = 215; +pub const SYS_mremap: c_long = 216; +pub const SYS_add_key: c_long = 217; +pub const SYS_request_key: c_long = 218; +pub const SYS_keyctl: c_long = 219; +pub const SYS_clone: c_long = 220; +pub const SYS_execve: c_long = 221; +pub const SYS_mmap: c_long = 222; +pub const SYS_swapon: c_long = 224; +pub const SYS_swapoff: c_long = 225; +pub const SYS_mprotect: c_long = 226; +pub const SYS_msync: c_long = 227; +pub const SYS_mlock: c_long = 228; +pub const SYS_munlock: c_long = 229; +pub const SYS_mlockall: c_long = 230; +pub const SYS_munlockall: c_long = 231; +pub const SYS_mincore: c_long = 232; +pub const SYS_madvise: c_long = 233; +pub const SYS_remap_file_pages: c_long = 234; +pub const SYS_mbind: c_long = 235; +pub const SYS_get_mempolicy: c_long = 236; +pub const SYS_set_mempolicy: c_long = 237; +pub const SYS_migrate_pages: c_long = 238; +pub const SYS_move_pages: c_long = 239; +pub const SYS_rt_tgsigqueueinfo: c_long = 240; +pub const SYS_perf_event_open: c_long = 241; +pub const SYS_accept4: c_long = 242; +pub const SYS_recvmmsg: c_long = 243; +pub const SYS_wait4: c_long = 260; +pub const SYS_prlimit64: c_long = 261; +pub const SYS_fanotify_init: c_long = 262; +pub const SYS_fanotify_mark: c_long = 263; +pub const SYS_name_to_handle_at: c_long = 264; +pub const SYS_open_by_handle_at: c_long = 265; +pub const SYS_clock_adjtime: c_long = 266; +pub const SYS_syncfs: c_long = 267; +pub const SYS_setns: c_long = 268; +pub const SYS_sendmmsg: c_long = 269; +pub const SYS_process_vm_readv: c_long = 270; +pub const SYS_process_vm_writev: c_long = 271; +pub const SYS_kcmp: c_long = 272; +pub const SYS_finit_module: c_long = 273; +pub const SYS_sched_setattr: c_long = 274; +pub const SYS_sched_getattr: c_long = 275; +pub const SYS_renameat2: c_long = 276; +pub const SYS_seccomp: c_long = 277; +pub const SYS_getrandom: c_long = 278; +pub const SYS_memfd_create: c_long = 279; +pub const SYS_bpf: c_long = 280; +pub const SYS_execveat: c_long = 281; +pub const SYS_userfaultfd: c_long = 282; +pub const SYS_membarrier: c_long = 283; +pub const SYS_mlock2: c_long = 284; +pub const SYS_copy_file_range: c_long = 285; +pub const SYS_preadv2: c_long = 286; +pub const SYS_pwritev2: c_long = 287; +pub const SYS_pkey_mprotect: c_long = 288; +pub const SYS_pkey_alloc: c_long = 289; +pub const SYS_pkey_free: c_long = 290; +pub const SYS_statx: c_long = 291; +pub const SYS_rseq: c_long = 293; +pub const SYS_kexec_file_load: c_long = 294; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; +pub const SYS_mseal: c_long = 462; + +pub const PROT_BTI: c_int = 0x10; +pub const PROT_MTE: c_int = 0x20; extern "C" { pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; - - pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; - pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; - pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); - pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> ::c_int; + name: *mut c_int, + namelen: c_int, + oldp: *mut c_void, + oldlenp: *mut size_t, + newp: *mut c_void, + newlen: size_t, + ) -> c_int; + + pub fn getcontext(ucp: *mut ucontext_t) -> c_int; + pub fn setcontext(ucp: *const ucontext_t) -> c_int; + pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: c_int, ...); + pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> c_int; } cfg_if! { diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs index ff807e5ae6fb2..8305ccdf25a53 100644 --- a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs @@ -1,4 +1,7 @@ -use pthread_mutex_t; +use crate::{ + c_int, c_longlong, c_short, c_uint, c_ulonglong, c_ushort, c_void, off64_t, off_t, + pthread_mutex_t, size_t, +}; pub type c_char = i8; pub type c_long = i64; @@ -8,151 +11,151 @@ pub type wchar_t = i32; pub type blksize_t = i32; pub type nlink_t = u32; pub type suseconds_t = i64; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; s! { 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_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad1: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - __pad2: ::c_int, - 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_int; 2], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad1: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + __pad2: c_int, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_int; 2], } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - 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_int; 2], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino64_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub __pad1: crate::dev_t, + pub st_size: off64_t, + pub st_blksize: crate::blksize_t, + pub __pad2: c_int, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_int; 2], } pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - 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_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + pub f_flags: crate::__fsword_t, + pub f_spare: [crate::__fsword_t; 4], } pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], + pub f_fsid: crate::fsid_t, + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + pub f_flags: crate::__fsword_t, + pub f_spare: [crate::__fsword_t; 4], } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off64_t, + pub l_len: off64_t, + pub l_pid: crate::pid_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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct pthread_attr_t { - __size: [::c_ulong; 7], + __size: [c_ulong; 7], } pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, + pub sa_flags: c_int, + pub sa_restorer: Option, } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, #[doc(hidden)] #[deprecated( since = "0.2.54", @@ -160,34 +163,34 @@ s! { https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] - pub _pad: [::c_int; 29], + pub _pad: [c_int; 29], _align: [u64; 0], } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_uint, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: c_uint, + pub __seq: c_ushort, + __pad2: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __unused4: c_ulong, + __unused5: c_ulong, } pub struct user_regs_struct { @@ -205,34 +208,34 @@ s! { } pub struct ucontext_t { - pub uc_flags: ::c_ulong, + pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, + pub uc_stack: crate::stack_t, + pub uc_sigmask: crate::sigset_t, pub uc_mcontext: mcontext_t, } #[repr(align(16))] pub struct mcontext_t { - pub __pc: ::c_ulonglong, - pub __gregs: [::c_ulonglong; 32], - pub __flags: ::c_uint, - pub __extcontext: [::c_ulonglong; 0], + pub __pc: c_ulonglong, + pub __gregs: [c_ulonglong; 32], + pub __flags: c_uint, + pub __extcontext: [c_ulonglong; 0], } #[repr(align(8))] pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, + pub flags: c_ulonglong, + pub pidfd: c_ulonglong, + pub child_tid: c_ulonglong, + pub parent_tid: c_ulonglong, + pub exit_signal: c_ulonglong, + pub stack: c_ulonglong, + pub stack_size: c_ulonglong, + pub tls: c_ulonglong, + pub set_tid: c_ulonglong, + pub set_tid_size: c_ulonglong, + pub cgroup: c_ulonglong, } } @@ -252,21 +255,21 @@ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; #[cfg(target_endian = "little")] -pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "little")] -pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "little")] -pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -294,527 +297,527 @@ pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mut ], }; -pub const HWCAP_LOONGARCH_CPUCFG: ::c_ulong = 1 << 0; -pub const HWCAP_LOONGARCH_LAM: ::c_ulong = 1 << 1; -pub const HWCAP_LOONGARCH_UAL: ::c_ulong = 1 << 2; -pub const HWCAP_LOONGARCH_FPU: ::c_ulong = 1 << 3; -pub const HWCAP_LOONGARCH_LSX: ::c_ulong = 1 << 4; -pub const HWCAP_LOONGARCH_LASX: ::c_ulong = 1 << 5; -pub const HWCAP_LOONGARCH_CRC32: ::c_ulong = 1 << 6; -pub const HWCAP_LOONGARCH_COMPLEX: ::c_ulong = 1 << 7; -pub const HWCAP_LOONGARCH_CRYPTO: ::c_ulong = 1 << 8; -pub const HWCAP_LOONGARCH_LVZ: ::c_ulong = 1 << 9; -pub const HWCAP_LOONGARCH_LBT_X86: ::c_ulong = 1 << 10; -pub const HWCAP_LOONGARCH_LBT_ARM: ::c_ulong = 1 << 11; -pub const HWCAP_LOONGARCH_LBT_MIPS: ::c_ulong = 1 << 12; -pub const HWCAP_LOONGARCH_PTW: ::c_ulong = 1 << 13; - -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_dup: ::c_long = 23; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_flock: ::c_long = 32; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_mount: ::c_long = 40; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_statfs: ::c_long = 43; -pub const SYS_fstatfs: ::c_long = 44; -pub const SYS_truncate: ::c_long = 45; -pub const SYS_ftruncate: ::c_long = 46; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_openat: ::c_long = 56; -pub const SYS_close: ::c_long = 57; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_lseek: ::c_long = 62; -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_sendfile: ::c_long = 71; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_sync: ::c_long = 81; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_acct: ::c_long = 89; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_personality: ::c_long = 92; -pub const SYS_exit: ::c_long = 93; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_futex: ::c_long = 98; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_kill: ::c_long = 129; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_times: ::c_long = 153; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_uname: ::c_long = 160; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_umask: ::c_long = 166; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_semop: ::c_long = 193; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_socket: ::c_long = 198; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_accept: ::c_long = 202; -pub const SYS_connect: ::c_long = 203; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_brk: ::c_long = 214; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_mmap: ::c_long = 222; -pub const SYS_fadvise64: ::c_long = 223; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_recvmmsg: ::c_long = 243; -//pub const SYS_arch_specific_syscall: ::c_long = 244; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_setns: ::c_long = 268; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_io_pgetevents: ::c_long = 292; -pub const SYS_rseq: ::c_long = 293; -pub const SYS_kexec_file_load: ::c_long = 294; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; -pub const O_DIRECT: ::c_int = 0o00040000; -pub const O_DIRECTORY: ::c_int = 0o00200000; -pub const O_NOFOLLOW: ::c_int = 0o00400000; -pub const O_TRUNC: ::c_int = 0o00001000; -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_CLOEXEC: ::c_int = 0o02000000; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; -pub const O_APPEND: ::c_int = 0o00002000; -pub const O_CREAT: ::c_int = 0o00000100; -pub const O_EXCL: ::c_int = 0o00000200; -pub const O_NOCTTY: ::c_int = 0o00000400; -pub const O_NONBLOCK: ::c_int = 0o00004000; -pub const FASYNC: ::c_int = 0o00020000; -pub const O_SYNC: ::c_int = 0o04010000; -pub const O_RSYNC: ::c_int = 0o04010000; -pub const O_FSYNC: ::c_int = O_SYNC; -pub const O_ASYNC: ::c_int = 0o00020000; -pub const O_DSYNC: ::c_int = 0o00010000; -pub const O_NDELAY: ::c_int = O_NONBLOCK; -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; -pub const F_GETLK: ::c_int = 5; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; -pub const F_GETOWN: ::c_int = 9; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const EDEADLK: ::c_int = 35; -pub const EDEADLOCK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; - -pub const MAP_NORESERVE: ::c_int = 0x4000; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x1000; -pub const MAP_LOCKED: ::c_int = 0x2000; -pub const MAP_POPULATE: ::c_int = 0x8000; -pub const MAP_NONBLOCK: ::c_int = 0x10000; -pub const MAP_STACK: ::c_int = 0x20000; -pub const MAP_HUGETLB: ::c_int = 0x40000; -pub const MAP_SYNC: ::c_int = 0x080000; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const SFD_NONBLOCK: ::c_int = 0x800; -pub const SFD_CLOEXEC: ::c_int = 0x080000; -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; -pub const SIG_BLOCK: ::c_int = 0; -pub const SIG_UNBLOCK: ::c_int = 1; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGCHLD: ::c_int = 17; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGURG: ::c_int = 23; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGIO: ::c_int = 29; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIGSYS: ::c_int = 31; -pub const SIGUNUSED: ::c_int = 31; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const PTRACE_GETFPREGS: ::c_uint = 14; -pub const PTRACE_SETFPREGS: ::c_uint = 15; -pub const PTRACE_DETACH: ::c_uint = 17; -pub const PTRACE_GETFPXREGS: ::c_uint = 18; -pub const PTRACE_SETFPXREGS: ::c_uint = 19; -pub const PTRACE_GETREGS: ::c_uint = 12; -pub const PTRACE_SETREGS: ::c_uint = 13; -pub const PTRACE_SYSEMU: ::c_uint = 31; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32; - -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const HWCAP_LOONGARCH_CPUCFG: c_ulong = 1 << 0; +pub const HWCAP_LOONGARCH_LAM: c_ulong = 1 << 1; +pub const HWCAP_LOONGARCH_UAL: c_ulong = 1 << 2; +pub const HWCAP_LOONGARCH_FPU: c_ulong = 1 << 3; +pub const HWCAP_LOONGARCH_LSX: c_ulong = 1 << 4; +pub const HWCAP_LOONGARCH_LASX: c_ulong = 1 << 5; +pub const HWCAP_LOONGARCH_CRC32: c_ulong = 1 << 6; +pub const HWCAP_LOONGARCH_COMPLEX: c_ulong = 1 << 7; +pub const HWCAP_LOONGARCH_CRYPTO: c_ulong = 1 << 8; +pub const HWCAP_LOONGARCH_LVZ: c_ulong = 1 << 9; +pub const HWCAP_LOONGARCH_LBT_X86: c_ulong = 1 << 10; +pub const HWCAP_LOONGARCH_LBT_ARM: c_ulong = 1 << 11; +pub const HWCAP_LOONGARCH_LBT_MIPS: c_ulong = 1 << 12; +pub const HWCAP_LOONGARCH_PTW: c_ulong = 1 << 13; + +pub const SYS_io_setup: c_long = 0; +pub const SYS_io_destroy: c_long = 1; +pub const SYS_io_submit: c_long = 2; +pub const SYS_io_cancel: c_long = 3; +pub const SYS_io_getevents: c_long = 4; +pub const SYS_setxattr: c_long = 5; +pub const SYS_lsetxattr: c_long = 6; +pub const SYS_fsetxattr: c_long = 7; +pub const SYS_getxattr: c_long = 8; +pub const SYS_lgetxattr: c_long = 9; +pub const SYS_fgetxattr: c_long = 10; +pub const SYS_listxattr: c_long = 11; +pub const SYS_llistxattr: c_long = 12; +pub const SYS_flistxattr: c_long = 13; +pub const SYS_removexattr: c_long = 14; +pub const SYS_lremovexattr: c_long = 15; +pub const SYS_fremovexattr: c_long = 16; +pub const SYS_getcwd: c_long = 17; +pub const SYS_lookup_dcookie: c_long = 18; +pub const SYS_eventfd2: c_long = 19; +pub const SYS_epoll_create1: c_long = 20; +pub const SYS_epoll_ctl: c_long = 21; +pub const SYS_epoll_pwait: c_long = 22; +pub const SYS_dup: c_long = 23; +pub const SYS_dup3: c_long = 24; +pub const SYS_fcntl: c_long = 25; +pub const SYS_inotify_init1: c_long = 26; +pub const SYS_inotify_add_watch: c_long = 27; +pub const SYS_inotify_rm_watch: c_long = 28; +pub const SYS_ioctl: c_long = 29; +pub const SYS_ioprio_set: c_long = 30; +pub const SYS_ioprio_get: c_long = 31; +pub const SYS_flock: c_long = 32; +pub const SYS_mknodat: c_long = 33; +pub const SYS_mkdirat: c_long = 34; +pub const SYS_unlinkat: c_long = 35; +pub const SYS_symlinkat: c_long = 36; +pub const SYS_linkat: c_long = 37; +pub const SYS_umount2: c_long = 39; +pub const SYS_mount: c_long = 40; +pub const SYS_pivot_root: c_long = 41; +pub const SYS_nfsservctl: c_long = 42; +pub const SYS_statfs: c_long = 43; +pub const SYS_fstatfs: c_long = 44; +pub const SYS_truncate: c_long = 45; +pub const SYS_ftruncate: c_long = 46; +pub const SYS_fallocate: c_long = 47; +pub const SYS_faccessat: c_long = 48; +pub const SYS_chdir: c_long = 49; +pub const SYS_fchdir: c_long = 50; +pub const SYS_chroot: c_long = 51; +pub const SYS_fchmod: c_long = 52; +pub const SYS_fchmodat: c_long = 53; +pub const SYS_fchownat: c_long = 54; +pub const SYS_fchown: c_long = 55; +pub const SYS_openat: c_long = 56; +pub const SYS_close: c_long = 57; +pub const SYS_vhangup: c_long = 58; +pub const SYS_pipe2: c_long = 59; +pub const SYS_quotactl: c_long = 60; +pub const SYS_getdents64: c_long = 61; +pub const SYS_lseek: c_long = 62; +pub const SYS_read: c_long = 63; +pub const SYS_write: c_long = 64; +pub const SYS_readv: c_long = 65; +pub const SYS_writev: c_long = 66; +pub const SYS_pread64: c_long = 67; +pub const SYS_pwrite64: c_long = 68; +pub const SYS_preadv: c_long = 69; +pub const SYS_pwritev: c_long = 70; +pub const SYS_sendfile: c_long = 71; +pub const SYS_pselect6: c_long = 72; +pub const SYS_ppoll: c_long = 73; +pub const SYS_signalfd4: c_long = 74; +pub const SYS_vmsplice: c_long = 75; +pub const SYS_splice: c_long = 76; +pub const SYS_tee: c_long = 77; +pub const SYS_readlinkat: c_long = 78; +pub const SYS_sync: c_long = 81; +pub const SYS_fsync: c_long = 82; +pub const SYS_fdatasync: c_long = 83; +pub const SYS_sync_file_range: c_long = 84; +pub const SYS_timerfd_create: c_long = 85; +pub const SYS_timerfd_settime: c_long = 86; +pub const SYS_timerfd_gettime: c_long = 87; +pub const SYS_utimensat: c_long = 88; +pub const SYS_acct: c_long = 89; +pub const SYS_capget: c_long = 90; +pub const SYS_capset: c_long = 91; +pub const SYS_personality: c_long = 92; +pub const SYS_exit: c_long = 93; +pub const SYS_exit_group: c_long = 94; +pub const SYS_waitid: c_long = 95; +pub const SYS_set_tid_address: c_long = 96; +pub const SYS_unshare: c_long = 97; +pub const SYS_futex: c_long = 98; +pub const SYS_set_robust_list: c_long = 99; +pub const SYS_get_robust_list: c_long = 100; +pub const SYS_nanosleep: c_long = 101; +pub const SYS_getitimer: c_long = 102; +pub const SYS_setitimer: c_long = 103; +pub const SYS_kexec_load: c_long = 104; +pub const SYS_init_module: c_long = 105; +pub const SYS_delete_module: c_long = 106; +pub const SYS_timer_create: c_long = 107; +pub const SYS_timer_gettime: c_long = 108; +pub const SYS_timer_getoverrun: c_long = 109; +pub const SYS_timer_settime: c_long = 110; +pub const SYS_timer_delete: c_long = 111; +pub const SYS_clock_settime: c_long = 112; +pub const SYS_clock_gettime: c_long = 113; +pub const SYS_clock_getres: c_long = 114; +pub const SYS_clock_nanosleep: c_long = 115; +pub const SYS_syslog: c_long = 116; +pub const SYS_ptrace: c_long = 117; +pub const SYS_sched_setparam: c_long = 118; +pub const SYS_sched_setscheduler: c_long = 119; +pub const SYS_sched_getscheduler: c_long = 120; +pub const SYS_sched_getparam: c_long = 121; +pub const SYS_sched_setaffinity: c_long = 122; +pub const SYS_sched_getaffinity: c_long = 123; +pub const SYS_sched_yield: c_long = 124; +pub const SYS_sched_get_priority_max: c_long = 125; +pub const SYS_sched_get_priority_min: c_long = 126; +pub const SYS_sched_rr_get_interval: c_long = 127; +pub const SYS_restart_syscall: c_long = 128; +pub const SYS_kill: c_long = 129; +pub const SYS_tkill: c_long = 130; +pub const SYS_tgkill: c_long = 131; +pub const SYS_sigaltstack: c_long = 132; +pub const SYS_rt_sigsuspend: c_long = 133; +pub const SYS_rt_sigaction: c_long = 134; +pub const SYS_rt_sigprocmask: c_long = 135; +pub const SYS_rt_sigpending: c_long = 136; +pub const SYS_rt_sigtimedwait: c_long = 137; +pub const SYS_rt_sigqueueinfo: c_long = 138; +pub const SYS_rt_sigreturn: c_long = 139; +pub const SYS_setpriority: c_long = 140; +pub const SYS_getpriority: c_long = 141; +pub const SYS_reboot: c_long = 142; +pub const SYS_setregid: c_long = 143; +pub const SYS_setgid: c_long = 144; +pub const SYS_setreuid: c_long = 145; +pub const SYS_setuid: c_long = 146; +pub const SYS_setresuid: c_long = 147; +pub const SYS_getresuid: c_long = 148; +pub const SYS_setresgid: c_long = 149; +pub const SYS_getresgid: c_long = 150; +pub const SYS_setfsuid: c_long = 151; +pub const SYS_setfsgid: c_long = 152; +pub const SYS_times: c_long = 153; +pub const SYS_setpgid: c_long = 154; +pub const SYS_getpgid: c_long = 155; +pub const SYS_getsid: c_long = 156; +pub const SYS_setsid: c_long = 157; +pub const SYS_getgroups: c_long = 158; +pub const SYS_setgroups: c_long = 159; +pub const SYS_uname: c_long = 160; +pub const SYS_sethostname: c_long = 161; +pub const SYS_setdomainname: c_long = 162; +pub const SYS_getrusage: c_long = 165; +pub const SYS_umask: c_long = 166; +pub const SYS_prctl: c_long = 167; +pub const SYS_getcpu: c_long = 168; +pub const SYS_gettimeofday: c_long = 169; +pub const SYS_settimeofday: c_long = 170; +pub const SYS_adjtimex: c_long = 171; +pub const SYS_getpid: c_long = 172; +pub const SYS_getppid: c_long = 173; +pub const SYS_getuid: c_long = 174; +pub const SYS_geteuid: c_long = 175; +pub const SYS_getgid: c_long = 176; +pub const SYS_getegid: c_long = 177; +pub const SYS_gettid: c_long = 178; +pub const SYS_sysinfo: c_long = 179; +pub const SYS_mq_open: c_long = 180; +pub const SYS_mq_unlink: c_long = 181; +pub const SYS_mq_timedsend: c_long = 182; +pub const SYS_mq_timedreceive: c_long = 183; +pub const SYS_mq_notify: c_long = 184; +pub const SYS_mq_getsetattr: c_long = 185; +pub const SYS_msgget: c_long = 186; +pub const SYS_msgctl: c_long = 187; +pub const SYS_msgrcv: c_long = 188; +pub const SYS_msgsnd: c_long = 189; +pub const SYS_semget: c_long = 190; +pub const SYS_semctl: c_long = 191; +pub const SYS_semtimedop: c_long = 192; +pub const SYS_semop: c_long = 193; +pub const SYS_shmget: c_long = 194; +pub const SYS_shmctl: c_long = 195; +pub const SYS_shmat: c_long = 196; +pub const SYS_shmdt: c_long = 197; +pub const SYS_socket: c_long = 198; +pub const SYS_socketpair: c_long = 199; +pub const SYS_bind: c_long = 200; +pub const SYS_listen: c_long = 201; +pub const SYS_accept: c_long = 202; +pub const SYS_connect: c_long = 203; +pub const SYS_getsockname: c_long = 204; +pub const SYS_getpeername: c_long = 205; +pub const SYS_sendto: c_long = 206; +pub const SYS_recvfrom: c_long = 207; +pub const SYS_setsockopt: c_long = 208; +pub const SYS_getsockopt: c_long = 209; +pub const SYS_shutdown: c_long = 210; +pub const SYS_sendmsg: c_long = 211; +pub const SYS_recvmsg: c_long = 212; +pub const SYS_readahead: c_long = 213; +pub const SYS_brk: c_long = 214; +pub const SYS_munmap: c_long = 215; +pub const SYS_mremap: c_long = 216; +pub const SYS_add_key: c_long = 217; +pub const SYS_request_key: c_long = 218; +pub const SYS_keyctl: c_long = 219; +pub const SYS_clone: c_long = 220; +pub const SYS_execve: c_long = 221; +pub const SYS_mmap: c_long = 222; +pub const SYS_fadvise64: c_long = 223; +pub const SYS_swapon: c_long = 224; +pub const SYS_swapoff: c_long = 225; +pub const SYS_mprotect: c_long = 226; +pub const SYS_msync: c_long = 227; +pub const SYS_mlock: c_long = 228; +pub const SYS_munlock: c_long = 229; +pub const SYS_mlockall: c_long = 230; +pub const SYS_munlockall: c_long = 231; +pub const SYS_mincore: c_long = 232; +pub const SYS_madvise: c_long = 233; +pub const SYS_remap_file_pages: c_long = 234; +pub const SYS_mbind: c_long = 235; +pub const SYS_get_mempolicy: c_long = 236; +pub const SYS_set_mempolicy: c_long = 237; +pub const SYS_migrate_pages: c_long = 238; +pub const SYS_move_pages: c_long = 239; +pub const SYS_rt_tgsigqueueinfo: c_long = 240; +pub const SYS_perf_event_open: c_long = 241; +pub const SYS_accept4: c_long = 242; +pub const SYS_recvmmsg: c_long = 243; +//pub const SYS_arch_specific_syscall: c_long = 244; +pub const SYS_wait4: c_long = 260; +pub const SYS_prlimit64: c_long = 261; +pub const SYS_fanotify_init: c_long = 262; +pub const SYS_fanotify_mark: c_long = 263; +pub const SYS_name_to_handle_at: c_long = 264; +pub const SYS_open_by_handle_at: c_long = 265; +pub const SYS_clock_adjtime: c_long = 266; +pub const SYS_syncfs: c_long = 267; +pub const SYS_setns: c_long = 268; +pub const SYS_sendmmsg: c_long = 269; +pub const SYS_process_vm_readv: c_long = 270; +pub const SYS_process_vm_writev: c_long = 271; +pub const SYS_kcmp: c_long = 272; +pub const SYS_finit_module: c_long = 273; +pub const SYS_sched_setattr: c_long = 274; +pub const SYS_sched_getattr: c_long = 275; +pub const SYS_renameat2: c_long = 276; +pub const SYS_seccomp: c_long = 277; +pub const SYS_getrandom: c_long = 278; +pub const SYS_memfd_create: c_long = 279; +pub const SYS_bpf: c_long = 280; +pub const SYS_execveat: c_long = 281; +pub const SYS_userfaultfd: c_long = 282; +pub const SYS_membarrier: c_long = 283; +pub const SYS_mlock2: c_long = 284; +pub const SYS_copy_file_range: c_long = 285; +pub const SYS_preadv2: c_long = 286; +pub const SYS_pwritev2: c_long = 287; +pub const SYS_pkey_mprotect: c_long = 288; +pub const SYS_pkey_alloc: c_long = 289; +pub const SYS_pkey_free: c_long = 290; +pub const SYS_statx: c_long = 291; +pub const SYS_io_pgetevents: c_long = 292; +pub const SYS_rseq: c_long = 293; +pub const SYS_kexec_file_load: c_long = 294; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; + +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; +pub const O_DIRECT: c_int = 0o00040000; +pub const O_DIRECTORY: c_int = 0o00200000; +pub const O_NOFOLLOW: c_int = 0o00400000; +pub const O_TRUNC: c_int = 0o00001000; +pub const O_NOATIME: c_int = 0o1000000; +pub const O_CLOEXEC: c_int = 0o02000000; +pub const O_PATH: c_int = 0o10000000; +pub const O_TMPFILE: c_int = 0o20000000 | O_DIRECTORY; +pub const O_APPEND: c_int = 0o00002000; +pub const O_CREAT: c_int = 0o00000100; +pub const O_EXCL: c_int = 0o00000200; +pub const O_NOCTTY: c_int = 0o00000400; +pub const O_NONBLOCK: c_int = 0o00004000; +pub const FASYNC: c_int = 0o00020000; +pub const O_SYNC: c_int = 0o04010000; +pub const O_RSYNC: c_int = 0o04010000; +pub const O_FSYNC: c_int = O_SYNC; +pub const O_ASYNC: c_int = 0o00020000; +pub const O_DSYNC: c_int = 0o00010000; +pub const O_NDELAY: c_int = O_NONBLOCK; +pub const F_RDLCK: c_int = 0; +pub const F_WRLCK: c_int = 1; +pub const F_UNLCK: c_int = 2; +pub const F_GETLK: c_int = 5; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; +pub const F_SETOWN: c_int = 8; +pub const F_GETOWN: c_int = 9; +pub const F_OFD_GETLK: c_int = 36; +pub const F_OFD_SETLK: c_int = 37; +pub const F_OFD_SETLKW: c_int = 38; + +pub const EDEADLK: c_int = 35; +pub const EDEADLOCK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EBFONT: c_int = 59; +pub const ENOSTR: c_int = 60; +pub const ENODATA: c_int = 61; +pub const ETIME: c_int = 62; +pub const ENOSR: c_int = 63; +pub const ENONET: c_int = 64; +pub const ENOPKG: c_int = 65; +pub const EREMOTE: c_int = 66; +pub const ENOLINK: c_int = 67; +pub const EADV: c_int = 68; +pub const ESRMNT: c_int = 69; +pub const ECOMM: c_int = 70; +pub const EPROTO: c_int = 71; +pub const EDOTDOT: c_int = 73; +pub const EMULTIHOP: c_int = 72; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EBADMSG: c_int = 74; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const ERFKILL: c_int = 132; +pub const EHWPOISON: c_int = 133; + +pub const MADV_SOFT_OFFLINE: c_int = 101; + +pub const MAP_NORESERVE: c_int = 0x4000; +pub const MAP_ANONYMOUS: c_int = 0x0020; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x1000; +pub const MAP_LOCKED: c_int = 0x2000; +pub const MAP_POPULATE: c_int = 0x8000; +pub const MAP_NONBLOCK: c_int = 0x10000; +pub const MAP_STACK: c_int = 0x20000; +pub const MAP_HUGETLB: c_int = 0x40000; +pub const MAP_SYNC: c_int = 0x080000; +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; + +pub const SFD_NONBLOCK: c_int = 0x800; +pub const SFD_CLOEXEC: c_int = 0x080000; +pub const SA_NODEFER: c_int = 0x40000000; +pub const SA_RESETHAND: c_int = 0x80000000; +pub const SA_RESTART: c_int = 0x10000000; +pub const SA_NOCLDSTOP: c_int = 0x00000001; +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; +pub const SIG_BLOCK: c_int = 0; +pub const SIG_UNBLOCK: c_int = 1; +pub const SIG_SETMASK: c_int = 2; +pub const SIGBUS: c_int = 7; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGSTKFLT: c_int = 16; +pub const SIGCHLD: c_int = 17; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGURG: c_int = 23; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGIO: c_int = 29; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIGSYS: c_int = 31; +pub const SIGUNUSED: c_int = 31; + +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; + +pub const PTRACE_GETFPREGS: c_uint = 14; +pub const PTRACE_SETFPREGS: c_uint = 15; +pub const PTRACE_DETACH: c_uint = 17; +pub const PTRACE_GETFPXREGS: c_uint = 18; +pub const PTRACE_SETFPXREGS: c_uint = 19; +pub const PTRACE_GETREGS: c_uint = 12; +pub const PTRACE_SETREGS: c_uint = 13; +pub const PTRACE_SYSEMU: c_uint = 31; +pub const PTRACE_SYSEMU_SINGLESTEP: c_uint = 32; + +pub const RTLD_DEEPBIND: c_int = 0x8; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_NOLOAD: c_int = 0x4; pub const VEOF: usize = 4; pub const VTIME: usize = 5; @@ -828,96 +831,96 @@ pub const VREPRINT: usize = 12; pub const VDISCARD: usize = 13; pub const VWERASE: usize = 14; pub const VEOL2: usize = 16; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; -pub const EXTPROC: ::tcflag_t = 0x00010000; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; -pub const SIGSTKSZ: ::size_t = 16384; -pub const MINSIGSTKSZ: ::size_t = 4096; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const XCASE: ::tcflag_t = 0x00000004; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; +pub const EXTPROC: crate::tcflag_t = 0x00010000; +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; +pub const SIGSTKSZ: size_t = 16384; +pub const MINSIGSTKSZ: size_t = 4096; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; +pub const TAB1: crate::tcflag_t = 0x00000800; +pub const TAB2: crate::tcflag_t = 0x00001000; +pub const TAB3: crate::tcflag_t = 0x00001800; +pub const CR1: crate::tcflag_t = 0x00000200; +pub const CR2: crate::tcflag_t = 0x00000400; +pub const CR3: crate::tcflag_t = 0x00000600; +pub const FF1: crate::tcflag_t = 0x00008000; +pub const BS1: crate::tcflag_t = 0x00002000; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; +pub const VT1: crate::tcflag_t = 0x00004000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const XCASE: crate::tcflag_t = 0x00000004; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; pub const NCCS: usize = 32; -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; +pub const EPOLL_CLOEXEC: c_int = 0x80000; -pub const EFD_CLOEXEC: ::c_int = 0x80000; -pub const EFD_NONBLOCK: ::c_int = 0x800; +pub const EFD_CLOEXEC: c_int = 0x80000; +pub const EFD_NONBLOCK: c_int = 0x800; diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index 0ed28906d0198..1f82bb18aec34 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -1,4 +1,4 @@ -use pthread_mutex_t; +use crate::{c_int, c_short, c_uint, c_ushort, c_void, off64_t, off_t, pthread_mutex_t, size_t}; pub type blksize_t = i64; pub type c_char = i8; @@ -7,182 +7,182 @@ pub type c_ulong = u64; pub type nlink_t = u64; pub type suseconds_t = i64; pub type wchar_t = i32; -pub type __u64 = ::c_ulong; -pub type __s64 = ::c_long; +pub type __u64 = c_ulong; +pub type __s64 = c_long; s! { pub struct stat { - pub st_dev: ::c_ulong, - st_pad1: [::c_long; 2], - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulong, - st_pad2: [::c_ulong; 1], - pub st_size: ::off_t, - st_pad3: ::c_long, - 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_blksize: ::blksize_t, - st_pad4: ::c_long, - pub st_blocks: ::blkcnt_t, - st_pad5: [::c_long; 7], + pub st_dev: c_ulong, + st_pad1: [c_long; 2], + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: c_ulong, + st_pad2: [c_ulong; 1], + pub st_size: off_t, + st_pad3: c_long, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_blksize: crate::blksize_t, + st_pad4: c_long, + pub st_blocks: crate::blkcnt_t, + st_pad5: [c_long; 7], } pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_frsize: ::c_long, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_files: ::fsblkcnt_t, - pub f_ffree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_fsid: ::fsid_t, - - pub f_namelen: ::c_long, - f_spare: [::c_long; 6], + pub f_type: c_long, + pub f_bsize: c_long, + pub f_frsize: c_long, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_files: crate::fsblkcnt_t, + pub f_ffree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_fsid: crate::fsid_t, + + pub f_namelen: c_long, + f_spare: [c_long; 6], } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off64_t, + pub l_len: off64_t, + pub l_pid: crate::pid_t, } pub struct stat64 { - pub st_dev: ::c_ulong, - st_pad1: [::c_long; 2], - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulong, - st_pad2: [::c_long; 2], - pub st_size: ::off64_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_blksize: ::blksize_t, - st_pad3: ::c_long, - pub st_blocks: ::blkcnt64_t, - st_pad5: [::c_long; 7], + pub st_dev: c_ulong, + st_pad1: [c_long; 2], + pub st_ino: crate::ino64_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: c_ulong, + st_pad2: [c_long; 2], + pub st_size: off64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_blksize: crate::blksize_t, + st_pad3: c_long, + pub st_blocks: crate::blkcnt64_t, + st_pad5: [c_long; 7], } pub struct statfs64 { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_frsize: ::c_long, + pub f_type: c_long, + pub f_bsize: c_long, + pub f_frsize: c_long, pub f_blocks: u64, pub f_bfree: u64, pub f_files: u64, pub f_ffree: u64, pub f_bavail: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 5], + pub f_fsid: crate::fsid_t, + pub f_namelen: c_long, + pub f_flags: c_long, + pub f_spare: [c_long; 5], } 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct pthread_attr_t { - __size: [::c_ulong; 7], + __size: [c_ulong; 7], } pub struct sigaction { - pub sa_flags: ::c_int, - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_restorer: ::Option, + pub sa_flags: c_int, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, + pub sa_restorer: Option, } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, + pub ss_sp: *mut c_void, + pub ss_size: size_t, + pub ss_flags: c_int, } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - _pad: ::c_int, - _pad2: [::c_long; 14], + pub si_signo: c_int, + pub si_code: c_int, + pub si_errno: c_int, + _pad: c_int, + _pad2: [c_long; 14], } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_uint, - pub __seq: ::c_ushort, - __pad1: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: c_uint, + pub __seq: c_ushort, + __pad1: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __unused4: c_ulong, + __unused5: c_ulong, } } @@ -202,641 +202,641 @@ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; #[cfg(target_endian = "little")] -pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "little")] -pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "little")] -pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; -pub const SYS_read: ::c_long = 5000 + 0; -pub const SYS_write: ::c_long = 5000 + 1; -pub const SYS_open: ::c_long = 5000 + 2; -pub const SYS_close: ::c_long = 5000 + 3; -pub const SYS_stat: ::c_long = 5000 + 4; -pub const SYS_fstat: ::c_long = 5000 + 5; -pub const SYS_lstat: ::c_long = 5000 + 6; -pub const SYS_poll: ::c_long = 5000 + 7; -pub const SYS_lseek: ::c_long = 5000 + 8; -pub const SYS_mmap: ::c_long = 5000 + 9; -pub const SYS_mprotect: ::c_long = 5000 + 10; -pub const SYS_munmap: ::c_long = 5000 + 11; -pub const SYS_brk: ::c_long = 5000 + 12; -pub const SYS_rt_sigaction: ::c_long = 5000 + 13; -pub const SYS_rt_sigprocmask: ::c_long = 5000 + 14; -pub const SYS_ioctl: ::c_long = 5000 + 15; -pub const SYS_pread64: ::c_long = 5000 + 16; -pub const SYS_pwrite64: ::c_long = 5000 + 17; -pub const SYS_readv: ::c_long = 5000 + 18; -pub const SYS_writev: ::c_long = 5000 + 19; -pub const SYS_access: ::c_long = 5000 + 20; -pub const SYS_pipe: ::c_long = 5000 + 21; -pub const SYS__newselect: ::c_long = 5000 + 22; -pub const SYS_sched_yield: ::c_long = 5000 + 23; -pub const SYS_mremap: ::c_long = 5000 + 24; -pub const SYS_msync: ::c_long = 5000 + 25; -pub const SYS_mincore: ::c_long = 5000 + 26; -pub const SYS_madvise: ::c_long = 5000 + 27; -pub const SYS_shmget: ::c_long = 5000 + 28; -pub const SYS_shmat: ::c_long = 5000 + 29; -pub const SYS_shmctl: ::c_long = 5000 + 30; -pub const SYS_dup: ::c_long = 5000 + 31; -pub const SYS_dup2: ::c_long = 5000 + 32; -pub const SYS_pause: ::c_long = 5000 + 33; -pub const SYS_nanosleep: ::c_long = 5000 + 34; -pub const SYS_getitimer: ::c_long = 5000 + 35; -pub const SYS_setitimer: ::c_long = 5000 + 36; -pub const SYS_alarm: ::c_long = 5000 + 37; -pub const SYS_getpid: ::c_long = 5000 + 38; -pub const SYS_sendfile: ::c_long = 5000 + 39; -pub const SYS_socket: ::c_long = 5000 + 40; -pub const SYS_connect: ::c_long = 5000 + 41; -pub const SYS_accept: ::c_long = 5000 + 42; -pub const SYS_sendto: ::c_long = 5000 + 43; -pub const SYS_recvfrom: ::c_long = 5000 + 44; -pub const SYS_sendmsg: ::c_long = 5000 + 45; -pub const SYS_recvmsg: ::c_long = 5000 + 46; -pub const SYS_shutdown: ::c_long = 5000 + 47; -pub const SYS_bind: ::c_long = 5000 + 48; -pub const SYS_listen: ::c_long = 5000 + 49; -pub const SYS_getsockname: ::c_long = 5000 + 50; -pub const SYS_getpeername: ::c_long = 5000 + 51; -pub const SYS_socketpair: ::c_long = 5000 + 52; -pub const SYS_setsockopt: ::c_long = 5000 + 53; -pub const SYS_getsockopt: ::c_long = 5000 + 54; -pub const SYS_clone: ::c_long = 5000 + 55; -pub const SYS_fork: ::c_long = 5000 + 56; -pub const SYS_execve: ::c_long = 5000 + 57; -pub const SYS_exit: ::c_long = 5000 + 58; -pub const SYS_wait4: ::c_long = 5000 + 59; -pub const SYS_kill: ::c_long = 5000 + 60; -pub const SYS_uname: ::c_long = 5000 + 61; -pub const SYS_semget: ::c_long = 5000 + 62; -pub const SYS_semop: ::c_long = 5000 + 63; -pub const SYS_semctl: ::c_long = 5000 + 64; -pub const SYS_shmdt: ::c_long = 5000 + 65; -pub const SYS_msgget: ::c_long = 5000 + 66; -pub const SYS_msgsnd: ::c_long = 5000 + 67; -pub const SYS_msgrcv: ::c_long = 5000 + 68; -pub const SYS_msgctl: ::c_long = 5000 + 69; -pub const SYS_fcntl: ::c_long = 5000 + 70; -pub const SYS_flock: ::c_long = 5000 + 71; -pub const SYS_fsync: ::c_long = 5000 + 72; -pub const SYS_fdatasync: ::c_long = 5000 + 73; -pub const SYS_truncate: ::c_long = 5000 + 74; -pub const SYS_ftruncate: ::c_long = 5000 + 75; -pub const SYS_getdents: ::c_long = 5000 + 76; -pub const SYS_getcwd: ::c_long = 5000 + 77; -pub const SYS_chdir: ::c_long = 5000 + 78; -pub const SYS_fchdir: ::c_long = 5000 + 79; -pub const SYS_rename: ::c_long = 5000 + 80; -pub const SYS_mkdir: ::c_long = 5000 + 81; -pub const SYS_rmdir: ::c_long = 5000 + 82; -pub const SYS_creat: ::c_long = 5000 + 83; -pub const SYS_link: ::c_long = 5000 + 84; -pub const SYS_unlink: ::c_long = 5000 + 85; -pub const SYS_symlink: ::c_long = 5000 + 86; -pub const SYS_readlink: ::c_long = 5000 + 87; -pub const SYS_chmod: ::c_long = 5000 + 88; -pub const SYS_fchmod: ::c_long = 5000 + 89; -pub const SYS_chown: ::c_long = 5000 + 90; -pub const SYS_fchown: ::c_long = 5000 + 91; -pub const SYS_lchown: ::c_long = 5000 + 92; -pub const SYS_umask: ::c_long = 5000 + 93; -pub const SYS_gettimeofday: ::c_long = 5000 + 94; -pub const SYS_getrlimit: ::c_long = 5000 + 95; -pub const SYS_getrusage: ::c_long = 5000 + 96; -pub const SYS_sysinfo: ::c_long = 5000 + 97; -pub const SYS_times: ::c_long = 5000 + 98; -pub const SYS_ptrace: ::c_long = 5000 + 99; -pub const SYS_getuid: ::c_long = 5000 + 100; -pub const SYS_syslog: ::c_long = 5000 + 101; -pub const SYS_getgid: ::c_long = 5000 + 102; -pub const SYS_setuid: ::c_long = 5000 + 103; -pub const SYS_setgid: ::c_long = 5000 + 104; -pub const SYS_geteuid: ::c_long = 5000 + 105; -pub const SYS_getegid: ::c_long = 5000 + 106; -pub const SYS_setpgid: ::c_long = 5000 + 107; -pub const SYS_getppid: ::c_long = 5000 + 108; -pub const SYS_getpgrp: ::c_long = 5000 + 109; -pub const SYS_setsid: ::c_long = 5000 + 110; -pub const SYS_setreuid: ::c_long = 5000 + 111; -pub const SYS_setregid: ::c_long = 5000 + 112; -pub const SYS_getgroups: ::c_long = 5000 + 113; -pub const SYS_setgroups: ::c_long = 5000 + 114; -pub const SYS_setresuid: ::c_long = 5000 + 115; -pub const SYS_getresuid: ::c_long = 5000 + 116; -pub const SYS_setresgid: ::c_long = 5000 + 117; -pub const SYS_getresgid: ::c_long = 5000 + 118; -pub const SYS_getpgid: ::c_long = 5000 + 119; -pub const SYS_setfsuid: ::c_long = 5000 + 120; -pub const SYS_setfsgid: ::c_long = 5000 + 121; -pub const SYS_getsid: ::c_long = 5000 + 122; -pub const SYS_capget: ::c_long = 5000 + 123; -pub const SYS_capset: ::c_long = 5000 + 124; -pub const SYS_rt_sigpending: ::c_long = 5000 + 125; -pub const SYS_rt_sigtimedwait: ::c_long = 5000 + 126; -pub const SYS_rt_sigqueueinfo: ::c_long = 5000 + 127; -pub const SYS_rt_sigsuspend: ::c_long = 5000 + 128; -pub const SYS_sigaltstack: ::c_long = 5000 + 129; -pub const SYS_utime: ::c_long = 5000 + 130; -pub const SYS_mknod: ::c_long = 5000 + 131; -pub const SYS_personality: ::c_long = 5000 + 132; -pub const SYS_ustat: ::c_long = 5000 + 133; -pub const SYS_statfs: ::c_long = 5000 + 134; -pub const SYS_fstatfs: ::c_long = 5000 + 135; -pub const SYS_sysfs: ::c_long = 5000 + 136; -pub const SYS_getpriority: ::c_long = 5000 + 137; -pub const SYS_setpriority: ::c_long = 5000 + 138; -pub const SYS_sched_setparam: ::c_long = 5000 + 139; -pub const SYS_sched_getparam: ::c_long = 5000 + 140; -pub const SYS_sched_setscheduler: ::c_long = 5000 + 141; -pub const SYS_sched_getscheduler: ::c_long = 5000 + 142; -pub const SYS_sched_get_priority_max: ::c_long = 5000 + 143; -pub const SYS_sched_get_priority_min: ::c_long = 5000 + 144; -pub const SYS_sched_rr_get_interval: ::c_long = 5000 + 145; -pub const SYS_mlock: ::c_long = 5000 + 146; -pub const SYS_munlock: ::c_long = 5000 + 147; -pub const SYS_mlockall: ::c_long = 5000 + 148; -pub const SYS_munlockall: ::c_long = 5000 + 149; -pub const SYS_vhangup: ::c_long = 5000 + 150; -pub const SYS_pivot_root: ::c_long = 5000 + 151; -pub const SYS__sysctl: ::c_long = 5000 + 152; -pub const SYS_prctl: ::c_long = 5000 + 153; -pub const SYS_adjtimex: ::c_long = 5000 + 154; -pub const SYS_setrlimit: ::c_long = 5000 + 155; -pub const SYS_chroot: ::c_long = 5000 + 156; -pub const SYS_sync: ::c_long = 5000 + 157; -pub const SYS_acct: ::c_long = 5000 + 158; -pub const SYS_settimeofday: ::c_long = 5000 + 159; -pub const SYS_mount: ::c_long = 5000 + 160; -pub const SYS_umount2: ::c_long = 5000 + 161; -pub const SYS_swapon: ::c_long = 5000 + 162; -pub const SYS_swapoff: ::c_long = 5000 + 163; -pub const SYS_reboot: ::c_long = 5000 + 164; -pub const SYS_sethostname: ::c_long = 5000 + 165; -pub const SYS_setdomainname: ::c_long = 5000 + 166; -pub const SYS_create_module: ::c_long = 5000 + 167; -pub const SYS_init_module: ::c_long = 5000 + 168; -pub const SYS_delete_module: ::c_long = 5000 + 169; -pub const SYS_get_kernel_syms: ::c_long = 5000 + 170; -pub const SYS_query_module: ::c_long = 5000 + 171; -pub const SYS_quotactl: ::c_long = 5000 + 172; -pub const SYS_nfsservctl: ::c_long = 5000 + 173; -pub const SYS_getpmsg: ::c_long = 5000 + 174; -pub const SYS_putpmsg: ::c_long = 5000 + 175; -pub const SYS_afs_syscall: ::c_long = 5000 + 176; -pub const SYS_gettid: ::c_long = 5000 + 178; -pub const SYS_readahead: ::c_long = 5000 + 179; -pub const SYS_setxattr: ::c_long = 5000 + 180; -pub const SYS_lsetxattr: ::c_long = 5000 + 181; -pub const SYS_fsetxattr: ::c_long = 5000 + 182; -pub const SYS_getxattr: ::c_long = 5000 + 183; -pub const SYS_lgetxattr: ::c_long = 5000 + 184; -pub const SYS_fgetxattr: ::c_long = 5000 + 185; -pub const SYS_listxattr: ::c_long = 5000 + 186; -pub const SYS_llistxattr: ::c_long = 5000 + 187; -pub const SYS_flistxattr: ::c_long = 5000 + 188; -pub const SYS_removexattr: ::c_long = 5000 + 189; -pub const SYS_lremovexattr: ::c_long = 5000 + 190; -pub const SYS_fremovexattr: ::c_long = 5000 + 191; -pub const SYS_tkill: ::c_long = 5000 + 192; -pub const SYS_futex: ::c_long = 5000 + 194; -pub const SYS_sched_setaffinity: ::c_long = 5000 + 195; -pub const SYS_sched_getaffinity: ::c_long = 5000 + 196; -pub const SYS_cacheflush: ::c_long = 5000 + 197; -pub const SYS_cachectl: ::c_long = 5000 + 198; -pub const SYS_sysmips: ::c_long = 5000 + 199; -pub const SYS_io_setup: ::c_long = 5000 + 200; -pub const SYS_io_destroy: ::c_long = 5000 + 201; -pub const SYS_io_getevents: ::c_long = 5000 + 202; -pub const SYS_io_submit: ::c_long = 5000 + 203; -pub const SYS_io_cancel: ::c_long = 5000 + 204; -pub const SYS_exit_group: ::c_long = 5000 + 205; -pub const SYS_lookup_dcookie: ::c_long = 5000 + 206; -pub const SYS_epoll_create: ::c_long = 5000 + 207; -pub const SYS_epoll_ctl: ::c_long = 5000 + 208; -pub const SYS_epoll_wait: ::c_long = 5000 + 209; -pub const SYS_remap_file_pages: ::c_long = 5000 + 210; -pub const SYS_rt_sigreturn: ::c_long = 5000 + 211; -pub const SYS_set_tid_address: ::c_long = 5000 + 212; -pub const SYS_restart_syscall: ::c_long = 5000 + 213; -pub const SYS_semtimedop: ::c_long = 5000 + 214; -pub const SYS_fadvise64: ::c_long = 5000 + 215; -pub const SYS_timer_create: ::c_long = 5000 + 216; -pub const SYS_timer_settime: ::c_long = 5000 + 217; -pub const SYS_timer_gettime: ::c_long = 5000 + 218; -pub const SYS_timer_getoverrun: ::c_long = 5000 + 219; -pub const SYS_timer_delete: ::c_long = 5000 + 220; -pub const SYS_clock_settime: ::c_long = 5000 + 221; -pub const SYS_clock_gettime: ::c_long = 5000 + 222; -pub const SYS_clock_getres: ::c_long = 5000 + 223; -pub const SYS_clock_nanosleep: ::c_long = 5000 + 224; -pub const SYS_tgkill: ::c_long = 5000 + 225; -pub const SYS_utimes: ::c_long = 5000 + 226; -pub const SYS_mbind: ::c_long = 5000 + 227; -pub const SYS_get_mempolicy: ::c_long = 5000 + 228; -pub const SYS_set_mempolicy: ::c_long = 5000 + 229; -pub const SYS_mq_open: ::c_long = 5000 + 230; -pub const SYS_mq_unlink: ::c_long = 5000 + 231; -pub const SYS_mq_timedsend: ::c_long = 5000 + 232; -pub const SYS_mq_timedreceive: ::c_long = 5000 + 233; -pub const SYS_mq_notify: ::c_long = 5000 + 234; -pub const SYS_mq_getsetattr: ::c_long = 5000 + 235; -pub const SYS_vserver: ::c_long = 5000 + 236; -pub const SYS_waitid: ::c_long = 5000 + 237; -/* pub const SYS_sys_setaltroot: ::c_long = 5000 + 238; */ -pub const SYS_add_key: ::c_long = 5000 + 239; -pub const SYS_request_key: ::c_long = 5000 + 240; -pub const SYS_keyctl: ::c_long = 5000 + 241; -pub const SYS_set_thread_area: ::c_long = 5000 + 242; -pub const SYS_inotify_init: ::c_long = 5000 + 243; -pub const SYS_inotify_add_watch: ::c_long = 5000 + 244; -pub const SYS_inotify_rm_watch: ::c_long = 5000 + 245; -pub const SYS_migrate_pages: ::c_long = 5000 + 246; -pub const SYS_openat: ::c_long = 5000 + 247; -pub const SYS_mkdirat: ::c_long = 5000 + 248; -pub const SYS_mknodat: ::c_long = 5000 + 249; -pub const SYS_fchownat: ::c_long = 5000 + 250; -pub const SYS_futimesat: ::c_long = 5000 + 251; -pub const SYS_newfstatat: ::c_long = 5000 + 252; -pub const SYS_unlinkat: ::c_long = 5000 + 253; -pub const SYS_renameat: ::c_long = 5000 + 254; -pub const SYS_linkat: ::c_long = 5000 + 255; -pub const SYS_symlinkat: ::c_long = 5000 + 256; -pub const SYS_readlinkat: ::c_long = 5000 + 257; -pub const SYS_fchmodat: ::c_long = 5000 + 258; -pub const SYS_faccessat: ::c_long = 5000 + 259; -pub const SYS_pselect6: ::c_long = 5000 + 260; -pub const SYS_ppoll: ::c_long = 5000 + 261; -pub const SYS_unshare: ::c_long = 5000 + 262; -pub const SYS_splice: ::c_long = 5000 + 263; -pub const SYS_sync_file_range: ::c_long = 5000 + 264; -pub const SYS_tee: ::c_long = 5000 + 265; -pub const SYS_vmsplice: ::c_long = 5000 + 266; -pub const SYS_move_pages: ::c_long = 5000 + 267; -pub const SYS_set_robust_list: ::c_long = 5000 + 268; -pub const SYS_get_robust_list: ::c_long = 5000 + 269; -pub const SYS_kexec_load: ::c_long = 5000 + 270; -pub const SYS_getcpu: ::c_long = 5000 + 271; -pub const SYS_epoll_pwait: ::c_long = 5000 + 272; -pub const SYS_ioprio_set: ::c_long = 5000 + 273; -pub const SYS_ioprio_get: ::c_long = 5000 + 274; -pub const SYS_utimensat: ::c_long = 5000 + 275; -pub const SYS_signalfd: ::c_long = 5000 + 276; -pub const SYS_timerfd: ::c_long = 5000 + 277; -pub const SYS_eventfd: ::c_long = 5000 + 278; -pub const SYS_fallocate: ::c_long = 5000 + 279; -pub const SYS_timerfd_create: ::c_long = 5000 + 280; -pub const SYS_timerfd_gettime: ::c_long = 5000 + 281; -pub const SYS_timerfd_settime: ::c_long = 5000 + 282; -pub const SYS_signalfd4: ::c_long = 5000 + 283; -pub const SYS_eventfd2: ::c_long = 5000 + 284; -pub const SYS_epoll_create1: ::c_long = 5000 + 285; -pub const SYS_dup3: ::c_long = 5000 + 286; -pub const SYS_pipe2: ::c_long = 5000 + 287; -pub const SYS_inotify_init1: ::c_long = 5000 + 288; -pub const SYS_preadv: ::c_long = 5000 + 289; -pub const SYS_pwritev: ::c_long = 5000 + 290; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 5000 + 291; -pub const SYS_perf_event_open: ::c_long = 5000 + 292; -pub const SYS_accept4: ::c_long = 5000 + 293; -pub const SYS_recvmmsg: ::c_long = 5000 + 294; -pub const SYS_fanotify_init: ::c_long = 5000 + 295; -pub const SYS_fanotify_mark: ::c_long = 5000 + 296; -pub const SYS_prlimit64: ::c_long = 5000 + 297; -pub const SYS_name_to_handle_at: ::c_long = 5000 + 298; -pub const SYS_open_by_handle_at: ::c_long = 5000 + 299; -pub const SYS_clock_adjtime: ::c_long = 5000 + 300; -pub const SYS_syncfs: ::c_long = 5000 + 301; -pub const SYS_sendmmsg: ::c_long = 5000 + 302; -pub const SYS_setns: ::c_long = 5000 + 303; -pub const SYS_process_vm_readv: ::c_long = 5000 + 304; -pub const SYS_process_vm_writev: ::c_long = 5000 + 305; -pub const SYS_kcmp: ::c_long = 5000 + 306; -pub const SYS_finit_module: ::c_long = 5000 + 307; -pub const SYS_getdents64: ::c_long = 5000 + 308; -pub const SYS_sched_setattr: ::c_long = 5000 + 309; -pub const SYS_sched_getattr: ::c_long = 5000 + 310; -pub const SYS_renameat2: ::c_long = 5000 + 311; -pub const SYS_seccomp: ::c_long = 5000 + 312; -pub const SYS_getrandom: ::c_long = 5000 + 313; -pub const SYS_memfd_create: ::c_long = 5000 + 314; -pub const SYS_bpf: ::c_long = 5000 + 315; -pub const SYS_execveat: ::c_long = 5000 + 316; -pub const SYS_userfaultfd: ::c_long = 5000 + 317; -pub const SYS_membarrier: ::c_long = 5000 + 318; -pub const SYS_mlock2: ::c_long = 5000 + 319; -pub const SYS_copy_file_range: ::c_long = 5000 + 320; -pub const SYS_preadv2: ::c_long = 5000 + 321; -pub const SYS_pwritev2: ::c_long = 5000 + 322; -pub const SYS_pkey_mprotect: ::c_long = 5000 + 323; -pub const SYS_pkey_alloc: ::c_long = 5000 + 324; -pub const SYS_pkey_free: ::c_long = 5000 + 325; -pub const SYS_statx: ::c_long = 5000 + 326; -pub const SYS_rseq: ::c_long = 5000 + 327; -pub const SYS_pidfd_send_signal: ::c_long = 5000 + 424; -pub const SYS_io_uring_setup: ::c_long = 5000 + 425; -pub const SYS_io_uring_enter: ::c_long = 5000 + 426; -pub const SYS_io_uring_register: ::c_long = 5000 + 427; -pub const SYS_open_tree: ::c_long = 5000 + 428; -pub const SYS_move_mount: ::c_long = 5000 + 429; -pub const SYS_fsopen: ::c_long = 5000 + 430; -pub const SYS_fsconfig: ::c_long = 5000 + 431; -pub const SYS_fsmount: ::c_long = 5000 + 432; -pub const SYS_fspick: ::c_long = 5000 + 433; -pub const SYS_pidfd_open: ::c_long = 5000 + 434; -pub const SYS_clone3: ::c_long = 5000 + 435; -pub const SYS_close_range: ::c_long = 5000 + 436; -pub const SYS_openat2: ::c_long = 5000 + 437; -pub const SYS_pidfd_getfd: ::c_long = 5000 + 438; -pub const SYS_faccessat2: ::c_long = 5000 + 439; -pub const SYS_process_madvise: ::c_long = 5000 + 440; -pub const SYS_epoll_pwait2: ::c_long = 5000 + 441; -pub const SYS_mount_setattr: ::c_long = 5000 + 442; -pub const SYS_quotactl_fd: ::c_long = 5000 + 443; -pub const SYS_landlock_create_ruleset: ::c_long = 5000 + 444; -pub const SYS_landlock_add_rule: ::c_long = 5000 + 445; -pub const SYS_landlock_restrict_self: ::c_long = 5000 + 446; -pub const SYS_memfd_secret: ::c_long = 5000 + 447; -pub const SYS_process_mrelease: ::c_long = 5000 + 448; -pub const SYS_futex_waitv: ::c_long = 5000 + 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 5000 + 450; - -pub const SFD_CLOEXEC: ::c_int = 0x080000; +pub const SYS_read: c_long = 5000 + 0; +pub const SYS_write: c_long = 5000 + 1; +pub const SYS_open: c_long = 5000 + 2; +pub const SYS_close: c_long = 5000 + 3; +pub const SYS_stat: c_long = 5000 + 4; +pub const SYS_fstat: c_long = 5000 + 5; +pub const SYS_lstat: c_long = 5000 + 6; +pub const SYS_poll: c_long = 5000 + 7; +pub const SYS_lseek: c_long = 5000 + 8; +pub const SYS_mmap: c_long = 5000 + 9; +pub const SYS_mprotect: c_long = 5000 + 10; +pub const SYS_munmap: c_long = 5000 + 11; +pub const SYS_brk: c_long = 5000 + 12; +pub const SYS_rt_sigaction: c_long = 5000 + 13; +pub const SYS_rt_sigprocmask: c_long = 5000 + 14; +pub const SYS_ioctl: c_long = 5000 + 15; +pub const SYS_pread64: c_long = 5000 + 16; +pub const SYS_pwrite64: c_long = 5000 + 17; +pub const SYS_readv: c_long = 5000 + 18; +pub const SYS_writev: c_long = 5000 + 19; +pub const SYS_access: c_long = 5000 + 20; +pub const SYS_pipe: c_long = 5000 + 21; +pub const SYS__newselect: c_long = 5000 + 22; +pub const SYS_sched_yield: c_long = 5000 + 23; +pub const SYS_mremap: c_long = 5000 + 24; +pub const SYS_msync: c_long = 5000 + 25; +pub const SYS_mincore: c_long = 5000 + 26; +pub const SYS_madvise: c_long = 5000 + 27; +pub const SYS_shmget: c_long = 5000 + 28; +pub const SYS_shmat: c_long = 5000 + 29; +pub const SYS_shmctl: c_long = 5000 + 30; +pub const SYS_dup: c_long = 5000 + 31; +pub const SYS_dup2: c_long = 5000 + 32; +pub const SYS_pause: c_long = 5000 + 33; +pub const SYS_nanosleep: c_long = 5000 + 34; +pub const SYS_getitimer: c_long = 5000 + 35; +pub const SYS_setitimer: c_long = 5000 + 36; +pub const SYS_alarm: c_long = 5000 + 37; +pub const SYS_getpid: c_long = 5000 + 38; +pub const SYS_sendfile: c_long = 5000 + 39; +pub const SYS_socket: c_long = 5000 + 40; +pub const SYS_connect: c_long = 5000 + 41; +pub const SYS_accept: c_long = 5000 + 42; +pub const SYS_sendto: c_long = 5000 + 43; +pub const SYS_recvfrom: c_long = 5000 + 44; +pub const SYS_sendmsg: c_long = 5000 + 45; +pub const SYS_recvmsg: c_long = 5000 + 46; +pub const SYS_shutdown: c_long = 5000 + 47; +pub const SYS_bind: c_long = 5000 + 48; +pub const SYS_listen: c_long = 5000 + 49; +pub const SYS_getsockname: c_long = 5000 + 50; +pub const SYS_getpeername: c_long = 5000 + 51; +pub const SYS_socketpair: c_long = 5000 + 52; +pub const SYS_setsockopt: c_long = 5000 + 53; +pub const SYS_getsockopt: c_long = 5000 + 54; +pub const SYS_clone: c_long = 5000 + 55; +pub const SYS_fork: c_long = 5000 + 56; +pub const SYS_execve: c_long = 5000 + 57; +pub const SYS_exit: c_long = 5000 + 58; +pub const SYS_wait4: c_long = 5000 + 59; +pub const SYS_kill: c_long = 5000 + 60; +pub const SYS_uname: c_long = 5000 + 61; +pub const SYS_semget: c_long = 5000 + 62; +pub const SYS_semop: c_long = 5000 + 63; +pub const SYS_semctl: c_long = 5000 + 64; +pub const SYS_shmdt: c_long = 5000 + 65; +pub const SYS_msgget: c_long = 5000 + 66; +pub const SYS_msgsnd: c_long = 5000 + 67; +pub const SYS_msgrcv: c_long = 5000 + 68; +pub const SYS_msgctl: c_long = 5000 + 69; +pub const SYS_fcntl: c_long = 5000 + 70; +pub const SYS_flock: c_long = 5000 + 71; +pub const SYS_fsync: c_long = 5000 + 72; +pub const SYS_fdatasync: c_long = 5000 + 73; +pub const SYS_truncate: c_long = 5000 + 74; +pub const SYS_ftruncate: c_long = 5000 + 75; +pub const SYS_getdents: c_long = 5000 + 76; +pub const SYS_getcwd: c_long = 5000 + 77; +pub const SYS_chdir: c_long = 5000 + 78; +pub const SYS_fchdir: c_long = 5000 + 79; +pub const SYS_rename: c_long = 5000 + 80; +pub const SYS_mkdir: c_long = 5000 + 81; +pub const SYS_rmdir: c_long = 5000 + 82; +pub const SYS_creat: c_long = 5000 + 83; +pub const SYS_link: c_long = 5000 + 84; +pub const SYS_unlink: c_long = 5000 + 85; +pub const SYS_symlink: c_long = 5000 + 86; +pub const SYS_readlink: c_long = 5000 + 87; +pub const SYS_chmod: c_long = 5000 + 88; +pub const SYS_fchmod: c_long = 5000 + 89; +pub const SYS_chown: c_long = 5000 + 90; +pub const SYS_fchown: c_long = 5000 + 91; +pub const SYS_lchown: c_long = 5000 + 92; +pub const SYS_umask: c_long = 5000 + 93; +pub const SYS_gettimeofday: c_long = 5000 + 94; +pub const SYS_getrlimit: c_long = 5000 + 95; +pub const SYS_getrusage: c_long = 5000 + 96; +pub const SYS_sysinfo: c_long = 5000 + 97; +pub const SYS_times: c_long = 5000 + 98; +pub const SYS_ptrace: c_long = 5000 + 99; +pub const SYS_getuid: c_long = 5000 + 100; +pub const SYS_syslog: c_long = 5000 + 101; +pub const SYS_getgid: c_long = 5000 + 102; +pub const SYS_setuid: c_long = 5000 + 103; +pub const SYS_setgid: c_long = 5000 + 104; +pub const SYS_geteuid: c_long = 5000 + 105; +pub const SYS_getegid: c_long = 5000 + 106; +pub const SYS_setpgid: c_long = 5000 + 107; +pub const SYS_getppid: c_long = 5000 + 108; +pub const SYS_getpgrp: c_long = 5000 + 109; +pub const SYS_setsid: c_long = 5000 + 110; +pub const SYS_setreuid: c_long = 5000 + 111; +pub const SYS_setregid: c_long = 5000 + 112; +pub const SYS_getgroups: c_long = 5000 + 113; +pub const SYS_setgroups: c_long = 5000 + 114; +pub const SYS_setresuid: c_long = 5000 + 115; +pub const SYS_getresuid: c_long = 5000 + 116; +pub const SYS_setresgid: c_long = 5000 + 117; +pub const SYS_getresgid: c_long = 5000 + 118; +pub const SYS_getpgid: c_long = 5000 + 119; +pub const SYS_setfsuid: c_long = 5000 + 120; +pub const SYS_setfsgid: c_long = 5000 + 121; +pub const SYS_getsid: c_long = 5000 + 122; +pub const SYS_capget: c_long = 5000 + 123; +pub const SYS_capset: c_long = 5000 + 124; +pub const SYS_rt_sigpending: c_long = 5000 + 125; +pub const SYS_rt_sigtimedwait: c_long = 5000 + 126; +pub const SYS_rt_sigqueueinfo: c_long = 5000 + 127; +pub const SYS_rt_sigsuspend: c_long = 5000 + 128; +pub const SYS_sigaltstack: c_long = 5000 + 129; +pub const SYS_utime: c_long = 5000 + 130; +pub const SYS_mknod: c_long = 5000 + 131; +pub const SYS_personality: c_long = 5000 + 132; +pub const SYS_ustat: c_long = 5000 + 133; +pub const SYS_statfs: c_long = 5000 + 134; +pub const SYS_fstatfs: c_long = 5000 + 135; +pub const SYS_sysfs: c_long = 5000 + 136; +pub const SYS_getpriority: c_long = 5000 + 137; +pub const SYS_setpriority: c_long = 5000 + 138; +pub const SYS_sched_setparam: c_long = 5000 + 139; +pub const SYS_sched_getparam: c_long = 5000 + 140; +pub const SYS_sched_setscheduler: c_long = 5000 + 141; +pub const SYS_sched_getscheduler: c_long = 5000 + 142; +pub const SYS_sched_get_priority_max: c_long = 5000 + 143; +pub const SYS_sched_get_priority_min: c_long = 5000 + 144; +pub const SYS_sched_rr_get_interval: c_long = 5000 + 145; +pub const SYS_mlock: c_long = 5000 + 146; +pub const SYS_munlock: c_long = 5000 + 147; +pub const SYS_mlockall: c_long = 5000 + 148; +pub const SYS_munlockall: c_long = 5000 + 149; +pub const SYS_vhangup: c_long = 5000 + 150; +pub const SYS_pivot_root: c_long = 5000 + 151; +pub const SYS__sysctl: c_long = 5000 + 152; +pub const SYS_prctl: c_long = 5000 + 153; +pub const SYS_adjtimex: c_long = 5000 + 154; +pub const SYS_setrlimit: c_long = 5000 + 155; +pub const SYS_chroot: c_long = 5000 + 156; +pub const SYS_sync: c_long = 5000 + 157; +pub const SYS_acct: c_long = 5000 + 158; +pub const SYS_settimeofday: c_long = 5000 + 159; +pub const SYS_mount: c_long = 5000 + 160; +pub const SYS_umount2: c_long = 5000 + 161; +pub const SYS_swapon: c_long = 5000 + 162; +pub const SYS_swapoff: c_long = 5000 + 163; +pub const SYS_reboot: c_long = 5000 + 164; +pub const SYS_sethostname: c_long = 5000 + 165; +pub const SYS_setdomainname: c_long = 5000 + 166; +pub const SYS_create_module: c_long = 5000 + 167; +pub const SYS_init_module: c_long = 5000 + 168; +pub const SYS_delete_module: c_long = 5000 + 169; +pub const SYS_get_kernel_syms: c_long = 5000 + 170; +pub const SYS_query_module: c_long = 5000 + 171; +pub const SYS_quotactl: c_long = 5000 + 172; +pub const SYS_nfsservctl: c_long = 5000 + 173; +pub const SYS_getpmsg: c_long = 5000 + 174; +pub const SYS_putpmsg: c_long = 5000 + 175; +pub const SYS_afs_syscall: c_long = 5000 + 176; +pub const SYS_gettid: c_long = 5000 + 178; +pub const SYS_readahead: c_long = 5000 + 179; +pub const SYS_setxattr: c_long = 5000 + 180; +pub const SYS_lsetxattr: c_long = 5000 + 181; +pub const SYS_fsetxattr: c_long = 5000 + 182; +pub const SYS_getxattr: c_long = 5000 + 183; +pub const SYS_lgetxattr: c_long = 5000 + 184; +pub const SYS_fgetxattr: c_long = 5000 + 185; +pub const SYS_listxattr: c_long = 5000 + 186; +pub const SYS_llistxattr: c_long = 5000 + 187; +pub const SYS_flistxattr: c_long = 5000 + 188; +pub const SYS_removexattr: c_long = 5000 + 189; +pub const SYS_lremovexattr: c_long = 5000 + 190; +pub const SYS_fremovexattr: c_long = 5000 + 191; +pub const SYS_tkill: c_long = 5000 + 192; +pub const SYS_futex: c_long = 5000 + 194; +pub const SYS_sched_setaffinity: c_long = 5000 + 195; +pub const SYS_sched_getaffinity: c_long = 5000 + 196; +pub const SYS_cacheflush: c_long = 5000 + 197; +pub const SYS_cachectl: c_long = 5000 + 198; +pub const SYS_sysmips: c_long = 5000 + 199; +pub const SYS_io_setup: c_long = 5000 + 200; +pub const SYS_io_destroy: c_long = 5000 + 201; +pub const SYS_io_getevents: c_long = 5000 + 202; +pub const SYS_io_submit: c_long = 5000 + 203; +pub const SYS_io_cancel: c_long = 5000 + 204; +pub const SYS_exit_group: c_long = 5000 + 205; +pub const SYS_lookup_dcookie: c_long = 5000 + 206; +pub const SYS_epoll_create: c_long = 5000 + 207; +pub const SYS_epoll_ctl: c_long = 5000 + 208; +pub const SYS_epoll_wait: c_long = 5000 + 209; +pub const SYS_remap_file_pages: c_long = 5000 + 210; +pub const SYS_rt_sigreturn: c_long = 5000 + 211; +pub const SYS_set_tid_address: c_long = 5000 + 212; +pub const SYS_restart_syscall: c_long = 5000 + 213; +pub const SYS_semtimedop: c_long = 5000 + 214; +pub const SYS_fadvise64: c_long = 5000 + 215; +pub const SYS_timer_create: c_long = 5000 + 216; +pub const SYS_timer_settime: c_long = 5000 + 217; +pub const SYS_timer_gettime: c_long = 5000 + 218; +pub const SYS_timer_getoverrun: c_long = 5000 + 219; +pub const SYS_timer_delete: c_long = 5000 + 220; +pub const SYS_clock_settime: c_long = 5000 + 221; +pub const SYS_clock_gettime: c_long = 5000 + 222; +pub const SYS_clock_getres: c_long = 5000 + 223; +pub const SYS_clock_nanosleep: c_long = 5000 + 224; +pub const SYS_tgkill: c_long = 5000 + 225; +pub const SYS_utimes: c_long = 5000 + 226; +pub const SYS_mbind: c_long = 5000 + 227; +pub const SYS_get_mempolicy: c_long = 5000 + 228; +pub const SYS_set_mempolicy: c_long = 5000 + 229; +pub const SYS_mq_open: c_long = 5000 + 230; +pub const SYS_mq_unlink: c_long = 5000 + 231; +pub const SYS_mq_timedsend: c_long = 5000 + 232; +pub const SYS_mq_timedreceive: c_long = 5000 + 233; +pub const SYS_mq_notify: c_long = 5000 + 234; +pub const SYS_mq_getsetattr: c_long = 5000 + 235; +pub const SYS_vserver: c_long = 5000 + 236; +pub const SYS_waitid: c_long = 5000 + 237; +/* pub const SYS_sys_setaltroot: c_long = 5000 + 238; */ +pub const SYS_add_key: c_long = 5000 + 239; +pub const SYS_request_key: c_long = 5000 + 240; +pub const SYS_keyctl: c_long = 5000 + 241; +pub const SYS_set_thread_area: c_long = 5000 + 242; +pub const SYS_inotify_init: c_long = 5000 + 243; +pub const SYS_inotify_add_watch: c_long = 5000 + 244; +pub const SYS_inotify_rm_watch: c_long = 5000 + 245; +pub const SYS_migrate_pages: c_long = 5000 + 246; +pub const SYS_openat: c_long = 5000 + 247; +pub const SYS_mkdirat: c_long = 5000 + 248; +pub const SYS_mknodat: c_long = 5000 + 249; +pub const SYS_fchownat: c_long = 5000 + 250; +pub const SYS_futimesat: c_long = 5000 + 251; +pub const SYS_newfstatat: c_long = 5000 + 252; +pub const SYS_unlinkat: c_long = 5000 + 253; +pub const SYS_renameat: c_long = 5000 + 254; +pub const SYS_linkat: c_long = 5000 + 255; +pub const SYS_symlinkat: c_long = 5000 + 256; +pub const SYS_readlinkat: c_long = 5000 + 257; +pub const SYS_fchmodat: c_long = 5000 + 258; +pub const SYS_faccessat: c_long = 5000 + 259; +pub const SYS_pselect6: c_long = 5000 + 260; +pub const SYS_ppoll: c_long = 5000 + 261; +pub const SYS_unshare: c_long = 5000 + 262; +pub const SYS_splice: c_long = 5000 + 263; +pub const SYS_sync_file_range: c_long = 5000 + 264; +pub const SYS_tee: c_long = 5000 + 265; +pub const SYS_vmsplice: c_long = 5000 + 266; +pub const SYS_move_pages: c_long = 5000 + 267; +pub const SYS_set_robust_list: c_long = 5000 + 268; +pub const SYS_get_robust_list: c_long = 5000 + 269; +pub const SYS_kexec_load: c_long = 5000 + 270; +pub const SYS_getcpu: c_long = 5000 + 271; +pub const SYS_epoll_pwait: c_long = 5000 + 272; +pub const SYS_ioprio_set: c_long = 5000 + 273; +pub const SYS_ioprio_get: c_long = 5000 + 274; +pub const SYS_utimensat: c_long = 5000 + 275; +pub const SYS_signalfd: c_long = 5000 + 276; +pub const SYS_timerfd: c_long = 5000 + 277; +pub const SYS_eventfd: c_long = 5000 + 278; +pub const SYS_fallocate: c_long = 5000 + 279; +pub const SYS_timerfd_create: c_long = 5000 + 280; +pub const SYS_timerfd_gettime: c_long = 5000 + 281; +pub const SYS_timerfd_settime: c_long = 5000 + 282; +pub const SYS_signalfd4: c_long = 5000 + 283; +pub const SYS_eventfd2: c_long = 5000 + 284; +pub const SYS_epoll_create1: c_long = 5000 + 285; +pub const SYS_dup3: c_long = 5000 + 286; +pub const SYS_pipe2: c_long = 5000 + 287; +pub const SYS_inotify_init1: c_long = 5000 + 288; +pub const SYS_preadv: c_long = 5000 + 289; +pub const SYS_pwritev: c_long = 5000 + 290; +pub const SYS_rt_tgsigqueueinfo: c_long = 5000 + 291; +pub const SYS_perf_event_open: c_long = 5000 + 292; +pub const SYS_accept4: c_long = 5000 + 293; +pub const SYS_recvmmsg: c_long = 5000 + 294; +pub const SYS_fanotify_init: c_long = 5000 + 295; +pub const SYS_fanotify_mark: c_long = 5000 + 296; +pub const SYS_prlimit64: c_long = 5000 + 297; +pub const SYS_name_to_handle_at: c_long = 5000 + 298; +pub const SYS_open_by_handle_at: c_long = 5000 + 299; +pub const SYS_clock_adjtime: c_long = 5000 + 300; +pub const SYS_syncfs: c_long = 5000 + 301; +pub const SYS_sendmmsg: c_long = 5000 + 302; +pub const SYS_setns: c_long = 5000 + 303; +pub const SYS_process_vm_readv: c_long = 5000 + 304; +pub const SYS_process_vm_writev: c_long = 5000 + 305; +pub const SYS_kcmp: c_long = 5000 + 306; +pub const SYS_finit_module: c_long = 5000 + 307; +pub const SYS_getdents64: c_long = 5000 + 308; +pub const SYS_sched_setattr: c_long = 5000 + 309; +pub const SYS_sched_getattr: c_long = 5000 + 310; +pub const SYS_renameat2: c_long = 5000 + 311; +pub const SYS_seccomp: c_long = 5000 + 312; +pub const SYS_getrandom: c_long = 5000 + 313; +pub const SYS_memfd_create: c_long = 5000 + 314; +pub const SYS_bpf: c_long = 5000 + 315; +pub const SYS_execveat: c_long = 5000 + 316; +pub const SYS_userfaultfd: c_long = 5000 + 317; +pub const SYS_membarrier: c_long = 5000 + 318; +pub const SYS_mlock2: c_long = 5000 + 319; +pub const SYS_copy_file_range: c_long = 5000 + 320; +pub const SYS_preadv2: c_long = 5000 + 321; +pub const SYS_pwritev2: c_long = 5000 + 322; +pub const SYS_pkey_mprotect: c_long = 5000 + 323; +pub const SYS_pkey_alloc: c_long = 5000 + 324; +pub const SYS_pkey_free: c_long = 5000 + 325; +pub const SYS_statx: c_long = 5000 + 326; +pub const SYS_rseq: c_long = 5000 + 327; +pub const SYS_pidfd_send_signal: c_long = 5000 + 424; +pub const SYS_io_uring_setup: c_long = 5000 + 425; +pub const SYS_io_uring_enter: c_long = 5000 + 426; +pub const SYS_io_uring_register: c_long = 5000 + 427; +pub const SYS_open_tree: c_long = 5000 + 428; +pub const SYS_move_mount: c_long = 5000 + 429; +pub const SYS_fsopen: c_long = 5000 + 430; +pub const SYS_fsconfig: c_long = 5000 + 431; +pub const SYS_fsmount: c_long = 5000 + 432; +pub const SYS_fspick: c_long = 5000 + 433; +pub const SYS_pidfd_open: c_long = 5000 + 434; +pub const SYS_clone3: c_long = 5000 + 435; +pub const SYS_close_range: c_long = 5000 + 436; +pub const SYS_openat2: c_long = 5000 + 437; +pub const SYS_pidfd_getfd: c_long = 5000 + 438; +pub const SYS_faccessat2: c_long = 5000 + 439; +pub const SYS_process_madvise: c_long = 5000 + 440; +pub const SYS_epoll_pwait2: c_long = 5000 + 441; +pub const SYS_mount_setattr: c_long = 5000 + 442; +pub const SYS_quotactl_fd: c_long = 5000 + 443; +pub const SYS_landlock_create_ruleset: c_long = 5000 + 444; +pub const SYS_landlock_add_rule: c_long = 5000 + 445; +pub const SYS_landlock_restrict_self: c_long = 5000 + 446; +pub const SYS_memfd_secret: c_long = 5000 + 447; +pub const SYS_process_mrelease: c_long = 5000 + 448; +pub const SYS_futex_waitv: c_long = 5000 + 449; +pub const SYS_set_mempolicy_home_node: c_long = 5000 + 450; + +pub const SFD_CLOEXEC: c_int = 0x080000; pub const NCCS: usize = 32; -pub const O_TRUNC: ::c_int = 512; - -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_CLOEXEC: ::c_int = 0x80000; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; - -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; - -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -pub const EFD_CLOEXEC: ::c_int = 0x80000; - -pub const O_DIRECT: ::c_int = 0x8000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; - -pub const O_APPEND: ::c_int = 8; -pub const O_CREAT: ::c_int = 256; -pub const O_EXCL: ::c_int = 1024; -pub const O_NOCTTY: ::c_int = 2048; -pub const O_NONBLOCK: ::c_int = 128; -pub const O_SYNC: ::c_int = 0x4010; -pub const O_RSYNC: ::c_int = 0x4010; -pub const O_DSYNC: ::c_int = 0x10; -pub const O_FSYNC: ::c_int = 0x4010; -pub const O_ASYNC: ::c_int = 0x1000; -pub const O_NDELAY: ::c_int = 0x80; - -pub const EDEADLK: ::c_int = 45; -pub const ENAMETOOLONG: ::c_int = 78; -pub const ENOLCK: ::c_int = 46; -pub const ENOSYS: ::c_int = 89; -pub const ENOTEMPTY: ::c_int = 93; -pub const ELOOP: ::c_int = 90; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const ECHRNG: ::c_int = 37; -pub const EL2NSYNC: ::c_int = 38; -pub const EL3HLT: ::c_int = 39; -pub const EL3RST: ::c_int = 40; -pub const ELNRNG: ::c_int = 41; -pub const EUNATCH: ::c_int = 42; -pub const ENOCSI: ::c_int = 43; -pub const EL2HLT: ::c_int = 44; -pub const EBADE: ::c_int = 50; -pub const EBADR: ::c_int = 51; -pub const EXFULL: ::c_int = 52; -pub const ENOANO: ::c_int = 53; -pub const EBADRQC: ::c_int = 54; -pub const EBADSLT: ::c_int = 55; -pub const EDEADLOCK: ::c_int = 56; -pub const EMULTIHOP: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 79; -pub const ENOTUNIQ: ::c_int = 80; -pub const EBADFD: ::c_int = 81; -pub const EBADMSG: ::c_int = 77; -pub const EREMCHG: ::c_int = 82; -pub const ELIBACC: ::c_int = 83; -pub const ELIBBAD: ::c_int = 84; -pub const ELIBSCN: ::c_int = 85; -pub const ELIBMAX: ::c_int = 86; -pub const ELIBEXEC: ::c_int = 87; -pub const EILSEQ: ::c_int = 88; -pub const ERESTART: ::c_int = 91; -pub const ESTRPIPE: ::c_int = 92; -pub const EUSERS: ::c_int = 94; -pub const ENOTSOCK: ::c_int = 95; -pub const EDESTADDRREQ: ::c_int = 96; -pub const EMSGSIZE: ::c_int = 97; -pub const EPROTOTYPE: ::c_int = 98; -pub const ENOPROTOOPT: ::c_int = 99; -pub const EPROTONOSUPPORT: ::c_int = 120; -pub const ESOCKTNOSUPPORT: ::c_int = 121; -pub const EOPNOTSUPP: ::c_int = 122; -pub const EPFNOSUPPORT: ::c_int = 123; -pub const EAFNOSUPPORT: ::c_int = 124; -pub const EADDRINUSE: ::c_int = 125; -pub const EADDRNOTAVAIL: ::c_int = 126; -pub const ENETDOWN: ::c_int = 127; -pub const ENETUNREACH: ::c_int = 128; -pub const ENETRESET: ::c_int = 129; -pub const ECONNABORTED: ::c_int = 130; -pub const ECONNRESET: ::c_int = 131; -pub const ENOBUFS: ::c_int = 132; -pub const EISCONN: ::c_int = 133; -pub const ENOTCONN: ::c_int = 134; -pub const ESHUTDOWN: ::c_int = 143; -pub const ETOOMANYREFS: ::c_int = 144; -pub const ETIMEDOUT: ::c_int = 145; -pub const ECONNREFUSED: ::c_int = 146; -pub const EHOSTDOWN: ::c_int = 147; -pub const EHOSTUNREACH: ::c_int = 148; -pub const EALREADY: ::c_int = 149; -pub const EINPROGRESS: ::c_int = 150; -pub const ESTALE: ::c_int = 151; -pub const EUCLEAN: ::c_int = 135; -pub const ENOTNAM: ::c_int = 137; -pub const ENAVAIL: ::c_int = 138; -pub const EISNAM: ::c_int = 139; -pub const EREMOTEIO: ::c_int = 140; -pub const EDQUOT: ::c_int = 1133; -pub const ENOMEDIUM: ::c_int = 159; -pub const EMEDIUMTYPE: ::c_int = 160; -pub const ECANCELED: ::c_int = 158; -pub const ENOKEY: ::c_int = 161; -pub const EKEYEXPIRED: ::c_int = 162; -pub const EKEYREVOKED: ::c_int = 163; -pub const EKEYREJECTED: ::c_int = 164; -pub const EOWNERDEAD: ::c_int = 165; -pub const ENOTRECOVERABLE: ::c_int = 166; -pub const ERFKILL: ::c_int = 167; - -pub const MAP_NORESERVE: ::c_int = 0x400; -pub const MAP_ANON: ::c_int = 0x800; -pub const MAP_ANONYMOUS: ::c_int = 0x800; -pub const MAP_GROWSDOWN: ::c_int = 0x1000; -pub const MAP_DENYWRITE: ::c_int = 0x2000; -pub const MAP_EXECUTABLE: ::c_int = 0x4000; -pub const MAP_LOCKED: ::c_int = 0x8000; -pub const MAP_POPULATE: ::c_int = 0x10000; -pub const MAP_NONBLOCK: ::c_int = 0x20000; -pub const MAP_STACK: ::c_int = 0x40000; -pub const MAP_HUGETLB: ::c_int = 0x080000; - -pub const SOCK_STREAM: ::c_int = 2; -pub const SOCK_DGRAM: ::c_int = 1; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000008; -pub const SA_NOCLDWAIT: ::c_int = 0x00010000; - -pub const SIGCHLD: ::c_int = 18; -pub const SIGBUS: ::c_int = 10; -pub const SIGTTIN: ::c_int = 26; -pub const SIGTTOU: ::c_int = 27; -pub const SIGXCPU: ::c_int = 30; -pub const SIGXFSZ: ::c_int = 31; -pub const SIGVTALRM: ::c_int = 28; -pub const SIGPROF: ::c_int = 29; -pub const SIGWINCH: ::c_int = 20; -pub const SIGUSR1: ::c_int = 16; -pub const SIGUSR2: ::c_int = 17; -pub const SIGCONT: ::c_int = 25; -pub const SIGSTOP: ::c_int = 23; -pub const SIGTSTP: ::c_int = 24; -pub const SIGURG: ::c_int = 21; -pub const SIGIO: ::c_int = 22; -pub const SIGSYS: ::c_int = 12; -pub const SIGPOLL: ::c_int = 22; -pub const SIGPWR: ::c_int = 19; -pub const SIG_SETMASK: ::c_int = 3; -pub const SIG_BLOCK: ::c_int = 0x1; -pub const SIG_UNBLOCK: ::c_int = 0x2; - -pub const POLLWRNORM: ::c_short = 0x004; -pub const POLLWRBAND: ::c_short = 0x100; +pub const O_TRUNC: c_int = 512; + +pub const O_NOATIME: c_int = 0o1000000; +pub const O_CLOEXEC: c_int = 0x80000; +pub const O_PATH: c_int = 0o10000000; +pub const O_TMPFILE: c_int = 0o20000000 | O_DIRECTORY; + +pub const EBFONT: c_int = 59; +pub const ENOSTR: c_int = 60; +pub const ENODATA: c_int = 61; +pub const ETIME: c_int = 62; +pub const ENOSR: c_int = 63; +pub const ENONET: c_int = 64; +pub const ENOPKG: c_int = 65; +pub const EREMOTE: c_int = 66; +pub const ENOLINK: c_int = 67; +pub const EADV: c_int = 68; +pub const ESRMNT: c_int = 69; +pub const ECOMM: c_int = 70; +pub const EPROTO: c_int = 71; +pub const EDOTDOT: c_int = 73; + +pub const SA_NODEFER: c_int = 0x40000000; +pub const SA_RESETHAND: c_int = 0x80000000; +pub const SA_RESTART: c_int = 0x10000000; +pub const SA_NOCLDSTOP: c_int = 0x00000001; + +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; + +pub const EPOLL_CLOEXEC: c_int = 0x80000; + +pub const EFD_CLOEXEC: c_int = 0x80000; + +pub const O_DIRECT: c_int = 0x8000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_NOFOLLOW: c_int = 0x20000; + +pub const O_APPEND: c_int = 8; +pub const O_CREAT: c_int = 256; +pub const O_EXCL: c_int = 1024; +pub const O_NOCTTY: c_int = 2048; +pub const O_NONBLOCK: c_int = 128; +pub const O_SYNC: c_int = 0x4010; +pub const O_RSYNC: c_int = 0x4010; +pub const O_DSYNC: c_int = 0x10; +pub const O_FSYNC: c_int = 0x4010; +pub const O_ASYNC: c_int = 0x1000; +pub const O_NDELAY: c_int = 0x80; + +pub const EDEADLK: c_int = 45; +pub const ENAMETOOLONG: c_int = 78; +pub const ENOLCK: c_int = 46; +pub const ENOSYS: c_int = 89; +pub const ENOTEMPTY: c_int = 93; +pub const ELOOP: c_int = 90; +pub const ENOMSG: c_int = 35; +pub const EIDRM: c_int = 36; +pub const ECHRNG: c_int = 37; +pub const EL2NSYNC: c_int = 38; +pub const EL3HLT: c_int = 39; +pub const EL3RST: c_int = 40; +pub const ELNRNG: c_int = 41; +pub const EUNATCH: c_int = 42; +pub const ENOCSI: c_int = 43; +pub const EL2HLT: c_int = 44; +pub const EBADE: c_int = 50; +pub const EBADR: c_int = 51; +pub const EXFULL: c_int = 52; +pub const ENOANO: c_int = 53; +pub const EBADRQC: c_int = 54; +pub const EBADSLT: c_int = 55; +pub const EDEADLOCK: c_int = 56; +pub const EMULTIHOP: c_int = 74; +pub const EOVERFLOW: c_int = 79; +pub const ENOTUNIQ: c_int = 80; +pub const EBADFD: c_int = 81; +pub const EBADMSG: c_int = 77; +pub const EREMCHG: c_int = 82; +pub const ELIBACC: c_int = 83; +pub const ELIBBAD: c_int = 84; +pub const ELIBSCN: c_int = 85; +pub const ELIBMAX: c_int = 86; +pub const ELIBEXEC: c_int = 87; +pub const EILSEQ: c_int = 88; +pub const ERESTART: c_int = 91; +pub const ESTRPIPE: c_int = 92; +pub const EUSERS: c_int = 94; +pub const ENOTSOCK: c_int = 95; +pub const EDESTADDRREQ: c_int = 96; +pub const EMSGSIZE: c_int = 97; +pub const EPROTOTYPE: c_int = 98; +pub const ENOPROTOOPT: c_int = 99; +pub const EPROTONOSUPPORT: c_int = 120; +pub const ESOCKTNOSUPPORT: c_int = 121; +pub const EOPNOTSUPP: c_int = 122; +pub const EPFNOSUPPORT: c_int = 123; +pub const EAFNOSUPPORT: c_int = 124; +pub const EADDRINUSE: c_int = 125; +pub const EADDRNOTAVAIL: c_int = 126; +pub const ENETDOWN: c_int = 127; +pub const ENETUNREACH: c_int = 128; +pub const ENETRESET: c_int = 129; +pub const ECONNABORTED: c_int = 130; +pub const ECONNRESET: c_int = 131; +pub const ENOBUFS: c_int = 132; +pub const EISCONN: c_int = 133; +pub const ENOTCONN: c_int = 134; +pub const ESHUTDOWN: c_int = 143; +pub const ETOOMANYREFS: c_int = 144; +pub const ETIMEDOUT: c_int = 145; +pub const ECONNREFUSED: c_int = 146; +pub const EHOSTDOWN: c_int = 147; +pub const EHOSTUNREACH: c_int = 148; +pub const EALREADY: c_int = 149; +pub const EINPROGRESS: c_int = 150; +pub const ESTALE: c_int = 151; +pub const EUCLEAN: c_int = 135; +pub const ENOTNAM: c_int = 137; +pub const ENAVAIL: c_int = 138; +pub const EISNAM: c_int = 139; +pub const EREMOTEIO: c_int = 140; +pub const EDQUOT: c_int = 1133; +pub const ENOMEDIUM: c_int = 159; +pub const EMEDIUMTYPE: c_int = 160; +pub const ECANCELED: c_int = 158; +pub const ENOKEY: c_int = 161; +pub const EKEYEXPIRED: c_int = 162; +pub const EKEYREVOKED: c_int = 163; +pub const EKEYREJECTED: c_int = 164; +pub const EOWNERDEAD: c_int = 165; +pub const ENOTRECOVERABLE: c_int = 166; +pub const ERFKILL: c_int = 167; + +pub const MAP_NORESERVE: c_int = 0x400; +pub const MAP_ANON: c_int = 0x800; +pub const MAP_ANONYMOUS: c_int = 0x800; +pub const MAP_GROWSDOWN: c_int = 0x1000; +pub const MAP_DENYWRITE: c_int = 0x2000; +pub const MAP_EXECUTABLE: c_int = 0x4000; +pub const MAP_LOCKED: c_int = 0x8000; +pub const MAP_POPULATE: c_int = 0x10000; +pub const MAP_NONBLOCK: c_int = 0x20000; +pub const MAP_STACK: c_int = 0x40000; +pub const MAP_HUGETLB: c_int = 0x080000; + +pub const SOCK_STREAM: c_int = 2; +pub const SOCK_DGRAM: c_int = 1; + +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000008; +pub const SA_NOCLDWAIT: c_int = 0x00010000; + +pub const SIGCHLD: c_int = 18; +pub const SIGBUS: c_int = 10; +pub const SIGTTIN: c_int = 26; +pub const SIGTTOU: c_int = 27; +pub const SIGXCPU: c_int = 30; +pub const SIGXFSZ: c_int = 31; +pub const SIGVTALRM: c_int = 28; +pub const SIGPROF: c_int = 29; +pub const SIGWINCH: c_int = 20; +pub const SIGUSR1: c_int = 16; +pub const SIGUSR2: c_int = 17; +pub const SIGCONT: c_int = 25; +pub const SIGSTOP: c_int = 23; +pub const SIGTSTP: c_int = 24; +pub const SIGURG: c_int = 21; +pub const SIGIO: c_int = 22; +pub const SIGSYS: c_int = 12; +pub const SIGPOLL: c_int = 22; +pub const SIGPWR: c_int = 19; +pub const SIG_SETMASK: c_int = 3; +pub const SIG_BLOCK: c_int = 0x1; +pub const SIG_UNBLOCK: c_int = 0x2; + +pub const POLLWRNORM: c_short = 0x004; +pub const POLLWRBAND: c_short = 0x100; pub const VEOF: usize = 16; pub const VEOL: usize = 17; pub const VEOL2: usize = 6; pub const VMIN: usize = 4; -pub const IEXTEN: ::tcflag_t = 0x00000100; -pub const TOSTOP: ::tcflag_t = 0x00008000; -pub const FLUSHO: ::tcflag_t = 0x00002000; -pub const EXTPROC: ::tcflag_t = 0o200000; -pub const TCSANOW: ::c_int = 0x540e; -pub const TCSADRAIN: ::c_int = 0x540f; -pub const TCSAFLUSH: ::c_int = 0x5410; - -pub const PTRACE_GETFPREGS: ::c_uint = 14; -pub const PTRACE_SETFPREGS: ::c_uint = 15; -pub const PTRACE_DETACH: ::c_uint = 17; -pub const PTRACE_GETFPXREGS: ::c_uint = 18; -pub const PTRACE_SETFPXREGS: ::c_uint = 19; -pub const PTRACE_GETREGS: ::c_uint = 12; -pub const PTRACE_SETREGS: ::c_uint = 13; - -pub const EFD_NONBLOCK: ::c_int = 0x80; - -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; -pub const F_GETLK: ::c_int = 14; -pub const F_GETOWN: ::c_int = 23; -pub const F_SETOWN: ::c_int = 24; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const SFD_NONBLOCK: ::c_int = 0x80; - -pub const RTLD_DEEPBIND: ::c_int = 0x10; -pub const RTLD_GLOBAL: ::c_int = 0x4; -pub const RTLD_NOLOAD: ::c_int = 0x8; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; +pub const IEXTEN: crate::tcflag_t = 0x00000100; +pub const TOSTOP: crate::tcflag_t = 0x00008000; +pub const FLUSHO: crate::tcflag_t = 0x00002000; +pub const EXTPROC: crate::tcflag_t = 0o200000; +pub const TCSANOW: c_int = 0x540e; +pub const TCSADRAIN: c_int = 0x540f; +pub const TCSAFLUSH: c_int = 0x5410; + +pub const PTRACE_GETFPREGS: c_uint = 14; +pub const PTRACE_SETFPREGS: c_uint = 15; +pub const PTRACE_DETACH: c_uint = 17; +pub const PTRACE_GETFPXREGS: c_uint = 18; +pub const PTRACE_SETFPXREGS: c_uint = 19; +pub const PTRACE_GETREGS: c_uint = 12; +pub const PTRACE_SETREGS: c_uint = 13; + +pub const EFD_NONBLOCK: c_int = 0x80; + +pub const F_RDLCK: c_int = 0; +pub const F_WRLCK: c_int = 1; +pub const F_UNLCK: c_int = 2; +pub const F_GETLK: c_int = 14; +pub const F_GETOWN: c_int = 23; +pub const F_SETOWN: c_int = 24; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; +pub const F_OFD_GETLK: c_int = 36; +pub const F_OFD_SETLK: c_int = 37; +pub const F_OFD_SETLKW: c_int = 38; + +pub const SFD_NONBLOCK: c_int = 0x80; + +pub const RTLD_DEEPBIND: c_int = 0x10; +pub const RTLD_GLOBAL: c_int = 0x4; +pub const RTLD_NOLOAD: c_int = 0x8; + +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; + +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: crate::tcflag_t = 0x00000800; +pub const TAB2: crate::tcflag_t = 0x00001000; +pub const TAB3: crate::tcflag_t = 0x00001800; +pub const CR1: crate::tcflag_t = 0x00000200; +pub const CR2: crate::tcflag_t = 0x00000400; +pub const CR3: crate::tcflag_t = 0x00000600; +pub const FF1: crate::tcflag_t = 0x00008000; +pub const BS1: crate::tcflag_t = 0x00002000; +pub const VT1: crate::tcflag_t = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -844,84 +844,84 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const EHWPOISON: ::c_int = 168; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; + +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; + +pub const EHWPOISON: c_int = 168; extern "C" { pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; + name: *mut c_int, + namelen: c_int, + oldp: *mut c_void, + oldlenp: *mut size_t, + newp: *mut c_void, + newlen: size_t, + ) -> c_int; } diff --git a/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs index b703800503139..6d2927a465241 100644 --- a/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -1,5 +1,7 @@ //! 64-bit specific definitions for linux-like values +use crate::{c_int, c_uint, c_ushort}; + pub type ino_t = u64; pub type off_t = i64; pub type blkcnt_t = i64; @@ -10,9 +12,9 @@ pub type fsblkcnt_t = u64; pub type fsfilcnt_t = u64; pub type rlim_t = u64; #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] -pub type __syscall_ulong_t = ::c_ulonglong; +pub type __syscall_ulong_t = crate::c_ulonglong; #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] -pub type __syscall_ulong_t = ::c_ulong; +pub type __syscall_ulong_t = c_ulong; cfg_if! { if #[cfg(all(target_arch = "aarch64", target_pointer_width = "32"))] { @@ -43,31 +45,31 @@ s! { pub bufferram: u64, pub totalswap: u64, pub freeswap: u64, - pub procs: ::c_ushort, - pub pad: ::c_ushort, + pub procs: c_ushort, + pub pad: c_ushort, pub totalhigh: u64, pub freehigh: u64, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 0], + pub mem_unit: c_uint, + pub _f: [c_char; 0], } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, + pub msg_perm: crate::ipc_perm, + pub msg_stime: crate::time_t, + pub msg_rtime: crate::time_t, + pub msg_ctime: crate::time_t, __msg_cbytes: u64, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, __glibc_reserved4: u64, __glibc_reserved5: u64, } pub struct semid_ds { pub sem_perm: ipc_perm, - pub sem_otime: ::time_t, + pub sem_otime: crate::time_t, #[cfg(not(any( target_arch = "aarch64", target_arch = "loongarch64", @@ -77,8 +79,8 @@ s! { target_arch = "riscv64", target_arch = "sparc64" )))] - __reserved: ::__syscall_ulong_t, - pub sem_ctime: ::time_t, + __reserved: crate::__syscall_ulong_t, + pub sem_ctime: crate::time_t, #[cfg(not(any( target_arch = "aarch64", target_arch = "loongarch64", @@ -88,16 +90,16 @@ s! { target_arch = "riscv64", target_arch = "sparc64" )))] - __reserved2: ::__syscall_ulong_t, - pub sem_nsems: ::__syscall_ulong_t, - __glibc_reserved3: ::__syscall_ulong_t, - __glibc_reserved4: ::__syscall_ulong_t, + __reserved2: crate::__syscall_ulong_t, + pub sem_nsems: crate::__syscall_ulong_t, + __glibc_reserved3: crate::__syscall_ulong_t, + __glibc_reserved4: crate::__syscall_ulong_t, } } pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; -pub const O_LARGEFILE: ::c_int = 0; +pub const O_LARGEFILE: c_int = 0; cfg_if! { if #[cfg(target_arch = "aarch64")] { diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index d9b80fa0ef530..3cfdf2fa8a88d 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -1,6 +1,6 @@ //! PowerPC64-specific definitions for 64-bit linux-like values -use pthread_mutex_t; +use crate::{c_int, c_short, c_uint, c_void, off64_t, off_t, pthread_mutex_t, size_t}; pub type c_long = i64; pub type c_ulong = u64; @@ -9,136 +9,136 @@ pub type wchar_t = i32; pub type nlink_t = u64; pub type blksize_t = i64; pub type suseconds_t = i64; -pub type __u64 = ::c_ulong; -pub type __s64 = ::c_long; +pub type __u64 = c_ulong; +pub type __s64 = c_long; s! { pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, #[cfg(target_arch = "sparc64")] - __reserved0: ::c_int, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + __reserved0: c_int, + pub sa_flags: c_int, + pub sa_restorer: Option, } pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - 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_fsid: ::fsid_t, - - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - f_spare: [::__fsword_t; 5], + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, + + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + f_spare: [crate::__fsword_t; 5], } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off64_t, + pub l_len: off64_t, + pub l_pid: crate::pid_t, } 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], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + __pad0: c_int, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_long; 3], } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_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: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_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, - __reserved: [::c_long; 3], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino64_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + __pad0: c_int, + pub st_rdev: crate::dev_t, + pub st_size: off64_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __reserved: [c_long; 3], } pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], + pub f_fsid: crate::fsid_t, + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + pub f_flags: crate::__fsword_t, + pub f_spare: [crate::__fsword_t; 4], } 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct pthread_attr_t { @@ -146,35 +146,35 @@ s! { } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, pub __seq: u32, __pad1: u32, __unused1: u64, - __unused2: ::c_ulong, + __unused2: c_ulong, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_segsz: ::size_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_segsz: size_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __unused4: c_ulong, + __unused5: c_ulong, } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, #[doc(hidden)] #[deprecated( since = "0.2.54", @@ -182,14 +182,14 @@ s! { https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] - pub _pad: [::c_int; 29], + pub _pad: [c_int; 29], _align: [usize; 0], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } } @@ -201,212 +201,212 @@ s_no_extra_traits! { } } -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const RTLD_DEEPBIND: c_int = 0x8; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_NOLOAD: c_int = 0x4; pub const VEOF: usize = 4; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; - -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_FSYNC: c_int = 0x101000; +pub const O_NOATIME: c_int = 0o1000000; +pub const O_PATH: c_int = 0o10000000; +pub const O_TMPFILE: c_int = 0o20000000 | O_DIRECTORY; + +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_ANONYMOUS: c_int = 0x0020; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; + +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EBADMSG: c_int = 74; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const EHWPOISON: c_int = 133; +pub const ERFKILL: c_int = 132; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; + +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; + +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; #[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGUNUSED: c_int = 31; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; +pub const O_ASYNC: c_int = 0x2000; +pub const O_NDELAY: c_int = 0x800; -pub const PTRACE_DETACH: ::c_uint = 17; +pub const PTRACE_DETACH: c_uint = 17; -pub const EFD_NONBLOCK: ::c_int = 0x800; +pub const EFD_NONBLOCK: c_int = 0x800; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETOWN: c_int = 8; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; +pub const F_OFD_GETLK: c_int = 36; +pub const F_OFD_SETLK: c_int = 37; +pub const F_OFD_SETLKW: c_int = 38; -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; +pub const F_RDLCK: c_int = 0; +pub const F_WRLCK: c_int = 1; +pub const F_UNLCK: c_int = 2; -pub const SFD_NONBLOCK: ::c_int = 0x0800; +pub const SFD_NONBLOCK: c_int = 0x0800; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; -pub const SFD_CLOEXEC: ::c_int = 0x080000; +pub const SFD_CLOEXEC: c_int = 0x080000; pub const NCCS: usize = 32; -pub const O_TRUNC: ::c_int = 512; +pub const O_TRUNC: c_int = 512; -pub const O_CLOEXEC: ::c_int = 0x80000; +pub const O_CLOEXEC: c_int = 0x80000; -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; +pub const EBFONT: c_int = 59; +pub const ENOSTR: c_int = 60; +pub const ENODATA: c_int = 61; +pub const ETIME: c_int = 62; +pub const ENOSR: c_int = 63; +pub const ENONET: c_int = 64; +pub const ENOPKG: c_int = 65; +pub const EREMOTE: c_int = 66; +pub const ENOLINK: c_int = 67; +pub const EADV: c_int = 68; +pub const ESRMNT: c_int = 69; +pub const ECOMM: c_int = 70; +pub const EPROTO: c_int = 71; +pub const EDOTDOT: c_int = 73; -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; +pub const SA_NODEFER: c_int = 0x40000000; +pub const SA_RESETHAND: c_int = 0x80000000; +pub const SA_RESTART: c_int = 0x10000000; +pub const SA_NOCLDSTOP: c_int = 0x00000001; -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; +pub const EPOLL_CLOEXEC: c_int = 0x80000; -pub const EFD_CLOEXEC: ::c_int = 0x80000; +pub const EFD_CLOEXEC: c_int = 0x80000; pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; @@ -414,79 +414,79 @@ pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; #[cfg(target_endian = "little")] -pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "little")] -pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "little")] -pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_DIRECT: ::c_int = 0x20000; - -pub const MAP_LOCKED: ::c_int = 0x00080; -pub const MAP_NORESERVE: ::c_int = 0x00040; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const EDEADLOCK: ::c_int = 58; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; - -pub const MCL_CURRENT: ::c_int = 0x2000; -pub const MCL_FUTURE: ::c_int = 0x4000; -pub const MCL_ONFAULT: ::c_int = 0x8000; - -pub const SIGSTKSZ: ::size_t = 0x4000; -pub const MINSIGSTKSZ: ::size_t = 4096; -pub const CBAUD: ::tcflag_t = 0xff; -pub const TAB1: ::tcflag_t = 0x400; -pub const TAB2: ::tcflag_t = 0x800; -pub const TAB3: ::tcflag_t = 0xc00; -pub const CR1: ::tcflag_t = 0x1000; -pub const CR2: ::tcflag_t = 0x2000; -pub const CR3: ::tcflag_t = 0x3000; -pub const FF1: ::tcflag_t = 0x4000; -pub const BS1: ::tcflag_t = 0x8000; -pub const VT1: ::tcflag_t = 0x10000; +pub const O_DIRECTORY: c_int = 0x4000; +pub const O_NOFOLLOW: c_int = 0x8000; +pub const O_DIRECT: c_int = 0x20000; + +pub const MAP_LOCKED: c_int = 0x00080; +pub const MAP_NORESERVE: c_int = 0x00040; +pub const MAP_SYNC: c_int = 0x080000; + +pub const EDEADLOCK: c_int = 58; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; + +pub const MCL_CURRENT: c_int = 0x2000; +pub const MCL_FUTURE: c_int = 0x4000; +pub const MCL_ONFAULT: c_int = 0x8000; + +pub const SIGSTKSZ: size_t = 0x4000; +pub const MINSIGSTKSZ: size_t = 4096; +pub const CBAUD: crate::tcflag_t = 0xff; +pub const TAB1: crate::tcflag_t = 0x400; +pub const TAB2: crate::tcflag_t = 0x800; +pub const TAB3: crate::tcflag_t = 0xc00; +pub const CR1: crate::tcflag_t = 0x1000; +pub const CR2: crate::tcflag_t = 0x2000; +pub const CR3: crate::tcflag_t = 0x3000; +pub const FF1: crate::tcflag_t = 0x4000; +pub const BS1: crate::tcflag_t = 0x8000; +pub const VT1: crate::tcflag_t = 0x10000; pub const VWERASE: usize = 0xa; pub const VREPRINT: usize = 0xb; pub const VSUSP: usize = 0xc; @@ -494,479 +494,479 @@ pub const VSTART: usize = 0xd; pub const VSTOP: usize = 0xe; pub const VDISCARD: usize = 0x10; pub const VTIME: usize = 0x7; -pub const IXON: ::tcflag_t = 0x200; -pub const IXOFF: ::tcflag_t = 0x400; -pub const ONLCR: ::tcflag_t = 0x2; -pub const CSIZE: ::tcflag_t = 0x300; -pub const CS6: ::tcflag_t = 0x100; -pub const CS7: ::tcflag_t = 0x200; -pub const CS8: ::tcflag_t = 0x300; -pub const CSTOPB: ::tcflag_t = 0x400; -pub const CREAD: ::tcflag_t = 0x800; -pub const PARENB: ::tcflag_t = 0x1000; -pub const PARODD: ::tcflag_t = 0x2000; -pub const HUPCL: ::tcflag_t = 0x4000; -pub const CLOCAL: ::tcflag_t = 0x8000; -pub const ECHOKE: ::tcflag_t = 0x1; -pub const ECHOE: ::tcflag_t = 0x2; -pub const ECHOK: ::tcflag_t = 0x4; -pub const ECHONL: ::tcflag_t = 0x10; -pub const ECHOPRT: ::tcflag_t = 0x20; -pub const ECHOCTL: ::tcflag_t = 0x40; -pub const ISIG: ::tcflag_t = 0x80; -pub const ICANON: ::tcflag_t = 0x100; -pub const PENDIN: ::tcflag_t = 0x20000000; -pub const NOFLSH: ::tcflag_t = 0x80000000; +pub const IXON: crate::tcflag_t = 0x200; +pub const IXOFF: crate::tcflag_t = 0x400; +pub const ONLCR: crate::tcflag_t = 0x2; +pub const CSIZE: crate::tcflag_t = 0x300; +pub const CS6: crate::tcflag_t = 0x100; +pub const CS7: crate::tcflag_t = 0x200; +pub const CS8: crate::tcflag_t = 0x300; +pub const CSTOPB: crate::tcflag_t = 0x400; +pub const CREAD: crate::tcflag_t = 0x800; +pub const PARENB: crate::tcflag_t = 0x1000; +pub const PARODD: crate::tcflag_t = 0x2000; +pub const HUPCL: crate::tcflag_t = 0x4000; +pub const CLOCAL: crate::tcflag_t = 0x8000; +pub const ECHOKE: crate::tcflag_t = 0x1; +pub const ECHOE: crate::tcflag_t = 0x2; +pub const ECHOK: crate::tcflag_t = 0x4; +pub const ECHONL: crate::tcflag_t = 0x10; +pub const ECHOPRT: crate::tcflag_t = 0x20; +pub const ECHOCTL: crate::tcflag_t = 0x40; +pub const ISIG: crate::tcflag_t = 0x80; +pub const ICANON: crate::tcflag_t = 0x100; +pub const PENDIN: crate::tcflag_t = 0x20000000; +pub const NOFLSH: crate::tcflag_t = 0x80000000; pub const VSWTC: usize = 9; -pub const OLCUC: ::tcflag_t = 0o000004; -pub const NLDLY: ::tcflag_t = 0o001400; -pub const CRDLY: ::tcflag_t = 0o030000; -pub const TABDLY: ::tcflag_t = 0o006000; -pub const BSDLY: ::tcflag_t = 0o100000; -pub const FFDLY: ::tcflag_t = 0o040000; -pub const VTDLY: ::tcflag_t = 0o200000; -pub const XTABS: ::tcflag_t = 0o006000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const CBAUDEX: ::speed_t = 0o000020; -pub const B57600: ::speed_t = 0o0020; -pub const B115200: ::speed_t = 0o0021; -pub const B230400: ::speed_t = 0o0022; -pub const B460800: ::speed_t = 0o0023; -pub const B500000: ::speed_t = 0o0024; -pub const B576000: ::speed_t = 0o0025; -pub const B921600: ::speed_t = 0o0026; -pub const B1000000: ::speed_t = 0o0027; -pub const B1152000: ::speed_t = 0o0030; -pub const B1500000: ::speed_t = 0o0031; -pub const B2000000: ::speed_t = 0o0032; -pub const B2500000: ::speed_t = 0o0033; -pub const B3000000: ::speed_t = 0o0034; -pub const B3500000: ::speed_t = 0o0035; -pub const B4000000: ::speed_t = 0o0036; +pub const OLCUC: crate::tcflag_t = 0o000004; +pub const NLDLY: crate::tcflag_t = 0o001400; +pub const CRDLY: crate::tcflag_t = 0o030000; +pub const TABDLY: crate::tcflag_t = 0o006000; +pub const BSDLY: crate::tcflag_t = 0o100000; +pub const FFDLY: crate::tcflag_t = 0o040000; +pub const VTDLY: crate::tcflag_t = 0o200000; +pub const XTABS: crate::tcflag_t = 0o006000; + +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const CBAUDEX: crate::speed_t = 0o000020; +pub const B57600: crate::speed_t = 0o0020; +pub const B115200: crate::speed_t = 0o0021; +pub const B230400: crate::speed_t = 0o0022; +pub const B460800: crate::speed_t = 0o0023; +pub const B500000: crate::speed_t = 0o0024; +pub const B576000: crate::speed_t = 0o0025; +pub const B921600: crate::speed_t = 0o0026; +pub const B1000000: crate::speed_t = 0o0027; +pub const B1152000: crate::speed_t = 0o0030; +pub const B1500000: crate::speed_t = 0o0031; +pub const B2000000: crate::speed_t = 0o0032; +pub const B2500000: crate::speed_t = 0o0033; +pub const B3000000: crate::speed_t = 0o0034; +pub const B3500000: crate::speed_t = 0o0035; +pub const B4000000: crate::speed_t = 0o0036; pub const VEOL: usize = 6; pub const VEOL2: usize = 8; pub const VMIN: usize = 5; -pub const IEXTEN: ::tcflag_t = 0x400; -pub const TOSTOP: ::tcflag_t = 0x400000; -pub const FLUSHO: ::tcflag_t = 0x800000; -pub const EXTPROC: ::tcflag_t = 0x10000000; +pub const IEXTEN: crate::tcflag_t = 0x400; +pub const TOSTOP: crate::tcflag_t = 0x400000; +pub const FLUSHO: crate::tcflag_t = 0x800000; +pub const EXTPROC: crate::tcflag_t = 0x10000000; // Syscall table -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_waitpid: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_time: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_break: ::c_long = 17; -pub const SYS_oldstat: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_stime: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_oldfstat: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_stty: ::c_long = 31; -pub const SYS_gtty: ::c_long = 32; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_ftime: ::c_long = 35; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_prof: ::c_long = 44; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_lock: ::c_long = 53; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_mpx: ::c_long = 56; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_ulimit: ::c_long = 58; -pub const SYS_oldolduname: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sgetmask: ::c_long = 68; -pub const SYS_ssetmask: ::c_long = 69; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrlimit: ::c_long = 76; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_select: ::c_long = 82; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_oldlstat: ::c_long = 84; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_profil: ::c_long = 98; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_ioperm: ::c_long = 101; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_olduname: ::c_long = 109; -pub const SYS_iopl: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_vm86: ::c_long = 113; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_modify_ldt: ::c_long = 123; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; /* Syscall for Andrew File System */ -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_query_module: ::c_long = 166; -pub const SYS_poll: ::c_long = 167; -pub const SYS_nfsservctl: ::c_long = 168; -pub const SYS_setresgid: ::c_long = 169; -pub const SYS_getresgid: ::c_long = 170; -pub const SYS_prctl: ::c_long = 171; -pub const SYS_rt_sigreturn: ::c_long = 172; -pub const SYS_rt_sigaction: ::c_long = 173; -pub const SYS_rt_sigprocmask: ::c_long = 174; -pub const SYS_rt_sigpending: ::c_long = 175; -pub const SYS_rt_sigtimedwait: ::c_long = 176; -pub const SYS_rt_sigqueueinfo: ::c_long = 177; -pub const SYS_rt_sigsuspend: ::c_long = 178; -pub const SYS_pread64: ::c_long = 179; -pub const SYS_pwrite64: ::c_long = 180; -pub const SYS_chown: ::c_long = 181; -pub const SYS_getcwd: ::c_long = 182; -pub const SYS_capget: ::c_long = 183; -pub const SYS_capset: ::c_long = 184; -pub const SYS_sigaltstack: ::c_long = 185; -pub const SYS_sendfile: ::c_long = 186; -pub const SYS_getpmsg: ::c_long = 187; /* some people actually want streams */ -pub const SYS_putpmsg: ::c_long = 188; /* some people actually want streams */ -pub const SYS_vfork: ::c_long = 189; -pub const SYS_ugetrlimit: ::c_long = 190; /* SuS compliant getrlimit */ -pub const SYS_readahead: ::c_long = 191; -pub const SYS_pciconfig_read: ::c_long = 198; -pub const SYS_pciconfig_write: ::c_long = 199; -pub const SYS_pciconfig_iobase: ::c_long = 200; -pub const SYS_multiplexer: ::c_long = 201; -pub const SYS_getdents64: ::c_long = 202; -pub const SYS_pivot_root: ::c_long = 203; -pub const SYS_madvise: ::c_long = 205; -pub const SYS_mincore: ::c_long = 206; -pub const SYS_gettid: ::c_long = 207; -pub const SYS_tkill: ::c_long = 208; -pub const SYS_setxattr: ::c_long = 209; -pub const SYS_lsetxattr: ::c_long = 210; -pub const SYS_fsetxattr: ::c_long = 211; -pub const SYS_getxattr: ::c_long = 212; -pub const SYS_lgetxattr: ::c_long = 213; -pub const SYS_fgetxattr: ::c_long = 214; -pub const SYS_listxattr: ::c_long = 215; -pub const SYS_llistxattr: ::c_long = 216; -pub const SYS_flistxattr: ::c_long = 217; -pub const SYS_removexattr: ::c_long = 218; -pub const SYS_lremovexattr: ::c_long = 219; -pub const SYS_fremovexattr: ::c_long = 220; -pub const SYS_futex: ::c_long = 221; -pub const SYS_sched_setaffinity: ::c_long = 222; -pub const SYS_sched_getaffinity: ::c_long = 223; -pub const SYS_tuxcall: ::c_long = 225; -pub const SYS_io_setup: ::c_long = 227; -pub const SYS_io_destroy: ::c_long = 228; -pub const SYS_io_getevents: ::c_long = 229; -pub const SYS_io_submit: ::c_long = 230; -pub const SYS_io_cancel: ::c_long = 231; -pub const SYS_set_tid_address: ::c_long = 232; -pub const SYS_exit_group: ::c_long = 234; -pub const SYS_lookup_dcookie: ::c_long = 235; -pub const SYS_epoll_create: ::c_long = 236; -pub const SYS_epoll_ctl: ::c_long = 237; -pub const SYS_epoll_wait: ::c_long = 238; -pub const SYS_remap_file_pages: ::c_long = 239; -pub const SYS_timer_create: ::c_long = 240; -pub const SYS_timer_settime: ::c_long = 241; -pub const SYS_timer_gettime: ::c_long = 242; -pub const SYS_timer_getoverrun: ::c_long = 243; -pub const SYS_timer_delete: ::c_long = 244; -pub const SYS_clock_settime: ::c_long = 245; -pub const SYS_clock_gettime: ::c_long = 246; -pub const SYS_clock_getres: ::c_long = 247; -pub const SYS_clock_nanosleep: ::c_long = 248; -pub const SYS_swapcontext: ::c_long = 249; -pub const SYS_tgkill: ::c_long = 250; -pub const SYS_utimes: ::c_long = 251; -pub const SYS_statfs64: ::c_long = 252; -pub const SYS_fstatfs64: ::c_long = 253; -pub const SYS_rtas: ::c_long = 255; -pub const SYS_sys_debug_setcontext: ::c_long = 256; -pub const SYS_migrate_pages: ::c_long = 258; -pub const SYS_mbind: ::c_long = 259; -pub const SYS_get_mempolicy: ::c_long = 260; -pub const SYS_set_mempolicy: ::c_long = 261; -pub const SYS_mq_open: ::c_long = 262; -pub const SYS_mq_unlink: ::c_long = 263; -pub const SYS_mq_timedsend: ::c_long = 264; -pub const SYS_mq_timedreceive: ::c_long = 265; -pub const SYS_mq_notify: ::c_long = 266; -pub const SYS_mq_getsetattr: ::c_long = 267; -pub const SYS_kexec_load: ::c_long = 268; -pub const SYS_add_key: ::c_long = 269; -pub const SYS_request_key: ::c_long = 270; -pub const SYS_keyctl: ::c_long = 271; -pub const SYS_waitid: ::c_long = 272; -pub const SYS_ioprio_set: ::c_long = 273; -pub const SYS_ioprio_get: ::c_long = 274; -pub const SYS_inotify_init: ::c_long = 275; -pub const SYS_inotify_add_watch: ::c_long = 276; -pub const SYS_inotify_rm_watch: ::c_long = 277; -pub const SYS_spu_run: ::c_long = 278; -pub const SYS_spu_create: ::c_long = 279; -pub const SYS_pselect6: ::c_long = 280; -pub const SYS_ppoll: ::c_long = 281; -pub const SYS_unshare: ::c_long = 282; -pub const SYS_splice: ::c_long = 283; -pub const SYS_tee: ::c_long = 284; -pub const SYS_vmsplice: ::c_long = 285; -pub const SYS_openat: ::c_long = 286; -pub const SYS_mkdirat: ::c_long = 287; -pub const SYS_mknodat: ::c_long = 288; -pub const SYS_fchownat: ::c_long = 289; -pub const SYS_futimesat: ::c_long = 290; -pub const SYS_newfstatat: ::c_long = 291; -pub const SYS_unlinkat: ::c_long = 292; -pub const SYS_renameat: ::c_long = 293; -pub const SYS_linkat: ::c_long = 294; -pub const SYS_symlinkat: ::c_long = 295; -pub const SYS_readlinkat: ::c_long = 296; -pub const SYS_fchmodat: ::c_long = 297; -pub const SYS_faccessat: ::c_long = 298; -pub const SYS_get_robust_list: ::c_long = 299; -pub const SYS_set_robust_list: ::c_long = 300; -pub const SYS_move_pages: ::c_long = 301; -pub const SYS_getcpu: ::c_long = 302; -pub const SYS_epoll_pwait: ::c_long = 303; -pub const SYS_utimensat: ::c_long = 304; -pub const SYS_signalfd: ::c_long = 305; -pub const SYS_timerfd_create: ::c_long = 306; -pub const SYS_eventfd: ::c_long = 307; -pub const SYS_sync_file_range2: ::c_long = 308; -pub const SYS_fallocate: ::c_long = 309; -pub const SYS_subpage_prot: ::c_long = 310; -pub const SYS_timerfd_settime: ::c_long = 311; -pub const SYS_timerfd_gettime: ::c_long = 312; -pub const SYS_signalfd4: ::c_long = 313; -pub const SYS_eventfd2: ::c_long = 314; -pub const SYS_epoll_create1: ::c_long = 315; -pub const SYS_dup3: ::c_long = 316; -pub const SYS_pipe2: ::c_long = 317; -pub const SYS_inotify_init1: ::c_long = 318; -pub const SYS_perf_event_open: ::c_long = 319; -pub const SYS_preadv: ::c_long = 320; -pub const SYS_pwritev: ::c_long = 321; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 322; -pub const SYS_fanotify_init: ::c_long = 323; -pub const SYS_fanotify_mark: ::c_long = 324; -pub const SYS_prlimit64: ::c_long = 325; -pub const SYS_socket: ::c_long = 326; -pub const SYS_bind: ::c_long = 327; -pub const SYS_connect: ::c_long = 328; -pub const SYS_listen: ::c_long = 329; -pub const SYS_accept: ::c_long = 330; -pub const SYS_getsockname: ::c_long = 331; -pub const SYS_getpeername: ::c_long = 332; -pub const SYS_socketpair: ::c_long = 333; -pub const SYS_send: ::c_long = 334; -pub const SYS_sendto: ::c_long = 335; -pub const SYS_recv: ::c_long = 336; -pub const SYS_recvfrom: ::c_long = 337; -pub const SYS_shutdown: ::c_long = 338; -pub const SYS_setsockopt: ::c_long = 339; -pub const SYS_getsockopt: ::c_long = 340; -pub const SYS_sendmsg: ::c_long = 341; -pub const SYS_recvmsg: ::c_long = 342; -pub const SYS_recvmmsg: ::c_long = 343; -pub const SYS_accept4: ::c_long = 344; -pub const SYS_name_to_handle_at: ::c_long = 345; -pub const SYS_open_by_handle_at: ::c_long = 346; -pub const SYS_clock_adjtime: ::c_long = 347; -pub const SYS_syncfs: ::c_long = 348; -pub const SYS_sendmmsg: ::c_long = 349; -pub const SYS_setns: ::c_long = 350; -pub const SYS_process_vm_readv: ::c_long = 351; -pub const SYS_process_vm_writev: ::c_long = 352; -pub const SYS_finit_module: ::c_long = 353; -pub const SYS_kcmp: ::c_long = 354; -pub const SYS_sched_setattr: ::c_long = 355; -pub const SYS_sched_getattr: ::c_long = 356; -pub const SYS_renameat2: ::c_long = 357; -pub const SYS_seccomp: ::c_long = 358; -pub const SYS_getrandom: ::c_long = 359; -pub const SYS_memfd_create: ::c_long = 360; -pub const SYS_bpf: ::c_long = 361; -pub const SYS_execveat: ::c_long = 362; -pub const SYS_switch_endian: ::c_long = 363; -pub const SYS_userfaultfd: ::c_long = 364; -pub const SYS_membarrier: ::c_long = 365; -pub const SYS_mlock2: ::c_long = 378; -pub const SYS_copy_file_range: ::c_long = 379; -pub const SYS_preadv2: ::c_long = 380; -pub const SYS_pwritev2: ::c_long = 381; -pub const SYS_kexec_file_load: ::c_long = 382; -pub const SYS_statx: ::c_long = 383; -pub const SYS_rseq: ::c_long = 387; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_restart_syscall: c_long = 0; +pub const SYS_exit: c_long = 1; +pub const SYS_fork: c_long = 2; +pub const SYS_read: c_long = 3; +pub const SYS_write: c_long = 4; +pub const SYS_open: c_long = 5; +pub const SYS_close: c_long = 6; +pub const SYS_waitpid: c_long = 7; +pub const SYS_creat: c_long = 8; +pub const SYS_link: c_long = 9; +pub const SYS_unlink: c_long = 10; +pub const SYS_execve: c_long = 11; +pub const SYS_chdir: c_long = 12; +pub const SYS_time: c_long = 13; +pub const SYS_mknod: c_long = 14; +pub const SYS_chmod: c_long = 15; +pub const SYS_lchown: c_long = 16; +pub const SYS_break: c_long = 17; +pub const SYS_oldstat: c_long = 18; +pub const SYS_lseek: c_long = 19; +pub const SYS_getpid: c_long = 20; +pub const SYS_mount: c_long = 21; +pub const SYS_umount: c_long = 22; +pub const SYS_setuid: c_long = 23; +pub const SYS_getuid: c_long = 24; +pub const SYS_stime: c_long = 25; +pub const SYS_ptrace: c_long = 26; +pub const SYS_alarm: c_long = 27; +pub const SYS_oldfstat: c_long = 28; +pub const SYS_pause: c_long = 29; +pub const SYS_utime: c_long = 30; +pub const SYS_stty: c_long = 31; +pub const SYS_gtty: c_long = 32; +pub const SYS_access: c_long = 33; +pub const SYS_nice: c_long = 34; +pub const SYS_ftime: c_long = 35; +pub const SYS_sync: c_long = 36; +pub const SYS_kill: c_long = 37; +pub const SYS_rename: c_long = 38; +pub const SYS_mkdir: c_long = 39; +pub const SYS_rmdir: c_long = 40; +pub const SYS_dup: c_long = 41; +pub const SYS_pipe: c_long = 42; +pub const SYS_times: c_long = 43; +pub const SYS_prof: c_long = 44; +pub const SYS_brk: c_long = 45; +pub const SYS_setgid: c_long = 46; +pub const SYS_getgid: c_long = 47; +pub const SYS_signal: c_long = 48; +pub const SYS_geteuid: c_long = 49; +pub const SYS_getegid: c_long = 50; +pub const SYS_acct: c_long = 51; +pub const SYS_umount2: c_long = 52; +pub const SYS_lock: c_long = 53; +pub const SYS_ioctl: c_long = 54; +pub const SYS_fcntl: c_long = 55; +pub const SYS_mpx: c_long = 56; +pub const SYS_setpgid: c_long = 57; +pub const SYS_ulimit: c_long = 58; +pub const SYS_oldolduname: c_long = 59; +pub const SYS_umask: c_long = 60; +pub const SYS_chroot: c_long = 61; +pub const SYS_ustat: c_long = 62; +pub const SYS_dup2: c_long = 63; +pub const SYS_getppid: c_long = 64; +pub const SYS_getpgrp: c_long = 65; +pub const SYS_setsid: c_long = 66; +pub const SYS_sigaction: c_long = 67; +pub const SYS_sgetmask: c_long = 68; +pub const SYS_ssetmask: c_long = 69; +pub const SYS_setreuid: c_long = 70; +pub const SYS_setregid: c_long = 71; +pub const SYS_sigsuspend: c_long = 72; +pub const SYS_sigpending: c_long = 73; +pub const SYS_sethostname: c_long = 74; +pub const SYS_setrlimit: c_long = 75; +pub const SYS_getrlimit: c_long = 76; +pub const SYS_getrusage: c_long = 77; +pub const SYS_gettimeofday: c_long = 78; +pub const SYS_settimeofday: c_long = 79; +pub const SYS_getgroups: c_long = 80; +pub const SYS_setgroups: c_long = 81; +pub const SYS_select: c_long = 82; +pub const SYS_symlink: c_long = 83; +pub const SYS_oldlstat: c_long = 84; +pub const SYS_readlink: c_long = 85; +pub const SYS_uselib: c_long = 86; +pub const SYS_swapon: c_long = 87; +pub const SYS_reboot: c_long = 88; +pub const SYS_readdir: c_long = 89; +pub const SYS_mmap: c_long = 90; +pub const SYS_munmap: c_long = 91; +pub const SYS_truncate: c_long = 92; +pub const SYS_ftruncate: c_long = 93; +pub const SYS_fchmod: c_long = 94; +pub const SYS_fchown: c_long = 95; +pub const SYS_getpriority: c_long = 96; +pub const SYS_setpriority: c_long = 97; +pub const SYS_profil: c_long = 98; +pub const SYS_statfs: c_long = 99; +pub const SYS_fstatfs: c_long = 100; +pub const SYS_ioperm: c_long = 101; +pub const SYS_socketcall: c_long = 102; +pub const SYS_syslog: c_long = 103; +pub const SYS_setitimer: c_long = 104; +pub const SYS_getitimer: c_long = 105; +pub const SYS_stat: c_long = 106; +pub const SYS_lstat: c_long = 107; +pub const SYS_fstat: c_long = 108; +pub const SYS_olduname: c_long = 109; +pub const SYS_iopl: c_long = 110; +pub const SYS_vhangup: c_long = 111; +pub const SYS_idle: c_long = 112; +pub const SYS_vm86: c_long = 113; +pub const SYS_wait4: c_long = 114; +pub const SYS_swapoff: c_long = 115; +pub const SYS_sysinfo: c_long = 116; +pub const SYS_ipc: c_long = 117; +pub const SYS_fsync: c_long = 118; +pub const SYS_sigreturn: c_long = 119; +pub const SYS_clone: c_long = 120; +pub const SYS_setdomainname: c_long = 121; +pub const SYS_uname: c_long = 122; +pub const SYS_modify_ldt: c_long = 123; +pub const SYS_adjtimex: c_long = 124; +pub const SYS_mprotect: c_long = 125; +pub const SYS_sigprocmask: c_long = 126; +pub const SYS_create_module: c_long = 127; +pub const SYS_init_module: c_long = 128; +pub const SYS_delete_module: c_long = 129; +pub const SYS_get_kernel_syms: c_long = 130; +pub const SYS_quotactl: c_long = 131; +pub const SYS_getpgid: c_long = 132; +pub const SYS_fchdir: c_long = 133; +pub const SYS_bdflush: c_long = 134; +pub const SYS_sysfs: c_long = 135; +pub const SYS_personality: c_long = 136; +pub const SYS_afs_syscall: c_long = 137; /* Syscall for Andrew File System */ +pub const SYS_setfsuid: c_long = 138; +pub const SYS_setfsgid: c_long = 139; +pub const SYS__llseek: c_long = 140; +pub const SYS_getdents: c_long = 141; +pub const SYS__newselect: c_long = 142; +pub const SYS_flock: c_long = 143; +pub const SYS_msync: c_long = 144; +pub const SYS_readv: c_long = 145; +pub const SYS_writev: c_long = 146; +pub const SYS_getsid: c_long = 147; +pub const SYS_fdatasync: c_long = 148; +pub const SYS__sysctl: c_long = 149; +pub const SYS_mlock: c_long = 150; +pub const SYS_munlock: c_long = 151; +pub const SYS_mlockall: c_long = 152; +pub const SYS_munlockall: c_long = 153; +pub const SYS_sched_setparam: c_long = 154; +pub const SYS_sched_getparam: c_long = 155; +pub const SYS_sched_setscheduler: c_long = 156; +pub const SYS_sched_getscheduler: c_long = 157; +pub const SYS_sched_yield: c_long = 158; +pub const SYS_sched_get_priority_max: c_long = 159; +pub const SYS_sched_get_priority_min: c_long = 160; +pub const SYS_sched_rr_get_interval: c_long = 161; +pub const SYS_nanosleep: c_long = 162; +pub const SYS_mremap: c_long = 163; +pub const SYS_setresuid: c_long = 164; +pub const SYS_getresuid: c_long = 165; +pub const SYS_query_module: c_long = 166; +pub const SYS_poll: c_long = 167; +pub const SYS_nfsservctl: c_long = 168; +pub const SYS_setresgid: c_long = 169; +pub const SYS_getresgid: c_long = 170; +pub const SYS_prctl: c_long = 171; +pub const SYS_rt_sigreturn: c_long = 172; +pub const SYS_rt_sigaction: c_long = 173; +pub const SYS_rt_sigprocmask: c_long = 174; +pub const SYS_rt_sigpending: c_long = 175; +pub const SYS_rt_sigtimedwait: c_long = 176; +pub const SYS_rt_sigqueueinfo: c_long = 177; +pub const SYS_rt_sigsuspend: c_long = 178; +pub const SYS_pread64: c_long = 179; +pub const SYS_pwrite64: c_long = 180; +pub const SYS_chown: c_long = 181; +pub const SYS_getcwd: c_long = 182; +pub const SYS_capget: c_long = 183; +pub const SYS_capset: c_long = 184; +pub const SYS_sigaltstack: c_long = 185; +pub const SYS_sendfile: c_long = 186; +pub const SYS_getpmsg: c_long = 187; /* some people actually want streams */ +pub const SYS_putpmsg: c_long = 188; /* some people actually want streams */ +pub const SYS_vfork: c_long = 189; +pub const SYS_ugetrlimit: c_long = 190; /* SuS compliant getrlimit */ +pub const SYS_readahead: c_long = 191; +pub const SYS_pciconfig_read: c_long = 198; +pub const SYS_pciconfig_write: c_long = 199; +pub const SYS_pciconfig_iobase: c_long = 200; +pub const SYS_multiplexer: c_long = 201; +pub const SYS_getdents64: c_long = 202; +pub const SYS_pivot_root: c_long = 203; +pub const SYS_madvise: c_long = 205; +pub const SYS_mincore: c_long = 206; +pub const SYS_gettid: c_long = 207; +pub const SYS_tkill: c_long = 208; +pub const SYS_setxattr: c_long = 209; +pub const SYS_lsetxattr: c_long = 210; +pub const SYS_fsetxattr: c_long = 211; +pub const SYS_getxattr: c_long = 212; +pub const SYS_lgetxattr: c_long = 213; +pub const SYS_fgetxattr: c_long = 214; +pub const SYS_listxattr: c_long = 215; +pub const SYS_llistxattr: c_long = 216; +pub const SYS_flistxattr: c_long = 217; +pub const SYS_removexattr: c_long = 218; +pub const SYS_lremovexattr: c_long = 219; +pub const SYS_fremovexattr: c_long = 220; +pub const SYS_futex: c_long = 221; +pub const SYS_sched_setaffinity: c_long = 222; +pub const SYS_sched_getaffinity: c_long = 223; +pub const SYS_tuxcall: c_long = 225; +pub const SYS_io_setup: c_long = 227; +pub const SYS_io_destroy: c_long = 228; +pub const SYS_io_getevents: c_long = 229; +pub const SYS_io_submit: c_long = 230; +pub const SYS_io_cancel: c_long = 231; +pub const SYS_set_tid_address: c_long = 232; +pub const SYS_exit_group: c_long = 234; +pub const SYS_lookup_dcookie: c_long = 235; +pub const SYS_epoll_create: c_long = 236; +pub const SYS_epoll_ctl: c_long = 237; +pub const SYS_epoll_wait: c_long = 238; +pub const SYS_remap_file_pages: c_long = 239; +pub const SYS_timer_create: c_long = 240; +pub const SYS_timer_settime: c_long = 241; +pub const SYS_timer_gettime: c_long = 242; +pub const SYS_timer_getoverrun: c_long = 243; +pub const SYS_timer_delete: c_long = 244; +pub const SYS_clock_settime: c_long = 245; +pub const SYS_clock_gettime: c_long = 246; +pub const SYS_clock_getres: c_long = 247; +pub const SYS_clock_nanosleep: c_long = 248; +pub const SYS_swapcontext: c_long = 249; +pub const SYS_tgkill: c_long = 250; +pub const SYS_utimes: c_long = 251; +pub const SYS_statfs64: c_long = 252; +pub const SYS_fstatfs64: c_long = 253; +pub const SYS_rtas: c_long = 255; +pub const SYS_sys_debug_setcontext: c_long = 256; +pub const SYS_migrate_pages: c_long = 258; +pub const SYS_mbind: c_long = 259; +pub const SYS_get_mempolicy: c_long = 260; +pub const SYS_set_mempolicy: c_long = 261; +pub const SYS_mq_open: c_long = 262; +pub const SYS_mq_unlink: c_long = 263; +pub const SYS_mq_timedsend: c_long = 264; +pub const SYS_mq_timedreceive: c_long = 265; +pub const SYS_mq_notify: c_long = 266; +pub const SYS_mq_getsetattr: c_long = 267; +pub const SYS_kexec_load: c_long = 268; +pub const SYS_add_key: c_long = 269; +pub const SYS_request_key: c_long = 270; +pub const SYS_keyctl: c_long = 271; +pub const SYS_waitid: c_long = 272; +pub const SYS_ioprio_set: c_long = 273; +pub const SYS_ioprio_get: c_long = 274; +pub const SYS_inotify_init: c_long = 275; +pub const SYS_inotify_add_watch: c_long = 276; +pub const SYS_inotify_rm_watch: c_long = 277; +pub const SYS_spu_run: c_long = 278; +pub const SYS_spu_create: c_long = 279; +pub const SYS_pselect6: c_long = 280; +pub const SYS_ppoll: c_long = 281; +pub const SYS_unshare: c_long = 282; +pub const SYS_splice: c_long = 283; +pub const SYS_tee: c_long = 284; +pub const SYS_vmsplice: c_long = 285; +pub const SYS_openat: c_long = 286; +pub const SYS_mkdirat: c_long = 287; +pub const SYS_mknodat: c_long = 288; +pub const SYS_fchownat: c_long = 289; +pub const SYS_futimesat: c_long = 290; +pub const SYS_newfstatat: c_long = 291; +pub const SYS_unlinkat: c_long = 292; +pub const SYS_renameat: c_long = 293; +pub const SYS_linkat: c_long = 294; +pub const SYS_symlinkat: c_long = 295; +pub const SYS_readlinkat: c_long = 296; +pub const SYS_fchmodat: c_long = 297; +pub const SYS_faccessat: c_long = 298; +pub const SYS_get_robust_list: c_long = 299; +pub const SYS_set_robust_list: c_long = 300; +pub const SYS_move_pages: c_long = 301; +pub const SYS_getcpu: c_long = 302; +pub const SYS_epoll_pwait: c_long = 303; +pub const SYS_utimensat: c_long = 304; +pub const SYS_signalfd: c_long = 305; +pub const SYS_timerfd_create: c_long = 306; +pub const SYS_eventfd: c_long = 307; +pub const SYS_sync_file_range2: c_long = 308; +pub const SYS_fallocate: c_long = 309; +pub const SYS_subpage_prot: c_long = 310; +pub const SYS_timerfd_settime: c_long = 311; +pub const SYS_timerfd_gettime: c_long = 312; +pub const SYS_signalfd4: c_long = 313; +pub const SYS_eventfd2: c_long = 314; +pub const SYS_epoll_create1: c_long = 315; +pub const SYS_dup3: c_long = 316; +pub const SYS_pipe2: c_long = 317; +pub const SYS_inotify_init1: c_long = 318; +pub const SYS_perf_event_open: c_long = 319; +pub const SYS_preadv: c_long = 320; +pub const SYS_pwritev: c_long = 321; +pub const SYS_rt_tgsigqueueinfo: c_long = 322; +pub const SYS_fanotify_init: c_long = 323; +pub const SYS_fanotify_mark: c_long = 324; +pub const SYS_prlimit64: c_long = 325; +pub const SYS_socket: c_long = 326; +pub const SYS_bind: c_long = 327; +pub const SYS_connect: c_long = 328; +pub const SYS_listen: c_long = 329; +pub const SYS_accept: c_long = 330; +pub const SYS_getsockname: c_long = 331; +pub const SYS_getpeername: c_long = 332; +pub const SYS_socketpair: c_long = 333; +pub const SYS_send: c_long = 334; +pub const SYS_sendto: c_long = 335; +pub const SYS_recv: c_long = 336; +pub const SYS_recvfrom: c_long = 337; +pub const SYS_shutdown: c_long = 338; +pub const SYS_setsockopt: c_long = 339; +pub const SYS_getsockopt: c_long = 340; +pub const SYS_sendmsg: c_long = 341; +pub const SYS_recvmsg: c_long = 342; +pub const SYS_recvmmsg: c_long = 343; +pub const SYS_accept4: c_long = 344; +pub const SYS_name_to_handle_at: c_long = 345; +pub const SYS_open_by_handle_at: c_long = 346; +pub const SYS_clock_adjtime: c_long = 347; +pub const SYS_syncfs: c_long = 348; +pub const SYS_sendmmsg: c_long = 349; +pub const SYS_setns: c_long = 350; +pub const SYS_process_vm_readv: c_long = 351; +pub const SYS_process_vm_writev: c_long = 352; +pub const SYS_finit_module: c_long = 353; +pub const SYS_kcmp: c_long = 354; +pub const SYS_sched_setattr: c_long = 355; +pub const SYS_sched_getattr: c_long = 356; +pub const SYS_renameat2: c_long = 357; +pub const SYS_seccomp: c_long = 358; +pub const SYS_getrandom: c_long = 359; +pub const SYS_memfd_create: c_long = 360; +pub const SYS_bpf: c_long = 361; +pub const SYS_execveat: c_long = 362; +pub const SYS_switch_endian: c_long = 363; +pub const SYS_userfaultfd: c_long = 364; +pub const SYS_membarrier: c_long = 365; +pub const SYS_mlock2: c_long = 378; +pub const SYS_copy_file_range: c_long = 379; +pub const SYS_preadv2: c_long = 380; +pub const SYS_pwritev2: c_long = 381; +pub const SYS_kexec_file_load: c_long = 382; +pub const SYS_statx: c_long = 383; +pub const SYS_rseq: c_long = 387; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; extern "C" { pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; + name: *mut c_int, + namelen: c_int, + oldp: *mut c_void, + oldlenp: *mut size_t, + newp: *mut c_void, + newlen: size_t, + ) -> c_int; } diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index 88e8ce9891d70..27c96dca3d8bc 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -1,131 +1,135 @@ //! RISC-V-specific definitions for 64-bit linux-like values +use crate::{ + c_int, c_longlong, c_short, c_uint, c_ulonglong, c_ushort, c_void, off64_t, off_t, size_t, +}; + pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; -pub type wchar_t = ::c_int; +pub type wchar_t = c_int; -pub type nlink_t = ::c_uint; -pub type blksize_t = ::c_int; -pub type fsblkcnt64_t = ::c_ulong; -pub type fsfilcnt64_t = ::c_ulong; +pub type nlink_t = c_uint; +pub type blksize_t = c_int; +pub type fsblkcnt64_t = c_ulong; +pub type fsfilcnt64_t = c_ulong; pub type suseconds_t = i64; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; s! { pub struct pthread_attr_t { - __size: [::c_ulong; 7], + __size: [c_ulong; 7], } 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_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - 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_int; 2usize], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub __pad1: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub __pad2: c_int, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_int; 2usize], } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - 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_int; 2], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino64_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub __pad1: crate::dev_t, + pub st_size: off64_t, + pub st_blksize: crate::blksize_t, + pub __pad2: c_int, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_int; 2], } pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - 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_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_frsize: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 4], + pub f_type: c_long, + pub f_bsize: c_long, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_long, + pub f_frsize: c_long, + pub f_flags: c_long, + pub f_spare: [c_long; 4], } pub struct statfs64 { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_frsize: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 4], + pub f_type: c_long, + pub f_bsize: c_long, + pub f_blocks: crate::fsblkcnt64_t, + pub f_bfree: crate::fsblkcnt64_t, + pub f_bavail: crate::fsblkcnt64_t, + pub f_files: crate::fsfilcnt64_t, + pub f_ffree: crate::fsfilcnt64_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_long, + pub f_frsize: c_long, + pub f_flags: c_long, + pub f_spare: [c_long; 4], } 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub __f_spare: [::c_int; 6], + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + pub __f_spare: [c_int; 6], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_favail: ::fsfilcnt64_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub __f_spare: [::c_int; 6], + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt64_t, + pub f_bfree: crate::fsblkcnt64_t, + pub f_bavail: crate::fsblkcnt64_t, + pub f_files: crate::fsfilcnt64_t, + pub f_ffree: crate::fsfilcnt64_t, + pub f_favail: crate::fsfilcnt64_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + pub __f_spare: [c_int; 6], } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, #[doc(hidden)] #[deprecated( since = "0.2.54", @@ -133,131 +137,131 @@ s! { https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] - pub _pad: [::c_int; 29], + pub _pad: [c_int; 29], _align: [u64; 0], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, + pub sa_flags: c_int, + pub sa_restorer: Option, } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: c_ushort, + __pad1: c_ushort, + pub __seq: c_ushort, + __pad2: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused5: ::c_ulong, - __unused6: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __unused5: c_ulong, + __unused6: c_ulong, } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off64_t, + pub l_len: off64_t, + pub l_pid: crate::pid_t, } pub struct user_regs_struct { - pub pc: ::c_ulong, - pub ra: ::c_ulong, - pub sp: ::c_ulong, - pub gp: ::c_ulong, - pub tp: ::c_ulong, - pub t0: ::c_ulong, - pub t1: ::c_ulong, - pub t2: ::c_ulong, - pub s0: ::c_ulong, - pub s1: ::c_ulong, - pub a0: ::c_ulong, - pub a1: ::c_ulong, - pub a2: ::c_ulong, - pub a3: ::c_ulong, - pub a4: ::c_ulong, - pub a5: ::c_ulong, - pub a6: ::c_ulong, - pub a7: ::c_ulong, - pub s2: ::c_ulong, - pub s3: ::c_ulong, - pub s4: ::c_ulong, - pub s5: ::c_ulong, - pub s6: ::c_ulong, - pub s7: ::c_ulong, - pub s8: ::c_ulong, - pub s9: ::c_ulong, - pub s10: ::c_ulong, - pub s11: ::c_ulong, - pub t3: ::c_ulong, - pub t4: ::c_ulong, - pub t5: ::c_ulong, - pub t6: ::c_ulong, + pub pc: c_ulong, + pub ra: c_ulong, + pub sp: c_ulong, + pub gp: c_ulong, + pub tp: c_ulong, + pub t0: c_ulong, + pub t1: c_ulong, + pub t2: c_ulong, + pub s0: c_ulong, + pub s1: c_ulong, + pub a0: c_ulong, + pub a1: c_ulong, + pub a2: c_ulong, + pub a3: c_ulong, + pub a4: c_ulong, + pub a5: c_ulong, + pub a6: c_ulong, + pub a7: c_ulong, + pub s2: c_ulong, + pub s3: c_ulong, + pub s4: c_ulong, + pub s5: c_ulong, + pub s6: c_ulong, + pub s7: c_ulong, + pub s8: c_ulong, + pub s9: c_ulong, + pub s10: c_ulong, + pub s11: c_ulong, + pub t3: c_ulong, + pub t4: c_ulong, + pub t5: c_ulong, + pub t6: c_ulong, } #[repr(align(8))] pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, + pub flags: c_ulonglong, + pub pidfd: c_ulonglong, + pub child_tid: c_ulonglong, + pub parent_tid: c_ulonglong, + pub exit_signal: c_ulonglong, + pub stack: c_ulonglong, + pub stack_size: c_ulonglong, + pub tls: c_ulonglong, + pub set_tid: c_ulonglong, + pub set_tid_size: c_ulonglong, + pub cgroup: c_ulonglong, } } s_no_extra_traits! { #[allow(missing_debug_implementations)] pub struct ucontext_t { - pub __uc_flags: ::c_ulong, + pub __uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, + pub uc_stack: crate::stack_t, + pub uc_sigmask: crate::sigset_t, pub uc_mcontext: mcontext_t, } #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct mcontext_t { - pub __gregs: [::c_ulong; 32], + pub __gregs: [c_ulong; 32], pub __fpregs: __riscv_mc_fp_state, } @@ -270,241 +274,241 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] pub struct __riscv_mc_f_ext_state { - pub __f: [::c_uint; 32], - pub __fcsr: ::c_uint, + pub __f: [c_uint; 32], + pub __fcsr: c_uint, } #[allow(missing_debug_implementations)] pub struct __riscv_mc_d_ext_state { - pub __f: [::c_ulonglong; 32], - pub __fcsr: ::c_uint, + pub __f: [c_ulonglong; 32], + pub __fcsr: c_uint, } #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct __riscv_mc_q_ext_state { - pub __f: [::c_ulonglong; 64], - pub __fcsr: ::c_uint, - pub __glibc_reserved: [::c_uint; 3], + pub __f: [c_ulonglong; 64], + pub __fcsr: c_uint, + pub __glibc_reserved: [c_uint; 3], } } -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 1052672; -pub const O_NOATIME: ::c_int = 262144; -pub const O_PATH: ::c_int = 2097152; -pub const O_TMPFILE: ::c_int = 4259840; -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 256; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; +pub const RTLD_DEEPBIND: c_int = 0x8; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_NOLOAD: c_int = 0x4; +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_FSYNC: c_int = 1052672; +pub const O_NOATIME: c_int = 262144; +pub const O_PATH: c_int = 2097152; +pub const O_TMPFILE: c_int = 4259840; +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MAP_GROWSDOWN: c_int = 256; +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EBADMSG: c_int = 74; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const EHWPOISON: c_int = 133; +pub const ERFKILL: c_int = 132; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SA_ONSTACK: ::c_int = 134217728; -pub const SA_SIGINFO: ::c_int = 4; -pub const SA_NOCLDWAIT: ::c_int = 2; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0; -pub const SIG_UNBLOCK: ::c_int = 1; -pub const POLLWRNORM: ::c_short = 256; -pub const POLLWRBAND: ::c_short = 512; -pub const O_ASYNC: ::c_int = 8192; -pub const O_NDELAY: ::c_int = 2048; -pub const PTRACE_DETACH: ::c_uint = 17; -pub const EFD_NONBLOCK: ::c_int = 2048; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; -pub const SFD_NONBLOCK: ::c_int = 2048; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; -pub const SFD_CLOEXEC: ::c_int = 524288; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; +pub const SA_ONSTACK: c_int = 134217728; +pub const SA_SIGINFO: c_int = 4; +pub const SA_NOCLDWAIT: c_int = 2; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0; +pub const SIG_UNBLOCK: c_int = 1; +pub const POLLWRNORM: c_short = 256; +pub const POLLWRBAND: c_short = 512; +pub const O_ASYNC: c_int = 8192; +pub const O_NDELAY: c_int = 2048; +pub const PTRACE_DETACH: c_uint = 17; +pub const EFD_NONBLOCK: c_int = 2048; +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETOWN: c_int = 8; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; +pub const F_RDLCK: c_int = 0; +pub const F_WRLCK: c_int = 1; +pub const F_UNLCK: c_int = 2; +pub const F_OFD_GETLK: c_int = 36; +pub const F_OFD_SETLK: c_int = 37; +pub const F_OFD_SETLKW: c_int = 38; +pub const SFD_NONBLOCK: c_int = 2048; +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; +pub const SFD_CLOEXEC: c_int = 524288; pub const NCCS: usize = 32; -pub const O_TRUNC: ::c_int = 512; -pub const O_CLOEXEC: ::c_int = 524288; -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; -pub const SA_NODEFER: ::c_int = 1073741824; -pub const SA_RESETHAND: ::c_int = -2147483648; -pub const SA_RESTART: ::c_int = 268435456; -pub const SA_NOCLDSTOP: ::c_int = 1; -pub const EPOLL_CLOEXEC: ::c_int = 524288; -pub const EFD_CLOEXEC: ::c_int = 524288; +pub const O_TRUNC: c_int = 512; +pub const O_CLOEXEC: c_int = 524288; +pub const EBFONT: c_int = 59; +pub const ENOSTR: c_int = 60; +pub const ENODATA: c_int = 61; +pub const ETIME: c_int = 62; +pub const ENOSR: c_int = 63; +pub const ENONET: c_int = 64; +pub const ENOPKG: c_int = 65; +pub const EREMOTE: c_int = 66; +pub const ENOLINK: c_int = 67; +pub const EADV: c_int = 68; +pub const ESRMNT: c_int = 69; +pub const ECOMM: c_int = 70; +pub const EPROTO: c_int = 71; +pub const EDOTDOT: c_int = 73; +pub const SA_NODEFER: c_int = 1073741824; +pub const SA_RESETHAND: c_int = -2147483648; +pub const SA_RESTART: c_int = 268435456; +pub const SA_NOCLDSTOP: c_int = 1; +pub const EPOLL_CLOEXEC: c_int = 524288; +pub const EFD_CLOEXEC: c_int = 524288; pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const O_DIRECT: ::c_int = 16384; -pub const O_DIRECTORY: ::c_int = 65536; -pub const O_NOFOLLOW: ::c_int = 131072; -pub const MAP_HUGETLB: ::c_int = 262144; -pub const MAP_LOCKED: ::c_int = 8192; -pub const MAP_NORESERVE: ::c_int = 16384; -pub const MAP_ANON: ::c_int = 32; -pub const MAP_ANONYMOUS: ::c_int = 32; -pub const MAP_DENYWRITE: ::c_int = 2048; -pub const MAP_EXECUTABLE: ::c_int = 4096; -pub const MAP_POPULATE: ::c_int = 32768; -pub const MAP_NONBLOCK: ::c_int = 65536; -pub const MAP_STACK: ::c_int = 131072; -pub const MAP_SYNC: ::c_int = 0x080000; -pub const EDEADLOCK: ::c_int = 35; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const PTRACE_GETFPREGS: ::c_uint = 14; -pub const PTRACE_SETFPREGS: ::c_uint = 15; -pub const PTRACE_GETFPXREGS: ::c_uint = 18; -pub const PTRACE_SETFPXREGS: ::c_uint = 19; -pub const PTRACE_GETREGS: ::c_uint = 12; -pub const PTRACE_SETREGS: ::c_uint = 13; -pub const MCL_CURRENT: ::c_int = 1; -pub const MCL_FUTURE: ::c_int = 2; -pub const MCL_ONFAULT: ::c_int = 4; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 4111; -pub const TAB1: ::tcflag_t = 2048; -pub const TAB2: ::tcflag_t = 4096; -pub const TAB3: ::tcflag_t = 6144; -pub const CR1: ::tcflag_t = 512; -pub const CR2: ::tcflag_t = 1024; -pub const CR3: ::tcflag_t = 1536; -pub const FF1: ::tcflag_t = 32768; -pub const BS1: ::tcflag_t = 8192; -pub const VT1: ::tcflag_t = 16384; +pub const O_DIRECT: c_int = 16384; +pub const O_DIRECTORY: c_int = 65536; +pub const O_NOFOLLOW: c_int = 131072; +pub const MAP_HUGETLB: c_int = 262144; +pub const MAP_LOCKED: c_int = 8192; +pub const MAP_NORESERVE: c_int = 16384; +pub const MAP_ANON: c_int = 32; +pub const MAP_ANONYMOUS: c_int = 32; +pub const MAP_DENYWRITE: c_int = 2048; +pub const MAP_EXECUTABLE: c_int = 4096; +pub const MAP_POPULATE: c_int = 32768; +pub const MAP_NONBLOCK: c_int = 65536; +pub const MAP_STACK: c_int = 131072; +pub const MAP_SYNC: c_int = 0x080000; +pub const EDEADLOCK: c_int = 35; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const PTRACE_GETFPREGS: c_uint = 14; +pub const PTRACE_SETFPREGS: c_uint = 15; +pub const PTRACE_GETFPXREGS: c_uint = 18; +pub const PTRACE_SETFPXREGS: c_uint = 19; +pub const PTRACE_GETREGS: c_uint = 12; +pub const PTRACE_SETREGS: c_uint = 13; +pub const MCL_CURRENT: c_int = 1; +pub const MCL_FUTURE: c_int = 2; +pub const MCL_ONFAULT: c_int = 4; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; +pub const CBAUD: crate::tcflag_t = 4111; +pub const TAB1: crate::tcflag_t = 2048; +pub const TAB2: crate::tcflag_t = 4096; +pub const TAB3: crate::tcflag_t = 6144; +pub const CR1: crate::tcflag_t = 512; +pub const CR2: crate::tcflag_t = 1024; +pub const CR3: crate::tcflag_t = 1536; +pub const FF1: crate::tcflag_t = 32768; +pub const BS1: crate::tcflag_t = 8192; +pub const VT1: crate::tcflag_t = 16384; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -512,80 +516,80 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 1024; -pub const IXOFF: ::tcflag_t = 4096; -pub const ONLCR: ::tcflag_t = 4; -pub const CSIZE: ::tcflag_t = 48; -pub const CS6: ::tcflag_t = 16; -pub const CS7: ::tcflag_t = 32; -pub const CS8: ::tcflag_t = 48; -pub const CSTOPB: ::tcflag_t = 64; -pub const CREAD: ::tcflag_t = 128; -pub const PARENB: ::tcflag_t = 256; -pub const PARODD: ::tcflag_t = 512; -pub const HUPCL: ::tcflag_t = 1024; -pub const CLOCAL: ::tcflag_t = 2048; -pub const ECHOKE: ::tcflag_t = 2048; -pub const ECHOE: ::tcflag_t = 16; -pub const ECHOK: ::tcflag_t = 32; -pub const ECHONL: ::tcflag_t = 64; -pub const ECHOPRT: ::tcflag_t = 1024; -pub const ECHOCTL: ::tcflag_t = 512; -pub const ISIG: ::tcflag_t = 1; -pub const ICANON: ::tcflag_t = 2; -pub const PENDIN: ::tcflag_t = 16384; -pub const NOFLSH: ::tcflag_t = 128; -pub const CIBAUD: ::tcflag_t = 269418496; -pub const CBAUDEX: ::tcflag_t = 4096; +pub const IXON: crate::tcflag_t = 1024; +pub const IXOFF: crate::tcflag_t = 4096; +pub const ONLCR: crate::tcflag_t = 4; +pub const CSIZE: crate::tcflag_t = 48; +pub const CS6: crate::tcflag_t = 16; +pub const CS7: crate::tcflag_t = 32; +pub const CS8: crate::tcflag_t = 48; +pub const CSTOPB: crate::tcflag_t = 64; +pub const CREAD: crate::tcflag_t = 128; +pub const PARENB: crate::tcflag_t = 256; +pub const PARODD: crate::tcflag_t = 512; +pub const HUPCL: crate::tcflag_t = 1024; +pub const CLOCAL: crate::tcflag_t = 2048; +pub const ECHOKE: crate::tcflag_t = 2048; +pub const ECHOE: crate::tcflag_t = 16; +pub const ECHOK: crate::tcflag_t = 32; +pub const ECHONL: crate::tcflag_t = 64; +pub const ECHOPRT: crate::tcflag_t = 1024; +pub const ECHOCTL: crate::tcflag_t = 512; +pub const ISIG: crate::tcflag_t = 1; +pub const ICANON: crate::tcflag_t = 2; +pub const PENDIN: crate::tcflag_t = 16384; +pub const NOFLSH: crate::tcflag_t = 128; +pub const CIBAUD: crate::tcflag_t = 269418496; +pub const CBAUDEX: crate::tcflag_t = 4096; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 2; -pub const NLDLY: ::tcflag_t = 256; -pub const CRDLY: ::tcflag_t = 1536; -pub const TABDLY: ::tcflag_t = 6144; -pub const BSDLY: ::tcflag_t = 8192; -pub const FFDLY: ::tcflag_t = 32768; -pub const VTDLY: ::tcflag_t = 16384; -pub const XTABS: ::tcflag_t = 6144; -pub const B0: ::speed_t = 0; -pub const B50: ::speed_t = 1; -pub const B75: ::speed_t = 2; -pub const B110: ::speed_t = 3; -pub const B134: ::speed_t = 4; -pub const B150: ::speed_t = 5; -pub const B200: ::speed_t = 6; -pub const B300: ::speed_t = 7; -pub const B600: ::speed_t = 8; -pub const B1200: ::speed_t = 9; -pub const B1800: ::speed_t = 10; -pub const B2400: ::speed_t = 11; -pub const B4800: ::speed_t = 12; -pub const B9600: ::speed_t = 13; -pub const B19200: ::speed_t = 14; -pub const B38400: ::speed_t = 15; -pub const EXTA: ::speed_t = 14; -pub const EXTB: ::speed_t = 15; -pub const B57600: ::speed_t = 4097; -pub const B115200: ::speed_t = 4098; -pub const B230400: ::speed_t = 4099; -pub const B460800: ::speed_t = 4100; -pub const B500000: ::speed_t = 4101; -pub const B576000: ::speed_t = 4102; -pub const B921600: ::speed_t = 4103; -pub const B1000000: ::speed_t = 4104; -pub const B1152000: ::speed_t = 4105; -pub const B1500000: ::speed_t = 4106; -pub const B2000000: ::speed_t = 4107; -pub const B2500000: ::speed_t = 4108; -pub const B3000000: ::speed_t = 4109; -pub const B3500000: ::speed_t = 4110; -pub const B4000000: ::speed_t = 4111; +pub const OLCUC: crate::tcflag_t = 2; +pub const NLDLY: crate::tcflag_t = 256; +pub const CRDLY: crate::tcflag_t = 1536; +pub const TABDLY: crate::tcflag_t = 6144; +pub const BSDLY: crate::tcflag_t = 8192; +pub const FFDLY: crate::tcflag_t = 32768; +pub const VTDLY: crate::tcflag_t = 16384; +pub const XTABS: crate::tcflag_t = 6144; +pub const B0: crate::speed_t = 0; +pub const B50: crate::speed_t = 1; +pub const B75: crate::speed_t = 2; +pub const B110: crate::speed_t = 3; +pub const B134: crate::speed_t = 4; +pub const B150: crate::speed_t = 5; +pub const B200: crate::speed_t = 6; +pub const B300: crate::speed_t = 7; +pub const B600: crate::speed_t = 8; +pub const B1200: crate::speed_t = 9; +pub const B1800: crate::speed_t = 10; +pub const B2400: crate::speed_t = 11; +pub const B4800: crate::speed_t = 12; +pub const B9600: crate::speed_t = 13; +pub const B19200: crate::speed_t = 14; +pub const B38400: crate::speed_t = 15; +pub const EXTA: crate::speed_t = 14; +pub const EXTB: crate::speed_t = 15; +pub const B57600: crate::speed_t = 4097; +pub const B115200: crate::speed_t = 4098; +pub const B230400: crate::speed_t = 4099; +pub const B460800: crate::speed_t = 4100; +pub const B500000: crate::speed_t = 4101; +pub const B576000: crate::speed_t = 4102; +pub const B921600: crate::speed_t = 4103; +pub const B1000000: crate::speed_t = 4104; +pub const B1152000: crate::speed_t = 4105; +pub const B1500000: crate::speed_t = 4106; +pub const B2000000: crate::speed_t = 4107; +pub const B2500000: crate::speed_t = 4108; +pub const B3000000: crate::speed_t = 4109; +pub const B3500000: crate::speed_t = 4110; +pub const B4000000: crate::speed_t = 4111; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 32768; -pub const TOSTOP: ::tcflag_t = 256; -pub const FLUSHO: ::tcflag_t = 4096; -pub const EXTPROC: ::tcflag_t = 65536; +pub const IEXTEN: crate::tcflag_t = 32768; +pub const TOSTOP: crate::tcflag_t = 256; +pub const FLUSHO: crate::tcflag_t = 4096; +pub const EXTPROC: crate::tcflag_t = 65536; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; @@ -600,314 +604,314 @@ pub const REG_A0: usize = 10; pub const REG_S2: usize = 18; pub const REG_NARGS: usize = 8; -pub const COMPAT_HWCAP_ISA_I: ::c_ulong = 1 << (b'I' - b'A'); -pub const COMPAT_HWCAP_ISA_M: ::c_ulong = 1 << (b'M' - b'A'); -pub const COMPAT_HWCAP_ISA_A: ::c_ulong = 1 << (b'A' - b'A'); -pub const COMPAT_HWCAP_ISA_F: ::c_ulong = 1 << (b'F' - b'A'); -pub const COMPAT_HWCAP_ISA_D: ::c_ulong = 1 << (b'D' - b'A'); -pub const COMPAT_HWCAP_ISA_C: ::c_ulong = 1 << (b'C' - b'A'); -pub const COMPAT_HWCAP_ISA_V: ::c_ulong = 1 << (b'V' - b'A'); +pub const COMPAT_HWCAP_ISA_I: c_ulong = 1 << (b'I' - b'A'); +pub const COMPAT_HWCAP_ISA_M: c_ulong = 1 << (b'M' - b'A'); +pub const COMPAT_HWCAP_ISA_A: c_ulong = 1 << (b'A' - b'A'); +pub const COMPAT_HWCAP_ISA_F: c_ulong = 1 << (b'F' - b'A'); +pub const COMPAT_HWCAP_ISA_D: c_ulong = 1 << (b'D' - b'A'); +pub const COMPAT_HWCAP_ISA_C: c_ulong = 1 << (b'C' - b'A'); +pub const COMPAT_HWCAP_ISA_V: c_ulong = 1 << (b'V' - b'A'); -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_close: ::c_long = 57; -pub const SYS_fstat: ::c_long = 80; -pub const SYS_lseek: ::c_long = 62; -pub const SYS_mmap: ::c_long = 222; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_brk: ::c_long = 214; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_dup: ::c_long = 23; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_sendfile: ::c_long = 71; -pub const SYS_socket: ::c_long = 198; -pub const SYS_connect: ::c_long = 203; -pub const SYS_accept: ::c_long = 202; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_exit: ::c_long = 93; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_kill: ::c_long = 129; -pub const SYS_uname: ::c_long = 160; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semop: ::c_long = 193; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_flock: ::c_long = 32; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_truncate: ::c_long = 45; -pub const SYS_ftruncate: ::c_long = 46; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_umask: ::c_long = 166; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_times: ::c_long = 153; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_personality: ::c_long = 92; -pub const SYS_statfs: ::c_long = 43; -pub const SYS_fstatfs: ::c_long = 44; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_setrlimit: ::c_long = 164; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_sync: ::c_long = 81; -pub const SYS_acct: ::c_long = 89; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_mount: ::c_long = 40; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_futex: ::c_long = 98; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_fadvise64: ::c_long = 223; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_openat: ::c_long = 56; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_newfstatat: ::c_long = 79; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_setns: ::c_long = 268; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_rseq: ::c_long = 293; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_read: c_long = 63; +pub const SYS_write: c_long = 64; +pub const SYS_close: c_long = 57; +pub const SYS_fstat: c_long = 80; +pub const SYS_lseek: c_long = 62; +pub const SYS_mmap: c_long = 222; +pub const SYS_mprotect: c_long = 226; +pub const SYS_munmap: c_long = 215; +pub const SYS_brk: c_long = 214; +pub const SYS_rt_sigaction: c_long = 134; +pub const SYS_rt_sigprocmask: c_long = 135; +pub const SYS_rt_sigreturn: c_long = 139; +pub const SYS_ioctl: c_long = 29; +pub const SYS_pread64: c_long = 67; +pub const SYS_pwrite64: c_long = 68; +pub const SYS_readv: c_long = 65; +pub const SYS_writev: c_long = 66; +pub const SYS_sched_yield: c_long = 124; +pub const SYS_mremap: c_long = 216; +pub const SYS_msync: c_long = 227; +pub const SYS_mincore: c_long = 232; +pub const SYS_madvise: c_long = 233; +pub const SYS_shmget: c_long = 194; +pub const SYS_shmat: c_long = 196; +pub const SYS_shmctl: c_long = 195; +pub const SYS_dup: c_long = 23; +pub const SYS_nanosleep: c_long = 101; +pub const SYS_getitimer: c_long = 102; +pub const SYS_setitimer: c_long = 103; +pub const SYS_getpid: c_long = 172; +pub const SYS_sendfile: c_long = 71; +pub const SYS_socket: c_long = 198; +pub const SYS_connect: c_long = 203; +pub const SYS_accept: c_long = 202; +pub const SYS_sendto: c_long = 206; +pub const SYS_recvfrom: c_long = 207; +pub const SYS_sendmsg: c_long = 211; +pub const SYS_recvmsg: c_long = 212; +pub const SYS_shutdown: c_long = 210; +pub const SYS_bind: c_long = 200; +pub const SYS_listen: c_long = 201; +pub const SYS_getsockname: c_long = 204; +pub const SYS_getpeername: c_long = 205; +pub const SYS_socketpair: c_long = 199; +pub const SYS_setsockopt: c_long = 208; +pub const SYS_getsockopt: c_long = 209; +pub const SYS_clone: c_long = 220; +pub const SYS_execve: c_long = 221; +pub const SYS_exit: c_long = 93; +pub const SYS_wait4: c_long = 260; +pub const SYS_kill: c_long = 129; +pub const SYS_uname: c_long = 160; +pub const SYS_semget: c_long = 190; +pub const SYS_semop: c_long = 193; +pub const SYS_semctl: c_long = 191; +pub const SYS_shmdt: c_long = 197; +pub const SYS_msgget: c_long = 186; +pub const SYS_msgsnd: c_long = 189; +pub const SYS_msgrcv: c_long = 188; +pub const SYS_msgctl: c_long = 187; +pub const SYS_fcntl: c_long = 25; +pub const SYS_flock: c_long = 32; +pub const SYS_fsync: c_long = 82; +pub const SYS_fdatasync: c_long = 83; +pub const SYS_truncate: c_long = 45; +pub const SYS_ftruncate: c_long = 46; +pub const SYS_getcwd: c_long = 17; +pub const SYS_chdir: c_long = 49; +pub const SYS_fchdir: c_long = 50; +pub const SYS_fchmod: c_long = 52; +pub const SYS_fchown: c_long = 55; +pub const SYS_umask: c_long = 166; +pub const SYS_gettimeofday: c_long = 169; +pub const SYS_getrlimit: c_long = 163; +pub const SYS_getrusage: c_long = 165; +pub const SYS_sysinfo: c_long = 179; +pub const SYS_times: c_long = 153; +pub const SYS_ptrace: c_long = 117; +pub const SYS_getuid: c_long = 174; +pub const SYS_syslog: c_long = 116; +pub const SYS_getgid: c_long = 176; +pub const SYS_setuid: c_long = 146; +pub const SYS_setgid: c_long = 144; +pub const SYS_geteuid: c_long = 175; +pub const SYS_getegid: c_long = 177; +pub const SYS_setpgid: c_long = 154; +pub const SYS_getppid: c_long = 173; +pub const SYS_setsid: c_long = 157; +pub const SYS_setreuid: c_long = 145; +pub const SYS_setregid: c_long = 143; +pub const SYS_getgroups: c_long = 158; +pub const SYS_setgroups: c_long = 159; +pub const SYS_setresuid: c_long = 147; +pub const SYS_getresuid: c_long = 148; +pub const SYS_setresgid: c_long = 149; +pub const SYS_getresgid: c_long = 150; +pub const SYS_getpgid: c_long = 155; +pub const SYS_setfsuid: c_long = 151; +pub const SYS_setfsgid: c_long = 152; +pub const SYS_getsid: c_long = 156; +pub const SYS_capget: c_long = 90; +pub const SYS_capset: c_long = 91; +pub const SYS_rt_sigpending: c_long = 136; +pub const SYS_rt_sigtimedwait: c_long = 137; +pub const SYS_rt_sigqueueinfo: c_long = 138; +pub const SYS_rt_sigsuspend: c_long = 133; +pub const SYS_sigaltstack: c_long = 132; +pub const SYS_personality: c_long = 92; +pub const SYS_statfs: c_long = 43; +pub const SYS_fstatfs: c_long = 44; +pub const SYS_getpriority: c_long = 141; +pub const SYS_setpriority: c_long = 140; +pub const SYS_sched_setparam: c_long = 118; +pub const SYS_sched_getparam: c_long = 121; +pub const SYS_sched_setscheduler: c_long = 119; +pub const SYS_sched_getscheduler: c_long = 120; +pub const SYS_sched_get_priority_max: c_long = 125; +pub const SYS_sched_get_priority_min: c_long = 126; +pub const SYS_sched_rr_get_interval: c_long = 127; +pub const SYS_mlock: c_long = 228; +pub const SYS_munlock: c_long = 229; +pub const SYS_mlockall: c_long = 230; +pub const SYS_munlockall: c_long = 231; +pub const SYS_vhangup: c_long = 58; +pub const SYS_pivot_root: c_long = 41; +pub const SYS_prctl: c_long = 167; +pub const SYS_adjtimex: c_long = 171; +pub const SYS_setrlimit: c_long = 164; +pub const SYS_chroot: c_long = 51; +pub const SYS_sync: c_long = 81; +pub const SYS_acct: c_long = 89; +pub const SYS_settimeofday: c_long = 170; +pub const SYS_mount: c_long = 40; +pub const SYS_umount2: c_long = 39; +pub const SYS_swapon: c_long = 224; +pub const SYS_swapoff: c_long = 225; +pub const SYS_reboot: c_long = 142; +pub const SYS_sethostname: c_long = 161; +pub const SYS_setdomainname: c_long = 162; +pub const SYS_init_module: c_long = 105; +pub const SYS_delete_module: c_long = 106; +pub const SYS_quotactl: c_long = 60; +pub const SYS_nfsservctl: c_long = 42; +pub const SYS_gettid: c_long = 178; +pub const SYS_readahead: c_long = 213; +pub const SYS_setxattr: c_long = 5; +pub const SYS_lsetxattr: c_long = 6; +pub const SYS_fsetxattr: c_long = 7; +pub const SYS_getxattr: c_long = 8; +pub const SYS_lgetxattr: c_long = 9; +pub const SYS_fgetxattr: c_long = 10; +pub const SYS_listxattr: c_long = 11; +pub const SYS_llistxattr: c_long = 12; +pub const SYS_flistxattr: c_long = 13; +pub const SYS_removexattr: c_long = 14; +pub const SYS_lremovexattr: c_long = 15; +pub const SYS_fremovexattr: c_long = 16; +pub const SYS_tkill: c_long = 130; +pub const SYS_futex: c_long = 98; +pub const SYS_sched_setaffinity: c_long = 122; +pub const SYS_sched_getaffinity: c_long = 123; +pub const SYS_io_setup: c_long = 0; +pub const SYS_io_destroy: c_long = 1; +pub const SYS_io_getevents: c_long = 4; +pub const SYS_io_submit: c_long = 2; +pub const SYS_io_cancel: c_long = 3; +pub const SYS_lookup_dcookie: c_long = 18; +pub const SYS_remap_file_pages: c_long = 234; +pub const SYS_getdents64: c_long = 61; +pub const SYS_set_tid_address: c_long = 96; +pub const SYS_restart_syscall: c_long = 128; +pub const SYS_semtimedop: c_long = 192; +pub const SYS_fadvise64: c_long = 223; +pub const SYS_timer_create: c_long = 107; +pub const SYS_timer_settime: c_long = 110; +pub const SYS_timer_gettime: c_long = 108; +pub const SYS_timer_getoverrun: c_long = 109; +pub const SYS_timer_delete: c_long = 111; +pub const SYS_clock_settime: c_long = 112; +pub const SYS_clock_gettime: c_long = 113; +pub const SYS_clock_getres: c_long = 114; +pub const SYS_clock_nanosleep: c_long = 115; +pub const SYS_exit_group: c_long = 94; +pub const SYS_epoll_ctl: c_long = 21; +pub const SYS_tgkill: c_long = 131; +pub const SYS_mbind: c_long = 235; +pub const SYS_set_mempolicy: c_long = 237; +pub const SYS_get_mempolicy: c_long = 236; +pub const SYS_mq_open: c_long = 180; +pub const SYS_mq_unlink: c_long = 181; +pub const SYS_mq_timedsend: c_long = 182; +pub const SYS_mq_timedreceive: c_long = 183; +pub const SYS_mq_notify: c_long = 184; +pub const SYS_mq_getsetattr: c_long = 185; +pub const SYS_kexec_load: c_long = 104; +pub const SYS_waitid: c_long = 95; +pub const SYS_add_key: c_long = 217; +pub const SYS_request_key: c_long = 218; +pub const SYS_keyctl: c_long = 219; +pub const SYS_ioprio_set: c_long = 30; +pub const SYS_ioprio_get: c_long = 31; +pub const SYS_inotify_add_watch: c_long = 27; +pub const SYS_inotify_rm_watch: c_long = 28; +pub const SYS_migrate_pages: c_long = 238; +pub const SYS_openat: c_long = 56; +pub const SYS_mkdirat: c_long = 34; +pub const SYS_mknodat: c_long = 33; +pub const SYS_fchownat: c_long = 54; +pub const SYS_newfstatat: c_long = 79; +pub const SYS_unlinkat: c_long = 35; +pub const SYS_linkat: c_long = 37; +pub const SYS_symlinkat: c_long = 36; +pub const SYS_readlinkat: c_long = 78; +pub const SYS_fchmodat: c_long = 53; +pub const SYS_faccessat: c_long = 48; +pub const SYS_pselect6: c_long = 72; +pub const SYS_ppoll: c_long = 73; +pub const SYS_unshare: c_long = 97; +pub const SYS_set_robust_list: c_long = 99; +pub const SYS_get_robust_list: c_long = 100; +pub const SYS_splice: c_long = 76; +pub const SYS_tee: c_long = 77; +pub const SYS_sync_file_range: c_long = 84; +pub const SYS_vmsplice: c_long = 75; +pub const SYS_move_pages: c_long = 239; +pub const SYS_utimensat: c_long = 88; +pub const SYS_epoll_pwait: c_long = 22; +pub const SYS_timerfd_create: c_long = 85; +pub const SYS_fallocate: c_long = 47; +pub const SYS_timerfd_settime: c_long = 86; +pub const SYS_timerfd_gettime: c_long = 87; +pub const SYS_accept4: c_long = 242; +pub const SYS_signalfd4: c_long = 74; +pub const SYS_eventfd2: c_long = 19; +pub const SYS_epoll_create1: c_long = 20; +pub const SYS_dup3: c_long = 24; +pub const SYS_pipe2: c_long = 59; +pub const SYS_inotify_init1: c_long = 26; +pub const SYS_preadv: c_long = 69; +pub const SYS_pwritev: c_long = 70; +pub const SYS_rt_tgsigqueueinfo: c_long = 240; +pub const SYS_perf_event_open: c_long = 241; +pub const SYS_recvmmsg: c_long = 243; +pub const SYS_fanotify_init: c_long = 262; +pub const SYS_fanotify_mark: c_long = 263; +pub const SYS_prlimit64: c_long = 261; +pub const SYS_name_to_handle_at: c_long = 264; +pub const SYS_open_by_handle_at: c_long = 265; +pub const SYS_clock_adjtime: c_long = 266; +pub const SYS_syncfs: c_long = 267; +pub const SYS_sendmmsg: c_long = 269; +pub const SYS_setns: c_long = 268; +pub const SYS_getcpu: c_long = 168; +pub const SYS_process_vm_readv: c_long = 270; +pub const SYS_process_vm_writev: c_long = 271; +pub const SYS_kcmp: c_long = 272; +pub const SYS_finit_module: c_long = 273; +pub const SYS_sched_setattr: c_long = 274; +pub const SYS_sched_getattr: c_long = 275; +pub const SYS_renameat2: c_long = 276; +pub const SYS_seccomp: c_long = 277; +pub const SYS_getrandom: c_long = 278; +pub const SYS_memfd_create: c_long = 279; +pub const SYS_bpf: c_long = 280; +pub const SYS_execveat: c_long = 281; +pub const SYS_userfaultfd: c_long = 282; +pub const SYS_membarrier: c_long = 283; +pub const SYS_mlock2: c_long = 284; +pub const SYS_copy_file_range: c_long = 285; +pub const SYS_preadv2: c_long = 286; +pub const SYS_pwritev2: c_long = 287; +pub const SYS_pkey_mprotect: c_long = 288; +pub const SYS_pkey_alloc: c_long = 289; +pub const SYS_pkey_free: c_long = 290; +pub const SYS_statx: c_long = 291; +pub const SYS_rseq: c_long = 293; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 4c31252fbad30..210db71ae84b6 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -1,6 +1,8 @@ //! s390x -use pthread_mutex_t; +use crate::{ + c_double, c_int, c_short, c_uint, c_ushort, c_void, off64_t, off_t, pthread_mutex_t, size_t, +}; pub type blksize_t = i64; pub type c_char = u8; @@ -15,143 +17,143 @@ pub type __s64 = i64; s! { pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - __glibc_reserved0: ::c_int, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - pub sa_mask: ::sigset_t, + pub sa_sigaction: crate::sighandler_t, + __glibc_reserved0: c_int, + pub sa_flags: c_int, + pub sa_restorer: Option, + pub sa_mask: crate::sigset_t, } pub struct statfs { - pub f_type: ::c_uint, - pub f_bsize: ::c_uint, - 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_fsid: ::fsid_t, - pub f_namelen: ::c_uint, - pub f_frsize: ::c_uint, - pub f_flags: ::c_uint, - f_spare: [::c_uint; 4], + pub f_type: c_uint, + pub f_bsize: c_uint, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_uint, + pub f_frsize: c_uint, + pub f_flags: c_uint, + f_spare: [c_uint; 4], } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off64_t, + pub l_len: off64_t, + pub l_pid: crate::pid_t, } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - _pad: ::c_int, - _pad2: [::c_long; 14], + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, + _pad: c_int, + _pad2: [c_long; 14], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } 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, - st_pad0: ::c_int, - pub st_rdev: ::dev_t, - pub st_size: ::off_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_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - __glibc_reserved: [::c_long; 3], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + st_pad0: c_int, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + __glibc_reserved: [c_long; 3], } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - st_pad0: ::c_int, - pub st_rdev: ::dev_t, - pub st_size: ::off_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_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - __glibc_reserved: [::c_long; 3], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino64_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + st_pad0: c_int, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + __glibc_reserved: [c_long; 3], } pub struct pthread_attr_t { - __size: [::c_ulong; 7], + __size: [c_ulong; 7], } pub struct ipc_perm { - pub __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, - __pad1: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub __seq: c_ushort, + __pad1: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __unused4: c_ulong, + __unused5: c_ulong, } 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct __psw_t { @@ -173,49 +175,49 @@ s! { } pub struct ucontext_t { - pub uc_flags: ::c_ulong, + pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, + pub uc_stack: crate::stack_t, pub uc_mcontext: mcontext_t, - pub uc_sigmask: ::sigset_t, + pub uc_sigmask: crate::sigset_t, } pub struct statfs64 { - pub f_type: ::c_uint, - pub f_bsize: ::c_uint, + pub f_type: c_uint, + pub f_bsize: c_uint, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_uint, - pub f_frsize: ::c_uint, - pub f_flags: ::c_uint, - pub f_spare: [::c_uint; 4], + pub f_fsid: crate::fsid_t, + pub f_namelen: c_uint, + pub f_frsize: c_uint, + pub f_flags: c_uint, + pub f_spare: [c_uint; 4], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } } s_no_extra_traits! { // FIXME: This is actually a union. pub struct fpreg_t { - pub d: ::c_double, - // f: ::c_float, + pub d: c_double, + // f: c_float, } } @@ -229,61 +231,61 @@ cfg_if! { impl Eq for fpreg_t {} - impl ::fmt::Debug for fpreg_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for fpreg_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("fpreg_t").field("d", &self.d).finish() } } - impl ::hash::Hash for fpreg_t { - fn hash(&self, state: &mut H) { - let d: u64 = unsafe { ::mem::transmute(self.d) }; + impl crate::hash::Hash for fpreg_t { + fn hash(&self, state: &mut H) { + let d: u64 = unsafe { crate::mem::transmute(self.d) }; d.hash(state); } } } } -pub const POSIX_FADV_DONTNEED: ::c_int = 6; -pub const POSIX_FADV_NOREUSE: ::c_int = 7; +pub const POSIX_FADV_DONTNEED: c_int = 6; +pub const POSIX_FADV_NOREUSE: c_int = 7; pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const SFD_CLOEXEC: ::c_int = 0x080000; +pub const RTLD_DEEPBIND: c_int = 0x8; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_NOLOAD: c_int = 0x4; +pub const SFD_CLOEXEC: c_int = 0x080000; pub const NCCS: usize = 32; -pub const O_TRUNC: ::c_int = 512; -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_CLOEXEC: ::c_int = 0x80000; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; - -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; - -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -pub const EFD_CLOEXEC: ::c_int = 0x80000; +pub const O_TRUNC: c_int = 512; +pub const O_NOATIME: c_int = 0o1000000; +pub const O_CLOEXEC: c_int = 0x80000; +pub const O_PATH: c_int = 0o10000000; +pub const O_TMPFILE: c_int = 0o20000000 | O_DIRECTORY; + +pub const EBFONT: c_int = 59; +pub const ENOSTR: c_int = 60; +pub const ENODATA: c_int = 61; +pub const ETIME: c_int = 62; +pub const ENOSR: c_int = 63; +pub const ENONET: c_int = 64; +pub const ENOPKG: c_int = 65; +pub const EREMOTE: c_int = 66; +pub const ENOLINK: c_int = 67; +pub const EADV: c_int = 68; +pub const ESRMNT: c_int = 69; +pub const ECOMM: c_int = 70; +pub const EPROTO: c_int = 71; +pub const EDOTDOT: c_int = 73; + +pub const SA_NODEFER: c_int = 0x40000000; +pub const SA_RESETHAND: c_int = 0x80000000; +pub const SA_RESTART: c_int = 0x10000000; +pub const SA_NOCLDSTOP: c_int = 0x00000001; + +pub const EPOLL_CLOEXEC: c_int = 0x80000; + +pub const EFD_CLOEXEC: c_int = 0x80000; pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; @@ -292,209 +294,209 @@ pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; -pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; -pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; -pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNREFUSED: ::c_int = 111; -pub const ECONNRESET: ::c_int = 104; -pub const EDEADLK: ::c_int = 35; -pub const ENOSYS: ::c_int = 38; -pub const ENOTCONN: ::c_int = 107; -pub const ETIMEDOUT: ::c_int = 110; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NONBLOCK: ::c_int = 2048; -pub const SA_NOCLDWAIT: ::c_int = 2; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 4; -pub const SIGBUS: ::c_int = 7; -pub const SIGSTKSZ: ::size_t = 0x2000; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const SIG_SETMASK: ::c_int = 2; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const O_NOCTTY: ::c_int = 256; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const EDEADLOCK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 17; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ECONNABORTED: c_int = 103; +pub const ECONNREFUSED: c_int = 111; +pub const ECONNRESET: c_int = 104; +pub const EDEADLK: c_int = 35; +pub const ENOSYS: c_int = 38; +pub const ENOTCONN: c_int = 107; +pub const ETIMEDOUT: c_int = 110; +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NONBLOCK: c_int = 2048; +pub const SA_NOCLDWAIT: c_int = 2; +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 4; +pub const SIGBUS: c_int = 7; +pub const SIGSTKSZ: size_t = 0x2000; +pub const MINSIGSTKSZ: size_t = 2048; +pub const SIG_SETMASK: c_int = 2; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; + +pub const O_NOCTTY: c_int = 256; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_FSYNC: c_int = 0x101000; +pub const O_DIRECT: c_int = 0x4000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_NOFOLLOW: c_int = 0x20000; + +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_ANONYMOUS: c_int = 0x0020; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_SYNC: c_int = 0x080000; + +pub const EDEADLOCK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EBADMSG: c_int = 74; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const EHWPOISON: c_int = 133; +pub const ERFKILL: c_int = 132; + +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGCHLD: c_int = 17; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; #[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGUNUSED: c_int = 31; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; +pub const O_ASYNC: c_int = 0x2000; +pub const O_NDELAY: c_int = 0x800; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; -pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const EXTPROC: crate::tcflag_t = 0x00010000; -pub const PTRACE_DETACH: ::c_uint = 17; +pub const PTRACE_DETACH: c_uint = 17; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; -pub const EFD_NONBLOCK: ::c_int = 0x800; +pub const EFD_NONBLOCK: c_int = 0x800; -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; +pub const F_RDLCK: c_int = 0; +pub const F_WRLCK: c_int = 1; +pub const F_UNLCK: c_int = 2; +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETOWN: c_int = 8; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; +pub const F_OFD_GETLK: c_int = 36; +pub const F_OFD_SETLK: c_int = 37; +pub const F_OFD_SETLKW: c_int = 38; -pub const SFD_NONBLOCK: ::c_int = 0x0800; +pub const SFD_NONBLOCK: c_int = 0x0800; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; pub const VTIME: usize = 5; pub const VSWTC: usize = 7; @@ -504,455 +506,455 @@ pub const VSUSP: usize = 10; pub const VREPRINT: usize = 12; pub const VDISCARD: usize = 13; pub const VWERASE: usize = 14; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const ONLCR: ::tcflag_t = 0o000004; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const FF1: ::tcflag_t = 0x00008000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const CBAUD: ::speed_t = 0o010017; -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const CSIZE: ::tcflag_t = 0o000060; -pub const CS6: ::tcflag_t = 0o000020; -pub const CS7: ::tcflag_t = 0o000040; -pub const CS8: ::tcflag_t = 0o000060; -pub const CSTOPB: ::tcflag_t = 0o000100; -pub const CREAD: ::tcflag_t = 0o000200; -pub const PARENB: ::tcflag_t = 0o000400; -pub const PARODD: ::tcflag_t = 0o001000; -pub const HUPCL: ::tcflag_t = 0o002000; -pub const CLOCAL: ::tcflag_t = 0o004000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; -pub const CIBAUD: ::tcflag_t = 0o02003600000; - -pub const ISIG: ::tcflag_t = 0o000001; -pub const ICANON: ::tcflag_t = 0o000002; -pub const XCASE: ::tcflag_t = 0o000004; -pub const ECHOE: ::tcflag_t = 0o000020; -pub const ECHOK: ::tcflag_t = 0o000040; -pub const ECHONL: ::tcflag_t = 0o000100; -pub const NOFLSH: ::tcflag_t = 0o000200; -pub const ECHOCTL: ::tcflag_t = 0o001000; -pub const ECHOPRT: ::tcflag_t = 0o002000; -pub const ECHOKE: ::tcflag_t = 0o004000; -pub const PENDIN: ::tcflag_t = 0o040000; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const IXON: ::tcflag_t = 0o002000; -pub const IXOFF: ::tcflag_t = 0o010000; - -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_restart_syscall: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_brk: ::c_long = 45; -pub const SYS_signal: ::c_long = 48; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_lookup_dcookie: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; /* Syscall for Andrew File System */ -pub const SYS_getdents: ::c_long = 141; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_query_module: ::c_long = 167; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_getpmsg: ::c_long = 188; -pub const SYS_putpmsg: ::c_long = 189; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_pivot_root: ::c_long = 217; -pub const SYS_mincore: ::c_long = 218; -pub const SYS_madvise: ::c_long = 219; -pub const SYS_getdents64: ::c_long = 220; -pub const SYS_readahead: ::c_long = 222; -pub const SYS_setxattr: ::c_long = 224; -pub const SYS_lsetxattr: ::c_long = 225; -pub const SYS_fsetxattr: ::c_long = 226; -pub const SYS_getxattr: ::c_long = 227; -pub const SYS_lgetxattr: ::c_long = 228; -pub const SYS_fgetxattr: ::c_long = 229; -pub const SYS_listxattr: ::c_long = 230; -pub const SYS_llistxattr: ::c_long = 231; -pub const SYS_flistxattr: ::c_long = 232; -pub const SYS_removexattr: ::c_long = 233; -pub const SYS_lremovexattr: ::c_long = 234; -pub const SYS_fremovexattr: ::c_long = 235; -pub const SYS_gettid: ::c_long = 236; -pub const SYS_tkill: ::c_long = 237; -pub const SYS_futex: ::c_long = 238; -pub const SYS_sched_setaffinity: ::c_long = 239; -pub const SYS_sched_getaffinity: ::c_long = 240; -pub const SYS_tgkill: ::c_long = 241; -pub const SYS_io_setup: ::c_long = 243; -pub const SYS_io_destroy: ::c_long = 244; -pub const SYS_io_getevents: ::c_long = 245; -pub const SYS_io_submit: ::c_long = 246; -pub const SYS_io_cancel: ::c_long = 247; -pub const SYS_exit_group: ::c_long = 248; -pub const SYS_epoll_create: ::c_long = 249; -pub const SYS_epoll_ctl: ::c_long = 250; -pub const SYS_epoll_wait: ::c_long = 251; -pub const SYS_set_tid_address: ::c_long = 252; -pub const SYS_fadvise64: ::c_long = 253; -pub const SYS_timer_create: ::c_long = 254; -pub const SYS_timer_settime: ::c_long = 255; -pub const SYS_timer_gettime: ::c_long = 256; -pub const SYS_timer_getoverrun: ::c_long = 257; -pub const SYS_timer_delete: ::c_long = 258; -pub const SYS_clock_settime: ::c_long = 259; -pub const SYS_clock_gettime: ::c_long = 260; -pub const SYS_clock_getres: ::c_long = 261; -pub const SYS_clock_nanosleep: ::c_long = 262; -pub const SYS_statfs64: ::c_long = 265; -pub const SYS_fstatfs64: ::c_long = 266; -pub const SYS_remap_file_pages: ::c_long = 267; -pub const SYS_mbind: ::c_long = 268; -pub const SYS_get_mempolicy: ::c_long = 269; -pub const SYS_set_mempolicy: ::c_long = 270; -pub const SYS_mq_open: ::c_long = 271; -pub const SYS_mq_unlink: ::c_long = 272; -pub const SYS_mq_timedsend: ::c_long = 273; -pub const SYS_mq_timedreceive: ::c_long = 274; -pub const SYS_mq_notify: ::c_long = 275; -pub const SYS_mq_getsetattr: ::c_long = 276; -pub const SYS_kexec_load: ::c_long = 277; -pub const SYS_add_key: ::c_long = 278; -pub const SYS_request_key: ::c_long = 279; -pub const SYS_keyctl: ::c_long = 280; -pub const SYS_waitid: ::c_long = 281; -pub const SYS_ioprio_set: ::c_long = 282; -pub const SYS_ioprio_get: ::c_long = 283; -pub const SYS_inotify_init: ::c_long = 284; -pub const SYS_inotify_add_watch: ::c_long = 285; -pub const SYS_inotify_rm_watch: ::c_long = 286; -pub const SYS_migrate_pages: ::c_long = 287; -pub const SYS_openat: ::c_long = 288; -pub const SYS_mkdirat: ::c_long = 289; -pub const SYS_mknodat: ::c_long = 290; -pub const SYS_fchownat: ::c_long = 291; -pub const SYS_futimesat: ::c_long = 292; -pub const SYS_unlinkat: ::c_long = 294; -pub const SYS_renameat: ::c_long = 295; -pub const SYS_linkat: ::c_long = 296; -pub const SYS_symlinkat: ::c_long = 297; -pub const SYS_readlinkat: ::c_long = 298; -pub const SYS_fchmodat: ::c_long = 299; -pub const SYS_faccessat: ::c_long = 300; -pub const SYS_pselect6: ::c_long = 301; -pub const SYS_ppoll: ::c_long = 302; -pub const SYS_unshare: ::c_long = 303; -pub const SYS_set_robust_list: ::c_long = 304; -pub const SYS_get_robust_list: ::c_long = 305; -pub const SYS_splice: ::c_long = 306; -pub const SYS_sync_file_range: ::c_long = 307; -pub const SYS_tee: ::c_long = 308; -pub const SYS_vmsplice: ::c_long = 309; -pub const SYS_move_pages: ::c_long = 310; -pub const SYS_getcpu: ::c_long = 311; -pub const SYS_epoll_pwait: ::c_long = 312; -pub const SYS_utimes: ::c_long = 313; -pub const SYS_fallocate: ::c_long = 314; -pub const SYS_utimensat: ::c_long = 315; -pub const SYS_signalfd: ::c_long = 316; -pub const SYS_timerfd: ::c_long = 317; -pub const SYS_eventfd: ::c_long = 318; -pub const SYS_timerfd_create: ::c_long = 319; -pub const SYS_timerfd_settime: ::c_long = 320; -pub const SYS_timerfd_gettime: ::c_long = 321; -pub const SYS_signalfd4: ::c_long = 322; -pub const SYS_eventfd2: ::c_long = 323; -pub const SYS_inotify_init1: ::c_long = 324; -pub const SYS_pipe2: ::c_long = 325; -pub const SYS_dup3: ::c_long = 326; -pub const SYS_epoll_create1: ::c_long = 327; -pub const SYS_preadv: ::c_long = 328; -pub const SYS_pwritev: ::c_long = 329; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 330; -pub const SYS_perf_event_open: ::c_long = 331; -pub const SYS_fanotify_init: ::c_long = 332; -pub const SYS_fanotify_mark: ::c_long = 333; -pub const SYS_prlimit64: ::c_long = 334; -pub const SYS_name_to_handle_at: ::c_long = 335; -pub const SYS_open_by_handle_at: ::c_long = 336; -pub const SYS_clock_adjtime: ::c_long = 337; -pub const SYS_syncfs: ::c_long = 338; -pub const SYS_setns: ::c_long = 339; -pub const SYS_process_vm_readv: ::c_long = 340; -pub const SYS_process_vm_writev: ::c_long = 341; -pub const SYS_s390_runtime_instr: ::c_long = 342; -pub const SYS_kcmp: ::c_long = 343; -pub const SYS_finit_module: ::c_long = 344; -pub const SYS_sched_setattr: ::c_long = 345; -pub const SYS_sched_getattr: ::c_long = 346; -pub const SYS_renameat2: ::c_long = 347; -pub const SYS_seccomp: ::c_long = 348; -pub const SYS_getrandom: ::c_long = 349; -pub const SYS_memfd_create: ::c_long = 350; -pub const SYS_bpf: ::c_long = 351; -pub const SYS_s390_pci_mmio_write: ::c_long = 352; -pub const SYS_s390_pci_mmio_read: ::c_long = 353; -pub const SYS_execveat: ::c_long = 354; -pub const SYS_userfaultfd: ::c_long = 355; -pub const SYS_membarrier: ::c_long = 356; -pub const SYS_recvmmsg: ::c_long = 357; -pub const SYS_sendmmsg: ::c_long = 358; -pub const SYS_socket: ::c_long = 359; -pub const SYS_socketpair: ::c_long = 360; -pub const SYS_bind: ::c_long = 361; -pub const SYS_connect: ::c_long = 362; -pub const SYS_listen: ::c_long = 363; -pub const SYS_accept4: ::c_long = 364; -pub const SYS_getsockopt: ::c_long = 365; -pub const SYS_setsockopt: ::c_long = 366; -pub const SYS_getsockname: ::c_long = 367; -pub const SYS_getpeername: ::c_long = 368; -pub const SYS_sendto: ::c_long = 369; -pub const SYS_sendmsg: ::c_long = 370; -pub const SYS_recvfrom: ::c_long = 371; -pub const SYS_recvmsg: ::c_long = 372; -pub const SYS_shutdown: ::c_long = 373; -pub const SYS_mlock2: ::c_long = 374; -pub const SYS_copy_file_range: ::c_long = 375; -pub const SYS_preadv2: ::c_long = 376; -pub const SYS_pwritev2: ::c_long = 377; -pub const SYS_lchown: ::c_long = 198; -pub const SYS_setuid: ::c_long = 213; -pub const SYS_getuid: ::c_long = 199; -pub const SYS_setgid: ::c_long = 214; -pub const SYS_getgid: ::c_long = 200; -pub const SYS_geteuid: ::c_long = 201; -pub const SYS_setreuid: ::c_long = 203; -pub const SYS_setregid: ::c_long = 204; -pub const SYS_getrlimit: ::c_long = 191; -pub const SYS_getgroups: ::c_long = 205; -pub const SYS_fchown: ::c_long = 207; -pub const SYS_setresuid: ::c_long = 208; -pub const SYS_setresgid: ::c_long = 210; -pub const SYS_getresgid: ::c_long = 211; -pub const SYS_select: ::c_long = 142; -pub const SYS_getegid: ::c_long = 202; -pub const SYS_setgroups: ::c_long = 206; -pub const SYS_getresuid: ::c_long = 209; -pub const SYS_chown: ::c_long = 212; -pub const SYS_setfsuid: ::c_long = 215; -pub const SYS_setfsgid: ::c_long = 216; -pub const SYS_newfstatat: ::c_long = 293; -pub const SYS_statx: ::c_long = 379; -pub const SYS_rseq: ::c_long = 383; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; -pub const SYS_mseal: ::c_long = 462; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const ONLCR: crate::tcflag_t = 0o000004; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const CR1: crate::tcflag_t = 0x00000200; +pub const CR2: crate::tcflag_t = 0x00000400; +pub const CR3: crate::tcflag_t = 0x00000600; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const TAB1: crate::tcflag_t = 0x00000800; +pub const TAB2: crate::tcflag_t = 0x00001000; +pub const TAB3: crate::tcflag_t = 0x00001800; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const BS1: crate::tcflag_t = 0x00002000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const FF1: crate::tcflag_t = 0x00008000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const VT1: crate::tcflag_t = 0x00004000; +pub const XTABS: crate::tcflag_t = 0o014000; + +pub const CBAUD: crate::speed_t = 0o010017; +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const CSIZE: crate::tcflag_t = 0o000060; +pub const CS6: crate::tcflag_t = 0o000020; +pub const CS7: crate::tcflag_t = 0o000040; +pub const CS8: crate::tcflag_t = 0o000060; +pub const CSTOPB: crate::tcflag_t = 0o000100; +pub const CREAD: crate::tcflag_t = 0o000200; +pub const PARENB: crate::tcflag_t = 0o000400; +pub const PARODD: crate::tcflag_t = 0o001000; +pub const HUPCL: crate::tcflag_t = 0o002000; +pub const CLOCAL: crate::tcflag_t = 0o004000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; + +pub const ISIG: crate::tcflag_t = 0o000001; +pub const ICANON: crate::tcflag_t = 0o000002; +pub const XCASE: crate::tcflag_t = 0o000004; +pub const ECHOE: crate::tcflag_t = 0o000020; +pub const ECHOK: crate::tcflag_t = 0o000040; +pub const ECHONL: crate::tcflag_t = 0o000100; +pub const NOFLSH: crate::tcflag_t = 0o000200; +pub const ECHOCTL: crate::tcflag_t = 0o001000; +pub const ECHOPRT: crate::tcflag_t = 0o002000; +pub const ECHOKE: crate::tcflag_t = 0o004000; +pub const PENDIN: crate::tcflag_t = 0o040000; + +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; + +pub const IXON: crate::tcflag_t = 0o002000; +pub const IXOFF: crate::tcflag_t = 0o010000; + +pub const SYS_exit: c_long = 1; +pub const SYS_fork: c_long = 2; +pub const SYS_read: c_long = 3; +pub const SYS_write: c_long = 4; +pub const SYS_open: c_long = 5; +pub const SYS_close: c_long = 6; +pub const SYS_restart_syscall: c_long = 7; +pub const SYS_creat: c_long = 8; +pub const SYS_link: c_long = 9; +pub const SYS_unlink: c_long = 10; +pub const SYS_execve: c_long = 11; +pub const SYS_chdir: c_long = 12; +pub const SYS_mknod: c_long = 14; +pub const SYS_chmod: c_long = 15; +pub const SYS_lseek: c_long = 19; +pub const SYS_getpid: c_long = 20; +pub const SYS_mount: c_long = 21; +pub const SYS_umount: c_long = 22; +pub const SYS_ptrace: c_long = 26; +pub const SYS_alarm: c_long = 27; +pub const SYS_pause: c_long = 29; +pub const SYS_utime: c_long = 30; +pub const SYS_access: c_long = 33; +pub const SYS_nice: c_long = 34; +pub const SYS_sync: c_long = 36; +pub const SYS_kill: c_long = 37; +pub const SYS_rename: c_long = 38; +pub const SYS_mkdir: c_long = 39; +pub const SYS_rmdir: c_long = 40; +pub const SYS_dup: c_long = 41; +pub const SYS_pipe: c_long = 42; +pub const SYS_times: c_long = 43; +pub const SYS_brk: c_long = 45; +pub const SYS_signal: c_long = 48; +pub const SYS_acct: c_long = 51; +pub const SYS_umount2: c_long = 52; +pub const SYS_ioctl: c_long = 54; +pub const SYS_fcntl: c_long = 55; +pub const SYS_setpgid: c_long = 57; +pub const SYS_umask: c_long = 60; +pub const SYS_chroot: c_long = 61; +pub const SYS_ustat: c_long = 62; +pub const SYS_dup2: c_long = 63; +pub const SYS_getppid: c_long = 64; +pub const SYS_getpgrp: c_long = 65; +pub const SYS_setsid: c_long = 66; +pub const SYS_sigaction: c_long = 67; +pub const SYS_sigsuspend: c_long = 72; +pub const SYS_sigpending: c_long = 73; +pub const SYS_sethostname: c_long = 74; +pub const SYS_setrlimit: c_long = 75; +pub const SYS_getrusage: c_long = 77; +pub const SYS_gettimeofday: c_long = 78; +pub const SYS_settimeofday: c_long = 79; +pub const SYS_symlink: c_long = 83; +pub const SYS_readlink: c_long = 85; +pub const SYS_uselib: c_long = 86; +pub const SYS_swapon: c_long = 87; +pub const SYS_reboot: c_long = 88; +pub const SYS_readdir: c_long = 89; +pub const SYS_mmap: c_long = 90; +pub const SYS_munmap: c_long = 91; +pub const SYS_truncate: c_long = 92; +pub const SYS_ftruncate: c_long = 93; +pub const SYS_fchmod: c_long = 94; +pub const SYS_getpriority: c_long = 96; +pub const SYS_setpriority: c_long = 97; +pub const SYS_statfs: c_long = 99; +pub const SYS_fstatfs: c_long = 100; +pub const SYS_socketcall: c_long = 102; +pub const SYS_syslog: c_long = 103; +pub const SYS_setitimer: c_long = 104; +pub const SYS_getitimer: c_long = 105; +pub const SYS_stat: c_long = 106; +pub const SYS_lstat: c_long = 107; +pub const SYS_fstat: c_long = 108; +pub const SYS_lookup_dcookie: c_long = 110; +pub const SYS_vhangup: c_long = 111; +pub const SYS_idle: c_long = 112; +pub const SYS_wait4: c_long = 114; +pub const SYS_swapoff: c_long = 115; +pub const SYS_sysinfo: c_long = 116; +pub const SYS_ipc: c_long = 117; +pub const SYS_fsync: c_long = 118; +pub const SYS_sigreturn: c_long = 119; +pub const SYS_clone: c_long = 120; +pub const SYS_setdomainname: c_long = 121; +pub const SYS_uname: c_long = 122; +pub const SYS_adjtimex: c_long = 124; +pub const SYS_mprotect: c_long = 125; +pub const SYS_sigprocmask: c_long = 126; +pub const SYS_create_module: c_long = 127; +pub const SYS_init_module: c_long = 128; +pub const SYS_delete_module: c_long = 129; +pub const SYS_get_kernel_syms: c_long = 130; +pub const SYS_quotactl: c_long = 131; +pub const SYS_getpgid: c_long = 132; +pub const SYS_fchdir: c_long = 133; +pub const SYS_bdflush: c_long = 134; +pub const SYS_sysfs: c_long = 135; +pub const SYS_personality: c_long = 136; +pub const SYS_afs_syscall: c_long = 137; /* Syscall for Andrew File System */ +pub const SYS_getdents: c_long = 141; +pub const SYS_flock: c_long = 143; +pub const SYS_msync: c_long = 144; +pub const SYS_readv: c_long = 145; +pub const SYS_writev: c_long = 146; +pub const SYS_getsid: c_long = 147; +pub const SYS_fdatasync: c_long = 148; +pub const SYS__sysctl: c_long = 149; +pub const SYS_mlock: c_long = 150; +pub const SYS_munlock: c_long = 151; +pub const SYS_mlockall: c_long = 152; +pub const SYS_munlockall: c_long = 153; +pub const SYS_sched_setparam: c_long = 154; +pub const SYS_sched_getparam: c_long = 155; +pub const SYS_sched_setscheduler: c_long = 156; +pub const SYS_sched_getscheduler: c_long = 157; +pub const SYS_sched_yield: c_long = 158; +pub const SYS_sched_get_priority_max: c_long = 159; +pub const SYS_sched_get_priority_min: c_long = 160; +pub const SYS_sched_rr_get_interval: c_long = 161; +pub const SYS_nanosleep: c_long = 162; +pub const SYS_mremap: c_long = 163; +pub const SYS_query_module: c_long = 167; +pub const SYS_poll: c_long = 168; +pub const SYS_nfsservctl: c_long = 169; +pub const SYS_prctl: c_long = 172; +pub const SYS_rt_sigreturn: c_long = 173; +pub const SYS_rt_sigaction: c_long = 174; +pub const SYS_rt_sigprocmask: c_long = 175; +pub const SYS_rt_sigpending: c_long = 176; +pub const SYS_rt_sigtimedwait: c_long = 177; +pub const SYS_rt_sigqueueinfo: c_long = 178; +pub const SYS_rt_sigsuspend: c_long = 179; +pub const SYS_pread64: c_long = 180; +pub const SYS_pwrite64: c_long = 181; +pub const SYS_getcwd: c_long = 183; +pub const SYS_capget: c_long = 184; +pub const SYS_capset: c_long = 185; +pub const SYS_sigaltstack: c_long = 186; +pub const SYS_sendfile: c_long = 187; +pub const SYS_getpmsg: c_long = 188; +pub const SYS_putpmsg: c_long = 189; +pub const SYS_vfork: c_long = 190; +pub const SYS_pivot_root: c_long = 217; +pub const SYS_mincore: c_long = 218; +pub const SYS_madvise: c_long = 219; +pub const SYS_getdents64: c_long = 220; +pub const SYS_readahead: c_long = 222; +pub const SYS_setxattr: c_long = 224; +pub const SYS_lsetxattr: c_long = 225; +pub const SYS_fsetxattr: c_long = 226; +pub const SYS_getxattr: c_long = 227; +pub const SYS_lgetxattr: c_long = 228; +pub const SYS_fgetxattr: c_long = 229; +pub const SYS_listxattr: c_long = 230; +pub const SYS_llistxattr: c_long = 231; +pub const SYS_flistxattr: c_long = 232; +pub const SYS_removexattr: c_long = 233; +pub const SYS_lremovexattr: c_long = 234; +pub const SYS_fremovexattr: c_long = 235; +pub const SYS_gettid: c_long = 236; +pub const SYS_tkill: c_long = 237; +pub const SYS_futex: c_long = 238; +pub const SYS_sched_setaffinity: c_long = 239; +pub const SYS_sched_getaffinity: c_long = 240; +pub const SYS_tgkill: c_long = 241; +pub const SYS_io_setup: c_long = 243; +pub const SYS_io_destroy: c_long = 244; +pub const SYS_io_getevents: c_long = 245; +pub const SYS_io_submit: c_long = 246; +pub const SYS_io_cancel: c_long = 247; +pub const SYS_exit_group: c_long = 248; +pub const SYS_epoll_create: c_long = 249; +pub const SYS_epoll_ctl: c_long = 250; +pub const SYS_epoll_wait: c_long = 251; +pub const SYS_set_tid_address: c_long = 252; +pub const SYS_fadvise64: c_long = 253; +pub const SYS_timer_create: c_long = 254; +pub const SYS_timer_settime: c_long = 255; +pub const SYS_timer_gettime: c_long = 256; +pub const SYS_timer_getoverrun: c_long = 257; +pub const SYS_timer_delete: c_long = 258; +pub const SYS_clock_settime: c_long = 259; +pub const SYS_clock_gettime: c_long = 260; +pub const SYS_clock_getres: c_long = 261; +pub const SYS_clock_nanosleep: c_long = 262; +pub const SYS_statfs64: c_long = 265; +pub const SYS_fstatfs64: c_long = 266; +pub const SYS_remap_file_pages: c_long = 267; +pub const SYS_mbind: c_long = 268; +pub const SYS_get_mempolicy: c_long = 269; +pub const SYS_set_mempolicy: c_long = 270; +pub const SYS_mq_open: c_long = 271; +pub const SYS_mq_unlink: c_long = 272; +pub const SYS_mq_timedsend: c_long = 273; +pub const SYS_mq_timedreceive: c_long = 274; +pub const SYS_mq_notify: c_long = 275; +pub const SYS_mq_getsetattr: c_long = 276; +pub const SYS_kexec_load: c_long = 277; +pub const SYS_add_key: c_long = 278; +pub const SYS_request_key: c_long = 279; +pub const SYS_keyctl: c_long = 280; +pub const SYS_waitid: c_long = 281; +pub const SYS_ioprio_set: c_long = 282; +pub const SYS_ioprio_get: c_long = 283; +pub const SYS_inotify_init: c_long = 284; +pub const SYS_inotify_add_watch: c_long = 285; +pub const SYS_inotify_rm_watch: c_long = 286; +pub const SYS_migrate_pages: c_long = 287; +pub const SYS_openat: c_long = 288; +pub const SYS_mkdirat: c_long = 289; +pub const SYS_mknodat: c_long = 290; +pub const SYS_fchownat: c_long = 291; +pub const SYS_futimesat: c_long = 292; +pub const SYS_unlinkat: c_long = 294; +pub const SYS_renameat: c_long = 295; +pub const SYS_linkat: c_long = 296; +pub const SYS_symlinkat: c_long = 297; +pub const SYS_readlinkat: c_long = 298; +pub const SYS_fchmodat: c_long = 299; +pub const SYS_faccessat: c_long = 300; +pub const SYS_pselect6: c_long = 301; +pub const SYS_ppoll: c_long = 302; +pub const SYS_unshare: c_long = 303; +pub const SYS_set_robust_list: c_long = 304; +pub const SYS_get_robust_list: c_long = 305; +pub const SYS_splice: c_long = 306; +pub const SYS_sync_file_range: c_long = 307; +pub const SYS_tee: c_long = 308; +pub const SYS_vmsplice: c_long = 309; +pub const SYS_move_pages: c_long = 310; +pub const SYS_getcpu: c_long = 311; +pub const SYS_epoll_pwait: c_long = 312; +pub const SYS_utimes: c_long = 313; +pub const SYS_fallocate: c_long = 314; +pub const SYS_utimensat: c_long = 315; +pub const SYS_signalfd: c_long = 316; +pub const SYS_timerfd: c_long = 317; +pub const SYS_eventfd: c_long = 318; +pub const SYS_timerfd_create: c_long = 319; +pub const SYS_timerfd_settime: c_long = 320; +pub const SYS_timerfd_gettime: c_long = 321; +pub const SYS_signalfd4: c_long = 322; +pub const SYS_eventfd2: c_long = 323; +pub const SYS_inotify_init1: c_long = 324; +pub const SYS_pipe2: c_long = 325; +pub const SYS_dup3: c_long = 326; +pub const SYS_epoll_create1: c_long = 327; +pub const SYS_preadv: c_long = 328; +pub const SYS_pwritev: c_long = 329; +pub const SYS_rt_tgsigqueueinfo: c_long = 330; +pub const SYS_perf_event_open: c_long = 331; +pub const SYS_fanotify_init: c_long = 332; +pub const SYS_fanotify_mark: c_long = 333; +pub const SYS_prlimit64: c_long = 334; +pub const SYS_name_to_handle_at: c_long = 335; +pub const SYS_open_by_handle_at: c_long = 336; +pub const SYS_clock_adjtime: c_long = 337; +pub const SYS_syncfs: c_long = 338; +pub const SYS_setns: c_long = 339; +pub const SYS_process_vm_readv: c_long = 340; +pub const SYS_process_vm_writev: c_long = 341; +pub const SYS_s390_runtime_instr: c_long = 342; +pub const SYS_kcmp: c_long = 343; +pub const SYS_finit_module: c_long = 344; +pub const SYS_sched_setattr: c_long = 345; +pub const SYS_sched_getattr: c_long = 346; +pub const SYS_renameat2: c_long = 347; +pub const SYS_seccomp: c_long = 348; +pub const SYS_getrandom: c_long = 349; +pub const SYS_memfd_create: c_long = 350; +pub const SYS_bpf: c_long = 351; +pub const SYS_s390_pci_mmio_write: c_long = 352; +pub const SYS_s390_pci_mmio_read: c_long = 353; +pub const SYS_execveat: c_long = 354; +pub const SYS_userfaultfd: c_long = 355; +pub const SYS_membarrier: c_long = 356; +pub const SYS_recvmmsg: c_long = 357; +pub const SYS_sendmmsg: c_long = 358; +pub const SYS_socket: c_long = 359; +pub const SYS_socketpair: c_long = 360; +pub const SYS_bind: c_long = 361; +pub const SYS_connect: c_long = 362; +pub const SYS_listen: c_long = 363; +pub const SYS_accept4: c_long = 364; +pub const SYS_getsockopt: c_long = 365; +pub const SYS_setsockopt: c_long = 366; +pub const SYS_getsockname: c_long = 367; +pub const SYS_getpeername: c_long = 368; +pub const SYS_sendto: c_long = 369; +pub const SYS_sendmsg: c_long = 370; +pub const SYS_recvfrom: c_long = 371; +pub const SYS_recvmsg: c_long = 372; +pub const SYS_shutdown: c_long = 373; +pub const SYS_mlock2: c_long = 374; +pub const SYS_copy_file_range: c_long = 375; +pub const SYS_preadv2: c_long = 376; +pub const SYS_pwritev2: c_long = 377; +pub const SYS_lchown: c_long = 198; +pub const SYS_setuid: c_long = 213; +pub const SYS_getuid: c_long = 199; +pub const SYS_setgid: c_long = 214; +pub const SYS_getgid: c_long = 200; +pub const SYS_geteuid: c_long = 201; +pub const SYS_setreuid: c_long = 203; +pub const SYS_setregid: c_long = 204; +pub const SYS_getrlimit: c_long = 191; +pub const SYS_getgroups: c_long = 205; +pub const SYS_fchown: c_long = 207; +pub const SYS_setresuid: c_long = 208; +pub const SYS_setresgid: c_long = 210; +pub const SYS_getresgid: c_long = 211; +pub const SYS_select: c_long = 142; +pub const SYS_getegid: c_long = 202; +pub const SYS_setgroups: c_long = 206; +pub const SYS_getresuid: c_long = 209; +pub const SYS_chown: c_long = 212; +pub const SYS_setfsuid: c_long = 215; +pub const SYS_setfsgid: c_long = 216; +pub const SYS_newfstatat: c_long = 293; +pub const SYS_statx: c_long = 379; +pub const SYS_rseq: c_long = 383; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; +pub const SYS_mseal: c_long = 462; extern "C" { pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; - pub fn getcontext(ucp: *mut ::ucontext_t) -> ::c_int; - pub fn setcontext(ucp: *const ::ucontext_t) -> ::c_int; - pub fn makecontext(ucp: *mut ::ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); - pub fn swapcontext(uocp: *mut ::ucontext_t, ucp: *const ::ucontext_t) -> ::c_int; + name: *mut c_int, + namelen: c_int, + oldp: *mut c_void, + oldlenp: *mut size_t, + newp: *mut c_void, + newlen: size_t, + ) -> c_int; + pub fn getcontext(ucp: *mut crate::ucontext_t) -> c_int; + pub fn setcontext(ucp: *const crate::ucontext_t) -> c_int; + pub fn makecontext(ucp: *mut crate::ucontext_t, func: extern "C" fn(), argc: c_int, ...); + pub fn swapcontext(uocp: *mut crate::ucontext_t, ucp: *const crate::ucontext_t) -> c_int; } diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs index efb0aec7c1e9f..8dd7b85032beb 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -1,6 +1,9 @@ //! SPARC64-specific definitions for 64-bit linux-like values -use pthread_mutex_t; +use crate::{ + c_int, c_longlong, c_short, c_uint, c_ulonglong, c_ushort, c_void, off64_t, off_t, + pthread_mutex_t, size_t, +}; pub type c_long = i64; pub type c_ulong = u64; @@ -9,39 +12,39 @@ pub type wchar_t = i32; pub type nlink_t = u32; pub type blksize_t = i64; pub type suseconds_t = i32; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; s! { pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, #[cfg(target_arch = "sparc64")] - __reserved0: ::c_int, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + __reserved0: c_int, + pub sa_flags: c_int, + pub sa_restorer: Option, } pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - 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_fsid: ::fsid_t, - - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - f_spare: [::__fsword_t; 5], + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, + + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + f_spare: [crate::__fsword_t; 5], } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, #[doc(hidden)] #[deprecated( since = "0.2.54", @@ -49,120 +52,120 @@ s! { https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] - pub _pad: [::c_int; 29], + pub _pad: [c_int; 29], _align: [usize; 0], } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - __reserved: ::c_short, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off64_t, + pub l_len: off64_t, + pub l_pid: crate::pid_t, + __reserved: c_short, } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } pub struct stat { - pub st_dev: ::dev_t, + pub st_dev: crate::dev_t, __pad0: u64, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, __pad1: u64, - 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; 2], + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_long; 2], } pub struct stat64 { - pub st_dev: ::dev_t, + pub st_dev: crate::dev_t, __pad0: u64, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: ::c_int, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_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, - __reserved: [::c_long; 2], + pub st_ino: crate::ino64_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad2: c_int, + pub st_size: off64_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __reserved: [c_long; 2], } pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], + pub f_fsid: crate::fsid_t, + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + pub f_flags: crate::__fsword_t, + pub f_spare: [crate::__fsword_t; 4], } 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct pthread_attr_t { @@ -170,29 +173,29 @@ s! { } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, __pad0: u16, - pub __seq: ::c_ushort, - __unused1: ::c_ulonglong, - __unused2: ::c_ulonglong, + pub __seq: c_ushort, + __unused1: c_ulonglong, + __unused2: c_ulonglong, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_segsz: ::size_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __reserved1: ::c_ulong, - __reserved2: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_segsz: size_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __reserved1: c_ulong, + __reserved2: c_ulong, } } @@ -204,263 +207,263 @@ s_no_extra_traits! { } } -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const RTLD_DEEPBIND: c_int = 0x8; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_NOLOAD: c_int = 0x4; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; -pub const O_APPEND: ::c_int = 0x8; -pub const O_CREAT: ::c_int = 0x200; -pub const O_EXCL: ::c_int = 0x800; -pub const O_NOCTTY: ::c_int = 0x8000; -pub const O_NONBLOCK: ::c_int = 0x4000; -pub const O_SYNC: ::c_int = 0x802000; -pub const O_RSYNC: ::c_int = 0x802000; -pub const O_DSYNC: ::c_int = 0x2000; -pub const O_FSYNC: ::c_int = 0x802000; -pub const O_NOATIME: ::c_int = 0x200000; -pub const O_PATH: ::c_int = 0x1000000; -pub const O_TMPFILE: ::c_int = 0x2000000 | O_DIRECTORY; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 0x0200; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const EDEADLK: ::c_int = 78; -pub const ENAMETOOLONG: ::c_int = 63; -pub const ENOLCK: ::c_int = 79; -pub const ENOSYS: ::c_int = 90; -pub const ENOTEMPTY: ::c_int = 66; -pub const ELOOP: ::c_int = 62; -pub const ENOMSG: ::c_int = 75; -pub const EIDRM: ::c_int = 77; -pub const ECHRNG: ::c_int = 94; -pub const EL2NSYNC: ::c_int = 95; -pub const EL3HLT: ::c_int = 96; -pub const EL3RST: ::c_int = 97; -pub const ELNRNG: ::c_int = 98; -pub const EUNATCH: ::c_int = 99; -pub const ENOCSI: ::c_int = 100; -pub const EL2HLT: ::c_int = 101; -pub const EBADE: ::c_int = 102; -pub const EBADR: ::c_int = 103; -pub const EXFULL: ::c_int = 104; -pub const ENOANO: ::c_int = 105; -pub const EBADRQC: ::c_int = 106; -pub const EBADSLT: ::c_int = 107; -pub const EMULTIHOP: ::c_int = 87; -pub const EOVERFLOW: ::c_int = 92; -pub const ENOTUNIQ: ::c_int = 115; -pub const EBADFD: ::c_int = 93; -pub const EBADMSG: ::c_int = 76; -pub const EREMCHG: ::c_int = 89; -pub const ELIBACC: ::c_int = 114; -pub const ELIBBAD: ::c_int = 112; -pub const ELIBSCN: ::c_int = 124; -pub const ELIBMAX: ::c_int = 123; -pub const ELIBEXEC: ::c_int = 110; -pub const EILSEQ: ::c_int = 122; -pub const ERESTART: ::c_int = 116; -pub const ESTRPIPE: ::c_int = 91; -pub const EUSERS: ::c_int = 68; -pub const ENOTSOCK: ::c_int = 38; -pub const EDESTADDRREQ: ::c_int = 39; -pub const EMSGSIZE: ::c_int = 40; -pub const EPROTOTYPE: ::c_int = 41; -pub const ENOPROTOOPT: ::c_int = 42; -pub const EPROTONOSUPPORT: ::c_int = 43; -pub const ESOCKTNOSUPPORT: ::c_int = 44; -pub const EOPNOTSUPP: ::c_int = 45; -pub const EPFNOSUPPORT: ::c_int = 46; -pub const EAFNOSUPPORT: ::c_int = 47; -pub const EADDRINUSE: ::c_int = 48; -pub const EADDRNOTAVAIL: ::c_int = 49; -pub const ENETDOWN: ::c_int = 50; -pub const ENETUNREACH: ::c_int = 51; -pub const ENETRESET: ::c_int = 52; -pub const ECONNABORTED: ::c_int = 53; -pub const ECONNRESET: ::c_int = 54; -pub const ENOBUFS: ::c_int = 55; -pub const EISCONN: ::c_int = 56; -pub const ENOTCONN: ::c_int = 57; -pub const ESHUTDOWN: ::c_int = 58; -pub const ETOOMANYREFS: ::c_int = 59; -pub const ETIMEDOUT: ::c_int = 60; -pub const ECONNREFUSED: ::c_int = 61; -pub const EHOSTDOWN: ::c_int = 64; -pub const EHOSTUNREACH: ::c_int = 65; -pub const EALREADY: ::c_int = 37; -pub const EINPROGRESS: ::c_int = 36; -pub const ESTALE: ::c_int = 70; -pub const EDQUOT: ::c_int = 69; -pub const ENOMEDIUM: ::c_int = 125; -pub const EMEDIUMTYPE: ::c_int = 126; -pub const ECANCELED: ::c_int = 127; -pub const ENOKEY: ::c_int = 128; -pub const EKEYEXPIRED: ::c_int = 129; -pub const EKEYREVOKED: ::c_int = 130; -pub const EKEYREJECTED: ::c_int = 131; -pub const EOWNERDEAD: ::c_int = 132; -pub const ENOTRECOVERABLE: ::c_int = 133; -pub const EHWPOISON: ::c_int = 135; -pub const ERFKILL: ::c_int = 134; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const SA_ONSTACK: ::c_int = 1; -pub const SA_SIGINFO: ::c_int = 0x200; -pub const SA_NOCLDWAIT: ::c_int = 0x100; - -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 20; -pub const SIGBUS: ::c_int = 10; -pub const SIGUSR1: ::c_int = 30; -pub const SIGUSR2: ::c_int = 31; -pub const SIGCONT: ::c_int = 19; -pub const SIGSTOP: ::c_int = 17; -pub const SIGTSTP: ::c_int = 18; -pub const SIGURG: ::c_int = 16; -pub const SIGIO: ::c_int = 23; -pub const SIGSYS: ::c_int = 12; -pub const SIGPOLL: ::c_int = 23; -pub const SIGPWR: ::c_int = 29; -pub const SIG_SETMASK: ::c_int = 4; -pub const SIG_BLOCK: ::c_int = 1; -pub const SIG_UNBLOCK: ::c_int = 2; - -pub const POLLWRNORM: ::c_short = 4; -pub const POLLWRBAND: ::c_short = 0x100; - -pub const O_ASYNC: ::c_int = 0x40; -pub const O_NDELAY: ::c_int = 0x4004; - -pub const PTRACE_DETACH: ::c_uint = 17; - -pub const EFD_NONBLOCK: ::c_int = 0x4000; - -pub const F_GETLK: ::c_int = 7; -pub const F_GETOWN: ::c_int = 5; -pub const F_SETOWN: ::c_int = 6; -pub const F_SETLK: ::c_int = 8; -pub const F_SETLKW: ::c_int = 9; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const F_RDLCK: ::c_int = 1; -pub const F_WRLCK: ::c_int = 2; -pub const F_UNLCK: ::c_int = 3; - -pub const SFD_NONBLOCK: ::c_int = 0x4000; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -pub const SFD_CLOEXEC: ::c_int = 0x400000; +pub const O_APPEND: c_int = 0x8; +pub const O_CREAT: c_int = 0x200; +pub const O_EXCL: c_int = 0x800; +pub const O_NOCTTY: c_int = 0x8000; +pub const O_NONBLOCK: c_int = 0x4000; +pub const O_SYNC: c_int = 0x802000; +pub const O_RSYNC: c_int = 0x802000; +pub const O_DSYNC: c_int = 0x2000; +pub const O_FSYNC: c_int = 0x802000; +pub const O_NOATIME: c_int = 0x200000; +pub const O_PATH: c_int = 0x1000000; +pub const O_TMPFILE: c_int = 0x2000000 | O_DIRECTORY; + +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MAP_GROWSDOWN: c_int = 0x0200; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_ANONYMOUS: c_int = 0x0020; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_SYNC: c_int = 0x080000; + +pub const EDEADLK: c_int = 78; +pub const ENAMETOOLONG: c_int = 63; +pub const ENOLCK: c_int = 79; +pub const ENOSYS: c_int = 90; +pub const ENOTEMPTY: c_int = 66; +pub const ELOOP: c_int = 62; +pub const ENOMSG: c_int = 75; +pub const EIDRM: c_int = 77; +pub const ECHRNG: c_int = 94; +pub const EL2NSYNC: c_int = 95; +pub const EL3HLT: c_int = 96; +pub const EL3RST: c_int = 97; +pub const ELNRNG: c_int = 98; +pub const EUNATCH: c_int = 99; +pub const ENOCSI: c_int = 100; +pub const EL2HLT: c_int = 101; +pub const EBADE: c_int = 102; +pub const EBADR: c_int = 103; +pub const EXFULL: c_int = 104; +pub const ENOANO: c_int = 105; +pub const EBADRQC: c_int = 106; +pub const EBADSLT: c_int = 107; +pub const EMULTIHOP: c_int = 87; +pub const EOVERFLOW: c_int = 92; +pub const ENOTUNIQ: c_int = 115; +pub const EBADFD: c_int = 93; +pub const EBADMSG: c_int = 76; +pub const EREMCHG: c_int = 89; +pub const ELIBACC: c_int = 114; +pub const ELIBBAD: c_int = 112; +pub const ELIBSCN: c_int = 124; +pub const ELIBMAX: c_int = 123; +pub const ELIBEXEC: c_int = 110; +pub const EILSEQ: c_int = 122; +pub const ERESTART: c_int = 116; +pub const ESTRPIPE: c_int = 91; +pub const EUSERS: c_int = 68; +pub const ENOTSOCK: c_int = 38; +pub const EDESTADDRREQ: c_int = 39; +pub const EMSGSIZE: c_int = 40; +pub const EPROTOTYPE: c_int = 41; +pub const ENOPROTOOPT: c_int = 42; +pub const EPROTONOSUPPORT: c_int = 43; +pub const ESOCKTNOSUPPORT: c_int = 44; +pub const EOPNOTSUPP: c_int = 45; +pub const EPFNOSUPPORT: c_int = 46; +pub const EAFNOSUPPORT: c_int = 47; +pub const EADDRINUSE: c_int = 48; +pub const EADDRNOTAVAIL: c_int = 49; +pub const ENETDOWN: c_int = 50; +pub const ENETUNREACH: c_int = 51; +pub const ENETRESET: c_int = 52; +pub const ECONNABORTED: c_int = 53; +pub const ECONNRESET: c_int = 54; +pub const ENOBUFS: c_int = 55; +pub const EISCONN: c_int = 56; +pub const ENOTCONN: c_int = 57; +pub const ESHUTDOWN: c_int = 58; +pub const ETOOMANYREFS: c_int = 59; +pub const ETIMEDOUT: c_int = 60; +pub const ECONNREFUSED: c_int = 61; +pub const EHOSTDOWN: c_int = 64; +pub const EHOSTUNREACH: c_int = 65; +pub const EALREADY: c_int = 37; +pub const EINPROGRESS: c_int = 36; +pub const ESTALE: c_int = 70; +pub const EDQUOT: c_int = 69; +pub const ENOMEDIUM: c_int = 125; +pub const EMEDIUMTYPE: c_int = 126; +pub const ECANCELED: c_int = 127; +pub const ENOKEY: c_int = 128; +pub const EKEYEXPIRED: c_int = 129; +pub const EKEYREVOKED: c_int = 130; +pub const EKEYREJECTED: c_int = 131; +pub const EOWNERDEAD: c_int = 132; +pub const ENOTRECOVERABLE: c_int = 133; +pub const EHWPOISON: c_int = 135; +pub const ERFKILL: c_int = 134; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; + +pub const SA_ONSTACK: c_int = 1; +pub const SA_SIGINFO: c_int = 0x200; +pub const SA_NOCLDWAIT: c_int = 0x100; + +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGCHLD: c_int = 20; +pub const SIGBUS: c_int = 10; +pub const SIGUSR1: c_int = 30; +pub const SIGUSR2: c_int = 31; +pub const SIGCONT: c_int = 19; +pub const SIGSTOP: c_int = 17; +pub const SIGTSTP: c_int = 18; +pub const SIGURG: c_int = 16; +pub const SIGIO: c_int = 23; +pub const SIGSYS: c_int = 12; +pub const SIGPOLL: c_int = 23; +pub const SIGPWR: c_int = 29; +pub const SIG_SETMASK: c_int = 4; +pub const SIG_BLOCK: c_int = 1; +pub const SIG_UNBLOCK: c_int = 2; + +pub const POLLWRNORM: c_short = 4; +pub const POLLWRBAND: c_short = 0x100; + +pub const O_ASYNC: c_int = 0x40; +pub const O_NDELAY: c_int = 0x4004; + +pub const PTRACE_DETACH: c_uint = 17; + +pub const EFD_NONBLOCK: c_int = 0x4000; + +pub const F_GETLK: c_int = 7; +pub const F_GETOWN: c_int = 5; +pub const F_SETOWN: c_int = 6; +pub const F_SETLK: c_int = 8; +pub const F_SETLKW: c_int = 9; +pub const F_OFD_GETLK: c_int = 36; +pub const F_OFD_SETLK: c_int = 37; +pub const F_OFD_SETLKW: c_int = 38; + +pub const F_RDLCK: c_int = 1; +pub const F_WRLCK: c_int = 2; +pub const F_UNLCK: c_int = 3; + +pub const SFD_NONBLOCK: c_int = 0x4000; + +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; + +pub const SFD_CLOEXEC: c_int = 0x400000; pub const NCCS: usize = 17; -pub const O_TRUNC: ::c_int = 0x400; - -pub const O_CLOEXEC: ::c_int = 0x400000; - -pub const EBFONT: ::c_int = 109; -pub const ENOSTR: ::c_int = 72; -pub const ENODATA: ::c_int = 111; -pub const ETIME: ::c_int = 73; -pub const ENOSR: ::c_int = 74; -pub const ENONET: ::c_int = 80; -pub const ENOPKG: ::c_int = 113; -pub const EREMOTE: ::c_int = 71; -pub const ENOLINK: ::c_int = 82; -pub const EADV: ::c_int = 83; -pub const ESRMNT: ::c_int = 84; -pub const ECOMM: ::c_int = 85; -pub const EPROTO: ::c_int = 86; -pub const EDOTDOT: ::c_int = 88; - -pub const SA_NODEFER: ::c_int = 0x20; -pub const SA_RESETHAND: ::c_int = 0x4; -pub const SA_RESTART: ::c_int = 0x2; -pub const SA_NOCLDSTOP: ::c_int = 0x00000008; - -pub const EPOLL_CLOEXEC: ::c_int = 0x400000; - -pub const EFD_CLOEXEC: ::c_int = 0x400000; +pub const O_TRUNC: c_int = 0x400; + +pub const O_CLOEXEC: c_int = 0x400000; + +pub const EBFONT: c_int = 109; +pub const ENOSTR: c_int = 72; +pub const ENODATA: c_int = 111; +pub const ETIME: c_int = 73; +pub const ENOSR: c_int = 74; +pub const ENONET: c_int = 80; +pub const ENOPKG: c_int = 113; +pub const EREMOTE: c_int = 71; +pub const ENOLINK: c_int = 82; +pub const EADV: c_int = 83; +pub const ESRMNT: c_int = 84; +pub const ECOMM: c_int = 85; +pub const EPROTO: c_int = 86; +pub const EDOTDOT: c_int = 88; + +pub const SA_NODEFER: c_int = 0x20; +pub const SA_RESETHAND: c_int = 0x4; +pub const SA_RESTART: c_int = 0x2; +pub const SA_NOCLDSTOP: c_int = 0x00000008; + +pub const EPOLL_CLOEXEC: c_int = 0x400000; + +pub const EFD_CLOEXEC: c_int = 0x400000; pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; -pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; -pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; -pub const O_DIRECTORY: ::c_int = 0o200000; -pub const O_NOFOLLOW: ::c_int = 0o400000; -pub const O_DIRECT: ::c_int = 0x100000; - -pub const MAP_LOCKED: ::c_int = 0x0100; -pub const MAP_NORESERVE: ::c_int = 0x00040; - -pub const EDEADLOCK: ::c_int = 108; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; - -pub const MCL_CURRENT: ::c_int = 0x2000; -pub const MCL_FUTURE: ::c_int = 0x4000; -pub const MCL_ONFAULT: ::c_int = 0x8000; - -pub const SIGSTKSZ: ::size_t = 16384; -pub const MINSIGSTKSZ: ::size_t = 4096; -pub const CBAUD: ::tcflag_t = 0x0000100f; -pub const TAB1: ::tcflag_t = 0x800; -pub const TAB2: ::tcflag_t = 0x1000; -pub const TAB3: ::tcflag_t = 0x1800; -pub const CR1: ::tcflag_t = 0x200; -pub const CR2: ::tcflag_t = 0x400; -pub const CR3: ::tcflag_t = 0x600; -pub const FF1: ::tcflag_t = 0x8000; -pub const BS1: ::tcflag_t = 0x2000; -pub const VT1: ::tcflag_t = 0x4000; +pub const O_DIRECTORY: c_int = 0o200000; +pub const O_NOFOLLOW: c_int = 0o400000; +pub const O_DIRECT: c_int = 0x100000; + +pub const MAP_LOCKED: c_int = 0x0100; +pub const MAP_NORESERVE: c_int = 0x00040; + +pub const EDEADLOCK: c_int = 108; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; + +pub const MCL_CURRENT: c_int = 0x2000; +pub const MCL_FUTURE: c_int = 0x4000; +pub const MCL_ONFAULT: c_int = 0x8000; + +pub const SIGSTKSZ: size_t = 16384; +pub const MINSIGSTKSZ: size_t = 4096; +pub const CBAUD: crate::tcflag_t = 0x0000100f; +pub const TAB1: crate::tcflag_t = 0x800; +pub const TAB2: crate::tcflag_t = 0x1000; +pub const TAB3: crate::tcflag_t = 0x1800; +pub const CR1: crate::tcflag_t = 0x200; +pub const CR2: crate::tcflag_t = 0x400; +pub const CR3: crate::tcflag_t = 0x600; +pub const FF1: crate::tcflag_t = 0x8000; +pub const BS1: crate::tcflag_t = 0x2000; +pub const VT1: crate::tcflag_t = 0x4000; pub const VWERASE: usize = 0xe; pub const VREPRINT: usize = 0xc; pub const VSUSP: usize = 0xa; @@ -468,460 +471,460 @@ pub const VSTART: usize = 0x8; pub const VSTOP: usize = 0x9; pub const VDISCARD: usize = 0xd; pub const VTIME: usize = 0x5; -pub const IXON: ::tcflag_t = 0x400; -pub const IXOFF: ::tcflag_t = 0x1000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x30; -pub const CS6: ::tcflag_t = 0x10; -pub const CS7: ::tcflag_t = 0x20; -pub const CS8: ::tcflag_t = 0x30; -pub const CSTOPB: ::tcflag_t = 0x40; -pub const CREAD: ::tcflag_t = 0x80; -pub const PARENB: ::tcflag_t = 0x100; -pub const PARODD: ::tcflag_t = 0x200; -pub const HUPCL: ::tcflag_t = 0x400; -pub const CLOCAL: ::tcflag_t = 0x800; -pub const ECHOKE: ::tcflag_t = 0x800; -pub const ECHOE: ::tcflag_t = 0x10; -pub const ECHOK: ::tcflag_t = 0x20; -pub const ECHONL: ::tcflag_t = 0x40; -pub const ECHOPRT: ::tcflag_t = 0x400; -pub const ECHOCTL: ::tcflag_t = 0x200; -pub const ISIG: ::tcflag_t = 0x1; -pub const ICANON: ::tcflag_t = 0x2; -pub const PENDIN: ::tcflag_t = 0x4000; -pub const NOFLSH: ::tcflag_t = 0x80; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0x00001000; +pub const IXON: crate::tcflag_t = 0x400; +pub const IXOFF: crate::tcflag_t = 0x1000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x30; +pub const CS6: crate::tcflag_t = 0x10; +pub const CS7: crate::tcflag_t = 0x20; +pub const CS8: crate::tcflag_t = 0x30; +pub const CSTOPB: crate::tcflag_t = 0x40; +pub const CREAD: crate::tcflag_t = 0x80; +pub const PARENB: crate::tcflag_t = 0x100; +pub const PARODD: crate::tcflag_t = 0x200; +pub const HUPCL: crate::tcflag_t = 0x400; +pub const CLOCAL: crate::tcflag_t = 0x800; +pub const ECHOKE: crate::tcflag_t = 0x800; +pub const ECHOE: crate::tcflag_t = 0x10; +pub const ECHOK: crate::tcflag_t = 0x20; +pub const ECHONL: crate::tcflag_t = 0x40; +pub const ECHOPRT: crate::tcflag_t = 0x400; +pub const ECHOCTL: crate::tcflag_t = 0x200; +pub const ISIG: crate::tcflag_t = 0x1; +pub const ICANON: crate::tcflag_t = 0x2; +pub const PENDIN: crate::tcflag_t = 0x4000; +pub const NOFLSH: crate::tcflag_t = 0x80; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0x00001000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0x1001; -pub const B115200: ::speed_t = 0x1002; -pub const B230400: ::speed_t = 0x1003; -pub const B460800: ::speed_t = 0x1004; -pub const B76800: ::speed_t = 0x1005; -pub const B153600: ::speed_t = 0x1006; -pub const B307200: ::speed_t = 0x1007; -pub const B614400: ::speed_t = 0x1008; -pub const B921600: ::speed_t = 0x1009; -pub const B500000: ::speed_t = 0x100a; -pub const B576000: ::speed_t = 0x100b; -pub const B1000000: ::speed_t = 0x100c; -pub const B1152000: ::speed_t = 0x100d; -pub const B1500000: ::speed_t = 0x100e; -pub const B2000000: ::speed_t = 0x100f; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; + +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const B57600: crate::speed_t = 0x1001; +pub const B115200: crate::speed_t = 0x1002; +pub const B230400: crate::speed_t = 0x1003; +pub const B460800: crate::speed_t = 0x1004; +pub const B76800: crate::speed_t = 0x1005; +pub const B153600: crate::speed_t = 0x1006; +pub const B307200: crate::speed_t = 0x1007; +pub const B614400: crate::speed_t = 0x1008; +pub const B921600: crate::speed_t = 0x1009; +pub const B500000: crate::speed_t = 0x100a; +pub const B576000: crate::speed_t = 0x100b; +pub const B1000000: crate::speed_t = 0x100c; +pub const B1152000: crate::speed_t = 0x100d; +pub const B1500000: crate::speed_t = 0x100e; +pub const B2000000: crate::speed_t = 0x100f; pub const VEOL: usize = 5; pub const VEOL2: usize = 6; pub const VMIN: usize = 4; -pub const IEXTEN: ::tcflag_t = 0x8000; -pub const TOSTOP: ::tcflag_t = 0x100; -pub const FLUSHO: ::tcflag_t = 0x1000; -pub const EXTPROC: ::tcflag_t = 0x10000; - -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_wait4: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execv: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_chown: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_brk: ::c_long = 17; -pub const SYS_perfctr: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_capget: ::c_long = 21; -pub const SYS_capset: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_vmsplice: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_sigaltstack: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_stat: ::c_long = 38; -pub const SYS_sendfile: ::c_long = 39; -pub const SYS_lstat: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_umount2: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_memory_ordering: ::c_long = 52; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_reboot: ::c_long = 55; -pub const SYS_symlink: ::c_long = 57; -pub const SYS_readlink: ::c_long = 58; -pub const SYS_execve: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_fstat: ::c_long = 62; -pub const SYS_fstat64: ::c_long = 63; -pub const SYS_getpagesize: ::c_long = 64; -pub const SYS_msync: ::c_long = 65; -pub const SYS_vfork: ::c_long = 66; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_mmap: ::c_long = 71; -pub const SYS_munmap: ::c_long = 73; -pub const SYS_mprotect: ::c_long = 74; -pub const SYS_madvise: ::c_long = 75; -pub const SYS_vhangup: ::c_long = 76; -pub const SYS_mincore: ::c_long = 78; -pub const SYS_getgroups: ::c_long = 79; -pub const SYS_setgroups: ::c_long = 80; -pub const SYS_getpgrp: ::c_long = 81; -pub const SYS_setitimer: ::c_long = 83; -pub const SYS_swapon: ::c_long = 85; -pub const SYS_getitimer: ::c_long = 86; -pub const SYS_sethostname: ::c_long = 88; -pub const SYS_dup2: ::c_long = 90; -pub const SYS_fcntl: ::c_long = 92; -pub const SYS_select: ::c_long = 93; -pub const SYS_fsync: ::c_long = 95; -pub const SYS_setpriority: ::c_long = 96; -pub const SYS_socket: ::c_long = 97; -pub const SYS_connect: ::c_long = 98; -pub const SYS_accept: ::c_long = 99; -pub const SYS_getpriority: ::c_long = 100; -pub const SYS_rt_sigreturn: ::c_long = 101; -pub const SYS_rt_sigaction: ::c_long = 102; -pub const SYS_rt_sigprocmask: ::c_long = 103; -pub const SYS_rt_sigpending: ::c_long = 104; -pub const SYS_rt_sigtimedwait: ::c_long = 105; -pub const SYS_rt_sigqueueinfo: ::c_long = 106; -pub const SYS_rt_sigsuspend: ::c_long = 107; -pub const SYS_setresuid: ::c_long = 108; -pub const SYS_getresuid: ::c_long = 109; -pub const SYS_setresgid: ::c_long = 110; -pub const SYS_getresgid: ::c_long = 111; -pub const SYS_recvmsg: ::c_long = 113; -pub const SYS_sendmsg: ::c_long = 114; -pub const SYS_gettimeofday: ::c_long = 116; -pub const SYS_getrusage: ::c_long = 117; -pub const SYS_getsockopt: ::c_long = 118; -pub const SYS_getcwd: ::c_long = 119; -pub const SYS_readv: ::c_long = 120; -pub const SYS_writev: ::c_long = 121; -pub const SYS_settimeofday: ::c_long = 122; -pub const SYS_fchown: ::c_long = 123; -pub const SYS_fchmod: ::c_long = 124; -pub const SYS_recvfrom: ::c_long = 125; -pub const SYS_setreuid: ::c_long = 126; -pub const SYS_setregid: ::c_long = 127; -pub const SYS_rename: ::c_long = 128; -pub const SYS_truncate: ::c_long = 129; -pub const SYS_ftruncate: ::c_long = 130; -pub const SYS_flock: ::c_long = 131; -pub const SYS_lstat64: ::c_long = 132; -pub const SYS_sendto: ::c_long = 133; -pub const SYS_shutdown: ::c_long = 134; -pub const SYS_socketpair: ::c_long = 135; -pub const SYS_mkdir: ::c_long = 136; -pub const SYS_rmdir: ::c_long = 137; -pub const SYS_utimes: ::c_long = 138; -pub const SYS_stat64: ::c_long = 139; -pub const SYS_sendfile64: ::c_long = 140; -pub const SYS_getpeername: ::c_long = 141; -pub const SYS_futex: ::c_long = 142; -pub const SYS_gettid: ::c_long = 143; -pub const SYS_getrlimit: ::c_long = 144; -pub const SYS_setrlimit: ::c_long = 145; -pub const SYS_pivot_root: ::c_long = 146; -pub const SYS_prctl: ::c_long = 147; -pub const SYS_pciconfig_read: ::c_long = 148; -pub const SYS_pciconfig_write: ::c_long = 149; -pub const SYS_getsockname: ::c_long = 150; -pub const SYS_inotify_init: ::c_long = 151; -pub const SYS_inotify_add_watch: ::c_long = 152; -pub const SYS_poll: ::c_long = 153; -pub const SYS_getdents64: ::c_long = 154; -pub const SYS_inotify_rm_watch: ::c_long = 156; -pub const SYS_statfs: ::c_long = 157; -pub const SYS_fstatfs: ::c_long = 158; -pub const SYS_umount: ::c_long = 159; -pub const SYS_sched_set_affinity: ::c_long = 160; -pub const SYS_sched_get_affinity: ::c_long = 161; -pub const SYS_getdomainname: ::c_long = 162; -pub const SYS_setdomainname: ::c_long = 163; -pub const SYS_utrap_install: ::c_long = 164; -pub const SYS_quotactl: ::c_long = 165; -pub const SYS_set_tid_address: ::c_long = 166; -pub const SYS_mount: ::c_long = 167; -pub const SYS_ustat: ::c_long = 168; -pub const SYS_setxattr: ::c_long = 169; -pub const SYS_lsetxattr: ::c_long = 170; -pub const SYS_fsetxattr: ::c_long = 171; -pub const SYS_getxattr: ::c_long = 172; -pub const SYS_lgetxattr: ::c_long = 173; -pub const SYS_getdents: ::c_long = 174; -pub const SYS_setsid: ::c_long = 175; -pub const SYS_fchdir: ::c_long = 176; -pub const SYS_fgetxattr: ::c_long = 177; -pub const SYS_listxattr: ::c_long = 178; -pub const SYS_llistxattr: ::c_long = 179; -pub const SYS_flistxattr: ::c_long = 180; -pub const SYS_removexattr: ::c_long = 181; -pub const SYS_lremovexattr: ::c_long = 182; -pub const SYS_sigpending: ::c_long = 183; -pub const SYS_query_module: ::c_long = 184; -pub const SYS_setpgid: ::c_long = 185; -pub const SYS_fremovexattr: ::c_long = 186; -pub const SYS_tkill: ::c_long = 187; -pub const SYS_exit_group: ::c_long = 188; -pub const SYS_uname: ::c_long = 189; -pub const SYS_init_module: ::c_long = 190; -pub const SYS_personality: ::c_long = 191; -pub const SYS_remap_file_pages: ::c_long = 192; -pub const SYS_epoll_create: ::c_long = 193; -pub const SYS_epoll_ctl: ::c_long = 194; -pub const SYS_epoll_wait: ::c_long = 195; -pub const SYS_ioprio_set: ::c_long = 196; -pub const SYS_getppid: ::c_long = 197; -pub const SYS_sigaction: ::c_long = 198; -pub const SYS_sgetmask: ::c_long = 199; -pub const SYS_ssetmask: ::c_long = 200; -pub const SYS_sigsuspend: ::c_long = 201; -pub const SYS_oldlstat: ::c_long = 202; -pub const SYS_uselib: ::c_long = 203; -pub const SYS_readdir: ::c_long = 204; -pub const SYS_readahead: ::c_long = 205; -pub const SYS_socketcall: ::c_long = 206; -pub const SYS_syslog: ::c_long = 207; -pub const SYS_lookup_dcookie: ::c_long = 208; -pub const SYS_fadvise64: ::c_long = 209; -pub const SYS_fadvise64_64: ::c_long = 210; -pub const SYS_tgkill: ::c_long = 211; -pub const SYS_waitpid: ::c_long = 212; -pub const SYS_swapoff: ::c_long = 213; -pub const SYS_sysinfo: ::c_long = 214; -pub const SYS_ipc: ::c_long = 215; -pub const SYS_sigreturn: ::c_long = 216; -pub const SYS_clone: ::c_long = 217; -pub const SYS_ioprio_get: ::c_long = 218; -pub const SYS_adjtimex: ::c_long = 219; -pub const SYS_sigprocmask: ::c_long = 220; -pub const SYS_create_module: ::c_long = 221; -pub const SYS_delete_module: ::c_long = 222; -pub const SYS_get_kernel_syms: ::c_long = 223; -pub const SYS_getpgid: ::c_long = 224; -pub const SYS_bdflush: ::c_long = 225; -pub const SYS_sysfs: ::c_long = 226; -pub const SYS_afs_syscall: ::c_long = 227; -pub const SYS_setfsuid: ::c_long = 228; -pub const SYS_setfsgid: ::c_long = 229; -pub const SYS__newselect: ::c_long = 230; -pub const SYS_splice: ::c_long = 232; -pub const SYS_stime: ::c_long = 233; -pub const SYS_statfs64: ::c_long = 234; -pub const SYS_fstatfs64: ::c_long = 235; -pub const SYS__llseek: ::c_long = 236; -pub const SYS_mlock: ::c_long = 237; -pub const SYS_munlock: ::c_long = 238; -pub const SYS_mlockall: ::c_long = 239; -pub const SYS_munlockall: ::c_long = 240; -pub const SYS_sched_setparam: ::c_long = 241; -pub const SYS_sched_getparam: ::c_long = 242; -pub const SYS_sched_setscheduler: ::c_long = 243; -pub const SYS_sched_getscheduler: ::c_long = 244; -pub const SYS_sched_yield: ::c_long = 245; -pub const SYS_sched_get_priority_max: ::c_long = 246; -pub const SYS_sched_get_priority_min: ::c_long = 247; -pub const SYS_sched_rr_get_interval: ::c_long = 248; -pub const SYS_nanosleep: ::c_long = 249; -pub const SYS_mremap: ::c_long = 250; -pub const SYS__sysctl: ::c_long = 251; -pub const SYS_getsid: ::c_long = 252; -pub const SYS_fdatasync: ::c_long = 253; -pub const SYS_nfsservctl: ::c_long = 254; -pub const SYS_sync_file_range: ::c_long = 255; -pub const SYS_clock_settime: ::c_long = 256; -pub const SYS_clock_gettime: ::c_long = 257; -pub const SYS_clock_getres: ::c_long = 258; -pub const SYS_clock_nanosleep: ::c_long = 259; -pub const SYS_sched_getaffinity: ::c_long = 260; -pub const SYS_sched_setaffinity: ::c_long = 261; -pub const SYS_timer_settime: ::c_long = 262; -pub const SYS_timer_gettime: ::c_long = 263; -pub const SYS_timer_getoverrun: ::c_long = 264; -pub const SYS_timer_delete: ::c_long = 265; -pub const SYS_timer_create: ::c_long = 266; -pub const SYS_io_setup: ::c_long = 268; -pub const SYS_io_destroy: ::c_long = 269; -pub const SYS_io_submit: ::c_long = 270; -pub const SYS_io_cancel: ::c_long = 271; -pub const SYS_io_getevents: ::c_long = 272; -pub const SYS_mq_open: ::c_long = 273; -pub const SYS_mq_unlink: ::c_long = 274; -pub const SYS_mq_timedsend: ::c_long = 275; -pub const SYS_mq_timedreceive: ::c_long = 276; -pub const SYS_mq_notify: ::c_long = 277; -pub const SYS_mq_getsetattr: ::c_long = 278; -pub const SYS_waitid: ::c_long = 279; -pub const SYS_tee: ::c_long = 280; -pub const SYS_add_key: ::c_long = 281; -pub const SYS_request_key: ::c_long = 282; -pub const SYS_keyctl: ::c_long = 283; -pub const SYS_openat: ::c_long = 284; -pub const SYS_mkdirat: ::c_long = 285; -pub const SYS_mknodat: ::c_long = 286; -pub const SYS_fchownat: ::c_long = 287; -pub const SYS_futimesat: ::c_long = 288; -pub const SYS_fstatat64: ::c_long = 289; -pub const SYS_unlinkat: ::c_long = 290; -pub const SYS_renameat: ::c_long = 291; -pub const SYS_linkat: ::c_long = 292; -pub const SYS_symlinkat: ::c_long = 293; -pub const SYS_readlinkat: ::c_long = 294; -pub const SYS_fchmodat: ::c_long = 295; -pub const SYS_faccessat: ::c_long = 296; -pub const SYS_pselect6: ::c_long = 297; -pub const SYS_ppoll: ::c_long = 298; -pub const SYS_unshare: ::c_long = 299; -pub const SYS_set_robust_list: ::c_long = 300; -pub const SYS_get_robust_list: ::c_long = 301; -pub const SYS_migrate_pages: ::c_long = 302; -pub const SYS_mbind: ::c_long = 303; -pub const SYS_get_mempolicy: ::c_long = 304; -pub const SYS_set_mempolicy: ::c_long = 305; -pub const SYS_kexec_load: ::c_long = 306; -pub const SYS_move_pages: ::c_long = 307; -pub const SYS_getcpu: ::c_long = 308; -pub const SYS_epoll_pwait: ::c_long = 309; -pub const SYS_utimensat: ::c_long = 310; -pub const SYS_signalfd: ::c_long = 311; -pub const SYS_timerfd_create: ::c_long = 312; -pub const SYS_eventfd: ::c_long = 313; -pub const SYS_fallocate: ::c_long = 314; -pub const SYS_timerfd_settime: ::c_long = 315; -pub const SYS_timerfd_gettime: ::c_long = 316; -pub const SYS_signalfd4: ::c_long = 317; -pub const SYS_eventfd2: ::c_long = 318; -pub const SYS_epoll_create1: ::c_long = 319; -pub const SYS_dup3: ::c_long = 320; -pub const SYS_pipe2: ::c_long = 321; -pub const SYS_inotify_init1: ::c_long = 322; -pub const SYS_accept4: ::c_long = 323; -pub const SYS_preadv: ::c_long = 324; -pub const SYS_pwritev: ::c_long = 325; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 326; -pub const SYS_perf_event_open: ::c_long = 327; -pub const SYS_recvmmsg: ::c_long = 328; -pub const SYS_fanotify_init: ::c_long = 329; -pub const SYS_fanotify_mark: ::c_long = 330; -pub const SYS_prlimit64: ::c_long = 331; -pub const SYS_name_to_handle_at: ::c_long = 332; -pub const SYS_open_by_handle_at: ::c_long = 333; -pub const SYS_clock_adjtime: ::c_long = 334; -pub const SYS_syncfs: ::c_long = 335; -pub const SYS_sendmmsg: ::c_long = 336; -pub const SYS_setns: ::c_long = 337; -pub const SYS_process_vm_readv: ::c_long = 338; -pub const SYS_process_vm_writev: ::c_long = 339; -pub const SYS_kern_features: ::c_long = 340; -pub const SYS_kcmp: ::c_long = 341; -pub const SYS_finit_module: ::c_long = 342; -pub const SYS_sched_setattr: ::c_long = 343; -pub const SYS_sched_getattr: ::c_long = 344; -pub const SYS_renameat2: ::c_long = 345; -pub const SYS_seccomp: ::c_long = 346; -pub const SYS_getrandom: ::c_long = 347; -pub const SYS_memfd_create: ::c_long = 348; -pub const SYS_bpf: ::c_long = 349; -pub const SYS_execveat: ::c_long = 350; -pub const SYS_membarrier: ::c_long = 351; -pub const SYS_userfaultfd: ::c_long = 352; -pub const SYS_bind: ::c_long = 353; -pub const SYS_listen: ::c_long = 354; -pub const SYS_setsockopt: ::c_long = 355; -pub const SYS_mlock2: ::c_long = 356; -pub const SYS_copy_file_range: ::c_long = 357; -pub const SYS_preadv2: ::c_long = 358; -pub const SYS_pwritev2: ::c_long = 359; -pub const SYS_statx: ::c_long = 360; -pub const SYS_rseq: ::c_long = 365; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; +pub const IEXTEN: crate::tcflag_t = 0x8000; +pub const TOSTOP: crate::tcflag_t = 0x100; +pub const FLUSHO: crate::tcflag_t = 0x1000; +pub const EXTPROC: crate::tcflag_t = 0x10000; + +pub const SYS_restart_syscall: c_long = 0; +pub const SYS_exit: c_long = 1; +pub const SYS_fork: c_long = 2; +pub const SYS_read: c_long = 3; +pub const SYS_write: c_long = 4; +pub const SYS_open: c_long = 5; +pub const SYS_close: c_long = 6; +pub const SYS_wait4: c_long = 7; +pub const SYS_creat: c_long = 8; +pub const SYS_link: c_long = 9; +pub const SYS_unlink: c_long = 10; +pub const SYS_execv: c_long = 11; +pub const SYS_chdir: c_long = 12; +pub const SYS_chown: c_long = 13; +pub const SYS_mknod: c_long = 14; +pub const SYS_chmod: c_long = 15; +pub const SYS_lchown: c_long = 16; +pub const SYS_brk: c_long = 17; +pub const SYS_perfctr: c_long = 18; +pub const SYS_lseek: c_long = 19; +pub const SYS_getpid: c_long = 20; +pub const SYS_capget: c_long = 21; +pub const SYS_capset: c_long = 22; +pub const SYS_setuid: c_long = 23; +pub const SYS_getuid: c_long = 24; +pub const SYS_vmsplice: c_long = 25; +pub const SYS_ptrace: c_long = 26; +pub const SYS_alarm: c_long = 27; +pub const SYS_sigaltstack: c_long = 28; +pub const SYS_pause: c_long = 29; +pub const SYS_utime: c_long = 30; +pub const SYS_access: c_long = 33; +pub const SYS_nice: c_long = 34; +pub const SYS_sync: c_long = 36; +pub const SYS_kill: c_long = 37; +pub const SYS_stat: c_long = 38; +pub const SYS_sendfile: c_long = 39; +pub const SYS_lstat: c_long = 40; +pub const SYS_dup: c_long = 41; +pub const SYS_pipe: c_long = 42; +pub const SYS_times: c_long = 43; +pub const SYS_umount2: c_long = 45; +pub const SYS_setgid: c_long = 46; +pub const SYS_getgid: c_long = 47; +pub const SYS_signal: c_long = 48; +pub const SYS_geteuid: c_long = 49; +pub const SYS_getegid: c_long = 50; +pub const SYS_acct: c_long = 51; +pub const SYS_memory_ordering: c_long = 52; +pub const SYS_ioctl: c_long = 54; +pub const SYS_reboot: c_long = 55; +pub const SYS_symlink: c_long = 57; +pub const SYS_readlink: c_long = 58; +pub const SYS_execve: c_long = 59; +pub const SYS_umask: c_long = 60; +pub const SYS_chroot: c_long = 61; +pub const SYS_fstat: c_long = 62; +pub const SYS_fstat64: c_long = 63; +pub const SYS_getpagesize: c_long = 64; +pub const SYS_msync: c_long = 65; +pub const SYS_vfork: c_long = 66; +pub const SYS_pread64: c_long = 67; +pub const SYS_pwrite64: c_long = 68; +pub const SYS_mmap: c_long = 71; +pub const SYS_munmap: c_long = 73; +pub const SYS_mprotect: c_long = 74; +pub const SYS_madvise: c_long = 75; +pub const SYS_vhangup: c_long = 76; +pub const SYS_mincore: c_long = 78; +pub const SYS_getgroups: c_long = 79; +pub const SYS_setgroups: c_long = 80; +pub const SYS_getpgrp: c_long = 81; +pub const SYS_setitimer: c_long = 83; +pub const SYS_swapon: c_long = 85; +pub const SYS_getitimer: c_long = 86; +pub const SYS_sethostname: c_long = 88; +pub const SYS_dup2: c_long = 90; +pub const SYS_fcntl: c_long = 92; +pub const SYS_select: c_long = 93; +pub const SYS_fsync: c_long = 95; +pub const SYS_setpriority: c_long = 96; +pub const SYS_socket: c_long = 97; +pub const SYS_connect: c_long = 98; +pub const SYS_accept: c_long = 99; +pub const SYS_getpriority: c_long = 100; +pub const SYS_rt_sigreturn: c_long = 101; +pub const SYS_rt_sigaction: c_long = 102; +pub const SYS_rt_sigprocmask: c_long = 103; +pub const SYS_rt_sigpending: c_long = 104; +pub const SYS_rt_sigtimedwait: c_long = 105; +pub const SYS_rt_sigqueueinfo: c_long = 106; +pub const SYS_rt_sigsuspend: c_long = 107; +pub const SYS_setresuid: c_long = 108; +pub const SYS_getresuid: c_long = 109; +pub const SYS_setresgid: c_long = 110; +pub const SYS_getresgid: c_long = 111; +pub const SYS_recvmsg: c_long = 113; +pub const SYS_sendmsg: c_long = 114; +pub const SYS_gettimeofday: c_long = 116; +pub const SYS_getrusage: c_long = 117; +pub const SYS_getsockopt: c_long = 118; +pub const SYS_getcwd: c_long = 119; +pub const SYS_readv: c_long = 120; +pub const SYS_writev: c_long = 121; +pub const SYS_settimeofday: c_long = 122; +pub const SYS_fchown: c_long = 123; +pub const SYS_fchmod: c_long = 124; +pub const SYS_recvfrom: c_long = 125; +pub const SYS_setreuid: c_long = 126; +pub const SYS_setregid: c_long = 127; +pub const SYS_rename: c_long = 128; +pub const SYS_truncate: c_long = 129; +pub const SYS_ftruncate: c_long = 130; +pub const SYS_flock: c_long = 131; +pub const SYS_lstat64: c_long = 132; +pub const SYS_sendto: c_long = 133; +pub const SYS_shutdown: c_long = 134; +pub const SYS_socketpair: c_long = 135; +pub const SYS_mkdir: c_long = 136; +pub const SYS_rmdir: c_long = 137; +pub const SYS_utimes: c_long = 138; +pub const SYS_stat64: c_long = 139; +pub const SYS_sendfile64: c_long = 140; +pub const SYS_getpeername: c_long = 141; +pub const SYS_futex: c_long = 142; +pub const SYS_gettid: c_long = 143; +pub const SYS_getrlimit: c_long = 144; +pub const SYS_setrlimit: c_long = 145; +pub const SYS_pivot_root: c_long = 146; +pub const SYS_prctl: c_long = 147; +pub const SYS_pciconfig_read: c_long = 148; +pub const SYS_pciconfig_write: c_long = 149; +pub const SYS_getsockname: c_long = 150; +pub const SYS_inotify_init: c_long = 151; +pub const SYS_inotify_add_watch: c_long = 152; +pub const SYS_poll: c_long = 153; +pub const SYS_getdents64: c_long = 154; +pub const SYS_inotify_rm_watch: c_long = 156; +pub const SYS_statfs: c_long = 157; +pub const SYS_fstatfs: c_long = 158; +pub const SYS_umount: c_long = 159; +pub const SYS_sched_set_affinity: c_long = 160; +pub const SYS_sched_get_affinity: c_long = 161; +pub const SYS_getdomainname: c_long = 162; +pub const SYS_setdomainname: c_long = 163; +pub const SYS_utrap_install: c_long = 164; +pub const SYS_quotactl: c_long = 165; +pub const SYS_set_tid_address: c_long = 166; +pub const SYS_mount: c_long = 167; +pub const SYS_ustat: c_long = 168; +pub const SYS_setxattr: c_long = 169; +pub const SYS_lsetxattr: c_long = 170; +pub const SYS_fsetxattr: c_long = 171; +pub const SYS_getxattr: c_long = 172; +pub const SYS_lgetxattr: c_long = 173; +pub const SYS_getdents: c_long = 174; +pub const SYS_setsid: c_long = 175; +pub const SYS_fchdir: c_long = 176; +pub const SYS_fgetxattr: c_long = 177; +pub const SYS_listxattr: c_long = 178; +pub const SYS_llistxattr: c_long = 179; +pub const SYS_flistxattr: c_long = 180; +pub const SYS_removexattr: c_long = 181; +pub const SYS_lremovexattr: c_long = 182; +pub const SYS_sigpending: c_long = 183; +pub const SYS_query_module: c_long = 184; +pub const SYS_setpgid: c_long = 185; +pub const SYS_fremovexattr: c_long = 186; +pub const SYS_tkill: c_long = 187; +pub const SYS_exit_group: c_long = 188; +pub const SYS_uname: c_long = 189; +pub const SYS_init_module: c_long = 190; +pub const SYS_personality: c_long = 191; +pub const SYS_remap_file_pages: c_long = 192; +pub const SYS_epoll_create: c_long = 193; +pub const SYS_epoll_ctl: c_long = 194; +pub const SYS_epoll_wait: c_long = 195; +pub const SYS_ioprio_set: c_long = 196; +pub const SYS_getppid: c_long = 197; +pub const SYS_sigaction: c_long = 198; +pub const SYS_sgetmask: c_long = 199; +pub const SYS_ssetmask: c_long = 200; +pub const SYS_sigsuspend: c_long = 201; +pub const SYS_oldlstat: c_long = 202; +pub const SYS_uselib: c_long = 203; +pub const SYS_readdir: c_long = 204; +pub const SYS_readahead: c_long = 205; +pub const SYS_socketcall: c_long = 206; +pub const SYS_syslog: c_long = 207; +pub const SYS_lookup_dcookie: c_long = 208; +pub const SYS_fadvise64: c_long = 209; +pub const SYS_fadvise64_64: c_long = 210; +pub const SYS_tgkill: c_long = 211; +pub const SYS_waitpid: c_long = 212; +pub const SYS_swapoff: c_long = 213; +pub const SYS_sysinfo: c_long = 214; +pub const SYS_ipc: c_long = 215; +pub const SYS_sigreturn: c_long = 216; +pub const SYS_clone: c_long = 217; +pub const SYS_ioprio_get: c_long = 218; +pub const SYS_adjtimex: c_long = 219; +pub const SYS_sigprocmask: c_long = 220; +pub const SYS_create_module: c_long = 221; +pub const SYS_delete_module: c_long = 222; +pub const SYS_get_kernel_syms: c_long = 223; +pub const SYS_getpgid: c_long = 224; +pub const SYS_bdflush: c_long = 225; +pub const SYS_sysfs: c_long = 226; +pub const SYS_afs_syscall: c_long = 227; +pub const SYS_setfsuid: c_long = 228; +pub const SYS_setfsgid: c_long = 229; +pub const SYS__newselect: c_long = 230; +pub const SYS_splice: c_long = 232; +pub const SYS_stime: c_long = 233; +pub const SYS_statfs64: c_long = 234; +pub const SYS_fstatfs64: c_long = 235; +pub const SYS__llseek: c_long = 236; +pub const SYS_mlock: c_long = 237; +pub const SYS_munlock: c_long = 238; +pub const SYS_mlockall: c_long = 239; +pub const SYS_munlockall: c_long = 240; +pub const SYS_sched_setparam: c_long = 241; +pub const SYS_sched_getparam: c_long = 242; +pub const SYS_sched_setscheduler: c_long = 243; +pub const SYS_sched_getscheduler: c_long = 244; +pub const SYS_sched_yield: c_long = 245; +pub const SYS_sched_get_priority_max: c_long = 246; +pub const SYS_sched_get_priority_min: c_long = 247; +pub const SYS_sched_rr_get_interval: c_long = 248; +pub const SYS_nanosleep: c_long = 249; +pub const SYS_mremap: c_long = 250; +pub const SYS__sysctl: c_long = 251; +pub const SYS_getsid: c_long = 252; +pub const SYS_fdatasync: c_long = 253; +pub const SYS_nfsservctl: c_long = 254; +pub const SYS_sync_file_range: c_long = 255; +pub const SYS_clock_settime: c_long = 256; +pub const SYS_clock_gettime: c_long = 257; +pub const SYS_clock_getres: c_long = 258; +pub const SYS_clock_nanosleep: c_long = 259; +pub const SYS_sched_getaffinity: c_long = 260; +pub const SYS_sched_setaffinity: c_long = 261; +pub const SYS_timer_settime: c_long = 262; +pub const SYS_timer_gettime: c_long = 263; +pub const SYS_timer_getoverrun: c_long = 264; +pub const SYS_timer_delete: c_long = 265; +pub const SYS_timer_create: c_long = 266; +pub const SYS_io_setup: c_long = 268; +pub const SYS_io_destroy: c_long = 269; +pub const SYS_io_submit: c_long = 270; +pub const SYS_io_cancel: c_long = 271; +pub const SYS_io_getevents: c_long = 272; +pub const SYS_mq_open: c_long = 273; +pub const SYS_mq_unlink: c_long = 274; +pub const SYS_mq_timedsend: c_long = 275; +pub const SYS_mq_timedreceive: c_long = 276; +pub const SYS_mq_notify: c_long = 277; +pub const SYS_mq_getsetattr: c_long = 278; +pub const SYS_waitid: c_long = 279; +pub const SYS_tee: c_long = 280; +pub const SYS_add_key: c_long = 281; +pub const SYS_request_key: c_long = 282; +pub const SYS_keyctl: c_long = 283; +pub const SYS_openat: c_long = 284; +pub const SYS_mkdirat: c_long = 285; +pub const SYS_mknodat: c_long = 286; +pub const SYS_fchownat: c_long = 287; +pub const SYS_futimesat: c_long = 288; +pub const SYS_fstatat64: c_long = 289; +pub const SYS_unlinkat: c_long = 290; +pub const SYS_renameat: c_long = 291; +pub const SYS_linkat: c_long = 292; +pub const SYS_symlinkat: c_long = 293; +pub const SYS_readlinkat: c_long = 294; +pub const SYS_fchmodat: c_long = 295; +pub const SYS_faccessat: c_long = 296; +pub const SYS_pselect6: c_long = 297; +pub const SYS_ppoll: c_long = 298; +pub const SYS_unshare: c_long = 299; +pub const SYS_set_robust_list: c_long = 300; +pub const SYS_get_robust_list: c_long = 301; +pub const SYS_migrate_pages: c_long = 302; +pub const SYS_mbind: c_long = 303; +pub const SYS_get_mempolicy: c_long = 304; +pub const SYS_set_mempolicy: c_long = 305; +pub const SYS_kexec_load: c_long = 306; +pub const SYS_move_pages: c_long = 307; +pub const SYS_getcpu: c_long = 308; +pub const SYS_epoll_pwait: c_long = 309; +pub const SYS_utimensat: c_long = 310; +pub const SYS_signalfd: c_long = 311; +pub const SYS_timerfd_create: c_long = 312; +pub const SYS_eventfd: c_long = 313; +pub const SYS_fallocate: c_long = 314; +pub const SYS_timerfd_settime: c_long = 315; +pub const SYS_timerfd_gettime: c_long = 316; +pub const SYS_signalfd4: c_long = 317; +pub const SYS_eventfd2: c_long = 318; +pub const SYS_epoll_create1: c_long = 319; +pub const SYS_dup3: c_long = 320; +pub const SYS_pipe2: c_long = 321; +pub const SYS_inotify_init1: c_long = 322; +pub const SYS_accept4: c_long = 323; +pub const SYS_preadv: c_long = 324; +pub const SYS_pwritev: c_long = 325; +pub const SYS_rt_tgsigqueueinfo: c_long = 326; +pub const SYS_perf_event_open: c_long = 327; +pub const SYS_recvmmsg: c_long = 328; +pub const SYS_fanotify_init: c_long = 329; +pub const SYS_fanotify_mark: c_long = 330; +pub const SYS_prlimit64: c_long = 331; +pub const SYS_name_to_handle_at: c_long = 332; +pub const SYS_open_by_handle_at: c_long = 333; +pub const SYS_clock_adjtime: c_long = 334; +pub const SYS_syncfs: c_long = 335; +pub const SYS_sendmmsg: c_long = 336; +pub const SYS_setns: c_long = 337; +pub const SYS_process_vm_readv: c_long = 338; +pub const SYS_process_vm_writev: c_long = 339; +pub const SYS_kern_features: c_long = 340; +pub const SYS_kcmp: c_long = 341; +pub const SYS_finit_module: c_long = 342; +pub const SYS_sched_setattr: c_long = 343; +pub const SYS_sched_getattr: c_long = 344; +pub const SYS_renameat2: c_long = 345; +pub const SYS_seccomp: c_long = 346; +pub const SYS_getrandom: c_long = 347; +pub const SYS_memfd_create: c_long = 348; +pub const SYS_bpf: c_long = 349; +pub const SYS_execveat: c_long = 350; +pub const SYS_membarrier: c_long = 351; +pub const SYS_userfaultfd: c_long = 352; +pub const SYS_bind: c_long = 353; +pub const SYS_listen: c_long = 354; +pub const SYS_setsockopt: c_long = 355; +pub const SYS_mlock2: c_long = 356; +pub const SYS_copy_file_range: c_long = 357; +pub const SYS_preadv2: c_long = 358; +pub const SYS_pwritev2: c_long = 359; +pub const SYS_statx: c_long = 360; +pub const SYS_rseq: c_long = 365; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; // Reserved in the kernel, but not actually implemented yet -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; extern "C" { pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; + name: *mut c_int, + namelen: c_int, + oldp: *mut c_void, + oldlenp: *mut size_t, + newp: *mut c_void, + newlen: size_t, + ) -> c_int; } diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index fc0caf77d3e47..98838accea1b8 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -1,60 +1,64 @@ //! x86_64-specific definitions for 64-bit linux-like values +use crate::{ + c_int, c_longlong, c_short, c_uint, c_ulonglong, c_ushort, c_void, off64_t, off_t, size_t, +}; + pub type c_char = i8; pub type wchar_t = i32; pub type nlink_t = u64; pub type blksize_t = i64; pub type greg_t = i64; pub type suseconds_t = i64; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; s! { pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, #[cfg(target_arch = "sparc64")] - __reserved0: ::c_int, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + __reserved0: c_int, + pub sa_flags: c_int, + pub sa_restorer: Option, } pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - 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_fsid: ::fsid_t, - - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - f_spare: [::__fsword_t; 5], + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, + + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + f_spare: [crate::__fsword_t; 5], } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off64_t, + pub l_len: off64_t, + pub l_pid: crate::pid_t, } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, #[doc(hidden)] #[deprecated( since = "0.2.54", @@ -62,86 +66,86 @@ s! { https://github.com/rust-lang/libc/pull/1316 if you're using \ this field" )] - pub _pad: [::c_int; 29], + pub _pad: [c_int; 29], _align: [u64; 0], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } 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_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + __pad0: c_int, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, pub st_atime_nsec: i64, - pub st_mtime: ::time_t, + pub st_mtime: crate::time_t, pub st_mtime_nsec: i64, - pub st_ctime: ::time_t, + pub st_ctime: crate::time_t, pub st_ctime_nsec: i64, __unused: [i64; 3], } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_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: ::blkcnt64_t, - pub st_atime: ::time_t, + pub st_dev: crate::dev_t, + pub st_ino: crate::ino64_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + __pad0: c_int, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atime: crate::time_t, pub st_atime_nsec: i64, - pub st_mtime: ::time_t, + pub st_mtime: crate::time_t, pub st_mtime_nsec: i64, - pub st_ctime: ::time_t, + pub st_ctime: crate::time_t, pub st_ctime_nsec: i64, __reserved: [i64; 3], } pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], + pub f_fsid: crate::fsid_t, + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + pub f_flags: crate::__fsword_t, + pub f_spare: [crate::__fsword_t; 4], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct pthread_attr_t { @@ -176,55 +180,55 @@ s! { } pub struct user_regs_struct { - pub r15: ::c_ulonglong, - pub r14: ::c_ulonglong, - pub r13: ::c_ulonglong, - pub r12: ::c_ulonglong, - pub rbp: ::c_ulonglong, - pub rbx: ::c_ulonglong, - pub r11: ::c_ulonglong, - pub r10: ::c_ulonglong, - pub r9: ::c_ulonglong, - pub r8: ::c_ulonglong, - pub rax: ::c_ulonglong, - pub rcx: ::c_ulonglong, - pub rdx: ::c_ulonglong, - pub rsi: ::c_ulonglong, - pub rdi: ::c_ulonglong, - pub orig_rax: ::c_ulonglong, - pub rip: ::c_ulonglong, - pub cs: ::c_ulonglong, - pub eflags: ::c_ulonglong, - pub rsp: ::c_ulonglong, - pub ss: ::c_ulonglong, - pub fs_base: ::c_ulonglong, - pub gs_base: ::c_ulonglong, - pub ds: ::c_ulonglong, - pub es: ::c_ulonglong, - pub fs: ::c_ulonglong, - pub gs: ::c_ulonglong, + pub r15: c_ulonglong, + pub r14: c_ulonglong, + pub r13: c_ulonglong, + pub r12: c_ulonglong, + pub rbp: c_ulonglong, + pub rbx: c_ulonglong, + pub r11: c_ulonglong, + pub r10: c_ulonglong, + pub r9: c_ulonglong, + pub r8: c_ulonglong, + pub rax: c_ulonglong, + pub rcx: c_ulonglong, + pub rdx: c_ulonglong, + pub rsi: c_ulonglong, + pub rdi: c_ulonglong, + pub orig_rax: c_ulonglong, + pub rip: c_ulonglong, + pub cs: c_ulonglong, + pub eflags: c_ulonglong, + pub rsp: c_ulonglong, + pub ss: c_ulonglong, + pub fs_base: c_ulonglong, + pub gs_base: c_ulonglong, + pub ds: c_ulonglong, + pub es: c_ulonglong, + pub fs: c_ulonglong, + pub gs: c_ulonglong, } pub struct user { pub regs: user_regs_struct, - pub u_fpvalid: ::c_int, + pub u_fpvalid: c_int, pub i387: user_fpregs_struct, - pub u_tsize: ::c_ulonglong, - pub u_dsize: ::c_ulonglong, - pub u_ssize: ::c_ulonglong, - pub start_code: ::c_ulonglong, - pub start_stack: ::c_ulonglong, - pub signal: ::c_longlong, - __reserved: ::c_int, + pub u_tsize: c_ulonglong, + pub u_dsize: c_ulonglong, + pub u_ssize: c_ulonglong, + pub start_code: c_ulonglong, + pub start_stack: c_ulonglong, + pub signal: c_longlong, + __reserved: c_int, #[cfg(target_pointer_width = "32")] __pad1: u32, pub u_ar0: *mut user_regs_struct, #[cfg(target_pointer_width = "32")] __pad2: u32, pub u_fpstate: *mut user_fpregs_struct, - pub magic: ::c_ulonglong, - pub u_comm: [::c_char; 32], - pub u_debugreg: [::c_ulonglong; 8], + pub magic: c_ulonglong, + pub u_comm: [c_char; 32], + pub u_debugreg: [c_ulonglong; 8], } pub struct mcontext_t { @@ -234,83 +238,83 @@ s! { } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: c_ushort, + __pad1: c_ushort, + pub __seq: c_ushort, + __pad2: c_ushort, __unused1: u64, __unused2: u64, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, __unused4: u64, __unused5: u64, } pub struct ptrace_rseq_configuration { - pub rseq_abi_pointer: ::__u64, - pub rseq_abi_size: ::__u32, - pub signature: ::__u32, - pub flags: ::__u32, - pub pad: ::__u32, + pub rseq_abi_pointer: crate::__u64, + pub rseq_abi_size: crate::__u32, + pub signature: crate::__u32, + pub flags: crate::__u32, + pub pad: crate::__u32, } #[repr(align(8))] pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, + pub flags: c_ulonglong, + pub pidfd: c_ulonglong, + pub child_tid: c_ulonglong, + pub parent_tid: c_ulonglong, + pub exit_signal: c_ulonglong, + pub stack: c_ulonglong, + pub stack_size: c_ulonglong, + pub tls: c_ulonglong, + pub set_tid: c_ulonglong, + pub set_tid_size: c_ulonglong, + pub cgroup: c_ulonglong, } } s_no_extra_traits! { pub struct user_fpregs_struct { - pub cwd: ::c_ushort, - pub swd: ::c_ushort, - pub ftw: ::c_ushort, - pub fop: ::c_ushort, - pub rip: ::c_ulonglong, - pub rdp: ::c_ulonglong, - pub mxcsr: ::c_uint, - pub mxcr_mask: ::c_uint, - pub st_space: [::c_uint; 32], - pub xmm_space: [::c_uint; 64], - padding: [::c_uint; 24], + pub cwd: c_ushort, + pub swd: c_ushort, + pub ftw: c_ushort, + pub fop: c_ushort, + pub rip: c_ulonglong, + pub rdp: c_ulonglong, + pub mxcsr: c_uint, + pub mxcr_mask: c_uint, + pub st_space: [c_uint; 32], + pub xmm_space: [c_uint; 64], + padding: [c_uint; 24], } pub struct ucontext_t { - pub uc_flags: ::c_ulong, + pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, + pub uc_stack: crate::stack_t, pub uc_mcontext: mcontext_t, - pub uc_sigmask: ::sigset_t, + pub uc_sigmask: crate::sigset_t, __private: [u8; 512], // FIXME: the shadow stack field requires glibc >= 2.28. // Re-add once we drop compatibility with glibc versions older than // 2.28. // - // __ssp: [::c_ulonglong; 4], + // __ssp: [c_ulonglong; 4], } #[allow(missing_debug_implementations)] @@ -344,8 +348,8 @@ cfg_if! { impl Eq for user_fpregs_struct {} - impl ::fmt::Debug for user_fpregs_struct { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for user_fpregs_struct { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("user_fpregs_struct") .field("cwd", &self.cwd) .field("ftw", &self.ftw) @@ -361,8 +365,8 @@ cfg_if! { } } - impl ::hash::Hash for user_fpregs_struct { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for user_fpregs_struct { + fn hash(&self, state: &mut H) { self.cwd.hash(state); self.ftw.hash(state); self.fop.hash(state); @@ -389,8 +393,8 @@ cfg_if! { impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -402,8 +406,8 @@ cfg_if! { } } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); @@ -415,271 +419,271 @@ cfg_if! { } } -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; - -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; - -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; +pub const RTLD_DEEPBIND: c_int = 0x8; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_NOLOAD: c_int = 0x4; + +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_FSYNC: c_int = 0x101000; +pub const O_NOATIME: c_int = 0o1000000; +pub const O_PATH: c_int = 0o10000000; +pub const O_TMPFILE: c_int = 0o20000000 | O_DIRECTORY; + +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MAP_GROWSDOWN: c_int = 0x0100; + +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EBADMSG: c_int = 74; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const EHWPOISON: c_int = 133; +pub const ERFKILL: c_int = 132; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; + +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; + +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; #[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGUNUSED: c_int = 31; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; +pub const O_ASYNC: c_int = 0x2000; +pub const O_NDELAY: c_int = 0x800; -pub const PTRACE_DETACH: ::c_uint = 17; -pub const PTRACE_GET_RSEQ_CONFIGURATION: ::c_uint = 0x420f; +pub const PTRACE_DETACH: c_uint = 17; +pub const PTRACE_GET_RSEQ_CONFIGURATION: c_uint = 0x420f; -pub const EFD_NONBLOCK: ::c_int = 0x800; +pub const EFD_NONBLOCK: c_int = 0x800; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETOWN: c_int = 8; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; +pub const F_OFD_GETLK: c_int = 36; +pub const F_OFD_SETLK: c_int = 37; +pub const F_OFD_SETLKW: c_int = 38; -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; +pub const F_RDLCK: c_int = 0; +pub const F_WRLCK: c_int = 1; +pub const F_UNLCK: c_int = 2; -pub const SFD_NONBLOCK: ::c_int = 0x0800; +pub const SFD_NONBLOCK: c_int = 0x0800; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; -pub const SFD_CLOEXEC: ::c_int = 0x080000; +pub const SFD_CLOEXEC: c_int = 0x080000; pub const NCCS: usize = 32; -pub const O_TRUNC: ::c_int = 512; +pub const O_TRUNC: c_int = 512; -pub const O_CLOEXEC: ::c_int = 0x80000; +pub const O_CLOEXEC: c_int = 0x80000; -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; +pub const EBFONT: c_int = 59; +pub const ENOSTR: c_int = 60; +pub const ENODATA: c_int = 61; +pub const ETIME: c_int = 62; +pub const ENOSR: c_int = 63; +pub const ENONET: c_int = 64; +pub const ENOPKG: c_int = 65; +pub const EREMOTE: c_int = 66; +pub const ENOLINK: c_int = 67; +pub const EADV: c_int = 68; +pub const ESRMNT: c_int = 69; +pub const ECOMM: c_int = 70; +pub const EPROTO: c_int = 71; +pub const EDOTDOT: c_int = 73; -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; +pub const SA_NODEFER: c_int = 0x40000000; +pub const SA_RESETHAND: c_int = 0x80000000; +pub const SA_RESTART: c_int = 0x10000000; +pub const SA_NOCLDSTOP: c_int = 0x00000001; -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; +pub const EPOLL_CLOEXEC: c_int = 0x80000; -pub const EFD_CLOEXEC: ::c_int = 0x80000; +pub const EFD_CLOEXEC: c_int = 0x80000; pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; - -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_32BIT: ::c_int = 0x0040; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const EDEADLOCK: ::c_int = 35; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; - -pub const PTRACE_GETFPREGS: ::c_uint = 14; -pub const PTRACE_SETFPREGS: ::c_uint = 15; -pub const PTRACE_GETFPXREGS: ::c_uint = 18; -pub const PTRACE_SETFPXREGS: ::c_uint = 19; -pub const PTRACE_GETREGS: ::c_uint = 12; -pub const PTRACE_SETREGS: ::c_uint = 13; -pub const PTRACE_PEEKSIGINFO_SHARED: ::c_uint = 1; -pub const PTRACE_SYSEMU: ::c_uint = 31; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32; - -pub const PR_GET_SPECULATION_CTRL: ::c_int = 52; -pub const PR_SET_SPECULATION_CTRL: ::c_int = 53; -pub const PR_SPEC_NOT_AFFECTED: ::c_uint = 0; -pub const PR_SPEC_PRCTL: ::c_uint = 1 << 0; -pub const PR_SPEC_ENABLE: ::c_uint = 1 << 1; -pub const PR_SPEC_DISABLE: ::c_uint = 1 << 2; -pub const PR_SPEC_FORCE_DISABLE: ::c_uint = 1 << 3; -pub const PR_SPEC_DISABLE_NOEXEC: ::c_uint = 1 << 4; -pub const PR_SPEC_STORE_BYPASS: ::c_int = 0; -pub const PR_SPEC_INDIRECT_BRANCH: ::c_int = 1; +pub const O_DIRECT: c_int = 0x4000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_NOFOLLOW: c_int = 0x20000; + +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_32BIT: c_int = 0x0040; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_ANONYMOUS: c_int = 0x0020; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_SYNC: c_int = 0x080000; + +pub const EDEADLOCK: c_int = 35; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; + +pub const PTRACE_GETFPREGS: c_uint = 14; +pub const PTRACE_SETFPREGS: c_uint = 15; +pub const PTRACE_GETFPXREGS: c_uint = 18; +pub const PTRACE_SETFPXREGS: c_uint = 19; +pub const PTRACE_GETREGS: c_uint = 12; +pub const PTRACE_SETREGS: c_uint = 13; +pub const PTRACE_PEEKSIGINFO_SHARED: c_uint = 1; +pub const PTRACE_SYSEMU: c_uint = 31; +pub const PTRACE_SYSEMU_SINGLESTEP: c_uint = 32; + +pub const PR_GET_SPECULATION_CTRL: c_int = 52; +pub const PR_SET_SPECULATION_CTRL: c_int = 53; +pub const PR_SPEC_NOT_AFFECTED: c_uint = 0; +pub const PR_SPEC_PRCTL: c_uint = 1 << 0; +pub const PR_SPEC_ENABLE: c_uint = 1 << 1; +pub const PR_SPEC_DISABLE: c_uint = 1 << 2; +pub const PR_SPEC_FORCE_DISABLE: c_uint = 1 << 3; +pub const PR_SPEC_DISABLE_NOEXEC: c_uint = 1 << 4; +pub const PR_SPEC_STORE_BYPASS: c_int = 0; +pub const PR_SPEC_INDIRECT_BRANCH: c_int = 1; // FIXME: perharps for later -//pub const PR_SPEC_L1D_FLUSH: ::c_int = 2; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; +//pub const PR_SPEC_L1D_FLUSH: c_int = 2; + +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; + +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: crate::tcflag_t = 0x00000800; +pub const TAB2: crate::tcflag_t = 0x00001000; +pub const TAB3: crate::tcflag_t = 0x00001800; +pub const CR1: crate::tcflag_t = 0x00000200; +pub const CR2: crate::tcflag_t = 0x00000400; +pub const CR3: crate::tcflag_t = 0x00000600; +pub const FF1: crate::tcflag_t = 0x00008000; +pub const BS1: crate::tcflag_t = 0x00002000; +pub const VT1: crate::tcflag_t = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -687,142 +691,142 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; + +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; -pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; +pub const EXTPROC: crate::tcflag_t = 0x00010000; // offsets in user_regs_structs, from sys/reg.h -pub const R15: ::c_int = 0; -pub const R14: ::c_int = 1; -pub const R13: ::c_int = 2; -pub const R12: ::c_int = 3; -pub const RBP: ::c_int = 4; -pub const RBX: ::c_int = 5; -pub const R11: ::c_int = 6; -pub const R10: ::c_int = 7; -pub const R9: ::c_int = 8; -pub const R8: ::c_int = 9; -pub const RAX: ::c_int = 10; -pub const RCX: ::c_int = 11; -pub const RDX: ::c_int = 12; -pub const RSI: ::c_int = 13; -pub const RDI: ::c_int = 14; -pub const ORIG_RAX: ::c_int = 15; -pub const RIP: ::c_int = 16; -pub const CS: ::c_int = 17; -pub const EFLAGS: ::c_int = 18; -pub const RSP: ::c_int = 19; -pub const SS: ::c_int = 20; -pub const FS_BASE: ::c_int = 21; -pub const GS_BASE: ::c_int = 22; -pub const DS: ::c_int = 23; -pub const ES: ::c_int = 24; -pub const FS: ::c_int = 25; -pub const GS: ::c_int = 26; +pub const R15: c_int = 0; +pub const R14: c_int = 1; +pub const R13: c_int = 2; +pub const R12: c_int = 3; +pub const RBP: c_int = 4; +pub const RBX: c_int = 5; +pub const R11: c_int = 6; +pub const R10: c_int = 7; +pub const R9: c_int = 8; +pub const R8: c_int = 9; +pub const RAX: c_int = 10; +pub const RCX: c_int = 11; +pub const RDX: c_int = 12; +pub const RSI: c_int = 13; +pub const RDI: c_int = 14; +pub const ORIG_RAX: c_int = 15; +pub const RIP: c_int = 16; +pub const CS: c_int = 17; +pub const EFLAGS: c_int = 18; +pub const RSP: c_int = 19; +pub const SS: c_int = 20; +pub const FS_BASE: c_int = 21; +pub const GS_BASE: c_int = 22; +pub const DS: c_int = 23; +pub const ES: c_int = 24; +pub const FS: c_int = 25; +pub const GS: c_int = 26; // offsets in mcontext_t.gregs from sys/ucontext.h -pub const REG_R8: ::c_int = 0; -pub const REG_R9: ::c_int = 1; -pub const REG_R10: ::c_int = 2; -pub const REG_R11: ::c_int = 3; -pub const REG_R12: ::c_int = 4; -pub const REG_R13: ::c_int = 5; -pub const REG_R14: ::c_int = 6; -pub const REG_R15: ::c_int = 7; -pub const REG_RDI: ::c_int = 8; -pub const REG_RSI: ::c_int = 9; -pub const REG_RBP: ::c_int = 10; -pub const REG_RBX: ::c_int = 11; -pub const REG_RDX: ::c_int = 12; -pub const REG_RAX: ::c_int = 13; -pub const REG_RCX: ::c_int = 14; -pub const REG_RSP: ::c_int = 15; -pub const REG_RIP: ::c_int = 16; -pub const REG_EFL: ::c_int = 17; -pub const REG_CSGSFS: ::c_int = 18; -pub const REG_ERR: ::c_int = 19; -pub const REG_TRAPNO: ::c_int = 20; -pub const REG_OLDMASK: ::c_int = 21; -pub const REG_CR2: ::c_int = 22; +pub const REG_R8: c_int = 0; +pub const REG_R9: c_int = 1; +pub const REG_R10: c_int = 2; +pub const REG_R11: c_int = 3; +pub const REG_R12: c_int = 4; +pub const REG_R13: c_int = 5; +pub const REG_R14: c_int = 6; +pub const REG_R15: c_int = 7; +pub const REG_RDI: c_int = 8; +pub const REG_RSI: c_int = 9; +pub const REG_RBP: c_int = 10; +pub const REG_RBX: c_int = 11; +pub const REG_RDX: c_int = 12; +pub const REG_RAX: c_int = 13; +pub const REG_RCX: c_int = 14; +pub const REG_RSP: c_int = 15; +pub const REG_RIP: c_int = 16; +pub const REG_EFL: c_int = 17; +pub const REG_CSGSFS: c_int = 18; +pub const REG_ERR: c_int = 19; +pub const REG_TRAPNO: c_int = 20; +pub const REG_OLDMASK: c_int = 21; +pub const REG_CR2: c_int = 22; extern "C" { - pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; - pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; - pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); - pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> ::c_int; + pub fn getcontext(ucp: *mut ucontext_t) -> c_int; + pub fn setcontext(ucp: *const ucontext_t) -> c_int; + pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: c_int, ...); + pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> c_int; } cfg_if! { diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs index 0c83fa13b4e5e..2d256cd8a13db 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs @@ -1,22 +1,22 @@ -use pthread_mutex_t; +use crate::{c_int, c_void, pthread_mutex_t, size_t}; pub type c_long = i64; pub type c_ulong = u64; s! { 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } } @@ -25,21 +25,21 @@ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; #[cfg(target_endian = "little")] -pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "little")] -pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "little")] -pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -69,377 +69,377 @@ pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mut // Syscall table -pub const SYS_read: ::c_long = 0; -pub const SYS_write: ::c_long = 1; -pub const SYS_open: ::c_long = 2; -pub const SYS_close: ::c_long = 3; -pub const SYS_stat: ::c_long = 4; -pub const SYS_fstat: ::c_long = 5; -pub const SYS_lstat: ::c_long = 6; -pub const SYS_poll: ::c_long = 7; -pub const SYS_lseek: ::c_long = 8; -pub const SYS_mmap: ::c_long = 9; -pub const SYS_mprotect: ::c_long = 10; -pub const SYS_munmap: ::c_long = 11; -pub const SYS_brk: ::c_long = 12; -pub const SYS_rt_sigaction: ::c_long = 13; -pub const SYS_rt_sigprocmask: ::c_long = 14; -pub const SYS_rt_sigreturn: ::c_long = 15; -pub const SYS_ioctl: ::c_long = 16; -pub const SYS_pread64: ::c_long = 17; -pub const SYS_pwrite64: ::c_long = 18; -pub const SYS_readv: ::c_long = 19; -pub const SYS_writev: ::c_long = 20; -pub const SYS_access: ::c_long = 21; -pub const SYS_pipe: ::c_long = 22; -pub const SYS_select: ::c_long = 23; -pub const SYS_sched_yield: ::c_long = 24; -pub const SYS_mremap: ::c_long = 25; -pub const SYS_msync: ::c_long = 26; -pub const SYS_mincore: ::c_long = 27; -pub const SYS_madvise: ::c_long = 28; -pub const SYS_shmget: ::c_long = 29; -pub const SYS_shmat: ::c_long = 30; -pub const SYS_shmctl: ::c_long = 31; -pub const SYS_dup: ::c_long = 32; -pub const SYS_dup2: ::c_long = 33; -pub const SYS_pause: ::c_long = 34; -pub const SYS_nanosleep: ::c_long = 35; -pub const SYS_getitimer: ::c_long = 36; -pub const SYS_alarm: ::c_long = 37; -pub const SYS_setitimer: ::c_long = 38; -pub const SYS_getpid: ::c_long = 39; -pub const SYS_sendfile: ::c_long = 40; -pub const SYS_socket: ::c_long = 41; -pub const SYS_connect: ::c_long = 42; -pub const SYS_accept: ::c_long = 43; -pub const SYS_sendto: ::c_long = 44; -pub const SYS_recvfrom: ::c_long = 45; -pub const SYS_sendmsg: ::c_long = 46; -pub const SYS_recvmsg: ::c_long = 47; -pub const SYS_shutdown: ::c_long = 48; -pub const SYS_bind: ::c_long = 49; -pub const SYS_listen: ::c_long = 50; -pub const SYS_getsockname: ::c_long = 51; -pub const SYS_getpeername: ::c_long = 52; -pub const SYS_socketpair: ::c_long = 53; -pub const SYS_setsockopt: ::c_long = 54; -pub const SYS_getsockopt: ::c_long = 55; -pub const SYS_clone: ::c_long = 56; -pub const SYS_fork: ::c_long = 57; -pub const SYS_vfork: ::c_long = 58; -pub const SYS_execve: ::c_long = 59; -pub const SYS_exit: ::c_long = 60; -pub const SYS_wait4: ::c_long = 61; -pub const SYS_kill: ::c_long = 62; -pub const SYS_uname: ::c_long = 63; -pub const SYS_semget: ::c_long = 64; -pub const SYS_semop: ::c_long = 65; -pub const SYS_semctl: ::c_long = 66; -pub const SYS_shmdt: ::c_long = 67; -pub const SYS_msgget: ::c_long = 68; -pub const SYS_msgsnd: ::c_long = 69; -pub const SYS_msgrcv: ::c_long = 70; -pub const SYS_msgctl: ::c_long = 71; -pub const SYS_fcntl: ::c_long = 72; -pub const SYS_flock: ::c_long = 73; -pub const SYS_fsync: ::c_long = 74; -pub const SYS_fdatasync: ::c_long = 75; -pub const SYS_truncate: ::c_long = 76; -pub const SYS_ftruncate: ::c_long = 77; -pub const SYS_getdents: ::c_long = 78; -pub const SYS_getcwd: ::c_long = 79; -pub const SYS_chdir: ::c_long = 80; -pub const SYS_fchdir: ::c_long = 81; -pub const SYS_rename: ::c_long = 82; -pub const SYS_mkdir: ::c_long = 83; -pub const SYS_rmdir: ::c_long = 84; -pub const SYS_creat: ::c_long = 85; -pub const SYS_link: ::c_long = 86; -pub const SYS_unlink: ::c_long = 87; -pub const SYS_symlink: ::c_long = 88; -pub const SYS_readlink: ::c_long = 89; -pub const SYS_chmod: ::c_long = 90; -pub const SYS_fchmod: ::c_long = 91; -pub const SYS_chown: ::c_long = 92; -pub const SYS_fchown: ::c_long = 93; -pub const SYS_lchown: ::c_long = 94; -pub const SYS_umask: ::c_long = 95; -pub const SYS_gettimeofday: ::c_long = 96; -pub const SYS_getrlimit: ::c_long = 97; -pub const SYS_getrusage: ::c_long = 98; -pub const SYS_sysinfo: ::c_long = 99; -pub const SYS_times: ::c_long = 100; -pub const SYS_ptrace: ::c_long = 101; -pub const SYS_getuid: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_getgid: ::c_long = 104; -pub const SYS_setuid: ::c_long = 105; -pub const SYS_setgid: ::c_long = 106; -pub const SYS_geteuid: ::c_long = 107; -pub const SYS_getegid: ::c_long = 108; -pub const SYS_setpgid: ::c_long = 109; -pub const SYS_getppid: ::c_long = 110; -pub const SYS_getpgrp: ::c_long = 111; -pub const SYS_setsid: ::c_long = 112; -pub const SYS_setreuid: ::c_long = 113; -pub const SYS_setregid: ::c_long = 114; -pub const SYS_getgroups: ::c_long = 115; -pub const SYS_setgroups: ::c_long = 116; -pub const SYS_setresuid: ::c_long = 117; -pub const SYS_getresuid: ::c_long = 118; -pub const SYS_setresgid: ::c_long = 119; -pub const SYS_getresgid: ::c_long = 120; -pub const SYS_getpgid: ::c_long = 121; -pub const SYS_setfsuid: ::c_long = 122; -pub const SYS_setfsgid: ::c_long = 123; -pub const SYS_getsid: ::c_long = 124; -pub const SYS_capget: ::c_long = 125; -pub const SYS_capset: ::c_long = 126; -pub const SYS_rt_sigpending: ::c_long = 127; -pub const SYS_rt_sigtimedwait: ::c_long = 128; -pub const SYS_rt_sigqueueinfo: ::c_long = 129; -pub const SYS_rt_sigsuspend: ::c_long = 130; -pub const SYS_sigaltstack: ::c_long = 131; -pub const SYS_utime: ::c_long = 132; -pub const SYS_mknod: ::c_long = 133; -pub const SYS_uselib: ::c_long = 134; -pub const SYS_personality: ::c_long = 135; -pub const SYS_ustat: ::c_long = 136; -pub const SYS_statfs: ::c_long = 137; -pub const SYS_fstatfs: ::c_long = 138; -pub const SYS_sysfs: ::c_long = 139; -pub const SYS_getpriority: ::c_long = 140; -pub const SYS_setpriority: ::c_long = 141; -pub const SYS_sched_setparam: ::c_long = 142; -pub const SYS_sched_getparam: ::c_long = 143; -pub const SYS_sched_setscheduler: ::c_long = 144; -pub const SYS_sched_getscheduler: ::c_long = 145; -pub const SYS_sched_get_priority_max: ::c_long = 146; -pub const SYS_sched_get_priority_min: ::c_long = 147; -pub const SYS_sched_rr_get_interval: ::c_long = 148; -pub const SYS_mlock: ::c_long = 149; -pub const SYS_munlock: ::c_long = 150; -pub const SYS_mlockall: ::c_long = 151; -pub const SYS_munlockall: ::c_long = 152; -pub const SYS_vhangup: ::c_long = 153; -pub const SYS_modify_ldt: ::c_long = 154; -pub const SYS_pivot_root: ::c_long = 155; -pub const SYS__sysctl: ::c_long = 156; -pub const SYS_prctl: ::c_long = 157; -pub const SYS_arch_prctl: ::c_long = 158; -pub const SYS_adjtimex: ::c_long = 159; -pub const SYS_setrlimit: ::c_long = 160; -pub const SYS_chroot: ::c_long = 161; -pub const SYS_sync: ::c_long = 162; -pub const SYS_acct: ::c_long = 163; -pub const SYS_settimeofday: ::c_long = 164; -pub const SYS_mount: ::c_long = 165; -pub const SYS_umount2: ::c_long = 166; -pub const SYS_swapon: ::c_long = 167; -pub const SYS_swapoff: ::c_long = 168; -pub const SYS_reboot: ::c_long = 169; -pub const SYS_sethostname: ::c_long = 170; -pub const SYS_setdomainname: ::c_long = 171; -pub const SYS_iopl: ::c_long = 172; -pub const SYS_ioperm: ::c_long = 173; -pub const SYS_create_module: ::c_long = 174; -pub const SYS_init_module: ::c_long = 175; -pub const SYS_delete_module: ::c_long = 176; -pub const SYS_get_kernel_syms: ::c_long = 177; -pub const SYS_query_module: ::c_long = 178; -pub const SYS_quotactl: ::c_long = 179; -pub const SYS_nfsservctl: ::c_long = 180; -pub const SYS_getpmsg: ::c_long = 181; -pub const SYS_putpmsg: ::c_long = 182; -pub const SYS_afs_syscall: ::c_long = 183; -pub const SYS_tuxcall: ::c_long = 184; -pub const SYS_security: ::c_long = 185; -pub const SYS_gettid: ::c_long = 186; -pub const SYS_readahead: ::c_long = 187; -pub const SYS_setxattr: ::c_long = 188; -pub const SYS_lsetxattr: ::c_long = 189; -pub const SYS_fsetxattr: ::c_long = 190; -pub const SYS_getxattr: ::c_long = 191; -pub const SYS_lgetxattr: ::c_long = 192; -pub const SYS_fgetxattr: ::c_long = 193; -pub const SYS_listxattr: ::c_long = 194; -pub const SYS_llistxattr: ::c_long = 195; -pub const SYS_flistxattr: ::c_long = 196; -pub const SYS_removexattr: ::c_long = 197; -pub const SYS_lremovexattr: ::c_long = 198; -pub const SYS_fremovexattr: ::c_long = 199; -pub const SYS_tkill: ::c_long = 200; -pub const SYS_time: ::c_long = 201; -pub const SYS_futex: ::c_long = 202; -pub const SYS_sched_setaffinity: ::c_long = 203; -pub const SYS_sched_getaffinity: ::c_long = 204; -pub const SYS_set_thread_area: ::c_long = 205; -pub const SYS_io_setup: ::c_long = 206; -pub const SYS_io_destroy: ::c_long = 207; -pub const SYS_io_getevents: ::c_long = 208; -pub const SYS_io_submit: ::c_long = 209; -pub const SYS_io_cancel: ::c_long = 210; -pub const SYS_get_thread_area: ::c_long = 211; -pub const SYS_lookup_dcookie: ::c_long = 212; -pub const SYS_epoll_create: ::c_long = 213; -pub const SYS_epoll_ctl_old: ::c_long = 214; -pub const SYS_epoll_wait_old: ::c_long = 215; -pub const SYS_remap_file_pages: ::c_long = 216; -pub const SYS_getdents64: ::c_long = 217; -pub const SYS_set_tid_address: ::c_long = 218; -pub const SYS_restart_syscall: ::c_long = 219; -pub const SYS_semtimedop: ::c_long = 220; -pub const SYS_fadvise64: ::c_long = 221; -pub const SYS_timer_create: ::c_long = 222; -pub const SYS_timer_settime: ::c_long = 223; -pub const SYS_timer_gettime: ::c_long = 224; -pub const SYS_timer_getoverrun: ::c_long = 225; -pub const SYS_timer_delete: ::c_long = 226; -pub const SYS_clock_settime: ::c_long = 227; -pub const SYS_clock_gettime: ::c_long = 228; -pub const SYS_clock_getres: ::c_long = 229; -pub const SYS_clock_nanosleep: ::c_long = 230; -pub const SYS_exit_group: ::c_long = 231; -pub const SYS_epoll_wait: ::c_long = 232; -pub const SYS_epoll_ctl: ::c_long = 233; -pub const SYS_tgkill: ::c_long = 234; -pub const SYS_utimes: ::c_long = 235; -pub const SYS_vserver: ::c_long = 236; -pub const SYS_mbind: ::c_long = 237; -pub const SYS_set_mempolicy: ::c_long = 238; -pub const SYS_get_mempolicy: ::c_long = 239; -pub const SYS_mq_open: ::c_long = 240; -pub const SYS_mq_unlink: ::c_long = 241; -pub const SYS_mq_timedsend: ::c_long = 242; -pub const SYS_mq_timedreceive: ::c_long = 243; -pub const SYS_mq_notify: ::c_long = 244; -pub const SYS_mq_getsetattr: ::c_long = 245; -pub const SYS_kexec_load: ::c_long = 246; -pub const SYS_waitid: ::c_long = 247; -pub const SYS_add_key: ::c_long = 248; -pub const SYS_request_key: ::c_long = 249; -pub const SYS_keyctl: ::c_long = 250; -pub const SYS_ioprio_set: ::c_long = 251; -pub const SYS_ioprio_get: ::c_long = 252; -pub const SYS_inotify_init: ::c_long = 253; -pub const SYS_inotify_add_watch: ::c_long = 254; -pub const SYS_inotify_rm_watch: ::c_long = 255; -pub const SYS_migrate_pages: ::c_long = 256; -pub const SYS_openat: ::c_long = 257; -pub const SYS_mkdirat: ::c_long = 258; -pub const SYS_mknodat: ::c_long = 259; -pub const SYS_fchownat: ::c_long = 260; -pub const SYS_futimesat: ::c_long = 261; -pub const SYS_newfstatat: ::c_long = 262; -pub const SYS_unlinkat: ::c_long = 263; -pub const SYS_renameat: ::c_long = 264; -pub const SYS_linkat: ::c_long = 265; -pub const SYS_symlinkat: ::c_long = 266; -pub const SYS_readlinkat: ::c_long = 267; -pub const SYS_fchmodat: ::c_long = 268; -pub const SYS_faccessat: ::c_long = 269; -pub const SYS_pselect6: ::c_long = 270; -pub const SYS_ppoll: ::c_long = 271; -pub const SYS_unshare: ::c_long = 272; -pub const SYS_set_robust_list: ::c_long = 273; -pub const SYS_get_robust_list: ::c_long = 274; -pub const SYS_splice: ::c_long = 275; -pub const SYS_tee: ::c_long = 276; -pub const SYS_sync_file_range: ::c_long = 277; -pub const SYS_vmsplice: ::c_long = 278; -pub const SYS_move_pages: ::c_long = 279; -pub const SYS_utimensat: ::c_long = 280; -pub const SYS_epoll_pwait: ::c_long = 281; -pub const SYS_signalfd: ::c_long = 282; -pub const SYS_timerfd_create: ::c_long = 283; -pub const SYS_eventfd: ::c_long = 284; -pub const SYS_fallocate: ::c_long = 285; -pub const SYS_timerfd_settime: ::c_long = 286; -pub const SYS_timerfd_gettime: ::c_long = 287; -pub const SYS_accept4: ::c_long = 288; -pub const SYS_signalfd4: ::c_long = 289; -pub const SYS_eventfd2: ::c_long = 290; -pub const SYS_epoll_create1: ::c_long = 291; -pub const SYS_dup3: ::c_long = 292; -pub const SYS_pipe2: ::c_long = 293; -pub const SYS_inotify_init1: ::c_long = 294; -pub const SYS_preadv: ::c_long = 295; -pub const SYS_pwritev: ::c_long = 296; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 297; -pub const SYS_perf_event_open: ::c_long = 298; -pub const SYS_recvmmsg: ::c_long = 299; -pub const SYS_fanotify_init: ::c_long = 300; -pub const SYS_fanotify_mark: ::c_long = 301; -pub const SYS_prlimit64: ::c_long = 302; -pub const SYS_name_to_handle_at: ::c_long = 303; -pub const SYS_open_by_handle_at: ::c_long = 304; -pub const SYS_clock_adjtime: ::c_long = 305; -pub const SYS_syncfs: ::c_long = 306; -pub const SYS_sendmmsg: ::c_long = 307; -pub const SYS_setns: ::c_long = 308; -pub const SYS_getcpu: ::c_long = 309; -pub const SYS_process_vm_readv: ::c_long = 310; -pub const SYS_process_vm_writev: ::c_long = 311; -pub const SYS_kcmp: ::c_long = 312; -pub const SYS_finit_module: ::c_long = 313; -pub const SYS_sched_setattr: ::c_long = 314; -pub const SYS_sched_getattr: ::c_long = 315; -pub const SYS_renameat2: ::c_long = 316; -pub const SYS_seccomp: ::c_long = 317; -pub const SYS_getrandom: ::c_long = 318; -pub const SYS_memfd_create: ::c_long = 319; -pub const SYS_kexec_file_load: ::c_long = 320; -pub const SYS_bpf: ::c_long = 321; -pub const SYS_execveat: ::c_long = 322; -pub const SYS_userfaultfd: ::c_long = 323; -pub const SYS_membarrier: ::c_long = 324; -pub const SYS_mlock2: ::c_long = 325; -pub const SYS_copy_file_range: ::c_long = 326; -pub const SYS_preadv2: ::c_long = 327; -pub const SYS_pwritev2: ::c_long = 328; -pub const SYS_pkey_mprotect: ::c_long = 329; -pub const SYS_pkey_alloc: ::c_long = 330; -pub const SYS_pkey_free: ::c_long = 331; -pub const SYS_statx: ::c_long = 332; -pub const SYS_rseq: ::c_long = 334; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; -pub const SYS_fchmodat2: ::c_long = 452; -pub const SYS_mseal: ::c_long = 462; +pub const SYS_read: c_long = 0; +pub const SYS_write: c_long = 1; +pub const SYS_open: c_long = 2; +pub const SYS_close: c_long = 3; +pub const SYS_stat: c_long = 4; +pub const SYS_fstat: c_long = 5; +pub const SYS_lstat: c_long = 6; +pub const SYS_poll: c_long = 7; +pub const SYS_lseek: c_long = 8; +pub const SYS_mmap: c_long = 9; +pub const SYS_mprotect: c_long = 10; +pub const SYS_munmap: c_long = 11; +pub const SYS_brk: c_long = 12; +pub const SYS_rt_sigaction: c_long = 13; +pub const SYS_rt_sigprocmask: c_long = 14; +pub const SYS_rt_sigreturn: c_long = 15; +pub const SYS_ioctl: c_long = 16; +pub const SYS_pread64: c_long = 17; +pub const SYS_pwrite64: c_long = 18; +pub const SYS_readv: c_long = 19; +pub const SYS_writev: c_long = 20; +pub const SYS_access: c_long = 21; +pub const SYS_pipe: c_long = 22; +pub const SYS_select: c_long = 23; +pub const SYS_sched_yield: c_long = 24; +pub const SYS_mremap: c_long = 25; +pub const SYS_msync: c_long = 26; +pub const SYS_mincore: c_long = 27; +pub const SYS_madvise: c_long = 28; +pub const SYS_shmget: c_long = 29; +pub const SYS_shmat: c_long = 30; +pub const SYS_shmctl: c_long = 31; +pub const SYS_dup: c_long = 32; +pub const SYS_dup2: c_long = 33; +pub const SYS_pause: c_long = 34; +pub const SYS_nanosleep: c_long = 35; +pub const SYS_getitimer: c_long = 36; +pub const SYS_alarm: c_long = 37; +pub const SYS_setitimer: c_long = 38; +pub const SYS_getpid: c_long = 39; +pub const SYS_sendfile: c_long = 40; +pub const SYS_socket: c_long = 41; +pub const SYS_connect: c_long = 42; +pub const SYS_accept: c_long = 43; +pub const SYS_sendto: c_long = 44; +pub const SYS_recvfrom: c_long = 45; +pub const SYS_sendmsg: c_long = 46; +pub const SYS_recvmsg: c_long = 47; +pub const SYS_shutdown: c_long = 48; +pub const SYS_bind: c_long = 49; +pub const SYS_listen: c_long = 50; +pub const SYS_getsockname: c_long = 51; +pub const SYS_getpeername: c_long = 52; +pub const SYS_socketpair: c_long = 53; +pub const SYS_setsockopt: c_long = 54; +pub const SYS_getsockopt: c_long = 55; +pub const SYS_clone: c_long = 56; +pub const SYS_fork: c_long = 57; +pub const SYS_vfork: c_long = 58; +pub const SYS_execve: c_long = 59; +pub const SYS_exit: c_long = 60; +pub const SYS_wait4: c_long = 61; +pub const SYS_kill: c_long = 62; +pub const SYS_uname: c_long = 63; +pub const SYS_semget: c_long = 64; +pub const SYS_semop: c_long = 65; +pub const SYS_semctl: c_long = 66; +pub const SYS_shmdt: c_long = 67; +pub const SYS_msgget: c_long = 68; +pub const SYS_msgsnd: c_long = 69; +pub const SYS_msgrcv: c_long = 70; +pub const SYS_msgctl: c_long = 71; +pub const SYS_fcntl: c_long = 72; +pub const SYS_flock: c_long = 73; +pub const SYS_fsync: c_long = 74; +pub const SYS_fdatasync: c_long = 75; +pub const SYS_truncate: c_long = 76; +pub const SYS_ftruncate: c_long = 77; +pub const SYS_getdents: c_long = 78; +pub const SYS_getcwd: c_long = 79; +pub const SYS_chdir: c_long = 80; +pub const SYS_fchdir: c_long = 81; +pub const SYS_rename: c_long = 82; +pub const SYS_mkdir: c_long = 83; +pub const SYS_rmdir: c_long = 84; +pub const SYS_creat: c_long = 85; +pub const SYS_link: c_long = 86; +pub const SYS_unlink: c_long = 87; +pub const SYS_symlink: c_long = 88; +pub const SYS_readlink: c_long = 89; +pub const SYS_chmod: c_long = 90; +pub const SYS_fchmod: c_long = 91; +pub const SYS_chown: c_long = 92; +pub const SYS_fchown: c_long = 93; +pub const SYS_lchown: c_long = 94; +pub const SYS_umask: c_long = 95; +pub const SYS_gettimeofday: c_long = 96; +pub const SYS_getrlimit: c_long = 97; +pub const SYS_getrusage: c_long = 98; +pub const SYS_sysinfo: c_long = 99; +pub const SYS_times: c_long = 100; +pub const SYS_ptrace: c_long = 101; +pub const SYS_getuid: c_long = 102; +pub const SYS_syslog: c_long = 103; +pub const SYS_getgid: c_long = 104; +pub const SYS_setuid: c_long = 105; +pub const SYS_setgid: c_long = 106; +pub const SYS_geteuid: c_long = 107; +pub const SYS_getegid: c_long = 108; +pub const SYS_setpgid: c_long = 109; +pub const SYS_getppid: c_long = 110; +pub const SYS_getpgrp: c_long = 111; +pub const SYS_setsid: c_long = 112; +pub const SYS_setreuid: c_long = 113; +pub const SYS_setregid: c_long = 114; +pub const SYS_getgroups: c_long = 115; +pub const SYS_setgroups: c_long = 116; +pub const SYS_setresuid: c_long = 117; +pub const SYS_getresuid: c_long = 118; +pub const SYS_setresgid: c_long = 119; +pub const SYS_getresgid: c_long = 120; +pub const SYS_getpgid: c_long = 121; +pub const SYS_setfsuid: c_long = 122; +pub const SYS_setfsgid: c_long = 123; +pub const SYS_getsid: c_long = 124; +pub const SYS_capget: c_long = 125; +pub const SYS_capset: c_long = 126; +pub const SYS_rt_sigpending: c_long = 127; +pub const SYS_rt_sigtimedwait: c_long = 128; +pub const SYS_rt_sigqueueinfo: c_long = 129; +pub const SYS_rt_sigsuspend: c_long = 130; +pub const SYS_sigaltstack: c_long = 131; +pub const SYS_utime: c_long = 132; +pub const SYS_mknod: c_long = 133; +pub const SYS_uselib: c_long = 134; +pub const SYS_personality: c_long = 135; +pub const SYS_ustat: c_long = 136; +pub const SYS_statfs: c_long = 137; +pub const SYS_fstatfs: c_long = 138; +pub const SYS_sysfs: c_long = 139; +pub const SYS_getpriority: c_long = 140; +pub const SYS_setpriority: c_long = 141; +pub const SYS_sched_setparam: c_long = 142; +pub const SYS_sched_getparam: c_long = 143; +pub const SYS_sched_setscheduler: c_long = 144; +pub const SYS_sched_getscheduler: c_long = 145; +pub const SYS_sched_get_priority_max: c_long = 146; +pub const SYS_sched_get_priority_min: c_long = 147; +pub const SYS_sched_rr_get_interval: c_long = 148; +pub const SYS_mlock: c_long = 149; +pub const SYS_munlock: c_long = 150; +pub const SYS_mlockall: c_long = 151; +pub const SYS_munlockall: c_long = 152; +pub const SYS_vhangup: c_long = 153; +pub const SYS_modify_ldt: c_long = 154; +pub const SYS_pivot_root: c_long = 155; +pub const SYS__sysctl: c_long = 156; +pub const SYS_prctl: c_long = 157; +pub const SYS_arch_prctl: c_long = 158; +pub const SYS_adjtimex: c_long = 159; +pub const SYS_setrlimit: c_long = 160; +pub const SYS_chroot: c_long = 161; +pub const SYS_sync: c_long = 162; +pub const SYS_acct: c_long = 163; +pub const SYS_settimeofday: c_long = 164; +pub const SYS_mount: c_long = 165; +pub const SYS_umount2: c_long = 166; +pub const SYS_swapon: c_long = 167; +pub const SYS_swapoff: c_long = 168; +pub const SYS_reboot: c_long = 169; +pub const SYS_sethostname: c_long = 170; +pub const SYS_setdomainname: c_long = 171; +pub const SYS_iopl: c_long = 172; +pub const SYS_ioperm: c_long = 173; +pub const SYS_create_module: c_long = 174; +pub const SYS_init_module: c_long = 175; +pub const SYS_delete_module: c_long = 176; +pub const SYS_get_kernel_syms: c_long = 177; +pub const SYS_query_module: c_long = 178; +pub const SYS_quotactl: c_long = 179; +pub const SYS_nfsservctl: c_long = 180; +pub const SYS_getpmsg: c_long = 181; +pub const SYS_putpmsg: c_long = 182; +pub const SYS_afs_syscall: c_long = 183; +pub const SYS_tuxcall: c_long = 184; +pub const SYS_security: c_long = 185; +pub const SYS_gettid: c_long = 186; +pub const SYS_readahead: c_long = 187; +pub const SYS_setxattr: c_long = 188; +pub const SYS_lsetxattr: c_long = 189; +pub const SYS_fsetxattr: c_long = 190; +pub const SYS_getxattr: c_long = 191; +pub const SYS_lgetxattr: c_long = 192; +pub const SYS_fgetxattr: c_long = 193; +pub const SYS_listxattr: c_long = 194; +pub const SYS_llistxattr: c_long = 195; +pub const SYS_flistxattr: c_long = 196; +pub const SYS_removexattr: c_long = 197; +pub const SYS_lremovexattr: c_long = 198; +pub const SYS_fremovexattr: c_long = 199; +pub const SYS_tkill: c_long = 200; +pub const SYS_time: c_long = 201; +pub const SYS_futex: c_long = 202; +pub const SYS_sched_setaffinity: c_long = 203; +pub const SYS_sched_getaffinity: c_long = 204; +pub const SYS_set_thread_area: c_long = 205; +pub const SYS_io_setup: c_long = 206; +pub const SYS_io_destroy: c_long = 207; +pub const SYS_io_getevents: c_long = 208; +pub const SYS_io_submit: c_long = 209; +pub const SYS_io_cancel: c_long = 210; +pub const SYS_get_thread_area: c_long = 211; +pub const SYS_lookup_dcookie: c_long = 212; +pub const SYS_epoll_create: c_long = 213; +pub const SYS_epoll_ctl_old: c_long = 214; +pub const SYS_epoll_wait_old: c_long = 215; +pub const SYS_remap_file_pages: c_long = 216; +pub const SYS_getdents64: c_long = 217; +pub const SYS_set_tid_address: c_long = 218; +pub const SYS_restart_syscall: c_long = 219; +pub const SYS_semtimedop: c_long = 220; +pub const SYS_fadvise64: c_long = 221; +pub const SYS_timer_create: c_long = 222; +pub const SYS_timer_settime: c_long = 223; +pub const SYS_timer_gettime: c_long = 224; +pub const SYS_timer_getoverrun: c_long = 225; +pub const SYS_timer_delete: c_long = 226; +pub const SYS_clock_settime: c_long = 227; +pub const SYS_clock_gettime: c_long = 228; +pub const SYS_clock_getres: c_long = 229; +pub const SYS_clock_nanosleep: c_long = 230; +pub const SYS_exit_group: c_long = 231; +pub const SYS_epoll_wait: c_long = 232; +pub const SYS_epoll_ctl: c_long = 233; +pub const SYS_tgkill: c_long = 234; +pub const SYS_utimes: c_long = 235; +pub const SYS_vserver: c_long = 236; +pub const SYS_mbind: c_long = 237; +pub const SYS_set_mempolicy: c_long = 238; +pub const SYS_get_mempolicy: c_long = 239; +pub const SYS_mq_open: c_long = 240; +pub const SYS_mq_unlink: c_long = 241; +pub const SYS_mq_timedsend: c_long = 242; +pub const SYS_mq_timedreceive: c_long = 243; +pub const SYS_mq_notify: c_long = 244; +pub const SYS_mq_getsetattr: c_long = 245; +pub const SYS_kexec_load: c_long = 246; +pub const SYS_waitid: c_long = 247; +pub const SYS_add_key: c_long = 248; +pub const SYS_request_key: c_long = 249; +pub const SYS_keyctl: c_long = 250; +pub const SYS_ioprio_set: c_long = 251; +pub const SYS_ioprio_get: c_long = 252; +pub const SYS_inotify_init: c_long = 253; +pub const SYS_inotify_add_watch: c_long = 254; +pub const SYS_inotify_rm_watch: c_long = 255; +pub const SYS_migrate_pages: c_long = 256; +pub const SYS_openat: c_long = 257; +pub const SYS_mkdirat: c_long = 258; +pub const SYS_mknodat: c_long = 259; +pub const SYS_fchownat: c_long = 260; +pub const SYS_futimesat: c_long = 261; +pub const SYS_newfstatat: c_long = 262; +pub const SYS_unlinkat: c_long = 263; +pub const SYS_renameat: c_long = 264; +pub const SYS_linkat: c_long = 265; +pub const SYS_symlinkat: c_long = 266; +pub const SYS_readlinkat: c_long = 267; +pub const SYS_fchmodat: c_long = 268; +pub const SYS_faccessat: c_long = 269; +pub const SYS_pselect6: c_long = 270; +pub const SYS_ppoll: c_long = 271; +pub const SYS_unshare: c_long = 272; +pub const SYS_set_robust_list: c_long = 273; +pub const SYS_get_robust_list: c_long = 274; +pub const SYS_splice: c_long = 275; +pub const SYS_tee: c_long = 276; +pub const SYS_sync_file_range: c_long = 277; +pub const SYS_vmsplice: c_long = 278; +pub const SYS_move_pages: c_long = 279; +pub const SYS_utimensat: c_long = 280; +pub const SYS_epoll_pwait: c_long = 281; +pub const SYS_signalfd: c_long = 282; +pub const SYS_timerfd_create: c_long = 283; +pub const SYS_eventfd: c_long = 284; +pub const SYS_fallocate: c_long = 285; +pub const SYS_timerfd_settime: c_long = 286; +pub const SYS_timerfd_gettime: c_long = 287; +pub const SYS_accept4: c_long = 288; +pub const SYS_signalfd4: c_long = 289; +pub const SYS_eventfd2: c_long = 290; +pub const SYS_epoll_create1: c_long = 291; +pub const SYS_dup3: c_long = 292; +pub const SYS_pipe2: c_long = 293; +pub const SYS_inotify_init1: c_long = 294; +pub const SYS_preadv: c_long = 295; +pub const SYS_pwritev: c_long = 296; +pub const SYS_rt_tgsigqueueinfo: c_long = 297; +pub const SYS_perf_event_open: c_long = 298; +pub const SYS_recvmmsg: c_long = 299; +pub const SYS_fanotify_init: c_long = 300; +pub const SYS_fanotify_mark: c_long = 301; +pub const SYS_prlimit64: c_long = 302; +pub const SYS_name_to_handle_at: c_long = 303; +pub const SYS_open_by_handle_at: c_long = 304; +pub const SYS_clock_adjtime: c_long = 305; +pub const SYS_syncfs: c_long = 306; +pub const SYS_sendmmsg: c_long = 307; +pub const SYS_setns: c_long = 308; +pub const SYS_getcpu: c_long = 309; +pub const SYS_process_vm_readv: c_long = 310; +pub const SYS_process_vm_writev: c_long = 311; +pub const SYS_kcmp: c_long = 312; +pub const SYS_finit_module: c_long = 313; +pub const SYS_sched_setattr: c_long = 314; +pub const SYS_sched_getattr: c_long = 315; +pub const SYS_renameat2: c_long = 316; +pub const SYS_seccomp: c_long = 317; +pub const SYS_getrandom: c_long = 318; +pub const SYS_memfd_create: c_long = 319; +pub const SYS_kexec_file_load: c_long = 320; +pub const SYS_bpf: c_long = 321; +pub const SYS_execveat: c_long = 322; +pub const SYS_userfaultfd: c_long = 323; +pub const SYS_membarrier: c_long = 324; +pub const SYS_mlock2: c_long = 325; +pub const SYS_copy_file_range: c_long = 326; +pub const SYS_preadv2: c_long = 327; +pub const SYS_pwritev2: c_long = 328; +pub const SYS_pkey_mprotect: c_long = 329; +pub const SYS_pkey_alloc: c_long = 330; +pub const SYS_pkey_free: c_long = 331; +pub const SYS_statx: c_long = 332; +pub const SYS_rseq: c_long = 334; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; +pub const SYS_fchmodat2: c_long = 452; +pub const SYS_mseal: c_long = 462; extern "C" { pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; + name: *mut c_int, + namelen: c_int, + oldp: *mut c_void, + oldlenp: *mut size_t, + newp: *mut c_void, + newlen: size_t, + ) -> c_int; } diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs index 55b85e9626807..74a4581b0bda4 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs @@ -1,22 +1,22 @@ -use pthread_mutex_t; +use crate::{c_int, pthread_mutex_t}; pub type c_long = i32; pub type c_ulong = u32; s! { 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } } @@ -24,19 +24,19 @@ pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 32; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 44; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20; -pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; -pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; -pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -45,356 +45,356 @@ pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mut // Syscall table -pub const __X32_SYSCALL_BIT: ::c_long = 0x40000000; +pub const __X32_SYSCALL_BIT: c_long = 0x40000000; -pub const SYS_read: ::c_long = __X32_SYSCALL_BIT + 0; -pub const SYS_write: ::c_long = __X32_SYSCALL_BIT + 1; -pub const SYS_open: ::c_long = __X32_SYSCALL_BIT + 2; -pub const SYS_close: ::c_long = __X32_SYSCALL_BIT + 3; -pub const SYS_stat: ::c_long = __X32_SYSCALL_BIT + 4; -pub const SYS_fstat: ::c_long = __X32_SYSCALL_BIT + 5; -pub const SYS_lstat: ::c_long = __X32_SYSCALL_BIT + 6; -pub const SYS_poll: ::c_long = __X32_SYSCALL_BIT + 7; -pub const SYS_lseek: ::c_long = __X32_SYSCALL_BIT + 8; -pub const SYS_mmap: ::c_long = __X32_SYSCALL_BIT + 9; -pub const SYS_mprotect: ::c_long = __X32_SYSCALL_BIT + 10; -pub const SYS_munmap: ::c_long = __X32_SYSCALL_BIT + 11; -pub const SYS_brk: ::c_long = __X32_SYSCALL_BIT + 12; -pub const SYS_rt_sigprocmask: ::c_long = __X32_SYSCALL_BIT + 14; -pub const SYS_pread64: ::c_long = __X32_SYSCALL_BIT + 17; -pub const SYS_pwrite64: ::c_long = __X32_SYSCALL_BIT + 18; -pub const SYS_access: ::c_long = __X32_SYSCALL_BIT + 21; -pub const SYS_pipe: ::c_long = __X32_SYSCALL_BIT + 22; -pub const SYS_select: ::c_long = __X32_SYSCALL_BIT + 23; -pub const SYS_sched_yield: ::c_long = __X32_SYSCALL_BIT + 24; -pub const SYS_mremap: ::c_long = __X32_SYSCALL_BIT + 25; -pub const SYS_msync: ::c_long = __X32_SYSCALL_BIT + 26; -pub const SYS_mincore: ::c_long = __X32_SYSCALL_BIT + 27; -pub const SYS_madvise: ::c_long = __X32_SYSCALL_BIT + 28; -pub const SYS_shmget: ::c_long = __X32_SYSCALL_BIT + 29; -pub const SYS_shmat: ::c_long = __X32_SYSCALL_BIT + 30; -pub const SYS_shmctl: ::c_long = __X32_SYSCALL_BIT + 31; -pub const SYS_dup: ::c_long = __X32_SYSCALL_BIT + 32; -pub const SYS_dup2: ::c_long = __X32_SYSCALL_BIT + 33; -pub const SYS_pause: ::c_long = __X32_SYSCALL_BIT + 34; -pub const SYS_nanosleep: ::c_long = __X32_SYSCALL_BIT + 35; -pub const SYS_getitimer: ::c_long = __X32_SYSCALL_BIT + 36; -pub const SYS_alarm: ::c_long = __X32_SYSCALL_BIT + 37; -pub const SYS_setitimer: ::c_long = __X32_SYSCALL_BIT + 38; -pub const SYS_getpid: ::c_long = __X32_SYSCALL_BIT + 39; -pub const SYS_sendfile: ::c_long = __X32_SYSCALL_BIT + 40; -pub const SYS_socket: ::c_long = __X32_SYSCALL_BIT + 41; -pub const SYS_connect: ::c_long = __X32_SYSCALL_BIT + 42; -pub const SYS_accept: ::c_long = __X32_SYSCALL_BIT + 43; -pub const SYS_sendto: ::c_long = __X32_SYSCALL_BIT + 44; -pub const SYS_shutdown: ::c_long = __X32_SYSCALL_BIT + 48; -pub const SYS_bind: ::c_long = __X32_SYSCALL_BIT + 49; -pub const SYS_listen: ::c_long = __X32_SYSCALL_BIT + 50; -pub const SYS_getsockname: ::c_long = __X32_SYSCALL_BIT + 51; -pub const SYS_getpeername: ::c_long = __X32_SYSCALL_BIT + 52; -pub const SYS_socketpair: ::c_long = __X32_SYSCALL_BIT + 53; -pub const SYS_clone: ::c_long = __X32_SYSCALL_BIT + 56; -pub const SYS_fork: ::c_long = __X32_SYSCALL_BIT + 57; -pub const SYS_vfork: ::c_long = __X32_SYSCALL_BIT + 58; -pub const SYS_exit: ::c_long = __X32_SYSCALL_BIT + 60; -pub const SYS_wait4: ::c_long = __X32_SYSCALL_BIT + 61; -pub const SYS_kill: ::c_long = __X32_SYSCALL_BIT + 62; -pub const SYS_uname: ::c_long = __X32_SYSCALL_BIT + 63; -pub const SYS_semget: ::c_long = __X32_SYSCALL_BIT + 64; -pub const SYS_semop: ::c_long = __X32_SYSCALL_BIT + 65; -pub const SYS_semctl: ::c_long = __X32_SYSCALL_BIT + 66; -pub const SYS_shmdt: ::c_long = __X32_SYSCALL_BIT + 67; -pub const SYS_msgget: ::c_long = __X32_SYSCALL_BIT + 68; -pub const SYS_msgsnd: ::c_long = __X32_SYSCALL_BIT + 69; -pub const SYS_msgrcv: ::c_long = __X32_SYSCALL_BIT + 70; -pub const SYS_msgctl: ::c_long = __X32_SYSCALL_BIT + 71; -pub const SYS_fcntl: ::c_long = __X32_SYSCALL_BIT + 72; -pub const SYS_flock: ::c_long = __X32_SYSCALL_BIT + 73; -pub const SYS_fsync: ::c_long = __X32_SYSCALL_BIT + 74; -pub const SYS_fdatasync: ::c_long = __X32_SYSCALL_BIT + 75; -pub const SYS_truncate: ::c_long = __X32_SYSCALL_BIT + 76; -pub const SYS_ftruncate: ::c_long = __X32_SYSCALL_BIT + 77; -pub const SYS_getdents: ::c_long = __X32_SYSCALL_BIT + 78; -pub const SYS_getcwd: ::c_long = __X32_SYSCALL_BIT + 79; -pub const SYS_chdir: ::c_long = __X32_SYSCALL_BIT + 80; -pub const SYS_fchdir: ::c_long = __X32_SYSCALL_BIT + 81; -pub const SYS_rename: ::c_long = __X32_SYSCALL_BIT + 82; -pub const SYS_mkdir: ::c_long = __X32_SYSCALL_BIT + 83; -pub const SYS_rmdir: ::c_long = __X32_SYSCALL_BIT + 84; -pub const SYS_creat: ::c_long = __X32_SYSCALL_BIT + 85; -pub const SYS_link: ::c_long = __X32_SYSCALL_BIT + 86; -pub const SYS_unlink: ::c_long = __X32_SYSCALL_BIT + 87; -pub const SYS_symlink: ::c_long = __X32_SYSCALL_BIT + 88; -pub const SYS_readlink: ::c_long = __X32_SYSCALL_BIT + 89; -pub const SYS_chmod: ::c_long = __X32_SYSCALL_BIT + 90; -pub const SYS_fchmod: ::c_long = __X32_SYSCALL_BIT + 91; -pub const SYS_chown: ::c_long = __X32_SYSCALL_BIT + 92; -pub const SYS_fchown: ::c_long = __X32_SYSCALL_BIT + 93; -pub const SYS_lchown: ::c_long = __X32_SYSCALL_BIT + 94; -pub const SYS_umask: ::c_long = __X32_SYSCALL_BIT + 95; -pub const SYS_gettimeofday: ::c_long = __X32_SYSCALL_BIT + 96; -pub const SYS_getrlimit: ::c_long = __X32_SYSCALL_BIT + 97; -pub const SYS_getrusage: ::c_long = __X32_SYSCALL_BIT + 98; -pub const SYS_sysinfo: ::c_long = __X32_SYSCALL_BIT + 99; -pub const SYS_times: ::c_long = __X32_SYSCALL_BIT + 100; -pub const SYS_getuid: ::c_long = __X32_SYSCALL_BIT + 102; -pub const SYS_syslog: ::c_long = __X32_SYSCALL_BIT + 103; -pub const SYS_getgid: ::c_long = __X32_SYSCALL_BIT + 104; -pub const SYS_setuid: ::c_long = __X32_SYSCALL_BIT + 105; -pub const SYS_setgid: ::c_long = __X32_SYSCALL_BIT + 106; -pub const SYS_geteuid: ::c_long = __X32_SYSCALL_BIT + 107; -pub const SYS_getegid: ::c_long = __X32_SYSCALL_BIT + 108; -pub const SYS_setpgid: ::c_long = __X32_SYSCALL_BIT + 109; -pub const SYS_getppid: ::c_long = __X32_SYSCALL_BIT + 110; -pub const SYS_getpgrp: ::c_long = __X32_SYSCALL_BIT + 111; -pub const SYS_setsid: ::c_long = __X32_SYSCALL_BIT + 112; -pub const SYS_setreuid: ::c_long = __X32_SYSCALL_BIT + 113; -pub const SYS_setregid: ::c_long = __X32_SYSCALL_BIT + 114; -pub const SYS_getgroups: ::c_long = __X32_SYSCALL_BIT + 115; -pub const SYS_setgroups: ::c_long = __X32_SYSCALL_BIT + 116; -pub const SYS_setresuid: ::c_long = __X32_SYSCALL_BIT + 117; -pub const SYS_getresuid: ::c_long = __X32_SYSCALL_BIT + 118; -pub const SYS_setresgid: ::c_long = __X32_SYSCALL_BIT + 119; -pub const SYS_getresgid: ::c_long = __X32_SYSCALL_BIT + 120; -pub const SYS_getpgid: ::c_long = __X32_SYSCALL_BIT + 121; -pub const SYS_setfsuid: ::c_long = __X32_SYSCALL_BIT + 122; -pub const SYS_setfsgid: ::c_long = __X32_SYSCALL_BIT + 123; -pub const SYS_getsid: ::c_long = __X32_SYSCALL_BIT + 124; -pub const SYS_capget: ::c_long = __X32_SYSCALL_BIT + 125; -pub const SYS_capset: ::c_long = __X32_SYSCALL_BIT + 126; -pub const SYS_rt_sigsuspend: ::c_long = __X32_SYSCALL_BIT + 130; -pub const SYS_utime: ::c_long = __X32_SYSCALL_BIT + 132; -pub const SYS_mknod: ::c_long = __X32_SYSCALL_BIT + 133; -pub const SYS_personality: ::c_long = __X32_SYSCALL_BIT + 135; -pub const SYS_ustat: ::c_long = __X32_SYSCALL_BIT + 136; -pub const SYS_statfs: ::c_long = __X32_SYSCALL_BIT + 137; -pub const SYS_fstatfs: ::c_long = __X32_SYSCALL_BIT + 138; -pub const SYS_sysfs: ::c_long = __X32_SYSCALL_BIT + 139; -pub const SYS_getpriority: ::c_long = __X32_SYSCALL_BIT + 140; -pub const SYS_setpriority: ::c_long = __X32_SYSCALL_BIT + 141; -pub const SYS_sched_setparam: ::c_long = __X32_SYSCALL_BIT + 142; -pub const SYS_sched_getparam: ::c_long = __X32_SYSCALL_BIT + 143; -pub const SYS_sched_setscheduler: ::c_long = __X32_SYSCALL_BIT + 144; -pub const SYS_sched_getscheduler: ::c_long = __X32_SYSCALL_BIT + 145; -pub const SYS_sched_get_priority_max: ::c_long = __X32_SYSCALL_BIT + 146; -pub const SYS_sched_get_priority_min: ::c_long = __X32_SYSCALL_BIT + 147; -pub const SYS_sched_rr_get_interval: ::c_long = __X32_SYSCALL_BIT + 148; -pub const SYS_mlock: ::c_long = __X32_SYSCALL_BIT + 149; -pub const SYS_munlock: ::c_long = __X32_SYSCALL_BIT + 150; -pub const SYS_mlockall: ::c_long = __X32_SYSCALL_BIT + 151; -pub const SYS_munlockall: ::c_long = __X32_SYSCALL_BIT + 152; -pub const SYS_vhangup: ::c_long = __X32_SYSCALL_BIT + 153; -pub const SYS_modify_ldt: ::c_long = __X32_SYSCALL_BIT + 154; -pub const SYS_pivot_root: ::c_long = __X32_SYSCALL_BIT + 155; -pub const SYS_prctl: ::c_long = __X32_SYSCALL_BIT + 157; -pub const SYS_arch_prctl: ::c_long = __X32_SYSCALL_BIT + 158; -pub const SYS_adjtimex: ::c_long = __X32_SYSCALL_BIT + 159; -pub const SYS_setrlimit: ::c_long = __X32_SYSCALL_BIT + 160; -pub const SYS_chroot: ::c_long = __X32_SYSCALL_BIT + 161; -pub const SYS_sync: ::c_long = __X32_SYSCALL_BIT + 162; -pub const SYS_acct: ::c_long = __X32_SYSCALL_BIT + 163; -pub const SYS_settimeofday: ::c_long = __X32_SYSCALL_BIT + 164; -pub const SYS_mount: ::c_long = __X32_SYSCALL_BIT + 165; -pub const SYS_umount2: ::c_long = __X32_SYSCALL_BIT + 166; -pub const SYS_swapon: ::c_long = __X32_SYSCALL_BIT + 167; -pub const SYS_swapoff: ::c_long = __X32_SYSCALL_BIT + 168; -pub const SYS_reboot: ::c_long = __X32_SYSCALL_BIT + 169; -pub const SYS_sethostname: ::c_long = __X32_SYSCALL_BIT + 170; -pub const SYS_setdomainname: ::c_long = __X32_SYSCALL_BIT + 171; -pub const SYS_iopl: ::c_long = __X32_SYSCALL_BIT + 172; -pub const SYS_ioperm: ::c_long = __X32_SYSCALL_BIT + 173; -pub const SYS_init_module: ::c_long = __X32_SYSCALL_BIT + 175; -pub const SYS_delete_module: ::c_long = __X32_SYSCALL_BIT + 176; -pub const SYS_quotactl: ::c_long = __X32_SYSCALL_BIT + 179; -pub const SYS_getpmsg: ::c_long = __X32_SYSCALL_BIT + 181; -pub const SYS_putpmsg: ::c_long = __X32_SYSCALL_BIT + 182; -pub const SYS_afs_syscall: ::c_long = __X32_SYSCALL_BIT + 183; -pub const SYS_tuxcall: ::c_long = __X32_SYSCALL_BIT + 184; -pub const SYS_security: ::c_long = __X32_SYSCALL_BIT + 185; -pub const SYS_gettid: ::c_long = __X32_SYSCALL_BIT + 186; -pub const SYS_readahead: ::c_long = __X32_SYSCALL_BIT + 187; -pub const SYS_setxattr: ::c_long = __X32_SYSCALL_BIT + 188; -pub const SYS_lsetxattr: ::c_long = __X32_SYSCALL_BIT + 189; -pub const SYS_fsetxattr: ::c_long = __X32_SYSCALL_BIT + 190; -pub const SYS_getxattr: ::c_long = __X32_SYSCALL_BIT + 191; -pub const SYS_lgetxattr: ::c_long = __X32_SYSCALL_BIT + 192; -pub const SYS_fgetxattr: ::c_long = __X32_SYSCALL_BIT + 193; -pub const SYS_listxattr: ::c_long = __X32_SYSCALL_BIT + 194; -pub const SYS_llistxattr: ::c_long = __X32_SYSCALL_BIT + 195; -pub const SYS_flistxattr: ::c_long = __X32_SYSCALL_BIT + 196; -pub const SYS_removexattr: ::c_long = __X32_SYSCALL_BIT + 197; -pub const SYS_lremovexattr: ::c_long = __X32_SYSCALL_BIT + 198; -pub const SYS_fremovexattr: ::c_long = __X32_SYSCALL_BIT + 199; -pub const SYS_tkill: ::c_long = __X32_SYSCALL_BIT + 200; -pub const SYS_time: ::c_long = __X32_SYSCALL_BIT + 201; -pub const SYS_futex: ::c_long = __X32_SYSCALL_BIT + 202; -pub const SYS_sched_setaffinity: ::c_long = __X32_SYSCALL_BIT + 203; -pub const SYS_sched_getaffinity: ::c_long = __X32_SYSCALL_BIT + 204; -pub const SYS_io_destroy: ::c_long = __X32_SYSCALL_BIT + 207; -pub const SYS_io_getevents: ::c_long = __X32_SYSCALL_BIT + 208; -pub const SYS_io_cancel: ::c_long = __X32_SYSCALL_BIT + 210; -pub const SYS_lookup_dcookie: ::c_long = __X32_SYSCALL_BIT + 212; -pub const SYS_epoll_create: ::c_long = __X32_SYSCALL_BIT + 213; -pub const SYS_remap_file_pages: ::c_long = __X32_SYSCALL_BIT + 216; -pub const SYS_getdents64: ::c_long = __X32_SYSCALL_BIT + 217; -pub const SYS_set_tid_address: ::c_long = __X32_SYSCALL_BIT + 218; -pub const SYS_restart_syscall: ::c_long = __X32_SYSCALL_BIT + 219; -pub const SYS_semtimedop: ::c_long = __X32_SYSCALL_BIT + 220; -pub const SYS_fadvise64: ::c_long = __X32_SYSCALL_BIT + 221; -pub const SYS_timer_settime: ::c_long = __X32_SYSCALL_BIT + 223; -pub const SYS_timer_gettime: ::c_long = __X32_SYSCALL_BIT + 224; -pub const SYS_timer_getoverrun: ::c_long = __X32_SYSCALL_BIT + 225; -pub const SYS_timer_delete: ::c_long = __X32_SYSCALL_BIT + 226; -pub const SYS_clock_settime: ::c_long = __X32_SYSCALL_BIT + 227; -pub const SYS_clock_gettime: ::c_long = __X32_SYSCALL_BIT + 228; -pub const SYS_clock_getres: ::c_long = __X32_SYSCALL_BIT + 229; -pub const SYS_clock_nanosleep: ::c_long = __X32_SYSCALL_BIT + 230; -pub const SYS_exit_group: ::c_long = __X32_SYSCALL_BIT + 231; -pub const SYS_epoll_wait: ::c_long = __X32_SYSCALL_BIT + 232; -pub const SYS_epoll_ctl: ::c_long = __X32_SYSCALL_BIT + 233; -pub const SYS_tgkill: ::c_long = __X32_SYSCALL_BIT + 234; -pub const SYS_utimes: ::c_long = __X32_SYSCALL_BIT + 235; -pub const SYS_mbind: ::c_long = __X32_SYSCALL_BIT + 237; -pub const SYS_set_mempolicy: ::c_long = __X32_SYSCALL_BIT + 238; -pub const SYS_get_mempolicy: ::c_long = __X32_SYSCALL_BIT + 239; -pub const SYS_mq_open: ::c_long = __X32_SYSCALL_BIT + 240; -pub const SYS_mq_unlink: ::c_long = __X32_SYSCALL_BIT + 241; -pub const SYS_mq_timedsend: ::c_long = __X32_SYSCALL_BIT + 242; -pub const SYS_mq_timedreceive: ::c_long = __X32_SYSCALL_BIT + 243; -pub const SYS_mq_getsetattr: ::c_long = __X32_SYSCALL_BIT + 245; -pub const SYS_add_key: ::c_long = __X32_SYSCALL_BIT + 248; -pub const SYS_request_key: ::c_long = __X32_SYSCALL_BIT + 249; -pub const SYS_keyctl: ::c_long = __X32_SYSCALL_BIT + 250; -pub const SYS_ioprio_set: ::c_long = __X32_SYSCALL_BIT + 251; -pub const SYS_ioprio_get: ::c_long = __X32_SYSCALL_BIT + 252; -pub const SYS_inotify_init: ::c_long = __X32_SYSCALL_BIT + 253; -pub const SYS_inotify_add_watch: ::c_long = __X32_SYSCALL_BIT + 254; -pub const SYS_inotify_rm_watch: ::c_long = __X32_SYSCALL_BIT + 255; -pub const SYS_migrate_pages: ::c_long = __X32_SYSCALL_BIT + 256; -pub const SYS_openat: ::c_long = __X32_SYSCALL_BIT + 257; -pub const SYS_mkdirat: ::c_long = __X32_SYSCALL_BIT + 258; -pub const SYS_mknodat: ::c_long = __X32_SYSCALL_BIT + 259; -pub const SYS_fchownat: ::c_long = __X32_SYSCALL_BIT + 260; -pub const SYS_futimesat: ::c_long = __X32_SYSCALL_BIT + 261; -pub const SYS_newfstatat: ::c_long = __X32_SYSCALL_BIT + 262; -pub const SYS_unlinkat: ::c_long = __X32_SYSCALL_BIT + 263; -pub const SYS_renameat: ::c_long = __X32_SYSCALL_BIT + 264; -pub const SYS_linkat: ::c_long = __X32_SYSCALL_BIT + 265; -pub const SYS_symlinkat: ::c_long = __X32_SYSCALL_BIT + 266; -pub const SYS_readlinkat: ::c_long = __X32_SYSCALL_BIT + 267; -pub const SYS_fchmodat: ::c_long = __X32_SYSCALL_BIT + 268; -pub const SYS_faccessat: ::c_long = __X32_SYSCALL_BIT + 269; -pub const SYS_pselect6: ::c_long = __X32_SYSCALL_BIT + 270; -pub const SYS_ppoll: ::c_long = __X32_SYSCALL_BIT + 271; -pub const SYS_unshare: ::c_long = __X32_SYSCALL_BIT + 272; -pub const SYS_splice: ::c_long = __X32_SYSCALL_BIT + 275; -pub const SYS_tee: ::c_long = __X32_SYSCALL_BIT + 276; -pub const SYS_sync_file_range: ::c_long = __X32_SYSCALL_BIT + 277; -pub const SYS_utimensat: ::c_long = __X32_SYSCALL_BIT + 280; -pub const SYS_epoll_pwait: ::c_long = __X32_SYSCALL_BIT + 281; -pub const SYS_signalfd: ::c_long = __X32_SYSCALL_BIT + 282; -pub const SYS_timerfd_create: ::c_long = __X32_SYSCALL_BIT + 283; -pub const SYS_eventfd: ::c_long = __X32_SYSCALL_BIT + 284; -pub const SYS_fallocate: ::c_long = __X32_SYSCALL_BIT + 285; -pub const SYS_timerfd_settime: ::c_long = __X32_SYSCALL_BIT + 286; -pub const SYS_timerfd_gettime: ::c_long = __X32_SYSCALL_BIT + 287; -pub const SYS_accept4: ::c_long = __X32_SYSCALL_BIT + 288; -pub const SYS_signalfd4: ::c_long = __X32_SYSCALL_BIT + 289; -pub const SYS_eventfd2: ::c_long = __X32_SYSCALL_BIT + 290; -pub const SYS_epoll_create1: ::c_long = __X32_SYSCALL_BIT + 291; -pub const SYS_dup3: ::c_long = __X32_SYSCALL_BIT + 292; -pub const SYS_pipe2: ::c_long = __X32_SYSCALL_BIT + 293; -pub const SYS_inotify_init1: ::c_long = __X32_SYSCALL_BIT + 294; -pub const SYS_perf_event_open: ::c_long = __X32_SYSCALL_BIT + 298; -pub const SYS_fanotify_init: ::c_long = __X32_SYSCALL_BIT + 300; -pub const SYS_fanotify_mark: ::c_long = __X32_SYSCALL_BIT + 301; -pub const SYS_prlimit64: ::c_long = __X32_SYSCALL_BIT + 302; -pub const SYS_name_to_handle_at: ::c_long = __X32_SYSCALL_BIT + 303; -pub const SYS_open_by_handle_at: ::c_long = __X32_SYSCALL_BIT + 304; -pub const SYS_clock_adjtime: ::c_long = __X32_SYSCALL_BIT + 305; -pub const SYS_syncfs: ::c_long = __X32_SYSCALL_BIT + 306; -pub const SYS_setns: ::c_long = __X32_SYSCALL_BIT + 308; -pub const SYS_getcpu: ::c_long = __X32_SYSCALL_BIT + 309; -pub const SYS_kcmp: ::c_long = __X32_SYSCALL_BIT + 312; -pub const SYS_finit_module: ::c_long = __X32_SYSCALL_BIT + 313; -pub const SYS_sched_setattr: ::c_long = __X32_SYSCALL_BIT + 314; -pub const SYS_sched_getattr: ::c_long = __X32_SYSCALL_BIT + 315; -pub const SYS_renameat2: ::c_long = __X32_SYSCALL_BIT + 316; -pub const SYS_seccomp: ::c_long = __X32_SYSCALL_BIT + 317; -pub const SYS_getrandom: ::c_long = __X32_SYSCALL_BIT + 318; -pub const SYS_memfd_create: ::c_long = __X32_SYSCALL_BIT + 319; -pub const SYS_kexec_file_load: ::c_long = __X32_SYSCALL_BIT + 320; -pub const SYS_bpf: ::c_long = __X32_SYSCALL_BIT + 321; -pub const SYS_userfaultfd: ::c_long = __X32_SYSCALL_BIT + 323; -pub const SYS_membarrier: ::c_long = __X32_SYSCALL_BIT + 324; -pub const SYS_mlock2: ::c_long = __X32_SYSCALL_BIT + 325; -pub const SYS_copy_file_range: ::c_long = __X32_SYSCALL_BIT + 326; -pub const SYS_pkey_mprotect: ::c_long = __X32_SYSCALL_BIT + 329; -pub const SYS_pkey_alloc: ::c_long = __X32_SYSCALL_BIT + 330; -pub const SYS_pkey_free: ::c_long = __X32_SYSCALL_BIT + 331; -pub const SYS_statx: ::c_long = __X32_SYSCALL_BIT + 332; -pub const SYS_rseq: ::c_long = __X32_SYSCALL_BIT + 334; -pub const SYS_pidfd_send_signal: ::c_long = __X32_SYSCALL_BIT + 424; -pub const SYS_io_uring_setup: ::c_long = __X32_SYSCALL_BIT + 425; -pub const SYS_io_uring_enter: ::c_long = __X32_SYSCALL_BIT + 426; -pub const SYS_io_uring_register: ::c_long = __X32_SYSCALL_BIT + 427; -pub const SYS_open_tree: ::c_long = __X32_SYSCALL_BIT + 428; -pub const SYS_move_mount: ::c_long = __X32_SYSCALL_BIT + 429; -pub const SYS_fsopen: ::c_long = __X32_SYSCALL_BIT + 430; -pub const SYS_fsconfig: ::c_long = __X32_SYSCALL_BIT + 431; -pub const SYS_fsmount: ::c_long = __X32_SYSCALL_BIT + 432; -pub const SYS_fspick: ::c_long = __X32_SYSCALL_BIT + 433; -pub const SYS_pidfd_open: ::c_long = __X32_SYSCALL_BIT + 434; -pub const SYS_clone3: ::c_long = __X32_SYSCALL_BIT + 435; -pub const SYS_close_range: ::c_long = __X32_SYSCALL_BIT + 436; -pub const SYS_openat2: ::c_long = __X32_SYSCALL_BIT + 437; -pub const SYS_pidfd_getfd: ::c_long = __X32_SYSCALL_BIT + 438; -pub const SYS_faccessat2: ::c_long = __X32_SYSCALL_BIT + 439; -pub const SYS_process_madvise: ::c_long = __X32_SYSCALL_BIT + 440; -pub const SYS_epoll_pwait2: ::c_long = __X32_SYSCALL_BIT + 441; -pub const SYS_mount_setattr: ::c_long = __X32_SYSCALL_BIT + 442; -pub const SYS_quotactl_fd: ::c_long = __X32_SYSCALL_BIT + 443; -pub const SYS_landlock_create_ruleset: ::c_long = __X32_SYSCALL_BIT + 444; -pub const SYS_landlock_add_rule: ::c_long = __X32_SYSCALL_BIT + 445; -pub const SYS_landlock_restrict_self: ::c_long = __X32_SYSCALL_BIT + 446; -pub const SYS_memfd_secret: ::c_long = __X32_SYSCALL_BIT + 447; -pub const SYS_process_mrelease: ::c_long = __X32_SYSCALL_BIT + 448; -pub const SYS_futex_waitv: ::c_long = __X32_SYSCALL_BIT + 449; -pub const SYS_set_mempolicy_home_node: ::c_long = __X32_SYSCALL_BIT + 450; -pub const SYS_fchmodat2: ::c_long = __X32_SYSCALL_BIT + 452; -pub const SYS_rt_sigaction: ::c_long = __X32_SYSCALL_BIT + 512; -pub const SYS_rt_sigreturn: ::c_long = __X32_SYSCALL_BIT + 513; -pub const SYS_ioctl: ::c_long = __X32_SYSCALL_BIT + 514; -pub const SYS_readv: ::c_long = __X32_SYSCALL_BIT + 515; -pub const SYS_writev: ::c_long = __X32_SYSCALL_BIT + 516; -pub const SYS_recvfrom: ::c_long = __X32_SYSCALL_BIT + 517; -pub const SYS_sendmsg: ::c_long = __X32_SYSCALL_BIT + 518; -pub const SYS_recvmsg: ::c_long = __X32_SYSCALL_BIT + 519; -pub const SYS_execve: ::c_long = __X32_SYSCALL_BIT + 520; -pub const SYS_ptrace: ::c_long = __X32_SYSCALL_BIT + 521; -pub const SYS_rt_sigpending: ::c_long = __X32_SYSCALL_BIT + 522; -pub const SYS_rt_sigtimedwait: ::c_long = __X32_SYSCALL_BIT + 523; -pub const SYS_rt_sigqueueinfo: ::c_long = __X32_SYSCALL_BIT + 524; -pub const SYS_sigaltstack: ::c_long = __X32_SYSCALL_BIT + 525; -pub const SYS_timer_create: ::c_long = __X32_SYSCALL_BIT + 526; -pub const SYS_mq_notify: ::c_long = __X32_SYSCALL_BIT + 527; -pub const SYS_kexec_load: ::c_long = __X32_SYSCALL_BIT + 528; -pub const SYS_waitid: ::c_long = __X32_SYSCALL_BIT + 529; -pub const SYS_set_robust_list: ::c_long = __X32_SYSCALL_BIT + 530; -pub const SYS_get_robust_list: ::c_long = __X32_SYSCALL_BIT + 531; -pub const SYS_vmsplice: ::c_long = __X32_SYSCALL_BIT + 532; -pub const SYS_move_pages: ::c_long = __X32_SYSCALL_BIT + 533; -pub const SYS_preadv: ::c_long = __X32_SYSCALL_BIT + 534; -pub const SYS_pwritev: ::c_long = __X32_SYSCALL_BIT + 535; -pub const SYS_rt_tgsigqueueinfo: ::c_long = __X32_SYSCALL_BIT + 536; -pub const SYS_recvmmsg: ::c_long = __X32_SYSCALL_BIT + 537; -pub const SYS_sendmmsg: ::c_long = __X32_SYSCALL_BIT + 538; -pub const SYS_process_vm_readv: ::c_long = __X32_SYSCALL_BIT + 539; -pub const SYS_process_vm_writev: ::c_long = __X32_SYSCALL_BIT + 540; -pub const SYS_setsockopt: ::c_long = __X32_SYSCALL_BIT + 541; -pub const SYS_getsockopt: ::c_long = __X32_SYSCALL_BIT + 542; -pub const SYS_io_setup: ::c_long = __X32_SYSCALL_BIT + 543; -pub const SYS_io_submit: ::c_long = __X32_SYSCALL_BIT + 544; -pub const SYS_execveat: ::c_long = __X32_SYSCALL_BIT + 545; -pub const SYS_preadv2: ::c_long = __X32_SYSCALL_BIT + 546; -pub const SYS_pwritev2: ::c_long = __X32_SYSCALL_BIT + 547; +pub const SYS_read: c_long = __X32_SYSCALL_BIT + 0; +pub const SYS_write: c_long = __X32_SYSCALL_BIT + 1; +pub const SYS_open: c_long = __X32_SYSCALL_BIT + 2; +pub const SYS_close: c_long = __X32_SYSCALL_BIT + 3; +pub const SYS_stat: c_long = __X32_SYSCALL_BIT + 4; +pub const SYS_fstat: c_long = __X32_SYSCALL_BIT + 5; +pub const SYS_lstat: c_long = __X32_SYSCALL_BIT + 6; +pub const SYS_poll: c_long = __X32_SYSCALL_BIT + 7; +pub const SYS_lseek: c_long = __X32_SYSCALL_BIT + 8; +pub const SYS_mmap: c_long = __X32_SYSCALL_BIT + 9; +pub const SYS_mprotect: c_long = __X32_SYSCALL_BIT + 10; +pub const SYS_munmap: c_long = __X32_SYSCALL_BIT + 11; +pub const SYS_brk: c_long = __X32_SYSCALL_BIT + 12; +pub const SYS_rt_sigprocmask: c_long = __X32_SYSCALL_BIT + 14; +pub const SYS_pread64: c_long = __X32_SYSCALL_BIT + 17; +pub const SYS_pwrite64: c_long = __X32_SYSCALL_BIT + 18; +pub const SYS_access: c_long = __X32_SYSCALL_BIT + 21; +pub const SYS_pipe: c_long = __X32_SYSCALL_BIT + 22; +pub const SYS_select: c_long = __X32_SYSCALL_BIT + 23; +pub const SYS_sched_yield: c_long = __X32_SYSCALL_BIT + 24; +pub const SYS_mremap: c_long = __X32_SYSCALL_BIT + 25; +pub const SYS_msync: c_long = __X32_SYSCALL_BIT + 26; +pub const SYS_mincore: c_long = __X32_SYSCALL_BIT + 27; +pub const SYS_madvise: c_long = __X32_SYSCALL_BIT + 28; +pub const SYS_shmget: c_long = __X32_SYSCALL_BIT + 29; +pub const SYS_shmat: c_long = __X32_SYSCALL_BIT + 30; +pub const SYS_shmctl: c_long = __X32_SYSCALL_BIT + 31; +pub const SYS_dup: c_long = __X32_SYSCALL_BIT + 32; +pub const SYS_dup2: c_long = __X32_SYSCALL_BIT + 33; +pub const SYS_pause: c_long = __X32_SYSCALL_BIT + 34; +pub const SYS_nanosleep: c_long = __X32_SYSCALL_BIT + 35; +pub const SYS_getitimer: c_long = __X32_SYSCALL_BIT + 36; +pub const SYS_alarm: c_long = __X32_SYSCALL_BIT + 37; +pub const SYS_setitimer: c_long = __X32_SYSCALL_BIT + 38; +pub const SYS_getpid: c_long = __X32_SYSCALL_BIT + 39; +pub const SYS_sendfile: c_long = __X32_SYSCALL_BIT + 40; +pub const SYS_socket: c_long = __X32_SYSCALL_BIT + 41; +pub const SYS_connect: c_long = __X32_SYSCALL_BIT + 42; +pub const SYS_accept: c_long = __X32_SYSCALL_BIT + 43; +pub const SYS_sendto: c_long = __X32_SYSCALL_BIT + 44; +pub const SYS_shutdown: c_long = __X32_SYSCALL_BIT + 48; +pub const SYS_bind: c_long = __X32_SYSCALL_BIT + 49; +pub const SYS_listen: c_long = __X32_SYSCALL_BIT + 50; +pub const SYS_getsockname: c_long = __X32_SYSCALL_BIT + 51; +pub const SYS_getpeername: c_long = __X32_SYSCALL_BIT + 52; +pub const SYS_socketpair: c_long = __X32_SYSCALL_BIT + 53; +pub const SYS_clone: c_long = __X32_SYSCALL_BIT + 56; +pub const SYS_fork: c_long = __X32_SYSCALL_BIT + 57; +pub const SYS_vfork: c_long = __X32_SYSCALL_BIT + 58; +pub const SYS_exit: c_long = __X32_SYSCALL_BIT + 60; +pub const SYS_wait4: c_long = __X32_SYSCALL_BIT + 61; +pub const SYS_kill: c_long = __X32_SYSCALL_BIT + 62; +pub const SYS_uname: c_long = __X32_SYSCALL_BIT + 63; +pub const SYS_semget: c_long = __X32_SYSCALL_BIT + 64; +pub const SYS_semop: c_long = __X32_SYSCALL_BIT + 65; +pub const SYS_semctl: c_long = __X32_SYSCALL_BIT + 66; +pub const SYS_shmdt: c_long = __X32_SYSCALL_BIT + 67; +pub const SYS_msgget: c_long = __X32_SYSCALL_BIT + 68; +pub const SYS_msgsnd: c_long = __X32_SYSCALL_BIT + 69; +pub const SYS_msgrcv: c_long = __X32_SYSCALL_BIT + 70; +pub const SYS_msgctl: c_long = __X32_SYSCALL_BIT + 71; +pub const SYS_fcntl: c_long = __X32_SYSCALL_BIT + 72; +pub const SYS_flock: c_long = __X32_SYSCALL_BIT + 73; +pub const SYS_fsync: c_long = __X32_SYSCALL_BIT + 74; +pub const SYS_fdatasync: c_long = __X32_SYSCALL_BIT + 75; +pub const SYS_truncate: c_long = __X32_SYSCALL_BIT + 76; +pub const SYS_ftruncate: c_long = __X32_SYSCALL_BIT + 77; +pub const SYS_getdents: c_long = __X32_SYSCALL_BIT + 78; +pub const SYS_getcwd: c_long = __X32_SYSCALL_BIT + 79; +pub const SYS_chdir: c_long = __X32_SYSCALL_BIT + 80; +pub const SYS_fchdir: c_long = __X32_SYSCALL_BIT + 81; +pub const SYS_rename: c_long = __X32_SYSCALL_BIT + 82; +pub const SYS_mkdir: c_long = __X32_SYSCALL_BIT + 83; +pub const SYS_rmdir: c_long = __X32_SYSCALL_BIT + 84; +pub const SYS_creat: c_long = __X32_SYSCALL_BIT + 85; +pub const SYS_link: c_long = __X32_SYSCALL_BIT + 86; +pub const SYS_unlink: c_long = __X32_SYSCALL_BIT + 87; +pub const SYS_symlink: c_long = __X32_SYSCALL_BIT + 88; +pub const SYS_readlink: c_long = __X32_SYSCALL_BIT + 89; +pub const SYS_chmod: c_long = __X32_SYSCALL_BIT + 90; +pub const SYS_fchmod: c_long = __X32_SYSCALL_BIT + 91; +pub const SYS_chown: c_long = __X32_SYSCALL_BIT + 92; +pub const SYS_fchown: c_long = __X32_SYSCALL_BIT + 93; +pub const SYS_lchown: c_long = __X32_SYSCALL_BIT + 94; +pub const SYS_umask: c_long = __X32_SYSCALL_BIT + 95; +pub const SYS_gettimeofday: c_long = __X32_SYSCALL_BIT + 96; +pub const SYS_getrlimit: c_long = __X32_SYSCALL_BIT + 97; +pub const SYS_getrusage: c_long = __X32_SYSCALL_BIT + 98; +pub const SYS_sysinfo: c_long = __X32_SYSCALL_BIT + 99; +pub const SYS_times: c_long = __X32_SYSCALL_BIT + 100; +pub const SYS_getuid: c_long = __X32_SYSCALL_BIT + 102; +pub const SYS_syslog: c_long = __X32_SYSCALL_BIT + 103; +pub const SYS_getgid: c_long = __X32_SYSCALL_BIT + 104; +pub const SYS_setuid: c_long = __X32_SYSCALL_BIT + 105; +pub const SYS_setgid: c_long = __X32_SYSCALL_BIT + 106; +pub const SYS_geteuid: c_long = __X32_SYSCALL_BIT + 107; +pub const SYS_getegid: c_long = __X32_SYSCALL_BIT + 108; +pub const SYS_setpgid: c_long = __X32_SYSCALL_BIT + 109; +pub const SYS_getppid: c_long = __X32_SYSCALL_BIT + 110; +pub const SYS_getpgrp: c_long = __X32_SYSCALL_BIT + 111; +pub const SYS_setsid: c_long = __X32_SYSCALL_BIT + 112; +pub const SYS_setreuid: c_long = __X32_SYSCALL_BIT + 113; +pub const SYS_setregid: c_long = __X32_SYSCALL_BIT + 114; +pub const SYS_getgroups: c_long = __X32_SYSCALL_BIT + 115; +pub const SYS_setgroups: c_long = __X32_SYSCALL_BIT + 116; +pub const SYS_setresuid: c_long = __X32_SYSCALL_BIT + 117; +pub const SYS_getresuid: c_long = __X32_SYSCALL_BIT + 118; +pub const SYS_setresgid: c_long = __X32_SYSCALL_BIT + 119; +pub const SYS_getresgid: c_long = __X32_SYSCALL_BIT + 120; +pub const SYS_getpgid: c_long = __X32_SYSCALL_BIT + 121; +pub const SYS_setfsuid: c_long = __X32_SYSCALL_BIT + 122; +pub const SYS_setfsgid: c_long = __X32_SYSCALL_BIT + 123; +pub const SYS_getsid: c_long = __X32_SYSCALL_BIT + 124; +pub const SYS_capget: c_long = __X32_SYSCALL_BIT + 125; +pub const SYS_capset: c_long = __X32_SYSCALL_BIT + 126; +pub const SYS_rt_sigsuspend: c_long = __X32_SYSCALL_BIT + 130; +pub const SYS_utime: c_long = __X32_SYSCALL_BIT + 132; +pub const SYS_mknod: c_long = __X32_SYSCALL_BIT + 133; +pub const SYS_personality: c_long = __X32_SYSCALL_BIT + 135; +pub const SYS_ustat: c_long = __X32_SYSCALL_BIT + 136; +pub const SYS_statfs: c_long = __X32_SYSCALL_BIT + 137; +pub const SYS_fstatfs: c_long = __X32_SYSCALL_BIT + 138; +pub const SYS_sysfs: c_long = __X32_SYSCALL_BIT + 139; +pub const SYS_getpriority: c_long = __X32_SYSCALL_BIT + 140; +pub const SYS_setpriority: c_long = __X32_SYSCALL_BIT + 141; +pub const SYS_sched_setparam: c_long = __X32_SYSCALL_BIT + 142; +pub const SYS_sched_getparam: c_long = __X32_SYSCALL_BIT + 143; +pub const SYS_sched_setscheduler: c_long = __X32_SYSCALL_BIT + 144; +pub const SYS_sched_getscheduler: c_long = __X32_SYSCALL_BIT + 145; +pub const SYS_sched_get_priority_max: c_long = __X32_SYSCALL_BIT + 146; +pub const SYS_sched_get_priority_min: c_long = __X32_SYSCALL_BIT + 147; +pub const SYS_sched_rr_get_interval: c_long = __X32_SYSCALL_BIT + 148; +pub const SYS_mlock: c_long = __X32_SYSCALL_BIT + 149; +pub const SYS_munlock: c_long = __X32_SYSCALL_BIT + 150; +pub const SYS_mlockall: c_long = __X32_SYSCALL_BIT + 151; +pub const SYS_munlockall: c_long = __X32_SYSCALL_BIT + 152; +pub const SYS_vhangup: c_long = __X32_SYSCALL_BIT + 153; +pub const SYS_modify_ldt: c_long = __X32_SYSCALL_BIT + 154; +pub const SYS_pivot_root: c_long = __X32_SYSCALL_BIT + 155; +pub const SYS_prctl: c_long = __X32_SYSCALL_BIT + 157; +pub const SYS_arch_prctl: c_long = __X32_SYSCALL_BIT + 158; +pub const SYS_adjtimex: c_long = __X32_SYSCALL_BIT + 159; +pub const SYS_setrlimit: c_long = __X32_SYSCALL_BIT + 160; +pub const SYS_chroot: c_long = __X32_SYSCALL_BIT + 161; +pub const SYS_sync: c_long = __X32_SYSCALL_BIT + 162; +pub const SYS_acct: c_long = __X32_SYSCALL_BIT + 163; +pub const SYS_settimeofday: c_long = __X32_SYSCALL_BIT + 164; +pub const SYS_mount: c_long = __X32_SYSCALL_BIT + 165; +pub const SYS_umount2: c_long = __X32_SYSCALL_BIT + 166; +pub const SYS_swapon: c_long = __X32_SYSCALL_BIT + 167; +pub const SYS_swapoff: c_long = __X32_SYSCALL_BIT + 168; +pub const SYS_reboot: c_long = __X32_SYSCALL_BIT + 169; +pub const SYS_sethostname: c_long = __X32_SYSCALL_BIT + 170; +pub const SYS_setdomainname: c_long = __X32_SYSCALL_BIT + 171; +pub const SYS_iopl: c_long = __X32_SYSCALL_BIT + 172; +pub const SYS_ioperm: c_long = __X32_SYSCALL_BIT + 173; +pub const SYS_init_module: c_long = __X32_SYSCALL_BIT + 175; +pub const SYS_delete_module: c_long = __X32_SYSCALL_BIT + 176; +pub const SYS_quotactl: c_long = __X32_SYSCALL_BIT + 179; +pub const SYS_getpmsg: c_long = __X32_SYSCALL_BIT + 181; +pub const SYS_putpmsg: c_long = __X32_SYSCALL_BIT + 182; +pub const SYS_afs_syscall: c_long = __X32_SYSCALL_BIT + 183; +pub const SYS_tuxcall: c_long = __X32_SYSCALL_BIT + 184; +pub const SYS_security: c_long = __X32_SYSCALL_BIT + 185; +pub const SYS_gettid: c_long = __X32_SYSCALL_BIT + 186; +pub const SYS_readahead: c_long = __X32_SYSCALL_BIT + 187; +pub const SYS_setxattr: c_long = __X32_SYSCALL_BIT + 188; +pub const SYS_lsetxattr: c_long = __X32_SYSCALL_BIT + 189; +pub const SYS_fsetxattr: c_long = __X32_SYSCALL_BIT + 190; +pub const SYS_getxattr: c_long = __X32_SYSCALL_BIT + 191; +pub const SYS_lgetxattr: c_long = __X32_SYSCALL_BIT + 192; +pub const SYS_fgetxattr: c_long = __X32_SYSCALL_BIT + 193; +pub const SYS_listxattr: c_long = __X32_SYSCALL_BIT + 194; +pub const SYS_llistxattr: c_long = __X32_SYSCALL_BIT + 195; +pub const SYS_flistxattr: c_long = __X32_SYSCALL_BIT + 196; +pub const SYS_removexattr: c_long = __X32_SYSCALL_BIT + 197; +pub const SYS_lremovexattr: c_long = __X32_SYSCALL_BIT + 198; +pub const SYS_fremovexattr: c_long = __X32_SYSCALL_BIT + 199; +pub const SYS_tkill: c_long = __X32_SYSCALL_BIT + 200; +pub const SYS_time: c_long = __X32_SYSCALL_BIT + 201; +pub const SYS_futex: c_long = __X32_SYSCALL_BIT + 202; +pub const SYS_sched_setaffinity: c_long = __X32_SYSCALL_BIT + 203; +pub const SYS_sched_getaffinity: c_long = __X32_SYSCALL_BIT + 204; +pub const SYS_io_destroy: c_long = __X32_SYSCALL_BIT + 207; +pub const SYS_io_getevents: c_long = __X32_SYSCALL_BIT + 208; +pub const SYS_io_cancel: c_long = __X32_SYSCALL_BIT + 210; +pub const SYS_lookup_dcookie: c_long = __X32_SYSCALL_BIT + 212; +pub const SYS_epoll_create: c_long = __X32_SYSCALL_BIT + 213; +pub const SYS_remap_file_pages: c_long = __X32_SYSCALL_BIT + 216; +pub const SYS_getdents64: c_long = __X32_SYSCALL_BIT + 217; +pub const SYS_set_tid_address: c_long = __X32_SYSCALL_BIT + 218; +pub const SYS_restart_syscall: c_long = __X32_SYSCALL_BIT + 219; +pub const SYS_semtimedop: c_long = __X32_SYSCALL_BIT + 220; +pub const SYS_fadvise64: c_long = __X32_SYSCALL_BIT + 221; +pub const SYS_timer_settime: c_long = __X32_SYSCALL_BIT + 223; +pub const SYS_timer_gettime: c_long = __X32_SYSCALL_BIT + 224; +pub const SYS_timer_getoverrun: c_long = __X32_SYSCALL_BIT + 225; +pub const SYS_timer_delete: c_long = __X32_SYSCALL_BIT + 226; +pub const SYS_clock_settime: c_long = __X32_SYSCALL_BIT + 227; +pub const SYS_clock_gettime: c_long = __X32_SYSCALL_BIT + 228; +pub const SYS_clock_getres: c_long = __X32_SYSCALL_BIT + 229; +pub const SYS_clock_nanosleep: c_long = __X32_SYSCALL_BIT + 230; +pub const SYS_exit_group: c_long = __X32_SYSCALL_BIT + 231; +pub const SYS_epoll_wait: c_long = __X32_SYSCALL_BIT + 232; +pub const SYS_epoll_ctl: c_long = __X32_SYSCALL_BIT + 233; +pub const SYS_tgkill: c_long = __X32_SYSCALL_BIT + 234; +pub const SYS_utimes: c_long = __X32_SYSCALL_BIT + 235; +pub const SYS_mbind: c_long = __X32_SYSCALL_BIT + 237; +pub const SYS_set_mempolicy: c_long = __X32_SYSCALL_BIT + 238; +pub const SYS_get_mempolicy: c_long = __X32_SYSCALL_BIT + 239; +pub const SYS_mq_open: c_long = __X32_SYSCALL_BIT + 240; +pub const SYS_mq_unlink: c_long = __X32_SYSCALL_BIT + 241; +pub const SYS_mq_timedsend: c_long = __X32_SYSCALL_BIT + 242; +pub const SYS_mq_timedreceive: c_long = __X32_SYSCALL_BIT + 243; +pub const SYS_mq_getsetattr: c_long = __X32_SYSCALL_BIT + 245; +pub const SYS_add_key: c_long = __X32_SYSCALL_BIT + 248; +pub const SYS_request_key: c_long = __X32_SYSCALL_BIT + 249; +pub const SYS_keyctl: c_long = __X32_SYSCALL_BIT + 250; +pub const SYS_ioprio_set: c_long = __X32_SYSCALL_BIT + 251; +pub const SYS_ioprio_get: c_long = __X32_SYSCALL_BIT + 252; +pub const SYS_inotify_init: c_long = __X32_SYSCALL_BIT + 253; +pub const SYS_inotify_add_watch: c_long = __X32_SYSCALL_BIT + 254; +pub const SYS_inotify_rm_watch: c_long = __X32_SYSCALL_BIT + 255; +pub const SYS_migrate_pages: c_long = __X32_SYSCALL_BIT + 256; +pub const SYS_openat: c_long = __X32_SYSCALL_BIT + 257; +pub const SYS_mkdirat: c_long = __X32_SYSCALL_BIT + 258; +pub const SYS_mknodat: c_long = __X32_SYSCALL_BIT + 259; +pub const SYS_fchownat: c_long = __X32_SYSCALL_BIT + 260; +pub const SYS_futimesat: c_long = __X32_SYSCALL_BIT + 261; +pub const SYS_newfstatat: c_long = __X32_SYSCALL_BIT + 262; +pub const SYS_unlinkat: c_long = __X32_SYSCALL_BIT + 263; +pub const SYS_renameat: c_long = __X32_SYSCALL_BIT + 264; +pub const SYS_linkat: c_long = __X32_SYSCALL_BIT + 265; +pub const SYS_symlinkat: c_long = __X32_SYSCALL_BIT + 266; +pub const SYS_readlinkat: c_long = __X32_SYSCALL_BIT + 267; +pub const SYS_fchmodat: c_long = __X32_SYSCALL_BIT + 268; +pub const SYS_faccessat: c_long = __X32_SYSCALL_BIT + 269; +pub const SYS_pselect6: c_long = __X32_SYSCALL_BIT + 270; +pub const SYS_ppoll: c_long = __X32_SYSCALL_BIT + 271; +pub const SYS_unshare: c_long = __X32_SYSCALL_BIT + 272; +pub const SYS_splice: c_long = __X32_SYSCALL_BIT + 275; +pub const SYS_tee: c_long = __X32_SYSCALL_BIT + 276; +pub const SYS_sync_file_range: c_long = __X32_SYSCALL_BIT + 277; +pub const SYS_utimensat: c_long = __X32_SYSCALL_BIT + 280; +pub const SYS_epoll_pwait: c_long = __X32_SYSCALL_BIT + 281; +pub const SYS_signalfd: c_long = __X32_SYSCALL_BIT + 282; +pub const SYS_timerfd_create: c_long = __X32_SYSCALL_BIT + 283; +pub const SYS_eventfd: c_long = __X32_SYSCALL_BIT + 284; +pub const SYS_fallocate: c_long = __X32_SYSCALL_BIT + 285; +pub const SYS_timerfd_settime: c_long = __X32_SYSCALL_BIT + 286; +pub const SYS_timerfd_gettime: c_long = __X32_SYSCALL_BIT + 287; +pub const SYS_accept4: c_long = __X32_SYSCALL_BIT + 288; +pub const SYS_signalfd4: c_long = __X32_SYSCALL_BIT + 289; +pub const SYS_eventfd2: c_long = __X32_SYSCALL_BIT + 290; +pub const SYS_epoll_create1: c_long = __X32_SYSCALL_BIT + 291; +pub const SYS_dup3: c_long = __X32_SYSCALL_BIT + 292; +pub const SYS_pipe2: c_long = __X32_SYSCALL_BIT + 293; +pub const SYS_inotify_init1: c_long = __X32_SYSCALL_BIT + 294; +pub const SYS_perf_event_open: c_long = __X32_SYSCALL_BIT + 298; +pub const SYS_fanotify_init: c_long = __X32_SYSCALL_BIT + 300; +pub const SYS_fanotify_mark: c_long = __X32_SYSCALL_BIT + 301; +pub const SYS_prlimit64: c_long = __X32_SYSCALL_BIT + 302; +pub const SYS_name_to_handle_at: c_long = __X32_SYSCALL_BIT + 303; +pub const SYS_open_by_handle_at: c_long = __X32_SYSCALL_BIT + 304; +pub const SYS_clock_adjtime: c_long = __X32_SYSCALL_BIT + 305; +pub const SYS_syncfs: c_long = __X32_SYSCALL_BIT + 306; +pub const SYS_setns: c_long = __X32_SYSCALL_BIT + 308; +pub const SYS_getcpu: c_long = __X32_SYSCALL_BIT + 309; +pub const SYS_kcmp: c_long = __X32_SYSCALL_BIT + 312; +pub const SYS_finit_module: c_long = __X32_SYSCALL_BIT + 313; +pub const SYS_sched_setattr: c_long = __X32_SYSCALL_BIT + 314; +pub const SYS_sched_getattr: c_long = __X32_SYSCALL_BIT + 315; +pub const SYS_renameat2: c_long = __X32_SYSCALL_BIT + 316; +pub const SYS_seccomp: c_long = __X32_SYSCALL_BIT + 317; +pub const SYS_getrandom: c_long = __X32_SYSCALL_BIT + 318; +pub const SYS_memfd_create: c_long = __X32_SYSCALL_BIT + 319; +pub const SYS_kexec_file_load: c_long = __X32_SYSCALL_BIT + 320; +pub const SYS_bpf: c_long = __X32_SYSCALL_BIT + 321; +pub const SYS_userfaultfd: c_long = __X32_SYSCALL_BIT + 323; +pub const SYS_membarrier: c_long = __X32_SYSCALL_BIT + 324; +pub const SYS_mlock2: c_long = __X32_SYSCALL_BIT + 325; +pub const SYS_copy_file_range: c_long = __X32_SYSCALL_BIT + 326; +pub const SYS_pkey_mprotect: c_long = __X32_SYSCALL_BIT + 329; +pub const SYS_pkey_alloc: c_long = __X32_SYSCALL_BIT + 330; +pub const SYS_pkey_free: c_long = __X32_SYSCALL_BIT + 331; +pub const SYS_statx: c_long = __X32_SYSCALL_BIT + 332; +pub const SYS_rseq: c_long = __X32_SYSCALL_BIT + 334; +pub const SYS_pidfd_send_signal: c_long = __X32_SYSCALL_BIT + 424; +pub const SYS_io_uring_setup: c_long = __X32_SYSCALL_BIT + 425; +pub const SYS_io_uring_enter: c_long = __X32_SYSCALL_BIT + 426; +pub const SYS_io_uring_register: c_long = __X32_SYSCALL_BIT + 427; +pub const SYS_open_tree: c_long = __X32_SYSCALL_BIT + 428; +pub const SYS_move_mount: c_long = __X32_SYSCALL_BIT + 429; +pub const SYS_fsopen: c_long = __X32_SYSCALL_BIT + 430; +pub const SYS_fsconfig: c_long = __X32_SYSCALL_BIT + 431; +pub const SYS_fsmount: c_long = __X32_SYSCALL_BIT + 432; +pub const SYS_fspick: c_long = __X32_SYSCALL_BIT + 433; +pub const SYS_pidfd_open: c_long = __X32_SYSCALL_BIT + 434; +pub const SYS_clone3: c_long = __X32_SYSCALL_BIT + 435; +pub const SYS_close_range: c_long = __X32_SYSCALL_BIT + 436; +pub const SYS_openat2: c_long = __X32_SYSCALL_BIT + 437; +pub const SYS_pidfd_getfd: c_long = __X32_SYSCALL_BIT + 438; +pub const SYS_faccessat2: c_long = __X32_SYSCALL_BIT + 439; +pub const SYS_process_madvise: c_long = __X32_SYSCALL_BIT + 440; +pub const SYS_epoll_pwait2: c_long = __X32_SYSCALL_BIT + 441; +pub const SYS_mount_setattr: c_long = __X32_SYSCALL_BIT + 442; +pub const SYS_quotactl_fd: c_long = __X32_SYSCALL_BIT + 443; +pub const SYS_landlock_create_ruleset: c_long = __X32_SYSCALL_BIT + 444; +pub const SYS_landlock_add_rule: c_long = __X32_SYSCALL_BIT + 445; +pub const SYS_landlock_restrict_self: c_long = __X32_SYSCALL_BIT + 446; +pub const SYS_memfd_secret: c_long = __X32_SYSCALL_BIT + 447; +pub const SYS_process_mrelease: c_long = __X32_SYSCALL_BIT + 448; +pub const SYS_futex_waitv: c_long = __X32_SYSCALL_BIT + 449; +pub const SYS_set_mempolicy_home_node: c_long = __X32_SYSCALL_BIT + 450; +pub const SYS_fchmodat2: c_long = __X32_SYSCALL_BIT + 452; +pub const SYS_rt_sigaction: c_long = __X32_SYSCALL_BIT + 512; +pub const SYS_rt_sigreturn: c_long = __X32_SYSCALL_BIT + 513; +pub const SYS_ioctl: c_long = __X32_SYSCALL_BIT + 514; +pub const SYS_readv: c_long = __X32_SYSCALL_BIT + 515; +pub const SYS_writev: c_long = __X32_SYSCALL_BIT + 516; +pub const SYS_recvfrom: c_long = __X32_SYSCALL_BIT + 517; +pub const SYS_sendmsg: c_long = __X32_SYSCALL_BIT + 518; +pub const SYS_recvmsg: c_long = __X32_SYSCALL_BIT + 519; +pub const SYS_execve: c_long = __X32_SYSCALL_BIT + 520; +pub const SYS_ptrace: c_long = __X32_SYSCALL_BIT + 521; +pub const SYS_rt_sigpending: c_long = __X32_SYSCALL_BIT + 522; +pub const SYS_rt_sigtimedwait: c_long = __X32_SYSCALL_BIT + 523; +pub const SYS_rt_sigqueueinfo: c_long = __X32_SYSCALL_BIT + 524; +pub const SYS_sigaltstack: c_long = __X32_SYSCALL_BIT + 525; +pub const SYS_timer_create: c_long = __X32_SYSCALL_BIT + 526; +pub const SYS_mq_notify: c_long = __X32_SYSCALL_BIT + 527; +pub const SYS_kexec_load: c_long = __X32_SYSCALL_BIT + 528; +pub const SYS_waitid: c_long = __X32_SYSCALL_BIT + 529; +pub const SYS_set_robust_list: c_long = __X32_SYSCALL_BIT + 530; +pub const SYS_get_robust_list: c_long = __X32_SYSCALL_BIT + 531; +pub const SYS_vmsplice: c_long = __X32_SYSCALL_BIT + 532; +pub const SYS_move_pages: c_long = __X32_SYSCALL_BIT + 533; +pub const SYS_preadv: c_long = __X32_SYSCALL_BIT + 534; +pub const SYS_pwritev: c_long = __X32_SYSCALL_BIT + 535; +pub const SYS_rt_tgsigqueueinfo: c_long = __X32_SYSCALL_BIT + 536; +pub const SYS_recvmmsg: c_long = __X32_SYSCALL_BIT + 537; +pub const SYS_sendmmsg: c_long = __X32_SYSCALL_BIT + 538; +pub const SYS_process_vm_readv: c_long = __X32_SYSCALL_BIT + 539; +pub const SYS_process_vm_writev: c_long = __X32_SYSCALL_BIT + 540; +pub const SYS_setsockopt: c_long = __X32_SYSCALL_BIT + 541; +pub const SYS_getsockopt: c_long = __X32_SYSCALL_BIT + 542; +pub const SYS_io_setup: c_long = __X32_SYSCALL_BIT + 543; +pub const SYS_io_submit: c_long = __X32_SYSCALL_BIT + 544; +pub const SYS_execveat: c_long = __X32_SYSCALL_BIT + 545; +pub const SYS_preadv2: c_long = __X32_SYSCALL_BIT + 546; +pub const SYS_pwritev2: c_long = __X32_SYSCALL_BIT + 547; diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index b7e10d2e3f44a..7e909d86a0d1e 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1,42 +1,46 @@ +use crate::{ + c_int, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, off64_t, size_t, ssize_t, +}; + pub type pthread_t = c_ulong; -pub type __priority_which_t = ::c_uint; -pub type __rlimit_resource_t = ::c_uint; -pub type Lmid_t = ::c_long; -pub type regoff_t = ::c_int; -pub type __kernel_rwf_t = ::c_int; +pub type __priority_which_t = c_uint; +pub type __rlimit_resource_t = c_uint; +pub type Lmid_t = c_long; +pub type regoff_t = c_int; +pub type __kernel_rwf_t = c_int; cfg_if! { if #[cfg(doc)] { // Used in `linux::arch` to define ioctl constants. - pub(crate) type Ioctl = ::c_ulong; + pub(crate) type Ioctl = c_ulong; } else { #[doc(hidden)] - pub type Ioctl = ::c_ulong; + pub type Ioctl = c_ulong; } } s! { pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_sigevent: ::sigevent, + pub aio_fildes: c_int, + pub aio_lio_opcode: c_int, + pub aio_reqprio: c_int, + pub aio_buf: *mut c_void, + pub aio_nbytes: size_t, + pub aio_sigevent: crate::sigevent, __next_prio: *mut aiocb, - __abs_prio: ::c_int, - __policy: ::c_int, - __error_code: ::c_int, - __return_value: ::ssize_t, + __abs_prio: c_int, + __policy: c_int, + __error_code: c_int, + __return_value: ssize_t, pub aio_offset: off_t, #[cfg(all(not(target_arch = "x86_64"), target_pointer_width = "32"))] - __unused1: [::c_char; 4], - __glibc_reserved: [::c_char; 32], + __unused1: [c_char; 4], + __glibc_reserved: [c_char; 32], } pub struct __exit_status { - pub e_termination: ::c_short, - pub e_exit: ::c_short, + pub e_termination: c_short, + pub e_exit: c_short, } pub struct __timeval { @@ -45,41 +49,41 @@ s! { } pub struct glob64_t { - pub gl_pathc: ::size_t, - pub gl_pathv: *mut *mut ::c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, + pub gl_pathc: size_t, + pub gl_pathv: *mut *mut c_char, + pub gl_offs: size_t, + pub gl_flags: c_int, + + __unused1: *mut c_void, + __unused2: *mut c_void, + __unused3: *mut c_void, + __unused4: *mut c_void, + __unused5: *mut c_void, } pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::size_t, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::size_t, - pub msg_flags: ::c_int, + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: size_t, + pub msg_control: *mut c_void, + pub msg_controllen: size_t, + pub msg_flags: c_int, } pub struct cmsghdr { - pub cmsg_len: ::size_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub cmsg_len: size_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; crate::NCCS], #[cfg(not(any( target_arch = "sparc", target_arch = "sparc64", @@ -88,7 +92,7 @@ s! { target_arch = "mips64", target_arch = "mips64r6" )))] - pub c_ispeed: ::speed_t, + pub c_ispeed: crate::speed_t, #[cfg(not(any( target_arch = "sparc", target_arch = "sparc64", @@ -97,33 +101,33 @@ s! { target_arch = "mips64", target_arch = "mips64r6" )))] - pub c_ospeed: ::speed_t, + pub c_ospeed: crate::speed_t, } pub struct mallinfo { - pub arena: ::c_int, - pub ordblks: ::c_int, - pub smblks: ::c_int, - pub hblks: ::c_int, - pub hblkhd: ::c_int, - pub usmblks: ::c_int, - pub fsmblks: ::c_int, - pub uordblks: ::c_int, - pub fordblks: ::c_int, - pub keepcost: ::c_int, + pub arena: c_int, + pub ordblks: c_int, + pub smblks: c_int, + pub hblks: c_int, + pub hblkhd: c_int, + pub usmblks: c_int, + pub fsmblks: c_int, + pub uordblks: c_int, + pub fordblks: c_int, + pub keepcost: c_int, } pub struct mallinfo2 { - pub arena: ::size_t, - pub ordblks: ::size_t, - pub smblks: ::size_t, - pub hblks: ::size_t, - pub hblkhd: ::size_t, - pub usmblks: ::size_t, - pub fsmblks: ::size_t, - pub uordblks: ::size_t, - pub fordblks: ::size_t, - pub keepcost: ::size_t, + pub arena: size_t, + pub ordblks: size_t, + pub smblks: size_t, + pub hblks: size_t, + pub hblkhd: size_t, + pub usmblks: size_t, + pub fsmblks: size_t, + pub uordblks: size_t, + pub fordblks: size_t, + pub keepcost: size_t, } pub struct nl_pktinfo { @@ -131,15 +135,15 @@ s! { } pub struct nl_mmap_req { - pub nm_block_size: ::c_uint, - pub nm_block_nr: ::c_uint, - pub nm_frame_size: ::c_uint, - pub nm_frame_nr: ::c_uint, + pub nm_block_size: c_uint, + pub nm_block_nr: c_uint, + pub nm_frame_size: c_uint, + pub nm_frame_nr: c_uint, } pub struct nl_mmap_hdr { - pub nm_status: ::c_uint, - pub nm_len: ::c_uint, + pub nm_status: c_uint, + pub nm_len: c_uint, pub nm_group: u32, pub nm_pid: u32, pub nm_uid: u32, @@ -147,92 +151,92 @@ s! { } pub struct rtentry { - pub rt_pad1: ::c_ulong, - pub rt_dst: ::sockaddr, - pub rt_gateway: ::sockaddr, - pub rt_genmask: ::sockaddr, - pub rt_flags: ::c_ushort, - pub rt_pad2: ::c_short, - pub rt_pad3: ::c_ulong, - pub rt_tos: ::c_uchar, - pub rt_class: ::c_uchar, + pub rt_pad1: c_ulong, + pub rt_dst: crate::sockaddr, + pub rt_gateway: crate::sockaddr, + pub rt_genmask: crate::sockaddr, + pub rt_flags: c_ushort, + pub rt_pad2: c_short, + pub rt_pad3: c_ulong, + pub rt_tos: c_uchar, + pub rt_class: c_uchar, #[cfg(target_pointer_width = "64")] - pub rt_pad4: [::c_short; 3usize], + pub rt_pad4: [c_short; 3usize], #[cfg(not(target_pointer_width = "64"))] - pub rt_pad4: ::c_short, - pub rt_metric: ::c_short, - pub rt_dev: *mut ::c_char, - pub rt_mtu: ::c_ulong, - pub rt_window: ::c_ulong, - pub rt_irtt: ::c_ushort, + pub rt_pad4: c_short, + pub rt_metric: c_short, + pub rt_dev: *mut c_char, + pub rt_mtu: c_ulong, + pub rt_window: c_ulong, + pub rt_irtt: c_ushort, } pub struct timex { - pub modes: ::c_uint, + pub modes: c_uint, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub offset: i64, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub offset: ::c_long, + pub offset: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub freq: i64, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub freq: ::c_long, + pub freq: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub maxerror: i64, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub maxerror: ::c_long, + pub maxerror: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub esterror: i64, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub esterror: ::c_long, - pub status: ::c_int, + pub esterror: c_long, + pub status: c_int, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub constant: i64, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub constant: ::c_long, + pub constant: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub precision: i64, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub precision: ::c_long, + pub precision: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub tolerance: i64, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub tolerance: ::c_long, - pub time: ::timeval, + pub tolerance: c_long, + pub time: crate::timeval, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub tick: i64, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub tick: ::c_long, + pub tick: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub ppsfreq: i64, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub ppsfreq: ::c_long, + pub ppsfreq: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub jitter: i64, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub jitter: ::c_long, - pub shift: ::c_int, + pub jitter: c_long, + pub shift: c_int, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub stabil: i64, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub stabil: ::c_long, + pub stabil: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub jitcnt: i64, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub jitcnt: ::c_long, + pub jitcnt: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub calcnt: i64, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub calcnt: ::c_long, + pub calcnt: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub errcnt: i64, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub errcnt: ::c_long, + pub errcnt: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub stbcnt: i64, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub stbcnt: ::c_long, - pub tai: ::c_int, + pub stbcnt: c_long, + pub tai: c_int, pub __unused1: i32, pub __unused2: i32, pub __unused3: i32, @@ -247,99 +251,99 @@ s! { } pub struct ntptimeval { - pub time: ::timeval, - pub maxerror: ::c_long, - pub esterror: ::c_long, - pub tai: ::c_long, - pub __glibc_reserved1: ::c_long, - pub __glibc_reserved2: ::c_long, - pub __glibc_reserved3: ::c_long, - pub __glibc_reserved4: ::c_long, + pub time: crate::timeval, + pub maxerror: c_long, + pub esterror: c_long, + pub tai: c_long, + pub __glibc_reserved1: c_long, + pub __glibc_reserved2: c_long, + pub __glibc_reserved3: c_long, + pub __glibc_reserved4: c_long, } pub struct regex_t { - __buffer: *mut ::c_void, - __allocated: ::size_t, - __used: ::size_t, - __syntax: ::c_ulong, - __fastmap: *mut ::c_char, - __translate: *mut ::c_char, - __re_nsub: ::size_t, + __buffer: *mut c_void, + __allocated: size_t, + __used: size_t, + __syntax: c_ulong, + __fastmap: *mut c_char, + __translate: *mut c_char, + __re_nsub: size_t, __bitfield: u8, } pub struct Elf64_Chdr { - pub ch_type: ::Elf64_Word, - pub ch_reserved: ::Elf64_Word, - pub ch_size: ::Elf64_Xword, - pub ch_addralign: ::Elf64_Xword, + pub ch_type: crate::Elf64_Word, + pub ch_reserved: crate::Elf64_Word, + pub ch_size: crate::Elf64_Xword, + pub ch_addralign: crate::Elf64_Xword, } pub struct Elf32_Chdr { - pub ch_type: ::Elf32_Word, - pub ch_size: ::Elf32_Word, - pub ch_addralign: ::Elf32_Word, + pub ch_type: crate::Elf32_Word, + pub ch_size: crate::Elf32_Word, + pub ch_addralign: crate::Elf32_Word, } pub struct seminfo { - pub semmap: ::c_int, - pub semmni: ::c_int, - pub semmns: ::c_int, - pub semmnu: ::c_int, - pub semmsl: ::c_int, - pub semopm: ::c_int, - pub semume: ::c_int, - pub semusz: ::c_int, - pub semvmx: ::c_int, - pub semaem: ::c_int, + pub semmap: c_int, + pub semmni: c_int, + pub semmns: c_int, + pub semmnu: c_int, + pub semmsl: c_int, + pub semopm: c_int, + pub semume: c_int, + pub semusz: c_int, + pub semvmx: c_int, + pub semaem: c_int, } pub struct ptrace_peeksiginfo_args { - pub off: ::__u64, - pub flags: ::__u32, - pub nr: ::__s32, + pub off: crate::__u64, + pub flags: crate::__u32, + pub nr: crate::__s32, } pub struct __c_anonymous_ptrace_syscall_info_entry { - pub nr: ::__u64, - pub args: [::__u64; 6], + pub nr: crate::__u64, + pub args: [crate::__u64; 6], } pub struct __c_anonymous_ptrace_syscall_info_exit { - pub sval: ::__s64, - pub is_error: ::__u8, + pub sval: crate::__s64, + pub is_error: crate::__u8, } pub struct __c_anonymous_ptrace_syscall_info_seccomp { - pub nr: ::__u64, - pub args: [::__u64; 6], - pub ret_data: ::__u32, + pub nr: crate::__u64, + pub args: [crate::__u64; 6], + pub ret_data: crate::__u32, } pub struct ptrace_syscall_info { - pub op: ::__u8, - pub pad: [::__u8; 3], - pub arch: ::__u32, - pub instruction_pointer: ::__u64, - pub stack_pointer: ::__u64, + pub op: crate::__u8, + pub pad: [crate::__u8; 3], + pub arch: crate::__u32, + pub instruction_pointer: crate::__u64, + pub stack_pointer: crate::__u64, pub u: __c_anonymous_ptrace_syscall_info_data, } // linux/if_xdp.h pub struct sockaddr_xdp { - pub sxdp_family: ::__u16, - pub sxdp_flags: ::__u16, - pub sxdp_ifindex: ::__u32, - pub sxdp_queue_id: ::__u32, - pub sxdp_shared_umem_fd: ::__u32, + pub sxdp_family: crate::__u16, + pub sxdp_flags: crate::__u16, + pub sxdp_ifindex: crate::__u32, + pub sxdp_queue_id: crate::__u32, + pub sxdp_shared_umem_fd: crate::__u32, } pub struct xdp_ring_offset { - pub producer: ::__u64, - pub consumer: ::__u64, - pub desc: ::__u64, - pub flags: ::__u64, + pub producer: crate::__u64, + pub consumer: crate::__u64, + pub desc: crate::__u64, + pub flags: crate::__u64, } pub struct xdp_mmap_offsets { @@ -350,9 +354,9 @@ s! { } pub struct xdp_ring_offset_v1 { - pub producer: ::__u64, - pub consumer: ::__u64, - pub desc: ::__u64, + pub producer: crate::__u64, + pub consumer: crate::__u64, + pub desc: crate::__u64, } pub struct xdp_mmap_offsets_v1 { @@ -363,65 +367,65 @@ s! { } pub struct xdp_umem_reg { - pub addr: ::__u64, - pub len: ::__u64, - pub chunk_size: ::__u32, - pub headroom: ::__u32, - pub flags: ::__u32, - pub tx_metadata_len: ::__u32, + pub addr: crate::__u64, + pub len: crate::__u64, + pub chunk_size: crate::__u32, + pub headroom: crate::__u32, + pub flags: crate::__u32, + pub tx_metadata_len: crate::__u32, } pub struct xdp_umem_reg_v1 { - pub addr: ::__u64, - pub len: ::__u64, - pub chunk_size: ::__u32, - pub headroom: ::__u32, + pub addr: crate::__u64, + pub len: crate::__u64, + pub chunk_size: crate::__u32, + pub headroom: crate::__u32, } pub struct xdp_statistics { - pub rx_dropped: ::__u64, - pub rx_invalid_descs: ::__u64, - pub tx_invalid_descs: ::__u64, - pub rx_ring_full: ::__u64, - pub rx_fill_ring_empty_descs: ::__u64, - pub tx_ring_empty_descs: ::__u64, + pub rx_dropped: crate::__u64, + pub rx_invalid_descs: crate::__u64, + pub tx_invalid_descs: crate::__u64, + pub rx_ring_full: crate::__u64, + pub rx_fill_ring_empty_descs: crate::__u64, + pub tx_ring_empty_descs: crate::__u64, } pub struct xdp_statistics_v1 { - pub rx_dropped: ::__u64, - pub rx_invalid_descs: ::__u64, - pub tx_invalid_descs: ::__u64, + pub rx_dropped: crate::__u64, + pub rx_invalid_descs: crate::__u64, + pub tx_invalid_descs: crate::__u64, } pub struct xdp_options { - pub flags: ::__u32, + pub flags: crate::__u32, } pub struct xdp_desc { - pub addr: ::__u64, - pub len: ::__u32, - pub options: ::__u32, + pub addr: crate::__u64, + pub len: crate::__u32, + pub options: crate::__u32, } pub struct iocb { - pub aio_data: ::__u64, + pub aio_data: crate::__u64, #[cfg(target_endian = "little")] - pub aio_key: ::__u32, + pub aio_key: crate::__u32, #[cfg(target_endian = "little")] - pub aio_rw_flags: ::__kernel_rwf_t, + pub aio_rw_flags: crate::__kernel_rwf_t, #[cfg(target_endian = "big")] - pub aio_rw_flags: ::__kernel_rwf_t, + pub aio_rw_flags: crate::__kernel_rwf_t, #[cfg(target_endian = "big")] - pub aio_key: ::__u32, - pub aio_lio_opcode: ::__u16, - pub aio_reqprio: ::__s16, - pub aio_fildes: ::__u32, - pub aio_buf: ::__u64, - pub aio_nbytes: ::__u64, - pub aio_offset: ::__s64, - aio_reserved2: ::__u64, - pub aio_flags: ::__u32, - pub aio_resfd: ::__u32, + pub aio_key: crate::__u32, + pub aio_lio_opcode: crate::__u16, + pub aio_reqprio: crate::__s16, + pub aio_fildes: crate::__u32, + pub aio_buf: crate::__u64, + pub aio_nbytes: crate::__u64, + pub aio_offset: crate::__s64, + aio_reserved2: crate::__u64, + pub aio_flags: crate::__u32, + pub aio_resfd: crate::__u32, } // netinet/tcp.h @@ -463,14 +467,14 @@ s! { } pub struct fanotify_event_info_pidfd { - pub hdr: ::fanotify_event_info_header, - pub pidfd: ::__s32, + pub hdr: crate::fanotify_event_info_header, + pub pidfd: crate::__s32, } pub struct fanotify_event_info_error { - pub hdr: ::fanotify_event_info_header, - pub error: ::__s32, - pub error_count: ::__u32, + pub hdr: crate::fanotify_event_info_header, + pub error: crate::__s32, + pub error_count: crate::__u32, } // FIXME(1.0) this is actually a union @@ -478,33 +482,33 @@ s! { #[cfg_attr(target_pointer_width = "64", repr(align(8)))] pub struct sem_t { #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], + __size: [c_char; 16], #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], + __size: [c_char; 32], } } impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { + pub unsafe fn si_addr(&self) -> *mut c_void { #[repr(C)] struct siginfo_sigfault { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - si_addr: *mut ::c_void, + _si_signo: c_int, + _si_errno: c_int, + _si_code: c_int, + si_addr: *mut c_void, } (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr } - pub unsafe fn si_value(&self) -> ::sigval { + pub unsafe fn si_value(&self) -> crate::sigval { #[repr(C)] struct siginfo_timer { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - _si_tid: ::c_int, - _si_overrun: ::c_int, - si_sigval: ::sigval, + _si_signo: c_int, + _si_errno: c_int, + _si_code: c_int, + _si_tid: c_int, + _si_overrun: c_int, + si_sigval: crate::sigval, } (*(self as *const siginfo_t as *const siginfo_timer)).si_sigval } @@ -513,14 +517,14 @@ impl siginfo_t { // Internal, for casts to access union fields #[repr(C)] struct sifields_sigchld { - si_pid: ::pid_t, - si_uid: ::uid_t, - si_status: ::c_int, - si_utime: ::c_long, - si_stime: ::c_long, + si_pid: crate::pid_t, + si_uid: crate::uid_t, + si_status: c_int, + si_utime: c_long, + si_stime: c_long, } -impl ::Copy for sifields_sigchld {} -impl ::Clone for sifields_sigchld { +impl Copy for sifields_sigchld {} +impl Clone for sifields_sigchld { fn clone(&self) -> sifields_sigchld { *self } @@ -529,7 +533,7 @@ impl ::Clone for sifields_sigchld { // Internal, for casts to access union fields #[repr(C)] union sifields { - _align_pointer: *mut ::c_void, + _align_pointer: *mut c_void, sigchld: sifields_sigchld, } @@ -538,7 +542,7 @@ union sifields { // sifields vary on 32-bit and 64-bit architectures. #[repr(C)] struct siginfo_f { - _siginfo_base: [::c_int; 3], + _siginfo_base: [c_int; 3], sifields: sifields, } @@ -547,23 +551,23 @@ impl siginfo_t { &(*(self as *const siginfo_t as *const siginfo_f)).sifields } - pub unsafe fn si_pid(&self) -> ::pid_t { + pub unsafe fn si_pid(&self) -> crate::pid_t { self.sifields().sigchld.si_pid } - pub unsafe fn si_uid(&self) -> ::uid_t { + pub unsafe fn si_uid(&self) -> crate::uid_t { self.sifields().sigchld.si_uid } - pub unsafe fn si_status(&self) -> ::c_int { + pub unsafe fn si_status(&self) -> c_int { self.sifields().sigchld.si_status } - pub unsafe fn si_utime(&self) -> ::c_long { + pub unsafe fn si_utime(&self) -> c_long { self.sifields().sigchld.si_utime } - pub unsafe fn si_stime(&self) -> ::c_long { + pub unsafe fn si_stime(&self) -> c_long { self.sifields().sigchld.si_stime } } @@ -573,8 +577,8 @@ pub union __c_anonymous_ptrace_syscall_info_data { pub exit: __c_anonymous_ptrace_syscall_info_exit, pub seccomp: __c_anonymous_ptrace_syscall_info_seccomp, } -impl ::Copy for __c_anonymous_ptrace_syscall_info_data {} -impl ::Clone for __c_anonymous_ptrace_syscall_info_data { +impl Copy for __c_anonymous_ptrace_syscall_info_data {} +impl Clone for __c_anonymous_ptrace_syscall_info_data { fn clone(&self) -> __c_anonymous_ptrace_syscall_info_data { *self } @@ -582,13 +586,13 @@ impl ::Clone for __c_anonymous_ptrace_syscall_info_data { s_no_extra_traits! { pub struct utmpx { - pub ut_type: ::c_short, - pub ut_pid: ::pid_t, - pub ut_line: [::c_char; __UT_LINESIZE], - pub ut_id: [::c_char; 4], + pub ut_type: c_short, + pub ut_pid: crate::pid_t, + pub ut_line: [c_char; __UT_LINESIZE], + pub ut_id: [c_char; 4], - pub ut_user: [::c_char; __UT_NAMESIZE], - pub ut_host: [::c_char; __UT_HOSTSIZE], + pub ut_user: [c_char; __UT_NAMESIZE], + pub ut_host: [c_char; __UT_HOSTSIZE], pub ut_exit: __exit_status, #[cfg(any( @@ -597,14 +601,14 @@ s_no_extra_traits! { target_arch = "loongarch64", all(target_pointer_width = "32", not(target_arch = "x86_64")) ))] - pub ut_session: ::c_long, + pub ut_session: c_long, #[cfg(any( target_arch = "aarch64", target_arch = "s390x", target_arch = "loongarch64", all(target_pointer_width = "32", not(target_arch = "x86_64")) ))] - pub ut_tv: ::timeval, + pub ut_tv: crate::timeval, #[cfg(not(any( target_arch = "aarch64", @@ -622,7 +626,7 @@ s_no_extra_traits! { pub ut_tv: __timeval, pub ut_addr_v6: [i32; 4], - __glibc_reserved: [::c_char; 20], + __glibc_reserved: [c_char; 20], } } @@ -650,8 +654,8 @@ cfg_if! { impl Eq for utmpx {} - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utmpx { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utmpx") .field("ut_type", &self.ut_type) .field("ut_pid", &self.ut_pid) @@ -668,8 +672,8 @@ cfg_if! { } } - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_type.hash(state); self.ut_pid.hash(state); self.ut_line.hash(state); @@ -696,8 +700,8 @@ cfg_if! { impl Eq for __c_anonymous_ptrace_syscall_info_data {} - impl ::fmt::Debug for __c_anonymous_ptrace_syscall_info_data { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_ptrace_syscall_info_data { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { unsafe { f.debug_struct("__c_anonymous_ptrace_syscall_info_data") .field("entry", &self.entry) @@ -708,8 +712,8 @@ cfg_if! { } } - impl ::hash::Hash for __c_anonymous_ptrace_syscall_info_data { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for __c_anonymous_ptrace_syscall_info_data { + fn hash(&self, state: &mut H) { unsafe { self.entry.hash(state); self.exit.hash(state); @@ -721,21 +725,21 @@ cfg_if! { } // include/uapi/asm-generic/hugetlb_encode.h -pub const HUGETLB_FLAG_ENCODE_SHIFT: ::c_int = 26; -pub const HUGETLB_FLAG_ENCODE_MASK: ::c_int = 0x3f; - -pub const HUGETLB_FLAG_ENCODE_64KB: ::c_int = 16 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_512KB: ::c_int = 19 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_1MB: ::c_int = 20 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_2MB: ::c_int = 21 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_8MB: ::c_int = 23 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_16MB: ::c_int = 24 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_32MB: ::c_int = 25 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_256MB: ::c_int = 28 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_512MB: ::c_int = 29 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_1GB: ::c_int = 30 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_2GB: ::c_int = 31 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_16GB: ::c_int = 34 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_SHIFT: c_int = 26; +pub const HUGETLB_FLAG_ENCODE_MASK: c_int = 0x3f; + +pub const HUGETLB_FLAG_ENCODE_64KB: c_int = 16 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_512KB: c_int = 19 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_1MB: c_int = 20 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_2MB: c_int = 21 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_8MB: c_int = 23 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_16MB: c_int = 24 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_32MB: c_int = 25 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_256MB: c_int = 28 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_512MB: c_int = 29 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_1GB: c_int = 30 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_2GB: c_int = 31 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_16GB: c_int = 34 << HUGETLB_FLAG_ENCODE_SHIFT; // include/uapi/linux/mman.h /* @@ -745,89 +749,89 @@ pub const HUGETLB_FLAG_ENCODE_16GB: ::c_int = 34 << HUGETLB_FLAG_ENCODE_SHIFT; * responsibility of the application to know which sizes are supported on * the running system. See mmap(2) man page for details. */ -pub const MAP_HUGE_SHIFT: ::c_int = HUGETLB_FLAG_ENCODE_SHIFT; -pub const MAP_HUGE_MASK: ::c_int = HUGETLB_FLAG_ENCODE_MASK; - -pub const MAP_HUGE_64KB: ::c_int = HUGETLB_FLAG_ENCODE_64KB; -pub const MAP_HUGE_512KB: ::c_int = HUGETLB_FLAG_ENCODE_512KB; -pub const MAP_HUGE_1MB: ::c_int = HUGETLB_FLAG_ENCODE_1MB; -pub const MAP_HUGE_2MB: ::c_int = HUGETLB_FLAG_ENCODE_2MB; -pub const MAP_HUGE_8MB: ::c_int = HUGETLB_FLAG_ENCODE_8MB; -pub const MAP_HUGE_16MB: ::c_int = HUGETLB_FLAG_ENCODE_16MB; -pub const MAP_HUGE_32MB: ::c_int = HUGETLB_FLAG_ENCODE_32MB; -pub const MAP_HUGE_256MB: ::c_int = HUGETLB_FLAG_ENCODE_256MB; -pub const MAP_HUGE_512MB: ::c_int = HUGETLB_FLAG_ENCODE_512MB; -pub const MAP_HUGE_1GB: ::c_int = HUGETLB_FLAG_ENCODE_1GB; -pub const MAP_HUGE_2GB: ::c_int = HUGETLB_FLAG_ENCODE_2GB; -pub const MAP_HUGE_16GB: ::c_int = HUGETLB_FLAG_ENCODE_16GB; - -pub const PRIO_PROCESS: ::__priority_which_t = 0; -pub const PRIO_PGRP: ::__priority_which_t = 1; -pub const PRIO_USER: ::__priority_which_t = 2; - -pub const MS_RMT_MASK: ::c_ulong = 0x02800051; +pub const MAP_HUGE_SHIFT: c_int = HUGETLB_FLAG_ENCODE_SHIFT; +pub const MAP_HUGE_MASK: c_int = HUGETLB_FLAG_ENCODE_MASK; + +pub const MAP_HUGE_64KB: c_int = HUGETLB_FLAG_ENCODE_64KB; +pub const MAP_HUGE_512KB: c_int = HUGETLB_FLAG_ENCODE_512KB; +pub const MAP_HUGE_1MB: c_int = HUGETLB_FLAG_ENCODE_1MB; +pub const MAP_HUGE_2MB: c_int = HUGETLB_FLAG_ENCODE_2MB; +pub const MAP_HUGE_8MB: c_int = HUGETLB_FLAG_ENCODE_8MB; +pub const MAP_HUGE_16MB: c_int = HUGETLB_FLAG_ENCODE_16MB; +pub const MAP_HUGE_32MB: c_int = HUGETLB_FLAG_ENCODE_32MB; +pub const MAP_HUGE_256MB: c_int = HUGETLB_FLAG_ENCODE_256MB; +pub const MAP_HUGE_512MB: c_int = HUGETLB_FLAG_ENCODE_512MB; +pub const MAP_HUGE_1GB: c_int = HUGETLB_FLAG_ENCODE_1GB; +pub const MAP_HUGE_2GB: c_int = HUGETLB_FLAG_ENCODE_2GB; +pub const MAP_HUGE_16GB: c_int = HUGETLB_FLAG_ENCODE_16GB; + +pub const PRIO_PROCESS: crate::__priority_which_t = 0; +pub const PRIO_PGRP: crate::__priority_which_t = 1; +pub const PRIO_USER: crate::__priority_which_t = 2; + +pub const MS_RMT_MASK: c_ulong = 0x02800051; pub const __UT_LINESIZE: usize = 32; pub const __UT_NAMESIZE: usize = 32; pub const __UT_HOSTSIZE: usize = 256; -pub const EMPTY: ::c_short = 0; -pub const RUN_LVL: ::c_short = 1; -pub const BOOT_TIME: ::c_short = 2; -pub const NEW_TIME: ::c_short = 3; -pub const OLD_TIME: ::c_short = 4; -pub const INIT_PROCESS: ::c_short = 5; -pub const LOGIN_PROCESS: ::c_short = 6; -pub const USER_PROCESS: ::c_short = 7; -pub const DEAD_PROCESS: ::c_short = 8; -pub const ACCOUNTING: ::c_short = 9; +pub const EMPTY: c_short = 0; +pub const RUN_LVL: c_short = 1; +pub const BOOT_TIME: c_short = 2; +pub const NEW_TIME: c_short = 3; +pub const OLD_TIME: c_short = 4; +pub const INIT_PROCESS: c_short = 5; +pub const LOGIN_PROCESS: c_short = 6; +pub const USER_PROCESS: c_short = 7; +pub const DEAD_PROCESS: c_short = 8; +pub const ACCOUNTING: c_short = 9; // dlfcn.h -pub const LM_ID_BASE: ::c_long = 0; -pub const LM_ID_NEWLM: ::c_long = -1; - -pub const RTLD_DI_LMID: ::c_int = 1; -pub const RTLD_DI_LINKMAP: ::c_int = 2; -pub const RTLD_DI_CONFIGADDR: ::c_int = 3; -pub const RTLD_DI_SERINFO: ::c_int = 4; -pub const RTLD_DI_SERINFOSIZE: ::c_int = 5; -pub const RTLD_DI_ORIGIN: ::c_int = 6; -pub const RTLD_DI_PROFILENAME: ::c_int = 7; -pub const RTLD_DI_PROFILEOUT: ::c_int = 8; -pub const RTLD_DI_TLS_MODID: ::c_int = 9; -pub const RTLD_DI_TLS_DATA: ::c_int = 10; - -pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK; -pub const PIDFD_NONBLOCK: ::c_uint = O_NONBLOCK as ::c_uint; - -pub const SOL_RXRPC: ::c_int = 272; -pub const SOL_PPPOL2TP: ::c_int = 273; -pub const SOL_PNPIPE: ::c_int = 275; -pub const SOL_RDS: ::c_int = 276; -pub const SOL_IUCV: ::c_int = 277; -pub const SOL_CAIF: ::c_int = 278; -pub const SOL_NFC: ::c_int = 280; -pub const SOL_XDP: ::c_int = 283; - -pub const MSG_TRYHARD: ::c_int = 4; - -pub const LC_PAPER: ::c_int = 7; -pub const LC_NAME: ::c_int = 8; -pub const LC_ADDRESS: ::c_int = 9; -pub const LC_TELEPHONE: ::c_int = 10; -pub const LC_MEASUREMENT: ::c_int = 11; -pub const LC_IDENTIFICATION: ::c_int = 12; -pub const LC_PAPER_MASK: ::c_int = 1 << LC_PAPER; -pub const LC_NAME_MASK: ::c_int = 1 << LC_NAME; -pub const LC_ADDRESS_MASK: ::c_int = 1 << LC_ADDRESS; -pub const LC_TELEPHONE_MASK: ::c_int = 1 << LC_TELEPHONE; -pub const LC_MEASUREMENT_MASK: ::c_int = 1 << LC_MEASUREMENT; -pub const LC_IDENTIFICATION_MASK: ::c_int = 1 << LC_IDENTIFICATION; -pub const LC_ALL_MASK: ::c_int = ::LC_CTYPE_MASK - | ::LC_NUMERIC_MASK - | ::LC_TIME_MASK - | ::LC_COLLATE_MASK - | ::LC_MONETARY_MASK - | ::LC_MESSAGES_MASK +pub const LM_ID_BASE: c_long = 0; +pub const LM_ID_NEWLM: c_long = -1; + +pub const RTLD_DI_LMID: c_int = 1; +pub const RTLD_DI_LINKMAP: c_int = 2; +pub const RTLD_DI_CONFIGADDR: c_int = 3; +pub const RTLD_DI_SERINFO: c_int = 4; +pub const RTLD_DI_SERINFOSIZE: c_int = 5; +pub const RTLD_DI_ORIGIN: c_int = 6; +pub const RTLD_DI_PROFILENAME: c_int = 7; +pub const RTLD_DI_PROFILEOUT: c_int = 8; +pub const RTLD_DI_TLS_MODID: c_int = 9; +pub const RTLD_DI_TLS_DATA: c_int = 10; + +pub const SOCK_NONBLOCK: c_int = O_NONBLOCK; +pub const PIDFD_NONBLOCK: c_uint = O_NONBLOCK as c_uint; + +pub const SOL_RXRPC: c_int = 272; +pub const SOL_PPPOL2TP: c_int = 273; +pub const SOL_PNPIPE: c_int = 275; +pub const SOL_RDS: c_int = 276; +pub const SOL_IUCV: c_int = 277; +pub const SOL_CAIF: c_int = 278; +pub const SOL_NFC: c_int = 280; +pub const SOL_XDP: c_int = 283; + +pub const MSG_TRYHARD: c_int = 4; + +pub const LC_PAPER: c_int = 7; +pub const LC_NAME: c_int = 8; +pub const LC_ADDRESS: c_int = 9; +pub const LC_TELEPHONE: c_int = 10; +pub const LC_MEASUREMENT: c_int = 11; +pub const LC_IDENTIFICATION: c_int = 12; +pub const LC_PAPER_MASK: c_int = 1 << LC_PAPER; +pub const LC_NAME_MASK: c_int = 1 << LC_NAME; +pub const LC_ADDRESS_MASK: c_int = 1 << LC_ADDRESS; +pub const LC_TELEPHONE_MASK: c_int = 1 << LC_TELEPHONE; +pub const LC_MEASUREMENT_MASK: c_int = 1 << LC_MEASUREMENT; +pub const LC_IDENTIFICATION_MASK: c_int = 1 << LC_IDENTIFICATION; +pub const LC_ALL_MASK: c_int = crate::LC_CTYPE_MASK + | crate::LC_NUMERIC_MASK + | crate::LC_TIME_MASK + | crate::LC_COLLATE_MASK + | crate::LC_MONETARY_MASK + | crate::LC_MESSAGES_MASK | LC_PAPER_MASK | LC_NAME_MASK | LC_ADDRESS_MASK @@ -835,257 +839,257 @@ pub const LC_ALL_MASK: ::c_int = ::LC_CTYPE_MASK | LC_MEASUREMENT_MASK | LC_IDENTIFICATION_MASK; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; - -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOCK_DCCP: ::c_int = 6; -pub const SOCK_PACKET: ::c_int = 10; - -pub const AF_IB: ::c_int = 27; -pub const AF_MPLS: ::c_int = 28; -pub const AF_NFC: ::c_int = 39; -pub const AF_VSOCK: ::c_int = 40; -pub const AF_XDP: ::c_int = 44; -pub const PF_IB: ::c_int = AF_IB; -pub const PF_MPLS: ::c_int = AF_MPLS; -pub const PF_NFC: ::c_int = AF_NFC; -pub const PF_VSOCK: ::c_int = AF_VSOCK; -pub const PF_XDP: ::c_int = AF_XDP; - -pub const SIGEV_THREAD_ID: ::c_int = 4; - -pub const BUFSIZ: ::c_uint = 8192; -pub const TMP_MAX: ::c_uint = 238328; -pub const FOPEN_MAX: ::c_uint = 16; -pub const FILENAME_MAX: ::c_uint = 4096; -pub const POSIX_MADV_DONTNEED: ::c_int = 4; -pub const _CS_GNU_LIBC_VERSION: ::c_int = 2; -pub const _CS_GNU_LIBPTHREAD_VERSION: ::c_int = 3; -pub const _CS_V6_ENV: ::c_int = 1148; -pub const _CS_V7_ENV: ::c_int = 1149; -pub const _SC_EQUIV_CLASS_MAX: ::c_int = 41; -pub const _SC_CHARCLASS_NAME_MAX: ::c_int = 45; -pub const _SC_PII: ::c_int = 53; -pub const _SC_PII_XTI: ::c_int = 54; -pub const _SC_PII_SOCKET: ::c_int = 55; -pub const _SC_PII_INTERNET: ::c_int = 56; -pub const _SC_PII_OSI: ::c_int = 57; -pub const _SC_POLL: ::c_int = 58; -pub const _SC_SELECT: ::c_int = 59; -pub const _SC_PII_INTERNET_STREAM: ::c_int = 61; -pub const _SC_PII_INTERNET_DGRAM: ::c_int = 62; -pub const _SC_PII_OSI_COTS: ::c_int = 63; -pub const _SC_PII_OSI_CLTS: ::c_int = 64; -pub const _SC_PII_OSI_M: ::c_int = 65; -pub const _SC_T_IOV_MAX: ::c_int = 66; -pub const _SC_2_C_VERSION: ::c_int = 96; -pub const _SC_CHAR_BIT: ::c_int = 101; -pub const _SC_CHAR_MAX: ::c_int = 102; -pub const _SC_CHAR_MIN: ::c_int = 103; -pub const _SC_INT_MAX: ::c_int = 104; -pub const _SC_INT_MIN: ::c_int = 105; -pub const _SC_LONG_BIT: ::c_int = 106; -pub const _SC_WORD_BIT: ::c_int = 107; -pub const _SC_MB_LEN_MAX: ::c_int = 108; -pub const _SC_SSIZE_MAX: ::c_int = 110; -pub const _SC_SCHAR_MAX: ::c_int = 111; -pub const _SC_SCHAR_MIN: ::c_int = 112; -pub const _SC_SHRT_MAX: ::c_int = 113; -pub const _SC_SHRT_MIN: ::c_int = 114; -pub const _SC_UCHAR_MAX: ::c_int = 115; -pub const _SC_UINT_MAX: ::c_int = 116; -pub const _SC_ULONG_MAX: ::c_int = 117; -pub const _SC_USHRT_MAX: ::c_int = 118; -pub const _SC_NL_ARGMAX: ::c_int = 119; -pub const _SC_NL_LANGMAX: ::c_int = 120; -pub const _SC_NL_MSGMAX: ::c_int = 121; -pub const _SC_NL_NMAX: ::c_int = 122; -pub const _SC_NL_SETMAX: ::c_int = 123; -pub const _SC_NL_TEXTMAX: ::c_int = 124; -pub const _SC_BASE: ::c_int = 134; -pub const _SC_C_LANG_SUPPORT: ::c_int = 135; -pub const _SC_C_LANG_SUPPORT_R: ::c_int = 136; -pub const _SC_DEVICE_IO: ::c_int = 140; -pub const _SC_DEVICE_SPECIFIC: ::c_int = 141; -pub const _SC_DEVICE_SPECIFIC_R: ::c_int = 142; -pub const _SC_FD_MGMT: ::c_int = 143; -pub const _SC_FIFO: ::c_int = 144; -pub const _SC_PIPE: ::c_int = 145; -pub const _SC_FILE_ATTRIBUTES: ::c_int = 146; -pub const _SC_FILE_LOCKING: ::c_int = 147; -pub const _SC_FILE_SYSTEM: ::c_int = 148; -pub const _SC_MULTI_PROCESS: ::c_int = 150; -pub const _SC_SINGLE_PROCESS: ::c_int = 151; -pub const _SC_NETWORKING: ::c_int = 152; -pub const _SC_REGEX_VERSION: ::c_int = 156; -pub const _SC_SIGNALS: ::c_int = 158; -pub const _SC_SYSTEM_DATABASE: ::c_int = 162; -pub const _SC_SYSTEM_DATABASE_R: ::c_int = 163; -pub const _SC_USER_GROUPS: ::c_int = 166; -pub const _SC_USER_GROUPS_R: ::c_int = 167; -pub const _SC_LEVEL1_ICACHE_SIZE: ::c_int = 185; -pub const _SC_LEVEL1_ICACHE_ASSOC: ::c_int = 186; -pub const _SC_LEVEL1_ICACHE_LINESIZE: ::c_int = 187; -pub const _SC_LEVEL1_DCACHE_SIZE: ::c_int = 188; -pub const _SC_LEVEL1_DCACHE_ASSOC: ::c_int = 189; -pub const _SC_LEVEL1_DCACHE_LINESIZE: ::c_int = 190; -pub const _SC_LEVEL2_CACHE_SIZE: ::c_int = 191; -pub const _SC_LEVEL2_CACHE_ASSOC: ::c_int = 192; -pub const _SC_LEVEL2_CACHE_LINESIZE: ::c_int = 193; -pub const _SC_LEVEL3_CACHE_SIZE: ::c_int = 194; -pub const _SC_LEVEL3_CACHE_ASSOC: ::c_int = 195; -pub const _SC_LEVEL3_CACHE_LINESIZE: ::c_int = 196; -pub const _SC_LEVEL4_CACHE_SIZE: ::c_int = 197; -pub const _SC_LEVEL4_CACHE_ASSOC: ::c_int = 198; -pub const _SC_LEVEL4_CACHE_LINESIZE: ::c_int = 199; -pub const O_ACCMODE: ::c_int = 3; -pub const ST_RELATIME: ::c_ulong = 4096; -pub const NI_MAXHOST: ::socklen_t = 1025; +pub const ENOTSUP: c_int = EOPNOTSUPP; + +pub const SOCK_SEQPACKET: c_int = 5; +pub const SOCK_DCCP: c_int = 6; +pub const SOCK_PACKET: c_int = 10; + +pub const AF_IB: c_int = 27; +pub const AF_MPLS: c_int = 28; +pub const AF_NFC: c_int = 39; +pub const AF_VSOCK: c_int = 40; +pub const AF_XDP: c_int = 44; +pub const PF_IB: c_int = AF_IB; +pub const PF_MPLS: c_int = AF_MPLS; +pub const PF_NFC: c_int = AF_NFC; +pub const PF_VSOCK: c_int = AF_VSOCK; +pub const PF_XDP: c_int = AF_XDP; + +pub const SIGEV_THREAD_ID: c_int = 4; + +pub const BUFSIZ: c_uint = 8192; +pub const TMP_MAX: c_uint = 238328; +pub const FOPEN_MAX: c_uint = 16; +pub const FILENAME_MAX: c_uint = 4096; +pub const POSIX_MADV_DONTNEED: c_int = 4; +pub const _CS_GNU_LIBC_VERSION: c_int = 2; +pub const _CS_GNU_LIBPTHREAD_VERSION: c_int = 3; +pub const _CS_V6_ENV: c_int = 1148; +pub const _CS_V7_ENV: c_int = 1149; +pub const _SC_EQUIV_CLASS_MAX: c_int = 41; +pub const _SC_CHARCLASS_NAME_MAX: c_int = 45; +pub const _SC_PII: c_int = 53; +pub const _SC_PII_XTI: c_int = 54; +pub const _SC_PII_SOCKET: c_int = 55; +pub const _SC_PII_INTERNET: c_int = 56; +pub const _SC_PII_OSI: c_int = 57; +pub const _SC_POLL: c_int = 58; +pub const _SC_SELECT: c_int = 59; +pub const _SC_PII_INTERNET_STREAM: c_int = 61; +pub const _SC_PII_INTERNET_DGRAM: c_int = 62; +pub const _SC_PII_OSI_COTS: c_int = 63; +pub const _SC_PII_OSI_CLTS: c_int = 64; +pub const _SC_PII_OSI_M: c_int = 65; +pub const _SC_T_IOV_MAX: c_int = 66; +pub const _SC_2_C_VERSION: c_int = 96; +pub const _SC_CHAR_BIT: c_int = 101; +pub const _SC_CHAR_MAX: c_int = 102; +pub const _SC_CHAR_MIN: c_int = 103; +pub const _SC_INT_MAX: c_int = 104; +pub const _SC_INT_MIN: c_int = 105; +pub const _SC_LONG_BIT: c_int = 106; +pub const _SC_WORD_BIT: c_int = 107; +pub const _SC_MB_LEN_MAX: c_int = 108; +pub const _SC_SSIZE_MAX: c_int = 110; +pub const _SC_SCHAR_MAX: c_int = 111; +pub const _SC_SCHAR_MIN: c_int = 112; +pub const _SC_SHRT_MAX: c_int = 113; +pub const _SC_SHRT_MIN: c_int = 114; +pub const _SC_UCHAR_MAX: c_int = 115; +pub const _SC_UINT_MAX: c_int = 116; +pub const _SC_ULONG_MAX: c_int = 117; +pub const _SC_USHRT_MAX: c_int = 118; +pub const _SC_NL_ARGMAX: c_int = 119; +pub const _SC_NL_LANGMAX: c_int = 120; +pub const _SC_NL_MSGMAX: c_int = 121; +pub const _SC_NL_NMAX: c_int = 122; +pub const _SC_NL_SETMAX: c_int = 123; +pub const _SC_NL_TEXTMAX: c_int = 124; +pub const _SC_BASE: c_int = 134; +pub const _SC_C_LANG_SUPPORT: c_int = 135; +pub const _SC_C_LANG_SUPPORT_R: c_int = 136; +pub const _SC_DEVICE_IO: c_int = 140; +pub const _SC_DEVICE_SPECIFIC: c_int = 141; +pub const _SC_DEVICE_SPECIFIC_R: c_int = 142; +pub const _SC_FD_MGMT: c_int = 143; +pub const _SC_FIFO: c_int = 144; +pub const _SC_PIPE: c_int = 145; +pub const _SC_FILE_ATTRIBUTES: c_int = 146; +pub const _SC_FILE_LOCKING: c_int = 147; +pub const _SC_FILE_SYSTEM: c_int = 148; +pub const _SC_MULTI_PROCESS: c_int = 150; +pub const _SC_SINGLE_PROCESS: c_int = 151; +pub const _SC_NETWORKING: c_int = 152; +pub const _SC_REGEX_VERSION: c_int = 156; +pub const _SC_SIGNALS: c_int = 158; +pub const _SC_SYSTEM_DATABASE: c_int = 162; +pub const _SC_SYSTEM_DATABASE_R: c_int = 163; +pub const _SC_USER_GROUPS: c_int = 166; +pub const _SC_USER_GROUPS_R: c_int = 167; +pub const _SC_LEVEL1_ICACHE_SIZE: c_int = 185; +pub const _SC_LEVEL1_ICACHE_ASSOC: c_int = 186; +pub const _SC_LEVEL1_ICACHE_LINESIZE: c_int = 187; +pub const _SC_LEVEL1_DCACHE_SIZE: c_int = 188; +pub const _SC_LEVEL1_DCACHE_ASSOC: c_int = 189; +pub const _SC_LEVEL1_DCACHE_LINESIZE: c_int = 190; +pub const _SC_LEVEL2_CACHE_SIZE: c_int = 191; +pub const _SC_LEVEL2_CACHE_ASSOC: c_int = 192; +pub const _SC_LEVEL2_CACHE_LINESIZE: c_int = 193; +pub const _SC_LEVEL3_CACHE_SIZE: c_int = 194; +pub const _SC_LEVEL3_CACHE_ASSOC: c_int = 195; +pub const _SC_LEVEL3_CACHE_LINESIZE: c_int = 196; +pub const _SC_LEVEL4_CACHE_SIZE: c_int = 197; +pub const _SC_LEVEL4_CACHE_ASSOC: c_int = 198; +pub const _SC_LEVEL4_CACHE_LINESIZE: c_int = 199; +pub const O_ACCMODE: c_int = 3; +pub const ST_RELATIME: c_ulong = 4096; +pub const NI_MAXHOST: crate::socklen_t = 1025; // Most `*_SUPER_MAGIC` constants are defined at the `linux_like` level; the // following are only available on newer Linux versions than the versions // currently used in CI in some configurations, so we define them here. cfg_if! { if #[cfg(not(target_arch = "s390x"))] { - pub const BINDERFS_SUPER_MAGIC: ::c_long = 0x6c6f6f70; - pub const XFS_SUPER_MAGIC: ::c_long = 0x58465342; + pub const BINDERFS_SUPER_MAGIC: c_long = 0x6c6f6f70; + pub const XFS_SUPER_MAGIC: c_long = 0x58465342; } else if #[cfg(target_arch = "s390x")] { - pub const BINDERFS_SUPER_MAGIC: ::c_uint = 0x6c6f6f70; - pub const XFS_SUPER_MAGIC: ::c_uint = 0x58465342; + pub const BINDERFS_SUPER_MAGIC: c_uint = 0x6c6f6f70; + pub const XFS_SUPER_MAGIC: c_uint = 0x58465342; } } -pub const CPU_SETSIZE: ::c_int = 0x400; - -pub const PTRACE_TRACEME: ::c_uint = 0; -pub const PTRACE_PEEKTEXT: ::c_uint = 1; -pub const PTRACE_PEEKDATA: ::c_uint = 2; -pub const PTRACE_PEEKUSER: ::c_uint = 3; -pub const PTRACE_POKETEXT: ::c_uint = 4; -pub const PTRACE_POKEDATA: ::c_uint = 5; -pub const PTRACE_POKEUSER: ::c_uint = 6; -pub const PTRACE_CONT: ::c_uint = 7; -pub const PTRACE_KILL: ::c_uint = 8; -pub const PTRACE_SINGLESTEP: ::c_uint = 9; -pub const PTRACE_ATTACH: ::c_uint = 16; -pub const PTRACE_SYSCALL: ::c_uint = 24; -pub const PTRACE_SETOPTIONS: ::c_uint = 0x4200; -pub const PTRACE_GETEVENTMSG: ::c_uint = 0x4201; -pub const PTRACE_GETSIGINFO: ::c_uint = 0x4202; -pub const PTRACE_SETSIGINFO: ::c_uint = 0x4203; -pub const PTRACE_GETREGSET: ::c_uint = 0x4204; -pub const PTRACE_SETREGSET: ::c_uint = 0x4205; -pub const PTRACE_SEIZE: ::c_uint = 0x4206; -pub const PTRACE_INTERRUPT: ::c_uint = 0x4207; -pub const PTRACE_LISTEN: ::c_uint = 0x4208; -pub const PTRACE_PEEKSIGINFO: ::c_uint = 0x4209; -pub const PTRACE_GETSIGMASK: ::c_uint = 0x420a; -pub const PTRACE_SETSIGMASK: ::c_uint = 0x420b; -pub const PTRACE_GET_SYSCALL_INFO: ::c_uint = 0x420e; -pub const PTRACE_SYSCALL_INFO_NONE: ::__u8 = 0; -pub const PTRACE_SYSCALL_INFO_ENTRY: ::__u8 = 1; -pub const PTRACE_SYSCALL_INFO_EXIT: ::__u8 = 2; -pub const PTRACE_SYSCALL_INFO_SECCOMP: ::__u8 = 3; +pub const CPU_SETSIZE: c_int = 0x400; + +pub const PTRACE_TRACEME: c_uint = 0; +pub const PTRACE_PEEKTEXT: c_uint = 1; +pub const PTRACE_PEEKDATA: c_uint = 2; +pub const PTRACE_PEEKUSER: c_uint = 3; +pub const PTRACE_POKETEXT: c_uint = 4; +pub const PTRACE_POKEDATA: c_uint = 5; +pub const PTRACE_POKEUSER: c_uint = 6; +pub const PTRACE_CONT: c_uint = 7; +pub const PTRACE_KILL: c_uint = 8; +pub const PTRACE_SINGLESTEP: c_uint = 9; +pub const PTRACE_ATTACH: c_uint = 16; +pub const PTRACE_SYSCALL: c_uint = 24; +pub const PTRACE_SETOPTIONS: c_uint = 0x4200; +pub const PTRACE_GETEVENTMSG: c_uint = 0x4201; +pub const PTRACE_GETSIGINFO: c_uint = 0x4202; +pub const PTRACE_SETSIGINFO: c_uint = 0x4203; +pub const PTRACE_GETREGSET: c_uint = 0x4204; +pub const PTRACE_SETREGSET: c_uint = 0x4205; +pub const PTRACE_SEIZE: c_uint = 0x4206; +pub const PTRACE_INTERRUPT: c_uint = 0x4207; +pub const PTRACE_LISTEN: c_uint = 0x4208; +pub const PTRACE_PEEKSIGINFO: c_uint = 0x4209; +pub const PTRACE_GETSIGMASK: c_uint = 0x420a; +pub const PTRACE_SETSIGMASK: c_uint = 0x420b; +pub const PTRACE_GET_SYSCALL_INFO: c_uint = 0x420e; +pub const PTRACE_SYSCALL_INFO_NONE: crate::__u8 = 0; +pub const PTRACE_SYSCALL_INFO_ENTRY: crate::__u8 = 1; +pub const PTRACE_SYSCALL_INFO_EXIT: crate::__u8 = 2; +pub const PTRACE_SYSCALL_INFO_SECCOMP: crate::__u8 = 3; // linux/fs.h // Flags for preadv2/pwritev2 -pub const RWF_HIPRI: ::c_int = 0x00000001; -pub const RWF_DSYNC: ::c_int = 0x00000002; -pub const RWF_SYNC: ::c_int = 0x00000004; -pub const RWF_NOWAIT: ::c_int = 0x00000008; -pub const RWF_APPEND: ::c_int = 0x00000010; +pub const RWF_HIPRI: c_int = 0x00000001; +pub const RWF_DSYNC: c_int = 0x00000002; +pub const RWF_SYNC: c_int = 0x00000004; +pub const RWF_NOWAIT: c_int = 0x00000008; +pub const RWF_APPEND: c_int = 0x00000010; // linux/rtnetlink.h -pub const TCA_PAD: ::c_ushort = 9; -pub const TCA_DUMP_INVISIBLE: ::c_ushort = 10; -pub const TCA_CHAIN: ::c_ushort = 11; -pub const TCA_HW_OFFLOAD: ::c_ushort = 12; +pub const TCA_PAD: c_ushort = 9; +pub const TCA_DUMP_INVISIBLE: c_ushort = 10; +pub const TCA_CHAIN: c_ushort = 11; +pub const TCA_HW_OFFLOAD: c_ushort = 12; pub const RTM_DELNETCONF: u16 = 81; pub const RTM_NEWSTATS: u16 = 92; pub const RTM_GETSTATS: u16 = 94; pub const RTM_NEWCACHEREPORT: u16 = 96; -pub const RTM_F_LOOKUP_TABLE: ::c_uint = 0x1000; -pub const RTM_F_FIB_MATCH: ::c_uint = 0x2000; +pub const RTM_F_LOOKUP_TABLE: c_uint = 0x1000; +pub const RTM_F_FIB_MATCH: c_uint = 0x2000; -pub const RTA_VIA: ::c_ushort = 18; -pub const RTA_NEWDST: ::c_ushort = 19; -pub const RTA_PREF: ::c_ushort = 20; -pub const RTA_ENCAP_TYPE: ::c_ushort = 21; -pub const RTA_ENCAP: ::c_ushort = 22; -pub const RTA_EXPIRES: ::c_ushort = 23; -pub const RTA_PAD: ::c_ushort = 24; -pub const RTA_UID: ::c_ushort = 25; -pub const RTA_TTL_PROPAGATE: ::c_ushort = 26; +pub const RTA_VIA: c_ushort = 18; +pub const RTA_NEWDST: c_ushort = 19; +pub const RTA_PREF: c_ushort = 20; +pub const RTA_ENCAP_TYPE: c_ushort = 21; +pub const RTA_ENCAP: c_ushort = 22; +pub const RTA_EXPIRES: c_ushort = 23; +pub const RTA_PAD: c_ushort = 24; +pub const RTA_UID: c_ushort = 25; +pub const RTA_TTL_PROPAGATE: c_ushort = 26; // linux/neighbor.h pub const NTF_EXT_LEARNED: u8 = 0x10; pub const NTF_OFFLOADED: u8 = 0x20; -pub const NDA_MASTER: ::c_ushort = 9; -pub const NDA_LINK_NETNSID: ::c_ushort = 10; -pub const NDA_SRC_VNI: ::c_ushort = 11; +pub const NDA_MASTER: c_ushort = 9; +pub const NDA_LINK_NETNSID: c_ushort = 10; +pub const NDA_SRC_VNI: c_ushort = 11; // linux/personality.h -pub const UNAME26: ::c_int = 0x0020000; -pub const FDPIC_FUNCPTRS: ::c_int = 0x0080000; +pub const UNAME26: c_int = 0x0020000; +pub const FDPIC_FUNCPTRS: c_int = 0x0080000; // linux/if_addr.h -pub const IFA_FLAGS: ::c_ushort = 8; +pub const IFA_FLAGS: c_ushort = 8; pub const IFA_F_MANAGETEMPADDR: u32 = 0x100; pub const IFA_F_NOPREFIXROUTE: u32 = 0x200; pub const IFA_F_MCAUTOJOIN: u32 = 0x400; pub const IFA_F_STABLE_PRIVACY: u32 = 0x800; -pub const MAX_LINKS: ::c_int = 32; +pub const MAX_LINKS: c_int = 32; -pub const GENL_UNS_ADMIN_PERM: ::c_int = 0x10; +pub const GENL_UNS_ADMIN_PERM: c_int = 0x10; -pub const GENL_ID_VFS_DQUOT: ::c_int = ::NLMSG_MIN_TYPE + 1; -pub const GENL_ID_PMCRAID: ::c_int = ::NLMSG_MIN_TYPE + 2; +pub const GENL_ID_VFS_DQUOT: c_int = crate::NLMSG_MIN_TYPE + 1; +pub const GENL_ID_PMCRAID: c_int = crate::NLMSG_MIN_TYPE + 2; // linux/if_xdp.h -pub const XDP_SHARED_UMEM: ::__u16 = 1 << 0; -pub const XDP_COPY: ::__u16 = 1 << 1; -pub const XDP_ZEROCOPY: ::__u16 = 1 << 2; -pub const XDP_USE_NEED_WAKEUP: ::__u16 = 1 << 3; -pub const XDP_USE_SG: ::__u16 = 1 << 4; +pub const XDP_SHARED_UMEM: crate::__u16 = 1 << 0; +pub const XDP_COPY: crate::__u16 = 1 << 1; +pub const XDP_ZEROCOPY: crate::__u16 = 1 << 2; +pub const XDP_USE_NEED_WAKEUP: crate::__u16 = 1 << 3; +pub const XDP_USE_SG: crate::__u16 = 1 << 4; -pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: ::__u32 = 1 << 0; +pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: crate::__u32 = 1 << 0; -pub const XDP_RING_NEED_WAKEUP: ::__u32 = 1 << 0; +pub const XDP_RING_NEED_WAKEUP: crate::__u32 = 1 << 0; -pub const XDP_MMAP_OFFSETS: ::c_int = 1; -pub const XDP_RX_RING: ::c_int = 2; -pub const XDP_TX_RING: ::c_int = 3; -pub const XDP_UMEM_REG: ::c_int = 4; -pub const XDP_UMEM_FILL_RING: ::c_int = 5; -pub const XDP_UMEM_COMPLETION_RING: ::c_int = 6; -pub const XDP_STATISTICS: ::c_int = 7; -pub const XDP_OPTIONS: ::c_int = 8; +pub const XDP_MMAP_OFFSETS: c_int = 1; +pub const XDP_RX_RING: c_int = 2; +pub const XDP_TX_RING: c_int = 3; +pub const XDP_UMEM_REG: c_int = 4; +pub const XDP_UMEM_FILL_RING: c_int = 5; +pub const XDP_UMEM_COMPLETION_RING: c_int = 6; +pub const XDP_STATISTICS: c_int = 7; +pub const XDP_OPTIONS: c_int = 8; -pub const XDP_OPTIONS_ZEROCOPY: ::__u32 = 1 << 0; +pub const XDP_OPTIONS_ZEROCOPY: crate::__u32 = 1 << 0; -pub const XDP_PGOFF_RX_RING: ::off_t = 0; -pub const XDP_PGOFF_TX_RING: ::off_t = 0x80000000; -pub const XDP_UMEM_PGOFF_FILL_RING: ::c_ulonglong = 0x100000000; -pub const XDP_UMEM_PGOFF_COMPLETION_RING: ::c_ulonglong = 0x180000000; +pub const XDP_PGOFF_RX_RING: off_t = 0; +pub const XDP_PGOFF_TX_RING: off_t = 0x80000000; +pub const XDP_UMEM_PGOFF_FILL_RING: c_ulonglong = 0x100000000; +pub const XDP_UMEM_PGOFF_COMPLETION_RING: c_ulonglong = 0x180000000; -pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: ::c_int = 48; -pub const XSK_UNALIGNED_BUF_ADDR_MASK: ::c_ulonglong = (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1; +pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: c_int = 48; +pub const XSK_UNALIGNED_BUF_ADDR_MASK: c_ulonglong = (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1; -pub const XDP_PKT_CONTD: ::__u32 = 1 << 0; +pub const XDP_PKT_CONTD: crate::__u32 = 1 << 0; pub const ELFOSABI_ARM_AEABI: u8 = 64; // linux/sched.h -pub const CLONE_NEWTIME: ::c_int = 0x80; +pub const CLONE_NEWTIME: c_int = 0x80; // DIFF(main): changed to `c_ulonglong` in e9abac9ac2 -pub const CLONE_CLEAR_SIGHAND: ::c_int = 0x100000000; -pub const CLONE_INTO_CGROUP: ::c_int = 0x200000000; +pub const CLONE_CLEAR_SIGHAND: c_int = 0x100000000; +pub const CLONE_INTO_CGROUP: c_int = 0x200000000; // linux/keyctl.h pub const KEYCTL_DH_COMPUTE: u32 = 23; @@ -1123,73 +1127,73 @@ cfg_if! { } } -pub const M_MXFAST: ::c_int = 1; -pub const M_NLBLKS: ::c_int = 2; -pub const M_GRAIN: ::c_int = 3; -pub const M_KEEP: ::c_int = 4; -pub const M_TRIM_THRESHOLD: ::c_int = -1; -pub const M_TOP_PAD: ::c_int = -2; -pub const M_MMAP_THRESHOLD: ::c_int = -3; -pub const M_MMAP_MAX: ::c_int = -4; -pub const M_CHECK_ACTION: ::c_int = -5; -pub const M_PERTURB: ::c_int = -6; -pub const M_ARENA_TEST: ::c_int = -7; -pub const M_ARENA_MAX: ::c_int = -8; - -pub const SOMAXCONN: ::c_int = 4096; +pub const M_MXFAST: c_int = 1; +pub const M_NLBLKS: c_int = 2; +pub const M_GRAIN: c_int = 3; +pub const M_KEEP: c_int = 4; +pub const M_TRIM_THRESHOLD: c_int = -1; +pub const M_TOP_PAD: c_int = -2; +pub const M_MMAP_THRESHOLD: c_int = -3; +pub const M_MMAP_MAX: c_int = -4; +pub const M_CHECK_ACTION: c_int = -5; +pub const M_PERTURB: c_int = -6; +pub const M_ARENA_TEST: c_int = -7; +pub const M_ARENA_MAX: c_int = -8; + +pub const SOMAXCONN: c_int = 4096; // linux/mount.h -pub const MOVE_MOUNT_F_SYMLINKS: ::c_uint = 0x00000001; -pub const MOVE_MOUNT_F_AUTOMOUNTS: ::c_uint = 0x00000002; -pub const MOVE_MOUNT_F_EMPTY_PATH: ::c_uint = 0x00000004; -pub const MOVE_MOUNT_T_SYMLINKS: ::c_uint = 0x00000010; -pub const MOVE_MOUNT_T_AUTOMOUNTS: ::c_uint = 0x00000020; -pub const MOVE_MOUNT_T_EMPTY_PATH: ::c_uint = 0x00000040; -pub const MOVE_MOUNT_SET_GROUP: ::c_uint = 0x00000100; -pub const MOVE_MOUNT_BENEATH: ::c_uint = 0x00000200; +pub const MOVE_MOUNT_F_SYMLINKS: c_uint = 0x00000001; +pub const MOVE_MOUNT_F_AUTOMOUNTS: c_uint = 0x00000002; +pub const MOVE_MOUNT_F_EMPTY_PATH: c_uint = 0x00000004; +pub const MOVE_MOUNT_T_SYMLINKS: c_uint = 0x00000010; +pub const MOVE_MOUNT_T_AUTOMOUNTS: c_uint = 0x00000020; +pub const MOVE_MOUNT_T_EMPTY_PATH: c_uint = 0x00000040; +pub const MOVE_MOUNT_SET_GROUP: c_uint = 0x00000100; +pub const MOVE_MOUNT_BENEATH: c_uint = 0x00000200; // sys/timex.h -pub const ADJ_OFFSET: ::c_uint = 0x0001; -pub const ADJ_FREQUENCY: ::c_uint = 0x0002; -pub const ADJ_MAXERROR: ::c_uint = 0x0004; -pub const ADJ_ESTERROR: ::c_uint = 0x0008; -pub const ADJ_STATUS: ::c_uint = 0x0010; -pub const ADJ_TIMECONST: ::c_uint = 0x0020; -pub const ADJ_TAI: ::c_uint = 0x0080; -pub const ADJ_SETOFFSET: ::c_uint = 0x0100; -pub const ADJ_MICRO: ::c_uint = 0x1000; -pub const ADJ_NANO: ::c_uint = 0x2000; -pub const ADJ_TICK: ::c_uint = 0x4000; -pub const ADJ_OFFSET_SINGLESHOT: ::c_uint = 0x8001; -pub const ADJ_OFFSET_SS_READ: ::c_uint = 0xa001; -pub const MOD_OFFSET: ::c_uint = ADJ_OFFSET; -pub const MOD_FREQUENCY: ::c_uint = ADJ_FREQUENCY; -pub const MOD_MAXERROR: ::c_uint = ADJ_MAXERROR; -pub const MOD_ESTERROR: ::c_uint = ADJ_ESTERROR; -pub const MOD_STATUS: ::c_uint = ADJ_STATUS; -pub const MOD_TIMECONST: ::c_uint = ADJ_TIMECONST; -pub const MOD_CLKB: ::c_uint = ADJ_TICK; -pub const MOD_CLKA: ::c_uint = ADJ_OFFSET_SINGLESHOT; -pub const MOD_TAI: ::c_uint = ADJ_TAI; -pub const MOD_MICRO: ::c_uint = ADJ_MICRO; -pub const MOD_NANO: ::c_uint = ADJ_NANO; -pub const STA_PLL: ::c_int = 0x0001; -pub const STA_PPSFREQ: ::c_int = 0x0002; -pub const STA_PPSTIME: ::c_int = 0x0004; -pub const STA_FLL: ::c_int = 0x0008; -pub const STA_INS: ::c_int = 0x0010; -pub const STA_DEL: ::c_int = 0x0020; -pub const STA_UNSYNC: ::c_int = 0x0040; -pub const STA_FREQHOLD: ::c_int = 0x0080; -pub const STA_PPSSIGNAL: ::c_int = 0x0100; -pub const STA_PPSJITTER: ::c_int = 0x0200; -pub const STA_PPSWANDER: ::c_int = 0x0400; -pub const STA_PPSERROR: ::c_int = 0x0800; -pub const STA_CLOCKERR: ::c_int = 0x1000; -pub const STA_NANO: ::c_int = 0x2000; -pub const STA_MODE: ::c_int = 0x4000; -pub const STA_CLK: ::c_int = 0x8000; -pub const STA_RONLY: ::c_int = STA_PPSSIGNAL +pub const ADJ_OFFSET: c_uint = 0x0001; +pub const ADJ_FREQUENCY: c_uint = 0x0002; +pub const ADJ_MAXERROR: c_uint = 0x0004; +pub const ADJ_ESTERROR: c_uint = 0x0008; +pub const ADJ_STATUS: c_uint = 0x0010; +pub const ADJ_TIMECONST: c_uint = 0x0020; +pub const ADJ_TAI: c_uint = 0x0080; +pub const ADJ_SETOFFSET: c_uint = 0x0100; +pub const ADJ_MICRO: c_uint = 0x1000; +pub const ADJ_NANO: c_uint = 0x2000; +pub const ADJ_TICK: c_uint = 0x4000; +pub const ADJ_OFFSET_SINGLESHOT: c_uint = 0x8001; +pub const ADJ_OFFSET_SS_READ: c_uint = 0xa001; +pub const MOD_OFFSET: c_uint = ADJ_OFFSET; +pub const MOD_FREQUENCY: c_uint = ADJ_FREQUENCY; +pub const MOD_MAXERROR: c_uint = ADJ_MAXERROR; +pub const MOD_ESTERROR: c_uint = ADJ_ESTERROR; +pub const MOD_STATUS: c_uint = ADJ_STATUS; +pub const MOD_TIMECONST: c_uint = ADJ_TIMECONST; +pub const MOD_CLKB: c_uint = ADJ_TICK; +pub const MOD_CLKA: c_uint = ADJ_OFFSET_SINGLESHOT; +pub const MOD_TAI: c_uint = ADJ_TAI; +pub const MOD_MICRO: c_uint = ADJ_MICRO; +pub const MOD_NANO: c_uint = ADJ_NANO; +pub const STA_PLL: c_int = 0x0001; +pub const STA_PPSFREQ: c_int = 0x0002; +pub const STA_PPSTIME: c_int = 0x0004; +pub const STA_FLL: c_int = 0x0008; +pub const STA_INS: c_int = 0x0010; +pub const STA_DEL: c_int = 0x0020; +pub const STA_UNSYNC: c_int = 0x0040; +pub const STA_FREQHOLD: c_int = 0x0080; +pub const STA_PPSSIGNAL: c_int = 0x0100; +pub const STA_PPSJITTER: c_int = 0x0200; +pub const STA_PPSWANDER: c_int = 0x0400; +pub const STA_PPSERROR: c_int = 0x0800; +pub const STA_CLOCKERR: c_int = 0x1000; +pub const STA_NANO: c_int = 0x2000; +pub const STA_MODE: c_int = 0x4000; +pub const STA_CLK: c_int = 0x8000; +pub const STA_RONLY: c_int = STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | STA_PPSERROR @@ -1197,27 +1201,27 @@ pub const STA_RONLY: ::c_int = STA_PPSSIGNAL | STA_NANO | STA_MODE | STA_CLK; -pub const NTP_API: ::c_int = 4; -pub const TIME_OK: ::c_int = 0; -pub const TIME_INS: ::c_int = 1; -pub const TIME_DEL: ::c_int = 2; -pub const TIME_OOP: ::c_int = 3; -pub const TIME_WAIT: ::c_int = 4; -pub const TIME_ERROR: ::c_int = 5; -pub const TIME_BAD: ::c_int = TIME_ERROR; -pub const MAXTC: ::c_long = 6; +pub const NTP_API: c_int = 4; +pub const TIME_OK: c_int = 0; +pub const TIME_INS: c_int = 1; +pub const TIME_DEL: c_int = 2; +pub const TIME_OOP: c_int = 3; +pub const TIME_WAIT: c_int = 4; +pub const TIME_ERROR: c_int = 5; +pub const TIME_BAD: c_int = TIME_ERROR; +pub const MAXTC: c_long = 6; // Portable GLOB_* flags are defined at the `linux_like` level. // The following are GNU extensions. -pub const GLOB_PERIOD: ::c_int = 1 << 7; -pub const GLOB_ALTDIRFUNC: ::c_int = 1 << 9; -pub const GLOB_BRACE: ::c_int = 1 << 10; -pub const GLOB_NOMAGIC: ::c_int = 1 << 11; -pub const GLOB_TILDE: ::c_int = 1 << 12; -pub const GLOB_ONLYDIR: ::c_int = 1 << 13; -pub const GLOB_TILDE_CHECK: ::c_int = 1 << 14; +pub const GLOB_PERIOD: c_int = 1 << 7; +pub const GLOB_ALTDIRFUNC: c_int = 1 << 9; +pub const GLOB_BRACE: c_int = 1 << 10; +pub const GLOB_NOMAGIC: c_int = 1 << 11; +pub const GLOB_TILDE: c_int = 1 << 12; +pub const GLOB_ONLYDIR: c_int = 1 << 13; +pub const GLOB_TILDE_CHECK: c_int = 1 << 14; -pub const MADV_COLLAPSE: ::c_int = 25; +pub const MADV_COLLAPSE: c_int = 25; cfg_if! { if #[cfg(any( @@ -1228,20 +1232,20 @@ cfg_if! { target_arch = "riscv64", target_arch = "riscv32" ))] { - pub const PTHREAD_STACK_MIN: ::size_t = 16384; + pub const PTHREAD_STACK_MIN: size_t = 16384; } else if #[cfg(any(target_arch = "sparc", target_arch = "sparc64"))] { - pub const PTHREAD_STACK_MIN: ::size_t = 0x6000; + pub const PTHREAD_STACK_MIN: size_t = 0x6000; } else { - pub const PTHREAD_STACK_MIN: ::size_t = 131072; + pub const PTHREAD_STACK_MIN: size_t = 131072; } } -pub const PTHREAD_MUTEX_ADAPTIVE_NP: ::c_int = 3; +pub const PTHREAD_MUTEX_ADAPTIVE_NP: c_int = 3; -pub const REG_STARTEND: ::c_int = 4; +pub const REG_STARTEND: c_int = 4; -pub const REG_EEND: ::c_int = 14; -pub const REG_ESIZE: ::c_int = 15; -pub const REG_ERPAREN: ::c_int = 16; +pub const REG_EEND: c_int = 14; +pub const REG_ESIZE: c_int = 15; +pub const REG_ERPAREN: c_int = 16; cfg_if! { if #[cfg(any( @@ -1253,8 +1257,8 @@ cfg_if! { target_arch = "riscv64", target_arch = "s390x" ))] { - pub const TUNSETCARRIER: ::Ioctl = 0x400454e2; - pub const TUNGETDEVNETNS: ::Ioctl = 0x54e3; + pub const TUNSETCARRIER: Ioctl = 0x400454e2; + pub const TUNGETDEVNETNS: Ioctl = 0x54e3; } else if #[cfg(any( target_arch = "mips", target_arch = "mips64", @@ -1263,8 +1267,8 @@ cfg_if! { target_arch = "sparc", target_arch = "sparc64" ))] { - pub const TUNSETCARRIER: ::Ioctl = 0x800454e2; - pub const TUNGETDEVNETNS: ::Ioctl = 0x200054e3; + pub const TUNSETCARRIER: Ioctl = 0x800454e2; + pub const TUNGETDEVNETNS: Ioctl = 0x200054e3; } else { // Unknown target_arch } @@ -1272,279 +1276,278 @@ cfg_if! { extern "C" { pub fn fgetspent_r( - fp: *mut ::FILE, - spbuf: *mut ::spwd, - buf: *mut ::c_char, - buflen: ::size_t, - spbufp: *mut *mut ::spwd, - ) -> ::c_int; + fp: *mut crate::FILE, + spbuf: *mut crate::spwd, + buf: *mut c_char, + buflen: size_t, + spbufp: *mut *mut crate::spwd, + ) -> c_int; pub fn sgetspent_r( - s: *const ::c_char, - spbuf: *mut ::spwd, - buf: *mut ::c_char, - buflen: ::size_t, - spbufp: *mut *mut ::spwd, - ) -> ::c_int; + s: *const c_char, + spbuf: *mut crate::spwd, + buf: *mut c_char, + buflen: size_t, + spbufp: *mut *mut crate::spwd, + ) -> c_int; pub fn getspent_r( - spbuf: *mut ::spwd, - buf: *mut ::c_char, - buflen: ::size_t, - spbufp: *mut *mut ::spwd, - ) -> ::c_int; + spbuf: *mut crate::spwd, + buf: *mut c_char, + buflen: size_t, + spbufp: *mut *mut crate::spwd, + ) -> c_int; pub fn qsort_r( - base: *mut ::c_void, - num: ::size_t, - size: ::size_t, - compar: ::Option< - unsafe extern "C" fn(*const ::c_void, *const ::c_void, *mut ::c_void) -> ::c_int, - >, - arg: *mut ::c_void, + base: *mut c_void, + num: size_t, + size: size_t, + compar: Option c_int>, + arg: *mut c_void, ); pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - ) -> ::c_int; + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_int, + ) -> c_int; pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - timeout: *mut ::timespec, - ) -> ::c_int; - - pub fn getrlimit64(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit64) -> ::c_int; - pub fn setrlimit64(resource: ::__rlimit_resource_t, rlim: *const ::rlimit64) -> ::c_int; - pub fn getrlimit(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::__rlimit_resource_t, rlim: *const ::rlimit) -> ::c_int; + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_int, + timeout: *mut crate::timespec, + ) -> c_int; + + pub fn getrlimit64(resource: crate::__rlimit_resource_t, rlim: *mut crate::rlimit64) -> c_int; + pub fn setrlimit64(resource: crate::__rlimit_resource_t, rlim: *const crate::rlimit64) + -> c_int; + pub fn getrlimit(resource: crate::__rlimit_resource_t, rlim: *mut crate::rlimit) -> c_int; + pub fn setrlimit(resource: crate::__rlimit_resource_t, rlim: *const crate::rlimit) -> c_int; pub fn prlimit( - pid: ::pid_t, - resource: ::__rlimit_resource_t, - new_limit: *const ::rlimit, - old_limit: *mut ::rlimit, - ) -> ::c_int; + pid: crate::pid_t, + resource: crate::__rlimit_resource_t, + new_limit: *const crate::rlimit, + old_limit: *mut crate::rlimit, + ) -> c_int; pub fn prlimit64( - pid: ::pid_t, - resource: ::__rlimit_resource_t, - new_limit: *const ::rlimit64, - old_limit: *mut ::rlimit64, - ) -> ::c_int; - pub fn utmpname(file: *const ::c_char) -> ::c_int; - pub fn utmpxname(file: *const ::c_char) -> ::c_int; + pid: crate::pid_t, + resource: crate::__rlimit_resource_t, + new_limit: *const crate::rlimit64, + old_limit: *mut crate::rlimit64, + ) -> c_int; + pub fn utmpname(file: *const c_char) -> c_int; + pub fn utmpxname(file: *const c_char) -> c_int; pub fn getutxent() -> *mut utmpx; pub fn getutxid(ut: *const utmpx) -> *mut utmpx; pub fn getutxline(ut: *const utmpx) -> *mut utmpx; pub fn pututxline(ut: *const utmpx) -> *mut utmpx; pub fn setutxent(); pub fn endutxent(); - pub fn getpt() -> ::c_int; - pub fn mallopt(param: ::c_int, value: ::c_int) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; - pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; - pub fn getauxval(type_: ::c_ulong) -> ::c_ulong; - - pub fn adjtimex(buf: *mut timex) -> ::c_int; - pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; + pub fn getpt() -> c_int; + pub fn mallopt(param: c_int, value: c_int) -> c_int; + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut crate::timezone) -> c_int; + pub fn getentropy(buf: *mut c_void, buflen: size_t) -> c_int; + pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; + pub fn getauxval(type_: c_ulong) -> c_ulong; + + pub fn adjtimex(buf: *mut timex) -> c_int; + pub fn ntp_adjtime(buf: *mut timex) -> c_int; #[link_name = "ntp_gettimex"] - pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; - pub fn clock_adjtime(clk_id: ::clockid_t, buf: *mut ::timex) -> ::c_int; + pub fn ntp_gettime(buf: *mut ntptimeval) -> c_int; + pub fn clock_adjtime(clk_id: crate::clockid_t, buf: *mut crate::timex) -> c_int; pub fn fanotify_mark( - fd: ::c_int, - flags: ::c_uint, + fd: c_int, + flags: c_uint, mask: u64, - dirfd: ::c_int, - path: *const ::c_char, - ) -> ::c_int; + dirfd: c_int, + path: *const c_char, + ) -> c_int; pub fn preadv2( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t, - flags: ::c_int, - ) -> ::ssize_t; + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: off_t, + flags: c_int, + ) -> ssize_t; pub fn pwritev2( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t, - flags: ::c_int, - ) -> ::ssize_t; + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: off_t, + flags: c_int, + ) -> ssize_t; pub fn preadv64v2( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, - flags: ::c_int, - ) -> ::ssize_t; + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: off64_t, + flags: c_int, + ) -> ssize_t; pub fn pwritev64v2( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, - flags: ::c_int, - ) -> ::ssize_t; + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: off64_t, + flags: c_int, + ) -> ssize_t; pub fn renameat2( - olddirfd: ::c_int, - oldpath: *const ::c_char, - newdirfd: ::c_int, - newpath: *const ::c_char, - flags: ::c_uint, - ) -> ::c_int; + olddirfd: c_int, + oldpath: *const c_char, + newdirfd: c_int, + newpath: *const c_char, + flags: c_uint, + ) -> c_int; // Added in `glibc` 2.25 - pub fn explicit_bzero(s: *mut ::c_void, len: ::size_t); + pub fn explicit_bzero(s: *mut c_void, len: size_t); // Added in `glibc` 2.29 - pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; + pub fn reallocarray(ptr: *mut c_void, nmemb: size_t, size: size_t) -> *mut c_void; - pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; - pub fn backtrace(buf: *mut *mut ::c_void, sz: ::c_int) -> ::c_int; + pub fn ctermid(s: *mut c_char) -> *mut c_char; + pub fn backtrace(buf: *mut *mut c_void, sz: c_int) -> c_int; pub fn glob64( - pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, + pattern: *const c_char, + flags: c_int, + errfunc: Option c_int>, pglob: *mut glob64_t, - ) -> ::c_int; + ) -> c_int; pub fn globfree64(pglob: *mut glob64_t); - pub fn ptrace(request: ::c_uint, ...) -> ::c_long; + pub fn ptrace(request: c_uint, ...) -> c_long; pub fn pthread_attr_getaffinity_np( - attr: *const ::pthread_attr_t, - cpusetsize: ::size_t, - cpuset: *mut ::cpu_set_t, - ) -> ::c_int; + attr: *const crate::pthread_attr_t, + cpusetsize: size_t, + cpuset: *mut crate::cpu_set_t, + ) -> c_int; pub fn pthread_attr_setaffinity_np( - attr: *mut ::pthread_attr_t, - cpusetsize: ::size_t, - cpuset: *const ::cpu_set_t, - ) -> ::c_int; - pub fn getpriority(which: ::__priority_which_t, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::__priority_which_t, who: ::id_t, prio: ::c_int) -> ::c_int; + attr: *mut crate::pthread_attr_t, + cpusetsize: size_t, + cpuset: *const crate::cpu_set_t, + ) -> c_int; + pub fn getpriority(which: crate::__priority_which_t, who: crate::id_t) -> c_int; + pub fn setpriority(which: crate::__priority_which_t, who: crate::id_t, prio: c_int) -> c_int; pub fn pthread_rwlockattr_getkind_np( - attr: *const ::pthread_rwlockattr_t, - val: *mut ::c_int, - ) -> ::c_int; + attr: *const crate::pthread_rwlockattr_t, + val: *mut c_int, + ) -> c_int; pub fn pthread_rwlockattr_setkind_np( - attr: *mut ::pthread_rwlockattr_t, - val: ::c_int, - ) -> ::c_int; - pub fn pthread_sigqueue(thread: ::pthread_t, sig: ::c_int, value: ::sigval) -> ::c_int; - pub fn mallinfo() -> ::mallinfo; - pub fn mallinfo2() -> ::mallinfo2; + attr: *mut crate::pthread_rwlockattr_t, + val: c_int, + ) -> c_int; + pub fn pthread_sigqueue(thread: crate::pthread_t, sig: c_int, value: crate::sigval) -> c_int; + pub fn mallinfo() -> crate::mallinfo; + pub fn mallinfo2() -> crate::mallinfo2; pub fn malloc_stats(); - pub fn malloc_info(options: ::c_int, stream: *mut ::FILE) -> ::c_int; - pub fn malloc_usable_size(ptr: *mut ::c_void) -> ::size_t; + pub fn malloc_info(options: c_int, stream: *mut crate::FILE) -> c_int; + pub fn malloc_usable_size(ptr: *mut c_void) -> size_t; pub fn getpwent_r( - pwd: *mut ::passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::passwd, - ) -> ::c_int; + pwd: *mut crate::passwd, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::passwd, + ) -> c_int; pub fn getgrent_r( - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; pub fn fgetpwent_r( - stream: *mut ::FILE, - pwd: *mut ::passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::passwd, - ) -> ::c_int; + stream: *mut crate::FILE, + pwd: *mut crate::passwd, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::passwd, + ) -> c_int; pub fn fgetgrent_r( - stream: *mut ::FILE, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; + stream: *mut crate::FILE, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; - pub fn putpwent(p: *const ::passwd, stream: *mut ::FILE) -> ::c_int; - pub fn putgrent(grp: *const ::group, stream: *mut ::FILE) -> ::c_int; + pub fn putpwent(p: *const crate::passwd, stream: *mut crate::FILE) -> c_int; + pub fn putgrent(grp: *const crate::group, stream: *mut crate::FILE) -> c_int; - pub fn sethostid(hostid: ::c_long) -> ::c_int; + pub fn sethostid(hostid: c_long) -> c_int; - pub fn memfd_create(name: *const ::c_char, flags: ::c_uint) -> ::c_int; - pub fn mlock2(addr: *const ::c_void, len: ::size_t, flags: ::c_uint) -> ::c_int; + pub fn memfd_create(name: *const c_char, flags: c_uint) -> c_int; + pub fn mlock2(addr: *const c_void, len: size_t, flags: c_uint) -> c_int; - pub fn euidaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; - pub fn eaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; + pub fn euidaccess(pathname: *const c_char, mode: c_int) -> c_int; + pub fn eaccess(pathname: *const c_char, mode: c_int) -> c_int; - pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char; - pub fn ctime_r(timep: *const time_t, buf: *mut ::c_char) -> *mut ::c_char; + pub fn asctime_r(tm: *const crate::tm, buf: *mut c_char) -> *mut c_char; + pub fn ctime_r(timep: *const time_t, buf: *mut c_char) -> *mut c_char; - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; + pub fn dirname(path: *mut c_char) -> *mut c_char; /// POSIX version of `basename(3)`, defined in `libgen.h`. #[link_name = "__xpg_basename"] - pub fn posix_basename(path: *mut ::c_char) -> *mut ::c_char; + pub fn posix_basename(path: *mut c_char) -> *mut c_char; /// GNU version of `basename(3)`, defined in `string.h`. #[link_name = "basename"] - pub fn gnu_basename(path: *const ::c_char) -> *mut ::c_char; - pub fn dlmopen(lmid: Lmid_t, filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; - pub fn dlinfo(handle: *mut ::c_void, request: ::c_int, info: *mut ::c_void) -> ::c_int; + pub fn gnu_basename(path: *const c_char) -> *mut c_char; + pub fn dlmopen(lmid: Lmid_t, filename: *const c_char, flag: c_int) -> *mut c_void; + pub fn dlinfo(handle: *mut c_void, request: c_int, info: *mut c_void) -> c_int; pub fn dladdr1( - addr: *const ::c_void, - info: *mut ::Dl_info, - extra_info: *mut *mut ::c_void, - flags: ::c_int, - ) -> ::c_int; - pub fn malloc_trim(__pad: ::size_t) -> ::c_int; - pub fn gnu_get_libc_release() -> *const ::c_char; - pub fn gnu_get_libc_version() -> *const ::c_char; + addr: *const c_void, + info: *mut crate::Dl_info, + extra_info: *mut *mut c_void, + flags: c_int, + ) -> c_int; + pub fn malloc_trim(__pad: size_t) -> c_int; + pub fn gnu_get_libc_release() -> *const c_char; + pub fn gnu_get_libc_version() -> *const c_char; // posix/spawn.h // Added in `glibc` 2.29 pub fn posix_spawn_file_actions_addchdir_np( - actions: *mut ::posix_spawn_file_actions_t, - path: *const ::c_char, - ) -> ::c_int; + actions: *mut crate::posix_spawn_file_actions_t, + path: *const c_char, + ) -> c_int; // Added in `glibc` 2.29 pub fn posix_spawn_file_actions_addfchdir_np( - actions: *mut ::posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; + actions: *mut crate::posix_spawn_file_actions_t, + fd: c_int, + ) -> c_int; // Added in `glibc` 2.34 pub fn posix_spawn_file_actions_addclosefrom_np( - actions: *mut ::posix_spawn_file_actions_t, - from: ::c_int, - ) -> ::c_int; + actions: *mut crate::posix_spawn_file_actions_t, + from: c_int, + ) -> c_int; // Added in `glibc` 2.35 pub fn posix_spawn_file_actions_addtcsetpgrp_np( - actions: *mut ::posix_spawn_file_actions_t, - tcfd: ::c_int, - ) -> ::c_int; + actions: *mut crate::posix_spawn_file_actions_t, + tcfd: c_int, + ) -> c_int; // mntent.h pub fn getmntent_r( - stream: *mut ::FILE, - mntbuf: *mut ::mntent, - buf: *mut ::c_char, - buflen: ::c_int, - ) -> *mut ::mntent; + stream: *mut crate::FILE, + mntbuf: *mut crate::mntent, + buf: *mut c_char, + buflen: c_int, + ) -> *mut crate::mntent; pub fn execveat( - dirfd: ::c_int, - pathname: *const ::c_char, + dirfd: c_int, + pathname: *const c_char, argv: *const *mut c_char, envp: *const *mut c_char, - flags: ::c_int, - ) -> ::c_int; + flags: c_int, + ) -> c_int; // Added in `glibc` 2.34 - pub fn close_range(first: ::c_uint, last: ::c_uint, flags: ::c_int) -> ::c_int; + pub fn close_range(first: c_uint, last: c_uint, flags: c_int) -> c_int; - pub fn mq_notify(mqdes: ::mqd_t, sevp: *const ::sigevent) -> ::c_int; + pub fn mq_notify(mqdes: crate::mqd_t, sevp: *const crate::sigevent) -> c_int; pub fn epoll_pwait2( - epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: *const ::timespec, - sigmask: *const ::sigset_t, - ) -> ::c_int; + epfd: c_int, + events: *mut crate::epoll_event, + maxevents: c_int, + timeout: *const crate::timespec, + sigmask: *const crate::sigset_t, + ) -> c_int; } cfg_if! { diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 862aa09a55329..889fc9980a94f 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2,6 +2,10 @@ use core::mem::size_of; +use crate::{ + c_double, c_int, c_longlong, c_short, c_uchar, c_uint, c_ushort, c_void, size_t, ssize_t, +}; + pub type useconds_t = u32; pub type dev_t = u64; pub type socklen_t = u32; @@ -10,22 +14,22 @@ pub type ino64_t = u64; pub type off64_t = i64; pub type blkcnt64_t = i64; pub type rlim64_t = u64; -pub type mqd_t = ::c_int; -pub type nfds_t = ::c_ulong; -pub type nl_item = ::c_int; -pub type idtype_t = ::c_uint; -pub type loff_t = ::c_longlong; -pub type pthread_key_t = ::c_uint; -pub type pthread_once_t = ::c_int; -pub type pthread_spinlock_t = ::c_int; +pub type mqd_t = c_int; +pub type nfds_t = c_ulong; +pub type nl_item = c_int; +pub type idtype_t = c_uint; +pub type loff_t = c_longlong; +pub type pthread_key_t = c_uint; +pub type pthread_once_t = c_int; +pub type pthread_spinlock_t = c_int; pub type __kernel_fsid_t = __c_anonymous__kernel_fsid_t; -pub type __kernel_clockid_t = ::c_int; +pub type __kernel_clockid_t = c_int; -pub type __u8 = ::c_uchar; -pub type __u16 = ::c_ushort; -pub type __s16 = ::c_short; -pub type __u32 = ::c_uint; -pub type __s32 = ::c_int; +pub type __u8 = c_uchar; +pub type __u16 = c_ushort; +pub type __s16 = c_short; +pub type __u32 = c_uint; +pub type __s32 = c_int; pub type Elf32_Half = u16; pub type Elf32_Word = u32; @@ -66,10 +70,10 @@ pub type pgn_t = u32; pub type priority_t = u8; pub type name_t = u64; -pub type iconv_t = *mut ::c_void; +pub type iconv_t = *mut c_void; // linux/sctp.h -pub type sctp_assoc_t = ::__s32; +pub type sctp_assoc_t = __s32; pub type eventfd_t = u64; missing! { @@ -88,38 +92,38 @@ e! { s! { pub struct glob_t { - pub gl_pathc: ::size_t, + pub gl_pathc: size_t, pub gl_pathv: *mut *mut c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, + pub gl_offs: size_t, + pub gl_flags: c_int, - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, + __unused1: *mut c_void, + __unused2: *mut c_void, + __unused3: *mut c_void, + __unused4: *mut c_void, + __unused5: *mut c_void, } pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, + pub pw_name: *mut c_char, + pub pw_passwd: *mut c_char, + pub pw_uid: crate::uid_t, + pub pw_gid: crate::gid_t, + pub pw_gecos: *mut c_char, + pub pw_dir: *mut c_char, + pub pw_shell: *mut c_char, } pub struct spwd { - pub sp_namp: *mut ::c_char, - pub sp_pwdp: *mut ::c_char, - pub sp_lstchg: ::c_long, - pub sp_min: ::c_long, - pub sp_max: ::c_long, - pub sp_warn: ::c_long, - pub sp_inact: ::c_long, - pub sp_expire: ::c_long, - pub sp_flag: ::c_ulong, + pub sp_namp: *mut c_char, + pub sp_pwdp: *mut c_char, + pub sp_lstchg: c_long, + pub sp_min: c_long, + pub sp_max: c_long, + pub sp_warn: c_long, + pub sp_inact: c_long, + pub sp_expire: c_long, + pub sp_flag: c_ulong, } pub struct dqblk { @@ -160,138 +164,138 @@ s! { } pub struct itimerspec { - pub it_interval: ::timespec, - pub it_value: ::timespec, + pub it_interval: crate::timespec, + pub it_value: crate::timespec, } pub struct fsid_t { - __val: [::c_int; 2], + __val: [c_int; 2], } pub struct fanout_args { #[cfg(target_endian = "little")] - pub id: ::__u16, - pub type_flags: ::__u16, + pub id: __u16, + pub type_flags: __u16, #[cfg(target_endian = "big")] - pub id: ::__u16, - pub max_num_members: ::__u32, + pub id: __u16, + pub max_num_members: __u32, } pub struct packet_mreq { - pub mr_ifindex: ::c_int, - pub mr_type: ::c_ushort, - pub mr_alen: ::c_ushort, - pub mr_address: [::c_uchar; 8], + pub mr_ifindex: c_int, + pub mr_type: c_ushort, + pub mr_alen: c_ushort, + pub mr_address: [c_uchar; 8], } pub struct sockaddr_pkt { - pub spkt_family: ::c_ushort, - pub spkt_device: [::c_uchar; 14], - pub spkt_protocol: ::c_ushort, + pub spkt_family: c_ushort, + pub spkt_device: [c_uchar; 14], + pub spkt_protocol: c_ushort, } pub struct tpacket_auxdata { - pub tp_status: ::__u32, - pub tp_len: ::__u32, - pub tp_snaplen: ::__u32, - pub tp_mac: ::__u16, - pub tp_net: ::__u16, - pub tp_vlan_tci: ::__u16, - pub tp_vlan_tpid: ::__u16, + pub tp_status: __u32, + pub tp_len: __u32, + pub tp_snaplen: __u32, + pub tp_mac: __u16, + pub tp_net: __u16, + pub tp_vlan_tci: __u16, + pub tp_vlan_tpid: __u16, } pub struct tpacket_hdr { - pub tp_status: ::c_ulong, - pub tp_len: ::c_uint, - pub tp_snaplen: ::c_uint, - pub tp_mac: ::c_ushort, - pub tp_net: ::c_ushort, - pub tp_sec: ::c_uint, - pub tp_usec: ::c_uint, + pub tp_status: c_ulong, + pub tp_len: c_uint, + pub tp_snaplen: c_uint, + pub tp_mac: c_ushort, + pub tp_net: c_ushort, + pub tp_sec: c_uint, + pub tp_usec: c_uint, } pub struct tpacket_hdr_variant1 { - pub tp_rxhash: ::__u32, - pub tp_vlan_tci: ::__u32, - pub tp_vlan_tpid: ::__u16, - pub tp_padding: ::__u16, + pub tp_rxhash: __u32, + pub tp_vlan_tci: __u32, + pub tp_vlan_tpid: __u16, + pub tp_padding: __u16, } pub struct tpacket2_hdr { - pub tp_status: ::__u32, - pub tp_len: ::__u32, - pub tp_snaplen: ::__u32, - pub tp_mac: ::__u16, - pub tp_net: ::__u16, - pub tp_sec: ::__u32, - pub tp_nsec: ::__u32, - pub tp_vlan_tci: ::__u16, - pub tp_vlan_tpid: ::__u16, - pub tp_padding: [::__u8; 4], + pub tp_status: __u32, + pub tp_len: __u32, + pub tp_snaplen: __u32, + pub tp_mac: __u16, + pub tp_net: __u16, + pub tp_sec: __u32, + pub tp_nsec: __u32, + pub tp_vlan_tci: __u16, + pub tp_vlan_tpid: __u16, + pub tp_padding: [__u8; 4], } pub struct tpacket_req { - pub tp_block_size: ::c_uint, - pub tp_block_nr: ::c_uint, - pub tp_frame_size: ::c_uint, - pub tp_frame_nr: ::c_uint, + pub tp_block_size: c_uint, + pub tp_block_nr: c_uint, + pub tp_frame_size: c_uint, + pub tp_frame_nr: c_uint, } pub struct tpacket_req3 { - pub tp_block_size: ::c_uint, - pub tp_block_nr: ::c_uint, - pub tp_frame_size: ::c_uint, - pub tp_frame_nr: ::c_uint, - pub tp_retire_blk_tov: ::c_uint, - pub tp_sizeof_priv: ::c_uint, - pub tp_feature_req_word: ::c_uint, + pub tp_block_size: c_uint, + pub tp_block_nr: c_uint, + pub tp_frame_size: c_uint, + pub tp_frame_nr: c_uint, + pub tp_retire_blk_tov: c_uint, + pub tp_sizeof_priv: c_uint, + pub tp_feature_req_word: c_uint, } #[repr(align(8))] pub struct tpacket_rollover_stats { - pub tp_all: ::__u64, - pub tp_huge: ::__u64, - pub tp_failed: ::__u64, + pub tp_all: crate::__u64, + pub tp_huge: crate::__u64, + pub tp_failed: crate::__u64, } pub struct tpacket_stats { - pub tp_packets: ::c_uint, - pub tp_drops: ::c_uint, + pub tp_packets: c_uint, + pub tp_drops: c_uint, } pub struct tpacket_stats_v3 { - pub tp_packets: ::c_uint, - pub tp_drops: ::c_uint, - pub tp_freeze_q_cnt: ::c_uint, + pub tp_packets: c_uint, + pub tp_drops: c_uint, + pub tp_freeze_q_cnt: c_uint, } pub struct tpacket3_hdr { - pub tp_next_offset: ::__u32, - pub tp_sec: ::__u32, - pub tp_nsec: ::__u32, - pub tp_snaplen: ::__u32, - pub tp_len: ::__u32, - pub tp_status: ::__u32, - pub tp_mac: ::__u16, - pub tp_net: ::__u16, - pub hv1: ::tpacket_hdr_variant1, - pub tp_padding: [::__u8; 8], + pub tp_next_offset: __u32, + pub tp_sec: __u32, + pub tp_nsec: __u32, + pub tp_snaplen: __u32, + pub tp_len: __u32, + pub tp_status: __u32, + pub tp_mac: __u16, + pub tp_net: __u16, + pub hv1: crate::tpacket_hdr_variant1, + pub tp_padding: [__u8; 8], } pub struct tpacket_bd_ts { - pub ts_sec: ::c_uint, - pub ts_usec: ::c_uint, + pub ts_sec: c_uint, + pub ts_usec: c_uint, } #[repr(align(8))] pub struct tpacket_hdr_v1 { - pub block_status: ::__u32, - pub num_pkts: ::__u32, - pub offset_to_first_pkt: ::__u32, - pub blk_len: ::__u32, - pub seq_num: ::__u64, - pub ts_first_pkt: ::tpacket_bd_ts, - pub ts_last_pkt: ::tpacket_bd_ts, + pub block_status: __u32, + pub num_pkts: __u32, + pub offset_to_first_pkt: __u32, + pub blk_len: __u32, + pub seq_num: crate::__u64, + pub ts_first_pkt: crate::tpacket_bd_ts, + pub ts_last_pkt: crate::tpacket_bd_ts, } pub struct cpu_set_t { @@ -302,126 +306,126 @@ s! { } pub struct if_nameindex { - pub if_index: ::c_uint, - pub if_name: *mut ::c_char, + pub if_index: c_uint, + pub if_name: *mut c_char, } // System V IPC pub struct msginfo { - pub msgpool: ::c_int, - pub msgmap: ::c_int, - pub msgmax: ::c_int, - pub msgmnb: ::c_int, - pub msgmni: ::c_int, - pub msgssz: ::c_int, - pub msgtql: ::c_int, - pub msgseg: ::c_ushort, + pub msgpool: c_int, + pub msgmap: c_int, + pub msgmax: c_int, + pub msgmnb: c_int, + pub msgmni: c_int, + pub msgssz: c_int, + pub msgtql: c_int, + pub msgseg: c_ushort, } pub struct sembuf { - pub sem_num: ::c_ushort, - pub sem_op: ::c_short, - pub sem_flg: ::c_short, + pub sem_num: c_ushort, + pub sem_op: c_short, + pub sem_flg: c_short, } pub struct input_event { - pub time: ::timeval, - pub type_: ::__u16, - pub code: ::__u16, - pub value: ::__s32, + pub time: crate::timeval, + pub type_: __u16, + pub code: __u16, + pub value: __s32, } pub struct input_id { - pub bustype: ::__u16, - pub vendor: ::__u16, - pub product: ::__u16, - pub version: ::__u16, + pub bustype: __u16, + pub vendor: __u16, + pub product: __u16, + pub version: __u16, } pub struct input_absinfo { - pub value: ::__s32, - pub minimum: ::__s32, - pub maximum: ::__s32, - pub fuzz: ::__s32, - pub flat: ::__s32, - pub resolution: ::__s32, + pub value: __s32, + pub minimum: __s32, + pub maximum: __s32, + pub fuzz: __s32, + pub flat: __s32, + pub resolution: __s32, } pub struct input_keymap_entry { - pub flags: ::__u8, - pub len: ::__u8, - pub index: ::__u16, - pub keycode: ::__u32, - pub scancode: [::__u8; 32], + pub flags: __u8, + pub len: __u8, + pub index: __u16, + pub keycode: __u32, + pub scancode: [__u8; 32], } pub struct input_mask { - pub type_: ::__u32, - pub codes_size: ::__u32, - pub codes_ptr: ::__u64, + pub type_: __u32, + pub codes_size: __u32, + pub codes_ptr: crate::__u64, } pub struct ff_replay { - pub length: ::__u16, - pub delay: ::__u16, + pub length: __u16, + pub delay: __u16, } pub struct ff_trigger { - pub button: ::__u16, - pub interval: ::__u16, + pub button: __u16, + pub interval: __u16, } pub struct ff_envelope { - pub attack_length: ::__u16, - pub attack_level: ::__u16, - pub fade_length: ::__u16, - pub fade_level: ::__u16, + pub attack_length: __u16, + pub attack_level: __u16, + pub fade_length: __u16, + pub fade_level: __u16, } pub struct ff_constant_effect { - pub level: ::__s16, + pub level: __s16, pub envelope: ff_envelope, } pub struct ff_ramp_effect { - pub start_level: ::__s16, - pub end_level: ::__s16, + pub start_level: __s16, + pub end_level: __s16, pub envelope: ff_envelope, } pub struct ff_condition_effect { - pub right_saturation: ::__u16, - pub left_saturation: ::__u16, + pub right_saturation: __u16, + pub left_saturation: __u16, - pub right_coeff: ::__s16, - pub left_coeff: ::__s16, + pub right_coeff: __s16, + pub left_coeff: __s16, - pub deadband: ::__u16, - pub center: ::__s16, + pub deadband: __u16, + pub center: __s16, } pub struct ff_periodic_effect { - pub waveform: ::__u16, - pub period: ::__u16, - pub magnitude: ::__s16, - pub offset: ::__s16, - pub phase: ::__u16, + pub waveform: __u16, + pub period: __u16, + pub magnitude: __s16, + pub offset: __s16, + pub phase: __u16, pub envelope: ff_envelope, - pub custom_len: ::__u32, - pub custom_data: *mut ::__s16, + pub custom_len: __u32, + pub custom_data: *mut __s16, } pub struct ff_rumble_effect { - pub strong_magnitude: ::__u16, - pub weak_magnitude: ::__u16, + pub strong_magnitude: __u16, + pub weak_magnitude: __u16, } pub struct ff_effect { - pub type_: ::__u16, - pub id: ::__s16, - pub direction: ::__u16, + pub type_: __u16, + pub id: __s16, + pub direction: __u16, pub trigger: ff_trigger, pub replay: ff_replay, // FIXME(1.0): this is actually a union @@ -432,20 +436,20 @@ s! { } pub struct uinput_ff_upload { - pub request_id: ::__u32, - pub retval: ::__s32, + pub request_id: __u32, + pub retval: __s32, pub effect: ff_effect, pub old: ff_effect, } pub struct uinput_ff_erase { - pub request_id: ::__u32, - pub retval: ::__s32, - pub effect_id: ::__u32, + pub request_id: __u32, + pub retval: __s32, + pub effect_id: __u32, } pub struct uinput_abs_setup { - pub code: ::__u16, + pub code: __u16, pub absinfo: input_absinfo, } @@ -455,7 +459,7 @@ s! { #[cfg(target_pointer_width = "32")] pub dlpi_addr: Elf32_Addr, - pub dlpi_name: *const ::c_char, + pub dlpi_name: *const c_char, #[cfg(target_pointer_width = "64")] pub dlpi_phdr: *const Elf64_Phdr, @@ -474,17 +478,17 @@ s! { // will probably need including here. tsidea, skrap // QNX (NTO) platform does not define these fields #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] - pub dlpi_adds: ::c_ulonglong, + pub dlpi_adds: crate::c_ulonglong, #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] - pub dlpi_subs: ::c_ulonglong, + pub dlpi_subs: crate::c_ulonglong, #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] - pub dlpi_tls_modid: ::size_t, + pub dlpi_tls_modid: size_t, #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] - pub dlpi_tls_data: *mut ::c_void, + pub dlpi_tls_data: *mut c_void, } pub struct Elf32_Ehdr { - pub e_ident: [::c_uchar; 16], + pub e_ident: [c_uchar; 16], pub e_type: Elf32_Half, pub e_machine: Elf32_Half, pub e_version: Elf32_Word, @@ -501,7 +505,7 @@ s! { } pub struct Elf64_Ehdr { - pub e_ident: [::c_uchar; 16], + pub e_ident: [c_uchar; 16], pub e_type: Elf64_Half, pub e_machine: Elf64_Half, pub e_version: Elf64_Word, @@ -521,15 +525,15 @@ s! { pub st_name: Elf32_Word, pub st_value: Elf32_Addr, pub st_size: Elf32_Word, - pub st_info: ::c_uchar, - pub st_other: ::c_uchar, + pub st_info: c_uchar, + pub st_other: c_uchar, pub st_shndx: Elf32_Section, } pub struct Elf64_Sym { pub st_name: Elf64_Word, - pub st_info: ::c_uchar, - pub st_other: ::c_uchar, + pub st_info: c_uchar, + pub st_other: c_uchar, pub st_shndx: Elf64_Section, pub st_value: Elf64_Addr, pub st_size: Elf64_Xword, @@ -594,42 +598,42 @@ s! { } pub struct __c_anonymous__kernel_fsid_t { - pub val: [::c_int; 2], + pub val: [c_int; 2], } pub struct ucred { - pub pid: ::pid_t, - pub uid: ::uid_t, - pub gid: ::gid_t, + pub pid: crate::pid_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, } pub struct mntent { - pub mnt_fsname: *mut ::c_char, - pub mnt_dir: *mut ::c_char, - pub mnt_type: *mut ::c_char, - pub mnt_opts: *mut ::c_char, - pub mnt_freq: ::c_int, - pub mnt_passno: ::c_int, + pub mnt_fsname: *mut c_char, + pub mnt_dir: *mut c_char, + pub mnt_type: *mut c_char, + pub mnt_opts: *mut c_char, + pub mnt_freq: c_int, + pub mnt_passno: c_int, } pub struct posix_spawn_file_actions_t { - __allocated: ::c_int, - __used: ::c_int, - __actions: *mut ::c_int, - __pad: [::c_int; 16], + __allocated: c_int, + __used: c_int, + __actions: *mut c_int, + __pad: [c_int; 16], } pub struct posix_spawnattr_t { - __flags: ::c_short, - __pgrp: ::pid_t, - __sd: ::sigset_t, - __ss: ::sigset_t, + __flags: c_short, + __pgrp: crate::pid_t, + __sd: crate::sigset_t, + __ss: crate::sigset_t, #[cfg(any(target_env = "musl", target_env = "ohos"))] - __prio: ::c_int, + __prio: c_int, #[cfg(not(any(target_env = "musl", target_env = "ohos")))] - __sp: ::sched_param, - __policy: ::c_int, - __pad: [::c_int; 16], + __sp: crate::sched_param, + __policy: c_int, + __pad: [c_int; 16], } pub struct genlmsghdr { @@ -639,28 +643,28 @@ s! { } pub struct in6_pktinfo { - pub ipi6_addr: ::in6_addr, - pub ipi6_ifindex: ::c_uint, + pub ipi6_addr: crate::in6_addr, + pub ipi6_ifindex: c_uint, } pub struct arpd_request { - pub req: ::c_ushort, + pub req: c_ushort, pub ip: u32, - pub dev: ::c_ulong, - pub stamp: ::c_ulong, - pub updated: ::c_ulong, - pub ha: [::c_uchar; ::MAX_ADDR_LEN], + pub dev: c_ulong, + pub stamp: c_ulong, + pub updated: c_ulong, + pub ha: [c_uchar; crate::MAX_ADDR_LEN], } pub struct inotify_event { - pub wd: ::c_int, + pub wd: c_int, pub mask: u32, pub cookie: u32, pub len: u32, } pub struct fanotify_response { - pub fd: ::c_int, + pub fd: c_int, pub response: __u32, } @@ -672,15 +676,15 @@ s! { pub struct fanotify_event_info_fid { pub hdr: fanotify_event_info_header, - pub fsid: ::__kernel_fsid_t, - pub handle: [::c_uchar; 0], + pub fsid: crate::__kernel_fsid_t, + pub handle: [c_uchar; 0], } pub struct sockaddr_vm { - pub svm_family: ::sa_family_t, - pub svm_reserved1: ::c_ushort, - pub svm_port: ::c_uint, - pub svm_cid: ::c_uint, + pub svm_family: crate::sa_family_t, + pub svm_reserved1: c_ushort, + pub svm_port: c_uint, + pub svm_cid: c_uint, pub svm_zero: [u8; 4], } @@ -728,51 +732,51 @@ s! { // linux/filter.h pub struct sock_filter { - pub code: ::__u16, - pub jt: ::__u8, - pub jf: ::__u8, - pub k: ::__u32, + pub code: __u16, + pub jt: __u8, + pub jf: __u8, + pub k: __u32, } pub struct sock_fprog { - pub len: ::c_ushort, + pub len: c_ushort, pub filter: *mut sock_filter, } // linux/seccomp.h pub struct seccomp_data { - pub nr: ::c_int, - pub arch: ::__u32, - pub instruction_pointer: ::__u64, - pub args: [::__u64; 6], + pub nr: c_int, + pub arch: __u32, + pub instruction_pointer: crate::__u64, + pub args: [crate::__u64; 6], } pub struct seccomp_notif_sizes { - pub seccomp_notif: ::__u16, - pub seccomp_notif_resp: ::__u16, - pub seccomp_data: ::__u16, + pub seccomp_notif: __u16, + pub seccomp_notif_resp: __u16, + pub seccomp_data: __u16, } pub struct seccomp_notif { - pub id: ::__u64, - pub pid: ::__u32, - pub flags: ::__u32, + pub id: crate::__u64, + pub pid: __u32, + pub flags: __u32, pub data: seccomp_data, } pub struct seccomp_notif_resp { - pub id: ::__u64, - pub val: ::__s64, - pub error: ::__s32, - pub flags: ::__u32, + pub id: crate::__u64, + pub val: crate::__s64, + pub error: __s32, + pub flags: __u32, } pub struct seccomp_notif_addfd { - pub id: ::__u64, - pub flags: ::__u32, - pub srcfd: ::__u32, - pub newfd: ::__u32, - pub newfd_flags: ::__u32, + pub id: crate::__u64, + pub flags: __u32, + pub srcfd: __u32, + pub newfd: __u32, + pub newfd_flags: __u32, } pub struct nlmsghdr { @@ -784,7 +788,7 @@ s! { } pub struct nlmsgerr { - pub error: ::c_int, + pub error: c_int, pub msg: nlmsghdr, } @@ -794,59 +798,59 @@ s! { } pub struct file_clone_range { - pub src_fd: ::__s64, - pub src_offset: ::__u64, - pub src_length: ::__u64, - pub dest_offset: ::__u64, + pub src_fd: crate::__s64, + pub src_offset: crate::__u64, + pub src_length: crate::__u64, + pub dest_offset: crate::__u64, } pub struct __c_anonymous_ifru_map { - pub mem_start: ::c_ulong, - pub mem_end: ::c_ulong, - pub base_addr: ::c_ushort, - pub irq: ::c_uchar, - pub dma: ::c_uchar, - pub port: ::c_uchar, + pub mem_start: c_ulong, + pub mem_end: c_ulong, + pub base_addr: c_ushort, + pub irq: c_uchar, + pub dma: c_uchar, + pub port: c_uchar, } pub struct in6_ifreq { - pub ifr6_addr: ::in6_addr, + pub ifr6_addr: crate::in6_addr, pub ifr6_prefixlen: u32, - pub ifr6_ifindex: ::c_int, + pub ifr6_ifindex: c_int, } pub struct option { - pub name: *const ::c_char, - pub has_arg: ::c_int, - pub flag: *mut ::c_int, - pub val: ::c_int, + pub name: *const c_char, + pub has_arg: c_int, + pub flag: *mut c_int, + pub val: c_int, } // linux/openat2.h #[non_exhaustive] pub struct open_how { - pub flags: ::__u64, - pub mode: ::__u64, - pub resolve: ::__u64, + pub flags: crate::__u64, + pub mode: crate::__u64, + pub resolve: crate::__u64, } // linux/ptp_clock.h pub struct ptp_clock_time { - pub sec: ::__s64, - pub nsec: ::__u32, - pub reserved: ::__u32, + pub sec: crate::__s64, + pub nsec: __u32, + pub reserved: __u32, } pub struct ptp_extts_request { - pub index: ::c_uint, - pub flags: ::c_uint, - pub rsv: [::c_uint; 2], + pub index: c_uint, + pub flags: c_uint, + pub rsv: [c_uint; 2], } pub struct ptp_sys_offset_extended { - pub n_samples: ::c_uint, + pub n_samples: c_uint, pub clockid: __kernel_clockid_t, - pub rsv: [::c_uint; 2], + pub rsv: [c_uint; 2], pub ts: [[ptp_clock_time; 3]; PTP_MAX_SAMPLES as usize], } @@ -854,71 +858,71 @@ s! { pub device: ptp_clock_time, pub sys_realtime: ptp_clock_time, pub sys_monoraw: ptp_clock_time, - pub rsv: [::c_uint; 4], + pub rsv: [c_uint; 4], } pub struct ptp_extts_event { pub t: ptp_clock_time, - index: ::c_uint, - flags: ::c_uint, - rsv: [::c_uint; 2], + index: c_uint, + flags: c_uint, + rsv: [c_uint; 2], } // linux/sctp.h pub struct sctp_initmsg { - pub sinit_num_ostreams: ::__u16, - pub sinit_max_instreams: ::__u16, - pub sinit_max_attempts: ::__u16, - pub sinit_max_init_timeo: ::__u16, + pub sinit_num_ostreams: __u16, + pub sinit_max_instreams: __u16, + pub sinit_max_attempts: __u16, + pub sinit_max_init_timeo: __u16, } pub struct sctp_sndrcvinfo { - pub sinfo_stream: ::__u16, - pub sinfo_ssn: ::__u16, - pub sinfo_flags: ::__u16, - pub sinfo_ppid: ::__u32, - pub sinfo_context: ::__u32, - pub sinfo_timetolive: ::__u32, - pub sinfo_tsn: ::__u32, - pub sinfo_cumtsn: ::__u32, - pub sinfo_assoc_id: ::sctp_assoc_t, + pub sinfo_stream: __u16, + pub sinfo_ssn: __u16, + pub sinfo_flags: __u16, + pub sinfo_ppid: __u32, + pub sinfo_context: __u32, + pub sinfo_timetolive: __u32, + pub sinfo_tsn: __u32, + pub sinfo_cumtsn: __u32, + pub sinfo_assoc_id: crate::sctp_assoc_t, } pub struct sctp_sndinfo { - pub snd_sid: ::__u16, - pub snd_flags: ::__u16, - pub snd_ppid: ::__u32, - pub snd_context: ::__u32, - pub snd_assoc_id: ::sctp_assoc_t, + pub snd_sid: __u16, + pub snd_flags: __u16, + pub snd_ppid: __u32, + pub snd_context: __u32, + pub snd_assoc_id: crate::sctp_assoc_t, } pub struct sctp_rcvinfo { - pub rcv_sid: ::__u16, - pub rcv_ssn: ::__u16, - pub rcv_flags: ::__u16, - pub rcv_ppid: ::__u32, - pub rcv_tsn: ::__u32, - pub rcv_cumtsn: ::__u32, - pub rcv_context: ::__u32, - pub rcv_assoc_id: ::sctp_assoc_t, + pub rcv_sid: __u16, + pub rcv_ssn: __u16, + pub rcv_flags: __u16, + pub rcv_ppid: __u32, + pub rcv_tsn: __u32, + pub rcv_cumtsn: __u32, + pub rcv_context: __u32, + pub rcv_assoc_id: crate::sctp_assoc_t, } pub struct sctp_nxtinfo { - pub nxt_sid: ::__u16, - pub nxt_flags: ::__u16, - pub nxt_ppid: ::__u32, - pub nxt_length: ::__u32, - pub nxt_assoc_id: ::sctp_assoc_t, + pub nxt_sid: __u16, + pub nxt_flags: __u16, + pub nxt_ppid: __u32, + pub nxt_length: __u32, + pub nxt_assoc_id: crate::sctp_assoc_t, } pub struct sctp_prinfo { - pub pr_policy: ::__u16, - pub pr_value: ::__u32, + pub pr_policy: __u16, + pub pr_value: __u32, } pub struct sctp_authinfo { - pub auth_keynumber: ::__u16, + pub auth_keynumber: __u16, } pub struct rlimit64 { @@ -929,32 +933,32 @@ s! { // linux/tls.h pub struct tls_crypto_info { - pub version: ::__u16, - pub cipher_type: ::__u16, + pub version: __u16, + pub cipher_type: __u16, } pub struct tls12_crypto_info_aes_gcm_128 { pub info: tls_crypto_info, - pub iv: [::c_uchar; TLS_CIPHER_AES_GCM_128_IV_SIZE], - pub key: [::c_uchar; TLS_CIPHER_AES_GCM_128_KEY_SIZE], - pub salt: [::c_uchar; TLS_CIPHER_AES_GCM_128_SALT_SIZE], - pub rec_seq: [::c_uchar; TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE], + pub iv: [c_uchar; TLS_CIPHER_AES_GCM_128_IV_SIZE], + pub key: [c_uchar; TLS_CIPHER_AES_GCM_128_KEY_SIZE], + pub salt: [c_uchar; TLS_CIPHER_AES_GCM_128_SALT_SIZE], + pub rec_seq: [c_uchar; TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE], } pub struct tls12_crypto_info_aes_gcm_256 { pub info: tls_crypto_info, - pub iv: [::c_uchar; TLS_CIPHER_AES_GCM_256_IV_SIZE], - pub key: [::c_uchar; TLS_CIPHER_AES_GCM_256_KEY_SIZE], - pub salt: [::c_uchar; TLS_CIPHER_AES_GCM_256_SALT_SIZE], - pub rec_seq: [::c_uchar; TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE], + pub iv: [c_uchar; TLS_CIPHER_AES_GCM_256_IV_SIZE], + pub key: [c_uchar; TLS_CIPHER_AES_GCM_256_KEY_SIZE], + pub salt: [c_uchar; TLS_CIPHER_AES_GCM_256_SALT_SIZE], + pub rec_seq: [c_uchar; TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE], } pub struct tls12_crypto_info_chacha20_poly1305 { pub info: tls_crypto_info, - pub iv: [::c_uchar; TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE], - pub key: [::c_uchar; TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE], - pub salt: [::c_uchar; TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE], - pub rec_seq: [::c_uchar; TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE], + pub iv: [c_uchar; TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE], + pub key: [c_uchar; TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE], + pub salt: [c_uchar; TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE], + pub rec_seq: [c_uchar; TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE], } // linux/wireless.h @@ -967,7 +971,7 @@ s! { } pub struct iw_point { - pub pointer: *mut ::c_void, + pub pointer: *mut c_void, pub length: __u16, pub flags: __u16, } @@ -1003,7 +1007,7 @@ s! { pub essid_len: __u8, pub num_channels: __u8, pub flags: __u8, - pub bssid: ::sockaddr, + pub bssid: crate::sockaddr, pub essid: [__u8; IW_ESSID_MAX_SIZE], pub min_channel_time: __u32, pub max_channel_time: __u32, @@ -1014,7 +1018,7 @@ s! { pub ext_flags: __u32, pub tx_seq: [__u8; IW_ENCODE_SEQ_MAX_SIZE], pub rx_seq: [__u8; IW_ENCODE_SEQ_MAX_SIZE], - pub addr: ::sockaddr, + pub addr: crate::sockaddr, pub alg: __u16, pub key_len: __u16, pub key: [__u8; 0], @@ -1022,14 +1026,14 @@ s! { pub struct iw_pmksa { pub cmd: __u32, - pub bssid: ::sockaddr, + pub bssid: crate::sockaddr, pub pmkid: [__u8; IW_PMKID_LEN], } pub struct iw_pmkid_cand { pub flags: __u32, pub index: __u32, - pub bssid: ::sockaddr, + pub bssid: crate::sockaddr, } pub struct iw_statistics { @@ -1089,7 +1093,7 @@ s! { pub cmd: __u32, pub set_args: __u16, pub get_args: __u16, - pub name: [c_char; ::IFNAMSIZ], + pub name: [c_char; crate::IFNAMSIZ], } // #include @@ -1135,7 +1139,7 @@ s! { )] pub struct pthread_mutexattr_t { #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + size: [u8; crate::__SIZEOF_PTHREAD_MUTEXATTR_T], } #[cfg_attr( @@ -1152,19 +1156,19 @@ s! { )] pub struct pthread_rwlockattr_t { #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], + size: [u8; crate::__SIZEOF_PTHREAD_RWLOCKATTR_T], } #[repr(align(4))] pub struct pthread_condattr_t { #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + size: [u8; crate::__SIZEOF_PTHREAD_CONDATTR_T], } #[repr(align(4))] pub struct pthread_barrierattr_t { #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_BARRIERATTR_T], + size: [u8; crate::__SIZEOF_PTHREAD_BARRIERATTR_T], } #[repr(align(8))] @@ -1174,57 +1178,57 @@ s! { pub reserved: __u8, pub metadata_len: __u16, pub mask: __u64, - pub fd: ::c_int, - pub pid: ::c_int, + pub fd: c_int, + pub pid: c_int, } // linux/ptp_clock.h pub struct ptp_sys_offset { - pub n_samples: ::c_uint, - pub rsv: [::c_uint; 3], + pub n_samples: c_uint, + pub rsv: [c_uint; 3], // FIXME(garando): replace length with `2 * PTP_MAX_SAMPLES + 1` when supported pub ts: [ptp_clock_time; 51], } pub struct ptp_pin_desc { - pub name: [::c_char; 64], - pub index: ::c_uint, - pub func: ::c_uint, - pub chan: ::c_uint, - pub rsv: [::c_uint; 5], + pub name: [c_char; 64], + pub index: c_uint, + pub func: c_uint, + pub chan: c_uint, + pub rsv: [c_uint; 5], } pub struct ptp_clock_caps { - pub max_adj: ::c_int, - pub n_alarm: ::c_int, - pub n_ext_ts: ::c_int, - pub n_per_out: ::c_int, - pub pps: ::c_int, - pub n_pins: ::c_int, - pub cross_timestamping: ::c_int, - pub adjust_phase: ::c_int, - pub max_phase_adj: ::c_int, - pub rsv: [::c_int; 11], + pub max_adj: c_int, + pub n_alarm: c_int, + pub n_ext_ts: c_int, + pub n_per_out: c_int, + pub pps: c_int, + pub n_pins: c_int, + pub cross_timestamping: c_int, + pub adjust_phase: c_int, + pub max_phase_adj: c_int, + pub rsv: [c_int; 11], } // linux/if_xdp.h pub struct xsk_tx_metadata_completion { - pub tx_timestamp: ::__u64, + pub tx_timestamp: crate::__u64, } pub struct xsk_tx_metadata_request { - pub csum_start: ::__u16, - pub csum_offset: ::__u16, + pub csum_start: __u16, + pub csum_offset: __u16, } // linux/mount.h pub struct mount_attr { - pub attr_set: ::__u64, - pub attr_clr: ::__u64, - pub propagation: ::__u64, - pub userns_fd: ::__u64, + pub attr_set: crate::__u64, + pub attr_clr: crate::__u64, + pub propagation: crate::__u64, + pub userns_fd: crate::__u64, } } @@ -1232,7 +1236,7 @@ cfg_if! { if #[cfg(not(target_arch = "sparc64"))] { s! { pub struct iw_thrspy { - pub addr: ::sockaddr, + pub addr: crate::sockaddr, pub qual: iw_quality, pub low: iw_quality, pub high: iw_quality, @@ -1241,12 +1245,12 @@ cfg_if! { pub struct iw_mlme { pub cmd: __u16, pub reason_code: __u16, - pub addr: ::sockaddr, + pub addr: crate::sockaddr, } pub struct iw_michaelmicfailure { pub flags: __u32, - pub src_addr: ::sockaddr, + pub src_addr: crate::sockaddr, pub tsc: [__u8; IW_ENCODE_SEQ_MAX_SIZE], } @@ -1267,42 +1271,42 @@ cfg_if! { s_no_extra_traits! { pub struct sockaddr_nl { - pub nl_family: ::sa_family_t, - nl_pad: ::c_ushort, + pub nl_family: crate::sa_family_t, + nl_pad: c_ushort, pub nl_pid: u32, pub nl_groups: u32, } pub struct dirent { - pub d_ino: ::ino_t, - pub d_off: ::off_t, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], + pub d_ino: crate::ino_t, + pub d_off: off_t, + pub d_reclen: c_ushort, + pub d_type: c_uchar, + pub d_name: [c_char; 256], } pub struct sockaddr_alg { - pub salg_family: ::sa_family_t, - pub salg_type: [::c_uchar; 14], + pub salg_family: crate::sa_family_t, + pub salg_type: [c_uchar; 14], pub salg_feat: u32, pub salg_mask: u32, - pub salg_name: [::c_uchar; 64], + pub salg_name: [c_uchar; 64], } pub struct uinput_setup { pub id: input_id, - pub name: [::c_char; UINPUT_MAX_NAME_SIZE], - pub ff_effects_max: ::__u32, + pub name: [c_char; UINPUT_MAX_NAME_SIZE], + pub ff_effects_max: __u32, } pub struct uinput_user_dev { - pub name: [::c_char; UINPUT_MAX_NAME_SIZE], + pub name: [c_char; UINPUT_MAX_NAME_SIZE], pub id: input_id, - pub ff_effects_max: ::__u32, - pub absmax: [::__s32; ABS_CNT], - pub absmin: [::__s32; ABS_CNT], - pub absfuzz: [::__s32; ABS_CNT], - pub absflat: [::__s32; ABS_CNT], + pub ff_effects_max: __u32, + pub absmax: [__s32; ABS_CNT], + pub absmin: [__s32; ABS_CNT], + pub absfuzz: [__s32; ABS_CNT], + pub absflat: [__s32; ABS_CNT], } /// WARNING: The `PartialEq`, `Eq` and `Hash` implementations of this @@ -1314,7 +1318,7 @@ s_no_extra_traits! { )] pub struct af_alg_iv { pub ivlen: u32, - pub iv: [::c_uchar; 0], + pub iv: [c_uchar; 0], } // x32 compatibility @@ -1332,93 +1336,93 @@ s_no_extra_traits! { pad: [i64; 4], #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_flags: ::c_long, + pub mq_flags: c_long, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_maxmsg: ::c_long, + pub mq_maxmsg: c_long, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_msgsize: ::c_long, + pub mq_msgsize: c_long, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_curmsgs: ::c_long, + pub mq_curmsgs: c_long, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pad: [::c_long; 4], + pad: [c_long; 4], } pub union __c_anonymous_ifr_ifru { - pub ifru_addr: ::sockaddr, - pub ifru_dstaddr: ::sockaddr, - pub ifru_broadaddr: ::sockaddr, - pub ifru_netmask: ::sockaddr, - pub ifru_hwaddr: ::sockaddr, - pub ifru_flags: ::c_short, - pub ifru_ifindex: ::c_int, - pub ifru_metric: ::c_int, - pub ifru_mtu: ::c_int, + pub ifru_addr: crate::sockaddr, + pub ifru_dstaddr: crate::sockaddr, + pub ifru_broadaddr: crate::sockaddr, + pub ifru_netmask: crate::sockaddr, + pub ifru_hwaddr: crate::sockaddr, + pub ifru_flags: c_short, + pub ifru_ifindex: c_int, + pub ifru_metric: c_int, + pub ifru_mtu: c_int, pub ifru_map: __c_anonymous_ifru_map, - pub ifru_slave: [::c_char; ::IFNAMSIZ], - pub ifru_newname: [::c_char; ::IFNAMSIZ], - pub ifru_data: *mut ::c_char, + pub ifru_slave: [c_char; crate::IFNAMSIZ], + pub ifru_newname: [c_char; crate::IFNAMSIZ], + pub ifru_data: *mut c_char, } pub struct ifreq { /// interface name, e.g. "en0" - pub ifr_name: [::c_char; ::IFNAMSIZ], + pub ifr_name: [c_char; crate::IFNAMSIZ], pub ifr_ifru: __c_anonymous_ifr_ifru, } pub union __c_anonymous_ifc_ifcu { - pub ifcu_buf: *mut ::c_char, - pub ifcu_req: *mut ::ifreq, + pub ifcu_buf: *mut c_char, + pub ifcu_req: *mut crate::ifreq, } /// Structure used in SIOCGIFCONF request. Used to retrieve interface configuration for /// machine (useful for programs which must know all networks accessible). pub struct ifconf { /// Size of buffer - pub ifc_len: ::c_int, + pub ifc_len: c_int, pub ifc_ifcu: __c_anonymous_ifc_ifcu, } pub struct hwtstamp_config { - pub flags: ::c_int, - pub tx_type: ::c_int, - pub rx_filter: ::c_int, + pub flags: c_int, + pub tx_type: c_int, + pub rx_filter: c_int, } pub struct dirent64 { - pub d_ino: ::ino64_t, - pub d_off: ::off64_t, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], + pub d_ino: crate::ino64_t, + pub d_off: off64_t, + pub d_reclen: c_ushort, + pub d_type: c_uchar, + pub d_name: [c_char; 256], } pub struct sched_attr { - pub size: ::__u32, - pub sched_policy: ::__u32, - pub sched_flags: ::__u64, - pub sched_nice: ::__s32, - pub sched_priority: ::__u32, - pub sched_runtime: ::__u64, - pub sched_deadline: ::__u64, - pub sched_period: ::__u64, + pub size: __u32, + pub sched_policy: __u32, + pub sched_flags: crate::__u64, + pub sched_nice: __s32, + pub sched_priority: __u32, + pub sched_runtime: crate::__u64, + pub sched_deadline: crate::__u64, + pub sched_period: crate::__u64, } #[allow(missing_debug_implementations)] pub union tpacket_req_u { - pub req: ::tpacket_req, - pub req3: ::tpacket_req3, + pub req: crate::tpacket_req, + pub req3: crate::tpacket_req3, } #[allow(missing_debug_implementations)] pub union tpacket_bd_header_u { - pub bh1: ::tpacket_hdr_v1, + pub bh1: crate::tpacket_hdr_v1, } #[allow(missing_debug_implementations)] pub struct tpacket_block_desc { - pub version: ::__u32, - pub offset_to_priv: ::__u32, - pub hdr: ::tpacket_bd_header_u, + pub version: __u32, + pub offset_to_priv: __u32, + pub hdr: crate::tpacket_bd_header_u, } #[cfg_attr( @@ -1451,7 +1455,7 @@ s_no_extra_traits! { )] pub struct pthread_cond_t { #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_COND_T], + size: [u8; crate::__SIZEOF_PTHREAD_COND_T], } #[cfg_attr( @@ -1492,7 +1496,7 @@ s_no_extra_traits! { )] pub struct pthread_mutex_t { #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], + size: [u8; crate::__SIZEOF_PTHREAD_MUTEX_T], } #[cfg_attr( @@ -1531,7 +1535,7 @@ s_no_extra_traits! { repr(align(8)) )] pub struct pthread_rwlock_t { - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], + size: [u8; crate::__SIZEOF_PTHREAD_RWLOCK_T], } #[cfg_attr( @@ -1571,14 +1575,14 @@ s_no_extra_traits! { repr(align(8)) )] pub struct pthread_barrier_t { - size: [u8; ::__SIZEOF_PTHREAD_BARRIER_T], + size: [u8; crate::__SIZEOF_PTHREAD_BARRIER_T], } // linux/net_tstamp.h #[allow(missing_debug_implementations)] pub struct sock_txtime { - pub clockid: ::clockid_t, - pub flags: ::__u32, + pub clockid: crate::clockid_t, + pub flags: __u32, } // linux/can.h @@ -1624,14 +1628,14 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] pub struct sockaddr_can { - pub can_family: ::sa_family_t, - pub can_ifindex: ::c_int, + pub can_family: crate::sa_family_t, + pub can_ifindex: c_int, pub can_addr: __c_anonymous_sockaddr_can_can_addr, } // linux/wireless.h pub union iwreq_data { - pub name: [c_char; ::IFNAMSIZ], + pub name: [c_char; crate::IFNAMSIZ], pub essid: iw_point, pub nwid: iw_param, pub freq: iw_freq, @@ -1645,8 +1649,8 @@ s_no_extra_traits! { pub encoding: iw_point, pub power: iw_param, pub qual: iw_quality, - pub ap_addr: ::sockaddr, - pub addr: ::sockaddr, + pub ap_addr: crate::sockaddr, + pub addr: crate::sockaddr, pub param: iw_param, pub data: iw_point, } @@ -1658,7 +1662,7 @@ s_no_extra_traits! { } pub union __c_anonymous_iwreq { - pub ifrn_name: [c_char; ::IFNAMSIZ], + pub ifrn_name: [c_char; crate::IFNAMSIZ], } pub struct iwreq { @@ -1676,22 +1680,22 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] pub union __c_anonymous_ptp_perout_request_2 { pub on: ptp_clock_time, - pub rsv: [::c_uint; 4], + pub rsv: [c_uint; 4], } #[allow(missing_debug_implementations)] pub struct ptp_perout_request { pub anonymous_1: __c_anonymous_ptp_perout_request_1, pub period: ptp_clock_time, - pub index: ::c_uint, - pub flags: ::c_uint, + pub index: c_uint, + pub flags: c_uint, pub anonymous_2: __c_anonymous_ptp_perout_request_2, } // linux/if_xdp.h #[allow(missing_debug_implementations)] pub struct xsk_tx_metadata { - pub flags: ::__u64, + pub flags: crate::__u64, pub xsk_tx_metadata_union: __c_anonymous_xsk_tx_metadata_union, } @@ -1712,8 +1716,8 @@ cfg_if! { } } impl Eq for sockaddr_nl {} - impl ::fmt::Debug for sockaddr_nl { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_nl { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_nl") .field("nl_family", &self.nl_family) .field("nl_pid", &self.nl_pid) @@ -1721,8 +1725,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sockaddr_nl { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_nl { + fn hash(&self, state: &mut H) { self.nl_family.hash(state); self.nl_pid.hash(state); self.nl_groups.hash(state); @@ -1745,8 +1749,8 @@ cfg_if! { impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -1757,8 +1761,8 @@ cfg_if! { } } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -1783,8 +1787,8 @@ cfg_if! { impl Eq for dirent64 {} - impl ::fmt::Debug for dirent64 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent64 { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent64") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -1795,8 +1799,8 @@ cfg_if! { } } - impl ::hash::Hash for dirent64 { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent64 { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -1813,16 +1817,16 @@ cfg_if! { impl Eq for pthread_cond_t {} - impl ::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_cond_t") // FIXME: .field("size", &self.size) .finish() } } - impl ::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { self.size.hash(state); } } @@ -1835,16 +1839,16 @@ cfg_if! { impl Eq for pthread_mutex_t {} - impl ::fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_mutex_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_mutex_t") // FIXME: .field("size", &self.size) .finish() } } - impl ::hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_mutex_t { + fn hash(&self, state: &mut H) { self.size.hash(state); } } @@ -1857,16 +1861,16 @@ cfg_if! { impl Eq for pthread_rwlock_t {} - impl ::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_rwlock_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_rwlock_t") // FIXME: .field("size", &self.size) .finish() } } - impl ::hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_rwlock_t { + fn hash(&self, state: &mut H) { self.size.hash(state); } } @@ -1879,16 +1883,16 @@ cfg_if! { impl Eq for pthread_barrier_t {} - impl ::fmt::Debug for pthread_barrier_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_barrier_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_barrier_t") .field("size", &self.size) .finish() } } - impl ::hash::Hash for pthread_barrier_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pthread_barrier_t { + fn hash(&self, state: &mut H) { self.size.hash(state); } } @@ -1913,8 +1917,8 @@ cfg_if! { impl Eq for sockaddr_alg {} - impl ::fmt::Debug for sockaddr_alg { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_alg { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_alg") .field("salg_family", &self.salg_family) .field("salg_type", &self.salg_type) @@ -1925,8 +1929,8 @@ cfg_if! { } } - impl ::hash::Hash for sockaddr_alg { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_alg { + fn hash(&self, state: &mut H) { self.salg_family.hash(state); self.salg_type.hash(state); self.salg_feat.hash(state); @@ -1944,8 +1948,8 @@ cfg_if! { } impl Eq for uinput_setup {} - impl ::fmt::Debug for uinput_setup { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for uinput_setup { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("uinput_setup") .field("id", &self.id) .field("name", &&self.name[..]) @@ -1954,8 +1958,8 @@ cfg_if! { } } - impl ::hash::Hash for uinput_setup { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for uinput_setup { + fn hash(&self, state: &mut H) { self.id.hash(state); self.name.hash(state); self.ff_effects_max.hash(state); @@ -1975,8 +1979,8 @@ cfg_if! { } impl Eq for uinput_user_dev {} - impl ::fmt::Debug for uinput_user_dev { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for uinput_user_dev { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("uinput_setup") .field("name", &&self.name[..]) .field("id", &self.id) @@ -1989,8 +1993,8 @@ cfg_if! { } } - impl ::hash::Hash for uinput_user_dev { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for uinput_user_dev { + fn hash(&self, state: &mut H) { self.name.hash(state); self.id.hash(state); self.ff_effects_max.hash(state); @@ -2019,8 +2023,8 @@ cfg_if! { impl Eq for af_alg_iv {} #[allow(deprecated)] - impl ::fmt::Debug for af_alg_iv { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for af_alg_iv { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("af_alg_iv") .field("ivlen", &self.ivlen) .finish() @@ -2028,8 +2032,8 @@ cfg_if! { } #[allow(deprecated)] - impl ::hash::Hash for af_alg_iv { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for af_alg_iv { + fn hash(&self, state: &mut H) { self.as_slice().hash(state); } } @@ -2043,8 +2047,8 @@ cfg_if! { } } impl Eq for mq_attr {} - impl ::fmt::Debug for mq_attr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mq_attr { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("mq_attr") .field("mq_flags", &self.mq_flags) .field("mq_maxmsg", &self.mq_maxmsg) @@ -2053,16 +2057,16 @@ cfg_if! { .finish() } } - impl ::hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for mq_attr { + fn hash(&self, state: &mut H) { self.mq_flags.hash(state); self.mq_maxmsg.hash(state); self.mq_msgsize.hash(state); self.mq_curmsgs.hash(state); } } - impl ::fmt::Debug for __c_anonymous_ifr_ifru { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_ifr_ifru { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ifr_ifru") .field("ifru_addr", unsafe { &self.ifru_addr }) .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) @@ -2080,8 +2084,8 @@ cfg_if! { .finish() } } - impl ::fmt::Debug for ifreq { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ifreq { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ifreq") .field("ifr_name", &self.ifr_name) .field("ifr_ifru", &self.ifr_ifru) @@ -2089,24 +2093,24 @@ cfg_if! { } } - impl ::fmt::Debug for __c_anonymous_ifc_ifcu { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_ifc_ifcu { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ifr_ifru") .field("ifcu_buf", unsafe { &self.ifcu_buf }) .field("ifcu_req", unsafe { &self.ifcu_req }) .finish() } } - impl ::fmt::Debug for ifconf { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ifconf { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ifconf") .field("ifc_len", &self.ifc_len) .field("ifc_ifcu", &self.ifc_ifcu) .finish() } } - impl ::fmt::Debug for hwtstamp_config { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for hwtstamp_config { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("hwtstamp_config") .field("flags", &self.flags) .field("tx_type", &self.tx_type) @@ -2122,16 +2126,16 @@ cfg_if! { } } impl Eq for hwtstamp_config {} - impl ::hash::Hash for hwtstamp_config { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for hwtstamp_config { + fn hash(&self, state: &mut H) { self.flags.hash(state); self.tx_type.hash(state); self.rx_filter.hash(state); } } - impl ::fmt::Debug for sched_attr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sched_attr { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sched_attr") .field("size", &self.size) .field("sched_policy", &self.sched_policy) @@ -2157,8 +2161,8 @@ cfg_if! { } } impl Eq for sched_attr {} - impl ::hash::Hash for sched_attr { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sched_attr { + fn hash(&self, state: &mut H) { self.size.hash(state); self.sched_policy.hash(state); self.sched_flags.hash(state); @@ -2170,8 +2174,8 @@ cfg_if! { } } - impl ::fmt::Debug for iwreq_data { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for iwreq_data { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("iwreq_data") .field("name", unsafe { &self.name }) .field("essid", unsafe { &self.essid }) @@ -2195,8 +2199,8 @@ cfg_if! { } } - impl ::fmt::Debug for iw_event { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for iw_event { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("iw_event") .field("len", &self.len) .field("cmd", &self.cmd) @@ -2205,16 +2209,16 @@ cfg_if! { } } - impl ::fmt::Debug for __c_anonymous_iwreq { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_iwreq { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("__c_anonymous_iwreq") .field("ifrn_name", unsafe { &self.ifrn_name }) .finish() } } - impl ::fmt::Debug for iwreq { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for iwreq { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("iwreq") .field("ifr_ifrn", &self.ifr_ifrn) .field("u", &self.u) @@ -2230,8 +2234,8 @@ cfg_if! { any(target_arch = "x86_64", target_arch = "x86") ))] { extern "C" { - pub fn iopl(level: ::c_int) -> ::c_int; - pub fn ioperm(from: ::c_ulong, num: ::c_ulong, turn_on: ::c_int) -> ::c_int; + pub fn iopl(level: c_int) -> c_int; + pub fn ioperm(from: c_ulong, num: c_ulong, turn_on: c_int) -> c_int; } } } @@ -2242,280 +2246,280 @@ cfg_if! { target_env = "musl", target_env = "ohos" ))] { - pub const ABDAY_1: ::nl_item = 0x20000; - pub const ABDAY_2: ::nl_item = 0x20001; - pub const ABDAY_3: ::nl_item = 0x20002; - pub const ABDAY_4: ::nl_item = 0x20003; - pub const ABDAY_5: ::nl_item = 0x20004; - pub const ABDAY_6: ::nl_item = 0x20005; - pub const ABDAY_7: ::nl_item = 0x20006; - - pub const DAY_1: ::nl_item = 0x20007; - pub const DAY_2: ::nl_item = 0x20008; - pub const DAY_3: ::nl_item = 0x20009; - pub const DAY_4: ::nl_item = 0x2000A; - pub const DAY_5: ::nl_item = 0x2000B; - pub const DAY_6: ::nl_item = 0x2000C; - pub const DAY_7: ::nl_item = 0x2000D; - - pub const ABMON_1: ::nl_item = 0x2000E; - pub const ABMON_2: ::nl_item = 0x2000F; - pub const ABMON_3: ::nl_item = 0x20010; - pub const ABMON_4: ::nl_item = 0x20011; - pub const ABMON_5: ::nl_item = 0x20012; - pub const ABMON_6: ::nl_item = 0x20013; - pub const ABMON_7: ::nl_item = 0x20014; - pub const ABMON_8: ::nl_item = 0x20015; - pub const ABMON_9: ::nl_item = 0x20016; - pub const ABMON_10: ::nl_item = 0x20017; - pub const ABMON_11: ::nl_item = 0x20018; - pub const ABMON_12: ::nl_item = 0x20019; - - pub const MON_1: ::nl_item = 0x2001A; - pub const MON_2: ::nl_item = 0x2001B; - pub const MON_3: ::nl_item = 0x2001C; - pub const MON_4: ::nl_item = 0x2001D; - pub const MON_5: ::nl_item = 0x2001E; - pub const MON_6: ::nl_item = 0x2001F; - pub const MON_7: ::nl_item = 0x20020; - pub const MON_8: ::nl_item = 0x20021; - pub const MON_9: ::nl_item = 0x20022; - pub const MON_10: ::nl_item = 0x20023; - pub const MON_11: ::nl_item = 0x20024; - pub const MON_12: ::nl_item = 0x20025; - - pub const AM_STR: ::nl_item = 0x20026; - pub const PM_STR: ::nl_item = 0x20027; - - pub const D_T_FMT: ::nl_item = 0x20028; - pub const D_FMT: ::nl_item = 0x20029; - pub const T_FMT: ::nl_item = 0x2002A; - pub const T_FMT_AMPM: ::nl_item = 0x2002B; - - pub const ERA: ::nl_item = 0x2002C; - pub const ERA_D_FMT: ::nl_item = 0x2002E; - pub const ALT_DIGITS: ::nl_item = 0x2002F; - pub const ERA_D_T_FMT: ::nl_item = 0x20030; - pub const ERA_T_FMT: ::nl_item = 0x20031; - - pub const CODESET: ::nl_item = 14; - pub const CRNCYSTR: ::nl_item = 0x4000F; - pub const RADIXCHAR: ::nl_item = 0x10000; - pub const THOUSEP: ::nl_item = 0x10001; - pub const YESEXPR: ::nl_item = 0x50000; - pub const NOEXPR: ::nl_item = 0x50001; - pub const YESSTR: ::nl_item = 0x50002; - pub const NOSTR: ::nl_item = 0x50003; + pub const ABDAY_1: crate::nl_item = 0x20000; + pub const ABDAY_2: crate::nl_item = 0x20001; + pub const ABDAY_3: crate::nl_item = 0x20002; + pub const ABDAY_4: crate::nl_item = 0x20003; + pub const ABDAY_5: crate::nl_item = 0x20004; + pub const ABDAY_6: crate::nl_item = 0x20005; + pub const ABDAY_7: crate::nl_item = 0x20006; + + pub const DAY_1: crate::nl_item = 0x20007; + pub const DAY_2: crate::nl_item = 0x20008; + pub const DAY_3: crate::nl_item = 0x20009; + pub const DAY_4: crate::nl_item = 0x2000A; + pub const DAY_5: crate::nl_item = 0x2000B; + pub const DAY_6: crate::nl_item = 0x2000C; + pub const DAY_7: crate::nl_item = 0x2000D; + + pub const ABMON_1: crate::nl_item = 0x2000E; + pub const ABMON_2: crate::nl_item = 0x2000F; + pub const ABMON_3: crate::nl_item = 0x20010; + pub const ABMON_4: crate::nl_item = 0x20011; + pub const ABMON_5: crate::nl_item = 0x20012; + pub const ABMON_6: crate::nl_item = 0x20013; + pub const ABMON_7: crate::nl_item = 0x20014; + pub const ABMON_8: crate::nl_item = 0x20015; + pub const ABMON_9: crate::nl_item = 0x20016; + pub const ABMON_10: crate::nl_item = 0x20017; + pub const ABMON_11: crate::nl_item = 0x20018; + pub const ABMON_12: crate::nl_item = 0x20019; + + pub const MON_1: crate::nl_item = 0x2001A; + pub const MON_2: crate::nl_item = 0x2001B; + pub const MON_3: crate::nl_item = 0x2001C; + pub const MON_4: crate::nl_item = 0x2001D; + pub const MON_5: crate::nl_item = 0x2001E; + pub const MON_6: crate::nl_item = 0x2001F; + pub const MON_7: crate::nl_item = 0x20020; + pub const MON_8: crate::nl_item = 0x20021; + pub const MON_9: crate::nl_item = 0x20022; + pub const MON_10: crate::nl_item = 0x20023; + pub const MON_11: crate::nl_item = 0x20024; + pub const MON_12: crate::nl_item = 0x20025; + + pub const AM_STR: crate::nl_item = 0x20026; + pub const PM_STR: crate::nl_item = 0x20027; + + pub const D_T_FMT: crate::nl_item = 0x20028; + pub const D_FMT: crate::nl_item = 0x20029; + pub const T_FMT: crate::nl_item = 0x2002A; + pub const T_FMT_AMPM: crate::nl_item = 0x2002B; + + pub const ERA: crate::nl_item = 0x2002C; + pub const ERA_D_FMT: crate::nl_item = 0x2002E; + pub const ALT_DIGITS: crate::nl_item = 0x2002F; + pub const ERA_D_T_FMT: crate::nl_item = 0x20030; + pub const ERA_T_FMT: crate::nl_item = 0x20031; + + pub const CODESET: crate::nl_item = 14; + pub const CRNCYSTR: crate::nl_item = 0x4000F; + pub const RADIXCHAR: crate::nl_item = 0x10000; + pub const THOUSEP: crate::nl_item = 0x10001; + pub const YESEXPR: crate::nl_item = 0x50000; + pub const NOEXPR: crate::nl_item = 0x50001; + pub const YESSTR: crate::nl_item = 0x50002; + pub const NOSTR: crate::nl_item = 0x50003; } } -pub const RUSAGE_CHILDREN: ::c_int = -1; -pub const L_tmpnam: ::c_uint = 20; -pub const _PC_LINK_MAX: ::c_int = 0; -pub const _PC_MAX_CANON: ::c_int = 1; -pub const _PC_MAX_INPUT: ::c_int = 2; -pub const _PC_NAME_MAX: ::c_int = 3; -pub const _PC_PATH_MAX: ::c_int = 4; -pub const _PC_PIPE_BUF: ::c_int = 5; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 6; -pub const _PC_NO_TRUNC: ::c_int = 7; -pub const _PC_VDISABLE: ::c_int = 8; -pub const _PC_SYNC_IO: ::c_int = 9; -pub const _PC_ASYNC_IO: ::c_int = 10; -pub const _PC_PRIO_IO: ::c_int = 11; -pub const _PC_SOCK_MAXBUF: ::c_int = 12; -pub const _PC_FILESIZEBITS: ::c_int = 13; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; -pub const _PC_REC_XFER_ALIGN: ::c_int = 17; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 18; -pub const _PC_SYMLINK_MAX: ::c_int = 19; -pub const _PC_2_SYMLINKS: ::c_int = 20; - -pub const MS_NOUSER: ::c_ulong = 0xffffffff80000000; - -pub const _SC_ARG_MAX: ::c_int = 0; -pub const _SC_CHILD_MAX: ::c_int = 1; -pub const _SC_CLK_TCK: ::c_int = 2; -pub const _SC_NGROUPS_MAX: ::c_int = 3; -pub const _SC_OPEN_MAX: ::c_int = 4; -pub const _SC_STREAM_MAX: ::c_int = 5; -pub const _SC_TZNAME_MAX: ::c_int = 6; -pub const _SC_JOB_CONTROL: ::c_int = 7; -pub const _SC_SAVED_IDS: ::c_int = 8; -pub const _SC_REALTIME_SIGNALS: ::c_int = 9; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 10; -pub const _SC_TIMERS: ::c_int = 11; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 12; -pub const _SC_PRIORITIZED_IO: ::c_int = 13; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 14; -pub const _SC_FSYNC: ::c_int = 15; -pub const _SC_MAPPED_FILES: ::c_int = 16; -pub const _SC_MEMLOCK: ::c_int = 17; -pub const _SC_MEMLOCK_RANGE: ::c_int = 18; -pub const _SC_MEMORY_PROTECTION: ::c_int = 19; -pub const _SC_MESSAGE_PASSING: ::c_int = 20; -pub const _SC_SEMAPHORES: ::c_int = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 22; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 23; -pub const _SC_AIO_MAX: ::c_int = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 25; -pub const _SC_DELAYTIMER_MAX: ::c_int = 26; -pub const _SC_MQ_OPEN_MAX: ::c_int = 27; -pub const _SC_MQ_PRIO_MAX: ::c_int = 28; -pub const _SC_VERSION: ::c_int = 29; -pub const _SC_PAGESIZE: ::c_int = 30; -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_RTSIG_MAX: ::c_int = 31; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 32; -pub const _SC_SEM_VALUE_MAX: ::c_int = 33; -pub const _SC_SIGQUEUE_MAX: ::c_int = 34; -pub const _SC_TIMER_MAX: ::c_int = 35; -pub const _SC_BC_BASE_MAX: ::c_int = 36; -pub const _SC_BC_DIM_MAX: ::c_int = 37; -pub const _SC_BC_SCALE_MAX: ::c_int = 38; -pub const _SC_BC_STRING_MAX: ::c_int = 39; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 40; -pub const _SC_EXPR_NEST_MAX: ::c_int = 42; -pub const _SC_LINE_MAX: ::c_int = 43; -pub const _SC_RE_DUP_MAX: ::c_int = 44; -pub const _SC_2_VERSION: ::c_int = 46; -pub const _SC_2_C_BIND: ::c_int = 47; -pub const _SC_2_C_DEV: ::c_int = 48; -pub const _SC_2_FORT_DEV: ::c_int = 49; -pub const _SC_2_FORT_RUN: ::c_int = 50; -pub const _SC_2_SW_DEV: ::c_int = 51; -pub const _SC_2_LOCALEDEF: ::c_int = 52; -pub const _SC_UIO_MAXIOV: ::c_int = 60; -pub const _SC_IOV_MAX: ::c_int = 60; -pub const _SC_THREADS: ::c_int = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 68; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 69; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 70; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 71; -pub const _SC_TTY_NAME_MAX: ::c_int = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 73; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 74; -pub const _SC_THREAD_STACK_MIN: ::c_int = 75; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 76; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 79; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 80; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 81; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 82; -pub const _SC_NPROCESSORS_CONF: ::c_int = 83; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 84; -pub const _SC_PHYS_PAGES: ::c_int = 85; -pub const _SC_AVPHYS_PAGES: ::c_int = 86; -pub const _SC_ATEXIT_MAX: ::c_int = 87; -pub const _SC_PASS_MAX: ::c_int = 88; -pub const _SC_XOPEN_VERSION: ::c_int = 89; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 90; -pub const _SC_XOPEN_UNIX: ::c_int = 91; -pub const _SC_XOPEN_CRYPT: ::c_int = 92; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 93; -pub const _SC_XOPEN_SHM: ::c_int = 94; -pub const _SC_2_CHAR_TERM: ::c_int = 95; -pub const _SC_2_UPE: ::c_int = 97; -pub const _SC_XOPEN_XPG2: ::c_int = 98; -pub const _SC_XOPEN_XPG3: ::c_int = 99; -pub const _SC_XOPEN_XPG4: ::c_int = 100; -pub const _SC_NZERO: ::c_int = 109; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 125; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 126; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 128; -pub const _SC_XOPEN_LEGACY: ::c_int = 129; -pub const _SC_XOPEN_REALTIME: ::c_int = 130; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 131; -pub const _SC_ADVISORY_INFO: ::c_int = 132; -pub const _SC_BARRIERS: ::c_int = 133; -pub const _SC_CLOCK_SELECTION: ::c_int = 137; -pub const _SC_CPUTIME: ::c_int = 138; -pub const _SC_THREAD_CPUTIME: ::c_int = 139; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 149; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 153; -pub const _SC_SPIN_LOCKS: ::c_int = 154; -pub const _SC_REGEXP: ::c_int = 155; -pub const _SC_SHELL: ::c_int = 157; -pub const _SC_SPAWN: ::c_int = 159; -pub const _SC_SPORADIC_SERVER: ::c_int = 160; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 161; -pub const _SC_TIMEOUTS: ::c_int = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 165; -pub const _SC_2_PBS: ::c_int = 168; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 169; -pub const _SC_2_PBS_LOCATE: ::c_int = 170; -pub const _SC_2_PBS_MESSAGE: ::c_int = 171; -pub const _SC_2_PBS_TRACK: ::c_int = 172; -pub const _SC_SYMLOOP_MAX: ::c_int = 173; -pub const _SC_STREAMS: ::c_int = 174; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 175; -pub const _SC_V6_ILP32_OFF32: ::c_int = 176; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 177; -pub const _SC_V6_LP64_OFF64: ::c_int = 178; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 179; -pub const _SC_HOST_NAME_MAX: ::c_int = 180; -pub const _SC_TRACE: ::c_int = 181; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 182; -pub const _SC_TRACE_INHERIT: ::c_int = 183; -pub const _SC_TRACE_LOG: ::c_int = 184; -pub const _SC_IPV6: ::c_int = 235; -pub const _SC_RAW_SOCKETS: ::c_int = 236; -pub const _SC_V7_ILP32_OFF32: ::c_int = 237; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 238; -pub const _SC_V7_LP64_OFF64: ::c_int = 239; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 240; -pub const _SC_SS_REPL_MAX: ::c_int = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 242; -pub const _SC_TRACE_NAME_MAX: ::c_int = 243; -pub const _SC_TRACE_SYS_MAX: ::c_int = 244; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 245; -pub const _SC_XOPEN_STREAMS: ::c_int = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 248; - -pub const _CS_PATH: ::c_int = 0; -pub const _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS: ::c_int = 1; -pub const _CS_POSIX_V5_WIDTH_RESTRICTED_ENVS: ::c_int = 4; -pub const _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS: ::c_int = 5; -pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: ::c_int = 1116; -pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: ::c_int = 1117; -pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: ::c_int = 1118; -pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: ::c_int = 1119; -pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: ::c_int = 1120; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: ::c_int = 1121; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: ::c_int = 1122; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: ::c_int = 1123; -pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: ::c_int = 1124; -pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: ::c_int = 1125; -pub const _CS_POSIX_V6_LP64_OFF64_LIBS: ::c_int = 1126; -pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: ::c_int = 1127; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: ::c_int = 1128; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: ::c_int = 1129; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: ::c_int = 1130; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: ::c_int = 1131; -pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: ::c_int = 1132; -pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: ::c_int = 1133; -pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: ::c_int = 1134; -pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: ::c_int = 1135; -pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: ::c_int = 1136; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: ::c_int = 1137; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: ::c_int = 1138; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: ::c_int = 1139; -pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: ::c_int = 1140; -pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: ::c_int = 1141; -pub const _CS_POSIX_V7_LP64_OFF64_LIBS: ::c_int = 1142; -pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: ::c_int = 1143; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: ::c_int = 1144; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: ::c_int = 1145; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: ::c_int = 1146; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: ::c_int = 1147; - -pub const RLIM_SAVED_MAX: ::rlim_t = RLIM_INFINITY; -pub const RLIM_SAVED_CUR: ::rlim_t = RLIM_INFINITY; +pub const RUSAGE_CHILDREN: c_int = -1; +pub const L_tmpnam: c_uint = 20; +pub const _PC_LINK_MAX: c_int = 0; +pub const _PC_MAX_CANON: c_int = 1; +pub const _PC_MAX_INPUT: c_int = 2; +pub const _PC_NAME_MAX: c_int = 3; +pub const _PC_PATH_MAX: c_int = 4; +pub const _PC_PIPE_BUF: c_int = 5; +pub const _PC_CHOWN_RESTRICTED: c_int = 6; +pub const _PC_NO_TRUNC: c_int = 7; +pub const _PC_VDISABLE: c_int = 8; +pub const _PC_SYNC_IO: c_int = 9; +pub const _PC_ASYNC_IO: c_int = 10; +pub const _PC_PRIO_IO: c_int = 11; +pub const _PC_SOCK_MAXBUF: c_int = 12; +pub const _PC_FILESIZEBITS: c_int = 13; +pub const _PC_REC_INCR_XFER_SIZE: c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: c_int = 16; +pub const _PC_REC_XFER_ALIGN: c_int = 17; +pub const _PC_ALLOC_SIZE_MIN: c_int = 18; +pub const _PC_SYMLINK_MAX: c_int = 19; +pub const _PC_2_SYMLINKS: c_int = 20; + +pub const MS_NOUSER: c_ulong = 0xffffffff80000000; + +pub const _SC_ARG_MAX: c_int = 0; +pub const _SC_CHILD_MAX: c_int = 1; +pub const _SC_CLK_TCK: c_int = 2; +pub const _SC_NGROUPS_MAX: c_int = 3; +pub const _SC_OPEN_MAX: c_int = 4; +pub const _SC_STREAM_MAX: c_int = 5; +pub const _SC_TZNAME_MAX: c_int = 6; +pub const _SC_JOB_CONTROL: c_int = 7; +pub const _SC_SAVED_IDS: c_int = 8; +pub const _SC_REALTIME_SIGNALS: c_int = 9; +pub const _SC_PRIORITY_SCHEDULING: c_int = 10; +pub const _SC_TIMERS: c_int = 11; +pub const _SC_ASYNCHRONOUS_IO: c_int = 12; +pub const _SC_PRIORITIZED_IO: c_int = 13; +pub const _SC_SYNCHRONIZED_IO: c_int = 14; +pub const _SC_FSYNC: c_int = 15; +pub const _SC_MAPPED_FILES: c_int = 16; +pub const _SC_MEMLOCK: c_int = 17; +pub const _SC_MEMLOCK_RANGE: c_int = 18; +pub const _SC_MEMORY_PROTECTION: c_int = 19; +pub const _SC_MESSAGE_PASSING: c_int = 20; +pub const _SC_SEMAPHORES: c_int = 21; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 22; +pub const _SC_AIO_LISTIO_MAX: c_int = 23; +pub const _SC_AIO_MAX: c_int = 24; +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 25; +pub const _SC_DELAYTIMER_MAX: c_int = 26; +pub const _SC_MQ_OPEN_MAX: c_int = 27; +pub const _SC_MQ_PRIO_MAX: c_int = 28; +pub const _SC_VERSION: c_int = 29; +pub const _SC_PAGESIZE: c_int = 30; +pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; +pub const _SC_RTSIG_MAX: c_int = 31; +pub const _SC_SEM_NSEMS_MAX: c_int = 32; +pub const _SC_SEM_VALUE_MAX: c_int = 33; +pub const _SC_SIGQUEUE_MAX: c_int = 34; +pub const _SC_TIMER_MAX: c_int = 35; +pub const _SC_BC_BASE_MAX: c_int = 36; +pub const _SC_BC_DIM_MAX: c_int = 37; +pub const _SC_BC_SCALE_MAX: c_int = 38; +pub const _SC_BC_STRING_MAX: c_int = 39; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 40; +pub const _SC_EXPR_NEST_MAX: c_int = 42; +pub const _SC_LINE_MAX: c_int = 43; +pub const _SC_RE_DUP_MAX: c_int = 44; +pub const _SC_2_VERSION: c_int = 46; +pub const _SC_2_C_BIND: c_int = 47; +pub const _SC_2_C_DEV: c_int = 48; +pub const _SC_2_FORT_DEV: c_int = 49; +pub const _SC_2_FORT_RUN: c_int = 50; +pub const _SC_2_SW_DEV: c_int = 51; +pub const _SC_2_LOCALEDEF: c_int = 52; +pub const _SC_UIO_MAXIOV: c_int = 60; +pub const _SC_IOV_MAX: c_int = 60; +pub const _SC_THREADS: c_int = 67; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 68; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 69; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 70; +pub const _SC_LOGIN_NAME_MAX: c_int = 71; +pub const _SC_TTY_NAME_MAX: c_int = 72; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 73; +pub const _SC_THREAD_KEYS_MAX: c_int = 74; +pub const _SC_THREAD_STACK_MIN: c_int = 75; +pub const _SC_THREAD_THREADS_MAX: c_int = 76; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 77; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 78; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 79; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 80; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 81; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 82; +pub const _SC_NPROCESSORS_CONF: c_int = 83; +pub const _SC_NPROCESSORS_ONLN: c_int = 84; +pub const _SC_PHYS_PAGES: c_int = 85; +pub const _SC_AVPHYS_PAGES: c_int = 86; +pub const _SC_ATEXIT_MAX: c_int = 87; +pub const _SC_PASS_MAX: c_int = 88; +pub const _SC_XOPEN_VERSION: c_int = 89; +pub const _SC_XOPEN_XCU_VERSION: c_int = 90; +pub const _SC_XOPEN_UNIX: c_int = 91; +pub const _SC_XOPEN_CRYPT: c_int = 92; +pub const _SC_XOPEN_ENH_I18N: c_int = 93; +pub const _SC_XOPEN_SHM: c_int = 94; +pub const _SC_2_CHAR_TERM: c_int = 95; +pub const _SC_2_UPE: c_int = 97; +pub const _SC_XOPEN_XPG2: c_int = 98; +pub const _SC_XOPEN_XPG3: c_int = 99; +pub const _SC_XOPEN_XPG4: c_int = 100; +pub const _SC_NZERO: c_int = 109; +pub const _SC_XBS5_ILP32_OFF32: c_int = 125; +pub const _SC_XBS5_ILP32_OFFBIG: c_int = 126; +pub const _SC_XBS5_LP64_OFF64: c_int = 127; +pub const _SC_XBS5_LPBIG_OFFBIG: c_int = 128; +pub const _SC_XOPEN_LEGACY: c_int = 129; +pub const _SC_XOPEN_REALTIME: c_int = 130; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 131; +pub const _SC_ADVISORY_INFO: c_int = 132; +pub const _SC_BARRIERS: c_int = 133; +pub const _SC_CLOCK_SELECTION: c_int = 137; +pub const _SC_CPUTIME: c_int = 138; +pub const _SC_THREAD_CPUTIME: c_int = 139; +pub const _SC_MONOTONIC_CLOCK: c_int = 149; +pub const _SC_READER_WRITER_LOCKS: c_int = 153; +pub const _SC_SPIN_LOCKS: c_int = 154; +pub const _SC_REGEXP: c_int = 155; +pub const _SC_SHELL: c_int = 157; +pub const _SC_SPAWN: c_int = 159; +pub const _SC_SPORADIC_SERVER: c_int = 160; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 161; +pub const _SC_TIMEOUTS: c_int = 164; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 165; +pub const _SC_2_PBS: c_int = 168; +pub const _SC_2_PBS_ACCOUNTING: c_int = 169; +pub const _SC_2_PBS_LOCATE: c_int = 170; +pub const _SC_2_PBS_MESSAGE: c_int = 171; +pub const _SC_2_PBS_TRACK: c_int = 172; +pub const _SC_SYMLOOP_MAX: c_int = 173; +pub const _SC_STREAMS: c_int = 174; +pub const _SC_2_PBS_CHECKPOINT: c_int = 175; +pub const _SC_V6_ILP32_OFF32: c_int = 176; +pub const _SC_V6_ILP32_OFFBIG: c_int = 177; +pub const _SC_V6_LP64_OFF64: c_int = 178; +pub const _SC_V6_LPBIG_OFFBIG: c_int = 179; +pub const _SC_HOST_NAME_MAX: c_int = 180; +pub const _SC_TRACE: c_int = 181; +pub const _SC_TRACE_EVENT_FILTER: c_int = 182; +pub const _SC_TRACE_INHERIT: c_int = 183; +pub const _SC_TRACE_LOG: c_int = 184; +pub const _SC_IPV6: c_int = 235; +pub const _SC_RAW_SOCKETS: c_int = 236; +pub const _SC_V7_ILP32_OFF32: c_int = 237; +pub const _SC_V7_ILP32_OFFBIG: c_int = 238; +pub const _SC_V7_LP64_OFF64: c_int = 239; +pub const _SC_V7_LPBIG_OFFBIG: c_int = 240; +pub const _SC_SS_REPL_MAX: c_int = 241; +pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 242; +pub const _SC_TRACE_NAME_MAX: c_int = 243; +pub const _SC_TRACE_SYS_MAX: c_int = 244; +pub const _SC_TRACE_USER_EVENT_MAX: c_int = 245; +pub const _SC_XOPEN_STREAMS: c_int = 246; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 247; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 248; + +pub const _CS_PATH: c_int = 0; +pub const _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS: c_int = 1; +pub const _CS_POSIX_V5_WIDTH_RESTRICTED_ENVS: c_int = 4; +pub const _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS: c_int = 5; +pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: c_int = 1116; +pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: c_int = 1117; +pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: c_int = 1118; +pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: c_int = 1119; +pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: c_int = 1120; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: c_int = 1121; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: c_int = 1122; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: c_int = 1123; +pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: c_int = 1124; +pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: c_int = 1125; +pub const _CS_POSIX_V6_LP64_OFF64_LIBS: c_int = 1126; +pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: c_int = 1127; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: c_int = 1128; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: c_int = 1129; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: c_int = 1130; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: c_int = 1131; +pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: c_int = 1132; +pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: c_int = 1133; +pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: c_int = 1134; +pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: c_int = 1135; +pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: c_int = 1136; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: c_int = 1137; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: c_int = 1138; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: c_int = 1139; +pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: c_int = 1140; +pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: c_int = 1141; +pub const _CS_POSIX_V7_LP64_OFF64_LIBS: c_int = 1142; +pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: c_int = 1143; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: c_int = 1144; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: c_int = 1145; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: c_int = 1146; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: c_int = 1147; + +pub const RLIM_SAVED_MAX: crate::rlim_t = RLIM_INFINITY; +pub const RLIM_SAVED_CUR: crate::rlim_t = RLIM_INFINITY; // elf.h - Fields in the e_ident array. pub const EI_NIDENT: usize = 16; @@ -2692,80 +2696,80 @@ pub const PF_MASKOS: u32 = 0x0ff00000; pub const PF_MASKPROC: u32 = 0xf0000000; // elf.h - Legal values for a_type (entry type). -pub const AT_NULL: ::c_ulong = 0; -pub const AT_IGNORE: ::c_ulong = 1; -pub const AT_EXECFD: ::c_ulong = 2; -pub const AT_PHDR: ::c_ulong = 3; -pub const AT_PHENT: ::c_ulong = 4; -pub const AT_PHNUM: ::c_ulong = 5; -pub const AT_PAGESZ: ::c_ulong = 6; -pub const AT_BASE: ::c_ulong = 7; -pub const AT_FLAGS: ::c_ulong = 8; -pub const AT_ENTRY: ::c_ulong = 9; -pub const AT_NOTELF: ::c_ulong = 10; -pub const AT_UID: ::c_ulong = 11; -pub const AT_EUID: ::c_ulong = 12; -pub const AT_GID: ::c_ulong = 13; -pub const AT_EGID: ::c_ulong = 14; -pub const AT_PLATFORM: ::c_ulong = 15; -pub const AT_HWCAP: ::c_ulong = 16; -pub const AT_CLKTCK: ::c_ulong = 17; - -pub const AT_SECURE: ::c_ulong = 23; -pub const AT_BASE_PLATFORM: ::c_ulong = 24; -pub const AT_RANDOM: ::c_ulong = 25; -pub const AT_HWCAP2: ::c_ulong = 26; - -pub const AT_EXECFN: ::c_ulong = 31; +pub const AT_NULL: c_ulong = 0; +pub const AT_IGNORE: c_ulong = 1; +pub const AT_EXECFD: c_ulong = 2; +pub const AT_PHDR: c_ulong = 3; +pub const AT_PHENT: c_ulong = 4; +pub const AT_PHNUM: c_ulong = 5; +pub const AT_PAGESZ: c_ulong = 6; +pub const AT_BASE: c_ulong = 7; +pub const AT_FLAGS: c_ulong = 8; +pub const AT_ENTRY: c_ulong = 9; +pub const AT_NOTELF: c_ulong = 10; +pub const AT_UID: c_ulong = 11; +pub const AT_EUID: c_ulong = 12; +pub const AT_GID: c_ulong = 13; +pub const AT_EGID: c_ulong = 14; +pub const AT_PLATFORM: c_ulong = 15; +pub const AT_HWCAP: c_ulong = 16; +pub const AT_CLKTCK: c_ulong = 17; + +pub const AT_SECURE: c_ulong = 23; +pub const AT_BASE_PLATFORM: c_ulong = 24; +pub const AT_RANDOM: c_ulong = 25; +pub const AT_HWCAP2: c_ulong = 26; + +pub const AT_EXECFN: c_ulong = 31; // defined in arch//include/uapi/asm/auxvec.h but has the same value // wherever it is defined. -pub const AT_SYSINFO_EHDR: ::c_ulong = 33; -pub const AT_MINSIGSTKSZ: ::c_ulong = 51; - -pub const GLOB_ERR: ::c_int = 1 << 0; -pub const GLOB_MARK: ::c_int = 1 << 1; -pub const GLOB_NOSORT: ::c_int = 1 << 2; -pub const GLOB_DOOFFS: ::c_int = 1 << 3; -pub const GLOB_NOCHECK: ::c_int = 1 << 4; -pub const GLOB_APPEND: ::c_int = 1 << 5; -pub const GLOB_NOESCAPE: ::c_int = 1 << 6; - -pub const GLOB_NOSPACE: ::c_int = 1; -pub const GLOB_ABORTED: ::c_int = 2; -pub const GLOB_NOMATCH: ::c_int = 3; - -pub const POSIX_MADV_NORMAL: ::c_int = 0; -pub const POSIX_MADV_RANDOM: ::c_int = 1; -pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_MADV_WILLNEED: ::c_int = 3; -pub const POSIX_SPAWN_USEVFORK: ::c_int = 64; -pub const POSIX_SPAWN_SETSID: ::c_int = 128; +pub const AT_SYSINFO_EHDR: c_ulong = 33; +pub const AT_MINSIGSTKSZ: c_ulong = 51; + +pub const GLOB_ERR: c_int = 1 << 0; +pub const GLOB_MARK: c_int = 1 << 1; +pub const GLOB_NOSORT: c_int = 1 << 2; +pub const GLOB_DOOFFS: c_int = 1 << 3; +pub const GLOB_NOCHECK: c_int = 1 << 4; +pub const GLOB_APPEND: c_int = 1 << 5; +pub const GLOB_NOESCAPE: c_int = 1 << 6; + +pub const GLOB_NOSPACE: c_int = 1; +pub const GLOB_ABORTED: c_int = 2; +pub const GLOB_NOMATCH: c_int = 3; + +pub const POSIX_MADV_NORMAL: c_int = 0; +pub const POSIX_MADV_RANDOM: c_int = 1; +pub const POSIX_MADV_SEQUENTIAL: c_int = 2; +pub const POSIX_MADV_WILLNEED: c_int = 3; +pub const POSIX_SPAWN_USEVFORK: c_int = 64; +pub const POSIX_SPAWN_SETSID: c_int = 128; pub const S_IEXEC: mode_t = 0o0100; pub const S_IWRITE: mode_t = 0o0200; pub const S_IREAD: mode_t = 0o0400; -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; +pub const F_LOCK: c_int = 1; +pub const F_TEST: c_int = 3; +pub const F_TLOCK: c_int = 2; +pub const F_ULOCK: c_int = 0; -pub const F_SEAL_FUTURE_WRITE: ::c_int = 0x0010; +pub const F_SEAL_FUTURE_WRITE: c_int = 0x0010; -pub const IFF_LOWER_UP: ::c_int = 0x10000; -pub const IFF_DORMANT: ::c_int = 0x20000; -pub const IFF_ECHO: ::c_int = 0x40000; +pub const IFF_LOWER_UP: c_int = 0x10000; +pub const IFF_DORMANT: c_int = 0x20000; +pub const IFF_ECHO: c_int = 0x40000; // linux/if_addr.h -pub const IFA_UNSPEC: ::c_ushort = 0; -pub const IFA_ADDRESS: ::c_ushort = 1; -pub const IFA_LOCAL: ::c_ushort = 2; -pub const IFA_LABEL: ::c_ushort = 3; -pub const IFA_BROADCAST: ::c_ushort = 4; -pub const IFA_ANYCAST: ::c_ushort = 5; -pub const IFA_CACHEINFO: ::c_ushort = 6; -pub const IFA_MULTICAST: ::c_ushort = 7; +pub const IFA_UNSPEC: c_ushort = 0; +pub const IFA_ADDRESS: c_ushort = 1; +pub const IFA_LOCAL: c_ushort = 2; +pub const IFA_LABEL: c_ushort = 3; +pub const IFA_BROADCAST: c_ushort = 4; +pub const IFA_ANYCAST: c_ushort = 5; +pub const IFA_CACHEINFO: c_ushort = 6; +pub const IFA_MULTICAST: c_ushort = 7; pub const IFA_F_SECONDARY: u32 = 0x01; pub const IFA_F_TEMPORARY: u32 = 0x01; @@ -2778,161 +2782,161 @@ pub const IFA_F_TENTATIVE: u32 = 0x40; pub const IFA_F_PERMANENT: u32 = 0x80; // linux/if_link.h -pub const IFLA_UNSPEC: ::c_ushort = 0; -pub const IFLA_ADDRESS: ::c_ushort = 1; -pub const IFLA_BROADCAST: ::c_ushort = 2; -pub const IFLA_IFNAME: ::c_ushort = 3; -pub const IFLA_MTU: ::c_ushort = 4; -pub const IFLA_LINK: ::c_ushort = 5; -pub const IFLA_QDISC: ::c_ushort = 6; -pub const IFLA_STATS: ::c_ushort = 7; -pub const IFLA_COST: ::c_ushort = 8; -pub const IFLA_PRIORITY: ::c_ushort = 9; -pub const IFLA_MASTER: ::c_ushort = 10; -pub const IFLA_WIRELESS: ::c_ushort = 11; -pub const IFLA_PROTINFO: ::c_ushort = 12; -pub const IFLA_TXQLEN: ::c_ushort = 13; -pub const IFLA_MAP: ::c_ushort = 14; -pub const IFLA_WEIGHT: ::c_ushort = 15; -pub const IFLA_OPERSTATE: ::c_ushort = 16; -pub const IFLA_LINKMODE: ::c_ushort = 17; -pub const IFLA_LINKINFO: ::c_ushort = 18; -pub const IFLA_NET_NS_PID: ::c_ushort = 19; -pub const IFLA_IFALIAS: ::c_ushort = 20; -pub const IFLA_NUM_VF: ::c_ushort = 21; -pub const IFLA_VFINFO_LIST: ::c_ushort = 22; -pub const IFLA_STATS64: ::c_ushort = 23; -pub const IFLA_VF_PORTS: ::c_ushort = 24; -pub const IFLA_PORT_SELF: ::c_ushort = 25; -pub const IFLA_AF_SPEC: ::c_ushort = 26; -pub const IFLA_GROUP: ::c_ushort = 27; -pub const IFLA_NET_NS_FD: ::c_ushort = 28; -pub const IFLA_EXT_MASK: ::c_ushort = 29; -pub const IFLA_PROMISCUITY: ::c_ushort = 30; -pub const IFLA_NUM_TX_QUEUES: ::c_ushort = 31; -pub const IFLA_NUM_RX_QUEUES: ::c_ushort = 32; -pub const IFLA_CARRIER: ::c_ushort = 33; -pub const IFLA_PHYS_PORT_ID: ::c_ushort = 34; -pub const IFLA_CARRIER_CHANGES: ::c_ushort = 35; -pub const IFLA_PHYS_SWITCH_ID: ::c_ushort = 36; -pub const IFLA_LINK_NETNSID: ::c_ushort = 37; -pub const IFLA_PHYS_PORT_NAME: ::c_ushort = 38; -pub const IFLA_PROTO_DOWN: ::c_ushort = 39; -pub const IFLA_GSO_MAX_SEGS: ::c_ushort = 40; -pub const IFLA_GSO_MAX_SIZE: ::c_ushort = 41; -pub const IFLA_PAD: ::c_ushort = 42; -pub const IFLA_XDP: ::c_ushort = 43; -pub const IFLA_EVENT: ::c_ushort = 44; -pub const IFLA_NEW_NETNSID: ::c_ushort = 45; -pub const IFLA_IF_NETNSID: ::c_ushort = 46; -pub const IFLA_TARGET_NETNSID: ::c_ushort = IFLA_IF_NETNSID; -pub const IFLA_CARRIER_UP_COUNT: ::c_ushort = 47; -pub const IFLA_CARRIER_DOWN_COUNT: ::c_ushort = 48; -pub const IFLA_NEW_IFINDEX: ::c_ushort = 49; -pub const IFLA_MIN_MTU: ::c_ushort = 50; -pub const IFLA_MAX_MTU: ::c_ushort = 51; -pub const IFLA_PROP_LIST: ::c_ushort = 52; -pub const IFLA_ALT_IFNAME: ::c_ushort = 53; -pub const IFLA_PERM_ADDRESS: ::c_ushort = 54; -pub const IFLA_PROTO_DOWN_REASON: ::c_ushort = 55; -pub const IFLA_PARENT_DEV_NAME: ::c_ushort = 56; -pub const IFLA_PARENT_DEV_BUS_NAME: ::c_ushort = 57; -pub const IFLA_GRO_MAX_SIZE: ::c_ushort = 58; -pub const IFLA_TSO_MAX_SIZE: ::c_ushort = 59; -pub const IFLA_TSO_MAX_SEGS: ::c_ushort = 60; -pub const IFLA_ALLMULTI: ::c_ushort = 61; - -pub const IFLA_INFO_UNSPEC: ::c_ushort = 0; -pub const IFLA_INFO_KIND: ::c_ushort = 1; -pub const IFLA_INFO_DATA: ::c_ushort = 2; -pub const IFLA_INFO_XSTATS: ::c_ushort = 3; -pub const IFLA_INFO_SLAVE_KIND: ::c_ushort = 4; -pub const IFLA_INFO_SLAVE_DATA: ::c_ushort = 5; +pub const IFLA_UNSPEC: c_ushort = 0; +pub const IFLA_ADDRESS: c_ushort = 1; +pub const IFLA_BROADCAST: c_ushort = 2; +pub const IFLA_IFNAME: c_ushort = 3; +pub const IFLA_MTU: c_ushort = 4; +pub const IFLA_LINK: c_ushort = 5; +pub const IFLA_QDISC: c_ushort = 6; +pub const IFLA_STATS: c_ushort = 7; +pub const IFLA_COST: c_ushort = 8; +pub const IFLA_PRIORITY: c_ushort = 9; +pub const IFLA_MASTER: c_ushort = 10; +pub const IFLA_WIRELESS: c_ushort = 11; +pub const IFLA_PROTINFO: c_ushort = 12; +pub const IFLA_TXQLEN: c_ushort = 13; +pub const IFLA_MAP: c_ushort = 14; +pub const IFLA_WEIGHT: c_ushort = 15; +pub const IFLA_OPERSTATE: c_ushort = 16; +pub const IFLA_LINKMODE: c_ushort = 17; +pub const IFLA_LINKINFO: c_ushort = 18; +pub const IFLA_NET_NS_PID: c_ushort = 19; +pub const IFLA_IFALIAS: c_ushort = 20; +pub const IFLA_NUM_VF: c_ushort = 21; +pub const IFLA_VFINFO_LIST: c_ushort = 22; +pub const IFLA_STATS64: c_ushort = 23; +pub const IFLA_VF_PORTS: c_ushort = 24; +pub const IFLA_PORT_SELF: c_ushort = 25; +pub const IFLA_AF_SPEC: c_ushort = 26; +pub const IFLA_GROUP: c_ushort = 27; +pub const IFLA_NET_NS_FD: c_ushort = 28; +pub const IFLA_EXT_MASK: c_ushort = 29; +pub const IFLA_PROMISCUITY: c_ushort = 30; +pub const IFLA_NUM_TX_QUEUES: c_ushort = 31; +pub const IFLA_NUM_RX_QUEUES: c_ushort = 32; +pub const IFLA_CARRIER: c_ushort = 33; +pub const IFLA_PHYS_PORT_ID: c_ushort = 34; +pub const IFLA_CARRIER_CHANGES: c_ushort = 35; +pub const IFLA_PHYS_SWITCH_ID: c_ushort = 36; +pub const IFLA_LINK_NETNSID: c_ushort = 37; +pub const IFLA_PHYS_PORT_NAME: c_ushort = 38; +pub const IFLA_PROTO_DOWN: c_ushort = 39; +pub const IFLA_GSO_MAX_SEGS: c_ushort = 40; +pub const IFLA_GSO_MAX_SIZE: c_ushort = 41; +pub const IFLA_PAD: c_ushort = 42; +pub const IFLA_XDP: c_ushort = 43; +pub const IFLA_EVENT: c_ushort = 44; +pub const IFLA_NEW_NETNSID: c_ushort = 45; +pub const IFLA_IF_NETNSID: c_ushort = 46; +pub const IFLA_TARGET_NETNSID: c_ushort = IFLA_IF_NETNSID; +pub const IFLA_CARRIER_UP_COUNT: c_ushort = 47; +pub const IFLA_CARRIER_DOWN_COUNT: c_ushort = 48; +pub const IFLA_NEW_IFINDEX: c_ushort = 49; +pub const IFLA_MIN_MTU: c_ushort = 50; +pub const IFLA_MAX_MTU: c_ushort = 51; +pub const IFLA_PROP_LIST: c_ushort = 52; +pub const IFLA_ALT_IFNAME: c_ushort = 53; +pub const IFLA_PERM_ADDRESS: c_ushort = 54; +pub const IFLA_PROTO_DOWN_REASON: c_ushort = 55; +pub const IFLA_PARENT_DEV_NAME: c_ushort = 56; +pub const IFLA_PARENT_DEV_BUS_NAME: c_ushort = 57; +pub const IFLA_GRO_MAX_SIZE: c_ushort = 58; +pub const IFLA_TSO_MAX_SIZE: c_ushort = 59; +pub const IFLA_TSO_MAX_SEGS: c_ushort = 60; +pub const IFLA_ALLMULTI: c_ushort = 61; + +pub const IFLA_INFO_UNSPEC: c_ushort = 0; +pub const IFLA_INFO_KIND: c_ushort = 1; +pub const IFLA_INFO_DATA: c_ushort = 2; +pub const IFLA_INFO_XSTATS: c_ushort = 3; +pub const IFLA_INFO_SLAVE_KIND: c_ushort = 4; +pub const IFLA_INFO_SLAVE_DATA: c_ushort = 5; // linux/if_tun.h /* TUNSETIFF ifr flags */ -pub const IFF_TUN: ::c_int = 0x0001; -pub const IFF_TAP: ::c_int = 0x0002; -pub const IFF_NAPI: ::c_int = 0x0010; -pub const IFF_NAPI_FRAGS: ::c_int = 0x0020; +pub const IFF_TUN: c_int = 0x0001; +pub const IFF_TAP: c_int = 0x0002; +pub const IFF_NAPI: c_int = 0x0010; +pub const IFF_NAPI_FRAGS: c_int = 0x0020; // Used in TUNSETIFF to bring up tun/tap without carrier -pub const IFF_NO_CARRIER: ::c_int = 0x0040; -pub const IFF_NO_PI: ::c_int = 0x1000; +pub const IFF_NO_CARRIER: c_int = 0x0040; +pub const IFF_NO_PI: c_int = 0x1000; // Read queue size -pub const TUN_READQ_SIZE: ::c_short = 500; +pub const TUN_READQ_SIZE: c_short = 500; // TUN device type flags: deprecated. Use IFF_TUN/IFF_TAP instead. -pub const TUN_TUN_DEV: ::c_short = ::IFF_TUN as ::c_short; -pub const TUN_TAP_DEV: ::c_short = ::IFF_TAP as ::c_short; -pub const TUN_TYPE_MASK: ::c_short = 0x000f; +pub const TUN_TUN_DEV: c_short = crate::IFF_TUN as c_short; +pub const TUN_TAP_DEV: c_short = crate::IFF_TAP as c_short; +pub const TUN_TYPE_MASK: c_short = 0x000f; // This flag has no real effect -pub const IFF_ONE_QUEUE: ::c_int = 0x2000; -pub const IFF_VNET_HDR: ::c_int = 0x4000; -pub const IFF_TUN_EXCL: ::c_int = 0x8000; -pub const IFF_MULTI_QUEUE: ::c_int = 0x0100; -pub const IFF_ATTACH_QUEUE: ::c_int = 0x0200; -pub const IFF_DETACH_QUEUE: ::c_int = 0x0400; +pub const IFF_ONE_QUEUE: c_int = 0x2000; +pub const IFF_VNET_HDR: c_int = 0x4000; +pub const IFF_TUN_EXCL: c_int = 0x8000; +pub const IFF_MULTI_QUEUE: c_int = 0x0100; +pub const IFF_ATTACH_QUEUE: c_int = 0x0200; +pub const IFF_DETACH_QUEUE: c_int = 0x0400; // read-only flag -pub const IFF_PERSIST: ::c_int = 0x0800; -pub const IFF_NOFILTER: ::c_int = 0x1000; +pub const IFF_PERSIST: c_int = 0x0800; +pub const IFF_NOFILTER: c_int = 0x1000; // Socket options -pub const TUN_TX_TIMESTAMP: ::c_int = 1; +pub const TUN_TX_TIMESTAMP: c_int = 1; // Features for GSO (TUNSETOFFLOAD) -pub const TUN_F_CSUM: ::c_uint = 0x01; -pub const TUN_F_TSO4: ::c_uint = 0x02; -pub const TUN_F_TSO6: ::c_uint = 0x04; -pub const TUN_F_TSO_ECN: ::c_uint = 0x08; -pub const TUN_F_UFO: ::c_uint = 0x10; -pub const TUN_F_USO4: ::c_uint = 0x20; -pub const TUN_F_USO6: ::c_uint = 0x40; +pub const TUN_F_CSUM: c_uint = 0x01; +pub const TUN_F_TSO4: c_uint = 0x02; +pub const TUN_F_TSO6: c_uint = 0x04; +pub const TUN_F_TSO_ECN: c_uint = 0x08; +pub const TUN_F_UFO: c_uint = 0x10; +pub const TUN_F_USO4: c_uint = 0x20; +pub const TUN_F_USO6: c_uint = 0x40; // Protocol info prepended to the packets (when IFF_NO_PI is not set) -pub const TUN_PKT_STRIP: ::c_int = 0x0001; +pub const TUN_PKT_STRIP: c_int = 0x0001; // Accept all multicast packets -pub const TUN_FLT_ALLMULTI: ::c_int = 0x0001; +pub const TUN_FLT_ALLMULTI: c_int = 0x0001; // Since Linux 3.1 -pub const SEEK_DATA: ::c_int = 3; -pub const SEEK_HOLE: ::c_int = 4; - -pub const ST_RDONLY: ::c_ulong = 1; -pub const ST_NOSUID: ::c_ulong = 2; -pub const ST_NODEV: ::c_ulong = 4; -pub const ST_NOEXEC: ::c_ulong = 8; -pub const ST_SYNCHRONOUS: ::c_ulong = 16; -pub const ST_MANDLOCK: ::c_ulong = 64; -pub const ST_WRITE: ::c_ulong = 128; -pub const ST_APPEND: ::c_ulong = 256; -pub const ST_IMMUTABLE: ::c_ulong = 512; -pub const ST_NOATIME: ::c_ulong = 1024; -pub const ST_NODIRATIME: ::c_ulong = 2048; - -pub const RTLD_NEXT: *mut ::c_void = -1i64 as *mut ::c_void; -pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; -pub const RTLD_NODELETE: ::c_int = 0x1000; -pub const RTLD_NOW: ::c_int = 0x2; - -pub const AT_EACCESS: ::c_int = 0x200; +pub const SEEK_DATA: c_int = 3; +pub const SEEK_HOLE: c_int = 4; + +pub const ST_RDONLY: c_ulong = 1; +pub const ST_NOSUID: c_ulong = 2; +pub const ST_NODEV: c_ulong = 4; +pub const ST_NOEXEC: c_ulong = 8; +pub const ST_SYNCHRONOUS: c_ulong = 16; +pub const ST_MANDLOCK: c_ulong = 64; +pub const ST_WRITE: c_ulong = 128; +pub const ST_APPEND: c_ulong = 256; +pub const ST_IMMUTABLE: c_ulong = 512; +pub const ST_NOATIME: c_ulong = 1024; +pub const ST_NODIRATIME: c_ulong = 2048; + +pub const RTLD_NEXT: *mut c_void = -1i64 as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = 0i64 as *mut c_void; +pub const RTLD_NODELETE: c_int = 0x1000; +pub const RTLD_NOW: c_int = 0x2; + +pub const AT_EACCESS: c_int = 0x200; // linux/mempolicy.h -pub const MPOL_DEFAULT: ::c_int = 0; -pub const MPOL_PREFERRED: ::c_int = 1; -pub const MPOL_BIND: ::c_int = 2; -pub const MPOL_INTERLEAVE: ::c_int = 3; -pub const MPOL_LOCAL: ::c_int = 4; -pub const MPOL_F_NUMA_BALANCING: ::c_int = 1 << 13; -pub const MPOL_F_RELATIVE_NODES: ::c_int = 1 << 14; -pub const MPOL_F_STATIC_NODES: ::c_int = 1 << 15; +pub const MPOL_DEFAULT: c_int = 0; +pub const MPOL_PREFERRED: c_int = 1; +pub const MPOL_BIND: c_int = 2; +pub const MPOL_INTERLEAVE: c_int = 3; +pub const MPOL_LOCAL: c_int = 4; +pub const MPOL_F_NUMA_BALANCING: c_int = 1 << 13; +pub const MPOL_F_RELATIVE_NODES: c_int = 1 << 14; +pub const MPOL_F_STATIC_NODES: c_int = 1 << 15; // linux/membarrier.h -pub const MEMBARRIER_CMD_QUERY: ::c_int = 0; -pub const MEMBARRIER_CMD_GLOBAL: ::c_int = 1 << 0; -pub const MEMBARRIER_CMD_GLOBAL_EXPEDITED: ::c_int = 1 << 1; -pub const MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED: ::c_int = 1 << 2; -pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED: ::c_int = 1 << 3; -pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED: ::c_int = 1 << 4; -pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 5; -pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 6; -pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 7; -pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 8; +pub const MEMBARRIER_CMD_QUERY: c_int = 0; +pub const MEMBARRIER_CMD_GLOBAL: c_int = 1 << 0; +pub const MEMBARRIER_CMD_GLOBAL_EXPEDITED: c_int = 1 << 1; +pub const MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED: c_int = 1 << 2; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED: c_int = 1 << 3; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED: c_int = 1 << 4; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE: c_int = 1 << 5; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE: c_int = 1 << 6; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: c_int = 1 << 7; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: c_int = 1 << 8; pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { size: [0; __SIZEOF_PTHREAD_MUTEX_T], @@ -2944,26 +2948,26 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { size: [0; __SIZEOF_PTHREAD_RWLOCK_T], }; -pub const PTHREAD_BARRIER_SERIAL_THREAD: ::c_int = -1; +pub const PTHREAD_BARRIER_SERIAL_THREAD: c_int = -1; pub const PTHREAD_ONCE_INIT: pthread_once_t = 0; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; -pub const PTHREAD_MUTEX_STALLED: ::c_int = 0; -pub const PTHREAD_MUTEX_ROBUST: ::c_int = 1; -pub const PTHREAD_PRIO_NONE: ::c_int = 0; -pub const PTHREAD_PRIO_INHERIT: ::c_int = 1; -pub const PTHREAD_PRIO_PROTECT: ::c_int = 2; -pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0; -pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; -pub const PTHREAD_INHERIT_SCHED: ::c_int = 0; -pub const PTHREAD_EXPLICIT_SCHED: ::c_int = 1; +pub const PTHREAD_MUTEX_NORMAL: c_int = 0; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 1; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_NORMAL; +pub const PTHREAD_MUTEX_STALLED: c_int = 0; +pub const PTHREAD_MUTEX_ROBUST: c_int = 1; +pub const PTHREAD_PRIO_NONE: c_int = 0; +pub const PTHREAD_PRIO_INHERIT: c_int = 1; +pub const PTHREAD_PRIO_PROTECT: c_int = 2; +pub const PTHREAD_PROCESS_PRIVATE: c_int = 0; +pub const PTHREAD_PROCESS_SHARED: c_int = 1; +pub const PTHREAD_INHERIT_SCHED: c_int = 0; +pub const PTHREAD_EXPLICIT_SCHED: c_int = 1; pub const __SIZEOF_PTHREAD_COND_T: usize = 48; -pub const RENAME_NOREPLACE: ::c_uint = 1; -pub const RENAME_EXCHANGE: ::c_uint = 2; -pub const RENAME_WHITEOUT: ::c_uint = 4; +pub const RENAME_NOREPLACE: c_uint = 1; +pub const RENAME_EXCHANGE: c_uint = 2; +pub const RENAME_WHITEOUT: c_uint = 4; // netinet/in.h // NOTE: These are in addition to the constants defined in src/unix/mod.rs @@ -2974,1079 +2978,1079 @@ pub const RENAME_WHITEOUT: ::c_uint = 4; and we'll change this following upstream in the future release. \ See #1896 for more info." )] -pub const IPPROTO_MAX: ::c_int = 256; +pub const IPPROTO_MAX: c_int = 256; // System V IPC -pub const IPC_PRIVATE: ::key_t = 0; +pub const IPC_PRIVATE: crate::key_t = 0; -pub const IPC_CREAT: ::c_int = 0o1000; -pub const IPC_EXCL: ::c_int = 0o2000; -pub const IPC_NOWAIT: ::c_int = 0o4000; +pub const IPC_CREAT: c_int = 0o1000; +pub const IPC_EXCL: c_int = 0o2000; +pub const IPC_NOWAIT: c_int = 0o4000; -pub const IPC_RMID: ::c_int = 0; -pub const IPC_SET: ::c_int = 1; -pub const IPC_STAT: ::c_int = 2; -pub const IPC_INFO: ::c_int = 3; -pub const MSG_STAT: ::c_int = 11; -pub const MSG_INFO: ::c_int = 12; -pub const MSG_NOTIFICATION: ::c_int = 0x8000; +pub const IPC_RMID: c_int = 0; +pub const IPC_SET: c_int = 1; +pub const IPC_STAT: c_int = 2; +pub const IPC_INFO: c_int = 3; +pub const MSG_STAT: c_int = 11; +pub const MSG_INFO: c_int = 12; +pub const MSG_NOTIFICATION: c_int = 0x8000; -pub const MSG_NOERROR: ::c_int = 0o10000; -pub const MSG_EXCEPT: ::c_int = 0o20000; -pub const MSG_ZEROCOPY: ::c_int = 0x4000000; +pub const MSG_NOERROR: c_int = 0o10000; +pub const MSG_EXCEPT: c_int = 0o20000; +pub const MSG_ZEROCOPY: c_int = 0x4000000; -pub const SHM_R: ::c_int = 0o400; -pub const SHM_W: ::c_int = 0o200; +pub const SHM_R: c_int = 0o400; +pub const SHM_W: c_int = 0o200; -pub const SHM_RDONLY: ::c_int = 0o10000; -pub const SHM_RND: ::c_int = 0o20000; -pub const SHM_REMAP: ::c_int = 0o40000; +pub const SHM_RDONLY: c_int = 0o10000; +pub const SHM_RND: c_int = 0o20000; +pub const SHM_REMAP: c_int = 0o40000; -pub const SHM_LOCK: ::c_int = 11; -pub const SHM_UNLOCK: ::c_int = 12; +pub const SHM_LOCK: c_int = 11; +pub const SHM_UNLOCK: c_int = 12; -pub const SHM_HUGETLB: ::c_int = 0o4000; +pub const SHM_HUGETLB: c_int = 0o4000; #[cfg(not(all(target_env = "uclibc", target_arch = "mips")))] -pub const SHM_NORESERVE: ::c_int = 0o10000; - -pub const QFMT_VFS_OLD: ::c_int = 1; -pub const QFMT_VFS_V0: ::c_int = 2; -pub const QFMT_VFS_V1: ::c_int = 4; - -pub const EFD_SEMAPHORE: ::c_int = 0x1; - -pub const LOG_NFACILITIES: ::c_int = 24; - -pub const SEM_FAILED: *mut ::sem_t = 0 as *mut sem_t; - -pub const RB_AUTOBOOT: ::c_int = 0x01234567u32 as i32; -pub const RB_HALT_SYSTEM: ::c_int = 0xcdef0123u32 as i32; -pub const RB_ENABLE_CAD: ::c_int = 0x89abcdefu32 as i32; -pub const RB_DISABLE_CAD: ::c_int = 0x00000000u32 as i32; -pub const RB_POWER_OFF: ::c_int = 0x4321fedcu32 as i32; -pub const RB_SW_SUSPEND: ::c_int = 0xd000fce2u32 as i32; -pub const RB_KEXEC: ::c_int = 0x45584543u32 as i32; - -pub const AI_PASSIVE: ::c_int = 0x0001; -pub const AI_CANONNAME: ::c_int = 0x0002; -pub const AI_NUMERICHOST: ::c_int = 0x0004; -pub const AI_V4MAPPED: ::c_int = 0x0008; -pub const AI_ALL: ::c_int = 0x0010; -pub const AI_ADDRCONFIG: ::c_int = 0x0020; - -pub const AI_NUMERICSERV: ::c_int = 0x0400; - -pub const EAI_BADFLAGS: ::c_int = -1; -pub const EAI_NONAME: ::c_int = -2; -pub const EAI_AGAIN: ::c_int = -3; -pub const EAI_FAIL: ::c_int = -4; -pub const EAI_NODATA: ::c_int = -5; -pub const EAI_FAMILY: ::c_int = -6; -pub const EAI_SOCKTYPE: ::c_int = -7; -pub const EAI_SERVICE: ::c_int = -8; -pub const EAI_MEMORY: ::c_int = -10; -pub const EAI_SYSTEM: ::c_int = -11; -pub const EAI_OVERFLOW: ::c_int = -12; - -pub const NI_NUMERICHOST: ::c_int = 1; -pub const NI_NUMERICSERV: ::c_int = 2; -pub const NI_NOFQDN: ::c_int = 4; -pub const NI_NAMEREQD: ::c_int = 8; -pub const NI_DGRAM: ::c_int = 16; -pub const NI_IDN: ::c_int = 32; - -pub const SYNC_FILE_RANGE_WAIT_BEFORE: ::c_uint = 1; -pub const SYNC_FILE_RANGE_WRITE: ::c_uint = 2; -pub const SYNC_FILE_RANGE_WAIT_AFTER: ::c_uint = 4; +pub const SHM_NORESERVE: c_int = 0o10000; + +pub const QFMT_VFS_OLD: c_int = 1; +pub const QFMT_VFS_V0: c_int = 2; +pub const QFMT_VFS_V1: c_int = 4; + +pub const EFD_SEMAPHORE: c_int = 0x1; + +pub const LOG_NFACILITIES: c_int = 24; + +pub const SEM_FAILED: *mut crate::sem_t = 0 as *mut sem_t; + +pub const RB_AUTOBOOT: c_int = 0x01234567u32 as i32; +pub const RB_HALT_SYSTEM: c_int = 0xcdef0123u32 as i32; +pub const RB_ENABLE_CAD: c_int = 0x89abcdefu32 as i32; +pub const RB_DISABLE_CAD: c_int = 0x00000000u32 as i32; +pub const RB_POWER_OFF: c_int = 0x4321fedcu32 as i32; +pub const RB_SW_SUSPEND: c_int = 0xd000fce2u32 as i32; +pub const RB_KEXEC: c_int = 0x45584543u32 as i32; + +pub const AI_PASSIVE: c_int = 0x0001; +pub const AI_CANONNAME: c_int = 0x0002; +pub const AI_NUMERICHOST: c_int = 0x0004; +pub const AI_V4MAPPED: c_int = 0x0008; +pub const AI_ALL: c_int = 0x0010; +pub const AI_ADDRCONFIG: c_int = 0x0020; + +pub const AI_NUMERICSERV: c_int = 0x0400; + +pub const EAI_BADFLAGS: c_int = -1; +pub const EAI_NONAME: c_int = -2; +pub const EAI_AGAIN: c_int = -3; +pub const EAI_FAIL: c_int = -4; +pub const EAI_NODATA: c_int = -5; +pub const EAI_FAMILY: c_int = -6; +pub const EAI_SOCKTYPE: c_int = -7; +pub const EAI_SERVICE: c_int = -8; +pub const EAI_MEMORY: c_int = -10; +pub const EAI_SYSTEM: c_int = -11; +pub const EAI_OVERFLOW: c_int = -12; + +pub const NI_NUMERICHOST: c_int = 1; +pub const NI_NUMERICSERV: c_int = 2; +pub const NI_NOFQDN: c_int = 4; +pub const NI_NAMEREQD: c_int = 8; +pub const NI_DGRAM: c_int = 16; +pub const NI_IDN: c_int = 32; + +pub const SYNC_FILE_RANGE_WAIT_BEFORE: c_uint = 1; +pub const SYNC_FILE_RANGE_WRITE: c_uint = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: c_uint = 4; cfg_if! { if #[cfg(not(target_env = "uclibc"))] { - pub const AIO_CANCELED: ::c_int = 0; - pub const AIO_NOTCANCELED: ::c_int = 1; - pub const AIO_ALLDONE: ::c_int = 2; - pub const LIO_READ: ::c_int = 0; - pub const LIO_WRITE: ::c_int = 1; - pub const LIO_NOP: ::c_int = 2; - pub const LIO_WAIT: ::c_int = 0; - pub const LIO_NOWAIT: ::c_int = 1; - pub const RUSAGE_THREAD: ::c_int = 1; - pub const MSG_COPY: ::c_int = 0o40000; - pub const SHM_EXEC: ::c_int = 0o100000; - pub const IPV6_MULTICAST_ALL: ::c_int = 29; - pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30; - pub const PACKET_MR_UNICAST: ::c_int = 3; - pub const PTRACE_EVENT_STOP: ::c_int = 128; - pub const UDP_SEGMENT: ::c_int = 103; - pub const UDP_GRO: ::c_int = 104; + pub const AIO_CANCELED: c_int = 0; + pub const AIO_NOTCANCELED: c_int = 1; + pub const AIO_ALLDONE: c_int = 2; + pub const LIO_READ: c_int = 0; + pub const LIO_WRITE: c_int = 1; + pub const LIO_NOP: c_int = 2; + pub const LIO_WAIT: c_int = 0; + pub const LIO_NOWAIT: c_int = 1; + pub const RUSAGE_THREAD: c_int = 1; + pub const MSG_COPY: c_int = 0o40000; + pub const SHM_EXEC: c_int = 0o100000; + pub const IPV6_MULTICAST_ALL: c_int = 29; + pub const IPV6_ROUTER_ALERT_ISOLATE: c_int = 30; + pub const PACKET_MR_UNICAST: c_int = 3; + pub const PTRACE_EVENT_STOP: c_int = 128; + pub const UDP_SEGMENT: c_int = 103; + pub const UDP_GRO: c_int = 104; } } -pub const MREMAP_MAYMOVE: ::c_int = 1; -pub const MREMAP_FIXED: ::c_int = 2; -pub const MREMAP_DONTUNMAP: ::c_int = 4; - -pub const PR_SET_PDEATHSIG: ::c_int = 1; -pub const PR_GET_PDEATHSIG: ::c_int = 2; - -pub const PR_GET_DUMPABLE: ::c_int = 3; -pub const PR_SET_DUMPABLE: ::c_int = 4; - -pub const PR_GET_UNALIGN: ::c_int = 5; -pub const PR_SET_UNALIGN: ::c_int = 6; -pub const PR_UNALIGN_NOPRINT: ::c_int = 1; -pub const PR_UNALIGN_SIGBUS: ::c_int = 2; - -pub const PR_GET_KEEPCAPS: ::c_int = 7; -pub const PR_SET_KEEPCAPS: ::c_int = 8; - -pub const PR_GET_FPEMU: ::c_int = 9; -pub const PR_SET_FPEMU: ::c_int = 10; -pub const PR_FPEMU_NOPRINT: ::c_int = 1; -pub const PR_FPEMU_SIGFPE: ::c_int = 2; - -pub const PR_GET_FPEXC: ::c_int = 11; -pub const PR_SET_FPEXC: ::c_int = 12; -pub const PR_FP_EXC_SW_ENABLE: ::c_int = 0x80; -pub const PR_FP_EXC_DIV: ::c_int = 0x010000; -pub const PR_FP_EXC_OVF: ::c_int = 0x020000; -pub const PR_FP_EXC_UND: ::c_int = 0x040000; -pub const PR_FP_EXC_RES: ::c_int = 0x080000; -pub const PR_FP_EXC_INV: ::c_int = 0x100000; -pub const PR_FP_EXC_DISABLED: ::c_int = 0; -pub const PR_FP_EXC_NONRECOV: ::c_int = 1; -pub const PR_FP_EXC_ASYNC: ::c_int = 2; -pub const PR_FP_EXC_PRECISE: ::c_int = 3; - -pub const PR_GET_TIMING: ::c_int = 13; -pub const PR_SET_TIMING: ::c_int = 14; -pub const PR_TIMING_STATISTICAL: ::c_int = 0; -pub const PR_TIMING_TIMESTAMP: ::c_int = 1; - -pub const PR_SET_NAME: ::c_int = 15; -pub const PR_GET_NAME: ::c_int = 16; - -pub const PR_GET_ENDIAN: ::c_int = 19; -pub const PR_SET_ENDIAN: ::c_int = 20; -pub const PR_ENDIAN_BIG: ::c_int = 0; -pub const PR_ENDIAN_LITTLE: ::c_int = 1; -pub const PR_ENDIAN_PPC_LITTLE: ::c_int = 2; - -pub const PR_GET_SECCOMP: ::c_int = 21; -pub const PR_SET_SECCOMP: ::c_int = 22; - -pub const PR_CAPBSET_READ: ::c_int = 23; -pub const PR_CAPBSET_DROP: ::c_int = 24; - -pub const PR_GET_TSC: ::c_int = 25; -pub const PR_SET_TSC: ::c_int = 26; -pub const PR_TSC_ENABLE: ::c_int = 1; -pub const PR_TSC_SIGSEGV: ::c_int = 2; - -pub const PR_GET_SECUREBITS: ::c_int = 27; -pub const PR_SET_SECUREBITS: ::c_int = 28; - -pub const PR_SET_TIMERSLACK: ::c_int = 29; -pub const PR_GET_TIMERSLACK: ::c_int = 30; - -pub const PR_TASK_PERF_EVENTS_DISABLE: ::c_int = 31; -pub const PR_TASK_PERF_EVENTS_ENABLE: ::c_int = 32; - -pub const PR_MCE_KILL: ::c_int = 33; -pub const PR_MCE_KILL_CLEAR: ::c_int = 0; -pub const PR_MCE_KILL_SET: ::c_int = 1; - -pub const PR_MCE_KILL_LATE: ::c_int = 0; -pub const PR_MCE_KILL_EARLY: ::c_int = 1; -pub const PR_MCE_KILL_DEFAULT: ::c_int = 2; - -pub const PR_MCE_KILL_GET: ::c_int = 34; - -pub const PR_SET_MM: ::c_int = 35; -pub const PR_SET_MM_START_CODE: ::c_int = 1; -pub const PR_SET_MM_END_CODE: ::c_int = 2; -pub const PR_SET_MM_START_DATA: ::c_int = 3; -pub const PR_SET_MM_END_DATA: ::c_int = 4; -pub const PR_SET_MM_START_STACK: ::c_int = 5; -pub const PR_SET_MM_START_BRK: ::c_int = 6; -pub const PR_SET_MM_BRK: ::c_int = 7; -pub const PR_SET_MM_ARG_START: ::c_int = 8; -pub const PR_SET_MM_ARG_END: ::c_int = 9; -pub const PR_SET_MM_ENV_START: ::c_int = 10; -pub const PR_SET_MM_ENV_END: ::c_int = 11; -pub const PR_SET_MM_AUXV: ::c_int = 12; -pub const PR_SET_MM_EXE_FILE: ::c_int = 13; -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; - -pub const PR_SET_NO_NEW_PRIVS: ::c_int = 38; -pub const PR_GET_NO_NEW_PRIVS: ::c_int = 39; - -pub const PR_GET_TID_ADDRESS: ::c_int = 40; - -pub const PR_SET_THP_DISABLE: ::c_int = 41; -pub const PR_GET_THP_DISABLE: ::c_int = 42; - -pub const PR_MPX_ENABLE_MANAGEMENT: ::c_int = 43; -pub const PR_MPX_DISABLE_MANAGEMENT: ::c_int = 44; - -pub const PR_SET_FP_MODE: ::c_int = 45; -pub const PR_GET_FP_MODE: ::c_int = 46; -pub const PR_FP_MODE_FR: ::c_int = 1 << 0; -pub const PR_FP_MODE_FRE: ::c_int = 1 << 1; - -pub const PR_CAP_AMBIENT: ::c_int = 47; -pub const PR_CAP_AMBIENT_IS_SET: ::c_int = 1; -pub const PR_CAP_AMBIENT_RAISE: ::c_int = 2; -pub const PR_CAP_AMBIENT_LOWER: ::c_int = 3; -pub const PR_CAP_AMBIENT_CLEAR_ALL: ::c_int = 4; - -pub const PR_SET_VMA: ::c_int = 0x53564d41; -pub const PR_SET_VMA_ANON_NAME: ::c_int = 0; - -pub const PR_SCHED_CORE: ::c_int = 62; -pub const PR_SCHED_CORE_GET: ::c_int = 0; -pub const PR_SCHED_CORE_CREATE: ::c_int = 1; -pub const PR_SCHED_CORE_SHARE_TO: ::c_int = 2; -pub const PR_SCHED_CORE_SHARE_FROM: ::c_int = 3; -pub const PR_SCHED_CORE_MAX: ::c_int = 4; -pub const PR_SCHED_CORE_SCOPE_THREAD: ::c_int = 0; -pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: ::c_int = 1; -pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: ::c_int = 2; - -pub const GRND_NONBLOCK: ::c_uint = 0x0001; -pub const GRND_RANDOM: ::c_uint = 0x0002; -pub const GRND_INSECURE: ::c_uint = 0x0004; +pub const MREMAP_MAYMOVE: c_int = 1; +pub const MREMAP_FIXED: c_int = 2; +pub const MREMAP_DONTUNMAP: c_int = 4; + +pub const PR_SET_PDEATHSIG: c_int = 1; +pub const PR_GET_PDEATHSIG: c_int = 2; + +pub const PR_GET_DUMPABLE: c_int = 3; +pub const PR_SET_DUMPABLE: c_int = 4; + +pub const PR_GET_UNALIGN: c_int = 5; +pub const PR_SET_UNALIGN: c_int = 6; +pub const PR_UNALIGN_NOPRINT: c_int = 1; +pub const PR_UNALIGN_SIGBUS: c_int = 2; + +pub const PR_GET_KEEPCAPS: c_int = 7; +pub const PR_SET_KEEPCAPS: c_int = 8; + +pub const PR_GET_FPEMU: c_int = 9; +pub const PR_SET_FPEMU: c_int = 10; +pub const PR_FPEMU_NOPRINT: c_int = 1; +pub const PR_FPEMU_SIGFPE: c_int = 2; + +pub const PR_GET_FPEXC: c_int = 11; +pub const PR_SET_FPEXC: c_int = 12; +pub const PR_FP_EXC_SW_ENABLE: c_int = 0x80; +pub const PR_FP_EXC_DIV: c_int = 0x010000; +pub const PR_FP_EXC_OVF: c_int = 0x020000; +pub const PR_FP_EXC_UND: c_int = 0x040000; +pub const PR_FP_EXC_RES: c_int = 0x080000; +pub const PR_FP_EXC_INV: c_int = 0x100000; +pub const PR_FP_EXC_DISABLED: c_int = 0; +pub const PR_FP_EXC_NONRECOV: c_int = 1; +pub const PR_FP_EXC_ASYNC: c_int = 2; +pub const PR_FP_EXC_PRECISE: c_int = 3; + +pub const PR_GET_TIMING: c_int = 13; +pub const PR_SET_TIMING: c_int = 14; +pub const PR_TIMING_STATISTICAL: c_int = 0; +pub const PR_TIMING_TIMESTAMP: c_int = 1; + +pub const PR_SET_NAME: c_int = 15; +pub const PR_GET_NAME: c_int = 16; + +pub const PR_GET_ENDIAN: c_int = 19; +pub const PR_SET_ENDIAN: c_int = 20; +pub const PR_ENDIAN_BIG: c_int = 0; +pub const PR_ENDIAN_LITTLE: c_int = 1; +pub const PR_ENDIAN_PPC_LITTLE: c_int = 2; + +pub const PR_GET_SECCOMP: c_int = 21; +pub const PR_SET_SECCOMP: c_int = 22; + +pub const PR_CAPBSET_READ: c_int = 23; +pub const PR_CAPBSET_DROP: c_int = 24; + +pub const PR_GET_TSC: c_int = 25; +pub const PR_SET_TSC: c_int = 26; +pub const PR_TSC_ENABLE: c_int = 1; +pub const PR_TSC_SIGSEGV: c_int = 2; + +pub const PR_GET_SECUREBITS: c_int = 27; +pub const PR_SET_SECUREBITS: c_int = 28; + +pub const PR_SET_TIMERSLACK: c_int = 29; +pub const PR_GET_TIMERSLACK: c_int = 30; + +pub const PR_TASK_PERF_EVENTS_DISABLE: c_int = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: c_int = 32; + +pub const PR_MCE_KILL: c_int = 33; +pub const PR_MCE_KILL_CLEAR: c_int = 0; +pub const PR_MCE_KILL_SET: c_int = 1; + +pub const PR_MCE_KILL_LATE: c_int = 0; +pub const PR_MCE_KILL_EARLY: c_int = 1; +pub const PR_MCE_KILL_DEFAULT: c_int = 2; + +pub const PR_MCE_KILL_GET: c_int = 34; + +pub const PR_SET_MM: c_int = 35; +pub const PR_SET_MM_START_CODE: c_int = 1; +pub const PR_SET_MM_END_CODE: c_int = 2; +pub const PR_SET_MM_START_DATA: c_int = 3; +pub const PR_SET_MM_END_DATA: c_int = 4; +pub const PR_SET_MM_START_STACK: c_int = 5; +pub const PR_SET_MM_START_BRK: c_int = 6; +pub const PR_SET_MM_BRK: c_int = 7; +pub const PR_SET_MM_ARG_START: c_int = 8; +pub const PR_SET_MM_ARG_END: c_int = 9; +pub const PR_SET_MM_ENV_START: c_int = 10; +pub const PR_SET_MM_ENV_END: c_int = 11; +pub const PR_SET_MM_AUXV: c_int = 12; +pub const PR_SET_MM_EXE_FILE: c_int = 13; +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; + +pub const PR_SET_NO_NEW_PRIVS: c_int = 38; +pub const PR_GET_NO_NEW_PRIVS: c_int = 39; + +pub const PR_GET_TID_ADDRESS: c_int = 40; + +pub const PR_SET_THP_DISABLE: c_int = 41; +pub const PR_GET_THP_DISABLE: c_int = 42; + +pub const PR_MPX_ENABLE_MANAGEMENT: c_int = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: c_int = 44; + +pub const PR_SET_FP_MODE: c_int = 45; +pub const PR_GET_FP_MODE: c_int = 46; +pub const PR_FP_MODE_FR: c_int = 1 << 0; +pub const PR_FP_MODE_FRE: c_int = 1 << 1; + +pub const PR_CAP_AMBIENT: c_int = 47; +pub const PR_CAP_AMBIENT_IS_SET: c_int = 1; +pub const PR_CAP_AMBIENT_RAISE: c_int = 2; +pub const PR_CAP_AMBIENT_LOWER: c_int = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: c_int = 4; + +pub const PR_SET_VMA: c_int = 0x53564d41; +pub const PR_SET_VMA_ANON_NAME: c_int = 0; + +pub const PR_SCHED_CORE: c_int = 62; +pub const PR_SCHED_CORE_GET: c_int = 0; +pub const PR_SCHED_CORE_CREATE: c_int = 1; +pub const PR_SCHED_CORE_SHARE_TO: c_int = 2; +pub const PR_SCHED_CORE_SHARE_FROM: c_int = 3; +pub const PR_SCHED_CORE_MAX: c_int = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: c_int = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: c_int = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: c_int = 2; + +pub const GRND_NONBLOCK: c_uint = 0x0001; +pub const GRND_RANDOM: c_uint = 0x0002; +pub const GRND_INSECURE: c_uint = 0x0004; // -pub const SECCOMP_MODE_DISABLED: ::c_uint = 0; -pub const SECCOMP_MODE_STRICT: ::c_uint = 1; -pub const SECCOMP_MODE_FILTER: ::c_uint = 2; - -pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0; -pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1; -pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2; -pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3; - -pub const SECCOMP_FILTER_FLAG_TSYNC: ::c_ulong = 1; -pub const SECCOMP_FILTER_FLAG_LOG: ::c_ulong = 2; -pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: ::c_ulong = 4; -pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: ::c_ulong = 8; -pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: ::c_ulong = 16; -pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: ::c_ulong = 32; - -pub const SECCOMP_RET_KILL_PROCESS: ::c_uint = 0x80000000; -pub const SECCOMP_RET_KILL_THREAD: ::c_uint = 0x00000000; -pub const SECCOMP_RET_KILL: ::c_uint = SECCOMP_RET_KILL_THREAD; -pub const SECCOMP_RET_TRAP: ::c_uint = 0x00030000; -pub const SECCOMP_RET_ERRNO: ::c_uint = 0x00050000; -pub const SECCOMP_RET_TRACE: ::c_uint = 0x7ff00000; -pub const SECCOMP_RET_LOG: ::c_uint = 0x7ffc0000; -pub const SECCOMP_RET_ALLOW: ::c_uint = 0x7fff0000; - -pub const SECCOMP_RET_ACTION_FULL: ::c_uint = 0xffff0000; -pub const SECCOMP_RET_ACTION: ::c_uint = 0x7fff0000; -pub const SECCOMP_RET_DATA: ::c_uint = 0x0000ffff; - -pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: ::c_ulong = 1; - -pub const SECCOMP_ADDFD_FLAG_SETFD: ::c_ulong = 1; -pub const SECCOMP_ADDFD_FLAG_SEND: ::c_ulong = 2; - -pub const ITIMER_REAL: ::c_int = 0; -pub const ITIMER_VIRTUAL: ::c_int = 1; -pub const ITIMER_PROF: ::c_int = 2; - -pub const TFD_CLOEXEC: ::c_int = O_CLOEXEC; -pub const TFD_NONBLOCK: ::c_int = O_NONBLOCK; -pub const TFD_TIMER_ABSTIME: ::c_int = 1; -pub const TFD_TIMER_CANCEL_ON_SET: ::c_int = 2; - -pub const _POSIX_VDISABLE: ::cc_t = 0; - -pub const FALLOC_FL_KEEP_SIZE: ::c_int = 0x01; -pub const FALLOC_FL_PUNCH_HOLE: ::c_int = 0x02; -pub const FALLOC_FL_COLLAPSE_RANGE: ::c_int = 0x08; -pub const FALLOC_FL_ZERO_RANGE: ::c_int = 0x10; -pub const FALLOC_FL_INSERT_RANGE: ::c_int = 0x20; -pub const FALLOC_FL_UNSHARE_RANGE: ::c_int = 0x40; +pub const SECCOMP_MODE_DISABLED: c_uint = 0; +pub const SECCOMP_MODE_STRICT: c_uint = 1; +pub const SECCOMP_MODE_FILTER: c_uint = 2; + +pub const SECCOMP_SET_MODE_STRICT: c_uint = 0; +pub const SECCOMP_SET_MODE_FILTER: c_uint = 1; +pub const SECCOMP_GET_ACTION_AVAIL: c_uint = 2; +pub const SECCOMP_GET_NOTIF_SIZES: c_uint = 3; + +pub const SECCOMP_FILTER_FLAG_TSYNC: c_ulong = 1; +pub const SECCOMP_FILTER_FLAG_LOG: c_ulong = 2; +pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: c_ulong = 4; +pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: c_ulong = 8; +pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: c_ulong = 16; +pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: c_ulong = 32; + +pub const SECCOMP_RET_KILL_PROCESS: c_uint = 0x80000000; +pub const SECCOMP_RET_KILL_THREAD: c_uint = 0x00000000; +pub const SECCOMP_RET_KILL: c_uint = SECCOMP_RET_KILL_THREAD; +pub const SECCOMP_RET_TRAP: c_uint = 0x00030000; +pub const SECCOMP_RET_ERRNO: c_uint = 0x00050000; +pub const SECCOMP_RET_TRACE: c_uint = 0x7ff00000; +pub const SECCOMP_RET_LOG: c_uint = 0x7ffc0000; +pub const SECCOMP_RET_ALLOW: c_uint = 0x7fff0000; + +pub const SECCOMP_RET_ACTION_FULL: c_uint = 0xffff0000; +pub const SECCOMP_RET_ACTION: c_uint = 0x7fff0000; +pub const SECCOMP_RET_DATA: c_uint = 0x0000ffff; + +pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: c_ulong = 1; + +pub const SECCOMP_ADDFD_FLAG_SETFD: c_ulong = 1; +pub const SECCOMP_ADDFD_FLAG_SEND: c_ulong = 2; + +pub const ITIMER_REAL: c_int = 0; +pub const ITIMER_VIRTUAL: c_int = 1; +pub const ITIMER_PROF: c_int = 2; + +pub const TFD_CLOEXEC: c_int = O_CLOEXEC; +pub const TFD_NONBLOCK: c_int = O_NONBLOCK; +pub const TFD_TIMER_ABSTIME: c_int = 1; +pub const TFD_TIMER_CANCEL_ON_SET: c_int = 2; + +pub const _POSIX_VDISABLE: crate::cc_t = 0; + +pub const FALLOC_FL_KEEP_SIZE: c_int = 0x01; +pub const FALLOC_FL_PUNCH_HOLE: c_int = 0x02; +pub const FALLOC_FL_COLLAPSE_RANGE: c_int = 0x08; +pub const FALLOC_FL_ZERO_RANGE: c_int = 0x10; +pub const FALLOC_FL_INSERT_RANGE: c_int = 0x20; +pub const FALLOC_FL_UNSHARE_RANGE: c_int = 0x40; #[deprecated( since = "0.2.55", note = "ENOATTR is not available on Linux; use ENODATA instead" )] -pub const ENOATTR: ::c_int = ::ENODATA; +pub const ENOATTR: c_int = crate::ENODATA; -pub const SO_ORIGINAL_DST: ::c_int = 80; +pub const SO_ORIGINAL_DST: c_int = 80; -pub const IP_RECVFRAGSIZE: ::c_int = 25; +pub const IP_RECVFRAGSIZE: c_int = 25; -pub const IPV6_FLOWINFO: ::c_int = 11; -pub const IPV6_FLOWLABEL_MGR: ::c_int = 32; -pub const IPV6_FLOWINFO_SEND: ::c_int = 33; -pub const IPV6_RECVFRAGSIZE: ::c_int = 77; -pub const IPV6_FREEBIND: ::c_int = 78; -pub const IPV6_FLOWINFO_FLOWLABEL: ::c_int = 0x000fffff; -pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 0x0ff00000; +pub const IPV6_FLOWINFO: c_int = 11; +pub const IPV6_FLOWLABEL_MGR: c_int = 32; +pub const IPV6_FLOWINFO_SEND: c_int = 33; +pub const IPV6_RECVFRAGSIZE: c_int = 77; +pub const IPV6_FREEBIND: c_int = 78; +pub const IPV6_FLOWINFO_FLOWLABEL: c_int = 0x000fffff; +pub const IPV6_FLOWINFO_PRIORITY: c_int = 0x0ff00000; -pub const IPV6_RTHDR_LOOSE: ::c_int = 0; -pub const IPV6_RTHDR_STRICT: ::c_int = 1; +pub const IPV6_RTHDR_LOOSE: c_int = 0; +pub const IPV6_RTHDR_STRICT: c_int = 1; // SO_MEMINFO offsets -pub const SK_MEMINFO_RMEM_ALLOC: ::c_int = 0; -pub const SK_MEMINFO_RCVBUF: ::c_int = 1; -pub const SK_MEMINFO_WMEM_ALLOC: ::c_int = 2; -pub const SK_MEMINFO_SNDBUF: ::c_int = 3; -pub const SK_MEMINFO_FWD_ALLOC: ::c_int = 4; -pub const SK_MEMINFO_WMEM_QUEUED: ::c_int = 5; -pub const SK_MEMINFO_OPTMEM: ::c_int = 6; -pub const SK_MEMINFO_BACKLOG: ::c_int = 7; -pub const SK_MEMINFO_DROPS: ::c_int = 8; - -pub const IUTF8: ::tcflag_t = 0x00004000; +pub const SK_MEMINFO_RMEM_ALLOC: c_int = 0; +pub const SK_MEMINFO_RCVBUF: c_int = 1; +pub const SK_MEMINFO_WMEM_ALLOC: c_int = 2; +pub const SK_MEMINFO_SNDBUF: c_int = 3; +pub const SK_MEMINFO_FWD_ALLOC: c_int = 4; +pub const SK_MEMINFO_WMEM_QUEUED: c_int = 5; +pub const SK_MEMINFO_OPTMEM: c_int = 6; +pub const SK_MEMINFO_BACKLOG: c_int = 7; +pub const SK_MEMINFO_DROPS: c_int = 8; + +pub const IUTF8: crate::tcflag_t = 0x00004000; #[cfg(not(all(target_env = "uclibc", target_arch = "mips")))] -pub const CMSPAR: ::tcflag_t = 0o10000000000; - -pub const MFD_CLOEXEC: ::c_uint = 0x0001; -pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002; -pub const MFD_HUGETLB: ::c_uint = 0x0004; -pub const MFD_NOEXEC_SEAL: ::c_uint = 0x0008; -pub const MFD_EXEC: ::c_uint = 0x0010; -pub const MFD_HUGE_64KB: ::c_uint = 0x40000000; -pub const MFD_HUGE_512KB: ::c_uint = 0x4c000000; -pub const MFD_HUGE_1MB: ::c_uint = 0x50000000; -pub const MFD_HUGE_2MB: ::c_uint = 0x54000000; -pub const MFD_HUGE_8MB: ::c_uint = 0x5c000000; -pub const MFD_HUGE_16MB: ::c_uint = 0x60000000; -pub const MFD_HUGE_32MB: ::c_uint = 0x64000000; -pub const MFD_HUGE_256MB: ::c_uint = 0x70000000; -pub const MFD_HUGE_512MB: ::c_uint = 0x74000000; -pub const MFD_HUGE_1GB: ::c_uint = 0x78000000; -pub const MFD_HUGE_2GB: ::c_uint = 0x7c000000; -pub const MFD_HUGE_16GB: ::c_uint = 0x88000000; -pub const MFD_HUGE_MASK: ::c_uint = 63; -pub const MFD_HUGE_SHIFT: ::c_uint = 26; +pub const CMSPAR: crate::tcflag_t = 0o10000000000; + +pub const MFD_CLOEXEC: c_uint = 0x0001; +pub const MFD_ALLOW_SEALING: c_uint = 0x0002; +pub const MFD_HUGETLB: c_uint = 0x0004; +pub const MFD_NOEXEC_SEAL: c_uint = 0x0008; +pub const MFD_EXEC: c_uint = 0x0010; +pub const MFD_HUGE_64KB: c_uint = 0x40000000; +pub const MFD_HUGE_512KB: c_uint = 0x4c000000; +pub const MFD_HUGE_1MB: c_uint = 0x50000000; +pub const MFD_HUGE_2MB: c_uint = 0x54000000; +pub const MFD_HUGE_8MB: c_uint = 0x5c000000; +pub const MFD_HUGE_16MB: c_uint = 0x60000000; +pub const MFD_HUGE_32MB: c_uint = 0x64000000; +pub const MFD_HUGE_256MB: c_uint = 0x70000000; +pub const MFD_HUGE_512MB: c_uint = 0x74000000; +pub const MFD_HUGE_1GB: c_uint = 0x78000000; +pub const MFD_HUGE_2GB: c_uint = 0x7c000000; +pub const MFD_HUGE_16GB: c_uint = 0x88000000; +pub const MFD_HUGE_MASK: c_uint = 63; +pub const MFD_HUGE_SHIFT: c_uint = 26; // linux/close_range.h -pub const CLOSE_RANGE_UNSHARE: ::c_uint = 1 << 1; -pub const CLOSE_RANGE_CLOEXEC: ::c_uint = 1 << 2; +pub const CLOSE_RANGE_UNSHARE: c_uint = 1 << 1; +pub const CLOSE_RANGE_CLOEXEC: c_uint = 1 << 2; // linux/filter.h -pub const SKF_AD_OFF: ::c_int = -0x1000; -pub const SKF_AD_PROTOCOL: ::c_int = 0; -pub const SKF_AD_PKTTYPE: ::c_int = 4; -pub const SKF_AD_IFINDEX: ::c_int = 8; -pub const SKF_AD_NLATTR: ::c_int = 12; -pub const SKF_AD_NLATTR_NEST: ::c_int = 16; -pub const SKF_AD_MARK: ::c_int = 20; -pub const SKF_AD_QUEUE: ::c_int = 24; -pub const SKF_AD_HATYPE: ::c_int = 28; -pub const SKF_AD_RXHASH: ::c_int = 32; -pub const SKF_AD_CPU: ::c_int = 36; -pub const SKF_AD_ALU_XOR_X: ::c_int = 40; -pub const SKF_AD_VLAN_TAG: ::c_int = 44; -pub const SKF_AD_VLAN_TAG_PRESENT: ::c_int = 48; -pub const SKF_AD_PAY_OFFSET: ::c_int = 52; -pub const SKF_AD_RANDOM: ::c_int = 56; -pub const SKF_AD_VLAN_TPID: ::c_int = 60; -pub const SKF_AD_MAX: ::c_int = 64; -pub const SKF_NET_OFF: ::c_int = -0x100000; -pub const SKF_LL_OFF: ::c_int = -0x200000; -pub const BPF_NET_OFF: ::c_int = SKF_NET_OFF; -pub const BPF_LL_OFF: ::c_int = SKF_LL_OFF; -pub const BPF_MEMWORDS: ::c_int = 16; -pub const BPF_MAXINSNS: ::c_int = 4096; +pub const SKF_AD_OFF: c_int = -0x1000; +pub const SKF_AD_PROTOCOL: c_int = 0; +pub const SKF_AD_PKTTYPE: c_int = 4; +pub const SKF_AD_IFINDEX: c_int = 8; +pub const SKF_AD_NLATTR: c_int = 12; +pub const SKF_AD_NLATTR_NEST: c_int = 16; +pub const SKF_AD_MARK: c_int = 20; +pub const SKF_AD_QUEUE: c_int = 24; +pub const SKF_AD_HATYPE: c_int = 28; +pub const SKF_AD_RXHASH: c_int = 32; +pub const SKF_AD_CPU: c_int = 36; +pub const SKF_AD_ALU_XOR_X: c_int = 40; +pub const SKF_AD_VLAN_TAG: c_int = 44; +pub const SKF_AD_VLAN_TAG_PRESENT: c_int = 48; +pub const SKF_AD_PAY_OFFSET: c_int = 52; +pub const SKF_AD_RANDOM: c_int = 56; +pub const SKF_AD_VLAN_TPID: c_int = 60; +pub const SKF_AD_MAX: c_int = 64; +pub const SKF_NET_OFF: c_int = -0x100000; +pub const SKF_LL_OFF: c_int = -0x200000; +pub const BPF_NET_OFF: c_int = SKF_NET_OFF; +pub const BPF_LL_OFF: c_int = SKF_LL_OFF; +pub const BPF_MEMWORDS: c_int = 16; +pub const BPF_MAXINSNS: c_int = 4096; // linux/bpf_common.h -pub const BPF_LD: ::__u32 = 0x00; -pub const BPF_LDX: ::__u32 = 0x01; -pub const BPF_ST: ::__u32 = 0x02; -pub const BPF_STX: ::__u32 = 0x03; -pub const BPF_ALU: ::__u32 = 0x04; -pub const BPF_JMP: ::__u32 = 0x05; -pub const BPF_RET: ::__u32 = 0x06; -pub const BPF_MISC: ::__u32 = 0x07; -pub const BPF_W: ::__u32 = 0x00; -pub const BPF_H: ::__u32 = 0x08; -pub const BPF_B: ::__u32 = 0x10; -pub const BPF_IMM: ::__u32 = 0x00; -pub const BPF_ABS: ::__u32 = 0x20; -pub const BPF_IND: ::__u32 = 0x40; -pub const BPF_MEM: ::__u32 = 0x60; -pub const BPF_LEN: ::__u32 = 0x80; -pub const BPF_MSH: ::__u32 = 0xa0; -pub const BPF_ADD: ::__u32 = 0x00; -pub const BPF_SUB: ::__u32 = 0x10; -pub const BPF_MUL: ::__u32 = 0x20; -pub const BPF_DIV: ::__u32 = 0x30; -pub const BPF_OR: ::__u32 = 0x40; -pub const BPF_AND: ::__u32 = 0x50; -pub const BPF_LSH: ::__u32 = 0x60; -pub const BPF_RSH: ::__u32 = 0x70; -pub const BPF_NEG: ::__u32 = 0x80; -pub const BPF_MOD: ::__u32 = 0x90; -pub const BPF_XOR: ::__u32 = 0xa0; -pub const BPF_JA: ::__u32 = 0x00; -pub const BPF_JEQ: ::__u32 = 0x10; -pub const BPF_JGT: ::__u32 = 0x20; -pub const BPF_JGE: ::__u32 = 0x30; -pub const BPF_JSET: ::__u32 = 0x40; -pub const BPF_K: ::__u32 = 0x00; -pub const BPF_X: ::__u32 = 0x08; +pub const BPF_LD: __u32 = 0x00; +pub const BPF_LDX: __u32 = 0x01; +pub const BPF_ST: __u32 = 0x02; +pub const BPF_STX: __u32 = 0x03; +pub const BPF_ALU: __u32 = 0x04; +pub const BPF_JMP: __u32 = 0x05; +pub const BPF_RET: __u32 = 0x06; +pub const BPF_MISC: __u32 = 0x07; +pub const BPF_W: __u32 = 0x00; +pub const BPF_H: __u32 = 0x08; +pub const BPF_B: __u32 = 0x10; +pub const BPF_IMM: __u32 = 0x00; +pub const BPF_ABS: __u32 = 0x20; +pub const BPF_IND: __u32 = 0x40; +pub const BPF_MEM: __u32 = 0x60; +pub const BPF_LEN: __u32 = 0x80; +pub const BPF_MSH: __u32 = 0xa0; +pub const BPF_ADD: __u32 = 0x00; +pub const BPF_SUB: __u32 = 0x10; +pub const BPF_MUL: __u32 = 0x20; +pub const BPF_DIV: __u32 = 0x30; +pub const BPF_OR: __u32 = 0x40; +pub const BPF_AND: __u32 = 0x50; +pub const BPF_LSH: __u32 = 0x60; +pub const BPF_RSH: __u32 = 0x70; +pub const BPF_NEG: __u32 = 0x80; +pub const BPF_MOD: __u32 = 0x90; +pub const BPF_XOR: __u32 = 0xa0; +pub const BPF_JA: __u32 = 0x00; +pub const BPF_JEQ: __u32 = 0x10; +pub const BPF_JGT: __u32 = 0x20; +pub const BPF_JGE: __u32 = 0x30; +pub const BPF_JSET: __u32 = 0x40; +pub const BPF_K: __u32 = 0x00; +pub const BPF_X: __u32 = 0x08; // linux/openat2.h -pub const RESOLVE_NO_XDEV: ::__u64 = 0x01; -pub const RESOLVE_NO_MAGICLINKS: ::__u64 = 0x02; -pub const RESOLVE_NO_SYMLINKS: ::__u64 = 0x04; -pub const RESOLVE_BENEATH: ::__u64 = 0x08; -pub const RESOLVE_IN_ROOT: ::__u64 = 0x10; -pub const RESOLVE_CACHED: ::__u64 = 0x20; +pub const RESOLVE_NO_XDEV: crate::__u64 = 0x01; +pub const RESOLVE_NO_MAGICLINKS: crate::__u64 = 0x02; +pub const RESOLVE_NO_SYMLINKS: crate::__u64 = 0x04; +pub const RESOLVE_BENEATH: crate::__u64 = 0x08; +pub const RESOLVE_IN_ROOT: crate::__u64 = 0x10; +pub const RESOLVE_CACHED: crate::__u64 = 0x20; // linux/if_ether.h -pub const ETH_ALEN: ::c_int = 6; -pub const ETH_HLEN: ::c_int = 14; -pub const ETH_ZLEN: ::c_int = 60; -pub const ETH_DATA_LEN: ::c_int = 1500; -pub const ETH_FRAME_LEN: ::c_int = 1514; -pub const ETH_FCS_LEN: ::c_int = 4; +pub const ETH_ALEN: c_int = 6; +pub const ETH_HLEN: c_int = 14; +pub const ETH_ZLEN: c_int = 60; +pub const ETH_DATA_LEN: c_int = 1500; +pub const ETH_FRAME_LEN: c_int = 1514; +pub const ETH_FCS_LEN: c_int = 4; // These are the defined Ethernet Protocol ID's. -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_MACSEC: ::c_int = 0x88E5; -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_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_MACSEC: c_int = 0x88E5; +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; // Non DIX types. Won't clash for 1500 types. -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_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 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_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; // DIFF(main): changed to `c_short` in f62eb023ab -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_SETSCHEDPARAM: ::c_int = 0x10; -pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x20; - -pub const NLMSG_NOOP: ::c_int = 0x1; -pub const NLMSG_ERROR: ::c_int = 0x2; -pub const NLMSG_DONE: ::c_int = 0x3; -pub const NLMSG_OVERRUN: ::c_int = 0x4; -pub const NLMSG_MIN_TYPE: ::c_int = 0x10; +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_SETSCHEDPARAM: c_int = 0x10; +pub const POSIX_SPAWN_SETSCHEDULER: c_int = 0x20; + +pub const NLMSG_NOOP: c_int = 0x1; +pub const NLMSG_ERROR: c_int = 0x2; +pub const NLMSG_DONE: c_int = 0x3; +pub const NLMSG_OVERRUN: c_int = 0x4; +pub const NLMSG_MIN_TYPE: c_int = 0x10; // linux/netfilter/nfnetlink.h -pub const NFNLGRP_NONE: ::c_int = 0; -pub const NFNLGRP_CONNTRACK_NEW: ::c_int = 1; -pub const NFNLGRP_CONNTRACK_UPDATE: ::c_int = 2; -pub const NFNLGRP_CONNTRACK_DESTROY: ::c_int = 3; -pub const NFNLGRP_CONNTRACK_EXP_NEW: ::c_int = 4; -pub const NFNLGRP_CONNTRACK_EXP_UPDATE: ::c_int = 5; -pub const NFNLGRP_CONNTRACK_EXP_DESTROY: ::c_int = 6; -pub const NFNLGRP_NFTABLES: ::c_int = 7; -pub const NFNLGRP_ACCT_QUOTA: ::c_int = 8; -pub const NFNLGRP_NFTRACE: ::c_int = 9; - -pub const NFNETLINK_V0: ::c_int = 0; - -pub const NFNL_SUBSYS_NONE: ::c_int = 0; -pub const NFNL_SUBSYS_CTNETLINK: ::c_int = 1; -pub const NFNL_SUBSYS_CTNETLINK_EXP: ::c_int = 2; -pub const NFNL_SUBSYS_QUEUE: ::c_int = 3; -pub const NFNL_SUBSYS_ULOG: ::c_int = 4; -pub const NFNL_SUBSYS_OSF: ::c_int = 5; -pub const NFNL_SUBSYS_IPSET: ::c_int = 6; -pub const NFNL_SUBSYS_ACCT: ::c_int = 7; -pub const NFNL_SUBSYS_CTNETLINK_TIMEOUT: ::c_int = 8; -pub const NFNL_SUBSYS_CTHELPER: ::c_int = 9; -pub const NFNL_SUBSYS_NFTABLES: ::c_int = 10; -pub const NFNL_SUBSYS_NFT_COMPAT: ::c_int = 11; -pub const NFNL_SUBSYS_HOOK: ::c_int = 12; -pub const NFNL_SUBSYS_COUNT: ::c_int = 13; - -pub const NFNL_MSG_BATCH_BEGIN: ::c_int = NLMSG_MIN_TYPE; -pub const NFNL_MSG_BATCH_END: ::c_int = NLMSG_MIN_TYPE + 1; - -pub const NFNL_BATCH_UNSPEC: ::c_int = 0; -pub const NFNL_BATCH_GENID: ::c_int = 1; +pub const NFNLGRP_NONE: c_int = 0; +pub const NFNLGRP_CONNTRACK_NEW: c_int = 1; +pub const NFNLGRP_CONNTRACK_UPDATE: c_int = 2; +pub const NFNLGRP_CONNTRACK_DESTROY: c_int = 3; +pub const NFNLGRP_CONNTRACK_EXP_NEW: c_int = 4; +pub const NFNLGRP_CONNTRACK_EXP_UPDATE: c_int = 5; +pub const NFNLGRP_CONNTRACK_EXP_DESTROY: c_int = 6; +pub const NFNLGRP_NFTABLES: c_int = 7; +pub const NFNLGRP_ACCT_QUOTA: c_int = 8; +pub const NFNLGRP_NFTRACE: c_int = 9; + +pub const NFNETLINK_V0: c_int = 0; + +pub const NFNL_SUBSYS_NONE: c_int = 0; +pub const NFNL_SUBSYS_CTNETLINK: c_int = 1; +pub const NFNL_SUBSYS_CTNETLINK_EXP: c_int = 2; +pub const NFNL_SUBSYS_QUEUE: c_int = 3; +pub const NFNL_SUBSYS_ULOG: c_int = 4; +pub const NFNL_SUBSYS_OSF: c_int = 5; +pub const NFNL_SUBSYS_IPSET: c_int = 6; +pub const NFNL_SUBSYS_ACCT: c_int = 7; +pub const NFNL_SUBSYS_CTNETLINK_TIMEOUT: c_int = 8; +pub const NFNL_SUBSYS_CTHELPER: c_int = 9; +pub const NFNL_SUBSYS_NFTABLES: c_int = 10; +pub const NFNL_SUBSYS_NFT_COMPAT: c_int = 11; +pub const NFNL_SUBSYS_HOOK: c_int = 12; +pub const NFNL_SUBSYS_COUNT: c_int = 13; + +pub const NFNL_MSG_BATCH_BEGIN: c_int = NLMSG_MIN_TYPE; +pub const NFNL_MSG_BATCH_END: c_int = NLMSG_MIN_TYPE + 1; + +pub const NFNL_BATCH_UNSPEC: c_int = 0; +pub const NFNL_BATCH_GENID: c_int = 1; // linux/netfilter/nfnetlink_log.h -pub const NFULNL_MSG_PACKET: ::c_int = 0; -pub const NFULNL_MSG_CONFIG: ::c_int = 1; - -pub const NFULA_VLAN_UNSPEC: ::c_int = 0; -pub const NFULA_VLAN_PROTO: ::c_int = 1; -pub const NFULA_VLAN_TCI: ::c_int = 2; - -pub const NFULA_UNSPEC: ::c_int = 0; -pub const NFULA_PACKET_HDR: ::c_int = 1; -pub const NFULA_MARK: ::c_int = 2; -pub const NFULA_TIMESTAMP: ::c_int = 3; -pub const NFULA_IFINDEX_INDEV: ::c_int = 4; -pub const NFULA_IFINDEX_OUTDEV: ::c_int = 5; -pub const NFULA_IFINDEX_PHYSINDEV: ::c_int = 6; -pub const NFULA_IFINDEX_PHYSOUTDEV: ::c_int = 7; -pub const NFULA_HWADDR: ::c_int = 8; -pub const NFULA_PAYLOAD: ::c_int = 9; -pub const NFULA_PREFIX: ::c_int = 10; -pub const NFULA_UID: ::c_int = 11; -pub const NFULA_SEQ: ::c_int = 12; -pub const NFULA_SEQ_GLOBAL: ::c_int = 13; -pub const NFULA_GID: ::c_int = 14; -pub const NFULA_HWTYPE: ::c_int = 15; -pub const NFULA_HWHEADER: ::c_int = 16; -pub const NFULA_HWLEN: ::c_int = 17; -pub const NFULA_CT: ::c_int = 18; -pub const NFULA_CT_INFO: ::c_int = 19; -pub const NFULA_VLAN: ::c_int = 20; -pub const NFULA_L2HDR: ::c_int = 21; - -pub const NFULNL_CFG_CMD_NONE: ::c_int = 0; -pub const NFULNL_CFG_CMD_BIND: ::c_int = 1; -pub const NFULNL_CFG_CMD_UNBIND: ::c_int = 2; -pub const NFULNL_CFG_CMD_PF_BIND: ::c_int = 3; -pub const NFULNL_CFG_CMD_PF_UNBIND: ::c_int = 4; - -pub const NFULA_CFG_UNSPEC: ::c_int = 0; -pub const NFULA_CFG_CMD: ::c_int = 1; -pub const NFULA_CFG_MODE: ::c_int = 2; -pub const NFULA_CFG_NLBUFSIZ: ::c_int = 3; -pub const NFULA_CFG_TIMEOUT: ::c_int = 4; -pub const NFULA_CFG_QTHRESH: ::c_int = 5; -pub const NFULA_CFG_FLAGS: ::c_int = 6; - -pub const NFULNL_COPY_NONE: ::c_int = 0x00; -pub const NFULNL_COPY_META: ::c_int = 0x01; -pub const NFULNL_COPY_PACKET: ::c_int = 0x02; - -pub const NFULNL_CFG_F_SEQ: ::c_int = 0x0001; -pub const NFULNL_CFG_F_SEQ_GLOBAL: ::c_int = 0x0002; -pub const NFULNL_CFG_F_CONNTRACK: ::c_int = 0x0004; +pub const NFULNL_MSG_PACKET: c_int = 0; +pub const NFULNL_MSG_CONFIG: c_int = 1; + +pub const NFULA_VLAN_UNSPEC: c_int = 0; +pub const NFULA_VLAN_PROTO: c_int = 1; +pub const NFULA_VLAN_TCI: c_int = 2; + +pub const NFULA_UNSPEC: c_int = 0; +pub const NFULA_PACKET_HDR: c_int = 1; +pub const NFULA_MARK: c_int = 2; +pub const NFULA_TIMESTAMP: c_int = 3; +pub const NFULA_IFINDEX_INDEV: c_int = 4; +pub const NFULA_IFINDEX_OUTDEV: c_int = 5; +pub const NFULA_IFINDEX_PHYSINDEV: c_int = 6; +pub const NFULA_IFINDEX_PHYSOUTDEV: c_int = 7; +pub const NFULA_HWADDR: c_int = 8; +pub const NFULA_PAYLOAD: c_int = 9; +pub const NFULA_PREFIX: c_int = 10; +pub const NFULA_UID: c_int = 11; +pub const NFULA_SEQ: c_int = 12; +pub const NFULA_SEQ_GLOBAL: c_int = 13; +pub const NFULA_GID: c_int = 14; +pub const NFULA_HWTYPE: c_int = 15; +pub const NFULA_HWHEADER: c_int = 16; +pub const NFULA_HWLEN: c_int = 17; +pub const NFULA_CT: c_int = 18; +pub const NFULA_CT_INFO: c_int = 19; +pub const NFULA_VLAN: c_int = 20; +pub const NFULA_L2HDR: c_int = 21; + +pub const NFULNL_CFG_CMD_NONE: c_int = 0; +pub const NFULNL_CFG_CMD_BIND: c_int = 1; +pub const NFULNL_CFG_CMD_UNBIND: c_int = 2; +pub const NFULNL_CFG_CMD_PF_BIND: c_int = 3; +pub const NFULNL_CFG_CMD_PF_UNBIND: c_int = 4; + +pub const NFULA_CFG_UNSPEC: c_int = 0; +pub const NFULA_CFG_CMD: c_int = 1; +pub const NFULA_CFG_MODE: c_int = 2; +pub const NFULA_CFG_NLBUFSIZ: c_int = 3; +pub const NFULA_CFG_TIMEOUT: c_int = 4; +pub const NFULA_CFG_QTHRESH: c_int = 5; +pub const NFULA_CFG_FLAGS: c_int = 6; + +pub const NFULNL_COPY_NONE: c_int = 0x00; +pub const NFULNL_COPY_META: c_int = 0x01; +pub const NFULNL_COPY_PACKET: c_int = 0x02; + +pub const NFULNL_CFG_F_SEQ: c_int = 0x0001; +pub const NFULNL_CFG_F_SEQ_GLOBAL: c_int = 0x0002; +pub const NFULNL_CFG_F_CONNTRACK: c_int = 0x0004; // linux/netfilter/nfnetlink_queue.h -pub const NFQNL_MSG_PACKET: ::c_int = 0; -pub const NFQNL_MSG_VERDICT: ::c_int = 1; -pub const NFQNL_MSG_CONFIG: ::c_int = 2; -pub const NFQNL_MSG_VERDICT_BATCH: ::c_int = 3; - -pub const NFQA_UNSPEC: ::c_int = 0; -pub const NFQA_PACKET_HDR: ::c_int = 1; -pub const NFQA_VERDICT_HDR: ::c_int = 2; -pub const NFQA_MARK: ::c_int = 3; -pub const NFQA_TIMESTAMP: ::c_int = 4; -pub const NFQA_IFINDEX_INDEV: ::c_int = 5; -pub const NFQA_IFINDEX_OUTDEV: ::c_int = 6; -pub const NFQA_IFINDEX_PHYSINDEV: ::c_int = 7; -pub const NFQA_IFINDEX_PHYSOUTDEV: ::c_int = 8; -pub const NFQA_HWADDR: ::c_int = 9; -pub const NFQA_PAYLOAD: ::c_int = 10; -pub const NFQA_CT: ::c_int = 11; -pub const NFQA_CT_INFO: ::c_int = 12; -pub const NFQA_CAP_LEN: ::c_int = 13; -pub const NFQA_SKB_INFO: ::c_int = 14; -pub const NFQA_EXP: ::c_int = 15; -pub const NFQA_UID: ::c_int = 16; -pub const NFQA_GID: ::c_int = 17; -pub const NFQA_SECCTX: ::c_int = 18; -pub const NFQA_VLAN: ::c_int = 19; -pub const NFQA_L2HDR: ::c_int = 20; -pub const NFQA_PRIORITY: ::c_int = 21; - -pub const NFQA_VLAN_UNSPEC: ::c_int = 0; -pub const NFQA_VLAN_PROTO: ::c_int = 1; -pub const NFQA_VLAN_TCI: ::c_int = 2; - -pub const NFQNL_CFG_CMD_NONE: ::c_int = 0; -pub const NFQNL_CFG_CMD_BIND: ::c_int = 1; -pub const NFQNL_CFG_CMD_UNBIND: ::c_int = 2; -pub const NFQNL_CFG_CMD_PF_BIND: ::c_int = 3; -pub const NFQNL_CFG_CMD_PF_UNBIND: ::c_int = 4; - -pub const NFQNL_COPY_NONE: ::c_int = 0; -pub const NFQNL_COPY_META: ::c_int = 1; -pub const NFQNL_COPY_PACKET: ::c_int = 2; - -pub const NFQA_CFG_UNSPEC: ::c_int = 0; -pub const NFQA_CFG_CMD: ::c_int = 1; -pub const NFQA_CFG_PARAMS: ::c_int = 2; -pub const NFQA_CFG_QUEUE_MAXLEN: ::c_int = 3; -pub const NFQA_CFG_MASK: ::c_int = 4; -pub const NFQA_CFG_FLAGS: ::c_int = 5; - -pub const NFQA_CFG_F_FAIL_OPEN: ::c_int = 0x0001; -pub const NFQA_CFG_F_CONNTRACK: ::c_int = 0x0002; -pub const NFQA_CFG_F_GSO: ::c_int = 0x0004; -pub const NFQA_CFG_F_UID_GID: ::c_int = 0x0008; -pub const NFQA_CFG_F_SECCTX: ::c_int = 0x0010; -pub const NFQA_CFG_F_MAX: ::c_int = 0x0020; - -pub const NFQA_SKB_CSUMNOTREADY: ::c_int = 0x0001; -pub const NFQA_SKB_GSO: ::c_int = 0x0002; -pub const NFQA_SKB_CSUM_NOTVERIFIED: ::c_int = 0x0004; +pub const NFQNL_MSG_PACKET: c_int = 0; +pub const NFQNL_MSG_VERDICT: c_int = 1; +pub const NFQNL_MSG_CONFIG: c_int = 2; +pub const NFQNL_MSG_VERDICT_BATCH: c_int = 3; + +pub const NFQA_UNSPEC: c_int = 0; +pub const NFQA_PACKET_HDR: c_int = 1; +pub const NFQA_VERDICT_HDR: c_int = 2; +pub const NFQA_MARK: c_int = 3; +pub const NFQA_TIMESTAMP: c_int = 4; +pub const NFQA_IFINDEX_INDEV: c_int = 5; +pub const NFQA_IFINDEX_OUTDEV: c_int = 6; +pub const NFQA_IFINDEX_PHYSINDEV: c_int = 7; +pub const NFQA_IFINDEX_PHYSOUTDEV: c_int = 8; +pub const NFQA_HWADDR: c_int = 9; +pub const NFQA_PAYLOAD: c_int = 10; +pub const NFQA_CT: c_int = 11; +pub const NFQA_CT_INFO: c_int = 12; +pub const NFQA_CAP_LEN: c_int = 13; +pub const NFQA_SKB_INFO: c_int = 14; +pub const NFQA_EXP: c_int = 15; +pub const NFQA_UID: c_int = 16; +pub const NFQA_GID: c_int = 17; +pub const NFQA_SECCTX: c_int = 18; +pub const NFQA_VLAN: c_int = 19; +pub const NFQA_L2HDR: c_int = 20; +pub const NFQA_PRIORITY: c_int = 21; + +pub const NFQA_VLAN_UNSPEC: c_int = 0; +pub const NFQA_VLAN_PROTO: c_int = 1; +pub const NFQA_VLAN_TCI: c_int = 2; + +pub const NFQNL_CFG_CMD_NONE: c_int = 0; +pub const NFQNL_CFG_CMD_BIND: c_int = 1; +pub const NFQNL_CFG_CMD_UNBIND: c_int = 2; +pub const NFQNL_CFG_CMD_PF_BIND: c_int = 3; +pub const NFQNL_CFG_CMD_PF_UNBIND: c_int = 4; + +pub const NFQNL_COPY_NONE: c_int = 0; +pub const NFQNL_COPY_META: c_int = 1; +pub const NFQNL_COPY_PACKET: c_int = 2; + +pub const NFQA_CFG_UNSPEC: c_int = 0; +pub const NFQA_CFG_CMD: c_int = 1; +pub const NFQA_CFG_PARAMS: c_int = 2; +pub const NFQA_CFG_QUEUE_MAXLEN: c_int = 3; +pub const NFQA_CFG_MASK: c_int = 4; +pub const NFQA_CFG_FLAGS: c_int = 5; + +pub const NFQA_CFG_F_FAIL_OPEN: c_int = 0x0001; +pub const NFQA_CFG_F_CONNTRACK: c_int = 0x0002; +pub const NFQA_CFG_F_GSO: c_int = 0x0004; +pub const NFQA_CFG_F_UID_GID: c_int = 0x0008; +pub const NFQA_CFG_F_SECCTX: c_int = 0x0010; +pub const NFQA_CFG_F_MAX: c_int = 0x0020; + +pub const NFQA_SKB_CSUMNOTREADY: c_int = 0x0001; +pub const NFQA_SKB_GSO: c_int = 0x0002; +pub const NFQA_SKB_CSUM_NOTVERIFIED: c_int = 0x0004; // linux/genetlink.h -pub const GENL_NAMSIZ: ::c_int = 16; - -pub const GENL_MIN_ID: ::c_int = NLMSG_MIN_TYPE; -pub const GENL_MAX_ID: ::c_int = 1023; - -pub const GENL_ADMIN_PERM: ::c_int = 0x01; -pub const GENL_CMD_CAP_DO: ::c_int = 0x02; -pub const GENL_CMD_CAP_DUMP: ::c_int = 0x04; -pub const GENL_CMD_CAP_HASPOL: ::c_int = 0x08; - -pub const GENL_ID_CTRL: ::c_int = NLMSG_MIN_TYPE; - -pub const CTRL_CMD_UNSPEC: ::c_int = 0; -pub const CTRL_CMD_NEWFAMILY: ::c_int = 1; -pub const CTRL_CMD_DELFAMILY: ::c_int = 2; -pub const CTRL_CMD_GETFAMILY: ::c_int = 3; -pub const CTRL_CMD_NEWOPS: ::c_int = 4; -pub const CTRL_CMD_DELOPS: ::c_int = 5; -pub const CTRL_CMD_GETOPS: ::c_int = 6; -pub const CTRL_CMD_NEWMCAST_GRP: ::c_int = 7; -pub const CTRL_CMD_DELMCAST_GRP: ::c_int = 8; -pub const CTRL_CMD_GETMCAST_GRP: ::c_int = 9; - -pub const CTRL_ATTR_UNSPEC: ::c_int = 0; -pub const CTRL_ATTR_FAMILY_ID: ::c_int = 1; -pub const CTRL_ATTR_FAMILY_NAME: ::c_int = 2; -pub const CTRL_ATTR_VERSION: ::c_int = 3; -pub const CTRL_ATTR_HDRSIZE: ::c_int = 4; -pub const CTRL_ATTR_MAXATTR: ::c_int = 5; -pub const CTRL_ATTR_OPS: ::c_int = 6; -pub const CTRL_ATTR_MCAST_GROUPS: ::c_int = 7; - -pub const CTRL_ATTR_OP_UNSPEC: ::c_int = 0; -pub const CTRL_ATTR_OP_ID: ::c_int = 1; -pub const CTRL_ATTR_OP_FLAGS: ::c_int = 2; - -pub const CTRL_ATTR_MCAST_GRP_UNSPEC: ::c_int = 0; -pub const CTRL_ATTR_MCAST_GRP_NAME: ::c_int = 1; -pub const CTRL_ATTR_MCAST_GRP_ID: ::c_int = 2; +pub const GENL_NAMSIZ: c_int = 16; + +pub const GENL_MIN_ID: c_int = NLMSG_MIN_TYPE; +pub const GENL_MAX_ID: c_int = 1023; + +pub const GENL_ADMIN_PERM: c_int = 0x01; +pub const GENL_CMD_CAP_DO: c_int = 0x02; +pub const GENL_CMD_CAP_DUMP: c_int = 0x04; +pub const GENL_CMD_CAP_HASPOL: c_int = 0x08; + +pub const GENL_ID_CTRL: c_int = NLMSG_MIN_TYPE; + +pub const CTRL_CMD_UNSPEC: c_int = 0; +pub const CTRL_CMD_NEWFAMILY: c_int = 1; +pub const CTRL_CMD_DELFAMILY: c_int = 2; +pub const CTRL_CMD_GETFAMILY: c_int = 3; +pub const CTRL_CMD_NEWOPS: c_int = 4; +pub const CTRL_CMD_DELOPS: c_int = 5; +pub const CTRL_CMD_GETOPS: c_int = 6; +pub const CTRL_CMD_NEWMCAST_GRP: c_int = 7; +pub const CTRL_CMD_DELMCAST_GRP: c_int = 8; +pub const CTRL_CMD_GETMCAST_GRP: c_int = 9; + +pub const CTRL_ATTR_UNSPEC: c_int = 0; +pub const CTRL_ATTR_FAMILY_ID: c_int = 1; +pub const CTRL_ATTR_FAMILY_NAME: c_int = 2; +pub const CTRL_ATTR_VERSION: c_int = 3; +pub const CTRL_ATTR_HDRSIZE: c_int = 4; +pub const CTRL_ATTR_MAXATTR: c_int = 5; +pub const CTRL_ATTR_OPS: c_int = 6; +pub const CTRL_ATTR_MCAST_GROUPS: c_int = 7; + +pub const CTRL_ATTR_OP_UNSPEC: c_int = 0; +pub const CTRL_ATTR_OP_ID: c_int = 1; +pub const CTRL_ATTR_OP_FLAGS: c_int = 2; + +pub const CTRL_ATTR_MCAST_GRP_UNSPEC: c_int = 0; +pub const CTRL_ATTR_MCAST_GRP_NAME: c_int = 1; +pub const CTRL_ATTR_MCAST_GRP_ID: c_int = 2; // linux/if_packet.h -pub const PACKET_HOST: ::c_uchar = 0; -pub const PACKET_BROADCAST: ::c_uchar = 1; -pub const PACKET_MULTICAST: ::c_uchar = 2; -pub const PACKET_OTHERHOST: ::c_uchar = 3; -pub const PACKET_OUTGOING: ::c_uchar = 4; -pub const PACKET_LOOPBACK: ::c_uchar = 5; -pub const PACKET_USER: ::c_uchar = 6; -pub const PACKET_KERNEL: ::c_uchar = 7; - -pub const PACKET_ADD_MEMBERSHIP: ::c_int = 1; -pub const PACKET_DROP_MEMBERSHIP: ::c_int = 2; -pub const PACKET_RX_RING: ::c_int = 5; -pub const PACKET_STATISTICS: ::c_int = 6; -pub const PACKET_AUXDATA: ::c_int = 8; -pub const PACKET_VERSION: ::c_int = 10; -pub const PACKET_RESERVE: ::c_int = 12; -pub const PACKET_TX_RING: ::c_int = 13; -pub const PACKET_LOSS: ::c_int = 14; -pub const PACKET_TIMESTAMP: ::c_int = 17; -pub const PACKET_FANOUT: ::c_int = 18; -pub const PACKET_QDISC_BYPASS: ::c_int = 20; - -pub const PACKET_FANOUT_HASH: ::c_uint = 0; -pub const PACKET_FANOUT_LB: ::c_uint = 1; -pub const PACKET_FANOUT_CPU: ::c_uint = 2; -pub const PACKET_FANOUT_ROLLOVER: ::c_uint = 3; -pub const PACKET_FANOUT_RND: ::c_uint = 4; -pub const PACKET_FANOUT_QM: ::c_uint = 5; -pub const PACKET_FANOUT_CBPF: ::c_uint = 6; -pub const PACKET_FANOUT_EBPF: ::c_uint = 7; -pub const PACKET_FANOUT_FLAG_ROLLOVER: ::c_uint = 0x1000; -pub const PACKET_FANOUT_FLAG_UNIQUEID: ::c_uint = 0x2000; -pub const PACKET_FANOUT_FLAG_DEFRAG: ::c_uint = 0x8000; - -pub const PACKET_MR_MULTICAST: ::c_int = 0; -pub const PACKET_MR_PROMISC: ::c_int = 1; -pub const PACKET_MR_ALLMULTI: ::c_int = 2; - -pub const TP_STATUS_KERNEL: ::__u32 = 0; -pub const TP_STATUS_USER: ::__u32 = 1 << 0; -pub const TP_STATUS_COPY: ::__u32 = 1 << 1; -pub const TP_STATUS_LOSING: ::__u32 = 1 << 2; -pub const TP_STATUS_CSUMNOTREADY: ::__u32 = 1 << 3; -pub const TP_STATUS_VLAN_VALID: ::__u32 = 1 << 4; -pub const TP_STATUS_BLK_TMO: ::__u32 = 1 << 5; -pub const TP_STATUS_VLAN_TPID_VALID: ::__u32 = 1 << 6; -pub const TP_STATUS_CSUM_VALID: ::__u32 = 1 << 7; - -pub const TP_STATUS_AVAILABLE: ::__u32 = 0; -pub const TP_STATUS_SEND_REQUEST: ::__u32 = 1 << 0; -pub const TP_STATUS_SENDING: ::__u32 = 1 << 1; -pub const TP_STATUS_WRONG_FORMAT: ::__u32 = 1 << 2; - -pub const TP_STATUS_TS_SOFTWARE: ::__u32 = 1 << 29; -pub const TP_STATUS_TS_SYS_HARDWARE: ::__u32 = 1 << 30; -pub const TP_STATUS_TS_RAW_HARDWARE: ::__u32 = 1 << 31; - -pub const TP_FT_REQ_FILL_RXHASH: ::__u32 = 1; +pub const PACKET_HOST: c_uchar = 0; +pub const PACKET_BROADCAST: c_uchar = 1; +pub const PACKET_MULTICAST: c_uchar = 2; +pub const PACKET_OTHERHOST: c_uchar = 3; +pub const PACKET_OUTGOING: c_uchar = 4; +pub const PACKET_LOOPBACK: c_uchar = 5; +pub const PACKET_USER: c_uchar = 6; +pub const PACKET_KERNEL: c_uchar = 7; + +pub const PACKET_ADD_MEMBERSHIP: c_int = 1; +pub const PACKET_DROP_MEMBERSHIP: c_int = 2; +pub const PACKET_RX_RING: c_int = 5; +pub const PACKET_STATISTICS: c_int = 6; +pub const PACKET_AUXDATA: c_int = 8; +pub const PACKET_VERSION: c_int = 10; +pub const PACKET_RESERVE: c_int = 12; +pub const PACKET_TX_RING: c_int = 13; +pub const PACKET_LOSS: c_int = 14; +pub const PACKET_TIMESTAMP: c_int = 17; +pub const PACKET_FANOUT: c_int = 18; +pub const PACKET_QDISC_BYPASS: c_int = 20; + +pub const PACKET_FANOUT_HASH: c_uint = 0; +pub const PACKET_FANOUT_LB: c_uint = 1; +pub const PACKET_FANOUT_CPU: c_uint = 2; +pub const PACKET_FANOUT_ROLLOVER: c_uint = 3; +pub const PACKET_FANOUT_RND: c_uint = 4; +pub const PACKET_FANOUT_QM: c_uint = 5; +pub const PACKET_FANOUT_CBPF: c_uint = 6; +pub const PACKET_FANOUT_EBPF: c_uint = 7; +pub const PACKET_FANOUT_FLAG_ROLLOVER: c_uint = 0x1000; +pub const PACKET_FANOUT_FLAG_UNIQUEID: c_uint = 0x2000; +pub const PACKET_FANOUT_FLAG_DEFRAG: c_uint = 0x8000; + +pub const PACKET_MR_MULTICAST: c_int = 0; +pub const PACKET_MR_PROMISC: c_int = 1; +pub const PACKET_MR_ALLMULTI: c_int = 2; + +pub const TP_STATUS_KERNEL: __u32 = 0; +pub const TP_STATUS_USER: __u32 = 1 << 0; +pub const TP_STATUS_COPY: __u32 = 1 << 1; +pub const TP_STATUS_LOSING: __u32 = 1 << 2; +pub const TP_STATUS_CSUMNOTREADY: __u32 = 1 << 3; +pub const TP_STATUS_VLAN_VALID: __u32 = 1 << 4; +pub const TP_STATUS_BLK_TMO: __u32 = 1 << 5; +pub const TP_STATUS_VLAN_TPID_VALID: __u32 = 1 << 6; +pub const TP_STATUS_CSUM_VALID: __u32 = 1 << 7; + +pub const TP_STATUS_AVAILABLE: __u32 = 0; +pub const TP_STATUS_SEND_REQUEST: __u32 = 1 << 0; +pub const TP_STATUS_SENDING: __u32 = 1 << 1; +pub const TP_STATUS_WRONG_FORMAT: __u32 = 1 << 2; + +pub const TP_STATUS_TS_SOFTWARE: __u32 = 1 << 29; +pub const TP_STATUS_TS_SYS_HARDWARE: __u32 = 1 << 30; +pub const TP_STATUS_TS_RAW_HARDWARE: __u32 = 1 << 31; + +pub const TP_FT_REQ_FILL_RXHASH: __u32 = 1; pub const TPACKET_ALIGNMENT: usize = 16; -pub const TPACKET_HDRLEN: usize = ((size_of::<::tpacket_hdr>() + TPACKET_ALIGNMENT - 1) +pub const TPACKET_HDRLEN: usize = ((size_of::() + TPACKET_ALIGNMENT - 1) & !(TPACKET_ALIGNMENT - 1)) - + size_of::<::sockaddr_ll>(); -pub const TPACKET2_HDRLEN: usize = ((size_of::<::tpacket2_hdr>() + TPACKET_ALIGNMENT - 1) + + size_of::(); +pub const TPACKET2_HDRLEN: usize = ((size_of::() + TPACKET_ALIGNMENT - 1) & !(TPACKET_ALIGNMENT - 1)) - + size_of::<::sockaddr_ll>(); -pub const TPACKET3_HDRLEN: usize = ((size_of::<::tpacket3_hdr>() + TPACKET_ALIGNMENT - 1) + + size_of::(); +pub const TPACKET3_HDRLEN: usize = ((size_of::() + TPACKET_ALIGNMENT - 1) & !(TPACKET_ALIGNMENT - 1)) - + size_of::<::sockaddr_ll>(); + + size_of::(); // linux/netfilter.h -pub const NF_DROP: ::c_int = 0; -pub const NF_ACCEPT: ::c_int = 1; -pub const NF_STOLEN: ::c_int = 2; -pub const NF_QUEUE: ::c_int = 3; -pub const NF_REPEAT: ::c_int = 4; -pub const NF_STOP: ::c_int = 5; -pub const NF_MAX_VERDICT: ::c_int = NF_STOP; - -pub const NF_VERDICT_MASK: ::c_int = 0x000000ff; -pub const NF_VERDICT_FLAG_QUEUE_BYPASS: ::c_int = 0x00008000; - -pub const NF_VERDICT_QMASK: ::c_int = 0xffff0000; -pub const NF_VERDICT_QBITS: ::c_int = 16; - -pub const NF_VERDICT_BITS: ::c_int = 16; - -pub const NF_INET_PRE_ROUTING: ::c_int = 0; -pub const NF_INET_LOCAL_IN: ::c_int = 1; -pub const NF_INET_FORWARD: ::c_int = 2; -pub const NF_INET_LOCAL_OUT: ::c_int = 3; -pub const NF_INET_POST_ROUTING: ::c_int = 4; -pub const NF_INET_NUMHOOKS: ::c_int = 5; -pub const NF_INET_INGRESS: ::c_int = NF_INET_NUMHOOKS; - -pub const NF_NETDEV_INGRESS: ::c_int = 0; -pub const NF_NETDEV_EGRESS: ::c_int = 1; -pub const NF_NETDEV_NUMHOOKS: ::c_int = 2; +pub const NF_DROP: c_int = 0; +pub const NF_ACCEPT: c_int = 1; +pub const NF_STOLEN: c_int = 2; +pub const NF_QUEUE: c_int = 3; +pub const NF_REPEAT: c_int = 4; +pub const NF_STOP: c_int = 5; +pub const NF_MAX_VERDICT: c_int = NF_STOP; + +pub const NF_VERDICT_MASK: c_int = 0x000000ff; +pub const NF_VERDICT_FLAG_QUEUE_BYPASS: c_int = 0x00008000; + +pub const NF_VERDICT_QMASK: c_int = 0xffff0000; +pub const NF_VERDICT_QBITS: c_int = 16; + +pub const NF_VERDICT_BITS: c_int = 16; + +pub const NF_INET_PRE_ROUTING: c_int = 0; +pub const NF_INET_LOCAL_IN: c_int = 1; +pub const NF_INET_FORWARD: c_int = 2; +pub const NF_INET_LOCAL_OUT: c_int = 3; +pub const NF_INET_POST_ROUTING: c_int = 4; +pub const NF_INET_NUMHOOKS: c_int = 5; +pub const NF_INET_INGRESS: c_int = NF_INET_NUMHOOKS; + +pub const NF_NETDEV_INGRESS: c_int = 0; +pub const NF_NETDEV_EGRESS: c_int = 1; +pub const NF_NETDEV_NUMHOOKS: c_int = 2; // Some NFPROTO are not compatible with musl and are defined in submodules. -pub const NFPROTO_UNSPEC: ::c_int = 0; -pub const NFPROTO_INET: ::c_int = 1; -pub const NFPROTO_IPV4: ::c_int = 2; -pub const NFPROTO_ARP: ::c_int = 3; -pub const NFPROTO_NETDEV: ::c_int = 5; -pub const NFPROTO_BRIDGE: ::c_int = 7; -pub const NFPROTO_IPV6: ::c_int = 10; -pub const NFPROTO_DECNET: ::c_int = 12; -pub const NFPROTO_NUMPROTO: ::c_int = 13; +pub const NFPROTO_UNSPEC: c_int = 0; +pub const NFPROTO_INET: c_int = 1; +pub const NFPROTO_IPV4: c_int = 2; +pub const NFPROTO_ARP: c_int = 3; +pub const NFPROTO_NETDEV: c_int = 5; +pub const NFPROTO_BRIDGE: c_int = 7; +pub const NFPROTO_IPV6: c_int = 10; +pub const NFPROTO_DECNET: c_int = 12; +pub const NFPROTO_NUMPROTO: c_int = 13; // linux/netfilter_arp.h -pub const NF_ARP: ::c_int = 0; -pub const NF_ARP_IN: ::c_int = 0; -pub const NF_ARP_OUT: ::c_int = 1; -pub const NF_ARP_FORWARD: ::c_int = 2; -pub const NF_ARP_NUMHOOKS: ::c_int = 3; +pub const NF_ARP: c_int = 0; +pub const NF_ARP_IN: c_int = 0; +pub const NF_ARP_OUT: c_int = 1; +pub const NF_ARP_FORWARD: c_int = 2; +pub const NF_ARP_NUMHOOKS: c_int = 3; // linux/netfilter_bridge.h -pub const NF_BR_PRE_ROUTING: ::c_int = 0; -pub const NF_BR_LOCAL_IN: ::c_int = 1; -pub const NF_BR_FORWARD: ::c_int = 2; -pub const NF_BR_LOCAL_OUT: ::c_int = 3; -pub const NF_BR_POST_ROUTING: ::c_int = 4; -pub const NF_BR_BROUTING: ::c_int = 5; -pub const NF_BR_NUMHOOKS: ::c_int = 6; - -pub const NF_BR_PRI_FIRST: ::c_int = ::INT_MIN; -pub const NF_BR_PRI_NAT_DST_BRIDGED: ::c_int = -300; -pub const NF_BR_PRI_FILTER_BRIDGED: ::c_int = -200; -pub const NF_BR_PRI_BRNF: ::c_int = 0; -pub const NF_BR_PRI_NAT_DST_OTHER: ::c_int = 100; -pub const NF_BR_PRI_FILTER_OTHER: ::c_int = 200; -pub const NF_BR_PRI_NAT_SRC: ::c_int = 300; -pub const NF_BR_PRI_LAST: ::c_int = ::INT_MAX; +pub const NF_BR_PRE_ROUTING: c_int = 0; +pub const NF_BR_LOCAL_IN: c_int = 1; +pub const NF_BR_FORWARD: c_int = 2; +pub const NF_BR_LOCAL_OUT: c_int = 3; +pub const NF_BR_POST_ROUTING: c_int = 4; +pub const NF_BR_BROUTING: c_int = 5; +pub const NF_BR_NUMHOOKS: c_int = 6; + +pub const NF_BR_PRI_FIRST: c_int = crate::INT_MIN; +pub const NF_BR_PRI_NAT_DST_BRIDGED: c_int = -300; +pub const NF_BR_PRI_FILTER_BRIDGED: c_int = -200; +pub const NF_BR_PRI_BRNF: c_int = 0; +pub const NF_BR_PRI_NAT_DST_OTHER: c_int = 100; +pub const NF_BR_PRI_FILTER_OTHER: c_int = 200; +pub const NF_BR_PRI_NAT_SRC: c_int = 300; +pub const NF_BR_PRI_LAST: c_int = crate::INT_MAX; // linux/netfilter_ipv4.h -pub const NF_IP_PRE_ROUTING: ::c_int = 0; -pub const NF_IP_LOCAL_IN: ::c_int = 1; -pub const NF_IP_FORWARD: ::c_int = 2; -pub const NF_IP_LOCAL_OUT: ::c_int = 3; -pub const NF_IP_POST_ROUTING: ::c_int = 4; -pub const NF_IP_NUMHOOKS: ::c_int = 5; - -pub const NF_IP_PRI_FIRST: ::c_int = ::INT_MIN; -pub const NF_IP_PRI_RAW_BEFORE_DEFRAG: ::c_int = -450; -pub const NF_IP_PRI_CONNTRACK_DEFRAG: ::c_int = -400; -pub const NF_IP_PRI_RAW: ::c_int = -300; -pub const NF_IP_PRI_SELINUX_FIRST: ::c_int = -225; -pub const NF_IP_PRI_CONNTRACK: ::c_int = -200; -pub const NF_IP_PRI_MANGLE: ::c_int = -150; -pub const NF_IP_PRI_NAT_DST: ::c_int = -100; -pub const NF_IP_PRI_FILTER: ::c_int = 0; -pub const NF_IP_PRI_SECURITY: ::c_int = 50; -pub const NF_IP_PRI_NAT_SRC: ::c_int = 100; -pub const NF_IP_PRI_SELINUX_LAST: ::c_int = 225; -pub const NF_IP_PRI_CONNTRACK_HELPER: ::c_int = 300; -pub const NF_IP_PRI_CONNTRACK_CONFIRM: ::c_int = ::INT_MAX; -pub const NF_IP_PRI_LAST: ::c_int = ::INT_MAX; +pub const NF_IP_PRE_ROUTING: c_int = 0; +pub const NF_IP_LOCAL_IN: c_int = 1; +pub const NF_IP_FORWARD: c_int = 2; +pub const NF_IP_LOCAL_OUT: c_int = 3; +pub const NF_IP_POST_ROUTING: c_int = 4; +pub const NF_IP_NUMHOOKS: c_int = 5; + +pub const NF_IP_PRI_FIRST: c_int = crate::INT_MIN; +pub const NF_IP_PRI_RAW_BEFORE_DEFRAG: c_int = -450; +pub const NF_IP_PRI_CONNTRACK_DEFRAG: c_int = -400; +pub const NF_IP_PRI_RAW: c_int = -300; +pub const NF_IP_PRI_SELINUX_FIRST: c_int = -225; +pub const NF_IP_PRI_CONNTRACK: c_int = -200; +pub const NF_IP_PRI_MANGLE: c_int = -150; +pub const NF_IP_PRI_NAT_DST: c_int = -100; +pub const NF_IP_PRI_FILTER: c_int = 0; +pub const NF_IP_PRI_SECURITY: c_int = 50; +pub const NF_IP_PRI_NAT_SRC: c_int = 100; +pub const NF_IP_PRI_SELINUX_LAST: c_int = 225; +pub const NF_IP_PRI_CONNTRACK_HELPER: c_int = 300; +pub const NF_IP_PRI_CONNTRACK_CONFIRM: c_int = crate::INT_MAX; +pub const NF_IP_PRI_LAST: c_int = crate::INT_MAX; // linux/netfilter_ipv6.h -pub const NF_IP6_PRE_ROUTING: ::c_int = 0; -pub const NF_IP6_LOCAL_IN: ::c_int = 1; -pub const NF_IP6_FORWARD: ::c_int = 2; -pub const NF_IP6_LOCAL_OUT: ::c_int = 3; -pub const NF_IP6_POST_ROUTING: ::c_int = 4; -pub const NF_IP6_NUMHOOKS: ::c_int = 5; - -pub const NF_IP6_PRI_FIRST: ::c_int = ::INT_MIN; -pub const NF_IP6_PRI_RAW_BEFORE_DEFRAG: ::c_int = -450; -pub const NF_IP6_PRI_CONNTRACK_DEFRAG: ::c_int = -400; -pub const NF_IP6_PRI_RAW: ::c_int = -300; -pub const NF_IP6_PRI_SELINUX_FIRST: ::c_int = -225; -pub const NF_IP6_PRI_CONNTRACK: ::c_int = -200; -pub const NF_IP6_PRI_MANGLE: ::c_int = -150; -pub const NF_IP6_PRI_NAT_DST: ::c_int = -100; -pub const NF_IP6_PRI_FILTER: ::c_int = 0; -pub const NF_IP6_PRI_SECURITY: ::c_int = 50; -pub const NF_IP6_PRI_NAT_SRC: ::c_int = 100; -pub const NF_IP6_PRI_SELINUX_LAST: ::c_int = 225; -pub const NF_IP6_PRI_CONNTRACK_HELPER: ::c_int = 300; -pub const NF_IP6_PRI_LAST: ::c_int = ::INT_MAX; +pub const NF_IP6_PRE_ROUTING: c_int = 0; +pub const NF_IP6_LOCAL_IN: c_int = 1; +pub const NF_IP6_FORWARD: c_int = 2; +pub const NF_IP6_LOCAL_OUT: c_int = 3; +pub const NF_IP6_POST_ROUTING: c_int = 4; +pub const NF_IP6_NUMHOOKS: c_int = 5; + +pub const NF_IP6_PRI_FIRST: c_int = crate::INT_MIN; +pub const NF_IP6_PRI_RAW_BEFORE_DEFRAG: c_int = -450; +pub const NF_IP6_PRI_CONNTRACK_DEFRAG: c_int = -400; +pub const NF_IP6_PRI_RAW: c_int = -300; +pub const NF_IP6_PRI_SELINUX_FIRST: c_int = -225; +pub const NF_IP6_PRI_CONNTRACK: c_int = -200; +pub const NF_IP6_PRI_MANGLE: c_int = -150; +pub const NF_IP6_PRI_NAT_DST: c_int = -100; +pub const NF_IP6_PRI_FILTER: c_int = 0; +pub const NF_IP6_PRI_SECURITY: c_int = 50; +pub const NF_IP6_PRI_NAT_SRC: c_int = 100; +pub const NF_IP6_PRI_SELINUX_LAST: c_int = 225; +pub const NF_IP6_PRI_CONNTRACK_HELPER: c_int = 300; +pub const NF_IP6_PRI_LAST: c_int = crate::INT_MAX; // linux/netfilter_ipv6/ip6_tables.h -pub const IP6T_SO_ORIGINAL_DST: ::c_int = 80; - -pub const SIOCADDRT: ::c_ulong = 0x0000890B; -pub const SIOCDELRT: ::c_ulong = 0x0000890C; -pub const SIOCGIFNAME: ::c_ulong = 0x00008910; -pub const SIOCSIFLINK: ::c_ulong = 0x00008911; -pub const SIOCGIFCONF: ::c_ulong = 0x00008912; -pub const SIOCGIFFLAGS: ::c_ulong = 0x00008913; -pub const SIOCSIFFLAGS: ::c_ulong = 0x00008914; -pub const SIOCGIFADDR: ::c_ulong = 0x00008915; -pub const SIOCSIFADDR: ::c_ulong = 0x00008916; -pub const SIOCGIFDSTADDR: ::c_ulong = 0x00008917; -pub const SIOCSIFDSTADDR: ::c_ulong = 0x00008918; -pub const SIOCGIFBRDADDR: ::c_ulong = 0x00008919; -pub const SIOCSIFBRDADDR: ::c_ulong = 0x0000891A; -pub const SIOCGIFNETMASK: ::c_ulong = 0x0000891B; -pub const SIOCSIFNETMASK: ::c_ulong = 0x0000891C; -pub const SIOCGIFMETRIC: ::c_ulong = 0x0000891D; -pub const SIOCSIFMETRIC: ::c_ulong = 0x0000891E; -pub const SIOCGIFMEM: ::c_ulong = 0x0000891F; -pub const SIOCSIFMEM: ::c_ulong = 0x00008920; -pub const SIOCGIFMTU: ::c_ulong = 0x00008921; -pub const SIOCSIFMTU: ::c_ulong = 0x00008922; -pub const SIOCSIFNAME: ::c_ulong = 0x00008923; -pub const SIOCSIFHWADDR: ::c_ulong = 0x00008924; -pub const SIOCGIFENCAP: ::c_ulong = 0x00008925; -pub const SIOCSIFENCAP: ::c_ulong = 0x00008926; -pub const SIOCGIFHWADDR: ::c_ulong = 0x00008927; -pub const SIOCGIFSLAVE: ::c_ulong = 0x00008929; -pub const SIOCSIFSLAVE: ::c_ulong = 0x00008930; -pub const SIOCADDMULTI: ::c_ulong = 0x00008931; -pub const SIOCDELMULTI: ::c_ulong = 0x00008932; -pub const SIOCGIFINDEX: ::c_ulong = 0x00008933; -pub const SIOGIFINDEX: ::c_ulong = SIOCGIFINDEX; -pub const SIOCSIFPFLAGS: ::c_ulong = 0x00008934; -pub const SIOCGIFPFLAGS: ::c_ulong = 0x00008935; -pub const SIOCDIFADDR: ::c_ulong = 0x00008936; -pub const SIOCSIFHWBROADCAST: ::c_ulong = 0x00008937; -pub const SIOCGIFCOUNT: ::c_ulong = 0x00008938; -pub const SIOCGIFBR: ::c_ulong = 0x00008940; -pub const SIOCSIFBR: ::c_ulong = 0x00008941; -pub const SIOCGIFTXQLEN: ::c_ulong = 0x00008942; -pub const SIOCSIFTXQLEN: ::c_ulong = 0x00008943; -pub const SIOCETHTOOL: ::c_ulong = 0x00008946; -pub const SIOCGMIIPHY: ::c_ulong = 0x00008947; -pub const SIOCGMIIREG: ::c_ulong = 0x00008948; -pub const SIOCSMIIREG: ::c_ulong = 0x00008949; -pub const SIOCWANDEV: ::c_ulong = 0x0000894A; -pub const SIOCOUTQNSD: ::c_ulong = 0x0000894B; -pub const SIOCGSKNS: ::c_ulong = 0x0000894C; -pub const SIOCDARP: ::c_ulong = 0x00008953; -pub const SIOCGARP: ::c_ulong = 0x00008954; -pub const SIOCSARP: ::c_ulong = 0x00008955; -pub const SIOCDRARP: ::c_ulong = 0x00008960; -pub const SIOCGRARP: ::c_ulong = 0x00008961; -pub const SIOCSRARP: ::c_ulong = 0x00008962; -pub const SIOCGIFMAP: ::c_ulong = 0x00008970; -pub const SIOCSIFMAP: ::c_ulong = 0x00008971; -pub const SIOCSHWTSTAMP: ::c_ulong = 0x000089b0; -pub const SIOCGHWTSTAMP: ::c_ulong = 0x000089b1; +pub const IP6T_SO_ORIGINAL_DST: c_int = 80; + +pub const SIOCADDRT: c_ulong = 0x0000890B; +pub const SIOCDELRT: c_ulong = 0x0000890C; +pub const SIOCGIFNAME: c_ulong = 0x00008910; +pub const SIOCSIFLINK: c_ulong = 0x00008911; +pub const SIOCGIFCONF: c_ulong = 0x00008912; +pub const SIOCGIFFLAGS: c_ulong = 0x00008913; +pub const SIOCSIFFLAGS: c_ulong = 0x00008914; +pub const SIOCGIFADDR: c_ulong = 0x00008915; +pub const SIOCSIFADDR: c_ulong = 0x00008916; +pub const SIOCGIFDSTADDR: c_ulong = 0x00008917; +pub const SIOCSIFDSTADDR: c_ulong = 0x00008918; +pub const SIOCGIFBRDADDR: c_ulong = 0x00008919; +pub const SIOCSIFBRDADDR: c_ulong = 0x0000891A; +pub const SIOCGIFNETMASK: c_ulong = 0x0000891B; +pub const SIOCSIFNETMASK: c_ulong = 0x0000891C; +pub const SIOCGIFMETRIC: c_ulong = 0x0000891D; +pub const SIOCSIFMETRIC: c_ulong = 0x0000891E; +pub const SIOCGIFMEM: c_ulong = 0x0000891F; +pub const SIOCSIFMEM: c_ulong = 0x00008920; +pub const SIOCGIFMTU: c_ulong = 0x00008921; +pub const SIOCSIFMTU: c_ulong = 0x00008922; +pub const SIOCSIFNAME: c_ulong = 0x00008923; +pub const SIOCSIFHWADDR: c_ulong = 0x00008924; +pub const SIOCGIFENCAP: c_ulong = 0x00008925; +pub const SIOCSIFENCAP: c_ulong = 0x00008926; +pub const SIOCGIFHWADDR: c_ulong = 0x00008927; +pub const SIOCGIFSLAVE: c_ulong = 0x00008929; +pub const SIOCSIFSLAVE: c_ulong = 0x00008930; +pub const SIOCADDMULTI: c_ulong = 0x00008931; +pub const SIOCDELMULTI: c_ulong = 0x00008932; +pub const SIOCGIFINDEX: c_ulong = 0x00008933; +pub const SIOGIFINDEX: c_ulong = SIOCGIFINDEX; +pub const SIOCSIFPFLAGS: c_ulong = 0x00008934; +pub const SIOCGIFPFLAGS: c_ulong = 0x00008935; +pub const SIOCDIFADDR: c_ulong = 0x00008936; +pub const SIOCSIFHWBROADCAST: c_ulong = 0x00008937; +pub const SIOCGIFCOUNT: c_ulong = 0x00008938; +pub const SIOCGIFBR: c_ulong = 0x00008940; +pub const SIOCSIFBR: c_ulong = 0x00008941; +pub const SIOCGIFTXQLEN: c_ulong = 0x00008942; +pub const SIOCSIFTXQLEN: c_ulong = 0x00008943; +pub const SIOCETHTOOL: c_ulong = 0x00008946; +pub const SIOCGMIIPHY: c_ulong = 0x00008947; +pub const SIOCGMIIREG: c_ulong = 0x00008948; +pub const SIOCSMIIREG: c_ulong = 0x00008949; +pub const SIOCWANDEV: c_ulong = 0x0000894A; +pub const SIOCOUTQNSD: c_ulong = 0x0000894B; +pub const SIOCGSKNS: c_ulong = 0x0000894C; +pub const SIOCDARP: c_ulong = 0x00008953; +pub const SIOCGARP: c_ulong = 0x00008954; +pub const SIOCSARP: c_ulong = 0x00008955; +pub const SIOCDRARP: c_ulong = 0x00008960; +pub const SIOCGRARP: c_ulong = 0x00008961; +pub const SIOCSRARP: c_ulong = 0x00008962; +pub const SIOCGIFMAP: c_ulong = 0x00008970; +pub const SIOCSIFMAP: c_ulong = 0x00008971; +pub const SIOCSHWTSTAMP: c_ulong = 0x000089b0; +pub const SIOCGHWTSTAMP: c_ulong = 0x000089b1; // wireless.h -pub const WIRELESS_EXT: ::c_ulong = 0x16; - -pub const SIOCSIWCOMMIT: ::c_ulong = 0x8B00; -pub const SIOCGIWNAME: ::c_ulong = 0x8B01; - -pub const SIOCSIWNWID: ::c_ulong = 0x8B02; -pub const SIOCGIWNWID: ::c_ulong = 0x8B03; -pub const SIOCSIWFREQ: ::c_ulong = 0x8B04; -pub const SIOCGIWFREQ: ::c_ulong = 0x8B05; -pub const SIOCSIWMODE: ::c_ulong = 0x8B06; -pub const SIOCGIWMODE: ::c_ulong = 0x8B07; -pub const SIOCSIWSENS: ::c_ulong = 0x8B08; -pub const SIOCGIWSENS: ::c_ulong = 0x8B09; - -pub const SIOCSIWRANGE: ::c_ulong = 0x8B0A; -pub const SIOCGIWRANGE: ::c_ulong = 0x8B0B; -pub const SIOCSIWPRIV: ::c_ulong = 0x8B0C; -pub const SIOCGIWPRIV: ::c_ulong = 0x8B0D; -pub const SIOCSIWSTATS: ::c_ulong = 0x8B0E; -pub const SIOCGIWSTATS: ::c_ulong = 0x8B0F; - -pub const SIOCSIWSPY: ::c_ulong = 0x8B10; -pub const SIOCGIWSPY: ::c_ulong = 0x8B11; -pub const SIOCSIWTHRSPY: ::c_ulong = 0x8B12; -pub const SIOCGIWTHRSPY: ::c_ulong = 0x8B13; - -pub const SIOCSIWAP: ::c_ulong = 0x8B14; -pub const SIOCGIWAP: ::c_ulong = 0x8B15; -pub const SIOCGIWAPLIST: ::c_ulong = 0x8B17; -pub const SIOCSIWSCAN: ::c_ulong = 0x8B18; -pub const SIOCGIWSCAN: ::c_ulong = 0x8B19; - -pub const SIOCSIWESSID: ::c_ulong = 0x8B1A; -pub const SIOCGIWESSID: ::c_ulong = 0x8B1B; -pub const SIOCSIWNICKN: ::c_ulong = 0x8B1C; -pub const SIOCGIWNICKN: ::c_ulong = 0x8B1D; - -pub const SIOCSIWRATE: ::c_ulong = 0x8B20; -pub const SIOCGIWRATE: ::c_ulong = 0x8B21; -pub const SIOCSIWRTS: ::c_ulong = 0x8B22; -pub const SIOCGIWRTS: ::c_ulong = 0x8B23; -pub const SIOCSIWFRAG: ::c_ulong = 0x8B24; -pub const SIOCGIWFRAG: ::c_ulong = 0x8B25; -pub const SIOCSIWTXPOW: ::c_ulong = 0x8B26; -pub const SIOCGIWTXPOW: ::c_ulong = 0x8B27; -pub const SIOCSIWRETRY: ::c_ulong = 0x8B28; -pub const SIOCGIWRETRY: ::c_ulong = 0x8B29; - -pub const SIOCSIWENCODE: ::c_ulong = 0x8B2A; -pub const SIOCGIWENCODE: ::c_ulong = 0x8B2B; - -pub const SIOCSIWPOWER: ::c_ulong = 0x8B2C; -pub const SIOCGIWPOWER: ::c_ulong = 0x8B2D; - -pub const SIOCSIWGENIE: ::c_ulong = 0x8B30; -pub const SIOCGIWGENIE: ::c_ulong = 0x8B31; - -pub const SIOCSIWMLME: ::c_ulong = 0x8B16; - -pub const SIOCSIWAUTH: ::c_ulong = 0x8B32; -pub const SIOCGIWAUTH: ::c_ulong = 0x8B33; - -pub const SIOCSIWENCODEEXT: ::c_ulong = 0x8B34; -pub const SIOCGIWENCODEEXT: ::c_ulong = 0x8B35; - -pub const SIOCSIWPMKSA: ::c_ulong = 0x8B36; - -pub const SIOCIWFIRSTPRIV: ::c_ulong = 0x8BE0; -pub const SIOCIWLASTPRIV: ::c_ulong = 0x8BFF; - -pub const SIOCIWFIRST: ::c_ulong = 0x8B00; -pub const SIOCIWLAST: ::c_ulong = SIOCIWLASTPRIV; - -pub const IWEVTXDROP: ::c_ulong = 0x8C00; -pub const IWEVQUAL: ::c_ulong = 0x8C01; -pub const IWEVCUSTOM: ::c_ulong = 0x8C02; -pub const IWEVREGISTERED: ::c_ulong = 0x8C03; -pub const IWEVEXPIRED: ::c_ulong = 0x8C04; -pub const IWEVGENIE: ::c_ulong = 0x8C05; -pub const IWEVMICHAELMICFAILURE: ::c_ulong = 0x8C06; -pub const IWEVASSOCREQIE: ::c_ulong = 0x8C07; -pub const IWEVASSOCRESPIE: ::c_ulong = 0x8C08; -pub const IWEVPMKIDCAND: ::c_ulong = 0x8C09; -pub const IWEVFIRST: ::c_ulong = 0x8C00; - -pub const IW_PRIV_TYPE_MASK: ::c_ulong = 0x7000; -pub const IW_PRIV_TYPE_NONE: ::c_ulong = 0x0000; -pub const IW_PRIV_TYPE_BYTE: ::c_ulong = 0x1000; -pub const IW_PRIV_TYPE_CHAR: ::c_ulong = 0x2000; -pub const IW_PRIV_TYPE_INT: ::c_ulong = 0x4000; -pub const IW_PRIV_TYPE_FLOAT: ::c_ulong = 0x5000; -pub const IW_PRIV_TYPE_ADDR: ::c_ulong = 0x6000; - -pub const IW_PRIV_SIZE_FIXED: ::c_ulong = 0x0800; - -pub const IW_PRIV_SIZE_MASK: ::c_ulong = 0x07FF; +pub const WIRELESS_EXT: c_ulong = 0x16; + +pub const SIOCSIWCOMMIT: c_ulong = 0x8B00; +pub const SIOCGIWNAME: c_ulong = 0x8B01; + +pub const SIOCSIWNWID: c_ulong = 0x8B02; +pub const SIOCGIWNWID: c_ulong = 0x8B03; +pub const SIOCSIWFREQ: c_ulong = 0x8B04; +pub const SIOCGIWFREQ: c_ulong = 0x8B05; +pub const SIOCSIWMODE: c_ulong = 0x8B06; +pub const SIOCGIWMODE: c_ulong = 0x8B07; +pub const SIOCSIWSENS: c_ulong = 0x8B08; +pub const SIOCGIWSENS: c_ulong = 0x8B09; + +pub const SIOCSIWRANGE: c_ulong = 0x8B0A; +pub const SIOCGIWRANGE: c_ulong = 0x8B0B; +pub const SIOCSIWPRIV: c_ulong = 0x8B0C; +pub const SIOCGIWPRIV: c_ulong = 0x8B0D; +pub const SIOCSIWSTATS: c_ulong = 0x8B0E; +pub const SIOCGIWSTATS: c_ulong = 0x8B0F; + +pub const SIOCSIWSPY: c_ulong = 0x8B10; +pub const SIOCGIWSPY: c_ulong = 0x8B11; +pub const SIOCSIWTHRSPY: c_ulong = 0x8B12; +pub const SIOCGIWTHRSPY: c_ulong = 0x8B13; + +pub const SIOCSIWAP: c_ulong = 0x8B14; +pub const SIOCGIWAP: c_ulong = 0x8B15; +pub const SIOCGIWAPLIST: c_ulong = 0x8B17; +pub const SIOCSIWSCAN: c_ulong = 0x8B18; +pub const SIOCGIWSCAN: c_ulong = 0x8B19; + +pub const SIOCSIWESSID: c_ulong = 0x8B1A; +pub const SIOCGIWESSID: c_ulong = 0x8B1B; +pub const SIOCSIWNICKN: c_ulong = 0x8B1C; +pub const SIOCGIWNICKN: c_ulong = 0x8B1D; + +pub const SIOCSIWRATE: c_ulong = 0x8B20; +pub const SIOCGIWRATE: c_ulong = 0x8B21; +pub const SIOCSIWRTS: c_ulong = 0x8B22; +pub const SIOCGIWRTS: c_ulong = 0x8B23; +pub const SIOCSIWFRAG: c_ulong = 0x8B24; +pub const SIOCGIWFRAG: c_ulong = 0x8B25; +pub const SIOCSIWTXPOW: c_ulong = 0x8B26; +pub const SIOCGIWTXPOW: c_ulong = 0x8B27; +pub const SIOCSIWRETRY: c_ulong = 0x8B28; +pub const SIOCGIWRETRY: c_ulong = 0x8B29; + +pub const SIOCSIWENCODE: c_ulong = 0x8B2A; +pub const SIOCGIWENCODE: c_ulong = 0x8B2B; + +pub const SIOCSIWPOWER: c_ulong = 0x8B2C; +pub const SIOCGIWPOWER: c_ulong = 0x8B2D; + +pub const SIOCSIWGENIE: c_ulong = 0x8B30; +pub const SIOCGIWGENIE: c_ulong = 0x8B31; + +pub const SIOCSIWMLME: c_ulong = 0x8B16; + +pub const SIOCSIWAUTH: c_ulong = 0x8B32; +pub const SIOCGIWAUTH: c_ulong = 0x8B33; + +pub const SIOCSIWENCODEEXT: c_ulong = 0x8B34; +pub const SIOCGIWENCODEEXT: c_ulong = 0x8B35; + +pub const SIOCSIWPMKSA: c_ulong = 0x8B36; + +pub const SIOCIWFIRSTPRIV: c_ulong = 0x8BE0; +pub const SIOCIWLASTPRIV: c_ulong = 0x8BFF; + +pub const SIOCIWFIRST: c_ulong = 0x8B00; +pub const SIOCIWLAST: c_ulong = SIOCIWLASTPRIV; + +pub const IWEVTXDROP: c_ulong = 0x8C00; +pub const IWEVQUAL: c_ulong = 0x8C01; +pub const IWEVCUSTOM: c_ulong = 0x8C02; +pub const IWEVREGISTERED: c_ulong = 0x8C03; +pub const IWEVEXPIRED: c_ulong = 0x8C04; +pub const IWEVGENIE: c_ulong = 0x8C05; +pub const IWEVMICHAELMICFAILURE: c_ulong = 0x8C06; +pub const IWEVASSOCREQIE: c_ulong = 0x8C07; +pub const IWEVASSOCRESPIE: c_ulong = 0x8C08; +pub const IWEVPMKIDCAND: c_ulong = 0x8C09; +pub const IWEVFIRST: c_ulong = 0x8C00; + +pub const IW_PRIV_TYPE_MASK: c_ulong = 0x7000; +pub const IW_PRIV_TYPE_NONE: c_ulong = 0x0000; +pub const IW_PRIV_TYPE_BYTE: c_ulong = 0x1000; +pub const IW_PRIV_TYPE_CHAR: c_ulong = 0x2000; +pub const IW_PRIV_TYPE_INT: c_ulong = 0x4000; +pub const IW_PRIV_TYPE_FLOAT: c_ulong = 0x5000; +pub const IW_PRIV_TYPE_ADDR: c_ulong = 0x6000; + +pub const IW_PRIV_SIZE_FIXED: c_ulong = 0x0800; + +pub const IW_PRIV_SIZE_MASK: c_ulong = 0x07FF; pub const IW_MAX_FREQUENCIES: usize = 32; pub const IW_MAX_BITRATES: usize = 32; @@ -4064,100 +4068,100 @@ pub const IW_MODE_SECOND: usize = 5; pub const IW_MODE_MONITOR: usize = 6; pub const IW_MODE_MESH: usize = 7; -pub const IW_QUAL_QUAL_UPDATED: ::c_ulong = 0x01; -pub const IW_QUAL_LEVEL_UPDATED: ::c_ulong = 0x02; -pub const IW_QUAL_NOISE_UPDATED: ::c_ulong = 0x04; -pub const IW_QUAL_ALL_UPDATED: ::c_ulong = 0x07; -pub const IW_QUAL_DBM: ::c_ulong = 0x08; -pub const IW_QUAL_QUAL_INVALID: ::c_ulong = 0x10; -pub const IW_QUAL_LEVEL_INVALID: ::c_ulong = 0x20; -pub const IW_QUAL_NOISE_INVALID: ::c_ulong = 0x40; -pub const IW_QUAL_RCPI: ::c_ulong = 0x80; -pub const IW_QUAL_ALL_INVALID: ::c_ulong = 0x70; +pub const IW_QUAL_QUAL_UPDATED: c_ulong = 0x01; +pub const IW_QUAL_LEVEL_UPDATED: c_ulong = 0x02; +pub const IW_QUAL_NOISE_UPDATED: c_ulong = 0x04; +pub const IW_QUAL_ALL_UPDATED: c_ulong = 0x07; +pub const IW_QUAL_DBM: c_ulong = 0x08; +pub const IW_QUAL_QUAL_INVALID: c_ulong = 0x10; +pub const IW_QUAL_LEVEL_INVALID: c_ulong = 0x20; +pub const IW_QUAL_NOISE_INVALID: c_ulong = 0x40; +pub const IW_QUAL_RCPI: c_ulong = 0x80; +pub const IW_QUAL_ALL_INVALID: c_ulong = 0x70; -pub const IW_FREQ_AUTO: ::c_ulong = 0x00; -pub const IW_FREQ_FIXED: ::c_ulong = 0x01; +pub const IW_FREQ_AUTO: c_ulong = 0x00; +pub const IW_FREQ_FIXED: c_ulong = 0x01; pub const IW_MAX_ENCODING_SIZES: usize = 8; pub const IW_ENCODING_TOKEN_MAX: usize = 64; -pub const IW_ENCODE_INDEX: ::c_ulong = 0x00FF; -pub const IW_ENCODE_FLAGS: ::c_ulong = 0xFF00; -pub const IW_ENCODE_MODE: ::c_ulong = 0xF000; -pub const IW_ENCODE_DISABLED: ::c_ulong = 0x8000; -pub const IW_ENCODE_ENABLED: ::c_ulong = 0x0000; -pub const IW_ENCODE_RESTRICTED: ::c_ulong = 0x4000; -pub const IW_ENCODE_OPEN: ::c_ulong = 0x2000; -pub const IW_ENCODE_NOKEY: ::c_ulong = 0x0800; -pub const IW_ENCODE_TEMP: ::c_ulong = 0x0400; - -pub const IW_POWER_ON: ::c_ulong = 0x0000; -pub const IW_POWER_TYPE: ::c_ulong = 0xF000; -pub const IW_POWER_PERIOD: ::c_ulong = 0x1000; -pub const IW_POWER_TIMEOUT: ::c_ulong = 0x2000; -pub const IW_POWER_MODE: ::c_ulong = 0x0F00; -pub const IW_POWER_UNICAST_R: ::c_ulong = 0x0100; -pub const IW_POWER_MULTICAST_R: ::c_ulong = 0x0200; -pub const IW_POWER_ALL_R: ::c_ulong = 0x0300; -pub const IW_POWER_FORCE_S: ::c_ulong = 0x0400; -pub const IW_POWER_REPEATER: ::c_ulong = 0x0800; -pub const IW_POWER_MODIFIER: ::c_ulong = 0x000F; -pub const IW_POWER_MIN: ::c_ulong = 0x0001; -pub const IW_POWER_MAX: ::c_ulong = 0x0002; -pub const IW_POWER_RELATIVE: ::c_ulong = 0x0004; - -pub const IW_TXPOW_TYPE: ::c_ulong = 0x00FF; -pub const IW_TXPOW_DBM: ::c_ulong = 0x0000; -pub const IW_TXPOW_MWATT: ::c_ulong = 0x0001; -pub const IW_TXPOW_RELATIVE: ::c_ulong = 0x0002; -pub const IW_TXPOW_RANGE: ::c_ulong = 0x1000; - -pub const IW_RETRY_ON: ::c_ulong = 0x0000; -pub const IW_RETRY_TYPE: ::c_ulong = 0xF000; -pub const IW_RETRY_LIMIT: ::c_ulong = 0x1000; -pub const IW_RETRY_LIFETIME: ::c_ulong = 0x2000; -pub const IW_RETRY_MODIFIER: ::c_ulong = 0x00FF; -pub const IW_RETRY_MIN: ::c_ulong = 0x0001; -pub const IW_RETRY_MAX: ::c_ulong = 0x0002; -pub const IW_RETRY_RELATIVE: ::c_ulong = 0x0004; -pub const IW_RETRY_SHORT: ::c_ulong = 0x0010; -pub const IW_RETRY_LONG: ::c_ulong = 0x0020; - -pub const IW_SCAN_DEFAULT: ::c_ulong = 0x0000; -pub const IW_SCAN_ALL_ESSID: ::c_ulong = 0x0001; -pub const IW_SCAN_THIS_ESSID: ::c_ulong = 0x0002; -pub const IW_SCAN_ALL_FREQ: ::c_ulong = 0x0004; -pub const IW_SCAN_THIS_FREQ: ::c_ulong = 0x0008; -pub const IW_SCAN_ALL_MODE: ::c_ulong = 0x0010; -pub const IW_SCAN_THIS_MODE: ::c_ulong = 0x0020; -pub const IW_SCAN_ALL_RATE: ::c_ulong = 0x0040; -pub const IW_SCAN_THIS_RATE: ::c_ulong = 0x0080; +pub const IW_ENCODE_INDEX: c_ulong = 0x00FF; +pub const IW_ENCODE_FLAGS: c_ulong = 0xFF00; +pub const IW_ENCODE_MODE: c_ulong = 0xF000; +pub const IW_ENCODE_DISABLED: c_ulong = 0x8000; +pub const IW_ENCODE_ENABLED: c_ulong = 0x0000; +pub const IW_ENCODE_RESTRICTED: c_ulong = 0x4000; +pub const IW_ENCODE_OPEN: c_ulong = 0x2000; +pub const IW_ENCODE_NOKEY: c_ulong = 0x0800; +pub const IW_ENCODE_TEMP: c_ulong = 0x0400; + +pub const IW_POWER_ON: c_ulong = 0x0000; +pub const IW_POWER_TYPE: c_ulong = 0xF000; +pub const IW_POWER_PERIOD: c_ulong = 0x1000; +pub const IW_POWER_TIMEOUT: c_ulong = 0x2000; +pub const IW_POWER_MODE: c_ulong = 0x0F00; +pub const IW_POWER_UNICAST_R: c_ulong = 0x0100; +pub const IW_POWER_MULTICAST_R: c_ulong = 0x0200; +pub const IW_POWER_ALL_R: c_ulong = 0x0300; +pub const IW_POWER_FORCE_S: c_ulong = 0x0400; +pub const IW_POWER_REPEATER: c_ulong = 0x0800; +pub const IW_POWER_MODIFIER: c_ulong = 0x000F; +pub const IW_POWER_MIN: c_ulong = 0x0001; +pub const IW_POWER_MAX: c_ulong = 0x0002; +pub const IW_POWER_RELATIVE: c_ulong = 0x0004; + +pub const IW_TXPOW_TYPE: c_ulong = 0x00FF; +pub const IW_TXPOW_DBM: c_ulong = 0x0000; +pub const IW_TXPOW_MWATT: c_ulong = 0x0001; +pub const IW_TXPOW_RELATIVE: c_ulong = 0x0002; +pub const IW_TXPOW_RANGE: c_ulong = 0x1000; + +pub const IW_RETRY_ON: c_ulong = 0x0000; +pub const IW_RETRY_TYPE: c_ulong = 0xF000; +pub const IW_RETRY_LIMIT: c_ulong = 0x1000; +pub const IW_RETRY_LIFETIME: c_ulong = 0x2000; +pub const IW_RETRY_MODIFIER: c_ulong = 0x00FF; +pub const IW_RETRY_MIN: c_ulong = 0x0001; +pub const IW_RETRY_MAX: c_ulong = 0x0002; +pub const IW_RETRY_RELATIVE: c_ulong = 0x0004; +pub const IW_RETRY_SHORT: c_ulong = 0x0010; +pub const IW_RETRY_LONG: c_ulong = 0x0020; + +pub const IW_SCAN_DEFAULT: c_ulong = 0x0000; +pub const IW_SCAN_ALL_ESSID: c_ulong = 0x0001; +pub const IW_SCAN_THIS_ESSID: c_ulong = 0x0002; +pub const IW_SCAN_ALL_FREQ: c_ulong = 0x0004; +pub const IW_SCAN_THIS_FREQ: c_ulong = 0x0008; +pub const IW_SCAN_ALL_MODE: c_ulong = 0x0010; +pub const IW_SCAN_THIS_MODE: c_ulong = 0x0020; +pub const IW_SCAN_ALL_RATE: c_ulong = 0x0040; +pub const IW_SCAN_THIS_RATE: c_ulong = 0x0080; pub const IW_SCAN_TYPE_ACTIVE: usize = 0; pub const IW_SCAN_TYPE_PASSIVE: usize = 1; pub const IW_SCAN_MAX_DATA: usize = 4096; -pub const IW_SCAN_CAPA_NONE: ::c_ulong = 0x00; -pub const IW_SCAN_CAPA_ESSID: ::c_ulong = 0x01; -pub const IW_SCAN_CAPA_BSSID: ::c_ulong = 0x02; -pub const IW_SCAN_CAPA_CHANNEL: ::c_ulong = 0x04; -pub const IW_SCAN_CAPA_MODE: ::c_ulong = 0x08; -pub const IW_SCAN_CAPA_RATE: ::c_ulong = 0x10; -pub const IW_SCAN_CAPA_TYPE: ::c_ulong = 0x20; -pub const IW_SCAN_CAPA_TIME: ::c_ulong = 0x40; +pub const IW_SCAN_CAPA_NONE: c_ulong = 0x00; +pub const IW_SCAN_CAPA_ESSID: c_ulong = 0x01; +pub const IW_SCAN_CAPA_BSSID: c_ulong = 0x02; +pub const IW_SCAN_CAPA_CHANNEL: c_ulong = 0x04; +pub const IW_SCAN_CAPA_MODE: c_ulong = 0x08; +pub const IW_SCAN_CAPA_RATE: c_ulong = 0x10; +pub const IW_SCAN_CAPA_TYPE: c_ulong = 0x20; +pub const IW_SCAN_CAPA_TIME: c_ulong = 0x40; -pub const IW_CUSTOM_MAX: ::c_ulong = 256; +pub const IW_CUSTOM_MAX: c_ulong = 256; -pub const IW_GENERIC_IE_MAX: ::c_ulong = 1024; +pub const IW_GENERIC_IE_MAX: c_ulong = 1024; -pub const IW_MLME_DEAUTH: ::c_ulong = 0; -pub const IW_MLME_DISASSOC: ::c_ulong = 1; -pub const IW_MLME_AUTH: ::c_ulong = 2; -pub const IW_MLME_ASSOC: ::c_ulong = 3; +pub const IW_MLME_DEAUTH: c_ulong = 0; +pub const IW_MLME_DISASSOC: c_ulong = 1; +pub const IW_MLME_AUTH: c_ulong = 2; +pub const IW_MLME_ASSOC: c_ulong = 3; -pub const IW_AUTH_INDEX: ::c_ulong = 0x0FFF; -pub const IW_AUTH_FLAGS: ::c_ulong = 0xF000; +pub const IW_AUTH_INDEX: c_ulong = 0x0FFF; +pub const IW_AUTH_FLAGS: c_ulong = 0xF000; pub const IW_AUTH_WPA_VERSION: usize = 0; pub const IW_AUTH_CIPHER_PAIRWISE: usize = 1; @@ -4173,23 +4177,23 @@ pub const IW_AUTH_PRIVACY_INVOKED: usize = 10; pub const IW_AUTH_CIPHER_GROUP_MGMT: usize = 11; pub const IW_AUTH_MFP: usize = 12; -pub const IW_AUTH_WPA_VERSION_DISABLED: ::c_ulong = 0x00000001; -pub const IW_AUTH_WPA_VERSION_WPA: ::c_ulong = 0x00000002; -pub const IW_AUTH_WPA_VERSION_WPA2: ::c_ulong = 0x00000004; +pub const IW_AUTH_WPA_VERSION_DISABLED: c_ulong = 0x00000001; +pub const IW_AUTH_WPA_VERSION_WPA: c_ulong = 0x00000002; +pub const IW_AUTH_WPA_VERSION_WPA2: c_ulong = 0x00000004; -pub const IW_AUTH_CIPHER_NONE: ::c_ulong = 0x00000001; -pub const IW_AUTH_CIPHER_WEP40: ::c_ulong = 0x00000002; -pub const IW_AUTH_CIPHER_TKIP: ::c_ulong = 0x00000004; -pub const IW_AUTH_CIPHER_CCMP: ::c_ulong = 0x00000008; -pub const IW_AUTH_CIPHER_WEP104: ::c_ulong = 0x00000010; -pub const IW_AUTH_CIPHER_AES_CMAC: ::c_ulong = 0x00000020; +pub const IW_AUTH_CIPHER_NONE: c_ulong = 0x00000001; +pub const IW_AUTH_CIPHER_WEP40: c_ulong = 0x00000002; +pub const IW_AUTH_CIPHER_TKIP: c_ulong = 0x00000004; +pub const IW_AUTH_CIPHER_CCMP: c_ulong = 0x00000008; +pub const IW_AUTH_CIPHER_WEP104: c_ulong = 0x00000010; +pub const IW_AUTH_CIPHER_AES_CMAC: c_ulong = 0x00000020; pub const IW_AUTH_KEY_MGMT_802_1X: usize = 1; pub const IW_AUTH_KEY_MGMT_PSK: usize = 2; -pub const IW_AUTH_ALG_OPEN_SYSTEM: ::c_ulong = 0x00000001; -pub const IW_AUTH_ALG_SHARED_KEY: ::c_ulong = 0x00000002; -pub const IW_AUTH_ALG_LEAP: ::c_ulong = 0x00000004; +pub const IW_AUTH_ALG_OPEN_SYSTEM: c_ulong = 0x00000001; +pub const IW_AUTH_ALG_SHARED_KEY: c_ulong = 0x00000002; +pub const IW_AUTH_ALG_LEAP: c_ulong = 0x00000004; pub const IW_AUTH_ROAMING_ENABLE: usize = 0; pub const IW_AUTH_ROAMING_DISABLE: usize = 1; @@ -4207,22 +4211,22 @@ pub const IW_ENCODE_ALG_CCMP: usize = 3; pub const IW_ENCODE_ALG_PMK: usize = 4; pub const IW_ENCODE_ALG_AES_CMAC: usize = 5; -pub const IW_ENCODE_EXT_TX_SEQ_VALID: ::c_ulong = 0x00000001; -pub const IW_ENCODE_EXT_RX_SEQ_VALID: ::c_ulong = 0x00000002; -pub const IW_ENCODE_EXT_GROUP_KEY: ::c_ulong = 0x00000004; -pub const IW_ENCODE_EXT_SET_TX_KEY: ::c_ulong = 0x00000008; +pub const IW_ENCODE_EXT_TX_SEQ_VALID: c_ulong = 0x00000001; +pub const IW_ENCODE_EXT_RX_SEQ_VALID: c_ulong = 0x00000002; +pub const IW_ENCODE_EXT_GROUP_KEY: c_ulong = 0x00000004; +pub const IW_ENCODE_EXT_SET_TX_KEY: c_ulong = 0x00000008; -pub const IW_MICFAILURE_KEY_ID: ::c_ulong = 0x00000003; -pub const IW_MICFAILURE_GROUP: ::c_ulong = 0x00000004; -pub const IW_MICFAILURE_PAIRWISE: ::c_ulong = 0x00000008; -pub const IW_MICFAILURE_STAKEY: ::c_ulong = 0x00000010; -pub const IW_MICFAILURE_COUNT: ::c_ulong = 0x00000060; +pub const IW_MICFAILURE_KEY_ID: c_ulong = 0x00000003; +pub const IW_MICFAILURE_GROUP: c_ulong = 0x00000004; +pub const IW_MICFAILURE_PAIRWISE: c_ulong = 0x00000008; +pub const IW_MICFAILURE_STAKEY: c_ulong = 0x00000010; +pub const IW_MICFAILURE_COUNT: c_ulong = 0x00000060; -pub const IW_ENC_CAPA_WPA: ::c_ulong = 0x00000001; -pub const IW_ENC_CAPA_WPA2: ::c_ulong = 0x00000002; -pub const IW_ENC_CAPA_CIPHER_TKIP: ::c_ulong = 0x00000004; -pub const IW_ENC_CAPA_CIPHER_CCMP: ::c_ulong = 0x00000008; -pub const IW_ENC_CAPA_4WAY_HANDSHAKE: ::c_ulong = 0x00000010; +pub const IW_ENC_CAPA_WPA: c_ulong = 0x00000001; +pub const IW_ENC_CAPA_WPA2: c_ulong = 0x00000002; +pub const IW_ENC_CAPA_CIPHER_TKIP: c_ulong = 0x00000004; +pub const IW_ENC_CAPA_CIPHER_CCMP: c_ulong = 0x00000008; +pub const IW_ENC_CAPA_4WAY_HANDSHAKE: c_ulong = 0x00000010; pub const IW_EVENT_CAPA_K_0: c_ulong = 0x4000050; // IW_EVENT_CAPA_MASK(0x8B04) | IW_EVENT_CAPA_MASK(0x8B06) | IW_EVENT_CAPA_MASK(0x8B1A); pub const IW_EVENT_CAPA_K_1: c_ulong = 0x400; // W_EVENT_CAPA_MASK(0x8B2A); @@ -4233,7 +4237,7 @@ pub const IW_PMKSA_FLUSH: usize = 3; pub const IW_PMKID_LEN: usize = 16; -pub const IW_PMKID_CAND_PREAUTH: ::c_ulong = 0x00000001; +pub const IW_PMKID_CAND_PREAUTH: c_ulong = 0x00000001; pub const IW_EV_LCP_PK_LEN: usize = 4; @@ -4250,23 +4254,23 @@ pub const IPTOS_PREC_MASK: u8 = 0xE0; pub const IPTOS_ECN_NOT_ECT: u8 = 0x00; -pub const RTF_UP: ::c_ushort = 0x0001; -pub const RTF_GATEWAY: ::c_ushort = 0x0002; - -pub const RTF_HOST: ::c_ushort = 0x0004; -pub const RTF_REINSTATE: ::c_ushort = 0x0008; -pub const RTF_DYNAMIC: ::c_ushort = 0x0010; -pub const RTF_MODIFIED: ::c_ushort = 0x0020; -pub const RTF_MTU: ::c_ushort = 0x0040; -pub const RTF_MSS: ::c_ushort = RTF_MTU; -pub const RTF_WINDOW: ::c_ushort = 0x0080; -pub const RTF_IRTT: ::c_ushort = 0x0100; -pub const RTF_REJECT: ::c_ushort = 0x0200; -pub const RTF_STATIC: ::c_ushort = 0x0400; -pub const RTF_XRESOLVE: ::c_ushort = 0x0800; -pub const RTF_NOFORWARD: ::c_ushort = 0x1000; -pub const RTF_THROW: ::c_ushort = 0x2000; -pub const RTF_NOPMTUDISC: ::c_ushort = 0x4000; +pub const RTF_UP: c_ushort = 0x0001; +pub const RTF_GATEWAY: c_ushort = 0x0002; + +pub const RTF_HOST: c_ushort = 0x0004; +pub const RTF_REINSTATE: c_ushort = 0x0008; +pub const RTF_DYNAMIC: c_ushort = 0x0010; +pub const RTF_MODIFIED: c_ushort = 0x0020; +pub const RTF_MTU: c_ushort = 0x0040; +pub const RTF_MSS: c_ushort = RTF_MTU; +pub const RTF_WINDOW: c_ushort = 0x0080; +pub const RTF_IRTT: c_ushort = 0x0100; +pub const RTF_REJECT: c_ushort = 0x0200; +pub const RTF_STATIC: c_ushort = 0x0400; +pub const RTF_XRESOLVE: c_ushort = 0x0800; +pub const RTF_NOFORWARD: c_ushort = 0x1000; +pub const RTF_THROW: c_ushort = 0x2000; +pub const RTF_NOPMTUDISC: c_ushort = 0x4000; pub const RTF_DEFAULT: u32 = 0x00010000; pub const RTF_ALLONLINK: u32 = 0x00020000; @@ -4314,86 +4318,86 @@ pub const NTF_MASTER: u8 = 0x04; pub const NTF_PROXY: u8 = 0x08; pub const NTF_ROUTER: u8 = 0x80; -pub const NDA_UNSPEC: ::c_ushort = 0; -pub const NDA_DST: ::c_ushort = 1; -pub const NDA_LLADDR: ::c_ushort = 2; -pub const NDA_CACHEINFO: ::c_ushort = 3; -pub const NDA_PROBES: ::c_ushort = 4; -pub const NDA_VLAN: ::c_ushort = 5; -pub const NDA_PORT: ::c_ushort = 6; -pub const NDA_VNI: ::c_ushort = 7; -pub const NDA_IFINDEX: ::c_ushort = 8; +pub const NDA_UNSPEC: c_ushort = 0; +pub const NDA_DST: c_ushort = 1; +pub const NDA_LLADDR: c_ushort = 2; +pub const NDA_CACHEINFO: c_ushort = 3; +pub const NDA_PROBES: c_ushort = 4; +pub const NDA_VLAN: c_ushort = 5; +pub const NDA_PORT: c_ushort = 6; +pub const NDA_VNI: c_ushort = 7; +pub const NDA_IFINDEX: c_ushort = 8; // linux/netlink.h -pub const NLA_ALIGNTO: ::c_int = 4; - -pub const NETLINK_ROUTE: ::c_int = 0; -pub const NETLINK_UNUSED: ::c_int = 1; -pub const NETLINK_USERSOCK: ::c_int = 2; -pub const NETLINK_FIREWALL: ::c_int = 3; -pub const NETLINK_SOCK_DIAG: ::c_int = 4; -pub const NETLINK_NFLOG: ::c_int = 5; -pub const NETLINK_XFRM: ::c_int = 6; -pub const NETLINK_SELINUX: ::c_int = 7; -pub const NETLINK_ISCSI: ::c_int = 8; -pub const NETLINK_AUDIT: ::c_int = 9; -pub const NETLINK_FIB_LOOKUP: ::c_int = 10; -pub const NETLINK_CONNECTOR: ::c_int = 11; -pub const NETLINK_NETFILTER: ::c_int = 12; -pub const NETLINK_IP6_FW: ::c_int = 13; -pub const NETLINK_DNRTMSG: ::c_int = 14; -pub const NETLINK_KOBJECT_UEVENT: ::c_int = 15; -pub const NETLINK_GENERIC: ::c_int = 16; -pub const NETLINK_SCSITRANSPORT: ::c_int = 18; -pub const NETLINK_ECRYPTFS: ::c_int = 19; -pub const NETLINK_RDMA: ::c_int = 20; -pub const NETLINK_CRYPTO: ::c_int = 21; -pub const NETLINK_INET_DIAG: ::c_int = NETLINK_SOCK_DIAG; - -pub const NLM_F_REQUEST: ::c_int = 1; -pub const NLM_F_MULTI: ::c_int = 2; -pub const NLM_F_ACK: ::c_int = 4; -pub const NLM_F_ECHO: ::c_int = 8; -pub const NLM_F_DUMP_INTR: ::c_int = 16; -pub const NLM_F_DUMP_FILTERED: ::c_int = 32; - -pub const NLM_F_ROOT: ::c_int = 0x100; -pub const NLM_F_MATCH: ::c_int = 0x200; -pub const NLM_F_ATOMIC: ::c_int = 0x400; -pub const NLM_F_DUMP: ::c_int = NLM_F_ROOT | NLM_F_MATCH; - -pub const NLM_F_REPLACE: ::c_int = 0x100; -pub const NLM_F_EXCL: ::c_int = 0x200; -pub const NLM_F_CREATE: ::c_int = 0x400; -pub const NLM_F_APPEND: ::c_int = 0x800; - -pub const NETLINK_ADD_MEMBERSHIP: ::c_int = 1; -pub const NETLINK_DROP_MEMBERSHIP: ::c_int = 2; -pub const NETLINK_PKTINFO: ::c_int = 3; -pub const NETLINK_BROADCAST_ERROR: ::c_int = 4; -pub const NETLINK_NO_ENOBUFS: ::c_int = 5; -pub const NETLINK_RX_RING: ::c_int = 6; -pub const NETLINK_TX_RING: ::c_int = 7; -pub const NETLINK_LISTEN_ALL_NSID: ::c_int = 8; -pub const NETLINK_LIST_MEMBERSHIPS: ::c_int = 9; -pub const NETLINK_CAP_ACK: ::c_int = 10; -pub const NETLINK_EXT_ACK: ::c_int = 11; -pub const NETLINK_GET_STRICT_CHK: ::c_int = 12; - -pub const NLA_F_NESTED: ::c_int = 1 << 15; -pub const NLA_F_NET_BYTEORDER: ::c_int = 1 << 14; -pub const NLA_TYPE_MASK: ::c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER); +pub const NLA_ALIGNTO: c_int = 4; + +pub const NETLINK_ROUTE: c_int = 0; +pub const NETLINK_UNUSED: c_int = 1; +pub const NETLINK_USERSOCK: c_int = 2; +pub const NETLINK_FIREWALL: c_int = 3; +pub const NETLINK_SOCK_DIAG: c_int = 4; +pub const NETLINK_NFLOG: c_int = 5; +pub const NETLINK_XFRM: c_int = 6; +pub const NETLINK_SELINUX: c_int = 7; +pub const NETLINK_ISCSI: c_int = 8; +pub const NETLINK_AUDIT: c_int = 9; +pub const NETLINK_FIB_LOOKUP: c_int = 10; +pub const NETLINK_CONNECTOR: c_int = 11; +pub const NETLINK_NETFILTER: c_int = 12; +pub const NETLINK_IP6_FW: c_int = 13; +pub const NETLINK_DNRTMSG: c_int = 14; +pub const NETLINK_KOBJECT_UEVENT: c_int = 15; +pub const NETLINK_GENERIC: c_int = 16; +pub const NETLINK_SCSITRANSPORT: c_int = 18; +pub const NETLINK_ECRYPTFS: c_int = 19; +pub const NETLINK_RDMA: c_int = 20; +pub const NETLINK_CRYPTO: c_int = 21; +pub const NETLINK_INET_DIAG: c_int = NETLINK_SOCK_DIAG; + +pub const NLM_F_REQUEST: c_int = 1; +pub const NLM_F_MULTI: c_int = 2; +pub const NLM_F_ACK: c_int = 4; +pub const NLM_F_ECHO: c_int = 8; +pub const NLM_F_DUMP_INTR: c_int = 16; +pub const NLM_F_DUMP_FILTERED: c_int = 32; + +pub const NLM_F_ROOT: c_int = 0x100; +pub const NLM_F_MATCH: c_int = 0x200; +pub const NLM_F_ATOMIC: c_int = 0x400; +pub const NLM_F_DUMP: c_int = NLM_F_ROOT | NLM_F_MATCH; + +pub const NLM_F_REPLACE: c_int = 0x100; +pub const NLM_F_EXCL: c_int = 0x200; +pub const NLM_F_CREATE: c_int = 0x400; +pub const NLM_F_APPEND: c_int = 0x800; + +pub const NETLINK_ADD_MEMBERSHIP: c_int = 1; +pub const NETLINK_DROP_MEMBERSHIP: c_int = 2; +pub const NETLINK_PKTINFO: c_int = 3; +pub const NETLINK_BROADCAST_ERROR: c_int = 4; +pub const NETLINK_NO_ENOBUFS: c_int = 5; +pub const NETLINK_RX_RING: c_int = 6; +pub const NETLINK_TX_RING: c_int = 7; +pub const NETLINK_LISTEN_ALL_NSID: c_int = 8; +pub const NETLINK_LIST_MEMBERSHIPS: c_int = 9; +pub const NETLINK_CAP_ACK: c_int = 10; +pub const NETLINK_EXT_ACK: c_int = 11; +pub const NETLINK_GET_STRICT_CHK: c_int = 12; + +pub const NLA_F_NESTED: c_int = 1 << 15; +pub const NLA_F_NET_BYTEORDER: c_int = 1 << 14; +pub const NLA_TYPE_MASK: c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER); // linux/rtnetlink.h -pub const TCA_UNSPEC: ::c_ushort = 0; -pub const TCA_KIND: ::c_ushort = 1; -pub const TCA_OPTIONS: ::c_ushort = 2; -pub const TCA_STATS: ::c_ushort = 3; -pub const TCA_XSTATS: ::c_ushort = 4; -pub const TCA_RATE: ::c_ushort = 5; -pub const TCA_FCNT: ::c_ushort = 6; -pub const TCA_STATS2: ::c_ushort = 7; -pub const TCA_STAB: ::c_ushort = 8; +pub const TCA_UNSPEC: c_ushort = 0; +pub const TCA_KIND: c_ushort = 1; +pub const TCA_OPTIONS: c_ushort = 2; +pub const TCA_STATS: c_ushort = 3; +pub const TCA_XSTATS: c_ushort = 4; +pub const TCA_RATE: c_ushort = 5; +pub const TCA_FCNT: c_ushort = 6; +pub const TCA_STATS2: c_ushort = 7; +pub const TCA_STAB: c_ushort = 8; pub const RTM_NEWLINK: u16 = 16; pub const RTM_DELLINK: u16 = 17; @@ -4444,62 +4448,62 @@ pub const RTM_NEWNSID: u16 = 88; pub const RTM_DELNSID: u16 = 89; pub const RTM_GETNSID: u16 = 90; -pub const RTM_F_NOTIFY: ::c_uint = 0x100; -pub const RTM_F_CLONED: ::c_uint = 0x200; -pub const RTM_F_EQUALIZE: ::c_uint = 0x400; -pub const RTM_F_PREFIX: ::c_uint = 0x800; - -pub const RTA_UNSPEC: ::c_ushort = 0; -pub const RTA_DST: ::c_ushort = 1; -pub const RTA_SRC: ::c_ushort = 2; -pub const RTA_IIF: ::c_ushort = 3; -pub const RTA_OIF: ::c_ushort = 4; -pub const RTA_GATEWAY: ::c_ushort = 5; -pub const RTA_PRIORITY: ::c_ushort = 6; -pub const RTA_PREFSRC: ::c_ushort = 7; -pub const RTA_METRICS: ::c_ushort = 8; -pub const RTA_MULTIPATH: ::c_ushort = 9; -pub const RTA_PROTOINFO: ::c_ushort = 10; // No longer used -pub const RTA_FLOW: ::c_ushort = 11; -pub const RTA_CACHEINFO: ::c_ushort = 12; -pub const RTA_SESSION: ::c_ushort = 13; // No longer used -pub const RTA_MP_ALGO: ::c_ushort = 14; // No longer used -pub const RTA_TABLE: ::c_ushort = 15; -pub const RTA_MARK: ::c_ushort = 16; -pub const RTA_MFC_STATS: ::c_ushort = 17; - -pub const RTN_UNSPEC: ::c_uchar = 0; -pub const RTN_UNICAST: ::c_uchar = 1; -pub const RTN_LOCAL: ::c_uchar = 2; -pub const RTN_BROADCAST: ::c_uchar = 3; -pub const RTN_ANYCAST: ::c_uchar = 4; -pub const RTN_MULTICAST: ::c_uchar = 5; -pub const RTN_BLACKHOLE: ::c_uchar = 6; -pub const RTN_UNREACHABLE: ::c_uchar = 7; -pub const RTN_PROHIBIT: ::c_uchar = 8; -pub const RTN_THROW: ::c_uchar = 9; -pub const RTN_NAT: ::c_uchar = 10; -pub const RTN_XRESOLVE: ::c_uchar = 11; - -pub const RTPROT_UNSPEC: ::c_uchar = 0; -pub const RTPROT_REDIRECT: ::c_uchar = 1; -pub const RTPROT_KERNEL: ::c_uchar = 2; -pub const RTPROT_BOOT: ::c_uchar = 3; -pub const RTPROT_STATIC: ::c_uchar = 4; - -pub const RT_SCOPE_UNIVERSE: ::c_uchar = 0; -pub const RT_SCOPE_SITE: ::c_uchar = 200; -pub const RT_SCOPE_LINK: ::c_uchar = 253; -pub const RT_SCOPE_HOST: ::c_uchar = 254; -pub const RT_SCOPE_NOWHERE: ::c_uchar = 255; - -pub const RT_TABLE_UNSPEC: ::c_uchar = 0; -pub const RT_TABLE_COMPAT: ::c_uchar = 252; -pub const RT_TABLE_DEFAULT: ::c_uchar = 253; -pub const RT_TABLE_MAIN: ::c_uchar = 254; -pub const RT_TABLE_LOCAL: ::c_uchar = 255; - -pub const RTMSG_OVERRUN: u32 = ::NLMSG_OVERRUN as u32; +pub const RTM_F_NOTIFY: c_uint = 0x100; +pub const RTM_F_CLONED: c_uint = 0x200; +pub const RTM_F_EQUALIZE: c_uint = 0x400; +pub const RTM_F_PREFIX: c_uint = 0x800; + +pub const RTA_UNSPEC: c_ushort = 0; +pub const RTA_DST: c_ushort = 1; +pub const RTA_SRC: c_ushort = 2; +pub const RTA_IIF: c_ushort = 3; +pub const RTA_OIF: c_ushort = 4; +pub const RTA_GATEWAY: c_ushort = 5; +pub const RTA_PRIORITY: c_ushort = 6; +pub const RTA_PREFSRC: c_ushort = 7; +pub const RTA_METRICS: c_ushort = 8; +pub const RTA_MULTIPATH: c_ushort = 9; +pub const RTA_PROTOINFO: c_ushort = 10; // No longer used +pub const RTA_FLOW: c_ushort = 11; +pub const RTA_CACHEINFO: c_ushort = 12; +pub const RTA_SESSION: c_ushort = 13; // No longer used +pub const RTA_MP_ALGO: c_ushort = 14; // No longer used +pub const RTA_TABLE: c_ushort = 15; +pub const RTA_MARK: c_ushort = 16; +pub const RTA_MFC_STATS: c_ushort = 17; + +pub const RTN_UNSPEC: c_uchar = 0; +pub const RTN_UNICAST: c_uchar = 1; +pub const RTN_LOCAL: c_uchar = 2; +pub const RTN_BROADCAST: c_uchar = 3; +pub const RTN_ANYCAST: c_uchar = 4; +pub const RTN_MULTICAST: c_uchar = 5; +pub const RTN_BLACKHOLE: c_uchar = 6; +pub const RTN_UNREACHABLE: c_uchar = 7; +pub const RTN_PROHIBIT: c_uchar = 8; +pub const RTN_THROW: c_uchar = 9; +pub const RTN_NAT: c_uchar = 10; +pub const RTN_XRESOLVE: c_uchar = 11; + +pub const RTPROT_UNSPEC: c_uchar = 0; +pub const RTPROT_REDIRECT: c_uchar = 1; +pub const RTPROT_KERNEL: c_uchar = 2; +pub const RTPROT_BOOT: c_uchar = 3; +pub const RTPROT_STATIC: c_uchar = 4; + +pub const RT_SCOPE_UNIVERSE: c_uchar = 0; +pub const RT_SCOPE_SITE: c_uchar = 200; +pub const RT_SCOPE_LINK: c_uchar = 253; +pub const RT_SCOPE_HOST: c_uchar = 254; +pub const RT_SCOPE_NOWHERE: c_uchar = 255; + +pub const RT_TABLE_UNSPEC: c_uchar = 0; +pub const RT_TABLE_COMPAT: c_uchar = 252; +pub const RT_TABLE_DEFAULT: c_uchar = 253; +pub const RT_TABLE_MAIN: c_uchar = 254; +pub const RT_TABLE_LOCAL: c_uchar = 255; + +pub const RTMSG_OVERRUN: u32 = crate::NLMSG_OVERRUN as u32; pub const RTMSG_NEWDEVICE: u32 = 0x11; pub const RTMSG_DELDEVICE: u32 = 0x12; pub const RTMSG_NEWROUTE: u32 = 0x21; @@ -4510,241 +4514,241 @@ pub const RTMSG_CONTROL: u32 = 0x40; pub const RTMSG_AR_FAILED: u32 = 0x51; pub const MAX_ADDR_LEN: usize = 7; -pub const ARPD_UPDATE: ::c_ushort = 0x01; -pub const ARPD_LOOKUP: ::c_ushort = 0x02; -pub const ARPD_FLUSH: ::c_ushort = 0x03; -pub const ATF_MAGIC: ::c_int = 0x80; - -pub const RTEXT_FILTER_VF: ::c_int = 1 << 0; -pub const RTEXT_FILTER_BRVLAN: ::c_int = 1 << 1; -pub const RTEXT_FILTER_BRVLAN_COMPRESSED: ::c_int = 1 << 2; -pub const RTEXT_FILTER_SKIP_STATS: ::c_int = 1 << 3; -pub const RTEXT_FILTER_MRP: ::c_int = 1 << 4; -pub const RTEXT_FILTER_CFM_CONFIG: ::c_int = 1 << 5; -pub const RTEXT_FILTER_CFM_STATUS: ::c_int = 1 << 6; +pub const ARPD_UPDATE: c_ushort = 0x01; +pub const ARPD_LOOKUP: c_ushort = 0x02; +pub const ARPD_FLUSH: c_ushort = 0x03; +pub const ATF_MAGIC: c_int = 0x80; + +pub const RTEXT_FILTER_VF: c_int = 1 << 0; +pub const RTEXT_FILTER_BRVLAN: c_int = 1 << 1; +pub const RTEXT_FILTER_BRVLAN_COMPRESSED: c_int = 1 << 2; +pub const RTEXT_FILTER_SKIP_STATS: c_int = 1 << 3; +pub const RTEXT_FILTER_MRP: c_int = 1 << 4; +pub const RTEXT_FILTER_CFM_CONFIG: c_int = 1 << 5; +pub const RTEXT_FILTER_CFM_STATUS: c_int = 1 << 6; // userspace compat definitions for RTNLGRP_* -pub const RTMGRP_LINK: ::c_int = 0x00001; -pub const RTMGRP_NOTIFY: ::c_int = 0x00002; -pub const RTMGRP_NEIGH: ::c_int = 0x00004; -pub const RTMGRP_TC: ::c_int = 0x00008; -pub const RTMGRP_IPV4_IFADDR: ::c_int = 0x00010; -pub const RTMGRP_IPV4_MROUTE: ::c_int = 0x00020; -pub const RTMGRP_IPV4_ROUTE: ::c_int = 0x00040; -pub const RTMGRP_IPV4_RULE: ::c_int = 0x00080; -pub const RTMGRP_IPV6_IFADDR: ::c_int = 0x00100; -pub const RTMGRP_IPV6_MROUTE: ::c_int = 0x00200; -pub const RTMGRP_IPV6_ROUTE: ::c_int = 0x00400; -pub const RTMGRP_IPV6_IFINFO: ::c_int = 0x00800; -pub const RTMGRP_DECnet_IFADDR: ::c_int = 0x01000; -pub const RTMGRP_DECnet_ROUTE: ::c_int = 0x04000; -pub const RTMGRP_IPV6_PREFIX: ::c_int = 0x20000; +pub const RTMGRP_LINK: c_int = 0x00001; +pub const RTMGRP_NOTIFY: c_int = 0x00002; +pub const RTMGRP_NEIGH: c_int = 0x00004; +pub const RTMGRP_TC: c_int = 0x00008; +pub const RTMGRP_IPV4_IFADDR: c_int = 0x00010; +pub const RTMGRP_IPV4_MROUTE: c_int = 0x00020; +pub const RTMGRP_IPV4_ROUTE: c_int = 0x00040; +pub const RTMGRP_IPV4_RULE: c_int = 0x00080; +pub const RTMGRP_IPV6_IFADDR: c_int = 0x00100; +pub const RTMGRP_IPV6_MROUTE: c_int = 0x00200; +pub const RTMGRP_IPV6_ROUTE: c_int = 0x00400; +pub const RTMGRP_IPV6_IFINFO: c_int = 0x00800; +pub const RTMGRP_DECnet_IFADDR: c_int = 0x01000; +pub const RTMGRP_DECnet_ROUTE: c_int = 0x04000; +pub const RTMGRP_IPV6_PREFIX: c_int = 0x20000; // enum rtnetlink_groups -pub const RTNLGRP_NONE: ::c_uint = 0x00; -pub const RTNLGRP_LINK: ::c_uint = 0x01; -pub const RTNLGRP_NOTIFY: ::c_uint = 0x02; -pub const RTNLGRP_NEIGH: ::c_uint = 0x03; -pub const RTNLGRP_TC: ::c_uint = 0x04; -pub const RTNLGRP_IPV4_IFADDR: ::c_uint = 0x05; -pub const RTNLGRP_IPV4_MROUTE: ::c_uint = 0x06; -pub const RTNLGRP_IPV4_ROUTE: ::c_uint = 0x07; -pub const RTNLGRP_IPV4_RULE: ::c_uint = 0x08; -pub const RTNLGRP_IPV6_IFADDR: ::c_uint = 0x09; -pub const RTNLGRP_IPV6_MROUTE: ::c_uint = 0x0a; -pub const RTNLGRP_IPV6_ROUTE: ::c_uint = 0x0b; -pub const RTNLGRP_IPV6_IFINFO: ::c_uint = 0x0c; -pub const RTNLGRP_DECnet_IFADDR: ::c_uint = 0x0d; -pub const RTNLGRP_NOP2: ::c_uint = 0x0e; -pub const RTNLGRP_DECnet_ROUTE: ::c_uint = 0x0f; -pub const RTNLGRP_DECnet_RULE: ::c_uint = 0x10; -pub const RTNLGRP_NOP4: ::c_uint = 0x11; -pub const RTNLGRP_IPV6_PREFIX: ::c_uint = 0x12; -pub const RTNLGRP_IPV6_RULE: ::c_uint = 0x13; -pub const RTNLGRP_ND_USEROPT: ::c_uint = 0x14; -pub const RTNLGRP_PHONET_IFADDR: ::c_uint = 0x15; -pub const RTNLGRP_PHONET_ROUTE: ::c_uint = 0x16; -pub const RTNLGRP_DCB: ::c_uint = 0x17; -pub const RTNLGRP_IPV4_NETCONF: ::c_uint = 0x18; -pub const RTNLGRP_IPV6_NETCONF: ::c_uint = 0x19; -pub const RTNLGRP_MDB: ::c_uint = 0x1a; -pub const RTNLGRP_MPLS_ROUTE: ::c_uint = 0x1b; -pub const RTNLGRP_NSID: ::c_uint = 0x1c; -pub const RTNLGRP_MPLS_NETCONF: ::c_uint = 0x1d; -pub const RTNLGRP_IPV4_MROUTE_R: ::c_uint = 0x1e; -pub const RTNLGRP_IPV6_MROUTE_R: ::c_uint = 0x1f; -pub const RTNLGRP_NEXTHOP: ::c_uint = 0x20; -pub const RTNLGRP_BRVLAN: ::c_uint = 0x21; -pub const RTNLGRP_MCTP_IFADDR: ::c_uint = 0x22; -pub const RTNLGRP_TUNNEL: ::c_uint = 0x23; -pub const RTNLGRP_STATS: ::c_uint = 0x24; +pub const RTNLGRP_NONE: c_uint = 0x00; +pub const RTNLGRP_LINK: c_uint = 0x01; +pub const RTNLGRP_NOTIFY: c_uint = 0x02; +pub const RTNLGRP_NEIGH: c_uint = 0x03; +pub const RTNLGRP_TC: c_uint = 0x04; +pub const RTNLGRP_IPV4_IFADDR: c_uint = 0x05; +pub const RTNLGRP_IPV4_MROUTE: c_uint = 0x06; +pub const RTNLGRP_IPV4_ROUTE: c_uint = 0x07; +pub const RTNLGRP_IPV4_RULE: c_uint = 0x08; +pub const RTNLGRP_IPV6_IFADDR: c_uint = 0x09; +pub const RTNLGRP_IPV6_MROUTE: c_uint = 0x0a; +pub const RTNLGRP_IPV6_ROUTE: c_uint = 0x0b; +pub const RTNLGRP_IPV6_IFINFO: c_uint = 0x0c; +pub const RTNLGRP_DECnet_IFADDR: c_uint = 0x0d; +pub const RTNLGRP_NOP2: c_uint = 0x0e; +pub const RTNLGRP_DECnet_ROUTE: c_uint = 0x0f; +pub const RTNLGRP_DECnet_RULE: c_uint = 0x10; +pub const RTNLGRP_NOP4: c_uint = 0x11; +pub const RTNLGRP_IPV6_PREFIX: c_uint = 0x12; +pub const RTNLGRP_IPV6_RULE: c_uint = 0x13; +pub const RTNLGRP_ND_USEROPT: c_uint = 0x14; +pub const RTNLGRP_PHONET_IFADDR: c_uint = 0x15; +pub const RTNLGRP_PHONET_ROUTE: c_uint = 0x16; +pub const RTNLGRP_DCB: c_uint = 0x17; +pub const RTNLGRP_IPV4_NETCONF: c_uint = 0x18; +pub const RTNLGRP_IPV6_NETCONF: c_uint = 0x19; +pub const RTNLGRP_MDB: c_uint = 0x1a; +pub const RTNLGRP_MPLS_ROUTE: c_uint = 0x1b; +pub const RTNLGRP_NSID: c_uint = 0x1c; +pub const RTNLGRP_MPLS_NETCONF: c_uint = 0x1d; +pub const RTNLGRP_IPV4_MROUTE_R: c_uint = 0x1e; +pub const RTNLGRP_IPV6_MROUTE_R: c_uint = 0x1f; +pub const RTNLGRP_NEXTHOP: c_uint = 0x20; +pub const RTNLGRP_BRVLAN: c_uint = 0x21; +pub const RTNLGRP_MCTP_IFADDR: c_uint = 0x22; +pub const RTNLGRP_TUNNEL: c_uint = 0x23; +pub const RTNLGRP_STATS: c_uint = 0x24; // linux/module.h -pub const MODULE_INIT_IGNORE_MODVERSIONS: ::c_uint = 0x0001; -pub const MODULE_INIT_IGNORE_VERMAGIC: ::c_uint = 0x0002; +pub const MODULE_INIT_IGNORE_MODVERSIONS: c_uint = 0x0001; +pub const MODULE_INIT_IGNORE_VERMAGIC: c_uint = 0x0002; // linux/net_tstamp.h -pub const SOF_TIMESTAMPING_TX_HARDWARE: ::c_uint = 1 << 0; -pub const SOF_TIMESTAMPING_TX_SOFTWARE: ::c_uint = 1 << 1; -pub const SOF_TIMESTAMPING_RX_HARDWARE: ::c_uint = 1 << 2; -pub const SOF_TIMESTAMPING_RX_SOFTWARE: ::c_uint = 1 << 3; -pub const SOF_TIMESTAMPING_SOFTWARE: ::c_uint = 1 << 4; -pub const SOF_TIMESTAMPING_SYS_HARDWARE: ::c_uint = 1 << 5; -pub const SOF_TIMESTAMPING_RAW_HARDWARE: ::c_uint = 1 << 6; -pub const SOF_TIMESTAMPING_OPT_ID: ::c_uint = 1 << 7; -pub const SOF_TIMESTAMPING_TX_SCHED: ::c_uint = 1 << 8; -pub const SOF_TIMESTAMPING_TX_ACK: ::c_uint = 1 << 9; -pub const SOF_TIMESTAMPING_OPT_CMSG: ::c_uint = 1 << 10; -pub const SOF_TIMESTAMPING_OPT_TSONLY: ::c_uint = 1 << 11; -pub const SOF_TIMESTAMPING_OPT_STATS: ::c_uint = 1 << 12; -pub const SOF_TIMESTAMPING_OPT_PKTINFO: ::c_uint = 1 << 13; -pub const SOF_TIMESTAMPING_OPT_TX_SWHW: ::c_uint = 1 << 14; +pub const SOF_TIMESTAMPING_TX_HARDWARE: c_uint = 1 << 0; +pub const SOF_TIMESTAMPING_TX_SOFTWARE: c_uint = 1 << 1; +pub const SOF_TIMESTAMPING_RX_HARDWARE: c_uint = 1 << 2; +pub const SOF_TIMESTAMPING_RX_SOFTWARE: c_uint = 1 << 3; +pub const SOF_TIMESTAMPING_SOFTWARE: c_uint = 1 << 4; +pub const SOF_TIMESTAMPING_SYS_HARDWARE: c_uint = 1 << 5; +pub const SOF_TIMESTAMPING_RAW_HARDWARE: c_uint = 1 << 6; +pub const SOF_TIMESTAMPING_OPT_ID: c_uint = 1 << 7; +pub const SOF_TIMESTAMPING_TX_SCHED: c_uint = 1 << 8; +pub const SOF_TIMESTAMPING_TX_ACK: c_uint = 1 << 9; +pub const SOF_TIMESTAMPING_OPT_CMSG: c_uint = 1 << 10; +pub const SOF_TIMESTAMPING_OPT_TSONLY: c_uint = 1 << 11; +pub const SOF_TIMESTAMPING_OPT_STATS: c_uint = 1 << 12; +pub const SOF_TIMESTAMPING_OPT_PKTINFO: c_uint = 1 << 13; +pub const SOF_TIMESTAMPING_OPT_TX_SWHW: c_uint = 1 << 14; pub const SOF_TXTIME_DEADLINE_MODE: u32 = 1 << 0; pub const SOF_TXTIME_REPORT_ERRORS: u32 = 1 << 1; -pub const HWTSTAMP_TX_OFF: ::c_uint = 0; -pub const HWTSTAMP_TX_ON: ::c_uint = 1; -pub const HWTSTAMP_TX_ONESTEP_SYNC: ::c_uint = 2; -pub const HWTSTAMP_TX_ONESTEP_P2P: ::c_uint = 3; - -pub const HWTSTAMP_FILTER_NONE: ::c_uint = 0; -pub const HWTSTAMP_FILTER_ALL: ::c_uint = 1; -pub const HWTSTAMP_FILTER_SOME: ::c_uint = 2; -pub const HWTSTAMP_FILTER_PTP_V1_L4_EVENT: ::c_uint = 3; -pub const HWTSTAMP_FILTER_PTP_V1_L4_SYNC: ::c_uint = 4; -pub const HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ: ::c_uint = 5; -pub const HWTSTAMP_FILTER_PTP_V2_L4_EVENT: ::c_uint = 6; -pub const HWTSTAMP_FILTER_PTP_V2_L4_SYNC: ::c_uint = 7; -pub const HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ: ::c_uint = 8; -pub const HWTSTAMP_FILTER_PTP_V2_L2_EVENT: ::c_uint = 9; -pub const HWTSTAMP_FILTER_PTP_V2_L2_SYNC: ::c_uint = 10; -pub const HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ: ::c_uint = 11; -pub const HWTSTAMP_FILTER_PTP_V2_EVENT: ::c_uint = 12; -pub const HWTSTAMP_FILTER_PTP_V2_SYNC: ::c_uint = 13; -pub const HWTSTAMP_FILTER_PTP_V2_DELAY_REQ: ::c_uint = 14; -pub const HWTSTAMP_FILTER_NTP_ALL: ::c_uint = 15; +pub const HWTSTAMP_TX_OFF: c_uint = 0; +pub const HWTSTAMP_TX_ON: c_uint = 1; +pub const HWTSTAMP_TX_ONESTEP_SYNC: c_uint = 2; +pub const HWTSTAMP_TX_ONESTEP_P2P: c_uint = 3; + +pub const HWTSTAMP_FILTER_NONE: c_uint = 0; +pub const HWTSTAMP_FILTER_ALL: c_uint = 1; +pub const HWTSTAMP_FILTER_SOME: c_uint = 2; +pub const HWTSTAMP_FILTER_PTP_V1_L4_EVENT: c_uint = 3; +pub const HWTSTAMP_FILTER_PTP_V1_L4_SYNC: c_uint = 4; +pub const HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ: c_uint = 5; +pub const HWTSTAMP_FILTER_PTP_V2_L4_EVENT: c_uint = 6; +pub const HWTSTAMP_FILTER_PTP_V2_L4_SYNC: c_uint = 7; +pub const HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ: c_uint = 8; +pub const HWTSTAMP_FILTER_PTP_V2_L2_EVENT: c_uint = 9; +pub const HWTSTAMP_FILTER_PTP_V2_L2_SYNC: c_uint = 10; +pub const HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ: c_uint = 11; +pub const HWTSTAMP_FILTER_PTP_V2_EVENT: c_uint = 12; +pub const HWTSTAMP_FILTER_PTP_V2_SYNC: c_uint = 13; +pub const HWTSTAMP_FILTER_PTP_V2_DELAY_REQ: c_uint = 14; +pub const HWTSTAMP_FILTER_NTP_ALL: c_uint = 15; // linux/ptp_clock.h -pub const PTP_MAX_SAMPLES: ::c_uint = 25; // Maximum allowed offset measurement samples. +pub const PTP_MAX_SAMPLES: c_uint = 25; // Maximum allowed offset measurement samples. const PTP_CLK_MAGIC: u32 = b'=' as u32; -pub const PTP_CLOCK_GETCAPS: ::c_uint = _IOR::(PTP_CLK_MAGIC, 1); -pub const PTP_EXTTS_REQUEST: ::c_uint = _IOW::(PTP_CLK_MAGIC, 2); -pub const PTP_PEROUT_REQUEST: ::c_uint = _IOW::(PTP_CLK_MAGIC, 3); -pub const PTP_ENABLE_PPS: ::c_uint = _IOW::<::c_int>(PTP_CLK_MAGIC, 4); -pub const PTP_SYS_OFFSET: ::c_uint = _IOW::(PTP_CLK_MAGIC, 5); -pub const PTP_PIN_GETFUNC: ::c_uint = _IOWR::(PTP_CLK_MAGIC, 6); -pub const PTP_PIN_SETFUNC: ::c_uint = _IOW::(PTP_CLK_MAGIC, 7); -pub const PTP_SYS_OFFSET_PRECISE: ::c_uint = _IOWR::(PTP_CLK_MAGIC, 8); -pub const PTP_SYS_OFFSET_EXTENDED: ::c_uint = _IOWR::(PTP_CLK_MAGIC, 9); - -pub const PTP_CLOCK_GETCAPS2: ::c_uint = _IOR::(PTP_CLK_MAGIC, 10); -pub const PTP_EXTTS_REQUEST2: ::c_uint = _IOW::(PTP_CLK_MAGIC, 11); -pub const PTP_PEROUT_REQUEST2: ::c_uint = _IOW::(PTP_CLK_MAGIC, 12); -pub const PTP_ENABLE_PPS2: ::c_uint = _IOW::<::c_int>(PTP_CLK_MAGIC, 13); -pub const PTP_SYS_OFFSET2: ::c_uint = _IOW::(PTP_CLK_MAGIC, 14); -pub const PTP_PIN_GETFUNC2: ::c_uint = _IOWR::(PTP_CLK_MAGIC, 15); -pub const PTP_PIN_SETFUNC2: ::c_uint = _IOW::(PTP_CLK_MAGIC, 16); -pub const PTP_SYS_OFFSET_PRECISE2: ::c_uint = _IOWR::(PTP_CLK_MAGIC, 17); -pub const PTP_SYS_OFFSET_EXTENDED2: ::c_uint = _IOWR::(PTP_CLK_MAGIC, 18); +pub const PTP_CLOCK_GETCAPS: c_uint = _IOR::(PTP_CLK_MAGIC, 1); +pub const PTP_EXTTS_REQUEST: c_uint = _IOW::(PTP_CLK_MAGIC, 2); +pub const PTP_PEROUT_REQUEST: c_uint = _IOW::(PTP_CLK_MAGIC, 3); +pub const PTP_ENABLE_PPS: c_uint = _IOW::(PTP_CLK_MAGIC, 4); +pub const PTP_SYS_OFFSET: c_uint = _IOW::(PTP_CLK_MAGIC, 5); +pub const PTP_PIN_GETFUNC: c_uint = _IOWR::(PTP_CLK_MAGIC, 6); +pub const PTP_PIN_SETFUNC: c_uint = _IOW::(PTP_CLK_MAGIC, 7); +pub const PTP_SYS_OFFSET_PRECISE: c_uint = _IOWR::(PTP_CLK_MAGIC, 8); +pub const PTP_SYS_OFFSET_EXTENDED: c_uint = _IOWR::(PTP_CLK_MAGIC, 9); + +pub const PTP_CLOCK_GETCAPS2: c_uint = _IOR::(PTP_CLK_MAGIC, 10); +pub const PTP_EXTTS_REQUEST2: c_uint = _IOW::(PTP_CLK_MAGIC, 11); +pub const PTP_PEROUT_REQUEST2: c_uint = _IOW::(PTP_CLK_MAGIC, 12); +pub const PTP_ENABLE_PPS2: c_uint = _IOW::(PTP_CLK_MAGIC, 13); +pub const PTP_SYS_OFFSET2: c_uint = _IOW::(PTP_CLK_MAGIC, 14); +pub const PTP_PIN_GETFUNC2: c_uint = _IOWR::(PTP_CLK_MAGIC, 15); +pub const PTP_PIN_SETFUNC2: c_uint = _IOW::(PTP_CLK_MAGIC, 16); +pub const PTP_SYS_OFFSET_PRECISE2: c_uint = _IOWR::(PTP_CLK_MAGIC, 17); +pub const PTP_SYS_OFFSET_EXTENDED2: c_uint = _IOWR::(PTP_CLK_MAGIC, 18); // enum ptp_pin_function -pub const PTP_PF_NONE: ::c_uint = 0; -pub const PTP_PF_EXTTS: ::c_uint = 1; -pub const PTP_PF_PEROUT: ::c_uint = 2; -pub const PTP_PF_PHYSYNC: ::c_uint = 3; +pub const PTP_PF_NONE: c_uint = 0; +pub const PTP_PF_EXTTS: c_uint = 1; +pub const PTP_PF_PEROUT: c_uint = 2; +pub const PTP_PF_PHYSYNC: c_uint = 3; // linux/tls.h -pub const TLS_TX: ::c_int = 1; -pub const TLS_RX: ::c_int = 2; +pub const TLS_TX: c_int = 1; +pub const TLS_RX: c_int = 2; -pub const TLS_1_2_VERSION_MAJOR: ::__u8 = 0x3; -pub const TLS_1_2_VERSION_MINOR: ::__u8 = 0x3; -pub const TLS_1_2_VERSION: ::__u16 = - ((TLS_1_2_VERSION_MAJOR as ::__u16) << 8) | (TLS_1_2_VERSION_MINOR as ::__u16); +pub const TLS_1_2_VERSION_MAJOR: __u8 = 0x3; +pub const TLS_1_2_VERSION_MINOR: __u8 = 0x3; +pub const TLS_1_2_VERSION: __u16 = + ((TLS_1_2_VERSION_MAJOR as __u16) << 8) | (TLS_1_2_VERSION_MINOR as __u16); -pub const TLS_1_3_VERSION_MAJOR: ::__u8 = 0x3; -pub const TLS_1_3_VERSION_MINOR: ::__u8 = 0x4; -pub const TLS_1_3_VERSION: ::__u16 = - ((TLS_1_3_VERSION_MAJOR as ::__u16) << 8) | (TLS_1_3_VERSION_MINOR as ::__u16); +pub const TLS_1_3_VERSION_MAJOR: __u8 = 0x3; +pub const TLS_1_3_VERSION_MINOR: __u8 = 0x4; +pub const TLS_1_3_VERSION: __u16 = + ((TLS_1_3_VERSION_MAJOR as __u16) << 8) | (TLS_1_3_VERSION_MINOR as __u16); -pub const TLS_CIPHER_AES_GCM_128: ::__u16 = 51; +pub const TLS_CIPHER_AES_GCM_128: __u16 = 51; pub const TLS_CIPHER_AES_GCM_128_IV_SIZE: usize = 8; pub const TLS_CIPHER_AES_GCM_128_KEY_SIZE: usize = 16; pub const TLS_CIPHER_AES_GCM_128_SALT_SIZE: usize = 4; pub const TLS_CIPHER_AES_GCM_128_TAG_SIZE: usize = 16; pub const TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE: usize = 8; -pub const TLS_CIPHER_AES_GCM_256: ::__u16 = 52; +pub const TLS_CIPHER_AES_GCM_256: __u16 = 52; pub const TLS_CIPHER_AES_GCM_256_IV_SIZE: usize = 8; pub const TLS_CIPHER_AES_GCM_256_KEY_SIZE: usize = 32; pub const TLS_CIPHER_AES_GCM_256_SALT_SIZE: usize = 4; pub const TLS_CIPHER_AES_GCM_256_TAG_SIZE: usize = 16; pub const TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE: usize = 8; -pub const TLS_CIPHER_CHACHA20_POLY1305: ::__u16 = 54; +pub const TLS_CIPHER_CHACHA20_POLY1305: __u16 = 54; pub const TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE: usize = 12; pub const TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE: usize = 32; pub const TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE: usize = 0; pub const TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE: usize = 16; pub const TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE: usize = 8; -pub const TLS_SET_RECORD_TYPE: ::c_int = 1; -pub const TLS_GET_RECORD_TYPE: ::c_int = 2; +pub const TLS_SET_RECORD_TYPE: c_int = 1; +pub const TLS_GET_RECORD_TYPE: c_int = 2; -pub const SOL_TLS: ::c_int = 282; +pub const SOL_TLS: c_int = 282; // linux/if_alg.h -pub const ALG_SET_KEY: ::c_int = 1; -pub const ALG_SET_IV: ::c_int = 2; -pub const ALG_SET_OP: ::c_int = 3; -pub const ALG_SET_AEAD_ASSOCLEN: ::c_int = 4; -pub const ALG_SET_AEAD_AUTHSIZE: ::c_int = 5; -pub const ALG_SET_DRBG_ENTROPY: ::c_int = 6; -pub const ALG_SET_KEY_BY_KEY_SERIAL: ::c_int = 7; +pub const ALG_SET_KEY: c_int = 1; +pub const ALG_SET_IV: c_int = 2; +pub const ALG_SET_OP: c_int = 3; +pub const ALG_SET_AEAD_ASSOCLEN: c_int = 4; +pub const ALG_SET_AEAD_AUTHSIZE: c_int = 5; +pub const ALG_SET_DRBG_ENTROPY: c_int = 6; +pub const ALG_SET_KEY_BY_KEY_SERIAL: c_int = 7; -pub const ALG_OP_DECRYPT: ::c_int = 0; -pub const ALG_OP_ENCRYPT: ::c_int = 1; +pub const ALG_OP_DECRYPT: c_int = 0; +pub const ALG_OP_ENCRYPT: c_int = 1; // include/uapi/linux/if.h -pub const IF_OPER_UNKNOWN: ::c_int = 0; -pub const IF_OPER_NOTPRESENT: ::c_int = 1; -pub const IF_OPER_DOWN: ::c_int = 2; -pub const IF_OPER_LOWERLAYERDOWN: ::c_int = 3; -pub const IF_OPER_TESTING: ::c_int = 4; -pub const IF_OPER_DORMANT: ::c_int = 5; -pub const IF_OPER_UP: ::c_int = 6; - -pub const IF_LINK_MODE_DEFAULT: ::c_int = 0; -pub const IF_LINK_MODE_DORMANT: ::c_int = 1; -pub const IF_LINK_MODE_TESTING: ::c_int = 2; +pub const IF_OPER_UNKNOWN: c_int = 0; +pub const IF_OPER_NOTPRESENT: c_int = 1; +pub const IF_OPER_DOWN: c_int = 2; +pub const IF_OPER_LOWERLAYERDOWN: c_int = 3; +pub const IF_OPER_TESTING: c_int = 4; +pub const IF_OPER_DORMANT: c_int = 5; +pub const IF_OPER_UP: c_int = 6; + +pub const IF_LINK_MODE_DEFAULT: c_int = 0; +pub const IF_LINK_MODE_DORMANT: c_int = 1; +pub const IF_LINK_MODE_TESTING: c_int = 2; // include/uapi/linux/udp.h -pub const UDP_CORK: ::c_int = 1; -pub const UDP_ENCAP: ::c_int = 100; -pub const UDP_NO_CHECK6_TX: ::c_int = 101; -pub const UDP_NO_CHECK6_RX: ::c_int = 102; +pub const UDP_CORK: c_int = 1; +pub const UDP_ENCAP: c_int = 100; +pub const UDP_NO_CHECK6_TX: c_int = 101; +pub const UDP_NO_CHECK6_RX: c_int = 102; // include/uapi/linux/mman.h -pub const MAP_SHARED_VALIDATE: ::c_int = 0x3; +pub const MAP_SHARED_VALIDATE: c_int = 0x3; // include/uapi/asm-generic/mman-common.h -pub const MAP_FIXED_NOREPLACE: ::c_int = 0x100000; -pub const MLOCK_ONFAULT: ::c_uint = 0x01; +pub const MAP_FIXED_NOREPLACE: c_int = 0x100000; +pub const MLOCK_ONFAULT: c_uint = 0x01; // uapi/linux/vm_sockets.h -pub const VMADDR_CID_ANY: ::c_uint = 0xFFFFFFFF; -pub const VMADDR_CID_HYPERVISOR: ::c_uint = 0; +pub const VMADDR_CID_ANY: c_uint = 0xFFFFFFFF; +pub const VMADDR_CID_HYPERVISOR: c_uint = 0; #[deprecated( since = "0.2.74", note = "VMADDR_CID_RESERVED is removed since Linux v5.6 and \ replaced with VMADDR_CID_LOCAL" )] -pub const VMADDR_CID_RESERVED: ::c_uint = 1; -pub const VMADDR_CID_LOCAL: ::c_uint = 1; -pub const VMADDR_CID_HOST: ::c_uint = 2; -pub const VMADDR_PORT_ANY: ::c_uint = 0xFFFFFFFF; +pub const VMADDR_CID_RESERVED: c_uint = 1; +pub const VMADDR_CID_LOCAL: c_uint = 1; +pub const VMADDR_CID_HOST: c_uint = 2; +pub const VMADDR_PORT_ANY: c_uint = 0xFFFFFFFF; // uapi/linux/inotify.h pub const IN_ACCESS: u32 = 0x0000_0001; @@ -4830,237 +4834,237 @@ pub const IN_ALL_EVENTS: u32 = IN_ACCESS | IN_DELETE_SELF | IN_MOVE_SELF; -pub const IN_CLOEXEC: ::c_int = O_CLOEXEC; -pub const IN_NONBLOCK: ::c_int = O_NONBLOCK; +pub const IN_CLOEXEC: c_int = O_CLOEXEC; +pub const IN_NONBLOCK: c_int = O_NONBLOCK; // uapi/linux/mount.h -pub const OPEN_TREE_CLONE: ::c_uint = 0x01; -pub const OPEN_TREE_CLOEXEC: ::c_uint = O_CLOEXEC as ::c_uint; +pub const OPEN_TREE_CLONE: c_uint = 0x01; +pub const OPEN_TREE_CLOEXEC: c_uint = O_CLOEXEC as c_uint; // uapi/linux/netfilter/nf_tables.h -pub const NFT_TABLE_MAXNAMELEN: ::c_int = 256; -pub const NFT_CHAIN_MAXNAMELEN: ::c_int = 256; -pub const NFT_SET_MAXNAMELEN: ::c_int = 256; -pub const NFT_OBJ_MAXNAMELEN: ::c_int = 256; -pub const NFT_USERDATA_MAXLEN: ::c_int = 256; - -pub const NFT_REG_VERDICT: ::c_int = 0; -pub const NFT_REG_1: ::c_int = 1; -pub const NFT_REG_2: ::c_int = 2; -pub const NFT_REG_3: ::c_int = 3; -pub const NFT_REG_4: ::c_int = 4; -pub const __NFT_REG_MAX: ::c_int = 5; -pub const NFT_REG32_00: ::c_int = 8; -pub const NFT_REG32_01: ::c_int = 9; -pub const NFT_REG32_02: ::c_int = 10; -pub const NFT_REG32_03: ::c_int = 11; -pub const NFT_REG32_04: ::c_int = 12; -pub const NFT_REG32_05: ::c_int = 13; -pub const NFT_REG32_06: ::c_int = 14; -pub const NFT_REG32_07: ::c_int = 15; -pub const NFT_REG32_08: ::c_int = 16; -pub const NFT_REG32_09: ::c_int = 17; -pub const NFT_REG32_10: ::c_int = 18; -pub const NFT_REG32_11: ::c_int = 19; -pub const NFT_REG32_12: ::c_int = 20; -pub const NFT_REG32_13: ::c_int = 21; -pub const NFT_REG32_14: ::c_int = 22; -pub const NFT_REG32_15: ::c_int = 23; - -pub const NFT_REG_SIZE: ::c_int = 16; -pub const NFT_REG32_SIZE: ::c_int = 4; - -pub const NFT_CONTINUE: ::c_int = -1; -pub const NFT_BREAK: ::c_int = -2; -pub const NFT_JUMP: ::c_int = -3; -pub const NFT_GOTO: ::c_int = -4; -pub const NFT_RETURN: ::c_int = -5; - -pub const NFT_MSG_NEWTABLE: ::c_int = 0; -pub const NFT_MSG_GETTABLE: ::c_int = 1; -pub const NFT_MSG_DELTABLE: ::c_int = 2; -pub const NFT_MSG_NEWCHAIN: ::c_int = 3; -pub const NFT_MSG_GETCHAIN: ::c_int = 4; -pub const NFT_MSG_DELCHAIN: ::c_int = 5; -pub const NFT_MSG_NEWRULE: ::c_int = 6; -pub const NFT_MSG_GETRULE: ::c_int = 7; -pub const NFT_MSG_DELRULE: ::c_int = 8; -pub const NFT_MSG_NEWSET: ::c_int = 9; -pub const NFT_MSG_GETSET: ::c_int = 10; -pub const NFT_MSG_DELSET: ::c_int = 11; -pub const NFT_MSG_NEWSETELEM: ::c_int = 12; -pub const NFT_MSG_GETSETELEM: ::c_int = 13; -pub const NFT_MSG_DELSETELEM: ::c_int = 14; -pub const NFT_MSG_NEWGEN: ::c_int = 15; -pub const NFT_MSG_GETGEN: ::c_int = 16; -pub const NFT_MSG_TRACE: ::c_int = 17; +pub const NFT_TABLE_MAXNAMELEN: c_int = 256; +pub const NFT_CHAIN_MAXNAMELEN: c_int = 256; +pub const NFT_SET_MAXNAMELEN: c_int = 256; +pub const NFT_OBJ_MAXNAMELEN: c_int = 256; +pub const NFT_USERDATA_MAXLEN: c_int = 256; + +pub const NFT_REG_VERDICT: c_int = 0; +pub const NFT_REG_1: c_int = 1; +pub const NFT_REG_2: c_int = 2; +pub const NFT_REG_3: c_int = 3; +pub const NFT_REG_4: c_int = 4; +pub const __NFT_REG_MAX: c_int = 5; +pub const NFT_REG32_00: c_int = 8; +pub const NFT_REG32_01: c_int = 9; +pub const NFT_REG32_02: c_int = 10; +pub const NFT_REG32_03: c_int = 11; +pub const NFT_REG32_04: c_int = 12; +pub const NFT_REG32_05: c_int = 13; +pub const NFT_REG32_06: c_int = 14; +pub const NFT_REG32_07: c_int = 15; +pub const NFT_REG32_08: c_int = 16; +pub const NFT_REG32_09: c_int = 17; +pub const NFT_REG32_10: c_int = 18; +pub const NFT_REG32_11: c_int = 19; +pub const NFT_REG32_12: c_int = 20; +pub const NFT_REG32_13: c_int = 21; +pub const NFT_REG32_14: c_int = 22; +pub const NFT_REG32_15: c_int = 23; + +pub const NFT_REG_SIZE: c_int = 16; +pub const NFT_REG32_SIZE: c_int = 4; + +pub const NFT_CONTINUE: c_int = -1; +pub const NFT_BREAK: c_int = -2; +pub const NFT_JUMP: c_int = -3; +pub const NFT_GOTO: c_int = -4; +pub const NFT_RETURN: c_int = -5; + +pub const NFT_MSG_NEWTABLE: c_int = 0; +pub const NFT_MSG_GETTABLE: c_int = 1; +pub const NFT_MSG_DELTABLE: c_int = 2; +pub const NFT_MSG_NEWCHAIN: c_int = 3; +pub const NFT_MSG_GETCHAIN: c_int = 4; +pub const NFT_MSG_DELCHAIN: c_int = 5; +pub const NFT_MSG_NEWRULE: c_int = 6; +pub const NFT_MSG_GETRULE: c_int = 7; +pub const NFT_MSG_DELRULE: c_int = 8; +pub const NFT_MSG_NEWSET: c_int = 9; +pub const NFT_MSG_GETSET: c_int = 10; +pub const NFT_MSG_DELSET: c_int = 11; +pub const NFT_MSG_NEWSETELEM: c_int = 12; +pub const NFT_MSG_GETSETELEM: c_int = 13; +pub const NFT_MSG_DELSETELEM: c_int = 14; +pub const NFT_MSG_NEWGEN: c_int = 15; +pub const NFT_MSG_GETGEN: c_int = 16; +pub const NFT_MSG_TRACE: c_int = 17; cfg_if! { if #[cfg(not(target_arch = "sparc64"))] { - pub const NFT_MSG_NEWOBJ: ::c_int = 18; - pub const NFT_MSG_GETOBJ: ::c_int = 19; - pub const NFT_MSG_DELOBJ: ::c_int = 20; - pub const NFT_MSG_GETOBJ_RESET: ::c_int = 21; + pub const NFT_MSG_NEWOBJ: c_int = 18; + pub const NFT_MSG_GETOBJ: c_int = 19; + pub const NFT_MSG_DELOBJ: c_int = 20; + pub const NFT_MSG_GETOBJ_RESET: c_int = 21; } } -pub const NFT_MSG_MAX: ::c_int = 25; - -pub const NFT_SET_ANONYMOUS: ::c_int = 0x1; -pub const NFT_SET_CONSTANT: ::c_int = 0x2; -pub const NFT_SET_INTERVAL: ::c_int = 0x4; -pub const NFT_SET_MAP: ::c_int = 0x8; -pub const NFT_SET_TIMEOUT: ::c_int = 0x10; -pub const NFT_SET_EVAL: ::c_int = 0x20; - -pub const NFT_SET_POL_PERFORMANCE: ::c_int = 0; -pub const NFT_SET_POL_MEMORY: ::c_int = 1; - -pub const NFT_SET_ELEM_INTERVAL_END: ::c_int = 0x1; - -pub const NFT_DATA_VALUE: ::c_uint = 0; -pub const NFT_DATA_VERDICT: ::c_uint = 0xffffff00; - -pub const NFT_DATA_RESERVED_MASK: ::c_uint = 0xffffff00; - -pub const NFT_DATA_VALUE_MAXLEN: ::c_int = 64; - -pub const NFT_BYTEORDER_NTOH: ::c_int = 0; -pub const NFT_BYTEORDER_HTON: ::c_int = 1; - -pub const NFT_CMP_EQ: ::c_int = 0; -pub const NFT_CMP_NEQ: ::c_int = 1; -pub const NFT_CMP_LT: ::c_int = 2; -pub const NFT_CMP_LTE: ::c_int = 3; -pub const NFT_CMP_GT: ::c_int = 4; -pub const NFT_CMP_GTE: ::c_int = 5; - -pub const NFT_RANGE_EQ: ::c_int = 0; -pub const NFT_RANGE_NEQ: ::c_int = 1; - -pub const NFT_LOOKUP_F_INV: ::c_int = 1 << 0; - -pub const NFT_DYNSET_OP_ADD: ::c_int = 0; -pub const NFT_DYNSET_OP_UPDATE: ::c_int = 1; - -pub const NFT_DYNSET_F_INV: ::c_int = 1 << 0; - -pub const NFT_PAYLOAD_LL_HEADER: ::c_int = 0; -pub const NFT_PAYLOAD_NETWORK_HEADER: ::c_int = 1; -pub const NFT_PAYLOAD_TRANSPORT_HEADER: ::c_int = 2; - -pub const NFT_PAYLOAD_CSUM_NONE: ::c_int = 0; -pub const NFT_PAYLOAD_CSUM_INET: ::c_int = 1; - -pub const NFT_META_LEN: ::c_int = 0; -pub const NFT_META_PROTOCOL: ::c_int = 1; -pub const NFT_META_PRIORITY: ::c_int = 2; -pub const NFT_META_MARK: ::c_int = 3; -pub const NFT_META_IIF: ::c_int = 4; -pub const NFT_META_OIF: ::c_int = 5; -pub const NFT_META_IIFNAME: ::c_int = 6; -pub const NFT_META_OIFNAME: ::c_int = 7; -pub const NFT_META_IIFTYPE: ::c_int = 8; -pub const NFT_META_OIFTYPE: ::c_int = 9; -pub const NFT_META_SKUID: ::c_int = 10; -pub const NFT_META_SKGID: ::c_int = 11; -pub const NFT_META_NFTRACE: ::c_int = 12; -pub const NFT_META_RTCLASSID: ::c_int = 13; -pub const NFT_META_SECMARK: ::c_int = 14; -pub const NFT_META_NFPROTO: ::c_int = 15; -pub const NFT_META_L4PROTO: ::c_int = 16; -pub const NFT_META_BRI_IIFNAME: ::c_int = 17; -pub const NFT_META_BRI_OIFNAME: ::c_int = 18; -pub const NFT_META_PKTTYPE: ::c_int = 19; -pub const NFT_META_CPU: ::c_int = 20; -pub const NFT_META_IIFGROUP: ::c_int = 21; -pub const NFT_META_OIFGROUP: ::c_int = 22; -pub const NFT_META_CGROUP: ::c_int = 23; -pub const NFT_META_PRANDOM: ::c_int = 24; - -pub const NFT_CT_STATE: ::c_int = 0; -pub const NFT_CT_DIRECTION: ::c_int = 1; -pub const NFT_CT_STATUS: ::c_int = 2; -pub const NFT_CT_MARK: ::c_int = 3; -pub const NFT_CT_SECMARK: ::c_int = 4; -pub const NFT_CT_EXPIRATION: ::c_int = 5; -pub const NFT_CT_HELPER: ::c_int = 6; -pub const NFT_CT_L3PROTOCOL: ::c_int = 7; -pub const NFT_CT_SRC: ::c_int = 8; -pub const NFT_CT_DST: ::c_int = 9; -pub const NFT_CT_PROTOCOL: ::c_int = 10; -pub const NFT_CT_PROTO_SRC: ::c_int = 11; -pub const NFT_CT_PROTO_DST: ::c_int = 12; -pub const NFT_CT_LABELS: ::c_int = 13; -pub const NFT_CT_PKTS: ::c_int = 14; -pub const NFT_CT_BYTES: ::c_int = 15; -pub const NFT_CT_AVGPKT: ::c_int = 16; -pub const NFT_CT_ZONE: ::c_int = 17; -pub const NFT_CT_EVENTMASK: ::c_int = 18; -pub const NFT_CT_SRC_IP: ::c_int = 19; -pub const NFT_CT_DST_IP: ::c_int = 20; -pub const NFT_CT_SRC_IP6: ::c_int = 21; -pub const NFT_CT_DST_IP6: ::c_int = 22; - -pub const NFT_LIMIT_PKTS: ::c_int = 0; -pub const NFT_LIMIT_PKT_BYTES: ::c_int = 1; - -pub const NFT_LIMIT_F_INV: ::c_int = 1 << 0; - -pub const NFT_QUEUE_FLAG_BYPASS: ::c_int = 0x01; -pub const NFT_QUEUE_FLAG_CPU_FANOUT: ::c_int = 0x02; -pub const NFT_QUEUE_FLAG_MASK: ::c_int = 0x03; - -pub const NFT_QUOTA_F_INV: ::c_int = 1 << 0; - -pub const NFT_REJECT_ICMP_UNREACH: ::c_int = 0; -pub const NFT_REJECT_TCP_RST: ::c_int = 1; -pub const NFT_REJECT_ICMPX_UNREACH: ::c_int = 2; - -pub const NFT_REJECT_ICMPX_NO_ROUTE: ::c_int = 0; -pub const NFT_REJECT_ICMPX_PORT_UNREACH: ::c_int = 1; -pub const NFT_REJECT_ICMPX_HOST_UNREACH: ::c_int = 2; -pub const NFT_REJECT_ICMPX_ADMIN_PROHIBITED: ::c_int = 3; - -pub const NFT_NAT_SNAT: ::c_int = 0; -pub const NFT_NAT_DNAT: ::c_int = 1; - -pub const NFT_TRACETYPE_UNSPEC: ::c_int = 0; -pub const NFT_TRACETYPE_POLICY: ::c_int = 1; -pub const NFT_TRACETYPE_RETURN: ::c_int = 2; -pub const NFT_TRACETYPE_RULE: ::c_int = 3; - -pub const NFT_NG_INCREMENTAL: ::c_int = 0; -pub const NFT_NG_RANDOM: ::c_int = 1; +pub const NFT_MSG_MAX: c_int = 25; + +pub const NFT_SET_ANONYMOUS: c_int = 0x1; +pub const NFT_SET_CONSTANT: c_int = 0x2; +pub const NFT_SET_INTERVAL: c_int = 0x4; +pub const NFT_SET_MAP: c_int = 0x8; +pub const NFT_SET_TIMEOUT: c_int = 0x10; +pub const NFT_SET_EVAL: c_int = 0x20; + +pub const NFT_SET_POL_PERFORMANCE: c_int = 0; +pub const NFT_SET_POL_MEMORY: c_int = 1; + +pub const NFT_SET_ELEM_INTERVAL_END: c_int = 0x1; + +pub const NFT_DATA_VALUE: c_uint = 0; +pub const NFT_DATA_VERDICT: c_uint = 0xffffff00; + +pub const NFT_DATA_RESERVED_MASK: c_uint = 0xffffff00; + +pub const NFT_DATA_VALUE_MAXLEN: c_int = 64; + +pub const NFT_BYTEORDER_NTOH: c_int = 0; +pub const NFT_BYTEORDER_HTON: c_int = 1; + +pub const NFT_CMP_EQ: c_int = 0; +pub const NFT_CMP_NEQ: c_int = 1; +pub const NFT_CMP_LT: c_int = 2; +pub const NFT_CMP_LTE: c_int = 3; +pub const NFT_CMP_GT: c_int = 4; +pub const NFT_CMP_GTE: c_int = 5; + +pub const NFT_RANGE_EQ: c_int = 0; +pub const NFT_RANGE_NEQ: c_int = 1; + +pub const NFT_LOOKUP_F_INV: c_int = 1 << 0; + +pub const NFT_DYNSET_OP_ADD: c_int = 0; +pub const NFT_DYNSET_OP_UPDATE: c_int = 1; + +pub const NFT_DYNSET_F_INV: c_int = 1 << 0; + +pub const NFT_PAYLOAD_LL_HEADER: c_int = 0; +pub const NFT_PAYLOAD_NETWORK_HEADER: c_int = 1; +pub const NFT_PAYLOAD_TRANSPORT_HEADER: c_int = 2; + +pub const NFT_PAYLOAD_CSUM_NONE: c_int = 0; +pub const NFT_PAYLOAD_CSUM_INET: c_int = 1; + +pub const NFT_META_LEN: c_int = 0; +pub const NFT_META_PROTOCOL: c_int = 1; +pub const NFT_META_PRIORITY: c_int = 2; +pub const NFT_META_MARK: c_int = 3; +pub const NFT_META_IIF: c_int = 4; +pub const NFT_META_OIF: c_int = 5; +pub const NFT_META_IIFNAME: c_int = 6; +pub const NFT_META_OIFNAME: c_int = 7; +pub const NFT_META_IIFTYPE: c_int = 8; +pub const NFT_META_OIFTYPE: c_int = 9; +pub const NFT_META_SKUID: c_int = 10; +pub const NFT_META_SKGID: c_int = 11; +pub const NFT_META_NFTRACE: c_int = 12; +pub const NFT_META_RTCLASSID: c_int = 13; +pub const NFT_META_SECMARK: c_int = 14; +pub const NFT_META_NFPROTO: c_int = 15; +pub const NFT_META_L4PROTO: c_int = 16; +pub const NFT_META_BRI_IIFNAME: c_int = 17; +pub const NFT_META_BRI_OIFNAME: c_int = 18; +pub const NFT_META_PKTTYPE: c_int = 19; +pub const NFT_META_CPU: c_int = 20; +pub const NFT_META_IIFGROUP: c_int = 21; +pub const NFT_META_OIFGROUP: c_int = 22; +pub const NFT_META_CGROUP: c_int = 23; +pub const NFT_META_PRANDOM: c_int = 24; + +pub const NFT_CT_STATE: c_int = 0; +pub const NFT_CT_DIRECTION: c_int = 1; +pub const NFT_CT_STATUS: c_int = 2; +pub const NFT_CT_MARK: c_int = 3; +pub const NFT_CT_SECMARK: c_int = 4; +pub const NFT_CT_EXPIRATION: c_int = 5; +pub const NFT_CT_HELPER: c_int = 6; +pub const NFT_CT_L3PROTOCOL: c_int = 7; +pub const NFT_CT_SRC: c_int = 8; +pub const NFT_CT_DST: c_int = 9; +pub const NFT_CT_PROTOCOL: c_int = 10; +pub const NFT_CT_PROTO_SRC: c_int = 11; +pub const NFT_CT_PROTO_DST: c_int = 12; +pub const NFT_CT_LABELS: c_int = 13; +pub const NFT_CT_PKTS: c_int = 14; +pub const NFT_CT_BYTES: c_int = 15; +pub const NFT_CT_AVGPKT: c_int = 16; +pub const NFT_CT_ZONE: c_int = 17; +pub const NFT_CT_EVENTMASK: c_int = 18; +pub const NFT_CT_SRC_IP: c_int = 19; +pub const NFT_CT_DST_IP: c_int = 20; +pub const NFT_CT_SRC_IP6: c_int = 21; +pub const NFT_CT_DST_IP6: c_int = 22; + +pub const NFT_LIMIT_PKTS: c_int = 0; +pub const NFT_LIMIT_PKT_BYTES: c_int = 1; + +pub const NFT_LIMIT_F_INV: c_int = 1 << 0; + +pub const NFT_QUEUE_FLAG_BYPASS: c_int = 0x01; +pub const NFT_QUEUE_FLAG_CPU_FANOUT: c_int = 0x02; +pub const NFT_QUEUE_FLAG_MASK: c_int = 0x03; + +pub const NFT_QUOTA_F_INV: c_int = 1 << 0; + +pub const NFT_REJECT_ICMP_UNREACH: c_int = 0; +pub const NFT_REJECT_TCP_RST: c_int = 1; +pub const NFT_REJECT_ICMPX_UNREACH: c_int = 2; + +pub const NFT_REJECT_ICMPX_NO_ROUTE: c_int = 0; +pub const NFT_REJECT_ICMPX_PORT_UNREACH: c_int = 1; +pub const NFT_REJECT_ICMPX_HOST_UNREACH: c_int = 2; +pub const NFT_REJECT_ICMPX_ADMIN_PROHIBITED: c_int = 3; + +pub const NFT_NAT_SNAT: c_int = 0; +pub const NFT_NAT_DNAT: c_int = 1; + +pub const NFT_TRACETYPE_UNSPEC: c_int = 0; +pub const NFT_TRACETYPE_POLICY: c_int = 1; +pub const NFT_TRACETYPE_RETURN: c_int = 2; +pub const NFT_TRACETYPE_RULE: c_int = 3; + +pub const NFT_NG_INCREMENTAL: c_int = 0; +pub const NFT_NG_RANDOM: c_int = 1; // linux/input.h -pub const FF_MAX: ::__u16 = 0x7f; +pub const FF_MAX: __u16 = 0x7f; pub const FF_CNT: usize = FF_MAX as usize + 1; // linux/input-event-codes.h -pub const INPUT_PROP_MAX: ::__u16 = 0x1f; +pub const INPUT_PROP_MAX: __u16 = 0x1f; pub const INPUT_PROP_CNT: usize = INPUT_PROP_MAX as usize + 1; -pub const EV_MAX: ::__u16 = 0x1f; +pub const EV_MAX: __u16 = 0x1f; pub const EV_CNT: usize = EV_MAX as usize + 1; -pub const SYN_MAX: ::__u16 = 0xf; +pub const SYN_MAX: __u16 = 0xf; pub const SYN_CNT: usize = SYN_MAX as usize + 1; -pub const KEY_MAX: ::__u16 = 0x2ff; +pub const KEY_MAX: __u16 = 0x2ff; pub const KEY_CNT: usize = KEY_MAX as usize + 1; -pub const REL_MAX: ::__u16 = 0x0f; +pub const REL_MAX: __u16 = 0x0f; pub const REL_CNT: usize = REL_MAX as usize + 1; -pub const ABS_MAX: ::__u16 = 0x3f; +pub const ABS_MAX: __u16 = 0x3f; pub const ABS_CNT: usize = ABS_MAX as usize + 1; -pub const SW_MAX: ::__u16 = 0x10; +pub const SW_MAX: __u16 = 0x10; pub const SW_CNT: usize = SW_MAX as usize + 1; -pub const MSC_MAX: ::__u16 = 0x07; +pub const MSC_MAX: __u16 = 0x07; pub const MSC_CNT: usize = MSC_MAX as usize + 1; -pub const LED_MAX: ::__u16 = 0x0f; +pub const LED_MAX: __u16 = 0x0f; pub const LED_CNT: usize = LED_MAX as usize + 1; -pub const REP_MAX: ::__u16 = 0x01; +pub const REP_MAX: __u16 = 0x01; pub const REP_CNT: usize = REP_MAX as usize + 1; -pub const SND_MAX: ::__u16 = 0x07; +pub const SND_MAX: __u16 = 0x07; pub const SND_CNT: usize = SND_MAX as usize + 1; // linux/uinput.h -pub const UINPUT_VERSION: ::c_uint = 5; +pub const UINPUT_VERSION: c_uint = 5; pub const UINPUT_MAX_NAME_SIZE: usize = 80; // uapi/linux/fanotify.h @@ -5094,43 +5098,43 @@ pub const FAN_ONDIR: u64 = 0x4000_0000; pub const FAN_CLOSE: u64 = FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE; pub const FAN_MOVE: u64 = FAN_MOVED_FROM | FAN_MOVED_TO; -pub const FAN_CLOEXEC: ::c_uint = 0x0000_0001; -pub const FAN_NONBLOCK: ::c_uint = 0x0000_0002; +pub const FAN_CLOEXEC: c_uint = 0x0000_0001; +pub const FAN_NONBLOCK: c_uint = 0x0000_0002; -pub const FAN_CLASS_NOTIF: ::c_uint = 0x0000_0000; -pub const FAN_CLASS_CONTENT: ::c_uint = 0x0000_0004; -pub const FAN_CLASS_PRE_CONTENT: ::c_uint = 0x0000_0008; +pub const FAN_CLASS_NOTIF: c_uint = 0x0000_0000; +pub const FAN_CLASS_CONTENT: c_uint = 0x0000_0004; +pub const FAN_CLASS_PRE_CONTENT: c_uint = 0x0000_0008; -pub const FAN_UNLIMITED_QUEUE: ::c_uint = 0x0000_0010; -pub const FAN_UNLIMITED_MARKS: ::c_uint = 0x0000_0020; -pub const FAN_ENABLE_AUDIT: ::c_uint = 0x0000_0040; +pub const FAN_UNLIMITED_QUEUE: c_uint = 0x0000_0010; +pub const FAN_UNLIMITED_MARKS: c_uint = 0x0000_0020; +pub const FAN_ENABLE_AUDIT: c_uint = 0x0000_0040; -pub const FAN_REPORT_PIDFD: ::c_uint = 0x0000_0080; -pub const FAN_REPORT_TID: ::c_uint = 0x0000_0100; -pub const FAN_REPORT_FID: ::c_uint = 0x0000_0200; -pub const FAN_REPORT_DIR_FID: ::c_uint = 0x0000_0400; -pub const FAN_REPORT_NAME: ::c_uint = 0x0000_0800; -pub const FAN_REPORT_TARGET_FID: ::c_uint = 0x0000_1000; +pub const FAN_REPORT_PIDFD: c_uint = 0x0000_0080; +pub const FAN_REPORT_TID: c_uint = 0x0000_0100; +pub const FAN_REPORT_FID: c_uint = 0x0000_0200; +pub const FAN_REPORT_DIR_FID: c_uint = 0x0000_0400; +pub const FAN_REPORT_NAME: c_uint = 0x0000_0800; +pub const FAN_REPORT_TARGET_FID: c_uint = 0x0000_1000; -pub const FAN_REPORT_DFID_NAME: ::c_uint = FAN_REPORT_DIR_FID | FAN_REPORT_NAME; -pub const FAN_REPORT_DFID_NAME_TARGET: ::c_uint = +pub const FAN_REPORT_DFID_NAME: c_uint = FAN_REPORT_DIR_FID | FAN_REPORT_NAME; +pub const FAN_REPORT_DFID_NAME_TARGET: c_uint = FAN_REPORT_DFID_NAME | FAN_REPORT_FID | FAN_REPORT_TARGET_FID; -pub const FAN_MARK_ADD: ::c_uint = 0x0000_0001; -pub const FAN_MARK_REMOVE: ::c_uint = 0x0000_0002; -pub const FAN_MARK_DONT_FOLLOW: ::c_uint = 0x0000_0004; -pub const FAN_MARK_ONLYDIR: ::c_uint = 0x0000_0008; -pub const FAN_MARK_IGNORED_MASK: ::c_uint = 0x0000_0020; -pub const FAN_MARK_IGNORED_SURV_MODIFY: ::c_uint = 0x0000_0040; -pub const FAN_MARK_FLUSH: ::c_uint = 0x0000_0080; -pub const FAN_MARK_EVICTABLE: ::c_uint = 0x0000_0200; -pub const FAN_MARK_IGNORE: ::c_uint = 0x0000_0400; +pub const FAN_MARK_ADD: c_uint = 0x0000_0001; +pub const FAN_MARK_REMOVE: c_uint = 0x0000_0002; +pub const FAN_MARK_DONT_FOLLOW: c_uint = 0x0000_0004; +pub const FAN_MARK_ONLYDIR: c_uint = 0x0000_0008; +pub const FAN_MARK_IGNORED_MASK: c_uint = 0x0000_0020; +pub const FAN_MARK_IGNORED_SURV_MODIFY: c_uint = 0x0000_0040; +pub const FAN_MARK_FLUSH: c_uint = 0x0000_0080; +pub const FAN_MARK_EVICTABLE: c_uint = 0x0000_0200; +pub const FAN_MARK_IGNORE: c_uint = 0x0000_0400; -pub const FAN_MARK_INODE: ::c_uint = 0x0000_0000; -pub const FAN_MARK_MOUNT: ::c_uint = 0x0000_0010; -pub const FAN_MARK_FILESYSTEM: ::c_uint = 0x0000_0100; +pub const FAN_MARK_INODE: c_uint = 0x0000_0000; +pub const FAN_MARK_MOUNT: c_uint = 0x0000_0010; +pub const FAN_MARK_FILESYSTEM: c_uint = 0x0000_0100; -pub const FAN_MARK_IGNORE_SURV: ::c_uint = FAN_MARK_IGNORE | FAN_MARK_IGNORED_SURV_MODIFY; +pub const FAN_MARK_IGNORE_SURV: c_uint = FAN_MARK_IGNORE | FAN_MARK_IGNORED_SURV_MODIFY; pub const FANOTIFY_METADATA_VERSION: u8 = 3; @@ -5151,101 +5155,101 @@ pub const FAN_DENY: u32 = 0x02; pub const FAN_AUDIT: u32 = 0x10; pub const FAN_INFO: u32 = 0x20; -pub const FAN_NOFD: ::c_int = -1; -pub const FAN_NOPIDFD: ::c_int = FAN_NOFD; -pub const FAN_EPIDFD: ::c_int = -2; +pub const FAN_NOFD: c_int = -1; +pub const FAN_NOPIDFD: c_int = FAN_NOFD; +pub const FAN_EPIDFD: c_int = -2; // linux/futex.h -pub const FUTEX_WAIT: ::c_int = 0; -pub const FUTEX_WAKE: ::c_int = 1; -pub const FUTEX_FD: ::c_int = 2; -pub const FUTEX_REQUEUE: ::c_int = 3; -pub const FUTEX_CMP_REQUEUE: ::c_int = 4; -pub const FUTEX_WAKE_OP: ::c_int = 5; -pub const FUTEX_LOCK_PI: ::c_int = 6; -pub const FUTEX_UNLOCK_PI: ::c_int = 7; -pub const FUTEX_TRYLOCK_PI: ::c_int = 8; -pub const FUTEX_WAIT_BITSET: ::c_int = 9; -pub const FUTEX_WAKE_BITSET: ::c_int = 10; -pub const FUTEX_WAIT_REQUEUE_PI: ::c_int = 11; -pub const FUTEX_CMP_REQUEUE_PI: ::c_int = 12; -pub const FUTEX_LOCK_PI2: ::c_int = 13; - -pub const FUTEX_PRIVATE_FLAG: ::c_int = 128; -pub const FUTEX_CLOCK_REALTIME: ::c_int = 256; -pub const FUTEX_CMD_MASK: ::c_int = !(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME); +pub const FUTEX_WAIT: c_int = 0; +pub const FUTEX_WAKE: c_int = 1; +pub const FUTEX_FD: c_int = 2; +pub const FUTEX_REQUEUE: c_int = 3; +pub const FUTEX_CMP_REQUEUE: c_int = 4; +pub const FUTEX_WAKE_OP: c_int = 5; +pub const FUTEX_LOCK_PI: c_int = 6; +pub const FUTEX_UNLOCK_PI: c_int = 7; +pub const FUTEX_TRYLOCK_PI: c_int = 8; +pub const FUTEX_WAIT_BITSET: c_int = 9; +pub const FUTEX_WAKE_BITSET: c_int = 10; +pub const FUTEX_WAIT_REQUEUE_PI: c_int = 11; +pub const FUTEX_CMP_REQUEUE_PI: c_int = 12; +pub const FUTEX_LOCK_PI2: c_int = 13; + +pub const FUTEX_PRIVATE_FLAG: c_int = 128; +pub const FUTEX_CLOCK_REALTIME: c_int = 256; +pub const FUTEX_CMD_MASK: c_int = !(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME); pub const FUTEX_WAITERS: u32 = 0x80000000; pub const FUTEX_OWNER_DIED: u32 = 0x40000000; pub const FUTEX_TID_MASK: u32 = 0x3fffffff; -pub const FUTEX_BITSET_MATCH_ANY: ::c_int = 0xffffffff; +pub const FUTEX_BITSET_MATCH_ANY: c_int = 0xffffffff; -pub const FUTEX_OP_SET: ::c_int = 0; -pub const FUTEX_OP_ADD: ::c_int = 1; -pub const FUTEX_OP_OR: ::c_int = 2; -pub const FUTEX_OP_ANDN: ::c_int = 3; -pub const FUTEX_OP_XOR: ::c_int = 4; +pub const FUTEX_OP_SET: c_int = 0; +pub const FUTEX_OP_ADD: c_int = 1; +pub const FUTEX_OP_OR: c_int = 2; +pub const FUTEX_OP_ANDN: c_int = 3; +pub const FUTEX_OP_XOR: c_int = 4; -pub const FUTEX_OP_OPARG_SHIFT: ::c_int = 8; +pub const FUTEX_OP_OPARG_SHIFT: c_int = 8; -pub const FUTEX_OP_CMP_EQ: ::c_int = 0; -pub const FUTEX_OP_CMP_NE: ::c_int = 1; -pub const FUTEX_OP_CMP_LT: ::c_int = 2; -pub const FUTEX_OP_CMP_LE: ::c_int = 3; -pub const FUTEX_OP_CMP_GT: ::c_int = 4; -pub const FUTEX_OP_CMP_GE: ::c_int = 5; +pub const FUTEX_OP_CMP_EQ: c_int = 0; +pub const FUTEX_OP_CMP_NE: c_int = 1; +pub const FUTEX_OP_CMP_LT: c_int = 2; +pub const FUTEX_OP_CMP_LE: c_int = 3; +pub const FUTEX_OP_CMP_GT: c_int = 4; +pub const FUTEX_OP_CMP_GE: c_int = 5; -pub fn FUTEX_OP(op: ::c_int, oparg: ::c_int, cmp: ::c_int, cmparg: ::c_int) -> ::c_int { +pub fn FUTEX_OP(op: c_int, oparg: c_int, cmp: c_int, cmparg: c_int) -> c_int { ((op & 0xf) << 28) | ((cmp & 0xf) << 24) | ((oparg & 0xfff) << 12) | (cmparg & 0xfff) } // linux/kexec.h -pub const KEXEC_ON_CRASH: ::c_int = 0x00000001; -pub const KEXEC_PRESERVE_CONTEXT: ::c_int = 0x00000002; -pub const KEXEC_ARCH_MASK: ::c_int = 0xffff0000; -pub const KEXEC_FILE_UNLOAD: ::c_int = 0x00000001; -pub const KEXEC_FILE_ON_CRASH: ::c_int = 0x00000002; -pub const KEXEC_FILE_NO_INITRAMFS: ::c_int = 0x00000004; +pub const KEXEC_ON_CRASH: c_int = 0x00000001; +pub const KEXEC_PRESERVE_CONTEXT: c_int = 0x00000002; +pub const KEXEC_ARCH_MASK: c_int = 0xffff0000; +pub const KEXEC_FILE_UNLOAD: c_int = 0x00000001; +pub const KEXEC_FILE_ON_CRASH: c_int = 0x00000002; +pub const KEXEC_FILE_NO_INITRAMFS: c_int = 0x00000004; // linux/reboot.h -pub const LINUX_REBOOT_MAGIC1: ::c_int = 0xfee1dead; -pub const LINUX_REBOOT_MAGIC2: ::c_int = 672274793; -pub const LINUX_REBOOT_MAGIC2A: ::c_int = 85072278; -pub const LINUX_REBOOT_MAGIC2B: ::c_int = 369367448; -pub const LINUX_REBOOT_MAGIC2C: ::c_int = 537993216; - -pub const LINUX_REBOOT_CMD_RESTART: ::c_int = 0x01234567; -pub const LINUX_REBOOT_CMD_HALT: ::c_int = 0xCDEF0123; -pub const LINUX_REBOOT_CMD_CAD_ON: ::c_int = 0x89ABCDEF; -pub const LINUX_REBOOT_CMD_CAD_OFF: ::c_int = 0x00000000; -pub const LINUX_REBOOT_CMD_POWER_OFF: ::c_int = 0x4321FEDC; -pub const LINUX_REBOOT_CMD_RESTART2: ::c_int = 0xA1B2C3D4; -pub const LINUX_REBOOT_CMD_SW_SUSPEND: ::c_int = 0xD000FCE2; -pub const LINUX_REBOOT_CMD_KEXEC: ::c_int = 0x45584543; - -pub const REG_EXTENDED: ::c_int = 1; -pub const REG_ICASE: ::c_int = 2; -pub const REG_NEWLINE: ::c_int = 4; -pub const REG_NOSUB: ::c_int = 8; - -pub const REG_NOTBOL: ::c_int = 1; -pub const REG_NOTEOL: ::c_int = 2; - -pub const REG_ENOSYS: ::c_int = -1; -pub const REG_NOMATCH: ::c_int = 1; -pub const REG_BADPAT: ::c_int = 2; -pub const REG_ECOLLATE: ::c_int = 3; -pub const REG_ECTYPE: ::c_int = 4; -pub const REG_EESCAPE: ::c_int = 5; -pub const REG_ESUBREG: ::c_int = 6; -pub const REG_EBRACK: ::c_int = 7; -pub const REG_EPAREN: ::c_int = 8; -pub const REG_EBRACE: ::c_int = 9; -pub const REG_BADBR: ::c_int = 10; -pub const REG_ERANGE: ::c_int = 11; -pub const REG_ESPACE: ::c_int = 12; -pub const REG_BADRPT: ::c_int = 13; +pub const LINUX_REBOOT_MAGIC1: c_int = 0xfee1dead; +pub const LINUX_REBOOT_MAGIC2: c_int = 672274793; +pub const LINUX_REBOOT_MAGIC2A: c_int = 85072278; +pub const LINUX_REBOOT_MAGIC2B: c_int = 369367448; +pub const LINUX_REBOOT_MAGIC2C: c_int = 537993216; + +pub const LINUX_REBOOT_CMD_RESTART: c_int = 0x01234567; +pub const LINUX_REBOOT_CMD_HALT: c_int = 0xCDEF0123; +pub const LINUX_REBOOT_CMD_CAD_ON: c_int = 0x89ABCDEF; +pub const LINUX_REBOOT_CMD_CAD_OFF: c_int = 0x00000000; +pub const LINUX_REBOOT_CMD_POWER_OFF: c_int = 0x4321FEDC; +pub const LINUX_REBOOT_CMD_RESTART2: c_int = 0xA1B2C3D4; +pub const LINUX_REBOOT_CMD_SW_SUSPEND: c_int = 0xD000FCE2; +pub const LINUX_REBOOT_CMD_KEXEC: c_int = 0x45584543; + +pub const REG_EXTENDED: c_int = 1; +pub const REG_ICASE: c_int = 2; +pub const REG_NEWLINE: c_int = 4; +pub const REG_NOSUB: c_int = 8; + +pub const REG_NOTBOL: c_int = 1; +pub const REG_NOTEOL: c_int = 2; + +pub const REG_ENOSYS: c_int = -1; +pub const REG_NOMATCH: c_int = 1; +pub const REG_BADPAT: c_int = 2; +pub const REG_ECOLLATE: c_int = 3; +pub const REG_ECTYPE: c_int = 4; +pub const REG_EESCAPE: c_int = 5; +pub const REG_ESUBREG: c_int = 6; +pub const REG_EBRACK: c_int = 7; +pub const REG_EPAREN: c_int = 8; +pub const REG_EBRACE: c_int = 9; +pub const REG_BADBR: c_int = 10; +pub const REG_ERANGE: c_int = 11; +pub const REG_ESPACE: c_int = 12; +pub const REG_BADRPT: c_int = 13; // linux/errqueue.h pub const SO_EE_ORIGIN_NONE: u8 = 0; @@ -5256,41 +5260,41 @@ pub const SO_EE_ORIGIN_TXSTATUS: u8 = 4; pub const SO_EE_ORIGIN_TIMESTAMPING: u8 = SO_EE_ORIGIN_TXSTATUS; // errno.h -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const EWOULDBLOCK: ::c_int = EAGAIN; +pub const EPERM: c_int = 1; +pub const ENOENT: c_int = 2; +pub const ESRCH: c_int = 3; +pub const EINTR: c_int = 4; +pub const EIO: c_int = 5; +pub const ENXIO: c_int = 6; +pub const E2BIG: c_int = 7; +pub const ENOEXEC: c_int = 8; +pub const EBADF: c_int = 9; +pub const ECHILD: c_int = 10; +pub const EAGAIN: c_int = 11; +pub const ENOMEM: c_int = 12; +pub const EACCES: c_int = 13; +pub const EFAULT: c_int = 14; +pub const ENOTBLK: c_int = 15; +pub const EBUSY: c_int = 16; +pub const EEXIST: c_int = 17; +pub const EXDEV: c_int = 18; +pub const ENODEV: c_int = 19; +pub const ENOTDIR: c_int = 20; +pub const EISDIR: c_int = 21; +pub const EINVAL: c_int = 22; +pub const ENFILE: c_int = 23; +pub const EMFILE: c_int = 24; +pub const ENOTTY: c_int = 25; +pub const ETXTBSY: c_int = 26; +pub const EFBIG: c_int = 27; +pub const ENOSPC: c_int = 28; +pub const ESPIPE: c_int = 29; +pub const EROFS: c_int = 30; +pub const EMLINK: c_int = 31; +pub const EPIPE: c_int = 32; +pub const EDOM: c_int = 33; +pub const ERANGE: c_int = 34; +pub const EWOULDBLOCK: c_int = EAGAIN; // linux/can.h pub const CAN_EFF_FLAG: canid_t = 0x80000000; @@ -5299,28 +5303,28 @@ pub const CAN_ERR_FLAG: canid_t = 0x20000000; pub const CAN_SFF_MASK: canid_t = 0x000007FF; pub const CAN_EFF_MASK: canid_t = 0x1FFFFFFF; pub const CAN_ERR_MASK: canid_t = 0x1FFFFFFF; -pub const CANXL_PRIO_MASK: ::canid_t = CAN_SFF_MASK; +pub const CANXL_PRIO_MASK: crate::canid_t = CAN_SFF_MASK; -pub const CAN_SFF_ID_BITS: ::c_int = 11; -pub const CAN_EFF_ID_BITS: ::c_int = 29; -pub const CANXL_PRIO_BITS: ::c_int = CAN_SFF_ID_BITS; +pub const CAN_SFF_ID_BITS: c_int = 11; +pub const CAN_EFF_ID_BITS: c_int = 29; +pub const CANXL_PRIO_BITS: c_int = CAN_SFF_ID_BITS; -pub const CAN_MAX_DLC: ::c_int = 8; +pub const CAN_MAX_DLC: c_int = 8; pub const CAN_MAX_DLEN: usize = 8; -pub const CANFD_MAX_DLC: ::c_int = 15; +pub const CANFD_MAX_DLC: c_int = 15; pub const CANFD_MAX_DLEN: usize = 64; -pub const CANFD_BRS: ::c_int = 0x01; -pub const CANFD_ESI: ::c_int = 0x02; +pub const CANFD_BRS: c_int = 0x01; +pub const CANFD_ESI: c_int = 0x02; -pub const CANXL_MIN_DLC: ::c_int = 0; -pub const CANXL_MAX_DLC: ::c_int = 2047; -pub const CANXL_MAX_DLC_MASK: ::c_int = 0x07FF; +pub const CANXL_MIN_DLC: c_int = 0; +pub const CANXL_MAX_DLC: c_int = 2047; +pub const CANXL_MAX_DLC_MASK: c_int = 0x07FF; pub const CANXL_MIN_DLEN: usize = 1; pub const CANXL_MAX_DLEN: usize = 2048; -pub const CANXL_XLF: ::c_int = 0x80; -pub const CANXL_SEC: ::c_int = 0x01; +pub const CANXL_XLF: c_int = 0x80; +pub const CANXL_SEC: c_int = 0x01; pub const CAN_MTU: usize = size_of::(); pub const CANFD_MTU: usize = size_of::(); @@ -5332,406 +5336,406 @@ pub const CANXL_HDR_SIZE: usize = 12; pub const CANXL_MIN_MTU: usize = CANXL_HDR_SIZE + 64; pub const CANXL_MAX_MTU: usize = CANXL_MTU; -pub const CAN_RAW: ::c_int = 1; -pub const CAN_BCM: ::c_int = 2; -pub const CAN_TP16: ::c_int = 3; -pub const CAN_TP20: ::c_int = 4; -pub const CAN_MCNET: ::c_int = 5; -pub const CAN_ISOTP: ::c_int = 6; -pub const CAN_J1939: ::c_int = 7; -pub const CAN_NPROTO: ::c_int = 8; +pub const CAN_RAW: c_int = 1; +pub const CAN_BCM: c_int = 2; +pub const CAN_TP16: c_int = 3; +pub const CAN_TP20: c_int = 4; +pub const CAN_MCNET: c_int = 5; +pub const CAN_ISOTP: c_int = 6; +pub const CAN_J1939: c_int = 7; +pub const CAN_NPROTO: c_int = 8; -pub const SOL_CAN_BASE: ::c_int = 100; +pub const SOL_CAN_BASE: c_int = 100; pub const CAN_INV_FILTER: canid_t = 0x20000000; -pub const CAN_RAW_FILTER_MAX: ::c_int = 512; +pub const CAN_RAW_FILTER_MAX: c_int = 512; // linux/can/raw.h -pub const SOL_CAN_RAW: ::c_int = SOL_CAN_BASE + CAN_RAW; -pub const CAN_RAW_FILTER: ::c_int = 1; -pub const CAN_RAW_ERR_FILTER: ::c_int = 2; -pub const CAN_RAW_LOOPBACK: ::c_int = 3; -pub const CAN_RAW_RECV_OWN_MSGS: ::c_int = 4; -pub const CAN_RAW_FD_FRAMES: ::c_int = 5; -pub const CAN_RAW_JOIN_FILTERS: ::c_int = 6; -pub const CAN_RAW_XL_FRAMES: ::c_int = 7; +pub const SOL_CAN_RAW: c_int = SOL_CAN_BASE + CAN_RAW; +pub const CAN_RAW_FILTER: c_int = 1; +pub const CAN_RAW_ERR_FILTER: c_int = 2; +pub const CAN_RAW_LOOPBACK: c_int = 3; +pub const CAN_RAW_RECV_OWN_MSGS: c_int = 4; +pub const CAN_RAW_FD_FRAMES: c_int = 5; +pub const CAN_RAW_JOIN_FILTERS: c_int = 6; +pub const CAN_RAW_XL_FRAMES: c_int = 7; // linux/can/j1939.h -pub const SOL_CAN_J1939: ::c_int = SOL_CAN_BASE + CAN_J1939; - -pub const J1939_MAX_UNICAST_ADDR: ::c_uchar = 0xfd; -pub const J1939_IDLE_ADDR: ::c_uchar = 0xfe; -pub const J1939_NO_ADDR: ::c_uchar = 0xff; -pub const J1939_NO_NAME: ::c_ulong = 0; -pub const J1939_PGN_REQUEST: ::c_uint = 0x0ea00; -pub const J1939_PGN_ADDRESS_CLAIMED: ::c_uint = 0x0ee00; -pub const J1939_PGN_ADDRESS_COMMANDED: ::c_uint = 0x0fed8; -pub const J1939_PGN_PDU1_MAX: ::c_uint = 0x3ff00; -pub const J1939_PGN_MAX: ::c_uint = 0x3ffff; -pub const J1939_NO_PGN: ::c_uint = 0x40000; - -pub const SO_J1939_FILTER: ::c_int = 1; -pub const SO_J1939_PROMISC: ::c_int = 2; -pub const SO_J1939_SEND_PRIO: ::c_int = 3; -pub const SO_J1939_ERRQUEUE: ::c_int = 4; - -pub const SCM_J1939_DEST_ADDR: ::c_int = 1; -pub const SCM_J1939_DEST_NAME: ::c_int = 2; -pub const SCM_J1939_PRIO: ::c_int = 3; -pub const SCM_J1939_ERRQUEUE: ::c_int = 4; - -pub const J1939_NLA_PAD: ::c_int = 0; -pub const J1939_NLA_BYTES_ACKED: ::c_int = 1; -pub const J1939_NLA_TOTAL_SIZE: ::c_int = 2; -pub const J1939_NLA_PGN: ::c_int = 3; -pub const J1939_NLA_SRC_NAME: ::c_int = 4; -pub const J1939_NLA_DEST_NAME: ::c_int = 5; -pub const J1939_NLA_SRC_ADDR: ::c_int = 6; -pub const J1939_NLA_DEST_ADDR: ::c_int = 7; - -pub const J1939_EE_INFO_NONE: ::c_int = 0; -pub const J1939_EE_INFO_TX_ABORT: ::c_int = 1; -pub const J1939_EE_INFO_RX_RTS: ::c_int = 2; -pub const J1939_EE_INFO_RX_DPO: ::c_int = 3; -pub const J1939_EE_INFO_RX_ABORT: ::c_int = 4; - -pub const J1939_FILTER_MAX: ::c_int = 512; +pub const SOL_CAN_J1939: c_int = SOL_CAN_BASE + CAN_J1939; + +pub const J1939_MAX_UNICAST_ADDR: c_uchar = 0xfd; +pub const J1939_IDLE_ADDR: c_uchar = 0xfe; +pub const J1939_NO_ADDR: c_uchar = 0xff; +pub const J1939_NO_NAME: c_ulong = 0; +pub const J1939_PGN_REQUEST: c_uint = 0x0ea00; +pub const J1939_PGN_ADDRESS_CLAIMED: c_uint = 0x0ee00; +pub const J1939_PGN_ADDRESS_COMMANDED: c_uint = 0x0fed8; +pub const J1939_PGN_PDU1_MAX: c_uint = 0x3ff00; +pub const J1939_PGN_MAX: c_uint = 0x3ffff; +pub const J1939_NO_PGN: c_uint = 0x40000; + +pub const SO_J1939_FILTER: c_int = 1; +pub const SO_J1939_PROMISC: c_int = 2; +pub const SO_J1939_SEND_PRIO: c_int = 3; +pub const SO_J1939_ERRQUEUE: c_int = 4; + +pub const SCM_J1939_DEST_ADDR: c_int = 1; +pub const SCM_J1939_DEST_NAME: c_int = 2; +pub const SCM_J1939_PRIO: c_int = 3; +pub const SCM_J1939_ERRQUEUE: c_int = 4; + +pub const J1939_NLA_PAD: c_int = 0; +pub const J1939_NLA_BYTES_ACKED: c_int = 1; +pub const J1939_NLA_TOTAL_SIZE: c_int = 2; +pub const J1939_NLA_PGN: c_int = 3; +pub const J1939_NLA_SRC_NAME: c_int = 4; +pub const J1939_NLA_DEST_NAME: c_int = 5; +pub const J1939_NLA_SRC_ADDR: c_int = 6; +pub const J1939_NLA_DEST_ADDR: c_int = 7; + +pub const J1939_EE_INFO_NONE: c_int = 0; +pub const J1939_EE_INFO_TX_ABORT: c_int = 1; +pub const J1939_EE_INFO_RX_RTS: c_int = 2; +pub const J1939_EE_INFO_RX_DPO: c_int = 3; +pub const J1939_EE_INFO_RX_ABORT: c_int = 4; + +pub const J1939_FILTER_MAX: c_int = 512; // linux/sctp.h -pub const SCTP_FUTURE_ASSOC: ::c_int = 0; -pub const SCTP_CURRENT_ASSOC: ::c_int = 1; -pub const SCTP_ALL_ASSOC: ::c_int = 2; -pub const SCTP_RTOINFO: ::c_int = 0; -pub const SCTP_ASSOCINFO: ::c_int = 1; -pub const SCTP_INITMSG: ::c_int = 2; -pub const SCTP_NODELAY: ::c_int = 3; -pub const SCTP_AUTOCLOSE: ::c_int = 4; -pub const SCTP_SET_PEER_PRIMARY_ADDR: ::c_int = 5; -pub const SCTP_PRIMARY_ADDR: ::c_int = 6; -pub const SCTP_ADAPTATION_LAYER: ::c_int = 7; -pub const SCTP_DISABLE_FRAGMENTS: ::c_int = 8; -pub const SCTP_PEER_ADDR_PARAMS: ::c_int = 9; -pub const SCTP_DEFAULT_SEND_PARAM: ::c_int = 10; -pub const SCTP_EVENTS: ::c_int = 11; -pub const SCTP_I_WANT_MAPPED_V4_ADDR: ::c_int = 12; -pub const SCTP_MAXSEG: ::c_int = 13; -pub const SCTP_STATUS: ::c_int = 14; -pub const SCTP_GET_PEER_ADDR_INFO: ::c_int = 15; -pub const SCTP_DELAYED_ACK_TIME: ::c_int = 16; -pub const SCTP_DELAYED_ACK: ::c_int = SCTP_DELAYED_ACK_TIME; -pub const SCTP_DELAYED_SACK: ::c_int = SCTP_DELAYED_ACK_TIME; -pub const SCTP_CONTEXT: ::c_int = 17; -pub const SCTP_FRAGMENT_INTERLEAVE: ::c_int = 18; -pub const SCTP_PARTIAL_DELIVERY_POINT: ::c_int = 19; -pub const SCTP_MAX_BURST: ::c_int = 20; -pub const SCTP_AUTH_CHUNK: ::c_int = 21; -pub const SCTP_HMAC_IDENT: ::c_int = 22; -pub const SCTP_AUTH_KEY: ::c_int = 23; -pub const SCTP_AUTH_ACTIVE_KEY: ::c_int = 24; -pub const SCTP_AUTH_DELETE_KEY: ::c_int = 25; -pub const SCTP_PEER_AUTH_CHUNKS: ::c_int = 26; -pub const SCTP_LOCAL_AUTH_CHUNKS: ::c_int = 27; -pub const SCTP_GET_ASSOC_NUMBER: ::c_int = 28; -pub const SCTP_GET_ASSOC_ID_LIST: ::c_int = 29; -pub const SCTP_AUTO_ASCONF: ::c_int = 30; -pub const SCTP_PEER_ADDR_THLDS: ::c_int = 31; -pub const SCTP_RECVRCVINFO: ::c_int = 32; -pub const SCTP_RECVNXTINFO: ::c_int = 33; -pub const SCTP_DEFAULT_SNDINFO: ::c_int = 34; -pub const SCTP_AUTH_DEACTIVATE_KEY: ::c_int = 35; -pub const SCTP_REUSE_PORT: ::c_int = 36; -pub const SCTP_PEER_ADDR_THLDS_V2: ::c_int = 37; -pub const SCTP_PR_SCTP_NONE: ::c_int = 0x0000; -pub const SCTP_PR_SCTP_TTL: ::c_int = 0x0010; -pub const SCTP_PR_SCTP_RTX: ::c_int = 0x0020; -pub const SCTP_PR_SCTP_PRIO: ::c_int = 0x0030; -pub const SCTP_PR_SCTP_MAX: ::c_int = SCTP_PR_SCTP_PRIO; -pub const SCTP_PR_SCTP_MASK: ::c_int = 0x0030; -pub const SCTP_ENABLE_RESET_STREAM_REQ: ::c_int = 0x01; -pub const SCTP_ENABLE_RESET_ASSOC_REQ: ::c_int = 0x02; -pub const SCTP_ENABLE_CHANGE_ASSOC_REQ: ::c_int = 0x04; -pub const SCTP_ENABLE_STRRESET_MASK: ::c_int = 0x07; -pub const SCTP_STREAM_RESET_INCOMING: ::c_int = 0x01; -pub const SCTP_STREAM_RESET_OUTGOING: ::c_int = 0x02; - -pub const SCTP_INIT: ::c_int = 0; -pub const SCTP_SNDRCV: ::c_int = 1; -pub const SCTP_SNDINFO: ::c_int = 2; -pub const SCTP_RCVINFO: ::c_int = 3; -pub const SCTP_NXTINFO: ::c_int = 4; -pub const SCTP_PRINFO: ::c_int = 5; -pub const SCTP_AUTHINFO: ::c_int = 6; -pub const SCTP_DSTADDRV4: ::c_int = 7; -pub const SCTP_DSTADDRV6: ::c_int = 8; - -pub const SCTP_UNORDERED: ::c_int = 1 << 0; -pub const SCTP_ADDR_OVER: ::c_int = 1 << 1; -pub const SCTP_ABORT: ::c_int = 1 << 2; -pub const SCTP_SACK_IMMEDIATELY: ::c_int = 1 << 3; -pub const SCTP_SENDALL: ::c_int = 1 << 6; -pub const SCTP_PR_SCTP_ALL: ::c_int = 1 << 7; -pub const SCTP_NOTIFICATION: ::c_int = MSG_NOTIFICATION; -pub const SCTP_EOF: ::c_int = ::MSG_FIN; +pub const SCTP_FUTURE_ASSOC: c_int = 0; +pub const SCTP_CURRENT_ASSOC: c_int = 1; +pub const SCTP_ALL_ASSOC: c_int = 2; +pub const SCTP_RTOINFO: c_int = 0; +pub const SCTP_ASSOCINFO: c_int = 1; +pub const SCTP_INITMSG: c_int = 2; +pub const SCTP_NODELAY: c_int = 3; +pub const SCTP_AUTOCLOSE: c_int = 4; +pub const SCTP_SET_PEER_PRIMARY_ADDR: c_int = 5; +pub const SCTP_PRIMARY_ADDR: c_int = 6; +pub const SCTP_ADAPTATION_LAYER: c_int = 7; +pub const SCTP_DISABLE_FRAGMENTS: c_int = 8; +pub const SCTP_PEER_ADDR_PARAMS: c_int = 9; +pub const SCTP_DEFAULT_SEND_PARAM: c_int = 10; +pub const SCTP_EVENTS: c_int = 11; +pub const SCTP_I_WANT_MAPPED_V4_ADDR: c_int = 12; +pub const SCTP_MAXSEG: c_int = 13; +pub const SCTP_STATUS: c_int = 14; +pub const SCTP_GET_PEER_ADDR_INFO: c_int = 15; +pub const SCTP_DELAYED_ACK_TIME: c_int = 16; +pub const SCTP_DELAYED_ACK: c_int = SCTP_DELAYED_ACK_TIME; +pub const SCTP_DELAYED_SACK: c_int = SCTP_DELAYED_ACK_TIME; +pub const SCTP_CONTEXT: c_int = 17; +pub const SCTP_FRAGMENT_INTERLEAVE: c_int = 18; +pub const SCTP_PARTIAL_DELIVERY_POINT: c_int = 19; +pub const SCTP_MAX_BURST: c_int = 20; +pub const SCTP_AUTH_CHUNK: c_int = 21; +pub const SCTP_HMAC_IDENT: c_int = 22; +pub const SCTP_AUTH_KEY: c_int = 23; +pub const SCTP_AUTH_ACTIVE_KEY: c_int = 24; +pub const SCTP_AUTH_DELETE_KEY: c_int = 25; +pub const SCTP_PEER_AUTH_CHUNKS: c_int = 26; +pub const SCTP_LOCAL_AUTH_CHUNKS: c_int = 27; +pub const SCTP_GET_ASSOC_NUMBER: c_int = 28; +pub const SCTP_GET_ASSOC_ID_LIST: c_int = 29; +pub const SCTP_AUTO_ASCONF: c_int = 30; +pub const SCTP_PEER_ADDR_THLDS: c_int = 31; +pub const SCTP_RECVRCVINFO: c_int = 32; +pub const SCTP_RECVNXTINFO: c_int = 33; +pub const SCTP_DEFAULT_SNDINFO: c_int = 34; +pub const SCTP_AUTH_DEACTIVATE_KEY: c_int = 35; +pub const SCTP_REUSE_PORT: c_int = 36; +pub const SCTP_PEER_ADDR_THLDS_V2: c_int = 37; +pub const SCTP_PR_SCTP_NONE: c_int = 0x0000; +pub const SCTP_PR_SCTP_TTL: c_int = 0x0010; +pub const SCTP_PR_SCTP_RTX: c_int = 0x0020; +pub const SCTP_PR_SCTP_PRIO: c_int = 0x0030; +pub const SCTP_PR_SCTP_MAX: c_int = SCTP_PR_SCTP_PRIO; +pub const SCTP_PR_SCTP_MASK: c_int = 0x0030; +pub const SCTP_ENABLE_RESET_STREAM_REQ: c_int = 0x01; +pub const SCTP_ENABLE_RESET_ASSOC_REQ: c_int = 0x02; +pub const SCTP_ENABLE_CHANGE_ASSOC_REQ: c_int = 0x04; +pub const SCTP_ENABLE_STRRESET_MASK: c_int = 0x07; +pub const SCTP_STREAM_RESET_INCOMING: c_int = 0x01; +pub const SCTP_STREAM_RESET_OUTGOING: c_int = 0x02; + +pub const SCTP_INIT: c_int = 0; +pub const SCTP_SNDRCV: c_int = 1; +pub const SCTP_SNDINFO: c_int = 2; +pub const SCTP_RCVINFO: c_int = 3; +pub const SCTP_NXTINFO: c_int = 4; +pub const SCTP_PRINFO: c_int = 5; +pub const SCTP_AUTHINFO: c_int = 6; +pub const SCTP_DSTADDRV4: c_int = 7; +pub const SCTP_DSTADDRV6: c_int = 8; + +pub const SCTP_UNORDERED: c_int = 1 << 0; +pub const SCTP_ADDR_OVER: c_int = 1 << 1; +pub const SCTP_ABORT: c_int = 1 << 2; +pub const SCTP_SACK_IMMEDIATELY: c_int = 1 << 3; +pub const SCTP_SENDALL: c_int = 1 << 6; +pub const SCTP_PR_SCTP_ALL: c_int = 1 << 7; +pub const SCTP_NOTIFICATION: c_int = MSG_NOTIFICATION; +pub const SCTP_EOF: c_int = crate::MSG_FIN; /* DCCP socket options */ -pub const DCCP_SOCKOPT_PACKET_SIZE: ::c_int = 1; -pub const DCCP_SOCKOPT_SERVICE: ::c_int = 2; -pub const DCCP_SOCKOPT_CHANGE_L: ::c_int = 3; -pub const DCCP_SOCKOPT_CHANGE_R: ::c_int = 4; -pub const DCCP_SOCKOPT_GET_CUR_MPS: ::c_int = 5; -pub const DCCP_SOCKOPT_SERVER_TIMEWAIT: ::c_int = 6; -pub const DCCP_SOCKOPT_SEND_CSCOV: ::c_int = 10; -pub const DCCP_SOCKOPT_RECV_CSCOV: ::c_int = 11; -pub const DCCP_SOCKOPT_AVAILABLE_CCIDS: ::c_int = 12; -pub const DCCP_SOCKOPT_CCID: ::c_int = 13; -pub const DCCP_SOCKOPT_TX_CCID: ::c_int = 14; -pub const DCCP_SOCKOPT_RX_CCID: ::c_int = 15; -pub const DCCP_SOCKOPT_QPOLICY_ID: ::c_int = 16; -pub const DCCP_SOCKOPT_QPOLICY_TXQLEN: ::c_int = 17; -pub const DCCP_SOCKOPT_CCID_RX_INFO: ::c_int = 128; -pub const DCCP_SOCKOPT_CCID_TX_INFO: ::c_int = 192; +pub const DCCP_SOCKOPT_PACKET_SIZE: c_int = 1; +pub const DCCP_SOCKOPT_SERVICE: c_int = 2; +pub const DCCP_SOCKOPT_CHANGE_L: c_int = 3; +pub const DCCP_SOCKOPT_CHANGE_R: c_int = 4; +pub const DCCP_SOCKOPT_GET_CUR_MPS: c_int = 5; +pub const DCCP_SOCKOPT_SERVER_TIMEWAIT: c_int = 6; +pub const DCCP_SOCKOPT_SEND_CSCOV: c_int = 10; +pub const DCCP_SOCKOPT_RECV_CSCOV: c_int = 11; +pub const DCCP_SOCKOPT_AVAILABLE_CCIDS: c_int = 12; +pub const DCCP_SOCKOPT_CCID: c_int = 13; +pub const DCCP_SOCKOPT_TX_CCID: c_int = 14; +pub const DCCP_SOCKOPT_RX_CCID: c_int = 15; +pub const DCCP_SOCKOPT_QPOLICY_ID: c_int = 16; +pub const DCCP_SOCKOPT_QPOLICY_TXQLEN: c_int = 17; +pub const DCCP_SOCKOPT_CCID_RX_INFO: c_int = 128; +pub const DCCP_SOCKOPT_CCID_TX_INFO: c_int = 192; /// maximum number of services provided on the same listening port -pub const DCCP_SERVICE_LIST_MAX_LEN: ::c_int = 32; - -pub const CTL_KERN: ::c_int = 1; -pub const CTL_VM: ::c_int = 2; -pub const CTL_NET: ::c_int = 3; -pub const CTL_FS: ::c_int = 5; -pub const CTL_DEBUG: ::c_int = 6; -pub const CTL_DEV: ::c_int = 7; -pub const CTL_BUS: ::c_int = 8; -pub const CTL_ABI: ::c_int = 9; -pub const CTL_CPU: ::c_int = 10; - -pub const CTL_BUS_ISA: ::c_int = 1; - -pub const INOTIFY_MAX_USER_INSTANCES: ::c_int = 1; -pub const INOTIFY_MAX_USER_WATCHES: ::c_int = 2; -pub const INOTIFY_MAX_QUEUED_EVENTS: ::c_int = 3; - -pub const KERN_OSTYPE: ::c_int = 1; -pub const KERN_OSRELEASE: ::c_int = 2; -pub const KERN_OSREV: ::c_int = 3; -pub const KERN_VERSION: ::c_int = 4; -pub const KERN_SECUREMASK: ::c_int = 5; -pub const KERN_PROF: ::c_int = 6; -pub const KERN_NODENAME: ::c_int = 7; -pub const KERN_DOMAINNAME: ::c_int = 8; -pub const KERN_PANIC: ::c_int = 15; -pub const KERN_REALROOTDEV: ::c_int = 16; -pub const KERN_SPARC_REBOOT: ::c_int = 21; -pub const KERN_CTLALTDEL: ::c_int = 22; -pub const KERN_PRINTK: ::c_int = 23; -pub const KERN_NAMETRANS: ::c_int = 24; -pub const KERN_PPC_HTABRECLAIM: ::c_int = 25; -pub const KERN_PPC_ZEROPAGED: ::c_int = 26; -pub const KERN_PPC_POWERSAVE_NAP: ::c_int = 27; -pub const KERN_MODPROBE: ::c_int = 28; -pub const KERN_SG_BIG_BUFF: ::c_int = 29; -pub const KERN_ACCT: ::c_int = 30; -pub const KERN_PPC_L2CR: ::c_int = 31; -pub const KERN_RTSIGNR: ::c_int = 32; -pub const KERN_RTSIGMAX: ::c_int = 33; -pub const KERN_SHMMAX: ::c_int = 34; -pub const KERN_MSGMAX: ::c_int = 35; -pub const KERN_MSGMNB: ::c_int = 36; -pub const KERN_MSGPOOL: ::c_int = 37; -pub const KERN_SYSRQ: ::c_int = 38; -pub const KERN_MAX_THREADS: ::c_int = 39; -pub const KERN_RANDOM: ::c_int = 40; -pub const KERN_SHMALL: ::c_int = 41; -pub const KERN_MSGMNI: ::c_int = 42; -pub const KERN_SEM: ::c_int = 43; -pub const KERN_SPARC_STOP_A: ::c_int = 44; -pub const KERN_SHMMNI: ::c_int = 45; -pub const KERN_OVERFLOWUID: ::c_int = 46; -pub const KERN_OVERFLOWGID: ::c_int = 47; -pub const KERN_SHMPATH: ::c_int = 48; -pub const KERN_HOTPLUG: ::c_int = 49; -pub const KERN_IEEE_EMULATION_WARNINGS: ::c_int = 50; -pub const KERN_S390_USER_DEBUG_LOGGING: ::c_int = 51; -pub const KERN_CORE_USES_PID: ::c_int = 52; -pub const KERN_TAINTED: ::c_int = 53; -pub const KERN_CADPID: ::c_int = 54; -pub const KERN_PIDMAX: ::c_int = 55; -pub const KERN_CORE_PATTERN: ::c_int = 56; -pub const KERN_PANIC_ON_OOPS: ::c_int = 57; -pub const KERN_HPPA_PWRSW: ::c_int = 58; -pub const KERN_HPPA_UNALIGNED: ::c_int = 59; -pub const KERN_PRINTK_RATELIMIT: ::c_int = 60; -pub const KERN_PRINTK_RATELIMIT_BURST: ::c_int = 61; -pub const KERN_PTY: ::c_int = 62; -pub const KERN_NGROUPS_MAX: ::c_int = 63; -pub const KERN_SPARC_SCONS_PWROFF: ::c_int = 64; -pub const KERN_HZ_TIMER: ::c_int = 65; -pub const KERN_UNKNOWN_NMI_PANIC: ::c_int = 66; -pub const KERN_BOOTLOADER_TYPE: ::c_int = 67; -pub const KERN_RANDOMIZE: ::c_int = 68; -pub const KERN_SETUID_DUMPABLE: ::c_int = 69; -pub const KERN_SPIN_RETRY: ::c_int = 70; -pub const KERN_ACPI_VIDEO_FLAGS: ::c_int = 71; -pub const KERN_IA64_UNALIGNED: ::c_int = 72; -pub const KERN_COMPAT_LOG: ::c_int = 73; -pub const KERN_MAX_LOCK_DEPTH: ::c_int = 74; -pub const KERN_NMI_WATCHDOG: ::c_int = 75; -pub const KERN_PANIC_ON_NMI: ::c_int = 76; - -pub const VM_OVERCOMMIT_MEMORY: ::c_int = 5; -pub const VM_PAGE_CLUSTER: ::c_int = 10; -pub const VM_DIRTY_BACKGROUND: ::c_int = 11; -pub const VM_DIRTY_RATIO: ::c_int = 12; -pub const VM_DIRTY_WB_CS: ::c_int = 13; -pub const VM_DIRTY_EXPIRE_CS: ::c_int = 14; -pub const VM_NR_PDFLUSH_THREADS: ::c_int = 15; -pub const VM_OVERCOMMIT_RATIO: ::c_int = 16; -pub const VM_PAGEBUF: ::c_int = 17; -pub const VM_HUGETLB_PAGES: ::c_int = 18; -pub const VM_SWAPPINESS: ::c_int = 19; -pub const VM_LOWMEM_RESERVE_RATIO: ::c_int = 20; -pub const VM_MIN_FREE_KBYTES: ::c_int = 21; -pub const VM_MAX_MAP_COUNT: ::c_int = 22; -pub const VM_LAPTOP_MODE: ::c_int = 23; -pub const VM_BLOCK_DUMP: ::c_int = 24; -pub const VM_HUGETLB_GROUP: ::c_int = 25; -pub const VM_VFS_CACHE_PRESSURE: ::c_int = 26; -pub const VM_LEGACY_VA_LAYOUT: ::c_int = 27; -pub const VM_SWAP_TOKEN_TIMEOUT: ::c_int = 28; -pub const VM_DROP_PAGECACHE: ::c_int = 29; -pub const VM_PERCPU_PAGELIST_FRACTION: ::c_int = 30; -pub const VM_ZONE_RECLAIM_MODE: ::c_int = 31; -pub const VM_MIN_UNMAPPED: ::c_int = 32; -pub const VM_PANIC_ON_OOM: ::c_int = 33; -pub const VM_VDSO_ENABLED: ::c_int = 34; -pub const VM_MIN_SLAB: ::c_int = 35; - -pub const NET_CORE: ::c_int = 1; -pub const NET_ETHER: ::c_int = 2; -pub const NET_802: ::c_int = 3; -pub const NET_UNIX: ::c_int = 4; -pub const NET_IPV4: ::c_int = 5; -pub const NET_IPX: ::c_int = 6; -pub const NET_ATALK: ::c_int = 7; -pub const NET_NETROM: ::c_int = 8; -pub const NET_AX25: ::c_int = 9; -pub const NET_BRIDGE: ::c_int = 10; -pub const NET_ROSE: ::c_int = 11; -pub const NET_IPV6: ::c_int = 12; -pub const NET_X25: ::c_int = 13; -pub const NET_TR: ::c_int = 14; -pub const NET_DECNET: ::c_int = 15; -pub const NET_ECONET: ::c_int = 16; -pub const NET_SCTP: ::c_int = 17; -pub const NET_LLC: ::c_int = 18; -pub const NET_NETFILTER: ::c_int = 19; -pub const NET_DCCP: ::c_int = 20; -pub const NET_IRDA: ::c_int = 412; +pub const DCCP_SERVICE_LIST_MAX_LEN: c_int = 32; + +pub const CTL_KERN: c_int = 1; +pub const CTL_VM: c_int = 2; +pub const CTL_NET: c_int = 3; +pub const CTL_FS: c_int = 5; +pub const CTL_DEBUG: c_int = 6; +pub const CTL_DEV: c_int = 7; +pub const CTL_BUS: c_int = 8; +pub const CTL_ABI: c_int = 9; +pub const CTL_CPU: c_int = 10; + +pub const CTL_BUS_ISA: c_int = 1; + +pub const INOTIFY_MAX_USER_INSTANCES: c_int = 1; +pub const INOTIFY_MAX_USER_WATCHES: c_int = 2; +pub const INOTIFY_MAX_QUEUED_EVENTS: c_int = 3; + +pub const KERN_OSTYPE: c_int = 1; +pub const KERN_OSRELEASE: c_int = 2; +pub const KERN_OSREV: c_int = 3; +pub const KERN_VERSION: c_int = 4; +pub const KERN_SECUREMASK: c_int = 5; +pub const KERN_PROF: c_int = 6; +pub const KERN_NODENAME: c_int = 7; +pub const KERN_DOMAINNAME: c_int = 8; +pub const KERN_PANIC: c_int = 15; +pub const KERN_REALROOTDEV: c_int = 16; +pub const KERN_SPARC_REBOOT: c_int = 21; +pub const KERN_CTLALTDEL: c_int = 22; +pub const KERN_PRINTK: c_int = 23; +pub const KERN_NAMETRANS: c_int = 24; +pub const KERN_PPC_HTABRECLAIM: c_int = 25; +pub const KERN_PPC_ZEROPAGED: c_int = 26; +pub const KERN_PPC_POWERSAVE_NAP: c_int = 27; +pub const KERN_MODPROBE: c_int = 28; +pub const KERN_SG_BIG_BUFF: c_int = 29; +pub const KERN_ACCT: c_int = 30; +pub const KERN_PPC_L2CR: c_int = 31; +pub const KERN_RTSIGNR: c_int = 32; +pub const KERN_RTSIGMAX: c_int = 33; +pub const KERN_SHMMAX: c_int = 34; +pub const KERN_MSGMAX: c_int = 35; +pub const KERN_MSGMNB: c_int = 36; +pub const KERN_MSGPOOL: c_int = 37; +pub const KERN_SYSRQ: c_int = 38; +pub const KERN_MAX_THREADS: c_int = 39; +pub const KERN_RANDOM: c_int = 40; +pub const KERN_SHMALL: c_int = 41; +pub const KERN_MSGMNI: c_int = 42; +pub const KERN_SEM: c_int = 43; +pub const KERN_SPARC_STOP_A: c_int = 44; +pub const KERN_SHMMNI: c_int = 45; +pub const KERN_OVERFLOWUID: c_int = 46; +pub const KERN_OVERFLOWGID: c_int = 47; +pub const KERN_SHMPATH: c_int = 48; +pub const KERN_HOTPLUG: c_int = 49; +pub const KERN_IEEE_EMULATION_WARNINGS: c_int = 50; +pub const KERN_S390_USER_DEBUG_LOGGING: c_int = 51; +pub const KERN_CORE_USES_PID: c_int = 52; +pub const KERN_TAINTED: c_int = 53; +pub const KERN_CADPID: c_int = 54; +pub const KERN_PIDMAX: c_int = 55; +pub const KERN_CORE_PATTERN: c_int = 56; +pub const KERN_PANIC_ON_OOPS: c_int = 57; +pub const KERN_HPPA_PWRSW: c_int = 58; +pub const KERN_HPPA_UNALIGNED: c_int = 59; +pub const KERN_PRINTK_RATELIMIT: c_int = 60; +pub const KERN_PRINTK_RATELIMIT_BURST: c_int = 61; +pub const KERN_PTY: c_int = 62; +pub const KERN_NGROUPS_MAX: c_int = 63; +pub const KERN_SPARC_SCONS_PWROFF: c_int = 64; +pub const KERN_HZ_TIMER: c_int = 65; +pub const KERN_UNKNOWN_NMI_PANIC: c_int = 66; +pub const KERN_BOOTLOADER_TYPE: c_int = 67; +pub const KERN_RANDOMIZE: c_int = 68; +pub const KERN_SETUID_DUMPABLE: c_int = 69; +pub const KERN_SPIN_RETRY: c_int = 70; +pub const KERN_ACPI_VIDEO_FLAGS: c_int = 71; +pub const KERN_IA64_UNALIGNED: c_int = 72; +pub const KERN_COMPAT_LOG: c_int = 73; +pub const KERN_MAX_LOCK_DEPTH: c_int = 74; +pub const KERN_NMI_WATCHDOG: c_int = 75; +pub const KERN_PANIC_ON_NMI: c_int = 76; + +pub const VM_OVERCOMMIT_MEMORY: c_int = 5; +pub const VM_PAGE_CLUSTER: c_int = 10; +pub const VM_DIRTY_BACKGROUND: c_int = 11; +pub const VM_DIRTY_RATIO: c_int = 12; +pub const VM_DIRTY_WB_CS: c_int = 13; +pub const VM_DIRTY_EXPIRE_CS: c_int = 14; +pub const VM_NR_PDFLUSH_THREADS: c_int = 15; +pub const VM_OVERCOMMIT_RATIO: c_int = 16; +pub const VM_PAGEBUF: c_int = 17; +pub const VM_HUGETLB_PAGES: c_int = 18; +pub const VM_SWAPPINESS: c_int = 19; +pub const VM_LOWMEM_RESERVE_RATIO: c_int = 20; +pub const VM_MIN_FREE_KBYTES: c_int = 21; +pub const VM_MAX_MAP_COUNT: c_int = 22; +pub const VM_LAPTOP_MODE: c_int = 23; +pub const VM_BLOCK_DUMP: c_int = 24; +pub const VM_HUGETLB_GROUP: c_int = 25; +pub const VM_VFS_CACHE_PRESSURE: c_int = 26; +pub const VM_LEGACY_VA_LAYOUT: c_int = 27; +pub const VM_SWAP_TOKEN_TIMEOUT: c_int = 28; +pub const VM_DROP_PAGECACHE: c_int = 29; +pub const VM_PERCPU_PAGELIST_FRACTION: c_int = 30; +pub const VM_ZONE_RECLAIM_MODE: c_int = 31; +pub const VM_MIN_UNMAPPED: c_int = 32; +pub const VM_PANIC_ON_OOM: c_int = 33; +pub const VM_VDSO_ENABLED: c_int = 34; +pub const VM_MIN_SLAB: c_int = 35; + +pub const NET_CORE: c_int = 1; +pub const NET_ETHER: c_int = 2; +pub const NET_802: c_int = 3; +pub const NET_UNIX: c_int = 4; +pub const NET_IPV4: c_int = 5; +pub const NET_IPX: c_int = 6; +pub const NET_ATALK: c_int = 7; +pub const NET_NETROM: c_int = 8; +pub const NET_AX25: c_int = 9; +pub const NET_BRIDGE: c_int = 10; +pub const NET_ROSE: c_int = 11; +pub const NET_IPV6: c_int = 12; +pub const NET_X25: c_int = 13; +pub const NET_TR: c_int = 14; +pub const NET_DECNET: c_int = 15; +pub const NET_ECONET: c_int = 16; +pub const NET_SCTP: c_int = 17; +pub const NET_LLC: c_int = 18; +pub const NET_NETFILTER: c_int = 19; +pub const NET_DCCP: c_int = 20; +pub const NET_IRDA: c_int = 412; // include/linux/sched.h -pub const PF_VCPU: ::c_int = 0x00000001; -pub const PF_IDLE: ::c_int = 0x00000002; -pub const PF_EXITING: ::c_int = 0x00000004; -pub const PF_POSTCOREDUMP: ::c_int = 0x00000008; -pub const PF_IO_WORKER: ::c_int = 0x00000010; -pub const PF_WQ_WORKER: ::c_int = 0x00000020; -pub const PF_FORKNOEXEC: ::c_int = 0x00000040; -pub const PF_MCE_PROCESS: ::c_int = 0x00000080; -pub const PF_SUPERPRIV: ::c_int = 0x00000100; -pub const PF_DUMPCORE: ::c_int = 0x00000200; -pub const PF_SIGNALED: ::c_int = 0x00000400; -pub const PF_MEMALLOC: ::c_int = 0x00000800; -pub const PF_NPROC_EXCEEDED: ::c_int = 0x00001000; -pub const PF_USED_MATH: ::c_int = 0x00002000; -pub const PF_USER_WORKER: ::c_int = 0x00004000; -pub const PF_NOFREEZE: ::c_int = 0x00008000; -pub const PF_KSWAPD: ::c_int = 0x00020000; -pub const PF_MEMALLOC_NOFS: ::c_int = 0x00040000; -pub const PF_MEMALLOC_NOIO: ::c_int = 0x00080000; -pub const PF_LOCAL_THROTTLE: ::c_int = 0x00100000; -pub const PF_KTHREAD: ::c_int = 0x00200000; -pub const PF_RANDOMIZE: ::c_int = 0x00400000; -pub const PF_NO_SETAFFINITY: ::c_int = 0x04000000; -pub const PF_MCE_EARLY: ::c_int = 0x08000000; -pub const PF_MEMALLOC_PIN: ::c_int = 0x10000000; - -pub const CSIGNAL: ::c_int = 0x000000ff; - -pub const SCHED_NORMAL: ::c_int = 0; -pub const SCHED_OTHER: ::c_int = 0; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; -pub const SCHED_BATCH: ::c_int = 3; -pub const SCHED_IDLE: ::c_int = 5; -pub const SCHED_DEADLINE: ::c_int = 6; - -pub const SCHED_RESET_ON_FORK: ::c_int = 0x40000000; - -pub const CLONE_PIDFD: ::c_int = 0x1000; - -pub const SCHED_FLAG_RESET_ON_FORK: ::c_int = 0x01; -pub const SCHED_FLAG_RECLAIM: ::c_int = 0x02; -pub const SCHED_FLAG_DL_OVERRUN: ::c_int = 0x04; -pub const SCHED_FLAG_KEEP_POLICY: ::c_int = 0x08; -pub const SCHED_FLAG_KEEP_PARAMS: ::c_int = 0x10; -pub const SCHED_FLAG_UTIL_CLAMP_MIN: ::c_int = 0x20; -pub const SCHED_FLAG_UTIL_CLAMP_MAX: ::c_int = 0x40; +pub const PF_VCPU: c_int = 0x00000001; +pub const PF_IDLE: c_int = 0x00000002; +pub const PF_EXITING: c_int = 0x00000004; +pub const PF_POSTCOREDUMP: c_int = 0x00000008; +pub const PF_IO_WORKER: c_int = 0x00000010; +pub const PF_WQ_WORKER: c_int = 0x00000020; +pub const PF_FORKNOEXEC: c_int = 0x00000040; +pub const PF_MCE_PROCESS: c_int = 0x00000080; +pub const PF_SUPERPRIV: c_int = 0x00000100; +pub const PF_DUMPCORE: c_int = 0x00000200; +pub const PF_SIGNALED: c_int = 0x00000400; +pub const PF_MEMALLOC: c_int = 0x00000800; +pub const PF_NPROC_EXCEEDED: c_int = 0x00001000; +pub const PF_USED_MATH: c_int = 0x00002000; +pub const PF_USER_WORKER: c_int = 0x00004000; +pub const PF_NOFREEZE: c_int = 0x00008000; +pub const PF_KSWAPD: c_int = 0x00020000; +pub const PF_MEMALLOC_NOFS: c_int = 0x00040000; +pub const PF_MEMALLOC_NOIO: c_int = 0x00080000; +pub const PF_LOCAL_THROTTLE: c_int = 0x00100000; +pub const PF_KTHREAD: c_int = 0x00200000; +pub const PF_RANDOMIZE: c_int = 0x00400000; +pub const PF_NO_SETAFFINITY: c_int = 0x04000000; +pub const PF_MCE_EARLY: c_int = 0x08000000; +pub const PF_MEMALLOC_PIN: c_int = 0x10000000; + +pub const CSIGNAL: c_int = 0x000000ff; + +pub const SCHED_NORMAL: c_int = 0; +pub const SCHED_OTHER: c_int = 0; +pub const SCHED_FIFO: c_int = 1; +pub const SCHED_RR: c_int = 2; +pub const SCHED_BATCH: c_int = 3; +pub const SCHED_IDLE: c_int = 5; +pub const SCHED_DEADLINE: c_int = 6; + +pub const SCHED_RESET_ON_FORK: c_int = 0x40000000; + +pub const CLONE_PIDFD: c_int = 0x1000; + +pub const SCHED_FLAG_RESET_ON_FORK: c_int = 0x01; +pub const SCHED_FLAG_RECLAIM: c_int = 0x02; +pub const SCHED_FLAG_DL_OVERRUN: c_int = 0x04; +pub const SCHED_FLAG_KEEP_POLICY: c_int = 0x08; +pub const SCHED_FLAG_KEEP_PARAMS: c_int = 0x10; +pub const SCHED_FLAG_UTIL_CLAMP_MIN: c_int = 0x20; +pub const SCHED_FLAG_UTIL_CLAMP_MAX: c_int = 0x40; // linux/if_xdp.h -pub const XDP_UMEM_TX_SW_CSUM: ::__u32 = 1 << 1; -pub const XDP_UMEM_TX_METADATA_LEN: ::__u32 = 1 << 2; +pub const XDP_UMEM_TX_SW_CSUM: __u32 = 1 << 1; +pub const XDP_UMEM_TX_METADATA_LEN: __u32 = 1 << 2; -pub const XDP_TXMD_FLAGS_TIMESTAMP: ::__u32 = 1 << 0; -pub const XDP_TXMD_FLAGS_CHECKSUM: ::__u32 = 1 << 1; +pub const XDP_TXMD_FLAGS_TIMESTAMP: __u32 = 1 << 0; +pub const XDP_TXMD_FLAGS_CHECKSUM: __u32 = 1 << 1; -pub const XDP_TX_METADATA: ::__u32 = 1 << 1; +pub const XDP_TX_METADATA: __u32 = 1 << 1; // linux/mount.h -pub const MOUNT_ATTR_RDONLY: ::__u64 = 0x00000001; -pub const MOUNT_ATTR_NOSUID: ::__u64 = 0x00000002; -pub const MOUNT_ATTR_NODEV: ::__u64 = 0x00000004; -pub const MOUNT_ATTR_NOEXEC: ::__u64 = 0x00000008; -pub const MOUNT_ATTR__ATIME: ::__u64 = 0x00000070; -pub const MOUNT_ATTR_RELATIME: ::__u64 = 0x00000000; -pub const MOUNT_ATTR_NOATIME: ::__u64 = 0x00000010; -pub const MOUNT_ATTR_STRICTATIME: ::__u64 = 0x00000020; -pub const MOUNT_ATTR_NODIRATIME: ::__u64 = 0x00000080; -pub const MOUNT_ATTR_IDMAP: ::__u64 = 0x00100000; -pub const MOUNT_ATTR_NOSYMFOLLOW: ::__u64 = 0x00200000; - -pub const MOUNT_ATTR_SIZE_VER0: ::c_int = 32; +pub const MOUNT_ATTR_RDONLY: crate::__u64 = 0x00000001; +pub const MOUNT_ATTR_NOSUID: crate::__u64 = 0x00000002; +pub const MOUNT_ATTR_NODEV: crate::__u64 = 0x00000004; +pub const MOUNT_ATTR_NOEXEC: crate::__u64 = 0x00000008; +pub const MOUNT_ATTR__ATIME: crate::__u64 = 0x00000070; +pub const MOUNT_ATTR_RELATIME: crate::__u64 = 0x00000000; +pub const MOUNT_ATTR_NOATIME: crate::__u64 = 0x00000010; +pub const MOUNT_ATTR_STRICTATIME: crate::__u64 = 0x00000020; +pub const MOUNT_ATTR_NODIRATIME: crate::__u64 = 0x00000080; +pub const MOUNT_ATTR_IDMAP: crate::__u64 = 0x00100000; +pub const MOUNT_ATTR_NOSYMFOLLOW: crate::__u64 = 0x00200000; + +pub const MOUNT_ATTR_SIZE_VER0: c_int = 32; // elf.h -pub const NT_PRSTATUS: ::c_int = 1; -pub const NT_PRFPREG: ::c_int = 2; -pub const NT_FPREGSET: ::c_int = 2; -pub const NT_PRPSINFO: ::c_int = 3; -pub const NT_PRXREG: ::c_int = 4; -pub const NT_TASKSTRUCT: ::c_int = 4; -pub const NT_PLATFORM: ::c_int = 5; -pub const NT_AUXV: ::c_int = 6; -pub const NT_GWINDOWS: ::c_int = 7; -pub const NT_ASRS: ::c_int = 8; -pub const NT_PSTATUS: ::c_int = 10; -pub const NT_PSINFO: ::c_int = 13; -pub const NT_PRCRED: ::c_int = 14; -pub const NT_UTSNAME: ::c_int = 15; -pub const NT_LWPSTATUS: ::c_int = 16; -pub const NT_LWPSINFO: ::c_int = 17; -pub const NT_PRFPXREG: ::c_int = 20; - -pub const SCHED_FLAG_KEEP_ALL: ::c_int = SCHED_FLAG_KEEP_POLICY | SCHED_FLAG_KEEP_PARAMS; - -pub const SCHED_FLAG_UTIL_CLAMP: ::c_int = SCHED_FLAG_UTIL_CLAMP_MIN | SCHED_FLAG_UTIL_CLAMP_MAX; - -pub const SCHED_FLAG_ALL: ::c_int = SCHED_FLAG_RESET_ON_FORK +pub const NT_PRSTATUS: c_int = 1; +pub const NT_PRFPREG: c_int = 2; +pub const NT_FPREGSET: c_int = 2; +pub const NT_PRPSINFO: c_int = 3; +pub const NT_PRXREG: c_int = 4; +pub const NT_TASKSTRUCT: c_int = 4; +pub const NT_PLATFORM: c_int = 5; +pub const NT_AUXV: c_int = 6; +pub const NT_GWINDOWS: c_int = 7; +pub const NT_ASRS: c_int = 8; +pub const NT_PSTATUS: c_int = 10; +pub const NT_PSINFO: c_int = 13; +pub const NT_PRCRED: c_int = 14; +pub const NT_UTSNAME: c_int = 15; +pub const NT_LWPSTATUS: c_int = 16; +pub const NT_LWPSINFO: c_int = 17; +pub const NT_PRFPXREG: c_int = 20; + +pub const SCHED_FLAG_KEEP_ALL: c_int = SCHED_FLAG_KEEP_POLICY | SCHED_FLAG_KEEP_PARAMS; + +pub const SCHED_FLAG_UTIL_CLAMP: c_int = SCHED_FLAG_UTIL_CLAMP_MIN | SCHED_FLAG_UTIL_CLAMP_MAX; + +pub const SCHED_FLAG_ALL: c_int = SCHED_FLAG_RESET_ON_FORK | SCHED_FLAG_RECLAIM | SCHED_FLAG_DL_OVERRUN | SCHED_FLAG_KEEP_ALL | SCHED_FLAG_UTIL_CLAMP; // ioctl_eventpoll: added in Linux 6.9 -pub const EPIOCSPARAMS: ::Ioctl = 0x40088a01; -pub const EPIOCGPARAMS: ::Ioctl = 0x80088a02; +pub const EPIOCSPARAMS: Ioctl = 0x40088a01; +pub const EPIOCGPARAMS: Ioctl = 0x80088a02; const _IOC_NRBITS: u32 = 8; const _IOC_TYPEBITS: u32 = 8; @@ -5814,7 +5818,7 @@ pub(crate) const fn _IOWR(ty: u32, nr: u32) -> u32 { } f! { - pub fn NLA_ALIGN(len: ::c_int) -> ::c_int { + pub fn NLA_ALIGN(len: c_int) -> c_int { return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1); } @@ -5833,10 +5837,10 @@ f! { } } - pub fn CPU_ALLOC_SIZE(count: ::c_int) -> ::size_t { - let _dummy: cpu_set_t = ::mem::zeroed(); - let size_in_bits = 8 * ::mem::size_of_val(&_dummy.bits[0]); - ((count as ::size_t + size_in_bits - 1) / 8) as ::size_t + pub fn CPU_ALLOC_SIZE(count: c_int) -> size_t { + let _dummy: cpu_set_t = crate::mem::zeroed(); + let size_in_bits = 8 * crate::mem::size_of_val(&_dummy.bits[0]); + ((count as size_t + size_in_bits - 1) / 8) as size_t } pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { @@ -5846,35 +5850,35 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); + let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); 0 != (cpuset.bits[idx] & (1 << offset)) } - pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> ::c_int { + pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int { let mut s: u32 = 0; - let size_of_mask = ::mem::size_of_val(&cpuset.bits[0]); + let size_of_mask = crate::mem::size_of_val(&cpuset.bits[0]); for i in cpuset.bits[..(size / size_of_mask)].iter() { s += i.count_ones(); } - s as ::c_int + s as c_int } - pub fn CPU_COUNT(cpuset: &cpu_set_t) -> ::c_int { + pub fn CPU_COUNT(cpuset: &cpu_set_t) -> c_int { CPU_COUNT_S(size_of::(), cpuset) } @@ -5882,32 +5886,32 @@ f! { set1.bits == set2.bits } - pub fn SCTP_PR_INDEX(policy: ::c_int) -> ::c_int { + pub fn SCTP_PR_INDEX(policy: c_int) -> c_int { policy >> 4 - 1 } - pub fn SCTP_PR_POLICY(policy: ::c_int) -> ::c_int { + pub fn SCTP_PR_POLICY(policy: c_int) -> c_int { policy & SCTP_PR_SCTP_MASK } - pub fn SCTP_PR_SET_POLICY(flags: &mut ::c_int, policy: ::c_int) -> () { + pub fn SCTP_PR_SET_POLICY(flags: &mut c_int, policy: c_int) -> () { *flags &= !SCTP_PR_SCTP_MASK; *flags |= policy; () } - pub fn major(dev: ::dev_t) -> ::c_uint { + pub fn major(dev: crate::dev_t) -> c_uint { let mut major = 0; major |= (dev & 0x00000000000fff00) >> 8; major |= (dev & 0xfffff00000000000) >> 32; - major as ::c_uint + major as c_uint } - pub fn minor(dev: ::dev_t) -> ::c_uint { + pub fn minor(dev: crate::dev_t) -> c_uint { let mut minor = 0; minor |= (dev & 0x00000000000000ff) >> 0; minor |= (dev & 0x00000ffffff00000) >> 12; - minor as ::c_uint + minor as c_uint } pub fn IPTOS_TOS(tos: u8) -> u8 { @@ -5919,7 +5923,7 @@ f! { } pub fn RT_TOS(tos: u8) -> u8 { - tos & ::IPTOS_TOS_MASK + tos & crate::IPTOS_TOS_MASK } pub fn RT_ADDRCLASS(flags: u32) -> u32 { @@ -5930,23 +5934,23 @@ f! { (flags & RTF_ADDRCLASSMASK) == (RTF_LOCAL | RTF_INTERFACE) } - pub fn SO_EE_OFFENDER(ee: *const ::sock_extended_err) -> *mut ::sockaddr { - ee.offset(1) as *mut ::sockaddr + pub fn SO_EE_OFFENDER(ee: *const crate::sock_extended_err) -> *mut crate::sockaddr { + ee.offset(1) as *mut crate::sockaddr } pub fn TPACKET_ALIGN(x: usize) -> usize { (x + TPACKET_ALIGNMENT - 1) & !(TPACKET_ALIGNMENT - 1) } - pub fn BPF_RVAL(code: ::__u32) -> ::__u32 { + pub fn BPF_RVAL(code: __u32) -> __u32 { code & 0x18 } - pub fn BPF_MISCOP(code: ::__u32) -> ::__u32 { + pub fn BPF_MISCOP(code: __u32) -> __u32 { code & 0xf8 } - pub fn BPF_STMT(code: ::__u16, k: ::__u32) -> sock_filter { + pub fn BPF_STMT(code: __u16, k: __u32) -> sock_filter { sock_filter { code: code, jt: 0, @@ -5955,7 +5959,7 @@ f! { } } - pub fn BPF_JUMP(code: ::__u16, k: ::__u32, jt: ::__u8, jf: ::__u8) -> sock_filter { + pub fn BPF_JUMP(code: __u16, k: __u32, jt: __u8, jf: __u8) -> sock_filter { sock_filter { code: code, jt: jt, @@ -5990,9 +5994,9 @@ f! { } 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; + pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + let major = major as crate::dev_t; + let minor = minor as crate::dev_t; let mut dev = 0; dev |= (major & 0x00000fff) << 8; dev |= (major & 0xfffff000) << 32; @@ -6001,15 +6005,15 @@ safe_f! { dev } - pub {const} fn SCTP_PR_TTL_ENABLED(policy: ::c_int) -> bool { + pub {const} fn SCTP_PR_TTL_ENABLED(policy: c_int) -> bool { policy == SCTP_PR_SCTP_TTL } - pub {const} fn SCTP_PR_RTX_ENABLED(policy: ::c_int) -> bool { + pub {const} fn SCTP_PR_RTX_ENABLED(policy: c_int) -> bool { policy == SCTP_PR_SCTP_RTX } - pub {const} fn SCTP_PR_PRIO_ENABLED(policy: ::c_int) -> bool { + pub {const} fn SCTP_PR_PRIO_ENABLED(policy: c_int) -> bool { policy == SCTP_PR_SCTP_PRIO } } @@ -6017,23 +6021,23 @@ safe_f! { cfg_if! { if #[cfg(all(not(target_env = "uclibc"), not(target_env = "ohos")))] { 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; + 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; 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; + nitems: c_int, + timeout: *const crate::timespec, + ) -> c_int; + pub fn aio_cancel(fd: c_int, aiocbp: *mut aiocb) -> c_int; pub fn lio_listio( - mode: ::c_int, + mode: c_int, aiocb_list: *const *mut aiocb, - nitems: ::c_int, - sevp: *mut ::sigevent, - ) -> ::c_int; + nitems: c_int, + sevp: *mut crate::sigevent, + ) -> c_int; } } } @@ -6042,44 +6046,44 @@ cfg_if! { if #[cfg(not(target_env = "uclibc"))] { extern "C" { pub fn pwritev( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t, - ) -> ::ssize_t; + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: off_t, + ) -> ssize_t; pub fn preadv( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t, - ) -> ::ssize_t; + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: off_t, + ) -> ssize_t; pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - servlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; + sa: *const crate::sockaddr, + salen: crate::socklen_t, + host: *mut c_char, + hostlen: crate::socklen_t, + serv: *mut c_char, + servlen: crate::socklen_t, + flags: c_int, + ) -> c_int; + pub fn getloadavg(loadavg: *mut c_double, nelem: c_int) -> c_int; pub fn process_vm_readv( - pid: ::pid_t, - local_iov: *const ::iovec, - liovcnt: ::c_ulong, - remote_iov: *const ::iovec, - riovcnt: ::c_ulong, - flags: ::c_ulong, + pid: crate::pid_t, + local_iov: *const crate::iovec, + liovcnt: c_ulong, + remote_iov: *const crate::iovec, + riovcnt: c_ulong, + flags: c_ulong, ) -> isize; pub fn process_vm_writev( - pid: ::pid_t, - local_iov: *const ::iovec, - liovcnt: ::c_ulong, - remote_iov: *const ::iovec, - riovcnt: ::c_ulong, - flags: ::c_ulong, + pid: crate::pid_t, + local_iov: *const crate::iovec, + liovcnt: c_ulong, + remote_iov: *const crate::iovec, + riovcnt: c_ulong, + flags: c_ulong, ) -> isize; - pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; + pub fn futimes(fd: c_int, times: *const crate::timeval) -> c_int; } } } @@ -6092,59 +6096,59 @@ cfg_if! { // functions from `shadow.h`. // https://git.musl-libc.org/cgit/musl/tree/include/shadow.h pub fn getspnam_r( - name: *const ::c_char, + name: *const c_char, spbuf: *mut spwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, spbufp: *mut *mut spwd, - ) -> ::c_int; + ) -> c_int; - pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; - pub fn mq_close(mqd: ::mqd_t) -> ::c_int; - pub fn mq_unlink(name: *const ::c_char) -> ::c_int; + pub fn mq_open(name: *const c_char, oflag: c_int, ...) -> crate::mqd_t; + pub fn mq_close(mqd: crate::mqd_t) -> c_int; + pub fn mq_unlink(name: *const c_char) -> c_int; pub fn mq_receive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - ) -> ::ssize_t; + mqd: crate::mqd_t, + msg_ptr: *mut c_char, + msg_len: size_t, + msg_prio: *mut c_uint, + ) -> ssize_t; pub fn mq_timedreceive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::ssize_t; + mqd: crate::mqd_t, + msg_ptr: *mut c_char, + msg_len: size_t, + msg_prio: *mut c_uint, + abs_timeout: *const crate::timespec, + ) -> ssize_t; pub fn mq_send( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - ) -> ::c_int; + mqd: crate::mqd_t, + msg_ptr: *const c_char, + msg_len: size_t, + msg_prio: c_uint, + ) -> c_int; pub fn mq_timedsend( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::c_int; - pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; + mqd: crate::mqd_t, + msg_ptr: *const c_char, + msg_len: size_t, + msg_prio: c_uint, + abs_timeout: *const crate::timespec, + ) -> c_int; + pub fn mq_getattr(mqd: crate::mqd_t, attr: *mut crate::mq_attr) -> c_int; pub fn mq_setattr( - mqd: ::mqd_t, - newattr: *const ::mq_attr, - oldattr: *mut ::mq_attr, - ) -> ::c_int; + mqd: crate::mqd_t, + newattr: *const crate::mq_attr, + oldattr: *mut crate::mq_attr, + ) -> c_int; - pub fn pthread_mutex_consistent(mutex: *mut pthread_mutex_t) -> ::c_int; - pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; + pub fn pthread_mutex_consistent(mutex: *mut pthread_mutex_t) -> c_int; + pub fn pthread_cancel(thread: crate::pthread_t) -> c_int; pub fn pthread_mutexattr_getrobust( attr: *const pthread_mutexattr_t, - robustness: *mut ::c_int, - ) -> ::c_int; + robustness: *mut c_int, + ) -> c_int; pub fn pthread_mutexattr_setrobust( attr: *mut pthread_mutexattr_t, - robustness: ::c_int, - ) -> ::c_int; + robustness: c_int, + ) -> c_int; } } } @@ -6154,648 +6158,615 @@ extern "C" { not(any(target_env = "musl", target_env = "ohos")), link_name = "__xpg_strerror_r" )] - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; - pub fn abs(i: ::c_int) -> ::c_int; - pub fn labs(i: ::c_long) -> ::c_long; - pub fn rand() -> ::c_int; - pub fn srand(seed: ::c_uint); + pub fn abs(i: c_int) -> c_int; + pub fn labs(i: c_long) -> c_long; + pub fn rand() -> c_int; + pub fn srand(seed: c_uint); - pub fn drand48() -> ::c_double; - pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double; - pub fn lrand48() -> ::c_long; - pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn mrand48() -> ::c_long; - pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn srand48(seed: ::c_long); - pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort; - pub fn lcong48(p: *mut ::c_ushort); + pub fn drand48() -> c_double; + pub fn erand48(xseed: *mut c_ushort) -> c_double; + pub fn lrand48() -> c_long; + pub fn nrand48(xseed: *mut c_ushort) -> c_long; + pub fn mrand48() -> c_long; + pub fn jrand48(xseed: *mut c_ushort) -> c_long; + pub fn srand48(seed: c_long); + pub fn seed48(xseed: *mut c_ushort) -> *mut c_ushort; + pub fn lcong48(p: *mut c_ushort); - pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; + pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int; pub fn setpwent(); pub fn endpwent(); pub fn getpwent() -> *mut passwd; pub fn setgrent(); pub fn endgrent(); - pub fn getgrent() -> *mut ::group; + pub fn getgrent() -> *mut crate::group; pub fn setspent(); pub fn endspent(); pub fn getspent() -> *mut spwd; - pub fn getspnam(name: *const ::c_char) -> *mut spwd; + pub fn getspnam(name: *const c_char) -> *mut spwd; - pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; + pub fn shm_unlink(name: *const c_char) -> c_int; // System V IPC - pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - 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 ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; - pub fn semget(key: ::key_t, nsems: ::c_int, semflag: ::c_int) -> ::c_int; - pub fn semop(semid: ::c_int, sops: *mut ::sembuf, nsops: ::size_t) -> ::c_int; - pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; - pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int; - pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; + pub fn shmget(key: crate::key_t, size: size_t, shmflg: c_int) -> c_int; + 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 crate::shmid_ds) -> c_int; + pub fn ftok(pathname: *const c_char, proj_id: c_int) -> crate::key_t; + pub fn semget(key: crate::key_t, nsems: c_int, semflag: c_int) -> c_int; + pub fn semop(semid: c_int, sops: *mut crate::sembuf, nsops: size_t) -> c_int; + pub fn semctl(semid: c_int, semnum: c_int, cmd: c_int, ...) -> c_int; + pub fn msgctl(msqid: c_int, cmd: c_int, buf: *mut msqid_ds) -> c_int; + pub fn msgget(key: crate::key_t, msgflg: c_int) -> c_int; pub fn msgrcv( - msqid: ::c_int, - msgp: *mut ::c_void, - msgsz: ::size_t, - msgtyp: ::c_long, - msgflg: ::c_int, - ) -> ::ssize_t; - pub fn msgsnd( - msqid: ::c_int, - msgp: *const ::c_void, - msgsz: ::size_t, - msgflg: ::c_int, - ) -> ::c_int; - - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn __errno_location() -> *mut ::c_int; - - pub fn fallocate(fd: ::c_int, mode: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn readahead(fd: ::c_int, offset: ::off64_t, count: ::size_t) -> ::ssize_t; + msqid: c_int, + msgp: *mut c_void, + msgsz: size_t, + msgtyp: c_long, + msgflg: c_int, + ) -> ssize_t; + pub fn msgsnd(msqid: c_int, msgp: *const c_void, msgsz: size_t, msgflg: c_int) -> c_int; + + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; + pub fn __errno_location() -> *mut c_int; + + pub fn fallocate(fd: c_int, mode: c_int, offset: off_t, len: off_t) -> c_int; + pub fn posix_fallocate(fd: c_int, offset: off_t, len: off_t) -> c_int; + pub fn readahead(fd: c_int, offset: off64_t, count: size_t) -> ssize_t; pub fn getxattr( path: *const c_char, name: *const c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; + value: *mut c_void, + size: size_t, + ) -> ssize_t; pub fn lgetxattr( path: *const c_char, name: *const c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; + value: *mut c_void, + size: size_t, + ) -> ssize_t; pub fn fgetxattr( - filedes: ::c_int, + filedes: c_int, name: *const c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; + value: *mut c_void, + size: size_t, + ) -> ssize_t; pub fn setxattr( path: *const c_char, name: *const c_char, - value: *const ::c_void, - size: ::size_t, - flags: ::c_int, - ) -> ::c_int; + value: *const c_void, + size: size_t, + flags: c_int, + ) -> c_int; pub fn lsetxattr( path: *const c_char, name: *const c_char, - value: *const ::c_void, - size: ::size_t, - flags: ::c_int, - ) -> ::c_int; + value: *const c_void, + size: size_t, + flags: c_int, + ) -> c_int; pub fn fsetxattr( - filedes: ::c_int, + filedes: c_int, name: *const c_char, - value: *const ::c_void, - size: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn listxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t; - pub fn llistxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t; - pub fn flistxattr(filedes: ::c_int, list: *mut c_char, size: ::size_t) -> ::ssize_t; - pub fn removexattr(path: *const c_char, name: *const c_char) -> ::c_int; - pub fn lremovexattr(path: *const c_char, name: *const c_char) -> ::c_int; - pub fn fremovexattr(filedes: ::c_int, name: *const c_char) -> ::c_int; - pub fn signalfd(fd: ::c_int, mask: *const ::sigset_t, flags: ::c_int) -> ::c_int; - pub fn timerfd_create(clockid: ::clockid_t, flags: ::c_int) -> ::c_int; - pub fn timerfd_gettime(fd: ::c_int, curr_value: *mut itimerspec) -> ::c_int; + value: *const c_void, + size: size_t, + flags: c_int, + ) -> c_int; + pub fn listxattr(path: *const c_char, list: *mut c_char, size: size_t) -> ssize_t; + pub fn llistxattr(path: *const c_char, list: *mut c_char, size: size_t) -> ssize_t; + pub fn flistxattr(filedes: c_int, list: *mut c_char, size: size_t) -> ssize_t; + pub fn removexattr(path: *const c_char, name: *const c_char) -> c_int; + pub fn lremovexattr(path: *const c_char, name: *const c_char) -> c_int; + pub fn fremovexattr(filedes: c_int, name: *const c_char) -> c_int; + pub fn signalfd(fd: c_int, mask: *const crate::sigset_t, flags: c_int) -> c_int; + pub fn timerfd_create(clockid: crate::clockid_t, flags: c_int) -> c_int; + pub fn timerfd_gettime(fd: c_int, curr_value: *mut itimerspec) -> c_int; pub fn timerfd_settime( - fd: ::c_int, - flags: ::c_int, + fd: c_int, + flags: c_int, new_value: *const itimerspec, old_value: *mut itimerspec, - ) -> ::c_int; - pub fn quotactl( - cmd: ::c_int, - special: *const ::c_char, - id: ::c_int, - data: *mut ::c_char, - ) -> ::c_int; + ) -> c_int; + pub fn quotactl(cmd: c_int, special: *const c_char, id: c_int, data: *mut c_char) -> c_int; pub fn epoll_pwait( - epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - sigmask: *const ::sigset_t, - ) -> ::c_int; - pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int; + epfd: c_int, + events: *mut crate::epoll_event, + maxevents: c_int, + timeout: c_int, + sigmask: *const crate::sigset_t, + ) -> c_int; + pub fn dup3(oldfd: c_int, newfd: c_int, flags: c_int) -> c_int; pub fn sigtimedwait( set: *const sigset_t, info: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; - pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; + timeout: *const crate::timespec, + ) -> c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> c_int; + pub fn nl_langinfo_l(item: crate::nl_item, locale: crate::locale_t) -> *mut c_char; pub fn accept4( - fd: ::c_int, - addr: *mut ::sockaddr, - len: *mut ::socklen_t, - flg: ::c_int, - ) -> ::c_int; + fd: c_int, + addr: *mut crate::sockaddr, + len: *mut crate::socklen_t, + flg: c_int, + ) -> c_int; pub fn pthread_getaffinity_np( - thread: ::pthread_t, - cpusetsize: ::size_t, - cpuset: *mut ::cpu_set_t, - ) -> ::c_int; + thread: crate::pthread_t, + cpusetsize: size_t, + cpuset: *mut crate::cpu_set_t, + ) -> c_int; pub fn pthread_setaffinity_np( - thread: ::pthread_t, - cpusetsize: ::size_t, - cpuset: *const ::cpu_set_t, - ) -> ::c_int; - pub fn pthread_setschedprio(native: ::pthread_t, priority: ::c_int) -> ::c_int; - pub fn reboot(how_to: ::c_int) -> ::c_int; - pub fn setfsgid(gid: ::gid_t) -> ::c_int; - pub fn setfsuid(uid: ::uid_t) -> ::c_int; + thread: crate::pthread_t, + cpusetsize: size_t, + cpuset: *const crate::cpu_set_t, + ) -> c_int; + pub fn pthread_setschedprio(native: crate::pthread_t, priority: c_int) -> c_int; + pub fn reboot(how_to: c_int) -> c_int; + pub fn setfsgid(gid: crate::gid_t) -> c_int; + pub fn setfsuid(uid: crate::uid_t) -> c_int; // Not available now on Android - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; pub fn if_nameindex() -> *mut if_nameindex; pub fn if_freenameindex(ptr: *mut if_nameindex); - pub fn sync_file_range( - fd: ::c_int, - offset: ::off64_t, - nbytes: ::off64_t, - flags: ::c_uint, - ) -> ::c_int; + pub fn sync_file_range(fd: c_int, offset: off64_t, nbytes: off64_t, flags: c_uint) -> c_int; pub fn mremap( - addr: *mut ::c_void, - len: ::size_t, - new_len: ::size_t, - flags: ::c_int, + addr: *mut c_void, + len: size_t, + new_len: size_t, + flags: c_int, ... - ) -> *mut ::c_void; + ) -> *mut c_void; pub fn glob( pattern: *const c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t, - ) -> ::c_int; - pub fn globfree(pglob: *mut ::glob_t); + flags: c_int, + errfunc: Option c_int>, + pglob: *mut crate::glob_t, + ) -> c_int; + pub fn globfree(pglob: *mut crate::glob_t); - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn posix_madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + pub fn seekdir(dirp: *mut crate::DIR, loc: c_long); - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn telldir(dirp: *mut crate::DIR) -> c_long; + pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; pub fn remap_file_pages( - addr: *mut ::c_void, - size: ::size_t, - prot: ::c_int, - pgoff: ::size_t, - flags: ::c_int, - ) -> ::c_int; + addr: *mut c_void, + size: size_t, + prot: c_int, + pgoff: size_t, + flags: c_int, + ) -> c_int; pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; - - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - - pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn vhangup() -> ::c_int; + socket: c_int, + buf: *mut c_void, + len: size_t, + flags: c_int, + addr: *mut crate::sockaddr, + addrlen: *mut crate::socklen_t, + ) -> ssize_t; + pub fn mkstemps(template: *mut c_char, suffixlen: c_int) -> c_int; + + pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char; + + pub fn getdomainname(name: *mut c_char, len: size_t) -> c_int; + pub fn setdomainname(name: *const c_char, len: size_t) -> c_int; + pub fn vhangup() -> c_int; pub fn sync(); - pub fn syncfs(fd: ::c_int) -> ::c_int; - pub fn syscall(num: ::c_long, ...) -> ::c_long; - pub fn sched_getaffinity(pid: ::pid_t, cpusetsize: ::size_t, cpuset: *mut cpu_set_t) - -> ::c_int; + pub fn syncfs(fd: c_int) -> c_int; + pub fn syscall(num: c_long, ...) -> c_long; + pub fn sched_getaffinity( + pid: crate::pid_t, + cpusetsize: size_t, + cpuset: *mut cpu_set_t, + ) -> c_int; pub fn sched_setaffinity( - pid: ::pid_t, - cpusetsize: ::size_t, + pid: crate::pid_t, + cpusetsize: size_t, cpuset: *const cpu_set_t, - ) -> ::c_int; - pub fn epoll_create(size: ::c_int) -> ::c_int; - pub fn epoll_create1(flags: ::c_int) -> ::c_int; + ) -> c_int; + pub fn epoll_create(size: c_int) -> c_int; + pub fn epoll_create1(flags: c_int) -> c_int; pub fn epoll_wait( - epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - ) -> ::c_int; - pub fn epoll_ctl(epfd: ::c_int, op: ::c_int, fd: ::c_int, event: *mut ::epoll_event) - -> ::c_int; + epfd: c_int, + events: *mut crate::epoll_event, + maxevents: c_int, + timeout: c_int, + ) -> c_int; + pub fn epoll_ctl(epfd: c_int, op: c_int, fd: c_int, event: *mut crate::epoll_event) -> c_int; pub fn pthread_getschedparam( - native: ::pthread_t, - policy: *mut ::c_int, - param: *mut ::sched_param, - ) -> ::c_int; - pub fn unshare(flags: ::c_int) -> ::c_int; - pub fn umount(target: *const ::c_char) -> ::c_int; - pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn tee(fd_in: ::c_int, fd_out: ::c_int, len: ::size_t, flags: ::c_uint) -> ::ssize_t; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; + native: crate::pthread_t, + policy: *mut c_int, + param: *mut crate::sched_param, + ) -> c_int; + pub fn unshare(flags: c_int) -> c_int; + pub fn umount(target: *const c_char) -> c_int; + pub fn sched_get_priority_max(policy: c_int) -> c_int; + pub fn tee(fd_in: c_int, fd_out: c_int, len: size_t, flags: c_uint) -> ssize_t; + pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int; pub fn splice( - fd_in: ::c_int, - off_in: *mut ::loff_t, - fd_out: ::c_int, - off_out: *mut ::loff_t, - len: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; - pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; - pub fn eventfd_read(fd: ::c_int, value: *mut eventfd_t) -> ::c_int; - pub fn eventfd_write(fd: ::c_int, value: eventfd_t) -> ::c_int; - - pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; - pub fn setns(fd: ::c_int, nstype: ::c_int) -> ::c_int; - pub fn swapoff(path: *const ::c_char) -> ::c_int; - pub fn vmsplice( - fd: ::c_int, - iov: *const ::iovec, - nr_segs: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; + fd_in: c_int, + off_in: *mut crate::loff_t, + fd_out: c_int, + off_out: *mut crate::loff_t, + len: size_t, + flags: c_uint, + ) -> ssize_t; + pub fn eventfd(init: c_uint, flags: c_int) -> c_int; + pub fn eventfd_read(fd: c_int, value: *mut eventfd_t) -> c_int; + pub fn eventfd_write(fd: c_int, value: eventfd_t) -> c_int; + + pub fn sched_rr_get_interval(pid: crate::pid_t, tp: *mut crate::timespec) -> c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int; + pub fn sched_setparam(pid: crate::pid_t, param: *const crate::sched_param) -> c_int; + pub fn setns(fd: c_int, nstype: c_int) -> c_int; + pub fn swapoff(path: *const c_char) -> c_int; + pub fn vmsplice(fd: c_int, iov: *const crate::iovec, nr_segs: size_t, flags: c_uint) + -> ssize_t; pub fn mount( - src: *const ::c_char, - target: *const ::c_char, - fstype: *const ::c_char, - flags: ::c_ulong, - data: *const ::c_void, - ) -> ::c_int; - pub fn personality(persona: ::c_ulong) -> ::c_int; - pub fn prctl(option: ::c_int, ...) -> ::c_int; - pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; + src: *const c_char, + target: *const c_char, + fstype: *const c_char, + flags: c_ulong, + data: *const c_void, + ) -> c_int; + pub fn personality(persona: c_ulong) -> c_int; + pub fn prctl(option: c_int, ...) -> c_int; + pub fn sched_getparam(pid: crate::pid_t, param: *mut crate::sched_param) -> c_int; pub fn ppoll( - fds: *mut ::pollfd, + fds: *mut crate::pollfd, nfds: nfds_t, - timeout: *const ::timespec, + timeout: *const crate::timespec, sigmask: *const sigset_t, - ) -> ::c_int; + ) -> c_int; pub fn pthread_mutexattr_getprotocol( attr: *const pthread_mutexattr_t, - protocol: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_setprotocol( - attr: *mut pthread_mutexattr_t, - protocol: ::c_int, - ) -> ::c_int; + protocol: *mut c_int, + ) -> c_int; + pub fn pthread_mutexattr_setprotocol(attr: *mut pthread_mutexattr_t, protocol: c_int) -> c_int; pub fn pthread_mutex_timedlock( lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_barrierattr_init(attr: *mut ::pthread_barrierattr_t) -> ::c_int; - pub fn pthread_barrierattr_destroy(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + abstime: *const crate::timespec, + ) -> c_int; + pub fn pthread_barrierattr_init(attr: *mut crate::pthread_barrierattr_t) -> c_int; + pub fn pthread_barrierattr_destroy(attr: *mut crate::pthread_barrierattr_t) -> c_int; pub fn pthread_barrierattr_getpshared( - attr: *const ::pthread_barrierattr_t, - shared: *mut ::c_int, - ) -> ::c_int; + attr: *const crate::pthread_barrierattr_t, + shared: *mut c_int, + ) -> c_int; pub fn pthread_barrierattr_setpshared( - attr: *mut ::pthread_barrierattr_t, - shared: ::c_int, - ) -> ::c_int; + attr: *mut crate::pthread_barrierattr_t, + shared: c_int, + ) -> c_int; pub fn pthread_barrier_init( barrier: *mut pthread_barrier_t, - attr: *const ::pthread_barrierattr_t, - count: ::c_uint, - ) -> ::c_int; - pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> ::c_int; - pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::c_int; - pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_trylock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_unlock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + attr: *const crate::pthread_barrierattr_t, + count: c_uint, + ) -> c_int; + pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> c_int; + pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> c_int; + pub fn pthread_spin_init(lock: *mut crate::pthread_spinlock_t, pshared: c_int) -> c_int; + pub fn pthread_spin_destroy(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn pthread_spin_lock(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn pthread_spin_trylock(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn pthread_spin_unlock(lock: *mut crate::pthread_spinlock_t) -> c_int; pub fn clone( - cb: extern "C" fn(*mut ::c_void) -> ::c_int, - child_stack: *mut ::c_void, - flags: ::c_int, - arg: *mut ::c_void, + cb: extern "C" fn(*mut c_void) -> c_int, + child_stack: *mut c_void, + flags: c_int, + arg: *mut c_void, ... - ) -> ::c_int; - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + ) -> c_int; + pub fn sched_getscheduler(pid: crate::pid_t) -> c_int; pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; + clk_id: crate::clockid_t, + flags: c_int, + rqtp: *const crate::timespec, + rmtp: *mut crate::timespec, + ) -> c_int; pub fn pthread_attr_getguardsize( - 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; + attr: *const crate::pthread_attr_t, + guardsize: *mut size_t, + ) -> c_int; + pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int; pub fn pthread_attr_getinheritsched( - attr: *const ::pthread_attr_t, - inheritsched: *mut ::c_int, - ) -> ::c_int; + attr: *const crate::pthread_attr_t, + inheritsched: *mut c_int, + ) -> c_int; pub fn pthread_attr_setinheritsched( - attr: *mut ::pthread_attr_t, - inheritsched: ::c_int, - ) -> ::c_int; + attr: *mut crate::pthread_attr_t, + inheritsched: c_int, + ) -> c_int; pub fn pthread_attr_getschedpolicy( - attr: *const ::pthread_attr_t, - policy: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_attr_setschedpolicy(attr: *mut ::pthread_attr_t, policy: ::c_int) -> ::c_int; + attr: *const crate::pthread_attr_t, + policy: *mut c_int, + ) -> c_int; + pub fn pthread_attr_setschedpolicy(attr: *mut crate::pthread_attr_t, policy: c_int) -> c_int; pub fn pthread_attr_getschedparam( - attr: *const ::pthread_attr_t, - param: *mut ::sched_param, - ) -> ::c_int; + attr: *const crate::pthread_attr_t, + param: *mut crate::sched_param, + ) -> c_int; pub fn pthread_attr_setschedparam( - attr: *mut ::pthread_attr_t, - param: *const ::sched_param, - ) -> ::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; + attr: *mut crate::pthread_attr_t, + param: *const crate::sched_param, + ) -> 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 pthread_condattr_getpshared( attr: *const pthread_condattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn sysinfo(info: *mut ::sysinfo) -> ::c_int; - pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int; + pshared: *mut c_int, + ) -> c_int; + pub fn sysinfo(info: *mut crate::sysinfo) -> c_int; + pub fn umount2(target: *const c_char, flags: c_int) -> c_int; pub fn pthread_setschedparam( - native: ::pthread_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn swapon(path: *const ::c_char, swapflags: ::c_int) -> ::c_int; + native: crate::pthread_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; + pub fn swapon(path: *const c_char, swapflags: c_int) -> c_int; pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn sendfile( - out_fd: ::c_int, - in_fd: ::c_int, - offset: *mut off_t, - count: ::size_t, - ) -> ::ssize_t; - pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; + pid: crate::pid_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; + pub fn sendfile(out_fd: c_int, in_fd: c_int, offset: *mut off_t, count: size_t) -> ssize_t; + pub fn sigsuspend(mask: *const crate::sigset_t) -> c_int; pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; - pub fn sem_close(sem: *mut sem_t) -> ::c_int; - pub fn getdtablesize() -> ::c_int; + gid: crate::gid_t, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> c_int; + pub fn sem_close(sem: *mut sem_t) -> c_int; + pub fn getdtablesize() -> c_int; pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + name: *const c_char, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn initgroups(user: *const c_char, group: crate::gid_t) -> c_int; + pub fn pthread_sigmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; + pub fn sem_open(name: *const c_char, oflag: c_int, ...) -> *mut sem_t; + pub fn getgrnam(name: *const c_char) -> *mut crate::group; + pub fn pthread_kill(thread: crate::pthread_t, sig: c_int) -> c_int; + pub fn sem_unlink(name: *const c_char) -> c_int; + pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; pub fn getpwnam_r( - name: *const ::c_char, + name: *const c_char, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; pub fn getpwuid_r( - uid: ::uid_t, + uid: crate::uid_t, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + ) -> c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int; pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + prepare: Option, + parent: Option, + child: Option, + ) -> c_int; + pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; pub fn getgrouplist( - user: *const ::c_char, - group: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int, - ) -> ::c_int; + user: *const c_char, + group: crate::gid_t, + groups: *mut crate::gid_t, + ngroups: *mut c_int, + ) -> c_int; pub fn pthread_mutexattr_getpshared( attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn faccessat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::c_int, - flags: ::c_int, - ) -> ::c_int; + pshared: *mut c_int, + ) -> c_int; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut crate::FILE; + pub fn faccessat(dirfd: c_int, pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; + native: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + f: extern "C" fn(*mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; pub fn dl_iterate_phdr( - callback: ::Option< + callback: Option< unsafe extern "C" fn( - info: *mut ::dl_phdr_info, - size: ::size_t, - data: *mut ::c_void, - ) -> ::c_int, + info: *mut crate::dl_phdr_info, + size: size_t, + data: *mut c_void, + ) -> c_int, >, - data: *mut ::c_void, - ) -> ::c_int; + data: *mut c_void, + ) -> c_int; - pub fn setmntent(filename: *const ::c_char, ty: *const ::c_char) -> *mut ::FILE; - pub fn getmntent(stream: *mut ::FILE) -> *mut ::mntent; - pub fn addmntent(stream: *mut ::FILE, mnt: *const ::mntent) -> ::c_int; - pub fn endmntent(streamp: *mut ::FILE) -> ::c_int; - pub fn hasmntopt(mnt: *const ::mntent, opt: *const ::c_char) -> *mut ::c_char; + pub fn setmntent(filename: *const c_char, ty: *const c_char) -> *mut crate::FILE; + pub fn getmntent(stream: *mut crate::FILE) -> *mut crate::mntent; + pub fn addmntent(stream: *mut crate::FILE, mnt: *const crate::mntent) -> c_int; + pub fn endmntent(streamp: *mut crate::FILE) -> c_int; + pub fn hasmntopt(mnt: *const crate::mntent, opt: *const c_char) -> *mut c_char; 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; + pid: *mut crate::pid_t, + path: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::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; + pid: *mut crate::pid_t, + file: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::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; + default: *mut crate::sigset_t, + ) -> c_int; pub fn posix_spawnattr_setsigdefault( attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; + default: *const crate::sigset_t, + ) -> c_int; pub fn posix_spawnattr_getsigmask( attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; + default: *mut crate::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; + default: *const crate::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; + flags: *mut crate::pid_t, + ) -> c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: crate::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; + 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; + param: *mut crate::sched_param, + ) -> c_int; pub fn posix_spawnattr_setschedparam( attr: *mut posix_spawnattr_t, - param: *const ::sched_param, - ) -> ::c_int; + param: *const crate::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_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; + fd: c_int, + path: *const c_char, + oflag: c_int, + mode: crate::mode_t, + ) -> c_int; pub fn posix_spawn_file_actions_addclose( actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; + 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; + fd: c_int, + newfd: c_int, + ) -> c_int; pub fn fread_unlocked( - buf: *mut ::c_void, - size: ::size_t, - nobj: ::size_t, - stream: *mut ::FILE, - ) -> ::size_t; - pub fn inotify_rm_watch(fd: ::c_int, wd: ::c_int) -> ::c_int; - pub fn inotify_init() -> ::c_int; - pub fn inotify_init1(flags: ::c_int) -> ::c_int; - pub fn inotify_add_watch(fd: ::c_int, path: *const ::c_char, mask: u32) -> ::c_int; - pub fn fanotify_init(flags: ::c_uint, event_f_flags: ::c_uint) -> ::c_int; - - pub fn regcomp(preg: *mut ::regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int; + buf: *mut c_void, + size: size_t, + nobj: size_t, + stream: *mut crate::FILE, + ) -> size_t; + pub fn inotify_rm_watch(fd: c_int, wd: c_int) -> c_int; + pub fn inotify_init() -> c_int; + pub fn inotify_init1(flags: c_int) -> c_int; + pub fn inotify_add_watch(fd: c_int, path: *const c_char, mask: u32) -> c_int; + pub fn fanotify_init(flags: c_uint, event_f_flags: c_uint) -> c_int; + + pub fn regcomp(preg: *mut crate::regex_t, pattern: *const c_char, cflags: c_int) -> c_int; pub fn regexec( - preg: *const ::regex_t, - input: *const ::c_char, - nmatch: ::size_t, + preg: *const crate::regex_t, + input: *const c_char, + nmatch: size_t, pmatch: *mut regmatch_t, - eflags: ::c_int, - ) -> ::c_int; + eflags: c_int, + ) -> c_int; pub fn regerror( - errcode: ::c_int, - preg: *const ::regex_t, - errbuf: *mut ::c_char, - errbuf_size: ::size_t, - ) -> ::size_t; + errcode: c_int, + preg: *const crate::regex_t, + errbuf: *mut c_char, + errbuf_size: size_t, + ) -> size_t; - pub fn regfree(preg: *mut ::regex_t); + pub fn regfree(preg: *mut crate::regex_t); - pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; + pub fn iconv_open(tocode: *const c_char, fromcode: *const c_char) -> iconv_t; pub fn iconv( cd: iconv_t, - inbuf: *mut *mut ::c_char, - inbytesleft: *mut ::size_t, - outbuf: *mut *mut ::c_char, - outbytesleft: *mut ::size_t, - ) -> ::size_t; - pub fn iconv_close(cd: iconv_t) -> ::c_int; + inbuf: *mut *mut c_char, + inbytesleft: *mut size_t, + outbuf: *mut *mut c_char, + outbytesleft: *mut size_t, + ) -> size_t; + pub fn iconv_close(cd: iconv_t) -> c_int; - pub fn gettid() -> ::pid_t; + pub fn gettid() -> crate::pid_t; pub fn timer_create( - clockid: ::clockid_t, - sevp: *mut ::sigevent, - timerid: *mut ::timer_t, - ) -> ::c_int; - pub fn timer_delete(timerid: ::timer_t) -> ::c_int; - pub fn timer_getoverrun(timerid: ::timer_t) -> ::c_int; - pub fn timer_gettime(timerid: ::timer_t, curr_value: *mut ::itimerspec) -> ::c_int; + clockid: crate::clockid_t, + sevp: *mut crate::sigevent, + timerid: *mut crate::timer_t, + ) -> c_int; + pub fn timer_delete(timerid: crate::timer_t) -> c_int; + pub fn timer_getoverrun(timerid: crate::timer_t) -> c_int; + pub fn timer_gettime(timerid: crate::timer_t, curr_value: *mut crate::itimerspec) -> c_int; pub fn timer_settime( - timerid: ::timer_t, - flags: ::c_int, - new_value: *const ::itimerspec, - old_value: *mut ::itimerspec, - ) -> ::c_int; + timerid: crate::timer_t, + flags: c_int, + new_value: *const crate::itimerspec, + old_value: *mut crate::itimerspec, + ) -> c_int; - pub fn gethostid() -> ::c_long; + pub fn gethostid() -> c_long; - pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int; + pub fn pthread_getcpuclockid(thread: crate::pthread_t, clk_id: *mut crate::clockid_t) -> c_int; pub fn memmem( - haystack: *const ::c_void, - haystacklen: ::size_t, - needle: *const ::c_void, - needlelen: ::size_t, - ) -> *mut ::c_void; - pub fn sched_getcpu() -> ::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; + haystack: *const c_void, + haystacklen: size_t, + needle: *const c_void, + needlelen: size_t, + ) -> *mut c_void; + pub fn sched_getcpu() -> c_int; + + pub fn pthread_getname_np(thread: crate::pthread_t, name: *mut c_char, len: size_t) -> c_int; + pub fn pthread_setname_np(thread: crate::pthread_t, name: *const c_char) -> c_int; pub fn getopt_long( - argc: ::c_int, + argc: c_int, argv: *const *mut c_char, optstring: *const c_char, longopts: *const option, - longindex: *mut ::c_int, - ) -> ::c_int; + longindex: *mut c_int, + ) -> c_int; - pub fn pthread_once(control: *mut pthread_once_t, routine: extern "C" fn()) -> ::c_int; + pub fn pthread_once(control: *mut pthread_once_t, routine: extern "C" fn()) -> c_int; pub fn copy_file_range( - fd_in: ::c_int, - off_in: *mut ::off64_t, - fd_out: ::c_int, - off_out: *mut ::off64_t, - len: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; + fd_in: c_int, + off_in: *mut off64_t, + fd_out: c_int, + off_out: *mut off64_t, + len: size_t, + flags: c_uint, + ) -> ssize_t; - pub fn klogctl(syslog_type: ::c_int, bufp: *mut ::c_char, len: ::c_int) -> ::c_int; + pub fn klogctl(syslog_type: c_int, bufp: *mut c_char, len: c_int) -> c_int; - pub fn ioctl(fd: ::c_int, request: ::Ioctl, ...) -> ::c_int; + pub fn ioctl(fd: c_int, request: Ioctl, ...) -> c_int; } // LFS64 extensions @@ -6804,30 +6775,25 @@ extern "C" { cfg_if! { if #[cfg(not(target_env = "musl"))] { extern "C" { - pub fn fallocate64( - fd: ::c_int, - mode: ::c_int, - offset: ::off64_t, - len: ::off64_t, - ) -> ::c_int; - pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int; - pub fn fopen64(filename: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn fallocate64(fd: c_int, mode: c_int, offset: off64_t, len: off64_t) -> c_int; + pub fn fgetpos64(stream: *mut crate::FILE, ptr: *mut fpos64_t) -> c_int; + pub fn fopen64(filename: *const c_char, mode: *const c_char) -> *mut crate::FILE; pub fn freopen64( filename: *const c_char, mode: *const c_char, - file: *mut ::FILE, - ) -> *mut ::FILE; - pub fn fseeko64(stream: *mut ::FILE, offset: ::off64_t, whence: ::c_int) -> ::c_int; - pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int; - pub fn ftello64(stream: *mut ::FILE) -> ::off64_t; - pub fn posix_fallocate64(fd: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int; + file: *mut crate::FILE, + ) -> *mut crate::FILE; + pub fn fseeko64(stream: *mut crate::FILE, offset: off64_t, whence: c_int) -> c_int; + pub fn fsetpos64(stream: *mut crate::FILE, ptr: *const fpos64_t) -> c_int; + pub fn ftello64(stream: *mut crate::FILE) -> off64_t; + pub fn posix_fallocate64(fd: c_int, offset: off64_t, len: off64_t) -> c_int; pub fn sendfile64( - out_fd: ::c_int, - in_fd: ::c_int, + out_fd: c_int, + in_fd: c_int, offset: *mut off64_t, - count: ::size_t, - ) -> ::ssize_t; - pub fn tmpfile64() -> *mut ::FILE; + count: size_t, + ) -> ssize_t; + pub fn tmpfile64() -> *mut crate::FILE; } } } diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index 07aabbe1c5824..789a35548d702 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -1,136 +1,138 @@ +use crate::{c_int, c_long, c_short, c_uint, c_ulong, c_ulonglong, c_void, off_t, size_t, ssize_t}; + pub type c_char = u8; pub type wchar_t = u32; s! { pub struct stat { - pub st_dev: ::dev_t, - __st_dev_padding: ::c_int, - __st_ino_truncated: ::c_long, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_rdev_padding: ::c_int, - 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, - pub st_ino: ::ino_t, + pub st_dev: crate::dev_t, + __st_dev_padding: c_int, + __st_ino_truncated: c_long, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __st_rdev_padding: c_int, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_ino: crate::ino_t, } pub struct stat64 { - pub st_dev: ::dev_t, - __st_dev_padding: ::c_int, - __st_ino_truncated: ::c_long, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_rdev_padding: ::c_int, - 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, - pub st_ino: ::ino_t, + pub st_dev: crate::dev_t, + __st_dev_padding: c_int, + __st_ino_truncated: c_long, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __st_rdev_padding: c_int, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_ino: crate::ino_t, } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } 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_int, - __unused1: ::c_long, - __unused2: ::c_long, + pub __ipc_perm_key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub __seq: c_int, + __unused1: c_long, + __unused2: c_long, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - __unused1: ::c_int, - pub shm_dtime: ::time_t, - __unused2: ::c_int, - pub shm_ctime: ::time_t, - __unused3: ::c_int, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::c_ulong, - __pad1: ::c_ulong, - __pad2: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + __unused1: c_int, + pub shm_dtime: crate::time_t, + __unused2: c_int, + pub shm_ctime: crate::time_t, + __unused3: c_int, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: c_ulong, + __pad1: c_ulong, + __pad2: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - __unused1: ::c_int, - pub msg_rtime: ::time_t, - __unused2: ::c_int, - pub msg_ctime: ::time_t, - __unused3: ::c_int, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, + pub msg_perm: crate::ipc_perm, + pub msg_stime: crate::time_t, + __unused1: c_int, + pub msg_rtime: crate::time_t, + __unused2: c_int, + pub msg_ctime: crate::time_t, + __unused3: c_int, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __pad1: c_ulong, + __pad2: c_ulong, } pub struct mcontext_t { - pub trap_no: ::c_ulong, - pub error_code: ::c_ulong, - pub oldmask: ::c_ulong, - pub arm_r0: ::c_ulong, - pub arm_r1: ::c_ulong, - pub arm_r2: ::c_ulong, - pub arm_r3: ::c_ulong, - pub arm_r4: ::c_ulong, - pub arm_r5: ::c_ulong, - pub arm_r6: ::c_ulong, - pub arm_r7: ::c_ulong, - pub arm_r8: ::c_ulong, - pub arm_r9: ::c_ulong, - pub arm_r10: ::c_ulong, - pub arm_fp: ::c_ulong, - pub arm_ip: ::c_ulong, - pub arm_sp: ::c_ulong, - pub arm_lr: ::c_ulong, - pub arm_pc: ::c_ulong, - pub arm_cpsr: ::c_ulong, - pub fault_address: ::c_ulong, + pub trap_no: c_ulong, + pub error_code: c_ulong, + pub oldmask: c_ulong, + pub arm_r0: c_ulong, + pub arm_r1: c_ulong, + pub arm_r2: c_ulong, + pub arm_r3: c_ulong, + pub arm_r4: c_ulong, + pub arm_r5: c_ulong, + pub arm_r6: c_ulong, + pub arm_r7: c_ulong, + pub arm_r8: c_ulong, + pub arm_r9: c_ulong, + pub arm_r10: c_ulong, + pub arm_fp: c_ulong, + pub arm_ip: c_ulong, + pub arm_sp: c_ulong, + pub arm_lr: c_ulong, + pub arm_pc: c_ulong, + pub arm_cpsr: c_ulong, + pub fault_address: c_ulong, } } s_no_extra_traits! { #[allow(missing_debug_implementations)] pub struct ucontext_t { - pub uc_flags: ::c_ulong, + pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, + pub uc_stack: crate::stack_t, pub uc_mcontext: mcontext_t, - pub uc_sigmask: ::sigset_t, - pub uc_regspace: [::c_ulonglong; 64], + pub uc_sigmask: crate::sigset_t, + pub uc_regspace: [c_ulonglong; 64], } #[allow(missing_debug_implementations)] @@ -152,8 +154,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_link) .field("uc_link", &self.uc_link) @@ -163,8 +165,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); @@ -175,29 +177,29 @@ cfg_if! { } } -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; -pub const O_DIRECT: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_LARGEFILE: ::c_int = 0o400000; +pub const O_DIRECT: c_int = 0x10000; +pub const O_DIRECTORY: c_int = 0x4000; +pub const O_NOFOLLOW: c_int = 0x8000; +pub const O_ASYNC: c_int = 0x2000; +pub const O_LARGEFILE: c_int = 0o400000; -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::c_int = 0x00000800; -pub const TAB2: ::c_int = 0x00001000; -pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: c_int = 0x00000800; +pub const TAB2: c_int = 0x00001000; +pub const TAB3: c_int = 0x00001800; +pub const CR1: c_int = 0x00000200; +pub const CR2: c_int = 0x00000400; +pub const CR3: c_int = 0x00000600; +pub const FF1: c_int = 0x00008000; +pub const BS1: c_int = 0x00002000; +pub const VT1: c_int = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -205,595 +207,595 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_SYNC: ::c_int = 0x080000; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_SYNC: c_int = 0x080000; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EDEADLOCK: ::c_int = EDEADLK; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EDEADLOCK: c_int = EDEADLK; +pub const EMULTIHOP: c_int = 72; +pub const EBADMSG: c_int = 74; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const ERFKILL: c_int = 132; +pub const EHWPOISON: c_int = 133; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; -pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const EXTPROC: crate::tcflag_t = 0x00010000; -pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_HUGETLB: c_int = 0x040000; -pub const F_GETLK: ::c_int = 12; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 13; -pub const F_SETLKW: ::c_int = 14; -pub const F_SETOWN: ::c_int = 8; +pub const F_GETLK: c_int = 12; +pub const F_GETOWN: c_int = 9; +pub const F_SETLK: c_int = 13; +pub const F_SETLKW: c_int = 14; +pub const F_SETOWN: c_int = 8; pub const VEOF: usize = 4; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; // Syscall table -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_pause: ::c_long = 29; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_setresgid: ::c_long = 170; -pub const SYS_getresgid: ::c_long = 171; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_chown: ::c_long = 182; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_ugetrlimit: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_lchown32: ::c_long = 198; -pub const SYS_getuid32: ::c_long = 199; -pub const SYS_getgid32: ::c_long = 200; -pub const SYS_geteuid32: ::c_long = 201; -pub const SYS_getegid32: ::c_long = 202; -pub const SYS_setreuid32: ::c_long = 203; -pub const SYS_setregid32: ::c_long = 204; -pub const SYS_getgroups32: ::c_long = 205; -pub const SYS_setgroups32: ::c_long = 206; -pub const SYS_fchown32: ::c_long = 207; -pub const SYS_setresuid32: ::c_long = 208; -pub const SYS_getresuid32: ::c_long = 209; -pub const SYS_setresgid32: ::c_long = 210; -pub const SYS_getresgid32: ::c_long = 211; -pub const SYS_chown32: ::c_long = 212; -pub const SYS_setuid32: ::c_long = 213; -pub const SYS_setgid32: ::c_long = 214; -pub const SYS_setfsuid32: ::c_long = 215; -pub const SYS_setfsgid32: ::c_long = 216; -pub const SYS_getdents64: ::c_long = 217; -pub const SYS_pivot_root: ::c_long = 218; -pub const SYS_mincore: ::c_long = 219; -pub const SYS_madvise: ::c_long = 220; -pub const SYS_fcntl64: ::c_long = 221; -pub const SYS_gettid: ::c_long = 224; -pub const SYS_readahead: ::c_long = 225; -pub const SYS_setxattr: ::c_long = 226; -pub const SYS_lsetxattr: ::c_long = 227; -pub const SYS_fsetxattr: ::c_long = 228; -pub const SYS_getxattr: ::c_long = 229; -pub const SYS_lgetxattr: ::c_long = 230; -pub const SYS_fgetxattr: ::c_long = 231; -pub const SYS_listxattr: ::c_long = 232; -pub const SYS_llistxattr: ::c_long = 233; -pub const SYS_flistxattr: ::c_long = 234; -pub const SYS_removexattr: ::c_long = 235; -pub const SYS_lremovexattr: ::c_long = 236; -pub const SYS_fremovexattr: ::c_long = 237; -pub const SYS_tkill: ::c_long = 238; -pub const SYS_sendfile64: ::c_long = 239; -pub const SYS_futex: ::c_long = 240; -pub const SYS_sched_setaffinity: ::c_long = 241; -pub const SYS_sched_getaffinity: ::c_long = 242; -pub const SYS_io_setup: ::c_long = 243; -pub const SYS_io_destroy: ::c_long = 244; -pub const SYS_io_getevents: ::c_long = 245; -pub const SYS_io_submit: ::c_long = 246; -pub const SYS_io_cancel: ::c_long = 247; -pub const SYS_exit_group: ::c_long = 248; -pub const SYS_lookup_dcookie: ::c_long = 249; -pub const SYS_epoll_create: ::c_long = 250; -pub const SYS_epoll_ctl: ::c_long = 251; -pub const SYS_epoll_wait: ::c_long = 252; -pub const SYS_remap_file_pages: ::c_long = 253; -pub const SYS_set_tid_address: ::c_long = 256; -pub const SYS_timer_create: ::c_long = 257; -pub const SYS_timer_settime: ::c_long = 258; -pub const SYS_timer_gettime: ::c_long = 259; -pub const SYS_timer_getoverrun: ::c_long = 260; -pub const SYS_timer_delete: ::c_long = 261; -pub const SYS_clock_settime: ::c_long = 262; -pub const SYS_clock_gettime: ::c_long = 263; -pub const SYS_clock_getres: ::c_long = 264; -pub const SYS_clock_nanosleep: ::c_long = 265; -pub const SYS_statfs64: ::c_long = 266; -pub const SYS_fstatfs64: ::c_long = 267; -pub const SYS_tgkill: ::c_long = 268; -pub const SYS_utimes: ::c_long = 269; -pub const SYS_pciconfig_iobase: ::c_long = 271; -pub const SYS_pciconfig_read: ::c_long = 272; -pub const SYS_pciconfig_write: ::c_long = 273; -pub const SYS_mq_open: ::c_long = 274; -pub const SYS_mq_unlink: ::c_long = 275; -pub const SYS_mq_timedsend: ::c_long = 276; -pub const SYS_mq_timedreceive: ::c_long = 277; -pub const SYS_mq_notify: ::c_long = 278; -pub const SYS_mq_getsetattr: ::c_long = 279; -pub const SYS_waitid: ::c_long = 280; -pub const SYS_socket: ::c_long = 281; -pub const SYS_bind: ::c_long = 282; -pub const SYS_connect: ::c_long = 283; -pub const SYS_listen: ::c_long = 284; -pub const SYS_accept: ::c_long = 285; -pub const SYS_getsockname: ::c_long = 286; -pub const SYS_getpeername: ::c_long = 287; -pub const SYS_socketpair: ::c_long = 288; -pub const SYS_send: ::c_long = 289; -pub const SYS_sendto: ::c_long = 290; -pub const SYS_recv: ::c_long = 291; -pub const SYS_recvfrom: ::c_long = 292; -pub const SYS_shutdown: ::c_long = 293; -pub const SYS_setsockopt: ::c_long = 294; -pub const SYS_getsockopt: ::c_long = 295; -pub const SYS_sendmsg: ::c_long = 296; -pub const SYS_recvmsg: ::c_long = 297; -pub const SYS_semop: ::c_long = 298; -pub const SYS_semget: ::c_long = 299; -pub const SYS_semctl: ::c_long = 300; -pub const SYS_msgsnd: ::c_long = 301; -pub const SYS_msgrcv: ::c_long = 302; -pub const SYS_msgget: ::c_long = 303; -pub const SYS_msgctl: ::c_long = 304; -pub const SYS_shmat: ::c_long = 305; -pub const SYS_shmdt: ::c_long = 306; -pub const SYS_shmget: ::c_long = 307; -pub const SYS_shmctl: ::c_long = 308; -pub const SYS_add_key: ::c_long = 309; -pub const SYS_request_key: ::c_long = 310; -pub const SYS_keyctl: ::c_long = 311; -pub const SYS_semtimedop: ::c_long = 312; -pub const SYS_vserver: ::c_long = 313; -pub const SYS_ioprio_set: ::c_long = 314; -pub const SYS_ioprio_get: ::c_long = 315; -pub const SYS_inotify_init: ::c_long = 316; -pub const SYS_inotify_add_watch: ::c_long = 317; -pub const SYS_inotify_rm_watch: ::c_long = 318; -pub const SYS_mbind: ::c_long = 319; -pub const SYS_get_mempolicy: ::c_long = 320; -pub const SYS_set_mempolicy: ::c_long = 321; -pub const SYS_openat: ::c_long = 322; -pub const SYS_mkdirat: ::c_long = 323; -pub const SYS_mknodat: ::c_long = 324; -pub const SYS_fchownat: ::c_long = 325; -pub const SYS_futimesat: ::c_long = 326; -pub const SYS_fstatat64: ::c_long = 327; -pub const SYS_unlinkat: ::c_long = 328; -pub const SYS_renameat: ::c_long = 329; -pub const SYS_linkat: ::c_long = 330; -pub const SYS_symlinkat: ::c_long = 331; -pub const SYS_readlinkat: ::c_long = 332; -pub const SYS_fchmodat: ::c_long = 333; -pub const SYS_faccessat: ::c_long = 334; -pub const SYS_pselect6: ::c_long = 335; -pub const SYS_ppoll: ::c_long = 336; -pub const SYS_unshare: ::c_long = 337; -pub const SYS_set_robust_list: ::c_long = 338; -pub const SYS_get_robust_list: ::c_long = 339; -pub const SYS_splice: ::c_long = 340; -pub const SYS_tee: ::c_long = 342; -pub const SYS_vmsplice: ::c_long = 343; -pub const SYS_move_pages: ::c_long = 344; -pub const SYS_getcpu: ::c_long = 345; -pub const SYS_epoll_pwait: ::c_long = 346; -pub const SYS_kexec_load: ::c_long = 347; -pub const SYS_utimensat: ::c_long = 348; -pub const SYS_signalfd: ::c_long = 349; -pub const SYS_timerfd_create: ::c_long = 350; -pub const SYS_eventfd: ::c_long = 351; -pub const SYS_fallocate: ::c_long = 352; -pub const SYS_timerfd_settime: ::c_long = 353; -pub const SYS_timerfd_gettime: ::c_long = 354; -pub const SYS_signalfd4: ::c_long = 355; -pub const SYS_eventfd2: ::c_long = 356; -pub const SYS_epoll_create1: ::c_long = 357; -pub const SYS_dup3: ::c_long = 358; -pub const SYS_pipe2: ::c_long = 359; -pub const SYS_inotify_init1: ::c_long = 360; -pub const SYS_preadv: ::c_long = 361; -pub const SYS_pwritev: ::c_long = 362; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 363; -pub const SYS_perf_event_open: ::c_long = 364; -pub const SYS_recvmmsg: ::c_long = 365; -pub const SYS_accept4: ::c_long = 366; -pub const SYS_fanotify_init: ::c_long = 367; -pub const SYS_fanotify_mark: ::c_long = 368; -pub const SYS_prlimit64: ::c_long = 369; -pub const SYS_name_to_handle_at: ::c_long = 370; -pub const SYS_open_by_handle_at: ::c_long = 371; -pub const SYS_clock_adjtime: ::c_long = 372; -pub const SYS_syncfs: ::c_long = 373; -pub const SYS_sendmmsg: ::c_long = 374; -pub const SYS_setns: ::c_long = 375; -pub const SYS_process_vm_readv: ::c_long = 376; -pub const SYS_process_vm_writev: ::c_long = 377; -pub const SYS_kcmp: ::c_long = 378; -pub const SYS_finit_module: ::c_long = 379; -pub const SYS_sched_setattr: ::c_long = 380; -pub const SYS_sched_getattr: ::c_long = 381; -pub const SYS_renameat2: ::c_long = 382; -pub const SYS_seccomp: ::c_long = 383; -pub const SYS_getrandom: ::c_long = 384; -pub const SYS_memfd_create: ::c_long = 385; -pub const SYS_bpf: ::c_long = 386; -pub const SYS_execveat: ::c_long = 387; -pub const SYS_userfaultfd: ::c_long = 388; -pub const SYS_membarrier: ::c_long = 389; -pub const SYS_mlock2: ::c_long = 390; -pub const SYS_copy_file_range: ::c_long = 391; -pub const SYS_preadv2: ::c_long = 392; -pub const SYS_pwritev2: ::c_long = 393; -pub const SYS_pkey_mprotect: ::c_long = 394; -pub const SYS_pkey_alloc: ::c_long = 395; -pub const SYS_pkey_free: ::c_long = 396; -pub const SYS_statx: ::c_long = 397; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; -pub const SYS_mseal: ::c_long = 462; +pub const SYS_restart_syscall: c_long = 0; +pub const SYS_exit: c_long = 1; +pub const SYS_fork: c_long = 2; +pub const SYS_read: c_long = 3; +pub const SYS_write: c_long = 4; +pub const SYS_open: c_long = 5; +pub const SYS_close: c_long = 6; +pub const SYS_creat: c_long = 8; +pub const SYS_link: c_long = 9; +pub const SYS_unlink: c_long = 10; +pub const SYS_execve: c_long = 11; +pub const SYS_chdir: c_long = 12; +pub const SYS_mknod: c_long = 14; +pub const SYS_chmod: c_long = 15; +pub const SYS_lchown: c_long = 16; +pub const SYS_lseek: c_long = 19; +pub const SYS_getpid: c_long = 20; +pub const SYS_mount: c_long = 21; +pub const SYS_setuid: c_long = 23; +pub const SYS_getuid: c_long = 24; +pub const SYS_ptrace: c_long = 26; +pub const SYS_pause: c_long = 29; +pub const SYS_access: c_long = 33; +pub const SYS_nice: c_long = 34; +pub const SYS_sync: c_long = 36; +pub const SYS_kill: c_long = 37; +pub const SYS_rename: c_long = 38; +pub const SYS_mkdir: c_long = 39; +pub const SYS_rmdir: c_long = 40; +pub const SYS_dup: c_long = 41; +pub const SYS_pipe: c_long = 42; +pub const SYS_times: c_long = 43; +pub const SYS_brk: c_long = 45; +pub const SYS_setgid: c_long = 46; +pub const SYS_getgid: c_long = 47; +pub const SYS_geteuid: c_long = 49; +pub const SYS_getegid: c_long = 50; +pub const SYS_acct: c_long = 51; +pub const SYS_umount2: c_long = 52; +pub const SYS_ioctl: c_long = 54; +pub const SYS_fcntl: c_long = 55; +pub const SYS_setpgid: c_long = 57; +pub const SYS_umask: c_long = 60; +pub const SYS_chroot: c_long = 61; +pub const SYS_ustat: c_long = 62; +pub const SYS_dup2: c_long = 63; +pub const SYS_getppid: c_long = 64; +pub const SYS_getpgrp: c_long = 65; +pub const SYS_setsid: c_long = 66; +pub const SYS_sigaction: c_long = 67; +pub const SYS_setreuid: c_long = 70; +pub const SYS_setregid: c_long = 71; +pub const SYS_sigsuspend: c_long = 72; +pub const SYS_sigpending: c_long = 73; +pub const SYS_sethostname: c_long = 74; +pub const SYS_setrlimit: c_long = 75; +pub const SYS_getrusage: c_long = 77; +pub const SYS_gettimeofday: c_long = 78; +pub const SYS_settimeofday: c_long = 79; +pub const SYS_getgroups: c_long = 80; +pub const SYS_setgroups: c_long = 81; +pub const SYS_symlink: c_long = 83; +pub const SYS_readlink: c_long = 85; +pub const SYS_uselib: c_long = 86; +pub const SYS_swapon: c_long = 87; +pub const SYS_reboot: c_long = 88; +pub const SYS_munmap: c_long = 91; +pub const SYS_truncate: c_long = 92; +pub const SYS_ftruncate: c_long = 93; +pub const SYS_fchmod: c_long = 94; +pub const SYS_fchown: c_long = 95; +pub const SYS_getpriority: c_long = 96; +pub const SYS_setpriority: c_long = 97; +pub const SYS_statfs: c_long = 99; +pub const SYS_fstatfs: c_long = 100; +pub const SYS_syslog: c_long = 103; +pub const SYS_setitimer: c_long = 104; +pub const SYS_getitimer: c_long = 105; +pub const SYS_stat: c_long = 106; +pub const SYS_lstat: c_long = 107; +pub const SYS_fstat: c_long = 108; +pub const SYS_vhangup: c_long = 111; +pub const SYS_wait4: c_long = 114; +pub const SYS_swapoff: c_long = 115; +pub const SYS_sysinfo: c_long = 116; +pub const SYS_fsync: c_long = 118; +pub const SYS_sigreturn: c_long = 119; +pub const SYS_clone: c_long = 120; +pub const SYS_setdomainname: c_long = 121; +pub const SYS_uname: c_long = 122; +pub const SYS_adjtimex: c_long = 124; +pub const SYS_mprotect: c_long = 125; +pub const SYS_sigprocmask: c_long = 126; +pub const SYS_init_module: c_long = 128; +pub const SYS_delete_module: c_long = 129; +pub const SYS_quotactl: c_long = 131; +pub const SYS_getpgid: c_long = 132; +pub const SYS_fchdir: c_long = 133; +pub const SYS_bdflush: c_long = 134; +pub const SYS_sysfs: c_long = 135; +pub const SYS_personality: c_long = 136; +pub const SYS_setfsuid: c_long = 138; +pub const SYS_setfsgid: c_long = 139; +pub const SYS__llseek: c_long = 140; +pub const SYS_getdents: c_long = 141; +pub const SYS__newselect: c_long = 142; +pub const SYS_flock: c_long = 143; +pub const SYS_msync: c_long = 144; +pub const SYS_readv: c_long = 145; +pub const SYS_writev: c_long = 146; +pub const SYS_getsid: c_long = 147; +pub const SYS_fdatasync: c_long = 148; +pub const SYS__sysctl: c_long = 149; +pub const SYS_mlock: c_long = 150; +pub const SYS_munlock: c_long = 151; +pub const SYS_mlockall: c_long = 152; +pub const SYS_munlockall: c_long = 153; +pub const SYS_sched_setparam: c_long = 154; +pub const SYS_sched_getparam: c_long = 155; +pub const SYS_sched_setscheduler: c_long = 156; +pub const SYS_sched_getscheduler: c_long = 157; +pub const SYS_sched_yield: c_long = 158; +pub const SYS_sched_get_priority_max: c_long = 159; +pub const SYS_sched_get_priority_min: c_long = 160; +pub const SYS_sched_rr_get_interval: c_long = 161; +pub const SYS_nanosleep: c_long = 162; +pub const SYS_mremap: c_long = 163; +pub const SYS_setresuid: c_long = 164; +pub const SYS_getresuid: c_long = 165; +pub const SYS_poll: c_long = 168; +pub const SYS_nfsservctl: c_long = 169; +pub const SYS_setresgid: c_long = 170; +pub const SYS_getresgid: c_long = 171; +pub const SYS_prctl: c_long = 172; +pub const SYS_rt_sigreturn: c_long = 173; +pub const SYS_rt_sigaction: c_long = 174; +pub const SYS_rt_sigprocmask: c_long = 175; +pub const SYS_rt_sigpending: c_long = 176; +pub const SYS_rt_sigtimedwait: c_long = 177; +pub const SYS_rt_sigqueueinfo: c_long = 178; +pub const SYS_rt_sigsuspend: c_long = 179; +pub const SYS_pread64: c_long = 180; +pub const SYS_pwrite64: c_long = 181; +pub const SYS_chown: c_long = 182; +pub const SYS_getcwd: c_long = 183; +pub const SYS_capget: c_long = 184; +pub const SYS_capset: c_long = 185; +pub const SYS_sigaltstack: c_long = 186; +pub const SYS_sendfile: c_long = 187; +pub const SYS_vfork: c_long = 190; +pub const SYS_ugetrlimit: c_long = 191; +pub const SYS_mmap2: c_long = 192; +pub const SYS_truncate64: c_long = 193; +pub const SYS_ftruncate64: c_long = 194; +pub const SYS_stat64: c_long = 195; +pub const SYS_lstat64: c_long = 196; +pub const SYS_fstat64: c_long = 197; +pub const SYS_lchown32: c_long = 198; +pub const SYS_getuid32: c_long = 199; +pub const SYS_getgid32: c_long = 200; +pub const SYS_geteuid32: c_long = 201; +pub const SYS_getegid32: c_long = 202; +pub const SYS_setreuid32: c_long = 203; +pub const SYS_setregid32: c_long = 204; +pub const SYS_getgroups32: c_long = 205; +pub const SYS_setgroups32: c_long = 206; +pub const SYS_fchown32: c_long = 207; +pub const SYS_setresuid32: c_long = 208; +pub const SYS_getresuid32: c_long = 209; +pub const SYS_setresgid32: c_long = 210; +pub const SYS_getresgid32: c_long = 211; +pub const SYS_chown32: c_long = 212; +pub const SYS_setuid32: c_long = 213; +pub const SYS_setgid32: c_long = 214; +pub const SYS_setfsuid32: c_long = 215; +pub const SYS_setfsgid32: c_long = 216; +pub const SYS_getdents64: c_long = 217; +pub const SYS_pivot_root: c_long = 218; +pub const SYS_mincore: c_long = 219; +pub const SYS_madvise: c_long = 220; +pub const SYS_fcntl64: c_long = 221; +pub const SYS_gettid: c_long = 224; +pub const SYS_readahead: c_long = 225; +pub const SYS_setxattr: c_long = 226; +pub const SYS_lsetxattr: c_long = 227; +pub const SYS_fsetxattr: c_long = 228; +pub const SYS_getxattr: c_long = 229; +pub const SYS_lgetxattr: c_long = 230; +pub const SYS_fgetxattr: c_long = 231; +pub const SYS_listxattr: c_long = 232; +pub const SYS_llistxattr: c_long = 233; +pub const SYS_flistxattr: c_long = 234; +pub const SYS_removexattr: c_long = 235; +pub const SYS_lremovexattr: c_long = 236; +pub const SYS_fremovexattr: c_long = 237; +pub const SYS_tkill: c_long = 238; +pub const SYS_sendfile64: c_long = 239; +pub const SYS_futex: c_long = 240; +pub const SYS_sched_setaffinity: c_long = 241; +pub const SYS_sched_getaffinity: c_long = 242; +pub const SYS_io_setup: c_long = 243; +pub const SYS_io_destroy: c_long = 244; +pub const SYS_io_getevents: c_long = 245; +pub const SYS_io_submit: c_long = 246; +pub const SYS_io_cancel: c_long = 247; +pub const SYS_exit_group: c_long = 248; +pub const SYS_lookup_dcookie: c_long = 249; +pub const SYS_epoll_create: c_long = 250; +pub const SYS_epoll_ctl: c_long = 251; +pub const SYS_epoll_wait: c_long = 252; +pub const SYS_remap_file_pages: c_long = 253; +pub const SYS_set_tid_address: c_long = 256; +pub const SYS_timer_create: c_long = 257; +pub const SYS_timer_settime: c_long = 258; +pub const SYS_timer_gettime: c_long = 259; +pub const SYS_timer_getoverrun: c_long = 260; +pub const SYS_timer_delete: c_long = 261; +pub const SYS_clock_settime: c_long = 262; +pub const SYS_clock_gettime: c_long = 263; +pub const SYS_clock_getres: c_long = 264; +pub const SYS_clock_nanosleep: c_long = 265; +pub const SYS_statfs64: c_long = 266; +pub const SYS_fstatfs64: c_long = 267; +pub const SYS_tgkill: c_long = 268; +pub const SYS_utimes: c_long = 269; +pub const SYS_pciconfig_iobase: c_long = 271; +pub const SYS_pciconfig_read: c_long = 272; +pub const SYS_pciconfig_write: c_long = 273; +pub const SYS_mq_open: c_long = 274; +pub const SYS_mq_unlink: c_long = 275; +pub const SYS_mq_timedsend: c_long = 276; +pub const SYS_mq_timedreceive: c_long = 277; +pub const SYS_mq_notify: c_long = 278; +pub const SYS_mq_getsetattr: c_long = 279; +pub const SYS_waitid: c_long = 280; +pub const SYS_socket: c_long = 281; +pub const SYS_bind: c_long = 282; +pub const SYS_connect: c_long = 283; +pub const SYS_listen: c_long = 284; +pub const SYS_accept: c_long = 285; +pub const SYS_getsockname: c_long = 286; +pub const SYS_getpeername: c_long = 287; +pub const SYS_socketpair: c_long = 288; +pub const SYS_send: c_long = 289; +pub const SYS_sendto: c_long = 290; +pub const SYS_recv: c_long = 291; +pub const SYS_recvfrom: c_long = 292; +pub const SYS_shutdown: c_long = 293; +pub const SYS_setsockopt: c_long = 294; +pub const SYS_getsockopt: c_long = 295; +pub const SYS_sendmsg: c_long = 296; +pub const SYS_recvmsg: c_long = 297; +pub const SYS_semop: c_long = 298; +pub const SYS_semget: c_long = 299; +pub const SYS_semctl: c_long = 300; +pub const SYS_msgsnd: c_long = 301; +pub const SYS_msgrcv: c_long = 302; +pub const SYS_msgget: c_long = 303; +pub const SYS_msgctl: c_long = 304; +pub const SYS_shmat: c_long = 305; +pub const SYS_shmdt: c_long = 306; +pub const SYS_shmget: c_long = 307; +pub const SYS_shmctl: c_long = 308; +pub const SYS_add_key: c_long = 309; +pub const SYS_request_key: c_long = 310; +pub const SYS_keyctl: c_long = 311; +pub const SYS_semtimedop: c_long = 312; +pub const SYS_vserver: c_long = 313; +pub const SYS_ioprio_set: c_long = 314; +pub const SYS_ioprio_get: c_long = 315; +pub const SYS_inotify_init: c_long = 316; +pub const SYS_inotify_add_watch: c_long = 317; +pub const SYS_inotify_rm_watch: c_long = 318; +pub const SYS_mbind: c_long = 319; +pub const SYS_get_mempolicy: c_long = 320; +pub const SYS_set_mempolicy: c_long = 321; +pub const SYS_openat: c_long = 322; +pub const SYS_mkdirat: c_long = 323; +pub const SYS_mknodat: c_long = 324; +pub const SYS_fchownat: c_long = 325; +pub const SYS_futimesat: c_long = 326; +pub const SYS_fstatat64: c_long = 327; +pub const SYS_unlinkat: c_long = 328; +pub const SYS_renameat: c_long = 329; +pub const SYS_linkat: c_long = 330; +pub const SYS_symlinkat: c_long = 331; +pub const SYS_readlinkat: c_long = 332; +pub const SYS_fchmodat: c_long = 333; +pub const SYS_faccessat: c_long = 334; +pub const SYS_pselect6: c_long = 335; +pub const SYS_ppoll: c_long = 336; +pub const SYS_unshare: c_long = 337; +pub const SYS_set_robust_list: c_long = 338; +pub const SYS_get_robust_list: c_long = 339; +pub const SYS_splice: c_long = 340; +pub const SYS_tee: c_long = 342; +pub const SYS_vmsplice: c_long = 343; +pub const SYS_move_pages: c_long = 344; +pub const SYS_getcpu: c_long = 345; +pub const SYS_epoll_pwait: c_long = 346; +pub const SYS_kexec_load: c_long = 347; +pub const SYS_utimensat: c_long = 348; +pub const SYS_signalfd: c_long = 349; +pub const SYS_timerfd_create: c_long = 350; +pub const SYS_eventfd: c_long = 351; +pub const SYS_fallocate: c_long = 352; +pub const SYS_timerfd_settime: c_long = 353; +pub const SYS_timerfd_gettime: c_long = 354; +pub const SYS_signalfd4: c_long = 355; +pub const SYS_eventfd2: c_long = 356; +pub const SYS_epoll_create1: c_long = 357; +pub const SYS_dup3: c_long = 358; +pub const SYS_pipe2: c_long = 359; +pub const SYS_inotify_init1: c_long = 360; +pub const SYS_preadv: c_long = 361; +pub const SYS_pwritev: c_long = 362; +pub const SYS_rt_tgsigqueueinfo: c_long = 363; +pub const SYS_perf_event_open: c_long = 364; +pub const SYS_recvmmsg: c_long = 365; +pub const SYS_accept4: c_long = 366; +pub const SYS_fanotify_init: c_long = 367; +pub const SYS_fanotify_mark: c_long = 368; +pub const SYS_prlimit64: c_long = 369; +pub const SYS_name_to_handle_at: c_long = 370; +pub const SYS_open_by_handle_at: c_long = 371; +pub const SYS_clock_adjtime: c_long = 372; +pub const SYS_syncfs: c_long = 373; +pub const SYS_sendmmsg: c_long = 374; +pub const SYS_setns: c_long = 375; +pub const SYS_process_vm_readv: c_long = 376; +pub const SYS_process_vm_writev: c_long = 377; +pub const SYS_kcmp: c_long = 378; +pub const SYS_finit_module: c_long = 379; +pub const SYS_sched_setattr: c_long = 380; +pub const SYS_sched_getattr: c_long = 381; +pub const SYS_renameat2: c_long = 382; +pub const SYS_seccomp: c_long = 383; +pub const SYS_getrandom: c_long = 384; +pub const SYS_memfd_create: c_long = 385; +pub const SYS_bpf: c_long = 386; +pub const SYS_execveat: c_long = 387; +pub const SYS_userfaultfd: c_long = 388; +pub const SYS_membarrier: c_long = 389; +pub const SYS_mlock2: c_long = 390; +pub const SYS_copy_file_range: c_long = 391; +pub const SYS_preadv2: c_long = 392; +pub const SYS_pwritev2: c_long = 393; +pub const SYS_pkey_mprotect: c_long = 394; +pub const SYS_pkey_alloc: c_long = 395; +pub const SYS_pkey_free: c_long = 396; +pub const SYS_statx: c_long = 397; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; +pub const SYS_mseal: c_long = 462; extern "C" { - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; + pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; } diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 8678e19dff176..720464b79f441 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -1,612 +1,614 @@ +use crate::{c_int, c_long, c_longlong, c_uint, c_ulong, c_ulonglong, c_ushort, c_void, size_t}; + pub type c_char = u8; pub type wchar_t = u32; -pub type stat64 = ::stat; +pub type stat64 = crate::stat; s! { pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::c_ulonglong, - pub st_mode: ::c_uint, - pub st_nlink: ::c_uint, - pub st_uid: ::c_uint, - pub st_gid: ::c_uint, - pub st_rdev: ::c_ulonglong, - __st_rdev_padding: ::c_ulong, - pub st_size: ::c_longlong, - pub st_blksize: ::blksize_t, - __st_blksize_padding: ::c_int, - 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, + pub st_dev: crate::dev_t, + pub st_ino: c_ulonglong, + pub st_mode: c_uint, + pub st_nlink: c_uint, + pub st_uid: c_uint, + pub st_gid: c_uint, + pub st_rdev: c_ulonglong, + __st_rdev_padding: c_ulong, + pub st_size: c_longlong, + pub st_blksize: crate::blksize_t, + __st_blksize_padding: c_int, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, - __unused: [::c_int; 2], + __unused: [c_int; 2], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } 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, + pub __ipc_perm_key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub __seq: c_ushort, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - __unused1: ::c_int, - pub shm_dtime: ::time_t, - __unused2: ::c_int, - pub shm_ctime: ::time_t, - __unused3: ::c_int, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::c_ulong, - __pad1: ::c_ulong, - __pad2: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + __unused1: c_int, + pub shm_dtime: crate::time_t, + __unused2: c_int, + pub shm_ctime: crate::time_t, + __unused3: c_int, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: c_ulong, + __pad1: c_ulong, + __pad2: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - __unused1: ::c_int, - pub msg_rtime: ::time_t, - __unused2: ::c_int, - pub msg_ctime: ::time_t, - __unused3: ::c_int, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, + pub msg_perm: crate::ipc_perm, + pub msg_stime: crate::time_t, + __unused1: c_int, + pub msg_rtime: crate::time_t, + __unused2: c_int, + pub msg_ctime: crate::time_t, + __unused3: c_int, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __pad1: c_ulong, + __pad2: c_ulong, } } -pub const AF_FILE: ::c_int = 1; -pub const AF_KCM: ::c_int = 41; -pub const AF_MAX: ::c_int = 43; -pub const AF_QIPCRTR: ::c_int = 42; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EALREADY: ::c_int = 114; -pub const EBADE: ::c_int = 52; -pub const EBADMSG: ::c_int = 74; -pub const EBADR: ::c_int = 53; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const ECANCELED: ::c_int = 125; -pub const ECHRNG: ::c_int = 44; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNREFUSED: ::c_int = 111; -pub const ECONNRESET: ::c_int = 104; -pub const EDEADLK: ::c_int = 35; -pub const EDEADLOCK: ::c_int = 35; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EDQUOT: ::c_int = 122; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EHWPOISON: ::c_int = 133; -pub const EIDRM: ::c_int = 43; -pub const EILSEQ: ::c_int = 84; -pub const EINPROGRESS: ::c_int = 115; -pub const EISCONN: ::c_int = 106; -pub const EISNAM: ::c_int = 120; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREJECTED: ::c_int = 129; -pub const EKEYREVOKED: ::c_int = 128; -pub const EL2HLT: ::c_int = 51; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBEXEC: ::c_int = 83; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBSCN: ::c_int = 81; -pub const ELNRNG: ::c_int = 48; -pub const ELOOP: ::c_int = 40; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const EMSGSIZE: ::c_int = 90; -pub const EMULTIHOP: ::c_int = 72; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENAVAIL: ::c_int = 119; -pub const ENETDOWN: ::c_int = 100; -pub const ENETRESET: ::c_int = 102; -pub const ENETUNREACH: ::c_int = 101; -pub const ENOANO: ::c_int = 55; -pub const ENOBUFS: ::c_int = 105; -pub const ENOCSI: ::c_int = 50; -pub const ENOKEY: ::c_int = 126; -pub const ENOLCK: ::c_int = 37; -pub const ENOMEDIUM: ::c_int = 123; -pub const ENOMSG: ::c_int = 42; -pub const ENOPROTOOPT: ::c_int = 92; -pub const ENOSYS: ::c_int = 38; -pub const ENOTCONN: ::c_int = 107; -pub const ENOTEMPTY: ::c_int = 39; -pub const ENOTNAM: ::c_int = 118; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ENOTSOCK: ::c_int = 88; -pub const ENOTSUP: ::c_int = 95; -pub const ENOTUNIQ: ::c_int = 76; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EOVERFLOW: ::c_int = 75; -pub const EOWNERDEAD: ::c_int = 130; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EREMCHG: ::c_int = 78; -pub const ERESTART: ::c_int = 85; -pub const ERFKILL: ::c_int = 132; -pub const ESHUTDOWN: ::c_int = 108; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const ESTALE: ::c_int = 116; -pub const ESTRPIPE: ::c_int = 86; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const EUCLEAN: ::c_int = 117; -pub const EUNATCH: ::c_int = 49; -pub const EUSERS: ::c_int = 87; -pub const EXFULL: ::c_int = 54; -pub const EXTPROC: ::c_int = 65536; -pub const F_EXLCK: ::c_int = 4; -pub const F_GETLK: ::c_int = 12; -pub const F_GETOWN: ::c_int = 9; -pub const F_GETOWNER_UIDS: ::c_int = 17; -pub const F_GETOWN_EX: ::c_int = 16; -pub const F_GETSIG: ::c_int = 11; -pub const F_LINUX_SPECIFIC_BASE: ::c_int = 1024; -pub const FLUSHO: ::c_int = 4096; -pub const F_OWNER_PGRP: ::c_int = 2; -pub const F_OWNER_PID: ::c_int = 1; -pub const F_OWNER_TID: ::c_int = 0; -pub const F_SETLK: ::c_int = 13; -pub const F_SETLKW: ::c_int = 14; -pub const F_SETOWN: ::c_int = 8; -pub const F_SETOWN_EX: ::c_int = 15; -pub const F_SETSIG: ::c_int = 10; -pub const F_SHLCK: ::c_int = 8; -pub const IEXTEN: ::c_int = 32768; -pub const MAP_ANON: ::c_int = 32; -pub const MAP_DENYWRITE: ::c_int = 2048; -pub const MAP_EXECUTABLE: ::c_int = 4096; -pub const MAP_GROWSDOWN: ::c_int = 256; -pub const MAP_HUGETLB: ::c_int = 262144; -pub const MAP_LOCKED: ::c_int = 8192; -pub const MAP_NONBLOCK: ::c_int = 65536; -pub const MAP_NORESERVE: ::c_int = 16384; -pub const MAP_POPULATE: ::c_int = 32768; -pub const MAP_STACK: ::c_int = 131072; -pub const MAP_UNINITIALIZED: ::c_int = 0; -pub const O_APPEND: ::c_int = 1024; -pub const O_ASYNC: ::c_int = 8192; -pub const O_CREAT: ::c_int = 64; -pub const O_DIRECT: ::c_int = 16384; -pub const O_DIRECTORY: ::c_int = 65536; -pub const O_DSYNC: ::c_int = 4096; -pub const O_EXCL: ::c_int = 128; -pub const O_LARGEFILE: ::c_int = 32768; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NOFOLLOW: ::c_int = 131072; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const PF_FILE: ::c_int = 1; -pub const PF_KCM: ::c_int = 41; -pub const PF_MAX: ::c_int = 43; -pub const PF_QIPCRTR: ::c_int = 42; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; -pub const SIGBUS: ::c_int = 7; -pub const SIGCHLD: ::c_int = 17; -pub const SIGCONT: ::c_int = 18; -pub const SIGIO: ::c_int = 29; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPROF: ::c_int = 27; -pub const SIGPWR: ::c_int = 30; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const SIGSTOP: ::c_int = 19; -pub const SIGSYS: ::c_int = 31; -pub const SIGTSTP: ::c_int = 20; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGURG: ::c_int = 23; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGWINCH: ::c_int = 28; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIG_SETMASK: ::c_int = 2; // FIXME check these -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOL_CAIF: ::c_int = 278; -pub const SOL_IUCV: ::c_int = 277; -pub const SOL_KCM: ::c_int = 281; -pub const SOL_NFC: ::c_int = 280; -pub const SOL_PNPIPE: ::c_int = 275; -pub const SOL_PPPOL2TP: ::c_int = 273; -pub const SOL_RDS: ::c_int = 276; -pub const SOL_RXRPC: ::c_int = 272; +pub const AF_FILE: c_int = 1; +pub const AF_KCM: c_int = 41; +pub const AF_MAX: c_int = 43; +pub const AF_QIPCRTR: c_int = 42; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const EAFNOSUPPORT: c_int = 97; +pub const EALREADY: c_int = 114; +pub const EBADE: c_int = 52; +pub const EBADMSG: c_int = 74; +pub const EBADR: c_int = 53; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const ECANCELED: c_int = 125; +pub const ECHRNG: c_int = 44; +pub const ECONNABORTED: c_int = 103; +pub const ECONNREFUSED: c_int = 111; +pub const ECONNRESET: c_int = 104; +pub const EDEADLK: c_int = 35; +pub const EDEADLOCK: c_int = 35; +pub const EDESTADDRREQ: c_int = 89; +pub const EDQUOT: c_int = 122; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EHWPOISON: c_int = 133; +pub const EIDRM: c_int = 43; +pub const EILSEQ: c_int = 84; +pub const EINPROGRESS: c_int = 115; +pub const EISCONN: c_int = 106; +pub const EISNAM: c_int = 120; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREJECTED: c_int = 129; +pub const EKEYREVOKED: c_int = 128; +pub const EL2HLT: c_int = 51; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBEXEC: c_int = 83; +pub const ELIBMAX: c_int = 82; +pub const ELIBSCN: c_int = 81; +pub const ELNRNG: c_int = 48; +pub const ELOOP: c_int = 40; +pub const EMEDIUMTYPE: c_int = 124; +pub const EMSGSIZE: c_int = 90; +pub const EMULTIHOP: c_int = 72; +pub const ENAMETOOLONG: c_int = 36; +pub const ENAVAIL: c_int = 119; +pub const ENETDOWN: c_int = 100; +pub const ENETRESET: c_int = 102; +pub const ENETUNREACH: c_int = 101; +pub const ENOANO: c_int = 55; +pub const ENOBUFS: c_int = 105; +pub const ENOCSI: c_int = 50; +pub const ENOKEY: c_int = 126; +pub const ENOLCK: c_int = 37; +pub const ENOMEDIUM: c_int = 123; +pub const ENOMSG: c_int = 42; +pub const ENOPROTOOPT: c_int = 92; +pub const ENOSYS: c_int = 38; +pub const ENOTCONN: c_int = 107; +pub const ENOTEMPTY: c_int = 39; +pub const ENOTNAM: c_int = 118; +pub const ENOTRECOVERABLE: c_int = 131; +pub const ENOTSOCK: c_int = 88; +pub const ENOTSUP: c_int = 95; +pub const ENOTUNIQ: c_int = 76; +pub const EOPNOTSUPP: c_int = 95; +pub const EOVERFLOW: c_int = 75; +pub const EOWNERDEAD: c_int = 130; +pub const EPFNOSUPPORT: c_int = 96; +pub const EREMCHG: c_int = 78; +pub const ERESTART: c_int = 85; +pub const ERFKILL: c_int = 132; +pub const ESHUTDOWN: c_int = 108; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const ESTALE: c_int = 116; +pub const ESTRPIPE: c_int = 86; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const EUCLEAN: c_int = 117; +pub const EUNATCH: c_int = 49; +pub const EUSERS: c_int = 87; +pub const EXFULL: c_int = 54; +pub const EXTPROC: c_int = 65536; +pub const F_EXLCK: c_int = 4; +pub const F_GETLK: c_int = 12; +pub const F_GETOWN: c_int = 9; +pub const F_GETOWNER_UIDS: c_int = 17; +pub const F_GETOWN_EX: c_int = 16; +pub const F_GETSIG: c_int = 11; +pub const F_LINUX_SPECIFIC_BASE: c_int = 1024; +pub const FLUSHO: c_int = 4096; +pub const F_OWNER_PGRP: c_int = 2; +pub const F_OWNER_PID: c_int = 1; +pub const F_OWNER_TID: c_int = 0; +pub const F_SETLK: c_int = 13; +pub const F_SETLKW: c_int = 14; +pub const F_SETOWN: c_int = 8; +pub const F_SETOWN_EX: c_int = 15; +pub const F_SETSIG: c_int = 10; +pub const F_SHLCK: c_int = 8; +pub const IEXTEN: c_int = 32768; +pub const MAP_ANON: c_int = 32; +pub const MAP_DENYWRITE: c_int = 2048; +pub const MAP_EXECUTABLE: c_int = 4096; +pub const MAP_GROWSDOWN: c_int = 256; +pub const MAP_HUGETLB: c_int = 262144; +pub const MAP_LOCKED: c_int = 8192; +pub const MAP_NONBLOCK: c_int = 65536; +pub const MAP_NORESERVE: c_int = 16384; +pub const MAP_POPULATE: c_int = 32768; +pub const MAP_STACK: c_int = 131072; +pub const MAP_UNINITIALIZED: c_int = 0; +pub const O_APPEND: c_int = 1024; +pub const O_ASYNC: c_int = 8192; +pub const O_CREAT: c_int = 64; +pub const O_DIRECT: c_int = 16384; +pub const O_DIRECTORY: c_int = 65536; +pub const O_DSYNC: c_int = 4096; +pub const O_EXCL: c_int = 128; +pub const O_LARGEFILE: c_int = 32768; +pub const O_NOCTTY: c_int = 256; +pub const O_NOFOLLOW: c_int = 131072; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const PF_FILE: c_int = 1; +pub const PF_KCM: c_int = 41; +pub const PF_MAX: c_int = 43; +pub const PF_QIPCRTR: c_int = 42; +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; +pub const SIGBUS: c_int = 7; +pub const SIGCHLD: c_int = 17; +pub const SIGCONT: c_int = 18; +pub const SIGIO: c_int = 29; +pub const SIGPOLL: c_int = 29; +pub const SIGPROF: c_int = 27; +pub const SIGPWR: c_int = 30; +pub const SIGSTKFLT: c_int = 16; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; +pub const SIGSTOP: c_int = 19; +pub const SIGSYS: c_int = 31; +pub const SIGTSTP: c_int = 20; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGURG: c_int = 23; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGVTALRM: c_int = 26; +pub const SIGWINCH: c_int = 28; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIG_SETMASK: c_int = 2; // FIXME check these +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; +pub const SOCK_DGRAM: c_int = 2; +pub const SOCK_STREAM: c_int = 1; +pub const SOL_CAIF: c_int = 278; +pub const SOL_IUCV: c_int = 277; +pub const SOL_KCM: c_int = 281; +pub const SOL_NFC: c_int = 280; +pub const SOL_PNPIPE: c_int = 275; +pub const SOL_PPPOL2TP: c_int = 273; +pub const SOL_RDS: c_int = 276; +pub const SOL_RXRPC: c_int = 272; -pub const SYS3264_fadvise64: ::c_int = 223; -pub const SYS3264_fcntl: ::c_int = 25; -pub const SYS3264_fstatat: ::c_int = 79; -pub const SYS3264_fstat: ::c_int = 80; -pub const SYS3264_fstatfs: ::c_int = 44; -pub const SYS3264_ftruncate: ::c_int = 46; -pub const SYS3264_lseek: ::c_int = 62; -pub const SYS3264_lstat: ::c_int = 1039; -pub const SYS3264_mmap: ::c_int = 222; -pub const SYS3264_sendfile: ::c_int = 71; -pub const SYS3264_stat: ::c_int = 1038; -pub const SYS3264_statfs: ::c_int = 43; -pub const SYS3264_truncate: ::c_int = 45; -pub const SYS_accept4: ::c_int = 242; -pub const SYS_accept: ::c_int = 202; -pub const SYS_access: ::c_int = 1033; -pub const SYS_acct: ::c_int = 89; -pub const SYS_add_key: ::c_int = 217; -pub const SYS_adjtimex: ::c_int = 171; -pub const SYS_alarm: ::c_int = 1059; -pub const SYS_arch_specific_syscall: ::c_int = 244; -pub const SYS_bdflush: ::c_int = 1075; -pub const SYS_bind: ::c_int = 200; -pub const SYS_bpf: ::c_int = 280; -pub const SYS_brk: ::c_int = 214; -pub const SYS_capget: ::c_int = 90; -pub const SYS_capset: ::c_int = 91; -pub const SYS_chdir: ::c_int = 49; -pub const SYS_chmod: ::c_int = 1028; -pub const SYS_chown: ::c_int = 1029; -pub const SYS_chroot: ::c_int = 51; -pub const SYS_clock_adjtime: ::c_int = 266; -pub const SYS_clock_getres: ::c_int = 114; -pub const SYS_clock_gettime: ::c_int = 113; -pub const SYS_clock_nanosleep: ::c_int = 115; -pub const SYS_clock_settime: ::c_int = 112; -pub const SYS_clone: ::c_int = 220; -pub const SYS_close: ::c_int = 57; -pub const SYS_connect: ::c_int = 203; -pub const SYS_copy_file_range: ::c_int = -1; // FIXME -pub const SYS_creat: ::c_int = 1064; -pub const SYS_delete_module: ::c_int = 106; -pub const SYS_dup2: ::c_int = 1041; -pub const SYS_dup3: ::c_int = 24; -pub const SYS_dup: ::c_int = 23; -pub const SYS_epoll_create1: ::c_int = 20; -pub const SYS_epoll_create: ::c_int = 1042; -pub const SYS_epoll_ctl: ::c_int = 21; -pub const SYS_epoll_pwait: ::c_int = 22; -pub const SYS_epoll_wait: ::c_int = 1069; -pub const SYS_eventfd2: ::c_int = 19; -pub const SYS_eventfd: ::c_int = 1044; -pub const SYS_execveat: ::c_int = 281; -pub const SYS_execve: ::c_int = 221; -pub const SYS_exit: ::c_int = 93; -pub const SYS_exit_group: ::c_int = 94; -pub const SYS_faccessat: ::c_int = 48; -pub const SYS_fadvise64_64: ::c_int = 223; -pub const SYS_fallocate: ::c_int = 47; -pub const SYS_fanotify_init: ::c_int = 262; -pub const SYS_fanotify_mark: ::c_int = 263; -pub const SYS_fchdir: ::c_int = 50; -pub const SYS_fchmodat: ::c_int = 53; -pub const SYS_fchmod: ::c_int = 52; -pub const SYS_fchownat: ::c_int = 54; -pub const SYS_fchown: ::c_int = 55; -pub const SYS_fcntl64: ::c_int = 25; -pub const SYS_fcntl: ::c_int = 25; -pub const SYS_fdatasync: ::c_int = 83; -pub const SYS_fgetxattr: ::c_int = 10; -pub const SYS_finit_module: ::c_int = 273; -pub const SYS_flistxattr: ::c_int = 13; -pub const SYS_flock: ::c_int = 32; -pub const SYS_fork: ::c_int = 1079; -pub const SYS_fremovexattr: ::c_int = 16; -pub const SYS_fsetxattr: ::c_int = 7; -pub const SYS_fstat64: ::c_int = 80; -pub const SYS_fstatat64: ::c_int = 79; -pub const SYS_fstatfs64: ::c_int = 44; -pub const SYS_fstatfs: ::c_int = 44; -pub const SYS_fsync: ::c_int = 82; -pub const SYS_ftruncate64: ::c_int = 46; -pub const SYS_ftruncate: ::c_int = 46; -pub const SYS_futex: ::c_int = 98; -pub const SYS_futimesat: ::c_int = 1066; -pub const SYS_getcpu: ::c_int = 168; -pub const SYS_getcwd: ::c_int = 17; -pub const SYS_getdents64: ::c_int = 61; -pub const SYS_getdents: ::c_int = 1065; -pub const SYS_getegid: ::c_int = 177; -pub const SYS_geteuid: ::c_int = 175; -pub const SYS_getgid: ::c_int = 176; -pub const SYS_getgroups: ::c_int = 158; -pub const SYS_getitimer: ::c_int = 102; -pub const SYS_get_mempolicy: ::c_int = 236; -pub const SYS_getpeername: ::c_int = 205; -pub const SYS_getpgid: ::c_int = 155; -pub const SYS_getpgrp: ::c_int = 1060; -pub const SYS_getpid: ::c_int = 172; -pub const SYS_getppid: ::c_int = 173; -pub const SYS_getpriority: ::c_int = 141; -pub const SYS_getrandom: ::c_int = 278; -pub const SYS_getresgid: ::c_int = 150; -pub const SYS_getresuid: ::c_int = 148; -pub const SYS_getrlimit: ::c_int = 163; -pub const SYS_get_robust_list: ::c_int = 100; -pub const SYS_getrusage: ::c_int = 165; -pub const SYS_getsid: ::c_int = 156; -pub const SYS_getsockname: ::c_int = 204; -pub const SYS_getsockopt: ::c_int = 209; -pub const SYS_gettid: ::c_int = 178; -pub const SYS_gettimeofday: ::c_int = 169; -pub const SYS_getuid: ::c_int = 174; -pub const SYS_getxattr: ::c_int = 8; -pub const SYS_init_module: ::c_int = 105; -pub const SYS_inotify_add_watch: ::c_int = 27; -pub const SYS_inotify_init1: ::c_int = 26; -pub const SYS_inotify_init: ::c_int = 1043; -pub const SYS_inotify_rm_watch: ::c_int = 28; -pub const SYS_io_cancel: ::c_int = 3; -pub const SYS_ioctl: ::c_int = 29; -pub const SYS_io_destroy: ::c_int = 1; -pub const SYS_io_getevents: ::c_int = 4; -pub const SYS_ioprio_get: ::c_int = 31; -pub const SYS_ioprio_set: ::c_int = 30; -pub const SYS_io_setup: ::c_int = 0; -pub const SYS_io_submit: ::c_int = 2; -pub const SYS_kcmp: ::c_int = 272; -pub const SYS_kexec_load: ::c_int = 104; -pub const SYS_keyctl: ::c_int = 219; -pub const SYS_kill: ::c_int = 129; -pub const SYS_lchown: ::c_int = 1032; -pub const SYS_lgetxattr: ::c_int = 9; -pub const SYS_linkat: ::c_int = 37; -pub const SYS_link: ::c_int = 1025; -pub const SYS_listen: ::c_int = 201; -pub const SYS_listxattr: ::c_int = 11; -pub const SYS_llistxattr: ::c_int = 12; -pub const SYS__llseek: ::c_int = 62; -pub const SYS_lookup_dcookie: ::c_int = 18; -pub const SYS_lremovexattr: ::c_int = 15; -pub const SYS_lseek: ::c_int = 62; -pub const SYS_lsetxattr: ::c_int = 6; -pub const SYS_lstat64: ::c_int = 1039; -pub const SYS_lstat: ::c_int = 1039; -pub const SYS_madvise: ::c_int = 233; -pub const SYS_mbind: ::c_int = 235; -pub const SYS_memfd_create: ::c_int = 279; -pub const SYS_migrate_pages: ::c_int = 238; -pub const SYS_mincore: ::c_int = 232; -pub const SYS_mkdirat: ::c_int = 34; -pub const SYS_mkdir: ::c_int = 1030; -pub const SYS_mknodat: ::c_int = 33; -pub const SYS_mknod: ::c_int = 1027; -pub const SYS_mlockall: ::c_int = 230; -pub const SYS_mlock: ::c_int = 228; -pub const SYS_mmap2: ::c_int = 222; -pub const SYS_mount: ::c_int = 40; -pub const SYS_move_pages: ::c_int = 239; -pub const SYS_mprotect: ::c_int = 226; -pub const SYS_mq_getsetattr: ::c_int = 185; -pub const SYS_mq_notify: ::c_int = 184; -pub const SYS_mq_open: ::c_int = 180; -pub const SYS_mq_timedreceive: ::c_int = 183; -pub const SYS_mq_timedsend: ::c_int = 182; -pub const SYS_mq_unlink: ::c_int = 181; -pub const SYS_mremap: ::c_int = 216; -pub const SYS_msgctl: ::c_int = 187; -pub const SYS_msgget: ::c_int = 186; -pub const SYS_msgrcv: ::c_int = 188; -pub const SYS_msgsnd: ::c_int = 189; -pub const SYS_msync: ::c_int = 227; -pub const SYS_munlockall: ::c_int = 231; -pub const SYS_munlock: ::c_int = 229; -pub const SYS_munmap: ::c_int = 215; -pub const SYS_name_to_handle_at: ::c_int = 264; -pub const SYS_nanosleep: ::c_int = 101; -pub const SYS_newfstatat: ::c_int = 79; -pub const SYS_nfsservctl: ::c_int = 42; -pub const SYS_oldwait4: ::c_int = 1072; -pub const SYS_openat: ::c_int = 56; -pub const SYS_open_by_handle_at: ::c_int = 265; -pub const SYS_open: ::c_int = 1024; -pub const SYS_pause: ::c_int = 1061; -pub const SYS_perf_event_open: ::c_int = 241; -pub const SYS_personality: ::c_int = 92; -pub const SYS_pipe2: ::c_int = 59; -pub const SYS_pipe: ::c_int = 1040; -pub const SYS_pivot_root: ::c_int = 41; -pub const SYS_poll: ::c_int = 1068; -pub const SYS_ppoll: ::c_int = 73; -pub const SYS_prctl: ::c_int = 167; -pub const SYS_pread64: ::c_int = 67; -pub const SYS_preadv: ::c_int = 69; -pub const SYS_prlimit64: ::c_int = 261; -pub const SYS_process_vm_readv: ::c_int = 270; -pub const SYS_process_vm_writev: ::c_int = 271; -pub const SYS_pselect6: ::c_int = 72; -pub const SYS_ptrace: ::c_int = 117; -pub const SYS_pwrite64: ::c_int = 68; -pub const SYS_pwritev: ::c_int = 70; -pub const SYS_quotactl: ::c_int = 60; -pub const SYS_readahead: ::c_int = 213; -pub const SYS_read: ::c_int = 63; -pub const SYS_readlinkat: ::c_int = 78; -pub const SYS_readlink: ::c_int = 1035; -pub const SYS_readv: ::c_int = 65; -pub const SYS_reboot: ::c_int = 142; -pub const SYS_recv: ::c_int = 1073; -pub const SYS_recvfrom: ::c_int = 207; -pub const SYS_recvmmsg: ::c_int = 243; -pub const SYS_recvmsg: ::c_int = 212; -pub const SYS_remap_file_pages: ::c_int = 234; -pub const SYS_removexattr: ::c_int = 14; -pub const SYS_renameat2: ::c_int = 276; -pub const SYS_renameat: ::c_int = 38; -pub const SYS_rename: ::c_int = 1034; -pub const SYS_request_key: ::c_int = 218; -pub const SYS_restart_syscall: ::c_int = 128; -pub const SYS_rmdir: ::c_int = 1031; -pub const SYS_rt_sigaction: ::c_int = 134; -pub const SYS_rt_sigpending: ::c_int = 136; -pub const SYS_rt_sigprocmask: ::c_int = 135; -pub const SYS_rt_sigqueueinfo: ::c_int = 138; -pub const SYS_rt_sigreturn: ::c_int = 139; -pub const SYS_rt_sigsuspend: ::c_int = 133; -pub const SYS_rt_sigtimedwait: ::c_int = 137; -pub const SYS_rt_tgsigqueueinfo: ::c_int = 240; -pub const SYS_sched_getaffinity: ::c_int = 123; -pub const SYS_sched_getattr: ::c_int = 275; -pub const SYS_sched_getparam: ::c_int = 121; -pub const SYS_sched_get_priority_max: ::c_int = 125; -pub const SYS_sched_get_priority_min: ::c_int = 126; -pub const SYS_sched_getscheduler: ::c_int = 120; -pub const SYS_sched_rr_get_interval: ::c_int = 127; -pub const SYS_sched_setaffinity: ::c_int = 122; -pub const SYS_sched_setattr: ::c_int = 274; -pub const SYS_sched_setparam: ::c_int = 118; -pub const SYS_sched_setscheduler: ::c_int = 119; -pub const SYS_sched_yield: ::c_int = 124; -pub const SYS_seccomp: ::c_int = 277; -pub const SYS_select: ::c_int = 1067; -pub const SYS_semctl: ::c_int = 191; -pub const SYS_semget: ::c_int = 190; -pub const SYS_semop: ::c_int = 193; -pub const SYS_semtimedop: ::c_int = 192; -pub const SYS_send: ::c_int = 1074; -pub const SYS_sendfile64: ::c_int = 71; -pub const SYS_sendfile: ::c_int = 71; -pub const SYS_sendmmsg: ::c_int = 269; -pub const SYS_sendmsg: ::c_int = 211; -pub const SYS_sendto: ::c_int = 206; -pub const SYS_setdomainname: ::c_int = 162; -pub const SYS_setfsgid: ::c_int = 152; -pub const SYS_setfsuid: ::c_int = 151; -pub const SYS_setgid: ::c_int = 144; -pub const SYS_setgroups: ::c_int = 159; -pub const SYS_sethostname: ::c_int = 161; -pub const SYS_setitimer: ::c_int = 103; -pub const SYS_set_mempolicy: ::c_int = 237; -pub const SYS_setns: ::c_int = 268; -pub const SYS_setpgid: ::c_int = 154; -pub const SYS_setpriority: ::c_int = 140; -pub const SYS_setregid: ::c_int = 143; -pub const SYS_setresgid: ::c_int = 149; -pub const SYS_setresuid: ::c_int = 147; -pub const SYS_setreuid: ::c_int = 145; -pub const SYS_setrlimit: ::c_int = 164; -pub const SYS_set_robust_list: ::c_int = 99; -pub const SYS_setsid: ::c_int = 157; -pub const SYS_setsockopt: ::c_int = 208; -pub const SYS_set_tid_address: ::c_int = 96; -pub const SYS_settimeofday: ::c_int = 170; -pub const SYS_setuid: ::c_int = 146; -pub const SYS_setxattr: ::c_int = 5; -pub const SYS_shmat: ::c_int = 196; -pub const SYS_shmctl: ::c_int = 195; -pub const SYS_shmdt: ::c_int = 197; -pub const SYS_shmget: ::c_int = 194; -pub const SYS_shutdown: ::c_int = 210; -pub const SYS_sigaltstack: ::c_int = 132; -pub const SYS_signalfd4: ::c_int = 74; -pub const SYS_signalfd: ::c_int = 1045; -pub const SYS_socket: ::c_int = 198; -pub const SYS_socketpair: ::c_int = 199; -pub const SYS_splice: ::c_int = 76; -pub const SYS_stat64: ::c_int = 1038; -pub const SYS_stat: ::c_int = 1038; -pub const SYS_statfs64: ::c_int = 43; -pub const SYS_swapoff: ::c_int = 225; -pub const SYS_swapon: ::c_int = 224; -pub const SYS_symlinkat: ::c_int = 36; -pub const SYS_symlink: ::c_int = 1036; -pub const SYS_sync: ::c_int = 81; -pub const SYS_sync_file_range2: ::c_int = 84; -pub const SYS_sync_file_range: ::c_int = 84; -pub const SYS_syncfs: ::c_int = 267; -pub const SYS_syscalls: ::c_int = 1080; -pub const SYS__sysctl: ::c_int = 1078; -pub const SYS_sysinfo: ::c_int = 179; -pub const SYS_syslog: ::c_int = 116; -pub const SYS_tee: ::c_int = 77; -pub const SYS_tgkill: ::c_int = 131; -pub const SYS_time: ::c_int = 1062; -pub const SYS_timer_create: ::c_int = 107; -pub const SYS_timer_delete: ::c_int = 111; -pub const SYS_timerfd_create: ::c_int = 85; -pub const SYS_timerfd_gettime: ::c_int = 87; -pub const SYS_timerfd_settime: ::c_int = 86; -pub const SYS_timer_getoverrun: ::c_int = 109; -pub const SYS_timer_gettime: ::c_int = 108; -pub const SYS_timer_settime: ::c_int = 110; -pub const SYS_times: ::c_int = 153; -pub const SYS_tkill: ::c_int = 130; -pub const SYS_truncate64: ::c_int = 45; -pub const SYS_truncate: ::c_int = 45; -pub const SYS_umask: ::c_int = 166; -pub const SYS_umount2: ::c_int = 39; -pub const SYS_umount: ::c_int = 1076; -pub const SYS_uname: ::c_int = 160; -pub const SYS_unlinkat: ::c_int = 35; -pub const SYS_unlink: ::c_int = 1026; -pub const SYS_unshare: ::c_int = 97; -pub const SYS_uselib: ::c_int = 1077; -pub const SYS_ustat: ::c_int = 1070; -pub const SYS_utime: ::c_int = 1063; -pub const SYS_utimensat: ::c_int = 88; -pub const SYS_utimes: ::c_int = 1037; -pub const SYS_vfork: ::c_int = 1071; -pub const SYS_vhangup: ::c_int = 58; -pub const SYS_vmsplice: ::c_int = 75; -pub const SYS_wait4: ::c_int = 260; -pub const SYS_waitid: ::c_int = 95; -pub const SYS_write: ::c_int = 64; -pub const SYS_writev: ::c_int = 66; -pub const SYS_statx: ::c_int = 291; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const TIOCM_LOOP: ::c_int = 32768; -pub const TIOCM_OUT1: ::c_int = 8192; -pub const TIOCM_OUT2: ::c_int = 16384; -pub const TIOCSER_TEMT: ::c_int = 1; -pub const TOSTOP: ::c_int = 256; -pub const VEOF: ::c_int = 4; -pub const VEOL2: ::c_int = 16; -pub const VEOL: ::c_int = 11; -pub const VMIN: ::c_int = 6; +pub const SYS3264_fadvise64: c_int = 223; +pub const SYS3264_fcntl: c_int = 25; +pub const SYS3264_fstatat: c_int = 79; +pub const SYS3264_fstat: c_int = 80; +pub const SYS3264_fstatfs: c_int = 44; +pub const SYS3264_ftruncate: c_int = 46; +pub const SYS3264_lseek: c_int = 62; +pub const SYS3264_lstat: c_int = 1039; +pub const SYS3264_mmap: c_int = 222; +pub const SYS3264_sendfile: c_int = 71; +pub const SYS3264_stat: c_int = 1038; +pub const SYS3264_statfs: c_int = 43; +pub const SYS3264_truncate: c_int = 45; +pub const SYS_accept4: c_int = 242; +pub const SYS_accept: c_int = 202; +pub const SYS_access: c_int = 1033; +pub const SYS_acct: c_int = 89; +pub const SYS_add_key: c_int = 217; +pub const SYS_adjtimex: c_int = 171; +pub const SYS_alarm: c_int = 1059; +pub const SYS_arch_specific_syscall: c_int = 244; +pub const SYS_bdflush: c_int = 1075; +pub const SYS_bind: c_int = 200; +pub const SYS_bpf: c_int = 280; +pub const SYS_brk: c_int = 214; +pub const SYS_capget: c_int = 90; +pub const SYS_capset: c_int = 91; +pub const SYS_chdir: c_int = 49; +pub const SYS_chmod: c_int = 1028; +pub const SYS_chown: c_int = 1029; +pub const SYS_chroot: c_int = 51; +pub const SYS_clock_adjtime: c_int = 266; +pub const SYS_clock_getres: c_int = 114; +pub const SYS_clock_gettime: c_int = 113; +pub const SYS_clock_nanosleep: c_int = 115; +pub const SYS_clock_settime: c_int = 112; +pub const SYS_clone: c_int = 220; +pub const SYS_close: c_int = 57; +pub const SYS_connect: c_int = 203; +pub const SYS_copy_file_range: c_int = -1; // FIXME +pub const SYS_creat: c_int = 1064; +pub const SYS_delete_module: c_int = 106; +pub const SYS_dup2: c_int = 1041; +pub const SYS_dup3: c_int = 24; +pub const SYS_dup: c_int = 23; +pub const SYS_epoll_create1: c_int = 20; +pub const SYS_epoll_create: c_int = 1042; +pub const SYS_epoll_ctl: c_int = 21; +pub const SYS_epoll_pwait: c_int = 22; +pub const SYS_epoll_wait: c_int = 1069; +pub const SYS_eventfd2: c_int = 19; +pub const SYS_eventfd: c_int = 1044; +pub const SYS_execveat: c_int = 281; +pub const SYS_execve: c_int = 221; +pub const SYS_exit: c_int = 93; +pub const SYS_exit_group: c_int = 94; +pub const SYS_faccessat: c_int = 48; +pub const SYS_fadvise64_64: c_int = 223; +pub const SYS_fallocate: c_int = 47; +pub const SYS_fanotify_init: c_int = 262; +pub const SYS_fanotify_mark: c_int = 263; +pub const SYS_fchdir: c_int = 50; +pub const SYS_fchmodat: c_int = 53; +pub const SYS_fchmod: c_int = 52; +pub const SYS_fchownat: c_int = 54; +pub const SYS_fchown: c_int = 55; +pub const SYS_fcntl64: c_int = 25; +pub const SYS_fcntl: c_int = 25; +pub const SYS_fdatasync: c_int = 83; +pub const SYS_fgetxattr: c_int = 10; +pub const SYS_finit_module: c_int = 273; +pub const SYS_flistxattr: c_int = 13; +pub const SYS_flock: c_int = 32; +pub const SYS_fork: c_int = 1079; +pub const SYS_fremovexattr: c_int = 16; +pub const SYS_fsetxattr: c_int = 7; +pub const SYS_fstat64: c_int = 80; +pub const SYS_fstatat64: c_int = 79; +pub const SYS_fstatfs64: c_int = 44; +pub const SYS_fstatfs: c_int = 44; +pub const SYS_fsync: c_int = 82; +pub const SYS_ftruncate64: c_int = 46; +pub const SYS_ftruncate: c_int = 46; +pub const SYS_futex: c_int = 98; +pub const SYS_futimesat: c_int = 1066; +pub const SYS_getcpu: c_int = 168; +pub const SYS_getcwd: c_int = 17; +pub const SYS_getdents64: c_int = 61; +pub const SYS_getdents: c_int = 1065; +pub const SYS_getegid: c_int = 177; +pub const SYS_geteuid: c_int = 175; +pub const SYS_getgid: c_int = 176; +pub const SYS_getgroups: c_int = 158; +pub const SYS_getitimer: c_int = 102; +pub const SYS_get_mempolicy: c_int = 236; +pub const SYS_getpeername: c_int = 205; +pub const SYS_getpgid: c_int = 155; +pub const SYS_getpgrp: c_int = 1060; +pub const SYS_getpid: c_int = 172; +pub const SYS_getppid: c_int = 173; +pub const SYS_getpriority: c_int = 141; +pub const SYS_getrandom: c_int = 278; +pub const SYS_getresgid: c_int = 150; +pub const SYS_getresuid: c_int = 148; +pub const SYS_getrlimit: c_int = 163; +pub const SYS_get_robust_list: c_int = 100; +pub const SYS_getrusage: c_int = 165; +pub const SYS_getsid: c_int = 156; +pub const SYS_getsockname: c_int = 204; +pub const SYS_getsockopt: c_int = 209; +pub const SYS_gettid: c_int = 178; +pub const SYS_gettimeofday: c_int = 169; +pub const SYS_getuid: c_int = 174; +pub const SYS_getxattr: c_int = 8; +pub const SYS_init_module: c_int = 105; +pub const SYS_inotify_add_watch: c_int = 27; +pub const SYS_inotify_init1: c_int = 26; +pub const SYS_inotify_init: c_int = 1043; +pub const SYS_inotify_rm_watch: c_int = 28; +pub const SYS_io_cancel: c_int = 3; +pub const SYS_ioctl: c_int = 29; +pub const SYS_io_destroy: c_int = 1; +pub const SYS_io_getevents: c_int = 4; +pub const SYS_ioprio_get: c_int = 31; +pub const SYS_ioprio_set: c_int = 30; +pub const SYS_io_setup: c_int = 0; +pub const SYS_io_submit: c_int = 2; +pub const SYS_kcmp: c_int = 272; +pub const SYS_kexec_load: c_int = 104; +pub const SYS_keyctl: c_int = 219; +pub const SYS_kill: c_int = 129; +pub const SYS_lchown: c_int = 1032; +pub const SYS_lgetxattr: c_int = 9; +pub const SYS_linkat: c_int = 37; +pub const SYS_link: c_int = 1025; +pub const SYS_listen: c_int = 201; +pub const SYS_listxattr: c_int = 11; +pub const SYS_llistxattr: c_int = 12; +pub const SYS__llseek: c_int = 62; +pub const SYS_lookup_dcookie: c_int = 18; +pub const SYS_lremovexattr: c_int = 15; +pub const SYS_lseek: c_int = 62; +pub const SYS_lsetxattr: c_int = 6; +pub const SYS_lstat64: c_int = 1039; +pub const SYS_lstat: c_int = 1039; +pub const SYS_madvise: c_int = 233; +pub const SYS_mbind: c_int = 235; +pub const SYS_memfd_create: c_int = 279; +pub const SYS_migrate_pages: c_int = 238; +pub const SYS_mincore: c_int = 232; +pub const SYS_mkdirat: c_int = 34; +pub const SYS_mkdir: c_int = 1030; +pub const SYS_mknodat: c_int = 33; +pub const SYS_mknod: c_int = 1027; +pub const SYS_mlockall: c_int = 230; +pub const SYS_mlock: c_int = 228; +pub const SYS_mmap2: c_int = 222; +pub const SYS_mount: c_int = 40; +pub const SYS_move_pages: c_int = 239; +pub const SYS_mprotect: c_int = 226; +pub const SYS_mq_getsetattr: c_int = 185; +pub const SYS_mq_notify: c_int = 184; +pub const SYS_mq_open: c_int = 180; +pub const SYS_mq_timedreceive: c_int = 183; +pub const SYS_mq_timedsend: c_int = 182; +pub const SYS_mq_unlink: c_int = 181; +pub const SYS_mremap: c_int = 216; +pub const SYS_msgctl: c_int = 187; +pub const SYS_msgget: c_int = 186; +pub const SYS_msgrcv: c_int = 188; +pub const SYS_msgsnd: c_int = 189; +pub const SYS_msync: c_int = 227; +pub const SYS_munlockall: c_int = 231; +pub const SYS_munlock: c_int = 229; +pub const SYS_munmap: c_int = 215; +pub const SYS_name_to_handle_at: c_int = 264; +pub const SYS_nanosleep: c_int = 101; +pub const SYS_newfstatat: c_int = 79; +pub const SYS_nfsservctl: c_int = 42; +pub const SYS_oldwait4: c_int = 1072; +pub const SYS_openat: c_int = 56; +pub const SYS_open_by_handle_at: c_int = 265; +pub const SYS_open: c_int = 1024; +pub const SYS_pause: c_int = 1061; +pub const SYS_perf_event_open: c_int = 241; +pub const SYS_personality: c_int = 92; +pub const SYS_pipe2: c_int = 59; +pub const SYS_pipe: c_int = 1040; +pub const SYS_pivot_root: c_int = 41; +pub const SYS_poll: c_int = 1068; +pub const SYS_ppoll: c_int = 73; +pub const SYS_prctl: c_int = 167; +pub const SYS_pread64: c_int = 67; +pub const SYS_preadv: c_int = 69; +pub const SYS_prlimit64: c_int = 261; +pub const SYS_process_vm_readv: c_int = 270; +pub const SYS_process_vm_writev: c_int = 271; +pub const SYS_pselect6: c_int = 72; +pub const SYS_ptrace: c_int = 117; +pub const SYS_pwrite64: c_int = 68; +pub const SYS_pwritev: c_int = 70; +pub const SYS_quotactl: c_int = 60; +pub const SYS_readahead: c_int = 213; +pub const SYS_read: c_int = 63; +pub const SYS_readlinkat: c_int = 78; +pub const SYS_readlink: c_int = 1035; +pub const SYS_readv: c_int = 65; +pub const SYS_reboot: c_int = 142; +pub const SYS_recv: c_int = 1073; +pub const SYS_recvfrom: c_int = 207; +pub const SYS_recvmmsg: c_int = 243; +pub const SYS_recvmsg: c_int = 212; +pub const SYS_remap_file_pages: c_int = 234; +pub const SYS_removexattr: c_int = 14; +pub const SYS_renameat2: c_int = 276; +pub const SYS_renameat: c_int = 38; +pub const SYS_rename: c_int = 1034; +pub const SYS_request_key: c_int = 218; +pub const SYS_restart_syscall: c_int = 128; +pub const SYS_rmdir: c_int = 1031; +pub const SYS_rt_sigaction: c_int = 134; +pub const SYS_rt_sigpending: c_int = 136; +pub const SYS_rt_sigprocmask: c_int = 135; +pub const SYS_rt_sigqueueinfo: c_int = 138; +pub const SYS_rt_sigreturn: c_int = 139; +pub const SYS_rt_sigsuspend: c_int = 133; +pub const SYS_rt_sigtimedwait: c_int = 137; +pub const SYS_rt_tgsigqueueinfo: c_int = 240; +pub const SYS_sched_getaffinity: c_int = 123; +pub const SYS_sched_getattr: c_int = 275; +pub const SYS_sched_getparam: c_int = 121; +pub const SYS_sched_get_priority_max: c_int = 125; +pub const SYS_sched_get_priority_min: c_int = 126; +pub const SYS_sched_getscheduler: c_int = 120; +pub const SYS_sched_rr_get_interval: c_int = 127; +pub const SYS_sched_setaffinity: c_int = 122; +pub const SYS_sched_setattr: c_int = 274; +pub const SYS_sched_setparam: c_int = 118; +pub const SYS_sched_setscheduler: c_int = 119; +pub const SYS_sched_yield: c_int = 124; +pub const SYS_seccomp: c_int = 277; +pub const SYS_select: c_int = 1067; +pub const SYS_semctl: c_int = 191; +pub const SYS_semget: c_int = 190; +pub const SYS_semop: c_int = 193; +pub const SYS_semtimedop: c_int = 192; +pub const SYS_send: c_int = 1074; +pub const SYS_sendfile64: c_int = 71; +pub const SYS_sendfile: c_int = 71; +pub const SYS_sendmmsg: c_int = 269; +pub const SYS_sendmsg: c_int = 211; +pub const SYS_sendto: c_int = 206; +pub const SYS_setdomainname: c_int = 162; +pub const SYS_setfsgid: c_int = 152; +pub const SYS_setfsuid: c_int = 151; +pub const SYS_setgid: c_int = 144; +pub const SYS_setgroups: c_int = 159; +pub const SYS_sethostname: c_int = 161; +pub const SYS_setitimer: c_int = 103; +pub const SYS_set_mempolicy: c_int = 237; +pub const SYS_setns: c_int = 268; +pub const SYS_setpgid: c_int = 154; +pub const SYS_setpriority: c_int = 140; +pub const SYS_setregid: c_int = 143; +pub const SYS_setresgid: c_int = 149; +pub const SYS_setresuid: c_int = 147; +pub const SYS_setreuid: c_int = 145; +pub const SYS_setrlimit: c_int = 164; +pub const SYS_set_robust_list: c_int = 99; +pub const SYS_setsid: c_int = 157; +pub const SYS_setsockopt: c_int = 208; +pub const SYS_set_tid_address: c_int = 96; +pub const SYS_settimeofday: c_int = 170; +pub const SYS_setuid: c_int = 146; +pub const SYS_setxattr: c_int = 5; +pub const SYS_shmat: c_int = 196; +pub const SYS_shmctl: c_int = 195; +pub const SYS_shmdt: c_int = 197; +pub const SYS_shmget: c_int = 194; +pub const SYS_shutdown: c_int = 210; +pub const SYS_sigaltstack: c_int = 132; +pub const SYS_signalfd4: c_int = 74; +pub const SYS_signalfd: c_int = 1045; +pub const SYS_socket: c_int = 198; +pub const SYS_socketpair: c_int = 199; +pub const SYS_splice: c_int = 76; +pub const SYS_stat64: c_int = 1038; +pub const SYS_stat: c_int = 1038; +pub const SYS_statfs64: c_int = 43; +pub const SYS_swapoff: c_int = 225; +pub const SYS_swapon: c_int = 224; +pub const SYS_symlinkat: c_int = 36; +pub const SYS_symlink: c_int = 1036; +pub const SYS_sync: c_int = 81; +pub const SYS_sync_file_range2: c_int = 84; +pub const SYS_sync_file_range: c_int = 84; +pub const SYS_syncfs: c_int = 267; +pub const SYS_syscalls: c_int = 1080; +pub const SYS__sysctl: c_int = 1078; +pub const SYS_sysinfo: c_int = 179; +pub const SYS_syslog: c_int = 116; +pub const SYS_tee: c_int = 77; +pub const SYS_tgkill: c_int = 131; +pub const SYS_time: c_int = 1062; +pub const SYS_timer_create: c_int = 107; +pub const SYS_timer_delete: c_int = 111; +pub const SYS_timerfd_create: c_int = 85; +pub const SYS_timerfd_gettime: c_int = 87; +pub const SYS_timerfd_settime: c_int = 86; +pub const SYS_timer_getoverrun: c_int = 109; +pub const SYS_timer_gettime: c_int = 108; +pub const SYS_timer_settime: c_int = 110; +pub const SYS_times: c_int = 153; +pub const SYS_tkill: c_int = 130; +pub const SYS_truncate64: c_int = 45; +pub const SYS_truncate: c_int = 45; +pub const SYS_umask: c_int = 166; +pub const SYS_umount2: c_int = 39; +pub const SYS_umount: c_int = 1076; +pub const SYS_uname: c_int = 160; +pub const SYS_unlinkat: c_int = 35; +pub const SYS_unlink: c_int = 1026; +pub const SYS_unshare: c_int = 97; +pub const SYS_uselib: c_int = 1077; +pub const SYS_ustat: c_int = 1070; +pub const SYS_utime: c_int = 1063; +pub const SYS_utimensat: c_int = 88; +pub const SYS_utimes: c_int = 1037; +pub const SYS_vfork: c_int = 1071; +pub const SYS_vhangup: c_int = 58; +pub const SYS_vmsplice: c_int = 75; +pub const SYS_wait4: c_int = 260; +pub const SYS_waitid: c_int = 95; +pub const SYS_write: c_int = 64; +pub const SYS_writev: c_int = 66; +pub const SYS_statx: c_int = 291; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const TIOCM_LOOP: c_int = 32768; +pub const TIOCM_OUT1: c_int = 8192; +pub const TIOCM_OUT2: c_int = 16384; +pub const TIOCSER_TEMT: c_int = 1; +pub const TOSTOP: c_int = 256; +pub const VEOF: c_int = 4; +pub const VEOL2: c_int = 16; +pub const VEOL: c_int = 11; +pub const VMIN: c_int = 6; diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index 39af8372d54e8..af64d4d462324 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -1,138 +1,140 @@ +use crate::{c_int, c_long, c_short, c_ulong, c_void, off_t, size_t}; + pub type c_char = i8; -pub type wchar_t = ::c_int; +pub type wchar_t = c_int; s! { pub struct stat { - pub st_dev: ::dev_t, - __st_padding1: [::c_long; 2], - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_padding2: [::c_long; 2], - pub st_size: ::off_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_blksize: ::blksize_t, - __st_padding3: ::c_long, - pub st_blocks: ::blkcnt_t, - __st_padding4: [::c_long; 14], + pub st_dev: crate::dev_t, + __st_padding1: [c_long; 2], + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __st_padding2: [c_long; 2], + pub st_size: off_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_blksize: crate::blksize_t, + __st_padding3: c_long, + pub st_blocks: crate::blkcnt_t, + __st_padding4: [c_long; 14], } pub struct stat64 { - pub st_dev: ::dev_t, - __st_padding1: [::c_long; 2], - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_padding2: [::c_long; 2], - pub st_size: ::off_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_blksize: ::blksize_t, - __st_padding3: ::c_long, - pub st_blocks: ::blkcnt64_t, - __st_padding4: [::c_long; 14], + pub st_dev: crate::dev_t, + __st_padding1: [c_long; 2], + pub st_ino: crate::ino64_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __st_padding2: [c_long; 2], + pub st_size: off_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_blksize: crate::blksize_t, + __st_padding3: c_long, + pub st_blocks: crate::blkcnt64_t, + __st_padding4: [c_long; 14], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, + pub ss_sp: *mut c_void, + pub ss_size: size_t, + pub ss_flags: c_int, } 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_int, - __unused1: ::c_long, - __unused2: ::c_long, + pub __ipc_perm_key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub __seq: c_int, + __unused1: c_long, + __unused2: c_long, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::c_ulong, - __pad1: ::c_ulong, - __pad2: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: c_ulong, + __pad1: c_ulong, + __pad2: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, + pub msg_perm: crate::ipc_perm, #[cfg(target_endian = "big")] - __unused1: ::c_int, - pub msg_stime: ::time_t, + __unused1: c_int, + pub msg_stime: crate::time_t, #[cfg(target_endian = "little")] - __unused1: ::c_int, + __unused1: c_int, #[cfg(target_endian = "big")] - __unused2: ::c_int, - pub msg_rtime: ::time_t, + __unused2: c_int, + pub msg_rtime: crate::time_t, #[cfg(target_endian = "little")] - __unused2: ::c_int, + __unused2: c_int, #[cfg(target_endian = "big")] - __unused3: ::c_int, - pub msg_ctime: ::time_t, + __unused3: c_int, + pub msg_ctime: crate::time_t, #[cfg(target_endian = "little")] - __unused3: ::c_int, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, + __unused3: c_int, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __pad1: c_ulong, + __pad2: c_ulong, } pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 5], + pub f_type: c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_ulong, + pub f_flags: c_ulong, + pub f_spare: [c_ulong; 5], } pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 5], + pub f_type: c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_ulong, + pub f_flags: c_ulong, + pub f_spare: [c_ulong; 5], } } @@ -144,28 +146,28 @@ s_no_extra_traits! { } } -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; -pub const O_DIRECT: ::c_int = 0o100000; -pub const O_DIRECTORY: ::c_int = 0o200000; -pub const O_NOFOLLOW: ::c_int = 0o400000; -pub const O_ASYNC: ::c_int = 0o10000; -pub const O_LARGEFILE: ::c_int = 0x2000; +pub const O_DIRECT: c_int = 0o100000; +pub const O_DIRECTORY: c_int = 0o200000; +pub const O_NOFOLLOW: c_int = 0o400000; +pub const O_ASYNC: c_int = 0o10000; +pub const O_LARGEFILE: c_int = 0x2000; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::c_int = 0x00000800; -pub const TAB2: ::c_int = 0x00001000; -pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: c_int = 0x00000800; +pub const TAB2: c_int = 0x00001000; +pub const TAB3: c_int = 0x00001800; +pub const CR1: c_int = 0x00000200; +pub const CR2: c_int = 0x00000400; +pub const CR3: c_int = 0x00000600; +pub const FF1: c_int = 0x00008000; +pub const BS1: c_int = 0x00002000; +pub const VT1: c_int = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -173,590 +175,590 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; -pub const O_APPEND: ::c_int = 0o010; -pub const O_CREAT: ::c_int = 0o400; -pub const O_EXCL: ::c_int = 0o2000; -pub const O_NOCTTY: ::c_int = 0o4000; -pub const O_NONBLOCK: ::c_int = 0o200; -pub const O_SYNC: ::c_int = 0o40020; -pub const O_RSYNC: ::c_int = 0o40020; -pub const O_DSYNC: ::c_int = 0o020; +pub const O_APPEND: c_int = 0o010; +pub const O_CREAT: c_int = 0o400; +pub const O_EXCL: c_int = 0o2000; +pub const O_NOCTTY: c_int = 0o4000; +pub const O_NONBLOCK: c_int = 0o200; +pub const O_SYNC: c_int = 0o40020; +pub const O_RSYNC: c_int = 0o40020; +pub const O_DSYNC: c_int = 0o020; -pub const MAP_ANON: ::c_int = 0x800; -pub const MAP_GROWSDOWN: ::c_int = 0x1000; -pub const MAP_DENYWRITE: ::c_int = 0x2000; -pub const MAP_EXECUTABLE: ::c_int = 0x4000; -pub const MAP_LOCKED: ::c_int = 0x8000; -pub const MAP_NORESERVE: ::c_int = 0x0400; -pub const MAP_POPULATE: ::c_int = 0x10000; -pub const MAP_NONBLOCK: ::c_int = 0x20000; -pub const MAP_STACK: ::c_int = 0x40000; -pub const MAP_HUGETLB: ::c_int = 0x80000; +pub const MAP_ANON: c_int = 0x800; +pub const MAP_GROWSDOWN: c_int = 0x1000; +pub const MAP_DENYWRITE: c_int = 0x2000; +pub const MAP_EXECUTABLE: c_int = 0x4000; +pub const MAP_LOCKED: c_int = 0x8000; +pub const MAP_NORESERVE: c_int = 0x0400; +pub const MAP_POPULATE: c_int = 0x10000; +pub const MAP_NONBLOCK: c_int = 0x20000; +pub const MAP_STACK: c_int = 0x40000; +pub const MAP_HUGETLB: c_int = 0x80000; -pub const EDEADLK: ::c_int = 45; -pub const ENAMETOOLONG: ::c_int = 78; -pub const ENOLCK: ::c_int = 46; -pub const ENOSYS: ::c_int = 89; -pub const ENOTEMPTY: ::c_int = 93; -pub const ELOOP: ::c_int = 90; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const ECHRNG: ::c_int = 37; -pub const EL2NSYNC: ::c_int = 38; -pub const EL3HLT: ::c_int = 39; -pub const EL3RST: ::c_int = 40; -pub const ELNRNG: ::c_int = 41; -pub const EUNATCH: ::c_int = 42; -pub const ENOCSI: ::c_int = 43; -pub const EL2HLT: ::c_int = 44; -pub const EBADE: ::c_int = 50; -pub const EBADR: ::c_int = 51; -pub const EXFULL: ::c_int = 52; -pub const ENOANO: ::c_int = 53; -pub const EBADRQC: ::c_int = 54; -pub const EBADSLT: ::c_int = 55; -pub const EDEADLOCK: ::c_int = 56; -pub const EMULTIHOP: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 79; -pub const ENOTUNIQ: ::c_int = 80; -pub const EBADFD: ::c_int = 81; -pub const EBADMSG: ::c_int = 77; -pub const EREMCHG: ::c_int = 82; -pub const ELIBACC: ::c_int = 83; -pub const ELIBBAD: ::c_int = 84; -pub const ELIBSCN: ::c_int = 85; -pub const ELIBMAX: ::c_int = 86; -pub const ELIBEXEC: ::c_int = 87; -pub const EILSEQ: ::c_int = 88; -pub const ERESTART: ::c_int = 91; -pub const ESTRPIPE: ::c_int = 92; -pub const EUSERS: ::c_int = 94; -pub const ENOTSOCK: ::c_int = 95; -pub const EDESTADDRREQ: ::c_int = 96; -pub const EMSGSIZE: ::c_int = 97; -pub const EPROTOTYPE: ::c_int = 98; -pub const ENOPROTOOPT: ::c_int = 99; -pub const EPROTONOSUPPORT: ::c_int = 120; -pub const ESOCKTNOSUPPORT: ::c_int = 121; -pub const EOPNOTSUPP: ::c_int = 122; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 123; -pub const EAFNOSUPPORT: ::c_int = 124; -pub const EADDRINUSE: ::c_int = 125; -pub const EADDRNOTAVAIL: ::c_int = 126; -pub const ENETDOWN: ::c_int = 127; -pub const ENETUNREACH: ::c_int = 128; -pub const ENETRESET: ::c_int = 129; -pub const ECONNABORTED: ::c_int = 130; -pub const ECONNRESET: ::c_int = 131; -pub const ENOBUFS: ::c_int = 132; -pub const EISCONN: ::c_int = 133; -pub const ENOTCONN: ::c_int = 134; -pub const ESHUTDOWN: ::c_int = 143; -pub const ETOOMANYREFS: ::c_int = 144; -pub const ETIMEDOUT: ::c_int = 145; -pub const ECONNREFUSED: ::c_int = 146; -pub const EHOSTDOWN: ::c_int = 147; -pub const EHOSTUNREACH: ::c_int = 148; -pub const EALREADY: ::c_int = 149; -pub const EINPROGRESS: ::c_int = 150; -pub const ESTALE: ::c_int = 151; -pub const EUCLEAN: ::c_int = 135; -pub const ENOTNAM: ::c_int = 137; -pub const ENAVAIL: ::c_int = 138; -pub const EISNAM: ::c_int = 139; -pub const EREMOTEIO: ::c_int = 140; -pub const EDQUOT: ::c_int = 1133; -pub const ENOMEDIUM: ::c_int = 159; -pub const EMEDIUMTYPE: ::c_int = 160; -pub const ECANCELED: ::c_int = 158; -pub const ENOKEY: ::c_int = 161; -pub const EKEYEXPIRED: ::c_int = 162; -pub const EKEYREVOKED: ::c_int = 163; -pub const EKEYREJECTED: ::c_int = 164; -pub const EOWNERDEAD: ::c_int = 165; -pub const ENOTRECOVERABLE: ::c_int = 166; -pub const EHWPOISON: ::c_int = 168; -pub const ERFKILL: ::c_int = 167; +pub const EDEADLK: c_int = 45; +pub const ENAMETOOLONG: c_int = 78; +pub const ENOLCK: c_int = 46; +pub const ENOSYS: c_int = 89; +pub const ENOTEMPTY: c_int = 93; +pub const ELOOP: c_int = 90; +pub const ENOMSG: c_int = 35; +pub const EIDRM: c_int = 36; +pub const ECHRNG: c_int = 37; +pub const EL2NSYNC: c_int = 38; +pub const EL3HLT: c_int = 39; +pub const EL3RST: c_int = 40; +pub const ELNRNG: c_int = 41; +pub const EUNATCH: c_int = 42; +pub const ENOCSI: c_int = 43; +pub const EL2HLT: c_int = 44; +pub const EBADE: c_int = 50; +pub const EBADR: c_int = 51; +pub const EXFULL: c_int = 52; +pub const ENOANO: c_int = 53; +pub const EBADRQC: c_int = 54; +pub const EBADSLT: c_int = 55; +pub const EDEADLOCK: c_int = 56; +pub const EMULTIHOP: c_int = 74; +pub const EOVERFLOW: c_int = 79; +pub const ENOTUNIQ: c_int = 80; +pub const EBADFD: c_int = 81; +pub const EBADMSG: c_int = 77; +pub const EREMCHG: c_int = 82; +pub const ELIBACC: c_int = 83; +pub const ELIBBAD: c_int = 84; +pub const ELIBSCN: c_int = 85; +pub const ELIBMAX: c_int = 86; +pub const ELIBEXEC: c_int = 87; +pub const EILSEQ: c_int = 88; +pub const ERESTART: c_int = 91; +pub const ESTRPIPE: c_int = 92; +pub const EUSERS: c_int = 94; +pub const ENOTSOCK: c_int = 95; +pub const EDESTADDRREQ: c_int = 96; +pub const EMSGSIZE: c_int = 97; +pub const EPROTOTYPE: c_int = 98; +pub const ENOPROTOOPT: c_int = 99; +pub const EPROTONOSUPPORT: c_int = 120; +pub const ESOCKTNOSUPPORT: c_int = 121; +pub const EOPNOTSUPP: c_int = 122; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 123; +pub const EAFNOSUPPORT: c_int = 124; +pub const EADDRINUSE: c_int = 125; +pub const EADDRNOTAVAIL: c_int = 126; +pub const ENETDOWN: c_int = 127; +pub const ENETUNREACH: c_int = 128; +pub const ENETRESET: c_int = 129; +pub const ECONNABORTED: c_int = 130; +pub const ECONNRESET: c_int = 131; +pub const ENOBUFS: c_int = 132; +pub const EISCONN: c_int = 133; +pub const ENOTCONN: c_int = 134; +pub const ESHUTDOWN: c_int = 143; +pub const ETOOMANYREFS: c_int = 144; +pub const ETIMEDOUT: c_int = 145; +pub const ECONNREFUSED: c_int = 146; +pub const EHOSTDOWN: c_int = 147; +pub const EHOSTUNREACH: c_int = 148; +pub const EALREADY: c_int = 149; +pub const EINPROGRESS: c_int = 150; +pub const ESTALE: c_int = 151; +pub const EUCLEAN: c_int = 135; +pub const ENOTNAM: c_int = 137; +pub const ENAVAIL: c_int = 138; +pub const EISNAM: c_int = 139; +pub const EREMOTEIO: c_int = 140; +pub const EDQUOT: c_int = 1133; +pub const ENOMEDIUM: c_int = 159; +pub const EMEDIUMTYPE: c_int = 160; +pub const ECANCELED: c_int = 158; +pub const ENOKEY: c_int = 161; +pub const EKEYEXPIRED: c_int = 162; +pub const EKEYREVOKED: c_int = 163; +pub const EKEYREJECTED: c_int = 164; +pub const EOWNERDEAD: c_int = 165; +pub const ENOTRECOVERABLE: c_int = 166; +pub const EHWPOISON: c_int = 168; +pub const ERFKILL: c_int = 167; -pub const SOCK_STREAM: ::c_int = 2; -pub const SOCK_DGRAM: ::c_int = 1; +pub const SOCK_STREAM: c_int = 2; +pub const SOCK_DGRAM: c_int = 1; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 8; -pub const SA_NOCLDWAIT: ::c_int = 0x10000; +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 8; +pub const SA_NOCLDWAIT: c_int = 0x10000; -pub const SIGCHLD: ::c_int = 18; -pub const SIGBUS: ::c_int = 10; -pub const SIGTTIN: ::c_int = 26; -pub const SIGTTOU: ::c_int = 27; -pub const SIGXCPU: ::c_int = 30; -pub const SIGXFSZ: ::c_int = 31; -pub const SIGVTALRM: ::c_int = 28; -pub const SIGPROF: ::c_int = 29; -pub const SIGWINCH: ::c_int = 20; -pub const SIGUSR1: ::c_int = 16; -pub const SIGUSR2: ::c_int = 17; -pub const SIGCONT: ::c_int = 25; -pub const SIGSTOP: ::c_int = 23; -pub const SIGTSTP: ::c_int = 24; -pub const SIGURG: ::c_int = 21; -pub const SIGIO: ::c_int = 22; -pub const SIGSYS: ::c_int = 12; -pub const SIGSTKFLT: ::c_int = 7; -pub const SIGPOLL: ::c_int = ::SIGIO; -pub const SIGPWR: ::c_int = 19; -pub const SIG_SETMASK: ::c_int = 3; -pub const SIG_BLOCK: ::c_int = 1; -pub const SIG_UNBLOCK: ::c_int = 2; +pub const SIGCHLD: c_int = 18; +pub const SIGBUS: c_int = 10; +pub const SIGTTIN: c_int = 26; +pub const SIGTTOU: c_int = 27; +pub const SIGXCPU: c_int = 30; +pub const SIGXFSZ: c_int = 31; +pub const SIGVTALRM: c_int = 28; +pub const SIGPROF: c_int = 29; +pub const SIGWINCH: c_int = 20; +pub const SIGUSR1: c_int = 16; +pub const SIGUSR2: c_int = 17; +pub const SIGCONT: c_int = 25; +pub const SIGSTOP: c_int = 23; +pub const SIGTSTP: c_int = 24; +pub const SIGURG: c_int = 21; +pub const SIGIO: c_int = 22; +pub const SIGSYS: c_int = 12; +pub const SIGSTKFLT: c_int = 7; +pub const SIGPOLL: c_int = crate::SIGIO; +pub const SIGPWR: c_int = 19; +pub const SIG_SETMASK: c_int = 3; +pub const SIG_BLOCK: c_int = 1; +pub const SIG_UNBLOCK: c_int = 2; -pub const EXTPROC: ::tcflag_t = 0o200000; +pub const EXTPROC: crate::tcflag_t = 0o200000; -pub const F_GETLK: ::c_int = 33; -pub const F_GETOWN: ::c_int = 23; -pub const F_SETLK: ::c_int = 34; -pub const F_SETLKW: ::c_int = 35; -pub const F_SETOWN: ::c_int = 24; +pub const F_GETLK: c_int = 33; +pub const F_GETOWN: c_int = 23; +pub const F_SETLK: c_int = 34; +pub const F_SETLKW: c_int = 35; +pub const F_SETOWN: c_int = 24; pub const VEOF: usize = 16; pub const VEOL: usize = 17; pub const VEOL2: usize = 6; pub const VMIN: usize = 4; -pub const IEXTEN: ::tcflag_t = 0o000400; -pub const TOSTOP: ::tcflag_t = 0o100000; -pub const FLUSHO: ::tcflag_t = 0o020000; +pub const IEXTEN: crate::tcflag_t = 0o000400; +pub const TOSTOP: crate::tcflag_t = 0o100000; +pub const FLUSHO: crate::tcflag_t = 0o020000; -pub const POLLWRNORM: ::c_short = 0x4; -pub const POLLWRBAND: ::c_short = 0x100; +pub const POLLWRNORM: c_short = 0x4; +pub const POLLWRBAND: c_short = 0x100; -pub const SYS_syscall: ::c_long = 4000 + 0; -pub const SYS_exit: ::c_long = 4000 + 1; -pub const SYS_fork: ::c_long = 4000 + 2; -pub const SYS_read: ::c_long = 4000 + 3; -pub const SYS_write: ::c_long = 4000 + 4; -pub const SYS_open: ::c_long = 4000 + 5; -pub const SYS_close: ::c_long = 4000 + 6; -pub const SYS_waitpid: ::c_long = 4000 + 7; -pub const SYS_creat: ::c_long = 4000 + 8; -pub const SYS_link: ::c_long = 4000 + 9; -pub const SYS_unlink: ::c_long = 4000 + 10; -pub const SYS_execve: ::c_long = 4000 + 11; -pub const SYS_chdir: ::c_long = 4000 + 12; -pub const SYS_time: ::c_long = 4000 + 13; -pub const SYS_mknod: ::c_long = 4000 + 14; -pub const SYS_chmod: ::c_long = 4000 + 15; -pub const SYS_lchown: ::c_long = 4000 + 16; -pub const SYS_break: ::c_long = 4000 + 17; -pub const SYS_lseek: ::c_long = 4000 + 19; -pub const SYS_getpid: ::c_long = 4000 + 20; -pub const SYS_mount: ::c_long = 4000 + 21; -pub const SYS_umount: ::c_long = 4000 + 22; -pub const SYS_setuid: ::c_long = 4000 + 23; -pub const SYS_getuid: ::c_long = 4000 + 24; -pub const SYS_stime: ::c_long = 4000 + 25; -pub const SYS_ptrace: ::c_long = 4000 + 26; -pub const SYS_alarm: ::c_long = 4000 + 27; -pub const SYS_pause: ::c_long = 4000 + 29; -pub const SYS_utime: ::c_long = 4000 + 30; -pub const SYS_stty: ::c_long = 4000 + 31; -pub const SYS_gtty: ::c_long = 4000 + 32; -pub const SYS_access: ::c_long = 4000 + 33; -pub const SYS_nice: ::c_long = 4000 + 34; -pub const SYS_ftime: ::c_long = 4000 + 35; -pub const SYS_sync: ::c_long = 4000 + 36; -pub const SYS_kill: ::c_long = 4000 + 37; -pub const SYS_rename: ::c_long = 4000 + 38; -pub const SYS_mkdir: ::c_long = 4000 + 39; -pub const SYS_rmdir: ::c_long = 4000 + 40; -pub const SYS_dup: ::c_long = 4000 + 41; -pub const SYS_pipe: ::c_long = 4000 + 42; -pub const SYS_times: ::c_long = 4000 + 43; -pub const SYS_prof: ::c_long = 4000 + 44; -pub const SYS_brk: ::c_long = 4000 + 45; -pub const SYS_setgid: ::c_long = 4000 + 46; -pub const SYS_getgid: ::c_long = 4000 + 47; -pub const SYS_signal: ::c_long = 4000 + 48; -pub const SYS_geteuid: ::c_long = 4000 + 49; -pub const SYS_getegid: ::c_long = 4000 + 50; -pub const SYS_acct: ::c_long = 4000 + 51; -pub const SYS_umount2: ::c_long = 4000 + 52; -pub const SYS_lock: ::c_long = 4000 + 53; -pub const SYS_ioctl: ::c_long = 4000 + 54; -pub const SYS_fcntl: ::c_long = 4000 + 55; -pub const SYS_mpx: ::c_long = 4000 + 56; -pub const SYS_setpgid: ::c_long = 4000 + 57; -pub const SYS_ulimit: ::c_long = 4000 + 58; -pub const SYS_umask: ::c_long = 4000 + 60; -pub const SYS_chroot: ::c_long = 4000 + 61; -pub const SYS_ustat: ::c_long = 4000 + 62; -pub const SYS_dup2: ::c_long = 4000 + 63; -pub const SYS_getppid: ::c_long = 4000 + 64; -pub const SYS_getpgrp: ::c_long = 4000 + 65; -pub const SYS_setsid: ::c_long = 4000 + 66; -pub const SYS_sigaction: ::c_long = 4000 + 67; -pub const SYS_sgetmask: ::c_long = 4000 + 68; -pub const SYS_ssetmask: ::c_long = 4000 + 69; -pub const SYS_setreuid: ::c_long = 4000 + 70; -pub const SYS_setregid: ::c_long = 4000 + 71; -pub const SYS_sigsuspend: ::c_long = 4000 + 72; -pub const SYS_sigpending: ::c_long = 4000 + 73; -pub const SYS_sethostname: ::c_long = 4000 + 74; -pub const SYS_setrlimit: ::c_long = 4000 + 75; -pub const SYS_getrlimit: ::c_long = 4000 + 76; -pub const SYS_getrusage: ::c_long = 4000 + 77; -pub const SYS_gettimeofday: ::c_long = 4000 + 78; -pub const SYS_settimeofday: ::c_long = 4000 + 79; -pub const SYS_getgroups: ::c_long = 4000 + 80; -pub const SYS_setgroups: ::c_long = 4000 + 81; -pub const SYS_symlink: ::c_long = 4000 + 83; -pub const SYS_readlink: ::c_long = 4000 + 85; -pub const SYS_uselib: ::c_long = 4000 + 86; -pub const SYS_swapon: ::c_long = 4000 + 87; -pub const SYS_reboot: ::c_long = 4000 + 88; -pub const SYS_readdir: ::c_long = 4000 + 89; -pub const SYS_mmap: ::c_long = 4000 + 90; -pub const SYS_munmap: ::c_long = 4000 + 91; -pub const SYS_truncate: ::c_long = 4000 + 92; -pub const SYS_ftruncate: ::c_long = 4000 + 93; -pub const SYS_fchmod: ::c_long = 4000 + 94; -pub const SYS_fchown: ::c_long = 4000 + 95; -pub const SYS_getpriority: ::c_long = 4000 + 96; -pub const SYS_setpriority: ::c_long = 4000 + 97; -pub const SYS_profil: ::c_long = 4000 + 98; -pub const SYS_statfs: ::c_long = 4000 + 99; -pub const SYS_fstatfs: ::c_long = 4000 + 100; -pub const SYS_ioperm: ::c_long = 4000 + 101; -pub const SYS_socketcall: ::c_long = 4000 + 102; -pub const SYS_syslog: ::c_long = 4000 + 103; -pub const SYS_setitimer: ::c_long = 4000 + 104; -pub const SYS_getitimer: ::c_long = 4000 + 105; -pub const SYS_stat: ::c_long = 4000 + 106; -pub const SYS_lstat: ::c_long = 4000 + 107; -pub const SYS_fstat: ::c_long = 4000 + 108; -pub const SYS_iopl: ::c_long = 4000 + 110; -pub const SYS_vhangup: ::c_long = 4000 + 111; -pub const SYS_idle: ::c_long = 4000 + 112; -pub const SYS_vm86: ::c_long = 4000 + 113; -pub const SYS_wait4: ::c_long = 4000 + 114; -pub const SYS_swapoff: ::c_long = 4000 + 115; -pub const SYS_sysinfo: ::c_long = 4000 + 116; -pub const SYS_ipc: ::c_long = 4000 + 117; -pub const SYS_fsync: ::c_long = 4000 + 118; -pub const SYS_sigreturn: ::c_long = 4000 + 119; -pub const SYS_clone: ::c_long = 4000 + 120; -pub const SYS_setdomainname: ::c_long = 4000 + 121; -pub const SYS_uname: ::c_long = 4000 + 122; -pub const SYS_modify_ldt: ::c_long = 4000 + 123; -pub const SYS_adjtimex: ::c_long = 4000 + 124; -pub const SYS_mprotect: ::c_long = 4000 + 125; -pub const SYS_sigprocmask: ::c_long = 4000 + 126; -pub const SYS_create_module: ::c_long = 4000 + 127; -pub const SYS_init_module: ::c_long = 4000 + 128; -pub const SYS_delete_module: ::c_long = 4000 + 129; -pub const SYS_get_kernel_syms: ::c_long = 4000 + 130; -pub const SYS_quotactl: ::c_long = 4000 + 131; -pub const SYS_getpgid: ::c_long = 4000 + 132; -pub const SYS_fchdir: ::c_long = 4000 + 133; -pub const SYS_bdflush: ::c_long = 4000 + 134; -pub const SYS_sysfs: ::c_long = 4000 + 135; -pub const SYS_personality: ::c_long = 4000 + 136; -pub const SYS_afs_syscall: ::c_long = 4000 + 137; -pub const SYS_setfsuid: ::c_long = 4000 + 138; -pub const SYS_setfsgid: ::c_long = 4000 + 139; -pub const SYS__llseek: ::c_long = 4000 + 140; -pub const SYS_getdents: ::c_long = 4000 + 141; -pub const SYS_flock: ::c_long = 4000 + 143; -pub const SYS_msync: ::c_long = 4000 + 144; -pub const SYS_readv: ::c_long = 4000 + 145; -pub const SYS_writev: ::c_long = 4000 + 146; -pub const SYS_cacheflush: ::c_long = 4000 + 147; -pub const SYS_cachectl: ::c_long = 4000 + 148; -pub const SYS_sysmips: ::c_long = 4000 + 149; -pub const SYS_getsid: ::c_long = 4000 + 151; -pub const SYS_fdatasync: ::c_long = 4000 + 152; -pub const SYS__sysctl: ::c_long = 4000 + 153; -pub const SYS_mlock: ::c_long = 4000 + 154; -pub const SYS_munlock: ::c_long = 4000 + 155; -pub const SYS_mlockall: ::c_long = 4000 + 156; -pub const SYS_munlockall: ::c_long = 4000 + 157; -pub const SYS_sched_setparam: ::c_long = 4000 + 158; -pub const SYS_sched_getparam: ::c_long = 4000 + 159; -pub const SYS_sched_setscheduler: ::c_long = 4000 + 160; -pub const SYS_sched_getscheduler: ::c_long = 4000 + 161; -pub const SYS_sched_yield: ::c_long = 4000 + 162; -pub const SYS_sched_get_priority_max: ::c_long = 4000 + 163; -pub const SYS_sched_get_priority_min: ::c_long = 4000 + 164; -pub const SYS_sched_rr_get_interval: ::c_long = 4000 + 165; -pub const SYS_nanosleep: ::c_long = 4000 + 166; -pub const SYS_mremap: ::c_long = 4000 + 167; -pub const SYS_accept: ::c_long = 4000 + 168; -pub const SYS_bind: ::c_long = 4000 + 169; -pub const SYS_connect: ::c_long = 4000 + 170; -pub const SYS_getpeername: ::c_long = 4000 + 171; -pub const SYS_getsockname: ::c_long = 4000 + 172; -pub const SYS_getsockopt: ::c_long = 4000 + 173; -pub const SYS_listen: ::c_long = 4000 + 174; -pub const SYS_recv: ::c_long = 4000 + 175; -pub const SYS_recvfrom: ::c_long = 4000 + 176; -pub const SYS_recvmsg: ::c_long = 4000 + 177; -pub const SYS_send: ::c_long = 4000 + 178; -pub const SYS_sendmsg: ::c_long = 4000 + 179; -pub const SYS_sendto: ::c_long = 4000 + 180; -pub const SYS_setsockopt: ::c_long = 4000 + 181; -pub const SYS_shutdown: ::c_long = 4000 + 182; -pub const SYS_socket: ::c_long = 4000 + 183; -pub const SYS_socketpair: ::c_long = 4000 + 184; -pub const SYS_setresuid: ::c_long = 4000 + 185; -pub const SYS_getresuid: ::c_long = 4000 + 186; -pub const SYS_query_module: ::c_long = 4000 + 187; -pub const SYS_poll: ::c_long = 4000 + 188; -pub const SYS_nfsservctl: ::c_long = 4000 + 189; -pub const SYS_setresgid: ::c_long = 4000 + 190; -pub const SYS_getresgid: ::c_long = 4000 + 191; -pub const SYS_prctl: ::c_long = 4000 + 192; -pub const SYS_rt_sigreturn: ::c_long = 4000 + 193; -pub const SYS_rt_sigaction: ::c_long = 4000 + 194; -pub const SYS_rt_sigprocmask: ::c_long = 4000 + 195; -pub const SYS_rt_sigpending: ::c_long = 4000 + 196; -pub const SYS_rt_sigtimedwait: ::c_long = 4000 + 197; -pub const SYS_rt_sigqueueinfo: ::c_long = 4000 + 198; -pub const SYS_rt_sigsuspend: ::c_long = 4000 + 199; -pub const SYS_chown: ::c_long = 4000 + 202; -pub const SYS_getcwd: ::c_long = 4000 + 203; -pub const SYS_capget: ::c_long = 4000 + 204; -pub const SYS_capset: ::c_long = 4000 + 205; -pub const SYS_sigaltstack: ::c_long = 4000 + 206; -pub const SYS_sendfile: ::c_long = 4000 + 207; -pub const SYS_getpmsg: ::c_long = 4000 + 208; -pub const SYS_putpmsg: ::c_long = 4000 + 209; -pub const SYS_mmap2: ::c_long = 4000 + 210; -pub const SYS_truncate64: ::c_long = 4000 + 211; -pub const SYS_ftruncate64: ::c_long = 4000 + 212; -pub const SYS_stat64: ::c_long = 4000 + 213; -pub const SYS_lstat64: ::c_long = 4000 + 214; -pub const SYS_fstat64: ::c_long = 4000 + 215; -pub const SYS_pivot_root: ::c_long = 4000 + 216; -pub const SYS_mincore: ::c_long = 4000 + 217; -pub const SYS_madvise: ::c_long = 4000 + 218; -pub const SYS_getdents64: ::c_long = 4000 + 219; -pub const SYS_fcntl64: ::c_long = 4000 + 220; -pub const SYS_gettid: ::c_long = 4000 + 222; -pub const SYS_readahead: ::c_long = 4000 + 223; -pub const SYS_setxattr: ::c_long = 4000 + 224; -pub const SYS_lsetxattr: ::c_long = 4000 + 225; -pub const SYS_fsetxattr: ::c_long = 4000 + 226; -pub const SYS_getxattr: ::c_long = 4000 + 227; -pub const SYS_lgetxattr: ::c_long = 4000 + 228; -pub const SYS_fgetxattr: ::c_long = 4000 + 229; -pub const SYS_listxattr: ::c_long = 4000 + 230; -pub const SYS_llistxattr: ::c_long = 4000 + 231; -pub const SYS_flistxattr: ::c_long = 4000 + 232; -pub const SYS_removexattr: ::c_long = 4000 + 233; -pub const SYS_lremovexattr: ::c_long = 4000 + 234; -pub const SYS_fremovexattr: ::c_long = 4000 + 235; -pub const SYS_tkill: ::c_long = 4000 + 236; -pub const SYS_sendfile64: ::c_long = 4000 + 237; -pub const SYS_futex: ::c_long = 4000 + 238; -pub const SYS_sched_setaffinity: ::c_long = 4000 + 239; -pub const SYS_sched_getaffinity: ::c_long = 4000 + 240; -pub const SYS_io_setup: ::c_long = 4000 + 241; -pub const SYS_io_destroy: ::c_long = 4000 + 242; -pub const SYS_io_getevents: ::c_long = 4000 + 243; -pub const SYS_io_submit: ::c_long = 4000 + 244; -pub const SYS_io_cancel: ::c_long = 4000 + 245; -pub const SYS_exit_group: ::c_long = 4000 + 246; -pub const SYS_lookup_dcookie: ::c_long = 4000 + 247; -pub const SYS_epoll_create: ::c_long = 4000 + 248; -pub const SYS_epoll_ctl: ::c_long = 4000 + 249; -pub const SYS_epoll_wait: ::c_long = 4000 + 250; -pub const SYS_remap_file_pages: ::c_long = 4000 + 251; -pub const SYS_set_tid_address: ::c_long = 4000 + 252; -pub const SYS_restart_syscall: ::c_long = 4000 + 253; -pub const SYS_statfs64: ::c_long = 4000 + 255; -pub const SYS_fstatfs64: ::c_long = 4000 + 256; -pub const SYS_timer_create: ::c_long = 4000 + 257; -pub const SYS_timer_settime: ::c_long = 4000 + 258; -pub const SYS_timer_gettime: ::c_long = 4000 + 259; -pub const SYS_timer_getoverrun: ::c_long = 4000 + 260; -pub const SYS_timer_delete: ::c_long = 4000 + 261; -pub const SYS_clock_settime: ::c_long = 4000 + 262; -pub const SYS_clock_gettime: ::c_long = 4000 + 263; -pub const SYS_clock_getres: ::c_long = 4000 + 264; -pub const SYS_clock_nanosleep: ::c_long = 4000 + 265; -pub const SYS_tgkill: ::c_long = 4000 + 266; -pub const SYS_utimes: ::c_long = 4000 + 267; -pub const SYS_mbind: ::c_long = 4000 + 268; -pub const SYS_get_mempolicy: ::c_long = 4000 + 269; -pub const SYS_set_mempolicy: ::c_long = 4000 + 270; -pub const SYS_mq_open: ::c_long = 4000 + 271; -pub const SYS_mq_unlink: ::c_long = 4000 + 272; -pub const SYS_mq_timedsend: ::c_long = 4000 + 273; -pub const SYS_mq_timedreceive: ::c_long = 4000 + 274; -pub const SYS_mq_notify: ::c_long = 4000 + 275; -pub const SYS_mq_getsetattr: ::c_long = 4000 + 276; -pub const SYS_vserver: ::c_long = 4000 + 277; -pub const SYS_waitid: ::c_long = 4000 + 278; -/* pub const SYS_sys_setaltroot: ::c_long = 4000 + 279; */ -pub const SYS_add_key: ::c_long = 4000 + 280; -pub const SYS_request_key: ::c_long = 4000 + 281; -pub const SYS_keyctl: ::c_long = 4000 + 282; -pub const SYS_set_thread_area: ::c_long = 4000 + 283; -pub const SYS_inotify_init: ::c_long = 4000 + 284; -pub const SYS_inotify_add_watch: ::c_long = 4000 + 285; -pub const SYS_inotify_rm_watch: ::c_long = 4000 + 286; -pub const SYS_migrate_pages: ::c_long = 4000 + 287; -pub const SYS_openat: ::c_long = 4000 + 288; -pub const SYS_mkdirat: ::c_long = 4000 + 289; -pub const SYS_mknodat: ::c_long = 4000 + 290; -pub const SYS_fchownat: ::c_long = 4000 + 291; -pub const SYS_futimesat: ::c_long = 4000 + 292; -pub const SYS_unlinkat: ::c_long = 4000 + 294; -pub const SYS_renameat: ::c_long = 4000 + 295; -pub const SYS_linkat: ::c_long = 4000 + 296; -pub const SYS_symlinkat: ::c_long = 4000 + 297; -pub const SYS_readlinkat: ::c_long = 4000 + 298; -pub const SYS_fchmodat: ::c_long = 4000 + 299; -pub const SYS_faccessat: ::c_long = 4000 + 300; -pub const SYS_pselect6: ::c_long = 4000 + 301; -pub const SYS_ppoll: ::c_long = 4000 + 302; -pub const SYS_unshare: ::c_long = 4000 + 303; -pub const SYS_splice: ::c_long = 4000 + 304; -pub const SYS_sync_file_range: ::c_long = 4000 + 305; -pub const SYS_tee: ::c_long = 4000 + 306; -pub const SYS_vmsplice: ::c_long = 4000 + 307; -pub const SYS_move_pages: ::c_long = 4000 + 308; -pub const SYS_set_robust_list: ::c_long = 4000 + 309; -pub const SYS_get_robust_list: ::c_long = 4000 + 310; -pub const SYS_kexec_load: ::c_long = 4000 + 311; -pub const SYS_getcpu: ::c_long = 4000 + 312; -pub const SYS_epoll_pwait: ::c_long = 4000 + 313; -pub const SYS_ioprio_set: ::c_long = 4000 + 314; -pub const SYS_ioprio_get: ::c_long = 4000 + 315; -pub const SYS_utimensat: ::c_long = 4000 + 316; -pub const SYS_signalfd: ::c_long = 4000 + 317; -pub const SYS_timerfd: ::c_long = 4000 + 318; -pub const SYS_eventfd: ::c_long = 4000 + 319; -pub const SYS_fallocate: ::c_long = 4000 + 320; -pub const SYS_timerfd_create: ::c_long = 4000 + 321; -pub const SYS_timerfd_gettime: ::c_long = 4000 + 322; -pub const SYS_timerfd_settime: ::c_long = 4000 + 323; -pub const SYS_signalfd4: ::c_long = 4000 + 324; -pub const SYS_eventfd2: ::c_long = 4000 + 325; -pub const SYS_epoll_create1: ::c_long = 4000 + 326; -pub const SYS_dup3: ::c_long = 4000 + 327; -pub const SYS_pipe2: ::c_long = 4000 + 328; -pub const SYS_inotify_init1: ::c_long = 4000 + 329; -pub const SYS_preadv: ::c_long = 4000 + 330; -pub const SYS_pwritev: ::c_long = 4000 + 331; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 4000 + 332; -pub const SYS_perf_event_open: ::c_long = 4000 + 333; -pub const SYS_accept4: ::c_long = 4000 + 334; -pub const SYS_recvmmsg: ::c_long = 4000 + 335; -pub const SYS_fanotify_init: ::c_long = 4000 + 336; -pub const SYS_fanotify_mark: ::c_long = 4000 + 337; -pub const SYS_prlimit64: ::c_long = 4000 + 338; -pub const SYS_name_to_handle_at: ::c_long = 4000 + 339; -pub const SYS_open_by_handle_at: ::c_long = 4000 + 340; -pub const SYS_clock_adjtime: ::c_long = 4000 + 341; -pub const SYS_syncfs: ::c_long = 4000 + 342; -pub const SYS_sendmmsg: ::c_long = 4000 + 343; -pub const SYS_setns: ::c_long = 4000 + 344; -pub const SYS_process_vm_readv: ::c_long = 4000 + 345; -pub const SYS_process_vm_writev: ::c_long = 4000 + 346; -pub const SYS_kcmp: ::c_long = 4000 + 347; -pub const SYS_finit_module: ::c_long = 4000 + 348; -pub const SYS_sched_setattr: ::c_long = 4000 + 349; -pub const SYS_sched_getattr: ::c_long = 4000 + 350; -pub const SYS_renameat2: ::c_long = 4000 + 351; -pub const SYS_seccomp: ::c_long = 4000 + 352; -pub const SYS_getrandom: ::c_long = 4000 + 353; -pub const SYS_memfd_create: ::c_long = 4000 + 354; -pub const SYS_bpf: ::c_long = 4000 + 355; -pub const SYS_execveat: ::c_long = 4000 + 356; -pub const SYS_userfaultfd: ::c_long = 4000 + 357; -pub const SYS_membarrier: ::c_long = 4000 + 358; -pub const SYS_mlock2: ::c_long = 4000 + 359; -pub const SYS_copy_file_range: ::c_long = 4000 + 360; -pub const SYS_preadv2: ::c_long = 4000 + 361; -pub const SYS_pwritev2: ::c_long = 4000 + 362; -pub const SYS_pkey_mprotect: ::c_long = 4000 + 363; -pub const SYS_pkey_alloc: ::c_long = 4000 + 364; -pub const SYS_pkey_free: ::c_long = 4000 + 365; -pub const SYS_statx: ::c_long = 4000 + 366; -pub const SYS_pidfd_send_signal: ::c_long = 4000 + 424; -pub const SYS_io_uring_setup: ::c_long = 4000 + 425; -pub const SYS_io_uring_enter: ::c_long = 4000 + 426; -pub const SYS_io_uring_register: ::c_long = 4000 + 427; -pub const SYS_open_tree: ::c_long = 4000 + 428; -pub const SYS_move_mount: ::c_long = 4000 + 429; -pub const SYS_fsopen: ::c_long = 4000 + 430; -pub const SYS_fsconfig: ::c_long = 4000 + 431; -pub const SYS_fsmount: ::c_long = 4000 + 432; -pub const SYS_fspick: ::c_long = 4000 + 433; -pub const SYS_pidfd_open: ::c_long = 4000 + 434; -pub const SYS_clone3: ::c_long = 4000 + 435; -pub const SYS_close_range: ::c_long = 4000 + 436; -pub const SYS_openat2: ::c_long = 4000 + 437; -pub const SYS_pidfd_getfd: ::c_long = 4000 + 438; -pub const SYS_faccessat2: ::c_long = 4000 + 439; -pub const SYS_process_madvise: ::c_long = 4000 + 440; -pub const SYS_epoll_pwait2: ::c_long = 4000 + 441; -pub const SYS_mount_setattr: ::c_long = 4000 + 442; -pub const SYS_quotactl_fd: ::c_long = 4000 + 443; -pub const SYS_landlock_create_ruleset: ::c_long = 4000 + 444; -pub const SYS_landlock_add_rule: ::c_long = 4000 + 445; -pub const SYS_landlock_restrict_self: ::c_long = 4000 + 446; -pub const SYS_memfd_secret: ::c_long = 4000 + 447; -pub const SYS_process_mrelease: ::c_long = 4000 + 448; -pub const SYS_futex_waitv: ::c_long = 4000 + 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 4000 + 450; +pub const SYS_syscall: c_long = 4000 + 0; +pub const SYS_exit: c_long = 4000 + 1; +pub const SYS_fork: c_long = 4000 + 2; +pub const SYS_read: c_long = 4000 + 3; +pub const SYS_write: c_long = 4000 + 4; +pub const SYS_open: c_long = 4000 + 5; +pub const SYS_close: c_long = 4000 + 6; +pub const SYS_waitpid: c_long = 4000 + 7; +pub const SYS_creat: c_long = 4000 + 8; +pub const SYS_link: c_long = 4000 + 9; +pub const SYS_unlink: c_long = 4000 + 10; +pub const SYS_execve: c_long = 4000 + 11; +pub const SYS_chdir: c_long = 4000 + 12; +pub const SYS_time: c_long = 4000 + 13; +pub const SYS_mknod: c_long = 4000 + 14; +pub const SYS_chmod: c_long = 4000 + 15; +pub const SYS_lchown: c_long = 4000 + 16; +pub const SYS_break: c_long = 4000 + 17; +pub const SYS_lseek: c_long = 4000 + 19; +pub const SYS_getpid: c_long = 4000 + 20; +pub const SYS_mount: c_long = 4000 + 21; +pub const SYS_umount: c_long = 4000 + 22; +pub const SYS_setuid: c_long = 4000 + 23; +pub const SYS_getuid: c_long = 4000 + 24; +pub const SYS_stime: c_long = 4000 + 25; +pub const SYS_ptrace: c_long = 4000 + 26; +pub const SYS_alarm: c_long = 4000 + 27; +pub const SYS_pause: c_long = 4000 + 29; +pub const SYS_utime: c_long = 4000 + 30; +pub const SYS_stty: c_long = 4000 + 31; +pub const SYS_gtty: c_long = 4000 + 32; +pub const SYS_access: c_long = 4000 + 33; +pub const SYS_nice: c_long = 4000 + 34; +pub const SYS_ftime: c_long = 4000 + 35; +pub const SYS_sync: c_long = 4000 + 36; +pub const SYS_kill: c_long = 4000 + 37; +pub const SYS_rename: c_long = 4000 + 38; +pub const SYS_mkdir: c_long = 4000 + 39; +pub const SYS_rmdir: c_long = 4000 + 40; +pub const SYS_dup: c_long = 4000 + 41; +pub const SYS_pipe: c_long = 4000 + 42; +pub const SYS_times: c_long = 4000 + 43; +pub const SYS_prof: c_long = 4000 + 44; +pub const SYS_brk: c_long = 4000 + 45; +pub const SYS_setgid: c_long = 4000 + 46; +pub const SYS_getgid: c_long = 4000 + 47; +pub const SYS_signal: c_long = 4000 + 48; +pub const SYS_geteuid: c_long = 4000 + 49; +pub const SYS_getegid: c_long = 4000 + 50; +pub const SYS_acct: c_long = 4000 + 51; +pub const SYS_umount2: c_long = 4000 + 52; +pub const SYS_lock: c_long = 4000 + 53; +pub const SYS_ioctl: c_long = 4000 + 54; +pub const SYS_fcntl: c_long = 4000 + 55; +pub const SYS_mpx: c_long = 4000 + 56; +pub const SYS_setpgid: c_long = 4000 + 57; +pub const SYS_ulimit: c_long = 4000 + 58; +pub const SYS_umask: c_long = 4000 + 60; +pub const SYS_chroot: c_long = 4000 + 61; +pub const SYS_ustat: c_long = 4000 + 62; +pub const SYS_dup2: c_long = 4000 + 63; +pub const SYS_getppid: c_long = 4000 + 64; +pub const SYS_getpgrp: c_long = 4000 + 65; +pub const SYS_setsid: c_long = 4000 + 66; +pub const SYS_sigaction: c_long = 4000 + 67; +pub const SYS_sgetmask: c_long = 4000 + 68; +pub const SYS_ssetmask: c_long = 4000 + 69; +pub const SYS_setreuid: c_long = 4000 + 70; +pub const SYS_setregid: c_long = 4000 + 71; +pub const SYS_sigsuspend: c_long = 4000 + 72; +pub const SYS_sigpending: c_long = 4000 + 73; +pub const SYS_sethostname: c_long = 4000 + 74; +pub const SYS_setrlimit: c_long = 4000 + 75; +pub const SYS_getrlimit: c_long = 4000 + 76; +pub const SYS_getrusage: c_long = 4000 + 77; +pub const SYS_gettimeofday: c_long = 4000 + 78; +pub const SYS_settimeofday: c_long = 4000 + 79; +pub const SYS_getgroups: c_long = 4000 + 80; +pub const SYS_setgroups: c_long = 4000 + 81; +pub const SYS_symlink: c_long = 4000 + 83; +pub const SYS_readlink: c_long = 4000 + 85; +pub const SYS_uselib: c_long = 4000 + 86; +pub const SYS_swapon: c_long = 4000 + 87; +pub const SYS_reboot: c_long = 4000 + 88; +pub const SYS_readdir: c_long = 4000 + 89; +pub const SYS_mmap: c_long = 4000 + 90; +pub const SYS_munmap: c_long = 4000 + 91; +pub const SYS_truncate: c_long = 4000 + 92; +pub const SYS_ftruncate: c_long = 4000 + 93; +pub const SYS_fchmod: c_long = 4000 + 94; +pub const SYS_fchown: c_long = 4000 + 95; +pub const SYS_getpriority: c_long = 4000 + 96; +pub const SYS_setpriority: c_long = 4000 + 97; +pub const SYS_profil: c_long = 4000 + 98; +pub const SYS_statfs: c_long = 4000 + 99; +pub const SYS_fstatfs: c_long = 4000 + 100; +pub const SYS_ioperm: c_long = 4000 + 101; +pub const SYS_socketcall: c_long = 4000 + 102; +pub const SYS_syslog: c_long = 4000 + 103; +pub const SYS_setitimer: c_long = 4000 + 104; +pub const SYS_getitimer: c_long = 4000 + 105; +pub const SYS_stat: c_long = 4000 + 106; +pub const SYS_lstat: c_long = 4000 + 107; +pub const SYS_fstat: c_long = 4000 + 108; +pub const SYS_iopl: c_long = 4000 + 110; +pub const SYS_vhangup: c_long = 4000 + 111; +pub const SYS_idle: c_long = 4000 + 112; +pub const SYS_vm86: c_long = 4000 + 113; +pub const SYS_wait4: c_long = 4000 + 114; +pub const SYS_swapoff: c_long = 4000 + 115; +pub const SYS_sysinfo: c_long = 4000 + 116; +pub const SYS_ipc: c_long = 4000 + 117; +pub const SYS_fsync: c_long = 4000 + 118; +pub const SYS_sigreturn: c_long = 4000 + 119; +pub const SYS_clone: c_long = 4000 + 120; +pub const SYS_setdomainname: c_long = 4000 + 121; +pub const SYS_uname: c_long = 4000 + 122; +pub const SYS_modify_ldt: c_long = 4000 + 123; +pub const SYS_adjtimex: c_long = 4000 + 124; +pub const SYS_mprotect: c_long = 4000 + 125; +pub const SYS_sigprocmask: c_long = 4000 + 126; +pub const SYS_create_module: c_long = 4000 + 127; +pub const SYS_init_module: c_long = 4000 + 128; +pub const SYS_delete_module: c_long = 4000 + 129; +pub const SYS_get_kernel_syms: c_long = 4000 + 130; +pub const SYS_quotactl: c_long = 4000 + 131; +pub const SYS_getpgid: c_long = 4000 + 132; +pub const SYS_fchdir: c_long = 4000 + 133; +pub const SYS_bdflush: c_long = 4000 + 134; +pub const SYS_sysfs: c_long = 4000 + 135; +pub const SYS_personality: c_long = 4000 + 136; +pub const SYS_afs_syscall: c_long = 4000 + 137; +pub const SYS_setfsuid: c_long = 4000 + 138; +pub const SYS_setfsgid: c_long = 4000 + 139; +pub const SYS__llseek: c_long = 4000 + 140; +pub const SYS_getdents: c_long = 4000 + 141; +pub const SYS_flock: c_long = 4000 + 143; +pub const SYS_msync: c_long = 4000 + 144; +pub const SYS_readv: c_long = 4000 + 145; +pub const SYS_writev: c_long = 4000 + 146; +pub const SYS_cacheflush: c_long = 4000 + 147; +pub const SYS_cachectl: c_long = 4000 + 148; +pub const SYS_sysmips: c_long = 4000 + 149; +pub const SYS_getsid: c_long = 4000 + 151; +pub const SYS_fdatasync: c_long = 4000 + 152; +pub const SYS__sysctl: c_long = 4000 + 153; +pub const SYS_mlock: c_long = 4000 + 154; +pub const SYS_munlock: c_long = 4000 + 155; +pub const SYS_mlockall: c_long = 4000 + 156; +pub const SYS_munlockall: c_long = 4000 + 157; +pub const SYS_sched_setparam: c_long = 4000 + 158; +pub const SYS_sched_getparam: c_long = 4000 + 159; +pub const SYS_sched_setscheduler: c_long = 4000 + 160; +pub const SYS_sched_getscheduler: c_long = 4000 + 161; +pub const SYS_sched_yield: c_long = 4000 + 162; +pub const SYS_sched_get_priority_max: c_long = 4000 + 163; +pub const SYS_sched_get_priority_min: c_long = 4000 + 164; +pub const SYS_sched_rr_get_interval: c_long = 4000 + 165; +pub const SYS_nanosleep: c_long = 4000 + 166; +pub const SYS_mremap: c_long = 4000 + 167; +pub const SYS_accept: c_long = 4000 + 168; +pub const SYS_bind: c_long = 4000 + 169; +pub const SYS_connect: c_long = 4000 + 170; +pub const SYS_getpeername: c_long = 4000 + 171; +pub const SYS_getsockname: c_long = 4000 + 172; +pub const SYS_getsockopt: c_long = 4000 + 173; +pub const SYS_listen: c_long = 4000 + 174; +pub const SYS_recv: c_long = 4000 + 175; +pub const SYS_recvfrom: c_long = 4000 + 176; +pub const SYS_recvmsg: c_long = 4000 + 177; +pub const SYS_send: c_long = 4000 + 178; +pub const SYS_sendmsg: c_long = 4000 + 179; +pub const SYS_sendto: c_long = 4000 + 180; +pub const SYS_setsockopt: c_long = 4000 + 181; +pub const SYS_shutdown: c_long = 4000 + 182; +pub const SYS_socket: c_long = 4000 + 183; +pub const SYS_socketpair: c_long = 4000 + 184; +pub const SYS_setresuid: c_long = 4000 + 185; +pub const SYS_getresuid: c_long = 4000 + 186; +pub const SYS_query_module: c_long = 4000 + 187; +pub const SYS_poll: c_long = 4000 + 188; +pub const SYS_nfsservctl: c_long = 4000 + 189; +pub const SYS_setresgid: c_long = 4000 + 190; +pub const SYS_getresgid: c_long = 4000 + 191; +pub const SYS_prctl: c_long = 4000 + 192; +pub const SYS_rt_sigreturn: c_long = 4000 + 193; +pub const SYS_rt_sigaction: c_long = 4000 + 194; +pub const SYS_rt_sigprocmask: c_long = 4000 + 195; +pub const SYS_rt_sigpending: c_long = 4000 + 196; +pub const SYS_rt_sigtimedwait: c_long = 4000 + 197; +pub const SYS_rt_sigqueueinfo: c_long = 4000 + 198; +pub const SYS_rt_sigsuspend: c_long = 4000 + 199; +pub const SYS_chown: c_long = 4000 + 202; +pub const SYS_getcwd: c_long = 4000 + 203; +pub const SYS_capget: c_long = 4000 + 204; +pub const SYS_capset: c_long = 4000 + 205; +pub const SYS_sigaltstack: c_long = 4000 + 206; +pub const SYS_sendfile: c_long = 4000 + 207; +pub const SYS_getpmsg: c_long = 4000 + 208; +pub const SYS_putpmsg: c_long = 4000 + 209; +pub const SYS_mmap2: c_long = 4000 + 210; +pub const SYS_truncate64: c_long = 4000 + 211; +pub const SYS_ftruncate64: c_long = 4000 + 212; +pub const SYS_stat64: c_long = 4000 + 213; +pub const SYS_lstat64: c_long = 4000 + 214; +pub const SYS_fstat64: c_long = 4000 + 215; +pub const SYS_pivot_root: c_long = 4000 + 216; +pub const SYS_mincore: c_long = 4000 + 217; +pub const SYS_madvise: c_long = 4000 + 218; +pub const SYS_getdents64: c_long = 4000 + 219; +pub const SYS_fcntl64: c_long = 4000 + 220; +pub const SYS_gettid: c_long = 4000 + 222; +pub const SYS_readahead: c_long = 4000 + 223; +pub const SYS_setxattr: c_long = 4000 + 224; +pub const SYS_lsetxattr: c_long = 4000 + 225; +pub const SYS_fsetxattr: c_long = 4000 + 226; +pub const SYS_getxattr: c_long = 4000 + 227; +pub const SYS_lgetxattr: c_long = 4000 + 228; +pub const SYS_fgetxattr: c_long = 4000 + 229; +pub const SYS_listxattr: c_long = 4000 + 230; +pub const SYS_llistxattr: c_long = 4000 + 231; +pub const SYS_flistxattr: c_long = 4000 + 232; +pub const SYS_removexattr: c_long = 4000 + 233; +pub const SYS_lremovexattr: c_long = 4000 + 234; +pub const SYS_fremovexattr: c_long = 4000 + 235; +pub const SYS_tkill: c_long = 4000 + 236; +pub const SYS_sendfile64: c_long = 4000 + 237; +pub const SYS_futex: c_long = 4000 + 238; +pub const SYS_sched_setaffinity: c_long = 4000 + 239; +pub const SYS_sched_getaffinity: c_long = 4000 + 240; +pub const SYS_io_setup: c_long = 4000 + 241; +pub const SYS_io_destroy: c_long = 4000 + 242; +pub const SYS_io_getevents: c_long = 4000 + 243; +pub const SYS_io_submit: c_long = 4000 + 244; +pub const SYS_io_cancel: c_long = 4000 + 245; +pub const SYS_exit_group: c_long = 4000 + 246; +pub const SYS_lookup_dcookie: c_long = 4000 + 247; +pub const SYS_epoll_create: c_long = 4000 + 248; +pub const SYS_epoll_ctl: c_long = 4000 + 249; +pub const SYS_epoll_wait: c_long = 4000 + 250; +pub const SYS_remap_file_pages: c_long = 4000 + 251; +pub const SYS_set_tid_address: c_long = 4000 + 252; +pub const SYS_restart_syscall: c_long = 4000 + 253; +pub const SYS_statfs64: c_long = 4000 + 255; +pub const SYS_fstatfs64: c_long = 4000 + 256; +pub const SYS_timer_create: c_long = 4000 + 257; +pub const SYS_timer_settime: c_long = 4000 + 258; +pub const SYS_timer_gettime: c_long = 4000 + 259; +pub const SYS_timer_getoverrun: c_long = 4000 + 260; +pub const SYS_timer_delete: c_long = 4000 + 261; +pub const SYS_clock_settime: c_long = 4000 + 262; +pub const SYS_clock_gettime: c_long = 4000 + 263; +pub const SYS_clock_getres: c_long = 4000 + 264; +pub const SYS_clock_nanosleep: c_long = 4000 + 265; +pub const SYS_tgkill: c_long = 4000 + 266; +pub const SYS_utimes: c_long = 4000 + 267; +pub const SYS_mbind: c_long = 4000 + 268; +pub const SYS_get_mempolicy: c_long = 4000 + 269; +pub const SYS_set_mempolicy: c_long = 4000 + 270; +pub const SYS_mq_open: c_long = 4000 + 271; +pub const SYS_mq_unlink: c_long = 4000 + 272; +pub const SYS_mq_timedsend: c_long = 4000 + 273; +pub const SYS_mq_timedreceive: c_long = 4000 + 274; +pub const SYS_mq_notify: c_long = 4000 + 275; +pub const SYS_mq_getsetattr: c_long = 4000 + 276; +pub const SYS_vserver: c_long = 4000 + 277; +pub const SYS_waitid: c_long = 4000 + 278; +/* pub const SYS_sys_setaltroot: c_long = 4000 + 279; */ +pub const SYS_add_key: c_long = 4000 + 280; +pub const SYS_request_key: c_long = 4000 + 281; +pub const SYS_keyctl: c_long = 4000 + 282; +pub const SYS_set_thread_area: c_long = 4000 + 283; +pub const SYS_inotify_init: c_long = 4000 + 284; +pub const SYS_inotify_add_watch: c_long = 4000 + 285; +pub const SYS_inotify_rm_watch: c_long = 4000 + 286; +pub const SYS_migrate_pages: c_long = 4000 + 287; +pub const SYS_openat: c_long = 4000 + 288; +pub const SYS_mkdirat: c_long = 4000 + 289; +pub const SYS_mknodat: c_long = 4000 + 290; +pub const SYS_fchownat: c_long = 4000 + 291; +pub const SYS_futimesat: c_long = 4000 + 292; +pub const SYS_unlinkat: c_long = 4000 + 294; +pub const SYS_renameat: c_long = 4000 + 295; +pub const SYS_linkat: c_long = 4000 + 296; +pub const SYS_symlinkat: c_long = 4000 + 297; +pub const SYS_readlinkat: c_long = 4000 + 298; +pub const SYS_fchmodat: c_long = 4000 + 299; +pub const SYS_faccessat: c_long = 4000 + 300; +pub const SYS_pselect6: c_long = 4000 + 301; +pub const SYS_ppoll: c_long = 4000 + 302; +pub const SYS_unshare: c_long = 4000 + 303; +pub const SYS_splice: c_long = 4000 + 304; +pub const SYS_sync_file_range: c_long = 4000 + 305; +pub const SYS_tee: c_long = 4000 + 306; +pub const SYS_vmsplice: c_long = 4000 + 307; +pub const SYS_move_pages: c_long = 4000 + 308; +pub const SYS_set_robust_list: c_long = 4000 + 309; +pub const SYS_get_robust_list: c_long = 4000 + 310; +pub const SYS_kexec_load: c_long = 4000 + 311; +pub const SYS_getcpu: c_long = 4000 + 312; +pub const SYS_epoll_pwait: c_long = 4000 + 313; +pub const SYS_ioprio_set: c_long = 4000 + 314; +pub const SYS_ioprio_get: c_long = 4000 + 315; +pub const SYS_utimensat: c_long = 4000 + 316; +pub const SYS_signalfd: c_long = 4000 + 317; +pub const SYS_timerfd: c_long = 4000 + 318; +pub const SYS_eventfd: c_long = 4000 + 319; +pub const SYS_fallocate: c_long = 4000 + 320; +pub const SYS_timerfd_create: c_long = 4000 + 321; +pub const SYS_timerfd_gettime: c_long = 4000 + 322; +pub const SYS_timerfd_settime: c_long = 4000 + 323; +pub const SYS_signalfd4: c_long = 4000 + 324; +pub const SYS_eventfd2: c_long = 4000 + 325; +pub const SYS_epoll_create1: c_long = 4000 + 326; +pub const SYS_dup3: c_long = 4000 + 327; +pub const SYS_pipe2: c_long = 4000 + 328; +pub const SYS_inotify_init1: c_long = 4000 + 329; +pub const SYS_preadv: c_long = 4000 + 330; +pub const SYS_pwritev: c_long = 4000 + 331; +pub const SYS_rt_tgsigqueueinfo: c_long = 4000 + 332; +pub const SYS_perf_event_open: c_long = 4000 + 333; +pub const SYS_accept4: c_long = 4000 + 334; +pub const SYS_recvmmsg: c_long = 4000 + 335; +pub const SYS_fanotify_init: c_long = 4000 + 336; +pub const SYS_fanotify_mark: c_long = 4000 + 337; +pub const SYS_prlimit64: c_long = 4000 + 338; +pub const SYS_name_to_handle_at: c_long = 4000 + 339; +pub const SYS_open_by_handle_at: c_long = 4000 + 340; +pub const SYS_clock_adjtime: c_long = 4000 + 341; +pub const SYS_syncfs: c_long = 4000 + 342; +pub const SYS_sendmmsg: c_long = 4000 + 343; +pub const SYS_setns: c_long = 4000 + 344; +pub const SYS_process_vm_readv: c_long = 4000 + 345; +pub const SYS_process_vm_writev: c_long = 4000 + 346; +pub const SYS_kcmp: c_long = 4000 + 347; +pub const SYS_finit_module: c_long = 4000 + 348; +pub const SYS_sched_setattr: c_long = 4000 + 349; +pub const SYS_sched_getattr: c_long = 4000 + 350; +pub const SYS_renameat2: c_long = 4000 + 351; +pub const SYS_seccomp: c_long = 4000 + 352; +pub const SYS_getrandom: c_long = 4000 + 353; +pub const SYS_memfd_create: c_long = 4000 + 354; +pub const SYS_bpf: c_long = 4000 + 355; +pub const SYS_execveat: c_long = 4000 + 356; +pub const SYS_userfaultfd: c_long = 4000 + 357; +pub const SYS_membarrier: c_long = 4000 + 358; +pub const SYS_mlock2: c_long = 4000 + 359; +pub const SYS_copy_file_range: c_long = 4000 + 360; +pub const SYS_preadv2: c_long = 4000 + 361; +pub const SYS_pwritev2: c_long = 4000 + 362; +pub const SYS_pkey_mprotect: c_long = 4000 + 363; +pub const SYS_pkey_alloc: c_long = 4000 + 364; +pub const SYS_pkey_free: c_long = 4000 + 365; +pub const SYS_statx: c_long = 4000 + 366; +pub const SYS_pidfd_send_signal: c_long = 4000 + 424; +pub const SYS_io_uring_setup: c_long = 4000 + 425; +pub const SYS_io_uring_enter: c_long = 4000 + 426; +pub const SYS_io_uring_register: c_long = 4000 + 427; +pub const SYS_open_tree: c_long = 4000 + 428; +pub const SYS_move_mount: c_long = 4000 + 429; +pub const SYS_fsopen: c_long = 4000 + 430; +pub const SYS_fsconfig: c_long = 4000 + 431; +pub const SYS_fsmount: c_long = 4000 + 432; +pub const SYS_fspick: c_long = 4000 + 433; +pub const SYS_pidfd_open: c_long = 4000 + 434; +pub const SYS_clone3: c_long = 4000 + 435; +pub const SYS_close_range: c_long = 4000 + 436; +pub const SYS_openat2: c_long = 4000 + 437; +pub const SYS_pidfd_getfd: c_long = 4000 + 438; +pub const SYS_faccessat2: c_long = 4000 + 439; +pub const SYS_process_madvise: c_long = 4000 + 440; +pub const SYS_epoll_pwait2: c_long = 4000 + 441; +pub const SYS_mount_setattr: c_long = 4000 + 442; +pub const SYS_quotactl_fd: c_long = 4000 + 443; +pub const SYS_landlock_create_ruleset: c_long = 4000 + 444; +pub const SYS_landlock_add_rule: c_long = 4000 + 445; +pub const SYS_landlock_restrict_self: c_long = 4000 + 446; +pub const SYS_memfd_secret: c_long = 4000 + 447; +pub const SYS_process_mrelease: c_long = 4000 + 448; +pub const SYS_futex_waitv: c_long = 4000 + 449; +pub const SYS_set_mempolicy_home_node: c_long = 4000 + 450; diff --git a/src/unix/linux_like/linux/musl/b32/mod.rs b/src/unix/linux_like/linux/musl/b32/mod.rs index b346d48aaa8b4..37f9c3ab2c24a 100644 --- a/src/unix/linux_like/linux/musl/b32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mod.rs @@ -1,10 +1,12 @@ +use crate::{c_int, c_longlong, c_ulonglong, c_void}; + pub type c_long = i32; pub type c_ulong = u32; pub type nlink_t = u32; -pub type blksize_t = ::c_long; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; -pub type regoff_t = ::c_int; +pub type blksize_t = c_long; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; +pub type regoff_t = c_int; s! { pub struct pthread_attr_t { @@ -12,27 +14,27 @@ s! { } pub struct sigset_t { - __val: [::c_ulong; 32], + __val: [c_ulong; 32], } pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - pub msg_flags: ::c_int, + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: c_int, + pub msg_control: *mut c_void, + pub msg_controllen: crate::socklen_t, + pub msg_flags: c_int, } pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub cmsg_len: crate::socklen_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } pub struct sem_t { - __val: [::c_int; 4], + __val: [c_int; 4], } } diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 1f8ee80113e16..2fff41545ee56 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -1,126 +1,128 @@ +use crate::{c_int, c_long, c_longlong, c_short, c_uint, c_ulong, c_void, off_t, size_t, ssize_t}; + pub type c_char = u8; pub type wchar_t = i32; s! { 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_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_rdev_padding: ::c_short, - 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; 2], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __st_rdev_padding: c_short, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_long; 2], } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_rdev_padding: ::c_short, - 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; 2], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __st_rdev_padding: c_short, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_long; 2], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } 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_int, - __pad1: ::c_int, - __pad2: ::c_longlong, - __pad3: ::c_longlong, + pub __ipc_perm_key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub __seq: c_int, + __pad1: c_int, + __pad2: c_longlong, + __pad3: c_longlong, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - __unused1: ::c_int, - pub shm_atime: ::time_t, - __unused2: ::c_int, - pub shm_dtime: ::time_t, - __unused3: ::c_int, - pub shm_ctime: ::time_t, - __unused4: ::c_int, - pub shm_segsz: ::size_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::c_ulong, - __pad1: ::c_ulong, - __pad2: ::c_ulong, + pub shm_perm: crate::ipc_perm, + __unused1: c_int, + pub shm_atime: crate::time_t, + __unused2: c_int, + pub shm_dtime: crate::time_t, + __unused3: c_int, + pub shm_ctime: crate::time_t, + __unused4: c_int, + pub shm_segsz: size_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: c_ulong, + __pad1: c_ulong, + __pad2: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - __unused1: ::c_int, - pub msg_stime: ::time_t, - __unused2: ::c_int, - pub msg_rtime: ::time_t, - __unused3: ::c_int, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, + pub msg_perm: crate::ipc_perm, + __unused1: c_int, + pub msg_stime: crate::time_t, + __unused2: c_int, + pub msg_rtime: crate::time_t, + __unused3: c_int, + pub msg_ctime: crate::time_t, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __pad1: c_ulong, + __pad2: c_ulong, } } -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const SIGSTKSZ: ::size_t = 10240; -pub const MINSIGSTKSZ: ::size_t = 4096; +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const SIGSTKSZ: size_t = 10240; +pub const MINSIGSTKSZ: size_t = 4096; -pub const O_DIRECT: ::c_int = 0x20000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_LARGEFILE: ::c_int = 0x10000; +pub const O_DIRECT: c_int = 0x20000; +pub const O_DIRECTORY: c_int = 0x4000; +pub const O_NOFOLLOW: c_int = 0x8000; +pub const O_ASYNC: c_int = 0x2000; +pub const O_LARGEFILE: c_int = 0x10000; -pub const MCL_CURRENT: ::c_int = 0x2000; -pub const MCL_FUTURE: ::c_int = 0x4000; -pub const MCL_ONFAULT: ::c_int = 0x8000; -pub const CBAUD: ::tcflag_t = 0o0000377; -pub const TAB1: ::c_int = 0x00000400; -pub const TAB2: ::c_int = 0x00000800; -pub const TAB3: ::c_int = 0x00000C00; -pub const CR1: ::c_int = 0x00001000; -pub const CR2: ::c_int = 0x00002000; -pub const CR3: ::c_int = 0x00003000; -pub const FF1: ::c_int = 0x00004000; -pub const BS1: ::c_int = 0x00008000; -pub const VT1: ::c_int = 0x00010000; +pub const MCL_CURRENT: c_int = 0x2000; +pub const MCL_FUTURE: c_int = 0x4000; +pub const MCL_ONFAULT: c_int = 0x8000; +pub const CBAUD: crate::tcflag_t = 0o0000377; +pub const TAB1: c_int = 0x00000400; +pub const TAB2: c_int = 0x00000800; +pub const TAB3: c_int = 0x00000C00; +pub const CR1: c_int = 0x00001000; +pub const CR2: c_int = 0x00002000; +pub const CR3: c_int = 0x00003000; +pub const FF1: c_int = 0x00004000; +pub const BS1: c_int = 0x00008000; +pub const VT1: c_int = 0x00010000; pub const VWERASE: usize = 10; pub const VREPRINT: usize = 11; pub const VSUSP: usize = 12; @@ -128,619 +130,619 @@ pub const VSTART: usize = 13; pub const VSTOP: usize = 14; pub const VDISCARD: usize = 16; pub const VTIME: usize = 7; -pub const IXON: ::tcflag_t = 0x00000200; -pub const IXOFF: ::tcflag_t = 0x00000400; -pub const ONLCR: ::tcflag_t = 0x00000002; -pub const CSIZE: ::tcflag_t = 0x00000300; -pub const CS6: ::tcflag_t = 0x00000100; -pub const CS7: ::tcflag_t = 0x00000200; -pub const CS8: ::tcflag_t = 0x00000300; -pub const CSTOPB: ::tcflag_t = 0x00000400; -pub const CREAD: ::tcflag_t = 0x00000800; -pub const PARENB: ::tcflag_t = 0x00001000; -pub const PARODD: ::tcflag_t = 0x00002000; -pub const HUPCL: ::tcflag_t = 0x00004000; -pub const CLOCAL: ::tcflag_t = 0x00008000; -pub const ECHOKE: ::tcflag_t = 0x00000001; -pub const ECHOE: ::tcflag_t = 0x00000002; -pub const ECHOK: ::tcflag_t = 0x00000004; -pub const ECHONL: ::tcflag_t = 0x00000010; -pub const ECHOPRT: ::tcflag_t = 0x00000020; -pub const ECHOCTL: ::tcflag_t = 0x00000040; -pub const ISIG: ::tcflag_t = 0x00000080; -pub const ICANON: ::tcflag_t = 0x00000100; -pub const PENDIN: ::tcflag_t = 0x20000000; -pub const NOFLSH: ::tcflag_t = 0x80000000; -pub const CIBAUD: ::tcflag_t = 0o00077600000; -pub const CBAUDEX: ::tcflag_t = 0o000020; +pub const IXON: crate::tcflag_t = 0x00000200; +pub const IXOFF: crate::tcflag_t = 0x00000400; +pub const ONLCR: crate::tcflag_t = 0x00000002; +pub const CSIZE: crate::tcflag_t = 0x00000300; +pub const CS6: crate::tcflag_t = 0x00000100; +pub const CS7: crate::tcflag_t = 0x00000200; +pub const CS8: crate::tcflag_t = 0x00000300; +pub const CSTOPB: crate::tcflag_t = 0x00000400; +pub const CREAD: crate::tcflag_t = 0x00000800; +pub const PARENB: crate::tcflag_t = 0x00001000; +pub const PARODD: crate::tcflag_t = 0x00002000; +pub const HUPCL: crate::tcflag_t = 0x00004000; +pub const CLOCAL: crate::tcflag_t = 0x00008000; +pub const ECHOKE: crate::tcflag_t = 0x00000001; +pub const ECHOE: crate::tcflag_t = 0x00000002; +pub const ECHOK: crate::tcflag_t = 0x00000004; +pub const ECHONL: crate::tcflag_t = 0x00000010; +pub const ECHOPRT: crate::tcflag_t = 0x00000020; +pub const ECHOCTL: crate::tcflag_t = 0x00000040; +pub const ISIG: crate::tcflag_t = 0x00000080; +pub const ICANON: crate::tcflag_t = 0x00000100; +pub const PENDIN: crate::tcflag_t = 0x20000000; +pub const NOFLSH: crate::tcflag_t = 0x80000000; +pub const CIBAUD: crate::tcflag_t = 0o00077600000; +pub const CBAUDEX: crate::tcflag_t = 0o000020; pub const VSWTC: usize = 9; -pub const OLCUC: ::tcflag_t = 0o000004; -pub const NLDLY: ::tcflag_t = 0o001400; -pub const CRDLY: ::tcflag_t = 0o030000; -pub const TABDLY: ::tcflag_t = 0o006000; -pub const BSDLY: ::tcflag_t = 0o100000; -pub const FFDLY: ::tcflag_t = 0o040000; -pub const VTDLY: ::tcflag_t = 0o200000; -pub const XTABS: ::tcflag_t = 0o006000; -pub const B57600: ::speed_t = 0o000020; -pub const B115200: ::speed_t = 0o000021; -pub const B230400: ::speed_t = 0o000022; -pub const B460800: ::speed_t = 0o000023; -pub const B500000: ::speed_t = 0o000024; -pub const B576000: ::speed_t = 0o000025; -pub const B921600: ::speed_t = 0o000026; -pub const B1000000: ::speed_t = 0o000027; -pub const B1152000: ::speed_t = 0o000030; -pub const B1500000: ::speed_t = 0o000031; -pub const B2000000: ::speed_t = 0o000032; -pub const B2500000: ::speed_t = 0o000033; -pub const B3000000: ::speed_t = 0o000034; -pub const B3500000: ::speed_t = 0o000035; -pub const B4000000: ::speed_t = 0o000036; +pub const OLCUC: crate::tcflag_t = 0o000004; +pub const NLDLY: crate::tcflag_t = 0o001400; +pub const CRDLY: crate::tcflag_t = 0o030000; +pub const TABDLY: crate::tcflag_t = 0o006000; +pub const BSDLY: crate::tcflag_t = 0o100000; +pub const FFDLY: crate::tcflag_t = 0o040000; +pub const VTDLY: crate::tcflag_t = 0o200000; +pub const XTABS: crate::tcflag_t = 0o006000; +pub const B57600: crate::speed_t = 0o000020; +pub const B115200: crate::speed_t = 0o000021; +pub const B230400: crate::speed_t = 0o000022; +pub const B460800: crate::speed_t = 0o000023; +pub const B500000: crate::speed_t = 0o000024; +pub const B576000: crate::speed_t = 0o000025; +pub const B921600: crate::speed_t = 0o000026; +pub const B1000000: crate::speed_t = 0o000027; +pub const B1152000: crate::speed_t = 0o000030; +pub const B1500000: crate::speed_t = 0o000031; +pub const B2000000: crate::speed_t = 0o000032; +pub const B2500000: crate::speed_t = 0o000033; +pub const B3000000: crate::speed_t = 0o000034; +pub const B3500000: crate::speed_t = 0o000035; +pub const B4000000: crate::speed_t = 0o000036; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x00080; -pub const MAP_NORESERVE: ::c_int = 0x00040; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_LOCKED: c_int = 0x00080; +pub const MAP_NORESERVE: c_int = 0x00040; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_SYNC: c_int = 0x080000; -pub const PTRACE_SYSEMU: ::c_int = 0x1d; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 0x1e; +pub const PTRACE_SYSEMU: c_int = 0x1d; +pub const PTRACE_SYSEMU_SINGLESTEP: c_int = 0x1e; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EDEADLOCK: ::c_int = 58; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EDEADLOCK: c_int = 58; +pub const EMULTIHOP: c_int = 72; +pub const EBADMSG: c_int = 74; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const ERFKILL: c_int = 132; +pub const EHWPOISON: c_int = 133; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; -pub const EXTPROC: ::tcflag_t = 0x10000000; +pub const EXTPROC: crate::tcflag_t = 0x10000000; -pub const F_GETLK: ::c_int = 12; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 13; -pub const F_SETLKW: ::c_int = 14; -pub const F_SETOWN: ::c_int = 8; +pub const F_GETLK: c_int = 12; +pub const F_GETOWN: c_int = 9; +pub const F_SETLK: c_int = 13; +pub const F_SETLKW: c_int = 14; +pub const F_SETOWN: c_int = 8; pub const VEOF: usize = 4; pub const VEOL: usize = 6; pub const VEOL2: usize = 8; pub const VMIN: usize = 5; -pub const IEXTEN: ::tcflag_t = 0x00000400; -pub const TOSTOP: ::tcflag_t = 0x00400000; -pub const FLUSHO: ::tcflag_t = 0x00800000; +pub const IEXTEN: crate::tcflag_t = 0x00000400; +pub const TOSTOP: crate::tcflag_t = 0x00400000; +pub const FLUSHO: crate::tcflag_t = 0x00800000; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; // Syscall table -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_waitpid: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_time: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_break: ::c_long = 17; -pub const SYS_oldstat: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_stime: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_oldfstat: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_stty: ::c_long = 31; -pub const SYS_gtty: ::c_long = 32; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_ftime: ::c_long = 35; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_prof: ::c_long = 44; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_lock: ::c_long = 53; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_mpx: ::c_long = 56; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_ulimit: ::c_long = 58; -pub const SYS_oldolduname: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sgetmask: ::c_long = 68; -pub const SYS_ssetmask: ::c_long = 69; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrlimit: ::c_long = 76; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_select: ::c_long = 82; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_oldlstat: ::c_long = 84; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_profil: ::c_long = 98; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_ioperm: ::c_long = 101; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_olduname: ::c_long = 109; -pub const SYS_iopl: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_vm86: ::c_long = 113; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_modify_ldt: ::c_long = 123; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_query_module: ::c_long = 166; -pub const SYS_poll: ::c_long = 167; -pub const SYS_nfsservctl: ::c_long = 168; -pub const SYS_setresgid: ::c_long = 169; -pub const SYS_getresgid: ::c_long = 170; -pub const SYS_prctl: ::c_long = 171; -pub const SYS_rt_sigreturn: ::c_long = 172; -pub const SYS_rt_sigaction: ::c_long = 173; -pub const SYS_rt_sigprocmask: ::c_long = 174; -pub const SYS_rt_sigpending: ::c_long = 175; -pub const SYS_rt_sigtimedwait: ::c_long = 176; -pub const SYS_rt_sigqueueinfo: ::c_long = 177; -pub const SYS_rt_sigsuspend: ::c_long = 178; -pub const SYS_pread64: ::c_long = 179; -pub const SYS_pwrite64: ::c_long = 180; -pub const SYS_chown: ::c_long = 181; -pub const SYS_getcwd: ::c_long = 182; -pub const SYS_capget: ::c_long = 183; -pub const SYS_capset: ::c_long = 184; -pub const SYS_sigaltstack: ::c_long = 185; -pub const SYS_sendfile: ::c_long = 186; -pub const SYS_getpmsg: ::c_long = 187; -pub const SYS_putpmsg: ::c_long = 188; -pub const SYS_vfork: ::c_long = 189; -pub const SYS_ugetrlimit: ::c_long = 190; -pub const SYS_readahead: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_pciconfig_read: ::c_long = 198; -pub const SYS_pciconfig_write: ::c_long = 199; -pub const SYS_pciconfig_iobase: ::c_long = 200; -pub const SYS_multiplexer: ::c_long = 201; -pub const SYS_getdents64: ::c_long = 202; -pub const SYS_pivot_root: ::c_long = 203; -pub const SYS_fcntl64: ::c_long = 204; -pub const SYS_madvise: ::c_long = 205; -pub const SYS_mincore: ::c_long = 206; -pub const SYS_gettid: ::c_long = 207; -pub const SYS_tkill: ::c_long = 208; -pub const SYS_setxattr: ::c_long = 209; -pub const SYS_lsetxattr: ::c_long = 210; -pub const SYS_fsetxattr: ::c_long = 211; -pub const SYS_getxattr: ::c_long = 212; -pub const SYS_lgetxattr: ::c_long = 213; -pub const SYS_fgetxattr: ::c_long = 214; -pub const SYS_listxattr: ::c_long = 215; -pub const SYS_llistxattr: ::c_long = 216; -pub const SYS_flistxattr: ::c_long = 217; -pub const SYS_removexattr: ::c_long = 218; -pub const SYS_lremovexattr: ::c_long = 219; -pub const SYS_fremovexattr: ::c_long = 220; -pub const SYS_futex: ::c_long = 221; -pub const SYS_sched_setaffinity: ::c_long = 222; -pub const SYS_sched_getaffinity: ::c_long = 223; -pub const SYS_tuxcall: ::c_long = 225; -pub const SYS_sendfile64: ::c_long = 226; -pub const SYS_io_setup: ::c_long = 227; -pub const SYS_io_destroy: ::c_long = 228; -pub const SYS_io_getevents: ::c_long = 229; -pub const SYS_io_submit: ::c_long = 230; -pub const SYS_io_cancel: ::c_long = 231; -pub const SYS_set_tid_address: ::c_long = 232; -pub const SYS_fadvise64: ::c_long = 233; -pub const SYS_exit_group: ::c_long = 234; -pub const SYS_lookup_dcookie: ::c_long = 235; -pub const SYS_epoll_create: ::c_long = 236; -pub const SYS_epoll_ctl: ::c_long = 237; -pub const SYS_epoll_wait: ::c_long = 238; -pub const SYS_remap_file_pages: ::c_long = 239; -pub const SYS_timer_create: ::c_long = 240; -pub const SYS_timer_settime: ::c_long = 241; -pub const SYS_timer_gettime: ::c_long = 242; -pub const SYS_timer_getoverrun: ::c_long = 243; -pub const SYS_timer_delete: ::c_long = 244; -pub const SYS_clock_settime: ::c_long = 245; -pub const SYS_clock_gettime: ::c_long = 246; -pub const SYS_clock_getres: ::c_long = 247; -pub const SYS_clock_nanosleep: ::c_long = 248; -pub const SYS_swapcontext: ::c_long = 249; -pub const SYS_tgkill: ::c_long = 250; -pub const SYS_utimes: ::c_long = 251; -pub const SYS_statfs64: ::c_long = 252; -pub const SYS_fstatfs64: ::c_long = 253; -pub const SYS_fadvise64_64: ::c_long = 254; -pub const SYS_rtas: ::c_long = 255; -pub const SYS_sys_debug_setcontext: ::c_long = 256; -pub const SYS_migrate_pages: ::c_long = 258; -pub const SYS_mbind: ::c_long = 259; -pub const SYS_get_mempolicy: ::c_long = 260; -pub const SYS_set_mempolicy: ::c_long = 261; -pub const SYS_mq_open: ::c_long = 262; -pub const SYS_mq_unlink: ::c_long = 263; -pub const SYS_mq_timedsend: ::c_long = 264; -pub const SYS_mq_timedreceive: ::c_long = 265; -pub const SYS_mq_notify: ::c_long = 266; -pub const SYS_mq_getsetattr: ::c_long = 267; -pub const SYS_kexec_load: ::c_long = 268; -pub const SYS_add_key: ::c_long = 269; -pub const SYS_request_key: ::c_long = 270; -pub const SYS_keyctl: ::c_long = 271; -pub const SYS_waitid: ::c_long = 272; -pub const SYS_ioprio_set: ::c_long = 273; -pub const SYS_ioprio_get: ::c_long = 274; -pub const SYS_inotify_init: ::c_long = 275; -pub const SYS_inotify_add_watch: ::c_long = 276; -pub const SYS_inotify_rm_watch: ::c_long = 277; -pub const SYS_spu_run: ::c_long = 278; -pub const SYS_spu_create: ::c_long = 279; -pub const SYS_pselect6: ::c_long = 280; -pub const SYS_ppoll: ::c_long = 281; -pub const SYS_unshare: ::c_long = 282; -pub const SYS_splice: ::c_long = 283; -pub const SYS_tee: ::c_long = 284; -pub const SYS_vmsplice: ::c_long = 285; -pub const SYS_openat: ::c_long = 286; -pub const SYS_mkdirat: ::c_long = 287; -pub const SYS_mknodat: ::c_long = 288; -pub const SYS_fchownat: ::c_long = 289; -pub const SYS_futimesat: ::c_long = 290; -pub const SYS_fstatat64: ::c_long = 291; -pub const SYS_unlinkat: ::c_long = 292; -pub const SYS_renameat: ::c_long = 293; -pub const SYS_linkat: ::c_long = 294; -pub const SYS_symlinkat: ::c_long = 295; -pub const SYS_readlinkat: ::c_long = 296; -pub const SYS_fchmodat: ::c_long = 297; -pub const SYS_faccessat: ::c_long = 298; -pub const SYS_get_robust_list: ::c_long = 299; -pub const SYS_set_robust_list: ::c_long = 300; -pub const SYS_move_pages: ::c_long = 301; -pub const SYS_getcpu: ::c_long = 302; -pub const SYS_epoll_pwait: ::c_long = 303; -pub const SYS_utimensat: ::c_long = 304; -pub const SYS_signalfd: ::c_long = 305; -pub const SYS_timerfd_create: ::c_long = 306; -pub const SYS_eventfd: ::c_long = 307; -pub const SYS_sync_file_range2: ::c_long = 308; -pub const SYS_fallocate: ::c_long = 309; -pub const SYS_subpage_prot: ::c_long = 310; -pub const SYS_timerfd_settime: ::c_long = 311; -pub const SYS_timerfd_gettime: ::c_long = 312; -pub const SYS_signalfd4: ::c_long = 313; -pub const SYS_eventfd2: ::c_long = 314; -pub const SYS_epoll_create1: ::c_long = 315; -pub const SYS_dup3: ::c_long = 316; -pub const SYS_pipe2: ::c_long = 317; -pub const SYS_inotify_init1: ::c_long = 318; -pub const SYS_perf_event_open: ::c_long = 319; -pub const SYS_preadv: ::c_long = 320; -pub const SYS_pwritev: ::c_long = 321; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 322; -pub const SYS_fanotify_init: ::c_long = 323; -pub const SYS_fanotify_mark: ::c_long = 324; -pub const SYS_prlimit64: ::c_long = 325; -pub const SYS_socket: ::c_long = 326; -pub const SYS_bind: ::c_long = 327; -pub const SYS_connect: ::c_long = 328; -pub const SYS_listen: ::c_long = 329; -pub const SYS_accept: ::c_long = 330; -pub const SYS_getsockname: ::c_long = 331; -pub const SYS_getpeername: ::c_long = 332; -pub const SYS_socketpair: ::c_long = 333; -pub const SYS_send: ::c_long = 334; -pub const SYS_sendto: ::c_long = 335; -pub const SYS_recv: ::c_long = 336; -pub const SYS_recvfrom: ::c_long = 337; -pub const SYS_shutdown: ::c_long = 338; -pub const SYS_setsockopt: ::c_long = 339; -pub const SYS_getsockopt: ::c_long = 340; -pub const SYS_sendmsg: ::c_long = 341; -pub const SYS_recvmsg: ::c_long = 342; -pub const SYS_recvmmsg: ::c_long = 343; -pub const SYS_accept4: ::c_long = 344; -pub const SYS_name_to_handle_at: ::c_long = 345; -pub const SYS_open_by_handle_at: ::c_long = 346; -pub const SYS_clock_adjtime: ::c_long = 347; -pub const SYS_syncfs: ::c_long = 348; -pub const SYS_sendmmsg: ::c_long = 349; -pub const SYS_setns: ::c_long = 350; -pub const SYS_process_vm_readv: ::c_long = 351; -pub const SYS_process_vm_writev: ::c_long = 352; -pub const SYS_finit_module: ::c_long = 353; -pub const SYS_kcmp: ::c_long = 354; -pub const SYS_sched_setattr: ::c_long = 355; -pub const SYS_sched_getattr: ::c_long = 356; -pub const SYS_renameat2: ::c_long = 357; -pub const SYS_seccomp: ::c_long = 358; -pub const SYS_getrandom: ::c_long = 359; -pub const SYS_memfd_create: ::c_long = 360; -pub const SYS_bpf: ::c_long = 361; -pub const SYS_execveat: ::c_long = 362; -pub const SYS_switch_endian: ::c_long = 363; -pub const SYS_userfaultfd: ::c_long = 364; -pub const SYS_membarrier: ::c_long = 365; -pub const SYS_mlock2: ::c_long = 378; -pub const SYS_copy_file_range: ::c_long = 379; -pub const SYS_preadv2: ::c_long = 380; -pub const SYS_pwritev2: ::c_long = 381; -pub const SYS_kexec_file_load: ::c_long = 382; -pub const SYS_statx: ::c_long = 383; -pub const SYS_pkey_alloc: ::c_long = 384; -pub const SYS_pkey_free: ::c_long = 385; -pub const SYS_pkey_mprotect: ::c_long = 386; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; -pub const SYS_mseal: ::c_long = 462; +pub const SYS_restart_syscall: c_long = 0; +pub const SYS_exit: c_long = 1; +pub const SYS_fork: c_long = 2; +pub const SYS_read: c_long = 3; +pub const SYS_write: c_long = 4; +pub const SYS_open: c_long = 5; +pub const SYS_close: c_long = 6; +pub const SYS_waitpid: c_long = 7; +pub const SYS_creat: c_long = 8; +pub const SYS_link: c_long = 9; +pub const SYS_unlink: c_long = 10; +pub const SYS_execve: c_long = 11; +pub const SYS_chdir: c_long = 12; +pub const SYS_time: c_long = 13; +pub const SYS_mknod: c_long = 14; +pub const SYS_chmod: c_long = 15; +pub const SYS_lchown: c_long = 16; +pub const SYS_break: c_long = 17; +pub const SYS_oldstat: c_long = 18; +pub const SYS_lseek: c_long = 19; +pub const SYS_getpid: c_long = 20; +pub const SYS_mount: c_long = 21; +pub const SYS_umount: c_long = 22; +pub const SYS_setuid: c_long = 23; +pub const SYS_getuid: c_long = 24; +pub const SYS_stime: c_long = 25; +pub const SYS_ptrace: c_long = 26; +pub const SYS_alarm: c_long = 27; +pub const SYS_oldfstat: c_long = 28; +pub const SYS_pause: c_long = 29; +pub const SYS_utime: c_long = 30; +pub const SYS_stty: c_long = 31; +pub const SYS_gtty: c_long = 32; +pub const SYS_access: c_long = 33; +pub const SYS_nice: c_long = 34; +pub const SYS_ftime: c_long = 35; +pub const SYS_sync: c_long = 36; +pub const SYS_kill: c_long = 37; +pub const SYS_rename: c_long = 38; +pub const SYS_mkdir: c_long = 39; +pub const SYS_rmdir: c_long = 40; +pub const SYS_dup: c_long = 41; +pub const SYS_pipe: c_long = 42; +pub const SYS_times: c_long = 43; +pub const SYS_prof: c_long = 44; +pub const SYS_brk: c_long = 45; +pub const SYS_setgid: c_long = 46; +pub const SYS_getgid: c_long = 47; +pub const SYS_signal: c_long = 48; +pub const SYS_geteuid: c_long = 49; +pub const SYS_getegid: c_long = 50; +pub const SYS_acct: c_long = 51; +pub const SYS_umount2: c_long = 52; +pub const SYS_lock: c_long = 53; +pub const SYS_ioctl: c_long = 54; +pub const SYS_fcntl: c_long = 55; +pub const SYS_mpx: c_long = 56; +pub const SYS_setpgid: c_long = 57; +pub const SYS_ulimit: c_long = 58; +pub const SYS_oldolduname: c_long = 59; +pub const SYS_umask: c_long = 60; +pub const SYS_chroot: c_long = 61; +pub const SYS_ustat: c_long = 62; +pub const SYS_dup2: c_long = 63; +pub const SYS_getppid: c_long = 64; +pub const SYS_getpgrp: c_long = 65; +pub const SYS_setsid: c_long = 66; +pub const SYS_sigaction: c_long = 67; +pub const SYS_sgetmask: c_long = 68; +pub const SYS_ssetmask: c_long = 69; +pub const SYS_setreuid: c_long = 70; +pub const SYS_setregid: c_long = 71; +pub const SYS_sigsuspend: c_long = 72; +pub const SYS_sigpending: c_long = 73; +pub const SYS_sethostname: c_long = 74; +pub const SYS_setrlimit: c_long = 75; +pub const SYS_getrlimit: c_long = 76; +pub const SYS_getrusage: c_long = 77; +pub const SYS_gettimeofday: c_long = 78; +pub const SYS_settimeofday: c_long = 79; +pub const SYS_getgroups: c_long = 80; +pub const SYS_setgroups: c_long = 81; +pub const SYS_select: c_long = 82; +pub const SYS_symlink: c_long = 83; +pub const SYS_oldlstat: c_long = 84; +pub const SYS_readlink: c_long = 85; +pub const SYS_uselib: c_long = 86; +pub const SYS_swapon: c_long = 87; +pub const SYS_reboot: c_long = 88; +pub const SYS_readdir: c_long = 89; +pub const SYS_mmap: c_long = 90; +pub const SYS_munmap: c_long = 91; +pub const SYS_truncate: c_long = 92; +pub const SYS_ftruncate: c_long = 93; +pub const SYS_fchmod: c_long = 94; +pub const SYS_fchown: c_long = 95; +pub const SYS_getpriority: c_long = 96; +pub const SYS_setpriority: c_long = 97; +pub const SYS_profil: c_long = 98; +pub const SYS_statfs: c_long = 99; +pub const SYS_fstatfs: c_long = 100; +pub const SYS_ioperm: c_long = 101; +pub const SYS_socketcall: c_long = 102; +pub const SYS_syslog: c_long = 103; +pub const SYS_setitimer: c_long = 104; +pub const SYS_getitimer: c_long = 105; +pub const SYS_stat: c_long = 106; +pub const SYS_lstat: c_long = 107; +pub const SYS_fstat: c_long = 108; +pub const SYS_olduname: c_long = 109; +pub const SYS_iopl: c_long = 110; +pub const SYS_vhangup: c_long = 111; +pub const SYS_idle: c_long = 112; +pub const SYS_vm86: c_long = 113; +pub const SYS_wait4: c_long = 114; +pub const SYS_swapoff: c_long = 115; +pub const SYS_sysinfo: c_long = 116; +pub const SYS_ipc: c_long = 117; +pub const SYS_fsync: c_long = 118; +pub const SYS_sigreturn: c_long = 119; +pub const SYS_clone: c_long = 120; +pub const SYS_setdomainname: c_long = 121; +pub const SYS_uname: c_long = 122; +pub const SYS_modify_ldt: c_long = 123; +pub const SYS_adjtimex: c_long = 124; +pub const SYS_mprotect: c_long = 125; +pub const SYS_sigprocmask: c_long = 126; +pub const SYS_create_module: c_long = 127; +pub const SYS_init_module: c_long = 128; +pub const SYS_delete_module: c_long = 129; +pub const SYS_get_kernel_syms: c_long = 130; +pub const SYS_quotactl: c_long = 131; +pub const SYS_getpgid: c_long = 132; +pub const SYS_fchdir: c_long = 133; +pub const SYS_bdflush: c_long = 134; +pub const SYS_sysfs: c_long = 135; +pub const SYS_personality: c_long = 136; +pub const SYS_afs_syscall: c_long = 137; +pub const SYS_setfsuid: c_long = 138; +pub const SYS_setfsgid: c_long = 139; +pub const SYS__llseek: c_long = 140; +pub const SYS_getdents: c_long = 141; +pub const SYS__newselect: c_long = 142; +pub const SYS_flock: c_long = 143; +pub const SYS_msync: c_long = 144; +pub const SYS_readv: c_long = 145; +pub const SYS_writev: c_long = 146; +pub const SYS_getsid: c_long = 147; +pub const SYS_fdatasync: c_long = 148; +pub const SYS__sysctl: c_long = 149; +pub const SYS_mlock: c_long = 150; +pub const SYS_munlock: c_long = 151; +pub const SYS_mlockall: c_long = 152; +pub const SYS_munlockall: c_long = 153; +pub const SYS_sched_setparam: c_long = 154; +pub const SYS_sched_getparam: c_long = 155; +pub const SYS_sched_setscheduler: c_long = 156; +pub const SYS_sched_getscheduler: c_long = 157; +pub const SYS_sched_yield: c_long = 158; +pub const SYS_sched_get_priority_max: c_long = 159; +pub const SYS_sched_get_priority_min: c_long = 160; +pub const SYS_sched_rr_get_interval: c_long = 161; +pub const SYS_nanosleep: c_long = 162; +pub const SYS_mremap: c_long = 163; +pub const SYS_setresuid: c_long = 164; +pub const SYS_getresuid: c_long = 165; +pub const SYS_query_module: c_long = 166; +pub const SYS_poll: c_long = 167; +pub const SYS_nfsservctl: c_long = 168; +pub const SYS_setresgid: c_long = 169; +pub const SYS_getresgid: c_long = 170; +pub const SYS_prctl: c_long = 171; +pub const SYS_rt_sigreturn: c_long = 172; +pub const SYS_rt_sigaction: c_long = 173; +pub const SYS_rt_sigprocmask: c_long = 174; +pub const SYS_rt_sigpending: c_long = 175; +pub const SYS_rt_sigtimedwait: c_long = 176; +pub const SYS_rt_sigqueueinfo: c_long = 177; +pub const SYS_rt_sigsuspend: c_long = 178; +pub const SYS_pread64: c_long = 179; +pub const SYS_pwrite64: c_long = 180; +pub const SYS_chown: c_long = 181; +pub const SYS_getcwd: c_long = 182; +pub const SYS_capget: c_long = 183; +pub const SYS_capset: c_long = 184; +pub const SYS_sigaltstack: c_long = 185; +pub const SYS_sendfile: c_long = 186; +pub const SYS_getpmsg: c_long = 187; +pub const SYS_putpmsg: c_long = 188; +pub const SYS_vfork: c_long = 189; +pub const SYS_ugetrlimit: c_long = 190; +pub const SYS_readahead: c_long = 191; +pub const SYS_mmap2: c_long = 192; +pub const SYS_truncate64: c_long = 193; +pub const SYS_ftruncate64: c_long = 194; +pub const SYS_stat64: c_long = 195; +pub const SYS_lstat64: c_long = 196; +pub const SYS_fstat64: c_long = 197; +pub const SYS_pciconfig_read: c_long = 198; +pub const SYS_pciconfig_write: c_long = 199; +pub const SYS_pciconfig_iobase: c_long = 200; +pub const SYS_multiplexer: c_long = 201; +pub const SYS_getdents64: c_long = 202; +pub const SYS_pivot_root: c_long = 203; +pub const SYS_fcntl64: c_long = 204; +pub const SYS_madvise: c_long = 205; +pub const SYS_mincore: c_long = 206; +pub const SYS_gettid: c_long = 207; +pub const SYS_tkill: c_long = 208; +pub const SYS_setxattr: c_long = 209; +pub const SYS_lsetxattr: c_long = 210; +pub const SYS_fsetxattr: c_long = 211; +pub const SYS_getxattr: c_long = 212; +pub const SYS_lgetxattr: c_long = 213; +pub const SYS_fgetxattr: c_long = 214; +pub const SYS_listxattr: c_long = 215; +pub const SYS_llistxattr: c_long = 216; +pub const SYS_flistxattr: c_long = 217; +pub const SYS_removexattr: c_long = 218; +pub const SYS_lremovexattr: c_long = 219; +pub const SYS_fremovexattr: c_long = 220; +pub const SYS_futex: c_long = 221; +pub const SYS_sched_setaffinity: c_long = 222; +pub const SYS_sched_getaffinity: c_long = 223; +pub const SYS_tuxcall: c_long = 225; +pub const SYS_sendfile64: c_long = 226; +pub const SYS_io_setup: c_long = 227; +pub const SYS_io_destroy: c_long = 228; +pub const SYS_io_getevents: c_long = 229; +pub const SYS_io_submit: c_long = 230; +pub const SYS_io_cancel: c_long = 231; +pub const SYS_set_tid_address: c_long = 232; +pub const SYS_fadvise64: c_long = 233; +pub const SYS_exit_group: c_long = 234; +pub const SYS_lookup_dcookie: c_long = 235; +pub const SYS_epoll_create: c_long = 236; +pub const SYS_epoll_ctl: c_long = 237; +pub const SYS_epoll_wait: c_long = 238; +pub const SYS_remap_file_pages: c_long = 239; +pub const SYS_timer_create: c_long = 240; +pub const SYS_timer_settime: c_long = 241; +pub const SYS_timer_gettime: c_long = 242; +pub const SYS_timer_getoverrun: c_long = 243; +pub const SYS_timer_delete: c_long = 244; +pub const SYS_clock_settime: c_long = 245; +pub const SYS_clock_gettime: c_long = 246; +pub const SYS_clock_getres: c_long = 247; +pub const SYS_clock_nanosleep: c_long = 248; +pub const SYS_swapcontext: c_long = 249; +pub const SYS_tgkill: c_long = 250; +pub const SYS_utimes: c_long = 251; +pub const SYS_statfs64: c_long = 252; +pub const SYS_fstatfs64: c_long = 253; +pub const SYS_fadvise64_64: c_long = 254; +pub const SYS_rtas: c_long = 255; +pub const SYS_sys_debug_setcontext: c_long = 256; +pub const SYS_migrate_pages: c_long = 258; +pub const SYS_mbind: c_long = 259; +pub const SYS_get_mempolicy: c_long = 260; +pub const SYS_set_mempolicy: c_long = 261; +pub const SYS_mq_open: c_long = 262; +pub const SYS_mq_unlink: c_long = 263; +pub const SYS_mq_timedsend: c_long = 264; +pub const SYS_mq_timedreceive: c_long = 265; +pub const SYS_mq_notify: c_long = 266; +pub const SYS_mq_getsetattr: c_long = 267; +pub const SYS_kexec_load: c_long = 268; +pub const SYS_add_key: c_long = 269; +pub const SYS_request_key: c_long = 270; +pub const SYS_keyctl: c_long = 271; +pub const SYS_waitid: c_long = 272; +pub const SYS_ioprio_set: c_long = 273; +pub const SYS_ioprio_get: c_long = 274; +pub const SYS_inotify_init: c_long = 275; +pub const SYS_inotify_add_watch: c_long = 276; +pub const SYS_inotify_rm_watch: c_long = 277; +pub const SYS_spu_run: c_long = 278; +pub const SYS_spu_create: c_long = 279; +pub const SYS_pselect6: c_long = 280; +pub const SYS_ppoll: c_long = 281; +pub const SYS_unshare: c_long = 282; +pub const SYS_splice: c_long = 283; +pub const SYS_tee: c_long = 284; +pub const SYS_vmsplice: c_long = 285; +pub const SYS_openat: c_long = 286; +pub const SYS_mkdirat: c_long = 287; +pub const SYS_mknodat: c_long = 288; +pub const SYS_fchownat: c_long = 289; +pub const SYS_futimesat: c_long = 290; +pub const SYS_fstatat64: c_long = 291; +pub const SYS_unlinkat: c_long = 292; +pub const SYS_renameat: c_long = 293; +pub const SYS_linkat: c_long = 294; +pub const SYS_symlinkat: c_long = 295; +pub const SYS_readlinkat: c_long = 296; +pub const SYS_fchmodat: c_long = 297; +pub const SYS_faccessat: c_long = 298; +pub const SYS_get_robust_list: c_long = 299; +pub const SYS_set_robust_list: c_long = 300; +pub const SYS_move_pages: c_long = 301; +pub const SYS_getcpu: c_long = 302; +pub const SYS_epoll_pwait: c_long = 303; +pub const SYS_utimensat: c_long = 304; +pub const SYS_signalfd: c_long = 305; +pub const SYS_timerfd_create: c_long = 306; +pub const SYS_eventfd: c_long = 307; +pub const SYS_sync_file_range2: c_long = 308; +pub const SYS_fallocate: c_long = 309; +pub const SYS_subpage_prot: c_long = 310; +pub const SYS_timerfd_settime: c_long = 311; +pub const SYS_timerfd_gettime: c_long = 312; +pub const SYS_signalfd4: c_long = 313; +pub const SYS_eventfd2: c_long = 314; +pub const SYS_epoll_create1: c_long = 315; +pub const SYS_dup3: c_long = 316; +pub const SYS_pipe2: c_long = 317; +pub const SYS_inotify_init1: c_long = 318; +pub const SYS_perf_event_open: c_long = 319; +pub const SYS_preadv: c_long = 320; +pub const SYS_pwritev: c_long = 321; +pub const SYS_rt_tgsigqueueinfo: c_long = 322; +pub const SYS_fanotify_init: c_long = 323; +pub const SYS_fanotify_mark: c_long = 324; +pub const SYS_prlimit64: c_long = 325; +pub const SYS_socket: c_long = 326; +pub const SYS_bind: c_long = 327; +pub const SYS_connect: c_long = 328; +pub const SYS_listen: c_long = 329; +pub const SYS_accept: c_long = 330; +pub const SYS_getsockname: c_long = 331; +pub const SYS_getpeername: c_long = 332; +pub const SYS_socketpair: c_long = 333; +pub const SYS_send: c_long = 334; +pub const SYS_sendto: c_long = 335; +pub const SYS_recv: c_long = 336; +pub const SYS_recvfrom: c_long = 337; +pub const SYS_shutdown: c_long = 338; +pub const SYS_setsockopt: c_long = 339; +pub const SYS_getsockopt: c_long = 340; +pub const SYS_sendmsg: c_long = 341; +pub const SYS_recvmsg: c_long = 342; +pub const SYS_recvmmsg: c_long = 343; +pub const SYS_accept4: c_long = 344; +pub const SYS_name_to_handle_at: c_long = 345; +pub const SYS_open_by_handle_at: c_long = 346; +pub const SYS_clock_adjtime: c_long = 347; +pub const SYS_syncfs: c_long = 348; +pub const SYS_sendmmsg: c_long = 349; +pub const SYS_setns: c_long = 350; +pub const SYS_process_vm_readv: c_long = 351; +pub const SYS_process_vm_writev: c_long = 352; +pub const SYS_finit_module: c_long = 353; +pub const SYS_kcmp: c_long = 354; +pub const SYS_sched_setattr: c_long = 355; +pub const SYS_sched_getattr: c_long = 356; +pub const SYS_renameat2: c_long = 357; +pub const SYS_seccomp: c_long = 358; +pub const SYS_getrandom: c_long = 359; +pub const SYS_memfd_create: c_long = 360; +pub const SYS_bpf: c_long = 361; +pub const SYS_execveat: c_long = 362; +pub const SYS_switch_endian: c_long = 363; +pub const SYS_userfaultfd: c_long = 364; +pub const SYS_membarrier: c_long = 365; +pub const SYS_mlock2: c_long = 378; +pub const SYS_copy_file_range: c_long = 379; +pub const SYS_preadv2: c_long = 380; +pub const SYS_pwritev2: c_long = 381; +pub const SYS_kexec_file_load: c_long = 382; +pub const SYS_statx: c_long = 383; +pub const SYS_pkey_alloc: c_long = 384; +pub const SYS_pkey_free: c_long = 385; +pub const SYS_pkey_mprotect: c_long = 386; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; +pub const SYS_mseal: c_long = 462; extern "C" { - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; + pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; } diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index aa8ba42205636..68cdc45de4df6 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -1,101 +1,103 @@ //! RISC-V-specific definitions for 32-bit linux-like values +use crate::{c_int, c_long, c_short, c_ulong, c_ushort, c_void, off64_t, off_t, size_t}; + pub type c_char = u8; -pub type wchar_t = ::c_int; +pub type wchar_t = c_int; s! { 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_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - 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_int; 2usize], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub __pad1: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub __pad2: c_int, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_int; 2usize], } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - pub st_blocks: ::blkcnt64_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_int; 2], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino64_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub __pad1: crate::dev_t, + pub st_size: off64_t, + pub st_blksize: crate::blksize_t, + pub __pad2: c_int, + pub st_blocks: crate::blkcnt64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_int; 2], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: c_ushort, + __pad1: c_ushort, + pub __seq: c_ushort, + __pad2: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused5: ::c_ulong, - __unused6: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __unused5: c_ulong, + __unused6: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - __unused1: ::c_int, - pub msg_rtime: ::time_t, - __unused2: ::c_int, - pub msg_ctime: ::time_t, - __unused3: ::c_int, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, + pub msg_perm: crate::ipc_perm, + pub msg_stime: crate::time_t, + __unused1: c_int, + pub msg_rtime: crate::time_t, + __unused2: c_int, + pub msg_ctime: crate::time_t, + __unused3: c_int, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __pad1: c_ulong, + __pad2: c_ulong, } } @@ -109,174 +111,174 @@ s_no_extra_traits! { //pub const RLIM_INFINITY: ::rlim_t = !0; pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_DEEPBIND: c_int = 0x8; //pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; //pub const RLIMIT_AS: ::__rlimit_resource_t = 9; //pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; //pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; //pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 1052672; -pub const MAP_GROWSDOWN: ::c_int = 256; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_FSYNC: c_int = 1052672; +pub const MAP_GROWSDOWN: c_int = 256; +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EBADMSG: c_int = 74; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const EHWPOISON: c_int = 133; +pub const ERFKILL: c_int = 132; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SA_ONSTACK: ::c_int = 8; -pub const SA_SIGINFO: ::c_int = 4; -pub const SA_NOCLDWAIT: ::c_int = 2; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0; -pub const SIG_UNBLOCK: ::c_int = 1; -pub const POLLWRNORM: ::c_short = 256; -pub const POLLWRBAND: ::c_short = 512; -pub const O_ASYNC: ::c_int = 8192; -pub const F_SETOWN: ::c_int = 8; -pub const F_GETOWN: ::c_int = 9; -pub const F_GETLK: ::c_int = 12; -pub const F_SETLK: ::c_int = 13; -pub const F_SETLKW: ::c_int = 14; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; +pub const SA_ONSTACK: c_int = 8; +pub const SA_SIGINFO: c_int = 4; +pub const SA_NOCLDWAIT: c_int = 2; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0; +pub const SIG_UNBLOCK: c_int = 1; +pub const POLLWRNORM: c_short = 256; +pub const POLLWRBAND: c_short = 512; +pub const O_ASYNC: c_int = 8192; +pub const F_SETOWN: c_int = 8; +pub const F_GETOWN: c_int = 9; +pub const F_GETLK: c_int = 12; +pub const F_SETLK: c_int = 13; +pub const F_SETLKW: c_int = 14; -pub const O_DIRECT: ::c_int = 16384; -pub const O_DIRECTORY: ::c_int = 65536; -pub const O_LARGEFILE: ::c_int = 0o0100000; -pub const O_NOFOLLOW: ::c_int = 131072; -pub const MAP_HUGETLB: ::c_int = 262144; -pub const MAP_LOCKED: ::c_int = 8192; -pub const MAP_NORESERVE: ::c_int = 16384; -pub const MAP_ANON: ::c_int = 32; -pub const MAP_DENYWRITE: ::c_int = 2048; -pub const MAP_EXECUTABLE: ::c_int = 4096; -pub const MAP_POPULATE: ::c_int = 32768; -pub const MAP_NONBLOCK: ::c_int = 65536; -pub const MAP_STACK: ::c_int = 131072; -pub const MAP_SYNC: ::c_int = 0x080000; -pub const EDEADLOCK: ::c_int = 35; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const MCL_CURRENT: ::c_int = 1; -pub const MCL_FUTURE: ::c_int = 2; -pub const MCL_ONFAULT: ::c_int = 4; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 4111; -pub const TAB1: ::tcflag_t = 2048; -pub const TAB2: ::tcflag_t = 4096; -pub const TAB3: ::tcflag_t = 6144; -pub const CR1: ::tcflag_t = 512; -pub const CR2: ::tcflag_t = 1024; -pub const CR3: ::tcflag_t = 1536; -pub const FF1: ::tcflag_t = 32768; -pub const BS1: ::tcflag_t = 8192; -pub const VT1: ::tcflag_t = 16384; +pub const O_DIRECT: c_int = 16384; +pub const O_DIRECTORY: c_int = 65536; +pub const O_LARGEFILE: c_int = 0o0100000; +pub const O_NOFOLLOW: c_int = 131072; +pub const MAP_HUGETLB: c_int = 262144; +pub const MAP_LOCKED: c_int = 8192; +pub const MAP_NORESERVE: c_int = 16384; +pub const MAP_ANON: c_int = 32; +pub const MAP_DENYWRITE: c_int = 2048; +pub const MAP_EXECUTABLE: c_int = 4096; +pub const MAP_POPULATE: c_int = 32768; +pub const MAP_NONBLOCK: c_int = 65536; +pub const MAP_STACK: c_int = 131072; +pub const MAP_SYNC: c_int = 0x080000; +pub const EDEADLOCK: c_int = 35; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const MCL_CURRENT: c_int = 1; +pub const MCL_FUTURE: c_int = 2; +pub const MCL_ONFAULT: c_int = 4; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; +pub const CBAUD: crate::tcflag_t = 4111; +pub const TAB1: crate::tcflag_t = 2048; +pub const TAB2: crate::tcflag_t = 4096; +pub const TAB3: crate::tcflag_t = 6144; +pub const CR1: crate::tcflag_t = 512; +pub const CR2: crate::tcflag_t = 1024; +pub const CR3: crate::tcflag_t = 1536; +pub const FF1: crate::tcflag_t = 32768; +pub const BS1: crate::tcflag_t = 8192; +pub const VT1: crate::tcflag_t = 16384; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -284,354 +286,354 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 1024; -pub const IXOFF: ::tcflag_t = 4096; -pub const ONLCR: ::tcflag_t = 4; -pub const CSIZE: ::tcflag_t = 48; -pub const CS6: ::tcflag_t = 16; -pub const CS7: ::tcflag_t = 32; -pub const CS8: ::tcflag_t = 48; -pub const CSTOPB: ::tcflag_t = 64; -pub const CREAD: ::tcflag_t = 128; -pub const PARENB: ::tcflag_t = 256; -pub const PARODD: ::tcflag_t = 512; -pub const HUPCL: ::tcflag_t = 1024; -pub const CLOCAL: ::tcflag_t = 2048; -pub const ECHOKE: ::tcflag_t = 2048; -pub const ECHOE: ::tcflag_t = 16; -pub const ECHOK: ::tcflag_t = 32; -pub const ECHONL: ::tcflag_t = 64; -pub const ECHOPRT: ::tcflag_t = 1024; -pub const ECHOCTL: ::tcflag_t = 512; -pub const ISIG: ::tcflag_t = 1; -pub const ICANON: ::tcflag_t = 2; -pub const PENDIN: ::tcflag_t = 16384; -pub const NOFLSH: ::tcflag_t = 128; -pub const CIBAUD: ::tcflag_t = 269418496; -pub const CBAUDEX: ::tcflag_t = 4096; +pub const IXON: crate::tcflag_t = 1024; +pub const IXOFF: crate::tcflag_t = 4096; +pub const ONLCR: crate::tcflag_t = 4; +pub const CSIZE: crate::tcflag_t = 48; +pub const CS6: crate::tcflag_t = 16; +pub const CS7: crate::tcflag_t = 32; +pub const CS8: crate::tcflag_t = 48; +pub const CSTOPB: crate::tcflag_t = 64; +pub const CREAD: crate::tcflag_t = 128; +pub const PARENB: crate::tcflag_t = 256; +pub const PARODD: crate::tcflag_t = 512; +pub const HUPCL: crate::tcflag_t = 1024; +pub const CLOCAL: crate::tcflag_t = 2048; +pub const ECHOKE: crate::tcflag_t = 2048; +pub const ECHOE: crate::tcflag_t = 16; +pub const ECHOK: crate::tcflag_t = 32; +pub const ECHONL: crate::tcflag_t = 64; +pub const ECHOPRT: crate::tcflag_t = 1024; +pub const ECHOCTL: crate::tcflag_t = 512; +pub const ISIG: crate::tcflag_t = 1; +pub const ICANON: crate::tcflag_t = 2; +pub const PENDIN: crate::tcflag_t = 16384; +pub const NOFLSH: crate::tcflag_t = 128; +pub const CIBAUD: crate::tcflag_t = 269418496; +pub const CBAUDEX: crate::tcflag_t = 4096; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 2; -pub const NLDLY: ::tcflag_t = 256; -pub const CRDLY: ::tcflag_t = 1536; -pub const TABDLY: ::tcflag_t = 6144; -pub const BSDLY: ::tcflag_t = 8192; -pub const FFDLY: ::tcflag_t = 32768; -pub const VTDLY: ::tcflag_t = 16384; -pub const XTABS: ::tcflag_t = 6144; -pub const B57600: ::speed_t = 4097; -pub const B115200: ::speed_t = 4098; -pub const B230400: ::speed_t = 4099; -pub const B460800: ::speed_t = 4100; -pub const B500000: ::speed_t = 4101; -pub const B576000: ::speed_t = 4102; -pub const B921600: ::speed_t = 4103; -pub const B1000000: ::speed_t = 4104; -pub const B1152000: ::speed_t = 4105; -pub const B1500000: ::speed_t = 4106; -pub const B2000000: ::speed_t = 4107; -pub const B2500000: ::speed_t = 4108; -pub const B3000000: ::speed_t = 4109; -pub const B3500000: ::speed_t = 4110; -pub const B4000000: ::speed_t = 4111; +pub const OLCUC: crate::tcflag_t = 2; +pub const NLDLY: crate::tcflag_t = 256; +pub const CRDLY: crate::tcflag_t = 1536; +pub const TABDLY: crate::tcflag_t = 6144; +pub const BSDLY: crate::tcflag_t = 8192; +pub const FFDLY: crate::tcflag_t = 32768; +pub const VTDLY: crate::tcflag_t = 16384; +pub const XTABS: crate::tcflag_t = 6144; +pub const B57600: crate::speed_t = 4097; +pub const B115200: crate::speed_t = 4098; +pub const B230400: crate::speed_t = 4099; +pub const B460800: crate::speed_t = 4100; +pub const B500000: crate::speed_t = 4101; +pub const B576000: crate::speed_t = 4102; +pub const B921600: crate::speed_t = 4103; +pub const B1000000: crate::speed_t = 4104; +pub const B1152000: crate::speed_t = 4105; +pub const B1500000: crate::speed_t = 4106; +pub const B2000000: crate::speed_t = 4107; +pub const B2500000: crate::speed_t = 4108; +pub const B3000000: crate::speed_t = 4109; +pub const B3500000: crate::speed_t = 4110; +pub const B4000000: crate::speed_t = 4111; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 32768; -pub const TOSTOP: ::tcflag_t = 256; -pub const FLUSHO: ::tcflag_t = 4096; -pub const EXTPROC: ::tcflag_t = 65536; +pub const IEXTEN: crate::tcflag_t = 32768; +pub const TOSTOP: crate::tcflag_t = 256; +pub const FLUSHO: crate::tcflag_t = 4096; +pub const EXTPROC: crate::tcflag_t = 65536; -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_close: ::c_long = 57; -pub const SYS_fstat: ::c_long = 80; -pub const SYS_lseek: ::c_long = 62; -pub const SYS_mmap: ::c_long = 222; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_brk: ::c_long = 214; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_dup: ::c_long = 23; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_sendfile: ::c_long = 71; -pub const SYS_socket: ::c_long = 198; -pub const SYS_connect: ::c_long = 203; -pub const SYS_accept: ::c_long = 202; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_exit: ::c_long = 93; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_kill: ::c_long = 129; -pub const SYS_uname: ::c_long = 160; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semop: ::c_long = 193; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_flock: ::c_long = 32; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_truncate: ::c_long = 45; -pub const SYS_ftruncate: ::c_long = 46; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_umask: ::c_long = 166; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_times: ::c_long = 153; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_personality: ::c_long = 92; -pub const SYS_statfs: ::c_long = 43; -pub const SYS_fstatfs: ::c_long = 44; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_setrlimit: ::c_long = 164; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_sync: ::c_long = 81; -pub const SYS_acct: ::c_long = 89; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_mount: ::c_long = 40; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_futex: ::c_long = 98; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_fadvise64: ::c_long = 223; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_openat: ::c_long = 56; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_newfstatat: ::c_long = 79; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_setns: ::c_long = 268; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_read: c_long = 63; +pub const SYS_write: c_long = 64; +pub const SYS_close: c_long = 57; +pub const SYS_fstat: c_long = 80; +pub const SYS_lseek: c_long = 62; +pub const SYS_mmap: c_long = 222; +pub const SYS_mprotect: c_long = 226; +pub const SYS_munmap: c_long = 215; +pub const SYS_brk: c_long = 214; +pub const SYS_rt_sigaction: c_long = 134; +pub const SYS_rt_sigprocmask: c_long = 135; +pub const SYS_rt_sigreturn: c_long = 139; +pub const SYS_ioctl: c_long = 29; +pub const SYS_pread64: c_long = 67; +pub const SYS_pwrite64: c_long = 68; +pub const SYS_readv: c_long = 65; +pub const SYS_writev: c_long = 66; +pub const SYS_sched_yield: c_long = 124; +pub const SYS_mremap: c_long = 216; +pub const SYS_msync: c_long = 227; +pub const SYS_mincore: c_long = 232; +pub const SYS_madvise: c_long = 233; +pub const SYS_shmget: c_long = 194; +pub const SYS_shmat: c_long = 196; +pub const SYS_shmctl: c_long = 195; +pub const SYS_dup: c_long = 23; +pub const SYS_nanosleep: c_long = 101; +pub const SYS_getitimer: c_long = 102; +pub const SYS_setitimer: c_long = 103; +pub const SYS_getpid: c_long = 172; +pub const SYS_sendfile: c_long = 71; +pub const SYS_socket: c_long = 198; +pub const SYS_connect: c_long = 203; +pub const SYS_accept: c_long = 202; +pub const SYS_sendto: c_long = 206; +pub const SYS_recvfrom: c_long = 207; +pub const SYS_sendmsg: c_long = 211; +pub const SYS_recvmsg: c_long = 212; +pub const SYS_shutdown: c_long = 210; +pub const SYS_bind: c_long = 200; +pub const SYS_listen: c_long = 201; +pub const SYS_getsockname: c_long = 204; +pub const SYS_getpeername: c_long = 205; +pub const SYS_socketpair: c_long = 199; +pub const SYS_setsockopt: c_long = 208; +pub const SYS_getsockopt: c_long = 209; +pub const SYS_clone: c_long = 220; +pub const SYS_execve: c_long = 221; +pub const SYS_exit: c_long = 93; +pub const SYS_wait4: c_long = 260; +pub const SYS_kill: c_long = 129; +pub const SYS_uname: c_long = 160; +pub const SYS_semget: c_long = 190; +pub const SYS_semop: c_long = 193; +pub const SYS_semctl: c_long = 191; +pub const SYS_shmdt: c_long = 197; +pub const SYS_msgget: c_long = 186; +pub const SYS_msgsnd: c_long = 189; +pub const SYS_msgrcv: c_long = 188; +pub const SYS_msgctl: c_long = 187; +pub const SYS_fcntl: c_long = 25; +pub const SYS_flock: c_long = 32; +pub const SYS_fsync: c_long = 82; +pub const SYS_fdatasync: c_long = 83; +pub const SYS_truncate: c_long = 45; +pub const SYS_ftruncate: c_long = 46; +pub const SYS_getcwd: c_long = 17; +pub const SYS_chdir: c_long = 49; +pub const SYS_fchdir: c_long = 50; +pub const SYS_fchmod: c_long = 52; +pub const SYS_fchown: c_long = 55; +pub const SYS_umask: c_long = 166; +pub const SYS_gettimeofday: c_long = 169; +pub const SYS_getrlimit: c_long = 163; +pub const SYS_getrusage: c_long = 165; +pub const SYS_sysinfo: c_long = 179; +pub const SYS_times: c_long = 153; +pub const SYS_ptrace: c_long = 117; +pub const SYS_getuid: c_long = 174; +pub const SYS_syslog: c_long = 116; +pub const SYS_getgid: c_long = 176; +pub const SYS_setuid: c_long = 146; +pub const SYS_setgid: c_long = 144; +pub const SYS_geteuid: c_long = 175; +pub const SYS_getegid: c_long = 177; +pub const SYS_setpgid: c_long = 154; +pub const SYS_getppid: c_long = 173; +pub const SYS_setsid: c_long = 157; +pub const SYS_setreuid: c_long = 145; +pub const SYS_setregid: c_long = 143; +pub const SYS_getgroups: c_long = 158; +pub const SYS_setgroups: c_long = 159; +pub const SYS_setresuid: c_long = 147; +pub const SYS_getresuid: c_long = 148; +pub const SYS_setresgid: c_long = 149; +pub const SYS_getresgid: c_long = 150; +pub const SYS_getpgid: c_long = 155; +pub const SYS_setfsuid: c_long = 151; +pub const SYS_setfsgid: c_long = 152; +pub const SYS_getsid: c_long = 156; +pub const SYS_capget: c_long = 90; +pub const SYS_capset: c_long = 91; +pub const SYS_rt_sigpending: c_long = 136; +pub const SYS_rt_sigtimedwait: c_long = 137; +pub const SYS_rt_sigqueueinfo: c_long = 138; +pub const SYS_rt_sigsuspend: c_long = 133; +pub const SYS_sigaltstack: c_long = 132; +pub const SYS_personality: c_long = 92; +pub const SYS_statfs: c_long = 43; +pub const SYS_fstatfs: c_long = 44; +pub const SYS_getpriority: c_long = 141; +pub const SYS_setpriority: c_long = 140; +pub const SYS_sched_setparam: c_long = 118; +pub const SYS_sched_getparam: c_long = 121; +pub const SYS_sched_setscheduler: c_long = 119; +pub const SYS_sched_getscheduler: c_long = 120; +pub const SYS_sched_get_priority_max: c_long = 125; +pub const SYS_sched_get_priority_min: c_long = 126; +pub const SYS_sched_rr_get_interval: c_long = 127; +pub const SYS_mlock: c_long = 228; +pub const SYS_munlock: c_long = 229; +pub const SYS_mlockall: c_long = 230; +pub const SYS_munlockall: c_long = 231; +pub const SYS_vhangup: c_long = 58; +pub const SYS_pivot_root: c_long = 41; +pub const SYS_prctl: c_long = 167; +pub const SYS_adjtimex: c_long = 171; +pub const SYS_setrlimit: c_long = 164; +pub const SYS_chroot: c_long = 51; +pub const SYS_sync: c_long = 81; +pub const SYS_acct: c_long = 89; +pub const SYS_settimeofday: c_long = 170; +pub const SYS_mount: c_long = 40; +pub const SYS_umount2: c_long = 39; +pub const SYS_swapon: c_long = 224; +pub const SYS_swapoff: c_long = 225; +pub const SYS_reboot: c_long = 142; +pub const SYS_sethostname: c_long = 161; +pub const SYS_setdomainname: c_long = 162; +pub const SYS_init_module: c_long = 105; +pub const SYS_delete_module: c_long = 106; +pub const SYS_quotactl: c_long = 60; +pub const SYS_nfsservctl: c_long = 42; +pub const SYS_gettid: c_long = 178; +pub const SYS_readahead: c_long = 213; +pub const SYS_setxattr: c_long = 5; +pub const SYS_lsetxattr: c_long = 6; +pub const SYS_fsetxattr: c_long = 7; +pub const SYS_getxattr: c_long = 8; +pub const SYS_lgetxattr: c_long = 9; +pub const SYS_fgetxattr: c_long = 10; +pub const SYS_listxattr: c_long = 11; +pub const SYS_llistxattr: c_long = 12; +pub const SYS_flistxattr: c_long = 13; +pub const SYS_removexattr: c_long = 14; +pub const SYS_lremovexattr: c_long = 15; +pub const SYS_fremovexattr: c_long = 16; +pub const SYS_tkill: c_long = 130; +pub const SYS_futex: c_long = 98; +pub const SYS_sched_setaffinity: c_long = 122; +pub const SYS_sched_getaffinity: c_long = 123; +pub const SYS_io_setup: c_long = 0; +pub const SYS_io_destroy: c_long = 1; +pub const SYS_io_getevents: c_long = 4; +pub const SYS_io_submit: c_long = 2; +pub const SYS_io_cancel: c_long = 3; +pub const SYS_lookup_dcookie: c_long = 18; +pub const SYS_remap_file_pages: c_long = 234; +pub const SYS_getdents64: c_long = 61; +pub const SYS_set_tid_address: c_long = 96; +pub const SYS_restart_syscall: c_long = 128; +pub const SYS_semtimedop: c_long = 192; +pub const SYS_fadvise64: c_long = 223; +pub const SYS_timer_create: c_long = 107; +pub const SYS_timer_settime: c_long = 110; +pub const SYS_timer_gettime: c_long = 108; +pub const SYS_timer_getoverrun: c_long = 109; +pub const SYS_timer_delete: c_long = 111; +pub const SYS_clock_settime: c_long = 112; +pub const SYS_clock_gettime: c_long = 113; +pub const SYS_clock_getres: c_long = 114; +pub const SYS_clock_nanosleep: c_long = 115; +pub const SYS_exit_group: c_long = 94; +pub const SYS_epoll_ctl: c_long = 21; +pub const SYS_tgkill: c_long = 131; +pub const SYS_mbind: c_long = 235; +pub const SYS_set_mempolicy: c_long = 237; +pub const SYS_get_mempolicy: c_long = 236; +pub const SYS_mq_open: c_long = 180; +pub const SYS_mq_unlink: c_long = 181; +pub const SYS_mq_timedsend: c_long = 182; +pub const SYS_mq_timedreceive: c_long = 183; +pub const SYS_mq_notify: c_long = 184; +pub const SYS_mq_getsetattr: c_long = 185; +pub const SYS_kexec_load: c_long = 104; +pub const SYS_waitid: c_long = 95; +pub const SYS_add_key: c_long = 217; +pub const SYS_request_key: c_long = 218; +pub const SYS_keyctl: c_long = 219; +pub const SYS_ioprio_set: c_long = 30; +pub const SYS_ioprio_get: c_long = 31; +pub const SYS_inotify_add_watch: c_long = 27; +pub const SYS_inotify_rm_watch: c_long = 28; +pub const SYS_migrate_pages: c_long = 238; +pub const SYS_openat: c_long = 56; +pub const SYS_mkdirat: c_long = 34; +pub const SYS_mknodat: c_long = 33; +pub const SYS_fchownat: c_long = 54; +pub const SYS_newfstatat: c_long = 79; +pub const SYS_unlinkat: c_long = 35; +pub const SYS_linkat: c_long = 37; +pub const SYS_symlinkat: c_long = 36; +pub const SYS_readlinkat: c_long = 78; +pub const SYS_fchmodat: c_long = 53; +pub const SYS_faccessat: c_long = 48; +pub const SYS_pselect6: c_long = 72; +pub const SYS_ppoll: c_long = 73; +pub const SYS_unshare: c_long = 97; +pub const SYS_set_robust_list: c_long = 99; +pub const SYS_get_robust_list: c_long = 100; +pub const SYS_splice: c_long = 76; +pub const SYS_tee: c_long = 77; +pub const SYS_sync_file_range: c_long = 84; +pub const SYS_vmsplice: c_long = 75; +pub const SYS_move_pages: c_long = 239; +pub const SYS_utimensat: c_long = 88; +pub const SYS_epoll_pwait: c_long = 22; +pub const SYS_timerfd_create: c_long = 85; +pub const SYS_fallocate: c_long = 47; +pub const SYS_timerfd_settime: c_long = 86; +pub const SYS_timerfd_gettime: c_long = 87; +pub const SYS_accept4: c_long = 242; +pub const SYS_signalfd4: c_long = 74; +pub const SYS_eventfd2: c_long = 19; +pub const SYS_epoll_create1: c_long = 20; +pub const SYS_dup3: c_long = 24; +pub const SYS_pipe2: c_long = 59; +pub const SYS_inotify_init1: c_long = 26; +pub const SYS_preadv: c_long = 69; +pub const SYS_pwritev: c_long = 70; +pub const SYS_rt_tgsigqueueinfo: c_long = 240; +pub const SYS_perf_event_open: c_long = 241; +pub const SYS_recvmmsg: c_long = 243; +pub const SYS_fanotify_init: c_long = 262; +pub const SYS_fanotify_mark: c_long = 263; +pub const SYS_prlimit64: c_long = 261; +pub const SYS_name_to_handle_at: c_long = 264; +pub const SYS_open_by_handle_at: c_long = 265; +pub const SYS_clock_adjtime: c_long = 266; +pub const SYS_syncfs: c_long = 267; +pub const SYS_sendmmsg: c_long = 269; +pub const SYS_setns: c_long = 268; +pub const SYS_getcpu: c_long = 168; +pub const SYS_process_vm_readv: c_long = 270; +pub const SYS_process_vm_writev: c_long = 271; +pub const SYS_kcmp: c_long = 272; +pub const SYS_finit_module: c_long = 273; +pub const SYS_sched_setattr: c_long = 274; +pub const SYS_sched_getattr: c_long = 275; +pub const SYS_renameat2: c_long = 276; +pub const SYS_seccomp: c_long = 277; +pub const SYS_getrandom: c_long = 278; +pub const SYS_memfd_create: c_long = 279; +pub const SYS_bpf: c_long = 280; +pub const SYS_execveat: c_long = 281; +pub const SYS_userfaultfd: c_long = 282; +pub const SYS_membarrier: c_long = 283; +pub const SYS_mlock2: c_long = 284; +pub const SYS_copy_file_range: c_long = 285; +pub const SYS_preadv2: c_long = 286; +pub const SYS_pwritev2: c_long = 287; +pub const SYS_pkey_mprotect: c_long = 288; +pub const SYS_pkey_alloc: c_long = 289; +pub const SYS_pkey_free: c_long = 290; +pub const SYS_statx: c_long = 291; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 769077c465a62..6c68c3406cbe2 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -1,49 +1,51 @@ +use crate::{c_int, c_long, c_short, c_uint, c_ulong, c_ushort, c_void, off_t, size_t, ssize_t}; + pub type c_char = i8; pub type wchar_t = i32; s! { pub struct stat { - pub st_dev: ::dev_t, - __st_dev_padding: ::c_int, - __st_ino_truncated: ::c_long, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_rdev_padding: ::c_int, - 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, - pub st_ino: ::ino_t, + pub st_dev: crate::dev_t, + __st_dev_padding: c_int, + __st_ino_truncated: c_long, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __st_rdev_padding: c_int, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_ino: crate::ino_t, } pub struct stat64 { - pub st_dev: ::dev_t, - __st_dev_padding: ::c_int, - __st_ino_truncated: ::c_long, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_rdev_padding: ::c_int, - 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, - pub st_ino: ::ino_t, + pub st_dev: crate::dev_t, + __st_dev_padding: c_int, + __st_ino_truncated: c_long, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __st_rdev_padding: c_int, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_ino: crate::ino_t, } pub struct mcontext_t { @@ -51,80 +53,80 @@ s! { } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } 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_int, - __unused1: ::c_long, - __unused2: ::c_long, + pub __ipc_perm_key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub __seq: c_int, + __unused1: c_long, + __unused2: c_long, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - __unused1: ::c_int, - pub shm_dtime: ::time_t, - __unused2: ::c_int, - pub shm_ctime: ::time_t, - __unused3: ::c_int, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::c_ulong, - __pad1: ::c_ulong, - __pad2: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + __unused1: c_int, + pub shm_dtime: crate::time_t, + __unused2: c_int, + pub shm_ctime: crate::time_t, + __unused3: c_int, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: c_ulong, + __pad1: c_ulong, + __pad2: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - __unused1: ::c_int, - pub msg_rtime: ::time_t, - __unused2: ::c_int, - pub msg_ctime: ::time_t, - __unused3: ::c_int, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, + pub msg_perm: crate::ipc_perm, + pub msg_stime: crate::time_t, + __unused1: c_int, + pub msg_rtime: crate::time_t, + __unused2: c_int, + pub msg_ctime: crate::time_t, + __unused3: c_int, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __pad1: c_ulong, + __pad2: c_ulong, } } s_no_extra_traits! { pub struct user_fpxregs_struct { - pub cwd: ::c_ushort, - pub swd: ::c_ushort, - pub twd: ::c_ushort, - pub fop: ::c_ushort, - pub fip: ::c_long, - pub fcs: ::c_long, - pub foo: ::c_long, - pub fos: ::c_long, - pub mxcsr: ::c_long, - __reserved: ::c_long, - pub st_space: [::c_long; 32], - pub xmm_space: [::c_long; 32], - padding: [::c_long; 56], + pub cwd: c_ushort, + pub swd: c_ushort, + pub twd: c_ushort, + pub fop: c_ushort, + pub fip: c_long, + pub fcs: c_long, + pub foo: c_long, + pub fos: c_long, + pub mxcsr: c_long, + __reserved: c_long, + pub st_space: [c_long; 32], + pub xmm_space: [c_long; 32], + padding: [c_long; 56], } pub struct ucontext_t { - pub uc_flags: ::c_ulong, + pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, + pub uc_stack: crate::stack_t, pub uc_mcontext: mcontext_t, - pub uc_sigmask: ::sigset_t, + pub uc_sigmask: crate::sigset_t, __private: [u8; 112], } @@ -157,8 +159,8 @@ cfg_if! { impl Eq for user_fpxregs_struct {} - impl ::fmt::Debug for user_fpxregs_struct { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for user_fpxregs_struct { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("user_fpxregs_struct") .field("cwd", &self.cwd) .field("swd", &self.swd) @@ -177,8 +179,8 @@ cfg_if! { } } - impl ::hash::Hash for user_fpxregs_struct { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for user_fpxregs_struct { + fn hash(&self, state: &mut H) { self.cwd.hash(state); self.swd.hash(state); self.twd.hash(state); @@ -212,8 +214,8 @@ cfg_if! { impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -225,8 +227,8 @@ cfg_if! { } } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); @@ -238,29 +240,29 @@ cfg_if! { } } -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; - -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_LARGEFILE: ::c_int = 0o0100000; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::c_int = 0x00000800; -pub const TAB2: ::c_int = 0x00001000; -pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; + +pub const O_DIRECT: c_int = 0x4000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_NOFOLLOW: c_int = 0x20000; +pub const O_ASYNC: c_int = 0x2000; +pub const O_LARGEFILE: c_int = 0o0100000; + +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: c_int = 0x00000800; +pub const TAB2: c_int = 0x00001000; +pub const TAB3: c_int = 0x00001800; +pub const CR1: c_int = 0x00000200; +pub const CR2: c_int = 0x00000400; +pub const CR3: c_int = 0x00000600; +pub const FF1: c_int = 0x00008000; +pub const BS1: c_int = 0x00002000; +pub const VT1: c_int = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -268,647 +270,647 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; - -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EDEADLOCK: ::c_int = EDEADLK; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const EXTPROC: ::tcflag_t = 0x00010000; - -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_32BIT: ::c_int = 0x0040; - -pub const F_GETLK: ::c_int = 12; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 13; -pub const F_SETLKW: ::c_int = 14; -pub const F_SETOWN: ::c_int = 8; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; + +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; + +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_SYNC: c_int = 0x080000; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; + +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EDEADLOCK: c_int = EDEADLK; +pub const EMULTIHOP: c_int = 72; +pub const EBADMSG: c_int = 74; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const ERFKILL: c_int = 132; +pub const EHWPOISON: c_int = 133; + +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; + +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; + +pub const EXTPROC: crate::tcflag_t = 0x00010000; + +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_32BIT: c_int = 0x0040; + +pub const F_GETLK: c_int = 12; +pub const F_GETOWN: c_int = 9; +pub const F_SETLK: c_int = 13; +pub const F_SETLKW: c_int = 14; +pub const F_SETOWN: c_int = 8; pub const VEOF: usize = 4; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; -pub const PTRACE_SYSEMU: ::c_int = 31; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 32; +pub const PTRACE_SYSEMU: c_int = 31; +pub const PTRACE_SYSEMU_SINGLESTEP: c_int = 32; // Syscall table -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_waitpid: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_time: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_break: ::c_long = 17; -pub const SYS_oldstat: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_stime: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_oldfstat: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_stty: ::c_long = 31; -pub const SYS_gtty: ::c_long = 32; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_ftime: ::c_long = 35; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_prof: ::c_long = 44; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_lock: ::c_long = 53; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_mpx: ::c_long = 56; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_ulimit: ::c_long = 58; -pub const SYS_oldolduname: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sgetmask: ::c_long = 68; -pub const SYS_ssetmask: ::c_long = 69; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrlimit: ::c_long = 76; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_select: ::c_long = 82; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_oldlstat: ::c_long = 84; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_profil: ::c_long = 98; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_ioperm: ::c_long = 101; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_olduname: ::c_long = 109; -pub const SYS_iopl: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_vm86old: ::c_long = 113; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_modify_ldt: ::c_long = 123; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_vm86: ::c_long = 166; -pub const SYS_query_module: ::c_long = 167; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_setresgid: ::c_long = 170; -pub const SYS_getresgid: ::c_long = 171; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_chown: ::c_long = 182; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_getpmsg: ::c_long = 188; -pub const SYS_putpmsg: ::c_long = 189; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_ugetrlimit: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_lchown32: ::c_long = 198; -pub const SYS_getuid32: ::c_long = 199; -pub const SYS_getgid32: ::c_long = 200; -pub const SYS_geteuid32: ::c_long = 201; -pub const SYS_getegid32: ::c_long = 202; -pub const SYS_setreuid32: ::c_long = 203; -pub const SYS_setregid32: ::c_long = 204; -pub const SYS_getgroups32: ::c_long = 205; -pub const SYS_setgroups32: ::c_long = 206; -pub const SYS_fchown32: ::c_long = 207; -pub const SYS_setresuid32: ::c_long = 208; -pub const SYS_getresuid32: ::c_long = 209; -pub const SYS_setresgid32: ::c_long = 210; -pub const SYS_getresgid32: ::c_long = 211; -pub const SYS_chown32: ::c_long = 212; -pub const SYS_setuid32: ::c_long = 213; -pub const SYS_setgid32: ::c_long = 214; -pub const SYS_setfsuid32: ::c_long = 215; -pub const SYS_setfsgid32: ::c_long = 216; -pub const SYS_pivot_root: ::c_long = 217; -pub const SYS_mincore: ::c_long = 218; -pub const SYS_madvise: ::c_long = 219; -pub const SYS_getdents64: ::c_long = 220; -pub const SYS_fcntl64: ::c_long = 221; -pub const SYS_gettid: ::c_long = 224; -pub const SYS_readahead: ::c_long = 225; -pub const SYS_setxattr: ::c_long = 226; -pub const SYS_lsetxattr: ::c_long = 227; -pub const SYS_fsetxattr: ::c_long = 228; -pub const SYS_getxattr: ::c_long = 229; -pub const SYS_lgetxattr: ::c_long = 230; -pub const SYS_fgetxattr: ::c_long = 231; -pub const SYS_listxattr: ::c_long = 232; -pub const SYS_llistxattr: ::c_long = 233; -pub const SYS_flistxattr: ::c_long = 234; -pub const SYS_removexattr: ::c_long = 235; -pub const SYS_lremovexattr: ::c_long = 236; -pub const SYS_fremovexattr: ::c_long = 237; -pub const SYS_tkill: ::c_long = 238; -pub const SYS_sendfile64: ::c_long = 239; -pub const SYS_futex: ::c_long = 240; -pub const SYS_sched_setaffinity: ::c_long = 241; -pub const SYS_sched_getaffinity: ::c_long = 242; -pub const SYS_set_thread_area: ::c_long = 243; -pub const SYS_get_thread_area: ::c_long = 244; -pub const SYS_io_setup: ::c_long = 245; -pub const SYS_io_destroy: ::c_long = 246; -pub const SYS_io_getevents: ::c_long = 247; -pub const SYS_io_submit: ::c_long = 248; -pub const SYS_io_cancel: ::c_long = 249; -pub const SYS_fadvise64: ::c_long = 250; -pub const SYS_exit_group: ::c_long = 252; -pub const SYS_lookup_dcookie: ::c_long = 253; -pub const SYS_epoll_create: ::c_long = 254; -pub const SYS_epoll_ctl: ::c_long = 255; -pub const SYS_epoll_wait: ::c_long = 256; -pub const SYS_remap_file_pages: ::c_long = 257; -pub const SYS_set_tid_address: ::c_long = 258; -pub const SYS_timer_create: ::c_long = 259; -pub const SYS_timer_settime: ::c_long = 260; -pub const SYS_timer_gettime: ::c_long = 261; -pub const SYS_timer_getoverrun: ::c_long = 262; -pub const SYS_timer_delete: ::c_long = 263; -pub const SYS_clock_settime: ::c_long = 264; -pub const SYS_clock_gettime: ::c_long = 265; -pub const SYS_clock_getres: ::c_long = 266; -pub const SYS_clock_nanosleep: ::c_long = 267; -pub const SYS_statfs64: ::c_long = 268; -pub const SYS_fstatfs64: ::c_long = 269; -pub const SYS_tgkill: ::c_long = 270; -pub const SYS_utimes: ::c_long = 271; -pub const SYS_fadvise64_64: ::c_long = 272; -pub const SYS_vserver: ::c_long = 273; -pub const SYS_mbind: ::c_long = 274; -pub const SYS_get_mempolicy: ::c_long = 275; -pub const SYS_set_mempolicy: ::c_long = 276; -pub const SYS_mq_open: ::c_long = 277; -pub const SYS_mq_unlink: ::c_long = 278; -pub const SYS_mq_timedsend: ::c_long = 279; -pub const SYS_mq_timedreceive: ::c_long = 280; -pub const SYS_mq_notify: ::c_long = 281; -pub const SYS_mq_getsetattr: ::c_long = 282; -pub const SYS_kexec_load: ::c_long = 283; -pub const SYS_waitid: ::c_long = 284; -pub const SYS_add_key: ::c_long = 286; -pub const SYS_request_key: ::c_long = 287; -pub const SYS_keyctl: ::c_long = 288; -pub const SYS_ioprio_set: ::c_long = 289; -pub const SYS_ioprio_get: ::c_long = 290; -pub const SYS_inotify_init: ::c_long = 291; -pub const SYS_inotify_add_watch: ::c_long = 292; -pub const SYS_inotify_rm_watch: ::c_long = 293; -pub const SYS_migrate_pages: ::c_long = 294; -pub const SYS_openat: ::c_long = 295; -pub const SYS_mkdirat: ::c_long = 296; -pub const SYS_mknodat: ::c_long = 297; -pub const SYS_fchownat: ::c_long = 298; -pub const SYS_futimesat: ::c_long = 299; -pub const SYS_fstatat64: ::c_long = 300; -pub const SYS_unlinkat: ::c_long = 301; -pub const SYS_renameat: ::c_long = 302; -pub const SYS_linkat: ::c_long = 303; -pub const SYS_symlinkat: ::c_long = 304; -pub const SYS_readlinkat: ::c_long = 305; -pub const SYS_fchmodat: ::c_long = 306; -pub const SYS_faccessat: ::c_long = 307; -pub const SYS_pselect6: ::c_long = 308; -pub const SYS_ppoll: ::c_long = 309; -pub const SYS_unshare: ::c_long = 310; -pub const SYS_set_robust_list: ::c_long = 311; -pub const SYS_get_robust_list: ::c_long = 312; -pub const SYS_splice: ::c_long = 313; -pub const SYS_sync_file_range: ::c_long = 314; -pub const SYS_tee: ::c_long = 315; -pub const SYS_vmsplice: ::c_long = 316; -pub const SYS_move_pages: ::c_long = 317; -pub const SYS_getcpu: ::c_long = 318; -pub const SYS_epoll_pwait: ::c_long = 319; -pub const SYS_utimensat: ::c_long = 320; -pub const SYS_signalfd: ::c_long = 321; -pub const SYS_timerfd_create: ::c_long = 322; -pub const SYS_eventfd: ::c_long = 323; -pub const SYS_fallocate: ::c_long = 324; -pub const SYS_timerfd_settime: ::c_long = 325; -pub const SYS_timerfd_gettime: ::c_long = 326; -pub const SYS_signalfd4: ::c_long = 327; -pub const SYS_eventfd2: ::c_long = 328; -pub const SYS_epoll_create1: ::c_long = 329; -pub const SYS_dup3: ::c_long = 330; -pub const SYS_pipe2: ::c_long = 331; -pub const SYS_inotify_init1: ::c_long = 332; -pub const SYS_preadv: ::c_long = 333; -pub const SYS_pwritev: ::c_long = 334; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 335; -pub const SYS_perf_event_open: ::c_long = 336; -pub const SYS_recvmmsg: ::c_long = 337; -pub const SYS_fanotify_init: ::c_long = 338; -pub const SYS_fanotify_mark: ::c_long = 339; -pub const SYS_prlimit64: ::c_long = 340; -pub const SYS_name_to_handle_at: ::c_long = 341; -pub const SYS_open_by_handle_at: ::c_long = 342; -pub const SYS_clock_adjtime: ::c_long = 343; -pub const SYS_syncfs: ::c_long = 344; -pub const SYS_sendmmsg: ::c_long = 345; -pub const SYS_setns: ::c_long = 346; -pub const SYS_process_vm_readv: ::c_long = 347; -pub const SYS_process_vm_writev: ::c_long = 348; -pub const SYS_kcmp: ::c_long = 349; -pub const SYS_finit_module: ::c_long = 350; -pub const SYS_sched_setattr: ::c_long = 351; -pub const SYS_sched_getattr: ::c_long = 352; -pub const SYS_renameat2: ::c_long = 353; -pub const SYS_seccomp: ::c_long = 354; -pub const SYS_getrandom: ::c_long = 355; -pub const SYS_memfd_create: ::c_long = 356; -pub const SYS_bpf: ::c_long = 357; -pub const SYS_execveat: ::c_long = 358; -pub const SYS_socket: ::c_long = 359; -pub const SYS_socketpair: ::c_long = 360; -pub const SYS_bind: ::c_long = 361; -pub const SYS_connect: ::c_long = 362; -pub const SYS_listen: ::c_long = 363; -pub const SYS_accept4: ::c_long = 364; -pub const SYS_getsockopt: ::c_long = 365; -pub const SYS_setsockopt: ::c_long = 366; -pub const SYS_getsockname: ::c_long = 367; -pub const SYS_getpeername: ::c_long = 368; -pub const SYS_sendto: ::c_long = 369; -pub const SYS_sendmsg: ::c_long = 370; -pub const SYS_recvfrom: ::c_long = 371; -pub const SYS_recvmsg: ::c_long = 372; -pub const SYS_shutdown: ::c_long = 373; -pub const SYS_userfaultfd: ::c_long = 374; -pub const SYS_membarrier: ::c_long = 375; -pub const SYS_mlock2: ::c_long = 376; -pub const SYS_copy_file_range: ::c_long = 377; -pub const SYS_preadv2: ::c_long = 378; -pub const SYS_pwritev2: ::c_long = 379; -pub const SYS_pkey_mprotect: ::c_long = 380; -pub const SYS_pkey_alloc: ::c_long = 381; -pub const SYS_pkey_free: ::c_long = 382; -pub const SYS_statx: ::c_long = 383; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; -pub const SYS_fchmodat2: ::c_long = 452; +pub const SYS_restart_syscall: c_long = 0; +pub const SYS_exit: c_long = 1; +pub const SYS_fork: c_long = 2; +pub const SYS_read: c_long = 3; +pub const SYS_write: c_long = 4; +pub const SYS_open: c_long = 5; +pub const SYS_close: c_long = 6; +pub const SYS_waitpid: c_long = 7; +pub const SYS_creat: c_long = 8; +pub const SYS_link: c_long = 9; +pub const SYS_unlink: c_long = 10; +pub const SYS_execve: c_long = 11; +pub const SYS_chdir: c_long = 12; +pub const SYS_time: c_long = 13; +pub const SYS_mknod: c_long = 14; +pub const SYS_chmod: c_long = 15; +pub const SYS_lchown: c_long = 16; +pub const SYS_break: c_long = 17; +pub const SYS_oldstat: c_long = 18; +pub const SYS_lseek: c_long = 19; +pub const SYS_getpid: c_long = 20; +pub const SYS_mount: c_long = 21; +pub const SYS_umount: c_long = 22; +pub const SYS_setuid: c_long = 23; +pub const SYS_getuid: c_long = 24; +pub const SYS_stime: c_long = 25; +pub const SYS_ptrace: c_long = 26; +pub const SYS_alarm: c_long = 27; +pub const SYS_oldfstat: c_long = 28; +pub const SYS_pause: c_long = 29; +pub const SYS_utime: c_long = 30; +pub const SYS_stty: c_long = 31; +pub const SYS_gtty: c_long = 32; +pub const SYS_access: c_long = 33; +pub const SYS_nice: c_long = 34; +pub const SYS_ftime: c_long = 35; +pub const SYS_sync: c_long = 36; +pub const SYS_kill: c_long = 37; +pub const SYS_rename: c_long = 38; +pub const SYS_mkdir: c_long = 39; +pub const SYS_rmdir: c_long = 40; +pub const SYS_dup: c_long = 41; +pub const SYS_pipe: c_long = 42; +pub const SYS_times: c_long = 43; +pub const SYS_prof: c_long = 44; +pub const SYS_brk: c_long = 45; +pub const SYS_setgid: c_long = 46; +pub const SYS_getgid: c_long = 47; +pub const SYS_signal: c_long = 48; +pub const SYS_geteuid: c_long = 49; +pub const SYS_getegid: c_long = 50; +pub const SYS_acct: c_long = 51; +pub const SYS_umount2: c_long = 52; +pub const SYS_lock: c_long = 53; +pub const SYS_ioctl: c_long = 54; +pub const SYS_fcntl: c_long = 55; +pub const SYS_mpx: c_long = 56; +pub const SYS_setpgid: c_long = 57; +pub const SYS_ulimit: c_long = 58; +pub const SYS_oldolduname: c_long = 59; +pub const SYS_umask: c_long = 60; +pub const SYS_chroot: c_long = 61; +pub const SYS_ustat: c_long = 62; +pub const SYS_dup2: c_long = 63; +pub const SYS_getppid: c_long = 64; +pub const SYS_getpgrp: c_long = 65; +pub const SYS_setsid: c_long = 66; +pub const SYS_sigaction: c_long = 67; +pub const SYS_sgetmask: c_long = 68; +pub const SYS_ssetmask: c_long = 69; +pub const SYS_setreuid: c_long = 70; +pub const SYS_setregid: c_long = 71; +pub const SYS_sigsuspend: c_long = 72; +pub const SYS_sigpending: c_long = 73; +pub const SYS_sethostname: c_long = 74; +pub const SYS_setrlimit: c_long = 75; +pub const SYS_getrlimit: c_long = 76; +pub const SYS_getrusage: c_long = 77; +pub const SYS_gettimeofday: c_long = 78; +pub const SYS_settimeofday: c_long = 79; +pub const SYS_getgroups: c_long = 80; +pub const SYS_setgroups: c_long = 81; +pub const SYS_select: c_long = 82; +pub const SYS_symlink: c_long = 83; +pub const SYS_oldlstat: c_long = 84; +pub const SYS_readlink: c_long = 85; +pub const SYS_uselib: c_long = 86; +pub const SYS_swapon: c_long = 87; +pub const SYS_reboot: c_long = 88; +pub const SYS_readdir: c_long = 89; +pub const SYS_mmap: c_long = 90; +pub const SYS_munmap: c_long = 91; +pub const SYS_truncate: c_long = 92; +pub const SYS_ftruncate: c_long = 93; +pub const SYS_fchmod: c_long = 94; +pub const SYS_fchown: c_long = 95; +pub const SYS_getpriority: c_long = 96; +pub const SYS_setpriority: c_long = 97; +pub const SYS_profil: c_long = 98; +pub const SYS_statfs: c_long = 99; +pub const SYS_fstatfs: c_long = 100; +pub const SYS_ioperm: c_long = 101; +pub const SYS_socketcall: c_long = 102; +pub const SYS_syslog: c_long = 103; +pub const SYS_setitimer: c_long = 104; +pub const SYS_getitimer: c_long = 105; +pub const SYS_stat: c_long = 106; +pub const SYS_lstat: c_long = 107; +pub const SYS_fstat: c_long = 108; +pub const SYS_olduname: c_long = 109; +pub const SYS_iopl: c_long = 110; +pub const SYS_vhangup: c_long = 111; +pub const SYS_idle: c_long = 112; +pub const SYS_vm86old: c_long = 113; +pub const SYS_wait4: c_long = 114; +pub const SYS_swapoff: c_long = 115; +pub const SYS_sysinfo: c_long = 116; +pub const SYS_ipc: c_long = 117; +pub const SYS_fsync: c_long = 118; +pub const SYS_sigreturn: c_long = 119; +pub const SYS_clone: c_long = 120; +pub const SYS_setdomainname: c_long = 121; +pub const SYS_uname: c_long = 122; +pub const SYS_modify_ldt: c_long = 123; +pub const SYS_adjtimex: c_long = 124; +pub const SYS_mprotect: c_long = 125; +pub const SYS_sigprocmask: c_long = 126; +pub const SYS_create_module: c_long = 127; +pub const SYS_init_module: c_long = 128; +pub const SYS_delete_module: c_long = 129; +pub const SYS_get_kernel_syms: c_long = 130; +pub const SYS_quotactl: c_long = 131; +pub const SYS_getpgid: c_long = 132; +pub const SYS_fchdir: c_long = 133; +pub const SYS_bdflush: c_long = 134; +pub const SYS_sysfs: c_long = 135; +pub const SYS_personality: c_long = 136; +pub const SYS_afs_syscall: c_long = 137; +pub const SYS_setfsuid: c_long = 138; +pub const SYS_setfsgid: c_long = 139; +pub const SYS__llseek: c_long = 140; +pub const SYS_getdents: c_long = 141; +pub const SYS__newselect: c_long = 142; +pub const SYS_flock: c_long = 143; +pub const SYS_msync: c_long = 144; +pub const SYS_readv: c_long = 145; +pub const SYS_writev: c_long = 146; +pub const SYS_getsid: c_long = 147; +pub const SYS_fdatasync: c_long = 148; +pub const SYS__sysctl: c_long = 149; +pub const SYS_mlock: c_long = 150; +pub const SYS_munlock: c_long = 151; +pub const SYS_mlockall: c_long = 152; +pub const SYS_munlockall: c_long = 153; +pub const SYS_sched_setparam: c_long = 154; +pub const SYS_sched_getparam: c_long = 155; +pub const SYS_sched_setscheduler: c_long = 156; +pub const SYS_sched_getscheduler: c_long = 157; +pub const SYS_sched_yield: c_long = 158; +pub const SYS_sched_get_priority_max: c_long = 159; +pub const SYS_sched_get_priority_min: c_long = 160; +pub const SYS_sched_rr_get_interval: c_long = 161; +pub const SYS_nanosleep: c_long = 162; +pub const SYS_mremap: c_long = 163; +pub const SYS_setresuid: c_long = 164; +pub const SYS_getresuid: c_long = 165; +pub const SYS_vm86: c_long = 166; +pub const SYS_query_module: c_long = 167; +pub const SYS_poll: c_long = 168; +pub const SYS_nfsservctl: c_long = 169; +pub const SYS_setresgid: c_long = 170; +pub const SYS_getresgid: c_long = 171; +pub const SYS_prctl: c_long = 172; +pub const SYS_rt_sigreturn: c_long = 173; +pub const SYS_rt_sigaction: c_long = 174; +pub const SYS_rt_sigprocmask: c_long = 175; +pub const SYS_rt_sigpending: c_long = 176; +pub const SYS_rt_sigtimedwait: c_long = 177; +pub const SYS_rt_sigqueueinfo: c_long = 178; +pub const SYS_rt_sigsuspend: c_long = 179; +pub const SYS_pread64: c_long = 180; +pub const SYS_pwrite64: c_long = 181; +pub const SYS_chown: c_long = 182; +pub const SYS_getcwd: c_long = 183; +pub const SYS_capget: c_long = 184; +pub const SYS_capset: c_long = 185; +pub const SYS_sigaltstack: c_long = 186; +pub const SYS_sendfile: c_long = 187; +pub const SYS_getpmsg: c_long = 188; +pub const SYS_putpmsg: c_long = 189; +pub const SYS_vfork: c_long = 190; +pub const SYS_ugetrlimit: c_long = 191; +pub const SYS_mmap2: c_long = 192; +pub const SYS_truncate64: c_long = 193; +pub const SYS_ftruncate64: c_long = 194; +pub const SYS_stat64: c_long = 195; +pub const SYS_lstat64: c_long = 196; +pub const SYS_fstat64: c_long = 197; +pub const SYS_lchown32: c_long = 198; +pub const SYS_getuid32: c_long = 199; +pub const SYS_getgid32: c_long = 200; +pub const SYS_geteuid32: c_long = 201; +pub const SYS_getegid32: c_long = 202; +pub const SYS_setreuid32: c_long = 203; +pub const SYS_setregid32: c_long = 204; +pub const SYS_getgroups32: c_long = 205; +pub const SYS_setgroups32: c_long = 206; +pub const SYS_fchown32: c_long = 207; +pub const SYS_setresuid32: c_long = 208; +pub const SYS_getresuid32: c_long = 209; +pub const SYS_setresgid32: c_long = 210; +pub const SYS_getresgid32: c_long = 211; +pub const SYS_chown32: c_long = 212; +pub const SYS_setuid32: c_long = 213; +pub const SYS_setgid32: c_long = 214; +pub const SYS_setfsuid32: c_long = 215; +pub const SYS_setfsgid32: c_long = 216; +pub const SYS_pivot_root: c_long = 217; +pub const SYS_mincore: c_long = 218; +pub const SYS_madvise: c_long = 219; +pub const SYS_getdents64: c_long = 220; +pub const SYS_fcntl64: c_long = 221; +pub const SYS_gettid: c_long = 224; +pub const SYS_readahead: c_long = 225; +pub const SYS_setxattr: c_long = 226; +pub const SYS_lsetxattr: c_long = 227; +pub const SYS_fsetxattr: c_long = 228; +pub const SYS_getxattr: c_long = 229; +pub const SYS_lgetxattr: c_long = 230; +pub const SYS_fgetxattr: c_long = 231; +pub const SYS_listxattr: c_long = 232; +pub const SYS_llistxattr: c_long = 233; +pub const SYS_flistxattr: c_long = 234; +pub const SYS_removexattr: c_long = 235; +pub const SYS_lremovexattr: c_long = 236; +pub const SYS_fremovexattr: c_long = 237; +pub const SYS_tkill: c_long = 238; +pub const SYS_sendfile64: c_long = 239; +pub const SYS_futex: c_long = 240; +pub const SYS_sched_setaffinity: c_long = 241; +pub const SYS_sched_getaffinity: c_long = 242; +pub const SYS_set_thread_area: c_long = 243; +pub const SYS_get_thread_area: c_long = 244; +pub const SYS_io_setup: c_long = 245; +pub const SYS_io_destroy: c_long = 246; +pub const SYS_io_getevents: c_long = 247; +pub const SYS_io_submit: c_long = 248; +pub const SYS_io_cancel: c_long = 249; +pub const SYS_fadvise64: c_long = 250; +pub const SYS_exit_group: c_long = 252; +pub const SYS_lookup_dcookie: c_long = 253; +pub const SYS_epoll_create: c_long = 254; +pub const SYS_epoll_ctl: c_long = 255; +pub const SYS_epoll_wait: c_long = 256; +pub const SYS_remap_file_pages: c_long = 257; +pub const SYS_set_tid_address: c_long = 258; +pub const SYS_timer_create: c_long = 259; +pub const SYS_timer_settime: c_long = 260; +pub const SYS_timer_gettime: c_long = 261; +pub const SYS_timer_getoverrun: c_long = 262; +pub const SYS_timer_delete: c_long = 263; +pub const SYS_clock_settime: c_long = 264; +pub const SYS_clock_gettime: c_long = 265; +pub const SYS_clock_getres: c_long = 266; +pub const SYS_clock_nanosleep: c_long = 267; +pub const SYS_statfs64: c_long = 268; +pub const SYS_fstatfs64: c_long = 269; +pub const SYS_tgkill: c_long = 270; +pub const SYS_utimes: c_long = 271; +pub const SYS_fadvise64_64: c_long = 272; +pub const SYS_vserver: c_long = 273; +pub const SYS_mbind: c_long = 274; +pub const SYS_get_mempolicy: c_long = 275; +pub const SYS_set_mempolicy: c_long = 276; +pub const SYS_mq_open: c_long = 277; +pub const SYS_mq_unlink: c_long = 278; +pub const SYS_mq_timedsend: c_long = 279; +pub const SYS_mq_timedreceive: c_long = 280; +pub const SYS_mq_notify: c_long = 281; +pub const SYS_mq_getsetattr: c_long = 282; +pub const SYS_kexec_load: c_long = 283; +pub const SYS_waitid: c_long = 284; +pub const SYS_add_key: c_long = 286; +pub const SYS_request_key: c_long = 287; +pub const SYS_keyctl: c_long = 288; +pub const SYS_ioprio_set: c_long = 289; +pub const SYS_ioprio_get: c_long = 290; +pub const SYS_inotify_init: c_long = 291; +pub const SYS_inotify_add_watch: c_long = 292; +pub const SYS_inotify_rm_watch: c_long = 293; +pub const SYS_migrate_pages: c_long = 294; +pub const SYS_openat: c_long = 295; +pub const SYS_mkdirat: c_long = 296; +pub const SYS_mknodat: c_long = 297; +pub const SYS_fchownat: c_long = 298; +pub const SYS_futimesat: c_long = 299; +pub const SYS_fstatat64: c_long = 300; +pub const SYS_unlinkat: c_long = 301; +pub const SYS_renameat: c_long = 302; +pub const SYS_linkat: c_long = 303; +pub const SYS_symlinkat: c_long = 304; +pub const SYS_readlinkat: c_long = 305; +pub const SYS_fchmodat: c_long = 306; +pub const SYS_faccessat: c_long = 307; +pub const SYS_pselect6: c_long = 308; +pub const SYS_ppoll: c_long = 309; +pub const SYS_unshare: c_long = 310; +pub const SYS_set_robust_list: c_long = 311; +pub const SYS_get_robust_list: c_long = 312; +pub const SYS_splice: c_long = 313; +pub const SYS_sync_file_range: c_long = 314; +pub const SYS_tee: c_long = 315; +pub const SYS_vmsplice: c_long = 316; +pub const SYS_move_pages: c_long = 317; +pub const SYS_getcpu: c_long = 318; +pub const SYS_epoll_pwait: c_long = 319; +pub const SYS_utimensat: c_long = 320; +pub const SYS_signalfd: c_long = 321; +pub const SYS_timerfd_create: c_long = 322; +pub const SYS_eventfd: c_long = 323; +pub const SYS_fallocate: c_long = 324; +pub const SYS_timerfd_settime: c_long = 325; +pub const SYS_timerfd_gettime: c_long = 326; +pub const SYS_signalfd4: c_long = 327; +pub const SYS_eventfd2: c_long = 328; +pub const SYS_epoll_create1: c_long = 329; +pub const SYS_dup3: c_long = 330; +pub const SYS_pipe2: c_long = 331; +pub const SYS_inotify_init1: c_long = 332; +pub const SYS_preadv: c_long = 333; +pub const SYS_pwritev: c_long = 334; +pub const SYS_rt_tgsigqueueinfo: c_long = 335; +pub const SYS_perf_event_open: c_long = 336; +pub const SYS_recvmmsg: c_long = 337; +pub const SYS_fanotify_init: c_long = 338; +pub const SYS_fanotify_mark: c_long = 339; +pub const SYS_prlimit64: c_long = 340; +pub const SYS_name_to_handle_at: c_long = 341; +pub const SYS_open_by_handle_at: c_long = 342; +pub const SYS_clock_adjtime: c_long = 343; +pub const SYS_syncfs: c_long = 344; +pub const SYS_sendmmsg: c_long = 345; +pub const SYS_setns: c_long = 346; +pub const SYS_process_vm_readv: c_long = 347; +pub const SYS_process_vm_writev: c_long = 348; +pub const SYS_kcmp: c_long = 349; +pub const SYS_finit_module: c_long = 350; +pub const SYS_sched_setattr: c_long = 351; +pub const SYS_sched_getattr: c_long = 352; +pub const SYS_renameat2: c_long = 353; +pub const SYS_seccomp: c_long = 354; +pub const SYS_getrandom: c_long = 355; +pub const SYS_memfd_create: c_long = 356; +pub const SYS_bpf: c_long = 357; +pub const SYS_execveat: c_long = 358; +pub const SYS_socket: c_long = 359; +pub const SYS_socketpair: c_long = 360; +pub const SYS_bind: c_long = 361; +pub const SYS_connect: c_long = 362; +pub const SYS_listen: c_long = 363; +pub const SYS_accept4: c_long = 364; +pub const SYS_getsockopt: c_long = 365; +pub const SYS_setsockopt: c_long = 366; +pub const SYS_getsockname: c_long = 367; +pub const SYS_getpeername: c_long = 368; +pub const SYS_sendto: c_long = 369; +pub const SYS_sendmsg: c_long = 370; +pub const SYS_recvfrom: c_long = 371; +pub const SYS_recvmsg: c_long = 372; +pub const SYS_shutdown: c_long = 373; +pub const SYS_userfaultfd: c_long = 374; +pub const SYS_membarrier: c_long = 375; +pub const SYS_mlock2: c_long = 376; +pub const SYS_copy_file_range: c_long = 377; +pub const SYS_preadv2: c_long = 378; +pub const SYS_pwritev2: c_long = 379; +pub const SYS_pkey_mprotect: c_long = 380; +pub const SYS_pkey_alloc: c_long = 381; +pub const SYS_pkey_free: c_long = 382; +pub const SYS_statx: c_long = 383; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; +pub const SYS_fchmodat2: c_long = 452; // offsets in user_regs_structs, from sys/reg.h -pub const EBX: ::c_int = 0; -pub const ECX: ::c_int = 1; -pub const EDX: ::c_int = 2; -pub const ESI: ::c_int = 3; -pub const EDI: ::c_int = 4; -pub const EBP: ::c_int = 5; -pub const EAX: ::c_int = 6; -pub const DS: ::c_int = 7; -pub const ES: ::c_int = 8; -pub const FS: ::c_int = 9; -pub const GS: ::c_int = 10; -pub const ORIG_EAX: ::c_int = 11; -pub const EIP: ::c_int = 12; -pub const CS: ::c_int = 13; -pub const EFL: ::c_int = 14; -pub const UESP: ::c_int = 15; -pub const SS: ::c_int = 16; +pub const EBX: c_int = 0; +pub const ECX: c_int = 1; +pub const EDX: c_int = 2; +pub const ESI: c_int = 3; +pub const EDI: c_int = 4; +pub const EBP: c_int = 5; +pub const EAX: c_int = 6; +pub const DS: c_int = 7; +pub const ES: c_int = 8; +pub const FS: c_int = 9; +pub const GS: c_int = 10; +pub const ORIG_EAX: c_int = 11; +pub const EIP: c_int = 12; +pub const CS: c_int = 13; +pub const EFL: c_int = 14; +pub const UESP: c_int = 15; +pub const SS: c_int = 16; extern "C" { - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; + pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; } diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index 6528fa2d84e3e..7c5ecc6a2453e 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -1,109 +1,113 @@ +use crate::{ + c_int, c_long, c_longlong, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, off_t, size_t, +}; + pub type c_char = u8; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; pub type wchar_t = u32; pub type nlink_t = u32; -pub type blksize_t = ::c_int; +pub type blksize_t = c_int; s! { 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_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad0: ::c_ulong, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - __pad1: ::c_int, - 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_uint; 2], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad0: c_ulong, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + __pad1: c_int, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_uint; 2], } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad0: ::c_ulong, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - __pad1: ::c_int, - 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_uint; 2], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad0: c_ulong, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + __pad1: c_int, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_uint; 2], } pub struct user_regs_struct { - pub regs: [::c_ulonglong; 31], - pub sp: ::c_ulonglong, - pub pc: ::c_ulonglong, - pub pstate: ::c_ulonglong, + pub regs: [c_ulonglong; 31], + pub sp: c_ulonglong, + pub pc: c_ulonglong, + pub pstate: c_ulonglong, } 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, + pub __ipc_perm_key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub __seq: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } pub struct ucontext_t { - pub uc_flags: ::c_ulong, + pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, + pub uc_stack: crate::stack_t, + pub uc_sigmask: crate::sigset_t, pub uc_mcontext: mcontext_t, } #[repr(align(16))] pub struct mcontext_t { - pub fault_address: ::c_ulong, - pub regs: [::c_ulong; 31], - pub sp: ::c_ulong, - pub pc: ::c_ulong, - pub pstate: ::c_ulong, + pub fault_address: c_ulong, + pub regs: [c_ulong; 31], + pub sp: c_ulong, + pub pc: c_ulong, + pub pstate: c_ulong, __reserved: [u64; 512], } #[repr(align(8))] pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, + pub flags: c_ulonglong, + pub pidfd: c_ulonglong, + pub child_tid: c_ulonglong, + pub parent_tid: c_ulonglong, + pub exit_signal: c_ulonglong, + pub stack: c_ulonglong, + pub stack_size: c_ulonglong, + pub tls: c_ulonglong, + pub set_tid: c_ulonglong, + pub set_tid_size: c_ulonglong, + pub cgroup: c_ulonglong, } pub struct user_fpsimd_struct { - pub vregs: [::__uint128_t; 32], + pub vregs: [crate::__uint128_t; 32], pub fpsr: u32, pub fpcr: u32, } @@ -117,514 +121,514 @@ s_no_extra_traits! { } } -pub const O_APPEND: ::c_int = 1024; -pub const O_DIRECT: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_LARGEFILE: ::c_int = 0x20000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_ASYNC: ::c_int = 0x2000; +pub const O_APPEND: c_int = 1024; +pub const O_DIRECT: c_int = 0x10000; +pub const O_DIRECTORY: c_int = 0x4000; +pub const O_LARGEFILE: c_int = 0x20000; +pub const O_NOFOLLOW: c_int = 0x8000; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_ASYNC: c_int = 0x2000; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EBADMSG: c_int = 74; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const ERFKILL: c_int = 132; +pub const EHWPOISON: c_int = 133; // bits/hwcap.h -pub const HWCAP_FP: ::c_ulong = 1 << 0; -pub const HWCAP_ASIMD: ::c_ulong = 1 << 1; -pub const HWCAP_EVTSTRM: ::c_ulong = 1 << 2; -pub const HWCAP_AES: ::c_ulong = 1 << 3; -pub const HWCAP_PMULL: ::c_ulong = 1 << 4; -pub const HWCAP_SHA1: ::c_ulong = 1 << 5; -pub const HWCAP_SHA2: ::c_ulong = 1 << 6; -pub const HWCAP_CRC32: ::c_ulong = 1 << 7; -pub const HWCAP_ATOMICS: ::c_ulong = 1 << 8; -pub const HWCAP_FPHP: ::c_ulong = 1 << 9; -pub const HWCAP_ASIMDHP: ::c_ulong = 1 << 10; -pub const HWCAP_CPUID: ::c_ulong = 1 << 11; -pub const HWCAP_ASIMDRDM: ::c_ulong = 1 << 12; -pub const HWCAP_JSCVT: ::c_ulong = 1 << 13; -pub const HWCAP_FCMA: ::c_ulong = 1 << 14; -pub const HWCAP_LRCPC: ::c_ulong = 1 << 15; -pub const HWCAP_DCPOP: ::c_ulong = 1 << 16; -pub const HWCAP_SHA3: ::c_ulong = 1 << 17; -pub const HWCAP_SM3: ::c_ulong = 1 << 18; -pub const HWCAP_SM4: ::c_ulong = 1 << 19; -pub const HWCAP_ASIMDDP: ::c_ulong = 1 << 20; -pub const HWCAP_SHA512: ::c_ulong = 1 << 21; -pub const HWCAP_SVE: ::c_ulong = 1 << 22; -pub const HWCAP_ASIMDFHM: ::c_ulong = 1 << 23; -pub const HWCAP_DIT: ::c_ulong = 1 << 24; -pub const HWCAP_USCAT: ::c_ulong = 1 << 25; -pub const HWCAP_ILRCPC: ::c_ulong = 1 << 26; -pub const HWCAP_FLAGM: ::c_ulong = 1 << 27; -pub const HWCAP_SSBS: ::c_ulong = 1 << 28; -pub const HWCAP_SB: ::c_ulong = 1 << 29; -pub const HWCAP_PACA: ::c_ulong = 1 << 30; -pub const HWCAP_PACG: ::c_ulong = 1 << 31; +pub const HWCAP_FP: c_ulong = 1 << 0; +pub const HWCAP_ASIMD: c_ulong = 1 << 1; +pub const HWCAP_EVTSTRM: c_ulong = 1 << 2; +pub const HWCAP_AES: c_ulong = 1 << 3; +pub const HWCAP_PMULL: c_ulong = 1 << 4; +pub const HWCAP_SHA1: c_ulong = 1 << 5; +pub const HWCAP_SHA2: c_ulong = 1 << 6; +pub const HWCAP_CRC32: c_ulong = 1 << 7; +pub const HWCAP_ATOMICS: c_ulong = 1 << 8; +pub const HWCAP_FPHP: c_ulong = 1 << 9; +pub const HWCAP_ASIMDHP: c_ulong = 1 << 10; +pub const HWCAP_CPUID: c_ulong = 1 << 11; +pub const HWCAP_ASIMDRDM: c_ulong = 1 << 12; +pub const HWCAP_JSCVT: c_ulong = 1 << 13; +pub const HWCAP_FCMA: c_ulong = 1 << 14; +pub const HWCAP_LRCPC: c_ulong = 1 << 15; +pub const HWCAP_DCPOP: c_ulong = 1 << 16; +pub const HWCAP_SHA3: c_ulong = 1 << 17; +pub const HWCAP_SM3: c_ulong = 1 << 18; +pub const HWCAP_SM4: c_ulong = 1 << 19; +pub const HWCAP_ASIMDDP: c_ulong = 1 << 20; +pub const HWCAP_SHA512: c_ulong = 1 << 21; +pub const HWCAP_SVE: c_ulong = 1 << 22; +pub const HWCAP_ASIMDFHM: c_ulong = 1 << 23; +pub const HWCAP_DIT: c_ulong = 1 << 24; +pub const HWCAP_USCAT: c_ulong = 1 << 25; +pub const HWCAP_ILRCPC: c_ulong = 1 << 26; +pub const HWCAP_FLAGM: c_ulong = 1 << 27; +pub const HWCAP_SSBS: c_ulong = 1 << 28; +pub const HWCAP_SB: c_ulong = 1 << 29; +pub const HWCAP_PACA: c_ulong = 1 << 30; +pub const HWCAP_PACG: c_ulong = 1 << 31; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_SYNC: c_int = 0x080000; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; +pub const F_SETOWN: c_int = 8; pub const VEOF: usize = 4; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; -pub const MINSIGSTKSZ: ::size_t = 6144; -pub const SIGSTKSZ: ::size_t = 12288; +pub const MINSIGSTKSZ: size_t = 6144; +pub const SIGSTKSZ: size_t = 12288; -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_dup: ::c_long = 23; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_flock: ::c_long = 32; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_renameat: ::c_long = 38; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_mount: ::c_long = 40; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_statfs: ::c_long = 43; -pub const SYS_fstatfs: ::c_long = 44; -pub const SYS_truncate: ::c_long = 45; -pub const SYS_ftruncate: ::c_long = 46; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_openat: ::c_long = 56; -pub const SYS_close: ::c_long = 57; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_lseek: ::c_long = 62; -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_newfstatat: ::c_long = 79; -pub const SYS_fstat: ::c_long = 80; -pub const SYS_sync: ::c_long = 81; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_acct: ::c_long = 89; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_personality: ::c_long = 92; -pub const SYS_exit: ::c_long = 93; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_futex: ::c_long = 98; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_kill: ::c_long = 129; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_times: ::c_long = 153; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_uname: ::c_long = 160; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_setrlimit: ::c_long = 164; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_umask: ::c_long = 166; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_semop: ::c_long = 193; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_socket: ::c_long = 198; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_accept: ::c_long = 202; -pub const SYS_connect: ::c_long = 203; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_brk: ::c_long = 214; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_mmap: ::c_long = 222; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_setns: ::c_long = 268; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_io_pgetevents: ::c_long = 292; -pub const SYS_rseq: ::c_long = 293; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; -pub const SYS_mseal: ::c_long = 462; +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const SYS_io_setup: c_long = 0; +pub const SYS_io_destroy: c_long = 1; +pub const SYS_io_submit: c_long = 2; +pub const SYS_io_cancel: c_long = 3; +pub const SYS_io_getevents: c_long = 4; +pub const SYS_setxattr: c_long = 5; +pub const SYS_lsetxattr: c_long = 6; +pub const SYS_fsetxattr: c_long = 7; +pub const SYS_getxattr: c_long = 8; +pub const SYS_lgetxattr: c_long = 9; +pub const SYS_fgetxattr: c_long = 10; +pub const SYS_listxattr: c_long = 11; +pub const SYS_llistxattr: c_long = 12; +pub const SYS_flistxattr: c_long = 13; +pub const SYS_removexattr: c_long = 14; +pub const SYS_lremovexattr: c_long = 15; +pub const SYS_fremovexattr: c_long = 16; +pub const SYS_getcwd: c_long = 17; +pub const SYS_lookup_dcookie: c_long = 18; +pub const SYS_eventfd2: c_long = 19; +pub const SYS_epoll_create1: c_long = 20; +pub const SYS_epoll_ctl: c_long = 21; +pub const SYS_epoll_pwait: c_long = 22; +pub const SYS_dup: c_long = 23; +pub const SYS_dup3: c_long = 24; +pub const SYS_fcntl: c_long = 25; +pub const SYS_inotify_init1: c_long = 26; +pub const SYS_inotify_add_watch: c_long = 27; +pub const SYS_inotify_rm_watch: c_long = 28; +pub const SYS_ioctl: c_long = 29; +pub const SYS_ioprio_set: c_long = 30; +pub const SYS_ioprio_get: c_long = 31; +pub const SYS_flock: c_long = 32; +pub const SYS_mknodat: c_long = 33; +pub const SYS_mkdirat: c_long = 34; +pub const SYS_unlinkat: c_long = 35; +pub const SYS_symlinkat: c_long = 36; +pub const SYS_linkat: c_long = 37; +pub const SYS_renameat: c_long = 38; +pub const SYS_umount2: c_long = 39; +pub const SYS_mount: c_long = 40; +pub const SYS_pivot_root: c_long = 41; +pub const SYS_nfsservctl: c_long = 42; +pub const SYS_statfs: c_long = 43; +pub const SYS_fstatfs: c_long = 44; +pub const SYS_truncate: c_long = 45; +pub const SYS_ftruncate: c_long = 46; +pub const SYS_fallocate: c_long = 47; +pub const SYS_faccessat: c_long = 48; +pub const SYS_chdir: c_long = 49; +pub const SYS_fchdir: c_long = 50; +pub const SYS_chroot: c_long = 51; +pub const SYS_fchmod: c_long = 52; +pub const SYS_fchmodat: c_long = 53; +pub const SYS_fchownat: c_long = 54; +pub const SYS_fchown: c_long = 55; +pub const SYS_openat: c_long = 56; +pub const SYS_close: c_long = 57; +pub const SYS_vhangup: c_long = 58; +pub const SYS_pipe2: c_long = 59; +pub const SYS_quotactl: c_long = 60; +pub const SYS_getdents64: c_long = 61; +pub const SYS_lseek: c_long = 62; +pub const SYS_read: c_long = 63; +pub const SYS_write: c_long = 64; +pub const SYS_readv: c_long = 65; +pub const SYS_writev: c_long = 66; +pub const SYS_pread64: c_long = 67; +pub const SYS_pwrite64: c_long = 68; +pub const SYS_preadv: c_long = 69; +pub const SYS_pwritev: c_long = 70; +pub const SYS_pselect6: c_long = 72; +pub const SYS_ppoll: c_long = 73; +pub const SYS_signalfd4: c_long = 74; +pub const SYS_vmsplice: c_long = 75; +pub const SYS_splice: c_long = 76; +pub const SYS_tee: c_long = 77; +pub const SYS_readlinkat: c_long = 78; +pub const SYS_newfstatat: c_long = 79; +pub const SYS_fstat: c_long = 80; +pub const SYS_sync: c_long = 81; +pub const SYS_fsync: c_long = 82; +pub const SYS_fdatasync: c_long = 83; +pub const SYS_sync_file_range: c_long = 84; +pub const SYS_timerfd_create: c_long = 85; +pub const SYS_timerfd_settime: c_long = 86; +pub const SYS_timerfd_gettime: c_long = 87; +pub const SYS_utimensat: c_long = 88; +pub const SYS_acct: c_long = 89; +pub const SYS_capget: c_long = 90; +pub const SYS_capset: c_long = 91; +pub const SYS_personality: c_long = 92; +pub const SYS_exit: c_long = 93; +pub const SYS_exit_group: c_long = 94; +pub const SYS_waitid: c_long = 95; +pub const SYS_set_tid_address: c_long = 96; +pub const SYS_unshare: c_long = 97; +pub const SYS_futex: c_long = 98; +pub const SYS_set_robust_list: c_long = 99; +pub const SYS_get_robust_list: c_long = 100; +pub const SYS_nanosleep: c_long = 101; +pub const SYS_getitimer: c_long = 102; +pub const SYS_setitimer: c_long = 103; +pub const SYS_kexec_load: c_long = 104; +pub const SYS_init_module: c_long = 105; +pub const SYS_delete_module: c_long = 106; +pub const SYS_timer_create: c_long = 107; +pub const SYS_timer_gettime: c_long = 108; +pub const SYS_timer_getoverrun: c_long = 109; +pub const SYS_timer_settime: c_long = 110; +pub const SYS_timer_delete: c_long = 111; +pub const SYS_clock_settime: c_long = 112; +pub const SYS_clock_gettime: c_long = 113; +pub const SYS_clock_getres: c_long = 114; +pub const SYS_clock_nanosleep: c_long = 115; +pub const SYS_syslog: c_long = 116; +pub const SYS_ptrace: c_long = 117; +pub const SYS_sched_setparam: c_long = 118; +pub const SYS_sched_setscheduler: c_long = 119; +pub const SYS_sched_getscheduler: c_long = 120; +pub const SYS_sched_getparam: c_long = 121; +pub const SYS_sched_setaffinity: c_long = 122; +pub const SYS_sched_getaffinity: c_long = 123; +pub const SYS_sched_yield: c_long = 124; +pub const SYS_sched_get_priority_max: c_long = 125; +pub const SYS_sched_get_priority_min: c_long = 126; +pub const SYS_sched_rr_get_interval: c_long = 127; +pub const SYS_restart_syscall: c_long = 128; +pub const SYS_kill: c_long = 129; +pub const SYS_tkill: c_long = 130; +pub const SYS_tgkill: c_long = 131; +pub const SYS_sigaltstack: c_long = 132; +pub const SYS_rt_sigsuspend: c_long = 133; +pub const SYS_rt_sigaction: c_long = 134; +pub const SYS_rt_sigprocmask: c_long = 135; +pub const SYS_rt_sigpending: c_long = 136; +pub const SYS_rt_sigtimedwait: c_long = 137; +pub const SYS_rt_sigqueueinfo: c_long = 138; +pub const SYS_rt_sigreturn: c_long = 139; +pub const SYS_setpriority: c_long = 140; +pub const SYS_getpriority: c_long = 141; +pub const SYS_reboot: c_long = 142; +pub const SYS_setregid: c_long = 143; +pub const SYS_setgid: c_long = 144; +pub const SYS_setreuid: c_long = 145; +pub const SYS_setuid: c_long = 146; +pub const SYS_setresuid: c_long = 147; +pub const SYS_getresuid: c_long = 148; +pub const SYS_setresgid: c_long = 149; +pub const SYS_getresgid: c_long = 150; +pub const SYS_setfsuid: c_long = 151; +pub const SYS_setfsgid: c_long = 152; +pub const SYS_times: c_long = 153; +pub const SYS_setpgid: c_long = 154; +pub const SYS_getpgid: c_long = 155; +pub const SYS_getsid: c_long = 156; +pub const SYS_setsid: c_long = 157; +pub const SYS_getgroups: c_long = 158; +pub const SYS_setgroups: c_long = 159; +pub const SYS_uname: c_long = 160; +pub const SYS_sethostname: c_long = 161; +pub const SYS_setdomainname: c_long = 162; +pub const SYS_getrlimit: c_long = 163; +pub const SYS_setrlimit: c_long = 164; +pub const SYS_getrusage: c_long = 165; +pub const SYS_umask: c_long = 166; +pub const SYS_prctl: c_long = 167; +pub const SYS_getcpu: c_long = 168; +pub const SYS_gettimeofday: c_long = 169; +pub const SYS_settimeofday: c_long = 170; +pub const SYS_adjtimex: c_long = 171; +pub const SYS_getpid: c_long = 172; +pub const SYS_getppid: c_long = 173; +pub const SYS_getuid: c_long = 174; +pub const SYS_geteuid: c_long = 175; +pub const SYS_getgid: c_long = 176; +pub const SYS_getegid: c_long = 177; +pub const SYS_gettid: c_long = 178; +pub const SYS_sysinfo: c_long = 179; +pub const SYS_mq_open: c_long = 180; +pub const SYS_mq_unlink: c_long = 181; +pub const SYS_mq_timedsend: c_long = 182; +pub const SYS_mq_timedreceive: c_long = 183; +pub const SYS_mq_notify: c_long = 184; +pub const SYS_mq_getsetattr: c_long = 185; +pub const SYS_msgget: c_long = 186; +pub const SYS_msgctl: c_long = 187; +pub const SYS_msgrcv: c_long = 188; +pub const SYS_msgsnd: c_long = 189; +pub const SYS_semget: c_long = 190; +pub const SYS_semctl: c_long = 191; +pub const SYS_semtimedop: c_long = 192; +pub const SYS_semop: c_long = 193; +pub const SYS_shmget: c_long = 194; +pub const SYS_shmctl: c_long = 195; +pub const SYS_shmat: c_long = 196; +pub const SYS_shmdt: c_long = 197; +pub const SYS_socket: c_long = 198; +pub const SYS_socketpair: c_long = 199; +pub const SYS_bind: c_long = 200; +pub const SYS_listen: c_long = 201; +pub const SYS_accept: c_long = 202; +pub const SYS_connect: c_long = 203; +pub const SYS_getsockname: c_long = 204; +pub const SYS_getpeername: c_long = 205; +pub const SYS_sendto: c_long = 206; +pub const SYS_recvfrom: c_long = 207; +pub const SYS_setsockopt: c_long = 208; +pub const SYS_getsockopt: c_long = 209; +pub const SYS_shutdown: c_long = 210; +pub const SYS_sendmsg: c_long = 211; +pub const SYS_recvmsg: c_long = 212; +pub const SYS_readahead: c_long = 213; +pub const SYS_brk: c_long = 214; +pub const SYS_munmap: c_long = 215; +pub const SYS_mremap: c_long = 216; +pub const SYS_add_key: c_long = 217; +pub const SYS_request_key: c_long = 218; +pub const SYS_keyctl: c_long = 219; +pub const SYS_clone: c_long = 220; +pub const SYS_execve: c_long = 221; +pub const SYS_mmap: c_long = 222; +pub const SYS_swapon: c_long = 224; +pub const SYS_swapoff: c_long = 225; +pub const SYS_mprotect: c_long = 226; +pub const SYS_msync: c_long = 227; +pub const SYS_mlock: c_long = 228; +pub const SYS_munlock: c_long = 229; +pub const SYS_mlockall: c_long = 230; +pub const SYS_munlockall: c_long = 231; +pub const SYS_mincore: c_long = 232; +pub const SYS_madvise: c_long = 233; +pub const SYS_remap_file_pages: c_long = 234; +pub const SYS_mbind: c_long = 235; +pub const SYS_get_mempolicy: c_long = 236; +pub const SYS_set_mempolicy: c_long = 237; +pub const SYS_migrate_pages: c_long = 238; +pub const SYS_move_pages: c_long = 239; +pub const SYS_rt_tgsigqueueinfo: c_long = 240; +pub const SYS_perf_event_open: c_long = 241; +pub const SYS_accept4: c_long = 242; +pub const SYS_recvmmsg: c_long = 243; +pub const SYS_wait4: c_long = 260; +pub const SYS_prlimit64: c_long = 261; +pub const SYS_fanotify_init: c_long = 262; +pub const SYS_fanotify_mark: c_long = 263; +pub const SYS_name_to_handle_at: c_long = 264; +pub const SYS_open_by_handle_at: c_long = 265; +pub const SYS_clock_adjtime: c_long = 266; +pub const SYS_syncfs: c_long = 267; +pub const SYS_setns: c_long = 268; +pub const SYS_sendmmsg: c_long = 269; +pub const SYS_process_vm_readv: c_long = 270; +pub const SYS_process_vm_writev: c_long = 271; +pub const SYS_kcmp: c_long = 272; +pub const SYS_finit_module: c_long = 273; +pub const SYS_sched_setattr: c_long = 274; +pub const SYS_sched_getattr: c_long = 275; +pub const SYS_renameat2: c_long = 276; +pub const SYS_seccomp: c_long = 277; +pub const SYS_getrandom: c_long = 278; +pub const SYS_memfd_create: c_long = 279; +pub const SYS_bpf: c_long = 280; +pub const SYS_execveat: c_long = 281; +pub const SYS_userfaultfd: c_long = 282; +pub const SYS_membarrier: c_long = 283; +pub const SYS_mlock2: c_long = 284; +pub const SYS_copy_file_range: c_long = 285; +pub const SYS_preadv2: c_long = 286; +pub const SYS_pwritev2: c_long = 287; +pub const SYS_pkey_mprotect: c_long = 288; +pub const SYS_pkey_alloc: c_long = 289; +pub const SYS_pkey_free: c_long = 290; +pub const SYS_statx: c_long = 291; +pub const SYS_io_pgetevents: c_long = 292; +pub const SYS_rseq: c_long = 293; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; +pub const SYS_mseal: c_long = 462; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::c_int = 0x00000800; -pub const TAB2: ::c_int = 0x00001000; -pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: c_int = 0x00000800; +pub const TAB2: c_int = 0x00001000; +pub const TAB3: c_int = 0x00001800; +pub const CR1: c_int = 0x00000200; +pub const CR2: c_int = 0x00000400; +pub const CR3: c_int = 0x00000600; +pub const FF1: c_int = 0x00008000; +pub const BS1: c_int = 0x00002000; +pub const VT1: c_int = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -632,63 +636,63 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; -pub const EDEADLK: ::c_int = 35; -pub const EDEADLOCK: ::c_int = EDEADLK; +pub const EDEADLK: c_int = 35; +pub const EDEADLOCK: c_int = EDEADLK; -pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const EXTPROC: crate::tcflag_t = 0x00010000; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index f2fe5fe1a23d2..1de3fdb123ac6 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -1,71 +1,76 @@ //! LoongArch-specific definitions for 64-bit linux-like values +use crate::{ + c_int, c_long, c_longlong, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, off64_t, off_t, + size_t, +}; + pub type c_char = i8; -pub type wchar_t = ::c_int; +pub type wchar_t = c_int; -pub type nlink_t = ::c_uint; -pub type blksize_t = ::c_int; -pub type fsblkcnt64_t = ::c_ulong; -pub type fsfilcnt64_t = ::c_ulong; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; +pub type nlink_t = c_uint; +pub type blksize_t = c_int; +pub type fsblkcnt64_t = c_ulong; +pub type fsfilcnt64_t = c_ulong; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; s! { 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_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad1: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - __pad2: ::c_int, - 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_int; 2usize], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad1: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + __pad2: c_int, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_int; 2usize], } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - 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_int; 2], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino64_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub __pad1: crate::dev_t, + pub st_size: off64_t, + pub st_blksize: crate::blksize_t, + pub __pad2: c_int, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_int; 2], } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_uint, - pub __seq: ::c_int, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: c_uint, + pub __seq: c_int, + __pad2: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } pub struct user_regs_struct { @@ -83,34 +88,34 @@ s! { } pub struct ucontext_t { - pub uc_flags: ::c_ulong, + pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, + pub uc_stack: crate::stack_t, + pub uc_sigmask: crate::sigset_t, pub uc_mcontext: mcontext_t, } #[repr(align(16))] pub struct mcontext_t { - pub __pc: ::c_ulong, - pub __gregs: [::c_ulong; 32], - pub __flags: ::c_uint, - pub __extcontext: [::c_ulong; 0], + pub __pc: c_ulong, + pub __gregs: [c_ulong; 32], + pub __flags: c_uint, + pub __extcontext: [c_ulong; 0], } #[repr(align(8))] pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, + pub flags: c_ulonglong, + pub pidfd: c_ulonglong, + pub child_tid: c_ulonglong, + pub parent_tid: c_ulonglong, + pub exit_signal: c_ulonglong, + pub stack: c_ulonglong, + pub stack_size: c_ulonglong, + pub tls: c_ulonglong, + pub set_tid: c_ulonglong, + pub set_tid_size: c_ulonglong, + pub cgroup: c_ulonglong, } } @@ -122,482 +127,482 @@ s_no_extra_traits! { } } -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_dup: ::c_long = 23; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_flock: ::c_long = 32; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_mount: ::c_long = 40; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_statfs: ::c_long = 43; -pub const SYS_fstatfs: ::c_long = 44; -pub const SYS_truncate: ::c_long = 45; -pub const SYS_ftruncate: ::c_long = 46; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_openat: ::c_long = 56; -pub const SYS_close: ::c_long = 57; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_lseek: ::c_long = 62; -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_sendfile: ::c_long = 71; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_sync: ::c_long = 81; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_acct: ::c_long = 89; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_personality: ::c_long = 92; -pub const SYS_exit: ::c_long = 93; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_futex: ::c_long = 98; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_kill: ::c_long = 129; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_times: ::c_long = 153; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_uname: ::c_long = 160; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_umask: ::c_long = 166; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_semop: ::c_long = 193; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_socket: ::c_long = 198; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_accept: ::c_long = 202; -pub const SYS_connect: ::c_long = 203; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_brk: ::c_long = 214; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_mmap: ::c_long = 222; -pub const SYS_fadvise64: ::c_long = 223; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_arch_specific_syscall: ::c_long = 244; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_setns: ::c_long = 268; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_io_pgetevents: ::c_long = 292; -pub const SYS_rseq: ::c_long = 293; -pub const SYS_kexec_file_load: ::c_long = 294; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; -pub const SYS_cachestat: ::c_long = 451; -pub const SYS_fchmodat2: ::c_long = 452; -pub const SYS_map_shadow_stack: ::c_long = 453; -pub const SYS_futex_wake: ::c_long = 454; -pub const SYS_futex_wait: ::c_long = 455; -pub const SYS_futex_requeue: ::c_long = 456; +pub const SYS_io_setup: c_long = 0; +pub const SYS_io_destroy: c_long = 1; +pub const SYS_io_submit: c_long = 2; +pub const SYS_io_cancel: c_long = 3; +pub const SYS_io_getevents: c_long = 4; +pub const SYS_setxattr: c_long = 5; +pub const SYS_lsetxattr: c_long = 6; +pub const SYS_fsetxattr: c_long = 7; +pub const SYS_getxattr: c_long = 8; +pub const SYS_lgetxattr: c_long = 9; +pub const SYS_fgetxattr: c_long = 10; +pub const SYS_listxattr: c_long = 11; +pub const SYS_llistxattr: c_long = 12; +pub const SYS_flistxattr: c_long = 13; +pub const SYS_removexattr: c_long = 14; +pub const SYS_lremovexattr: c_long = 15; +pub const SYS_fremovexattr: c_long = 16; +pub const SYS_getcwd: c_long = 17; +pub const SYS_lookup_dcookie: c_long = 18; +pub const SYS_eventfd2: c_long = 19; +pub const SYS_epoll_create1: c_long = 20; +pub const SYS_epoll_ctl: c_long = 21; +pub const SYS_epoll_pwait: c_long = 22; +pub const SYS_dup: c_long = 23; +pub const SYS_dup3: c_long = 24; +pub const SYS_fcntl: c_long = 25; +pub const SYS_inotify_init1: c_long = 26; +pub const SYS_inotify_add_watch: c_long = 27; +pub const SYS_inotify_rm_watch: c_long = 28; +pub const SYS_ioctl: c_long = 29; +pub const SYS_ioprio_set: c_long = 30; +pub const SYS_ioprio_get: c_long = 31; +pub const SYS_flock: c_long = 32; +pub const SYS_mknodat: c_long = 33; +pub const SYS_mkdirat: c_long = 34; +pub const SYS_unlinkat: c_long = 35; +pub const SYS_symlinkat: c_long = 36; +pub const SYS_linkat: c_long = 37; +pub const SYS_umount2: c_long = 39; +pub const SYS_mount: c_long = 40; +pub const SYS_pivot_root: c_long = 41; +pub const SYS_nfsservctl: c_long = 42; +pub const SYS_statfs: c_long = 43; +pub const SYS_fstatfs: c_long = 44; +pub const SYS_truncate: c_long = 45; +pub const SYS_ftruncate: c_long = 46; +pub const SYS_fallocate: c_long = 47; +pub const SYS_faccessat: c_long = 48; +pub const SYS_chdir: c_long = 49; +pub const SYS_fchdir: c_long = 50; +pub const SYS_chroot: c_long = 51; +pub const SYS_fchmod: c_long = 52; +pub const SYS_fchmodat: c_long = 53; +pub const SYS_fchownat: c_long = 54; +pub const SYS_fchown: c_long = 55; +pub const SYS_openat: c_long = 56; +pub const SYS_close: c_long = 57; +pub const SYS_vhangup: c_long = 58; +pub const SYS_pipe2: c_long = 59; +pub const SYS_quotactl: c_long = 60; +pub const SYS_getdents64: c_long = 61; +pub const SYS_lseek: c_long = 62; +pub const SYS_read: c_long = 63; +pub const SYS_write: c_long = 64; +pub const SYS_readv: c_long = 65; +pub const SYS_writev: c_long = 66; +pub const SYS_pread64: c_long = 67; +pub const SYS_pwrite64: c_long = 68; +pub const SYS_preadv: c_long = 69; +pub const SYS_pwritev: c_long = 70; +pub const SYS_sendfile: c_long = 71; +pub const SYS_pselect6: c_long = 72; +pub const SYS_ppoll: c_long = 73; +pub const SYS_signalfd4: c_long = 74; +pub const SYS_vmsplice: c_long = 75; +pub const SYS_splice: c_long = 76; +pub const SYS_tee: c_long = 77; +pub const SYS_readlinkat: c_long = 78; +pub const SYS_sync: c_long = 81; +pub const SYS_fsync: c_long = 82; +pub const SYS_fdatasync: c_long = 83; +pub const SYS_sync_file_range: c_long = 84; +pub const SYS_timerfd_create: c_long = 85; +pub const SYS_timerfd_settime: c_long = 86; +pub const SYS_timerfd_gettime: c_long = 87; +pub const SYS_utimensat: c_long = 88; +pub const SYS_acct: c_long = 89; +pub const SYS_capget: c_long = 90; +pub const SYS_capset: c_long = 91; +pub const SYS_personality: c_long = 92; +pub const SYS_exit: c_long = 93; +pub const SYS_exit_group: c_long = 94; +pub const SYS_waitid: c_long = 95; +pub const SYS_set_tid_address: c_long = 96; +pub const SYS_unshare: c_long = 97; +pub const SYS_futex: c_long = 98; +pub const SYS_set_robust_list: c_long = 99; +pub const SYS_get_robust_list: c_long = 100; +pub const SYS_nanosleep: c_long = 101; +pub const SYS_getitimer: c_long = 102; +pub const SYS_setitimer: c_long = 103; +pub const SYS_kexec_load: c_long = 104; +pub const SYS_init_module: c_long = 105; +pub const SYS_delete_module: c_long = 106; +pub const SYS_timer_create: c_long = 107; +pub const SYS_timer_gettime: c_long = 108; +pub const SYS_timer_getoverrun: c_long = 109; +pub const SYS_timer_settime: c_long = 110; +pub const SYS_timer_delete: c_long = 111; +pub const SYS_clock_settime: c_long = 112; +pub const SYS_clock_gettime: c_long = 113; +pub const SYS_clock_getres: c_long = 114; +pub const SYS_clock_nanosleep: c_long = 115; +pub const SYS_syslog: c_long = 116; +pub const SYS_ptrace: c_long = 117; +pub const SYS_sched_setparam: c_long = 118; +pub const SYS_sched_setscheduler: c_long = 119; +pub const SYS_sched_getscheduler: c_long = 120; +pub const SYS_sched_getparam: c_long = 121; +pub const SYS_sched_setaffinity: c_long = 122; +pub const SYS_sched_getaffinity: c_long = 123; +pub const SYS_sched_yield: c_long = 124; +pub const SYS_sched_get_priority_max: c_long = 125; +pub const SYS_sched_get_priority_min: c_long = 126; +pub const SYS_sched_rr_get_interval: c_long = 127; +pub const SYS_restart_syscall: c_long = 128; +pub const SYS_kill: c_long = 129; +pub const SYS_tkill: c_long = 130; +pub const SYS_tgkill: c_long = 131; +pub const SYS_sigaltstack: c_long = 132; +pub const SYS_rt_sigsuspend: c_long = 133; +pub const SYS_rt_sigaction: c_long = 134; +pub const SYS_rt_sigprocmask: c_long = 135; +pub const SYS_rt_sigpending: c_long = 136; +pub const SYS_rt_sigtimedwait: c_long = 137; +pub const SYS_rt_sigqueueinfo: c_long = 138; +pub const SYS_rt_sigreturn: c_long = 139; +pub const SYS_setpriority: c_long = 140; +pub const SYS_getpriority: c_long = 141; +pub const SYS_reboot: c_long = 142; +pub const SYS_setregid: c_long = 143; +pub const SYS_setgid: c_long = 144; +pub const SYS_setreuid: c_long = 145; +pub const SYS_setuid: c_long = 146; +pub const SYS_setresuid: c_long = 147; +pub const SYS_getresuid: c_long = 148; +pub const SYS_setresgid: c_long = 149; +pub const SYS_getresgid: c_long = 150; +pub const SYS_setfsuid: c_long = 151; +pub const SYS_setfsgid: c_long = 152; +pub const SYS_times: c_long = 153; +pub const SYS_setpgid: c_long = 154; +pub const SYS_getpgid: c_long = 155; +pub const SYS_getsid: c_long = 156; +pub const SYS_setsid: c_long = 157; +pub const SYS_getgroups: c_long = 158; +pub const SYS_setgroups: c_long = 159; +pub const SYS_uname: c_long = 160; +pub const SYS_sethostname: c_long = 161; +pub const SYS_setdomainname: c_long = 162; +pub const SYS_getrusage: c_long = 165; +pub const SYS_umask: c_long = 166; +pub const SYS_prctl: c_long = 167; +pub const SYS_getcpu: c_long = 168; +pub const SYS_gettimeofday: c_long = 169; +pub const SYS_settimeofday: c_long = 170; +pub const SYS_adjtimex: c_long = 171; +pub const SYS_getpid: c_long = 172; +pub const SYS_getppid: c_long = 173; +pub const SYS_getuid: c_long = 174; +pub const SYS_geteuid: c_long = 175; +pub const SYS_getgid: c_long = 176; +pub const SYS_getegid: c_long = 177; +pub const SYS_gettid: c_long = 178; +pub const SYS_sysinfo: c_long = 179; +pub const SYS_mq_open: c_long = 180; +pub const SYS_mq_unlink: c_long = 181; +pub const SYS_mq_timedsend: c_long = 182; +pub const SYS_mq_timedreceive: c_long = 183; +pub const SYS_mq_notify: c_long = 184; +pub const SYS_mq_getsetattr: c_long = 185; +pub const SYS_msgget: c_long = 186; +pub const SYS_msgctl: c_long = 187; +pub const SYS_msgrcv: c_long = 188; +pub const SYS_msgsnd: c_long = 189; +pub const SYS_semget: c_long = 190; +pub const SYS_semctl: c_long = 191; +pub const SYS_semtimedop: c_long = 192; +pub const SYS_semop: c_long = 193; +pub const SYS_shmget: c_long = 194; +pub const SYS_shmctl: c_long = 195; +pub const SYS_shmat: c_long = 196; +pub const SYS_shmdt: c_long = 197; +pub const SYS_socket: c_long = 198; +pub const SYS_socketpair: c_long = 199; +pub const SYS_bind: c_long = 200; +pub const SYS_listen: c_long = 201; +pub const SYS_accept: c_long = 202; +pub const SYS_connect: c_long = 203; +pub const SYS_getsockname: c_long = 204; +pub const SYS_getpeername: c_long = 205; +pub const SYS_sendto: c_long = 206; +pub const SYS_recvfrom: c_long = 207; +pub const SYS_setsockopt: c_long = 208; +pub const SYS_getsockopt: c_long = 209; +pub const SYS_shutdown: c_long = 210; +pub const SYS_sendmsg: c_long = 211; +pub const SYS_recvmsg: c_long = 212; +pub const SYS_readahead: c_long = 213; +pub const SYS_brk: c_long = 214; +pub const SYS_munmap: c_long = 215; +pub const SYS_mremap: c_long = 216; +pub const SYS_add_key: c_long = 217; +pub const SYS_request_key: c_long = 218; +pub const SYS_keyctl: c_long = 219; +pub const SYS_clone: c_long = 220; +pub const SYS_execve: c_long = 221; +pub const SYS_mmap: c_long = 222; +pub const SYS_fadvise64: c_long = 223; +pub const SYS_swapon: c_long = 224; +pub const SYS_swapoff: c_long = 225; +pub const SYS_mprotect: c_long = 226; +pub const SYS_msync: c_long = 227; +pub const SYS_mlock: c_long = 228; +pub const SYS_munlock: c_long = 229; +pub const SYS_mlockall: c_long = 230; +pub const SYS_munlockall: c_long = 231; +pub const SYS_mincore: c_long = 232; +pub const SYS_madvise: c_long = 233; +pub const SYS_remap_file_pages: c_long = 234; +pub const SYS_mbind: c_long = 235; +pub const SYS_get_mempolicy: c_long = 236; +pub const SYS_set_mempolicy: c_long = 237; +pub const SYS_migrate_pages: c_long = 238; +pub const SYS_move_pages: c_long = 239; +pub const SYS_rt_tgsigqueueinfo: c_long = 240; +pub const SYS_perf_event_open: c_long = 241; +pub const SYS_accept4: c_long = 242; +pub const SYS_recvmmsg: c_long = 243; +pub const SYS_arch_specific_syscall: c_long = 244; +pub const SYS_wait4: c_long = 260; +pub const SYS_prlimit64: c_long = 261; +pub const SYS_fanotify_init: c_long = 262; +pub const SYS_fanotify_mark: c_long = 263; +pub const SYS_name_to_handle_at: c_long = 264; +pub const SYS_open_by_handle_at: c_long = 265; +pub const SYS_clock_adjtime: c_long = 266; +pub const SYS_syncfs: c_long = 267; +pub const SYS_setns: c_long = 268; +pub const SYS_sendmmsg: c_long = 269; +pub const SYS_process_vm_readv: c_long = 270; +pub const SYS_process_vm_writev: c_long = 271; +pub const SYS_kcmp: c_long = 272; +pub const SYS_finit_module: c_long = 273; +pub const SYS_sched_setattr: c_long = 274; +pub const SYS_sched_getattr: c_long = 275; +pub const SYS_renameat2: c_long = 276; +pub const SYS_seccomp: c_long = 277; +pub const SYS_getrandom: c_long = 278; +pub const SYS_memfd_create: c_long = 279; +pub const SYS_bpf: c_long = 280; +pub const SYS_execveat: c_long = 281; +pub const SYS_userfaultfd: c_long = 282; +pub const SYS_membarrier: c_long = 283; +pub const SYS_mlock2: c_long = 284; +pub const SYS_copy_file_range: c_long = 285; +pub const SYS_preadv2: c_long = 286; +pub const SYS_pwritev2: c_long = 287; +pub const SYS_pkey_mprotect: c_long = 288; +pub const SYS_pkey_alloc: c_long = 289; +pub const SYS_pkey_free: c_long = 290; +pub const SYS_statx: c_long = 291; +pub const SYS_io_pgetevents: c_long = 292; +pub const SYS_rseq: c_long = 293; +pub const SYS_kexec_file_load: c_long = 294; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; +pub const SYS_cachestat: c_long = 451; +pub const SYS_fchmodat2: c_long = 452; +pub const SYS_map_shadow_stack: c_long = 453; +pub const SYS_futex_wake: c_long = 454; +pub const SYS_futex_wait: c_long = 455; +pub const SYS_futex_requeue: c_long = 456; -pub const O_APPEND: ::c_int = 1024; -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_LARGEFILE: ::c_int = 0o0100000; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_ASYNC: ::c_int = 0o20000; +pub const O_APPEND: c_int = 1024; +pub const O_DIRECT: c_int = 0x4000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_LARGEFILE: c_int = 0o0100000; +pub const O_NOFOLLOW: c_int = 0x20000; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_ASYNC: c_int = 0o20000; -pub const SIGSTKSZ: ::size_t = 16384; -pub const MINSIGSTKSZ: ::size_t = 4096; +pub const SIGSTKSZ: size_t = 16384; +pub const MINSIGSTKSZ: size_t = 4096; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EBADMSG: c_int = 74; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const EHWPOISON: c_int = 133; +pub const ERFKILL: c_int = 132; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0; -pub const SIG_UNBLOCK: ::c_int = 1; +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0; +pub const SIG_UNBLOCK: c_int = 1; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; +pub const F_SETOWN: c_int = 8; pub const VEOF: usize = 4; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_SYNC: c_int = 0x080000; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::c_int = 0x00000800; -pub const TAB2: ::c_int = 0x00001000; -pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: c_int = 0x00000800; +pub const TAB2: c_int = 0x00001000; +pub const TAB3: c_int = 0x00001800; +pub const CR1: c_int = 0x00000200; +pub const CR2: c_int = 0x00000400; +pub const CR3: c_int = 0x00000600; +pub const FF1: c_int = 0x00008000; +pub const BS1: c_int = 0x00002000; +pub const VT1: c_int = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -605,63 +610,63 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const XCASE: ::tcflag_t = 0x00000004; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const XCASE: crate::tcflag_t = 0x00000004; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; -pub const EDEADLK: ::c_int = 35; -pub const EDEADLOCK: ::c_int = EDEADLK; -pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const EDEADLK: c_int = 35; +pub const EDEADLOCK: c_int = EDEADLK; +pub const EXTPROC: crate::tcflag_t = 0x00010000; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index 63a47af041487..b3f660931c44f 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -1,602 +1,604 @@ +use crate::{c_int, c_long, c_short, c_uint, c_ulong, off_t, size_t}; + pub type c_char = i8; pub type wchar_t = i32; -pub type __u64 = ::c_ulong; -pub type __s64 = ::c_long; +pub type __u64 = c_ulong; +pub type __s64 = c_long; pub type nlink_t = u64; pub type blksize_t = i64; s! { pub struct stat { - pub st_dev: ::dev_t, - __pad1: [::c_int; 3], - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: [::c_uint; 2], - pub st_size: ::off_t, - __pad3: ::c_int, - 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_blksize: ::blksize_t, - __pad4: ::c_uint, - pub st_blocks: ::blkcnt_t, - __pad5: [::c_int; 14], + pub st_dev: crate::dev_t, + __pad1: [c_int; 3], + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad2: [c_uint; 2], + pub st_size: off_t, + __pad3: c_int, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_blksize: crate::blksize_t, + __pad4: c_uint, + pub st_blocks: crate::blkcnt_t, + __pad5: [c_int; 14], } pub struct stat64 { - pub st_dev: ::dev_t, - __pad1: [::c_int; 3], - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: [::c_uint; 2], - pub st_size: ::off_t, - __pad3: ::c_int, - 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_blksize: ::blksize_t, - __pad4: ::c_uint, - pub st_blocks: ::blkcnt_t, - __pad5: [::c_int; 14], + pub st_dev: crate::dev_t, + __pad1: [c_int; 3], + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad2: [c_uint; 2], + pub st_size: off_t, + __pad3: c_int, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_blksize: crate::blksize_t, + __pad4: c_uint, + pub st_blocks: crate::blkcnt_t, + __pad5: [c_int; 14], } 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_int, - __pad1: ::c_int, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub __ipc_perm_key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub __seq: c_int, + __pad1: c_int, + __unused1: c_ulong, + __unused2: c_ulong, } } -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; -pub const SYS_read: ::c_long = 5000 + 0; -pub const SYS_write: ::c_long = 5000 + 1; -pub const SYS_open: ::c_long = 5000 + 2; -pub const SYS_close: ::c_long = 5000 + 3; -pub const SYS_stat: ::c_long = 5000 + 4; -pub const SYS_fstat: ::c_long = 5000 + 5; -pub const SYS_lstat: ::c_long = 5000 + 6; -pub const SYS_poll: ::c_long = 5000 + 7; -pub const SYS_lseek: ::c_long = 5000 + 8; -pub const SYS_mmap: ::c_long = 5000 + 9; -pub const SYS_mprotect: ::c_long = 5000 + 10; -pub const SYS_munmap: ::c_long = 5000 + 11; -pub const SYS_brk: ::c_long = 5000 + 12; -pub const SYS_rt_sigaction: ::c_long = 5000 + 13; -pub const SYS_rt_sigprocmask: ::c_long = 5000 + 14; -pub const SYS_ioctl: ::c_long = 5000 + 15; -pub const SYS_pread64: ::c_long = 5000 + 16; -pub const SYS_pwrite64: ::c_long = 5000 + 17; -pub const SYS_readv: ::c_long = 5000 + 18; -pub const SYS_writev: ::c_long = 5000 + 19; -pub const SYS_access: ::c_long = 5000 + 20; -pub const SYS_pipe: ::c_long = 5000 + 21; -pub const SYS__newselect: ::c_long = 5000 + 22; -pub const SYS_sched_yield: ::c_long = 5000 + 23; -pub const SYS_mremap: ::c_long = 5000 + 24; -pub const SYS_msync: ::c_long = 5000 + 25; -pub const SYS_mincore: ::c_long = 5000 + 26; -pub const SYS_madvise: ::c_long = 5000 + 27; -pub const SYS_shmget: ::c_long = 5000 + 28; -pub const SYS_shmat: ::c_long = 5000 + 29; -pub const SYS_shmctl: ::c_long = 5000 + 30; -pub const SYS_dup: ::c_long = 5000 + 31; -pub const SYS_dup2: ::c_long = 5000 + 32; -pub const SYS_pause: ::c_long = 5000 + 33; -pub const SYS_nanosleep: ::c_long = 5000 + 34; -pub const SYS_getitimer: ::c_long = 5000 + 35; -pub const SYS_setitimer: ::c_long = 5000 + 36; -pub const SYS_alarm: ::c_long = 5000 + 37; -pub const SYS_getpid: ::c_long = 5000 + 38; -pub const SYS_sendfile: ::c_long = 5000 + 39; -pub const SYS_socket: ::c_long = 5000 + 40; -pub const SYS_connect: ::c_long = 5000 + 41; -pub const SYS_accept: ::c_long = 5000 + 42; -pub const SYS_sendto: ::c_long = 5000 + 43; -pub const SYS_recvfrom: ::c_long = 5000 + 44; -pub const SYS_sendmsg: ::c_long = 5000 + 45; -pub const SYS_recvmsg: ::c_long = 5000 + 46; -pub const SYS_shutdown: ::c_long = 5000 + 47; -pub const SYS_bind: ::c_long = 5000 + 48; -pub const SYS_listen: ::c_long = 5000 + 49; -pub const SYS_getsockname: ::c_long = 5000 + 50; -pub const SYS_getpeername: ::c_long = 5000 + 51; -pub const SYS_socketpair: ::c_long = 5000 + 52; -pub const SYS_setsockopt: ::c_long = 5000 + 53; -pub const SYS_getsockopt: ::c_long = 5000 + 54; -pub const SYS_clone: ::c_long = 5000 + 55; -pub const SYS_fork: ::c_long = 5000 + 56; -pub const SYS_execve: ::c_long = 5000 + 57; -pub const SYS_exit: ::c_long = 5000 + 58; -pub const SYS_wait4: ::c_long = 5000 + 59; -pub const SYS_kill: ::c_long = 5000 + 60; -pub const SYS_uname: ::c_long = 5000 + 61; -pub const SYS_semget: ::c_long = 5000 + 62; -pub const SYS_semop: ::c_long = 5000 + 63; -pub const SYS_semctl: ::c_long = 5000 + 64; -pub const SYS_shmdt: ::c_long = 5000 + 65; -pub const SYS_msgget: ::c_long = 5000 + 66; -pub const SYS_msgsnd: ::c_long = 5000 + 67; -pub const SYS_msgrcv: ::c_long = 5000 + 68; -pub const SYS_msgctl: ::c_long = 5000 + 69; -pub const SYS_fcntl: ::c_long = 5000 + 70; -pub const SYS_flock: ::c_long = 5000 + 71; -pub const SYS_fsync: ::c_long = 5000 + 72; -pub const SYS_fdatasync: ::c_long = 5000 + 73; -pub const SYS_truncate: ::c_long = 5000 + 74; -pub const SYS_ftruncate: ::c_long = 5000 + 75; -pub const SYS_getdents: ::c_long = 5000 + 76; -pub const SYS_getcwd: ::c_long = 5000 + 77; -pub const SYS_chdir: ::c_long = 5000 + 78; -pub const SYS_fchdir: ::c_long = 5000 + 79; -pub const SYS_rename: ::c_long = 5000 + 80; -pub const SYS_mkdir: ::c_long = 5000 + 81; -pub const SYS_rmdir: ::c_long = 5000 + 82; -pub const SYS_creat: ::c_long = 5000 + 83; -pub const SYS_link: ::c_long = 5000 + 84; -pub const SYS_unlink: ::c_long = 5000 + 85; -pub const SYS_symlink: ::c_long = 5000 + 86; -pub const SYS_readlink: ::c_long = 5000 + 87; -pub const SYS_chmod: ::c_long = 5000 + 88; -pub const SYS_fchmod: ::c_long = 5000 + 89; -pub const SYS_chown: ::c_long = 5000 + 90; -pub const SYS_fchown: ::c_long = 5000 + 91; -pub const SYS_lchown: ::c_long = 5000 + 92; -pub const SYS_umask: ::c_long = 5000 + 93; -pub const SYS_gettimeofday: ::c_long = 5000 + 94; -pub const SYS_getrlimit: ::c_long = 5000 + 95; -pub const SYS_getrusage: ::c_long = 5000 + 96; -pub const SYS_sysinfo: ::c_long = 5000 + 97; -pub const SYS_times: ::c_long = 5000 + 98; -pub const SYS_ptrace: ::c_long = 5000 + 99; -pub const SYS_getuid: ::c_long = 5000 + 100; -pub const SYS_syslog: ::c_long = 5000 + 101; -pub const SYS_getgid: ::c_long = 5000 + 102; -pub const SYS_setuid: ::c_long = 5000 + 103; -pub const SYS_setgid: ::c_long = 5000 + 104; -pub const SYS_geteuid: ::c_long = 5000 + 105; -pub const SYS_getegid: ::c_long = 5000 + 106; -pub const SYS_setpgid: ::c_long = 5000 + 107; -pub const SYS_getppid: ::c_long = 5000 + 108; -pub const SYS_getpgrp: ::c_long = 5000 + 109; -pub const SYS_setsid: ::c_long = 5000 + 110; -pub const SYS_setreuid: ::c_long = 5000 + 111; -pub const SYS_setregid: ::c_long = 5000 + 112; -pub const SYS_getgroups: ::c_long = 5000 + 113; -pub const SYS_setgroups: ::c_long = 5000 + 114; -pub const SYS_setresuid: ::c_long = 5000 + 115; -pub const SYS_getresuid: ::c_long = 5000 + 116; -pub const SYS_setresgid: ::c_long = 5000 + 117; -pub const SYS_getresgid: ::c_long = 5000 + 118; -pub const SYS_getpgid: ::c_long = 5000 + 119; -pub const SYS_setfsuid: ::c_long = 5000 + 120; -pub const SYS_setfsgid: ::c_long = 5000 + 121; -pub const SYS_getsid: ::c_long = 5000 + 122; -pub const SYS_capget: ::c_long = 5000 + 123; -pub const SYS_capset: ::c_long = 5000 + 124; -pub const SYS_rt_sigpending: ::c_long = 5000 + 125; -pub const SYS_rt_sigtimedwait: ::c_long = 5000 + 126; -pub const SYS_rt_sigqueueinfo: ::c_long = 5000 + 127; -pub const SYS_rt_sigsuspend: ::c_long = 5000 + 128; -pub const SYS_sigaltstack: ::c_long = 5000 + 129; -pub const SYS_utime: ::c_long = 5000 + 130; -pub const SYS_mknod: ::c_long = 5000 + 131; -pub const SYS_personality: ::c_long = 5000 + 132; -pub const SYS_ustat: ::c_long = 5000 + 133; -pub const SYS_statfs: ::c_long = 5000 + 134; -pub const SYS_fstatfs: ::c_long = 5000 + 135; -pub const SYS_sysfs: ::c_long = 5000 + 136; -pub const SYS_getpriority: ::c_long = 5000 + 137; -pub const SYS_setpriority: ::c_long = 5000 + 138; -pub const SYS_sched_setparam: ::c_long = 5000 + 139; -pub const SYS_sched_getparam: ::c_long = 5000 + 140; -pub const SYS_sched_setscheduler: ::c_long = 5000 + 141; -pub const SYS_sched_getscheduler: ::c_long = 5000 + 142; -pub const SYS_sched_get_priority_max: ::c_long = 5000 + 143; -pub const SYS_sched_get_priority_min: ::c_long = 5000 + 144; -pub const SYS_sched_rr_get_interval: ::c_long = 5000 + 145; -pub const SYS_mlock: ::c_long = 5000 + 146; -pub const SYS_munlock: ::c_long = 5000 + 147; -pub const SYS_mlockall: ::c_long = 5000 + 148; -pub const SYS_munlockall: ::c_long = 5000 + 149; -pub const SYS_vhangup: ::c_long = 5000 + 150; -pub const SYS_pivot_root: ::c_long = 5000 + 151; -pub const SYS__sysctl: ::c_long = 5000 + 152; -pub const SYS_prctl: ::c_long = 5000 + 153; -pub const SYS_adjtimex: ::c_long = 5000 + 154; -pub const SYS_setrlimit: ::c_long = 5000 + 155; -pub const SYS_chroot: ::c_long = 5000 + 156; -pub const SYS_sync: ::c_long = 5000 + 157; -pub const SYS_acct: ::c_long = 5000 + 158; -pub const SYS_settimeofday: ::c_long = 5000 + 159; -pub const SYS_mount: ::c_long = 5000 + 160; -pub const SYS_umount2: ::c_long = 5000 + 161; -pub const SYS_swapon: ::c_long = 5000 + 162; -pub const SYS_swapoff: ::c_long = 5000 + 163; -pub const SYS_reboot: ::c_long = 5000 + 164; -pub const SYS_sethostname: ::c_long = 5000 + 165; -pub const SYS_setdomainname: ::c_long = 5000 + 166; -pub const SYS_create_module: ::c_long = 5000 + 167; -pub const SYS_init_module: ::c_long = 5000 + 168; -pub const SYS_delete_module: ::c_long = 5000 + 169; -pub const SYS_get_kernel_syms: ::c_long = 5000 + 170; -pub const SYS_query_module: ::c_long = 5000 + 171; -pub const SYS_quotactl: ::c_long = 5000 + 172; -pub const SYS_nfsservctl: ::c_long = 5000 + 173; -pub const SYS_getpmsg: ::c_long = 5000 + 174; -pub const SYS_putpmsg: ::c_long = 5000 + 175; -pub const SYS_afs_syscall: ::c_long = 5000 + 176; -pub const SYS_gettid: ::c_long = 5000 + 178; -pub const SYS_readahead: ::c_long = 5000 + 179; -pub const SYS_setxattr: ::c_long = 5000 + 180; -pub const SYS_lsetxattr: ::c_long = 5000 + 181; -pub const SYS_fsetxattr: ::c_long = 5000 + 182; -pub const SYS_getxattr: ::c_long = 5000 + 183; -pub const SYS_lgetxattr: ::c_long = 5000 + 184; -pub const SYS_fgetxattr: ::c_long = 5000 + 185; -pub const SYS_listxattr: ::c_long = 5000 + 186; -pub const SYS_llistxattr: ::c_long = 5000 + 187; -pub const SYS_flistxattr: ::c_long = 5000 + 188; -pub const SYS_removexattr: ::c_long = 5000 + 189; -pub const SYS_lremovexattr: ::c_long = 5000 + 190; -pub const SYS_fremovexattr: ::c_long = 5000 + 191; -pub const SYS_tkill: ::c_long = 5000 + 192; -pub const SYS_futex: ::c_long = 5000 + 194; -pub const SYS_sched_setaffinity: ::c_long = 5000 + 195; -pub const SYS_sched_getaffinity: ::c_long = 5000 + 196; -pub const SYS_cacheflush: ::c_long = 5000 + 197; -pub const SYS_cachectl: ::c_long = 5000 + 198; -pub const SYS_sysmips: ::c_long = 5000 + 199; -pub const SYS_io_setup: ::c_long = 5000 + 200; -pub const SYS_io_destroy: ::c_long = 5000 + 201; -pub const SYS_io_getevents: ::c_long = 5000 + 202; -pub const SYS_io_submit: ::c_long = 5000 + 203; -pub const SYS_io_cancel: ::c_long = 5000 + 204; -pub const SYS_exit_group: ::c_long = 5000 + 205; -pub const SYS_lookup_dcookie: ::c_long = 5000 + 206; -pub const SYS_epoll_create: ::c_long = 5000 + 207; -pub const SYS_epoll_ctl: ::c_long = 5000 + 208; -pub const SYS_epoll_wait: ::c_long = 5000 + 209; -pub const SYS_remap_file_pages: ::c_long = 5000 + 210; -pub const SYS_rt_sigreturn: ::c_long = 5000 + 211; -pub const SYS_set_tid_address: ::c_long = 5000 + 212; -pub const SYS_restart_syscall: ::c_long = 5000 + 213; -pub const SYS_semtimedop: ::c_long = 5000 + 214; -pub const SYS_fadvise64: ::c_long = 5000 + 215; -pub const SYS_timer_create: ::c_long = 5000 + 216; -pub const SYS_timer_settime: ::c_long = 5000 + 217; -pub const SYS_timer_gettime: ::c_long = 5000 + 218; -pub const SYS_timer_getoverrun: ::c_long = 5000 + 219; -pub const SYS_timer_delete: ::c_long = 5000 + 220; -pub const SYS_clock_settime: ::c_long = 5000 + 221; -pub const SYS_clock_gettime: ::c_long = 5000 + 222; -pub const SYS_clock_getres: ::c_long = 5000 + 223; -pub const SYS_clock_nanosleep: ::c_long = 5000 + 224; -pub const SYS_tgkill: ::c_long = 5000 + 225; -pub const SYS_utimes: ::c_long = 5000 + 226; -pub const SYS_mbind: ::c_long = 5000 + 227; -pub const SYS_get_mempolicy: ::c_long = 5000 + 228; -pub const SYS_set_mempolicy: ::c_long = 5000 + 229; -pub const SYS_mq_open: ::c_long = 5000 + 230; -pub const SYS_mq_unlink: ::c_long = 5000 + 231; -pub const SYS_mq_timedsend: ::c_long = 5000 + 232; -pub const SYS_mq_timedreceive: ::c_long = 5000 + 233; -pub const SYS_mq_notify: ::c_long = 5000 + 234; -pub const SYS_mq_getsetattr: ::c_long = 5000 + 235; -pub const SYS_vserver: ::c_long = 5000 + 236; -pub const SYS_waitid: ::c_long = 5000 + 237; -/* pub const SYS_sys_setaltroot: ::c_long = 5000 + 238; */ -pub const SYS_add_key: ::c_long = 5000 + 239; -pub const SYS_request_key: ::c_long = 5000 + 240; -pub const SYS_keyctl: ::c_long = 5000 + 241; -pub const SYS_set_thread_area: ::c_long = 5000 + 242; -pub const SYS_inotify_init: ::c_long = 5000 + 243; -pub const SYS_inotify_add_watch: ::c_long = 5000 + 244; -pub const SYS_inotify_rm_watch: ::c_long = 5000 + 245; -pub const SYS_migrate_pages: ::c_long = 5000 + 246; -pub const SYS_openat: ::c_long = 5000 + 247; -pub const SYS_mkdirat: ::c_long = 5000 + 248; -pub const SYS_mknodat: ::c_long = 5000 + 249; -pub const SYS_fchownat: ::c_long = 5000 + 250; -pub const SYS_futimesat: ::c_long = 5000 + 251; -pub const SYS_newfstatat: ::c_long = 5000 + 252; -pub const SYS_unlinkat: ::c_long = 5000 + 253; -pub const SYS_renameat: ::c_long = 5000 + 254; -pub const SYS_linkat: ::c_long = 5000 + 255; -pub const SYS_symlinkat: ::c_long = 5000 + 256; -pub const SYS_readlinkat: ::c_long = 5000 + 257; -pub const SYS_fchmodat: ::c_long = 5000 + 258; -pub const SYS_faccessat: ::c_long = 5000 + 259; -pub const SYS_pselect6: ::c_long = 5000 + 260; -pub const SYS_ppoll: ::c_long = 5000 + 261; -pub const SYS_unshare: ::c_long = 5000 + 262; -pub const SYS_splice: ::c_long = 5000 + 263; -pub const SYS_sync_file_range: ::c_long = 5000 + 264; -pub const SYS_tee: ::c_long = 5000 + 265; -pub const SYS_vmsplice: ::c_long = 5000 + 266; -pub const SYS_move_pages: ::c_long = 5000 + 267; -pub const SYS_set_robust_list: ::c_long = 5000 + 268; -pub const SYS_get_robust_list: ::c_long = 5000 + 269; -pub const SYS_kexec_load: ::c_long = 5000 + 270; -pub const SYS_getcpu: ::c_long = 5000 + 271; -pub const SYS_epoll_pwait: ::c_long = 5000 + 272; -pub const SYS_ioprio_set: ::c_long = 5000 + 273; -pub const SYS_ioprio_get: ::c_long = 5000 + 274; -pub const SYS_utimensat: ::c_long = 5000 + 275; -pub const SYS_signalfd: ::c_long = 5000 + 276; -pub const SYS_timerfd: ::c_long = 5000 + 277; -pub const SYS_eventfd: ::c_long = 5000 + 278; -pub const SYS_fallocate: ::c_long = 5000 + 279; -pub const SYS_timerfd_create: ::c_long = 5000 + 280; -pub const SYS_timerfd_gettime: ::c_long = 5000 + 281; -pub const SYS_timerfd_settime: ::c_long = 5000 + 282; -pub const SYS_signalfd4: ::c_long = 5000 + 283; -pub const SYS_eventfd2: ::c_long = 5000 + 284; -pub const SYS_epoll_create1: ::c_long = 5000 + 285; -pub const SYS_dup3: ::c_long = 5000 + 286; -pub const SYS_pipe2: ::c_long = 5000 + 287; -pub const SYS_inotify_init1: ::c_long = 5000 + 288; -pub const SYS_preadv: ::c_long = 5000 + 289; -pub const SYS_pwritev: ::c_long = 5000 + 290; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 5000 + 291; -pub const SYS_perf_event_open: ::c_long = 5000 + 292; -pub const SYS_accept4: ::c_long = 5000 + 293; -pub const SYS_recvmmsg: ::c_long = 5000 + 294; -pub const SYS_fanotify_init: ::c_long = 5000 + 295; -pub const SYS_fanotify_mark: ::c_long = 5000 + 296; -pub const SYS_prlimit64: ::c_long = 5000 + 297; -pub const SYS_name_to_handle_at: ::c_long = 5000 + 298; -pub const SYS_open_by_handle_at: ::c_long = 5000 + 299; -pub const SYS_clock_adjtime: ::c_long = 5000 + 300; -pub const SYS_syncfs: ::c_long = 5000 + 301; -pub const SYS_sendmmsg: ::c_long = 5000 + 302; -pub const SYS_setns: ::c_long = 5000 + 303; -pub const SYS_process_vm_readv: ::c_long = 5000 + 304; -pub const SYS_process_vm_writev: ::c_long = 5000 + 305; -pub const SYS_kcmp: ::c_long = 5000 + 306; -pub const SYS_finit_module: ::c_long = 5000 + 307; -pub const SYS_getdents64: ::c_long = 5000 + 308; -pub const SYS_sched_setattr: ::c_long = 5000 + 309; -pub const SYS_sched_getattr: ::c_long = 5000 + 310; -pub const SYS_renameat2: ::c_long = 5000 + 311; -pub const SYS_seccomp: ::c_long = 5000 + 312; -pub const SYS_getrandom: ::c_long = 5000 + 313; -pub const SYS_memfd_create: ::c_long = 5000 + 314; -pub const SYS_bpf: ::c_long = 5000 + 315; -pub const SYS_execveat: ::c_long = 5000 + 316; -pub const SYS_userfaultfd: ::c_long = 5000 + 317; -pub const SYS_membarrier: ::c_long = 5000 + 318; -pub const SYS_mlock2: ::c_long = 5000 + 319; -pub const SYS_copy_file_range: ::c_long = 5000 + 320; -pub const SYS_preadv2: ::c_long = 5000 + 321; -pub const SYS_pwritev2: ::c_long = 5000 + 322; -pub const SYS_pkey_mprotect: ::c_long = 5000 + 323; -pub const SYS_pkey_alloc: ::c_long = 5000 + 324; -pub const SYS_pkey_free: ::c_long = 5000 + 325; -pub const SYS_statx: ::c_long = 5000 + 326; -pub const SYS_pidfd_send_signal: ::c_long = 5000 + 424; -pub const SYS_io_uring_setup: ::c_long = 5000 + 425; -pub const SYS_io_uring_enter: ::c_long = 5000 + 426; -pub const SYS_io_uring_register: ::c_long = 5000 + 427; -pub const SYS_open_tree: ::c_long = 5000 + 428; -pub const SYS_move_mount: ::c_long = 5000 + 429; -pub const SYS_fsopen: ::c_long = 5000 + 430; -pub const SYS_fsconfig: ::c_long = 5000 + 431; -pub const SYS_fsmount: ::c_long = 5000 + 432; -pub const SYS_fspick: ::c_long = 5000 + 433; -pub const SYS_pidfd_open: ::c_long = 5000 + 434; -pub const SYS_clone3: ::c_long = 5000 + 435; -pub const SYS_close_range: ::c_long = 5000 + 436; -pub const SYS_openat2: ::c_long = 5000 + 437; -pub const SYS_pidfd_getfd: ::c_long = 5000 + 438; -pub const SYS_faccessat2: ::c_long = 5000 + 439; -pub const SYS_process_madvise: ::c_long = 5000 + 440; -pub const SYS_epoll_pwait2: ::c_long = 5000 + 441; -pub const SYS_mount_setattr: ::c_long = 5000 + 442; -pub const SYS_quotactl_fd: ::c_long = 5000 + 443; -pub const SYS_landlock_create_ruleset: ::c_long = 5000 + 444; -pub const SYS_landlock_add_rule: ::c_long = 5000 + 445; -pub const SYS_landlock_restrict_self: ::c_long = 5000 + 446; -pub const SYS_memfd_secret: ::c_long = 5000 + 447; -pub const SYS_process_mrelease: ::c_long = 5000 + 448; -pub const SYS_futex_waitv: ::c_long = 5000 + 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 5000 + 450; +pub const SYS_read: c_long = 5000 + 0; +pub const SYS_write: c_long = 5000 + 1; +pub const SYS_open: c_long = 5000 + 2; +pub const SYS_close: c_long = 5000 + 3; +pub const SYS_stat: c_long = 5000 + 4; +pub const SYS_fstat: c_long = 5000 + 5; +pub const SYS_lstat: c_long = 5000 + 6; +pub const SYS_poll: c_long = 5000 + 7; +pub const SYS_lseek: c_long = 5000 + 8; +pub const SYS_mmap: c_long = 5000 + 9; +pub const SYS_mprotect: c_long = 5000 + 10; +pub const SYS_munmap: c_long = 5000 + 11; +pub const SYS_brk: c_long = 5000 + 12; +pub const SYS_rt_sigaction: c_long = 5000 + 13; +pub const SYS_rt_sigprocmask: c_long = 5000 + 14; +pub const SYS_ioctl: c_long = 5000 + 15; +pub const SYS_pread64: c_long = 5000 + 16; +pub const SYS_pwrite64: c_long = 5000 + 17; +pub const SYS_readv: c_long = 5000 + 18; +pub const SYS_writev: c_long = 5000 + 19; +pub const SYS_access: c_long = 5000 + 20; +pub const SYS_pipe: c_long = 5000 + 21; +pub const SYS__newselect: c_long = 5000 + 22; +pub const SYS_sched_yield: c_long = 5000 + 23; +pub const SYS_mremap: c_long = 5000 + 24; +pub const SYS_msync: c_long = 5000 + 25; +pub const SYS_mincore: c_long = 5000 + 26; +pub const SYS_madvise: c_long = 5000 + 27; +pub const SYS_shmget: c_long = 5000 + 28; +pub const SYS_shmat: c_long = 5000 + 29; +pub const SYS_shmctl: c_long = 5000 + 30; +pub const SYS_dup: c_long = 5000 + 31; +pub const SYS_dup2: c_long = 5000 + 32; +pub const SYS_pause: c_long = 5000 + 33; +pub const SYS_nanosleep: c_long = 5000 + 34; +pub const SYS_getitimer: c_long = 5000 + 35; +pub const SYS_setitimer: c_long = 5000 + 36; +pub const SYS_alarm: c_long = 5000 + 37; +pub const SYS_getpid: c_long = 5000 + 38; +pub const SYS_sendfile: c_long = 5000 + 39; +pub const SYS_socket: c_long = 5000 + 40; +pub const SYS_connect: c_long = 5000 + 41; +pub const SYS_accept: c_long = 5000 + 42; +pub const SYS_sendto: c_long = 5000 + 43; +pub const SYS_recvfrom: c_long = 5000 + 44; +pub const SYS_sendmsg: c_long = 5000 + 45; +pub const SYS_recvmsg: c_long = 5000 + 46; +pub const SYS_shutdown: c_long = 5000 + 47; +pub const SYS_bind: c_long = 5000 + 48; +pub const SYS_listen: c_long = 5000 + 49; +pub const SYS_getsockname: c_long = 5000 + 50; +pub const SYS_getpeername: c_long = 5000 + 51; +pub const SYS_socketpair: c_long = 5000 + 52; +pub const SYS_setsockopt: c_long = 5000 + 53; +pub const SYS_getsockopt: c_long = 5000 + 54; +pub const SYS_clone: c_long = 5000 + 55; +pub const SYS_fork: c_long = 5000 + 56; +pub const SYS_execve: c_long = 5000 + 57; +pub const SYS_exit: c_long = 5000 + 58; +pub const SYS_wait4: c_long = 5000 + 59; +pub const SYS_kill: c_long = 5000 + 60; +pub const SYS_uname: c_long = 5000 + 61; +pub const SYS_semget: c_long = 5000 + 62; +pub const SYS_semop: c_long = 5000 + 63; +pub const SYS_semctl: c_long = 5000 + 64; +pub const SYS_shmdt: c_long = 5000 + 65; +pub const SYS_msgget: c_long = 5000 + 66; +pub const SYS_msgsnd: c_long = 5000 + 67; +pub const SYS_msgrcv: c_long = 5000 + 68; +pub const SYS_msgctl: c_long = 5000 + 69; +pub const SYS_fcntl: c_long = 5000 + 70; +pub const SYS_flock: c_long = 5000 + 71; +pub const SYS_fsync: c_long = 5000 + 72; +pub const SYS_fdatasync: c_long = 5000 + 73; +pub const SYS_truncate: c_long = 5000 + 74; +pub const SYS_ftruncate: c_long = 5000 + 75; +pub const SYS_getdents: c_long = 5000 + 76; +pub const SYS_getcwd: c_long = 5000 + 77; +pub const SYS_chdir: c_long = 5000 + 78; +pub const SYS_fchdir: c_long = 5000 + 79; +pub const SYS_rename: c_long = 5000 + 80; +pub const SYS_mkdir: c_long = 5000 + 81; +pub const SYS_rmdir: c_long = 5000 + 82; +pub const SYS_creat: c_long = 5000 + 83; +pub const SYS_link: c_long = 5000 + 84; +pub const SYS_unlink: c_long = 5000 + 85; +pub const SYS_symlink: c_long = 5000 + 86; +pub const SYS_readlink: c_long = 5000 + 87; +pub const SYS_chmod: c_long = 5000 + 88; +pub const SYS_fchmod: c_long = 5000 + 89; +pub const SYS_chown: c_long = 5000 + 90; +pub const SYS_fchown: c_long = 5000 + 91; +pub const SYS_lchown: c_long = 5000 + 92; +pub const SYS_umask: c_long = 5000 + 93; +pub const SYS_gettimeofday: c_long = 5000 + 94; +pub const SYS_getrlimit: c_long = 5000 + 95; +pub const SYS_getrusage: c_long = 5000 + 96; +pub const SYS_sysinfo: c_long = 5000 + 97; +pub const SYS_times: c_long = 5000 + 98; +pub const SYS_ptrace: c_long = 5000 + 99; +pub const SYS_getuid: c_long = 5000 + 100; +pub const SYS_syslog: c_long = 5000 + 101; +pub const SYS_getgid: c_long = 5000 + 102; +pub const SYS_setuid: c_long = 5000 + 103; +pub const SYS_setgid: c_long = 5000 + 104; +pub const SYS_geteuid: c_long = 5000 + 105; +pub const SYS_getegid: c_long = 5000 + 106; +pub const SYS_setpgid: c_long = 5000 + 107; +pub const SYS_getppid: c_long = 5000 + 108; +pub const SYS_getpgrp: c_long = 5000 + 109; +pub const SYS_setsid: c_long = 5000 + 110; +pub const SYS_setreuid: c_long = 5000 + 111; +pub const SYS_setregid: c_long = 5000 + 112; +pub const SYS_getgroups: c_long = 5000 + 113; +pub const SYS_setgroups: c_long = 5000 + 114; +pub const SYS_setresuid: c_long = 5000 + 115; +pub const SYS_getresuid: c_long = 5000 + 116; +pub const SYS_setresgid: c_long = 5000 + 117; +pub const SYS_getresgid: c_long = 5000 + 118; +pub const SYS_getpgid: c_long = 5000 + 119; +pub const SYS_setfsuid: c_long = 5000 + 120; +pub const SYS_setfsgid: c_long = 5000 + 121; +pub const SYS_getsid: c_long = 5000 + 122; +pub const SYS_capget: c_long = 5000 + 123; +pub const SYS_capset: c_long = 5000 + 124; +pub const SYS_rt_sigpending: c_long = 5000 + 125; +pub const SYS_rt_sigtimedwait: c_long = 5000 + 126; +pub const SYS_rt_sigqueueinfo: c_long = 5000 + 127; +pub const SYS_rt_sigsuspend: c_long = 5000 + 128; +pub const SYS_sigaltstack: c_long = 5000 + 129; +pub const SYS_utime: c_long = 5000 + 130; +pub const SYS_mknod: c_long = 5000 + 131; +pub const SYS_personality: c_long = 5000 + 132; +pub const SYS_ustat: c_long = 5000 + 133; +pub const SYS_statfs: c_long = 5000 + 134; +pub const SYS_fstatfs: c_long = 5000 + 135; +pub const SYS_sysfs: c_long = 5000 + 136; +pub const SYS_getpriority: c_long = 5000 + 137; +pub const SYS_setpriority: c_long = 5000 + 138; +pub const SYS_sched_setparam: c_long = 5000 + 139; +pub const SYS_sched_getparam: c_long = 5000 + 140; +pub const SYS_sched_setscheduler: c_long = 5000 + 141; +pub const SYS_sched_getscheduler: c_long = 5000 + 142; +pub const SYS_sched_get_priority_max: c_long = 5000 + 143; +pub const SYS_sched_get_priority_min: c_long = 5000 + 144; +pub const SYS_sched_rr_get_interval: c_long = 5000 + 145; +pub const SYS_mlock: c_long = 5000 + 146; +pub const SYS_munlock: c_long = 5000 + 147; +pub const SYS_mlockall: c_long = 5000 + 148; +pub const SYS_munlockall: c_long = 5000 + 149; +pub const SYS_vhangup: c_long = 5000 + 150; +pub const SYS_pivot_root: c_long = 5000 + 151; +pub const SYS__sysctl: c_long = 5000 + 152; +pub const SYS_prctl: c_long = 5000 + 153; +pub const SYS_adjtimex: c_long = 5000 + 154; +pub const SYS_setrlimit: c_long = 5000 + 155; +pub const SYS_chroot: c_long = 5000 + 156; +pub const SYS_sync: c_long = 5000 + 157; +pub const SYS_acct: c_long = 5000 + 158; +pub const SYS_settimeofday: c_long = 5000 + 159; +pub const SYS_mount: c_long = 5000 + 160; +pub const SYS_umount2: c_long = 5000 + 161; +pub const SYS_swapon: c_long = 5000 + 162; +pub const SYS_swapoff: c_long = 5000 + 163; +pub const SYS_reboot: c_long = 5000 + 164; +pub const SYS_sethostname: c_long = 5000 + 165; +pub const SYS_setdomainname: c_long = 5000 + 166; +pub const SYS_create_module: c_long = 5000 + 167; +pub const SYS_init_module: c_long = 5000 + 168; +pub const SYS_delete_module: c_long = 5000 + 169; +pub const SYS_get_kernel_syms: c_long = 5000 + 170; +pub const SYS_query_module: c_long = 5000 + 171; +pub const SYS_quotactl: c_long = 5000 + 172; +pub const SYS_nfsservctl: c_long = 5000 + 173; +pub const SYS_getpmsg: c_long = 5000 + 174; +pub const SYS_putpmsg: c_long = 5000 + 175; +pub const SYS_afs_syscall: c_long = 5000 + 176; +pub const SYS_gettid: c_long = 5000 + 178; +pub const SYS_readahead: c_long = 5000 + 179; +pub const SYS_setxattr: c_long = 5000 + 180; +pub const SYS_lsetxattr: c_long = 5000 + 181; +pub const SYS_fsetxattr: c_long = 5000 + 182; +pub const SYS_getxattr: c_long = 5000 + 183; +pub const SYS_lgetxattr: c_long = 5000 + 184; +pub const SYS_fgetxattr: c_long = 5000 + 185; +pub const SYS_listxattr: c_long = 5000 + 186; +pub const SYS_llistxattr: c_long = 5000 + 187; +pub const SYS_flistxattr: c_long = 5000 + 188; +pub const SYS_removexattr: c_long = 5000 + 189; +pub const SYS_lremovexattr: c_long = 5000 + 190; +pub const SYS_fremovexattr: c_long = 5000 + 191; +pub const SYS_tkill: c_long = 5000 + 192; +pub const SYS_futex: c_long = 5000 + 194; +pub const SYS_sched_setaffinity: c_long = 5000 + 195; +pub const SYS_sched_getaffinity: c_long = 5000 + 196; +pub const SYS_cacheflush: c_long = 5000 + 197; +pub const SYS_cachectl: c_long = 5000 + 198; +pub const SYS_sysmips: c_long = 5000 + 199; +pub const SYS_io_setup: c_long = 5000 + 200; +pub const SYS_io_destroy: c_long = 5000 + 201; +pub const SYS_io_getevents: c_long = 5000 + 202; +pub const SYS_io_submit: c_long = 5000 + 203; +pub const SYS_io_cancel: c_long = 5000 + 204; +pub const SYS_exit_group: c_long = 5000 + 205; +pub const SYS_lookup_dcookie: c_long = 5000 + 206; +pub const SYS_epoll_create: c_long = 5000 + 207; +pub const SYS_epoll_ctl: c_long = 5000 + 208; +pub const SYS_epoll_wait: c_long = 5000 + 209; +pub const SYS_remap_file_pages: c_long = 5000 + 210; +pub const SYS_rt_sigreturn: c_long = 5000 + 211; +pub const SYS_set_tid_address: c_long = 5000 + 212; +pub const SYS_restart_syscall: c_long = 5000 + 213; +pub const SYS_semtimedop: c_long = 5000 + 214; +pub const SYS_fadvise64: c_long = 5000 + 215; +pub const SYS_timer_create: c_long = 5000 + 216; +pub const SYS_timer_settime: c_long = 5000 + 217; +pub const SYS_timer_gettime: c_long = 5000 + 218; +pub const SYS_timer_getoverrun: c_long = 5000 + 219; +pub const SYS_timer_delete: c_long = 5000 + 220; +pub const SYS_clock_settime: c_long = 5000 + 221; +pub const SYS_clock_gettime: c_long = 5000 + 222; +pub const SYS_clock_getres: c_long = 5000 + 223; +pub const SYS_clock_nanosleep: c_long = 5000 + 224; +pub const SYS_tgkill: c_long = 5000 + 225; +pub const SYS_utimes: c_long = 5000 + 226; +pub const SYS_mbind: c_long = 5000 + 227; +pub const SYS_get_mempolicy: c_long = 5000 + 228; +pub const SYS_set_mempolicy: c_long = 5000 + 229; +pub const SYS_mq_open: c_long = 5000 + 230; +pub const SYS_mq_unlink: c_long = 5000 + 231; +pub const SYS_mq_timedsend: c_long = 5000 + 232; +pub const SYS_mq_timedreceive: c_long = 5000 + 233; +pub const SYS_mq_notify: c_long = 5000 + 234; +pub const SYS_mq_getsetattr: c_long = 5000 + 235; +pub const SYS_vserver: c_long = 5000 + 236; +pub const SYS_waitid: c_long = 5000 + 237; +/* pub const SYS_sys_setaltroot: c_long = 5000 + 238; */ +pub const SYS_add_key: c_long = 5000 + 239; +pub const SYS_request_key: c_long = 5000 + 240; +pub const SYS_keyctl: c_long = 5000 + 241; +pub const SYS_set_thread_area: c_long = 5000 + 242; +pub const SYS_inotify_init: c_long = 5000 + 243; +pub const SYS_inotify_add_watch: c_long = 5000 + 244; +pub const SYS_inotify_rm_watch: c_long = 5000 + 245; +pub const SYS_migrate_pages: c_long = 5000 + 246; +pub const SYS_openat: c_long = 5000 + 247; +pub const SYS_mkdirat: c_long = 5000 + 248; +pub const SYS_mknodat: c_long = 5000 + 249; +pub const SYS_fchownat: c_long = 5000 + 250; +pub const SYS_futimesat: c_long = 5000 + 251; +pub const SYS_newfstatat: c_long = 5000 + 252; +pub const SYS_unlinkat: c_long = 5000 + 253; +pub const SYS_renameat: c_long = 5000 + 254; +pub const SYS_linkat: c_long = 5000 + 255; +pub const SYS_symlinkat: c_long = 5000 + 256; +pub const SYS_readlinkat: c_long = 5000 + 257; +pub const SYS_fchmodat: c_long = 5000 + 258; +pub const SYS_faccessat: c_long = 5000 + 259; +pub const SYS_pselect6: c_long = 5000 + 260; +pub const SYS_ppoll: c_long = 5000 + 261; +pub const SYS_unshare: c_long = 5000 + 262; +pub const SYS_splice: c_long = 5000 + 263; +pub const SYS_sync_file_range: c_long = 5000 + 264; +pub const SYS_tee: c_long = 5000 + 265; +pub const SYS_vmsplice: c_long = 5000 + 266; +pub const SYS_move_pages: c_long = 5000 + 267; +pub const SYS_set_robust_list: c_long = 5000 + 268; +pub const SYS_get_robust_list: c_long = 5000 + 269; +pub const SYS_kexec_load: c_long = 5000 + 270; +pub const SYS_getcpu: c_long = 5000 + 271; +pub const SYS_epoll_pwait: c_long = 5000 + 272; +pub const SYS_ioprio_set: c_long = 5000 + 273; +pub const SYS_ioprio_get: c_long = 5000 + 274; +pub const SYS_utimensat: c_long = 5000 + 275; +pub const SYS_signalfd: c_long = 5000 + 276; +pub const SYS_timerfd: c_long = 5000 + 277; +pub const SYS_eventfd: c_long = 5000 + 278; +pub const SYS_fallocate: c_long = 5000 + 279; +pub const SYS_timerfd_create: c_long = 5000 + 280; +pub const SYS_timerfd_gettime: c_long = 5000 + 281; +pub const SYS_timerfd_settime: c_long = 5000 + 282; +pub const SYS_signalfd4: c_long = 5000 + 283; +pub const SYS_eventfd2: c_long = 5000 + 284; +pub const SYS_epoll_create1: c_long = 5000 + 285; +pub const SYS_dup3: c_long = 5000 + 286; +pub const SYS_pipe2: c_long = 5000 + 287; +pub const SYS_inotify_init1: c_long = 5000 + 288; +pub const SYS_preadv: c_long = 5000 + 289; +pub const SYS_pwritev: c_long = 5000 + 290; +pub const SYS_rt_tgsigqueueinfo: c_long = 5000 + 291; +pub const SYS_perf_event_open: c_long = 5000 + 292; +pub const SYS_accept4: c_long = 5000 + 293; +pub const SYS_recvmmsg: c_long = 5000 + 294; +pub const SYS_fanotify_init: c_long = 5000 + 295; +pub const SYS_fanotify_mark: c_long = 5000 + 296; +pub const SYS_prlimit64: c_long = 5000 + 297; +pub const SYS_name_to_handle_at: c_long = 5000 + 298; +pub const SYS_open_by_handle_at: c_long = 5000 + 299; +pub const SYS_clock_adjtime: c_long = 5000 + 300; +pub const SYS_syncfs: c_long = 5000 + 301; +pub const SYS_sendmmsg: c_long = 5000 + 302; +pub const SYS_setns: c_long = 5000 + 303; +pub const SYS_process_vm_readv: c_long = 5000 + 304; +pub const SYS_process_vm_writev: c_long = 5000 + 305; +pub const SYS_kcmp: c_long = 5000 + 306; +pub const SYS_finit_module: c_long = 5000 + 307; +pub const SYS_getdents64: c_long = 5000 + 308; +pub const SYS_sched_setattr: c_long = 5000 + 309; +pub const SYS_sched_getattr: c_long = 5000 + 310; +pub const SYS_renameat2: c_long = 5000 + 311; +pub const SYS_seccomp: c_long = 5000 + 312; +pub const SYS_getrandom: c_long = 5000 + 313; +pub const SYS_memfd_create: c_long = 5000 + 314; +pub const SYS_bpf: c_long = 5000 + 315; +pub const SYS_execveat: c_long = 5000 + 316; +pub const SYS_userfaultfd: c_long = 5000 + 317; +pub const SYS_membarrier: c_long = 5000 + 318; +pub const SYS_mlock2: c_long = 5000 + 319; +pub const SYS_copy_file_range: c_long = 5000 + 320; +pub const SYS_preadv2: c_long = 5000 + 321; +pub const SYS_pwritev2: c_long = 5000 + 322; +pub const SYS_pkey_mprotect: c_long = 5000 + 323; +pub const SYS_pkey_alloc: c_long = 5000 + 324; +pub const SYS_pkey_free: c_long = 5000 + 325; +pub const SYS_statx: c_long = 5000 + 326; +pub const SYS_pidfd_send_signal: c_long = 5000 + 424; +pub const SYS_io_uring_setup: c_long = 5000 + 425; +pub const SYS_io_uring_enter: c_long = 5000 + 426; +pub const SYS_io_uring_register: c_long = 5000 + 427; +pub const SYS_open_tree: c_long = 5000 + 428; +pub const SYS_move_mount: c_long = 5000 + 429; +pub const SYS_fsopen: c_long = 5000 + 430; +pub const SYS_fsconfig: c_long = 5000 + 431; +pub const SYS_fsmount: c_long = 5000 + 432; +pub const SYS_fspick: c_long = 5000 + 433; +pub const SYS_pidfd_open: c_long = 5000 + 434; +pub const SYS_clone3: c_long = 5000 + 435; +pub const SYS_close_range: c_long = 5000 + 436; +pub const SYS_openat2: c_long = 5000 + 437; +pub const SYS_pidfd_getfd: c_long = 5000 + 438; +pub const SYS_faccessat2: c_long = 5000 + 439; +pub const SYS_process_madvise: c_long = 5000 + 440; +pub const SYS_epoll_pwait2: c_long = 5000 + 441; +pub const SYS_mount_setattr: c_long = 5000 + 442; +pub const SYS_quotactl_fd: c_long = 5000 + 443; +pub const SYS_landlock_create_ruleset: c_long = 5000 + 444; +pub const SYS_landlock_add_rule: c_long = 5000 + 445; +pub const SYS_landlock_restrict_self: c_long = 5000 + 446; +pub const SYS_memfd_secret: c_long = 5000 + 447; +pub const SYS_process_mrelease: c_long = 5000 + 448; +pub const SYS_futex_waitv: c_long = 5000 + 449; +pub const SYS_set_mempolicy_home_node: c_long = 5000 + 450; -pub const O_DIRECT: ::c_int = 0x8000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const O_DIRECT: c_int = 0x8000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_NOFOLLOW: c_int = 0x20000; -pub const O_APPEND: ::c_int = 8; -pub const O_CREAT: ::c_int = 256; -pub const O_EXCL: ::c_int = 1024; -pub const O_NOCTTY: ::c_int = 2048; -pub const O_NONBLOCK: ::c_int = 128; -pub const O_SYNC: ::c_int = 0x4010; -pub const O_RSYNC: ::c_int = 0x4010; -pub const O_DSYNC: ::c_int = 0x10; -pub const O_ASYNC: ::c_int = 0x1000; -pub const O_LARGEFILE: ::c_int = 0x2000; +pub const O_APPEND: c_int = 8; +pub const O_CREAT: c_int = 256; +pub const O_EXCL: c_int = 1024; +pub const O_NOCTTY: c_int = 2048; +pub const O_NONBLOCK: c_int = 128; +pub const O_SYNC: c_int = 0x4010; +pub const O_RSYNC: c_int = 0x4010; +pub const O_DSYNC: c_int = 0x10; +pub const O_ASYNC: c_int = 0x1000; +pub const O_LARGEFILE: c_int = 0x2000; -pub const EDEADLK: ::c_int = 45; -pub const ENAMETOOLONG: ::c_int = 78; -pub const ENOLCK: ::c_int = 46; -pub const ENOSYS: ::c_int = 89; -pub const ENOTEMPTY: ::c_int = 93; -pub const ELOOP: ::c_int = 90; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const ECHRNG: ::c_int = 37; -pub const EL2NSYNC: ::c_int = 38; -pub const EL3HLT: ::c_int = 39; -pub const EL3RST: ::c_int = 40; -pub const ELNRNG: ::c_int = 41; -pub const EUNATCH: ::c_int = 42; -pub const ENOCSI: ::c_int = 43; -pub const EL2HLT: ::c_int = 44; -pub const EBADE: ::c_int = 50; -pub const EBADR: ::c_int = 51; -pub const EXFULL: ::c_int = 52; -pub const ENOANO: ::c_int = 53; -pub const EBADRQC: ::c_int = 54; -pub const EBADSLT: ::c_int = 55; -pub const EDEADLOCK: ::c_int = 56; -pub const EMULTIHOP: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 79; -pub const ENOTUNIQ: ::c_int = 80; -pub const EBADFD: ::c_int = 81; -pub const EBADMSG: ::c_int = 77; -pub const EREMCHG: ::c_int = 82; -pub const ELIBACC: ::c_int = 83; -pub const ELIBBAD: ::c_int = 84; -pub const ELIBSCN: ::c_int = 85; -pub const ELIBMAX: ::c_int = 86; -pub const ELIBEXEC: ::c_int = 87; -pub const EILSEQ: ::c_int = 88; -pub const ERESTART: ::c_int = 91; -pub const ESTRPIPE: ::c_int = 92; -pub const EUSERS: ::c_int = 94; -pub const ENOTSOCK: ::c_int = 95; -pub const EDESTADDRREQ: ::c_int = 96; -pub const EMSGSIZE: ::c_int = 97; -pub const EPROTOTYPE: ::c_int = 98; -pub const ENOPROTOOPT: ::c_int = 99; -pub const EPROTONOSUPPORT: ::c_int = 120; -pub const ESOCKTNOSUPPORT: ::c_int = 121; -pub const EOPNOTSUPP: ::c_int = 122; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 123; -pub const EAFNOSUPPORT: ::c_int = 124; -pub const EADDRINUSE: ::c_int = 125; -pub const EADDRNOTAVAIL: ::c_int = 126; -pub const ENETDOWN: ::c_int = 127; -pub const ENETUNREACH: ::c_int = 128; -pub const ENETRESET: ::c_int = 129; -pub const ECONNABORTED: ::c_int = 130; -pub const ECONNRESET: ::c_int = 131; -pub const ENOBUFS: ::c_int = 132; -pub const EISCONN: ::c_int = 133; -pub const ENOTCONN: ::c_int = 134; -pub const ESHUTDOWN: ::c_int = 143; -pub const ETOOMANYREFS: ::c_int = 144; -pub const ETIMEDOUT: ::c_int = 145; -pub const ECONNREFUSED: ::c_int = 146; -pub const EHOSTDOWN: ::c_int = 147; -pub const EHOSTUNREACH: ::c_int = 148; -pub const EALREADY: ::c_int = 149; -pub const EINPROGRESS: ::c_int = 150; -pub const ESTALE: ::c_int = 151; -pub const EUCLEAN: ::c_int = 135; -pub const ENOTNAM: ::c_int = 137; -pub const ENAVAIL: ::c_int = 138; -pub const EISNAM: ::c_int = 139; -pub const EREMOTEIO: ::c_int = 140; -pub const EDQUOT: ::c_int = 1133; -pub const ENOMEDIUM: ::c_int = 159; -pub const EMEDIUMTYPE: ::c_int = 160; -pub const ECANCELED: ::c_int = 158; -pub const ENOKEY: ::c_int = 161; -pub const EKEYEXPIRED: ::c_int = 162; -pub const EKEYREVOKED: ::c_int = 163; -pub const EKEYREJECTED: ::c_int = 164; -pub const EOWNERDEAD: ::c_int = 165; -pub const ENOTRECOVERABLE: ::c_int = 166; -pub const ERFKILL: ::c_int = 167; +pub const EDEADLK: c_int = 45; +pub const ENAMETOOLONG: c_int = 78; +pub const ENOLCK: c_int = 46; +pub const ENOSYS: c_int = 89; +pub const ENOTEMPTY: c_int = 93; +pub const ELOOP: c_int = 90; +pub const ENOMSG: c_int = 35; +pub const EIDRM: c_int = 36; +pub const ECHRNG: c_int = 37; +pub const EL2NSYNC: c_int = 38; +pub const EL3HLT: c_int = 39; +pub const EL3RST: c_int = 40; +pub const ELNRNG: c_int = 41; +pub const EUNATCH: c_int = 42; +pub const ENOCSI: c_int = 43; +pub const EL2HLT: c_int = 44; +pub const EBADE: c_int = 50; +pub const EBADR: c_int = 51; +pub const EXFULL: c_int = 52; +pub const ENOANO: c_int = 53; +pub const EBADRQC: c_int = 54; +pub const EBADSLT: c_int = 55; +pub const EDEADLOCK: c_int = 56; +pub const EMULTIHOP: c_int = 74; +pub const EOVERFLOW: c_int = 79; +pub const ENOTUNIQ: c_int = 80; +pub const EBADFD: c_int = 81; +pub const EBADMSG: c_int = 77; +pub const EREMCHG: c_int = 82; +pub const ELIBACC: c_int = 83; +pub const ELIBBAD: c_int = 84; +pub const ELIBSCN: c_int = 85; +pub const ELIBMAX: c_int = 86; +pub const ELIBEXEC: c_int = 87; +pub const EILSEQ: c_int = 88; +pub const ERESTART: c_int = 91; +pub const ESTRPIPE: c_int = 92; +pub const EUSERS: c_int = 94; +pub const ENOTSOCK: c_int = 95; +pub const EDESTADDRREQ: c_int = 96; +pub const EMSGSIZE: c_int = 97; +pub const EPROTOTYPE: c_int = 98; +pub const ENOPROTOOPT: c_int = 99; +pub const EPROTONOSUPPORT: c_int = 120; +pub const ESOCKTNOSUPPORT: c_int = 121; +pub const EOPNOTSUPP: c_int = 122; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 123; +pub const EAFNOSUPPORT: c_int = 124; +pub const EADDRINUSE: c_int = 125; +pub const EADDRNOTAVAIL: c_int = 126; +pub const ENETDOWN: c_int = 127; +pub const ENETUNREACH: c_int = 128; +pub const ENETRESET: c_int = 129; +pub const ECONNABORTED: c_int = 130; +pub const ECONNRESET: c_int = 131; +pub const ENOBUFS: c_int = 132; +pub const EISCONN: c_int = 133; +pub const ENOTCONN: c_int = 134; +pub const ESHUTDOWN: c_int = 143; +pub const ETOOMANYREFS: c_int = 144; +pub const ETIMEDOUT: c_int = 145; +pub const ECONNREFUSED: c_int = 146; +pub const EHOSTDOWN: c_int = 147; +pub const EHOSTUNREACH: c_int = 148; +pub const EALREADY: c_int = 149; +pub const EINPROGRESS: c_int = 150; +pub const ESTALE: c_int = 151; +pub const EUCLEAN: c_int = 135; +pub const ENOTNAM: c_int = 137; +pub const ENAVAIL: c_int = 138; +pub const EISNAM: c_int = 139; +pub const EREMOTEIO: c_int = 140; +pub const EDQUOT: c_int = 1133; +pub const ENOMEDIUM: c_int = 159; +pub const EMEDIUMTYPE: c_int = 160; +pub const ECANCELED: c_int = 158; +pub const ENOKEY: c_int = 161; +pub const EKEYEXPIRED: c_int = 162; +pub const EKEYREVOKED: c_int = 163; +pub const EKEYREJECTED: c_int = 164; +pub const EOWNERDEAD: c_int = 165; +pub const ENOTRECOVERABLE: c_int = 166; +pub const ERFKILL: c_int = 167; -pub const MAP_ANON: ::c_int = 0x800; -pub const MAP_GROWSDOWN: ::c_int = 0x1000; -pub const MAP_DENYWRITE: ::c_int = 0x2000; -pub const MAP_EXECUTABLE: ::c_int = 0x4000; -pub const MAP_LOCKED: ::c_int = 0x8000; -pub const MAP_NORESERVE: ::c_int = 0x400; -pub const MAP_POPULATE: ::c_int = 0x10000; -pub const MAP_NONBLOCK: ::c_int = 0x20000; -pub const MAP_STACK: ::c_int = 0x40000; -pub const MAP_HUGETLB: ::c_int = 0x080000; +pub const MAP_ANON: c_int = 0x800; +pub const MAP_GROWSDOWN: c_int = 0x1000; +pub const MAP_DENYWRITE: c_int = 0x2000; +pub const MAP_EXECUTABLE: c_int = 0x4000; +pub const MAP_LOCKED: c_int = 0x8000; +pub const MAP_NORESERVE: c_int = 0x400; +pub const MAP_POPULATE: c_int = 0x10000; +pub const MAP_NONBLOCK: c_int = 0x20000; +pub const MAP_STACK: c_int = 0x40000; +pub const MAP_HUGETLB: c_int = 0x080000; -pub const SOCK_STREAM: ::c_int = 2; -pub const SOCK_DGRAM: ::c_int = 1; +pub const SOCK_STREAM: c_int = 2; +pub const SOCK_DGRAM: c_int = 1; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000008; -pub const SA_NOCLDWAIT: ::c_int = 0x00010000; +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000008; +pub const SA_NOCLDWAIT: c_int = 0x00010000; -pub const SIGCHLD: ::c_int = 18; -pub const SIGBUS: ::c_int = 10; -pub const SIGTTIN: ::c_int = 26; -pub const SIGTTOU: ::c_int = 27; -pub const SIGXCPU: ::c_int = 30; -pub const SIGXFSZ: ::c_int = 31; -pub const SIGVTALRM: ::c_int = 28; -pub const SIGPROF: ::c_int = 29; -pub const SIGWINCH: ::c_int = 20; -pub const SIGUSR1: ::c_int = 16; -pub const SIGUSR2: ::c_int = 17; -pub const SIGCONT: ::c_int = 25; -pub const SIGSTOP: ::c_int = 23; -pub const SIGTSTP: ::c_int = 24; -pub const SIGURG: ::c_int = 21; -pub const SIGIO: ::c_int = 22; -pub const SIGSYS: ::c_int = 12; -pub const SIGPOLL: ::c_int = 22; -pub const SIGPWR: ::c_int = 19; -pub const SIG_SETMASK: ::c_int = 3; -pub const SIG_BLOCK: ::c_int = 0x1; -pub const SIG_UNBLOCK: ::c_int = 0x2; +pub const SIGCHLD: c_int = 18; +pub const SIGBUS: c_int = 10; +pub const SIGTTIN: c_int = 26; +pub const SIGTTOU: c_int = 27; +pub const SIGXCPU: c_int = 30; +pub const SIGXFSZ: c_int = 31; +pub const SIGVTALRM: c_int = 28; +pub const SIGPROF: c_int = 29; +pub const SIGWINCH: c_int = 20; +pub const SIGUSR1: c_int = 16; +pub const SIGUSR2: c_int = 17; +pub const SIGCONT: c_int = 25; +pub const SIGSTOP: c_int = 23; +pub const SIGTSTP: c_int = 24; +pub const SIGURG: c_int = 21; +pub const SIGIO: c_int = 22; +pub const SIGSYS: c_int = 12; +pub const SIGPOLL: c_int = 22; +pub const SIGPWR: c_int = 19; +pub const SIG_SETMASK: c_int = 3; +pub const SIG_BLOCK: c_int = 0x1; +pub const SIG_UNBLOCK: c_int = 0x2; -pub const POLLWRNORM: ::c_short = 0x004; -pub const POLLWRBAND: ::c_short = 0x100; +pub const POLLWRNORM: c_short = 0x004; +pub const POLLWRBAND: c_short = 0x100; pub const VEOF: usize = 16; pub const VEOL: usize = 17; pub const VEOL2: usize = 6; pub const VMIN: usize = 4; -pub const IEXTEN: ::tcflag_t = 0x00000100; -pub const TOSTOP: ::tcflag_t = 0x00008000; -pub const FLUSHO: ::tcflag_t = 0x00002000; -pub const EXTPROC: ::tcflag_t = 0o200000; +pub const IEXTEN: crate::tcflag_t = 0x00000100; +pub const TOSTOP: crate::tcflag_t = 0x00008000; +pub const FLUSHO: crate::tcflag_t = 0x00002000; +pub const EXTPROC: crate::tcflag_t = 0o200000; -pub const F_GETLK: ::c_int = 14; -pub const F_GETOWN: ::c_int = 23; -pub const F_SETOWN: ::c_int = 24; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; +pub const F_GETLK: c_int = 14; +pub const F_GETOWN: c_int = 23; +pub const F_SETOWN: c_int = 24; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: crate::tcflag_t = 0x00000800; +pub const TAB2: crate::tcflag_t = 0x00001000; +pub const TAB3: crate::tcflag_t = 0x00001800; +pub const CR1: crate::tcflag_t = 0x00000200; +pub const CR2: crate::tcflag_t = 0x00000400; +pub const CR3: crate::tcflag_t = 0x00000600; +pub const FF1: crate::tcflag_t = 0x00008000; +pub const BS1: crate::tcflag_t = 0x00002000; +pub const VT1: crate::tcflag_t = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -604,55 +606,55 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; -pub const EHWPOISON: ::c_int = 168; +pub const EHWPOISON: c_int = 168; diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index 9e893a36f8068..eaab68d565399 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -1,12 +1,14 @@ +use crate::{c_int, c_uint, c_void, size_t, ssize_t}; + pub type c_long = i64; pub type c_ulong = u64; -pub type regoff_t = ::c_long; +pub type regoff_t = c_long; s! { pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } pub struct pthread_attr_t { @@ -14,66 +16,66 @@ s! { } pub struct sigset_t { - __val: [::c_ulong; 16], + __val: [c_ulong; 16], } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::c_ulong, - __pad1: ::c_ulong, - __pad2: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: c_ulong, + __pad1: c_ulong, + __pad2: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, + pub msg_perm: crate::ipc_perm, + pub msg_stime: crate::time_t, + pub msg_rtime: crate::time_t, + pub msg_ctime: crate::time_t, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __pad1: c_ulong, + __pad2: c_ulong, } pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, #[cfg(target_endian = "big")] - __pad1: ::c_int, - pub msg_iovlen: ::c_int, + __pad1: c_int, + pub msg_iovlen: c_int, #[cfg(target_endian = "little")] - __pad1: ::c_int, - pub msg_control: *mut ::c_void, + __pad1: c_int, + pub msg_control: *mut c_void, #[cfg(target_endian = "big")] - __pad2: ::c_int, - pub msg_controllen: ::socklen_t, + __pad2: c_int, + pub msg_controllen: crate::socklen_t, #[cfg(target_endian = "little")] - __pad2: ::c_int, - pub msg_flags: ::c_int, + __pad2: c_int, + pub msg_flags: c_int, } pub struct cmsghdr { #[cfg(target_endian = "big")] - pub __pad1: ::c_int, - pub cmsg_len: ::socklen_t, + pub __pad1: c_int, + pub cmsg_len: crate::socklen_t, #[cfg(target_endian = "little")] - pub __pad1: ::c_int, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub __pad1: c_int, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } pub struct sem_t { - __val: [::c_int; 8], + __val: [c_int; 8], } } @@ -82,7 +84,7 @@ pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; extern "C" { - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; + pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; } cfg_if! { diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index 6d20733faaa7b..13d2fbb690e74 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -1,655 +1,657 @@ +use crate::{c_int, c_long, c_short, c_ulong, off_t, size_t}; + pub type c_char = u8; pub type wchar_t = i32; -pub type __u64 = ::c_ulong; -pub type __s64 = ::c_long; +pub type __u64 = c_ulong; +pub type __s64 = c_long; pub type nlink_t = u64; -pub type blksize_t = ::c_long; +pub type blksize_t = c_long; 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], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + __pad0: c_int, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_long; 3], } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_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: ::blkcnt64_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, - __reserved: [::c_long; 3], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino64_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + __pad0: c_int, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __reserved: [c_long; 3], } 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_int, - __unused1: ::c_long, - __unused2: ::c_long, + pub __ipc_perm_key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub __seq: c_int, + __unused1: c_long, + __unused2: c_long, } } -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_32BIT: ::c_int = 0x0040; -pub const O_APPEND: ::c_int = 1024; -pub const O_DIRECT: ::c_int = 0x20000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_LARGEFILE: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_ASYNC: ::c_int = 0x2000; +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MAP_32BIT: c_int = 0x0040; +pub const O_APPEND: c_int = 1024; +pub const O_DIRECT: c_int = 0x20000; +pub const O_DIRECTORY: c_int = 0x4000; +pub const O_LARGEFILE: c_int = 0x10000; +pub const O_NOFOLLOW: c_int = 0x8000; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_ASYNC: c_int = 0x2000; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EBADMSG: c_int = 74; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const ERFKILL: c_int = 132; +pub const EHWPOISON: c_int = 133; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_SYNC: c_int = 0x080000; -pub const PTRACE_SYSEMU: ::c_int = 0x1d; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 0x1e; +pub const PTRACE_SYSEMU: c_int = 0x1d; +pub const PTRACE_SYSEMU_SINGLESTEP: c_int = 0x1e; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; +pub const F_SETOWN: c_int = 8; pub const VEOF: usize = 4; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; -pub const SIGSTKSZ: ::size_t = 10240; -pub const MINSIGSTKSZ: ::size_t = 4096; +pub const SIGSTKSZ: size_t = 10240; +pub const MINSIGSTKSZ: size_t = 4096; // Syscall table -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_waitpid: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_time: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_break: ::c_long = 17; -pub const SYS_oldstat: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_stime: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_oldfstat: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_stty: ::c_long = 31; -pub const SYS_gtty: ::c_long = 32; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_ftime: ::c_long = 35; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_prof: ::c_long = 44; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_lock: ::c_long = 53; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_mpx: ::c_long = 56; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_ulimit: ::c_long = 58; -pub const SYS_oldolduname: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sgetmask: ::c_long = 68; -pub const SYS_ssetmask: ::c_long = 69; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrlimit: ::c_long = 76; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_select: ::c_long = 82; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_oldlstat: ::c_long = 84; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_profil: ::c_long = 98; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_ioperm: ::c_long = 101; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_olduname: ::c_long = 109; -pub const SYS_iopl: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_vm86: ::c_long = 113; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_modify_ldt: ::c_long = 123; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; /* Syscall for Andrew File System */ -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_query_module: ::c_long = 166; -pub const SYS_poll: ::c_long = 167; -pub const SYS_nfsservctl: ::c_long = 168; -pub const SYS_setresgid: ::c_long = 169; -pub const SYS_getresgid: ::c_long = 170; -pub const SYS_prctl: ::c_long = 171; -pub const SYS_rt_sigreturn: ::c_long = 172; -pub const SYS_rt_sigaction: ::c_long = 173; -pub const SYS_rt_sigprocmask: ::c_long = 174; -pub const SYS_rt_sigpending: ::c_long = 175; -pub const SYS_rt_sigtimedwait: ::c_long = 176; -pub const SYS_rt_sigqueueinfo: ::c_long = 177; -pub const SYS_rt_sigsuspend: ::c_long = 178; -pub const SYS_pread64: ::c_long = 179; -pub const SYS_pwrite64: ::c_long = 180; -pub const SYS_chown: ::c_long = 181; -pub const SYS_getcwd: ::c_long = 182; -pub const SYS_capget: ::c_long = 183; -pub const SYS_capset: ::c_long = 184; -pub const SYS_sigaltstack: ::c_long = 185; -pub const SYS_sendfile: ::c_long = 186; -pub const SYS_getpmsg: ::c_long = 187; /* some people actually want streams */ -pub const SYS_putpmsg: ::c_long = 188; /* some people actually want streams */ -pub const SYS_vfork: ::c_long = 189; -pub const SYS_ugetrlimit: ::c_long = 190; /* SuS compliant getrlimit */ -pub const SYS_readahead: ::c_long = 191; -pub const SYS_pciconfig_read: ::c_long = 198; -pub const SYS_pciconfig_write: ::c_long = 199; -pub const SYS_pciconfig_iobase: ::c_long = 200; -pub const SYS_multiplexer: ::c_long = 201; -pub const SYS_getdents64: ::c_long = 202; -pub const SYS_pivot_root: ::c_long = 203; -pub const SYS_madvise: ::c_long = 205; -pub const SYS_mincore: ::c_long = 206; -pub const SYS_gettid: ::c_long = 207; -pub const SYS_tkill: ::c_long = 208; -pub const SYS_setxattr: ::c_long = 209; -pub const SYS_lsetxattr: ::c_long = 210; -pub const SYS_fsetxattr: ::c_long = 211; -pub const SYS_getxattr: ::c_long = 212; -pub const SYS_lgetxattr: ::c_long = 213; -pub const SYS_fgetxattr: ::c_long = 214; -pub const SYS_listxattr: ::c_long = 215; -pub const SYS_llistxattr: ::c_long = 216; -pub const SYS_flistxattr: ::c_long = 217; -pub const SYS_removexattr: ::c_long = 218; -pub const SYS_lremovexattr: ::c_long = 219; -pub const SYS_fremovexattr: ::c_long = 220; -pub const SYS_futex: ::c_long = 221; -pub const SYS_sched_setaffinity: ::c_long = 222; -pub const SYS_sched_getaffinity: ::c_long = 223; -pub const SYS_tuxcall: ::c_long = 225; -pub const SYS_io_setup: ::c_long = 227; -pub const SYS_io_destroy: ::c_long = 228; -pub const SYS_io_getevents: ::c_long = 229; -pub const SYS_io_submit: ::c_long = 230; -pub const SYS_io_cancel: ::c_long = 231; -pub const SYS_set_tid_address: ::c_long = 232; -pub const SYS_exit_group: ::c_long = 234; -pub const SYS_lookup_dcookie: ::c_long = 235; -pub const SYS_epoll_create: ::c_long = 236; -pub const SYS_epoll_ctl: ::c_long = 237; -pub const SYS_epoll_wait: ::c_long = 238; -pub const SYS_remap_file_pages: ::c_long = 239; -pub const SYS_timer_create: ::c_long = 240; -pub const SYS_timer_settime: ::c_long = 241; -pub const SYS_timer_gettime: ::c_long = 242; -pub const SYS_timer_getoverrun: ::c_long = 243; -pub const SYS_timer_delete: ::c_long = 244; -pub const SYS_clock_settime: ::c_long = 245; -pub const SYS_clock_gettime: ::c_long = 246; -pub const SYS_clock_getres: ::c_long = 247; -pub const SYS_clock_nanosleep: ::c_long = 248; -pub const SYS_swapcontext: ::c_long = 249; -pub const SYS_tgkill: ::c_long = 250; -pub const SYS_utimes: ::c_long = 251; -pub const SYS_statfs64: ::c_long = 252; -pub const SYS_fstatfs64: ::c_long = 253; -pub const SYS_rtas: ::c_long = 255; -pub const SYS_sys_debug_setcontext: ::c_long = 256; -pub const SYS_migrate_pages: ::c_long = 258; -pub const SYS_mbind: ::c_long = 259; -pub const SYS_get_mempolicy: ::c_long = 260; -pub const SYS_set_mempolicy: ::c_long = 261; -pub const SYS_mq_open: ::c_long = 262; -pub const SYS_mq_unlink: ::c_long = 263; -pub const SYS_mq_timedsend: ::c_long = 264; -pub const SYS_mq_timedreceive: ::c_long = 265; -pub const SYS_mq_notify: ::c_long = 266; -pub const SYS_mq_getsetattr: ::c_long = 267; -pub const SYS_kexec_load: ::c_long = 268; -pub const SYS_add_key: ::c_long = 269; -pub const SYS_request_key: ::c_long = 270; -pub const SYS_keyctl: ::c_long = 271; -pub const SYS_waitid: ::c_long = 272; -pub const SYS_ioprio_set: ::c_long = 273; -pub const SYS_ioprio_get: ::c_long = 274; -pub const SYS_inotify_init: ::c_long = 275; -pub const SYS_inotify_add_watch: ::c_long = 276; -pub const SYS_inotify_rm_watch: ::c_long = 277; -pub const SYS_spu_run: ::c_long = 278; -pub const SYS_spu_create: ::c_long = 279; -pub const SYS_pselect6: ::c_long = 280; -pub const SYS_ppoll: ::c_long = 281; -pub const SYS_unshare: ::c_long = 282; -pub const SYS_splice: ::c_long = 283; -pub const SYS_tee: ::c_long = 284; -pub const SYS_vmsplice: ::c_long = 285; -pub const SYS_openat: ::c_long = 286; -pub const SYS_mkdirat: ::c_long = 287; -pub const SYS_mknodat: ::c_long = 288; -pub const SYS_fchownat: ::c_long = 289; -pub const SYS_futimesat: ::c_long = 290; -pub const SYS_newfstatat: ::c_long = 291; -pub const SYS_unlinkat: ::c_long = 292; -pub const SYS_renameat: ::c_long = 293; -pub const SYS_linkat: ::c_long = 294; -pub const SYS_symlinkat: ::c_long = 295; -pub const SYS_readlinkat: ::c_long = 296; -pub const SYS_fchmodat: ::c_long = 297; -pub const SYS_faccessat: ::c_long = 298; -pub const SYS_get_robust_list: ::c_long = 299; -pub const SYS_set_robust_list: ::c_long = 300; -pub const SYS_move_pages: ::c_long = 301; -pub const SYS_getcpu: ::c_long = 302; -pub const SYS_epoll_pwait: ::c_long = 303; -pub const SYS_utimensat: ::c_long = 304; -pub const SYS_signalfd: ::c_long = 305; -pub const SYS_timerfd_create: ::c_long = 306; -pub const SYS_eventfd: ::c_long = 307; -pub const SYS_sync_file_range2: ::c_long = 308; -pub const SYS_fallocate: ::c_long = 309; -pub const SYS_subpage_prot: ::c_long = 310; -pub const SYS_timerfd_settime: ::c_long = 311; -pub const SYS_timerfd_gettime: ::c_long = 312; -pub const SYS_signalfd4: ::c_long = 313; -pub const SYS_eventfd2: ::c_long = 314; -pub const SYS_epoll_create1: ::c_long = 315; -pub const SYS_dup3: ::c_long = 316; -pub const SYS_pipe2: ::c_long = 317; -pub const SYS_inotify_init1: ::c_long = 318; -pub const SYS_perf_event_open: ::c_long = 319; -pub const SYS_preadv: ::c_long = 320; -pub const SYS_pwritev: ::c_long = 321; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 322; -pub const SYS_fanotify_init: ::c_long = 323; -pub const SYS_fanotify_mark: ::c_long = 324; -pub const SYS_prlimit64: ::c_long = 325; -pub const SYS_socket: ::c_long = 326; -pub const SYS_bind: ::c_long = 327; -pub const SYS_connect: ::c_long = 328; -pub const SYS_listen: ::c_long = 329; -pub const SYS_accept: ::c_long = 330; -pub const SYS_getsockname: ::c_long = 331; -pub const SYS_getpeername: ::c_long = 332; -pub const SYS_socketpair: ::c_long = 333; -pub const SYS_send: ::c_long = 334; -pub const SYS_sendto: ::c_long = 335; -pub const SYS_recv: ::c_long = 336; -pub const SYS_recvfrom: ::c_long = 337; -pub const SYS_shutdown: ::c_long = 338; -pub const SYS_setsockopt: ::c_long = 339; -pub const SYS_getsockopt: ::c_long = 340; -pub const SYS_sendmsg: ::c_long = 341; -pub const SYS_recvmsg: ::c_long = 342; -pub const SYS_recvmmsg: ::c_long = 343; -pub const SYS_accept4: ::c_long = 344; -pub const SYS_name_to_handle_at: ::c_long = 345; -pub const SYS_open_by_handle_at: ::c_long = 346; -pub const SYS_clock_adjtime: ::c_long = 347; -pub const SYS_syncfs: ::c_long = 348; -pub const SYS_sendmmsg: ::c_long = 349; -pub const SYS_setns: ::c_long = 350; -pub const SYS_process_vm_readv: ::c_long = 351; -pub const SYS_process_vm_writev: ::c_long = 352; -pub const SYS_finit_module: ::c_long = 353; -pub const SYS_kcmp: ::c_long = 354; -pub const SYS_sched_setattr: ::c_long = 355; -pub const SYS_sched_getattr: ::c_long = 356; -pub const SYS_renameat2: ::c_long = 357; -pub const SYS_seccomp: ::c_long = 358; -pub const SYS_getrandom: ::c_long = 359; -pub const SYS_memfd_create: ::c_long = 360; -pub const SYS_bpf: ::c_long = 361; -pub const SYS_execveat: ::c_long = 362; -pub const SYS_switch_endian: ::c_long = 363; -pub const SYS_userfaultfd: ::c_long = 364; -pub const SYS_membarrier: ::c_long = 365; -pub const SYS_mlock2: ::c_long = 378; -pub const SYS_copy_file_range: ::c_long = 379; -pub const SYS_preadv2: ::c_long = 380; -pub const SYS_pwritev2: ::c_long = 381; -pub const SYS_kexec_file_load: ::c_long = 382; -pub const SYS_statx: ::c_long = 383; -pub const SYS_pkey_alloc: ::c_long = 384; -pub const SYS_pkey_free: ::c_long = 385; -pub const SYS_pkey_mprotect: ::c_long = 386; -pub const SYS_rseq: ::c_long = 387; -pub const SYS_io_pgetevents: ::c_long = 388; -pub const SYS_semtimedop: ::c_long = 392; -pub const SYS_semget: ::c_long = 393; -pub const SYS_semctl: ::c_long = 394; -pub const SYS_shmget: ::c_long = 395; -pub const SYS_shmctl: ::c_long = 396; -pub const SYS_shmat: ::c_long = 397; -pub const SYS_shmdt: ::c_long = 398; -pub const SYS_msgget: ::c_long = 399; -pub const SYS_msgsnd: ::c_long = 400; -pub const SYS_msgrcv: ::c_long = 401; -pub const SYS_msgctl: ::c_long = 402; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_restart_syscall: c_long = 0; +pub const SYS_exit: c_long = 1; +pub const SYS_fork: c_long = 2; +pub const SYS_read: c_long = 3; +pub const SYS_write: c_long = 4; +pub const SYS_open: c_long = 5; +pub const SYS_close: c_long = 6; +pub const SYS_waitpid: c_long = 7; +pub const SYS_creat: c_long = 8; +pub const SYS_link: c_long = 9; +pub const SYS_unlink: c_long = 10; +pub const SYS_execve: c_long = 11; +pub const SYS_chdir: c_long = 12; +pub const SYS_time: c_long = 13; +pub const SYS_mknod: c_long = 14; +pub const SYS_chmod: c_long = 15; +pub const SYS_lchown: c_long = 16; +pub const SYS_break: c_long = 17; +pub const SYS_oldstat: c_long = 18; +pub const SYS_lseek: c_long = 19; +pub const SYS_getpid: c_long = 20; +pub const SYS_mount: c_long = 21; +pub const SYS_umount: c_long = 22; +pub const SYS_setuid: c_long = 23; +pub const SYS_getuid: c_long = 24; +pub const SYS_stime: c_long = 25; +pub const SYS_ptrace: c_long = 26; +pub const SYS_alarm: c_long = 27; +pub const SYS_oldfstat: c_long = 28; +pub const SYS_pause: c_long = 29; +pub const SYS_utime: c_long = 30; +pub const SYS_stty: c_long = 31; +pub const SYS_gtty: c_long = 32; +pub const SYS_access: c_long = 33; +pub const SYS_nice: c_long = 34; +pub const SYS_ftime: c_long = 35; +pub const SYS_sync: c_long = 36; +pub const SYS_kill: c_long = 37; +pub const SYS_rename: c_long = 38; +pub const SYS_mkdir: c_long = 39; +pub const SYS_rmdir: c_long = 40; +pub const SYS_dup: c_long = 41; +pub const SYS_pipe: c_long = 42; +pub const SYS_times: c_long = 43; +pub const SYS_prof: c_long = 44; +pub const SYS_brk: c_long = 45; +pub const SYS_setgid: c_long = 46; +pub const SYS_getgid: c_long = 47; +pub const SYS_signal: c_long = 48; +pub const SYS_geteuid: c_long = 49; +pub const SYS_getegid: c_long = 50; +pub const SYS_acct: c_long = 51; +pub const SYS_umount2: c_long = 52; +pub const SYS_lock: c_long = 53; +pub const SYS_ioctl: c_long = 54; +pub const SYS_fcntl: c_long = 55; +pub const SYS_mpx: c_long = 56; +pub const SYS_setpgid: c_long = 57; +pub const SYS_ulimit: c_long = 58; +pub const SYS_oldolduname: c_long = 59; +pub const SYS_umask: c_long = 60; +pub const SYS_chroot: c_long = 61; +pub const SYS_ustat: c_long = 62; +pub const SYS_dup2: c_long = 63; +pub const SYS_getppid: c_long = 64; +pub const SYS_getpgrp: c_long = 65; +pub const SYS_setsid: c_long = 66; +pub const SYS_sigaction: c_long = 67; +pub const SYS_sgetmask: c_long = 68; +pub const SYS_ssetmask: c_long = 69; +pub const SYS_setreuid: c_long = 70; +pub const SYS_setregid: c_long = 71; +pub const SYS_sigsuspend: c_long = 72; +pub const SYS_sigpending: c_long = 73; +pub const SYS_sethostname: c_long = 74; +pub const SYS_setrlimit: c_long = 75; +pub const SYS_getrlimit: c_long = 76; +pub const SYS_getrusage: c_long = 77; +pub const SYS_gettimeofday: c_long = 78; +pub const SYS_settimeofday: c_long = 79; +pub const SYS_getgroups: c_long = 80; +pub const SYS_setgroups: c_long = 81; +pub const SYS_select: c_long = 82; +pub const SYS_symlink: c_long = 83; +pub const SYS_oldlstat: c_long = 84; +pub const SYS_readlink: c_long = 85; +pub const SYS_uselib: c_long = 86; +pub const SYS_swapon: c_long = 87; +pub const SYS_reboot: c_long = 88; +pub const SYS_readdir: c_long = 89; +pub const SYS_mmap: c_long = 90; +pub const SYS_munmap: c_long = 91; +pub const SYS_truncate: c_long = 92; +pub const SYS_ftruncate: c_long = 93; +pub const SYS_fchmod: c_long = 94; +pub const SYS_fchown: c_long = 95; +pub const SYS_getpriority: c_long = 96; +pub const SYS_setpriority: c_long = 97; +pub const SYS_profil: c_long = 98; +pub const SYS_statfs: c_long = 99; +pub const SYS_fstatfs: c_long = 100; +pub const SYS_ioperm: c_long = 101; +pub const SYS_socketcall: c_long = 102; +pub const SYS_syslog: c_long = 103; +pub const SYS_setitimer: c_long = 104; +pub const SYS_getitimer: c_long = 105; +pub const SYS_stat: c_long = 106; +pub const SYS_lstat: c_long = 107; +pub const SYS_fstat: c_long = 108; +pub const SYS_olduname: c_long = 109; +pub const SYS_iopl: c_long = 110; +pub const SYS_vhangup: c_long = 111; +pub const SYS_idle: c_long = 112; +pub const SYS_vm86: c_long = 113; +pub const SYS_wait4: c_long = 114; +pub const SYS_swapoff: c_long = 115; +pub const SYS_sysinfo: c_long = 116; +pub const SYS_ipc: c_long = 117; +pub const SYS_fsync: c_long = 118; +pub const SYS_sigreturn: c_long = 119; +pub const SYS_clone: c_long = 120; +pub const SYS_setdomainname: c_long = 121; +pub const SYS_uname: c_long = 122; +pub const SYS_modify_ldt: c_long = 123; +pub const SYS_adjtimex: c_long = 124; +pub const SYS_mprotect: c_long = 125; +pub const SYS_sigprocmask: c_long = 126; +pub const SYS_create_module: c_long = 127; +pub const SYS_init_module: c_long = 128; +pub const SYS_delete_module: c_long = 129; +pub const SYS_get_kernel_syms: c_long = 130; +pub const SYS_quotactl: c_long = 131; +pub const SYS_getpgid: c_long = 132; +pub const SYS_fchdir: c_long = 133; +pub const SYS_bdflush: c_long = 134; +pub const SYS_sysfs: c_long = 135; +pub const SYS_personality: c_long = 136; +pub const SYS_afs_syscall: c_long = 137; /* Syscall for Andrew File System */ +pub const SYS_setfsuid: c_long = 138; +pub const SYS_setfsgid: c_long = 139; +pub const SYS__llseek: c_long = 140; +pub const SYS_getdents: c_long = 141; +pub const SYS__newselect: c_long = 142; +pub const SYS_flock: c_long = 143; +pub const SYS_msync: c_long = 144; +pub const SYS_readv: c_long = 145; +pub const SYS_writev: c_long = 146; +pub const SYS_getsid: c_long = 147; +pub const SYS_fdatasync: c_long = 148; +pub const SYS__sysctl: c_long = 149; +pub const SYS_mlock: c_long = 150; +pub const SYS_munlock: c_long = 151; +pub const SYS_mlockall: c_long = 152; +pub const SYS_munlockall: c_long = 153; +pub const SYS_sched_setparam: c_long = 154; +pub const SYS_sched_getparam: c_long = 155; +pub const SYS_sched_setscheduler: c_long = 156; +pub const SYS_sched_getscheduler: c_long = 157; +pub const SYS_sched_yield: c_long = 158; +pub const SYS_sched_get_priority_max: c_long = 159; +pub const SYS_sched_get_priority_min: c_long = 160; +pub const SYS_sched_rr_get_interval: c_long = 161; +pub const SYS_nanosleep: c_long = 162; +pub const SYS_mremap: c_long = 163; +pub const SYS_setresuid: c_long = 164; +pub const SYS_getresuid: c_long = 165; +pub const SYS_query_module: c_long = 166; +pub const SYS_poll: c_long = 167; +pub const SYS_nfsservctl: c_long = 168; +pub const SYS_setresgid: c_long = 169; +pub const SYS_getresgid: c_long = 170; +pub const SYS_prctl: c_long = 171; +pub const SYS_rt_sigreturn: c_long = 172; +pub const SYS_rt_sigaction: c_long = 173; +pub const SYS_rt_sigprocmask: c_long = 174; +pub const SYS_rt_sigpending: c_long = 175; +pub const SYS_rt_sigtimedwait: c_long = 176; +pub const SYS_rt_sigqueueinfo: c_long = 177; +pub const SYS_rt_sigsuspend: c_long = 178; +pub const SYS_pread64: c_long = 179; +pub const SYS_pwrite64: c_long = 180; +pub const SYS_chown: c_long = 181; +pub const SYS_getcwd: c_long = 182; +pub const SYS_capget: c_long = 183; +pub const SYS_capset: c_long = 184; +pub const SYS_sigaltstack: c_long = 185; +pub const SYS_sendfile: c_long = 186; +pub const SYS_getpmsg: c_long = 187; /* some people actually want streams */ +pub const SYS_putpmsg: c_long = 188; /* some people actually want streams */ +pub const SYS_vfork: c_long = 189; +pub const SYS_ugetrlimit: c_long = 190; /* SuS compliant getrlimit */ +pub const SYS_readahead: c_long = 191; +pub const SYS_pciconfig_read: c_long = 198; +pub const SYS_pciconfig_write: c_long = 199; +pub const SYS_pciconfig_iobase: c_long = 200; +pub const SYS_multiplexer: c_long = 201; +pub const SYS_getdents64: c_long = 202; +pub const SYS_pivot_root: c_long = 203; +pub const SYS_madvise: c_long = 205; +pub const SYS_mincore: c_long = 206; +pub const SYS_gettid: c_long = 207; +pub const SYS_tkill: c_long = 208; +pub const SYS_setxattr: c_long = 209; +pub const SYS_lsetxattr: c_long = 210; +pub const SYS_fsetxattr: c_long = 211; +pub const SYS_getxattr: c_long = 212; +pub const SYS_lgetxattr: c_long = 213; +pub const SYS_fgetxattr: c_long = 214; +pub const SYS_listxattr: c_long = 215; +pub const SYS_llistxattr: c_long = 216; +pub const SYS_flistxattr: c_long = 217; +pub const SYS_removexattr: c_long = 218; +pub const SYS_lremovexattr: c_long = 219; +pub const SYS_fremovexattr: c_long = 220; +pub const SYS_futex: c_long = 221; +pub const SYS_sched_setaffinity: c_long = 222; +pub const SYS_sched_getaffinity: c_long = 223; +pub const SYS_tuxcall: c_long = 225; +pub const SYS_io_setup: c_long = 227; +pub const SYS_io_destroy: c_long = 228; +pub const SYS_io_getevents: c_long = 229; +pub const SYS_io_submit: c_long = 230; +pub const SYS_io_cancel: c_long = 231; +pub const SYS_set_tid_address: c_long = 232; +pub const SYS_exit_group: c_long = 234; +pub const SYS_lookup_dcookie: c_long = 235; +pub const SYS_epoll_create: c_long = 236; +pub const SYS_epoll_ctl: c_long = 237; +pub const SYS_epoll_wait: c_long = 238; +pub const SYS_remap_file_pages: c_long = 239; +pub const SYS_timer_create: c_long = 240; +pub const SYS_timer_settime: c_long = 241; +pub const SYS_timer_gettime: c_long = 242; +pub const SYS_timer_getoverrun: c_long = 243; +pub const SYS_timer_delete: c_long = 244; +pub const SYS_clock_settime: c_long = 245; +pub const SYS_clock_gettime: c_long = 246; +pub const SYS_clock_getres: c_long = 247; +pub const SYS_clock_nanosleep: c_long = 248; +pub const SYS_swapcontext: c_long = 249; +pub const SYS_tgkill: c_long = 250; +pub const SYS_utimes: c_long = 251; +pub const SYS_statfs64: c_long = 252; +pub const SYS_fstatfs64: c_long = 253; +pub const SYS_rtas: c_long = 255; +pub const SYS_sys_debug_setcontext: c_long = 256; +pub const SYS_migrate_pages: c_long = 258; +pub const SYS_mbind: c_long = 259; +pub const SYS_get_mempolicy: c_long = 260; +pub const SYS_set_mempolicy: c_long = 261; +pub const SYS_mq_open: c_long = 262; +pub const SYS_mq_unlink: c_long = 263; +pub const SYS_mq_timedsend: c_long = 264; +pub const SYS_mq_timedreceive: c_long = 265; +pub const SYS_mq_notify: c_long = 266; +pub const SYS_mq_getsetattr: c_long = 267; +pub const SYS_kexec_load: c_long = 268; +pub const SYS_add_key: c_long = 269; +pub const SYS_request_key: c_long = 270; +pub const SYS_keyctl: c_long = 271; +pub const SYS_waitid: c_long = 272; +pub const SYS_ioprio_set: c_long = 273; +pub const SYS_ioprio_get: c_long = 274; +pub const SYS_inotify_init: c_long = 275; +pub const SYS_inotify_add_watch: c_long = 276; +pub const SYS_inotify_rm_watch: c_long = 277; +pub const SYS_spu_run: c_long = 278; +pub const SYS_spu_create: c_long = 279; +pub const SYS_pselect6: c_long = 280; +pub const SYS_ppoll: c_long = 281; +pub const SYS_unshare: c_long = 282; +pub const SYS_splice: c_long = 283; +pub const SYS_tee: c_long = 284; +pub const SYS_vmsplice: c_long = 285; +pub const SYS_openat: c_long = 286; +pub const SYS_mkdirat: c_long = 287; +pub const SYS_mknodat: c_long = 288; +pub const SYS_fchownat: c_long = 289; +pub const SYS_futimesat: c_long = 290; +pub const SYS_newfstatat: c_long = 291; +pub const SYS_unlinkat: c_long = 292; +pub const SYS_renameat: c_long = 293; +pub const SYS_linkat: c_long = 294; +pub const SYS_symlinkat: c_long = 295; +pub const SYS_readlinkat: c_long = 296; +pub const SYS_fchmodat: c_long = 297; +pub const SYS_faccessat: c_long = 298; +pub const SYS_get_robust_list: c_long = 299; +pub const SYS_set_robust_list: c_long = 300; +pub const SYS_move_pages: c_long = 301; +pub const SYS_getcpu: c_long = 302; +pub const SYS_epoll_pwait: c_long = 303; +pub const SYS_utimensat: c_long = 304; +pub const SYS_signalfd: c_long = 305; +pub const SYS_timerfd_create: c_long = 306; +pub const SYS_eventfd: c_long = 307; +pub const SYS_sync_file_range2: c_long = 308; +pub const SYS_fallocate: c_long = 309; +pub const SYS_subpage_prot: c_long = 310; +pub const SYS_timerfd_settime: c_long = 311; +pub const SYS_timerfd_gettime: c_long = 312; +pub const SYS_signalfd4: c_long = 313; +pub const SYS_eventfd2: c_long = 314; +pub const SYS_epoll_create1: c_long = 315; +pub const SYS_dup3: c_long = 316; +pub const SYS_pipe2: c_long = 317; +pub const SYS_inotify_init1: c_long = 318; +pub const SYS_perf_event_open: c_long = 319; +pub const SYS_preadv: c_long = 320; +pub const SYS_pwritev: c_long = 321; +pub const SYS_rt_tgsigqueueinfo: c_long = 322; +pub const SYS_fanotify_init: c_long = 323; +pub const SYS_fanotify_mark: c_long = 324; +pub const SYS_prlimit64: c_long = 325; +pub const SYS_socket: c_long = 326; +pub const SYS_bind: c_long = 327; +pub const SYS_connect: c_long = 328; +pub const SYS_listen: c_long = 329; +pub const SYS_accept: c_long = 330; +pub const SYS_getsockname: c_long = 331; +pub const SYS_getpeername: c_long = 332; +pub const SYS_socketpair: c_long = 333; +pub const SYS_send: c_long = 334; +pub const SYS_sendto: c_long = 335; +pub const SYS_recv: c_long = 336; +pub const SYS_recvfrom: c_long = 337; +pub const SYS_shutdown: c_long = 338; +pub const SYS_setsockopt: c_long = 339; +pub const SYS_getsockopt: c_long = 340; +pub const SYS_sendmsg: c_long = 341; +pub const SYS_recvmsg: c_long = 342; +pub const SYS_recvmmsg: c_long = 343; +pub const SYS_accept4: c_long = 344; +pub const SYS_name_to_handle_at: c_long = 345; +pub const SYS_open_by_handle_at: c_long = 346; +pub const SYS_clock_adjtime: c_long = 347; +pub const SYS_syncfs: c_long = 348; +pub const SYS_sendmmsg: c_long = 349; +pub const SYS_setns: c_long = 350; +pub const SYS_process_vm_readv: c_long = 351; +pub const SYS_process_vm_writev: c_long = 352; +pub const SYS_finit_module: c_long = 353; +pub const SYS_kcmp: c_long = 354; +pub const SYS_sched_setattr: c_long = 355; +pub const SYS_sched_getattr: c_long = 356; +pub const SYS_renameat2: c_long = 357; +pub const SYS_seccomp: c_long = 358; +pub const SYS_getrandom: c_long = 359; +pub const SYS_memfd_create: c_long = 360; +pub const SYS_bpf: c_long = 361; +pub const SYS_execveat: c_long = 362; +pub const SYS_switch_endian: c_long = 363; +pub const SYS_userfaultfd: c_long = 364; +pub const SYS_membarrier: c_long = 365; +pub const SYS_mlock2: c_long = 378; +pub const SYS_copy_file_range: c_long = 379; +pub const SYS_preadv2: c_long = 380; +pub const SYS_pwritev2: c_long = 381; +pub const SYS_kexec_file_load: c_long = 382; +pub const SYS_statx: c_long = 383; +pub const SYS_pkey_alloc: c_long = 384; +pub const SYS_pkey_free: c_long = 385; +pub const SYS_pkey_mprotect: c_long = 386; +pub const SYS_rseq: c_long = 387; +pub const SYS_io_pgetevents: c_long = 388; +pub const SYS_semtimedop: c_long = 392; +pub const SYS_semget: c_long = 393; +pub const SYS_semctl: c_long = 394; +pub const SYS_shmget: c_long = 395; +pub const SYS_shmctl: c_long = 396; +pub const SYS_shmat: c_long = 397; +pub const SYS_shmdt: c_long = 398; +pub const SYS_msgget: c_long = 399; +pub const SYS_msgsnd: c_long = 400; +pub const SYS_msgrcv: c_long = 401; +pub const SYS_msgctl: c_long = 402; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; -pub const EDEADLK: ::c_int = 58; -pub const EDEADLOCK: ::c_int = EDEADLK; +pub const EDEADLK: c_int = 58; +pub const EDEADLOCK: c_int = EDEADLK; -pub const EXTPROC: ::tcflag_t = 0x10000000; +pub const EXTPROC: crate::tcflag_t = 0x10000000; pub const VEOL: usize = 6; pub const VEOL2: usize = 8; pub const VMIN: usize = 5; -pub const IEXTEN: ::tcflag_t = 0x00000400; -pub const TOSTOP: ::tcflag_t = 0x00400000; -pub const FLUSHO: ::tcflag_t = 0x00800000; +pub const IEXTEN: crate::tcflag_t = 0x00000400; +pub const TOSTOP: crate::tcflag_t = 0x00400000; +pub const FLUSHO: crate::tcflag_t = 0x00800000; -pub const MCL_CURRENT: ::c_int = 0x2000; -pub const MCL_FUTURE: ::c_int = 0x4000; -pub const MCL_ONFAULT: ::c_int = 0x8000; -pub const CBAUD: ::tcflag_t = 0xff; -pub const TAB1: ::c_int = 0x400; -pub const TAB2: ::c_int = 0x800; -pub const TAB3: ::c_int = 0xc00; -pub const CR1: ::c_int = 0x1000; -pub const CR2: ::c_int = 0x2000; -pub const CR3: ::c_int = 0x3000; -pub const FF1: ::c_int = 0x4000; -pub const BS1: ::c_int = 0x8000; -pub const VT1: ::c_int = 0x10000; +pub const MCL_CURRENT: c_int = 0x2000; +pub const MCL_FUTURE: c_int = 0x4000; +pub const MCL_ONFAULT: c_int = 0x8000; +pub const CBAUD: crate::tcflag_t = 0xff; +pub const TAB1: c_int = 0x400; +pub const TAB2: c_int = 0x800; +pub const TAB3: c_int = 0xc00; +pub const CR1: c_int = 0x1000; +pub const CR2: c_int = 0x2000; +pub const CR3: c_int = 0x3000; +pub const FF1: c_int = 0x4000; +pub const BS1: c_int = 0x8000; +pub const VT1: c_int = 0x10000; pub const VWERASE: usize = 10; pub const VREPRINT: usize = 11; pub const VSUSP: usize = 12; @@ -657,55 +659,55 @@ pub const VSTART: usize = 13; pub const VSTOP: usize = 14; pub const VDISCARD: usize = 16; pub const VTIME: usize = 7; -pub const IXON: ::tcflag_t = 0x00000200; -pub const IXOFF: ::tcflag_t = 0x00000400; -pub const ONLCR: ::tcflag_t = 0x2; -pub const CSIZE: ::tcflag_t = 0x00000300; +pub const IXON: crate::tcflag_t = 0x00000200; +pub const IXOFF: crate::tcflag_t = 0x00000400; +pub const ONLCR: crate::tcflag_t = 0x2; +pub const CSIZE: crate::tcflag_t = 0x00000300; -pub const CS6: ::tcflag_t = 0x00000100; -pub const CS7: ::tcflag_t = 0x00000200; -pub const CS8: ::tcflag_t = 0x00000300; -pub const CSTOPB: ::tcflag_t = 0x00000400; -pub const CREAD: ::tcflag_t = 0x00000800; -pub const PARENB: ::tcflag_t = 0x00001000; -pub const PARODD: ::tcflag_t = 0x00002000; -pub const HUPCL: ::tcflag_t = 0x00004000; -pub const CLOCAL: ::tcflag_t = 0x00008000; -pub const ECHOKE: ::tcflag_t = 0x00000001; -pub const ECHOE: ::tcflag_t = 0x00000002; -pub const ECHOK: ::tcflag_t = 0x00000004; -pub const ECHONL: ::tcflag_t = 0x00000010; -pub const ECHOPRT: ::tcflag_t = 0x00000020; -pub const ECHOCTL: ::tcflag_t = 0x00000040; -pub const ISIG: ::tcflag_t = 0x00000080; -pub const ICANON: ::tcflag_t = 0x00000100; -pub const PENDIN: ::tcflag_t = 0x20000000; -pub const NOFLSH: ::tcflag_t = 0x80000000; +pub const CS6: crate::tcflag_t = 0x00000100; +pub const CS7: crate::tcflag_t = 0x00000200; +pub const CS8: crate::tcflag_t = 0x00000300; +pub const CSTOPB: crate::tcflag_t = 0x00000400; +pub const CREAD: crate::tcflag_t = 0x00000800; +pub const PARENB: crate::tcflag_t = 0x00001000; +pub const PARODD: crate::tcflag_t = 0x00002000; +pub const HUPCL: crate::tcflag_t = 0x00004000; +pub const CLOCAL: crate::tcflag_t = 0x00008000; +pub const ECHOKE: crate::tcflag_t = 0x00000001; +pub const ECHOE: crate::tcflag_t = 0x00000002; +pub const ECHOK: crate::tcflag_t = 0x00000004; +pub const ECHONL: crate::tcflag_t = 0x00000010; +pub const ECHOPRT: crate::tcflag_t = 0x00000020; +pub const ECHOCTL: crate::tcflag_t = 0x00000040; +pub const ISIG: crate::tcflag_t = 0x00000080; +pub const ICANON: crate::tcflag_t = 0x00000100; +pub const PENDIN: crate::tcflag_t = 0x20000000; +pub const NOFLSH: crate::tcflag_t = 0x80000000; -pub const CIBAUD: ::tcflag_t = 0o77600000; -pub const CBAUDEX: ::tcflag_t = 0o0000020; +pub const CIBAUD: crate::tcflag_t = 0o77600000; +pub const CBAUDEX: crate::tcflag_t = 0o0000020; pub const VSWTC: usize = 9; -pub const OLCUC: ::tcflag_t = 0o000004; -pub const NLDLY: ::tcflag_t = 0o0001400; -pub const CRDLY: ::tcflag_t = 0o0030000; -pub const TABDLY: ::tcflag_t = 0o0006000; -pub const BSDLY: ::tcflag_t = 0o0100000; -pub const FFDLY: ::tcflag_t = 0o0040000; -pub const VTDLY: ::tcflag_t = 0o0200000; -pub const XTABS: ::tcflag_t = 0o00006000; +pub const OLCUC: crate::tcflag_t = 0o000004; +pub const NLDLY: crate::tcflag_t = 0o0001400; +pub const CRDLY: crate::tcflag_t = 0o0030000; +pub const TABDLY: crate::tcflag_t = 0o0006000; +pub const BSDLY: crate::tcflag_t = 0o0100000; +pub const FFDLY: crate::tcflag_t = 0o0040000; +pub const VTDLY: crate::tcflag_t = 0o0200000; +pub const XTABS: crate::tcflag_t = 0o00006000; -pub const B57600: ::speed_t = 0o00020; -pub const B115200: ::speed_t = 0o00021; -pub const B230400: ::speed_t = 0o00022; -pub const B460800: ::speed_t = 0o00023; -pub const B500000: ::speed_t = 0o00024; -pub const B576000: ::speed_t = 0o00025; -pub const B921600: ::speed_t = 0o00026; -pub const B1000000: ::speed_t = 0o00027; -pub const B1152000: ::speed_t = 0o00030; -pub const B1500000: ::speed_t = 0o00031; -pub const B2000000: ::speed_t = 0o00032; -pub const B2500000: ::speed_t = 0o00033; -pub const B3000000: ::speed_t = 0o00034; -pub const B3500000: ::speed_t = 0o00035; -pub const B4000000: ::speed_t = 0o00036; +pub const B57600: crate::speed_t = 0o00020; +pub const B115200: crate::speed_t = 0o00021; +pub const B230400: crate::speed_t = 0o00022; +pub const B460800: crate::speed_t = 0o00023; +pub const B500000: crate::speed_t = 0o00024; +pub const B576000: crate::speed_t = 0o00025; +pub const B921600: crate::speed_t = 0o00026; +pub const B1000000: crate::speed_t = 0o00027; +pub const B1152000: crate::speed_t = 0o00030; +pub const B1500000: crate::speed_t = 0o00031; +pub const B2000000: crate::speed_t = 0o00032; +pub const B2500000: crate::speed_t = 0o00033; +pub const B3000000: crate::speed_t = 0o00034; +pub const B3500000: crate::speed_t = 0o00035; +pub const B4000000: crate::speed_t = 0o00036; diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index e783589d2c0f3..53ae3d64c25b9 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -1,102 +1,107 @@ //! RISC-V-specific definitions for 64-bit linux-like values +use crate::{ + c_int, c_long, c_longlong, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, off64_t, off_t, + size_t, +}; + pub type c_char = u8; -pub type wchar_t = ::c_int; +pub type wchar_t = c_int; -pub type nlink_t = ::c_uint; -pub type blksize_t = ::c_int; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; +pub type nlink_t = c_uint; +pub type blksize_t = c_int; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; s! { 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_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - 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_int; 2usize], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub __pad1: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub __pad2: c_int, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_int; 2usize], } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - 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_int; 2], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino64_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub __pad1: crate::dev_t, + pub st_size: off64_t, + pub st_blksize: crate::blksize_t, + pub __pad2: c_int, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_int; 2], } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: c_ushort, + __pad1: c_ushort, + pub __seq: c_ushort, + __pad2: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } #[repr(align(8))] pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, + pub flags: c_ulonglong, + pub pidfd: c_ulonglong, + pub child_tid: c_ulonglong, + pub parent_tid: c_ulonglong, + pub exit_signal: c_ulonglong, + pub stack: c_ulonglong, + pub stack_size: c_ulonglong, + pub tls: c_ulonglong, + pub set_tid: c_ulonglong, + pub set_tid_size: c_ulonglong, + pub cgroup: c_ulonglong, } } s_no_extra_traits! { #[allow(missing_debug_implementations)] pub struct ucontext_t { - pub __uc_flags: ::c_ulong, + pub __uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, + pub uc_stack: crate::stack_t, + pub uc_sigmask: crate::sigset_t, pub uc_mcontext: mcontext_t, } #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct mcontext_t { - pub __gregs: [::c_ulong; 32], + pub __gregs: [c_ulong; 32], pub __fpregs: __riscv_mc_fp_state, } @@ -109,493 +114,493 @@ s_no_extra_traits! { #[allow(missing_debug_implementations)] pub struct __riscv_mc_f_ext_state { - pub __f: [::c_uint; 32], - pub __fcsr: ::c_uint, + pub __f: [c_uint; 32], + pub __fcsr: c_uint, } #[allow(missing_debug_implementations)] pub struct __riscv_mc_d_ext_state { - pub __f: [::c_ulonglong; 32], - pub __fcsr: ::c_uint, + pub __f: [c_ulonglong; 32], + pub __fcsr: c_uint, } #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct __riscv_mc_q_ext_state { - pub __f: [::c_ulonglong; 64], - pub __fcsr: ::c_uint, - pub __glibc_reserved: [::c_uint; 3], + pub __f: [c_ulonglong; 64], + pub __fcsr: c_uint, + pub __glibc_reserved: [c_uint; 3], } } -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_close: ::c_long = 57; -pub const SYS_fstat: ::c_long = 80; -pub const SYS_lseek: ::c_long = 62; -pub const SYS_mmap: ::c_long = 222; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_brk: ::c_long = 214; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_dup: ::c_long = 23; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_sendfile: ::c_long = 71; -pub const SYS_socket: ::c_long = 198; -pub const SYS_connect: ::c_long = 203; -pub const SYS_accept: ::c_long = 202; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_exit: ::c_long = 93; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_kill: ::c_long = 129; -pub const SYS_uname: ::c_long = 160; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semop: ::c_long = 193; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_flock: ::c_long = 32; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_truncate: ::c_long = 45; -pub const SYS_ftruncate: ::c_long = 46; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_umask: ::c_long = 166; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_times: ::c_long = 153; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_personality: ::c_long = 92; -pub const SYS_statfs: ::c_long = 43; -pub const SYS_fstatfs: ::c_long = 44; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_setrlimit: ::c_long = 164; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_sync: ::c_long = 81; -pub const SYS_acct: ::c_long = 89; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_mount: ::c_long = 40; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_futex: ::c_long = 98; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_fadvise64: ::c_long = 223; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_openat: ::c_long = 56; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_newfstatat: ::c_long = 79; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_setns: ::c_long = 268; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_io_pgetevents: ::c_long = 292; -pub const SYS_rseq: ::c_long = 293; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_read: c_long = 63; +pub const SYS_write: c_long = 64; +pub const SYS_close: c_long = 57; +pub const SYS_fstat: c_long = 80; +pub const SYS_lseek: c_long = 62; +pub const SYS_mmap: c_long = 222; +pub const SYS_mprotect: c_long = 226; +pub const SYS_munmap: c_long = 215; +pub const SYS_brk: c_long = 214; +pub const SYS_rt_sigaction: c_long = 134; +pub const SYS_rt_sigprocmask: c_long = 135; +pub const SYS_rt_sigreturn: c_long = 139; +pub const SYS_ioctl: c_long = 29; +pub const SYS_pread64: c_long = 67; +pub const SYS_pwrite64: c_long = 68; +pub const SYS_readv: c_long = 65; +pub const SYS_writev: c_long = 66; +pub const SYS_sched_yield: c_long = 124; +pub const SYS_mremap: c_long = 216; +pub const SYS_msync: c_long = 227; +pub const SYS_mincore: c_long = 232; +pub const SYS_madvise: c_long = 233; +pub const SYS_shmget: c_long = 194; +pub const SYS_shmat: c_long = 196; +pub const SYS_shmctl: c_long = 195; +pub const SYS_dup: c_long = 23; +pub const SYS_nanosleep: c_long = 101; +pub const SYS_getitimer: c_long = 102; +pub const SYS_setitimer: c_long = 103; +pub const SYS_getpid: c_long = 172; +pub const SYS_sendfile: c_long = 71; +pub const SYS_socket: c_long = 198; +pub const SYS_connect: c_long = 203; +pub const SYS_accept: c_long = 202; +pub const SYS_sendto: c_long = 206; +pub const SYS_recvfrom: c_long = 207; +pub const SYS_sendmsg: c_long = 211; +pub const SYS_recvmsg: c_long = 212; +pub const SYS_shutdown: c_long = 210; +pub const SYS_bind: c_long = 200; +pub const SYS_listen: c_long = 201; +pub const SYS_getsockname: c_long = 204; +pub const SYS_getpeername: c_long = 205; +pub const SYS_socketpair: c_long = 199; +pub const SYS_setsockopt: c_long = 208; +pub const SYS_getsockopt: c_long = 209; +pub const SYS_clone: c_long = 220; +pub const SYS_execve: c_long = 221; +pub const SYS_exit: c_long = 93; +pub const SYS_wait4: c_long = 260; +pub const SYS_kill: c_long = 129; +pub const SYS_uname: c_long = 160; +pub const SYS_semget: c_long = 190; +pub const SYS_semop: c_long = 193; +pub const SYS_semctl: c_long = 191; +pub const SYS_shmdt: c_long = 197; +pub const SYS_msgget: c_long = 186; +pub const SYS_msgsnd: c_long = 189; +pub const SYS_msgrcv: c_long = 188; +pub const SYS_msgctl: c_long = 187; +pub const SYS_fcntl: c_long = 25; +pub const SYS_flock: c_long = 32; +pub const SYS_fsync: c_long = 82; +pub const SYS_fdatasync: c_long = 83; +pub const SYS_truncate: c_long = 45; +pub const SYS_ftruncate: c_long = 46; +pub const SYS_getcwd: c_long = 17; +pub const SYS_chdir: c_long = 49; +pub const SYS_fchdir: c_long = 50; +pub const SYS_fchmod: c_long = 52; +pub const SYS_fchown: c_long = 55; +pub const SYS_umask: c_long = 166; +pub const SYS_gettimeofday: c_long = 169; +pub const SYS_getrlimit: c_long = 163; +pub const SYS_getrusage: c_long = 165; +pub const SYS_sysinfo: c_long = 179; +pub const SYS_times: c_long = 153; +pub const SYS_ptrace: c_long = 117; +pub const SYS_getuid: c_long = 174; +pub const SYS_syslog: c_long = 116; +pub const SYS_getgid: c_long = 176; +pub const SYS_setuid: c_long = 146; +pub const SYS_setgid: c_long = 144; +pub const SYS_geteuid: c_long = 175; +pub const SYS_getegid: c_long = 177; +pub const SYS_setpgid: c_long = 154; +pub const SYS_getppid: c_long = 173; +pub const SYS_setsid: c_long = 157; +pub const SYS_setreuid: c_long = 145; +pub const SYS_setregid: c_long = 143; +pub const SYS_getgroups: c_long = 158; +pub const SYS_setgroups: c_long = 159; +pub const SYS_setresuid: c_long = 147; +pub const SYS_getresuid: c_long = 148; +pub const SYS_setresgid: c_long = 149; +pub const SYS_getresgid: c_long = 150; +pub const SYS_getpgid: c_long = 155; +pub const SYS_setfsuid: c_long = 151; +pub const SYS_setfsgid: c_long = 152; +pub const SYS_getsid: c_long = 156; +pub const SYS_capget: c_long = 90; +pub const SYS_capset: c_long = 91; +pub const SYS_rt_sigpending: c_long = 136; +pub const SYS_rt_sigtimedwait: c_long = 137; +pub const SYS_rt_sigqueueinfo: c_long = 138; +pub const SYS_rt_sigsuspend: c_long = 133; +pub const SYS_sigaltstack: c_long = 132; +pub const SYS_personality: c_long = 92; +pub const SYS_statfs: c_long = 43; +pub const SYS_fstatfs: c_long = 44; +pub const SYS_getpriority: c_long = 141; +pub const SYS_setpriority: c_long = 140; +pub const SYS_sched_setparam: c_long = 118; +pub const SYS_sched_getparam: c_long = 121; +pub const SYS_sched_setscheduler: c_long = 119; +pub const SYS_sched_getscheduler: c_long = 120; +pub const SYS_sched_get_priority_max: c_long = 125; +pub const SYS_sched_get_priority_min: c_long = 126; +pub const SYS_sched_rr_get_interval: c_long = 127; +pub const SYS_mlock: c_long = 228; +pub const SYS_munlock: c_long = 229; +pub const SYS_mlockall: c_long = 230; +pub const SYS_munlockall: c_long = 231; +pub const SYS_vhangup: c_long = 58; +pub const SYS_pivot_root: c_long = 41; +pub const SYS_prctl: c_long = 167; +pub const SYS_adjtimex: c_long = 171; +pub const SYS_setrlimit: c_long = 164; +pub const SYS_chroot: c_long = 51; +pub const SYS_sync: c_long = 81; +pub const SYS_acct: c_long = 89; +pub const SYS_settimeofday: c_long = 170; +pub const SYS_mount: c_long = 40; +pub const SYS_umount2: c_long = 39; +pub const SYS_swapon: c_long = 224; +pub const SYS_swapoff: c_long = 225; +pub const SYS_reboot: c_long = 142; +pub const SYS_sethostname: c_long = 161; +pub const SYS_setdomainname: c_long = 162; +pub const SYS_init_module: c_long = 105; +pub const SYS_delete_module: c_long = 106; +pub const SYS_quotactl: c_long = 60; +pub const SYS_nfsservctl: c_long = 42; +pub const SYS_gettid: c_long = 178; +pub const SYS_readahead: c_long = 213; +pub const SYS_setxattr: c_long = 5; +pub const SYS_lsetxattr: c_long = 6; +pub const SYS_fsetxattr: c_long = 7; +pub const SYS_getxattr: c_long = 8; +pub const SYS_lgetxattr: c_long = 9; +pub const SYS_fgetxattr: c_long = 10; +pub const SYS_listxattr: c_long = 11; +pub const SYS_llistxattr: c_long = 12; +pub const SYS_flistxattr: c_long = 13; +pub const SYS_removexattr: c_long = 14; +pub const SYS_lremovexattr: c_long = 15; +pub const SYS_fremovexattr: c_long = 16; +pub const SYS_tkill: c_long = 130; +pub const SYS_futex: c_long = 98; +pub const SYS_sched_setaffinity: c_long = 122; +pub const SYS_sched_getaffinity: c_long = 123; +pub const SYS_io_setup: c_long = 0; +pub const SYS_io_destroy: c_long = 1; +pub const SYS_io_getevents: c_long = 4; +pub const SYS_io_submit: c_long = 2; +pub const SYS_io_cancel: c_long = 3; +pub const SYS_lookup_dcookie: c_long = 18; +pub const SYS_remap_file_pages: c_long = 234; +pub const SYS_getdents64: c_long = 61; +pub const SYS_set_tid_address: c_long = 96; +pub const SYS_restart_syscall: c_long = 128; +pub const SYS_semtimedop: c_long = 192; +pub const SYS_fadvise64: c_long = 223; +pub const SYS_timer_create: c_long = 107; +pub const SYS_timer_settime: c_long = 110; +pub const SYS_timer_gettime: c_long = 108; +pub const SYS_timer_getoverrun: c_long = 109; +pub const SYS_timer_delete: c_long = 111; +pub const SYS_clock_settime: c_long = 112; +pub const SYS_clock_gettime: c_long = 113; +pub const SYS_clock_getres: c_long = 114; +pub const SYS_clock_nanosleep: c_long = 115; +pub const SYS_exit_group: c_long = 94; +pub const SYS_epoll_ctl: c_long = 21; +pub const SYS_tgkill: c_long = 131; +pub const SYS_mbind: c_long = 235; +pub const SYS_set_mempolicy: c_long = 237; +pub const SYS_get_mempolicy: c_long = 236; +pub const SYS_mq_open: c_long = 180; +pub const SYS_mq_unlink: c_long = 181; +pub const SYS_mq_timedsend: c_long = 182; +pub const SYS_mq_timedreceive: c_long = 183; +pub const SYS_mq_notify: c_long = 184; +pub const SYS_mq_getsetattr: c_long = 185; +pub const SYS_kexec_load: c_long = 104; +pub const SYS_waitid: c_long = 95; +pub const SYS_add_key: c_long = 217; +pub const SYS_request_key: c_long = 218; +pub const SYS_keyctl: c_long = 219; +pub const SYS_ioprio_set: c_long = 30; +pub const SYS_ioprio_get: c_long = 31; +pub const SYS_inotify_add_watch: c_long = 27; +pub const SYS_inotify_rm_watch: c_long = 28; +pub const SYS_migrate_pages: c_long = 238; +pub const SYS_openat: c_long = 56; +pub const SYS_mkdirat: c_long = 34; +pub const SYS_mknodat: c_long = 33; +pub const SYS_fchownat: c_long = 54; +pub const SYS_newfstatat: c_long = 79; +pub const SYS_unlinkat: c_long = 35; +pub const SYS_linkat: c_long = 37; +pub const SYS_symlinkat: c_long = 36; +pub const SYS_readlinkat: c_long = 78; +pub const SYS_fchmodat: c_long = 53; +pub const SYS_faccessat: c_long = 48; +pub const SYS_pselect6: c_long = 72; +pub const SYS_ppoll: c_long = 73; +pub const SYS_unshare: c_long = 97; +pub const SYS_set_robust_list: c_long = 99; +pub const SYS_get_robust_list: c_long = 100; +pub const SYS_splice: c_long = 76; +pub const SYS_tee: c_long = 77; +pub const SYS_sync_file_range: c_long = 84; +pub const SYS_vmsplice: c_long = 75; +pub const SYS_move_pages: c_long = 239; +pub const SYS_utimensat: c_long = 88; +pub const SYS_epoll_pwait: c_long = 22; +pub const SYS_timerfd_create: c_long = 85; +pub const SYS_fallocate: c_long = 47; +pub const SYS_timerfd_settime: c_long = 86; +pub const SYS_timerfd_gettime: c_long = 87; +pub const SYS_accept4: c_long = 242; +pub const SYS_signalfd4: c_long = 74; +pub const SYS_eventfd2: c_long = 19; +pub const SYS_epoll_create1: c_long = 20; +pub const SYS_dup3: c_long = 24; +pub const SYS_pipe2: c_long = 59; +pub const SYS_inotify_init1: c_long = 26; +pub const SYS_preadv: c_long = 69; +pub const SYS_pwritev: c_long = 70; +pub const SYS_rt_tgsigqueueinfo: c_long = 240; +pub const SYS_perf_event_open: c_long = 241; +pub const SYS_recvmmsg: c_long = 243; +pub const SYS_fanotify_init: c_long = 262; +pub const SYS_fanotify_mark: c_long = 263; +pub const SYS_prlimit64: c_long = 261; +pub const SYS_name_to_handle_at: c_long = 264; +pub const SYS_open_by_handle_at: c_long = 265; +pub const SYS_clock_adjtime: c_long = 266; +pub const SYS_syncfs: c_long = 267; +pub const SYS_sendmmsg: c_long = 269; +pub const SYS_setns: c_long = 268; +pub const SYS_getcpu: c_long = 168; +pub const SYS_process_vm_readv: c_long = 270; +pub const SYS_process_vm_writev: c_long = 271; +pub const SYS_kcmp: c_long = 272; +pub const SYS_finit_module: c_long = 273; +pub const SYS_sched_setattr: c_long = 274; +pub const SYS_sched_getattr: c_long = 275; +pub const SYS_renameat2: c_long = 276; +pub const SYS_seccomp: c_long = 277; +pub const SYS_getrandom: c_long = 278; +pub const SYS_memfd_create: c_long = 279; +pub const SYS_bpf: c_long = 280; +pub const SYS_execveat: c_long = 281; +pub const SYS_userfaultfd: c_long = 282; +pub const SYS_membarrier: c_long = 283; +pub const SYS_mlock2: c_long = 284; +pub const SYS_copy_file_range: c_long = 285; +pub const SYS_preadv2: c_long = 286; +pub const SYS_pwritev2: c_long = 287; +pub const SYS_pkey_mprotect: c_long = 288; +pub const SYS_pkey_alloc: c_long = 289; +pub const SYS_pkey_free: c_long = 290; +pub const SYS_statx: c_long = 291; +pub const SYS_io_pgetevents: c_long = 292; +pub const SYS_rseq: c_long = 293; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; -pub const O_APPEND: ::c_int = 1024; -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_LARGEFILE: ::c_int = 0; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_ASYNC: ::c_int = 0x2000; +pub const O_APPEND: c_int = 1024; +pub const O_DIRECT: c_int = 0x4000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_LARGEFILE: c_int = 0; +pub const O_NOFOLLOW: c_int = 0x20000; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_ASYNC: c_int = 0x2000; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EBADMSG: c_int = 74; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const EHWPOISON: c_int = 133; +pub const ERFKILL: c_int = 132; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; +pub const F_SETOWN: c_int = 8; pub const VEOF: usize = 4; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_SYNC: c_int = 0x080000; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::c_int = 0x00000800; -pub const TAB2: ::c_int = 0x00001000; -pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: c_int = 0x00000800; +pub const TAB2: c_int = 0x00001000; +pub const TAB3: c_int = 0x00001800; +pub const CR1: c_int = 0x00000200; +pub const CR2: c_int = 0x00000400; +pub const CR3: c_int = 0x00000600; +pub const FF1: c_int = 0x00008000; +pub const BS1: c_int = 0x00002000; +pub const VT1: c_int = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -603,65 +608,65 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; -pub const EDEADLK: ::c_int = 35; -pub const EDEADLOCK: ::c_int = EDEADLK; -pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const EDEADLK: c_int = 35; +pub const EDEADLOCK: c_int = EDEADLK; +pub const EXTPROC: crate::tcflag_t = 0x00010000; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; pub const NGREG: usize = 32; pub const REG_PC: usize = 0; diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index 67183e8d55177..ad8ba3bb26e18 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -1,3 +1,5 @@ +use crate::{c_double, c_int, c_long, c_short, off_t, size_t}; + pub type blksize_t = i64; pub type c_char = u8; pub type nlink_t = u64; @@ -8,63 +10,63 @@ pub type __s64 = i64; s! { 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_int, - __pad1: ::c_long, - __pad2: ::c_long, + pub __ipc_perm_key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub __seq: c_int, + __pad1: c_long, + __pad2: c_long, } 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, - pub st_rdev: ::dev_t, - pub st_size: ::off_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_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - __unused: [::c_long; 3], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + __unused: [c_long; 3], } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_size: ::off_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_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - __unused: [::c_long; 3], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino64_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + __unused: [c_long; 3], } } s_no_extra_traits! { // FIXME: This is actually a union. pub struct fpreg_t { - pub d: ::c_double, - // f: ::c_float, + pub d: c_double, + // f: c_float, } } @@ -78,15 +80,15 @@ cfg_if! { impl Eq for fpreg_t {} - impl ::fmt::Debug for fpreg_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for fpreg_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("fpreg_t").field("d", &self.d).finish() } } - impl ::hash::Hash for fpreg_t { - fn hash(&self, state: &mut H) { - let d: u64 = unsafe { ::mem::transmute(self.d) }; + impl crate::hash::Hash for fpreg_t { + fn hash(&self, state: &mut H) { + let d: u64 = unsafe { crate::mem::transmute(self.d) }; d.hash(state); } } @@ -94,177 +96,177 @@ cfg_if! { } pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_DEEPBIND: c_int = 0x8; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNREFUSED: ::c_int = 111; -pub const ECONNRESET: ::c_int = 104; -pub const EDEADLK: ::c_int = 35; -pub const ENOSYS: ::c_int = 38; -pub const ENOTCONN: ::c_int = 107; -pub const ETIMEDOUT: ::c_int = 110; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_LARGEFILE: ::c_int = 0x8000; -pub const O_NONBLOCK: ::c_int = 2048; -pub const SA_NOCLDWAIT: ::c_int = 2; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 4; -pub const SIGBUS: ::c_int = 7; -pub const SIGSTKSZ: ::size_t = 0x2000; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const SIG_SETMASK: ::c_int = 2; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ECONNABORTED: c_int = 103; +pub const ECONNREFUSED: c_int = 111; +pub const ECONNRESET: c_int = 104; +pub const EDEADLK: c_int = 35; +pub const ENOSYS: c_int = 38; +pub const ENOTCONN: c_int = 107; +pub const ETIMEDOUT: c_int = 110; +pub const O_APPEND: c_int = 1024; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_LARGEFILE: c_int = 0x8000; +pub const O_NONBLOCK: c_int = 2048; +pub const SA_NOCLDWAIT: c_int = 2; +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 4; +pub const SIGBUS: c_int = 7; +pub const SIGSTKSZ: size_t = 0x2000; +pub const MINSIGSTKSZ: size_t = 2048; +pub const SIG_SETMASK: c_int = 2; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; -pub const O_NOCTTY: ::c_int = 256; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const O_NOCTTY: c_int = 256; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_FSYNC: c_int = 0x101000; +pub const O_DIRECT: c_int = 0x4000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_NOFOLLOW: c_int = 0x20000; -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_SYNC: c_int = 0x080000; -pub const PTRACE_SYSEMU: ::c_int = 31; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 32; +pub const PTRACE_SYSEMU: c_int = 31; +pub const PTRACE_SYSEMU_SINGLESTEP: c_int = 32; -pub const EDEADLOCK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; +pub const EDEADLOCK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EBADMSG: c_int = 74; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const EHWPOISON: c_int = 133; +pub const ERFKILL: c_int = 132; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 17; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGCHLD: c_int = 17; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; -pub const O_ASYNC: ::c_int = 0x2000; +pub const O_ASYNC: c_int = 0x2000; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; -pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const EXTPROC: crate::tcflag_t = 0x00010000; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETOWN: c_int = 8; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; pub const VTIME: usize = 5; pub const VSWTC: usize = 7; @@ -274,439 +276,439 @@ pub const VSUSP: usize = 10; pub const VREPRINT: usize = 12; pub const VDISCARD: usize = 13; pub const VWERASE: usize = 14; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const ONLCR: ::tcflag_t = 0o000004; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const FF1: ::tcflag_t = 0x00008000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const ONLCR: crate::tcflag_t = 0o000004; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const CR1: crate::tcflag_t = 0x00000200; +pub const CR2: crate::tcflag_t = 0x00000400; +pub const CR3: crate::tcflag_t = 0x00000600; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const TAB1: crate::tcflag_t = 0x00000800; +pub const TAB2: crate::tcflag_t = 0x00001000; +pub const TAB3: crate::tcflag_t = 0x00001800; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const BS1: crate::tcflag_t = 0x00002000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const FF1: crate::tcflag_t = 0x00008000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const VT1: crate::tcflag_t = 0x00004000; +pub const XTABS: crate::tcflag_t = 0o014000; -pub const CBAUD: ::speed_t = 0o010017; -pub const CSIZE: ::tcflag_t = 0o000060; -pub const CS6: ::tcflag_t = 0o000020; -pub const CS7: ::tcflag_t = 0o000040; -pub const CS8: ::tcflag_t = 0o000060; -pub const CSTOPB: ::tcflag_t = 0o000100; -pub const CREAD: ::tcflag_t = 0o000200; -pub const PARENB: ::tcflag_t = 0o000400; -pub const PARODD: ::tcflag_t = 0o001000; -pub const HUPCL: ::tcflag_t = 0o002000; -pub const CLOCAL: ::tcflag_t = 0o004000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; -pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUD: crate::speed_t = 0o010017; +pub const CSIZE: crate::tcflag_t = 0o000060; +pub const CS6: crate::tcflag_t = 0o000020; +pub const CS7: crate::tcflag_t = 0o000040; +pub const CS8: crate::tcflag_t = 0o000060; +pub const CSTOPB: crate::tcflag_t = 0o000100; +pub const CREAD: crate::tcflag_t = 0o000200; +pub const PARENB: crate::tcflag_t = 0o000400; +pub const PARODD: crate::tcflag_t = 0o001000; +pub const HUPCL: crate::tcflag_t = 0o002000; +pub const CLOCAL: crate::tcflag_t = 0o004000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; -pub const ISIG: ::tcflag_t = 0o000001; -pub const ICANON: ::tcflag_t = 0o000002; -pub const XCASE: ::tcflag_t = 0o000004; -pub const ECHOE: ::tcflag_t = 0o000020; -pub const ECHOK: ::tcflag_t = 0o000040; -pub const ECHONL: ::tcflag_t = 0o000100; -pub const NOFLSH: ::tcflag_t = 0o000200; -pub const ECHOCTL: ::tcflag_t = 0o001000; -pub const ECHOPRT: ::tcflag_t = 0o002000; -pub const ECHOKE: ::tcflag_t = 0o004000; -pub const PENDIN: ::tcflag_t = 0o040000; +pub const ISIG: crate::tcflag_t = 0o000001; +pub const ICANON: crate::tcflag_t = 0o000002; +pub const XCASE: crate::tcflag_t = 0o000004; +pub const ECHOE: crate::tcflag_t = 0o000020; +pub const ECHOK: crate::tcflag_t = 0o000040; +pub const ECHONL: crate::tcflag_t = 0o000100; +pub const NOFLSH: crate::tcflag_t = 0o000200; +pub const ECHOCTL: crate::tcflag_t = 0o001000; +pub const ECHOPRT: crate::tcflag_t = 0o002000; +pub const ECHOKE: crate::tcflag_t = 0o004000; +pub const PENDIN: crate::tcflag_t = 0o040000; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; -pub const IXON: ::tcflag_t = 0o002000; -pub const IXOFF: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0o002000; +pub const IXOFF: crate::tcflag_t = 0o010000; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_restart_syscall: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_brk: ::c_long = 45; -pub const SYS_signal: ::c_long = 48; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_lookup_dcookie: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; /* Syscall for Andrew File System */ -pub const SYS_getdents: ::c_long = 141; -pub const SYS_select: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_query_module: ::c_long = 167; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_getpmsg: ::c_long = 188; -pub const SYS_putpmsg: ::c_long = 189; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_getrlimit: ::c_long = 191; -pub const SYS_lchown: ::c_long = 198; -pub const SYS_getuid: ::c_long = 199; -pub const SYS_getgid: ::c_long = 200; -pub const SYS_geteuid: ::c_long = 201; -pub const SYS_getegid: ::c_long = 202; -pub const SYS_setreuid: ::c_long = 203; -pub const SYS_setregid: ::c_long = 204; -pub const SYS_getgroups: ::c_long = 205; -pub const SYS_setgroups: ::c_long = 206; -pub const SYS_fchown: ::c_long = 207; -pub const SYS_setresuid: ::c_long = 208; -pub const SYS_getresuid: ::c_long = 209; -pub const SYS_setresgid: ::c_long = 210; -pub const SYS_getresgid: ::c_long = 211; -pub const SYS_chown: ::c_long = 212; -pub const SYS_setuid: ::c_long = 213; -pub const SYS_setgid: ::c_long = 214; -pub const SYS_setfsuid: ::c_long = 215; -pub const SYS_setfsgid: ::c_long = 216; -pub const SYS_pivot_root: ::c_long = 217; -pub const SYS_mincore: ::c_long = 218; -pub const SYS_madvise: ::c_long = 219; -pub const SYS_getdents64: ::c_long = 220; -pub const SYS_readahead: ::c_long = 222; -pub const SYS_setxattr: ::c_long = 224; -pub const SYS_lsetxattr: ::c_long = 225; -pub const SYS_fsetxattr: ::c_long = 226; -pub const SYS_getxattr: ::c_long = 227; -pub const SYS_lgetxattr: ::c_long = 228; -pub const SYS_fgetxattr: ::c_long = 229; -pub const SYS_listxattr: ::c_long = 230; -pub const SYS_llistxattr: ::c_long = 231; -pub const SYS_flistxattr: ::c_long = 232; -pub const SYS_removexattr: ::c_long = 233; -pub const SYS_lremovexattr: ::c_long = 234; -pub const SYS_fremovexattr: ::c_long = 235; -pub const SYS_gettid: ::c_long = 236; -pub const SYS_tkill: ::c_long = 237; -pub const SYS_futex: ::c_long = 238; -pub const SYS_sched_setaffinity: ::c_long = 239; -pub const SYS_sched_getaffinity: ::c_long = 240; -pub const SYS_tgkill: ::c_long = 241; -pub const SYS_io_setup: ::c_long = 243; -pub const SYS_io_destroy: ::c_long = 244; -pub const SYS_io_getevents: ::c_long = 245; -pub const SYS_io_submit: ::c_long = 246; -pub const SYS_io_cancel: ::c_long = 247; -pub const SYS_exit_group: ::c_long = 248; -pub const SYS_epoll_create: ::c_long = 249; -pub const SYS_epoll_ctl: ::c_long = 250; -pub const SYS_epoll_wait: ::c_long = 251; -pub const SYS_set_tid_address: ::c_long = 252; -pub const SYS_fadvise64: ::c_long = 253; -pub const SYS_timer_create: ::c_long = 254; -pub const SYS_timer_settime: ::c_long = 255; -pub const SYS_timer_gettime: ::c_long = 256; -pub const SYS_timer_getoverrun: ::c_long = 257; -pub const SYS_timer_delete: ::c_long = 258; -pub const SYS_clock_settime: ::c_long = 259; -pub const SYS_clock_gettime: ::c_long = 260; -pub const SYS_clock_getres: ::c_long = 261; -pub const SYS_clock_nanosleep: ::c_long = 262; -pub const SYS_statfs64: ::c_long = 265; -pub const SYS_fstatfs64: ::c_long = 266; -pub const SYS_remap_file_pages: ::c_long = 267; -pub const SYS_mbind: ::c_long = 268; -pub const SYS_get_mempolicy: ::c_long = 269; -pub const SYS_set_mempolicy: ::c_long = 270; -pub const SYS_mq_open: ::c_long = 271; -pub const SYS_mq_unlink: ::c_long = 272; -pub const SYS_mq_timedsend: ::c_long = 273; -pub const SYS_mq_timedreceive: ::c_long = 274; -pub const SYS_mq_notify: ::c_long = 275; -pub const SYS_mq_getsetattr: ::c_long = 276; -pub const SYS_kexec_load: ::c_long = 277; -pub const SYS_add_key: ::c_long = 278; -pub const SYS_request_key: ::c_long = 279; -pub const SYS_keyctl: ::c_long = 280; -pub const SYS_waitid: ::c_long = 281; -pub const SYS_ioprio_set: ::c_long = 282; -pub const SYS_ioprio_get: ::c_long = 283; -pub const SYS_inotify_init: ::c_long = 284; -pub const SYS_inotify_add_watch: ::c_long = 285; -pub const SYS_inotify_rm_watch: ::c_long = 286; -pub const SYS_migrate_pages: ::c_long = 287; -pub const SYS_openat: ::c_long = 288; -pub const SYS_mkdirat: ::c_long = 289; -pub const SYS_mknodat: ::c_long = 290; -pub const SYS_fchownat: ::c_long = 291; -pub const SYS_futimesat: ::c_long = 292; -pub const SYS_newfstatat: ::c_long = 293; -pub const SYS_unlinkat: ::c_long = 294; -pub const SYS_renameat: ::c_long = 295; -pub const SYS_linkat: ::c_long = 296; -pub const SYS_symlinkat: ::c_long = 297; -pub const SYS_readlinkat: ::c_long = 298; -pub const SYS_fchmodat: ::c_long = 299; -pub const SYS_faccessat: ::c_long = 300; -pub const SYS_pselect6: ::c_long = 301; -pub const SYS_ppoll: ::c_long = 302; -pub const SYS_unshare: ::c_long = 303; -pub const SYS_set_robust_list: ::c_long = 304; -pub const SYS_get_robust_list: ::c_long = 305; -pub const SYS_splice: ::c_long = 306; -pub const SYS_sync_file_range: ::c_long = 307; -pub const SYS_tee: ::c_long = 308; -pub const SYS_vmsplice: ::c_long = 309; -pub const SYS_move_pages: ::c_long = 310; -pub const SYS_getcpu: ::c_long = 311; -pub const SYS_epoll_pwait: ::c_long = 312; -pub const SYS_utimes: ::c_long = 313; -pub const SYS_fallocate: ::c_long = 314; -pub const SYS_utimensat: ::c_long = 315; -pub const SYS_signalfd: ::c_long = 316; -pub const SYS_timerfd: ::c_long = 317; -pub const SYS_eventfd: ::c_long = 318; -pub const SYS_timerfd_create: ::c_long = 319; -pub const SYS_timerfd_settime: ::c_long = 320; -pub const SYS_timerfd_gettime: ::c_long = 321; -pub const SYS_signalfd4: ::c_long = 322; -pub const SYS_eventfd2: ::c_long = 323; -pub const SYS_inotify_init1: ::c_long = 324; -pub const SYS_pipe2: ::c_long = 325; -pub const SYS_dup3: ::c_long = 326; -pub const SYS_epoll_create1: ::c_long = 327; -pub const SYS_preadv: ::c_long = 328; -pub const SYS_pwritev: ::c_long = 329; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 330; -pub const SYS_perf_event_open: ::c_long = 331; -pub const SYS_fanotify_init: ::c_long = 332; -pub const SYS_fanotify_mark: ::c_long = 333; -pub const SYS_prlimit64: ::c_long = 334; -pub const SYS_name_to_handle_at: ::c_long = 335; -pub const SYS_open_by_handle_at: ::c_long = 336; -pub const SYS_clock_adjtime: ::c_long = 337; -pub const SYS_syncfs: ::c_long = 338; -pub const SYS_setns: ::c_long = 339; -pub const SYS_process_vm_readv: ::c_long = 340; -pub const SYS_process_vm_writev: ::c_long = 341; -pub const SYS_s390_runtime_instr: ::c_long = 342; -pub const SYS_kcmp: ::c_long = 343; -pub const SYS_finit_module: ::c_long = 344; -pub const SYS_sched_setattr: ::c_long = 345; -pub const SYS_sched_getattr: ::c_long = 346; -pub const SYS_renameat2: ::c_long = 347; -pub const SYS_seccomp: ::c_long = 348; -pub const SYS_getrandom: ::c_long = 349; -pub const SYS_memfd_create: ::c_long = 350; -pub const SYS_bpf: ::c_long = 351; -pub const SYS_s390_pci_mmio_write: ::c_long = 352; -pub const SYS_s390_pci_mmio_read: ::c_long = 353; -pub const SYS_execveat: ::c_long = 354; -pub const SYS_userfaultfd: ::c_long = 355; -pub const SYS_membarrier: ::c_long = 356; -pub const SYS_recvmmsg: ::c_long = 357; -pub const SYS_sendmmsg: ::c_long = 358; -pub const SYS_socket: ::c_long = 359; -pub const SYS_socketpair: ::c_long = 360; -pub const SYS_bind: ::c_long = 361; -pub const SYS_connect: ::c_long = 362; -pub const SYS_listen: ::c_long = 363; -pub const SYS_accept4: ::c_long = 364; -pub const SYS_getsockopt: ::c_long = 365; -pub const SYS_setsockopt: ::c_long = 366; -pub const SYS_getsockname: ::c_long = 367; -pub const SYS_getpeername: ::c_long = 368; -pub const SYS_sendto: ::c_long = 369; -pub const SYS_sendmsg: ::c_long = 370; -pub const SYS_recvfrom: ::c_long = 371; -pub const SYS_recvmsg: ::c_long = 372; -pub const SYS_shutdown: ::c_long = 373; -pub const SYS_mlock2: ::c_long = 374; -pub const SYS_copy_file_range: ::c_long = 375; -pub const SYS_preadv2: ::c_long = 376; -pub const SYS_pwritev2: ::c_long = 377; -pub const SYS_s390_guarded_storage: ::c_long = 378; -pub const SYS_statx: ::c_long = 379; -pub const SYS_s390_sthyi: ::c_long = 380; -pub const SYS_kexec_file_load: ::c_long = 381; -pub const SYS_io_pgetevents: ::c_long = 382; -pub const SYS_rseq: ::c_long = 383; -pub const SYS_pkey_mprotect: ::c_long = 384; -pub const SYS_pkey_alloc: ::c_long = 385; -pub const SYS_pkey_free: ::c_long = 386; -pub const SYS_semtimedop: ::c_long = 392; -pub const SYS_semget: ::c_long = 393; -pub const SYS_semctl: ::c_long = 394; -pub const SYS_shmget: ::c_long = 395; -pub const SYS_shmctl: ::c_long = 396; -pub const SYS_shmat: ::c_long = 397; -pub const SYS_shmdt: ::c_long = 398; -pub const SYS_msgget: ::c_long = 399; -pub const SYS_msgsnd: ::c_long = 400; -pub const SYS_msgrcv: ::c_long = 401; -pub const SYS_msgctl: ::c_long = 402; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; -pub const SYS_cachestat: ::c_long = 451; -pub const SYS_fchmodat2: ::c_long = 452; +pub const SYS_exit: c_long = 1; +pub const SYS_fork: c_long = 2; +pub const SYS_read: c_long = 3; +pub const SYS_write: c_long = 4; +pub const SYS_open: c_long = 5; +pub const SYS_close: c_long = 6; +pub const SYS_restart_syscall: c_long = 7; +pub const SYS_creat: c_long = 8; +pub const SYS_link: c_long = 9; +pub const SYS_unlink: c_long = 10; +pub const SYS_execve: c_long = 11; +pub const SYS_chdir: c_long = 12; +pub const SYS_mknod: c_long = 14; +pub const SYS_chmod: c_long = 15; +pub const SYS_lseek: c_long = 19; +pub const SYS_getpid: c_long = 20; +pub const SYS_mount: c_long = 21; +pub const SYS_umount: c_long = 22; +pub const SYS_ptrace: c_long = 26; +pub const SYS_alarm: c_long = 27; +pub const SYS_pause: c_long = 29; +pub const SYS_utime: c_long = 30; +pub const SYS_access: c_long = 33; +pub const SYS_nice: c_long = 34; +pub const SYS_sync: c_long = 36; +pub const SYS_kill: c_long = 37; +pub const SYS_rename: c_long = 38; +pub const SYS_mkdir: c_long = 39; +pub const SYS_rmdir: c_long = 40; +pub const SYS_dup: c_long = 41; +pub const SYS_pipe: c_long = 42; +pub const SYS_times: c_long = 43; +pub const SYS_brk: c_long = 45; +pub const SYS_signal: c_long = 48; +pub const SYS_acct: c_long = 51; +pub const SYS_umount2: c_long = 52; +pub const SYS_ioctl: c_long = 54; +pub const SYS_fcntl: c_long = 55; +pub const SYS_setpgid: c_long = 57; +pub const SYS_umask: c_long = 60; +pub const SYS_chroot: c_long = 61; +pub const SYS_ustat: c_long = 62; +pub const SYS_dup2: c_long = 63; +pub const SYS_getppid: c_long = 64; +pub const SYS_getpgrp: c_long = 65; +pub const SYS_setsid: c_long = 66; +pub const SYS_sigaction: c_long = 67; +pub const SYS_sigsuspend: c_long = 72; +pub const SYS_sigpending: c_long = 73; +pub const SYS_sethostname: c_long = 74; +pub const SYS_setrlimit: c_long = 75; +pub const SYS_getrusage: c_long = 77; +pub const SYS_gettimeofday: c_long = 78; +pub const SYS_settimeofday: c_long = 79; +pub const SYS_symlink: c_long = 83; +pub const SYS_readlink: c_long = 85; +pub const SYS_uselib: c_long = 86; +pub const SYS_swapon: c_long = 87; +pub const SYS_reboot: c_long = 88; +pub const SYS_readdir: c_long = 89; +pub const SYS_mmap: c_long = 90; +pub const SYS_munmap: c_long = 91; +pub const SYS_truncate: c_long = 92; +pub const SYS_ftruncate: c_long = 93; +pub const SYS_fchmod: c_long = 94; +pub const SYS_getpriority: c_long = 96; +pub const SYS_setpriority: c_long = 97; +pub const SYS_statfs: c_long = 99; +pub const SYS_fstatfs: c_long = 100; +pub const SYS_socketcall: c_long = 102; +pub const SYS_syslog: c_long = 103; +pub const SYS_setitimer: c_long = 104; +pub const SYS_getitimer: c_long = 105; +pub const SYS_stat: c_long = 106; +pub const SYS_lstat: c_long = 107; +pub const SYS_fstat: c_long = 108; +pub const SYS_lookup_dcookie: c_long = 110; +pub const SYS_vhangup: c_long = 111; +pub const SYS_idle: c_long = 112; +pub const SYS_wait4: c_long = 114; +pub const SYS_swapoff: c_long = 115; +pub const SYS_sysinfo: c_long = 116; +pub const SYS_ipc: c_long = 117; +pub const SYS_fsync: c_long = 118; +pub const SYS_sigreturn: c_long = 119; +pub const SYS_clone: c_long = 120; +pub const SYS_setdomainname: c_long = 121; +pub const SYS_uname: c_long = 122; +pub const SYS_adjtimex: c_long = 124; +pub const SYS_mprotect: c_long = 125; +pub const SYS_sigprocmask: c_long = 126; +pub const SYS_create_module: c_long = 127; +pub const SYS_init_module: c_long = 128; +pub const SYS_delete_module: c_long = 129; +pub const SYS_get_kernel_syms: c_long = 130; +pub const SYS_quotactl: c_long = 131; +pub const SYS_getpgid: c_long = 132; +pub const SYS_fchdir: c_long = 133; +pub const SYS_bdflush: c_long = 134; +pub const SYS_sysfs: c_long = 135; +pub const SYS_personality: c_long = 136; +pub const SYS_afs_syscall: c_long = 137; /* Syscall for Andrew File System */ +pub const SYS_getdents: c_long = 141; +pub const SYS_select: c_long = 142; +pub const SYS_flock: c_long = 143; +pub const SYS_msync: c_long = 144; +pub const SYS_readv: c_long = 145; +pub const SYS_writev: c_long = 146; +pub const SYS_getsid: c_long = 147; +pub const SYS_fdatasync: c_long = 148; +pub const SYS__sysctl: c_long = 149; +pub const SYS_mlock: c_long = 150; +pub const SYS_munlock: c_long = 151; +pub const SYS_mlockall: c_long = 152; +pub const SYS_munlockall: c_long = 153; +pub const SYS_sched_setparam: c_long = 154; +pub const SYS_sched_getparam: c_long = 155; +pub const SYS_sched_setscheduler: c_long = 156; +pub const SYS_sched_getscheduler: c_long = 157; +pub const SYS_sched_yield: c_long = 158; +pub const SYS_sched_get_priority_max: c_long = 159; +pub const SYS_sched_get_priority_min: c_long = 160; +pub const SYS_sched_rr_get_interval: c_long = 161; +pub const SYS_nanosleep: c_long = 162; +pub const SYS_mremap: c_long = 163; +pub const SYS_query_module: c_long = 167; +pub const SYS_poll: c_long = 168; +pub const SYS_nfsservctl: c_long = 169; +pub const SYS_prctl: c_long = 172; +pub const SYS_rt_sigreturn: c_long = 173; +pub const SYS_rt_sigaction: c_long = 174; +pub const SYS_rt_sigprocmask: c_long = 175; +pub const SYS_rt_sigpending: c_long = 176; +pub const SYS_rt_sigtimedwait: c_long = 177; +pub const SYS_rt_sigqueueinfo: c_long = 178; +pub const SYS_rt_sigsuspend: c_long = 179; +pub const SYS_pread64: c_long = 180; +pub const SYS_pwrite64: c_long = 181; +pub const SYS_getcwd: c_long = 183; +pub const SYS_capget: c_long = 184; +pub const SYS_capset: c_long = 185; +pub const SYS_sigaltstack: c_long = 186; +pub const SYS_sendfile: c_long = 187; +pub const SYS_getpmsg: c_long = 188; +pub const SYS_putpmsg: c_long = 189; +pub const SYS_vfork: c_long = 190; +pub const SYS_getrlimit: c_long = 191; +pub const SYS_lchown: c_long = 198; +pub const SYS_getuid: c_long = 199; +pub const SYS_getgid: c_long = 200; +pub const SYS_geteuid: c_long = 201; +pub const SYS_getegid: c_long = 202; +pub const SYS_setreuid: c_long = 203; +pub const SYS_setregid: c_long = 204; +pub const SYS_getgroups: c_long = 205; +pub const SYS_setgroups: c_long = 206; +pub const SYS_fchown: c_long = 207; +pub const SYS_setresuid: c_long = 208; +pub const SYS_getresuid: c_long = 209; +pub const SYS_setresgid: c_long = 210; +pub const SYS_getresgid: c_long = 211; +pub const SYS_chown: c_long = 212; +pub const SYS_setuid: c_long = 213; +pub const SYS_setgid: c_long = 214; +pub const SYS_setfsuid: c_long = 215; +pub const SYS_setfsgid: c_long = 216; +pub const SYS_pivot_root: c_long = 217; +pub const SYS_mincore: c_long = 218; +pub const SYS_madvise: c_long = 219; +pub const SYS_getdents64: c_long = 220; +pub const SYS_readahead: c_long = 222; +pub const SYS_setxattr: c_long = 224; +pub const SYS_lsetxattr: c_long = 225; +pub const SYS_fsetxattr: c_long = 226; +pub const SYS_getxattr: c_long = 227; +pub const SYS_lgetxattr: c_long = 228; +pub const SYS_fgetxattr: c_long = 229; +pub const SYS_listxattr: c_long = 230; +pub const SYS_llistxattr: c_long = 231; +pub const SYS_flistxattr: c_long = 232; +pub const SYS_removexattr: c_long = 233; +pub const SYS_lremovexattr: c_long = 234; +pub const SYS_fremovexattr: c_long = 235; +pub const SYS_gettid: c_long = 236; +pub const SYS_tkill: c_long = 237; +pub const SYS_futex: c_long = 238; +pub const SYS_sched_setaffinity: c_long = 239; +pub const SYS_sched_getaffinity: c_long = 240; +pub const SYS_tgkill: c_long = 241; +pub const SYS_io_setup: c_long = 243; +pub const SYS_io_destroy: c_long = 244; +pub const SYS_io_getevents: c_long = 245; +pub const SYS_io_submit: c_long = 246; +pub const SYS_io_cancel: c_long = 247; +pub const SYS_exit_group: c_long = 248; +pub const SYS_epoll_create: c_long = 249; +pub const SYS_epoll_ctl: c_long = 250; +pub const SYS_epoll_wait: c_long = 251; +pub const SYS_set_tid_address: c_long = 252; +pub const SYS_fadvise64: c_long = 253; +pub const SYS_timer_create: c_long = 254; +pub const SYS_timer_settime: c_long = 255; +pub const SYS_timer_gettime: c_long = 256; +pub const SYS_timer_getoverrun: c_long = 257; +pub const SYS_timer_delete: c_long = 258; +pub const SYS_clock_settime: c_long = 259; +pub const SYS_clock_gettime: c_long = 260; +pub const SYS_clock_getres: c_long = 261; +pub const SYS_clock_nanosleep: c_long = 262; +pub const SYS_statfs64: c_long = 265; +pub const SYS_fstatfs64: c_long = 266; +pub const SYS_remap_file_pages: c_long = 267; +pub const SYS_mbind: c_long = 268; +pub const SYS_get_mempolicy: c_long = 269; +pub const SYS_set_mempolicy: c_long = 270; +pub const SYS_mq_open: c_long = 271; +pub const SYS_mq_unlink: c_long = 272; +pub const SYS_mq_timedsend: c_long = 273; +pub const SYS_mq_timedreceive: c_long = 274; +pub const SYS_mq_notify: c_long = 275; +pub const SYS_mq_getsetattr: c_long = 276; +pub const SYS_kexec_load: c_long = 277; +pub const SYS_add_key: c_long = 278; +pub const SYS_request_key: c_long = 279; +pub const SYS_keyctl: c_long = 280; +pub const SYS_waitid: c_long = 281; +pub const SYS_ioprio_set: c_long = 282; +pub const SYS_ioprio_get: c_long = 283; +pub const SYS_inotify_init: c_long = 284; +pub const SYS_inotify_add_watch: c_long = 285; +pub const SYS_inotify_rm_watch: c_long = 286; +pub const SYS_migrate_pages: c_long = 287; +pub const SYS_openat: c_long = 288; +pub const SYS_mkdirat: c_long = 289; +pub const SYS_mknodat: c_long = 290; +pub const SYS_fchownat: c_long = 291; +pub const SYS_futimesat: c_long = 292; +pub const SYS_newfstatat: c_long = 293; +pub const SYS_unlinkat: c_long = 294; +pub const SYS_renameat: c_long = 295; +pub const SYS_linkat: c_long = 296; +pub const SYS_symlinkat: c_long = 297; +pub const SYS_readlinkat: c_long = 298; +pub const SYS_fchmodat: c_long = 299; +pub const SYS_faccessat: c_long = 300; +pub const SYS_pselect6: c_long = 301; +pub const SYS_ppoll: c_long = 302; +pub const SYS_unshare: c_long = 303; +pub const SYS_set_robust_list: c_long = 304; +pub const SYS_get_robust_list: c_long = 305; +pub const SYS_splice: c_long = 306; +pub const SYS_sync_file_range: c_long = 307; +pub const SYS_tee: c_long = 308; +pub const SYS_vmsplice: c_long = 309; +pub const SYS_move_pages: c_long = 310; +pub const SYS_getcpu: c_long = 311; +pub const SYS_epoll_pwait: c_long = 312; +pub const SYS_utimes: c_long = 313; +pub const SYS_fallocate: c_long = 314; +pub const SYS_utimensat: c_long = 315; +pub const SYS_signalfd: c_long = 316; +pub const SYS_timerfd: c_long = 317; +pub const SYS_eventfd: c_long = 318; +pub const SYS_timerfd_create: c_long = 319; +pub const SYS_timerfd_settime: c_long = 320; +pub const SYS_timerfd_gettime: c_long = 321; +pub const SYS_signalfd4: c_long = 322; +pub const SYS_eventfd2: c_long = 323; +pub const SYS_inotify_init1: c_long = 324; +pub const SYS_pipe2: c_long = 325; +pub const SYS_dup3: c_long = 326; +pub const SYS_epoll_create1: c_long = 327; +pub const SYS_preadv: c_long = 328; +pub const SYS_pwritev: c_long = 329; +pub const SYS_rt_tgsigqueueinfo: c_long = 330; +pub const SYS_perf_event_open: c_long = 331; +pub const SYS_fanotify_init: c_long = 332; +pub const SYS_fanotify_mark: c_long = 333; +pub const SYS_prlimit64: c_long = 334; +pub const SYS_name_to_handle_at: c_long = 335; +pub const SYS_open_by_handle_at: c_long = 336; +pub const SYS_clock_adjtime: c_long = 337; +pub const SYS_syncfs: c_long = 338; +pub const SYS_setns: c_long = 339; +pub const SYS_process_vm_readv: c_long = 340; +pub const SYS_process_vm_writev: c_long = 341; +pub const SYS_s390_runtime_instr: c_long = 342; +pub const SYS_kcmp: c_long = 343; +pub const SYS_finit_module: c_long = 344; +pub const SYS_sched_setattr: c_long = 345; +pub const SYS_sched_getattr: c_long = 346; +pub const SYS_renameat2: c_long = 347; +pub const SYS_seccomp: c_long = 348; +pub const SYS_getrandom: c_long = 349; +pub const SYS_memfd_create: c_long = 350; +pub const SYS_bpf: c_long = 351; +pub const SYS_s390_pci_mmio_write: c_long = 352; +pub const SYS_s390_pci_mmio_read: c_long = 353; +pub const SYS_execveat: c_long = 354; +pub const SYS_userfaultfd: c_long = 355; +pub const SYS_membarrier: c_long = 356; +pub const SYS_recvmmsg: c_long = 357; +pub const SYS_sendmmsg: c_long = 358; +pub const SYS_socket: c_long = 359; +pub const SYS_socketpair: c_long = 360; +pub const SYS_bind: c_long = 361; +pub const SYS_connect: c_long = 362; +pub const SYS_listen: c_long = 363; +pub const SYS_accept4: c_long = 364; +pub const SYS_getsockopt: c_long = 365; +pub const SYS_setsockopt: c_long = 366; +pub const SYS_getsockname: c_long = 367; +pub const SYS_getpeername: c_long = 368; +pub const SYS_sendto: c_long = 369; +pub const SYS_sendmsg: c_long = 370; +pub const SYS_recvfrom: c_long = 371; +pub const SYS_recvmsg: c_long = 372; +pub const SYS_shutdown: c_long = 373; +pub const SYS_mlock2: c_long = 374; +pub const SYS_copy_file_range: c_long = 375; +pub const SYS_preadv2: c_long = 376; +pub const SYS_pwritev2: c_long = 377; +pub const SYS_s390_guarded_storage: c_long = 378; +pub const SYS_statx: c_long = 379; +pub const SYS_s390_sthyi: c_long = 380; +pub const SYS_kexec_file_load: c_long = 381; +pub const SYS_io_pgetevents: c_long = 382; +pub const SYS_rseq: c_long = 383; +pub const SYS_pkey_mprotect: c_long = 384; +pub const SYS_pkey_alloc: c_long = 385; +pub const SYS_pkey_free: c_long = 386; +pub const SYS_semtimedop: c_long = 392; +pub const SYS_semget: c_long = 393; +pub const SYS_semctl: c_long = 394; +pub const SYS_shmget: c_long = 395; +pub const SYS_shmctl: c_long = 396; +pub const SYS_shmat: c_long = 397; +pub const SYS_shmdt: c_long = 398; +pub const SYS_msgget: c_long = 399; +pub const SYS_msgsnd: c_long = 400; +pub const SYS_msgrcv: c_long = 401; +pub const SYS_msgctl: c_long = 402; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; +pub const SYS_cachestat: c_long = 451; +pub const SYS_fchmodat2: c_long = 452; diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index d3bb14d4929c3..62ce8aadc7443 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -1,104 +1,108 @@ +use crate::{ + c_int, c_long, c_longlong, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, off_t, size_t, +}; + pub type c_char = i8; pub type wchar_t = i32; pub type nlink_t = u64; -pub type blksize_t = ::c_long; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; +pub type blksize_t = c_long; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; pub type greg_t = i64; 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], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + __pad0: c_int, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_long; 3], } pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_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: ::blkcnt64_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, - __reserved: [::c_long; 3], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino64_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + __pad0: c_int, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __reserved: [c_long; 3], } pub struct user_regs_struct { - pub r15: ::c_ulong, - pub r14: ::c_ulong, - pub r13: ::c_ulong, - pub r12: ::c_ulong, - pub rbp: ::c_ulong, - pub rbx: ::c_ulong, - pub r11: ::c_ulong, - pub r10: ::c_ulong, - pub r9: ::c_ulong, - pub r8: ::c_ulong, - pub rax: ::c_ulong, - pub rcx: ::c_ulong, - pub rdx: ::c_ulong, - pub rsi: ::c_ulong, - pub rdi: ::c_ulong, - pub orig_rax: ::c_ulong, - pub rip: ::c_ulong, - pub cs: ::c_ulong, - pub eflags: ::c_ulong, - pub rsp: ::c_ulong, - pub ss: ::c_ulong, - pub fs_base: ::c_ulong, - pub gs_base: ::c_ulong, - pub ds: ::c_ulong, - pub es: ::c_ulong, - pub fs: ::c_ulong, - pub gs: ::c_ulong, + pub r15: c_ulong, + pub r14: c_ulong, + pub r13: c_ulong, + pub r12: c_ulong, + pub rbp: c_ulong, + pub rbx: c_ulong, + pub r11: c_ulong, + pub r10: c_ulong, + pub r9: c_ulong, + pub r8: c_ulong, + pub rax: c_ulong, + pub rcx: c_ulong, + pub rdx: c_ulong, + pub rsi: c_ulong, + pub rdi: c_ulong, + pub orig_rax: c_ulong, + pub rip: c_ulong, + pub cs: c_ulong, + pub eflags: c_ulong, + pub rsp: c_ulong, + pub ss: c_ulong, + pub fs_base: c_ulong, + pub gs_base: c_ulong, + pub ds: c_ulong, + pub es: c_ulong, + pub fs: c_ulong, + pub gs: c_ulong, } pub struct user { pub regs: user_regs_struct, - pub u_fpvalid: ::c_int, + pub u_fpvalid: c_int, pub i387: user_fpregs_struct, - pub u_tsize: ::c_ulong, - pub u_dsize: ::c_ulong, - pub u_ssize: ::c_ulong, - pub start_code: ::c_ulong, - pub start_stack: ::c_ulong, - pub signal: ::c_long, - __reserved: ::c_int, + pub u_tsize: c_ulong, + pub u_dsize: c_ulong, + pub u_ssize: c_ulong, + pub start_code: c_ulong, + pub start_stack: c_ulong, + pub signal: c_long, + __reserved: c_int, #[cfg(target_pointer_width = "32")] __pad1: u32, pub u_ar0: *mut user_regs_struct, #[cfg(target_pointer_width = "32")] __pad2: u32, pub u_fpstate: *mut user_fpregs_struct, - pub magic: ::c_ulong, - pub u_comm: [::c_char; 32], - pub u_debugreg: [::c_ulong; 8], + pub magic: c_ulong, + pub u_comm: [c_char; 32], + pub u_debugreg: [c_ulong; 8], } // GitHub repo: ifduyue/musl/ @@ -110,54 +114,54 @@ s! { } 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_int, - __unused1: ::c_long, - __unused2: ::c_long, + pub __ipc_perm_key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub __seq: c_int, + __unused1: c_long, + __unused2: c_long, } #[repr(align(8))] pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, + pub flags: c_ulonglong, + pub pidfd: c_ulonglong, + pub child_tid: c_ulonglong, + pub parent_tid: c_ulonglong, + pub exit_signal: c_ulonglong, + pub stack: c_ulonglong, + pub stack_size: c_ulonglong, + pub tls: c_ulonglong, + pub set_tid: c_ulonglong, + pub set_tid_size: c_ulonglong, + pub cgroup: c_ulonglong, } } s_no_extra_traits! { pub struct user_fpregs_struct { - pub cwd: ::c_ushort, - pub swd: ::c_ushort, - pub ftw: ::c_ushort, - pub fop: ::c_ushort, - pub rip: ::c_ulong, - pub rdp: ::c_ulong, - pub mxcsr: ::c_uint, - pub mxcr_mask: ::c_uint, - pub st_space: [::c_uint; 32], - pub xmm_space: [::c_uint; 64], - padding: [::c_uint; 24], + pub cwd: c_ushort, + pub swd: c_ushort, + pub ftw: c_ushort, + pub fop: c_ushort, + pub rip: c_ulong, + pub rdp: c_ulong, + pub mxcsr: c_uint, + pub mxcr_mask: c_uint, + pub st_space: [c_uint; 32], + pub xmm_space: [c_uint; 64], + padding: [c_uint; 24], } pub struct ucontext_t { - pub uc_flags: ::c_ulong, + pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, + pub uc_stack: crate::stack_t, pub uc_mcontext: mcontext_t, - pub uc_sigmask: ::sigset_t, + pub uc_sigmask: crate::sigset_t, __private: [u8; 512], } @@ -192,8 +196,8 @@ cfg_if! { impl Eq for user_fpregs_struct {} - impl ::fmt::Debug for user_fpregs_struct { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for user_fpregs_struct { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("user_fpregs_struct") .field("cwd", &self.cwd) .field("ftw", &self.ftw) @@ -209,8 +213,8 @@ cfg_if! { } } - impl ::hash::Hash for user_fpregs_struct { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for user_fpregs_struct { + fn hash(&self, state: &mut H) { self.cwd.hash(state); self.ftw.hash(state); self.fop.hash(state); @@ -241,8 +245,8 @@ cfg_if! { impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -254,8 +258,8 @@ cfg_if! { } } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); @@ -269,601 +273,601 @@ cfg_if! { // Syscall table -pub const SYS_read: ::c_long = 0; -pub const SYS_write: ::c_long = 1; -pub const SYS_open: ::c_long = 2; -pub const SYS_close: ::c_long = 3; -pub const SYS_stat: ::c_long = 4; -pub const SYS_fstat: ::c_long = 5; -pub const SYS_lstat: ::c_long = 6; -pub const SYS_poll: ::c_long = 7; -pub const SYS_lseek: ::c_long = 8; -pub const SYS_mmap: ::c_long = 9; -pub const SYS_mprotect: ::c_long = 10; -pub const SYS_munmap: ::c_long = 11; -pub const SYS_brk: ::c_long = 12; -pub const SYS_rt_sigaction: ::c_long = 13; -pub const SYS_rt_sigprocmask: ::c_long = 14; -pub const SYS_rt_sigreturn: ::c_long = 15; -pub const SYS_ioctl: ::c_long = 16; -pub const SYS_pread64: ::c_long = 17; -pub const SYS_pwrite64: ::c_long = 18; -pub const SYS_readv: ::c_long = 19; -pub const SYS_writev: ::c_long = 20; -pub const SYS_access: ::c_long = 21; -pub const SYS_pipe: ::c_long = 22; -pub const SYS_select: ::c_long = 23; -pub const SYS_sched_yield: ::c_long = 24; -pub const SYS_mremap: ::c_long = 25; -pub const SYS_msync: ::c_long = 26; -pub const SYS_mincore: ::c_long = 27; -pub const SYS_madvise: ::c_long = 28; -pub const SYS_shmget: ::c_long = 29; -pub const SYS_shmat: ::c_long = 30; -pub const SYS_shmctl: ::c_long = 31; -pub const SYS_dup: ::c_long = 32; -pub const SYS_dup2: ::c_long = 33; -pub const SYS_pause: ::c_long = 34; -pub const SYS_nanosleep: ::c_long = 35; -pub const SYS_getitimer: ::c_long = 36; -pub const SYS_alarm: ::c_long = 37; -pub const SYS_setitimer: ::c_long = 38; -pub const SYS_getpid: ::c_long = 39; -pub const SYS_sendfile: ::c_long = 40; -pub const SYS_socket: ::c_long = 41; -pub const SYS_connect: ::c_long = 42; -pub const SYS_accept: ::c_long = 43; -pub const SYS_sendto: ::c_long = 44; -pub const SYS_recvfrom: ::c_long = 45; -pub const SYS_sendmsg: ::c_long = 46; -pub const SYS_recvmsg: ::c_long = 47; -pub const SYS_shutdown: ::c_long = 48; -pub const SYS_bind: ::c_long = 49; -pub const SYS_listen: ::c_long = 50; -pub const SYS_getsockname: ::c_long = 51; -pub const SYS_getpeername: ::c_long = 52; -pub const SYS_socketpair: ::c_long = 53; -pub const SYS_setsockopt: ::c_long = 54; -pub const SYS_getsockopt: ::c_long = 55; -pub const SYS_clone: ::c_long = 56; -pub const SYS_fork: ::c_long = 57; -pub const SYS_vfork: ::c_long = 58; -pub const SYS_execve: ::c_long = 59; -pub const SYS_exit: ::c_long = 60; -pub const SYS_wait4: ::c_long = 61; -pub const SYS_kill: ::c_long = 62; -pub const SYS_uname: ::c_long = 63; -pub const SYS_semget: ::c_long = 64; -pub const SYS_semop: ::c_long = 65; -pub const SYS_semctl: ::c_long = 66; -pub const SYS_shmdt: ::c_long = 67; -pub const SYS_msgget: ::c_long = 68; -pub const SYS_msgsnd: ::c_long = 69; -pub const SYS_msgrcv: ::c_long = 70; -pub const SYS_msgctl: ::c_long = 71; -pub const SYS_fcntl: ::c_long = 72; -pub const SYS_flock: ::c_long = 73; -pub const SYS_fsync: ::c_long = 74; -pub const SYS_fdatasync: ::c_long = 75; -pub const SYS_truncate: ::c_long = 76; -pub const SYS_ftruncate: ::c_long = 77; -pub const SYS_getdents: ::c_long = 78; -pub const SYS_getcwd: ::c_long = 79; -pub const SYS_chdir: ::c_long = 80; -pub const SYS_fchdir: ::c_long = 81; -pub const SYS_rename: ::c_long = 82; -pub const SYS_mkdir: ::c_long = 83; -pub const SYS_rmdir: ::c_long = 84; -pub const SYS_creat: ::c_long = 85; -pub const SYS_link: ::c_long = 86; -pub const SYS_unlink: ::c_long = 87; -pub const SYS_symlink: ::c_long = 88; -pub const SYS_readlink: ::c_long = 89; -pub const SYS_chmod: ::c_long = 90; -pub const SYS_fchmod: ::c_long = 91; -pub const SYS_chown: ::c_long = 92; -pub const SYS_fchown: ::c_long = 93; -pub const SYS_lchown: ::c_long = 94; -pub const SYS_umask: ::c_long = 95; -pub const SYS_gettimeofday: ::c_long = 96; -pub const SYS_getrlimit: ::c_long = 97; -pub const SYS_getrusage: ::c_long = 98; -pub const SYS_sysinfo: ::c_long = 99; -pub const SYS_times: ::c_long = 100; -pub const SYS_ptrace: ::c_long = 101; -pub const SYS_getuid: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_getgid: ::c_long = 104; -pub const SYS_setuid: ::c_long = 105; -pub const SYS_setgid: ::c_long = 106; -pub const SYS_geteuid: ::c_long = 107; -pub const SYS_getegid: ::c_long = 108; -pub const SYS_setpgid: ::c_long = 109; -pub const SYS_getppid: ::c_long = 110; -pub const SYS_getpgrp: ::c_long = 111; -pub const SYS_setsid: ::c_long = 112; -pub const SYS_setreuid: ::c_long = 113; -pub const SYS_setregid: ::c_long = 114; -pub const SYS_getgroups: ::c_long = 115; -pub const SYS_setgroups: ::c_long = 116; -pub const SYS_setresuid: ::c_long = 117; -pub const SYS_getresuid: ::c_long = 118; -pub const SYS_setresgid: ::c_long = 119; -pub const SYS_getresgid: ::c_long = 120; -pub const SYS_getpgid: ::c_long = 121; -pub const SYS_setfsuid: ::c_long = 122; -pub const SYS_setfsgid: ::c_long = 123; -pub const SYS_getsid: ::c_long = 124; -pub const SYS_capget: ::c_long = 125; -pub const SYS_capset: ::c_long = 126; -pub const SYS_rt_sigpending: ::c_long = 127; -pub const SYS_rt_sigtimedwait: ::c_long = 128; -pub const SYS_rt_sigqueueinfo: ::c_long = 129; -pub const SYS_rt_sigsuspend: ::c_long = 130; -pub const SYS_sigaltstack: ::c_long = 131; -pub const SYS_utime: ::c_long = 132; -pub const SYS_mknod: ::c_long = 133; -pub const SYS_uselib: ::c_long = 134; -pub const SYS_personality: ::c_long = 135; -pub const SYS_ustat: ::c_long = 136; -pub const SYS_statfs: ::c_long = 137; -pub const SYS_fstatfs: ::c_long = 138; -pub const SYS_sysfs: ::c_long = 139; -pub const SYS_getpriority: ::c_long = 140; -pub const SYS_setpriority: ::c_long = 141; -pub const SYS_sched_setparam: ::c_long = 142; -pub const SYS_sched_getparam: ::c_long = 143; -pub const SYS_sched_setscheduler: ::c_long = 144; -pub const SYS_sched_getscheduler: ::c_long = 145; -pub const SYS_sched_get_priority_max: ::c_long = 146; -pub const SYS_sched_get_priority_min: ::c_long = 147; -pub const SYS_sched_rr_get_interval: ::c_long = 148; -pub const SYS_mlock: ::c_long = 149; -pub const SYS_munlock: ::c_long = 150; -pub const SYS_mlockall: ::c_long = 151; -pub const SYS_munlockall: ::c_long = 152; -pub const SYS_vhangup: ::c_long = 153; -pub const SYS_modify_ldt: ::c_long = 154; -pub const SYS_pivot_root: ::c_long = 155; -pub const SYS__sysctl: ::c_long = 156; -pub const SYS_prctl: ::c_long = 157; -pub const SYS_arch_prctl: ::c_long = 158; -pub const SYS_adjtimex: ::c_long = 159; -pub const SYS_setrlimit: ::c_long = 160; -pub const SYS_chroot: ::c_long = 161; -pub const SYS_sync: ::c_long = 162; -pub const SYS_acct: ::c_long = 163; -pub const SYS_settimeofday: ::c_long = 164; -pub const SYS_mount: ::c_long = 165; -pub const SYS_umount2: ::c_long = 166; -pub const SYS_swapon: ::c_long = 167; -pub const SYS_swapoff: ::c_long = 168; -pub const SYS_reboot: ::c_long = 169; -pub const SYS_sethostname: ::c_long = 170; -pub const SYS_setdomainname: ::c_long = 171; -pub const SYS_iopl: ::c_long = 172; -pub const SYS_ioperm: ::c_long = 173; -pub const SYS_create_module: ::c_long = 174; -pub const SYS_init_module: ::c_long = 175; -pub const SYS_delete_module: ::c_long = 176; -pub const SYS_get_kernel_syms: ::c_long = 177; -pub const SYS_query_module: ::c_long = 178; -pub const SYS_quotactl: ::c_long = 179; -pub const SYS_nfsservctl: ::c_long = 180; -pub const SYS_getpmsg: ::c_long = 181; -pub const SYS_putpmsg: ::c_long = 182; -pub const SYS_afs_syscall: ::c_long = 183; -pub const SYS_tuxcall: ::c_long = 184; -pub const SYS_security: ::c_long = 185; -pub const SYS_gettid: ::c_long = 186; -pub const SYS_readahead: ::c_long = 187; -pub const SYS_setxattr: ::c_long = 188; -pub const SYS_lsetxattr: ::c_long = 189; -pub const SYS_fsetxattr: ::c_long = 190; -pub const SYS_getxattr: ::c_long = 191; -pub const SYS_lgetxattr: ::c_long = 192; -pub const SYS_fgetxattr: ::c_long = 193; -pub const SYS_listxattr: ::c_long = 194; -pub const SYS_llistxattr: ::c_long = 195; -pub const SYS_flistxattr: ::c_long = 196; -pub const SYS_removexattr: ::c_long = 197; -pub const SYS_lremovexattr: ::c_long = 198; -pub const SYS_fremovexattr: ::c_long = 199; -pub const SYS_tkill: ::c_long = 200; -pub const SYS_time: ::c_long = 201; -pub const SYS_futex: ::c_long = 202; -pub const SYS_sched_setaffinity: ::c_long = 203; -pub const SYS_sched_getaffinity: ::c_long = 204; -pub const SYS_set_thread_area: ::c_long = 205; -pub const SYS_io_setup: ::c_long = 206; -pub const SYS_io_destroy: ::c_long = 207; -pub const SYS_io_getevents: ::c_long = 208; -pub const SYS_io_submit: ::c_long = 209; -pub const SYS_io_cancel: ::c_long = 210; -pub const SYS_get_thread_area: ::c_long = 211; -pub const SYS_lookup_dcookie: ::c_long = 212; -pub const SYS_epoll_create: ::c_long = 213; -pub const SYS_epoll_ctl_old: ::c_long = 214; -pub const SYS_epoll_wait_old: ::c_long = 215; -pub const SYS_remap_file_pages: ::c_long = 216; -pub const SYS_getdents64: ::c_long = 217; -pub const SYS_set_tid_address: ::c_long = 218; -pub const SYS_restart_syscall: ::c_long = 219; -pub const SYS_semtimedop: ::c_long = 220; -pub const SYS_fadvise64: ::c_long = 221; -pub const SYS_timer_create: ::c_long = 222; -pub const SYS_timer_settime: ::c_long = 223; -pub const SYS_timer_gettime: ::c_long = 224; -pub const SYS_timer_getoverrun: ::c_long = 225; -pub const SYS_timer_delete: ::c_long = 226; -pub const SYS_clock_settime: ::c_long = 227; -pub const SYS_clock_gettime: ::c_long = 228; -pub const SYS_clock_getres: ::c_long = 229; -pub const SYS_clock_nanosleep: ::c_long = 230; -pub const SYS_exit_group: ::c_long = 231; -pub const SYS_epoll_wait: ::c_long = 232; -pub const SYS_epoll_ctl: ::c_long = 233; -pub const SYS_tgkill: ::c_long = 234; -pub const SYS_utimes: ::c_long = 235; -pub const SYS_vserver: ::c_long = 236; -pub const SYS_mbind: ::c_long = 237; -pub const SYS_set_mempolicy: ::c_long = 238; -pub const SYS_get_mempolicy: ::c_long = 239; -pub const SYS_mq_open: ::c_long = 240; -pub const SYS_mq_unlink: ::c_long = 241; -pub const SYS_mq_timedsend: ::c_long = 242; -pub const SYS_mq_timedreceive: ::c_long = 243; -pub const SYS_mq_notify: ::c_long = 244; -pub const SYS_mq_getsetattr: ::c_long = 245; -pub const SYS_kexec_load: ::c_long = 246; -pub const SYS_waitid: ::c_long = 247; -pub const SYS_add_key: ::c_long = 248; -pub const SYS_request_key: ::c_long = 249; -pub const SYS_keyctl: ::c_long = 250; -pub const SYS_ioprio_set: ::c_long = 251; -pub const SYS_ioprio_get: ::c_long = 252; -pub const SYS_inotify_init: ::c_long = 253; -pub const SYS_inotify_add_watch: ::c_long = 254; -pub const SYS_inotify_rm_watch: ::c_long = 255; -pub const SYS_migrate_pages: ::c_long = 256; -pub const SYS_openat: ::c_long = 257; -pub const SYS_mkdirat: ::c_long = 258; -pub const SYS_mknodat: ::c_long = 259; -pub const SYS_fchownat: ::c_long = 260; -pub const SYS_futimesat: ::c_long = 261; -pub const SYS_newfstatat: ::c_long = 262; -pub const SYS_unlinkat: ::c_long = 263; -pub const SYS_renameat: ::c_long = 264; -pub const SYS_linkat: ::c_long = 265; -pub const SYS_symlinkat: ::c_long = 266; -pub const SYS_readlinkat: ::c_long = 267; -pub const SYS_fchmodat: ::c_long = 268; -pub const SYS_faccessat: ::c_long = 269; -pub const SYS_pselect6: ::c_long = 270; -pub const SYS_ppoll: ::c_long = 271; -pub const SYS_unshare: ::c_long = 272; -pub const SYS_set_robust_list: ::c_long = 273; -pub const SYS_get_robust_list: ::c_long = 274; -pub const SYS_splice: ::c_long = 275; -pub const SYS_tee: ::c_long = 276; -pub const SYS_sync_file_range: ::c_long = 277; -pub const SYS_vmsplice: ::c_long = 278; -pub const SYS_move_pages: ::c_long = 279; -pub const SYS_utimensat: ::c_long = 280; -pub const SYS_epoll_pwait: ::c_long = 281; -pub const SYS_signalfd: ::c_long = 282; -pub const SYS_timerfd_create: ::c_long = 283; -pub const SYS_eventfd: ::c_long = 284; -pub const SYS_fallocate: ::c_long = 285; -pub const SYS_timerfd_settime: ::c_long = 286; -pub const SYS_timerfd_gettime: ::c_long = 287; -pub const SYS_accept4: ::c_long = 288; -pub const SYS_signalfd4: ::c_long = 289; -pub const SYS_eventfd2: ::c_long = 290; -pub const SYS_epoll_create1: ::c_long = 291; -pub const SYS_dup3: ::c_long = 292; -pub const SYS_pipe2: ::c_long = 293; -pub const SYS_inotify_init1: ::c_long = 294; -pub const SYS_preadv: ::c_long = 295; -pub const SYS_pwritev: ::c_long = 296; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 297; -pub const SYS_perf_event_open: ::c_long = 298; -pub const SYS_recvmmsg: ::c_long = 299; -pub const SYS_fanotify_init: ::c_long = 300; -pub const SYS_fanotify_mark: ::c_long = 301; -pub const SYS_prlimit64: ::c_long = 302; -pub const SYS_name_to_handle_at: ::c_long = 303; -pub const SYS_open_by_handle_at: ::c_long = 304; -pub const SYS_clock_adjtime: ::c_long = 305; -pub const SYS_syncfs: ::c_long = 306; -pub const SYS_sendmmsg: ::c_long = 307; -pub const SYS_setns: ::c_long = 308; -pub const SYS_getcpu: ::c_long = 309; -pub const SYS_process_vm_readv: ::c_long = 310; -pub const SYS_process_vm_writev: ::c_long = 311; -pub const SYS_kcmp: ::c_long = 312; -pub const SYS_finit_module: ::c_long = 313; -pub const SYS_sched_setattr: ::c_long = 314; -pub const SYS_sched_getattr: ::c_long = 315; -pub const SYS_renameat2: ::c_long = 316; -pub const SYS_seccomp: ::c_long = 317; -pub const SYS_getrandom: ::c_long = 318; -pub const SYS_memfd_create: ::c_long = 319; -pub const SYS_kexec_file_load: ::c_long = 320; -pub const SYS_bpf: ::c_long = 321; -pub const SYS_execveat: ::c_long = 322; -pub const SYS_userfaultfd: ::c_long = 323; -pub const SYS_membarrier: ::c_long = 324; -pub const SYS_mlock2: ::c_long = 325; -pub const SYS_copy_file_range: ::c_long = 326; -pub const SYS_preadv2: ::c_long = 327; -pub const SYS_pwritev2: ::c_long = 328; -pub const SYS_pkey_mprotect: ::c_long = 329; -pub const SYS_pkey_alloc: ::c_long = 330; -pub const SYS_pkey_free: ::c_long = 331; -pub const SYS_statx: ::c_long = 332; -pub const SYS_io_pgetevents: ::c_long = 333; -pub const SYS_rseq: ::c_long = 334; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; -pub const SYS_fchmodat2: ::c_long = 452; -pub const SYS_mseal: ::c_long = 462; +pub const SYS_read: c_long = 0; +pub const SYS_write: c_long = 1; +pub const SYS_open: c_long = 2; +pub const SYS_close: c_long = 3; +pub const SYS_stat: c_long = 4; +pub const SYS_fstat: c_long = 5; +pub const SYS_lstat: c_long = 6; +pub const SYS_poll: c_long = 7; +pub const SYS_lseek: c_long = 8; +pub const SYS_mmap: c_long = 9; +pub const SYS_mprotect: c_long = 10; +pub const SYS_munmap: c_long = 11; +pub const SYS_brk: c_long = 12; +pub const SYS_rt_sigaction: c_long = 13; +pub const SYS_rt_sigprocmask: c_long = 14; +pub const SYS_rt_sigreturn: c_long = 15; +pub const SYS_ioctl: c_long = 16; +pub const SYS_pread64: c_long = 17; +pub const SYS_pwrite64: c_long = 18; +pub const SYS_readv: c_long = 19; +pub const SYS_writev: c_long = 20; +pub const SYS_access: c_long = 21; +pub const SYS_pipe: c_long = 22; +pub const SYS_select: c_long = 23; +pub const SYS_sched_yield: c_long = 24; +pub const SYS_mremap: c_long = 25; +pub const SYS_msync: c_long = 26; +pub const SYS_mincore: c_long = 27; +pub const SYS_madvise: c_long = 28; +pub const SYS_shmget: c_long = 29; +pub const SYS_shmat: c_long = 30; +pub const SYS_shmctl: c_long = 31; +pub const SYS_dup: c_long = 32; +pub const SYS_dup2: c_long = 33; +pub const SYS_pause: c_long = 34; +pub const SYS_nanosleep: c_long = 35; +pub const SYS_getitimer: c_long = 36; +pub const SYS_alarm: c_long = 37; +pub const SYS_setitimer: c_long = 38; +pub const SYS_getpid: c_long = 39; +pub const SYS_sendfile: c_long = 40; +pub const SYS_socket: c_long = 41; +pub const SYS_connect: c_long = 42; +pub const SYS_accept: c_long = 43; +pub const SYS_sendto: c_long = 44; +pub const SYS_recvfrom: c_long = 45; +pub const SYS_sendmsg: c_long = 46; +pub const SYS_recvmsg: c_long = 47; +pub const SYS_shutdown: c_long = 48; +pub const SYS_bind: c_long = 49; +pub const SYS_listen: c_long = 50; +pub const SYS_getsockname: c_long = 51; +pub const SYS_getpeername: c_long = 52; +pub const SYS_socketpair: c_long = 53; +pub const SYS_setsockopt: c_long = 54; +pub const SYS_getsockopt: c_long = 55; +pub const SYS_clone: c_long = 56; +pub const SYS_fork: c_long = 57; +pub const SYS_vfork: c_long = 58; +pub const SYS_execve: c_long = 59; +pub const SYS_exit: c_long = 60; +pub const SYS_wait4: c_long = 61; +pub const SYS_kill: c_long = 62; +pub const SYS_uname: c_long = 63; +pub const SYS_semget: c_long = 64; +pub const SYS_semop: c_long = 65; +pub const SYS_semctl: c_long = 66; +pub const SYS_shmdt: c_long = 67; +pub const SYS_msgget: c_long = 68; +pub const SYS_msgsnd: c_long = 69; +pub const SYS_msgrcv: c_long = 70; +pub const SYS_msgctl: c_long = 71; +pub const SYS_fcntl: c_long = 72; +pub const SYS_flock: c_long = 73; +pub const SYS_fsync: c_long = 74; +pub const SYS_fdatasync: c_long = 75; +pub const SYS_truncate: c_long = 76; +pub const SYS_ftruncate: c_long = 77; +pub const SYS_getdents: c_long = 78; +pub const SYS_getcwd: c_long = 79; +pub const SYS_chdir: c_long = 80; +pub const SYS_fchdir: c_long = 81; +pub const SYS_rename: c_long = 82; +pub const SYS_mkdir: c_long = 83; +pub const SYS_rmdir: c_long = 84; +pub const SYS_creat: c_long = 85; +pub const SYS_link: c_long = 86; +pub const SYS_unlink: c_long = 87; +pub const SYS_symlink: c_long = 88; +pub const SYS_readlink: c_long = 89; +pub const SYS_chmod: c_long = 90; +pub const SYS_fchmod: c_long = 91; +pub const SYS_chown: c_long = 92; +pub const SYS_fchown: c_long = 93; +pub const SYS_lchown: c_long = 94; +pub const SYS_umask: c_long = 95; +pub const SYS_gettimeofday: c_long = 96; +pub const SYS_getrlimit: c_long = 97; +pub const SYS_getrusage: c_long = 98; +pub const SYS_sysinfo: c_long = 99; +pub const SYS_times: c_long = 100; +pub const SYS_ptrace: c_long = 101; +pub const SYS_getuid: c_long = 102; +pub const SYS_syslog: c_long = 103; +pub const SYS_getgid: c_long = 104; +pub const SYS_setuid: c_long = 105; +pub const SYS_setgid: c_long = 106; +pub const SYS_geteuid: c_long = 107; +pub const SYS_getegid: c_long = 108; +pub const SYS_setpgid: c_long = 109; +pub const SYS_getppid: c_long = 110; +pub const SYS_getpgrp: c_long = 111; +pub const SYS_setsid: c_long = 112; +pub const SYS_setreuid: c_long = 113; +pub const SYS_setregid: c_long = 114; +pub const SYS_getgroups: c_long = 115; +pub const SYS_setgroups: c_long = 116; +pub const SYS_setresuid: c_long = 117; +pub const SYS_getresuid: c_long = 118; +pub const SYS_setresgid: c_long = 119; +pub const SYS_getresgid: c_long = 120; +pub const SYS_getpgid: c_long = 121; +pub const SYS_setfsuid: c_long = 122; +pub const SYS_setfsgid: c_long = 123; +pub const SYS_getsid: c_long = 124; +pub const SYS_capget: c_long = 125; +pub const SYS_capset: c_long = 126; +pub const SYS_rt_sigpending: c_long = 127; +pub const SYS_rt_sigtimedwait: c_long = 128; +pub const SYS_rt_sigqueueinfo: c_long = 129; +pub const SYS_rt_sigsuspend: c_long = 130; +pub const SYS_sigaltstack: c_long = 131; +pub const SYS_utime: c_long = 132; +pub const SYS_mknod: c_long = 133; +pub const SYS_uselib: c_long = 134; +pub const SYS_personality: c_long = 135; +pub const SYS_ustat: c_long = 136; +pub const SYS_statfs: c_long = 137; +pub const SYS_fstatfs: c_long = 138; +pub const SYS_sysfs: c_long = 139; +pub const SYS_getpriority: c_long = 140; +pub const SYS_setpriority: c_long = 141; +pub const SYS_sched_setparam: c_long = 142; +pub const SYS_sched_getparam: c_long = 143; +pub const SYS_sched_setscheduler: c_long = 144; +pub const SYS_sched_getscheduler: c_long = 145; +pub const SYS_sched_get_priority_max: c_long = 146; +pub const SYS_sched_get_priority_min: c_long = 147; +pub const SYS_sched_rr_get_interval: c_long = 148; +pub const SYS_mlock: c_long = 149; +pub const SYS_munlock: c_long = 150; +pub const SYS_mlockall: c_long = 151; +pub const SYS_munlockall: c_long = 152; +pub const SYS_vhangup: c_long = 153; +pub const SYS_modify_ldt: c_long = 154; +pub const SYS_pivot_root: c_long = 155; +pub const SYS__sysctl: c_long = 156; +pub const SYS_prctl: c_long = 157; +pub const SYS_arch_prctl: c_long = 158; +pub const SYS_adjtimex: c_long = 159; +pub const SYS_setrlimit: c_long = 160; +pub const SYS_chroot: c_long = 161; +pub const SYS_sync: c_long = 162; +pub const SYS_acct: c_long = 163; +pub const SYS_settimeofday: c_long = 164; +pub const SYS_mount: c_long = 165; +pub const SYS_umount2: c_long = 166; +pub const SYS_swapon: c_long = 167; +pub const SYS_swapoff: c_long = 168; +pub const SYS_reboot: c_long = 169; +pub const SYS_sethostname: c_long = 170; +pub const SYS_setdomainname: c_long = 171; +pub const SYS_iopl: c_long = 172; +pub const SYS_ioperm: c_long = 173; +pub const SYS_create_module: c_long = 174; +pub const SYS_init_module: c_long = 175; +pub const SYS_delete_module: c_long = 176; +pub const SYS_get_kernel_syms: c_long = 177; +pub const SYS_query_module: c_long = 178; +pub const SYS_quotactl: c_long = 179; +pub const SYS_nfsservctl: c_long = 180; +pub const SYS_getpmsg: c_long = 181; +pub const SYS_putpmsg: c_long = 182; +pub const SYS_afs_syscall: c_long = 183; +pub const SYS_tuxcall: c_long = 184; +pub const SYS_security: c_long = 185; +pub const SYS_gettid: c_long = 186; +pub const SYS_readahead: c_long = 187; +pub const SYS_setxattr: c_long = 188; +pub const SYS_lsetxattr: c_long = 189; +pub const SYS_fsetxattr: c_long = 190; +pub const SYS_getxattr: c_long = 191; +pub const SYS_lgetxattr: c_long = 192; +pub const SYS_fgetxattr: c_long = 193; +pub const SYS_listxattr: c_long = 194; +pub const SYS_llistxattr: c_long = 195; +pub const SYS_flistxattr: c_long = 196; +pub const SYS_removexattr: c_long = 197; +pub const SYS_lremovexattr: c_long = 198; +pub const SYS_fremovexattr: c_long = 199; +pub const SYS_tkill: c_long = 200; +pub const SYS_time: c_long = 201; +pub const SYS_futex: c_long = 202; +pub const SYS_sched_setaffinity: c_long = 203; +pub const SYS_sched_getaffinity: c_long = 204; +pub const SYS_set_thread_area: c_long = 205; +pub const SYS_io_setup: c_long = 206; +pub const SYS_io_destroy: c_long = 207; +pub const SYS_io_getevents: c_long = 208; +pub const SYS_io_submit: c_long = 209; +pub const SYS_io_cancel: c_long = 210; +pub const SYS_get_thread_area: c_long = 211; +pub const SYS_lookup_dcookie: c_long = 212; +pub const SYS_epoll_create: c_long = 213; +pub const SYS_epoll_ctl_old: c_long = 214; +pub const SYS_epoll_wait_old: c_long = 215; +pub const SYS_remap_file_pages: c_long = 216; +pub const SYS_getdents64: c_long = 217; +pub const SYS_set_tid_address: c_long = 218; +pub const SYS_restart_syscall: c_long = 219; +pub const SYS_semtimedop: c_long = 220; +pub const SYS_fadvise64: c_long = 221; +pub const SYS_timer_create: c_long = 222; +pub const SYS_timer_settime: c_long = 223; +pub const SYS_timer_gettime: c_long = 224; +pub const SYS_timer_getoverrun: c_long = 225; +pub const SYS_timer_delete: c_long = 226; +pub const SYS_clock_settime: c_long = 227; +pub const SYS_clock_gettime: c_long = 228; +pub const SYS_clock_getres: c_long = 229; +pub const SYS_clock_nanosleep: c_long = 230; +pub const SYS_exit_group: c_long = 231; +pub const SYS_epoll_wait: c_long = 232; +pub const SYS_epoll_ctl: c_long = 233; +pub const SYS_tgkill: c_long = 234; +pub const SYS_utimes: c_long = 235; +pub const SYS_vserver: c_long = 236; +pub const SYS_mbind: c_long = 237; +pub const SYS_set_mempolicy: c_long = 238; +pub const SYS_get_mempolicy: c_long = 239; +pub const SYS_mq_open: c_long = 240; +pub const SYS_mq_unlink: c_long = 241; +pub const SYS_mq_timedsend: c_long = 242; +pub const SYS_mq_timedreceive: c_long = 243; +pub const SYS_mq_notify: c_long = 244; +pub const SYS_mq_getsetattr: c_long = 245; +pub const SYS_kexec_load: c_long = 246; +pub const SYS_waitid: c_long = 247; +pub const SYS_add_key: c_long = 248; +pub const SYS_request_key: c_long = 249; +pub const SYS_keyctl: c_long = 250; +pub const SYS_ioprio_set: c_long = 251; +pub const SYS_ioprio_get: c_long = 252; +pub const SYS_inotify_init: c_long = 253; +pub const SYS_inotify_add_watch: c_long = 254; +pub const SYS_inotify_rm_watch: c_long = 255; +pub const SYS_migrate_pages: c_long = 256; +pub const SYS_openat: c_long = 257; +pub const SYS_mkdirat: c_long = 258; +pub const SYS_mknodat: c_long = 259; +pub const SYS_fchownat: c_long = 260; +pub const SYS_futimesat: c_long = 261; +pub const SYS_newfstatat: c_long = 262; +pub const SYS_unlinkat: c_long = 263; +pub const SYS_renameat: c_long = 264; +pub const SYS_linkat: c_long = 265; +pub const SYS_symlinkat: c_long = 266; +pub const SYS_readlinkat: c_long = 267; +pub const SYS_fchmodat: c_long = 268; +pub const SYS_faccessat: c_long = 269; +pub const SYS_pselect6: c_long = 270; +pub const SYS_ppoll: c_long = 271; +pub const SYS_unshare: c_long = 272; +pub const SYS_set_robust_list: c_long = 273; +pub const SYS_get_robust_list: c_long = 274; +pub const SYS_splice: c_long = 275; +pub const SYS_tee: c_long = 276; +pub const SYS_sync_file_range: c_long = 277; +pub const SYS_vmsplice: c_long = 278; +pub const SYS_move_pages: c_long = 279; +pub const SYS_utimensat: c_long = 280; +pub const SYS_epoll_pwait: c_long = 281; +pub const SYS_signalfd: c_long = 282; +pub const SYS_timerfd_create: c_long = 283; +pub const SYS_eventfd: c_long = 284; +pub const SYS_fallocate: c_long = 285; +pub const SYS_timerfd_settime: c_long = 286; +pub const SYS_timerfd_gettime: c_long = 287; +pub const SYS_accept4: c_long = 288; +pub const SYS_signalfd4: c_long = 289; +pub const SYS_eventfd2: c_long = 290; +pub const SYS_epoll_create1: c_long = 291; +pub const SYS_dup3: c_long = 292; +pub const SYS_pipe2: c_long = 293; +pub const SYS_inotify_init1: c_long = 294; +pub const SYS_preadv: c_long = 295; +pub const SYS_pwritev: c_long = 296; +pub const SYS_rt_tgsigqueueinfo: c_long = 297; +pub const SYS_perf_event_open: c_long = 298; +pub const SYS_recvmmsg: c_long = 299; +pub const SYS_fanotify_init: c_long = 300; +pub const SYS_fanotify_mark: c_long = 301; +pub const SYS_prlimit64: c_long = 302; +pub const SYS_name_to_handle_at: c_long = 303; +pub const SYS_open_by_handle_at: c_long = 304; +pub const SYS_clock_adjtime: c_long = 305; +pub const SYS_syncfs: c_long = 306; +pub const SYS_sendmmsg: c_long = 307; +pub const SYS_setns: c_long = 308; +pub const SYS_getcpu: c_long = 309; +pub const SYS_process_vm_readv: c_long = 310; +pub const SYS_process_vm_writev: c_long = 311; +pub const SYS_kcmp: c_long = 312; +pub const SYS_finit_module: c_long = 313; +pub const SYS_sched_setattr: c_long = 314; +pub const SYS_sched_getattr: c_long = 315; +pub const SYS_renameat2: c_long = 316; +pub const SYS_seccomp: c_long = 317; +pub const SYS_getrandom: c_long = 318; +pub const SYS_memfd_create: c_long = 319; +pub const SYS_kexec_file_load: c_long = 320; +pub const SYS_bpf: c_long = 321; +pub const SYS_execveat: c_long = 322; +pub const SYS_userfaultfd: c_long = 323; +pub const SYS_membarrier: c_long = 324; +pub const SYS_mlock2: c_long = 325; +pub const SYS_copy_file_range: c_long = 326; +pub const SYS_preadv2: c_long = 327; +pub const SYS_pwritev2: c_long = 328; +pub const SYS_pkey_mprotect: c_long = 329; +pub const SYS_pkey_alloc: c_long = 330; +pub const SYS_pkey_free: c_long = 331; +pub const SYS_statx: c_long = 332; +pub const SYS_io_pgetevents: c_long = 333; +pub const SYS_rseq: c_long = 334; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; +pub const SYS_fchmodat2: c_long = 452; +pub const SYS_mseal: c_long = 462; // offsets in user_regs_structs, from sys/reg.h -pub const R15: ::c_int = 0; -pub const R14: ::c_int = 1; -pub const R13: ::c_int = 2; -pub const R12: ::c_int = 3; -pub const RBP: ::c_int = 4; -pub const RBX: ::c_int = 5; -pub const R11: ::c_int = 6; -pub const R10: ::c_int = 7; -pub const R9: ::c_int = 8; -pub const R8: ::c_int = 9; -pub const RAX: ::c_int = 10; -pub const RCX: ::c_int = 11; -pub const RDX: ::c_int = 12; -pub const RSI: ::c_int = 13; -pub const RDI: ::c_int = 14; -pub const ORIG_RAX: ::c_int = 15; -pub const RIP: ::c_int = 16; -pub const CS: ::c_int = 17; -pub const EFLAGS: ::c_int = 18; -pub const RSP: ::c_int = 19; -pub const SS: ::c_int = 20; -pub const FS_BASE: ::c_int = 21; -pub const GS_BASE: ::c_int = 22; -pub const DS: ::c_int = 23; -pub const ES: ::c_int = 24; -pub const FS: ::c_int = 25; -pub const GS: ::c_int = 26; +pub const R15: c_int = 0; +pub const R14: c_int = 1; +pub const R13: c_int = 2; +pub const R12: c_int = 3; +pub const RBP: c_int = 4; +pub const RBX: c_int = 5; +pub const R11: c_int = 6; +pub const R10: c_int = 7; +pub const R9: c_int = 8; +pub const R8: c_int = 9; +pub const RAX: c_int = 10; +pub const RCX: c_int = 11; +pub const RDX: c_int = 12; +pub const RSI: c_int = 13; +pub const RDI: c_int = 14; +pub const ORIG_RAX: c_int = 15; +pub const RIP: c_int = 16; +pub const CS: c_int = 17; +pub const EFLAGS: c_int = 18; +pub const RSP: c_int = 19; +pub const SS: c_int = 20; +pub const FS_BASE: c_int = 21; +pub const GS_BASE: c_int = 22; +pub const DS: c_int = 23; +pub const ES: c_int = 24; +pub const FS: c_int = 25; +pub const GS: c_int = 26; // offsets in mcontext_t.gregs from bits/signal.h // GitHub repo: ifduyue/musl/ // commit: b4b1e10364c8737a632be61582e05a8d3acf5690 // file: arch/x86_64/bits/signal.h#L9-L56 -pub const REG_R8: ::c_int = 0; -pub const REG_R9: ::c_int = 1; -pub const REG_R10: ::c_int = 2; -pub const REG_R11: ::c_int = 3; -pub const REG_R12: ::c_int = 4; -pub const REG_R13: ::c_int = 5; -pub const REG_R14: ::c_int = 6; -pub const REG_R15: ::c_int = 7; -pub const REG_RDI: ::c_int = 8; -pub const REG_RSI: ::c_int = 9; -pub const REG_RBP: ::c_int = 10; -pub const REG_RBX: ::c_int = 11; -pub const REG_RDX: ::c_int = 12; -pub const REG_RAX: ::c_int = 13; -pub const REG_RCX: ::c_int = 14; -pub const REG_RSP: ::c_int = 15; -pub const REG_RIP: ::c_int = 16; -pub const REG_EFL: ::c_int = 17; -pub const REG_CSGSFS: ::c_int = 18; -pub const REG_ERR: ::c_int = 19; -pub const REG_TRAPNO: ::c_int = 20; -pub const REG_OLDMASK: ::c_int = 21; -pub const REG_CR2: ::c_int = 22; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_32BIT: ::c_int = 0x0040; -pub const O_APPEND: ::c_int = 1024; -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_LARGEFILE: ::c_int = 0; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_ASYNC: ::c_int = 0x2000; - -pub const PTRACE_SYSEMU: ::c_int = 31; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 32; - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; - -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; +pub const REG_R8: c_int = 0; +pub const REG_R9: c_int = 1; +pub const REG_R10: c_int = 2; +pub const REG_R11: c_int = 3; +pub const REG_R12: c_int = 4; +pub const REG_R13: c_int = 5; +pub const REG_R14: c_int = 6; +pub const REG_R15: c_int = 7; +pub const REG_RDI: c_int = 8; +pub const REG_RSI: c_int = 9; +pub const REG_RBP: c_int = 10; +pub const REG_RBX: c_int = 11; +pub const REG_RDX: c_int = 12; +pub const REG_RAX: c_int = 13; +pub const REG_RCX: c_int = 14; +pub const REG_RSP: c_int = 15; +pub const REG_RIP: c_int = 16; +pub const REG_EFL: c_int = 17; +pub const REG_CSGSFS: c_int = 18; +pub const REG_ERR: c_int = 19; +pub const REG_TRAPNO: c_int = 20; +pub const REG_OLDMASK: c_int = 21; +pub const REG_CR2: c_int = 22; + +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MAP_32BIT: c_int = 0x0040; +pub const O_APPEND: c_int = 1024; +pub const O_DIRECT: c_int = 0x4000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_LARGEFILE: c_int = 0; +pub const O_NOFOLLOW: c_int = 0x20000; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_ASYNC: c_int = 0x2000; + +pub const PTRACE_SYSEMU: c_int = 31; +pub const PTRACE_SYSEMU_SINGLESTEP: c_int = 32; + +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; + +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EBADMSG: c_int = 74; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const ERFKILL: c_int = 132; +pub const EHWPOISON: c_int = 133; + +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; + +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; + +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; +pub const F_SETOWN: c_int = 8; pub const VEOF: usize = 4; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::c_int = 0x00000800; -pub const TAB2: ::c_int = 0x00001000; -pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; + +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_SYNC: c_int = 0x080000; + +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: c_int = 0x00000800; +pub const TAB2: c_int = 0x00001000; +pub const TAB3: c_int = 0x00001800; +pub const CR1: c_int = 0x00000200; +pub const CR2: c_int = 0x00000400; +pub const CR3: c_int = 0x00000600; +pub const FF1: c_int = 0x00008000; +pub const BS1: c_int = 0x00002000; +pub const VT1: c_int = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -871,63 +875,63 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const EDEADLK: ::c_int = 35; -pub const EDEADLOCK: ::c_int = EDEADLK; - -pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; + +pub const EDEADLK: c_int = 35; +pub const EDEADLOCK: c_int = EDEADLK; + +pub const EXTPROC: crate::tcflag_t = 0x00010000; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; diff --git a/src/unix/linux_like/linux/musl/lfs64.rs b/src/unix/linux_like/linux/musl/lfs64.rs index 6d1f368695a6b..582e20a45545e 100644 --- a/src/unix/linux_like/linux/musl/lfs64.rs +++ b/src/unix/linux_like/linux/musl/lfs64.rs @@ -1,111 +1,113 @@ +use crate::{c_char, c_int, c_void, off64_t, size_t, ssize_t}; + #[inline] -pub unsafe extern "C" fn creat64(path: *const ::c_char, mode: ::mode_t) -> ::c_int { - ::creat(path, mode) +pub unsafe extern "C" fn creat64(path: *const c_char, mode: crate::mode_t) -> c_int { + crate::creat(path, mode) } #[inline] pub unsafe extern "C" fn fallocate64( - fd: ::c_int, - mode: ::c_int, - offset: ::off64_t, - len: ::off64_t, -) -> ::c_int { - ::fallocate(fd, mode, offset, len) + fd: c_int, + mode: c_int, + offset: off64_t, + len: off64_t, +) -> c_int { + crate::fallocate(fd, mode, offset, len) } #[inline] -pub unsafe extern "C" fn fgetpos64(stream: *mut ::FILE, pos: *mut ::fpos64_t) -> ::c_int { - ::fgetpos(stream, pos as *mut _) +pub unsafe extern "C" fn fgetpos64(stream: *mut crate::FILE, pos: *mut crate::fpos64_t) -> c_int { + crate::fgetpos(stream, pos as *mut _) } #[inline] -pub unsafe extern "C" fn fopen64(pathname: *const ::c_char, mode: *const ::c_char) -> *mut ::FILE { - ::fopen(pathname, mode) +pub unsafe extern "C" fn fopen64(pathname: *const c_char, mode: *const c_char) -> *mut crate::FILE { + crate::fopen(pathname, mode) } #[inline] pub unsafe extern "C" fn freopen64( - pathname: *const ::c_char, - mode: *const ::c_char, - stream: *mut ::FILE, -) -> *mut ::FILE { - ::freopen(pathname, mode, stream) + pathname: *const c_char, + mode: *const c_char, + stream: *mut crate::FILE, +) -> *mut crate::FILE { + crate::freopen(pathname, mode, stream) } #[inline] pub unsafe extern "C" fn fseeko64( - stream: *mut ::FILE, - offset: ::off64_t, - whence: ::c_int, -) -> ::c_int { - ::fseeko(stream, offset, whence) + stream: *mut crate::FILE, + offset: off64_t, + whence: c_int, +) -> c_int { + crate::fseeko(stream, offset, whence) } #[inline] -pub unsafe extern "C" fn fsetpos64(stream: *mut ::FILE, pos: *const ::fpos64_t) -> ::c_int { - ::fsetpos(stream, pos as *mut _) +pub unsafe extern "C" fn fsetpos64(stream: *mut crate::FILE, pos: *const crate::fpos64_t) -> c_int { + crate::fsetpos(stream, pos as *mut _) } #[inline] -pub unsafe extern "C" fn fstat64(fildes: ::c_int, buf: *mut ::stat64) -> ::c_int { - ::fstat(fildes, buf as *mut _) +pub unsafe extern "C" fn fstat64(fildes: c_int, buf: *mut crate::stat64) -> c_int { + crate::fstat(fildes, buf as *mut _) } #[inline] pub unsafe extern "C" fn fstatat64( - fd: ::c_int, - path: *const ::c_char, - buf: *mut ::stat64, - flag: ::c_int, -) -> ::c_int { - ::fstatat(fd, path, buf as *mut _, flag) + fd: c_int, + path: *const c_char, + buf: *mut crate::stat64, + flag: c_int, +) -> c_int { + crate::fstatat(fd, path, buf as *mut _, flag) } #[inline] -pub unsafe extern "C" fn fstatfs64(fd: ::c_int, buf: *mut ::statfs64) -> ::c_int { - ::fstatfs(fd, buf as *mut _) +pub unsafe extern "C" fn fstatfs64(fd: c_int, buf: *mut crate::statfs64) -> c_int { + crate::fstatfs(fd, buf as *mut _) } #[inline] -pub unsafe extern "C" fn fstatvfs64(fd: ::c_int, buf: *mut ::statvfs64) -> ::c_int { - ::fstatvfs(fd, buf as *mut _) +pub unsafe extern "C" fn fstatvfs64(fd: c_int, buf: *mut crate::statvfs64) -> c_int { + crate::fstatvfs(fd, buf as *mut _) } #[inline] -pub unsafe extern "C" fn ftello64(stream: *mut ::FILE) -> ::off64_t { - ::ftello(stream) +pub unsafe extern "C" fn ftello64(stream: *mut crate::FILE) -> off64_t { + crate::ftello(stream) } #[inline] -pub unsafe extern "C" fn ftruncate64(fd: ::c_int, length: ::off64_t) -> ::c_int { - ::ftruncate(fd, length) +pub unsafe extern "C" fn ftruncate64(fd: c_int, length: off64_t) -> c_int { + crate::ftruncate(fd, length) } #[inline] -pub unsafe extern "C" fn getrlimit64(resource: ::c_int, rlim: *mut ::rlimit64) -> ::c_int { - ::getrlimit(resource, rlim as *mut _) +pub unsafe extern "C" fn getrlimit64(resource: c_int, rlim: *mut crate::rlimit64) -> c_int { + crate::getrlimit(resource, rlim as *mut _) } #[inline] -pub unsafe extern "C" fn lseek64(fd: ::c_int, offset: ::off64_t, whence: ::c_int) -> ::off64_t { - ::lseek(fd, offset, whence) +pub unsafe extern "C" fn lseek64(fd: c_int, offset: off64_t, whence: c_int) -> off64_t { + crate::lseek(fd, offset, whence) } #[inline] -pub unsafe extern "C" fn lstat64(path: *const ::c_char, buf: *mut ::stat64) -> ::c_int { - ::lstat(path, buf as *mut _) +pub unsafe extern "C" fn lstat64(path: *const c_char, buf: *mut crate::stat64) -> c_int { + crate::lstat(path, buf as *mut _) } #[inline] pub unsafe extern "C" fn mmap64( - addr: *mut ::c_void, - length: ::size_t, - prot: ::c_int, - flags: ::c_int, - fd: ::c_int, - offset: ::off64_t, -) -> *mut ::c_void { - ::mmap(addr, length, prot, flags, fd, offset) + addr: *mut c_void, + length: size_t, + prot: c_int, + flags: c_int, + fd: c_int, + offset: off64_t, +) -> *mut c_void { + crate::mmap(addr, length, prot, flags, fd, offset) } // These functions are variadic in the C ABI since the `mode` argument is "optional". Variadic @@ -114,127 +116,123 @@ pub unsafe extern "C" fn mmap64( // // These aliases are mostly fine though, neither function takes a LFS64-namespaced type as an // argument, nor do their names clash with any declared types. -pub use {open as open64, openat as openat64}; +pub use crate::{open as open64, openat as openat64}; #[inline] pub unsafe extern "C" fn posix_fadvise64( - fd: ::c_int, - offset: ::off64_t, - len: ::off64_t, - advice: ::c_int, -) -> ::c_int { - ::posix_fadvise(fd, offset, len, advice) + fd: c_int, + offset: off64_t, + len: off64_t, + advice: c_int, +) -> c_int { + crate::posix_fadvise(fd, offset, len, advice) } #[inline] -pub unsafe extern "C" fn posix_fallocate64( - fd: ::c_int, - offset: ::off64_t, - len: ::off64_t, -) -> ::c_int { - ::posix_fallocate(fd, offset, len) +pub unsafe extern "C" fn posix_fallocate64(fd: c_int, offset: off64_t, len: off64_t) -> c_int { + crate::posix_fallocate(fd, offset, len) } #[inline] pub unsafe extern "C" fn pread64( - fd: ::c_int, - buf: *mut ::c_void, - count: ::size_t, - offset: ::off64_t, -) -> ::ssize_t { - ::pread(fd, buf, count, offset) + fd: c_int, + buf: *mut c_void, + count: size_t, + offset: off64_t, +) -> ssize_t { + crate::pread(fd, buf, count, offset) } #[inline] pub unsafe extern "C" fn preadv64( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, -) -> ::ssize_t { - ::preadv(fd, iov, iovcnt, offset) + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: off64_t, +) -> ssize_t { + crate::preadv(fd, iov, iovcnt, offset) } #[inline] pub unsafe extern "C" fn prlimit64( - pid: ::pid_t, - resource: ::c_int, - new_limit: *const ::rlimit64, - old_limit: *mut ::rlimit64, -) -> ::c_int { - ::prlimit(pid, resource, new_limit as *mut _, old_limit as *mut _) + pid: crate::pid_t, + resource: c_int, + new_limit: *const crate::rlimit64, + old_limit: *mut crate::rlimit64, +) -> c_int { + crate::prlimit(pid, resource, new_limit as *mut _, old_limit as *mut _) } #[inline] pub unsafe extern "C" fn pwrite64( - fd: ::c_int, - buf: *const ::c_void, - count: ::size_t, - offset: ::off64_t, -) -> ::ssize_t { - ::pwrite(fd, buf, count, offset) + fd: c_int, + buf: *const c_void, + count: size_t, + offset: off64_t, +) -> ssize_t { + crate::pwrite(fd, buf, count, offset) } #[inline] pub unsafe extern "C" fn pwritev64( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, -) -> ::ssize_t { - ::pwritev(fd, iov, iovcnt, offset) + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: off64_t, +) -> ssize_t { + crate::pwritev(fd, iov, iovcnt, offset) } #[inline] -pub unsafe extern "C" fn readdir64(dirp: *mut ::DIR) -> *mut ::dirent64 { - ::readdir(dirp) as *mut _ +pub unsafe extern "C" fn readdir64(dirp: *mut crate::DIR) -> *mut crate::dirent64 { + crate::readdir(dirp) as *mut _ } #[inline] pub unsafe extern "C" fn readdir64_r( - dirp: *mut ::DIR, - entry: *mut ::dirent64, - result: *mut *mut ::dirent64, -) -> ::c_int { - ::readdir_r(dirp, entry as *mut _, result as *mut _) + dirp: *mut crate::DIR, + entry: *mut crate::dirent64, + result: *mut *mut crate::dirent64, +) -> c_int { + crate::readdir_r(dirp, entry as *mut _, result as *mut _) } #[inline] pub unsafe extern "C" fn sendfile64( - out_fd: ::c_int, - in_fd: ::c_int, - offset: *mut ::off64_t, - count: ::size_t, -) -> ::ssize_t { - ::sendfile(out_fd, in_fd, offset, count) + out_fd: c_int, + in_fd: c_int, + offset: *mut off64_t, + count: size_t, +) -> ssize_t { + crate::sendfile(out_fd, in_fd, offset, count) } #[inline] -pub unsafe extern "C" fn setrlimit64(resource: ::c_int, rlim: *const ::rlimit64) -> ::c_int { - ::setrlimit(resource, rlim as *mut _) +pub unsafe extern "C" fn setrlimit64(resource: c_int, rlim: *const crate::rlimit64) -> c_int { + crate::setrlimit(resource, rlim as *mut _) } #[inline] -pub unsafe extern "C" fn stat64(pathname: *const ::c_char, statbuf: *mut ::stat64) -> ::c_int { - ::stat(pathname, statbuf as *mut _) +pub unsafe extern "C" fn stat64(pathname: *const c_char, statbuf: *mut crate::stat64) -> c_int { + crate::stat(pathname, statbuf as *mut _) } #[inline] -pub unsafe extern "C" fn statfs64(pathname: *const ::c_char, buf: *mut ::statfs64) -> ::c_int { - ::statfs(pathname, buf as *mut _) +pub unsafe extern "C" fn statfs64(pathname: *const c_char, buf: *mut crate::statfs64) -> c_int { + crate::statfs(pathname, buf as *mut _) } #[inline] -pub unsafe extern "C" fn statvfs64(path: *const ::c_char, buf: *mut ::statvfs64) -> ::c_int { - ::statvfs(path, buf as *mut _) +pub unsafe extern "C" fn statvfs64(path: *const c_char, buf: *mut crate::statvfs64) -> c_int { + crate::statvfs(path, buf as *mut _) } #[inline] -pub unsafe extern "C" fn tmpfile64() -> *mut ::FILE { - ::tmpfile() +pub unsafe extern "C" fn tmpfile64() -> *mut crate::FILE { + crate::tmpfile() } #[inline] -pub unsafe extern "C" fn truncate64(path: *const ::c_char, length: ::off64_t) -> ::c_int { - ::truncate(path, length) +pub unsafe extern "C" fn truncate64(path: *const c_char, length: off64_t) -> c_int { + crate::truncate(path, length) } diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 176ab4009e40c..9e16736564f68 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -1,4 +1,8 @@ -pub type pthread_t = *mut ::c_void; +use crate::{ + c_int, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, off64_t, size_t, ssize_t, +}; + +pub type pthread_t = *mut c_void; pub type clock_t = c_long; #[cfg_attr( not(feature = "rustc-dep-of-std"), @@ -15,46 +19,46 @@ pub type ino_t = u64; pub type off_t = i64; pub type blkcnt_t = i64; -pub type shmatt_t = ::c_ulong; -pub type msgqnum_t = ::c_ulong; -pub type msglen_t = ::c_ulong; -pub type fsblkcnt_t = ::c_ulonglong; -pub type fsblkcnt64_t = ::c_ulonglong; -pub type fsfilcnt_t = ::c_ulonglong; -pub type fsfilcnt64_t = ::c_ulonglong; -pub type rlim_t = ::c_ulonglong; +pub type shmatt_t = c_ulong; +pub type msgqnum_t = c_ulong; +pub type msglen_t = c_ulong; +pub type fsblkcnt_t = c_ulonglong; +pub type fsblkcnt64_t = c_ulonglong; +pub type fsfilcnt_t = c_ulonglong; +pub type fsfilcnt64_t = c_ulonglong; +pub type rlim_t = c_ulonglong; cfg_if! { if #[cfg(doc)] { // Used in `linux::arch` to define ioctl constants. - pub(crate) type Ioctl = ::c_int; + pub(crate) type Ioctl = c_int; } else { #[doc(hidden)] - pub type Ioctl = ::c_int; + pub type Ioctl = c_int; } } impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { + pub unsafe fn si_addr(&self) -> *mut c_void { #[repr(C)] struct siginfo_sigfault { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - si_addr: *mut ::c_void, + _si_signo: c_int, + _si_errno: c_int, + _si_code: c_int, + si_addr: *mut c_void, } (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr } - pub unsafe fn si_value(&self) -> ::sigval { + pub unsafe fn si_value(&self) -> crate::sigval { #[repr(C)] struct siginfo_si_value { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - _si_timerid: ::c_int, - _si_overrun: ::c_int, - si_value: ::sigval, + _si_signo: c_int, + _si_errno: c_int, + _si_code: c_int, + _si_timerid: c_int, + _si_overrun: c_int, + si_value: crate::sigval, } (*(self as *const siginfo_t as *const siginfo_si_value)).si_value } @@ -63,14 +67,14 @@ impl siginfo_t { // Internal, for casts to access union fields #[repr(C)] struct sifields_sigchld { - si_pid: ::pid_t, - si_uid: ::uid_t, - si_status: ::c_int, - si_utime: ::c_long, - si_stime: ::c_long, + si_pid: crate::pid_t, + si_uid: crate::uid_t, + si_status: c_int, + si_utime: c_long, + si_stime: c_long, } -impl ::Copy for sifields_sigchld {} -impl ::Clone for sifields_sigchld { +impl Copy for sifields_sigchld {} +impl Clone for sifields_sigchld { fn clone(&self) -> sifields_sigchld { *self } @@ -79,7 +83,7 @@ impl ::Clone for sifields_sigchld { // Internal, for casts to access union fields #[repr(C)] union sifields { - _align_pointer: *mut ::c_void, + _align_pointer: *mut c_void, sigchld: sifields_sigchld, } @@ -88,7 +92,7 @@ union sifields { // sifields vary on 32-bit and 64-bit architectures. #[repr(C)] struct siginfo_f { - _siginfo_base: [::c_int; 3], + _siginfo_base: [c_int; 3], sifields: sifields, } @@ -97,53 +101,53 @@ impl siginfo_t { &(*(self as *const siginfo_t as *const siginfo_f)).sifields } - pub unsafe fn si_pid(&self) -> ::pid_t { + pub unsafe fn si_pid(&self) -> crate::pid_t { self.sifields().sigchld.si_pid } - pub unsafe fn si_uid(&self) -> ::uid_t { + pub unsafe fn si_uid(&self) -> crate::uid_t { self.sifields().sigchld.si_uid } - pub unsafe fn si_status(&self) -> ::c_int { + pub unsafe fn si_status(&self) -> c_int { self.sifields().sigchld.si_status } - pub unsafe fn si_utime(&self) -> ::c_long { + pub unsafe fn si_utime(&self) -> c_long { self.sifields().sigchld.si_utime } - pub unsafe fn si_stime(&self) -> ::c_long { + pub unsafe fn si_stime(&self) -> c_long { self.sifields().sigchld.si_stime } } s! { pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_sigevent: ::sigevent, - __td: *mut ::c_void, - __lock: [::c_int; 2], - __err: ::c_int, - __ret: ::ssize_t, + pub aio_fildes: c_int, + pub aio_lio_opcode: c_int, + pub aio_reqprio: c_int, + pub aio_buf: *mut c_void, + pub aio_nbytes: size_t, + pub aio_sigevent: crate::sigevent, + __td: *mut c_void, + __lock: [c_int; 2], + __err: c_int, + __ret: ssize_t, pub aio_offset: off_t, - __next: *mut ::c_void, - __prev: *mut ::c_void, + __next: *mut c_void, + __prev: *mut c_void, #[cfg(target_pointer_width = "32")] - __dummy4: [::c_char; 24], + __dummy4: [c_char; 24], #[cfg(target_pointer_width = "64")] - __dummy4: [::c_char; 16], + __dummy4: [c_char; 16], } pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, + pub sa_flags: c_int, + pub sa_restorer: Option, } // `mips*` targets swap the `s_errno` and `s_code` fields otherwise this struct is @@ -151,181 +155,181 @@ s! { // // FIXME(union): C implementation uses unions pub struct siginfo_t { - pub si_signo: ::c_int, + pub si_signo: c_int, #[cfg(not(target_arch = "mips"))] - pub si_errno: ::c_int, - pub si_code: ::c_int, + pub si_errno: c_int, + pub si_code: c_int, #[cfg(target_arch = "mips")] - pub si_errno: ::c_int, + pub si_errno: c_int, #[doc(hidden)] #[deprecated( since = "0.2.54", note = "Please leave a comment on https://github.com/rust-lang/libc/pull/1316 \ if you're using this field" )] - pub _pad: [::c_int; 29], + pub _pad: [c_int; 29], _align: [usize; 0], } 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_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, #[cfg(target_endian = "little")] - pub f_fsid: ::c_ulong, + pub f_fsid: c_ulong, #[cfg(target_pointer_width = "32")] - __pad: ::c_int, + __pad: c_int, #[cfg(target_endian = "big")] - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_reserved: [::c_int; 6], + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_reserved: [c_int; 6], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_favail: ::fsfilcnt64_t, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt64_t, + pub f_bfree: crate::fsblkcnt64_t, + pub f_bavail: crate::fsblkcnt64_t, + pub f_files: crate::fsfilcnt64_t, + pub f_ffree: crate::fsfilcnt64_t, + pub f_favail: crate::fsfilcnt64_t, #[cfg(target_endian = "little")] - pub f_fsid: ::c_ulong, + pub f_fsid: c_ulong, #[cfg(target_pointer_width = "32")] - __pad: ::c_int, + __pad: c_int, #[cfg(target_endian = "big")] - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_reserved: [::c_int; 6], + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_reserved: [c_int; 6], } pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - pub __c_ispeed: ::speed_t, - pub __c_ospeed: ::speed_t, + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; crate::NCCS], + pub __c_ispeed: crate::speed_t, + pub __c_ospeed: crate::speed_t, } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off64_t, + pub l_len: off64_t, + pub l_pid: crate::pid_t, } pub struct regex_t { - __re_nsub: ::size_t, - __opaque: *mut ::c_void, - __padding: [*mut ::c_void; 4usize], - __nsub2: ::size_t, - __padding2: ::c_char, + __re_nsub: size_t, + __opaque: *mut c_void, + __padding: [*mut c_void; 4usize], + __nsub2: size_t, + __padding2: c_char, } pub struct rtentry { - pub rt_pad1: ::c_ulong, - pub rt_dst: ::sockaddr, - pub rt_gateway: ::sockaddr, - pub rt_genmask: ::sockaddr, - pub rt_flags: ::c_ushort, - pub rt_pad2: ::c_short, - pub rt_pad3: ::c_ulong, - pub rt_tos: ::c_uchar, - pub rt_class: ::c_uchar, + pub rt_pad1: c_ulong, + pub rt_dst: crate::sockaddr, + pub rt_gateway: crate::sockaddr, + pub rt_genmask: crate::sockaddr, + pub rt_flags: c_ushort, + pub rt_pad2: c_short, + pub rt_pad3: c_ulong, + pub rt_tos: c_uchar, + pub rt_class: c_uchar, #[cfg(target_pointer_width = "64")] - pub rt_pad4: [::c_short; 3usize], + pub rt_pad4: [c_short; 3usize], #[cfg(not(target_pointer_width = "64"))] - pub rt_pad4: [::c_short; 1usize], - pub rt_metric: ::c_short, - pub rt_dev: *mut ::c_char, - pub rt_mtu: ::c_ulong, - pub rt_window: ::c_ulong, - pub rt_irtt: ::c_ushort, + pub rt_pad4: [c_short; 1usize], + pub rt_metric: c_short, + pub rt_dev: *mut c_char, + pub rt_mtu: c_ulong, + pub rt_window: c_ulong, + pub rt_irtt: c_ushort, } pub struct __exit_status { - pub e_termination: ::c_short, - pub e_exit: ::c_short, + pub e_termination: c_short, + pub e_exit: c_short, } pub struct Elf64_Chdr { - pub ch_type: ::Elf64_Word, - pub ch_reserved: ::Elf64_Word, - pub ch_size: ::Elf64_Xword, - pub ch_addralign: ::Elf64_Xword, + pub ch_type: crate::Elf64_Word, + pub ch_reserved: crate::Elf64_Word, + pub ch_size: crate::Elf64_Xword, + pub ch_addralign: crate::Elf64_Xword, } pub struct Elf32_Chdr { - pub ch_type: ::Elf32_Word, - pub ch_size: ::Elf32_Word, - pub ch_addralign: ::Elf32_Word, + pub ch_type: crate::Elf32_Word, + pub ch_size: crate::Elf32_Word, + pub ch_addralign: crate::Elf32_Word, } pub struct timex { - pub modes: ::c_uint, - pub offset: ::c_long, - pub freq: ::c_long, - pub maxerror: ::c_long, - pub esterror: ::c_long, - pub status: ::c_int, - pub constant: ::c_long, - pub precision: ::c_long, - pub tolerance: ::c_long, - pub time: ::timeval, - pub tick: ::c_long, - pub ppsfreq: ::c_long, - pub jitter: ::c_long, - pub shift: ::c_int, - pub stabil: ::c_long, - pub jitcnt: ::c_long, - pub calcnt: ::c_long, - pub errcnt: ::c_long, - pub stbcnt: ::c_long, - pub tai: ::c_int, - pub __padding: [::c_int; 11], + pub modes: c_uint, + pub offset: c_long, + pub freq: c_long, + pub maxerror: c_long, + pub esterror: c_long, + pub status: c_int, + pub constant: c_long, + pub precision: c_long, + pub tolerance: c_long, + pub time: crate::timeval, + pub tick: c_long, + pub ppsfreq: c_long, + pub jitter: c_long, + pub shift: c_int, + pub stabil: c_long, + pub jitcnt: c_long, + pub calcnt: c_long, + pub errcnt: c_long, + pub stbcnt: c_long, + pub tai: c_int, + pub __padding: [c_int; 11], } pub struct ntptimeval { - pub time: ::timeval, - pub maxerror: ::c_long, - pub esterror: ::c_long, + pub time: crate::timeval, + pub maxerror: c_long, + pub esterror: c_long, } // linux/if_xdp.h pub struct sockaddr_xdp { - pub sxdp_family: ::__u16, - pub sxdp_flags: ::__u16, - pub sxdp_ifindex: ::__u32, - pub sxdp_queue_id: ::__u32, - pub sxdp_shared_umem_fd: ::__u32, + pub sxdp_family: crate::__u16, + pub sxdp_flags: crate::__u16, + pub sxdp_ifindex: crate::__u32, + pub sxdp_queue_id: crate::__u32, + pub sxdp_shared_umem_fd: crate::__u32, } pub struct xdp_ring_offset { - pub producer: ::__u64, - pub consumer: ::__u64, - pub desc: ::__u64, - pub flags: ::__u64, + pub producer: crate::__u64, + pub consumer: crate::__u64, + pub desc: crate::__u64, + pub flags: crate::__u64, } pub struct xdp_mmap_offsets { @@ -336,9 +340,9 @@ s! { } pub struct xdp_ring_offset_v1 { - pub producer: ::__u64, - pub consumer: ::__u64, - pub desc: ::__u64, + pub producer: crate::__u64, + pub consumer: crate::__u64, + pub desc: crate::__u64, } pub struct xdp_mmap_offsets_v1 { @@ -349,44 +353,44 @@ s! { } pub struct xdp_umem_reg { - pub addr: ::__u64, - pub len: ::__u64, - pub chunk_size: ::__u32, - pub headroom: ::__u32, - pub flags: ::__u32, - pub tx_metadata_len: ::__u32, + pub addr: crate::__u64, + pub len: crate::__u64, + pub chunk_size: crate::__u32, + pub headroom: crate::__u32, + pub flags: crate::__u32, + pub tx_metadata_len: crate::__u32, } pub struct xdp_umem_reg_v1 { - pub addr: ::__u64, - pub len: ::__u64, - pub chunk_size: ::__u32, - pub headroom: ::__u32, + pub addr: crate::__u64, + pub len: crate::__u64, + pub chunk_size: crate::__u32, + pub headroom: crate::__u32, } pub struct xdp_statistics { - pub rx_dropped: ::__u64, - pub rx_invalid_descs: ::__u64, - pub tx_invalid_descs: ::__u64, - pub rx_ring_full: ::__u64, - pub rx_fill_ring_empty_descs: ::__u64, - pub tx_ring_empty_descs: ::__u64, + pub rx_dropped: crate::__u64, + pub rx_invalid_descs: crate::__u64, + pub tx_invalid_descs: crate::__u64, + pub rx_ring_full: crate::__u64, + pub rx_fill_ring_empty_descs: crate::__u64, + pub tx_ring_empty_descs: crate::__u64, } pub struct xdp_statistics_v1 { - pub rx_dropped: ::__u64, - pub rx_invalid_descs: ::__u64, - pub tx_invalid_descs: ::__u64, + pub rx_dropped: crate::__u64, + pub rx_invalid_descs: crate::__u64, + pub tx_invalid_descs: crate::__u64, } pub struct xdp_options { - pub flags: ::__u32, + pub flags: crate::__u32, } pub struct xdp_desc { - pub addr: ::__u64, - pub len: ::__u32, - pub options: ::__u32, + pub addr: crate::__u64, + pub len: crate::__u32, + pub options: crate::__u32, } // netinet/tcp.h @@ -463,54 +467,54 @@ s! { // MIPS implementation is special (see mips arch folders) #[cfg(not(target_arch = "mips"))] pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::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_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], + pub f_type: c_ulong, + pub f_bsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_ulong, + pub f_frsize: c_ulong, + pub f_flags: c_ulong, + pub f_spare: [c_ulong; 4], } // MIPS implementation is special (see mips arch folders) #[cfg(not(target_arch = "mips"))] pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], + pub f_type: c_ulong, + pub f_bsize: c_ulong, + pub f_blocks: crate::fsblkcnt64_t, + pub f_bfree: crate::fsblkcnt64_t, + pub f_bavail: crate::fsblkcnt64_t, + pub f_files: crate::fsfilcnt64_t, + pub f_ffree: crate::fsfilcnt64_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_ulong, + pub f_frsize: c_ulong, + pub f_flags: c_ulong, + pub f_spare: [c_ulong; 4], } } s_no_extra_traits! { pub struct sysinfo { - pub uptime: ::c_ulong, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub __reserved: [::c_char; 256], + pub uptime: c_ulong, + pub loads: [c_ulong; 3], + pub totalram: c_ulong, + pub freeram: c_ulong, + pub sharedram: c_ulong, + pub bufferram: c_ulong, + pub totalswap: c_ulong, + pub freeswap: c_ulong, + pub procs: c_ushort, + pub pad: c_ushort, + pub totalhigh: c_ulong, + pub freehigh: c_ulong, + pub mem_unit: c_uint, + pub __reserved: [c_char; 256], } // FIXME: musl added paddings and adjusted @@ -521,44 +525,44 @@ s_no_extra_traits! { // // OpenHarmony uses the musl 1.2 layout. pub struct utmpx { - pub ut_type: ::c_short, - __ut_pad1: ::c_short, - pub ut_pid: ::pid_t, - pub ut_line: [::c_char; 32], - pub ut_id: [::c_char; 4], - pub ut_user: [::c_char; 32], - pub ut_host: [::c_char; 256], + pub ut_type: c_short, + __ut_pad1: c_short, + pub ut_pid: crate::pid_t, + pub ut_line: [c_char; 32], + pub ut_id: [c_char; 4], + pub ut_user: [c_char; 32], + pub ut_host: [c_char; 256], pub ut_exit: __exit_status, #[cfg(target_env = "musl")] #[cfg(not(target_arch = "loongarch64"))] - pub ut_session: ::c_long, + pub ut_session: c_long, #[cfg(target_env = "musl")] #[cfg(target_arch = "loongarch64")] - pub ut_session: ::c_int, + pub ut_session: c_int, #[cfg(target_env = "musl")] #[cfg(target_arch = "loongarch64")] - __ut_pad2: ::c_int, + __ut_pad2: c_int, #[cfg(target_env = "ohos")] #[cfg(target_endian = "little")] - pub ut_session: ::c_int, + pub ut_session: c_int, #[cfg(target_env = "ohos")] #[cfg(target_endian = "little")] - __ut_pad2: ::c_int, + __ut_pad2: c_int, #[cfg(target_env = "ohos")] #[cfg(not(target_endian = "little"))] - __ut_pad2: ::c_int, + __ut_pad2: c_int, #[cfg(target_env = "ohos")] #[cfg(not(target_endian = "little"))] - pub ut_session: ::c_int, + pub ut_session: c_int, - pub ut_tv: ::timeval, - pub ut_addr_v6: [::c_uint; 4], - __unused: [::c_char; 20], + pub ut_tv: crate::timeval, + pub ut_addr_v6: [c_uint; 4], + __unused: [c_char; 20], } } @@ -589,8 +593,8 @@ cfg_if! { impl Eq for sysinfo {} - impl ::fmt::Debug for sysinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sysinfo { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sysinfo") .field("uptime", &self.uptime) .field("loads", &self.loads) @@ -610,8 +614,8 @@ cfg_if! { } } - impl ::hash::Hash for sysinfo { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sysinfo { + fn hash(&self, state: &mut H) { self.uptime.hash(state); self.loads.hash(state); self.totalram.hash(state); @@ -653,8 +657,8 @@ cfg_if! { impl Eq for utmpx {} - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utmpx { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utmpx") .field("ut_type", &self.ut_type) //.field("__ut_pad1", &self.__ut_pad1) @@ -673,8 +677,8 @@ cfg_if! { } } - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_type.hash(state); //self.__ut_pad1.hash(state); self.ut_pid.hash(state); @@ -701,102 +705,102 @@ cfg_if! { * responsibility of the application to know which sizes are supported on * the running system. See mmap(2) man page for details. */ -pub const MAP_HUGE_SHIFT: ::c_int = 26; -pub const MAP_HUGE_MASK: ::c_int = 0x3f; - -pub const MAP_HUGE_64KB: ::c_int = 16 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_512KB: ::c_int = 19 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_1MB: ::c_int = 20 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_2MB: ::c_int = 21 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_8MB: ::c_int = 23 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_16MB: ::c_int = 24 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_32MB: ::c_int = 25 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_256MB: ::c_int = 28 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_512MB: ::c_int = 29 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_1GB: ::c_int = 30 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_2GB: ::c_int = 31 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_16GB: ::c_int = 34 << MAP_HUGE_SHIFT; - -pub const MS_RMT_MASK: ::c_ulong = 0x02800051; +pub const MAP_HUGE_SHIFT: c_int = 26; +pub const MAP_HUGE_MASK: c_int = 0x3f; + +pub const MAP_HUGE_64KB: c_int = 16 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_512KB: c_int = 19 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_1MB: c_int = 20 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_2MB: c_int = 21 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_8MB: c_int = 23 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_16MB: c_int = 24 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_32MB: c_int = 25 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_256MB: c_int = 28 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_512MB: c_int = 29 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_1GB: c_int = 30 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_2GB: c_int = 31 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_16GB: c_int = 34 << MAP_HUGE_SHIFT; + +pub const MS_RMT_MASK: c_ulong = 0x02800051; // include/utmpx.h -pub const EMPTY: ::c_short = 0; -pub const RUN_LVL: ::c_short = 1; -pub const BOOT_TIME: ::c_short = 2; -pub const NEW_TIME: ::c_short = 3; -pub const OLD_TIME: ::c_short = 4; -pub const INIT_PROCESS: ::c_short = 5; -pub const LOGIN_PROCESS: ::c_short = 6; -pub const USER_PROCESS: ::c_short = 7; -pub const DEAD_PROCESS: ::c_short = 8; +pub const EMPTY: c_short = 0; +pub const RUN_LVL: c_short = 1; +pub const BOOT_TIME: c_short = 2; +pub const NEW_TIME: c_short = 3; +pub const OLD_TIME: c_short = 4; +pub const INIT_PROCESS: c_short = 5; +pub const LOGIN_PROCESS: c_short = 6; +pub const USER_PROCESS: c_short = 7; +pub const DEAD_PROCESS: c_short = 8; // musl does not define ACCOUNTING -pub const SFD_CLOEXEC: ::c_int = 0x080000; +pub const SFD_CLOEXEC: c_int = 0x080000; pub const NCCS: usize = 32; -pub const O_TRUNC: ::c_int = 512; -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_CLOEXEC: ::c_int = 0x80000; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; - -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; - -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; - -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -pub const EFD_CLOEXEC: ::c_int = 0x80000; - -pub const BUFSIZ: ::c_uint = 1024; -pub const TMP_MAX: ::c_uint = 10000; -pub const FOPEN_MAX: ::c_uint = 1000; -pub const FILENAME_MAX: ::c_uint = 4096; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_EXEC: ::c_int = 0o10000000; -pub const O_SEARCH: ::c_int = 0o10000000; -pub const O_ACCMODE: ::c_int = 0o10000003; -pub const O_NDELAY: ::c_int = O_NONBLOCK; -pub const NI_MAXHOST: ::socklen_t = 255; -pub const PTHREAD_STACK_MIN: ::size_t = 2048; - -pub const POSIX_MADV_DONTNEED: ::c_int = 4; - -pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; - -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOCK_DCCP: ::c_int = 6; -pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK; -pub const SOCK_PACKET: ::c_int = 10; - -pub const SOMAXCONN: ::c_int = 128; +pub const O_TRUNC: c_int = 512; +pub const O_NOATIME: c_int = 0o1000000; +pub const O_CLOEXEC: c_int = 0x80000; +pub const O_TMPFILE: c_int = 0o20000000 | O_DIRECTORY; + +pub const EBFONT: c_int = 59; +pub const ENOSTR: c_int = 60; +pub const ENODATA: c_int = 61; +pub const ETIME: c_int = 62; +pub const ENOSR: c_int = 63; +pub const ENONET: c_int = 64; +pub const ENOPKG: c_int = 65; +pub const EREMOTE: c_int = 66; +pub const ENOLINK: c_int = 67; +pub const EADV: c_int = 68; +pub const ESRMNT: c_int = 69; +pub const ECOMM: c_int = 70; +pub const EPROTO: c_int = 71; +pub const EDOTDOT: c_int = 73; + +pub const F_OFD_GETLK: c_int = 36; +pub const F_OFD_SETLK: c_int = 37; +pub const F_OFD_SETLKW: c_int = 38; + +pub const F_RDLCK: c_int = 0; +pub const F_WRLCK: c_int = 1; +pub const F_UNLCK: c_int = 2; + +pub const SA_NODEFER: c_int = 0x40000000; +pub const SA_RESETHAND: c_int = 0x80000000; +pub const SA_RESTART: c_int = 0x10000000; +pub const SA_NOCLDSTOP: c_int = 0x00000001; + +pub const EPOLL_CLOEXEC: c_int = 0x80000; + +pub const EFD_CLOEXEC: c_int = 0x80000; + +pub const BUFSIZ: c_uint = 1024; +pub const TMP_MAX: c_uint = 10000; +pub const FOPEN_MAX: c_uint = 1000; +pub const FILENAME_MAX: c_uint = 4096; +pub const O_PATH: c_int = 0o10000000; +pub const O_EXEC: c_int = 0o10000000; +pub const O_SEARCH: c_int = 0o10000000; +pub const O_ACCMODE: c_int = 0o10000003; +pub const O_NDELAY: c_int = O_NONBLOCK; +pub const NI_MAXHOST: crate::socklen_t = 255; +pub const PTHREAD_STACK_MIN: size_t = 2048; + +pub const POSIX_MADV_DONTNEED: c_int = 4; + +pub const MAP_ANONYMOUS: c_int = MAP_ANON; + +pub const SOCK_SEQPACKET: c_int = 5; +pub const SOCK_DCCP: c_int = 6; +pub const SOCK_NONBLOCK: c_int = O_NONBLOCK; +pub const SOCK_PACKET: c_int = 10; + +pub const SOMAXCONN: c_int = 128; #[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = ::SIGSYS; +pub const SIGUNUSED: c_int = crate::SIGSYS; pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; @@ -804,140 +808,140 @@ pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; #[cfg(not(target_arch = "loongarch64"))] -pub const CPU_SETSIZE: ::c_int = 128; +pub const CPU_SETSIZE: c_int = 128; #[cfg(target_arch = "loongarch64")] -pub const CPU_SETSIZE: ::c_int = 1024; - -pub const PTRACE_TRACEME: ::c_int = 0; -pub const PTRACE_PEEKTEXT: ::c_int = 1; -pub const PTRACE_PEEKDATA: ::c_int = 2; -pub const PTRACE_PEEKUSER: ::c_int = 3; -pub const PTRACE_POKETEXT: ::c_int = 4; -pub const PTRACE_POKEDATA: ::c_int = 5; -pub const PTRACE_POKEUSER: ::c_int = 6; -pub const PTRACE_CONT: ::c_int = 7; -pub const PTRACE_KILL: ::c_int = 8; -pub const PTRACE_SINGLESTEP: ::c_int = 9; -pub const PTRACE_GETREGS: ::c_int = 12; -pub const PTRACE_SETREGS: ::c_int = 13; -pub const PTRACE_GETFPREGS: ::c_int = 14; -pub const PTRACE_SETFPREGS: ::c_int = 15; -pub const PTRACE_ATTACH: ::c_int = 16; -pub const PTRACE_DETACH: ::c_int = 17; -pub const PTRACE_GETFPXREGS: ::c_int = 18; -pub const PTRACE_SETFPXREGS: ::c_int = 19; -pub const PTRACE_SYSCALL: ::c_int = 24; -pub const PTRACE_SETOPTIONS: ::c_int = 0x4200; -pub const PTRACE_GETEVENTMSG: ::c_int = 0x4201; -pub const PTRACE_GETSIGINFO: ::c_int = 0x4202; -pub const PTRACE_SETSIGINFO: ::c_int = 0x4203; -pub const PTRACE_GETREGSET: ::c_int = 0x4204; -pub const PTRACE_SETREGSET: ::c_int = 0x4205; -pub const PTRACE_SEIZE: ::c_int = 0x4206; -pub const PTRACE_INTERRUPT: ::c_int = 0x4207; -pub const PTRACE_LISTEN: ::c_int = 0x4208; -pub const PTRACE_PEEKSIGINFO: ::c_int = 0x4209; -pub const PTRACE_GETSIGMASK: ::c_uint = 0x420a; -pub const PTRACE_SETSIGMASK: ::c_uint = 0x420b; - -pub const RWF_HIPRI: ::c_int = 0x00000001; -pub const RWF_DSYNC: ::c_int = 0x00000002; -pub const RWF_SYNC: ::c_int = 0x00000004; -pub const RWF_NOWAIT: ::c_int = 0x00000008; -pub const RWF_APPEND: ::c_int = 0x00000010; - -pub const AF_IB: ::c_int = 27; -pub const AF_MPLS: ::c_int = 28; -pub const AF_NFC: ::c_int = 39; -pub const AF_VSOCK: ::c_int = 40; -pub const AF_XDP: ::c_int = 44; -pub const PF_IB: ::c_int = AF_IB; -pub const PF_MPLS: ::c_int = AF_MPLS; -pub const PF_NFC: ::c_int = AF_NFC; -pub const PF_VSOCK: ::c_int = AF_VSOCK; -pub const PF_XDP: ::c_int = AF_XDP; - -pub const EFD_NONBLOCK: ::c_int = ::O_NONBLOCK; - -pub const SFD_NONBLOCK: ::c_int = ::O_NONBLOCK; - -pub const PIDFD_NONBLOCK: ::c_uint = O_NONBLOCK as ::c_uint; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; - -pub const CLOCK_SGI_CYCLE: ::clockid_t = 10; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; - -pub const REG_OK: ::c_int = 0; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; - -pub const ADJ_OFFSET: ::c_uint = 0x0001; -pub const ADJ_FREQUENCY: ::c_uint = 0x0002; -pub const ADJ_MAXERROR: ::c_uint = 0x0004; -pub const ADJ_ESTERROR: ::c_uint = 0x0008; -pub const ADJ_STATUS: ::c_uint = 0x0010; -pub const ADJ_TIMECONST: ::c_uint = 0x0020; -pub const ADJ_TAI: ::c_uint = 0x0080; -pub const ADJ_SETOFFSET: ::c_uint = 0x0100; -pub const ADJ_MICRO: ::c_uint = 0x1000; -pub const ADJ_NANO: ::c_uint = 0x2000; -pub const ADJ_TICK: ::c_uint = 0x4000; -pub const ADJ_OFFSET_SINGLESHOT: ::c_uint = 0x8001; -pub const ADJ_OFFSET_SS_READ: ::c_uint = 0xa001; -pub const MOD_OFFSET: ::c_uint = ADJ_OFFSET; -pub const MOD_FREQUENCY: ::c_uint = ADJ_FREQUENCY; -pub const MOD_MAXERROR: ::c_uint = ADJ_MAXERROR; -pub const MOD_ESTERROR: ::c_uint = ADJ_ESTERROR; -pub const MOD_STATUS: ::c_uint = ADJ_STATUS; -pub const MOD_TIMECONST: ::c_uint = ADJ_TIMECONST; -pub const MOD_CLKB: ::c_uint = ADJ_TICK; -pub const MOD_CLKA: ::c_uint = ADJ_OFFSET_SINGLESHOT; -pub const MOD_TAI: ::c_uint = ADJ_TAI; -pub const MOD_MICRO: ::c_uint = ADJ_MICRO; -pub const MOD_NANO: ::c_uint = ADJ_NANO; -pub const STA_PLL: ::c_int = 0x0001; -pub const STA_PPSFREQ: ::c_int = 0x0002; -pub const STA_PPSTIME: ::c_int = 0x0004; -pub const STA_FLL: ::c_int = 0x0008; -pub const STA_INS: ::c_int = 0x0010; -pub const STA_DEL: ::c_int = 0x0020; -pub const STA_UNSYNC: ::c_int = 0x0040; -pub const STA_FREQHOLD: ::c_int = 0x0080; -pub const STA_PPSSIGNAL: ::c_int = 0x0100; -pub const STA_PPSJITTER: ::c_int = 0x0200; -pub const STA_PPSWANDER: ::c_int = 0x0400; -pub const STA_PPSERROR: ::c_int = 0x0800; -pub const STA_CLOCKERR: ::c_int = 0x1000; -pub const STA_NANO: ::c_int = 0x2000; -pub const STA_MODE: ::c_int = 0x4000; -pub const STA_CLK: ::c_int = 0x8000; -pub const STA_RONLY: ::c_int = STA_PPSSIGNAL +pub const CPU_SETSIZE: c_int = 1024; + +pub const PTRACE_TRACEME: c_int = 0; +pub const PTRACE_PEEKTEXT: c_int = 1; +pub const PTRACE_PEEKDATA: c_int = 2; +pub const PTRACE_PEEKUSER: c_int = 3; +pub const PTRACE_POKETEXT: c_int = 4; +pub const PTRACE_POKEDATA: c_int = 5; +pub const PTRACE_POKEUSER: c_int = 6; +pub const PTRACE_CONT: c_int = 7; +pub const PTRACE_KILL: c_int = 8; +pub const PTRACE_SINGLESTEP: c_int = 9; +pub const PTRACE_GETREGS: c_int = 12; +pub const PTRACE_SETREGS: c_int = 13; +pub const PTRACE_GETFPREGS: c_int = 14; +pub const PTRACE_SETFPREGS: c_int = 15; +pub const PTRACE_ATTACH: c_int = 16; +pub const PTRACE_DETACH: c_int = 17; +pub const PTRACE_GETFPXREGS: c_int = 18; +pub const PTRACE_SETFPXREGS: c_int = 19; +pub const PTRACE_SYSCALL: c_int = 24; +pub const PTRACE_SETOPTIONS: c_int = 0x4200; +pub const PTRACE_GETEVENTMSG: c_int = 0x4201; +pub const PTRACE_GETSIGINFO: c_int = 0x4202; +pub const PTRACE_SETSIGINFO: c_int = 0x4203; +pub const PTRACE_GETREGSET: c_int = 0x4204; +pub const PTRACE_SETREGSET: c_int = 0x4205; +pub const PTRACE_SEIZE: c_int = 0x4206; +pub const PTRACE_INTERRUPT: c_int = 0x4207; +pub const PTRACE_LISTEN: c_int = 0x4208; +pub const PTRACE_PEEKSIGINFO: c_int = 0x4209; +pub const PTRACE_GETSIGMASK: c_uint = 0x420a; +pub const PTRACE_SETSIGMASK: c_uint = 0x420b; + +pub const RWF_HIPRI: c_int = 0x00000001; +pub const RWF_DSYNC: c_int = 0x00000002; +pub const RWF_SYNC: c_int = 0x00000004; +pub const RWF_NOWAIT: c_int = 0x00000008; +pub const RWF_APPEND: c_int = 0x00000010; + +pub const AF_IB: c_int = 27; +pub const AF_MPLS: c_int = 28; +pub const AF_NFC: c_int = 39; +pub const AF_VSOCK: c_int = 40; +pub const AF_XDP: c_int = 44; +pub const PF_IB: c_int = AF_IB; +pub const PF_MPLS: c_int = AF_MPLS; +pub const PF_NFC: c_int = AF_NFC; +pub const PF_VSOCK: c_int = AF_VSOCK; +pub const PF_XDP: c_int = AF_XDP; + +pub const EFD_NONBLOCK: c_int = crate::O_NONBLOCK; + +pub const SFD_NONBLOCK: c_int = crate::O_NONBLOCK; + +pub const PIDFD_NONBLOCK: c_uint = O_NONBLOCK as c_uint; + +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; + +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_NOLOAD: c_int = 0x4; + +pub const CLOCK_SGI_CYCLE: crate::clockid_t = 10; + +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; + +pub const REG_OK: c_int = 0; + +pub const PRIO_PROCESS: c_int = 0; +pub const PRIO_PGRP: c_int = 1; +pub const PRIO_USER: c_int = 2; + +pub const ADJ_OFFSET: c_uint = 0x0001; +pub const ADJ_FREQUENCY: c_uint = 0x0002; +pub const ADJ_MAXERROR: c_uint = 0x0004; +pub const ADJ_ESTERROR: c_uint = 0x0008; +pub const ADJ_STATUS: c_uint = 0x0010; +pub const ADJ_TIMECONST: c_uint = 0x0020; +pub const ADJ_TAI: c_uint = 0x0080; +pub const ADJ_SETOFFSET: c_uint = 0x0100; +pub const ADJ_MICRO: c_uint = 0x1000; +pub const ADJ_NANO: c_uint = 0x2000; +pub const ADJ_TICK: c_uint = 0x4000; +pub const ADJ_OFFSET_SINGLESHOT: c_uint = 0x8001; +pub const ADJ_OFFSET_SS_READ: c_uint = 0xa001; +pub const MOD_OFFSET: c_uint = ADJ_OFFSET; +pub const MOD_FREQUENCY: c_uint = ADJ_FREQUENCY; +pub const MOD_MAXERROR: c_uint = ADJ_MAXERROR; +pub const MOD_ESTERROR: c_uint = ADJ_ESTERROR; +pub const MOD_STATUS: c_uint = ADJ_STATUS; +pub const MOD_TIMECONST: c_uint = ADJ_TIMECONST; +pub const MOD_CLKB: c_uint = ADJ_TICK; +pub const MOD_CLKA: c_uint = ADJ_OFFSET_SINGLESHOT; +pub const MOD_TAI: c_uint = ADJ_TAI; +pub const MOD_MICRO: c_uint = ADJ_MICRO; +pub const MOD_NANO: c_uint = ADJ_NANO; +pub const STA_PLL: c_int = 0x0001; +pub const STA_PPSFREQ: c_int = 0x0002; +pub const STA_PPSTIME: c_int = 0x0004; +pub const STA_FLL: c_int = 0x0008; +pub const STA_INS: c_int = 0x0010; +pub const STA_DEL: c_int = 0x0020; +pub const STA_UNSYNC: c_int = 0x0040; +pub const STA_FREQHOLD: c_int = 0x0080; +pub const STA_PPSSIGNAL: c_int = 0x0100; +pub const STA_PPSJITTER: c_int = 0x0200; +pub const STA_PPSWANDER: c_int = 0x0400; +pub const STA_PPSERROR: c_int = 0x0800; +pub const STA_CLOCKERR: c_int = 0x1000; +pub const STA_NANO: c_int = 0x2000; +pub const STA_MODE: c_int = 0x4000; +pub const STA_CLK: c_int = 0x8000; +pub const STA_RONLY: c_int = STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | STA_PPSERROR @@ -946,147 +950,147 @@ pub const STA_RONLY: ::c_int = STA_PPSSIGNAL | STA_MODE | STA_CLK; -pub const TIME_OK: ::c_int = 0; -pub const TIME_INS: ::c_int = 1; -pub const TIME_DEL: ::c_int = 2; -pub const TIME_OOP: ::c_int = 3; -pub const TIME_WAIT: ::c_int = 4; -pub const TIME_ERROR: ::c_int = 5; -pub const TIME_BAD: ::c_int = TIME_ERROR; -pub const MAXTC: ::c_long = 6; +pub const TIME_OK: c_int = 0; +pub const TIME_INS: c_int = 1; +pub const TIME_DEL: c_int = 2; +pub const TIME_OOP: c_int = 3; +pub const TIME_WAIT: c_int = 4; +pub const TIME_ERROR: c_int = 5; +pub const TIME_BAD: c_int = TIME_ERROR; +pub const MAXTC: c_long = 6; -pub const SOL_XDP: ::c_int = 283; +pub const SOL_XDP: c_int = 283; // linux/if_xdp.h -pub const XDP_SHARED_UMEM: ::__u16 = 1 << 0; -pub const XDP_COPY: ::__u16 = 1 << 1; -pub const XDP_ZEROCOPY: ::__u16 = 1 << 2; -pub const XDP_USE_NEED_WAKEUP: ::__u16 = 1 << 3; -pub const XDP_USE_SG: ::__u16 = 1 << 4; +pub const XDP_SHARED_UMEM: crate::__u16 = 1 << 0; +pub const XDP_COPY: crate::__u16 = 1 << 1; +pub const XDP_ZEROCOPY: crate::__u16 = 1 << 2; +pub const XDP_USE_NEED_WAKEUP: crate::__u16 = 1 << 3; +pub const XDP_USE_SG: crate::__u16 = 1 << 4; -pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: ::__u32 = 1 << 0; +pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: crate::__u32 = 1 << 0; -pub const XDP_RING_NEED_WAKEUP: ::__u32 = 1 << 0; +pub const XDP_RING_NEED_WAKEUP: crate::__u32 = 1 << 0; -pub const XDP_MMAP_OFFSETS: ::c_int = 1; -pub const XDP_RX_RING: ::c_int = 2; -pub const XDP_TX_RING: ::c_int = 3; -pub const XDP_UMEM_REG: ::c_int = 4; -pub const XDP_UMEM_FILL_RING: ::c_int = 5; -pub const XDP_UMEM_COMPLETION_RING: ::c_int = 6; -pub const XDP_STATISTICS: ::c_int = 7; -pub const XDP_OPTIONS: ::c_int = 8; +pub const XDP_MMAP_OFFSETS: c_int = 1; +pub const XDP_RX_RING: c_int = 2; +pub const XDP_TX_RING: c_int = 3; +pub const XDP_UMEM_REG: c_int = 4; +pub const XDP_UMEM_FILL_RING: c_int = 5; +pub const XDP_UMEM_COMPLETION_RING: c_int = 6; +pub const XDP_STATISTICS: c_int = 7; +pub const XDP_OPTIONS: c_int = 8; -pub const XDP_OPTIONS_ZEROCOPY: ::__u32 = 1 << 0; +pub const XDP_OPTIONS_ZEROCOPY: crate::__u32 = 1 << 0; -pub const XDP_PGOFF_RX_RING: ::off_t = 0; -pub const XDP_PGOFF_TX_RING: ::off_t = 0x80000000; -pub const XDP_UMEM_PGOFF_FILL_RING: ::c_ulonglong = 0x100000000; -pub const XDP_UMEM_PGOFF_COMPLETION_RING: ::c_ulonglong = 0x180000000; +pub const XDP_PGOFF_RX_RING: off_t = 0; +pub const XDP_PGOFF_TX_RING: off_t = 0x80000000; +pub const XDP_UMEM_PGOFF_FILL_RING: c_ulonglong = 0x100000000; +pub const XDP_UMEM_PGOFF_COMPLETION_RING: c_ulonglong = 0x180000000; -pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: ::c_int = 48; -pub const XSK_UNALIGNED_BUF_ADDR_MASK: ::c_ulonglong = (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1; +pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: c_int = 48; +pub const XSK_UNALIGNED_BUF_ADDR_MASK: c_ulonglong = (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1; -pub const XDP_PKT_CONTD: ::__u32 = 1 << 0; +pub const XDP_PKT_CONTD: crate::__u32 = 1 << 0; -pub const _CS_V6_ENV: ::c_int = 1148; -pub const _CS_V7_ENV: ::c_int = 1149; +pub const _CS_V6_ENV: c_int = 1148; +pub const _CS_V7_ENV: c_int = 1149; cfg_if! { if #[cfg(target_arch = "s390x")] { - pub const POSIX_FADV_DONTNEED: ::c_int = 6; - pub const POSIX_FADV_NOREUSE: ::c_int = 7; + pub const POSIX_FADV_DONTNEED: c_int = 6; + pub const POSIX_FADV_NOREUSE: c_int = 7; } else { - pub const POSIX_FADV_DONTNEED: ::c_int = 4; - pub const POSIX_FADV_NOREUSE: ::c_int = 5; + pub const POSIX_FADV_DONTNEED: c_int = 4; + pub const POSIX_FADV_NOREUSE: c_int = 5; } } extern "C" { pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_uint, - ) -> ::c_int; + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_uint, + ) -> c_int; pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_uint, - timeout: *mut ::timespec, - ) -> ::c_int; - - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_uint, + timeout: *mut crate::timespec, + ) -> c_int; + + pub fn getrlimit(resource: c_int, rlim: *mut crate::rlimit) -> c_int; + pub fn setrlimit(resource: c_int, rlim: *const crate::rlimit) -> c_int; pub fn prlimit( - pid: ::pid_t, - resource: ::c_int, - new_limit: *const ::rlimit, - old_limit: *mut ::rlimit, - ) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn ptrace(request: ::c_int, ...) -> ::c_long; - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; + pid: crate::pid_t, + resource: c_int, + new_limit: *const crate::rlimit, + old_limit: *mut crate::rlimit, + ) -> c_int; + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut c_void) -> c_int; + pub fn ptrace(request: c_int, ...) -> c_long; + pub fn getpriority(which: c_int, who: crate::id_t) -> c_int; + pub fn setpriority(which: c_int, who: crate::id_t, prio: c_int) -> c_int; // Musl targets need the `mask` argument of `fanotify_mark` be specified - // `::c_ulonglong` instead of `u64` or there will be a type mismatch between + // `c_ulonglong` instead of `u64` or there will be a type mismatch between // `long long unsigned int` and the expected `uint64_t`. pub fn fanotify_mark( - fd: ::c_int, - flags: ::c_uint, - mask: ::c_ulonglong, - dirfd: ::c_int, - path: *const ::c_char, - ) -> ::c_int; + fd: c_int, + flags: c_uint, + mask: c_ulonglong, + dirfd: c_int, + path: *const c_char, + ) -> c_int; pub fn preadv2( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t, - flags: ::c_int, - ) -> ::ssize_t; + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: off_t, + flags: c_int, + ) -> ssize_t; pub fn pwritev2( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t, - flags: ::c_int, - ) -> ::ssize_t; - pub fn getauxval(type_: ::c_ulong) -> ::c_ulong; + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: off_t, + flags: c_int, + ) -> ssize_t; + pub fn getauxval(type_: c_ulong) -> c_ulong; // Added in `musl` 1.1.20 - pub fn explicit_bzero(s: *mut ::c_void, len: ::size_t); + pub fn explicit_bzero(s: *mut c_void, len: size_t); // Added in `musl` 1.2.2 - pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; + pub fn reallocarray(ptr: *mut c_void, nmemb: size_t, size: size_t) -> *mut c_void; - pub fn adjtimex(buf: *mut ::timex) -> ::c_int; - pub fn clock_adjtime(clk_id: ::clockid_t, buf: *mut ::timex) -> ::c_int; + pub fn adjtimex(buf: *mut crate::timex) -> c_int; + pub fn clock_adjtime(clk_id: crate::clockid_t, buf: *mut crate::timex) -> c_int; - pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; + pub fn ctermid(s: *mut c_char) -> *mut c_char; - pub fn memfd_create(name: *const ::c_char, flags: ::c_uint) -> ::c_int; - pub fn mlock2(addr: *const ::c_void, len: ::size_t, flags: ::c_uint) -> ::c_int; - pub fn malloc_usable_size(ptr: *mut ::c_void) -> ::size_t; + pub fn memfd_create(name: *const c_char, flags: c_uint) -> c_int; + pub fn mlock2(addr: *const c_void, len: size_t, flags: c_uint) -> c_int; + pub fn malloc_usable_size(ptr: *mut c_void) -> size_t; - pub fn euidaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; - pub fn eaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; + pub fn euidaccess(pathname: *const c_char, mode: c_int) -> c_int; + pub fn eaccess(pathname: *const c_char, mode: c_int) -> c_int; - pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char; + pub fn asctime_r(tm: *const crate::tm, buf: *mut c_char) -> *mut c_char; - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; - pub fn basename(path: *mut ::c_char) -> *mut ::c_char; + pub fn dirname(path: *mut c_char) -> *mut c_char; + pub fn basename(path: *mut c_char) -> *mut c_char; // Added in `musl` 1.1.24 pub fn posix_spawn_file_actions_addchdir_np( - actions: *mut ::posix_spawn_file_actions_t, - path: *const ::c_char, - ) -> ::c_int; + actions: *mut crate::posix_spawn_file_actions_t, + path: *const c_char, + ) -> c_int; // Added in `musl` 1.1.24 pub fn posix_spawn_file_actions_addfchdir_np( - actions: *mut ::posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; + actions: *mut crate::posix_spawn_file_actions_t, + fd: c_int, + ) -> c_int; pub fn getutxent() -> *mut utmpx; pub fn getutxid(ut: *const utmpx) -> *mut utmpx; diff --git a/src/unix/linux_like/linux/uclibc/arm/mod.rs b/src/unix/linux_like/linux/uclibc/arm/mod.rs index cf8cdf694584c..5991d4651c1bb 100644 --- a/src/unix/linux_like/linux/uclibc/arm/mod.rs +++ b/src/unix/linux_like/linux/uclibc/arm/mod.rs @@ -1,244 +1,246 @@ +use crate::{c_int, c_longlong, c_short, c_uint, c_ulonglong, c_ushort, c_void, off64_t, size_t}; + pub type c_char = u8; -pub type wchar_t = ::c_uint; +pub type wchar_t = c_uint; pub type c_long = i32; pub type c_ulong = u32; -pub type time_t = ::c_long; +pub type time_t = c_long; -pub type clock_t = ::c_long; -pub type fsblkcnt_t = ::c_ulong; -pub type fsfilcnt_t = ::c_ulong; -pub type ino_t = ::c_ulong; -pub type off_t = ::c_long; -pub type pthread_t = ::c_ulong; -pub type suseconds_t = ::c_long; +pub type clock_t = c_long; +pub type fsblkcnt_t = c_ulong; +pub type fsfilcnt_t = c_ulong; +pub type ino_t = c_ulong; +pub type off_t = c_long; +pub type pthread_t = c_ulong; +pub type suseconds_t = c_long; -pub type nlink_t = ::c_uint; -pub type blksize_t = ::c_long; -pub type blkcnt_t = ::c_long; +pub type nlink_t = c_uint; +pub type blksize_t = c_long; +pub type blkcnt_t = c_long; pub type fsblkcnt64_t = u64; pub type fsfilcnt64_t = u64; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; s! { pub struct cmsghdr { - pub cmsg_len: ::size_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub cmsg_len: size_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - pub msg_flags: ::c_int, + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: c_int, + pub msg_control: *mut c_void, + pub msg_controllen: crate::socklen_t, + pub msg_flags: c_int, } pub struct pthread_attr_t { - __size: [::c_long; 9], + __size: [c_long; 9], } pub struct stat { - pub st_dev: ::c_ulonglong, - __pad1: ::c_ushort, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulonglong, - __pad2: ::c_ushort, - 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, - __unused4: ::c_ulong, - __unused5: ::c_ulong, + pub st_dev: c_ulonglong, + __pad1: c_ushort, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: c_ulonglong, + __pad2: c_ushort, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused4: c_ulong, + __unused5: c_ulong, } pub struct stat64 { - pub st_dev: ::c_ulonglong, - pub __pad1: ::c_uint, - pub __st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulonglong, - pub __pad2: ::c_uint, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_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_ino: ::ino64_t, + pub st_dev: c_ulonglong, + pub __pad1: c_uint, + pub __st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: c_ulonglong, + pub __pad2: c_uint, + pub st_size: off64_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_ino: crate::ino64_t, } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, } pub struct sysinfo { - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 8], + pub uptime: c_long, + pub loads: [c_ulong; 3], + pub totalram: c_ulong, + pub freeram: c_ulong, + pub sharedram: c_ulong, + pub bufferram: c_ulong, + pub totalswap: c_ulong, + pub freeswap: c_ulong, + pub procs: c_ushort, + pub pad: c_ushort, + pub totalhigh: c_ulong, + pub freehigh: c_ulong, + pub mem_unit: c_uint, + pub _f: [c_char; 8], } pub struct statfs { - pub f_type: ::c_int, - pub f_bsize: ::c_int, - 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_fsid: ::fsid_t, - pub f_namelen: ::c_int, - pub f_frsize: ::c_int, - pub f_flags: ::c_int, - pub f_spare: [::c_int; 4], + pub f_type: c_int, + pub f_bsize: c_int, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + + pub f_fsid: crate::fsid_t, + pub f_namelen: c_int, + pub f_frsize: c_int, + pub f_flags: c_int, + pub f_spare: [c_int; 4], } pub struct statfs64 { - pub f_type: ::c_int, - pub f_bsize: ::c_int, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_int, - pub f_frsize: ::c_int, - pub f_flags: ::c_int, - pub f_spare: [::c_int; 4], + pub f_type: c_int, + pub f_bsize: c_int, + pub f_blocks: crate::fsblkcnt64_t, + pub f_bfree: crate::fsblkcnt64_t, + pub f_bavail: crate::fsblkcnt64_t, + pub f_files: crate::fsfilcnt64_t, + pub f_ffree: crate::fsfilcnt64_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_int, + pub f_frsize: c_int, + pub f_flags: c_int, + pub f_spare: [c_int; 4], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + __f_unused: c_int, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct sigset_t { - __val: [::c_ulong; 2], + __val: [c_ulong; 2], } pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_flags: ::c_ulong, - pub sa_restorer: ::Option, + pub sa_sigaction: crate::sighandler_t, + pub sa_flags: c_ulong, + pub sa_restorer: Option, pub sa_mask: sigset_t, } pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; crate::NCCS], + pub c_ispeed: crate::speed_t, + pub c_ospeed: crate::speed_t, } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, + pub _pad: [c_int; 29], } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: c_ushort, + __pad1: c_ushort, + pub __seq: c_ushort, + __pad2: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - __unused1: ::c_ulong, - pub msg_rtime: ::time_t, - __unused2: ::c_ulong, - pub msg_ctime: ::time_t, - __unused3: ::c_ulong, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong, + pub msg_perm: crate::ipc_perm, + pub msg_stime: crate::time_t, + __unused1: c_ulong, + pub msg_rtime: crate::time_t, + __unused2: c_ulong, + pub msg_ctime: crate::time_t, + __unused3: c_ulong, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __unused4: c_ulong, + __unused5: c_ulong, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - __unused1: ::c_ulong, - pub shm_dtime: ::time_t, - __unused2: ::c_ulong, - pub shm_ctime: ::time_t, - __unused3: ::c_ulong, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + __unused1: c_ulong, + pub shm_dtime: crate::time_t, + __unused2: c_ulong, + pub shm_ctime: crate::time_t, + __unused3: c_ulong, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __unused4: c_ulong, + __unused5: c_ulong, } // FIXME(1.0) this is actually a union @@ -246,13 +248,13 @@ s! { #[cfg_attr(target_pointer_width = "64", repr(align(8)))] pub struct sem_t { #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], + __size: [c_char; 16], #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], + __size: [c_char; 32], } } -pub const O_CLOEXEC: ::c_int = 0o2000000; +pub const O_CLOEXEC: c_int = 0o2000000; pub const __SIZEOF_PTHREAD_ATTR_T: usize = 36; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; @@ -266,264 +268,264 @@ pub const NCCS: usize = 32; // I wasn't able to find those constants // in uclibc build environment for armv7 -pub const MAP_HUGETLB: ::c_int = 0x040000; // from linux/other/mod.rs +pub const MAP_HUGETLB: c_int = 0x040000; // from linux/other/mod.rs // autogenerated constants with hand tuned types -pub const B0: ::speed_t = 0; -pub const B1000000: ::speed_t = 0x1008; -pub const B110: ::speed_t = 0x3; -pub const B115200: ::speed_t = 0x1002; -pub const B1152000: ::speed_t = 0x1009; -pub const B1200: ::speed_t = 0x9; -pub const B134: ::speed_t = 0x4; -pub const B150: ::speed_t = 0x5; -pub const B1500000: ::speed_t = 0x100a; -pub const B1800: ::speed_t = 0xa; -pub const B19200: ::speed_t = 0xe; -pub const B200: ::speed_t = 0x6; -pub const B2000000: ::speed_t = 0x100b; -pub const B230400: ::speed_t = 0x1003; -pub const B2400: ::speed_t = 0xb; -pub const B2500000: ::speed_t = 0x100c; -pub const B300: ::speed_t = 0x7; -pub const B3000000: ::speed_t = 0x100d; -pub const B3500000: ::speed_t = 0x100e; -pub const B38400: ::speed_t = 0xf; -pub const B4000000: ::speed_t = 0x100f; -pub const B460800: ::speed_t = 0x1004; -pub const B4800: ::speed_t = 0xc; -pub const B50: ::speed_t = 0x1; -pub const B500000: ::speed_t = 0x1005; -pub const B57600: ::speed_t = 0x1001; -pub const B576000: ::speed_t = 0x1006; -pub const B600: ::speed_t = 0x8; -pub const B75: ::speed_t = 0x2; -pub const B921600: ::speed_t = 0x1007; -pub const B9600: ::speed_t = 0xd; -pub const BS1: ::c_int = 0x2000; -pub const BSDLY: ::c_int = 0x2000; -pub const CBAUD: ::tcflag_t = 0x100f; -pub const CBAUDEX: ::tcflag_t = 0x1000; -pub const CIBAUD: ::tcflag_t = 0x100f0000; -pub const CLOCAL: ::tcflag_t = 0x800; -pub const CPU_SETSIZE: ::c_int = 0x400; -pub const CR1: ::c_int = 0x200; -pub const CR2: ::c_int = 0x400; -pub const CR3: ::c_int = 0x600; -pub const CRDLY: ::c_int = 0x600; -pub const CREAD: ::tcflag_t = 0x80; -pub const CS6: ::tcflag_t = 0x10; -pub const CS7: ::tcflag_t = 0x20; -pub const CS8: ::tcflag_t = 0x30; -pub const CSIZE: ::tcflag_t = 0x30; -pub const CSTOPB: ::tcflag_t = 0x40; -pub const EADDRINUSE: ::c_int = 0x62; -pub const EADDRNOTAVAIL: ::c_int = 0x63; -pub const EADV: ::c_int = 0x44; -pub const EAFNOSUPPORT: ::c_int = 0x61; -pub const EALREADY: ::c_int = 0x72; -pub const EBADE: ::c_int = 0x34; -pub const EBADFD: ::c_int = 0x4d; -pub const EBADMSG: ::c_int = 0x4a; -pub const EBADR: ::c_int = 0x35; -pub const EBADRQC: ::c_int = 0x38; -pub const EBADSLT: ::c_int = 0x39; -pub const EBFONT: ::c_int = 0x3b; -pub const ECANCELED: ::c_int = 0x7d; -pub const ECHOCTL: ::tcflag_t = 0x200; -pub const ECHOE: ::tcflag_t = 0x10; -pub const ECHOK: ::tcflag_t = 0x20; -pub const ECHOKE: ::tcflag_t = 0x800; -pub const ECHONL: ::tcflag_t = 0x40; -pub const ECHOPRT: ::tcflag_t = 0x400; -pub const ECHRNG: ::c_int = 0x2c; -pub const ECOMM: ::c_int = 0x46; -pub const ECONNABORTED: ::c_int = 0x67; -pub const ECONNREFUSED: ::c_int = 0x6f; -pub const ECONNRESET: ::c_int = 0x68; -pub const EDEADLK: ::c_int = 0x23; -pub const EDESTADDRREQ: ::c_int = 0x59; -pub const EDOTDOT: ::c_int = 0x49; -pub const EDQUOT: ::c_int = 0x7a; -pub const EFD_CLOEXEC: ::c_int = 0x80000; -pub const EFD_NONBLOCK: ::c_int = 0x800; -pub const EHOSTDOWN: ::c_int = 0x70; -pub const EHOSTUNREACH: ::c_int = 0x71; -pub const EHWPOISON: ::c_int = 0x85; -pub const EIDRM: ::c_int = 0x2b; -pub const EILSEQ: ::c_int = 0x54; -pub const EINPROGRESS: ::c_int = 0x73; -pub const EISCONN: ::c_int = 0x6a; -pub const EISNAM: ::c_int = 0x78; -pub const EKEYEXPIRED: ::c_int = 0x7f; -pub const EKEYREJECTED: ::c_int = 0x81; -pub const EKEYREVOKED: ::c_int = 0x80; -pub const EL2HLT: ::c_int = 0x33; -pub const EL2NSYNC: ::c_int = 0x2d; -pub const EL3HLT: ::c_int = 0x2e; -pub const EL3RST: ::c_int = 0x2f; -pub const ELIBACC: ::c_int = 0x4f; -pub const ELIBBAD: ::c_int = 0x50; -pub const ELIBEXEC: ::c_int = 0x53; -pub const ELIBMAX: ::c_int = 0x52; -pub const ELIBSCN: ::c_int = 0x51; -pub const ELNRNG: ::c_int = 0x30; -pub const ELOOP: ::c_int = 0x28; -pub const EMEDIUMTYPE: ::c_int = 0x7c; -pub const EMSGSIZE: ::c_int = 0x5a; -pub const EMULTIHOP: ::c_int = 0x48; -pub const ENAMETOOLONG: ::c_int = 0x24; -pub const ENAVAIL: ::c_int = 0x77; -pub const ENETDOWN: ::c_int = 0x64; -pub const ENETRESET: ::c_int = 0x66; -pub const ENETUNREACH: ::c_int = 0x65; -pub const ENOANO: ::c_int = 0x37; -pub const ENOBUFS: ::c_int = 0x69; -pub const ENOCSI: ::c_int = 0x32; -pub const ENODATA: ::c_int = 0x3d; -pub const ENOKEY: ::c_int = 0x7e; -pub const ENOLCK: ::c_int = 0x25; -pub const ENOLINK: ::c_int = 0x43; -pub const ENOMEDIUM: ::c_int = 0x7b; -pub const ENOMSG: ::c_int = 0x2a; -pub const ENONET: ::c_int = 0x40; -pub const ENOPKG: ::c_int = 0x41; -pub const ENOPROTOOPT: ::c_int = 0x5c; -pub const ENOSR: ::c_int = 0x3f; -pub const ENOSTR: ::c_int = 0x3c; -pub const ENOSYS: ::c_int = 0x26; -pub const ENOTCONN: ::c_int = 0x6b; -pub const ENOTEMPTY: ::c_int = 0x27; -pub const ENOTNAM: ::c_int = 0x76; -pub const ENOTRECOVERABLE: ::c_int = 0x83; -pub const ENOTSOCK: ::c_int = 0x58; -pub const ENOTUNIQ: ::c_int = 0x4c; -pub const EOPNOTSUPP: ::c_int = 0x5f; -pub const EOVERFLOW: ::c_int = 0x4b; -pub const EOWNERDEAD: ::c_int = 0x82; -pub const EPFNOSUPPORT: ::c_int = 0x60; -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; -pub const EPROTO: ::c_int = 0x47; -pub const EPROTONOSUPPORT: ::c_int = 0x5d; -pub const EPROTOTYPE: ::c_int = 0x5b; -pub const EREMCHG: ::c_int = 0x4e; -pub const EREMOTE: ::c_int = 0x42; -pub const EREMOTEIO: ::c_int = 0x79; -pub const ERESTART: ::c_int = 0x55; -pub const ERFKILL: ::c_int = 0x84; -pub const ESHUTDOWN: ::c_int = 0x6c; -pub const ESOCKTNOSUPPORT: ::c_int = 0x5e; -pub const ESRMNT: ::c_int = 0x45; -pub const ESTALE: ::c_int = 0x74; -pub const ESTRPIPE: ::c_int = 0x56; -pub const ETIME: ::c_int = 0x3e; -pub const ETIMEDOUT: ::c_int = 0x6e; -pub const ETOOMANYREFS: ::c_int = 0x6d; -pub const EUCLEAN: ::c_int = 0x75; -pub const EUNATCH: ::c_int = 0x31; -pub const EUSERS: ::c_int = 0x57; -pub const EXFULL: ::c_int = 0x36; -pub const FF1: ::c_int = 0x8000; -pub const FFDLY: ::c_int = 0x8000; -pub const FLUSHO: ::tcflag_t = 0x1000; -pub const F_GETLK: ::c_int = 0x5; -pub const F_SETLK: ::c_int = 0x6; -pub const F_SETLKW: ::c_int = 0x7; -pub const HUPCL: ::tcflag_t = 0x400; -pub const ICANON: ::tcflag_t = 0x2; -pub const IEXTEN: ::tcflag_t = 0x8000; -pub const ISIG: ::tcflag_t = 0x1; -pub const IXOFF: ::tcflag_t = 0x1000; -pub const IXON: ::tcflag_t = 0x400; -pub const MAP_ANON: ::c_int = 0x20; -pub const MAP_ANONYMOUS: ::c_int = 0x20; -pub const MAP_DENYWRITE: ::c_int = 0x800; -pub const MAP_EXECUTABLE: ::c_int = 0x1000; -pub const MAP_GROWSDOWN: ::c_int = 0x100; -pub const MAP_LOCKED: ::c_int = 0x2000; -pub const MAP_NONBLOCK: ::c_int = 0x10000; -pub const MAP_NORESERVE: ::c_int = 0x4000; -pub const MAP_POPULATE: ::c_int = 0x8000; -pub const MAP_STACK: ::c_int = 0x20000; -pub const NLDLY: ::tcflag_t = 0x100; -pub const NOFLSH: ::tcflag_t = 0x80; -pub const OLCUC: ::tcflag_t = 0x2; -pub const ONLCR: ::tcflag_t = 0x4; -pub const O_ACCMODE: ::c_int = 0x3; -pub const O_APPEND: ::c_int = 0x400; -pub const O_ASYNC: ::c_int = 0o20000; -pub const O_CREAT: ::c_int = 0x40; -pub const O_DIRECT: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_DSYNC: ::c_int = O_SYNC; -pub const O_EXCL: ::c_int = 0x80; -pub const O_FSYNC: ::c_int = O_SYNC; -pub const O_LARGEFILE: ::c_int = 0o400000; -pub const O_NDELAY: ::c_int = O_NONBLOCK; -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_NOCTTY: ::c_int = 0x100; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_NONBLOCK: ::c_int = 0x800; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_RSYNC: ::c_int = O_SYNC; -pub const O_SYNC: ::c_int = 0o10000; -pub const O_TRUNC: ::c_int = 0x200; -pub const PARENB: ::tcflag_t = 0x100; -pub const PARODD: ::tcflag_t = 0x200; -pub const PENDIN: ::tcflag_t = 0x4000; -pub const POLLWRBAND: ::c_short = 0x200; -pub const POLLWRNORM: ::c_short = 0x100; -pub const PTHREAD_STACK_MIN: ::size_t = 16384; -pub const RTLD_GLOBAL: ::c_int = 0x00100; -pub const PIDFD_NONBLOCK: ::c_int = 0x800; +pub const B0: crate::speed_t = 0; +pub const B1000000: crate::speed_t = 0x1008; +pub const B110: crate::speed_t = 0x3; +pub const B115200: crate::speed_t = 0x1002; +pub const B1152000: crate::speed_t = 0x1009; +pub const B1200: crate::speed_t = 0x9; +pub const B134: crate::speed_t = 0x4; +pub const B150: crate::speed_t = 0x5; +pub const B1500000: crate::speed_t = 0x100a; +pub const B1800: crate::speed_t = 0xa; +pub const B19200: crate::speed_t = 0xe; +pub const B200: crate::speed_t = 0x6; +pub const B2000000: crate::speed_t = 0x100b; +pub const B230400: crate::speed_t = 0x1003; +pub const B2400: crate::speed_t = 0xb; +pub const B2500000: crate::speed_t = 0x100c; +pub const B300: crate::speed_t = 0x7; +pub const B3000000: crate::speed_t = 0x100d; +pub const B3500000: crate::speed_t = 0x100e; +pub const B38400: crate::speed_t = 0xf; +pub const B4000000: crate::speed_t = 0x100f; +pub const B460800: crate::speed_t = 0x1004; +pub const B4800: crate::speed_t = 0xc; +pub const B50: crate::speed_t = 0x1; +pub const B500000: crate::speed_t = 0x1005; +pub const B57600: crate::speed_t = 0x1001; +pub const B576000: crate::speed_t = 0x1006; +pub const B600: crate::speed_t = 0x8; +pub const B75: crate::speed_t = 0x2; +pub const B921600: crate::speed_t = 0x1007; +pub const B9600: crate::speed_t = 0xd; +pub const BS1: c_int = 0x2000; +pub const BSDLY: c_int = 0x2000; +pub const CBAUD: crate::tcflag_t = 0x100f; +pub const CBAUDEX: crate::tcflag_t = 0x1000; +pub const CIBAUD: crate::tcflag_t = 0x100f0000; +pub const CLOCAL: crate::tcflag_t = 0x800; +pub const CPU_SETSIZE: c_int = 0x400; +pub const CR1: c_int = 0x200; +pub const CR2: c_int = 0x400; +pub const CR3: c_int = 0x600; +pub const CRDLY: c_int = 0x600; +pub const CREAD: crate::tcflag_t = 0x80; +pub const CS6: crate::tcflag_t = 0x10; +pub const CS7: crate::tcflag_t = 0x20; +pub const CS8: crate::tcflag_t = 0x30; +pub const CSIZE: crate::tcflag_t = 0x30; +pub const CSTOPB: crate::tcflag_t = 0x40; +pub const EADDRINUSE: c_int = 0x62; +pub const EADDRNOTAVAIL: c_int = 0x63; +pub const EADV: c_int = 0x44; +pub const EAFNOSUPPORT: c_int = 0x61; +pub const EALREADY: c_int = 0x72; +pub const EBADE: c_int = 0x34; +pub const EBADFD: c_int = 0x4d; +pub const EBADMSG: c_int = 0x4a; +pub const EBADR: c_int = 0x35; +pub const EBADRQC: c_int = 0x38; +pub const EBADSLT: c_int = 0x39; +pub const EBFONT: c_int = 0x3b; +pub const ECANCELED: c_int = 0x7d; +pub const ECHOCTL: crate::tcflag_t = 0x200; +pub const ECHOE: crate::tcflag_t = 0x10; +pub const ECHOK: crate::tcflag_t = 0x20; +pub const ECHOKE: crate::tcflag_t = 0x800; +pub const ECHONL: crate::tcflag_t = 0x40; +pub const ECHOPRT: crate::tcflag_t = 0x400; +pub const ECHRNG: c_int = 0x2c; +pub const ECOMM: c_int = 0x46; +pub const ECONNABORTED: c_int = 0x67; +pub const ECONNREFUSED: c_int = 0x6f; +pub const ECONNRESET: c_int = 0x68; +pub const EDEADLK: c_int = 0x23; +pub const EDESTADDRREQ: c_int = 0x59; +pub const EDOTDOT: c_int = 0x49; +pub const EDQUOT: c_int = 0x7a; +pub const EFD_CLOEXEC: c_int = 0x80000; +pub const EFD_NONBLOCK: c_int = 0x800; +pub const EHOSTDOWN: c_int = 0x70; +pub const EHOSTUNREACH: c_int = 0x71; +pub const EHWPOISON: c_int = 0x85; +pub const EIDRM: c_int = 0x2b; +pub const EILSEQ: c_int = 0x54; +pub const EINPROGRESS: c_int = 0x73; +pub const EISCONN: c_int = 0x6a; +pub const EISNAM: c_int = 0x78; +pub const EKEYEXPIRED: c_int = 0x7f; +pub const EKEYREJECTED: c_int = 0x81; +pub const EKEYREVOKED: c_int = 0x80; +pub const EL2HLT: c_int = 0x33; +pub const EL2NSYNC: c_int = 0x2d; +pub const EL3HLT: c_int = 0x2e; +pub const EL3RST: c_int = 0x2f; +pub const ELIBACC: c_int = 0x4f; +pub const ELIBBAD: c_int = 0x50; +pub const ELIBEXEC: c_int = 0x53; +pub const ELIBMAX: c_int = 0x52; +pub const ELIBSCN: c_int = 0x51; +pub const ELNRNG: c_int = 0x30; +pub const ELOOP: c_int = 0x28; +pub const EMEDIUMTYPE: c_int = 0x7c; +pub const EMSGSIZE: c_int = 0x5a; +pub const EMULTIHOP: c_int = 0x48; +pub const ENAMETOOLONG: c_int = 0x24; +pub const ENAVAIL: c_int = 0x77; +pub const ENETDOWN: c_int = 0x64; +pub const ENETRESET: c_int = 0x66; +pub const ENETUNREACH: c_int = 0x65; +pub const ENOANO: c_int = 0x37; +pub const ENOBUFS: c_int = 0x69; +pub const ENOCSI: c_int = 0x32; +pub const ENODATA: c_int = 0x3d; +pub const ENOKEY: c_int = 0x7e; +pub const ENOLCK: c_int = 0x25; +pub const ENOLINK: c_int = 0x43; +pub const ENOMEDIUM: c_int = 0x7b; +pub const ENOMSG: c_int = 0x2a; +pub const ENONET: c_int = 0x40; +pub const ENOPKG: c_int = 0x41; +pub const ENOPROTOOPT: c_int = 0x5c; +pub const ENOSR: c_int = 0x3f; +pub const ENOSTR: c_int = 0x3c; +pub const ENOSYS: c_int = 0x26; +pub const ENOTCONN: c_int = 0x6b; +pub const ENOTEMPTY: c_int = 0x27; +pub const ENOTNAM: c_int = 0x76; +pub const ENOTRECOVERABLE: c_int = 0x83; +pub const ENOTSOCK: c_int = 0x58; +pub const ENOTUNIQ: c_int = 0x4c; +pub const EOPNOTSUPP: c_int = 0x5f; +pub const EOVERFLOW: c_int = 0x4b; +pub const EOWNERDEAD: c_int = 0x82; +pub const EPFNOSUPPORT: c_int = 0x60; +pub const EPOLL_CLOEXEC: c_int = 0x80000; +pub const EPROTO: c_int = 0x47; +pub const EPROTONOSUPPORT: c_int = 0x5d; +pub const EPROTOTYPE: c_int = 0x5b; +pub const EREMCHG: c_int = 0x4e; +pub const EREMOTE: c_int = 0x42; +pub const EREMOTEIO: c_int = 0x79; +pub const ERESTART: c_int = 0x55; +pub const ERFKILL: c_int = 0x84; +pub const ESHUTDOWN: c_int = 0x6c; +pub const ESOCKTNOSUPPORT: c_int = 0x5e; +pub const ESRMNT: c_int = 0x45; +pub const ESTALE: c_int = 0x74; +pub const ESTRPIPE: c_int = 0x56; +pub const ETIME: c_int = 0x3e; +pub const ETIMEDOUT: c_int = 0x6e; +pub const ETOOMANYREFS: c_int = 0x6d; +pub const EUCLEAN: c_int = 0x75; +pub const EUNATCH: c_int = 0x31; +pub const EUSERS: c_int = 0x57; +pub const EXFULL: c_int = 0x36; +pub const FF1: c_int = 0x8000; +pub const FFDLY: c_int = 0x8000; +pub const FLUSHO: crate::tcflag_t = 0x1000; +pub const F_GETLK: c_int = 0x5; +pub const F_SETLK: c_int = 0x6; +pub const F_SETLKW: c_int = 0x7; +pub const HUPCL: crate::tcflag_t = 0x400; +pub const ICANON: crate::tcflag_t = 0x2; +pub const IEXTEN: crate::tcflag_t = 0x8000; +pub const ISIG: crate::tcflag_t = 0x1; +pub const IXOFF: crate::tcflag_t = 0x1000; +pub const IXON: crate::tcflag_t = 0x400; +pub const MAP_ANON: c_int = 0x20; +pub const MAP_ANONYMOUS: c_int = 0x20; +pub const MAP_DENYWRITE: c_int = 0x800; +pub const MAP_EXECUTABLE: c_int = 0x1000; +pub const MAP_GROWSDOWN: c_int = 0x100; +pub const MAP_LOCKED: c_int = 0x2000; +pub const MAP_NONBLOCK: c_int = 0x10000; +pub const MAP_NORESERVE: c_int = 0x4000; +pub const MAP_POPULATE: c_int = 0x8000; +pub const MAP_STACK: c_int = 0x20000; +pub const NLDLY: crate::tcflag_t = 0x100; +pub const NOFLSH: crate::tcflag_t = 0x80; +pub const OLCUC: crate::tcflag_t = 0x2; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const O_ACCMODE: c_int = 0x3; +pub const O_APPEND: c_int = 0x400; +pub const O_ASYNC: c_int = 0o20000; +pub const O_CREAT: c_int = 0x40; +pub const O_DIRECT: c_int = 0x10000; +pub const O_DIRECTORY: c_int = 0x4000; +pub const O_DSYNC: c_int = O_SYNC; +pub const O_EXCL: c_int = 0x80; +pub const O_FSYNC: c_int = O_SYNC; +pub const O_LARGEFILE: c_int = 0o400000; +pub const O_NDELAY: c_int = O_NONBLOCK; +pub const O_NOATIME: c_int = 0o1000000; +pub const O_NOCTTY: c_int = 0x100; +pub const O_NOFOLLOW: c_int = 0x8000; +pub const O_NONBLOCK: c_int = 0x800; +pub const O_PATH: c_int = 0o10000000; +pub const O_RSYNC: c_int = O_SYNC; +pub const O_SYNC: c_int = 0o10000; +pub const O_TRUNC: c_int = 0x200; +pub const PARENB: crate::tcflag_t = 0x100; +pub const PARODD: crate::tcflag_t = 0x200; +pub const PENDIN: crate::tcflag_t = 0x4000; +pub const POLLWRBAND: c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const PTHREAD_STACK_MIN: size_t = 16384; +pub const RTLD_GLOBAL: c_int = 0x00100; +pub const PIDFD_NONBLOCK: c_int = 0x800; // These are typed unsigned to match sigaction -pub const SA_NOCLDSTOP: ::c_ulong = 0x1; -pub const SA_NOCLDWAIT: ::c_ulong = 0x2; -pub const SA_SIGINFO: ::c_ulong = 0x4; -pub const SA_NODEFER: ::c_ulong = 0x40000000; -pub const SA_ONSTACK: ::c_ulong = 0x8000000; -pub const SA_RESETHAND: ::c_ulong = 0x80000000; -pub const SA_RESTART: ::c_ulong = 0x10000000; - -pub const SFD_CLOEXEC: ::c_int = 0x80000; -pub const SFD_NONBLOCK: ::c_int = 0x800; -pub const SIGBUS: ::c_int = 0x7; -pub const SIGCHLD: ::c_int = 0x11; -pub const SIGCONT: ::c_int = 0x12; -pub const SIGIO: ::c_int = 0x1d; -pub const SIGPROF: ::c_int = 0x1b; -pub const SIGPWR: ::c_int = 0x1e; -pub const SIGSTKFLT: ::c_int = 0x10; -pub const SIGSTKSZ: ::size_t = 8192; -pub const SIGSTOP: ::c_int = 0x13; -pub const SIGSYS: ::c_int = 0x1f; -pub const SIGTSTP: ::c_int = 0x14; -pub const SIGTTIN: ::c_int = 0x15; -pub const SIGTTOU: ::c_int = 0x16; -pub const SIGURG: ::c_int = 0x17; -pub const SIGUSR1: ::c_int = 0xa; -pub const SIGUSR2: ::c_int = 0xc; -pub const SIGVTALRM: ::c_int = 0x1a; -pub const SIGWINCH: ::c_int = 0x1c; -pub const SIGXCPU: ::c_int = 0x18; -pub const SIGXFSZ: ::c_int = 0x19; -pub const SIG_BLOCK: ::c_int = 0; -pub const SIG_SETMASK: ::c_int = 0x2; -pub const SIG_UNBLOCK: ::c_int = 0x1; -pub const SOCK_DGRAM: ::c_int = 0x2; -pub const SOCK_NONBLOCK: ::c_int = 0o0004000; -pub const SOCK_SEQPACKET: ::c_int = 0x5; -pub const SOCK_STREAM: ::c_int = 0x1; - -pub const TAB1: ::c_int = 0x800; -pub const TAB2: ::c_int = 0x1000; -pub const TAB3: ::c_int = 0x1800; -pub const TABDLY: ::c_int = 0x1800; -pub const TCSADRAIN: ::c_int = 0x1; -pub const TCSAFLUSH: ::c_int = 0x2; -pub const TCSANOW: ::c_int = 0; -pub const TOSTOP: ::tcflag_t = 0x100; +pub const SA_NOCLDSTOP: c_ulong = 0x1; +pub const SA_NOCLDWAIT: c_ulong = 0x2; +pub const SA_SIGINFO: c_ulong = 0x4; +pub const SA_NODEFER: c_ulong = 0x40000000; +pub const SA_ONSTACK: c_ulong = 0x8000000; +pub const SA_RESETHAND: c_ulong = 0x80000000; +pub const SA_RESTART: c_ulong = 0x10000000; + +pub const SFD_CLOEXEC: c_int = 0x80000; +pub const SFD_NONBLOCK: c_int = 0x800; +pub const SIGBUS: c_int = 0x7; +pub const SIGCHLD: c_int = 0x11; +pub const SIGCONT: c_int = 0x12; +pub const SIGIO: c_int = 0x1d; +pub const SIGPROF: c_int = 0x1b; +pub const SIGPWR: c_int = 0x1e; +pub const SIGSTKFLT: c_int = 0x10; +pub const SIGSTKSZ: size_t = 8192; +pub const SIGSTOP: c_int = 0x13; +pub const SIGSYS: c_int = 0x1f; +pub const SIGTSTP: c_int = 0x14; +pub const SIGTTIN: c_int = 0x15; +pub const SIGTTOU: c_int = 0x16; +pub const SIGURG: c_int = 0x17; +pub const SIGUSR1: c_int = 0xa; +pub const SIGUSR2: c_int = 0xc; +pub const SIGVTALRM: c_int = 0x1a; +pub const SIGWINCH: c_int = 0x1c; +pub const SIGXCPU: c_int = 0x18; +pub const SIGXFSZ: c_int = 0x19; +pub const SIG_BLOCK: c_int = 0; +pub const SIG_SETMASK: c_int = 0x2; +pub const SIG_UNBLOCK: c_int = 0x1; +pub const SOCK_DGRAM: c_int = 0x2; +pub const SOCK_NONBLOCK: c_int = 0o0004000; +pub const SOCK_SEQPACKET: c_int = 0x5; +pub const SOCK_STREAM: c_int = 0x1; + +pub const TAB1: c_int = 0x800; +pub const TAB2: c_int = 0x1000; +pub const TAB3: c_int = 0x1800; +pub const TABDLY: c_int = 0x1800; +pub const TCSADRAIN: c_int = 0x1; +pub const TCSAFLUSH: c_int = 0x2; +pub const TCSANOW: c_int = 0; +pub const TOSTOP: crate::tcflag_t = 0x100; pub const VDISCARD: usize = 0xd; pub const VEOF: usize = 0x4; pub const VEOL: usize = 0xb; @@ -534,391 +536,391 @@ pub const VSTART: usize = 0x8; pub const VSTOP: usize = 0x9; pub const VSUSP: usize = 0xa; pub const VSWTC: usize = 0x7; -pub const VT1: ::c_int = 0x4000; -pub const VTDLY: ::c_int = 0x4000; +pub const VT1: c_int = 0x4000; +pub const VTDLY: c_int = 0x4000; pub const VTIME: usize = 0x5; pub const VWERASE: usize = 0xe; -pub const XTABS: ::tcflag_t = 0x1800; +pub const XTABS: crate::tcflag_t = 0x1800; -pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MADV_SOFT_OFFLINE: c_int = 101; // Syscall table is copied from src/unix/notbsd/linux/musl/b32/arm.rs -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_pause: ::c_long = 29; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_setresgid: ::c_long = 170; -pub const SYS_getresgid: ::c_long = 171; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_chown: ::c_long = 182; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_ugetrlimit: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_lchown32: ::c_long = 198; -pub const SYS_getuid32: ::c_long = 199; -pub const SYS_getgid32: ::c_long = 200; -pub const SYS_geteuid32: ::c_long = 201; -pub const SYS_getegid32: ::c_long = 202; -pub const SYS_setreuid32: ::c_long = 203; -pub const SYS_setregid32: ::c_long = 204; -pub const SYS_getgroups32: ::c_long = 205; -pub const SYS_setgroups32: ::c_long = 206; -pub const SYS_fchown32: ::c_long = 207; -pub const SYS_setresuid32: ::c_long = 208; -pub const SYS_getresuid32: ::c_long = 209; -pub const SYS_setresgid32: ::c_long = 210; -pub const SYS_getresgid32: ::c_long = 211; -pub const SYS_chown32: ::c_long = 212; -pub const SYS_setuid32: ::c_long = 213; -pub const SYS_setgid32: ::c_long = 214; -pub const SYS_setfsuid32: ::c_long = 215; -pub const SYS_setfsgid32: ::c_long = 216; -pub const SYS_getdents64: ::c_long = 217; -pub const SYS_pivot_root: ::c_long = 218; -pub const SYS_mincore: ::c_long = 219; -pub const SYS_madvise: ::c_long = 220; -pub const SYS_fcntl64: ::c_long = 221; -pub const SYS_gettid: ::c_long = 224; -pub const SYS_readahead: ::c_long = 225; -pub const SYS_setxattr: ::c_long = 226; -pub const SYS_lsetxattr: ::c_long = 227; -pub const SYS_fsetxattr: ::c_long = 228; -pub const SYS_getxattr: ::c_long = 229; -pub const SYS_lgetxattr: ::c_long = 230; -pub const SYS_fgetxattr: ::c_long = 231; -pub const SYS_listxattr: ::c_long = 232; -pub const SYS_llistxattr: ::c_long = 233; -pub const SYS_flistxattr: ::c_long = 234; -pub const SYS_removexattr: ::c_long = 235; -pub const SYS_lremovexattr: ::c_long = 236; -pub const SYS_fremovexattr: ::c_long = 237; -pub const SYS_tkill: ::c_long = 238; -pub const SYS_sendfile64: ::c_long = 239; -pub const SYS_futex: ::c_long = 240; -pub const SYS_sched_setaffinity: ::c_long = 241; -pub const SYS_sched_getaffinity: ::c_long = 242; -pub const SYS_io_setup: ::c_long = 243; -pub const SYS_io_destroy: ::c_long = 244; -pub const SYS_io_getevents: ::c_long = 245; -pub const SYS_io_submit: ::c_long = 246; -pub const SYS_io_cancel: ::c_long = 247; -pub const SYS_exit_group: ::c_long = 248; -pub const SYS_lookup_dcookie: ::c_long = 249; -pub const SYS_epoll_create: ::c_long = 250; -pub const SYS_epoll_ctl: ::c_long = 251; -pub const SYS_epoll_wait: ::c_long = 252; -pub const SYS_remap_file_pages: ::c_long = 253; -pub const SYS_set_tid_address: ::c_long = 256; -pub const SYS_timer_create: ::c_long = 257; -pub const SYS_timer_settime: ::c_long = 258; -pub const SYS_timer_gettime: ::c_long = 259; -pub const SYS_timer_getoverrun: ::c_long = 260; -pub const SYS_timer_delete: ::c_long = 261; -pub const SYS_clock_settime: ::c_long = 262; -pub const SYS_clock_gettime: ::c_long = 263; -pub const SYS_clock_getres: ::c_long = 264; -pub const SYS_clock_nanosleep: ::c_long = 265; -pub const SYS_statfs64: ::c_long = 266; -pub const SYS_fstatfs64: ::c_long = 267; -pub const SYS_tgkill: ::c_long = 268; -pub const SYS_utimes: ::c_long = 269; -pub const SYS_pciconfig_iobase: ::c_long = 271; -pub const SYS_pciconfig_read: ::c_long = 272; -pub const SYS_pciconfig_write: ::c_long = 273; -pub const SYS_mq_open: ::c_long = 274; -pub const SYS_mq_unlink: ::c_long = 275; -pub const SYS_mq_timedsend: ::c_long = 276; -pub const SYS_mq_timedreceive: ::c_long = 277; -pub const SYS_mq_notify: ::c_long = 278; -pub const SYS_mq_getsetattr: ::c_long = 279; -pub const SYS_waitid: ::c_long = 280; -pub const SYS_socket: ::c_long = 281; -pub const SYS_bind: ::c_long = 282; -pub const SYS_connect: ::c_long = 283; -pub const SYS_listen: ::c_long = 284; -pub const SYS_accept: ::c_long = 285; -pub const SYS_getsockname: ::c_long = 286; -pub const SYS_getpeername: ::c_long = 287; -pub const SYS_socketpair: ::c_long = 288; -pub const SYS_send: ::c_long = 289; -pub const SYS_sendto: ::c_long = 290; -pub const SYS_recv: ::c_long = 291; -pub const SYS_recvfrom: ::c_long = 292; -pub const SYS_shutdown: ::c_long = 293; -pub const SYS_setsockopt: ::c_long = 294; -pub const SYS_getsockopt: ::c_long = 295; -pub const SYS_sendmsg: ::c_long = 296; -pub const SYS_recvmsg: ::c_long = 297; -pub const SYS_semop: ::c_long = 298; -pub const SYS_semget: ::c_long = 299; -pub const SYS_semctl: ::c_long = 300; -pub const SYS_msgsnd: ::c_long = 301; -pub const SYS_msgrcv: ::c_long = 302; -pub const SYS_msgget: ::c_long = 303; -pub const SYS_msgctl: ::c_long = 304; -pub const SYS_shmat: ::c_long = 305; -pub const SYS_shmdt: ::c_long = 306; -pub const SYS_shmget: ::c_long = 307; -pub const SYS_shmctl: ::c_long = 308; -pub const SYS_add_key: ::c_long = 309; -pub const SYS_request_key: ::c_long = 310; -pub const SYS_keyctl: ::c_long = 311; -pub const SYS_semtimedop: ::c_long = 312; -pub const SYS_vserver: ::c_long = 313; -pub const SYS_ioprio_set: ::c_long = 314; -pub const SYS_ioprio_get: ::c_long = 315; -pub const SYS_inotify_init: ::c_long = 316; -pub const SYS_inotify_add_watch: ::c_long = 317; -pub const SYS_inotify_rm_watch: ::c_long = 318; -pub const SYS_mbind: ::c_long = 319; -pub const SYS_get_mempolicy: ::c_long = 320; -pub const SYS_set_mempolicy: ::c_long = 321; -pub const SYS_openat: ::c_long = 322; -pub const SYS_mkdirat: ::c_long = 323; -pub const SYS_mknodat: ::c_long = 324; -pub const SYS_fchownat: ::c_long = 325; -pub const SYS_futimesat: ::c_long = 326; -pub const SYS_fstatat64: ::c_long = 327; -pub const SYS_unlinkat: ::c_long = 328; -pub const SYS_renameat: ::c_long = 329; -pub const SYS_linkat: ::c_long = 330; -pub const SYS_symlinkat: ::c_long = 331; -pub const SYS_readlinkat: ::c_long = 332; -pub const SYS_fchmodat: ::c_long = 333; -pub const SYS_faccessat: ::c_long = 334; -pub const SYS_pselect6: ::c_long = 335; -pub const SYS_ppoll: ::c_long = 336; -pub const SYS_unshare: ::c_long = 337; -pub const SYS_set_robust_list: ::c_long = 338; -pub const SYS_get_robust_list: ::c_long = 339; -pub const SYS_splice: ::c_long = 340; -pub const SYS_tee: ::c_long = 342; -pub const SYS_vmsplice: ::c_long = 343; -pub const SYS_move_pages: ::c_long = 344; -pub const SYS_getcpu: ::c_long = 345; -pub const SYS_epoll_pwait: ::c_long = 346; -pub const SYS_kexec_load: ::c_long = 347; -pub const SYS_utimensat: ::c_long = 348; -pub const SYS_signalfd: ::c_long = 349; -pub const SYS_timerfd_create: ::c_long = 350; -pub const SYS_eventfd: ::c_long = 351; -pub const SYS_fallocate: ::c_long = 352; -pub const SYS_timerfd_settime: ::c_long = 353; -pub const SYS_timerfd_gettime: ::c_long = 354; -pub const SYS_signalfd4: ::c_long = 355; -pub const SYS_eventfd2: ::c_long = 356; -pub const SYS_epoll_create1: ::c_long = 357; -pub const SYS_dup3: ::c_long = 358; -pub const SYS_pipe2: ::c_long = 359; -pub const SYS_inotify_init1: ::c_long = 360; -pub const SYS_preadv: ::c_long = 361; -pub const SYS_pwritev: ::c_long = 362; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 363; -pub const SYS_perf_event_open: ::c_long = 364; -pub const SYS_recvmmsg: ::c_long = 365; -pub const SYS_accept4: ::c_long = 366; -pub const SYS_fanotify_init: ::c_long = 367; -pub const SYS_fanotify_mark: ::c_long = 368; -pub const SYS_prlimit64: ::c_long = 369; -pub const SYS_name_to_handle_at: ::c_long = 370; -pub const SYS_open_by_handle_at: ::c_long = 371; -pub const SYS_clock_adjtime: ::c_long = 372; -pub const SYS_syncfs: ::c_long = 373; -pub const SYS_sendmmsg: ::c_long = 374; -pub const SYS_setns: ::c_long = 375; -pub const SYS_process_vm_readv: ::c_long = 376; -pub const SYS_process_vm_writev: ::c_long = 377; -pub const SYS_kcmp: ::c_long = 378; -pub const SYS_finit_module: ::c_long = 379; -pub const SYS_sched_setattr: ::c_long = 380; -pub const SYS_sched_getattr: ::c_long = 381; -pub const SYS_renameat2: ::c_long = 382; -pub const SYS_seccomp: ::c_long = 383; -pub const SYS_getrandom: ::c_long = 384; -pub const SYS_memfd_create: ::c_long = 385; -pub const SYS_bpf: ::c_long = 386; -pub const SYS_execveat: ::c_long = 387; -pub const SYS_userfaultfd: ::c_long = 388; -pub const SYS_membarrier: ::c_long = 389; -pub const SYS_mlock2: ::c_long = 390; -pub const SYS_copy_file_range: ::c_long = 391; -pub const SYS_preadv2: ::c_long = 392; -pub const SYS_pwritev2: ::c_long = 393; -pub const SYS_pkey_mprotect: ::c_long = 394; -pub const SYS_pkey_alloc: ::c_long = 395; -pub const SYS_pkey_free: ::c_long = 396; +pub const SYS_restart_syscall: c_long = 0; +pub const SYS_exit: c_long = 1; +pub const SYS_fork: c_long = 2; +pub const SYS_read: c_long = 3; +pub const SYS_write: c_long = 4; +pub const SYS_open: c_long = 5; +pub const SYS_close: c_long = 6; +pub const SYS_creat: c_long = 8; +pub const SYS_link: c_long = 9; +pub const SYS_unlink: c_long = 10; +pub const SYS_execve: c_long = 11; +pub const SYS_chdir: c_long = 12; +pub const SYS_mknod: c_long = 14; +pub const SYS_chmod: c_long = 15; +pub const SYS_lchown: c_long = 16; +pub const SYS_lseek: c_long = 19; +pub const SYS_getpid: c_long = 20; +pub const SYS_mount: c_long = 21; +pub const SYS_setuid: c_long = 23; +pub const SYS_getuid: c_long = 24; +pub const SYS_ptrace: c_long = 26; +pub const SYS_pause: c_long = 29; +pub const SYS_access: c_long = 33; +pub const SYS_nice: c_long = 34; +pub const SYS_sync: c_long = 36; +pub const SYS_kill: c_long = 37; +pub const SYS_rename: c_long = 38; +pub const SYS_mkdir: c_long = 39; +pub const SYS_rmdir: c_long = 40; +pub const SYS_dup: c_long = 41; +pub const SYS_pipe: c_long = 42; +pub const SYS_times: c_long = 43; +pub const SYS_brk: c_long = 45; +pub const SYS_setgid: c_long = 46; +pub const SYS_getgid: c_long = 47; +pub const SYS_geteuid: c_long = 49; +pub const SYS_getegid: c_long = 50; +pub const SYS_acct: c_long = 51; +pub const SYS_umount2: c_long = 52; +pub const SYS_ioctl: c_long = 54; +pub const SYS_fcntl: c_long = 55; +pub const SYS_setpgid: c_long = 57; +pub const SYS_umask: c_long = 60; +pub const SYS_chroot: c_long = 61; +pub const SYS_ustat: c_long = 62; +pub const SYS_dup2: c_long = 63; +pub const SYS_getppid: c_long = 64; +pub const SYS_getpgrp: c_long = 65; +pub const SYS_setsid: c_long = 66; +pub const SYS_sigaction: c_long = 67; +pub const SYS_setreuid: c_long = 70; +pub const SYS_setregid: c_long = 71; +pub const SYS_sigsuspend: c_long = 72; +pub const SYS_sigpending: c_long = 73; +pub const SYS_sethostname: c_long = 74; +pub const SYS_setrlimit: c_long = 75; +pub const SYS_getrusage: c_long = 77; +pub const SYS_gettimeofday: c_long = 78; +pub const SYS_settimeofday: c_long = 79; +pub const SYS_getgroups: c_long = 80; +pub const SYS_setgroups: c_long = 81; +pub const SYS_symlink: c_long = 83; +pub const SYS_readlink: c_long = 85; +pub const SYS_uselib: c_long = 86; +pub const SYS_swapon: c_long = 87; +pub const SYS_reboot: c_long = 88; +pub const SYS_munmap: c_long = 91; +pub const SYS_truncate: c_long = 92; +pub const SYS_ftruncate: c_long = 93; +pub const SYS_fchmod: c_long = 94; +pub const SYS_fchown: c_long = 95; +pub const SYS_getpriority: c_long = 96; +pub const SYS_setpriority: c_long = 97; +pub const SYS_statfs: c_long = 99; +pub const SYS_fstatfs: c_long = 100; +pub const SYS_syslog: c_long = 103; +pub const SYS_setitimer: c_long = 104; +pub const SYS_getitimer: c_long = 105; +pub const SYS_stat: c_long = 106; +pub const SYS_lstat: c_long = 107; +pub const SYS_fstat: c_long = 108; +pub const SYS_vhangup: c_long = 111; +pub const SYS_wait4: c_long = 114; +pub const SYS_swapoff: c_long = 115; +pub const SYS_sysinfo: c_long = 116; +pub const SYS_fsync: c_long = 118; +pub const SYS_sigreturn: c_long = 119; +pub const SYS_clone: c_long = 120; +pub const SYS_setdomainname: c_long = 121; +pub const SYS_uname: c_long = 122; +pub const SYS_adjtimex: c_long = 124; +pub const SYS_mprotect: c_long = 125; +pub const SYS_sigprocmask: c_long = 126; +pub const SYS_init_module: c_long = 128; +pub const SYS_delete_module: c_long = 129; +pub const SYS_quotactl: c_long = 131; +pub const SYS_getpgid: c_long = 132; +pub const SYS_fchdir: c_long = 133; +pub const SYS_bdflush: c_long = 134; +pub const SYS_sysfs: c_long = 135; +pub const SYS_personality: c_long = 136; +pub const SYS_setfsuid: c_long = 138; +pub const SYS_setfsgid: c_long = 139; +pub const SYS__llseek: c_long = 140; +pub const SYS_getdents: c_long = 141; +pub const SYS__newselect: c_long = 142; +pub const SYS_flock: c_long = 143; +pub const SYS_msync: c_long = 144; +pub const SYS_readv: c_long = 145; +pub const SYS_writev: c_long = 146; +pub const SYS_getsid: c_long = 147; +pub const SYS_fdatasync: c_long = 148; +pub const SYS__sysctl: c_long = 149; +pub const SYS_mlock: c_long = 150; +pub const SYS_munlock: c_long = 151; +pub const SYS_mlockall: c_long = 152; +pub const SYS_munlockall: c_long = 153; +pub const SYS_sched_setparam: c_long = 154; +pub const SYS_sched_getparam: c_long = 155; +pub const SYS_sched_setscheduler: c_long = 156; +pub const SYS_sched_getscheduler: c_long = 157; +pub const SYS_sched_yield: c_long = 158; +pub const SYS_sched_get_priority_max: c_long = 159; +pub const SYS_sched_get_priority_min: c_long = 160; +pub const SYS_sched_rr_get_interval: c_long = 161; +pub const SYS_nanosleep: c_long = 162; +pub const SYS_mremap: c_long = 163; +pub const SYS_setresuid: c_long = 164; +pub const SYS_getresuid: c_long = 165; +pub const SYS_poll: c_long = 168; +pub const SYS_nfsservctl: c_long = 169; +pub const SYS_setresgid: c_long = 170; +pub const SYS_getresgid: c_long = 171; +pub const SYS_prctl: c_long = 172; +pub const SYS_rt_sigreturn: c_long = 173; +pub const SYS_rt_sigaction: c_long = 174; +pub const SYS_rt_sigprocmask: c_long = 175; +pub const SYS_rt_sigpending: c_long = 176; +pub const SYS_rt_sigtimedwait: c_long = 177; +pub const SYS_rt_sigqueueinfo: c_long = 178; +pub const SYS_rt_sigsuspend: c_long = 179; +pub const SYS_pread64: c_long = 180; +pub const SYS_pwrite64: c_long = 181; +pub const SYS_chown: c_long = 182; +pub const SYS_getcwd: c_long = 183; +pub const SYS_capget: c_long = 184; +pub const SYS_capset: c_long = 185; +pub const SYS_sigaltstack: c_long = 186; +pub const SYS_sendfile: c_long = 187; +pub const SYS_vfork: c_long = 190; +pub const SYS_ugetrlimit: c_long = 191; +pub const SYS_mmap2: c_long = 192; +pub const SYS_truncate64: c_long = 193; +pub const SYS_ftruncate64: c_long = 194; +pub const SYS_stat64: c_long = 195; +pub const SYS_lstat64: c_long = 196; +pub const SYS_fstat64: c_long = 197; +pub const SYS_lchown32: c_long = 198; +pub const SYS_getuid32: c_long = 199; +pub const SYS_getgid32: c_long = 200; +pub const SYS_geteuid32: c_long = 201; +pub const SYS_getegid32: c_long = 202; +pub const SYS_setreuid32: c_long = 203; +pub const SYS_setregid32: c_long = 204; +pub const SYS_getgroups32: c_long = 205; +pub const SYS_setgroups32: c_long = 206; +pub const SYS_fchown32: c_long = 207; +pub const SYS_setresuid32: c_long = 208; +pub const SYS_getresuid32: c_long = 209; +pub const SYS_setresgid32: c_long = 210; +pub const SYS_getresgid32: c_long = 211; +pub const SYS_chown32: c_long = 212; +pub const SYS_setuid32: c_long = 213; +pub const SYS_setgid32: c_long = 214; +pub const SYS_setfsuid32: c_long = 215; +pub const SYS_setfsgid32: c_long = 216; +pub const SYS_getdents64: c_long = 217; +pub const SYS_pivot_root: c_long = 218; +pub const SYS_mincore: c_long = 219; +pub const SYS_madvise: c_long = 220; +pub const SYS_fcntl64: c_long = 221; +pub const SYS_gettid: c_long = 224; +pub const SYS_readahead: c_long = 225; +pub const SYS_setxattr: c_long = 226; +pub const SYS_lsetxattr: c_long = 227; +pub const SYS_fsetxattr: c_long = 228; +pub const SYS_getxattr: c_long = 229; +pub const SYS_lgetxattr: c_long = 230; +pub const SYS_fgetxattr: c_long = 231; +pub const SYS_listxattr: c_long = 232; +pub const SYS_llistxattr: c_long = 233; +pub const SYS_flistxattr: c_long = 234; +pub const SYS_removexattr: c_long = 235; +pub const SYS_lremovexattr: c_long = 236; +pub const SYS_fremovexattr: c_long = 237; +pub const SYS_tkill: c_long = 238; +pub const SYS_sendfile64: c_long = 239; +pub const SYS_futex: c_long = 240; +pub const SYS_sched_setaffinity: c_long = 241; +pub const SYS_sched_getaffinity: c_long = 242; +pub const SYS_io_setup: c_long = 243; +pub const SYS_io_destroy: c_long = 244; +pub const SYS_io_getevents: c_long = 245; +pub const SYS_io_submit: c_long = 246; +pub const SYS_io_cancel: c_long = 247; +pub const SYS_exit_group: c_long = 248; +pub const SYS_lookup_dcookie: c_long = 249; +pub const SYS_epoll_create: c_long = 250; +pub const SYS_epoll_ctl: c_long = 251; +pub const SYS_epoll_wait: c_long = 252; +pub const SYS_remap_file_pages: c_long = 253; +pub const SYS_set_tid_address: c_long = 256; +pub const SYS_timer_create: c_long = 257; +pub const SYS_timer_settime: c_long = 258; +pub const SYS_timer_gettime: c_long = 259; +pub const SYS_timer_getoverrun: c_long = 260; +pub const SYS_timer_delete: c_long = 261; +pub const SYS_clock_settime: c_long = 262; +pub const SYS_clock_gettime: c_long = 263; +pub const SYS_clock_getres: c_long = 264; +pub const SYS_clock_nanosleep: c_long = 265; +pub const SYS_statfs64: c_long = 266; +pub const SYS_fstatfs64: c_long = 267; +pub const SYS_tgkill: c_long = 268; +pub const SYS_utimes: c_long = 269; +pub const SYS_pciconfig_iobase: c_long = 271; +pub const SYS_pciconfig_read: c_long = 272; +pub const SYS_pciconfig_write: c_long = 273; +pub const SYS_mq_open: c_long = 274; +pub const SYS_mq_unlink: c_long = 275; +pub const SYS_mq_timedsend: c_long = 276; +pub const SYS_mq_timedreceive: c_long = 277; +pub const SYS_mq_notify: c_long = 278; +pub const SYS_mq_getsetattr: c_long = 279; +pub const SYS_waitid: c_long = 280; +pub const SYS_socket: c_long = 281; +pub const SYS_bind: c_long = 282; +pub const SYS_connect: c_long = 283; +pub const SYS_listen: c_long = 284; +pub const SYS_accept: c_long = 285; +pub const SYS_getsockname: c_long = 286; +pub const SYS_getpeername: c_long = 287; +pub const SYS_socketpair: c_long = 288; +pub const SYS_send: c_long = 289; +pub const SYS_sendto: c_long = 290; +pub const SYS_recv: c_long = 291; +pub const SYS_recvfrom: c_long = 292; +pub const SYS_shutdown: c_long = 293; +pub const SYS_setsockopt: c_long = 294; +pub const SYS_getsockopt: c_long = 295; +pub const SYS_sendmsg: c_long = 296; +pub const SYS_recvmsg: c_long = 297; +pub const SYS_semop: c_long = 298; +pub const SYS_semget: c_long = 299; +pub const SYS_semctl: c_long = 300; +pub const SYS_msgsnd: c_long = 301; +pub const SYS_msgrcv: c_long = 302; +pub const SYS_msgget: c_long = 303; +pub const SYS_msgctl: c_long = 304; +pub const SYS_shmat: c_long = 305; +pub const SYS_shmdt: c_long = 306; +pub const SYS_shmget: c_long = 307; +pub const SYS_shmctl: c_long = 308; +pub const SYS_add_key: c_long = 309; +pub const SYS_request_key: c_long = 310; +pub const SYS_keyctl: c_long = 311; +pub const SYS_semtimedop: c_long = 312; +pub const SYS_vserver: c_long = 313; +pub const SYS_ioprio_set: c_long = 314; +pub const SYS_ioprio_get: c_long = 315; +pub const SYS_inotify_init: c_long = 316; +pub const SYS_inotify_add_watch: c_long = 317; +pub const SYS_inotify_rm_watch: c_long = 318; +pub const SYS_mbind: c_long = 319; +pub const SYS_get_mempolicy: c_long = 320; +pub const SYS_set_mempolicy: c_long = 321; +pub const SYS_openat: c_long = 322; +pub const SYS_mkdirat: c_long = 323; +pub const SYS_mknodat: c_long = 324; +pub const SYS_fchownat: c_long = 325; +pub const SYS_futimesat: c_long = 326; +pub const SYS_fstatat64: c_long = 327; +pub const SYS_unlinkat: c_long = 328; +pub const SYS_renameat: c_long = 329; +pub const SYS_linkat: c_long = 330; +pub const SYS_symlinkat: c_long = 331; +pub const SYS_readlinkat: c_long = 332; +pub const SYS_fchmodat: c_long = 333; +pub const SYS_faccessat: c_long = 334; +pub const SYS_pselect6: c_long = 335; +pub const SYS_ppoll: c_long = 336; +pub const SYS_unshare: c_long = 337; +pub const SYS_set_robust_list: c_long = 338; +pub const SYS_get_robust_list: c_long = 339; +pub const SYS_splice: c_long = 340; +pub const SYS_tee: c_long = 342; +pub const SYS_vmsplice: c_long = 343; +pub const SYS_move_pages: c_long = 344; +pub const SYS_getcpu: c_long = 345; +pub const SYS_epoll_pwait: c_long = 346; +pub const SYS_kexec_load: c_long = 347; +pub const SYS_utimensat: c_long = 348; +pub const SYS_signalfd: c_long = 349; +pub const SYS_timerfd_create: c_long = 350; +pub const SYS_eventfd: c_long = 351; +pub const SYS_fallocate: c_long = 352; +pub const SYS_timerfd_settime: c_long = 353; +pub const SYS_timerfd_gettime: c_long = 354; +pub const SYS_signalfd4: c_long = 355; +pub const SYS_eventfd2: c_long = 356; +pub const SYS_epoll_create1: c_long = 357; +pub const SYS_dup3: c_long = 358; +pub const SYS_pipe2: c_long = 359; +pub const SYS_inotify_init1: c_long = 360; +pub const SYS_preadv: c_long = 361; +pub const SYS_pwritev: c_long = 362; +pub const SYS_rt_tgsigqueueinfo: c_long = 363; +pub const SYS_perf_event_open: c_long = 364; +pub const SYS_recvmmsg: c_long = 365; +pub const SYS_accept4: c_long = 366; +pub const SYS_fanotify_init: c_long = 367; +pub const SYS_fanotify_mark: c_long = 368; +pub const SYS_prlimit64: c_long = 369; +pub const SYS_name_to_handle_at: c_long = 370; +pub const SYS_open_by_handle_at: c_long = 371; +pub const SYS_clock_adjtime: c_long = 372; +pub const SYS_syncfs: c_long = 373; +pub const SYS_sendmmsg: c_long = 374; +pub const SYS_setns: c_long = 375; +pub const SYS_process_vm_readv: c_long = 376; +pub const SYS_process_vm_writev: c_long = 377; +pub const SYS_kcmp: c_long = 378; +pub const SYS_finit_module: c_long = 379; +pub const SYS_sched_setattr: c_long = 380; +pub const SYS_sched_getattr: c_long = 381; +pub const SYS_renameat2: c_long = 382; +pub const SYS_seccomp: c_long = 383; +pub const SYS_getrandom: c_long = 384; +pub const SYS_memfd_create: c_long = 385; +pub const SYS_bpf: c_long = 386; +pub const SYS_execveat: c_long = 387; +pub const SYS_userfaultfd: c_long = 388; +pub const SYS_membarrier: c_long = 389; +pub const SYS_mlock2: c_long = 390; +pub const SYS_copy_file_range: c_long = 391; +pub const SYS_preadv2: c_long = 392; +pub const SYS_pwritev2: c_long = 393; +pub const SYS_pkey_mprotect: c_long = 394; +pub const SYS_pkey_alloc: c_long = 395; +pub const SYS_pkey_free: c_long = 396; // FIXME: should be a `c_long` too, but a bug slipped in. -pub const SYS_statx: ::c_int = 397; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_statx: c_int = 397; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; diff --git a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs index 7141bd57ecbaa..dced826fc9130 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs @@ -1,3 +1,5 @@ +use crate::{c_int, c_longlong, c_short, c_uint, c_ulonglong, c_ushort, c_void, off64_t, size_t}; + pub type c_char = i8; pub type c_long = i32; pub type c_ulong = u32; @@ -10,74 +12,74 @@ pub type ino_t = u32; pub type blkcnt_t = i32; pub type blksize_t = i32; pub type nlink_t = u32; -pub type fsblkcnt_t = ::c_ulong; -pub type fsfilcnt_t = ::c_ulong; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; +pub type fsblkcnt_t = c_ulong; +pub type fsfilcnt_t = c_ulong; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; pub type fsblkcnt64_t = u64; pub type fsfilcnt64_t = u64; s! { pub struct stat { - pub st_dev: ::dev_t, - st_pad1: [::c_long; 2], - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_pad2: [::c_long; 1], - pub st_size: ::off_t, - st_pad3: ::c_long, - 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_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - st_pad5: [::c_long; 14], + pub st_dev: crate::dev_t, + st_pad1: [c_long; 2], + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_pad2: [c_long; 1], + pub st_size: off_t, + st_pad3: c_long, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + st_pad5: [c_long; 14], } pub struct stat64 { - pub st_dev: ::dev_t, - st_pad1: [::c_long; 2], - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - st_pad2: [::c_long; 2], - pub st_size: ::off64_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_blksize: ::blksize_t, - st_pad3: ::c_long, - pub st_blocks: ::blkcnt64_t, - st_pad5: [::c_long; 14], + pub st_dev: crate::dev_t, + st_pad1: [c_long; 2], + pub st_ino: crate::ino64_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + st_pad2: [c_long; 2], + pub st_size: off64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_blksize: crate::blksize_t, + st_pad3: c_long, + pub st_blocks: crate::blkcnt64_t, + st_pad5: [c_long; 14], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_favail: ::fsfilcnt64_t, - pub f_fsid: ::c_ulong, - pub __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub __f_spare: [::c_int; 6], + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt64_t, + pub f_bfree: crate::fsblkcnt64_t, + pub f_bavail: crate::fsblkcnt64_t, + pub f_files: crate::fsfilcnt64_t, + pub f_ffree: crate::fsfilcnt64_t, + pub f_favail: crate::fsfilcnt64_t, + pub f_fsid: c_ulong, + pub __f_unused: c_int, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + pub __f_spare: [c_int; 6], } pub struct pthread_attr_t { @@ -85,174 +87,174 @@ s! { } pub struct sigaction { - pub sa_flags: ::c_uint, - pub sa_sigaction: ::sighandler_t, + pub sa_flags: c_uint, + pub sa_sigaction: crate::sighandler_t, pub sa_mask: sigset_t, - _restorer: *mut ::c_void, + _restorer: *mut c_void, } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, + pub ss_sp: *mut c_void, + pub ss_size: size_t, + pub ss_flags: c_int, } pub struct sigset_t { - __val: [::c_ulong; 4], + __val: [c_ulong; 4], } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - pub _pad: [::c_int; 29], + pub si_signo: c_int, + pub si_code: c_int, + pub si_errno: c_int, + pub _pad: [c_int; 29], } pub struct glob64_t { - pub gl_pathc: ::size_t, - pub gl_pathv: *mut *mut ::c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, + pub gl_pathc: size_t, + pub gl_pathv: *mut *mut c_char, + pub gl_offs: size_t, + pub gl_flags: c_int, - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, + __unused1: *mut c_void, + __unused2: *mut c_void, + __unused3: *mut c_void, + __unused4: *mut c_void, + __unused5: *mut c_void, } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_uint, - pub __seq: ::c_ushort, - __pad1: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: c_uint, + pub __seq: c_ushort, + __pad1: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __unused4: c_ulong, + __unused5: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, + pub msg_perm: crate::ipc_perm, #[cfg(target_endian = "big")] - __glibc_reserved1: ::c_ulong, - pub msg_stime: ::time_t, + __glibc_reserved1: c_ulong, + pub msg_stime: crate::time_t, #[cfg(target_endian = "little")] - __glibc_reserved1: ::c_ulong, + __glibc_reserved1: c_ulong, #[cfg(target_endian = "big")] - __glibc_reserved2: ::c_ulong, - pub msg_rtime: ::time_t, + __glibc_reserved2: c_ulong, + pub msg_rtime: crate::time_t, #[cfg(target_endian = "little")] - __glibc_reserved2: ::c_ulong, + __glibc_reserved2: c_ulong, #[cfg(target_endian = "big")] - __glibc_reserved3: ::c_ulong, - pub msg_ctime: ::time_t, + __glibc_reserved3: c_ulong, + pub msg_ctime: crate::time_t, #[cfg(target_endian = "little")] - __glibc_reserved3: ::c_ulong, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, + __glibc_reserved3: c_ulong, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __glibc_reserved4: c_ulong, + __glibc_reserved5: c_ulong, } pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_frsize: ::c_long, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_files: ::fsblkcnt_t, - pub f_ffree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_fsid: ::fsid_t, + pub f_type: c_long, + pub f_bsize: c_long, + pub f_frsize: c_long, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_files: crate::fsblkcnt_t, + pub f_ffree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_fsid: crate::fsid_t, - pub f_namelen: ::c_long, - f_spare: [::c_long; 6], + pub f_namelen: c_long, + f_spare: [c_long; 6], } pub struct statfs64 { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_frsize: ::c_long, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_files: ::fsblkcnt64_t, - pub f_ffree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 5], + pub f_type: c_long, + pub f_bsize: c_long, + pub f_frsize: c_long, + pub f_blocks: crate::fsblkcnt64_t, + pub f_bfree: crate::fsblkcnt64_t, + pub f_files: crate::fsblkcnt64_t, + pub f_ffree: crate::fsblkcnt64_t, + pub f_bavail: crate::fsblkcnt64_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_long, + pub f_flags: c_long, + pub f_spare: [c_long; 5], } pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::size_t, - pub msg_flags: ::c_int, + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: c_int, + pub msg_control: *mut c_void, + pub msg_controllen: size_t, + pub msg_flags: c_int, } pub struct cmsghdr { - pub cmsg_len: ::size_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub cmsg_len: size_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; crate::NCCS], } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_sysid: ::c_long, - pub l_pid: ::pid_t, - pad: [::c_long; 4], + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_sysid: c_long, + pub l_pid: crate::pid_t, + pad: [c_long; 4], } pub struct sysinfo { - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 8], + pub uptime: c_long, + pub loads: [c_ulong; 3], + pub totalram: c_ulong, + pub freeram: c_ulong, + pub sharedram: c_ulong, + pub bufferram: c_ulong, + pub totalswap: c_ulong, + pub freeswap: c_ulong, + pub procs: c_ushort, + pub pad: c_ushort, + pub totalhigh: c_ulong, + pub freehigh: c_ulong, + pub mem_unit: c_uint, + pub _f: [c_char; 8], } // FIXME(1.0): this is actually a union @@ -260,9 +262,9 @@ s! { #[cfg_attr(target_pointer_width = "64", repr(align(8)))] pub struct sem_t { #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], + __size: [c_char; 16], #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], + __size: [c_char; 32], } } @@ -275,418 +277,418 @@ pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const SYS_syscall: ::c_long = 4000 + 0; -pub const SYS_exit: ::c_long = 4000 + 1; -pub const SYS_fork: ::c_long = 4000 + 2; -pub const SYS_read: ::c_long = 4000 + 3; -pub const SYS_write: ::c_long = 4000 + 4; -pub const SYS_open: ::c_long = 4000 + 5; -pub const SYS_close: ::c_long = 4000 + 6; -pub const SYS_waitpid: ::c_long = 4000 + 7; -pub const SYS_creat: ::c_long = 4000 + 8; -pub const SYS_link: ::c_long = 4000 + 9; -pub const SYS_unlink: ::c_long = 4000 + 10; -pub const SYS_execve: ::c_long = 4000 + 11; -pub const SYS_chdir: ::c_long = 4000 + 12; -pub const SYS_time: ::c_long = 4000 + 13; -pub const SYS_mknod: ::c_long = 4000 + 14; -pub const SYS_chmod: ::c_long = 4000 + 15; -pub const SYS_lchown: ::c_long = 4000 + 16; -pub const SYS_break: ::c_long = 4000 + 17; -pub const SYS_lseek: ::c_long = 4000 + 19; -pub const SYS_getpid: ::c_long = 4000 + 20; -pub const SYS_mount: ::c_long = 4000 + 21; -pub const SYS_umount: ::c_long = 4000 + 22; -pub const SYS_setuid: ::c_long = 4000 + 23; -pub const SYS_getuid: ::c_long = 4000 + 24; -pub const SYS_stime: ::c_long = 4000 + 25; -pub const SYS_ptrace: ::c_long = 4000 + 26; -pub const SYS_alarm: ::c_long = 4000 + 27; -pub const SYS_pause: ::c_long = 4000 + 29; -pub const SYS_utime: ::c_long = 4000 + 30; -pub const SYS_stty: ::c_long = 4000 + 31; -pub const SYS_gtty: ::c_long = 4000 + 32; -pub const SYS_access: ::c_long = 4000 + 33; -pub const SYS_nice: ::c_long = 4000 + 34; -pub const SYS_ftime: ::c_long = 4000 + 35; -pub const SYS_sync: ::c_long = 4000 + 36; -pub const SYS_kill: ::c_long = 4000 + 37; -pub const SYS_rename: ::c_long = 4000 + 38; -pub const SYS_mkdir: ::c_long = 4000 + 39; -pub const SYS_rmdir: ::c_long = 4000 + 40; -pub const SYS_dup: ::c_long = 4000 + 41; -pub const SYS_pipe: ::c_long = 4000 + 42; -pub const SYS_times: ::c_long = 4000 + 43; -pub const SYS_prof: ::c_long = 4000 + 44; -pub const SYS_brk: ::c_long = 4000 + 45; -pub const SYS_setgid: ::c_long = 4000 + 46; -pub const SYS_getgid: ::c_long = 4000 + 47; -pub const SYS_signal: ::c_long = 4000 + 48; -pub const SYS_geteuid: ::c_long = 4000 + 49; -pub const SYS_getegid: ::c_long = 4000 + 50; -pub const SYS_acct: ::c_long = 4000 + 51; -pub const SYS_umount2: ::c_long = 4000 + 52; -pub const SYS_lock: ::c_long = 4000 + 53; -pub const SYS_ioctl: ::c_long = 4000 + 54; -pub const SYS_fcntl: ::c_long = 4000 + 55; -pub const SYS_mpx: ::c_long = 4000 + 56; -pub const SYS_setpgid: ::c_long = 4000 + 57; -pub const SYS_ulimit: ::c_long = 4000 + 58; -pub const SYS_umask: ::c_long = 4000 + 60; -pub const SYS_chroot: ::c_long = 4000 + 61; -pub const SYS_ustat: ::c_long = 4000 + 62; -pub const SYS_dup2: ::c_long = 4000 + 63; -pub const SYS_getppid: ::c_long = 4000 + 64; -pub const SYS_getpgrp: ::c_long = 4000 + 65; -pub const SYS_setsid: ::c_long = 4000 + 66; -pub const SYS_sigaction: ::c_long = 4000 + 67; -pub const SYS_sgetmask: ::c_long = 4000 + 68; -pub const SYS_ssetmask: ::c_long = 4000 + 69; -pub const SYS_setreuid: ::c_long = 4000 + 70; -pub const SYS_setregid: ::c_long = 4000 + 71; -pub const SYS_sigsuspend: ::c_long = 4000 + 72; -pub const SYS_sigpending: ::c_long = 4000 + 73; -pub const SYS_sethostname: ::c_long = 4000 + 74; -pub const SYS_setrlimit: ::c_long = 4000 + 75; -pub const SYS_getrlimit: ::c_long = 4000 + 76; -pub const SYS_getrusage: ::c_long = 4000 + 77; -pub const SYS_gettimeofday: ::c_long = 4000 + 78; -pub const SYS_settimeofday: ::c_long = 4000 + 79; -pub const SYS_getgroups: ::c_long = 4000 + 80; -pub const SYS_setgroups: ::c_long = 4000 + 81; -pub const SYS_symlink: ::c_long = 4000 + 83; -pub const SYS_readlink: ::c_long = 4000 + 85; -pub const SYS_uselib: ::c_long = 4000 + 86; -pub const SYS_swapon: ::c_long = 4000 + 87; -pub const SYS_reboot: ::c_long = 4000 + 88; -pub const SYS_readdir: ::c_long = 4000 + 89; -pub const SYS_mmap: ::c_long = 4000 + 90; -pub const SYS_munmap: ::c_long = 4000 + 91; -pub const SYS_truncate: ::c_long = 4000 + 92; -pub const SYS_ftruncate: ::c_long = 4000 + 93; -pub const SYS_fchmod: ::c_long = 4000 + 94; -pub const SYS_fchown: ::c_long = 4000 + 95; -pub const SYS_getpriority: ::c_long = 4000 + 96; -pub const SYS_setpriority: ::c_long = 4000 + 97; -pub const SYS_profil: ::c_long = 4000 + 98; -pub const SYS_statfs: ::c_long = 4000 + 99; -pub const SYS_fstatfs: ::c_long = 4000 + 100; -pub const SYS_ioperm: ::c_long = 4000 + 101; -pub const SYS_socketcall: ::c_long = 4000 + 102; -pub const SYS_syslog: ::c_long = 4000 + 103; -pub const SYS_setitimer: ::c_long = 4000 + 104; -pub const SYS_getitimer: ::c_long = 4000 + 105; -pub const SYS_stat: ::c_long = 4000 + 106; -pub const SYS_lstat: ::c_long = 4000 + 107; -pub const SYS_fstat: ::c_long = 4000 + 108; -pub const SYS_iopl: ::c_long = 4000 + 110; -pub const SYS_vhangup: ::c_long = 4000 + 111; -pub const SYS_idle: ::c_long = 4000 + 112; -pub const SYS_vm86: ::c_long = 4000 + 113; -pub const SYS_wait4: ::c_long = 4000 + 114; -pub const SYS_swapoff: ::c_long = 4000 + 115; -pub const SYS_sysinfo: ::c_long = 4000 + 116; -pub const SYS_ipc: ::c_long = 4000 + 117; -pub const SYS_fsync: ::c_long = 4000 + 118; -pub const SYS_sigreturn: ::c_long = 4000 + 119; -pub const SYS_clone: ::c_long = 4000 + 120; -pub const SYS_setdomainname: ::c_long = 4000 + 121; -pub const SYS_uname: ::c_long = 4000 + 122; -pub const SYS_modify_ldt: ::c_long = 4000 + 123; -pub const SYS_adjtimex: ::c_long = 4000 + 124; -pub const SYS_mprotect: ::c_long = 4000 + 125; -pub const SYS_sigprocmask: ::c_long = 4000 + 126; -pub const SYS_create_module: ::c_long = 4000 + 127; -pub const SYS_init_module: ::c_long = 4000 + 128; -pub const SYS_delete_module: ::c_long = 4000 + 129; -pub const SYS_get_kernel_syms: ::c_long = 4000 + 130; -pub const SYS_quotactl: ::c_long = 4000 + 131; -pub const SYS_getpgid: ::c_long = 4000 + 132; -pub const SYS_fchdir: ::c_long = 4000 + 133; -pub const SYS_bdflush: ::c_long = 4000 + 134; -pub const SYS_sysfs: ::c_long = 4000 + 135; -pub const SYS_personality: ::c_long = 4000 + 136; -pub const SYS_afs_syscall: ::c_long = 4000 + 137; -pub const SYS_setfsuid: ::c_long = 4000 + 138; -pub const SYS_setfsgid: ::c_long = 4000 + 139; -pub const SYS__llseek: ::c_long = 4000 + 140; -pub const SYS_getdents: ::c_long = 4000 + 141; -pub const SYS__newselect: ::c_long = 4000 + 142; -pub const SYS_flock: ::c_long = 4000 + 143; -pub const SYS_msync: ::c_long = 4000 + 144; -pub const SYS_readv: ::c_long = 4000 + 145; -pub const SYS_writev: ::c_long = 4000 + 146; -pub const SYS_cacheflush: ::c_long = 4000 + 147; -pub const SYS_cachectl: ::c_long = 4000 + 148; -pub const SYS_sysmips: ::c_long = 4000 + 149; -pub const SYS_getsid: ::c_long = 4000 + 151; -pub const SYS_fdatasync: ::c_long = 4000 + 152; -pub const SYS__sysctl: ::c_long = 4000 + 153; -pub const SYS_mlock: ::c_long = 4000 + 154; -pub const SYS_munlock: ::c_long = 4000 + 155; -pub const SYS_mlockall: ::c_long = 4000 + 156; -pub const SYS_munlockall: ::c_long = 4000 + 157; -pub const SYS_sched_setparam: ::c_long = 4000 + 158; -pub const SYS_sched_getparam: ::c_long = 4000 + 159; -pub const SYS_sched_setscheduler: ::c_long = 4000 + 160; -pub const SYS_sched_getscheduler: ::c_long = 4000 + 161; -pub const SYS_sched_yield: ::c_long = 4000 + 162; -pub const SYS_sched_get_priority_max: ::c_long = 4000 + 163; -pub const SYS_sched_get_priority_min: ::c_long = 4000 + 164; -pub const SYS_sched_rr_get_interval: ::c_long = 4000 + 165; -pub const SYS_nanosleep: ::c_long = 4000 + 166; -pub const SYS_mremap: ::c_long = 4000 + 167; -pub const SYS_accept: ::c_long = 4000 + 168; -pub const SYS_bind: ::c_long = 4000 + 169; -pub const SYS_connect: ::c_long = 4000 + 170; -pub const SYS_getpeername: ::c_long = 4000 + 171; -pub const SYS_getsockname: ::c_long = 4000 + 172; -pub const SYS_getsockopt: ::c_long = 4000 + 173; -pub const SYS_listen: ::c_long = 4000 + 174; -pub const SYS_recv: ::c_long = 4000 + 175; -pub const SYS_recvfrom: ::c_long = 4000 + 176; -pub const SYS_recvmsg: ::c_long = 4000 + 177; -pub const SYS_send: ::c_long = 4000 + 178; -pub const SYS_sendmsg: ::c_long = 4000 + 179; -pub const SYS_sendto: ::c_long = 4000 + 180; -pub const SYS_setsockopt: ::c_long = 4000 + 181; -pub const SYS_shutdown: ::c_long = 4000 + 182; -pub const SYS_socket: ::c_long = 4000 + 183; -pub const SYS_socketpair: ::c_long = 4000 + 184; -pub const SYS_setresuid: ::c_long = 4000 + 185; -pub const SYS_getresuid: ::c_long = 4000 + 186; -pub const SYS_query_module: ::c_long = 4000 + 187; -pub const SYS_poll: ::c_long = 4000 + 188; -pub const SYS_nfsservctl: ::c_long = 4000 + 189; -pub const SYS_setresgid: ::c_long = 4000 + 190; -pub const SYS_getresgid: ::c_long = 4000 + 191; -pub const SYS_prctl: ::c_long = 4000 + 192; -pub const SYS_rt_sigreturn: ::c_long = 4000 + 193; -pub const SYS_rt_sigaction: ::c_long = 4000 + 194; -pub const SYS_rt_sigprocmask: ::c_long = 4000 + 195; -pub const SYS_rt_sigpending: ::c_long = 4000 + 196; -pub const SYS_rt_sigtimedwait: ::c_long = 4000 + 197; -pub const SYS_rt_sigqueueinfo: ::c_long = 4000 + 198; -pub const SYS_rt_sigsuspend: ::c_long = 4000 + 199; -pub const SYS_pread64: ::c_long = 4000 + 200; -pub const SYS_pwrite64: ::c_long = 4000 + 201; -pub const SYS_chown: ::c_long = 4000 + 202; -pub const SYS_getcwd: ::c_long = 4000 + 203; -pub const SYS_capget: ::c_long = 4000 + 204; -pub const SYS_capset: ::c_long = 4000 + 205; -pub const SYS_sigaltstack: ::c_long = 4000 + 206; -pub const SYS_sendfile: ::c_long = 4000 + 207; -pub const SYS_getpmsg: ::c_long = 4000 + 208; -pub const SYS_putpmsg: ::c_long = 4000 + 209; -pub const SYS_mmap2: ::c_long = 4000 + 210; -pub const SYS_truncate64: ::c_long = 4000 + 211; -pub const SYS_ftruncate64: ::c_long = 4000 + 212; -pub const SYS_stat64: ::c_long = 4000 + 213; -pub const SYS_lstat64: ::c_long = 4000 + 214; -pub const SYS_fstat64: ::c_long = 4000 + 215; -pub const SYS_pivot_root: ::c_long = 4000 + 216; -pub const SYS_mincore: ::c_long = 4000 + 217; -pub const SYS_madvise: ::c_long = 4000 + 218; -pub const SYS_getdents64: ::c_long = 4000 + 219; -pub const SYS_fcntl64: ::c_long = 4000 + 220; -pub const SYS_gettid: ::c_long = 4000 + 222; -pub const SYS_readahead: ::c_long = 4000 + 223; -pub const SYS_setxattr: ::c_long = 4000 + 224; -pub const SYS_lsetxattr: ::c_long = 4000 + 225; -pub const SYS_fsetxattr: ::c_long = 4000 + 226; -pub const SYS_getxattr: ::c_long = 4000 + 227; -pub const SYS_lgetxattr: ::c_long = 4000 + 228; -pub const SYS_fgetxattr: ::c_long = 4000 + 229; -pub const SYS_listxattr: ::c_long = 4000 + 230; -pub const SYS_llistxattr: ::c_long = 4000 + 231; -pub const SYS_flistxattr: ::c_long = 4000 + 232; -pub const SYS_removexattr: ::c_long = 4000 + 233; -pub const SYS_lremovexattr: ::c_long = 4000 + 234; -pub const SYS_fremovexattr: ::c_long = 4000 + 235; -pub const SYS_tkill: ::c_long = 4000 + 236; -pub const SYS_sendfile64: ::c_long = 4000 + 237; -pub const SYS_futex: ::c_long = 4000 + 238; -pub const SYS_sched_setaffinity: ::c_long = 4000 + 239; -pub const SYS_sched_getaffinity: ::c_long = 4000 + 240; -pub const SYS_io_setup: ::c_long = 4000 + 241; -pub const SYS_io_destroy: ::c_long = 4000 + 242; -pub const SYS_io_getevents: ::c_long = 4000 + 243; -pub const SYS_io_submit: ::c_long = 4000 + 244; -pub const SYS_io_cancel: ::c_long = 4000 + 245; -pub const SYS_exit_group: ::c_long = 4000 + 246; -pub const SYS_lookup_dcookie: ::c_long = 4000 + 247; -pub const SYS_epoll_create: ::c_long = 4000 + 248; -pub const SYS_epoll_ctl: ::c_long = 4000 + 249; -pub const SYS_epoll_wait: ::c_long = 4000 + 250; -pub const SYS_remap_file_pages: ::c_long = 4000 + 251; -pub const SYS_set_tid_address: ::c_long = 4000 + 252; -pub const SYS_restart_syscall: ::c_long = 4000 + 253; -pub const SYS_fadvise64: ::c_long = 4000 + 254; -pub const SYS_statfs64: ::c_long = 4000 + 255; -pub const SYS_fstatfs64: ::c_long = 4000 + 256; -pub const SYS_timer_create: ::c_long = 4000 + 257; -pub const SYS_timer_settime: ::c_long = 4000 + 258; -pub const SYS_timer_gettime: ::c_long = 4000 + 259; -pub const SYS_timer_getoverrun: ::c_long = 4000 + 260; -pub const SYS_timer_delete: ::c_long = 4000 + 261; -pub const SYS_clock_settime: ::c_long = 4000 + 262; -pub const SYS_clock_gettime: ::c_long = 4000 + 263; -pub const SYS_clock_getres: ::c_long = 4000 + 264; -pub const SYS_clock_nanosleep: ::c_long = 4000 + 265; -pub const SYS_tgkill: ::c_long = 4000 + 266; -pub const SYS_utimes: ::c_long = 4000 + 267; -pub const SYS_mbind: ::c_long = 4000 + 268; -pub const SYS_get_mempolicy: ::c_long = 4000 + 269; -pub const SYS_set_mempolicy: ::c_long = 4000 + 270; -pub const SYS_mq_open: ::c_long = 4000 + 271; -pub const SYS_mq_unlink: ::c_long = 4000 + 272; -pub const SYS_mq_timedsend: ::c_long = 4000 + 273; -pub const SYS_mq_timedreceive: ::c_long = 4000 + 274; -pub const SYS_mq_notify: ::c_long = 4000 + 275; -pub const SYS_mq_getsetattr: ::c_long = 4000 + 276; -pub const SYS_vserver: ::c_long = 4000 + 277; -pub const SYS_waitid: ::c_long = 4000 + 278; -/* pub const SYS_sys_setaltroot: ::c_long = 4000 + 279; */ -pub const SYS_add_key: ::c_long = 4000 + 280; -pub const SYS_request_key: ::c_long = 4000 + 281; -pub const SYS_keyctl: ::c_long = 4000 + 282; -pub const SYS_set_thread_area: ::c_long = 4000 + 283; -pub const SYS_inotify_init: ::c_long = 4000 + 284; -pub const SYS_inotify_add_watch: ::c_long = 4000 + 285; -pub const SYS_inotify_rm_watch: ::c_long = 4000 + 286; -pub const SYS_migrate_pages: ::c_long = 4000 + 287; -pub const SYS_openat: ::c_long = 4000 + 288; -pub const SYS_mkdirat: ::c_long = 4000 + 289; -pub const SYS_mknodat: ::c_long = 4000 + 290; -pub const SYS_fchownat: ::c_long = 4000 + 291; -pub const SYS_futimesat: ::c_long = 4000 + 292; -pub const SYS_fstatat64: ::c_long = 4000 + 293; -pub const SYS_unlinkat: ::c_long = 4000 + 294; -pub const SYS_renameat: ::c_long = 4000 + 295; -pub const SYS_linkat: ::c_long = 4000 + 296; -pub const SYS_symlinkat: ::c_long = 4000 + 297; -pub const SYS_readlinkat: ::c_long = 4000 + 298; -pub const SYS_fchmodat: ::c_long = 4000 + 299; -pub const SYS_faccessat: ::c_long = 4000 + 300; -pub const SYS_pselect6: ::c_long = 4000 + 301; -pub const SYS_ppoll: ::c_long = 4000 + 302; -pub const SYS_unshare: ::c_long = 4000 + 303; -pub const SYS_splice: ::c_long = 4000 + 304; -pub const SYS_sync_file_range: ::c_long = 4000 + 305; -pub const SYS_tee: ::c_long = 4000 + 306; -pub const SYS_vmsplice: ::c_long = 4000 + 307; -pub const SYS_move_pages: ::c_long = 4000 + 308; -pub const SYS_set_robust_list: ::c_long = 4000 + 309; -pub const SYS_get_robust_list: ::c_long = 4000 + 310; -pub const SYS_kexec_load: ::c_long = 4000 + 311; -pub const SYS_getcpu: ::c_long = 4000 + 312; -pub const SYS_epoll_pwait: ::c_long = 4000 + 313; -pub const SYS_ioprio_set: ::c_long = 4000 + 314; -pub const SYS_ioprio_get: ::c_long = 4000 + 315; -pub const SYS_utimensat: ::c_long = 4000 + 316; -pub const SYS_signalfd: ::c_long = 4000 + 317; -pub const SYS_timerfd: ::c_long = 4000 + 318; -pub const SYS_eventfd: ::c_long = 4000 + 319; -pub const SYS_fallocate: ::c_long = 4000 + 320; -pub const SYS_timerfd_create: ::c_long = 4000 + 321; -pub const SYS_timerfd_gettime: ::c_long = 4000 + 322; -pub const SYS_timerfd_settime: ::c_long = 4000 + 323; -pub const SYS_signalfd4: ::c_long = 4000 + 324; -pub const SYS_eventfd2: ::c_long = 4000 + 325; -pub const SYS_epoll_create1: ::c_long = 4000 + 326; -pub const SYS_dup3: ::c_long = 4000 + 327; -pub const SYS_pipe2: ::c_long = 4000 + 328; -pub const SYS_inotify_init1: ::c_long = 4000 + 329; -pub const SYS_preadv: ::c_long = 4000 + 330; -pub const SYS_pwritev: ::c_long = 4000 + 331; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 4000 + 332; -pub const SYS_perf_event_open: ::c_long = 4000 + 333; -pub const SYS_accept4: ::c_long = 4000 + 334; -pub const SYS_recvmmsg: ::c_long = 4000 + 335; -pub const SYS_fanotify_init: ::c_long = 4000 + 336; -pub const SYS_fanotify_mark: ::c_long = 4000 + 337; -pub const SYS_prlimit64: ::c_long = 4000 + 338; -pub const SYS_name_to_handle_at: ::c_long = 4000 + 339; -pub const SYS_open_by_handle_at: ::c_long = 4000 + 340; -pub const SYS_clock_adjtime: ::c_long = 4000 + 341; -pub const SYS_syncfs: ::c_long = 4000 + 342; -pub const SYS_sendmmsg: ::c_long = 4000 + 343; -pub const SYS_setns: ::c_long = 4000 + 344; -pub const SYS_process_vm_readv: ::c_long = 4000 + 345; -pub const SYS_process_vm_writev: ::c_long = 4000 + 346; -pub const SYS_kcmp: ::c_long = 4000 + 347; -pub const SYS_finit_module: ::c_long = 4000 + 348; -pub const SYS_sched_setattr: ::c_long = 4000 + 349; -pub const SYS_sched_getattr: ::c_long = 4000 + 350; -pub const SYS_renameat2: ::c_long = 4000 + 351; -pub const SYS_seccomp: ::c_long = 4000 + 352; -pub const SYS_getrandom: ::c_long = 4000 + 353; -pub const SYS_memfd_create: ::c_long = 4000 + 354; -pub const SYS_bpf: ::c_long = 4000 + 355; -pub const SYS_execveat: ::c_long = 4000 + 356; -pub const SYS_userfaultfd: ::c_long = 4000 + 357; -pub const SYS_membarrier: ::c_long = 4000 + 358; -pub const SYS_mlock2: ::c_long = 4000 + 359; -pub const SYS_copy_file_range: ::c_long = 4000 + 360; -pub const SYS_preadv2: ::c_long = 4000 + 361; -pub const SYS_pwritev2: ::c_long = 4000 + 362; -pub const SYS_pkey_mprotect: ::c_long = 4000 + 363; -pub const SYS_pkey_alloc: ::c_long = 4000 + 364; -pub const SYS_pkey_free: ::c_long = 4000 + 365; -pub const SYS_statx: ::c_long = 4000 + 366; -pub const SYS_pidfd_send_signal: ::c_long = 4000 + 424; -pub const SYS_io_uring_setup: ::c_long = 4000 + 425; -pub const SYS_io_uring_enter: ::c_long = 4000 + 426; -pub const SYS_io_uring_register: ::c_long = 4000 + 427; -pub const SYS_open_tree: ::c_long = 4000 + 428; -pub const SYS_move_mount: ::c_long = 4000 + 429; -pub const SYS_fsopen: ::c_long = 4000 + 430; -pub const SYS_fsconfig: ::c_long = 4000 + 431; -pub const SYS_fsmount: ::c_long = 4000 + 432; -pub const SYS_fspick: ::c_long = 4000 + 433; -pub const SYS_pidfd_open: ::c_long = 4000 + 434; -pub const SYS_clone3: ::c_long = 4000 + 435; -pub const SYS_close_range: ::c_long = 4000 + 436; -pub const SYS_openat2: ::c_long = 4000 + 437; -pub const SYS_pidfd_getfd: ::c_long = 4000 + 438; -pub const SYS_faccessat2: ::c_long = 4000 + 439; -pub const SYS_process_madvise: ::c_long = 4000 + 440; -pub const SYS_epoll_pwait2: ::c_long = 4000 + 441; -pub const SYS_mount_setattr: ::c_long = 4000 + 442; -pub const SYS_quotactl_fd: ::c_long = 4000 + 443; -pub const SYS_landlock_create_ruleset: ::c_long = 4000 + 444; -pub const SYS_landlock_add_rule: ::c_long = 4000 + 445; -pub const SYS_landlock_restrict_self: ::c_long = 4000 + 446; -pub const SYS_memfd_secret: ::c_long = 4000 + 447; -pub const SYS_process_mrelease: ::c_long = 4000 + 448; -pub const SYS_futex_waitv: ::c_long = 4000 + 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 4000 + 450; +pub const SYS_syscall: c_long = 4000 + 0; +pub const SYS_exit: c_long = 4000 + 1; +pub const SYS_fork: c_long = 4000 + 2; +pub const SYS_read: c_long = 4000 + 3; +pub const SYS_write: c_long = 4000 + 4; +pub const SYS_open: c_long = 4000 + 5; +pub const SYS_close: c_long = 4000 + 6; +pub const SYS_waitpid: c_long = 4000 + 7; +pub const SYS_creat: c_long = 4000 + 8; +pub const SYS_link: c_long = 4000 + 9; +pub const SYS_unlink: c_long = 4000 + 10; +pub const SYS_execve: c_long = 4000 + 11; +pub const SYS_chdir: c_long = 4000 + 12; +pub const SYS_time: c_long = 4000 + 13; +pub const SYS_mknod: c_long = 4000 + 14; +pub const SYS_chmod: c_long = 4000 + 15; +pub const SYS_lchown: c_long = 4000 + 16; +pub const SYS_break: c_long = 4000 + 17; +pub const SYS_lseek: c_long = 4000 + 19; +pub const SYS_getpid: c_long = 4000 + 20; +pub const SYS_mount: c_long = 4000 + 21; +pub const SYS_umount: c_long = 4000 + 22; +pub const SYS_setuid: c_long = 4000 + 23; +pub const SYS_getuid: c_long = 4000 + 24; +pub const SYS_stime: c_long = 4000 + 25; +pub const SYS_ptrace: c_long = 4000 + 26; +pub const SYS_alarm: c_long = 4000 + 27; +pub const SYS_pause: c_long = 4000 + 29; +pub const SYS_utime: c_long = 4000 + 30; +pub const SYS_stty: c_long = 4000 + 31; +pub const SYS_gtty: c_long = 4000 + 32; +pub const SYS_access: c_long = 4000 + 33; +pub const SYS_nice: c_long = 4000 + 34; +pub const SYS_ftime: c_long = 4000 + 35; +pub const SYS_sync: c_long = 4000 + 36; +pub const SYS_kill: c_long = 4000 + 37; +pub const SYS_rename: c_long = 4000 + 38; +pub const SYS_mkdir: c_long = 4000 + 39; +pub const SYS_rmdir: c_long = 4000 + 40; +pub const SYS_dup: c_long = 4000 + 41; +pub const SYS_pipe: c_long = 4000 + 42; +pub const SYS_times: c_long = 4000 + 43; +pub const SYS_prof: c_long = 4000 + 44; +pub const SYS_brk: c_long = 4000 + 45; +pub const SYS_setgid: c_long = 4000 + 46; +pub const SYS_getgid: c_long = 4000 + 47; +pub const SYS_signal: c_long = 4000 + 48; +pub const SYS_geteuid: c_long = 4000 + 49; +pub const SYS_getegid: c_long = 4000 + 50; +pub const SYS_acct: c_long = 4000 + 51; +pub const SYS_umount2: c_long = 4000 + 52; +pub const SYS_lock: c_long = 4000 + 53; +pub const SYS_ioctl: c_long = 4000 + 54; +pub const SYS_fcntl: c_long = 4000 + 55; +pub const SYS_mpx: c_long = 4000 + 56; +pub const SYS_setpgid: c_long = 4000 + 57; +pub const SYS_ulimit: c_long = 4000 + 58; +pub const SYS_umask: c_long = 4000 + 60; +pub const SYS_chroot: c_long = 4000 + 61; +pub const SYS_ustat: c_long = 4000 + 62; +pub const SYS_dup2: c_long = 4000 + 63; +pub const SYS_getppid: c_long = 4000 + 64; +pub const SYS_getpgrp: c_long = 4000 + 65; +pub const SYS_setsid: c_long = 4000 + 66; +pub const SYS_sigaction: c_long = 4000 + 67; +pub const SYS_sgetmask: c_long = 4000 + 68; +pub const SYS_ssetmask: c_long = 4000 + 69; +pub const SYS_setreuid: c_long = 4000 + 70; +pub const SYS_setregid: c_long = 4000 + 71; +pub const SYS_sigsuspend: c_long = 4000 + 72; +pub const SYS_sigpending: c_long = 4000 + 73; +pub const SYS_sethostname: c_long = 4000 + 74; +pub const SYS_setrlimit: c_long = 4000 + 75; +pub const SYS_getrlimit: c_long = 4000 + 76; +pub const SYS_getrusage: c_long = 4000 + 77; +pub const SYS_gettimeofday: c_long = 4000 + 78; +pub const SYS_settimeofday: c_long = 4000 + 79; +pub const SYS_getgroups: c_long = 4000 + 80; +pub const SYS_setgroups: c_long = 4000 + 81; +pub const SYS_symlink: c_long = 4000 + 83; +pub const SYS_readlink: c_long = 4000 + 85; +pub const SYS_uselib: c_long = 4000 + 86; +pub const SYS_swapon: c_long = 4000 + 87; +pub const SYS_reboot: c_long = 4000 + 88; +pub const SYS_readdir: c_long = 4000 + 89; +pub const SYS_mmap: c_long = 4000 + 90; +pub const SYS_munmap: c_long = 4000 + 91; +pub const SYS_truncate: c_long = 4000 + 92; +pub const SYS_ftruncate: c_long = 4000 + 93; +pub const SYS_fchmod: c_long = 4000 + 94; +pub const SYS_fchown: c_long = 4000 + 95; +pub const SYS_getpriority: c_long = 4000 + 96; +pub const SYS_setpriority: c_long = 4000 + 97; +pub const SYS_profil: c_long = 4000 + 98; +pub const SYS_statfs: c_long = 4000 + 99; +pub const SYS_fstatfs: c_long = 4000 + 100; +pub const SYS_ioperm: c_long = 4000 + 101; +pub const SYS_socketcall: c_long = 4000 + 102; +pub const SYS_syslog: c_long = 4000 + 103; +pub const SYS_setitimer: c_long = 4000 + 104; +pub const SYS_getitimer: c_long = 4000 + 105; +pub const SYS_stat: c_long = 4000 + 106; +pub const SYS_lstat: c_long = 4000 + 107; +pub const SYS_fstat: c_long = 4000 + 108; +pub const SYS_iopl: c_long = 4000 + 110; +pub const SYS_vhangup: c_long = 4000 + 111; +pub const SYS_idle: c_long = 4000 + 112; +pub const SYS_vm86: c_long = 4000 + 113; +pub const SYS_wait4: c_long = 4000 + 114; +pub const SYS_swapoff: c_long = 4000 + 115; +pub const SYS_sysinfo: c_long = 4000 + 116; +pub const SYS_ipc: c_long = 4000 + 117; +pub const SYS_fsync: c_long = 4000 + 118; +pub const SYS_sigreturn: c_long = 4000 + 119; +pub const SYS_clone: c_long = 4000 + 120; +pub const SYS_setdomainname: c_long = 4000 + 121; +pub const SYS_uname: c_long = 4000 + 122; +pub const SYS_modify_ldt: c_long = 4000 + 123; +pub const SYS_adjtimex: c_long = 4000 + 124; +pub const SYS_mprotect: c_long = 4000 + 125; +pub const SYS_sigprocmask: c_long = 4000 + 126; +pub const SYS_create_module: c_long = 4000 + 127; +pub const SYS_init_module: c_long = 4000 + 128; +pub const SYS_delete_module: c_long = 4000 + 129; +pub const SYS_get_kernel_syms: c_long = 4000 + 130; +pub const SYS_quotactl: c_long = 4000 + 131; +pub const SYS_getpgid: c_long = 4000 + 132; +pub const SYS_fchdir: c_long = 4000 + 133; +pub const SYS_bdflush: c_long = 4000 + 134; +pub const SYS_sysfs: c_long = 4000 + 135; +pub const SYS_personality: c_long = 4000 + 136; +pub const SYS_afs_syscall: c_long = 4000 + 137; +pub const SYS_setfsuid: c_long = 4000 + 138; +pub const SYS_setfsgid: c_long = 4000 + 139; +pub const SYS__llseek: c_long = 4000 + 140; +pub const SYS_getdents: c_long = 4000 + 141; +pub const SYS__newselect: c_long = 4000 + 142; +pub const SYS_flock: c_long = 4000 + 143; +pub const SYS_msync: c_long = 4000 + 144; +pub const SYS_readv: c_long = 4000 + 145; +pub const SYS_writev: c_long = 4000 + 146; +pub const SYS_cacheflush: c_long = 4000 + 147; +pub const SYS_cachectl: c_long = 4000 + 148; +pub const SYS_sysmips: c_long = 4000 + 149; +pub const SYS_getsid: c_long = 4000 + 151; +pub const SYS_fdatasync: c_long = 4000 + 152; +pub const SYS__sysctl: c_long = 4000 + 153; +pub const SYS_mlock: c_long = 4000 + 154; +pub const SYS_munlock: c_long = 4000 + 155; +pub const SYS_mlockall: c_long = 4000 + 156; +pub const SYS_munlockall: c_long = 4000 + 157; +pub const SYS_sched_setparam: c_long = 4000 + 158; +pub const SYS_sched_getparam: c_long = 4000 + 159; +pub const SYS_sched_setscheduler: c_long = 4000 + 160; +pub const SYS_sched_getscheduler: c_long = 4000 + 161; +pub const SYS_sched_yield: c_long = 4000 + 162; +pub const SYS_sched_get_priority_max: c_long = 4000 + 163; +pub const SYS_sched_get_priority_min: c_long = 4000 + 164; +pub const SYS_sched_rr_get_interval: c_long = 4000 + 165; +pub const SYS_nanosleep: c_long = 4000 + 166; +pub const SYS_mremap: c_long = 4000 + 167; +pub const SYS_accept: c_long = 4000 + 168; +pub const SYS_bind: c_long = 4000 + 169; +pub const SYS_connect: c_long = 4000 + 170; +pub const SYS_getpeername: c_long = 4000 + 171; +pub const SYS_getsockname: c_long = 4000 + 172; +pub const SYS_getsockopt: c_long = 4000 + 173; +pub const SYS_listen: c_long = 4000 + 174; +pub const SYS_recv: c_long = 4000 + 175; +pub const SYS_recvfrom: c_long = 4000 + 176; +pub const SYS_recvmsg: c_long = 4000 + 177; +pub const SYS_send: c_long = 4000 + 178; +pub const SYS_sendmsg: c_long = 4000 + 179; +pub const SYS_sendto: c_long = 4000 + 180; +pub const SYS_setsockopt: c_long = 4000 + 181; +pub const SYS_shutdown: c_long = 4000 + 182; +pub const SYS_socket: c_long = 4000 + 183; +pub const SYS_socketpair: c_long = 4000 + 184; +pub const SYS_setresuid: c_long = 4000 + 185; +pub const SYS_getresuid: c_long = 4000 + 186; +pub const SYS_query_module: c_long = 4000 + 187; +pub const SYS_poll: c_long = 4000 + 188; +pub const SYS_nfsservctl: c_long = 4000 + 189; +pub const SYS_setresgid: c_long = 4000 + 190; +pub const SYS_getresgid: c_long = 4000 + 191; +pub const SYS_prctl: c_long = 4000 + 192; +pub const SYS_rt_sigreturn: c_long = 4000 + 193; +pub const SYS_rt_sigaction: c_long = 4000 + 194; +pub const SYS_rt_sigprocmask: c_long = 4000 + 195; +pub const SYS_rt_sigpending: c_long = 4000 + 196; +pub const SYS_rt_sigtimedwait: c_long = 4000 + 197; +pub const SYS_rt_sigqueueinfo: c_long = 4000 + 198; +pub const SYS_rt_sigsuspend: c_long = 4000 + 199; +pub const SYS_pread64: c_long = 4000 + 200; +pub const SYS_pwrite64: c_long = 4000 + 201; +pub const SYS_chown: c_long = 4000 + 202; +pub const SYS_getcwd: c_long = 4000 + 203; +pub const SYS_capget: c_long = 4000 + 204; +pub const SYS_capset: c_long = 4000 + 205; +pub const SYS_sigaltstack: c_long = 4000 + 206; +pub const SYS_sendfile: c_long = 4000 + 207; +pub const SYS_getpmsg: c_long = 4000 + 208; +pub const SYS_putpmsg: c_long = 4000 + 209; +pub const SYS_mmap2: c_long = 4000 + 210; +pub const SYS_truncate64: c_long = 4000 + 211; +pub const SYS_ftruncate64: c_long = 4000 + 212; +pub const SYS_stat64: c_long = 4000 + 213; +pub const SYS_lstat64: c_long = 4000 + 214; +pub const SYS_fstat64: c_long = 4000 + 215; +pub const SYS_pivot_root: c_long = 4000 + 216; +pub const SYS_mincore: c_long = 4000 + 217; +pub const SYS_madvise: c_long = 4000 + 218; +pub const SYS_getdents64: c_long = 4000 + 219; +pub const SYS_fcntl64: c_long = 4000 + 220; +pub const SYS_gettid: c_long = 4000 + 222; +pub const SYS_readahead: c_long = 4000 + 223; +pub const SYS_setxattr: c_long = 4000 + 224; +pub const SYS_lsetxattr: c_long = 4000 + 225; +pub const SYS_fsetxattr: c_long = 4000 + 226; +pub const SYS_getxattr: c_long = 4000 + 227; +pub const SYS_lgetxattr: c_long = 4000 + 228; +pub const SYS_fgetxattr: c_long = 4000 + 229; +pub const SYS_listxattr: c_long = 4000 + 230; +pub const SYS_llistxattr: c_long = 4000 + 231; +pub const SYS_flistxattr: c_long = 4000 + 232; +pub const SYS_removexattr: c_long = 4000 + 233; +pub const SYS_lremovexattr: c_long = 4000 + 234; +pub const SYS_fremovexattr: c_long = 4000 + 235; +pub const SYS_tkill: c_long = 4000 + 236; +pub const SYS_sendfile64: c_long = 4000 + 237; +pub const SYS_futex: c_long = 4000 + 238; +pub const SYS_sched_setaffinity: c_long = 4000 + 239; +pub const SYS_sched_getaffinity: c_long = 4000 + 240; +pub const SYS_io_setup: c_long = 4000 + 241; +pub const SYS_io_destroy: c_long = 4000 + 242; +pub const SYS_io_getevents: c_long = 4000 + 243; +pub const SYS_io_submit: c_long = 4000 + 244; +pub const SYS_io_cancel: c_long = 4000 + 245; +pub const SYS_exit_group: c_long = 4000 + 246; +pub const SYS_lookup_dcookie: c_long = 4000 + 247; +pub const SYS_epoll_create: c_long = 4000 + 248; +pub const SYS_epoll_ctl: c_long = 4000 + 249; +pub const SYS_epoll_wait: c_long = 4000 + 250; +pub const SYS_remap_file_pages: c_long = 4000 + 251; +pub const SYS_set_tid_address: c_long = 4000 + 252; +pub const SYS_restart_syscall: c_long = 4000 + 253; +pub const SYS_fadvise64: c_long = 4000 + 254; +pub const SYS_statfs64: c_long = 4000 + 255; +pub const SYS_fstatfs64: c_long = 4000 + 256; +pub const SYS_timer_create: c_long = 4000 + 257; +pub const SYS_timer_settime: c_long = 4000 + 258; +pub const SYS_timer_gettime: c_long = 4000 + 259; +pub const SYS_timer_getoverrun: c_long = 4000 + 260; +pub const SYS_timer_delete: c_long = 4000 + 261; +pub const SYS_clock_settime: c_long = 4000 + 262; +pub const SYS_clock_gettime: c_long = 4000 + 263; +pub const SYS_clock_getres: c_long = 4000 + 264; +pub const SYS_clock_nanosleep: c_long = 4000 + 265; +pub const SYS_tgkill: c_long = 4000 + 266; +pub const SYS_utimes: c_long = 4000 + 267; +pub const SYS_mbind: c_long = 4000 + 268; +pub const SYS_get_mempolicy: c_long = 4000 + 269; +pub const SYS_set_mempolicy: c_long = 4000 + 270; +pub const SYS_mq_open: c_long = 4000 + 271; +pub const SYS_mq_unlink: c_long = 4000 + 272; +pub const SYS_mq_timedsend: c_long = 4000 + 273; +pub const SYS_mq_timedreceive: c_long = 4000 + 274; +pub const SYS_mq_notify: c_long = 4000 + 275; +pub const SYS_mq_getsetattr: c_long = 4000 + 276; +pub const SYS_vserver: c_long = 4000 + 277; +pub const SYS_waitid: c_long = 4000 + 278; +/* pub const SYS_sys_setaltroot: c_long = 4000 + 279; */ +pub const SYS_add_key: c_long = 4000 + 280; +pub const SYS_request_key: c_long = 4000 + 281; +pub const SYS_keyctl: c_long = 4000 + 282; +pub const SYS_set_thread_area: c_long = 4000 + 283; +pub const SYS_inotify_init: c_long = 4000 + 284; +pub const SYS_inotify_add_watch: c_long = 4000 + 285; +pub const SYS_inotify_rm_watch: c_long = 4000 + 286; +pub const SYS_migrate_pages: c_long = 4000 + 287; +pub const SYS_openat: c_long = 4000 + 288; +pub const SYS_mkdirat: c_long = 4000 + 289; +pub const SYS_mknodat: c_long = 4000 + 290; +pub const SYS_fchownat: c_long = 4000 + 291; +pub const SYS_futimesat: c_long = 4000 + 292; +pub const SYS_fstatat64: c_long = 4000 + 293; +pub const SYS_unlinkat: c_long = 4000 + 294; +pub const SYS_renameat: c_long = 4000 + 295; +pub const SYS_linkat: c_long = 4000 + 296; +pub const SYS_symlinkat: c_long = 4000 + 297; +pub const SYS_readlinkat: c_long = 4000 + 298; +pub const SYS_fchmodat: c_long = 4000 + 299; +pub const SYS_faccessat: c_long = 4000 + 300; +pub const SYS_pselect6: c_long = 4000 + 301; +pub const SYS_ppoll: c_long = 4000 + 302; +pub const SYS_unshare: c_long = 4000 + 303; +pub const SYS_splice: c_long = 4000 + 304; +pub const SYS_sync_file_range: c_long = 4000 + 305; +pub const SYS_tee: c_long = 4000 + 306; +pub const SYS_vmsplice: c_long = 4000 + 307; +pub const SYS_move_pages: c_long = 4000 + 308; +pub const SYS_set_robust_list: c_long = 4000 + 309; +pub const SYS_get_robust_list: c_long = 4000 + 310; +pub const SYS_kexec_load: c_long = 4000 + 311; +pub const SYS_getcpu: c_long = 4000 + 312; +pub const SYS_epoll_pwait: c_long = 4000 + 313; +pub const SYS_ioprio_set: c_long = 4000 + 314; +pub const SYS_ioprio_get: c_long = 4000 + 315; +pub const SYS_utimensat: c_long = 4000 + 316; +pub const SYS_signalfd: c_long = 4000 + 317; +pub const SYS_timerfd: c_long = 4000 + 318; +pub const SYS_eventfd: c_long = 4000 + 319; +pub const SYS_fallocate: c_long = 4000 + 320; +pub const SYS_timerfd_create: c_long = 4000 + 321; +pub const SYS_timerfd_gettime: c_long = 4000 + 322; +pub const SYS_timerfd_settime: c_long = 4000 + 323; +pub const SYS_signalfd4: c_long = 4000 + 324; +pub const SYS_eventfd2: c_long = 4000 + 325; +pub const SYS_epoll_create1: c_long = 4000 + 326; +pub const SYS_dup3: c_long = 4000 + 327; +pub const SYS_pipe2: c_long = 4000 + 328; +pub const SYS_inotify_init1: c_long = 4000 + 329; +pub const SYS_preadv: c_long = 4000 + 330; +pub const SYS_pwritev: c_long = 4000 + 331; +pub const SYS_rt_tgsigqueueinfo: c_long = 4000 + 332; +pub const SYS_perf_event_open: c_long = 4000 + 333; +pub const SYS_accept4: c_long = 4000 + 334; +pub const SYS_recvmmsg: c_long = 4000 + 335; +pub const SYS_fanotify_init: c_long = 4000 + 336; +pub const SYS_fanotify_mark: c_long = 4000 + 337; +pub const SYS_prlimit64: c_long = 4000 + 338; +pub const SYS_name_to_handle_at: c_long = 4000 + 339; +pub const SYS_open_by_handle_at: c_long = 4000 + 340; +pub const SYS_clock_adjtime: c_long = 4000 + 341; +pub const SYS_syncfs: c_long = 4000 + 342; +pub const SYS_sendmmsg: c_long = 4000 + 343; +pub const SYS_setns: c_long = 4000 + 344; +pub const SYS_process_vm_readv: c_long = 4000 + 345; +pub const SYS_process_vm_writev: c_long = 4000 + 346; +pub const SYS_kcmp: c_long = 4000 + 347; +pub const SYS_finit_module: c_long = 4000 + 348; +pub const SYS_sched_setattr: c_long = 4000 + 349; +pub const SYS_sched_getattr: c_long = 4000 + 350; +pub const SYS_renameat2: c_long = 4000 + 351; +pub const SYS_seccomp: c_long = 4000 + 352; +pub const SYS_getrandom: c_long = 4000 + 353; +pub const SYS_memfd_create: c_long = 4000 + 354; +pub const SYS_bpf: c_long = 4000 + 355; +pub const SYS_execveat: c_long = 4000 + 356; +pub const SYS_userfaultfd: c_long = 4000 + 357; +pub const SYS_membarrier: c_long = 4000 + 358; +pub const SYS_mlock2: c_long = 4000 + 359; +pub const SYS_copy_file_range: c_long = 4000 + 360; +pub const SYS_preadv2: c_long = 4000 + 361; +pub const SYS_pwritev2: c_long = 4000 + 362; +pub const SYS_pkey_mprotect: c_long = 4000 + 363; +pub const SYS_pkey_alloc: c_long = 4000 + 364; +pub const SYS_pkey_free: c_long = 4000 + 365; +pub const SYS_statx: c_long = 4000 + 366; +pub const SYS_pidfd_send_signal: c_long = 4000 + 424; +pub const SYS_io_uring_setup: c_long = 4000 + 425; +pub const SYS_io_uring_enter: c_long = 4000 + 426; +pub const SYS_io_uring_register: c_long = 4000 + 427; +pub const SYS_open_tree: c_long = 4000 + 428; +pub const SYS_move_mount: c_long = 4000 + 429; +pub const SYS_fsopen: c_long = 4000 + 430; +pub const SYS_fsconfig: c_long = 4000 + 431; +pub const SYS_fsmount: c_long = 4000 + 432; +pub const SYS_fspick: c_long = 4000 + 433; +pub const SYS_pidfd_open: c_long = 4000 + 434; +pub const SYS_clone3: c_long = 4000 + 435; +pub const SYS_close_range: c_long = 4000 + 436; +pub const SYS_openat2: c_long = 4000 + 437; +pub const SYS_pidfd_getfd: c_long = 4000 + 438; +pub const SYS_faccessat2: c_long = 4000 + 439; +pub const SYS_process_madvise: c_long = 4000 + 440; +pub const SYS_epoll_pwait2: c_long = 4000 + 441; +pub const SYS_mount_setattr: c_long = 4000 + 442; +pub const SYS_quotactl_fd: c_long = 4000 + 443; +pub const SYS_landlock_create_ruleset: c_long = 4000 + 444; +pub const SYS_landlock_add_rule: c_long = 4000 + 445; +pub const SYS_landlock_restrict_self: c_long = 4000 + 446; +pub const SYS_memfd_secret: c_long = 4000 + 447; +pub const SYS_process_mrelease: c_long = 4000 + 448; +pub const SYS_futex_waitv: c_long = 4000 + 449; +pub const SYS_set_mempolicy_home_node: c_long = 4000 + 450; #[link(name = "util")] extern "C" { pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; + name: *mut c_int, + namelen: c_int, + oldp: *mut c_void, + oldlenp: *mut size_t, + newp: *mut c_void, + newlen: size_t, + ) -> c_int; pub fn glob64( - pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, + pattern: *const c_char, + flags: c_int, + errfunc: Option c_int>, pglob: *mut glob64_t, - ) -> ::c_int; + ) -> c_int; pub fn globfree64(pglob: *mut glob64_t); pub fn pthread_attr_getaffinity_np( - attr: *const ::pthread_attr_t, - cpusetsize: ::size_t, - cpuset: *mut ::cpu_set_t, - ) -> ::c_int; + attr: *const crate::pthread_attr_t, + cpusetsize: size_t, + cpuset: *mut crate::cpu_set_t, + ) -> c_int; pub fn pthread_attr_setaffinity_np( - attr: *mut ::pthread_attr_t, - cpusetsize: ::size_t, - cpuset: *const ::cpu_set_t, - ) -> ::c_int; + attr: *mut crate::pthread_attr_t, + cpusetsize: size_t, + cpuset: *const crate::cpu_set_t, + ) -> c_int; } diff --git a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs index 3569990f5507d..de46957301023 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs @@ -1,10 +1,12 @@ +use crate::{c_int, c_uint, c_ushort, c_void, off64_t, size_t}; + pub type blkcnt_t = i64; pub type blksize_t = i64; pub type c_char = i8; pub type c_long = i64; pub type c_ulong = u64; -pub type fsblkcnt_t = ::c_ulong; -pub type fsfilcnt_t = ::c_ulong; +pub type fsblkcnt_t = c_ulong; +pub type fsfilcnt_t = c_ulong; pub type ino_t = u64; pub type nlink_t = u64; pub type off_t = i64; @@ -14,79 +16,79 @@ pub type wchar_t = i32; s! { pub struct stat { - pub st_dev: ::c_ulong, - st_pad1: [::c_long; 2], + pub st_dev: c_ulong, + st_pad1: [c_long; 2], pub st_ino: ::ino_t, pub st_mode: ::mode_t, pub st_nlink: ::nlink_t, pub st_uid: ::uid_t, pub st_gid: ::gid_t, - pub st_rdev: ::c_ulong, - st_pad2: [::c_ulong; 1], - pub st_size: ::off_t, - st_pad3: ::c_long, + pub st_rdev: c_ulong, + st_pad2: [c_ulong; 1], + pub st_size: off_t, + st_pad3: c_long, pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, + pub st_atime_nsec: c_long, pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, + pub st_mtime_nsec: c_long, pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, + pub st_ctime_nsec: c_long, pub st_blksize: ::blksize_t, - st_pad4: ::c_long, + st_pad4: c_long, pub st_blocks: ::blkcnt_t, - st_pad5: [::c_long; 7], + st_pad5: [c_long; 7], } pub struct stat64 { - pub st_dev: ::c_ulong, - st_pad1: [::c_long; 2], + pub st_dev: c_ulong, + st_pad1: [c_long; 2], pub st_ino: ::ino64_t, pub st_mode: ::mode_t, pub st_nlink: ::nlink_t, pub st_uid: ::uid_t, pub st_gid: ::gid_t, - pub st_rdev: ::c_ulong, - st_pad2: [::c_long; 2], - pub st_size: ::off64_t, + pub st_rdev: c_ulong, + st_pad2: [c_long; 2], + pub st_size: off64_t, pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, + pub st_atime_nsec: c_long, pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, + pub st_mtime_nsec: c_long, pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, + pub st_ctime_nsec: c_long, pub st_blksize: ::blksize_t, - st_pad3: ::c_long, + st_pad3: c_long, pub st_blocks: ::blkcnt64_t, - st_pad5: [::c_long; 7], + st_pad5: [c_long; 7], } pub struct pthread_attr_t { - __size: [::c_ulong; 7], + __size: [c_ulong; 7], } pub struct sigaction { - pub sa_flags: ::c_int, + pub sa_flags: c_int, pub sa_sigaction: ::sighandler_t, pub sa_mask: sigset_t, - _restorer: *mut ::c_void, + _restorer: *mut c_void, } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, + pub ss_sp: *mut c_void, + pub ss_size: size_t, + pub ss_flags: c_int, } pub struct sigset_t { - __size: [::c_ulong; 16], + __size: [c_ulong; 16], } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - _pad: ::c_int, - _pad2: [::c_long; 14], + pub si_signo: c_int, + pub si_code: c_int, + pub si_errno: c_int, + _pad: c_int, + _pad2: [c_long; 14], } pub struct ipc_perm { @@ -95,24 +97,24 @@ s! { pub gid: ::gid_t, pub cuid: ::uid_t, pub cgid: ::gid_t, - pub mode: ::c_uint, - pub __seq: ::c_ushort, - __pad1: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub mode: c_uint, + pub __seq: c_ushort, + __pad1: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } pub struct shmid_ds { pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, + pub shm_segsz: size_t, pub shm_atime: ::time_t, pub shm_dtime: ::time_t, pub shm_ctime: ::time_t, pub shm_cpid: ::pid_t, pub shm_lpid: ::pid_t, pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong, + __unused4: c_ulong, + __unused5: c_ulong, } pub struct msqid_ds { @@ -120,19 +122,19 @@ s! { pub msg_stime: ::time_t, pub msg_rtime: ::time_t, pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ulong, + __msg_cbytes: c_ulong, pub msg_qnum: ::msgqnum_t, pub msg_qbytes: ::msglen_t, pub msg_lspid: ::pid_t, pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, + __glibc_reserved4: c_ulong, + __glibc_reserved5: c_ulong, } pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_frsize: ::c_long, + pub f_type: c_long, + pub f_bsize: c_long, + pub f_frsize: c_long, pub f_blocks: ::fsblkcnt_t, pub f_bfree: ::fsblkcnt_t, pub f_files: ::fsblkcnt_t, @@ -140,24 +142,24 @@ s! { pub f_bavail: ::fsblkcnt_t, pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - f_spare: [::c_long; 6], + pub f_namelen: c_long, + f_spare: [c_long; 6], } pub struct msghdr { - pub msg_name: *mut ::c_void, + pub msg_name: *mut c_void, pub msg_namelen: ::socklen_t, pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::size_t, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::size_t, - pub msg_flags: ::c_int, + pub msg_iovlen: size_t, + pub msg_control: *mut c_void, + pub msg_controllen: size_t, + pub msg_flags: c_int, } pub struct cmsghdr { - pub cmsg_len: ::size_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub cmsg_len: size_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } pub struct termios { @@ -170,27 +172,27 @@ s! { } pub struct sysinfo { - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 0], + pub uptime: c_long, + pub loads: [c_ulong; 3], + pub totalram: c_ulong, + pub freeram: c_ulong, + pub sharedram: c_ulong, + pub bufferram: c_ulong, + pub totalswap: c_ulong, + pub freeswap: c_ulong, + pub procs: c_ushort, + pub pad: c_ushort, + pub totalhigh: c_ulong, + pub freehigh: c_ulong, + pub mem_unit: c_uint, + pub _f: [c_char; 0], } // FIXME(1.0): this is actually a union #[cfg_attr(target_pointer_width = "32", repr(align(4)))] #[cfg_attr(target_pointer_width = "64", repr(align(8)))] pub struct sem_t { - __size: [::c_char; 32], + __size: [c_char; 32], } } @@ -201,4 +203,4 @@ pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; -pub const SYS_gettid: ::c_long = 5178; // Valid for n64 +pub const SYS_gettid: c_long = 5178; // Valid for n64 diff --git a/src/unix/linux_like/linux/uclibc/mips/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mod.rs index d51d73f2944fe..488a4a499d176 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mod.rs @@ -1,301 +1,303 @@ -pub type pthread_t = ::c_ulong; +use crate::{c_int, c_short, c_uint, size_t}; -pub const SFD_CLOEXEC: ::c_int = 0x080000; +pub type pthread_t = c_ulong; + +pub const SFD_CLOEXEC: c_int = 0x080000; pub const NCCS: usize = 32; -pub const O_TRUNC: ::c_int = 512; +pub const O_TRUNC: c_int = 512; -pub const O_CLOEXEC: ::c_int = 0x80000; +pub const O_CLOEXEC: c_int = 0x80000; -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; +pub const EBFONT: c_int = 59; +pub const ENOSTR: c_int = 60; +pub const ENODATA: c_int = 61; +pub const ETIME: c_int = 62; +pub const ENOSR: c_int = 63; +pub const ENONET: c_int = 64; +pub const ENOPKG: c_int = 65; +pub const EREMOTE: c_int = 66; +pub const ENOLINK: c_int = 67; +pub const EADV: c_int = 68; +pub const ESRMNT: c_int = 69; +pub const ECOMM: c_int = 70; +pub const EPROTO: c_int = 71; +pub const EDOTDOT: c_int = 73; -pub const SA_NODEFER: ::c_uint = 0x40000000; -pub const SA_RESETHAND: ::c_uint = 0x80000000; -pub const SA_RESTART: ::c_uint = 0x10000000; -pub const SA_NOCLDSTOP: ::c_uint = 0x00000001; +pub const SA_NODEFER: c_uint = 0x40000000; +pub const SA_RESETHAND: c_uint = 0x80000000; +pub const SA_RESTART: c_uint = 0x10000000; +pub const SA_NOCLDSTOP: c_uint = 0x00000001; -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; +pub const EPOLL_CLOEXEC: c_int = 0x80000; -pub const EFD_CLOEXEC: ::c_int = 0x80000; +pub const EFD_CLOEXEC: c_int = 0x80000; -pub const TMP_MAX: ::c_uint = 238328; -pub const _SC_2_C_VERSION: ::c_int = 96; -pub const O_ACCMODE: ::c_int = 3; -pub const O_DIRECT: ::c_int = 0x8000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_NOATIME: ::c_int = 0x40000; -pub const O_PATH: ::c_int = 0o010000000; +pub const TMP_MAX: c_uint = 238328; +pub const _SC_2_C_VERSION: c_int = 96; +pub const O_ACCMODE: c_int = 3; +pub const O_DIRECT: c_int = 0x8000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_NOFOLLOW: c_int = 0x20000; +pub const O_NOATIME: c_int = 0x40000; +pub const O_PATH: c_int = 0o010000000; -pub const O_APPEND: ::c_int = 8; -pub const O_CREAT: ::c_int = 256; -pub const O_EXCL: ::c_int = 1024; -pub const O_NOCTTY: ::c_int = 2048; -pub const O_NONBLOCK: ::c_int = 128; -pub const O_SYNC: ::c_int = 0x10; -pub const O_RSYNC: ::c_int = 0x10; -pub const O_DSYNC: ::c_int = 0x10; -pub const O_FSYNC: ::c_int = 0x10; -pub const O_ASYNC: ::c_int = 0x1000; -pub const O_LARGEFILE: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x80; +pub const O_APPEND: c_int = 8; +pub const O_CREAT: c_int = 256; +pub const O_EXCL: c_int = 1024; +pub const O_NOCTTY: c_int = 2048; +pub const O_NONBLOCK: c_int = 128; +pub const O_SYNC: c_int = 0x10; +pub const O_RSYNC: c_int = 0x10; +pub const O_DSYNC: c_int = 0x10; +pub const O_FSYNC: c_int = 0x10; +pub const O_ASYNC: c_int = 0x1000; +pub const O_LARGEFILE: c_int = 0x2000; +pub const O_NDELAY: c_int = 0x80; -pub const SOCK_NONBLOCK: ::c_int = 128; -pub const PIDFD_NONBLOCK: ::c_int = 128; +pub const SOCK_NONBLOCK: c_int = 128; +pub const PIDFD_NONBLOCK: c_int = 128; -pub const EDEADLK: ::c_int = 45; -pub const ENAMETOOLONG: ::c_int = 78; -pub const ENOLCK: ::c_int = 46; -pub const ENOSYS: ::c_int = 89; -pub const ENOTEMPTY: ::c_int = 93; -pub const ELOOP: ::c_int = 90; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const ECHRNG: ::c_int = 37; -pub const EL2NSYNC: ::c_int = 38; -pub const EL3HLT: ::c_int = 39; -pub const EL3RST: ::c_int = 40; -pub const ELNRNG: ::c_int = 41; -pub const EUNATCH: ::c_int = 42; -pub const ENOCSI: ::c_int = 43; -pub const EL2HLT: ::c_int = 44; -pub const EBADE: ::c_int = 50; -pub const EBADR: ::c_int = 51; -pub const EXFULL: ::c_int = 52; -pub const FFDLY: ::c_int = 0o0100000; -pub const ENOANO: ::c_int = 53; -pub const EBADRQC: ::c_int = 54; -pub const EBADSLT: ::c_int = 55; -pub const EMULTIHOP: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 79; -pub const ENOTUNIQ: ::c_int = 80; -pub const EBADFD: ::c_int = 81; -pub const EBADMSG: ::c_int = 77; -pub const EREMCHG: ::c_int = 82; -pub const ELIBACC: ::c_int = 83; -pub const ELIBBAD: ::c_int = 84; -pub const ELIBSCN: ::c_int = 85; -pub const ELIBMAX: ::c_int = 86; -pub const ELIBEXEC: ::c_int = 87; -pub const EILSEQ: ::c_int = 88; -pub const ERESTART: ::c_int = 91; -pub const ESTRPIPE: ::c_int = 92; -pub const EUSERS: ::c_int = 94; -pub const ENOTSOCK: ::c_int = 95; -pub const EDESTADDRREQ: ::c_int = 96; -pub const EMSGSIZE: ::c_int = 97; -pub const EPROTOTYPE: ::c_int = 98; -pub const ENOPROTOOPT: ::c_int = 99; -pub const EPROTONOSUPPORT: ::c_int = 120; -pub const ESOCKTNOSUPPORT: ::c_int = 121; -pub const EOPNOTSUPP: ::c_int = 122; -pub const EPFNOSUPPORT: ::c_int = 123; -pub const EAFNOSUPPORT: ::c_int = 124; -pub const EADDRINUSE: ::c_int = 125; -pub const EADDRNOTAVAIL: ::c_int = 126; -pub const ENETDOWN: ::c_int = 127; -pub const ENETUNREACH: ::c_int = 128; -pub const ENETRESET: ::c_int = 129; -pub const ECONNABORTED: ::c_int = 130; -pub const ECONNRESET: ::c_int = 131; -pub const ENOBUFS: ::c_int = 132; -pub const EISCONN: ::c_int = 133; -pub const ENOTCONN: ::c_int = 134; -pub const ESHUTDOWN: ::c_int = 143; -pub const ETOOMANYREFS: ::c_int = 144; -pub const ETIMEDOUT: ::c_int = 145; -pub const ECONNREFUSED: ::c_int = 146; -pub const EHOSTDOWN: ::c_int = 147; -pub const EHOSTUNREACH: ::c_int = 148; -pub const EALREADY: ::c_int = 149; -pub const EINPROGRESS: ::c_int = 150; -pub const ESTALE: ::c_int = 151; -pub const EUCLEAN: ::c_int = 135; -pub const ENOTNAM: ::c_int = 137; -pub const ENAVAIL: ::c_int = 138; -pub const EISNAM: ::c_int = 139; -pub const EREMOTEIO: ::c_int = 140; -pub const EDQUOT: ::c_int = 1133; -pub const ENOMEDIUM: ::c_int = 159; -pub const EMEDIUMTYPE: ::c_int = 160; -pub const ECANCELED: ::c_int = 158; -pub const ENOKEY: ::c_int = 161; -pub const EKEYEXPIRED: ::c_int = 162; -pub const EKEYREVOKED: ::c_int = 163; -pub const EKEYREJECTED: ::c_int = 164; -pub const EOWNERDEAD: ::c_int = 165; -pub const ENOTRECOVERABLE: ::c_int = 166; -pub const ERFKILL: ::c_int = 167; +pub const EDEADLK: c_int = 45; +pub const ENAMETOOLONG: c_int = 78; +pub const ENOLCK: c_int = 46; +pub const ENOSYS: c_int = 89; +pub const ENOTEMPTY: c_int = 93; +pub const ELOOP: c_int = 90; +pub const ENOMSG: c_int = 35; +pub const EIDRM: c_int = 36; +pub const ECHRNG: c_int = 37; +pub const EL2NSYNC: c_int = 38; +pub const EL3HLT: c_int = 39; +pub const EL3RST: c_int = 40; +pub const ELNRNG: c_int = 41; +pub const EUNATCH: c_int = 42; +pub const ENOCSI: c_int = 43; +pub const EL2HLT: c_int = 44; +pub const EBADE: c_int = 50; +pub const EBADR: c_int = 51; +pub const EXFULL: c_int = 52; +pub const FFDLY: c_int = 0o0100000; +pub const ENOANO: c_int = 53; +pub const EBADRQC: c_int = 54; +pub const EBADSLT: c_int = 55; +pub const EMULTIHOP: c_int = 74; +pub const EOVERFLOW: c_int = 79; +pub const ENOTUNIQ: c_int = 80; +pub const EBADFD: c_int = 81; +pub const EBADMSG: c_int = 77; +pub const EREMCHG: c_int = 82; +pub const ELIBACC: c_int = 83; +pub const ELIBBAD: c_int = 84; +pub const ELIBSCN: c_int = 85; +pub const ELIBMAX: c_int = 86; +pub const ELIBEXEC: c_int = 87; +pub const EILSEQ: c_int = 88; +pub const ERESTART: c_int = 91; +pub const ESTRPIPE: c_int = 92; +pub const EUSERS: c_int = 94; +pub const ENOTSOCK: c_int = 95; +pub const EDESTADDRREQ: c_int = 96; +pub const EMSGSIZE: c_int = 97; +pub const EPROTOTYPE: c_int = 98; +pub const ENOPROTOOPT: c_int = 99; +pub const EPROTONOSUPPORT: c_int = 120; +pub const ESOCKTNOSUPPORT: c_int = 121; +pub const EOPNOTSUPP: c_int = 122; +pub const EPFNOSUPPORT: c_int = 123; +pub const EAFNOSUPPORT: c_int = 124; +pub const EADDRINUSE: c_int = 125; +pub const EADDRNOTAVAIL: c_int = 126; +pub const ENETDOWN: c_int = 127; +pub const ENETUNREACH: c_int = 128; +pub const ENETRESET: c_int = 129; +pub const ECONNABORTED: c_int = 130; +pub const ECONNRESET: c_int = 131; +pub const ENOBUFS: c_int = 132; +pub const EISCONN: c_int = 133; +pub const ENOTCONN: c_int = 134; +pub const ESHUTDOWN: c_int = 143; +pub const ETOOMANYREFS: c_int = 144; +pub const ETIMEDOUT: c_int = 145; +pub const ECONNREFUSED: c_int = 146; +pub const EHOSTDOWN: c_int = 147; +pub const EHOSTUNREACH: c_int = 148; +pub const EALREADY: c_int = 149; +pub const EINPROGRESS: c_int = 150; +pub const ESTALE: c_int = 151; +pub const EUCLEAN: c_int = 135; +pub const ENOTNAM: c_int = 137; +pub const ENAVAIL: c_int = 138; +pub const EISNAM: c_int = 139; +pub const EREMOTEIO: c_int = 140; +pub const EDQUOT: c_int = 1133; +pub const ENOMEDIUM: c_int = 159; +pub const EMEDIUMTYPE: c_int = 160; +pub const ECANCELED: c_int = 158; +pub const ENOKEY: c_int = 161; +pub const EKEYEXPIRED: c_int = 162; +pub const EKEYREVOKED: c_int = 163; +pub const EKEYREJECTED: c_int = 164; +pub const EOWNERDEAD: c_int = 165; +pub const ENOTRECOVERABLE: c_int = 166; +pub const ERFKILL: c_int = 167; -pub const MAP_NORESERVE: ::c_int = 0x400; -pub const MAP_ANON: ::c_int = 0x800; -pub const MAP_ANONYMOUS: ::c_int = 0x800; -pub const MAP_GROWSDOWN: ::c_int = 0x1000; -pub const MAP_DENYWRITE: ::c_int = 0x2000; -pub const MAP_EXECUTABLE: ::c_int = 0x4000; -pub const MAP_LOCKED: ::c_int = 0x8000; -pub const MAP_POPULATE: ::c_int = 0x10000; -pub const MAP_NONBLOCK: ::c_int = 0x20000; -pub const MAP_STACK: ::c_int = 0x40000; +pub const MAP_NORESERVE: c_int = 0x400; +pub const MAP_ANON: c_int = 0x800; +pub const MAP_ANONYMOUS: c_int = 0x800; +pub const MAP_GROWSDOWN: c_int = 0x1000; +pub const MAP_DENYWRITE: c_int = 0x2000; +pub const MAP_EXECUTABLE: c_int = 0x4000; +pub const MAP_LOCKED: c_int = 0x8000; +pub const MAP_POPULATE: c_int = 0x10000; +pub const MAP_NONBLOCK: c_int = 0x20000; +pub const MAP_STACK: c_int = 0x40000; -pub const NLDLY: ::tcflag_t = 0o0000400; +pub const NLDLY: crate::tcflag_t = 0o0000400; -pub const SOCK_STREAM: ::c_int = 2; -pub const SOCK_DGRAM: ::c_int = 1; -pub const SOCK_SEQPACKET: ::c_int = 5; +pub const SOCK_STREAM: c_int = 2; +pub const SOCK_DGRAM: c_int = 1; +pub const SOCK_SEQPACKET: c_int = 5; -pub const SA_ONSTACK: ::c_uint = 0x08000000; -pub const SA_SIGINFO: ::c_uint = 0x00000008; -pub const SA_NOCLDWAIT: ::c_int = 0x00010000; +pub const SA_ONSTACK: c_uint = 0x08000000; +pub const SA_SIGINFO: c_uint = 0x00000008; +pub const SA_NOCLDWAIT: c_int = 0x00010000; -pub const SIGCHLD: ::c_int = 18; -pub const SIGBUS: ::c_int = 10; -pub const SIGTTIN: ::c_int = 26; -pub const SIGTTOU: ::c_int = 27; -pub const SIGXCPU: ::c_int = 30; -pub const SIGXFSZ: ::c_int = 31; -pub const SIGVTALRM: ::c_int = 28; -pub const SIGPROF: ::c_int = 29; -pub const SIGWINCH: ::c_int = 20; -pub const SIGUSR1: ::c_int = 16; -pub const SIGUSR2: ::c_int = 17; -pub const SIGCONT: ::c_int = 25; -pub const SIGSTOP: ::c_int = 23; -pub const SIGTSTP: ::c_int = 24; -pub const SIGURG: ::c_int = 21; -pub const SIGIO: ::c_int = 22; -pub const SIGSYS: ::c_int = 12; -pub const SIGPWR: ::c_int = 19; -pub const SIG_SETMASK: ::c_int = 3; -pub const SIG_BLOCK: ::c_int = 0x1; -pub const SIG_UNBLOCK: ::c_int = 0x2; +pub const SIGCHLD: c_int = 18; +pub const SIGBUS: c_int = 10; +pub const SIGTTIN: c_int = 26; +pub const SIGTTOU: c_int = 27; +pub const SIGXCPU: c_int = 30; +pub const SIGXFSZ: c_int = 31; +pub const SIGVTALRM: c_int = 28; +pub const SIGPROF: c_int = 29; +pub const SIGWINCH: c_int = 20; +pub const SIGUSR1: c_int = 16; +pub const SIGUSR2: c_int = 17; +pub const SIGCONT: c_int = 25; +pub const SIGSTOP: c_int = 23; +pub const SIGTSTP: c_int = 24; +pub const SIGURG: c_int = 21; +pub const SIGIO: c_int = 22; +pub const SIGSYS: c_int = 12; +pub const SIGPWR: c_int = 19; +pub const SIG_SETMASK: c_int = 3; +pub const SIG_BLOCK: c_int = 0x1; +pub const SIG_UNBLOCK: c_int = 0x2; -pub const POLLWRNORM: ::c_short = 0x004; -pub const POLLWRBAND: ::c_short = 0x100; +pub const POLLWRNORM: c_short = 0x004; +pub const POLLWRBAND: c_short = 0x100; -pub const PTHREAD_STACK_MIN: ::size_t = 16384; +pub const PTHREAD_STACK_MIN: size_t = 16384; pub const VEOF: usize = 16; pub const VEOL: usize = 17; pub const VEOL2: usize = 6; pub const VMIN: usize = 4; -pub const IEXTEN: ::tcflag_t = 0x00000100; -pub const TOSTOP: ::tcflag_t = 0x00008000; -pub const FLUSHO: ::tcflag_t = 0x00002000; -pub const TCSANOW: ::c_int = 0x540e; -pub const TCSADRAIN: ::c_int = 0x540f; -pub const TCSAFLUSH: ::c_int = 0x5410; +pub const IEXTEN: crate::tcflag_t = 0x00000100; +pub const TOSTOP: crate::tcflag_t = 0x00008000; +pub const FLUSHO: crate::tcflag_t = 0x00002000; +pub const TCSANOW: c_int = 0x540e; +pub const TCSADRAIN: c_int = 0x540f; +pub const TCSAFLUSH: c_int = 0x5410; -pub const CPU_SETSIZE: ::c_int = 0x400; +pub const CPU_SETSIZE: c_int = 0x400; -pub const EFD_NONBLOCK: ::c_int = 0x80; +pub const EFD_NONBLOCK: c_int = 0x80; -pub const F_GETLK: ::c_int = 14; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; +pub const F_GETLK: c_int = 14; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; -pub const SFD_NONBLOCK: ::c_int = 0x80; +pub const SFD_NONBLOCK: c_int = 0x80; -pub const RTLD_GLOBAL: ::c_int = 0x4; +pub const RTLD_GLOBAL: c_int = 0x4; -pub const SIGSTKSZ: ::size_t = 8192; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const CBAUDEX: ::tcflag_t = 0o0010000; -pub const CIBAUD: ::tcflag_t = 0o002003600000; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const TABDLY: ::tcflag_t = 0o0014000; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const BSDLY: ::tcflag_t = 0o0020000; -pub const VT1: ::tcflag_t = 0x00004000; +pub const SIGSTKSZ: size_t = 8192; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const CBAUDEX: crate::tcflag_t = 0o0010000; +pub const CIBAUD: crate::tcflag_t = 0o002003600000; +pub const TAB1: crate::tcflag_t = 0x00000800; +pub const TAB2: crate::tcflag_t = 0x00001000; +pub const TAB3: crate::tcflag_t = 0x00001800; +pub const TABDLY: crate::tcflag_t = 0o0014000; +pub const CR1: crate::tcflag_t = 0x00000200; +pub const CR2: crate::tcflag_t = 0x00000400; +pub const CR3: crate::tcflag_t = 0x00000600; +pub const FF1: crate::tcflag_t = 0x00008000; +pub const BS1: crate::tcflag_t = 0x00002000; +pub const BSDLY: crate::tcflag_t = 0o0020000; +pub const VT1: crate::tcflag_t = 0x00004000; pub const VWERASE: usize = 14; -pub const XTABS: ::tcflag_t = 0o0014000; +pub const XTABS: crate::tcflag_t = 0o0014000; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; pub const VSWTC: usize = 7; -pub const VTDLY: ::c_int = 0o0040000; +pub const VTDLY: c_int = 0o0040000; pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const OLCUC: ::tcflag_t = 0o0000002; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CRDLY: ::c_int = 0o0003000; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const OLCUC: crate::tcflag_t = 0o0000002; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CRDLY: c_int = 0o0003000; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; -pub const MAP_HUGETLB: ::c_int = 0x80000; +pub const MAP_HUGETLB: c_int = 0x80000; -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; cfg_if! { if #[cfg(target_arch = "mips")] { diff --git a/src/unix/linux_like/linux/uclibc/mod.rs b/src/unix/linux_like/linux/uclibc/mod.rs index 84bd975c26cfe..95aed917fe400 100644 --- a/src/unix/linux_like/linux/uclibc/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mod.rs @@ -1,84 +1,86 @@ -pub type shmatt_t = ::c_ulong; -pub type msgqnum_t = ::c_ulong; -pub type msglen_t = ::c_ulong; -pub type regoff_t = ::c_int; -pub type rlim_t = ::c_ulong; -pub type __rlimit_resource_t = ::c_ulong; -pub type __priority_which_t = ::c_uint; +use crate::{c_int, c_short, c_uchar, c_uint, c_ushort, c_void, off64_t, size_t, ssize_t}; + +pub type shmatt_t = c_ulong; +pub type msgqnum_t = c_ulong; +pub type msglen_t = c_ulong; +pub type regoff_t = c_int; +pub type rlim_t = c_ulong; +pub type __rlimit_resource_t = c_ulong; +pub type __priority_which_t = c_uint; cfg_if! { if #[cfg(doc)] { // Used in `linux::arch` to define ioctl constants. - pub(crate) type Ioctl = ::c_ulong; + pub(crate) type Ioctl = c_ulong; } else { #[doc(hidden)] - pub type Ioctl = ::c_ulong; + pub type Ioctl = c_ulong; } } s! { pub struct statvfs { // Different than GNU! - 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_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, #[cfg(target_endian = "little")] - pub f_fsid: ::c_ulong, + pub f_fsid: c_ulong, #[cfg(target_pointer_width = "32")] - __f_unused: ::c_int, + __f_unused: c_int, #[cfg(target_endian = "big")] - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct regex_t { - __buffer: *mut ::c_void, - __allocated: ::size_t, - __used: ::size_t, - __syntax: ::c_ulong, - __fastmap: *mut ::c_char, - __translate: *mut ::c_char, - __re_nsub: ::size_t, + __buffer: *mut c_void, + __allocated: size_t, + __used: size_t, + __syntax: c_ulong, + __fastmap: *mut c_char, + __translate: *mut c_char, + __re_nsub: size_t, __bitfield: u8, } pub struct rtentry { - pub rt_pad1: ::c_ulong, - pub rt_dst: ::sockaddr, - pub rt_gateway: ::sockaddr, - pub rt_genmask: ::sockaddr, - pub rt_flags: ::c_ushort, - pub rt_pad2: ::c_short, - pub rt_pad3: ::c_ulong, - pub rt_tos: ::c_uchar, - pub rt_class: ::c_uchar, + pub rt_pad1: c_ulong, + pub rt_dst: crate::sockaddr, + pub rt_gateway: crate::sockaddr, + pub rt_genmask: crate::sockaddr, + pub rt_flags: c_ushort, + pub rt_pad2: c_short, + pub rt_pad3: c_ulong, + pub rt_tos: c_uchar, + pub rt_class: c_uchar, #[cfg(target_pointer_width = "64")] - pub rt_pad4: [::c_short; 3usize], + pub rt_pad4: [c_short; 3usize], #[cfg(not(target_pointer_width = "64"))] - pub rt_pad4: ::c_short, - pub rt_metric: ::c_short, - pub rt_dev: *mut ::c_char, - pub rt_mtu: ::c_ulong, - pub rt_window: ::c_ulong, - pub rt_irtt: ::c_ushort, + pub rt_pad4: c_short, + pub rt_metric: c_short, + pub rt_dev: *mut c_char, + pub rt_mtu: c_ulong, + pub rt_window: c_ulong, + pub rt_irtt: c_ushort, } pub struct __exit_status { - pub e_termination: ::c_short, - pub e_exit: ::c_short, + pub e_termination: c_short, + pub e_exit: c_short, } pub struct ptrace_peeksiginfo_args { - pub off: ::__u64, - pub flags: ::__u32, - pub nr: ::__s32, + pub off: crate::__u64, + pub flags: crate::__u32, + pub nr: crate::__s32, } #[cfg_attr( @@ -104,36 +106,36 @@ s! { repr(align(8)) )] pub struct pthread_mutexattr_t { - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + size: [u8; crate::__SIZEOF_PTHREAD_MUTEXATTR_T], } #[repr(align(4))] pub struct pthread_condattr_t { - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + size: [u8; crate::__SIZEOF_PTHREAD_CONDATTR_T], } } impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { + pub unsafe fn si_addr(&self) -> *mut c_void { #[repr(C)] struct siginfo_sigfault { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - si_addr: *mut ::c_void, + _si_signo: c_int, + _si_errno: c_int, + _si_code: c_int, + si_addr: *mut c_void, } (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr } - pub unsafe fn si_value(&self) -> ::sigval { + pub unsafe fn si_value(&self) -> crate::sigval { #[repr(C)] struct siginfo_si_value { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - _si_timerid: ::c_int, - _si_overrun: ::c_int, - si_value: ::sigval, + _si_signo: c_int, + _si_errno: c_int, + _si_code: c_int, + _si_timerid: c_int, + _si_overrun: c_int, + si_value: crate::sigval, } (*(self as *const siginfo_t as *const siginfo_si_value)).si_value } @@ -142,14 +144,14 @@ impl siginfo_t { // Internal, for casts to access union fields #[repr(C)] struct sifields_sigchld { - si_pid: ::pid_t, - si_uid: ::uid_t, - si_status: ::c_int, - si_utime: ::c_long, - si_stime: ::c_long, + si_pid: crate::pid_t, + si_uid: crate::uid_t, + si_status: c_int, + si_utime: c_long, + si_stime: c_long, } -impl ::Copy for sifields_sigchld {} -impl ::Clone for sifields_sigchld { +impl Copy for sifields_sigchld {} +impl Clone for sifields_sigchld { fn clone(&self) -> sifields_sigchld { *self } @@ -158,7 +160,7 @@ impl ::Clone for sifields_sigchld { // Internal, for casts to access union fields #[repr(C)] union sifields { - _align_pointer: *mut ::c_void, + _align_pointer: *mut c_void, sigchld: sifields_sigchld, } @@ -167,7 +169,7 @@ union sifields { // sifields vary on 32-bit and 64-bit architectures. #[repr(C)] struct siginfo_f { - _siginfo_base: [::c_int; 3], + _siginfo_base: [c_int; 3], sifields: sifields, } @@ -176,294 +178,286 @@ impl siginfo_t { &(*(self as *const siginfo_t as *const siginfo_f)).sifields } - pub unsafe fn si_pid(&self) -> ::pid_t { + pub unsafe fn si_pid(&self) -> crate::pid_t { self.sifields().sigchld.si_pid } - pub unsafe fn si_uid(&self) -> ::uid_t { + pub unsafe fn si_uid(&self) -> crate::uid_t { self.sifields().sigchld.si_uid } - pub unsafe fn si_status(&self) -> ::c_int { + pub unsafe fn si_status(&self) -> c_int { self.sifields().sigchld.si_status } - pub unsafe fn si_utime(&self) -> ::c_long { + pub unsafe fn si_utime(&self) -> c_long { self.sifields().sigchld.si_utime } - pub unsafe fn si_stime(&self) -> ::c_long { + pub unsafe fn si_stime(&self) -> c_long { self.sifields().sigchld.si_stime } } -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; -pub const SIGEV_THREAD_ID: ::c_int = 4; +pub const SIGEV_THREAD_ID: c_int = 4; -pub const AF_VSOCK: ::c_int = 40; +pub const AF_VSOCK: c_int = 40; // Most `*_SUPER_MAGIC` constants are defined at the `linux_like` level; the // following are only available on newer Linux versions than the versions // currently used in CI in some configurations, so we define them here. -pub const BINDERFS_SUPER_MAGIC: ::c_long = 0x6c6f6f70; -pub const XFS_SUPER_MAGIC: ::c_long = 0x58465342; - -pub const PTRACE_TRACEME: ::c_int = 0; -pub const PTRACE_PEEKTEXT: ::c_int = 1; -pub const PTRACE_PEEKDATA: ::c_int = 2; -pub const PTRACE_PEEKUSER: ::c_int = 3; -pub const PTRACE_POKETEXT: ::c_int = 4; -pub const PTRACE_POKEDATA: ::c_int = 5; -pub const PTRACE_POKEUSER: ::c_int = 6; -pub const PTRACE_CONT: ::c_int = 7; -pub const PTRACE_KILL: ::c_int = 8; -pub const PTRACE_SINGLESTEP: ::c_int = 9; -pub const PTRACE_GETREGS: ::c_int = 12; -pub const PTRACE_SETREGS: ::c_int = 13; -pub const PTRACE_GETFPREGS: ::c_int = 14; -pub const PTRACE_SETFPREGS: ::c_int = 15; -pub const PTRACE_ATTACH: ::c_int = 16; -pub const PTRACE_DETACH: ::c_int = 17; -pub const PTRACE_GETFPXREGS: ::c_int = 18; -pub const PTRACE_SETFPXREGS: ::c_int = 19; -pub const PTRACE_SYSCALL: ::c_int = 24; -pub const PTRACE_SETOPTIONS: ::c_int = 0x4200; -pub const PTRACE_GETEVENTMSG: ::c_int = 0x4201; -pub const PTRACE_GETSIGINFO: ::c_int = 0x4202; -pub const PTRACE_SETSIGINFO: ::c_int = 0x4203; -pub const PTRACE_GETREGSET: ::c_int = 0x4204; -pub const PTRACE_SETREGSET: ::c_int = 0x4205; -pub const PTRACE_SEIZE: ::c_int = 0x4206; -pub const PTRACE_INTERRUPT: ::c_int = 0x4207; -pub const PTRACE_LISTEN: ::c_int = 0x4208; - -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; +pub const BINDERFS_SUPER_MAGIC: c_long = 0x6c6f6f70; +pub const XFS_SUPER_MAGIC: c_long = 0x58465342; + +pub const PTRACE_TRACEME: c_int = 0; +pub const PTRACE_PEEKTEXT: c_int = 1; +pub const PTRACE_PEEKDATA: c_int = 2; +pub const PTRACE_PEEKUSER: c_int = 3; +pub const PTRACE_POKETEXT: c_int = 4; +pub const PTRACE_POKEDATA: c_int = 5; +pub const PTRACE_POKEUSER: c_int = 6; +pub const PTRACE_CONT: c_int = 7; +pub const PTRACE_KILL: c_int = 8; +pub const PTRACE_SINGLESTEP: c_int = 9; +pub const PTRACE_GETREGS: c_int = 12; +pub const PTRACE_SETREGS: c_int = 13; +pub const PTRACE_GETFPREGS: c_int = 14; +pub const PTRACE_SETFPREGS: c_int = 15; +pub const PTRACE_ATTACH: c_int = 16; +pub const PTRACE_DETACH: c_int = 17; +pub const PTRACE_GETFPXREGS: c_int = 18; +pub const PTRACE_SETFPXREGS: c_int = 19; +pub const PTRACE_SYSCALL: c_int = 24; +pub const PTRACE_SETOPTIONS: c_int = 0x4200; +pub const PTRACE_GETEVENTMSG: c_int = 0x4201; +pub const PTRACE_GETSIGINFO: c_int = 0x4202; +pub const PTRACE_SETSIGINFO: c_int = 0x4203; +pub const PTRACE_GETREGSET: c_int = 0x4204; +pub const PTRACE_SETREGSET: c_int = 0x4205; +pub const PTRACE_SEIZE: c_int = 0x4206; +pub const PTRACE_INTERRUPT: c_int = 0x4207; +pub const PTRACE_LISTEN: c_int = 0x4208; + +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; // These are different than GNU! -pub const LC_CTYPE: ::c_int = 0; -pub const LC_NUMERIC: ::c_int = 1; -pub const LC_TIME: ::c_int = 3; -pub const LC_COLLATE: ::c_int = 4; -pub const LC_MONETARY: ::c_int = 2; -pub const LC_MESSAGES: ::c_int = 5; -pub const LC_ALL: ::c_int = 6; +pub const LC_CTYPE: c_int = 0; +pub const LC_NUMERIC: c_int = 1; +pub const LC_TIME: c_int = 3; +pub const LC_COLLATE: c_int = 4; +pub const LC_MONETARY: c_int = 2; +pub const LC_MESSAGES: c_int = 5; +pub const LC_ALL: c_int = 6; // end different section // MS_ flags for mount(2) -pub const MS_RMT_MASK: ::c_ulong = ::MS_RDONLY | ::MS_SYNCHRONOUS | ::MS_MANDLOCK | ::MS_I_VERSION; +pub const MS_RMT_MASK: c_ulong = + crate::MS_RDONLY | crate::MS_SYNCHRONOUS | crate::MS_MANDLOCK | crate::MS_I_VERSION; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const ENOTSUP: c_int = EOPNOTSUPP; -pub const IPV6_JOIN_GROUP: ::c_int = 20; -pub const IPV6_LEAVE_GROUP: ::c_int = 21; +pub const IPV6_JOIN_GROUP: c_int = 20; +pub const IPV6_LEAVE_GROUP: c_int = 21; // These are different from GNU -pub const ABDAY_1: ::nl_item = 0x300; -pub const ABDAY_2: ::nl_item = 0x301; -pub const ABDAY_3: ::nl_item = 0x302; -pub const ABDAY_4: ::nl_item = 0x303; -pub const ABDAY_5: ::nl_item = 0x304; -pub const ABDAY_6: ::nl_item = 0x305; -pub const ABDAY_7: ::nl_item = 0x306; -pub const DAY_1: ::nl_item = 0x307; -pub const DAY_2: ::nl_item = 0x308; -pub const DAY_3: ::nl_item = 0x309; -pub const DAY_4: ::nl_item = 0x30A; -pub const DAY_5: ::nl_item = 0x30B; -pub const DAY_6: ::nl_item = 0x30C; -pub const DAY_7: ::nl_item = 0x30D; -pub const ABMON_1: ::nl_item = 0x30E; -pub const ABMON_2: ::nl_item = 0x30F; -pub const ABMON_3: ::nl_item = 0x310; -pub const ABMON_4: ::nl_item = 0x311; -pub const ABMON_5: ::nl_item = 0x312; -pub const ABMON_6: ::nl_item = 0x313; -pub const ABMON_7: ::nl_item = 0x314; -pub const ABMON_8: ::nl_item = 0x315; -pub const ABMON_9: ::nl_item = 0x316; -pub const ABMON_10: ::nl_item = 0x317; -pub const ABMON_11: ::nl_item = 0x318; -pub const ABMON_12: ::nl_item = 0x319; -pub const MON_1: ::nl_item = 0x31A; -pub const MON_2: ::nl_item = 0x31B; -pub const MON_3: ::nl_item = 0x31C; -pub const MON_4: ::nl_item = 0x31D; -pub const MON_5: ::nl_item = 0x31E; -pub const MON_6: ::nl_item = 0x31F; -pub const MON_7: ::nl_item = 0x320; -pub const MON_8: ::nl_item = 0x321; -pub const MON_9: ::nl_item = 0x322; -pub const MON_10: ::nl_item = 0x323; -pub const MON_11: ::nl_item = 0x324; -pub const MON_12: ::nl_item = 0x325; -pub const AM_STR: ::nl_item = 0x326; -pub const PM_STR: ::nl_item = 0x327; -pub const D_T_FMT: ::nl_item = 0x328; -pub const D_FMT: ::nl_item = 0x329; -pub const T_FMT: ::nl_item = 0x32A; -pub const T_FMT_AMPM: ::nl_item = 0x32B; -pub const ERA: ::nl_item = 0x32C; -pub const ERA_D_FMT: ::nl_item = 0x32E; -pub const ALT_DIGITS: ::nl_item = 0x32F; -pub const ERA_D_T_FMT: ::nl_item = 0x330; -pub const ERA_T_FMT: ::nl_item = 0x331; -pub const CODESET: ::nl_item = 10; -pub const CRNCYSTR: ::nl_item = 0x215; -pub const RADIXCHAR: ::nl_item = 0x100; -pub const THOUSEP: ::nl_item = 0x101; -pub const NOEXPR: ::nl_item = 0x501; -pub const YESSTR: ::nl_item = 0x502; -pub const NOSTR: ::nl_item = 0x503; +pub const ABDAY_1: crate::nl_item = 0x300; +pub const ABDAY_2: crate::nl_item = 0x301; +pub const ABDAY_3: crate::nl_item = 0x302; +pub const ABDAY_4: crate::nl_item = 0x303; +pub const ABDAY_5: crate::nl_item = 0x304; +pub const ABDAY_6: crate::nl_item = 0x305; +pub const ABDAY_7: crate::nl_item = 0x306; +pub const DAY_1: crate::nl_item = 0x307; +pub const DAY_2: crate::nl_item = 0x308; +pub const DAY_3: crate::nl_item = 0x309; +pub const DAY_4: crate::nl_item = 0x30A; +pub const DAY_5: crate::nl_item = 0x30B; +pub const DAY_6: crate::nl_item = 0x30C; +pub const DAY_7: crate::nl_item = 0x30D; +pub const ABMON_1: crate::nl_item = 0x30E; +pub const ABMON_2: crate::nl_item = 0x30F; +pub const ABMON_3: crate::nl_item = 0x310; +pub const ABMON_4: crate::nl_item = 0x311; +pub const ABMON_5: crate::nl_item = 0x312; +pub const ABMON_6: crate::nl_item = 0x313; +pub const ABMON_7: crate::nl_item = 0x314; +pub const ABMON_8: crate::nl_item = 0x315; +pub const ABMON_9: crate::nl_item = 0x316; +pub const ABMON_10: crate::nl_item = 0x317; +pub const ABMON_11: crate::nl_item = 0x318; +pub const ABMON_12: crate::nl_item = 0x319; +pub const MON_1: crate::nl_item = 0x31A; +pub const MON_2: crate::nl_item = 0x31B; +pub const MON_3: crate::nl_item = 0x31C; +pub const MON_4: crate::nl_item = 0x31D; +pub const MON_5: crate::nl_item = 0x31E; +pub const MON_6: crate::nl_item = 0x31F; +pub const MON_7: crate::nl_item = 0x320; +pub const MON_8: crate::nl_item = 0x321; +pub const MON_9: crate::nl_item = 0x322; +pub const MON_10: crate::nl_item = 0x323; +pub const MON_11: crate::nl_item = 0x324; +pub const MON_12: crate::nl_item = 0x325; +pub const AM_STR: crate::nl_item = 0x326; +pub const PM_STR: crate::nl_item = 0x327; +pub const D_T_FMT: crate::nl_item = 0x328; +pub const D_FMT: crate::nl_item = 0x329; +pub const T_FMT: crate::nl_item = 0x32A; +pub const T_FMT_AMPM: crate::nl_item = 0x32B; +pub const ERA: crate::nl_item = 0x32C; +pub const ERA_D_FMT: crate::nl_item = 0x32E; +pub const ALT_DIGITS: crate::nl_item = 0x32F; +pub const ERA_D_T_FMT: crate::nl_item = 0x330; +pub const ERA_T_FMT: crate::nl_item = 0x331; +pub const CODESET: crate::nl_item = 10; +pub const CRNCYSTR: crate::nl_item = 0x215; +pub const RADIXCHAR: crate::nl_item = 0x100; +pub const THOUSEP: crate::nl_item = 0x101; +pub const NOEXPR: crate::nl_item = 0x501; +pub const YESSTR: crate::nl_item = 0x502; +pub const NOSTR: crate::nl_item = 0x503; // Different than Gnu. -pub const FILENAME_MAX: ::c_uint = 4095; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; - -pub const SOMAXCONN: ::c_int = 128; - -pub const ST_RELATIME: ::c_ulong = 4096; - -pub const AF_NFC: ::c_int = PF_NFC; -pub const BUFSIZ: ::c_int = 4096; -pub const EDEADLOCK: ::c_int = EDEADLK; -pub const EXTA: ::c_uint = B19200; -pub const EXTB: ::c_uint = B38400; -pub const EXTPROC: ::tcflag_t = 0o200000; -pub const FOPEN_MAX: ::c_int = 16; -pub const F_GETOWN: ::c_int = 9; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; -pub const F_RDLCK: ::c_int = 0; -pub const F_SETOWN: ::c_int = 8; -pub const F_UNLCK: ::c_int = 2; -pub const F_WRLCK: ::c_int = 1; -pub const IPV6_MULTICAST_ALL: ::c_int = 29; -pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30; -pub const MAP_HUGE_SHIFT: ::c_int = 26; -pub const MAP_HUGE_MASK: ::c_int = 0x3f; -pub const MAP_HUGE_64KB: ::c_int = 16 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_512KB: ::c_int = 19 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_1MB: ::c_int = 20 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_2MB: ::c_int = 21 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_8MB: ::c_int = 23 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_16MB: ::c_int = 24 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_32MB: ::c_int = 25 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_256MB: ::c_int = 28 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_512MB: ::c_int = 29 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_1GB: ::c_int = 30 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_2GB: ::c_int = 31 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_16GB: ::c_int = 34 << MAP_HUGE_SHIFT; -pub const MINSIGSTKSZ: ::c_int = 2048; -pub const MSG_COPY: ::c_int = 0o40000; -pub const NI_MAXHOST: ::socklen_t = 1025; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; -pub const PACKET_MR_UNICAST: ::c_int = 3; -pub const PF_NFC: ::c_int = 39; -pub const PF_VSOCK: ::c_int = 40; -pub const POSIX_MADV_DONTNEED: ::c_int = 4; -pub const PTRACE_EVENT_STOP: ::c_int = 128; -pub const PTRACE_GETSIGMASK: ::c_uint = 0x420a; -pub const PTRACE_PEEKSIGINFO: ::c_int = 0x4209; -pub const PTRACE_SETSIGMASK: ::c_uint = 0x420b; -pub const RTLD_NOLOAD: ::c_int = 0x00004; -pub const RUSAGE_THREAD: ::c_int = 1; -pub const SHM_EXEC: ::c_int = 0o100000; -pub const SIGPOLL: ::c_int = SIGIO; -pub const SOCK_DCCP: ::c_int = 6; -pub const SOCK_PACKET: ::c_int = 10; -pub const TCP_COOKIE_TRANSACTIONS: ::c_int = 15; -pub const UDP_GRO: ::c_int = 104; -pub const UDP_SEGMENT: ::c_int = 103; -pub const YESEXPR: ::c_int = ((5) << 8) | (0); +pub const FILENAME_MAX: c_uint = 4095; + +pub const PRIO_PROCESS: c_int = 0; +pub const PRIO_PGRP: c_int = 1; +pub const PRIO_USER: c_int = 2; + +pub const SOMAXCONN: c_int = 128; + +pub const ST_RELATIME: c_ulong = 4096; + +pub const AF_NFC: c_int = PF_NFC; +pub const BUFSIZ: c_int = 4096; +pub const EDEADLOCK: c_int = EDEADLK; +pub const EXTA: c_uint = B19200; +pub const EXTB: c_uint = B38400; +pub const EXTPROC: crate::tcflag_t = 0o200000; +pub const FOPEN_MAX: c_int = 16; +pub const F_GETOWN: c_int = 9; +pub const F_OFD_GETLK: c_int = 36; +pub const F_OFD_SETLK: c_int = 37; +pub const F_OFD_SETLKW: c_int = 38; +pub const F_RDLCK: c_int = 0; +pub const F_SETOWN: c_int = 8; +pub const F_UNLCK: c_int = 2; +pub const F_WRLCK: c_int = 1; +pub const IPV6_MULTICAST_ALL: c_int = 29; +pub const IPV6_ROUTER_ALERT_ISOLATE: c_int = 30; +pub const MAP_HUGE_SHIFT: c_int = 26; +pub const MAP_HUGE_MASK: c_int = 0x3f; +pub const MAP_HUGE_64KB: c_int = 16 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_512KB: c_int = 19 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_1MB: c_int = 20 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_2MB: c_int = 21 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_8MB: c_int = 23 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_16MB: c_int = 24 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_32MB: c_int = 25 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_256MB: c_int = 28 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_512MB: c_int = 29 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_1GB: c_int = 30 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_2GB: c_int = 31 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_16GB: c_int = 34 << MAP_HUGE_SHIFT; +pub const MINSIGSTKSZ: c_int = 2048; +pub const MSG_COPY: c_int = 0o40000; +pub const NI_MAXHOST: crate::socklen_t = 1025; +pub const O_TMPFILE: c_int = 0o20000000 | O_DIRECTORY; +pub const PACKET_MR_UNICAST: c_int = 3; +pub const PF_NFC: c_int = 39; +pub const PF_VSOCK: c_int = 40; +pub const POSIX_MADV_DONTNEED: c_int = 4; +pub const PTRACE_EVENT_STOP: c_int = 128; +pub const PTRACE_GETSIGMASK: c_uint = 0x420a; +pub const PTRACE_PEEKSIGINFO: c_int = 0x4209; +pub const PTRACE_SETSIGMASK: c_uint = 0x420b; +pub const RTLD_NOLOAD: c_int = 0x00004; +pub const RUSAGE_THREAD: c_int = 1; +pub const SHM_EXEC: c_int = 0o100000; +pub const SIGPOLL: c_int = SIGIO; +pub const SOCK_DCCP: c_int = 6; +pub const SOCK_PACKET: c_int = 10; +pub const TCP_COOKIE_TRANSACTIONS: c_int = 15; +pub const UDP_GRO: c_int = 104; +pub const UDP_SEGMENT: c_int = 103; +pub const YESEXPR: c_int = ((5) << 8) | (0); extern "C" { - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut crate::timezone) -> c_int; pub fn pthread_rwlockattr_getkind_np( - attr: *const ::pthread_rwlockattr_t, - val: *mut ::c_int, - ) -> ::c_int; + attr: *const crate::pthread_rwlockattr_t, + val: *mut c_int, + ) -> c_int; pub fn pthread_rwlockattr_setkind_np( - attr: *mut ::pthread_rwlockattr_t, - val: ::c_int, - ) -> ::c_int; + attr: *mut crate::pthread_rwlockattr_t, + val: c_int, + ) -> c_int; - pub fn ptrace(request: ::c_uint, ...) -> ::c_long; + pub fn ptrace(request: c_uint, ...) -> c_long; pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - ) -> ::c_int; + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_int, + ) -> c_int; pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - timeout: *mut ::timespec, - ) -> ::c_int; + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_int, + timeout: *mut crate::timespec, + ) -> c_int; pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, + amaster: *mut c_int, + aslave: *mut c_int, + name: *mut c_char, termp: *mut termios, - winp: *mut ::winsize, - ) -> ::c_int; + winp: *mut crate::winsize, + ) -> c_int; pub fn forkpty( - amaster: *mut ::c_int, - name: *mut ::c_char, + amaster: *mut c_int, + name: *mut c_char, termp: *mut termios, - winp: *mut ::winsize, - ) -> ::pid_t; + winp: *mut crate::winsize, + ) -> crate::pid_t; pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - servlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - - pub fn pwritev( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, - ) -> ::ssize_t; - pub fn preadv( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, - ) -> ::ssize_t; - - pub fn sethostid(hostid: ::c_long) -> ::c_int; + sa: *const crate::sockaddr, + salen: crate::socklen_t, + host: *mut c_char, + hostlen: crate::socklen_t, + serv: *mut c_char, + servlen: crate::socklen_t, + flags: c_int, + ) -> c_int; + + pub fn pwritev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off64_t) -> ssize_t; + pub fn preadv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off64_t) -> ssize_t; + + pub fn sethostid(hostid: c_long) -> c_int; pub fn fanotify_mark( - fd: ::c_int, - flags: ::c_uint, + fd: c_int, + flags: c_uint, mask: u64, - dirfd: ::c_int, - path: *const ::c_char, - ) -> ::c_int; - pub fn getrlimit64(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit64) -> ::c_int; - pub fn setrlimit64(resource: ::__rlimit_resource_t, rlim: *const ::rlimit64) -> ::c_int; - pub fn getrlimit(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::__rlimit_resource_t, rlim: *const ::rlimit) -> ::c_int; - pub fn getpriority(which: ::__priority_which_t, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::__priority_which_t, who: ::id_t, prio: ::c_int) -> ::c_int; - pub fn getauxval(type_: ::c_ulong) -> ::c_ulong; + dirfd: c_int, + path: *const c_char, + ) -> c_int; + pub fn getrlimit64(resource: crate::__rlimit_resource_t, rlim: *mut crate::rlimit64) -> c_int; + pub fn setrlimit64(resource: crate::__rlimit_resource_t, rlim: *const crate::rlimit64) + -> c_int; + pub fn getrlimit(resource: crate::__rlimit_resource_t, rlim: *mut crate::rlimit) -> c_int; + pub fn setrlimit(resource: crate::__rlimit_resource_t, rlim: *const crate::rlimit) -> c_int; + pub fn getpriority(which: crate::__priority_which_t, who: crate::id_t) -> c_int; + pub fn setpriority(which: crate::__priority_which_t, who: crate::id_t, prio: c_int) -> c_int; + pub fn getauxval(type_: c_ulong) -> c_ulong; } cfg_if! { diff --git a/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs b/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs index f14bbab226f6a..cbf8c033d7414 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs @@ -1,10 +1,12 @@ +use crate::{c_int, c_uint, c_ulong, c_void, size_t}; + /// L4Re specifics /// This module contains definitions required by various L4Re libc backends. /// Some of them are formally not part of the libc, but are a dependency of the /// libc and hence we should provide them here. -pub type l4_umword_t = ::c_ulong; // Unsigned machine word. -pub type pthread_t = *mut ::c_void; +pub type l4_umword_t = c_ulong; // Unsigned machine word. +pub type pthread_t = *mut c_void; s! { /// CPU sets. @@ -29,18 +31,18 @@ s! { #[cfg(target_os = "l4re")] #[allow(missing_debug_implementations)] pub struct pthread_attr_t { - pub __detachstate: ::c_int, - pub __schedpolicy: ::c_int, + pub __detachstate: c_int, + pub __schedpolicy: c_int, pub __schedparam: super::__sched_param, - pub __inheritsched: ::c_int, - pub __scope: ::c_int, - pub __guardsize: ::size_t, - pub __stackaddr_set: ::c_int, - pub __stackaddr: *mut ::c_void, // better don't use it - pub __stacksize: ::size_t, + pub __inheritsched: c_int, + pub __scope: c_int, + pub __guardsize: size_t, + pub __stackaddr_set: c_int, + pub __stackaddr: *mut c_void, // better don't use it + pub __stacksize: size_t, // L4Re specifics pub affinity: l4_sched_cpu_set_t, - pub create_flags: ::c_uint, + pub create_flags: c_uint, } // L4Re requires a min stack size of 64k; that isn't defined in uClibc, but @@ -48,6 +50,6 @@ pub struct pthread_attr_t { pub const PTHREAD_STACK_MIN: usize = 65536; // Misc other constants required for building. -pub const SIGIO: ::c_int = 29; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; +pub const SIGIO: c_int = 29; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index f28fa10019f02..9c2cf3fe25715 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -1,111 +1,114 @@ //! Definitions for uclibc on 64bit systems + +use crate::{c_int, c_uint, c_ushort, c_void, off64_t, size_t}; + pub type blkcnt_t = i64; pub type blksize_t = i64; pub type clock_t = i64; pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; -pub type fsblkcnt_t = ::c_ulong; -pub type fsfilcnt_t = ::c_ulong; -pub type fsword_t = ::c_long; -pub type ino_t = ::c_ulong; -pub type nlink_t = ::c_uint; -pub type off_t = ::c_long; +pub type fsblkcnt_t = c_ulong; +pub type fsfilcnt_t = c_ulong; +pub type fsword_t = c_long; +pub type ino_t = c_ulong; +pub type nlink_t = c_uint; +pub type off_t = c_long; // [uClibc docs] Note stat64 has the same shape as stat for x86-64. pub type stat64 = stat; -pub type suseconds_t = ::c_long; -pub type time_t = ::c_int; -pub type wchar_t = ::c_int; +pub type suseconds_t = c_long; +pub type time_t = c_int; +pub type wchar_t = c_int; pub type fsblkcnt64_t = u64; pub type fsfilcnt64_t = u64; -pub type __u64 = ::c_ulong; -pub type __s64 = ::c_long; +pub type __u64 = c_ulong; +pub type __s64 = c_long; s! { pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, // read / write - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: c_ushort, // read / write + __pad1: c_ushort, + pub __seq: c_ushort, + __pad2: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, } #[cfg(not(target_os = "l4re"))] pub struct pthread_attr_t { - __detachstate: ::c_int, - __schedpolicy: ::c_int, + __detachstate: c_int, + __schedpolicy: c_int, __schedparam: __sched_param, - __inheritsched: ::c_int, - __scope: ::c_int, - __guardsize: ::size_t, - __stackaddr_set: ::c_int, - __stackaddr: *mut ::c_void, // better don't use it - __stacksize: ::size_t, + __inheritsched: c_int, + __scope: c_int, + __guardsize: size_t, + __stackaddr_set: c_int, + __stackaddr: *mut c_void, // better don't use it + __stacksize: size_t, } pub struct __sched_param { - __sched_priority: ::c_int, + __sched_priority: c_int, } pub struct siginfo_t { - si_signo: ::c_int, // signal number - si_errno: ::c_int, // if not zero: error value of signal, see errno.h - si_code: ::c_int, // signal code - pub _pad: [::c_int; 28], // unported union + si_signo: c_int, // signal number + si_errno: c_int, // if not zero: error value of signal, see errno.h + si_code: c_int, // signal code + pub _pad: [c_int; 28], // unported union _align: [usize; 0], } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, // segment size in bytes - pub shm_atime: ::time_t, // time of last shmat() - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused1: ::c_ulong, - __unused2: ::c_ulong, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, // segment size in bytes + pub shm_atime: crate::time_t, // time of last shmat() + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __unused1: c_ulong, + __unused2: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __ignored1: ::c_ulong, - __ignored2: ::c_ulong, + pub msg_perm: crate::ipc_perm, + pub msg_stime: crate::time_t, + pub msg_rtime: crate::time_t, + pub msg_ctime: crate::time_t, + __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __ignored1: c_ulong, + __ignored2: c_ulong, } pub struct sockaddr { - pub sa_family: ::sa_family_t, - pub sa_data: [::c_char; 14], + pub sa_family: crate::sa_family_t, + pub sa_data: [c_char; 14], } pub struct sockaddr_in { - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, + pub sin_family: crate::sa_family_t, + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, pub sin_zero: [u8; 8], } pub struct sockaddr_in6 { - pub sin6_family: ::sa_family_t, - pub sin6_port: ::in_port_t, + pub sin6_family: crate::sa_family_t, + pub sin6_port: crate::in_port_t, pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, + pub sin6_addr: crate::in6_addr, pub sin6_scope_id: u32, } @@ -122,142 +125,142 @@ s! { // } pub struct stat { - pub st_dev: ::c_ulong, - pub st_ino: ::ino_t, + pub st_dev: c_ulong, + pub st_ino: crate::ino_t, // According to uclibc/libc/sysdeps/linux/x86_64/bits/stat.h, order of // nlink and mode are swapped on 64 bit systems. - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulong, // dev_t - pub st_size: off_t, // file size - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_ulong, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_ulong, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_ulong, - st_pad4: [::c_long; 3], + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: c_ulong, // dev_t + pub st_size: off_t, // file size + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_ulong, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_ulong, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_ulong, + st_pad4: [c_long; 3], } pub struct sigaction { - pub sa_handler: ::sighandler_t, - pub sa_flags: ::c_ulong, - pub sa_restorer: ::Option, - pub sa_mask: ::sigset_t, + pub sa_handler: crate::sighandler_t, + pub sa_flags: c_ulong, + pub sa_restorer: Option, + pub sa_mask: crate::sigset_t, } pub struct stack_t { // FIXME - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, } pub struct statfs { // FIXME pub f_type: fsword_t, pub f_bsize: fsword_t, - 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_fsid: ::fsid_t, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, pub f_namelen: fsword_t, pub f_frsize: fsword_t, f_spare: [fsword_t; 5], } pub struct statfs64 { - pub f_type: ::c_int, - pub f_bsize: ::c_int, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_int, - pub f_frsize: ::c_int, - pub f_flags: ::c_int, - pub f_spare: [::c_int; 4], + pub f_type: c_int, + pub f_bsize: c_int, + pub f_blocks: crate::fsblkcnt64_t, + pub f_bfree: crate::fsblkcnt64_t, + pub f_bavail: crate::fsblkcnt64_t, + pub f_files: crate::fsfilcnt64_t, + pub f_ffree: crate::fsfilcnt64_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_int, + pub f_frsize: c_int, + pub f_flags: c_int, + pub f_spare: [c_int; 4], } pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, pub f_blocks: u64, pub f_bfree: u64, pub f_bavail: u64, pub f_files: u64, pub f_ffree: u64, pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], + pub f_fsid: c_ulong, + __f_unused: c_int, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], } pub struct msghdr { // FIXME - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::size_t, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::size_t, - pub msg_flags: ::c_int, + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: size_t, + pub msg_control: *mut c_void, + pub msg_controllen: size_t, + pub msg_flags: c_int, } pub struct termios { // FIXME - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; crate::NCCS], } pub struct sigset_t { // FIXME - __val: [::c_ulong; 16], + __val: [c_ulong; 16], } pub struct sysinfo { // FIXME - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 0], + pub uptime: c_long, + pub loads: [c_ulong; 3], + pub totalram: c_ulong, + pub freeram: c_ulong, + pub sharedram: c_ulong, + pub bufferram: c_ulong, + pub totalswap: c_ulong, + pub freeswap: c_ulong, + pub procs: c_ushort, + pub pad: c_ushort, + pub totalhigh: c_ulong, + pub freehigh: c_ulong, + pub mem_unit: c_uint, + pub _f: [c_char; 0], } pub struct glob_t { // FIXME - pub gl_pathc: ::size_t, + pub gl_pathc: size_t, pub gl_pathv: *mut *mut c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, + pub gl_offs: size_t, + pub gl_flags: c_int, + __unused1: *mut c_void, + __unused2: *mut c_void, + __unused3: *mut c_void, + __unused4: *mut c_void, + __unused5: *mut c_void, } pub struct cpu_set_t { @@ -270,78 +273,78 @@ s! { pub struct fsid_t { // FIXME - __val: [::c_int; 2], + __val: [c_int; 2], } // FIXME(1.0): this is actually a union pub struct sem_t { #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], + __size: [c_char; 16], #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], - __align: [::c_long; 0], + __size: [c_char; 32], + __align: [c_long; 0], } pub struct cmsghdr { - pub cmsg_len: ::size_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub cmsg_len: size_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } } s_no_extra_traits! { #[allow(missing_debug_implementations)] pub struct dirent { - pub d_ino: ::ino64_t, - pub d_off: ::off64_t, + pub d_ino: crate::ino64_t, + pub d_off: off64_t, pub d_reclen: u16, pub d_type: u8, - pub d_name: [::c_char; 256], + pub d_name: [c_char; 256], } } // constants -pub const ENAMETOOLONG: ::c_int = 36; // File name too long -pub const ENOTEMPTY: ::c_int = 39; // Directory not empty -pub const ELOOP: ::c_int = 40; // Too many symbolic links encountered -pub const EADDRINUSE: ::c_int = 98; // Address already in use -pub const EADDRNOTAVAIL: ::c_int = 99; // Cannot assign requested address -pub const ENETDOWN: ::c_int = 100; // Network is down -pub const ENETUNREACH: ::c_int = 101; // Network is unreachable -pub const ECONNABORTED: ::c_int = 103; // Software caused connection abort -pub const ECONNREFUSED: ::c_int = 111; // Connection refused -pub const ECONNRESET: ::c_int = 104; // Connection reset by peer -pub const EDEADLK: ::c_int = 35; // Resource deadlock would occur -pub const ENOSYS: ::c_int = 38; // Function not implemented -pub const ENOTCONN: ::c_int = 107; // Transport endpoint is not connected -pub const ETIMEDOUT: ::c_int = 110; // connection timed out -pub const ESTALE: ::c_int = 116; // Stale file handle -pub const EHOSTUNREACH: ::c_int = 113; // No route to host -pub const EDQUOT: ::c_int = 122; // Quota exceeded -pub const EOPNOTSUPP: ::c_int = 0x5f; -pub const ENODATA: ::c_int = 0x3d; -pub const O_APPEND: ::c_int = 0o2000; -pub const O_ACCMODE: ::c_int = 0o003; -pub const O_CLOEXEC: ::c_int = 0x80000; -pub const O_CREAT: ::c_int = 0100; -pub const O_DIRECTORY: ::c_int = 0o200000; -pub const O_EXCL: ::c_int = 0o200; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_NONBLOCK: ::c_int = 0o4000; -pub const O_TRUNC: ::c_int = 0o1000; +pub const ENAMETOOLONG: c_int = 36; // File name too long +pub const ENOTEMPTY: c_int = 39; // Directory not empty +pub const ELOOP: c_int = 40; // Too many symbolic links encountered +pub const EADDRINUSE: c_int = 98; // Address already in use +pub const EADDRNOTAVAIL: c_int = 99; // Cannot assign requested address +pub const ENETDOWN: c_int = 100; // Network is down +pub const ENETUNREACH: c_int = 101; // Network is unreachable +pub const ECONNABORTED: c_int = 103; // Software caused connection abort +pub const ECONNREFUSED: c_int = 111; // Connection refused +pub const ECONNRESET: c_int = 104; // Connection reset by peer +pub const EDEADLK: c_int = 35; // Resource deadlock would occur +pub const ENOSYS: c_int = 38; // Function not implemented +pub const ENOTCONN: c_int = 107; // Transport endpoint is not connected +pub const ETIMEDOUT: c_int = 110; // connection timed out +pub const ESTALE: c_int = 116; // Stale file handle +pub const EHOSTUNREACH: c_int = 113; // No route to host +pub const EDQUOT: c_int = 122; // Quota exceeded +pub const EOPNOTSUPP: c_int = 0x5f; +pub const ENODATA: c_int = 0x3d; +pub const O_APPEND: c_int = 0o2000; +pub const O_ACCMODE: c_int = 0o003; +pub const O_CLOEXEC: c_int = 0x80000; +pub const O_CREAT: c_int = 0100; +pub const O_DIRECTORY: c_int = 0o200000; +pub const O_EXCL: c_int = 0o200; +pub const O_NOFOLLOW: c_int = 0x20000; +pub const O_NONBLOCK: c_int = 0o4000; +pub const O_TRUNC: c_int = 0o1000; pub const NCCS: usize = 32; -pub const SIG_SETMASK: ::c_int = 2; // Set the set of blocked signals +pub const SIG_SETMASK: c_int = 2; // Set the set of blocked signals pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const SOCK_DGRAM: ::c_int = 2; // connectionless, unreliable datagrams -pub const SOCK_STREAM: ::c_int = 1; // …/common/bits/socket_type.h +pub const SOCK_DGRAM: c_int = 2; // connectionless, unreliable datagrams +pub const SOCK_STREAM: c_int = 1; // …/common/bits/socket_type.h pub const __SIZEOF_PTHREAD_COND_T: usize = 48; pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const PIDFD_NONBLOCK: ::c_int = 0o4000; +pub const PIDFD_NONBLOCK: c_int = 0o4000; cfg_if! { if #[cfg(target_os = "l4re")] { diff --git a/src/unix/linux_like/linux/uclibc/x86_64/other.rs b/src/unix/linux_like/linux/uclibc/x86_64/other.rs index 481577cfc27ff..7890d76f24b43 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/other.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/other.rs @@ -1,5 +1,7 @@ +use crate::c_ulong; + // Thestyle checker discourages the use of #[cfg], so this has to go into a // separate module -pub type pthread_t = ::c_ulong; +pub type pthread_t = c_ulong; pub const PTHREAD_STACK_MIN: usize = 16384; diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 567bf21aeab41..3a4a181518165 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1,10 +1,12 @@ +use crate::{c_int, c_short, c_uchar, c_uint, c_ushort, c_void, intptr_t, size_t, ssize_t}; + pub type sa_family_t = u16; -pub type speed_t = ::c_uint; -pub type tcflag_t = ::c_uint; -pub type clockid_t = ::c_int; -pub type timer_t = *mut ::c_void; -pub type key_t = ::c_int; -pub type id_t = ::c_uint; +pub type speed_t = c_uint; +pub type tcflag_t = c_uint; +pub type clockid_t = c_int; +pub type timer_t = *mut c_void; +pub type key_t = c_int; +pub type id_t = c_uint; missing! { #[cfg_attr(feature = "extra_traits", derive(Debug))] @@ -13,7 +15,7 @@ missing! { s! { pub struct in_addr { - pub s_addr: ::in_addr_t, + pub s_addr: crate::in_addr_t, } pub struct ip_mreq { @@ -24,7 +26,7 @@ s! { pub struct ip_mreqn { pub imr_multiaddr: in_addr, pub imr_address: in_addr, - pub imr_ifindex: ::c_int, + pub imr_ifindex: c_int, } pub struct ip_mreq_source { @@ -35,160 +37,160 @@ s! { pub struct sockaddr { pub sa_family: sa_family_t, - pub sa_data: [::c_char; 14], + pub sa_data: [c_char; 14], } pub struct sockaddr_in { pub sin_family: sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, pub sin_zero: [u8; 8], } pub struct sockaddr_in6 { pub sin6_family: sa_family_t, - pub sin6_port: ::in_port_t, + pub sin6_port: crate::in_port_t, pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, + pub sin6_addr: crate::in6_addr, pub sin6_scope_id: u32, } // The order of the `ai_addr` field in this struct is crucial // for converting between the Rust and C types. pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, + pub ai_flags: c_int, + pub ai_family: c_int, + pub ai_socktype: c_int, + pub ai_protocol: c_int, pub ai_addrlen: socklen_t, #[cfg(any(target_os = "linux", target_os = "emscripten"))] - pub ai_addr: *mut ::sockaddr, + pub ai_addr: *mut crate::sockaddr, pub ai_canonname: *mut c_char, #[cfg(target_os = "android")] - pub ai_addr: *mut ::sockaddr, + pub ai_addr: *mut crate::sockaddr, pub ai_next: *mut addrinfo, } pub struct sockaddr_ll { - pub sll_family: ::c_ushort, - pub sll_protocol: ::c_ushort, - pub sll_ifindex: ::c_int, - pub sll_hatype: ::c_ushort, - pub sll_pkttype: ::c_uchar, - pub sll_halen: ::c_uchar, - pub sll_addr: [::c_uchar; 8], + pub sll_family: c_ushort, + pub sll_protocol: c_ushort, + pub sll_ifindex: c_int, + pub sll_hatype: c_ushort, + pub sll_pkttype: c_uchar, + pub sll_halen: c_uchar, + pub sll_addr: [c_uchar; 8], } pub struct fd_set { - fds_bits: [::c_ulong; FD_SETSIZE as usize / ULONG_SIZE], + fds_bits: [c_ulong; FD_SETSIZE as usize / ULONG_SIZE], } pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, - pub tm_gmtoff: ::c_long, - pub tm_zone: *const ::c_char, + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + pub tm_gmtoff: c_long, + pub tm_zone: *const c_char, } pub struct sched_param { - pub sched_priority: ::c_int, + pub sched_priority: c_int, #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))] - pub sched_ss_low_priority: ::c_int, + pub sched_ss_low_priority: c_int, #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))] - pub sched_ss_repl_period: ::timespec, + pub sched_ss_repl_period: crate::timespec, #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))] - pub sched_ss_init_budget: ::timespec, + pub sched_ss_init_budget: crate::timespec, #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))] - pub sched_ss_max_repl: ::c_int, + pub sched_ss_max_repl: c_int, } pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, + pub dli_fname: *const c_char, + pub dli_fbase: *mut c_void, + pub dli_sname: *const c_char, + pub dli_saddr: *mut c_void, } pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, + pub decimal_point: *mut c_char, + pub thousands_sep: *mut c_char, + pub grouping: *mut c_char, + pub int_curr_symbol: *mut c_char, + pub currency_symbol: *mut c_char, + pub mon_decimal_point: *mut c_char, + pub mon_thousands_sep: *mut c_char, + pub mon_grouping: *mut c_char, + pub positive_sign: *mut c_char, + pub negative_sign: *mut c_char, + pub int_frac_digits: c_char, + pub frac_digits: c_char, + pub p_cs_precedes: c_char, + pub p_sep_by_space: c_char, + pub n_cs_precedes: c_char, + pub n_sep_by_space: c_char, + pub p_sign_posn: c_char, + pub n_sign_posn: c_char, + pub int_p_cs_precedes: c_char, + pub int_p_sep_by_space: c_char, + pub int_n_cs_precedes: c_char, + pub int_n_sep_by_space: c_char, + pub int_p_sign_posn: c_char, + pub int_n_sign_posn: c_char, } pub struct in_pktinfo { - pub ipi_ifindex: ::c_int, - pub ipi_spec_dst: ::in_addr, - pub ipi_addr: ::in_addr, + pub ipi_ifindex: c_int, + pub ipi_spec_dst: crate::in_addr, + pub ipi_addr: crate::in_addr, } pub struct ifaddrs { pub ifa_next: *mut ifaddrs, pub ifa_name: *mut c_char, - pub ifa_flags: ::c_uint, - pub ifa_addr: *mut ::sockaddr, - pub ifa_netmask: *mut ::sockaddr, - pub ifa_ifu: *mut ::sockaddr, // FIXME This should be a union - pub ifa_data: *mut ::c_void, + pub ifa_flags: c_uint, + pub ifa_addr: *mut crate::sockaddr, + pub ifa_netmask: *mut crate::sockaddr, + pub ifa_ifu: *mut crate::sockaddr, // FIXME This should be a union + pub ifa_data: *mut c_void, } pub struct in6_rtmsg { - rtmsg_dst: ::in6_addr, - rtmsg_src: ::in6_addr, - rtmsg_gateway: ::in6_addr, + rtmsg_dst: crate::in6_addr, + rtmsg_src: crate::in6_addr, + rtmsg_gateway: crate::in6_addr, rtmsg_type: u32, rtmsg_dst_len: u16, rtmsg_src_len: u16, rtmsg_metric: u32, - rtmsg_info: ::c_ulong, + rtmsg_info: c_ulong, rtmsg_flags: u32, - rtmsg_ifindex: ::c_int, + rtmsg_ifindex: c_int, } pub struct arpreq { - pub arp_pa: ::sockaddr, - pub arp_ha: ::sockaddr, - pub arp_flags: ::c_int, - pub arp_netmask: ::sockaddr, - pub arp_dev: [::c_char; 16], + pub arp_pa: crate::sockaddr, + pub arp_ha: crate::sockaddr, + pub arp_flags: c_int, + pub arp_netmask: crate::sockaddr, + pub arp_dev: [c_char; 16], } pub struct arpreq_old { - pub arp_pa: ::sockaddr, - pub arp_ha: ::sockaddr, - pub arp_flags: ::c_int, - pub arp_netmask: ::sockaddr, + pub arp_pa: crate::sockaddr, + pub arp_ha: crate::sockaddr, + pub arp_flags: c_int, + pub arp_netmask: crate::sockaddr, } pub struct arphdr { @@ -200,8 +202,8 @@ s! { } pub struct mmsghdr { - pub msg_hdr: ::msghdr, - pub msg_len: ::c_uint, + pub msg_hdr: crate::msghdr, + pub msg_len: c_uint, } } @@ -209,36 +211,36 @@ cfg_if! { if #[cfg(any(target_env = "gnu", target_os = "android"))] { s! { pub struct statx { - pub stx_mask: ::__u32, - pub stx_blksize: ::__u32, - pub stx_attributes: ::__u64, - pub stx_nlink: ::__u32, - pub stx_uid: ::__u32, - pub stx_gid: ::__u32, - pub stx_mode: ::__u16, - __statx_pad1: [::__u16; 1], - pub stx_ino: ::__u64, - pub stx_size: ::__u64, - pub stx_blocks: ::__u64, - pub stx_attributes_mask: ::__u64, + pub stx_mask: crate::__u32, + pub stx_blksize: crate::__u32, + pub stx_attributes: crate::__u64, + pub stx_nlink: crate::__u32, + pub stx_uid: crate::__u32, + pub stx_gid: crate::__u32, + pub stx_mode: crate::__u16, + __statx_pad1: [crate::__u16; 1], + pub stx_ino: crate::__u64, + pub stx_size: crate::__u64, + pub stx_blocks: crate::__u64, + pub stx_attributes_mask: crate::__u64, pub stx_atime: statx_timestamp, pub stx_btime: statx_timestamp, pub stx_ctime: statx_timestamp, pub stx_mtime: statx_timestamp, - pub stx_rdev_major: ::__u32, - pub stx_rdev_minor: ::__u32, - pub stx_dev_major: ::__u32, - pub stx_dev_minor: ::__u32, - pub stx_mnt_id: ::__u64, - pub stx_dio_mem_align: ::__u32, - pub stx_dio_offset_align: ::__u32, - __statx_pad3: [::__u64; 12], + pub stx_rdev_major: crate::__u32, + pub stx_rdev_minor: crate::__u32, + pub stx_dev_major: crate::__u32, + pub stx_dev_minor: crate::__u32, + pub stx_mnt_id: crate::__u64, + pub stx_dio_mem_align: crate::__u32, + pub stx_dio_offset_align: crate::__u32, + __statx_pad3: [crate::__u64; 12], } pub struct statx_timestamp { - pub tv_sec: ::__s64, - pub tv_nsec: ::__u32, - __statx_timestamp_pad1: [::__s32; 1], + pub tv_sec: crate::__s64, + pub tv_nsec: crate::__u32, + __statx_timestamp_pad1: [crate::__s32; 1], } } } @@ -263,7 +265,7 @@ s_no_extra_traits! { pub struct sockaddr_un { pub sun_family: sa_family_t, - pub sun_path: [::c_char; 108], + pub sun_path: [c_char; 108], } pub struct sockaddr_storage { @@ -272,29 +274,29 @@ s_no_extra_traits! { __ss_pad2: [u8; 128 - 2 - 4], #[cfg(target_pointer_width = "64")] __ss_pad2: [u8; 128 - 2 - 8], - __ss_align: ::size_t, + __ss_align: size_t, } pub struct utsname { - pub sysname: [::c_char; 65], - pub nodename: [::c_char; 65], - pub release: [::c_char; 65], - pub version: [::c_char; 65], - pub machine: [::c_char; 65], - pub domainname: [::c_char; 65], + pub sysname: [c_char; 65], + pub nodename: [c_char; 65], + pub release: [c_char; 65], + pub version: [c_char; 65], + pub machine: [c_char; 65], + pub domainname: [c_char; 65], } pub struct sigevent { - pub sigev_value: ::sigval, - pub sigev_signo: ::c_int, - pub sigev_notify: ::c_int, + pub sigev_value: crate::sigval, + pub sigev_signo: c_int, + pub sigev_notify: c_int, // Actually a union. We only expose sigev_notify_thread_id because it's // the most useful member - pub sigev_notify_thread_id: ::c_int, + pub sigev_notify_thread_id: c_int, #[cfg(target_pointer_width = "64")] - __unused1: [::c_int; 11], + __unused1: [c_int; 11], #[cfg(target_pointer_width = "32")] - __unused1: [::c_int; 12], + __unused1: [c_int; 12], } } @@ -306,8 +308,8 @@ cfg_if! { } } impl Eq for epoll_event {} - impl ::fmt::Debug for epoll_event { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for epoll_event { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { let events = self.events; let u64 = self.u64; f.debug_struct("epoll_event") @@ -316,8 +318,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for epoll_event { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for epoll_event { + fn hash(&self, state: &mut H) { let events = self.events; let u64 = self.u64; events.hash(state); @@ -336,16 +338,16 @@ cfg_if! { } } impl Eq for sockaddr_un {} - impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_un") .field("sun_family", &self.sun_family) // FIXME: .field("sun_path", &self.sun_path) .finish() } } - impl ::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { self.sun_family.hash(state); self.sun_path.hash(state); } @@ -364,8 +366,8 @@ cfg_if! { impl Eq for sockaddr_storage {} - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_family", &self.ss_family) .field("__ss_align", &self.__ss_align) @@ -374,8 +376,8 @@ cfg_if! { } } - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_family.hash(state); self.__ss_pad2.hash(state); } @@ -417,8 +419,8 @@ cfg_if! { impl Eq for utsname {} - impl ::fmt::Debug for utsname { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utsname { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utsname") // FIXME: .field("sysname", &self.sysname) // FIXME: .field("nodename", &self.nodename) @@ -430,8 +432,8 @@ cfg_if! { } } - impl ::hash::Hash for utsname { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utsname { + fn hash(&self, state: &mut H) { self.sysname.hash(state); self.nodename.hash(state); self.release.hash(state); @@ -450,8 +452,8 @@ cfg_if! { } } impl Eq for sigevent {} - impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sigevent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sigevent") .field("sigev_value", &self.sigev_value) .field("sigev_signo", &self.sigev_signo) @@ -460,8 +462,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_value.hash(state); self.sigev_signo.hash(state); self.sigev_notify.hash(state); @@ -482,656 +484,656 @@ cfg_if! { } } -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 2147483647; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 2; -pub const _IOLBF: ::c_int = 1; - -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; +pub const EXIT_FAILURE: c_int = 1; +pub const EXIT_SUCCESS: c_int = 0; +pub const RAND_MAX: c_int = 2147483647; +pub const EOF: c_int = -1; +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; +pub const _IOFBF: c_int = 0; +pub const _IONBF: c_int = 2; +pub const _IOLBF: c_int = 1; + +pub const F_DUPFD: c_int = 0; +pub const F_GETFD: c_int = 1; +pub const F_SETFD: c_int = 2; +pub const F_GETFL: c_int = 3; +pub const F_SETFL: c_int = 4; // Linux-specific fcntls -pub const F_SETLEASE: ::c_int = 1024; -pub const F_GETLEASE: ::c_int = 1025; -pub const F_NOTIFY: ::c_int = 1026; -pub const F_CANCELLK: ::c_int = 1029; -pub const F_DUPFD_CLOEXEC: ::c_int = 1030; -pub const F_SETPIPE_SZ: ::c_int = 1031; -pub const F_GETPIPE_SZ: ::c_int = 1032; -pub const F_ADD_SEALS: ::c_int = 1033; -pub const F_GET_SEALS: ::c_int = 1034; - -pub const F_SEAL_SEAL: ::c_int = 0x0001; -pub const F_SEAL_SHRINK: ::c_int = 0x0002; -pub const F_SEAL_GROW: ::c_int = 0x0004; -pub const F_SEAL_WRITE: ::c_int = 0x0008; +pub const F_SETLEASE: c_int = 1024; +pub const F_GETLEASE: c_int = 1025; +pub const F_NOTIFY: c_int = 1026; +pub const F_CANCELLK: c_int = 1029; +pub const F_DUPFD_CLOEXEC: c_int = 1030; +pub const F_SETPIPE_SZ: c_int = 1031; +pub const F_GETPIPE_SZ: c_int = 1032; +pub const F_ADD_SEALS: c_int = 1033; +pub const F_GET_SEALS: c_int = 1034; + +pub const F_SEAL_SEAL: c_int = 0x0001; +pub const F_SEAL_SHRINK: c_int = 0x0002; +pub const F_SEAL_GROW: c_int = 0x0004; +pub const F_SEAL_WRITE: c_int = 0x0008; // FIXME(#235): Include file sealing fcntls once we have a way to verify them. -pub const SIGTRAP: ::c_int = 5; - -pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; -pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; - -pub const CLOCK_REALTIME: ::clockid_t = 0; -pub const CLOCK_MONOTONIC: ::clockid_t = 1; -pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 2; -pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 3; -pub const CLOCK_MONOTONIC_RAW: ::clockid_t = 4; -pub const CLOCK_REALTIME_COARSE: ::clockid_t = 5; -pub const CLOCK_MONOTONIC_COARSE: ::clockid_t = 6; -pub const CLOCK_BOOTTIME: ::clockid_t = 7; -pub const CLOCK_REALTIME_ALARM: ::clockid_t = 8; -pub const CLOCK_BOOTTIME_ALARM: ::clockid_t = 9; -pub const CLOCK_TAI: ::clockid_t = 11; -pub const TIMER_ABSTIME: ::c_int = 1; - -pub const RUSAGE_SELF: ::c_int = 0; - -pub const O_RDONLY: ::c_int = 0; -pub const O_WRONLY: ::c_int = 1; -pub const O_RDWR: ::c_int = 2; - -pub const SOCK_CLOEXEC: ::c_int = O_CLOEXEC; - -pub const S_IFIFO: ::mode_t = 0o1_0000; -pub const S_IFCHR: ::mode_t = 0o2_0000; -pub const S_IFBLK: ::mode_t = 0o6_0000; -pub const S_IFDIR: ::mode_t = 0o4_0000; -pub const S_IFREG: ::mode_t = 0o10_0000; -pub const S_IFLNK: ::mode_t = 0o12_0000; -pub const S_IFSOCK: ::mode_t = 0o14_0000; -pub const S_IFMT: ::mode_t = 0o17_0000; -pub const S_IRWXU: ::mode_t = 0o0700; -pub const S_IXUSR: ::mode_t = 0o0100; -pub const S_IWUSR: ::mode_t = 0o0200; -pub const S_IRUSR: ::mode_t = 0o0400; -pub const S_IRWXG: ::mode_t = 0o0070; -pub const S_IXGRP: ::mode_t = 0o0010; -pub const S_IWGRP: ::mode_t = 0o0020; -pub const S_IRGRP: ::mode_t = 0o0040; -pub const S_IRWXO: ::mode_t = 0o0007; -pub const S_IXOTH: ::mode_t = 0o0001; -pub const S_IWOTH: ::mode_t = 0o0002; -pub const S_IROTH: ::mode_t = 0o0004; -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSEGV: ::c_int = 11; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; - -pub const PROT_NONE: ::c_int = 0; -pub const PROT_READ: ::c_int = 1; -pub const PROT_WRITE: ::c_int = 2; -pub const PROT_EXEC: ::c_int = 4; - -pub const XATTR_CREATE: ::c_int = 0x1; -pub const XATTR_REPLACE: ::c_int = 0x2; +pub const SIGTRAP: c_int = 5; + +pub const PTHREAD_CREATE_JOINABLE: c_int = 0; +pub const PTHREAD_CREATE_DETACHED: c_int = 1; + +pub const CLOCK_REALTIME: crate::clockid_t = 0; +pub const CLOCK_MONOTONIC: crate::clockid_t = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: crate::clockid_t = 2; +pub const CLOCK_THREAD_CPUTIME_ID: crate::clockid_t = 3; +pub const CLOCK_MONOTONIC_RAW: crate::clockid_t = 4; +pub const CLOCK_REALTIME_COARSE: crate::clockid_t = 5; +pub const CLOCK_MONOTONIC_COARSE: crate::clockid_t = 6; +pub const CLOCK_BOOTTIME: crate::clockid_t = 7; +pub const CLOCK_REALTIME_ALARM: crate::clockid_t = 8; +pub const CLOCK_BOOTTIME_ALARM: crate::clockid_t = 9; +pub const CLOCK_TAI: crate::clockid_t = 11; +pub const TIMER_ABSTIME: c_int = 1; + +pub const RUSAGE_SELF: c_int = 0; + +pub const O_RDONLY: c_int = 0; +pub const O_WRONLY: c_int = 1; +pub const O_RDWR: c_int = 2; + +pub const SOCK_CLOEXEC: c_int = O_CLOEXEC; + +pub const S_IFIFO: crate::mode_t = 0o1_0000; +pub const S_IFCHR: crate::mode_t = 0o2_0000; +pub const S_IFBLK: crate::mode_t = 0o6_0000; +pub const S_IFDIR: crate::mode_t = 0o4_0000; +pub const S_IFREG: crate::mode_t = 0o10_0000; +pub const S_IFLNK: crate::mode_t = 0o12_0000; +pub const S_IFSOCK: crate::mode_t = 0o14_0000; +pub const S_IFMT: crate::mode_t = 0o17_0000; +pub const S_IRWXU: crate::mode_t = 0o0700; +pub const S_IXUSR: crate::mode_t = 0o0100; +pub const S_IWUSR: crate::mode_t = 0o0200; +pub const S_IRUSR: crate::mode_t = 0o0400; +pub const S_IRWXG: crate::mode_t = 0o0070; +pub const S_IXGRP: crate::mode_t = 0o0010; +pub const S_IWGRP: crate::mode_t = 0o0020; +pub const S_IRGRP: crate::mode_t = 0o0040; +pub const S_IRWXO: crate::mode_t = 0o0007; +pub const S_IXOTH: crate::mode_t = 0o0001; +pub const S_IWOTH: crate::mode_t = 0o0002; +pub const S_IROTH: crate::mode_t = 0o0004; +pub const F_OK: c_int = 0; +pub const R_OK: c_int = 4; +pub const W_OK: c_int = 2; +pub const X_OK: c_int = 1; +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGABRT: c_int = 6; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGSEGV: c_int = 11; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; + +pub const PROT_NONE: c_int = 0; +pub const PROT_READ: c_int = 1; +pub const PROT_WRITE: c_int = 2; +pub const PROT_EXEC: c_int = 4; + +pub const XATTR_CREATE: c_int = 0x1; +pub const XATTR_REPLACE: c_int = 0x2; cfg_if! { if #[cfg(target_os = "android")] { - pub const RLIM64_INFINITY: ::c_ulonglong = !0; + pub const RLIM64_INFINITY: crate::c_ulonglong = !0; } else { - pub const RLIM64_INFINITY: ::rlim64_t = !0; + pub const RLIM64_INFINITY: crate::rlim64_t = !0; } } cfg_if! { if #[cfg(target_env = "ohos")] { - pub const LC_CTYPE: ::c_int = 0; - pub const LC_NUMERIC: ::c_int = 1; - pub const LC_TIME: ::c_int = 2; - pub const LC_COLLATE: ::c_int = 3; - pub const LC_MONETARY: ::c_int = 4; - pub const LC_MESSAGES: ::c_int = 5; - pub const LC_PAPER: ::c_int = 6; - pub const LC_NAME: ::c_int = 7; - pub const LC_ADDRESS: ::c_int = 8; - pub const LC_TELEPHONE: ::c_int = 9; - pub const LC_MEASUREMENT: ::c_int = 10; - pub const LC_IDENTIFICATION: ::c_int = 11; - pub const LC_ALL: ::c_int = 12; + pub const LC_CTYPE: c_int = 0; + pub const LC_NUMERIC: c_int = 1; + pub const LC_TIME: c_int = 2; + pub const LC_COLLATE: c_int = 3; + pub const LC_MONETARY: c_int = 4; + pub const LC_MESSAGES: c_int = 5; + pub const LC_PAPER: c_int = 6; + pub const LC_NAME: c_int = 7; + pub const LC_ADDRESS: c_int = 8; + pub const LC_TELEPHONE: c_int = 9; + pub const LC_MEASUREMENT: c_int = 10; + pub const LC_IDENTIFICATION: c_int = 11; + pub const LC_ALL: c_int = 12; } else if #[cfg(not(target_env = "uclibc"))] { - pub const LC_CTYPE: ::c_int = 0; - pub const LC_NUMERIC: ::c_int = 1; - pub const LC_TIME: ::c_int = 2; - pub const LC_COLLATE: ::c_int = 3; - pub const LC_MONETARY: ::c_int = 4; - pub const LC_MESSAGES: ::c_int = 5; - pub const LC_ALL: ::c_int = 6; + pub const LC_CTYPE: c_int = 0; + pub const LC_NUMERIC: c_int = 1; + pub const LC_TIME: c_int = 2; + pub const LC_COLLATE: c_int = 3; + pub const LC_MONETARY: c_int = 4; + pub const LC_MESSAGES: c_int = 5; + pub const LC_ALL: c_int = 6; } } -pub const LC_CTYPE_MASK: ::c_int = 1 << LC_CTYPE; -pub const LC_NUMERIC_MASK: ::c_int = 1 << LC_NUMERIC; -pub const LC_TIME_MASK: ::c_int = 1 << LC_TIME; -pub const LC_COLLATE_MASK: ::c_int = 1 << LC_COLLATE; -pub const LC_MONETARY_MASK: ::c_int = 1 << LC_MONETARY; -pub const LC_MESSAGES_MASK: ::c_int = 1 << LC_MESSAGES; +pub const LC_CTYPE_MASK: c_int = 1 << LC_CTYPE; +pub const LC_NUMERIC_MASK: c_int = 1 << LC_NUMERIC; +pub const LC_TIME_MASK: c_int = 1 << LC_TIME; +pub const LC_COLLATE_MASK: c_int = 1 << LC_COLLATE; +pub const LC_MONETARY_MASK: c_int = 1 << LC_MONETARY; +pub const LC_MESSAGES_MASK: c_int = 1 << LC_MESSAGES; // LC_ALL_MASK defined per platform -pub const MAP_FILE: ::c_int = 0x0000; -pub const MAP_SHARED: ::c_int = 0x0001; -pub const MAP_PRIVATE: ::c_int = 0x0002; -pub const MAP_FIXED: ::c_int = 0x0010; +pub const MAP_FILE: c_int = 0x0000; +pub const MAP_SHARED: c_int = 0x0001; +pub const MAP_PRIVATE: c_int = 0x0002; +pub const MAP_FIXED: c_int = 0x0010; -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; +pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; // MS_ flags for msync(2) -pub const MS_ASYNC: ::c_int = 0x0001; -pub const MS_INVALIDATE: ::c_int = 0x0002; -pub const MS_SYNC: ::c_int = 0x0004; +pub const MS_ASYNC: c_int = 0x0001; +pub const MS_INVALIDATE: c_int = 0x0002; +pub const MS_SYNC: c_int = 0x0004; // MS_ flags for mount(2) -pub const MS_RDONLY: ::c_ulong = 0x01; -pub const MS_NOSUID: ::c_ulong = 0x02; -pub const MS_NODEV: ::c_ulong = 0x04; -pub const MS_NOEXEC: ::c_ulong = 0x08; -pub const MS_SYNCHRONOUS: ::c_ulong = 0x10; -pub const MS_REMOUNT: ::c_ulong = 0x20; -pub const MS_MANDLOCK: ::c_ulong = 0x40; -pub const MS_DIRSYNC: ::c_ulong = 0x80; -pub const MS_NOATIME: ::c_ulong = 0x0400; -pub const MS_NODIRATIME: ::c_ulong = 0x0800; -pub const MS_BIND: ::c_ulong = 0x1000; -pub const MS_MOVE: ::c_ulong = 0x2000; -pub const MS_REC: ::c_ulong = 0x4000; -pub const MS_SILENT: ::c_ulong = 0x8000; -pub const MS_POSIXACL: ::c_ulong = 0x010000; -pub const MS_UNBINDABLE: ::c_ulong = 0x020000; -pub const MS_PRIVATE: ::c_ulong = 0x040000; -pub const MS_SLAVE: ::c_ulong = 0x080000; -pub const MS_SHARED: ::c_ulong = 0x100000; -pub const MS_RELATIME: ::c_ulong = 0x200000; -pub const MS_KERNMOUNT: ::c_ulong = 0x400000; -pub const MS_I_VERSION: ::c_ulong = 0x800000; -pub const MS_STRICTATIME: ::c_ulong = 0x1000000; -pub const MS_LAZYTIME: ::c_ulong = 0x2000000; -pub const MS_ACTIVE: ::c_ulong = 0x40000000; -pub const MS_MGC_VAL: ::c_ulong = 0xc0ed0000; -pub const MS_MGC_MSK: ::c_ulong = 0xffff0000; - -pub const SCM_RIGHTS: ::c_int = 0x01; -pub const SCM_CREDENTIALS: ::c_int = 0x02; - -pub const PROT_GROWSDOWN: ::c_int = 0x1000000; -pub const PROT_GROWSUP: ::c_int = 0x2000000; - -pub const MAP_TYPE: ::c_int = 0x000f; - -pub const MADV_NORMAL: ::c_int = 0; -pub const MADV_RANDOM: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_WILLNEED: ::c_int = 3; -pub const MADV_DONTNEED: ::c_int = 4; -pub const MADV_FREE: ::c_int = 8; -pub const MADV_REMOVE: ::c_int = 9; -pub const MADV_DONTFORK: ::c_int = 10; -pub const MADV_DOFORK: ::c_int = 11; -pub const MADV_MERGEABLE: ::c_int = 12; -pub const MADV_UNMERGEABLE: ::c_int = 13; -pub const MADV_HUGEPAGE: ::c_int = 14; -pub const MADV_NOHUGEPAGE: ::c_int = 15; -pub const MADV_DONTDUMP: ::c_int = 16; -pub const MADV_DODUMP: ::c_int = 17; -pub const MADV_WIPEONFORK: ::c_int = 18; -pub const MADV_KEEPONFORK: ::c_int = 19; -pub const MADV_COLD: ::c_int = 20; -pub const MADV_PAGEOUT: ::c_int = 21; -pub const MADV_HWPOISON: ::c_int = 100; +pub const MS_RDONLY: c_ulong = 0x01; +pub const MS_NOSUID: c_ulong = 0x02; +pub const MS_NODEV: c_ulong = 0x04; +pub const MS_NOEXEC: c_ulong = 0x08; +pub const MS_SYNCHRONOUS: c_ulong = 0x10; +pub const MS_REMOUNT: c_ulong = 0x20; +pub const MS_MANDLOCK: c_ulong = 0x40; +pub const MS_DIRSYNC: c_ulong = 0x80; +pub const MS_NOATIME: c_ulong = 0x0400; +pub const MS_NODIRATIME: c_ulong = 0x0800; +pub const MS_BIND: c_ulong = 0x1000; +pub const MS_MOVE: c_ulong = 0x2000; +pub const MS_REC: c_ulong = 0x4000; +pub const MS_SILENT: c_ulong = 0x8000; +pub const MS_POSIXACL: c_ulong = 0x010000; +pub const MS_UNBINDABLE: c_ulong = 0x020000; +pub const MS_PRIVATE: c_ulong = 0x040000; +pub const MS_SLAVE: c_ulong = 0x080000; +pub const MS_SHARED: c_ulong = 0x100000; +pub const MS_RELATIME: c_ulong = 0x200000; +pub const MS_KERNMOUNT: c_ulong = 0x400000; +pub const MS_I_VERSION: c_ulong = 0x800000; +pub const MS_STRICTATIME: c_ulong = 0x1000000; +pub const MS_LAZYTIME: c_ulong = 0x2000000; +pub const MS_ACTIVE: c_ulong = 0x40000000; +pub const MS_MGC_VAL: c_ulong = 0xc0ed0000; +pub const MS_MGC_MSK: c_ulong = 0xffff0000; + +pub const SCM_RIGHTS: c_int = 0x01; +pub const SCM_CREDENTIALS: c_int = 0x02; + +pub const PROT_GROWSDOWN: c_int = 0x1000000; +pub const PROT_GROWSUP: c_int = 0x2000000; + +pub const MAP_TYPE: c_int = 0x000f; + +pub const MADV_NORMAL: c_int = 0; +pub const MADV_RANDOM: c_int = 1; +pub const MADV_SEQUENTIAL: c_int = 2; +pub const MADV_WILLNEED: c_int = 3; +pub const MADV_DONTNEED: c_int = 4; +pub const MADV_FREE: c_int = 8; +pub const MADV_REMOVE: c_int = 9; +pub const MADV_DONTFORK: c_int = 10; +pub const MADV_DOFORK: c_int = 11; +pub const MADV_MERGEABLE: c_int = 12; +pub const MADV_UNMERGEABLE: c_int = 13; +pub const MADV_HUGEPAGE: c_int = 14; +pub const MADV_NOHUGEPAGE: c_int = 15; +pub const MADV_DONTDUMP: c_int = 16; +pub const MADV_DODUMP: c_int = 17; +pub const MADV_WIPEONFORK: c_int = 18; +pub const MADV_KEEPONFORK: c_int = 19; +pub const MADV_COLD: c_int = 20; +pub const MADV_PAGEOUT: c_int = 21; +pub const MADV_HWPOISON: c_int = 100; cfg_if! { if #[cfg(not(target_os = "emscripten"))] { - pub const MADV_POPULATE_READ: ::c_int = 22; - pub const MADV_POPULATE_WRITE: ::c_int = 23; - pub const MADV_DONTNEED_LOCKED: ::c_int = 24; + pub const MADV_POPULATE_READ: c_int = 22; + pub const MADV_POPULATE_WRITE: c_int = 23; + pub const MADV_DONTNEED_LOCKED: c_int = 24; } } -pub const IFF_UP: ::c_int = 0x1; -pub const IFF_BROADCAST: ::c_int = 0x2; -pub const IFF_DEBUG: ::c_int = 0x4; -pub const IFF_LOOPBACK: ::c_int = 0x8; -pub const IFF_POINTOPOINT: ::c_int = 0x10; -pub const IFF_NOTRAILERS: ::c_int = 0x20; -pub const IFF_RUNNING: ::c_int = 0x40; -pub const IFF_NOARP: ::c_int = 0x80; -pub const IFF_PROMISC: ::c_int = 0x100; -pub const IFF_ALLMULTI: ::c_int = 0x200; -pub const IFF_MASTER: ::c_int = 0x400; -pub const IFF_SLAVE: ::c_int = 0x800; -pub const IFF_MULTICAST: ::c_int = 0x1000; -pub const IFF_PORTSEL: ::c_int = 0x2000; -pub const IFF_AUTOMEDIA: ::c_int = 0x4000; -pub const IFF_DYNAMIC: ::c_int = 0x8000; - -pub const SOL_IP: ::c_int = 0; -pub const SOL_TCP: ::c_int = 6; -pub const SOL_UDP: ::c_int = 17; -pub const SOL_IPV6: ::c_int = 41; -pub const SOL_ICMPV6: ::c_int = 58; -pub const SOL_RAW: ::c_int = 255; -pub const SOL_DECNET: ::c_int = 261; -pub const SOL_X25: ::c_int = 262; -pub const SOL_PACKET: ::c_int = 263; -pub const SOL_ATM: ::c_int = 264; -pub const SOL_AAL: ::c_int = 265; -pub const SOL_IRDA: ::c_int = 266; -pub const SOL_NETBEUI: ::c_int = 267; -pub const SOL_LLC: ::c_int = 268; -pub const SOL_DCCP: ::c_int = 269; -pub const SOL_NETLINK: ::c_int = 270; -pub const SOL_TIPC: ::c_int = 271; -pub const SOL_BLUETOOTH: ::c_int = 274; -pub const SOL_ALG: ::c_int = 279; - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_UNIX: ::c_int = 1; -pub const AF_LOCAL: ::c_int = 1; -pub const AF_INET: ::c_int = 2; -pub const AF_AX25: ::c_int = 3; -pub const AF_IPX: ::c_int = 4; -pub const AF_APPLETALK: ::c_int = 5; -pub const AF_NETROM: ::c_int = 6; -pub const AF_BRIDGE: ::c_int = 7; -pub const AF_ATMPVC: ::c_int = 8; -pub const AF_X25: ::c_int = 9; -pub const AF_INET6: ::c_int = 10; -pub const AF_ROSE: ::c_int = 11; -pub const AF_DECnet: ::c_int = 12; -pub const AF_NETBEUI: ::c_int = 13; -pub const AF_SECURITY: ::c_int = 14; -pub const AF_KEY: ::c_int = 15; -pub const AF_NETLINK: ::c_int = 16; -pub const AF_ROUTE: ::c_int = AF_NETLINK; -pub const AF_PACKET: ::c_int = 17; -pub const AF_ASH: ::c_int = 18; -pub const AF_ECONET: ::c_int = 19; -pub const AF_ATMSVC: ::c_int = 20; -pub const AF_RDS: ::c_int = 21; -pub const AF_SNA: ::c_int = 22; -pub const AF_IRDA: ::c_int = 23; -pub const AF_PPPOX: ::c_int = 24; -pub const AF_WANPIPE: ::c_int = 25; -pub const AF_LLC: ::c_int = 26; -pub const AF_CAN: ::c_int = 29; -pub const AF_TIPC: ::c_int = 30; -pub const AF_BLUETOOTH: ::c_int = 31; -pub const AF_IUCV: ::c_int = 32; -pub const AF_RXRPC: ::c_int = 33; -pub const AF_ISDN: ::c_int = 34; -pub const AF_PHONET: ::c_int = 35; -pub const AF_IEEE802154: ::c_int = 36; -pub const AF_CAIF: ::c_int = 37; -pub const AF_ALG: ::c_int = 38; - -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_UNIX: ::c_int = AF_UNIX; -pub const PF_LOCAL: ::c_int = AF_LOCAL; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_AX25: ::c_int = AF_AX25; -pub const PF_IPX: ::c_int = AF_IPX; -pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -pub const PF_NETROM: ::c_int = AF_NETROM; -pub const PF_BRIDGE: ::c_int = AF_BRIDGE; -pub const PF_ATMPVC: ::c_int = AF_ATMPVC; -pub const PF_X25: ::c_int = AF_X25; -pub const PF_INET6: ::c_int = AF_INET6; -pub const PF_ROSE: ::c_int = AF_ROSE; -pub const PF_DECnet: ::c_int = AF_DECnet; -pub const PF_NETBEUI: ::c_int = AF_NETBEUI; -pub const PF_SECURITY: ::c_int = AF_SECURITY; -pub const PF_KEY: ::c_int = AF_KEY; -pub const PF_NETLINK: ::c_int = AF_NETLINK; -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_PACKET: ::c_int = AF_PACKET; -pub const PF_ASH: ::c_int = AF_ASH; -pub const PF_ECONET: ::c_int = AF_ECONET; -pub const PF_ATMSVC: ::c_int = AF_ATMSVC; -pub const PF_RDS: ::c_int = AF_RDS; -pub const PF_SNA: ::c_int = AF_SNA; -pub const PF_IRDA: ::c_int = AF_IRDA; -pub const PF_PPPOX: ::c_int = AF_PPPOX; -pub const PF_WANPIPE: ::c_int = AF_WANPIPE; -pub const PF_LLC: ::c_int = AF_LLC; -pub const PF_CAN: ::c_int = AF_CAN; -pub const PF_TIPC: ::c_int = AF_TIPC; -pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -pub const PF_IUCV: ::c_int = AF_IUCV; -pub const PF_RXRPC: ::c_int = AF_RXRPC; -pub const PF_ISDN: ::c_int = AF_ISDN; -pub const PF_PHONET: ::c_int = AF_PHONET; -pub const PF_IEEE802154: ::c_int = AF_IEEE802154; -pub const PF_CAIF: ::c_int = AF_CAIF; -pub const PF_ALG: ::c_int = AF_ALG; - -pub const MSG_OOB: ::c_int = 1; -pub const MSG_PEEK: ::c_int = 2; -pub const MSG_DONTROUTE: ::c_int = 4; -pub const MSG_CTRUNC: ::c_int = 8; -pub const MSG_TRUNC: ::c_int = 0x20; -pub const MSG_DONTWAIT: ::c_int = 0x40; -pub const MSG_EOR: ::c_int = 0x80; -pub const MSG_WAITALL: ::c_int = 0x100; -pub const MSG_FIN: ::c_int = 0x200; -pub const MSG_SYN: ::c_int = 0x400; -pub const MSG_CONFIRM: ::c_int = 0x800; -pub const MSG_RST: ::c_int = 0x1000; -pub const MSG_ERRQUEUE: ::c_int = 0x2000; -pub const MSG_NOSIGNAL: ::c_int = 0x4000; -pub const MSG_MORE: ::c_int = 0x8000; -pub const MSG_WAITFORONE: ::c_int = 0x10000; -pub const MSG_FASTOPEN: ::c_int = 0x20000000; -pub const MSG_CMSG_CLOEXEC: ::c_int = 0x40000000; - -pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; - -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; -pub const IP_TOS: ::c_int = 1; -pub const IP_TTL: ::c_int = 2; -pub const IP_HDRINCL: ::c_int = 3; -pub const IP_OPTIONS: ::c_int = 4; -pub const IP_ROUTER_ALERT: ::c_int = 5; -pub const IP_RECVOPTS: ::c_int = 6; -pub const IP_RETOPTS: ::c_int = 7; -pub const IP_PKTINFO: ::c_int = 8; -pub const IP_PKTOPTIONS: ::c_int = 9; -pub const IP_MTU_DISCOVER: ::c_int = 10; -pub const IP_RECVERR: ::c_int = 11; -pub const IP_RECVTTL: ::c_int = 12; -pub const IP_RECVTOS: ::c_int = 13; -pub const IP_MTU: ::c_int = 14; -pub const IP_FREEBIND: ::c_int = 15; -pub const IP_IPSEC_POLICY: ::c_int = 16; -pub const IP_XFRM_POLICY: ::c_int = 17; -pub const IP_PASSSEC: ::c_int = 18; -pub const IP_TRANSPARENT: ::c_int = 19; -pub const IP_ORIGDSTADDR: ::c_int = 20; -pub const IP_RECVORIGDSTADDR: ::c_int = IP_ORIGDSTADDR; -pub const IP_MINTTL: ::c_int = 21; -pub const IP_NODEFRAG: ::c_int = 22; -pub const IP_CHECKSUM: ::c_int = 23; -pub const IP_BIND_ADDRESS_NO_PORT: ::c_int = 24; -pub const IP_MULTICAST_IF: ::c_int = 32; -pub const IP_MULTICAST_TTL: ::c_int = 33; -pub const IP_MULTICAST_LOOP: ::c_int = 34; -pub const IP_ADD_MEMBERSHIP: ::c_int = 35; -pub const IP_DROP_MEMBERSHIP: ::c_int = 36; -pub const IP_UNBLOCK_SOURCE: ::c_int = 37; -pub const IP_BLOCK_SOURCE: ::c_int = 38; -pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 39; -pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 40; -pub const IP_MSFILTER: ::c_int = 41; -pub const IP_MULTICAST_ALL: ::c_int = 49; -pub const IP_UNICAST_IF: ::c_int = 50; - -pub const IP_DEFAULT_MULTICAST_TTL: ::c_int = 1; -pub const IP_DEFAULT_MULTICAST_LOOP: ::c_int = 1; - -pub const IP_PMTUDISC_DONT: ::c_int = 0; -pub const IP_PMTUDISC_WANT: ::c_int = 1; -pub const IP_PMTUDISC_DO: ::c_int = 2; -pub const IP_PMTUDISC_PROBE: ::c_int = 3; -pub const IP_PMTUDISC_INTERFACE: ::c_int = 4; -pub const IP_PMTUDISC_OMIT: ::c_int = 5; +pub const IFF_UP: c_int = 0x1; +pub const IFF_BROADCAST: c_int = 0x2; +pub const IFF_DEBUG: c_int = 0x4; +pub const IFF_LOOPBACK: c_int = 0x8; +pub const IFF_POINTOPOINT: c_int = 0x10; +pub const IFF_NOTRAILERS: c_int = 0x20; +pub const IFF_RUNNING: c_int = 0x40; +pub const IFF_NOARP: c_int = 0x80; +pub const IFF_PROMISC: c_int = 0x100; +pub const IFF_ALLMULTI: c_int = 0x200; +pub const IFF_MASTER: c_int = 0x400; +pub const IFF_SLAVE: c_int = 0x800; +pub const IFF_MULTICAST: c_int = 0x1000; +pub const IFF_PORTSEL: c_int = 0x2000; +pub const IFF_AUTOMEDIA: c_int = 0x4000; +pub const IFF_DYNAMIC: c_int = 0x8000; + +pub const SOL_IP: c_int = 0; +pub const SOL_TCP: c_int = 6; +pub const SOL_UDP: c_int = 17; +pub const SOL_IPV6: c_int = 41; +pub const SOL_ICMPV6: c_int = 58; +pub const SOL_RAW: c_int = 255; +pub const SOL_DECNET: c_int = 261; +pub const SOL_X25: c_int = 262; +pub const SOL_PACKET: c_int = 263; +pub const SOL_ATM: c_int = 264; +pub const SOL_AAL: c_int = 265; +pub const SOL_IRDA: c_int = 266; +pub const SOL_NETBEUI: c_int = 267; +pub const SOL_LLC: c_int = 268; +pub const SOL_DCCP: c_int = 269; +pub const SOL_NETLINK: c_int = 270; +pub const SOL_TIPC: c_int = 271; +pub const SOL_BLUETOOTH: c_int = 274; +pub const SOL_ALG: c_int = 279; + +pub const AF_UNSPEC: c_int = 0; +pub const AF_UNIX: c_int = 1; +pub const AF_LOCAL: c_int = 1; +pub const AF_INET: c_int = 2; +pub const AF_AX25: c_int = 3; +pub const AF_IPX: c_int = 4; +pub const AF_APPLETALK: c_int = 5; +pub const AF_NETROM: c_int = 6; +pub const AF_BRIDGE: c_int = 7; +pub const AF_ATMPVC: c_int = 8; +pub const AF_X25: c_int = 9; +pub const AF_INET6: c_int = 10; +pub const AF_ROSE: c_int = 11; +pub const AF_DECnet: c_int = 12; +pub const AF_NETBEUI: c_int = 13; +pub const AF_SECURITY: c_int = 14; +pub const AF_KEY: c_int = 15; +pub const AF_NETLINK: c_int = 16; +pub const AF_ROUTE: c_int = AF_NETLINK; +pub const AF_PACKET: c_int = 17; +pub const AF_ASH: c_int = 18; +pub const AF_ECONET: c_int = 19; +pub const AF_ATMSVC: c_int = 20; +pub const AF_RDS: c_int = 21; +pub const AF_SNA: c_int = 22; +pub const AF_IRDA: c_int = 23; +pub const AF_PPPOX: c_int = 24; +pub const AF_WANPIPE: c_int = 25; +pub const AF_LLC: c_int = 26; +pub const AF_CAN: c_int = 29; +pub const AF_TIPC: c_int = 30; +pub const AF_BLUETOOTH: c_int = 31; +pub const AF_IUCV: c_int = 32; +pub const AF_RXRPC: c_int = 33; +pub const AF_ISDN: c_int = 34; +pub const AF_PHONET: c_int = 35; +pub const AF_IEEE802154: c_int = 36; +pub const AF_CAIF: c_int = 37; +pub const AF_ALG: c_int = 38; + +pub const PF_UNSPEC: c_int = AF_UNSPEC; +pub const PF_UNIX: c_int = AF_UNIX; +pub const PF_LOCAL: c_int = AF_LOCAL; +pub const PF_INET: c_int = AF_INET; +pub const PF_AX25: c_int = AF_AX25; +pub const PF_IPX: c_int = AF_IPX; +pub const PF_APPLETALK: c_int = AF_APPLETALK; +pub const PF_NETROM: c_int = AF_NETROM; +pub const PF_BRIDGE: c_int = AF_BRIDGE; +pub const PF_ATMPVC: c_int = AF_ATMPVC; +pub const PF_X25: c_int = AF_X25; +pub const PF_INET6: c_int = AF_INET6; +pub const PF_ROSE: c_int = AF_ROSE; +pub const PF_DECnet: c_int = AF_DECnet; +pub const PF_NETBEUI: c_int = AF_NETBEUI; +pub const PF_SECURITY: c_int = AF_SECURITY; +pub const PF_KEY: c_int = AF_KEY; +pub const PF_NETLINK: c_int = AF_NETLINK; +pub const PF_ROUTE: c_int = AF_ROUTE; +pub const PF_PACKET: c_int = AF_PACKET; +pub const PF_ASH: c_int = AF_ASH; +pub const PF_ECONET: c_int = AF_ECONET; +pub const PF_ATMSVC: c_int = AF_ATMSVC; +pub const PF_RDS: c_int = AF_RDS; +pub const PF_SNA: c_int = AF_SNA; +pub const PF_IRDA: c_int = AF_IRDA; +pub const PF_PPPOX: c_int = AF_PPPOX; +pub const PF_WANPIPE: c_int = AF_WANPIPE; +pub const PF_LLC: c_int = AF_LLC; +pub const PF_CAN: c_int = AF_CAN; +pub const PF_TIPC: c_int = AF_TIPC; +pub const PF_BLUETOOTH: c_int = AF_BLUETOOTH; +pub const PF_IUCV: c_int = AF_IUCV; +pub const PF_RXRPC: c_int = AF_RXRPC; +pub const PF_ISDN: c_int = AF_ISDN; +pub const PF_PHONET: c_int = AF_PHONET; +pub const PF_IEEE802154: c_int = AF_IEEE802154; +pub const PF_CAIF: c_int = AF_CAIF; +pub const PF_ALG: c_int = AF_ALG; + +pub const MSG_OOB: c_int = 1; +pub const MSG_PEEK: c_int = 2; +pub const MSG_DONTROUTE: c_int = 4; +pub const MSG_CTRUNC: c_int = 8; +pub const MSG_TRUNC: c_int = 0x20; +pub const MSG_DONTWAIT: c_int = 0x40; +pub const MSG_EOR: c_int = 0x80; +pub const MSG_WAITALL: c_int = 0x100; +pub const MSG_FIN: c_int = 0x200; +pub const MSG_SYN: c_int = 0x400; +pub const MSG_CONFIRM: c_int = 0x800; +pub const MSG_RST: c_int = 0x1000; +pub const MSG_ERRQUEUE: c_int = 0x2000; +pub const MSG_NOSIGNAL: c_int = 0x4000; +pub const MSG_MORE: c_int = 0x8000; +pub const MSG_WAITFORONE: c_int = 0x10000; +pub const MSG_FASTOPEN: c_int = 0x20000000; +pub const MSG_CMSG_CLOEXEC: c_int = 0x40000000; + +pub const SCM_TIMESTAMP: c_int = SO_TIMESTAMP; + +pub const SOCK_RAW: c_int = 3; +pub const SOCK_RDM: c_int = 4; +pub const IP_TOS: c_int = 1; +pub const IP_TTL: c_int = 2; +pub const IP_HDRINCL: c_int = 3; +pub const IP_OPTIONS: c_int = 4; +pub const IP_ROUTER_ALERT: c_int = 5; +pub const IP_RECVOPTS: c_int = 6; +pub const IP_RETOPTS: c_int = 7; +pub const IP_PKTINFO: c_int = 8; +pub const IP_PKTOPTIONS: c_int = 9; +pub const IP_MTU_DISCOVER: c_int = 10; +pub const IP_RECVERR: c_int = 11; +pub const IP_RECVTTL: c_int = 12; +pub const IP_RECVTOS: c_int = 13; +pub const IP_MTU: c_int = 14; +pub const IP_FREEBIND: c_int = 15; +pub const IP_IPSEC_POLICY: c_int = 16; +pub const IP_XFRM_POLICY: c_int = 17; +pub const IP_PASSSEC: c_int = 18; +pub const IP_TRANSPARENT: c_int = 19; +pub const IP_ORIGDSTADDR: c_int = 20; +pub const IP_RECVORIGDSTADDR: c_int = IP_ORIGDSTADDR; +pub const IP_MINTTL: c_int = 21; +pub const IP_NODEFRAG: c_int = 22; +pub const IP_CHECKSUM: c_int = 23; +pub const IP_BIND_ADDRESS_NO_PORT: c_int = 24; +pub const IP_MULTICAST_IF: c_int = 32; +pub const IP_MULTICAST_TTL: c_int = 33; +pub const IP_MULTICAST_LOOP: c_int = 34; +pub const IP_ADD_MEMBERSHIP: c_int = 35; +pub const IP_DROP_MEMBERSHIP: c_int = 36; +pub const IP_UNBLOCK_SOURCE: c_int = 37; +pub const IP_BLOCK_SOURCE: c_int = 38; +pub const IP_ADD_SOURCE_MEMBERSHIP: c_int = 39; +pub const IP_DROP_SOURCE_MEMBERSHIP: c_int = 40; +pub const IP_MSFILTER: c_int = 41; +pub const IP_MULTICAST_ALL: c_int = 49; +pub const IP_UNICAST_IF: c_int = 50; + +pub const IP_DEFAULT_MULTICAST_TTL: c_int = 1; +pub const IP_DEFAULT_MULTICAST_LOOP: c_int = 1; + +pub const IP_PMTUDISC_DONT: c_int = 0; +pub const IP_PMTUDISC_WANT: c_int = 1; +pub const IP_PMTUDISC_DO: c_int = 2; +pub const IP_PMTUDISC_PROBE: c_int = 3; +pub const IP_PMTUDISC_INTERFACE: c_int = 4; +pub const IP_PMTUDISC_OMIT: c_int = 5; // IPPROTO_IP defined in src/unix/mod.rs /// Hop-by-hop option header -pub const IPPROTO_HOPOPTS: ::c_int = 0; +pub const IPPROTO_HOPOPTS: c_int = 0; // IPPROTO_ICMP defined in src/unix/mod.rs /// group mgmt protocol -pub const IPPROTO_IGMP: ::c_int = 2; +pub const IPPROTO_IGMP: c_int = 2; /// for compatibility -pub const IPPROTO_IPIP: ::c_int = 4; +pub const IPPROTO_IPIP: c_int = 4; // IPPROTO_TCP defined in src/unix/mod.rs /// exterior gateway protocol -pub const IPPROTO_EGP: ::c_int = 8; +pub const IPPROTO_EGP: c_int = 8; /// pup -pub const IPPROTO_PUP: ::c_int = 12; +pub const IPPROTO_PUP: c_int = 12; // IPPROTO_UDP defined in src/unix/mod.rs /// xns idp -pub const IPPROTO_IDP: ::c_int = 22; +pub const IPPROTO_IDP: c_int = 22; /// tp-4 w/ class negotiation -pub const IPPROTO_TP: ::c_int = 29; +pub const IPPROTO_TP: c_int = 29; /// DCCP -pub const IPPROTO_DCCP: ::c_int = 33; +pub const IPPROTO_DCCP: c_int = 33; // IPPROTO_IPV6 defined in src/unix/mod.rs /// IP6 routing header -pub const IPPROTO_ROUTING: ::c_int = 43; +pub const IPPROTO_ROUTING: c_int = 43; /// IP6 fragmentation header -pub const IPPROTO_FRAGMENT: ::c_int = 44; +pub const IPPROTO_FRAGMENT: c_int = 44; /// resource reservation -pub const IPPROTO_RSVP: ::c_int = 46; +pub const IPPROTO_RSVP: c_int = 46; /// General Routing Encap. -pub const IPPROTO_GRE: ::c_int = 47; +pub const IPPROTO_GRE: c_int = 47; /// IP6 Encap Sec. Payload -pub const IPPROTO_ESP: ::c_int = 50; +pub const IPPROTO_ESP: c_int = 50; /// IP6 Auth Header -pub const IPPROTO_AH: ::c_int = 51; +pub const IPPROTO_AH: c_int = 51; // IPPROTO_ICMPV6 defined in src/unix/mod.rs /// IP6 no next header -pub const IPPROTO_NONE: ::c_int = 59; +pub const IPPROTO_NONE: c_int = 59; /// IP6 destination option -pub const IPPROTO_DSTOPTS: ::c_int = 60; -pub const IPPROTO_MTP: ::c_int = 92; +pub const IPPROTO_DSTOPTS: c_int = 60; +pub const IPPROTO_MTP: c_int = 92; /// encapsulation header -pub const IPPROTO_ENCAP: ::c_int = 98; +pub const IPPROTO_ENCAP: c_int = 98; /// Protocol indep. multicast -pub const IPPROTO_PIM: ::c_int = 103; +pub const IPPROTO_PIM: c_int = 103; /// IP Payload Comp. Protocol -pub const IPPROTO_COMP: ::c_int = 108; +pub const IPPROTO_COMP: c_int = 108; /// SCTP -pub const IPPROTO_SCTP: ::c_int = 132; -pub const IPPROTO_MH: ::c_int = 135; -pub const IPPROTO_UDPLITE: ::c_int = 136; +pub const IPPROTO_SCTP: c_int = 132; +pub const IPPROTO_MH: c_int = 135; +pub const IPPROTO_UDPLITE: c_int = 136; /// raw IP packet -pub const IPPROTO_RAW: ::c_int = 255; -pub const IPPROTO_BEETPH: ::c_int = 94; -pub const IPPROTO_MPLS: ::c_int = 137; +pub const IPPROTO_RAW: c_int = 255; +pub const IPPROTO_BEETPH: c_int = 94; +pub const IPPROTO_MPLS: c_int = 137; /// Multipath TCP -pub const IPPROTO_MPTCP: ::c_int = 262; +pub const IPPROTO_MPTCP: c_int = 262; /// Ethernet-within-IPv6 encapsulation. -pub const IPPROTO_ETHERNET: ::c_int = 143; - -pub const MCAST_EXCLUDE: ::c_int = 0; -pub const MCAST_INCLUDE: ::c_int = 1; -pub const MCAST_JOIN_GROUP: ::c_int = 42; -pub const MCAST_BLOCK_SOURCE: ::c_int = 43; -pub const MCAST_UNBLOCK_SOURCE: ::c_int = 44; -pub const MCAST_LEAVE_GROUP: ::c_int = 45; -pub const MCAST_JOIN_SOURCE_GROUP: ::c_int = 46; -pub const MCAST_LEAVE_SOURCE_GROUP: ::c_int = 47; -pub const MCAST_MSFILTER: ::c_int = 48; - -pub const IPV6_ADDRFORM: ::c_int = 1; -pub const IPV6_2292PKTINFO: ::c_int = 2; -pub const IPV6_2292HOPOPTS: ::c_int = 3; -pub const IPV6_2292DSTOPTS: ::c_int = 4; -pub const IPV6_2292RTHDR: ::c_int = 5; -pub const IPV6_2292PKTOPTIONS: ::c_int = 6; -pub const IPV6_CHECKSUM: ::c_int = 7; -pub const IPV6_2292HOPLIMIT: ::c_int = 8; -pub const IPV6_NEXTHOP: ::c_int = 9; -pub const IPV6_AUTHHDR: ::c_int = 10; -pub const IPV6_UNICAST_HOPS: ::c_int = 16; -pub const IPV6_MULTICAST_IF: ::c_int = 17; -pub const IPV6_MULTICAST_HOPS: ::c_int = 18; -pub const IPV6_MULTICAST_LOOP: ::c_int = 19; -pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; -pub const IPV6_ROUTER_ALERT: ::c_int = 22; -pub const IPV6_MTU_DISCOVER: ::c_int = 23; -pub const IPV6_MTU: ::c_int = 24; -pub const IPV6_RECVERR: ::c_int = 25; -pub const IPV6_V6ONLY: ::c_int = 26; -pub const IPV6_JOIN_ANYCAST: ::c_int = 27; -pub const IPV6_LEAVE_ANYCAST: ::c_int = 28; -pub const IPV6_IPSEC_POLICY: ::c_int = 34; -pub const IPV6_XFRM_POLICY: ::c_int = 35; -pub const IPV6_HDRINCL: ::c_int = 36; -pub const IPV6_RECVPKTINFO: ::c_int = 49; -pub const IPV6_PKTINFO: ::c_int = 50; -pub const IPV6_RECVHOPLIMIT: ::c_int = 51; -pub const IPV6_HOPLIMIT: ::c_int = 52; -pub const IPV6_RECVHOPOPTS: ::c_int = 53; -pub const IPV6_HOPOPTS: ::c_int = 54; -pub const IPV6_RTHDRDSTOPTS: ::c_int = 55; -pub const IPV6_RECVRTHDR: ::c_int = 56; -pub const IPV6_RTHDR: ::c_int = 57; -pub const IPV6_RECVDSTOPTS: ::c_int = 58; -pub const IPV6_DSTOPTS: ::c_int = 59; -pub const IPV6_RECVPATHMTU: ::c_int = 60; -pub const IPV6_PATHMTU: ::c_int = 61; -pub const IPV6_DONTFRAG: ::c_int = 62; -pub const IPV6_RECVTCLASS: ::c_int = 66; -pub const IPV6_TCLASS: ::c_int = 67; -pub const IPV6_AUTOFLOWLABEL: ::c_int = 70; -pub const IPV6_ADDR_PREFERENCES: ::c_int = 72; -pub const IPV6_MINHOPCOUNT: ::c_int = 73; -pub const IPV6_ORIGDSTADDR: ::c_int = 74; -pub const IPV6_RECVORIGDSTADDR: ::c_int = IPV6_ORIGDSTADDR; -pub const IPV6_TRANSPARENT: ::c_int = 75; -pub const IPV6_UNICAST_IF: ::c_int = 76; -pub const IPV6_PREFER_SRC_TMP: ::c_int = 0x0001; -pub const IPV6_PREFER_SRC_PUBLIC: ::c_int = 0x0002; -pub const IPV6_PREFER_SRC_PUBTMP_DEFAULT: ::c_int = 0x0100; -pub const IPV6_PREFER_SRC_COA: ::c_int = 0x0004; -pub const IPV6_PREFER_SRC_HOME: ::c_int = 0x0400; -pub const IPV6_PREFER_SRC_CGA: ::c_int = 0x0008; -pub const IPV6_PREFER_SRC_NONCGA: ::c_int = 0x0800; - -pub const IPV6_PMTUDISC_DONT: ::c_int = 0; -pub const IPV6_PMTUDISC_WANT: ::c_int = 1; -pub const IPV6_PMTUDISC_DO: ::c_int = 2; -pub const IPV6_PMTUDISC_PROBE: ::c_int = 3; -pub const IPV6_PMTUDISC_INTERFACE: ::c_int = 4; -pub const IPV6_PMTUDISC_OMIT: ::c_int = 5; - -pub const TCP_NODELAY: ::c_int = 1; -pub const TCP_MAXSEG: ::c_int = 2; -pub const TCP_CORK: ::c_int = 3; -pub const TCP_KEEPIDLE: ::c_int = 4; -pub const TCP_KEEPINTVL: ::c_int = 5; -pub const TCP_KEEPCNT: ::c_int = 6; -pub const TCP_SYNCNT: ::c_int = 7; -pub const TCP_LINGER2: ::c_int = 8; -pub const TCP_DEFER_ACCEPT: ::c_int = 9; -pub const TCP_WINDOW_CLAMP: ::c_int = 10; -pub const TCP_INFO: ::c_int = 11; -pub const TCP_QUICKACK: ::c_int = 12; -pub const TCP_CONGESTION: ::c_int = 13; -pub const TCP_MD5SIG: ::c_int = 14; +pub const IPPROTO_ETHERNET: c_int = 143; + +pub const MCAST_EXCLUDE: c_int = 0; +pub const MCAST_INCLUDE: c_int = 1; +pub const MCAST_JOIN_GROUP: c_int = 42; +pub const MCAST_BLOCK_SOURCE: c_int = 43; +pub const MCAST_UNBLOCK_SOURCE: c_int = 44; +pub const MCAST_LEAVE_GROUP: c_int = 45; +pub const MCAST_JOIN_SOURCE_GROUP: c_int = 46; +pub const MCAST_LEAVE_SOURCE_GROUP: c_int = 47; +pub const MCAST_MSFILTER: c_int = 48; + +pub const IPV6_ADDRFORM: c_int = 1; +pub const IPV6_2292PKTINFO: c_int = 2; +pub const IPV6_2292HOPOPTS: c_int = 3; +pub const IPV6_2292DSTOPTS: c_int = 4; +pub const IPV6_2292RTHDR: c_int = 5; +pub const IPV6_2292PKTOPTIONS: c_int = 6; +pub const IPV6_CHECKSUM: c_int = 7; +pub const IPV6_2292HOPLIMIT: c_int = 8; +pub const IPV6_NEXTHOP: c_int = 9; +pub const IPV6_AUTHHDR: c_int = 10; +pub const IPV6_UNICAST_HOPS: c_int = 16; +pub const IPV6_MULTICAST_IF: c_int = 17; +pub const IPV6_MULTICAST_HOPS: c_int = 18; +pub const IPV6_MULTICAST_LOOP: c_int = 19; +pub const IPV6_ADD_MEMBERSHIP: c_int = 20; +pub const IPV6_DROP_MEMBERSHIP: c_int = 21; +pub const IPV6_ROUTER_ALERT: c_int = 22; +pub const IPV6_MTU_DISCOVER: c_int = 23; +pub const IPV6_MTU: c_int = 24; +pub const IPV6_RECVERR: c_int = 25; +pub const IPV6_V6ONLY: c_int = 26; +pub const IPV6_JOIN_ANYCAST: c_int = 27; +pub const IPV6_LEAVE_ANYCAST: c_int = 28; +pub const IPV6_IPSEC_POLICY: c_int = 34; +pub const IPV6_XFRM_POLICY: c_int = 35; +pub const IPV6_HDRINCL: c_int = 36; +pub const IPV6_RECVPKTINFO: c_int = 49; +pub const IPV6_PKTINFO: c_int = 50; +pub const IPV6_RECVHOPLIMIT: c_int = 51; +pub const IPV6_HOPLIMIT: c_int = 52; +pub const IPV6_RECVHOPOPTS: c_int = 53; +pub const IPV6_HOPOPTS: c_int = 54; +pub const IPV6_RTHDRDSTOPTS: c_int = 55; +pub const IPV6_RECVRTHDR: c_int = 56; +pub const IPV6_RTHDR: c_int = 57; +pub const IPV6_RECVDSTOPTS: c_int = 58; +pub const IPV6_DSTOPTS: c_int = 59; +pub const IPV6_RECVPATHMTU: c_int = 60; +pub const IPV6_PATHMTU: c_int = 61; +pub const IPV6_DONTFRAG: c_int = 62; +pub const IPV6_RECVTCLASS: c_int = 66; +pub const IPV6_TCLASS: c_int = 67; +pub const IPV6_AUTOFLOWLABEL: c_int = 70; +pub const IPV6_ADDR_PREFERENCES: c_int = 72; +pub const IPV6_MINHOPCOUNT: c_int = 73; +pub const IPV6_ORIGDSTADDR: c_int = 74; +pub const IPV6_RECVORIGDSTADDR: c_int = IPV6_ORIGDSTADDR; +pub const IPV6_TRANSPARENT: c_int = 75; +pub const IPV6_UNICAST_IF: c_int = 76; +pub const IPV6_PREFER_SRC_TMP: c_int = 0x0001; +pub const IPV6_PREFER_SRC_PUBLIC: c_int = 0x0002; +pub const IPV6_PREFER_SRC_PUBTMP_DEFAULT: c_int = 0x0100; +pub const IPV6_PREFER_SRC_COA: c_int = 0x0004; +pub const IPV6_PREFER_SRC_HOME: c_int = 0x0400; +pub const IPV6_PREFER_SRC_CGA: c_int = 0x0008; +pub const IPV6_PREFER_SRC_NONCGA: c_int = 0x0800; + +pub const IPV6_PMTUDISC_DONT: c_int = 0; +pub const IPV6_PMTUDISC_WANT: c_int = 1; +pub const IPV6_PMTUDISC_DO: c_int = 2; +pub const IPV6_PMTUDISC_PROBE: c_int = 3; +pub const IPV6_PMTUDISC_INTERFACE: c_int = 4; +pub const IPV6_PMTUDISC_OMIT: c_int = 5; + +pub const TCP_NODELAY: c_int = 1; +pub const TCP_MAXSEG: c_int = 2; +pub const TCP_CORK: c_int = 3; +pub const TCP_KEEPIDLE: c_int = 4; +pub const TCP_KEEPINTVL: c_int = 5; +pub const TCP_KEEPCNT: c_int = 6; +pub const TCP_SYNCNT: c_int = 7; +pub const TCP_LINGER2: c_int = 8; +pub const TCP_DEFER_ACCEPT: c_int = 9; +pub const TCP_WINDOW_CLAMP: c_int = 10; +pub const TCP_INFO: c_int = 11; +pub const TCP_QUICKACK: c_int = 12; +pub const TCP_CONGESTION: c_int = 13; +pub const TCP_MD5SIG: c_int = 14; cfg_if! { if #[cfg(all( target_os = "linux", any(target_env = "gnu", target_env = "musl", target_env = "ohos") ))] { // WARN: deprecated - pub const TCP_COOKIE_TRANSACTIONS: ::c_int = 15; + pub const TCP_COOKIE_TRANSACTIONS: c_int = 15; } } -pub const TCP_THIN_LINEAR_TIMEOUTS: ::c_int = 16; -pub const TCP_THIN_DUPACK: ::c_int = 17; -pub const TCP_USER_TIMEOUT: ::c_int = 18; -pub const TCP_REPAIR: ::c_int = 19; -pub const TCP_REPAIR_QUEUE: ::c_int = 20; -pub const TCP_QUEUE_SEQ: ::c_int = 21; -pub const TCP_REPAIR_OPTIONS: ::c_int = 22; -pub const TCP_FASTOPEN: ::c_int = 23; -pub const TCP_TIMESTAMP: ::c_int = 24; -pub const TCP_NOTSENT_LOWAT: ::c_int = 25; -pub const TCP_CC_INFO: ::c_int = 26; -pub const TCP_SAVE_SYN: ::c_int = 27; -pub const TCP_SAVED_SYN: ::c_int = 28; +pub const TCP_THIN_LINEAR_TIMEOUTS: c_int = 16; +pub const TCP_THIN_DUPACK: c_int = 17; +pub const TCP_USER_TIMEOUT: c_int = 18; +pub const TCP_REPAIR: c_int = 19; +pub const TCP_REPAIR_QUEUE: c_int = 20; +pub const TCP_QUEUE_SEQ: c_int = 21; +pub const TCP_REPAIR_OPTIONS: c_int = 22; +pub const TCP_FASTOPEN: c_int = 23; +pub const TCP_TIMESTAMP: c_int = 24; +pub const TCP_NOTSENT_LOWAT: c_int = 25; +pub const TCP_CC_INFO: c_int = 26; +pub const TCP_SAVE_SYN: c_int = 27; +pub const TCP_SAVED_SYN: c_int = 28; cfg_if! { if #[cfg(not(target_os = "emscripten"))] { // NOTE: emscripten doesn't support these options yet. - pub const TCP_REPAIR_WINDOW: ::c_int = 29; - pub const TCP_FASTOPEN_CONNECT: ::c_int = 30; - pub const TCP_ULP: ::c_int = 31; - pub const TCP_MD5SIG_EXT: ::c_int = 32; - pub const TCP_FASTOPEN_KEY: ::c_int = 33; - pub const TCP_FASTOPEN_NO_COOKIE: ::c_int = 34; - pub const TCP_ZEROCOPY_RECEIVE: ::c_int = 35; - pub const TCP_INQ: ::c_int = 36; - pub const TCP_CM_INQ: ::c_int = TCP_INQ; + pub const TCP_REPAIR_WINDOW: c_int = 29; + pub const TCP_FASTOPEN_CONNECT: c_int = 30; + pub const TCP_ULP: c_int = 31; + pub const TCP_MD5SIG_EXT: c_int = 32; + pub const TCP_FASTOPEN_KEY: c_int = 33; + pub const TCP_FASTOPEN_NO_COOKIE: c_int = 34; + pub const TCP_ZEROCOPY_RECEIVE: c_int = 35; + pub const TCP_INQ: c_int = 36; + pub const TCP_CM_INQ: c_int = TCP_INQ; // NOTE: Some CI images doesn't have this option yet. - // pub const TCP_TX_DELAY: ::c_int = 37; + // pub const TCP_TX_DELAY: c_int = 37; pub const TCP_MD5SIG_MAXKEYLEN: usize = 80; } } -pub const SO_DEBUG: ::c_int = 1; +pub const SO_DEBUG: c_int = 1; -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; +pub const SHUT_RD: c_int = 0; +pub const SHUT_WR: c_int = 1; +pub const SHUT_RDWR: c_int = 2; -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_NB: ::c_int = 4; -pub const LOCK_UN: ::c_int = 8; +pub const LOCK_SH: c_int = 1; +pub const LOCK_EX: c_int = 2; +pub const LOCK_NB: c_int = 4; +pub const LOCK_UN: c_int = 8; -pub const SS_ONSTACK: ::c_int = 1; -pub const SS_DISABLE: ::c_int = 2; +pub const SS_ONSTACK: c_int = 1; +pub const SS_DISABLE: c_int = 2; -pub const PATH_MAX: ::c_int = 4096; +pub const PATH_MAX: c_int = 4096; -pub const UIO_MAXIOV: ::c_int = 1024; +pub const UIO_MAXIOV: c_int = 1024; pub const FD_SETSIZE: usize = 1024; -pub const EPOLLIN: ::c_int = 0x1; -pub const EPOLLPRI: ::c_int = 0x2; -pub const EPOLLOUT: ::c_int = 0x4; -pub const EPOLLERR: ::c_int = 0x8; -pub const EPOLLHUP: ::c_int = 0x10; -pub const EPOLLRDNORM: ::c_int = 0x40; -pub const EPOLLRDBAND: ::c_int = 0x80; -pub const EPOLLWRNORM: ::c_int = 0x100; -pub const EPOLLWRBAND: ::c_int = 0x200; -pub const EPOLLMSG: ::c_int = 0x400; -pub const EPOLLRDHUP: ::c_int = 0x2000; -pub const EPOLLEXCLUSIVE: ::c_int = 0x10000000; -pub const EPOLLWAKEUP: ::c_int = 0x20000000; -pub const EPOLLONESHOT: ::c_int = 0x40000000; -pub const EPOLLET: ::c_int = 0x80000000; - -pub const EPOLL_CTL_ADD: ::c_int = 1; -pub const EPOLL_CTL_MOD: ::c_int = 3; -pub const EPOLL_CTL_DEL: ::c_int = 2; - -pub const MNT_FORCE: ::c_int = 0x1; -pub const MNT_DETACH: ::c_int = 0x2; -pub const MNT_EXPIRE: ::c_int = 0x4; -pub const UMOUNT_NOFOLLOW: ::c_int = 0x8; - -pub const Q_GETFMT: ::c_int = 0x800004; -pub const Q_GETINFO: ::c_int = 0x800005; -pub const Q_SETINFO: ::c_int = 0x800006; +pub const EPOLLIN: c_int = 0x1; +pub const EPOLLPRI: c_int = 0x2; +pub const EPOLLOUT: c_int = 0x4; +pub const EPOLLERR: c_int = 0x8; +pub const EPOLLHUP: c_int = 0x10; +pub const EPOLLRDNORM: c_int = 0x40; +pub const EPOLLRDBAND: c_int = 0x80; +pub const EPOLLWRNORM: c_int = 0x100; +pub const EPOLLWRBAND: c_int = 0x200; +pub const EPOLLMSG: c_int = 0x400; +pub const EPOLLRDHUP: c_int = 0x2000; +pub const EPOLLEXCLUSIVE: c_int = 0x10000000; +pub const EPOLLWAKEUP: c_int = 0x20000000; +pub const EPOLLONESHOT: c_int = 0x40000000; +pub const EPOLLET: c_int = 0x80000000; + +pub const EPOLL_CTL_ADD: c_int = 1; +pub const EPOLL_CTL_MOD: c_int = 3; +pub const EPOLL_CTL_DEL: c_int = 2; + +pub const MNT_FORCE: c_int = 0x1; +pub const MNT_DETACH: c_int = 0x2; +pub const MNT_EXPIRE: c_int = 0x4; +pub const UMOUNT_NOFOLLOW: c_int = 0x8; + +pub const Q_GETFMT: c_int = 0x800004; +pub const Q_GETINFO: c_int = 0x800005; +pub const Q_SETINFO: c_int = 0x800006; pub const QIF_BLIMITS: u32 = 1; pub const QIF_SPACE: u32 = 2; pub const QIF_ILIMITS: u32 = 4; @@ -1143,169 +1145,169 @@ pub const QIF_USAGE: u32 = 10; pub const QIF_TIMES: u32 = 48; pub const QIF_ALL: u32 = 63; -pub const Q_SYNC: ::c_int = 0x800001; -pub const Q_QUOTAON: ::c_int = 0x800002; -pub const Q_QUOTAOFF: ::c_int = 0x800003; -pub const Q_GETQUOTA: ::c_int = 0x800007; -pub const Q_SETQUOTA: ::c_int = 0x800008; - -pub const TCIOFF: ::c_int = 2; -pub const TCION: ::c_int = 3; -pub const TCOOFF: ::c_int = 0; -pub const TCOON: ::c_int = 1; -pub const TCIFLUSH: ::c_int = 0; -pub const TCOFLUSH: ::c_int = 1; -pub const TCIOFLUSH: ::c_int = 2; -pub const NL0: ::tcflag_t = 0x00000000; -pub const NL1: ::tcflag_t = 0x00000100; -pub const TAB0: ::tcflag_t = 0x00000000; -pub const CR0: ::tcflag_t = 0x00000000; -pub const FF0: ::tcflag_t = 0x00000000; -pub const BS0: ::tcflag_t = 0x00000000; -pub const VT0: ::tcflag_t = 0x00000000; +pub const Q_SYNC: c_int = 0x800001; +pub const Q_QUOTAON: c_int = 0x800002; +pub const Q_QUOTAOFF: c_int = 0x800003; +pub const Q_GETQUOTA: c_int = 0x800007; +pub const Q_SETQUOTA: c_int = 0x800008; + +pub const TCIOFF: c_int = 2; +pub const TCION: c_int = 3; +pub const TCOOFF: c_int = 0; +pub const TCOON: c_int = 1; +pub const TCIFLUSH: c_int = 0; +pub const TCOFLUSH: c_int = 1; +pub const TCIOFLUSH: c_int = 2; +pub const NL0: crate::tcflag_t = 0x00000000; +pub const NL1: crate::tcflag_t = 0x00000100; +pub const TAB0: crate::tcflag_t = 0x00000000; +pub const CR0: crate::tcflag_t = 0x00000000; +pub const FF0: crate::tcflag_t = 0x00000000; +pub const BS0: crate::tcflag_t = 0x00000000; +pub const VT0: crate::tcflag_t = 0x00000000; pub const VERASE: usize = 2; pub const VKILL: usize = 3; pub const VINTR: usize = 0; pub const VQUIT: usize = 1; pub const VLNEXT: usize = 15; -pub const IGNBRK: ::tcflag_t = 0x00000001; -pub const BRKINT: ::tcflag_t = 0x00000002; -pub const IGNPAR: ::tcflag_t = 0x00000004; -pub const PARMRK: ::tcflag_t = 0x00000008; -pub const INPCK: ::tcflag_t = 0x00000010; -pub const ISTRIP: ::tcflag_t = 0x00000020; -pub const INLCR: ::tcflag_t = 0x00000040; -pub const IGNCR: ::tcflag_t = 0x00000080; -pub const ICRNL: ::tcflag_t = 0x00000100; -pub const IXANY: ::tcflag_t = 0x00000800; -pub const IMAXBEL: ::tcflag_t = 0x00002000; -pub const OPOST: ::tcflag_t = 0x1; -pub const CS5: ::tcflag_t = 0x00000000; -pub const CRTSCTS: ::tcflag_t = 0x80000000; -pub const ECHO: ::tcflag_t = 0x00000008; -pub const OCRNL: ::tcflag_t = 0o000010; -pub const ONOCR: ::tcflag_t = 0o000020; -pub const ONLRET: ::tcflag_t = 0o000040; -pub const OFILL: ::tcflag_t = 0o000100; -pub const OFDEL: ::tcflag_t = 0o000200; - -pub const CLONE_VM: ::c_int = 0x100; -pub const CLONE_FS: ::c_int = 0x200; -pub const CLONE_FILES: ::c_int = 0x400; -pub const CLONE_SIGHAND: ::c_int = 0x800; -pub const CLONE_PTRACE: ::c_int = 0x2000; -pub const CLONE_VFORK: ::c_int = 0x4000; -pub const CLONE_PARENT: ::c_int = 0x8000; -pub const CLONE_THREAD: ::c_int = 0x10000; -pub const CLONE_NEWNS: ::c_int = 0x20000; -pub const CLONE_SYSVSEM: ::c_int = 0x40000; -pub const CLONE_SETTLS: ::c_int = 0x80000; -pub const CLONE_PARENT_SETTID: ::c_int = 0x100000; -pub const CLONE_CHILD_CLEARTID: ::c_int = 0x200000; -pub const CLONE_DETACHED: ::c_int = 0x400000; -pub const CLONE_UNTRACED: ::c_int = 0x800000; -pub const CLONE_CHILD_SETTID: ::c_int = 0x01000000; -pub const CLONE_NEWCGROUP: ::c_int = 0x02000000; -pub const CLONE_NEWUTS: ::c_int = 0x04000000; -pub const CLONE_NEWIPC: ::c_int = 0x08000000; -pub const CLONE_NEWUSER: ::c_int = 0x10000000; -pub const CLONE_NEWPID: ::c_int = 0x20000000; -pub const CLONE_NEWNET: ::c_int = 0x40000000; -pub const CLONE_IO: ::c_int = 0x80000000; - -pub const WNOHANG: ::c_int = 0x00000001; -pub const WUNTRACED: ::c_int = 0x00000002; -pub const WSTOPPED: ::c_int = WUNTRACED; -pub const WEXITED: ::c_int = 0x00000004; -pub const WCONTINUED: ::c_int = 0x00000008; -pub const WNOWAIT: ::c_int = 0x01000000; +pub const IGNBRK: crate::tcflag_t = 0x00000001; +pub const BRKINT: crate::tcflag_t = 0x00000002; +pub const IGNPAR: crate::tcflag_t = 0x00000004; +pub const PARMRK: crate::tcflag_t = 0x00000008; +pub const INPCK: crate::tcflag_t = 0x00000010; +pub const ISTRIP: crate::tcflag_t = 0x00000020; +pub const INLCR: crate::tcflag_t = 0x00000040; +pub const IGNCR: crate::tcflag_t = 0x00000080; +pub const ICRNL: crate::tcflag_t = 0x00000100; +pub const IXANY: crate::tcflag_t = 0x00000800; +pub const IMAXBEL: crate::tcflag_t = 0x00002000; +pub const OPOST: crate::tcflag_t = 0x1; +pub const CS5: crate::tcflag_t = 0x00000000; +pub const CRTSCTS: crate::tcflag_t = 0x80000000; +pub const ECHO: crate::tcflag_t = 0x00000008; +pub const OCRNL: crate::tcflag_t = 0o000010; +pub const ONOCR: crate::tcflag_t = 0o000020; +pub const ONLRET: crate::tcflag_t = 0o000040; +pub const OFILL: crate::tcflag_t = 0o000100; +pub const OFDEL: crate::tcflag_t = 0o000200; + +pub const CLONE_VM: c_int = 0x100; +pub const CLONE_FS: c_int = 0x200; +pub const CLONE_FILES: c_int = 0x400; +pub const CLONE_SIGHAND: c_int = 0x800; +pub const CLONE_PTRACE: c_int = 0x2000; +pub const CLONE_VFORK: c_int = 0x4000; +pub const CLONE_PARENT: c_int = 0x8000; +pub const CLONE_THREAD: c_int = 0x10000; +pub const CLONE_NEWNS: c_int = 0x20000; +pub const CLONE_SYSVSEM: c_int = 0x40000; +pub const CLONE_SETTLS: c_int = 0x80000; +pub const CLONE_PARENT_SETTID: c_int = 0x100000; +pub const CLONE_CHILD_CLEARTID: c_int = 0x200000; +pub const CLONE_DETACHED: c_int = 0x400000; +pub const CLONE_UNTRACED: c_int = 0x800000; +pub const CLONE_CHILD_SETTID: c_int = 0x01000000; +pub const CLONE_NEWCGROUP: c_int = 0x02000000; +pub const CLONE_NEWUTS: c_int = 0x04000000; +pub const CLONE_NEWIPC: c_int = 0x08000000; +pub const CLONE_NEWUSER: c_int = 0x10000000; +pub const CLONE_NEWPID: c_int = 0x20000000; +pub const CLONE_NEWNET: c_int = 0x40000000; +pub const CLONE_IO: c_int = 0x80000000; + +pub const WNOHANG: c_int = 0x00000001; +pub const WUNTRACED: c_int = 0x00000002; +pub const WSTOPPED: c_int = WUNTRACED; +pub const WEXITED: c_int = 0x00000004; +pub const WCONTINUED: c_int = 0x00000008; +pub const WNOWAIT: c_int = 0x01000000; // Options for personality(2). -pub const ADDR_NO_RANDOMIZE: ::c_int = 0x0040000; -pub const MMAP_PAGE_ZERO: ::c_int = 0x0100000; -pub const ADDR_COMPAT_LAYOUT: ::c_int = 0x0200000; -pub const READ_IMPLIES_EXEC: ::c_int = 0x0400000; -pub const ADDR_LIMIT_32BIT: ::c_int = 0x0800000; -pub const SHORT_INODE: ::c_int = 0x1000000; -pub const WHOLE_SECONDS: ::c_int = 0x2000000; -pub const STICKY_TIMEOUTS: ::c_int = 0x4000000; -pub const ADDR_LIMIT_3GB: ::c_int = 0x8000000; +pub const ADDR_NO_RANDOMIZE: c_int = 0x0040000; +pub const MMAP_PAGE_ZERO: c_int = 0x0100000; +pub const ADDR_COMPAT_LAYOUT: c_int = 0x0200000; +pub const READ_IMPLIES_EXEC: c_int = 0x0400000; +pub const ADDR_LIMIT_32BIT: c_int = 0x0800000; +pub const SHORT_INODE: c_int = 0x1000000; +pub const WHOLE_SECONDS: c_int = 0x2000000; +pub const STICKY_TIMEOUTS: c_int = 0x4000000; +pub const ADDR_LIMIT_3GB: c_int = 0x8000000; // Options set using PTRACE_SETOPTIONS. -pub const PTRACE_O_TRACESYSGOOD: ::c_int = 0x00000001; -pub const PTRACE_O_TRACEFORK: ::c_int = 0x00000002; -pub const PTRACE_O_TRACEVFORK: ::c_int = 0x00000004; -pub const PTRACE_O_TRACECLONE: ::c_int = 0x00000008; -pub const PTRACE_O_TRACEEXEC: ::c_int = 0x00000010; -pub const PTRACE_O_TRACEVFORKDONE: ::c_int = 0x00000020; -pub const PTRACE_O_TRACEEXIT: ::c_int = 0x00000040; -pub const PTRACE_O_TRACESECCOMP: ::c_int = 0x00000080; -pub const PTRACE_O_SUSPEND_SECCOMP: ::c_int = 0x00200000; -pub const PTRACE_O_EXITKILL: ::c_int = 0x00100000; -pub const PTRACE_O_MASK: ::c_int = 0x003000ff; +pub const PTRACE_O_TRACESYSGOOD: c_int = 0x00000001; +pub const PTRACE_O_TRACEFORK: c_int = 0x00000002; +pub const PTRACE_O_TRACEVFORK: c_int = 0x00000004; +pub const PTRACE_O_TRACECLONE: c_int = 0x00000008; +pub const PTRACE_O_TRACEEXEC: c_int = 0x00000010; +pub const PTRACE_O_TRACEVFORKDONE: c_int = 0x00000020; +pub const PTRACE_O_TRACEEXIT: c_int = 0x00000040; +pub const PTRACE_O_TRACESECCOMP: c_int = 0x00000080; +pub const PTRACE_O_SUSPEND_SECCOMP: c_int = 0x00200000; +pub const PTRACE_O_EXITKILL: c_int = 0x00100000; +pub const PTRACE_O_MASK: c_int = 0x003000ff; // Wait extended result codes for the above trace options. -pub const PTRACE_EVENT_FORK: ::c_int = 1; -pub const PTRACE_EVENT_VFORK: ::c_int = 2; -pub const PTRACE_EVENT_CLONE: ::c_int = 3; -pub const PTRACE_EVENT_EXEC: ::c_int = 4; -pub const PTRACE_EVENT_VFORK_DONE: ::c_int = 5; -pub const PTRACE_EVENT_EXIT: ::c_int = 6; -pub const PTRACE_EVENT_SECCOMP: ::c_int = 7; - -pub const __WNOTHREAD: ::c_int = 0x20000000; -pub const __WALL: ::c_int = 0x40000000; -pub const __WCLONE: ::c_int = 0x80000000; - -pub const SPLICE_F_MOVE: ::c_uint = 0x01; -pub const SPLICE_F_NONBLOCK: ::c_uint = 0x02; -pub const SPLICE_F_MORE: ::c_uint = 0x04; -pub const SPLICE_F_GIFT: ::c_uint = 0x08; - -pub const RTLD_LOCAL: ::c_int = 0; -pub const RTLD_LAZY: ::c_int = 1; - -pub const POSIX_FADV_NORMAL: ::c_int = 0; -pub const POSIX_FADV_RANDOM: ::c_int = 1; -pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_FADV_WILLNEED: ::c_int = 3; - -pub const AT_FDCWD: ::c_int = -100; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x100; -pub const AT_REMOVEDIR: ::c_int = 0x200; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400; -pub const AT_NO_AUTOMOUNT: ::c_int = 0x800; -pub const AT_EMPTY_PATH: ::c_int = 0x1000; -pub const AT_RECURSIVE: ::c_int = 0x8000; - -pub const LOG_CRON: ::c_int = 9 << 3; -pub const LOG_AUTHPRIV: ::c_int = 10 << 3; -pub const LOG_FTP: ::c_int = 11 << 3; -pub const LOG_PERROR: ::c_int = 0x20; +pub const PTRACE_EVENT_FORK: c_int = 1; +pub const PTRACE_EVENT_VFORK: c_int = 2; +pub const PTRACE_EVENT_CLONE: c_int = 3; +pub const PTRACE_EVENT_EXEC: c_int = 4; +pub const PTRACE_EVENT_VFORK_DONE: c_int = 5; +pub const PTRACE_EVENT_EXIT: c_int = 6; +pub const PTRACE_EVENT_SECCOMP: c_int = 7; + +pub const __WNOTHREAD: c_int = 0x20000000; +pub const __WALL: c_int = 0x40000000; +pub const __WCLONE: c_int = 0x80000000; + +pub const SPLICE_F_MOVE: c_uint = 0x01; +pub const SPLICE_F_NONBLOCK: c_uint = 0x02; +pub const SPLICE_F_MORE: c_uint = 0x04; +pub const SPLICE_F_GIFT: c_uint = 0x08; + +pub const RTLD_LOCAL: c_int = 0; +pub const RTLD_LAZY: c_int = 1; + +pub const POSIX_FADV_NORMAL: c_int = 0; +pub const POSIX_FADV_RANDOM: c_int = 1; +pub const POSIX_FADV_SEQUENTIAL: c_int = 2; +pub const POSIX_FADV_WILLNEED: c_int = 3; + +pub const AT_FDCWD: c_int = -100; +pub const AT_SYMLINK_NOFOLLOW: c_int = 0x100; +pub const AT_REMOVEDIR: c_int = 0x200; +pub const AT_SYMLINK_FOLLOW: c_int = 0x400; +pub const AT_NO_AUTOMOUNT: c_int = 0x800; +pub const AT_EMPTY_PATH: c_int = 0x1000; +pub const AT_RECURSIVE: c_int = 0x8000; + +pub const LOG_CRON: c_int = 9 << 3; +pub const LOG_AUTHPRIV: c_int = 10 << 3; +pub const LOG_FTP: c_int = 11 << 3; +pub const LOG_PERROR: c_int = 0x20; pub const PIPE_BUF: usize = 4096; -pub const SI_LOAD_SHIFT: ::c_uint = 16; +pub const SI_LOAD_SHIFT: c_uint = 16; // si_code values for SIGBUS signal -pub const BUS_ADRALN: ::c_int = 1; -pub const BUS_ADRERR: ::c_int = 2; -pub const BUS_OBJERR: ::c_int = 3; +pub const BUS_ADRALN: c_int = 1; +pub const BUS_ADRERR: c_int = 2; +pub const BUS_OBJERR: c_int = 3; // Linux-specific si_code values for SIGBUS signal -pub const BUS_MCEERR_AR: ::c_int = 4; -pub const BUS_MCEERR_AO: ::c_int = 5; +pub const BUS_MCEERR_AR: c_int = 4; +pub const BUS_MCEERR_AO: c_int = 5; // si_code values for SIGCHLD signal -pub const CLD_EXITED: ::c_int = 1; -pub const CLD_KILLED: ::c_int = 2; -pub const CLD_DUMPED: ::c_int = 3; -pub const CLD_TRAPPED: ::c_int = 4; -pub const CLD_STOPPED: ::c_int = 5; -pub const CLD_CONTINUED: ::c_int = 6; +pub const CLD_EXITED: c_int = 1; +pub const CLD_KILLED: c_int = 2; +pub const CLD_DUMPED: c_int = 3; +pub const CLD_TRAPPED: c_int = 4; +pub const CLD_STOPPED: c_int = 5; +pub const CLD_CONTINUED: c_int = 6; -pub const SIGEV_SIGNAL: ::c_int = 0; -pub const SIGEV_NONE: ::c_int = 1; -pub const SIGEV_THREAD: ::c_int = 2; +pub const SIGEV_SIGNAL: c_int = 0; +pub const SIGEV_NONE: c_int = 1; +pub const SIGEV_THREAD: c_int = 2; pub const P_ALL: idtype_t = 0; pub const P_PID: idtype_t = 1; @@ -1319,18 +1321,18 @@ cfg_if! { pub const UTIME_OMIT: c_long = 1073741822; pub const UTIME_NOW: c_long = 1073741823; -pub const POLLIN: ::c_short = 0x1; -pub const POLLPRI: ::c_short = 0x2; -pub const POLLOUT: ::c_short = 0x4; -pub const POLLERR: ::c_short = 0x8; -pub const POLLHUP: ::c_short = 0x10; -pub const POLLNVAL: ::c_short = 0x20; -pub const POLLRDNORM: ::c_short = 0x040; -pub const POLLRDBAND: ::c_short = 0x080; +pub const POLLIN: c_short = 0x1; +pub const POLLPRI: c_short = 0x2; +pub const POLLOUT: c_short = 0x4; +pub const POLLERR: c_short = 0x8; +pub const POLLHUP: c_short = 0x10; +pub const POLLNVAL: c_short = 0x20; +pub const POLLRDNORM: c_short = 0x040; +pub const POLLRDBAND: c_short = 0x080; #[cfg(not(any(target_arch = "sparc", target_arch = "sparc64")))] -pub const POLLRDHUP: ::c_short = 0x2000; +pub const POLLRDHUP: c_short = 0x2000; #[cfg(any(target_arch = "sparc", target_arch = "sparc64"))] -pub const POLLRDHUP: ::c_short = 0x800; +pub const POLLRDHUP: c_short = 0x800; pub const IPTOS_LOWDELAY: u8 = 0x10; pub const IPTOS_THROUGHPUT: u8 = 0x08; @@ -1389,8 +1391,8 @@ pub const ARPOP_InREQUEST: u16 = 8; pub const ARPOP_InREPLY: u16 = 9; pub const ARPOP_NAK: u16 = 10; -pub const ATF_NETMASK: ::c_int = 0x20; -pub const ATF_DONTPUB: ::c_int = 0x40; +pub const ATF_NETMASK: c_int = 0x20; +pub const ATF_DONTPUB: c_int = 0x40; pub const ARPHRD_NETROM: u16 = 0; pub const ARPHRD_ETHER: u16 = 1; @@ -1458,194 +1460,194 @@ cfg_if! { if #[cfg(target_os = "emscripten")] { // Emscripten does not define any `*_SUPER_MAGIC` constants. } else if #[cfg(not(target_arch = "s390x"))] { - pub const ADFS_SUPER_MAGIC: ::c_long = 0x0000adf5; - pub const AFFS_SUPER_MAGIC: ::c_long = 0x0000adff; - pub const AFS_SUPER_MAGIC: ::c_long = 0x5346414f; - pub const AUTOFS_SUPER_MAGIC: ::c_long = 0x0187; - pub const BPF_FS_MAGIC: ::c_long = 0xcafe4a11; - pub const BTRFS_SUPER_MAGIC: ::c_long = 0x9123683e; - pub const CGROUP2_SUPER_MAGIC: ::c_long = 0x63677270; - pub const CGROUP_SUPER_MAGIC: ::c_long = 0x27e0eb; - pub const CODA_SUPER_MAGIC: ::c_long = 0x73757245; - pub const CRAMFS_MAGIC: ::c_long = 0x28cd3d45; - pub const DEBUGFS_MAGIC: ::c_long = 0x64626720; - pub const DEVPTS_SUPER_MAGIC: ::c_long = 0x1cd1; - pub const ECRYPTFS_SUPER_MAGIC: ::c_long = 0xf15f; - pub const EFS_SUPER_MAGIC: ::c_long = 0x00414a53; - pub const EXT2_SUPER_MAGIC: ::c_long = 0x0000ef53; - pub const EXT3_SUPER_MAGIC: ::c_long = 0x0000ef53; - pub const EXT4_SUPER_MAGIC: ::c_long = 0x0000ef53; - pub const F2FS_SUPER_MAGIC: ::c_long = 0xf2f52010; - pub const FUSE_SUPER_MAGIC: ::c_long = 0x65735546; - pub const FUTEXFS_SUPER_MAGIC: ::c_long = 0xbad1dea; - pub const HOSTFS_SUPER_MAGIC: ::c_long = 0x00c0ffee; - pub const HPFS_SUPER_MAGIC: ::c_long = 0xf995e849; - pub const HUGETLBFS_MAGIC: ::c_long = 0x958458f6; - pub const ISOFS_SUPER_MAGIC: ::c_long = 0x00009660; - pub const JFFS2_SUPER_MAGIC: ::c_long = 0x000072b6; - pub const MINIX2_SUPER_MAGIC2: ::c_long = 0x00002478; - pub const MINIX2_SUPER_MAGIC: ::c_long = 0x00002468; - pub const MINIX3_SUPER_MAGIC: ::c_long = 0x4d5a; - pub const MINIX_SUPER_MAGIC2: ::c_long = 0x0000138f; - pub const MINIX_SUPER_MAGIC: ::c_long = 0x0000137f; - pub const MSDOS_SUPER_MAGIC: ::c_long = 0x00004d44; - pub const NCP_SUPER_MAGIC: ::c_long = 0x0000564c; - pub const NFS_SUPER_MAGIC: ::c_long = 0x00006969; - pub const NILFS_SUPER_MAGIC: ::c_long = 0x3434; - pub const OCFS2_SUPER_MAGIC: ::c_long = 0x7461636f; - pub const OPENPROM_SUPER_MAGIC: ::c_long = 0x00009fa1; - pub const OVERLAYFS_SUPER_MAGIC: ::c_long = 0x794c7630; - pub const PROC_SUPER_MAGIC: ::c_long = 0x00009fa0; - pub const QNX4_SUPER_MAGIC: ::c_long = 0x0000002f; - pub const QNX6_SUPER_MAGIC: ::c_long = 0x68191122; - pub const RDTGROUP_SUPER_MAGIC: ::c_long = 0x7655821; - pub const REISERFS_SUPER_MAGIC: ::c_long = 0x52654973; - pub const SECURITYFS_MAGIC: ::c_long = 0x73636673; - pub const SELINUX_MAGIC: ::c_long = 0xf97cff8c; - pub const SMACK_MAGIC: ::c_long = 0x43415d53; - pub const SMB_SUPER_MAGIC: ::c_long = 0x0000517b; - pub const SYSFS_MAGIC: ::c_long = 0x62656572; - pub const TMPFS_MAGIC: ::c_long = 0x01021994; - pub const TRACEFS_MAGIC: ::c_long = 0x74726163; - pub const UDF_SUPER_MAGIC: ::c_long = 0x15013346; - pub const USBDEVICE_SUPER_MAGIC: ::c_long = 0x00009fa2; - pub const XENFS_SUPER_MAGIC: ::c_long = 0xabba1974; - pub const NSFS_MAGIC: ::c_long = 0x6e736673; + pub const ADFS_SUPER_MAGIC: c_long = 0x0000adf5; + pub const AFFS_SUPER_MAGIC: c_long = 0x0000adff; + pub const AFS_SUPER_MAGIC: c_long = 0x5346414f; + pub const AUTOFS_SUPER_MAGIC: c_long = 0x0187; + pub const BPF_FS_MAGIC: c_long = 0xcafe4a11; + pub const BTRFS_SUPER_MAGIC: c_long = 0x9123683e; + pub const CGROUP2_SUPER_MAGIC: c_long = 0x63677270; + pub const CGROUP_SUPER_MAGIC: c_long = 0x27e0eb; + pub const CODA_SUPER_MAGIC: c_long = 0x73757245; + pub const CRAMFS_MAGIC: c_long = 0x28cd3d45; + pub const DEBUGFS_MAGIC: c_long = 0x64626720; + pub const DEVPTS_SUPER_MAGIC: c_long = 0x1cd1; + pub const ECRYPTFS_SUPER_MAGIC: c_long = 0xf15f; + pub const EFS_SUPER_MAGIC: c_long = 0x00414a53; + pub const EXT2_SUPER_MAGIC: c_long = 0x0000ef53; + pub const EXT3_SUPER_MAGIC: c_long = 0x0000ef53; + pub const EXT4_SUPER_MAGIC: c_long = 0x0000ef53; + pub const F2FS_SUPER_MAGIC: c_long = 0xf2f52010; + pub const FUSE_SUPER_MAGIC: c_long = 0x65735546; + pub const FUTEXFS_SUPER_MAGIC: c_long = 0xbad1dea; + pub const HOSTFS_SUPER_MAGIC: c_long = 0x00c0ffee; + pub const HPFS_SUPER_MAGIC: c_long = 0xf995e849; + pub const HUGETLBFS_MAGIC: c_long = 0x958458f6; + pub const ISOFS_SUPER_MAGIC: c_long = 0x00009660; + pub const JFFS2_SUPER_MAGIC: c_long = 0x000072b6; + pub const MINIX2_SUPER_MAGIC2: c_long = 0x00002478; + pub const MINIX2_SUPER_MAGIC: c_long = 0x00002468; + pub const MINIX3_SUPER_MAGIC: c_long = 0x4d5a; + pub const MINIX_SUPER_MAGIC2: c_long = 0x0000138f; + pub const MINIX_SUPER_MAGIC: c_long = 0x0000137f; + pub const MSDOS_SUPER_MAGIC: c_long = 0x00004d44; + pub const NCP_SUPER_MAGIC: c_long = 0x0000564c; + pub const NFS_SUPER_MAGIC: c_long = 0x00006969; + pub const NILFS_SUPER_MAGIC: c_long = 0x3434; + pub const OCFS2_SUPER_MAGIC: c_long = 0x7461636f; + pub const OPENPROM_SUPER_MAGIC: c_long = 0x00009fa1; + pub const OVERLAYFS_SUPER_MAGIC: c_long = 0x794c7630; + pub const PROC_SUPER_MAGIC: c_long = 0x00009fa0; + pub const QNX4_SUPER_MAGIC: c_long = 0x0000002f; + pub const QNX6_SUPER_MAGIC: c_long = 0x68191122; + pub const RDTGROUP_SUPER_MAGIC: c_long = 0x7655821; + pub const REISERFS_SUPER_MAGIC: c_long = 0x52654973; + pub const SECURITYFS_MAGIC: c_long = 0x73636673; + pub const SELINUX_MAGIC: c_long = 0xf97cff8c; + pub const SMACK_MAGIC: c_long = 0x43415d53; + pub const SMB_SUPER_MAGIC: c_long = 0x0000517b; + pub const SYSFS_MAGIC: c_long = 0x62656572; + pub const TMPFS_MAGIC: c_long = 0x01021994; + pub const TRACEFS_MAGIC: c_long = 0x74726163; + pub const UDF_SUPER_MAGIC: c_long = 0x15013346; + pub const USBDEVICE_SUPER_MAGIC: c_long = 0x00009fa2; + pub const XENFS_SUPER_MAGIC: c_long = 0xabba1974; + pub const NSFS_MAGIC: c_long = 0x6e736673; } else if #[cfg(target_arch = "s390x")] { - pub const ADFS_SUPER_MAGIC: ::c_uint = 0x0000adf5; - pub const AFFS_SUPER_MAGIC: ::c_uint = 0x0000adff; - pub const AFS_SUPER_MAGIC: ::c_uint = 0x5346414f; - pub const AUTOFS_SUPER_MAGIC: ::c_uint = 0x0187; - pub const BPF_FS_MAGIC: ::c_uint = 0xcafe4a11; - pub const BTRFS_SUPER_MAGIC: ::c_uint = 0x9123683e; - pub const CGROUP2_SUPER_MAGIC: ::c_uint = 0x63677270; - pub const CGROUP_SUPER_MAGIC: ::c_uint = 0x27e0eb; - pub const CODA_SUPER_MAGIC: ::c_uint = 0x73757245; - pub const CRAMFS_MAGIC: ::c_uint = 0x28cd3d45; - pub const DEBUGFS_MAGIC: ::c_uint = 0x64626720; - pub const DEVPTS_SUPER_MAGIC: ::c_uint = 0x1cd1; - pub const ECRYPTFS_SUPER_MAGIC: ::c_uint = 0xf15f; - pub const EFS_SUPER_MAGIC: ::c_uint = 0x00414a53; - pub const EXT2_SUPER_MAGIC: ::c_uint = 0x0000ef53; - pub const EXT3_SUPER_MAGIC: ::c_uint = 0x0000ef53; - pub const EXT4_SUPER_MAGIC: ::c_uint = 0x0000ef53; - pub const F2FS_SUPER_MAGIC: ::c_uint = 0xf2f52010; - pub const FUSE_SUPER_MAGIC: ::c_uint = 0x65735546; - pub const FUTEXFS_SUPER_MAGIC: ::c_uint = 0xbad1dea; - pub const HOSTFS_SUPER_MAGIC: ::c_uint = 0x00c0ffee; - pub const HPFS_SUPER_MAGIC: ::c_uint = 0xf995e849; - pub const HUGETLBFS_MAGIC: ::c_uint = 0x958458f6; - pub const ISOFS_SUPER_MAGIC: ::c_uint = 0x00009660; - pub const JFFS2_SUPER_MAGIC: ::c_uint = 0x000072b6; - pub const MINIX2_SUPER_MAGIC2: ::c_uint = 0x00002478; - pub const MINIX2_SUPER_MAGIC: ::c_uint = 0x00002468; - pub const MINIX3_SUPER_MAGIC: ::c_uint = 0x4d5a; - pub const MINIX_SUPER_MAGIC2: ::c_uint = 0x0000138f; - pub const MINIX_SUPER_MAGIC: ::c_uint = 0x0000137f; - pub const MSDOS_SUPER_MAGIC: ::c_uint = 0x00004d44; - pub const NCP_SUPER_MAGIC: ::c_uint = 0x0000564c; - pub const NFS_SUPER_MAGIC: ::c_uint = 0x00006969; - pub const NILFS_SUPER_MAGIC: ::c_uint = 0x3434; - pub const OCFS2_SUPER_MAGIC: ::c_uint = 0x7461636f; - pub const OPENPROM_SUPER_MAGIC: ::c_uint = 0x00009fa1; - pub const OVERLAYFS_SUPER_MAGIC: ::c_uint = 0x794c7630; - pub const PROC_SUPER_MAGIC: ::c_uint = 0x00009fa0; - pub const QNX4_SUPER_MAGIC: ::c_uint = 0x0000002f; - pub const QNX6_SUPER_MAGIC: ::c_uint = 0x68191122; - pub const RDTGROUP_SUPER_MAGIC: ::c_uint = 0x7655821; - pub const REISERFS_SUPER_MAGIC: ::c_uint = 0x52654973; - pub const SECURITYFS_MAGIC: ::c_uint = 0x73636673; - pub const SELINUX_MAGIC: ::c_uint = 0xf97cff8c; - pub const SMACK_MAGIC: ::c_uint = 0x43415d53; - pub const SMB_SUPER_MAGIC: ::c_uint = 0x0000517b; - pub const SYSFS_MAGIC: ::c_uint = 0x62656572; - pub const TMPFS_MAGIC: ::c_uint = 0x01021994; - pub const TRACEFS_MAGIC: ::c_uint = 0x74726163; - pub const UDF_SUPER_MAGIC: ::c_uint = 0x15013346; - pub const USBDEVICE_SUPER_MAGIC: ::c_uint = 0x00009fa2; - pub const XENFS_SUPER_MAGIC: ::c_uint = 0xabba1974; - pub const NSFS_MAGIC: ::c_uint = 0x6e736673; + pub const ADFS_SUPER_MAGIC: c_uint = 0x0000adf5; + pub const AFFS_SUPER_MAGIC: c_uint = 0x0000adff; + pub const AFS_SUPER_MAGIC: c_uint = 0x5346414f; + pub const AUTOFS_SUPER_MAGIC: c_uint = 0x0187; + pub const BPF_FS_MAGIC: c_uint = 0xcafe4a11; + pub const BTRFS_SUPER_MAGIC: c_uint = 0x9123683e; + pub const CGROUP2_SUPER_MAGIC: c_uint = 0x63677270; + pub const CGROUP_SUPER_MAGIC: c_uint = 0x27e0eb; + pub const CODA_SUPER_MAGIC: c_uint = 0x73757245; + pub const CRAMFS_MAGIC: c_uint = 0x28cd3d45; + pub const DEBUGFS_MAGIC: c_uint = 0x64626720; + pub const DEVPTS_SUPER_MAGIC: c_uint = 0x1cd1; + pub const ECRYPTFS_SUPER_MAGIC: c_uint = 0xf15f; + pub const EFS_SUPER_MAGIC: c_uint = 0x00414a53; + pub const EXT2_SUPER_MAGIC: c_uint = 0x0000ef53; + pub const EXT3_SUPER_MAGIC: c_uint = 0x0000ef53; + pub const EXT4_SUPER_MAGIC: c_uint = 0x0000ef53; + pub const F2FS_SUPER_MAGIC: c_uint = 0xf2f52010; + pub const FUSE_SUPER_MAGIC: c_uint = 0x65735546; + pub const FUTEXFS_SUPER_MAGIC: c_uint = 0xbad1dea; + pub const HOSTFS_SUPER_MAGIC: c_uint = 0x00c0ffee; + pub const HPFS_SUPER_MAGIC: c_uint = 0xf995e849; + pub const HUGETLBFS_MAGIC: c_uint = 0x958458f6; + pub const ISOFS_SUPER_MAGIC: c_uint = 0x00009660; + pub const JFFS2_SUPER_MAGIC: c_uint = 0x000072b6; + pub const MINIX2_SUPER_MAGIC2: c_uint = 0x00002478; + pub const MINIX2_SUPER_MAGIC: c_uint = 0x00002468; + pub const MINIX3_SUPER_MAGIC: c_uint = 0x4d5a; + pub const MINIX_SUPER_MAGIC2: c_uint = 0x0000138f; + pub const MINIX_SUPER_MAGIC: c_uint = 0x0000137f; + pub const MSDOS_SUPER_MAGIC: c_uint = 0x00004d44; + pub const NCP_SUPER_MAGIC: c_uint = 0x0000564c; + pub const NFS_SUPER_MAGIC: c_uint = 0x00006969; + pub const NILFS_SUPER_MAGIC: c_uint = 0x3434; + pub const OCFS2_SUPER_MAGIC: c_uint = 0x7461636f; + pub const OPENPROM_SUPER_MAGIC: c_uint = 0x00009fa1; + pub const OVERLAYFS_SUPER_MAGIC: c_uint = 0x794c7630; + pub const PROC_SUPER_MAGIC: c_uint = 0x00009fa0; + pub const QNX4_SUPER_MAGIC: c_uint = 0x0000002f; + pub const QNX6_SUPER_MAGIC: c_uint = 0x68191122; + pub const RDTGROUP_SUPER_MAGIC: c_uint = 0x7655821; + pub const REISERFS_SUPER_MAGIC: c_uint = 0x52654973; + pub const SECURITYFS_MAGIC: c_uint = 0x73636673; + pub const SELINUX_MAGIC: c_uint = 0xf97cff8c; + pub const SMACK_MAGIC: c_uint = 0x43415d53; + pub const SMB_SUPER_MAGIC: c_uint = 0x0000517b; + pub const SYSFS_MAGIC: c_uint = 0x62656572; + pub const TMPFS_MAGIC: c_uint = 0x01021994; + pub const TRACEFS_MAGIC: c_uint = 0x74726163; + pub const UDF_SUPER_MAGIC: c_uint = 0x15013346; + pub const USBDEVICE_SUPER_MAGIC: c_uint = 0x00009fa2; + pub const XENFS_SUPER_MAGIC: c_uint = 0xabba1974; + pub const NSFS_MAGIC: c_uint = 0x6e736673; } } cfg_if! { if #[cfg(any(target_env = "gnu", target_os = "android"))] { - pub const AT_STATX_SYNC_TYPE: ::c_int = 0x6000; - pub const AT_STATX_SYNC_AS_STAT: ::c_int = 0x0000; - pub const AT_STATX_FORCE_SYNC: ::c_int = 0x2000; - pub const AT_STATX_DONT_SYNC: ::c_int = 0x4000; - pub const STATX_TYPE: ::c_uint = 0x0001; - pub const STATX_MODE: ::c_uint = 0x0002; - pub const STATX_NLINK: ::c_uint = 0x0004; - pub const STATX_UID: ::c_uint = 0x0008; - pub const STATX_GID: ::c_uint = 0x0010; - pub const STATX_ATIME: ::c_uint = 0x0020; - pub const STATX_MTIME: ::c_uint = 0x0040; - pub const STATX_CTIME: ::c_uint = 0x0080; - pub const STATX_INO: ::c_uint = 0x0100; - pub const STATX_SIZE: ::c_uint = 0x0200; - pub const STATX_BLOCKS: ::c_uint = 0x0400; - pub const STATX_BASIC_STATS: ::c_uint = 0x07ff; - pub const STATX_BTIME: ::c_uint = 0x0800; - pub const STATX_ALL: ::c_uint = 0x0fff; - pub const STATX_MNT_ID: ::c_uint = 0x1000; - pub const STATX_DIOALIGN: ::c_uint = 0x2000; - pub const STATX__RESERVED: ::c_int = 0x80000000; - pub const STATX_ATTR_COMPRESSED: ::c_int = 0x0004; - pub const STATX_ATTR_IMMUTABLE: ::c_int = 0x0010; - pub const STATX_ATTR_APPEND: ::c_int = 0x0020; - pub const STATX_ATTR_NODUMP: ::c_int = 0x0040; - pub const STATX_ATTR_ENCRYPTED: ::c_int = 0x0800; - pub const STATX_ATTR_AUTOMOUNT: ::c_int = 0x1000; - pub const STATX_ATTR_MOUNT_ROOT: ::c_int = 0x2000; - pub const STATX_ATTR_VERITY: ::c_int = 0x100000; - pub const STATX_ATTR_DAX: ::c_int = 0x200000; + pub const AT_STATX_SYNC_TYPE: c_int = 0x6000; + pub const AT_STATX_SYNC_AS_STAT: c_int = 0x0000; + pub const AT_STATX_FORCE_SYNC: c_int = 0x2000; + pub const AT_STATX_DONT_SYNC: c_int = 0x4000; + pub const STATX_TYPE: c_uint = 0x0001; + pub const STATX_MODE: c_uint = 0x0002; + pub const STATX_NLINK: c_uint = 0x0004; + pub const STATX_UID: c_uint = 0x0008; + pub const STATX_GID: c_uint = 0x0010; + pub const STATX_ATIME: c_uint = 0x0020; + pub const STATX_MTIME: c_uint = 0x0040; + pub const STATX_CTIME: c_uint = 0x0080; + pub const STATX_INO: c_uint = 0x0100; + pub const STATX_SIZE: c_uint = 0x0200; + pub const STATX_BLOCKS: c_uint = 0x0400; + pub const STATX_BASIC_STATS: c_uint = 0x07ff; + pub const STATX_BTIME: c_uint = 0x0800; + pub const STATX_ALL: c_uint = 0x0fff; + pub const STATX_MNT_ID: c_uint = 0x1000; + pub const STATX_DIOALIGN: c_uint = 0x2000; + pub const STATX__RESERVED: c_int = 0x80000000; + pub const STATX_ATTR_COMPRESSED: c_int = 0x0004; + pub const STATX_ATTR_IMMUTABLE: c_int = 0x0010; + pub const STATX_ATTR_APPEND: c_int = 0x0020; + pub const STATX_ATTR_NODUMP: c_int = 0x0040; + pub const STATX_ATTR_ENCRYPTED: c_int = 0x0800; + pub const STATX_ATTR_AUTOMOUNT: c_int = 0x1000; + pub const STATX_ATTR_MOUNT_ROOT: c_int = 0x2000; + pub const STATX_ATTR_VERITY: c_int = 0x100000; + pub const STATX_ATTR_DAX: c_int = 0x200000; } } const_fn! { {const} fn CMSG_ALIGN(len: usize) -> usize { - len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) + len + crate::mem::size_of::() - 1 & !(crate::mem::size_of::() - 1) } } f! { pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= ::mem::size_of::() { + if (*mhdr).msg_controllen as usize >= crate::mem::size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { 0 as *mut cmsghdr } } - pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut ::c_uchar { - cmsg.offset(1) as *mut ::c_uchar + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { + cmsg.offset(1) as *mut c_uchar } - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) as ::c_uint + pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(crate::mem::size_of::())) as c_uint } - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - CMSG_ALIGN(::mem::size_of::()) as ::c_uint + length + pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + CMSG_ALIGN(crate::mem::size_of::()) as c_uint + length } - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { + pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } @@ -1658,55 +1660,55 @@ f! { } safe_f! { - pub fn SIGRTMAX() -> ::c_int { + pub fn SIGRTMAX() -> c_int { unsafe { __libc_current_sigrtmax() } } - pub fn SIGRTMIN() -> ::c_int { + pub fn SIGRTMIN() -> c_int { unsafe { __libc_current_sigrtmin() } } - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + pub {const} fn WIFSTOPPED(status: c_int) -> bool { (status & 0xff) == 0x7f } - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + pub {const} fn WSTOPSIG(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + pub {const} fn WIFCONTINUED(status: c_int) -> bool { status == 0xffff } - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + pub {const} fn WIFSIGNALED(status: c_int) -> bool { ((status & 0x7f) + 1) as i8 >= 2 } - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + pub {const} fn WTERMSIG(status: c_int) -> c_int { status & 0x7f } - pub {const} fn WIFEXITED(status: ::c_int) -> bool { + pub {const} fn WIFEXITED(status: c_int) -> bool { (status & 0x7f) == 0 } - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + pub {const} fn WEXITSTATUS(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WCOREDUMP(status: ::c_int) -> bool { + pub {const} fn WCOREDUMP(status: c_int) -> bool { (status & 0x80) != 0 } - pub {const} fn W_EXITCODE(ret: ::c_int, sig: ::c_int) -> ::c_int { + pub {const} fn W_EXITCODE(ret: c_int, sig: c_int) -> c_int { (ret << 8) | sig } - pub {const} fn W_STOPCODE(sig: ::c_int) -> ::c_int { + pub {const} fn W_STOPCODE(sig: c_int) -> c_int { (sig << 8) | 0x7f } - pub {const} fn QCMD(cmd: ::c_int, type_: ::c_int) -> ::c_int { + pub {const} fn QCMD(cmd: c_int, type_: c_int) -> c_int { (cmd << 8) | (type_ & 0x00ff) } @@ -1723,14 +1725,14 @@ safe_f! { } pub {const} fn IPTOS_ECN(x: u8) -> u8 { - x & ::IPTOS_ECN_MASK + x & crate::IPTOS_ECN_MASK } #[allow(ellipsis_inclusive_range_patterns)] pub {const} fn KERNEL_VERSION(a: u32, b: u32, c: u32) -> u32 { ((a << 16) + (b << 8)) + match c { - 0...255 => c, + 0..=255 => c, _ => 255, } } @@ -1738,136 +1740,141 @@ safe_f! { extern "C" { #[doc(hidden)] - pub fn __libc_current_sigrtmax() -> ::c_int; + pub fn __libc_current_sigrtmax() -> c_int; #[doc(hidden)] - pub fn __libc_current_sigrtmin() -> ::c_int; + pub fn __libc_current_sigrtmin() -> c_int; - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; - pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn mincore(addr: *mut ::c_void, len: ::size_t, vec: *mut ::c_uchar) -> ::c_int; + pub fn sem_destroy(sem: *mut sem_t) -> c_int; + pub fn sem_init(sem: *mut sem_t, pshared: c_int, value: c_uint) -> c_int; + pub fn fdatasync(fd: c_int) -> c_int; + pub fn mincore(addr: *mut c_void, len: size_t, vec: *mut c_uchar) -> 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; - pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int; + pub fn clock_getres(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + pub fn clock_settime(clk_id: crate::clockid_t, tp: *const crate::timespec) -> c_int; + pub fn clock_getcpuclockid(pid: crate::pid_t, clk_id: *mut crate::clockid_t) -> c_int; - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; + pub fn dirfd(dirp: *mut crate::DIR) -> c_int; - pub fn pthread_getattr_np(native: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_getattr_np(native: crate::pthread_t, attr: *mut crate::pthread_attr_t) -> c_int; pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn setgroups(ngroups: ::size_t, ptr: *const ::gid_t) -> ::c_int; - pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; - pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; - pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + attr: *const crate::pthread_attr_t, + stackaddr: *mut *mut c_void, + stacksize: *mut size_t, + ) -> c_int; + pub fn memalign(align: size_t, size: size_t) -> *mut c_void; + pub fn setgroups(ngroups: size_t, ptr: *const crate::gid_t) -> c_int; + pub fn pipe2(fds: *mut c_int, flags: c_int) -> c_int; + pub fn statfs(path: *const c_char, buf: *mut statfs) -> c_int; + pub fn fstatfs(fd: c_int, buf: *mut statfs) -> c_int; + pub fn memrchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; + pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advise: c_int) -> c_int; + pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; - pub fn duplocale(base: ::locale_t) -> ::locale_t; - pub fn freelocale(loc: ::locale_t); - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; - pub fn uselocale(loc: ::locale_t) -> ::locale_t; - pub fn mknodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - dev: dev_t, - ) -> ::c_int; + dirfd: c_int, + path: *const c_char, + times: *const crate::timespec, + flag: c_int, + ) -> c_int; + pub fn duplocale(base: crate::locale_t) -> crate::locale_t; + pub fn freelocale(loc: crate::locale_t); + pub fn newlocale(mask: c_int, locale: *const c_char, base: crate::locale_t) -> crate::locale_t; + pub fn uselocale(loc: crate::locale_t) -> crate::locale_t; + pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t, dev: dev_t) + -> c_int; pub fn pthread_condattr_getclock( attr: *const pthread_condattr_t, clock_id: *mut clockid_t, - ) -> ::c_int; + ) -> c_int; pub fn pthread_condattr_setclock( attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_mutexattr_setpshared( - attr: *mut pthread_mutexattr_t, - pshared: ::c_int, - ) -> ::c_int; + clock_id: crate::clockid_t, + ) -> c_int; + pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: c_int) -> c_int; + pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, pshared: c_int) -> c_int; pub fn pthread_rwlockattr_getpshared( attr: *const pthread_rwlockattr_t, - val: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int; - pub fn ptsname_r(fd: ::c_int, buf: *mut ::c_char, buflen: ::size_t) -> ::c_int; - pub fn clearenv() -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) - -> ::c_int; - pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int; - pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int; - pub fn acct(filename: *const ::c_char) -> ::c_int; - pub fn brk(addr: *mut ::c_void) -> ::c_int; - pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; + val: *mut c_int, + ) -> c_int; + pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: c_int) -> c_int; + pub fn ptsname_r(fd: c_int, buf: *mut c_char, buflen: size_t) -> c_int; + pub fn clearenv() -> c_int; + pub fn waitid( + idtype: idtype_t, + id: id_t, + infop: *mut crate::siginfo_t, + options: c_int, + ) -> c_int; + pub fn getresuid( + ruid: *mut crate::uid_t, + euid: *mut crate::uid_t, + suid: *mut crate::uid_t, + ) -> c_int; + pub fn getresgid( + rgid: *mut crate::gid_t, + egid: *mut crate::gid_t, + sgid: *mut crate::gid_t, + ) -> c_int; + pub fn acct(filename: *const c_char) -> c_int; + pub fn brk(addr: *mut c_void) -> c_int; + pub fn sbrk(increment: intptr_t) -> *mut c_void; #[deprecated( since = "0.2.66", note = "causes memory corruption, see rust-lang/libc#1596" )] - pub fn vfork() -> ::pid_t; - 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 vfork() -> crate::pid_t; + pub fn setresgid(rgid: crate::gid_t, egid: crate::gid_t, sgid: crate::gid_t) -> c_int; + pub fn setresuid(ruid: crate::uid_t, euid: crate::uid_t, suid: crate::uid_t) -> c_int; pub fn wait4( - pid: ::pid_t, - status: *mut ::c_int, - options: ::c_int, - rusage: *mut ::rusage, - ) -> ::pid_t; - pub fn login_tty(fd: ::c_int) -> ::c_int; + pid: crate::pid_t, + status: *mut c_int, + options: c_int, + rusage: *mut crate::rusage, + ) -> crate::pid_t; + pub fn login_tty(fd: c_int) -> c_int; // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execvpe( - file: *const ::c_char, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - pub fn fexecve( - fd: ::c_int, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; + file: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + ) -> c_int; + pub fn fexecve(fd: c_int, argv: *const *const c_char, envp: *const *const c_char) -> c_int; - pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; - pub fn freeifaddrs(ifa: *mut ::ifaddrs); - pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; + pub fn getifaddrs(ifap: *mut *mut crate::ifaddrs) -> c_int; + pub fn freeifaddrs(ifa: *mut crate::ifaddrs); + pub fn bind( + socket: c_int, + address: *const crate::sockaddr, + address_len: crate::socklen_t, + ) -> c_int; - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; + pub fn readv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; - pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; - pub fn uname(buf: *mut ::utsname) -> ::c_int; + pub fn sendmsg(fd: c_int, msg: *const crate::msghdr, flags: c_int) -> ssize_t; + pub fn recvmsg(fd: c_int, msg: *mut crate::msghdr, flags: c_int) -> ssize_t; + pub fn uname(buf: *mut crate::utsname) -> c_int; - pub fn strchrnul(s: *const ::c_char, c: ::c_int) -> *mut ::c_char; + pub fn strchrnul(s: *const c_char, c: c_int) -> *mut c_char; pub fn strftime( - s: *mut ::c_char, - max: ::size_t, - format: *const ::c_char, - tm: *const ::tm, - ) -> ::size_t; + s: *mut c_char, + max: size_t, + format: *const c_char, + tm: *const crate::tm, + ) -> size_t; pub fn strftime_l( - s: *mut ::c_char, - max: ::size_t, - format: *const ::c_char, - tm: *const ::tm, - locale: ::locale_t, - ) -> ::size_t; - pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; - - pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; + s: *mut c_char, + max: size_t, + format: *const c_char, + tm: *const crate::tm, + locale: crate::locale_t, + ) -> size_t; + pub fn strptime(s: *const c_char, format: *const c_char, tm: *mut crate::tm) -> *mut c_char; + + pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int; + pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int; } // LFS64 extensions @@ -1877,57 +1884,52 @@ extern "C" { cfg_if! { if #[cfg(not(any(target_env = "musl", target_os = "emscripten")))] { extern "C" { - pub fn fstatfs64(fd: ::c_int, buf: *mut statfs64) -> ::c_int; - pub fn statvfs64(path: *const ::c_char, buf: *mut statvfs64) -> ::c_int; - pub fn fstatvfs64(fd: ::c_int, buf: *mut statvfs64) -> ::c_int; - pub fn statfs64(path: *const ::c_char, buf: *mut statfs64) -> ::c_int; - pub fn creat64(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn fstat64(fildes: ::c_int, buf: *mut stat64) -> ::c_int; + pub fn fstatfs64(fd: c_int, buf: *mut statfs64) -> c_int; + pub fn statvfs64(path: *const c_char, buf: *mut statvfs64) -> c_int; + pub fn fstatvfs64(fd: c_int, buf: *mut statvfs64) -> c_int; + pub fn statfs64(path: *const c_char, buf: *mut statfs64) -> c_int; + pub fn creat64(path: *const c_char, mode: mode_t) -> c_int; + pub fn fstat64(fildes: c_int, buf: *mut stat64) -> c_int; pub fn fstatat64( - dirfd: ::c_int, + dirfd: c_int, pathname: *const c_char, buf: *mut stat64, - flags: ::c_int, - ) -> ::c_int; - pub fn ftruncate64(fd: ::c_int, length: off64_t) -> ::c_int; - pub fn lseek64(fd: ::c_int, offset: off64_t, whence: ::c_int) -> off64_t; - pub fn lstat64(path: *const c_char, buf: *mut stat64) -> ::c_int; + flags: c_int, + ) -> c_int; + pub fn ftruncate64(fd: c_int, length: off64_t) -> c_int; + pub fn lseek64(fd: c_int, offset: off64_t, whence: c_int) -> off64_t; + pub fn lstat64(path: *const c_char, buf: *mut stat64) -> c_int; pub fn mmap64( - addr: *mut ::c_void, - len: ::size_t, - prot: ::c_int, - flags: ::c_int, - fd: ::c_int, + addr: *mut c_void, + len: size_t, + prot: c_int, + flags: c_int, + fd: c_int, offset: off64_t, - ) -> *mut ::c_void; - pub fn open64(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; - pub fn openat64(fd: ::c_int, path: *const c_char, oflag: ::c_int, ...) -> ::c_int; + ) -> *mut c_void; + pub fn open64(path: *const c_char, oflag: c_int, ...) -> c_int; + pub fn openat64(fd: c_int, path: *const c_char, oflag: c_int, ...) -> c_int; pub fn posix_fadvise64( - fd: ::c_int, - offset: ::off64_t, - len: ::off64_t, - advise: ::c_int, - ) -> ::c_int; - pub fn pread64( - fd: ::c_int, - buf: *mut ::c_void, - count: ::size_t, + fd: c_int, offset: off64_t, - ) -> ::ssize_t; + len: off64_t, + advise: c_int, + ) -> c_int; + pub fn pread64(fd: c_int, buf: *mut c_void, count: size_t, offset: off64_t) -> ssize_t; pub fn pwrite64( - fd: ::c_int, - buf: *const ::c_void, - count: ::size_t, + fd: c_int, + buf: *const c_void, + count: size_t, offset: off64_t, - ) -> ::ssize_t; - pub fn readdir64(dirp: *mut ::DIR) -> *mut ::dirent64; + ) -> ssize_t; + pub fn readdir64(dirp: *mut crate::DIR) -> *mut crate::dirent64; pub fn readdir64_r( - dirp: *mut ::DIR, - entry: *mut ::dirent64, - result: *mut *mut ::dirent64, - ) -> ::c_int; - pub fn stat64(path: *const c_char, buf: *mut stat64) -> ::c_int; - pub fn truncate64(path: *const c_char, length: off64_t) -> ::c_int; + dirp: *mut crate::DIR, + entry: *mut crate::dirent64, + result: *mut *mut crate::dirent64, + ) -> c_int; + pub fn stat64(path: *const c_char, buf: *mut stat64) -> c_int; + pub fn truncate64(path: *const c_char, length: off64_t) -> c_int; } } } @@ -1940,17 +1942,17 @@ cfg_if! { )))] { extern "C" { pub fn preadv64( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, - ) -> ::ssize_t; + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: off64_t, + ) -> ssize_t; pub fn pwritev64( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, - ) -> ::ssize_t; + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: off64_t, + ) -> ssize_t; } } } @@ -1960,19 +1962,19 @@ cfg_if! { extern "C" { // uclibc has separate non-const version of this function pub fn forkpty( - amaster: *mut ::c_int, - name: *mut ::c_char, + amaster: *mut c_int, + name: *mut c_char, termp: *const termios, - winp: *const ::winsize, - ) -> ::pid_t; + winp: *const crate::winsize, + ) -> crate::pid_t; // uclibc has separate non-const version of this function pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, + amaster: *mut c_int, + aslave: *mut c_int, + name: *mut c_char, termp: *const termios, - winp: *const ::winsize, - ) -> ::c_int; + winp: *const crate::winsize, + ) -> c_int; } } } @@ -1982,12 +1984,12 @@ cfg_if! { if #[cfg(any(target_env = "gnu", target_os = "android"))] { extern "C" { pub fn statx( - dirfd: ::c_int, - pathname: *const ::c_char, - flags: ::c_int, - mask: ::c_uint, + dirfd: c_int, + pathname: *const c_char, + flags: c_int, + mask: c_uint, statxbuf: *mut statx, - ) -> ::c_int; + ) -> c_int; } } } diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 6fe25f8c222ea..fc0e561dca8e8 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -3,7 +3,7 @@ //! More functions and definitions can be found in the more specific modules //! according to the platform in question. -use c_void; +use crate::c_void; pub type c_schar = i8; pub type c_uchar = u8; @@ -27,8 +27,8 @@ pub type ssize_t = isize; pub type pid_t = i32; pub type in_addr_t = u32; pub type in_port_t = u16; -pub type sighandler_t = ::size_t; -pub type cc_t = ::c_uchar; +pub type sighandler_t = size_t; +pub type cc_t = c_uchar; cfg_if! { if #[cfg(any( @@ -36,8 +36,8 @@ cfg_if! { target_os = "horizon", target_os = "vita" ))] { - pub type uid_t = ::c_ushort; - pub type gid_t = ::c_ushort; + pub type uid_t = c_ushort; + pub type gid_t = c_ushort; } else if #[cfg(target_os = "nto")] { pub type uid_t = i32; pub type gid_t = i32; @@ -51,14 +51,14 @@ missing! { #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum DIR {} } -pub type locale_t = *mut ::c_void; +pub type locale_t = *mut c_void; s! { pub struct group { - pub gr_name: *mut ::c_char, - pub gr_passwd: *mut ::c_char, - pub gr_gid: ::gid_t, - pub gr_mem: *mut *mut ::c_char, + pub gr_name: *mut c_char, + pub gr_passwd: *mut c_char, + pub gr_gid: crate::gid_t, + pub gr_mem: *mut *mut c_char, } pub struct utimbuf { @@ -78,7 +78,7 @@ s! { #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub tv_nsec: i64, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub tv_nsec: ::c_long, + pub tv_nsec: c_long, } pub struct rlimit { @@ -139,72 +139,72 @@ s! { pub struct ipv6_mreq { pub ipv6mr_multiaddr: in6_addr, #[cfg(target_os = "android")] - pub ipv6mr_interface: ::c_int, + pub ipv6mr_interface: c_int, #[cfg(not(target_os = "android"))] - pub ipv6mr_interface: ::c_uint, + pub ipv6mr_interface: c_uint, } pub struct hostent { - pub h_name: *mut ::c_char, - pub h_aliases: *mut *mut ::c_char, - pub h_addrtype: ::c_int, - pub h_length: ::c_int, - pub h_addr_list: *mut *mut ::c_char, + pub h_name: *mut c_char, + pub h_aliases: *mut *mut c_char, + pub h_addrtype: c_int, + pub h_length: c_int, + pub h_addr_list: *mut *mut c_char, } pub struct iovec { - pub iov_base: *mut ::c_void, - pub iov_len: ::size_t, + pub iov_base: *mut c_void, + pub iov_len: size_t, } pub struct pollfd { - pub fd: ::c_int, - pub events: ::c_short, - pub revents: ::c_short, + pub fd: c_int, + pub events: c_short, + pub revents: c_short, } pub struct winsize { - pub ws_row: ::c_ushort, - pub ws_col: ::c_ushort, - pub ws_xpixel: ::c_ushort, - pub ws_ypixel: ::c_ushort, + pub ws_row: c_ushort, + pub ws_col: c_ushort, + pub ws_xpixel: c_ushort, + pub ws_ypixel: c_ushort, } pub struct linger { - pub l_onoff: ::c_int, - pub l_linger: ::c_int, + pub l_onoff: c_int, + pub l_linger: c_int, } pub struct sigval { // Actually a union of an int and a void* - pub sival_ptr: *mut ::c_void, + pub sival_ptr: *mut c_void, } // pub struct itimerval { - pub it_interval: ::timeval, - pub it_value: ::timeval, + pub it_interval: crate::timeval, + pub it_value: crate::timeval, } // pub struct tms { - pub tms_utime: ::clock_t, - pub tms_stime: ::clock_t, - pub tms_cutime: ::clock_t, - pub tms_cstime: ::clock_t, + pub tms_utime: crate::clock_t, + pub tms_stime: crate::clock_t, + pub tms_cutime: crate::clock_t, + pub tms_cstime: crate::clock_t, } pub struct servent { - pub s_name: *mut ::c_char, - pub s_aliases: *mut *mut ::c_char, - pub s_port: ::c_int, - pub s_proto: *mut ::c_char, + pub s_name: *mut c_char, + pub s_aliases: *mut *mut c_char, + pub s_port: c_int, + pub s_proto: *mut c_char, } pub struct protoent { - pub p_name: *mut ::c_char, - pub p_aliases: *mut *mut ::c_char, - pub p_proto: ::c_int, + pub p_name: *mut c_char, + pub p_aliases: *mut *mut c_char, + pub p_proto: c_int, } #[repr(align(4))] @@ -234,21 +234,21 @@ cfg_if! { } cfg_if! { if #[cfg(not(target_os = "redox"))] { - pub const FD_CLOEXEC: ::c_int = 0x1; + pub const FD_CLOEXEC: c_int = 0x1; } } cfg_if! { if #[cfg(not(target_os = "nto"))] { - pub const USRQUOTA: ::c_int = 0; - pub const GRPQUOTA: ::c_int = 1; + pub const USRQUOTA: c_int = 0; + pub const GRPQUOTA: c_int = 1; } } -pub const SIGIOT: ::c_int = 6; +pub const SIGIOT: c_int = 6; -pub const S_ISUID: ::mode_t = 0o4000; -pub const S_ISGID: ::mode_t = 0o2000; -pub const S_ISVTX: ::mode_t = 0o1000; +pub const S_ISUID: crate::mode_t = 0o4000; +pub const S_ISGID: crate::mode_t = 0o2000; +pub const S_ISVTX: crate::mode_t = 0o1000; cfg_if! { if #[cfg(not(any( @@ -256,62 +256,62 @@ cfg_if! { target_os = "illumos", target_os = "solaris" )))] { - pub const IF_NAMESIZE: ::size_t = 16; - pub const IFNAMSIZ: ::size_t = IF_NAMESIZE; + pub const IF_NAMESIZE: size_t = 16; + pub const IFNAMSIZ: size_t = IF_NAMESIZE; } } -pub const LOG_EMERG: ::c_int = 0; -pub const LOG_ALERT: ::c_int = 1; -pub const LOG_CRIT: ::c_int = 2; -pub const LOG_ERR: ::c_int = 3; -pub const LOG_WARNING: ::c_int = 4; -pub const LOG_NOTICE: ::c_int = 5; -pub const LOG_INFO: ::c_int = 6; -pub const LOG_DEBUG: ::c_int = 7; - -pub const LOG_KERN: ::c_int = 0; -pub const LOG_USER: ::c_int = 1 << 3; -pub const LOG_MAIL: ::c_int = 2 << 3; -pub const LOG_DAEMON: ::c_int = 3 << 3; -pub const LOG_AUTH: ::c_int = 4 << 3; -pub const LOG_SYSLOG: ::c_int = 5 << 3; -pub const LOG_LPR: ::c_int = 6 << 3; -pub const LOG_NEWS: ::c_int = 7 << 3; -pub const LOG_UUCP: ::c_int = 8 << 3; -pub const LOG_LOCAL0: ::c_int = 16 << 3; -pub const LOG_LOCAL1: ::c_int = 17 << 3; -pub const LOG_LOCAL2: ::c_int = 18 << 3; -pub const LOG_LOCAL3: ::c_int = 19 << 3; -pub const LOG_LOCAL4: ::c_int = 20 << 3; -pub const LOG_LOCAL5: ::c_int = 21 << 3; -pub const LOG_LOCAL6: ::c_int = 22 << 3; -pub const LOG_LOCAL7: ::c_int = 23 << 3; +pub const LOG_EMERG: c_int = 0; +pub const LOG_ALERT: c_int = 1; +pub const LOG_CRIT: c_int = 2; +pub const LOG_ERR: c_int = 3; +pub const LOG_WARNING: c_int = 4; +pub const LOG_NOTICE: c_int = 5; +pub const LOG_INFO: c_int = 6; +pub const LOG_DEBUG: c_int = 7; + +pub const LOG_KERN: c_int = 0; +pub const LOG_USER: c_int = 1 << 3; +pub const LOG_MAIL: c_int = 2 << 3; +pub const LOG_DAEMON: c_int = 3 << 3; +pub const LOG_AUTH: c_int = 4 << 3; +pub const LOG_SYSLOG: c_int = 5 << 3; +pub const LOG_LPR: c_int = 6 << 3; +pub const LOG_NEWS: c_int = 7 << 3; +pub const LOG_UUCP: c_int = 8 << 3; +pub const LOG_LOCAL0: c_int = 16 << 3; +pub const LOG_LOCAL1: c_int = 17 << 3; +pub const LOG_LOCAL2: c_int = 18 << 3; +pub const LOG_LOCAL3: c_int = 19 << 3; +pub const LOG_LOCAL4: c_int = 20 << 3; +pub const LOG_LOCAL5: c_int = 21 << 3; +pub const LOG_LOCAL6: c_int = 22 << 3; +pub const LOG_LOCAL7: c_int = 23 << 3; cfg_if! { if #[cfg(not(target_os = "haiku"))] { - pub const LOG_PID: ::c_int = 0x01; - pub const LOG_CONS: ::c_int = 0x02; - pub const LOG_ODELAY: ::c_int = 0x04; - pub const LOG_NDELAY: ::c_int = 0x08; - pub const LOG_NOWAIT: ::c_int = 0x10; + pub const LOG_PID: c_int = 0x01; + pub const LOG_CONS: c_int = 0x02; + pub const LOG_ODELAY: c_int = 0x04; + pub const LOG_NDELAY: c_int = 0x08; + pub const LOG_NOWAIT: c_int = 0x10; } } -pub const LOG_PRIMASK: ::c_int = 7; -pub const LOG_FACMASK: ::c_int = 0x3f8; +pub const LOG_PRIMASK: c_int = 7; +pub const LOG_FACMASK: c_int = 0x3f8; cfg_if! { if #[cfg(not(target_os = "nto"))] { - pub const PRIO_MIN: ::c_int = -20; - pub const PRIO_MAX: ::c_int = 20; + pub const PRIO_MIN: c_int = -20; + pub const PRIO_MAX: c_int = 20; } } -pub const IPPROTO_ICMP: ::c_int = 1; -pub const IPPROTO_ICMPV6: ::c_int = 58; -pub const IPPROTO_TCP: ::c_int = 6; -pub const IPPROTO_UDP: ::c_int = 17; -pub const IPPROTO_IP: ::c_int = 0; -pub const IPPROTO_IPV6: ::c_int = 41; +pub const IPPROTO_ICMP: c_int = 1; +pub const IPPROTO_ICMPV6: c_int = 58; +pub const IPPROTO_TCP: c_int = 6; +pub const IPPROTO_UDP: c_int = 17; +pub const IPPROTO_IP: c_int = 0; +pub const IPPROTO_IPV6: c_int = 41; pub const INADDR_LOOPBACK: in_addr_t = 2130706433; pub const INADDR_ANY: in_addr_t = 0; @@ -329,10 +329,10 @@ pub const IN6ADDR_ANY_INIT: in6_addr = in6_addr { pub const ARPOP_REQUEST: u16 = 1; pub const ARPOP_REPLY: u16 = 2; -pub const ATF_COM: ::c_int = 0x02; -pub const ATF_PERM: ::c_int = 0x04; -pub const ATF_PUBL: ::c_int = 0x08; -pub const ATF_USETRAILERS: ::c_int = 0x10; +pub const ATF_COM: c_int = 0x02; +pub const ATF_PERM: c_int = 0x04; +pub const ATF_PUBL: c_int = 0x08; +pub const ATF_USETRAILERS: c_int = 0x10; pub const FNM_PERIOD: c_int = 1 << 2; pub const FNM_NOMATCH: c_int = 1; @@ -559,14 +559,14 @@ extern "C" { base: *mut c_void, num: size_t, size: size_t, - compar: ::Option c_int>, + compar: Option c_int>, ); pub fn bsearch( key: *const c_void, base: *const c_void, num: size_t, size: size_t, - compar: ::Option c_int>, + compar: Option c_int>, ) -> *mut c_void; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), @@ -673,7 +673,7 @@ extern "C" { pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; pub fn strsignal(sig: c_int) -> *mut c_char; pub fn wcslen(buf: *const wchar_t) -> size_t; - pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> ::size_t; + pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> size_t; pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; pub fn wmemchr(cx: *const wchar_t, c: wchar_t, n: size_t) -> *mut wchar_t; @@ -685,38 +685,38 @@ extern "C" { extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam50")] - pub fn getpwnam(name: *const ::c_char) -> *mut passwd; + pub fn getpwnam(name: *const c_char) -> *mut passwd; #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid50")] - pub fn getpwuid(uid: ::uid_t) -> *mut passwd; + pub fn getpwuid(uid: crate::uid_t) -> *mut passwd; - pub fn fprintf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; - pub fn printf(format: *const ::c_char, ...) -> ::c_int; - pub fn snprintf(s: *mut ::c_char, n: ::size_t, format: *const ::c_char, ...) -> ::c_int; - pub fn sprintf(s: *mut ::c_char, format: *const ::c_char, ...) -> ::c_int; + pub fn fprintf(stream: *mut crate::FILE, format: *const c_char, ...) -> c_int; + pub fn printf(format: *const c_char, ...) -> c_int; + pub fn snprintf(s: *mut c_char, n: size_t, format: *const c_char, ...) -> c_int; + pub fn sprintf(s: *mut c_char, format: *const c_char, ...) -> c_int; #[cfg_attr( all(target_os = "linux", not(target_env = "uclibc")), link_name = "__isoc99_fscanf" )] - pub fn fscanf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; + pub fn fscanf(stream: *mut crate::FILE, format: *const c_char, ...) -> c_int; #[cfg_attr( all(target_os = "linux", not(target_env = "uclibc")), link_name = "__isoc99_scanf" )] - pub fn scanf(format: *const ::c_char, ...) -> ::c_int; + pub fn scanf(format: *const c_char, ...) -> c_int; #[cfg_attr( all(target_os = "linux", not(target_env = "uclibc")), link_name = "__isoc99_sscanf" )] - pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) -> ::c_int; - pub fn getchar_unlocked() -> ::c_int; - pub fn putchar_unlocked(c: ::c_int) -> ::c_int; + pub fn sscanf(s: *const c_char, format: *const c_char, ...) -> c_int; + pub fn getchar_unlocked() -> c_int; + pub fn putchar_unlocked(c: c_int) -> c_int; #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr(target_os = "netbsd", link_name = "__socket30")] #[cfg_attr(target_os = "illumos", link_name = "__xnet_socket")] #[cfg_attr(target_os = "solaris", link_name = "__xnet7_socket")] #[cfg_attr(target_os = "espidf", link_name = "lwip_socket")] - pub fn socket(domain: ::c_int, ty: ::c_int, protocol: ::c_int) -> ::c_int; + pub fn socket(domain: c_int, ty: c_int, protocol: c_int) -> c_int; #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr( all(target_os = "macos", target_arch = "x86"), @@ -727,50 +727,44 @@ extern "C" { link_name = "__xnet_connect" )] #[cfg_attr(target_os = "espidf", link_name = "lwip_connect")] - pub fn connect(socket: ::c_int, address: *const sockaddr, len: socklen_t) -> ::c_int; + pub fn connect(socket: c_int, address: *const sockaddr, len: socklen_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "listen$UNIX2003" )] #[cfg_attr(target_os = "espidf", link_name = "lwip_listen")] - pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; + pub fn listen(socket: c_int, backlog: c_int) -> c_int; #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "accept$UNIX2003" )] #[cfg_attr(target_os = "espidf", link_name = "lwip_accept")] - pub fn accept(socket: ::c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> ::c_int; + pub fn accept(socket: c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> c_int; #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "getpeername$UNIX2003" )] #[cfg_attr(target_os = "espidf", link_name = "lwip_getpeername")] - pub fn getpeername( - socket: ::c_int, - address: *mut sockaddr, - address_len: *mut socklen_t, - ) -> ::c_int; + pub fn getpeername(socket: c_int, address: *mut sockaddr, address_len: *mut socklen_t) + -> c_int; #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "getsockname$UNIX2003" )] #[cfg_attr(target_os = "espidf", link_name = "lwip_getsockname")] - pub fn getsockname( - socket: ::c_int, - address: *mut sockaddr, - address_len: *mut socklen_t, - ) -> ::c_int; + pub fn getsockname(socket: c_int, address: *mut sockaddr, address_len: *mut socklen_t) + -> c_int; #[cfg_attr(target_os = "espidf", link_name = "lwip_setsockopt")] pub fn setsockopt( - socket: ::c_int, - level: ::c_int, - name: ::c_int, - value: *const ::c_void, + socket: c_int, + level: c_int, + name: c_int, + value: *const c_void, option_len: socklen_t, - ) -> ::c_int; + ) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "socketpair$UNIX2003" @@ -780,11 +774,11 @@ extern "C" { link_name = "__xnet_socketpair" )] pub fn socketpair( - domain: ::c_int, - type_: ::c_int, - protocol: ::c_int, - socket_vector: *mut ::c_int, - ) -> ::c_int; + domain: c_int, + type_: c_int, + protocol: c_int, + socket_vector: *mut c_int, + ) -> c_int; #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr( all(target_os = "macos", target_arch = "x86"), @@ -796,26 +790,26 @@ extern "C" { )] #[cfg_attr(target_os = "espidf", link_name = "lwip_sendto")] pub fn sendto( - socket: ::c_int, - buf: *const ::c_void, - len: ::size_t, - flags: ::c_int, + socket: c_int, + buf: *const c_void, + len: size_t, + flags: c_int, addr: *const sockaddr, addrlen: socklen_t, - ) -> ::ssize_t; + ) -> ssize_t; #[cfg_attr(target_os = "espidf", link_name = "lwip_shutdown")] - pub fn shutdown(socket: ::c_int, how: ::c_int) -> ::c_int; + pub fn shutdown(socket: c_int, how: c_int) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "chmod$UNIX2003" )] - pub fn chmod(path: *const c_char, mode: mode_t) -> ::c_int; + pub fn chmod(path: *const c_char, mode: mode_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "fchmod$UNIX2003" )] - pub fn fchmod(fd: ::c_int, mode: mode_t) -> ::c_int; + pub fn fchmod(fd: c_int, mode: mode_t) -> c_int; #[cfg_attr( all(target_os = "macos", not(target_arch = "aarch64")), @@ -826,9 +820,9 @@ extern "C" { all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "fstat@FBSD_1.0" )] - pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; + pub fn fstat(fildes: c_int, buf: *mut stat) -> c_int; - pub fn mkdir(path: *const c_char, mode: mode_t) -> ::c_int; + pub fn mkdir(path: *const c_char, mode: mode_t) -> c_int; #[cfg_attr( all(target_os = "macos", not(target_arch = "aarch64")), @@ -839,31 +833,31 @@ extern "C" { all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "stat@FBSD_1.0" )] - pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; + pub fn stat(path: *const c_char, buf: *mut stat) -> c_int; - pub fn pclose(stream: *mut ::FILE) -> ::c_int; + pub fn pclose(stream: *mut crate::FILE) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "fdopen$UNIX2003" )] - pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; - pub fn fileno(stream: *mut ::FILE) -> ::c_int; + pub fn fdopen(fd: c_int, mode: *const c_char) -> *mut crate::FILE; + pub fn fileno(stream: *mut crate::FILE) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "open$UNIX2003" )] - pub fn open(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; + pub fn open(path: *const c_char, oflag: c_int, ...) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "creat$UNIX2003" )] - pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int; + pub fn creat(path: *const c_char, mode: mode_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "fcntl$UNIX2003" )] - pub fn fcntl(fd: ::c_int, cmd: ::c_int, ...) -> ::c_int; + pub fn fcntl(fd: c_int, cmd: c_int, ...) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86_64"), @@ -874,7 +868,7 @@ extern "C" { link_name = "opendir$INODE64$UNIX2003" )] #[cfg_attr(target_os = "netbsd", link_name = "__opendir30")] - pub fn opendir(dirname: *const c_char) -> *mut ::DIR; + pub fn opendir(dirname: *const c_char) -> *mut crate::DIR; #[cfg_attr( all(target_os = "macos", not(target_arch = "aarch64")), @@ -885,12 +879,12 @@ extern "C" { all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "readdir@FBSD_1.0" )] - pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; + pub fn readdir(dirp: *mut crate::DIR) -> *mut crate::dirent; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "closedir$UNIX2003" )] - pub fn closedir(dirp: *mut ::DIR) -> ::c_int; + pub fn closedir(dirp: *mut crate::DIR) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86_64"), link_name = "rewinddir$INODE64" @@ -899,22 +893,22 @@ extern "C" { all(target_os = "macos", target_arch = "x86"), link_name = "rewinddir$INODE64$UNIX2003" )] - pub fn rewinddir(dirp: *mut ::DIR); + pub fn rewinddir(dirp: *mut crate::DIR); pub fn fchmodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - flags: ::c_int, - ) -> ::c_int; - pub fn fchown(fd: ::c_int, owner: ::uid_t, group: ::gid_t) -> ::c_int; + dirfd: c_int, + pathname: *const c_char, + mode: crate::mode_t, + flags: c_int, + ) -> c_int; + pub fn fchown(fd: c_int, owner: crate::uid_t, group: crate::gid_t) -> c_int; pub fn fchownat( - dirfd: ::c_int, - pathname: *const ::c_char, - owner: ::uid_t, - group: ::gid_t, - flags: ::c_int, - ) -> ::c_int; + dirfd: c_int, + pathname: *const c_char, + owner: crate::uid_t, + group: crate::gid_t, + flags: c_int, + ) -> c_int; #[cfg_attr( all(target_os = "macos", not(target_arch = "aarch64")), link_name = "fstatat$INODE64" @@ -923,42 +917,33 @@ extern "C" { all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "fstatat@FBSD_1.1" )] - pub fn fstatat( - dirfd: ::c_int, - pathname: *const ::c_char, - buf: *mut stat, - flags: ::c_int, - ) -> ::c_int; + pub fn fstatat(dirfd: c_int, pathname: *const c_char, buf: *mut stat, flags: c_int) -> c_int; pub fn linkat( - olddirfd: ::c_int, - oldpath: *const ::c_char, - newdirfd: ::c_int, - newpath: *const ::c_char, - flags: ::c_int, - ) -> ::c_int; + olddirfd: c_int, + oldpath: *const c_char, + newdirfd: c_int, + newpath: *const c_char, + flags: c_int, + ) -> c_int; pub fn renameat( - olddirfd: ::c_int, - oldpath: *const ::c_char, - newdirfd: ::c_int, - newpath: *const ::c_char, - ) -> ::c_int; - pub fn symlinkat( - target: *const ::c_char, - newdirfd: ::c_int, - linkpath: *const ::c_char, - ) -> ::c_int; - pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int) -> ::c_int; - - pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; - pub fn alarm(seconds: ::c_uint) -> ::c_uint; - pub fn chdir(dir: *const c_char) -> ::c_int; - pub fn fchdir(dirfd: ::c_int) -> ::c_int; - pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; + olddirfd: c_int, + oldpath: *const c_char, + newdirfd: c_int, + newpath: *const c_char, + ) -> c_int; + pub fn symlinkat(target: *const c_char, newdirfd: c_int, linkpath: *const c_char) -> c_int; + pub fn unlinkat(dirfd: c_int, pathname: *const c_char, flags: c_int) -> c_int; + + pub fn access(path: *const c_char, amode: c_int) -> c_int; + pub fn alarm(seconds: c_uint) -> c_uint; + pub fn chdir(dir: *const c_char) -> c_int; + pub fn fchdir(dirfd: c_int) -> c_int; + pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "lchown$UNIX2003" )] - pub fn lchown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; + pub fn lchown(path: *const c_char, uid: uid_t, gid: gid_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "close$NOCANCEL$UNIX2003" @@ -967,78 +952,78 @@ extern "C" { all(target_os = "macos", target_arch = "x86_64"), link_name = "close$NOCANCEL" )] - pub fn close(fd: ::c_int) -> ::c_int; - pub fn dup(fd: ::c_int) -> ::c_int; - pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; + pub fn close(fd: c_int) -> c_int; + pub fn dup(fd: c_int) -> c_int; + pub fn dup2(src: c_int, dst: c_int) -> c_int; - pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; - pub fn execle(path: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; - pub fn execlp(file: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; + pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> c_int; + pub fn execle(path: *const c_char, arg0: *const c_char, ...) -> c_int; + pub fn execlp(file: *const c_char, arg0: *const c_char, ...) -> c_int; // DIFF(main): changed to `*const *mut` in e77f551de9 - pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::c_int; + pub fn execv(prog: *const c_char, argv: *const *const c_char) -> c_int; pub fn execve( prog: *const c_char, argv: *const *const c_char, envp: *const *const c_char, - ) -> ::c_int; - pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int; + ) -> c_int; + pub fn execvp(c: *const c_char, argv: *const *const c_char) -> c_int; pub fn fork() -> pid_t; - pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; - pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char; + pub fn fpathconf(filedes: c_int, name: c_int) -> c_long; + pub fn getcwd(buf: *mut c_char, size: size_t) -> *mut c_char; pub fn getegid() -> gid_t; pub fn geteuid() -> uid_t; pub fn getgid() -> gid_t; - pub fn getgroups(ngroups_max: ::c_int, groups: *mut gid_t) -> ::c_int; + pub fn getgroups(ngroups_max: c_int, groups: *mut gid_t) -> c_int; #[cfg_attr(target_os = "illumos", link_name = "getloginx")] pub fn getlogin() -> *mut c_char; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "getopt$UNIX2003" )] - pub fn getopt(argc: ::c_int, argv: *const *mut c_char, optstr: *const c_char) -> ::c_int; + pub fn getopt(argc: c_int, argv: *const *mut c_char, optstr: *const c_char) -> c_int; pub fn getpgid(pid: pid_t) -> pid_t; pub fn getpgrp() -> pid_t; pub fn getpid() -> pid_t; pub fn getppid() -> pid_t; pub fn getuid() -> uid_t; - pub fn isatty(fd: ::c_int) -> ::c_int; + pub fn isatty(fd: c_int) -> c_int; #[cfg_attr(target_os = "solaris", link_name = "__link_xpg4")] - pub fn link(src: *const c_char, dst: *const c_char) -> ::c_int; - pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t; - pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; - pub fn pipe(fds: *mut ::c_int) -> ::c_int; - pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int; - pub fn aligned_alloc(alignment: ::size_t, size: ::size_t) -> *mut ::c_void; + pub fn link(src: *const c_char, dst: *const c_char) -> c_int; + pub fn lseek(fd: c_int, offset: off_t, whence: c_int) -> off_t; + pub fn pathconf(path: *const c_char, name: c_int) -> c_long; + pub fn pipe(fds: *mut c_int) -> c_int; + pub fn posix_memalign(memptr: *mut *mut c_void, align: size_t, size: size_t) -> c_int; + pub fn aligned_alloc(alignment: size_t, size: size_t) -> *mut c_void; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "read$UNIX2003" )] - pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::size_t) -> ::ssize_t; - pub fn rmdir(path: *const c_char) -> ::c_int; - pub fn seteuid(uid: uid_t) -> ::c_int; - pub fn setegid(gid: gid_t) -> ::c_int; - pub fn setgid(gid: gid_t) -> ::c_int; - pub fn setpgid(pid: pid_t, pgid: pid_t) -> ::c_int; + pub fn read(fd: c_int, buf: *mut c_void, count: size_t) -> ssize_t; + pub fn rmdir(path: *const c_char) -> c_int; + pub fn seteuid(uid: uid_t) -> c_int; + pub fn setegid(gid: gid_t) -> c_int; + pub fn setgid(gid: gid_t) -> c_int; + pub fn setpgid(pid: pid_t, pgid: pid_t) -> c_int; pub fn setsid() -> pid_t; - pub fn setuid(uid: uid_t) -> ::c_int; - pub fn setreuid(ruid: uid_t, euid: uid_t) -> ::c_int; - pub fn setregid(rgid: gid_t, egid: gid_t) -> ::c_int; + pub fn setuid(uid: uid_t) -> c_int; + pub fn setreuid(ruid: uid_t, euid: uid_t) -> c_int; + pub fn setregid(rgid: gid_t, egid: gid_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "sleep$UNIX2003" )] - pub fn sleep(secs: ::c_uint) -> ::c_uint; + pub fn sleep(secs: c_uint) -> c_uint; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "nanosleep$UNIX2003" )] #[cfg_attr(target_os = "netbsd", link_name = "__nanosleep50")] - pub fn nanosleep(rqtp: *const timespec, rmtp: *mut timespec) -> ::c_int; - pub fn tcgetpgrp(fd: ::c_int) -> pid_t; - pub fn tcsetpgrp(fd: ::c_int, pgrp: ::pid_t) -> ::c_int; - pub fn ttyname(fd: ::c_int) -> *mut c_char; + pub fn nanosleep(rqtp: *const timespec, rmtp: *mut timespec) -> c_int; + pub fn tcgetpgrp(fd: c_int) -> pid_t; + pub fn tcsetpgrp(fd: c_int, pgrp: crate::pid_t) -> c_int; + pub fn ttyname(fd: c_int) -> *mut c_char; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "ttyname_r$UNIX2003" @@ -1047,74 +1032,74 @@ extern "C" { any(target_os = "illumos", target_os = "solaris"), link_name = "__posix_ttyname_r" )] - pub fn ttyname_r(fd: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - pub fn unlink(c: *const c_char) -> ::c_int; + pub fn ttyname_r(fd: c_int, buf: *mut c_char, buflen: size_t) -> c_int; + pub fn unlink(c: *const c_char) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "wait$UNIX2003" )] - pub fn wait(status: *mut ::c_int) -> pid_t; + pub fn wait(status: *mut c_int) -> pid_t; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "waitpid$UNIX2003" )] - pub fn waitpid(pid: pid_t, status: *mut ::c_int, options: ::c_int) -> pid_t; + pub fn waitpid(pid: pid_t, status: *mut c_int, options: c_int) -> pid_t; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "write$UNIX2003" )] - pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::size_t) -> ::ssize_t; + pub fn write(fd: c_int, buf: *const c_void, count: size_t) -> ssize_t; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pread$UNIX2003" )] - pub fn pread(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; + pub fn pread(fd: c_int, buf: *mut c_void, count: size_t, offset: off_t) -> ssize_t; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pwrite$UNIX2003" )] - pub fn pwrite(fd: ::c_int, buf: *const ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; + pub fn pwrite(fd: c_int, buf: *const c_void, count: size_t, offset: off_t) -> ssize_t; pub fn umask(mask: mode_t) -> mode_t; #[cfg_attr(target_os = "netbsd", link_name = "__utime50")] - pub fn utime(file: *const c_char, buf: *const utimbuf) -> ::c_int; + pub fn utime(file: *const c_char, buf: *const utimbuf) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "kill$UNIX2003" )] - pub fn kill(pid: pid_t, sig: ::c_int) -> ::c_int; + pub fn kill(pid: pid_t, sig: c_int) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "killpg$UNIX2003" )] - pub fn killpg(pgrp: pid_t, sig: ::c_int) -> ::c_int; + pub fn killpg(pgrp: pid_t, sig: c_int) -> c_int; - pub fn mlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; - pub fn munlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; - pub fn mlockall(flags: ::c_int) -> ::c_int; - pub fn munlockall() -> ::c_int; + pub fn mlock(addr: *const c_void, len: size_t) -> c_int; + pub fn munlock(addr: *const c_void, len: size_t) -> c_int; + pub fn mlockall(flags: c_int) -> c_int; + pub fn munlockall() -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "mmap$UNIX2003" )] pub fn mmap( - addr: *mut ::c_void, - len: ::size_t, - prot: ::c_int, - flags: ::c_int, - fd: ::c_int, + addr: *mut c_void, + len: size_t, + prot: c_int, + flags: c_int, + fd: c_int, offset: off_t, - ) -> *mut ::c_void; + ) -> *mut c_void; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "munmap$UNIX2003" )] - pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; + pub fn munmap(addr: *mut c_void, len: size_t) -> c_int; - pub fn if_nametoindex(ifname: *const c_char) -> ::c_uint; - pub fn if_indextoname(ifindex: ::c_uint, ifname: *mut ::c_char) -> *mut ::c_char; + pub fn if_nametoindex(ifname: *const c_char) -> c_uint; + pub fn if_indextoname(ifindex: c_uint, ifname: *mut c_char) -> *mut c_char; #[cfg_attr( all(target_os = "macos", not(target_arch = "aarch64")), @@ -1125,35 +1110,35 @@ extern "C" { all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "lstat@FBSD_1.0" )] - pub fn lstat(path: *const c_char, buf: *mut stat) -> ::c_int; + pub fn lstat(path: *const c_char, buf: *mut stat) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "fsync$UNIX2003" )] - pub fn fsync(fd: ::c_int) -> ::c_int; + pub fn fsync(fd: c_int) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "setenv$UNIX2003" )] - pub fn setenv(name: *const c_char, val: *const c_char, overwrite: ::c_int) -> ::c_int; + pub fn setenv(name: *const c_char, val: *const c_char, overwrite: c_int) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "unsetenv$UNIX2003" )] #[cfg_attr(target_os = "netbsd", link_name = "__unsetenv13")] - pub fn unsetenv(name: *const c_char) -> ::c_int; + pub fn unsetenv(name: *const c_char) -> c_int; - pub fn symlink(path1: *const c_char, path2: *const c_char) -> ::c_int; + pub fn symlink(path1: *const c_char, path2: *const c_char) -> c_int; - pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; - pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; + pub fn truncate(path: *const c_char, length: off_t) -> c_int; + pub fn ftruncate(fd: c_int, length: off_t) -> c_int; - pub fn signal(signum: ::c_int, handler: sighandler_t) -> sighandler_t; + pub fn signal(signum: c_int, handler: sighandler_t) -> sighandler_t; #[cfg_attr(target_os = "netbsd", link_name = "__getrusage50")] - pub fn getrusage(resource: ::c_int, usage: *mut rusage) -> ::c_int; + pub fn getrusage(resource: c_int, usage: *mut rusage) -> c_int; #[cfg_attr( any( @@ -1165,65 +1150,65 @@ extern "C" { ), link_name = "realpath$DARWIN_EXTSN" )] - pub fn realpath(pathname: *const ::c_char, resolved: *mut ::c_char) -> *mut ::c_char; + pub fn realpath(pathname: *const c_char, resolved: *mut c_char) -> *mut c_char; #[cfg_attr(target_os = "netbsd", link_name = "__times13")] - pub fn times(buf: *mut ::tms) -> ::clock_t; + pub fn times(buf: *mut crate::tms) -> crate::clock_t; - pub fn pthread_self() -> ::pthread_t; - pub fn pthread_equal(t1: ::pthread_t, t2: ::pthread_t) -> ::c_int; + pub fn pthread_self() -> crate::pthread_t; + pub fn pthread_equal(t1: crate::pthread_t, t2: crate::pthread_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_join$UNIX2003" )] - pub fn pthread_join(native: ::pthread_t, value: *mut *mut ::c_void) -> ::c_int; - 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_join(native: crate::pthread_t, value: *mut *mut c_void) -> c_int; + pub fn pthread_exit(value: *mut c_void) -> !; + pub fn pthread_attr_init(attr: *mut crate::pthread_attr_t) -> c_int; + pub fn pthread_attr_destroy(attr: *mut crate::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; + attr: *const crate::pthread_attr_t, + stacksize: *mut size_t, + ) -> c_int; + pub fn pthread_attr_setstacksize(attr: *mut crate::pthread_attr_t, stack_size: size_t) + -> c_int; + pub fn pthread_attr_setdetachstate(attr: *mut crate::pthread_attr_t, state: c_int) -> c_int; + pub fn pthread_detach(thread: crate::pthread_t) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__libc_thr_yield")] - pub fn sched_yield() -> ::c_int; + pub fn sched_yield() -> c_int; pub fn pthread_key_create( key: *mut pthread_key_t, - dtor: ::Option, - ) -> ::c_int; - pub fn pthread_key_delete(key: pthread_key_t) -> ::c_int; - pub fn pthread_getspecific(key: pthread_key_t) -> *mut ::c_void; - pub fn pthread_setspecific(key: pthread_key_t, value: *const ::c_void) -> ::c_int; + dtor: Option, + ) -> c_int; + pub fn pthread_key_delete(key: pthread_key_t) -> c_int; + pub fn pthread_getspecific(key: pthread_key_t) -> *mut c_void; + pub fn pthread_setspecific(key: pthread_key_t, value: *const c_void) -> c_int; pub fn pthread_mutex_init( lock: *mut pthread_mutex_t, attr: *const pthread_mutexattr_t, - ) -> ::c_int; - pub fn pthread_mutex_destroy(lock: *mut pthread_mutex_t) -> ::c_int; - pub fn pthread_mutex_lock(lock: *mut pthread_mutex_t) -> ::c_int; - pub fn pthread_mutex_trylock(lock: *mut pthread_mutex_t) -> ::c_int; - pub fn pthread_mutex_unlock(lock: *mut pthread_mutex_t) -> ::c_int; + ) -> c_int; + pub fn pthread_mutex_destroy(lock: *mut pthread_mutex_t) -> c_int; + pub fn pthread_mutex_lock(lock: *mut pthread_mutex_t) -> c_int; + pub fn pthread_mutex_trylock(lock: *mut pthread_mutex_t) -> c_int; + pub fn pthread_mutex_unlock(lock: *mut pthread_mutex_t) -> c_int; - pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> ::c_int; + pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_mutexattr_destroy$UNIX2003" )] - pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> ::c_int; - pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, _type: ::c_int) -> ::c_int; + pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> c_int; + pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, _type: c_int) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_cond_init$UNIX2003" )] - pub fn pthread_cond_init(cond: *mut pthread_cond_t, attr: *const pthread_condattr_t) - -> ::c_int; + pub fn pthread_cond_init(cond: *mut pthread_cond_t, attr: *const pthread_condattr_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_cond_wait$UNIX2003" )] - pub fn pthread_cond_wait(cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t) -> ::c_int; + pub fn pthread_cond_wait(cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_cond_timedwait$UNIX2003" @@ -1231,13 +1216,13 @@ extern "C" { pub fn pthread_cond_timedwait( cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_cond_signal(cond: *mut pthread_cond_t) -> ::c_int; - pub fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> ::c_int; - pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> ::c_int; - pub fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> ::c_int; - pub fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> ::c_int; + abstime: *const crate::timespec, + ) -> c_int; + pub fn pthread_cond_signal(cond: *mut pthread_cond_t) -> c_int; + pub fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> c_int; + pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> c_int; + pub fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> c_int; + pub fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_init$UNIX2003" @@ -1245,39 +1230,39 @@ extern "C" { pub fn pthread_rwlock_init( lock: *mut pthread_rwlock_t, attr: *const pthread_rwlockattr_t, - ) -> ::c_int; + ) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_destroy$UNIX2003" )] - pub fn pthread_rwlock_destroy(lock: *mut pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlock_destroy(lock: *mut pthread_rwlock_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_rdlock$UNIX2003" )] - pub fn pthread_rwlock_rdlock(lock: *mut pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlock_rdlock(lock: *mut pthread_rwlock_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_tryrdlock$UNIX2003" )] - pub fn pthread_rwlock_tryrdlock(lock: *mut pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlock_tryrdlock(lock: *mut pthread_rwlock_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_wrlock$UNIX2003" )] - pub fn pthread_rwlock_wrlock(lock: *mut pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlock_wrlock(lock: *mut pthread_rwlock_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_trywrlock$UNIX2003" )] - pub fn pthread_rwlock_trywrlock(lock: *mut pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlock_trywrlock(lock: *mut pthread_rwlock_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_unlock$UNIX2003" )] - 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_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; #[cfg_attr( any(target_os = "illumos", target_os = "solaris"), @@ -1285,20 +1270,20 @@ extern "C" { )] #[cfg_attr(target_os = "espidf", link_name = "lwip_getsockopt")] pub fn getsockopt( - sockfd: ::c_int, - level: ::c_int, - optname: ::c_int, - optval: *mut ::c_void, - optlen: *mut ::socklen_t, - ) -> ::c_int; - pub fn raise(signum: ::c_int) -> ::c_int; + sockfd: c_int, + level: c_int, + optname: c_int, + optval: *mut c_void, + optlen: *mut crate::socklen_t, + ) -> c_int; + pub fn raise(signum: c_int) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__utimes50")] - pub fn utimes(filename: *const ::c_char, times: *const ::timeval) -> ::c_int; - pub fn dlopen(filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; - pub fn dlerror() -> *mut ::c_char; - pub fn dlsym(handle: *mut ::c_void, symbol: *const ::c_char) -> *mut ::c_void; - pub fn dlclose(handle: *mut ::c_void) -> ::c_int; + pub fn utimes(filename: *const c_char, times: *const crate::timeval) -> c_int; + pub fn dlopen(filename: *const c_char, flag: c_int) -> *mut c_void; + pub fn dlerror() -> *mut c_char; + pub fn dlsym(handle: *mut c_void, symbol: *const c_char) -> *mut c_void; + pub fn dlclose(handle: *mut c_void) -> c_int; #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr( @@ -1311,12 +1296,12 @@ extern "C" { service: *const c_char, hints: *const addrinfo, res: *mut *mut addrinfo, - ) -> ::c_int; + ) -> c_int; #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr(target_os = "espidf", link_name = "lwip_freeaddrinfo")] pub fn freeaddrinfo(res: *mut addrinfo); - pub fn hstrerror(errcode: ::c_int) -> *const ::c_char; - pub fn gai_strerror(errcode: ::c_int) -> *const ::c_char; + pub fn hstrerror(errcode: c_int) -> *const c_char; + pub fn gai_strerror(errcode: c_int) -> *const c_char; #[cfg_attr( any( all( @@ -1339,7 +1324,7 @@ extern "C" { ), link_name = "res_9_init" )] - pub fn res_init() -> ::c_int; + pub fn res_init() -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__gmtime_r50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] @@ -1372,55 +1357,55 @@ extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__difftime50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] // FIXME: for `time_t` - pub fn difftime(time1: time_t, time0: time_t) -> ::c_double; + pub fn difftime(time1: time_t, time0: time_t) -> c_double; #[cfg_attr(target_os = "netbsd", link_name = "__timegm50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] // FIXME: for `time_t` - pub fn timegm(tm: *mut ::tm) -> time_t; + pub fn timegm(tm: *mut crate::tm) -> time_t; #[cfg_attr(target_os = "netbsd", link_name = "__mknod50")] #[cfg_attr( all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "mknod@FBSD_1.0" )] - pub fn mknod(pathname: *const ::c_char, mode: ::mode_t, dev: ::dev_t) -> ::c_int; - pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int; + pub fn mknod(pathname: *const c_char, mode: crate::mode_t, dev: crate::dev_t) -> c_int; + pub fn gethostname(name: *mut c_char, len: size_t) -> c_int; pub fn endservent(); - pub fn getservbyname(name: *const ::c_char, proto: *const ::c_char) -> *mut servent; - pub fn getservbyport(port: ::c_int, proto: *const ::c_char) -> *mut servent; + pub fn getservbyname(name: *const c_char, proto: *const c_char) -> *mut servent; + pub fn getservbyport(port: c_int, proto: *const c_char) -> *mut servent; pub fn getservent() -> *mut servent; - pub fn setservent(stayopen: ::c_int); - pub fn getprotobyname(name: *const ::c_char) -> *mut protoent; - pub fn getprotobynumber(proto: ::c_int) -> *mut protoent; - pub fn chroot(name: *const ::c_char) -> ::c_int; + pub fn setservent(stayopen: c_int); + pub fn getprotobyname(name: *const c_char) -> *mut protoent; + pub fn getprotobynumber(proto: c_int) -> *mut protoent; + pub fn chroot(name: *const c_char) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "usleep$UNIX2003" )] - pub fn usleep(secs: ::c_uint) -> ::c_int; + pub fn usleep(secs: c_uint) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "send$UNIX2003" )] #[cfg_attr(target_os = "espidf", link_name = "lwip_send")] - pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; + pub fn send(socket: c_int, buf: *const c_void, len: size_t, flags: c_int) -> ssize_t; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "recv$UNIX2003" )] #[cfg_attr(target_os = "espidf", link_name = "lwip_recv")] - pub fn recv(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; + pub fn recv(socket: c_int, buf: *mut c_void, len: size_t, flags: c_int) -> ssize_t; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "putenv$UNIX2003" )] #[cfg_attr(target_os = "netbsd", link_name = "__putenv50")] - pub fn putenv(string: *mut c_char) -> ::c_int; + pub fn putenv(string: *mut c_char) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "poll$UNIX2003" )] - pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; + pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: c_int) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86_64"), link_name = "select$1050" @@ -1431,89 +1416,89 @@ extern "C" { )] #[cfg_attr(target_os = "netbsd", link_name = "__select50")] pub fn select( - nfds: ::c_int, + nfds: c_int, readfds: *mut fd_set, writefds: *mut fd_set, errorfds: *mut fd_set, timeout: *mut timeval, - ) -> ::c_int; + ) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__setlocale50")] - pub fn setlocale(category: ::c_int, locale: *const ::c_char) -> *mut ::c_char; + pub fn setlocale(category: c_int, locale: *const c_char) -> *mut c_char; pub fn localeconv() -> *mut lconv; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "sem_wait$UNIX2003" )] - pub fn sem_wait(sem: *mut sem_t) -> ::c_int; - pub fn sem_trywait(sem: *mut sem_t) -> ::c_int; - pub fn sem_post(sem: *mut sem_t) -> ::c_int; - pub fn statvfs(path: *const c_char, buf: *mut statvfs) -> ::c_int; - pub fn fstatvfs(fd: ::c_int, buf: *mut statvfs) -> ::c_int; + pub fn sem_wait(sem: *mut sem_t) -> c_int; + pub fn sem_trywait(sem: *mut sem_t) -> c_int; + pub fn sem_post(sem: *mut sem_t) -> c_int; + pub fn statvfs(path: *const c_char, buf: *mut statvfs) -> c_int; + pub fn fstatvfs(fd: c_int, buf: *mut statvfs) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__sigemptyset14")] - pub fn sigemptyset(set: *mut sigset_t) -> ::c_int; + pub fn sigemptyset(set: *mut sigset_t) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__sigaddset14")] - pub fn sigaddset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; + pub fn sigaddset(set: *mut sigset_t, signum: c_int) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__sigfillset14")] - pub fn sigfillset(set: *mut sigset_t) -> ::c_int; + pub fn sigfillset(set: *mut sigset_t) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__sigdelset14")] - pub fn sigdelset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; + pub fn sigdelset(set: *mut sigset_t, signum: c_int) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__sigismember14")] - pub fn sigismember(set: *const sigset_t, signum: ::c_int) -> ::c_int; + pub fn sigismember(set: *const sigset_t, signum: c_int) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__sigprocmask14")] - pub fn sigprocmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; + pub fn sigprocmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__sigpending14")] - pub fn sigpending(set: *mut sigset_t) -> ::c_int; + pub fn sigpending(set: *mut sigset_t) -> c_int; #[cfg_attr(target_os = "solaris", link_name = "__sysconf_xpg7")] - pub fn sysconf(name: ::c_int) -> ::c_long; + pub fn sysconf(name: c_int) -> c_long; - pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; + pub fn mkfifo(path: *const c_char, mode: mode_t) -> c_int; - pub fn fseeko(stream: *mut ::FILE, offset: ::off_t, whence: ::c_int) -> ::c_int; - pub fn ftello(stream: *mut ::FILE) -> ::off_t; + pub fn fseeko(stream: *mut crate::FILE, offset: off_t, whence: c_int) -> c_int; + pub fn ftello(stream: *mut crate::FILE) -> off_t; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "tcdrain$UNIX2003" )] - pub fn tcdrain(fd: ::c_int) -> ::c_int; - pub fn cfgetispeed(termios: *const ::termios) -> ::speed_t; - pub fn cfgetospeed(termios: *const ::termios) -> ::speed_t; - pub fn cfsetispeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; - pub fn cfsetospeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; - pub fn tcgetattr(fd: ::c_int, termios: *mut ::termios) -> ::c_int; - pub fn tcsetattr(fd: ::c_int, optional_actions: ::c_int, termios: *const ::termios) -> ::c_int; - pub fn tcflow(fd: ::c_int, action: ::c_int) -> ::c_int; - pub fn tcflush(fd: ::c_int, action: ::c_int) -> ::c_int; - pub fn tcgetsid(fd: ::c_int) -> ::pid_t; - pub fn tcsendbreak(fd: ::c_int, duration: ::c_int) -> ::c_int; - pub fn mkstemp(template: *mut ::c_char) -> ::c_int; - pub fn mkdtemp(template: *mut ::c_char) -> *mut ::c_char; - - pub fn tmpnam(ptr: *mut ::c_char) -> *mut ::c_char; - - pub fn openlog(ident: *const ::c_char, logopt: ::c_int, facility: ::c_int); + pub fn tcdrain(fd: c_int) -> c_int; + pub fn cfgetispeed(termios: *const crate::termios) -> crate::speed_t; + pub fn cfgetospeed(termios: *const crate::termios) -> crate::speed_t; + pub fn cfsetispeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; + pub fn cfsetospeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; + pub fn tcgetattr(fd: c_int, termios: *mut crate::termios) -> c_int; + pub fn tcsetattr(fd: c_int, optional_actions: c_int, termios: *const crate::termios) -> c_int; + pub fn tcflow(fd: c_int, action: c_int) -> c_int; + pub fn tcflush(fd: c_int, action: c_int) -> c_int; + pub fn tcgetsid(fd: c_int) -> crate::pid_t; + pub fn tcsendbreak(fd: c_int, duration: c_int) -> c_int; + pub fn mkstemp(template: *mut c_char) -> c_int; + pub fn mkdtemp(template: *mut c_char) -> *mut c_char; + + pub fn tmpnam(ptr: *mut c_char) -> *mut c_char; + + pub fn openlog(ident: *const c_char, logopt: c_int, facility: c_int); pub fn closelog(); - pub fn setlogmask(maskpri: ::c_int) -> ::c_int; + pub fn setlogmask(maskpri: c_int) -> c_int; #[cfg_attr(target_os = "macos", link_name = "syslog$DARWIN_EXTSN")] - pub fn syslog(priority: ::c_int, message: *const ::c_char, ...); + pub fn syslog(priority: c_int, message: *const c_char, ...); #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "nice$UNIX2003" )] - pub fn nice(incr: ::c_int) -> ::c_int; + pub fn nice(incr: c_int) -> c_int; - pub fn grantpt(fd: ::c_int) -> ::c_int; - pub fn posix_openpt(flags: ::c_int) -> ::c_int; - pub fn ptsname(fd: ::c_int) -> *mut ::c_char; - pub fn unlockpt(fd: ::c_int) -> ::c_int; + pub fn grantpt(fd: c_int) -> c_int; + pub fn posix_openpt(flags: c_int) -> c_int; + pub fn ptsname(fd: c_int) -> *mut c_char; + pub fn unlockpt(fd: c_int) -> c_int; pub fn strcasestr(cs: *const c_char, ct: *const c_char) -> *mut c_char; pub fn getline(lineptr: *mut *mut c_char, n: *mut size_t, stream: *mut FILE) -> ssize_t; - pub fn lockf(fd: ::c_int, cmd: ::c_int, len: ::off_t) -> ::c_int; + pub fn lockf(fd: c_int, cmd: c_int, len: off_t) -> c_int; } @@ -1543,11 +1528,11 @@ cfg_if! { target_os = "solaris" )))] { extern "C" { - pub fn adjtime(delta: *const timeval, olddelta: *mut timeval) -> ::c_int; + pub fn adjtime(delta: *const timeval, olddelta: *mut timeval) -> c_int; } } else if #[cfg(target_os = "solaris")] { extern "C" { - pub fn adjtime(delta: *mut timeval, olddelta: *mut timeval) -> ::c_int; + pub fn adjtime(delta: *mut timeval, olddelta: *mut timeval) -> c_int; } } } @@ -1572,7 +1557,7 @@ cfg_if! { link_name = "confstr$UNIX2003" )] #[cfg_attr(target_os = "solaris", link_name = "__confstr_xpg7")] - pub fn confstr(name: ::c_int, buf: *mut ::c_char, len: ::size_t) -> ::size_t; + pub fn confstr(name: c_int, buf: *mut c_char, len: size_t) -> size_t; } } } @@ -1580,7 +1565,7 @@ cfg_if! { cfg_if! { if #[cfg(not(target_os = "aix"))] { extern "C" { - pub fn dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int; + pub fn dladdr(addr: *const c_void, info: *mut Dl_info) -> c_int; } } } @@ -1588,7 +1573,7 @@ cfg_if! { cfg_if! { if #[cfg(not(target_os = "solaris"))] { extern "C" { - pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int; + pub fn flock(fd: c_int, operation: c_int) -> c_int; } } } @@ -1609,15 +1594,10 @@ cfg_if! { all(target_os = "macos", target_arch = "x86"), link_name = "pause$UNIX2003" )] - pub fn pause() -> ::c_int; + pub fn pause() -> c_int; - pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; - pub fn openat( - dirfd: ::c_int, - pathname: *const ::c_char, - flags: ::c_int, - ... - ) -> ::c_int; + pub fn mkdirat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; + pub fn openat(dirfd: c_int, pathname: *const c_char, flags: c_int, ...) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86_64"), @@ -1627,7 +1607,7 @@ cfg_if! { all(target_os = "macos", target_arch = "x86"), link_name = "fdopendir$INODE64$UNIX2003" )] - pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; + pub fn fdopendir(fd: c_int) -> *mut crate::DIR; #[cfg_attr( all(target_os = "macos", not(target_arch = "aarch64")), @@ -1646,10 +1626,10 @@ cfg_if! { /// https://docs.oracle.com/cd/E36784_01/html/E36873/libc-3lib.html /// https://www.unix.com/man-page/opensolaris/3LIB/libc/ pub fn readdir_r( - dirp: *mut ::DIR, - entry: *mut ::dirent, - result: *mut *mut ::dirent, - ) -> ::c_int; + dirp: *mut crate::DIR, + entry: *mut crate::dirent, + result: *mut *mut crate::dirent, + ) -> c_int; } } } @@ -1658,44 +1638,38 @@ cfg_if! { if #[cfg(target_os = "nto")] { extern "C" { pub fn readlinkat( - dirfd: ::c_int, - pathname: *const ::c_char, - buf: *mut ::c_char, - bufsiz: ::size_t, - ) -> ::c_int; - pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: ::size_t) -> ::c_int; + dirfd: c_int, + pathname: *const c_char, + buf: *mut c_char, + bufsiz: size_t, + ) -> c_int; + pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: size_t) -> c_int; pub fn pselect( - nfds: ::c_int, + nfds: c_int, readfds: *mut fd_set, writefds: *mut fd_set, errorfds: *mut fd_set, timeout: *mut timespec, sigmask: *const sigset_t, - ) -> ::c_int; - pub fn sigaction( - signum: ::c_int, - act: *const sigaction, - oldact: *mut sigaction, - ) -> ::c_int; + ) -> c_int; + pub fn sigaction(signum: c_int, act: *const sigaction, oldact: *mut sigaction) + -> c_int; } } else { extern "C" { pub fn readlinkat( - dirfd: ::c_int, - pathname: *const ::c_char, - buf: *mut ::c_char, - bufsiz: ::size_t, - ) -> ::ssize_t; + dirfd: c_int, + pathname: *const c_char, + buf: *mut c_char, + bufsiz: size_t, + ) -> ssize_t; pub fn fmemopen(buf: *mut c_void, size: size_t, mode: *const c_char) -> *mut FILE; pub fn open_memstream(ptr: *mut *mut c_char, sizeloc: *mut size_t) -> *mut FILE; pub fn atexit(cb: extern "C" fn()) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__sigaction14")] - pub fn sigaction( - signum: ::c_int, - act: *const sigaction, - oldact: *mut sigaction, - ) -> ::c_int; - pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: ::size_t) -> ::ssize_t; + pub fn sigaction(signum: c_int, act: *const sigaction, oldact: *mut sigaction) + -> c_int; + pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: size_t) -> ssize_t; #[cfg_attr( all(target_os = "macos", target_arch = "x86_64"), link_name = "pselect$1050" @@ -1706,13 +1680,13 @@ cfg_if! { )] #[cfg_attr(target_os = "netbsd", link_name = "__pselect50")] pub fn pselect( - nfds: ::c_int, + nfds: c_int, readfds: *mut fd_set, writefds: *mut fd_set, errorfds: *mut fd_set, timeout: *const timespec, sigmask: *const sigset_t, - ) -> ::c_int; + ) -> c_int; } } } @@ -1724,8 +1698,8 @@ cfg_if! { target_os = "nto", )))] { extern "C" { - pub fn cfmakeraw(termios: *mut ::termios); - pub fn cfsetspeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; + pub fn cfmakeraw(termios: *mut crate::termios); + pub fn cfsetspeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; } } } diff --git a/src/unix/newlib/aarch64/mod.rs b/src/unix/newlib/aarch64/mod.rs index 2b4713c9a364e..7efbdf780db3f 100644 --- a/src/unix/newlib/aarch64/mod.rs +++ b/src/unix/newlib/aarch64/mod.rs @@ -1,4 +1,6 @@ -pub type clock_t = ::c_long; +use crate::{c_int, c_short}; + +pub type clock_t = c_long; pub type c_char = u8; pub type wchar_t = u32; @@ -9,7 +11,7 @@ s! { pub struct sockaddr { pub sa_len: u8, pub sa_family: ::sa_family_t, - pub sa_data: [::c_char; 14], + pub sa_data: [c_char; 14], } pub struct sockaddr_in6 { @@ -26,29 +28,29 @@ s! { pub sin_family: ::sa_family_t, pub sin_port: ::in_port_t, pub sin_addr: ::in_addr, - pub sin_zero: [::c_char; 8], + pub sin_zero: [c_char; 8], } } -pub const AF_INET6: ::c_int = 23; +pub const AF_INET6: c_int = 23; -pub const FIONBIO: ::c_ulong = 1; +pub const FIONBIO: c_ulong = 1; -pub const POLLIN: ::c_short = 0x1; -pub const POLLPRI: ::c_short = 0x2; -pub const POLLOUT: ::c_short = 0x4; -pub const POLLERR: ::c_short = 0x8; -pub const POLLHUP: ::c_short = 0x10; -pub const POLLNVAL: ::c_short = 0x20; +pub const POLLIN: c_short = 0x1; +pub const POLLPRI: c_short = 0x2; +pub const POLLOUT: c_short = 0x4; +pub const POLLERR: c_short = 0x8; +pub const POLLHUP: c_short = 0x10; +pub const POLLNVAL: c_short = 0x20; -pub const SOL_SOCKET: ::c_int = 65535; +pub const SOL_SOCKET: c_int = 65535; -pub const MSG_OOB: ::c_int = 1; -pub const MSG_PEEK: ::c_int = 2; -pub const MSG_DONTWAIT: ::c_int = 4; -pub const MSG_DONTROUTE: ::c_int = 0; -pub const MSG_WAITALL: ::c_int = 0; -pub const MSG_MORE: ::c_int = 0; -pub const MSG_NOSIGNAL: ::c_int = 0; +pub const MSG_OOB: c_int = 1; +pub const MSG_PEEK: c_int = 2; +pub const MSG_DONTWAIT: c_int = 4; +pub const MSG_DONTROUTE: c_int = 0; +pub const MSG_WAITALL: c_int = 0; +pub const MSG_MORE: c_int = 0; +pub const MSG_NOSIGNAL: c_int = 0; pub use crate::unix::newlib::generic::{dirent, sigset_t, stat}; diff --git a/src/unix/newlib/arm/mod.rs b/src/unix/newlib/arm/mod.rs index 23b75977e63ec..558a70da6b79b 100644 --- a/src/unix/newlib/arm/mod.rs +++ b/src/unix/newlib/arm/mod.rs @@ -1,4 +1,6 @@ -pub type clock_t = ::c_long; +use crate::{c_int, c_short}; + +pub type clock_t = c_long; pub type c_char = u8; pub type wchar_t = u32; @@ -7,50 +9,50 @@ pub type c_ulong = u32; s! { pub struct sockaddr { - pub sa_family: ::sa_family_t, - pub sa_data: [::c_char; 14], + pub sa_family: crate::sa_family_t, + pub sa_data: [c_char; 14], } pub struct sockaddr_in6 { - pub sin6_family: ::sa_family_t, - pub sin6_port: ::in_port_t, + pub sin6_family: crate::sa_family_t, + pub sin6_port: crate::in_port_t, pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, + pub sin6_addr: crate::in6_addr, pub sin6_scope_id: u32, } pub struct sockaddr_in { - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, + pub sin_family: crate::sa_family_t, + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, pub sin_zero: [u8; 8], } pub struct sockaddr_storage { - pub ss_family: ::sa_family_t, + pub ss_family: crate::sa_family_t, pub __ss_padding: [u8; 26], } } -pub const AF_INET6: ::c_int = 23; +pub const AF_INET6: c_int = 23; -pub const FIONBIO: ::c_ulong = 1; +pub const FIONBIO: c_ulong = 1; -pub const POLLIN: ::c_short = 0x1; -pub const POLLPRI: ::c_short = 0x2; -pub const POLLHUP: ::c_short = 0x4; -pub const POLLERR: ::c_short = 0x8; -pub const POLLOUT: ::c_short = 0x10; -pub const POLLNVAL: ::c_short = 0x20; +pub const POLLIN: c_short = 0x1; +pub const POLLPRI: c_short = 0x2; +pub const POLLHUP: c_short = 0x4; +pub const POLLERR: c_short = 0x8; +pub const POLLOUT: c_short = 0x10; +pub const POLLNVAL: c_short = 0x20; -pub const SOL_SOCKET: ::c_int = 65535; +pub const SOL_SOCKET: c_int = 65535; -pub const MSG_OOB: ::c_int = 1; -pub const MSG_PEEK: ::c_int = 2; -pub const MSG_DONTWAIT: ::c_int = 4; -pub const MSG_DONTROUTE: ::c_int = 0; -pub const MSG_WAITALL: ::c_int = 0; -pub const MSG_MORE: ::c_int = 0; -pub const MSG_NOSIGNAL: ::c_int = 0; +pub const MSG_OOB: c_int = 1; +pub const MSG_PEEK: c_int = 2; +pub const MSG_DONTWAIT: c_int = 4; +pub const MSG_DONTROUTE: c_int = 0; +pub const MSG_WAITALL: c_int = 0; +pub const MSG_MORE: c_int = 0; +pub const MSG_NOSIGNAL: c_int = 0; pub use crate::unix::newlib::generic::{dirent, sigset_t, stat}; diff --git a/src/unix/newlib/espidf/mod.rs b/src/unix/newlib/espidf/mod.rs index 3a4ce49c5c217..c33d6ba4bc05a 100644 --- a/src/unix/newlib/espidf/mod.rs +++ b/src/unix/newlib/espidf/mod.rs @@ -1,4 +1,6 @@ -pub type clock_t = ::c_ulong; +use crate::{c_int, c_short, c_uint, c_void, size_t, ssize_t}; + +pub type clock_t = c_ulong; pub type c_char = i8; pub type wchar_t = u32; @@ -7,116 +9,116 @@ pub type c_ulong = u32; s! { pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub cmsg_len: crate::socklen_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - pub msg_flags: ::c_int, + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: c_int, + pub msg_control: *mut c_void, + pub msg_controllen: crate::socklen_t, + pub msg_flags: c_int, } pub struct sockaddr_un { - pub sun_family: ::sa_family_t, - pub sun_path: [::c_char; 108], + pub sun_family: crate::sa_family_t, + pub sun_path: [c_char; 108], } pub struct sockaddr { pub sa_len: u8, - pub sa_family: ::sa_family_t, - pub sa_data: [::c_char; 14], + pub sa_family: crate::sa_family_t, + pub sa_data: [c_char; 14], } pub struct sockaddr_in6 { pub sin6_len: u8, - pub sin6_family: ::sa_family_t, - pub sin6_port: ::in_port_t, + pub sin6_family: crate::sa_family_t, + pub sin6_port: crate::in_port_t, pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, + pub sin6_addr: crate::in6_addr, pub sin6_scope_id: u32, } pub struct sockaddr_in { pub sin_len: u8, - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [::c_char; 8], + pub sin_family: crate::sa_family_t, + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, + pub sin_zero: [c_char; 8], } pub struct sockaddr_storage { pub s2_len: u8, - pub ss_family: ::sa_family_t, - pub s2_data1: [::c_char; 2], + pub ss_family: crate::sa_family_t, + pub s2_data1: [c_char; 2], pub s2_data2: [u32; 3], pub s2_data3: [u32; 3], } } -pub const AF_UNIX: ::c_int = 1; -pub const AF_INET6: ::c_int = 10; - -pub const FIONBIO: ::c_ulong = 2147772030; - -pub const POLLIN: ::c_short = 1 << 0; -pub const POLLRDNORM: ::c_short = 1 << 1; -pub const POLLRDBAND: ::c_short = 1 << 2; -pub const POLLPRI: ::c_short = POLLRDBAND; -pub const POLLOUT: ::c_short = 1 << 3; -pub const POLLWRNORM: ::c_short = POLLOUT; -pub const POLLWRBAND: ::c_short = 1 << 4; -pub const POLLERR: ::c_short = 1 << 5; -pub const POLLHUP: ::c_short = 1 << 6; - -pub const SOL_SOCKET: ::c_int = 0xfff; - -pub const MSG_OOB: ::c_int = 0x04; -pub const MSG_PEEK: ::c_int = 0x01; -pub const MSG_DONTWAIT: ::c_int = 0x08; -pub const MSG_DONTROUTE: ::c_int = 0x4; -pub const MSG_WAITALL: ::c_int = 0x02; -pub const MSG_MORE: ::c_int = 0x10; -pub const MSG_NOSIGNAL: ::c_int = 0x20; -pub const MSG_TRUNC: ::c_int = 0x04; -pub const MSG_CTRUNC: ::c_int = 0x08; -pub const MSG_EOR: ::c_int = 0x08; - -pub const PTHREAD_STACK_MIN: ::size_t = 768; - -pub const SIGABRT: ::c_int = 6; -pub const SIGFPE: ::c_int = 8; -pub const SIGILL: ::c_int = 4; -pub const SIGINT: ::c_int = 2; -pub const SIGSEGV: ::c_int = 11; -pub const SIGTERM: ::c_int = 15; -pub const SIGHUP: ::c_int = 1; -pub const SIGQUIT: ::c_int = 3; -pub const NSIG: ::size_t = 32; +pub const AF_UNIX: c_int = 1; +pub const AF_INET6: c_int = 10; + +pub const FIONBIO: c_ulong = 2147772030; + +pub const POLLIN: c_short = 1 << 0; +pub const POLLRDNORM: c_short = 1 << 1; +pub const POLLRDBAND: c_short = 1 << 2; +pub const POLLPRI: c_short = POLLRDBAND; +pub const POLLOUT: c_short = 1 << 3; +pub const POLLWRNORM: c_short = POLLOUT; +pub const POLLWRBAND: c_short = 1 << 4; +pub const POLLERR: c_short = 1 << 5; +pub const POLLHUP: c_short = 1 << 6; + +pub const SOL_SOCKET: c_int = 0xfff; + +pub const MSG_OOB: c_int = 0x04; +pub const MSG_PEEK: c_int = 0x01; +pub const MSG_DONTWAIT: c_int = 0x08; +pub const MSG_DONTROUTE: c_int = 0x4; +pub const MSG_WAITALL: c_int = 0x02; +pub const MSG_MORE: c_int = 0x10; +pub const MSG_NOSIGNAL: c_int = 0x20; +pub const MSG_TRUNC: c_int = 0x04; +pub const MSG_CTRUNC: c_int = 0x08; +pub const MSG_EOR: c_int = 0x08; + +pub const PTHREAD_STACK_MIN: size_t = 768; + +pub const SIGABRT: c_int = 6; +pub const SIGFPE: c_int = 8; +pub const SIGILL: c_int = 4; +pub const SIGINT: c_int = 2; +pub const SIGSEGV: c_int = 11; +pub const SIGTERM: c_int = 15; +pub const SIGHUP: c_int = 1; +pub const SIGQUIT: c_int = 3; +pub const NSIG: size_t = 32; extern "C" { pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(_: *mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; + native: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + f: extern "C" fn(_: *mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; + pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; - pub fn gethostname(name: *mut ::c_char, namelen: ::ssize_t); + pub fn gethostname(name: *mut c_char, namelen: ssize_t); #[link_name = "lwip_sendmsg"] - pub fn sendmsg(s: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn sendmsg(s: c_int, msg: *const crate::msghdr, flags: c_int) -> ssize_t; #[link_name = "lwip_recvmsg"] - pub fn recvmsg(s: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn recvmsg(s: c_int, msg: *mut crate::msghdr, flags: c_int) -> ssize_t; - pub fn eventfd(initval: ::c_uint, flags: ::c_int) -> ::c_int; + pub fn eventfd(initval: c_uint, flags: c_int) -> c_int; } pub use crate::unix::newlib::generic::{dirent, sigset_t, stat}; diff --git a/src/unix/newlib/generic.rs b/src/unix/newlib/generic.rs index d716dec19f0f8..fe2216cee356a 100644 --- a/src/unix/newlib/generic.rs +++ b/src/unix/newlib/generic.rs @@ -1,36 +1,38 @@ //! Common types used by most newlib platforms +use crate::{c_char, c_long, c_uchar, off_t}; + s! { pub struct sigset_t { #[cfg(target_os = "horizon")] - __val: [::c_ulong; 16], + __val: [crate::c_ulong; 16], #[cfg(not(target_os = "horizon"))] __val: u32, } 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_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_atime: ::time_t, - pub st_spare1: ::c_long, - pub st_mtime: ::time_t, - pub st_spare2: ::c_long, - pub st_ctime: ::time_t, - pub st_spare3: ::c_long, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_spare4: [::c_long; 2usize], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_atime: crate::time_t, + pub st_spare1: c_long, + pub st_mtime: crate::time_t, + pub st_spare2: c_long, + pub st_ctime: crate::time_t, + pub st_spare3: c_long, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_spare4: [c_long; 2usize], } pub struct dirent { - pub d_ino: ::ino_t, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256usize], + pub d_ino: crate::ino_t, + pub d_type: c_uchar, + pub d_name: [c_char; 256usize], } } diff --git a/src/unix/newlib/horizon/mod.rs b/src/unix/newlib/horizon/mod.rs index 97e0b18f6fb71..055e81fe70767 100644 --- a/src/unix/newlib/horizon/mod.rs +++ b/src/unix/newlib/horizon/mod.rs @@ -1,279 +1,283 @@ //! ARMv6K Nintendo 3DS C Newlib definitions +use crate::{ + c_int, c_longlong, c_short, c_uchar, c_uint, c_ushort, c_void, off_t, size_t, ssize_t, +}; + pub type c_char = u8; pub type c_long = i32; pub type c_ulong = u32; -pub type wchar_t = ::c_uint; +pub type wchar_t = c_uint; -pub type u_register_t = ::c_uint; -pub type u_char = ::c_uchar; -pub type u_short = ::c_ushort; -pub type u_int = ::c_uint; +pub type u_register_t = c_uint; +pub type u_char = c_uchar; +pub type u_short = c_ushort; +pub type u_int = c_uint; pub type u_long = c_ulong; -pub type ushort = ::c_ushort; -pub type uint = ::c_uint; +pub type ushort = c_ushort; +pub type uint = c_uint; pub type ulong = c_ulong; pub type clock_t = c_ulong; pub type daddr_t = c_long; pub type caddr_t = *mut c_char; -pub type sbintime_t = ::c_longlong; -pub type sigset_t = ::c_ulong; +pub type sbintime_t = c_longlong; +pub type sigset_t = c_ulong; s! { pub struct hostent { - pub h_name: *mut ::c_char, - pub h_aliases: *mut *mut ::c_char, + pub h_name: *mut c_char, + pub h_aliases: *mut *mut c_char, pub h_addrtype: u16, pub h_length: u16, - pub h_addr_list: *mut *mut ::c_char, + pub h_addr_list: *mut *mut c_char, } pub struct sockaddr { - pub sa_family: ::sa_family_t, - pub sa_data: [::c_char; 26usize], + pub sa_family: crate::sa_family_t, + pub sa_data: [c_char; 26usize], } pub struct sockaddr_storage { - pub ss_family: ::sa_family_t, - pub __ss_padding: [::c_char; 26usize], + pub ss_family: crate::sa_family_t, + pub __ss_padding: [c_char; 26usize], } pub struct sockaddr_in { - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [::c_char; 8], + pub sin_family: crate::sa_family_t, + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, + pub sin_zero: [c_char; 8], } pub struct sockaddr_in6 { - pub sin6_family: ::sa_family_t, - pub sin6_port: ::in_port_t, + pub sin6_family: crate::sa_family_t, + pub sin6_port: crate::in_port_t, pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, + pub sin6_addr: crate::in6_addr, pub sin6_scope_id: u32, } pub struct sockaddr_un { - pub sun_len: ::c_uchar, - pub sun_family: ::sa_family_t, - pub sun_path: [::c_char; 104usize], + pub sun_len: c_uchar, + pub sun_family: crate::sa_family_t, + pub sun_path: [c_char; 104usize], } pub struct sched_param { - pub sched_priority: ::c_int, + pub sched_priority: c_int, } 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_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_atim: ::timespec, - pub st_mtim: ::timespec, - pub st_ctim: ::timespec, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_spare4: [::c_long; 2usize], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_atim: crate::timespec, + pub st_mtim: crate::timespec, + pub st_ctim: crate::timespec, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_spare4: [c_long; 2usize], } } -pub const SIGEV_NONE: ::c_int = 1; -pub const SIGEV_SIGNAL: ::c_int = 2; -pub const SIGEV_THREAD: ::c_int = 3; -pub const SA_NOCLDSTOP: ::c_int = 1; -pub const MINSIGSTKSZ: ::c_int = 2048; -pub const SIGSTKSZ: ::c_int = 8192; -pub const SS_ONSTACK: ::c_int = 1; -pub const SS_DISABLE: ::c_int = 2; -pub const SIG_SETMASK: ::c_int = 0; -pub const SIG_BLOCK: ::c_int = 1; -pub const SIG_UNBLOCK: ::c_int = 2; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGTRAP: ::c_int = 5; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGBUS: ::c_int = 10; -pub const SIGSEGV: ::c_int = 11; -pub const SIGSYS: ::c_int = 12; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; -pub const SIGURG: ::c_int = 16; -pub const SIGSTOP: ::c_int = 17; -pub const SIGTSTP: ::c_int = 18; -pub const SIGCONT: ::c_int = 19; -pub const SIGCHLD: ::c_int = 20; -pub const SIGCLD: ::c_int = 20; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGIO: ::c_int = 23; -pub const SIGPOLL: ::c_int = 23; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGLOST: ::c_int = 29; -pub const SIGUSR1: ::c_int = 30; -pub const SIGUSR2: ::c_int = 31; -pub const NSIG: ::c_int = 32; -pub const CLOCK_ENABLED: ::c_uint = 1; -pub const CLOCK_DISABLED: ::c_uint = 0; -pub const CLOCK_ALLOWED: ::c_uint = 1; -pub const CLOCK_DISALLOWED: ::c_uint = 0; -pub const TIMER_ABSTIME: ::c_uint = 4; -pub const SOL_SOCKET: ::c_int = 65535; -pub const MSG_OOB: ::c_int = 1; -pub const MSG_PEEK: ::c_int = 2; -pub const MSG_DONTWAIT: ::c_int = 4; -pub const MSG_DONTROUTE: ::c_int = 0; -pub const MSG_WAITALL: ::c_int = 0; -pub const MSG_MORE: ::c_int = 0; -pub const MSG_NOSIGNAL: ::c_int = 0; -pub const SOL_CONFIG: ::c_uint = 65534; - -pub const _SC_PAGESIZE: ::c_int = 8; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 51; - -pub const PTHREAD_STACK_MIN: ::size_t = 4096; -pub const WNOHANG: ::c_int = 1; - -pub const POLLIN: ::c_short = 0x0001; -pub const POLLPRI: ::c_short = 0x0002; -pub const POLLOUT: ::c_short = 0x0004; -pub const POLLRDNORM: ::c_short = 0x0040; -pub const POLLWRNORM: ::c_short = POLLOUT; -pub const POLLRDBAND: ::c_short = 0x0080; -pub const POLLWRBAND: ::c_short = 0x0100; -pub const POLLERR: ::c_short = 0x0008; -pub const POLLHUP: ::c_short = 0x0010; -pub const POLLNVAL: ::c_short = 0x0020; - -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_BADHINTS: ::c_int = 12; -pub const EAI_PROTOCOL: ::c_int = 13; -pub const EAI_OVERFLOW: ::c_int = 14; -pub const EAI_MAX: ::c_int = 15; - -pub const AF_UNIX: ::c_int = 1; -pub const AF_INET6: ::c_int = 23; - -pub const FIONBIO: ::c_ulong = 1; - -pub const RTLD_DEFAULT: *mut ::c_void = 0 as *mut ::c_void; +pub const SIGEV_NONE: c_int = 1; +pub const SIGEV_SIGNAL: c_int = 2; +pub const SIGEV_THREAD: c_int = 3; +pub const SA_NOCLDSTOP: c_int = 1; +pub const MINSIGSTKSZ: c_int = 2048; +pub const SIGSTKSZ: c_int = 8192; +pub const SS_ONSTACK: c_int = 1; +pub const SS_DISABLE: c_int = 2; +pub const SIG_SETMASK: c_int = 0; +pub const SIG_BLOCK: c_int = 1; +pub const SIG_UNBLOCK: c_int = 2; +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGTRAP: c_int = 5; +pub const SIGABRT: c_int = 6; +pub const SIGEMT: c_int = 7; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGBUS: c_int = 10; +pub const SIGSEGV: c_int = 11; +pub const SIGSYS: c_int = 12; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; +pub const SIGURG: c_int = 16; +pub const SIGSTOP: c_int = 17; +pub const SIGTSTP: c_int = 18; +pub const SIGCONT: c_int = 19; +pub const SIGCHLD: c_int = 20; +pub const SIGCLD: c_int = 20; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGIO: c_int = 23; +pub const SIGPOLL: c_int = 23; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGLOST: c_int = 29; +pub const SIGUSR1: c_int = 30; +pub const SIGUSR2: c_int = 31; +pub const NSIG: c_int = 32; +pub const CLOCK_ENABLED: c_uint = 1; +pub const CLOCK_DISABLED: c_uint = 0; +pub const CLOCK_ALLOWED: c_uint = 1; +pub const CLOCK_DISALLOWED: c_uint = 0; +pub const TIMER_ABSTIME: c_uint = 4; +pub const SOL_SOCKET: c_int = 65535; +pub const MSG_OOB: c_int = 1; +pub const MSG_PEEK: c_int = 2; +pub const MSG_DONTWAIT: c_int = 4; +pub const MSG_DONTROUTE: c_int = 0; +pub const MSG_WAITALL: c_int = 0; +pub const MSG_MORE: c_int = 0; +pub const MSG_NOSIGNAL: c_int = 0; +pub const SOL_CONFIG: c_uint = 65534; + +pub const _SC_PAGESIZE: c_int = 8; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 51; + +pub const PTHREAD_STACK_MIN: size_t = 4096; +pub const WNOHANG: c_int = 1; + +pub const POLLIN: c_short = 0x0001; +pub const POLLPRI: c_short = 0x0002; +pub const POLLOUT: c_short = 0x0004; +pub const POLLRDNORM: c_short = 0x0040; +pub const POLLWRNORM: c_short = POLLOUT; +pub const POLLRDBAND: c_short = 0x0080; +pub const POLLWRBAND: c_short = 0x0100; +pub const POLLERR: c_short = 0x0008; +pub const POLLHUP: c_short = 0x0010; +pub const POLLNVAL: c_short = 0x0020; + +pub const EAI_AGAIN: c_int = 2; +pub const EAI_BADFLAGS: c_int = 3; +pub const EAI_FAIL: c_int = 4; +pub const EAI_SERVICE: c_int = 9; +pub const EAI_SYSTEM: c_int = 11; +pub const EAI_BADHINTS: c_int = 12; +pub const EAI_PROTOCOL: c_int = 13; +pub const EAI_OVERFLOW: c_int = 14; +pub const EAI_MAX: c_int = 15; + +pub const AF_UNIX: c_int = 1; +pub const AF_INET6: c_int = 23; + +pub const FIONBIO: c_ulong = 1; + +pub const RTLD_DEFAULT: *mut c_void = 0 as *mut c_void; // For pthread get/setschedparam -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; +pub const SCHED_FIFO: c_int = 1; +pub const SCHED_RR: c_int = 2; // For getrandom() -pub const GRND_NONBLOCK: ::c_uint = 0x1; -pub const GRND_RANDOM: ::c_uint = 0x2; +pub const GRND_NONBLOCK: c_uint = 0x1; +pub const GRND_RANDOM: c_uint = 0x2; // Horizon OS works doesn't or can't hold any of this information safe_f! { - pub {const} fn WIFSTOPPED(_status: ::c_int) -> bool { + pub {const} fn WIFSTOPPED(_status: c_int) -> bool { false } - pub {const} fn WSTOPSIG(_status: ::c_int) -> ::c_int { + pub {const} fn WSTOPSIG(_status: c_int) -> c_int { 0 } - pub {const} fn WIFCONTINUED(_status: ::c_int) -> bool { + pub {const} fn WIFCONTINUED(_status: c_int) -> bool { true } - pub {const} fn WIFSIGNALED(_status: ::c_int) -> bool { + pub {const} fn WIFSIGNALED(_status: c_int) -> bool { false } - pub {const} fn WTERMSIG(_status: ::c_int) -> ::c_int { + pub {const} fn WTERMSIG(_status: c_int) -> c_int { 0 } - pub {const} fn WIFEXITED(_status: ::c_int) -> bool { + pub {const} fn WIFEXITED(_status: c_int) -> bool { true } - pub {const} fn WEXITSTATUS(_status: ::c_int) -> ::c_int { + pub {const} fn WEXITSTATUS(_status: c_int) -> c_int { 0 } - pub {const} fn WCOREDUMP(_status: ::c_int) -> bool { + pub {const} fn WCOREDUMP(_status: c_int) -> bool { false } } extern "C" { pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(_: *mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; + native: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + f: extern "C" fn(_: *mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; pub fn pthread_attr_getschedparam( - attr: *const ::pthread_attr_t, + attr: *const crate::pthread_attr_t, param: *mut sched_param, - ) -> ::c_int; + ) -> c_int; pub fn pthread_attr_setschedparam( - attr: *mut ::pthread_attr_t, + attr: *mut crate::pthread_attr_t, param: *const sched_param, - ) -> ::c_int; + ) -> c_int; pub fn pthread_attr_getprocessorid_np( - attr: *const ::pthread_attr_t, - processor_id: *mut ::c_int, - ) -> ::c_int; + attr: *const crate::pthread_attr_t, + processor_id: *mut c_int, + ) -> c_int; pub fn pthread_attr_setprocessorid_np( - attr: *mut ::pthread_attr_t, - processor_id: ::c_int, - ) -> ::c_int; + attr: *mut crate::pthread_attr_t, + processor_id: c_int, + ) -> c_int; pub fn pthread_getschedparam( - native: ::pthread_t, - policy: *mut ::c_int, - param: *mut ::sched_param, - ) -> ::c_int; + native: crate::pthread_t, + policy: *mut c_int, + param: *mut crate::sched_param, + ) -> c_int; pub fn pthread_setschedparam( - native: ::pthread_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; + native: crate::pthread_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; pub fn pthread_condattr_getclock( - attr: *const ::pthread_condattr_t, - clock_id: *mut ::clockid_t, - ) -> ::c_int; + attr: *const crate::pthread_condattr_t, + clock_id: *mut crate::clockid_t, + ) -> c_int; pub fn pthread_condattr_setclock( - attr: *mut ::pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; + attr: *mut crate::pthread_condattr_t, + clock_id: crate::clockid_t, + ) -> c_int; - pub fn pthread_getprocessorid_np() -> ::c_int; + pub fn pthread_getprocessorid_np() -> c_int; - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; + pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; - pub fn gethostid() -> ::c_long; + pub fn gethostid() -> c_long; } pub use crate::unix::newlib::generic::dirent; diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index b40a41b68d894..ff856f4845d05 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -1,17 +1,19 @@ +use crate::{c_int, c_longlong, c_uint, c_ushort, c_void, size_t}; + pub type blkcnt_t = i32; pub type blksize_t = i32; -pub type clockid_t = ::c_ulong; +pub type clockid_t = c_ulong; cfg_if! { if #[cfg(any(target_os = "espidf"))] { - pub type dev_t = ::c_short; - pub type ino_t = ::c_ushort; - pub type off_t = ::c_long; + pub type dev_t = crate::c_short; + pub type ino_t = c_ushort; + pub type off_t = c_long; } else if #[cfg(any(target_os = "vita"))] { - pub type dev_t = ::c_short; - pub type ino_t = ::c_ushort; - pub type off_t = ::c_int; + pub type dev_t = crate::c_short; + pub type ino_t = c_ushort; + pub type off_t = c_int; } else { pub type dev_t = u32; pub type ino_t = u32; @@ -22,13 +24,13 @@ cfg_if! { pub type fsblkcnt_t = u64; pub type fsfilcnt_t = u32; pub type id_t = u32; -pub type key_t = ::c_int; -pub type loff_t = ::c_longlong; -pub type mode_t = ::c_uint; +pub type key_t = c_int; +pub type loff_t = c_longlong; +pub type mode_t = c_uint; pub type nfds_t = u32; -pub type nlink_t = ::c_ushort; -pub type pthread_t = ::c_ulong; -pub type pthread_key_t = ::c_uint; +pub type nlink_t = c_ushort; +pub type pthread_t = c_ulong; +pub type pthread_key_t = c_uint; pub type rlim_t = u32; cfg_if! { @@ -46,7 +48,7 @@ cfg_if! { if #[cfg(target_os = "espidf")] { pub type tcflag_t = u16; } else { - pub type tcflag_t = ::c_uint; + pub type tcflag_t = c_uint; } } pub type useconds_t = u32; @@ -56,7 +58,7 @@ cfg_if! { target_os = "horizon", all(target_os = "espidf", not(espidf_time32)) ))] { - pub type time_t = ::c_longlong; + pub type time_t = c_longlong; } else { pub type time_t = i32; } @@ -66,12 +68,12 @@ cfg_if! { if #[cfg(not(target_os = "horizon"))] { s! { pub struct hostent { - pub h_name: *mut ::c_char, - pub h_aliases: *mut *mut ::c_char, - pub h_addrtype: ::c_int, - pub h_length: ::c_int, - pub h_addr_list: *mut *mut ::c_char, - pub h_addr: *mut ::c_char, + pub h_name: *mut c_char, + pub h_aliases: *mut *mut c_char, + pub h_addrtype: c_int, + pub h_length: c_int, + pub h_addr_list: *mut *mut c_char, + pub h_addr: *mut c_char, } } } @@ -81,16 +83,16 @@ s! { // The order of the `ai_addr` field in this struct is crucial // for converting between the Rust and C types. pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, + pub ai_flags: c_int, + pub ai_family: c_int, + pub ai_socktype: c_int, + pub ai_protocol: c_int, pub ai_addrlen: socklen_t, #[cfg(target_os = "espidf")] pub ai_addr: *mut sockaddr, - pub ai_canonname: *mut ::c_char, + pub ai_canonname: *mut c_char, #[cfg(not(any( target_os = "espidf", @@ -107,109 +109,109 @@ s! { } pub struct linger { - pub l_onoff: ::c_int, - pub l_linger: ::c_int, + pub l_onoff: c_int, + pub l_linger: c_int, } pub struct in_addr { - pub s_addr: ::in_addr_t, + pub s_addr: crate::in_addr_t, } pub struct pollfd { - pub fd: ::c_int, - pub events: ::c_int, - pub revents: ::c_int, + pub fd: c_int, + pub events: c_int, + pub revents: c_int, } pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, + pub decimal_point: *mut c_char, + pub thousands_sep: *mut c_char, + pub grouping: *mut c_char, + pub int_curr_symbol: *mut c_char, + pub currency_symbol: *mut c_char, + pub mon_decimal_point: *mut c_char, + pub mon_thousands_sep: *mut c_char, + pub mon_grouping: *mut c_char, + pub positive_sign: *mut c_char, + pub negative_sign: *mut c_char, + pub int_frac_digits: c_char, + pub frac_digits: c_char, + pub p_cs_precedes: c_char, + pub p_sep_by_space: c_char, + pub n_cs_precedes: c_char, + pub n_sep_by_space: c_char, + pub p_sign_posn: c_char, + pub n_sign_posn: c_char, + pub int_n_cs_precedes: c_char, + pub int_n_sep_by_space: c_char, + pub int_n_sign_posn: c_char, + pub int_p_cs_precedes: c_char, + pub int_p_sep_by_space: c_char, + pub int_p_sign_posn: c_char, } pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, } pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, + 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, } pub struct sigaction { - pub sa_handler: extern "C" fn(arg1: ::c_int), + pub sa_handler: extern "C" fn(arg1: c_int), pub sa_mask: sigset_t, - pub sa_flags: ::c_int, + pub sa_flags: c_int, } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, + pub ss_sp: *mut c_void, + pub ss_flags: c_int, pub ss_size: usize, } pub struct fd_set { // Unverified - fds_bits: [::c_ulong; FD_SETSIZE as usize / ULONG_SIZE], + fds_bits: [c_ulong; FD_SETSIZE as usize / ULONG_SIZE], } pub struct passwd { // Unverified - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, + pub pw_name: *mut c_char, + pub pw_passwd: *mut c_char, + pub pw_uid: crate::uid_t, + pub pw_gid: crate::gid_t, + pub pw_gecos: *mut c_char, + pub pw_dir: *mut c_char, + pub pw_shell: *mut c_char, } pub struct termios { // Unverified - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; crate::NCCS], #[cfg(target_os = "espidf")] pub c_ispeed: u32, #[cfg(target_os = "espidf")] @@ -218,25 +220,25 @@ s! { pub struct sem_t { // Unverified - __size: [::c_char; 16], + __size: [c_char; 16], } pub struct Dl_info { // Unverified - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, + pub dli_fname: *const c_char, + pub dli_fbase: *mut c_void, + pub dli_sname: *const c_char, + pub dli_saddr: *mut c_void, } pub struct utsname { // Unverified - pub sysname: [::c_char; 65], - pub nodename: [::c_char; 65], - pub release: [::c_char; 65], - pub version: [::c_char; 65], - pub machine: [::c_char; 65], - pub domainname: [::c_char; 65], + pub sysname: [c_char; 65], + pub nodename: [c_char; 65], + pub release: [c_char; 65], + pub version: [c_char; 65], + pub machine: [c_char; 65], + pub domainname: [c_char; 65], } pub struct cpu_set_t { @@ -287,7 +289,7 @@ s! { )] pub struct pthread_mutex_t { // Unverified - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], + size: [u8; crate::__SIZEOF_PTHREAD_MUTEX_T], } #[cfg_attr( @@ -306,7 +308,7 @@ s! { )] pub struct pthread_rwlock_t { // Unverified - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], + size: [u8; crate::__SIZEOF_PTHREAD_RWLOCK_T], } #[cfg_attr( @@ -333,19 +335,19 @@ s! { )] pub struct pthread_mutexattr_t { // Unverified - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + size: [u8; crate::__SIZEOF_PTHREAD_MUTEXATTR_T], } #[repr(align(8))] pub struct pthread_cond_t { // Unverified - size: [u8; ::__SIZEOF_PTHREAD_COND_T], + size: [u8; crate::__SIZEOF_PTHREAD_COND_T], } #[repr(align(4))] pub struct pthread_condattr_t { // Unverified - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + size: [u8; crate::__SIZEOF_PTHREAD_CONDATTR_T], } } @@ -415,9 +417,9 @@ cfg_if! { pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; pub const __PTHREAD_MUTEX_HAVE_PREV: usize = 1; pub const __PTHREAD_RWLOCK_INT_FLAGS_SHARED: usize = 1; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; +pub const PTHREAD_MUTEX_NORMAL: c_int = 0; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 1; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 2; cfg_if! { if #[cfg(any(target_os = "horizon", target_os = "espidf"))] { @@ -432,423 +434,423 @@ cfg_if! { const ULONG_SIZE: usize = 32; // Other constants -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const EDEADLK: ::c_int = 45; -pub const ENOLCK: ::c_int = 46; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENOLINK: ::c_int = 67; -pub const EPROTO: ::c_int = 71; -pub const EMULTIHOP: ::c_int = 74; -pub const EBADMSG: ::c_int = 77; -pub const EFTYPE: ::c_int = 79; -pub const ENOSYS: ::c_int = 88; -pub const ENOTEMPTY: ::c_int = 90; -pub const ENAMETOOLONG: ::c_int = 91; -pub const ELOOP: ::c_int = 92; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EAFNOSUPPORT: ::c_int = 106; -pub const EPROTOTYPE: ::c_int = 107; -pub const ENOTSOCK: ::c_int = 108; -pub const ENOPROTOOPT: ::c_int = 109; -pub const ECONNREFUSED: ::c_int = 111; -pub const EADDRINUSE: ::c_int = 112; -pub const ECONNABORTED: ::c_int = 113; -pub const ENETUNREACH: ::c_int = 114; -pub const ENETDOWN: ::c_int = 115; -pub const ETIMEDOUT: ::c_int = 116; -pub const EHOSTDOWN: ::c_int = 117; -pub const EHOSTUNREACH: ::c_int = 118; -pub const EINPROGRESS: ::c_int = 119; -pub const EALREADY: ::c_int = 120; -pub const EDESTADDRREQ: ::c_int = 121; -pub const EMSGSIZE: ::c_int = 122; -pub const EPROTONOSUPPORT: ::c_int = 123; -pub const EADDRNOTAVAIL: ::c_int = 125; -pub const ENETRESET: ::c_int = 126; -pub const EISCONN: ::c_int = 127; -pub const ENOTCONN: ::c_int = 128; -pub const ETOOMANYREFS: ::c_int = 129; -pub const EDQUOT: ::c_int = 132; -pub const ESTALE: ::c_int = 133; -pub const ENOTSUP: ::c_int = 134; -pub const EILSEQ: ::c_int = 138; -pub const EOVERFLOW: ::c_int = 139; -pub const ECANCELED: ::c_int = 140; -pub const ENOTRECOVERABLE: ::c_int = 141; -pub const EOWNERDEAD: ::c_int = 142; -pub const EWOULDBLOCK: ::c_int = 11; - -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; -pub const F_GETOWN: ::c_int = 5; -pub const F_SETOWN: ::c_int = 6; -pub const F_GETLK: ::c_int = 7; -pub const F_SETLK: ::c_int = 8; -pub const F_SETLKW: ::c_int = 9; -pub const F_RGETLK: ::c_int = 10; -pub const F_RSETLK: ::c_int = 11; -pub const F_CNVT: ::c_int = 12; -pub const F_RSETLKW: ::c_int = 13; -pub const F_DUPFD_CLOEXEC: ::c_int = 14; - -pub const O_RDONLY: ::c_int = 0; -pub const O_WRONLY: ::c_int = 1; -pub const O_RDWR: ::c_int = 2; -pub const O_APPEND: ::c_int = 8; -pub const O_CREAT: ::c_int = 512; -pub const O_TRUNC: ::c_int = 1024; -pub const O_EXCL: ::c_int = 2048; -pub const O_SYNC: ::c_int = 8192; -pub const O_NONBLOCK: ::c_int = 16384; - -pub const O_ACCMODE: ::c_int = 3; +pub const EPERM: c_int = 1; +pub const ENOENT: c_int = 2; +pub const ESRCH: c_int = 3; +pub const EINTR: c_int = 4; +pub const EIO: c_int = 5; +pub const ENXIO: c_int = 6; +pub const E2BIG: c_int = 7; +pub const ENOEXEC: c_int = 8; +pub const EBADF: c_int = 9; +pub const ECHILD: c_int = 10; +pub const EAGAIN: c_int = 11; +pub const ENOMEM: c_int = 12; +pub const EACCES: c_int = 13; +pub const EFAULT: c_int = 14; +pub const EBUSY: c_int = 16; +pub const EEXIST: c_int = 17; +pub const EXDEV: c_int = 18; +pub const ENODEV: c_int = 19; +pub const ENOTDIR: c_int = 20; +pub const EISDIR: c_int = 21; +pub const EINVAL: c_int = 22; +pub const ENFILE: c_int = 23; +pub const EMFILE: c_int = 24; +pub const ENOTTY: c_int = 25; +pub const ETXTBSY: c_int = 26; +pub const EFBIG: c_int = 27; +pub const ENOSPC: c_int = 28; +pub const ESPIPE: c_int = 29; +pub const EROFS: c_int = 30; +pub const EMLINK: c_int = 31; +pub const EPIPE: c_int = 32; +pub const EDOM: c_int = 33; +pub const ERANGE: c_int = 34; +pub const ENOMSG: c_int = 35; +pub const EIDRM: c_int = 36; +pub const EDEADLK: c_int = 45; +pub const ENOLCK: c_int = 46; +pub const ENOSTR: c_int = 60; +pub const ENODATA: c_int = 61; +pub const ETIME: c_int = 62; +pub const ENOSR: c_int = 63; +pub const ENOLINK: c_int = 67; +pub const EPROTO: c_int = 71; +pub const EMULTIHOP: c_int = 74; +pub const EBADMSG: c_int = 77; +pub const EFTYPE: c_int = 79; +pub const ENOSYS: c_int = 88; +pub const ENOTEMPTY: c_int = 90; +pub const ENAMETOOLONG: c_int = 91; +pub const ELOOP: c_int = 92; +pub const EOPNOTSUPP: c_int = 95; +pub const EPFNOSUPPORT: c_int = 96; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EAFNOSUPPORT: c_int = 106; +pub const EPROTOTYPE: c_int = 107; +pub const ENOTSOCK: c_int = 108; +pub const ENOPROTOOPT: c_int = 109; +pub const ECONNREFUSED: c_int = 111; +pub const EADDRINUSE: c_int = 112; +pub const ECONNABORTED: c_int = 113; +pub const ENETUNREACH: c_int = 114; +pub const ENETDOWN: c_int = 115; +pub const ETIMEDOUT: c_int = 116; +pub const EHOSTDOWN: c_int = 117; +pub const EHOSTUNREACH: c_int = 118; +pub const EINPROGRESS: c_int = 119; +pub const EALREADY: c_int = 120; +pub const EDESTADDRREQ: c_int = 121; +pub const EMSGSIZE: c_int = 122; +pub const EPROTONOSUPPORT: c_int = 123; +pub const EADDRNOTAVAIL: c_int = 125; +pub const ENETRESET: c_int = 126; +pub const EISCONN: c_int = 127; +pub const ENOTCONN: c_int = 128; +pub const ETOOMANYREFS: c_int = 129; +pub const EDQUOT: c_int = 132; +pub const ESTALE: c_int = 133; +pub const ENOTSUP: c_int = 134; +pub const EILSEQ: c_int = 138; +pub const EOVERFLOW: c_int = 139; +pub const ECANCELED: c_int = 140; +pub const ENOTRECOVERABLE: c_int = 141; +pub const EOWNERDEAD: c_int = 142; +pub const EWOULDBLOCK: c_int = 11; + +pub const F_DUPFD: c_int = 0; +pub const F_GETFD: c_int = 1; +pub const F_SETFD: c_int = 2; +pub const F_GETFL: c_int = 3; +pub const F_SETFL: c_int = 4; +pub const F_GETOWN: c_int = 5; +pub const F_SETOWN: c_int = 6; +pub const F_GETLK: c_int = 7; +pub const F_SETLK: c_int = 8; +pub const F_SETLKW: c_int = 9; +pub const F_RGETLK: c_int = 10; +pub const F_RSETLK: c_int = 11; +pub const F_CNVT: c_int = 12; +pub const F_RSETLKW: c_int = 13; +pub const F_DUPFD_CLOEXEC: c_int = 14; + +pub const O_RDONLY: c_int = 0; +pub const O_WRONLY: c_int = 1; +pub const O_RDWR: c_int = 2; +pub const O_APPEND: c_int = 8; +pub const O_CREAT: c_int = 512; +pub const O_TRUNC: c_int = 1024; +pub const O_EXCL: c_int = 2048; +pub const O_SYNC: c_int = 8192; +pub const O_NONBLOCK: c_int = 16384; + +pub const O_ACCMODE: c_int = 3; cfg_if! { if #[cfg(target_os = "espidf")] { - pub const O_CLOEXEC: ::c_int = 0x40000; + pub const O_CLOEXEC: c_int = 0x40000; } else { - pub const O_CLOEXEC: ::c_int = 0x80000; + pub const O_CLOEXEC: c_int = 0x80000; } } -pub const RTLD_LAZY: ::c_int = 0x1; - -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; - -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; - -pub const FIOCLEX: ::c_ulong = 0x20006601; -pub const FIONCLEX: ::c_ulong = 0x20006602; - -pub const S_BLKSIZE: ::mode_t = 1024; -pub const S_IREAD: ::mode_t = 0o0400; -pub const S_IWRITE: ::mode_t = 0o0200; -pub const S_IEXEC: ::mode_t = 0o0100; -pub const S_ENFMT: ::mode_t = 0o2000; -pub const S_IFMT: ::mode_t = 0o17_0000; -pub const S_IFDIR: ::mode_t = 0o4_0000; -pub const S_IFCHR: ::mode_t = 0o2_0000; -pub const S_IFBLK: ::mode_t = 0o6_0000; -pub const S_IFREG: ::mode_t = 0o10_0000; -pub const S_IFLNK: ::mode_t = 0o12_0000; -pub const S_IFSOCK: ::mode_t = 0o14_0000; -pub const S_IFIFO: ::mode_t = 0o1_0000; -pub const S_IRUSR: ::mode_t = 0o0400; -pub const S_IWUSR: ::mode_t = 0o0200; -pub const S_IXUSR: ::mode_t = 0o0100; -pub const S_IRGRP: ::mode_t = 0o0040; -pub const S_IWGRP: ::mode_t = 0o0020; -pub const S_IXGRP: ::mode_t = 0o0010; -pub const S_IROTH: ::mode_t = 0o0004; -pub const S_IWOTH: ::mode_t = 0o0002; -pub const S_IXOTH: ::mode_t = 0o0001; - -pub const SOL_TCP: ::c_int = 6; - -pub const PF_UNSPEC: ::c_int = 0; -pub const PF_INET: ::c_int = 2; +pub const RTLD_LAZY: c_int = 0x1; + +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; + +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; + +pub const FIOCLEX: c_ulong = 0x20006601; +pub const FIONCLEX: c_ulong = 0x20006602; + +pub const S_BLKSIZE: crate::mode_t = 1024; +pub const S_IREAD: crate::mode_t = 0o0400; +pub const S_IWRITE: crate::mode_t = 0o0200; +pub const S_IEXEC: crate::mode_t = 0o0100; +pub const S_ENFMT: crate::mode_t = 0o2000; +pub const S_IFMT: crate::mode_t = 0o17_0000; +pub const S_IFDIR: crate::mode_t = 0o4_0000; +pub const S_IFCHR: crate::mode_t = 0o2_0000; +pub const S_IFBLK: crate::mode_t = 0o6_0000; +pub const S_IFREG: crate::mode_t = 0o10_0000; +pub const S_IFLNK: crate::mode_t = 0o12_0000; +pub const S_IFSOCK: crate::mode_t = 0o14_0000; +pub const S_IFIFO: crate::mode_t = 0o1_0000; +pub const S_IRUSR: crate::mode_t = 0o0400; +pub const S_IWUSR: crate::mode_t = 0o0200; +pub const S_IXUSR: crate::mode_t = 0o0100; +pub const S_IRGRP: crate::mode_t = 0o0040; +pub const S_IWGRP: crate::mode_t = 0o0020; +pub const S_IXGRP: crate::mode_t = 0o0010; +pub const S_IROTH: crate::mode_t = 0o0004; +pub const S_IWOTH: crate::mode_t = 0o0002; +pub const S_IXOTH: crate::mode_t = 0o0001; + +pub const SOL_TCP: c_int = 6; + +pub const PF_UNSPEC: c_int = 0; +pub const PF_INET: c_int = 2; cfg_if! { if #[cfg(target_os = "espidf")] { - pub const PF_INET6: ::c_int = 10; + pub const PF_INET6: c_int = 10; } else { - pub const PF_INET6: ::c_int = 23; + pub const PF_INET6: c_int = 23; } } -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_INET: ::c_int = 2; - -pub const CLOCK_REALTIME: ::clockid_t = 1; -pub const CLOCK_MONOTONIC: ::clockid_t = 4; -pub const CLOCK_BOOTTIME: ::clockid_t = 4; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const SO_BINTIME: ::c_int = 0x2000; -pub const SO_NO_OFFLOAD: ::c_int = 0x4000; -pub const SO_NO_DDP: ::c_int = 0x8000; -pub const SO_REUSEPORT_LB: ::c_int = 0x10000; -pub const SO_LABEL: ::c_int = 0x1009; -pub const SO_PEERLABEL: ::c_int = 0x1010; -pub const SO_LISTENQLIMIT: ::c_int = 0x1011; -pub const SO_LISTENQLEN: ::c_int = 0x1012; -pub const SO_LISTENINCQLEN: ::c_int = 0x1013; -pub const SO_SETFIB: ::c_int = 0x1014; -pub const SO_USER_COOKIE: ::c_int = 0x1015; -pub const SO_PROTOCOL: ::c_int = 0x1016; -pub const SO_PROTOTYPE: ::c_int = SO_PROTOCOL; -pub const SO_VENDOR: ::c_int = 0x80000000; -pub const SO_DEBUG: ::c_int = 0x01; -pub const SO_ACCEPTCONN: ::c_int = 0x0002; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_TIMESTAMP: ::c_int = 0x0400; -pub const SO_NOSIGPIPE: ::c_int = 0x0800; -pub const SO_ACCEPTFILTER: ::c_int = 0x1000; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVLOWAT: ::c_int = 0x1004; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_RCVTIMEO: ::c_int = 0x1006; +pub const AF_UNSPEC: c_int = 0; +pub const AF_INET: c_int = 2; + +pub const CLOCK_REALTIME: crate::clockid_t = 1; +pub const CLOCK_MONOTONIC: crate::clockid_t = 4; +pub const CLOCK_BOOTTIME: crate::clockid_t = 4; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; + +pub const SHUT_RD: c_int = 0; +pub const SHUT_WR: c_int = 1; +pub const SHUT_RDWR: c_int = 2; + +pub const SO_BINTIME: c_int = 0x2000; +pub const SO_NO_OFFLOAD: c_int = 0x4000; +pub const SO_NO_DDP: c_int = 0x8000; +pub const SO_REUSEPORT_LB: c_int = 0x10000; +pub const SO_LABEL: c_int = 0x1009; +pub const SO_PEERLABEL: c_int = 0x1010; +pub const SO_LISTENQLIMIT: c_int = 0x1011; +pub const SO_LISTENQLEN: c_int = 0x1012; +pub const SO_LISTENINCQLEN: c_int = 0x1013; +pub const SO_SETFIB: c_int = 0x1014; +pub const SO_USER_COOKIE: c_int = 0x1015; +pub const SO_PROTOCOL: c_int = 0x1016; +pub const SO_PROTOTYPE: c_int = SO_PROTOCOL; +pub const SO_VENDOR: c_int = 0x80000000; +pub const SO_DEBUG: c_int = 0x01; +pub const SO_ACCEPTCONN: c_int = 0x0002; +pub const SO_REUSEADDR: c_int = 0x0004; +pub const SO_KEEPALIVE: c_int = 0x0008; +pub const SO_DONTROUTE: c_int = 0x0010; +pub const SO_BROADCAST: c_int = 0x0020; +pub const SO_USELOOPBACK: c_int = 0x0040; +pub const SO_LINGER: c_int = 0x0080; +pub const SO_OOBINLINE: c_int = 0x0100; +pub const SO_REUSEPORT: c_int = 0x0200; +pub const SO_TIMESTAMP: c_int = 0x0400; +pub const SO_NOSIGPIPE: c_int = 0x0800; +pub const SO_ACCEPTFILTER: c_int = 0x1000; +pub const SO_SNDBUF: c_int = 0x1001; +pub const SO_RCVBUF: c_int = 0x1002; +pub const SO_SNDLOWAT: c_int = 0x1003; +pub const SO_RCVLOWAT: c_int = 0x1004; +pub const SO_SNDTIMEO: c_int = 0x1005; +pub const SO_RCVTIMEO: c_int = 0x1006; cfg_if! { if #[cfg(target_os = "horizon")] { - pub const SO_ERROR: ::c_int = 0x1009; + pub const SO_ERROR: c_int = 0x1009; } else { - pub const SO_ERROR: ::c_int = 0x1007; + pub const SO_ERROR: c_int = 0x1007; } } -pub const SO_TYPE: ::c_int = 0x1008; +pub const SO_TYPE: c_int = 0x1008; -pub const SOCK_CLOEXEC: ::c_int = O_CLOEXEC; +pub const SOCK_CLOEXEC: c_int = O_CLOEXEC; -pub const INET_ADDRSTRLEN: ::c_int = 16; +pub const INET_ADDRSTRLEN: c_int = 16; // https://github.com/bminor/newlib/blob/HEAD/newlib/libc/sys/linux/include/net/if.h#L121 -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 -pub const IFF_LOOPBACK: ::c_int = 0x8; // is a loopback net -pub const IFF_POINTOPOINT: ::c_int = 0x10; // interface is point-to-point link -pub const IFF_NOTRAILERS: ::c_int = 0x20; // avoid use of trailers -pub const IFF_RUNNING: ::c_int = 0x40; // resources allocated -pub const IFF_NOARP: ::c_int = 0x80; // no address resolution protocol -pub const IFF_PROMISC: ::c_int = 0x100; // receive all packets -pub const IFF_ALLMULTI: ::c_int = 0x200; // receive all multicast packets -pub const IFF_OACTIVE: ::c_int = 0x400; // transmission in progress -pub const IFF_SIMPLEX: ::c_int = 0x800; // can't hear own transmissions -pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit -pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit -pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit -pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; // use alternate physical connection -pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast +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 +pub const IFF_LOOPBACK: c_int = 0x8; // is a loopback net +pub const IFF_POINTOPOINT: c_int = 0x10; // interface is point-to-point link +pub const IFF_NOTRAILERS: c_int = 0x20; // avoid use of trailers +pub const IFF_RUNNING: c_int = 0x40; // resources allocated +pub const IFF_NOARP: c_int = 0x80; // no address resolution protocol +pub const IFF_PROMISC: c_int = 0x100; // receive all packets +pub const IFF_ALLMULTI: c_int = 0x200; // receive all multicast packets +pub const IFF_OACTIVE: c_int = 0x400; // transmission in progress +pub const IFF_SIMPLEX: c_int = 0x800; // can't hear own transmissions +pub const IFF_LINK0: c_int = 0x1000; // per link layer defined bit +pub const IFF_LINK1: c_int = 0x2000; // per link layer defined bit +pub const IFF_LINK2: c_int = 0x4000; // per link layer defined bit +pub const IFF_ALTPHYS: c_int = IFF_LINK2; // use alternate physical connection +pub const IFF_MULTICAST: c_int = 0x8000; // supports multicast cfg_if! { if #[cfg(target_os = "vita")] { - pub const TCP_NODELAY: ::c_int = 1; - pub const TCP_MAXSEG: ::c_int = 2; + pub const TCP_NODELAY: c_int = 1; + pub const TCP_MAXSEG: c_int = 2; } else if #[cfg(target_os = "espidf")] { - pub const TCP_NODELAY: ::c_int = 1; - pub const TCP_MAXSEG: ::c_int = 8194; + pub const TCP_NODELAY: c_int = 1; + pub const TCP_MAXSEG: c_int = 8194; } else { - pub const TCP_NODELAY: ::c_int = 8193; - pub const TCP_MAXSEG: ::c_int = 8194; + pub const TCP_NODELAY: c_int = 8193; + pub const TCP_MAXSEG: c_int = 8194; } } -pub const TCP_NOPUSH: ::c_int = 4; -pub const TCP_NOOPT: ::c_int = 8; +pub const TCP_NOPUSH: c_int = 4; +pub const TCP_NOOPT: c_int = 8; cfg_if! { if #[cfg(target_os = "espidf")] { - pub const TCP_KEEPIDLE: ::c_int = 3; - pub const TCP_KEEPINTVL: ::c_int = 4; - pub const TCP_KEEPCNT: ::c_int = 5; + pub const TCP_KEEPIDLE: c_int = 3; + pub const TCP_KEEPINTVL: c_int = 4; + pub const TCP_KEEPCNT: c_int = 5; } else { - pub const TCP_KEEPIDLE: ::c_int = 256; - pub const TCP_KEEPINTVL: ::c_int = 512; - pub const TCP_KEEPCNT: ::c_int = 1024; + pub const TCP_KEEPIDLE: c_int = 256; + pub const TCP_KEEPINTVL: c_int = 512; + pub const TCP_KEEPCNT: c_int = 1024; } } cfg_if! { if #[cfg(target_os = "horizon")] { - pub const IP_TOS: ::c_int = 7; + pub const IP_TOS: c_int = 7; } else if #[cfg(target_os = "espidf")] { - pub const IP_TOS: ::c_int = 1; + pub const IP_TOS: c_int = 1; } else { - pub const IP_TOS: ::c_int = 3; + pub const IP_TOS: c_int = 3; } } cfg_if! { if #[cfg(target_os = "vita")] { - pub const IP_TTL: ::c_int = 4; + pub const IP_TTL: c_int = 4; } else if #[cfg(target_os = "espidf")] { - pub const IP_TTL: ::c_int = 2; + pub const IP_TTL: c_int = 2; } else { - pub const IP_TTL: ::c_int = 8; + pub const IP_TTL: c_int = 8; } } cfg_if! { if #[cfg(target_os = "espidf")] { - pub const IP_MULTICAST_IF: ::c_int = 6; - pub const IP_MULTICAST_TTL: ::c_int = 5; - pub const IP_MULTICAST_LOOP: ::c_int = 7; + pub const IP_MULTICAST_IF: c_int = 6; + pub const IP_MULTICAST_TTL: c_int = 5; + pub const IP_MULTICAST_LOOP: c_int = 7; } else { - pub const IP_MULTICAST_IF: ::c_int = 9; - pub const IP_MULTICAST_TTL: ::c_int = 10; - pub const IP_MULTICAST_LOOP: ::c_int = 11; + pub const IP_MULTICAST_IF: c_int = 9; + pub const IP_MULTICAST_TTL: c_int = 10; + pub const IP_MULTICAST_LOOP: c_int = 11; } } cfg_if! { if #[cfg(target_os = "vita")] { - pub const IP_ADD_MEMBERSHIP: ::c_int = 12; - pub const IP_DROP_MEMBERSHIP: ::c_int = 13; + pub const IP_ADD_MEMBERSHIP: c_int = 12; + pub const IP_DROP_MEMBERSHIP: c_int = 13; } else if #[cfg(target_os = "espidf")] { - pub const IP_ADD_MEMBERSHIP: ::c_int = 3; - pub const IP_DROP_MEMBERSHIP: ::c_int = 4; + pub const IP_ADD_MEMBERSHIP: c_int = 3; + pub const IP_DROP_MEMBERSHIP: c_int = 4; } else { - pub const IP_ADD_MEMBERSHIP: ::c_int = 11; - pub const IP_DROP_MEMBERSHIP: ::c_int = 12; + pub const IP_ADD_MEMBERSHIP: c_int = 11; + pub const IP_DROP_MEMBERSHIP: c_int = 12; } } -pub const IPV6_UNICAST_HOPS: ::c_int = 4; +pub const IPV6_UNICAST_HOPS: c_int = 4; cfg_if! { if #[cfg(target_os = "espidf")] { - pub const IPV6_MULTICAST_IF: ::c_int = 768; - pub const IPV6_MULTICAST_HOPS: ::c_int = 769; - pub const IPV6_MULTICAST_LOOP: ::c_int = 770; + pub const IPV6_MULTICAST_IF: c_int = 768; + pub const IPV6_MULTICAST_HOPS: c_int = 769; + pub const IPV6_MULTICAST_LOOP: c_int = 770; } else { - pub const IPV6_MULTICAST_IF: ::c_int = 9; - pub const IPV6_MULTICAST_HOPS: ::c_int = 10; - pub const IPV6_MULTICAST_LOOP: ::c_int = 11; + pub const IPV6_MULTICAST_IF: c_int = 9; + pub const IPV6_MULTICAST_HOPS: c_int = 10; + pub const IPV6_MULTICAST_LOOP: c_int = 11; } } -pub const IPV6_V6ONLY: ::c_int = 27; -pub const IPV6_JOIN_GROUP: ::c_int = 12; -pub const IPV6_LEAVE_GROUP: ::c_int = 13; -pub const IPV6_ADD_MEMBERSHIP: ::c_int = 12; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = 13; +pub const IPV6_V6ONLY: c_int = 27; +pub const IPV6_JOIN_GROUP: c_int = 12; +pub const IPV6_LEAVE_GROUP: c_int = 13; +pub const IPV6_ADD_MEMBERSHIP: c_int = 12; +pub const IPV6_DROP_MEMBERSHIP: c_int = 13; cfg_if! { if #[cfg(target_os = "espidf")] { - pub const HOST_NOT_FOUND: ::c_int = 210; - pub const NO_DATA: ::c_int = 211; - pub const NO_RECOVERY: ::c_int = 212; - pub const TRY_AGAIN: ::c_int = 213; + pub const HOST_NOT_FOUND: c_int = 210; + pub const NO_DATA: c_int = 211; + pub const NO_RECOVERY: c_int = 212; + pub const TRY_AGAIN: c_int = 213; } else { - pub const HOST_NOT_FOUND: ::c_int = 1; - pub const NO_DATA: ::c_int = 2; - pub const NO_RECOVERY: ::c_int = 3; - pub const TRY_AGAIN: ::c_int = 4; + pub const HOST_NOT_FOUND: c_int = 1; + pub const NO_DATA: c_int = 2; + pub const NO_RECOVERY: c_int = 3; + pub const TRY_AGAIN: c_int = 4; } } -pub const NO_ADDRESS: ::c_int = 2; +pub const NO_ADDRESS: c_int = 2; -pub const AI_PASSIVE: ::c_int = 1; -pub const AI_CANONNAME: ::c_int = 2; -pub const AI_NUMERICHOST: ::c_int = 4; +pub const AI_PASSIVE: c_int = 1; +pub const AI_CANONNAME: c_int = 2; +pub const AI_NUMERICHOST: c_int = 4; cfg_if! { if #[cfg(target_os = "espidf")] { - pub const AI_NUMERICSERV: ::c_int = 8; - pub const AI_ADDRCONFIG: ::c_int = 64; + pub const AI_NUMERICSERV: c_int = 8; + pub const AI_ADDRCONFIG: c_int = 64; } else { - pub const AI_NUMERICSERV: ::c_int = 0; - pub const AI_ADDRCONFIG: ::c_int = 0; + pub const AI_NUMERICSERV: c_int = 0; + pub const AI_ADDRCONFIG: c_int = 0; } } -pub const NI_MAXHOST: ::c_int = 1025; -pub const NI_MAXSERV: ::c_int = 32; -pub const NI_NOFQDN: ::c_int = 1; -pub const NI_NUMERICHOST: ::c_int = 2; -pub const NI_NAMEREQD: ::c_int = 4; +pub const NI_MAXHOST: c_int = 1025; +pub const NI_MAXSERV: c_int = 32; +pub const NI_NOFQDN: c_int = 1; +pub const NI_NUMERICHOST: c_int = 2; +pub const NI_NAMEREQD: c_int = 4; cfg_if! { if #[cfg(target_os = "espidf")] { - pub const NI_NUMERICSERV: ::c_int = 8; - pub const NI_DGRAM: ::c_int = 16; + pub const NI_NUMERICSERV: c_int = 8; + pub const NI_DGRAM: c_int = 16; } else { - pub const NI_NUMERICSERV: ::c_int = 0; - pub const NI_DGRAM: ::c_int = 0; + pub const NI_NUMERICSERV: c_int = 0; + pub const NI_DGRAM: c_int = 0; } } cfg_if! { // Defined in vita/mod.rs for "vita" if #[cfg(target_os = "espidf")] { - pub const EAI_FAMILY: ::c_int = 204; - pub const EAI_MEMORY: ::c_int = 203; - pub const EAI_NONAME: ::c_int = 200; - pub const EAI_SOCKTYPE: ::c_int = 10; + pub const EAI_FAMILY: c_int = 204; + pub const EAI_MEMORY: c_int = 203; + pub const EAI_NONAME: c_int = 200; + pub const EAI_SOCKTYPE: c_int = 10; } else if #[cfg(not(target_os = "vita"))] { - pub const EAI_FAMILY: ::c_int = -303; - pub const EAI_MEMORY: ::c_int = -304; - pub const EAI_NONAME: ::c_int = -305; - pub const EAI_SOCKTYPE: ::c_int = -307; + pub const EAI_FAMILY: c_int = -303; + pub const EAI_MEMORY: c_int = -304; + pub const EAI_NONAME: c_int = -305; + pub const EAI_SOCKTYPE: c_int = -307; } } -pub const EXIT_SUCCESS: ::c_int = 0; -pub const EXIT_FAILURE: ::c_int = 1; +pub const EXIT_SUCCESS: c_int = 0; +pub const EXIT_FAILURE: c_int = 1; -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; +pub const PRIO_PROCESS: c_int = 0; +pub const PRIO_PGRP: c_int = 1; +pub const PRIO_USER: c_int = 2; f! { - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { + let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); return; } - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { + let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0; } - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { + let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] |= 1 << (fd % bits); return; @@ -862,36 +864,36 @@ f! { } extern "C" { - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; + pub fn getrlimit(resource: c_int, rlim: *mut crate::rlimit) -> c_int; + pub fn setrlimit(resource: c_int, rlim: *const crate::rlimit) -> c_int; #[cfg_attr(target_os = "linux", link_name = "__xpg_strerror_r")] - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; + pub fn sem_destroy(sem: *mut sem_t) -> c_int; + pub fn sem_init(sem: *mut sem_t, pshared: c_int, value: c_uint) -> c_int; - pub fn abs(i: ::c_int) -> ::c_int; - pub fn labs(i: ::c_long) -> ::c_long; - pub fn rand() -> ::c_int; - pub fn srand(seed: ::c_uint); + pub fn abs(i: c_int) -> c_int; + pub fn labs(i: c_long) -> c_long; + pub fn rand() -> c_int; + pub fn srand(seed: c_uint); #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr(target_os = "espidf", link_name = "lwip_bind")] - pub fn bind(fd: ::c_int, addr: *const sockaddr, len: socklen_t) -> ::c_int; - pub fn clock_settime(clock_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; - pub fn clock_gettime(clock_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_getres(clock_id: ::clockid_t, res: *mut ::timespec) -> ::c_int; + pub fn bind(fd: c_int, addr: *const sockaddr, len: socklen_t) -> c_int; + pub fn clock_settime(clock_id: crate::clockid_t, tp: *const crate::timespec) -> c_int; + pub fn clock_gettime(clock_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + pub fn clock_getres(clock_id: crate::clockid_t, res: *mut crate::timespec) -> c_int; #[cfg_attr(target_os = "espidf", link_name = "lwip_close")] - pub fn closesocket(sockfd: ::c_int) -> ::c_int; - pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; + pub fn closesocket(sockfd: c_int) -> c_int; + pub fn ioctl(fd: c_int, request: c_ulong, ...) -> c_int; #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr(target_os = "espidf", link_name = "lwip_recvfrom")] pub fn recvfrom( - fd: ::c_int, - buf: *mut ::c_void, + fd: c_int, + buf: *mut c_void, n: usize, - flags: ::c_int, + flags: c_int, addr: *mut sockaddr, addr_len: *mut socklen_t, ) -> isize; @@ -899,68 +901,64 @@ extern "C" { pub fn getnameinfo( sa: *const sockaddr, salen: socklen_t, - host: *mut ::c_char, + host: *mut c_char, hostlen: socklen_t, - serv: *mut ::c_char, + serv: *mut c_char, servlen: socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; + flags: c_int, + ) -> c_int; + pub fn memalign(align: size_t, size: size_t) -> *mut c_void; // DIFF(main): changed to `*const *mut` in e77f551de9 - pub fn fexecve( - fd: ::c_int, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; + pub fn fexecve(fd: c_int, argv: *const *const c_char, envp: *const *const c_char) -> c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut c_void) -> c_int; pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; - pub fn sem_close(sem: *mut sem_t) -> ::c_int; - pub fn getdtablesize() -> ::c_int; + gid: crate::gid_t, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> c_int; + pub fn sem_close(sem: *mut sem_t) -> c_int; + pub fn getdtablesize() -> c_int; pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + name: *const c_char, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn pthread_sigmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; + pub fn sem_open(name: *const c_char, oflag: c_int, ...) -> *mut sem_t; + pub fn getgrnam(name: *const c_char) -> *mut crate::group; + pub fn pthread_kill(thread: crate::pthread_t, sig: c_int) -> c_int; + pub fn sem_unlink(name: *const c_char) -> c_int; + pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; pub fn getpwnam_r( - name: *const ::c_char, + name: *const c_char, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; pub fn getpwuid_r( - uid: ::uid_t, + uid: crate::uid_t, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + ) -> c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int; pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn uname(buf: *mut ::utsname) -> ::c_int; + prepare: Option, + parent: Option, + child: Option, + ) -> c_int; + pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut crate::FILE; + pub fn uname(buf: *mut crate::utsname) -> c_int; } mod generic; diff --git a/src/unix/newlib/powerpc/mod.rs b/src/unix/newlib/powerpc/mod.rs index 10faadbdf8c0a..6b73b6fb39dea 100644 --- a/src/unix/newlib/powerpc/mod.rs +++ b/src/unix/newlib/powerpc/mod.rs @@ -1,6 +1,8 @@ -pub type clock_t = ::c_ulong; +use crate::c_int; + +pub type clock_t = c_ulong; pub type c_char = u8; -pub type wchar_t = ::c_int; +pub type wchar_t = c_int; pub type c_long = i32; pub type c_ulong = u32; diff --git a/src/unix/newlib/rtems/mod.rs b/src/unix/newlib/rtems/mod.rs index f2b7687fa491e..cf390f9fa5eb0 100644 --- a/src/unix/newlib/rtems/mod.rs +++ b/src/unix/newlib/rtems/mod.rs @@ -1,145 +1,145 @@ // defined in architecture specific module -use c_long; +use crate::{c_char, c_int, c_long, c_ulong, c_void, size_t, ssize_t}; s! { pub struct sockaddr_un { - pub sun_family: ::sa_family_t, - pub sun_path: [::c_char; 108usize], + pub sun_family: crate::sa_family_t, + pub sun_path: [c_char; 108usize], } } -pub const AF_UNIX: ::c_int = 1; +pub const AF_UNIX: c_int = 1; -pub const RTLD_DEFAULT: *mut ::c_void = -2isize as *mut ::c_void; +pub const RTLD_DEFAULT: *mut c_void = -2isize as *mut c_void; pub const UTIME_OMIT: c_long = -1; -pub const AT_FDCWD: ::c_int = -2; +pub const AT_FDCWD: c_int = -2; -pub const O_DIRECTORY: ::c_int = 0x200000; -pub const O_NOFOLLOW: ::c_int = 0x100000; +pub const O_DIRECTORY: c_int = 0x200000; +pub const O_NOFOLLOW: c_int = 0x100000; -pub const AT_EACCESS: ::c_int = 1; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 2; -pub const AT_SYMLINK_FOLLOW: ::c_int = 4; -pub const AT_REMOVEDIR: ::c_int = 8; +pub const AT_EACCESS: c_int = 1; +pub const AT_SYMLINK_NOFOLLOW: c_int = 2; +pub const AT_SYMLINK_FOLLOW: c_int = 4; +pub const AT_REMOVEDIR: c_int = 8; // signal.h -pub const SIG_BLOCK: ::c_int = 1; -pub const SIG_UNBLOCK: ::c_int = 2; -pub const SIG_SETMASK: ::c_int = 0; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGTRAP: ::c_int = 5; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGBUS: ::c_int = 10; -pub const SIGSEGV: ::c_int = 11; -pub const SIGSYS: ::c_int = 12; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; -pub const SIGURG: ::c_int = 16; -pub const SIGSTOP: ::c_int = 17; -pub const SIGTSTP: ::c_int = 18; -pub const SIGCONT: ::c_int = 19; -pub const SIGCHLD: ::c_int = 20; -pub const SIGCLD: ::c_int = 20; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGIO: ::c_int = 23; -pub const SIGWINCH: ::c_int = 24; -pub const SIGUSR1: ::c_int = 25; -pub const SIGUSR2: ::c_int = 26; -pub const SIGRTMIN: ::c_int = 27; -pub const SIGRTMAX: ::c_int = 31; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; - -pub const SA_NOCLDSTOP: ::c_ulong = 0x00000001; -pub const SA_SIGINFO: ::c_ulong = 0x00000002; -pub const SA_ONSTACK: ::c_ulong = 0x00000004; - -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_OVERFLOW: ::c_int = 14; - -pub const _SC_PAGESIZE: ::c_int = 8; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 51; -pub const PTHREAD_STACK_MIN: ::size_t = 0; +pub const SIG_BLOCK: c_int = 1; +pub const SIG_UNBLOCK: c_int = 2; +pub const SIG_SETMASK: c_int = 0; +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGTRAP: c_int = 5; +pub const SIGABRT: c_int = 6; +pub const SIGEMT: c_int = 7; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGBUS: c_int = 10; +pub const SIGSEGV: c_int = 11; +pub const SIGSYS: c_int = 12; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; +pub const SIGURG: c_int = 16; +pub const SIGSTOP: c_int = 17; +pub const SIGTSTP: c_int = 18; +pub const SIGCONT: c_int = 19; +pub const SIGCHLD: c_int = 20; +pub const SIGCLD: c_int = 20; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGIO: c_int = 23; +pub const SIGWINCH: c_int = 24; +pub const SIGUSR1: c_int = 25; +pub const SIGUSR2: c_int = 26; +pub const SIGRTMIN: c_int = 27; +pub const SIGRTMAX: c_int = 31; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; + +pub const SA_NOCLDSTOP: c_ulong = 0x00000001; +pub const SA_SIGINFO: c_ulong = 0x00000002; +pub const SA_ONSTACK: c_ulong = 0x00000004; + +pub const EAI_AGAIN: c_int = 2; +pub const EAI_BADFLAGS: c_int = 3; +pub const EAI_FAIL: c_int = 4; +pub const EAI_SERVICE: c_int = 9; +pub const EAI_SYSTEM: c_int = 11; +pub const EAI_OVERFLOW: c_int = 14; + +pub const _SC_PAGESIZE: c_int = 8; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 51; +pub const PTHREAD_STACK_MIN: size_t = 0; // sys/wait.h -pub const WNOHANG: ::c_int = 1; -pub const WUNTRACED: ::c_int = 2; +pub const WNOHANG: c_int = 1; +pub const WUNTRACED: c_int = 2; // sys/socket.h -pub const SOMAXCONN: ::c_int = 128; +pub const SOMAXCONN: c_int = 128; safe_f! { - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + pub {const} fn WIFSTOPPED(status: c_int) -> bool { (status & 0xff) == 0x7f } - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + pub {const} fn WSTOPSIG(status: c_int) -> c_int { // (status >> 8) & 0xff WEXITSTATUS(status) } - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + pub {const} fn WIFSIGNALED(status: c_int) -> bool { ((status & 0x7f) > 0) && ((status & 0x7f) < 0x7f) } - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + pub {const} fn WTERMSIG(status: c_int) -> c_int { status & 0x7f } - pub {const} fn WIFEXITED(status: ::c_int) -> bool { + pub {const} fn WIFEXITED(status: c_int) -> bool { (status & 0xff) == 0 } - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + pub {const} fn WEXITSTATUS(status: c_int) -> c_int { (status >> 8) & 0xff } // RTEMS doesn't have native WIFCONTINUED. - pub {const} fn WIFCONTINUED(_status: ::c_int) -> bool { + pub {const} fn WIFCONTINUED(_status: c_int) -> bool { true } // RTEMS doesn't have native WCOREDUMP. - pub {const} fn WCOREDUMP(_status: ::c_int) -> bool { + pub {const} fn WCOREDUMP(_status: c_int) -> bool { false } } extern "C" { - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; + pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; + pub fn readv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(_: *mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; + native: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + f: extern "C" fn(_: *mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; pub fn pthread_condattr_setclock( - attr: *mut ::pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; + attr: *mut crate::pthread_condattr_t, + clock_id: crate::clockid_t, + ) -> c_int; - pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; + pub fn getentropy(buf: *mut c_void, buflen: size_t) -> c_int; - pub fn arc4random_buf(buf: *mut core::ffi::c_void, nbytes: ::size_t); + pub fn arc4random_buf(buf: *mut core::ffi::c_void, nbytes: size_t); - pub fn setgroups(ngroups: ::c_int, grouplist: *const ::gid_t) -> ::c_int; + pub fn setgroups(ngroups: c_int, grouplist: *const crate::gid_t) -> c_int; } diff --git a/src/unix/newlib/vita/mod.rs b/src/unix/newlib/vita/mod.rs index d4c6955f36153..e9b12dd0914b8 100644 --- a/src/unix/newlib/vita/mod.rs +++ b/src/unix/newlib/vita/mod.rs @@ -1,4 +1,6 @@ -pub type clock_t = ::c_long; +use crate::{c_int, c_short, c_void, off_t, size_t, ssize_t}; + +pub type clock_t = c_long; pub type c_char = i8; pub type wchar_t = u32; @@ -6,231 +8,231 @@ pub type wchar_t = u32; pub type c_long = i32; pub type c_ulong = u32; -pub type sigset_t = ::c_ulong; +pub type sigset_t = c_ulong; s! { pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - pub msg_flags: ::c_int, + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: c_int, + pub msg_control: *mut c_void, + pub msg_controllen: crate::socklen_t, + pub msg_flags: c_int, } pub struct sockaddr { pub sa_len: u8, - pub sa_family: ::sa_family_t, - pub sa_data: [::c_char; 14], + pub sa_family: crate::sa_family_t, + pub sa_data: [c_char; 14], } pub struct sockaddr_in6 { pub sin6_len: u8, - pub sin6_family: ::sa_family_t, - pub sin6_port: ::in_port_t, + pub sin6_family: crate::sa_family_t, + pub sin6_port: crate::in_port_t, pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, - pub sin6_vport: ::in_port_t, + pub sin6_addr: crate::in6_addr, + pub sin6_vport: crate::in_port_t, pub sin6_scope_id: u32, } pub struct sockaddr_in { pub sin_len: u8, - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_vport: ::in_port_t, + pub sin_family: crate::sa_family_t, + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, + pub sin_vport: crate::in_port_t, pub sin_zero: [u8; 6], } pub struct sockaddr_un { pub ss_len: u8, - pub sun_family: ::sa_family_t, - pub sun_path: [::c_char; 108usize], + pub sun_family: crate::sa_family_t, + pub sun_path: [c_char; 108usize], } pub struct sockaddr_storage { pub ss_len: u8, - pub ss_family: ::sa_family_t, + pub ss_family: crate::sa_family_t, pub __ss_pad1: [u8; 2], pub __ss_align: i64, pub __ss_pad2: [u8; 116], } pub struct sched_param { - pub sched_priority: ::c_int, + pub sched_priority: c_int, } 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_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_atime: ::time_t, - pub st_mtime: ::time_t, - pub st_ctime: ::time_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_spare4: [::c_long; 2usize], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_atime: crate::time_t, + pub st_mtime: crate::time_t, + pub st_ctime: crate::time_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_spare4: [c_long; 2usize], } #[repr(align(8))] pub struct dirent { __offset: [u8; 88], - pub d_name: [::c_char; 256usize], + pub d_name: [c_char; 256usize], __pad: [u8; 8], } } -pub const AF_UNIX: ::c_int = 1; -pub const AF_INET6: ::c_int = 24; +pub const AF_UNIX: c_int = 1; +pub const AF_INET6: c_int = 24; -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; -pub const SOCK_SEQPACKET: ::c_int = 5; +pub const SOCK_RAW: c_int = 3; +pub const SOCK_RDM: c_int = 4; +pub const SOCK_SEQPACKET: c_int = 5; -pub const SOMAXCONN: ::c_int = 128; +pub const SOMAXCONN: c_int = 128; -pub const FIONBIO: ::c_ulong = 1; +pub const FIONBIO: c_ulong = 1; -pub const POLLIN: ::c_short = 0x0001; -pub const POLLPRI: ::c_short = POLLIN; -pub const POLLOUT: ::c_short = 0x0004; -pub const POLLRDNORM: ::c_short = POLLIN; -pub const POLLRDBAND: ::c_short = POLLIN; -pub const POLLWRNORM: ::c_short = POLLOUT; -pub const POLLWRBAND: ::c_short = POLLOUT; -pub const POLLERR: ::c_short = 0x0008; -pub const POLLHUP: ::c_short = 0x0010; -pub const POLLNVAL: ::c_short = 0x0020; +pub const POLLIN: c_short = 0x0001; +pub const POLLPRI: c_short = POLLIN; +pub const POLLOUT: c_short = 0x0004; +pub const POLLRDNORM: c_short = POLLIN; +pub const POLLRDBAND: c_short = POLLIN; +pub const POLLWRNORM: c_short = POLLOUT; +pub const POLLWRBAND: c_short = POLLOUT; +pub const POLLERR: c_short = 0x0008; +pub const POLLHUP: c_short = 0x0010; +pub const POLLNVAL: c_short = 0x0020; -pub const RTLD_DEFAULT: *mut ::c_void = 0 as *mut ::c_void; +pub const RTLD_DEFAULT: *mut c_void = 0 as *mut c_void; -pub const SOL_SOCKET: ::c_int = 0xffff; -pub const SO_NONBLOCK: ::c_int = 0x1100; +pub const SOL_SOCKET: c_int = 0xffff; +pub const SO_NONBLOCK: c_int = 0x1100; -pub const MSG_OOB: ::c_int = 0x1; -pub const MSG_PEEK: ::c_int = 0x2; -pub const MSG_DONTROUTE: ::c_int = 0x4; -pub const MSG_EOR: ::c_int = 0x8; -pub const MSG_TRUNC: ::c_int = 0x10; -pub const MSG_CTRUNC: ::c_int = 0x20; -pub const MSG_WAITALL: ::c_int = 0x40; -pub const MSG_DONTWAIT: ::c_int = 0x80; -pub const MSG_BCAST: ::c_int = 0x100; -pub const MSG_MCAST: ::c_int = 0x200; +pub const MSG_OOB: c_int = 0x1; +pub const MSG_PEEK: c_int = 0x2; +pub const MSG_DONTROUTE: c_int = 0x4; +pub const MSG_EOR: c_int = 0x8; +pub const MSG_TRUNC: c_int = 0x10; +pub const MSG_CTRUNC: c_int = 0x20; +pub const MSG_WAITALL: c_int = 0x40; +pub const MSG_DONTWAIT: c_int = 0x80; +pub const MSG_BCAST: c_int = 0x100; +pub const MSG_MCAST: c_int = 0x200; pub const UTIME_OMIT: c_long = -1; -pub const AT_FDCWD: ::c_int = -2; - -pub const O_DIRECTORY: ::c_int = 0x200000; -pub const O_NOFOLLOW: ::c_int = 0x100000; - -pub const AT_EACCESS: ::c_int = 1; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 2; -pub const AT_SYMLINK_FOLLOW: ::c_int = 4; -pub const AT_REMOVEDIR: ::c_int = 8; - -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGTRAP: ::c_int = 5; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGBUS: ::c_int = 10; -pub const SIGSEGV: ::c_int = 11; -pub const SIGSYS: ::c_int = 12; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; - -pub const EAI_BADFLAGS: ::c_int = -1; -pub const EAI_NONAME: ::c_int = -2; -pub const EAI_AGAIN: ::c_int = -3; -pub const EAI_FAIL: ::c_int = -4; -pub const EAI_NODATA: ::c_int = -5; -pub const EAI_FAMILY: ::c_int = -6; -pub const EAI_SOCKTYPE: ::c_int = -7; -pub const EAI_SERVICE: ::c_int = -8; -pub const EAI_ADDRFAMILY: ::c_int = -9; -pub const EAI_MEMORY: ::c_int = -10; -pub const EAI_SYSTEM: ::c_int = -11; -pub const EAI_OVERFLOW: ::c_int = -12; - -pub const _SC_PAGESIZE: ::c_int = 8; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 51; -pub const PTHREAD_STACK_MIN: ::size_t = 32 * 1024; - -pub const IP_HDRINCL: ::c_int = 2; +pub const AT_FDCWD: c_int = -2; + +pub const O_DIRECTORY: c_int = 0x200000; +pub const O_NOFOLLOW: c_int = 0x100000; + +pub const AT_EACCESS: c_int = 1; +pub const AT_SYMLINK_NOFOLLOW: c_int = 2; +pub const AT_SYMLINK_FOLLOW: c_int = 4; +pub const AT_REMOVEDIR: c_int = 8; + +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGTRAP: c_int = 5; +pub const SIGABRT: c_int = 6; +pub const SIGEMT: c_int = 7; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGBUS: c_int = 10; +pub const SIGSEGV: c_int = 11; +pub const SIGSYS: c_int = 12; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; + +pub const EAI_BADFLAGS: c_int = -1; +pub const EAI_NONAME: c_int = -2; +pub const EAI_AGAIN: c_int = -3; +pub const EAI_FAIL: c_int = -4; +pub const EAI_NODATA: c_int = -5; +pub const EAI_FAMILY: c_int = -6; +pub const EAI_SOCKTYPE: c_int = -7; +pub const EAI_SERVICE: c_int = -8; +pub const EAI_ADDRFAMILY: c_int = -9; +pub const EAI_MEMORY: c_int = -10; +pub const EAI_SYSTEM: c_int = -11; +pub const EAI_OVERFLOW: c_int = -12; + +pub const _SC_PAGESIZE: c_int = 8; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 51; +pub const PTHREAD_STACK_MIN: size_t = 32 * 1024; + +pub const IP_HDRINCL: c_int = 2; extern "C" { - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; + pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; + pub fn readv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; - pub fn sendmsg(s: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; - pub fn recvmsg(s: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn sendmsg(s: c_int, msg: *const crate::msghdr, flags: c_int) -> ssize_t; + pub fn recvmsg(s: c_int, msg: *mut crate::msghdr, flags: c_int) -> ssize_t; pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(_: *mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; + native: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + f: extern "C" fn(_: *mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; pub fn pthread_attr_getschedparam( - attr: *const ::pthread_attr_t, + attr: *const crate::pthread_attr_t, param: *mut sched_param, - ) -> ::c_int; + ) -> c_int; pub fn pthread_attr_setschedparam( - attr: *mut ::pthread_attr_t, + attr: *mut crate::pthread_attr_t, param: *const sched_param, - ) -> ::c_int; + ) -> c_int; pub fn pthread_attr_getprocessorid_np( - attr: *const ::pthread_attr_t, - processor_id: *mut ::c_int, - ) -> ::c_int; + attr: *const crate::pthread_attr_t, + processor_id: *mut c_int, + ) -> c_int; pub fn pthread_attr_setprocessorid_np( - attr: *mut ::pthread_attr_t, - processor_id: ::c_int, - ) -> ::c_int; + attr: *mut crate::pthread_attr_t, + processor_id: c_int, + ) -> c_int; pub fn pthread_getschedparam( - native: ::pthread_t, - policy: *mut ::c_int, - param: *mut ::sched_param, - ) -> ::c_int; + native: crate::pthread_t, + policy: *mut c_int, + param: *mut crate::sched_param, + ) -> c_int; pub fn pthread_setschedparam( - native: ::pthread_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; + native: crate::pthread_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; pub fn pthread_condattr_getclock( - attr: *const ::pthread_condattr_t, - clock_id: *mut ::clockid_t, - ) -> ::c_int; + attr: *const crate::pthread_condattr_t, + clock_id: *mut crate::clockid_t, + ) -> c_int; pub fn pthread_condattr_setclock( - attr: *mut ::pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; + attr: *mut crate::pthread_condattr_t, + clock_id: crate::clockid_t, + ) -> c_int; - pub fn pthread_getprocessorid_np() -> ::c_int; + pub fn pthread_getprocessorid_np() -> c_int; - pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; + pub fn getentropy(buf: *mut c_void, buflen: size_t) -> c_int; - pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; + pub fn pipe2(fds: *mut c_int, flags: c_int) -> c_int; } diff --git a/src/unix/nto/aarch64.rs b/src/unix/nto/aarch64.rs index 6faf8159c7172..0e4694315c73b 100644 --- a/src/unix/nto/aarch64.rs +++ b/src/unix/nto/aarch64.rs @@ -1,3 +1,5 @@ +use crate::{c_int, c_void, size_t}; + pub type c_char = u8; pub type wchar_t = u32; pub type c_long = i64; @@ -11,7 +13,7 @@ s! { } pub struct aarch64_fpu_registers { - pub reg: [::aarch64_qreg_t; 32], + pub reg: [crate::aarch64_qreg_t; 32], pub fpsr: u32, pub fpcr: u32, } @@ -24,13 +26,13 @@ s! { #[repr(align(16))] pub struct mcontext_t { - pub cpu: ::aarch64_cpu_registers, - pub fpu: ::aarch64_fpu_registers, + pub cpu: crate::aarch64_cpu_registers, + pub fpu: crate::aarch64_fpu_registers, } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, + pub ss_sp: *mut c_void, + pub ss_size: size_t, + pub ss_flags: c_int, } } diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 7972e9c720e50..85a3bfaf3d2c7 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -1,22 +1,24 @@ +use crate::{c_int, c_short, c_uchar, c_uint, c_ushort, c_void, size_t, ssize_t}; + pub type clock_t = u32; pub type sa_family_t = u8; -pub type speed_t = ::c_uint; -pub type tcflag_t = ::c_uint; -pub type clockid_t = ::c_int; -pub type timer_t = ::c_int; -pub type key_t = ::c_uint; -pub type id_t = ::c_int; +pub type speed_t = c_uint; +pub type tcflag_t = c_uint; +pub type clockid_t = c_int; +pub type timer_t = c_int; +pub type key_t = c_uint; +pub type id_t = c_int; pub type useconds_t = u32; pub type dev_t = u32; pub type socklen_t = u32; pub type mode_t = u32; pub type rlim64_t = u64; -pub type mqd_t = ::c_int; -pub type nfds_t = ::c_uint; -pub type idtype_t = ::c_uint; -pub type errno_t = ::c_int; +pub type mqd_t = c_int; +pub type nfds_t = c_uint; +pub type idtype_t = c_uint; +pub type errno_t = c_int; pub type rsize_t = c_ulong; pub type Elf32_Half = u16; @@ -40,8 +42,8 @@ pub type Elf64_Section = u16; pub type _Time32t = u32; -pub type pthread_t = ::c_int; -pub type regoff_t = ::ssize_t; +pub type pthread_t = c_int; +pub type regoff_t = ssize_t; pub type nlink_t = u32; pub type blksize_t = u32; @@ -55,25 +57,25 @@ pub type msglen_t = u64; pub type fsblkcnt_t = u64; pub type fsfilcnt_t = u64; pub type rlim_t = u64; -pub type posix_spawn_file_actions_t = *mut ::c_void; -pub type posix_spawnattr_t = ::uintptr_t; - -pub type pthread_mutex_t = ::sync_t; -pub type pthread_mutexattr_t = ::_sync_attr; -pub type pthread_cond_t = ::sync_t; -pub type pthread_condattr_t = ::_sync_attr; -pub type pthread_rwlockattr_t = ::_sync_attr; -pub type pthread_key_t = ::c_int; +pub type posix_spawn_file_actions_t = *mut c_void; +pub type posix_spawnattr_t = crate::uintptr_t; + +pub type pthread_mutex_t = crate::sync_t; +pub type pthread_mutexattr_t = crate::_sync_attr; +pub type pthread_cond_t = crate::sync_t; +pub type pthread_condattr_t = crate::_sync_attr; +pub type pthread_rwlockattr_t = crate::_sync_attr; +pub type pthread_key_t = c_int; pub type pthread_spinlock_t = sync_t; pub type pthread_barrierattr_t = _sync_attr; pub type sem_t = sync_t; -pub type nl_item = ::c_int; +pub type nl_item = c_int; #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { +impl Copy for timezone {} +impl Clone for timezone { fn clone(&self) -> timezone { *self } @@ -87,24 +89,24 @@ s! { } pub struct stat { - pub st_ino: ::ino_t, - pub st_size: ::off_t, - pub st_dev: ::dev_t, - pub st_rdev: ::dev_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub __old_st_mtime: ::_Time32t, - pub __old_st_atime: ::_Time32t, - pub __old_st_ctime: ::_Time32t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_blocksize: ::blksize_t, + pub st_ino: crate::ino_t, + pub st_size: off_t, + pub st_dev: crate::dev_t, + pub st_rdev: crate::dev_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub __old_st_mtime: crate::_Time32t, + pub __old_st_atime: crate::_Time32t, + pub __old_st_ctime: crate::_Time32t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_blocksize: crate::blksize_t, pub st_nblocks: i32, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_mtim: ::timespec, - pub st_atim: ::timespec, - pub st_ctim: ::timespec, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_mtim: crate::timespec, + pub st_atim: crate::timespec, + pub st_ctim: crate::timespec, } pub struct ip_mreq { @@ -114,143 +116,143 @@ s! { #[repr(packed)] pub struct in_addr { - pub s_addr: ::in_addr_t, + pub s_addr: crate::in_addr_t, } pub struct sockaddr { pub sa_len: u8, pub sa_family: sa_family_t, - pub sa_data: [::c_char; 14], + pub sa_data: [c_char; 14], } pub struct sockaddr_in { pub sin_len: u8, pub sin_family: sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, pub sin_zero: [i8; 8], } pub struct sockaddr_in6 { pub sin6_len: u8, pub sin6_family: sa_family_t, - pub sin6_port: ::in_port_t, + pub sin6_port: crate::in_port_t, pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, + pub sin6_addr: crate::in6_addr, pub sin6_scope_id: u32, } // The order of the `ai_addr` field in this struct is crucial // for converting between the Rust and C types. pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, + pub ai_flags: c_int, + pub ai_family: c_int, + pub ai_socktype: c_int, + pub ai_protocol: c_int, pub ai_addrlen: socklen_t, pub ai_canonname: *mut c_char, - pub ai_addr: *mut ::sockaddr, + pub ai_addr: *mut crate::sockaddr, pub ai_next: *mut addrinfo, } pub struct fd_set { - fds_bits: [::c_uint; 2 * FD_SETSIZE as usize / ULONG_SIZE], + fds_bits: [c_uint; 2 * FD_SETSIZE as usize / ULONG_SIZE], } pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, - pub tm_gmtoff: ::c_long, - pub tm_zone: *const ::c_char, + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + pub tm_gmtoff: c_long, + pub tm_zone: *const c_char, } #[repr(align(8))] pub struct sched_param { - pub sched_priority: ::c_int, - pub sched_curpriority: ::c_int, - pub reserved: [::c_int; 10], + pub sched_priority: c_int, + pub sched_curpriority: c_int, + pub reserved: [c_int; 10], } #[repr(align(8))] pub struct __sched_param { - pub __sched_priority: ::c_int, - pub __sched_curpriority: ::c_int, - pub reserved: [::c_int; 10], + pub __sched_priority: c_int, + pub __sched_curpriority: c_int, + pub reserved: [c_int; 10], } pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, + pub dli_fname: *const c_char, + pub dli_fbase: *mut c_void, + pub dli_sname: *const c_char, + pub dli_saddr: *mut c_void, } pub struct lconv { - pub currency_symbol: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub frac_digits: ::c_char, - pub int_frac_digits: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub n_sign_posn: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - - pub decimal_point: *mut ::c_char, - pub grouping: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - - pub _Frac_grouping: *mut ::c_char, - pub _Frac_sep: *mut ::c_char, - pub _False: *mut ::c_char, - pub _True: *mut ::c_char, - - pub _No: *mut ::c_char, - pub _Yes: *mut ::c_char, - pub _Nostr: *mut ::c_char, - pub _Yesstr: *mut ::c_char, - pub _Reserved: [*mut ::c_char; 8], + pub currency_symbol: *mut c_char, + pub int_curr_symbol: *mut c_char, + pub mon_decimal_point: *mut c_char, + pub mon_grouping: *mut c_char, + pub mon_thousands_sep: *mut c_char, + pub negative_sign: *mut c_char, + pub positive_sign: *mut c_char, + pub frac_digits: c_char, + pub int_frac_digits: c_char, + pub n_cs_precedes: c_char, + pub n_sep_by_space: c_char, + pub n_sign_posn: c_char, + pub p_cs_precedes: c_char, + pub p_sep_by_space: c_char, + pub p_sign_posn: c_char, + + pub int_n_cs_precedes: c_char, + pub int_n_sep_by_space: c_char, + pub int_n_sign_posn: c_char, + pub int_p_cs_precedes: c_char, + pub int_p_sep_by_space: c_char, + pub int_p_sign_posn: c_char, + + pub decimal_point: *mut c_char, + pub grouping: *mut c_char, + pub thousands_sep: *mut c_char, + + pub _Frac_grouping: *mut c_char, + pub _Frac_sep: *mut c_char, + pub _False: *mut c_char, + pub _True: *mut c_char, + + pub _No: *mut c_char, + pub _Yes: *mut c_char, + pub _Nostr: *mut c_char, + pub _Yesstr: *mut c_char, + pub _Reserved: [*mut c_char; 8], } pub struct in_pktinfo { - pub ipi_addr: ::in_addr, - pub ipi_ifindex: ::c_uint, + pub ipi_addr: crate::in_addr, + pub ipi_ifindex: c_uint, } pub struct ifaddrs { pub ifa_next: *mut ifaddrs, pub ifa_name: *mut c_char, - pub ifa_flags: ::c_uint, - pub ifa_addr: *mut ::sockaddr, - pub ifa_netmask: *mut ::sockaddr, - pub ifa_dstaddr: *mut ::sockaddr, - pub ifa_data: *mut ::c_void, + pub ifa_flags: c_uint, + pub ifa_addr: *mut crate::sockaddr, + pub ifa_netmask: *mut crate::sockaddr, + pub ifa_dstaddr: *mut crate::sockaddr, + pub ifa_data: *mut c_void, } pub struct arpreq { - pub arp_pa: ::sockaddr, - pub arp_ha: ::sockaddr, - pub arp_flags: ::c_int, + pub arp_pa: crate::sockaddr, + pub arp_ha: crate::sockaddr, + pub arp_flags: c_int, } #[repr(packed)] @@ -263,27 +265,27 @@ s! { } pub struct mmsghdr { - pub msg_hdr: ::msghdr, - pub msg_len: ::c_uint, + pub msg_hdr: crate::msghdr, + pub msg_len: c_uint, } #[repr(align(8))] pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, + pub si_signo: c_int, + pub si_code: c_int, + pub si_errno: c_int, __data: [u8; 36], // union } pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_flags: ::c_int, - pub sa_mask: ::sigset_t, + pub sa_sigaction: crate::sighandler_t, + pub sa_flags: c_int, + pub sa_mask: crate::sigset_t, } pub struct _sync { - _union: ::c_uint, - __owner: ::c_uint, + _union: c_uint, + __owner: c_uint, } pub struct rlimit64 { pub rlim_cur: rlim64_t, @@ -291,45 +293,45 @@ s! { } pub struct glob_t { - pub gl_pathc: ::size_t, - pub gl_matchc: ::c_int, + pub gl_pathc: size_t, + pub gl_matchc: c_int, pub gl_pathv: *mut *mut c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - pub gl_errfunc: extern "C" fn(*const ::c_char, ::c_int) -> ::c_int, + pub gl_offs: size_t, + pub gl_flags: c_int, + pub gl_errfunc: extern "C" fn(*const c_char, c_int) -> c_int, - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, + __unused1: *mut c_void, + __unused2: *mut c_void, + __unused3: *mut c_void, + __unused4: *mut c_void, + __unused5: *mut c_void, } pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_age: *mut ::c_char, - pub pw_comment: *mut ::c_char, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, + pub pw_name: *mut c_char, + pub pw_passwd: *mut c_char, + pub pw_uid: crate::uid_t, + pub pw_gid: crate::gid_t, + pub pw_age: *mut c_char, + pub pw_comment: *mut c_char, + pub pw_gecos: *mut c_char, + pub pw_dir: *mut c_char, + pub pw_shell: *mut c_char, } pub struct if_nameindex { - pub if_index: ::c_uint, - pub if_name: *mut ::c_char, + pub if_index: c_uint, + pub if_name: *mut c_char, } pub struct sembuf { - pub sem_num: ::c_ushort, - pub sem_op: ::c_short, - pub sem_flg: ::c_short, + pub sem_num: c_ushort, + pub sem_op: c_short, + pub sem_flg: c_short, } pub struct Elf32_Ehdr { - pub e_ident: [::c_uchar; 16], + pub e_ident: [c_uchar; 16], pub e_type: Elf32_Half, pub e_machine: Elf32_Half, pub e_version: Elf32_Word, @@ -346,7 +348,7 @@ s! { } pub struct Elf64_Ehdr { - pub e_ident: [::c_uchar; 16], + pub e_ident: [c_uchar; 16], pub e_type: Elf64_Half, pub e_machine: Elf64_Half, pub e_version: Elf64_Word, @@ -366,15 +368,15 @@ s! { pub st_name: Elf32_Word, pub st_value: Elf32_Addr, pub st_size: Elf32_Word, - pub st_info: ::c_uchar, - pub st_other: ::c_uchar, + pub st_info: c_uchar, + pub st_other: c_uchar, pub st_shndx: Elf32_Section, } pub struct Elf64_Sym { pub st_name: Elf64_Word, - pub st_info: ::c_uchar, - pub st_other: ::c_uchar, + pub st_info: c_uchar, + pub st_other: c_uchar, pub st_shndx: Elf64_Section, pub st_value: Elf64_Addr, pub st_size: Elf64_Xword, @@ -429,12 +431,12 @@ s! { } pub struct in6_pktinfo { - pub ipi6_addr: ::in6_addr, - pub ipi6_ifindex: ::c_uint, + pub ipi6_addr: crate::in6_addr, + pub ipi6_ifindex: c_uint, } pub struct inotify_event { - pub wd: ::c_int, + pub wd: c_int, pub mask: u32, pub cookie: u32, pub len: u32, @@ -446,148 +448,148 @@ s! { } pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - pub msg_flags: ::c_int, + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: c_int, + pub msg_control: *mut c_void, + pub msg_controllen: crate::socklen_t, + pub msg_flags: c_int, } pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub cmsg_len: crate::socklen_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_cc: [::cc_t; ::NCCS], - __reserved: [::c_uint; 3], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_cc: [crate::cc_t; crate::NCCS], + __reserved: [c_uint; 3], + pub c_ispeed: crate::speed_t, + pub c_ospeed: crate::speed_t, } pub struct mallinfo { - pub arena: ::c_int, - pub ordblks: ::c_int, - pub smblks: ::c_int, - pub hblks: ::c_int, - pub hblkhd: ::c_int, - pub usmblks: ::c_int, - pub fsmblks: ::c_int, - pub uordblks: ::c_int, - pub fordblks: ::c_int, - pub keepcost: ::c_int, + pub arena: c_int, + pub ordblks: c_int, + pub smblks: c_int, + pub hblks: c_int, + pub hblkhd: c_int, + pub usmblks: c_int, + pub fsmblks: c_int, + pub uordblks: c_int, + pub fordblks: c_int, + pub keepcost: c_int, } pub struct flock { pub l_type: i16, pub l_whence: i16, pub l_zero1: i32, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, pub l_sysid: u32, } 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, - f_filler: [::c_uint; 21], + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + pub f_basetype: [c_char; 16], + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + f_filler: [c_uint; 21], } pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_reqprio: ::c_int, + pub aio_fildes: c_int, + pub aio_reqprio: c_int, pub aio_offset: off_t, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_sigevent: ::sigevent, - pub aio_lio_opcode: ::c_int, - pub _aio_lio_state: *mut ::c_void, - _aio_pad: [::c_int; 3], - pub _aio_next: *mut ::aiocb, - pub _aio_flag: ::c_uint, - pub _aio_iotype: ::c_uint, - pub _aio_result: ::ssize_t, - pub _aio_error: ::c_uint, - pub _aio_suspend: *mut ::c_void, - pub _aio_plist: *mut ::c_void, - pub _aio_policy: ::c_int, - pub _aio_param: ::__sched_param, + pub aio_buf: *mut c_void, + pub aio_nbytes: size_t, + pub aio_sigevent: crate::sigevent, + pub aio_lio_opcode: c_int, + pub _aio_lio_state: *mut c_void, + _aio_pad: [c_int; 3], + pub _aio_next: *mut crate::aiocb, + pub _aio_flag: c_uint, + pub _aio_iotype: c_uint, + pub _aio_result: ssize_t, + pub _aio_error: c_uint, + pub _aio_suspend: *mut c_void, + pub _aio_plist: *mut c_void, + pub _aio_policy: c_int, + pub _aio_param: crate::__sched_param, } pub struct pthread_attr_t { - __data1: ::c_long, + __data1: c_long, __data2: [u8; 96], } pub struct ipc_perm { - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub seq: ::c_uint, - pub key: ::key_t, - _reserved: [::c_int; 4], + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub seq: c_uint, + pub key: crate::key_t, + _reserved: [c_int; 4], } pub struct regex_t { - re_magic: ::c_int, - re_nsub: ::size_t, - re_endp: *const ::c_char, - re_g: *mut ::c_void, + re_magic: c_int, + re_nsub: size_t, + re_endp: *const c_char, + re_g: *mut c_void, } pub struct _thread_attr { - pub __flags: ::c_int, - pub __stacksize: ::size_t, - pub __stackaddr: *mut ::c_void, - pub __exitfunc: ::Option, - pub __policy: ::c_int, - pub __param: ::__sched_param, - pub __guardsize: ::c_uint, - pub __prealloc: ::c_uint, - __spare: [::c_int; 2], + pub __flags: c_int, + pub __stacksize: size_t, + pub __stackaddr: *mut c_void, + pub __exitfunc: Option, + pub __policy: c_int, + pub __param: crate::__sched_param, + pub __guardsize: c_uint, + pub __prealloc: c_uint, + __spare: [c_int; 2], } pub struct _sync_attr { - pub __protocol: ::c_int, - pub __flags: ::c_int, - pub __prioceiling: ::c_int, - pub __clockid: ::c_int, - pub __count: ::c_int, - __reserved: [::c_int; 3], + pub __protocol: c_int, + pub __flags: c_int, + pub __prioceiling: c_int, + pub __clockid: c_int, + pub __count: c_int, + __reserved: [c_int; 3], } pub struct sockcred { - pub sc_uid: ::uid_t, - pub sc_euid: ::uid_t, - pub sc_gid: ::gid_t, - pub sc_egid: ::gid_t, - pub sc_ngroups: ::c_int, - pub sc_groups: [::gid_t; 1], + pub sc_uid: crate::uid_t, + pub sc_euid: crate::uid_t, + pub sc_gid: crate::gid_t, + pub sc_egid: crate::gid_t, + pub sc_ngroups: c_int, + pub sc_groups: [crate::gid_t; 1], } pub struct bpf_program { - pub bf_len: ::c_uint, - pub bf_insns: *mut ::bpf_insn, + pub bf_len: c_uint, + pub bf_insns: *mut crate::bpf_insn, } pub struct bpf_stat { @@ -598,12 +600,12 @@ s! { } pub struct bpf_version { - pub bv_major: ::c_ushort, - pub bv_minor: ::c_ushort, + pub bv_major: c_ushort, + pub bv_minor: c_ushort, } pub struct bpf_hdr { - pub bh_tstamp: ::timeval, + pub bh_tstamp: crate::timeval, pub bh_caplen: u32, pub bh_datalen: u32, pub bh_hdrlen: u16, @@ -611,33 +613,33 @@ s! { pub struct bpf_insn { pub code: u16, - pub jt: ::c_uchar, - pub jf: ::c_uchar, + pub jt: c_uchar, + pub jf: c_uchar, pub k: u32, } pub struct bpf_dltlist { - pub bfl_len: ::c_uint, - pub bfl_list: *mut ::c_uint, + pub bfl_len: c_uint, + pub bfl_list: *mut c_uint, } pub struct unpcbid { - pub unp_pid: ::pid_t, - pub unp_euid: ::uid_t, - pub unp_egid: ::gid_t, + pub unp_pid: crate::pid_t, + pub unp_euid: crate::uid_t, + pub unp_egid: crate::gid_t, } pub struct dl_phdr_info { - pub dlpi_addr: ::Elf64_Addr, - pub dlpi_name: *const ::c_char, - pub dlpi_phdr: *const ::Elf64_Phdr, - pub dlpi_phnum: ::Elf64_Half, + pub dlpi_addr: crate::Elf64_Addr, + pub dlpi_name: *const c_char, + pub dlpi_phdr: *const crate::Elf64_Phdr, + pub dlpi_phnum: crate::Elf64_Half, } #[repr(align(8))] pub struct ucontext_t { pub uc_link: *mut ucontext_t, - pub uc_sigmask: ::sigset_t, + pub uc_sigmask: crate::sigset_t, pub uc_stack: stack_t, pub uc_mcontext: mcontext_t, } @@ -647,39 +649,39 @@ s_no_extra_traits! { pub struct sockaddr_un { pub sun_len: u8, pub sun_family: sa_family_t, - pub sun_path: [::c_char; 104], + pub sun_path: [c_char; 104], } pub struct sockaddr_storage { pub ss_len: u8, pub ss_family: sa_family_t, - __ss_pad1: [::c_char; 6], + __ss_pad1: [c_char; 6], __ss_align: i64, - __ss_pad2: [::c_char; 112], + __ss_pad2: [c_char; 112], } pub struct utsname { - pub sysname: [::c_char; _SYSNAME_SIZE], - pub nodename: [::c_char; _SYSNAME_SIZE], - pub release: [::c_char; _SYSNAME_SIZE], - pub version: [::c_char; _SYSNAME_SIZE], - pub machine: [::c_char; _SYSNAME_SIZE], + pub sysname: [c_char; _SYSNAME_SIZE], + pub nodename: [c_char; _SYSNAME_SIZE], + pub release: [c_char; _SYSNAME_SIZE], + pub version: [c_char; _SYSNAME_SIZE], + pub machine: [c_char; _SYSNAME_SIZE], } pub struct sigevent { - pub sigev_notify: ::c_int, - pub __padding1: ::c_int, - pub sigev_signo: ::c_int, // union - pub __padding2: ::c_int, - pub sigev_value: ::sigval, + pub sigev_notify: c_int, + pub __padding1: c_int, + pub sigev_signo: c_int, // union + pub __padding2: c_int, + pub sigev_value: crate::sigval, __sigev_un2: usize, // union } pub struct dirent { - pub d_ino: ::ino_t, - pub d_offset: ::off_t, - pub d_reclen: ::c_short, - pub d_namelen: ::c_short, - pub d_name: [::c_char; 1], // flex array + pub d_ino: crate::ino_t, + pub d_offset: off_t, + pub d_reclen: c_short, + pub d_namelen: c_short, + pub d_name: [c_char; 1], // flex array } pub struct sigset_t { @@ -687,54 +689,54 @@ s_no_extra_traits! { } pub struct mq_attr { - pub mq_maxmsg: ::c_long, - pub mq_msgsize: ::c_long, - pub mq_flags: ::c_long, - pub mq_curmsgs: ::c_long, - pub mq_sendwait: ::c_long, - pub mq_recvwait: ::c_long, + pub mq_maxmsg: c_long, + pub mq_msgsize: c_long, + pub mq_flags: c_long, + pub mq_curmsgs: c_long, + pub mq_sendwait: c_long, + pub mq_recvwait: c_long, } pub struct msg { - pub msg_next: *mut ::msg, - pub msg_type: ::c_long, - pub msg_ts: ::c_ushort, - pub msg_spot: ::c_short, + pub msg_next: *mut crate::msg, + pub msg_type: c_long, + pub msg_ts: c_ushort, + pub msg_spot: c_short, _pad: [u8; 4], } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_first: *mut ::msg, - pub msg_last: *mut ::msg, - pub msg_cbytes: ::msglen_t, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - pub msg_stime: ::time_t, - msg_pad1: ::c_long, - pub msg_rtime: ::time_t, - msg_pad2: ::c_long, - pub msg_ctime: ::time_t, - msg_pad3: ::c_long, - msg_pad4: [::c_long; 4], + pub msg_perm: crate::ipc_perm, + pub msg_first: *mut crate::msg, + pub msg_last: *mut crate::msg, + pub msg_cbytes: crate::msglen_t, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + pub msg_stime: crate::time_t, + msg_pad1: c_long, + pub msg_rtime: crate::time_t, + msg_pad2: c_long, + pub msg_ctime: crate::time_t, + msg_pad3: c_long, + msg_pad4: [c_long; 4], } pub struct sockaddr_dl { - pub sdl_len: ::c_uchar, - pub sdl_family: ::sa_family_t, + pub sdl_len: c_uchar, + pub sdl_family: crate::sa_family_t, pub sdl_index: u16, - pub sdl_type: ::c_uchar, - pub sdl_nlen: ::c_uchar, - pub sdl_alen: ::c_uchar, - pub sdl_slen: ::c_uchar, - pub sdl_data: [::c_char; 12], + pub sdl_type: c_uchar, + pub sdl_nlen: c_uchar, + pub sdl_alen: c_uchar, + pub sdl_slen: c_uchar, + pub sdl_data: [c_char; 12], } pub struct sync_t { - __u: ::c_uint, // union - pub __owner: ::c_uint, + __u: c_uint, // union + pub __owner: c_uint, } #[repr(align(4))] @@ -744,15 +746,15 @@ s_no_extra_traits! { } pub struct pthread_rwlock_t { - pub __active: ::c_int, - pub __blockedwriters: ::c_int, - pub __blockedreaders: ::c_int, - pub __heavy: ::c_int, - pub __lock: ::pthread_mutex_t, // union - pub __rcond: ::pthread_cond_t, // union - pub __wcond: ::pthread_cond_t, // union - pub __owner: ::c_uint, - pub __spare: ::c_uint, + pub __active: c_int, + pub __blockedwriters: c_int, + pub __blockedreaders: c_int, + pub __heavy: c_int, + pub __lock: crate::pthread_mutex_t, // union + pub __rcond: crate::pthread_cond_t, // union + pub __wcond: crate::pthread_cond_t, // union + pub __owner: c_uint, + pub __spare: c_uint, } } @@ -768,8 +770,8 @@ cfg_if! { } } impl Eq for sigevent {} - impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sigevent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sigevent") .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) @@ -778,8 +780,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); self.sigev_signo.hash(state); self.sigev_value.hash(state); @@ -799,8 +801,8 @@ cfg_if! { } } impl Eq for sockaddr_un {} - impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_un") .field("sun_len", &self.sun_len) .field("sun_family", &self.sun_family) @@ -809,8 +811,8 @@ cfg_if! { } } - impl ::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { self.sun_len.hash(state); self.sun_family.hash(state); self.sun_path.hash(state); @@ -824,22 +826,22 @@ cfg_if! { } } impl Eq for sigset_t {} - impl ::fmt::Debug for sigset_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sigset_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sigset_t") .field("__val", &self.__val) .finish() } } - impl ::hash::Hash for sigset_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sigset_t { + fn hash(&self, state: &mut H) { self.__val.hash(state); } } // msg - impl ::fmt::Debug for msg { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for msg { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("msg") .field("msg_next", &self.msg_next) .field("msg_type", &self.msg_type) @@ -850,8 +852,8 @@ cfg_if! { } // msqid_ds - impl ::fmt::Debug for msqid_ds { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for msqid_ds { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("msqid_ds") .field("msg_perm", &self.msg_perm) .field("msg_first", &self.msg_first) @@ -868,8 +870,8 @@ cfg_if! { } // sockaddr_dl - impl ::fmt::Debug for sockaddr_dl { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_dl { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_dl") .field("sdl_len", &self.sdl_len) .field("sdl_family", &self.sdl_family) @@ -899,8 +901,8 @@ cfg_if! { } } impl Eq for sockaddr_dl {} - impl ::hash::Hash for sockaddr_dl { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_dl { + fn hash(&self, state: &mut H) { self.sdl_len.hash(state); self.sdl_family.hash(state); self.sdl_index.hash(state); @@ -913,8 +915,8 @@ cfg_if! { } // sync_t - impl ::fmt::Debug for sync_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sync_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sync_t") .field("__owner", &self.__owner) .field("__u", &self.__u) @@ -923,8 +925,8 @@ cfg_if! { } // pthread_barrier_t - impl ::fmt::Debug for pthread_barrier_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_barrier_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_barrier_t") .field("__pad", &self.__pad) .finish() @@ -932,8 +934,8 @@ cfg_if! { } // pthread_rwlock_t - impl ::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pthread_rwlock_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("pthread_rwlock_t") .field("__active", &self.__active) .field("__blockedwriters", &self.__blockedwriters) @@ -949,8 +951,8 @@ cfg_if! { } // syspage_entry - impl ::fmt::Debug for syspage_entry { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for syspage_entry { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("syspage_entry") .field("size", &self.size) .field("total_size", &self.total_size) @@ -1010,8 +1012,8 @@ cfg_if! { impl Eq for utsname {} - impl ::fmt::Debug for utsname { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utsname { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utsname") // FIXME: .field("sysname", &self.sysname) // FIXME: .field("nodename", &self.nodename) @@ -1022,8 +1024,8 @@ cfg_if! { } } - impl ::hash::Hash for utsname { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utsname { + fn hash(&self, state: &mut H) { self.sysname.hash(state); self.nodename.hash(state); self.release.hash(state); @@ -1046,8 +1048,8 @@ cfg_if! { impl Eq for mq_attr {} - impl ::fmt::Debug for mq_attr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mq_attr { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("mq_attr") .field("mq_maxmsg", &self.mq_maxmsg) .field("mq_msgsize", &self.mq_msgsize) @@ -1059,8 +1061,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for mq_attr { + fn hash(&self, state: &mut H) { self.mq_maxmsg.hash(state); self.mq_msgsize.hash(state); self.mq_flags.hash(state); @@ -1086,8 +1088,8 @@ cfg_if! { impl Eq for sockaddr_storage {} - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_len", &self.ss_len) .field("ss_family", &self.ss_family) @@ -1098,8 +1100,8 @@ cfg_if! { } } - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_len.hash(state); self.ss_family.hash(state); self.__ss_pad1.hash(state); @@ -1123,8 +1125,8 @@ cfg_if! { impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_offset", &self.d_offset) @@ -1135,8 +1137,8 @@ cfg_if! { } } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_offset.hash(state); self.d_reclen.hash(state); @@ -1148,8 +1150,8 @@ cfg_if! { } pub const _SYSNAME_SIZE: usize = 256 + 1; -pub const RLIM_INFINITY: ::rlim_t = 0xfffffffffffffffd; -pub const O_LARGEFILE: ::c_int = 0o0100000; +pub const RLIM_INFINITY: crate::rlim_t = 0xfffffffffffffffd; +pub const O_LARGEFILE: c_int = 0o0100000; // intentionally not public, only used for fd_set cfg_if! { @@ -1162,312 +1164,312 @@ cfg_if! { } } -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 32767; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 2; -pub const _IOLBF: ::c_int = 1; - -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; - -pub const F_DUPFD_CLOEXEC: ::c_int = 5; - -pub const SIGTRAP: ::c_int = 5; - -pub const CLOCK_REALTIME: ::clockid_t = 0; -pub const CLOCK_MONOTONIC: ::clockid_t = 2; -pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 3; -pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 4; -pub const TIMER_ABSTIME: ::c_uint = 0x80000000; - -pub const RUSAGE_SELF: ::c_int = 0; - -pub const F_OK: ::c_int = 0; -pub const X_OK: ::c_int = 1; -pub const W_OK: ::c_int = 2; -pub const R_OK: ::c_int = 4; - -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; - -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSEGV: ::c_int = 11; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; - -pub const PROT_NONE: ::c_int = 0x00000000; -pub const PROT_READ: ::c_int = 0x00000100; -pub const PROT_WRITE: ::c_int = 0x00000200; -pub const PROT_EXEC: ::c_int = 0x00000400; - -pub const MAP_FILE: ::c_int = 0; -pub const MAP_SHARED: ::c_int = 1; -pub const MAP_PRIVATE: ::c_int = 2; -pub const MAP_FIXED: ::c_int = 0x10; - -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; - -pub const MS_ASYNC: ::c_int = 1; -pub const MS_INVALIDATE: ::c_int = 4; -pub const MS_SYNC: ::c_int = 2; - -pub const SCM_RIGHTS: ::c_int = 0x01; -pub const SCM_TIMESTAMP: ::c_int = 0x02; -pub const SCM_CREDS: ::c_int = 0x04; - -pub const MAP_TYPE: ::c_int = 0x3; - -pub const IFF_UP: ::c_int = 0x00000001; -pub const IFF_BROADCAST: ::c_int = 0x00000002; -pub const IFF_DEBUG: ::c_int = 0x00000004; -pub const IFF_LOOPBACK: ::c_int = 0x00000008; -pub const IFF_POINTOPOINT: ::c_int = 0x00000010; -pub const IFF_NOTRAILERS: ::c_int = 0x00000020; -pub const IFF_RUNNING: ::c_int = 0x00000040; -pub const IFF_NOARP: ::c_int = 0x00000080; -pub const IFF_PROMISC: ::c_int = 0x00000100; -pub const IFF_ALLMULTI: ::c_int = 0x00000200; -pub const IFF_MULTICAST: ::c_int = 0x00008000; - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_UNIX: ::c_int = AF_LOCAL; -pub const AF_LOCAL: ::c_int = 1; -pub const AF_INET: ::c_int = 2; -pub const AF_IPX: ::c_int = 23; -pub const AF_APPLETALK: ::c_int = 16; -pub const AF_INET6: ::c_int = 24; -pub const AF_ROUTE: ::c_int = 17; -pub const AF_SNA: ::c_int = 11; -pub const AF_BLUETOOTH: ::c_int = 31; -pub const AF_ISDN: ::c_int = 26; - -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_UNIX: ::c_int = PF_LOCAL; -pub const PF_LOCAL: ::c_int = AF_LOCAL; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_IPX: ::c_int = AF_IPX; -pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -pub const PF_INET6: ::c_int = AF_INET6; -pub const pseudo_AF_KEY: ::c_int = 29; -pub const PF_KEY: ::c_int = pseudo_AF_KEY; -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_SNA: ::c_int = AF_SNA; - -pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -pub const PF_ISDN: ::c_int = AF_ISDN; - -pub const SOMAXCONN: ::c_int = 128; - -pub const MSG_OOB: ::c_int = 0x0001; -pub const MSG_PEEK: ::c_int = 0x0002; -pub const MSG_DONTROUTE: ::c_int = 0x0004; -pub const MSG_CTRUNC: ::c_int = 0x0020; -pub const MSG_TRUNC: ::c_int = 0x0010; -pub const MSG_DONTWAIT: ::c_int = 0x0080; -pub const MSG_EOR: ::c_int = 0x0008; -pub const MSG_WAITALL: ::c_int = 0x0040; -pub const MSG_NOSIGNAL: ::c_int = 0x0800; -pub const MSG_WAITFORONE: ::c_int = 0x2000; - -pub const IP_TOS: ::c_int = 3; -pub const IP_TTL: ::c_int = 4; -pub const IP_HDRINCL: ::c_int = 2; -pub const IP_OPTIONS: ::c_int = 1; -pub const IP_RECVOPTS: ::c_int = 5; -pub const IP_RETOPTS: ::c_int = 8; -pub const IP_PKTINFO: ::c_int = 25; -pub const IP_IPSEC_POLICY_COMPAT: ::c_int = 22; -pub const IP_MULTICAST_IF: ::c_int = 9; -pub const IP_MULTICAST_TTL: ::c_int = 10; -pub const IP_MULTICAST_LOOP: ::c_int = 11; -pub const IP_ADD_MEMBERSHIP: ::c_int = 12; -pub const IP_DROP_MEMBERSHIP: ::c_int = 13; -pub const IP_DEFAULT_MULTICAST_TTL: ::c_int = 1; -pub const IP_DEFAULT_MULTICAST_LOOP: ::c_int = 1; - -pub const IPPROTO_HOPOPTS: ::c_int = 0; -pub const IPPROTO_IGMP: ::c_int = 2; -pub const IPPROTO_IPIP: ::c_int = 4; -pub const IPPROTO_EGP: ::c_int = 8; -pub const IPPROTO_PUP: ::c_int = 12; -pub const IPPROTO_IDP: ::c_int = 22; -pub const IPPROTO_TP: ::c_int = 29; -pub const IPPROTO_ROUTING: ::c_int = 43; -pub const IPPROTO_FRAGMENT: ::c_int = 44; -pub const IPPROTO_RSVP: ::c_int = 46; -pub const IPPROTO_GRE: ::c_int = 47; -pub const IPPROTO_ESP: ::c_int = 50; -pub const IPPROTO_AH: ::c_int = 51; -pub const IPPROTO_NONE: ::c_int = 59; -pub const IPPROTO_DSTOPTS: ::c_int = 60; -pub const IPPROTO_ENCAP: ::c_int = 98; -pub const IPPROTO_PIM: ::c_int = 103; -pub const IPPROTO_SCTP: ::c_int = 132; -pub const IPPROTO_RAW: ::c_int = 255; -pub const IPPROTO_MAX: ::c_int = 256; -pub const IPPROTO_CARP: ::c_int = 112; -pub const IPPROTO_DIVERT: ::c_int = 259; -pub const IPPROTO_DONE: ::c_int = 257; -pub const IPPROTO_EON: ::c_int = 80; -pub const IPPROTO_ETHERIP: ::c_int = 97; -pub const IPPROTO_GGP: ::c_int = 3; -pub const IPPROTO_IPCOMP: ::c_int = 108; -pub const IPPROTO_MOBILE: ::c_int = 55; - -pub const IPV6_RTHDR_LOOSE: ::c_int = 0; -pub const IPV6_RTHDR_STRICT: ::c_int = 1; -pub const IPV6_UNICAST_HOPS: ::c_int = 4; -pub const IPV6_MULTICAST_IF: ::c_int = 9; -pub const IPV6_MULTICAST_HOPS: ::c_int = 10; -pub const IPV6_MULTICAST_LOOP: ::c_int = 11; -pub const IPV6_JOIN_GROUP: ::c_int = 12; -pub const IPV6_LEAVE_GROUP: ::c_int = 13; -pub const IPV6_CHECKSUM: ::c_int = 26; -pub const IPV6_V6ONLY: ::c_int = 27; -pub const IPV6_IPSEC_POLICY_COMPAT: ::c_int = 28; -pub const IPV6_RTHDRDSTOPTS: ::c_int = 35; -pub const IPV6_RECVPKTINFO: ::c_int = 36; -pub const IPV6_RECVHOPLIMIT: ::c_int = 37; -pub const IPV6_RECVRTHDR: ::c_int = 38; -pub const IPV6_RECVHOPOPTS: ::c_int = 39; -pub const IPV6_RECVDSTOPTS: ::c_int = 40; -pub const IPV6_RECVPATHMTU: ::c_int = 43; -pub const IPV6_PATHMTU: ::c_int = 44; -pub const IPV6_PKTINFO: ::c_int = 46; -pub const IPV6_HOPLIMIT: ::c_int = 47; -pub const IPV6_NEXTHOP: ::c_int = 48; -pub const IPV6_HOPOPTS: ::c_int = 49; -pub const IPV6_DSTOPTS: ::c_int = 50; -pub const IPV6_RECVTCLASS: ::c_int = 57; -pub const IPV6_TCLASS: ::c_int = 61; -pub const IPV6_DONTFRAG: ::c_int = 62; - -pub const TCP_NODELAY: ::c_int = 0x01; -pub const TCP_MAXSEG: ::c_int = 0x02; -pub const TCP_MD5SIG: ::c_int = 0x10; -pub const TCP_KEEPALIVE: ::c_int = 0x04; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const LOCK_SH: ::c_int = 0x1; -pub const LOCK_EX: ::c_int = 0x2; -pub const LOCK_NB: ::c_int = 0x4; -pub const LOCK_UN: ::c_int = 0x8; - -pub const SS_ONSTACK: ::c_int = 1; -pub const SS_DISABLE: ::c_int = 2; - -pub const PATH_MAX: ::c_int = 1024; - -pub const UIO_MAXIOV: ::c_int = 1024; +pub const EXIT_FAILURE: c_int = 1; +pub const EXIT_SUCCESS: c_int = 0; +pub const RAND_MAX: c_int = 32767; +pub const EOF: c_int = -1; +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; +pub const _IOFBF: c_int = 0; +pub const _IONBF: c_int = 2; +pub const _IOLBF: c_int = 1; + +pub const F_DUPFD: c_int = 0; +pub const F_GETFD: c_int = 1; +pub const F_SETFD: c_int = 2; +pub const F_GETFL: c_int = 3; +pub const F_SETFL: c_int = 4; + +pub const F_DUPFD_CLOEXEC: c_int = 5; + +pub const SIGTRAP: c_int = 5; + +pub const CLOCK_REALTIME: crate::clockid_t = 0; +pub const CLOCK_MONOTONIC: crate::clockid_t = 2; +pub const CLOCK_PROCESS_CPUTIME_ID: crate::clockid_t = 3; +pub const CLOCK_THREAD_CPUTIME_ID: crate::clockid_t = 4; +pub const TIMER_ABSTIME: c_uint = 0x80000000; + +pub const RUSAGE_SELF: c_int = 0; + +pub const F_OK: c_int = 0; +pub const X_OK: c_int = 1; +pub const W_OK: c_int = 2; +pub const R_OK: c_int = 4; + +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; + +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGABRT: c_int = 6; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGSEGV: c_int = 11; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; + +pub const PROT_NONE: c_int = 0x00000000; +pub const PROT_READ: c_int = 0x00000100; +pub const PROT_WRITE: c_int = 0x00000200; +pub const PROT_EXEC: c_int = 0x00000400; + +pub const MAP_FILE: c_int = 0; +pub const MAP_SHARED: c_int = 1; +pub const MAP_PRIVATE: c_int = 2; +pub const MAP_FIXED: c_int = 0x10; + +pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; + +pub const MS_ASYNC: c_int = 1; +pub const MS_INVALIDATE: c_int = 4; +pub const MS_SYNC: c_int = 2; + +pub const SCM_RIGHTS: c_int = 0x01; +pub const SCM_TIMESTAMP: c_int = 0x02; +pub const SCM_CREDS: c_int = 0x04; + +pub const MAP_TYPE: c_int = 0x3; + +pub const IFF_UP: c_int = 0x00000001; +pub const IFF_BROADCAST: c_int = 0x00000002; +pub const IFF_DEBUG: c_int = 0x00000004; +pub const IFF_LOOPBACK: c_int = 0x00000008; +pub const IFF_POINTOPOINT: c_int = 0x00000010; +pub const IFF_NOTRAILERS: c_int = 0x00000020; +pub const IFF_RUNNING: c_int = 0x00000040; +pub const IFF_NOARP: c_int = 0x00000080; +pub const IFF_PROMISC: c_int = 0x00000100; +pub const IFF_ALLMULTI: c_int = 0x00000200; +pub const IFF_MULTICAST: c_int = 0x00008000; + +pub const AF_UNSPEC: c_int = 0; +pub const AF_UNIX: c_int = AF_LOCAL; +pub const AF_LOCAL: c_int = 1; +pub const AF_INET: c_int = 2; +pub const AF_IPX: c_int = 23; +pub const AF_APPLETALK: c_int = 16; +pub const AF_INET6: c_int = 24; +pub const AF_ROUTE: c_int = 17; +pub const AF_SNA: c_int = 11; +pub const AF_BLUETOOTH: c_int = 31; +pub const AF_ISDN: c_int = 26; + +pub const PF_UNSPEC: c_int = AF_UNSPEC; +pub const PF_UNIX: c_int = PF_LOCAL; +pub const PF_LOCAL: c_int = AF_LOCAL; +pub const PF_INET: c_int = AF_INET; +pub const PF_IPX: c_int = AF_IPX; +pub const PF_APPLETALK: c_int = AF_APPLETALK; +pub const PF_INET6: c_int = AF_INET6; +pub const pseudo_AF_KEY: c_int = 29; +pub const PF_KEY: c_int = pseudo_AF_KEY; +pub const PF_ROUTE: c_int = AF_ROUTE; +pub const PF_SNA: c_int = AF_SNA; + +pub const PF_BLUETOOTH: c_int = AF_BLUETOOTH; +pub const PF_ISDN: c_int = AF_ISDN; + +pub const SOMAXCONN: c_int = 128; + +pub const MSG_OOB: c_int = 0x0001; +pub const MSG_PEEK: c_int = 0x0002; +pub const MSG_DONTROUTE: c_int = 0x0004; +pub const MSG_CTRUNC: c_int = 0x0020; +pub const MSG_TRUNC: c_int = 0x0010; +pub const MSG_DONTWAIT: c_int = 0x0080; +pub const MSG_EOR: c_int = 0x0008; +pub const MSG_WAITALL: c_int = 0x0040; +pub const MSG_NOSIGNAL: c_int = 0x0800; +pub const MSG_WAITFORONE: c_int = 0x2000; + +pub const IP_TOS: c_int = 3; +pub const IP_TTL: c_int = 4; +pub const IP_HDRINCL: c_int = 2; +pub const IP_OPTIONS: c_int = 1; +pub const IP_RECVOPTS: c_int = 5; +pub const IP_RETOPTS: c_int = 8; +pub const IP_PKTINFO: c_int = 25; +pub const IP_IPSEC_POLICY_COMPAT: c_int = 22; +pub const IP_MULTICAST_IF: c_int = 9; +pub const IP_MULTICAST_TTL: c_int = 10; +pub const IP_MULTICAST_LOOP: c_int = 11; +pub const IP_ADD_MEMBERSHIP: c_int = 12; +pub const IP_DROP_MEMBERSHIP: c_int = 13; +pub const IP_DEFAULT_MULTICAST_TTL: c_int = 1; +pub const IP_DEFAULT_MULTICAST_LOOP: c_int = 1; + +pub const IPPROTO_HOPOPTS: c_int = 0; +pub const IPPROTO_IGMP: c_int = 2; +pub const IPPROTO_IPIP: c_int = 4; +pub const IPPROTO_EGP: c_int = 8; +pub const IPPROTO_PUP: c_int = 12; +pub const IPPROTO_IDP: c_int = 22; +pub const IPPROTO_TP: c_int = 29; +pub const IPPROTO_ROUTING: c_int = 43; +pub const IPPROTO_FRAGMENT: c_int = 44; +pub const IPPROTO_RSVP: c_int = 46; +pub const IPPROTO_GRE: c_int = 47; +pub const IPPROTO_ESP: c_int = 50; +pub const IPPROTO_AH: c_int = 51; +pub const IPPROTO_NONE: c_int = 59; +pub const IPPROTO_DSTOPTS: c_int = 60; +pub const IPPROTO_ENCAP: c_int = 98; +pub const IPPROTO_PIM: c_int = 103; +pub const IPPROTO_SCTP: c_int = 132; +pub const IPPROTO_RAW: c_int = 255; +pub const IPPROTO_MAX: c_int = 256; +pub const IPPROTO_CARP: c_int = 112; +pub const IPPROTO_DIVERT: c_int = 259; +pub const IPPROTO_DONE: c_int = 257; +pub const IPPROTO_EON: c_int = 80; +pub const IPPROTO_ETHERIP: c_int = 97; +pub const IPPROTO_GGP: c_int = 3; +pub const IPPROTO_IPCOMP: c_int = 108; +pub const IPPROTO_MOBILE: c_int = 55; + +pub const IPV6_RTHDR_LOOSE: c_int = 0; +pub const IPV6_RTHDR_STRICT: c_int = 1; +pub const IPV6_UNICAST_HOPS: c_int = 4; +pub const IPV6_MULTICAST_IF: c_int = 9; +pub const IPV6_MULTICAST_HOPS: c_int = 10; +pub const IPV6_MULTICAST_LOOP: c_int = 11; +pub const IPV6_JOIN_GROUP: c_int = 12; +pub const IPV6_LEAVE_GROUP: c_int = 13; +pub const IPV6_CHECKSUM: c_int = 26; +pub const IPV6_V6ONLY: c_int = 27; +pub const IPV6_IPSEC_POLICY_COMPAT: c_int = 28; +pub const IPV6_RTHDRDSTOPTS: c_int = 35; +pub const IPV6_RECVPKTINFO: c_int = 36; +pub const IPV6_RECVHOPLIMIT: c_int = 37; +pub const IPV6_RECVRTHDR: c_int = 38; +pub const IPV6_RECVHOPOPTS: c_int = 39; +pub const IPV6_RECVDSTOPTS: c_int = 40; +pub const IPV6_RECVPATHMTU: c_int = 43; +pub const IPV6_PATHMTU: c_int = 44; +pub const IPV6_PKTINFO: c_int = 46; +pub const IPV6_HOPLIMIT: c_int = 47; +pub const IPV6_NEXTHOP: c_int = 48; +pub const IPV6_HOPOPTS: c_int = 49; +pub const IPV6_DSTOPTS: c_int = 50; +pub const IPV6_RECVTCLASS: c_int = 57; +pub const IPV6_TCLASS: c_int = 61; +pub const IPV6_DONTFRAG: c_int = 62; + +pub const TCP_NODELAY: c_int = 0x01; +pub const TCP_MAXSEG: c_int = 0x02; +pub const TCP_MD5SIG: c_int = 0x10; +pub const TCP_KEEPALIVE: c_int = 0x04; + +pub const SHUT_RD: c_int = 0; +pub const SHUT_WR: c_int = 1; +pub const SHUT_RDWR: c_int = 2; + +pub const LOCK_SH: c_int = 0x1; +pub const LOCK_EX: c_int = 0x2; +pub const LOCK_NB: c_int = 0x4; +pub const LOCK_UN: c_int = 0x8; + +pub const SS_ONSTACK: c_int = 1; +pub const SS_DISABLE: c_int = 2; + +pub const PATH_MAX: c_int = 1024; + +pub const UIO_MAXIOV: c_int = 1024; pub const FD_SETSIZE: usize = 256; -pub const TCIOFF: ::c_int = 0x0002; -pub const TCION: ::c_int = 0x0003; -pub const TCOOFF: ::c_int = 0x0000; -pub const TCOON: ::c_int = 0x0001; -pub const TCIFLUSH: ::c_int = 0; -pub const TCOFLUSH: ::c_int = 1; -pub const TCIOFLUSH: ::c_int = 2; -pub const NL0: ::tcflag_t = 0x000; -pub const NL1: ::tcflag_t = 0x100; -pub const TAB0: ::tcflag_t = 0x0000; -pub const CR0: ::tcflag_t = 0x000; -pub const FF0: ::tcflag_t = 0x0000; -pub const BS0: ::tcflag_t = 0x0000; -pub const VT0: ::tcflag_t = 0x0000; +pub const TCIOFF: c_int = 0x0002; +pub const TCION: c_int = 0x0003; +pub const TCOOFF: c_int = 0x0000; +pub const TCOON: c_int = 0x0001; +pub const TCIFLUSH: c_int = 0; +pub const TCOFLUSH: c_int = 1; +pub const TCIOFLUSH: c_int = 2; +pub const NL0: crate::tcflag_t = 0x000; +pub const NL1: crate::tcflag_t = 0x100; +pub const TAB0: crate::tcflag_t = 0x0000; +pub const CR0: crate::tcflag_t = 0x000; +pub const FF0: crate::tcflag_t = 0x0000; +pub const BS0: crate::tcflag_t = 0x0000; +pub const VT0: crate::tcflag_t = 0x0000; pub const VERASE: usize = 2; pub const VKILL: usize = 3; pub const VINTR: usize = 0; pub const VQUIT: usize = 1; pub const VLNEXT: usize = 15; -pub const IGNBRK: ::tcflag_t = 0x00000001; -pub const BRKINT: ::tcflag_t = 0x00000002; -pub const IGNPAR: ::tcflag_t = 0x00000004; -pub const PARMRK: ::tcflag_t = 0x00000008; -pub const INPCK: ::tcflag_t = 0x00000010; -pub const ISTRIP: ::tcflag_t = 0x00000020; -pub const INLCR: ::tcflag_t = 0x00000040; -pub const IGNCR: ::tcflag_t = 0x00000080; -pub const ICRNL: ::tcflag_t = 0x00000100; -pub const IXANY: ::tcflag_t = 0x00000800; -pub const IMAXBEL: ::tcflag_t = 0x00002000; -pub const OPOST: ::tcflag_t = 0x00000001; -pub const CS5: ::tcflag_t = 0x00; -pub const ECHO: ::tcflag_t = 0x00000008; -pub const OCRNL: ::tcflag_t = 0x00000008; -pub const ONOCR: ::tcflag_t = 0x00000010; -pub const ONLRET: ::tcflag_t = 0x00000020; -pub const OFILL: ::tcflag_t = 0x00000040; -pub const OFDEL: ::tcflag_t = 0x00000080; - -pub const WNOHANG: ::c_int = 0x0040; -pub const WUNTRACED: ::c_int = 0x0004; -pub const WSTOPPED: ::c_int = WUNTRACED; -pub const WEXITED: ::c_int = 0x0001; -pub const WCONTINUED: ::c_int = 0x0008; -pub const WNOWAIT: ::c_int = 0x0080; -pub const WTRAPPED: ::c_int = 0x0002; - -pub const RTLD_LOCAL: ::c_int = 0x0200; -pub const RTLD_LAZY: ::c_int = 0x0001; - -pub const POSIX_FADV_NORMAL: ::c_int = 0; -pub const POSIX_FADV_RANDOM: ::c_int = 2; -pub const POSIX_FADV_SEQUENTIAL: ::c_int = 1; -pub const POSIX_FADV_WILLNEED: ::c_int = 3; - -pub const AT_FDCWD: ::c_int = -100; -pub const AT_EACCESS: ::c_int = 0x0001; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x0002; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x0004; -pub const AT_REMOVEDIR: ::c_int = 0x0008; - -pub const LOG_CRON: ::c_int = 9 << 3; -pub const LOG_AUTHPRIV: ::c_int = 10 << 3; -pub const LOG_FTP: ::c_int = 11 << 3; -pub const LOG_PERROR: ::c_int = 0x20; +pub const IGNBRK: crate::tcflag_t = 0x00000001; +pub const BRKINT: crate::tcflag_t = 0x00000002; +pub const IGNPAR: crate::tcflag_t = 0x00000004; +pub const PARMRK: crate::tcflag_t = 0x00000008; +pub const INPCK: crate::tcflag_t = 0x00000010; +pub const ISTRIP: crate::tcflag_t = 0x00000020; +pub const INLCR: crate::tcflag_t = 0x00000040; +pub const IGNCR: crate::tcflag_t = 0x00000080; +pub const ICRNL: crate::tcflag_t = 0x00000100; +pub const IXANY: crate::tcflag_t = 0x00000800; +pub const IMAXBEL: crate::tcflag_t = 0x00002000; +pub const OPOST: crate::tcflag_t = 0x00000001; +pub const CS5: crate::tcflag_t = 0x00; +pub const ECHO: crate::tcflag_t = 0x00000008; +pub const OCRNL: crate::tcflag_t = 0x00000008; +pub const ONOCR: crate::tcflag_t = 0x00000010; +pub const ONLRET: crate::tcflag_t = 0x00000020; +pub const OFILL: crate::tcflag_t = 0x00000040; +pub const OFDEL: crate::tcflag_t = 0x00000080; + +pub const WNOHANG: c_int = 0x0040; +pub const WUNTRACED: c_int = 0x0004; +pub const WSTOPPED: c_int = WUNTRACED; +pub const WEXITED: c_int = 0x0001; +pub const WCONTINUED: c_int = 0x0008; +pub const WNOWAIT: c_int = 0x0080; +pub const WTRAPPED: c_int = 0x0002; + +pub const RTLD_LOCAL: c_int = 0x0200; +pub const RTLD_LAZY: c_int = 0x0001; + +pub const POSIX_FADV_NORMAL: c_int = 0; +pub const POSIX_FADV_RANDOM: c_int = 2; +pub const POSIX_FADV_SEQUENTIAL: c_int = 1; +pub const POSIX_FADV_WILLNEED: c_int = 3; + +pub const AT_FDCWD: c_int = -100; +pub const AT_EACCESS: c_int = 0x0001; +pub const AT_SYMLINK_NOFOLLOW: c_int = 0x0002; +pub const AT_SYMLINK_FOLLOW: c_int = 0x0004; +pub const AT_REMOVEDIR: c_int = 0x0008; + +pub const LOG_CRON: c_int = 9 << 3; +pub const LOG_AUTHPRIV: c_int = 10 << 3; +pub const LOG_FTP: c_int = 11 << 3; +pub const LOG_PERROR: c_int = 0x20; pub const PIPE_BUF: usize = 5120; -pub const CLD_EXITED: ::c_int = 1; -pub const CLD_KILLED: ::c_int = 2; -pub const CLD_DUMPED: ::c_int = 3; -pub const CLD_TRAPPED: ::c_int = 4; -pub const CLD_STOPPED: ::c_int = 5; -pub const CLD_CONTINUED: ::c_int = 6; +pub const CLD_EXITED: c_int = 1; +pub const CLD_KILLED: c_int = 2; +pub const CLD_DUMPED: c_int = 3; +pub const CLD_TRAPPED: c_int = 4; +pub const CLD_STOPPED: c_int = 5; +pub const CLD_CONTINUED: c_int = 6; pub const UTIME_OMIT: c_long = 0x40000002; pub const UTIME_NOW: c_long = 0x40000001; -pub const POLLIN: ::c_short = POLLRDNORM | POLLRDBAND; -pub const POLLPRI: ::c_short = 0x0008; -pub const POLLOUT: ::c_short = 0x0002; -pub const POLLERR: ::c_short = 0x0020; -pub const POLLHUP: ::c_short = 0x0040; -pub const POLLNVAL: ::c_short = 0x1000; -pub const POLLRDNORM: ::c_short = 0x0001; -pub const POLLRDBAND: ::c_short = 0x0004; +pub const POLLIN: c_short = POLLRDNORM | POLLRDBAND; +pub const POLLPRI: c_short = 0x0008; +pub const POLLOUT: c_short = 0x0002; +pub const POLLERR: c_short = 0x0020; +pub const POLLHUP: c_short = 0x0040; +pub const POLLNVAL: c_short = 0x1000; +pub const POLLRDNORM: c_short = 0x0001; +pub const POLLRDBAND: c_short = 0x0004; pub const IPTOS_LOWDELAY: u8 = 0x10; pub const IPTOS_THROUGHPUT: u8 = 0x08; @@ -1515,123 +1517,123 @@ pub const ARPHRD_IEEE802: u16 = 6; pub const ARPHRD_ARCNET: u16 = 7; pub const ARPHRD_IEEE1394: u16 = 24; -pub const SOL_SOCKET: ::c_int = 0xffff; - -pub const SO_DEBUG: ::c_int = 0x0001; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_TYPE: ::c_int = 0x1008; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_RCVLOWAT: ::c_int = 0x1004; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_BINDTODEVICE: ::c_int = 0x0800; -pub const SO_TIMESTAMP: ::c_int = 0x0400; -pub const SO_ACCEPTCONN: ::c_int = 0x0002; - -pub const TIOCM_LE: ::c_int = 0x0100; -pub const TIOCM_DTR: ::c_int = 0x0001; -pub const TIOCM_RTS: ::c_int = 0x0002; -pub const TIOCM_ST: ::c_int = 0x0200; -pub const TIOCM_SR: ::c_int = 0x0400; -pub const TIOCM_CTS: ::c_int = 0x1000; -pub const TIOCM_CAR: ::c_int = TIOCM_CD; -pub const TIOCM_CD: ::c_int = 0x8000; -pub const TIOCM_RNG: ::c_int = TIOCM_RI; -pub const TIOCM_RI: ::c_int = 0x4000; -pub const TIOCM_DSR: ::c_int = 0x2000; - -pub const SCHED_OTHER: ::c_int = 3; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; - -pub const IPC_PRIVATE: ::key_t = 0; - -pub const IPC_CREAT: ::c_int = 0o001000; -pub const IPC_EXCL: ::c_int = 0o002000; -pub const IPC_NOWAIT: ::c_int = 0o004000; - -pub const IPC_RMID: ::c_int = 0; -pub const IPC_SET: ::c_int = 1; -pub const IPC_STAT: ::c_int = 2; - -pub const MSG_NOERROR: ::c_int = 0o010000; - -pub const LOG_NFACILITIES: ::c_int = 24; - -pub const SEM_FAILED: *mut ::sem_t = 0xFFFFFFFFFFFFFFFF as *mut sem_t; - -pub const AI_PASSIVE: ::c_int = 0x00000001; -pub const AI_CANONNAME: ::c_int = 0x00000002; -pub const AI_NUMERICHOST: ::c_int = 0x00000004; - -pub const AI_NUMERICSERV: ::c_int = 0x00000008; - -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_NONAME: ::c_int = 8; -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_NODATA: ::c_int = 7; -pub const EAI_FAMILY: ::c_int = 5; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_MEMORY: ::c_int = 6; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_OVERFLOW: ::c_int = 14; - -pub const NI_NUMERICHOST: ::c_int = 0x00000002; -pub const NI_NUMERICSERV: ::c_int = 0x00000008; -pub const NI_NOFQDN: ::c_int = 0x00000001; -pub const NI_NAMEREQD: ::c_int = 0x00000004; -pub const NI_DGRAM: ::c_int = 0x00000010; - -pub const AIO_CANCELED: ::c_int = 0; -pub const AIO_NOTCANCELED: ::c_int = 2; -pub const AIO_ALLDONE: ::c_int = 1; -pub const LIO_READ: ::c_int = 1; -pub const LIO_WRITE: ::c_int = 2; -pub const LIO_NOP: ::c_int = 0; -pub const LIO_WAIT: ::c_int = 1; -pub const LIO_NOWAIT: ::c_int = 0; - -pub const ITIMER_REAL: ::c_int = 0; -pub const ITIMER_VIRTUAL: ::c_int = 1; -pub const ITIMER_PROF: ::c_int = 2; +pub const SOL_SOCKET: c_int = 0xffff; + +pub const SO_DEBUG: c_int = 0x0001; +pub const SO_REUSEADDR: c_int = 0x0004; +pub const SO_TYPE: c_int = 0x1008; +pub const SO_ERROR: c_int = 0x1007; +pub const SO_DONTROUTE: c_int = 0x0010; +pub const SO_BROADCAST: c_int = 0x0020; +pub const SO_SNDBUF: c_int = 0x1001; +pub const SO_RCVBUF: c_int = 0x1002; +pub const SO_KEEPALIVE: c_int = 0x0008; +pub const SO_OOBINLINE: c_int = 0x0100; +pub const SO_LINGER: c_int = 0x0080; +pub const SO_REUSEPORT: c_int = 0x0200; +pub const SO_RCVLOWAT: c_int = 0x1004; +pub const SO_SNDLOWAT: c_int = 0x1003; +pub const SO_RCVTIMEO: c_int = 0x1006; +pub const SO_SNDTIMEO: c_int = 0x1005; +pub const SO_BINDTODEVICE: c_int = 0x0800; +pub const SO_TIMESTAMP: c_int = 0x0400; +pub const SO_ACCEPTCONN: c_int = 0x0002; + +pub const TIOCM_LE: c_int = 0x0100; +pub const TIOCM_DTR: c_int = 0x0001; +pub const TIOCM_RTS: c_int = 0x0002; +pub const TIOCM_ST: c_int = 0x0200; +pub const TIOCM_SR: c_int = 0x0400; +pub const TIOCM_CTS: c_int = 0x1000; +pub const TIOCM_CAR: c_int = TIOCM_CD; +pub const TIOCM_CD: c_int = 0x8000; +pub const TIOCM_RNG: c_int = TIOCM_RI; +pub const TIOCM_RI: c_int = 0x4000; +pub const TIOCM_DSR: c_int = 0x2000; + +pub const SCHED_OTHER: c_int = 3; +pub const SCHED_FIFO: c_int = 1; +pub const SCHED_RR: c_int = 2; + +pub const IPC_PRIVATE: crate::key_t = 0; + +pub const IPC_CREAT: c_int = 0o001000; +pub const IPC_EXCL: c_int = 0o002000; +pub const IPC_NOWAIT: c_int = 0o004000; + +pub const IPC_RMID: c_int = 0; +pub const IPC_SET: c_int = 1; +pub const IPC_STAT: c_int = 2; + +pub const MSG_NOERROR: c_int = 0o010000; + +pub const LOG_NFACILITIES: c_int = 24; + +pub const SEM_FAILED: *mut crate::sem_t = 0xFFFFFFFFFFFFFFFF as *mut sem_t; + +pub const AI_PASSIVE: c_int = 0x00000001; +pub const AI_CANONNAME: c_int = 0x00000002; +pub const AI_NUMERICHOST: c_int = 0x00000004; + +pub const AI_NUMERICSERV: c_int = 0x00000008; + +pub const EAI_BADFLAGS: c_int = 3; +pub const EAI_NONAME: c_int = 8; +pub const EAI_AGAIN: c_int = 2; +pub const EAI_FAIL: c_int = 4; +pub const EAI_NODATA: c_int = 7; +pub const EAI_FAMILY: c_int = 5; +pub const EAI_SOCKTYPE: c_int = 10; +pub const EAI_SERVICE: c_int = 9; +pub const EAI_MEMORY: c_int = 6; +pub const EAI_SYSTEM: c_int = 11; +pub const EAI_OVERFLOW: c_int = 14; + +pub const NI_NUMERICHOST: c_int = 0x00000002; +pub const NI_NUMERICSERV: c_int = 0x00000008; +pub const NI_NOFQDN: c_int = 0x00000001; +pub const NI_NAMEREQD: c_int = 0x00000004; +pub const NI_DGRAM: c_int = 0x00000010; + +pub const AIO_CANCELED: c_int = 0; +pub const AIO_NOTCANCELED: c_int = 2; +pub const AIO_ALLDONE: c_int = 1; +pub const LIO_READ: c_int = 1; +pub const LIO_WRITE: c_int = 2; +pub const LIO_NOP: c_int = 0; +pub const LIO_WAIT: c_int = 1; +pub const LIO_NOWAIT: c_int = 0; + +pub const ITIMER_REAL: c_int = 0; +pub const ITIMER_VIRTUAL: c_int = 1; +pub const ITIMER_PROF: c_int = 2; // DIFF(main): changed to `c_short` in f62eb023ab -pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x00000010; -pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x00000001; -pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x00000004; -pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x00000002; -pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x00000400; -pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x00000040; +pub const POSIX_SPAWN_RESETIDS: c_int = 0x00000010; +pub const POSIX_SPAWN_SETPGROUP: c_int = 0x00000001; +pub const POSIX_SPAWN_SETSIGDEF: c_int = 0x00000004; +pub const POSIX_SPAWN_SETSIGMASK: c_int = 0x00000002; +pub const POSIX_SPAWN_SETSCHEDPARAM: c_int = 0x00000400; +pub const POSIX_SPAWN_SETSCHEDULER: c_int = 0x00000040; pub const IPTOS_ECN_NOT_ECT: u8 = 0x00; -pub const RTF_UP: ::c_ushort = 0x0001; -pub const RTF_GATEWAY: ::c_ushort = 0x0002; +pub const RTF_UP: c_ushort = 0x0001; +pub const RTF_GATEWAY: c_ushort = 0x0002; -pub const RTF_HOST: ::c_ushort = 0x0004; -pub const RTF_DYNAMIC: ::c_ushort = 0x0010; -pub const RTF_MODIFIED: ::c_ushort = 0x0020; -pub const RTF_REJECT: ::c_ushort = 0x0008; -pub const RTF_STATIC: ::c_ushort = 0x0800; -pub const RTF_XRESOLVE: ::c_ushort = 0x0200; +pub const RTF_HOST: c_ushort = 0x0004; +pub const RTF_DYNAMIC: c_ushort = 0x0010; +pub const RTF_MODIFIED: c_ushort = 0x0020; +pub const RTF_REJECT: c_ushort = 0x0008; +pub const RTF_STATIC: c_ushort = 0x0800; +pub const RTF_XRESOLVE: c_ushort = 0x0200; pub const RTF_BROADCAST: u32 = 0x80000; pub const RTM_NEWADDR: u16 = 0xc; pub const RTM_DELADDR: u16 = 0xd; -pub const RTA_DST: ::c_ushort = 0x1; -pub const RTA_GATEWAY: ::c_ushort = 0x2; +pub const RTA_DST: c_ushort = 0x1; +pub const RTA_GATEWAY: c_ushort = 0x2; -pub const UDP_ENCAP: ::c_int = 100; +pub const UDP_ENCAP: c_int = 100; pub const IN_ACCESS: u32 = 0x00000001; pub const IN_MODIFY: u32 = 0x00000002; @@ -1656,540 +1658,540 @@ pub const IN_DONT_FOLLOW: u32 = 0x02000000; pub const IN_ISDIR: u32 = 0x40000000; pub const IN_ONESHOT: u32 = 0x80000000; -pub const REG_EXTENDED: ::c_int = 0o0001; -pub const REG_ICASE: ::c_int = 0o0002; -pub const REG_NEWLINE: ::c_int = 0o0010; -pub const REG_NOSUB: ::c_int = 0o0004; - -pub const REG_NOTBOL: ::c_int = 0o00001; -pub const REG_NOTEOL: ::c_int = 0o00002; - -pub const REG_ENOSYS: ::c_int = 17; -pub const REG_NOMATCH: ::c_int = 1; -pub const REG_BADPAT: ::c_int = 2; -pub const REG_ECOLLATE: ::c_int = 3; -pub const REG_ECTYPE: ::c_int = 4; -pub const REG_EESCAPE: ::c_int = 5; -pub const REG_ESUBREG: ::c_int = 6; -pub const REG_EBRACK: ::c_int = 7; -pub const REG_EPAREN: ::c_int = 8; -pub const REG_EBRACE: ::c_int = 9; -pub const REG_BADBR: ::c_int = 10; -pub const REG_ERANGE: ::c_int = 11; -pub const REG_ESPACE: ::c_int = 12; -pub const REG_BADRPT: ::c_int = 13; +pub const REG_EXTENDED: c_int = 0o0001; +pub const REG_ICASE: c_int = 0o0002; +pub const REG_NEWLINE: c_int = 0o0010; +pub const REG_NOSUB: c_int = 0o0004; + +pub const REG_NOTBOL: c_int = 0o00001; +pub const REG_NOTEOL: c_int = 0o00002; + +pub const REG_ENOSYS: c_int = 17; +pub const REG_NOMATCH: c_int = 1; +pub const REG_BADPAT: c_int = 2; +pub const REG_ECOLLATE: c_int = 3; +pub const REG_ECTYPE: c_int = 4; +pub const REG_EESCAPE: c_int = 5; +pub const REG_ESUBREG: c_int = 6; +pub const REG_EBRACK: c_int = 7; +pub const REG_EPAREN: c_int = 8; +pub const REG_EBRACE: c_int = 9; +pub const REG_BADBR: c_int = 10; +pub const REG_ERANGE: c_int = 11; +pub const REG_ESPACE: c_int = 12; +pub const REG_BADRPT: c_int = 13; // errno.h -pub const EOK: ::c_int = 0; -pub const EWOULDBLOCK: ::c_int = EAGAIN; -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const ECHRNG: ::c_int = 37; -pub const EL2NSYNC: ::c_int = 38; -pub const EL3HLT: ::c_int = 39; -pub const EL3RST: ::c_int = 40; -pub const ELNRNG: ::c_int = 41; -pub const EUNATCH: ::c_int = 42; -pub const ENOCSI: ::c_int = 43; -pub const EL2HLT: ::c_int = 44; -pub const EDEADLK: ::c_int = 45; -pub const ENOLCK: ::c_int = 46; -pub const ECANCELED: ::c_int = 47; -pub const EDQUOT: ::c_int = 49; -pub const EBADE: ::c_int = 50; -pub const EBADR: ::c_int = 51; -pub const EXFULL: ::c_int = 52; -pub const ENOANO: ::c_int = 53; -pub const EBADRQC: ::c_int = 54; -pub const EBADSLT: ::c_int = 55; -pub const EDEADLOCK: ::c_int = 56; -pub const EBFONT: ::c_int = 57; -pub const EOWNERDEAD: ::c_int = 58; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EMULTIHOP: ::c_int = 74; -pub const EBADMSG: ::c_int = 77; -pub const ENAMETOOLONG: ::c_int = 78; -pub const EOVERFLOW: ::c_int = 79; -pub const ENOTUNIQ: ::c_int = 80; -pub const EBADFD: ::c_int = 81; -pub const EREMCHG: ::c_int = 82; -pub const ELIBACC: ::c_int = 83; -pub const ELIBBAD: ::c_int = 84; -pub const ELIBSCN: ::c_int = 85; -pub const ELIBMAX: ::c_int = 86; -pub const ELIBEXEC: ::c_int = 87; -pub const EILSEQ: ::c_int = 88; -pub const ENOSYS: ::c_int = 89; -pub const ELOOP: ::c_int = 90; -pub const ERESTART: ::c_int = 91; -pub const ESTRPIPE: ::c_int = 92; -pub const ENOTEMPTY: ::c_int = 93; -pub const EUSERS: ::c_int = 94; -pub const ENOTRECOVERABLE: ::c_int = 95; -pub const EOPNOTSUPP: ::c_int = 103; -pub const EFPOS: ::c_int = 110; -pub const ESTALE: ::c_int = 122; -pub const EINPROGRESS: ::c_int = 236; -pub const EALREADY: ::c_int = 237; -pub const ENOTSOCK: ::c_int = 238; -pub const EDESTADDRREQ: ::c_int = 239; -pub const EMSGSIZE: ::c_int = 240; -pub const EPROTOTYPE: ::c_int = 241; -pub const ENOPROTOOPT: ::c_int = 242; -pub const EPROTONOSUPPORT: ::c_int = 243; -pub const ESOCKTNOSUPPORT: ::c_int = 244; -pub const EPFNOSUPPORT: ::c_int = 246; -pub const EAFNOSUPPORT: ::c_int = 247; -pub const EADDRINUSE: ::c_int = 248; -pub const EADDRNOTAVAIL: ::c_int = 249; -pub const ENETDOWN: ::c_int = 250; -pub const ENETUNREACH: ::c_int = 251; -pub const ENETRESET: ::c_int = 252; -pub const ECONNABORTED: ::c_int = 253; -pub const ECONNRESET: ::c_int = 254; -pub const ENOBUFS: ::c_int = 255; -pub const EISCONN: ::c_int = 256; -pub const ENOTCONN: ::c_int = 257; -pub const ESHUTDOWN: ::c_int = 258; -pub const ETOOMANYREFS: ::c_int = 259; -pub const ETIMEDOUT: ::c_int = 260; -pub const ECONNREFUSED: ::c_int = 261; -pub const EHOSTDOWN: ::c_int = 264; -pub const EHOSTUNREACH: ::c_int = 265; -pub const EBADRPC: ::c_int = 272; -pub const ERPCMISMATCH: ::c_int = 273; -pub const EPROGUNAVAIL: ::c_int = 274; -pub const EPROGMISMATCH: ::c_int = 275; -pub const EPROCUNAVAIL: ::c_int = 276; -pub const ENOREMOTE: ::c_int = 300; -pub const ENONDP: ::c_int = 301; -pub const EBADFSYS: ::c_int = 302; -pub const EMORE: ::c_int = 309; -pub const ECTRLTERM: ::c_int = 310; -pub const ENOLIC: ::c_int = 311; -pub const ESRVRFAULT: ::c_int = 312; -pub const EENDIAN: ::c_int = 313; -pub const ESECTYPEINVAL: ::c_int = 314; - -pub const RUSAGE_CHILDREN: ::c_int = -1; -pub const L_tmpnam: ::c_uint = 255; - -pub const _PC_LINK_MAX: ::c_int = 1; -pub const _PC_MAX_CANON: ::c_int = 2; -pub const _PC_MAX_INPUT: ::c_int = 3; -pub const _PC_NAME_MAX: ::c_int = 4; -pub const _PC_PATH_MAX: ::c_int = 5; -pub const _PC_PIPE_BUF: ::c_int = 6; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 9; -pub const _PC_NO_TRUNC: ::c_int = 7; -pub const _PC_VDISABLE: ::c_int = 8; -pub const _PC_SYNC_IO: ::c_int = 14; -pub const _PC_ASYNC_IO: ::c_int = 12; -pub const _PC_PRIO_IO: ::c_int = 13; -pub const _PC_SOCK_MAXBUF: ::c_int = 15; -pub const _PC_FILESIZEBITS: ::c_int = 16; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 22; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 23; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 24; -pub const _PC_REC_XFER_ALIGN: ::c_int = 25; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 21; -pub const _PC_SYMLINK_MAX: ::c_int = 17; -pub const _PC_2_SYMLINKS: ::c_int = 20; - -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_ARG_MAX: ::c_int = 1; -pub const _SC_CHILD_MAX: ::c_int = 2; -pub const _SC_CLK_TCK: ::c_int = 3; -pub const _SC_NGROUPS_MAX: ::c_int = 4; -pub const _SC_OPEN_MAX: ::c_int = 5; -pub const _SC_JOB_CONTROL: ::c_int = 6; -pub const _SC_SAVED_IDS: ::c_int = 7; -pub const _SC_VERSION: ::c_int = 8; -pub const _SC_PASS_MAX: ::c_int = 9; -pub const _SC_PAGESIZE: ::c_int = 11; -pub const _SC_XOPEN_VERSION: ::c_int = 12; -pub const _SC_STREAM_MAX: ::c_int = 13; -pub const _SC_TZNAME_MAX: ::c_int = 14; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 15; -pub const _SC_AIO_MAX: ::c_int = 16; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 17; -pub const _SC_DELAYTIMER_MAX: ::c_int = 18; -pub const _SC_MQ_OPEN_MAX: ::c_int = 19; -pub const _SC_MQ_PRIO_MAX: ::c_int = 20; -pub const _SC_RTSIG_MAX: ::c_int = 21; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 22; -pub const _SC_SEM_VALUE_MAX: ::c_int = 23; -pub const _SC_SIGQUEUE_MAX: ::c_int = 24; -pub const _SC_TIMER_MAX: ::c_int = 25; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 26; -pub const _SC_FSYNC: ::c_int = 27; -pub const _SC_MAPPED_FILES: ::c_int = 28; -pub const _SC_MEMLOCK: ::c_int = 29; -pub const _SC_MEMLOCK_RANGE: ::c_int = 30; -pub const _SC_MEMORY_PROTECTION: ::c_int = 31; -pub const _SC_MESSAGE_PASSING: ::c_int = 32; -pub const _SC_PRIORITIZED_IO: ::c_int = 33; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 34; -pub const _SC_REALTIME_SIGNALS: ::c_int = 35; -pub const _SC_SEMAPHORES: ::c_int = 36; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 37; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 38; -pub const _SC_TIMERS: ::c_int = 39; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 40; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 41; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 42; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 43; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 44; -pub const _SC_THREAD_STACK_MIN: ::c_int = 45; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 46; -pub const _SC_TTY_NAME_MAX: ::c_int = 47; -pub const _SC_THREADS: ::c_int = 48; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 49; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 50; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 51; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 52; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 53; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 54; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 55; -pub const _SC_2_CHAR_TERM: ::c_int = 56; -pub const _SC_2_C_BIND: ::c_int = 57; -pub const _SC_2_C_DEV: ::c_int = 58; -pub const _SC_2_C_VERSION: ::c_int = 59; -pub const _SC_2_FORT_DEV: ::c_int = 60; -pub const _SC_2_FORT_RUN: ::c_int = 61; -pub const _SC_2_LOCALEDEF: ::c_int = 62; -pub const _SC_2_SW_DEV: ::c_int = 63; -pub const _SC_2_UPE: ::c_int = 64; -pub const _SC_2_VERSION: ::c_int = 65; -pub const _SC_ATEXIT_MAX: ::c_int = 66; -pub const _SC_AVPHYS_PAGES: ::c_int = 67; -pub const _SC_BC_BASE_MAX: ::c_int = 68; -pub const _SC_BC_DIM_MAX: ::c_int = 69; -pub const _SC_BC_SCALE_MAX: ::c_int = 70; -pub const _SC_BC_STRING_MAX: ::c_int = 71; -pub const _SC_CHARCLASS_NAME_MAX: ::c_int = 72; -pub const _SC_CHAR_BIT: ::c_int = 73; -pub const _SC_CHAR_MAX: ::c_int = 74; -pub const _SC_CHAR_MIN: ::c_int = 75; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 76; -pub const _SC_EQUIV_CLASS_MAX: ::c_int = 77; -pub const _SC_EXPR_NEST_MAX: ::c_int = 78; -pub const _SC_INT_MAX: ::c_int = 79; -pub const _SC_INT_MIN: ::c_int = 80; -pub const _SC_LINE_MAX: ::c_int = 81; -pub const _SC_LONG_BIT: ::c_int = 82; -pub const _SC_MB_LEN_MAX: ::c_int = 83; -pub const _SC_NL_ARGMAX: ::c_int = 84; -pub const _SC_NL_LANGMAX: ::c_int = 85; -pub const _SC_NL_MSGMAX: ::c_int = 86; -pub const _SC_NL_NMAX: ::c_int = 87; -pub const _SC_NL_SETMAX: ::c_int = 88; -pub const _SC_NL_TEXTMAX: ::c_int = 89; -pub const _SC_NPROCESSORS_CONF: ::c_int = 90; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 91; -pub const _SC_NZERO: ::c_int = 92; -pub const _SC_PHYS_PAGES: ::c_int = 93; -pub const _SC_PII: ::c_int = 94; -pub const _SC_PII_INTERNET: ::c_int = 95; -pub const _SC_PII_INTERNET_DGRAM: ::c_int = 96; -pub const _SC_PII_INTERNET_STREAM: ::c_int = 97; -pub const _SC_PII_OSI: ::c_int = 98; -pub const _SC_PII_OSI_CLTS: ::c_int = 99; -pub const _SC_PII_OSI_COTS: ::c_int = 100; -pub const _SC_PII_OSI_M: ::c_int = 101; -pub const _SC_PII_SOCKET: ::c_int = 102; -pub const _SC_PII_XTI: ::c_int = 103; -pub const _SC_POLL: ::c_int = 104; -pub const _SC_RE_DUP_MAX: ::c_int = 105; -pub const _SC_SCHAR_MAX: ::c_int = 106; -pub const _SC_SCHAR_MIN: ::c_int = 107; -pub const _SC_SELECT: ::c_int = 108; -pub const _SC_SHRT_MAX: ::c_int = 109; -pub const _SC_SHRT_MIN: ::c_int = 110; -pub const _SC_SSIZE_MAX: ::c_int = 111; -pub const _SC_T_IOV_MAX: ::c_int = 112; -pub const _SC_UCHAR_MAX: ::c_int = 113; -pub const _SC_UINT_MAX: ::c_int = 114; -pub const _SC_UIO_MAXIOV: ::c_int = 115; -pub const _SC_ULONG_MAX: ::c_int = 116; -pub const _SC_USHRT_MAX: ::c_int = 117; -pub const _SC_WORD_BIT: ::c_int = 118; -pub const _SC_XOPEN_CRYPT: ::c_int = 119; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 120; -pub const _SC_XOPEN_SHM: ::c_int = 121; -pub const _SC_XOPEN_UNIX: ::c_int = 122; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 123; -pub const _SC_XOPEN_XPG2: ::c_int = 124; -pub const _SC_XOPEN_XPG3: ::c_int = 125; -pub const _SC_XOPEN_XPG4: ::c_int = 126; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 127; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 128; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 129; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 130; -pub const _SC_ADVISORY_INFO: ::c_int = 131; -pub const _SC_CPUTIME: ::c_int = 132; -pub const _SC_SPAWN: ::c_int = 133; -pub const _SC_SPORADIC_SERVER: ::c_int = 134; -pub const _SC_THREAD_CPUTIME: ::c_int = 135; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 136; -pub const _SC_TIMEOUTS: ::c_int = 137; -pub const _SC_BARRIERS: ::c_int = 138; -pub const _SC_CLOCK_SELECTION: ::c_int = 139; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 140; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 141; -pub const _SC_SPIN_LOCKS: ::c_int = 142; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 143; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 144; -pub const _SC_TRACE: ::c_int = 145; -pub const _SC_TRACE_INHERIT: ::c_int = 146; -pub const _SC_TRACE_LOG: ::c_int = 147; -pub const _SC_2_PBS: ::c_int = 148; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 149; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 150; -pub const _SC_2_PBS_LOCATE: ::c_int = 151; -pub const _SC_2_PBS_MESSAGE: ::c_int = 152; -pub const _SC_2_PBS_TRACK: ::c_int = 153; -pub const _SC_HOST_NAME_MAX: ::c_int = 154; -pub const _SC_IOV_MAX: ::c_int = 155; -pub const _SC_IPV6: ::c_int = 156; -pub const _SC_RAW_SOCKETS: ::c_int = 157; -pub const _SC_REGEXP: ::c_int = 158; -pub const _SC_SHELL: ::c_int = 159; -pub const _SC_SS_REPL_MAX: ::c_int = 160; -pub const _SC_SYMLOOP_MAX: ::c_int = 161; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 162; -pub const _SC_TRACE_NAME_MAX: ::c_int = 163; -pub const _SC_TRACE_SYS_MAX: ::c_int = 164; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 165; -pub const _SC_V6_ILP32_OFF32: ::c_int = 166; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 167; -pub const _SC_V6_LP64_OFF64: ::c_int = 168; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 169; -pub const _SC_XOPEN_REALTIME: ::c_int = 170; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 171; -pub const _SC_XOPEN_LEGACY: ::c_int = 172; -pub const _SC_XOPEN_STREAMS: ::c_int = 173; -pub const _SC_V7_ILP32_OFF32: ::c_int = 176; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 177; -pub const _SC_V7_LP64_OFF64: ::c_int = 178; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 179; - -pub const GLOB_ERR: ::c_int = 0x0001; -pub const GLOB_MARK: ::c_int = 0x0002; -pub const GLOB_NOSORT: ::c_int = 0x0004; -pub const GLOB_DOOFFS: ::c_int = 0x0008; -pub const GLOB_NOCHECK: ::c_int = 0x0010; -pub const GLOB_APPEND: ::c_int = 0x0020; -pub const GLOB_NOESCAPE: ::c_int = 0x0040; - -pub const GLOB_NOSPACE: ::c_int = 1; -pub const GLOB_ABORTED: ::c_int = 2; -pub const GLOB_NOMATCH: ::c_int = 3; - -pub const S_IEXEC: mode_t = ::S_IXUSR; -pub const S_IWRITE: mode_t = ::S_IWUSR; -pub const S_IREAD: mode_t = ::S_IRUSR; - -pub const S_IFIFO: ::mode_t = 0o1_0000; -pub const S_IFCHR: ::mode_t = 0o2_0000; -pub const S_IFDIR: ::mode_t = 0o4_0000; -pub const S_IFBLK: ::mode_t = 0o6_0000; -pub const S_IFREG: ::mode_t = 0o10_0000; -pub const S_IFLNK: ::mode_t = 0o12_0000; -pub const S_IFSOCK: ::mode_t = 0o14_0000; -pub const S_IFMT: ::mode_t = 0o17_0000; - -pub const S_IXOTH: ::mode_t = 0o0001; -pub const S_IWOTH: ::mode_t = 0o0002; -pub const S_IROTH: ::mode_t = 0o0004; -pub const S_IRWXO: ::mode_t = 0o0007; -pub const S_IXGRP: ::mode_t = 0o0010; -pub const S_IWGRP: ::mode_t = 0o0020; -pub const S_IRGRP: ::mode_t = 0o0040; -pub const S_IRWXG: ::mode_t = 0o0070; -pub const S_IXUSR: ::mode_t = 0o0100; -pub const S_IWUSR: ::mode_t = 0o0200; -pub const S_IRUSR: ::mode_t = 0o0400; -pub const S_IRWXU: ::mode_t = 0o0700; - -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; - -pub const ST_RDONLY: ::c_ulong = 0x01; -pub const ST_NOSUID: ::c_ulong = 0x04; -pub const ST_NOEXEC: ::c_ulong = 0x02; -pub const ST_NOATIME: ::c_ulong = 0x20; - -pub const RTLD_NEXT: *mut ::c_void = -3i64 as *mut ::c_void; -pub const RTLD_DEFAULT: *mut ::c_void = -2i64 as *mut ::c_void; -pub const RTLD_NODELETE: ::c_int = 0x1000; -pub const RTLD_NOW: ::c_int = 0x0002; - -pub const EMPTY: ::c_short = 0; -pub const RUN_LVL: ::c_short = 1; -pub const BOOT_TIME: ::c_short = 2; -pub const NEW_TIME: ::c_short = 4; -pub const OLD_TIME: ::c_short = 3; -pub const INIT_PROCESS: ::c_short = 5; -pub const LOGIN_PROCESS: ::c_short = 6; -pub const USER_PROCESS: ::c_short = 7; -pub const DEAD_PROCESS: ::c_short = 8; -pub const ACCOUNTING: ::c_short = 9; - -pub const ENOTSUP: ::c_int = 48; - -pub const BUFSIZ: ::c_uint = 1024; -pub const TMP_MAX: ::c_uint = 26 * 26 * 26; -pub const FOPEN_MAX: ::c_uint = 16; -pub const FILENAME_MAX: ::c_uint = 255; - -pub const NI_MAXHOST: ::socklen_t = 1025; -pub const M_KEEP: ::c_int = 4; -pub const REG_STARTEND: ::c_int = 0o00004; +pub const EOK: c_int = 0; +pub const EWOULDBLOCK: c_int = EAGAIN; +pub const EPERM: c_int = 1; +pub const ENOENT: c_int = 2; +pub const ESRCH: c_int = 3; +pub const EINTR: c_int = 4; +pub const EIO: c_int = 5; +pub const ENXIO: c_int = 6; +pub const E2BIG: c_int = 7; +pub const ENOEXEC: c_int = 8; +pub const EBADF: c_int = 9; +pub const ECHILD: c_int = 10; +pub const EAGAIN: c_int = 11; +pub const ENOMEM: c_int = 12; +pub const EACCES: c_int = 13; +pub const EFAULT: c_int = 14; +pub const ENOTBLK: c_int = 15; +pub const EBUSY: c_int = 16; +pub const EEXIST: c_int = 17; +pub const EXDEV: c_int = 18; +pub const ENODEV: c_int = 19; +pub const ENOTDIR: c_int = 20; +pub const EISDIR: c_int = 21; +pub const EINVAL: c_int = 22; +pub const ENFILE: c_int = 23; +pub const EMFILE: c_int = 24; +pub const ENOTTY: c_int = 25; +pub const ETXTBSY: c_int = 26; +pub const EFBIG: c_int = 27; +pub const ENOSPC: c_int = 28; +pub const ESPIPE: c_int = 29; +pub const EROFS: c_int = 30; +pub const EMLINK: c_int = 31; +pub const EPIPE: c_int = 32; +pub const EDOM: c_int = 33; +pub const ERANGE: c_int = 34; +pub const ENOMSG: c_int = 35; +pub const EIDRM: c_int = 36; +pub const ECHRNG: c_int = 37; +pub const EL2NSYNC: c_int = 38; +pub const EL3HLT: c_int = 39; +pub const EL3RST: c_int = 40; +pub const ELNRNG: c_int = 41; +pub const EUNATCH: c_int = 42; +pub const ENOCSI: c_int = 43; +pub const EL2HLT: c_int = 44; +pub const EDEADLK: c_int = 45; +pub const ENOLCK: c_int = 46; +pub const ECANCELED: c_int = 47; +pub const EDQUOT: c_int = 49; +pub const EBADE: c_int = 50; +pub const EBADR: c_int = 51; +pub const EXFULL: c_int = 52; +pub const ENOANO: c_int = 53; +pub const EBADRQC: c_int = 54; +pub const EBADSLT: c_int = 55; +pub const EDEADLOCK: c_int = 56; +pub const EBFONT: c_int = 57; +pub const EOWNERDEAD: c_int = 58; +pub const ENOSTR: c_int = 60; +pub const ENODATA: c_int = 61; +pub const ETIME: c_int = 62; +pub const ENOSR: c_int = 63; +pub const ENONET: c_int = 64; +pub const ENOPKG: c_int = 65; +pub const EREMOTE: c_int = 66; +pub const ENOLINK: c_int = 67; +pub const EADV: c_int = 68; +pub const ESRMNT: c_int = 69; +pub const ECOMM: c_int = 70; +pub const EPROTO: c_int = 71; +pub const EMULTIHOP: c_int = 74; +pub const EBADMSG: c_int = 77; +pub const ENAMETOOLONG: c_int = 78; +pub const EOVERFLOW: c_int = 79; +pub const ENOTUNIQ: c_int = 80; +pub const EBADFD: c_int = 81; +pub const EREMCHG: c_int = 82; +pub const ELIBACC: c_int = 83; +pub const ELIBBAD: c_int = 84; +pub const ELIBSCN: c_int = 85; +pub const ELIBMAX: c_int = 86; +pub const ELIBEXEC: c_int = 87; +pub const EILSEQ: c_int = 88; +pub const ENOSYS: c_int = 89; +pub const ELOOP: c_int = 90; +pub const ERESTART: c_int = 91; +pub const ESTRPIPE: c_int = 92; +pub const ENOTEMPTY: c_int = 93; +pub const EUSERS: c_int = 94; +pub const ENOTRECOVERABLE: c_int = 95; +pub const EOPNOTSUPP: c_int = 103; +pub const EFPOS: c_int = 110; +pub const ESTALE: c_int = 122; +pub const EINPROGRESS: c_int = 236; +pub const EALREADY: c_int = 237; +pub const ENOTSOCK: c_int = 238; +pub const EDESTADDRREQ: c_int = 239; +pub const EMSGSIZE: c_int = 240; +pub const EPROTOTYPE: c_int = 241; +pub const ENOPROTOOPT: c_int = 242; +pub const EPROTONOSUPPORT: c_int = 243; +pub const ESOCKTNOSUPPORT: c_int = 244; +pub const EPFNOSUPPORT: c_int = 246; +pub const EAFNOSUPPORT: c_int = 247; +pub const EADDRINUSE: c_int = 248; +pub const EADDRNOTAVAIL: c_int = 249; +pub const ENETDOWN: c_int = 250; +pub const ENETUNREACH: c_int = 251; +pub const ENETRESET: c_int = 252; +pub const ECONNABORTED: c_int = 253; +pub const ECONNRESET: c_int = 254; +pub const ENOBUFS: c_int = 255; +pub const EISCONN: c_int = 256; +pub const ENOTCONN: c_int = 257; +pub const ESHUTDOWN: c_int = 258; +pub const ETOOMANYREFS: c_int = 259; +pub const ETIMEDOUT: c_int = 260; +pub const ECONNREFUSED: c_int = 261; +pub const EHOSTDOWN: c_int = 264; +pub const EHOSTUNREACH: c_int = 265; +pub const EBADRPC: c_int = 272; +pub const ERPCMISMATCH: c_int = 273; +pub const EPROGUNAVAIL: c_int = 274; +pub const EPROGMISMATCH: c_int = 275; +pub const EPROCUNAVAIL: c_int = 276; +pub const ENOREMOTE: c_int = 300; +pub const ENONDP: c_int = 301; +pub const EBADFSYS: c_int = 302; +pub const EMORE: c_int = 309; +pub const ECTRLTERM: c_int = 310; +pub const ENOLIC: c_int = 311; +pub const ESRVRFAULT: c_int = 312; +pub const EENDIAN: c_int = 313; +pub const ESECTYPEINVAL: c_int = 314; + +pub const RUSAGE_CHILDREN: c_int = -1; +pub const L_tmpnam: c_uint = 255; + +pub const _PC_LINK_MAX: c_int = 1; +pub const _PC_MAX_CANON: c_int = 2; +pub const _PC_MAX_INPUT: c_int = 3; +pub const _PC_NAME_MAX: c_int = 4; +pub const _PC_PATH_MAX: c_int = 5; +pub const _PC_PIPE_BUF: c_int = 6; +pub const _PC_CHOWN_RESTRICTED: c_int = 9; +pub const _PC_NO_TRUNC: c_int = 7; +pub const _PC_VDISABLE: c_int = 8; +pub const _PC_SYNC_IO: c_int = 14; +pub const _PC_ASYNC_IO: c_int = 12; +pub const _PC_PRIO_IO: c_int = 13; +pub const _PC_SOCK_MAXBUF: c_int = 15; +pub const _PC_FILESIZEBITS: c_int = 16; +pub const _PC_REC_INCR_XFER_SIZE: c_int = 22; +pub const _PC_REC_MAX_XFER_SIZE: c_int = 23; +pub const _PC_REC_MIN_XFER_SIZE: c_int = 24; +pub const _PC_REC_XFER_ALIGN: c_int = 25; +pub const _PC_ALLOC_SIZE_MIN: c_int = 21; +pub const _PC_SYMLINK_MAX: c_int = 17; +pub const _PC_2_SYMLINKS: c_int = 20; + +pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; +pub const _SC_ARG_MAX: c_int = 1; +pub const _SC_CHILD_MAX: c_int = 2; +pub const _SC_CLK_TCK: c_int = 3; +pub const _SC_NGROUPS_MAX: c_int = 4; +pub const _SC_OPEN_MAX: c_int = 5; +pub const _SC_JOB_CONTROL: c_int = 6; +pub const _SC_SAVED_IDS: c_int = 7; +pub const _SC_VERSION: c_int = 8; +pub const _SC_PASS_MAX: c_int = 9; +pub const _SC_PAGESIZE: c_int = 11; +pub const _SC_XOPEN_VERSION: c_int = 12; +pub const _SC_STREAM_MAX: c_int = 13; +pub const _SC_TZNAME_MAX: c_int = 14; +pub const _SC_AIO_LISTIO_MAX: c_int = 15; +pub const _SC_AIO_MAX: c_int = 16; +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 17; +pub const _SC_DELAYTIMER_MAX: c_int = 18; +pub const _SC_MQ_OPEN_MAX: c_int = 19; +pub const _SC_MQ_PRIO_MAX: c_int = 20; +pub const _SC_RTSIG_MAX: c_int = 21; +pub const _SC_SEM_NSEMS_MAX: c_int = 22; +pub const _SC_SEM_VALUE_MAX: c_int = 23; +pub const _SC_SIGQUEUE_MAX: c_int = 24; +pub const _SC_TIMER_MAX: c_int = 25; +pub const _SC_ASYNCHRONOUS_IO: c_int = 26; +pub const _SC_FSYNC: c_int = 27; +pub const _SC_MAPPED_FILES: c_int = 28; +pub const _SC_MEMLOCK: c_int = 29; +pub const _SC_MEMLOCK_RANGE: c_int = 30; +pub const _SC_MEMORY_PROTECTION: c_int = 31; +pub const _SC_MESSAGE_PASSING: c_int = 32; +pub const _SC_PRIORITIZED_IO: c_int = 33; +pub const _SC_PRIORITY_SCHEDULING: c_int = 34; +pub const _SC_REALTIME_SIGNALS: c_int = 35; +pub const _SC_SEMAPHORES: c_int = 36; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 37; +pub const _SC_SYNCHRONIZED_IO: c_int = 38; +pub const _SC_TIMERS: c_int = 39; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 40; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 41; +pub const _SC_LOGIN_NAME_MAX: c_int = 42; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 43; +pub const _SC_THREAD_KEYS_MAX: c_int = 44; +pub const _SC_THREAD_STACK_MIN: c_int = 45; +pub const _SC_THREAD_THREADS_MAX: c_int = 46; +pub const _SC_TTY_NAME_MAX: c_int = 47; +pub const _SC_THREADS: c_int = 48; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 49; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 50; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 51; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 52; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 53; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 54; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 55; +pub const _SC_2_CHAR_TERM: c_int = 56; +pub const _SC_2_C_BIND: c_int = 57; +pub const _SC_2_C_DEV: c_int = 58; +pub const _SC_2_C_VERSION: c_int = 59; +pub const _SC_2_FORT_DEV: c_int = 60; +pub const _SC_2_FORT_RUN: c_int = 61; +pub const _SC_2_LOCALEDEF: c_int = 62; +pub const _SC_2_SW_DEV: c_int = 63; +pub const _SC_2_UPE: c_int = 64; +pub const _SC_2_VERSION: c_int = 65; +pub const _SC_ATEXIT_MAX: c_int = 66; +pub const _SC_AVPHYS_PAGES: c_int = 67; +pub const _SC_BC_BASE_MAX: c_int = 68; +pub const _SC_BC_DIM_MAX: c_int = 69; +pub const _SC_BC_SCALE_MAX: c_int = 70; +pub const _SC_BC_STRING_MAX: c_int = 71; +pub const _SC_CHARCLASS_NAME_MAX: c_int = 72; +pub const _SC_CHAR_BIT: c_int = 73; +pub const _SC_CHAR_MAX: c_int = 74; +pub const _SC_CHAR_MIN: c_int = 75; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 76; +pub const _SC_EQUIV_CLASS_MAX: c_int = 77; +pub const _SC_EXPR_NEST_MAX: c_int = 78; +pub const _SC_INT_MAX: c_int = 79; +pub const _SC_INT_MIN: c_int = 80; +pub const _SC_LINE_MAX: c_int = 81; +pub const _SC_LONG_BIT: c_int = 82; +pub const _SC_MB_LEN_MAX: c_int = 83; +pub const _SC_NL_ARGMAX: c_int = 84; +pub const _SC_NL_LANGMAX: c_int = 85; +pub const _SC_NL_MSGMAX: c_int = 86; +pub const _SC_NL_NMAX: c_int = 87; +pub const _SC_NL_SETMAX: c_int = 88; +pub const _SC_NL_TEXTMAX: c_int = 89; +pub const _SC_NPROCESSORS_CONF: c_int = 90; +pub const _SC_NPROCESSORS_ONLN: c_int = 91; +pub const _SC_NZERO: c_int = 92; +pub const _SC_PHYS_PAGES: c_int = 93; +pub const _SC_PII: c_int = 94; +pub const _SC_PII_INTERNET: c_int = 95; +pub const _SC_PII_INTERNET_DGRAM: c_int = 96; +pub const _SC_PII_INTERNET_STREAM: c_int = 97; +pub const _SC_PII_OSI: c_int = 98; +pub const _SC_PII_OSI_CLTS: c_int = 99; +pub const _SC_PII_OSI_COTS: c_int = 100; +pub const _SC_PII_OSI_M: c_int = 101; +pub const _SC_PII_SOCKET: c_int = 102; +pub const _SC_PII_XTI: c_int = 103; +pub const _SC_POLL: c_int = 104; +pub const _SC_RE_DUP_MAX: c_int = 105; +pub const _SC_SCHAR_MAX: c_int = 106; +pub const _SC_SCHAR_MIN: c_int = 107; +pub const _SC_SELECT: c_int = 108; +pub const _SC_SHRT_MAX: c_int = 109; +pub const _SC_SHRT_MIN: c_int = 110; +pub const _SC_SSIZE_MAX: c_int = 111; +pub const _SC_T_IOV_MAX: c_int = 112; +pub const _SC_UCHAR_MAX: c_int = 113; +pub const _SC_UINT_MAX: c_int = 114; +pub const _SC_UIO_MAXIOV: c_int = 115; +pub const _SC_ULONG_MAX: c_int = 116; +pub const _SC_USHRT_MAX: c_int = 117; +pub const _SC_WORD_BIT: c_int = 118; +pub const _SC_XOPEN_CRYPT: c_int = 119; +pub const _SC_XOPEN_ENH_I18N: c_int = 120; +pub const _SC_XOPEN_SHM: c_int = 121; +pub const _SC_XOPEN_UNIX: c_int = 122; +pub const _SC_XOPEN_XCU_VERSION: c_int = 123; +pub const _SC_XOPEN_XPG2: c_int = 124; +pub const _SC_XOPEN_XPG3: c_int = 125; +pub const _SC_XOPEN_XPG4: c_int = 126; +pub const _SC_XBS5_ILP32_OFF32: c_int = 127; +pub const _SC_XBS5_ILP32_OFFBIG: c_int = 128; +pub const _SC_XBS5_LP64_OFF64: c_int = 129; +pub const _SC_XBS5_LPBIG_OFFBIG: c_int = 130; +pub const _SC_ADVISORY_INFO: c_int = 131; +pub const _SC_CPUTIME: c_int = 132; +pub const _SC_SPAWN: c_int = 133; +pub const _SC_SPORADIC_SERVER: c_int = 134; +pub const _SC_THREAD_CPUTIME: c_int = 135; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 136; +pub const _SC_TIMEOUTS: c_int = 137; +pub const _SC_BARRIERS: c_int = 138; +pub const _SC_CLOCK_SELECTION: c_int = 139; +pub const _SC_MONOTONIC_CLOCK: c_int = 140; +pub const _SC_READER_WRITER_LOCKS: c_int = 141; +pub const _SC_SPIN_LOCKS: c_int = 142; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 143; +pub const _SC_TRACE_EVENT_FILTER: c_int = 144; +pub const _SC_TRACE: c_int = 145; +pub const _SC_TRACE_INHERIT: c_int = 146; +pub const _SC_TRACE_LOG: c_int = 147; +pub const _SC_2_PBS: c_int = 148; +pub const _SC_2_PBS_ACCOUNTING: c_int = 149; +pub const _SC_2_PBS_CHECKPOINT: c_int = 150; +pub const _SC_2_PBS_LOCATE: c_int = 151; +pub const _SC_2_PBS_MESSAGE: c_int = 152; +pub const _SC_2_PBS_TRACK: c_int = 153; +pub const _SC_HOST_NAME_MAX: c_int = 154; +pub const _SC_IOV_MAX: c_int = 155; +pub const _SC_IPV6: c_int = 156; +pub const _SC_RAW_SOCKETS: c_int = 157; +pub const _SC_REGEXP: c_int = 158; +pub const _SC_SHELL: c_int = 159; +pub const _SC_SS_REPL_MAX: c_int = 160; +pub const _SC_SYMLOOP_MAX: c_int = 161; +pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 162; +pub const _SC_TRACE_NAME_MAX: c_int = 163; +pub const _SC_TRACE_SYS_MAX: c_int = 164; +pub const _SC_TRACE_USER_EVENT_MAX: c_int = 165; +pub const _SC_V6_ILP32_OFF32: c_int = 166; +pub const _SC_V6_ILP32_OFFBIG: c_int = 167; +pub const _SC_V6_LP64_OFF64: c_int = 168; +pub const _SC_V6_LPBIG_OFFBIG: c_int = 169; +pub const _SC_XOPEN_REALTIME: c_int = 170; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 171; +pub const _SC_XOPEN_LEGACY: c_int = 172; +pub const _SC_XOPEN_STREAMS: c_int = 173; +pub const _SC_V7_ILP32_OFF32: c_int = 176; +pub const _SC_V7_ILP32_OFFBIG: c_int = 177; +pub const _SC_V7_LP64_OFF64: c_int = 178; +pub const _SC_V7_LPBIG_OFFBIG: c_int = 179; + +pub const GLOB_ERR: c_int = 0x0001; +pub const GLOB_MARK: c_int = 0x0002; +pub const GLOB_NOSORT: c_int = 0x0004; +pub const GLOB_DOOFFS: c_int = 0x0008; +pub const GLOB_NOCHECK: c_int = 0x0010; +pub const GLOB_APPEND: c_int = 0x0020; +pub const GLOB_NOESCAPE: c_int = 0x0040; + +pub const GLOB_NOSPACE: c_int = 1; +pub const GLOB_ABORTED: c_int = 2; +pub const GLOB_NOMATCH: c_int = 3; + +pub const S_IEXEC: mode_t = crate::S_IXUSR; +pub const S_IWRITE: mode_t = crate::S_IWUSR; +pub const S_IREAD: mode_t = crate::S_IRUSR; + +pub const S_IFIFO: crate::mode_t = 0o1_0000; +pub const S_IFCHR: crate::mode_t = 0o2_0000; +pub const S_IFDIR: crate::mode_t = 0o4_0000; +pub const S_IFBLK: crate::mode_t = 0o6_0000; +pub const S_IFREG: crate::mode_t = 0o10_0000; +pub const S_IFLNK: crate::mode_t = 0o12_0000; +pub const S_IFSOCK: crate::mode_t = 0o14_0000; +pub const S_IFMT: crate::mode_t = 0o17_0000; + +pub const S_IXOTH: crate::mode_t = 0o0001; +pub const S_IWOTH: crate::mode_t = 0o0002; +pub const S_IROTH: crate::mode_t = 0o0004; +pub const S_IRWXO: crate::mode_t = 0o0007; +pub const S_IXGRP: crate::mode_t = 0o0010; +pub const S_IWGRP: crate::mode_t = 0o0020; +pub const S_IRGRP: crate::mode_t = 0o0040; +pub const S_IRWXG: crate::mode_t = 0o0070; +pub const S_IXUSR: crate::mode_t = 0o0100; +pub const S_IWUSR: crate::mode_t = 0o0200; +pub const S_IRUSR: crate::mode_t = 0o0400; +pub const S_IRWXU: crate::mode_t = 0o0700; + +pub const F_LOCK: c_int = 1; +pub const F_TEST: c_int = 3; +pub const F_TLOCK: c_int = 2; +pub const F_ULOCK: c_int = 0; + +pub const ST_RDONLY: c_ulong = 0x01; +pub const ST_NOSUID: c_ulong = 0x04; +pub const ST_NOEXEC: c_ulong = 0x02; +pub const ST_NOATIME: c_ulong = 0x20; + +pub const RTLD_NEXT: *mut c_void = -3i64 as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = -2i64 as *mut c_void; +pub const RTLD_NODELETE: c_int = 0x1000; +pub const RTLD_NOW: c_int = 0x0002; + +pub const EMPTY: c_short = 0; +pub const RUN_LVL: c_short = 1; +pub const BOOT_TIME: c_short = 2; +pub const NEW_TIME: c_short = 4; +pub const OLD_TIME: c_short = 3; +pub const INIT_PROCESS: c_short = 5; +pub const LOGIN_PROCESS: c_short = 6; +pub const USER_PROCESS: c_short = 7; +pub const DEAD_PROCESS: c_short = 8; +pub const ACCOUNTING: c_short = 9; + +pub const ENOTSUP: c_int = 48; + +pub const BUFSIZ: c_uint = 1024; +pub const TMP_MAX: c_uint = 26 * 26 * 26; +pub const FOPEN_MAX: c_uint = 16; +pub const FILENAME_MAX: c_uint = 255; + +pub const NI_MAXHOST: crate::socklen_t = 1025; +pub const M_KEEP: c_int = 4; +pub const REG_STARTEND: c_int = 0o00004; pub const VEOF: usize = 4; -pub const RTLD_GLOBAL: ::c_int = 0x0100; -pub const RTLD_NOLOAD: ::c_int = 0x0004; - -pub const O_RDONLY: ::c_int = 0o000000; -pub const O_WRONLY: ::c_int = 0o000001; -pub const O_RDWR: ::c_int = 0o000002; - -pub const O_EXEC: ::c_int = 0o00003; -pub const O_ASYNC: ::c_int = 0o0200000; -pub const O_NDELAY: ::c_int = O_NONBLOCK; -pub const O_TRUNC: ::c_int = 0o001000; -pub const O_CLOEXEC: ::c_int = 0o020000; -pub const O_DIRECTORY: ::c_int = 0o4000000; -pub const O_ACCMODE: ::c_int = 0o000007; -pub const O_APPEND: ::c_int = 0o000010; -pub const O_CREAT: ::c_int = 0o000400; -pub const O_EXCL: ::c_int = 0o002000; -pub const O_NOCTTY: ::c_int = 0o004000; -pub const O_NONBLOCK: ::c_int = 0o000200; -pub const O_SYNC: ::c_int = 0o000040; -pub const O_RSYNC: ::c_int = 0o000100; -pub const O_DSYNC: ::c_int = 0o000020; -pub const O_NOFOLLOW: ::c_int = 0o010000; - -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; - -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; -pub const SOCK_CLOEXEC: ::c_int = 0x10000000; - -pub const SA_SIGINFO: ::c_int = 0x0002; -pub const SA_NOCLDWAIT: ::c_int = 0x0020; -pub const SA_NODEFER: ::c_int = 0x0010; -pub const SA_RESETHAND: ::c_int = 0x0004; -pub const SA_NOCLDSTOP: ::c_int = 0x0001; - -pub const SIGTTIN: ::c_int = 26; -pub const SIGTTOU: ::c_int = 27; -pub const SIGXCPU: ::c_int = 30; -pub const SIGXFSZ: ::c_int = 31; -pub const SIGVTALRM: ::c_int = 28; -pub const SIGPROF: ::c_int = 29; -pub const SIGWINCH: ::c_int = 20; -pub const SIGCHLD: ::c_int = 18; -pub const SIGBUS: ::c_int = 10; -pub const SIGUSR1: ::c_int = 16; -pub const SIGUSR2: ::c_int = 17; -pub const SIGCONT: ::c_int = 25; -pub const SIGSTOP: ::c_int = 23; -pub const SIGTSTP: ::c_int = 24; -pub const SIGURG: ::c_int = 21; -pub const SIGIO: ::c_int = SIGPOLL; -pub const SIGSYS: ::c_int = 12; -pub const SIGPOLL: ::c_int = 22; -pub const SIGPWR: ::c_int = 19; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0; -pub const SIG_UNBLOCK: ::c_int = 1; - -pub const POLLWRNORM: ::c_short = ::POLLOUT; -pub const POLLWRBAND: ::c_short = 0x0010; - -pub const F_SETLK: ::c_int = 106; -pub const F_SETLKW: ::c_int = 107; -pub const F_ALLOCSP: ::c_int = 110; -pub const F_FREESP: ::c_int = 111; -pub const F_GETLK: ::c_int = 114; - -pub const F_RDLCK: ::c_int = 1; -pub const F_WRLCK: ::c_int = 2; -pub const F_UNLCK: ::c_int = 3; +pub const RTLD_GLOBAL: c_int = 0x0100; +pub const RTLD_NOLOAD: c_int = 0x0004; + +pub const O_RDONLY: c_int = 0o000000; +pub const O_WRONLY: c_int = 0o000001; +pub const O_RDWR: c_int = 0o000002; + +pub const O_EXEC: c_int = 0o00003; +pub const O_ASYNC: c_int = 0o0200000; +pub const O_NDELAY: c_int = O_NONBLOCK; +pub const O_TRUNC: c_int = 0o001000; +pub const O_CLOEXEC: c_int = 0o020000; +pub const O_DIRECTORY: c_int = 0o4000000; +pub const O_ACCMODE: c_int = 0o000007; +pub const O_APPEND: c_int = 0o000010; +pub const O_CREAT: c_int = 0o000400; +pub const O_EXCL: c_int = 0o002000; +pub const O_NOCTTY: c_int = 0o004000; +pub const O_NONBLOCK: c_int = 0o000200; +pub const O_SYNC: c_int = 0o000040; +pub const O_RSYNC: c_int = 0o000100; +pub const O_DSYNC: c_int = 0o000020; +pub const O_NOFOLLOW: c_int = 0o010000; + +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; + +pub const SOCK_SEQPACKET: c_int = 5; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; +pub const SOCK_RAW: c_int = 3; +pub const SOCK_RDM: c_int = 4; +pub const SOCK_CLOEXEC: c_int = 0x10000000; + +pub const SA_SIGINFO: c_int = 0x0002; +pub const SA_NOCLDWAIT: c_int = 0x0020; +pub const SA_NODEFER: c_int = 0x0010; +pub const SA_RESETHAND: c_int = 0x0004; +pub const SA_NOCLDSTOP: c_int = 0x0001; + +pub const SIGTTIN: c_int = 26; +pub const SIGTTOU: c_int = 27; +pub const SIGXCPU: c_int = 30; +pub const SIGXFSZ: c_int = 31; +pub const SIGVTALRM: c_int = 28; +pub const SIGPROF: c_int = 29; +pub const SIGWINCH: c_int = 20; +pub const SIGCHLD: c_int = 18; +pub const SIGBUS: c_int = 10; +pub const SIGUSR1: c_int = 16; +pub const SIGUSR2: c_int = 17; +pub const SIGCONT: c_int = 25; +pub const SIGSTOP: c_int = 23; +pub const SIGTSTP: c_int = 24; +pub const SIGURG: c_int = 21; +pub const SIGIO: c_int = SIGPOLL; +pub const SIGSYS: c_int = 12; +pub const SIGPOLL: c_int = 22; +pub const SIGPWR: c_int = 19; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0; +pub const SIG_UNBLOCK: c_int = 1; + +pub const POLLWRNORM: c_short = crate::POLLOUT; +pub const POLLWRBAND: c_short = 0x0010; + +pub const F_SETLK: c_int = 106; +pub const F_SETLKW: c_int = 107; +pub const F_ALLOCSP: c_int = 110; +pub const F_FREESP: c_int = 111; +pub const F_GETLK: c_int = 114; + +pub const F_RDLCK: c_int = 1; +pub const F_WRLCK: c_int = 2; +pub const F_UNLCK: c_int = 3; pub const NCCS: usize = 40; -pub const MAP_ANON: ::c_int = MAP_ANONYMOUS; -pub const MAP_ANONYMOUS: ::c_int = 0x00080000; - -pub const MCL_CURRENT: ::c_int = 0x000000001; -pub const MCL_FUTURE: ::c_int = 0x000000002; - -pub const _TIO_CBAUD: ::tcflag_t = 15; -pub const CBAUD: ::tcflag_t = _TIO_CBAUD; -pub const TAB1: ::tcflag_t = 0x0800; -pub const TAB2: ::tcflag_t = 0x1000; -pub const TAB3: ::tcflag_t = 0x1800; -pub const CR1: ::tcflag_t = 0x200; -pub const CR2: ::tcflag_t = 0x400; -pub const CR3: ::tcflag_t = 0x600; -pub const FF1: ::tcflag_t = 0x8000; -pub const BS1: ::tcflag_t = 0x2000; -pub const VT1: ::tcflag_t = 0x4000; +pub const MAP_ANON: c_int = MAP_ANONYMOUS; +pub const MAP_ANONYMOUS: c_int = 0x00080000; + +pub const MCL_CURRENT: c_int = 0x000000001; +pub const MCL_FUTURE: c_int = 0x000000002; + +pub const _TIO_CBAUD: crate::tcflag_t = 15; +pub const CBAUD: crate::tcflag_t = _TIO_CBAUD; +pub const TAB1: crate::tcflag_t = 0x0800; +pub const TAB2: crate::tcflag_t = 0x1000; +pub const TAB3: crate::tcflag_t = 0x1800; +pub const CR1: crate::tcflag_t = 0x200; +pub const CR2: crate::tcflag_t = 0x400; +pub const CR3: crate::tcflag_t = 0x600; +pub const FF1: crate::tcflag_t = 0x8000; +pub const BS1: crate::tcflag_t = 0x2000; +pub const VT1: crate::tcflag_t = 0x4000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -2197,458 +2199,458 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 17; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x00000004; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x10; -pub const CS7: ::tcflag_t = 0x20; -pub const CS8: ::tcflag_t = 0x30; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const OLCUC: ::tcflag_t = 0x00000002; -pub const NLDLY: ::tcflag_t = 0x00000100; -pub const CRDLY: ::tcflag_t = 0x00000600; -pub const TABDLY: ::tcflag_t = 0x00001800; -pub const BSDLY: ::tcflag_t = 0x00002000; -pub const FFDLY: ::tcflag_t = 0x00008000; -pub const VTDLY: ::tcflag_t = 0x00004000; -pub const XTABS: ::tcflag_t = 0x1800; - -pub const B0: ::speed_t = 0; -pub const B50: ::speed_t = 1; -pub const B75: ::speed_t = 2; -pub const B110: ::speed_t = 3; -pub const B134: ::speed_t = 4; -pub const B150: ::speed_t = 5; -pub const B200: ::speed_t = 6; -pub const B300: ::speed_t = 7; -pub const B600: ::speed_t = 8; -pub const B1200: ::speed_t = 9; -pub const B1800: ::speed_t = 10; -pub const B2400: ::speed_t = 11; -pub const B4800: ::speed_t = 12; -pub const B9600: ::speed_t = 13; -pub const B19200: ::speed_t = 14; -pub const B38400: ::speed_t = 15; -pub const EXTA: ::speed_t = 14; -pub const EXTB: ::speed_t = 15; -pub const B57600: ::speed_t = 57600; -pub const B115200: ::speed_t = 115200; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x00000004; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x10; +pub const CS7: crate::tcflag_t = 0x20; +pub const CS8: crate::tcflag_t = 0x30; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const OLCUC: crate::tcflag_t = 0x00000002; +pub const NLDLY: crate::tcflag_t = 0x00000100; +pub const CRDLY: crate::tcflag_t = 0x00000600; +pub const TABDLY: crate::tcflag_t = 0x00001800; +pub const BSDLY: crate::tcflag_t = 0x00002000; +pub const FFDLY: crate::tcflag_t = 0x00008000; +pub const VTDLY: crate::tcflag_t = 0x00004000; +pub const XTABS: crate::tcflag_t = 0x1800; + +pub const B0: crate::speed_t = 0; +pub const B50: crate::speed_t = 1; +pub const B75: crate::speed_t = 2; +pub const B110: crate::speed_t = 3; +pub const B134: crate::speed_t = 4; +pub const B150: crate::speed_t = 5; +pub const B200: crate::speed_t = 6; +pub const B300: crate::speed_t = 7; +pub const B600: crate::speed_t = 8; +pub const B1200: crate::speed_t = 9; +pub const B1800: crate::speed_t = 10; +pub const B2400: crate::speed_t = 11; +pub const B4800: crate::speed_t = 12; +pub const B9600: crate::speed_t = 13; +pub const B19200: crate::speed_t = 14; +pub const B38400: crate::speed_t = 15; +pub const EXTA: crate::speed_t = 14; +pub const EXTB: crate::speed_t = 15; +pub const B57600: crate::speed_t = 57600; +pub const B115200: crate::speed_t = 115200; pub const VEOL: usize = 5; pub const VEOL2: usize = 6; pub const VMIN: usize = 16; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; - -pub const TCSANOW: ::c_int = 0x0001; -pub const TCSADRAIN: ::c_int = 0x0002; -pub const TCSAFLUSH: ::c_int = 0x0004; - -pub const HW_MACHINE: ::c_int = 1; -pub const HW_MODEL: ::c_int = 2; -pub const HW_NCPU: ::c_int = 3; -pub const HW_BYTEORDER: ::c_int = 4; -pub const HW_PHYSMEM: ::c_int = 5; -pub const HW_USERMEM: ::c_int = 6; -pub const HW_PAGESIZE: ::c_int = 7; -pub const HW_DISKNAMES: ::c_int = 8; -pub const HW_IOSTATS: ::c_int = 9; -pub const HW_MACHINE_ARCH: ::c_int = 10; -pub const HW_ALIGNBYTES: ::c_int = 11; -pub const HW_CNMAGIC: ::c_int = 12; -pub const HW_PHYSMEM64: ::c_int = 13; -pub const HW_USERMEM64: ::c_int = 14; -pub const HW_IOSTATNAMES: ::c_int = 15; -pub const HW_MAXID: ::c_int = 15; - -pub const CTL_UNSPEC: ::c_int = 0; -pub const CTL_KERN: ::c_int = 1; -pub const CTL_VM: ::c_int = 2; -pub const CTL_VFS: ::c_int = 3; -pub const CTL_NET: ::c_int = 4; -pub const CTL_DEBUG: ::c_int = 5; -pub const CTL_HW: ::c_int = 6; -pub const CTL_MACHDEP: ::c_int = 7; -pub const CTL_USER: ::c_int = 8; -pub const CTL_QNX: ::c_int = 9; -pub const CTL_PROC: ::c_int = 10; -pub const CTL_VENDOR: ::c_int = 11; -pub const CTL_EMUL: ::c_int = 12; -pub const CTL_SECURITY: ::c_int = 13; -pub const CTL_MAXID: ::c_int = 14; - -pub const DAY_1: ::nl_item = 8; -pub const DAY_2: ::nl_item = 9; -pub const DAY_3: ::nl_item = 10; -pub const DAY_4: ::nl_item = 11; -pub const DAY_5: ::nl_item = 12; -pub const DAY_6: ::nl_item = 13; -pub const DAY_7: ::nl_item = 14; - -pub const MON_1: ::nl_item = 22; -pub const MON_2: ::nl_item = 23; -pub const MON_3: ::nl_item = 24; -pub const MON_4: ::nl_item = 25; -pub const MON_5: ::nl_item = 26; -pub const MON_6: ::nl_item = 27; -pub const MON_7: ::nl_item = 28; -pub const MON_8: ::nl_item = 29; -pub const MON_9: ::nl_item = 30; -pub const MON_10: ::nl_item = 31; -pub const MON_11: ::nl_item = 32; -pub const MON_12: ::nl_item = 33; - -pub const ABDAY_1: ::nl_item = 15; -pub const ABDAY_2: ::nl_item = 16; -pub const ABDAY_3: ::nl_item = 17; -pub const ABDAY_4: ::nl_item = 18; -pub const ABDAY_5: ::nl_item = 19; -pub const ABDAY_6: ::nl_item = 20; -pub const ABDAY_7: ::nl_item = 21; - -pub const ABMON_1: ::nl_item = 34; -pub const ABMON_2: ::nl_item = 35; -pub const ABMON_3: ::nl_item = 36; -pub const ABMON_4: ::nl_item = 37; -pub const ABMON_5: ::nl_item = 38; -pub const ABMON_6: ::nl_item = 39; -pub const ABMON_7: ::nl_item = 40; -pub const ABMON_8: ::nl_item = 41; -pub const ABMON_9: ::nl_item = 42; -pub const ABMON_10: ::nl_item = 43; -pub const ABMON_11: ::nl_item = 44; -pub const ABMON_12: ::nl_item = 45; - -pub const AF_ARP: ::c_int = 28; -pub const AF_CCITT: ::c_int = 10; -pub const AF_CHAOS: ::c_int = 5; -pub const AF_CNT: ::c_int = 21; -pub const AF_COIP: ::c_int = 20; -pub const AF_DATAKIT: ::c_int = 9; -pub const AF_DECnet: ::c_int = 12; -pub const AF_DLI: ::c_int = 13; -pub const AF_E164: ::c_int = 26; -pub const AF_ECMA: ::c_int = 8; -pub const AF_HYLINK: ::c_int = 15; -pub const AF_IEEE80211: ::c_int = 32; -pub const AF_IMPLINK: ::c_int = 3; -pub const AF_ISO: ::c_int = 7; -pub const AF_LAT: ::c_int = 14; -pub const AF_LINK: ::c_int = 18; -pub const AF_NATM: ::c_int = 27; -pub const AF_NS: ::c_int = 6; -pub const AF_OSI: ::c_int = 7; -pub const AF_PUP: ::c_int = 4; -pub const ALT_DIGITS: ::nl_item = 50; -pub const AM_STR: ::nl_item = 6; -pub const B76800: ::speed_t = 76800; - -pub const BIOCFLUSH: ::c_int = 17000; -pub const BIOCGBLEN: ::c_int = 1074020966; -pub const BIOCGDLT: ::c_int = 1074020970; -pub const BIOCGDLTLIST: ::c_int = -1072676233; -pub const BIOCGETIF: ::c_int = 1083196011; -pub const BIOCGHDRCMPLT: ::c_int = 1074020980; -pub const BIOCGRTIMEOUT: ::c_int = 1074807406; -pub const BIOCGSEESENT: ::c_int = 1074020984; -pub const BIOCGSTATS: ::c_int = 1082147439; -pub const BIOCIMMEDIATE: ::c_int = -2147204496; -pub const BIOCPROMISC: ::c_int = 17001; -pub const BIOCSBLEN: ::c_int = -1073462682; -pub const BIOCSDLT: ::c_int = -2147204490; -pub const BIOCSETF: ::c_int = -2146418073; -pub const BIOCSETIF: ::c_int = -2138029460; -pub const BIOCSHDRCMPLT: ::c_int = -2147204491; -pub const BIOCSRTIMEOUT: ::c_int = -2146418067; -pub const BIOCSSEESENT: ::c_int = -2147204487; -pub const BIOCVERSION: ::c_int = 1074020977; - -pub const BPF_ALIGNMENT: usize = ::mem::size_of::<::c_long>(); +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; + +pub const TCSANOW: c_int = 0x0001; +pub const TCSADRAIN: c_int = 0x0002; +pub const TCSAFLUSH: c_int = 0x0004; + +pub const HW_MACHINE: c_int = 1; +pub const HW_MODEL: c_int = 2; +pub const HW_NCPU: c_int = 3; +pub const HW_BYTEORDER: c_int = 4; +pub const HW_PHYSMEM: c_int = 5; +pub const HW_USERMEM: c_int = 6; +pub const HW_PAGESIZE: c_int = 7; +pub const HW_DISKNAMES: c_int = 8; +pub const HW_IOSTATS: c_int = 9; +pub const HW_MACHINE_ARCH: c_int = 10; +pub const HW_ALIGNBYTES: c_int = 11; +pub const HW_CNMAGIC: c_int = 12; +pub const HW_PHYSMEM64: c_int = 13; +pub const HW_USERMEM64: c_int = 14; +pub const HW_IOSTATNAMES: c_int = 15; +pub const HW_MAXID: c_int = 15; + +pub const CTL_UNSPEC: c_int = 0; +pub const CTL_KERN: c_int = 1; +pub const CTL_VM: c_int = 2; +pub const CTL_VFS: c_int = 3; +pub const CTL_NET: c_int = 4; +pub const CTL_DEBUG: c_int = 5; +pub const CTL_HW: c_int = 6; +pub const CTL_MACHDEP: c_int = 7; +pub const CTL_USER: c_int = 8; +pub const CTL_QNX: c_int = 9; +pub const CTL_PROC: c_int = 10; +pub const CTL_VENDOR: c_int = 11; +pub const CTL_EMUL: c_int = 12; +pub const CTL_SECURITY: c_int = 13; +pub const CTL_MAXID: c_int = 14; + +pub const DAY_1: crate::nl_item = 8; +pub const DAY_2: crate::nl_item = 9; +pub const DAY_3: crate::nl_item = 10; +pub const DAY_4: crate::nl_item = 11; +pub const DAY_5: crate::nl_item = 12; +pub const DAY_6: crate::nl_item = 13; +pub const DAY_7: crate::nl_item = 14; + +pub const MON_1: crate::nl_item = 22; +pub const MON_2: crate::nl_item = 23; +pub const MON_3: crate::nl_item = 24; +pub const MON_4: crate::nl_item = 25; +pub const MON_5: crate::nl_item = 26; +pub const MON_6: crate::nl_item = 27; +pub const MON_7: crate::nl_item = 28; +pub const MON_8: crate::nl_item = 29; +pub const MON_9: crate::nl_item = 30; +pub const MON_10: crate::nl_item = 31; +pub const MON_11: crate::nl_item = 32; +pub const MON_12: crate::nl_item = 33; + +pub const ABDAY_1: crate::nl_item = 15; +pub const ABDAY_2: crate::nl_item = 16; +pub const ABDAY_3: crate::nl_item = 17; +pub const ABDAY_4: crate::nl_item = 18; +pub const ABDAY_5: crate::nl_item = 19; +pub const ABDAY_6: crate::nl_item = 20; +pub const ABDAY_7: crate::nl_item = 21; + +pub const ABMON_1: crate::nl_item = 34; +pub const ABMON_2: crate::nl_item = 35; +pub const ABMON_3: crate::nl_item = 36; +pub const ABMON_4: crate::nl_item = 37; +pub const ABMON_5: crate::nl_item = 38; +pub const ABMON_6: crate::nl_item = 39; +pub const ABMON_7: crate::nl_item = 40; +pub const ABMON_8: crate::nl_item = 41; +pub const ABMON_9: crate::nl_item = 42; +pub const ABMON_10: crate::nl_item = 43; +pub const ABMON_11: crate::nl_item = 44; +pub const ABMON_12: crate::nl_item = 45; + +pub const AF_ARP: c_int = 28; +pub const AF_CCITT: c_int = 10; +pub const AF_CHAOS: c_int = 5; +pub const AF_CNT: c_int = 21; +pub const AF_COIP: c_int = 20; +pub const AF_DATAKIT: c_int = 9; +pub const AF_DECnet: c_int = 12; +pub const AF_DLI: c_int = 13; +pub const AF_E164: c_int = 26; +pub const AF_ECMA: c_int = 8; +pub const AF_HYLINK: c_int = 15; +pub const AF_IEEE80211: c_int = 32; +pub const AF_IMPLINK: c_int = 3; +pub const AF_ISO: c_int = 7; +pub const AF_LAT: c_int = 14; +pub const AF_LINK: c_int = 18; +pub const AF_NATM: c_int = 27; +pub const AF_NS: c_int = 6; +pub const AF_OSI: c_int = 7; +pub const AF_PUP: c_int = 4; +pub const ALT_DIGITS: crate::nl_item = 50; +pub const AM_STR: crate::nl_item = 6; +pub const B76800: crate::speed_t = 76800; + +pub const BIOCFLUSH: c_int = 17000; +pub const BIOCGBLEN: c_int = 1074020966; +pub const BIOCGDLT: c_int = 1074020970; +pub const BIOCGDLTLIST: c_int = -1072676233; +pub const BIOCGETIF: c_int = 1083196011; +pub const BIOCGHDRCMPLT: c_int = 1074020980; +pub const BIOCGRTIMEOUT: c_int = 1074807406; +pub const BIOCGSEESENT: c_int = 1074020984; +pub const BIOCGSTATS: c_int = 1082147439; +pub const BIOCIMMEDIATE: c_int = -2147204496; +pub const BIOCPROMISC: c_int = 17001; +pub const BIOCSBLEN: c_int = -1073462682; +pub const BIOCSDLT: c_int = -2147204490; +pub const BIOCSETF: c_int = -2146418073; +pub const BIOCSETIF: c_int = -2138029460; +pub const BIOCSHDRCMPLT: c_int = -2147204491; +pub const BIOCSRTIMEOUT: c_int = -2146418067; +pub const BIOCSSEESENT: c_int = -2147204487; +pub const BIOCVERSION: c_int = 1074020977; + +pub const BPF_ALIGNMENT: usize = crate::mem::size_of::(); pub const CHAR_BIT: usize = 8; -pub const CODESET: ::nl_item = 1; -pub const CRNCYSTR: ::nl_item = 55; - -pub const D_FLAG_FILTER: ::c_int = 0x00000001; -pub const D_FLAG_STAT: ::c_int = 0x00000002; -pub const D_FLAG_STAT_FORM_MASK: ::c_int = 0x000000f0; -pub const D_FLAG_STAT_FORM_T32_2001: ::c_int = 0x00000010; -pub const D_FLAG_STAT_FORM_T32_2008: ::c_int = 0x00000020; -pub const D_FLAG_STAT_FORM_T64_2008: ::c_int = 0x00000030; -pub const D_FLAG_STAT_FORM_UNSET: ::c_int = 0x00000000; - -pub const D_FMT: ::nl_item = 3; -pub const D_GETFLAG: ::c_int = 1; -pub const D_SETFLAG: ::c_int = 2; -pub const D_T_FMT: ::nl_item = 2; -pub const ERA: ::nl_item = 46; -pub const ERA_D_FMT: ::nl_item = 47; -pub const ERA_D_T_FMT: ::nl_item = 48; -pub const ERA_T_FMT: ::nl_item = 49; -pub const RADIXCHAR: ::nl_item = 51; -pub const THOUSEP: ::nl_item = 52; -pub const YESEXPR: ::nl_item = 53; -pub const NOEXPR: ::nl_item = 54; -pub const F_GETOWN: ::c_int = 35; - -pub const FIONBIO: ::c_int = -2147195266; -pub const FIOASYNC: ::c_int = -2147195267; -pub const FIOCLEX: ::c_int = 26113; -pub const FIOGETOWN: ::c_int = 1074030203; -pub const FIONCLEX: ::c_int = 26114; -pub const FIONREAD: ::c_int = 1074030207; -pub const FIONSPACE: ::c_int = 1074030200; -pub const FIONWRITE: ::c_int = 1074030201; -pub const FIOSETOWN: ::c_int = -2147195268; - -pub const F_SETOWN: ::c_int = 36; -pub const IFF_ACCEPTRTADV: ::c_int = 0x40000000; -pub const IFF_IP6FORWARDING: ::c_int = 0x20000000; -pub const IFF_LINK0: ::c_int = 0x00001000; -pub const IFF_LINK1: ::c_int = 0x00002000; -pub const IFF_LINK2: ::c_int = 0x00004000; -pub const IFF_OACTIVE: ::c_int = 0x00000400; -pub const IFF_SHIM: ::c_int = 0x80000000; -pub const IFF_SIMPLEX: ::c_int = 0x00000800; +pub const CODESET: crate::nl_item = 1; +pub const CRNCYSTR: crate::nl_item = 55; + +pub const D_FLAG_FILTER: c_int = 0x00000001; +pub const D_FLAG_STAT: c_int = 0x00000002; +pub const D_FLAG_STAT_FORM_MASK: c_int = 0x000000f0; +pub const D_FLAG_STAT_FORM_T32_2001: c_int = 0x00000010; +pub const D_FLAG_STAT_FORM_T32_2008: c_int = 0x00000020; +pub const D_FLAG_STAT_FORM_T64_2008: c_int = 0x00000030; +pub const D_FLAG_STAT_FORM_UNSET: c_int = 0x00000000; + +pub const D_FMT: crate::nl_item = 3; +pub const D_GETFLAG: c_int = 1; +pub const D_SETFLAG: c_int = 2; +pub const D_T_FMT: crate::nl_item = 2; +pub const ERA: crate::nl_item = 46; +pub const ERA_D_FMT: crate::nl_item = 47; +pub const ERA_D_T_FMT: crate::nl_item = 48; +pub const ERA_T_FMT: crate::nl_item = 49; +pub const RADIXCHAR: crate::nl_item = 51; +pub const THOUSEP: crate::nl_item = 52; +pub const YESEXPR: crate::nl_item = 53; +pub const NOEXPR: crate::nl_item = 54; +pub const F_GETOWN: c_int = 35; + +pub const FIONBIO: c_int = -2147195266; +pub const FIOASYNC: c_int = -2147195267; +pub const FIOCLEX: c_int = 26113; +pub const FIOGETOWN: c_int = 1074030203; +pub const FIONCLEX: c_int = 26114; +pub const FIONREAD: c_int = 1074030207; +pub const FIONSPACE: c_int = 1074030200; +pub const FIONWRITE: c_int = 1074030201; +pub const FIOSETOWN: c_int = -2147195268; + +pub const F_SETOWN: c_int = 36; +pub const IFF_ACCEPTRTADV: c_int = 0x40000000; +pub const IFF_IP6FORWARDING: c_int = 0x20000000; +pub const IFF_LINK0: c_int = 0x00001000; +pub const IFF_LINK1: c_int = 0x00002000; +pub const IFF_LINK2: c_int = 0x00004000; +pub const IFF_OACTIVE: c_int = 0x00000400; +pub const IFF_SHIM: c_int = 0x80000000; +pub const IFF_SIMPLEX: c_int = 0x00000800; pub const IHFLOW: tcflag_t = 0x00000001; pub const IIDLE: tcflag_t = 0x00000008; -pub const IP_RECVDSTADDR: ::c_int = 7; -pub const IP_RECVIF: ::c_int = 20; +pub const IP_RECVDSTADDR: c_int = 7; +pub const IP_RECVIF: c_int = 20; pub const IPTOS_ECN_NOTECT: u8 = 0x00; pub const IUCLC: tcflag_t = 0x00000200; pub const IUTF8: tcflag_t = 0x0004000; -pub const KERN_ARGMAX: ::c_int = 8; -pub const KERN_ARND: ::c_int = 81; -pub const KERN_BOOTTIME: ::c_int = 21; -pub const KERN_CLOCKRATE: ::c_int = 12; -pub const KERN_FILE: ::c_int = 15; -pub const KERN_HOSTID: ::c_int = 11; -pub const KERN_HOSTNAME: ::c_int = 10; -pub const KERN_IOV_MAX: ::c_int = 38; -pub const KERN_JOB_CONTROL: ::c_int = 19; -pub const KERN_LOGSIGEXIT: ::c_int = 46; -pub const KERN_MAXFILES: ::c_int = 7; -pub const KERN_MAXID: ::c_int = 83; -pub const KERN_MAXPROC: ::c_int = 6; -pub const KERN_MAXVNODES: ::c_int = 5; -pub const KERN_NGROUPS: ::c_int = 18; -pub const KERN_OSRELEASE: ::c_int = 2; -pub const KERN_OSREV: ::c_int = 3; -pub const KERN_OSTYPE: ::c_int = 1; -pub const KERN_POSIX1: ::c_int = 17; -pub const KERN_PROC: ::c_int = 14; -pub const KERN_PROC_ALL: ::c_int = 0; -pub const KERN_PROC_ARGS: ::c_int = 48; -pub const KERN_PROC_ENV: ::c_int = 3; -pub const KERN_PROC_GID: ::c_int = 7; -pub const KERN_PROC_PGRP: ::c_int = 2; -pub const KERN_PROC_PID: ::c_int = 1; -pub const KERN_PROC_RGID: ::c_int = 8; -pub const KERN_PROC_RUID: ::c_int = 6; -pub const KERN_PROC_SESSION: ::c_int = 3; -pub const KERN_PROC_TTY: ::c_int = 4; -pub const KERN_PROC_UID: ::c_int = 5; -pub const KERN_PROF: ::c_int = 16; -pub const KERN_SAVED_IDS: ::c_int = 20; -pub const KERN_SECURELVL: ::c_int = 9; -pub const KERN_VERSION: ::c_int = 4; -pub const KERN_VNODE: ::c_int = 13; - -pub const LC_ALL: ::c_int = 63; -pub const LC_COLLATE: ::c_int = 1; -pub const LC_CTYPE: ::c_int = 2; -pub const LC_MESSAGES: ::c_int = 32; -pub const LC_MONETARY: ::c_int = 4; -pub const LC_NUMERIC: ::c_int = 8; -pub const LC_TIME: ::c_int = 16; - -pub const LOCAL_CONNWAIT: ::c_int = 0x0002; -pub const LOCAL_CREDS: ::c_int = 0x0001; -pub const LOCAL_PEEREID: ::c_int = 0x0003; - -pub const MAP_STACK: ::c_int = 0x00001000; -pub const MNT_NOEXEC: ::c_int = 0x02; -pub const MNT_NOSUID: ::c_int = 0x04; -pub const MNT_RDONLY: ::c_int = 0x01; - -pub const MSG_NOTIFICATION: ::c_int = 0x0400; - -pub const NET_RT_DUMP: ::c_int = 1; -pub const NET_RT_FLAGS: ::c_int = 2; -pub const NET_RT_IFLIST: ::c_int = 4; -pub const NI_NUMERICSCOPE: ::c_int = 0x00000040; +pub const KERN_ARGMAX: c_int = 8; +pub const KERN_ARND: c_int = 81; +pub const KERN_BOOTTIME: c_int = 21; +pub const KERN_CLOCKRATE: c_int = 12; +pub const KERN_FILE: c_int = 15; +pub const KERN_HOSTID: c_int = 11; +pub const KERN_HOSTNAME: c_int = 10; +pub const KERN_IOV_MAX: c_int = 38; +pub const KERN_JOB_CONTROL: c_int = 19; +pub const KERN_LOGSIGEXIT: c_int = 46; +pub const KERN_MAXFILES: c_int = 7; +pub const KERN_MAXID: c_int = 83; +pub const KERN_MAXPROC: c_int = 6; +pub const KERN_MAXVNODES: c_int = 5; +pub const KERN_NGROUPS: c_int = 18; +pub const KERN_OSRELEASE: c_int = 2; +pub const KERN_OSREV: c_int = 3; +pub const KERN_OSTYPE: c_int = 1; +pub const KERN_POSIX1: c_int = 17; +pub const KERN_PROC: c_int = 14; +pub const KERN_PROC_ALL: c_int = 0; +pub const KERN_PROC_ARGS: c_int = 48; +pub const KERN_PROC_ENV: c_int = 3; +pub const KERN_PROC_GID: c_int = 7; +pub const KERN_PROC_PGRP: c_int = 2; +pub const KERN_PROC_PID: c_int = 1; +pub const KERN_PROC_RGID: c_int = 8; +pub const KERN_PROC_RUID: c_int = 6; +pub const KERN_PROC_SESSION: c_int = 3; +pub const KERN_PROC_TTY: c_int = 4; +pub const KERN_PROC_UID: c_int = 5; +pub const KERN_PROF: c_int = 16; +pub const KERN_SAVED_IDS: c_int = 20; +pub const KERN_SECURELVL: c_int = 9; +pub const KERN_VERSION: c_int = 4; +pub const KERN_VNODE: c_int = 13; + +pub const LC_ALL: c_int = 63; +pub const LC_COLLATE: c_int = 1; +pub const LC_CTYPE: c_int = 2; +pub const LC_MESSAGES: c_int = 32; +pub const LC_MONETARY: c_int = 4; +pub const LC_NUMERIC: c_int = 8; +pub const LC_TIME: c_int = 16; + +pub const LOCAL_CONNWAIT: c_int = 0x0002; +pub const LOCAL_CREDS: c_int = 0x0001; +pub const LOCAL_PEEREID: c_int = 0x0003; + +pub const MAP_STACK: c_int = 0x00001000; +pub const MNT_NOEXEC: c_int = 0x02; +pub const MNT_NOSUID: c_int = 0x04; +pub const MNT_RDONLY: c_int = 0x01; + +pub const MSG_NOTIFICATION: c_int = 0x0400; + +pub const NET_RT_DUMP: c_int = 1; +pub const NET_RT_FLAGS: c_int = 2; +pub const NET_RT_IFLIST: c_int = 4; +pub const NI_NUMERICSCOPE: c_int = 0x00000040; pub const OHFLOW: tcflag_t = 0x00000002; pub const P_ALL: idtype_t = 0; pub const PARSTK: tcflag_t = 0x00000004; -pub const PF_ARP: ::c_int = 28; -pub const PF_CCITT: ::c_int = 10; -pub const PF_CHAOS: ::c_int = 5; -pub const PF_CNT: ::c_int = 21; -pub const PF_COIP: ::c_int = 20; -pub const PF_DATAKIT: ::c_int = 9; -pub const PF_DECnet: ::c_int = 12; -pub const PF_DLI: ::c_int = 13; -pub const PF_ECMA: ::c_int = 8; -pub const PF_HYLINK: ::c_int = 15; -pub const PF_IMPLINK: ::c_int = 3; -pub const PF_ISO: ::c_int = 7; -pub const PF_LAT: ::c_int = 14; -pub const PF_LINK: ::c_int = 18; -pub const PF_NATM: ::c_int = 27; -pub const PF_OSI: ::c_int = 7; -pub const PF_PIP: ::c_int = 25; -pub const PF_PUP: ::c_int = 4; -pub const PF_RTIP: ::c_int = 22; -pub const PF_XTP: ::c_int = 19; -pub const PM_STR: ::nl_item = 7; -pub const POSIX_MADV_DONTNEED: ::c_int = 4; -pub const POSIX_MADV_NORMAL: ::c_int = 0; -pub const POSIX_MADV_RANDOM: ::c_int = 2; -pub const POSIX_MADV_SEQUENTIAL: ::c_int = 1; -pub const POSIX_MADV_WILLNEED: ::c_int = 3; -pub const _POSIX_VDISABLE: ::c_int = 0; +pub const PF_ARP: c_int = 28; +pub const PF_CCITT: c_int = 10; +pub const PF_CHAOS: c_int = 5; +pub const PF_CNT: c_int = 21; +pub const PF_COIP: c_int = 20; +pub const PF_DATAKIT: c_int = 9; +pub const PF_DECnet: c_int = 12; +pub const PF_DLI: c_int = 13; +pub const PF_ECMA: c_int = 8; +pub const PF_HYLINK: c_int = 15; +pub const PF_IMPLINK: c_int = 3; +pub const PF_ISO: c_int = 7; +pub const PF_LAT: c_int = 14; +pub const PF_LINK: c_int = 18; +pub const PF_NATM: c_int = 27; +pub const PF_OSI: c_int = 7; +pub const PF_PIP: c_int = 25; +pub const PF_PUP: c_int = 4; +pub const PF_RTIP: c_int = 22; +pub const PF_XTP: c_int = 19; +pub const PM_STR: crate::nl_item = 7; +pub const POSIX_MADV_DONTNEED: c_int = 4; +pub const POSIX_MADV_NORMAL: c_int = 0; +pub const POSIX_MADV_RANDOM: c_int = 2; +pub const POSIX_MADV_SEQUENTIAL: c_int = 1; +pub const POSIX_MADV_WILLNEED: c_int = 3; +pub const _POSIX_VDISABLE: c_int = 0; pub const P_PGID: idtype_t = 2; pub const P_PID: idtype_t = 1; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_USER: ::c_int = 2; -pub const pseudo_AF_HDRCMPLT: ::c_int = 30; -pub const pseudo_AF_PIP: ::c_int = 25; -pub const pseudo_AF_RTIP: ::c_int = 22; -pub const pseudo_AF_XTP: ::c_int = 19; -pub const REG_ASSERT: ::c_int = 15; -pub const REG_ATOI: ::c_int = 255; -pub const REG_BACKR: ::c_int = 0x400; -pub const REG_BASIC: ::c_int = 0x00; -pub const REG_DUMP: ::c_int = 0x80; -pub const REG_EMPTY: ::c_int = 14; -pub const REG_INVARG: ::c_int = 16; -pub const REG_ITOA: ::c_int = 0o400; -pub const REG_LARGE: ::c_int = 0x200; -pub const REG_NOSPEC: ::c_int = 0x10; -pub const REG_OK: ::c_int = 0; -pub const REG_PEND: ::c_int = 0x20; -pub const REG_TRACE: ::c_int = 0x100; - -pub const RLIMIT_AS: ::c_int = 6; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_MEMLOCK: ::c_int = 7; -pub const RLIMIT_NOFILE: ::c_int = 5; -pub const RLIMIT_NPROC: ::c_int = 8; -pub const RLIMIT_RSS: ::c_int = 6; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_VMEM: ::c_int = 6; +pub const PRIO_PGRP: c_int = 1; +pub const PRIO_PROCESS: c_int = 0; +pub const PRIO_USER: c_int = 2; +pub const pseudo_AF_HDRCMPLT: c_int = 30; +pub const pseudo_AF_PIP: c_int = 25; +pub const pseudo_AF_RTIP: c_int = 22; +pub const pseudo_AF_XTP: c_int = 19; +pub const REG_ASSERT: c_int = 15; +pub const REG_ATOI: c_int = 255; +pub const REG_BACKR: c_int = 0x400; +pub const REG_BASIC: c_int = 0x00; +pub const REG_DUMP: c_int = 0x80; +pub const REG_EMPTY: c_int = 14; +pub const REG_INVARG: c_int = 16; +pub const REG_ITOA: c_int = 0o400; +pub const REG_LARGE: c_int = 0x200; +pub const REG_NOSPEC: c_int = 0x10; +pub const REG_OK: c_int = 0; +pub const REG_PEND: c_int = 0x20; +pub const REG_TRACE: c_int = 0x100; + +pub const RLIMIT_AS: c_int = 6; +pub const RLIMIT_CORE: c_int = 4; +pub const RLIMIT_CPU: c_int = 0; +pub const RLIMIT_DATA: c_int = 2; +pub const RLIMIT_FSIZE: c_int = 1; +pub const RLIMIT_MEMLOCK: c_int = 7; +pub const RLIMIT_NOFILE: c_int = 5; +pub const RLIMIT_NPROC: c_int = 8; +pub const RLIMIT_RSS: c_int = 6; +pub const RLIMIT_STACK: c_int = 3; +pub const RLIMIT_VMEM: c_int = 6; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIM_NLIMITS: ::c_int = 14; - -pub const SCHED_ADJTOHEAD: ::c_int = 5; -pub const SCHED_ADJTOTAIL: ::c_int = 6; -pub const SCHED_MAXPOLICY: ::c_int = 7; -pub const SCHED_SETPRIO: ::c_int = 7; -pub const SCHED_SPORADIC: ::c_int = 4; - -pub const SHM_ANON: *mut ::c_char = -1isize as *mut ::c_char; -pub const SIGCLD: ::c_int = SIGCHLD; -pub const SIGDEADLK: ::c_int = 7; -pub const SIGEMT: ::c_int = 7; -pub const SIGEV_NONE: ::c_int = 0; -pub const SIGEV_SIGNAL: ::c_int = 129; -pub const SIGEV_THREAD: ::c_int = 135; -pub const SIOCGIFADDR: ::c_int = -1064277727; -pub const SO_FIB: ::c_int = 0x100a; -pub const SO_OVERFLOWED: ::c_int = 0x1009; -pub const SO_SETFIB: ::c_int = 0x100a; -pub const SO_TXPRIO: ::c_int = 0x100b; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_VLANPRIO: ::c_int = 0x100c; -pub const _SS_ALIGNSIZE: usize = ::mem::size_of::(); +pub const RLIM_NLIMITS: c_int = 14; + +pub const SCHED_ADJTOHEAD: c_int = 5; +pub const SCHED_ADJTOTAIL: c_int = 6; +pub const SCHED_MAXPOLICY: c_int = 7; +pub const SCHED_SETPRIO: c_int = 7; +pub const SCHED_SPORADIC: c_int = 4; + +pub const SHM_ANON: *mut c_char = -1isize as *mut c_char; +pub const SIGCLD: c_int = SIGCHLD; +pub const SIGDEADLK: c_int = 7; +pub const SIGEMT: c_int = 7; +pub const SIGEV_NONE: c_int = 0; +pub const SIGEV_SIGNAL: c_int = 129; +pub const SIGEV_THREAD: c_int = 135; +pub const SIOCGIFADDR: c_int = -1064277727; +pub const SO_FIB: c_int = 0x100a; +pub const SO_OVERFLOWED: c_int = 0x1009; +pub const SO_SETFIB: c_int = 0x100a; +pub const SO_TXPRIO: c_int = 0x100b; +pub const SO_USELOOPBACK: c_int = 0x0040; +pub const SO_VLANPRIO: c_int = 0x100c; +pub const _SS_ALIGNSIZE: usize = crate::mem::size_of::(); pub const _SS_MAXSIZE: usize = 128; pub const _SS_PAD1SIZE: usize = _SS_ALIGNSIZE - 2; pub const _SS_PAD2SIZE: usize = _SS_MAXSIZE - 2 - _SS_PAD1SIZE - _SS_ALIGNSIZE; pub const TC_CPOSIX: tcflag_t = CLOCAL | CREAD | CSIZE | CSTOPB | HUPCL | PARENB | PARODD; -pub const TCGETS: ::c_int = 0x404c540d; +pub const TCGETS: c_int = 0x404c540d; pub const TC_IPOSIX: tcflag_t = BRKINT | ICRNL | IGNBRK | IGNPAR | INLCR | INPCK | ISTRIP | IXOFF | IXON | PARMRK; pub const TC_LPOSIX: tcflag_t = ECHO | ECHOE | ECHOK | ECHONL | ICANON | IEXTEN | ISIG | NOFLSH | TOSTOP; pub const TC_OPOSIX: tcflag_t = OPOST; -pub const T_FMT_AMPM: ::nl_item = 5; - -pub const TIOCCBRK: ::c_int = 29818; -pub const TIOCCDTR: ::c_int = 29816; -pub const TIOCDRAIN: ::c_int = 29790; -pub const TIOCEXCL: ::c_int = 29709; -pub const TIOCFLUSH: ::c_int = -2147191792; -pub const TIOCGETA: ::c_int = 1078752275; -pub const TIOCGPGRP: ::c_int = 1074033783; -pub const TIOCGWINSZ: ::c_int = 1074295912; -pub const TIOCMBIC: ::c_int = -2147191701; -pub const TIOCMBIS: ::c_int = -2147191700; -pub const TIOCMGET: ::c_int = 1074033770; -pub const TIOCMSET: ::c_int = -2147191699; -pub const TIOCNOTTY: ::c_int = 29809; -pub const TIOCNXCL: ::c_int = 29710; -pub const TIOCOUTQ: ::c_int = 1074033779; -pub const TIOCPKT: ::c_int = -2147191696; -pub const TIOCPKT_DATA: ::c_int = 0x00; -pub const TIOCPKT_DOSTOP: ::c_int = 0x20; -pub const TIOCPKT_FLUSHREAD: ::c_int = 0x01; -pub const TIOCPKT_FLUSHWRITE: ::c_int = 0x02; -pub const TIOCPKT_IOCTL: ::c_int = 0x40; -pub const TIOCPKT_NOSTOP: ::c_int = 0x10; -pub const TIOCPKT_START: ::c_int = 0x08; -pub const TIOCPKT_STOP: ::c_int = 0x04; -pub const TIOCSBRK: ::c_int = 29819; -pub const TIOCSCTTY: ::c_int = 29793; -pub const TIOCSDTR: ::c_int = 29817; -pub const TIOCSETA: ::c_int = -2142473196; -pub const TIOCSETAF: ::c_int = -2142473194; -pub const TIOCSETAW: ::c_int = -2142473195; -pub const TIOCSPGRP: ::c_int = -2147191690; -pub const TIOCSTART: ::c_int = 29806; -pub const TIOCSTI: ::c_int = -2147388302; -pub const TIOCSTOP: ::c_int = 29807; -pub const TIOCSWINSZ: ::c_int = -2146929561; - -pub const USER_CS_PATH: ::c_int = 1; -pub const USER_BC_BASE_MAX: ::c_int = 2; -pub const USER_BC_DIM_MAX: ::c_int = 3; -pub const USER_BC_SCALE_MAX: ::c_int = 4; -pub const USER_BC_STRING_MAX: ::c_int = 5; -pub const USER_COLL_WEIGHTS_MAX: ::c_int = 6; -pub const USER_EXPR_NEST_MAX: ::c_int = 7; -pub const USER_LINE_MAX: ::c_int = 8; -pub const USER_RE_DUP_MAX: ::c_int = 9; -pub const USER_POSIX2_VERSION: ::c_int = 10; -pub const USER_POSIX2_C_BIND: ::c_int = 11; -pub const USER_POSIX2_C_DEV: ::c_int = 12; -pub const USER_POSIX2_CHAR_TERM: ::c_int = 13; -pub const USER_POSIX2_FORT_DEV: ::c_int = 14; -pub const USER_POSIX2_FORT_RUN: ::c_int = 15; -pub const USER_POSIX2_LOCALEDEF: ::c_int = 16; -pub const USER_POSIX2_SW_DEV: ::c_int = 17; -pub const USER_POSIX2_UPE: ::c_int = 18; -pub const USER_STREAM_MAX: ::c_int = 19; -pub const USER_TZNAME_MAX: ::c_int = 20; -pub const USER_ATEXIT_MAX: ::c_int = 21; -pub const USER_MAXID: ::c_int = 22; +pub const T_FMT_AMPM: crate::nl_item = 5; + +pub const TIOCCBRK: c_int = 29818; +pub const TIOCCDTR: c_int = 29816; +pub const TIOCDRAIN: c_int = 29790; +pub const TIOCEXCL: c_int = 29709; +pub const TIOCFLUSH: c_int = -2147191792; +pub const TIOCGETA: c_int = 1078752275; +pub const TIOCGPGRP: c_int = 1074033783; +pub const TIOCGWINSZ: c_int = 1074295912; +pub const TIOCMBIC: c_int = -2147191701; +pub const TIOCMBIS: c_int = -2147191700; +pub const TIOCMGET: c_int = 1074033770; +pub const TIOCMSET: c_int = -2147191699; +pub const TIOCNOTTY: c_int = 29809; +pub const TIOCNXCL: c_int = 29710; +pub const TIOCOUTQ: c_int = 1074033779; +pub const TIOCPKT: c_int = -2147191696; +pub const TIOCPKT_DATA: c_int = 0x00; +pub const TIOCPKT_DOSTOP: c_int = 0x20; +pub const TIOCPKT_FLUSHREAD: c_int = 0x01; +pub const TIOCPKT_FLUSHWRITE: c_int = 0x02; +pub const TIOCPKT_IOCTL: c_int = 0x40; +pub const TIOCPKT_NOSTOP: c_int = 0x10; +pub const TIOCPKT_START: c_int = 0x08; +pub const TIOCPKT_STOP: c_int = 0x04; +pub const TIOCSBRK: c_int = 29819; +pub const TIOCSCTTY: c_int = 29793; +pub const TIOCSDTR: c_int = 29817; +pub const TIOCSETA: c_int = -2142473196; +pub const TIOCSETAF: c_int = -2142473194; +pub const TIOCSETAW: c_int = -2142473195; +pub const TIOCSPGRP: c_int = -2147191690; +pub const TIOCSTART: c_int = 29806; +pub const TIOCSTI: c_int = -2147388302; +pub const TIOCSTOP: c_int = 29807; +pub const TIOCSWINSZ: c_int = -2146929561; + +pub const USER_CS_PATH: c_int = 1; +pub const USER_BC_BASE_MAX: c_int = 2; +pub const USER_BC_DIM_MAX: c_int = 3; +pub const USER_BC_SCALE_MAX: c_int = 4; +pub const USER_BC_STRING_MAX: c_int = 5; +pub const USER_COLL_WEIGHTS_MAX: c_int = 6; +pub const USER_EXPR_NEST_MAX: c_int = 7; +pub const USER_LINE_MAX: c_int = 8; +pub const USER_RE_DUP_MAX: c_int = 9; +pub const USER_POSIX2_VERSION: c_int = 10; +pub const USER_POSIX2_C_BIND: c_int = 11; +pub const USER_POSIX2_C_DEV: c_int = 12; +pub const USER_POSIX2_CHAR_TERM: c_int = 13; +pub const USER_POSIX2_FORT_DEV: c_int = 14; +pub const USER_POSIX2_FORT_RUN: c_int = 15; +pub const USER_POSIX2_LOCALEDEF: c_int = 16; +pub const USER_POSIX2_SW_DEV: c_int = 17; +pub const USER_POSIX2_UPE: c_int = 18; +pub const USER_STREAM_MAX: c_int = 19; +pub const USER_TZNAME_MAX: c_int = 20; +pub const USER_ATEXIT_MAX: c_int = 21; +pub const USER_MAXID: c_int = 22; pub const VDOWN: usize = 31; pub const VINS: usize = 32; @@ -2670,19 +2672,19 @@ pub const VRIGHT: usize = 29; pub const VUP: usize = 30; pub const XCASE: tcflag_t = 0x00000004; -pub const PTHREAD_BARRIER_SERIAL_THREAD: ::c_int = -1; -pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0x00; -pub const PTHREAD_CREATE_DETACHED: ::c_int = 0x01; +pub const PTHREAD_BARRIER_SERIAL_THREAD: c_int = -1; +pub const PTHREAD_CREATE_JOINABLE: c_int = 0x00; +pub const PTHREAD_CREATE_DETACHED: c_int = 0x01; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 3; -pub const PTHREAD_STACK_MIN: ::size_t = 256; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = 0; -pub const PTHREAD_MUTEX_STALLED: ::c_int = 0x00; -pub const PTHREAD_MUTEX_ROBUST: ::c_int = 0x10; -pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0x00; -pub const PTHREAD_PROCESS_SHARED: ::c_int = 0x01; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 1; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 2; +pub const PTHREAD_MUTEX_NORMAL: c_int = 3; +pub const PTHREAD_STACK_MIN: size_t = 256; +pub const PTHREAD_MUTEX_DEFAULT: c_int = 0; +pub const PTHREAD_MUTEX_STALLED: c_int = 0x00; +pub const PTHREAD_MUTEX_ROBUST: c_int = 0x10; +pub const PTHREAD_PROCESS_PRIVATE: c_int = 0x00; +pub const PTHREAD_PROCESS_SHARED: c_int = 0x01; pub const PTHREAD_KEYS_MAX: usize = 128; @@ -2702,13 +2704,13 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { __lock: PTHREAD_MUTEX_INITIALIZER, __rcond: PTHREAD_COND_INITIALIZER, __wcond: PTHREAD_COND_INITIALIZER, - __owner: -2i32 as ::c_uint, + __owner: -2i32 as c_uint, __spare: 0, }; const_fn! { {const} fn _CMSG_ALIGN(len: usize) -> usize { - len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) + len + crate::mem::size_of::() - 1 & !(crate::mem::size_of::() - 1) } {const} fn _ALIGN(p: usize, b: usize) -> usize { @@ -2718,51 +2720,51 @@ const_fn! { f! { pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= ::mem::size_of::() { + if (*mhdr).msg_controllen as usize >= crate::mem::size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { 0 as *mut cmsghdr } } - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { + pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { let msg = _CMSG_ALIGN((*cmsg).cmsg_len as usize); - let next = cmsg as usize + msg + _CMSG_ALIGN(::mem::size_of::<::cmsghdr>()); + let next = cmsg as usize + msg + _CMSG_ALIGN(crate::mem::size_of::()); if next > (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize { - 0 as *mut ::cmsghdr + 0 as *mut cmsghdr } else { - (cmsg as usize + msg) as *mut ::cmsghdr + (cmsg as usize + msg) as *mut cmsghdr } } - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar).offset(_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { + (cmsg as *mut c_uchar).offset(_CMSG_ALIGN(crate::mem::size_of::()) as isize) } - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - _CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length + pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + _CMSG_ALIGN(crate::mem::size_of::()) as c_uint + length } - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (_CMSG_ALIGN(::mem::size_of::()) + _CMSG_ALIGN(length as usize)) as ::c_uint + pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + (_CMSG_ALIGN(crate::mem::size_of::()) + _CMSG_ALIGN(length as usize)) as c_uint } - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { + pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } @@ -2773,15 +2775,15 @@ f! { } } - pub fn _DEXTRA_FIRST(_d: *const dirent) -> *mut ::dirent_extra { + pub fn _DEXTRA_FIRST(_d: *const dirent) -> *mut crate::dirent_extra { let _f = &((*(_d)).d_name) as *const _; let _s = _d as usize; - _ALIGN(_s + _f as usize - _s + (*_d).d_namelen as usize + 1, 8) as *mut ::dirent_extra + _ALIGN(_s + _f as usize - _s + (*_d).d_namelen as usize + 1, 8) as *mut crate::dirent_extra } - pub fn _DEXTRA_VALID(_x: *const ::dirent_extra, _d: *const dirent) -> bool { - let sz = _x as usize - _d as usize + ::mem::size_of::<::dirent_extra>(); + pub fn _DEXTRA_VALID(_x: *const crate::dirent_extra, _d: *const dirent) -> bool { + let sz = _x as usize - _d as usize + crate::mem::size_of::(); let rsz = (*_d).d_reclen as usize; if sz > rsz || sz + (*_x).d_datalen as usize > rsz { @@ -2791,66 +2793,66 @@ f! { } } - pub fn _DEXTRA_NEXT(_x: *const ::dirent_extra) -> *mut ::dirent_extra { + pub fn _DEXTRA_NEXT(_x: *const crate::dirent_extra) -> *mut crate::dirent_extra { _ALIGN( - _x as usize + ::mem::size_of::<::dirent_extra>() + (*_x).d_datalen as usize, + _x as usize + crate::mem::size_of::() + (*_x).d_datalen as usize, 8, - ) as *mut ::dirent_extra + ) as *mut crate::dirent_extra } pub fn SOCKCREDSIZE(ngrps: usize) -> usize { let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 }; - ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps + crate::mem::size_of::() + crate::mem::size_of::() * ngrps } - pub fn major(dev: ::dev_t) -> ::c_uint { - ((dev as ::c_uint) >> 10) & 0x3f + pub fn major(dev: crate::dev_t) -> c_uint { + ((dev as c_uint) >> 10) & 0x3f } - pub fn minor(dev: ::dev_t) -> ::c_uint { - (dev as ::c_uint) & 0x3ff + pub fn minor(dev: crate::dev_t) -> c_uint { + (dev as c_uint) & 0x3ff } } safe_f! { - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + pub {const} fn WIFSTOPPED(status: c_int) -> bool { (status & 0xff) == 0x7f } - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + pub {const} fn WSTOPSIG(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + pub {const} fn WIFCONTINUED(status: c_int) -> bool { status == 0xffff } - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + pub {const} fn WIFSIGNALED(status: c_int) -> bool { ((status & 0x7f) + 1) as i8 >= 2 } - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + pub {const} fn WTERMSIG(status: c_int) -> c_int { status & 0x7f } - pub {const} fn WIFEXITED(status: ::c_int) -> bool { + pub {const} fn WIFEXITED(status: c_int) -> bool { (status & 0x7f) == 0 } - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + pub {const} fn WEXITSTATUS(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WCOREDUMP(status: ::c_int) -> bool { + pub {const} fn WCOREDUMP(status: c_int) -> bool { (status & 0x80) != 0 } pub {const} fn IPTOS_ECN(x: u8) -> u8 { - x & ::IPTOS_ECN_MASK + x & crate::IPTOS_ECN_MASK } - pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - ((major << 10) | (minor)) as ::dev_t + pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + ((major << 10) | (minor)) as crate::dev_t } } @@ -2860,628 +2862,615 @@ safe_f! { #[link(name = "socket")] #[cfg_attr(not(target_env = "nto70"), link(name = "regex"))] extern "C" { - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; - pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + pub fn sem_destroy(sem: *mut sem_t) -> c_int; + pub fn sem_init(sem: *mut sem_t, pshared: c_int, value: c_uint) -> c_int; + pub fn fdatasync(fd: c_int) -> c_int; + pub fn getpriority(which: c_int, who: crate::id_t) -> c_int; + pub fn setpriority(which: c_int, who: crate::id_t, prio: c_int) -> c_int; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; pub fn mknodat( - __fd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - dev: ::dev_t, - ) -> ::c_int; + __fd: c_int, + pathname: *const c_char, + mode: crate::mode_t, + dev: crate::dev_t, + ) -> 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; - pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int; + pub fn clock_getres(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + pub fn clock_settime(clk_id: crate::clockid_t, tp: *const crate::timespec) -> c_int; + pub fn clock_getcpuclockid(pid: crate::pid_t, clk_id: *mut crate::clockid_t) -> c_int; pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int; + attr: *const crate::pthread_attr_t, + stackaddr: *mut *mut c_void, + stacksize: *mut size_t, + ) -> c_int; + pub fn memalign(align: size_t, size: size_t) -> *mut c_void; + pub fn setgroups(ngroups: c_int, ptr: *const crate::gid_t) -> c_int; - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; + pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advise: c_int) -> c_int; + pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; + pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char; pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; + dirfd: c_int, + path: *const c_char, + times: *const crate::timespec, + flag: c_int, + ) -> c_int; pub fn pthread_condattr_getclock( attr: *const pthread_condattr_t, clock_id: *mut clockid_t, - ) -> ::c_int; + ) -> c_int; pub fn pthread_condattr_setclock( attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_mutexattr_setpshared( - attr: *mut pthread_mutexattr_t, - pshared: ::c_int, - ) -> ::c_int; + clock_id: crate::clockid_t, + ) -> c_int; + pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: c_int) -> c_int; + pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, pshared: c_int) -> c_int; pub fn pthread_rwlockattr_getpshared( attr: *const pthread_rwlockattr_t, - val: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int; - pub fn ptsname_r(fd: ::c_int, buf: *mut ::c_char, buflen: ::size_t) -> *mut ::c_char; - pub fn clearenv() -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) - -> ::c_int; + val: *mut c_int, + ) -> c_int; + pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: c_int) -> c_int; + pub fn ptsname_r(fd: c_int, buf: *mut c_char, buflen: size_t) -> *mut c_char; + pub fn clearenv() -> c_int; + pub fn waitid( + idtype: idtype_t, + id: id_t, + infop: *mut crate::siginfo_t, + options: c_int, + ) -> c_int; pub fn wait4( - pid: ::pid_t, - status: *mut ::c_int, - options: ::c_int, - rusage: *mut ::rusage, - ) -> ::pid_t; + pid: crate::pid_t, + status: *mut c_int, + options: c_int, + rusage: *mut crate::rusage, + ) -> crate::pid_t; // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execvpe( - file: *const ::c_char, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - - pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; - pub fn freeifaddrs(ifa: *mut ::ifaddrs); - pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; - - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - - pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + file: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + ) -> c_int; + + pub fn getifaddrs(ifap: *mut *mut crate::ifaddrs) -> c_int; + pub fn freeifaddrs(ifa: *mut crate::ifaddrs); + pub fn bind( + socket: c_int, + address: *const crate::sockaddr, + address_len: crate::socklen_t, + ) -> c_int; + + pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; + pub fn readv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; + + pub fn sendmsg(fd: c_int, msg: *const crate::msghdr, flags: c_int) -> ssize_t; + pub fn recvmsg(fd: c_int, msg: *mut crate::msghdr, flags: c_int) -> ssize_t; pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, + amaster: *mut c_int, + aslave: *mut c_int, + name: *mut c_char, termp: *mut termios, - winp: *mut ::winsize, - ) -> ::c_int; + winp: *mut crate::winsize, + ) -> c_int; pub fn forkpty( - amaster: *mut ::c_int, - name: *mut ::c_char, + amaster: *mut c_int, + name: *mut c_char, termp: *mut termios, - winp: *mut ::winsize, - ) -> ::pid_t; - pub fn login_tty(fd: ::c_int) -> ::c_int; + winp: *mut crate::winsize, + ) -> crate::pid_t; + pub fn login_tty(fd: c_int) -> c_int; - pub fn uname(buf: *mut ::utsname) -> ::c_int; + pub fn uname(buf: *mut crate::utsname) -> c_int; - pub fn getpeereid(socket: ::c_int, euid: *mut ::uid_t, egid: *mut ::gid_t) -> ::c_int; + pub fn getpeereid(socket: c_int, euid: *mut crate::uid_t, egid: *mut crate::gid_t) -> c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; - pub fn abs(i: ::c_int) -> ::c_int; - pub fn labs(i: ::c_long) -> ::c_long; - pub fn rand() -> ::c_int; - pub fn srand(seed: ::c_uint); + pub fn abs(i: c_int) -> c_int; + pub fn labs(i: c_long) -> c_long; + pub fn rand() -> c_int; + pub fn srand(seed: c_uint); pub fn setpwent(); pub fn endpwent(); pub fn getpwent() -> *mut passwd; pub fn setgrent(); pub fn endgrent(); - pub fn getgrent() -> *mut ::group; + pub fn getgrent() -> *mut crate::group; pub fn setspent(); pub fn endspent(); - pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; - pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn ftok(pathname: *const c_char, proj_id: c_int) -> crate::key_t; + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; + pub fn posix_fallocate(fd: c_int, offset: off_t, len: off_t) -> c_int; + pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int; + pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int; pub fn sigtimedwait( set: *const sigset_t, info: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; - pub fn pthread_setschedprio(native: ::pthread_t, priority: ::c_int) -> ::c_int; + timeout: *const crate::timespec, + ) -> c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> c_int; + pub fn pthread_setschedprio(native: crate::pthread_t, priority: c_int) -> c_int; pub fn if_nameindex() -> *mut if_nameindex; pub fn if_freenameindex(ptr: *mut if_nameindex); pub fn glob( pattern: *const c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t, - ) -> ::c_int; - pub fn globfree(pglob: *mut ::glob_t); + flags: c_int, + errfunc: Option c_int>, + pglob: *mut crate::glob_t, + ) -> c_int; + pub fn globfree(pglob: *mut crate::glob_t); - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn posix_madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + pub fn shm_unlink(name: *const c_char) -> c_int; - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + pub fn seekdir(dirp: *mut crate::DIR, loc: c_long); - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; + pub fn telldir(dirp: *mut crate::DIR) -> c_long; - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; - - pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; + socket: c_int, + buf: *mut c_void, + len: size_t, + flags: c_int, + addr: *mut crate::sockaddr, + addrlen: *mut crate::socklen_t, + ) -> ssize_t; + pub fn mkstemps(template: *mut c_char, suffixlen: c_int) -> c_int; + + pub fn getdomainname(name: *mut c_char, len: size_t) -> c_int; + pub fn setdomainname(name: *const c_char, len: size_t) -> c_int; pub fn sync(); pub fn pthread_getschedparam( - native: ::pthread_t, - policy: *mut ::c_int, - param: *mut ::sched_param, - ) -> ::c_int; - pub fn umount(target: *const ::c_char, flags: ::c_int) -> ::c_int; - pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::c_void) -> ::c_int; - pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; + native: crate::pthread_t, + policy: *mut c_int, + param: *mut crate::sched_param, + ) -> c_int; + pub fn umount(target: *const c_char, flags: c_int) -> c_int; + pub fn sched_get_priority_max(policy: c_int) -> c_int; + pub fn settimeofday(tv: *const crate::timeval, tz: *const c_void) -> c_int; + pub fn sched_rr_get_interval(pid: crate::pid_t, tp: *mut crate::timespec) -> c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int; + pub fn sched_setparam(pid: crate::pid_t, param: *const crate::sched_param) -> c_int; pub fn mount( - special_device: *const ::c_char, - mount_directory: *const ::c_char, - flags: ::c_int, - mount_type: *const ::c_char, - mount_data: *const ::c_void, - mount_datalen: ::c_int, - ) -> ::c_int; - pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; - pub fn pthread_mutex_consistent(mutex: *mut pthread_mutex_t) -> ::c_int; + special_device: *const c_char, + mount_directory: *const c_char, + flags: c_int, + mount_type: *const c_char, + mount_data: *const c_void, + mount_datalen: c_int, + ) -> c_int; + pub fn sched_getparam(pid: crate::pid_t, param: *mut crate::sched_param) -> c_int; + pub fn pthread_mutex_consistent(mutex: *mut pthread_mutex_t) -> c_int; pub fn pthread_mutex_timedlock( lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_trylock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_unlock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_barrierattr_init(__attr: *mut ::pthread_barrierattr_t) -> ::c_int; - pub fn pthread_barrierattr_destroy(__attr: *mut ::pthread_barrierattr_t) -> ::c_int; + abstime: *const crate::timespec, + ) -> c_int; + pub fn pthread_spin_init(lock: *mut crate::pthread_spinlock_t, pshared: c_int) -> c_int; + pub fn pthread_spin_destroy(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn pthread_spin_lock(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn pthread_spin_trylock(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn pthread_spin_unlock(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn pthread_barrierattr_init(__attr: *mut crate::pthread_barrierattr_t) -> c_int; + pub fn pthread_barrierattr_destroy(__attr: *mut crate::pthread_barrierattr_t) -> c_int; pub fn pthread_barrierattr_getpshared( - __attr: *const ::pthread_barrierattr_t, - __pshared: *mut ::c_int, - ) -> ::c_int; + __attr: *const crate::pthread_barrierattr_t, + __pshared: *mut c_int, + ) -> c_int; pub fn pthread_barrierattr_setpshared( - __attr: *mut ::pthread_barrierattr_t, - __pshared: ::c_int, - ) -> ::c_int; + __attr: *mut crate::pthread_barrierattr_t, + __pshared: c_int, + ) -> c_int; pub fn pthread_barrier_init( - __barrier: *mut ::pthread_barrier_t, - __attr: *const ::pthread_barrierattr_t, - __count: ::c_uint, - ) -> ::c_int; - pub fn pthread_barrier_destroy(__barrier: *mut ::pthread_barrier_t) -> ::c_int; - pub fn pthread_barrier_wait(__barrier: *mut ::pthread_barrier_t) -> ::c_int; - - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + __barrier: *mut crate::pthread_barrier_t, + __attr: *const crate::pthread_barrierattr_t, + __count: c_uint, + ) -> c_int; + pub fn pthread_barrier_destroy(__barrier: *mut crate::pthread_barrier_t) -> c_int; + pub fn pthread_barrier_wait(__barrier: *mut crate::pthread_barrier_t) -> c_int; + + pub fn sched_getscheduler(pid: crate::pid_t) -> c_int; pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; + clk_id: crate::clockid_t, + flags: c_int, + rqtp: *const crate::timespec, + rmtp: *mut crate::timespec, + ) -> c_int; pub fn pthread_attr_getguardsize( - 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; + attr: *const crate::pthread_attr_t, + guardsize: *mut size_t, + ) -> c_int; + pub fn pthread_attr_setguardsize(attr: *mut crate::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 pthread_condattr_getpshared( attr: *const pthread_condattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; + pshared: *mut c_int, + ) -> c_int; pub fn pthread_setschedparam( - native: ::pthread_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; + native: crate::pthread_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; + pid: crate::pid_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; + pub fn sigsuspend(mask: *const crate::sigset_t) -> c_int; pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn sem_close(sem: *mut sem_t) -> ::c_int; - pub fn getdtablesize() -> ::c_int; + gid: crate::gid_t, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn sem_close(sem: *mut sem_t) -> c_int; + pub fn getdtablesize() -> c_int; pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; - pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + name: *const c_char, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn initgroups(user: *const c_char, group: crate::gid_t) -> c_int; + pub fn pthread_sigmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; + pub fn sem_open(name: *const c_char, oflag: c_int, ...) -> *mut sem_t; + pub fn getgrnam(name: *const c_char) -> *mut crate::group; + pub fn pthread_cancel(thread: crate::pthread_t) -> c_int; + pub fn pthread_kill(thread: crate::pthread_t, sig: c_int) -> c_int; + pub fn sem_unlink(name: *const c_char) -> c_int; + pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; pub fn getpwnam_r( - name: *const ::c_char, + name: *const c_char, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; pub fn getpwuid_r( - uid: ::uid_t, + uid: crate::uid_t, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + ) -> c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int; pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + prepare: Option, + parent: Option, + child: Option, + ) -> c_int; + pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; pub fn getgrouplist( - user: *const ::c_char, - group: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int, - ) -> ::c_int; + user: *const c_char, + group: crate::gid_t, + groups: *mut crate::gid_t, + ngroups: *mut c_int, + ) -> c_int; pub fn pthread_mutexattr_getpshared( attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; + pshared: *mut c_int, + ) -> c_int; pub fn pthread_mutexattr_getrobust( attr: *const pthread_mutexattr_t, - robustness: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_setrobust( - attr: *mut pthread_mutexattr_t, - robustness: ::c_int, - ) -> ::c_int; + robustness: *mut c_int, + ) -> c_int; + pub fn pthread_mutexattr_setrobust(attr: *mut pthread_mutexattr_t, robustness: c_int) -> c_int; pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - pub fn getitimer(which: ::c_int, curr_value: *mut ::itimerval) -> ::c_int; + native: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + f: extern "C" fn(*mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; + pub fn getitimer(which: c_int, curr_value: *mut crate::itimerval) -> c_int; pub fn setitimer( - which: ::c_int, - value: *const ::itimerval, - ovalue: *mut ::itimerval, - ) -> ::c_int; + which: c_int, + value: *const crate::itimerval, + ovalue: *mut crate::itimerval, + ) -> 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; + pid: *mut crate::pid_t, + path: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::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; + pid: *mut crate::pid_t, + file: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::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; + default: *mut crate::sigset_t, + ) -> c_int; pub fn posix_spawnattr_setsigdefault( attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; + default: *const crate::sigset_t, + ) -> c_int; pub fn posix_spawnattr_getsigmask( attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; + default: *mut crate::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; + default: *const crate::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; + flags: *mut crate::pid_t, + ) -> c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: crate::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; + 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; + param: *mut crate::sched_param, + ) -> c_int; pub fn posix_spawnattr_setschedparam( attr: *mut posix_spawnattr_t, - param: *const ::sched_param, - ) -> ::c_int; + param: *const crate::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_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; + fd: c_int, + path: *const c_char, + oflag: c_int, + mode: crate::mode_t, + ) -> c_int; pub fn posix_spawn_file_actions_addclose( actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; + 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; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn faccessat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::c_int, - flags: ::c_int, - ) -> ::c_int; - pub fn inotify_rm_watch(fd: ::c_int, wd: ::c_int) -> ::c_int; - pub fn inotify_init() -> ::c_int; - pub fn inotify_add_watch(fd: ::c_int, path: *const ::c_char, mask: u32) -> ::c_int; - - pub fn gettid() -> ::pid_t; - - pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int; + fd: c_int, + newfd: c_int, + ) -> c_int; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut crate::FILE; + pub fn faccessat(dirfd: c_int, pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; + pub fn inotify_rm_watch(fd: c_int, wd: c_int) -> c_int; + pub fn inotify_init() -> c_int; + pub fn inotify_add_watch(fd: c_int, path: *const c_char, mask: u32) -> c_int; + + pub fn gettid() -> crate::pid_t; + + pub fn pthread_getcpuclockid(thread: crate::pthread_t, clk_id: *mut crate::clockid_t) -> c_int; pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - servlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; + sa: *const crate::sockaddr, + salen: crate::socklen_t, + host: *mut c_char, + hostlen: crate::socklen_t, + serv: *mut c_char, + servlen: crate::socklen_t, + flags: c_int, + ) -> c_int; pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_uint, - ) -> ::c_int; + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_uint, + ) -> c_int; pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_uint, - timeout: *mut ::timespec, - ) -> ::c_int; + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_uint, + timeout: *mut crate::timespec, + ) -> c_int; - pub fn mallopt(param: ::c_int, value: i64) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn mallopt(param: c_int, value: i64) -> c_int; + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut c_void) -> c_int; - pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; + pub fn ctermid(s: *mut c_char) -> *mut c_char; + pub fn ioctl(fd: c_int, request: c_int, ...) -> c_int; - pub fn mallinfo() -> ::mallinfo; + pub fn mallinfo() -> crate::mallinfo; pub fn getpwent_r( - pwd: *mut ::passwd, - buf: *mut ::c_char, - __bufsize: ::c_int, - __result: *mut *mut ::passwd, - ) -> ::c_int; - pub fn pthread_getname_np(thread: ::pthread_t, name: *mut ::c_char, len: ::c_int) -> ::c_int; - pub fn pthread_setname_np(thread: ::pthread_t, name: *const ::c_char) -> ::c_int; + pwd: *mut crate::passwd, + buf: *mut c_char, + __bufsize: c_int, + __result: *mut *mut crate::passwd, + ) -> c_int; + pub fn pthread_getname_np(thread: crate::pthread_t, name: *mut c_char, len: c_int) -> c_int; + pub fn pthread_setname_np(thread: crate::pthread_t, name: *const c_char) -> c_int; pub fn sysctl( - _: *const ::c_int, - _: ::c_uint, - _: *mut ::c_void, - _: *mut ::size_t, - _: *const ::c_void, - _: ::size_t, - ) -> ::c_int; + _: *const c_int, + _: c_uint, + _: *mut c_void, + _: *mut size_t, + _: *const c_void, + _: size_t, + ) -> c_int; - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlp: *const ::rlimit) -> ::c_int; + pub fn getrlimit(resource: c_int, rlim: *mut crate::rlimit) -> c_int; + pub fn setrlimit(resource: c_int, rlp: *const crate::rlimit) -> c_int; pub fn lio_listio( - __mode: ::c_int, + __mode: c_int, __list: *const *mut aiocb, - __nent: ::c_int, + __nent: c_int, __sig: *mut sigevent, - ) -> ::c_int; + ) -> c_int; pub fn dl_iterate_phdr( - callback: ::Option< + callback: Option< unsafe extern "C" fn( // The original .h file declares this as *const, but for consistency with other platforms, // changing this to *mut to make it easier to use. // Maybe in v0.3 all platforms should use this as a *const. info: *mut dl_phdr_info, - size: ::size_t, - data: *mut ::c_void, - ) -> ::c_int, + size: size_t, + data: *mut c_void, + ) -> c_int, >, - data: *mut ::c_void, - ) -> ::c_int; + data: *mut c_void, + ) -> c_int; - pub fn memset_s(s: *mut ::c_void, smax: ::size_t, c: ::c_int, n: ::size_t) -> ::c_int; + pub fn memset_s(s: *mut c_void, smax: size_t, c: c_int, n: size_t) -> c_int; - pub fn regcomp( - __preg: *mut ::regex_t, - __pattern: *const ::c_char, - __cflags: ::c_int, - ) -> ::c_int; + pub fn regcomp(__preg: *mut crate::regex_t, __pattern: *const c_char, __cflags: c_int) + -> c_int; pub fn regexec( - __preg: *const ::regex_t, - __str: *const ::c_char, - __nmatch: ::size_t, - __pmatch: *mut ::regmatch_t, - __eflags: ::c_int, - ) -> ::c_int; + __preg: *const crate::regex_t, + __str: *const c_char, + __nmatch: size_t, + __pmatch: *mut crate::regmatch_t, + __eflags: c_int, + ) -> c_int; pub fn regerror( - __errcode: ::c_int, - __preg: *const ::regex_t, - __errbuf: *mut ::c_char, - __errbuf_size: ::size_t, - ) -> ::size_t; - pub fn regfree(__preg: *mut ::regex_t); - pub fn dirfd(__dirp: *mut ::DIR) -> ::c_int; - pub fn dircntl(dir: *mut ::DIR, cmd: ::c_int, ...) -> ::c_int; - - pub fn aio_cancel(__fd: ::c_int, __aiocbp: *mut ::aiocb) -> ::c_int; - pub fn aio_error(__aiocbp: *const ::aiocb) -> ::c_int; - pub fn aio_fsync(__operation: ::c_int, __aiocbp: *mut ::aiocb) -> ::c_int; - pub fn aio_read(__aiocbp: *mut ::aiocb) -> ::c_int; - pub fn aio_return(__aiocpb: *mut ::aiocb) -> ::ssize_t; + __errcode: c_int, + __preg: *const crate::regex_t, + __errbuf: *mut c_char, + __errbuf_size: size_t, + ) -> size_t; + pub fn regfree(__preg: *mut crate::regex_t); + pub fn dirfd(__dirp: *mut crate::DIR) -> c_int; + pub fn dircntl(dir: *mut crate::DIR, cmd: c_int, ...) -> c_int; + + pub fn aio_cancel(__fd: c_int, __aiocbp: *mut crate::aiocb) -> c_int; + pub fn aio_error(__aiocbp: *const crate::aiocb) -> c_int; + pub fn aio_fsync(__operation: c_int, __aiocbp: *mut crate::aiocb) -> c_int; + pub fn aio_read(__aiocbp: *mut crate::aiocb) -> c_int; + pub fn aio_return(__aiocpb: *mut crate::aiocb) -> ssize_t; pub fn aio_suspend( - __list: *const *const ::aiocb, - __nent: ::c_int, - __timeout: *const ::timespec, - ) -> ::c_int; - pub fn aio_write(__aiocpb: *mut ::aiocb) -> ::c_int; - - pub fn mq_close(__mqdes: ::mqd_t) -> ::c_int; - pub fn mq_getattr(__mqdes: ::mqd_t, __mqstat: *mut ::mq_attr) -> ::c_int; - pub fn mq_notify(__mqdes: ::mqd_t, __notification: *const ::sigevent) -> ::c_int; - pub fn mq_open(__name: *const ::c_char, __oflag: ::c_int, ...) -> ::mqd_t; + __list: *const *const crate::aiocb, + __nent: c_int, + __timeout: *const crate::timespec, + ) -> c_int; + pub fn aio_write(__aiocpb: *mut crate::aiocb) -> c_int; + + pub fn mq_close(__mqdes: crate::mqd_t) -> c_int; + pub fn mq_getattr(__mqdes: crate::mqd_t, __mqstat: *mut crate::mq_attr) -> c_int; + pub fn mq_notify(__mqdes: crate::mqd_t, __notification: *const crate::sigevent) -> c_int; + pub fn mq_open(__name: *const c_char, __oflag: c_int, ...) -> crate::mqd_t; pub fn mq_receive( - __mqdes: ::mqd_t, - __msg_ptr: *mut ::c_char, - __msg_len: ::size_t, - __msg_prio: *mut ::c_uint, - ) -> ::ssize_t; + __mqdes: crate::mqd_t, + __msg_ptr: *mut c_char, + __msg_len: size_t, + __msg_prio: *mut c_uint, + ) -> ssize_t; pub fn mq_send( - __mqdes: ::mqd_t, - __msg_ptr: *const ::c_char, - __msg_len: ::size_t, - __msg_prio: ::c_uint, - ) -> ::c_int; + __mqdes: crate::mqd_t, + __msg_ptr: *const c_char, + __msg_len: size_t, + __msg_prio: c_uint, + ) -> c_int; pub fn mq_setattr( - __mqdes: ::mqd_t, + __mqdes: crate::mqd_t, __mqstat: *const mq_attr, __omqstat: *mut mq_attr, - ) -> ::c_int; + ) -> c_int; pub fn mq_timedreceive( - __mqdes: ::mqd_t, - __msg_ptr: *mut ::c_char, - __msg_len: ::size_t, - __msg_prio: *mut ::c_uint, - __abs_timeout: *const ::timespec, - ) -> ::ssize_t; + __mqdes: crate::mqd_t, + __msg_ptr: *mut c_char, + __msg_len: size_t, + __msg_prio: *mut c_uint, + __abs_timeout: *const crate::timespec, + ) -> ssize_t; pub fn mq_timedsend( - __mqdes: ::mqd_t, - __msg_ptr: *const ::c_char, - __msg_len: ::size_t, - __msg_prio: ::c_uint, - __abs_timeout: *const ::timespec, - ) -> ::c_int; - pub fn mq_unlink(__name: *const ::c_char) -> ::c_int; - pub fn __get_errno_ptr() -> *mut ::c_int; + __mqdes: crate::mqd_t, + __msg_ptr: *const c_char, + __msg_len: size_t, + __msg_prio: c_uint, + __abs_timeout: *const crate::timespec, + ) -> c_int; + pub fn mq_unlink(__name: *const c_char) -> c_int; + pub fn __get_errno_ptr() -> *mut c_int; // System page, see https://www.qnx.com/developers/docs/7.1#com.qnx.doc.neutrino.building/topic/syspage/syspage_about.html pub static mut _syspage_ptr: *mut syspage_entry; // Function on the stack after a call to pthread_create(). This is used // as a sentinel to work around an infitnite loop in the unwinding code. - pub fn __my_thread_exit(value_ptr: *mut *const ::c_void); + pub fn __my_thread_exit(value_ptr: *mut *const c_void); } // Models the implementation in stdlib.h. Ctest will fail if trying to use the // default symbol from libc -pub unsafe fn atexit(cb: extern "C" fn()) -> ::c_int { +pub unsafe fn atexit(cb: extern "C" fn()) -> c_int { extern "C" { - static __dso_handle: *mut ::c_void; - pub fn __cxa_atexit( - cb: extern "C" fn(), - __arg: *mut ::c_void, - __dso: *mut ::c_void, - ) -> ::c_int; - } - __cxa_atexit(cb, 0 as *mut ::c_void, __dso_handle) + static __dso_handle: *mut c_void; + pub fn __cxa_atexit(cb: extern "C" fn(), __arg: *mut c_void, __dso: *mut c_void) -> c_int; + } + __cxa_atexit(cb, 0 as *mut c_void, __dso_handle) } impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { + pub unsafe fn si_addr(&self) -> *mut c_void { #[repr(C)] struct siginfo_si_addr { _pad: [u8; 32], - si_addr: *mut ::c_void, + si_addr: *mut c_void, } (*(self as *const siginfo_t as *const siginfo_si_addr)).si_addr } - pub unsafe fn si_value(&self) -> ::sigval { + pub unsafe fn si_value(&self) -> crate::sigval { #[repr(C)] struct siginfo_si_value { _pad: [u8; 32], - si_value: ::sigval, + si_value: crate::sigval, } (*(self as *const siginfo_t as *const siginfo_si_value)).si_value } - pub unsafe fn si_pid(&self) -> ::pid_t { + pub unsafe fn si_pid(&self) -> crate::pid_t { #[repr(C)] struct siginfo_si_pid { _pad: [u8; 16], - si_pid: ::pid_t, + si_pid: crate::pid_t, } (*(self as *const siginfo_t as *const siginfo_si_pid)).si_pid } - pub unsafe fn si_uid(&self) -> ::uid_t { + pub unsafe fn si_uid(&self) -> crate::uid_t { #[repr(C)] struct siginfo_si_uid { _pad: [u8; 24], - si_uid: ::uid_t, + si_uid: crate::uid_t, } (*(self as *const siginfo_t as *const siginfo_si_uid)).si_uid } - pub unsafe fn si_status(&self) -> ::c_int { + pub unsafe fn si_status(&self) -> c_int { #[repr(C)] struct siginfo_si_status { _pad: [u8; 28], - si_status: ::c_int, + si_status: c_int, } (*(self as *const siginfo_t as *const siginfo_si_status)).si_status } diff --git a/src/unix/nto/neutrino.rs b/src/unix/nto/neutrino.rs index cc86f8a379214..3e2bee367acd3 100644 --- a/src/unix/nto/neutrino.rs +++ b/src/unix/nto/neutrino.rs @@ -1,4 +1,6 @@ -pub type nto_job_t = ::sync_t; +use crate::{c_int, c_long, c_uint, c_void, size_t}; + +pub type nto_job_t = crate::sync_t; s! { pub struct syspage_entry_info { @@ -12,12 +14,12 @@ s! { } pub struct intrspin { - pub value: ::c_uint, // volatile + pub value: c_uint, // volatile } pub struct iov_t { - pub iov_base: *mut ::c_void, // union - pub iov_len: ::size_t, + pub iov_base: *mut c_void, // union + pub iov_len: size_t, } pub struct _itimer { @@ -28,7 +30,7 @@ s! { pub struct _msg_info64 { pub nd: u32, pub srcnd: u32, - pub pid: ::pid_t, + pub pid: crate::pid_t, pub tid: i32, pub chid: i32, pub scoid: i32, @@ -43,22 +45,22 @@ s! { } pub struct _cred_info { - pub ruid: ::uid_t, - pub euid: ::uid_t, - pub suid: ::uid_t, - pub rgid: ::gid_t, - pub egid: ::gid_t, - pub sgid: ::gid_t, + pub ruid: crate::uid_t, + pub euid: crate::uid_t, + pub suid: crate::uid_t, + pub rgid: crate::gid_t, + pub egid: crate::gid_t, + pub sgid: crate::gid_t, pub ngroups: u32, - pub grouplist: [::gid_t; 8], + pub grouplist: [crate::gid_t; 8], } pub struct _client_info { pub nd: u32, - pub pid: ::pid_t, - pub sid: ::pid_t, + pub pid: crate::pid_t, + pub sid: crate::pid_t, pub flags: u32, - pub cred: ::_cred_info, + pub cred: crate::_cred_info, } pub struct _client_able { @@ -69,96 +71,96 @@ s! { } pub struct nto_channel_config { - pub event: ::sigevent, - pub num_pulses: ::c_uint, - pub rearm_threshold: ::c_uint, - pub options: ::c_uint, - reserved: [::c_uint; 3], + pub event: crate::sigevent, + pub num_pulses: c_uint, + pub rearm_threshold: c_uint, + pub options: c_uint, + reserved: [c_uint; 3], } // TODO: The following structures are defined in a header file which doesn't // appear as part of the default headers found in a standard installation // of Neutrino 7.1 SDP. Commented out for now. //pub struct _asyncmsg_put_header { - // pub err: ::c_int, + // pub err: c_int, // pub iov: *mut ::iov_t, - // pub parts: ::c_int, - // pub handle: ::c_uint, - // pub cb: ::Option< + // pub parts: c_int, + // pub handle: c_uint, + // pub cb: Option< // unsafe extern "C" fn( - // err: ::c_int, - // buf: *mut ::c_void, - // handle: ::c_uint, - // ) -> ::c_int>, - // pub put_hdr_flags: ::c_uint, + // err: c_int, + // buf: *mut c_void, + // handle: c_uint, + // ) -> c_int>, + // pub put_hdr_flags: c_uint, //} //pub struct _asyncmsg_connection_attr { - // pub call_back: ::Option< + // pub call_back: Option< // unsafe extern "C" fn( - // err: ::c_int, - // buff: *mut ::c_void, - // handle: ::c_uint, - // ) -> ::c_int>, - // pub buffer_size: ::size_t, - // pub max_num_buffer: ::c_uint, - // pub trigger_num_msg: ::c_uint, + // err: c_int, + // buff: *mut c_void, + // handle: c_uint, + // ) -> c_int>, + // pub buffer_size: size_t, + // pub max_num_buffer: c_uint, + // pub trigger_num_msg: c_uint, // pub trigger_time: ::_itimer, - // reserve: ::c_uint, + // reserve: c_uint, //} //pub struct _asyncmsg_connection_descriptor { - // pub flags: ::c_uint, - // pub sendq_size: ::c_uint, - // pub sendq_head: ::c_uint, - // pub sendq_tail: ::c_uint, - // pub sendq_free: ::c_uint, - // pub err: ::c_int, + // pub flags: c_uint, + // pub sendq_size: c_uint, + // pub sendq_head: c_uint, + // pub sendq_tail: c_uint, + // pub sendq_free: c_uint, + // pub err: c_int, // pub ev: ::sigevent, - // pub num_curmsg: ::c_uint, + // pub num_curmsg: c_uint, // pub ttimer: ::timer_t, // pub block_con: ::pthread_cond_t, // pub mu: ::pthread_mutex_t, - // reserved: ::c_uint, + // reserved: c_uint, // pub attr: ::_asyncmsg_connection_attr, - // pub reserves: [::c_uint; 3], + // pub reserves: [c_uint; 3], // pub sendq: [::_asyncmsg_put_header; 1], // flexarray //} pub struct __c_anonymous_struct_ev { - pub event: ::sigevent, - pub coid: ::c_int, + pub event: crate::sigevent, + pub coid: c_int, } pub struct _channel_connect_attr { // union - pub ev: ::__c_anonymous_struct_ev, + pub ev: crate::__c_anonymous_struct_ev, } pub struct _sighandler_info { - pub siginfo: ::siginfo_t, - pub handler: ::Option, - pub context: *mut ::c_void, + pub siginfo: crate::siginfo_t, + pub handler: Option, + pub context: *mut c_void, } pub struct __c_anonymous_struct_time { - pub length: ::c_uint, - pub scale: ::c_uint, + pub length: c_uint, + pub scale: c_uint, } pub struct _idle_hook { - pub hook_size: ::c_uint, - pub cmd: ::c_uint, - pub mode: ::c_uint, - pub latency: ::c_uint, + pub hook_size: c_uint, + pub cmd: c_uint, + pub mode: c_uint, + pub latency: c_uint, pub next_fire: u64, pub curr_time: u64, pub tod_adjust: u64, - pub resp: ::c_uint, + pub resp: c_uint, pub time: __c_anonymous_struct_time, - pub trigger: ::sigevent, - pub intrs: *mut ::c_uint, - pub block_stack_size: ::c_uint, + pub trigger: crate::sigevent, + pub intrs: *mut c_uint, + pub block_stack_size: c_uint, } pub struct _clockadjust { @@ -188,22 +190,22 @@ s! { } pub struct _sched_info { - pub priority_min: ::c_int, - pub priority_max: ::c_int, + pub priority_min: c_int, + pub priority_max: c_int, pub interval: u64, - pub priority_priv: ::c_int, - reserved: [::c_int; 11], + pub priority_priv: c_int, + reserved: [c_int; 11], } pub struct _timer_info { - pub itime: ::_itimer, - pub otime: ::_itimer, + pub itime: crate::_itimer, + pub otime: crate::_itimer, pub flags: u32, pub tid: i32, pub notify: i32, - pub clockid: ::clockid_t, + pub clockid: crate::clockid_t, pub overruns: u32, - pub event: ::sigevent, // union + pub event: crate::sigevent, // union } pub struct _clockperiod { @@ -249,28 +251,28 @@ pub const SYSMGR_CHID: u32 = 1; pub const SYSMGR_COID: u32 = _NTO_SIDE_CHANNEL; pub const SYSMGR_HANDLE: u32 = 0; -pub const STATE_DEAD: ::c_int = 0x00; -pub const STATE_RUNNING: ::c_int = 0x01; -pub const STATE_READY: ::c_int = 0x02; -pub const STATE_STOPPED: ::c_int = 0x03; -pub const STATE_SEND: ::c_int = 0x04; -pub const STATE_RECEIVE: ::c_int = 0x05; -pub const STATE_REPLY: ::c_int = 0x06; -pub const STATE_STACK: ::c_int = 0x07; -pub const STATE_WAITTHREAD: ::c_int = 0x08; -pub const STATE_WAITPAGE: ::c_int = 0x09; -pub const STATE_SIGSUSPEND: ::c_int = 0x0a; -pub const STATE_SIGWAITINFO: ::c_int = 0x0b; -pub const STATE_NANOSLEEP: ::c_int = 0x0c; -pub const STATE_MUTEX: ::c_int = 0x0d; -pub const STATE_CONDVAR: ::c_int = 0x0e; -pub const STATE_JOIN: ::c_int = 0x0f; -pub const STATE_INTR: ::c_int = 0x10; -pub const STATE_SEM: ::c_int = 0x11; -pub const STATE_WAITCTX: ::c_int = 0x12; -pub const STATE_NET_SEND: ::c_int = 0x13; -pub const STATE_NET_REPLY: ::c_int = 0x14; -pub const STATE_MAX: ::c_int = 0x18; +pub const STATE_DEAD: c_int = 0x00; +pub const STATE_RUNNING: c_int = 0x01; +pub const STATE_READY: c_int = 0x02; +pub const STATE_STOPPED: c_int = 0x03; +pub const STATE_SEND: c_int = 0x04; +pub const STATE_RECEIVE: c_int = 0x05; +pub const STATE_REPLY: c_int = 0x06; +pub const STATE_STACK: c_int = 0x07; +pub const STATE_WAITTHREAD: c_int = 0x08; +pub const STATE_WAITPAGE: c_int = 0x09; +pub const STATE_SIGSUSPEND: c_int = 0x0a; +pub const STATE_SIGWAITINFO: c_int = 0x0b; +pub const STATE_NANOSLEEP: c_int = 0x0c; +pub const STATE_MUTEX: c_int = 0x0d; +pub const STATE_CONDVAR: c_int = 0x0e; +pub const STATE_JOIN: c_int = 0x0f; +pub const STATE_INTR: c_int = 0x10; +pub const STATE_SEM: c_int = 0x11; +pub const STATE_WAITCTX: c_int = 0x12; +pub const STATE_NET_SEND: c_int = 0x13; +pub const STATE_NET_REPLY: c_int = 0x14; +pub const STATE_MAX: c_int = 0x18; pub const _NTO_TIMEOUT_RECEIVE: i32 = 1 << STATE_RECEIVE; pub const _NTO_TIMEOUT_SEND: i32 = 1 << STATE_SEND; @@ -508,36 +510,33 @@ pub const _NTO_CLIENTINFO_GETGROUPS: u32 = 1; pub const _NTO_CLIENTINFO_GETTYPEID: u32 = 2; extern "C" { - pub fn ChannelCreate(__flags: ::c_uint) -> ::c_int; - pub fn ChannelCreate_r(__flags: ::c_uint) -> ::c_int; - pub fn ChannelCreatePulsePool( - __flags: ::c_uint, - __config: *const nto_channel_config, - ) -> ::c_int; + pub fn ChannelCreate(__flags: c_uint) -> c_int; + pub fn ChannelCreate_r(__flags: c_uint) -> c_int; + pub fn ChannelCreatePulsePool(__flags: c_uint, __config: *const nto_channel_config) -> c_int; pub fn ChannelCreateExt( - __flags: ::c_uint, - __mode: ::mode_t, + __flags: c_uint, + __mode: crate::mode_t, __bufsize: usize, - __maxnumbuf: ::c_uint, - __ev: *const ::sigevent, + __maxnumbuf: c_uint, + __ev: *const crate::sigevent, __cred: *mut _cred_info, - ) -> ::c_int; - pub fn ChannelDestroy(__chid: ::c_int) -> ::c_int; - pub fn ChannelDestroy_r(__chid: ::c_int) -> ::c_int; + ) -> c_int; + pub fn ChannelDestroy(__chid: c_int) -> c_int; + pub fn ChannelDestroy_r(__chid: c_int) -> c_int; pub fn ConnectAttach( __nd: u32, - __pid: ::pid_t, - __chid: ::c_int, - __index: ::c_uint, - __flags: ::c_int, - ) -> ::c_int; + __pid: crate::pid_t, + __chid: c_int, + __index: c_uint, + __flags: c_int, + ) -> c_int; pub fn ConnectAttach_r( __nd: u32, - __pid: ::pid_t, - __chid: ::c_int, - __index: ::c_uint, - __flags: ::c_int, - ) -> ::c_int; + __pid: crate::pid_t, + __chid: c_int, + __index: c_uint, + __flags: c_int, + ) -> c_int; // TODO: The following function uses a structure defined in a header file // which doesn't appear as part of the default headers found in a @@ -545,734 +544,715 @@ extern "C" { //pub fn ConnectAttachExt( // __nd: u32, // __pid: ::pid_t, - // __chid: ::c_int, - // __index: ::c_uint, - // __flags: ::c_int, + // __chid: c_int, + // __index: c_uint, + // __flags: c_int, // __cd: *mut _asyncmsg_connection_descriptor, - //) -> ::c_int; - pub fn ConnectDetach(__coid: ::c_int) -> ::c_int; - pub fn ConnectDetach_r(__coid: ::c_int) -> ::c_int; - pub fn ConnectServerInfo(__pid: ::pid_t, __coid: ::c_int, __info: *mut _msg_info64) -> ::c_int; + //) -> c_int; + pub fn ConnectDetach(__coid: c_int) -> c_int; + pub fn ConnectDetach_r(__coid: c_int) -> c_int; + pub fn ConnectServerInfo(__pid: crate::pid_t, __coid: c_int, __info: *mut _msg_info64) + -> c_int; pub fn ConnectServerInfo_r( - __pid: ::pid_t, - __coid: ::c_int, + __pid: crate::pid_t, + __coid: c_int, __info: *mut _msg_info64, - ) -> ::c_int; + ) -> c_int; pub fn ConnectClientInfoExtraArgs( - __scoid: ::c_int, + __scoid: c_int, __info_pp: *mut _client_info, - __ngroups: ::c_int, + __ngroups: c_int, __abilities: *mut _client_able, - __nable: ::c_int, - __type_id: *mut ::c_uint, - ) -> ::c_int; + __nable: c_int, + __type_id: *mut c_uint, + ) -> c_int; pub fn ConnectClientInfoExtraArgs_r( - __scoid: ::c_int, + __scoid: c_int, __info_pp: *mut _client_info, - __ngroups: ::c_int, + __ngroups: c_int, __abilities: *mut _client_able, - __nable: ::c_int, - __type_id: *mut ::c_uint, - ) -> ::c_int; - pub fn ConnectClientInfo( - __scoid: ::c_int, - __info: *mut _client_info, - __ngroups: ::c_int, - ) -> ::c_int; + __nable: c_int, + __type_id: *mut c_uint, + ) -> c_int; + pub fn ConnectClientInfo(__scoid: c_int, __info: *mut _client_info, __ngroups: c_int) -> c_int; pub fn ConnectClientInfo_r( - __scoid: ::c_int, + __scoid: c_int, __info: *mut _client_info, - __ngroups: ::c_int, - ) -> ::c_int; + __ngroups: c_int, + ) -> c_int; pub fn ConnectClientInfoExt( - __scoid: ::c_int, + __scoid: c_int, __info_pp: *mut *mut _client_info, - flags: ::c_int, - ) -> ::c_int; - pub fn ClientInfoExtFree(__info_pp: *mut *mut _client_info) -> ::c_int; + flags: c_int, + ) -> c_int; + pub fn ClientInfoExtFree(__info_pp: *mut *mut _client_info) -> c_int; pub fn ConnectClientInfoAble( - __scoid: ::c_int, + __scoid: c_int, __info_pp: *mut *mut _client_info, - flags: ::c_int, + flags: c_int, abilities: *mut _client_able, - nable: ::c_int, - ) -> ::c_int; + nable: c_int, + ) -> c_int; pub fn ConnectFlags( - __pid: ::pid_t, - __coid: ::c_int, - __mask: ::c_uint, - __bits: ::c_uint, - ) -> ::c_int; + __pid: crate::pid_t, + __coid: c_int, + __mask: c_uint, + __bits: c_uint, + ) -> c_int; pub fn ConnectFlags_r( - __pid: ::pid_t, - __coid: ::c_int, - __mask: ::c_uint, - __bits: ::c_uint, - ) -> ::c_int; + __pid: crate::pid_t, + __coid: c_int, + __mask: c_uint, + __bits: c_uint, + ) -> c_int; pub fn ChannelConnectAttr( - __id: ::c_uint, + __id: c_uint, __old_attr: *mut _channel_connect_attr, __new_attr: *mut _channel_connect_attr, - __flags: ::c_uint, - ) -> ::c_int; + __flags: c_uint, + ) -> c_int; pub fn MsgSend( - __coid: ::c_int, - __smsg: *const ::c_void, + __coid: c_int, + __smsg: *const c_void, __sbytes: usize, - __rmsg: *mut ::c_void, + __rmsg: *mut c_void, __rbytes: usize, - ) -> ::c_long; + ) -> c_long; pub fn MsgSend_r( - __coid: ::c_int, - __smsg: *const ::c_void, + __coid: c_int, + __smsg: *const c_void, __sbytes: usize, - __rmsg: *mut ::c_void, + __rmsg: *mut c_void, __rbytes: usize, - ) -> ::c_long; + ) -> c_long; pub fn MsgSendnc( - __coid: ::c_int, - __smsg: *const ::c_void, + __coid: c_int, + __smsg: *const c_void, __sbytes: usize, - __rmsg: *mut ::c_void, + __rmsg: *mut c_void, __rbytes: usize, - ) -> ::c_long; + ) -> c_long; pub fn MsgSendnc_r( - __coid: ::c_int, - __smsg: *const ::c_void, + __coid: c_int, + __smsg: *const c_void, __sbytes: usize, - __rmsg: *mut ::c_void, + __rmsg: *mut c_void, __rbytes: usize, - ) -> ::c_long; + ) -> c_long; pub fn MsgSendsv( - __coid: ::c_int, - __smsg: *const ::c_void, + __coid: c_int, + __smsg: *const c_void, __sbytes: usize, - __riov: *const ::iovec, + __riov: *const crate::iovec, __rparts: usize, - ) -> ::c_long; + ) -> c_long; pub fn MsgSendsv_r( - __coid: ::c_int, - __smsg: *const ::c_void, + __coid: c_int, + __smsg: *const c_void, __sbytes: usize, - __riov: *const ::iovec, + __riov: *const crate::iovec, __rparts: usize, - ) -> ::c_long; + ) -> c_long; pub fn MsgSendsvnc( - __coid: ::c_int, - __smsg: *const ::c_void, + __coid: c_int, + __smsg: *const c_void, __sbytes: usize, - __riov: *const ::iovec, + __riov: *const crate::iovec, __rparts: usize, - ) -> ::c_long; + ) -> c_long; pub fn MsgSendsvnc_r( - __coid: ::c_int, - __smsg: *const ::c_void, + __coid: c_int, + __smsg: *const c_void, __sbytes: usize, - __riov: *const ::iovec, + __riov: *const crate::iovec, __rparts: usize, - ) -> ::c_long; + ) -> c_long; pub fn MsgSendvs( - __coid: ::c_int, - __siov: *const ::iovec, + __coid: c_int, + __siov: *const crate::iovec, __sparts: usize, - __rmsg: *mut ::c_void, + __rmsg: *mut c_void, __rbytes: usize, - ) -> ::c_long; + ) -> c_long; pub fn MsgSendvs_r( - __coid: ::c_int, - __siov: *const ::iovec, + __coid: c_int, + __siov: *const crate::iovec, __sparts: usize, - __rmsg: *mut ::c_void, + __rmsg: *mut c_void, __rbytes: usize, - ) -> ::c_long; + ) -> c_long; pub fn MsgSendvsnc( - __coid: ::c_int, - __siov: *const ::iovec, + __coid: c_int, + __siov: *const crate::iovec, __sparts: usize, - __rmsg: *mut ::c_void, + __rmsg: *mut c_void, __rbytes: usize, - ) -> ::c_long; + ) -> c_long; pub fn MsgSendvsnc_r( - __coid: ::c_int, - __siov: *const ::iovec, + __coid: c_int, + __siov: *const crate::iovec, __sparts: usize, - __rmsg: *mut ::c_void, + __rmsg: *mut c_void, __rbytes: usize, - ) -> ::c_long; + ) -> c_long; pub fn MsgSendv( - __coid: ::c_int, - __siov: *const ::iovec, + __coid: c_int, + __siov: *const crate::iovec, __sparts: usize, - __riov: *const ::iovec, + __riov: *const crate::iovec, __rparts: usize, - ) -> ::c_long; + ) -> c_long; pub fn MsgSendv_r( - __coid: ::c_int, - __siov: *const ::iovec, + __coid: c_int, + __siov: *const crate::iovec, __sparts: usize, - __riov: *const ::iovec, + __riov: *const crate::iovec, __rparts: usize, - ) -> ::c_long; + ) -> c_long; pub fn MsgSendvnc( - __coid: ::c_int, - __siov: *const ::iovec, + __coid: c_int, + __siov: *const crate::iovec, __sparts: usize, - __riov: *const ::iovec, + __riov: *const crate::iovec, __rparts: usize, - ) -> ::c_long; + ) -> c_long; pub fn MsgSendvnc_r( - __coid: ::c_int, - __siov: *const ::iovec, + __coid: c_int, + __siov: *const crate::iovec, __sparts: usize, - __riov: *const ::iovec, + __riov: *const crate::iovec, __rparts: usize, - ) -> ::c_long; + ) -> c_long; pub fn MsgReceive( - __chid: ::c_int, - __msg: *mut ::c_void, + __chid: c_int, + __msg: *mut c_void, __bytes: usize, __info: *mut _msg_info64, - ) -> ::c_int; + ) -> c_int; pub fn MsgReceive_r( - __chid: ::c_int, - __msg: *mut ::c_void, + __chid: c_int, + __msg: *mut c_void, __bytes: usize, __info: *mut _msg_info64, - ) -> ::c_int; + ) -> c_int; pub fn MsgReceivev( - __chid: ::c_int, - __iov: *const ::iovec, + __chid: c_int, + __iov: *const crate::iovec, __parts: usize, __info: *mut _msg_info64, - ) -> ::c_int; + ) -> c_int; pub fn MsgReceivev_r( - __chid: ::c_int, - __iov: *const ::iovec, + __chid: c_int, + __iov: *const crate::iovec, __parts: usize, __info: *mut _msg_info64, - ) -> ::c_int; + ) -> c_int; pub fn MsgReceivePulse( - __chid: ::c_int, - __pulse: *mut ::c_void, + __chid: c_int, + __pulse: *mut c_void, __bytes: usize, __info: *mut _msg_info64, - ) -> ::c_int; + ) -> c_int; pub fn MsgReceivePulse_r( - __chid: ::c_int, - __pulse: *mut ::c_void, + __chid: c_int, + __pulse: *mut c_void, __bytes: usize, __info: *mut _msg_info64, - ) -> ::c_int; + ) -> c_int; pub fn MsgReceivePulsev( - __chid: ::c_int, - __iov: *const ::iovec, + __chid: c_int, + __iov: *const crate::iovec, __parts: usize, __info: *mut _msg_info64, - ) -> ::c_int; + ) -> c_int; pub fn MsgReceivePulsev_r( - __chid: ::c_int, - __iov: *const ::iovec, + __chid: c_int, + __iov: *const crate::iovec, __parts: usize, __info: *mut _msg_info64, - ) -> ::c_int; + ) -> c_int; pub fn MsgReply( - __rcvid: ::c_int, - __status: ::c_long, - __msg: *const ::c_void, + __rcvid: c_int, + __status: c_long, + __msg: *const c_void, __bytes: usize, - ) -> ::c_int; + ) -> c_int; pub fn MsgReply_r( - __rcvid: ::c_int, - __status: ::c_long, - __msg: *const ::c_void, + __rcvid: c_int, + __status: c_long, + __msg: *const c_void, __bytes: usize, - ) -> ::c_int; + ) -> c_int; pub fn MsgReplyv( - __rcvid: ::c_int, - __status: ::c_long, - __iov: *const ::iovec, + __rcvid: c_int, + __status: c_long, + __iov: *const crate::iovec, __parts: usize, - ) -> ::c_int; + ) -> c_int; pub fn MsgReplyv_r( - __rcvid: ::c_int, - __status: ::c_long, - __iov: *const ::iovec, + __rcvid: c_int, + __status: c_long, + __iov: *const crate::iovec, __parts: usize, - ) -> ::c_int; + ) -> c_int; pub fn MsgReadiov( - __rcvid: ::c_int, - __iov: *const ::iovec, + __rcvid: c_int, + __iov: *const crate::iovec, __parts: usize, __offset: usize, - __flags: ::c_int, + __flags: c_int, ) -> isize; pub fn MsgReadiov_r( - __rcvid: ::c_int, - __iov: *const ::iovec, + __rcvid: c_int, + __iov: *const crate::iovec, __parts: usize, __offset: usize, - __flags: ::c_int, - ) -> isize; - pub fn MsgRead( - __rcvid: ::c_int, - __msg: *mut ::c_void, - __bytes: usize, - __offset: usize, - ) -> isize; - pub fn MsgRead_r( - __rcvid: ::c_int, - __msg: *mut ::c_void, - __bytes: usize, - __offset: usize, + __flags: c_int, ) -> isize; + pub fn MsgRead(__rcvid: c_int, __msg: *mut c_void, __bytes: usize, __offset: usize) -> isize; + pub fn MsgRead_r(__rcvid: c_int, __msg: *mut c_void, __bytes: usize, __offset: usize) -> isize; pub fn MsgReadv( - __rcvid: ::c_int, - __iov: *const ::iovec, + __rcvid: c_int, + __iov: *const crate::iovec, __parts: usize, __offset: usize, ) -> isize; pub fn MsgReadv_r( - __rcvid: ::c_int, - __iov: *const ::iovec, + __rcvid: c_int, + __iov: *const crate::iovec, __parts: usize, __offset: usize, ) -> isize; - pub fn MsgWrite( - __rcvid: ::c_int, - __msg: *const ::c_void, - __bytes: usize, - __offset: usize, - ) -> isize; + pub fn MsgWrite(__rcvid: c_int, __msg: *const c_void, __bytes: usize, __offset: usize) + -> isize; pub fn MsgWrite_r( - __rcvid: ::c_int, - __msg: *const ::c_void, + __rcvid: c_int, + __msg: *const c_void, __bytes: usize, __offset: usize, ) -> isize; pub fn MsgWritev( - __rcvid: ::c_int, - __iov: *const ::iovec, + __rcvid: c_int, + __iov: *const crate::iovec, __parts: usize, __offset: usize, ) -> isize; pub fn MsgWritev_r( - __rcvid: ::c_int, - __iov: *const ::iovec, + __rcvid: c_int, + __iov: *const crate::iovec, __parts: usize, __offset: usize, ) -> isize; - pub fn MsgSendPulse( - __coid: ::c_int, - __priority: ::c_int, - __code: ::c_int, - __value: ::c_int, - ) -> ::c_int; - pub fn MsgSendPulse_r( - __coid: ::c_int, - __priority: ::c_int, - __code: ::c_int, - __value: ::c_int, - ) -> ::c_int; + pub fn MsgSendPulse(__coid: c_int, __priority: c_int, __code: c_int, __value: c_int) -> c_int; + pub fn MsgSendPulse_r(__coid: c_int, __priority: c_int, __code: c_int, __value: c_int) + -> c_int; pub fn MsgSendPulsePtr( - __coid: ::c_int, - __priority: ::c_int, - __code: ::c_int, - __value: *mut ::c_void, - ) -> ::c_int; + __coid: c_int, + __priority: c_int, + __code: c_int, + __value: *mut c_void, + ) -> c_int; pub fn MsgSendPulsePtr_r( - __coid: ::c_int, - __priority: ::c_int, - __code: ::c_int, - __value: *mut ::c_void, - ) -> ::c_int; - pub fn MsgDeliverEvent(__rcvid: ::c_int, __event: *const ::sigevent) -> ::c_int; - pub fn MsgDeliverEvent_r(__rcvid: ::c_int, __event: *const ::sigevent) -> ::c_int; - pub fn MsgVerifyEvent(__rcvid: ::c_int, __event: *const ::sigevent) -> ::c_int; - pub fn MsgVerifyEvent_r(__rcvid: ::c_int, __event: *const ::sigevent) -> ::c_int; - pub fn MsgRegisterEvent(__event: *mut ::sigevent, __coid: ::c_int) -> ::c_int; - pub fn MsgRegisterEvent_r(__event: *mut ::sigevent, __coid: ::c_int) -> ::c_int; - pub fn MsgUnregisterEvent(__event: *const ::sigevent) -> ::c_int; - pub fn MsgUnregisterEvent_r(__event: *const ::sigevent) -> ::c_int; - pub fn MsgInfo(__rcvid: ::c_int, __info: *mut _msg_info64) -> ::c_int; - pub fn MsgInfo_r(__rcvid: ::c_int, __info: *mut _msg_info64) -> ::c_int; + __coid: c_int, + __priority: c_int, + __code: c_int, + __value: *mut c_void, + ) -> c_int; + pub fn MsgDeliverEvent(__rcvid: c_int, __event: *const crate::sigevent) -> c_int; + pub fn MsgDeliverEvent_r(__rcvid: c_int, __event: *const crate::sigevent) -> c_int; + pub fn MsgVerifyEvent(__rcvid: c_int, __event: *const crate::sigevent) -> c_int; + pub fn MsgVerifyEvent_r(__rcvid: c_int, __event: *const crate::sigevent) -> c_int; + pub fn MsgRegisterEvent(__event: *mut crate::sigevent, __coid: c_int) -> c_int; + pub fn MsgRegisterEvent_r(__event: *mut crate::sigevent, __coid: c_int) -> c_int; + pub fn MsgUnregisterEvent(__event: *const crate::sigevent) -> c_int; + pub fn MsgUnregisterEvent_r(__event: *const crate::sigevent) -> c_int; + pub fn MsgInfo(__rcvid: c_int, __info: *mut _msg_info64) -> c_int; + pub fn MsgInfo_r(__rcvid: c_int, __info: *mut _msg_info64) -> c_int; pub fn MsgKeyData( - __rcvid: ::c_int, - __oper: ::c_int, + __rcvid: c_int, + __oper: c_int, __key: u32, __newkey: *mut u32, - __iov: *const ::iovec, - __parts: ::c_int, - ) -> ::c_int; + __iov: *const crate::iovec, + __parts: c_int, + ) -> c_int; pub fn MsgKeyData_r( - __rcvid: ::c_int, - __oper: ::c_int, + __rcvid: c_int, + __oper: c_int, __key: u32, __newkey: *mut u32, - __iov: *const ::iovec, - __parts: ::c_int, - ) -> ::c_int; - pub fn MsgError(__rcvid: ::c_int, __err: ::c_int) -> ::c_int; - pub fn MsgError_r(__rcvid: ::c_int, __err: ::c_int) -> ::c_int; - pub fn MsgCurrent(__rcvid: ::c_int) -> ::c_int; - pub fn MsgCurrent_r(__rcvid: ::c_int) -> ::c_int; + __iov: *const crate::iovec, + __parts: c_int, + ) -> c_int; + pub fn MsgError(__rcvid: c_int, __err: c_int) -> c_int; + pub fn MsgError_r(__rcvid: c_int, __err: c_int) -> c_int; + pub fn MsgCurrent(__rcvid: c_int) -> c_int; + pub fn MsgCurrent_r(__rcvid: c_int) -> c_int; pub fn MsgSendAsyncGbl( - __coid: ::c_int, - __smsg: *const ::c_void, + __coid: c_int, + __smsg: *const c_void, __sbytes: usize, - __msg_prio: ::c_uint, - ) -> ::c_int; - pub fn MsgSendAsync(__coid: ::c_int) -> ::c_int; + __msg_prio: c_uint, + ) -> c_int; + pub fn MsgSendAsync(__coid: c_int) -> c_int; pub fn MsgReceiveAsyncGbl( - __chid: ::c_int, - __rmsg: *mut ::c_void, + __chid: c_int, + __rmsg: *mut c_void, __rbytes: usize, __info: *mut _msg_info64, - __coid: ::c_int, - ) -> ::c_int; - pub fn MsgReceiveAsync(__chid: ::c_int, __iov: *const ::iovec, __parts: ::c_uint) -> ::c_int; - pub fn MsgPause(__rcvid: ::c_int, __cookie: ::c_uint) -> ::c_int; - pub fn MsgPause_r(__rcvid: ::c_int, __cookie: ::c_uint) -> ::c_int; + __coid: c_int, + ) -> c_int; + pub fn MsgReceiveAsync(__chid: c_int, __iov: *const crate::iovec, __parts: c_uint) -> c_int; + pub fn MsgPause(__rcvid: c_int, __cookie: c_uint) -> c_int; + pub fn MsgPause_r(__rcvid: c_int, __cookie: c_uint) -> c_int; pub fn SignalKill( __nd: u32, - __pid: ::pid_t, - __tid: ::c_int, - __signo: ::c_int, - __code: ::c_int, - __value: ::c_int, - ) -> ::c_int; + __pid: crate::pid_t, + __tid: c_int, + __signo: c_int, + __code: c_int, + __value: c_int, + ) -> c_int; pub fn SignalKill_r( __nd: u32, - __pid: ::pid_t, - __tid: ::c_int, - __signo: ::c_int, - __code: ::c_int, - __value: ::c_int, - ) -> ::c_int; + __pid: crate::pid_t, + __tid: c_int, + __signo: c_int, + __code: c_int, + __value: c_int, + ) -> c_int; pub fn SignalKillSigval( __nd: u32, - __pid: ::pid_t, - __tid: ::c_int, - __signo: ::c_int, - __code: ::c_int, - __value: *const ::sigval, - ) -> ::c_int; + __pid: crate::pid_t, + __tid: c_int, + __signo: c_int, + __code: c_int, + __value: *const crate::sigval, + ) -> c_int; pub fn SignalKillSigval_r( __nd: u32, - __pid: ::pid_t, - __tid: ::c_int, - __signo: ::c_int, - __code: ::c_int, - __value: *const ::sigval, - ) -> ::c_int; - pub fn SignalReturn(__info: *mut _sighandler_info) -> ::c_int; - pub fn SignalFault(__sigcode: ::c_uint, __regs: *mut ::c_void, __refaddr: usize) -> ::c_int; + __pid: crate::pid_t, + __tid: c_int, + __signo: c_int, + __code: c_int, + __value: *const crate::sigval, + ) -> c_int; + pub fn SignalReturn(__info: *mut _sighandler_info) -> c_int; + pub fn SignalFault(__sigcode: c_uint, __regs: *mut c_void, __refaddr: usize) -> c_int; pub fn SignalAction( - __pid: ::pid_t, + __pid: crate::pid_t, __sigstub: unsafe extern "C" fn(), - __signo: ::c_int, - __act: *const ::sigaction, - __oact: *mut ::sigaction, - ) -> ::c_int; + __signo: c_int, + __act: *const crate::sigaction, + __oact: *mut crate::sigaction, + ) -> c_int; pub fn SignalAction_r( - __pid: ::pid_t, + __pid: crate::pid_t, __sigstub: unsafe extern "C" fn(), - __signo: ::c_int, - __act: *const ::sigaction, - __oact: *mut ::sigaction, - ) -> ::c_int; + __signo: c_int, + __act: *const crate::sigaction, + __oact: *mut crate::sigaction, + ) -> c_int; pub fn SignalProcmask( - __pid: ::pid_t, - __tid: ::c_int, - __how: ::c_int, - __set: *const ::sigset_t, - __oldset: *mut ::sigset_t, - ) -> ::c_int; + __pid: crate::pid_t, + __tid: c_int, + __how: c_int, + __set: *const crate::sigset_t, + __oldset: *mut crate::sigset_t, + ) -> c_int; pub fn SignalProcmask_r( - __pid: ::pid_t, - __tid: ::c_int, - __how: ::c_int, - __set: *const ::sigset_t, - __oldset: *mut ::sigset_t, - ) -> ::c_int; - pub fn SignalSuspend(__set: *const ::sigset_t) -> ::c_int; - pub fn SignalSuspend_r(__set: *const ::sigset_t) -> ::c_int; - pub fn SignalWaitinfo(__set: *const ::sigset_t, __info: *mut ::siginfo_t) -> ::c_int; - pub fn SignalWaitinfo_r(__set: *const ::sigset_t, __info: *mut ::siginfo_t) -> ::c_int; + __pid: crate::pid_t, + __tid: c_int, + __how: c_int, + __set: *const crate::sigset_t, + __oldset: *mut crate::sigset_t, + ) -> c_int; + pub fn SignalSuspend(__set: *const crate::sigset_t) -> c_int; + pub fn SignalSuspend_r(__set: *const crate::sigset_t) -> c_int; + pub fn SignalWaitinfo(__set: *const crate::sigset_t, __info: *mut crate::siginfo_t) -> c_int; + pub fn SignalWaitinfo_r(__set: *const crate::sigset_t, __info: *mut crate::siginfo_t) -> c_int; pub fn SignalWaitinfoMask( - __set: *const ::sigset_t, - __info: *mut ::siginfo_t, - __mask: *const ::sigset_t, - ) -> ::c_int; + __set: *const crate::sigset_t, + __info: *mut crate::siginfo_t, + __mask: *const crate::sigset_t, + ) -> c_int; pub fn SignalWaitinfoMask_r( - __set: *const ::sigset_t, - __info: *mut ::siginfo_t, - __mask: *const ::sigset_t, - ) -> ::c_int; + __set: *const crate::sigset_t, + __info: *mut crate::siginfo_t, + __mask: *const crate::sigset_t, + ) -> c_int; pub fn ThreadCreate( - __pid: ::pid_t, - __func: unsafe extern "C" fn(__arg: *mut ::c_void) -> *mut ::c_void, - __arg: *mut ::c_void, - __attr: *const ::_thread_attr, - ) -> ::c_int; + __pid: crate::pid_t, + __func: unsafe extern "C" fn(__arg: *mut c_void) -> *mut c_void, + __arg: *mut c_void, + __attr: *const crate::_thread_attr, + ) -> c_int; pub fn ThreadCreate_r( - __pid: ::pid_t, - __func: unsafe extern "C" fn(__arg: *mut ::c_void) -> *mut ::c_void, - __arg: *mut ::c_void, - __attr: *const ::_thread_attr, - ) -> ::c_int; - - pub fn ThreadDestroy(__tid: ::c_int, __priority: ::c_int, __status: *mut ::c_void) -> ::c_int; - pub fn ThreadDestroy_r(__tid: ::c_int, __priority: ::c_int, __status: *mut ::c_void) - -> ::c_int; - pub fn ThreadDetach(__tid: ::c_int) -> ::c_int; - pub fn ThreadDetach_r(__tid: ::c_int) -> ::c_int; - pub fn ThreadJoin(__tid: ::c_int, __status: *mut *mut ::c_void) -> ::c_int; - pub fn ThreadJoin_r(__tid: ::c_int, __status: *mut *mut ::c_void) -> ::c_int; - pub fn ThreadCancel(__tid: ::c_int, __canstub: unsafe extern "C" fn()) -> ::c_int; - pub fn ThreadCancel_r(__tid: ::c_int, __canstub: unsafe extern "C" fn()) -> ::c_int; - pub fn ThreadCtl(__cmd: ::c_int, __data: *mut ::c_void) -> ::c_int; - pub fn ThreadCtl_r(__cmd: ::c_int, __data: *mut ::c_void) -> ::c_int; + __pid: crate::pid_t, + __func: unsafe extern "C" fn(__arg: *mut c_void) -> *mut c_void, + __arg: *mut c_void, + __attr: *const crate::_thread_attr, + ) -> c_int; + + pub fn ThreadDestroy(__tid: c_int, __priority: c_int, __status: *mut c_void) -> c_int; + pub fn ThreadDestroy_r(__tid: c_int, __priority: c_int, __status: *mut c_void) -> c_int; + pub fn ThreadDetach(__tid: c_int) -> c_int; + pub fn ThreadDetach_r(__tid: c_int) -> c_int; + pub fn ThreadJoin(__tid: c_int, __status: *mut *mut c_void) -> c_int; + pub fn ThreadJoin_r(__tid: c_int, __status: *mut *mut c_void) -> c_int; + pub fn ThreadCancel(__tid: c_int, __canstub: unsafe extern "C" fn()) -> c_int; + pub fn ThreadCancel_r(__tid: c_int, __canstub: unsafe extern "C" fn()) -> c_int; + pub fn ThreadCtl(__cmd: c_int, __data: *mut c_void) -> c_int; + pub fn ThreadCtl_r(__cmd: c_int, __data: *mut c_void) -> c_int; pub fn ThreadCtlExt( - __pid: ::pid_t, - __tid: ::c_int, - __cmd: ::c_int, - __data: *mut ::c_void, - ) -> ::c_int; + __pid: crate::pid_t, + __tid: c_int, + __cmd: c_int, + __data: *mut c_void, + ) -> c_int; pub fn ThreadCtlExt_r( - __pid: ::pid_t, - __tid: ::c_int, - __cmd: ::c_int, - __data: *mut ::c_void, - ) -> ::c_int; + __pid: crate::pid_t, + __tid: c_int, + __cmd: c_int, + __data: *mut c_void, + ) -> c_int; pub fn InterruptHookTrace( - __handler: ::Option *const ::sigevent>, - __flags: ::c_uint, - ) -> ::c_int; + __handler: Option *const crate::sigevent>, + __flags: c_uint, + ) -> c_int; pub fn InterruptHookIdle( - __handler: ::Option, - __flags: ::c_uint, - ) -> ::c_int; + __handler: Option, + __flags: c_uint, + ) -> c_int; pub fn InterruptHookIdle2( - __handler: ::Option< - unsafe extern "C" fn(arg1: ::c_uint, arg2: *mut syspage_entry, arg3: *mut _idle_hook), + __handler: Option< + unsafe extern "C" fn(arg1: c_uint, arg2: *mut syspage_entry, arg3: *mut _idle_hook), >, - __flags: ::c_uint, - ) -> ::c_int; - pub fn InterruptHookOverdriveEvent(__event: *const ::sigevent, __flags: ::c_uint) -> ::c_int; + __flags: c_uint, + ) -> c_int; + pub fn InterruptHookOverdriveEvent(__event: *const crate::sigevent, __flags: c_uint) -> c_int; pub fn InterruptAttachEvent( - __intr: ::c_int, - __event: *const ::sigevent, - __flags: ::c_uint, - ) -> ::c_int; + __intr: c_int, + __event: *const crate::sigevent, + __flags: c_uint, + ) -> c_int; pub fn InterruptAttachEvent_r( - __intr: ::c_int, - __event: *const ::sigevent, - __flags: ::c_uint, - ) -> ::c_int; + __intr: c_int, + __event: *const crate::sigevent, + __flags: c_uint, + ) -> c_int; pub fn InterruptAttach( - __intr: ::c_int, - __handler: ::Option< - unsafe extern "C" fn(__area: *mut ::c_void, __id: ::c_int) -> *const ::sigevent, + __intr: c_int, + __handler: Option< + unsafe extern "C" fn(__area: *mut c_void, __id: c_int) -> *const crate::sigevent, >, - __area: *const ::c_void, - __size: ::c_int, - __flags: ::c_uint, - ) -> ::c_int; + __area: *const c_void, + __size: c_int, + __flags: c_uint, + ) -> c_int; pub fn InterruptAttach_r( - __intr: ::c_int, - __handler: ::Option< - unsafe extern "C" fn(__area: *mut ::c_void, __id: ::c_int) -> *const ::sigevent, + __intr: c_int, + __handler: Option< + unsafe extern "C" fn(__area: *mut c_void, __id: c_int) -> *const crate::sigevent, >, - __area: *const ::c_void, - __size: ::c_int, - __flags: ::c_uint, - ) -> ::c_int; + __area: *const c_void, + __size: c_int, + __flags: c_uint, + ) -> c_int; pub fn InterruptAttachArray( - __intr: ::c_int, - __handler: ::Option< - unsafe extern "C" fn(__area: *mut ::c_void, __id: ::c_int) -> *const *const ::sigevent, + __intr: c_int, + __handler: Option< + unsafe extern "C" fn(__area: *mut c_void, __id: c_int) -> *const *const crate::sigevent, >, - __area: *const ::c_void, - __size: ::c_int, - __flags: ::c_uint, - ) -> ::c_int; + __area: *const c_void, + __size: c_int, + __flags: c_uint, + ) -> c_int; pub fn InterruptAttachArray_r( - __intr: ::c_int, - __handler: ::Option< - unsafe extern "C" fn(__area: *mut ::c_void, __id: ::c_int) -> *const *const ::sigevent, + __intr: c_int, + __handler: Option< + unsafe extern "C" fn(__area: *mut c_void, __id: c_int) -> *const *const crate::sigevent, >, - __area: *const ::c_void, - __size: ::c_int, - __flags: ::c_uint, - ) -> ::c_int; - pub fn InterruptDetach(__id: ::c_int) -> ::c_int; - pub fn InterruptDetach_r(__id: ::c_int) -> ::c_int; - pub fn InterruptWait(__flags: ::c_int, __timeout: *const u64) -> ::c_int; - pub fn InterruptWait_r(__flags: ::c_int, __timeout: *const u64) -> ::c_int; + __area: *const c_void, + __size: c_int, + __flags: c_uint, + ) -> c_int; + pub fn InterruptDetach(__id: c_int) -> c_int; + pub fn InterruptDetach_r(__id: c_int) -> c_int; + pub fn InterruptWait(__flags: c_int, __timeout: *const u64) -> c_int; + pub fn InterruptWait_r(__flags: c_int, __timeout: *const u64) -> c_int; pub fn InterruptCharacteristic( - __type: ::c_int, - __id: ::c_int, - __new: *mut ::c_uint, - __old: *mut ::c_uint, - ) -> ::c_int; + __type: c_int, + __id: c_int, + __new: *mut c_uint, + __old: *mut c_uint, + ) -> c_int; pub fn InterruptCharacteristic_r( - __type: ::c_int, - __id: ::c_int, - __new: *mut ::c_uint, - __old: *mut ::c_uint, - ) -> ::c_int; - - pub fn SchedGet(__pid: ::pid_t, __tid: ::c_int, __param: *mut ::sched_param) -> ::c_int; - pub fn SchedGet_r(__pid: ::pid_t, __tid: ::c_int, __param: *mut ::sched_param) -> ::c_int; - pub fn SchedGetCpuNum() -> ::c_uint; + __type: c_int, + __id: c_int, + __new: *mut c_uint, + __old: *mut c_uint, + ) -> c_int; + + pub fn SchedGet(__pid: crate::pid_t, __tid: c_int, __param: *mut crate::sched_param) -> c_int; + pub fn SchedGet_r(__pid: crate::pid_t, __tid: c_int, __param: *mut crate::sched_param) + -> c_int; + pub fn SchedGetCpuNum() -> c_uint; pub fn SchedSet( - __pid: ::pid_t, - __tid: ::c_int, - __algorithm: ::c_int, - __param: *const ::sched_param, - ) -> ::c_int; + __pid: crate::pid_t, + __tid: c_int, + __algorithm: c_int, + __param: *const crate::sched_param, + ) -> c_int; pub fn SchedSet_r( - __pid: ::pid_t, - __tid: ::c_int, - __algorithm: ::c_int, - __param: *const ::sched_param, - ) -> ::c_int; - pub fn SchedInfo(__pid: ::pid_t, __algorithm: ::c_int, __info: *mut ::_sched_info) -> ::c_int; - pub fn SchedInfo_r(__pid: ::pid_t, __algorithm: ::c_int, __info: *mut ::_sched_info) - -> ::c_int; - pub fn SchedYield() -> ::c_int; - pub fn SchedYield_r() -> ::c_int; - pub fn SchedCtl(__cmd: ::c_int, __data: *mut ::c_void, __length: usize) -> ::c_int; - pub fn SchedCtl_r(__cmd: ::c_int, __data: *mut ::c_void, __length: usize) -> ::c_int; - pub fn SchedJobCreate(__job: *mut nto_job_t) -> ::c_int; - pub fn SchedJobCreate_r(__job: *mut nto_job_t) -> ::c_int; - pub fn SchedJobDestroy(__job: *mut nto_job_t) -> ::c_int; - pub fn SchedJobDestroy_r(__job: *mut nto_job_t) -> ::c_int; + __pid: crate::pid_t, + __tid: c_int, + __algorithm: c_int, + __param: *const crate::sched_param, + ) -> c_int; + pub fn SchedInfo( + __pid: crate::pid_t, + __algorithm: c_int, + __info: *mut crate::_sched_info, + ) -> c_int; + pub fn SchedInfo_r( + __pid: crate::pid_t, + __algorithm: c_int, + __info: *mut crate::_sched_info, + ) -> c_int; + pub fn SchedYield() -> c_int; + pub fn SchedYield_r() -> c_int; + pub fn SchedCtl(__cmd: c_int, __data: *mut c_void, __length: usize) -> c_int; + pub fn SchedCtl_r(__cmd: c_int, __data: *mut c_void, __length: usize) -> c_int; + pub fn SchedJobCreate(__job: *mut nto_job_t) -> c_int; + pub fn SchedJobCreate_r(__job: *mut nto_job_t) -> c_int; + pub fn SchedJobDestroy(__job: *mut nto_job_t) -> c_int; + pub fn SchedJobDestroy_r(__job: *mut nto_job_t) -> c_int; pub fn SchedWaypoint( __job: *mut nto_job_t, __new: *const i64, __max: *const i64, __old: *mut i64, - ) -> ::c_int; + ) -> c_int; pub fn SchedWaypoint_r( __job: *mut nto_job_t, __new: *const i64, __max: *const i64, __old: *mut i64, - ) -> ::c_int; + ) -> c_int; - pub fn TimerCreate(__id: ::clockid_t, __notify: *const ::sigevent) -> ::c_int; - pub fn TimerCreate_r(__id: ::clockid_t, __notify: *const ::sigevent) -> ::c_int; - pub fn TimerDestroy(__id: ::timer_t) -> ::c_int; - pub fn TimerDestroy_r(__id: ::timer_t) -> ::c_int; + pub fn TimerCreate(__id: crate::clockid_t, __notify: *const crate::sigevent) -> c_int; + pub fn TimerCreate_r(__id: crate::clockid_t, __notify: *const crate::sigevent) -> c_int; + pub fn TimerDestroy(__id: crate::timer_t) -> c_int; + pub fn TimerDestroy_r(__id: crate::timer_t) -> c_int; pub fn TimerSettime( - __id: ::timer_t, - __flags: ::c_int, - __itime: *const ::_itimer, - __oitime: *mut ::_itimer, - ) -> ::c_int; + __id: crate::timer_t, + __flags: c_int, + __itime: *const crate::_itimer, + __oitime: *mut crate::_itimer, + ) -> c_int; pub fn TimerSettime_r( - __id: ::timer_t, - __flags: ::c_int, - __itime: *const ::_itimer, - __oitime: *mut ::_itimer, - ) -> ::c_int; + __id: crate::timer_t, + __flags: c_int, + __itime: *const crate::_itimer, + __oitime: *mut crate::_itimer, + ) -> c_int; pub fn TimerInfo( - __pid: ::pid_t, - __id: ::timer_t, - __flags: ::c_int, - __info: *mut ::_timer_info, - ) -> ::c_int; + __pid: crate::pid_t, + __id: crate::timer_t, + __flags: c_int, + __info: *mut crate::_timer_info, + ) -> c_int; pub fn TimerInfo_r( - __pid: ::pid_t, - __id: ::timer_t, - __flags: ::c_int, - __info: *mut ::_timer_info, - ) -> ::c_int; + __pid: crate::pid_t, + __id: crate::timer_t, + __flags: c_int, + __info: *mut crate::_timer_info, + ) -> c_int; pub fn TimerAlarm( - __id: ::clockid_t, - __itime: *const ::_itimer, - __otime: *mut ::_itimer, - ) -> ::c_int; + __id: crate::clockid_t, + __itime: *const crate::_itimer, + __otime: *mut crate::_itimer, + ) -> c_int; pub fn TimerAlarm_r( - __id: ::clockid_t, - __itime: *const ::_itimer, - __otime: *mut ::_itimer, - ) -> ::c_int; + __id: crate::clockid_t, + __itime: *const crate::_itimer, + __otime: *mut crate::_itimer, + ) -> c_int; pub fn TimerTimeout( - __id: ::clockid_t, - __flags: ::c_int, - __notify: *const ::sigevent, + __id: crate::clockid_t, + __flags: c_int, + __notify: *const crate::sigevent, __ntime: *const u64, __otime: *mut u64, - ) -> ::c_int; + ) -> c_int; pub fn TimerTimeout_r( - __id: ::clockid_t, - __flags: ::c_int, - __notify: *const ::sigevent, + __id: crate::clockid_t, + __flags: c_int, + __notify: *const crate::sigevent, __ntime: *const u64, __otime: *mut u64, - ) -> ::c_int; + ) -> c_int; pub fn SyncTypeCreate( - __type: ::c_uint, - __sync: *mut ::sync_t, - __attr: *const ::_sync_attr, - ) -> ::c_int; + __type: c_uint, + __sync: *mut crate::sync_t, + __attr: *const crate::_sync_attr, + ) -> c_int; pub fn SyncTypeCreate_r( - __type: ::c_uint, - __sync: *mut ::sync_t, - __attr: *const ::_sync_attr, - ) -> ::c_int; - pub fn SyncDestroy(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncDestroy_r(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncCtl(__cmd: ::c_int, __sync: *mut ::sync_t, __data: *mut ::c_void) -> ::c_int; - pub fn SyncCtl_r(__cmd: ::c_int, __sync: *mut ::sync_t, __data: *mut ::c_void) -> ::c_int; - pub fn SyncMutexEvent(__sync: *mut ::sync_t, event: *const ::sigevent) -> ::c_int; - pub fn SyncMutexEvent_r(__sync: *mut ::sync_t, event: *const ::sigevent) -> ::c_int; - pub fn SyncMutexLock(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncMutexLock_r(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncMutexUnlock(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncMutexUnlock_r(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncMutexRevive(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncMutexRevive_r(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncCondvarWait(__sync: *mut ::sync_t, __mutex: *mut ::sync_t) -> ::c_int; - pub fn SyncCondvarWait_r(__sync: *mut ::sync_t, __mutex: *mut ::sync_t) -> ::c_int; - pub fn SyncCondvarSignal(__sync: *mut ::sync_t, __all: ::c_int) -> ::c_int; - pub fn SyncCondvarSignal_r(__sync: *mut ::sync_t, __all: ::c_int) -> ::c_int; - pub fn SyncSemPost(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncSemPost_r(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncSemWait(__sync: *mut ::sync_t, __tryto: ::c_int) -> ::c_int; - pub fn SyncSemWait_r(__sync: *mut ::sync_t, __tryto: ::c_int) -> ::c_int; - - pub fn ClockTime(__id: ::clockid_t, _new: *const u64, __old: *mut u64) -> ::c_int; - pub fn ClockTime_r(__id: ::clockid_t, _new: *const u64, __old: *mut u64) -> ::c_int; + __type: c_uint, + __sync: *mut crate::sync_t, + __attr: *const crate::_sync_attr, + ) -> c_int; + pub fn SyncDestroy(__sync: *mut crate::sync_t) -> c_int; + pub fn SyncDestroy_r(__sync: *mut crate::sync_t) -> c_int; + pub fn SyncCtl(__cmd: c_int, __sync: *mut crate::sync_t, __data: *mut c_void) -> c_int; + pub fn SyncCtl_r(__cmd: c_int, __sync: *mut crate::sync_t, __data: *mut c_void) -> c_int; + pub fn SyncMutexEvent(__sync: *mut crate::sync_t, event: *const crate::sigevent) -> c_int; + pub fn SyncMutexEvent_r(__sync: *mut crate::sync_t, event: *const crate::sigevent) -> c_int; + pub fn SyncMutexLock(__sync: *mut crate::sync_t) -> c_int; + pub fn SyncMutexLock_r(__sync: *mut crate::sync_t) -> c_int; + pub fn SyncMutexUnlock(__sync: *mut crate::sync_t) -> c_int; + pub fn SyncMutexUnlock_r(__sync: *mut crate::sync_t) -> c_int; + pub fn SyncMutexRevive(__sync: *mut crate::sync_t) -> c_int; + pub fn SyncMutexRevive_r(__sync: *mut crate::sync_t) -> c_int; + pub fn SyncCondvarWait(__sync: *mut crate::sync_t, __mutex: *mut crate::sync_t) -> c_int; + pub fn SyncCondvarWait_r(__sync: *mut crate::sync_t, __mutex: *mut crate::sync_t) -> c_int; + pub fn SyncCondvarSignal(__sync: *mut crate::sync_t, __all: c_int) -> c_int; + pub fn SyncCondvarSignal_r(__sync: *mut crate::sync_t, __all: c_int) -> c_int; + pub fn SyncSemPost(__sync: *mut crate::sync_t) -> c_int; + pub fn SyncSemPost_r(__sync: *mut crate::sync_t) -> c_int; + pub fn SyncSemWait(__sync: *mut crate::sync_t, __tryto: c_int) -> c_int; + pub fn SyncSemWait_r(__sync: *mut crate::sync_t, __tryto: c_int) -> c_int; + + pub fn ClockTime(__id: crate::clockid_t, _new: *const u64, __old: *mut u64) -> c_int; + pub fn ClockTime_r(__id: crate::clockid_t, _new: *const u64, __old: *mut u64) -> c_int; pub fn ClockAdjust( - __id: ::clockid_t, - _new: *const ::_clockadjust, - __old: *mut ::_clockadjust, - ) -> ::c_int; + __id: crate::clockid_t, + _new: *const crate::_clockadjust, + __old: *mut crate::_clockadjust, + ) -> c_int; pub fn ClockAdjust_r( - __id: ::clockid_t, - _new: *const ::_clockadjust, - __old: *mut ::_clockadjust, - ) -> ::c_int; + __id: crate::clockid_t, + _new: *const crate::_clockadjust, + __old: *mut crate::_clockadjust, + ) -> c_int; pub fn ClockPeriod( - __id: ::clockid_t, - _new: *const ::_clockperiod, - __old: *mut ::_clockperiod, - __reserved: ::c_int, - ) -> ::c_int; + __id: crate::clockid_t, + _new: *const crate::_clockperiod, + __old: *mut crate::_clockperiod, + __reserved: c_int, + ) -> c_int; pub fn ClockPeriod_r( - __id: ::clockid_t, - _new: *const ::_clockperiod, - __old: *mut ::_clockperiod, - __reserved: ::c_int, - ) -> ::c_int; - pub fn ClockId(__pid: ::pid_t, __tid: ::c_int) -> ::c_int; - pub fn ClockId_r(__pid: ::pid_t, __tid: ::c_int) -> ::c_int; + __id: crate::clockid_t, + _new: *const crate::_clockperiod, + __old: *mut crate::_clockperiod, + __reserved: c_int, + ) -> c_int; + pub fn ClockId(__pid: crate::pid_t, __tid: c_int) -> c_int; + pub fn ClockId_r(__pid: crate::pid_t, __tid: c_int) -> c_int; // //TODO: The following commented out functions are implemented in assembly. @@ -1280,9 +1260,9 @@ extern "C" { // //pub fn InterruptEnable(); //pub fn InterruptDisable(); - pub fn InterruptMask(__intr: ::c_int, __id: ::c_int) -> ::c_int; - pub fn InterruptUnmask(__intr: ::c_int, __id: ::c_int) -> ::c_int; + pub fn InterruptMask(__intr: c_int, __id: c_int) -> c_int; + pub fn InterruptUnmask(__intr: c_int, __id: c_int) -> c_int; //pub fn InterruptLock(__spin: *mut ::intrspin); //pub fn InterruptUnlock(__spin: *mut ::intrspin); - //pub fn InterruptStatus() -> ::c_uint; + //pub fn InterruptStatus() -> c_uint; } diff --git a/src/unix/nto/x86_64.rs b/src/unix/nto/x86_64.rs index 55894888f1ad8..ef720ac0a3373 100644 --- a/src/unix/nto/x86_64.rs +++ b/src/unix/nto/x86_64.rs @@ -1,3 +1,5 @@ +use crate::{c_int, c_void, size_t}; + pub type c_char = i8; pub type wchar_t = u32; pub type c_long = i64; @@ -38,9 +40,9 @@ s! { } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, + pub ss_sp: *mut c_void, + pub ss_size: size_t, + pub ss_flags: c_int, } pub struct fsave_area_64 { @@ -99,8 +101,8 @@ cfg_if! { } } - impl ::fmt::Debug for x86_64_fpu_registers { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for x86_64_fpu_registers { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { unsafe { f.debug_struct("x86_64_fpu_registers") .field("fsave_area", &self.fsave_area) @@ -111,8 +113,8 @@ cfg_if! { } } - impl ::hash::Hash for x86_64_fpu_registers { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for x86_64_fpu_registers { + fn hash(&self, state: &mut H) { unsafe { self.fsave_area.hash(state); self.fxsave_area.hash(state); diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index 200a795ff87ea..014122e421ab8 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -1,4 +1,4 @@ -use {c_void, in6_addr, in_addr_t, timespec, DIR}; +use crate::{c_void, in6_addr, in_addr_t, timespec, DIR}; pub type nlink_t = u16; pub type ino_t = u16; @@ -200,16 +200,16 @@ s! { pub struct sockaddr_in { pub sin_family: sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, pub sin_zero: [u8; 8], } pub struct sockaddr_in6 { pub sin6_family: sa_family_t, - pub sin6_port: ::in_port_t, + pub sin6_port: crate::in_port_t, pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, + pub sin6_addr: crate::in6_addr, pub sin6_scope_id: u32, } diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 47a8814f9b9c8..890b47a68a45f 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1,3 +1,7 @@ +use crate::{ + c_int, c_longlong, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, size_t, ssize_t, +}; + pub type c_char = i8; pub type wchar_t = i32; @@ -15,40 +19,40 @@ cfg_if! { } } -pub type blkcnt_t = ::c_ulong; -pub type blksize_t = ::c_long; -pub type clock_t = ::c_long; -pub type clockid_t = ::c_int; -pub type dev_t = ::c_long; -pub type fsblkcnt_t = ::c_ulong; -pub type fsfilcnt_t = ::c_ulong; -pub type ino_t = ::c_ulonglong; -pub type mode_t = ::c_int; -pub type nfds_t = ::c_ulong; -pub type nlink_t = ::c_ulong; -pub type off_t = ::c_longlong; -pub type pthread_t = *mut ::c_void; +pub type blkcnt_t = c_ulong; +pub type blksize_t = c_long; +pub type clock_t = c_long; +pub type clockid_t = c_int; +pub type dev_t = c_long; +pub type fsblkcnt_t = c_ulong; +pub type fsfilcnt_t = c_ulong; +pub type ino_t = c_ulonglong; +pub type mode_t = c_int; +pub type nfds_t = c_ulong; +pub type nlink_t = c_ulong; +pub type off_t = c_longlong; +pub type pthread_t = *mut c_void; // Must be usize due to library/std/sys_common/thread_local.rs, -// should technically be *mut ::c_void +// should technically be *mut c_void pub type pthread_key_t = usize; -pub type rlim_t = ::c_ulonglong; +pub type rlim_t = c_ulonglong; pub type sa_family_t = u16; -pub type sem_t = *mut ::c_void; -pub type sigset_t = ::c_ulonglong; +pub type sem_t = *mut c_void; +pub type sigset_t = c_ulonglong; pub type socklen_t = u32; pub type speed_t = u32; -pub type suseconds_t = ::c_int; +pub type suseconds_t = c_int; pub type tcflag_t = u32; -pub type time_t = ::c_longlong; -pub type id_t = ::c_uint; +pub type time_t = c_longlong; +pub type id_t = c_uint; pub type pid_t = usize; pub type uid_t = u32; pub type gid_t = u32; #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { +impl Copy for timezone {} +impl Clone for timezone { fn clone(&self) -> timezone { *self } @@ -57,52 +61,52 @@ impl ::Clone for timezone { s_no_extra_traits! { #[repr(C)] pub struct utsname { - pub sysname: [::c_char; UTSLENGTH], - pub nodename: [::c_char; UTSLENGTH], - pub release: [::c_char; UTSLENGTH], - pub version: [::c_char; UTSLENGTH], - pub machine: [::c_char; UTSLENGTH], - pub domainname: [::c_char; UTSLENGTH], + pub sysname: [c_char; UTSLENGTH], + pub nodename: [c_char; UTSLENGTH], + pub release: [c_char; UTSLENGTH], + pub version: [c_char; UTSLENGTH], + pub machine: [c_char; UTSLENGTH], + pub domainname: [c_char; UTSLENGTH], } pub struct dirent { - pub d_ino: ::ino_t, - pub d_off: ::off_t, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], + pub d_ino: crate::ino_t, + pub d_off: off_t, + pub d_reclen: c_ushort, + pub d_type: c_uchar, + pub d_name: [c_char; 256], } pub struct sockaddr_un { - pub sun_family: ::sa_family_t, - pub sun_path: [::c_char; 108], + pub sun_family: crate::sa_family_t, + pub sun_path: [c_char; 108], } pub struct sockaddr_storage { - pub ss_family: ::sa_family_t, + pub ss_family: crate::sa_family_t, __ss_padding: [u8; 128 - ::core::mem::size_of::() - ::core::mem::size_of::()], - __ss_align: ::c_ulong, + __ss_align: c_ulong, } } s! { pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: ::size_t, - pub ai_canonname: *mut ::c_char, - pub ai_addr: *mut ::sockaddr, - pub ai_next: *mut ::addrinfo, + pub ai_flags: c_int, + pub ai_family: c_int, + pub ai_socktype: c_int, + pub ai_protocol: c_int, + pub ai_addrlen: size_t, + pub ai_canonname: *mut c_char, + pub ai_addr: *mut crate::sockaddr, + pub ai_next: *mut crate::addrinfo, } pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, + pub dli_fname: *const c_char, + pub dli_fbase: *mut c_void, + pub dli_sname: *const c_char, + pub dli_saddr: *mut c_void, } pub struct epoll_event { @@ -112,141 +116,141 @@ s! { } pub struct fd_set { - fds_bits: [::c_ulong; ::FD_SETSIZE as usize / ULONG_SIZE], + fds_bits: [c_ulong; crate::FD_SETSIZE as usize / ULONG_SIZE], } pub struct in_addr { - pub s_addr: ::in_addr_t, + pub s_addr: crate::in_addr_t, } pub struct ip_mreq { - pub imr_multiaddr: ::in_addr, - pub imr_interface: ::in_addr, + pub imr_multiaddr: crate::in_addr, + pub imr_interface: crate::in_addr, } pub struct lconv { - pub currency_symbol: *const ::c_char, - pub decimal_point: *const ::c_char, - pub frac_digits: ::c_char, - pub grouping: *const ::c_char, - pub int_curr_symbol: *const ::c_char, - pub int_frac_digits: ::c_char, - pub mon_decimal_point: *const ::c_char, - pub mon_grouping: *const ::c_char, - pub mon_thousands_sep: *const ::c_char, - pub negative_sign: *const ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub n_sign_posn: ::c_char, - pub positive_sign: *const ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub thousands_sep: *const ::c_char, + pub currency_symbol: *const c_char, + pub decimal_point: *const c_char, + pub frac_digits: c_char, + pub grouping: *const c_char, + pub int_curr_symbol: *const c_char, + pub int_frac_digits: c_char, + pub mon_decimal_point: *const c_char, + pub mon_grouping: *const c_char, + pub mon_thousands_sep: *const c_char, + pub negative_sign: *const c_char, + pub n_cs_precedes: c_char, + pub n_sep_by_space: c_char, + pub n_sign_posn: c_char, + pub positive_sign: *const c_char, + pub p_cs_precedes: c_char, + pub p_sep_by_space: c_char, + pub p_sign_posn: c_char, + pub thousands_sep: *const c_char, } pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, + pub pw_name: *mut c_char, + pub pw_passwd: *mut c_char, + pub pw_uid: crate::uid_t, + pub pw_gid: crate::gid_t, + pub pw_gecos: *mut c_char, + pub pw_dir: *mut c_char, + pub pw_shell: *mut c_char, } pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_flags: ::c_ulong, - pub sa_restorer: ::Option, - pub sa_mask: ::sigset_t, + pub sa_sigaction: crate::sighandler_t, + pub sa_flags: c_ulong, + pub sa_restorer: Option, + pub sa_mask: crate::sigset_t, } pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - _pad: [::c_int; 29], + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, + _pad: [c_int; 29], _align: [usize; 0], } pub struct sockaddr { - pub sa_family: ::sa_family_t, - pub sa_data: [::c_char; 14], + pub sa_family: crate::sa_family_t, + pub sa_data: [c_char; 14], } pub struct sockaddr_in { - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [::c_char; 8], + pub sin_family: crate::sa_family_t, + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, + pub sin_zero: [c_char; 8], } pub struct sockaddr_in6 { - pub sin6_family: ::sa_family_t, - pub sin6_port: ::in_port_t, + pub sin6_family: crate::sa_family_t, + pub sin6_port: crate::in_port_t, pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, + pub sin6_addr: crate::in6_addr, pub sin6_scope_id: u32, } 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, - 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, - _pad: [::c_char; 24], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + _pad: [c_char; 24], } 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_flag: ::c_ulong, - pub f_namemax: ::c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, } pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; crate::NCCS], + pub c_ispeed: crate::speed_t, + pub c_ospeed: crate::speed_t, } pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, - pub tm_gmtoff: ::c_long, - pub tm_zone: *const ::c_char, + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + pub tm_gmtoff: c_long, + pub tm_zone: *const c_char, } pub struct ucred { @@ -337,487 +341,487 @@ cfg_if! { } // limits.h -pub const PATH_MAX: ::c_int = 4096; +pub const PATH_MAX: c_int = 4096; // fcntl.h -pub const F_GETLK: ::c_int = 5; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_ULOCK: ::c_int = 0; -pub const F_LOCK: ::c_int = 1; -pub const F_TLOCK: ::c_int = 2; -pub const F_TEST: ::c_int = 3; +pub const F_GETLK: c_int = 5; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; +pub const F_ULOCK: c_int = 0; +pub const F_LOCK: c_int = 1; +pub const F_TLOCK: c_int = 2; +pub const F_TEST: c_int = 3; // FIXME: relibc { -pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; +pub const RTLD_DEFAULT: *mut c_void = 0i64 as *mut c_void; // } // dlfcn.h -pub const RTLD_LAZY: ::c_int = 0x0001; -pub const RTLD_NOW: ::c_int = 0x0002; -pub const RTLD_GLOBAL: ::c_int = 0x0100; -pub const RTLD_LOCAL: ::c_int = 0x0000; +pub const RTLD_LAZY: c_int = 0x0001; +pub const RTLD_NOW: c_int = 0x0002; +pub const RTLD_GLOBAL: c_int = 0x0100; +pub const RTLD_LOCAL: c_int = 0x0000; // errno.h -pub const EPERM: ::c_int = 1; /* Operation not permitted */ -pub const ENOENT: ::c_int = 2; /* No such file or directory */ -pub const ESRCH: ::c_int = 3; /* No such process */ -pub const EINTR: ::c_int = 4; /* Interrupted system call */ -pub const EIO: ::c_int = 5; /* I/O error */ -pub const ENXIO: ::c_int = 6; /* No such device or address */ -pub const E2BIG: ::c_int = 7; /* Argument list too long */ -pub const ENOEXEC: ::c_int = 8; /* Exec format error */ -pub const EBADF: ::c_int = 9; /* Bad file number */ -pub const ECHILD: ::c_int = 10; /* No child processes */ -pub const EAGAIN: ::c_int = 11; /* Try again */ -pub const ENOMEM: ::c_int = 12; /* Out of memory */ -pub const EACCES: ::c_int = 13; /* Permission denied */ -pub const EFAULT: ::c_int = 14; /* Bad address */ -pub const ENOTBLK: ::c_int = 15; /* Block device required */ -pub const EBUSY: ::c_int = 16; /* Device or resource busy */ -pub const EEXIST: ::c_int = 17; /* File exists */ -pub const EXDEV: ::c_int = 18; /* Cross-device link */ -pub const ENODEV: ::c_int = 19; /* No such device */ -pub const ENOTDIR: ::c_int = 20; /* Not a directory */ -pub const EISDIR: ::c_int = 21; /* Is a directory */ -pub const EINVAL: ::c_int = 22; /* Invalid argument */ -pub const ENFILE: ::c_int = 23; /* File table overflow */ -pub const EMFILE: ::c_int = 24; /* Too many open files */ -pub const ENOTTY: ::c_int = 25; /* Not a typewriter */ -pub const ETXTBSY: ::c_int = 26; /* Text file busy */ -pub const EFBIG: ::c_int = 27; /* File too large */ -pub const ENOSPC: ::c_int = 28; /* No space left on device */ -pub const ESPIPE: ::c_int = 29; /* Illegal seek */ -pub const EROFS: ::c_int = 30; /* Read-only file system */ -pub const EMLINK: ::c_int = 31; /* Too many links */ -pub const EPIPE: ::c_int = 32; /* Broken pipe */ -pub const EDOM: ::c_int = 33; /* Math argument out of domain of func */ -pub const ERANGE: ::c_int = 34; /* Math result not representable */ -pub const EDEADLK: ::c_int = 35; /* Resource deadlock would occur */ -pub const ENAMETOOLONG: ::c_int = 36; /* File name too long */ -pub const ENOLCK: ::c_int = 37; /* No record locks available */ -pub const ENOSYS: ::c_int = 38; /* Function not implemented */ -pub const ENOTEMPTY: ::c_int = 39; /* Directory not empty */ -pub const ELOOP: ::c_int = 40; /* Too many symbolic links encountered */ -pub const EWOULDBLOCK: ::c_int = 41; /* Operation would block */ -pub const ENOMSG: ::c_int = 42; /* No message of desired type */ -pub const EIDRM: ::c_int = 43; /* Identifier removed */ -pub const ECHRNG: ::c_int = 44; /* Channel number out of range */ -pub const EL2NSYNC: ::c_int = 45; /* Level 2 not synchronized */ -pub const EL3HLT: ::c_int = 46; /* Level 3 halted */ -pub const EL3RST: ::c_int = 47; /* Level 3 reset */ -pub const ELNRNG: ::c_int = 48; /* Link number out of range */ -pub const EUNATCH: ::c_int = 49; /* Protocol driver not attached */ -pub const ENOCSI: ::c_int = 50; /* No CSI structure available */ -pub const EL2HLT: ::c_int = 51; /* Level 2 halted */ -pub const EBADE: ::c_int = 52; /* Invalid exchange */ -pub const EBADR: ::c_int = 53; /* Invalid request descriptor */ -pub const EXFULL: ::c_int = 54; /* Exchange full */ -pub const ENOANO: ::c_int = 55; /* No anode */ -pub const EBADRQC: ::c_int = 56; /* Invalid request code */ -pub const EBADSLT: ::c_int = 57; /* Invalid slot */ -pub const EDEADLOCK: ::c_int = 58; /* Resource deadlock would occur */ -pub const EBFONT: ::c_int = 59; /* Bad font file format */ -pub const ENOSTR: ::c_int = 60; /* Device not a stream */ -pub const ENODATA: ::c_int = 61; /* No data available */ -pub const ETIME: ::c_int = 62; /* Timer expired */ -pub const ENOSR: ::c_int = 63; /* Out of streams resources */ -pub const ENONET: ::c_int = 64; /* Machine is not on the network */ -pub const ENOPKG: ::c_int = 65; /* Package not installed */ -pub const EREMOTE: ::c_int = 66; /* Object is remote */ -pub const ENOLINK: ::c_int = 67; /* Link has been severed */ -pub const EADV: ::c_int = 68; /* Advertise error */ -pub const ESRMNT: ::c_int = 69; /* Srmount error */ -pub const ECOMM: ::c_int = 70; /* Communication error on send */ -pub const EPROTO: ::c_int = 71; /* Protocol error */ -pub const EMULTIHOP: ::c_int = 72; /* Multihop attempted */ -pub const EDOTDOT: ::c_int = 73; /* RFS specific error */ -pub const EBADMSG: ::c_int = 74; /* Not a data message */ -pub const EOVERFLOW: ::c_int = 75; /* Value too large for defined data type */ -pub const ENOTUNIQ: ::c_int = 76; /* Name not unique on network */ -pub const EBADFD: ::c_int = 77; /* File descriptor in bad state */ -pub const EREMCHG: ::c_int = 78; /* Remote address changed */ -pub const ELIBACC: ::c_int = 79; /* Can not access a needed shared library */ -pub const ELIBBAD: ::c_int = 80; /* Accessing a corrupted shared library */ -pub const ELIBSCN: ::c_int = 81; /* .lib section in a.out corrupted */ +pub const EPERM: c_int = 1; /* Operation not permitted */ +pub const ENOENT: c_int = 2; /* No such file or directory */ +pub const ESRCH: c_int = 3; /* No such process */ +pub const EINTR: c_int = 4; /* Interrupted system call */ +pub const EIO: c_int = 5; /* I/O error */ +pub const ENXIO: c_int = 6; /* No such device or address */ +pub const E2BIG: c_int = 7; /* Argument list too long */ +pub const ENOEXEC: c_int = 8; /* Exec format error */ +pub const EBADF: c_int = 9; /* Bad file number */ +pub const ECHILD: c_int = 10; /* No child processes */ +pub const EAGAIN: c_int = 11; /* Try again */ +pub const ENOMEM: c_int = 12; /* Out of memory */ +pub const EACCES: c_int = 13; /* Permission denied */ +pub const EFAULT: c_int = 14; /* Bad address */ +pub const ENOTBLK: c_int = 15; /* Block device required */ +pub const EBUSY: c_int = 16; /* Device or resource busy */ +pub const EEXIST: c_int = 17; /* File exists */ +pub const EXDEV: c_int = 18; /* Cross-device link */ +pub const ENODEV: c_int = 19; /* No such device */ +pub const ENOTDIR: c_int = 20; /* Not a directory */ +pub const EISDIR: c_int = 21; /* Is a directory */ +pub const EINVAL: c_int = 22; /* Invalid argument */ +pub const ENFILE: c_int = 23; /* File table overflow */ +pub const EMFILE: c_int = 24; /* Too many open files */ +pub const ENOTTY: c_int = 25; /* Not a typewriter */ +pub const ETXTBSY: c_int = 26; /* Text file busy */ +pub const EFBIG: c_int = 27; /* File too large */ +pub const ENOSPC: c_int = 28; /* No space left on device */ +pub const ESPIPE: c_int = 29; /* Illegal seek */ +pub const EROFS: c_int = 30; /* Read-only file system */ +pub const EMLINK: c_int = 31; /* Too many links */ +pub const EPIPE: c_int = 32; /* Broken pipe */ +pub const EDOM: c_int = 33; /* Math argument out of domain of func */ +pub const ERANGE: c_int = 34; /* Math result not representable */ +pub const EDEADLK: c_int = 35; /* Resource deadlock would occur */ +pub const ENAMETOOLONG: c_int = 36; /* File name too long */ +pub const ENOLCK: c_int = 37; /* No record locks available */ +pub const ENOSYS: c_int = 38; /* Function not implemented */ +pub const ENOTEMPTY: c_int = 39; /* Directory not empty */ +pub const ELOOP: c_int = 40; /* Too many symbolic links encountered */ +pub const EWOULDBLOCK: c_int = 41; /* Operation would block */ +pub const ENOMSG: c_int = 42; /* No message of desired type */ +pub const EIDRM: c_int = 43; /* Identifier removed */ +pub const ECHRNG: c_int = 44; /* Channel number out of range */ +pub const EL2NSYNC: c_int = 45; /* Level 2 not synchronized */ +pub const EL3HLT: c_int = 46; /* Level 3 halted */ +pub const EL3RST: c_int = 47; /* Level 3 reset */ +pub const ELNRNG: c_int = 48; /* Link number out of range */ +pub const EUNATCH: c_int = 49; /* Protocol driver not attached */ +pub const ENOCSI: c_int = 50; /* No CSI structure available */ +pub const EL2HLT: c_int = 51; /* Level 2 halted */ +pub const EBADE: c_int = 52; /* Invalid exchange */ +pub const EBADR: c_int = 53; /* Invalid request descriptor */ +pub const EXFULL: c_int = 54; /* Exchange full */ +pub const ENOANO: c_int = 55; /* No anode */ +pub const EBADRQC: c_int = 56; /* Invalid request code */ +pub const EBADSLT: c_int = 57; /* Invalid slot */ +pub const EDEADLOCK: c_int = 58; /* Resource deadlock would occur */ +pub const EBFONT: c_int = 59; /* Bad font file format */ +pub const ENOSTR: c_int = 60; /* Device not a stream */ +pub const ENODATA: c_int = 61; /* No data available */ +pub const ETIME: c_int = 62; /* Timer expired */ +pub const ENOSR: c_int = 63; /* Out of streams resources */ +pub const ENONET: c_int = 64; /* Machine is not on the network */ +pub const ENOPKG: c_int = 65; /* Package not installed */ +pub const EREMOTE: c_int = 66; /* Object is remote */ +pub const ENOLINK: c_int = 67; /* Link has been severed */ +pub const EADV: c_int = 68; /* Advertise error */ +pub const ESRMNT: c_int = 69; /* Srmount error */ +pub const ECOMM: c_int = 70; /* Communication error on send */ +pub const EPROTO: c_int = 71; /* Protocol error */ +pub const EMULTIHOP: c_int = 72; /* Multihop attempted */ +pub const EDOTDOT: c_int = 73; /* RFS specific error */ +pub const EBADMSG: c_int = 74; /* Not a data message */ +pub const EOVERFLOW: c_int = 75; /* Value too large for defined data type */ +pub const ENOTUNIQ: c_int = 76; /* Name not unique on network */ +pub const EBADFD: c_int = 77; /* File descriptor in bad state */ +pub const EREMCHG: c_int = 78; /* Remote address changed */ +pub const ELIBACC: c_int = 79; /* Can not access a needed shared library */ +pub const ELIBBAD: c_int = 80; /* Accessing a corrupted shared library */ +pub const ELIBSCN: c_int = 81; /* .lib section in a.out corrupted */ /* Attempting to link in too many shared libraries */ -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; /* Cannot exec a shared library directly */ -pub const EILSEQ: ::c_int = 84; /* Illegal byte sequence */ +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; /* Cannot exec a shared library directly */ +pub const EILSEQ: c_int = 84; /* Illegal byte sequence */ /* Interrupted system call should be restarted */ -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; /* Streams pipe error */ -pub const EUSERS: ::c_int = 87; /* Too many users */ -pub const ENOTSOCK: ::c_int = 88; /* Socket operation on non-socket */ -pub const EDESTADDRREQ: ::c_int = 89; /* Destination address required */ -pub const EMSGSIZE: ::c_int = 90; /* Message too long */ -pub const EPROTOTYPE: ::c_int = 91; /* Protocol wrong type for socket */ -pub const ENOPROTOOPT: ::c_int = 92; /* Protocol not available */ -pub const EPROTONOSUPPORT: ::c_int = 93; /* Protocol not supported */ -pub const ESOCKTNOSUPPORT: ::c_int = 94; /* Socket type not supported */ +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; /* Streams pipe error */ +pub const EUSERS: c_int = 87; /* Too many users */ +pub const ENOTSOCK: c_int = 88; /* Socket operation on non-socket */ +pub const EDESTADDRREQ: c_int = 89; /* Destination address required */ +pub const EMSGSIZE: c_int = 90; /* Message too long */ +pub const EPROTOTYPE: c_int = 91; /* Protocol wrong type for socket */ +pub const ENOPROTOOPT: c_int = 92; /* Protocol not available */ +pub const EPROTONOSUPPORT: c_int = 93; /* Protocol not supported */ +pub const ESOCKTNOSUPPORT: c_int = 94; /* Socket type not supported */ /* Operation not supported on transport endpoint */ -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; /* Protocol family not supported */ +pub const EOPNOTSUPP: c_int = 95; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 96; /* Protocol family not supported */ /* Address family not supported by protocol */ -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; /* Address already in use */ -pub const EADDRNOTAVAIL: ::c_int = 99; /* Cannot assign requested address */ -pub const ENETDOWN: ::c_int = 100; /* Network is down */ -pub const ENETUNREACH: ::c_int = 101; /* Network is unreachable */ +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; /* Address already in use */ +pub const EADDRNOTAVAIL: c_int = 99; /* Cannot assign requested address */ +pub const ENETDOWN: c_int = 100; /* Network is down */ +pub const ENETUNREACH: c_int = 101; /* Network is unreachable */ /* Network dropped connection because of reset */ -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; /* Software caused connection abort */ -pub const ECONNRESET: ::c_int = 104; /* Connection reset by peer */ -pub const ENOBUFS: ::c_int = 105; /* No buffer space available */ -pub const EISCONN: ::c_int = 106; /* Transport endpoint is already connected */ -pub const ENOTCONN: ::c_int = 107; /* Transport endpoint is not connected */ +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; /* Software caused connection abort */ +pub const ECONNRESET: c_int = 104; /* Connection reset by peer */ +pub const ENOBUFS: c_int = 105; /* No buffer space available */ +pub const EISCONN: c_int = 106; /* Transport endpoint is already connected */ +pub const ENOTCONN: c_int = 107; /* Transport endpoint is not connected */ /* Cannot send after transport endpoint shutdown */ -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; /* Too many references: cannot splice */ -pub const ETIMEDOUT: ::c_int = 110; /* Connection timed out */ -pub const ECONNREFUSED: ::c_int = 111; /* Connection refused */ -pub const EHOSTDOWN: ::c_int = 112; /* Host is down */ -pub const EHOSTUNREACH: ::c_int = 113; /* No route to host */ -pub const EALREADY: ::c_int = 114; /* Operation already in progress */ -pub const EINPROGRESS: ::c_int = 115; /* Operation now in progress */ -pub const ESTALE: ::c_int = 116; /* Stale NFS file handle */ -pub const EUCLEAN: ::c_int = 117; /* Structure needs cleaning */ -pub const ENOTNAM: ::c_int = 118; /* Not a XENIX named type file */ -pub const ENAVAIL: ::c_int = 119; /* No XENIX semaphores available */ -pub const EISNAM: ::c_int = 120; /* Is a named type file */ -pub const EREMOTEIO: ::c_int = 121; /* Remote I/O error */ -pub const EDQUOT: ::c_int = 122; /* Quota exceeded */ -pub const ENOMEDIUM: ::c_int = 123; /* No medium found */ -pub const EMEDIUMTYPE: ::c_int = 124; /* Wrong medium type */ -pub const ECANCELED: ::c_int = 125; /* Operation Canceled */ -pub const ENOKEY: ::c_int = 126; /* Required key not available */ -pub const EKEYEXPIRED: ::c_int = 127; /* Key has expired */ -pub const EKEYREVOKED: ::c_int = 128; /* Key has been revoked */ -pub const EKEYREJECTED: ::c_int = 129; /* Key was rejected by service */ -pub const EOWNERDEAD: ::c_int = 130; /* Owner died */ -pub const ENOTRECOVERABLE: ::c_int = 131; /* State not recoverable */ +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; /* Too many references: cannot splice */ +pub const ETIMEDOUT: c_int = 110; /* Connection timed out */ +pub const ECONNREFUSED: c_int = 111; /* Connection refused */ +pub const EHOSTDOWN: c_int = 112; /* Host is down */ +pub const EHOSTUNREACH: c_int = 113; /* No route to host */ +pub const EALREADY: c_int = 114; /* Operation already in progress */ +pub const EINPROGRESS: c_int = 115; /* Operation now in progress */ +pub const ESTALE: c_int = 116; /* Stale NFS file handle */ +pub const EUCLEAN: c_int = 117; /* Structure needs cleaning */ +pub const ENOTNAM: c_int = 118; /* Not a XENIX named type file */ +pub const ENAVAIL: c_int = 119; /* No XENIX semaphores available */ +pub const EISNAM: c_int = 120; /* Is a named type file */ +pub const EREMOTEIO: c_int = 121; /* Remote I/O error */ +pub const EDQUOT: c_int = 122; /* Quota exceeded */ +pub const ENOMEDIUM: c_int = 123; /* No medium found */ +pub const EMEDIUMTYPE: c_int = 124; /* Wrong medium type */ +pub const ECANCELED: c_int = 125; /* Operation Canceled */ +pub const ENOKEY: c_int = 126; /* Required key not available */ +pub const EKEYEXPIRED: c_int = 127; /* Key has expired */ +pub const EKEYREVOKED: c_int = 128; /* Key has been revoked */ +pub const EKEYREJECTED: c_int = 129; /* Key was rejected by service */ +pub const EOWNERDEAD: c_int = 130; /* Owner died */ +pub const ENOTRECOVERABLE: c_int = 131; /* State not recoverable */ // fcntl.h -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; +pub const F_DUPFD: c_int = 0; +pub const F_GETFD: c_int = 1; +pub const F_SETFD: c_int = 2; +pub const F_GETFL: c_int = 3; +pub const F_SETFL: c_int = 4; // FIXME: relibc { -pub const F_DUPFD_CLOEXEC: ::c_int = ::F_DUPFD; +pub const F_DUPFD_CLOEXEC: c_int = crate::F_DUPFD; // } -pub const FD_CLOEXEC: ::c_int = 0x0100_0000; -pub const O_RDONLY: ::c_int = 0x0001_0000; -pub const O_WRONLY: ::c_int = 0x0002_0000; -pub const O_RDWR: ::c_int = 0x0003_0000; -pub const O_ACCMODE: ::c_int = 0x0003_0000; -pub const O_NONBLOCK: ::c_int = 0x0004_0000; -pub const O_APPEND: ::c_int = 0x0008_0000; -pub const O_SHLOCK: ::c_int = 0x0010_0000; -pub const O_EXLOCK: ::c_int = 0x0020_0000; -pub const O_ASYNC: ::c_int = 0x0040_0000; -pub const O_FSYNC: ::c_int = 0x0080_0000; -pub const O_CLOEXEC: ::c_int = 0x0100_0000; -pub const O_CREAT: ::c_int = 0x0200_0000; -pub const O_TRUNC: ::c_int = 0x0400_0000; -pub const O_EXCL: ::c_int = 0x0800_0000; -pub const O_DIRECTORY: ::c_int = 0x1000_0000; -pub const O_PATH: ::c_int = 0x2000_0000; -pub const O_SYMLINK: ::c_int = 0x4000_0000; +pub const FD_CLOEXEC: c_int = 0x0100_0000; +pub const O_RDONLY: c_int = 0x0001_0000; +pub const O_WRONLY: c_int = 0x0002_0000; +pub const O_RDWR: c_int = 0x0003_0000; +pub const O_ACCMODE: c_int = 0x0003_0000; +pub const O_NONBLOCK: c_int = 0x0004_0000; +pub const O_APPEND: c_int = 0x0008_0000; +pub const O_SHLOCK: c_int = 0x0010_0000; +pub const O_EXLOCK: c_int = 0x0020_0000; +pub const O_ASYNC: c_int = 0x0040_0000; +pub const O_FSYNC: c_int = 0x0080_0000; +pub const O_CLOEXEC: c_int = 0x0100_0000; +pub const O_CREAT: c_int = 0x0200_0000; +pub const O_TRUNC: c_int = 0x0400_0000; +pub const O_EXCL: c_int = 0x0800_0000; +pub const O_DIRECTORY: c_int = 0x1000_0000; +pub const O_PATH: c_int = 0x2000_0000; +pub const O_SYMLINK: c_int = 0x4000_0000; // Negative to allow it to be used as int // FIXME: Fix negative values missing from includes -pub const O_NOFOLLOW: ::c_int = -0x8000_0000; +pub const O_NOFOLLOW: c_int = -0x8000_0000; // locale.h -pub const LC_ALL: ::c_int = 0; -pub const LC_COLLATE: ::c_int = 1; -pub const LC_CTYPE: ::c_int = 2; -pub const LC_MESSAGES: ::c_int = 3; -pub const LC_MONETARY: ::c_int = 4; -pub const LC_NUMERIC: ::c_int = 5; -pub const LC_TIME: ::c_int = 6; +pub const LC_ALL: c_int = 0; +pub const LC_COLLATE: c_int = 1; +pub const LC_CTYPE: c_int = 2; +pub const LC_MESSAGES: c_int = 3; +pub const LC_MONETARY: c_int = 4; +pub const LC_NUMERIC: c_int = 5; +pub const LC_TIME: c_int = 6; // netdb.h -pub const AI_PASSIVE: ::c_int = 0x0001; -pub const AI_CANONNAME: ::c_int = 0x0002; -pub const AI_NUMERICHOST: ::c_int = 0x0004; -pub const AI_V4MAPPED: ::c_int = 0x0008; -pub const AI_ALL: ::c_int = 0x0010; -pub const AI_ADDRCONFIG: ::c_int = 0x0020; -pub const AI_NUMERICSERV: ::c_int = 0x0400; -pub const EAI_BADFLAGS: ::c_int = -1; -pub const EAI_NONAME: ::c_int = -2; -pub const EAI_AGAIN: ::c_int = -3; -pub const EAI_FAIL: ::c_int = -4; -pub const EAI_NODATA: ::c_int = -5; -pub const EAI_FAMILY: ::c_int = -6; -pub const EAI_SOCKTYPE: ::c_int = -7; -pub const EAI_SERVICE: ::c_int = -8; -pub const EAI_ADDRFAMILY: ::c_int = -9; -pub const EAI_MEMORY: ::c_int = -10; -pub const EAI_SYSTEM: ::c_int = -11; -pub const EAI_OVERFLOW: ::c_int = -12; -pub const NI_MAXHOST: ::c_int = 1025; -pub const NI_MAXSERV: ::c_int = 32; -pub const NI_NUMERICHOST: ::c_int = 0x0001; -pub const NI_NUMERICSERV: ::c_int = 0x0002; -pub const NI_NOFQDN: ::c_int = 0x0004; -pub const NI_NAMEREQD: ::c_int = 0x0008; -pub const NI_DGRAM: ::c_int = 0x0010; +pub const AI_PASSIVE: c_int = 0x0001; +pub const AI_CANONNAME: c_int = 0x0002; +pub const AI_NUMERICHOST: c_int = 0x0004; +pub const AI_V4MAPPED: c_int = 0x0008; +pub const AI_ALL: c_int = 0x0010; +pub const AI_ADDRCONFIG: c_int = 0x0020; +pub const AI_NUMERICSERV: c_int = 0x0400; +pub const EAI_BADFLAGS: c_int = -1; +pub const EAI_NONAME: c_int = -2; +pub const EAI_AGAIN: c_int = -3; +pub const EAI_FAIL: c_int = -4; +pub const EAI_NODATA: c_int = -5; +pub const EAI_FAMILY: c_int = -6; +pub const EAI_SOCKTYPE: c_int = -7; +pub const EAI_SERVICE: c_int = -8; +pub const EAI_ADDRFAMILY: c_int = -9; +pub const EAI_MEMORY: c_int = -10; +pub const EAI_SYSTEM: c_int = -11; +pub const EAI_OVERFLOW: c_int = -12; +pub const NI_MAXHOST: c_int = 1025; +pub const NI_MAXSERV: c_int = 32; +pub const NI_NUMERICHOST: c_int = 0x0001; +pub const NI_NUMERICSERV: c_int = 0x0002; +pub const NI_NOFQDN: c_int = 0x0004; +pub const NI_NAMEREQD: c_int = 0x0008; +pub const NI_DGRAM: c_int = 0x0010; // netinet/in.h // FIXME: relibc { -pub const IP_TTL: ::c_int = 2; -pub const IPV6_UNICAST_HOPS: ::c_int = 16; -pub const IPV6_MULTICAST_IF: ::c_int = 17; -pub const IPV6_MULTICAST_HOPS: ::c_int = 18; -pub const IPV6_MULTICAST_LOOP: ::c_int = 19; -pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; -pub const IPV6_V6ONLY: ::c_int = 26; -pub const IP_MULTICAST_IF: ::c_int = 32; -pub const IP_MULTICAST_TTL: ::c_int = 33; -pub const IP_MULTICAST_LOOP: ::c_int = 34; -pub const IP_ADD_MEMBERSHIP: ::c_int = 35; -pub const IP_DROP_MEMBERSHIP: ::c_int = 36; -pub const IP_TOS: ::c_int = 1; -pub const IP_RECVTOS: ::c_int = 2; -pub const IPPROTO_IGMP: ::c_int = 2; -pub const IPPROTO_PUP: ::c_int = 12; -pub const IPPROTO_IDP: ::c_int = 22; -pub const IPPROTO_RAW: ::c_int = 255; -pub const IPPROTO_MAX: ::c_int = 255; +pub const IP_TTL: c_int = 2; +pub const IPV6_UNICAST_HOPS: c_int = 16; +pub const IPV6_MULTICAST_IF: c_int = 17; +pub const IPV6_MULTICAST_HOPS: c_int = 18; +pub const IPV6_MULTICAST_LOOP: c_int = 19; +pub const IPV6_ADD_MEMBERSHIP: c_int = 20; +pub const IPV6_DROP_MEMBERSHIP: c_int = 21; +pub const IPV6_V6ONLY: c_int = 26; +pub const IP_MULTICAST_IF: c_int = 32; +pub const IP_MULTICAST_TTL: c_int = 33; +pub const IP_MULTICAST_LOOP: c_int = 34; +pub const IP_ADD_MEMBERSHIP: c_int = 35; +pub const IP_DROP_MEMBERSHIP: c_int = 36; +pub const IP_TOS: c_int = 1; +pub const IP_RECVTOS: c_int = 2; +pub const IPPROTO_IGMP: c_int = 2; +pub const IPPROTO_PUP: c_int = 12; +pub const IPPROTO_IDP: c_int = 22; +pub const IPPROTO_RAW: c_int = 255; +pub const IPPROTO_MAX: c_int = 255; // } // netinet/tcp.h -pub const TCP_NODELAY: ::c_int = 1; +pub const TCP_NODELAY: c_int = 1; // FIXME: relibc { -pub const TCP_KEEPIDLE: ::c_int = 1; +pub const TCP_KEEPIDLE: c_int = 1; // } // poll.h -pub const POLLIN: ::c_short = 0x001; -pub const POLLPRI: ::c_short = 0x002; -pub const POLLOUT: ::c_short = 0x004; -pub const POLLERR: ::c_short = 0x008; -pub const POLLHUP: ::c_short = 0x010; -pub const POLLNVAL: ::c_short = 0x020; -pub const POLLRDNORM: ::c_short = 0x040; -pub const POLLRDBAND: ::c_short = 0x080; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; +pub const POLLIN: c_short = 0x001; +pub const POLLPRI: c_short = 0x002; +pub const POLLOUT: c_short = 0x004; +pub const POLLERR: c_short = 0x008; +pub const POLLHUP: c_short = 0x010; +pub const POLLNVAL: c_short = 0x020; +pub const POLLRDNORM: c_short = 0x040; +pub const POLLRDBAND: c_short = 0x080; +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; // pthread.h -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; -pub const PTHREAD_MUTEX_INITIALIZER: ::pthread_mutex_t = ::pthread_mutex_t { +pub const PTHREAD_MUTEX_NORMAL: c_int = 0; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 1; +pub const PTHREAD_MUTEX_INITIALIZER: crate::pthread_mutex_t = crate::pthread_mutex_t { bytes: [0; _PTHREAD_MUTEX_SIZE], }; -pub const PTHREAD_COND_INITIALIZER: ::pthread_cond_t = ::pthread_cond_t { +pub const PTHREAD_COND_INITIALIZER: crate::pthread_cond_t = crate::pthread_cond_t { bytes: [0; _PTHREAD_COND_SIZE], }; -pub const PTHREAD_RWLOCK_INITIALIZER: ::pthread_rwlock_t = ::pthread_rwlock_t { +pub const PTHREAD_RWLOCK_INITIALIZER: crate::pthread_rwlock_t = crate::pthread_rwlock_t { bytes: [0; _PTHREAD_RWLOCK_SIZE], }; -pub const PTHREAD_STACK_MIN: ::size_t = 4096; +pub const PTHREAD_STACK_MIN: size_t = 4096; // signal.h -pub const SIG_BLOCK: ::c_int = 0; -pub const SIG_UNBLOCK: ::c_int = 1; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGTRAP: ::c_int = 5; -pub const SIGABRT: ::c_int = 6; -pub const SIGBUS: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGUSR1: ::c_int = 10; -pub const SIGSEGV: ::c_int = 11; -pub const SIGUSR2: ::c_int = 12; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGCHLD: ::c_int = 17; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGURG: ::c_int = 23; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGIO: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIGSYS: ::c_int = 31; -pub const NSIG: ::c_int = 32; - -pub const SA_NOCLDSTOP: ::c_ulong = 0x00000001; -pub const SA_NOCLDWAIT: ::c_ulong = 0x00000002; -pub const SA_SIGINFO: ::c_ulong = 0x00000004; -pub const SA_RESTORER: ::c_ulong = 0x04000000; -pub const SA_ONSTACK: ::c_ulong = 0x08000000; -pub const SA_RESTART: ::c_ulong = 0x10000000; -pub const SA_NODEFER: ::c_ulong = 0x40000000; -pub const SA_RESETHAND: ::c_ulong = 0x80000000; +pub const SIG_BLOCK: c_int = 0; +pub const SIG_UNBLOCK: c_int = 1; +pub const SIG_SETMASK: c_int = 2; +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGTRAP: c_int = 5; +pub const SIGABRT: c_int = 6; +pub const SIGBUS: c_int = 7; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGUSR1: c_int = 10; +pub const SIGSEGV: c_int = 11; +pub const SIGUSR2: c_int = 12; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; +pub const SIGSTKFLT: c_int = 16; +pub const SIGCHLD: c_int = 17; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGURG: c_int = 23; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGIO: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIGSYS: c_int = 31; +pub const NSIG: c_int = 32; + +pub const SA_NOCLDSTOP: c_ulong = 0x00000001; +pub const SA_NOCLDWAIT: c_ulong = 0x00000002; +pub const SA_SIGINFO: c_ulong = 0x00000004; +pub const SA_RESTORER: c_ulong = 0x04000000; +pub const SA_ONSTACK: c_ulong = 0x08000000; +pub const SA_RESTART: c_ulong = 0x10000000; +pub const SA_NODEFER: c_ulong = 0x40000000; +pub const SA_RESETHAND: c_ulong = 0x80000000; // sys/file.h -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_NB: ::c_int = 4; -pub const LOCK_UN: ::c_int = 8; +pub const LOCK_SH: c_int = 1; +pub const LOCK_EX: c_int = 2; +pub const LOCK_NB: c_int = 4; +pub const LOCK_UN: c_int = 8; // sys/epoll.h -pub const EPOLL_CLOEXEC: ::c_int = 0x0100_0000; -pub const EPOLL_CTL_ADD: ::c_int = 1; -pub const EPOLL_CTL_DEL: ::c_int = 2; -pub const EPOLL_CTL_MOD: ::c_int = 3; -pub const EPOLLIN: ::c_int = 0x001; -pub const EPOLLPRI: ::c_int = 0x002; -pub const EPOLLOUT: ::c_int = 0x004; -pub const EPOLLERR: ::c_int = 0x008; -pub const EPOLLHUP: ::c_int = 0x010; -pub const EPOLLNVAL: ::c_int = 0x020; -pub const EPOLLRDNORM: ::c_int = 0x040; -pub const EPOLLRDBAND: ::c_int = 0x080; -pub const EPOLLWRNORM: ::c_int = 0x100; -pub const EPOLLWRBAND: ::c_int = 0x200; -pub const EPOLLMSG: ::c_int = 0x400; -pub const EPOLLRDHUP: ::c_int = 0x2000; -pub const EPOLLEXCLUSIVE: ::c_int = 1 << 28; -pub const EPOLLWAKEUP: ::c_int = 1 << 29; -pub const EPOLLONESHOT: ::c_int = 1 << 30; -pub const EPOLLET: ::c_int = 1 << 31; +pub const EPOLL_CLOEXEC: c_int = 0x0100_0000; +pub const EPOLL_CTL_ADD: c_int = 1; +pub const EPOLL_CTL_DEL: c_int = 2; +pub const EPOLL_CTL_MOD: c_int = 3; +pub const EPOLLIN: c_int = 0x001; +pub const EPOLLPRI: c_int = 0x002; +pub const EPOLLOUT: c_int = 0x004; +pub const EPOLLERR: c_int = 0x008; +pub const EPOLLHUP: c_int = 0x010; +pub const EPOLLNVAL: c_int = 0x020; +pub const EPOLLRDNORM: c_int = 0x040; +pub const EPOLLRDBAND: c_int = 0x080; +pub const EPOLLWRNORM: c_int = 0x100; +pub const EPOLLWRBAND: c_int = 0x200; +pub const EPOLLMSG: c_int = 0x400; +pub const EPOLLRDHUP: c_int = 0x2000; +pub const EPOLLEXCLUSIVE: c_int = 1 << 28; +pub const EPOLLWAKEUP: c_int = 1 << 29; +pub const EPOLLONESHOT: c_int = 1 << 30; +pub const EPOLLET: c_int = 1 << 31; // sys/stat.h -pub const S_IFMT: ::c_int = 0o17_0000; -pub const S_IFDIR: ::c_int = 0o4_0000; -pub const S_IFCHR: ::c_int = 0o2_0000; -pub const S_IFBLK: ::c_int = 0o6_0000; -pub const S_IFREG: ::c_int = 0o10_0000; -pub const S_IFIFO: ::c_int = 0o1_0000; -pub const S_IFLNK: ::c_int = 0o12_0000; -pub const S_IFSOCK: ::c_int = 0o14_0000; -pub const S_IRWXU: ::c_int = 0o0700; -pub const S_IRUSR: ::c_int = 0o0400; -pub const S_IWUSR: ::c_int = 0o0200; -pub const S_IXUSR: ::c_int = 0o0100; -pub const S_IRWXG: ::c_int = 0o0070; -pub const S_IRGRP: ::c_int = 0o0040; -pub const S_IWGRP: ::c_int = 0o0020; -pub const S_IXGRP: ::c_int = 0o0010; -pub const S_IRWXO: ::c_int = 0o0007; -pub const S_IROTH: ::c_int = 0o0004; -pub const S_IWOTH: ::c_int = 0o0002; -pub const S_IXOTH: ::c_int = 0o0001; +pub const S_IFMT: c_int = 0o17_0000; +pub const S_IFDIR: c_int = 0o4_0000; +pub const S_IFCHR: c_int = 0o2_0000; +pub const S_IFBLK: c_int = 0o6_0000; +pub const S_IFREG: c_int = 0o10_0000; +pub const S_IFIFO: c_int = 0o1_0000; +pub const S_IFLNK: c_int = 0o12_0000; +pub const S_IFSOCK: c_int = 0o14_0000; +pub const S_IRWXU: c_int = 0o0700; +pub const S_IRUSR: c_int = 0o0400; +pub const S_IWUSR: c_int = 0o0200; +pub const S_IXUSR: c_int = 0o0100; +pub const S_IRWXG: c_int = 0o0070; +pub const S_IRGRP: c_int = 0o0040; +pub const S_IWGRP: c_int = 0o0020; +pub const S_IXGRP: c_int = 0o0010; +pub const S_IRWXO: c_int = 0o0007; +pub const S_IROTH: c_int = 0o0004; +pub const S_IWOTH: c_int = 0o0002; +pub const S_IXOTH: c_int = 0o0001; // stdlib.h -pub const EXIT_SUCCESS: ::c_int = 0; -pub const EXIT_FAILURE: ::c_int = 1; +pub const EXIT_SUCCESS: c_int = 0; +pub const EXIT_FAILURE: c_int = 1; // sys/ioctl.h // FIXME: relibc { -pub const FIONREAD: ::c_ulong = 0x541B; -pub const FIONBIO: ::c_ulong = 0x5421; -pub const FIOCLEX: ::c_ulong = 0x5451; +pub const FIONREAD: c_ulong = 0x541B; +pub const FIONBIO: c_ulong = 0x5421; +pub const FIOCLEX: c_ulong = 0x5451; // } -pub const TCGETS: ::c_ulong = 0x5401; -pub const TCSETS: ::c_ulong = 0x5402; -pub const TCFLSH: ::c_ulong = 0x540B; -pub const TIOCSCTTY: ::c_ulong = 0x540E; -pub const TIOCGPGRP: ::c_ulong = 0x540F; -pub const TIOCSPGRP: ::c_ulong = 0x5410; -pub const TIOCGWINSZ: ::c_ulong = 0x5413; -pub const TIOCSWINSZ: ::c_ulong = 0x5414; +pub const TCGETS: c_ulong = 0x5401; +pub const TCSETS: c_ulong = 0x5402; +pub const TCFLSH: c_ulong = 0x540B; +pub const TIOCSCTTY: c_ulong = 0x540E; +pub const TIOCGPGRP: c_ulong = 0x540F; +pub const TIOCSPGRP: c_ulong = 0x5410; +pub const TIOCGWINSZ: c_ulong = 0x5413; +pub const TIOCSWINSZ: c_ulong = 0x5414; // sys/mman.h -pub const PROT_NONE: ::c_int = 0x0000; -pub const PROT_READ: ::c_int = 0x0004; -pub const PROT_WRITE: ::c_int = 0x0002; -pub const PROT_EXEC: ::c_int = 0x0001; - -pub const MADV_NORMAL: ::c_int = 0; -pub const MADV_RANDOM: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_WILLNEED: ::c_int = 3; -pub const MADV_DONTNEED: ::c_int = 4; - -pub const MAP_SHARED: ::c_int = 0x0001; -pub const MAP_PRIVATE: ::c_int = 0x0002; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; -pub const MAP_FIXED: ::c_int = 0x0010; -pub const MAP_FAILED: *mut ::c_void = !0 as _; - -pub const MS_ASYNC: ::c_int = 0x0001; -pub const MS_INVALIDATE: ::c_int = 0x0002; -pub const MS_SYNC: ::c_int = 0x0004; +pub const PROT_NONE: c_int = 0x0000; +pub const PROT_READ: c_int = 0x0004; +pub const PROT_WRITE: c_int = 0x0002; +pub const PROT_EXEC: c_int = 0x0001; + +pub const MADV_NORMAL: c_int = 0; +pub const MADV_RANDOM: c_int = 1; +pub const MADV_SEQUENTIAL: c_int = 2; +pub const MADV_WILLNEED: c_int = 3; +pub const MADV_DONTNEED: c_int = 4; + +pub const MAP_SHARED: c_int = 0x0001; +pub const MAP_PRIVATE: c_int = 0x0002; +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_ANONYMOUS: c_int = MAP_ANON; +pub const MAP_FIXED: c_int = 0x0010; +pub const MAP_FAILED: *mut c_void = !0 as _; + +pub const MS_ASYNC: c_int = 0x0001; +pub const MS_INVALIDATE: c_int = 0x0002; +pub const MS_SYNC: c_int = 0x0004; // sys/select.h pub const FD_SETSIZE: usize = 1024; // sys/socket.h -pub const AF_INET: ::c_int = 2; -pub const AF_INET6: ::c_int = 10; -pub const AF_UNIX: ::c_int = 1; -pub const AF_UNSPEC: ::c_int = 0; -pub const PF_INET: ::c_int = 2; -pub const PF_INET6: ::c_int = 10; -pub const PF_UNIX: ::c_int = 1; -pub const PF_UNSPEC: ::c_int = 0; -pub const MSG_CTRUNC: ::c_int = 8; -pub const MSG_DONTROUTE: ::c_int = 4; -pub const MSG_EOR: ::c_int = 128; -pub const MSG_OOB: ::c_int = 1; -pub const MSG_PEEK: ::c_int = 2; -pub const MSG_TRUNC: ::c_int = 32; -pub const MSG_DONTWAIT: ::c_int = 64; -pub const MSG_WAITALL: ::c_int = 256; -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; -pub const SO_DEBUG: ::c_int = 1; -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; -pub const SO_NO_CHECK: ::c_int = 11; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_LINGER: ::c_int = 13; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_REUSEPORT: ::c_int = 15; -pub const SO_PASSCRED: ::c_int = 16; -pub const SO_PEERCRED: ::c_int = 17; -pub const SO_RCVLOWAT: ::c_int = 18; -pub const SO_SNDLOWAT: ::c_int = 19; -pub const SO_RCVTIMEO: ::c_int = 20; -pub const SO_SNDTIMEO: ::c_int = 21; -pub const SO_ACCEPTCONN: ::c_int = 30; -pub const SO_PEERSEC: ::c_int = 31; -pub const SO_SNDBUFFORCE: ::c_int = 32; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PROTOCOL: ::c_int = 38; -pub const SO_DOMAIN: ::c_int = 39; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_NONBLOCK: ::c_int = 0o4_000; -pub const SOCK_CLOEXEC: ::c_int = 0o2_000_000; -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOL_SOCKET: ::c_int = 1; -pub const SOMAXCONN: ::c_int = 128; +pub const AF_INET: c_int = 2; +pub const AF_INET6: c_int = 10; +pub const AF_UNIX: c_int = 1; +pub const AF_UNSPEC: c_int = 0; +pub const PF_INET: c_int = 2; +pub const PF_INET6: c_int = 10; +pub const PF_UNIX: c_int = 1; +pub const PF_UNSPEC: c_int = 0; +pub const MSG_CTRUNC: c_int = 8; +pub const MSG_DONTROUTE: c_int = 4; +pub const MSG_EOR: c_int = 128; +pub const MSG_OOB: c_int = 1; +pub const MSG_PEEK: c_int = 2; +pub const MSG_TRUNC: c_int = 32; +pub const MSG_DONTWAIT: c_int = 64; +pub const MSG_WAITALL: c_int = 256; +pub const SHUT_RD: c_int = 0; +pub const SHUT_WR: c_int = 1; +pub const SHUT_RDWR: c_int = 2; +pub const SO_DEBUG: c_int = 1; +pub const SO_REUSEADDR: c_int = 2; +pub const SO_TYPE: c_int = 3; +pub const SO_ERROR: c_int = 4; +pub const SO_DONTROUTE: c_int = 5; +pub const SO_BROADCAST: c_int = 6; +pub const SO_SNDBUF: c_int = 7; +pub const SO_RCVBUF: c_int = 8; +pub const SO_KEEPALIVE: c_int = 9; +pub const SO_OOBINLINE: c_int = 10; +pub const SO_NO_CHECK: c_int = 11; +pub const SO_PRIORITY: c_int = 12; +pub const SO_LINGER: c_int = 13; +pub const SO_BSDCOMPAT: c_int = 14; +pub const SO_REUSEPORT: c_int = 15; +pub const SO_PASSCRED: c_int = 16; +pub const SO_PEERCRED: c_int = 17; +pub const SO_RCVLOWAT: c_int = 18; +pub const SO_SNDLOWAT: c_int = 19; +pub const SO_RCVTIMEO: c_int = 20; +pub const SO_SNDTIMEO: c_int = 21; +pub const SO_ACCEPTCONN: c_int = 30; +pub const SO_PEERSEC: c_int = 31; +pub const SO_SNDBUFFORCE: c_int = 32; +pub const SO_RCVBUFFORCE: c_int = 33; +pub const SO_PROTOCOL: c_int = 38; +pub const SO_DOMAIN: c_int = 39; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; +pub const SOCK_RAW: c_int = 3; +pub const SOCK_NONBLOCK: c_int = 0o4_000; +pub const SOCK_CLOEXEC: c_int = 0o2_000_000; +pub const SOCK_SEQPACKET: c_int = 5; +pub const SOL_SOCKET: c_int = 1; +pub const SOMAXCONN: c_int = 128; // sys/termios.h pub const VEOF: usize = 0; @@ -839,26 +843,26 @@ pub const VMIN: usize = 16; pub const VTIME: usize = 17; pub const NCCS: usize = 32; -pub const IGNBRK: ::tcflag_t = 0o000_001; -pub const BRKINT: ::tcflag_t = 0o000_002; -pub const IGNPAR: ::tcflag_t = 0o000_004; -pub const PARMRK: ::tcflag_t = 0o000_010; -pub const INPCK: ::tcflag_t = 0o000_020; -pub const ISTRIP: ::tcflag_t = 0o000_040; -pub const INLCR: ::tcflag_t = 0o000_100; -pub const IGNCR: ::tcflag_t = 0o000_200; -pub const ICRNL: ::tcflag_t = 0o000_400; -pub const IXON: ::tcflag_t = 0o001_000; -pub const IXOFF: ::tcflag_t = 0o002_000; - -pub const OPOST: ::tcflag_t = 0o000_001; -pub const ONLCR: ::tcflag_t = 0o000_002; -pub const OLCUC: ::tcflag_t = 0o000_004; -pub const OCRNL: ::tcflag_t = 0o000_010; -pub const ONOCR: ::tcflag_t = 0o000_020; -pub const ONLRET: ::tcflag_t = 0o000_040; -pub const OFILL: ::tcflag_t = 0o0000_100; -pub const OFDEL: ::tcflag_t = 0o0000_200; +pub const IGNBRK: crate::tcflag_t = 0o000_001; +pub const BRKINT: crate::tcflag_t = 0o000_002; +pub const IGNPAR: crate::tcflag_t = 0o000_004; +pub const PARMRK: crate::tcflag_t = 0o000_010; +pub const INPCK: crate::tcflag_t = 0o000_020; +pub const ISTRIP: crate::tcflag_t = 0o000_040; +pub const INLCR: crate::tcflag_t = 0o000_100; +pub const IGNCR: crate::tcflag_t = 0o000_200; +pub const ICRNL: crate::tcflag_t = 0o000_400; +pub const IXON: crate::tcflag_t = 0o001_000; +pub const IXOFF: crate::tcflag_t = 0o002_000; + +pub const OPOST: crate::tcflag_t = 0o000_001; +pub const ONLCR: crate::tcflag_t = 0o000_002; +pub const OLCUC: crate::tcflag_t = 0o000_004; +pub const OCRNL: crate::tcflag_t = 0o000_010; +pub const ONOCR: crate::tcflag_t = 0o000_020; +pub const ONLRET: crate::tcflag_t = 0o000_040; +pub const OFILL: crate::tcflag_t = 0o0000_100; +pub const OFDEL: crate::tcflag_t = 0o0000_200; pub const B0: speed_t = 0o000_000; pub const B50: speed_t = 0o000_001; @@ -893,143 +897,143 @@ pub const B3000000: speed_t = 0o0_034; pub const B3500000: speed_t = 0o0_035; pub const B4000000: speed_t = 0o0_036; -pub const CSIZE: ::tcflag_t = 0o001_400; -pub const CS5: ::tcflag_t = 0o000_000; -pub const CS6: ::tcflag_t = 0o000_400; -pub const CS7: ::tcflag_t = 0o001_000; -pub const CS8: ::tcflag_t = 0o001_400; - -pub const CSTOPB: ::tcflag_t = 0o002_000; -pub const CREAD: ::tcflag_t = 0o004_000; -pub const PARENB: ::tcflag_t = 0o010_000; -pub const PARODD: ::tcflag_t = 0o020_000; -pub const HUPCL: ::tcflag_t = 0o040_000; - -pub const CLOCAL: ::tcflag_t = 0o0100000; - -pub const ISIG: ::tcflag_t = 0x0000_0080; -pub const ICANON: ::tcflag_t = 0x0000_0100; -pub const ECHO: ::tcflag_t = 0x0000_0008; -pub const ECHOE: ::tcflag_t = 0x0000_0002; -pub const ECHOK: ::tcflag_t = 0x0000_0004; -pub const ECHONL: ::tcflag_t = 0x0000_0010; -pub const NOFLSH: ::tcflag_t = 0x8000_0000; -pub const TOSTOP: ::tcflag_t = 0x0040_0000; -pub const IEXTEN: ::tcflag_t = 0x0000_0400; - -pub const TCOOFF: ::c_int = 0; -pub const TCOON: ::c_int = 1; -pub const TCIOFF: ::c_int = 2; -pub const TCION: ::c_int = 3; - -pub const TCIFLUSH: ::c_int = 0; -pub const TCOFLUSH: ::c_int = 1; -pub const TCIOFLUSH: ::c_int = 2; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; +pub const CSIZE: crate::tcflag_t = 0o001_400; +pub const CS5: crate::tcflag_t = 0o000_000; +pub const CS6: crate::tcflag_t = 0o000_400; +pub const CS7: crate::tcflag_t = 0o001_000; +pub const CS8: crate::tcflag_t = 0o001_400; + +pub const CSTOPB: crate::tcflag_t = 0o002_000; +pub const CREAD: crate::tcflag_t = 0o004_000; +pub const PARENB: crate::tcflag_t = 0o010_000; +pub const PARODD: crate::tcflag_t = 0o020_000; +pub const HUPCL: crate::tcflag_t = 0o040_000; + +pub const CLOCAL: crate::tcflag_t = 0o0100000; + +pub const ISIG: crate::tcflag_t = 0x0000_0080; +pub const ICANON: crate::tcflag_t = 0x0000_0100; +pub const ECHO: crate::tcflag_t = 0x0000_0008; +pub const ECHOE: crate::tcflag_t = 0x0000_0002; +pub const ECHOK: crate::tcflag_t = 0x0000_0004; +pub const ECHONL: crate::tcflag_t = 0x0000_0010; +pub const NOFLSH: crate::tcflag_t = 0x8000_0000; +pub const TOSTOP: crate::tcflag_t = 0x0040_0000; +pub const IEXTEN: crate::tcflag_t = 0x0000_0400; + +pub const TCOOFF: c_int = 0; +pub const TCOON: c_int = 1; +pub const TCIOFF: c_int = 2; +pub const TCION: c_int = 3; + +pub const TCIFLUSH: c_int = 0; +pub const TCOFLUSH: c_int = 1; +pub const TCIOFLUSH: c_int = 2; + +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; // sys/wait.h -pub const WNOHANG: ::c_int = 1; -pub const WUNTRACED: ::c_int = 2; +pub const WNOHANG: c_int = 1; +pub const WUNTRACED: c_int = 2; -pub const WSTOPPED: ::c_int = 2; -pub const WEXITED: ::c_int = 4; -pub const WCONTINUED: ::c_int = 8; -pub const WNOWAIT: ::c_int = 0x0100_0000; +pub const WSTOPPED: c_int = 2; +pub const WEXITED: c_int = 4; +pub const WCONTINUED: c_int = 8; +pub const WNOWAIT: c_int = 0x0100_0000; -pub const __WNOTHREAD: ::c_int = 0x2000_0000; -pub const __WALL: ::c_int = 0x4000_0000; +pub const __WNOTHREAD: c_int = 0x2000_0000; +pub const __WALL: c_int = 0x4000_0000; #[allow(overflowing_literals)] -pub const __WCLONE: ::c_int = 0x8000_0000; +pub const __WCLONE: c_int = 0x8000_0000; // time.h -pub const CLOCK_REALTIME: ::c_int = 1; -pub const CLOCK_MONOTONIC: ::c_int = 4; -pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 2; -pub const CLOCKS_PER_SEC: ::clock_t = 1_000_000; +pub const CLOCK_REALTIME: c_int = 1; +pub const CLOCK_MONOTONIC: c_int = 4; +pub const CLOCK_PROCESS_CPUTIME_ID: crate::clockid_t = 2; +pub const CLOCKS_PER_SEC: crate::clock_t = 1_000_000; // unistd.h // POSIX.1 { -pub const _SC_ARG_MAX: ::c_int = 0; -pub const _SC_CHILD_MAX: ::c_int = 1; -pub const _SC_CLK_TCK: ::c_int = 2; -pub const _SC_NGROUPS_MAX: ::c_int = 3; -pub const _SC_OPEN_MAX: ::c_int = 4; -pub const _SC_STREAM_MAX: ::c_int = 5; -pub const _SC_TZNAME_MAX: ::c_int = 6; +pub const _SC_ARG_MAX: c_int = 0; +pub const _SC_CHILD_MAX: c_int = 1; +pub const _SC_CLK_TCK: c_int = 2; +pub const _SC_NGROUPS_MAX: c_int = 3; +pub const _SC_OPEN_MAX: c_int = 4; +pub const _SC_STREAM_MAX: c_int = 5; +pub const _SC_TZNAME_MAX: c_int = 6; // ... -pub const _SC_VERSION: ::c_int = 29; -pub const _SC_PAGESIZE: ::c_int = 30; -pub const _SC_PAGE_SIZE: ::c_int = 30; +pub const _SC_VERSION: c_int = 29; +pub const _SC_PAGESIZE: c_int = 30; +pub const _SC_PAGE_SIZE: c_int = 30; // ... -pub const _SC_RE_DUP_MAX: ::c_int = 44; +pub const _SC_RE_DUP_MAX: c_int = 44; // ... -pub const _SC_LOGIN_NAME_MAX: ::c_int = 71; -pub const _SC_TTY_NAME_MAX: ::c_int = 72; +pub const _SC_LOGIN_NAME_MAX: c_int = 71; +pub const _SC_TTY_NAME_MAX: c_int = 72; // ... -pub const _SC_SYMLOOP_MAX: ::c_int = 173; +pub const _SC_SYMLOOP_MAX: c_int = 173; // ... -pub const _SC_HOST_NAME_MAX: ::c_int = 180; +pub const _SC_HOST_NAME_MAX: c_int = 180; // } POSIX.1 -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; - -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; - -pub const _PC_LINK_MAX: ::c_int = 0; -pub const _PC_MAX_CANON: ::c_int = 1; -pub const _PC_MAX_INPUT: ::c_int = 2; -pub const _PC_NAME_MAX: ::c_int = 3; -pub const _PC_PATH_MAX: ::c_int = 4; -pub const _PC_PIPE_BUF: ::c_int = 5; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 6; -pub const _PC_NO_TRUNC: ::c_int = 7; -pub const _PC_VDISABLE: ::c_int = 8; -pub const _PC_SYNC_IO: ::c_int = 9; -pub const _PC_ASYNC_IO: ::c_int = 10; -pub const _PC_PRIO_IO: ::c_int = 11; -pub const _PC_SOCK_MAXBUF: ::c_int = 12; -pub const _PC_FILESIZEBITS: ::c_int = 13; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; -pub const _PC_REC_XFER_ALIGN: ::c_int = 17; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 18; -pub const _PC_SYMLINK_MAX: ::c_int = 19; -pub const _PC_2_SYMLINKS: ::c_int = 20; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; +pub const F_OK: c_int = 0; +pub const R_OK: c_int = 4; +pub const W_OK: c_int = 2; +pub const X_OK: c_int = 1; + +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; + +pub const _PC_LINK_MAX: c_int = 0; +pub const _PC_MAX_CANON: c_int = 1; +pub const _PC_MAX_INPUT: c_int = 2; +pub const _PC_NAME_MAX: c_int = 3; +pub const _PC_PATH_MAX: c_int = 4; +pub const _PC_PIPE_BUF: c_int = 5; +pub const _PC_CHOWN_RESTRICTED: c_int = 6; +pub const _PC_NO_TRUNC: c_int = 7; +pub const _PC_VDISABLE: c_int = 8; +pub const _PC_SYNC_IO: c_int = 9; +pub const _PC_ASYNC_IO: c_int = 10; +pub const _PC_PRIO_IO: c_int = 11; +pub const _PC_SOCK_MAXBUF: c_int = 12; +pub const _PC_FILESIZEBITS: c_int = 13; +pub const _PC_REC_INCR_XFER_SIZE: c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: c_int = 16; +pub const _PC_REC_XFER_ALIGN: c_int = 17; +pub const _PC_ALLOC_SIZE_MIN: c_int = 18; +pub const _PC_SYMLINK_MAX: c_int = 19; +pub const _PC_2_SYMLINKS: c_int = 20; + +pub const PRIO_PROCESS: c_int = 0; +pub const PRIO_PGRP: c_int = 1; +pub const PRIO_USER: c_int = 2; // wait.h f! { - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { + pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } @@ -1042,217 +1046,220 @@ f! { } safe_f! { - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + pub {const} fn WIFSTOPPED(status: c_int) -> bool { (status & 0xff) == 0x7f } - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + pub {const} fn WSTOPSIG(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + pub {const} fn WIFCONTINUED(status: c_int) -> bool { status == 0xffff } - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + pub {const} fn WIFSIGNALED(status: c_int) -> bool { ((status & 0x7f) + 1) as i8 >= 2 } - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + pub {const} fn WTERMSIG(status: c_int) -> c_int { status & 0x7f } - pub {const} fn WIFEXITED(status: ::c_int) -> bool { + pub {const} fn WIFEXITED(status: c_int) -> bool { (status & 0x7f) == 0 } - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + pub {const} fn WEXITSTATUS(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WCOREDUMP(status: ::c_int) -> bool { + pub {const} fn WCOREDUMP(status: c_int) -> bool { (status & 0x80) != 0 } } extern "C" { // errno.h - pub fn __errno_location() -> *mut ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + pub fn __errno_location() -> *mut c_int; + pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; // unistd.h - pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; - pub fn getdtablesize() -> ::c_int; + pub fn pipe2(fds: *mut c_int, flags: c_int) -> c_int; + pub fn getdtablesize() -> c_int; // grp.h - pub fn getgrent() -> *mut ::group; + pub fn getgrent() -> *mut crate::group; pub fn setgrent(); pub fn endgrent(); - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + gid: crate::gid_t, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn getgrnam(name: *const c_char) -> *mut crate::group; pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; + name: *const c_char, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; pub fn getgrouplist( - user: *const ::c_char, - group: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int, - ) -> ::c_int; + user: *const c_char, + group: crate::gid_t, + groups: *mut crate::gid_t, + ngroups: *mut c_int, + ) -> c_int; // malloc.h - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; + pub fn memalign(align: size_t, size: size_t) -> *mut c_void; // netdb.h pub fn getnameinfo( - addr: *const ::sockaddr, - addrlen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - servlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; + addr: *const crate::sockaddr, + addrlen: crate::socklen_t, + host: *mut c_char, + hostlen: crate::socklen_t, + serv: *mut c_char, + servlen: crate::socklen_t, + flags: c_int, + ) -> c_int; // pthread.h pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; + prepare: Option, + parent: Option, + child: Option, + ) -> c_int; pub fn pthread_create( - tid: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - start: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - arg: *mut ::c_void, - ) -> ::c_int; + tid: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + start: extern "C" fn(*mut c_void) -> *mut c_void, + arg: *mut c_void, + ) -> c_int; pub fn pthread_condattr_setclock( attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; + clock_id: crate::clockid_t, + ) -> c_int; //pty.h pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, + amaster: *mut c_int, + aslave: *mut c_int, + name: *mut c_char, termp: *const termios, - winp: *const ::winsize, - ) -> ::c_int; + winp: *const crate::winsize, + ) -> c_int; // pwd.h pub fn getpwent() -> *mut passwd; pub fn setpwent(); pub fn endpwent(); pub fn getpwnam_r( - name: *const ::c_char, + name: *const c_char, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; pub fn getpwuid_r( - uid: ::uid_t, + uid: crate::uid_t, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; // signal.h pub fn pthread_sigmask( - how: ::c_int, - set: *const ::sigset_t, - oldset: *mut ::sigset_t, - ) -> ::c_int; - pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; + how: c_int, + set: *const crate::sigset_t, + oldset: *mut crate::sigset_t, + ) -> c_int; + pub fn pthread_cancel(thread: crate::pthread_t) -> c_int; + pub fn pthread_kill(thread: crate::pthread_t, sig: c_int) -> c_int; pub fn sigtimedwait( set: *const sigset_t, sig: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + timeout: *const crate::timespec, + ) -> c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int; // stdlib.h pub fn getsubopt( optionp: *mut *mut c_char, tokens: *const *mut c_char, valuep: *mut *mut c_char, - ) -> ::c_int; - pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; + ) -> c_int; + pub fn reallocarray(ptr: *mut c_void, nmemb: size_t, size: size_t) -> *mut c_void; // string.h - pub fn explicit_bzero(p: *mut ::c_void, len: ::size_t); - pub fn strlcat(dst: *mut ::c_char, src: *const ::c_char, siz: ::size_t) -> ::size_t; - pub fn strlcpy(dst: *mut ::c_char, src: *const ::c_char, siz: ::size_t) -> ::size_t; + pub fn explicit_bzero(p: *mut c_void, len: size_t); + pub fn strlcat(dst: *mut c_char, src: *const c_char, siz: size_t) -> size_t; + pub fn strlcpy(dst: *mut c_char, src: *const c_char, siz: size_t) -> size_t; // sys/epoll.h - pub fn epoll_create(size: ::c_int) -> ::c_int; - pub fn epoll_create1(flags: ::c_int) -> ::c_int; + pub fn epoll_create(size: c_int) -> c_int; + pub fn epoll_create1(flags: c_int) -> c_int; pub fn epoll_wait( - epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - ) -> ::c_int; - pub fn epoll_ctl(epfd: ::c_int, op: ::c_int, fd: ::c_int, event: *mut ::epoll_event) - -> ::c_int; + epfd: c_int, + events: *mut crate::epoll_event, + maxevents: c_int, + timeout: c_int, + ) -> c_int; + pub fn epoll_ctl(epfd: c_int, op: c_int, fd: c_int, event: *mut crate::epoll_event) -> c_int; // sys/ioctl.h - pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; + pub fn ioctl(fd: c_int, request: c_ulong, ...) -> c_int; // sys/mman.h - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; + pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; + pub fn shm_unlink(name: *const c_char) -> c_int; // sys/resource.h - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; + pub fn getpriority(which: c_int, who: crate::id_t) -> c_int; + pub fn setpriority(which: c_int, who: crate::id_t, prio: c_int) -> c_int; + pub fn getrlimit(resource: c_int, rlim: *mut crate::rlimit) -> c_int; + pub fn setrlimit(resource: c_int, rlim: *const crate::rlimit) -> c_int; // sys/socket.h - pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; + pub fn bind( + socket: c_int, + address: *const crate::sockaddr, + address_len: crate::socklen_t, + ) -> c_int; pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; + socket: c_int, + buf: *mut c_void, + len: size_t, + flags: c_int, + addr: *mut crate::sockaddr, + addrlen: *mut crate::socklen_t, + ) -> ssize_t; // sys/stat.h - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; // sys/uio.h - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn readv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; + pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; // sys/utsname.h - pub fn uname(utsname: *mut utsname) -> ::c_int; + pub fn uname(utsname: *mut utsname) -> c_int; // time.h - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; - pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut crate::timezone) -> c_int; + pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; // utmp.h - pub fn login_tty(fd: ::c_int) -> ::c_int; + pub fn login_tty(fd: c_int) -> c_int; } cfg_if! { @@ -1273,8 +1280,8 @@ cfg_if! { impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -1285,8 +1292,8 @@ cfg_if! { } } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -1308,8 +1315,8 @@ cfg_if! { impl Eq for sockaddr_un {} - impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_un") .field("sun_family", &self.sun_family) // FIXME: .field("sun_path", &self.sun_path) @@ -1317,8 +1324,8 @@ cfg_if! { } } - impl ::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { self.sun_family.hash(state); self.sun_path.hash(state); } @@ -1338,8 +1345,8 @@ cfg_if! { impl Eq for sockaddr_storage {} - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_family", &self.ss_family) .field("__ss_align", &self.__ss_align) @@ -1348,8 +1355,8 @@ cfg_if! { } } - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_family.hash(state); self.__ss_padding.hash(state); self.__ss_align.hash(state); @@ -1392,8 +1399,8 @@ cfg_if! { impl Eq for utsname {} - impl ::fmt::Debug for utsname { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utsname { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utsname") // FIXME: .field("sysname", &self.sysname) // FIXME: .field("nodename", &self.nodename) @@ -1405,8 +1412,8 @@ cfg_if! { } } - impl ::hash::Hash for utsname { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utsname { + fn hash(&self, state: &mut H) { self.sysname.hash(state); self.nodename.hash(state); self.release.hash(state); diff --git a/src/unix/solarish/compat.rs b/src/unix/solarish/compat.rs index 72d1bb436794e..8fd1c750a62cf 100644 --- a/src/unix/solarish/compat.rs +++ b/src/unix/solarish/compat.rs @@ -1,14 +1,14 @@ // Common functions that are unfortunately missing on illumos and // Solaris, but often needed by other crates. - use core::cmp::min; -use unix::solarish::*; +use crate::unix::solarish::*; +use crate::{c_char, c_int, size_t}; const PTEM: &[u8] = b"ptem\0"; const LDTERM: &[u8] = b"ldterm\0"; -pub unsafe fn cfmakeraw(termios: *mut ::termios) { +pub unsafe fn cfmakeraw(termios: *mut crate::termios) { (*termios).c_iflag &= !(IMAXBEL | IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON); (*termios).c_oflag &= !OPOST; @@ -33,77 +33,79 @@ pub unsafe fn cfmakeraw(termios: *mut ::termios) { (*termios).c_cc[VTIME] = 0; } -pub unsafe fn cfsetspeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int { +pub unsafe fn cfsetspeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int { // Neither of these functions on illumos or Solaris actually ever // return an error - ::cfsetispeed(termios, speed); - ::cfsetospeed(termios, speed); + crate::cfsetispeed(termios, speed); + crate::cfsetospeed(termios, speed); 0 } -unsafe fn bail(fdm: ::c_int, fds: ::c_int) -> ::c_int { +unsafe fn bail(fdm: c_int, fds: c_int) -> c_int { let e = *___errno(); if fds >= 0 { - ::close(fds); + crate::close(fds); } if fdm >= 0 { - ::close(fdm); + crate::close(fdm); } *___errno() = e; return -1; } pub unsafe fn openpty( - amain: *mut ::c_int, - asubord: *mut ::c_int, - name: *mut ::c_char, + amain: *mut c_int, + asubord: *mut c_int, + name: *mut c_char, termp: *const termios, - winp: *const ::winsize, -) -> ::c_int { + winp: *const crate::winsize, +) -> c_int { // Open the main pseudo-terminal device, making sure not to set it as the // controlling terminal for this process: - let fdm = ::posix_openpt(O_RDWR | O_NOCTTY); + let fdm = crate::posix_openpt(O_RDWR | O_NOCTTY); if fdm < 0 { return -1; } // Set permissions and ownership on the subordinate device and unlock it: - if ::grantpt(fdm) < 0 || ::unlockpt(fdm) < 0 { + if crate::grantpt(fdm) < 0 || crate::unlockpt(fdm) < 0 { return bail(fdm, -1); } // Get the path name of the subordinate device: - let subordpath = ::ptsname(fdm); + let subordpath = crate::ptsname(fdm); if subordpath.is_null() { return bail(fdm, -1); } // Open the subordinate device without setting it as the controlling // terminal for this process: - let fds = ::open(subordpath, O_RDWR | O_NOCTTY); + let fds = crate::open(subordpath, O_RDWR | O_NOCTTY); if fds < 0 { return bail(fdm, -1); } // Check if the STREAMS modules are already pushed: - let setup = ::ioctl(fds, I_FIND, LDTERM.as_ptr()); + let setup = crate::ioctl(fds, I_FIND, LDTERM.as_ptr()); if setup < 0 { return bail(fdm, fds); } else if setup == 0 { // The line discipline is not present, so push the appropriate STREAMS // modules for the subordinate device: - if ::ioctl(fds, I_PUSH, PTEM.as_ptr()) < 0 || ::ioctl(fds, I_PUSH, LDTERM.as_ptr()) < 0 { + if crate::ioctl(fds, I_PUSH, PTEM.as_ptr()) < 0 + || crate::ioctl(fds, I_PUSH, LDTERM.as_ptr()) < 0 + { return bail(fdm, fds); } } // If provided, set the terminal parameters: - if !termp.is_null() && ::tcsetattr(fds, TCSAFLUSH, termp) != 0 { + if !termp.is_null() && crate::tcsetattr(fds, TCSAFLUSH, termp) != 0 { return bail(fdm, fds); } // If provided, set the window size: - if !winp.is_null() && ::ioctl(fds, TIOCSWINSZ, winp) < 0 { + if !winp.is_null() && crate::ioctl(fds, TIOCSWINSZ, winp) < 0 { return bail(fdm, fds); } @@ -113,7 +115,7 @@ pub unsafe fn openpty( // upper bound on the copy length for this pointer. Nobody should pass // anything but NULL here, preferring instead to use ptsname(3C) directly. if !name.is_null() { - ::strcpy(name, subordpath); + crate::strcpy(name, subordpath); } *amain = fdm; @@ -122,51 +124,51 @@ pub unsafe fn openpty( } pub unsafe fn forkpty( - amain: *mut ::c_int, - name: *mut ::c_char, + amain: *mut c_int, + name: *mut c_char, termp: *const termios, - winp: *const ::winsize, -) -> ::pid_t { + winp: *const crate::winsize, +) -> crate::pid_t { let mut fds = -1; if openpty(amain, &mut fds, name, termp, winp) != 0 { return -1; } - let pid = ::fork(); + let pid = crate::fork(); if pid < 0 { return bail(*amain, fds); } else if pid > 0 { // In the parent process, we close the subordinate device and return the // process ID of the new child: - ::close(fds); + crate::close(fds); return pid; } // The rest of this function executes in the child process. // Close the main side of the pseudo-terminal pair: - ::close(*amain); + crate::close(*amain); // Use TIOCSCTTY to set the subordinate device as our controlling // terminal. This will fail (with ENOTTY) if we are not the leader in // our own session, so we call setsid() first. Finally, arrange for // the pseudo-terminal to occupy the standard I/O descriptors. - if ::setsid() < 0 - || ::ioctl(fds, TIOCSCTTY, 0) < 0 - || ::dup2(fds, 0) < 0 - || ::dup2(fds, 1) < 0 - || ::dup2(fds, 2) < 0 + if crate::setsid() < 0 + || crate::ioctl(fds, TIOCSCTTY, 0) < 0 + || crate::dup2(fds, 0) < 0 + || crate::dup2(fds, 1) < 0 + || crate::dup2(fds, 2) < 0 { // At this stage there are no particularly good ways to handle failure. // Exit as abruptly as possible, using _exit() to avoid messing with any // state still shared with the parent process. - ::_exit(EXIT_FAILURE); + crate::_exit(EXIT_FAILURE); } // Close the inherited descriptor, taking care to avoid closing the standard // descriptors by mistake: if fds > 2 { - ::close(fds); + crate::close(fds); } 0 @@ -174,48 +176,40 @@ pub unsafe fn forkpty( pub unsafe fn getpwent_r( pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, -) -> ::c_int { - let old_errno = *::___errno(); - *::___errno() = 0; - *result = native_getpwent_r( - pwd, - buf, - min(buflen, ::c_int::max_value() as ::size_t) as ::c_int, - ); +) -> c_int { + let old_errno = *crate::___errno(); + *crate::___errno() = 0; + *result = native_getpwent_r(pwd, buf, min(buflen, c_int::max_value() as size_t) as c_int); let ret = if (*result).is_null() { - *::___errno() + *crate::___errno() } else { 0 }; - *::___errno() = old_errno; + *crate::___errno() = old_errno; ret } pub unsafe fn getgrent_r( - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, -) -> ::c_int { - let old_errno = *::___errno(); - *::___errno() = 0; - *result = native_getgrent_r( - grp, - buf, - min(buflen, ::c_int::max_value() as ::size_t) as ::c_int, - ); + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, +) -> c_int { + let old_errno = *crate::___errno(); + *crate::___errno() = 0; + *result = native_getgrent_r(grp, buf, min(buflen, c_int::max_value() as size_t) as c_int); let ret = if (*result).is_null() { - *::___errno() + *crate::___errno() } else { 0 }; - *::___errno() = old_errno; + *crate::___errno() = old_errno; ret } diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index cfdb2d16df034..0fea3b7dd24ba 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -1,44 +1,45 @@ -use { - exit_status, NET_MAC_AWARE, NET_MAC_AWARE_INHERIT, PRIV_AWARE_RESET, PRIV_DEBUG, PRIV_PFEXEC, - PRIV_XPOLICY, +use crate::{ + c_char, c_double, c_int, c_short, c_uint, c_ulong, c_ushort, c_void, exit_status, off_t, + size_t, ssize_t, NET_MAC_AWARE, NET_MAC_AWARE_INHERIT, PRIV_AWARE_RESET, PRIV_DEBUG, + PRIV_PFEXEC, PRIV_XPOLICY, }; -pub type lgrp_rsrc_t = ::c_int; -pub type lgrp_affinity_t = ::c_int; +pub type lgrp_rsrc_t = c_int; +pub type lgrp_affinity_t = c_int; s! { pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_offset: ::off_t, - pub aio_reqprio: ::c_int, - pub aio_sigevent: ::sigevent, - pub aio_lio_opcode: ::c_int, - pub aio_resultp: ::aio_result_t, - pub aio_state: ::c_int, - pub aio__pad: [::c_int; 1], + pub aio_fildes: c_int, + pub aio_buf: *mut c_void, + pub aio_nbytes: size_t, + pub aio_offset: off_t, + pub aio_reqprio: c_int, + pub aio_sigevent: crate::sigevent, + pub aio_lio_opcode: c_int, + pub aio_resultp: crate::aio_result_t, + pub aio_state: c_int, + pub aio__pad: [c_int; 1], } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_amp: *mut ::c_void, - pub shm_lkcnt: ::c_ushort, - pub shm_lpid: ::pid_t, - pub shm_cpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - pub shm_cnattch: ::c_ulong, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_amp: *mut c_void, + pub shm_lkcnt: c_ushort, + pub shm_lpid: crate::pid_t, + pub shm_cpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + pub shm_cnattch: c_ulong, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, pub shm_pad4: [i64; 4], } pub struct fil_info { - pub fi_flags: ::c_int, - pub fi_pos: ::c_int, - pub fi_name: [::c_char; ::FILNAME_MAX as usize], + pub fi_flags: c_int, + pub fi_pos: c_int, + pub fi_name: [c_char; crate::FILNAME_MAX as usize], } } @@ -50,17 +51,17 @@ s_no_extra_traits! { } pub struct utmpx { - pub ut_user: [::c_char; _UTX_USERSIZE], - pub ut_id: [::c_char; _UTX_IDSIZE], - pub ut_line: [::c_char; _UTX_LINESIZE], - pub ut_pid: ::pid_t, - pub ut_type: ::c_short, + pub ut_user: [c_char; _UTX_USERSIZE], + pub ut_id: [c_char; _UTX_IDSIZE], + pub ut_line: [c_char; _UTX_LINESIZE], + pub ut_pid: crate::pid_t, + pub ut_type: c_short, pub ut_exit: exit_status, - pub ut_tv: ::timeval, - pub ut_session: ::c_int, - pub ut_pad: [::c_int; _UTX_PADSIZE], - pub ut_syslen: ::c_short, - pub ut_host: [::c_char; _UTX_HOSTSIZE], + pub ut_tv: crate::timeval, + pub ut_session: c_int, + pub ut_pad: [c_int; _UTX_PADSIZE], + pub ut_syslen: c_short, + pub ut_host: [c_char; _UTX_HOSTSIZE], } } @@ -88,8 +89,8 @@ cfg_if! { impl Eq for utmpx {} - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utmpx { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utmpx") .field("ut_user", &self.ut_user) .field("ut_id", &self.ut_id) @@ -106,8 +107,8 @@ cfg_if! { } } - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_user.hash(state); self.ut_type.hash(state); self.ut_pid.hash(state); @@ -128,8 +129,8 @@ cfg_if! { } } impl Eq for epoll_event {} - impl ::fmt::Debug for epoll_event { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for epoll_event { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { let events = self.events; let u64 = self.u64; f.debug_struct("epoll_event") @@ -138,8 +139,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for epoll_event { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for epoll_event { + fn hash(&self, state: &mut H) { let events = self.events; let u64 = self.u64; events.hash(state); @@ -155,195 +156,194 @@ pub const _UTX_PADSIZE: usize = 5; pub const _UTX_IDSIZE: usize = 4; pub const _UTX_HOSTSIZE: usize = 257; -pub const AF_LOCAL: ::c_int = 1; // AF_UNIX -pub const AF_FILE: ::c_int = 1; // AF_UNIX +pub const AF_LOCAL: c_int = 1; // AF_UNIX +pub const AF_FILE: c_int = 1; // AF_UNIX -pub const EFD_SEMAPHORE: ::c_int = 0x1; -pub const EFD_NONBLOCK: ::c_int = 0x800; -pub const EFD_CLOEXEC: ::c_int = 0x80000; +pub const EFD_SEMAPHORE: c_int = 0x1; +pub const EFD_NONBLOCK: c_int = 0x800; +pub const EFD_CLOEXEC: c_int = 0x80000; -pub const POLLRDHUP: ::c_short = 0x4000; +pub const POLLRDHUP: c_short = 0x4000; -pub const TCP_KEEPIDLE: ::c_int = 34; -pub const TCP_KEEPCNT: ::c_int = 35; -pub const TCP_KEEPINTVL: ::c_int = 36; -pub const TCP_CONGESTION: ::c_int = 37; +pub const TCP_KEEPIDLE: c_int = 34; +pub const TCP_KEEPCNT: c_int = 35; +pub const TCP_KEEPINTVL: c_int = 36; +pub const TCP_CONGESTION: c_int = 37; // These constants are correct for 64-bit programs or 32-bit programs that are // not using large-file mode. If Rust ever supports anything other than 64-bit // compilation on illumos, this may require adjustment: -pub const F_OFD_GETLK: ::c_int = 47; -pub const F_OFD_SETLK: ::c_int = 48; -pub const F_OFD_SETLKW: ::c_int = 49; -pub const F_FLOCK: ::c_int = 53; -pub const F_FLOCKW: ::c_int = 54; +pub const F_OFD_GETLK: c_int = 47; +pub const F_OFD_SETLK: c_int = 48; +pub const F_OFD_SETLKW: c_int = 49; +pub const F_FLOCK: c_int = 53; +pub const F_FLOCKW: c_int = 54; -pub const F_DUPFD_CLOEXEC: ::c_int = 37; -pub const F_DUPFD_CLOFORK: ::c_int = 58; -pub const F_DUP2FD_CLOEXEC: ::c_int = 36; -pub const F_DUP2FD_CLOFORK: ::c_int = 57; -pub const F_DUP3FD: ::c_int = 59; +pub const F_DUPFD_CLOEXEC: c_int = 37; +pub const F_DUPFD_CLOFORK: c_int = 58; +pub const F_DUP2FD_CLOEXEC: c_int = 36; +pub const F_DUP2FD_CLOFORK: c_int = 57; +pub const F_DUP3FD: c_int = 59; -pub const FD_CLOFORK: ::c_int = 2; +pub const FD_CLOFORK: c_int = 2; -pub const FIL_ATTACH: ::c_int = 0x1; -pub const FIL_DETACH: ::c_int = 0x2; -pub const FIL_LIST: ::c_int = 0x3; -pub const FILNAME_MAX: ::c_int = 32; -pub const FILF_PROG: ::c_int = 0x1; -pub const FILF_AUTO: ::c_int = 0x2; -pub const FILF_BYPASS: ::c_int = 0x4; -pub const SOL_FILTER: ::c_int = 0xfffc; +pub const FIL_ATTACH: c_int = 0x1; +pub const FIL_DETACH: c_int = 0x2; +pub const FIL_LIST: c_int = 0x3; +pub const FILNAME_MAX: c_int = 32; +pub const FILF_PROG: c_int = 0x1; +pub const FILF_AUTO: c_int = 0x2; +pub const FILF_BYPASS: c_int = 0x4; +pub const SOL_FILTER: c_int = 0xfffc; -pub const MADV_PURGE: ::c_int = 9; +pub const MADV_PURGE: c_int = 9; -pub const POSIX_FADV_NORMAL: ::c_int = 0; -pub const POSIX_FADV_RANDOM: ::c_int = 1; -pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_FADV_WILLNEED: ::c_int = 3; -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; +pub const POSIX_FADV_NORMAL: c_int = 0; +pub const POSIX_FADV_RANDOM: c_int = 1; +pub const POSIX_FADV_SEQUENTIAL: c_int = 2; +pub const POSIX_FADV_WILLNEED: c_int = 3; +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; -pub const SIGINFO: ::c_int = 41; +pub const SIGINFO: c_int = 41; -pub const O_DIRECT: ::c_int = 0x2000000; -pub const O_CLOFORK: ::c_int = 0x4000000; +pub const O_DIRECT: c_int = 0x2000000; +pub const O_CLOFORK: c_int = 0x4000000; -pub const MSG_CMSG_CLOEXEC: ::c_int = 0x1000; -pub const MSG_CMSG_CLOFORK: ::c_int = 0x2000; +pub const MSG_CMSG_CLOEXEC: c_int = 0x1000; +pub const MSG_CMSG_CLOFORK: c_int = 0x2000; -pub const PBIND_HARD: ::processorid_t = -3; -pub const PBIND_SOFT: ::processorid_t = -4; +pub const PBIND_HARD: crate::processorid_t = -3; +pub const PBIND_SOFT: crate::processorid_t = -4; -pub const PS_SYSTEM: ::c_int = 1; +pub const PS_SYSTEM: c_int = 1; -pub const MAP_FILE: ::c_int = 0; +pub const MAP_FILE: c_int = 0; -pub const MAP_32BIT: ::c_int = 0x80; +pub const MAP_32BIT: c_int = 0x80; -pub const AF_NCA: ::c_int = 28; +pub const AF_NCA: c_int = 28; -pub const PF_NCA: ::c_int = AF_NCA; +pub const PF_NCA: c_int = AF_NCA; -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_NB: ::c_int = 4; -pub const LOCK_UN: ::c_int = 8; +pub const LOCK_SH: c_int = 1; +pub const LOCK_EX: c_int = 2; +pub const LOCK_NB: c_int = 4; +pub const LOCK_UN: c_int = 8; -pub const _PC_LAST: ::c_int = 101; +pub const _PC_LAST: c_int = 101; pub const VSTATUS: usize = 16; pub const VERASE2: usize = 17; -pub const EPOLLIN: ::c_int = 0x1; -pub const EPOLLPRI: ::c_int = 0x2; -pub const EPOLLOUT: ::c_int = 0x4; -pub const EPOLLRDNORM: ::c_int = 0x40; -pub const EPOLLRDBAND: ::c_int = 0x80; -pub const EPOLLWRNORM: ::c_int = 0x100; -pub const EPOLLWRBAND: ::c_int = 0x200; -pub const EPOLLMSG: ::c_int = 0x400; -pub const EPOLLERR: ::c_int = 0x8; -pub const EPOLLHUP: ::c_int = 0x10; -pub const EPOLLET: ::c_int = 0x80000000; -pub const EPOLLRDHUP: ::c_int = 0x2000; -pub const EPOLLONESHOT: ::c_int = 0x40000000; -pub const EPOLLWAKEUP: ::c_int = 0x20000000; -pub const EPOLLEXCLUSIVE: ::c_int = 0x10000000; -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; -pub const EPOLL_CTL_ADD: ::c_int = 1; -pub const EPOLL_CTL_MOD: ::c_int = 3; -pub const EPOLL_CTL_DEL: ::c_int = 2; - -pub const PRIV_USER: ::c_uint = PRIV_DEBUG +pub const EPOLLIN: c_int = 0x1; +pub const EPOLLPRI: c_int = 0x2; +pub const EPOLLOUT: c_int = 0x4; +pub const EPOLLRDNORM: c_int = 0x40; +pub const EPOLLRDBAND: c_int = 0x80; +pub const EPOLLWRNORM: c_int = 0x100; +pub const EPOLLWRBAND: c_int = 0x200; +pub const EPOLLMSG: c_int = 0x400; +pub const EPOLLERR: c_int = 0x8; +pub const EPOLLHUP: c_int = 0x10; +pub const EPOLLET: c_int = 0x80000000; +pub const EPOLLRDHUP: c_int = 0x2000; +pub const EPOLLONESHOT: c_int = 0x40000000; +pub const EPOLLWAKEUP: c_int = 0x20000000; +pub const EPOLLEXCLUSIVE: c_int = 0x10000000; +pub const EPOLL_CLOEXEC: c_int = 0x80000; +pub const EPOLL_CTL_ADD: c_int = 1; +pub const EPOLL_CTL_MOD: c_int = 3; +pub const EPOLL_CTL_DEL: c_int = 2; + +pub const PRIV_USER: c_uint = PRIV_DEBUG | NET_MAC_AWARE | NET_MAC_AWARE_INHERIT | PRIV_XPOLICY | PRIV_AWARE_RESET | PRIV_PFEXEC; -pub const LGRP_RSRC_COUNT: ::lgrp_rsrc_t = 2; -pub const LGRP_RSRC_CPU: ::lgrp_rsrc_t = 0; -pub const LGRP_RSRC_MEM: ::lgrp_rsrc_t = 1; +pub const LGRP_RSRC_COUNT: crate::lgrp_rsrc_t = 2; +pub const LGRP_RSRC_CPU: crate::lgrp_rsrc_t = 0; +pub const LGRP_RSRC_MEM: crate::lgrp_rsrc_t = 1; -pub const P_DISABLED: ::c_int = 0x008; +pub const P_DISABLED: c_int = 0x008; -pub const AT_SUN_HWCAP2: ::c_uint = 2023; -pub const AT_SUN_FPTYPE: ::c_uint = 2027; +pub const AT_SUN_HWCAP2: c_uint = 2023; +pub const AT_SUN_FPTYPE: c_uint = 2027; -pub const B1000000: ::speed_t = 24; -pub const B1152000: ::speed_t = 25; -pub const B1500000: ::speed_t = 26; -pub const B2000000: ::speed_t = 27; -pub const B2500000: ::speed_t = 28; -pub const B3000000: ::speed_t = 29; -pub const B3500000: ::speed_t = 30; -pub const B4000000: ::speed_t = 31; +pub const B1000000: crate::speed_t = 24; +pub const B1152000: crate::speed_t = 25; +pub const B1500000: crate::speed_t = 26; +pub const B2000000: crate::speed_t = 27; +pub const B2500000: crate::speed_t = 28; +pub const B3000000: crate::speed_t = 29; +pub const B3500000: crate::speed_t = 30; +pub const B4000000: crate::speed_t = 31; // sys/systeminfo.h -pub const SI_ADDRESS_WIDTH: ::c_int = 520; +pub const SI_ADDRESS_WIDTH: c_int = 520; extern "C" { - pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; + pub fn eventfd(init: c_uint, flags: c_int) -> c_int; pub fn epoll_pwait( - epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - sigmask: *const ::sigset_t, - ) -> ::c_int; - pub fn epoll_create(size: ::c_int) -> ::c_int; - pub fn epoll_create1(flags: ::c_int) -> ::c_int; + epfd: c_int, + events: *mut crate::epoll_event, + maxevents: c_int, + timeout: c_int, + sigmask: *const crate::sigset_t, + ) -> c_int; + pub fn epoll_create(size: c_int) -> c_int; + pub fn epoll_create1(flags: c_int) -> c_int; pub fn epoll_wait( - epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - ) -> ::c_int; - pub fn epoll_ctl(epfd: ::c_int, op: ::c_int, fd: ::c_int, event: *mut ::epoll_event) - -> ::c_int; + epfd: c_int, + events: *mut crate::epoll_event, + maxevents: c_int, + timeout: c_int, + ) -> c_int; + pub fn epoll_ctl(epfd: c_int, op: c_int, fd: c_int, event: *mut crate::epoll_event) -> c_int; - pub fn mincore(addr: ::caddr_t, len: ::size_t, vec: *mut ::c_char) -> ::c_int; + pub fn mincore(addr: crate::caddr_t, len: size_t, vec: *mut c_char) -> c_int; pub fn pset_bind_lwp( - pset: ::psetid_t, - id: ::id_t, - pid: ::pid_t, - opset: *mut ::psetid_t, - ) -> ::c_int; - pub fn pset_getloadavg(pset: ::psetid_t, load: *mut ::c_double, num: ::c_int) -> ::c_int; - - pub fn pthread_attr_get_np(thread: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; + pset: crate::psetid_t, + id: crate::id_t, + pid: crate::pid_t, + opset: *mut crate::psetid_t, + ) -> c_int; + pub fn pset_getloadavg(pset: crate::psetid_t, load: *mut c_double, num: c_int) -> c_int; + + pub fn pthread_attr_get_np(thread: crate::pthread_t, attr: *mut crate::pthread_attr_t) + -> c_int; pub fn pthread_attr_getstackaddr( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - ) -> ::c_int; + attr: *const crate::pthread_attr_t, + stackaddr: *mut *mut c_void, + ) -> c_int; pub fn pthread_attr_setstack( - attr: *mut ::pthread_attr_t, - stackaddr: *mut ::c_void, - stacksize: ::size_t, - ) -> ::c_int; + attr: *mut crate::pthread_attr_t, + stackaddr: *mut c_void, + stacksize: size_t, + ) -> c_int; pub fn pthread_attr_setstackaddr( - attr: *mut ::pthread_attr_t, - stackaddr: *mut ::c_void, - ) -> ::c_int; + attr: *mut crate::pthread_attr_t, + stackaddr: *mut c_void, + ) -> c_int; - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advice: ::c_int) -> ::c_int; - pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) - -> ::ssize_t; - pub fn getpagesizes2(pagesize: *mut ::size_t, nelem: ::c_int) -> ::c_int; + pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advice: c_int) -> c_int; + pub fn preadv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; + pub fn pwritev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; + pub fn getpagesizes2(pagesize: *mut size_t, nelem: c_int) -> c_int; - pub fn ptsname_r(fildes: ::c_int, name: *mut ::c_char, namelen: ::size_t) -> ::c_int; + pub fn ptsname_r(fildes: c_int, name: *mut c_char, namelen: size_t) -> c_int; - pub fn syncfs(fd: ::c_int) -> ::c_int; + pub fn syncfs(fd: c_int) -> c_int; - pub fn strcasecmp_l(s1: *const ::c_char, s2: *const ::c_char, loc: ::locale_t) -> ::c_int; + pub fn strcasecmp_l(s1: *const c_char, s2: *const c_char, loc: crate::locale_t) -> c_int; pub fn strncasecmp_l( - s1: *const ::c_char, - s2: *const ::c_char, - n: ::size_t, - loc: ::locale_t, - ) -> ::c_int; + s1: *const c_char, + s2: *const c_char, + n: size_t, + loc: crate::locale_t, + ) -> c_int; } diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index c1b77ccfd0127..ae24e6e308419 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1,64 +1,68 @@ use core::mem::size_of; +use crate::{ + c_double, c_int, c_longlong, c_short, c_uchar, c_uint, c_ushort, c_void, size_t, ssize_t, +}; + pub type c_char = i8; pub type c_long = i64; pub type c_ulong = u64; -pub type caddr_t = *mut ::c_char; - -pub type clockid_t = ::c_int; -pub type blkcnt_t = ::c_long; -pub type clock_t = ::c_long; -pub type daddr_t = ::c_long; -pub type dev_t = ::c_ulong; -pub type fsblkcnt_t = ::c_ulong; -pub type fsfilcnt_t = ::c_ulong; -pub type ino_t = ::c_ulong; -pub type key_t = ::c_int; -pub type major_t = ::c_uint; -pub type minor_t = ::c_uint; -pub type mode_t = ::c_uint; -pub type nlink_t = ::c_uint; -pub type rlim_t = ::c_ulong; -pub type speed_t = ::c_uint; -pub type tcflag_t = ::c_uint; -pub type time_t = ::c_long; -pub type timer_t = ::c_int; -pub type wchar_t = ::c_int; -pub type nfds_t = ::c_ulong; -pub type projid_t = ::c_int; -pub type zoneid_t = ::c_int; -pub type psetid_t = ::c_int; -pub type processorid_t = ::c_int; -pub type chipid_t = ::c_int; -pub type ctid_t = ::id_t; - -pub type suseconds_t = ::c_long; -pub type off_t = ::c_long; -pub type useconds_t = ::c_uint; -pub type socklen_t = ::c_uint; +pub type caddr_t = *mut c_char; + +pub type clockid_t = c_int; +pub type blkcnt_t = c_long; +pub type clock_t = c_long; +pub type daddr_t = c_long; +pub type dev_t = c_ulong; +pub type fsblkcnt_t = c_ulong; +pub type fsfilcnt_t = c_ulong; +pub type ino_t = c_ulong; +pub type key_t = c_int; +pub type major_t = c_uint; +pub type minor_t = c_uint; +pub type mode_t = c_uint; +pub type nlink_t = c_uint; +pub type rlim_t = c_ulong; +pub type speed_t = c_uint; +pub type tcflag_t = c_uint; +pub type time_t = c_long; +pub type timer_t = c_int; +pub type wchar_t = c_int; +pub type nfds_t = c_ulong; +pub type projid_t = c_int; +pub type zoneid_t = c_int; +pub type psetid_t = c_int; +pub type processorid_t = c_int; +pub type chipid_t = c_int; +pub type ctid_t = crate::id_t; + +pub type suseconds_t = c_long; +pub type off_t = c_long; +pub type useconds_t = c_uint; +pub type socklen_t = c_uint; pub type sa_family_t = u16; -pub type pthread_t = ::c_uint; -pub type pthread_key_t = ::c_uint; -pub type thread_t = ::c_uint; -pub type blksize_t = ::c_int; -pub type nl_item = ::c_int; -pub type mqd_t = *mut ::c_void; -pub type id_t = ::c_int; -pub type idtype_t = ::c_uint; -pub type shmatt_t = ::c_ulong; - -pub type lgrp_id_t = ::id_t; -pub type lgrp_mem_size_t = ::c_longlong; -pub type lgrp_cookie_t = ::uintptr_t; -pub type lgrp_content_t = ::c_uint; -pub type lgrp_lat_between_t = ::c_uint; -pub type lgrp_mem_size_flag_t = ::c_uint; -pub type lgrp_view_t = ::c_uint; +pub type pthread_t = c_uint; +pub type pthread_key_t = c_uint; +pub type thread_t = c_uint; +pub type blksize_t = c_int; +pub type nl_item = c_int; +pub type mqd_t = *mut c_void; +pub type id_t = c_int; +pub type idtype_t = c_uint; +pub type shmatt_t = c_ulong; + +pub type lgrp_id_t = crate::id_t; +pub type lgrp_mem_size_t = c_longlong; +pub type lgrp_cookie_t = crate::uintptr_t; +pub type lgrp_content_t = c_uint; +pub type lgrp_lat_between_t = c_uint; +pub type lgrp_mem_size_flag_t = c_uint; +pub type lgrp_view_t = c_uint; #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { +impl Copy for timezone {} +impl Clone for timezone { fn clone(&self) -> timezone { *self } @@ -66,8 +70,8 @@ impl ::Clone for timezone { #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum ucred_t {} -impl ::Copy for ucred_t {} -impl ::Clone for ucred_t { +impl Copy for ucred_t {} +impl Clone for ucred_t { fn clone(&self) -> ucred_t { *self } @@ -75,7 +79,7 @@ impl ::Clone for ucred_t { s! { pub struct in_addr { - pub s_addr: ::in_addr_t, + pub s_addr: crate::in_addr_t, } pub struct ip_mreq { @@ -90,104 +94,104 @@ s! { } pub struct ipc_perm { - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub seq: ::c_uint, - pub key: ::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub seq: c_uint, + pub key: crate::key_t, } pub struct sockaddr { pub sa_family: sa_family_t, - pub sa_data: [::c_char; 14], + pub sa_data: [c_char; 14], } pub struct sockaddr_in { pub sin_family: sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [::c_char; 8], + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, + pub sin_zero: [c_char; 8], } pub struct sockaddr_in6 { pub sin6_family: sa_family_t, - pub sin6_port: ::in_port_t, + pub sin6_port: crate::in_port_t, pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, + pub sin6_addr: crate::in6_addr, pub sin6_scope_id: u32, pub __sin6_src_id: u32, } pub struct in_pktinfo { - pub ipi_ifindex: ::c_uint, - pub ipi_spec_dst: ::in_addr, - pub ipi_addr: ::in_addr, + pub ipi_ifindex: c_uint, + pub ipi_spec_dst: crate::in_addr, + pub ipi_addr: crate::in_addr, } pub struct in6_pktinfo { - pub ipi6_addr: ::in6_addr, - pub ipi6_ifindex: ::c_uint, + pub ipi6_addr: crate::in6_addr, + pub ipi6_ifindex: c_uint, } pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_age: *mut ::c_char, - pub pw_comment: *mut ::c_char, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, + pub pw_name: *mut c_char, + pub pw_passwd: *mut c_char, + pub pw_uid: crate::uid_t, + pub pw_gid: crate::gid_t, + pub pw_age: *mut c_char, + pub pw_comment: *mut c_char, + pub pw_gecos: *mut c_char, + pub pw_dir: *mut c_char, + pub pw_shell: *mut c_char, } pub struct ifaddrs { pub ifa_next: *mut ifaddrs, - pub ifa_name: *mut ::c_char, + pub ifa_name: *mut c_char, pub ifa_flags: u64, - pub ifa_addr: *mut ::sockaddr, - pub ifa_netmask: *mut ::sockaddr, - pub ifa_dstaddr: *mut ::sockaddr, - pub ifa_data: *mut ::c_void, + pub ifa_addr: *mut crate::sockaddr, + pub ifa_netmask: *mut crate::sockaddr, + pub ifa_dstaddr: *mut crate::sockaddr, + pub ifa_data: *mut c_void, } pub struct itimerspec { - pub it_interval: ::timespec, - pub it_value: ::timespec, + pub it_interval: crate::timespec, + pub it_value: crate::timespec, } pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, } pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - pub msg_flags: ::c_int, + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: c_int, + pub msg_control: *mut c_void, + pub msg_controllen: crate::socklen_t, + pub msg_flags: c_int, } pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub cmsg_len: crate::socklen_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } pub struct pthread_attr_t { - __pthread_attrp: *mut ::c_void, + __pthread_attrp: *mut c_void, } pub struct pthread_mutex_t { @@ -201,7 +205,7 @@ s! { } pub struct pthread_mutexattr_t { - __pthread_mutexattrp: *mut ::c_void, + __pthread_mutexattrp: *mut c_void, } pub struct pthread_cond_t { @@ -212,63 +216,63 @@ s! { } pub struct pthread_condattr_t { - __pthread_condattrp: *mut ::c_void, + __pthread_condattrp: *mut c_void, } pub struct pthread_rwlock_t { __pthread_rwlock_readers: i32, __pthread_rwlock_type: u16, __pthread_rwlock_magic: u16, - __pthread_rwlock_mutex: ::pthread_mutex_t, - __pthread_rwlock_readercv: ::pthread_cond_t, - __pthread_rwlock_writercv: ::pthread_cond_t, + __pthread_rwlock_mutex: crate::pthread_mutex_t, + __pthread_rwlock_readercv: crate::pthread_cond_t, + __pthread_rwlock_writercv: crate::pthread_cond_t, } pub struct pthread_rwlockattr_t { - __pthread_rwlockattrp: *mut ::c_void, + __pthread_rwlockattrp: *mut c_void, } pub struct dirent { - pub d_ino: ::ino_t, - pub d_off: ::off_t, + pub d_ino: crate::ino_t, + pub d_off: off_t, pub d_reclen: u16, - pub d_name: [::c_char; 3], + pub d_name: [c_char; 3], } pub struct glob_t { - pub gl_pathc: ::size_t, - pub gl_pathv: *mut *mut ::c_char, - pub gl_offs: ::size_t, - __unused1: *mut ::c_void, - __unused2: ::c_int, + pub gl_pathc: size_t, + pub gl_pathv: *mut *mut c_char, + pub gl_offs: size_t, + __unused1: *mut c_void, + __unused2: c_int, #[cfg(target_os = "illumos")] - __unused3: ::c_int, + __unused3: c_int, #[cfg(target_os = "illumos")] - __unused4: ::c_int, + __unused4: c_int, #[cfg(target_os = "illumos")] - __unused5: *mut ::c_void, + __unused5: *mut c_void, #[cfg(target_os = "illumos")] - __unused6: *mut ::c_void, + __unused6: *mut c_void, #[cfg(target_os = "illumos")] - __unused7: *mut ::c_void, + __unused7: *mut c_void, #[cfg(target_os = "illumos")] - __unused8: *mut ::c_void, + __unused8: *mut c_void, #[cfg(target_os = "illumos")] - __unused9: *mut ::c_void, + __unused9: *mut c_void, #[cfg(target_os = "illumos")] - __unused10: *mut ::c_void, + __unused10: *mut c_void, } pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, + pub ai_flags: c_int, + pub ai_family: c_int, + pub ai_socktype: c_int, + pub ai_protocol: c_int, #[cfg(target_arch = "sparc64")] - __sparcv9_pad: ::c_int, - pub ai_addrlen: ::socklen_t, - pub ai_canonname: *mut ::c_char, - pub ai_addr: *mut ::sockaddr, + __sparcv9_pad: c_int, + pub ai_addrlen: crate::socklen_t, + pub ai_canonname: *mut c_char, + pub ai_addr: *mut crate::sockaddr, pub ai_next: *mut addrinfo, } @@ -277,105 +281,105 @@ s! { } pub struct sigaction { - pub sa_flags: ::c_int, - pub sa_sigaction: ::sighandler_t, + pub sa_flags: c_int, + pub sa_sigaction: crate::sighandler_t, pub sa_mask: sigset_t, } pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, + pub ss_sp: *mut c_void, + pub ss_size: size_t, + pub ss_flags: c_int, } 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_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::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 struct sendfilevec_t { - pub sfv_fd: ::c_int, - pub sfv_flag: ::c_uint, - pub sfv_off: ::off_t, - pub sfv_len: ::size_t, + pub sfv_fd: c_int, + pub sfv_flag: c_uint, + pub sfv_off: off_t, + pub sfv_len: size_t, } pub struct sched_param { - pub sched_priority: ::c_int, - sched_pad: [::c_int; 8], + pub sched_priority: c_int, + sched_pad: [c_int; 8], } pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, + pub dli_fname: *const c_char, + pub dli_fbase: *mut c_void, + pub dli_sname: *const c_char, + pub dli_saddr: *mut c_void, } 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_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_size: ::off_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_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - __unused: [::c_char; 16], + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + __unused: [c_char; 16], } pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_cc: [::cc_t; ::NCCS], + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_cc: [crate::cc_t; crate::NCCS], } pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, + pub decimal_point: *mut c_char, + pub thousands_sep: *mut c_char, + pub grouping: *mut c_char, + pub int_curr_symbol: *mut c_char, + pub currency_symbol: *mut c_char, + pub mon_decimal_point: *mut c_char, + pub mon_thousands_sep: *mut c_char, + pub mon_grouping: *mut c_char, + pub positive_sign: *mut c_char, + pub negative_sign: *mut c_char, + pub int_frac_digits: c_char, + pub frac_digits: c_char, + pub p_cs_precedes: c_char, + pub p_sep_by_space: c_char, + pub n_cs_precedes: c_char, + pub n_sep_by_space: c_char, + pub p_sign_posn: c_char, + pub n_sign_posn: c_char, + pub int_p_cs_precedes: c_char, + pub int_p_sep_by_space: c_char, + pub int_n_cs_precedes: c_char, + pub int_n_sep_by_space: c_char, + pub int_p_sign_posn: c_char, + pub int_n_sign_posn: c_char, } pub struct sem_t { @@ -387,59 +391,59 @@ s! { } pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_sysid: ::c_int, - pub l_pid: ::pid_t, - pub l_pad: [::c_long; 4], + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_sysid: c_int, + pub l_pid: crate::pid_t, + pub l_pad: [c_long; 4], } pub struct if_nameindex { - pub if_index: ::c_uint, - pub if_name: *mut ::c_char, + pub if_index: c_uint, + pub if_name: *mut c_char, } pub struct mq_attr { - pub mq_flags: ::c_long, - pub mq_maxmsg: ::c_long, - pub mq_msgsize: ::c_long, - pub mq_curmsgs: ::c_long, - _pad: [::c_int; 12], + pub mq_flags: c_long, + pub mq_maxmsg: c_long, + pub mq_msgsize: c_long, + pub mq_curmsgs: c_long, + _pad: [c_int; 12], } pub struct port_event { - pub portev_events: ::c_int, - pub portev_source: ::c_ushort, - pub portev_pad: ::c_ushort, - pub portev_object: ::uintptr_t, - pub portev_user: *mut ::c_void, + pub portev_events: c_int, + pub portev_source: c_ushort, + pub portev_pad: c_ushort, + pub portev_object: crate::uintptr_t, + pub portev_user: *mut c_void, } pub struct port_notify { - pub portnfy_port: ::c_int, - pub portnfy_user: *mut ::c_void, + pub portnfy_port: c_int, + pub portnfy_user: *mut c_void, } pub struct aio_result_t { - pub aio_return: ::ssize_t, - pub aio_errno: ::c_int, + pub aio_return: ssize_t, + pub aio_errno: c_int, } pub struct exit_status { - e_termination: ::c_short, - e_exit: ::c_short, + e_termination: c_short, + e_exit: c_short, } pub struct utmp { - pub ut_user: [::c_char; 8], - pub ut_id: [::c_char; 4], - pub ut_line: [::c_char; 12], - pub ut_pid: ::c_short, - pub ut_type: ::c_short, + pub ut_user: [c_char; 8], + pub ut_id: [c_char; 4], + pub ut_line: [c_char; 12], + pub ut_pid: c_short, + pub ut_type: c_short, pub ut_exit: exit_status, - pub ut_time: ::time_t, + pub ut_time: crate::time_t, } pub struct timex { @@ -463,39 +467,39 @@ s! { } pub struct ntptimeval { - pub time: ::timeval, + pub time: crate::timeval, pub maxerror: i32, pub esterror: i32, } pub struct mmapobj_result_t { - pub mr_addr: ::caddr_t, - pub mr_msize: ::size_t, - pub mr_fsize: ::size_t, - pub mr_offset: ::size_t, - pub mr_prot: ::c_uint, - pub mr_flags: ::c_uint, + pub mr_addr: crate::caddr_t, + pub mr_msize: size_t, + pub mr_fsize: size_t, + pub mr_offset: size_t, + pub mr_prot: c_uint, + pub mr_flags: c_uint, } pub struct lgrp_affinity_args_t { - pub idtype: ::idtype_t, - pub id: ::id_t, - pub lgrp: ::lgrp_id_t, - pub aff: ::lgrp_affinity_t, + pub idtype: crate::idtype_t, + pub id: crate::id_t, + pub lgrp: crate::lgrp_id_t, + pub aff: crate::lgrp_affinity_t, } pub struct processor_info_t { - pub pi_state: ::c_int, - pub pi_processor_type: [::c_char; PI_TYPELEN as usize], - pub pi_fputypes: [::c_char; PI_FPUTYPE as usize], - pub pi_clock: ::c_int, + pub pi_state: c_int, + pub pi_processor_type: [c_char; PI_TYPELEN as usize], + pub pi_fputypes: [c_char; PI_FPUTYPE as usize], + pub pi_clock: c_int, } pub struct option { - pub name: *const ::c_char, - pub has_arg: ::c_int, - pub flag: *mut ::c_int, - pub val: ::c_int, + pub name: *const c_char, + pub has_arg: c_int, + pub flag: *mut c_int, + pub val: c_int, } } @@ -506,11 +510,11 @@ s_no_extra_traits! { } pub struct utsname { - pub sysname: [::c_char; 257], - pub nodename: [::c_char; 257], - pub release: [::c_char; 257], - pub version: [::c_char; 257], - pub machine: [::c_char; 257], + pub sysname: [c_char; 257], + pub nodename: [c_char; 257], + pub release: [c_char; 257], + pub version: [c_char; 257], + pub machine: [c_char; 257], } pub struct fd_set { @@ -521,7 +525,7 @@ s_no_extra_traits! { } pub struct sockaddr_storage { - pub ss_family: ::sa_family_t, + pub ss_family: crate::sa_family_t, __ss_pad1: [u8; 6], __ss_align: i64, __ss_pad2: [u8; 240], @@ -529,32 +533,32 @@ s_no_extra_traits! { #[cfg_attr(target_pointer_width = "64", repr(align(8)))] pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, + pub si_signo: c_int, + pub si_code: c_int, + pub si_errno: c_int, #[cfg(target_pointer_width = "64")] - pub si_pad: ::c_int, + pub si_pad: c_int, - __data_pad: [::c_int; SIGINFO_DATA_SIZE], + __data_pad: [c_int; SIGINFO_DATA_SIZE], } pub struct sockaddr_dl { - pub sdl_family: ::c_ushort, - pub sdl_index: ::c_ushort, - pub sdl_type: ::c_uchar, - pub sdl_nlen: ::c_uchar, - pub sdl_alen: ::c_uchar, - pub sdl_slen: ::c_uchar, - pub sdl_data: [::c_char; 244], + pub sdl_family: c_ushort, + pub sdl_index: c_ushort, + pub sdl_type: c_uchar, + pub sdl_nlen: c_uchar, + pub sdl_alen: c_uchar, + pub sdl_slen: c_uchar, + pub sdl_data: [c_char; 244], } pub struct sigevent { - pub sigev_notify: ::c_int, - pub sigev_signo: ::c_int, - pub sigev_value: ::sigval, - pub ss_sp: *mut ::c_void, - pub sigev_notify_attributes: *const ::pthread_attr_t, - __sigev_pad2: ::c_int, + pub sigev_notify: c_int, + pub sigev_signo: c_int, + pub sigev_value: crate::sigval, + pub ss_sp: *mut c_void, + pub sigev_notify_attributes: *const crate::pthread_attr_t, + __sigev_pad2: c_int, } #[repr(align(16))] @@ -583,16 +587,16 @@ cfg_if! { } } impl Eq for sockaddr_un {} - impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_un") .field("sun_family", &self.sun_family) // FIXME: .field("sun_path", &self.sun_path) .finish() } } - impl ::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { self.sun_family.hash(state); self.sun_path.hash(state); } @@ -627,8 +631,8 @@ cfg_if! { } } impl Eq for utsname {} - impl ::fmt::Debug for utsname { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utsname { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utsname") // FIXME: .field("sysname", &self.sysname) // FIXME: .field("nodename", &self.nodename) @@ -638,8 +642,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for utsname { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utsname { + fn hash(&self, state: &mut H) { self.sysname.hash(state); self.nodename.hash(state); self.release.hash(state); @@ -657,15 +661,15 @@ cfg_if! { } } impl Eq for fd_set {} - impl ::fmt::Debug for fd_set { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for fd_set { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("fd_set") // FIXME: .field("fds_bits", &self.fds_bits) .finish() } } - impl ::hash::Hash for fd_set { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for fd_set { + fn hash(&self, state: &mut H) { self.fds_bits.hash(state); } } @@ -683,8 +687,8 @@ cfg_if! { } } impl Eq for sockaddr_storage {} - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_family", &self.ss_family) .field("__ss_pad1", &self.__ss_pad1) @@ -693,8 +697,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_family.hash(state); self.__ss_pad1.hash(state); self.__ss_align.hash(state); @@ -711,23 +715,23 @@ cfg_if! { /// entire data pad area is "valid" for otherwise unrecognized signal numbers. fn data_field_count(&self) -> usize { match self.si_signo { - ::SIGSEGV | ::SIGBUS | ::SIGILL | ::SIGTRAP | ::SIGFPE => { - size_of::() / size_of::<::c_int>() + SIGSEGV | SIGBUS | SIGILL | SIGTRAP | SIGFPE => { + size_of::() / size_of::() } - ::SIGCLD => size_of::() / size_of::<::c_int>(), - ::SIGHUP - | ::SIGINT - | ::SIGQUIT - | ::SIGABRT - | ::SIGSYS - | ::SIGPIPE - | ::SIGALRM - | ::SIGTERM - | ::SIGUSR1 - | ::SIGUSR2 - | ::SIGPWR - | ::SIGWINCH - | ::SIGURG => size_of::() / size_of::<::c_int>(), + SIGCLD => size_of::() / size_of::(), + SIGHUP + | SIGINT + | SIGQUIT + | SIGABRT + | SIGSYS + | SIGPIPE + | SIGALRM + | SIGTERM + | crate::SIGUSR1 + | crate::SIGUSR2 + | SIGPWR + | SIGWINCH + | SIGURG => size_of::() / size_of::(), _ => SIGINFO_DATA_SIZE, } } @@ -752,8 +756,8 @@ cfg_if! { } } impl Eq for siginfo_t {} - impl ::fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for siginfo_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("siginfo_t") .field("si_signo", &self.si_signo) .field("si_code", &self.si_code) @@ -762,8 +766,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for siginfo_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for siginfo_t { + fn hash(&self, state: &mut H) { self.si_signo.hash(state); self.si_code.hash(state); self.si_errno.hash(state); @@ -792,8 +796,8 @@ cfg_if! { } } impl Eq for sockaddr_dl {} - impl ::fmt::Debug for sockaddr_dl { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_dl { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_dl") .field("sdl_family", &self.sdl_family) .field("sdl_index", &self.sdl_index) @@ -805,8 +809,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sockaddr_dl { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sockaddr_dl { + fn hash(&self, state: &mut H) { self.sdl_family.hash(state); self.sdl_index.hash(state); self.sdl_type.hash(state); @@ -827,8 +831,8 @@ cfg_if! { } } impl Eq for sigevent {} - impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sigevent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sigevent") .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) @@ -838,8 +842,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); self.sigev_signo.hash(state); self.sigev_value.hash(state); @@ -857,8 +861,8 @@ cfg_if! { } } impl Eq for pad128_t {} - impl ::fmt::Debug for pad128_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for pad128_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { unsafe { f.debug_struct("pad128_t") // FIXME: .field("_q", &{self._q}) @@ -867,8 +871,8 @@ cfg_if! { } } } - impl ::hash::Hash for pad128_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for pad128_t { + fn hash(&self, state: &mut H) { unsafe { // FIXME: state.write_i64(self._q as i64); self._l.hash(state); @@ -884,8 +888,8 @@ cfg_if! { } } impl Eq for upad128_t {} - impl ::fmt::Debug for upad128_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for upad128_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { unsafe { f.debug_struct("upad128_t") // FIXME: .field("_q", &{self._q}) @@ -894,8 +898,8 @@ cfg_if! { } } } - impl ::hash::Hash for upad128_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for upad128_t { + fn hash(&self, state: &mut H) { unsafe { // FIXME: state.write_i64(self._q as i64); self._l.hash(state); @@ -915,12 +919,12 @@ cfg_if! { #[repr(C)] struct siginfo_fault { - addr: *mut ::c_void, - trapno: ::c_int, - pc: *mut ::caddr_t, + addr: *mut c_void, + trapno: c_int, + pc: *mut crate::caddr_t, } -impl ::Copy for siginfo_fault {} -impl ::Clone for siginfo_fault { +impl Copy for siginfo_fault {} +impl Clone for siginfo_fault { fn clone(&self) -> Self { *self } @@ -928,12 +932,12 @@ impl ::Clone for siginfo_fault { #[repr(C)] struct siginfo_cldval { - utime: ::clock_t, - status: ::c_int, - stime: ::clock_t, + utime: crate::clock_t, + status: c_int, + stime: crate::clock_t, } -impl ::Copy for siginfo_cldval {} -impl ::Clone for siginfo_cldval { +impl Copy for siginfo_cldval {} +impl Clone for siginfo_cldval { fn clone(&self) -> Self { *self } @@ -941,13 +945,13 @@ impl ::Clone for siginfo_cldval { #[repr(C)] struct siginfo_killval { - uid: ::uid_t, - value: ::sigval, + uid: crate::uid_t, + value: crate::sigval, // Pad out to match the SIGCLD value size - _pad: *mut ::c_void, + _pad: *mut c_void, } -impl ::Copy for siginfo_killval {} -impl ::Clone for siginfo_killval { +impl Copy for siginfo_killval {} +impl Clone for siginfo_killval { fn clone(&self) -> Self { *self } @@ -955,13 +959,13 @@ impl ::Clone for siginfo_killval { #[repr(C)] struct siginfo_sigcld { - pid: ::pid_t, + pid: crate::pid_t, val: siginfo_cldval, - ctid: ::ctid_t, - zoneid: ::zoneid_t, + ctid: crate::ctid_t, + zoneid: crate::zoneid_t, } -impl ::Copy for siginfo_sigcld {} -impl ::Clone for siginfo_sigcld { +impl Copy for siginfo_sigcld {} +impl Clone for siginfo_sigcld { fn clone(&self) -> Self { *self } @@ -969,203 +973,203 @@ impl ::Clone for siginfo_sigcld { #[repr(C)] struct siginfo_kill { - pid: ::pid_t, + pid: crate::pid_t, val: siginfo_killval, - ctid: ::ctid_t, - zoneid: ::zoneid_t, + ctid: crate::ctid_t, + zoneid: crate::zoneid_t, } -impl ::Copy for siginfo_kill {} -impl ::Clone for siginfo_kill { +impl Copy for siginfo_kill {} +impl Clone for siginfo_kill { fn clone(&self) -> Self { *self } } impl siginfo_t { - unsafe fn sidata(&self) -> T { - *((&self.__data_pad) as *const ::c_int as *const T) + unsafe fn sidata(&self) -> T { + *((&self.__data_pad) as *const c_int as *const T) } - pub unsafe fn si_addr(&self) -> *mut ::c_void { + pub unsafe fn si_addr(&self) -> *mut c_void { let sifault: siginfo_fault = self.sidata(); sifault.addr } - pub unsafe fn si_uid(&self) -> ::uid_t { + pub unsafe fn si_uid(&self) -> crate::uid_t { let kill: siginfo_kill = self.sidata(); kill.val.uid } - pub unsafe fn si_value(&self) -> ::sigval { + pub unsafe fn si_value(&self) -> crate::sigval { let kill: siginfo_kill = self.sidata(); kill.val.value } - pub unsafe fn si_pid(&self) -> ::pid_t { + pub unsafe fn si_pid(&self) -> crate::pid_t { let sigcld: siginfo_sigcld = self.sidata(); sigcld.pid } - pub unsafe fn si_status(&self) -> ::c_int { + pub unsafe fn si_status(&self) -> c_int { let sigcld: siginfo_sigcld = self.sidata(); sigcld.val.status } - pub unsafe fn si_utime(&self) -> ::c_long { + pub unsafe fn si_utime(&self) -> c_long { let sigcld: siginfo_sigcld = self.sidata(); sigcld.val.utime } - pub unsafe fn si_stime(&self) -> ::c_long { + pub unsafe fn si_stime(&self) -> c_long { let sigcld: siginfo_sigcld = self.sidata(); sigcld.val.stime } } -pub const LC_CTYPE: ::c_int = 0; -pub const LC_NUMERIC: ::c_int = 1; -pub const LC_TIME: ::c_int = 2; -pub const LC_COLLATE: ::c_int = 3; -pub const LC_MONETARY: ::c_int = 4; -pub const LC_MESSAGES: ::c_int = 5; -pub const LC_ALL: ::c_int = 6; -pub const LC_CTYPE_MASK: ::c_int = 1 << LC_CTYPE; -pub const LC_NUMERIC_MASK: ::c_int = 1 << LC_NUMERIC; -pub const LC_TIME_MASK: ::c_int = 1 << LC_TIME; -pub const LC_COLLATE_MASK: ::c_int = 1 << LC_COLLATE; -pub const LC_MONETARY_MASK: ::c_int = 1 << LC_MONETARY; -pub const LC_MESSAGES_MASK: ::c_int = 1 << LC_MESSAGES; -pub const LC_ALL_MASK: ::c_int = LC_CTYPE_MASK +pub const LC_CTYPE: c_int = 0; +pub const LC_NUMERIC: c_int = 1; +pub const LC_TIME: c_int = 2; +pub const LC_COLLATE: c_int = 3; +pub const LC_MONETARY: c_int = 4; +pub const LC_MESSAGES: c_int = 5; +pub const LC_ALL: c_int = 6; +pub const LC_CTYPE_MASK: c_int = 1 << LC_CTYPE; +pub const LC_NUMERIC_MASK: c_int = 1 << LC_NUMERIC; +pub const LC_TIME_MASK: c_int = 1 << LC_TIME; +pub const LC_COLLATE_MASK: c_int = 1 << LC_COLLATE; +pub const LC_MONETARY_MASK: c_int = 1 << LC_MONETARY; +pub const LC_MESSAGES_MASK: c_int = 1 << LC_MESSAGES; +pub const LC_ALL_MASK: c_int = LC_CTYPE_MASK | LC_NUMERIC_MASK | LC_TIME_MASK | LC_COLLATE_MASK | LC_MONETARY_MASK | LC_MESSAGES_MASK; -pub const DAY_1: ::nl_item = 1; -pub const DAY_2: ::nl_item = 2; -pub const DAY_3: ::nl_item = 3; -pub const DAY_4: ::nl_item = 4; -pub const DAY_5: ::nl_item = 5; -pub const DAY_6: ::nl_item = 6; -pub const DAY_7: ::nl_item = 7; - -pub const ABDAY_1: ::nl_item = 8; -pub const ABDAY_2: ::nl_item = 9; -pub const ABDAY_3: ::nl_item = 10; -pub const ABDAY_4: ::nl_item = 11; -pub const ABDAY_5: ::nl_item = 12; -pub const ABDAY_6: ::nl_item = 13; -pub const ABDAY_7: ::nl_item = 14; - -pub const MON_1: ::nl_item = 15; -pub const MON_2: ::nl_item = 16; -pub const MON_3: ::nl_item = 17; -pub const MON_4: ::nl_item = 18; -pub const MON_5: ::nl_item = 19; -pub const MON_6: ::nl_item = 20; -pub const MON_7: ::nl_item = 21; -pub const MON_8: ::nl_item = 22; -pub const MON_9: ::nl_item = 23; -pub const MON_10: ::nl_item = 24; -pub const MON_11: ::nl_item = 25; -pub const MON_12: ::nl_item = 26; - -pub const ABMON_1: ::nl_item = 27; -pub const ABMON_2: ::nl_item = 28; -pub const ABMON_3: ::nl_item = 29; -pub const ABMON_4: ::nl_item = 30; -pub const ABMON_5: ::nl_item = 31; -pub const ABMON_6: ::nl_item = 32; -pub const ABMON_7: ::nl_item = 33; -pub const ABMON_8: ::nl_item = 34; -pub const ABMON_9: ::nl_item = 35; -pub const ABMON_10: ::nl_item = 36; -pub const ABMON_11: ::nl_item = 37; -pub const ABMON_12: ::nl_item = 38; - -pub const RADIXCHAR: ::nl_item = 39; -pub const THOUSEP: ::nl_item = 40; -pub const YESSTR: ::nl_item = 41; -pub const NOSTR: ::nl_item = 42; -pub const CRNCYSTR: ::nl_item = 43; - -pub const D_T_FMT: ::nl_item = 44; -pub const D_FMT: ::nl_item = 45; -pub const T_FMT: ::nl_item = 46; -pub const AM_STR: ::nl_item = 47; -pub const PM_STR: ::nl_item = 48; - -pub const CODESET: ::nl_item = 49; -pub const T_FMT_AMPM: ::nl_item = 50; -pub const ERA: ::nl_item = 51; -pub const ERA_D_FMT: ::nl_item = 52; -pub const ERA_D_T_FMT: ::nl_item = 53; -pub const ERA_T_FMT: ::nl_item = 54; -pub const ALT_DIGITS: ::nl_item = 55; -pub const YESEXPR: ::nl_item = 56; -pub const NOEXPR: ::nl_item = 57; -pub const _DATE_FMT: ::nl_item = 58; -pub const MAXSTRMSG: ::nl_item = 58; - -pub const PATH_MAX: ::c_int = 1024; - -pub const SA_ONSTACK: ::c_int = 0x00000001; -pub const SA_RESETHAND: ::c_int = 0x00000002; -pub const SA_RESTART: ::c_int = 0x00000004; -pub const SA_SIGINFO: ::c_int = 0x00000008; -pub const SA_NODEFER: ::c_int = 0x00000010; -pub const SA_NOCLDWAIT: ::c_int = 0x00010000; -pub const SA_NOCLDSTOP: ::c_int = 0x00020000; - -pub const SS_ONSTACK: ::c_int = 1; -pub const SS_DISABLE: ::c_int = 2; - -pub const FIOCLEX: ::c_int = 0x20006601; -pub const FIONCLEX: ::c_int = 0x20006602; -pub const FIONREAD: ::c_int = 0x4004667f; -pub const FIONBIO: ::c_int = 0x8004667e; -pub const FIOASYNC: ::c_int = 0x8004667d; -pub const FIOSETOWN: ::c_int = 0x8004667c; -pub const FIOGETOWN: ::c_int = 0x4004667b; - -pub const SIGCHLD: ::c_int = 18; -pub const SIGCLD: ::c_int = ::SIGCHLD; -pub const SIGBUS: ::c_int = 10; -pub const SIG_BLOCK: ::c_int = 1; -pub const SIG_UNBLOCK: ::c_int = 2; -pub const SIG_SETMASK: ::c_int = 3; - -pub const AIO_CANCELED: ::c_int = 0; -pub const AIO_ALLDONE: ::c_int = 1; -pub const AIO_NOTCANCELED: ::c_int = 2; -pub const LIO_NOP: ::c_int = 0; -pub const LIO_READ: ::c_int = 1; -pub const LIO_WRITE: ::c_int = 2; -pub const LIO_NOWAIT: ::c_int = 0; -pub const LIO_WAIT: ::c_int = 1; - -pub const SIGEV_NONE: ::c_int = 1; -pub const SIGEV_SIGNAL: ::c_int = 2; -pub const SIGEV_THREAD: ::c_int = 3; -pub const SIGEV_PORT: ::c_int = 4; - -pub const CLD_EXITED: ::c_int = 1; -pub const CLD_KILLED: ::c_int = 2; -pub const CLD_DUMPED: ::c_int = 3; -pub const CLD_TRAPPED: ::c_int = 4; -pub const CLD_STOPPED: ::c_int = 5; -pub const CLD_CONTINUED: ::c_int = 6; - -pub const IP_RECVDSTADDR: ::c_int = 0x7; -pub const IP_PKTINFO: ::c_int = 0x1a; -pub const IP_DONTFRAG: ::c_int = 0x1b; -pub const IP_SEC_OPT: ::c_int = 0x22; - -pub const IPV6_UNICAST_HOPS: ::c_int = 0x5; -pub const IPV6_MULTICAST_IF: ::c_int = 0x6; -pub const IPV6_MULTICAST_HOPS: ::c_int = 0x7; -pub const IPV6_MULTICAST_LOOP: ::c_int = 0x8; -pub const IPV6_PKTINFO: ::c_int = 0xb; -pub const IPV6_RECVPKTINFO: ::c_int = 0x12; -pub const IPV6_RECVTCLASS: ::c_int = 0x19; -pub const IPV6_DONTFRAG: ::c_int = 0x21; -pub const IPV6_SEC_OPT: ::c_int = 0x22; -pub const IPV6_TCLASS: ::c_int = 0x26; -pub const IPV6_V6ONLY: ::c_int = 0x27; +pub const DAY_1: crate::nl_item = 1; +pub const DAY_2: crate::nl_item = 2; +pub const DAY_3: crate::nl_item = 3; +pub const DAY_4: crate::nl_item = 4; +pub const DAY_5: crate::nl_item = 5; +pub const DAY_6: crate::nl_item = 6; +pub const DAY_7: crate::nl_item = 7; + +pub const ABDAY_1: crate::nl_item = 8; +pub const ABDAY_2: crate::nl_item = 9; +pub const ABDAY_3: crate::nl_item = 10; +pub const ABDAY_4: crate::nl_item = 11; +pub const ABDAY_5: crate::nl_item = 12; +pub const ABDAY_6: crate::nl_item = 13; +pub const ABDAY_7: crate::nl_item = 14; + +pub const MON_1: crate::nl_item = 15; +pub const MON_2: crate::nl_item = 16; +pub const MON_3: crate::nl_item = 17; +pub const MON_4: crate::nl_item = 18; +pub const MON_5: crate::nl_item = 19; +pub const MON_6: crate::nl_item = 20; +pub const MON_7: crate::nl_item = 21; +pub const MON_8: crate::nl_item = 22; +pub const MON_9: crate::nl_item = 23; +pub const MON_10: crate::nl_item = 24; +pub const MON_11: crate::nl_item = 25; +pub const MON_12: crate::nl_item = 26; + +pub const ABMON_1: crate::nl_item = 27; +pub const ABMON_2: crate::nl_item = 28; +pub const ABMON_3: crate::nl_item = 29; +pub const ABMON_4: crate::nl_item = 30; +pub const ABMON_5: crate::nl_item = 31; +pub const ABMON_6: crate::nl_item = 32; +pub const ABMON_7: crate::nl_item = 33; +pub const ABMON_8: crate::nl_item = 34; +pub const ABMON_9: crate::nl_item = 35; +pub const ABMON_10: crate::nl_item = 36; +pub const ABMON_11: crate::nl_item = 37; +pub const ABMON_12: crate::nl_item = 38; + +pub const RADIXCHAR: crate::nl_item = 39; +pub const THOUSEP: crate::nl_item = 40; +pub const YESSTR: crate::nl_item = 41; +pub const NOSTR: crate::nl_item = 42; +pub const CRNCYSTR: crate::nl_item = 43; + +pub const D_T_FMT: crate::nl_item = 44; +pub const D_FMT: crate::nl_item = 45; +pub const T_FMT: crate::nl_item = 46; +pub const AM_STR: crate::nl_item = 47; +pub const PM_STR: crate::nl_item = 48; + +pub const CODESET: crate::nl_item = 49; +pub const T_FMT_AMPM: crate::nl_item = 50; +pub const ERA: crate::nl_item = 51; +pub const ERA_D_FMT: crate::nl_item = 52; +pub const ERA_D_T_FMT: crate::nl_item = 53; +pub const ERA_T_FMT: crate::nl_item = 54; +pub const ALT_DIGITS: crate::nl_item = 55; +pub const YESEXPR: crate::nl_item = 56; +pub const NOEXPR: crate::nl_item = 57; +pub const _DATE_FMT: crate::nl_item = 58; +pub const MAXSTRMSG: crate::nl_item = 58; + +pub const PATH_MAX: c_int = 1024; + +pub const SA_ONSTACK: c_int = 0x00000001; +pub const SA_RESETHAND: c_int = 0x00000002; +pub const SA_RESTART: c_int = 0x00000004; +pub const SA_SIGINFO: c_int = 0x00000008; +pub const SA_NODEFER: c_int = 0x00000010; +pub const SA_NOCLDWAIT: c_int = 0x00010000; +pub const SA_NOCLDSTOP: c_int = 0x00020000; + +pub const SS_ONSTACK: c_int = 1; +pub const SS_DISABLE: c_int = 2; + +pub const FIOCLEX: c_int = 0x20006601; +pub const FIONCLEX: c_int = 0x20006602; +pub const FIONREAD: c_int = 0x4004667f; +pub const FIONBIO: c_int = 0x8004667e; +pub const FIOASYNC: c_int = 0x8004667d; +pub const FIOSETOWN: c_int = 0x8004667c; +pub const FIOGETOWN: c_int = 0x4004667b; + +pub const SIGCHLD: c_int = 18; +pub const SIGCLD: c_int = SIGCHLD; +pub const SIGBUS: c_int = 10; +pub const SIG_BLOCK: c_int = 1; +pub const SIG_UNBLOCK: c_int = 2; +pub const SIG_SETMASK: c_int = 3; + +pub const AIO_CANCELED: c_int = 0; +pub const AIO_ALLDONE: c_int = 1; +pub const AIO_NOTCANCELED: c_int = 2; +pub const LIO_NOP: c_int = 0; +pub const LIO_READ: c_int = 1; +pub const LIO_WRITE: c_int = 2; +pub const LIO_NOWAIT: c_int = 0; +pub const LIO_WAIT: c_int = 1; + +pub const SIGEV_NONE: c_int = 1; +pub const SIGEV_SIGNAL: c_int = 2; +pub const SIGEV_THREAD: c_int = 3; +pub const SIGEV_PORT: c_int = 4; + +pub const CLD_EXITED: c_int = 1; +pub const CLD_KILLED: c_int = 2; +pub const CLD_DUMPED: c_int = 3; +pub const CLD_TRAPPED: c_int = 4; +pub const CLD_STOPPED: c_int = 5; +pub const CLD_CONTINUED: c_int = 6; + +pub const IP_RECVDSTADDR: c_int = 0x7; +pub const IP_PKTINFO: c_int = 0x1a; +pub const IP_DONTFRAG: c_int = 0x1b; +pub const IP_SEC_OPT: c_int = 0x22; + +pub const IPV6_UNICAST_HOPS: c_int = 0x5; +pub const IPV6_MULTICAST_IF: c_int = 0x6; +pub const IPV6_MULTICAST_HOPS: c_int = 0x7; +pub const IPV6_MULTICAST_LOOP: c_int = 0x8; +pub const IPV6_PKTINFO: c_int = 0xb; +pub const IPV6_RECVPKTINFO: c_int = 0x12; +pub const IPV6_RECVTCLASS: c_int = 0x19; +pub const IPV6_DONTFRAG: c_int = 0x21; +pub const IPV6_SEC_OPT: c_int = 0x22; +pub const IPV6_TCLASS: c_int = 0x26; +pub const IPV6_V6ONLY: c_int = 0x27; cfg_if! { if #[cfg(target_pointer_width = "64")] { @@ -1175,52 +1179,52 @@ cfg_if! { } } -pub const ST_RDONLY: ::c_ulong = 1; -pub const ST_NOSUID: ::c_ulong = 2; - -pub const NI_MAXHOST: ::socklen_t = 1025; -pub const NI_MAXSERV: ::socklen_t = 32; - -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 32767; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const SEEK_DATA: ::c_int = 3; -pub const SEEK_HOLE: ::c_int = 4; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 4; -pub const _IOLBF: ::c_int = 64; -pub const BUFSIZ: ::c_uint = 1024; -pub const FOPEN_MAX: ::c_uint = 20; -pub const FILENAME_MAX: ::c_uint = 1024; -pub const L_tmpnam: ::c_uint = 25; -pub const TMP_MAX: ::c_uint = 17576; -pub const PIPE_BUF: ::c_int = 5120; - -pub const GRND_NONBLOCK: ::c_uint = 0x0001; -pub const GRND_RANDOM: ::c_uint = 0x0002; - -pub const O_RDONLY: ::c_int = 0; -pub const O_WRONLY: ::c_int = 1; -pub const O_RDWR: ::c_int = 2; -pub const O_NDELAY: ::c_int = 0x04; -pub const O_APPEND: ::c_int = 8; -pub const O_DSYNC: ::c_int = 0x40; -pub const O_RSYNC: ::c_int = 0x8000; -pub const O_CREAT: ::c_int = 256; -pub const O_EXCL: ::c_int = 1024; -pub const O_NOCTTY: ::c_int = 2048; -pub const O_TRUNC: ::c_int = 512; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_SEARCH: ::c_int = 0x200000; -pub const O_EXEC: ::c_int = 0x400000; -pub const O_CLOEXEC: ::c_int = 0x800000; -pub const O_ACCMODE: ::c_int = 0x600003; -pub const O_XATTR: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x1000000; +pub const ST_RDONLY: c_ulong = 1; +pub const ST_NOSUID: c_ulong = 2; + +pub const NI_MAXHOST: crate::socklen_t = 1025; +pub const NI_MAXSERV: crate::socklen_t = 32; + +pub const EXIT_FAILURE: c_int = 1; +pub const EXIT_SUCCESS: c_int = 0; +pub const RAND_MAX: c_int = 32767; +pub const EOF: c_int = -1; +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; +pub const SEEK_DATA: c_int = 3; +pub const SEEK_HOLE: c_int = 4; +pub const _IOFBF: c_int = 0; +pub const _IONBF: c_int = 4; +pub const _IOLBF: c_int = 64; +pub const BUFSIZ: c_uint = 1024; +pub const FOPEN_MAX: c_uint = 20; +pub const FILENAME_MAX: c_uint = 1024; +pub const L_tmpnam: c_uint = 25; +pub const TMP_MAX: c_uint = 17576; +pub const PIPE_BUF: c_int = 5120; + +pub const GRND_NONBLOCK: c_uint = 0x0001; +pub const GRND_RANDOM: c_uint = 0x0002; + +pub const O_RDONLY: c_int = 0; +pub const O_WRONLY: c_int = 1; +pub const O_RDWR: c_int = 2; +pub const O_NDELAY: c_int = 0x04; +pub const O_APPEND: c_int = 8; +pub const O_DSYNC: c_int = 0x40; +pub const O_RSYNC: c_int = 0x8000; +pub const O_CREAT: c_int = 256; +pub const O_EXCL: c_int = 1024; +pub const O_NOCTTY: c_int = 2048; +pub const O_TRUNC: c_int = 512; +pub const O_NOFOLLOW: c_int = 0x20000; +pub const O_SEARCH: c_int = 0x200000; +pub const O_EXEC: c_int = 0x400000; +pub const O_CLOEXEC: c_int = 0x800000; +pub const O_ACCMODE: c_int = 0x600003; +pub const O_XATTR: c_int = 0x4000; +pub const O_DIRECTORY: c_int = 0x1000000; pub const S_IFIFO: mode_t = 0o1_0000; pub const S_IFCHR: mode_t = 0o2_0000; pub const S_IFBLK: mode_t = 0o6_0000; @@ -1244,79 +1248,79 @@ pub const S_IRWXO: mode_t = 0o0007; pub const S_IXOTH: mode_t = 0o0001; pub const S_IWOTH: mode_t = 0o0002; pub const S_IROTH: mode_t = 0o0004; -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_GETLK: ::c_int = 14; -pub const F_ALLOCSP: ::c_int = 10; -pub const F_FREESP: ::c_int = 11; -pub const F_BLOCKS: ::c_int = 18; -pub const F_BLKSIZE: ::c_int = 19; -pub const F_SHARE: ::c_int = 40; -pub const F_UNSHARE: ::c_int = 41; -pub const F_ISSTREAM: ::c_int = 13; -pub const F_PRIV: ::c_int = 15; -pub const F_NPRIV: ::c_int = 16; -pub const F_QUOTACTL: ::c_int = 17; -pub const F_GETOWN: ::c_int = 23; -pub const F_SETOWN: ::c_int = 24; -pub const F_REVOKE: ::c_int = 25; -pub const F_HASREMOTELOCKS: ::c_int = 26; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSEGV: ::c_int = 11; -pub const SIGSYS: ::c_int = 12; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; -pub const SIGUSR1: ::c_int = 16; -pub const SIGUSR2: ::c_int = 17; -pub const SIGPWR: ::c_int = 19; -pub const SIGWINCH: ::c_int = 20; -pub const SIGURG: ::c_int = 21; -pub const SIGPOLL: ::c_int = 22; -pub const SIGIO: ::c_int = SIGPOLL; -pub const SIGSTOP: ::c_int = 23; -pub const SIGTSTP: ::c_int = 24; -pub const SIGCONT: ::c_int = 25; -pub const SIGTTIN: ::c_int = 26; -pub const SIGTTOU: ::c_int = 27; -pub const SIGVTALRM: ::c_int = 28; -pub const SIGPROF: ::c_int = 29; -pub const SIGXCPU: ::c_int = 30; -pub const SIGXFSZ: ::c_int = 31; - -pub const WNOHANG: ::c_int = 0x40; -pub const WUNTRACED: ::c_int = 0x04; - -pub const WEXITED: ::c_int = 0x01; -pub const WTRAPPED: ::c_int = 0x02; -pub const WSTOPPED: ::c_int = WUNTRACED; -pub const WCONTINUED: ::c_int = 0x08; -pub const WNOWAIT: ::c_int = 0x80; - -pub const AT_FDCWD: ::c_int = 0xffd19553; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x1000; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x2000; -pub const AT_REMOVEDIR: ::c_int = 0x1; -pub const _AT_TRIGGER: ::c_int = 0x2; -pub const AT_EACCESS: ::c_int = 0x4; +pub const F_OK: c_int = 0; +pub const R_OK: c_int = 4; +pub const W_OK: c_int = 2; +pub const X_OK: c_int = 1; +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; +pub const F_LOCK: c_int = 1; +pub const F_TEST: c_int = 3; +pub const F_TLOCK: c_int = 2; +pub const F_ULOCK: c_int = 0; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; +pub const F_GETLK: c_int = 14; +pub const F_ALLOCSP: c_int = 10; +pub const F_FREESP: c_int = 11; +pub const F_BLOCKS: c_int = 18; +pub const F_BLKSIZE: c_int = 19; +pub const F_SHARE: c_int = 40; +pub const F_UNSHARE: c_int = 41; +pub const F_ISSTREAM: c_int = 13; +pub const F_PRIV: c_int = 15; +pub const F_NPRIV: c_int = 16; +pub const F_QUOTACTL: c_int = 17; +pub const F_GETOWN: c_int = 23; +pub const F_SETOWN: c_int = 24; +pub const F_REVOKE: c_int = 25; +pub const F_HASREMOTELOCKS: c_int = 26; +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGABRT: c_int = 6; +pub const SIGEMT: c_int = 7; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGSEGV: c_int = 11; +pub const SIGSYS: c_int = 12; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; +pub const SIGUSR1: c_int = 16; +pub const SIGUSR2: c_int = 17; +pub const SIGPWR: c_int = 19; +pub const SIGWINCH: c_int = 20; +pub const SIGURG: c_int = 21; +pub const SIGPOLL: c_int = 22; +pub const SIGIO: c_int = SIGPOLL; +pub const SIGSTOP: c_int = 23; +pub const SIGTSTP: c_int = 24; +pub const SIGCONT: c_int = 25; +pub const SIGTTIN: c_int = 26; +pub const SIGTTOU: c_int = 27; +pub const SIGVTALRM: c_int = 28; +pub const SIGPROF: c_int = 29; +pub const SIGXCPU: c_int = 30; +pub const SIGXFSZ: c_int = 31; + +pub const WNOHANG: c_int = 0x40; +pub const WUNTRACED: c_int = 0x04; + +pub const WEXITED: c_int = 0x01; +pub const WTRAPPED: c_int = 0x02; +pub const WSTOPPED: c_int = WUNTRACED; +pub const WCONTINUED: c_int = 0x08; +pub const WNOWAIT: c_int = 0x80; + +pub const AT_FDCWD: c_int = 0xffd19553; +pub const AT_SYMLINK_NOFOLLOW: c_int = 0x1000; +pub const AT_SYMLINK_FOLLOW: c_int = 0x2000; +pub const AT_REMOVEDIR: c_int = 0x1; +pub const _AT_TRIGGER: c_int = 0x2; +pub const AT_EACCESS: c_int = 0x4; pub const P_PID: idtype_t = 0; pub const P_PPID: idtype_t = 1; @@ -1335,240 +1339,240 @@ pub const P_CTID: idtype_t = 13; pub const P_CPUID: idtype_t = 14; pub const P_PSETID: idtype_t = 15; -pub const PBIND_NONE: ::processorid_t = -1; -pub const PBIND_QUERY: ::processorid_t = -2; +pub const PBIND_NONE: crate::processorid_t = -1; +pub const PBIND_QUERY: crate::processorid_t = -2; -pub const PS_NONE: ::c_int = -1; -pub const PS_QUERY: ::c_int = -2; -pub const PS_MYID: ::c_int = -3; -pub const PS_SOFT: ::c_int = -4; -pub const PS_HARD: ::c_int = -5; -pub const PS_QUERY_TYPE: ::c_int = -6; -pub const PS_PRIVATE: ::c_int = 2; +pub const PS_NONE: c_int = -1; +pub const PS_QUERY: c_int = -2; +pub const PS_MYID: c_int = -3; +pub const PS_SOFT: c_int = -4; +pub const PS_HARD: c_int = -5; +pub const PS_QUERY_TYPE: c_int = -6; +pub const PS_PRIVATE: c_int = 2; pub const UTIME_OMIT: c_long = -2; pub const UTIME_NOW: c_long = -1; -pub const PROT_NONE: ::c_int = 0; -pub const PROT_READ: ::c_int = 1; -pub const PROT_WRITE: ::c_int = 2; -pub const PROT_EXEC: ::c_int = 4; - -pub const MAP_SHARED: ::c_int = 0x0001; -pub const MAP_PRIVATE: ::c_int = 0x0002; -pub const MAP_FIXED: ::c_int = 0x0010; -pub const MAP_NORESERVE: ::c_int = 0x40; -pub const MAP_ANON: ::c_int = 0x0100; -pub const MAP_ANONYMOUS: ::c_int = 0x0100; -pub const MAP_RENAME: ::c_int = 0x20; -pub const MAP_ALIGN: ::c_int = 0x200; -pub const MAP_TEXT: ::c_int = 0x400; -pub const MAP_INITDATA: ::c_int = 0x800; -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const MS_SYNC: ::c_int = 0x0004; -pub const MS_ASYNC: ::c_int = 0x0001; -pub const MS_INVALIDATE: ::c_int = 0x0002; - -pub const MMOBJ_PADDING: ::c_uint = 0x10000; -pub const MMOBJ_INTERPRET: ::c_uint = 0x20000; -pub const MR_PADDING: ::c_uint = 0x1; -pub const MR_HDR_ELF: ::c_uint = 0x2; - -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const ECHRNG: ::c_int = 37; -pub const EL2NSYNC: ::c_int = 38; -pub const EL3HLT: ::c_int = 39; -pub const EL3RST: ::c_int = 40; -pub const ELNRNG: ::c_int = 41; -pub const EUNATCH: ::c_int = 42; -pub const ENOCSI: ::c_int = 43; -pub const EL2HLT: ::c_int = 44; -pub const EDEADLK: ::c_int = 45; -pub const ENOLCK: ::c_int = 46; -pub const ECANCELED: ::c_int = 47; -pub const ENOTSUP: ::c_int = 48; -pub const EDQUOT: ::c_int = 49; -pub const EBADE: ::c_int = 50; -pub const EBADR: ::c_int = 51; -pub const EXFULL: ::c_int = 52; -pub const ENOANO: ::c_int = 53; -pub const EBADRQC: ::c_int = 54; -pub const EBADSLT: ::c_int = 55; -pub const EDEADLOCK: ::c_int = 56; -pub const EBFONT: ::c_int = 57; -pub const EOWNERDEAD: ::c_int = 58; -pub const ENOTRECOVERABLE: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const ELOCKUNMAPPED: ::c_int = 72; -pub const ENOTACTIVE: ::c_int = 73; -pub const EMULTIHOP: ::c_int = 74; -pub const EADI: ::c_int = 75; -pub const EBADMSG: ::c_int = 77; -pub const ENAMETOOLONG: ::c_int = 78; -pub const EOVERFLOW: ::c_int = 79; -pub const ENOTUNIQ: ::c_int = 80; -pub const EBADFD: ::c_int = 81; -pub const EREMCHG: ::c_int = 82; -pub const ELIBACC: ::c_int = 83; -pub const ELIBBAD: ::c_int = 84; -pub const ELIBSCN: ::c_int = 85; -pub const ELIBMAX: ::c_int = 86; -pub const ELIBEXEC: ::c_int = 87; -pub const EILSEQ: ::c_int = 88; -pub const ENOSYS: ::c_int = 89; -pub const ELOOP: ::c_int = 90; -pub const ERESTART: ::c_int = 91; -pub const ESTRPIPE: ::c_int = 92; -pub const ENOTEMPTY: ::c_int = 93; -pub const EUSERS: ::c_int = 94; -pub const ENOTSOCK: ::c_int = 95; -pub const EDESTADDRREQ: ::c_int = 96; -pub const EMSGSIZE: ::c_int = 97; -pub const EPROTOTYPE: ::c_int = 98; -pub const ENOPROTOOPT: ::c_int = 99; -pub const EPROTONOSUPPORT: ::c_int = 120; -pub const ESOCKTNOSUPPORT: ::c_int = 121; -pub const EOPNOTSUPP: ::c_int = 122; -pub const EPFNOSUPPORT: ::c_int = 123; -pub const EAFNOSUPPORT: ::c_int = 124; -pub const EADDRINUSE: ::c_int = 125; -pub const EADDRNOTAVAIL: ::c_int = 126; -pub const ENETDOWN: ::c_int = 127; -pub const ENETUNREACH: ::c_int = 128; -pub const ENETRESET: ::c_int = 129; -pub const ECONNABORTED: ::c_int = 130; -pub const ECONNRESET: ::c_int = 131; -pub const ENOBUFS: ::c_int = 132; -pub const EISCONN: ::c_int = 133; -pub const ENOTCONN: ::c_int = 134; -pub const ESHUTDOWN: ::c_int = 143; -pub const ETOOMANYREFS: ::c_int = 144; -pub const ETIMEDOUT: ::c_int = 145; -pub const ECONNREFUSED: ::c_int = 146; -pub const EHOSTDOWN: ::c_int = 147; -pub const EHOSTUNREACH: ::c_int = 148; -pub const EWOULDBLOCK: ::c_int = EAGAIN; -pub const EALREADY: ::c_int = 149; -pub const EINPROGRESS: ::c_int = 150; -pub const ESTALE: ::c_int = 151; - -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_FAMILY: ::c_int = 5; -pub const EAI_MEMORY: ::c_int = 6; -pub const EAI_NODATA: ::c_int = 7; -pub const EAI_NONAME: ::c_int = 8; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_OVERFLOW: ::c_int = 12; - -pub const NI_NOFQDN: ::c_uint = 0x0001; -pub const NI_NUMERICHOST: ::c_uint = 0x0002; -pub const NI_NAMEREQD: ::c_uint = 0x0004; -pub const NI_NUMERICSERV: ::c_uint = 0x0008; -pub const NI_DGRAM: ::c_uint = 0x0010; -pub const NI_WITHSCOPEID: ::c_uint = 0x0020; -pub const NI_NUMERICSCOPE: ::c_uint = 0x0040; - -pub const F_DUPFD: ::c_int = 0; -pub const F_DUP2FD: ::c_int = 9; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; -pub const F_GETXFL: ::c_int = 45; - -pub const SIGTRAP: ::c_int = 5; - -pub const GLOB_APPEND: ::c_int = 32; -pub const GLOB_DOOFFS: ::c_int = 16; -pub const GLOB_ERR: ::c_int = 1; -pub const GLOB_MARK: ::c_int = 2; -pub const GLOB_NOCHECK: ::c_int = 8; -pub const GLOB_NOSORT: ::c_int = 4; -pub const GLOB_NOESCAPE: ::c_int = 64; - -pub const GLOB_NOSPACE: ::c_int = -2; -pub const GLOB_ABORTED: ::c_int = -1; -pub const GLOB_NOMATCH: ::c_int = -3; - -pub const POLLIN: ::c_short = 0x1; -pub const POLLPRI: ::c_short = 0x2; -pub const POLLOUT: ::c_short = 0x4; -pub const POLLERR: ::c_short = 0x8; -pub const POLLHUP: ::c_short = 0x10; -pub const POLLNVAL: ::c_short = 0x20; -pub const POLLNORM: ::c_short = 0x0040; -pub const POLLRDNORM: ::c_short = 0x0040; -pub const POLLWRNORM: ::c_short = 0x4; /* POLLOUT */ -pub const POLLRDBAND: ::c_short = 0x0080; -pub const POLLWRBAND: ::c_short = 0x0100; - -pub const POSIX_MADV_NORMAL: ::c_int = 0; -pub const POSIX_MADV_RANDOM: ::c_int = 1; -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 PTHREAD_CREATE_JOINABLE: ::c_int = 0; -pub const PTHREAD_CREATE_DETACHED: ::c_int = 0x40; -pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; -pub const PTHREAD_PROCESS_PRIVATE: ::c_ushort = 0; -pub const PTHREAD_STACK_MIN: ::size_t = 4096; - -pub const SIGSTKSZ: ::size_t = 8192; +pub const PROT_NONE: c_int = 0; +pub const PROT_READ: c_int = 1; +pub const PROT_WRITE: c_int = 2; +pub const PROT_EXEC: c_int = 4; + +pub const MAP_SHARED: c_int = 0x0001; +pub const MAP_PRIVATE: c_int = 0x0002; +pub const MAP_FIXED: c_int = 0x0010; +pub const MAP_NORESERVE: c_int = 0x40; +pub const MAP_ANON: c_int = 0x0100; +pub const MAP_ANONYMOUS: c_int = 0x0100; +pub const MAP_RENAME: c_int = 0x20; +pub const MAP_ALIGN: c_int = 0x200; +pub const MAP_TEXT: c_int = 0x400; +pub const MAP_INITDATA: c_int = 0x800; +pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; + +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; + +pub const MS_SYNC: c_int = 0x0004; +pub const MS_ASYNC: c_int = 0x0001; +pub const MS_INVALIDATE: c_int = 0x0002; + +pub const MMOBJ_PADDING: c_uint = 0x10000; +pub const MMOBJ_INTERPRET: c_uint = 0x20000; +pub const MR_PADDING: c_uint = 0x1; +pub const MR_HDR_ELF: c_uint = 0x2; + +pub const EPERM: c_int = 1; +pub const ENOENT: c_int = 2; +pub const ESRCH: c_int = 3; +pub const EINTR: c_int = 4; +pub const EIO: c_int = 5; +pub const ENXIO: c_int = 6; +pub const E2BIG: c_int = 7; +pub const ENOEXEC: c_int = 8; +pub const EBADF: c_int = 9; +pub const ECHILD: c_int = 10; +pub const EAGAIN: c_int = 11; +pub const ENOMEM: c_int = 12; +pub const EACCES: c_int = 13; +pub const EFAULT: c_int = 14; +pub const ENOTBLK: c_int = 15; +pub const EBUSY: c_int = 16; +pub const EEXIST: c_int = 17; +pub const EXDEV: c_int = 18; +pub const ENODEV: c_int = 19; +pub const ENOTDIR: c_int = 20; +pub const EISDIR: c_int = 21; +pub const EINVAL: c_int = 22; +pub const ENFILE: c_int = 23; +pub const EMFILE: c_int = 24; +pub const ENOTTY: c_int = 25; +pub const ETXTBSY: c_int = 26; +pub const EFBIG: c_int = 27; +pub const ENOSPC: c_int = 28; +pub const ESPIPE: c_int = 29; +pub const EROFS: c_int = 30; +pub const EMLINK: c_int = 31; +pub const EPIPE: c_int = 32; +pub const EDOM: c_int = 33; +pub const ERANGE: c_int = 34; +pub const ENOMSG: c_int = 35; +pub const EIDRM: c_int = 36; +pub const ECHRNG: c_int = 37; +pub const EL2NSYNC: c_int = 38; +pub const EL3HLT: c_int = 39; +pub const EL3RST: c_int = 40; +pub const ELNRNG: c_int = 41; +pub const EUNATCH: c_int = 42; +pub const ENOCSI: c_int = 43; +pub const EL2HLT: c_int = 44; +pub const EDEADLK: c_int = 45; +pub const ENOLCK: c_int = 46; +pub const ECANCELED: c_int = 47; +pub const ENOTSUP: c_int = 48; +pub const EDQUOT: c_int = 49; +pub const EBADE: c_int = 50; +pub const EBADR: c_int = 51; +pub const EXFULL: c_int = 52; +pub const ENOANO: c_int = 53; +pub const EBADRQC: c_int = 54; +pub const EBADSLT: c_int = 55; +pub const EDEADLOCK: c_int = 56; +pub const EBFONT: c_int = 57; +pub const EOWNERDEAD: c_int = 58; +pub const ENOTRECOVERABLE: c_int = 59; +pub const ENOSTR: c_int = 60; +pub const ENODATA: c_int = 61; +pub const ETIME: c_int = 62; +pub const ENOSR: c_int = 63; +pub const ENONET: c_int = 64; +pub const ENOPKG: c_int = 65; +pub const EREMOTE: c_int = 66; +pub const ENOLINK: c_int = 67; +pub const EADV: c_int = 68; +pub const ESRMNT: c_int = 69; +pub const ECOMM: c_int = 70; +pub const EPROTO: c_int = 71; +pub const ELOCKUNMAPPED: c_int = 72; +pub const ENOTACTIVE: c_int = 73; +pub const EMULTIHOP: c_int = 74; +pub const EADI: c_int = 75; +pub const EBADMSG: c_int = 77; +pub const ENAMETOOLONG: c_int = 78; +pub const EOVERFLOW: c_int = 79; +pub const ENOTUNIQ: c_int = 80; +pub const EBADFD: c_int = 81; +pub const EREMCHG: c_int = 82; +pub const ELIBACC: c_int = 83; +pub const ELIBBAD: c_int = 84; +pub const ELIBSCN: c_int = 85; +pub const ELIBMAX: c_int = 86; +pub const ELIBEXEC: c_int = 87; +pub const EILSEQ: c_int = 88; +pub const ENOSYS: c_int = 89; +pub const ELOOP: c_int = 90; +pub const ERESTART: c_int = 91; +pub const ESTRPIPE: c_int = 92; +pub const ENOTEMPTY: c_int = 93; +pub const EUSERS: c_int = 94; +pub const ENOTSOCK: c_int = 95; +pub const EDESTADDRREQ: c_int = 96; +pub const EMSGSIZE: c_int = 97; +pub const EPROTOTYPE: c_int = 98; +pub const ENOPROTOOPT: c_int = 99; +pub const EPROTONOSUPPORT: c_int = 120; +pub const ESOCKTNOSUPPORT: c_int = 121; +pub const EOPNOTSUPP: c_int = 122; +pub const EPFNOSUPPORT: c_int = 123; +pub const EAFNOSUPPORT: c_int = 124; +pub const EADDRINUSE: c_int = 125; +pub const EADDRNOTAVAIL: c_int = 126; +pub const ENETDOWN: c_int = 127; +pub const ENETUNREACH: c_int = 128; +pub const ENETRESET: c_int = 129; +pub const ECONNABORTED: c_int = 130; +pub const ECONNRESET: c_int = 131; +pub const ENOBUFS: c_int = 132; +pub const EISCONN: c_int = 133; +pub const ENOTCONN: c_int = 134; +pub const ESHUTDOWN: c_int = 143; +pub const ETOOMANYREFS: c_int = 144; +pub const ETIMEDOUT: c_int = 145; +pub const ECONNREFUSED: c_int = 146; +pub const EHOSTDOWN: c_int = 147; +pub const EHOSTUNREACH: c_int = 148; +pub const EWOULDBLOCK: c_int = EAGAIN; +pub const EALREADY: c_int = 149; +pub const EINPROGRESS: c_int = 150; +pub const ESTALE: c_int = 151; + +pub const EAI_AGAIN: c_int = 2; +pub const EAI_BADFLAGS: c_int = 3; +pub const EAI_FAIL: c_int = 4; +pub const EAI_FAMILY: c_int = 5; +pub const EAI_MEMORY: c_int = 6; +pub const EAI_NODATA: c_int = 7; +pub const EAI_NONAME: c_int = 8; +pub const EAI_SERVICE: c_int = 9; +pub const EAI_SOCKTYPE: c_int = 10; +pub const EAI_SYSTEM: c_int = 11; +pub const EAI_OVERFLOW: c_int = 12; + +pub const NI_NOFQDN: c_uint = 0x0001; +pub const NI_NUMERICHOST: c_uint = 0x0002; +pub const NI_NAMEREQD: c_uint = 0x0004; +pub const NI_NUMERICSERV: c_uint = 0x0008; +pub const NI_DGRAM: c_uint = 0x0010; +pub const NI_WITHSCOPEID: c_uint = 0x0020; +pub const NI_NUMERICSCOPE: c_uint = 0x0040; + +pub const F_DUPFD: c_int = 0; +pub const F_DUP2FD: c_int = 9; +pub const F_GETFD: c_int = 1; +pub const F_SETFD: c_int = 2; +pub const F_GETFL: c_int = 3; +pub const F_SETFL: c_int = 4; +pub const F_GETXFL: c_int = 45; + +pub const SIGTRAP: c_int = 5; + +pub const GLOB_APPEND: c_int = 32; +pub const GLOB_DOOFFS: c_int = 16; +pub const GLOB_ERR: c_int = 1; +pub const GLOB_MARK: c_int = 2; +pub const GLOB_NOCHECK: c_int = 8; +pub const GLOB_NOSORT: c_int = 4; +pub const GLOB_NOESCAPE: c_int = 64; + +pub const GLOB_NOSPACE: c_int = -2; +pub const GLOB_ABORTED: c_int = -1; +pub const GLOB_NOMATCH: c_int = -3; + +pub const POLLIN: c_short = 0x1; +pub const POLLPRI: c_short = 0x2; +pub const POLLOUT: c_short = 0x4; +pub const POLLERR: c_short = 0x8; +pub const POLLHUP: c_short = 0x10; +pub const POLLNVAL: c_short = 0x20; +pub const POLLNORM: c_short = 0x0040; +pub const POLLRDNORM: c_short = 0x0040; +pub const POLLWRNORM: c_short = 0x4; /* POLLOUT */ +pub const POLLRDBAND: c_short = 0x0080; +pub const POLLWRBAND: c_short = 0x0100; + +pub const POSIX_MADV_NORMAL: c_int = 0; +pub const POSIX_MADV_RANDOM: c_int = 1; +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 PTHREAD_CREATE_JOINABLE: c_int = 0; +pub const PTHREAD_CREATE_DETACHED: c_int = 0x40; +pub const PTHREAD_PROCESS_SHARED: c_int = 1; +pub const PTHREAD_PROCESS_PRIVATE: c_ushort = 0; +pub const PTHREAD_STACK_MIN: size_t = 4096; + +pub const SIGSTKSZ: size_t = 8192; // https://illumos.org/man/3c/clock_gettime // https://github.com/illumos/illumos-gate/ @@ -1580,450 +1584,450 @@ pub const SIGSTKSZ: ::size_t = 8192; // blob/HEAD/usr/src/uts/common/sys/time_impl.h // Confusing! CLOCK_HIGHRES==CLOCK_MONOTONIC==4 // __CLOCK_REALTIME0==0 is an obsoleted version of CLOCK_REALTIME==3 -pub const CLOCK_REALTIME: ::clockid_t = 3; -pub const CLOCK_MONOTONIC: ::clockid_t = 4; -pub const TIMER_RELTIME: ::c_int = 0; -pub const TIMER_ABSTIME: ::c_int = 1; - -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_NOFILE: ::c_int = 5; -pub const RLIMIT_VMEM: ::c_int = 6; -pub const RLIMIT_AS: ::c_int = RLIMIT_VMEM; +pub const CLOCK_REALTIME: crate::clockid_t = 3; +pub const CLOCK_MONOTONIC: crate::clockid_t = 4; +pub const TIMER_RELTIME: c_int = 0; +pub const TIMER_ABSTIME: c_int = 1; + +pub const RLIMIT_CPU: c_int = 0; +pub const RLIMIT_FSIZE: c_int = 1; +pub const RLIMIT_DATA: c_int = 2; +pub const RLIMIT_STACK: c_int = 3; +pub const RLIMIT_CORE: c_int = 4; +pub const RLIMIT_NOFILE: c_int = 5; +pub const RLIMIT_VMEM: c_int = 6; +pub const RLIMIT_AS: c_int = RLIMIT_VMEM; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: rlim_t = 7; pub const RLIM_INFINITY: rlim_t = 0xfffffffffffffffd; -pub const RUSAGE_SELF: ::c_int = 0; -pub const RUSAGE_CHILDREN: ::c_int = -1; - -pub const MADV_NORMAL: ::c_int = 0; -pub const MADV_RANDOM: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_WILLNEED: ::c_int = 3; -pub const MADV_DONTNEED: ::c_int = 4; -pub const MADV_FREE: ::c_int = 5; -pub const MADV_ACCESS_DEFAULT: ::c_int = 6; -pub const MADV_ACCESS_LWP: ::c_int = 7; -pub const MADV_ACCESS_MANY: ::c_int = 8; - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_UNIX: ::c_int = 1; -pub const AF_INET: ::c_int = 2; -pub const AF_IMPLINK: ::c_int = 3; -pub const AF_PUP: ::c_int = 4; -pub const AF_CHAOS: ::c_int = 5; -pub const AF_NS: ::c_int = 6; -pub const AF_NBS: ::c_int = 7; -pub const AF_ECMA: ::c_int = 8; -pub const AF_DATAKIT: ::c_int = 9; -pub const AF_CCITT: ::c_int = 10; -pub const AF_SNA: ::c_int = 11; -pub const AF_DECnet: ::c_int = 12; -pub const AF_DLI: ::c_int = 13; -pub const AF_LAT: ::c_int = 14; -pub const AF_HYLINK: ::c_int = 15; -pub const AF_APPLETALK: ::c_int = 16; -pub const AF_NIT: ::c_int = 17; -pub const AF_802: ::c_int = 18; -pub const AF_OSI: ::c_int = 19; -pub const AF_X25: ::c_int = 20; -pub const AF_OSINET: ::c_int = 21; -pub const AF_GOSIP: ::c_int = 22; -pub const AF_IPX: ::c_int = 23; -pub const AF_ROUTE: ::c_int = 24; -pub const AF_LINK: ::c_int = 25; -pub const AF_INET6: ::c_int = 26; -pub const AF_KEY: ::c_int = 27; -pub const AF_POLICY: ::c_int = 29; -pub const AF_INET_OFFLOAD: ::c_int = 30; -pub const AF_TRILL: ::c_int = 31; -pub const AF_PACKET: ::c_int = 32; - -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_UNIX: ::c_int = AF_UNIX; -pub const PF_LOCAL: ::c_int = PF_UNIX; -pub const PF_FILE: ::c_int = PF_UNIX; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_IMPLINK: ::c_int = AF_IMPLINK; -pub const PF_PUP: ::c_int = AF_PUP; -pub const PF_CHAOS: ::c_int = AF_CHAOS; -pub const PF_NS: ::c_int = AF_NS; -pub const PF_NBS: ::c_int = AF_NBS; -pub const PF_ECMA: ::c_int = AF_ECMA; -pub const PF_DATAKIT: ::c_int = AF_DATAKIT; -pub const PF_CCITT: ::c_int = AF_CCITT; -pub const PF_SNA: ::c_int = AF_SNA; -pub const PF_DECnet: ::c_int = AF_DECnet; -pub const PF_DLI: ::c_int = AF_DLI; -pub const PF_LAT: ::c_int = AF_LAT; -pub const PF_HYLINK: ::c_int = AF_HYLINK; -pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -pub const PF_NIT: ::c_int = AF_NIT; -pub const PF_802: ::c_int = AF_802; -pub const PF_OSI: ::c_int = AF_OSI; -pub const PF_X25: ::c_int = AF_X25; -pub const PF_OSINET: ::c_int = AF_OSINET; -pub const PF_GOSIP: ::c_int = AF_GOSIP; -pub const PF_IPX: ::c_int = AF_IPX; -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_LINK: ::c_int = AF_LINK; -pub const PF_INET6: ::c_int = AF_INET6; -pub const PF_KEY: ::c_int = AF_KEY; -pub const PF_POLICY: ::c_int = AF_POLICY; -pub const PF_INET_OFFLOAD: ::c_int = AF_INET_OFFLOAD; -pub const PF_TRILL: ::c_int = AF_TRILL; -pub const PF_PACKET: ::c_int = AF_PACKET; - -pub const SOCK_DGRAM: ::c_int = 1; -pub const SOCK_STREAM: ::c_int = 2; -pub const SOCK_RAW: ::c_int = 4; -pub const SOCK_RDM: ::c_int = 5; -pub const SOCK_SEQPACKET: ::c_int = 6; -pub const IP_MULTICAST_IF: ::c_int = 16; -pub const IP_MULTICAST_TTL: ::c_int = 17; -pub const IP_MULTICAST_LOOP: ::c_int = 18; -pub const IP_HDRINCL: ::c_int = 2; -pub const IP_TOS: ::c_int = 3; -pub const IP_TTL: ::c_int = 4; -pub const IP_ADD_MEMBERSHIP: ::c_int = 19; -pub const IP_DROP_MEMBERSHIP: ::c_int = 20; -pub const IPV6_JOIN_GROUP: ::c_int = 9; -pub const IPV6_LEAVE_GROUP: ::c_int = 10; -pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 23; -pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 24; -pub const IP_BLOCK_SOURCE: ::c_int = 21; -pub const IP_UNBLOCK_SOURCE: ::c_int = 22; +pub const RUSAGE_SELF: c_int = 0; +pub const RUSAGE_CHILDREN: c_int = -1; + +pub const MADV_NORMAL: c_int = 0; +pub const MADV_RANDOM: c_int = 1; +pub const MADV_SEQUENTIAL: c_int = 2; +pub const MADV_WILLNEED: c_int = 3; +pub const MADV_DONTNEED: c_int = 4; +pub const MADV_FREE: c_int = 5; +pub const MADV_ACCESS_DEFAULT: c_int = 6; +pub const MADV_ACCESS_LWP: c_int = 7; +pub const MADV_ACCESS_MANY: c_int = 8; + +pub const AF_UNSPEC: c_int = 0; +pub const AF_UNIX: c_int = 1; +pub const AF_INET: c_int = 2; +pub const AF_IMPLINK: c_int = 3; +pub const AF_PUP: c_int = 4; +pub const AF_CHAOS: c_int = 5; +pub const AF_NS: c_int = 6; +pub const AF_NBS: c_int = 7; +pub const AF_ECMA: c_int = 8; +pub const AF_DATAKIT: c_int = 9; +pub const AF_CCITT: c_int = 10; +pub const AF_SNA: c_int = 11; +pub const AF_DECnet: c_int = 12; +pub const AF_DLI: c_int = 13; +pub const AF_LAT: c_int = 14; +pub const AF_HYLINK: c_int = 15; +pub const AF_APPLETALK: c_int = 16; +pub const AF_NIT: c_int = 17; +pub const AF_802: c_int = 18; +pub const AF_OSI: c_int = 19; +pub const AF_X25: c_int = 20; +pub const AF_OSINET: c_int = 21; +pub const AF_GOSIP: c_int = 22; +pub const AF_IPX: c_int = 23; +pub const AF_ROUTE: c_int = 24; +pub const AF_LINK: c_int = 25; +pub const AF_INET6: c_int = 26; +pub const AF_KEY: c_int = 27; +pub const AF_POLICY: c_int = 29; +pub const AF_INET_OFFLOAD: c_int = 30; +pub const AF_TRILL: c_int = 31; +pub const AF_PACKET: c_int = 32; + +pub const PF_UNSPEC: c_int = AF_UNSPEC; +pub const PF_UNIX: c_int = AF_UNIX; +pub const PF_LOCAL: c_int = PF_UNIX; +pub const PF_FILE: c_int = PF_UNIX; +pub const PF_INET: c_int = AF_INET; +pub const PF_IMPLINK: c_int = AF_IMPLINK; +pub const PF_PUP: c_int = AF_PUP; +pub const PF_CHAOS: c_int = AF_CHAOS; +pub const PF_NS: c_int = AF_NS; +pub const PF_NBS: c_int = AF_NBS; +pub const PF_ECMA: c_int = AF_ECMA; +pub const PF_DATAKIT: c_int = AF_DATAKIT; +pub const PF_CCITT: c_int = AF_CCITT; +pub const PF_SNA: c_int = AF_SNA; +pub const PF_DECnet: c_int = AF_DECnet; +pub const PF_DLI: c_int = AF_DLI; +pub const PF_LAT: c_int = AF_LAT; +pub const PF_HYLINK: c_int = AF_HYLINK; +pub const PF_APPLETALK: c_int = AF_APPLETALK; +pub const PF_NIT: c_int = AF_NIT; +pub const PF_802: c_int = AF_802; +pub const PF_OSI: c_int = AF_OSI; +pub const PF_X25: c_int = AF_X25; +pub const PF_OSINET: c_int = AF_OSINET; +pub const PF_GOSIP: c_int = AF_GOSIP; +pub const PF_IPX: c_int = AF_IPX; +pub const PF_ROUTE: c_int = AF_ROUTE; +pub const PF_LINK: c_int = AF_LINK; +pub const PF_INET6: c_int = AF_INET6; +pub const PF_KEY: c_int = AF_KEY; +pub const PF_POLICY: c_int = AF_POLICY; +pub const PF_INET_OFFLOAD: c_int = AF_INET_OFFLOAD; +pub const PF_TRILL: c_int = AF_TRILL; +pub const PF_PACKET: c_int = AF_PACKET; + +pub const SOCK_DGRAM: c_int = 1; +pub const SOCK_STREAM: c_int = 2; +pub const SOCK_RAW: c_int = 4; +pub const SOCK_RDM: c_int = 5; +pub const SOCK_SEQPACKET: c_int = 6; +pub const IP_MULTICAST_IF: c_int = 16; +pub const IP_MULTICAST_TTL: c_int = 17; +pub const IP_MULTICAST_LOOP: c_int = 18; +pub const IP_HDRINCL: c_int = 2; +pub const IP_TOS: c_int = 3; +pub const IP_TTL: c_int = 4; +pub const IP_ADD_MEMBERSHIP: c_int = 19; +pub const IP_DROP_MEMBERSHIP: c_int = 20; +pub const IPV6_JOIN_GROUP: c_int = 9; +pub const IPV6_LEAVE_GROUP: c_int = 10; +pub const IP_ADD_SOURCE_MEMBERSHIP: c_int = 23; +pub const IP_DROP_SOURCE_MEMBERSHIP: c_int = 24; +pub const IP_BLOCK_SOURCE: c_int = 21; +pub const IP_UNBLOCK_SOURCE: c_int = 22; // These TCP socket options are common between illumos and Solaris, while higher // numbers have generally diverged: -pub const TCP_NODELAY: ::c_int = 0x1; -pub const TCP_MAXSEG: ::c_int = 0x2; -pub const TCP_KEEPALIVE: ::c_int = 0x8; -pub const TCP_NOTIFY_THRESHOLD: ::c_int = 0x10; -pub const TCP_ABORT_THRESHOLD: ::c_int = 0x11; -pub const TCP_CONN_NOTIFY_THRESHOLD: ::c_int = 0x12; -pub const TCP_CONN_ABORT_THRESHOLD: ::c_int = 0x13; -pub const TCP_RECVDSTADDR: ::c_int = 0x14; -pub const TCP_INIT_CWND: ::c_int = 0x15; -pub const TCP_KEEPALIVE_THRESHOLD: ::c_int = 0x16; -pub const TCP_KEEPALIVE_ABORT_THRESHOLD: ::c_int = 0x17; -pub const TCP_CORK: ::c_int = 0x18; -pub const TCP_RTO_INITIAL: ::c_int = 0x19; -pub const TCP_RTO_MIN: ::c_int = 0x1a; -pub const TCP_RTO_MAX: ::c_int = 0x1b; -pub const TCP_LINGER2: ::c_int = 0x1c; - -pub const UDP_NAT_T_ENDPOINT: ::c_int = 0x0103; - -pub const SOMAXCONN: ::c_int = 128; - -pub const SOL_SOCKET: ::c_int = 0xffff; -pub const SO_DEBUG: ::c_int = 0x01; -pub const SO_ACCEPTCONN: ::c_int = 0x0002; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVLOWAT: ::c_int = 0x1004; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_TYPE: ::c_int = 0x1008; -pub const SO_PROTOTYPE: ::c_int = 0x1009; -pub const SO_DOMAIN: ::c_int = 0x100c; -pub const SO_TIMESTAMP: ::c_int = 0x1013; -pub const SO_EXCLBIND: ::c_int = 0x1015; - -pub const SCM_RIGHTS: ::c_int = 0x1010; -pub const SCM_UCRED: ::c_int = 0x1012; -pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; - -pub const MSG_OOB: ::c_int = 0x1; -pub const MSG_PEEK: ::c_int = 0x2; -pub const MSG_DONTROUTE: ::c_int = 0x4; -pub const MSG_EOR: ::c_int = 0x8; -pub const MSG_CTRUNC: ::c_int = 0x10; -pub const MSG_TRUNC: ::c_int = 0x20; -pub const MSG_WAITALL: ::c_int = 0x40; -pub const MSG_DONTWAIT: ::c_int = 0x80; -pub const MSG_NOTIFICATION: ::c_int = 0x100; -pub const MSG_NOSIGNAL: ::c_int = 0x200; -pub const MSG_DUPCTRL: ::c_int = 0x800; -pub const MSG_XPG4_2: ::c_int = 0x8000; -pub const MSG_MAXIOVLEN: ::c_int = 16; - -pub const IF_NAMESIZE: ::size_t = 32; -pub const IFNAMSIZ: ::size_t = 16; +pub const TCP_NODELAY: c_int = 0x1; +pub const TCP_MAXSEG: c_int = 0x2; +pub const TCP_KEEPALIVE: c_int = 0x8; +pub const TCP_NOTIFY_THRESHOLD: c_int = 0x10; +pub const TCP_ABORT_THRESHOLD: c_int = 0x11; +pub const TCP_CONN_NOTIFY_THRESHOLD: c_int = 0x12; +pub const TCP_CONN_ABORT_THRESHOLD: c_int = 0x13; +pub const TCP_RECVDSTADDR: c_int = 0x14; +pub const TCP_INIT_CWND: c_int = 0x15; +pub const TCP_KEEPALIVE_THRESHOLD: c_int = 0x16; +pub const TCP_KEEPALIVE_ABORT_THRESHOLD: c_int = 0x17; +pub const TCP_CORK: c_int = 0x18; +pub const TCP_RTO_INITIAL: c_int = 0x19; +pub const TCP_RTO_MIN: c_int = 0x1a; +pub const TCP_RTO_MAX: c_int = 0x1b; +pub const TCP_LINGER2: c_int = 0x1c; + +pub const UDP_NAT_T_ENDPOINT: c_int = 0x0103; + +pub const SOMAXCONN: c_int = 128; + +pub const SOL_SOCKET: c_int = 0xffff; +pub const SO_DEBUG: c_int = 0x01; +pub const SO_ACCEPTCONN: c_int = 0x0002; +pub const SO_REUSEADDR: c_int = 0x0004; +pub const SO_KEEPALIVE: c_int = 0x0008; +pub const SO_DONTROUTE: c_int = 0x0010; +pub const SO_BROADCAST: c_int = 0x0020; +pub const SO_USELOOPBACK: c_int = 0x0040; +pub const SO_LINGER: c_int = 0x0080; +pub const SO_OOBINLINE: c_int = 0x0100; +pub const SO_SNDBUF: c_int = 0x1001; +pub const SO_RCVBUF: c_int = 0x1002; +pub const SO_SNDLOWAT: c_int = 0x1003; +pub const SO_RCVLOWAT: c_int = 0x1004; +pub const SO_SNDTIMEO: c_int = 0x1005; +pub const SO_RCVTIMEO: c_int = 0x1006; +pub const SO_ERROR: c_int = 0x1007; +pub const SO_TYPE: c_int = 0x1008; +pub const SO_PROTOTYPE: c_int = 0x1009; +pub const SO_DOMAIN: c_int = 0x100c; +pub const SO_TIMESTAMP: c_int = 0x1013; +pub const SO_EXCLBIND: c_int = 0x1015; + +pub const SCM_RIGHTS: c_int = 0x1010; +pub const SCM_UCRED: c_int = 0x1012; +pub const SCM_TIMESTAMP: c_int = SO_TIMESTAMP; + +pub const MSG_OOB: c_int = 0x1; +pub const MSG_PEEK: c_int = 0x2; +pub const MSG_DONTROUTE: c_int = 0x4; +pub const MSG_EOR: c_int = 0x8; +pub const MSG_CTRUNC: c_int = 0x10; +pub const MSG_TRUNC: c_int = 0x20; +pub const MSG_WAITALL: c_int = 0x40; +pub const MSG_DONTWAIT: c_int = 0x80; +pub const MSG_NOTIFICATION: c_int = 0x100; +pub const MSG_NOSIGNAL: c_int = 0x200; +pub const MSG_DUPCTRL: c_int = 0x800; +pub const MSG_XPG4_2: c_int = 0x8000; +pub const MSG_MAXIOVLEN: c_int = 16; + +pub const IF_NAMESIZE: size_t = 32; +pub const IFNAMSIZ: size_t = 16; // https://docs.oracle.com/cd/E23824_01/html/821-1475/if-7p.html -pub const IFF_UP: ::c_int = 0x0000000001; // Address is up -pub const IFF_BROADCAST: ::c_int = 0x0000000002; // Broadcast address valid -pub const IFF_DEBUG: ::c_int = 0x0000000004; // Turn on debugging -pub const IFF_LOOPBACK: ::c_int = 0x0000000008; // Loopback net -pub const IFF_POINTOPOINT: ::c_int = 0x0000000010; // Interface is p-to-p -pub const IFF_NOTRAILERS: ::c_int = 0x0000000020; // Avoid use of trailers -pub const IFF_RUNNING: ::c_int = 0x0000000040; // Resources allocated -pub const IFF_NOARP: ::c_int = 0x0000000080; // No address res. protocol -pub const IFF_PROMISC: ::c_int = 0x0000000100; // Receive all packets -pub const IFF_ALLMULTI: ::c_int = 0x0000000200; // Receive all multicast pkts -pub const IFF_INTELLIGENT: ::c_int = 0x0000000400; // Protocol code on board -pub const IFF_MULTICAST: ::c_int = 0x0000000800; // Supports multicast +pub const IFF_UP: c_int = 0x0000000001; // Address is up +pub const IFF_BROADCAST: c_int = 0x0000000002; // Broadcast address valid +pub const IFF_DEBUG: c_int = 0x0000000004; // Turn on debugging +pub const IFF_LOOPBACK: c_int = 0x0000000008; // Loopback net +pub const IFF_POINTOPOINT: c_int = 0x0000000010; // Interface is p-to-p +pub const IFF_NOTRAILERS: c_int = 0x0000000020; // Avoid use of trailers +pub const IFF_RUNNING: c_int = 0x0000000040; // Resources allocated +pub const IFF_NOARP: c_int = 0x0000000080; // No address res. protocol +pub const IFF_PROMISC: c_int = 0x0000000100; // Receive all packets +pub const IFF_ALLMULTI: c_int = 0x0000000200; // Receive all multicast pkts +pub const IFF_INTELLIGENT: c_int = 0x0000000400; // Protocol code on board +pub const IFF_MULTICAST: c_int = 0x0000000800; // Supports multicast // Multicast using broadcst. add. -pub const IFF_MULTI_BCAST: ::c_int = 0x0000001000; -pub const IFF_UNNUMBERED: ::c_int = 0x0000002000; // Non-unique address -pub const IFF_DHCPRUNNING: ::c_int = 0x0000004000; // DHCP controls interface -pub const IFF_PRIVATE: ::c_int = 0x0000008000; // Do not advertise -pub const IFF_NOXMIT: ::c_int = 0x0000010000; // Do not transmit pkts +pub const IFF_MULTI_BCAST: c_int = 0x0000001000; +pub const IFF_UNNUMBERED: c_int = 0x0000002000; // Non-unique address +pub const IFF_DHCPRUNNING: c_int = 0x0000004000; // DHCP controls interface +pub const IFF_PRIVATE: c_int = 0x0000008000; // Do not advertise +pub const IFF_NOXMIT: c_int = 0x0000010000; // Do not transmit pkts // No address - just on-link subnet -pub const IFF_NOLOCAL: ::c_int = 0x0000020000; -pub const IFF_DEPRECATED: ::c_int = 0x0000040000; // Address is deprecated -pub const IFF_ADDRCONF: ::c_int = 0x0000080000; // Addr. from stateless addrconf -pub const IFF_ROUTER: ::c_int = 0x0000100000; // Router on interface -pub const IFF_NONUD: ::c_int = 0x0000200000; // No NUD on interface -pub const IFF_ANYCAST: ::c_int = 0x0000400000; // Anycast address -pub const IFF_NORTEXCH: ::c_int = 0x0000800000; // Don't xchange rout. info -pub const IFF_IPV4: ::c_int = 0x0001000000; // IPv4 interface -pub const IFF_IPV6: ::c_int = 0x0002000000; // IPv6 interface -pub const IFF_NOFAILOVER: ::c_int = 0x0008000000; // in.mpathd test address -pub const IFF_FAILED: ::c_int = 0x0010000000; // Interface has failed -pub const IFF_STANDBY: ::c_int = 0x0020000000; // Interface is a hot-spare -pub const IFF_INACTIVE: ::c_int = 0x0040000000; // Functioning but not used -pub const IFF_OFFLINE: ::c_int = 0x0080000000; // Interface is offline - // If CoS marking is supported -pub const IFF_COS_ENABLED: ::c_longlong = 0x0200000000; -pub const IFF_PREFERRED: ::c_longlong = 0x0400000000; // Prefer as source addr. -pub const IFF_TEMPORARY: ::c_longlong = 0x0800000000; // RFC3041 -pub const IFF_FIXEDMTU: ::c_longlong = 0x1000000000; // MTU set with SIOCSLIFMTU -pub const IFF_VIRTUAL: ::c_longlong = 0x2000000000; // Cannot send/receive pkts -pub const IFF_DUPLICATE: ::c_longlong = 0x4000000000; // Local address in use -pub const IFF_IPMP: ::c_longlong = 0x8000000000; // IPMP IP interface +pub const IFF_NOLOCAL: c_int = 0x0000020000; +pub const IFF_DEPRECATED: c_int = 0x0000040000; // Address is deprecated +pub const IFF_ADDRCONF: c_int = 0x0000080000; // Addr. from stateless addrconf +pub const IFF_ROUTER: c_int = 0x0000100000; // Router on interface +pub const IFF_NONUD: c_int = 0x0000200000; // No NUD on interface +pub const IFF_ANYCAST: c_int = 0x0000400000; // Anycast address +pub const IFF_NORTEXCH: c_int = 0x0000800000; // Don't xchange rout. info +pub const IFF_IPV4: c_int = 0x0001000000; // IPv4 interface +pub const IFF_IPV6: c_int = 0x0002000000; // IPv6 interface +pub const IFF_NOFAILOVER: c_int = 0x0008000000; // in.mpathd test address +pub const IFF_FAILED: c_int = 0x0010000000; // Interface has failed +pub const IFF_STANDBY: c_int = 0x0020000000; // Interface is a hot-spare +pub const IFF_INACTIVE: c_int = 0x0040000000; // Functioning but not used +pub const IFF_OFFLINE: c_int = 0x0080000000; // Interface is offline + // If CoS marking is supported +pub const IFF_COS_ENABLED: c_longlong = 0x0200000000; +pub const IFF_PREFERRED: c_longlong = 0x0400000000; // Prefer as source addr. +pub const IFF_TEMPORARY: c_longlong = 0x0800000000; // RFC3041 +pub const IFF_FIXEDMTU: c_longlong = 0x1000000000; // MTU set with SIOCSLIFMTU +pub const IFF_VIRTUAL: c_longlong = 0x2000000000; // Cannot send/receive pkts +pub const IFF_DUPLICATE: c_longlong = 0x4000000000; // Local address in use +pub const IFF_IPMP: c_longlong = 0x8000000000; // IPMP IP interface // sys/ipc.h: -pub const IPC_ALLOC: ::c_int = 0x8000; -pub const IPC_CREAT: ::c_int = 0x200; -pub const IPC_EXCL: ::c_int = 0x400; -pub const IPC_NOWAIT: ::c_int = 0x800; +pub const IPC_ALLOC: c_int = 0x8000; +pub const IPC_CREAT: c_int = 0x200; +pub const IPC_EXCL: c_int = 0x400; +pub const IPC_NOWAIT: c_int = 0x800; pub const IPC_PRIVATE: key_t = 0; -pub const IPC_RMID: ::c_int = 10; -pub const IPC_SET: ::c_int = 11; -pub const IPC_SEAT: ::c_int = 12; +pub const IPC_RMID: c_int = 10; +pub const IPC_SET: c_int = 11; +pub const IPC_SEAT: c_int = 12; // sys/shm.h -pub const SHM_R: ::c_int = 0o400; -pub const SHM_W: ::c_int = 0o200; -pub const SHM_RDONLY: ::c_int = 0o10000; -pub const SHM_RND: ::c_int = 0o20000; -pub const SHM_SHARE_MMU: ::c_int = 0o40000; -pub const SHM_PAGEABLE: ::c_int = 0o100000; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const F_RDLCK: ::c_short = 1; -pub const F_WRLCK: ::c_short = 2; -pub const F_UNLCK: ::c_short = 3; - -pub const O_SYNC: ::c_int = 16; -pub const O_NONBLOCK: ::c_int = 128; - -pub const IPPROTO_RAW: ::c_int = 255; - -pub const _PC_LINK_MAX: ::c_int = 1; -pub const _PC_MAX_CANON: ::c_int = 2; -pub const _PC_MAX_INPUT: ::c_int = 3; -pub const _PC_NAME_MAX: ::c_int = 4; -pub const _PC_PATH_MAX: ::c_int = 5; -pub const _PC_PIPE_BUF: ::c_int = 6; -pub const _PC_NO_TRUNC: ::c_int = 7; -pub const _PC_VDISABLE: ::c_int = 8; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 9; -pub const _PC_ASYNC_IO: ::c_int = 10; -pub const _PC_PRIO_IO: ::c_int = 11; -pub const _PC_SYNC_IO: ::c_int = 12; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 13; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; -pub const _PC_REC_XFER_ALIGN: ::c_int = 17; -pub const _PC_SYMLINK_MAX: ::c_int = 18; -pub const _PC_2_SYMLINKS: ::c_int = 19; -pub const _PC_ACL_ENABLED: ::c_int = 20; -pub const _PC_MIN_HOLE_SIZE: ::c_int = 21; -pub const _PC_CASE_BEHAVIOR: ::c_int = 22; -pub const _PC_SATTR_ENABLED: ::c_int = 23; -pub const _PC_SATTR_EXISTS: ::c_int = 24; -pub const _PC_ACCESS_FILTERING: ::c_int = 25; -pub const _PC_TIMESTAMP_RESOLUTION: ::c_int = 26; -pub const _PC_FILESIZEBITS: ::c_int = 67; -pub const _PC_XATTR_ENABLED: ::c_int = 100; -pub const _PC_XATTR_EXISTS: ::c_int = 101; - -pub const _POSIX_VDISABLE: ::cc_t = 0; - -pub const _SC_ARG_MAX: ::c_int = 1; -pub const _SC_CHILD_MAX: ::c_int = 2; -pub const _SC_CLK_TCK: ::c_int = 3; -pub const _SC_NGROUPS_MAX: ::c_int = 4; -pub const _SC_OPEN_MAX: ::c_int = 5; -pub const _SC_JOB_CONTROL: ::c_int = 6; -pub const _SC_SAVED_IDS: ::c_int = 7; -pub const _SC_VERSION: ::c_int = 8; -pub const _SC_PASS_MAX: ::c_int = 9; -pub const _SC_LOGNAME_MAX: ::c_int = 10; -pub const _SC_PAGESIZE: ::c_int = 11; -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_XOPEN_VERSION: ::c_int = 12; -pub const _SC_NPROCESSORS_CONF: ::c_int = 14; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 15; -pub const _SC_STREAM_MAX: ::c_int = 16; -pub const _SC_TZNAME_MAX: ::c_int = 17; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 18; -pub const _SC_AIO_MAX: ::c_int = 19; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 20; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 21; -pub const _SC_DELAYTIMER_MAX: ::c_int = 22; -pub const _SC_FSYNC: ::c_int = 23; -pub const _SC_MAPPED_FILES: ::c_int = 24; -pub const _SC_MEMLOCK: ::c_int = 25; -pub const _SC_MEMLOCK_RANGE: ::c_int = 26; -pub const _SC_MEMORY_PROTECTION: ::c_int = 27; -pub const _SC_MESSAGE_PASSING: ::c_int = 28; -pub const _SC_MQ_OPEN_MAX: ::c_int = 29; -pub const _SC_MQ_PRIO_MAX: ::c_int = 30; -pub const _SC_PRIORITIZED_IO: ::c_int = 31; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 32; -pub const _SC_REALTIME_SIGNALS: ::c_int = 33; -pub const _SC_RTSIG_MAX: ::c_int = 34; -pub const _SC_SEMAPHORES: ::c_int = 35; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 36; -pub const _SC_SEM_VALUE_MAX: ::c_int = 37; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 38; -pub const _SC_SIGQUEUE_MAX: ::c_int = 39; -pub const _SC_SIGRT_MIN: ::c_int = 40; -pub const _SC_SIGRT_MAX: ::c_int = 41; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 42; -pub const _SC_TIMERS: ::c_int = 43; -pub const _SC_TIMER_MAX: ::c_int = 44; -pub const _SC_2_C_BIND: ::c_int = 45; -pub const _SC_2_C_DEV: ::c_int = 46; -pub const _SC_2_C_VERSION: ::c_int = 47; -pub const _SC_2_FORT_DEV: ::c_int = 48; -pub const _SC_2_FORT_RUN: ::c_int = 49; -pub const _SC_2_LOCALEDEF: ::c_int = 50; -pub const _SC_2_SW_DEV: ::c_int = 51; -pub const _SC_2_UPE: ::c_int = 52; -pub const _SC_2_VERSION: ::c_int = 53; -pub const _SC_BC_BASE_MAX: ::c_int = 54; -pub const _SC_BC_DIM_MAX: ::c_int = 55; -pub const _SC_BC_SCALE_MAX: ::c_int = 56; -pub const _SC_BC_STRING_MAX: ::c_int = 57; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 58; -pub const _SC_EXPR_NEST_MAX: ::c_int = 59; -pub const _SC_LINE_MAX: ::c_int = 60; -pub const _SC_RE_DUP_MAX: ::c_int = 61; -pub const _SC_XOPEN_CRYPT: ::c_int = 62; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 63; -pub const _SC_XOPEN_SHM: ::c_int = 64; -pub const _SC_2_CHAR_TERM: ::c_int = 66; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 67; -pub const _SC_ATEXIT_MAX: ::c_int = 76; -pub const _SC_IOV_MAX: ::c_int = 77; -pub const _SC_XOPEN_UNIX: ::c_int = 78; -pub const _SC_T_IOV_MAX: ::c_int = 79; -pub const _SC_PHYS_PAGES: ::c_int = 500; -pub const _SC_AVPHYS_PAGES: ::c_int = 501; -pub const _SC_COHER_BLKSZ: ::c_int = 503; -pub const _SC_SPLIT_CACHE: ::c_int = 504; -pub const _SC_ICACHE_SZ: ::c_int = 505; -pub const _SC_DCACHE_SZ: ::c_int = 506; -pub const _SC_ICACHE_LINESZ: ::c_int = 507; -pub const _SC_DCACHE_LINESZ: ::c_int = 508; -pub const _SC_ICACHE_BLKSZ: ::c_int = 509; -pub const _SC_DCACHE_BLKSZ: ::c_int = 510; -pub const _SC_DCACHE_TBLKSZ: ::c_int = 511; -pub const _SC_ICACHE_ASSOC: ::c_int = 512; -pub const _SC_DCACHE_ASSOC: ::c_int = 513; -pub const _SC_MAXPID: ::c_int = 514; -pub const _SC_STACK_PROT: ::c_int = 515; -pub const _SC_NPROCESSORS_MAX: ::c_int = 516; -pub const _SC_CPUID_MAX: ::c_int = 517; -pub const _SC_EPHID_MAX: ::c_int = 518; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 568; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 569; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 570; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 571; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 572; -pub const _SC_THREAD_STACK_MIN: ::c_int = 573; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 574; -pub const _SC_TTY_NAME_MAX: ::c_int = 575; -pub const _SC_THREADS: ::c_int = 576; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 577; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 578; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 579; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 580; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 581; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 582; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 583; -pub const _SC_XOPEN_LEGACY: ::c_int = 717; -pub const _SC_XOPEN_REALTIME: ::c_int = 718; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 719; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 720; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 721; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 722; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 723; -pub const _SC_2_PBS: ::c_int = 724; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 725; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 726; -pub const _SC_2_PBS_LOCATE: ::c_int = 728; -pub const _SC_2_PBS_MESSAGE: ::c_int = 729; -pub const _SC_2_PBS_TRACK: ::c_int = 730; -pub const _SC_ADVISORY_INFO: ::c_int = 731; -pub const _SC_BARRIERS: ::c_int = 732; -pub const _SC_CLOCK_SELECTION: ::c_int = 733; -pub const _SC_CPUTIME: ::c_int = 734; -pub const _SC_HOST_NAME_MAX: ::c_int = 735; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 736; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 737; -pub const _SC_REGEXP: ::c_int = 738; -pub const _SC_SHELL: ::c_int = 739; -pub const _SC_SPAWN: ::c_int = 740; -pub const _SC_SPIN_LOCKS: ::c_int = 741; -pub const _SC_SPORADIC_SERVER: ::c_int = 742; -pub const _SC_SS_REPL_MAX: ::c_int = 743; -pub const _SC_SYMLOOP_MAX: ::c_int = 744; -pub const _SC_THREAD_CPUTIME: ::c_int = 745; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 746; -pub const _SC_TIMEOUTS: ::c_int = 747; -pub const _SC_TRACE: ::c_int = 748; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 749; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 750; -pub const _SC_TRACE_INHERIT: ::c_int = 751; -pub const _SC_TRACE_LOG: ::c_int = 752; -pub const _SC_TRACE_NAME_MAX: ::c_int = 753; -pub const _SC_TRACE_SYS_MAX: ::c_int = 754; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 755; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 756; -pub const _SC_V6_ILP32_OFF32: ::c_int = 757; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 758; -pub const _SC_V6_LP64_OFF64: ::c_int = 759; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 760; -pub const _SC_XOPEN_STREAMS: ::c_int = 761; -pub const _SC_IPV6: ::c_int = 762; -pub const _SC_RAW_SOCKETS: ::c_int = 763; +pub const SHM_R: c_int = 0o400; +pub const SHM_W: c_int = 0o200; +pub const SHM_RDONLY: c_int = 0o10000; +pub const SHM_RND: c_int = 0o20000; +pub const SHM_SHARE_MMU: c_int = 0o40000; +pub const SHM_PAGEABLE: c_int = 0o100000; + +pub const SHUT_RD: c_int = 0; +pub const SHUT_WR: c_int = 1; +pub const SHUT_RDWR: c_int = 2; + +pub const F_RDLCK: c_short = 1; +pub const F_WRLCK: c_short = 2; +pub const F_UNLCK: c_short = 3; + +pub const O_SYNC: c_int = 16; +pub const O_NONBLOCK: c_int = 128; + +pub const IPPROTO_RAW: c_int = 255; + +pub const _PC_LINK_MAX: c_int = 1; +pub const _PC_MAX_CANON: c_int = 2; +pub const _PC_MAX_INPUT: c_int = 3; +pub const _PC_NAME_MAX: c_int = 4; +pub const _PC_PATH_MAX: c_int = 5; +pub const _PC_PIPE_BUF: c_int = 6; +pub const _PC_NO_TRUNC: c_int = 7; +pub const _PC_VDISABLE: c_int = 8; +pub const _PC_CHOWN_RESTRICTED: c_int = 9; +pub const _PC_ASYNC_IO: c_int = 10; +pub const _PC_PRIO_IO: c_int = 11; +pub const _PC_SYNC_IO: c_int = 12; +pub const _PC_ALLOC_SIZE_MIN: c_int = 13; +pub const _PC_REC_INCR_XFER_SIZE: c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: c_int = 16; +pub const _PC_REC_XFER_ALIGN: c_int = 17; +pub const _PC_SYMLINK_MAX: c_int = 18; +pub const _PC_2_SYMLINKS: c_int = 19; +pub const _PC_ACL_ENABLED: c_int = 20; +pub const _PC_MIN_HOLE_SIZE: c_int = 21; +pub const _PC_CASE_BEHAVIOR: c_int = 22; +pub const _PC_SATTR_ENABLED: c_int = 23; +pub const _PC_SATTR_EXISTS: c_int = 24; +pub const _PC_ACCESS_FILTERING: c_int = 25; +pub const _PC_TIMESTAMP_RESOLUTION: c_int = 26; +pub const _PC_FILESIZEBITS: c_int = 67; +pub const _PC_XATTR_ENABLED: c_int = 100; +pub const _PC_XATTR_EXISTS: c_int = 101; + +pub const _POSIX_VDISABLE: crate::cc_t = 0; + +pub const _SC_ARG_MAX: c_int = 1; +pub const _SC_CHILD_MAX: c_int = 2; +pub const _SC_CLK_TCK: c_int = 3; +pub const _SC_NGROUPS_MAX: c_int = 4; +pub const _SC_OPEN_MAX: c_int = 5; +pub const _SC_JOB_CONTROL: c_int = 6; +pub const _SC_SAVED_IDS: c_int = 7; +pub const _SC_VERSION: c_int = 8; +pub const _SC_PASS_MAX: c_int = 9; +pub const _SC_LOGNAME_MAX: c_int = 10; +pub const _SC_PAGESIZE: c_int = 11; +pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; +pub const _SC_XOPEN_VERSION: c_int = 12; +pub const _SC_NPROCESSORS_CONF: c_int = 14; +pub const _SC_NPROCESSORS_ONLN: c_int = 15; +pub const _SC_STREAM_MAX: c_int = 16; +pub const _SC_TZNAME_MAX: c_int = 17; +pub const _SC_AIO_LISTIO_MAX: c_int = 18; +pub const _SC_AIO_MAX: c_int = 19; +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 20; +pub const _SC_ASYNCHRONOUS_IO: c_int = 21; +pub const _SC_DELAYTIMER_MAX: c_int = 22; +pub const _SC_FSYNC: c_int = 23; +pub const _SC_MAPPED_FILES: c_int = 24; +pub const _SC_MEMLOCK: c_int = 25; +pub const _SC_MEMLOCK_RANGE: c_int = 26; +pub const _SC_MEMORY_PROTECTION: c_int = 27; +pub const _SC_MESSAGE_PASSING: c_int = 28; +pub const _SC_MQ_OPEN_MAX: c_int = 29; +pub const _SC_MQ_PRIO_MAX: c_int = 30; +pub const _SC_PRIORITIZED_IO: c_int = 31; +pub const _SC_PRIORITY_SCHEDULING: c_int = 32; +pub const _SC_REALTIME_SIGNALS: c_int = 33; +pub const _SC_RTSIG_MAX: c_int = 34; +pub const _SC_SEMAPHORES: c_int = 35; +pub const _SC_SEM_NSEMS_MAX: c_int = 36; +pub const _SC_SEM_VALUE_MAX: c_int = 37; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 38; +pub const _SC_SIGQUEUE_MAX: c_int = 39; +pub const _SC_SIGRT_MIN: c_int = 40; +pub const _SC_SIGRT_MAX: c_int = 41; +pub const _SC_SYNCHRONIZED_IO: c_int = 42; +pub const _SC_TIMERS: c_int = 43; +pub const _SC_TIMER_MAX: c_int = 44; +pub const _SC_2_C_BIND: c_int = 45; +pub const _SC_2_C_DEV: c_int = 46; +pub const _SC_2_C_VERSION: c_int = 47; +pub const _SC_2_FORT_DEV: c_int = 48; +pub const _SC_2_FORT_RUN: c_int = 49; +pub const _SC_2_LOCALEDEF: c_int = 50; +pub const _SC_2_SW_DEV: c_int = 51; +pub const _SC_2_UPE: c_int = 52; +pub const _SC_2_VERSION: c_int = 53; +pub const _SC_BC_BASE_MAX: c_int = 54; +pub const _SC_BC_DIM_MAX: c_int = 55; +pub const _SC_BC_SCALE_MAX: c_int = 56; +pub const _SC_BC_STRING_MAX: c_int = 57; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 58; +pub const _SC_EXPR_NEST_MAX: c_int = 59; +pub const _SC_LINE_MAX: c_int = 60; +pub const _SC_RE_DUP_MAX: c_int = 61; +pub const _SC_XOPEN_CRYPT: c_int = 62; +pub const _SC_XOPEN_ENH_I18N: c_int = 63; +pub const _SC_XOPEN_SHM: c_int = 64; +pub const _SC_2_CHAR_TERM: c_int = 66; +pub const _SC_XOPEN_XCU_VERSION: c_int = 67; +pub const _SC_ATEXIT_MAX: c_int = 76; +pub const _SC_IOV_MAX: c_int = 77; +pub const _SC_XOPEN_UNIX: c_int = 78; +pub const _SC_T_IOV_MAX: c_int = 79; +pub const _SC_PHYS_PAGES: c_int = 500; +pub const _SC_AVPHYS_PAGES: c_int = 501; +pub const _SC_COHER_BLKSZ: c_int = 503; +pub const _SC_SPLIT_CACHE: c_int = 504; +pub const _SC_ICACHE_SZ: c_int = 505; +pub const _SC_DCACHE_SZ: c_int = 506; +pub const _SC_ICACHE_LINESZ: c_int = 507; +pub const _SC_DCACHE_LINESZ: c_int = 508; +pub const _SC_ICACHE_BLKSZ: c_int = 509; +pub const _SC_DCACHE_BLKSZ: c_int = 510; +pub const _SC_DCACHE_TBLKSZ: c_int = 511; +pub const _SC_ICACHE_ASSOC: c_int = 512; +pub const _SC_DCACHE_ASSOC: c_int = 513; +pub const _SC_MAXPID: c_int = 514; +pub const _SC_STACK_PROT: c_int = 515; +pub const _SC_NPROCESSORS_MAX: c_int = 516; +pub const _SC_CPUID_MAX: c_int = 517; +pub const _SC_EPHID_MAX: c_int = 518; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 568; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 569; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 570; +pub const _SC_LOGIN_NAME_MAX: c_int = 571; +pub const _SC_THREAD_KEYS_MAX: c_int = 572; +pub const _SC_THREAD_STACK_MIN: c_int = 573; +pub const _SC_THREAD_THREADS_MAX: c_int = 574; +pub const _SC_TTY_NAME_MAX: c_int = 575; +pub const _SC_THREADS: c_int = 576; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 577; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 578; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 579; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 580; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 581; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 582; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 583; +pub const _SC_XOPEN_LEGACY: c_int = 717; +pub const _SC_XOPEN_REALTIME: c_int = 718; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 719; +pub const _SC_XBS5_ILP32_OFF32: c_int = 720; +pub const _SC_XBS5_ILP32_OFFBIG: c_int = 721; +pub const _SC_XBS5_LP64_OFF64: c_int = 722; +pub const _SC_XBS5_LPBIG_OFFBIG: c_int = 723; +pub const _SC_2_PBS: c_int = 724; +pub const _SC_2_PBS_ACCOUNTING: c_int = 725; +pub const _SC_2_PBS_CHECKPOINT: c_int = 726; +pub const _SC_2_PBS_LOCATE: c_int = 728; +pub const _SC_2_PBS_MESSAGE: c_int = 729; +pub const _SC_2_PBS_TRACK: c_int = 730; +pub const _SC_ADVISORY_INFO: c_int = 731; +pub const _SC_BARRIERS: c_int = 732; +pub const _SC_CLOCK_SELECTION: c_int = 733; +pub const _SC_CPUTIME: c_int = 734; +pub const _SC_HOST_NAME_MAX: c_int = 735; +pub const _SC_MONOTONIC_CLOCK: c_int = 736; +pub const _SC_READER_WRITER_LOCKS: c_int = 737; +pub const _SC_REGEXP: c_int = 738; +pub const _SC_SHELL: c_int = 739; +pub const _SC_SPAWN: c_int = 740; +pub const _SC_SPIN_LOCKS: c_int = 741; +pub const _SC_SPORADIC_SERVER: c_int = 742; +pub const _SC_SS_REPL_MAX: c_int = 743; +pub const _SC_SYMLOOP_MAX: c_int = 744; +pub const _SC_THREAD_CPUTIME: c_int = 745; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 746; +pub const _SC_TIMEOUTS: c_int = 747; +pub const _SC_TRACE: c_int = 748; +pub const _SC_TRACE_EVENT_FILTER: c_int = 749; +pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 750; +pub const _SC_TRACE_INHERIT: c_int = 751; +pub const _SC_TRACE_LOG: c_int = 752; +pub const _SC_TRACE_NAME_MAX: c_int = 753; +pub const _SC_TRACE_SYS_MAX: c_int = 754; +pub const _SC_TRACE_USER_EVENT_MAX: c_int = 755; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 756; +pub const _SC_V6_ILP32_OFF32: c_int = 757; +pub const _SC_V6_ILP32_OFFBIG: c_int = 758; +pub const _SC_V6_LP64_OFF64: c_int = 759; +pub const _SC_V6_LPBIG_OFFBIG: c_int = 760; +pub const _SC_XOPEN_STREAMS: c_int = 761; +pub const _SC_IPV6: c_int = 762; +pub const _SC_RAW_SOCKETS: c_int = 763; pub const _MUTEX_MAGIC: u16 = 0x4d58; // MX pub const _COND_MAGIC: u16 = 0x4356; // CV @@ -2031,7 +2035,7 @@ pub const _RWL_MAGIC: u16 = 0x5257; // RW pub const NCCS: usize = 19; -pub const LOG_CRON: ::c_int = 15 << 3; +pub const LOG_CRON: c_int = 15 << 3; pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { __pthread_mutex_flag1: 0, @@ -2056,134 +2060,134 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { __pthread_rwlock_readercv: PTHREAD_COND_INITIALIZER, __pthread_rwlock_writercv: PTHREAD_COND_INITIALIZER, }; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 4; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = ::PTHREAD_MUTEX_NORMAL; - -pub const RTLD_NEXT: *mut ::c_void = -1isize as *mut ::c_void; -pub const RTLD_DEFAULT: *mut ::c_void = -2isize as *mut ::c_void; -pub const RTLD_SELF: *mut ::c_void = -3isize as *mut ::c_void; -pub const RTLD_PROBE: *mut ::c_void = -4isize as *mut ::c_void; - -pub const RTLD_LAZY: ::c_int = 0x1; -pub const RTLD_NOW: ::c_int = 0x2; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_LOCAL: ::c_int = 0x0; -pub const RTLD_PARENT: ::c_int = 0x200; -pub const RTLD_GROUP: ::c_int = 0x400; -pub const RTLD_WORLD: ::c_int = 0x800; -pub const RTLD_NODELETE: ::c_int = 0x1000; -pub const RTLD_FIRST: ::c_int = 0x2000; -pub const RTLD_CONFGEN: ::c_int = 0x10000; - -pub const PORT_SOURCE_AIO: ::c_int = 1; -pub const PORT_SOURCE_TIMER: ::c_int = 2; -pub const PORT_SOURCE_USER: ::c_int = 3; -pub const PORT_SOURCE_FD: ::c_int = 4; -pub const PORT_SOURCE_ALERT: ::c_int = 5; -pub const PORT_SOURCE_MQ: ::c_int = 6; -pub const PORT_SOURCE_FILE: ::c_int = 7; - -pub const NONROOT_USR: ::c_short = 2; - -pub const EMPTY: ::c_short = 0; -pub const RUN_LVL: ::c_short = 1; -pub const BOOT_TIME: ::c_short = 2; -pub const OLD_TIME: ::c_short = 3; -pub const NEW_TIME: ::c_short = 4; -pub const INIT_PROCESS: ::c_short = 5; -pub const LOGIN_PROCESS: ::c_short = 6; -pub const USER_PROCESS: ::c_short = 7; -pub const DEAD_PROCESS: ::c_short = 8; -pub const ACCOUNTING: ::c_short = 9; -pub const DOWN_TIME: ::c_short = 10; - -const _TIOC: ::c_int = ('T' as i32) << 8; -const tIOC: ::c_int = ('t' as i32) << 8; -pub const TCGETA: ::c_int = _TIOC | 1; -pub const TCSETA: ::c_int = _TIOC | 2; -pub const TCSETAW: ::c_int = _TIOC | 3; -pub const TCSETAF: ::c_int = _TIOC | 4; -pub const TCSBRK: ::c_int = _TIOC | 5; -pub const TCXONC: ::c_int = _TIOC | 6; -pub const TCFLSH: ::c_int = _TIOC | 7; -pub const TCDSET: ::c_int = _TIOC | 32; -pub const TCGETS: ::c_int = _TIOC | 13; -pub const TCSETS: ::c_int = _TIOC | 14; -pub const TCSANOW: ::c_int = _TIOC | 14; -pub const TCSETSW: ::c_int = _TIOC | 15; -pub const TCSADRAIN: ::c_int = _TIOC | 15; -pub const TCSETSF: ::c_int = _TIOC | 16; -pub const TCSAFLUSH: ::c_int = _TIOC | 16; -pub const TCIFLUSH: ::c_int = 0; -pub const TCOFLUSH: ::c_int = 1; -pub const TCIOFLUSH: ::c_int = 2; -pub const TCOOFF: ::c_int = 0; -pub const TCOON: ::c_int = 1; -pub const TCIOFF: ::c_int = 2; -pub const TCION: ::c_int = 3; -pub const TIOC: ::c_int = _TIOC; -pub const TIOCKBON: ::c_int = _TIOC | 8; -pub const TIOCKBOF: ::c_int = _TIOC | 9; -pub const TIOCGWINSZ: ::c_int = _TIOC | 104; -pub const TIOCSWINSZ: ::c_int = _TIOC | 103; -pub const TIOCGSOFTCAR: ::c_int = _TIOC | 105; -pub const TIOCSSOFTCAR: ::c_int = _TIOC | 106; -pub const TIOCGPPS: ::c_int = _TIOC | 125; -pub const TIOCSPPS: ::c_int = _TIOC | 126; -pub const TIOCGPPSEV: ::c_int = _TIOC | 127; -pub const TIOCGETD: ::c_int = tIOC | 0; -pub const TIOCSETD: ::c_int = tIOC | 1; -pub const TIOCHPCL: ::c_int = tIOC | 2; -pub const TIOCGETP: ::c_int = tIOC | 8; -pub const TIOCSETP: ::c_int = tIOC | 9; -pub const TIOCSETN: ::c_int = tIOC | 10; -pub const TIOCEXCL: ::c_int = tIOC | 13; -pub const TIOCNXCL: ::c_int = tIOC | 14; -pub const TIOCFLUSH: ::c_int = tIOC | 16; -pub const TIOCSETC: ::c_int = tIOC | 17; -pub const TIOCGETC: ::c_int = tIOC | 18; -pub const TIOCLBIS: ::c_int = tIOC | 127; -pub const TIOCLBIC: ::c_int = tIOC | 126; -pub const TIOCLSET: ::c_int = tIOC | 125; -pub const TIOCLGET: ::c_int = tIOC | 124; -pub const TIOCSBRK: ::c_int = tIOC | 123; -pub const TIOCCBRK: ::c_int = tIOC | 122; -pub const TIOCSDTR: ::c_int = tIOC | 121; -pub const TIOCCDTR: ::c_int = tIOC | 120; -pub const TIOCSLTC: ::c_int = tIOC | 117; -pub const TIOCGLTC: ::c_int = tIOC | 116; -pub const TIOCOUTQ: ::c_int = tIOC | 115; -pub const TIOCNOTTY: ::c_int = tIOC | 113; -pub const TIOCSCTTY: ::c_int = tIOC | 132; -pub const TIOCSTOP: ::c_int = tIOC | 111; -pub const TIOCSTART: ::c_int = tIOC | 110; -pub const TIOCSILOOP: ::c_int = tIOC | 109; -pub const TIOCCILOOP: ::c_int = tIOC | 108; -pub const TIOCGPGRP: ::c_int = tIOC | 20; -pub const TIOCSPGRP: ::c_int = tIOC | 21; -pub const TIOCGSID: ::c_int = tIOC | 22; -pub const TIOCSTI: ::c_int = tIOC | 23; -pub const TIOCMSET: ::c_int = tIOC | 26; -pub const TIOCMBIS: ::c_int = tIOC | 27; -pub const TIOCMBIC: ::c_int = tIOC | 28; -pub const TIOCMGET: ::c_int = tIOC | 29; -pub const TIOCREMOTE: ::c_int = tIOC | 30; -pub const TIOCSIGNAL: ::c_int = tIOC | 31; - -pub const TIOCM_LE: ::c_int = 0o0001; -pub const TIOCM_DTR: ::c_int = 0o0002; -pub const TIOCM_RTS: ::c_int = 0o0004; -pub const TIOCM_ST: ::c_int = 0o0010; -pub const TIOCM_SR: ::c_int = 0o0020; -pub const TIOCM_CTS: ::c_int = 0o0040; -pub const TIOCM_CAR: ::c_int = 0o0100; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RNG: ::c_int = 0o0200; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; -pub const TIOCM_DSR: ::c_int = 0o0400; +pub const PTHREAD_MUTEX_NORMAL: c_int = 0; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 2; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 4; +pub const PTHREAD_MUTEX_DEFAULT: c_int = crate::PTHREAD_MUTEX_NORMAL; + +pub const RTLD_NEXT: *mut c_void = -1isize as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = -2isize as *mut c_void; +pub const RTLD_SELF: *mut c_void = -3isize as *mut c_void; +pub const RTLD_PROBE: *mut c_void = -4isize as *mut c_void; + +pub const RTLD_LAZY: c_int = 0x1; +pub const RTLD_NOW: c_int = 0x2; +pub const RTLD_NOLOAD: c_int = 0x4; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_LOCAL: c_int = 0x0; +pub const RTLD_PARENT: c_int = 0x200; +pub const RTLD_GROUP: c_int = 0x400; +pub const RTLD_WORLD: c_int = 0x800; +pub const RTLD_NODELETE: c_int = 0x1000; +pub const RTLD_FIRST: c_int = 0x2000; +pub const RTLD_CONFGEN: c_int = 0x10000; + +pub const PORT_SOURCE_AIO: c_int = 1; +pub const PORT_SOURCE_TIMER: c_int = 2; +pub const PORT_SOURCE_USER: c_int = 3; +pub const PORT_SOURCE_FD: c_int = 4; +pub const PORT_SOURCE_ALERT: c_int = 5; +pub const PORT_SOURCE_MQ: c_int = 6; +pub const PORT_SOURCE_FILE: c_int = 7; + +pub const NONROOT_USR: c_short = 2; + +pub const EMPTY: c_short = 0; +pub const RUN_LVL: c_short = 1; +pub const BOOT_TIME: c_short = 2; +pub const OLD_TIME: c_short = 3; +pub const NEW_TIME: c_short = 4; +pub const INIT_PROCESS: c_short = 5; +pub const LOGIN_PROCESS: c_short = 6; +pub const USER_PROCESS: c_short = 7; +pub const DEAD_PROCESS: c_short = 8; +pub const ACCOUNTING: c_short = 9; +pub const DOWN_TIME: c_short = 10; + +const _TIOC: c_int = ('T' as i32) << 8; +const tIOC: c_int = ('t' as i32) << 8; +pub const TCGETA: c_int = _TIOC | 1; +pub const TCSETA: c_int = _TIOC | 2; +pub const TCSETAW: c_int = _TIOC | 3; +pub const TCSETAF: c_int = _TIOC | 4; +pub const TCSBRK: c_int = _TIOC | 5; +pub const TCXONC: c_int = _TIOC | 6; +pub const TCFLSH: c_int = _TIOC | 7; +pub const TCDSET: c_int = _TIOC | 32; +pub const TCGETS: c_int = _TIOC | 13; +pub const TCSETS: c_int = _TIOC | 14; +pub const TCSANOW: c_int = _TIOC | 14; +pub const TCSETSW: c_int = _TIOC | 15; +pub const TCSADRAIN: c_int = _TIOC | 15; +pub const TCSETSF: c_int = _TIOC | 16; +pub const TCSAFLUSH: c_int = _TIOC | 16; +pub const TCIFLUSH: c_int = 0; +pub const TCOFLUSH: c_int = 1; +pub const TCIOFLUSH: c_int = 2; +pub const TCOOFF: c_int = 0; +pub const TCOON: c_int = 1; +pub const TCIOFF: c_int = 2; +pub const TCION: c_int = 3; +pub const TIOC: c_int = _TIOC; +pub const TIOCKBON: c_int = _TIOC | 8; +pub const TIOCKBOF: c_int = _TIOC | 9; +pub const TIOCGWINSZ: c_int = _TIOC | 104; +pub const TIOCSWINSZ: c_int = _TIOC | 103; +pub const TIOCGSOFTCAR: c_int = _TIOC | 105; +pub const TIOCSSOFTCAR: c_int = _TIOC | 106; +pub const TIOCGPPS: c_int = _TIOC | 125; +pub const TIOCSPPS: c_int = _TIOC | 126; +pub const TIOCGPPSEV: c_int = _TIOC | 127; +pub const TIOCGETD: c_int = tIOC | 0; +pub const TIOCSETD: c_int = tIOC | 1; +pub const TIOCHPCL: c_int = tIOC | 2; +pub const TIOCGETP: c_int = tIOC | 8; +pub const TIOCSETP: c_int = tIOC | 9; +pub const TIOCSETN: c_int = tIOC | 10; +pub const TIOCEXCL: c_int = tIOC | 13; +pub const TIOCNXCL: c_int = tIOC | 14; +pub const TIOCFLUSH: c_int = tIOC | 16; +pub const TIOCSETC: c_int = tIOC | 17; +pub const TIOCGETC: c_int = tIOC | 18; +pub const TIOCLBIS: c_int = tIOC | 127; +pub const TIOCLBIC: c_int = tIOC | 126; +pub const TIOCLSET: c_int = tIOC | 125; +pub const TIOCLGET: c_int = tIOC | 124; +pub const TIOCSBRK: c_int = tIOC | 123; +pub const TIOCCBRK: c_int = tIOC | 122; +pub const TIOCSDTR: c_int = tIOC | 121; +pub const TIOCCDTR: c_int = tIOC | 120; +pub const TIOCSLTC: c_int = tIOC | 117; +pub const TIOCGLTC: c_int = tIOC | 116; +pub const TIOCOUTQ: c_int = tIOC | 115; +pub const TIOCNOTTY: c_int = tIOC | 113; +pub const TIOCSCTTY: c_int = tIOC | 132; +pub const TIOCSTOP: c_int = tIOC | 111; +pub const TIOCSTART: c_int = tIOC | 110; +pub const TIOCSILOOP: c_int = tIOC | 109; +pub const TIOCCILOOP: c_int = tIOC | 108; +pub const TIOCGPGRP: c_int = tIOC | 20; +pub const TIOCSPGRP: c_int = tIOC | 21; +pub const TIOCGSID: c_int = tIOC | 22; +pub const TIOCSTI: c_int = tIOC | 23; +pub const TIOCMSET: c_int = tIOC | 26; +pub const TIOCMBIS: c_int = tIOC | 27; +pub const TIOCMBIC: c_int = tIOC | 28; +pub const TIOCMGET: c_int = tIOC | 29; +pub const TIOCREMOTE: c_int = tIOC | 30; +pub const TIOCSIGNAL: c_int = tIOC | 31; + +pub const TIOCM_LE: c_int = 0o0001; +pub const TIOCM_DTR: c_int = 0o0002; +pub const TIOCM_RTS: c_int = 0o0004; +pub const TIOCM_ST: c_int = 0o0010; +pub const TIOCM_SR: c_int = 0o0020; +pub const TIOCM_CTS: c_int = 0o0040; +pub const TIOCM_CAR: c_int = 0o0100; +pub const TIOCM_CD: c_int = TIOCM_CAR; +pub const TIOCM_RNG: c_int = 0o0200; +pub const TIOCM_RI: c_int = TIOCM_RNG; +pub const TIOCM_DSR: c_int = 0o0400; /* termios */ pub const B0: speed_t = 0; @@ -2210,64 +2214,64 @@ pub const B230400: speed_t = 20; pub const B307200: speed_t = 21; pub const B460800: speed_t = 22; pub const B921600: speed_t = 23; -pub const CSTART: ::tcflag_t = 0o21; -pub const CSTOP: ::tcflag_t = 0o23; -pub const CSWTCH: ::tcflag_t = 0o32; -pub const CBAUD: ::tcflag_t = 0o17; -pub const CIBAUD: ::tcflag_t = 0o3600000; -pub const CBAUDEXT: ::tcflag_t = 0o10000000; -pub const CIBAUDEXT: ::tcflag_t = 0o20000000; -pub const CSIZE: ::tcflag_t = 0o000060; -pub const CS5: ::tcflag_t = 0; -pub const CS6: ::tcflag_t = 0o000020; -pub const CS7: ::tcflag_t = 0o000040; -pub const CS8: ::tcflag_t = 0o000060; -pub const CSTOPB: ::tcflag_t = 0o000100; -pub const ECHO: ::tcflag_t = 0o000010; -pub const ECHOE: ::tcflag_t = 0o000020; -pub const ECHOK: ::tcflag_t = 0o000040; -pub const ECHONL: ::tcflag_t = 0o000100; -pub const ECHOCTL: ::tcflag_t = 0o001000; -pub const ECHOPRT: ::tcflag_t = 0o002000; -pub const ECHOKE: ::tcflag_t = 0o004000; -pub const EXTPROC: ::tcflag_t = 0o200000; -pub const IGNBRK: ::tcflag_t = 0o000001; -pub const BRKINT: ::tcflag_t = 0o000002; -pub const IGNPAR: ::tcflag_t = 0o000004; -pub const PARMRK: ::tcflag_t = 0o000010; -pub const INPCK: ::tcflag_t = 0o000020; -pub const ISTRIP: ::tcflag_t = 0o000040; -pub const INLCR: ::tcflag_t = 0o000100; -pub const IGNCR: ::tcflag_t = 0o000200; -pub const ICRNL: ::tcflag_t = 0o000400; -pub const IUCLC: ::tcflag_t = 0o001000; -pub const IXON: ::tcflag_t = 0o002000; -pub const IXOFF: ::tcflag_t = 0o010000; -pub const IXANY: ::tcflag_t = 0o004000; -pub const IMAXBEL: ::tcflag_t = 0o020000; -pub const DOSMODE: ::tcflag_t = 0o100000; -pub const OPOST: ::tcflag_t = 0o000001; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const ONLCR: ::tcflag_t = 0o000004; -pub const OCRNL: ::tcflag_t = 0o000010; -pub const ONOCR: ::tcflag_t = 0o000020; -pub const ONLRET: ::tcflag_t = 0o000040; -pub const OFILL: ::tcflag_t = 0o0000100; -pub const OFDEL: ::tcflag_t = 0o0000200; -pub const CREAD: ::tcflag_t = 0o000200; -pub const PARENB: ::tcflag_t = 0o000400; -pub const PARODD: ::tcflag_t = 0o001000; -pub const HUPCL: ::tcflag_t = 0o002000; -pub const CLOCAL: ::tcflag_t = 0o004000; -pub const CRTSXOFF: ::tcflag_t = 0o10000000000; -pub const CRTSCTS: ::tcflag_t = 0o20000000000; -pub const ISIG: ::tcflag_t = 0o000001; -pub const ICANON: ::tcflag_t = 0o000002; -pub const IEXTEN: ::tcflag_t = 0o100000; -pub const TOSTOP: ::tcflag_t = 0o000400; -pub const FLUSHO: ::tcflag_t = 0o020000; -pub const PENDIN: ::tcflag_t = 0o040000; -pub const NOFLSH: ::tcflag_t = 0o000200; +pub const CSTART: crate::tcflag_t = 0o21; +pub const CSTOP: crate::tcflag_t = 0o23; +pub const CSWTCH: crate::tcflag_t = 0o32; +pub const CBAUD: crate::tcflag_t = 0o17; +pub const CIBAUD: crate::tcflag_t = 0o3600000; +pub const CBAUDEXT: crate::tcflag_t = 0o10000000; +pub const CIBAUDEXT: crate::tcflag_t = 0o20000000; +pub const CSIZE: crate::tcflag_t = 0o000060; +pub const CS5: crate::tcflag_t = 0; +pub const CS6: crate::tcflag_t = 0o000020; +pub const CS7: crate::tcflag_t = 0o000040; +pub const CS8: crate::tcflag_t = 0o000060; +pub const CSTOPB: crate::tcflag_t = 0o000100; +pub const ECHO: crate::tcflag_t = 0o000010; +pub const ECHOE: crate::tcflag_t = 0o000020; +pub const ECHOK: crate::tcflag_t = 0o000040; +pub const ECHONL: crate::tcflag_t = 0o000100; +pub const ECHOCTL: crate::tcflag_t = 0o001000; +pub const ECHOPRT: crate::tcflag_t = 0o002000; +pub const ECHOKE: crate::tcflag_t = 0o004000; +pub const EXTPROC: crate::tcflag_t = 0o200000; +pub const IGNBRK: crate::tcflag_t = 0o000001; +pub const BRKINT: crate::tcflag_t = 0o000002; +pub const IGNPAR: crate::tcflag_t = 0o000004; +pub const PARMRK: crate::tcflag_t = 0o000010; +pub const INPCK: crate::tcflag_t = 0o000020; +pub const ISTRIP: crate::tcflag_t = 0o000040; +pub const INLCR: crate::tcflag_t = 0o000100; +pub const IGNCR: crate::tcflag_t = 0o000200; +pub const ICRNL: crate::tcflag_t = 0o000400; +pub const IUCLC: crate::tcflag_t = 0o001000; +pub const IXON: crate::tcflag_t = 0o002000; +pub const IXOFF: crate::tcflag_t = 0o010000; +pub const IXANY: crate::tcflag_t = 0o004000; +pub const IMAXBEL: crate::tcflag_t = 0o020000; +pub const DOSMODE: crate::tcflag_t = 0o100000; +pub const OPOST: crate::tcflag_t = 0o000001; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const ONLCR: crate::tcflag_t = 0o000004; +pub const OCRNL: crate::tcflag_t = 0o000010; +pub const ONOCR: crate::tcflag_t = 0o000020; +pub const ONLRET: crate::tcflag_t = 0o000040; +pub const OFILL: crate::tcflag_t = 0o0000100; +pub const OFDEL: crate::tcflag_t = 0o0000200; +pub const CREAD: crate::tcflag_t = 0o000200; +pub const PARENB: crate::tcflag_t = 0o000400; +pub const PARODD: crate::tcflag_t = 0o001000; +pub const HUPCL: crate::tcflag_t = 0o002000; +pub const CLOCAL: crate::tcflag_t = 0o004000; +pub const CRTSXOFF: crate::tcflag_t = 0o10000000000; +pub const CRTSCTS: crate::tcflag_t = 0o20000000000; +pub const ISIG: crate::tcflag_t = 0o000001; +pub const ICANON: crate::tcflag_t = 0o000002; +pub const IEXTEN: crate::tcflag_t = 0o100000; +pub const TOSTOP: crate::tcflag_t = 0o000400; +pub const FLUSHO: crate::tcflag_t = 0o020000; +pub const PENDIN: crate::tcflag_t = 0o040000; +pub const NOFLSH: crate::tcflag_t = 0o000200; pub const VINTR: usize = 0; pub const VQUIT: usize = 1; pub const VERASE: usize = 2; @@ -2288,67 +2292,67 @@ pub const VWERASE: usize = 14; pub const VLNEXT: usize = 15; // -const STR: ::c_int = (b'S' as ::c_int) << 8; -pub const I_NREAD: ::c_int = STR | 0o1; -pub const I_PUSH: ::c_int = STR | 0o2; -pub const I_POP: ::c_int = STR | 0o3; -pub const I_LOOK: ::c_int = STR | 0o4; -pub const I_FLUSH: ::c_int = STR | 0o5; -pub const I_SRDOPT: ::c_int = STR | 0o6; -pub const I_GRDOPT: ::c_int = STR | 0o7; -pub const I_STR: ::c_int = STR | 0o10; -pub const I_SETSIG: ::c_int = STR | 0o11; -pub const I_GETSIG: ::c_int = STR | 0o12; -pub const I_FIND: ::c_int = STR | 0o13; -pub const I_LINK: ::c_int = STR | 0o14; -pub const I_UNLINK: ::c_int = STR | 0o15; -pub const I_PEEK: ::c_int = STR | 0o17; -pub const I_FDINSERT: ::c_int = STR | 0o20; -pub const I_SENDFD: ::c_int = STR | 0o21; -pub const I_RECVFD: ::c_int = STR | 0o16; -pub const I_SWROPT: ::c_int = STR | 0o23; -pub const I_GWROPT: ::c_int = STR | 0o24; -pub const I_LIST: ::c_int = STR | 0o25; -pub const I_PLINK: ::c_int = STR | 0o26; -pub const I_PUNLINK: ::c_int = STR | 0o27; -pub const I_ANCHOR: ::c_int = STR | 0o30; -pub const I_FLUSHBAND: ::c_int = STR | 0o34; -pub const I_CKBAND: ::c_int = STR | 0o35; -pub const I_GETBAND: ::c_int = STR | 0o36; -pub const I_ATMARK: ::c_int = STR | 0o37; -pub const I_SETCLTIME: ::c_int = STR | 0o40; -pub const I_GETCLTIME: ::c_int = STR | 0o41; -pub const I_CANPUT: ::c_int = STR | 0o42; -pub const I_SERROPT: ::c_int = STR | 0o43; -pub const I_GERROPT: ::c_int = STR | 0o44; -pub const I_ESETSIG: ::c_int = STR | 0o45; -pub const I_EGETSIG: ::c_int = STR | 0o46; -pub const __I_PUSH_NOCTTY: ::c_int = STR | 0o47; +const STR: c_int = (b'S' as c_int) << 8; +pub const I_NREAD: c_int = STR | 0o1; +pub const I_PUSH: c_int = STR | 0o2; +pub const I_POP: c_int = STR | 0o3; +pub const I_LOOK: c_int = STR | 0o4; +pub const I_FLUSH: c_int = STR | 0o5; +pub const I_SRDOPT: c_int = STR | 0o6; +pub const I_GRDOPT: c_int = STR | 0o7; +pub const I_STR: c_int = STR | 0o10; +pub const I_SETSIG: c_int = STR | 0o11; +pub const I_GETSIG: c_int = STR | 0o12; +pub const I_FIND: c_int = STR | 0o13; +pub const I_LINK: c_int = STR | 0o14; +pub const I_UNLINK: c_int = STR | 0o15; +pub const I_PEEK: c_int = STR | 0o17; +pub const I_FDINSERT: c_int = STR | 0o20; +pub const I_SENDFD: c_int = STR | 0o21; +pub const I_RECVFD: c_int = STR | 0o16; +pub const I_SWROPT: c_int = STR | 0o23; +pub const I_GWROPT: c_int = STR | 0o24; +pub const I_LIST: c_int = STR | 0o25; +pub const I_PLINK: c_int = STR | 0o26; +pub const I_PUNLINK: c_int = STR | 0o27; +pub const I_ANCHOR: c_int = STR | 0o30; +pub const I_FLUSHBAND: c_int = STR | 0o34; +pub const I_CKBAND: c_int = STR | 0o35; +pub const I_GETBAND: c_int = STR | 0o36; +pub const I_ATMARK: c_int = STR | 0o37; +pub const I_SETCLTIME: c_int = STR | 0o40; +pub const I_GETCLTIME: c_int = STR | 0o41; +pub const I_CANPUT: c_int = STR | 0o42; +pub const I_SERROPT: c_int = STR | 0o43; +pub const I_GERROPT: c_int = STR | 0o44; +pub const I_ESETSIG: c_int = STR | 0o45; +pub const I_EGETSIG: c_int = STR | 0o46; +pub const __I_PUSH_NOCTTY: c_int = STR | 0o47; // 3SOCKET flags -pub const SOCK_CLOEXEC: ::c_int = 0x080000; -pub const SOCK_NONBLOCK: ::c_int = 0x100000; -pub const SOCK_NDELAY: ::c_int = 0x200000; +pub const SOCK_CLOEXEC: c_int = 0x080000; +pub const SOCK_NONBLOCK: c_int = 0x100000; +pub const SOCK_NDELAY: c_int = 0x200000; // -pub const SCALE_KG: ::c_int = 1 << 6; -pub const SCALE_KF: ::c_int = 1 << 16; -pub const SCALE_KH: ::c_int = 1 << 2; -pub const MAXTC: ::c_int = 1 << 6; -pub const SCALE_PHASE: ::c_int = 1 << 22; -pub const SCALE_USEC: ::c_int = 1 << 16; -pub const SCALE_UPDATE: ::c_int = SCALE_KG * MAXTC; -pub const FINEUSEC: ::c_int = 1 << 22; -pub const MAXPHASE: ::c_int = 512000; -pub const MAXFREQ: ::c_int = 512 * SCALE_USEC; -pub const MAXTIME: ::c_int = 200 << PPS_AVG; -pub const MINSEC: ::c_int = 16; -pub const MAXSEC: ::c_int = 1200; -pub const PPS_AVG: ::c_int = 2; -pub const PPS_SHIFT: ::c_int = 2; -pub const PPS_SHIFTMAX: ::c_int = 8; -pub const PPS_VALID: ::c_int = 120; -pub const MAXGLITCH: ::c_int = 30; +pub const SCALE_KG: c_int = 1 << 6; +pub const SCALE_KF: c_int = 1 << 16; +pub const SCALE_KH: c_int = 1 << 2; +pub const MAXTC: c_int = 1 << 6; +pub const SCALE_PHASE: c_int = 1 << 22; +pub const SCALE_USEC: c_int = 1 << 16; +pub const SCALE_UPDATE: c_int = SCALE_KG * MAXTC; +pub const FINEUSEC: c_int = 1 << 22; +pub const MAXPHASE: c_int = 512000; +pub const MAXFREQ: c_int = 512 * SCALE_USEC; +pub const MAXTIME: c_int = 200 << PPS_AVG; +pub const MINSEC: c_int = 16; +pub const MAXSEC: c_int = 1200; +pub const PPS_AVG: c_int = 2; +pub const PPS_SHIFT: c_int = 2; +pub const PPS_SHIFTMAX: c_int = 8; +pub const PPS_VALID: c_int = 120; +pub const MAXGLITCH: c_int = 30; pub const MOD_OFFSET: u32 = 0x0001; pub const MOD_FREQUENCY: u32 = 0x0002; pub const MOD_MAXERROR: u32 = 0x0004; @@ -2379,77 +2383,77 @@ pub const TIME_OOP: i32 = 3; pub const TIME_WAIT: i32 = 4; pub const TIME_ERROR: i32 = 5; -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; +pub const PRIO_PROCESS: c_int = 0; +pub const PRIO_PGRP: c_int = 1; +pub const PRIO_USER: c_int = 2; -pub const SCHED_OTHER: ::c_int = 0; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; -pub const SCHED_SYS: ::c_int = 3; -pub const SCHED_IA: ::c_int = 4; -pub const SCHED_FSS: ::c_int = 5; -pub const SCHED_FX: ::c_int = 6; +pub const SCHED_OTHER: c_int = 0; +pub const SCHED_FIFO: c_int = 1; +pub const SCHED_RR: c_int = 2; +pub const SCHED_SYS: c_int = 3; +pub const SCHED_IA: c_int = 4; +pub const SCHED_FSS: c_int = 5; +pub const SCHED_FX: c_int = 6; // sys/priv.h -pub const PRIV_DEBUG: ::c_uint = 0x0001; -pub const PRIV_AWARE: ::c_uint = 0x0002; -pub const PRIV_AWARE_INHERIT: ::c_uint = 0x0004; -pub const __PROC_PROTECT: ::c_uint = 0x0008; -pub const NET_MAC_AWARE: ::c_uint = 0x0010; -pub const NET_MAC_AWARE_INHERIT: ::c_uint = 0x0020; -pub const PRIV_AWARE_RESET: ::c_uint = 0x0040; -pub const PRIV_XPOLICY: ::c_uint = 0x0080; -pub const PRIV_PFEXEC: ::c_uint = 0x0100; +pub const PRIV_DEBUG: c_uint = 0x0001; +pub const PRIV_AWARE: c_uint = 0x0002; +pub const PRIV_AWARE_INHERIT: c_uint = 0x0004; +pub const __PROC_PROTECT: c_uint = 0x0008; +pub const NET_MAC_AWARE: c_uint = 0x0010; +pub const NET_MAC_AWARE_INHERIT: c_uint = 0x0020; +pub const PRIV_AWARE_RESET: c_uint = 0x0040; +pub const PRIV_XPOLICY: c_uint = 0x0080; +pub const PRIV_PFEXEC: c_uint = 0x0100; // sys/systeminfo.h -pub const SI_SYSNAME: ::c_int = 1; -pub const SI_HOSTNAME: ::c_int = 2; -pub const SI_RELEASE: ::c_int = 3; -pub const SI_VERSION: ::c_int = 4; -pub const SI_MACHINE: ::c_int = 5; -pub const SI_ARCHITECTURE: ::c_int = 6; -pub const SI_HW_SERIAL: ::c_int = 7; -pub const SI_HW_PROVIDER: ::c_int = 8; -pub const SI_SET_HOSTNAME: ::c_int = 258; -pub const SI_SET_SRPC_DOMAIN: ::c_int = 265; -pub const SI_PLATFORM: ::c_int = 513; -pub const SI_ISALIST: ::c_int = 514; -pub const SI_DHCP_CACHE: ::c_int = 515; -pub const SI_ARCHITECTURE_32: ::c_int = 516; -pub const SI_ARCHITECTURE_64: ::c_int = 517; -pub const SI_ARCHITECTURE_K: ::c_int = 518; -pub const SI_ARCHITECTURE_NATIVE: ::c_int = 519; +pub const SI_SYSNAME: c_int = 1; +pub const SI_HOSTNAME: c_int = 2; +pub const SI_RELEASE: c_int = 3; +pub const SI_VERSION: c_int = 4; +pub const SI_MACHINE: c_int = 5; +pub const SI_ARCHITECTURE: c_int = 6; +pub const SI_HW_SERIAL: c_int = 7; +pub const SI_HW_PROVIDER: c_int = 8; +pub const SI_SET_HOSTNAME: c_int = 258; +pub const SI_SET_SRPC_DOMAIN: c_int = 265; +pub const SI_PLATFORM: c_int = 513; +pub const SI_ISALIST: c_int = 514; +pub const SI_DHCP_CACHE: c_int = 515; +pub const SI_ARCHITECTURE_32: c_int = 516; +pub const SI_ARCHITECTURE_64: c_int = 517; +pub const SI_ARCHITECTURE_K: c_int = 518; +pub const SI_ARCHITECTURE_NATIVE: c_int = 519; // sys/lgrp_user.h -pub const LGRP_COOKIE_NONE: ::lgrp_cookie_t = 0; -pub const LGRP_AFF_NONE: ::lgrp_affinity_t = 0x0; -pub const LGRP_AFF_WEAK: ::lgrp_affinity_t = 0x10; -pub const LGRP_AFF_STRONG: ::lgrp_affinity_t = 0x100; -pub const LGRP_CONTENT_ALL: ::lgrp_content_t = 0; -pub const LGRP_CONTENT_HIERARCHY: ::lgrp_content_t = LGRP_CONTENT_ALL; -pub const LGRP_CONTENT_DIRECT: ::lgrp_content_t = 1; -pub const LGRP_LAT_CPU_TO_MEM: ::lgrp_lat_between_t = 0; -pub const LGRP_MEM_SZ_FREE: ::lgrp_mem_size_flag_t = 0; -pub const LGRP_MEM_SZ_INSTALLED: ::lgrp_mem_size_flag_t = 1; -pub const LGRP_VIEW_CALLER: ::lgrp_view_t = 0; -pub const LGRP_VIEW_OS: ::lgrp_view_t = 1; +pub const LGRP_COOKIE_NONE: crate::lgrp_cookie_t = 0; +pub const LGRP_AFF_NONE: crate::lgrp_affinity_t = 0x0; +pub const LGRP_AFF_WEAK: crate::lgrp_affinity_t = 0x10; +pub const LGRP_AFF_STRONG: crate::lgrp_affinity_t = 0x100; +pub const LGRP_CONTENT_ALL: crate::lgrp_content_t = 0; +pub const LGRP_CONTENT_HIERARCHY: crate::lgrp_content_t = LGRP_CONTENT_ALL; +pub const LGRP_CONTENT_DIRECT: crate::lgrp_content_t = 1; +pub const LGRP_LAT_CPU_TO_MEM: crate::lgrp_lat_between_t = 0; +pub const LGRP_MEM_SZ_FREE: crate::lgrp_mem_size_flag_t = 0; +pub const LGRP_MEM_SZ_INSTALLED: crate::lgrp_mem_size_flag_t = 1; +pub const LGRP_VIEW_CALLER: crate::lgrp_view_t = 0; +pub const LGRP_VIEW_OS: crate::lgrp_view_t = 1; // sys/processor.h -pub const P_OFFLINE: ::c_int = 0x001; -pub const P_ONLINE: ::c_int = 0x002; -pub const P_STATUS: ::c_int = 0x003; -pub const P_FAULTED: ::c_int = 0x004; -pub const P_POWEROFF: ::c_int = 0x005; -pub const P_NOINTR: ::c_int = 0x006; -pub const P_SPARE: ::c_int = 0x007; -pub const P_FORCED: ::c_int = 0x10000000; -pub const PI_TYPELEN: ::c_int = 16; -pub const PI_FPUTYPE: ::c_int = 32; +pub const P_OFFLINE: c_int = 0x001; +pub const P_ONLINE: c_int = 0x002; +pub const P_STATUS: c_int = 0x003; +pub const P_FAULTED: c_int = 0x004; +pub const P_POWEROFF: c_int = 0x005; +pub const P_NOINTR: c_int = 0x006; +pub const P_SPARE: c_int = 0x007; +pub const P_FORCED: c_int = 0x10000000; +pub const PI_TYPELEN: c_int = 16; +pub const PI_FPUTYPE: c_int = 32; // sys/auxv.h -pub const AT_SUN_HWCAP: ::c_uint = 2009; +pub const AT_SUN_HWCAP: c_uint = 2009; // As per sys/socket.h, header alignment must be 8 bytes on SPARC // and 4 bytes everywhere else: @@ -2458,12 +2462,12 @@ const _CMSG_HDR_ALIGNMENT: usize = 8; #[cfg(not(target_arch = "sparc64"))] const _CMSG_HDR_ALIGNMENT: usize = 4; -const _CMSG_DATA_ALIGNMENT: usize = size_of::<::c_int>(); +const _CMSG_DATA_ALIGNMENT: usize = size_of::(); -const NEWDEV: ::c_int = 1; +const NEWDEV: c_int = 1; // sys/sendfile.h -pub const SFV_FD_SELF: ::c_int = -2; +pub const SFV_FD_SELF: c_int = -2; const_fn! { {const} fn _CMSG_HDR_ALIGN(p: usize) -> usize { @@ -2476,56 +2480,55 @@ const_fn! { } f! { - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - _CMSG_DATA_ALIGN(cmsg.offset(1) as usize) as *mut ::c_uchar + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { + _CMSG_DATA_ALIGN(cmsg.offset(1) as usize) as *mut c_uchar } - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - _CMSG_DATA_ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length + pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + _CMSG_DATA_ALIGN(crate::mem::size_of::()) as c_uint + length } - pub fn CMSG_FIRSTHDR(mhdr: *const ::msghdr) -> *mut ::cmsghdr { - if ((*mhdr).msg_controllen as usize) < size_of::<::cmsghdr>() { - 0 as *mut ::cmsghdr + pub fn CMSG_FIRSTHDR(mhdr: *const crate::msghdr) -> *mut cmsghdr { + if ((*mhdr).msg_controllen as usize) < size_of::() { + 0 as *mut cmsghdr } else { - (*mhdr).msg_control as *mut ::cmsghdr + (*mhdr).msg_control as *mut cmsghdr } } - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { + pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { - return ::CMSG_FIRSTHDR(mhdr); + return crate::CMSG_FIRSTHDR(mhdr); }; - let next = _CMSG_HDR_ALIGN( - cmsg as usize + (*cmsg).cmsg_len as usize + size_of::<::cmsghdr>(), - ); + let next = + _CMSG_HDR_ALIGN(cmsg as usize + (*cmsg).cmsg_len as usize + size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { - 0 as *mut ::cmsghdr + 0 as *mut cmsghdr } else { - _CMSG_HDR_ALIGN(cmsg as usize + (*cmsg).cmsg_len as usize) as *mut ::cmsghdr + _CMSG_HDR_ALIGN(cmsg as usize + (*cmsg).cmsg_len as usize) as *mut cmsghdr } } - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - _CMSG_HDR_ALIGN(size_of::<::cmsghdr>() as usize + length as usize) as ::c_uint + pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + _CMSG_HDR_ALIGN(size_of::() as usize + length as usize) as c_uint } - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { + let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); return; } - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { + let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0; } - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { + let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] |= 1 << (fd % bits); return; @@ -2539,378 +2542,390 @@ f! { } safe_f! { - pub {const} fn WIFEXITED(status: ::c_int) -> bool { + pub {const} fn WIFEXITED(status: c_int) -> bool { (status & 0xFF) == 0 } - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + pub {const} fn WEXITSTATUS(status: c_int) -> c_int { (status >> 8) & 0xFF } - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + pub {const} fn WTERMSIG(status: c_int) -> c_int { status & 0x7F } - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + pub {const} fn WIFCONTINUED(status: c_int) -> bool { (status & 0xffff) == 0xffff } - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + pub {const} fn WSTOPSIG(status: c_int) -> c_int { (status & 0xff00) >> 8 } - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + pub {const} fn WIFSIGNALED(status: c_int) -> bool { ((status & 0xff) > 0) && (status & 0xff00 == 0) } - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + pub {const} fn WIFSTOPPED(status: c_int) -> bool { ((status & 0xff) == 0x7f) && ((status & 0xff00) != 0) } - pub {const} fn WCOREDUMP(status: ::c_int) -> bool { + pub {const} fn WCOREDUMP(status: c_int) -> bool { (status & 0x80) != 0 } - pub {const} fn MR_GET_TYPE(flags: ::c_uint) -> ::c_uint { + pub {const} fn MR_GET_TYPE(flags: c_uint) -> c_uint { flags & 0x0000ffff } } extern "C" { - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; + pub fn getrlimit(resource: c_int, rlim: *mut crate::rlimit) -> c_int; + pub fn setrlimit(resource: c_int, rlim: *const crate::rlimit) -> c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; + pub fn sem_destroy(sem: *mut sem_t) -> c_int; + pub fn sem_init(sem: *mut sem_t, pshared: c_int, value: c_uint) -> c_int; - pub fn abs(i: ::c_int) -> ::c_int; - pub fn acct(filename: *const ::c_char) -> ::c_int; - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn labs(i: ::c_long) -> ::c_long; - pub fn rand() -> ::c_int; - pub fn srand(seed: ::c_uint); - pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; - pub fn getrandom(bbuf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; + pub fn abs(i: c_int) -> c_int; + pub fn acct(filename: *const c_char) -> c_int; + pub fn dirfd(dirp: *mut crate::DIR) -> c_int; + pub fn labs(i: c_long) -> c_long; + pub fn rand() -> c_int; + pub fn srand(seed: c_uint); + pub fn getentropy(buf: *mut c_void, buflen: size_t) -> c_int; + pub fn getrandom(bbuf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn settimeofday(tp: *const ::timeval, tz: *const ::c_void) -> ::c_int; - pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; - pub fn freeifaddrs(ifa: *mut ::ifaddrs); + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut c_void) -> c_int; + pub fn settimeofday(tp: *const crate::timeval, tz: *const c_void) -> c_int; + pub fn getifaddrs(ifap: *mut *mut crate::ifaddrs) -> c_int; + pub fn freeifaddrs(ifa: *mut crate::ifaddrs); - pub fn stack_getbounds(sp: *mut ::stack_t) -> ::c_int; + pub fn stack_getbounds(sp: *mut crate::stack_t) -> c_int; pub fn getgrouplist( - name: *const ::c_char, - basegid: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int, - ) -> ::c_int; - pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; - pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int; - pub fn ioctl(fildes: ::c_int, request: ::c_int, ...) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn ___errno() -> *mut ::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; + name: *const c_char, + basegid: crate::gid_t, + groups: *mut crate::gid_t, + ngroups: *mut c_int, + ) -> c_int; + pub fn initgroups(name: *const c_char, basegid: crate::gid_t) -> c_int; + pub fn setgroups(ngroups: c_int, ptr: *const crate::gid_t) -> c_int; + pub fn ioctl(fildes: c_int, request: c_int, ...) -> c_int; + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; + pub fn ___errno() -> *mut c_int; + pub fn clock_getres(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; - pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + clk_id: crate::clockid_t, + flags: c_int, + rqtp: *const crate::timespec, + rmtp: *mut crate::timespec, + ) -> c_int; + pub fn clock_settime(clk_id: crate::clockid_t, tp: *const crate::timespec) -> c_int; pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - servlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; + sa: *const crate::sockaddr, + salen: crate::socklen_t, + host: *mut c_char, + hostlen: crate::socklen_t, + serv: *mut c_char, + servlen: crate::socklen_t, + flags: c_int, + ) -> c_int; pub fn setpwent(); pub fn endpwent(); pub fn getpwent() -> *mut passwd; - pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; - pub fn duplocale(base: ::locale_t) -> ::locale_t; - pub fn freelocale(loc: ::locale_t); - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; - pub fn uselocale(loc: ::locale_t) -> ::locale_t; - pub fn getprogname() -> *const ::c_char; - pub fn setprogname(name: *const ::c_char); - pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; - pub fn getpriority(which: ::c_int, who: ::c_int) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::c_int, prio: ::c_int) -> ::c_int; - - pub fn mknodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - dev: dev_t, - ) -> ::c_int; - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; - pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int; + pub fn fdatasync(fd: c_int) -> c_int; + pub fn nl_langinfo_l(item: crate::nl_item, locale: crate::locale_t) -> *mut c_char; + pub fn duplocale(base: crate::locale_t) -> crate::locale_t; + pub fn freelocale(loc: crate::locale_t); + pub fn newlocale(mask: c_int, locale: *const c_char, base: crate::locale_t) -> crate::locale_t; + pub fn uselocale(loc: crate::locale_t) -> crate::locale_t; + pub fn getprogname() -> *const c_char; + pub fn setprogname(name: *const c_char); + pub fn getloadavg(loadavg: *mut c_double, nelem: c_int) -> c_int; + pub fn getpriority(which: c_int, who: c_int) -> c_int; + pub fn setpriority(which: c_int, who: c_int, prio: c_int) -> c_int; + + pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t, dev: dev_t) + -> c_int; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; + pub fn sethostname(name: *const c_char, len: c_int) -> c_int; pub fn if_nameindex() -> *mut if_nameindex; pub fn if_freenameindex(ptr: *mut if_nameindex); pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; + native: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + f: extern "C" fn(*mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; + attr: *const crate::pthread_attr_t, + stackaddr: *mut *mut c_void, + stacksize: *mut size_t, + ) -> c_int; pub fn pthread_condattr_getclock( attr: *const pthread_condattr_t, clock_id: *mut clockid_t, - ) -> ::c_int; + ) -> c_int; pub fn pthread_condattr_setclock( attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + clock_id: crate::clockid_t, + ) -> c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int; pub fn pthread_mutex_timedlock( lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_getname_np(tid: ::pthread_t, name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn pthread_setname_np(tid: ::pthread_t, name: *const ::c_char) -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) - -> ::c_int; + abstime: *const crate::timespec, + ) -> c_int; + pub fn pthread_getname_np(tid: crate::pthread_t, name: *mut c_char, len: size_t) -> c_int; + pub fn pthread_setname_np(tid: crate::pthread_t, name: *const c_char) -> c_int; + pub fn waitid( + idtype: idtype_t, + id: id_t, + infop: *mut crate::siginfo_t, + options: c_int, + ) -> c_int; #[cfg_attr(target_os = "illumos", link_name = "_glob_ext")] pub fn glob( - pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t, - ) -> ::c_int; + pattern: *const c_char, + flags: c_int, + errfunc: Option c_int>, + pglob: *mut crate::glob_t, + ) -> c_int; #[cfg_attr(target_os = "illumos", link_name = "_globfree_ext")] - pub fn globfree(pglob: *mut ::glob_t); + pub fn globfree(pglob: *mut crate::glob_t); - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn posix_fallocate(fd: c_int, offset: off_t, len: off_t) -> c_int; + pub fn posix_madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; - pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; + pub fn shmat(shmid: c_int, shmaddr: *const c_void, shmflg: c_int) -> *mut c_void; - pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; + pub fn shmctl(shmid: c_int, cmd: c_int, buf: *mut crate::shmid_ds) -> c_int; - pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; + pub fn shmdt(shmaddr: *const c_void) -> c_int; - pub fn shmget(key: key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; + pub fn shmget(key: key_t, size: size_t, shmflg: c_int) -> c_int; - pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int; - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: crate::mode_t) -> c_int; + pub fn shm_unlink(name: *const c_char) -> c_int; - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + pub fn seekdir(dirp: *mut crate::DIR, loc: c_long); - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn telldir(dirp: *mut crate::DIR) -> c_long; + pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; + pub fn memalign(align: size_t, size: size_t) -> *mut c_void; pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; - pub fn futimesat(fd: ::c_int, path: *const ::c_char, times: *const ::timeval) -> ::c_int; - pub fn futimens(dirfd: ::c_int, times: *const ::timespec) -> ::c_int; + socket: c_int, + buf: *mut c_void, + len: size_t, + flags: c_int, + addr: *mut crate::sockaddr, + addrlen: *mut crate::socklen_t, + ) -> ssize_t; + pub fn mkstemps(template: *mut c_char, suffixlen: c_int) -> c_int; + pub fn futimesat(fd: c_int, path: *const c_char, times: *const crate::timeval) -> c_int; + pub fn futimens(dirfd: c_int, times: *const crate::timespec) -> c_int; pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; + dirfd: c_int, + path: *const c_char, + times: *const crate::timespec, + flag: c_int, + ) -> c_int; + pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char; #[link_name = "__xnet_bind"] - pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; + pub fn bind( + socket: c_int, + address: *const crate::sockaddr, + address_len: crate::socklen_t, + ) -> c_int; - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; + pub fn readv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; #[link_name = "__xnet_sendmsg"] - pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn sendmsg(fd: c_int, msg: *const crate::msghdr, flags: c_int) -> ssize_t; #[link_name = "__xnet_recvmsg"] - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn recvmsg(fd: c_int, msg: *mut crate::msghdr, flags: c_int) -> ssize_t; pub fn accept4( - fd: ::c_int, + fd: c_int, address: *mut sockaddr, address_len: *mut socklen_t, - flags: ::c_int, - ) -> ::c_int; + flags: c_int, + ) -> c_int; - pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; - pub fn mq_close(mqd: ::mqd_t) -> ::c_int; - pub fn mq_unlink(name: *const ::c_char) -> ::c_int; + pub fn mq_open(name: *const c_char, oflag: c_int, ...) -> crate::mqd_t; + pub fn mq_close(mqd: crate::mqd_t) -> c_int; + pub fn mq_unlink(name: *const c_char) -> c_int; pub fn mq_receive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - ) -> ::ssize_t; + mqd: crate::mqd_t, + msg_ptr: *mut c_char, + msg_len: size_t, + msg_prio: *mut c_uint, + ) -> ssize_t; pub fn mq_timedreceive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::ssize_t; + mqd: crate::mqd_t, + msg_ptr: *mut c_char, + msg_len: size_t, + msg_prio: *mut c_uint, + abs_timeout: *const crate::timespec, + ) -> ssize_t; pub fn mq_send( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - ) -> ::c_int; + mqd: crate::mqd_t, + msg_ptr: *const c_char, + msg_len: size_t, + msg_prio: c_uint, + ) -> c_int; pub fn mq_timedsend( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::c_int; - pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; - pub fn port_create() -> ::c_int; + mqd: crate::mqd_t, + msg_ptr: *const c_char, + msg_len: size_t, + msg_prio: c_uint, + abs_timeout: *const crate::timespec, + ) -> c_int; + pub fn mq_getattr(mqd: crate::mqd_t, attr: *mut crate::mq_attr) -> c_int; + pub fn mq_setattr( + mqd: crate::mqd_t, + newattr: *const crate::mq_attr, + oldattr: *mut crate::mq_attr, + ) -> c_int; + pub fn port_create() -> c_int; pub fn port_associate( - port: ::c_int, - source: ::c_int, - object: ::uintptr_t, - events: ::c_int, - user: *mut ::c_void, - ) -> ::c_int; - pub fn port_dissociate(port: ::c_int, source: ::c_int, object: ::uintptr_t) -> ::c_int; - pub fn port_get(port: ::c_int, pe: *mut port_event, timeout: *mut ::timespec) -> ::c_int; + port: c_int, + source: c_int, + object: crate::uintptr_t, + events: c_int, + user: *mut c_void, + ) -> c_int; + pub fn port_dissociate(port: c_int, source: c_int, object: crate::uintptr_t) -> c_int; + pub fn port_get(port: c_int, pe: *mut port_event, timeout: *mut crate::timespec) -> c_int; pub fn port_getn( - port: ::c_int, + port: c_int, pe_list: *mut port_event, - max: ::c_uint, - nget: *mut ::c_uint, - timeout: *mut ::timespec, - ) -> ::c_int; - pub fn port_send(port: ::c_int, events: ::c_int, user: *mut ::c_void) -> ::c_int; + max: c_uint, + nget: *mut c_uint, + timeout: *mut crate::timespec, + ) -> c_int; + pub fn port_send(port: c_int, events: c_int, user: *mut c_void) -> c_int; pub fn port_sendn( - port_list: *mut ::c_int, - error_list: *mut ::c_int, - nent: ::c_uint, - events: ::c_int, - user: *mut ::c_void, - ) -> ::c_int; + port_list: *mut c_int, + error_list: *mut c_int, + nent: c_uint, + events: c_int, + user: *mut c_void, + ) -> c_int; #[cfg_attr( any(target_os = "solaris", target_os = "illumos"), link_name = "__posix_getgrgid_r" )] pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - 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; + gid: crate::gid_t, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> c_int; + pub fn sigsuspend(mask: *const crate::sigset_t) -> c_int; + pub fn sem_close(sem: *mut sem_t) -> c_int; + pub fn getdtablesize() -> c_int; #[cfg_attr( any(target_os = "solaris", target_os = "illumos"), link_name = "__posix_getgrnam_r" )] pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn thr_self() -> ::thread_t; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + name: *const c_char, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn thr_self() -> crate::thread_t; + pub fn pthread_sigmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; + pub fn sem_open(name: *const c_char, oflag: c_int, ...) -> *mut sem_t; + pub fn getgrnam(name: *const c_char) -> *mut crate::group; #[cfg_attr(target_os = "solaris", link_name = "__pthread_kill_xpg7")] - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; - pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; - pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn sched_getparam(pid: ::pid_t, param: *mut sched_param) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const sched_param) -> ::c_int; - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + pub fn pthread_kill(thread: crate::pthread_t, sig: c_int) -> c_int; + pub fn sched_get_priority_min(policy: c_int) -> c_int; + pub fn sched_get_priority_max(policy: c_int) -> c_int; + pub fn sched_getparam(pid: crate::pid_t, param: *mut sched_param) -> c_int; + pub fn sched_setparam(pid: crate::pid_t, param: *const sched_param) -> c_int; + pub fn sched_getscheduler(pid: crate::pid_t) -> c_int; pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + pid: crate::pid_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; + pub fn sem_unlink(name: *const c_char) -> c_int; + pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; #[cfg_attr( any(target_os = "solaris", target_os = "illumos"), link_name = "__posix_getpwnam_r" )] pub fn getpwnam_r( - name: *const ::c_char, + name: *const c_char, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; #[cfg_attr( any(target_os = "solaris", target_os = "illumos"), link_name = "__posix_getpwuid_r" )] pub fn getpwuid_r( - uid: ::uid_t, + uid: crate::uid_t, pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, + buf: *mut c_char, + buflen: size_t, result: *mut *mut passwd, - ) -> ::c_int; + ) -> c_int; #[cfg_attr( any(target_os = "solaris", target_os = "illumos"), link_name = "getpwent_r" )] - fn native_getpwent_r(pwd: *mut passwd, buf: *mut ::c_char, buflen: ::c_int) -> *mut passwd; + fn native_getpwent_r(pwd: *mut passwd, buf: *mut c_char, buflen: c_int) -> *mut passwd; #[cfg_attr( any(target_os = "solaris", target_os = "illumos"), link_name = "getgrent_r" )] - fn native_getgrent_r(grp: *mut ::group, buf: *mut ::c_char, buflen: ::c_int) -> *mut ::group; + fn native_getgrent_r( + grp: *mut crate::group, + buf: *mut c_char, + buflen: c_int, + ) -> *mut crate::group; #[cfg_attr( any(target_os = "solaris", target_os = "illumos"), link_name = "__posix_sigwait" )] - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int; pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + prepare: Option, + parent: Option, + child: Option, + ) -> c_int; + pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; pub fn setgrent(); pub fn endgrent(); - pub fn getgrent() -> *mut ::group; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn getgrent() -> *mut crate::group; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut crate::FILE; - pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; - pub fn uname(buf: *mut ::utsname) -> ::c_int; - pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; + pub fn dup3(src: c_int, dst: c_int, flags: c_int) -> c_int; + pub fn uname(buf: *mut crate::utsname) -> c_int; + pub fn pipe2(fds: *mut c_int, flags: c_int) -> c_int; pub fn makeutx(ux: *const utmpx) -> *mut utmpx; pub fn modutx(ux: *const utmpx) -> *mut utmpx; - pub fn updwtmpx(file: *const ::c_char, ut: *mut utmpx); - pub fn utmpxname(file: *const ::c_char) -> ::c_int; + pub fn updwtmpx(file: *const c_char, ut: *mut utmpx); + pub fn utmpxname(file: *const c_char) -> c_int; pub fn getutxent() -> *mut utmpx; pub fn getutxid(ut: *const utmpx) -> *mut utmpx; pub fn getutxline(ut: *const utmpx) -> *mut utmpx; @@ -2924,227 +2939,231 @@ extern "C" { pub fn getutline(u: *const utmp) -> *mut utmp; pub fn pututline(u: *const utmp) -> *mut utmp; pub fn setutent(); - pub fn utmpname(file: *const ::c_char) -> ::c_int; + pub fn utmpname(file: *const c_char) -> c_int; pub fn getutmp(ux: *const utmpx, u: *mut utmp); pub fn getutmpx(u: *const utmp, ux: *mut utmpx); - pub fn updwtmp(file: *const ::c_char, u: *mut utmp); + pub fn updwtmp(file: *const c_char, u: *mut utmp); - pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; - pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; + pub fn ntp_adjtime(buf: *mut timex) -> c_int; + pub fn ntp_gettime(buf: *mut ntptimeval) -> c_int; - pub fn timer_create(clock_id: clockid_t, evp: *mut sigevent, timerid: *mut timer_t) -> ::c_int; - pub fn timer_delete(timerid: timer_t) -> ::c_int; - pub fn timer_getoverrun(timerid: timer_t) -> ::c_int; - pub fn timer_gettime(timerid: timer_t, value: *mut itimerspec) -> ::c_int; + pub fn timer_create(clock_id: clockid_t, evp: *mut sigevent, timerid: *mut timer_t) -> c_int; + pub fn timer_delete(timerid: timer_t) -> c_int; + pub fn timer_getoverrun(timerid: timer_t) -> c_int; + pub fn timer_gettime(timerid: timer_t, value: *mut itimerspec) -> c_int; pub fn timer_settime( timerid: timer_t, - flags: ::c_int, + flags: c_int, value: *const itimerspec, ovalue: *mut itimerspec, - ) -> ::c_int; + ) -> c_int; - pub fn ucred_get(pid: ::pid_t) -> *mut ucred_t; - pub fn getpeerucred(fd: ::c_int, ucred: *mut *mut ucred_t) -> ::c_int; + pub fn ucred_get(pid: crate::pid_t) -> *mut ucred_t; + pub fn getpeerucred(fd: c_int, ucred: *mut *mut ucred_t) -> c_int; pub fn ucred_free(ucred: *mut ucred_t); - pub fn ucred_geteuid(ucred: *const ucred_t) -> ::uid_t; - pub fn ucred_getruid(ucred: *const ucred_t) -> ::uid_t; - pub fn ucred_getsuid(ucred: *const ucred_t) -> ::uid_t; - pub fn ucred_getegid(ucred: *const ucred_t) -> ::gid_t; - pub fn ucred_getrgid(ucred: *const ucred_t) -> ::gid_t; - pub fn ucred_getsgid(ucred: *const ucred_t) -> ::gid_t; - pub fn ucred_getgroups(ucred: *const ucred_t, groups: *mut *const ::gid_t) -> ::c_int; - pub fn ucred_getpid(ucred: *const ucred_t) -> ::pid_t; + pub fn ucred_geteuid(ucred: *const ucred_t) -> crate::uid_t; + pub fn ucred_getruid(ucred: *const ucred_t) -> crate::uid_t; + pub fn ucred_getsuid(ucred: *const ucred_t) -> crate::uid_t; + pub fn ucred_getegid(ucred: *const ucred_t) -> crate::gid_t; + pub fn ucred_getrgid(ucred: *const ucred_t) -> crate::gid_t; + pub fn ucred_getsgid(ucred: *const ucred_t) -> crate::gid_t; + pub fn ucred_getgroups(ucred: *const ucred_t, groups: *mut *const crate::gid_t) -> c_int; + pub fn ucred_getpid(ucred: *const ucred_t) -> crate::pid_t; pub fn ucred_getprojid(ucred: *const ucred_t) -> projid_t; pub fn ucred_getzoneid(ucred: *const ucred_t) -> zoneid_t; - pub fn ucred_getpflags(ucred: *const ucred_t, flags: ::c_uint) -> ::c_uint; + pub fn ucred_getpflags(ucred: *const ucred_t, flags: c_uint) -> c_uint; - pub fn ucred_size() -> ::size_t; + pub fn ucred_size() -> size_t; - pub fn pset_create(newpset: *mut ::psetid_t) -> ::c_int; - pub fn pset_destroy(pset: ::psetid_t) -> ::c_int; - pub fn pset_assign(pset: ::psetid_t, cpu: ::processorid_t, opset: *mut psetid_t) -> ::c_int; + pub fn pset_create(newpset: *mut crate::psetid_t) -> c_int; + pub fn pset_destroy(pset: crate::psetid_t) -> c_int; + pub fn pset_assign( + pset: crate::psetid_t, + cpu: crate::processorid_t, + opset: *mut psetid_t, + ) -> c_int; pub fn pset_info( - pset: ::psetid_t, - tpe: *mut ::c_int, - numcpus: *mut ::c_uint, + pset: crate::psetid_t, + tpe: *mut c_int, + numcpus: *mut c_uint, cpulist: *mut processorid_t, - ) -> ::c_int; + ) -> c_int; pub fn pset_bind( - pset: ::psetid_t, - idtype: ::idtype_t, - id: ::id_t, + pset: crate::psetid_t, + idtype: crate::idtype_t, + id: crate::id_t, opset: *mut psetid_t, - ) -> ::c_int; - pub fn pset_list(pset: *mut psetid_t, numpsets: *mut ::c_uint) -> ::c_int; - pub fn pset_setattr(pset: psetid_t, attr: ::c_uint) -> ::c_int; - pub fn pset_getattr(pset: psetid_t, attr: *mut ::c_uint) -> ::c_int; + ) -> c_int; + pub fn pset_list(pset: *mut psetid_t, numpsets: *mut c_uint) -> c_int; + pub fn pset_setattr(pset: psetid_t, attr: c_uint) -> c_int; + pub fn pset_getattr(pset: psetid_t, attr: *mut c_uint) -> c_int; pub fn processor_bind( - idtype: ::idtype_t, - id: ::id_t, - new_binding: ::processorid_t, + idtype: crate::idtype_t, + id: crate::id_t, + new_binding: crate::processorid_t, old_binding: *mut processorid_t, - ) -> ::c_int; - pub fn p_online(processorid: ::processorid_t, flag: ::c_int) -> ::c_int; - pub fn processor_info(processorid: ::processorid_t, infop: *mut processor_info_t) -> ::c_int; + ) -> c_int; + pub fn p_online(processorid: crate::processorid_t, flag: c_int) -> c_int; + pub fn processor_info(processorid: crate::processorid_t, infop: *mut processor_info_t) + -> c_int; - pub fn getexecname() -> *const ::c_char; + pub fn getexecname() -> *const c_char; - pub fn gethostid() -> ::c_long; + pub fn gethostid() -> c_long; - pub fn getpflags(flags: ::c_uint) -> ::c_uint; - pub fn setpflags(flags: ::c_uint, value: ::c_uint) -> ::c_int; + pub fn getpflags(flags: c_uint) -> c_uint; + pub fn setpflags(flags: c_uint, value: c_uint) -> c_int; - pub fn sysinfo(command: ::c_int, buf: *mut ::c_char, count: ::c_long) -> ::c_int; + pub fn sysinfo(command: c_int, buf: *mut c_char, count: c_long) -> c_int; - pub fn faccessat(fd: ::c_int, path: *const ::c_char, amode: ::c_int, flag: ::c_int) -> ::c_int; + pub fn faccessat(fd: c_int, path: *const c_char, amode: c_int, flag: c_int) -> c_int; // #include #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] pub fn dl_iterate_phdr( - callback: ::Option< - unsafe extern "C" fn( - info: *mut dl_phdr_info, - size: usize, - data: *mut ::c_void, - ) -> ::c_int, + callback: Option< + unsafe extern "C" fn(info: *mut dl_phdr_info, size: usize, data: *mut c_void) -> c_int, >, - data: *mut ::c_void, - ) -> ::c_int; - pub fn getpagesize() -> ::c_int; - pub fn getpagesizes(pagesize: *mut ::size_t, nelem: ::c_int) -> ::c_int; + data: *mut c_void, + ) -> c_int; + pub fn getpagesize() -> c_int; + pub fn getpagesizes(pagesize: *mut size_t, nelem: c_int) -> c_int; pub fn mmapobj( - fd: ::c_int, - flags: ::c_uint, + fd: c_int, + flags: c_uint, storage: *mut mmapobj_result_t, - elements: *mut ::c_uint, - arg: *mut ::c_void, - ) -> ::c_int; + elements: *mut c_uint, + arg: *mut c_void, + ) -> c_int; pub fn meminfo( inaddr: *const u64, - addr_count: ::c_int, - info_req: *const ::c_uint, - info_count: ::c_int, + addr_count: c_int, + info_req: *const c_uint, + info_count: c_int, outdata: *mut u64, - validity: *mut ::c_uint, - ) -> ::c_int; + validity: *mut c_uint, + ) -> c_int; - pub fn strsep(string: *mut *mut ::c_char, delim: *const ::c_char) -> *mut ::c_char; + pub fn strsep(string: *mut *mut c_char, delim: *const c_char) -> *mut c_char; - pub fn getisax(array: *mut u32, n: ::c_uint) -> ::c_uint; + pub fn getisax(array: *mut u32, n: c_uint) -> c_uint; - pub fn backtrace(buffer: *mut *mut ::c_void, size: ::c_int) -> ::c_int; - pub fn backtrace_symbols(buffer: *const *mut ::c_void, size: ::c_int) -> *mut *mut ::c_char; - pub fn backtrace_symbols_fd(buffer: *const *mut ::c_void, size: ::c_int, fd: ::c_int); + pub fn backtrace(buffer: *mut *mut c_void, size: c_int) -> c_int; + pub fn backtrace_symbols(buffer: *const *mut c_void, size: c_int) -> *mut *mut c_char; + pub fn backtrace_symbols_fd(buffer: *const *mut c_void, size: c_int, fd: c_int); pub fn getopt_long( - argc: ::c_int, + argc: c_int, argv: *const *mut c_char, optstring: *const c_char, longopts: *const option, - longindex: *mut ::c_int, - ) -> ::c_int; + longindex: *mut c_int, + ) -> c_int; pub fn sync(); - pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; - pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; + pub fn aio_cancel(fd: c_int, aiocbp: *mut aiocb) -> c_int; + pub fn aio_error(aiocbp: *const aiocb) -> c_int; + pub fn aio_fsync(op: c_int, aiocbp: *mut aiocb) -> c_int; + pub fn aio_read(aiocbp: *mut aiocb) -> c_int; + pub fn aio_return(aiocbp: *mut aiocb) -> ssize_t; pub fn aio_suspend( aiocb_list: *const *const aiocb, - nitems: ::c_int, - timeout: *const ::timespec, - ) -> ::c_int; + nitems: c_int, + timeout: *const crate::timespec, + ) -> c_int; pub fn aio_waitn( aiocb_list: *mut *mut aiocb, - nent: ::c_uint, - nwait: *mut ::c_uint, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; + nent: c_uint, + nwait: *mut c_uint, + timeout: *const crate::timespec, + ) -> c_int; + pub fn aio_write(aiocbp: *mut aiocb) -> c_int; pub fn lio_listio( - mode: ::c_int, + mode: c_int, aiocb_list: *const *mut aiocb, - nitems: ::c_int, + nitems: c_int, sevp: *mut sigevent, - ) -> ::c_int; + ) -> c_int; - pub fn __major(version: ::c_int, devnum: ::dev_t) -> ::major_t; - pub fn __minor(version: ::c_int, devnum: ::dev_t) -> ::minor_t; - pub fn __makedev(version: ::c_int, majdev: ::major_t, mindev: ::minor_t) -> ::dev_t; + pub fn __major(version: c_int, devnum: crate::dev_t) -> crate::major_t; + pub fn __minor(version: c_int, devnum: crate::dev_t) -> crate::minor_t; + pub fn __makedev( + version: c_int, + majdev: crate::major_t, + mindev: crate::minor_t, + ) -> crate::dev_t; pub fn arc4random() -> u32; - pub fn arc4random_buf(buf: *mut ::c_void, nbytes: ::size_t); + pub fn arc4random_buf(buf: *mut c_void, nbytes: size_t); pub fn arc4random_uniform(upper_bound: u32) -> u32; } #[link(name = "sendfile")] extern "C" { - pub fn sendfile(out_fd: ::c_int, in_fd: ::c_int, off: *mut ::off_t, len: ::size_t) - -> ::ssize_t; + pub fn sendfile(out_fd: c_int, in_fd: c_int, off: *mut off_t, len: size_t) -> ssize_t; pub fn sendfilev( - fildes: ::c_int, + fildes: c_int, vec: *const sendfilevec_t, - sfvcnt: ::c_int, - xferred: *mut ::size_t, - ) -> ::ssize_t; + sfvcnt: c_int, + xferred: *mut size_t, + ) -> ssize_t; } #[link(name = "lgrp")] extern "C" { pub fn lgrp_init(view: lgrp_view_t) -> lgrp_cookie_t; - pub fn lgrp_fini(cookie: lgrp_cookie_t) -> ::c_int; + pub fn lgrp_fini(cookie: lgrp_cookie_t) -> c_int; pub fn lgrp_affinity_get( - idtype: ::idtype_t, - id: ::id_t, - lgrp: ::lgrp_id_t, - ) -> ::lgrp_affinity_t; + idtype: crate::idtype_t, + id: crate::id_t, + lgrp: crate::lgrp_id_t, + ) -> crate::lgrp_affinity_t; pub fn lgrp_affinity_set( - idtype: ::idtype_t, - id: ::id_t, - lgrp: ::lgrp_id_t, + idtype: crate::idtype_t, + id: crate::id_t, + lgrp: crate::lgrp_id_t, aff: lgrp_affinity_t, - ) -> ::c_int; + ) -> c_int; pub fn lgrp_cpus( - cookie: ::lgrp_cookie_t, - lgrp: ::lgrp_id_t, - cpuids: *mut ::processorid_t, - count: ::c_uint, - content: ::lgrp_content_t, - ) -> ::c_int; + cookie: crate::lgrp_cookie_t, + lgrp: crate::lgrp_id_t, + cpuids: *mut crate::processorid_t, + count: c_uint, + content: crate::lgrp_content_t, + ) -> c_int; pub fn lgrp_mem_size( - cookie: ::lgrp_cookie_t, - lgrp: ::lgrp_id_t, - tpe: ::lgrp_mem_size_flag_t, - content: ::lgrp_content_t, - ) -> ::lgrp_mem_size_t; - pub fn lgrp_nlgrps(cookie: ::lgrp_cookie_t) -> ::c_int; - pub fn lgrp_view(cookie: ::lgrp_cookie_t) -> ::lgrp_view_t; - pub fn lgrp_home(idtype: ::idtype_t, id: ::id_t) -> ::lgrp_id_t; - pub fn lgrp_version(version: ::c_int) -> ::c_int; + cookie: crate::lgrp_cookie_t, + lgrp: crate::lgrp_id_t, + tpe: crate::lgrp_mem_size_flag_t, + content: crate::lgrp_content_t, + ) -> crate::lgrp_mem_size_t; + pub fn lgrp_nlgrps(cookie: crate::lgrp_cookie_t) -> c_int; + pub fn lgrp_view(cookie: crate::lgrp_cookie_t) -> crate::lgrp_view_t; + pub fn lgrp_home(idtype: crate::idtype_t, id: crate::id_t) -> crate::lgrp_id_t; + pub fn lgrp_version(version: c_int) -> c_int; pub fn lgrp_resources( - cookie: ::lgrp_cookie_t, - lgrp: ::lgrp_id_t, - lgrps: *mut ::lgrp_id_t, - count: ::c_uint, - tpe: ::lgrp_rsrc_t, - ) -> ::c_int; - pub fn lgrp_root(cookie: ::lgrp_cookie_t) -> ::lgrp_id_t; + cookie: crate::lgrp_cookie_t, + lgrp: crate::lgrp_id_t, + lgrps: *mut crate::lgrp_id_t, + count: c_uint, + tpe: crate::lgrp_rsrc_t, + ) -> c_int; + pub fn lgrp_root(cookie: crate::lgrp_cookie_t) -> crate::lgrp_id_t; } -pub unsafe fn major(device: ::dev_t) -> ::major_t { +pub unsafe fn major(device: crate::dev_t) -> crate::major_t { __major(NEWDEV, device) } -pub unsafe fn minor(device: ::dev_t) -> ::minor_t { +pub unsafe fn minor(device: crate::dev_t) -> crate::minor_t { __minor(NEWDEV, device) } -pub unsafe fn makedev(maj: ::major_t, min: ::minor_t) -> ::dev_t { +pub unsafe fn makedev(maj: crate::major_t, min: crate::minor_t) -> crate::dev_t { __makedev(NEWDEV, maj, min) } diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index a2a7b1a60e6f3..63009c2105d17 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -1,11 +1,12 @@ -use { - exit_status, NET_MAC_AWARE, NET_MAC_AWARE_INHERIT, PRIV_AWARE_RESET, PRIV_DEBUG, PRIV_PFEXEC, +use crate::{ + c_char, c_int, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, c_void, exit_status, off_t, + size_t, NET_MAC_AWARE, NET_MAC_AWARE_INHERIT, PRIV_AWARE_RESET, PRIV_DEBUG, PRIV_PFEXEC, PRIV_XPOLICY, }; -pub type door_attr_t = ::c_uint; -pub type door_id_t = ::c_ulonglong; -pub type lgrp_affinity_t = ::c_uint; +pub type door_attr_t = c_uint; +pub type door_id_t = c_ulonglong; +pub type lgrp_affinity_t = c_uint; e! { #[repr(u32)] @@ -18,41 +19,41 @@ e! { s! { pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_offset: ::off_t, - pub aio_reqprio: ::c_int, - pub aio_sigevent: ::sigevent, - pub aio_lio_opcode: ::c_int, - pub aio_resultp: ::aio_result_t, - pub aio_state: ::c_char, - pub aio_returned: ::c_char, - pub aio__pad1: [::c_char; 2], - pub aio_flags: ::c_int, + pub aio_fildes: c_int, + pub aio_buf: *mut c_void, + pub aio_nbytes: size_t, + pub aio_offset: off_t, + pub aio_reqprio: c_int, + pub aio_sigevent: crate::sigevent, + pub aio_lio_opcode: c_int, + pub aio_resultp: crate::aio_result_t, + pub aio_state: c_char, + pub aio_returned: c_char, + pub aio__pad1: [c_char; 2], + pub aio_flags: c_int, } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_flags: ::uintptr_t, - pub shm_lkcnt: ::c_ushort, - pub shm_lpid: ::pid_t, - pub shm_cpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - pub shm_cnattch: ::c_ulong, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_amp: *mut ::c_void, + pub shm_perm: crate::ipc_perm, + pub shm_segsz: size_t, + pub shm_flags: crate::uintptr_t, + pub shm_lkcnt: c_ushort, + pub shm_lpid: crate::pid_t, + pub shm_cpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + pub shm_cnattch: c_ulong, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_amp: *mut c_void, pub shm_gransize: u64, pub shm_allocated: u64, pub shm_pad4: [i64; 1], } pub struct xrs_t { - pub xrs_id: ::c_ulong, - pub xrs_ptr: *mut ::c_char, + pub xrs_id: c_ulong, + pub xrs_ptr: *mut c_char, } } @@ -60,14 +61,14 @@ s_no_extra_traits! { #[repr(packed)] #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] pub struct door_desc_t__d_data__d_desc { - pub d_descriptor: ::c_int, - pub d_id: ::door_id_t, + pub d_descriptor: c_int, + pub d_id: crate::door_id_t, } #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] pub union door_desc_t__d_data { pub d_desc: door_desc_t__d_data__d_desc, - d_resv: [::c_int; 5], /* Check out /usr/include/sys/door.h */ + d_resv: [c_int; 5], /* Check out /usr/include/sys/door.h */ } #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] @@ -78,26 +79,26 @@ s_no_extra_traits! { #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] pub struct door_arg_t { - pub data_ptr: *const ::c_char, - pub data_size: ::size_t, + pub data_ptr: *const c_char, + pub data_size: size_t, pub desc_ptr: *const door_desc_t, - pub dec_num: ::c_uint, - pub rbuf: *const ::c_char, - pub rsize: ::size_t, + pub dec_num: c_uint, + pub rbuf: *const c_char, + pub rsize: size_t, } pub struct utmpx { - pub ut_user: [::c_char; _UTMP_USER_LEN], - pub ut_id: [::c_char; _UTMP_ID_LEN], - pub ut_line: [::c_char; _UTMP_LINE_LEN], - pub ut_pid: ::pid_t, - pub ut_type: ::c_short, + pub ut_user: [c_char; _UTMP_USER_LEN], + pub ut_id: [c_char; _UTMP_ID_LEN], + pub ut_line: [c_char; _UTMP_LINE_LEN], + pub ut_pid: crate::pid_t, + pub ut_type: c_short, pub ut_exit: exit_status, - pub ut_tv: ::timeval, - pub ut_session: ::c_int, - pub pad: [::c_int; 5], - pub ut_syslen: ::c_short, - pub ut_host: [::c_char; 257], + pub ut_tv: crate::timeval, + pub ut_session: c_int, + pub pad: [c_int; 5], + pub ut_syslen: c_short, + pub ut_host: [c_char; 257], } } @@ -125,8 +126,8 @@ cfg_if! { impl Eq for utmpx {} - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for utmpx { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("utmpx") .field("ut_user", &self.ut_user) .field("ut_id", &self.ut_id) @@ -143,8 +144,8 @@ cfg_if! { } } - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_user.hash(state); self.ut_type.hash(state); self.ut_pid.hash(state); @@ -165,31 +166,31 @@ pub const _UTMP_USER_LEN: usize = 32; pub const _UTMP_LINE_LEN: usize = 32; pub const _UTMP_ID_LEN: usize = 4; -pub const PORT_SOURCE_POSTWAIT: ::c_int = 8; -pub const PORT_SOURCE_SIGNAL: ::c_int = 9; +pub const PORT_SOURCE_POSTWAIT: c_int = 8; +pub const PORT_SOURCE_SIGNAL: c_int = 9; -pub const AF_LOCAL: ::c_int = 1; // AF_UNIX -pub const AF_FILE: ::c_int = 1; // AF_UNIX +pub const AF_LOCAL: c_int = 1; // AF_UNIX +pub const AF_FILE: c_int = 1; // AF_UNIX -pub const TCP_KEEPIDLE: ::c_int = 0x1d; -pub const TCP_KEEPINTVL: ::c_int = 0x1e; -pub const TCP_KEEPCNT: ::c_int = 0x1f; +pub const TCP_KEEPIDLE: c_int = 0x1d; +pub const TCP_KEEPINTVL: c_int = 0x1e; +pub const TCP_KEEPCNT: c_int = 0x1f; -pub const F_DUPFD_CLOEXEC: ::c_int = 47; -pub const F_DUPFD_CLOFORK: ::c_int = 49; -pub const F_DUP2FD_CLOEXEC: ::c_int = 48; -pub const F_DUP2FD_CLOFORK: ::c_int = 50; +pub const F_DUPFD_CLOEXEC: c_int = 47; +pub const F_DUPFD_CLOFORK: c_int = 49; +pub const F_DUP2FD_CLOEXEC: c_int = 48; +pub const F_DUP2FD_CLOFORK: c_int = 50; -pub const _PC_LAST: ::c_int = 102; +pub const _PC_LAST: c_int = 102; -pub const PRIV_PROC_SENSITIVE: ::c_uint = 0x0008; -pub const PRIV_PFEXEC_AUTH: ::c_uint = 0x0200; -pub const PRIV_PROC_TPD: ::c_uint = 0x0400; -pub const PRIV_TPD_UNSAFE: ::c_uint = 0x0800; -pub const PRIV_PROC_TPD_RESET: ::c_uint = 0x1000; -pub const PRIV_TPD_KILLABLE: ::c_uint = 0x2000; +pub const PRIV_PROC_SENSITIVE: c_uint = 0x0008; +pub const PRIV_PFEXEC_AUTH: c_uint = 0x0200; +pub const PRIV_PROC_TPD: c_uint = 0x0400; +pub const PRIV_TPD_UNSAFE: c_uint = 0x0800; +pub const PRIV_PROC_TPD_RESET: c_uint = 0x1000; +pub const PRIV_TPD_KILLABLE: c_uint = 0x2000; -pub const PRIV_USER: ::c_uint = PRIV_DEBUG +pub const PRIV_USER: c_uint = PRIV_DEBUG | PRIV_PROC_SENSITIVE | NET_MAC_AWARE | NET_MAC_AWARE_INHERIT @@ -204,36 +205,32 @@ pub const PRIV_USER: ::c_uint = PRIV_DEBUG extern "C" { // DIFF(main): changed to `*const *mut` in e77f551de9 - pub fn fexecve( - fd: ::c_int, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; + pub fn fexecve(fd: c_int, argv: *const *const c_char, envp: *const *const c_char) -> c_int; - pub fn mincore(addr: *mut ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; + pub fn mincore(addr: *mut c_void, len: size_t, vec: *mut c_char) -> c_int; - pub fn door_call(d: ::c_int, params: *mut door_arg_t) -> ::c_int; + pub fn door_call(d: c_int, params: *mut door_arg_t) -> c_int; pub fn door_return( - data_ptr: *mut ::c_char, - data_size: ::size_t, + data_ptr: *mut c_char, + data_size: size_t, desc_ptr: *mut door_desc_t, - num_desc: ::c_uint, - ) -> ::c_int; + num_desc: c_uint, + ) -> c_int; pub fn door_create( server_procedure: extern "C" fn( - cookie: *mut ::c_void, - argp: *mut ::c_char, - arg_size: ::size_t, + cookie: *mut c_void, + argp: *mut c_char, + arg_size: size_t, dp: *mut door_desc_t, - n_desc: ::c_uint, + n_desc: c_uint, ), - cookie: *mut ::c_void, + cookie: *mut c_void, attributes: door_attr_t, - ) -> ::c_int; + ) -> c_int; - pub fn fattach(fildes: ::c_int, path: *const ::c_char) -> ::c_int; + pub fn fattach(fildes: c_int, path: *const c_char) -> c_int; - pub fn pthread_getattr_np(thread: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_getattr_np(thread: crate::pthread_t, attr: *mut crate::pthread_attr_t) -> c_int; - pub fn euidaccess(path: *const ::c_char, amode: ::c_int) -> ::c_int; + pub fn euidaccess(path: *const c_char, amode: c_int) -> c_int; } diff --git a/src/unix/solarish/x86.rs b/src/unix/solarish/x86.rs index 23f52ad3c894f..c161169547286 100644 --- a/src/unix/solarish/x86.rs +++ b/src/unix/solarish/x86.rs @@ -1,9 +1,11 @@ -pub type Elf32_Addr = ::c_ulong; -pub type Elf32_Half = ::c_ushort; -pub type Elf32_Off = ::c_ulong; -pub type Elf32_Sword = ::c_long; -pub type Elf32_Word = ::c_ulong; -pub type Elf32_Lword = ::c_ulonglong; +use crate::{c_char, c_long, c_ulong, c_ulonglong, c_ushort}; + +pub type Elf32_Addr = c_ulong; +pub type Elf32_Half = c_ushort; +pub type Elf32_Off = c_ulong; +pub type Elf32_Sword = c_long; +pub type Elf32_Word = c_ulong; +pub type Elf32_Lword = c_ulonglong; pub type Elf32_Phdr = __c_anonymous_Elf32_Phdr; s! { @@ -20,10 +22,10 @@ s! { pub struct dl_phdr_info { pub dlpi_addr: ::Elf32_Addr, - pub dlpi_name: *const ::c_char, + pub dlpi_name: *const c_char, pub dlpi_phdr: *const ::Elf32_Phdr, pub dlpi_phnum: ::Elf32_Half, - pub dlpi_adds: ::c_ulonglong, - pub dlpi_subs: ::c_ulonglong, + pub dlpi_adds: c_ulonglong, + pub dlpi_subs: c_ulonglong, } } diff --git a/src/unix/solarish/x86_64.rs b/src/unix/solarish/x86_64.rs index 4885aaef57c26..d69fc9a5afbda 100644 --- a/src/unix/solarish/x86_64.rs +++ b/src/unix/solarish/x86_64.rs @@ -1,19 +1,21 @@ +use crate::{c_char, c_int, c_long, c_uint, c_ulong, c_ulonglong, c_ushort, c_void}; + cfg_if! { if #[cfg(target_os = "solaris")] { - use unix::solarish::solaris; + use crate::unix::solarish::solaris; } } -pub type greg_t = ::c_long; +pub type greg_t = c_long; -pub type Elf64_Addr = ::c_ulong; -pub type Elf64_Half = ::c_ushort; -pub type Elf64_Off = ::c_ulong; -pub type Elf64_Sword = ::c_int; -pub type Elf64_Sxword = ::c_long; -pub type Elf64_Word = ::c_uint; -pub type Elf64_Xword = ::c_ulong; -pub type Elf64_Lword = ::c_ulong; +pub type Elf64_Addr = c_ulong; +pub type Elf64_Half = c_ushort; +pub type Elf64_Off = c_ulong; +pub type Elf64_Sword = c_int; +pub type Elf64_Sxword = c_long; +pub type Elf64_Word = c_uint; +pub type Elf64_Xword = c_ulong; +pub type Elf64_Lword = c_ulong; pub type Elf64_Phdr = __c_anonymous_Elf64_Phdr; s! { @@ -27,35 +29,35 @@ s! { pub rdp: u64, pub mxcsr: u32, pub mxcsr_mask: u32, - pub st: [::upad128_t; 8], - pub xmm: [::upad128_t; 16], - pub __fx_ign: [::upad128_t; 6], + pub st: [crate::upad128_t; 8], + pub xmm: [crate::upad128_t; 16], + pub __fx_ign: [crate::upad128_t; 6], pub status: u32, pub xstatus: u32, } pub struct __c_anonymous_Elf64_Phdr { - pub p_type: ::Elf64_Word, - pub p_flags: ::Elf64_Word, - pub p_offset: ::Elf64_Off, - pub p_vaddr: ::Elf64_Addr, - pub p_paddr: ::Elf64_Addr, - pub p_filesz: ::Elf64_Xword, - pub p_memsz: ::Elf64_Xword, - pub p_align: ::Elf64_Xword, + pub p_type: crate::Elf64_Word, + pub p_flags: crate::Elf64_Word, + pub p_offset: crate::Elf64_Off, + pub p_vaddr: crate::Elf64_Addr, + pub p_paddr: crate::Elf64_Addr, + pub p_filesz: crate::Elf64_Xword, + pub p_memsz: crate::Elf64_Xword, + pub p_align: crate::Elf64_Xword, } pub struct dl_phdr_info { - pub dlpi_addr: ::Elf64_Addr, - pub dlpi_name: *const ::c_char, - pub dlpi_phdr: *const ::Elf64_Phdr, - pub dlpi_phnum: ::Elf64_Half, - pub dlpi_adds: ::c_ulonglong, - pub dlpi_subs: ::c_ulonglong, + pub dlpi_addr: crate::Elf64_Addr, + pub dlpi_name: *const c_char, + pub dlpi_phdr: *const crate::Elf64_Phdr, + pub dlpi_phnum: crate::Elf64_Half, + pub dlpi_adds: c_ulonglong, + pub dlpi_subs: c_ulonglong, #[cfg(target_os = "solaris")] - pub dlpi_tls_modid: ::c_ulong, + pub dlpi_tls_modid: c_ulong, #[cfg(target_os = "solaris")] - pub dlpi_tls_data: *mut ::c_void, + pub dlpi_tls_data: *mut c_void, } } @@ -70,26 +72,26 @@ s_no_extra_traits! { } pub struct mcontext_t { - pub gregs: [::greg_t; 28], + pub gregs: [crate::greg_t; 28], pub fpregs: fpregset_t, } pub struct ucontext_t { - pub uc_flags: ::c_ulong, + pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, - pub uc_sigmask: ::sigset_t, - pub uc_stack: ::stack_t, + pub uc_sigmask: crate::sigset_t, + pub uc_stack: crate::stack_t, pub uc_mcontext: mcontext_t, #[cfg(target_os = "illumos")] - pub uc_brand_data: [*mut ::c_void; 3], + pub uc_brand_data: [*mut c_void; 3], #[cfg(target_os = "illumos")] - pub uc_xsave: ::c_long, + pub uc_xsave: c_long, #[cfg(target_os = "illumos")] - pub uc_filler: ::c_long, + pub uc_filler: c_long, #[cfg(target_os = "solaris")] pub uc_xrs: solaris::xrs_t, #[cfg(target_os = "solaris")] - pub uc_filler: [::c_long; 3], + pub uc_filler: [c_long; 3], } } @@ -108,8 +110,8 @@ cfg_if! { } } impl Eq for __c_anonymous_fp_reg_set {} - impl ::fmt::Debug for __c_anonymous_fp_reg_set { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for __c_anonymous_fp_reg_set { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { unsafe { f.debug_struct("__c_anonymous_fp_reg_set") .field("fpchip_state", &{ self.fpchip_state }) @@ -124,8 +126,8 @@ cfg_if! { } } impl Eq for fpregset_t {} - impl ::fmt::Debug for fpregset_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for fpregset_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("fpregset_t") .field("fp_reg_set", &self.fp_reg_set) .finish() @@ -137,8 +139,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("mcontext_t") .field("gregs", &self.gregs) .field("fpregs", &self.fpregs) @@ -156,8 +158,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -173,31 +175,31 @@ cfg_if! { // sys/regset.h -pub const REG_GSBASE: ::c_int = 27; -pub const REG_FSBASE: ::c_int = 26; -pub const REG_DS: ::c_int = 25; -pub const REG_ES: ::c_int = 24; -pub const REG_GS: ::c_int = 23; -pub const REG_FS: ::c_int = 22; -pub const REG_SS: ::c_int = 21; -pub const REG_RSP: ::c_int = 20; -pub const REG_RFL: ::c_int = 19; -pub const REG_CS: ::c_int = 18; -pub const REG_RIP: ::c_int = 17; -pub const REG_ERR: ::c_int = 16; -pub const REG_TRAPNO: ::c_int = 15; -pub const REG_RAX: ::c_int = 14; -pub const REG_RCX: ::c_int = 13; -pub const REG_RDX: ::c_int = 12; -pub const REG_RBX: ::c_int = 11; -pub const REG_RBP: ::c_int = 10; -pub const REG_RSI: ::c_int = 9; -pub const REG_RDI: ::c_int = 8; -pub const REG_R8: ::c_int = 7; -pub const REG_R9: ::c_int = 6; -pub const REG_R10: ::c_int = 5; -pub const REG_R11: ::c_int = 4; -pub const REG_R12: ::c_int = 3; -pub const REG_R13: ::c_int = 2; -pub const REG_R14: ::c_int = 1; -pub const REG_R15: ::c_int = 0; +pub const REG_GSBASE: c_int = 27; +pub const REG_FSBASE: c_int = 26; +pub const REG_DS: c_int = 25; +pub const REG_ES: c_int = 24; +pub const REG_GS: c_int = 23; +pub const REG_FS: c_int = 22; +pub const REG_SS: c_int = 21; +pub const REG_RSP: c_int = 20; +pub const REG_RFL: c_int = 19; +pub const REG_CS: c_int = 18; +pub const REG_RIP: c_int = 17; +pub const REG_ERR: c_int = 16; +pub const REG_TRAPNO: c_int = 15; +pub const REG_RAX: c_int = 14; +pub const REG_RCX: c_int = 13; +pub const REG_RDX: c_int = 12; +pub const REG_RBX: c_int = 11; +pub const REG_RBP: c_int = 10; +pub const REG_RSI: c_int = 9; +pub const REG_RDI: c_int = 8; +pub const REG_R8: c_int = 7; +pub const REG_R9: c_int = 6; +pub const REG_R10: c_int = 5; +pub const REG_R11: c_int = 4; +pub const REG_R12: c_int = 3; +pub const REG_R13: c_int = 2; +pub const REG_R14: c_int = 1; +pub const REG_R15: c_int = 0; diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 8aaa6171f2cca..2781538569c36 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -3,12 +3,12 @@ use core::mem::size_of; use core::ptr::null_mut; -use c_void; +use crate::c_void; #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum DIR {} -impl ::Copy for DIR {} -impl ::Clone for DIR { +impl Copy for DIR {} +impl Clone for DIR { fn clone(&self) -> DIR { *self } @@ -30,109 +30,109 @@ pub type uintmax_t = u64; pub type uintptr_t = usize; pub type intptr_t = isize; pub type ptrdiff_t = isize; -pub type size_t = ::uintptr_t; -pub type ssize_t = ::intptr_t; +pub type size_t = crate::uintptr_t; +pub type ssize_t = intptr_t; -pub type pid_t = ::c_int; +pub type pid_t = c_int; pub type in_addr_t = u32; -pub type sighandler_t = ::size_t; +pub type sighandler_t = size_t; pub type cpuset_t = u32; -pub type blkcnt_t = ::c_long; -pub type blksize_t = ::c_long; -pub type ino_t = ::c_ulong; +pub type blkcnt_t = c_long; +pub type blksize_t = c_long; +pub type ino_t = c_ulong; -pub type rlim_t = ::c_ulong; -pub type suseconds_t = ::c_long; -pub type time_t = ::c_long; +pub type rlim_t = c_ulong; +pub type suseconds_t = c_long; +pub type time_t = c_long; -pub type errno_t = ::c_int; +pub type errno_t = c_int; -pub type useconds_t = ::c_ulong; +pub type useconds_t = c_ulong; -pub type socklen_t = ::c_uint; +pub type socklen_t = c_uint; -pub type pthread_t = ::c_ulong; +pub type pthread_t = c_ulong; -pub type clockid_t = ::c_int; +pub type clockid_t = c_int; //defined for the structs -pub type dev_t = ::c_ulong; -pub type mode_t = ::c_int; -pub type nlink_t = ::c_ulong; -pub type uid_t = ::c_ushort; -pub type gid_t = ::c_ushort; -pub type sigset_t = ::c_ulonglong; -pub type key_t = ::c_long; +pub type dev_t = c_ulong; +pub type mode_t = c_int; +pub type nlink_t = c_ulong; +pub type uid_t = c_ushort; +pub type gid_t = c_ushort; +pub type sigset_t = c_ulonglong; +pub type key_t = c_long; -pub type nfds_t = ::c_uint; -pub type stat64 = ::stat; +pub type nfds_t = c_uint; +pub type stat64 = crate::stat; -pub type pthread_key_t = ::c_ulong; +pub type pthread_key_t = c_ulong; // From b_off_t.h -pub type off_t = ::c_longlong; +pub type off_t = c_longlong; pub type off64_t = off_t; // From b_BOOL.h -pub type BOOL = ::c_int; +pub type BOOL = c_int; // From vxWind.h .. -pub type _Vx_OBJ_HANDLE = ::c_int; -pub type _Vx_TASK_ID = ::_Vx_OBJ_HANDLE; -pub type _Vx_MSG_Q_ID = ::_Vx_OBJ_HANDLE; -pub type _Vx_SEM_ID_KERNEL = ::_Vx_OBJ_HANDLE; -pub type _Vx_RTP_ID = ::_Vx_OBJ_HANDLE; -pub type _Vx_SD_ID = ::_Vx_OBJ_HANDLE; -pub type _Vx_CONDVAR_ID = ::_Vx_OBJ_HANDLE; -pub type _Vx_SEM_ID = *mut ::_Vx_semaphore; -pub type OBJ_HANDLE = ::_Vx_OBJ_HANDLE; -pub type TASK_ID = ::OBJ_HANDLE; -pub type MSG_Q_ID = ::OBJ_HANDLE; -pub type SEM_ID_KERNEL = ::OBJ_HANDLE; -pub type RTP_ID = ::OBJ_HANDLE; -pub type SD_ID = ::OBJ_HANDLE; -pub type CONDVAR_ID = ::OBJ_HANDLE; -pub type STATUS = ::OBJ_HANDLE; +pub type _Vx_OBJ_HANDLE = c_int; +pub type _Vx_TASK_ID = crate::_Vx_OBJ_HANDLE; +pub type _Vx_MSG_Q_ID = crate::_Vx_OBJ_HANDLE; +pub type _Vx_SEM_ID_KERNEL = crate::_Vx_OBJ_HANDLE; +pub type _Vx_RTP_ID = crate::_Vx_OBJ_HANDLE; +pub type _Vx_SD_ID = crate::_Vx_OBJ_HANDLE; +pub type _Vx_CONDVAR_ID = crate::_Vx_OBJ_HANDLE; +pub type _Vx_SEM_ID = *mut crate::_Vx_semaphore; +pub type OBJ_HANDLE = crate::_Vx_OBJ_HANDLE; +pub type TASK_ID = crate::OBJ_HANDLE; +pub type MSG_Q_ID = crate::OBJ_HANDLE; +pub type SEM_ID_KERNEL = crate::OBJ_HANDLE; +pub type RTP_ID = crate::OBJ_HANDLE; +pub type SD_ID = crate::OBJ_HANDLE; +pub type CONDVAR_ID = crate::OBJ_HANDLE; +pub type STATUS = crate::OBJ_HANDLE; // From vxTypes.h pub type _Vx_usr_arg_t = isize; pub type _Vx_exit_code_t = isize; -pub type _Vx_ticks_t = ::c_uint; -pub type _Vx_ticks64_t = ::c_ulonglong; +pub type _Vx_ticks_t = c_uint; +pub type _Vx_ticks64_t = c_ulonglong; -pub type sa_family_t = ::c_uchar; +pub type sa_family_t = c_uchar; // mqueue.h -pub type mqd_t = ::c_int; +pub type mqd_t = c_int; #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum _Vx_semaphore {} -impl ::Copy for _Vx_semaphore {} -impl ::Clone for _Vx_semaphore { +impl Copy for _Vx_semaphore {} +impl Clone for _Vx_semaphore { fn clone(&self) -> _Vx_semaphore { *self } } impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { + pub unsafe fn si_addr(&self) -> *mut c_void { self.si_addr } - pub unsafe fn si_value(&self) -> ::sigval { + pub unsafe fn si_value(&self) -> crate::sigval { self.si_value } - pub unsafe fn si_pid(&self) -> ::pid_t { + pub unsafe fn si_pid(&self) -> crate::pid_t { self.si_pid } - pub unsafe fn si_uid(&self) -> ::uid_t { + pub unsafe fn si_uid(&self) -> crate::uid_t { self.si_uid } - pub unsafe fn si_status(&self) -> ::c_int { + pub unsafe fn si_status(&self) -> c_int { self.si_status } } @@ -140,210 +140,210 @@ impl siginfo_t { s! { // b_pthread_condattr_t.h pub struct pthread_condattr_t { - pub condAttrStatus: ::c_int, - pub condAttrPshared: ::c_int, - pub condAttrClockId: ::clockid_t, + pub condAttrStatus: c_int, + pub condAttrPshared: c_int, + pub condAttrClockId: crate::clockid_t, } // b_pthread_cond_t.h pub struct pthread_cond_t { - pub condSemId: ::_Vx_SEM_ID, - pub condValid: ::c_int, - pub condInitted: ::c_int, - pub condRefCount: ::c_int, - pub condMutex: *mut ::pthread_mutex_t, - pub condAttr: ::pthread_condattr_t, - pub condSemName: [::c_char; _PTHREAD_SHARED_SEM_NAME_MAX], + pub condSemId: crate::_Vx_SEM_ID, + pub condValid: c_int, + pub condInitted: c_int, + pub condRefCount: c_int, + pub condMutex: *mut crate::pthread_mutex_t, + pub condAttr: crate::pthread_condattr_t, + pub condSemName: [c_char; _PTHREAD_SHARED_SEM_NAME_MAX], } // b_pthread_rwlockattr_t.h pub struct pthread_rwlockattr_t { - pub rwlockAttrStatus: ::c_int, - pub rwlockAttrPshared: ::c_int, - pub rwlockAttrMaxReaders: ::c_uint, - pub rwlockAttrConformOpt: ::c_uint, + pub rwlockAttrStatus: c_int, + pub rwlockAttrPshared: c_int, + pub rwlockAttrMaxReaders: c_uint, + pub rwlockAttrConformOpt: c_uint, } // b_pthread_rwlock_t.h pub struct pthread_rwlock_t { - pub rwlockSemId: ::_Vx_SEM_ID, - pub rwlockReadersRefCount: ::c_uint, - pub rwlockValid: ::c_int, - pub rwlockInitted: ::c_int, - pub rwlockAttr: ::pthread_rwlockattr_t, - pub rwlockSemName: [::c_char; _PTHREAD_SHARED_SEM_NAME_MAX], + pub rwlockSemId: crate::_Vx_SEM_ID, + pub rwlockReadersRefCount: c_uint, + pub rwlockValid: c_int, + pub rwlockInitted: c_int, + pub rwlockAttr: crate::pthread_rwlockattr_t, + pub rwlockSemName: [c_char; _PTHREAD_SHARED_SEM_NAME_MAX], } // b_struct_timeval.h pub struct timeval { - pub tv_sec: ::time_t, - pub tv_usec: ::suseconds_t, + pub tv_sec: crate::time_t, + pub tv_usec: crate::suseconds_t, } // socket.h pub struct linger { - pub l_onoff: ::c_int, - pub l_linger: ::c_int, + pub l_onoff: c_int, + pub l_linger: c_int, } pub struct sockaddr { - pub sa_len: ::c_uchar, + pub sa_len: c_uchar, pub sa_family: sa_family_t, - pub sa_data: [::c_char; 14], + pub sa_data: [c_char; 14], } pub struct iovec { - pub iov_base: *mut ::c_void, - pub iov_len: ::size_t, + pub iov_base: *mut c_void, + pub iov_len: size_t, } pub struct msghdr { pub msg_name: *mut c_void, pub msg_namelen: socklen_t, pub msg_iov: *mut iovec, - pub msg_iovlen: ::c_int, + pub msg_iovlen: c_int, pub msg_control: *mut c_void, pub msg_controllen: socklen_t, - pub msg_flags: ::c_int, + pub msg_flags: c_int, } pub struct cmsghdr { pub cmsg_len: socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + pub cmsg_level: c_int, + pub cmsg_type: c_int, } // poll.h pub struct pollfd { - pub fd: ::c_int, - pub events: ::c_short, - pub revents: ::c_short, + pub fd: c_int, + pub events: c_short, + pub revents: c_short, } // resource.h pub struct rlimit { - pub rlim_cur: ::rlim_t, - pub rlim_max: ::rlim_t, + pub rlim_cur: crate::rlim_t, + pub rlim_max: crate::rlim_t, } // stat.h 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_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_atime: ::time_t, - pub st_mtime: ::time_t, - pub st_ctime: ::time_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_attrib: ::c_uchar, - pub st_reserved1: ::c_int, - pub st_reserved2: ::c_int, - pub st_reserved3: ::c_int, - pub st_reserved4: ::c_int, + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_atime: crate::time_t, + pub st_mtime: crate::time_t, + pub st_ctime: crate::time_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_attrib: c_uchar, + pub st_reserved1: c_int, + pub st_reserved2: c_int, + pub st_reserved3: c_int, + pub st_reserved4: c_int, } //b_struct__Timespec.h pub struct _Timespec { - pub tv_sec: ::time_t, - pub tv_nsec: ::c_long, + pub tv_sec: crate::time_t, + pub tv_nsec: c_long, } // b_struct__Sched_param.h pub struct sched_param { - pub sched_priority: ::c_int, /* scheduling priority */ - pub sched_ss_low_priority: ::c_int, /* low scheduling priority */ - pub sched_ss_repl_period: ::_Timespec, /* replenishment period */ - pub sched_ss_init_budget: ::_Timespec, /* initial budget */ - pub sched_ss_max_repl: ::c_int, /* max pending replenishment */ + pub sched_priority: c_int, /* scheduling priority */ + pub sched_ss_low_priority: c_int, /* low scheduling priority */ + pub sched_ss_repl_period: crate::_Timespec, /* replenishment period */ + pub sched_ss_init_budget: crate::_Timespec, /* initial budget */ + pub sched_ss_max_repl: c_int, /* max pending replenishment */ } // b_pthread_attr_t.h pub struct pthread_attr_t { - pub threadAttrStatus: ::c_int, - pub threadAttrStacksize: ::size_t, - pub threadAttrStackaddr: *mut ::c_void, - pub threadAttrGuardsize: ::size_t, - pub threadAttrDetachstate: ::c_int, - pub threadAttrContentionscope: ::c_int, - pub threadAttrInheritsched: ::c_int, - pub threadAttrSchedpolicy: ::c_int, - pub threadAttrName: *mut ::c_char, - pub threadAttrOptions: ::c_int, - pub threadAttrSchedparam: ::sched_param, + pub threadAttrStatus: c_int, + pub threadAttrStacksize: size_t, + pub threadAttrStackaddr: *mut c_void, + pub threadAttrGuardsize: size_t, + pub threadAttrDetachstate: c_int, + pub threadAttrContentionscope: c_int, + pub threadAttrInheritsched: c_int, + pub threadAttrSchedpolicy: c_int, + pub threadAttrName: *mut c_char, + pub threadAttrOptions: c_int, + pub threadAttrSchedparam: crate::sched_param, } // signal.h pub struct sigaction { - pub sa_u: ::sa_u_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, + pub sa_u: crate::sa_u_t, + pub sa_mask: crate::sigset_t, + pub sa_flags: c_int, } // b_stack_t.h pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, + pub ss_sp: *mut c_void, + pub ss_size: size_t, + pub ss_flags: c_int, } // signal.h pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_value: ::sigval, - pub si_errno: ::c_int, - pub si_status: ::c_int, - pub si_addr: *mut ::c_void, - pub si_uid: ::uid_t, - pub si_pid: ::pid_t, + pub si_signo: c_int, + pub si_code: c_int, + pub si_value: crate::sigval, + pub si_errno: c_int, + pub si_status: c_int, + pub si_addr: *mut c_void, + pub si_uid: crate::uid_t, + pub si_pid: crate::pid_t, } // pthread.h (krnl) // b_pthread_mutexattr_t.h (usr) pub struct pthread_mutexattr_t { - mutexAttrStatus: ::c_int, - mutexAttrPshared: ::c_int, - mutexAttrProtocol: ::c_int, - mutexAttrPrioceiling: ::c_int, - mutexAttrType: ::c_int, + mutexAttrStatus: c_int, + mutexAttrPshared: c_int, + mutexAttrProtocol: c_int, + mutexAttrPrioceiling: c_int, + mutexAttrType: c_int, } // pthread.h (krnl) // b_pthread_mutex_t.h (usr) pub struct pthread_mutex_t { - pub mutexSemId: ::_Vx_SEM_ID, /*_Vx_SEM_ID ..*/ - pub mutexValid: ::c_int, - pub mutexInitted: ::c_int, - pub mutexCondRefCount: ::c_int, - pub mutexSavPriority: ::c_int, - pub mutexAttr: ::pthread_mutexattr_t, - pub mutexSemName: [::c_char; _PTHREAD_SHARED_SEM_NAME_MAX], + pub mutexSemId: crate::_Vx_SEM_ID, /*_Vx_SEM_ID ..*/ + pub mutexValid: c_int, + pub mutexInitted: c_int, + pub mutexCondRefCount: c_int, + pub mutexSavPriority: c_int, + pub mutexAttr: crate::pthread_mutexattr_t, + pub mutexSemName: [c_char; _PTHREAD_SHARED_SEM_NAME_MAX], } // b_struct_timespec.h pub struct timespec { - pub tv_sec: ::time_t, - pub tv_nsec: ::c_long, + pub tv_sec: crate::time_t, + pub tv_nsec: c_long, } // time.h pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, } // in.h @@ -366,19 +366,19 @@ s! { // in6.h pub struct ipv6_mreq { pub ipv6mr_multiaddr: in6_addr, - pub ipv6mr_interface: ::c_uint, + pub ipv6mr_interface: c_uint, } // netdb.h pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: ::size_t, - pub ai_canonname: *mut ::c_char, - pub ai_addr: *mut ::sockaddr, - pub ai_next: *mut ::addrinfo, + pub ai_flags: c_int, + pub ai_family: c_int, + pub ai_socktype: c_int, + pub ai_protocol: c_int, + pub ai_addrlen: size_t, + pub ai_canonname: *mut c_char, + pub ai_addr: *mut crate::sockaddr, + pub ai_next: *mut crate::addrinfo, } // in.h @@ -386,8 +386,8 @@ s! { pub sin_len: u8, pub sin_family: u8, pub sin_port: u16, - pub sin_addr: ::in_addr, - pub sin_zero: [::c_char; 8], + pub sin_addr: crate::in_addr, + pub sin_zero: [c_char; 8], } // in6.h @@ -396,75 +396,75 @@ s! { pub sin6_family: u8, pub sin6_port: u16, pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, + pub sin6_addr: crate::in6_addr, pub sin6_scope_id: u32, } pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, + pub dli_fname: *const c_char, + pub dli_fbase: *mut c_void, + pub dli_sname: *const c_char, + pub dli_saddr: *mut c_void, } pub struct mq_attr { - pub mq_maxmsg: ::c_long, - pub mq_msgsize: ::c_long, - pub mq_flags: ::c_long, - pub mq_curmsgs: ::c_long, + pub mq_maxmsg: c_long, + pub mq_msgsize: c_long, + pub mq_flags: c_long, + pub mq_curmsgs: c_long, } } s_no_extra_traits! { // dirent.h pub struct dirent { - pub d_ino: ::ino_t, - pub d_name: [::c_char; _PARM_NAME_MAX as usize + 1], + pub d_ino: crate::ino_t, + pub d_name: [c_char; _PARM_NAME_MAX as usize + 1], } pub struct sockaddr_un { pub sun_len: u8, pub sun_family: sa_family_t, - pub sun_path: [::c_char; 104], + pub sun_path: [c_char; 104], } // rtpLibCommon.h pub struct RTP_DESC { - pub status: ::c_int, + pub status: c_int, pub options: u32, - pub entrAddr: *mut ::c_void, - pub initTaskId: ::TASK_ID, - pub parentId: ::RTP_ID, - pub pathName: [::c_char; VX_RTP_NAME_LENGTH as usize + 1], - pub taskCnt: ::c_int, - pub textStart: *mut ::c_void, - pub textEnd: *mut ::c_void, + pub entrAddr: *mut c_void, + pub initTaskId: crate::TASK_ID, + pub parentId: crate::RTP_ID, + pub pathName: [c_char; VX_RTP_NAME_LENGTH as usize + 1], + pub taskCnt: c_int, + pub textStart: *mut c_void, + pub textEnd: *mut c_void, } // socket.h pub struct sockaddr_storage { - pub ss_len: ::c_uchar, - pub ss_family: ::sa_family_t, - pub __ss_pad1: [::c_char; _SS_PAD1SIZE], + pub ss_len: c_uchar, + pub ss_family: crate::sa_family_t, + pub __ss_pad1: [c_char; _SS_PAD1SIZE], pub __ss_align: i32, - pub __ss_pad2: [::c_char; _SS_PAD2SIZE], + pub __ss_pad2: [c_char; _SS_PAD2SIZE], } pub union sa_u_t { - pub sa_handler: ::Option !>, + pub sa_handler: Option !>, pub sa_sigaction: - ::Option !>, + Option !>, } pub union sigval { - pub sival_int: ::c_int, - pub sival_ptr: *mut ::c_void, + pub sival_int: c_int, + pub sival_ptr: *mut c_void, } } cfg_if! { if #[cfg(feature = "extra_traits")] { - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_name", &&self.d_name[..]) @@ -472,8 +472,8 @@ cfg_if! { } } - impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_un") .field("sun_len", &self.sun_len) .field("sun_family", &self.sun_family) @@ -482,8 +482,8 @@ cfg_if! { } } - impl ::fmt::Debug for RTP_DESC { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for RTP_DESC { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("RTP_DESC") .field("status", &self.status) .field("options", &self.options) @@ -497,8 +497,8 @@ cfg_if! { .finish() } } - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_len", &self.ss_len) .field("ss_family", &self.ss_family) @@ -525,8 +525,8 @@ cfg_if! { } } impl Eq for sa_u_t {} - impl ::fmt::Debug for sa_u_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sa_u_t { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { unsafe { let h = match self.sa_handler { Some(handler) => handler as usize, @@ -537,8 +537,8 @@ cfg_if! { } } } - impl ::hash::Hash for sa_u_t { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sa_u_t { + fn hash(&self, state: &mut H) { unsafe { let h = match self.sa_handler { Some(handler) => handler as usize, @@ -555,144 +555,144 @@ cfg_if! { } } impl Eq for sigval {} - impl ::fmt::Debug for sigval { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for sigval { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("sigval") .field("sival_ptr", unsafe { &(self.sival_ptr as usize) }) .finish() } } - impl ::hash::Hash for sigval { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for sigval { + fn hash(&self, state: &mut H) { unsafe { (self.sival_ptr as usize).hash(state) }; } } } } -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const EXIT_FAILURE: ::c_int = 1; +pub const EXIT_SUCCESS: c_int = 0; +pub const EXIT_FAILURE: c_int = 1; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SYSTEM: ::c_int = 11; +pub const EAI_SERVICE: c_int = 9; +pub const EAI_SOCKTYPE: c_int = 10; +pub const EAI_SYSTEM: c_int = 11; // FIXME: This is not defined in vxWorks, but we have to define it here // to make the building pass for getrandom and std -pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; +pub const RTLD_DEFAULT: *mut c_void = 0i64 as *mut c_void; //Clock Lib Stuff -pub const CLOCK_REALTIME: ::c_int = 0x0; -pub const CLOCK_MONOTONIC: ::c_int = 0x1; -pub const CLOCK_PROCESS_CPUTIME_ID: ::c_int = 0x2; -pub const CLOCK_THREAD_CPUTIME_ID: ::c_int = 0x3; -pub const TIMER_ABSTIME: ::c_int = 0x1; -pub const TIMER_RELTIME: ::c_int = 0x0; +pub const CLOCK_REALTIME: c_int = 0x0; +pub const CLOCK_MONOTONIC: c_int = 0x1; +pub const CLOCK_PROCESS_CPUTIME_ID: c_int = 0x2; +pub const CLOCK_THREAD_CPUTIME_ID: c_int = 0x3; +pub const TIMER_ABSTIME: c_int = 0x1; +pub const TIMER_RELTIME: c_int = 0x0; // PTHREAD STUFF -pub const PTHREAD_INITIALIZED_OBJ: ::c_int = 0xF70990EF; -pub const PTHREAD_DESTROYED_OBJ: ::c_int = -1; -pub const PTHREAD_VALID_OBJ: ::c_int = 0xEC542A37; -pub const PTHREAD_INVALID_OBJ: ::c_int = -1; -pub const PTHREAD_UNUSED_YET_OBJ: ::c_int = -1; - -pub const PTHREAD_PRIO_NONE: ::c_int = 0; -pub const PTHREAD_PRIO_INHERIT: ::c_int = 1; -pub const PTHREAD_PRIO_PROTECT: ::c_int = 2; - -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; +pub const PTHREAD_INITIALIZED_OBJ: c_int = 0xF70990EF; +pub const PTHREAD_DESTROYED_OBJ: c_int = -1; +pub const PTHREAD_VALID_OBJ: c_int = 0xEC542A37; +pub const PTHREAD_INVALID_OBJ: c_int = -1; +pub const PTHREAD_UNUSED_YET_OBJ: c_int = -1; + +pub const PTHREAD_PRIO_NONE: c_int = 0; +pub const PTHREAD_PRIO_INHERIT: c_int = 1; +pub const PTHREAD_PRIO_PROTECT: c_int = 2; + +pub const PTHREAD_MUTEX_NORMAL: c_int = 0; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 1; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_NORMAL; pub const PTHREAD_STACK_MIN: usize = 4096; pub const _PTHREAD_SHARED_SEM_NAME_MAX: usize = 30; //sched.h -pub const SCHED_FIFO: ::c_int = 0x01; -pub const SCHED_RR: ::c_int = 0x02; -pub const SCHED_OTHER: ::c_int = 0x04; -pub const SCHED_SPORADIC: ::c_int = 0x08; -pub const PRIO_PROCESS: ::c_uint = 0; -pub const SCHED_FIFO_HIGH_PRI: ::c_int = 255; -pub const SCHED_FIFO_LOW_PRI: ::c_int = 0; -pub const SCHED_RR_HIGH_PRI: ::c_int = 255; -pub const SCHED_RR_LOW_PRI: ::c_int = 0; -pub const SCHED_SPORADIC_HIGH_PRI: ::c_int = 255; -pub const SCHED_SPORADIC_LOW_PRI: ::c_int = 0; +pub const SCHED_FIFO: c_int = 0x01; +pub const SCHED_RR: c_int = 0x02; +pub const SCHED_OTHER: c_int = 0x04; +pub const SCHED_SPORADIC: c_int = 0x08; +pub const PRIO_PROCESS: c_uint = 0; +pub const SCHED_FIFO_HIGH_PRI: c_int = 255; +pub const SCHED_FIFO_LOW_PRI: c_int = 0; +pub const SCHED_RR_HIGH_PRI: c_int = 255; +pub const SCHED_RR_LOW_PRI: c_int = 0; +pub const SCHED_SPORADIC_HIGH_PRI: c_int = 255; +pub const SCHED_SPORADIC_LOW_PRI: c_int = 0; // ERRNO STUFF -pub const ERROR: ::c_int = -1; -pub const OK: ::c_int = 0; -pub const EPERM: ::c_int = 1; /* Not owner */ -pub const ENOENT: ::c_int = 2; /* No such file or directory */ -pub const ESRCH: ::c_int = 3; /* No such process */ -pub const EINTR: ::c_int = 4; /* Interrupted system call */ -pub const EIO: ::c_int = 5; /* I/O error */ -pub const ENXIO: ::c_int = 6; /* No such device or address */ -pub const E2BIG: ::c_int = 7; /* Arg list too long */ -pub const ENOEXEC: ::c_int = 8; /* Exec format error */ -pub const EBADF: ::c_int = 9; /* Bad file number */ -pub const ECHILD: ::c_int = 10; /* No children */ -pub const EAGAIN: ::c_int = 11; /* No more processes */ -pub const ENOMEM: ::c_int = 12; /* Not enough core */ -pub const EACCES: ::c_int = 13; /* Permission denied */ -pub const EFAULT: ::c_int = 14; -pub const ENOTEMPTY: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENAMETOOLONG: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDEADLK: ::c_int = 33; -pub const ERANGE: ::c_int = 38; -pub const EDESTADDRREQ: ::c_int = 40; -pub const EPROTOTYPE: ::c_int = 41; -pub const ENOPROTOOPT: ::c_int = 42; -pub const EPROTONOSUPPORT: ::c_int = 43; -pub const ESOCKTNOSUPPORT: ::c_int = 44; -pub const EOPNOTSUPP: ::c_int = 45; -pub const EPFNOSUPPORT: ::c_int = 46; -pub const EAFNOSUPPORT: ::c_int = 47; -pub const EADDRINUSE: ::c_int = 48; -pub const EADDRNOTAVAIL: ::c_int = 49; -pub const ENOTSOCK: ::c_int = 50; -pub const ENETUNREACH: ::c_int = 51; -pub const ENETRESET: ::c_int = 52; -pub const ECONNABORTED: ::c_int = 53; -pub const ECONNRESET: ::c_int = 54; -pub const ENOBUFS: ::c_int = 55; -pub const EISCONN: ::c_int = 56; -pub const ENOTCONN: ::c_int = 57; -pub const ESHUTDOWN: ::c_int = 58; -pub const ETOOMANYREFS: ::c_int = 59; -pub const ETIMEDOUT: ::c_int = 60; -pub const ECONNREFUSED: ::c_int = 61; -pub const ENETDOWN: ::c_int = 62; -pub const ETXTBSY: ::c_int = 63; -pub const ELOOP: ::c_int = 64; -pub const EHOSTUNREACH: ::c_int = 65; -pub const EINPROGRESS: ::c_int = 68; -pub const EALREADY: ::c_int = 69; -pub const EWOULDBLOCK: ::c_int = 70; -pub const ENOSYS: ::c_int = 71; -pub const EDQUOT: ::c_int = 83; -pub const ESTALE: ::c_int = 88; +pub const ERROR: c_int = -1; +pub const OK: c_int = 0; +pub const EPERM: c_int = 1; /* Not owner */ +pub const ENOENT: c_int = 2; /* No such file or directory */ +pub const ESRCH: c_int = 3; /* No such process */ +pub const EINTR: c_int = 4; /* Interrupted system call */ +pub const EIO: c_int = 5; /* I/O error */ +pub const ENXIO: c_int = 6; /* No such device or address */ +pub const E2BIG: c_int = 7; /* Arg list too long */ +pub const ENOEXEC: c_int = 8; /* Exec format error */ +pub const EBADF: c_int = 9; /* Bad file number */ +pub const ECHILD: c_int = 10; /* No children */ +pub const EAGAIN: c_int = 11; /* No more processes */ +pub const ENOMEM: c_int = 12; /* Not enough core */ +pub const EACCES: c_int = 13; /* Permission denied */ +pub const EFAULT: c_int = 14; +pub const ENOTEMPTY: c_int = 15; +pub const EBUSY: c_int = 16; +pub const EEXIST: c_int = 17; +pub const EXDEV: c_int = 18; +pub const ENODEV: c_int = 19; +pub const ENOTDIR: c_int = 20; +pub const EISDIR: c_int = 21; +pub const EINVAL: c_int = 22; +pub const ENAMETOOLONG: c_int = 26; +pub const EFBIG: c_int = 27; +pub const ENOSPC: c_int = 28; +pub const ESPIPE: c_int = 29; +pub const EROFS: c_int = 30; +pub const EMLINK: c_int = 31; +pub const EPIPE: c_int = 32; +pub const EDEADLK: c_int = 33; +pub const ERANGE: c_int = 38; +pub const EDESTADDRREQ: c_int = 40; +pub const EPROTOTYPE: c_int = 41; +pub const ENOPROTOOPT: c_int = 42; +pub const EPROTONOSUPPORT: c_int = 43; +pub const ESOCKTNOSUPPORT: c_int = 44; +pub const EOPNOTSUPP: c_int = 45; +pub const EPFNOSUPPORT: c_int = 46; +pub const EAFNOSUPPORT: c_int = 47; +pub const EADDRINUSE: c_int = 48; +pub const EADDRNOTAVAIL: c_int = 49; +pub const ENOTSOCK: c_int = 50; +pub const ENETUNREACH: c_int = 51; +pub const ENETRESET: c_int = 52; +pub const ECONNABORTED: c_int = 53; +pub const ECONNRESET: c_int = 54; +pub const ENOBUFS: c_int = 55; +pub const EISCONN: c_int = 56; +pub const ENOTCONN: c_int = 57; +pub const ESHUTDOWN: c_int = 58; +pub const ETOOMANYREFS: c_int = 59; +pub const ETIMEDOUT: c_int = 60; +pub const ECONNREFUSED: c_int = 61; +pub const ENETDOWN: c_int = 62; +pub const ETXTBSY: c_int = 63; +pub const ELOOP: c_int = 64; +pub const EHOSTUNREACH: c_int = 65; +pub const EINPROGRESS: c_int = 68; +pub const EALREADY: c_int = 69; +pub const EWOULDBLOCK: c_int = 70; +pub const ENOSYS: c_int = 71; +pub const EDQUOT: c_int = 83; +pub const ESTALE: c_int = 88; // NFS errnos: Refer to pkgs_v2/storage/fs/nfs/h/nfs/nfsCommon.h -const M_nfsStat: ::c_int = 48 << 16; +const M_nfsStat: c_int = 48 << 16; enum nfsstat { NFSERR_REMOTE = 71, NFSERR_WFLUSH = 99, @@ -704,292 +704,293 @@ enum nfsstat { NFSERR_JUKEBOX = 10008, } -pub const S_nfsLib_NFS_OK: ::c_int = OK; -pub const S_nfsLib_NFSERR_PERM: ::c_int = EPERM; -pub const S_nfsLib_NFSERR_NOENT: ::c_int = ENOENT; -pub const S_nfsLib_NFSERR_IO: ::c_int = EIO; -pub const S_nfsLib_NFSERR_NXIO: ::c_int = ENXIO; -pub const S_nfsLib_NFSERR_ACCESS: ::c_int = EACCES; -pub const S_nfsLib_NFSERR_EXIST: ::c_int = EEXIST; -pub const S_nfsLib_NFSERR_ENODEV: ::c_int = ENODEV; -pub const S_nfsLib_NFSERR_NOTDIR: ::c_int = ENOTDIR; -pub const S_nfsLib_NFSERR_ISDIR: ::c_int = EISDIR; -pub const S_nfsLib_NFSERR_INVAL: ::c_int = EINVAL; -pub const S_nfsLib_NFSERR_FBIG: ::c_int = EFBIG; -pub const S_nfsLib_NFSERR_NOSPC: ::c_int = ENOSPC; -pub const S_nfsLib_NFSERR_ROFS: ::c_int = EROFS; -pub const S_nfsLib_NFSERR_NAMETOOLONG: ::c_int = ENAMETOOLONG; -pub const S_nfsLib_NFSERR_NOTEMPTY: ::c_int = ENOTEMPTY; -pub const S_nfsLib_NFSERR_DQUOT: ::c_int = EDQUOT; -pub const S_nfsLib_NFSERR_STALE: ::c_int = ESTALE; -pub const S_nfsLib_NFSERR_WFLUSH: ::c_int = M_nfsStat | nfsstat::NFSERR_WFLUSH as ::c_int; -pub const S_nfsLib_NFSERR_REMOTE: ::c_int = M_nfsStat | nfsstat::NFSERR_REMOTE as ::c_int; -pub const S_nfsLib_NFSERR_BADHANDLE: ::c_int = M_nfsStat | nfsstat::NFSERR_BADHANDLE as ::c_int; -pub const S_nfsLib_NFSERR_NOT_SYNC: ::c_int = M_nfsStat | nfsstat::NFSERR_NOT_SYNC as ::c_int; -pub const S_nfsLib_NFSERR_BAD_COOKIE: ::c_int = M_nfsStat | nfsstat::NFSERR_BAD_COOKIE as ::c_int; -pub const S_nfsLib_NFSERR_NOTSUPP: ::c_int = EOPNOTSUPP; -pub const S_nfsLib_NFSERR_TOOSMALL: ::c_int = M_nfsStat | nfsstat::NFSERR_TOOSMALL as ::c_int; -pub const S_nfsLib_NFSERR_SERVERFAULT: ::c_int = EIO; -pub const S_nfsLib_NFSERR_BADTYPE: ::c_int = M_nfsStat | nfsstat::NFSERR_BADTYPE as ::c_int; -pub const S_nfsLib_NFSERR_JUKEBOX: ::c_int = M_nfsStat | nfsstat::NFSERR_JUKEBOX as ::c_int; +pub const S_nfsLib_NFS_OK: c_int = OK; +pub const S_nfsLib_NFSERR_PERM: c_int = EPERM; +pub const S_nfsLib_NFSERR_NOENT: c_int = ENOENT; +pub const S_nfsLib_NFSERR_IO: c_int = EIO; +pub const S_nfsLib_NFSERR_NXIO: c_int = ENXIO; +pub const S_nfsLib_NFSERR_ACCESS: c_int = EACCES; +pub const S_nfsLib_NFSERR_EXIST: c_int = EEXIST; +pub const S_nfsLib_NFSERR_ENODEV: c_int = ENODEV; +pub const S_nfsLib_NFSERR_NOTDIR: c_int = ENOTDIR; +pub const S_nfsLib_NFSERR_ISDIR: c_int = EISDIR; +pub const S_nfsLib_NFSERR_INVAL: c_int = EINVAL; +pub const S_nfsLib_NFSERR_FBIG: c_int = EFBIG; +pub const S_nfsLib_NFSERR_NOSPC: c_int = ENOSPC; +pub const S_nfsLib_NFSERR_ROFS: c_int = EROFS; +pub const S_nfsLib_NFSERR_NAMETOOLONG: c_int = ENAMETOOLONG; +pub const S_nfsLib_NFSERR_NOTEMPTY: c_int = ENOTEMPTY; +pub const S_nfsLib_NFSERR_DQUOT: c_int = EDQUOT; +pub const S_nfsLib_NFSERR_STALE: c_int = ESTALE; +pub const S_nfsLib_NFSERR_WFLUSH: c_int = M_nfsStat | nfsstat::NFSERR_WFLUSH as c_int; +pub const S_nfsLib_NFSERR_REMOTE: c_int = M_nfsStat | nfsstat::NFSERR_REMOTE as c_int; +pub const S_nfsLib_NFSERR_BADHANDLE: c_int = M_nfsStat | nfsstat::NFSERR_BADHANDLE as c_int; +pub const S_nfsLib_NFSERR_NOT_SYNC: c_int = M_nfsStat | nfsstat::NFSERR_NOT_SYNC as c_int; +pub const S_nfsLib_NFSERR_BAD_COOKIE: c_int = M_nfsStat | nfsstat::NFSERR_BAD_COOKIE as c_int; +pub const S_nfsLib_NFSERR_NOTSUPP: c_int = EOPNOTSUPP; +pub const S_nfsLib_NFSERR_TOOSMALL: c_int = M_nfsStat | nfsstat::NFSERR_TOOSMALL as c_int; +pub const S_nfsLib_NFSERR_SERVERFAULT: c_int = EIO; +pub const S_nfsLib_NFSERR_BADTYPE: c_int = M_nfsStat | nfsstat::NFSERR_BADTYPE as c_int; +pub const S_nfsLib_NFSERR_JUKEBOX: c_int = M_nfsStat | nfsstat::NFSERR_JUKEBOX as c_int; // internal offset values for below constants -const taskErrorBase: ::c_int = 0x00030000; -const semErrorBase: ::c_int = 0x00160000; -const objErrorBase: ::c_int = 0x003d0000; +const taskErrorBase: c_int = 0x00030000; +const semErrorBase: c_int = 0x00160000; +const objErrorBase: c_int = 0x003d0000; // taskLibCommon.h -pub const S_taskLib_NAME_NOT_FOUND: ::c_int = taskErrorBase + 0x0065; -pub const S_taskLib_TASK_HOOK_TABLE_FULL: ::c_int = taskErrorBase + 0x0066; -pub const S_taskLib_TASK_HOOK_NOT_FOUND: ::c_int = taskErrorBase + 0x0067; -pub const S_taskLib_ILLEGAL_PRIORITY: ::c_int = taskErrorBase + 0x0068; +pub const S_taskLib_NAME_NOT_FOUND: c_int = taskErrorBase + 0x0065; +pub const S_taskLib_TASK_HOOK_TABLE_FULL: c_int = taskErrorBase + 0x0066; +pub const S_taskLib_TASK_HOOK_NOT_FOUND: c_int = taskErrorBase + 0x0067; +pub const S_taskLib_ILLEGAL_PRIORITY: c_int = taskErrorBase + 0x0068; // FIXME: could also be useful for TASK_DESC type -pub const VX_TASK_NAME_LENGTH: ::c_int = 31; +pub const VX_TASK_NAME_LENGTH: c_int = 31; // semLibCommon.h -pub const S_semLib_INVALID_STATE: ::c_int = semErrorBase + 0x0065; -pub const S_semLib_INVALID_OPTION: ::c_int = semErrorBase + 0x0066; -pub const S_semLib_INVALID_QUEUE_TYPE: ::c_int = semErrorBase + 0x0067; -pub const S_semLib_INVALID_OPERATION: ::c_int = semErrorBase + 0x0068; +pub const S_semLib_INVALID_STATE: c_int = semErrorBase + 0x0065; +pub const S_semLib_INVALID_OPTION: c_int = semErrorBase + 0x0066; +pub const S_semLib_INVALID_QUEUE_TYPE: c_int = semErrorBase + 0x0067; +pub const S_semLib_INVALID_OPERATION: c_int = semErrorBase + 0x0068; // objLibCommon.h -pub const S_objLib_OBJ_ID_ERROR: ::c_int = objErrorBase + 0x0001; -pub const S_objLib_OBJ_UNAVAILABLE: ::c_int = objErrorBase + 0x0002; -pub const S_objLib_OBJ_DELETED: ::c_int = objErrorBase + 0x0003; -pub const S_objLib_OBJ_TIMEOUT: ::c_int = objErrorBase + 0x0004; -pub const S_objLib_OBJ_NO_METHOD: ::c_int = objErrorBase + 0x0005; +pub const S_objLib_OBJ_ID_ERROR: c_int = objErrorBase + 0x0001; +pub const S_objLib_OBJ_UNAVAILABLE: c_int = objErrorBase + 0x0002; +pub const S_objLib_OBJ_DELETED: c_int = objErrorBase + 0x0003; +pub const S_objLib_OBJ_TIMEOUT: c_int = objErrorBase + 0x0004; +pub const S_objLib_OBJ_NO_METHOD: c_int = objErrorBase + 0x0005; // in.h -pub const IPPROTO_IP: ::c_int = 0; -pub const IPPROTO_IPV6: ::c_int = 41; +pub const IPPROTO_IP: c_int = 0; +pub const IPPROTO_IPV6: c_int = 41; -pub const IP_TTL: ::c_int = 4; -pub const IP_MULTICAST_IF: ::c_int = 9; -pub const IP_MULTICAST_TTL: ::c_int = 10; -pub const IP_MULTICAST_LOOP: ::c_int = 11; -pub const IP_ADD_MEMBERSHIP: ::c_int = 12; -pub const IP_DROP_MEMBERSHIP: ::c_int = 13; +pub const IP_TTL: c_int = 4; +pub const IP_MULTICAST_IF: c_int = 9; +pub const IP_MULTICAST_TTL: c_int = 10; +pub const IP_MULTICAST_LOOP: c_int = 11; +pub const IP_ADD_MEMBERSHIP: c_int = 12; +pub const IP_DROP_MEMBERSHIP: c_int = 13; // in6.h -pub const IPV6_V6ONLY: ::c_int = 1; -pub const IPV6_UNICAST_HOPS: ::c_int = 4; -pub const IPV6_MULTICAST_IF: ::c_int = 9; -pub const IPV6_MULTICAST_HOPS: ::c_int = 10; -pub const IPV6_MULTICAST_LOOP: ::c_int = 11; -pub const IPV6_ADD_MEMBERSHIP: ::c_int = 12; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = 13; +pub const IPV6_V6ONLY: c_int = 1; +pub const IPV6_UNICAST_HOPS: c_int = 4; +pub const IPV6_MULTICAST_IF: c_int = 9; +pub const IPV6_MULTICAST_HOPS: c_int = 10; +pub const IPV6_MULTICAST_LOOP: c_int = 11; +pub const IPV6_ADD_MEMBERSHIP: c_int = 12; +pub const IPV6_DROP_MEMBERSHIP: c_int = 13; // STAT Stuff -pub const S_IFMT: ::c_int = 0o17_0000; -pub const S_IFIFO: ::c_int = 0o1_0000; -pub const S_IFCHR: ::c_int = 0o2_0000; -pub const S_IFDIR: ::c_int = 0o4_0000; -pub const S_IFBLK: ::c_int = 0o6_0000; -pub const S_IFREG: ::c_int = 0o10_0000; -pub const S_IFLNK: ::c_int = 0o12_0000; -pub const S_IFSHM: ::c_int = 0o13_0000; -pub const S_IFSOCK: ::c_int = 0o14_0000; -pub const S_ISUID: ::c_int = 0o4000; -pub const S_ISGID: ::c_int = 0o2000; -pub const S_ISTXT: ::c_int = 0o1000; -pub const S_ISVTX: ::c_int = 0o1000; -pub const S_IRUSR: ::c_int = 0o0400; -pub const S_IWUSR: ::c_int = 0o0200; -pub const S_IXUSR: ::c_int = 0o0100; -pub const S_IRWXU: ::c_int = 0o0700; -pub const S_IRGRP: ::c_int = 0o0040; -pub const S_IWGRP: ::c_int = 0o0020; -pub const S_IXGRP: ::c_int = 0o0010; -pub const S_IRWXG: ::c_int = 0o0070; -pub const S_IROTH: ::c_int = 0o0004; -pub const S_IWOTH: ::c_int = 0o0002; -pub const S_IXOTH: ::c_int = 0o0001; -pub const S_IRWXO: ::c_int = 0o0007; +pub const S_IFMT: c_int = 0o17_0000; +pub const S_IFIFO: c_int = 0o1_0000; +pub const S_IFCHR: c_int = 0o2_0000; +pub const S_IFDIR: c_int = 0o4_0000; +pub const S_IFBLK: c_int = 0o6_0000; +pub const S_IFREG: c_int = 0o10_0000; +pub const S_IFLNK: c_int = 0o12_0000; +pub const S_IFSHM: c_int = 0o13_0000; +pub const S_IFSOCK: c_int = 0o14_0000; +pub const S_ISUID: c_int = 0o4000; +pub const S_ISGID: c_int = 0o2000; +pub const S_ISTXT: c_int = 0o1000; +pub const S_ISVTX: c_int = 0o1000; +pub const S_IRUSR: c_int = 0o0400; +pub const S_IWUSR: c_int = 0o0200; +pub const S_IXUSR: c_int = 0o0100; +pub const S_IRWXU: c_int = 0o0700; +pub const S_IRGRP: c_int = 0o0040; +pub const S_IWGRP: c_int = 0o0020; +pub const S_IXGRP: c_int = 0o0010; +pub const S_IRWXG: c_int = 0o0070; +pub const S_IROTH: c_int = 0o0004; +pub const S_IWOTH: c_int = 0o0002; +pub const S_IXOTH: c_int = 0o0001; +pub const S_IRWXO: c_int = 0o0007; // socket.h -pub const SOL_SOCKET: ::c_int = 0xffff; -pub const SOMAXCONN: ::c_int = 128; - -pub const SO_DEBUG: ::c_int = 0x0001; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_RCVLOWAT: ::c_int = 0x0012; -pub const SO_SNDLOWAT: ::c_int = 0x0013; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_ACCEPTCONN: ::c_int = 0x001e; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_REUSEPORT: ::c_int = 0x0200; - -pub const SO_VLAN: ::c_int = 0x8000; - -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_TYPE: ::c_int = 0x1008; -pub const SO_BINDTODEVICE: ::c_int = 0x1010; -pub const SO_OOBINLINE: ::c_int = 0x1011; -pub const SO_CONNTIMEO: ::c_int = 0x100a; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOCK_PACKET: ::c_int = 10; +pub const SOL_SOCKET: c_int = 0xffff; +pub const SOMAXCONN: c_int = 128; + +pub const SO_DEBUG: c_int = 0x0001; +pub const SO_REUSEADDR: c_int = 0x0004; +pub const SO_KEEPALIVE: c_int = 0x0008; +pub const SO_DONTROUTE: c_int = 0x0010; +pub const SO_RCVLOWAT: c_int = 0x0012; +pub const SO_SNDLOWAT: c_int = 0x0013; +pub const SO_SNDTIMEO: c_int = 0x1005; +pub const SO_ACCEPTCONN: c_int = 0x001e; +pub const SO_BROADCAST: c_int = 0x0020; +pub const SO_USELOOPBACK: c_int = 0x0040; +pub const SO_LINGER: c_int = 0x0080; +pub const SO_REUSEPORT: c_int = 0x0200; + +pub const SO_VLAN: c_int = 0x8000; + +pub const SO_SNDBUF: c_int = 0x1001; +pub const SO_RCVBUF: c_int = 0x1002; +pub const SO_RCVTIMEO: c_int = 0x1006; +pub const SO_ERROR: c_int = 0x1007; +pub const SO_TYPE: c_int = 0x1008; +pub const SO_BINDTODEVICE: c_int = 0x1010; +pub const SO_OOBINLINE: c_int = 0x1011; +pub const SO_CONNTIMEO: c_int = 0x100a; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; +pub const SOCK_RAW: c_int = 3; +pub const SOCK_RDM: c_int = 4; +pub const SOCK_SEQPACKET: c_int = 5; +pub const SOCK_PACKET: c_int = 10; pub const _SS_MAXSIZE: usize = 128; pub const _SS_ALIGNSIZE: usize = size_of::(); -pub const _SS_PAD1SIZE: usize = _SS_ALIGNSIZE - size_of::<::c_uchar>() - size_of::<::sa_family_t>(); +pub const _SS_PAD1SIZE: usize = + _SS_ALIGNSIZE - size_of::() - size_of::(); pub const _SS_PAD2SIZE: usize = _SS_MAXSIZE - - size_of::<::c_uchar>() - - size_of::<::sa_family_t>() + - size_of::() + - size_of::() - _SS_PAD1SIZE - _SS_ALIGNSIZE; -pub const MSG_OOB: ::c_int = 0x0001; -pub const MSG_PEEK: ::c_int = 0x0002; -pub const MSG_DONTROUTE: ::c_int = 0x0004; -pub const MSG_EOR: ::c_int = 0x0008; -pub const MSG_TRUNC: ::c_int = 0x0010; -pub const MSG_CTRUNC: ::c_int = 0x0020; -pub const MSG_WAITALL: ::c_int = 0x0040; -pub const MSG_DONTWAIT: ::c_int = 0x0080; -pub const MSG_EOF: ::c_int = 0x0100; -pub const MSG_EXP: ::c_int = 0x0200; -pub const MSG_MBUF: ::c_int = 0x0400; -pub const MSG_NOTIFICATION: ::c_int = 0x0800; -pub const MSG_COMPAT: ::c_int = 0x8000; - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_LOCAL: ::c_int = 1; -pub const AF_UNIX: ::c_int = AF_LOCAL; -pub const AF_INET: ::c_int = 2; -pub const AF_NETLINK: ::c_int = 16; -pub const AF_ROUTE: ::c_int = 17; -pub const AF_LINK: ::c_int = 18; -pub const AF_PACKET: ::c_int = 19; -pub const pseudo_AF_KEY: ::c_int = 27; -pub const AF_KEY: ::c_int = pseudo_AF_KEY; -pub const AF_INET6: ::c_int = 28; -pub const AF_SOCKDEV: ::c_int = 31; -pub const AF_TIPC: ::c_int = 33; -pub const AF_MIPC: ::c_int = 34; -pub const AF_MIPC_SAFE: ::c_int = 35; -pub const AF_MAX: ::c_int = 37; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const IPPROTO_TCP: ::c_int = 6; -pub const TCP_NODELAY: ::c_int = 1; -pub const TCP_MAXSEG: ::c_int = 2; -pub const TCP_NOPUSH: ::c_int = 3; -pub const TCP_KEEPIDLE: ::c_int = 4; -pub const TCP_KEEPINTVL: ::c_int = 5; -pub const TCP_KEEPCNT: ::c_int = 6; +pub const MSG_OOB: c_int = 0x0001; +pub const MSG_PEEK: c_int = 0x0002; +pub const MSG_DONTROUTE: c_int = 0x0004; +pub const MSG_EOR: c_int = 0x0008; +pub const MSG_TRUNC: c_int = 0x0010; +pub const MSG_CTRUNC: c_int = 0x0020; +pub const MSG_WAITALL: c_int = 0x0040; +pub const MSG_DONTWAIT: c_int = 0x0080; +pub const MSG_EOF: c_int = 0x0100; +pub const MSG_EXP: c_int = 0x0200; +pub const MSG_MBUF: c_int = 0x0400; +pub const MSG_NOTIFICATION: c_int = 0x0800; +pub const MSG_COMPAT: c_int = 0x8000; + +pub const AF_UNSPEC: c_int = 0; +pub const AF_LOCAL: c_int = 1; +pub const AF_UNIX: c_int = AF_LOCAL; +pub const AF_INET: c_int = 2; +pub const AF_NETLINK: c_int = 16; +pub const AF_ROUTE: c_int = 17; +pub const AF_LINK: c_int = 18; +pub const AF_PACKET: c_int = 19; +pub const pseudo_AF_KEY: c_int = 27; +pub const AF_KEY: c_int = pseudo_AF_KEY; +pub const AF_INET6: c_int = 28; +pub const AF_SOCKDEV: c_int = 31; +pub const AF_TIPC: c_int = 33; +pub const AF_MIPC: c_int = 34; +pub const AF_MIPC_SAFE: c_int = 35; +pub const AF_MAX: c_int = 37; + +pub const SHUT_RD: c_int = 0; +pub const SHUT_WR: c_int = 1; +pub const SHUT_RDWR: c_int = 2; + +pub const IPPROTO_TCP: c_int = 6; +pub const TCP_NODELAY: c_int = 1; +pub const TCP_MAXSEG: c_int = 2; +pub const TCP_NOPUSH: c_int = 3; +pub const TCP_KEEPIDLE: c_int = 4; +pub const TCP_KEEPINTVL: c_int = 5; +pub const TCP_KEEPCNT: c_int = 6; // ioLib.h -pub const FIONREAD: ::c_int = 0x40040001; -pub const FIOFLUSH: ::c_int = 2; -pub const FIOOPTIONS: ::c_int = 3; -pub const FIOBAUDRATE: ::c_int = 4; -pub const FIODISKFORMAT: ::c_int = 5; -pub const FIODISKINIT: ::c_int = 6; -pub const FIOSEEK: ::c_int = 7; -pub const FIOWHERE: ::c_int = 8; -pub const FIODIRENTRY: ::c_int = 9; -pub const FIORENAME: ::c_int = 10; -pub const FIOREADYCHANGE: ::c_int = 11; -pub const FIODISKCHANGE: ::c_int = 13; -pub const FIOCANCEL: ::c_int = 14; -pub const FIOSQUEEZE: ::c_int = 15; -pub const FIOGETNAME: ::c_int = 18; -pub const FIONBIO: ::c_int = 0x90040010; +pub const FIONREAD: c_int = 0x40040001; +pub const FIOFLUSH: c_int = 2; +pub const FIOOPTIONS: c_int = 3; +pub const FIOBAUDRATE: c_int = 4; +pub const FIODISKFORMAT: c_int = 5; +pub const FIODISKINIT: c_int = 6; +pub const FIOSEEK: c_int = 7; +pub const FIOWHERE: c_int = 8; +pub const FIODIRENTRY: c_int = 9; +pub const FIORENAME: c_int = 10; +pub const FIOREADYCHANGE: c_int = 11; +pub const FIODISKCHANGE: c_int = 13; +pub const FIOCANCEL: c_int = 14; +pub const FIOSQUEEZE: c_int = 15; +pub const FIOGETNAME: c_int = 18; +pub const FIONBIO: c_int = 0x90040010; // limits.h -pub const PATH_MAX: ::c_int = _PARM_PATH_MAX; -pub const _POSIX_PATH_MAX: ::c_int = 256; +pub const PATH_MAX: c_int = _PARM_PATH_MAX; +pub const _POSIX_PATH_MAX: c_int = 256; // Some poll stuff -pub const POLLIN: ::c_short = 0x0001; -pub const POLLPRI: ::c_short = 0x0002; -pub const POLLOUT: ::c_short = 0x0004; -pub const POLLRDNORM: ::c_short = 0x0040; -pub const POLLWRNORM: ::c_short = POLLOUT; -pub const POLLRDBAND: ::c_short = 0x0080; -pub const POLLWRBAND: ::c_short = 0x0100; -pub const POLLERR: ::c_short = 0x0008; -pub const POLLHUP: ::c_short = 0x0010; -pub const POLLNVAL: ::c_short = 0x0020; +pub const POLLIN: c_short = 0x0001; +pub const POLLPRI: c_short = 0x0002; +pub const POLLOUT: c_short = 0x0004; +pub const POLLRDNORM: c_short = 0x0040; +pub const POLLWRNORM: c_short = POLLOUT; +pub const POLLRDBAND: c_short = 0x0080; +pub const POLLWRBAND: c_short = 0x0100; +pub const POLLERR: c_short = 0x0008; +pub const POLLHUP: c_short = 0x0010; +pub const POLLNVAL: c_short = 0x0020; // fnctlcom.h -pub const FD_CLOEXEC: ::c_int = 1; -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; -pub const F_GETOWN: ::c_int = 5; -pub const F_SETOWN: ::c_int = 6; -pub const F_GETLK: ::c_int = 7; -pub const F_SETLK: ::c_int = 8; -pub const F_SETLKW: ::c_int = 9; -pub const F_DUPFD_CLOEXEC: ::c_int = 14; +pub const FD_CLOEXEC: c_int = 1; +pub const F_DUPFD: c_int = 0; +pub const F_GETFD: c_int = 1; +pub const F_SETFD: c_int = 2; +pub const F_GETFL: c_int = 3; +pub const F_SETFL: c_int = 4; +pub const F_GETOWN: c_int = 5; +pub const F_SETOWN: c_int = 6; +pub const F_GETLK: c_int = 7; +pub const F_SETLK: c_int = 8; +pub const F_SETLKW: c_int = 9; +pub const F_DUPFD_CLOEXEC: c_int = 14; // signal.h pub const SIG_DFL: sighandler_t = 0 as sighandler_t; pub const SIG_IGN: sighandler_t = 1 as sighandler_t; pub const SIG_ERR: sighandler_t = -1 as isize as sighandler_t; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGTRAP: ::c_int = 5; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGBUS: ::c_int = 10; -pub const SIGSEGV: ::c_int = 11; -pub const SIGFMT: ::c_int = 12; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; -pub const SIGCNCL: ::c_int = 16; -pub const SIGSTOP: ::c_int = 17; -pub const SIGTSTP: ::c_int = 18; -pub const SIGCONT: ::c_int = 19; -pub const SIGCHLD: ::c_int = 20; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; - -pub const SIG_BLOCK: ::c_int = 1; -pub const SIG_UNBLOCK: ::c_int = 2; -pub const SIG_SETMASK: ::c_int = 3; - -pub const SI_SYNC: ::c_int = 0; -pub const SI_USER: ::c_int = -1; -pub const SI_QUEUE: ::c_int = -2; -pub const SI_TIMER: ::c_int = -3; -pub const SI_ASYNCIO: ::c_int = -4; -pub const SI_MESGQ: ::c_int = -5; -pub const SI_CHILD: ::c_int = -6; -pub const SI_KILL: ::c_int = SI_USER; +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGTRAP: c_int = 5; +pub const SIGABRT: c_int = 6; +pub const SIGEMT: c_int = 7; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGBUS: c_int = 10; +pub const SIGSEGV: c_int = 11; +pub const SIGFMT: c_int = 12; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; +pub const SIGCNCL: c_int = 16; +pub const SIGSTOP: c_int = 17; +pub const SIGTSTP: c_int = 18; +pub const SIGCONT: c_int = 19; +pub const SIGCHLD: c_int = 20; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; + +pub const SIG_BLOCK: c_int = 1; +pub const SIG_UNBLOCK: c_int = 2; +pub const SIG_SETMASK: c_int = 3; + +pub const SI_SYNC: c_int = 0; +pub const SI_USER: c_int = -1; +pub const SI_QUEUE: c_int = -2; +pub const SI_TIMER: c_int = -3; +pub const SI_ASYNCIO: c_int = -4; +pub const SI_MESGQ: c_int = -5; +pub const SI_CHILD: c_int = -6; +pub const SI_KILL: c_int = SI_USER; // vxParams.h definitions -pub const _PARM_NAME_MAX: ::c_int = 255; -pub const _PARM_PATH_MAX: ::c_int = 1024; +pub const _PARM_NAME_MAX: c_int = 255; +pub const _PARM_PATH_MAX: c_int = 1024; // WAIT STUFF -pub const WNOHANG: ::c_int = 0x01; -pub const WUNTRACED: ::c_int = 0x02; +pub const WNOHANG: c_int = 0x01; +pub const WUNTRACED: c_int = 0x02; const PTHREAD_MUTEXATTR_INITIALIZER: pthread_mutexattr_t = pthread_mutexattr_t { mutexAttrStatus: PTHREAD_INITIALIZED_OBJ, @@ -1038,55 +1039,55 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { rwlockSemName: [0; _PTHREAD_SHARED_SEM_NAME_MAX], }; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; // rtpLibCommon.h -pub const VX_RTP_NAME_LENGTH: ::c_int = 255; -pub const RTP_ID_ERROR: ::RTP_ID = -1; +pub const VX_RTP_NAME_LENGTH: c_int = 255; +pub const RTP_ID_ERROR: crate::RTP_ID = -1; // h/public/unistd.h -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 21; // Via unistd.h -pub const _SC_PAGESIZE: ::c_int = 39; -pub const O_ACCMODE: ::c_int = 3; -pub const O_CLOEXEC: ::c_int = 0x100000; // fcntlcom -pub const O_EXCL: ::c_int = 0x0800; -pub const O_CREAT: ::c_int = 0x0200; -pub const O_TRUNC: ::c_int = 0x0400; -pub const O_APPEND: ::c_int = 0x0008; -pub const O_RDWR: ::c_int = 0x0002; -pub const O_WRONLY: ::c_int = 0x0001; -pub const O_RDONLY: ::c_int = 0; -pub const O_NONBLOCK: ::c_int = 0x4000; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 21; // Via unistd.h +pub const _SC_PAGESIZE: c_int = 39; +pub const O_ACCMODE: c_int = 3; +pub const O_CLOEXEC: c_int = 0x100000; // fcntlcom +pub const O_EXCL: c_int = 0x0800; +pub const O_CREAT: c_int = 0x0200; +pub const O_TRUNC: c_int = 0x0400; +pub const O_APPEND: c_int = 0x0008; +pub const O_RDWR: c_int = 0x0002; +pub const O_WRONLY: c_int = 0x0001; +pub const O_RDONLY: c_int = 0; +pub const O_NONBLOCK: c_int = 0x4000; // mman.h -pub const PROT_NONE: ::c_int = 0x0000; -pub const PROT_READ: ::c_int = 0x0001; -pub const PROT_WRITE: ::c_int = 0x0002; -pub const PROT_EXEC: ::c_int = 0x0004; +pub const PROT_NONE: c_int = 0x0000; +pub const PROT_READ: c_int = 0x0001; +pub const PROT_WRITE: c_int = 0x0002; +pub const PROT_EXEC: c_int = 0x0004; -pub const MAP_SHARED: ::c_int = 0x0001; -pub const MAP_PRIVATE: ::c_int = 0x0002; -pub const MAP_ANON: ::c_int = 0x0004; -pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; -pub const MAP_FIXED: ::c_int = 0x0010; -pub const MAP_CONTIG: ::c_int = 0x0020; +pub const MAP_SHARED: c_int = 0x0001; +pub const MAP_PRIVATE: c_int = 0x0002; +pub const MAP_ANON: c_int = 0x0004; +pub const MAP_ANONYMOUS: c_int = MAP_ANON; +pub const MAP_FIXED: c_int = 0x0010; +pub const MAP_CONTIG: c_int = 0x0020; -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; +pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum FILE {} -impl ::Copy for FILE {} -impl ::Clone for FILE { +impl Copy for FILE {} +impl Clone for FILE { fn clone(&self) -> FILE { *self } } #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum fpos_t {} // FIXME: fill this out with a struct -impl ::Copy for fpos_t {} -impl ::Clone for fpos_t { +impl Copy for fpos_t {} +impl Clone for fpos_t { fn clone(&self) -> fpos_t { *self } @@ -1094,18 +1095,18 @@ impl ::Clone for fpos_t { f! { pub {const} fn CMSG_ALIGN(len: usize) -> usize { - len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) + len + crate::mem::size_of::() - 1 & !(crate::mem::size_of::() - 1) } pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { let next = cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize) - + CMSG_ALIGN(::mem::size_of::<::cmsghdr>()); + + CMSG_ALIGN(crate::mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next <= max { - (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut ::cmsghdr + (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr } else { - 0 as *mut ::cmsghdr + 0 as *mut cmsghdr } } @@ -1117,16 +1118,16 @@ f! { } } - pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar).offset(CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { + (cmsg as *mut c_uchar).offset(CMSG_ALIGN(crate::mem::size_of::()) as isize) } - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) as ::c_uint + pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(crate::mem::size_of::())) as c_uint } - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - CMSG_ALIGN(::mem::size_of::()) as ::c_uint + length + pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + CMSG_ALIGN(crate::mem::size_of::()) as c_uint + length } } @@ -1213,7 +1214,7 @@ extern "C" { pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; pub fn wcslen(buf: *const wchar_t) -> size_t; - pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> ::size_t; + pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> size_t; pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; pub fn wmemchr(cx: *const wchar_t, c: wchar_t, n: size_t) -> *mut wchar_t; @@ -1224,82 +1225,82 @@ extern "C" { } extern "C" { - pub fn fprintf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; - pub fn printf(format: *const ::c_char, ...) -> ::c_int; - pub fn snprintf(s: *mut ::c_char, n: ::size_t, format: *const ::c_char, ...) -> ::c_int; - pub fn sprintf(s: *mut ::c_char, format: *const ::c_char, ...) -> ::c_int; - pub fn fscanf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; - pub fn scanf(format: *const ::c_char, ...) -> ::c_int; - pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) -> ::c_int; - pub fn getchar_unlocked() -> ::c_int; - pub fn putchar_unlocked(c: ::c_int) -> ::c_int; - pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; - pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; - pub fn fileno(stream: *mut ::FILE) -> ::c_int; - pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn rewinddir(dirp: *mut ::DIR); - pub fn fchown(fd: ::c_int, owner: ::uid_t, group: ::gid_t) -> ::c_int; - pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; - pub fn alarm(seconds: ::c_uint) -> ::c_uint; - pub fn fchdir(dirfd: ::c_int) -> ::c_int; - pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; - pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; + pub fn fprintf(stream: *mut crate::FILE, format: *const c_char, ...) -> c_int; + pub fn printf(format: *const c_char, ...) -> c_int; + pub fn snprintf(s: *mut c_char, n: size_t, format: *const c_char, ...) -> c_int; + pub fn sprintf(s: *mut c_char, format: *const c_char, ...) -> c_int; + pub fn fscanf(stream: *mut crate::FILE, format: *const c_char, ...) -> c_int; + pub fn scanf(format: *const c_char, ...) -> c_int; + pub fn sscanf(s: *const c_char, format: *const c_char, ...) -> c_int; + pub fn getchar_unlocked() -> c_int; + pub fn putchar_unlocked(c: c_int) -> c_int; + pub fn stat(path: *const c_char, buf: *mut stat) -> c_int; + pub fn fdopen(fd: c_int, mode: *const c_char) -> *mut crate::FILE; + pub fn fileno(stream: *mut crate::FILE) -> c_int; + pub fn creat(path: *const c_char, mode: mode_t) -> c_int; + pub fn rewinddir(dirp: *mut crate::DIR); + pub fn fchown(fd: c_int, owner: crate::uid_t, group: crate::gid_t) -> c_int; + pub fn access(path: *const c_char, amode: c_int) -> c_int; + pub fn alarm(seconds: c_uint) -> c_uint; + pub fn fchdir(dirfd: c_int) -> c_int; + pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> c_int; + pub fn fpathconf(filedes: c_int, name: c_int) -> c_long; pub fn getegid() -> gid_t; pub fn geteuid() -> uid_t; - pub fn getgroups(ngroups_max: ::c_int, groups: *mut gid_t) -> ::c_int; + pub fn getgroups(ngroups_max: c_int, groups: *mut gid_t) -> c_int; pub fn getlogin() -> *mut c_char; - pub fn getopt(argc: ::c_int, argv: *const *mut c_char, optstr: *const c_char) -> ::c_int; - pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; - pub fn pause() -> ::c_int; - pub fn seteuid(uid: uid_t) -> ::c_int; - pub fn setegid(gid: gid_t) -> ::c_int; - pub fn sleep(secs: ::c_uint) -> ::c_uint; - pub fn ttyname(fd: ::c_int) -> *mut c_char; - pub fn wait(status: *mut ::c_int) -> pid_t; + pub fn getopt(argc: c_int, argv: *const *mut c_char, optstr: *const c_char) -> c_int; + pub fn pathconf(path: *const c_char, name: c_int) -> c_long; + pub fn pause() -> c_int; + pub fn seteuid(uid: uid_t) -> c_int; + pub fn setegid(gid: gid_t) -> c_int; + pub fn sleep(secs: c_uint) -> c_uint; + pub fn ttyname(fd: c_int) -> *mut c_char; + pub fn wait(status: *mut c_int) -> pid_t; pub fn umask(mask: mode_t) -> mode_t; - pub fn mlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; - pub fn mlockall(flags: ::c_int) -> ::c_int; - pub fn munlockall() -> ::c_int; + pub fn mlock(addr: *const c_void, len: size_t) -> c_int; + pub fn mlockall(flags: c_int) -> c_int; + pub fn munlockall() -> c_int; pub fn mmap( - addr: *mut ::c_void, - len: ::size_t, - prot: ::c_int, - flags: ::c_int, - fd: ::c_int, + addr: *mut c_void, + len: size_t, + prot: c_int, + flags: c_int, + fd: c_int, offset: off_t, - ) -> *mut ::c_void; - pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; - pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; - pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int; - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + ) -> *mut c_void; + pub fn munmap(addr: *mut c_void, len: size_t) -> c_int; + pub fn truncate(path: *const c_char, length: off_t) -> c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: crate::mode_t) -> c_int; + pub fn shm_unlink(name: *const c_char) -> c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn pthread_exit(value: *mut ::c_void) -> !; - pub fn pthread_attr_setdetachstate(attr: *mut ::pthread_attr_t, state: ::c_int) -> ::c_int; + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut c_void) -> c_int; + pub fn pthread_exit(value: *mut c_void) -> !; + pub fn pthread_attr_setdetachstate(attr: *mut crate::pthread_attr_t, state: c_int) -> c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; - pub fn sigaddset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; + pub fn sigaddset(set: *mut sigset_t, signum: c_int) -> c_int; - pub fn sigaction(signum: ::c_int, act: *const sigaction, oldact: *mut sigaction) -> ::c_int; + pub fn sigaction(signum: c_int, act: *const sigaction, oldact: *mut sigaction) -> c_int; - pub fn utimes(filename: *const ::c_char, times: *const ::timeval) -> ::c_int; + pub fn utimes(filename: *const c_char, times: *const crate::timeval) -> c_int; #[link_name = "_rtld_dlopen"] - pub fn dlopen(filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; + pub fn dlopen(filename: *const c_char, flag: c_int) -> *mut c_void; #[link_name = "_rtld_dlerror"] - pub fn dlerror() -> *mut ::c_char; + pub fn dlerror() -> *mut c_char; #[link_name = "_rtld_dlsym"] - pub fn dlsym(handle: *mut ::c_void, symbol: *const ::c_char) -> *mut ::c_void; + pub fn dlsym(handle: *mut c_void, symbol: *const c_char) -> *mut c_void; #[link_name = "_rtld_dlclose"] - pub fn dlclose(handle: *mut ::c_void) -> ::c_int; + pub fn dlclose(handle: *mut c_void) -> c_int; #[link_name = "_rtld_dladdr"] - pub fn dladdr(addr: *mut ::c_void, info: *mut Dl_info) -> ::c_int; + pub fn dladdr(addr: *mut c_void, info: *mut Dl_info) -> c_int; // time.h pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; @@ -1309,422 +1310,431 @@ extern "C" { pub fn gmtime(time_p: *const time_t) -> *mut tm; pub fn localtime(time_p: *const time_t) -> *mut tm; pub fn timegm(tm: *mut tm) -> time_t; - pub fn difftime(time1: time_t, time0: time_t) -> ::c_double; - pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn usleep(secs: ::useconds_t) -> ::c_int; - pub fn putenv(string: *mut c_char) -> ::c_int; - pub fn setlocale(category: ::c_int, locale: *const ::c_char) -> *mut ::c_char; + pub fn difftime(time1: time_t, time0: time_t) -> c_double; + pub fn gethostname(name: *mut c_char, len: size_t) -> c_int; + pub fn usleep(secs: crate::useconds_t) -> c_int; + pub fn putenv(string: *mut c_char) -> c_int; + pub fn setlocale(category: c_int, locale: *const c_char) -> *mut c_char; - pub fn sigprocmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sigpending(set: *mut sigset_t) -> ::c_int; + pub fn sigprocmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; + pub fn sigpending(set: *mut sigset_t) -> c_int; - pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; + pub fn mkfifo(path: *const c_char, mode: mode_t) -> c_int; - pub fn fseeko(stream: *mut ::FILE, offset: ::off_t, whence: ::c_int) -> ::c_int; - pub fn ftello(stream: *mut ::FILE) -> ::off_t; - pub fn mkstemp(template: *mut ::c_char) -> ::c_int; + pub fn fseeko(stream: *mut crate::FILE, offset: off_t, whence: c_int) -> c_int; + pub fn ftello(stream: *mut crate::FILE) -> off_t; + pub fn mkstemp(template: *mut c_char) -> c_int; - pub fn tmpnam(ptr: *mut ::c_char) -> *mut ::c_char; + pub fn tmpnam(ptr: *mut c_char) -> *mut c_char; - pub fn openlog(ident: *const ::c_char, logopt: ::c_int, facility: ::c_int); + pub fn openlog(ident: *const c_char, logopt: c_int, facility: c_int); pub fn closelog(); - pub fn setlogmask(maskpri: ::c_int) -> ::c_int; - pub fn syslog(priority: ::c_int, message: *const ::c_char, ...); + pub fn setlogmask(maskpri: c_int) -> c_int; + pub fn syslog(priority: c_int, message: *const c_char, ...); pub fn getline(lineptr: *mut *mut c_char, n: *mut size_t, stream: *mut FILE) -> ssize_t; } extern "C" { // stdlib.h - pub fn memalign(block_size: ::size_t, size_arg: ::size_t) -> *mut ::c_void; + pub fn memalign(block_size: size_t, size_arg: size_t) -> *mut c_void; // ioLib.h - pub fn getcwd(buf: *mut ::c_char, size: ::size_t) -> *mut ::c_char; + pub fn getcwd(buf: *mut c_char, size: size_t) -> *mut c_char; // ioLib.h - pub fn chdir(attr: *const ::c_char) -> ::c_int; + pub fn chdir(attr: *const c_char) -> c_int; // pthread.h - pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> ::c_int; + pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> c_int; // pthread.h - pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> ::c_int; + pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> c_int; // pthread.h - pub fn pthread_mutexattr_settype(pAttr: *mut ::pthread_mutexattr_t, pType: ::c_int) -> ::c_int; + pub fn pthread_mutexattr_settype(pAttr: *mut crate::pthread_mutexattr_t, pType: c_int) + -> c_int; // pthread.h pub fn pthread_mutex_init( mutex: *mut pthread_mutex_t, attr: *const pthread_mutexattr_t, - ) -> ::c_int; + ) -> c_int; // pthread.h - pub fn pthread_mutex_destroy(mutex: *mut pthread_mutex_t) -> ::c_int; + pub fn pthread_mutex_destroy(mutex: *mut pthread_mutex_t) -> c_int; // pthread.h - pub fn pthread_mutex_lock(mutex: *mut pthread_mutex_t) -> ::c_int; + pub fn pthread_mutex_lock(mutex: *mut pthread_mutex_t) -> c_int; // pthread.h - pub fn pthread_mutex_trylock(mutex: *mut pthread_mutex_t) -> ::c_int; + pub fn pthread_mutex_trylock(mutex: *mut pthread_mutex_t) -> c_int; // pthread.h - pub fn pthread_mutex_timedlock(attr: *mut pthread_mutex_t, spec: *const timespec) -> ::c_int; + pub fn pthread_mutex_timedlock(attr: *mut pthread_mutex_t, spec: *const timespec) -> c_int; // pthread.h - pub fn pthread_mutex_unlock(mutex: *mut pthread_mutex_t) -> ::c_int; + pub fn pthread_mutex_unlock(mutex: *mut pthread_mutex_t) -> c_int; // pthread.h - pub fn pthread_attr_setname(pAttr: *mut ::pthread_attr_t, name: *mut ::c_char) -> ::c_int; + pub fn pthread_attr_setname(pAttr: *mut crate::pthread_attr_t, name: *mut c_char) -> c_int; // pthread.h - pub fn pthread_attr_setstacksize(attr: *mut ::pthread_attr_t, stacksize: ::size_t) -> ::c_int; + pub fn pthread_attr_setstacksize(attr: *mut crate::pthread_attr_t, stacksize: size_t) -> c_int; // pthread.h - pub fn pthread_attr_getstacksize(attr: *const ::pthread_attr_t, size: *mut ::size_t) - -> ::c_int; + pub fn pthread_attr_getstacksize( + attr: *const crate::pthread_attr_t, + size: *mut size_t, + ) -> c_int; // pthread.h - pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_attr_init(attr: *mut crate::pthread_attr_t) -> c_int; // pthread.h pub fn pthread_create( - pThread: *mut ::pthread_t, - pAttr: *const ::pthread_attr_t, - start_routine: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; + pThread: *mut crate::pthread_t, + pAttr: *const crate::pthread_attr_t, + start_routine: extern "C" fn(*mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; //pthread.h pub fn pthread_setschedparam( - native: ::pthread_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; + native: crate::pthread_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; //pthread.h pub fn pthread_getschedparam( - native: ::pthread_t, - policy: *mut ::c_int, - param: *mut ::sched_param, - ) -> ::c_int; + native: crate::pthread_t, + policy: *mut c_int, + param: *mut crate::sched_param, + ) -> c_int; //pthread.h pub fn pthread_attr_setinheritsched( - attr: *mut ::pthread_attr_t, - inheritsched: ::c_int, - ) -> ::c_int; + attr: *mut crate::pthread_attr_t, + inheritsched: c_int, + ) -> c_int; //pthread.h - pub fn pthread_attr_setschedpolicy(attr: *mut ::pthread_attr_t, policy: ::c_int) -> ::c_int; + pub fn pthread_attr_setschedpolicy(attr: *mut crate::pthread_attr_t, policy: c_int) -> c_int; // pthread.h - pub fn pthread_attr_destroy(thread: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_attr_destroy(thread: *mut crate::pthread_attr_t) -> c_int; // pthread.h - pub fn pthread_detach(thread: ::pthread_t) -> ::c_int; + pub fn pthread_detach(thread: crate::pthread_t) -> c_int; // int pthread_atfork (void (*)(void), void (*)(void), void (*)(void)); pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; + prepare: Option, + parent: Option, + child: Option, + ) -> c_int; // stat.h - pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; + pub fn fstat(fildes: c_int, buf: *mut stat) -> c_int; // stat.h - pub fn lstat(path: *const ::c_char, buf: *mut stat) -> ::c_int; + pub fn lstat(path: *const c_char, buf: *mut stat) -> c_int; // unistd.h - pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; + pub fn ftruncate(fd: c_int, length: off_t) -> c_int; // dirent.h - pub fn readdir_r(pDir: *mut ::DIR, entry: *mut ::dirent, result: *mut *mut ::dirent) - -> ::c_int; + pub fn readdir_r( + pDir: *mut crate::DIR, + entry: *mut crate::dirent, + result: *mut *mut crate::dirent, + ) -> c_int; // dirent.h - pub fn readdir(pDir: *mut ::DIR) -> *mut ::dirent; + pub fn readdir(pDir: *mut crate::DIR) -> *mut crate::dirent; // fcntl.h or // ioLib.h - pub fn open(path: *const ::c_char, oflag: ::c_int, ...) -> ::c_int; + pub fn open(path: *const c_char, oflag: c_int, ...) -> c_int; // poll.h - pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; + pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: c_int) -> c_int; // pthread.h - pub fn pthread_condattr_init(attr: *mut ::pthread_condattr_t) -> ::c_int; + pub fn pthread_condattr_init(attr: *mut crate::pthread_condattr_t) -> c_int; // pthread.h - pub fn pthread_condattr_destroy(attr: *mut ::pthread_condattr_t) -> ::c_int; + pub fn pthread_condattr_destroy(attr: *mut crate::pthread_condattr_t) -> c_int; // pthread.h pub fn pthread_condattr_getclock( - pAttr: *const ::pthread_condattr_t, - pClockId: *mut ::clockid_t, - ) -> ::c_int; + pAttr: *const crate::pthread_condattr_t, + pClockId: *mut crate::clockid_t, + ) -> c_int; // pthread.h pub fn pthread_condattr_setclock( - pAttr: *mut ::pthread_condattr_t, - clockId: ::clockid_t, - ) -> ::c_int; + pAttr: *mut crate::pthread_condattr_t, + clockId: crate::clockid_t, + ) -> c_int; // pthread.h pub fn pthread_cond_init( - cond: *mut ::pthread_cond_t, - attr: *const ::pthread_condattr_t, - ) -> ::c_int; + cond: *mut crate::pthread_cond_t, + attr: *const crate::pthread_condattr_t, + ) -> c_int; // pthread.h - pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> ::c_int; + pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> c_int; // pthread.h - pub fn pthread_cond_signal(cond: *mut ::pthread_cond_t) -> ::c_int; + pub fn pthread_cond_signal(cond: *mut crate::pthread_cond_t) -> c_int; // pthread.h - pub fn pthread_cond_broadcast(cond: *mut ::pthread_cond_t) -> ::c_int; + pub fn pthread_cond_broadcast(cond: *mut crate::pthread_cond_t) -> c_int; // pthread.h - pub fn pthread_cond_wait(cond: *mut ::pthread_cond_t, mutex: *mut ::pthread_mutex_t) - -> ::c_int; + pub fn pthread_cond_wait( + cond: *mut crate::pthread_cond_t, + mutex: *mut crate::pthread_mutex_t, + ) -> c_int; // pthread.h - pub fn pthread_rwlockattr_init(attr: *mut ::pthread_rwlockattr_t) -> ::c_int; + pub fn pthread_rwlockattr_init(attr: *mut crate::pthread_rwlockattr_t) -> c_int; // pthread.h - pub fn pthread_rwlockattr_destroy(attr: *mut ::pthread_rwlockattr_t) -> ::c_int; + pub fn pthread_rwlockattr_destroy(attr: *mut crate::pthread_rwlockattr_t) -> c_int; // pthread.h pub fn pthread_rwlockattr_setmaxreaders( - attr: *mut ::pthread_rwlockattr_t, - attr2: ::c_uint, - ) -> ::c_int; + attr: *mut crate::pthread_rwlockattr_t, + attr2: c_uint, + ) -> c_int; // pthread.h pub fn pthread_rwlock_init( - attr: *mut ::pthread_rwlock_t, - host: *const ::pthread_rwlockattr_t, - ) -> ::c_int; + attr: *mut crate::pthread_rwlock_t, + host: *const crate::pthread_rwlockattr_t, + ) -> c_int; // pthread.h - pub fn pthread_rwlock_destroy(attr: *mut ::pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlock_destroy(attr: *mut crate::pthread_rwlock_t) -> c_int; // pthread.h - pub fn pthread_rwlock_rdlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlock_rdlock(attr: *mut crate::pthread_rwlock_t) -> c_int; // pthread.h - pub fn pthread_rwlock_tryrdlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlock_tryrdlock(attr: *mut crate::pthread_rwlock_t) -> c_int; // pthread.h pub fn pthread_rwlock_timedrdlock( - attr: *mut ::pthread_rwlock_t, - host: *const ::timespec, - ) -> ::c_int; + attr: *mut crate::pthread_rwlock_t, + host: *const crate::timespec, + ) -> c_int; // pthread.h - pub fn pthread_rwlock_wrlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlock_wrlock(attr: *mut crate::pthread_rwlock_t) -> c_int; // pthread.h - pub fn pthread_rwlock_trywrlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlock_trywrlock(attr: *mut crate::pthread_rwlock_t) -> c_int; // pthread.h pub fn pthread_rwlock_timedwrlock( - attr: *mut ::pthread_rwlock_t, - host: *const ::timespec, - ) -> ::c_int; + attr: *mut crate::pthread_rwlock_t, + host: *const crate::timespec, + ) -> c_int; // pthread.h - pub fn pthread_rwlock_unlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlock_unlock(attr: *mut crate::pthread_rwlock_t) -> c_int; // pthread.h pub fn pthread_key_create( - key: *mut ::pthread_key_t, - dtor: ::Option, - ) -> ::c_int; + key: *mut crate::pthread_key_t, + dtor: Option, + ) -> c_int; // pthread.h - pub fn pthread_key_delete(key: ::pthread_key_t) -> ::c_int; + pub fn pthread_key_delete(key: crate::pthread_key_t) -> c_int; // pthread.h - pub fn pthread_setspecific(key: ::pthread_key_t, value: *const ::c_void) -> ::c_int; + pub fn pthread_setspecific(key: crate::pthread_key_t, value: *const c_void) -> c_int; // pthread.h - pub fn pthread_getspecific(key: ::pthread_key_t) -> *mut ::c_void; + pub fn pthread_getspecific(key: crate::pthread_key_t) -> *mut c_void; // pthread.h pub fn pthread_cond_timedwait( - cond: *mut ::pthread_cond_t, - mutex: *mut ::pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; + cond: *mut crate::pthread_cond_t, + mutex: *mut crate::pthread_mutex_t, + abstime: *const crate::timespec, + ) -> c_int; // pthread.h - pub fn pthread_attr_getname(attr: *mut ::pthread_attr_t, name: *mut *mut ::c_char) -> ::c_int; + pub fn pthread_attr_getname(attr: *mut crate::pthread_attr_t, name: *mut *mut c_char) -> c_int; // pthread.h - pub fn pthread_join(thread: ::pthread_t, status: *mut *mut ::c_void) -> ::c_int; + pub fn pthread_join(thread: crate::pthread_t, status: *mut *mut c_void) -> c_int; // pthread.h - pub fn pthread_self() -> ::pthread_t; + pub fn pthread_self() -> crate::pthread_t; // clockLib.h - pub fn clock_gettime(clock_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_gettime(clock_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; // clockLib.h - pub fn clock_settime(clock_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + pub fn clock_settime(clock_id: crate::clockid_t, tp: *const crate::timespec) -> c_int; // clockLib.h - pub fn clock_getres(clock_id: ::clockid_t, res: *mut ::timespec) -> ::c_int; + pub fn clock_getres(clock_id: crate::clockid_t, res: *mut crate::timespec) -> c_int; // clockLib.h pub fn clock_nanosleep( - clock_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; + clock_id: crate::clockid_t, + flags: c_int, + rqtp: *const crate::timespec, + rmtp: *mut crate::timespec, + ) -> c_int; // timerLib.h - pub fn nanosleep(rqtp: *const ::timespec, rmtp: *mut ::timespec) -> ::c_int; + pub fn nanosleep(rqtp: *const crate::timespec, rmtp: *mut crate::timespec) -> c_int; // socket.h - pub fn accept(s: ::c_int, addr: *mut ::sockaddr, addrlen: *mut ::socklen_t) -> ::c_int; + pub fn accept(s: c_int, addr: *mut crate::sockaddr, addrlen: *mut crate::socklen_t) -> c_int; // socket.h - pub fn bind(fd: ::c_int, addr: *const sockaddr, len: socklen_t) -> ::c_int; + pub fn bind(fd: c_int, addr: *const sockaddr, len: socklen_t) -> c_int; // socket.h - pub fn connect(s: ::c_int, name: *const ::sockaddr, namelen: ::socklen_t) -> ::c_int; + pub fn connect(s: c_int, name: *const crate::sockaddr, namelen: crate::socklen_t) -> c_int; // socket.h - pub fn getpeername(s: ::c_int, name: *mut ::sockaddr, namelen: *mut ::socklen_t) -> ::c_int; + pub fn getpeername( + s: c_int, + name: *mut crate::sockaddr, + namelen: *mut crate::socklen_t, + ) -> c_int; // socket.h - pub fn getsockname( - socket: ::c_int, - address: *mut sockaddr, - address_len: *mut socklen_t, - ) -> ::c_int; + pub fn getsockname(socket: c_int, address: *mut sockaddr, address_len: *mut socklen_t) + -> c_int; // socket.h pub fn getsockopt( - sockfd: ::c_int, - level: ::c_int, - optname: ::c_int, - optval: *mut ::c_void, - optlen: *mut ::socklen_t, - ) -> ::c_int; + sockfd: c_int, + level: c_int, + optname: c_int, + optval: *mut c_void, + optlen: *mut crate::socklen_t, + ) -> c_int; // socket.h - pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; + pub fn listen(socket: c_int, backlog: c_int) -> c_int; // socket.h - pub fn recv(s: ::c_int, buf: *mut ::c_void, bufLen: ::size_t, flags: ::c_int) -> ::ssize_t; + pub fn recv(s: c_int, buf: *mut c_void, bufLen: size_t, flags: c_int) -> ssize_t; // socket.h pub fn recvfrom( - s: ::c_int, - buf: *mut ::c_void, - bufLen: ::size_t, - flags: ::c_int, - from: *mut ::sockaddr, - pFromLen: *mut ::socklen_t, - ) -> ::ssize_t; + s: c_int, + buf: *mut c_void, + bufLen: size_t, + flags: c_int, + from: *mut crate::sockaddr, + pFromLen: *mut crate::socklen_t, + ) -> ssize_t; - pub fn recvmsg(socket: ::c_int, mp: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn recvmsg(socket: c_int, mp: *mut crate::msghdr, flags: c_int) -> ssize_t; // socket.h - pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; + pub fn send(socket: c_int, buf: *const c_void, len: size_t, flags: c_int) -> ssize_t; - pub fn sendmsg(socket: ::c_int, mp: *const ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn sendmsg(socket: c_int, mp: *const crate::msghdr, flags: c_int) -> ssize_t; // socket.h pub fn sendto( - socket: ::c_int, - buf: *const ::c_void, - len: ::size_t, - flags: ::c_int, + socket: c_int, + buf: *const c_void, + len: size_t, + flags: c_int, addr: *const sockaddr, addrlen: socklen_t, - ) -> ::ssize_t; + ) -> ssize_t; // socket.h pub fn setsockopt( - socket: ::c_int, - level: ::c_int, - name: ::c_int, - value: *const ::c_void, + socket: c_int, + level: c_int, + name: c_int, + value: *const c_void, option_len: socklen_t, - ) -> ::c_int; + ) -> c_int; // socket.h - pub fn shutdown(s: ::c_int, how: ::c_int) -> ::c_int; + pub fn shutdown(s: c_int, how: c_int) -> c_int; // socket.h - pub fn socket(domain: ::c_int, _type: ::c_int, protocol: ::c_int) -> ::c_int; + pub fn socket(domain: c_int, _type: c_int, protocol: c_int) -> c_int; // icotl.h - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; + pub fn ioctl(fd: c_int, request: c_int, ...) -> c_int; // fcntl.h - pub fn fcntl(fd: ::c_int, cmd: ::c_int, ...) -> ::c_int; + pub fn fcntl(fd: c_int, cmd: c_int, ...) -> c_int; // ntp_rfc2553.h for kernel // netdb.h for user - pub fn gai_strerror(errcode: ::c_int) -> *mut ::c_char; + pub fn gai_strerror(errcode: c_int) -> *mut c_char; // ioLib.h or // unistd.h - pub fn close(fd: ::c_int) -> ::c_int; + pub fn close(fd: c_int) -> c_int; // ioLib.h or // unistd.h - pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::size_t) -> ::ssize_t; + pub fn read(fd: c_int, buf: *mut c_void, count: size_t) -> ssize_t; // ioLib.h or // unistd.h - pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::size_t) -> ::ssize_t; + pub fn write(fd: c_int, buf: *const c_void, count: size_t) -> ssize_t; // ioLib.h or // unistd.h - pub fn isatty(fd: ::c_int) -> ::c_int; + pub fn isatty(fd: c_int) -> c_int; // ioLib.h or // unistd.h - pub fn dup(src: ::c_int) -> ::c_int; + pub fn dup(src: c_int) -> c_int; // ioLib.h or // unistd.h - pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; + pub fn dup2(src: c_int, dst: c_int) -> c_int; // ioLib.h or // unistd.h - pub fn pipe(fds: *mut ::c_int) -> ::c_int; + pub fn pipe(fds: *mut c_int) -> c_int; // ioLib.h or // unistd.h - pub fn unlink(pathname: *const ::c_char) -> ::c_int; + pub fn unlink(pathname: *const c_char) -> c_int; // unistd.h and // ioLib.h - pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t; + pub fn lseek(fd: c_int, offset: off_t, whence: c_int) -> off_t; // netdb.h pub fn getaddrinfo( - node: *const ::c_char, - service: *const ::c_char, + node: *const c_char, + service: *const c_char, hints: *const addrinfo, res: *mut *mut addrinfo, - ) -> ::c_int; + ) -> c_int; // netdb.h pub fn freeaddrinfo(res: *mut addrinfo); // signal.h - pub fn signal(signum: ::c_int, handler: sighandler_t) -> sighandler_t; + pub fn signal(signum: c_int, handler: sighandler_t) -> sighandler_t; // unistd.h pub fn getpid() -> pid_t; @@ -1733,166 +1743,162 @@ extern "C" { pub fn getppid() -> pid_t; // wait.h - pub fn waitpid(pid: pid_t, status: *mut ::c_int, optons: ::c_int) -> pid_t; + pub fn waitpid(pid: pid_t, status: *mut c_int, optons: c_int) -> pid_t; // unistd.h - pub fn sysconf(attr: ::c_int) -> ::c_long; + pub fn sysconf(attr: c_int) -> c_long; // stdlib.h pub fn setenv( // setenv.c - envVarName: *const ::c_char, - envVarValue: *const ::c_char, - overwrite: ::c_int, - ) -> ::c_int; + envVarName: *const c_char, + envVarValue: *const c_char, + overwrite: c_int, + ) -> c_int; // stdlib.h pub fn unsetenv( // setenv.c - envVarName: *const ::c_char, - ) -> ::c_int; + envVarName: *const c_char, + ) -> c_int; // stdlib.h - pub fn realpath(fileName: *const ::c_char, resolvedName: *mut ::c_char) -> *mut ::c_char; + pub fn realpath(fileName: *const c_char, resolvedName: *mut c_char) -> *mut c_char; // unistd.h - pub fn link(src: *const ::c_char, dst: *const ::c_char) -> ::c_int; + pub fn link(src: *const c_char, dst: *const c_char) -> c_int; // unistd.h - pub fn readlink(path: *const ::c_char, buf: *mut ::c_char, bufsize: ::size_t) -> ::ssize_t; + pub fn readlink(path: *const c_char, buf: *mut c_char, bufsize: size_t) -> ssize_t; // unistd.h - pub fn symlink(path1: *const ::c_char, path2: *const ::c_char) -> ::c_int; + pub fn symlink(path1: *const c_char, path2: *const c_char) -> c_int; // dirent.h - pub fn opendir(name: *const ::c_char) -> *mut ::DIR; + pub fn opendir(name: *const c_char) -> *mut crate::DIR; // unistd.h - pub fn rmdir(path: *const ::c_char) -> ::c_int; + pub fn rmdir(path: *const c_char) -> c_int; // stat.h - pub fn mkdir(dirName: *const ::c_char, mode: ::mode_t) -> ::c_int; + pub fn mkdir(dirName: *const c_char, mode: crate::mode_t) -> c_int; // stat.h - pub fn chmod(path: *const ::c_char, mode: ::mode_t) -> ::c_int; + pub fn chmod(path: *const c_char, mode: crate::mode_t) -> c_int; // stat.h - pub fn fchmod(attr1: ::c_int, attr2: ::mode_t) -> ::c_int; + pub fn fchmod(attr1: c_int, attr2: crate::mode_t) -> c_int; // unistd.h - pub fn fsync(fd: ::c_int) -> ::c_int; + pub fn fsync(fd: c_int) -> c_int; // dirent.h - pub fn closedir(ptr: *mut ::DIR) -> ::c_int; + pub fn closedir(ptr: *mut crate::DIR) -> c_int; //sched.h - pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; + pub fn sched_get_priority_max(policy: c_int) -> c_int; //sched.h - pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; + pub fn sched_get_priority_min(policy: c_int) -> c_int; //sched.h - pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; + pub fn sched_setparam(pid: crate::pid_t, param: *const crate::sched_param) -> c_int; //sched.h - pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; + pub fn sched_getparam(pid: crate::pid_t, param: *mut crate::sched_param) -> c_int; //sched.h pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; + pid: crate::pid_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; //sched.h - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + pub fn sched_getscheduler(pid: crate::pid_t) -> c_int; //sched.h - pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; + pub fn sched_rr_get_interval(pid: crate::pid_t, tp: *mut crate::timespec) -> c_int; // sched.h - pub fn sched_yield() -> ::c_int; + pub fn sched_yield() -> c_int; // errnoLib.h - pub fn errnoSet(err: ::c_int) -> ::c_int; + pub fn errnoSet(err: c_int) -> c_int; // errnoLib.h - pub fn errnoGet() -> ::c_int; + pub fn errnoGet() -> c_int; // unistd.h - pub fn _exit(status: ::c_int) -> !; + pub fn _exit(status: c_int) -> !; // unistd.h - pub fn setgid(gid: ::gid_t) -> ::c_int; + pub fn setgid(gid: crate::gid_t) -> c_int; // unistd.h - pub fn getgid() -> ::gid_t; + pub fn getgid() -> crate::gid_t; // unistd.h - pub fn setuid(uid: ::uid_t) -> ::c_int; + pub fn setuid(uid: crate::uid_t) -> c_int; // unistd.h - pub fn getuid() -> ::uid_t; + pub fn getuid() -> crate::uid_t; // signal.h - pub fn sigemptyset(__set: *mut sigset_t) -> ::c_int; + pub fn sigemptyset(__set: *mut sigset_t) -> c_int; // pthread.h for kernel // signal.h for user - pub fn pthread_sigmask( - __how: ::c_int, - __set: *const sigset_t, - __oset: *mut sigset_t, - ) -> ::c_int; + pub fn pthread_sigmask(__how: c_int, __set: *const sigset_t, __oset: *mut sigset_t) -> c_int; // signal.h for user - pub fn kill(__pid: pid_t, __signo: ::c_int) -> ::c_int; + pub fn kill(__pid: pid_t, __signo: c_int) -> c_int; // signal.h for user - pub fn sigqueue(__pid: pid_t, __signo: ::c_int, __value: ::sigval) -> ::c_int; + pub fn sigqueue(__pid: pid_t, __signo: c_int, __value: crate::sigval) -> c_int; // signal.h for user pub fn _sigqueue( - rtpId: ::RTP_ID, - signo: ::c_int, - pValue: *const ::sigval, - sigCode: ::c_int, - ) -> ::c_int; + rtpId: crate::RTP_ID, + signo: c_int, + pValue: *const crate::sigval, + sigCode: c_int, + ) -> c_int; // signal.h - pub fn taskKill(taskId: ::TASK_ID, signo: ::c_int) -> ::c_int; + pub fn taskKill(taskId: crate::TASK_ID, signo: c_int) -> c_int; // signal.h - pub fn raise(__signo: ::c_int) -> ::c_int; + pub fn raise(__signo: c_int) -> c_int; // taskLibCommon.h - pub fn taskIdSelf() -> ::TASK_ID; - pub fn taskDelay(ticks: ::_Vx_ticks_t) -> ::c_int; + pub fn taskIdSelf() -> crate::TASK_ID; + pub fn taskDelay(ticks: crate::_Vx_ticks_t) -> c_int; // taskLib.h - pub fn taskNameSet(task_id: ::TASK_ID, task_name: *mut ::c_char) -> ::c_int; - pub fn taskNameGet(task_id: ::TASK_ID, buf_name: *mut ::c_char, bufsize: ::size_t) -> ::c_int; + pub fn taskNameSet(task_id: crate::TASK_ID, task_name: *mut c_char) -> c_int; + pub fn taskNameGet(task_id: crate::TASK_ID, buf_name: *mut c_char, bufsize: size_t) -> c_int; // rtpLibCommon.h - pub fn rtpInfoGet(rtpId: ::RTP_ID, rtpStruct: *mut ::RTP_DESC) -> ::c_int; + pub fn rtpInfoGet(rtpId: crate::RTP_ID, rtpStruct: *mut crate::RTP_DESC) -> c_int; pub fn rtpSpawn( - pubrtpFileName: *const ::c_char, - argv: *mut *const ::c_char, - envp: *mut *const ::c_char, - priority: ::c_int, - uStackSize: ::size_t, - options: ::c_int, - taskOptions: ::c_int, + pubrtpFileName: *const c_char, + argv: *mut *const c_char, + envp: *mut *const c_char, + priority: c_int, + uStackSize: size_t, + options: c_int, + taskOptions: c_int, ) -> RTP_ID; // ioLib.h - pub fn _realpath(fileName: *const ::c_char, resolvedName: *mut ::c_char) -> *mut ::c_char; + pub fn _realpath(fileName: *const c_char, resolvedName: *mut c_char) -> *mut c_char; // pathLib.h - pub fn _pathIsAbsolute(filepath: *const ::c_char, pNameTail: *mut *const ::c_char) -> BOOL; + pub fn _pathIsAbsolute(filepath: *const c_char, pNameTail: *mut *const c_char) -> BOOL; - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; + pub fn readv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; // randomNumGen.h pub fn randBytes(buf: *mut c_uchar, length: c_int) -> c_int; @@ -1901,95 +1907,94 @@ extern "C" { pub fn randSecure() -> c_int; // mqueue.h - pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; - pub fn mq_close(mqd: ::mqd_t) -> ::c_int; - pub fn mq_unlink(name: *const ::c_char) -> ::c_int; + pub fn mq_open(name: *const c_char, oflag: c_int, ...) -> crate::mqd_t; + pub fn mq_close(mqd: crate::mqd_t) -> c_int; + pub fn mq_unlink(name: *const c_char) -> c_int; pub fn mq_receive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - ) -> ::ssize_t; + mqd: crate::mqd_t, + msg_ptr: *mut c_char, + msg_len: size_t, + msg_prio: *mut c_uint, + ) -> ssize_t; pub fn mq_timedreceive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::ssize_t; + mqd: crate::mqd_t, + msg_ptr: *mut c_char, + msg_len: size_t, + msg_prio: *mut c_uint, + abs_timeout: *const crate::timespec, + ) -> ssize_t; pub fn mq_send( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - ) -> ::c_int; + mqd: crate::mqd_t, + msg_ptr: *const c_char, + msg_len: size_t, + msg_prio: c_uint, + ) -> c_int; pub fn mq_timedsend( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::c_int; - pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; + mqd: crate::mqd_t, + msg_ptr: *const c_char, + msg_len: size_t, + msg_prio: c_uint, + abs_timeout: *const crate::timespec, + ) -> c_int; + pub fn mq_getattr(mqd: crate::mqd_t, attr: *mut crate::mq_attr) -> c_int; + pub fn mq_setattr( + mqd: crate::mqd_t, + newattr: *const crate::mq_attr, + oldattr: *mut crate::mq_attr, + ) -> c_int; // vxCpuLib.h - pub fn vxCpuEnabledGet() -> ::cpuset_t; // Get set of running CPU's in the system - pub fn vxCpuConfiguredGet() -> ::cpuset_t; // Get set of Configured CPU's in the system + pub fn vxCpuEnabledGet() -> crate::cpuset_t; // Get set of running CPU's in the system + pub fn vxCpuConfiguredGet() -> crate::cpuset_t; // Get set of Configured CPU's in the system } //Dummy functions, these don't really exist in VxWorks. // wait.h macros safe_f! { - pub {const} fn WIFEXITED(status: ::c_int) -> bool { + pub {const} fn WIFEXITED(status: c_int) -> bool { (status & 0xFF00) == 0 } - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + pub {const} fn WIFSIGNALED(status: c_int) -> bool { (status & 0xFF00) != 0 } - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + pub {const} fn WIFSTOPPED(status: c_int) -> bool { (status & 0xFF0000) != 0 } - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + pub {const} fn WEXITSTATUS(status: c_int) -> c_int { status & 0xFF } - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + pub {const} fn WTERMSIG(status: c_int) -> c_int { (status >> 8) & 0xFF } - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + pub {const} fn WSTOPSIG(status: c_int) -> c_int { (status >> 16) & 0xFF } } -pub fn pread(_fd: ::c_int, _buf: *mut ::c_void, _count: ::size_t, _offset: off64_t) -> ::ssize_t { +pub fn pread(_fd: c_int, _buf: *mut c_void, _count: size_t, _offset: off64_t) -> ssize_t { -1 } -pub fn pwrite( - _fd: ::c_int, - _buf: *const ::c_void, - _count: ::size_t, - _offset: off64_t, -) -> ::ssize_t { +pub fn pwrite(_fd: c_int, _buf: *const c_void, _count: size_t, _offset: off64_t) -> ssize_t { -1 } -pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int { +pub fn posix_memalign(memptr: *mut *mut c_void, align: size_t, size: size_t) -> c_int { // check to see if align is a power of 2 and if align is a multiple // of sizeof(void *) - if (align & align - 1 != 0) || (align as usize % size_of::<::size_t>() != 0) { - return ::EINVAL; + if (align & align - 1 != 0) || (align as usize % size_of::() != 0) { + return crate::EINVAL; } unsafe { // posix_memalign should not set errno - let e = ::errnoGet(); + let e = crate::errnoGet(); let temp = memalign(align, size); - ::errnoSet(e as ::c_int); + crate::errnoSet(e as c_int); if temp.is_null() { - ::ENOMEM + crate::ENOMEM } else { *memptr = temp; 0 diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index e8580048dfed0..c749a05d08f0e 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -5,9 +5,8 @@ use core::iter::Iterator; -use c_void; - use super::{Send, Sync}; +use crate::c_void; pub type c_char = i8; pub type c_uchar = u8; @@ -244,7 +243,7 @@ pub const POSIX_FADV_NORMAL: c_int = 0; pub const POSIX_FADV_RANDOM: c_int = 2; pub const POSIX_FADV_SEQUENTIAL: c_int = 1; pub const POSIX_FADV_WILLNEED: c_int = 3; -pub const AT_FDCWD: ::c_int = -2; +pub const AT_FDCWD: c_int = -2; pub const AT_EACCESS: c_int = 0x0; pub const AT_SYMLINK_NOFOLLOW: c_int = 0x1; pub const AT_SYMLINK_FOLLOW: c_int = 0x2; @@ -282,17 +281,17 @@ pub const DT_REG: u8 = 4; pub const DT_LNK: u8 = 7; pub const FIONREAD: c_int = 1; pub const FIONBIO: c_int = 2; -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; -pub const POLLIN: ::c_short = 0x1; -pub const POLLOUT: ::c_short = 0x2; -pub const POLLERR: ::c_short = 0x1000; -pub const POLLHUP: ::c_short = 0x2000; -pub const POLLNVAL: ::c_short = 0x4000; -pub const POLLRDNORM: ::c_short = 0x1; -pub const POLLWRNORM: ::c_short = 0x2; +pub const F_OK: c_int = 0; +pub const R_OK: c_int = 4; +pub const W_OK: c_int = 2; +pub const X_OK: c_int = 1; +pub const POLLIN: c_short = 0x1; +pub const POLLOUT: c_short = 0x2; +pub const POLLERR: c_short = 0x1000; +pub const POLLHUP: c_short = 0x2000; +pub const POLLNVAL: c_short = 0x4000; +pub const POLLRDNORM: c_short = 0x1; +pub const POLLWRNORM: c_short = 0x2; pub const E2BIG: c_int = 1; pub const EACCES: c_int = 2; @@ -374,7 +373,7 @@ pub const EOPNOTSUPP: c_int = ENOTSUP; pub const EWOULDBLOCK: c_int = EAGAIN; pub const _SC_PAGESIZE: c_int = 30; -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; +pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; pub const _SC_IOV_MAX: c_int = 60; pub const _SC_SYMLOOP_MAX: c_int = 173; @@ -397,79 +396,79 @@ cfg_if! { } } -pub const ABDAY_1: ::nl_item = 0x20000; -pub const ABDAY_2: ::nl_item = 0x20001; -pub const ABDAY_3: ::nl_item = 0x20002; -pub const ABDAY_4: ::nl_item = 0x20003; -pub const ABDAY_5: ::nl_item = 0x20004; -pub const ABDAY_6: ::nl_item = 0x20005; -pub const ABDAY_7: ::nl_item = 0x20006; - -pub const DAY_1: ::nl_item = 0x20007; -pub const DAY_2: ::nl_item = 0x20008; -pub const DAY_3: ::nl_item = 0x20009; -pub const DAY_4: ::nl_item = 0x2000A; -pub const DAY_5: ::nl_item = 0x2000B; -pub const DAY_6: ::nl_item = 0x2000C; -pub const DAY_7: ::nl_item = 0x2000D; - -pub const ABMON_1: ::nl_item = 0x2000E; -pub const ABMON_2: ::nl_item = 0x2000F; -pub const ABMON_3: ::nl_item = 0x20010; -pub const ABMON_4: ::nl_item = 0x20011; -pub const ABMON_5: ::nl_item = 0x20012; -pub const ABMON_6: ::nl_item = 0x20013; -pub const ABMON_7: ::nl_item = 0x20014; -pub const ABMON_8: ::nl_item = 0x20015; -pub const ABMON_9: ::nl_item = 0x20016; -pub const ABMON_10: ::nl_item = 0x20017; -pub const ABMON_11: ::nl_item = 0x20018; -pub const ABMON_12: ::nl_item = 0x20019; - -pub const MON_1: ::nl_item = 0x2001A; -pub const MON_2: ::nl_item = 0x2001B; -pub const MON_3: ::nl_item = 0x2001C; -pub const MON_4: ::nl_item = 0x2001D; -pub const MON_5: ::nl_item = 0x2001E; -pub const MON_6: ::nl_item = 0x2001F; -pub const MON_7: ::nl_item = 0x20020; -pub const MON_8: ::nl_item = 0x20021; -pub const MON_9: ::nl_item = 0x20022; -pub const MON_10: ::nl_item = 0x20023; -pub const MON_11: ::nl_item = 0x20024; -pub const MON_12: ::nl_item = 0x20025; - -pub const AM_STR: ::nl_item = 0x20026; -pub const PM_STR: ::nl_item = 0x20027; - -pub const D_T_FMT: ::nl_item = 0x20028; -pub const D_FMT: ::nl_item = 0x20029; -pub const T_FMT: ::nl_item = 0x2002A; -pub const T_FMT_AMPM: ::nl_item = 0x2002B; - -pub const ERA: ::nl_item = 0x2002C; -pub const ERA_D_FMT: ::nl_item = 0x2002E; -pub const ALT_DIGITS: ::nl_item = 0x2002F; -pub const ERA_D_T_FMT: ::nl_item = 0x20030; -pub const ERA_T_FMT: ::nl_item = 0x20031; - -pub const CODESET: ::nl_item = 14; -pub const CRNCYSTR: ::nl_item = 0x4000F; -pub const RADIXCHAR: ::nl_item = 0x10000; -pub const THOUSEP: ::nl_item = 0x10001; -pub const YESEXPR: ::nl_item = 0x50000; -pub const NOEXPR: ::nl_item = 0x50001; -pub const YESSTR: ::nl_item = 0x50002; -pub const NOSTR: ::nl_item = 0x50003; +pub const ABDAY_1: crate::nl_item = 0x20000; +pub const ABDAY_2: crate::nl_item = 0x20001; +pub const ABDAY_3: crate::nl_item = 0x20002; +pub const ABDAY_4: crate::nl_item = 0x20003; +pub const ABDAY_5: crate::nl_item = 0x20004; +pub const ABDAY_6: crate::nl_item = 0x20005; +pub const ABDAY_7: crate::nl_item = 0x20006; + +pub const DAY_1: crate::nl_item = 0x20007; +pub const DAY_2: crate::nl_item = 0x20008; +pub const DAY_3: crate::nl_item = 0x20009; +pub const DAY_4: crate::nl_item = 0x2000A; +pub const DAY_5: crate::nl_item = 0x2000B; +pub const DAY_6: crate::nl_item = 0x2000C; +pub const DAY_7: crate::nl_item = 0x2000D; + +pub const ABMON_1: crate::nl_item = 0x2000E; +pub const ABMON_2: crate::nl_item = 0x2000F; +pub const ABMON_3: crate::nl_item = 0x20010; +pub const ABMON_4: crate::nl_item = 0x20011; +pub const ABMON_5: crate::nl_item = 0x20012; +pub const ABMON_6: crate::nl_item = 0x20013; +pub const ABMON_7: crate::nl_item = 0x20014; +pub const ABMON_8: crate::nl_item = 0x20015; +pub const ABMON_9: crate::nl_item = 0x20016; +pub const ABMON_10: crate::nl_item = 0x20017; +pub const ABMON_11: crate::nl_item = 0x20018; +pub const ABMON_12: crate::nl_item = 0x20019; + +pub const MON_1: crate::nl_item = 0x2001A; +pub const MON_2: crate::nl_item = 0x2001B; +pub const MON_3: crate::nl_item = 0x2001C; +pub const MON_4: crate::nl_item = 0x2001D; +pub const MON_5: crate::nl_item = 0x2001E; +pub const MON_6: crate::nl_item = 0x2001F; +pub const MON_7: crate::nl_item = 0x20020; +pub const MON_8: crate::nl_item = 0x20021; +pub const MON_9: crate::nl_item = 0x20022; +pub const MON_10: crate::nl_item = 0x20023; +pub const MON_11: crate::nl_item = 0x20024; +pub const MON_12: crate::nl_item = 0x20025; + +pub const AM_STR: crate::nl_item = 0x20026; +pub const PM_STR: crate::nl_item = 0x20027; + +pub const D_T_FMT: crate::nl_item = 0x20028; +pub const D_FMT: crate::nl_item = 0x20029; +pub const T_FMT: crate::nl_item = 0x2002A; +pub const T_FMT_AMPM: crate::nl_item = 0x2002B; + +pub const ERA: crate::nl_item = 0x2002C; +pub const ERA_D_FMT: crate::nl_item = 0x2002E; +pub const ALT_DIGITS: crate::nl_item = 0x2002F; +pub const ERA_D_T_FMT: crate::nl_item = 0x20030; +pub const ERA_T_FMT: crate::nl_item = 0x20031; + +pub const CODESET: crate::nl_item = 14; +pub const CRNCYSTR: crate::nl_item = 0x4000F; +pub const RADIXCHAR: crate::nl_item = 0x10000; +pub const THOUSEP: crate::nl_item = 0x10001; +pub const YESEXPR: crate::nl_item = 0x50000; +pub const NOEXPR: crate::nl_item = 0x50001; +pub const YESSTR: crate::nl_item = 0x50002; +pub const NOSTR: crate::nl_item = 0x50003; f! { - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let set = &*set; let n = set.__nfds; return set.__fds[..n].iter().any(|p| *p == fd); } - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let set = &mut *set; let n = set.__nfds; if !set.__fds[..n].iter().any(|p| *p == fd) { @@ -508,13 +507,13 @@ extern "C" { pub fn getenv(s: *const c_char) -> *mut c_char; pub fn malloc(amt: size_t) -> *mut c_void; pub fn malloc_usable_size(ptr: *mut c_void) -> size_t; - pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; + pub fn sbrk(increment: intptr_t) -> *mut c_void; pub fn rand() -> c_int; pub fn read(fd: c_int, ptr: *mut c_void, size: size_t) -> ssize_t; pub fn realloc(ptr: *mut c_void, amt: size_t) -> *mut c_void; pub fn setenv(k: *const c_char, v: *const c_char, a: c_int) -> c_int; pub fn unsetenv(k: *const c_char) -> c_int; - pub fn clearenv() -> ::c_int; + pub fn clearenv() -> c_int; pub fn write(fd: c_int, ptr: *const c_void, size: size_t) -> ssize_t; pub static mut environ: *mut *mut c_char; pub fn fopen(a: *const c_char, b: *const c_char) -> *mut FILE; @@ -630,154 +629,139 @@ extern "C" { pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; - pub fn fprintf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; - pub fn printf(format: *const ::c_char, ...) -> ::c_int; - pub fn snprintf(s: *mut ::c_char, n: ::size_t, format: *const ::c_char, ...) -> ::c_int; - pub fn sprintf(s: *mut ::c_char, format: *const ::c_char, ...) -> ::c_int; - pub fn fscanf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; - pub fn scanf(format: *const ::c_char, ...) -> ::c_int; - pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) -> ::c_int; - pub fn getchar_unlocked() -> ::c_int; - pub fn putchar_unlocked(c: ::c_int) -> ::c_int; - - pub fn shutdown(socket: ::c_int, how: ::c_int) -> ::c_int; - pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; - pub fn mkdir(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; - pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; - pub fn fileno(stream: *mut ::FILE) -> ::c_int; - pub fn open(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; - pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn fcntl(fd: ::c_int, cmd: ::c_int, ...) -> ::c_int; - pub fn opendir(dirname: *const c_char) -> *mut ::DIR; - pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; - pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; - pub fn closedir(dirp: *mut ::DIR) -> ::c_int; - pub fn rewinddir(dirp: *mut ::DIR); - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - - pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int, ...) -> ::c_int; - pub fn fstatat( - dirfd: ::c_int, - pathname: *const ::c_char, - buf: *mut stat, - flags: ::c_int, - ) -> ::c_int; + pub fn fprintf(stream: *mut crate::FILE, format: *const c_char, ...) -> c_int; + pub fn printf(format: *const c_char, ...) -> c_int; + pub fn snprintf(s: *mut c_char, n: size_t, format: *const c_char, ...) -> c_int; + pub fn sprintf(s: *mut c_char, format: *const c_char, ...) -> c_int; + pub fn fscanf(stream: *mut crate::FILE, format: *const c_char, ...) -> c_int; + pub fn scanf(format: *const c_char, ...) -> c_int; + pub fn sscanf(s: *const c_char, format: *const c_char, ...) -> c_int; + pub fn getchar_unlocked() -> c_int; + pub fn putchar_unlocked(c: c_int) -> c_int; + + pub fn shutdown(socket: c_int, how: c_int) -> c_int; + pub fn fstat(fildes: c_int, buf: *mut stat) -> c_int; + pub fn mkdir(path: *const c_char, mode: mode_t) -> c_int; + pub fn stat(path: *const c_char, buf: *mut stat) -> c_int; + pub fn fdopen(fd: c_int, mode: *const c_char) -> *mut crate::FILE; + pub fn fileno(stream: *mut crate::FILE) -> c_int; + pub fn open(path: *const c_char, oflag: c_int, ...) -> c_int; + pub fn creat(path: *const c_char, mode: mode_t) -> c_int; + pub fn fcntl(fd: c_int, cmd: c_int, ...) -> c_int; + pub fn opendir(dirname: *const c_char) -> *mut crate::DIR; + pub fn fdopendir(fd: c_int) -> *mut crate::DIR; + pub fn readdir(dirp: *mut crate::DIR) -> *mut crate::dirent; + pub fn closedir(dirp: *mut crate::DIR) -> c_int; + pub fn rewinddir(dirp: *mut crate::DIR); + pub fn dirfd(dirp: *mut crate::DIR) -> c_int; + pub fn seekdir(dirp: *mut crate::DIR, loc: c_long); + pub fn telldir(dirp: *mut crate::DIR) -> c_long; + + pub fn openat(dirfd: c_int, pathname: *const c_char, flags: c_int, ...) -> c_int; + pub fn fstatat(dirfd: c_int, pathname: *const c_char, buf: *mut stat, flags: c_int) -> c_int; pub fn linkat( - olddirfd: ::c_int, - oldpath: *const ::c_char, - newdirfd: ::c_int, - newpath: *const ::c_char, - flags: ::c_int, - ) -> ::c_int; - pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + olddirfd: c_int, + oldpath: *const c_char, + newdirfd: c_int, + newpath: *const c_char, + flags: c_int, + ) -> c_int; + pub fn mkdirat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; pub fn readlinkat( - dirfd: ::c_int, - pathname: *const ::c_char, - buf: *mut ::c_char, - bufsiz: ::size_t, - ) -> ::ssize_t; + dirfd: c_int, + pathname: *const c_char, + buf: *mut c_char, + bufsiz: size_t, + ) -> ssize_t; pub fn renameat( - olddirfd: ::c_int, - oldpath: *const ::c_char, - newdirfd: ::c_int, - newpath: *const ::c_char, - ) -> ::c_int; - pub fn symlinkat( - target: *const ::c_char, - newdirfd: ::c_int, - linkpath: *const ::c_char, - ) -> ::c_int; - pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int) -> ::c_int; - - pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; - pub fn close(fd: ::c_int) -> ::c_int; - pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; - pub fn getopt(argc: ::c_int, argv: *const *mut c_char, optstr: *const c_char) -> ::c_int; - pub fn isatty(fd: ::c_int) -> ::c_int; - pub fn link(src: *const c_char, dst: *const c_char) -> ::c_int; - pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t; - pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; - pub fn rmdir(path: *const c_char) -> ::c_int; - pub fn sleep(secs: ::c_uint) -> ::c_uint; - pub fn unlink(c: *const c_char) -> ::c_int; - pub fn pread(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; - pub fn pwrite(fd: ::c_int, buf: *const ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; - - pub fn lstat(path: *const c_char, buf: *mut stat) -> ::c_int; - - pub fn fsync(fd: ::c_int) -> ::c_int; - pub fn fdatasync(fd: ::c_int) -> ::c_int; - - pub fn symlink(path1: *const c_char, path2: *const c_char) -> ::c_int; - - pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; - pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; - - pub fn getrusage(resource: ::c_int, usage: *mut rusage) -> ::c_int; - - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn times(buf: *mut ::tms) -> ::clock_t; - - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - - pub fn usleep(secs: ::c_uint) -> ::c_int; - pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; - pub fn recv(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; - pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; - pub fn setlocale(category: ::c_int, locale: *const ::c_char) -> *mut ::c_char; + olddirfd: c_int, + oldpath: *const c_char, + newdirfd: c_int, + newpath: *const c_char, + ) -> c_int; + pub fn symlinkat(target: *const c_char, newdirfd: c_int, linkpath: *const c_char) -> c_int; + pub fn unlinkat(dirfd: c_int, pathname: *const c_char, flags: c_int) -> c_int; + + pub fn access(path: *const c_char, amode: c_int) -> c_int; + pub fn close(fd: c_int) -> c_int; + pub fn fpathconf(filedes: c_int, name: c_int) -> c_long; + pub fn getopt(argc: c_int, argv: *const *mut c_char, optstr: *const c_char) -> c_int; + pub fn isatty(fd: c_int) -> c_int; + pub fn link(src: *const c_char, dst: *const c_char) -> c_int; + pub fn lseek(fd: c_int, offset: off_t, whence: c_int) -> off_t; + pub fn pathconf(path: *const c_char, name: c_int) -> c_long; + pub fn rmdir(path: *const c_char) -> c_int; + pub fn sleep(secs: c_uint) -> c_uint; + pub fn unlink(c: *const c_char) -> c_int; + pub fn pread(fd: c_int, buf: *mut c_void, count: size_t, offset: off_t) -> ssize_t; + pub fn pwrite(fd: c_int, buf: *const c_void, count: size_t, offset: off_t) -> ssize_t; + + pub fn lstat(path: *const c_char, buf: *mut stat) -> c_int; + + pub fn fsync(fd: c_int) -> c_int; + pub fn fdatasync(fd: c_int) -> c_int; + + pub fn symlink(path1: *const c_char, path2: *const c_char) -> c_int; + + pub fn truncate(path: *const c_char, length: off_t) -> c_int; + pub fn ftruncate(fd: c_int, length: off_t) -> c_int; + + pub fn getrusage(resource: c_int, usage: *mut rusage) -> c_int; + + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut c_void) -> c_int; + pub fn times(buf: *mut crate::tms) -> crate::clock_t; + + pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; + + pub fn usleep(secs: c_uint) -> c_int; + pub fn send(socket: c_int, buf: *const c_void, len: size_t, flags: c_int) -> ssize_t; + pub fn recv(socket: c_int, buf: *mut c_void, len: size_t, flags: c_int) -> ssize_t; + pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: c_int) -> c_int; + pub fn setlocale(category: c_int, locale: *const c_char) -> *mut c_char; pub fn localeconv() -> *mut lconv; - pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: ::size_t) -> ::ssize_t; + pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: size_t) -> ssize_t; - pub fn timegm(tm: *mut ::tm) -> time_t; + pub fn timegm(tm: *mut crate::tm) -> time_t; - pub fn sysconf(name: ::c_int) -> ::c_long; + pub fn sysconf(name: c_int) -> c_long; - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; + pub fn ioctl(fd: c_int, request: c_int, ...) -> c_int; - pub fn fseeko(stream: *mut ::FILE, offset: ::off_t, whence: ::c_int) -> ::c_int; - pub fn ftello(stream: *mut ::FILE) -> ::off_t; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; + pub fn fseeko(stream: *mut crate::FILE, offset: off_t, whence: c_int) -> c_int; + pub fn ftello(stream: *mut crate::FILE) -> off_t; + pub fn posix_fallocate(fd: c_int, offset: off_t, len: off_t) -> c_int; pub fn strcasestr(cs: *const c_char, ct: *const c_char) -> *mut c_char; pub fn getline(lineptr: *mut *mut c_char, n: *mut size_t, stream: *mut FILE) -> ssize_t; - pub fn faccessat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::c_int, - flags: ::c_int, - ) -> ::c_int; - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) - -> ::ssize_t; - pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + pub fn faccessat(dirfd: c_int, pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; + pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; + pub fn readv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; + pub fn pwritev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; + pub fn preadv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; + pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advise: c_int) -> c_int; + pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; - pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; - pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; + dirfd: c_int, + path: *const c_char, + times: *const crate::timespec, + flag: c_int, + ) -> c_int; + pub fn getentropy(buf: *mut c_void, buflen: size_t) -> c_int; + pub fn memrchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; pub fn abs(i: c_int) -> c_int; pub fn labs(i: c_long) -> c_long; - pub fn duplocale(base: ::locale_t) -> ::locale_t; - pub fn freelocale(loc: ::locale_t); - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; - pub fn uselocale(loc: ::locale_t) -> ::locale_t; - pub fn sched_yield() -> ::c_int; - pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char; - pub fn chdir(dir: *const c_char) -> ::c_int; + pub fn duplocale(base: crate::locale_t) -> crate::locale_t; + pub fn freelocale(loc: crate::locale_t); + pub fn newlocale(mask: c_int, locale: *const c_char, base: crate::locale_t) -> crate::locale_t; + pub fn uselocale(loc: crate::locale_t) -> crate::locale_t; + pub fn sched_yield() -> c_int; + pub fn getcwd(buf: *mut c_char, size: size_t) -> *mut c_char; + pub fn chdir(dir: *const c_char) -> c_int; - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - pub fn nl_langinfo_l(item: ::nl_item, loc: ::locale_t) -> *mut ::c_char; + pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char; + pub fn nl_langinfo_l(item: crate::nl_item, loc: crate::locale_t) -> *mut c_char; pub fn select( nfds: c_int, @@ -797,7 +781,7 @@ extern "C" { relative_path: *mut *mut c_char, relative_path_len: usize, ) -> c_int; - pub fn __wasilibc_tell(fd: c_int) -> ::off_t; + pub fn __wasilibc_tell(fd: c_int) -> off_t; pub fn __wasilibc_nocwd___wasilibc_unlinkat(dirfd: c_int, path: *const c_char) -> c_int; pub fn __wasilibc_nocwd___wasilibc_rmdirat(dirfd: c_int, path: *const c_char) -> c_int; pub fn __wasilibc_nocwd_linkat( @@ -842,15 +826,15 @@ extern "C" { pub fn __wasilibc_nocwd_utimensat( dirfd: c_int, path: *const c_char, - times: *const ::timespec, + times: *const crate::timespec, flags: c_int, ) -> c_int; - pub fn __wasilibc_nocwd_opendirat(dirfd: c_int, path: *const c_char) -> *mut ::DIR; + pub fn __wasilibc_nocwd_opendirat(dirfd: c_int, path: *const c_char) -> *mut crate::DIR; pub fn __wasilibc_access(pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; pub fn __wasilibc_stat(pathname: *const c_char, buf: *mut stat, flags: c_int) -> c_int; pub fn __wasilibc_utimens( pathname: *const c_char, - times: *const ::timespec, + times: *const crate::timespec, flags: c_int, ) -> c_int; pub fn __wasilibc_link(oldpath: *const c_char, newpath: *const c_char, flags: c_int) -> c_int; @@ -881,7 +865,7 @@ extern "C" { pub fn arc4random_buf(a: *mut c_void, b: size_t); pub fn arc4random_uniform(a: u32) -> u32; - pub fn __errno_location() -> *mut ::c_int; + pub fn __errno_location() -> *mut c_int; } cfg_if! { diff --git a/src/wasi/p2.rs b/src/wasi/p2.rs index d6381be451389..344029f222334 100644 --- a/src/wasi/p2.rs +++ b/src/wasi/p2.rs @@ -1,14 +1,16 @@ -pub type sa_family_t = ::c_ushort; -pub type in_port_t = ::c_ushort; -pub type in_addr_t = ::c_uint; +use crate::{c_char, c_int, c_uchar, c_uint, c_ushort, c_void, size_t, ssize_t}; -pub type socklen_t = ::c_uint; +pub type sa_family_t = c_ushort; +pub type in_port_t = c_ushort; +pub type in_addr_t = c_uint; + +pub type socklen_t = c_uint; s! { #[repr(align(16))] pub struct sockaddr { pub sa_family: sa_family_t, - pub sa_data: [::c_char; 0], + pub sa_data: [c_char; 0], } pub struct in_addr { @@ -24,32 +26,32 @@ s! { #[repr(align(4))] pub struct in6_addr { - pub s6_addr: [::c_uchar; 16], + pub s6_addr: [c_uchar; 16], } #[repr(align(16))] pub struct sockaddr_in6 { pub sin6_family: sa_family_t, pub sin6_port: in_port_t, - pub sin6_flowinfo: ::c_uint, + pub sin6_flowinfo: c_uint, pub sin6_addr: in6_addr, - pub sin6_scope_id: ::c_uint, + pub sin6_scope_id: c_uint, } #[repr(align(16))] pub struct sockaddr_storage { pub ss_family: sa_family_t, - pub __ss_data: [::c_char; 32], + pub __ss_data: [c_char; 32], } pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, + pub ai_flags: c_int, + pub ai_family: c_int, + pub ai_socktype: c_int, + pub ai_protocol: c_int, pub ai_addrlen: socklen_t, pub ai_addr: *mut sockaddr, - pub ai_canonname: *mut ::c_char, + pub ai_canonname: *mut c_char, pub ai_next: *mut addrinfo, } @@ -60,127 +62,127 @@ s! { pub struct ipv6_mreq { pub ipv6mr_multiaddr: in6_addr, - pub ipv6mr_interface: ::c_uint, + pub ipv6mr_interface: c_uint, } pub struct linger { - pub l_onoff: ::c_int, - pub l_linger: ::c_int, + pub l_onoff: c_int, + pub l_linger: c_int, } } -pub const SHUT_RD: ::c_int = 1 << 0; -pub const SHUT_WR: ::c_int = 1 << 1; -pub const SHUT_RDWR: ::c_int = SHUT_RD | SHUT_WR; - -pub const MSG_NOSIGNAL: ::c_int = 0x4000; -pub const MSG_PEEK: ::c_int = 0x0002; - -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_LINGER: ::c_int = 13; -pub const SO_ACCEPTCONN: ::c_int = 30; -pub const SO_PROTOCOL: ::c_int = 38; -pub const SO_DOMAIN: ::c_int = 39; -pub const SO_RCVTIMEO: ::c_int = 66; -pub const SO_SNDTIMEO: ::c_int = 67; - -pub const SOCK_DGRAM: ::c_int = 5; -pub const SOCK_STREAM: ::c_int = 6; -pub const SOCK_NONBLOCK: ::c_int = 0x00004000; - -pub const SOL_SOCKET: ::c_int = 0x7fffffff; - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_INET: ::c_int = 1; -pub const AF_INET6: ::c_int = 2; - -pub const IPPROTO_IP: ::c_int = 0; -pub const IPPROTO_TCP: ::c_int = 6; -pub const IPPROTO_UDP: ::c_int = 17; -pub const IPPROTO_IPV6: ::c_int = 41; - -pub const IP_TTL: ::c_int = 2; -pub const IP_MULTICAST_TTL: ::c_int = 33; -pub const IP_MULTICAST_LOOP: ::c_int = 34; -pub const IP_ADD_MEMBERSHIP: ::c_int = 35; -pub const IP_DROP_MEMBERSHIP: ::c_int = 36; - -pub const IPV6_UNICAST_HOPS: ::c_int = 16; -pub const IPV6_MULTICAST_LOOP: ::c_int = 19; -pub const IPV6_JOIN_GROUP: ::c_int = 20; -pub const IPV6_LEAVE_GROUP: ::c_int = 21; -pub const IPV6_V6ONLY: ::c_int = 26; - -pub const IPV6_ADD_MEMBERSHIP: ::c_int = IPV6_JOIN_GROUP; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = IPV6_LEAVE_GROUP; - -pub const TCP_NODELAY: ::c_int = 1; -pub const TCP_KEEPIDLE: ::c_int = 4; -pub const TCP_KEEPINTVL: ::c_int = 5; -pub const TCP_KEEPCNT: ::c_int = 6; - -pub const EAI_SYSTEM: ::c_int = -11; +pub const SHUT_RD: c_int = 1 << 0; +pub const SHUT_WR: c_int = 1 << 1; +pub const SHUT_RDWR: c_int = SHUT_RD | SHUT_WR; + +pub const MSG_NOSIGNAL: c_int = 0x4000; +pub const MSG_PEEK: c_int = 0x0002; + +pub const SO_REUSEADDR: c_int = 2; +pub const SO_TYPE: c_int = 3; +pub const SO_ERROR: c_int = 4; +pub const SO_BROADCAST: c_int = 6; +pub const SO_SNDBUF: c_int = 7; +pub const SO_RCVBUF: c_int = 8; +pub const SO_KEEPALIVE: c_int = 9; +pub const SO_LINGER: c_int = 13; +pub const SO_ACCEPTCONN: c_int = 30; +pub const SO_PROTOCOL: c_int = 38; +pub const SO_DOMAIN: c_int = 39; +pub const SO_RCVTIMEO: c_int = 66; +pub const SO_SNDTIMEO: c_int = 67; + +pub const SOCK_DGRAM: c_int = 5; +pub const SOCK_STREAM: c_int = 6; +pub const SOCK_NONBLOCK: c_int = 0x00004000; + +pub const SOL_SOCKET: c_int = 0x7fffffff; + +pub const AF_UNSPEC: c_int = 0; +pub const AF_INET: c_int = 1; +pub const AF_INET6: c_int = 2; + +pub const IPPROTO_IP: c_int = 0; +pub const IPPROTO_TCP: c_int = 6; +pub const IPPROTO_UDP: c_int = 17; +pub const IPPROTO_IPV6: c_int = 41; + +pub const IP_TTL: c_int = 2; +pub const IP_MULTICAST_TTL: c_int = 33; +pub const IP_MULTICAST_LOOP: c_int = 34; +pub const IP_ADD_MEMBERSHIP: c_int = 35; +pub const IP_DROP_MEMBERSHIP: c_int = 36; + +pub const IPV6_UNICAST_HOPS: c_int = 16; +pub const IPV6_MULTICAST_LOOP: c_int = 19; +pub const IPV6_JOIN_GROUP: c_int = 20; +pub const IPV6_LEAVE_GROUP: c_int = 21; +pub const IPV6_V6ONLY: c_int = 26; + +pub const IPV6_ADD_MEMBERSHIP: c_int = IPV6_JOIN_GROUP; +pub const IPV6_DROP_MEMBERSHIP: c_int = IPV6_LEAVE_GROUP; + +pub const TCP_NODELAY: c_int = 1; +pub const TCP_KEEPIDLE: c_int = 4; +pub const TCP_KEEPINTVL: c_int = 5; +pub const TCP_KEEPCNT: c_int = 6; + +pub const EAI_SYSTEM: c_int = -11; extern "C" { - pub fn socket(domain: ::c_int, type_: ::c_int, protocol: ::c_int) -> ::c_int; - pub fn connect(fd: ::c_int, name: *const sockaddr, addrlen: socklen_t) -> ::c_int; - pub fn bind(socket: ::c_int, addr: *const sockaddr, addrlen: socklen_t) -> ::c_int; - pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; - pub fn accept(socket: ::c_int, addr: *mut sockaddr, addrlen: *mut socklen_t) -> ::c_int; + pub fn socket(domain: c_int, type_: c_int, protocol: c_int) -> c_int; + pub fn connect(fd: c_int, name: *const sockaddr, addrlen: socklen_t) -> c_int; + pub fn bind(socket: c_int, addr: *const sockaddr, addrlen: socklen_t) -> c_int; + pub fn listen(socket: c_int, backlog: c_int) -> c_int; + pub fn accept(socket: c_int, addr: *mut sockaddr, addrlen: *mut socklen_t) -> c_int; pub fn accept4( - socket: ::c_int, + socket: c_int, addr: *mut sockaddr, addrlen: *mut socklen_t, - flags: ::c_int, - ) -> ::c_int; + flags: c_int, + ) -> c_int; - pub fn getsockname(socket: ::c_int, addr: *mut sockaddr, addrlen: *mut socklen_t) -> ::c_int; - pub fn getpeername(socket: ::c_int, addr: *mut sockaddr, addrlen: *mut socklen_t) -> ::c_int; + pub fn getsockname(socket: c_int, addr: *mut sockaddr, addrlen: *mut socklen_t) -> c_int; + pub fn getpeername(socket: c_int, addr: *mut sockaddr, addrlen: *mut socklen_t) -> c_int; pub fn sendto( - socket: ::c_int, - buffer: *const ::c_void, - length: ::size_t, - flags: ::c_int, + socket: c_int, + buffer: *const c_void, + length: size_t, + flags: c_int, addr: *const sockaddr, addrlen: socklen_t, - ) -> ::ssize_t; + ) -> ssize_t; pub fn recvfrom( - socket: ::c_int, - buffer: *mut ::c_void, - length: ::size_t, - flags: ::c_int, + socket: c_int, + buffer: *mut c_void, + length: size_t, + flags: c_int, addr: *mut sockaddr, addrlen: *mut socklen_t, - ) -> ::ssize_t; + ) -> ssize_t; pub fn getsockopt( - sockfd: ::c_int, - level: ::c_int, - optname: ::c_int, - optval: *mut ::c_void, + sockfd: c_int, + level: c_int, + optname: c_int, + optval: *mut c_void, optlen: *mut socklen_t, - ) -> ::c_int; + ) -> c_int; pub fn setsockopt( - sockfd: ::c_int, - level: ::c_int, - optname: ::c_int, - optval: *const ::c_void, + sockfd: c_int, + level: c_int, + optname: c_int, + optval: *const c_void, optlen: socklen_t, - ) -> ::c_int; + ) -> c_int; pub fn getaddrinfo( - host: *const ::c_char, - serv: *const ::c_char, + host: *const c_char, + serv: *const c_char, hint: *const addrinfo, res: *mut *mut addrinfo, - ) -> ::c_int; + ) -> c_int; pub fn freeaddrinfo(p: *mut addrinfo); - pub fn gai_strerror(ecode: ::c_int) -> *const ::c_char; + pub fn gai_strerror(ecode: c_int) -> *const c_char; } diff --git a/src/windows/gnu/mod.rs b/src/windows/gnu/mod.rs index 1d90f826bc253..e593dff519e04 100644 --- a/src/windows/gnu/mod.rs +++ b/src/windows/gnu/mod.rs @@ -1,3 +1,5 @@ +use crate::{c_char, c_int, c_uint, size_t}; + cfg_if! { if #[cfg(target_pointer_width = "64")] { s_no_extra_traits! { @@ -18,19 +20,19 @@ cfg_if! { } } -pub const L_tmpnam: ::c_uint = 14; -pub const TMP_MAX: ::c_uint = 0x7fff; +pub const L_tmpnam: c_uint = 14; +pub const TMP_MAX: c_uint = 0x7fff; // stdio file descriptor numbers -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; extern "C" { - pub fn strcasecmp(s1: *const ::c_char, s2: *const ::c_char) -> ::c_int; - pub fn strncasecmp(s1: *const ::c_char, s2: *const ::c_char, n: ::size_t) -> ::c_int; + pub fn strcasecmp(s1: *const c_char, s2: *const c_char) -> c_int; + pub fn strncasecmp(s1: *const c_char, s2: *const c_char, n: size_t) -> c_int; // NOTE: For MSVC target, `wmemchr` is only a inline function in `` // header file. We cannot find a way to link to that symbol from Rust. - pub fn wmemchr(cx: *const ::wchar_t, c: ::wchar_t, n: ::size_t) -> *mut ::wchar_t; + pub fn wmemchr(cx: *const crate::wchar_t, c: crate::wchar_t, n: size_t) -> *mut crate::wchar_t; } diff --git a/src/windows/mod.rs b/src/windows/mod.rs index d2ade8631cbd3..f900bf0e16c25 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -1,6 +1,6 @@ //! Windows CRT definitions -use c_void; +use crate::c_void; pub type c_schar = i8; pub type c_uchar = u8; @@ -29,7 +29,7 @@ pub type wchar_t = u16; pub type clock_t = i32; -pub type errno_t = ::c_int; +pub type errno_t = c_int; cfg_if! { if #[cfg(all(target_arch = "x86", target_env = "gnu"))] { @@ -44,15 +44,15 @@ pub type dev_t = u32; pub type ino_t = u16; #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { +impl Copy for timezone {} +impl Clone for timezone { fn clone(&self) -> timezone { *self } } pub type time64_t = i64; -pub type SOCKET = ::uintptr_t; +pub type SOCKET = crate::uintptr_t; s! { // note this is the struct called stat64 in Windows. Not stat, nor stati64. @@ -60,9 +60,9 @@ s! { pub st_dev: dev_t, pub st_ino: ino_t, pub st_mode: u16, - pub st_nlink: ::c_short, - pub st_uid: ::c_short, - pub st_gid: ::c_short, + pub st_nlink: c_short, + pub st_uid: c_short, + pub st_gid: c_short, pub st_rdev: dev_t, pub st_size: i64, pub st_atime: time64_t, @@ -77,15 +77,15 @@ s! { } pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, } pub struct timeval { @@ -107,154 +107,154 @@ s! { pub const INT_MIN: c_int = -2147483648; pub const INT_MAX: c_int = 2147483647; -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 32767; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 4; -pub const _IOLBF: ::c_int = 64; -pub const BUFSIZ: ::c_uint = 512; -pub const FOPEN_MAX: ::c_uint = 20; -pub const FILENAME_MAX: ::c_uint = 260; +pub const EXIT_FAILURE: c_int = 1; +pub const EXIT_SUCCESS: c_int = 0; +pub const RAND_MAX: c_int = 32767; +pub const EOF: c_int = -1; +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; +pub const _IOFBF: c_int = 0; +pub const _IONBF: c_int = 4; +pub const _IOLBF: c_int = 64; +pub const BUFSIZ: c_uint = 512; +pub const FOPEN_MAX: c_uint = 20; +pub const FILENAME_MAX: c_uint = 260; // fcntl.h -pub const O_RDONLY: ::c_int = 0x0000; -pub const O_WRONLY: ::c_int = 0x0001; -pub const O_RDWR: ::c_int = 0x0002; -pub const O_APPEND: ::c_int = 0x0008; -pub const O_CREAT: ::c_int = 0x0100; -pub const O_TRUNC: ::c_int = 0x0200; -pub const O_EXCL: ::c_int = 0x0400; -pub const O_TEXT: ::c_int = 0x4000; -pub const O_BINARY: ::c_int = 0x8000; -pub const _O_WTEXT: ::c_int = 0x10000; -pub const _O_U16TEXT: ::c_int = 0x20000; -pub const _O_U8TEXT: ::c_int = 0x40000; -pub const O_RAW: ::c_int = O_BINARY; -pub const O_NOINHERIT: ::c_int = 0x0080; -pub const O_TEMPORARY: ::c_int = 0x0040; -pub const _O_SHORT_LIVED: ::c_int = 0x1000; -pub const _O_OBTAIN_DIR: ::c_int = 0x2000; -pub const O_SEQUENTIAL: ::c_int = 0x0020; -pub const O_RANDOM: ::c_int = 0x0010; - -pub const S_IFCHR: ::c_int = 0o2_0000; -pub const S_IFDIR: ::c_int = 0o4_0000; -pub const S_IFREG: ::c_int = 0o10_0000; -pub const S_IFMT: ::c_int = 0o17_0000; -pub const S_IEXEC: ::c_int = 0o0100; -pub const S_IWRITE: ::c_int = 0o0200; -pub const S_IREAD: ::c_int = 0o0400; - -pub const LC_ALL: ::c_int = 0; -pub const LC_COLLATE: ::c_int = 1; -pub const LC_CTYPE: ::c_int = 2; -pub const LC_MONETARY: ::c_int = 3; -pub const LC_NUMERIC: ::c_int = 4; -pub const LC_TIME: ::c_int = 5; - -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const EDEADLK: ::c_int = 36; -pub const EDEADLOCK: ::c_int = 36; -pub const ENAMETOOLONG: ::c_int = 38; -pub const ENOLCK: ::c_int = 39; -pub const ENOSYS: ::c_int = 40; -pub const ENOTEMPTY: ::c_int = 41; -pub const EILSEQ: ::c_int = 42; -pub const STRUNCATE: ::c_int = 80; +pub const O_RDONLY: c_int = 0x0000; +pub const O_WRONLY: c_int = 0x0001; +pub const O_RDWR: c_int = 0x0002; +pub const O_APPEND: c_int = 0x0008; +pub const O_CREAT: c_int = 0x0100; +pub const O_TRUNC: c_int = 0x0200; +pub const O_EXCL: c_int = 0x0400; +pub const O_TEXT: c_int = 0x4000; +pub const O_BINARY: c_int = 0x8000; +pub const _O_WTEXT: c_int = 0x10000; +pub const _O_U16TEXT: c_int = 0x20000; +pub const _O_U8TEXT: c_int = 0x40000; +pub const O_RAW: c_int = O_BINARY; +pub const O_NOINHERIT: c_int = 0x0080; +pub const O_TEMPORARY: c_int = 0x0040; +pub const _O_SHORT_LIVED: c_int = 0x1000; +pub const _O_OBTAIN_DIR: c_int = 0x2000; +pub const O_SEQUENTIAL: c_int = 0x0020; +pub const O_RANDOM: c_int = 0x0010; + +pub const S_IFCHR: c_int = 0o2_0000; +pub const S_IFDIR: c_int = 0o4_0000; +pub const S_IFREG: c_int = 0o10_0000; +pub const S_IFMT: c_int = 0o17_0000; +pub const S_IEXEC: c_int = 0o0100; +pub const S_IWRITE: c_int = 0o0200; +pub const S_IREAD: c_int = 0o0400; + +pub const LC_ALL: c_int = 0; +pub const LC_COLLATE: c_int = 1; +pub const LC_CTYPE: c_int = 2; +pub const LC_MONETARY: c_int = 3; +pub const LC_NUMERIC: c_int = 4; +pub const LC_TIME: c_int = 5; + +pub const EPERM: c_int = 1; +pub const ENOENT: c_int = 2; +pub const ESRCH: c_int = 3; +pub const EINTR: c_int = 4; +pub const EIO: c_int = 5; +pub const ENXIO: c_int = 6; +pub const E2BIG: c_int = 7; +pub const ENOEXEC: c_int = 8; +pub const EBADF: c_int = 9; +pub const ECHILD: c_int = 10; +pub const EAGAIN: c_int = 11; +pub const ENOMEM: c_int = 12; +pub const EACCES: c_int = 13; +pub const EFAULT: c_int = 14; +pub const EBUSY: c_int = 16; +pub const EEXIST: c_int = 17; +pub const EXDEV: c_int = 18; +pub const ENODEV: c_int = 19; +pub const ENOTDIR: c_int = 20; +pub const EISDIR: c_int = 21; +pub const EINVAL: c_int = 22; +pub const ENFILE: c_int = 23; +pub const EMFILE: c_int = 24; +pub const ENOTTY: c_int = 25; +pub const EFBIG: c_int = 27; +pub const ENOSPC: c_int = 28; +pub const ESPIPE: c_int = 29; +pub const EROFS: c_int = 30; +pub const EMLINK: c_int = 31; +pub const EPIPE: c_int = 32; +pub const EDOM: c_int = 33; +pub const ERANGE: c_int = 34; +pub const EDEADLK: c_int = 36; +pub const EDEADLOCK: c_int = 36; +pub const ENAMETOOLONG: c_int = 38; +pub const ENOLCK: c_int = 39; +pub const ENOSYS: c_int = 40; +pub const ENOTEMPTY: c_int = 41; +pub const EILSEQ: c_int = 42; +pub const STRUNCATE: c_int = 80; // POSIX Supplement (from errno.h) -pub const EADDRINUSE: ::c_int = 100; -pub const EADDRNOTAVAIL: ::c_int = 101; -pub const EAFNOSUPPORT: ::c_int = 102; -pub const EALREADY: ::c_int = 103; -pub const EBADMSG: ::c_int = 104; -pub const ECANCELED: ::c_int = 105; -pub const ECONNABORTED: ::c_int = 106; -pub const ECONNREFUSED: ::c_int = 107; -pub const ECONNRESET: ::c_int = 108; -pub const EDESTADDRREQ: ::c_int = 109; -pub const EHOSTUNREACH: ::c_int = 110; -pub const EIDRM: ::c_int = 111; -pub const EINPROGRESS: ::c_int = 112; -pub const EISCONN: ::c_int = 113; -pub const ELOOP: ::c_int = 114; -pub const EMSGSIZE: ::c_int = 115; -pub const ENETDOWN: ::c_int = 116; -pub const ENETRESET: ::c_int = 117; -pub const ENETUNREACH: ::c_int = 118; -pub const ENOBUFS: ::c_int = 119; -pub const ENODATA: ::c_int = 120; -pub const ENOLINK: ::c_int = 121; -pub const ENOMSG: ::c_int = 122; -pub const ENOPROTOOPT: ::c_int = 123; -pub const ENOSR: ::c_int = 124; -pub const ENOSTR: ::c_int = 125; -pub const ENOTCONN: ::c_int = 126; -pub const ENOTRECOVERABLE: ::c_int = 127; -pub const ENOTSOCK: ::c_int = 128; -pub const ENOTSUP: ::c_int = 129; -pub const EOPNOTSUPP: ::c_int = 130; -pub const EOVERFLOW: ::c_int = 132; -pub const EOWNERDEAD: ::c_int = 133; -pub const EPROTO: ::c_int = 134; -pub const EPROTONOSUPPORT: ::c_int = 135; -pub const EPROTOTYPE: ::c_int = 136; -pub const ETIME: ::c_int = 137; -pub const ETIMEDOUT: ::c_int = 138; -pub const ETXTBSY: ::c_int = 139; -pub const EWOULDBLOCK: ::c_int = 140; +pub const EADDRINUSE: c_int = 100; +pub const EADDRNOTAVAIL: c_int = 101; +pub const EAFNOSUPPORT: c_int = 102; +pub const EALREADY: c_int = 103; +pub const EBADMSG: c_int = 104; +pub const ECANCELED: c_int = 105; +pub const ECONNABORTED: c_int = 106; +pub const ECONNREFUSED: c_int = 107; +pub const ECONNRESET: c_int = 108; +pub const EDESTADDRREQ: c_int = 109; +pub const EHOSTUNREACH: c_int = 110; +pub const EIDRM: c_int = 111; +pub const EINPROGRESS: c_int = 112; +pub const EISCONN: c_int = 113; +pub const ELOOP: c_int = 114; +pub const EMSGSIZE: c_int = 115; +pub const ENETDOWN: c_int = 116; +pub const ENETRESET: c_int = 117; +pub const ENETUNREACH: c_int = 118; +pub const ENOBUFS: c_int = 119; +pub const ENODATA: c_int = 120; +pub const ENOLINK: c_int = 121; +pub const ENOMSG: c_int = 122; +pub const ENOPROTOOPT: c_int = 123; +pub const ENOSR: c_int = 124; +pub const ENOSTR: c_int = 125; +pub const ENOTCONN: c_int = 126; +pub const ENOTRECOVERABLE: c_int = 127; +pub const ENOTSOCK: c_int = 128; +pub const ENOTSUP: c_int = 129; +pub const EOPNOTSUPP: c_int = 130; +pub const EOVERFLOW: c_int = 132; +pub const EOWNERDEAD: c_int = 133; +pub const EPROTO: c_int = 134; +pub const EPROTONOSUPPORT: c_int = 135; +pub const EPROTOTYPE: c_int = 136; +pub const ETIME: c_int = 137; +pub const ETIMEDOUT: c_int = 138; +pub const ETXTBSY: c_int = 139; +pub const EWOULDBLOCK: c_int = 140; // signal codes -pub const SIGINT: ::c_int = 2; -pub const SIGILL: ::c_int = 4; -pub const SIGFPE: ::c_int = 8; -pub const SIGSEGV: ::c_int = 11; -pub const SIGTERM: ::c_int = 15; -pub const SIGABRT: ::c_int = 22; -pub const NSIG: ::c_int = 23; - -pub const SIG_ERR: ::c_int = -1; -pub const SIG_DFL: ::sighandler_t = 0; -pub const SIG_IGN: ::sighandler_t = 1; -pub const SIG_GET: ::sighandler_t = 2; -pub const SIG_SGE: ::sighandler_t = 3; -pub const SIG_ACK: ::sighandler_t = 4; +pub const SIGINT: c_int = 2; +pub const SIGILL: c_int = 4; +pub const SIGFPE: c_int = 8; +pub const SIGSEGV: c_int = 11; +pub const SIGTERM: c_int = 15; +pub const SIGABRT: c_int = 22; +pub const NSIG: c_int = 23; + +pub const SIG_ERR: c_int = -1; +pub const SIG_DFL: crate::sighandler_t = 0; +pub const SIG_IGN: crate::sighandler_t = 1; +pub const SIG_GET: crate::sighandler_t = 2; +pub const SIG_SGE: crate::sighandler_t = 3; +pub const SIG_ACK: crate::sighandler_t = 4; // DIFF(main): removed in 458c58f409 // FIXME(msrv): done by `std` starting in 1.79.0 @@ -266,16 +266,16 @@ extern "C" {} #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum FILE {} -impl ::Copy for FILE {} -impl ::Clone for FILE { +impl Copy for FILE {} +impl Clone for FILE { fn clone(&self) -> FILE { *self } } #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum fpos_t {} // FIXME: fill this out with a struct -impl ::Copy for fpos_t {} -impl ::Clone for fpos_t { +impl Copy for fpos_t {} +impl Clone for fpos_t { fn clone(&self) -> fpos_t { *self } @@ -289,8 +289,8 @@ cfg_if! { link(name = "legacy_stdio_definitions") )] extern "C" { - pub fn printf(format: *const c_char, ...) -> ::c_int; - pub fn fprintf(stream: *mut FILE, format: *const c_char, ...) -> ::c_int; + pub fn printf(format: *const c_char, ...) -> c_int; + pub fn fprintf(stream: *mut FILE, format: *const c_char, ...) -> c_int; } } } @@ -379,7 +379,7 @@ extern "C" { pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; pub fn wcslen(buf: *const wchar_t) -> size_t; - pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> ::size_t; + pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> size_t; pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; @@ -396,51 +396,51 @@ extern "C" { pub fn raise(signum: c_int) -> c_int; #[link_name = "_gmtime64_s"] - pub fn gmtime_s(destTime: *mut tm, srcTime: *const time_t) -> ::c_int; + pub fn gmtime_s(destTime: *mut tm, srcTime: *const time_t) -> c_int; #[link_name = "_localtime64_s"] - pub fn localtime_s(tmDest: *mut tm, sourceTime: *const time_t) -> ::errno_t; + pub fn localtime_s(tmDest: *mut tm, sourceTime: *const time_t) -> crate::errno_t; #[link_name = "_time64"] pub fn time(destTime: *mut time_t) -> time_t; #[link_name = "_chmod"] - pub fn chmod(path: *const c_char, mode: ::c_int) -> ::c_int; + pub fn chmod(path: *const c_char, mode: c_int) -> c_int; #[link_name = "_wchmod"] - pub fn wchmod(path: *const wchar_t, mode: ::c_int) -> ::c_int; + pub fn wchmod(path: *const wchar_t, mode: c_int) -> c_int; #[link_name = "_mkdir"] - pub fn mkdir(path: *const c_char) -> ::c_int; + pub fn mkdir(path: *const c_char) -> c_int; #[link_name = "_wrmdir"] - pub fn wrmdir(path: *const wchar_t) -> ::c_int; + pub fn wrmdir(path: *const wchar_t) -> c_int; #[link_name = "_fstat64"] - pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; + pub fn fstat(fildes: c_int, buf: *mut stat) -> c_int; #[link_name = "_stat64"] - pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; + pub fn stat(path: *const c_char, buf: *mut stat) -> c_int; #[link_name = "_wstat64"] - pub fn wstat(path: *const wchar_t, buf: *mut stat) -> ::c_int; + pub fn wstat(path: *const wchar_t, buf: *mut stat) -> c_int; #[link_name = "_wutime64"] - pub fn wutime(file: *const wchar_t, buf: *mut utimbuf) -> ::c_int; + pub fn wutime(file: *const wchar_t, buf: *mut utimbuf) -> c_int; #[link_name = "_popen"] - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut crate::FILE; #[link_name = "_pclose"] - pub fn pclose(stream: *mut ::FILE) -> ::c_int; + pub fn pclose(stream: *mut crate::FILE) -> c_int; #[link_name = "_fdopen"] - pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; + pub fn fdopen(fd: c_int, mode: *const c_char) -> *mut crate::FILE; #[link_name = "_fileno"] - pub fn fileno(stream: *mut ::FILE) -> ::c_int; + pub fn fileno(stream: *mut crate::FILE) -> c_int; #[link_name = "_open"] - pub fn open(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; + pub fn open(path: *const c_char, oflag: c_int, ...) -> c_int; #[link_name = "_wopen"] - pub fn wopen(path: *const wchar_t, oflag: ::c_int, ...) -> ::c_int; + pub fn wopen(path: *const wchar_t, oflag: c_int, ...) -> c_int; #[link_name = "_creat"] - pub fn creat(path: *const c_char, mode: ::c_int) -> ::c_int; + pub fn creat(path: *const c_char, mode: c_int) -> c_int; #[link_name = "_access"] - pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; + pub fn access(path: *const c_char, amode: c_int) -> c_int; #[link_name = "_chdir"] - pub fn chdir(dir: *const c_char) -> ::c_int; + pub fn chdir(dir: *const c_char) -> c_int; #[link_name = "_close"] - pub fn close(fd: ::c_int) -> ::c_int; + pub fn close(fd: c_int) -> c_int; #[link_name = "_dup"] - pub fn dup(fd: ::c_int) -> ::c_int; + pub fn dup(fd: c_int) -> c_int; #[link_name = "_dup2"] - pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; + pub fn dup2(src: c_int, dst: c_int) -> c_int; #[link_name = "_execl"] pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> intptr_t; #[link_name = "_wexecl"] @@ -459,122 +459,124 @@ extern "C" { pub fn wexeclpe(path: *const wchar_t, arg0: *const wchar_t, ...) -> intptr_t; #[link_name = "_execv"] // DIFF(main): changed to `intptr_t` in e77f551de9 - pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::intptr_t; + pub fn execv(prog: *const c_char, argv: *const *const c_char) -> intptr_t; #[link_name = "_execve"] pub fn execve( prog: *const c_char, argv: *const *const c_char, envp: *const *const c_char, - ) -> ::c_int; + ) -> c_int; #[link_name = "_execvp"] - pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int; + pub fn execvp(c: *const c_char, argv: *const *const c_char) -> c_int; #[link_name = "_execvpe"] pub fn execvpe( c: *const c_char, argv: *const *const c_char, envp: *const *const c_char, - ) -> ::c_int; + ) -> c_int; #[link_name = "_wexecv"] - pub fn wexecv(prog: *const wchar_t, argv: *const *const wchar_t) -> ::intptr_t; + pub fn wexecv(prog: *const wchar_t, argv: *const *const wchar_t) -> intptr_t; #[link_name = "_wexecve"] pub fn wexecve( prog: *const wchar_t, argv: *const *const wchar_t, envp: *const *const wchar_t, - ) -> ::intptr_t; + ) -> intptr_t; #[link_name = "_wexecvp"] - pub fn wexecvp(c: *const wchar_t, argv: *const *const wchar_t) -> ::intptr_t; + pub fn wexecvp(c: *const wchar_t, argv: *const *const wchar_t) -> intptr_t; #[link_name = "_wexecvpe"] pub fn wexecvpe( c: *const wchar_t, argv: *const *const wchar_t, envp: *const *const wchar_t, - ) -> ::intptr_t; + ) -> intptr_t; #[link_name = "_getcwd"] - pub fn getcwd(buf: *mut c_char, size: ::c_int) -> *mut c_char; + pub fn getcwd(buf: *mut c_char, size: c_int) -> *mut c_char; #[link_name = "_getpid"] - pub fn getpid() -> ::c_int; + pub fn getpid() -> c_int; #[link_name = "_isatty"] - pub fn isatty(fd: ::c_int) -> ::c_int; + pub fn isatty(fd: c_int) -> c_int; #[link_name = "_lseek"] - pub fn lseek(fd: ::c_int, offset: c_long, origin: ::c_int) -> c_long; + pub fn lseek(fd: c_int, offset: c_long, origin: c_int) -> c_long; #[link_name = "_lseeki64"] - pub fn lseek64(fd: ::c_int, offset: c_longlong, origin: ::c_int) -> c_longlong; + pub fn lseek64(fd: c_int, offset: c_longlong, origin: c_int) -> c_longlong; #[link_name = "_pipe"] - pub fn pipe(fds: *mut ::c_int, psize: ::c_uint, textmode: ::c_int) -> ::c_int; + pub fn pipe(fds: *mut c_int, psize: c_uint, textmode: c_int) -> c_int; #[link_name = "_read"] - pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::c_uint) -> ::c_int; + pub fn read(fd: c_int, buf: *mut c_void, count: c_uint) -> c_int; #[link_name = "_rmdir"] - pub fn rmdir(path: *const c_char) -> ::c_int; + pub fn rmdir(path: *const c_char) -> c_int; #[link_name = "_unlink"] - pub fn unlink(c: *const c_char) -> ::c_int; + pub fn unlink(c: *const c_char) -> c_int; #[link_name = "_write"] - pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::c_uint) -> ::c_int; + pub fn write(fd: c_int, buf: *const c_void, count: c_uint) -> c_int; #[link_name = "_commit"] - pub fn commit(fd: ::c_int) -> ::c_int; + pub fn commit(fd: c_int) -> c_int; #[link_name = "_get_osfhandle"] - pub fn get_osfhandle(fd: ::c_int) -> ::intptr_t; + pub fn get_osfhandle(fd: c_int) -> intptr_t; #[link_name = "_open_osfhandle"] - pub fn open_osfhandle(osfhandle: ::intptr_t, flags: ::c_int) -> ::c_int; - pub fn setlocale(category: ::c_int, locale: *const c_char) -> *mut c_char; + pub fn open_osfhandle(osfhandle: intptr_t, flags: c_int) -> c_int; + pub fn setlocale(category: c_int, locale: *const c_char) -> *mut c_char; #[link_name = "_wsetlocale"] - pub fn wsetlocale(category: ::c_int, locale: *const wchar_t) -> *mut wchar_t; + pub fn wsetlocale(category: c_int, locale: *const wchar_t) -> *mut wchar_t; #[link_name = "_aligned_malloc"] pub fn aligned_malloc(size: size_t, alignment: size_t) -> *mut c_void; #[link_name = "_aligned_free"] - pub fn aligned_free(ptr: *mut ::c_void); + pub fn aligned_free(ptr: *mut c_void); #[link_name = "_aligned_realloc"] - pub fn aligned_realloc(memblock: *mut ::c_void, size: size_t, alignment: size_t) - -> *mut c_void; + pub fn aligned_realloc(memblock: *mut c_void, size: size_t, alignment: size_t) -> *mut c_void; #[link_name = "_putenv"] - pub fn putenv(envstring: *const ::c_char) -> ::c_int; + pub fn putenv(envstring: *const c_char) -> c_int; #[link_name = "_wputenv"] - pub fn wputenv(envstring: *const ::wchar_t) -> ::c_int; + pub fn wputenv(envstring: *const crate::wchar_t) -> c_int; #[link_name = "_putenv_s"] - pub fn putenv_s(envstring: *const ::c_char, value_string: *const ::c_char) -> ::errno_t; + pub fn putenv_s(envstring: *const c_char, value_string: *const c_char) -> crate::errno_t; #[link_name = "_wputenv_s"] - pub fn wputenv_s(envstring: *const ::wchar_t, value_string: *const ::wchar_t) -> ::errno_t; + pub fn wputenv_s( + envstring: *const crate::wchar_t, + value_string: *const crate::wchar_t, + ) -> crate::errno_t; } extern "system" { - pub fn listen(s: SOCKET, backlog: ::c_int) -> ::c_int; - pub fn accept(s: SOCKET, addr: *mut ::sockaddr, addrlen: *mut ::c_int) -> SOCKET; - pub fn bind(s: SOCKET, name: *const ::sockaddr, namelen: ::c_int) -> ::c_int; - pub fn connect(s: SOCKET, name: *const ::sockaddr, namelen: ::c_int) -> ::c_int; - pub fn getpeername(s: SOCKET, name: *mut ::sockaddr, nameln: *mut ::c_int) -> ::c_int; - pub fn getsockname(s: SOCKET, name: *mut ::sockaddr, nameln: *mut ::c_int) -> ::c_int; + pub fn listen(s: SOCKET, backlog: c_int) -> c_int; + pub fn accept(s: SOCKET, addr: *mut crate::sockaddr, addrlen: *mut c_int) -> SOCKET; + pub fn bind(s: SOCKET, name: *const crate::sockaddr, namelen: c_int) -> c_int; + pub fn connect(s: SOCKET, name: *const crate::sockaddr, namelen: c_int) -> c_int; + pub fn getpeername(s: SOCKET, name: *mut crate::sockaddr, nameln: *mut c_int) -> c_int; + pub fn getsockname(s: SOCKET, name: *mut crate::sockaddr, nameln: *mut c_int) -> c_int; pub fn getsockopt( s: SOCKET, - level: ::c_int, - optname: ::c_int, - optval: *mut ::c_char, - optlen: *mut ::c_int, - ) -> ::c_int; + level: c_int, + optname: c_int, + optval: *mut c_char, + optlen: *mut c_int, + ) -> c_int; pub fn recvfrom( s: SOCKET, - buf: *mut ::c_char, - len: ::c_int, - flags: ::c_int, - from: *mut ::sockaddr, - fromlen: *mut ::c_int, - ) -> ::c_int; + buf: *mut c_char, + len: c_int, + flags: c_int, + from: *mut crate::sockaddr, + fromlen: *mut c_int, + ) -> c_int; pub fn sendto( s: SOCKET, - buf: *const ::c_char, - len: ::c_int, - flags: ::c_int, - to: *const ::sockaddr, - tolen: ::c_int, - ) -> ::c_int; + buf: *const c_char, + len: c_int, + flags: c_int, + to: *const crate::sockaddr, + tolen: c_int, + ) -> c_int; pub fn setsockopt( s: SOCKET, - level: ::c_int, - optname: ::c_int, - optval: *const ::c_char, - optlen: ::c_int, - ) -> ::c_int; - pub fn socket(af: ::c_int, socket_type: ::c_int, protocol: ::c_int) -> SOCKET; + level: c_int, + optname: c_int, + optval: *const c_char, + optlen: c_int, + ) -> c_int; + pub fn socket(af: c_int, socket_type: c_int, protocol: c_int) -> SOCKET; } cfg_if! { diff --git a/src/windows/msvc/mod.rs b/src/windows/msvc/mod.rs index f5a1d95f395b3..3f9f34e7e24ff 100644 --- a/src/windows/msvc/mod.rs +++ b/src/windows/msvc/mod.rs @@ -1,20 +1,17 @@ -pub const L_tmpnam: ::c_uint = 260; -pub const TMP_MAX: ::c_uint = 0x7fff_ffff; +use crate::{c_char, c_int, c_uint, c_void, size_t}; + +pub const L_tmpnam: c_uint = 260; +pub const TMP_MAX: c_uint = 0x7fff_ffff; // POSIX Supplement (from errno.h) // This particular error code is only currently available in msvc toolchain -pub const EOTHER: ::c_int = 131; +pub const EOTHER: c_int = 131; extern "C" { #[link_name = "_stricmp"] - pub fn stricmp(s1: *const ::c_char, s2: *const ::c_char) -> ::c_int; + pub fn stricmp(s1: *const c_char, s2: *const c_char) -> c_int; #[link_name = "_strnicmp"] - pub fn strnicmp(s1: *const ::c_char, s2: *const ::c_char, n: ::size_t) -> ::c_int; + pub fn strnicmp(s1: *const c_char, s2: *const c_char, n: size_t) -> c_int; #[link_name = "_memccpy"] - pub fn memccpy( - dest: *mut ::c_void, - src: *const ::c_void, - c: ::c_int, - count: ::size_t, - ) -> *mut ::c_void; + pub fn memccpy(dest: *mut c_void, src: *const c_void, c: c_int, count: size_t) -> *mut c_void; } From e93aacb25758c95305cf6314206472e1076112d7 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 26 Nov 2024 20:23:55 -0500 Subject: [PATCH 0408/1228] Remove one unused import after the edition 2021 bump --- src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs index bd0f06162020d..49b448a1be7dc 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs @@ -1,6 +1,4 @@ -use crate::{ - c_char, c_int, c_long, c_short, c_uchar, c_uint, c_ushort, c_void, intptr_t, size_t, ssize_t, -}; +use crate::{c_char, c_int, c_long, c_short, c_uchar, c_uint, c_ushort, c_void, intptr_t, size_t}; // APIs that were changed after FreeBSD 11 From d6573bc8c5784b51247c35a75495beb6c0fe9dad Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 26 Nov 2024 19:34:55 -0500 Subject: [PATCH 0409/1228] Add a `.git-blame-ingore-revs` entry for edition 2021 changes Ignore 643182f7da2 ("Automatic migration to Rust edition 2021") since this performed a lot of trivial changes to a large percent of the repository. (backport ) (cherry picked from commit d694a4d8fcc467ef385d61f6ffbc10740bd57c3c) [ adjusted the commit hash to be relevant to this branch - Trevor ] --- .git-blame-ignore-revs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 12f09ff7a2700..64da908d6e919 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -1,2 +1,5 @@ # Format macro bodies 50f26e08e146b7e9c7d1af9614486eba327d1e31 + +# Automated changes to upgrade to the 2021 edition +643182f7da26cedb09349b8bb3735c2e58ba24e6 From cbd432340205bec4cba924da91a87984f2528a37 Mon Sep 17 00:00:00 2001 From: DarumaDocker Date: Wed, 27 Nov 2024 06:25:48 +0000 Subject: [PATCH 0410/1228] fix(wasi): Add back unsafe block for clockid_t static variables (backport ) (cherry picked from commit 8e8a5126b2489c84a1ba8552e04abace039cbb8e) --- src/wasi/mod.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index c749a05d08f0e..f04081bad1fa7 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -384,15 +384,17 @@ cfg_if! { } else { // `addr_of!(EXTERN_STATIC)` is now safe; remove `unsafe` when MSRV >= 1.82 #[allow(unused_unsafe)] - pub static CLOCK_MONOTONIC: clockid_t = clockid_t(core::ptr::addr_of!(_CLOCK_MONOTONIC)); + pub static CLOCK_MONOTONIC: clockid_t = + unsafe { clockid_t(core::ptr::addr_of!(_CLOCK_MONOTONIC)) }; #[allow(unused_unsafe)] pub static CLOCK_PROCESS_CPUTIME_ID: clockid_t = - clockid_t(core::ptr::addr_of!(_CLOCK_PROCESS_CPUTIME_ID)); + unsafe { clockid_t(core::ptr::addr_of!(_CLOCK_PROCESS_CPUTIME_ID)) }; #[allow(unused_unsafe)] - pub static CLOCK_REALTIME: clockid_t = clockid_t(core::ptr::addr_of!(_CLOCK_REALTIME)); + pub static CLOCK_REALTIME: clockid_t = + unsafe { clockid_t(core::ptr::addr_of!(_CLOCK_REALTIME)) }; #[allow(unused_unsafe)] pub static CLOCK_THREAD_CPUTIME_ID: clockid_t = - clockid_t(core::ptr::addr_of!(_CLOCK_THREAD_CPUTIME_ID)); + unsafe { clockid_t(core::ptr::addr_of!(_CLOCK_THREAD_CPUTIME_ID)) }; } } From db206141516e687e0b2e53a53a1665d2264f04a7 Mon Sep 17 00:00:00 2001 From: DarumaDocker Date: Wed, 27 Nov 2024 07:22:08 +0000 Subject: [PATCH 0411/1228] fix(wasi): build verify for wasm32-wasi (backport ) (cherry picked from commit 5fc03210932398450773cfefdecd8687dd12d931) --- ci/verify-build.sh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/ci/verify-build.sh b/ci/verify-build.sh index 6f206f64ee473..afd87b40e4b96 100755 --- a/ci/verify-build.sh +++ b/ci/verify-build.sh @@ -96,6 +96,8 @@ sparc64-unknown-linux-gnu \ sparcv9-sun-solaris \ wasm32-unknown-emscripten \ wasm32-unknown-unknown \ +wasm32-wasip1 \ +wasm32-wasip2 \ x86_64-linux-android \ x86_64-unknown-freebsd \ x86_64-unknown-linux-gnu \ @@ -231,12 +233,29 @@ else no_dist_targets="" fi +case "$rust" in + "stable") supports_wasi_pn=1 ;; + "beta") supports_wasi_pn=1 ;; + "nightly") supports_wasi_pn=1 ;; + *) supports_wasi_pn=0 ;; +esac + for target in $targets; do if echo "$target" | grep -q "$filter"; then if [ "$os" = "windows" ]; then TARGET="$target" ./ci/install-rust.sh test_target "$target" else + # `wasm32-wasip1` was renamed from `wasm32-wasi` + if [ "$target" = "wasm32-wasip1" ] && [ "$supports_wasi_pn" = "0" ]; then + target="wasm32-wasi" + fi + + # `wasm32-wasip2` only exists in recent versions of Rust + if [ "$target" = "wasm32-wasip2" ] && [ "$supports_wasi_pn" = "0" ]; then + continue + fi + test_target "$target" fi From deed988406ae8d6c81b842091e961d813c09fc8a Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 27 Nov 2024 16:11:29 -0500 Subject: [PATCH 0412/1228] ci: Add a timeout for all jobs The Android jobs seem to occasionally get stuck. Add a timeout of 10 minutes for simple jobs and 25 minutes for more complex jobs, which should make sure that if anything gets stuck it will get stopped. (backport ) (cherry picked from commit e1fe3d80860916f439c82ab68484d39ce8525ff0) --- .github/workflows/ci.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f5132216cecc7..703b9d7868a3e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,6 +18,7 @@ jobs: style_check: name: Style check runs-on: ubuntu-24.04 + timeout-minutes: 10 steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain @@ -36,6 +37,7 @@ jobs: - toolchain: beta os: ubuntu-24.04 runs-on: ${{ matrix.os }} + timeout-minutes: 25 env: TOOLCHAIN: ${{ matrix.toolchain }} steps: @@ -73,6 +75,7 @@ jobs: - target: i686-pc-windows-msvc os: windows-2022 runs-on: ${{ matrix.os }} + timeout-minutes: 25 env: TARGET: ${{ matrix.target }} steps: @@ -123,6 +126,7 @@ jobs: # FIXME: It seems some items in `src/unix/mod.rs` # aren't defined on redox actually. # - x86_64-unknown-redox + timeout-minutes: 25 env: TARGET: ${{ matrix.target }} steps: @@ -141,6 +145,7 @@ jobs: matrix: target: - x86_64-pc-solaris + timeout-minutes: 25 steps: - uses: actions/checkout@v4 - name: test on Solaris @@ -164,6 +169,7 @@ jobs: runs-on: ubuntu-24.04 env: TOOLCHAIN: nightly + timeout-minutes: 10 steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain From e13cde2dff7d4965bfb12577f35d488ec3ba8a22 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 27 Nov 2024 02:56:13 -0500 Subject: [PATCH 0413/1228] ci: Check various FreeBSD versions Since we suport multiple versions and this is tier 2, we should make sure that we can build with a couple versions. This does not run tests. Additionally, introduce an environment variable for an easy way to override the version for testing. This includes an unrelated cleanup adjustment in `verify-build.sh` (backport ) (cherry picked from commit 9c2f78eacbfc64b2e5528ea60c1811e02ed50ba7) --- build.rs | 9 ++++++++- ci/verify-build.sh | 50 ++++++++++++++++++++++++++++++++-------------- libc-test/build.rs | 7 +++++++ 3 files changed, 50 insertions(+), 16 deletions(-) diff --git a/build.rs b/build.rs index 8e9f877e83c9a..90fbc0d7c5fda 100644 --- a/build.rs +++ b/build.rs @@ -49,13 +49,20 @@ fn main() { // // On CI, we detect the actual FreeBSD version and match its ABI exactly, // running tests to ensure that the ABI is correct. - let which_freebsd = if libc_ci { + println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_FREEBSD_VERSION"); + // Allow overriding the default version for testing + let which_freebsd = if let Ok(version) = env::var("RUST_LIBC_UNSTABLE_FREEBSD_VERSION") { + let vers = version.parse().unwrap(); + println!("cargo:warning=setting FreeBSD version to {vers}"); + vers + } else if libc_ci { which_freebsd().unwrap_or(11) } else if rustc_dep_of_std { 12 } else { 11 }; + match which_freebsd { x if x < 10 => panic!("FreeBSD older than 10 is not supported"), 10 => set_cfg("freebsd10"), diff --git a/ci/verify-build.sh b/ci/verify-build.sh index afd87b40e4b96..e1cad0b7df57c 100755 --- a/ci/verify-build.sh +++ b/ci/verify-build.sh @@ -28,6 +28,7 @@ if [ "$TOOLCHAIN" = "nightly" ] ; then rustup component add rust-src fi +# Run the tests for a specific target test_target() { target="${1}" no_dist="${2:-0}" @@ -68,8 +69,31 @@ test_target() { # Test again without default features, i.e. without "std" $cmd --no-default-features $cmd --no-default-features --features extra_traits + + # For tier 2 freebsd targets, check with the different versions we support + # if on nightly or stable + case "$rust-$target" in + stable-x86_64-*freebsd*) do_freebsd_checks=1 ;; + nightly-i686*freebsd*) do_freebsd_checks=1 ;; + esac + + if [ -n "${do_freebsd_checks:-}" ]; then + for version in $freebsd_versions; do + export RUST_LIBC_UNSTABLE_FREEBSD_VERSION="$version" + $cmd + $cmd --no-default-features + done + fi } +freebsd_versions="\ +11 \ +12 \ +13 \ +14 \ +15 \ +" + rust_linux_targets="\ aarch64-linux-android \ aarch64-unknown-linux-gnu \ @@ -244,21 +268,19 @@ for target in $targets; do if echo "$target" | grep -q "$filter"; then if [ "$os" = "windows" ]; then TARGET="$target" ./ci/install-rust.sh - test_target "$target" - else - # `wasm32-wasip1` was renamed from `wasm32-wasi` - if [ "$target" = "wasm32-wasip1" ] && [ "$supports_wasi_pn" = "0" ]; then - target="wasm32-wasi" - fi + fi - # `wasm32-wasip2` only exists in recent versions of Rust - if [ "$target" = "wasm32-wasip2" ] && [ "$supports_wasi_pn" = "0" ]; then - continue - fi - - test_target "$target" + # `wasm32-wasip1` was renamed from `wasm32-wasi` + if [ "$target" = "wasm32-wasip1" ] && [ "$supports_wasi_pn" = "0" ]; then + target="wasm32-wasi" fi + # `wasm32-wasip2` only exists in recent versions of Rust + if [ "$target" = "wasm32-wasip2" ] && [ "$supports_wasi_pn" = "0" ]; then + continue + fi + + test_target "$target" test_run=1 fi done @@ -267,11 +289,9 @@ for target in ${no_dist_targets:-}; do if echo "$target" | grep -q "$filter"; then if [ "$os" = "windows" ]; then TARGET="$target" ./ci/install-rust.sh - test_target "$target" 1 - else - test_target "$target" 1 fi + test_target "$target" 1 test_run=1 fi done diff --git a/libc-test/build.rs b/libc-test/build.rs index 12a04566de8bb..66548cea19b01 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4734,9 +4734,16 @@ fn test_linux_like_apis(target: &str) { } fn which_freebsd() -> Option { + if let Ok(version) = env::var("RUST_LIBC_UNSTABLE_FREEBSD_VERSION") { + let vers = version.parse().unwrap(); + println!("cargo:warning=setting FreeBSD version to {vers}"); + return Some(vers); + } + let output = std::process::Command::new("freebsd-version") .output() .ok()?; + if !output.status.success() { return None; } From 5d77970a4e20c79c75319942a38e213b3a59ad43 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 27 Nov 2024 03:25:37 -0500 Subject: [PATCH 0414/1228] fix(freebsd): Run `cargo fix` with more FreeBSD versions For versions 10, 11, 12, 13, 14, 15, and architectures aarch64, i686, powerpc64, riscv64gc, and x86_64, I ran the following: RUST_LIBC_UNSTABLE_FREEBSD_VERSION=15 cargo fix \ -Zbuild-std=core \ --features extra_traits \ --allow-dirty \ --edition \ --broken-code \ --lib \ --target aarch64-unknown-freebsd (backport ) (cherry picked from commit 2e4ac8f24aa7f84df94d0dcbfa073e0ea444375b) Not an exact cherry pick, I just reran the command. --- .../bsd/freebsdlike/freebsd/freebsd12/mod.rs | 190 +++++++++--------- .../freebsdlike/freebsd/freebsd12/x86_64.rs | 4 +- 2 files changed, 97 insertions(+), 97 deletions(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index b763d34e5fdf4..6bffccfc9fc70 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -12,18 +12,18 @@ pub type shmatt_t = c_uint; s! { pub struct shmid_ds { - pub shm_perm: ::ipc_perm, + pub shm_perm: crate::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 shm_lpid: crate::pid_t, + pub shm_cpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, } pub struct kevent { - pub ident: ::uintptr_t, + pub ident: crate::uintptr_t, pub filter: c_short, pub flags: c_ushort, pub fflags: c_uint, @@ -37,8 +37,8 @@ s! { pub paddr: c_ulong, pub kmap_vaddr: c_ulong, pub dmap_vaddr: c_ulong, - pub prot: ::vm_prot_t, - pub offset: ::u_long, + pub prot: crate::vm_prot_t, + pub offset: crate::u_long, pub len: size_t, } @@ -48,7 +48,7 @@ s! { /// Reserved: layout identifier. pub ki_layout: c_int, /// Address of command arguments. - pub ki_args: *mut ::pargs, + pub ki_args: *mut crate::pargs, // This is normally "struct proc". /// Address of proc. pub ki_paddr: *mut c_void, @@ -70,17 +70,17 @@ s! { /// Sleep address. pub ki_wchan: *mut c_void, /// Process identifier. - pub ki_pid: ::pid_t, + pub ki_pid: crate::pid_t, /// Parent process ID. - pub ki_ppid: ::pid_t, + pub ki_ppid: crate::pid_t, /// Process group ID. - pub ki_pgid: ::pid_t, + pub ki_pgid: crate::pid_t, /// tty process group ID. - pub ki_tpgid: ::pid_t, + pub ki_tpgid: crate::pid_t, /// Process session ID. - pub ki_sid: ::pid_t, + pub ki_sid: crate::pid_t, /// Terminal session ID. - pub ki_tsid: ::pid_t, + pub ki_tsid: crate::pid_t, /// Job control counter. pub ki_jobc: c_short, /// Unused (just here for alignment). @@ -88,61 +88,61 @@ s! { /// Controlling tty dev. pub ki_tdev_freebsd11: u32, /// Signals arrived but not delivered. - pub ki_siglist: ::sigset_t, + pub ki_siglist: crate::sigset_t, /// Current signal mask. - pub ki_sigmask: ::sigset_t, + pub ki_sigmask: crate::sigset_t, /// Signals being ignored. - pub ki_sigignore: ::sigset_t, + pub ki_sigignore: crate::sigset_t, /// Signals being caught by user. - pub ki_sigcatch: ::sigset_t, + pub ki_sigcatch: crate::sigset_t, /// Effective user ID. - pub ki_uid: ::uid_t, + pub ki_uid: crate::uid_t, /// Real user ID. - pub ki_ruid: ::uid_t, + pub ki_ruid: crate::uid_t, /// Saved effective user ID. - pub ki_svuid: ::uid_t, + pub ki_svuid: crate::uid_t, /// Real group ID. - pub ki_rgid: ::gid_t, + pub ki_rgid: crate::gid_t, /// Saved effective group ID. - pub ki_svgid: ::gid_t, + pub ki_svgid: crate::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], + pub ki_groups: [crate::gid_t; crate::KI_NGROUPS], /// Virtual size. - pub ki_size: ::vm_size_t, + pub ki_size: crate::vm_size_t, /// Current resident set size in pages. - pub ki_rssize: ::segsz_t, + pub ki_rssize: crate::segsz_t, /// Resident set size before last swap. - pub ki_swrss: ::segsz_t, + pub ki_swrss: crate::segsz_t, /// Text size (pages) XXX. - pub ki_tsize: ::segsz_t, + pub ki_tsize: crate::segsz_t, /// Data size (pages) XXX. - pub ki_dsize: ::segsz_t, + pub ki_dsize: crate::segsz_t, /// Stack size (pages). - pub ki_ssize: ::segsz_t, + pub ki_ssize: crate::segsz_t, /// Exit status for wait & stop signal. - pub ki_xstat: ::u_short, + pub ki_xstat: crate::u_short, /// Accounting flags. - pub ki_acflag: ::u_short, + pub ki_acflag: crate::u_short, /// %cpu for process during `ki_swtime`. - pub ki_pctcpu: ::fixpt_t, + pub ki_pctcpu: crate::fixpt_t, /// Time averaged value of `ki_cpticks`. - pub ki_estcpu: ::u_int, + pub ki_estcpu: crate::u_int, /// Time since last blocked. - pub ki_slptime: ::u_int, + pub ki_slptime: crate::u_int, /// Time swapped in or out. - pub ki_swtime: ::u_int, + pub ki_swtime: crate::u_int, /// Number of copy-on-write faults. - pub ki_cow: ::u_int, + pub ki_cow: crate::u_int, /// Real time in microsec. pub ki_runtime: u64, /// Starting time. - pub ki_start: ::timeval, + pub ki_start: crate::timeval, /// Time used by process children. - pub ki_childtime: ::timeval, + pub ki_childtime: crate::timeval, /// P_* flags. pub ki_flag: c_long, /// KI_* flags (below). @@ -162,27 +162,27 @@ s! { /// Last cpu we were on. pub ki_lastcpu_old: c_uchar, /// Thread name. - pub ki_tdname: [c_char; ::TDNAMLEN + 1], + pub ki_tdname: [c_char; crate::TDNAMLEN + 1], /// Wchan message. - pub ki_wmesg: [c_char; ::WMESGLEN + 1], + pub ki_wmesg: [c_char; crate::WMESGLEN + 1], /// Setlogin name. - pub ki_login: [c_char; ::LOGNAMELEN + 1], + pub ki_login: [c_char; crate::LOGNAMELEN + 1], /// Lock name. - pub ki_lockname: [c_char; ::LOCKNAMELEN + 1], + pub ki_lockname: [c_char; crate::LOCKNAMELEN + 1], /// Command name. - pub ki_comm: [c_char; ::COMMLEN + 1], + pub ki_comm: [c_char; crate::COMMLEN + 1], /// Emulation name. - pub ki_emul: [c_char; ::KI_EMULNAMELEN + 1], + pub ki_emul: [c_char; crate::KI_EMULNAMELEN + 1], /// Login class. - pub ki_loginclass: [c_char; ::LOGINCLASSLEN + 1], + pub ki_loginclass: [c_char; crate::LOGINCLASSLEN + 1], /// More thread name. - pub ki_moretdname: [c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], + pub ki_moretdname: [c_char; crate::MAXCOMLEN - crate::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], + pub ki_spareints: [c_int; crate::KI_NSPARE_INT], /// Controlling tty dev. - pub ki_tdev: ::dev_t, + pub ki_tdev: crate::dev_t, /// Which cpu we are on. pub ki_oncpu: c_int, /// Last cpu we were on. @@ -194,19 +194,19 @@ s! { /// Default FIB number. pub ki_fibnum: c_int, /// Credential flags. - pub ki_cr_flags: ::u_int, + pub ki_cr_flags: crate::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, + pub ki_tid: crate::lwpid_t, /// Process priority. - pub ki_pri: ::priority, + pub ki_pri: crate::priority, /// Process rusage statistics. - pub ki_rusage: ::rusage, + pub ki_rusage: crate::rusage, /// rusage of children processes. - pub ki_rusage_ch: ::rusage, + pub ki_rusage_ch: crate::rusage, // This is normally "struct pcb". /// Kernel virtual addr of pcb. pub ki_pcb: *mut c_void, @@ -216,8 +216,8 @@ s! { pub ki_udata: *mut c_void, // This is normally "struct thread". pub ki_tdaddr: *mut c_void, - pub ki_spareptrs: [*mut c_void; ::KI_NSPARE_PTR], - pub ki_sparelongs: [c_long; ::KI_NSPARE_LONG], + pub ki_spareptrs: [*mut c_void; crate::KI_NSPARE_PTR], + pub ki_sparelongs: [c_long; crate::KI_NSPARE_LONG], /// PS_* flags. pub ki_sflag: c_long, /// kthread flag. @@ -225,35 +225,35 @@ 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_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, st_padding0: i16, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, st_padding1: i32, - pub st_rdev: ::dev_t, + pub st_rdev: crate::dev_t, #[cfg(target_arch = "x86")] st_atim_ext: i32, - pub st_atime: ::time_t, + pub st_atime: crate::time_t, pub st_atime_nsec: c_long, #[cfg(target_arch = "x86")] st_mtim_ext: i32, - pub st_mtime: ::time_t, + pub st_mtime: crate::time_t, pub st_mtime_nsec: c_long, #[cfg(target_arch = "x86")] st_ctim_ext: i32, - pub st_ctime: ::time_t, + pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, #[cfg(target_arch = "x86")] st_btim_ext: i32, - pub st_birthtime: ::time_t, + pub st_birthtime: crate::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_blocks: crate::blkcnt_t, + pub st_blksize: crate::blksize_t, + pub st_flags: crate::fflags_t, pub st_gen: u64, pub st_spare: [u64; 10], } @@ -261,7 +261,7 @@ s! { s_no_extra_traits! { pub struct dirent { - pub d_fileno: ::ino_t, + pub d_fileno: crate::ino_t, pub d_off: off_t, pub d_reclen: u16, pub d_type: u8, @@ -288,8 +288,8 @@ s_no_extra_traits! { pub f_asyncreads: u64, f_spare: [u64; 10], pub f_namemax: u32, - pub f_owner: ::uid_t, - pub f_fsid: ::fsid_t, + pub f_owner: crate::uid_t, + pub f_fsid: crate::fsid_t, f_charspare: [c_char; 80], pub f_fstypename: [c_char; 16], pub f_mntfromname: [c_char; 1024], @@ -304,7 +304,7 @@ s_no_extra_traits! { pub vn_mntdir: *mut c_char, pub vn_type: c_int, pub vn_mode: u16, - pub vn_devname: [c_char; ::SPECNAMELEN as usize + 1], + pub vn_devname: [c_char; crate::SPECNAMELEN as usize + 1], } } @@ -343,8 +343,8 @@ cfg_if! { } } impl Eq for statfs {} - impl ::fmt::Debug for statfs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for statfs { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("statfs") .field("f_bsize", &self.f_bsize) .field("f_iosize", &self.f_iosize) @@ -366,8 +366,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for statfs { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for statfs { + fn hash(&self, state: &mut H) { self.f_version.hash(state); self.f_type.hash(state); self.f_flags.hash(state); @@ -406,8 +406,8 @@ cfg_if! { } } impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for dirent { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { f.debug_struct("dirent") .field("d_fileno", &self.d_fileno) .field("d_off", &self.d_off) @@ -418,8 +418,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_fileno.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -445,8 +445,8 @@ cfg_if! { } } impl Eq for vnstat {} - impl ::fmt::Debug for vnstat { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + impl crate::fmt::Debug for vnstat { + fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { let self_vn_devname: &[c_char] = &self.vn_devname; f.debug_struct("vnstat") @@ -461,8 +461,8 @@ cfg_if! { .finish() } } - impl ::hash::Hash for vnstat { - fn hash(&self, state: &mut H) { + impl crate::hash::Hash for vnstat { + fn hash(&self, state: &mut H) { let self_vn_devname: &[c_char] = &self.vn_devname; self.vn_fileid.hash(state); @@ -488,9 +488,9 @@ pub const KI_NSPARE_PTR: usize = 6; pub const MINCORE_SUPER: c_int = 0x20; safe_f! { - pub {const} fn makedev(major: c_uint, minor: c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; + pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + let major = major as crate::dev_t; + let minor = minor as crate::dev_t; let mut dev = 0; dev |= ((major & 0xffffff00) as dev_t) << 32; dev |= ((major & 0x000000ff) as dev_t) << 8; @@ -501,11 +501,11 @@ safe_f! { } f! { - pub fn major(dev: ::dev_t) -> c_int { + pub fn major(dev: crate::dev_t) -> c_int { (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as c_int } - pub fn minor(dev: ::dev_t) -> c_int { + pub fn minor(dev: crate::dev_t) -> c_int { (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as c_int } } @@ -513,7 +513,7 @@ f! { 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 freelocale(loc: crate::locale_t); pub fn msgrcv( msqid: c_int, msgp: *mut c_void, diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs index 7c2d6853a8514..24713993f90a7 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs @@ -1,7 +1,7 @@ use crate::c_int; -pub const PROC_KPTI_CTL: c_int = ::PROC_PROCCTL_MD_MIN; +pub const PROC_KPTI_CTL: c_int = crate::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: c_int = crate::PROC_PROCCTL_MD_MIN + 1; pub const PROC_KPTI_STATUS_ACTIVE: c_int = 0x80000000; From 867454921ca798012f98846a6dffc313d880c230 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20S=C3=A1nchez=20Mu=C3=B1oz?= Date: Wed, 27 Nov 2024 20:43:18 +0100 Subject: [PATCH 0415/1228] Handle remaining leading `::` in paths I looked for `[^\w]::` and fixed them manually. (backport ) (cherry picked from commit 82d30c6a287fcbb186539cd21b663e2ee1f48a75) --- ci/style.rs | 2 +- src/fuchsia/mod.rs | 2 +- src/teeos/mod.rs | 2 +- src/unix/bsd/apple/mod.rs | 2 +- src/unix/bsd/netbsdlike/netbsd/riscv64.rs | 4 +- src/unix/bsd/netbsdlike/openbsd/arm.rs | 2 +- src/unix/linux_like/linux/gnu/b32/m68k/mod.rs | 296 +++++++++--------- .../linux/gnu/b64/loongarch64/mod.rs | 6 +- .../linux/gnu/b64/x86_64/not_x32.rs | 6 +- src/unix/linux_like/linux/mod.rs | 4 +- .../linux_like/linux/musl/b32/riscv32/mod.rs | 12 +- .../linux/uclibc/mips/mips64/mod.rs | 110 +++---- src/unix/newlib/aarch64/mod.rs | 14 +- src/unix/nto/neutrino.rs | 22 +- src/unix/redox/mod.rs | 2 +- src/unix/solarish/x86.rs | 22 +- 16 files changed, 254 insertions(+), 254 deletions(-) diff --git a/ci/style.rs b/ci/style.rs index c4e0fb0db8058..f5aeabcc71b5a 100644 --- a/ci/style.rs +++ b/ci/style.rs @@ -115,7 +115,7 @@ fn check_style(file: &str, path: &Path, err: &mut Errors) { } } if line.contains("#[derive(") && (line.contains("Copy") || line.contains("Clone")) { - err.error(path, i, "impl ::Copy and ::Clone manually"); + err.error(path, i, "impl Copy and Clone manually"); } if line.contains("impl") { in_impl = true; diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 5600488f88511..1d2bd948ce4df 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -2062,7 +2062,7 @@ pub const WEXITED: c_int = 0x00000004; pub const WCONTINUED: c_int = 0x00000008; pub const WNOWAIT: c_int = 0x01000000; -// ::Options set using PTRACE_SETOPTIONS. +// Options set using PTRACE_SETOPTIONS. pub const PTRACE_O_TRACESYSGOOD: c_int = 0x00000001; pub const PTRACE_O_TRACEFORK: c_int = 0x00000002; pub const PTRACE_O_TRACEVFORK: c_int = 0x00000004; diff --git a/src/teeos/mod.rs b/src/teeos/mod.rs index b04f69b09c0ac..a46587d111108 100644 --- a/src/teeos/mod.rs +++ b/src/teeos/mod.rs @@ -1109,7 +1109,7 @@ extern "C" { pub fn pthread_cond_timedwait( cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t, - abstime: *const ::timespec, + abstime: *const timespec, ) -> c_int; pub fn pthread_mutexattr_setrobust(attr: *mut pthread_mutexattr_t, robustness: c_int) -> c_int; diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index e82667ee7f688..090a1c2d1ad1d 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -369,7 +369,7 @@ s! { pub si_status: c_int, pub si_addr: *mut c_void, //Requires it to be union for tests - //pub si_value: ::sigval, + //pub si_value: crate::sigval, _pad: [usize; 9], } diff --git a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs index d43269607d29c..0eddbc0bea115 100644 --- a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs @@ -14,7 +14,7 @@ s! { pub struct mcontext_t { pub __gregs: __gregset, pub __fregs: __fpregset, - __spare: [::__greg_t; 7], + __spare: [crate::__greg_t; 7], } } @@ -26,7 +26,7 @@ s_no_extra_traits! { } } -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; pub const PT_GETREGS: c_int = PT_FIRSTMACH + 0; pub const PT_SETREGS: c_int = PT_FIRSTMACH + 1; diff --git a/src/unix/bsd/netbsdlike/openbsd/arm.rs b/src/unix/bsd/netbsdlike/openbsd/arm.rs index 89603fba92853..e781fa7484ac1 100644 --- a/src/unix/bsd/netbsdlike/openbsd/arm.rs +++ b/src/unix/bsd/netbsdlike/openbsd/arm.rs @@ -4,6 +4,6 @@ pub type c_long = i32; pub type c_ulong = u32; pub type c_char = u8; -pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index 6b705ffe7f159..2dc51bb4b9fe7 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -5,27 +5,27 @@ pub type wchar_t = i32; s! { pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, + pub sa_sigaction: crate::sighandler_t, + pub sa_mask: crate::sigset_t, pub sa_flags: c_int, pub sa_restorer: Option, } pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - f_spare: [::__fsword_t; 4], + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + pub f_flags: crate::__fsword_t, + f_spare: [crate::__fsword_t; 4], } pub struct flock { @@ -33,7 +33,7 @@ s! { pub l_whence: c_short, pub l_start: off_t, pub l_len: off_t, - pub l_pid: ::pid_t, + pub l_pid: crate::pid_t, } pub struct flock64 { @@ -41,16 +41,16 @@ s! { pub l_whence: c_short, pub l_start: off64_t, pub l_len: off64_t, - pub l_pid: ::pid_t, + pub l_pid: crate::pid_t, } pub struct 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, + __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, __seq: c_ushort, __pad1: c_ushort, __glibc_reserved1: c_ulong, @@ -58,51 +58,51 @@ s! { } pub struct stat64 { - pub st_dev: ::dev_t, + pub st_dev: crate::dev_t, __pad1: c_ushort, - pub __st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, + pub __st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, __pad2: c_ushort, pub st_size: off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - pub st_atime: ::time_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atime: crate::time_t, pub st_atime_nsec: c_ulong, - pub st_mtime: ::time_t, + pub st_mtime: crate::time_t, pub st_mtime_nsec: c_ulong, - pub st_ctime: ::time_t, + pub st_ctime: crate::time_t, pub st_ctime_nsec: c_ulong, - pub st_ino: ::ino64_t, + pub st_ino: crate::ino64_t, } pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsblkcnt64_t, - pub f_ffree: ::fsblkcnt64_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], + pub f_type: crate::__fsword_t, + pub f_bsize: crate::__fsword_t, + pub f_blocks: crate::fsblkcnt64_t, + pub f_bfree: crate::fsblkcnt64_t, + pub f_bavail: crate::fsblkcnt64_t, + pub f_files: crate::fsblkcnt64_t, + pub f_ffree: crate::fsblkcnt64_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: crate::__fsword_t, + pub f_frsize: crate::__fsword_t, + pub f_flags: crate::__fsword_t, + pub f_spare: [crate::__fsword_t; 4], } pub struct statvfs64 { pub f_bsize: c_ulong, pub f_frsize: c_ulong, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsblkcnt64_t, - pub f_ffree: ::fsblkcnt64_t, - pub f_favail: ::fsblkcnt64_t, + pub f_blocks: crate::fsblkcnt64_t, + pub f_bfree: crate::fsblkcnt64_t, + pub f_bavail: crate::fsblkcnt64_t, + pub f_files: crate::fsblkcnt64_t, + pub f_ffree: crate::fsblkcnt64_t, + pub f_favail: crate::fsblkcnt64_t, pub f_fsid: c_ulong, __f_unused: c_int, pub f_flag: c_ulong, @@ -111,34 +111,34 @@ s! { } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, + pub shm_perm: crate::ipc_perm, pub shm_segsz: size_t, - pub shm_atime: ::time_t, + pub shm_atime: crate::time_t, __glibc_reserved1: c_long, - pub shm_dtime: ::time_t, + pub shm_dtime: crate::time_t, __glibc_reserved2: c_long, - pub shm_ctime: ::time_t, + pub shm_ctime: crate::time_t, __glibc_reserved3: c_long, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, __glibc_reserved5: c_ulong, __glibc_reserved6: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, + pub msg_perm: crate::ipc_perm, + pub msg_stime: crate::time_t, __glibc_reserved1: c_uint, - pub msg_rtime: ::time_t, + pub msg_rtime: crate::time_t, __glibc_reserved2: c_uint, - pub msg_ctime: ::time_t, + pub msg_ctime: crate::time_t, __glibc_reserved3: c_uint, __msg_cbytes: c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, __glibc_reserved4: c_ulong, __glibc_reserved5: c_ulong, } @@ -338,16 +338,16 @@ pub const SIGPROF: c_int = 27; pub const SIGWINCH: c_int = 28; pub const SIGSTKSZ: size_t = 8192; pub const MINSIGSTKSZ: size_t = 2048; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: crate::tcflag_t = 0x00000800; +pub const TAB2: crate::tcflag_t = 0x00001000; +pub const TAB3: crate::tcflag_t = 0x00001800; +pub const CR1: crate::tcflag_t = 0x00000200; +pub const CR2: crate::tcflag_t = 0x00000400; +pub const CR3: crate::tcflag_t = 0x00000600; +pub const FF1: crate::tcflag_t = 0x00008000; +pub const BS1: crate::tcflag_t = 0x00002000; +pub const VT1: crate::tcflag_t = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -355,82 +355,82 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; +pub const B0: crate::speed_t = 0o000000; +pub const B50: crate::speed_t = 0o000001; +pub const B75: crate::speed_t = 0o000002; +pub const B110: crate::speed_t = 0o000003; +pub const B134: crate::speed_t = 0o000004; +pub const B150: crate::speed_t = 0o000005; +pub const B200: crate::speed_t = 0o000006; +pub const B300: crate::speed_t = 0o000007; +pub const B600: crate::speed_t = 0o000010; +pub const B1200: crate::speed_t = 0o000011; +pub const B1800: crate::speed_t = 0o000012; +pub const B2400: crate::speed_t = 0o000013; +pub const B4800: crate::speed_t = 0o000014; +pub const B9600: crate::speed_t = 0o000015; +pub const B19200: crate::speed_t = 0o000016; +pub const B38400: crate::speed_t = 0o000017; +pub const EXTA: crate::speed_t = B19200; +pub const EXTB: crate::speed_t = B38400; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; -pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; +pub const EXTPROC: crate::tcflag_t = 0x00010000; pub const TCSANOW: c_int = 0; pub const TCSADRAIN: c_int = 1; diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs index 8305ccdf25a53..5e4d3f0a2837e 100644 --- a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs @@ -276,21 +276,21 @@ pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthrea ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs index 2d256cd8a13db..19e28e91f5b33 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs @@ -46,21 +46,21 @@ pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthrea ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; #[cfg(target_endian = "big")] -pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = pthread_mutex_t { +pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { size: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 889fc9980a94f..43b9d725ecb3a 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -4241,11 +4241,11 @@ pub const IW_PMKID_CAND_PREAUTH: c_ulong = 0x00000001; pub const IW_EV_LCP_PK_LEN: usize = 4; -pub const IW_EV_CHAR_PK_LEN: usize = 20; // IW_EV_LCP_PK_LEN + ::IFNAMSIZ; +pub const IW_EV_CHAR_PK_LEN: usize = 20; // IW_EV_LCP_PK_LEN + crate::IFNAMSIZ; pub const IW_EV_UINT_PK_LEN: usize = 8; // IW_EV_LCP_PK_LEN + size_of::(); pub const IW_EV_FREQ_PK_LEN: usize = 12; // IW_EV_LCP_PK_LEN + size_of::(); pub const IW_EV_PARAM_PK_LEN: usize = 12; // IW_EV_LCP_PK_LEN + size_of::(); -pub const IW_EV_ADDR_PK_LEN: usize = 20; // IW_EV_LCP_PK_LEN + size_of::<::sockaddr>(); +pub const IW_EV_ADDR_PK_LEN: usize = 20; // IW_EV_LCP_PK_LEN + size_of::(); pub const IW_EV_QUAL_PK_LEN: usize = 8; // IW_EV_LCP_PK_LEN + size_of::(); pub const IW_EV_POINT_PK_LEN: usize = 8; // IW_EV_LCP_PK_LEN + 4; diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index 68cdc45de4df6..46de7219dbf8b 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -109,14 +109,14 @@ s_no_extra_traits! { } } -//pub const RLIM_INFINITY: ::rlim_t = !0; +//pub const RLIM_INFINITY: crate::rlim_t = !0; pub const VEOF: usize = 4; pub const RTLD_DEEPBIND: c_int = 0x8; -//pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; -//pub const RLIMIT_AS: ::__rlimit_resource_t = 9; -//pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; -//pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; -//pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; +//pub const RLIMIT_RSS: crate::__rlimit_resource_t = 5; +//pub const RLIMIT_AS: crate::__rlimit_resource_t = 9; +//pub const RLIMIT_MEMLOCK: crate::__rlimit_resource_t = 8; +//pub const RLIMIT_NOFILE: crate::__rlimit_resource_t = 7; +//pub const RLIMIT_NPROC: crate::__rlimit_resource_t = 6; pub const O_APPEND: c_int = 1024; pub const O_CREAT: c_int = 64; pub const O_EXCL: c_int = 128; diff --git a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs index de46957301023..4000ab147504c 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs @@ -18,47 +18,47 @@ s! { pub struct stat { pub st_dev: c_ulong, st_pad1: [c_long; 2], - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, pub st_rdev: c_ulong, st_pad2: [c_ulong; 1], pub st_size: off_t, st_pad3: c_long, - pub st_atime: ::time_t, + pub st_atime: crate::time_t, pub st_atime_nsec: c_long, - pub st_mtime: ::time_t, + pub st_mtime: crate::time_t, pub st_mtime_nsec: c_long, - pub st_ctime: ::time_t, + pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - pub st_blksize: ::blksize_t, + pub st_blksize: crate::blksize_t, st_pad4: c_long, - pub st_blocks: ::blkcnt_t, + pub st_blocks: crate::blkcnt_t, st_pad5: [c_long; 7], } pub struct stat64 { pub st_dev: c_ulong, st_pad1: [c_long; 2], - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, + pub st_ino: crate::ino64_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, pub st_rdev: c_ulong, st_pad2: [c_long; 2], pub st_size: off64_t, - pub st_atime: ::time_t, + pub st_atime: crate::time_t, pub st_atime_nsec: c_long, - pub st_mtime: ::time_t, + pub st_mtime: crate::time_t, pub st_mtime_nsec: c_long, - pub st_ctime: ::time_t, + pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - pub st_blksize: ::blksize_t, + pub st_blksize: crate::blksize_t, st_pad3: c_long, - pub st_blocks: ::blkcnt64_t, + pub st_blocks: crate::blkcnt64_t, st_pad5: [c_long; 7], } @@ -68,7 +68,7 @@ s! { pub struct sigaction { pub sa_flags: c_int, - pub sa_sigaction: ::sighandler_t, + pub sa_sigaction: crate::sighandler_t, pub sa_mask: sigset_t, _restorer: *mut c_void, } @@ -92,11 +92,11 @@ s! { } pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, pub mode: c_uint, pub __seq: c_ushort, __pad1: c_ushort, @@ -105,28 +105,28 @@ s! { } pub struct shmid_ds { - pub shm_perm: ::ipc_perm, + pub shm_perm: crate::ipc_perm, pub shm_segsz: size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, __unused4: c_ulong, __unused5: c_ulong, } pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, + pub msg_perm: crate::ipc_perm, + pub msg_stime: crate::time_t, + pub msg_rtime: crate::time_t, + pub msg_ctime: crate::time_t, __msg_cbytes: c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, __glibc_reserved4: c_ulong, __glibc_reserved5: c_ulong, } @@ -135,12 +135,12 @@ s! { pub f_type: c_long, pub f_bsize: c_long, pub f_frsize: c_long, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_files: ::fsblkcnt_t, - pub f_ffree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_fsid: ::fsid_t, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_files: crate::fsblkcnt_t, + pub f_ffree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_fsid: crate::fsid_t, pub f_namelen: c_long, f_spare: [c_long; 6], @@ -148,8 +148,8 @@ s! { pub struct msghdr { pub msg_name: *mut c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, pub msg_iovlen: size_t, pub msg_control: *mut c_void, pub msg_controllen: size_t, @@ -163,12 +163,12 @@ s! { } pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; crate::NCCS], } pub struct sysinfo { diff --git a/src/unix/newlib/aarch64/mod.rs b/src/unix/newlib/aarch64/mod.rs index 7efbdf780db3f..87952650e5d12 100644 --- a/src/unix/newlib/aarch64/mod.rs +++ b/src/unix/newlib/aarch64/mod.rs @@ -10,24 +10,24 @@ pub type c_ulong = u64; s! { pub struct sockaddr { pub sa_len: u8, - pub sa_family: ::sa_family_t, + pub sa_family: crate::sa_family_t, pub sa_data: [c_char; 14], } pub struct sockaddr_in6 { pub sin6_len: u8, - pub sin6_family: ::sa_family_t, - pub sin6_port: ::in_port_t, + pub sin6_family: crate::sa_family_t, + pub sin6_port: crate::in_port_t, pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, + pub sin6_addr: crate::in6_addr, pub sin6_scope_id: u32, } pub struct sockaddr_in { pub sin_len: u8, - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, + pub sin_family: crate::sa_family_t, + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, pub sin_zero: [c_char; 8], } } diff --git a/src/unix/nto/neutrino.rs b/src/unix/nto/neutrino.rs index 3e2bee367acd3..8d559015ac8cb 100644 --- a/src/unix/nto/neutrino.rs +++ b/src/unix/nto/neutrino.rs @@ -83,7 +83,7 @@ s! { // of Neutrino 7.1 SDP. Commented out for now. //pub struct _asyncmsg_put_header { // pub err: c_int, - // pub iov: *mut ::iov_t, + // pub iov: *mut crate::iov_t, // pub parts: c_int, // pub handle: c_uint, // pub cb: Option< @@ -105,7 +105,7 @@ s! { // pub buffer_size: size_t, // pub max_num_buffer: c_uint, // pub trigger_num_msg: c_uint, - // pub trigger_time: ::_itimer, + // pub trigger_time: crate::_itimer, // reserve: c_uint, //} @@ -116,15 +116,15 @@ s! { // pub sendq_tail: c_uint, // pub sendq_free: c_uint, // pub err: c_int, - // pub ev: ::sigevent, + // pub ev: crate::sigevent, // pub num_curmsg: c_uint, - // pub ttimer: ::timer_t, - // pub block_con: ::pthread_cond_t, - // pub mu: ::pthread_mutex_t, + // pub ttimer: crate::timer_t, + // pub block_con: crate::pthread_cond_t, + // pub mu: crate::pthread_mutex_t, // reserved: c_uint, - // pub attr: ::_asyncmsg_connection_attr, + // pub attr: crate::_asyncmsg_connection_attr, // pub reserves: [c_uint; 3], - // pub sendq: [::_asyncmsg_put_header; 1], // flexarray + // pub sendq: [crate::_asyncmsg_put_header; 1], // flexarray //} pub struct __c_anonymous_struct_ev { @@ -543,7 +543,7 @@ extern "C" { // standard installation of Neutrino 7.1 SDP. Commented out for now. //pub fn ConnectAttachExt( // __nd: u32, - // __pid: ::pid_t, + // __pid: crate::pid_t, // __chid: c_int, // __index: c_uint, // __flags: c_int, @@ -1262,7 +1262,7 @@ extern "C" { //pub fn InterruptDisable(); pub fn InterruptMask(__intr: c_int, __id: c_int) -> c_int; pub fn InterruptUnmask(__intr: c_int, __id: c_int) -> c_int; - //pub fn InterruptLock(__spin: *mut ::intrspin); - //pub fn InterruptUnlock(__spin: *mut ::intrspin); + //pub fn InterruptLock(__spin: *mut intrspin); + //pub fn InterruptUnlock(__spin: *mut intrspin); //pub fn InterruptStatus() -> c_uint; } diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 890b47a68a45f..1d2738a45cd49 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -85,7 +85,7 @@ s_no_extra_traits! { pub struct sockaddr_storage { pub ss_family: crate::sa_family_t, __ss_padding: - [u8; 128 - ::core::mem::size_of::() - ::core::mem::size_of::()], + [u8; 128 - crate::mem::size_of::() - crate::mem::size_of::()], __ss_align: c_ulong, } } diff --git a/src/unix/solarish/x86.rs b/src/unix/solarish/x86.rs index c161169547286..db449b1e86690 100644 --- a/src/unix/solarish/x86.rs +++ b/src/unix/solarish/x86.rs @@ -10,21 +10,21 @@ pub type Elf32_Phdr = __c_anonymous_Elf32_Phdr; s! { pub struct __c_anonymous_Elf32_Phdr { - pub p_type: ::Elf32_Word, - pub p_offset: ::Elf32_Off, - pub p_vaddr: ::Elf32_Addr, - pub p_paddr: ::Elf32_Addr, - pub p_filesz: ::Elf32_Word, - pub p_memsz: ::Elf32_Word, - pub p_flags: ::Elf32_Word, - pub p_align: ::Elf32_Word, + pub p_type: Elf32_Word, + pub p_offset: Elf32_Off, + pub p_vaddr: Elf32_Addr, + pub p_paddr: Elf32_Addr, + pub p_filesz: Elf32_Word, + pub p_memsz: Elf32_Word, + pub p_flags: Elf32_Word, + pub p_align: Elf32_Word, } pub struct dl_phdr_info { - pub dlpi_addr: ::Elf32_Addr, + pub dlpi_addr: Elf32_Addr, pub dlpi_name: *const c_char, - pub dlpi_phdr: *const ::Elf32_Phdr, - pub dlpi_phnum: ::Elf32_Half, + pub dlpi_phdr: *const Elf32_Phdr, + pub dlpi_phnum: Elf32_Half, pub dlpi_adds: c_ulonglong, pub dlpi_subs: c_ulonglong, } From 0c7b004860a1343ec8f3fe34a1e738ae1400cde0 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Mon, 25 Nov 2024 19:57:35 +0000 Subject: [PATCH 0416/1228] solarish update stat type with st_fstype field. (backport ) (cherry picked from commit bd5a0d30a090ed6d387dadc9e922e62d581dd79e) --- libc-test/semver/solarish.txt | 1 + src/unix/solarish/mod.rs | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/libc-test/semver/solarish.txt b/libc-test/semver/solarish.txt index f70409ed8ae88..9d0ae3ac18b5d 100644 --- a/libc-test/semver/solarish.txt +++ b/libc-test/semver/solarish.txt @@ -17,6 +17,7 @@ LIO_WRITE PIPE_BUF SIGEV_PORT _POSIX_VDISABLE +_ST_FSTYPSZ aio_cancel aio_error aio_fsync diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index ae24e6e308419..981c697e923f3 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -344,7 +344,7 @@ s! { pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, - __unused: [c_char; 16], + pub st_fstype: [c_char; _ST_FSTYPSZ as usize], } pub struct termios { @@ -2029,6 +2029,8 @@ pub const _SC_XOPEN_STREAMS: c_int = 761; pub const _SC_IPV6: c_int = 762; pub const _SC_RAW_SOCKETS: c_int = 763; +pub const _ST_FSTYPSZ: c_int = 16; + pub const _MUTEX_MAGIC: u16 = 0x4d58; // MX pub const _COND_MAGIC: u16 = 0x4356; // CV pub const _RWL_MAGIC: u16 = 0x5257; // RW From 1abd74b07a1d97373d416f5a6778c5eb9a0835af Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 27 Nov 2024 17:13:45 -0500 Subject: [PATCH 0417/1228] trusty: Add `intptr_t` and `uintptr_t` Other platforms export these types, so update Trusty to do so as well. (backport ) (cherry picked from commit 6bee30ed7998fc6b700b8f4e879b6999bb75df42) --- src/trusty.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/trusty.rs b/src/trusty.rs index 3155fd23e6a3a..2d2b78881a75f 100644 --- a/src/trusty.rs +++ b/src/trusty.rs @@ -43,6 +43,9 @@ pub type c_int16_t = i16; pub type c_int32_t = i32; pub type c_int64_t = i64; +pub type intptr_t = isize; +pub type uintptr_t = usize; + pub type c_float = f32; pub type c_double = f64; From 877b6f6ebb9626a6469e725f065f84e22962b3b5 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 27 Nov 2024 04:20:12 -0500 Subject: [PATCH 0418/1228] Create an internal prelude When building with `rustc-dep-of-std`, we don't get the core types imported by default (`Clone`, `Copy`, `Option`). In order to avoid needing to import these individually, introduce a prelude that includes them, along with commonly used C numeric types. This allows cleaning up some of the `use` statements. (backport ) (cherry picked from commit 30bc78b2ccc2d620cdd1f2ac16be083eff6dcabc) --- src/lib.rs | 51 ++++++++++++++++++++++++++------------------------- src/macros.rs | 27 +++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 25 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index f95e9ba6afd3e..1be0a003382d1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -33,35 +33,10 @@ mod macros; cfg_if! { if #[cfg(feature = "rustc-dep-of-std")] { extern crate rustc_std_workspace_core as core; - #[allow(unused_imports)] - use core::iter; - #[allow(unused_imports)] - use core::ops; - #[allow(unused_imports)] - use core::option; } } -#[doc(hidden)] -#[allow(unused_imports)] -use core::clone::Clone; -#[allow(unused_imports)] -use core::ffi; pub use core::ffi::c_void; -#[allow(unused_imports)] -use core::fmt; -#[allow(unused_imports)] -use core::hash; -#[doc(hidden)] -#[allow(unused_imports)] -use core::marker::{Copy, Send, Sync}; -#[allow(unused_imports)] -use core::mem; -#[allow(unused_imports)] -use core::num; -#[doc(hidden)] -#[allow(unused_imports)] -use core::option::Option; cfg_if! { if #[cfg(windows)] { @@ -70,78 +45,104 @@ cfg_if! { mod windows; pub use crate::windows::*; + + prelude!(); } else if #[cfg(target_os = "fuchsia")] { mod fixed_width_ints; pub use crate::fixed_width_ints::*; mod fuchsia; pub use crate::fuchsia::*; + + prelude!(); } else if #[cfg(target_os = "switch")] { mod fixed_width_ints; pub use fixed_width_ints::*; mod switch; pub use switch::*; + + prelude!(); } else if #[cfg(target_os = "psp")] { mod fixed_width_ints; pub use crate::fixed_width_ints::*; mod psp; pub use crate::psp::*; + + prelude!(); } else if #[cfg(target_os = "vxworks")] { mod fixed_width_ints; pub use crate::fixed_width_ints::*; mod vxworks; pub use crate::vxworks::*; + + prelude!(); } else if #[cfg(target_os = "solid_asp3")] { mod fixed_width_ints; pub use crate::fixed_width_ints::*; mod solid; pub use crate::solid::*; + + prelude!(); } else if #[cfg(unix)] { mod fixed_width_ints; pub use crate::fixed_width_ints::*; mod unix; pub use crate::unix::*; + + prelude!(); } else if #[cfg(target_os = "hermit")] { mod fixed_width_ints; pub use crate::fixed_width_ints::*; mod hermit; pub use crate::hermit::*; + + prelude!(); } else if #[cfg(target_os = "teeos")] { mod fixed_width_ints; pub use fixed_width_ints::*; mod teeos; pub use teeos::*; + + prelude!(); } else if #[cfg(target_os = "trusty")] { mod fixed_width_ints; pub use crate::fixed_width_ints::*; mod trusty; pub use crate::trusty::*; + + prelude!(); } else if #[cfg(all(target_env = "sgx", target_vendor = "fortanix"))] { mod fixed_width_ints; pub use crate::fixed_width_ints::*; mod sgx; pub use crate::sgx::*; + + prelude!(); } else if #[cfg(any(target_env = "wasi", target_os = "wasi"))] { mod fixed_width_ints; pub use crate::fixed_width_ints::*; mod wasi; pub use crate::wasi::*; + + prelude!(); } else if #[cfg(target_os = "xous")] { mod fixed_width_ints; pub use crate::fixed_width_ints::*; mod xous; pub use crate::xous::*; + + prelude!(); } else { // non-supported targets: empty... } diff --git a/src/macros.rs b/src/macros.rs index 354f42a568806..2ea084398da41 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -61,6 +61,33 @@ macro_rules! cfg_if { }; } +/// Create an internal crate prelude with `core` reexports and common types. +macro_rules! prelude { + () => { + /// Frequently-used types that are available on all platforms + /// + /// We need to reexport the core types so this works with `rust-dep-of-std`. + mod prelude { + // Exports from `core` + #[allow(unused_imports)] + pub(crate) use core::clone::Clone; + #[allow(unused_imports)] + pub(crate) use core::marker::{Copy, Send, Sync}; + #[allow(unused_imports)] + pub(crate) use core::option::Option; + #[allow(unused_imports)] + pub(crate) use core::{fmt, hash, iter, mem}; + + // Commonly used types defined in this crate + #[allow(unused_imports)] + pub(crate) use crate::{ + c_char, c_double, c_float, c_int, c_long, c_longlong, c_short, c_uchar, c_uint, + c_ulong, c_ulonglong, c_ushort, c_void, intptr_t, size_t, ssize_t, uintptr_t, + }; + } + }; +} + /// Implement `Clone` and `Copy` for a struct, as well as `Debug`, `Eq`, `Hash`, and /// `PartialEq` if the `extra_traits` feature is enabled. /// From 108310db03e7db35ef48a902d9ce9a88ab8f9b77 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 27 Nov 2024 17:48:51 -0500 Subject: [PATCH 0419/1228] Make use of the crate's prelude to replace individual imports Automatically apply changes with the following: #!/bin/bash set -eux files=() # Types either defined in this crate or in `core` prelude_types=( c_char c_double c_float c_int c_longlong c_long c_short c_uchar c_uint c_ulonglong c_ulong c_ushort c_void intptr_t size_t ssize_t Clone Copy Option Send Sync ) # Reexports from core prelude_modules=( fmt hash iter mem ) # Everything in the prelude prelude=( "${prelude_types[@]}" "${prelude_modules[@]}" ) # Generate a list of all files excluding `lib.rs` (since the prelude being # defined there makes string matching weird). while IFS= read -r -d '' file; do files+=("$file") done < <(find src -name '*.rs' -not -name '*lib.rs' -not -name '*macros.rs' -not -name 'fixed_width_ints.rs' -print0) for file in "${files[@]}"; do needs_prelude=0 # If the file already has some sort of glob import, skip it if rg --pcre2 -q 'use (crate|super)::(?!prelude).*\*' "$file"; then continue fi # Core types always require the prelude to handle rustc-dep-of-std if rg --pcre2 -q '\b(? "$file" printf "\n%s\n\n" "use crate::prelude::*;" >> "$file" printf "%s" "$rest" >> "$file" fi for ty in "${prelude[@]}"; do export TY="$ty" # env for perl to use # Remove simple imports `use crate::ty;` perl -pi -0777 -e 's/use ((crate|super)::)?($ENV{TY});//g' "$file" # Remove the type if it is part of a group import perl -pi -0777 -e 's/(use (crate|super)::\{?(.*|(\n.*){0,2}))\b$ENV{TY}\b,? ?/$1/g' "$file" # Replace pathed `crate::ty` perl -pi -0777 -e 's/(crate|super)::($ENV{TY})\b/$2/g' "$file" done # For some reason, rustfmt doesn't trim leading newlines. Do so manually here. perl -pi -0777 -e 's/\A\n+//' "$file" rustfmt "$file" done ./ci/style.sh (backport ) (cherry picked from commit f8a018a8e3efaf8cc4fbad84974255b0fa899fc2) Applied by rerunning the script rather than resolving conflicts manually. --- src/fuchsia/aarch64.rs | 3 +- src/fuchsia/mod.rs | 126 +++---- src/fuchsia/riscv64.rs | 3 +- src/fuchsia/x86_64.rs | 11 +- src/hermit.rs | 2 +- src/psp.rs | 2 +- src/solid/mod.rs | 2 +- src/teeos/mod.rs | 2 +- src/unix/aix/mod.rs | 53 ++- src/unix/aix/powerpc64.rs | 70 ++-- src/unix/bsd/apple/b32/mod.rs | 18 +- src/unix/bsd/apple/b64/aarch64/mod.rs | 2 +- src/unix/bsd/apple/b64/mod.rs | 18 +- src/unix/bsd/apple/b64/x86_64/mod.rs | 2 +- src/unix/bsd/apple/mod.rs | 348 +++++++++--------- src/unix/bsd/freebsdlike/dragonfly/errno.rs | 2 +- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 73 ++-- src/unix/bsd/freebsdlike/freebsd/aarch64.rs | 28 +- src/unix/bsd/freebsdlike/freebsd/arm.rs | 12 +- .../bsd/freebsdlike/freebsd/freebsd11/b32.rs | 3 +- .../bsd/freebsdlike/freebsd/freebsd11/b64.rs | 3 +- .../bsd/freebsdlike/freebsd/freebsd11/mod.rs | 26 +- .../bsd/freebsdlike/freebsd/freebsd12/mod.rs | 30 +- .../freebsdlike/freebsd/freebsd12/x86_64.rs | 2 +- .../bsd/freebsdlike/freebsd/freebsd13/mod.rs | 30 +- .../freebsdlike/freebsd/freebsd13/x86_64.rs | 2 +- .../bsd/freebsdlike/freebsd/freebsd14/mod.rs | 30 +- .../freebsdlike/freebsd/freebsd14/x86_64.rs | 2 +- .../bsd/freebsdlike/freebsd/freebsd15/mod.rs | 30 +- .../freebsdlike/freebsd/freebsd15/x86_64.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/mod.rs | 282 +++++++------- src/unix/bsd/freebsdlike/freebsd/powerpc.rs | 12 +- src/unix/bsd/freebsdlike/freebsd/powerpc64.rs | 12 +- src/unix/bsd/freebsdlike/freebsd/riscv64.rs | 28 +- src/unix/bsd/freebsdlike/freebsd/x86.rs | 12 +- .../bsd/freebsdlike/freebsd/x86_64/mod.rs | 44 +-- src/unix/bsd/freebsdlike/mod.rs | 16 +- src/unix/bsd/mod.rs | 26 +- src/unix/bsd/netbsdlike/mod.rs | 3 +- src/unix/bsd/netbsdlike/netbsd/aarch64.rs | 13 +- src/unix/bsd/netbsdlike/netbsd/arm.rs | 5 +- src/unix/bsd/netbsdlike/netbsd/mips.rs | 5 +- src/unix/bsd/netbsdlike/netbsd/mod.rs | 123 +++---- src/unix/bsd/netbsdlike/netbsd/powerpc.rs | 5 +- src/unix/bsd/netbsdlike/netbsd/riscv64.rs | 4 +- src/unix/bsd/netbsdlike/netbsd/sparc64.rs | 2 +- src/unix/bsd/netbsdlike/netbsd/x86.rs | 4 +- src/unix/bsd/netbsdlike/netbsd/x86_64.rs | 5 +- src/unix/bsd/netbsdlike/openbsd/aarch64.rs | 4 +- src/unix/bsd/netbsdlike/openbsd/arm.rs | 4 +- src/unix/bsd/netbsdlike/openbsd/mod.rs | 82 ++--- src/unix/bsd/netbsdlike/openbsd/powerpc.rs | 4 +- src/unix/bsd/netbsdlike/openbsd/powerpc64.rs | 4 +- src/unix/bsd/netbsdlike/openbsd/riscv64.rs | 4 +- src/unix/bsd/netbsdlike/openbsd/x86.rs | 4 +- src/unix/bsd/netbsdlike/openbsd/x86_64.rs | 13 +- src/unix/haiku/mod.rs | 62 ++-- src/unix/haiku/native.rs | 15 +- src/unix/haiku/x86_64.rs | 42 +-- src/unix/hurd/b32.rs | 2 +- src/unix/hurd/b64.rs | 2 +- src/unix/hurd/mod.rs | 44 ++- src/unix/linux_like/android/b32/arm.rs | 26 +- src/unix/linux_like/android/b32/mod.rs | 6 +- src/unix/linux_like/android/b32/x86/mod.rs | 26 +- .../linux_like/android/b64/aarch64/mod.rs | 3 +- src/unix/linux_like/android/b64/mod.rs | 30 +- .../linux_like/android/b64/riscv64/mod.rs | 3 +- src/unix/linux_like/android/b64/x86_64/mod.rs | 51 +-- src/unix/linux_like/android/mod.rs | 118 +++--- src/unix/linux_like/emscripten/lfs64.rs | 3 +- src/unix/linux_like/emscripten/mod.rs | 42 +-- src/unix/linux_like/linux/arch/generic/mod.rs | 7 +- src/unix/linux_like/linux/arch/mips/mod.rs | 3 +- src/unix/linux_like/linux/arch/powerpc/mod.rs | 3 +- src/unix/linux_like/linux/arch/sparc/mod.rs | 3 +- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 11 +- src/unix/linux_like/linux/gnu/b32/csky/mod.rs | 3 +- src/unix/linux_like/linux/gnu/b32/m68k/mod.rs | 3 +- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 3 +- src/unix/linux_like/linux/gnu/b32/mod.rs | 7 +- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 3 +- .../linux_like/linux/gnu/b32/riscv32/mod.rs | 5 +- .../linux_like/linux/gnu/b32/sparc/mod.rs | 5 +- src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 19 +- .../linux_like/linux/gnu/b64/aarch64/mod.rs | 5 +- .../linux/gnu/b64/loongarch64/mod.rs | 6 +- .../linux_like/linux/gnu/b64/mips64/mod.rs | 3 +- src/unix/linux_like/linux/gnu/b64/mod.rs | 4 +- .../linux_like/linux/gnu/b64/powerpc64/mod.rs | 3 +- .../linux_like/linux/gnu/b64/riscv64/mod.rs | 5 +- src/unix/linux_like/linux/gnu/b64/s390x.rs | 15 +- .../linux_like/linux/gnu/b64/sparc64/mod.rs | 6 +- .../linux_like/linux/gnu/b64/x86_64/mod.rs | 21 +- .../linux/gnu/b64/x86_64/not_x32.rs | 3 +- .../linux_like/linux/gnu/b64/x86_64/x32.rs | 3 +- src/unix/linux_like/linux/gnu/mod.rs | 21 +- src/unix/linux_like/linux/mod.rs | 164 ++++----- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 11 +- src/unix/linux_like/linux/musl/b32/hexagon.rs | 2 +- .../linux_like/linux/musl/b32/mips/mod.rs | 3 +- src/unix/linux_like/linux/musl/b32/mod.rs | 2 +- src/unix/linux_like/linux/musl/b32/powerpc.rs | 3 +- .../linux_like/linux/musl/b32/riscv32/mod.rs | 3 +- src/unix/linux_like/linux/musl/b32/x86/mod.rs | 19 +- .../linux_like/linux/musl/b64/aarch64/mod.rs | 5 +- .../linux/musl/b64/loongarch64/mod.rs | 6 +- src/unix/linux_like/linux/musl/b64/mips64.rs | 3 +- src/unix/linux_like/linux/musl/b64/mod.rs | 2 +- .../linux_like/linux/musl/b64/powerpc64.rs | 3 +- .../linux_like/linux/musl/b64/riscv64/mod.rs | 6 +- src/unix/linux_like/linux/musl/b64/s390x.rs | 13 +- .../linux_like/linux/musl/b64/x86_64/mod.rs | 21 +- src/unix/linux_like/linux/musl/lfs64.rs | 3 +- src/unix/linux_like/linux/musl/mod.rs | 21 +- src/unix/linux_like/linux/uclibc/arm/mod.rs | 3 +- .../linux/uclibc/mips/mips32/mod.rs | 3 +- .../linux/uclibc/mips/mips64/mod.rs | 3 +- src/unix/linux_like/linux/uclibc/mips/mod.rs | 2 +- src/unix/linux_like/linux/uclibc/mod.rs | 3 +- .../linux_like/linux/uclibc/x86_64/l4re.rs | 2 +- .../linux_like/linux/uclibc/x86_64/mod.rs | 3 +- .../linux_like/linux/uclibc/x86_64/other.rs | 2 +- src/unix/linux_like/mod.rs | 58 +-- src/unix/mod.rs | 2 +- src/unix/newlib/aarch64/mod.rs | 2 +- src/unix/newlib/arm/mod.rs | 2 +- src/unix/newlib/espidf/mod.rs | 2 +- src/unix/newlib/generic.rs | 5 +- src/unix/newlib/horizon/mod.rs | 5 +- src/unix/newlib/mod.rs | 14 +- src/unix/newlib/powerpc/mod.rs | 2 +- src/unix/newlib/rtems/mod.rs | 3 +- src/unix/newlib/vita/mod.rs | 3 +- src/unix/nto/aarch64.rs | 2 +- src/unix/nto/mod.rs | 118 +++--- src/unix/nto/neutrino.rs | 2 +- src/unix/nto/x86_64.rs | 10 +- src/unix/nuttx/mod.rs | 3 +- src/unix/redox/mod.rs | 45 ++- src/unix/solarish/illumos.rs | 20 +- src/unix/solarish/mod.rs | 84 +++-- src/unix/solarish/solaris.rs | 14 +- src/unix/solarish/x86.rs | 2 +- src/unix/solarish/x86_64.rs | 18 +- src/vxworks/mod.rs | 44 +-- src/wasi/mod.rs | 3 +- src/wasi/p2.rs | 2 +- src/windows/gnu/mod.rs | 2 +- src/windows/mod.rs | 2 +- src/windows/msvc/mod.rs | 2 +- 151 files changed, 1537 insertions(+), 1547 deletions(-) diff --git a/src/fuchsia/aarch64.rs b/src/fuchsia/aarch64.rs index ddcd9d3f5631e..b822375100948 100644 --- a/src/fuchsia/aarch64.rs +++ b/src/fuchsia/aarch64.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_uint, c_ulong, c_ulonglong, c_ushort, off_t, size_t}; +use crate::off_t; +use crate::prelude::*; pub type c_char = u8; pub type __u64 = c_ulonglong; diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 1d2bd948ce4df..82a0676bfbea3 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -3,7 +3,7 @@ //! More functions and definitions can be found in the more specific modules //! according to the platform in question. -use crate::c_void; +use crate::prelude::*; // PUB_TYPE @@ -1073,8 +1073,8 @@ cfg_if! { } } impl Eq for sysinfo {} - impl crate::fmt::Debug for sysinfo { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sysinfo { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sysinfo") .field("uptime", &self.uptime) .field("loads", &self.loads) @@ -1093,8 +1093,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sysinfo { - fn hash(&self, state: &mut H) { + impl hash::Hash for sysinfo { + fn hash(&self, state: &mut H) { self.uptime.hash(state); self.loads.hash(state); self.totalram.hash(state); @@ -1123,16 +1123,16 @@ cfg_if! { } } impl Eq for sockaddr_un {} - impl crate::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_un") .field("sun_family", &self.sun_family) // FIXME: .field("sun_path", &self.sun_path) .finish() } } - impl crate::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { self.sun_family.hash(state); self.sun_path.hash(state); } @@ -1150,8 +1150,8 @@ cfg_if! { } } impl Eq for sockaddr_storage {} - impl crate::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_family", &self.ss_family) .field("__ss_align", &self.__ss_align) @@ -1159,8 +1159,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_family.hash(state); self.__ss_align.hash(state); self.__ss_pad2.hash(state); @@ -1196,8 +1196,8 @@ cfg_if! { } } impl Eq for utsname {} - impl crate::fmt::Debug for utsname { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utsname { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utsname") // FIXME: .field("sysname", &self.sysname) // FIXME: .field("nodename", &self.nodename) @@ -1207,8 +1207,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for utsname { - fn hash(&self, state: &mut H) { + impl hash::Hash for utsname { + fn hash(&self, state: &mut H) { self.sysname.hash(state); self.nodename.hash(state); self.release.hash(state); @@ -1231,8 +1231,8 @@ cfg_if! { } } impl Eq for dirent {} - impl crate::fmt::Debug for dirent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for dirent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -1242,8 +1242,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -1266,8 +1266,8 @@ cfg_if! { } } impl Eq for dirent64 {} - impl crate::fmt::Debug for dirent64 { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for dirent64 { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("dirent64") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -1277,8 +1277,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for dirent64 { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent64 { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -1296,8 +1296,8 @@ cfg_if! { } } impl Eq for mq_attr {} - impl crate::fmt::Debug for mq_attr { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for mq_attr { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("mq_attr") .field("mq_flags", &self.mq_flags) .field("mq_maxmsg", &self.mq_maxmsg) @@ -1306,8 +1306,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { + impl hash::Hash for mq_attr { + fn hash(&self, state: &mut H) { self.mq_flags.hash(state); self.mq_maxmsg.hash(state); self.mq_msgsize.hash(state); @@ -1323,8 +1323,8 @@ cfg_if! { } } impl Eq for sockaddr_nl {} - impl crate::fmt::Debug for sockaddr_nl { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_nl { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_nl") .field("nl_family", &self.nl_family) .field("nl_pid", &self.nl_pid) @@ -1332,8 +1332,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sockaddr_nl { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_nl { + fn hash(&self, state: &mut H) { self.nl_family.hash(state); self.nl_pid.hash(state); self.nl_groups.hash(state); @@ -1350,8 +1350,8 @@ cfg_if! { } } impl Eq for sigevent {} - impl crate::fmt::Debug for sigevent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sigevent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sigevent") .field("sigev_value", &self.sigev_value) .field("sigev_signo", &self.sigev_signo) @@ -1361,8 +1361,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_value.hash(state); self.sigev_signo.hash(state); self.sigev_notify.hash(state); @@ -1377,15 +1377,15 @@ cfg_if! { } } impl Eq for pthread_cond_t {} - impl crate::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_cond_t") // FIXME: .field("size", &self.size) .finish() } } - impl crate::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { self.size.hash(state); } } @@ -1396,15 +1396,15 @@ cfg_if! { } } impl Eq for pthread_mutex_t {} - impl crate::fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_mutex_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_mutex_t") // FIXME: .field("size", &self.size) .finish() } } - impl crate::hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_mutex_t { + fn hash(&self, state: &mut H) { self.size.hash(state); } } @@ -1415,15 +1415,15 @@ cfg_if! { } } impl Eq for pthread_rwlock_t {} - impl crate::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_rwlock_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_rwlock_t") // FIXME: .field("size", &self.size) .finish() } } - impl crate::hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_rwlock_t { + fn hash(&self, state: &mut H) { self.size.hash(state); } } @@ -3372,20 +3372,20 @@ cfg_if! { f! { pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } @@ -3403,21 +3403,21 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); + let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); 0 != (cpuset.bits[idx] & (1 << offset)) } @@ -3445,9 +3445,9 @@ f! { } pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { - if ((*cmsg).cmsg_len as size_t) < crate::mem::size_of::() { + if ((*cmsg).cmsg_len as size_t) < mem::size_of::() { 0 as *mut cmsghdr - } else if __CMSG_NEXT(cmsg).add(crate::mem::size_of::()) >= __MHDR_END(mhdr) { + } else if __CMSG_NEXT(cmsg).add(mem::size_of::()) >= __MHDR_END(mhdr) { 0 as *mut cmsghdr } else { __CMSG_NEXT(cmsg).cast() @@ -3455,7 +3455,7 @@ f! { } pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as size_t >= crate::mem::size_of::() { + if (*mhdr).msg_controllen as size_t >= mem::size_of::() { (*mhdr).msg_control.cast() } else { 0 as *mut cmsghdr @@ -3463,15 +3463,15 @@ f! { } pub {const} fn CMSG_ALIGN(len: size_t) -> size_t { - (len + crate::mem::size_of::() - 1) & !(crate::mem::size_of::() - 1) + (len + mem::size_of::() - 1) & !(mem::size_of::() - 1) } pub {const} fn CMSG_SPACE(len: c_uint) -> c_uint { - (CMSG_ALIGN(len as size_t) + CMSG_ALIGN(crate::mem::size_of::())) as c_uint + (CMSG_ALIGN(len as size_t) + CMSG_ALIGN(mem::size_of::())) as c_uint } pub {const} fn CMSG_LEN(len: c_uint) -> c_uint { - (CMSG_ALIGN(crate::mem::size_of::()) + len as size_t) as c_uint + (CMSG_ALIGN(mem::size_of::()) + len as size_t) as c_uint } } @@ -3525,8 +3525,8 @@ safe_f! { } fn __CMSG_LEN(cmsg: *const cmsghdr) -> ssize_t { - ((unsafe { (*cmsg).cmsg_len as size_t } + crate::mem::size_of::() - 1) - & !(crate::mem::size_of::() - 1)) as ssize_t + ((unsafe { (*cmsg).cmsg_len as size_t } + mem::size_of::() - 1) + & !(mem::size_of::() - 1)) as ssize_t } fn __CMSG_NEXT(cmsg: *const cmsghdr) -> *mut c_uchar { diff --git a/src/fuchsia/riscv64.rs b/src/fuchsia/riscv64.rs index fcbd63673c9df..bed7a926030fe 100644 --- a/src/fuchsia/riscv64.rs +++ b/src/fuchsia/riscv64.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_ulong, c_ulonglong, c_ushort, off_t}; +use crate::off_t; +use crate::prelude::*; // From psABI Calling Convention for RV64 pub type c_char = u8; diff --git a/src/fuchsia/x86_64.rs b/src/fuchsia/x86_64.rs index 632bace2d1d64..b82b86adcd41e 100644 --- a/src/fuchsia/x86_64.rs +++ b/src/fuchsia/x86_64.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_ulong, c_ulonglong, off_t, size_t}; +use crate::off_t; +use crate::prelude::*; pub type c_char = i8; pub type wchar_t = i32; @@ -94,8 +95,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl crate::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -106,8 +107,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); diff --git a/src/hermit.rs b/src/hermit.rs index 18429de548672..2b470e78d3afe 100644 --- a/src/hermit.rs +++ b/src/hermit.rs @@ -1,6 +1,6 @@ //! Hermit C type definitions -use crate::c_void; +use crate::prelude::*; cfg_if! { if #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))] { diff --git a/src/psp.rs b/src/psp.rs index d1564798011b0..e1bf285967ede 100644 --- a/src/psp.rs +++ b/src/psp.rs @@ -4,7 +4,7 @@ //! by the linker. Crates that use these definitions must, somewhere in the //! crate graph, include a stub provider crate such as the `psp` crate. -use crate::c_void; +use crate::prelude::*; pub type c_schar = i8; pub type c_uchar = u8; diff --git a/src/solid/mod.rs b/src/solid/mod.rs index c52085c440f27..19c9b6aed344b 100644 --- a/src/solid/mod.rs +++ b/src/solid/mod.rs @@ -2,7 +2,7 @@ //! //! [SOLID]: https://solid.kmckk.com/ -use crate::c_void; +use crate::prelude::*; pub type c_schar = i8; pub type c_uchar = u8; diff --git a/src/teeos/mod.rs b/src/teeos/mod.rs index a46587d111108..b9a46f946a84d 100644 --- a/src/teeos/mod.rs +++ b/src/teeos/mod.rs @@ -8,7 +8,7 @@ // only supported on Rust > 1.59, so we can directly reexport c_void from core. pub use core::ffi::c_void; -use Option; +use crate::prelude::*; pub type c_schar = i8; diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 86ea4ca5cde12..bd087ea334dd2 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -1,7 +1,4 @@ -use crate::{ - c_double, c_int, c_longlong, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, intptr_t, - size_t, ssize_t, -}; +use crate::prelude::*; pub type c_char = u8; pub type caddr_t = *mut c_char; @@ -578,16 +575,16 @@ cfg_if! { } } impl Eq for __sigaction_sa_union {} - impl crate::fmt::Debug for __sigaction_sa_union { - fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { + impl fmt::Debug for __sigaction_sa_union { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("__sigaction_sa_union") .field("__su_handler", unsafe { &self.__su_handler }) .field("__su_sigaction", unsafe { &self.__su_sigaction }) .finish() } } - impl crate::hash::Hash for __sigaction_sa_union { - fn hash(&self, state: &mut H) { + impl hash::Hash for __sigaction_sa_union { + fn hash(&self, state: &mut H) { unsafe { self.__su_handler.hash(state); self.__su_sigaction.hash(state); @@ -603,8 +600,8 @@ cfg_if! { } } impl Eq for sigaction {} - impl crate::fmt::Debug for sigaction { - fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { + impl fmt::Debug for sigaction { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("sigaction") .field("sa_union", &self.sa_union) .field("sa_mask", &self.sa_mask) @@ -612,8 +609,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sigaction { - fn hash(&self, state: &mut H) { + impl hash::Hash for sigaction { + fn hash(&self, state: &mut H) { self.sa_union.hash(state); self.sa_mask.hash(state); self.sa_flags.hash(state); @@ -630,8 +627,8 @@ cfg_if! { } } impl Eq for __poll_ctl_ext_u {} - impl crate::fmt::Debug for __poll_ctl_ext_u { - fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { + impl fmt::Debug for __poll_ctl_ext_u { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("__poll_ctl_ext_u") .field("addr", unsafe { &self.addr }) .field("data32", unsafe { &self.data32 }) @@ -639,8 +636,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for __poll_ctl_ext_u { - fn hash(&self, state: &mut H) { + impl hash::Hash for __poll_ctl_ext_u { + fn hash(&self, state: &mut H) { unsafe { self.addr.hash(state); self.data32.hash(state); @@ -660,8 +657,8 @@ cfg_if! { } } impl Eq for poll_ctl_ext {} - impl crate::fmt::Debug for poll_ctl_ext { - fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { + impl fmt::Debug for poll_ctl_ext { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("poll_ctl_ext") .field("version", &self.version) .field("command", &self.command) @@ -672,8 +669,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for poll_ctl_ext { - fn hash(&self, state: &mut H) { + impl hash::Hash for poll_ctl_ext { + fn hash(&self, state: &mut H) { self.version.hash(state); self.command.hash(state); self.events.hash(state); @@ -2508,7 +2505,7 @@ pub const ACCOUNTING: c_short = 9; f! { pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= crate::mem::size_of::() { + if (*mhdr).msg_controllen as usize >= mem::size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { 0 as *mut cmsghdr @@ -2519,7 +2516,7 @@ f! { if cmsg.is_null() { CMSG_FIRSTHDR(mhdr) } else { - if (cmsg as usize + (*cmsg).cmsg_len as usize + crate::mem::size_of::()) + if (cmsg as usize + (*cmsg).cmsg_len as usize + mem::size_of::()) > ((*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize) { 0 as *mut cmsghdr @@ -2531,15 +2528,15 @@ f! { } pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).offset(crate::mem::size_of::() as isize) + (cmsg as *mut c_uchar).offset(mem::size_of::() as isize) } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - crate::mem::size_of::() as c_uint + length + mem::size_of::() as c_uint + length } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - crate::mem::size_of::() as c_uint + length + mem::size_of::() as c_uint + length } pub fn FD_ZERO(set: *mut fd_set) -> () { @@ -2549,21 +2546,21 @@ f! { } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { - let bits = crate::mem::size_of::() * 8; + let bits = mem::size_of::() * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] |= 1 << (fd % bits); return; } pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { - let bits = crate::mem::size_of::() * 8; + let bits = mem::size_of::() * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { - let bits = crate::mem::size_of::() * 8; + let bits = mem::size_of::() * 8; let fd = fd as usize; return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0; } diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index a54b014d8bf16..e9f5b1e1cf3ad 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -1,7 +1,5 @@ -use crate::{ - c_char, c_int, c_longlong, c_short, c_uint, c_ulonglong, c_ushort, c_void, off_t, size_t, - ssize_t, -}; +use crate::off_t; +use crate::prelude::*; pub type c_long = i64; pub type c_ulong = u64; @@ -321,8 +319,8 @@ cfg_if! { } } impl Eq for siginfo_t {} - impl crate::fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { + impl fmt::Debug for siginfo_t { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("siginfo_t") .field("si_signo", &self.si_signo) .field("si_errno", &self.si_errno) @@ -337,8 +335,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for siginfo_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for siginfo_t { + fn hash(&self, state: &mut H) { self.si_signo.hash(state); self.si_errno.hash(state); self.si_code.hash(state); @@ -358,16 +356,16 @@ cfg_if! { } } impl Eq for _kernel_simple_lock {} - impl crate::fmt::Debug for _kernel_simple_lock { - fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { + 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() } } - impl crate::hash::Hash for _kernel_simple_lock { - fn hash(&self, state: &mut H) { + impl hash::Hash for _kernel_simple_lock { + fn hash(&self, state: &mut H) { unsafe { self._slock.hash(state); self._slockp.hash(state); @@ -385,8 +383,8 @@ cfg_if! { } } impl Eq for fileops_t {} - impl crate::fmt::Debug for fileops_t { - fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { + impl fmt::Debug for fileops_t { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("fileops_t") .field("fo_rw", &self.fo_rw) .field("fo_ioctl", &self.fo_ioctl) @@ -396,8 +394,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for fileops_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for fileops_t { + fn hash(&self, state: &mut H) { self.fo_rw.hash(state); self.fo_ioctl.hash(state); self.fo_select.hash(state); @@ -426,8 +424,8 @@ cfg_if! { } } impl Eq for file {} - impl crate::fmt::Debug for file { - fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { + impl fmt::Debug for file { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("file") .field("f_flag", &self.f_flag) .field("f_count", &self.f_count) @@ -447,8 +445,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for file { - fn hash(&self, state: &mut H) { + impl hash::Hash for file { + fn hash(&self, state: &mut H) { self.f_flag.hash(state); self.f_count.hash(state); self.f_options.hash(state); @@ -477,8 +475,8 @@ cfg_if! { } } impl Eq for __ld_info_file {} - impl crate::fmt::Debug for __ld_info_file { - fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { + 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 }) @@ -486,8 +484,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for __ld_info_file { - fn hash(&self, state: &mut H) { + impl hash::Hash for __ld_info_file { + fn hash(&self, state: &mut H) { unsafe { self._ldinfo_fd.hash(state); self._ldinfo_fp.hash(state); @@ -509,8 +507,8 @@ cfg_if! { } } impl Eq for ld_info {} - impl crate::fmt::Debug for ld_info { - fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { + impl fmt::Debug for ld_info { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("ld_info") .field("ldinfo_next", &self.ldinfo_next) .field("ldinfo_flags", &self.ldinfo_flags) @@ -523,8 +521,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for ld_info { - fn hash(&self, state: &mut H) { + impl hash::Hash for ld_info { + fn hash(&self, state: &mut H) { self.ldinfo_next.hash(state); self.ldinfo_flags.hash(state); self.ldinfo_textorg.hash(state); @@ -546,8 +544,8 @@ cfg_if! { } } impl Eq for __pollfd_ext_u {} - impl crate::fmt::Debug for __pollfd_ext_u { - fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { + 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 }) @@ -555,8 +553,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for __pollfd_ext_u { - fn hash(&self, state: &mut H) { + impl hash::Hash for __pollfd_ext_u { + fn hash(&self, state: &mut H) { unsafe { self.addr.hash(state); self.data.hash(state); @@ -574,8 +572,8 @@ cfg_if! { } } impl Eq for pollfd_ext {} - impl crate::fmt::Debug for pollfd_ext { - fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { + impl fmt::Debug for pollfd_ext { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("pollfd_ext") .field("fd", &self.fd) .field("events", &self.events) @@ -584,8 +582,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for pollfd_ext { - fn hash(&self, state: &mut H) { + impl hash::Hash for pollfd_ext { + fn hash(&self, state: &mut H) { self.fd.hash(state); self.events.hash(state); self.revents.hash(state); diff --git a/src/unix/bsd/apple/b32/mod.rs b/src/unix/bsd/apple/b32/mod.rs index 9088be7d1ed94..70f8de79af7b6 100644 --- a/src/unix/bsd/apple/b32/mod.rs +++ b/src/unix/bsd/apple/b32/mod.rs @@ -1,6 +1,6 @@ //! 32-bit specific Apple (ios/darwin) definitions -use crate::{c_char, c_int, c_uchar, c_ushort}; +use crate::prelude::*; pub type c_long = i32; pub type c_ulong = u32; @@ -82,16 +82,16 @@ cfg_if! { } } impl Eq for pthread_attr_t {} - impl crate::fmt::Debug for pthread_attr_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_attr_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_attr_t") .field("__sig", &self.__sig) // FIXME: .field("__opaque", &self.__opaque) .finish() } } - impl crate::hash::Hash for pthread_attr_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_attr_t { + fn hash(&self, state: &mut H) { self.__sig.hash(state); self.__opaque.hash(state); } @@ -107,15 +107,15 @@ cfg_if! { } } impl Eq for pthread_once_t {} - impl crate::fmt::Debug for pthread_once_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_once_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_once_t") .field("__sig", &self.__sig) .finish() } } - impl crate::hash::Hash for pthread_once_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_once_t { + fn hash(&self, state: &mut H) { self.__sig.hash(state); self.__opaque.hash(state); } diff --git a/src/unix/bsd/apple/b64/aarch64/mod.rs b/src/unix/bsd/apple/b64/aarch64/mod.rs index 6a9ea9c65f719..60b9d4bb4ce40 100644 --- a/src/unix/bsd/apple/b64/aarch64/mod.rs +++ b/src/unix/bsd/apple/b64/aarch64/mod.rs @@ -1,4 +1,4 @@ -use crate::c_int; +use crate::prelude::*; pub type boolean_t = c_int; pub type mcontext_t = *mut __darwin_mcontext64; diff --git a/src/unix/bsd/apple/b64/mod.rs b/src/unix/bsd/apple/b64/mod.rs index c75608cdeeadc..b09bcb9dad332 100644 --- a/src/unix/bsd/apple/b64/mod.rs +++ b/src/unix/bsd/apple/b64/mod.rs @@ -1,6 +1,6 @@ //! 64-bit specific Apple (ios/darwin) definitions -use crate::{c_char, c_int, c_uchar, c_uint, c_ushort}; +use crate::prelude::*; pub type c_long = i64; pub type c_ulong = u64; @@ -76,16 +76,16 @@ cfg_if! { } } impl Eq for pthread_attr_t {} - impl crate::fmt::Debug for pthread_attr_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_attr_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_attr_t") .field("__sig", &self.__sig) // FIXME: .field("__opaque", &self.__opaque) .finish() } } - impl crate::hash::Hash for pthread_attr_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_attr_t { + fn hash(&self, state: &mut H) { self.__sig.hash(state); self.__opaque.hash(state); } @@ -101,15 +101,15 @@ cfg_if! { } } impl Eq for pthread_once_t {} - impl crate::fmt::Debug for pthread_once_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_once_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_once_t") .field("__sig", &self.__sig) .finish() } } - impl crate::hash::Hash for pthread_once_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_once_t { + fn hash(&self, state: &mut H) { self.__sig.hash(state); self.__opaque.hash(state); } diff --git a/src/unix/bsd/apple/b64/x86_64/mod.rs b/src/unix/bsd/apple/b64/x86_64/mod.rs index c6a9261ed33e0..ea738497e98de 100644 --- a/src/unix/bsd/apple/b64/x86_64/mod.rs +++ b/src/unix/bsd/apple/b64/x86_64/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_char, c_int, c_short, c_uint, c_void, size_t}; +use crate::prelude::*; pub type boolean_t = c_uint; pub type mcontext_t = *mut __darwin_mcontext64; diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 090a1c2d1ad1d..89c0e3197a9d0 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -2,10 +2,8 @@ //! //! This covers *-apple-* triples currently -use crate::{ - c_int, c_longlong, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, cmsghdr, intptr_t, - off_t, size_t, ssize_t, -}; +use crate::prelude::*; +use crate::{cmsghdr, off_t}; pub type c_char = i8; pub type wchar_t = i32; @@ -1720,15 +1718,15 @@ cfg_if! { } } impl Eq for semun {} - impl crate::fmt::Debug for semun { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for semun { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("semun") .field("val", unsafe { &self.val }) .finish() } } - impl crate::hash::Hash for semun { - fn hash(&self, state: &mut H) { + impl hash::Hash for semun { + fn hash(&self, state: &mut H) { unsafe { self.val.hash(state) }; } } @@ -1757,8 +1755,8 @@ cfg_if! { } } impl Eq for ifconf {} - impl crate::fmt::Debug for ifconf { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ifconf { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ifconf").finish_non_exhaustive() } } @@ -1774,8 +1772,8 @@ cfg_if! { } } impl Eq for kevent {} - impl crate::fmt::Debug for kevent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for kevent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let ident = self.ident; let filter = self.filter; let flags = self.flags; @@ -1792,8 +1790,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for kevent { - fn hash(&self, state: &mut H) { + impl hash::Hash for kevent { + fn hash(&self, state: &mut H) { let ident = self.ident; let filter = self.filter; let flags = self.flags; @@ -1826,8 +1824,8 @@ cfg_if! { } } impl Eq for semid_ds {} - impl crate::fmt::Debug for semid_ds { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for semid_ds { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let sem_perm = self.sem_perm; let sem_base = self.sem_base; let sem_nsems = self.sem_nsems; @@ -1848,8 +1846,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for semid_ds { - fn hash(&self, state: &mut H) { + impl hash::Hash for semid_ds { + fn hash(&self, state: &mut H) { let sem_perm = self.sem_perm; let sem_base = self.sem_base; let sem_nsems = self.sem_nsems; @@ -1885,8 +1883,8 @@ cfg_if! { } } impl Eq for shmid_ds {} - impl crate::fmt::Debug for shmid_ds { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for shmid_ds { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let shm_perm = self.shm_perm; let shm_segsz = self.shm_segsz; let shm_lpid = self.shm_lpid; @@ -1909,8 +1907,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for shmid_ds { - fn hash(&self, state: &mut H) { + impl hash::Hash for shmid_ds { + fn hash(&self, state: &mut H) { let shm_perm = self.shm_perm; let shm_segsz = self.shm_segsz; let shm_lpid = self.shm_lpid; @@ -1952,8 +1950,8 @@ cfg_if! { } } impl Eq for proc_threadinfo {} - impl crate::fmt::Debug for proc_threadinfo { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for proc_threadinfo { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("proc_threadinfo") .field("pth_user_time", &self.pth_user_time) .field("pth_system_time", &self.pth_system_time) @@ -1969,8 +1967,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for proc_threadinfo { - fn hash(&self, state: &mut H) { + impl hash::Hash for proc_threadinfo { + fn hash(&self, state: &mut H) { self.pth_user_time.hash(state); self.pth_system_time.hash(state); self.pth_cpu_usage.hash(state); @@ -2015,8 +2013,8 @@ cfg_if! { } impl Eq for statfs {} - impl crate::fmt::Debug for statfs { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -2038,8 +2036,8 @@ cfg_if! { } } - impl crate::hash::Hash for statfs { - fn hash(&self, state: &mut H) { + impl hash::Hash for statfs { + fn hash(&self, state: &mut H) { self.f_bsize.hash(state); self.f_iosize.hash(state); self.f_blocks.hash(state); @@ -2074,8 +2072,8 @@ cfg_if! { } } impl Eq for dirent {} - impl crate::fmt::Debug for dirent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for dirent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_seekoff", &self.d_seekoff) @@ -2086,8 +2084,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_seekoff.hash(state); self.d_reclen.hash(state); @@ -2107,16 +2105,16 @@ cfg_if! { } } impl Eq for pthread_rwlock_t {} - impl crate::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_rwlock_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_rwlock_t") .field("__sig", &self.__sig) // FIXME: .field("__opaque", &self.__opaque) .finish() } } - impl crate::hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_rwlock_t { + fn hash(&self, state: &mut H) { self.__sig.hash(state); self.__opaque.hash(state); } @@ -2135,8 +2133,8 @@ cfg_if! { impl Eq for pthread_mutex_t {} - impl crate::fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_mutex_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_mutex_t") .field("__sig", &self.__sig) // FIXME: .field("__opaque", &self.__opaque) @@ -2144,8 +2142,8 @@ cfg_if! { } } - impl crate::hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_mutex_t { + fn hash(&self, state: &mut H) { self.__sig.hash(state); self.__opaque.hash(state); } @@ -2164,8 +2162,8 @@ cfg_if! { impl Eq for pthread_cond_t {} - impl crate::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_cond_t") .field("__sig", &self.__sig) // FIXME: .field("__opaque", &self.__opaque) @@ -2173,8 +2171,8 @@ cfg_if! { } } - impl crate::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { self.__sig.hash(state); self.__opaque.hash(state); } @@ -2200,8 +2198,8 @@ cfg_if! { impl Eq for sockaddr_storage {} - impl crate::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_len", &self.ss_len) .field("ss_family", &self.ss_family) @@ -2212,8 +2210,8 @@ cfg_if! { } } - impl crate::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_len.hash(state); self.ss_family.hash(state); self.__ss_pad1.hash(state); @@ -2244,8 +2242,8 @@ cfg_if! { impl Eq for utmpx {} - impl crate::fmt::Debug for utmpx { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utmpx { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utmpx") // FIXME: .field("ut_user", &self.ut_user) .field("ut_id", &self.ut_id) @@ -2259,8 +2257,8 @@ cfg_if! { } } - impl crate::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_user.hash(state); self.ut_id.hash(state); self.ut_line.hash(state); @@ -2283,8 +2281,8 @@ cfg_if! { impl Eq for sigevent {} - impl crate::fmt::Debug for sigevent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sigevent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sigevent") .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) @@ -2294,8 +2292,8 @@ cfg_if! { } } - impl crate::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); self.sigev_signo.hash(state); self.sigev_value.hash(state); @@ -2309,15 +2307,15 @@ cfg_if! { } } impl Eq for processor_cpu_load_info {} - impl crate::fmt::Debug for processor_cpu_load_info { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for processor_cpu_load_info { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("processor_cpu_load_info") .field("cpu_ticks", &self.cpu_ticks) .finish() } } - impl crate::hash::Hash for processor_cpu_load_info { - fn hash(&self, state: &mut H) { + impl hash::Hash for processor_cpu_load_info { + fn hash(&self, state: &mut H) { self.cpu_ticks.hash(state); } } @@ -2332,8 +2330,8 @@ cfg_if! { } } impl Eq for processor_basic_info {} - impl crate::fmt::Debug for processor_basic_info { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for processor_basic_info { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("processor_basic_info") .field("cpu_type", &self.cpu_type) .field("cpu_subtype", &self.cpu_subtype) @@ -2343,8 +2341,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for processor_basic_info { - fn hash(&self, state: &mut H) { + impl hash::Hash for processor_basic_info { + fn hash(&self, state: &mut H) { self.cpu_type.hash(state); self.cpu_subtype.hash(state); self.running.hash(state); @@ -2360,16 +2358,16 @@ cfg_if! { } } impl Eq for processor_set_basic_info {} - impl crate::fmt::Debug for processor_set_basic_info { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for processor_set_basic_info { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("processor_set_basic_info") .field("processor_count", &self.processor_count) .field("default_policy", &self.default_policy) .finish() } } - impl crate::hash::Hash for processor_set_basic_info { - fn hash(&self, state: &mut H) { + impl hash::Hash for processor_set_basic_info { + fn hash(&self, state: &mut H) { self.processor_count.hash(state); self.default_policy.hash(state); } @@ -2384,8 +2382,8 @@ cfg_if! { } } impl Eq for processor_set_load_info {} - impl crate::fmt::Debug for processor_set_load_info { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for processor_set_load_info { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("processor_set_load_info") .field("task_count", &self.task_count) .field("thread_count", &self.thread_count) @@ -2394,8 +2392,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for processor_set_load_info { - fn hash(&self, state: &mut H) { + impl hash::Hash for processor_set_load_info { + fn hash(&self, state: &mut H) { self.task_count.hash(state); self.thread_count.hash(state); self.load_average.hash(state); @@ -2409,16 +2407,16 @@ cfg_if! { } } impl Eq for time_value_t {} - impl crate::fmt::Debug for time_value_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for time_value_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("time_value_t") .field("seconds", &self.seconds) .field("microseconds", &self.microseconds) .finish() } } - impl crate::hash::Hash for time_value_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for time_value_t { + fn hash(&self, state: &mut H) { self.seconds.hash(state); self.microseconds.hash(state); } @@ -2436,8 +2434,8 @@ cfg_if! { } } impl Eq for thread_basic_info {} - impl crate::fmt::Debug for thread_basic_info { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for thread_basic_info { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("thread_basic_info") .field("user_time", &self.user_time) .field("system_time", &self.system_time) @@ -2450,8 +2448,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for thread_basic_info { - fn hash(&self, state: &mut H) { + impl hash::Hash for thread_basic_info { + fn hash(&self, state: &mut H) { self.user_time.hash(state); self.system_time.hash(state); self.cpu_usage.hash(state); @@ -2482,8 +2480,8 @@ cfg_if! { } } impl Eq for thread_extended_info {} - impl crate::fmt::Debug for thread_extended_info { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for thread_extended_info { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("proc_threadinfo") .field("pth_user_time", &self.pth_user_time) .field("pth_system_time", &self.pth_system_time) @@ -2499,8 +2497,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for thread_extended_info { - fn hash(&self, state: &mut H) { + impl hash::Hash for thread_extended_info { + fn hash(&self, state: &mut H) { self.pth_user_time.hash(state); self.pth_system_time.hash(state); self.pth_cpu_usage.hash(state); @@ -2522,8 +2520,8 @@ cfg_if! { } } impl Eq for thread_identifier_info {} - impl crate::fmt::Debug for thread_identifier_info { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for thread_identifier_info { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("thread_identifier_info") .field("thread_id", &self.thread_id) .field("thread_handle", &self.thread_handle) @@ -2531,8 +2529,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for thread_identifier_info { - fn hash(&self, state: &mut H) { + impl hash::Hash for thread_identifier_info { + fn hash(&self, state: &mut H) { self.thread_id.hash(state); self.thread_handle.hash(state); self.dispatch_qaddr.hash(state); @@ -2568,8 +2566,8 @@ cfg_if! { } } impl Eq for if_data64 {} - impl crate::fmt::Debug for if_data64 { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for if_data64 { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let ifi_type = self.ifi_type; let ifi_typelen = self.ifi_typelen; let ifi_physical = self.ifi_physical; @@ -2624,8 +2622,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for if_data64 { - fn hash(&self, state: &mut H) { + impl hash::Hash for if_data64 { + fn hash(&self, state: &mut H) { let ifi_type = self.ifi_type; let ifi_typelen = self.ifi_typelen; let ifi_physical = self.ifi_physical; @@ -2694,8 +2692,8 @@ cfg_if! { } } impl Eq for if_msghdr2 {} - impl crate::fmt::Debug for if_msghdr2 { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for if_msghdr2 { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let ifm_msglen = self.ifm_msglen; let ifm_version = self.ifm_version; let ifm_type = self.ifm_type; @@ -2722,8 +2720,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for if_msghdr2 { - fn hash(&self, state: &mut H) { + impl hash::Hash for if_msghdr2 { + fn hash(&self, state: &mut H) { let ifm_msglen = self.ifm_msglen; let ifm_version = self.ifm_version; let ifm_type = self.ifm_type; @@ -2779,8 +2777,8 @@ cfg_if! { } } impl Eq for vm_statistics64 {} - impl crate::fmt::Debug for vm_statistics64 { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for vm_statistics64 { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let free_count = self.free_count; let active_count = self.active_count; let inactive_count = self.inactive_count; @@ -2837,8 +2835,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for vm_statistics64 { - fn hash(&self, state: &mut H) { + impl hash::Hash for vm_statistics64 { + fn hash(&self, state: &mut H) { let free_count = self.free_count; let active_count = self.active_count; let inactive_count = self.inactive_count; @@ -2903,8 +2901,8 @@ cfg_if! { } } impl Eq for mach_task_basic_info {} - impl crate::fmt::Debug for mach_task_basic_info { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for mach_task_basic_info { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let virtual_size = self.virtual_size; let resident_size = self.resident_size; let resident_size_max = self.resident_size_max; @@ -2923,8 +2921,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for mach_task_basic_info { - fn hash(&self, state: &mut H) { + impl hash::Hash for mach_task_basic_info { + fn hash(&self, state: &mut H) { let virtual_size = self.virtual_size; let resident_size = self.resident_size; let resident_size_max = self.resident_size_max; @@ -2950,8 +2948,8 @@ cfg_if! { } } impl Eq for log2phys {} - impl crate::fmt::Debug for log2phys { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for log2phys { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let l2p_flags = self.l2p_flags; let l2p_contigbytes = self.l2p_contigbytes; let l2p_devoffset = self.l2p_devoffset; @@ -2962,8 +2960,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for log2phys { - fn hash(&self, state: &mut H) { + impl hash::Hash for log2phys { + fn hash(&self, state: &mut H) { let l2p_flags = self.l2p_flags; let l2p_contigbytes = self.l2p_contigbytes; let l2p_devoffset = self.l2p_devoffset; @@ -2980,16 +2978,16 @@ cfg_if! { impl Eq for os_unfair_lock {} - impl crate::fmt::Debug for os_unfair_lock { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for os_unfair_lock { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("os_unfair_lock") .field("_os_unfair_lock_opaque", &self._os_unfair_lock_opaque) .finish() } } - impl crate::hash::Hash for os_unfair_lock { - fn hash(&self, state: &mut H) { + impl hash::Hash for os_unfair_lock { + fn hash(&self, state: &mut H) { self._os_unfair_lock_opaque.hash(state); } } @@ -3006,8 +3004,8 @@ cfg_if! { impl Eq for sockaddr_vm {} - impl crate::fmt::Debug for sockaddr_vm { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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; @@ -3024,8 +3022,8 @@ cfg_if! { } } - impl crate::hash::Hash for sockaddr_vm { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_vm { + fn hash(&self, state: &mut H) { let svm_len = self.svm_len; let svm_family = self.svm_family; let svm_reserved1 = self.svm_reserved1; @@ -3050,8 +3048,8 @@ cfg_if! { impl Eq for ifdevmtu {} - impl crate::fmt::Debug for ifdevmtu { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -3060,8 +3058,8 @@ cfg_if! { } } - impl crate::hash::Hash for ifdevmtu { - fn hash(&self, state: &mut H) { + impl hash::Hash for ifdevmtu { + fn hash(&self, state: &mut H) { self.ifdm_current.hash(state); self.ifdm_min.hash(state); self.ifdm_max.hash(state); @@ -3076,16 +3074,16 @@ cfg_if! { impl Eq for __c_anonymous_ifk_data {} - impl crate::fmt::Debug for __c_anonymous_ifk_data { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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() } } - impl crate::hash::Hash for __c_anonymous_ifk_data { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_ifk_data { + fn hash(&self, state: &mut H) { unsafe { self.ifk_ptr.hash(state); self.ifk_value.hash(state); @@ -3101,8 +3099,8 @@ cfg_if! { impl Eq for ifkpi {} - impl crate::fmt::Debug for ifkpi { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -3110,8 +3108,8 @@ cfg_if! { } } - impl crate::hash::Hash for ifkpi { - fn hash(&self, state: &mut H) { + impl hash::Hash for ifkpi { + fn hash(&self, state: &mut H) { self.ifk_module_id.hash(state); self.ifk_type.hash(state); } @@ -3146,8 +3144,8 @@ cfg_if! { impl Eq for __c_anonymous_ifr_ifru {} - impl crate::fmt::Debug for __c_anonymous_ifr_ifru { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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 }) @@ -3171,8 +3169,8 @@ cfg_if! { } } - impl crate::hash::Hash for __c_anonymous_ifr_ifru { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_ifr_ifru { + fn hash(&self, state: &mut H) { unsafe { self.ifru_addr.hash(state); self.ifru_dstaddr.hash(state); @@ -3202,8 +3200,8 @@ cfg_if! { impl Eq for ifreq {} - impl crate::fmt::Debug for ifreq { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -3211,8 +3209,8 @@ cfg_if! { } } - impl crate::hash::Hash for ifreq { - fn hash(&self, state: &mut H) { + impl hash::Hash for ifreq { + fn hash(&self, state: &mut H) { self.ifr_name.hash(state); self.ifr_ifru.hash(state); } @@ -3226,8 +3224,8 @@ cfg_if! { } } - impl crate::fmt::Debug for __c_anonymous_ifc_ifcu { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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 }) @@ -3235,8 +3233,8 @@ cfg_if! { } } - impl crate::hash::Hash for __c_anonymous_ifc_ifcu { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_ifc_ifcu { + fn hash(&self, state: &mut H) { unsafe { self.ifcu_buf.hash(state) }; unsafe { self.ifcu_req.hash(state) }; } @@ -3263,8 +3261,8 @@ cfg_if! { impl Eq for __c_anonymous_ifr_ifru6 {} - impl crate::fmt::Debug for __c_anonymous_ifr_ifru6 { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_ifr_ifru6 { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("__c_anonymous_ifr_ifru6") .field("ifru_addr", unsafe { &self.ifru_addr }) .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) @@ -3278,8 +3276,8 @@ cfg_if! { } } - impl crate::hash::Hash for __c_anonymous_ifr_ifru6 { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_ifr_ifru6 { + fn hash(&self, state: &mut H) { unsafe { self.ifru_addr.hash(state); self.ifru_dstaddr.hash(state); @@ -3301,8 +3299,8 @@ cfg_if! { impl Eq for in6_ifreq {} - impl crate::fmt::Debug for in6_ifreq { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for in6_ifreq { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("in6_ifreq") .field("ifr_name", &self.ifr_name) .field("ifr_ifru", &self.ifr_ifru) @@ -5681,51 +5679,48 @@ pub const VMADDR_CID_HOST: c_uint = 2; pub const VMADDR_PORT_ANY: c_uint = 0xFFFFFFFF; const fn __DARWIN_ALIGN32(p: usize) -> usize { - const __DARWIN_ALIGNBYTES32: usize = crate::mem::size_of::() - 1; + const __DARWIN_ALIGNBYTES32: usize = mem::size_of::() - 1; p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32 } pub const THREAD_EXTENDED_POLICY_COUNT: mach_msg_type_number_t = - (crate::mem::size_of::() / crate::mem::size_of::()) + (mem::size_of::() / mem::size_of::()) as mach_msg_type_number_t; pub const THREAD_TIME_CONSTRAINT_POLICY_COUNT: mach_msg_type_number_t = - (crate::mem::size_of::() - / crate::mem::size_of::()) as mach_msg_type_number_t; + (mem::size_of::() / mem::size_of::()) + as mach_msg_type_number_t; pub const THREAD_PRECEDENCE_POLICY_COUNT: mach_msg_type_number_t = - (crate::mem::size_of::() / crate::mem::size_of::()) + (mem::size_of::() / mem::size_of::()) as mach_msg_type_number_t; pub const THREAD_AFFINITY_POLICY_COUNT: mach_msg_type_number_t = - (crate::mem::size_of::() / crate::mem::size_of::()) + (mem::size_of::() / mem::size_of::()) as mach_msg_type_number_t; pub const THREAD_BACKGROUND_POLICY_COUNT: mach_msg_type_number_t = - (crate::mem::size_of::() / crate::mem::size_of::()) + (mem::size_of::() / mem::size_of::()) + as mach_msg_type_number_t; +pub const THREAD_LATENCY_QOS_POLICY_COUNT: mach_msg_type_number_t = + (mem::size_of::() / mem::size_of::()) as mach_msg_type_number_t; -pub const THREAD_LATENCY_QOS_POLICY_COUNT: mach_msg_type_number_t = (crate::mem::size_of::< - thread_latency_qos_policy_data_t, ->() / crate::mem::size_of::< - integer_t, ->()) as mach_msg_type_number_t; pub const THREAD_THROUGHPUT_QOS_POLICY_COUNT: mach_msg_type_number_t = - (crate::mem::size_of::() - / crate::mem::size_of::()) as mach_msg_type_number_t; + (mem::size_of::() / mem::size_of::()) + as mach_msg_type_number_t; pub const THREAD_BASIC_INFO_COUNT: mach_msg_type_number_t = - (crate::mem::size_of::() / crate::mem::size_of::()) + (mem::size_of::() / mem::size_of::()) as mach_msg_type_number_t; pub const THREAD_IDENTIFIER_INFO_COUNT: mach_msg_type_number_t = - (crate::mem::size_of::() / crate::mem::size_of::()) + (mem::size_of::() / mem::size_of::()) as mach_msg_type_number_t; pub const THREAD_EXTENDED_INFO_COUNT: mach_msg_type_number_t = - (crate::mem::size_of::() / crate::mem::size_of::()) + (mem::size_of::() / mem::size_of::()) as mach_msg_type_number_t; pub const TASK_THREAD_TIMES_INFO_COUNT: u32 = - (crate::mem::size_of::() / crate::mem::size_of::()) - as u32; -pub const MACH_TASK_BASIC_INFO_COUNT: u32 = (crate::mem::size_of::() - / crate::mem::size_of::()) as u32; -pub const HOST_VM_INFO64_COUNT: mach_msg_type_number_t = - (crate::mem::size_of::() / crate::mem::size_of::()) - as mach_msg_type_number_t; + (mem::size_of::() / mem::size_of::()) as u32; +pub const MACH_TASK_BASIC_INFO_COUNT: u32 = + (mem::size_of::() / mem::size_of::()) as u32; +pub const HOST_VM_INFO64_COUNT: mach_msg_type_number_t = (mem::size_of::() + / mem::size_of::()) + as mach_msg_type_number_t; // bsd/net/if_mib.h /// Non-interface-specific @@ -5764,7 +5759,7 @@ f! { let cmsg_len = (*cmsg).cmsg_len as usize; let next = cmsg as usize + __DARWIN_ALIGN32(cmsg_len); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; - if next + __DARWIN_ALIGN32(crate::mem::size_of::()) > max { + if next + __DARWIN_ALIGN32(mem::size_of::()) > max { core::ptr::null_mut() } else { next as *mut cmsghdr @@ -5772,16 +5767,15 @@ f! { } pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).add(__DARWIN_ALIGN32(crate::mem::size_of::())) + (cmsg as *mut c_uchar).add(__DARWIN_ALIGN32(mem::size_of::())) } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (__DARWIN_ALIGN32(crate::mem::size_of::()) + __DARWIN_ALIGN32(length as usize)) - as c_uint + (__DARWIN_ALIGN32(mem::size_of::()) + __DARWIN_ALIGN32(length as usize)) as c_uint } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - (__DARWIN_ALIGN32(crate::mem::size_of::()) + length as usize) as c_uint + (__DARWIN_ALIGN32(mem::size_of::()) + length as usize) as c_uint } pub {const} fn VM_MAKE_TAG(id: u8) -> u32 { diff --git a/src/unix/bsd/freebsdlike/dragonfly/errno.rs b/src/unix/bsd/freebsdlike/dragonfly/errno.rs index 2a6452c635a34..874c1da84d3a5 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/errno.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/errno.rs @@ -1,4 +1,4 @@ -use crate::c_int; +use crate::prelude::*; /* DIFF(main): module removed in de76fee6 */ diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index ffda3bf3312d1..a97ead4757b1a 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -1,6 +1,5 @@ -use crate::{ - c_int, c_short, c_uchar, c_uint, c_ushort, c_void, cmsghdr, intptr_t, off_t, size_t, ssize_t, -}; +use crate::prelude::*; +use crate::{cmsghdr, off_t}; pub type dev_t = u32; pub type c_char = i8; @@ -558,8 +557,8 @@ cfg_if! { } } impl Eq for utmpx {} - impl crate::fmt::Debug for utmpx { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utmpx { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utmpx") .field("ut_name", &self.ut_name) .field("ut_id", &self.ut_id) @@ -576,8 +575,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_name.hash(state); self.ut_id.hash(state); self.ut_line.hash(state); @@ -601,8 +600,8 @@ cfg_if! { } } impl Eq for lastlogx {} - impl crate::fmt::Debug for lastlogx { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for lastlogx { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("lastlogx") .field("ll_tv", &self.ll_tv) .field("ll_line", &self.ll_line) @@ -611,8 +610,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for lastlogx { - fn hash(&self, state: &mut H) { + impl hash::Hash for lastlogx { + fn hash(&self, state: &mut H) { self.ll_tv.hash(state); self.ll_line.hash(state); self.ll_host.hash(state); @@ -635,8 +634,8 @@ cfg_if! { } } impl Eq for dirent {} - impl crate::fmt::Debug for dirent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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_namlen", &self.d_namlen) @@ -647,8 +646,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_fileno.hash(state); self.d_namlen.hash(state); self.d_type.hash(state); @@ -689,8 +688,8 @@ cfg_if! { } } impl Eq for statfs {} - impl crate::fmt::Debug for statfs { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -712,8 +711,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for statfs { - fn hash(&self, state: &mut H) { + impl hash::Hash for statfs { + fn hash(&self, state: &mut H) { self.f_bsize.hash(state); self.f_iosize.hash(state); self.f_blocks.hash(state); @@ -743,8 +742,8 @@ cfg_if! { } } impl Eq for sigevent {} - impl crate::fmt::Debug for sigevent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sigevent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sigevent") .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) @@ -752,8 +751,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); self.sigev_signo.hash(state); self.sigev_value.hash(state); @@ -794,8 +793,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl crate::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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_rdi", &self.mc_rdi) @@ -830,8 +829,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.mc_onstack.hash(state); self.mc_rdi.hash(state); self.mc_rsi.hash(state); @@ -877,8 +876,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl crate::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ucontext_t") .field("uc_sigmask", &self.uc_sigmask) .field("uc_mcontext", &self.uc_mcontext) @@ -889,8 +888,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_sigmask.hash(state); self.uc_mcontext.hash(state); self.uc_link.hash(state); @@ -1069,7 +1068,7 @@ pub const CPUCTL_MSRSBIT: c_int = 0xc0106305; pub const CPUCTL_MSRCBIT: c_int = 0xc0106306; pub const CPUCTL_CPUID_COUNT: c_int = 0xc0106307; -pub const CPU_SETSIZE: size_t = crate::mem::size_of::() * 8; +pub const CPU_SETSIZE: size_t = mem::size_of::() * 8; pub const EVFILT_READ: i16 = -1; pub const EVFILT_WRITE: i16 = -2; @@ -1541,23 +1540,23 @@ pub const RTAX_MAX: c_int = 11; const_fn! { {const} fn _CMSG_ALIGN(n: usize) -> usize { - (n + (crate::mem::size_of::() - 1)) & !(crate::mem::size_of::() - 1) + (n + (mem::size_of::() - 1)) & !(mem::size_of::() - 1) } } f! { pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).offset(_CMSG_ALIGN(crate::mem::size_of::()) as isize) + (cmsg as *mut c_uchar).offset(_CMSG_ALIGN(mem::size_of::()) as isize) } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - (_CMSG_ALIGN(crate::mem::size_of::()) + length as usize) as c_uint + (_CMSG_ALIGN(mem::size_of::()) + length as usize) as c_uint } pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { let next = cmsg as usize + _CMSG_ALIGN((*cmsg).cmsg_len as usize) - + _CMSG_ALIGN(crate::mem::size_of::()); + + _CMSG_ALIGN(mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next <= max { (cmsg as usize + _CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr @@ -1567,7 +1566,7 @@ f! { } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (_CMSG_ALIGN(crate::mem::size_of::()) + _CMSG_ALIGN(length as usize)) as c_uint + (_CMSG_ALIGN(mem::size_of::()) + _CMSG_ALIGN(length as usize)) as c_uint } pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { diff --git a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs index 2e9dcdf15151e..81d3eb351cdb6 100644 --- a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_longlong, size_t}; +use crate::prelude::*; pub type c_char = u8; pub type c_long = i64; @@ -36,7 +36,7 @@ s_no_extra_traits! { } } -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; cfg_if! { if #[cfg(feature = "extra_traits")] { @@ -51,8 +51,8 @@ cfg_if! { } } impl Eq for gpregs {} - impl crate::fmt::Debug for gpregs { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for gpregs { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("gpregs") .field("gp_x", &self.gp_x) .field("gp_lr", &self.gp_lr) @@ -63,8 +63,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for gpregs { - fn hash(&self, state: &mut H) { + impl hash::Hash for gpregs { + fn hash(&self, state: &mut H) { self.gp_x.hash(state); self.gp_lr.hash(state); self.gp_sp.hash(state); @@ -83,8 +83,8 @@ cfg_if! { } } impl Eq for fpregs {} - impl crate::fmt::Debug for fpregs { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for fpregs { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("fpregs") .field("fp_q", &self.fp_q) .field("fp_sr", &self.fp_sr) @@ -94,8 +94,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for fpregs { - fn hash(&self, state: &mut H) { + impl hash::Hash for fpregs { + fn hash(&self, state: &mut H) { self.fp_q.hash(state); self.fp_sr.hash(state); self.fp_cr.hash(state); @@ -117,8 +117,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl crate::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("mcontext_t") .field("mc_gpregs", &self.mc_gpregs) .field("mc_fpregs", &self.mc_fpregs) @@ -128,8 +128,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.mc_gpregs.hash(state); self.mc_fpregs.hash(state); self.mc_flags.hash(state); diff --git a/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/unix/bsd/freebsdlike/freebsd/arm.rs index c9eb88be6ebb3..07492c9333d75 100644 --- a/src/unix/bsd/freebsdlike/freebsd/arm.rs +++ b/src/unix/bsd/freebsdlike/freebsd/arm.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_uint, c_void, size_t}; +use crate::prelude::*; pub type c_char = u8; pub type c_long = i32; @@ -35,8 +35,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl crate::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("mcontext_t") .field("__gregs", &self.__gregs) .field("mc_vfp_size", &self.mc_vfp_size) @@ -45,8 +45,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.__gregs.hash(state); self.mc_vfp_size.hash(state); self.mc_vfp_ptr.hash(state); @@ -56,7 +56,7 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs index 0ea44c348f58c..4b96972433ec9 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs @@ -1,4 +1,5 @@ -use crate::{c_long, off_t}; +use crate::off_t; +use crate::prelude::*; #[repr(C)] #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs index 500676a665d79..c492ceb47aa41 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs @@ -1,4 +1,5 @@ -use crate::{c_long, off_t}; +use crate::off_t; +use crate::prelude::*; #[repr(C)] #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs index 49b448a1be7dc..6a484e4a0b229 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_char, c_int, c_long, c_short, c_uchar, c_uint, c_ushort, c_void, intptr_t, size_t}; +use crate::prelude::*; // APIs that were changed after FreeBSD 11 @@ -297,8 +297,8 @@ cfg_if! { } } impl Eq for statfs {} - impl crate::fmt::Debug for statfs { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -320,8 +320,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for statfs { - fn hash(&self, state: &mut H) { + impl hash::Hash for statfs { + fn hash(&self, state: &mut H) { self.f_version.hash(state); self.f_type.hash(state); self.f_flags.hash(state); @@ -358,8 +358,8 @@ cfg_if! { } } impl Eq for dirent {} - impl crate::fmt::Debug for dirent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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_reclen", &self.d_reclen) @@ -369,8 +369,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_fileno.hash(state); self.d_reclen.hash(state); self.d_type.hash(state); @@ -395,8 +395,8 @@ cfg_if! { } } impl Eq for vnstat {} - impl crate::fmt::Debug for vnstat { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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") @@ -411,8 +411,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for vnstat { - fn hash(&self, state: &mut H) { + impl hash::Hash for vnstat { + fn hash(&self, state: &mut H) { let self_vn_devname: &[c_char] = &self.vn_devname; self.vn_fileid.hash(state); diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index 6bffccfc9fc70..d419433efeb9b 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -1,7 +1,5 @@ -use crate::{ - c_char, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void, off_t, size_t, - ssize_t, -}; +use crate::off_t; +use crate::prelude::*; // APIs in FreeBSD 12 that have changed since 11. @@ -343,8 +341,8 @@ cfg_if! { } } impl Eq for statfs {} - impl crate::fmt::Debug for statfs { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -366,8 +364,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for statfs { - fn hash(&self, state: &mut H) { + impl hash::Hash for statfs { + fn hash(&self, state: &mut H) { self.f_version.hash(state); self.f_type.hash(state); self.f_flags.hash(state); @@ -406,8 +404,8 @@ cfg_if! { } } impl Eq for dirent {} - impl crate::fmt::Debug for dirent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -418,8 +416,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_fileno.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -445,8 +443,8 @@ cfg_if! { } } impl Eq for vnstat {} - impl crate::fmt::Debug for vnstat { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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") @@ -461,8 +459,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for vnstat { - fn hash(&self, state: &mut H) { + impl hash::Hash for vnstat { + fn hash(&self, state: &mut H) { let self_vn_devname: &[c_char] = &self.vn_devname; self.vn_fileid.hash(state); diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs index 24713993f90a7..b29171cc509c5 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs @@ -1,4 +1,4 @@ -use crate::c_int; +use crate::prelude::*; pub const PROC_KPTI_CTL: c_int = crate::PROC_PROCCTL_MD_MIN; pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: c_int = 1; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs index f777c990d8d93..c5944a69988e8 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -1,7 +1,5 @@ -use crate::{ - c_char, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void, off_t, size_t, - ssize_t, -}; +use crate::off_t; +use crate::prelude::*; // APIs in FreeBSD 13 that have changed since 11. @@ -356,8 +354,8 @@ cfg_if! { } } impl Eq for statfs {} - impl crate::fmt::Debug for statfs { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -379,8 +377,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for statfs { - fn hash(&self, state: &mut H) { + impl hash::Hash for statfs { + fn hash(&self, state: &mut H) { self.f_version.hash(state); self.f_type.hash(state); self.f_flags.hash(state); @@ -419,8 +417,8 @@ cfg_if! { } } impl Eq for dirent {} - impl crate::fmt::Debug for dirent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -431,8 +429,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_fileno.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -458,8 +456,8 @@ cfg_if! { } } impl Eq for vnstat {} - impl crate::fmt::Debug for vnstat { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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") @@ -474,8 +472,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for vnstat { - fn hash(&self, state: &mut H) { + impl hash::Hash for vnstat { + fn hash(&self, state: &mut H) { let self_vn_devname: &[c_char] = &self.vn_devname; self.vn_fileid.hash(state); diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs index 24713993f90a7..b29171cc509c5 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs @@ -1,4 +1,4 @@ -use crate::c_int; +use crate::prelude::*; pub const PROC_KPTI_CTL: c_int = crate::PROC_PROCCTL_MD_MIN; pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: c_int = 1; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index 380791488bf97..34dd48f486f4a 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -1,7 +1,5 @@ -use crate::{ - c_char, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void, off_t, size_t, - ssize_t, -}; +use crate::off_t; +use crate::prelude::*; // APIs in FreeBSD 14 that have changed since 11. @@ -356,8 +354,8 @@ cfg_if! { } } impl Eq for statfs {} - impl crate::fmt::Debug for statfs { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -379,8 +377,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for statfs { - fn hash(&self, state: &mut H) { + impl hash::Hash for statfs { + fn hash(&self, state: &mut H) { self.f_version.hash(state); self.f_type.hash(state); self.f_flags.hash(state); @@ -419,8 +417,8 @@ cfg_if! { } } impl Eq for dirent {} - impl crate::fmt::Debug for dirent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -431,8 +429,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_fileno.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -458,8 +456,8 @@ cfg_if! { } } impl Eq for vnstat {} - impl crate::fmt::Debug for vnstat { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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") @@ -474,8 +472,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for vnstat { - fn hash(&self, state: &mut H) { + impl hash::Hash for vnstat { + fn hash(&self, state: &mut H) { let self_vn_devname: &[c_char] = &self.vn_devname; self.vn_fileid.hash(state); diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs index 2c403114c0305..3e037471fbf68 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs @@ -1,4 +1,4 @@ -use crate::c_int; +use crate::prelude::*; pub const PROC_KPTI_CTL: c_int = crate::PROC_PROCCTL_MD_MIN; pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: c_int = 1; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index d5c068ec49cef..4a454619ef06c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -1,7 +1,5 @@ -use crate::{ - c_char, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void, off_t, size_t, - ssize_t, -}; +use crate::off_t; +use crate::prelude::*; // APIs in FreeBSD 15 that have changed since 11. @@ -356,8 +354,8 @@ cfg_if! { } } impl Eq for statfs {} - impl crate::fmt::Debug for statfs { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -379,8 +377,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for statfs { - fn hash(&self, state: &mut H) { + impl hash::Hash for statfs { + fn hash(&self, state: &mut H) { self.f_version.hash(state); self.f_type.hash(state); self.f_flags.hash(state); @@ -419,8 +417,8 @@ cfg_if! { } } impl Eq for dirent {} - impl crate::fmt::Debug for dirent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -431,8 +429,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_fileno.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -458,8 +456,8 @@ cfg_if! { } } impl Eq for vnstat {} - impl crate::fmt::Debug for vnstat { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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") @@ -474,8 +472,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for vnstat { - fn hash(&self, state: &mut H) { + impl hash::Hash for vnstat { + fn hash(&self, state: &mut H) { let self_vn_devname: &[c_char] = &self.vn_devname; self.vn_fileid.hash(state); diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs index 2c403114c0305..3e037471fbf68 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs @@ -1,4 +1,4 @@ -use crate::c_int; +use crate::prelude::*; pub const PROC_KPTI_CTL: c_int = crate::PROC_PROCCTL_MD_MIN; pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: c_int = 1; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 6a443d93b6c46..fdaf2d46d35c0 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1,6 +1,5 @@ -use crate::{ - c_int, c_longlong, c_short, c_uchar, c_uint, c_ushort, c_void, cmsghdr, off_t, size_t, ssize_t, -}; +use crate::prelude::*; +use crate::{cmsghdr, off_t}; pub type fflags_t = u32; @@ -1666,8 +1665,8 @@ cfg_if! { } } impl Eq for utmpx {} - impl crate::fmt::Debug for utmpx { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utmpx { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utmpx") .field("ut_type", &self.ut_type) .field("ut_tv", &self.ut_tv) @@ -1680,8 +1679,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_type.hash(state); self.ut_tv.hash(state); self.ut_id.hash(state); @@ -1699,15 +1698,15 @@ cfg_if! { } } impl Eq for __c_anonymous_cr_pid {} - impl crate::fmt::Debug for __c_anonymous_cr_pid { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_cr_pid { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("cr_pid") .field("cr_pid", unsafe { &self.cr_pid }) .finish() } } - impl crate::hash::Hash for __c_anonymous_cr_pid { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_cr_pid { + fn hash(&self, state: &mut H) { unsafe { self.cr_pid.hash(state) }; } } @@ -1722,8 +1721,8 @@ cfg_if! { } } impl Eq for xucred {} - impl crate::fmt::Debug for xucred { - fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result { + impl fmt::Debug for xucred { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("xucred") .field("cr_version", &self.cr_version) .field("cr_uid", &self.cr_uid) @@ -1733,8 +1732,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for xucred { - fn hash(&self, state: &mut H) { + impl hash::Hash for xucred { + fn hash(&self, state: &mut H) { self.cr_version.hash(state); self.cr_uid.hash(state); self.cr_ngroups.hash(state); @@ -1760,8 +1759,8 @@ cfg_if! { } } impl Eq for sockaddr_dl {} - impl crate::fmt::Debug for sockaddr_dl { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_dl { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_dl") .field("sdl_len", &self.sdl_len) .field("sdl_family", &self.sdl_family) @@ -1774,8 +1773,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sockaddr_dl { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_dl { + fn hash(&self, state: &mut H) { self.sdl_len.hash(state); self.sdl_family.hash(state); self.sdl_index.hash(state); @@ -1796,8 +1795,8 @@ cfg_if! { } } impl Eq for mq_attr {} - impl crate::fmt::Debug for mq_attr { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for mq_attr { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("mq_attr") .field("mq_flags", &self.mq_flags) .field("mq_maxmsg", &self.mq_maxmsg) @@ -1806,8 +1805,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { + impl hash::Hash for mq_attr { + fn hash(&self, state: &mut H) { self.mq_flags.hash(state); self.mq_maxmsg.hash(state); self.mq_msgsize.hash(state); @@ -1824,8 +1823,8 @@ cfg_if! { } } impl Eq for sigevent {} - impl crate::fmt::Debug for sigevent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sigevent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sigevent") .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) @@ -1834,8 +1833,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); self.sigev_signo.hash(state); self.sigev_value.hash(state); @@ -1852,8 +1851,8 @@ cfg_if! { } } impl Eq for ptsstat {} - impl crate::fmt::Debug for ptsstat { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ptsstat { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let self_devname: &[c_char] = &self.devname; f.debug_struct("ptsstat") @@ -1862,8 +1861,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for ptsstat { - fn hash(&self, state: &mut H) { + impl hash::Hash for ptsstat { + fn hash(&self, state: &mut H) { let self_devname: &[c_char] = &self.devname; self.dev.hash(state); @@ -1877,8 +1876,8 @@ cfg_if! { } } impl Eq for __c_anonymous_elf32_auxv_union {} - impl crate::fmt::Debug for __c_anonymous_elf32_auxv_union { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_elf32_auxv_union { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("a_val") .field("a_val", unsafe { &self.a_val }) .finish() @@ -1890,8 +1889,8 @@ cfg_if! { } } impl Eq for Elf32_Auxinfo {} - impl crate::fmt::Debug for Elf32_Auxinfo { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for Elf32_Auxinfo { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("Elf32_Auxinfo") .field("a_type", &self.a_type) .field("a_un", &self.a_un) @@ -1921,8 +1920,8 @@ cfg_if! { } } impl Eq for __c_anonymous_ifr_ifru {} - impl crate::fmt::Debug for __c_anonymous_ifr_ifru { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_ifr_ifru { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ifr_ifru") .field("ifru_addr", unsafe { &self.ifru_addr }) .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) @@ -1942,8 +1941,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for __c_anonymous_ifr_ifru { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_ifr_ifru { + fn hash(&self, state: &mut H) { unsafe { self.ifru_addr.hash(state) }; unsafe { self.ifru_dstaddr.hash(state) }; unsafe { self.ifru_broadaddr.hash(state) }; @@ -1968,16 +1967,16 @@ cfg_if! { } } impl Eq for ifreq {} - impl crate::fmt::Debug for ifreq { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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 crate::hash::Hash for ifreq { - fn hash(&self, state: &mut H) { + impl hash::Hash for ifreq { + fn hash(&self, state: &mut H) { self.ifr_name.hash(state); self.ifr_ifru.hash(state); } @@ -1991,8 +1990,8 @@ cfg_if! { } } - impl crate::fmt::Debug for __c_anonymous_ifc_ifcu { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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 }) @@ -2000,8 +1999,8 @@ cfg_if! { } } - impl crate::hash::Hash for __c_anonymous_ifc_ifcu { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_ifc_ifcu { + fn hash(&self, state: &mut H) { unsafe { self.ifcu_buf.hash(state) }; unsafe { self.ifcu_req.hash(state) }; } @@ -2016,8 +2015,8 @@ cfg_if! { } } impl Eq for ifstat {} - impl crate::fmt::Debug for ifstat { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ifstat { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let ascii: &[c_char] = &self.ascii; f.debug_struct("ifstat") @@ -2026,8 +2025,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for ifstat { - fn hash(&self, state: &mut H) { + impl hash::Hash for ifstat { + fn hash(&self, state: &mut H) { self.ifs_name.hash(state); self.ascii.hash(state); } @@ -2046,8 +2045,8 @@ cfg_if! { } } impl Eq for ifrsskey {} - impl crate::fmt::Debug for ifrsskey { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ifrsskey { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let ifrk_key: &[u8] = &self.ifrk_key; f.debug_struct("ifrsskey") @@ -2059,8 +2058,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for ifrsskey { - fn hash(&self, state: &mut H) { + impl hash::Hash for ifrsskey { + fn hash(&self, state: &mut H) { self.ifrk_name.hash(state); self.ifrk_func.hash(state); self.ifrk_spare0.hash(state); @@ -2081,8 +2080,8 @@ cfg_if! { } } impl Eq for ifdownreason {} - impl crate::fmt::Debug for ifdownreason { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ifdownreason { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let ifdr_msg: &[c_char] = &self.ifdr_msg; f.debug_struct("ifdownreason") @@ -2093,8 +2092,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for ifdownreason { - fn hash(&self, state: &mut H) { + impl hash::Hash for ifdownreason { + fn hash(&self, state: &mut H) { self.ifdr_name.hash(state); self.ifdr_reason.hash(state); self.ifdr_vendor.hash(state); @@ -2108,16 +2107,16 @@ cfg_if! { } } impl Eq for __c_anonymous_ifi_epoch {} - impl crate::fmt::Debug for __c_anonymous_ifi_epoch { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_ifi_epoch { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("__c_anonymous_ifi_epoch") .field("tt", unsafe { &self.tt }) .field("ph", unsafe { &self.ph }) .finish() } } - impl crate::hash::Hash for __c_anonymous_ifi_epoch { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_ifi_epoch { + fn hash(&self, state: &mut H) { unsafe { self.tt.hash(state); self.ph.hash(state); @@ -2131,16 +2130,16 @@ cfg_if! { } } impl Eq for __c_anonymous_ifi_lastchange {} - impl crate::fmt::Debug for __c_anonymous_ifi_lastchange { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_ifi_lastchange { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("__c_anonymous_ifi_lastchange") .field("tv", unsafe { &self.tv }) .field("ph", unsafe { &self.ph }) .finish() } } - impl crate::hash::Hash for __c_anonymous_ifi_lastchange { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_ifi_lastchange { + fn hash(&self, state: &mut H) { unsafe { self.tv.hash(state); self.ph.hash(state); @@ -2178,8 +2177,8 @@ cfg_if! { } } impl Eq for if_data {} - impl crate::fmt::Debug for if_data { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for if_data { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("if_data") .field("ifi_type", &self.ifi_type) .field("ifi_physical", &self.ifi_physical) @@ -2209,8 +2208,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for if_data { - fn hash(&self, state: &mut H) { + impl hash::Hash for if_data { + fn hash(&self, state: &mut H) { self.ifi_type.hash(state); self.ifi_physical.hash(state); self.ifi_addrlen.hash(state); @@ -2248,8 +2247,8 @@ cfg_if! { } } impl Eq for sctphdr {} - impl crate::fmt::Debug for sctphdr { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sctphdr { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sctphdr") .field("src_port", &{ self.src_port }) .field("dest_port", &{ self.dest_port }) @@ -2258,8 +2257,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sctphdr { - fn hash(&self, state: &mut H) { + impl hash::Hash for sctphdr { + fn hash(&self, state: &mut H) { { self.src_port }.hash(state); { self.dest_port }.hash(state); { self.v_tag }.hash(state); @@ -2275,8 +2274,8 @@ cfg_if! { } } impl Eq for sctp_chunkhdr {} - impl crate::fmt::Debug for sctp_chunkhdr { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sctp_chunkhdr { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sctp_chunkhdr") .field("chunk_type", &{ self.chunk_type }) .field("chunk_flags", &{ self.chunk_flags }) @@ -2284,8 +2283,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sctp_chunkhdr { - fn hash(&self, state: &mut H) { + impl hash::Hash for sctp_chunkhdr { + fn hash(&self, state: &mut H) { { self.chunk_type }.hash(state); { self.chunk_flags }.hash(state); { self.chunk_length }.hash(state); @@ -2300,16 +2299,16 @@ cfg_if! { } } impl Eq for sctp_paramhdr {} - impl crate::fmt::Debug for sctp_paramhdr { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sctp_paramhdr { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sctp_paramhdr") .field("param_type", &{ self.param_type }) .field("param_length", &{ self.param_length }) .finish() } } - impl crate::hash::Hash for sctp_paramhdr { - fn hash(&self, state: &mut H) { + impl hash::Hash for sctp_paramhdr { + fn hash(&self, state: &mut H) { { self.param_type }.hash(state); { self.param_length }.hash(state); } @@ -2326,8 +2325,8 @@ cfg_if! { } } impl Eq for sctp_gen_error_cause {} - impl crate::fmt::Debug for sctp_gen_error_cause { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sctp_gen_error_cause { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sctp_gen_error_cause") .field("code", &{ self.code }) .field("length", &{ self.length }) @@ -2335,8 +2334,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sctp_gen_error_cause { - fn hash(&self, state: &mut H) { + impl hash::Hash for sctp_gen_error_cause { + fn hash(&self, state: &mut H) { { self.code }.hash(state); { self.length }.hash(state); { self.info }.hash(state); @@ -2349,16 +2348,16 @@ cfg_if! { } } impl Eq for sctp_error_cause {} - impl crate::fmt::Debug for sctp_error_cause { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sctp_error_cause { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sctp_error_cause") .field("code", &{ self.code }) .field("length", &{ self.length }) .finish() } } - impl crate::hash::Hash for sctp_error_cause { - fn hash(&self, state: &mut H) { + impl hash::Hash for sctp_error_cause { + fn hash(&self, state: &mut H) { { self.code }.hash(state); { self.length }.hash(state); } @@ -2372,16 +2371,16 @@ cfg_if! { } } impl Eq for sctp_error_invalid_stream {} - impl crate::fmt::Debug for sctp_error_invalid_stream { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sctp_error_invalid_stream { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sctp_error_invalid_stream") .field("cause", &{ self.cause }) .field("stream_id", &{ self.stream_id }) .finish() } } - impl crate::hash::Hash for sctp_error_invalid_stream { - fn hash(&self, state: &mut H) { + impl hash::Hash for sctp_error_invalid_stream { + fn hash(&self, state: &mut H) { { self.cause }.hash(state); { self.stream_id }.hash(state); } @@ -2398,8 +2397,8 @@ cfg_if! { } } impl Eq for sctp_error_missing_param {} - impl crate::fmt::Debug for sctp_error_missing_param { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sctp_error_missing_param { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sctp_error_missing_param") .field("cause", &{ self.cause }) .field("num_missing_params", &{ self.num_missing_params }) @@ -2407,8 +2406,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sctp_error_missing_param { - fn hash(&self, state: &mut H) { + impl hash::Hash for sctp_error_missing_param { + fn hash(&self, state: &mut H) { { self.cause }.hash(state); { self.num_missing_params }.hash(state); { self.tpe }.hash(state); @@ -2423,16 +2422,16 @@ cfg_if! { } } impl Eq for sctp_error_stale_cookie {} - impl crate::fmt::Debug for sctp_error_stale_cookie { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sctp_error_stale_cookie { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sctp_error_stale_cookie") .field("cause", &{ self.cause }) .field("stale_time", &{ self.stale_time }) .finish() } } - impl crate::hash::Hash for sctp_error_stale_cookie { - fn hash(&self, state: &mut H) { + impl hash::Hash for sctp_error_stale_cookie { + fn hash(&self, state: &mut H) { { self.cause }.hash(state); { self.stale_time }.hash(state); } @@ -2444,15 +2443,15 @@ cfg_if! { } } impl Eq for sctp_error_out_of_resource {} - impl crate::fmt::Debug for sctp_error_out_of_resource { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sctp_error_out_of_resource { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sctp_error_out_of_resource") .field("cause", &{ self.cause }) .finish() } } - impl crate::hash::Hash for sctp_error_out_of_resource { - fn hash(&self, state: &mut H) { + impl hash::Hash for sctp_error_out_of_resource { + fn hash(&self, state: &mut H) { { self.cause }.hash(state); } } @@ -2463,15 +2462,15 @@ cfg_if! { } } impl Eq for sctp_error_unresolv_addr {} - impl crate::fmt::Debug for sctp_error_unresolv_addr { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sctp_error_unresolv_addr { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sctp_error_unresolv_addr") .field("cause", &{ self.cause }) .finish() } } - impl crate::hash::Hash for sctp_error_unresolv_addr { - fn hash(&self, state: &mut H) { + impl hash::Hash for sctp_error_unresolv_addr { + fn hash(&self, state: &mut H) { { self.cause }.hash(state); } } @@ -2482,16 +2481,16 @@ cfg_if! { } } impl Eq for sctp_error_unrecognized_chunk {} - impl crate::fmt::Debug for sctp_error_unrecognized_chunk { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sctp_error_unrecognized_chunk { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sctp_error_unrecognized_chunk") .field("cause", &{ self.cause }) .field("ch", &{ self.ch }) .finish() } } - impl crate::hash::Hash for sctp_error_unrecognized_chunk { - fn hash(&self, state: &mut H) { + impl hash::Hash for sctp_error_unrecognized_chunk { + fn hash(&self, state: &mut H) { { self.cause }.hash(state); { self.ch }.hash(state); } @@ -2503,16 +2502,16 @@ cfg_if! { } } impl Eq for sctp_error_no_user_data {} - impl crate::fmt::Debug for sctp_error_no_user_data { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sctp_error_no_user_data { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sctp_error_no_user_data") .field("cause", &{ self.cause }) .field("tsn", &{ self.tsn }) .finish() } } - impl crate::hash::Hash for sctp_error_no_user_data { - fn hash(&self, state: &mut H) { + impl hash::Hash for sctp_error_no_user_data { + fn hash(&self, state: &mut H) { { self.cause }.hash(state); { self.tsn }.hash(state); } @@ -2524,16 +2523,16 @@ cfg_if! { } } impl Eq for sctp_error_auth_invalid_hmac {} - impl crate::fmt::Debug for sctp_error_auth_invalid_hmac { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sctp_error_auth_invalid_hmac { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sctp_error_invalid_hmac") .field("cause", &{ self.cause }) .field("hmac_id", &{ self.hmac_id }) .finish() } } - impl crate::hash::Hash for sctp_error_auth_invalid_hmac { - fn hash(&self, state: &mut H) { + impl hash::Hash for sctp_error_auth_invalid_hmac { + fn hash(&self, state: &mut H) { { self.cause }.hash(state); { self.hmac_id }.hash(state); } @@ -2557,8 +2556,8 @@ cfg_if! { } } impl Eq for kinfo_file {} - impl crate::fmt::Debug for kinfo_file { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for kinfo_file { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("kinfo_file") .field("kf_structsize", &self.kf_structsize) .field("kf_type", &self.kf_type) @@ -2572,8 +2571,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for kinfo_file { - fn hash(&self, state: &mut H) { + impl hash::Hash for kinfo_file { + fn hash(&self, state: &mut H) { self.kf_structsize.hash(state); self.kf_type.hash(state); self.kf_fd.hash(state); @@ -2586,8 +2585,8 @@ cfg_if! { } } - impl crate::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ucontext_t") .field("uc_sigmask", &self.uc_sigmask) .field("uc_mcontext", &self.uc_mcontext) @@ -4912,20 +4911,19 @@ const_fn! { f! { pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).offset(_ALIGN(crate::mem::size_of::()) as isize) + (cmsg as *mut c_uchar).offset(_ALIGN(mem::size_of::()) as isize) } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - _ALIGN(crate::mem::size_of::()) as c_uint + length + _ALIGN(mem::size_of::()) as c_uint + length } pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { return crate::CMSG_FIRSTHDR(mhdr); }; - let next = cmsg as usize - + _ALIGN((*cmsg).cmsg_len as usize) - + _ALIGN(crate::mem::size_of::()); + let next = + cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { 0 as *mut cmsghdr @@ -4935,7 +4933,7 @@ f! { } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (_ALIGN(crate::mem::size_of::()) + _ALIGN(length as usize)) as c_uint + (_ALIGN(mem::size_of::()) + _ALIGN(length as usize)) as c_uint } pub fn MALLOCX_ALIGN(lg: c_uint) -> c_int { @@ -4952,7 +4950,7 @@ f! { pub fn SOCKCREDSIZE(ngrps: usize) -> usize { let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 }; - crate::mem::size_of::() + crate::mem::size_of::() * ngrps + mem::size_of::() + mem::size_of::() * ngrps } pub fn uname(buf: *mut crate::utsname) -> c_int { @@ -4972,29 +4970,29 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpuset_t) -> () { - let bitset_bits = 8 * crate::mem::size_of::(); + let bitset_bits = 8 * mem::size_of::(); let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); cpuset.__bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpuset_t) -> () { - let bitset_bits = 8 * crate::mem::size_of::(); + let bitset_bits = 8 * mem::size_of::(); let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); cpuset.__bits[idx] &= !(1 << offset); () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpuset_t) -> bool { - let bitset_bits = 8 * crate::mem::size_of::(); + let bitset_bits = 8 * mem::size_of::(); let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); 0 != cpuset.__bits[idx] & (1 << offset) } pub fn CPU_COUNT(cpuset: &cpuset_t) -> c_int { let mut s: u32 = 0; - let cpuset_size = crate::mem::size_of::(); - let bitset_size = crate::mem::size_of::(); + let cpuset_size = mem::size_of::(); + let bitset_size = mem::size_of::(); for i in cpuset.__bits[..(cpuset_size / bitset_size)].iter() { s += i.count_ones(); @@ -5004,7 +5002,7 @@ f! { pub fn SOCKCRED2SIZE(ngrps: usize) -> usize { let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 }; - crate::mem::size_of::() + crate::mem::size_of::() * ngrps + mem::size_of::() + mem::size_of::() * ngrps } pub fn PROT_MAX(x: c_int) -> c_int { diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs index beec2dfae9679..0bd678c9821b6 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs @@ -1,4 +1,4 @@ -use crate::{c_int, size_t}; +use crate::prelude::*; pub type c_char = u8; pub type c_long = i32; @@ -40,8 +40,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl crate::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("mcontext_t") .field("mc_vers", &self.mc_vers) .field("mc_flags", &self.mc_flags) @@ -55,8 +55,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.mc_vers.hash(state); self.mc_flags.hash(state); self.mc_onstack.hash(state); @@ -71,7 +71,7 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs index 5f9ed7a5c2d95..e1548a2fa4a09 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs @@ -1,4 +1,4 @@ -use crate::{c_int, size_t}; +use crate::prelude::*; pub type c_char = u8; pub type c_long = i64; @@ -40,8 +40,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl crate::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("mcontext_t") .field("mc_vers", &self.mc_vers) .field("mc_flags", &self.mc_flags) @@ -55,8 +55,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.mc_vers.hash(state); self.mc_flags.hash(state); self.mc_onstack.hash(state); @@ -71,7 +71,7 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; diff --git a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs index 5864a88d7d616..e425411436d2b 100644 --- a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_longlong, size_t}; +use crate::prelude::*; pub type c_char = u8; pub type c_long = i64; @@ -54,8 +54,8 @@ cfg_if! { } } impl Eq for gpregs {} - impl crate::fmt::Debug for gpregs { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for gpregs { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("gpregs") .field("gp_ra", &self.gp_ra) .field("gp_sp", &self.gp_sp) @@ -69,8 +69,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for gpregs { - fn hash(&self, state: &mut H) { + impl hash::Hash for gpregs { + fn hash(&self, state: &mut H) { self.gp_ra.hash(state); self.gp_sp.hash(state); self.gp_gp.hash(state); @@ -91,8 +91,8 @@ cfg_if! { } } impl Eq for fpregs {} - impl crate::fmt::Debug for fpregs { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for fpregs { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("fpregs") .field("fp_x", &self.fp_x) .field("fp_fcsr", &self.fp_fcsr) @@ -101,8 +101,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for fpregs { - fn hash(&self, state: &mut H) { + impl hash::Hash for fpregs { + fn hash(&self, state: &mut H) { self.fp_x.hash(state); self.fp_fcsr.hash(state); self.fp_flags.hash(state); @@ -123,8 +123,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl crate::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("mcontext_t") .field("mc_gpregs", &self.mc_gpregs) .field("mc_fpregs", &self.mc_fpregs) @@ -134,8 +134,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.mc_gpregs.hash(state); self.mc_fpregs.hash(state); self.mc_flags.hash(state); @@ -146,7 +146,7 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index 40c3b25b1375e..5af53cd76f665 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -1,4 +1,4 @@ -use crate::{c_int, size_t}; +use crate::prelude::*; pub type c_char = i8; pub type c_long = i32; @@ -90,8 +90,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl crate::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -126,8 +126,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.mc_onstack.hash(state); self.mc_gs.hash(state); self.mc_fs.hash(state); @@ -163,7 +163,7 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const MINSIGSTKSZ: size_t = 2048; // 512 * 4 diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index 912b5f39b6d80..b3ed7684154a9 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_void, size_t}; +use crate::prelude::*; pub type c_char = i8; pub type c_long = i64; @@ -159,8 +159,8 @@ cfg_if! { } } impl Eq for fpreg32 {} - impl crate::fmt::Debug for fpreg32 { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for fpreg32 { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("fpreg32") .field("fpr_env", &&self.fpr_env[..]) .field("fpr_acc", &self.fpr_acc) @@ -169,8 +169,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for fpreg32 { - fn hash(&self, state: &mut H) { + impl hash::Hash for fpreg32 { + fn hash(&self, state: &mut H) { self.fpr_env.hash(state); self.fpr_acc.hash(state); self.fpr_ex_sw.hash(state); @@ -187,8 +187,8 @@ cfg_if! { } } impl Eq for fpreg {} - impl crate::fmt::Debug for fpreg { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for fpreg { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("fpreg") .field("fpr_env", &self.fpr_env) .field("fpr_acc", &self.fpr_acc) @@ -197,8 +197,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for fpreg { - fn hash(&self, state: &mut H) { + impl hash::Hash for fpreg { + fn hash(&self, state: &mut H) { self.fpr_env.hash(state); self.fpr_acc.hash(state); self.fpr_xacc.hash(state); @@ -219,8 +219,8 @@ cfg_if! { } } impl Eq for xmmreg {} - impl crate::fmt::Debug for xmmreg { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for xmmreg { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("xmmreg") .field("xmm_env", &self.xmm_env) .field("xmm_acc", &self.xmm_acc) @@ -229,8 +229,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for xmmreg { - fn hash(&self, state: &mut H) { + impl hash::Hash for xmmreg { + fn hash(&self, state: &mut H) { self.xmm_env.hash(state); self.xmm_acc.hash(state); self.xmm_reg.hash(state); @@ -248,8 +248,8 @@ cfg_if! { } } impl Eq for __c_anonymous_elf64_auxv_union {} - impl crate::fmt::Debug for __c_anonymous_elf64_auxv_union { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_elf64_auxv_union { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("a_val") .field("a_val", unsafe { &self.a_val }) .finish() @@ -261,8 +261,8 @@ cfg_if! { } } impl Eq for Elf64_Auxinfo {} - impl crate::fmt::Debug for Elf64_Auxinfo { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for Elf64_Auxinfo { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("Elf64_Auxinfo") .field("a_type", &self.a_type) .field("a_un", &self.a_un) @@ -317,8 +317,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl crate::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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_rdi", &self.mc_rdi) @@ -361,8 +361,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.mc_onstack.hash(state); self.mc_rdi.hash(state); self.mc_rsi.hash(state); @@ -406,7 +406,7 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index fcedc565e3655..3c62e7d5e8271 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1,7 +1,5 @@ -use crate::{ - c_double, c_int, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, off_t, size_t, - ssize_t, -}; +use crate::off_t; +use crate::prelude::*; pub type mode_t = u16; pub type pthread_attr_t = *mut c_void; @@ -413,8 +411,8 @@ cfg_if! { } } impl Eq for sockaddr_storage {} - impl crate::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_len", &self.ss_len) .field("ss_family", &self.ss_family) @@ -424,8 +422,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_len.hash(state); self.ss_family.hash(state); self.__ss_pad1.hash(state); @@ -437,7 +435,7 @@ cfg_if! { } // Non-public helper constant -const SIZEOF_LONG: usize = crate::mem::size_of::(); +const SIZEOF_LONG: usize = mem::size_of::(); #[deprecated( since = "0.2.64", diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 0ce8fd9d1dd92..d8e52f5f74245 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_double, c_int, c_short, c_uint, c_ushort, c_void, size_t, ssize_t}; +use crate::prelude::*; pub type off_t = i64; pub type useconds_t = u32; @@ -180,8 +180,8 @@ cfg_if! { impl Eq for sockaddr_un {} - impl crate::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_un") .field("sun_len", &self.sun_len) .field("sun_family", &self.sun_family) @@ -190,8 +190,8 @@ cfg_if! { } } - impl crate::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { self.sun_len.hash(state); self.sun_family.hash(state); self.sun_path.hash(state); @@ -229,8 +229,8 @@ cfg_if! { impl Eq for utsname {} - impl crate::fmt::Debug for utsname { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utsname { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utsname") // FIXME: .field("sysname", &self.sysname) // FIXME: .field("nodename", &self.nodename) @@ -241,8 +241,8 @@ cfg_if! { } } - impl crate::hash::Hash for utsname { - fn hash(&self, state: &mut H) { + impl hash::Hash for utsname { + fn hash(&self, state: &mut H) { self.sysname.hash(state); self.nodename.hash(state); self.release.hash(state); @@ -595,7 +595,7 @@ pub const RTAX_BRD: c_int = 7; f! { pub fn CMSG_FIRSTHDR(mhdr: *const crate::msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= crate::mem::size_of::() { + if (*mhdr).msg_controllen as usize >= mem::size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { core::ptr::null_mut() @@ -603,20 +603,20 @@ f! { } pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { - let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { - let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { - let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] |= 1 << (fd % bits); return; diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index 6cd40777468db..7e5fa2ca87ef5 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_short, c_uint, c_ushort, c_void, off_t, size_t, ssize_t}; +use crate::off_t; +use crate::prelude::*; pub type wchar_t = i32; pub type time_t = i64; diff --git a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs index b74f57636ffe8..8ed84021e895e 100644 --- a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_uchar, c_uint, PT_FIRSTMACH}; +use crate::prelude::*; +use crate::PT_FIRSTMACH; pub type c_long = i64; pub type c_ulong = u64; @@ -53,8 +54,8 @@ cfg_if! { } } impl Eq for __c_anonymous__freg {} - impl crate::fmt::Debug for __c_anonymous__freg { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous__freg { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { unsafe { f.debug_struct("__c_anonymous__freg") .field("__b8", &self.__b8) @@ -66,8 +67,8 @@ cfg_if! { } } } - impl crate::hash::Hash for __c_anonymous__freg { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous__freg { + fn hash(&self, state: &mut H) { unsafe { self.__b8.hash(state); self.__h16.hash(state); @@ -80,7 +81,7 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const PT_GETREGS: c_int = PT_FIRSTMACH + 0; pub const PT_SETREGS: c_int = PT_FIRSTMACH + 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/arm.rs b/src/unix/bsd/netbsdlike/netbsd/arm.rs index aff875801e89c..1f54c8135bf47 100644 --- a/src/unix/bsd/netbsdlike/netbsd/arm.rs +++ b/src/unix/bsd/netbsdlike/netbsd/arm.rs @@ -1,11 +1,12 @@ -use crate::{c_int, c_longlong, PT_FIRSTMACH}; +use crate::prelude::*; +use crate::PT_FIRSTMACH; pub type c_long = i32; pub type c_ulong = u32; pub type c_char = u8; pub type __cpu_simple_lock_nv_t = c_int; -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const PT_GETREGS: c_int = PT_FIRSTMACH + 1; pub const PT_SETREGS: c_int = PT_FIRSTMACH + 2; diff --git a/src/unix/bsd/netbsdlike/netbsd/mips.rs b/src/unix/bsd/netbsdlike/netbsd/mips.rs index 089154cd2a40a..7129c0f54eb6f 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mips.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mips.rs @@ -1,11 +1,12 @@ -use crate::{c_int, c_longlong, PT_FIRSTMACH}; +use crate::prelude::*; +use crate::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; -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const PT_GETREGS: c_int = PT_FIRSTMACH + 1; pub const PT_SETREGS: c_int = PT_FIRSTMACH + 2; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 6efb197cb6431..9af0efc40f97d 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1,7 +1,5 @@ -use crate::{ - c_int, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, cmsghdr, intptr_t, off_t, - size_t, ssize_t, -}; +use crate::prelude::*; +use crate::{cmsghdr, off_t}; pub type clock_t = c_uint; pub type suseconds_t = c_int; @@ -941,8 +939,8 @@ cfg_if! { impl Eq for utmpx {} - impl crate::fmt::Debug for utmpx { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utmpx { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utmpx") .field("ut_name", &self.ut_name) .field("ut_id", &self.ut_id) @@ -959,8 +957,8 @@ cfg_if! { } } - impl crate::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_name.hash(state); self.ut_type.hash(state); self.ut_pid.hash(state); @@ -990,8 +988,8 @@ cfg_if! { impl Eq for lastlogx {} - impl crate::fmt::Debug for lastlogx { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for lastlogx { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("lastlogx") .field("ll_tv", &self.ll_tv) .field("ll_line", &self.ll_line) @@ -1001,8 +999,8 @@ cfg_if! { } } - impl crate::hash::Hash for lastlogx { - fn hash(&self, state: &mut H) { + impl hash::Hash for lastlogx { + fn hash(&self, state: &mut H) { self.ll_tv.hash(state); self.ll_line.hash(state); self.ll_host.hash(state); @@ -1016,16 +1014,16 @@ cfg_if! { } } impl Eq for in_pktinfo {} - impl crate::fmt::Debug for in_pktinfo { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for in_pktinfo { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("in_pktinfo") .field("ipi_addr", &self.ipi_addr) .field("ipi_ifindex", &self.ipi_ifindex) .finish() } } - impl crate::hash::Hash for in_pktinfo { - fn hash(&self, state: &mut H) { + impl hash::Hash for in_pktinfo { + fn hash(&self, state: &mut H) { self.ipi_addr.hash(state); self.ipi_ifindex.hash(state); } @@ -1041,8 +1039,8 @@ cfg_if! { } } impl Eq for arphdr {} - impl crate::fmt::Debug for arphdr { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for arphdr { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let ar_hrd = self.ar_hrd; let ar_pro = self.ar_pro; let ar_op = self.ar_op; @@ -1055,8 +1053,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for arphdr { - fn hash(&self, state: &mut H) { + impl hash::Hash for arphdr { + fn hash(&self, state: &mut H) { let ar_hrd = self.ar_hrd; let ar_pro = self.ar_pro; let ar_op = self.ar_op; @@ -1074,14 +1072,14 @@ cfg_if! { } } impl Eq for in_addr {} - impl crate::fmt::Debug for in_addr { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for in_addr { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let s_addr = self.s_addr; f.debug_struct("in_addr").field("s_addr", &s_addr).finish() } } - impl crate::hash::Hash for in_addr { - fn hash(&self, state: &mut H) { + impl hash::Hash for in_addr { + fn hash(&self, state: &mut H) { let s_addr = self.s_addr; s_addr.hash(state); } @@ -1094,16 +1092,16 @@ cfg_if! { } } impl Eq for ip_mreq {} - impl crate::fmt::Debug for ip_mreq { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ip_mreq { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ip_mreq") .field("imr_multiaddr", &self.imr_multiaddr) .field("imr_interface", &self.imr_interface) .finish() } } - impl crate::hash::Hash for ip_mreq { - fn hash(&self, state: &mut H) { + impl hash::Hash for ip_mreq { + fn hash(&self, state: &mut H) { self.imr_multiaddr.hash(state); self.imr_interface.hash(state); } @@ -1119,8 +1117,8 @@ cfg_if! { } } impl Eq for sockaddr_in {} - impl crate::fmt::Debug for sockaddr_in { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_in { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_in") .field("sin_len", &self.sin_len) .field("sin_family", &self.sin_family) @@ -1130,8 +1128,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sockaddr_in { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_in { + fn hash(&self, state: &mut H) { self.sin_len.hash(state); self.sin_family.hash(state); self.sin_port.hash(state); @@ -1154,8 +1152,8 @@ cfg_if! { } } impl Eq for dirent {} - impl crate::fmt::Debug for dirent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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_reclen", &self.d_reclen) @@ -1165,8 +1163,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_fileno.hash(state); self.d_reclen.hash(state); self.d_namlen.hash(state); @@ -1212,8 +1210,8 @@ cfg_if! { } } impl Eq for statvfs {} - impl crate::fmt::Debug for statvfs { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for statvfs { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("statvfs") .field("f_flag", &self.f_flag) .field("f_bsize", &self.f_bsize) @@ -1242,8 +1240,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for statvfs { - fn hash(&self, state: &mut H) { + impl hash::Hash for statvfs { + fn hash(&self, state: &mut H) { self.f_flag.hash(state); self.f_bsize.hash(state); self.f_frsize.hash(state); @@ -1285,8 +1283,8 @@ cfg_if! { } } impl Eq for sockaddr_storage {} - impl crate::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_len", &self.ss_len) .field("ss_family", &self.ss_family) @@ -1296,8 +1294,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_len.hash(state); self.ss_family.hash(state); self.__ss_pad1.hash(state); @@ -1315,8 +1313,8 @@ cfg_if! { } } impl Eq for sigevent {} - impl crate::fmt::Debug for sigevent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sigevent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sigevent") .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) @@ -1325,8 +1323,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); self.sigev_signo.hash(state); self.sigev_value.hash(state); @@ -1342,8 +1340,8 @@ cfg_if! { } } - impl crate::fmt::Debug for __c_anonymous_posix_spawn_fae { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_posix_spawn_fae { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { unsafe { f.debug_struct("__c_anonymous_posix_fae") .field("open", &self.open) @@ -1353,8 +1351,8 @@ cfg_if! { } } - impl crate::hash::Hash for __c_anonymous_posix_spawn_fae { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_posix_spawn_fae { + fn hash(&self, state: &mut H) { unsafe { self.open.hash(state); self.dup2.hash(state); @@ -1370,8 +1368,8 @@ cfg_if! { } } - impl crate::fmt::Debug for __c_anonymous_ifc_ifcu { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_ifc_ifcu { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { unsafe { f.debug_struct("__c_anonymous_ifc_ifcu") .field("ifcu_buf", &self.ifcu_buf) @@ -1381,8 +1379,8 @@ cfg_if! { } } - impl crate::hash::Hash for __c_anonymous_ifc_ifcu { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_ifc_ifcu { + fn hash(&self, state: &mut H) { unsafe { self.ifcu_buf.hash(state); self.ifcu_req.hash(state); @@ -2440,20 +2438,19 @@ const_fn! { f! { pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).offset(_ALIGN(crate::mem::size_of::()) as isize) + (cmsg as *mut c_uchar).offset(_ALIGN(mem::size_of::()) as isize) } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - _ALIGN(crate::mem::size_of::()) as c_uint + length + _ALIGN(mem::size_of::()) as c_uint + length } pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { return crate::CMSG_FIRSTHDR(mhdr); }; - let next = cmsg as usize - + _ALIGN((*cmsg).cmsg_len as usize) - + _ALIGN(crate::mem::size_of::()); + let next = + cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { 0 as *mut cmsghdr @@ -2463,7 +2460,7 @@ f! { } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (_ALIGN(crate::mem::size_of::()) + _ALIGN(length as usize)) as c_uint + (_ALIGN(mem::size_of::()) + _ALIGN(length as usize)) as c_uint } // dirfd() is a macro on netbsd to access @@ -2475,7 +2472,7 @@ f! { pub fn SOCKCREDSIZE(ngrps: usize) -> usize { let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 }; - crate::mem::size_of::() + crate::mem::size_of::() * ngrps + mem::size_of::() + mem::size_of::() * ngrps } pub fn PROT_MPROTECT(x: c_int) -> c_int { diff --git a/src/unix/bsd/netbsdlike/netbsd/powerpc.rs b/src/unix/bsd/netbsdlike/netbsd/powerpc.rs index 1d74f171aa01c..a086396ed610a 100644 --- a/src/unix/bsd/netbsdlike/netbsd/powerpc.rs +++ b/src/unix/bsd/netbsdlike/netbsd/powerpc.rs @@ -1,11 +1,12 @@ -use crate::{c_double, c_int, PT_FIRSTMACH}; +use crate::prelude::*; +use crate::PT_FIRSTMACH; pub type c_long = i32; pub type c_ulong = u32; pub type c_char = u8; pub type __cpu_simple_lock_nv_t = c_int; -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const PT_STEP: c_int = PT_FIRSTMACH + 0; pub const PT_GETREGS: c_int = PT_FIRSTMACH + 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs index 0eddbc0bea115..b5e72084d5aa1 100644 --- a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs @@ -1,6 +1,6 @@ use PT_FIRSTMACH; -use crate::{c_double, c_int}; +use crate::prelude::*; pub type c_long = i64; pub type c_ulong = u64; @@ -26,7 +26,7 @@ s_no_extra_traits! { } } -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const PT_GETREGS: c_int = PT_FIRSTMACH + 0; pub const PT_SETREGS: c_int = PT_FIRSTMACH + 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/sparc64.rs b/src/unix/bsd/netbsdlike/netbsd/sparc64.rs index ff0320a9a81da..d564f58a3e688 100644 --- a/src/unix/bsd/netbsdlike/netbsd/sparc64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/sparc64.rs @@ -1,4 +1,4 @@ -use crate::c_uchar; +use crate::prelude::*; pub type c_long = i64; pub type c_ulong = u64; diff --git a/src/unix/bsd/netbsdlike/netbsd/x86.rs b/src/unix/bsd/netbsdlike/netbsd/x86.rs index db21dc326cc53..3c55792defcbd 100644 --- a/src/unix/bsd/netbsdlike/netbsd/x86.rs +++ b/src/unix/bsd/netbsdlike/netbsd/x86.rs @@ -1,8 +1,8 @@ -use crate::{c_int, c_uchar}; +use crate::prelude::*; pub type c_long = i32; pub type c_ulong = u32; pub type c_char = i8; pub type __cpu_simple_lock_nv_t = c_uchar; -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/x86_64.rs b/src/unix/bsd/netbsdlike/netbsd/x86_64.rs index 28829ee11ea83..f968e36d67aa2 100644 --- a/src/unix/bsd/netbsdlike/netbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/x86_64.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_uchar, c_uint, PT_FIRSTMACH}; +use crate::prelude::*; +use crate::PT_FIRSTMACH; pub type c_long = i64; pub type c_ulong = u64; @@ -22,7 +23,7 @@ s! { } } -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const PT_STEP: c_int = PT_FIRSTMACH + 0; pub const PT_GETREGS: c_int = PT_FIRSTMACH + 1; diff --git a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs index 02f3f1bc61577..bf704757c59d6 100644 --- a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs @@ -1,4 +1,4 @@ -use crate::c_int; +use crate::prelude::*; pub type c_long = i64; pub type c_ulong = u64; @@ -18,6 +18,6 @@ s! { } } -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/arm.rs b/src/unix/bsd/netbsdlike/openbsd/arm.rs index e781fa7484ac1..1e66ed247a2eb 100644 --- a/src/unix/bsd/netbsdlike/openbsd/arm.rs +++ b/src/unix/bsd/netbsdlike/openbsd/arm.rs @@ -1,9 +1,9 @@ -use crate::c_double; +use crate::prelude::*; pub type c_long = i32; pub type c_ulong = u32; pub type c_char = u8; -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index eded05a7bdb9b..515b3ba9d05f4 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1,7 +1,6 @@ +use crate::prelude::*; use crate::unix::bsd::O_SYNC; -use crate::{ - c_int, c_longlong, c_short, c_uchar, c_uint, c_ushort, c_void, cmsghdr, off_t, size_t, -}; +use crate::{cmsghdr, off_t}; pub type clock_t = i64; pub type suseconds_t = c_long; @@ -774,8 +773,8 @@ cfg_if! { impl Eq for dirent {} - impl crate::fmt::Debug for dirent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -787,8 +786,8 @@ cfg_if! { } } - impl crate::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_fileno.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -806,8 +805,8 @@ cfg_if! { impl Eq for sockaddr_storage {} - impl crate::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_len", &self.ss_len) .field("ss_family", &self.ss_family) @@ -815,8 +814,8 @@ cfg_if! { } } - impl crate::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_len.hash(state); self.ss_family.hash(state); } @@ -833,8 +832,8 @@ cfg_if! { impl Eq for siginfo_t {} - impl crate::fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for siginfo_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("siginfo_t") .field("si_signo", &self.si_signo) .field("si_code", &self.si_code) @@ -844,8 +843,8 @@ cfg_if! { } } - impl crate::hash::Hash for siginfo_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for siginfo_t { + fn hash(&self, state: &mut H) { self.si_signo.hash(state); self.si_code.hash(state); self.si_errno.hash(state); @@ -871,8 +870,8 @@ cfg_if! { impl Eq for lastlog {} - impl crate::fmt::Debug for lastlog { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for lastlog { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("lastlog") .field("ll_time", &self.ll_time) // FIXME: .field("ll_line", &self.ll_line) @@ -881,8 +880,8 @@ cfg_if! { } } - impl crate::hash::Hash for lastlog { - fn hash(&self, state: &mut H) { + impl hash::Hash for lastlog { + fn hash(&self, state: &mut H) { self.ll_time.hash(state); self.ll_line.hash(state); self.ll_host.hash(state); @@ -912,8 +911,8 @@ cfg_if! { impl Eq for utmp {} - impl crate::fmt::Debug for utmp { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utmp { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utmp") // FIXME: .field("ut_line", &self.ut_line) // FIXME: .field("ut_name", &self.ut_name) @@ -923,8 +922,8 @@ cfg_if! { } } - impl crate::hash::Hash for utmp { - fn hash(&self, state: &mut H) { + impl hash::Hash for utmp { + fn hash(&self, state: &mut H) { self.ut_line.hash(state); self.ut_name.hash(state); self.ut_host.hash(state); @@ -945,16 +944,16 @@ cfg_if! { impl Eq for mount_info {} - impl crate::fmt::Debug for mount_info { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for mount_info { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("mount_info") // FIXME: .field("align", &self.align) .finish() } } - impl crate::hash::Hash for mount_info { - fn hash(&self, state: &mut H) { + impl hash::Hash for mount_info { + fn hash(&self, state: &mut H) { unsafe { self.align.hash(state) }; } } @@ -977,8 +976,8 @@ cfg_if! { impl Eq for __c_anonymous_ifr_ifru {} - impl crate::fmt::Debug for __c_anonymous_ifr_ifru { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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 }) @@ -993,8 +992,8 @@ cfg_if! { } } - impl crate::hash::Hash for __c_anonymous_ifr_ifru { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_ifr_ifru { + fn hash(&self, state: &mut H) { unsafe { self.ifru_addr.hash(state); self.ifru_dstaddr.hash(state); @@ -1054,8 +1053,8 @@ cfg_if! { impl Eq for statfs {} - impl crate::fmt::Debug for statfs { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for statfs { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("statfs") .field("f_flags", &self.f_flags) .field("f_bsize", &self.f_bsize) @@ -1083,8 +1082,8 @@ cfg_if! { } } - impl crate::hash::Hash for statfs { - fn hash(&self, state: &mut H) { + impl hash::Hash for statfs { + fn hash(&self, state: &mut H) { self.f_flags.hash(state); self.f_bsize.hash(state); self.f_iosize.hash(state); @@ -1741,7 +1740,7 @@ pub const NTFS_MFLAG_ALLNAMES: c_int = 0x2; pub const TMPFS_ARGS_VERSION: c_int = 1; const SI_MAXSZ: size_t = 128; -const SI_PAD: size_t = (SI_MAXSZ / crate::mem::size_of::()) - 3; +const SI_PAD: size_t = (SI_MAXSZ / mem::size_of::()) - 3; pub const MAP_STACK: c_int = 0x4000; pub const MAP_CONCEAL: c_int = 0x8000; @@ -1967,20 +1966,19 @@ const_fn! { f! { pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).offset(_ALIGN(crate::mem::size_of::()) as isize) + (cmsg as *mut c_uchar).offset(_ALIGN(mem::size_of::()) as isize) } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - _ALIGN(crate::mem::size_of::()) as c_uint + length + _ALIGN(mem::size_of::()) as c_uint + length } pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { return crate::CMSG_FIRSTHDR(mhdr); }; - let next = cmsg as usize - + _ALIGN((*cmsg).cmsg_len as usize) - + _ALIGN(crate::mem::size_of::()); + let next = + cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { 0 as *mut cmsghdr @@ -1990,7 +1988,7 @@ f! { } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (_ALIGN(crate::mem::size_of::()) + _ALIGN(length as usize)) as c_uint + (_ALIGN(mem::size_of::()) + _ALIGN(length as usize)) as c_uint } pub fn major(dev: crate::dev_t) -> c_uint { diff --git a/src/unix/bsd/netbsdlike/openbsd/powerpc.rs b/src/unix/bsd/netbsdlike/openbsd/powerpc.rs index e781fa7484ac1..1e66ed247a2eb 100644 --- a/src/unix/bsd/netbsdlike/openbsd/powerpc.rs +++ b/src/unix/bsd/netbsdlike/openbsd/powerpc.rs @@ -1,9 +1,9 @@ -use crate::c_double; +use crate::prelude::*; pub type c_long = i32; pub type c_ulong = u32; pub type c_char = u8; -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs b/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs index 7aec9eb638772..cb808719fb8ea 100644 --- a/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs @@ -1,7 +1,9 @@ +use crate::prelude::*; + pub type c_long = i64; pub type c_ulong = u64; pub type c_char = u8; -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/riscv64.rs b/src/unix/bsd/netbsdlike/openbsd/riscv64.rs index baaab22337c39..6a39f3494dd14 100644 --- a/src/unix/bsd/netbsdlike/openbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/riscv64.rs @@ -1,4 +1,4 @@ -use crate::c_int; +use crate::prelude::*; pub type c_long = i64; pub type c_ulong = u64; @@ -23,6 +23,6 @@ s! { } } -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/x86.rs b/src/unix/bsd/netbsdlike/openbsd/x86.rs index bad2eddc84b48..4b495d0c16de8 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86.rs @@ -1,9 +1,9 @@ -use crate::c_int; +use crate::prelude::*; pub type c_long = i32; pub type c_ulong = u32; pub type c_char = i8; -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs index d75b20f8fcebb..4380c1d118922 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs @@ -1,4 +1,5 @@ -use crate::{c_int, PT_FIRSTMACH}; +use crate::prelude::*; +use crate::PT_FIRSTMACH; pub type c_long = i64; pub type c_ulong = u64; @@ -83,8 +84,8 @@ cfg_if! { } } impl Eq for fxsave64 {} - impl crate::fmt::Debug for fxsave64 { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for fxsave64 { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("fxsave64") .field("fx_fcw", &{ self.fx_fcw }) .field("fx_fsw", &{ self.fx_fsw }) @@ -99,8 +100,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for fxsave64 { - fn hash(&self, state: &mut H) { + impl hash::Hash for fxsave64 { + fn hash(&self, state: &mut H) { { self.fx_fcw }.hash(state); { self.fx_fsw }.hash(state); { self.fx_ftw }.hash(state); @@ -116,7 +117,7 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = crate::mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 9bee01185f6a0..78477a10bfc51 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1,6 +1,4 @@ -use crate::{ - c_double, c_int, c_short, c_uchar, c_uint, c_ushort, c_void, intptr_t, size_t, ssize_t, -}; +use crate::prelude::*; pub type rlim_t = crate::uintptr_t; pub type sa_family_t = u8; @@ -521,8 +519,8 @@ cfg_if! { impl Eq for utmpx {} - impl crate::fmt::Debug for utmpx { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utmpx { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utmpx") .field("ut_type", &self.ut_type) .field("ut_tv", &self.ut_tv) @@ -536,8 +534,8 @@ cfg_if! { } } - impl crate::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_type.hash(state); self.ut_tv.hash(state); self.ut_id.hash(state); @@ -560,8 +558,8 @@ cfg_if! { } } impl Eq for sockaddr_un {} - impl crate::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_un") .field("sun_len", &self.sun_len) .field("sun_family", &self.sun_family) @@ -569,8 +567,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { self.sun_len.hash(state); self.sun_family.hash(state); self.sun_path.hash(state); @@ -595,8 +593,8 @@ cfg_if! { } } impl Eq for sockaddr_storage {} - impl crate::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_len", &self.ss_len) .field("ss_family", &self.ss_family) @@ -606,8 +604,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_len.hash(state); self.ss_family.hash(state); self.__ss_pad1.hash(state); @@ -631,8 +629,8 @@ cfg_if! { } } impl Eq for dirent {} - impl crate::fmt::Debug for dirent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for dirent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("dirent") .field("d_dev", &self.d_dev) .field("d_pdev", &self.d_pdev) @@ -643,8 +641,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_dev.hash(state); self.d_pdev.hash(state); self.d_ino.hash(state); @@ -663,8 +661,8 @@ cfg_if! { } } impl Eq for sigevent {} - impl crate::fmt::Debug for sigevent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sigevent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sigevent") .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) @@ -673,8 +671,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); self.sigev_signo.hash(state); self.sigev_value.hash(state); @@ -1566,13 +1564,13 @@ pub const POSIX_SPAWN_SETSID: c_int = 0x40; const_fn! { {const} fn CMSG_ALIGN(len: usize) -> usize { - len + crate::mem::size_of::() - 1 & !(crate::mem::size_of::() - 1) + len + mem::size_of::() - 1 & !(mem::size_of::() - 1) } } f! { pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= crate::mem::size_of::() { + if (*mhdr).msg_controllen as usize >= mem::size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { 0 as *mut cmsghdr @@ -1580,15 +1578,15 @@ f! { } pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).offset(CMSG_ALIGN(crate::mem::size_of::()) as isize) + (cmsg as *mut c_uchar).offset(CMSG_ALIGN(mem::size_of::()) as isize) } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(crate::mem::size_of::())) as c_uint + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(mem::size_of::())) as c_uint } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - CMSG_ALIGN(crate::mem::size_of::()) as c_uint + length + CMSG_ALIGN(mem::size_of::()) as c_uint + length } pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { @@ -1597,7 +1595,7 @@ f! { }; let next = cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize) - + CMSG_ALIGN(crate::mem::size_of::()); + + CMSG_ALIGN(mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { 0 as *mut cmsghdr @@ -1608,20 +1606,20 @@ f! { pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs index 4d51a38e97f41..84ca0e146294b 100644 --- a/src/unix/haiku/native.rs +++ b/src/unix/haiku/native.rs @@ -1,4 +1,5 @@ -use crate::{c_char, c_double, c_int, c_uint, c_ulong, c_void, off_t, size_t, ssize_t}; +use crate::off_t; +use crate::prelude::*; // This module contains bindings to the native Haiku API. The Haiku API // originates from BeOS, and it was the original way to perform low level @@ -500,8 +501,8 @@ cfg_if! { } } impl Eq for cpuid_info {} - impl crate::fmt::Debug for cpuid_info { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for cpuid_info { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { unsafe { f.debug_struct("cpuid_info") .field("eax_0", &self.eax_0) @@ -525,8 +526,8 @@ cfg_if! { } } impl Eq for __c_anonymous_cpu_topology_info_data {} - impl crate::fmt::Debug for __c_anonymous_cpu_topology_info_data { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_cpu_topology_info_data { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { unsafe { f.debug_struct("__c_anonymous_cpu_topology_info_data") .field("root", &self.root) @@ -544,8 +545,8 @@ cfg_if! { } impl Eq for cpu_topology_node_info {} - impl crate::fmt::Debug for cpu_topology_node_info { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for cpu_topology_node_info { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("cpu_topology_node_info") .field("id", &self.id) .field("type", &self.type_) diff --git a/src/unix/haiku/x86_64.rs b/src/unix/haiku/x86_64.rs index 0b6f03b6daf6d..e77588df59f4f 100644 --- a/src/unix/haiku/x86_64.rs +++ b/src/unix/haiku/x86_64.rs @@ -1,4 +1,4 @@ -use crate::{c_uchar, c_uint, c_ulong, c_ushort}; +use crate::prelude::*; s_no_extra_traits! { pub struct fpu_state { @@ -83,8 +83,8 @@ cfg_if! { } } impl Eq for fpu_state {} - impl crate::fmt::Debug for fpu_state { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for fpu_state { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("fpu_state") .field("control", &self.control) .field("status", &self.status) @@ -100,8 +100,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for fpu_state { - fn hash(&self, state: &mut H) { + impl hash::Hash for fpu_state { + fn hash(&self, state: &mut H) { self.control.hash(state); self.status.hash(state); self.tag.hash(state); @@ -128,8 +128,8 @@ cfg_if! { } } impl Eq for xstate_hdr {} - impl crate::fmt::Debug for xstate_hdr { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for xstate_hdr { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("xstate_hdr") .field("bv", &self.bv) .field("xcomp_bv", &self.xcomp_bv) @@ -137,8 +137,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for xstate_hdr { - fn hash(&self, state: &mut H) { + impl hash::Hash for xstate_hdr { + fn hash(&self, state: &mut H) { self.bv.hash(state); self.xcomp_bv.hash(state); self._reserved.hash(state); @@ -157,8 +157,8 @@ cfg_if! { } } impl Eq for savefpu {} - impl crate::fmt::Debug for savefpu { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for savefpu { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("savefpu") .field("fp_fxsave", &self.fp_fxsave) .field("fp_xstate", &self.fp_xstate) @@ -166,8 +166,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for savefpu { - fn hash(&self, state: &mut H) { + impl hash::Hash for savefpu { + fn hash(&self, state: &mut H) { self.fp_fxsave.hash(state); self.fp_xstate.hash(state); self._fp_ymm.hash(state); @@ -198,8 +198,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl crate::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("mcontext_t") .field("rax", &self.rax) .field("rbx", &self.rbx) @@ -223,8 +223,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.rax.hash(state); self.rbx.hash(state); self.rcx.hash(state); @@ -256,8 +256,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl crate::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ucontext_t") .field("uc_link", &self.uc_link) .field("uc_sigmask", &self.uc_sigmask) @@ -266,8 +266,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_link.hash(state); self.uc_sigmask.hash(state); self.uc_stack.hash(state); diff --git a/src/unix/hurd/b32.rs b/src/unix/hurd/b32.rs index d98b97268fbb1..5223d549dd025 100644 --- a/src/unix/hurd/b32.rs +++ b/src/unix/hurd/b32.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_longlong, c_uchar, c_uint, c_ulonglong, c_ushort}; +use crate::prelude::*; pub type c_long = i32; pub type c_ulong = u32; diff --git a/src/unix/hurd/b64.rs b/src/unix/hurd/b64.rs index 41ba87ae59bf3..1954c27f88563 100644 --- a/src/unix/hurd/b64.rs +++ b/src/unix/hurd/b64.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_uchar, c_uint}; +use crate::prelude::*; pub type c_long = i64; pub type c_ulong = u64; diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index c6720e5534841..1a04a725ada56 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -1,9 +1,7 @@ #![allow(dead_code)] -use crate::{ - c_double, c_int, c_schar, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, intptr_t, - size_t, ssize_t, -}; +use crate::c_schar; +use crate::prelude::*; // types pub type c_char = i8; @@ -1088,8 +1086,8 @@ cfg_if! { impl Eq for utmpx {} - impl crate::fmt::Debug for utmpx { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utmpx { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utmpx") .field("ut_type", &self.ut_type) .field("ut_pid", &self.ut_pid) @@ -1106,8 +1104,8 @@ cfg_if! { } } - impl crate::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_type.hash(state); self.ut_pid.hash(state); self.ut_line.hash(state); @@ -3438,14 +3436,14 @@ const _UTSNAME_LENGTH: usize = 1024; const_fn! { {const} fn CMSG_ALIGN(len: usize) -> usize { - len + crate::mem::size_of::() - 1 & !(crate::mem::size_of::() - 1) + len + mem::size_of::() - 1 & !(mem::size_of::() - 1) } } // functions f! { pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= crate::mem::size_of::() { + if (*mhdr).msg_controllen as usize >= mem::size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { 0 as *mut cmsghdr @@ -3457,15 +3455,15 @@ f! { } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(crate::mem::size_of::())) as c_uint + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(mem::size_of::())) as c_uint } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - CMSG_ALIGN(crate::mem::size_of::()) as c_uint + length + CMSG_ALIGN(mem::size_of::()) as c_uint + length } pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { - if ((*cmsg).cmsg_len as usize) < crate::mem::size_of::() { + if ((*cmsg).cmsg_len as usize) < mem::size_of::() { return 0 as *mut cmsghdr; }; let next = (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; @@ -3480,8 +3478,8 @@ f! { } pub fn CPU_ALLOC_SIZE(count: c_int) -> size_t { - let _dummy: cpu_set_t = crate::mem::zeroed(); - let size_in_bits = 8 * crate::mem::size_of_val(&_dummy.bits[0]); + let _dummy: cpu_set_t = mem::zeroed(); + let size_in_bits = 8 * mem::size_of_val(&_dummy.bits[0]); ((count as size_t + size_in_bits - 1) / 8) as size_t } @@ -3492,28 +3490,28 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); + let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); 0 != (cpuset.bits[idx] & (1 << offset)) } pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int { let mut s: u32 = 0; - let size_of_mask = crate::mem::size_of_val(&cpuset.bits[0]); + let size_of_mask = mem::size_of_val(&cpuset.bits[0]); for i in cpuset.bits[..(size / size_of_mask)].iter() { s += i.count_ones(); } @@ -3521,7 +3519,7 @@ f! { } pub fn CPU_COUNT(cpuset: &cpu_set_t) -> c_int { - CPU_COUNT_S(crate::mem::size_of::(), cpuset) + CPU_COUNT_S(mem::size_of::(), cpuset) } pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { @@ -3546,20 +3544,20 @@ f! { pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } diff --git a/src/unix/linux_like/android/b32/arm.rs b/src/unix/linux_like/android/b32/arm.rs index c9bf6c8bee3dc..8a3b02dcc4022 100644 --- a/src/unix/linux_like/android/b32/arm.rs +++ b/src/unix/linux_like/android/b32/arm.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_long, c_longlong, c_ulong}; +use crate::prelude::*; pub type c_char = u8; pub type wchar_t = u32; @@ -66,16 +66,16 @@ cfg_if! { } } impl Eq for __c_anonymous_uc_sigmask_with_padding {} - impl crate::fmt::Debug for __c_anonymous_uc_sigmask_with_padding { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_uc_sigmask_with_padding { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("uc_sigmask_with_padding") .field("uc_sigmask_with_padding", &self.uc_sigmask) // Ignore padding .finish() } } - impl crate::hash::Hash for __c_anonymous_uc_sigmask_with_padding { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_uc_sigmask_with_padding { + fn hash(&self, state: &mut H) { self.uc_sigmask.hash(state) // Ignore padding } @@ -87,15 +87,15 @@ cfg_if! { } } impl Eq for __c_anonymous_uc_sigmask {} - impl crate::fmt::Debug for __c_anonymous_uc_sigmask { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_uc_sigmask { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("uc_sigmask") .field("uc_sigmask", unsafe { &self.uc_sigmask }) .finish() } } - impl crate::hash::Hash for __c_anonymous_uc_sigmask { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_uc_sigmask { + fn hash(&self, state: &mut H) { unsafe { self.uc_sigmask.hash(state) } } } @@ -112,8 +112,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl crate::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -128,8 +128,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); diff --git a/src/unix/linux_like/android/b32/mod.rs b/src/unix/linux_like/android/b32/mod.rs index 8ef7a917007a1..3e3485757ce98 100644 --- a/src/unix/linux_like/android/b32/mod.rs +++ b/src/unix/linux_like/android/b32/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_longlong, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, size_t}; +use crate::prelude::*; // The following definitions are correct for arm and i686, // but may be wrong for mips @@ -185,8 +185,8 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { - impl crate::fmt::Debug for sigset64_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sigset64_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sigset64_t") .field("__bits", &self.__bits) .finish() diff --git a/src/unix/linux_like/android/b32/x86/mod.rs b/src/unix/linux_like/android/b32/x86/mod.rs index a456ad6a4a34b..8421f389ed9c8 100644 --- a/src/unix/linux_like/android/b32/x86/mod.rs +++ b/src/unix/linux_like/android/b32/x86/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_long, c_ulong}; +use crate::prelude::*; pub type c_char = i8; pub type wchar_t = i32; @@ -68,16 +68,16 @@ cfg_if! { } } impl Eq for __c_anonymous_uc_sigmask_with_padding {} - impl crate::fmt::Debug for __c_anonymous_uc_sigmask_with_padding { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_uc_sigmask_with_padding { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("uc_sigmask_with_padding") .field("uc_sigmask_with_padding", &self.uc_sigmask) // Ignore padding .finish() } } - impl crate::hash::Hash for __c_anonymous_uc_sigmask_with_padding { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_uc_sigmask_with_padding { + fn hash(&self, state: &mut H) { self.uc_sigmask.hash(state) // Ignore padding } @@ -89,15 +89,15 @@ cfg_if! { } } impl Eq for __c_anonymous_uc_sigmask {} - impl crate::fmt::Debug for __c_anonymous_uc_sigmask { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_uc_sigmask { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("uc_sigmask") .field("uc_sigmask", unsafe { &self.uc_sigmask }) .finish() } } - impl crate::hash::Hash for __c_anonymous_uc_sigmask { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_uc_sigmask { + fn hash(&self, state: &mut H) { unsafe { self.uc_sigmask.hash(state) } } } @@ -113,8 +113,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl crate::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -128,8 +128,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index aceb52c0722d6..39d8bc07c4dd5 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_longlong, c_uint, c_ulong, c_ulonglong, off64_t, size_t}; +use crate::off64_t; +use crate::prelude::*; pub type c_char = u8; pub type wchar_t = u32; diff --git a/src/unix/linux_like/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs index 73390421602d1..ffa79ead870e8 100644 --- a/src/unix/linux_like/android/b64/mod.rs +++ b/src/unix/linux_like/android/b64/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_uint, c_ulonglong, c_ushort, c_void, size_t}; +use crate::prelude::*; // The following definitions are correct for aarch64 and x86_64, // but may be wrong for mips64 @@ -157,8 +157,8 @@ cfg_if! { impl Eq for pthread_mutex_t {} - impl crate::fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_mutex_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_mutex_t") .field("value", &self.value) // FIXME: .field("__reserved", &self.__reserved) @@ -166,8 +166,8 @@ cfg_if! { } } - impl crate::hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_mutex_t { + fn hash(&self, state: &mut H) { self.value.hash(state); self.__reserved.hash(state); } @@ -186,8 +186,8 @@ cfg_if! { impl Eq for pthread_cond_t {} - impl crate::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_cond_t") .field("value", &self.value) // FIXME: .field("__reserved", &self.__reserved) @@ -195,8 +195,8 @@ cfg_if! { } } - impl crate::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { self.value.hash(state); self.__reserved.hash(state); } @@ -219,8 +219,8 @@ cfg_if! { impl Eq for pthread_rwlock_t {} - impl crate::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_rwlock_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_rwlock_t") .field("numLocks", &self.numLocks) .field("writerThreadId", &self.writerThreadId) @@ -232,8 +232,8 @@ cfg_if! { } } - impl crate::hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_rwlock_t { + fn hash(&self, state: &mut H) { self.numLocks.hash(state); self.writerThreadId.hash(state); self.pendingReaders.hash(state); @@ -243,8 +243,8 @@ cfg_if! { } } - impl crate::fmt::Debug for sigset64_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sigset64_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sigset64_t") .field("__bits", &self.__bits) .finish() diff --git a/src/unix/linux_like/android/b64/riscv64/mod.rs b/src/unix/linux_like/android/b64/riscv64/mod.rs index 8fff9a6793335..f214fe33702a4 100644 --- a/src/unix/linux_like/android/b64/riscv64/mod.rs +++ b/src/unix/linux_like/android/b64/riscv64/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_longlong, c_uint, c_ulong, c_ulonglong, off64_t, size_t}; +use crate::off64_t; +use crate::prelude::*; pub type c_char = i8; pub type wchar_t = u32; diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index 609def88b2d97..2118b926af9cb 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_longlong, c_uint, c_ulong, c_ulonglong, c_ushort, off64_t, size_t}; +use crate::off64_t; +use crate::prelude::*; pub type c_char = i8; pub type wchar_t = i32; @@ -127,15 +128,15 @@ cfg_if! { } } impl Eq for __c_anonymous_uc_sigmask {} - impl crate::fmt::Debug for __c_anonymous_uc_sigmask { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_uc_sigmask { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("uc_sigmask") .field("uc_sigmask", unsafe { &self.uc_sigmask }) .finish() } } - impl crate::hash::Hash for __c_anonymous_uc_sigmask { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_uc_sigmask { + fn hash(&self, state: &mut H) { unsafe { self.uc_sigmask.hash(state) } } } @@ -202,8 +203,8 @@ cfg_if! { } } impl Eq for _libc_fpxreg {} - impl crate::fmt::Debug for _libc_fpxreg { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for _libc_fpxreg { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("_libc_fpxreg") .field("significand", &self.significand) .field("exponent", &self.exponent) @@ -211,8 +212,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for _libc_fpxreg { - fn hash(&self, state: &mut H) { + impl hash::Hash for _libc_fpxreg { + fn hash(&self, state: &mut H) { self.significand.hash(state); self.exponent.hash(state); // Ignore padding field @@ -235,8 +236,8 @@ cfg_if! { } } impl Eq for _libc_fpstate {} - impl crate::fmt::Debug for _libc_fpstate { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for _libc_fpstate { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("_libc_fpstate") .field("cwd", &self.cwd) .field("swd", &self.swd) @@ -252,8 +253,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for _libc_fpstate { - fn hash(&self, state: &mut H) { + impl hash::Hash for _libc_fpstate { + fn hash(&self, state: &mut H) { self.cwd.hash(state); self.swd.hash(state); self.ftw.hash(state); @@ -275,8 +276,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl crate::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("mcontext_t") .field("gregs", &self.gregs) .field("fpregs", &self.fpregs) @@ -284,8 +285,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { self.gregs.hash(state); self.fpregs.hash(state); // Ignore padding field @@ -303,8 +304,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl crate::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -315,8 +316,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); @@ -348,8 +349,8 @@ cfg_if! { impl Eq for user_fpregs_struct {} - impl crate::fmt::Debug for user_fpregs_struct { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for user_fpregs_struct { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("user_fpregs_struct") .field("cwd", &self.cwd) .field("swd", &self.swd) @@ -366,8 +367,8 @@ cfg_if! { } } - impl crate::hash::Hash for user_fpregs_struct { - fn hash(&self, state: &mut H) { + impl hash::Hash for user_fpregs_struct { + fn hash(&self, state: &mut H) { self.cwd.hash(state); self.swd.hash(state); self.ftw.hash(state); diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 8c3c488cbcc82..8f477be82c941 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1,8 +1,6 @@ //! Android-specific definitions for linux-like values -use crate::{ - c_int, c_longlong, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, size_t, ssize_t, -}; +use crate::prelude::*; pub type clock_t = c_long; pub type time_t = c_long; @@ -661,8 +659,8 @@ cfg_if! { } } impl Eq for sockaddr_nl {} - impl crate::fmt::Debug for sockaddr_nl { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_nl { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_nl") .field("nl_family", &self.nl_family) .field("nl_pid", &self.nl_pid) @@ -670,8 +668,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sockaddr_nl { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_nl { + fn hash(&self, state: &mut H) { self.nl_family.hash(state); self.nl_pid.hash(state); self.nl_groups.hash(state); @@ -694,8 +692,8 @@ cfg_if! { impl Eq for dirent {} - impl crate::fmt::Debug for dirent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for dirent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -706,8 +704,8 @@ cfg_if! { } } - impl crate::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -732,8 +730,8 @@ cfg_if! { impl Eq for dirent64 {} - impl crate::fmt::Debug for dirent64 { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for dirent64 { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("dirent64") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -744,8 +742,8 @@ cfg_if! { } } - impl crate::hash::Hash for dirent64 { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent64 { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -766,8 +764,8 @@ cfg_if! { impl Eq for siginfo_t {} - impl crate::fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for siginfo_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("siginfo_t") .field("si_signo", &self.si_signo) .field("si_errno", &self.si_errno) @@ -778,8 +776,8 @@ cfg_if! { } } - impl crate::hash::Hash for siginfo_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for siginfo_t { + fn hash(&self, state: &mut H) { self.si_signo.hash(state); self.si_errno.hash(state); self.si_code.hash(state); @@ -806,8 +804,8 @@ cfg_if! { impl Eq for lastlog {} - impl crate::fmt::Debug for lastlog { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for lastlog { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("lastlog") .field("ll_time", &self.ll_time) .field("ll_line", &self.ll_line) @@ -816,8 +814,8 @@ cfg_if! { } } - impl crate::hash::Hash for lastlog { - fn hash(&self, state: &mut H) { + impl hash::Hash for lastlog { + fn hash(&self, state: &mut H) { self.ll_time.hash(state); self.ll_line.hash(state); self.ll_host.hash(state); @@ -854,8 +852,8 @@ cfg_if! { impl Eq for utmp {} - impl crate::fmt::Debug for utmp { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utmp { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utmp") .field("ut_type", &self.ut_type) .field("ut_pid", &self.ut_pid) @@ -872,8 +870,8 @@ cfg_if! { } } - impl crate::hash::Hash for utmp { - fn hash(&self, state: &mut H) { + impl hash::Hash for utmp { + fn hash(&self, state: &mut H) { self.ut_type.hash(state); self.ut_pid.hash(state); self.ut_line.hash(state); @@ -908,8 +906,8 @@ cfg_if! { impl Eq for sockaddr_alg {} - impl crate::fmt::Debug for sockaddr_alg { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_alg { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_alg") .field("salg_family", &self.salg_family) .field("salg_type", &self.salg_type) @@ -920,8 +918,8 @@ cfg_if! { } } - impl crate::hash::Hash for sockaddr_alg { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_alg { + fn hash(&self, state: &mut H) { self.salg_family.hash(state); self.salg_type.hash(state); self.salg_feat.hash(state); @@ -939,8 +937,8 @@ cfg_if! { } impl Eq for uinput_setup {} - impl crate::fmt::Debug for uinput_setup { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for uinput_setup { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("uinput_setup") .field("id", &self.id) .field("name", &&self.name[..]) @@ -949,8 +947,8 @@ cfg_if! { } } - impl crate::hash::Hash for uinput_setup { - fn hash(&self, state: &mut H) { + impl hash::Hash for uinput_setup { + fn hash(&self, state: &mut H) { self.id.hash(state); self.name.hash(state); self.ff_effects_max.hash(state); @@ -970,8 +968,8 @@ cfg_if! { } impl Eq for uinput_user_dev {} - impl crate::fmt::Debug for uinput_user_dev { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for uinput_user_dev { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("uinput_setup") .field("name", &&self.name[..]) .field("id", &self.id) @@ -984,8 +982,8 @@ cfg_if! { } } - impl crate::hash::Hash for uinput_user_dev { - fn hash(&self, state: &mut H) { + impl hash::Hash for uinput_user_dev { + fn hash(&self, state: &mut H) { self.name.hash(state); self.id.hash(state); self.ff_effects_max.hash(state); @@ -996,8 +994,8 @@ cfg_if! { } } - impl crate::fmt::Debug for __c_anonymous_ifr_ifru { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_ifr_ifru { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ifr_ifru") .field("ifru_addr", unsafe { &self.ifru_addr }) .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) @@ -1015,8 +1013,8 @@ cfg_if! { .finish() } } - impl crate::fmt::Debug for ifreq { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -1024,16 +1022,16 @@ cfg_if! { } } - impl crate::fmt::Debug for __c_anonymous_ifc_ifcu { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_ifc_ifcu { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ifr_ifru") .field("ifcu_buf", unsafe { &self.ifcu_buf }) .field("ifcu_req", unsafe { &self.ifcu_req }) .finish() } } - impl crate::fmt::Debug for ifconf { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ifconf { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ifconf") .field("ifc_len", &self.ifc_len) .field("ifc_ifcu", &self.ifc_ifcu) @@ -1059,8 +1057,8 @@ cfg_if! { impl Eq for af_alg_iv {} #[allow(deprecated)] - impl crate::fmt::Debug for af_alg_iv { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for af_alg_iv { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("af_alg_iv") .field("ivlen", &self.ivlen) .finish() @@ -1068,8 +1066,8 @@ cfg_if! { } #[allow(deprecated)] - impl crate::hash::Hash for af_alg_iv { - fn hash(&self, state: &mut H) { + impl hash::Hash for af_alg_iv { + fn hash(&self, state: &mut H) { self.as_slice().hash(state); } } @@ -1082,8 +1080,8 @@ cfg_if! { } } impl Eq for prop_info {} - impl crate::fmt::Debug for prop_info { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for prop_info { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("prop_info") .field("__name", &self.__name) .field("__serial", &self.__serial) @@ -3620,8 +3618,8 @@ f! { } pub fn CPU_ALLOC_SIZE(count: c_int) -> size_t { - let _dummy: cpu_set_t = crate::mem::zeroed(); - let size_in_bits = 8 * crate::mem::size_of_val(&_dummy.__bits[0]); + let _dummy: cpu_set_t = mem::zeroed(); + let size_in_bits = 8 * mem::size_of_val(&_dummy.__bits[0]); ((count as size_t + size_in_bits - 1) / 8) as size_t } @@ -3632,28 +3630,28 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc + let size_in_bits = 8 * mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.__bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc + let size_in_bits = 8 * mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.__bits[idx] &= !(1 << offset); () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.__bits[0]); + let size_in_bits = 8 * mem::size_of_val(&cpuset.__bits[0]); let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); 0 != (cpuset.__bits[idx] & (1 << offset)) } pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int { let mut s: u32 = 0; - let size_of_mask = crate::mem::size_of_val(&cpuset.__bits[0]); + let size_of_mask = mem::size_of_val(&cpuset.__bits[0]); for i in cpuset.__bits[..(size / size_of_mask)].iter() { s += i.count_ones(); } @@ -3661,7 +3659,7 @@ f! { } pub fn CPU_COUNT(cpuset: &cpu_set_t) -> c_int { - CPU_COUNT_S(crate::mem::size_of::(), cpuset) + CPU_COUNT_S(mem::size_of::(), cpuset) } pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { diff --git a/src/unix/linux_like/emscripten/lfs64.rs b/src/unix/linux_like/emscripten/lfs64.rs index 70d10dba393b1..06be875446bb6 100644 --- a/src/unix/linux_like/emscripten/lfs64.rs +++ b/src/unix/linux_like/emscripten/lfs64.rs @@ -1,4 +1,5 @@ -use crate::{c_char, c_int, c_void, off64_t, size_t, ssize_t}; +use crate::off64_t; +use crate::prelude::*; // In-sync with ../linux/musl/lfs64.rs except for fallocate64, prlimit64 and sendfile64 diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 32d19da2e2a49..866a20cd00722 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_double, c_int, c_short, c_uchar, c_uint, c_ushort, c_void, size_t, ssize_t}; +use crate::prelude::*; pub type c_char = i8; pub type wchar_t = i32; @@ -406,8 +406,8 @@ cfg_if! { } } impl Eq for dirent {} - impl crate::fmt::Debug for dirent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for dirent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -417,8 +417,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -450,8 +450,8 @@ cfg_if! { } } impl Eq for sysinfo {} - impl crate::fmt::Debug for sysinfo { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sysinfo { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sysinfo") .field("uptime", &self.uptime) .field("loads", &self.loads) @@ -470,8 +470,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sysinfo { - fn hash(&self, state: &mut H) { + impl hash::Hash for sysinfo { + fn hash(&self, state: &mut H) { self.uptime.hash(state); self.loads.hash(state); self.totalram.hash(state); @@ -498,8 +498,8 @@ cfg_if! { } } impl Eq for mq_attr {} - impl crate::fmt::Debug for mq_attr { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for mq_attr { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("mq_attr") .field("mq_flags", &self.mq_flags) .field("mq_maxmsg", &self.mq_maxmsg) @@ -508,8 +508,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { + impl hash::Hash for mq_attr { + fn hash(&self, state: &mut H) { self.mq_flags.hash(state); self.mq_maxmsg.hash(state); self.mq_msgsize.hash(state); @@ -523,15 +523,15 @@ cfg_if! { } } impl Eq for pthread_cond_t {} - impl crate::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_cond_t") // FIXME: .field("size", &self.size) .finish() } } - impl crate::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { self.size.hash(state); } } @@ -1414,7 +1414,7 @@ pub const SOMAXCONN: c_int = 128; f! { pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { - if ((*cmsg).cmsg_len as usize) < crate::mem::size_of::() { + if ((*cmsg).cmsg_len as usize) < mem::size_of::() { return 0 as *mut cmsghdr; }; let next = (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; @@ -1433,21 +1433,21 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); + let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); 0 != (cpuset.bits[idx] & (1 << offset)) } diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index 3e7d3a1117d52..10953fe789df3 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, Ioctl}; +use crate::prelude::*; +use crate::Ioctl; s! { pub struct termios2 { @@ -126,8 +127,8 @@ cfg_if! { target_arch = "csky", target_arch = "loongarch64" ))] { - pub const FICLONE: crate::c_ulong = 0x40049409; - pub const FICLONERANGE: crate::c_ulong = 0x4020940D; + pub const FICLONE: c_ulong = 0x40049409; + pub const FICLONERANGE: c_ulong = 0x4020940D; } } diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index 52469befdccc0..950ad5f118dfb 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_ulong, Ioctl}; +use crate::prelude::*; +use crate::Ioctl; s! { pub struct termios2 { diff --git a/src/unix/linux_like/linux/arch/powerpc/mod.rs b/src/unix/linux_like/linux/arch/powerpc/mod.rs index 2c856061d3391..de39df0d8323a 100644 --- a/src/unix/linux_like/linux/arch/powerpc/mod.rs +++ b/src/unix/linux_like/linux/arch/powerpc/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_ulong, Ioctl}; +use crate::prelude::*; +use crate::Ioctl; // arch/powerpc/include/uapi/asm/socket.h diff --git a/src/unix/linux_like/linux/arch/sparc/mod.rs b/src/unix/linux_like/linux/arch/sparc/mod.rs index 40454fde34f5d..829307aa71039 100644 --- a/src/unix/linux_like/linux/arch/sparc/mod.rs +++ b/src/unix/linux_like/linux/arch/sparc/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, Ioctl}; +use crate::prelude::*; +use crate::Ioctl; s! { pub struct termios2 { diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index f318b4ad9223f..f3869723996cb 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_short, c_uint, c_ulong, c_ushort, c_void, off64_t, off_t, size_t}; +use crate::prelude::*; +use crate::{off64_t, off_t}; pub type c_char = u8; pub type wchar_t = u32; @@ -242,8 +243,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl crate::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_link) .field("uc_link", &self.uc_link) @@ -253,8 +254,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); diff --git a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs index 7677f10571912..eb6f70d8fed07 100644 --- a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_short, c_uint, c_ulong, c_ushort, c_void, off64_t, off_t, size_t}; +use crate::prelude::*; +use crate::{off64_t, off_t}; pub type c_char = u8; pub type wchar_t = u32; diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index 2dc51bb4b9fe7..3d252c6253035 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_short, c_uint, c_ulong, c_ushort, c_void, off64_t, off_t, size_t}; +use crate::prelude::*; +use crate::{off64_t, off_t}; pub type c_char = i8; pub type wchar_t = i32; diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 19fe9b23d4ade..73da7739dabf5 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_short, c_uint, c_ulong, c_ushort, c_void, off64_t, off_t, size_t}; +use crate::prelude::*; +use crate::{off64_t, off_t}; pub type c_char = i8; pub type wchar_t = i32; diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index c4550e183de19..adb36cc169fef 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -1,6 +1,7 @@ //! 32-bit specific definitions for linux-like values -use crate::{c_int, c_longlong, c_uint, c_ulonglong, c_ushort, c_void, pthread_mutex_t, size_t}; +use crate::prelude::*; +use crate::pthread_mutex_t; pub type c_long = i32; pub type c_ulong = u32; @@ -49,7 +50,7 @@ s! { pub st_dev: c_ulong, #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - __pad1: crate::c_short, + __pad1: c_short, #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] st_pad1: [c_long; 3], pub st_ino: crate::ino_t, @@ -62,7 +63,7 @@ s! { #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] pub st_rdev: c_ulong, #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - __pad2: crate::c_short, + __pad2: c_short, #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] st_pad2: [c_long; 2], pub st_size: off_t, diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index e2e5088bb390d..75ec2385a1230 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_short, c_uint, c_ulong, c_ushort, c_void, off64_t, off_t, size_t}; +use crate::prelude::*; +use crate::{off64_t, off_t}; pub type c_char = u8; pub type wchar_t = i32; diff --git a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs index 2b86d5eacc8fd..4ab40c628a1eb 100644 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -1,8 +1,7 @@ //! RISC-V-specific definitions for 32-bit linux-like values -use crate::{ - c_int, c_long, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, c_void, off64_t, off_t, size_t, -}; +use crate::prelude::*; +use crate::{off64_t, off_t}; pub type c_char = u8; pub type wchar_t = c_int; diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index d14309f45a8ed..cfe62018f5fdd 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -1,8 +1,7 @@ //! SPARC-specific definitions for 32-bit linux-like values -use crate::{ - c_int, c_long, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, c_void, off64_t, off_t, size_t, -}; +use crate::prelude::*; +use crate::{off64_t, off_t}; pub type c_char = i8; pub type wchar_t = i32; diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 7e7de0ce2dfaf..d626236dda792 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_short, c_uint, c_ulong, c_ushort, c_void, off64_t, off_t, size_t}; +use crate::prelude::*; +use crate::{off64_t, off_t}; pub type c_char = i8; pub type wchar_t = i32; @@ -296,8 +297,8 @@ cfg_if! { impl Eq for user_fpxregs_struct {} - impl crate::fmt::Debug for user_fpxregs_struct { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for user_fpxregs_struct { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("user_fpxregs_struct") .field("cwd", &self.cwd) .field("swd", &self.swd) @@ -316,8 +317,8 @@ cfg_if! { } } - impl crate::hash::Hash for user_fpxregs_struct { - fn hash(&self, state: &mut H) { + impl hash::Hash for user_fpxregs_struct { + fn hash(&self, state: &mut H) { self.cwd.hash(state); self.swd.hash(state); self.twd.hash(state); @@ -347,8 +348,8 @@ cfg_if! { impl Eq for ucontext_t {} - impl crate::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -360,8 +361,8 @@ cfg_if! { } } - impl crate::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index a12614e8f8c71..27ba5263c5361 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -1,8 +1,7 @@ //! AArch64-specific definitions for 64-bit linux-like values -use crate::{ - c_int, c_longlong, c_short, c_uint, c_ulonglong, c_ushort, c_void, off64_t, off_t, size_t, -}; +use crate::prelude::*; +use crate::{off64_t, off_t}; pub type c_char = u8; pub type wchar_t = u32; diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs index 5e4d3f0a2837e..8c05659dc09a7 100644 --- a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs @@ -1,7 +1,5 @@ -use crate::{ - c_int, c_longlong, c_short, c_uint, c_ulonglong, c_ushort, c_void, off64_t, off_t, - pthread_mutex_t, size_t, -}; +use crate::prelude::*; +use crate::{off64_t, off_t, pthread_mutex_t}; pub type c_char = i8; pub type c_long = i64; diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index 1f82bb18aec34..2d85df1385a10 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_short, c_uint, c_ushort, c_void, off64_t, off_t, pthread_mutex_t, size_t}; +use crate::prelude::*; +use crate::{off64_t, off_t, pthread_mutex_t}; pub type blksize_t = i64; pub type c_char = i8; diff --git a/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs index 6d2927a465241..fde7a5c6c3602 100644 --- a/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -1,6 +1,6 @@ //! 64-bit specific definitions for linux-like values -use crate::{c_int, c_uint, c_ushort}; +use crate::prelude::*; pub type ino_t = u64; pub type off_t = i64; @@ -12,7 +12,7 @@ pub type fsblkcnt_t = u64; pub type fsfilcnt_t = u64; pub type rlim_t = u64; #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] -pub type __syscall_ulong_t = crate::c_ulonglong; +pub type __syscall_ulong_t = c_ulonglong; #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] pub type __syscall_ulong_t = c_ulong; diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index 3cfdf2fa8a88d..86d047dbf3878 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -1,6 +1,7 @@ //! PowerPC64-specific definitions for 64-bit linux-like values -use crate::{c_int, c_short, c_uint, c_void, off64_t, off_t, pthread_mutex_t, size_t}; +use crate::prelude::*; +use crate::{off64_t, off_t, pthread_mutex_t}; pub type c_long = i64; pub type c_ulong = u64; diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index 27c96dca3d8bc..6eaa3cda10fcf 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -1,8 +1,7 @@ //! RISC-V-specific definitions for 64-bit linux-like values -use crate::{ - c_int, c_longlong, c_short, c_uint, c_ulonglong, c_ushort, c_void, off64_t, off_t, size_t, -}; +use crate::prelude::*; +use crate::{off64_t, off_t}; pub type c_char = u8; pub type c_long = i64; diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 210db71ae84b6..95dacc9f91cbd 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -1,8 +1,7 @@ //! s390x -use crate::{ - c_double, c_int, c_short, c_uint, c_ushort, c_void, off64_t, off_t, pthread_mutex_t, size_t, -}; +use crate::prelude::*; +use crate::{off64_t, off_t, pthread_mutex_t}; pub type blksize_t = i64; pub type c_char = u8; @@ -231,15 +230,15 @@ cfg_if! { impl Eq for fpreg_t {} - impl crate::fmt::Debug for fpreg_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for fpreg_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("fpreg_t").field("d", &self.d).finish() } } - impl crate::hash::Hash for fpreg_t { - fn hash(&self, state: &mut H) { - let d: u64 = unsafe { crate::mem::transmute(self.d) }; + impl hash::Hash for fpreg_t { + fn hash(&self, state: &mut H) { + let d: u64 = unsafe { mem::transmute(self.d) }; d.hash(state); } } diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs index 8dd7b85032beb..5626cd3e46933 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -1,9 +1,7 @@ //! SPARC64-specific definitions for 64-bit linux-like values -use crate::{ - c_int, c_longlong, c_short, c_uint, c_ulonglong, c_ushort, c_void, off64_t, off_t, - pthread_mutex_t, size_t, -}; +use crate::prelude::*; +use crate::{off64_t, off_t, pthread_mutex_t}; pub type c_long = i64; pub type c_ulong = u64; diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index 98838accea1b8..0d9971252391b 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -1,8 +1,7 @@ //! x86_64-specific definitions for 64-bit linux-like values -use crate::{ - c_int, c_longlong, c_short, c_uint, c_ulonglong, c_ushort, c_void, off64_t, off_t, size_t, -}; +use crate::prelude::*; +use crate::{off64_t, off_t}; pub type c_char = i8; pub type wchar_t = i32; @@ -348,8 +347,8 @@ cfg_if! { impl Eq for user_fpregs_struct {} - impl crate::fmt::Debug for user_fpregs_struct { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for user_fpregs_struct { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("user_fpregs_struct") .field("cwd", &self.cwd) .field("ftw", &self.ftw) @@ -365,8 +364,8 @@ cfg_if! { } } - impl crate::hash::Hash for user_fpregs_struct { - fn hash(&self, state: &mut H) { + impl hash::Hash for user_fpregs_struct { + fn hash(&self, state: &mut H) { self.cwd.hash(state); self.ftw.hash(state); self.fop.hash(state); @@ -393,8 +392,8 @@ cfg_if! { impl Eq for ucontext_t {} - impl crate::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -406,8 +405,8 @@ cfg_if! { } } - impl crate::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs index 19e28e91f5b33..5e7d6e5da5523 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_void, pthread_mutex_t, size_t}; +use crate::prelude::*; +use crate::pthread_mutex_t; pub type c_long = i64; pub type c_ulong = u64; diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs index 74a4581b0bda4..eafb5246c9edc 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs @@ -1,4 +1,5 @@ -use crate::{c_int, pthread_mutex_t}; +use crate::prelude::*; +use crate::pthread_mutex_t; pub type c_long = i32; pub type c_ulong = u32; diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 7e909d86a0d1e..948ec35f36b0d 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1,6 +1,5 @@ -use crate::{ - c_int, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, off64_t, size_t, ssize_t, -}; +use crate::off64_t; +use crate::prelude::*; pub type pthread_t = c_ulong; pub type __priority_which_t = c_uint; @@ -654,8 +653,8 @@ cfg_if! { impl Eq for utmpx {} - impl crate::fmt::Debug for utmpx { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utmpx { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utmpx") .field("ut_type", &self.ut_type) .field("ut_pid", &self.ut_pid) @@ -672,8 +671,8 @@ cfg_if! { } } - impl crate::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_type.hash(state); self.ut_pid.hash(state); self.ut_line.hash(state); @@ -700,8 +699,8 @@ cfg_if! { impl Eq for __c_anonymous_ptrace_syscall_info_data {} - impl crate::fmt::Debug for __c_anonymous_ptrace_syscall_info_data { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_ptrace_syscall_info_data { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { unsafe { f.debug_struct("__c_anonymous_ptrace_syscall_info_data") .field("entry", &self.entry) @@ -712,8 +711,8 @@ cfg_if! { } } - impl crate::hash::Hash for __c_anonymous_ptrace_syscall_info_data { - fn hash(&self, state: &mut H) { + impl hash::Hash for __c_anonymous_ptrace_syscall_info_data { + fn hash(&self, state: &mut H) { unsafe { self.entry.hash(state); self.exit.hash(state); diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 43b9d725ecb3a..b942641542713 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2,9 +2,7 @@ use core::mem::size_of; -use crate::{ - c_double, c_int, c_longlong, c_short, c_uchar, c_uint, c_ushort, c_void, size_t, ssize_t, -}; +use crate::prelude::*; pub type useconds_t = u32; pub type dev_t = u64; @@ -478,9 +476,9 @@ s! { // will probably need including here. tsidea, skrap // QNX (NTO) platform does not define these fields #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] - pub dlpi_adds: crate::c_ulonglong, + pub dlpi_adds: c_ulonglong, #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] - pub dlpi_subs: crate::c_ulonglong, + pub dlpi_subs: c_ulonglong, #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] pub dlpi_tls_modid: size_t, #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] @@ -1716,8 +1714,8 @@ cfg_if! { } } impl Eq for sockaddr_nl {} - impl crate::fmt::Debug for sockaddr_nl { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_nl { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_nl") .field("nl_family", &self.nl_family) .field("nl_pid", &self.nl_pid) @@ -1725,8 +1723,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sockaddr_nl { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_nl { + fn hash(&self, state: &mut H) { self.nl_family.hash(state); self.nl_pid.hash(state); self.nl_groups.hash(state); @@ -1749,8 +1747,8 @@ cfg_if! { impl Eq for dirent {} - impl crate::fmt::Debug for dirent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for dirent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -1761,8 +1759,8 @@ cfg_if! { } } - impl crate::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -1787,8 +1785,8 @@ cfg_if! { impl Eq for dirent64 {} - impl crate::fmt::Debug for dirent64 { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for dirent64 { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("dirent64") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -1799,8 +1797,8 @@ cfg_if! { } } - impl crate::hash::Hash for dirent64 { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent64 { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -1817,16 +1815,16 @@ cfg_if! { impl Eq for pthread_cond_t {} - impl crate::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_cond_t") // FIXME: .field("size", &self.size) .finish() } } - impl crate::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { self.size.hash(state); } } @@ -1839,16 +1837,16 @@ cfg_if! { impl Eq for pthread_mutex_t {} - impl crate::fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_mutex_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_mutex_t") // FIXME: .field("size", &self.size) .finish() } } - impl crate::hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_mutex_t { + fn hash(&self, state: &mut H) { self.size.hash(state); } } @@ -1861,16 +1859,16 @@ cfg_if! { impl Eq for pthread_rwlock_t {} - impl crate::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_rwlock_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_rwlock_t") // FIXME: .field("size", &self.size) .finish() } } - impl crate::hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_rwlock_t { + fn hash(&self, state: &mut H) { self.size.hash(state); } } @@ -1883,16 +1881,16 @@ cfg_if! { impl Eq for pthread_barrier_t {} - impl crate::fmt::Debug for pthread_barrier_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_barrier_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_barrier_t") .field("size", &self.size) .finish() } } - impl crate::hash::Hash for pthread_barrier_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pthread_barrier_t { + fn hash(&self, state: &mut H) { self.size.hash(state); } } @@ -1917,8 +1915,8 @@ cfg_if! { impl Eq for sockaddr_alg {} - impl crate::fmt::Debug for sockaddr_alg { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_alg { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_alg") .field("salg_family", &self.salg_family) .field("salg_type", &self.salg_type) @@ -1929,8 +1927,8 @@ cfg_if! { } } - impl crate::hash::Hash for sockaddr_alg { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_alg { + fn hash(&self, state: &mut H) { self.salg_family.hash(state); self.salg_type.hash(state); self.salg_feat.hash(state); @@ -1948,8 +1946,8 @@ cfg_if! { } impl Eq for uinput_setup {} - impl crate::fmt::Debug for uinput_setup { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for uinput_setup { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("uinput_setup") .field("id", &self.id) .field("name", &&self.name[..]) @@ -1958,8 +1956,8 @@ cfg_if! { } } - impl crate::hash::Hash for uinput_setup { - fn hash(&self, state: &mut H) { + impl hash::Hash for uinput_setup { + fn hash(&self, state: &mut H) { self.id.hash(state); self.name.hash(state); self.ff_effects_max.hash(state); @@ -1979,8 +1977,8 @@ cfg_if! { } impl Eq for uinput_user_dev {} - impl crate::fmt::Debug for uinput_user_dev { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for uinput_user_dev { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("uinput_setup") .field("name", &&self.name[..]) .field("id", &self.id) @@ -1993,8 +1991,8 @@ cfg_if! { } } - impl crate::hash::Hash for uinput_user_dev { - fn hash(&self, state: &mut H) { + impl hash::Hash for uinput_user_dev { + fn hash(&self, state: &mut H) { self.name.hash(state); self.id.hash(state); self.ff_effects_max.hash(state); @@ -2023,8 +2021,8 @@ cfg_if! { impl Eq for af_alg_iv {} #[allow(deprecated)] - impl crate::fmt::Debug for af_alg_iv { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for af_alg_iv { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("af_alg_iv") .field("ivlen", &self.ivlen) .finish() @@ -2032,8 +2030,8 @@ cfg_if! { } #[allow(deprecated)] - impl crate::hash::Hash for af_alg_iv { - fn hash(&self, state: &mut H) { + impl hash::Hash for af_alg_iv { + fn hash(&self, state: &mut H) { self.as_slice().hash(state); } } @@ -2047,8 +2045,8 @@ cfg_if! { } } impl Eq for mq_attr {} - impl crate::fmt::Debug for mq_attr { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for mq_attr { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("mq_attr") .field("mq_flags", &self.mq_flags) .field("mq_maxmsg", &self.mq_maxmsg) @@ -2057,16 +2055,16 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { + impl hash::Hash for mq_attr { + fn hash(&self, state: &mut H) { self.mq_flags.hash(state); self.mq_maxmsg.hash(state); self.mq_msgsize.hash(state); self.mq_curmsgs.hash(state); } } - impl crate::fmt::Debug for __c_anonymous_ifr_ifru { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_ifr_ifru { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ifr_ifru") .field("ifru_addr", unsafe { &self.ifru_addr }) .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) @@ -2084,8 +2082,8 @@ cfg_if! { .finish() } } - impl crate::fmt::Debug for ifreq { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + 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) @@ -2093,24 +2091,24 @@ cfg_if! { } } - impl crate::fmt::Debug for __c_anonymous_ifc_ifcu { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_ifc_ifcu { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ifr_ifru") .field("ifcu_buf", unsafe { &self.ifcu_buf }) .field("ifcu_req", unsafe { &self.ifcu_req }) .finish() } } - impl crate::fmt::Debug for ifconf { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ifconf { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ifconf") .field("ifc_len", &self.ifc_len) .field("ifc_ifcu", &self.ifc_ifcu) .finish() } } - impl crate::fmt::Debug for hwtstamp_config { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for hwtstamp_config { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("hwtstamp_config") .field("flags", &self.flags) .field("tx_type", &self.tx_type) @@ -2126,16 +2124,16 @@ cfg_if! { } } impl Eq for hwtstamp_config {} - impl crate::hash::Hash for hwtstamp_config { - fn hash(&self, state: &mut H) { + impl hash::Hash for hwtstamp_config { + fn hash(&self, state: &mut H) { self.flags.hash(state); self.tx_type.hash(state); self.rx_filter.hash(state); } } - impl crate::fmt::Debug for sched_attr { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sched_attr { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sched_attr") .field("size", &self.size) .field("sched_policy", &self.sched_policy) @@ -2161,8 +2159,8 @@ cfg_if! { } } impl Eq for sched_attr {} - impl crate::hash::Hash for sched_attr { - fn hash(&self, state: &mut H) { + impl hash::Hash for sched_attr { + fn hash(&self, state: &mut H) { self.size.hash(state); self.sched_policy.hash(state); self.sched_flags.hash(state); @@ -2174,8 +2172,8 @@ cfg_if! { } } - impl crate::fmt::Debug for iwreq_data { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for iwreq_data { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("iwreq_data") .field("name", unsafe { &self.name }) .field("essid", unsafe { &self.essid }) @@ -2199,8 +2197,8 @@ cfg_if! { } } - impl crate::fmt::Debug for iw_event { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for iw_event { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("iw_event") .field("len", &self.len) .field("cmd", &self.cmd) @@ -2209,16 +2207,16 @@ cfg_if! { } } - impl crate::fmt::Debug for __c_anonymous_iwreq { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_iwreq { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("__c_anonymous_iwreq") .field("ifrn_name", unsafe { &self.ifrn_name }) .finish() } } - impl crate::fmt::Debug for iwreq { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for iwreq { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("iwreq") .field("ifr_ifrn", &self.ifr_ifrn) .field("u", &self.u) @@ -5838,8 +5836,8 @@ f! { } pub fn CPU_ALLOC_SIZE(count: c_int) -> size_t { - let _dummy: cpu_set_t = crate::mem::zeroed(); - let size_in_bits = 8 * crate::mem::size_of_val(&_dummy.bits[0]); + let _dummy: cpu_set_t = mem::zeroed(); + let size_in_bits = 8 * mem::size_of_val(&_dummy.bits[0]); ((count as size_t + size_in_bits - 1) / 8) as size_t } @@ -5850,28 +5848,28 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * crate::mem::size_of_val(&cpuset.bits[0]); + let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); 0 != (cpuset.bits[idx] & (1 << offset)) } pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int { let mut s: u32 = 0; - let size_of_mask = crate::mem::size_of_val(&cpuset.bits[0]); + let size_of_mask = mem::size_of_val(&cpuset.bits[0]); for i in cpuset.bits[..(size / size_of_mask)].iter() { s += i.count_ones(); } diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index 789a35548d702..3116837322b60 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_short, c_uint, c_ulong, c_ulonglong, c_void, off_t, size_t, ssize_t}; +use crate::off_t; +use crate::prelude::*; pub type c_char = u8; pub type wchar_t = u32; @@ -154,8 +155,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl crate::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_link) .field("uc_link", &self.uc_link) @@ -165,8 +166,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 720464b79f441..9becabd146f8d 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_long, c_longlong, c_uint, c_ulong, c_ulonglong, c_ushort, c_void, size_t}; +use crate::prelude::*; pub type c_char = u8; pub type wchar_t = u32; diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index af64d4d462324..aacdc44579496 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_short, c_ulong, c_void, off_t, size_t}; +use crate::off_t; +use crate::prelude::*; pub type c_char = i8; pub type wchar_t = c_int; diff --git a/src/unix/linux_like/linux/musl/b32/mod.rs b/src/unix/linux_like/linux/musl/b32/mod.rs index 37f9c3ab2c24a..4a62ef1906ffb 100644 --- a/src/unix/linux_like/linux/musl/b32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_longlong, c_ulonglong, c_void}; +use crate::prelude::*; pub type c_long = i32; pub type c_ulong = u32; diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 2fff41545ee56..29e797959123d 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_longlong, c_short, c_uint, c_ulong, c_void, off_t, size_t, ssize_t}; +use crate::off_t; +use crate::prelude::*; pub type c_char = u8; pub type wchar_t = i32; diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index 46de7219dbf8b..ff5839c64bc42 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -1,6 +1,7 @@ //! RISC-V-specific definitions for 32-bit linux-like values -use crate::{c_int, c_long, c_short, c_ulong, c_ushort, c_void, off64_t, off_t, size_t}; +use crate::prelude::*; +use crate::{off64_t, off_t}; pub type c_char = u8; pub type wchar_t = c_int; diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 6c68c3406cbe2..476bacdb6b88d 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_short, c_uint, c_ulong, c_ushort, c_void, off_t, size_t, ssize_t}; +use crate::off_t; +use crate::prelude::*; pub type c_char = i8; pub type wchar_t = i32; @@ -159,8 +160,8 @@ cfg_if! { impl Eq for user_fpxregs_struct {} - impl crate::fmt::Debug for user_fpxregs_struct { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for user_fpxregs_struct { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("user_fpxregs_struct") .field("cwd", &self.cwd) .field("swd", &self.swd) @@ -179,8 +180,8 @@ cfg_if! { } } - impl crate::hash::Hash for user_fpxregs_struct { - fn hash(&self, state: &mut H) { + impl hash::Hash for user_fpxregs_struct { + fn hash(&self, state: &mut H) { self.cwd.hash(state); self.swd.hash(state); self.twd.hash(state); @@ -214,8 +215,8 @@ cfg_if! { impl Eq for ucontext_t {} - impl crate::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -227,8 +228,8 @@ cfg_if! { } } - impl crate::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index 7c5ecc6a2453e..c660ec5c3453f 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -1,6 +1,5 @@ -use crate::{ - c_int, c_long, c_longlong, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, off_t, size_t, -}; +use crate::off_t; +use crate::prelude::*; pub type c_char = u8; pub type __u64 = c_ulonglong; diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index 1de3fdb123ac6..1be59ada9aad5 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -1,9 +1,7 @@ //! LoongArch-specific definitions for 64-bit linux-like values -use crate::{ - c_int, c_long, c_longlong, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, off64_t, off_t, - size_t, -}; +use crate::prelude::*; +use crate::{off64_t, off_t}; pub type c_char = i8; pub type wchar_t = c_int; diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index b3f660931c44f..09191a5f8275c 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_short, c_uint, c_ulong, off_t, size_t}; +use crate::off_t; +use crate::prelude::*; pub type c_char = i8; pub type wchar_t = i32; diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index eaab68d565399..50d862f570426 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_uint, c_void, size_t, ssize_t}; +use crate::prelude::*; pub type c_long = i64; pub type c_ulong = u64; diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index 13d2fbb690e74..3753293c8e0cf 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_long, c_short, c_ulong, off_t, size_t}; +use crate::off_t; +use crate::prelude::*; pub type c_char = u8; pub type wchar_t = i32; diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index 53ae3d64c25b9..729e873668873 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -1,9 +1,7 @@ //! RISC-V-specific definitions for 64-bit linux-like values -use crate::{ - c_int, c_long, c_longlong, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, off64_t, off_t, - size_t, -}; +use crate::prelude::*; +use crate::{off64_t, off_t}; pub type c_char = u8; pub type wchar_t = c_int; diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index ad8ba3bb26e18..22a6cec4185f0 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -1,4 +1,5 @@ -use crate::{c_double, c_int, c_long, c_short, off_t, size_t}; +use crate::off_t; +use crate::prelude::*; pub type blksize_t = i64; pub type c_char = u8; @@ -80,15 +81,15 @@ cfg_if! { impl Eq for fpreg_t {} - impl crate::fmt::Debug for fpreg_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for fpreg_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("fpreg_t").field("d", &self.d).finish() } } - impl crate::hash::Hash for fpreg_t { - fn hash(&self, state: &mut H) { - let d: u64 = unsafe { crate::mem::transmute(self.d) }; + impl hash::Hash for fpreg_t { + fn hash(&self, state: &mut H) { + let d: u64 = unsafe { mem::transmute(self.d) }; d.hash(state); } } diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index 62ce8aadc7443..6399f33209ac2 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -1,6 +1,5 @@ -use crate::{ - c_int, c_long, c_longlong, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, off_t, size_t, -}; +use crate::off_t; +use crate::prelude::*; pub type c_char = i8; pub type wchar_t = i32; @@ -196,8 +195,8 @@ cfg_if! { impl Eq for user_fpregs_struct {} - impl crate::fmt::Debug for user_fpregs_struct { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for user_fpregs_struct { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("user_fpregs_struct") .field("cwd", &self.cwd) .field("ftw", &self.ftw) @@ -213,8 +212,8 @@ cfg_if! { } } - impl crate::hash::Hash for user_fpregs_struct { - fn hash(&self, state: &mut H) { + impl hash::Hash for user_fpregs_struct { + fn hash(&self, state: &mut H) { self.cwd.hash(state); self.ftw.hash(state); self.fop.hash(state); @@ -245,8 +244,8 @@ cfg_if! { impl Eq for ucontext_t {} - impl crate::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) @@ -258,8 +257,8 @@ cfg_if! { } } - impl crate::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { self.uc_flags.hash(state); self.uc_link.hash(state); self.uc_stack.hash(state); diff --git a/src/unix/linux_like/linux/musl/lfs64.rs b/src/unix/linux_like/linux/musl/lfs64.rs index 582e20a45545e..e6506fd3d385d 100644 --- a/src/unix/linux_like/linux/musl/lfs64.rs +++ b/src/unix/linux_like/linux/musl/lfs64.rs @@ -1,4 +1,5 @@ -use crate::{c_char, c_int, c_void, off64_t, size_t, ssize_t}; +use crate::off64_t; +use crate::prelude::*; #[inline] pub unsafe extern "C" fn creat64(path: *const c_char, mode: crate::mode_t) -> c_int { diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 9e16736564f68..4d31996d9c96e 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -1,6 +1,5 @@ -use crate::{ - c_int, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, off64_t, size_t, ssize_t, -}; +use crate::off64_t; +use crate::prelude::*; pub type pthread_t = *mut c_void; pub type clock_t = c_long; @@ -593,8 +592,8 @@ cfg_if! { impl Eq for sysinfo {} - impl crate::fmt::Debug for sysinfo { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sysinfo { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sysinfo") .field("uptime", &self.uptime) .field("loads", &self.loads) @@ -614,8 +613,8 @@ cfg_if! { } } - impl crate::hash::Hash for sysinfo { - fn hash(&self, state: &mut H) { + impl hash::Hash for sysinfo { + fn hash(&self, state: &mut H) { self.uptime.hash(state); self.loads.hash(state); self.totalram.hash(state); @@ -657,8 +656,8 @@ cfg_if! { impl Eq for utmpx {} - impl crate::fmt::Debug for utmpx { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utmpx { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utmpx") .field("ut_type", &self.ut_type) //.field("__ut_pad1", &self.__ut_pad1) @@ -677,8 +676,8 @@ cfg_if! { } } - impl crate::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_type.hash(state); //self.__ut_pad1.hash(state); self.ut_pid.hash(state); diff --git a/src/unix/linux_like/linux/uclibc/arm/mod.rs b/src/unix/linux_like/linux/uclibc/arm/mod.rs index 5991d4651c1bb..da3203f98a3de 100644 --- a/src/unix/linux_like/linux/uclibc/arm/mod.rs +++ b/src/unix/linux_like/linux/uclibc/arm/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_longlong, c_short, c_uint, c_ulonglong, c_ushort, c_void, off64_t, size_t}; +use crate::off64_t; +use crate::prelude::*; pub type c_char = u8; pub type wchar_t = c_uint; diff --git a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs index dced826fc9130..6118928312b91 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_longlong, c_short, c_uint, c_ulonglong, c_ushort, c_void, off64_t, size_t}; +use crate::off64_t; +use crate::prelude::*; pub type c_char = i8; pub type c_long = i32; diff --git a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs index 4000ab147504c..86ee7bdff472b 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_uint, c_ushort, c_void, off64_t, size_t}; +use crate::off64_t; +use crate::prelude::*; pub type blkcnt_t = i64; pub type blksize_t = i64; diff --git a/src/unix/linux_like/linux/uclibc/mips/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mod.rs index 488a4a499d176..f1934c396773a 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_short, c_uint, size_t}; +use crate::prelude::*; pub type pthread_t = c_ulong; diff --git a/src/unix/linux_like/linux/uclibc/mod.rs b/src/unix/linux_like/linux/uclibc/mod.rs index 95aed917fe400..7495f07878119 100644 --- a/src/unix/linux_like/linux/uclibc/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_short, c_uchar, c_uint, c_ushort, c_void, off64_t, size_t, ssize_t}; +use crate::off64_t; +use crate::prelude::*; pub type shmatt_t = c_ulong; pub type msgqnum_t = c_ulong; diff --git a/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs b/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs index cbf8c033d7414..7e1499a1fd8bd 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_uint, c_ulong, c_void, size_t}; +use crate::prelude::*; /// L4Re specifics /// This module contains definitions required by various L4Re libc backends. diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index 9c2cf3fe25715..ce91914765581 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -1,6 +1,7 @@ //! Definitions for uclibc on 64bit systems -use crate::{c_int, c_uint, c_ushort, c_void, off64_t, size_t}; +use crate::off64_t; +use crate::prelude::*; pub type blkcnt_t = i64; pub type blksize_t = i64; diff --git a/src/unix/linux_like/linux/uclibc/x86_64/other.rs b/src/unix/linux_like/linux/uclibc/x86_64/other.rs index 7890d76f24b43..dc16d02c87977 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/other.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/other.rs @@ -1,4 +1,4 @@ -use crate::c_ulong; +use crate::prelude::*; // Thestyle checker discourages the use of #[cfg], so this has to go into a // separate module diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 3a4a181518165..ff8b63a9abaef 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_short, c_uchar, c_uint, c_ushort, c_void, intptr_t, size_t, ssize_t}; +use crate::prelude::*; pub type sa_family_t = u16; pub type speed_t = c_uint; @@ -308,8 +308,8 @@ cfg_if! { } } impl Eq for epoll_event {} - impl crate::fmt::Debug for epoll_event { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for epoll_event { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let events = self.events; let u64 = self.u64; f.debug_struct("epoll_event") @@ -318,8 +318,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for epoll_event { - fn hash(&self, state: &mut H) { + impl hash::Hash for epoll_event { + fn hash(&self, state: &mut H) { let events = self.events; let u64 = self.u64; events.hash(state); @@ -338,16 +338,16 @@ cfg_if! { } } impl Eq for sockaddr_un {} - impl crate::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_un") .field("sun_family", &self.sun_family) // FIXME: .field("sun_path", &self.sun_path) .finish() } } - impl crate::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { self.sun_family.hash(state); self.sun_path.hash(state); } @@ -366,8 +366,8 @@ cfg_if! { impl Eq for sockaddr_storage {} - impl crate::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_family", &self.ss_family) .field("__ss_align", &self.__ss_align) @@ -376,8 +376,8 @@ cfg_if! { } } - impl crate::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_family.hash(state); self.__ss_pad2.hash(state); } @@ -419,8 +419,8 @@ cfg_if! { impl Eq for utsname {} - impl crate::fmt::Debug for utsname { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utsname { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utsname") // FIXME: .field("sysname", &self.sysname) // FIXME: .field("nodename", &self.nodename) @@ -432,8 +432,8 @@ cfg_if! { } } - impl crate::hash::Hash for utsname { - fn hash(&self, state: &mut H) { + impl hash::Hash for utsname { + fn hash(&self, state: &mut H) { self.sysname.hash(state); self.nodename.hash(state); self.release.hash(state); @@ -452,8 +452,8 @@ cfg_if! { } } impl Eq for sigevent {} - impl crate::fmt::Debug for sigevent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sigevent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sigevent") .field("sigev_value", &self.sigev_value) .field("sigev_signo", &self.sigev_signo) @@ -462,8 +462,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_value.hash(state); self.sigev_signo.hash(state); self.sigev_notify.hash(state); @@ -594,7 +594,7 @@ pub const XATTR_REPLACE: c_int = 0x2; cfg_if! { if #[cfg(target_os = "android")] { - pub const RLIM64_INFINITY: crate::c_ulonglong = !0; + pub const RLIM64_INFINITY: c_ulonglong = !0; } else { pub const RLIM64_INFINITY: crate::rlim64_t = !0; } @@ -1607,13 +1607,13 @@ cfg_if! { const_fn! { {const} fn CMSG_ALIGN(len: usize) -> usize { - len + crate::mem::size_of::() - 1 & !(crate::mem::size_of::() - 1) + len + mem::size_of::() - 1 & !(mem::size_of::() - 1) } } f! { pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= crate::mem::size_of::() { + if (*mhdr).msg_controllen as usize >= mem::size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { 0 as *mut cmsghdr @@ -1625,29 +1625,29 @@ f! { } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(crate::mem::size_of::())) as c_uint + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(mem::size_of::())) as c_uint } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - CMSG_ALIGN(crate::mem::size_of::()) as c_uint + length + CMSG_ALIGN(mem::size_of::()) as c_uint + length } pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } diff --git a/src/unix/mod.rs b/src/unix/mod.rs index fc0e561dca8e8..661405f50eb1d 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -3,7 +3,7 @@ //! More functions and definitions can be found in the more specific modules //! according to the platform in question. -use crate::c_void; +use crate::prelude::*; pub type c_schar = i8; pub type c_uchar = u8; diff --git a/src/unix/newlib/aarch64/mod.rs b/src/unix/newlib/aarch64/mod.rs index 87952650e5d12..0aa1de7dcc828 100644 --- a/src/unix/newlib/aarch64/mod.rs +++ b/src/unix/newlib/aarch64/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_short}; +use crate::prelude::*; pub type clock_t = c_long; pub type c_char = u8; diff --git a/src/unix/newlib/arm/mod.rs b/src/unix/newlib/arm/mod.rs index 558a70da6b79b..a32e37ede596a 100644 --- a/src/unix/newlib/arm/mod.rs +++ b/src/unix/newlib/arm/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_short}; +use crate::prelude::*; pub type clock_t = c_long; pub type c_char = u8; diff --git a/src/unix/newlib/espidf/mod.rs b/src/unix/newlib/espidf/mod.rs index c33d6ba4bc05a..4e3898153357d 100644 --- a/src/unix/newlib/espidf/mod.rs +++ b/src/unix/newlib/espidf/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_short, c_uint, c_void, size_t, ssize_t}; +use crate::prelude::*; pub type clock_t = c_ulong; pub type c_char = i8; diff --git a/src/unix/newlib/generic.rs b/src/unix/newlib/generic.rs index fe2216cee356a..ba4dfbe528b69 100644 --- a/src/unix/newlib/generic.rs +++ b/src/unix/newlib/generic.rs @@ -1,11 +1,12 @@ //! Common types used by most newlib platforms -use crate::{c_char, c_long, c_uchar, off_t}; +use crate::off_t; +use crate::prelude::*; s! { pub struct sigset_t { #[cfg(target_os = "horizon")] - __val: [crate::c_ulong; 16], + __val: [c_ulong; 16], #[cfg(not(target_os = "horizon"))] __val: u32, } diff --git a/src/unix/newlib/horizon/mod.rs b/src/unix/newlib/horizon/mod.rs index 055e81fe70767..8c662f2a4517a 100644 --- a/src/unix/newlib/horizon/mod.rs +++ b/src/unix/newlib/horizon/mod.rs @@ -1,8 +1,7 @@ //! ARMv6K Nintendo 3DS C Newlib definitions -use crate::{ - c_int, c_longlong, c_short, c_uchar, c_uint, c_ushort, c_void, off_t, size_t, ssize_t, -}; +use crate::off_t; +use crate::prelude::*; pub type c_char = u8; pub type c_long = i32; diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index ff856f4845d05..ae118b4719a65 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_longlong, c_uint, c_ushort, c_void, size_t}; +use crate::prelude::*; pub type blkcnt_t = i32; pub type blksize_t = i32; @@ -7,11 +7,11 @@ pub type clockid_t = c_ulong; cfg_if! { if #[cfg(any(target_os = "espidf"))] { - pub type dev_t = crate::c_short; + pub type dev_t = c_short; pub type ino_t = c_ushort; pub type off_t = c_long; } else if #[cfg(any(target_os = "vita"))] { - pub type dev_t = crate::c_short; + pub type dev_t = c_short; pub type ino_t = c_ushort; pub type off_t = c_int; } else { @@ -253,7 +253,7 @@ s! { #[cfg(target_os = "espidf")] pub is_initialized: i32, #[cfg(target_os = "espidf")] - pub stackaddr: *mut crate::c_void, + pub stackaddr: *mut c_void, #[cfg(target_os = "espidf")] pub stacksize: i32, #[cfg(target_os = "espidf")] @@ -837,20 +837,20 @@ pub const PRIO_USER: c_int = 2; f! { pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { - let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { - let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { - let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] |= 1 << (fd % bits); return; diff --git a/src/unix/newlib/powerpc/mod.rs b/src/unix/newlib/powerpc/mod.rs index 6b73b6fb39dea..6a9c42bdb7228 100644 --- a/src/unix/newlib/powerpc/mod.rs +++ b/src/unix/newlib/powerpc/mod.rs @@ -1,4 +1,4 @@ -use crate::c_int; +use crate::prelude::*; pub type clock_t = c_ulong; pub type c_char = u8; diff --git a/src/unix/newlib/rtems/mod.rs b/src/unix/newlib/rtems/mod.rs index cf390f9fa5eb0..f14967da0aad1 100644 --- a/src/unix/newlib/rtems/mod.rs +++ b/src/unix/newlib/rtems/mod.rs @@ -1,5 +1,6 @@ // defined in architecture specific module -use crate::{c_char, c_int, c_long, c_ulong, c_void, size_t, ssize_t}; + +use crate::prelude::*; s! { pub struct sockaddr_un { diff --git a/src/unix/newlib/vita/mod.rs b/src/unix/newlib/vita/mod.rs index e9b12dd0914b8..120c4d54972f5 100644 --- a/src/unix/newlib/vita/mod.rs +++ b/src/unix/newlib/vita/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_int, c_short, c_void, off_t, size_t, ssize_t}; +use crate::off_t; +use crate::prelude::*; pub type clock_t = c_long; diff --git a/src/unix/nto/aarch64.rs b/src/unix/nto/aarch64.rs index 0e4694315c73b..d0987f28be6b2 100644 --- a/src/unix/nto/aarch64.rs +++ b/src/unix/nto/aarch64.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_void, size_t}; +use crate::prelude::*; pub type c_char = u8; pub type wchar_t = u32; diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 85a3bfaf3d2c7..ad4b390d61c07 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_short, c_uchar, c_uint, c_ushort, c_void, size_t, ssize_t}; +use crate::prelude::*; pub type clock_t = u32; @@ -770,8 +770,8 @@ cfg_if! { } } impl Eq for sigevent {} - impl crate::fmt::Debug for sigevent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sigevent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sigevent") .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) @@ -780,8 +780,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); self.sigev_signo.hash(state); self.sigev_value.hash(state); @@ -801,8 +801,8 @@ cfg_if! { } } impl Eq for sockaddr_un {} - impl crate::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_un") .field("sun_len", &self.sun_len) .field("sun_family", &self.sun_family) @@ -811,8 +811,8 @@ cfg_if! { } } - impl crate::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { self.sun_len.hash(state); self.sun_family.hash(state); self.sun_path.hash(state); @@ -826,22 +826,22 @@ cfg_if! { } } impl Eq for sigset_t {} - impl crate::fmt::Debug for sigset_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sigset_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sigset_t") .field("__val", &self.__val) .finish() } } - impl crate::hash::Hash for sigset_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for sigset_t { + fn hash(&self, state: &mut H) { self.__val.hash(state); } } // msg - impl crate::fmt::Debug for msg { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for msg { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("msg") .field("msg_next", &self.msg_next) .field("msg_type", &self.msg_type) @@ -852,8 +852,8 @@ cfg_if! { } // msqid_ds - impl crate::fmt::Debug for msqid_ds { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for msqid_ds { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("msqid_ds") .field("msg_perm", &self.msg_perm) .field("msg_first", &self.msg_first) @@ -870,8 +870,8 @@ cfg_if! { } // sockaddr_dl - impl crate::fmt::Debug for sockaddr_dl { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_dl { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_dl") .field("sdl_len", &self.sdl_len) .field("sdl_family", &self.sdl_family) @@ -901,8 +901,8 @@ cfg_if! { } } impl Eq for sockaddr_dl {} - impl crate::hash::Hash for sockaddr_dl { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_dl { + fn hash(&self, state: &mut H) { self.sdl_len.hash(state); self.sdl_family.hash(state); self.sdl_index.hash(state); @@ -915,8 +915,8 @@ cfg_if! { } // sync_t - impl crate::fmt::Debug for sync_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sync_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sync_t") .field("__owner", &self.__owner) .field("__u", &self.__u) @@ -925,8 +925,8 @@ cfg_if! { } // pthread_barrier_t - impl crate::fmt::Debug for pthread_barrier_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_barrier_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_barrier_t") .field("__pad", &self.__pad) .finish() @@ -934,8 +934,8 @@ cfg_if! { } // pthread_rwlock_t - impl crate::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pthread_rwlock_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_rwlock_t") .field("__active", &self.__active) .field("__blockedwriters", &self.__blockedwriters) @@ -951,8 +951,8 @@ cfg_if! { } // syspage_entry - impl crate::fmt::Debug for syspage_entry { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for syspage_entry { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("syspage_entry") .field("size", &self.size) .field("total_size", &self.total_size) @@ -1012,8 +1012,8 @@ cfg_if! { impl Eq for utsname {} - impl crate::fmt::Debug for utsname { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utsname { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utsname") // FIXME: .field("sysname", &self.sysname) // FIXME: .field("nodename", &self.nodename) @@ -1024,8 +1024,8 @@ cfg_if! { } } - impl crate::hash::Hash for utsname { - fn hash(&self, state: &mut H) { + impl hash::Hash for utsname { + fn hash(&self, state: &mut H) { self.sysname.hash(state); self.nodename.hash(state); self.release.hash(state); @@ -1048,8 +1048,8 @@ cfg_if! { impl Eq for mq_attr {} - impl crate::fmt::Debug for mq_attr { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for mq_attr { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("mq_attr") .field("mq_maxmsg", &self.mq_maxmsg) .field("mq_msgsize", &self.mq_msgsize) @@ -1061,8 +1061,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { + impl hash::Hash for mq_attr { + fn hash(&self, state: &mut H) { self.mq_maxmsg.hash(state); self.mq_msgsize.hash(state); self.mq_flags.hash(state); @@ -1088,8 +1088,8 @@ cfg_if! { impl Eq for sockaddr_storage {} - impl crate::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_len", &self.ss_len) .field("ss_family", &self.ss_family) @@ -1100,8 +1100,8 @@ cfg_if! { } } - impl crate::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_len.hash(state); self.ss_family.hash(state); self.__ss_pad1.hash(state); @@ -1125,8 +1125,8 @@ cfg_if! { impl Eq for dirent {} - impl crate::fmt::Debug for dirent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for dirent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_offset", &self.d_offset) @@ -1137,8 +1137,8 @@ cfg_if! { } } - impl crate::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_offset.hash(state); self.d_reclen.hash(state); @@ -2379,7 +2379,7 @@ pub const BIOCSRTIMEOUT: c_int = -2146418067; pub const BIOCSSEESENT: c_int = -2147204487; pub const BIOCVERSION: c_int = 1074020977; -pub const BPF_ALIGNMENT: usize = crate::mem::size_of::(); +pub const BPF_ALIGNMENT: usize = mem::size_of::(); pub const CHAR_BIT: usize = 8; pub const CODESET: crate::nl_item = 1; pub const CRNCYSTR: crate::nl_item = 55; @@ -2580,7 +2580,7 @@ pub const SO_SETFIB: c_int = 0x100a; pub const SO_TXPRIO: c_int = 0x100b; pub const SO_USELOOPBACK: c_int = 0x0040; pub const SO_VLANPRIO: c_int = 0x100c; -pub const _SS_ALIGNSIZE: usize = crate::mem::size_of::(); +pub const _SS_ALIGNSIZE: usize = mem::size_of::(); pub const _SS_MAXSIZE: usize = 128; pub const _SS_PAD1SIZE: usize = _SS_ALIGNSIZE - 2; pub const _SS_PAD2SIZE: usize = _SS_MAXSIZE - 2 - _SS_PAD1SIZE - _SS_ALIGNSIZE; @@ -2710,7 +2710,7 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { const_fn! { {const} fn _CMSG_ALIGN(len: usize) -> usize { - len + crate::mem::size_of::() - 1 & !(crate::mem::size_of::() - 1) + len + mem::size_of::() - 1 & !(mem::size_of::() - 1) } {const} fn _ALIGN(p: usize, b: usize) -> usize { @@ -2720,7 +2720,7 @@ const_fn! { f! { pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= crate::mem::size_of::() { + if (*mhdr).msg_controllen as usize >= mem::size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { 0 as *mut cmsghdr @@ -2729,7 +2729,7 @@ f! { pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { let msg = _CMSG_ALIGN((*cmsg).cmsg_len as usize); - let next = cmsg as usize + msg + _CMSG_ALIGN(crate::mem::size_of::()); + let next = cmsg as usize + msg + _CMSG_ALIGN(mem::size_of::()); if next > (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize { 0 as *mut cmsghdr } else { @@ -2738,33 +2738,33 @@ f! { } pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).offset(_CMSG_ALIGN(crate::mem::size_of::()) as isize) + (cmsg as *mut c_uchar).offset(_CMSG_ALIGN(mem::size_of::()) as isize) } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - _CMSG_ALIGN(crate::mem::size_of::()) as c_uint + length + _CMSG_ALIGN(mem::size_of::()) as c_uint + length } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (_CMSG_ALIGN(crate::mem::size_of::()) + _CMSG_ALIGN(length as usize)) as c_uint + (_CMSG_ALIGN(mem::size_of::()) + _CMSG_ALIGN(length as usize)) as c_uint } pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } @@ -2783,7 +2783,7 @@ f! { } pub fn _DEXTRA_VALID(_x: *const crate::dirent_extra, _d: *const dirent) -> bool { - let sz = _x as usize - _d as usize + crate::mem::size_of::(); + let sz = _x as usize - _d as usize + mem::size_of::(); let rsz = (*_d).d_reclen as usize; if sz > rsz || sz + (*_x).d_datalen as usize > rsz { @@ -2795,14 +2795,14 @@ f! { pub fn _DEXTRA_NEXT(_x: *const crate::dirent_extra) -> *mut crate::dirent_extra { _ALIGN( - _x as usize + crate::mem::size_of::() + (*_x).d_datalen as usize, + _x as usize + mem::size_of::() + (*_x).d_datalen as usize, 8, ) as *mut crate::dirent_extra } pub fn SOCKCREDSIZE(ngrps: usize) -> usize { let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 }; - crate::mem::size_of::() + crate::mem::size_of::() * ngrps + mem::size_of::() + mem::size_of::() * ngrps } pub fn major(dev: crate::dev_t) -> c_uint { diff --git a/src/unix/nto/neutrino.rs b/src/unix/nto/neutrino.rs index 8d559015ac8cb..71a2301d1b968 100644 --- a/src/unix/nto/neutrino.rs +++ b/src/unix/nto/neutrino.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_long, c_uint, c_void, size_t}; +use crate::prelude::*; pub type nto_job_t = crate::sync_t; diff --git a/src/unix/nto/x86_64.rs b/src/unix/nto/x86_64.rs index ef720ac0a3373..8e938c3bba4fc 100644 --- a/src/unix/nto/x86_64.rs +++ b/src/unix/nto/x86_64.rs @@ -1,4 +1,4 @@ -use crate::{c_int, c_void, size_t}; +use crate::prelude::*; pub type c_char = i8; pub type wchar_t = u32; @@ -101,8 +101,8 @@ cfg_if! { } } - impl crate::fmt::Debug for x86_64_fpu_registers { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for x86_64_fpu_registers { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { unsafe { f.debug_struct("x86_64_fpu_registers") .field("fsave_area", &self.fsave_area) @@ -113,8 +113,8 @@ cfg_if! { } } - impl crate::hash::Hash for x86_64_fpu_registers { - fn hash(&self, state: &mut H) { + impl hash::Hash for x86_64_fpu_registers { + fn hash(&self, state: &mut H) { unsafe { self.fsave_area.hash(state); self.fxsave_area.hash(state); diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index 014122e421ab8..95d1156bfc48b 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -1,4 +1,5 @@ -use crate::{c_void, in6_addr, in_addr_t, timespec, DIR}; +use crate::prelude::*; +use crate::{in6_addr, in_addr_t, timespec, DIR}; pub type nlink_t = u16; pub type ino_t = u16; diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 1d2738a45cd49..3a8886e289a32 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1,6 +1,4 @@ -use crate::{ - c_int, c_longlong, c_short, c_uchar, c_uint, c_ulonglong, c_ushort, c_void, size_t, ssize_t, -}; +use crate::prelude::*; pub type c_char = i8; pub type wchar_t = i32; @@ -84,8 +82,7 @@ s_no_extra_traits! { pub struct sockaddr_storage { pub ss_family: crate::sa_family_t, - __ss_padding: - [u8; 128 - crate::mem::size_of::() - crate::mem::size_of::()], + __ss_padding: [u8; 128 - mem::size_of::() - mem::size_of::()], __ss_align: c_ulong, } } @@ -1020,20 +1017,20 @@ pub const PRIO_USER: c_int = 2; f! { pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } @@ -1280,8 +1277,8 @@ cfg_if! { impl Eq for dirent {} - impl crate::fmt::Debug for dirent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for dirent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -1292,8 +1289,8 @@ cfg_if! { } } - impl crate::hash::Hash for dirent { - fn hash(&self, state: &mut H) { + impl hash::Hash for dirent { + fn hash(&self, state: &mut H) { self.d_ino.hash(state); self.d_off.hash(state); self.d_reclen.hash(state); @@ -1315,8 +1312,8 @@ cfg_if! { impl Eq for sockaddr_un {} - impl crate::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_un") .field("sun_family", &self.sun_family) // FIXME: .field("sun_path", &self.sun_path) @@ -1324,8 +1321,8 @@ cfg_if! { } } - impl crate::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { self.sun_family.hash(state); self.sun_path.hash(state); } @@ -1345,8 +1342,8 @@ cfg_if! { impl Eq for sockaddr_storage {} - impl crate::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_family", &self.ss_family) .field("__ss_align", &self.__ss_align) @@ -1355,8 +1352,8 @@ cfg_if! { } } - impl crate::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_family.hash(state); self.__ss_padding.hash(state); self.__ss_align.hash(state); @@ -1399,8 +1396,8 @@ cfg_if! { impl Eq for utsname {} - impl crate::fmt::Debug for utsname { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utsname { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utsname") // FIXME: .field("sysname", &self.sysname) // FIXME: .field("nodename", &self.nodename) @@ -1412,8 +1409,8 @@ cfg_if! { } } - impl crate::hash::Hash for utsname { - fn hash(&self, state: &mut H) { + impl hash::Hash for utsname { + fn hash(&self, state: &mut H) { self.sysname.hash(state); self.nodename.hash(state); self.release.hash(state); diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index 0fea3b7dd24ba..a1adae00dcc12 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -1,6 +1,6 @@ +use crate::prelude::*; use crate::{ - c_char, c_double, c_int, c_short, c_uint, c_ulong, c_ushort, c_void, exit_status, off_t, - size_t, ssize_t, NET_MAC_AWARE, NET_MAC_AWARE_INHERIT, PRIV_AWARE_RESET, PRIV_DEBUG, + exit_status, off_t, NET_MAC_AWARE, NET_MAC_AWARE_INHERIT, PRIV_AWARE_RESET, PRIV_DEBUG, PRIV_PFEXEC, PRIV_XPOLICY, }; @@ -89,8 +89,8 @@ cfg_if! { impl Eq for utmpx {} - impl crate::fmt::Debug for utmpx { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utmpx { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utmpx") .field("ut_user", &self.ut_user) .field("ut_id", &self.ut_id) @@ -107,8 +107,8 @@ cfg_if! { } } - impl crate::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_user.hash(state); self.ut_type.hash(state); self.ut_pid.hash(state); @@ -129,8 +129,8 @@ cfg_if! { } } impl Eq for epoll_event {} - impl crate::fmt::Debug for epoll_event { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for epoll_event { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let events = self.events; let u64 = self.u64; f.debug_struct("epoll_event") @@ -139,8 +139,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for epoll_event { - fn hash(&self, state: &mut H) { + impl hash::Hash for epoll_event { + fn hash(&self, state: &mut H) { let events = self.events; let u64 = self.u64; events.hash(state); diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 981c697e923f3..4b986e1e9c0c2 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1,8 +1,6 @@ use core::mem::size_of; -use crate::{ - c_double, c_int, c_longlong, c_short, c_uchar, c_uint, c_ushort, c_void, size_t, ssize_t, -}; +use crate::prelude::*; pub type c_char = i8; pub type c_long = i64; @@ -587,16 +585,16 @@ cfg_if! { } } impl Eq for sockaddr_un {} - impl crate::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_un") .field("sun_family", &self.sun_family) // FIXME: .field("sun_path", &self.sun_path) .finish() } } - impl crate::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { self.sun_family.hash(state); self.sun_path.hash(state); } @@ -631,8 +629,8 @@ cfg_if! { } } impl Eq for utsname {} - impl crate::fmt::Debug for utsname { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utsname { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utsname") // FIXME: .field("sysname", &self.sysname) // FIXME: .field("nodename", &self.nodename) @@ -642,8 +640,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for utsname { - fn hash(&self, state: &mut H) { + impl hash::Hash for utsname { + fn hash(&self, state: &mut H) { self.sysname.hash(state); self.nodename.hash(state); self.release.hash(state); @@ -661,15 +659,15 @@ cfg_if! { } } impl Eq for fd_set {} - impl crate::fmt::Debug for fd_set { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for fd_set { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("fd_set") // FIXME: .field("fds_bits", &self.fds_bits) .finish() } } - impl crate::hash::Hash for fd_set { - fn hash(&self, state: &mut H) { + impl hash::Hash for fd_set { + fn hash(&self, state: &mut H) { self.fds_bits.hash(state); } } @@ -687,8 +685,8 @@ cfg_if! { } } impl Eq for sockaddr_storage {} - impl crate::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_family", &self.ss_family) .field("__ss_pad1", &self.__ss_pad1) @@ -697,8 +695,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { self.ss_family.hash(state); self.__ss_pad1.hash(state); self.__ss_align.hash(state); @@ -756,8 +754,8 @@ cfg_if! { } } impl Eq for siginfo_t {} - impl crate::fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for siginfo_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("siginfo_t") .field("si_signo", &self.si_signo) .field("si_code", &self.si_code) @@ -766,8 +764,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for siginfo_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for siginfo_t { + fn hash(&self, state: &mut H) { self.si_signo.hash(state); self.si_code.hash(state); self.si_errno.hash(state); @@ -796,8 +794,8 @@ cfg_if! { } } impl Eq for sockaddr_dl {} - impl crate::fmt::Debug for sockaddr_dl { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_dl { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_dl") .field("sdl_family", &self.sdl_family) .field("sdl_index", &self.sdl_index) @@ -809,8 +807,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sockaddr_dl { - fn hash(&self, state: &mut H) { + impl hash::Hash for sockaddr_dl { + fn hash(&self, state: &mut H) { self.sdl_family.hash(state); self.sdl_index.hash(state); self.sdl_type.hash(state); @@ -831,8 +829,8 @@ cfg_if! { } } impl Eq for sigevent {} - impl crate::fmt::Debug for sigevent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sigevent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sigevent") .field("sigev_notify", &self.sigev_notify) .field("sigev_signo", &self.sigev_signo) @@ -842,8 +840,8 @@ cfg_if! { .finish() } } - impl crate::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { + impl hash::Hash for sigevent { + fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); self.sigev_signo.hash(state); self.sigev_value.hash(state); @@ -861,8 +859,8 @@ cfg_if! { } } impl Eq for pad128_t {} - impl crate::fmt::Debug for pad128_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for pad128_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { unsafe { f.debug_struct("pad128_t") // FIXME: .field("_q", &{self._q}) @@ -871,8 +869,8 @@ cfg_if! { } } } - impl crate::hash::Hash for pad128_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for pad128_t { + fn hash(&self, state: &mut H) { unsafe { // FIXME: state.write_i64(self._q as i64); self._l.hash(state); @@ -888,8 +886,8 @@ cfg_if! { } } impl Eq for upad128_t {} - impl crate::fmt::Debug for upad128_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for upad128_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { unsafe { f.debug_struct("upad128_t") // FIXME: .field("_q", &{self._q}) @@ -898,8 +896,8 @@ cfg_if! { } } } - impl crate::hash::Hash for upad128_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for upad128_t { + fn hash(&self, state: &mut H) { unsafe { // FIXME: state.write_i64(self._q as i64); self._l.hash(state); @@ -2487,7 +2485,7 @@ f! { } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - _CMSG_DATA_ALIGN(crate::mem::size_of::()) as c_uint + length + _CMSG_DATA_ALIGN(mem::size_of::()) as c_uint + length } pub fn CMSG_FIRSTHDR(mhdr: *const crate::msghdr) -> *mut cmsghdr { @@ -2517,20 +2515,20 @@ f! { } pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { - let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { - let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { - let bits = crate::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] |= 1 << (fd % bits); return; diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index 63009c2105d17..f4a8031756798 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -1,7 +1,7 @@ +use crate::prelude::*; use crate::{ - c_char, c_int, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, c_void, exit_status, off_t, - size_t, NET_MAC_AWARE, NET_MAC_AWARE_INHERIT, PRIV_AWARE_RESET, PRIV_DEBUG, PRIV_PFEXEC, - PRIV_XPOLICY, + exit_status, off_t, NET_MAC_AWARE, NET_MAC_AWARE_INHERIT, PRIV_AWARE_RESET, PRIV_DEBUG, + PRIV_PFEXEC, PRIV_XPOLICY, }; pub type door_attr_t = c_uint; @@ -126,8 +126,8 @@ cfg_if! { impl Eq for utmpx {} - impl crate::fmt::Debug for utmpx { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for utmpx { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utmpx") .field("ut_user", &self.ut_user) .field("ut_id", &self.ut_id) @@ -144,8 +144,8 @@ cfg_if! { } } - impl crate::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { + impl hash::Hash for utmpx { + fn hash(&self, state: &mut H) { self.ut_user.hash(state); self.ut_type.hash(state); self.ut_pid.hash(state); diff --git a/src/unix/solarish/x86.rs b/src/unix/solarish/x86.rs index db449b1e86690..a37ed3d74e978 100644 --- a/src/unix/solarish/x86.rs +++ b/src/unix/solarish/x86.rs @@ -1,4 +1,4 @@ -use crate::{c_char, c_long, c_ulong, c_ulonglong, c_ushort}; +use crate::prelude::*; pub type Elf32_Addr = c_ulong; pub type Elf32_Half = c_ushort; diff --git a/src/unix/solarish/x86_64.rs b/src/unix/solarish/x86_64.rs index d69fc9a5afbda..1ea8ce987dab5 100644 --- a/src/unix/solarish/x86_64.rs +++ b/src/unix/solarish/x86_64.rs @@ -1,4 +1,4 @@ -use crate::{c_char, c_int, c_long, c_uint, c_ulong, c_ulonglong, c_ushort, c_void}; +use crate::prelude::*; cfg_if! { if #[cfg(target_os = "solaris")] { @@ -110,8 +110,8 @@ cfg_if! { } } impl Eq for __c_anonymous_fp_reg_set {} - impl crate::fmt::Debug for __c_anonymous_fp_reg_set { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for __c_anonymous_fp_reg_set { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { unsafe { f.debug_struct("__c_anonymous_fp_reg_set") .field("fpchip_state", &{ self.fpchip_state }) @@ -126,8 +126,8 @@ cfg_if! { } } impl Eq for fpregset_t {} - impl crate::fmt::Debug for fpregset_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for fpregset_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("fpregset_t") .field("fp_reg_set", &self.fp_reg_set) .finish() @@ -139,8 +139,8 @@ cfg_if! { } } impl Eq for mcontext_t {} - impl crate::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("mcontext_t") .field("gregs", &self.gregs) .field("fpregs", &self.fpregs) @@ -158,8 +158,8 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl crate::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 2781538569c36..f5e582055a5cb 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -3,7 +3,7 @@ use core::mem::size_of; use core::ptr::null_mut; -use crate::c_void; +use crate::prelude::*; #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum DIR {} @@ -463,8 +463,8 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { - impl crate::fmt::Debug for dirent { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for dirent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_name", &&self.d_name[..]) @@ -472,8 +472,8 @@ cfg_if! { } } - impl crate::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_un") .field("sun_len", &self.sun_len) .field("sun_family", &self.sun_family) @@ -482,8 +482,8 @@ cfg_if! { } } - impl crate::fmt::Debug for RTP_DESC { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for RTP_DESC { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("RTP_DESC") .field("status", &self.status) .field("options", &self.options) @@ -497,8 +497,8 @@ cfg_if! { .finish() } } - impl crate::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_len", &self.ss_len) .field("ss_family", &self.ss_family) @@ -525,8 +525,8 @@ cfg_if! { } } impl Eq for sa_u_t {} - impl crate::fmt::Debug for sa_u_t { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sa_u_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { unsafe { let h = match self.sa_handler { Some(handler) => handler as usize, @@ -537,8 +537,8 @@ cfg_if! { } } } - impl crate::hash::Hash for sa_u_t { - fn hash(&self, state: &mut H) { + impl hash::Hash for sa_u_t { + fn hash(&self, state: &mut H) { unsafe { let h = match self.sa_handler { Some(handler) => handler as usize, @@ -555,15 +555,15 @@ cfg_if! { } } impl Eq for sigval {} - impl crate::fmt::Debug for sigval { - fn fmt(&self, f: &mut crate::fmt::Formatter) -> crate::fmt::Result { + impl fmt::Debug for sigval { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sigval") .field("sival_ptr", unsafe { &(self.sival_ptr as usize) }) .finish() } } - impl crate::hash::Hash for sigval { - fn hash(&self, state: &mut H) { + impl hash::Hash for sigval { + fn hash(&self, state: &mut H) { unsafe { (self.sival_ptr as usize).hash(state) }; } } @@ -1095,13 +1095,13 @@ impl Clone for fpos_t { f! { pub {const} fn CMSG_ALIGN(len: usize) -> usize { - len + crate::mem::size_of::() - 1 & !(crate::mem::size_of::() - 1) + len + mem::size_of::() - 1 & !(mem::size_of::() - 1) } pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { let next = cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize) - + CMSG_ALIGN(crate::mem::size_of::()); + + CMSG_ALIGN(mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next <= max { (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr @@ -1119,15 +1119,15 @@ f! { } pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).offset(CMSG_ALIGN(crate::mem::size_of::()) as isize) + (cmsg as *mut c_uchar).offset(CMSG_ALIGN(mem::size_of::()) as isize) } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(crate::mem::size_of::())) as c_uint + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(mem::size_of::())) as c_uint } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - CMSG_ALIGN(crate::mem::size_of::()) as c_uint + length + CMSG_ALIGN(mem::size_of::()) as c_uint + length } } diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index f04081bad1fa7..5919d43b857b8 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -5,8 +5,7 @@ use core::iter::Iterator; -use super::{Send, Sync}; -use crate::c_void; +use crate::prelude::*; pub type c_char = i8; pub type c_uchar = u8; diff --git a/src/wasi/p2.rs b/src/wasi/p2.rs index 344029f222334..7332a779396d3 100644 --- a/src/wasi/p2.rs +++ b/src/wasi/p2.rs @@ -1,4 +1,4 @@ -use crate::{c_char, c_int, c_uchar, c_uint, c_ushort, c_void, size_t, ssize_t}; +use crate::prelude::*; pub type sa_family_t = c_ushort; pub type in_port_t = c_ushort; diff --git a/src/windows/gnu/mod.rs b/src/windows/gnu/mod.rs index e593dff519e04..a263dfa736bba 100644 --- a/src/windows/gnu/mod.rs +++ b/src/windows/gnu/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_char, c_int, c_uint, size_t}; +use crate::prelude::*; cfg_if! { if #[cfg(target_pointer_width = "64")] { diff --git a/src/windows/mod.rs b/src/windows/mod.rs index f900bf0e16c25..927f01f409785 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -1,6 +1,6 @@ //! Windows CRT definitions -use crate::c_void; +use crate::prelude::*; pub type c_schar = i8; pub type c_uchar = u8; diff --git a/src/windows/msvc/mod.rs b/src/windows/msvc/mod.rs index 3f9f34e7e24ff..5b620bc6c1afa 100644 --- a/src/windows/msvc/mod.rs +++ b/src/windows/msvc/mod.rs @@ -1,4 +1,4 @@ -use crate::{c_char, c_int, c_uint, c_void, size_t}; +use crate::prelude::*; pub const L_tmpnam: c_uint = 260; pub const TMP_MAX: c_uint = 0x7fff_ffff; From b52375d8365241597c7d37733caee83be1f8bf64 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 27 Nov 2024 19:59:53 -0500 Subject: [PATCH 0420/1228] Add a `.git-blame-ignore-revs` entry for adding the prelude Ignore 108310db03 ("Make use of the crate's prelude...") since this was an automated refactoring that updated type paths in most files. This is the `main` version of 744fce2a23 ("Add a .git-blame-ignore-revs entry for adding the prelude"). --- .git-blame-ignore-revs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 64da908d6e919..d358a2cd3d349 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -1,5 +1,6 @@ # Format macro bodies 50f26e08e146b7e9c7d1af9614486eba327d1e31 -# Automated changes to upgrade to the 2021 edition +# Automated changes related to the 2021 edition upgrade 643182f7da26cedb09349b8bb3735c2e58ba24e6 +108310db03e7db35ef48a902d9ce9a88ab8f9b77 From 4ca22fa9532dcba26e9138f0fd9b4cd592020923 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 27 Nov 2024 17:10:52 -0500 Subject: [PATCH 0421/1228] Fix the build with `rustc-dep-of-std` Since [1] we use derive macros rather than manually implementing `Clone` and `Copy`. However, this caused the build in `std` to start failing since the `core` prelude is not available. This provides the derive macros as well as `derive` itself. Resolve this by using complete paths. Additionally allow `internal_features` to suppress the warning using `link_cfg`, and change to using global paths for all uses of `core`. Link: https://github.com/rust-lang/libc/pull/4038 [1] (backport ) (cherry picked from commit d69ad56bd8c12329780739d42f9ed8392814595b) --- src/lib.rs | 1 + src/macros.rs | 33 +++++++++++++++++++++------------ 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 1be0a003382d1..4e73243af7e5d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -21,6 +21,7 @@ // Attributes needed when building as part of the standard library #![cfg_attr(feature = "rustc-dep-of-std", feature(link_cfg, no_core))] #![cfg_attr(libc_thread_local, feature(thread_local))] +#![cfg_attr(feature = "rustc-dep-of-std", allow(internal_features))] // Enable extra lints: #![cfg_attr(feature = "extra_traits", deny(missing_debug_implementations))] #![deny(missing_copy_implementations, safe_packed_borrows)] diff --git a/src/macros.rs b/src/macros.rs index 2ea084398da41..3bfac90518ad9 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -70,13 +70,13 @@ macro_rules! prelude { mod prelude { // Exports from `core` #[allow(unused_imports)] - pub(crate) use core::clone::Clone; + pub(crate) use ::core::clone::Clone; #[allow(unused_imports)] - pub(crate) use core::marker::{Copy, Send, Sync}; + pub(crate) use ::core::marker::{Copy, Send, Sync}; #[allow(unused_imports)] - pub(crate) use core::option::Option; + pub(crate) use ::core::option::Option; #[allow(unused_imports)] - pub(crate) use core::{fmt, hash, iter, mem}; + pub(crate) use ::core::{fmt, hash, iter, mem}; // Commonly used types defined in this crate #[allow(unused_imports)] @@ -108,8 +108,11 @@ macro_rules! s { (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => ( __item! { #[repr(C)] - #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] - #[derive(Copy, Clone)] + #[cfg_attr( + feature = "extra_traits", + ::core::prelude::v1::derive(Debug, Eq, Hash, PartialEq) + )] + #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)] #[allow(deprecated)] $(#[$attr])* pub struct $i { $($field)* } @@ -127,8 +130,11 @@ macro_rules! s_paren { pub struct $i:ident ( $($field:tt)* ); )*) => ($( __item! { - #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] - #[derive(Copy, Clone)] + #[cfg_attr( + feature = "extra_traits", + ::core::prelude::v1::derive(Debug, Eq, Hash, PartialEq) + )] + #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)] $(#[$attr])* pub struct $i ( $($field)* ); } @@ -149,7 +155,7 @@ macro_rules! s_no_extra_traits { (it: $(#[$attr:meta])* pub union $i:ident { $($field:tt)* }) => ( __item! { #[repr(C)] - #[derive(Copy, Clone)] + #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)] $(#[$attr])* pub union $i { $($field)* } } @@ -158,7 +164,7 @@ macro_rules! s_no_extra_traits { (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => ( __item! { #[repr(C)] - #[derive(Copy, Clone)] + #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)] $(#[$attr])* pub struct $i { $($field)* } } @@ -186,8 +192,11 @@ macro_rules! e { pub enum $i:ident { $($field:tt)* } )*) => ($( __item! { - #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] - #[derive(Copy, Clone)] + #[cfg_attr( + feature = "extra_traits", + ::core::prelude::v1::derive(Debug, Eq, Hash, PartialEq) + )] + #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)] $(#[$attr])* pub enum $i { $($field)* } } From 96db1f4edb862c32d4f1cf9708188359eb475774 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 27 Nov 2024 22:14:21 -0500 Subject: [PATCH 0422/1228] ci: test with `rustc-dep-of-std` Add a test that the crate builds correctly with the configuration that is used in `std`. (backport ) (cherry picked from commit 9839a9ab3727e8046afb1951b4e3ace016b64476) --- ci/verify-build.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ci/verify-build.sh b/ci/verify-build.sh index e1cad0b7df57c..97d6bba4f822d 100755 --- a/ci/verify-build.sh +++ b/ci/verify-build.sh @@ -70,6 +70,11 @@ test_target() { $cmd --no-default-features $cmd --no-default-features --features extra_traits + # Ensure the crate will build when used with `std` + if [ "$rust" = "nightly" ]; then + $cmd --no-default-features --features rustc-dep-of-std + fi + # For tier 2 freebsd targets, check with the different versions we support # if on nightly or stable case "$rust-$target" in From 70b1487bb06aaaeb12df794fe9b6dda4121de591 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 27 Nov 2024 23:27:11 -0500 Subject: [PATCH 0423/1228] Alow `static_mut_refs` with `rustc-dep-of-std` This combination raises an error suggesting `&raw mut errno`. This was removed in 1.0, but allow the lint on 0.2 for now. --- src/lib.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 4e73243af7e5d..9ac6df16073ee 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -22,6 +22,8 @@ #![cfg_attr(feature = "rustc-dep-of-std", feature(link_cfg, no_core))] #![cfg_attr(libc_thread_local, feature(thread_local))] #![cfg_attr(feature = "rustc-dep-of-std", allow(internal_features))] +// DIFF(1.0): The thread local references that raise this lint were removed in 1.0 +#![cfg_attr(feature = "rustc-dep-of-std", allow(static_mut_refs))] // Enable extra lints: #![cfg_attr(feature = "extra_traits", deny(missing_debug_implementations))] #![deny(missing_copy_implementations, safe_packed_borrows)] From 3831e59feb28cdf00a80b2c5ca85af47b1659fb3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 23:47:59 +0000 Subject: [PATCH 0424/1228] chore: release v0.2.167 Co-authored-by: Trevor Gross --- CHANGELOG.md | 28 ++++++++++++++++++++++++++++ Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d8497823a660..97c0564938dbf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,34 @@ # Changelog ## [Unreleased] +## [0.2.167](https://github.com/rust-lang/libc/compare/0.2.166...0.2.167) - 2024-11-28 + +### Added + +- Solarish: add `st_fstype` to `stat` +- Trusty: Add `intptr_t` and `uintptr_t` ([#4161](https://github.com/rust-lang/libc/pull/4161)) + +### Fixed + +- Fix the build with `rustc-dep-of-std` +- Wasi: Add back unsafe block for `clockid_t` static variables ([#4157](https://github.com/rust-lang/libc/pull/4157)) + +### Cleanup + +- Create an internal prelude +- Fix `unused_qualifications` + +### Other + +- CI: Check various FreeBSD versions ([#4159](https://github.com/rust-lang/libc/pull/4159)) +- CI: add a timeout for all jobs +- CI: verify MSRV for `wasm32-wasi` +- Migrate to the 2021 edition + +### Removed + +- Remove one unused import after the edition 2021 bump + ## [0.2.166](https://github.com/rust-lang/libc/compare/0.2.165...0.2.166) - 2024-11-26 ### Fixed diff --git a/Cargo.toml b/Cargo.toml index dd35017b13235..6c54201d759d8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.166" +version = "0.2.167" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index c8e215985b83b..d97a214d4c44d 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -14,7 +14,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.166" +version = "0.2.167" default-features = false [build-dependencies] From e9b1ee414bea54aba9cf484d83ee7672d199aff1 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Sun, 8 Dec 2024 10:23:38 -0700 Subject: [PATCH 0425/1228] Deprecate FreeBSD's CAP_UNUSED* and CAP_ALL* constants They aren't stable across OS versions, and they don't have any legitimate use in applications. --- libc-test/build.rs | 5 +++++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 66548cea19b01..ffcfa49b998ed 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2649,6 +2649,11 @@ fn test_freebsd(target: &str) { // Added in FreeBSD 14.0 "TCP_FUNCTION_ALIAS" if Some(14) > freebsd_ver => true, + // These constants may change or disappear in future OS releases, and they probably + // have no legitimate use in applications anyway. + "CAP_UNUSED0_44" | "CAP_UNUSED0_57" | "CAP_UNUSED1_22" | "CAP_UNUSED1_57" | + "CAP_ALL0" | "CAP_ALL1" => true, + _ => false, } }); diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index fdaf2d46d35c0..6cbe59d890aff 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -2711,8 +2711,11 @@ pub const CAP_SOCK_SERVER: u64 = CAP_ACCEPT | CAP_SEND | CAP_SETSOCKOPT | CAP_SHUTDOWN; +#[deprecated(since = "0.2.165", note = "Not stable across OS versions")] pub const CAP_ALL0: u64 = cap_right!(0, 0x000007FFFFFFFFFFu64); +#[deprecated(since = "0.2.165", note = "Not stable across OS versions")] pub const CAP_UNUSED0_44: u64 = cap_right!(0, 0x0000080000000000u64); +#[deprecated(since = "0.2.165", note = "Not stable across OS versions")] pub const CAP_UNUSED0_57: u64 = cap_right!(0, 0x0100000000000000u64); pub const CAP_MAC_GET: u64 = cap_right!(1, 0x0000000000000001u64); pub const CAP_MAC_SET: u64 = cap_right!(1, 0x0000000000000002u64); @@ -2736,8 +2739,11 @@ pub const CAP_ACL_GET: u64 = cap_right!(1, 0x0000000000040000u64); pub const CAP_ACL_SET: u64 = cap_right!(1, 0x0000000000080000u64); pub const CAP_KQUEUE_CHANGE: u64 = cap_right!(1, 0x0000000000100000u64); pub const CAP_KQUEUE: u64 = CAP_KQUEUE_EVENT | CAP_KQUEUE_CHANGE; +#[deprecated(since = "0.2.165", note = "Not stable across OS versions")] pub const CAP_ALL1: u64 = cap_right!(1, 0x00000000001FFFFFu64); +#[deprecated(since = "0.2.165", note = "Not stable across OS versions")] pub const CAP_UNUSED1_22: u64 = cap_right!(1, 0x0000000000200000u64); +#[deprecated(since = "0.2.165", note = "Not stable across OS versions")] pub const CAP_UNUSED1_57: u64 = cap_right!(1, 0x0100000000000000u64); pub const CAP_FCNTL_GETFL: u32 = 1 << 3; pub const CAP_FCNTL_SETFL: u32 = 1 << 4; From 74d02e8253378f491af5f62703dba759f3806665 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 7 Dec 2024 02:30:18 +0000 Subject: [PATCH 0426/1228] ci: Add caching We have a handful of jobs that could benefit from reusing the target directory. Make use of Swatinem/rust-cache to do so. Something still isn't quite right since the largest job only seems to be restoring a portion of the cache, but this still shows an improvement for most jobs. (backport ) (cherry picked from commit af7e1267adc60f99767f8c47dad20d1d5b5ca953) --- .github/workflows/ci.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 703b9d7868a3e..ee606ff19cfa0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -44,8 +44,20 @@ jobs: - uses: actions/checkout@v4 - name: Setup Rust toolchain run: ./ci/install-rust.sh + + # FIXME(ci): These `du` statements are temporary for debugging cache + - name: Target size before restoring cache + run: du -sh target | sort -k 2 || true + - uses: Swatinem/rust-cache@v2 + with: + key: ${{ matrix.os }}-${{ matrix.toolchain }} + - name: Target size after restoring cache + run: du -sh target | sort -k 2 || true + - name: Execute build.sh run: ./ci/verify-build.sh + - name: Target size after job completion + run: du -sh target | sort -k 2 test_tier1: name: Test tier1 @@ -82,6 +94,9 @@ jobs: - uses: actions/checkout@v4 - name: Setup Rust toolchain run: ./ci/install-rust.sh + - uses: Swatinem/rust-cache@v2 + with: + key: ${{ matrix.target }} - name: Run natively if: "!matrix.docker" run: ./ci/run.sh ${{ matrix.target }} @@ -133,6 +148,9 @@ jobs: - uses: actions/checkout@v4 - name: Setup Rust toolchain run: ./ci/install-rust.sh + - uses: Swatinem/rust-cache@v2 + with: + key: ${{ matrix.target }} - name: Execute run-docker.sh run: ./ci/run-docker.sh ${{ matrix.target }} From 1645df89f59c2e30cfe56d3a14c85ed2dc557996 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 7 Dec 2024 02:05:42 +0000 Subject: [PATCH 0427/1228] Allow the `unpredictable_function_pointer_comparisons` where needed This lint was recently added so this change is needed to fix CI. The suggested alternative is to use `ptr::fn_addr_eq` which isn't available until 1.85, so allow the lint here. (backport ) (cherry picked from commit 99f4dd920b580ca3d201d948153cffe54158e4b8) --- src/fuchsia/mod.rs | 2 ++ src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 82a0676bfbea3..71b88f579a394 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -1340,6 +1340,8 @@ cfg_if! { } } + // FIXME(msrv): suggested method was added in 1.85 + #[allow(unpredictable_function_pointer_comparisons)] impl PartialEq for sigevent { fn eq(&self, other: &sigevent) -> bool { self.sigev_value == other.sigev_value diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index b3ed7684154a9..a73766a65c7de 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -238,6 +238,8 @@ cfg_if! { } } + // FIXME(msrv): suggested method was added in 1.85 + #[allow(unpredictable_function_pointer_comparisons)] impl PartialEq for __c_anonymous_elf64_auxv_union { fn eq(&self, other: &__c_anonymous_elf64_auxv_union) -> bool { unsafe { From 68d2da5c156f68f41f17351bfc338fa2a686ca4b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 7 Dec 2024 00:09:36 -0500 Subject: [PATCH 0428/1228] ci: Extract repetitive code to a function (backport ) (cherry picked from commit cde5e549e1b4684a851e0693efd87bc6b07add64) --- ci/verify-build.sh | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/ci/verify-build.sh b/ci/verify-build.sh index 97d6bba4f822d..f24c3c39f5f72 100755 --- a/ci/verify-build.sh +++ b/ci/verify-build.sh @@ -30,8 +30,8 @@ fi # Run the tests for a specific target test_target() { - target="${1}" - no_dist="${2:-0}" + target="$1" + no_dist="$2" RUSTFLAGS="${RUSTFLAGS:-}" @@ -269,7 +269,13 @@ case "$rust" in *) supports_wasi_pn=0 ;; esac -for target in $targets; do +some_tests_run=0 + +# Apply the `FILTER` variable, do OS-specific tasks, and run a target +filter_and_run() { + target="$1" + no_dist="${2:-0}" + if echo "$target" | grep -q "$filter"; then if [ "$os" = "windows" ]; then TARGET="$target" ./ci/install-rust.sh @@ -282,27 +288,24 @@ for target in $targets; do # `wasm32-wasip2` only exists in recent versions of Rust if [ "$target" = "wasm32-wasip2" ] && [ "$supports_wasi_pn" = "0" ]; then - continue + return fi - test_target "$target" - test_run=1 + test_target "$target" "$no_dist" + some_tests_run=1 fi +} + +for target in $targets; do + filter_and_run "$target" done for target in ${no_dist_targets:-}; do - if echo "$target" | grep -q "$filter"; then - if [ "$os" = "windows" ]; then - TARGET="$target" ./ci/install-rust.sh - fi - - test_target "$target" 1 - test_run=1 - fi + filter_and_run "$target" 1 done # Make sure we didn't accidentally filter everything -if [ "${test_run:-}" != 1 ]; then +if [ "$some_tests_run" != 1 ]; then echo "No tests were run" exit 1 fi From d673baa5a6643928d0da88f6b71cfee06743ff1e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 6 Dec 2024 23:59:01 -0500 Subject: [PATCH 0429/1228] ci: Use workflow commands to group output by target (backport ) (cherry picked from commit 5b471ae47f0e762c0687c8c72e5b62b4f001cfef) --- ci/verify-build.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ci/verify-build.sh b/ci/verify-build.sh index f24c3c39f5f72..e61fc69188c59 100755 --- a/ci/verify-build.sh +++ b/ci/verify-build.sh @@ -28,6 +28,12 @@ if [ "$TOOLCHAIN" = "nightly" ] ; then rustup component add rust-src fi +# Print GHA workflow commands +echo_if_ci() { + # Discard stderr so the "set -x" trace doesn't show up + { [ -n "${CI:-}" ] && echo "$1"; } 2> /dev/null +} + # Run the tests for a specific target test_target() { target="$1" @@ -297,11 +303,15 @@ filter_and_run() { } for target in $targets; do + echo_if_ci "::group::Target: $target" filter_and_run "$target" + echo_if_ci "::endgroup::" done for target in ${no_dist_targets:-}; do + echo_if_ci "::group::Target: $target" filter_and_run "$target" 1 + echo_if_ci "::endgroup::" done # Make sure we didn't accidentally filter everything From 76b35d38f8ca610e677f2e830b894eba77db1f95 Mon Sep 17 00:00:00 2001 From: Rain Date: Tue, 3 Dec 2024 21:48:09 +0000 Subject: [PATCH 0430/1228] [solaris/illumos] add SIGRTMIN and SIGRTMAX Add these functions, similar to the Linux ones. Also add tests. For illumos, the source code is at [1] and documentation is at [2]. Blame suggests that Solaris also supports the same calls. [1]: https://github.com/illumos/illumos-gate/blame/27ecbff00d8c86a2647d6fe325cacb220d712115/usr/src/uts/common/sys/iso/signal_iso.h#L100-L101 [2]: https://illumos.org/man/3HEAD/signal.h (backport ) (cherry picked from commit a8aaadfd77362fefa534c76d29a17f3cad5bddfa) --- libc-test/build.rs | 2 ++ libc-test/semver/solarish.txt | 2 ++ libc-test/test/sigrt.rs | 4 +++- src/unix/solarish/mod.rs | 8 ++++++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index ffcfa49b998ed..31b0dc1cb3aa3 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -42,6 +42,8 @@ fn do_cc() { || target.contains("l4re") || target.contains("android") || target.contains("emscripten") + || target.contains("solaris") + || target.contains("illumos") { cc::Build::new().file("src/sigrt.c").compile("sigrt"); } diff --git a/libc-test/semver/solarish.txt b/libc-test/semver/solarish.txt index 9d0ae3ac18b5d..f6bb5be4e5aca 100644 --- a/libc-test/semver/solarish.txt +++ b/libc-test/semver/solarish.txt @@ -16,6 +16,8 @@ LIO_WAIT LIO_WRITE PIPE_BUF SIGEV_PORT +SIGRTMAX +SIGRTMIN _POSIX_VDISABLE _ST_FSTYPSZ aio_cancel diff --git a/libc-test/test/sigrt.rs b/libc-test/test/sigrt.rs index 25e6ca4457b1b..1f89ce042186b 100644 --- a/libc-test/test/sigrt.rs +++ b/libc-test/test/sigrt.rs @@ -4,7 +4,9 @@ target_os = "linux", target_os = "l4re", target_os = "android", - target_os = "emscripten" + target_os = "emscripten", + target_os = "solaris", + target_os = "illumos", ))] mod t { use libc; diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 4b986e1e9c0c2..8cefc64e5718f 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -2542,6 +2542,14 @@ f! { } safe_f! { + pub fn SIGRTMAX() -> c_int { + unsafe { crate::sysconf(_SC_SIGRT_MAX) as c_int } + } + + pub fn SIGRTMIN() -> c_int { + unsafe { crate::sysconf(_SC_SIGRT_MIN) as c_int } + } + pub {const} fn WIFEXITED(status: c_int) -> bool { (status & 0xFF) == 0 } From 008ffc17885ff826f1ab4af4cff2c40b2a4e9b99 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Wed, 4 Dec 2024 22:09:51 +0000 Subject: [PATCH 0431/1228] Adding MAP_DROPPABLE for Linux (6.11) ref: https://github.com/torvalds/linux/blob/feffde684ac29a3b7aec82d2df850fbdbdee55e4/include/uapi/linux/mman.h#L20 (backport ) (cherry picked from commit 40a4d331c7fdacd1d7e20101b4e5cdedc566b53b) --- libc-test/build.rs | 3 +++ libc-test/semver/linux.txt | 1 + src/unix/linux_like/linux/mod.rs | 1 + 3 files changed, 5 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 31b0dc1cb3aa3..a1547d8e2f6f5 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4321,6 +4321,9 @@ fn test_linux(target: &str) { "EPIOCSPARAMS" | "EPIOCGPARAMS" => true, + // FIXME: Requires >= 6.11 kernel headers. + "MAP_DROPPABLE" => true, + _ => false, } }); diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index af9e03cfdf912..9995fe29beb5b 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1586,6 +1586,7 @@ MADV_UNMERGEABLE MADV_WILLNEED MADV_WIPEONFORK MAP_DENYWRITE +MAP_DROPPABLE MAP_EXECUTABLE MAP_FILE MAP_FIXED_NOREPLACE diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index b942641542713..d4652ddf8d6e5 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -4730,6 +4730,7 @@ pub const UDP_NO_CHECK6_RX: c_int = 102; // include/uapi/linux/mman.h pub const MAP_SHARED_VALIDATE: c_int = 0x3; +pub const MAP_DROPPABLE: c_int = 0x8; // include/uapi/asm-generic/mman-common.h pub const MAP_FIXED_NOREPLACE: c_int = 0x100000; From 0e89233900e524347c810287ff8f1bb03bdb0e9a Mon Sep 17 00:00:00 2001 From: Paul Mabileau Date: Fri, 6 Dec 2024 15:57:21 +0100 Subject: [PATCH 0432/1228] Feat(linux): Add new process flags `PF_BLOCK_TS` and `PF_SUSPEND_TASK`. They are also added to the tests. Interestingly, `PF_SUSPEND_TASK` is already there somewhere in the build script :thinking: Signed-off-by: Paul Mabileau (backport ) (cherry picked from commit 6934e52de8921a079118867d30a3894e46f98037) --- libc-test/build.rs | 7 +++++-- src/unix/linux_like/linux/mod.rs | 8 ++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index a1547d8e2f6f5..1af2c40afdf1b 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2062,9 +2062,9 @@ fn test_android(target: &str) { | "PF_IO_WORKER" | "PF_WQ_WORKER" | "PF_FORKNOEXEC" + | "PF_MCE_PROCESS" | "PF_SUPERPRIV" | "PF_DUMPCORE" - | "PF_MCE_PROCESS" | "PF_SIGNALED" | "PF_MEMALLOC" | "PF_NPROC_EXCEEDED" @@ -2080,6 +2080,7 @@ fn test_android(target: &str) { | "PF_NO_SETAFFINITY" | "PF_MCE_EARLY" | "PF_MEMALLOC_PIN" + | "PF_BLOCK_TS" | "PF_SUSPEND_TASK" => true, _ => false, @@ -4315,7 +4316,9 @@ fn test_linux(target: &str) { | "PF_RANDOMIZE" | "PF_NO_SETAFFINITY" | "PF_MCE_EARLY" - | "PF_MEMALLOC_PIN" => true, + | "PF_MEMALLOC_PIN" + | "PF_BLOCK_TS" + | "PF_SUSPEND_TASK" => true, // FIXME: Requires >= 6.9 kernel headers. "EPIOCSPARAMS" diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index d4652ddf8d6e5..281f4221493a0 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -5656,6 +5656,14 @@ pub const PF_RANDOMIZE: c_int = 0x00400000; pub const PF_NO_SETAFFINITY: c_int = 0x04000000; pub const PF_MCE_EARLY: c_int = 0x08000000; pub const PF_MEMALLOC_PIN: c_int = 0x10000000; +pub const PF_BLOCK_TS: c_int = 0x20000000; +pub const PF_SUSPEND_TASK: c_int = PF_SUSPEND_TASK_UINT as _; +// The used value is the highest possible bit fitting on 32 bits, so directly +// defining it as a signed integer causes the compiler to report an overflow. +// Use instead a private intermediary that assuringly has the correct type and +// cast it where necessary to the wanted final type, which preserves the +// desired information as-is in terms of integer representation. +const PF_SUSPEND_TASK_UINT: c_uint = 0x80000000; pub const CSIGNAL: c_int = 0x000000ff; From 05768aacb774fcda08b59eecd19bb56736a17b8b Mon Sep 17 00:00:00 2001 From: Paul Mabileau Date: Fri, 6 Dec 2024 16:07:47 +0100 Subject: [PATCH 0433/1228] Docs(linux): Add docs for `PF_*` constants Taken from . Signed-off-by: Paul Mabileau (backport ) (cherry picked from commit 9a38ea3a5fbc9c1387b2f4f42000c4664f27a1a9) --- src/unix/linux_like/linux/mod.rs | 36 ++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 281f4221493a0..68f3fa5c37ff9 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -5631,32 +5631,68 @@ pub const NET_DCCP: c_int = 20; pub const NET_IRDA: c_int = 412; // include/linux/sched.h +/// I'm a virtual CPU. pub const PF_VCPU: c_int = 0x00000001; +/// I am an IDLE thread. pub const PF_IDLE: c_int = 0x00000002; +/// Getting shut down. pub const PF_EXITING: c_int = 0x00000004; +/// Coredumps should ignore this task. pub const PF_POSTCOREDUMP: c_int = 0x00000008; +/// Task is an IO worker. pub const PF_IO_WORKER: c_int = 0x00000010; +/// I'm a workqueue worker. pub const PF_WQ_WORKER: c_int = 0x00000020; +/// Forked but didn't exec. pub const PF_FORKNOEXEC: c_int = 0x00000040; +/// Process policy on mce errors. pub const PF_MCE_PROCESS: c_int = 0x00000080; +/// Used super-user privileges. pub const PF_SUPERPRIV: c_int = 0x00000100; +/// Dumped core. pub const PF_DUMPCORE: c_int = 0x00000200; +/// Killed by a signal. pub const PF_SIGNALED: c_int = 0x00000400; +/// Allocating memory to free memory. +/// +/// See `memalloc_noreclaim_save()`. pub const PF_MEMALLOC: c_int = 0x00000800; +/// `set_user()` noticed that `RLIMIT_NPROC` was exceeded. pub const PF_NPROC_EXCEEDED: c_int = 0x00001000; +/// If unset the fpu must be initialized before use. pub const PF_USED_MATH: c_int = 0x00002000; +/// Kernel thread cloned from userspace thread. pub const PF_USER_WORKER: c_int = 0x00004000; +/// This thread should not be frozen. pub const PF_NOFREEZE: c_int = 0x00008000; +/// I am `kswapd`. pub const PF_KSWAPD: c_int = 0x00020000; +/// All allocations inherit `GFP_NOFS`. +/// +/// See `memalloc_nfs_save()`. pub const PF_MEMALLOC_NOFS: c_int = 0x00040000; +/// All allocations inherit `GFP_NOIO`. +/// +/// See `memalloc_noio_save()`. pub const PF_MEMALLOC_NOIO: c_int = 0x00080000; +/// Throttle writes only against the bdi I write to, I am cleaning +/// dirty pages from some other bdi. pub const PF_LOCAL_THROTTLE: c_int = 0x00100000; +/// I am a kernel thread. pub const PF_KTHREAD: c_int = 0x00200000; +/// Randomize virtual address space. pub const PF_RANDOMIZE: c_int = 0x00400000; +/// Userland is not allowed to meddle with `cpus_mask`. pub const PF_NO_SETAFFINITY: c_int = 0x04000000; +/// Early kill for mce process policy. pub const PF_MCE_EARLY: c_int = 0x08000000; +/// Allocations constrained to zones which allow long term pinning. +/// +/// See `memalloc_pin_save()`. pub const PF_MEMALLOC_PIN: c_int = 0x10000000; +/// Plug has ts that needs updating. pub const PF_BLOCK_TS: c_int = 0x20000000; +/// This thread called `freeze_processes()` and should not be frozen. pub const PF_SUSPEND_TASK: c_int = PF_SUSPEND_TASK_UINT as _; // The used value is the highest possible bit fitting on 32 bits, so directly // defining it as a signed integer causes the compiler to report an overflow. From 069c923305f648a117987062b11b957e9e8a6601 Mon Sep 17 00:00:00 2001 From: Paul Mabileau Date: Sat, 7 Dec 2024 04:36:54 +0100 Subject: [PATCH 0434/1228] Test(semver/linux): Add missing PF_* constants They didn't seem to already exist, so add them. The new ones are included. Signed-off-by: Paul Mabileau (backport ) (cherry picked from commit 5997f35e3928a115e8a850d12280f11a10ab0c6a) --- libc-test/semver/linux.txt | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 9995fe29beb5b..441a675725483 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2085,40 +2085,67 @@ PF_ASH PF_ATMPVC PF_ATMSVC PF_AX25 +PF_BLOCK_TS PF_BLUETOOTH PF_BRIDGE PF_CAIF PF_CAN PF_DECnet +PF_DUMPCORE PF_ECONET +PF_EXITING +PF_FORKNOEXEC +PF_IDLE PF_IEEE802154 +PF_IO_WORKER PF_IPX PF_IRDA PF_ISDN PF_IUCV PF_KEY +PF_KSWAPD +PF_KTHREAD PF_LLC PF_LOCAL +PF_LOCAL_THROTTLE PF_MASKOS PF_MASKPROC +PF_MCE_EARLY +PF_MCE_PROCESS +PF_MEMALLOC +PF_MEMALLOC_NOFS +PF_MEMALLOC_NOIO +PF_MEMALLOC_PIN PF_NETBEUI PF_NETLINK PF_NETROM PF_NFC +PF_NOFREEZE +PF_NO_SETAFFINITY +PF_NPROC_EXCEEDED PF_PACKET PF_PHONET +PF_POSTCOREDUMP PF_PPPOX PF_R +PF_RANDOMIZE PF_RDS PF_ROSE PF_ROUTE PF_RXRPC PF_SECURITY +PF_SIGNALED PF_SNA +PF_SUPERPRIV +PF_SUSPEND_TASK PF_TIPC +PF_USED_MATH +PF_USER_WORKER +PF_VCPU PF_VSOCK PF_W PF_WANPIPE +PF_WQ_WORKER PF_X PF_X25 PIPE_BUF From 8592ff9492319ae6a005c3d44119c815eb5d229a Mon Sep 17 00:00:00 2001 From: Jukka Taimisto Date: Sun, 8 Dec 2024 22:45:27 +0200 Subject: [PATCH 0435/1228] Lift IFA_* constants from linux/gnu to linux (backport ) (cherry picked from commit 70c1e823ef4faf5a77202bb01698da2a2b1c216a) --- libc-test/semver/linux-gnu.txt | 6 ------ libc-test/semver/linux.txt | 6 ++++++ src/unix/linux_like/linux/gnu/mod.rs | 8 -------- src/unix/linux_like/linux/mod.rs | 5 +++++ 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 83dd825584cd0..a6d6b6bf59d88 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -78,12 +78,6 @@ HUGETLB_FLAG_ENCODE_64KB HUGETLB_FLAG_ENCODE_8MB HUGETLB_FLAG_ENCODE_MASK HUGETLB_FLAG_ENCODE_SHIFT -IFA_FLAGS -IFA_F_MANAGETEMPADDR -IFA_F_MCAUTOJOIN -IFA_F_NODAD -IFA_F_NOPREFIXROUTE -IFA_F_STABLE_PRIVACY INIT_PROCESS ISOFS_SUPER_MAGIC JFFS2_SUPER_MAGIC diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 441a675725483..175e2811e9649 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -923,12 +923,18 @@ IFA_ADDRESS IFA_ANYCAST IFA_BROADCAST IFA_CACHEINFO +IFA_FLAGS IFA_F_DADFAILED IFA_F_DEPRECATED IFA_F_HOMEADDRESS +IFA_F_MANAGETEMPADDR +IFA_F_MCAUTOJOIN +IFA_F_NODAD +IFA_F_NOPREFIXROUTE IFA_F_OPTIMISTIC IFA_F_PERMANENT IFA_F_SECONDARY +IFA_F_STABLE_PRIVACY IFA_F_TEMPORARY IFA_F_TENTATIVE IFA_LABEL diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 948ec35f36b0d..0d0278de2c8b3 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1035,14 +1035,6 @@ pub const NDA_SRC_VNI: c_ushort = 11; pub const UNAME26: c_int = 0x0020000; pub const FDPIC_FUNCPTRS: c_int = 0x0080000; -// linux/if_addr.h -pub const IFA_FLAGS: c_ushort = 8; - -pub const IFA_F_MANAGETEMPADDR: u32 = 0x100; -pub const IFA_F_NOPREFIXROUTE: u32 = 0x200; -pub const IFA_F_MCAUTOJOIN: u32 = 0x400; -pub const IFA_F_STABLE_PRIVACY: u32 = 0x800; - pub const MAX_LINKS: c_int = 32; pub const GENL_UNS_ADMIN_PERM: c_int = 0x10; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 68f3fa5c37ff9..e01a4d67e91ec 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2768,6 +2768,7 @@ pub const IFA_BROADCAST: c_ushort = 4; pub const IFA_ANYCAST: c_ushort = 5; pub const IFA_CACHEINFO: c_ushort = 6; pub const IFA_MULTICAST: c_ushort = 7; +pub const IFA_FLAGS: c_ushort = 8; pub const IFA_F_SECONDARY: u32 = 0x01; pub const IFA_F_TEMPORARY: u32 = 0x01; @@ -2778,6 +2779,10 @@ pub const IFA_F_HOMEADDRESS: u32 = 0x10; pub const IFA_F_DEPRECATED: u32 = 0x20; pub const IFA_F_TENTATIVE: u32 = 0x40; pub const IFA_F_PERMANENT: u32 = 0x80; +pub const IFA_F_MANAGETEMPADDR: u32 = 0x100; +pub const IFA_F_NOPREFIXROUTE: u32 = 0x200; +pub const IFA_F_MCAUTOJOIN: u32 = 0x400; +pub const IFA_F_STABLE_PRIVACY: u32 = 0x800; // linux/if_link.h pub const IFLA_UNSPEC: c_ushort = 0; From 7457aa18e15860ff5d5448465dbad15f7438814a Mon Sep 17 00:00:00 2001 From: Juan Aguilar Santillana Date: Sat, 7 Dec 2024 03:04:21 +0100 Subject: [PATCH 0436/1228] fix: make Debug impl for unions opaque (backport ) (cherry picked from commit 6faa521f32fc11db9fc43a248a64463ce288b48d) [ resolve conflicts and update based on some main vs. 0.2 differences - Trevor ] --- src/macros.rs | 7 ++ src/unix/aix/mod.rs | 17 ----- src/unix/aix/powerpc64.rs | 26 -------- src/unix/bsd/apple/mod.rs | 65 ------------------- src/unix/bsd/freebsdlike/freebsd/mod.rs | 60 ----------------- .../bsd/freebsdlike/freebsd/x86_64/mod.rs | 7 -- src/unix/bsd/netbsdlike/netbsd/aarch64.rs | 13 ---- src/unix/bsd/netbsdlike/netbsd/mod.rs | 22 ------- src/unix/bsd/netbsdlike/netbsd/riscv64.rs | 1 - src/unix/bsd/netbsdlike/openbsd/mod.rs | 24 ------- src/unix/haiku/native.rs | 25 ------- src/unix/linux_like/android/b32/arm.rs | 7 -- src/unix/linux_like/android/b32/x86/mod.rs | 7 -- src/unix/linux_like/android/b64/x86_64/mod.rs | 7 -- src/unix/linux_like/android/mod.rs | 27 -------- .../linux_like/linux/gnu/b32/riscv32/mod.rs | 1 - .../linux_like/linux/gnu/b64/riscv64/mod.rs | 1 - src/unix/linux_like/linux/mod.rs | 64 ------------------ .../linux_like/linux/musl/b64/riscv64/mod.rs | 1 - src/unix/nto/x86_64.rs | 12 ---- src/unix/solarish/mod.rs | 20 ------ src/unix/solarish/solaris.rs | 1 - src/unix/solarish/x86_64.rs | 10 --- src/vxworks/mod.rs | 19 ------ 24 files changed, 7 insertions(+), 437 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index 3bfac90518ad9..b4db0fd469da8 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -159,6 +159,13 @@ macro_rules! s_no_extra_traits { $(#[$attr])* pub union $i { $($field)* } } + + #[cfg(feature = "extra_traits")] + impl ::core::fmt::Debug for $i { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_struct(::core::stringify!($i)).finish_non_exhaustive() + } + } ); (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => ( diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index bd087ea334dd2..6e98709dc5462 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -575,14 +575,6 @@ cfg_if! { } } impl Eq for __sigaction_sa_union {} - impl fmt::Debug for __sigaction_sa_union { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("__sigaction_sa_union") - .field("__su_handler", unsafe { &self.__su_handler }) - .field("__su_sigaction", unsafe { &self.__su_sigaction }) - .finish() - } - } impl hash::Hash for __sigaction_sa_union { fn hash(&self, state: &mut H) { unsafe { @@ -627,15 +619,6 @@ cfg_if! { } } impl Eq for __poll_ctl_ext_u {} - impl fmt::Debug for __poll_ctl_ext_u { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("__poll_ctl_ext_u") - .field("addr", unsafe { &self.addr }) - .field("data32", unsafe { &self.data32 }) - .field("data", unsafe { &self.data }) - .finish() - } - } impl hash::Hash for __poll_ctl_ext_u { fn hash(&self, state: &mut H) { unsafe { diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index e9f5b1e1cf3ad..921774611e299 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -356,14 +356,6 @@ cfg_if! { } } impl Eq for _kernel_simple_lock {} - 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() - } - } impl hash::Hash for _kernel_simple_lock { fn hash(&self, state: &mut H) { unsafe { @@ -475,15 +467,6 @@ cfg_if! { } } impl Eq for __ld_info_file {} - 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() - } - } impl hash::Hash for __ld_info_file { fn hash(&self, state: &mut H) { unsafe { @@ -544,15 +527,6 @@ cfg_if! { } } impl Eq for __pollfd_ext_u {} - 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() - } - } impl hash::Hash for __pollfd_ext_u { fn hash(&self, state: &mut H) { unsafe { diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 89c0e3197a9d0..943d9e400ecc0 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1718,13 +1718,6 @@ cfg_if! { } } impl Eq for semun {} - impl fmt::Debug for semun { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("semun") - .field("val", unsafe { &self.val }) - .finish() - } - } impl hash::Hash for semun { fn hash(&self, state: &mut H) { unsafe { self.val.hash(state) }; @@ -3073,15 +3066,6 @@ cfg_if! { } impl Eq for __c_anonymous_ifk_data {} - - 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() - } - } impl hash::Hash for __c_anonymous_ifk_data { fn hash(&self, state: &mut H) { unsafe { @@ -3144,31 +3128,6 @@ cfg_if! { impl Eq for __c_anonymous_ifr_ifru {} - 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() - } - } - impl hash::Hash for __c_anonymous_ifr_ifru { fn hash(&self, state: &mut H) { unsafe { @@ -3224,15 +3183,6 @@ cfg_if! { } } - 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() - } - } - impl hash::Hash for __c_anonymous_ifc_ifcu { fn hash(&self, state: &mut H) { unsafe { self.ifcu_buf.hash(state) }; @@ -3261,21 +3211,6 @@ cfg_if! { impl Eq for __c_anonymous_ifr_ifru6 {} - impl fmt::Debug for __c_anonymous_ifr_ifru6 { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("__c_anonymous_ifr_ifru6") - .field("ifru_addr", unsafe { &self.ifru_addr }) - .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) - .field("ifru_flags", unsafe { &self.ifru_flags }) - .field("ifru_flags6", unsafe { &self.ifru_flags6 }) - .field("ifru_metrics", unsafe { &self.ifru_metrics }) - .field("ifru_intval", unsafe { &self.ifru_intval }) - .field("ifru_data", unsafe { &self.ifru_data }) - .field("ifru_scope_id", unsafe { &self.ifru_scope_id }) - .finish() - } - } - impl hash::Hash for __c_anonymous_ifr_ifru6 { fn hash(&self, state: &mut H) { unsafe { diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 6cbe59d890aff..72e5e7fdae553 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1698,13 +1698,6 @@ cfg_if! { } } impl Eq for __c_anonymous_cr_pid {} - impl fmt::Debug for __c_anonymous_cr_pid { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("cr_pid") - .field("cr_pid", unsafe { &self.cr_pid }) - .finish() - } - } impl hash::Hash for __c_anonymous_cr_pid { fn hash(&self, state: &mut H) { unsafe { self.cr_pid.hash(state) }; @@ -1876,13 +1869,6 @@ cfg_if! { } } impl Eq for __c_anonymous_elf32_auxv_union {} - impl fmt::Debug for __c_anonymous_elf32_auxv_union { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("a_val") - .field("a_val", unsafe { &self.a_val }) - .finish() - } - } impl PartialEq for Elf32_Auxinfo { fn eq(&self, other: &Elf32_Auxinfo) -> bool { self.a_type == other.a_type && self.a_un == other.a_un @@ -1920,27 +1906,6 @@ cfg_if! { } } impl Eq for __c_anonymous_ifr_ifru {} - impl fmt::Debug for __c_anonymous_ifr_ifru { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("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_buffer", unsafe { &self.ifru_buffer }) - .field("ifru_flags", unsafe { &self.ifru_flags }) - .field("ifru_index", unsafe { &self.ifru_index }) - .field("ifru_jid", unsafe { &self.ifru_jid }) - .field("ifru_metric", unsafe { &self.ifru_metric }) - .field("ifru_mtu", unsafe { &self.ifru_mtu }) - .field("ifru_phys", unsafe { &self.ifru_phys }) - .field("ifru_media", unsafe { &self.ifru_media }) - .field("ifru_data", unsafe { &self.ifru_data }) - .field("ifru_cap", unsafe { &self.ifru_cap }) - .field("ifru_fib", unsafe { &self.ifru_fib }) - .field("ifru_vlan_pcp", unsafe { &self.ifru_vlan_pcp }) - .finish() - } - } impl hash::Hash for __c_anonymous_ifr_ifru { fn hash(&self, state: &mut H) { unsafe { self.ifru_addr.hash(state) }; @@ -1990,15 +1955,6 @@ cfg_if! { } } - 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() - } - } - impl hash::Hash for __c_anonymous_ifc_ifcu { fn hash(&self, state: &mut H) { unsafe { self.ifcu_buf.hash(state) }; @@ -2107,14 +2063,6 @@ cfg_if! { } } impl Eq for __c_anonymous_ifi_epoch {} - impl fmt::Debug for __c_anonymous_ifi_epoch { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("__c_anonymous_ifi_epoch") - .field("tt", unsafe { &self.tt }) - .field("ph", unsafe { &self.ph }) - .finish() - } - } impl hash::Hash for __c_anonymous_ifi_epoch { fn hash(&self, state: &mut H) { unsafe { @@ -2130,14 +2078,6 @@ cfg_if! { } } impl Eq for __c_anonymous_ifi_lastchange {} - impl fmt::Debug for __c_anonymous_ifi_lastchange { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("__c_anonymous_ifi_lastchange") - .field("tv", unsafe { &self.tv }) - .field("ph", unsafe { &self.ph }) - .finish() - } - } impl hash::Hash for __c_anonymous_ifi_lastchange { fn hash(&self, state: &mut H) { unsafe { diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index a73766a65c7de..fca9a126f81c1 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -250,13 +250,6 @@ cfg_if! { } } impl Eq for __c_anonymous_elf64_auxv_union {} - impl fmt::Debug for __c_anonymous_elf64_auxv_union { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("a_val") - .field("a_val", unsafe { &self.a_val }) - .finish() - } - } impl PartialEq for Elf64_Auxinfo { fn eq(&self, other: &Elf64_Auxinfo) -> bool { self.a_type == other.a_type && self.a_un == other.a_un diff --git a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs index 8ed84021e895e..2391801fe458b 100644 --- a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs @@ -54,19 +54,6 @@ cfg_if! { } } impl Eq for __c_anonymous__freg {} - impl fmt::Debug for __c_anonymous__freg { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - unsafe { - f.debug_struct("__c_anonymous__freg") - .field("__b8", &self.__b8) - .field("__h16", &self.__h16) - .field("__s32", &self.__s32) - .field("__d64", &self.__d64) - .field("__q128", &self.__q128) - .finish() - } - } - } impl hash::Hash for __c_anonymous__freg { fn hash(&self, state: &mut H) { unsafe { diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 9af0efc40f97d..8e3507fc743a8 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1340,17 +1340,6 @@ cfg_if! { } } - impl fmt::Debug for __c_anonymous_posix_spawn_fae { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - unsafe { - f.debug_struct("__c_anonymous_posix_fae") - .field("open", &self.open) - .field("dup2", &self.dup2) - .finish() - } - } - } - impl hash::Hash for __c_anonymous_posix_spawn_fae { fn hash(&self, state: &mut H) { unsafe { @@ -1368,17 +1357,6 @@ cfg_if! { } } - impl fmt::Debug for __c_anonymous_ifc_ifcu { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - unsafe { - f.debug_struct("__c_anonymous_ifc_ifcu") - .field("ifcu_buf", &self.ifcu_buf) - .field("ifcu_req", &self.ifcu_req) - .finish() - } - } - } - impl hash::Hash for __c_anonymous_ifc_ifcu { fn hash(&self, state: &mut H) { unsafe { diff --git a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs index b5e72084d5aa1..68cd264aadb78 100644 --- a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs @@ -19,7 +19,6 @@ s! { } s_no_extra_traits! { - #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] pub union __fpreg { pub u_u64: u64, pub u_d: c_double, diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 515b3ba9d05f4..f86919264c0ad 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -944,14 +944,6 @@ cfg_if! { impl Eq for mount_info {} - impl fmt::Debug for mount_info { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("mount_info") - // FIXME: .field("align", &self.align) - .finish() - } - } - impl hash::Hash for mount_info { fn hash(&self, state: &mut H) { unsafe { self.align.hash(state) }; @@ -976,22 +968,6 @@ cfg_if! { impl Eq for __c_anonymous_ifr_ifru {} - 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() - } - } - impl hash::Hash for __c_anonymous_ifr_ifru { fn hash(&self, state: &mut H) { unsafe { diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs index 84ca0e146294b..d373a9ced0866 100644 --- a/src/unix/haiku/native.rs +++ b/src/unix/haiku/native.rs @@ -501,20 +501,6 @@ cfg_if! { } } impl Eq for cpuid_info {} - impl fmt::Debug for cpuid_info { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - unsafe { - f.debug_struct("cpuid_info") - .field("eax_0", &self.eax_0) - .field("eax_1", &self.eax_1) - .field("eax_2", &self.eax_2) - .field("eax_3", &self.eax_3) - .field("as_chars", &self.as_chars) - .field("regs", &self.regs) - .finish() - } - } - } impl PartialEq for __c_anonymous_cpu_topology_info_data { fn eq(&self, other: &__c_anonymous_cpu_topology_info_data) -> bool { @@ -526,17 +512,6 @@ cfg_if! { } } impl Eq for __c_anonymous_cpu_topology_info_data {} - impl fmt::Debug for __c_anonymous_cpu_topology_info_data { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - unsafe { - f.debug_struct("__c_anonymous_cpu_topology_info_data") - .field("root", &self.root) - .field("package", &self.package) - .field("core", &self.core) - .finish() - } - } - } impl PartialEq for cpu_topology_node_info { fn eq(&self, other: &cpu_topology_node_info) -> bool { diff --git a/src/unix/linux_like/android/b32/arm.rs b/src/unix/linux_like/android/b32/arm.rs index 8a3b02dcc4022..0bf4087fde751 100644 --- a/src/unix/linux_like/android/b32/arm.rs +++ b/src/unix/linux_like/android/b32/arm.rs @@ -87,13 +87,6 @@ cfg_if! { } } impl Eq for __c_anonymous_uc_sigmask {} - impl fmt::Debug for __c_anonymous_uc_sigmask { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("uc_sigmask") - .field("uc_sigmask", unsafe { &self.uc_sigmask }) - .finish() - } - } impl hash::Hash for __c_anonymous_uc_sigmask { fn hash(&self, state: &mut H) { unsafe { self.uc_sigmask.hash(state) } diff --git a/src/unix/linux_like/android/b32/x86/mod.rs b/src/unix/linux_like/android/b32/x86/mod.rs index 8421f389ed9c8..9f80d8a71f449 100644 --- a/src/unix/linux_like/android/b32/x86/mod.rs +++ b/src/unix/linux_like/android/b32/x86/mod.rs @@ -89,13 +89,6 @@ cfg_if! { } } impl Eq for __c_anonymous_uc_sigmask {} - impl fmt::Debug for __c_anonymous_uc_sigmask { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("uc_sigmask") - .field("uc_sigmask", unsafe { &self.uc_sigmask }) - .finish() - } - } impl hash::Hash for __c_anonymous_uc_sigmask { fn hash(&self, state: &mut H) { unsafe { self.uc_sigmask.hash(state) } diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index 2118b926af9cb..4da5cd4995679 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -128,13 +128,6 @@ cfg_if! { } } impl Eq for __c_anonymous_uc_sigmask {} - impl fmt::Debug for __c_anonymous_uc_sigmask { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("uc_sigmask") - .field("uc_sigmask", unsafe { &self.uc_sigmask }) - .finish() - } - } impl hash::Hash for __c_anonymous_uc_sigmask { fn hash(&self, state: &mut H) { unsafe { self.uc_sigmask.hash(state) } diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 8f477be82c941..f408969175d34 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -994,25 +994,6 @@ cfg_if! { } } - impl fmt::Debug for __c_anonymous_ifr_ifru { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("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_netmask", unsafe { &self.ifru_netmask }) - .field("ifru_hwaddr", unsafe { &self.ifru_hwaddr }) - .field("ifru_flags", unsafe { &self.ifru_flags }) - .field("ifru_ifindex", unsafe { &self.ifru_ifindex }) - .field("ifru_metric", unsafe { &self.ifru_metric }) - .field("ifru_mtu", unsafe { &self.ifru_mtu }) - .field("ifru_map", unsafe { &self.ifru_map }) - .field("ifru_slave", unsafe { &self.ifru_slave }) - .field("ifru_newname", unsafe { &self.ifru_newname }) - .field("ifru_data", unsafe { &self.ifru_data }) - .finish() - } - } impl fmt::Debug for ifreq { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ifreq") @@ -1022,14 +1003,6 @@ cfg_if! { } } - impl fmt::Debug for __c_anonymous_ifc_ifcu { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ifr_ifru") - .field("ifcu_buf", unsafe { &self.ifcu_buf }) - .field("ifcu_req", unsafe { &self.ifcu_req }) - .finish() - } - } impl fmt::Debug for ifconf { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ifconf") diff --git a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs index 4ab40c628a1eb..43547cc7ad868 100644 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -212,7 +212,6 @@ s_no_extra_traits! { pub __fpregs: __riscv_mc_fp_state, } - #[allow(missing_debug_implementations)] pub union __riscv_mc_fp_state { pub __f: __riscv_mc_f_ext_state, pub __d: __riscv_mc_d_ext_state, diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index 6eaa3cda10fcf..db8deafe896be 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -264,7 +264,6 @@ s_no_extra_traits! { pub __fpregs: __riscv_mc_fp_state, } - #[allow(missing_debug_implementations)] pub union __riscv_mc_fp_state { pub __f: __riscv_mc_f_ext_state, pub __d: __riscv_mc_d_ext_state, diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index e01a4d67e91ec..7321d37a684c5 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1669,13 +1669,11 @@ s_no_extra_traits! { } // linux/ptp_clock.h - #[allow(missing_debug_implementations)] pub union __c_anonymous_ptp_perout_request_1 { pub start: ptp_clock_time, pub phase: ptp_clock_time, } - #[allow(missing_debug_implementations)] pub union __c_anonymous_ptp_perout_request_2 { pub on: ptp_clock_time, pub rsv: [c_uint; 4], @@ -1697,7 +1695,6 @@ s_no_extra_traits! { pub xsk_tx_metadata_union: __c_anonymous_xsk_tx_metadata_union, } - #[allow(missing_debug_implementations)] pub union __c_anonymous_xsk_tx_metadata_union { pub request: xsk_tx_metadata_request, pub completion: xsk_tx_metadata_completion, @@ -2063,25 +2060,6 @@ cfg_if! { self.mq_curmsgs.hash(state); } } - impl fmt::Debug for __c_anonymous_ifr_ifru { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("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_netmask", unsafe { &self.ifru_netmask }) - .field("ifru_hwaddr", unsafe { &self.ifru_hwaddr }) - .field("ifru_flags", unsafe { &self.ifru_flags }) - .field("ifru_ifindex", unsafe { &self.ifru_ifindex }) - .field("ifru_metric", unsafe { &self.ifru_metric }) - .field("ifru_mtu", unsafe { &self.ifru_mtu }) - .field("ifru_map", unsafe { &self.ifru_map }) - .field("ifru_slave", unsafe { &self.ifru_slave }) - .field("ifru_newname", unsafe { &self.ifru_newname }) - .field("ifru_data", unsafe { &self.ifru_data }) - .finish() - } - } impl fmt::Debug for ifreq { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ifreq") @@ -2090,15 +2068,6 @@ cfg_if! { .finish() } } - - impl fmt::Debug for __c_anonymous_ifc_ifcu { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ifr_ifru") - .field("ifcu_buf", unsafe { &self.ifcu_buf }) - .field("ifcu_req", unsafe { &self.ifcu_req }) - .finish() - } - } impl fmt::Debug for ifconf { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("ifconf") @@ -2172,31 +2141,6 @@ cfg_if! { } } - impl fmt::Debug for iwreq_data { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("iwreq_data") - .field("name", unsafe { &self.name }) - .field("essid", unsafe { &self.essid }) - .field("nwid", unsafe { &self.nwid }) - .field("freq", unsafe { &self.freq }) - .field("sens", unsafe { &self.sens }) - .field("bitrate", unsafe { &self.bitrate }) - .field("txpower", unsafe { &self.txpower }) - .field("rts", unsafe { &self.rts }) - .field("frag", unsafe { &self.frag }) - .field("mode", unsafe { &self.mode }) - .field("retry", unsafe { &self.retry }) - .field("encoding", unsafe { &self.encoding }) - .field("power", unsafe { &self.power }) - .field("qual", unsafe { &self.qual }) - .field("ap_addr", unsafe { &self.ap_addr }) - .field("addr", unsafe { &self.addr }) - .field("param", unsafe { &self.param }) - .field("data", unsafe { &self.data }) - .finish() - } - } - impl fmt::Debug for iw_event { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("iw_event") @@ -2207,14 +2151,6 @@ cfg_if! { } } - impl fmt::Debug for __c_anonymous_iwreq { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("__c_anonymous_iwreq") - .field("ifrn_name", unsafe { &self.ifrn_name }) - .finish() - } - } - impl fmt::Debug for iwreq { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("iwreq") diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index 729e873668873..ec0ba4c1f926f 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -103,7 +103,6 @@ s_no_extra_traits! { pub __fpregs: __riscv_mc_fp_state, } - #[allow(missing_debug_implementations)] pub union __riscv_mc_fp_state { pub __f: __riscv_mc_f_ext_state, pub __d: __riscv_mc_d_ext_state, diff --git a/src/unix/nto/x86_64.rs b/src/unix/nto/x86_64.rs index 8e938c3bba4fc..425f479949466 100644 --- a/src/unix/nto/x86_64.rs +++ b/src/unix/nto/x86_64.rs @@ -101,18 +101,6 @@ cfg_if! { } } - impl fmt::Debug for x86_64_fpu_registers { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - unsafe { - f.debug_struct("x86_64_fpu_registers") - .field("fsave_area", &self.fsave_area) - .field("fxsave_area", &self.fxsave_area) - .field("xsave_area", &self.xsave_area) - .finish() - } - } - } - impl hash::Hash for x86_64_fpu_registers { fn hash(&self, state: &mut H) { unsafe { diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 8cefc64e5718f..6f35a1e712843 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -859,16 +859,6 @@ cfg_if! { } } impl Eq for pad128_t {} - impl fmt::Debug for pad128_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - unsafe { - f.debug_struct("pad128_t") - // FIXME: .field("_q", &{self._q}) - .field("_l", &{ self._l }) - .finish() - } - } - } impl hash::Hash for pad128_t { fn hash(&self, state: &mut H) { unsafe { @@ -886,16 +876,6 @@ cfg_if! { } } impl Eq for upad128_t {} - impl fmt::Debug for upad128_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - unsafe { - f.debug_struct("upad128_t") - // FIXME: .field("_q", &{self._q}) - .field("_l", &{ self._l }) - .finish() - } - } - } impl hash::Hash for upad128_t { fn hash(&self, state: &mut H) { unsafe { diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index f4a8031756798..d080e6ce8d7f6 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -65,7 +65,6 @@ s_no_extra_traits! { pub d_id: crate::door_id_t, } - #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] pub union door_desc_t__d_data { pub d_desc: door_desc_t__d_data__d_desc, d_resv: [c_int; 5], /* Check out /usr/include/sys/door.h */ diff --git a/src/unix/solarish/x86_64.rs b/src/unix/solarish/x86_64.rs index 1ea8ce987dab5..4deaac0fc1718 100644 --- a/src/unix/solarish/x86_64.rs +++ b/src/unix/solarish/x86_64.rs @@ -110,16 +110,6 @@ cfg_if! { } } impl Eq for __c_anonymous_fp_reg_set {} - impl fmt::Debug for __c_anonymous_fp_reg_set { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - unsafe { - f.debug_struct("__c_anonymous_fp_reg_set") - .field("fpchip_state", &{ self.fpchip_state }) - .field("f_fpregs", &{ self.f_fpregs }) - .finish() - } - } - } impl PartialEq for fpregset_t { fn eq(&self, other: &fpregset_t) -> bool { self.fp_reg_set == other.fp_reg_set diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index f5e582055a5cb..b8faf16e9aa13 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -525,18 +525,6 @@ cfg_if! { } } impl Eq for sa_u_t {} - impl fmt::Debug for sa_u_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - unsafe { - let h = match self.sa_handler { - Some(handler) => handler as usize, - None => 0 as usize, - }; - - f.debug_struct("sa_u_t").field("sa_handler", &h).finish() - } - } - } impl hash::Hash for sa_u_t { fn hash(&self, state: &mut H) { unsafe { @@ -555,13 +543,6 @@ cfg_if! { } } impl Eq for sigval {} - impl fmt::Debug for sigval { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sigval") - .field("sival_ptr", unsafe { &(self.sival_ptr as usize) }) - .finish() - } - } impl hash::Hash for sigval { fn hash(&self, state: &mut H) { unsafe { (self.sival_ptr as usize).hash(state) }; From 1e2da75bad39c606cb343ccfe7422a758036e5c5 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sun, 8 Dec 2024 22:20:59 +0000 Subject: [PATCH 0437/1228] adding POSIX memccpy and mempcpy GNU extension. [memccpy](https://pubs.opengroup.org/onlinepubs/9699919799/functions/memccpy.html) [mempcpy](https://man7.org/linux/man-pages/man3/mempcpy.3.html) (backport ) (cherry picked from commit ba5930dbc20dba0dbb3d39496313f6be4468cf01) --- libc-test/semver/linux-gnu.txt | 1 + libc-test/semver/unix.txt | 1 + src/unix/linux_like/linux/gnu/mod.rs | 2 ++ src/unix/mod.rs | 1 + 4 files changed, 5 insertions(+) diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index a6d6b6bf59d88..2aed5d7628eae 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -650,6 +650,7 @@ malloc_stats malloc_trim malloc_usable_size mallopt +mempcpy mq_notify nl_mmap_hdr nl_mmap_req diff --git a/libc-test/semver/unix.txt b/libc-test/semver/unix.txt index 093dde173137c..052c24178dfcc 100644 --- a/libc-test/semver/unix.txt +++ b/libc-test/semver/unix.txt @@ -638,6 +638,7 @@ localtime_r lseek lstat malloc +memccpy memchr memcmp memcpy diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 0d0278de2c8b3..75ac2e088f7d9 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1539,6 +1539,8 @@ extern "C" { timeout: *const crate::timespec, sigmask: *const crate::sigset_t, ) -> c_int; + + pub fn mempcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; } cfg_if! { diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 661405f50eb1d..a14dafdf06d9e 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -681,6 +681,7 @@ extern "C" { pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; + pub fn memccpy(dest: *mut c_void, src: *const c_void, c: c_int, n: size_t) -> *mut c_void; } extern "C" { From 4344e542bae5662feb9e54cb51fb654ecf3ba5d8 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 7 Dec 2024 09:12:13 +0000 Subject: [PATCH 0438/1228] ci: Upload artifacts created by libc-test This gives us something easier to inspect when the automatically generated tests fail. (backport ) (cherry picked from commit 68f3056c2d0cc1b3645ffcef211f6f5af2661fdf) --- .github/workflows/ci.yaml | 20 ++++++++++++ ci/create-artifacts.py | 64 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100755 ci/create-artifacts.py diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ee606ff19cfa0..d255ebff1cf69 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -97,6 +97,7 @@ jobs: - uses: Swatinem/rust-cache@v2 with: key: ${{ matrix.target }} + - name: Run natively if: "!matrix.docker" run: ./ci/run.sh ${{ matrix.target }} @@ -104,6 +105,15 @@ jobs: if: "matrix.docker" run: ./ci/run-docker.sh ${{ matrix.target }} + - name: Create CI artifacts + if: always() + run: ./ci/create-artifacts.py + - uses: actions/upload-artifact@v4 + with: + name: ${{ env.ARCHIVE_NAME }}-${{ matrix.target }} + path: ${{ env.ARCHIVE_PATH }} + retention-days: 5 + test_tier2: name: Test tier2 needs: [test_tier1, style_check] @@ -151,9 +161,19 @@ jobs: - uses: Swatinem/rust-cache@v2 with: key: ${{ matrix.target }} + - name: Execute run-docker.sh run: ./ci/run-docker.sh ${{ matrix.target }} + - name: Create CI artifacts + if: always() + run: ./ci/create-artifacts.py + - uses: actions/upload-artifact@v4 + with: + name: ${{ env.ARCHIVE_NAME }}-${{ matrix.target }} + path: ${{ env.ARCHIVE_PATH }} + retention-days: 5 + test_tier2_vm: name: Test tier2 VM needs: [test_tier1, style_check] diff --git a/ci/create-artifacts.py b/ci/create-artifacts.py new file mode 100755 index 0000000000000..23710c9cf602a --- /dev/null +++ b/ci/create-artifacts.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python3 +"""Create a tarball of intermediate output for inspection if tests fail. + +This is useful for seeing what exactly `ctest` is running. +""" + +import os +import subprocess as sp +import sys + +from datetime import datetime, timezone +from glob import glob +from pathlib import Path + + +def main(): + # Find the most recently touched file named "main.c" in the target + # directory. This will be libc-tests's `OUT_DIR` + marker_files = [Path(p) for p in glob("target/**/main.c", recursive=True)] + marker_files.sort(key=lambda path: path.stat().st_mtime) + build_dir = marker_files[0].parent + print(f"Located build directory '{build_dir}'") + + # Collect all relevant Rust and C files + add_files = glob("**/*.rs", recursive=True, root_dir=build_dir) + add_files += glob("**/*.c", recursive=True, root_dir=build_dir) + file_list = "\n".join(add_files).encode() + + now = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H%MZ") + archive_name = f"archive-{now}" + archive_path = f"{archive_name}.tar.gz" + + sp.run(["tar", "czvf", archive_path, "-C", build_dir, "-T-"], input=file_list) + + # If we are in GHA, set these env vars for future use + gh_env = os.getenv("GITHUB_ENV") + if gh_env is not None: + print("Updating CI environment") + with open(gh_env, "w+") as f: + f.write(f"ARCHIVE_NAME={archive_name}\n") + f.write(f"ARCHIVE_PATH={archive_path}\n") + + +if __name__ == "__main__": + # FIXME(ci): remove after the bump to windoes-2025 GHA images + # Python <= 3.9 does not support the very helpful `root_dir` argument, + # and that is the version used by the Windows GHA images. Rather than + # using setup-python or doing something in the CI script, just find + # the newer version and relaunch if this happens to be run with an old + # version. + try: + glob("", root_dir="") + except TypeError: + if os.environ.get("CI") is None: + sys.exit(1) + + # Find the next 3.1x Python version + dirs = sorted(list(Path(r"C:\hostedtoolcache\windows\Python").iterdir())) + usepy = next(x for x in dirs if r"\3.1" in str(x)) + py = usepy.joinpath(r"x64\python.exe") + print(f"relaunching with {py}") + os.execvp(py, [__file__] + sys.argv) + + main() From e6082ef26096154e08ab0cb094d66d5ca116ee15 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 9 Dec 2024 08:51:06 +0000 Subject: [PATCH 0439/1228] chore: release v0.2.168 Co-authored-by: Trevor Gross --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 97c0564938dbf..43f7151f521e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,32 @@ # Changelog ## [Unreleased] + +## [0.2.168](https://github.com/rust-lang/libc/compare/0.2.167...0.2.168) - 2024-12-09 + +### Added + +- Linux: Add new process flags ([#4174](https://github.com/rust-lang/libc/pull/4174)) +- Linux: Make `IFA_*` constants available on all Linux targets +- Linux: add `MAP_DROPPABLE` +- Solaris, Illumos: add `SIGRTMIN` and `SIGRTMAX` +- Unix, Linux: adding POSIX `memccpy` and `mempcpy` GNU extension +- CI: Upload artifacts created by libc-test +- CI: Use workflow commands to group output by target +- CI: add caching + ## [0.2.167](https://github.com/rust-lang/libc/compare/0.2.166...0.2.167) - 2024-11-28 ### Added diff --git a/Cargo.toml b/Cargo.toml index 6c54201d759d8..b444a646655a2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.167" +version = "0.2.168" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index d97a214d4c44d..317c29bedc876 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -14,7 +14,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.167" +version = "0.2.168" default-features = false [build-dependencies] From fabe9c12f24617a1f4fc84d3dada942216622ba6 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 9 Dec 2024 08:12:59 +0000 Subject: [PATCH 0440/1228] triagebot: Remove JohnTitor from the review rotation (backport ) (cherry picked from commit 65d0ffbd90fe8d79a16f4cb006db8ce985d28793) --- triagebot.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/triagebot.toml b/triagebot.toml index 6f8200cb14c25..7a103b8fb72a6 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -11,7 +11,6 @@ contributing_url = "https://github.com/rust-lang/libc/blob/HEAD/CONTRIBUTING.md" [assign.owners] "*" = [ - "@JohnTitor", "@tgross35", ] From 7fc5940d485e4d7dc5d115e9adbd67ce5e0f6165 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Tue, 10 Dec 2024 21:48:49 +0000 Subject: [PATCH 0441/1228] freebsd add more socket TCP stack constants. [ref](https://man.freebsd.org/cgi/man.cgi?query=tcp) (backport ) (cherry picked from commit abf49f6700de09c1a1801226f8e973a455e6eb43) --- libc-test/semver/freebsd.txt | 22 ++++++++++++++++++++++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 24 ++++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index 853e4c0043ddc..486d11e64a60a 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -1504,6 +1504,17 @@ S_IWRITE TAB0 TAB3 TABDLY +TCP_BBR_ALGORITHM +TCP_BBR_DRAIN_PG +TCP_BBR_IWINTSO +TCP_BBR_MAX_RTO +TCP_BBR_MIN_RTO +TCP_BBR_PACE_OH +TCP_BBR_PROBE_RTT_INT +TCP_BBR_STARTUP_LOSS_EXIT +TCP_BBR_STARTUP_PG +TCP_BBR_TSLIMITS +TCP_BBR_USEDEL_RATE TCP_CCALGOOPT TCP_CONGESTION TCP_DELACK @@ -1530,7 +1541,18 @@ TCP_PCAP_IN TCP_PCAP_OUT TCP_PERF_INFO TCP_PROC_ACCOUNTING +TCP_RACK_EARLY_SEG +TCP_RACK_MBUF_QUEUE +TCP_RACK_MIN_TO +TCP_RACK_PACE_ALWAYS +TCP_RACK_PACE_MAX_SEG +TCP_RACK_PKT_DELAY +TCP_RACK_PRR_SENDALOT +TCP_RACK_REORD_FADE +TCP_RACK_REORD_THRESH +TCP_RACK_TLP_REDUCE TCP_REMOTE_UDP_ENCAPS_PORT +TCP_REUSPORT_LB_NUMA TCP_SHARED_CWND_ALLOWED TCP_USE_CMP_ACKS THOUSEP diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 72e5e7fdae553..ae4e366afdd48 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -3764,6 +3764,30 @@ pub const TCP_FUNCTION_ALIAS: c_int = 8193; pub const TCP_FASTOPEN_PSK_LEN: c_int = 16; pub const TCP_FUNCTION_NAME_LEN_MAX: c_int = 32; +pub const TCP_REUSPORT_LB_NUMA: c_int = 1026; +pub const TCP_RACK_MBUF_QUEUE: c_int = 1050; +pub const TCP_RACK_TLP_REDUCE: c_int = 1052; +pub const TCP_RACK_PACE_MAX_SEG: c_int = 1054; +pub const TCP_RACK_PACE_ALWAYS: c_int = 1055; +pub const TCP_RACK_PRR_SENDALOT: c_int = 1057; +pub const TCP_RACK_MIN_TO: c_int = 1058; +pub const TCP_RACK_EARLY_SEG: c_int = 1060; +pub const TCP_RACK_REORD_THRESH: c_int = 1061; +pub const TCP_RACK_REORD_FADE: c_int = 1062; +pub const TCP_RACK_TLP_THRESH: c_int = 1063; +pub const TCP_RACK_PKT_DELAY: c_int = 1064; +pub const TCP_BBR_IWINTSO: c_int = 1067; +pub const TCP_BBR_STARTUP_PG: c_int = 1069; +pub const TCP_BBR_DRAIN_PG: c_int = 1070; +pub const TCP_BBR_PROBE_RTT_INT: c_int = 1072; +pub const TCP_BBR_STARTUP_LOSS_EXIT: c_int = 1074; +pub const TCP_BBR_TSLIMITS: c_int = 1076; +pub const TCP_BBR_PACE_OH: c_int = 1077; +pub const TCP_BBR_USEDEL_RATE: c_int = 1079; +pub const TCP_BBR_MIN_RTO: c_int = 1080; +pub const TCP_BBR_MAX_RTO: c_int = 1081; +pub const TCP_BBR_ALGORITHM: c_int = 1083; + pub const IP_BINDANY: c_int = 24; pub const IP_BINDMULTI: c_int = 25; pub const IP_RSS_LISTEN_BUCKET: c_int = 26; From eb4649d1bd29b13671df9451bcc95d3470e218d3 Mon Sep 17 00:00:00 2001 From: James Robinson Date: Wed, 11 Dec 2024 21:11:47 +0000 Subject: [PATCH 0442/1228] Add sockaddr_vm definition for Fuchsia (backport ) (cherry picked from commit 816a236462f9d4031a63e890b0e046e2ce1c1af4) --- libc-test/semver/fuchsia.txt | 1 + src/fuchsia/mod.rs | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/libc-test/semver/fuchsia.txt b/libc-test/semver/fuchsia.txt index f7bca9ab2e9cb..12f67d8b4c606 100644 --- a/libc-test/semver/fuchsia.txt +++ b/libc-test/semver/fuchsia.txt @@ -1446,6 +1446,7 @@ sigwait sigwaitinfo sockaddr_ll sockaddr_nl +sockaddr_vm splice spwd srand diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 71b88f579a394..8e56e3f62928d 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -357,6 +357,14 @@ s! { pub sin6_scope_id: u32, } + pub struct sockaddr_vm { + pub svm_family: sa_family_t, + pub svm_reserved1: c_ushort, + pub svm_port: crate::in_port_t, + pub svm_cid: c_uint, + pub svm_zero: [u8; 4], + } + pub struct addrinfo { pub ai_flags: c_int, pub ai_family: c_int, From 3eb9670cf3edd77e5688586347ebca20e37e1d30 Mon Sep 17 00:00:00 2001 From: Sergio Gasquez Date: Fri, 13 Dec 2024 11:41:16 +0100 Subject: [PATCH 0443/1228] feat: Update c_char type (backport ) (cherry picked from commit c66faeba57869080a3fded445acdb5a42116f628) --- src/unix/newlib/espidf/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/newlib/espidf/mod.rs b/src/unix/newlib/espidf/mod.rs index 4e3898153357d..1ac5113c917b5 100644 --- a/src/unix/newlib/espidf/mod.rs +++ b/src/unix/newlib/espidf/mod.rs @@ -1,7 +1,7 @@ use crate::prelude::*; pub type clock_t = c_ulong; -pub type c_char = i8; +pub type c_char = u8; pub type wchar_t = u32; pub type c_long = i32; From 9fea17aad1b6d08a6598be82df9cfef91fa8744d Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 17 Dec 2024 09:57:41 +0000 Subject: [PATCH 0444/1228] Mirror `c_char` configuration from `rust-lang/rust` Create a module providing the same definitions of `c_char` as in `rust-lang/rust`, which in most cases are based on the architecture rather than the OS. This will allow individual platforms to reexport the definition rather than having configuration repeated in numerous modules. (backport ) (cherry picked from commit 28d406458efb715b5b1b37f57b27617f3b56110b) --- libc-test/build.rs | 35 ++++++++++++++++++++++++++++++++++- src/lib.rs | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 1af2c40afdf1b..1879334fb21a9 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -364,6 +364,9 @@ fn test_apple(target: &str) { // FIXME: "'__uint128' undeclared" in C "__uint128" => true, + // `c_char_def` is always public but not always reexported. + "c_char_def" => true, + _ => false, } }); @@ -758,6 +761,8 @@ fn test_windows(target: &str) { "ssize_t" if !gnu => true, // FIXME: The size and alignment of this type are incorrect "time_t" if gnu && i686 => true, + // `c_char_def` is always public but not always reexported. + "c_char_def" => true, _ => false, }); @@ -975,6 +980,8 @@ fn test_solarish(target: &str) { cfg.skip_type(move |ty| match ty { "sighandler_t" => true, + // `c_char_def` is always public but not always reexported. + "c_char_def" => true, _ => false, }); @@ -1278,6 +1285,8 @@ fn test_netbsd(target: &str) { match ty { // FIXME: sighandler_t is crazy across platforms "sighandler_t" => true, + // `c_char_def` is always public but not always reexported. + "c_char_def" => true, _ => false, } }); @@ -1497,7 +1506,8 @@ fn test_dragonflybsd(target: &str) { match ty { // sighandler_t is crazy across platforms "sighandler_t" => true, - + // `c_char_def` is always public but not always reexported. + "c_char_def" => true, _ => false, } }); @@ -1659,6 +1669,8 @@ fn test_wasi(target: &str) { } }); + cfg.skip_type(|ty| ty == "c_char_def"); + // These have a different and internal type in header files and are only // used here to generate a pointer to them in bindings so skip these tests. cfg.skip_static(|c| c.starts_with("_CLOCK_")); @@ -1907,6 +1919,9 @@ fn test_android(target: &str) { // FIXME: "'__uint128' undeclared" in C "__uint128" => true, + // `c_char_def` is always public but not always reexported. + "c_char_def" => true, + _ => false, } }); @@ -2669,6 +2684,9 @@ fn test_freebsd(target: &str) { // `eventfd(2)` and things come with it are added in FreeBSD 13 "eventfd_t" if Some(13) > freebsd_ver => true, + // `c_char_def` is always public but not always reexported. + "c_char_def" => true, + _ => false, } }); @@ -2989,6 +3007,9 @@ fn test_emscripten(target: &str) { // https://github.com/emscripten-core/emscripten/issues/5033 ty if ty.starts_with("epoll") => true, + // `c_char_def` is always public but not always reexported. + "c_char_def" => true, + // LFS64 types have been removed in Emscripten 3.1.44 // https://github.com/emscripten-core/emscripten/pull/19812 t => t.ends_with("64") || t.ends_with("64_t"), @@ -3260,6 +3281,9 @@ fn test_neutrino(target: &str) { // Does not exist in Neutrino "locale_t" => true, + // `c_char_def` is always public but not always reexported. + "c_char_def" => true, + _ => false, } }); @@ -3426,6 +3450,8 @@ fn test_vxworks(target: &str) { // FIXME cfg.skip_type(move |ty| match ty { "stat64" | "sighandler_t" | "off64_t" => true, + // `c_char_def` is always public but not always reexported. + "c_char_def" => true, _ => false, }); @@ -3773,6 +3799,9 @@ fn test_linux(target: &str) { // FIXME: "'__uint128' undeclared" in C "__uint128" => true, + // `c_char_def` is always public but not always reexported. + "c_char_def" => true, + t => { if musl { // LFS64 types have been removed in musl 1.2.4+ @@ -4725,6 +4754,8 @@ fn test_linux_like_apis(target: &str) { }) .skip_type(move |ty| match ty { "Elf64_Phdr" | "Elf32_Phdr" => false, + // `c_char_def` is always public but not always reexported. + "c_char_def" => true, _ => true, }); cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_elf.rs"); @@ -4960,6 +4991,8 @@ fn test_haiku(target: &str) { "pthread_condattr_t" => true, "pthread_mutexattr_t" => true, "pthread_rwlockattr_t" => true, + // `c_char_def` is always public but not always reexported. + "c_char_def" => true, _ => false, } }); diff --git a/src/lib.rs b/src/lib.rs index 9ac6df16073ee..569775095fa8c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -41,6 +41,44 @@ cfg_if! { pub use core::ffi::c_void; +/// Type definitions that are coupled tighter to architecture than OS. +mod arch { + cfg_if! { + // This configuration comes from `rust-lang/rust` in `library/core/src/ffi/mod.rs`. + if #[cfg(all( + not(windows), + // FIXME(ctest): just use `target_vendor` = "apple"` once `ctest` supports it + not(any( + target_os = "macos", + target_os = "ios", + target_os = "tvos", + target_os = "watchos", + target_os = "visionos", + )), + any( + target_arch = "aarch64", + target_arch = "arm", + target_arch = "csky", + target_arch = "hexagon", + target_arch = "msp430", + target_arch = "powerpc", + target_arch = "powerpc64", + target_arch = "riscv64", + target_arch = "riscv32", + target_arch = "s390x", + target_arch = "xtensa", + ) + ))] { + // To be reexported as `c_char` + // FIXME(ctest): just name these `c_char` once `ctest` learns that these don't get + // exported. + pub type c_char_def = u8; + } else { + pub type c_char_def = i8; + } + } +} + cfg_if! { if #[cfg(windows)] { mod fixed_width_ints; From 7e761a52d82bfa79fd6d872da6389e358e685e27 Mon Sep 17 00:00:00 2001 From: Taiki Endo Date: Tue, 17 Dec 2024 20:06:16 +0900 Subject: [PATCH 0445/1228] Fix c_char on various targets - aarch64-kmc-solid_asp3 - armv7a-kmc-solid_asp3-eabi - armv7a-kmc-solid_asp3-eabihf - riscv64-linux-android - x86_64-unknown-l4re-uclibc - armv7-sony-vita-newlibeabihf - riscv32imac-unknown-nuttx-elf - riscv32imafc-unknown-nuttx-elf - riscv32imc-unknown-nuttx-elf - riscv64gc-unknown-nuttx-elf - riscv64imac-unknown-nuttx-elf - thumbv6m-nuttx-eabi - thumbv7em-nuttx-eabi - thumbv7em-nuttx-eabihf - thumbv7m-nuttx-eabi - thumbv8m.base-nuttx-eabi - thumbv8m.main-nuttx-eabi - thumbv8m.main-nuttx-eabihf - aarch64-unknown-redox - aarch64-unknown-illumos - riscv32-wrs-vxworks - riscv64-wrs-vxworks (backport ) (cherry picked from commit 0344a78d8ebfc3bf9c924df994541df6ac72280d) --- src/solid/aarch64.rs | 2 +- src/solid/arm.rs | 2 +- src/unix/linux_like/android/b64/riscv64/mod.rs | 2 +- src/unix/linux_like/linux/uclibc/x86_64/mod.rs | 2 +- src/unix/newlib/vita/mod.rs | 2 +- src/unix/nuttx/mod.rs | 12 +++++++++++- src/unix/redox/mod.rs | 8 +++++++- src/unix/solarish/mod.rs | 8 +++++++- src/vxworks/riscv32.rs | 2 +- src/vxworks/riscv64.rs | 2 +- 10 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/solid/aarch64.rs b/src/solid/aarch64.rs index ceabea397b804..4032488b6c0d5 100644 --- a/src/solid/aarch64.rs +++ b/src/solid/aarch64.rs @@ -1,4 +1,4 @@ -pub type c_char = i8; +pub type c_char = u8; pub type wchar_t = u32; pub type c_long = i64; pub type c_ulong = u64; diff --git a/src/solid/arm.rs b/src/solid/arm.rs index 04cc1542deaeb..55240068aa08e 100644 --- a/src/solid/arm.rs +++ b/src/solid/arm.rs @@ -1,4 +1,4 @@ -pub type c_char = i8; +pub type c_char = u8; pub type wchar_t = u32; pub type c_long = i32; pub type c_ulong = u32; diff --git a/src/unix/linux_like/android/b64/riscv64/mod.rs b/src/unix/linux_like/android/b64/riscv64/mod.rs index f214fe33702a4..d35c408955109 100644 --- a/src/unix/linux_like/android/b64/riscv64/mod.rs +++ b/src/unix/linux_like/android/b64/riscv64/mod.rs @@ -1,7 +1,7 @@ use crate::off64_t; use crate::prelude::*; -pub type c_char = i8; +pub type c_char = u8; pub type wchar_t = u32; pub type greg_t = i64; pub type __u64 = c_ulonglong; diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index ce91914765581..709b0d152444a 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -6,7 +6,7 @@ use crate::prelude::*; pub type blkcnt_t = i64; pub type blksize_t = i64; pub type clock_t = i64; -pub type c_char = u8; +pub type c_char = i8; pub type c_long = i64; pub type c_ulong = u64; pub type fsblkcnt_t = c_ulong; diff --git a/src/unix/newlib/vita/mod.rs b/src/unix/newlib/vita/mod.rs index 120c4d54972f5..1a8c89319fa2d 100644 --- a/src/unix/newlib/vita/mod.rs +++ b/src/unix/newlib/vita/mod.rs @@ -3,7 +3,7 @@ use crate::prelude::*; pub type clock_t = c_long; -pub type c_char = i8; +pub type c_char = u8; pub type wchar_t = u32; pub type c_long = i32; diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index 95d1156bfc48b..78ecf3f133505 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -5,7 +5,17 @@ pub type nlink_t = u16; pub type ino_t = u16; pub type blkcnt_t = u64; pub type blksize_t = i16; -pub type c_char = i8; +cfg_if! { + if #[cfg(any( + target_arch = "arm", + target_arch = "riscv32", + target_arch = "riscv64", + ))] { + pub type c_char = u8; + } else { + pub type c_char = i8; + } +} pub type c_long = isize; pub type c_ulong = usize; pub type cc_t = u8; diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 3a8886e289a32..7c2e36f8bab98 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1,6 +1,12 @@ use crate::prelude::*; -pub type c_char = i8; +cfg_if! { + if #[cfg(target_arch = "aarch64")] { + pub type c_char = u8; + } else { + pub type c_char = i8; + } +} pub type wchar_t = i32; cfg_if! { diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 6f35a1e712843..fa00988dceab6 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -2,7 +2,13 @@ use core::mem::size_of; use crate::prelude::*; -pub type c_char = i8; +cfg_if! { + if #[cfg(target_arch = "aarch64")] { + pub type c_char = u8; + } else { + pub type c_char = i8; + } +} pub type c_long = i64; pub type c_ulong = u64; pub type caddr_t = *mut c_char; diff --git a/src/vxworks/riscv32.rs b/src/vxworks/riscv32.rs index e617bb83c6ce3..40a8e338e83a2 100644 --- a/src/vxworks/riscv32.rs +++ b/src/vxworks/riscv32.rs @@ -1,4 +1,4 @@ -pub type c_char = i8; +pub type c_char = u8; pub type wchar_t = i32; pub type c_long = i32; pub type c_ulong = u32; diff --git a/src/vxworks/riscv64.rs b/src/vxworks/riscv64.rs index 5e95ea2567ddf..ccd68b0c64f82 100644 --- a/src/vxworks/riscv64.rs +++ b/src/vxworks/riscv64.rs @@ -1,4 +1,4 @@ -pub type c_char = i8; +pub type c_char = u8; pub type wchar_t = i32; pub type c_long = i64; pub type c_ulong = u64; From 3e09b7c0a08d5699de81d866263371f5fbd0c95f Mon Sep 17 00:00:00 2001 From: Taiki Endo Date: Tue, 17 Dec 2024 20:33:03 +0900 Subject: [PATCH 0446/1228] Do not re-export c_void in target-specific code (backport ) (cherry picked from commit c389c3059e782825c92159eadfc34c8806dede4b) --- src/teeos/mod.rs | 3 --- src/trusty.rs | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/teeos/mod.rs b/src/teeos/mod.rs index b9a46f946a84d..40bc0c0549a08 100644 --- a/src/teeos/mod.rs +++ b/src/teeos/mod.rs @@ -5,9 +5,6 @@ #![allow(non_camel_case_types)] #![allow(non_snake_case)] -// only supported on Rust > 1.59, so we can directly reexport c_void from core. -pub use core::ffi::c_void; - use crate::prelude::*; pub type c_schar = i8; diff --git a/src/trusty.rs b/src/trusty.rs index 2d2b78881a75f..60ca11d481613 100644 --- a/src/trusty.rs +++ b/src/trusty.rs @@ -1,4 +1,4 @@ -pub use core::ffi::c_void; +use crate::prelude::*; pub type size_t = usize; pub type ssize_t = isize; From 0567b59f0b9b2415d5a9d4845a09bdddd2d0a7d1 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 17 Dec 2024 21:29:10 +0000 Subject: [PATCH 0447/1228] Ignore ordering style for `c_char` (backport ) (cherry picked from commit c33744ea5af50e876fb4ed954178a1f82d42308b) --- ci/style.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ci/style.rs b/ci/style.rs index f5aeabcc71b5a..cad08f2eecc88 100644 --- a/ci/style.rs +++ b/ci/style.rs @@ -28,10 +28,9 @@ //! * alignment //! * leading colons on paths -use std::env; -use std::fs; use std::io::prelude::*; use std::path::Path; +use std::{env, fs}; macro_rules! t { ($e:expr) => { @@ -130,7 +129,7 @@ fn check_style(file: &str, path: &Path, err: &mut Errors) { let line = if is_pub { &line[4..] } else { line }; let line_state = if line.starts_with("use ") { - if line.contains("c_void") { + if line.contains("c_void") || line.contains("c_char") { continue; } if is_pub { From 2ade12cd84b3beccc287cb8bea475a7f08500af6 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 17 Dec 2024 21:30:30 +0000 Subject: [PATCH 0448/1228] Replace arch-conditional `c_char` with a reexport For any platforms that have `c_char` within a `cfg_if` block, ensure they match the top-level `arch` definitions and reexport that to clean up code. (backport ) (cherry picked from commit fead383bf485cbed830b2686cf45ae5a12b74138) --- src/hermit.rs | 9 +-------- src/trusty.rs | 10 +--------- src/unix/nuttx/mod.rs | 12 +----------- src/unix/redox/mod.rs | 8 +------- src/unix/solarish/mod.rs | 8 +------- 5 files changed, 5 insertions(+), 42 deletions(-) diff --git a/src/hermit.rs b/src/hermit.rs index 2b470e78d3afe..9363fed788304 100644 --- a/src/hermit.rs +++ b/src/hermit.rs @@ -1,15 +1,8 @@ //! Hermit C type definitions +pub use crate::arch::c_char_def as c_char; use crate::prelude::*; -cfg_if! { - if #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))] { - pub type c_char = u8; - } else { - pub type c_char = i8; - } -} - pub type c_schar = i8; pub type c_uchar = u8; pub type c_short = i16; diff --git a/src/trusty.rs b/src/trusty.rs index 60ca11d481613..676a456d892fe 100644 --- a/src/trusty.rs +++ b/src/trusty.rs @@ -1,18 +1,10 @@ +pub use crate::arch::c_char_def as c_char; use crate::prelude::*; - pub type size_t = usize; pub type ssize_t = isize; pub type off_t = i64; -cfg_if! { - if #[cfg(any(target_arch = "aarch64", target_arch = "arm"))] { - pub type c_char = u8; - } else if #[cfg(target_arch = "x86_64")] { - pub type c_char = i8; - } -} - pub type c_schar = i8; pub type c_uchar = u8; pub type c_short = i16; diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index 78ecf3f133505..ed3e1ed8bfa34 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -1,3 +1,4 @@ +pub use crate::arch::c_char_def as c_char; use crate::prelude::*; use crate::{in6_addr, in_addr_t, timespec, DIR}; @@ -5,17 +6,6 @@ pub type nlink_t = u16; pub type ino_t = u16; pub type blkcnt_t = u64; pub type blksize_t = i16; -cfg_if! { - if #[cfg(any( - target_arch = "arm", - target_arch = "riscv32", - target_arch = "riscv64", - ))] { - pub type c_char = u8; - } else { - pub type c_char = i8; - } -} pub type c_long = isize; pub type c_ulong = usize; pub type cc_t = u8; diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 7c2e36f8bab98..c557509224437 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1,12 +1,6 @@ +pub use crate::arch::c_char_def as c_char; use crate::prelude::*; -cfg_if! { - if #[cfg(target_arch = "aarch64")] { - pub type c_char = u8; - } else { - pub type c_char = i8; - } -} pub type wchar_t = i32; cfg_if! { diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index fa00988dceab6..0f398ca448263 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1,14 +1,8 @@ use core::mem::size_of; +pub use crate::arch::c_char_def as c_char; use crate::prelude::*; -cfg_if! { - if #[cfg(target_arch = "aarch64")] { - pub type c_char = u8; - } else { - pub type c_char = i8; - } -} pub type c_long = i64; pub type c_ulong = u64; pub type caddr_t = *mut c_char; From fab6a64ab0af0a44d7f998f554e2ff49b151ba27 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 18 Dec 2024 09:02:32 +0000 Subject: [PATCH 0449/1228] Skip `c_char_def` on OpenBSD Fixes https://github.com/rust-lang/libc/issues/4209 (backport ) (cherry picked from commit 9ff340933538e23fdf6cc1ecefc810c664bd0ebe) --- libc-test/build.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 1879334fb21a9..d35101d4cae39 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -647,6 +647,11 @@ fn test_openbsd(target: &str) { } }); + cfg.skip_type(move |ty| { + // `c_char_def` is always public but not always reexported. + ty == "c_char_def" + }); + cfg.type_name(move |ty, is_struct, is_union| { match ty { // Just pass all these through, no need for a "struct" prefix From bb5944c67d6f7f3ead944120ec30561731b427de Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2024 11:23:56 +0000 Subject: [PATCH 0450/1228] chore: release v0.2.169 Co-authored-by: Trevor Gross --- CHANGELOG.md | 18 ++++++++++++++++++ Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43f7151f521e5..e1efe1f840044 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,24 @@ # Changelog ## [Unreleased] +## [0.2.169](https://github.com/rust-lang/libc/compare/0.2.168...0.2.169) - 2024-12-18 + +### Added + +- FreeBSD: add more socket TCP stack constants +- Fuchsia: add a `sockaddr_vm` definition + +### Fixed + +**Breaking**: [rust-lang/rust#132975](https://github.com/rust-lang/rust/pull/132975) corrected the signedness of `core::ffi::c_char` on various Tier 2 and Tier 3 platforms (mostly Arm and RISC-V) to match Clang. This release contains the corresponding changes to `libc`, including the following specific pull requests: + +- ESP-IDF: Replace arch-conditional `c_char` with a reexport +- Fix `c_char` on various targets +- Mirror `c_char` configuration from `rust-lang/rust` + +### Cleanup + +- Do not re-export `c_void` in target-specific code ## [0.2.168](https://github.com/rust-lang/libc/compare/0.2.167...0.2.168) - 2024-12-09 diff --git a/Cargo.toml b/Cargo.toml index b444a646655a2..aa6926ee5f0bd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.168" +version = "0.2.169" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 317c29bedc876..007663f69c424 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -14,7 +14,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.168" +version = "0.2.169" default-features = false [build-dependencies] From a72002acbceb97d8d298ffe87357644bf22aa5ad Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 23 Dec 2024 10:43:39 +0000 Subject: [PATCH 0451/1228] Allow `unpredictable_function_pointer_comparisons` in another place Nightly must have just recently updated how this gets checked, we are getting new errors in CI. Allow the lint in another place. (backport ) (cherry picked from commit 1de1c0afc15d033923fbd8e0037cf2dfc2b6baf7) --- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index a97ead4757b1a..db83835f12c94 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -865,6 +865,8 @@ cfg_if! { self.mc_fpregs.hash(state); } } + // FIXME(msrv): suggested method was added in 1.85 + #[allow(unpredictable_function_pointer_comparisons)] impl PartialEq for ucontext_t { fn eq(&self, other: &ucontext_t) -> bool { self.uc_sigmask == other.uc_sigmask From 8448147a26b338a9e92afa82bedbdbcc3655daa7 Mon Sep 17 00:00:00 2001 From: Taiki Endo Date: Wed, 18 Dec 2024 10:39:37 +0900 Subject: [PATCH 0452/1228] Define c_char at top-level and remove per-target c_char definitions (backport ) (cherry picked from commit 0a02b941cf105dc4d4c5b5bd1ddc7bb546ad89c9) --- libc-test/build.rs | 36 +---------- src/fuchsia/aarch64.rs | 1 - src/fuchsia/riscv64.rs | 1 - src/fuchsia/x86_64.rs | 1 - src/hermit.rs | 1 - src/lib.rs | 64 +++++++++---------- src/sgx.rs | 1 - src/solid/aarch64.rs | 1 - src/solid/arm.rs | 1 - src/switch.rs | 1 - src/teeos/mod.rs | 3 - src/trusty.rs | 1 - src/unix/aix/mod.rs | 1 - src/unix/bsd/apple/mod.rs | 1 - src/unix/bsd/freebsdlike/dragonfly/mod.rs | 1 - src/unix/bsd/freebsdlike/freebsd/aarch64.rs | 1 - src/unix/bsd/freebsdlike/freebsd/arm.rs | 1 - src/unix/bsd/freebsdlike/freebsd/powerpc.rs | 1 - src/unix/bsd/freebsdlike/freebsd/powerpc64.rs | 1 - src/unix/bsd/freebsdlike/freebsd/riscv64.rs | 1 - src/unix/bsd/freebsdlike/freebsd/x86.rs | 1 - .../bsd/freebsdlike/freebsd/x86_64/mod.rs | 1 - src/unix/bsd/netbsdlike/netbsd/aarch64.rs | 1 - src/unix/bsd/netbsdlike/netbsd/arm.rs | 1 - src/unix/bsd/netbsdlike/netbsd/mips.rs | 1 - src/unix/bsd/netbsdlike/netbsd/powerpc.rs | 1 - src/unix/bsd/netbsdlike/netbsd/riscv64.rs | 1 - src/unix/bsd/netbsdlike/netbsd/sparc64.rs | 1 - src/unix/bsd/netbsdlike/netbsd/x86.rs | 1 - src/unix/bsd/netbsdlike/netbsd/x86_64.rs | 1 - src/unix/bsd/netbsdlike/openbsd/aarch64.rs | 1 - src/unix/bsd/netbsdlike/openbsd/arm.rs | 1 - src/unix/bsd/netbsdlike/openbsd/mips64.rs | 1 - src/unix/bsd/netbsdlike/openbsd/powerpc.rs | 1 - src/unix/bsd/netbsdlike/openbsd/powerpc64.rs | 1 - src/unix/bsd/netbsdlike/openbsd/riscv64.rs | 1 - src/unix/bsd/netbsdlike/openbsd/sparc64.rs | 1 - src/unix/bsd/netbsdlike/openbsd/x86.rs | 1 - src/unix/bsd/netbsdlike/openbsd/x86_64.rs | 1 - src/unix/haiku/mod.rs | 1 - src/unix/hurd/mod.rs | 2 - src/unix/linux_like/android/b32/arm.rs | 1 - src/unix/linux_like/android/b32/x86/mod.rs | 1 - .../linux_like/android/b64/aarch64/mod.rs | 1 - .../linux_like/android/b64/riscv64/mod.rs | 1 - src/unix/linux_like/android/b64/x86_64/mod.rs | 1 - src/unix/linux_like/emscripten/mod.rs | 1 - src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 1 - src/unix/linux_like/linux/gnu/b32/csky/mod.rs | 1 - src/unix/linux_like/linux/gnu/b32/m68k/mod.rs | 1 - src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 1 - src/unix/linux_like/linux/gnu/b32/powerpc.rs | 1 - .../linux_like/linux/gnu/b32/riscv32/mod.rs | 1 - .../linux_like/linux/gnu/b32/sparc/mod.rs | 1 - src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 1 - .../linux_like/linux/gnu/b64/aarch64/mod.rs | 1 - .../linux/gnu/b64/loongarch64/mod.rs | 1 - .../linux_like/linux/gnu/b64/mips64/mod.rs | 1 - .../linux_like/linux/gnu/b64/powerpc64/mod.rs | 1 - .../linux_like/linux/gnu/b64/riscv64/mod.rs | 1 - src/unix/linux_like/linux/gnu/b64/s390x.rs | 1 - .../linux_like/linux/gnu/b64/sparc64/mod.rs | 1 - .../linux_like/linux/gnu/b64/x86_64/mod.rs | 1 - src/unix/linux_like/linux/musl/b32/arm/mod.rs | 1 - src/unix/linux_like/linux/musl/b32/hexagon.rs | 1 - .../linux_like/linux/musl/b32/mips/mod.rs | 1 - src/unix/linux_like/linux/musl/b32/powerpc.rs | 1 - .../linux_like/linux/musl/b32/riscv32/mod.rs | 1 - src/unix/linux_like/linux/musl/b32/x86/mod.rs | 1 - .../linux_like/linux/musl/b64/aarch64/mod.rs | 1 - .../linux/musl/b64/loongarch64/mod.rs | 1 - src/unix/linux_like/linux/musl/b64/mips64.rs | 1 - .../linux_like/linux/musl/b64/powerpc64.rs | 1 - .../linux_like/linux/musl/b64/riscv64/mod.rs | 1 - src/unix/linux_like/linux/musl/b64/s390x.rs | 1 - .../linux_like/linux/musl/b64/x86_64/mod.rs | 1 - src/unix/linux_like/linux/uclibc/arm/mod.rs | 1 - .../linux/uclibc/mips/mips32/mod.rs | 1 - .../linux/uclibc/mips/mips64/mod.rs | 1 - .../linux_like/linux/uclibc/x86_64/mod.rs | 1 - src/unix/newlib/aarch64/mod.rs | 1 - src/unix/newlib/arm/mod.rs | 1 - src/unix/newlib/espidf/mod.rs | 1 - src/unix/newlib/horizon/mod.rs | 1 - src/unix/newlib/powerpc/mod.rs | 1 - src/unix/newlib/vita/mod.rs | 1 - src/unix/nto/aarch64.rs | 1 - src/unix/nto/x86_64.rs | 1 - src/unix/nuttx/mod.rs | 1 - src/unix/redox/mod.rs | 1 - src/unix/solarish/mod.rs | 1 - src/vxworks/aarch64.rs | 1 - src/vxworks/arm.rs | 1 - src/vxworks/powerpc.rs | 1 - src/vxworks/powerpc64.rs | 1 - src/vxworks/riscv32.rs | 1 - src/vxworks/riscv64.rs | 1 - src/vxworks/x86.rs | 1 - src/vxworks/x86_64.rs | 1 - src/wasi/mod.rs | 1 - src/windows/mod.rs | 1 - src/xous.rs | 1 - 102 files changed, 30 insertions(+), 173 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index d35101d4cae39..a82ae56e2e81e 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -364,9 +364,6 @@ fn test_apple(target: &str) { // FIXME: "'__uint128' undeclared" in C "__uint128" => true, - // `c_char_def` is always public but not always reexported. - "c_char_def" => true, - _ => false, } }); @@ -766,8 +763,6 @@ fn test_windows(target: &str) { "ssize_t" if !gnu => true, // FIXME: The size and alignment of this type are incorrect "time_t" if gnu && i686 => true, - // `c_char_def` is always public but not always reexported. - "c_char_def" => true, _ => false, }); @@ -985,8 +980,6 @@ fn test_solarish(target: &str) { cfg.skip_type(move |ty| match ty { "sighandler_t" => true, - // `c_char_def` is always public but not always reexported. - "c_char_def" => true, _ => false, }); @@ -1290,8 +1283,6 @@ fn test_netbsd(target: &str) { match ty { // FIXME: sighandler_t is crazy across platforms "sighandler_t" => true, - // `c_char_def` is always public but not always reexported. - "c_char_def" => true, _ => false, } }); @@ -1511,8 +1502,6 @@ fn test_dragonflybsd(target: &str) { match ty { // sighandler_t is crazy across platforms "sighandler_t" => true, - // `c_char_def` is always public but not always reexported. - "c_char_def" => true, _ => false, } }); @@ -1674,8 +1663,6 @@ fn test_wasi(target: &str) { } }); - cfg.skip_type(|ty| ty == "c_char_def"); - // These have a different and internal type in header files and are only // used here to generate a pointer to them in bindings so skip these tests. cfg.skip_static(|c| c.starts_with("_CLOCK_")); @@ -1924,9 +1911,6 @@ fn test_android(target: &str) { // FIXME: "'__uint128' undeclared" in C "__uint128" => true, - // `c_char_def` is always public but not always reexported. - "c_char_def" => true, - _ => false, } }); @@ -2689,9 +2673,6 @@ fn test_freebsd(target: &str) { // `eventfd(2)` and things come with it are added in FreeBSD 13 "eventfd_t" if Some(13) > freebsd_ver => true, - // `c_char_def` is always public but not always reexported. - "c_char_def" => true, - _ => false, } }); @@ -3012,9 +2993,6 @@ fn test_emscripten(target: &str) { // https://github.com/emscripten-core/emscripten/issues/5033 ty if ty.starts_with("epoll") => true, - // `c_char_def` is always public but not always reexported. - "c_char_def" => true, - // LFS64 types have been removed in Emscripten 3.1.44 // https://github.com/emscripten-core/emscripten/pull/19812 t => t.ends_with("64") || t.ends_with("64_t"), @@ -3286,9 +3264,6 @@ fn test_neutrino(target: &str) { // Does not exist in Neutrino "locale_t" => true, - // `c_char_def` is always public but not always reexported. - "c_char_def" => true, - _ => false, } }); @@ -3455,8 +3430,6 @@ fn test_vxworks(target: &str) { // FIXME cfg.skip_type(move |ty| match ty { "stat64" | "sighandler_t" | "off64_t" => true, - // `c_char_def` is always public but not always reexported. - "c_char_def" => true, _ => false, }); @@ -3804,9 +3777,6 @@ fn test_linux(target: &str) { // FIXME: "'__uint128' undeclared" in C "__uint128" => true, - // `c_char_def` is always public but not always reexported. - "c_char_def" => true, - t => { if musl { // LFS64 types have been removed in musl 1.2.4+ @@ -4036,7 +4006,7 @@ fn test_linux(target: &str) { } // FIXME: Requires >= 5.4 kernel headers if name == "PTP_CLOCK_GETCAPS2" - || name == "PTP_ENABLE_PPS2" + || name == "PTP_ENABLE_PPS2" || name == "PTP_EXTTS_REQUEST2" || name == "PTP_PEROUT_REQUEST2" || name == "PTP_PIN_GETFUNC2" @@ -4759,8 +4729,6 @@ fn test_linux_like_apis(target: &str) { }) .skip_type(move |ty| match ty { "Elf64_Phdr" | "Elf32_Phdr" => false, - // `c_char_def` is always public but not always reexported. - "c_char_def" => true, _ => true, }); cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_elf.rs"); @@ -4996,8 +4964,6 @@ fn test_haiku(target: &str) { "pthread_condattr_t" => true, "pthread_mutexattr_t" => true, "pthread_rwlockattr_t" => true, - // `c_char_def` is always public but not always reexported. - "c_char_def" => true, _ => false, } }); diff --git a/src/fuchsia/aarch64.rs b/src/fuchsia/aarch64.rs index b822375100948..577f0d99cf24d 100644 --- a/src/fuchsia/aarch64.rs +++ b/src/fuchsia/aarch64.rs @@ -1,7 +1,6 @@ use crate::off_t; use crate::prelude::*; -pub type c_char = u8; pub type __u64 = c_ulonglong; pub type wchar_t = u32; pub type nlink_t = c_ulong; diff --git a/src/fuchsia/riscv64.rs b/src/fuchsia/riscv64.rs index bed7a926030fe..c57d52aad1386 100644 --- a/src/fuchsia/riscv64.rs +++ b/src/fuchsia/riscv64.rs @@ -2,7 +2,6 @@ use crate::off_t; use crate::prelude::*; // From psABI Calling Convention for RV64 -pub type c_char = u8; pub type __u64 = c_ulonglong; pub type wchar_t = i32; diff --git a/src/fuchsia/x86_64.rs b/src/fuchsia/x86_64.rs index b82b86adcd41e..ffff3a78b5ed5 100644 --- a/src/fuchsia/x86_64.rs +++ b/src/fuchsia/x86_64.rs @@ -1,7 +1,6 @@ use crate::off_t; use crate::prelude::*; -pub type c_char = i8; pub type wchar_t = i32; pub type nlink_t = u64; pub type blksize_t = c_long; diff --git a/src/hermit.rs b/src/hermit.rs index 9363fed788304..03947bc01ade5 100644 --- a/src/hermit.rs +++ b/src/hermit.rs @@ -1,6 +1,5 @@ //! Hermit C type definitions -pub use crate::arch::c_char_def as c_char; use crate::prelude::*; pub type c_schar = i8; diff --git a/src/lib.rs b/src/lib.rs index 569775095fa8c..c1cdc7f1bc4eb 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -41,41 +41,35 @@ cfg_if! { pub use core::ffi::c_void; -/// Type definitions that are coupled tighter to architecture than OS. -mod arch { - cfg_if! { - // This configuration comes from `rust-lang/rust` in `library/core/src/ffi/mod.rs`. - if #[cfg(all( - not(windows), - // FIXME(ctest): just use `target_vendor` = "apple"` once `ctest` supports it - not(any( - target_os = "macos", - target_os = "ios", - target_os = "tvos", - target_os = "watchos", - target_os = "visionos", - )), - any( - target_arch = "aarch64", - target_arch = "arm", - target_arch = "csky", - target_arch = "hexagon", - target_arch = "msp430", - target_arch = "powerpc", - target_arch = "powerpc64", - target_arch = "riscv64", - target_arch = "riscv32", - target_arch = "s390x", - target_arch = "xtensa", - ) - ))] { - // To be reexported as `c_char` - // FIXME(ctest): just name these `c_char` once `ctest` learns that these don't get - // exported. - pub type c_char_def = u8; - } else { - pub type c_char_def = i8; - } +cfg_if! { + // This configuration comes from `rust-lang/rust` in `library/core/src/ffi/mod.rs`. + if #[cfg(all( + not(windows), + // FIXME(ctest): just use `target_vendor` = "apple"` once `ctest` supports it + not(any( + target_os = "macos", + target_os = "ios", + target_os = "tvos", + target_os = "watchos", + target_os = "visionos", + )), + any( + target_arch = "aarch64", + target_arch = "arm", + target_arch = "csky", + target_arch = "hexagon", + target_arch = "msp430", + target_arch = "powerpc", + target_arch = "powerpc64", + target_arch = "riscv64", + target_arch = "riscv32", + target_arch = "s390x", + target_arch = "xtensa", + ) + ))] { + pub type c_char = u8; + } else { + pub type c_char = i8; } } diff --git a/src/sgx.rs b/src/sgx.rs index e37ccd79c3a55..65eded63ad460 100644 --- a/src/sgx.rs +++ b/src/sgx.rs @@ -19,7 +19,6 @@ pub type intptr_t = isize; pub type uintptr_t = usize; pub type ssize_t = isize; -pub type c_char = i8; pub type c_long = i64; pub type c_ulong = u64; diff --git a/src/solid/aarch64.rs b/src/solid/aarch64.rs index 4032488b6c0d5..630c7db54b55b 100644 --- a/src/solid/aarch64.rs +++ b/src/solid/aarch64.rs @@ -1,4 +1,3 @@ -pub type c_char = u8; pub type wchar_t = u32; pub type c_long = i64; pub type c_ulong = u64; diff --git a/src/solid/arm.rs b/src/solid/arm.rs index 55240068aa08e..01fc7262f03e2 100644 --- a/src/solid/arm.rs +++ b/src/solid/arm.rs @@ -1,4 +1,3 @@ -pub type c_char = u8; pub type wchar_t = u32; pub type c_long = i32; pub type c_ulong = u32; diff --git a/src/switch.rs b/src/switch.rs index 4a8b16e15f568..1875ea81ad1ec 100644 --- a/src/switch.rs +++ b/src/switch.rs @@ -20,7 +20,6 @@ pub type uintptr_t = usize; pub type ssize_t = isize; pub type off_t = i64; -pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; pub type wchar_t = u32; diff --git a/src/teeos/mod.rs b/src/teeos/mod.rs index 40bc0c0549a08..b055d2aca8c7e 100644 --- a/src/teeos/mod.rs +++ b/src/teeos/mod.rs @@ -45,9 +45,6 @@ pub type ssize_t = isize; pub type pid_t = c_int; -// aarch64 specific -pub type c_char = u8; - pub type wchar_t = u32; pub type c_long = i64; diff --git a/src/trusty.rs b/src/trusty.rs index 676a456d892fe..db908d5c6d47a 100644 --- a/src/trusty.rs +++ b/src/trusty.rs @@ -1,4 +1,3 @@ -pub use crate::arch::c_char_def as c_char; use crate::prelude::*; pub type size_t = usize; pub type ssize_t = isize; diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 6e98709dc5462..647836b6f6719 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -1,6 +1,5 @@ use crate::prelude::*; -pub type c_char = u8; pub type caddr_t = *mut c_char; pub type clockid_t = c_longlong; pub type blkcnt_t = c_long; diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 943d9e400ecc0..fe8bad4209f37 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -5,7 +5,6 @@ use crate::prelude::*; use crate::{cmsghdr, off_t}; -pub type c_char = i8; pub type wchar_t = i32; pub type clock_t = c_ulong; pub type time_t = c_long; diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index db83835f12c94..2897ad377f14d 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -2,7 +2,6 @@ use crate::prelude::*; use crate::{cmsghdr, off_t}; pub type dev_t = u32; -pub type c_char = i8; pub type wchar_t = i32; pub type clock_t = u64; pub type ino_t = u64; diff --git a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs index 81d3eb351cdb6..0201008e485fb 100644 --- a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs @@ -1,6 +1,5 @@ use crate::prelude::*; -pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; pub type clock_t = i32; diff --git a/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/unix/bsd/freebsdlike/freebsd/arm.rs index 07492c9333d75..1624e655a0f4c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/arm.rs +++ b/src/unix/bsd/freebsdlike/freebsd/arm.rs @@ -1,6 +1,5 @@ use crate::prelude::*; -pub type c_char = u8; pub type c_long = i32; pub type c_ulong = u32; pub type clock_t = u32; diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs index 0bd678c9821b6..6c8c973d570d1 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs @@ -1,6 +1,5 @@ use crate::prelude::*; -pub type c_char = u8; pub type c_long = i32; pub type c_ulong = u32; pub type clock_t = u32; diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs index e1548a2fa4a09..a812568b38e7d 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs @@ -1,6 +1,5 @@ use crate::prelude::*; -pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; pub type clock_t = u32; diff --git a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs index e425411436d2b..212413cbe22af 100644 --- a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs @@ -1,6 +1,5 @@ use crate::prelude::*; -pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; pub type clock_t = i32; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index 5af53cd76f665..c5a922b455642 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -1,6 +1,5 @@ use crate::prelude::*; -pub type c_char = i8; pub type c_long = i32; pub type c_ulong = u32; pub type clock_t = c_ulong; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index fca9a126f81c1..199ea643fdab4 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -1,6 +1,5 @@ use crate::prelude::*; -pub type c_char = i8; pub type c_long = i64; pub type c_ulong = u64; pub type clock_t = i32; diff --git a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs index 2391801fe458b..dbac03d2fb2ac 100644 --- a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs @@ -3,7 +3,6 @@ use crate::PT_FIRSTMACH; pub type c_long = i64; pub type c_ulong = u64; -pub type c_char = u8; pub type greg_t = u64; pub type __cpu_simple_lock_nv_t = c_uchar; diff --git a/src/unix/bsd/netbsdlike/netbsd/arm.rs b/src/unix/bsd/netbsdlike/netbsd/arm.rs index 1f54c8135bf47..698eba93b31a5 100644 --- a/src/unix/bsd/netbsdlike/netbsd/arm.rs +++ b/src/unix/bsd/netbsdlike/netbsd/arm.rs @@ -3,7 +3,6 @@ use crate::PT_FIRSTMACH; pub type c_long = i32; pub type c_ulong = u32; -pub type c_char = u8; pub type __cpu_simple_lock_nv_t = c_int; pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/mips.rs b/src/unix/bsd/netbsdlike/netbsd/mips.rs index 7129c0f54eb6f..028deb0cfbf76 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mips.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mips.rs @@ -3,7 +3,6 @@ use crate::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; pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/powerpc.rs b/src/unix/bsd/netbsdlike/netbsd/powerpc.rs index a086396ed610a..20eba6849a3ee 100644 --- a/src/unix/bsd/netbsdlike/netbsd/powerpc.rs +++ b/src/unix/bsd/netbsdlike/netbsd/powerpc.rs @@ -3,7 +3,6 @@ use crate::PT_FIRSTMACH; pub type c_long = i32; pub type c_ulong = u32; -pub type c_char = u8; pub type __cpu_simple_lock_nv_t = c_int; pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs index 68cd264aadb78..0437b994ca276 100644 --- a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs @@ -4,7 +4,6 @@ use crate::prelude::*; pub type c_long = i64; pub type c_ulong = u64; -pub type c_char = u8; pub type __greg_t = u64; pub type __cpu_simple_lock_nv_t = c_int; pub type __gregset = [__greg_t; _NGREG]; diff --git a/src/unix/bsd/netbsdlike/netbsd/sparc64.rs b/src/unix/bsd/netbsdlike/netbsd/sparc64.rs index d564f58a3e688..3cfe535e7edfa 100644 --- a/src/unix/bsd/netbsdlike/netbsd/sparc64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/sparc64.rs @@ -2,7 +2,6 @@ use crate::prelude::*; pub type c_long = i64; pub type c_ulong = u64; -pub type c_char = i8; pub type __cpu_simple_lock_nv_t = c_uchar; // should be pub(crate), but that requires Rust 1.18.0 diff --git a/src/unix/bsd/netbsdlike/netbsd/x86.rs b/src/unix/bsd/netbsdlike/netbsd/x86.rs index 3c55792defcbd..04741f2dc1f4e 100644 --- a/src/unix/bsd/netbsdlike/netbsd/x86.rs +++ b/src/unix/bsd/netbsdlike/netbsd/x86.rs @@ -2,7 +2,6 @@ use crate::prelude::*; pub type c_long = i32; pub type c_ulong = u32; -pub type c_char = i8; pub type __cpu_simple_lock_nv_t = c_uchar; pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/x86_64.rs b/src/unix/bsd/netbsdlike/netbsd/x86_64.rs index f968e36d67aa2..52f3da771a157 100644 --- a/src/unix/bsd/netbsdlike/netbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/x86_64.rs @@ -3,7 +3,6 @@ use crate::PT_FIRSTMACH; pub type c_long = i64; pub type c_ulong = u64; -pub type c_char = i8; pub type c___greg_t = u64; pub type __cpu_simple_lock_nv_t = c_uchar; diff --git a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs index bf704757c59d6..4cd0b32549835 100644 --- a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs @@ -2,7 +2,6 @@ use crate::prelude::*; pub type c_long = i64; pub type c_ulong = u64; -pub type c_char = u8; pub type ucontext_t = sigcontext; s! { diff --git a/src/unix/bsd/netbsdlike/openbsd/arm.rs b/src/unix/bsd/netbsdlike/openbsd/arm.rs index 1e66ed247a2eb..7fd17cf65a55f 100644 --- a/src/unix/bsd/netbsdlike/openbsd/arm.rs +++ b/src/unix/bsd/netbsdlike/openbsd/arm.rs @@ -2,7 +2,6 @@ use crate::prelude::*; pub type c_long = i32; pub type c_ulong = u32; -pub type c_char = u8; pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; diff --git a/src/unix/bsd/netbsdlike/openbsd/mips64.rs b/src/unix/bsd/netbsdlike/openbsd/mips64.rs index 15803ced09a08..17ebae2889f17 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mips64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mips64.rs @@ -1,6 +1,5 @@ pub type c_long = i64; pub type c_ulong = u64; -pub type c_char = i8; #[doc(hidden)] pub const _ALIGNBYTES: usize = 7; diff --git a/src/unix/bsd/netbsdlike/openbsd/powerpc.rs b/src/unix/bsd/netbsdlike/openbsd/powerpc.rs index 1e66ed247a2eb..7fd17cf65a55f 100644 --- a/src/unix/bsd/netbsdlike/openbsd/powerpc.rs +++ b/src/unix/bsd/netbsdlike/openbsd/powerpc.rs @@ -2,7 +2,6 @@ use crate::prelude::*; pub type c_long = i32; pub type c_ulong = u32; -pub type c_char = u8; pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; diff --git a/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs b/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs index cb808719fb8ea..1a3b452091ce0 100644 --- a/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs @@ -2,7 +2,6 @@ use crate::prelude::*; pub type c_long = i64; pub type c_ulong = u64; -pub type c_char = u8; pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; diff --git a/src/unix/bsd/netbsdlike/openbsd/riscv64.rs b/src/unix/bsd/netbsdlike/openbsd/riscv64.rs index 6a39f3494dd14..d37e9a67e6888 100644 --- a/src/unix/bsd/netbsdlike/openbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/riscv64.rs @@ -2,7 +2,6 @@ use crate::prelude::*; pub type c_long = i64; pub type c_ulong = u64; -pub type c_char = u8; pub type ucontext_t = sigcontext; s! { diff --git a/src/unix/bsd/netbsdlike/openbsd/sparc64.rs b/src/unix/bsd/netbsdlike/openbsd/sparc64.rs index 070fc9385f6c9..f8e165a7de299 100644 --- a/src/unix/bsd/netbsdlike/openbsd/sparc64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/sparc64.rs @@ -1,6 +1,5 @@ pub type c_long = i64; pub type c_ulong = u64; -pub type c_char = i8; #[doc(hidden)] pub const _ALIGNBYTES: usize = 0xf; diff --git a/src/unix/bsd/netbsdlike/openbsd/x86.rs b/src/unix/bsd/netbsdlike/openbsd/x86.rs index 4b495d0c16de8..cac4ea7f8e94c 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86.rs @@ -2,7 +2,6 @@ use crate::prelude::*; pub type c_long = i32; pub type c_ulong = u32; -pub type c_char = i8; pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; diff --git a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs index 4380c1d118922..683046836320d 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs @@ -3,7 +3,6 @@ use crate::PT_FIRSTMACH; pub type c_long = i64; pub type c_ulong = u64; -pub type c_char = i8; pub type ucontext_t = sigcontext; s! { diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 78477a10bfc51..10ee719b9c18f 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -6,7 +6,6 @@ pub type pthread_key_t = c_int; pub type nfds_t = c_ulong; pub type tcflag_t = c_uint; pub type speed_t = c_uchar; -pub type c_char = i8; pub type clock_t = i32; pub type clockid_t = i32; pub type suseconds_t = i32; diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 1a04a725ada56..3a9253fc31f51 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -4,8 +4,6 @@ use crate::c_schar; use crate::prelude::*; // types -pub type c_char = i8; - pub type __s16_type = c_short; pub type __u16_type = c_ushort; pub type __s32_type = c_int; diff --git a/src/unix/linux_like/android/b32/arm.rs b/src/unix/linux_like/android/b32/arm.rs index 0bf4087fde751..a6170adc14d3f 100644 --- a/src/unix/linux_like/android/b32/arm.rs +++ b/src/unix/linux_like/android/b32/arm.rs @@ -1,6 +1,5 @@ use crate::prelude::*; -pub type c_char = u8; pub type wchar_t = u32; pub type greg_t = i32; pub type mcontext_t = sigcontext; diff --git a/src/unix/linux_like/android/b32/x86/mod.rs b/src/unix/linux_like/android/b32/x86/mod.rs index 9f80d8a71f449..a5560e051660a 100644 --- a/src/unix/linux_like/android/b32/x86/mod.rs +++ b/src/unix/linux_like/android/b32/x86/mod.rs @@ -1,6 +1,5 @@ use crate::prelude::*; -pub type c_char = i8; pub type wchar_t = i32; pub type greg_t = i32; diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index 39d8bc07c4dd5..b678eb8da6aa4 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -1,7 +1,6 @@ use crate::off64_t; use crate::prelude::*; -pub type c_char = u8; pub type wchar_t = u32; pub type __u64 = c_ulonglong; pub type __s64 = c_longlong; diff --git a/src/unix/linux_like/android/b64/riscv64/mod.rs b/src/unix/linux_like/android/b64/riscv64/mod.rs index d35c408955109..c4dc98e010aed 100644 --- a/src/unix/linux_like/android/b64/riscv64/mod.rs +++ b/src/unix/linux_like/android/b64/riscv64/mod.rs @@ -1,7 +1,6 @@ use crate::off64_t; use crate::prelude::*; -pub type c_char = u8; pub type wchar_t = u32; pub type greg_t = i64; pub type __u64 = c_ulonglong; diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index 4da5cd4995679..ad878462c8c1a 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -1,7 +1,6 @@ use crate::off64_t; use crate::prelude::*; -pub type c_char = i8; pub type wchar_t = i32; pub type greg_t = i64; pub type __u64 = c_ulonglong; diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 866a20cd00722..c51935ee99f96 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -1,6 +1,5 @@ use crate::prelude::*; -pub type c_char = i8; pub type wchar_t = i32; pub type useconds_t = u32; pub type dev_t = u32; diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index f3869723996cb..9462f627d63e7 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -1,7 +1,6 @@ use crate::prelude::*; use crate::{off64_t, off_t}; -pub type c_char = u8; pub type wchar_t = u32; s! { diff --git a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs index eb6f70d8fed07..96cc52c55854e 100644 --- a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs @@ -1,7 +1,6 @@ use crate::prelude::*; use crate::{off64_t, off_t}; -pub type c_char = u8; pub type wchar_t = u32; s! { diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index 3d252c6253035..2de54f047bbb4 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -1,7 +1,6 @@ use crate::prelude::*; use crate::{off64_t, off_t}; -pub type c_char = i8; pub type wchar_t = i32; s! { diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 73da7739dabf5..9fd8f819379e5 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -1,7 +1,6 @@ use crate::prelude::*; use crate::{off64_t, off_t}; -pub type c_char = i8; pub type wchar_t = i32; s! { diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 75ec2385a1230..025ae37002e35 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -1,7 +1,6 @@ use crate::prelude::*; use crate::{off64_t, off_t}; -pub type c_char = u8; pub type wchar_t = i32; s! { diff --git a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs index 43547cc7ad868..91b17847e10ae 100644 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -3,7 +3,6 @@ use crate::prelude::*; use crate::{off64_t, off_t}; -pub type c_char = u8; pub type wchar_t = c_int; s! { diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index cfe62018f5fdd..fcd3c52bcee37 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -3,7 +3,6 @@ use crate::prelude::*; use crate::{off64_t, off_t}; -pub type c_char = i8; pub type wchar_t = i32; s! { diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index d626236dda792..84fb3ae31e6c9 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -1,7 +1,6 @@ use crate::prelude::*; use crate::{off64_t, off_t}; -pub type c_char = i8; pub type wchar_t = i32; pub type greg_t = i32; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index 27ba5263c5361..a4df172b8f5f7 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -3,7 +3,6 @@ use crate::prelude::*; use crate::{off64_t, off_t}; -pub type c_char = u8; pub type wchar_t = u32; pub type nlink_t = u32; pub type blksize_t = i32; diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs index 8c05659dc09a7..e8f045ba5f83b 100644 --- a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs @@ -1,7 +1,6 @@ use crate::prelude::*; use crate::{off64_t, off_t, pthread_mutex_t}; -pub type c_char = i8; pub type c_long = i64; pub type c_ulong = u64; pub type wchar_t = i32; diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index 2d85df1385a10..e1aef3759ddd5 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -2,7 +2,6 @@ use crate::prelude::*; use crate::{off64_t, off_t, pthread_mutex_t}; pub type blksize_t = i64; -pub type c_char = i8; pub type c_long = i64; pub type c_ulong = u64; pub type nlink_t = u64; diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index 86d047dbf3878..8d79845eb401b 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -5,7 +5,6 @@ use crate::{off64_t, off_t, pthread_mutex_t}; pub type c_long = i64; pub type c_ulong = u64; -pub type c_char = u8; pub type wchar_t = i32; pub type nlink_t = u64; pub type blksize_t = i64; diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index db8deafe896be..3dd9369457353 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -3,7 +3,6 @@ use crate::prelude::*; use crate::{off64_t, off_t}; -pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; pub type wchar_t = c_int; diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 95dacc9f91cbd..d5ab89a86fc3c 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -4,7 +4,6 @@ use crate::prelude::*; use crate::{off64_t, off_t, pthread_mutex_t}; pub type blksize_t = i64; -pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; pub type nlink_t = u64; diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs index 5626cd3e46933..b9f9485de1e37 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -5,7 +5,6 @@ use crate::{off64_t, off_t, pthread_mutex_t}; pub type c_long = i64; pub type c_ulong = u64; -pub type c_char = i8; pub type wchar_t = i32; pub type nlink_t = u32; pub type blksize_t = i64; diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index 0d9971252391b..a0dbb99ed76d9 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -3,7 +3,6 @@ use crate::prelude::*; use crate::{off64_t, off_t}; -pub type c_char = i8; pub type wchar_t = i32; pub type nlink_t = u64; pub type blksize_t = i64; diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index 3116837322b60..5829b0270d69c 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -1,7 +1,6 @@ use crate::off_t; use crate::prelude::*; -pub type c_char = u8; pub type wchar_t = u32; s! { diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 9becabd146f8d..61174fbd408da 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -1,6 +1,5 @@ use crate::prelude::*; -pub type c_char = u8; pub type wchar_t = u32; pub type stat64 = crate::stat; diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index aacdc44579496..56418ededd38e 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -1,7 +1,6 @@ use crate::off_t; use crate::prelude::*; -pub type c_char = i8; pub type wchar_t = c_int; s! { diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 29e797959123d..de2c5d5e3f724 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -1,7 +1,6 @@ use crate::off_t; use crate::prelude::*; -pub type c_char = u8; pub type wchar_t = i32; s! { diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index ff5839c64bc42..291dc7ec644d0 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -3,7 +3,6 @@ use crate::prelude::*; use crate::{off64_t, off_t}; -pub type c_char = u8; pub type wchar_t = c_int; s! { diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 476bacdb6b88d..5b947f38d99f2 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -1,7 +1,6 @@ use crate::off_t; use crate::prelude::*; -pub type c_char = i8; pub type wchar_t = i32; s! { diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index c660ec5c3453f..e84b9f563c668 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -1,7 +1,6 @@ use crate::off_t; use crate::prelude::*; -pub type c_char = u8; pub type __u64 = c_ulonglong; pub type __s64 = c_longlong; pub type wchar_t = u32; diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index 1be59ada9aad5..36f05e10e6ea4 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -3,7 +3,6 @@ use crate::prelude::*; use crate::{off64_t, off_t}; -pub type c_char = i8; pub type wchar_t = c_int; pub type nlink_t = c_uint; diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index 09191a5f8275c..0ce7e932a2db4 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -1,7 +1,6 @@ use crate::off_t; use crate::prelude::*; -pub type c_char = i8; pub type wchar_t = i32; pub type __u64 = c_ulong; pub type __s64 = c_long; diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index 3753293c8e0cf..f85e2748b1848 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -1,7 +1,6 @@ use crate::off_t; use crate::prelude::*; -pub type c_char = u8; pub type wchar_t = i32; pub type __u64 = c_ulong; pub type __s64 = c_long; diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index ec0ba4c1f926f..2b9b394d51d17 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -3,7 +3,6 @@ use crate::prelude::*; use crate::{off64_t, off_t}; -pub type c_char = u8; pub type wchar_t = c_int; pub type nlink_t = c_uint; diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index 22a6cec4185f0..25f49fc15534d 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -2,7 +2,6 @@ use crate::off_t; use crate::prelude::*; pub type blksize_t = i64; -pub type c_char = u8; pub type nlink_t = u64; pub type wchar_t = i32; pub type greg_t = u64; diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index 6399f33209ac2..b8f659b72392d 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -1,7 +1,6 @@ use crate::off_t; use crate::prelude::*; -pub type c_char = i8; pub type wchar_t = i32; pub type nlink_t = u64; pub type blksize_t = c_long; diff --git a/src/unix/linux_like/linux/uclibc/arm/mod.rs b/src/unix/linux_like/linux/uclibc/arm/mod.rs index da3203f98a3de..cbeedb51630f4 100644 --- a/src/unix/linux_like/linux/uclibc/arm/mod.rs +++ b/src/unix/linux_like/linux/uclibc/arm/mod.rs @@ -1,7 +1,6 @@ use crate::off64_t; use crate::prelude::*; -pub type c_char = u8; pub type wchar_t = c_uint; pub type c_long = i32; pub type c_ulong = u32; diff --git a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs index 6118928312b91..049b987fcd98a 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs @@ -1,7 +1,6 @@ use crate::off64_t; use crate::prelude::*; -pub type c_char = i8; pub type c_long = i32; pub type c_ulong = u32; pub type clock_t = i32; diff --git a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs index 86ee7bdff472b..d0a0f345546b6 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs @@ -3,7 +3,6 @@ use crate::prelude::*; pub type blkcnt_t = i64; pub type blksize_t = i64; -pub type c_char = i8; pub type c_long = i64; pub type c_ulong = u64; pub type fsblkcnt_t = c_ulong; diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index 709b0d152444a..8a363d558257f 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -6,7 +6,6 @@ use crate::prelude::*; pub type blkcnt_t = i64; pub type blksize_t = i64; pub type clock_t = i64; -pub type c_char = i8; pub type c_long = i64; pub type c_ulong = u64; pub type fsblkcnt_t = c_ulong; diff --git a/src/unix/newlib/aarch64/mod.rs b/src/unix/newlib/aarch64/mod.rs index 0aa1de7dcc828..f0ab09443da22 100644 --- a/src/unix/newlib/aarch64/mod.rs +++ b/src/unix/newlib/aarch64/mod.rs @@ -1,7 +1,6 @@ use crate::prelude::*; pub type clock_t = c_long; -pub type c_char = u8; pub type wchar_t = u32; pub type c_long = i64; diff --git a/src/unix/newlib/arm/mod.rs b/src/unix/newlib/arm/mod.rs index a32e37ede596a..ae89440f237db 100644 --- a/src/unix/newlib/arm/mod.rs +++ b/src/unix/newlib/arm/mod.rs @@ -1,7 +1,6 @@ use crate::prelude::*; pub type clock_t = c_long; -pub type c_char = u8; pub type wchar_t = u32; pub type c_long = i32; diff --git a/src/unix/newlib/espidf/mod.rs b/src/unix/newlib/espidf/mod.rs index 1ac5113c917b5..0bb8e3ae9c766 100644 --- a/src/unix/newlib/espidf/mod.rs +++ b/src/unix/newlib/espidf/mod.rs @@ -1,7 +1,6 @@ use crate::prelude::*; pub type clock_t = c_ulong; -pub type c_char = u8; pub type wchar_t = u32; pub type c_long = i32; diff --git a/src/unix/newlib/horizon/mod.rs b/src/unix/newlib/horizon/mod.rs index 8c662f2a4517a..05a1b284e295d 100644 --- a/src/unix/newlib/horizon/mod.rs +++ b/src/unix/newlib/horizon/mod.rs @@ -3,7 +3,6 @@ use crate::off_t; use crate::prelude::*; -pub type c_char = u8; pub type c_long = i32; pub type c_ulong = u32; diff --git a/src/unix/newlib/powerpc/mod.rs b/src/unix/newlib/powerpc/mod.rs index 6a9c42bdb7228..b53c832a71aed 100644 --- a/src/unix/newlib/powerpc/mod.rs +++ b/src/unix/newlib/powerpc/mod.rs @@ -1,7 +1,6 @@ use crate::prelude::*; pub type clock_t = c_ulong; -pub type c_char = u8; pub type wchar_t = c_int; pub type c_long = i32; diff --git a/src/unix/newlib/vita/mod.rs b/src/unix/newlib/vita/mod.rs index 1a8c89319fa2d..1f531cb4d35ff 100644 --- a/src/unix/newlib/vita/mod.rs +++ b/src/unix/newlib/vita/mod.rs @@ -3,7 +3,6 @@ use crate::prelude::*; pub type clock_t = c_long; -pub type c_char = u8; pub type wchar_t = u32; pub type c_long = i32; diff --git a/src/unix/nto/aarch64.rs b/src/unix/nto/aarch64.rs index d0987f28be6b2..acc36bbf75363 100644 --- a/src/unix/nto/aarch64.rs +++ b/src/unix/nto/aarch64.rs @@ -1,6 +1,5 @@ use crate::prelude::*; -pub type c_char = u8; pub type wchar_t = u32; pub type c_long = i64; pub type c_ulong = u64; diff --git a/src/unix/nto/x86_64.rs b/src/unix/nto/x86_64.rs index 425f479949466..6cd24e187c443 100644 --- a/src/unix/nto/x86_64.rs +++ b/src/unix/nto/x86_64.rs @@ -1,6 +1,5 @@ use crate::prelude::*; -pub type c_char = i8; pub type wchar_t = u32; pub type c_long = i64; pub type c_ulong = u64; diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index ed3e1ed8bfa34..bf6efdd7ae362 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -1,4 +1,3 @@ -pub use crate::arch::c_char_def as c_char; use crate::prelude::*; use crate::{in6_addr, in_addr_t, timespec, DIR}; diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index c557509224437..7b918494c72c8 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1,4 +1,3 @@ -pub use crate::arch::c_char_def as c_char; use crate::prelude::*; pub type wchar_t = i32; diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 0f398ca448263..9def117803e52 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1,6 +1,5 @@ use core::mem::size_of; -pub use crate::arch::c_char_def as c_char; use crate::prelude::*; pub type c_long = i64; diff --git a/src/vxworks/aarch64.rs b/src/vxworks/aarch64.rs index 4032488b6c0d5..630c7db54b55b 100644 --- a/src/vxworks/aarch64.rs +++ b/src/vxworks/aarch64.rs @@ -1,4 +1,3 @@ -pub type c_char = u8; pub type wchar_t = u32; pub type c_long = i64; pub type c_ulong = u64; diff --git a/src/vxworks/arm.rs b/src/vxworks/arm.rs index 55240068aa08e..01fc7262f03e2 100644 --- a/src/vxworks/arm.rs +++ b/src/vxworks/arm.rs @@ -1,4 +1,3 @@ -pub type c_char = u8; pub type wchar_t = u32; pub type c_long = i32; pub type c_ulong = u32; diff --git a/src/vxworks/powerpc.rs b/src/vxworks/powerpc.rs index 55240068aa08e..01fc7262f03e2 100644 --- a/src/vxworks/powerpc.rs +++ b/src/vxworks/powerpc.rs @@ -1,4 +1,3 @@ -pub type c_char = u8; pub type wchar_t = u32; pub type c_long = i32; pub type c_ulong = u32; diff --git a/src/vxworks/powerpc64.rs b/src/vxworks/powerpc64.rs index 4032488b6c0d5..630c7db54b55b 100644 --- a/src/vxworks/powerpc64.rs +++ b/src/vxworks/powerpc64.rs @@ -1,4 +1,3 @@ -pub type c_char = u8; pub type wchar_t = u32; pub type c_long = i64; pub type c_ulong = u64; diff --git a/src/vxworks/riscv32.rs b/src/vxworks/riscv32.rs index 40a8e338e83a2..741e312afce17 100644 --- a/src/vxworks/riscv32.rs +++ b/src/vxworks/riscv32.rs @@ -1,4 +1,3 @@ -pub type c_char = u8; pub type wchar_t = i32; pub type c_long = i32; pub type c_ulong = u32; diff --git a/src/vxworks/riscv64.rs b/src/vxworks/riscv64.rs index ccd68b0c64f82..7bacd5c5abec4 100644 --- a/src/vxworks/riscv64.rs +++ b/src/vxworks/riscv64.rs @@ -1,4 +1,3 @@ -pub type c_char = u8; pub type wchar_t = i32; pub type c_long = i64; pub type c_ulong = u64; diff --git a/src/vxworks/x86.rs b/src/vxworks/x86.rs index e617bb83c6ce3..741e312afce17 100644 --- a/src/vxworks/x86.rs +++ b/src/vxworks/x86.rs @@ -1,4 +1,3 @@ -pub type c_char = i8; pub type wchar_t = i32; pub type c_long = i32; pub type c_ulong = u32; diff --git a/src/vxworks/x86_64.rs b/src/vxworks/x86_64.rs index 5e95ea2567ddf..7bacd5c5abec4 100644 --- a/src/vxworks/x86_64.rs +++ b/src/vxworks/x86_64.rs @@ -1,4 +1,3 @@ -pub type c_char = i8; pub type wchar_t = i32; pub type c_long = i64; pub type c_ulong = u64; diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index 5919d43b857b8..909b33a20ac77 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -7,7 +7,6 @@ use core::iter::Iterator; use crate::prelude::*; -pub type c_char = i8; pub type c_uchar = u8; pub type c_schar = i8; pub type c_int = i32; diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 927f01f409785..6e343db53f022 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -22,7 +22,6 @@ pub type uintptr_t = usize; pub type ssize_t = isize; pub type sighandler_t = usize; -pub type c_char = i8; pub type c_long = i32; pub type c_ulong = u32; pub type wchar_t = u16; diff --git a/src/xous.rs b/src/xous.rs index 4073349306fb9..468865c8d4131 100644 --- a/src/xous.rs +++ b/src/xous.rs @@ -20,7 +20,6 @@ pub type uintptr_t = usize; pub type ssize_t = isize; pub type off_t = i64; -pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; pub type wchar_t = u32; From 315dd4cee0614a90757f8770fa58f8a83be1e42e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 19 Dec 2024 08:20:27 +0000 Subject: [PATCH 0453/1228] Remove the `c_char_def` workaround for OpenBSD The exception was added after the PR with 0a02b941cf ("Define c_char at top-level...") was posted. Remove this skip since the same commit makes it no longer relevant. (backport ) (cherry picked from commit 2bb023e81743c5319226b749179c7d5aeff4cfa3) --- libc-test/build.rs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index a82ae56e2e81e..d023c466a3915 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -644,11 +644,6 @@ fn test_openbsd(target: &str) { } }); - cfg.skip_type(move |ty| { - // `c_char_def` is always public but not always reexported. - ty == "c_char_def" - }); - cfg.type_name(move |ty, is_struct, is_union| { match ty { // Just pass all these through, no need for a "struct" prefix From 37ac889cbe63771e921ddb33b0c708e551c6c077 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 19 Dec 2024 09:01:31 +0000 Subject: [PATCH 0454/1228] Remove `c_char` from the PSP module ef8c0f31b1 ("Define c_char at top-level...") removes the need for per-OS definitions of `c_char`. Remove the definition of `c_char` from PEP, which as not covered in the backport (as this module does not exist on `main`). Suggested-by: Taiki Endo --- src/psp.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/psp.rs b/src/psp.rs index e1bf285967ede..ed9d4f4d5b415 100644 --- a/src/psp.rs +++ b/src/psp.rs @@ -25,7 +25,6 @@ pub type intptr_t = isize; pub type uintptr_t = usize; pub type ssize_t = isize; -pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; From 6f676aa063c5ac045a383743008c7829deb4f8af Mon Sep 17 00:00:00 2001 From: fpagliughi Date: Fri, 27 Dec 2024 14:05:38 -0500 Subject: [PATCH 0455/1228] Added new CANFD_FDF flag for the flags field of canfd_frame. (backport ) (cherry picked from commit 1012c5182c905715ad8afca24970aca31a175046) --- src/unix/linux_like/linux/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 7321d37a684c5..bf9888537f5f9 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -5256,6 +5256,7 @@ pub const CANFD_MAX_DLEN: usize = 64; pub const CANFD_BRS: c_int = 0x01; pub const CANFD_ESI: c_int = 0x02; +pub const CANFD_FDF: c_int = 0x04; pub const CANXL_MIN_DLC: c_int = 0; pub const CANXL_MAX_DLC: c_int = 2047; From df4528bb23e3e9ebe4f2d435f5499bc62153afb6 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 3 Jan 2025 20:31:21 +0000 Subject: [PATCH 0456/1228] Add a triagebot ping for changes to Android (backport ) (cherry picked from commit 17ebba3f95bd673ff1e63c80035576329118b98d) --- triagebot.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/triagebot.toml b/triagebot.toml index 7a103b8fb72a6..d4ad3459c1fc8 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -177,3 +177,7 @@ cc = ["@semarie"] [mentions."src/unix/solarish"] message = "Some changes occurred in solarish module" cc = ["@jclulow", "@pfmooney"] + +[mentions."src/unix/linux_like/android"] +message = "Some changes occurred in the Android module" +cc = ["@maurer"] From 09e24d3ae26c3d939cea119c149eccdf6547a11b Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Wed, 18 Dec 2024 09:33:55 -0800 Subject: [PATCH 0457/1228] Declare `setdomainname` and `getdomainname` on Android. Android [supports] `setdomainname` and `getdomainname` in API level 26. [supports] https://github.com/aosp-google/bionic/blob/28f9101d76b709febe25977f98530d77580387d1/libc/include/unistd.h#L236 (backport ) (cherry picked from commit 7e1b5b840bac1df400aa85e2f51daad3aacfd052) --- libc-test/build.rs | 3 +++ libc-test/semver/android.txt | 2 ++ src/unix/linux_like/android/mod.rs | 3 +++ 3 files changed, 8 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index d023c466a3915..5c5fd96df21c0 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2140,6 +2140,9 @@ fn test_android(target: &str) { // Added in API level 26, but some tests use level 24. "endgrent" => true, + // Added in API level 26, but some tests use level 24. + "getdomainname" | "setdomainname" => true, + // FIXME: bad function pointers: "isalnum" | "isalpha" | "iscntrl" | "isdigit" | "isgraph" | "islower" | "isprint" | "ispunct" | "isspace" | "isupper" | "isxdigit" | "isblank" | "tolower" diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 06a28efaac820..f8c136dd70e10 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -3324,6 +3324,7 @@ getaddrinfo getchar getchar_unlocked getcwd +getdomainname getegid getenv geteuid @@ -3720,6 +3721,7 @@ sendmsg sendto servent setbuf +setdomainname setegid setenv seteuid diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index f408969175d34..f50547a2c3961 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -4126,6 +4126,9 @@ extern "C" { newpath: *const c_char, flags: c_uint, ) -> c_int; + + pub fn getdomainname(name: *mut c_char, len: size_t) -> c_int; + pub fn setdomainname(name: *const c_char, len: size_t) -> c_int; } cfg_if! { From 91d0a1d96b37d5cdac251959418d03d8249de937 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Thu, 2 Jan 2025 16:47:30 -0800 Subject: [PATCH 0458/1228] Move `setdomainname` and `getdomainname` into linux_like. (backport ) (cherry picked from commit b0d8e18801b0b8ed77cdf39fa0b58f8c0c9cef94) --- src/unix/linux_like/android/mod.rs | 3 --- src/unix/linux_like/emscripten/mod.rs | 2 -- src/unix/linux_like/linux/mod.rs | 2 -- src/unix/linux_like/mod.rs | 3 +++ 4 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index f50547a2c3961..f408969175d34 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -4126,9 +4126,6 @@ extern "C" { newpath: *const c_char, flags: c_uint, ) -> c_int; - - pub fn getdomainname(name: *mut c_char, len: size_t) -> c_int; - pub fn setdomainname(name: *const c_char, len: size_t) -> c_int; } cfg_if! { diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index c51935ee99f96..598983fb47c59 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -1574,8 +1574,6 @@ extern "C" { pub fn mkstemps(template: *mut c_char, suffixlen: c_int) -> c_int; pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char; - pub fn getdomainname(name: *mut c_char, len: size_t) -> c_int; - pub fn setdomainname(name: *const c_char, len: size_t) -> c_int; pub fn sendmmsg( sockfd: c_int, msgvec: *mut crate::mmsghdr, diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index bf9888537f5f9..d7d54cb510bd8 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -6342,8 +6342,6 @@ extern "C" { pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char; - pub fn getdomainname(name: *mut c_char, len: size_t) -> c_int; - pub fn setdomainname(name: *const c_char, len: size_t) -> c_int; pub fn vhangup() -> c_int; pub fn sync(); pub fn syncfs(fd: c_int) -> c_int; diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index ff8b63a9abaef..2df104eaccab8 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1875,6 +1875,9 @@ extern "C" { pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int; pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int; + + pub fn getdomainname(name: *mut c_char, len: size_t) -> c_int; + pub fn setdomainname(name: *const c_char, len: size_t) -> c_int; } // LFS64 extensions From 4f1c07bcc68486a8b92b09b738d267e57e217f83 Mon Sep 17 00:00:00 2001 From: lvllvl <24905907+lvllvl@users.noreply.github.com> Date: Sun, 5 Jan 2025 19:50:42 +0000 Subject: [PATCH 0459/1228] Chore: add labels to each FIXME (backport ) (cherry picked from commit 6b8535b3703e8ccc3d044095de38fa222c5a083f) --- .../linux_like/linux/gnu/b64/aarch64/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b64/s390x.rs | 2 +- .../linux_like/linux/gnu/b64/x86_64/mod.rs | 6 +++--- src/unix/linux_like/linux/gnu/mod.rs | 2 +- src/unix/linux_like/linux/mod.rs | 12 ++++++------ src/unix/linux_like/linux/musl/b32/hexagon.rs | 4 ++-- src/unix/linux_like/linux/musl/b64/s390x.rs | 2 +- .../linux_like/linux/musl/b64/x86_64/mod.rs | 2 +- src/unix/linux_like/linux/musl/mod.rs | 6 +++--- src/unix/linux_like/linux/uclibc/arm/mod.rs | 2 +- src/unix/linux_like/linux/uclibc/x86_64/mod.rs | 18 +++++++++--------- src/windows/mod.rs | 2 +- 12 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index a4df172b8f5f7..0e990f6006378 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -601,7 +601,7 @@ pub const HWCAP_SSBS: c_ulong = 1 << 28; pub const HWCAP_SB: c_ulong = 1 << 29; pub const HWCAP_PACA: c_ulong = 1 << 30; pub const HWCAP_PACG: c_ulong = 1 << 31; -// FIXME: enable these again once linux-api-headers are up to date enough on CI. +// FIXME(linux): enable these again once linux-api-headers are up to date enough on CI. // See discussion in https://github.com/rust-lang/libc/pull/1638 //pub const HWCAP2_DCPODP: c_ulong = 1 << 0; //pub const HWCAP2_SVE2: c_ulong = 1 << 1; diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index d5ab89a86fc3c..386d464295091 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -212,7 +212,7 @@ s! { } s_no_extra_traits! { - // FIXME: This is actually a union. + // FIXME(union): This is actually a union. pub struct fpreg_t { pub d: c_double, // f: c_float, diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index a0dbb99ed76d9..291d78393fe9d 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -308,7 +308,7 @@ s_no_extra_traits! { pub uc_mcontext: mcontext_t, pub uc_sigmask: crate::sigset_t, __private: [u8; 512], - // FIXME: the shadow stack field requires glibc >= 2.28. + // FIXME(linux): the shadow stack field requires glibc >= 2.28. // Re-add once we drop compatibility with glibc versions older than // 2.28. // @@ -357,7 +357,7 @@ cfg_if! { .field("mxcsr", &self.mxcsr) .field("mxcr_mask", &self.mxcr_mask) .field("st_space", &self.st_space) - // FIXME: .field("xmm_space", &self.xmm_space) + // FIXME(debug): .field("xmm_space", &self.xmm_space) // Ignore padding field .finish() } @@ -663,7 +663,7 @@ pub const PR_SPEC_FORCE_DISABLE: c_uint = 1 << 3; pub const PR_SPEC_DISABLE_NOEXEC: c_uint = 1 << 4; pub const PR_SPEC_STORE_BYPASS: c_int = 0; pub const PR_SPEC_INDIRECT_BRANCH: c_int = 1; -// FIXME: perharps for later +// FIXME(linux): perharps for later //pub const PR_SPEC_L1D_FLUSH: c_int = 2; pub const MCL_CURRENT: c_int = 0x0001; diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 75ac2e088f7d9..48648e2b05a99 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -661,7 +661,7 @@ cfg_if! { .field("ut_line", &self.ut_line) .field("ut_id", &self.ut_id) .field("ut_user", &self.ut_user) - // FIXME: .field("ut_host", &self.ut_host) + // FIXME(debug): .field("ut_host", &self.ut_host) .field("ut_exit", &self.ut_exit) .field("ut_session", &self.ut_session) .field("ut_tv", &self.ut_tv) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index d7d54cb510bd8..0439493375949 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -76,7 +76,7 @@ pub type sctp_assoc_t = __s32; pub type eventfd_t = u64; missing! { #[cfg_attr(feature = "extra_traits", derive(Debug))] - pub enum fpos64_t {} // FIXME: fill this out with a struct + pub enum fpos64_t {} // FIXME(linux): fill this out with a struct } e! { @@ -1751,7 +1751,7 @@ cfg_if! { .field("d_off", &self.d_off) .field("d_reclen", &self.d_reclen) .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) + // FIXME(debug): .field("d_name", &self.d_name) .finish() } } @@ -1789,7 +1789,7 @@ cfg_if! { .field("d_off", &self.d_off) .field("d_reclen", &self.d_reclen) .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) + // FIXME(debug): .field("d_name", &self.d_name) .finish() } } @@ -1815,7 +1815,7 @@ cfg_if! { impl fmt::Debug for pthread_cond_t { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_cond_t") - // FIXME: .field("size", &self.size) + // FIXME(debug): .field("size", &self.size) .finish() } } @@ -1837,7 +1837,7 @@ cfg_if! { impl fmt::Debug for pthread_mutex_t { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_mutex_t") - // FIXME: .field("size", &self.size) + // FIXME(debug): .field("size", &self.size) .finish() } } @@ -1859,7 +1859,7 @@ cfg_if! { impl fmt::Debug for pthread_rwlock_t { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_rwlock_t") - // FIXME: .field("size", &self.size) + // FIXME(debug): .field("size", &self.size) .finish() } } diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 61174fbd408da..f58eccca4edb3 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -233,7 +233,7 @@ pub const SIGVTALRM: c_int = 26; pub const SIGWINCH: c_int = 28; pub const SIGXCPU: c_int = 24; pub const SIGXFSZ: c_int = 25; -pub const SIG_SETMASK: c_int = 2; // FIXME check these +pub const SIG_SETMASK: c_int = 2; // FIXME(musl) check these pub const SIG_BLOCK: c_int = 0x000000; pub const SIG_UNBLOCK: c_int = 0x01; pub const SOCK_DGRAM: c_int = 2; @@ -286,7 +286,7 @@ pub const SYS_clock_settime: c_int = 112; pub const SYS_clone: c_int = 220; pub const SYS_close: c_int = 57; pub const SYS_connect: c_int = 203; -pub const SYS_copy_file_range: c_int = -1; // FIXME +pub const SYS_copy_file_range: c_int = -1; // FIXME(musl) pub const SYS_creat: c_int = 1064; pub const SYS_delete_module: c_int = 106; pub const SYS_dup2: c_int = 1041; diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index 25f49fc15534d..cb3ec41be7f93 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -63,7 +63,7 @@ s! { } s_no_extra_traits! { - // FIXME: This is actually a union. + // FIXME(union): This is actually a union. pub struct fpreg_t { pub d: c_double, // f: c_float, diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index b8f659b72392d..ac62582d08b61 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -205,7 +205,7 @@ cfg_if! { .field("mxcsr", &self.mxcsr) .field("mxcr_mask", &self.mxcr_mask) .field("st_space", &self.st_space) - // FIXME: .field("xmm_space", &self.xmm_space) + // FIXME(debug): .field("xmm_space", &self.xmm_space) // Ignore padding field .finish() } diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 4d31996d9c96e..7105461a9f93d 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -516,7 +516,7 @@ s_no_extra_traits! { pub __reserved: [c_char; 256], } - // FIXME: musl added paddings and adjusted + // FIXME(musl): musl added paddings and adjusted // layout in 1.2.0 but our CI is still 1.1.24. // So, I'm leaving some fields as cfg for now. // ref. https://github.com/bminor/musl/commit/ @@ -608,7 +608,7 @@ cfg_if! { .field("totalhigh", &self.totalhigh) .field("freehigh", &self.freehigh) .field("mem_unit", &self.mem_unit) - // FIXME: .field("__reserved", &self.__reserved) + // FIXME(debug): .field("__reserved", &self.__reserved) .finish() } } @@ -665,7 +665,7 @@ cfg_if! { .field("ut_line", &self.ut_line) .field("ut_id", &self.ut_id) .field("ut_user", &self.ut_user) - //FIXME: .field("ut_host", &self.ut_host) + //FIXME(debug): .field("ut_host", &self.ut_host) .field("ut_exit", &self.ut_exit) .field("ut_session", &self.ut_session) //.field("__ut_pad2", &self.__ut_pad2) diff --git a/src/unix/linux_like/linux/uclibc/arm/mod.rs b/src/unix/linux_like/linux/uclibc/arm/mod.rs index cbeedb51630f4..c237b7e160bbf 100644 --- a/src/unix/linux_like/linux/uclibc/arm/mod.rs +++ b/src/unix/linux_like/linux/uclibc/arm/mod.rs @@ -895,7 +895,7 @@ pub const SYS_pwritev2: c_long = 393; pub const SYS_pkey_mprotect: c_long = 394; pub const SYS_pkey_alloc: c_long = 395; pub const SYS_pkey_free: c_long = 396; -// FIXME: should be a `c_long` too, but a bug slipped in. +// FIXME(linux): should be a `c_long` too, but a bug slipped in. pub const SYS_statx: c_int = 397; pub const SYS_pidfd_send_signal: c_long = 424; pub const SYS_io_uring_setup: c_long = 425; diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index 8a363d558257f..016b6580c5754 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -154,14 +154,14 @@ s! { } pub struct stack_t { - // FIXME + // FIXME(ulibc) pub ss_sp: *mut c_void, pub ss_flags: c_int, pub ss_size: size_t, } pub struct statfs { - // FIXME + // FIXME(ulibc) pub f_type: fsword_t, pub f_bsize: fsword_t, pub f_blocks: crate::fsblkcnt_t, @@ -207,7 +207,7 @@ s! { } pub struct msghdr { - // FIXME + // FIXME(ulibc) pub msg_name: *mut c_void, pub msg_namelen: crate::socklen_t, pub msg_iov: *mut crate::iovec, @@ -218,7 +218,7 @@ s! { } pub struct termios { - // FIXME + // FIXME(ulibc) pub c_iflag: crate::tcflag_t, pub c_oflag: crate::tcflag_t, pub c_cflag: crate::tcflag_t, @@ -228,12 +228,12 @@ s! { } pub struct sigset_t { - // FIXME + // FIXME(ulibc) __val: [c_ulong; 16], } pub struct sysinfo { - // FIXME + // FIXME(ulibc) pub uptime: c_long, pub loads: [c_ulong; 3], pub totalram: c_ulong, @@ -251,7 +251,7 @@ s! { } pub struct glob_t { - // FIXME + // FIXME(ulibc) pub gl_pathc: size_t, pub gl_pathv: *mut *mut c_char, pub gl_offs: size_t, @@ -264,7 +264,7 @@ s! { } pub struct cpu_set_t { - // FIXME + // FIXME(ulibc) #[cfg(target_pointer_width = "32")] bits: [u32; 32], #[cfg(target_pointer_width = "64")] @@ -272,7 +272,7 @@ s! { } pub struct fsid_t { - // FIXME + // FIXME(ulibc) __val: [c_int; 2], } diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 6e343db53f022..632c33f461493 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -272,7 +272,7 @@ impl Clone for FILE { } } #[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum fpos_t {} // FIXME: fill this out with a struct +pub enum fpos_t {} // FIXME(windows): fill this out with a struct impl Copy for fpos_t {} impl Clone for fpos_t { fn clone(&self) -> fpos_t { From 49178977b749aa28f2e2fb9f65aba69059a78f81 Mon Sep 17 00:00:00 2001 From: lvllvl <24905907+lvllvl@users.noreply.github.com> Date: Sun, 5 Jan 2025 21:43:15 +0000 Subject: [PATCH 0460/1228] chore: add labels to FIXMEs (backport ) (cherry picked from commit 174a37cf6aecc87b8fab65152f10396b8101b878) --- src/unix/hurd/mod.rs | 6 ++-- src/unix/linux_like/android/b32/x86/mod.rs | 6 ++-- src/unix/linux_like/android/b64/mod.rs | 6 ++-- src/unix/linux_like/android/b64/x86_64/mod.rs | 4 +-- src/unix/linux_like/android/mod.rs | 8 ++--- src/unix/linux_like/emscripten/mod.rs | 8 ++--- src/unix/linux_like/mod.rs | 18 +++++------ src/unix/mod.rs | 16 +++++----- src/unix/redox/mod.rs | 30 +++++++++---------- 9 files changed, 51 insertions(+), 51 deletions(-) diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 3a9253fc31f51..bb5339d0a48bd 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -226,7 +226,7 @@ pub type nl_item = c_int; pub type iconv_t = *mut c_void; #[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum fpos64_t {} // FIXME: fill this out with a struct +pub enum fpos64_t {} // FIXME(hurd): fill this out with a struct impl Copy for fpos64_t {} impl Clone for fpos64_t { fn clone(&self) -> fpos64_t { @@ -814,7 +814,7 @@ s! { pub ifa_flags: c_uint, pub ifa_addr: *mut crate::sockaddr, pub ifa_netmask: *mut crate::sockaddr, - pub ifa_ifu: *mut crate::sockaddr, // FIXME This should be a union + pub ifa_ifu: *mut crate::sockaddr, // FIXME(union) This should be a union pub ifa_data: *mut c_void, } @@ -1092,7 +1092,7 @@ cfg_if! { .field("ut_line", &self.ut_line) .field("ut_id", &self.ut_id) .field("ut_user", &self.ut_user) - // FIXME: .field("ut_host", &self.ut_host) + // FIXME(debug): .field("ut_host", &self.ut_host) .field("ut_exit", &self.ut_exit) .field("ut_session", &self.ut_session) .field("ut_tv", &self.ut_tv) diff --git a/src/unix/linux_like/android/b32/x86/mod.rs b/src/unix/linux_like/android/b32/x86/mod.rs index a5560e051660a..caa4802d8a399 100644 --- a/src/unix/linux_like/android/b32/x86/mod.rs +++ b/src/unix/linux_like/android/b32/x86/mod.rs @@ -281,11 +281,11 @@ pub const SYS_personality: c_long = 136; pub const SYS_afs_syscall: c_long = 137; pub const SYS_setfsuid: c_long = 138; pub const SYS_setfsgid: c_long = 139; -// FIXME: SYS__llseek is in the NDK sources but for some reason is +// FIXME(android): SYS__llseek is in the NDK sources but for some reason is // not available in the tests // pub const SYS__llseek: c_long = 140; pub const SYS_getdents: c_long = 141; -// FIXME: SYS__newselect is in the NDK sources but for some reason is +// FIXME(android): SYS__newselect is in the NDK sources but for some reason is // not available in the tests // pub const SYS__newselect: c_long = 142; pub const SYS_flock: c_long = 143; @@ -294,7 +294,7 @@ pub const SYS_readv: c_long = 145; pub const SYS_writev: c_long = 146; pub const SYS_getsid: c_long = 147; pub const SYS_fdatasync: c_long = 148; -// FIXME: SYS__llseek is in the NDK sources but for some reason is +// FIXME(android): SYS__llseek is in the NDK sources but for some reason is // not available in the tests // pub const SYS__sysctl: c_long = 149; pub const SYS_mlock: c_long = 150; diff --git a/src/unix/linux_like/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs index ffa79ead870e8..0da702b45d18e 100644 --- a/src/unix/linux_like/android/b64/mod.rs +++ b/src/unix/linux_like/android/b64/mod.rs @@ -161,7 +161,7 @@ cfg_if! { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_mutex_t") .field("value", &self.value) - // FIXME: .field("__reserved", &self.__reserved) + // FIXME(debug): .field("__reserved", &self.__reserved) .finish() } } @@ -190,7 +190,7 @@ cfg_if! { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_cond_t") .field("value", &self.value) - // FIXME: .field("__reserved", &self.__reserved) + // FIXME(debug): .field("__reserved", &self.__reserved) .finish() } } @@ -227,7 +227,7 @@ cfg_if! { .field("pendingReaders", &self.pendingReaders) .field("pendingWriters", &self.pendingWriters) .field("attr", &self.attr) - // FIXME: .field("__reserved", &self.__reserved) + // FIXME(debug): .field("__reserved", &self.__reserved) .finish() } } diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index ad878462c8c1a..d9f9fa50e0459 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -353,7 +353,7 @@ cfg_if! { .field("mxcsr", &self.mxcsr) .field("mxcr_mask", &self.mxcr_mask) .field("st_space", &self.st_space) - // FIXME: .field("xmm_space", &self.xmm_space) + // FIXME(debug): .field("xmm_space", &self.xmm_space) // Ignore padding field .finish() } @@ -545,7 +545,7 @@ pub const SYS_munlockall: c_long = 152; pub const SYS_vhangup: c_long = 153; pub const SYS_modify_ldt: c_long = 154; pub const SYS_pivot_root: c_long = 155; -// FIXME: SYS__sysctl is in the NDK sources but for some reason is +// FIXME(android): SYS__sysctl is in the NDK sources but for some reason is // not available in the tests // pub const SYS__sysctl: c_long = 156; pub const SYS_prctl: c_long = 157; diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index f408969175d34..b12120bb564d4 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -699,7 +699,7 @@ cfg_if! { .field("d_off", &self.d_off) .field("d_reclen", &self.d_reclen) .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) + // FIXME(debug): .field("d_name", &self.d_name) .finish() } } @@ -737,7 +737,7 @@ cfg_if! { .field("d_off", &self.d_off) .field("d_reclen", &self.d_reclen) .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) + // FIXME(debug): .field("d_name", &self.d_name) .finish() } } @@ -809,7 +809,7 @@ cfg_if! { f.debug_struct("lastlog") .field("ll_time", &self.ll_time) .field("ll_line", &self.ll_line) - // FIXME: .field("ll_host", &self.ll_host) + // FIXME(debug): .field("ll_host", &self.ll_host) .finish() } } @@ -860,7 +860,7 @@ cfg_if! { .field("ut_line", &self.ut_line) .field("ut_id", &self.ut_id) .field("ut_user", &self.ut_user) - // FIXME: .field("ut_host", &self.ut_host) + // FIXME(debug): .field("ut_host", &self.ut_host) .field("ut_exit", &self.ut_exit) .field("ut_session", &self.ut_session) .field("ut_tv", &self.ut_tv) diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 598983fb47c59..94b3776606a41 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -44,7 +44,7 @@ pub type statvfs64 = crate::statvfs; pub type dirent64 = crate::dirent; #[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum fpos64_t {} // FIXME: fill this out with a struct +pub enum fpos64_t {} // FIXME(emscripten): fill this out with a struct impl Copy for fpos64_t {} impl Clone for fpos64_t { fn clone(&self) -> fpos64_t { @@ -412,7 +412,7 @@ cfg_if! { .field("d_off", &self.d_off) .field("d_reclen", &self.d_reclen) .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) + // FIXME(debug): .field("d_name", &self.d_name) .finish() } } @@ -465,7 +465,7 @@ cfg_if! { .field("totalhigh", &self.totalhigh) .field("freehigh", &self.freehigh) .field("mem_unit", &self.mem_unit) - // FIXME: .field("__reserved", &self.__reserved) + // FIXME(debug): .field("__reserved", &self.__reserved) .finish() } } @@ -525,7 +525,7 @@ cfg_if! { impl fmt::Debug for pthread_cond_t { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_cond_t") - // FIXME: .field("size", &self.size) + // FIXME(debug): .field("size", &self.size) .finish() } } diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 2df104eaccab8..5b6325e8ca822 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -161,7 +161,7 @@ s! { pub ifa_flags: c_uint, pub ifa_addr: *mut crate::sockaddr, pub ifa_netmask: *mut crate::sockaddr, - pub ifa_ifu: *mut crate::sockaddr, // FIXME This should be a union + pub ifa_ifu: *mut crate::sockaddr, // FIXME(union) This should be a union pub ifa_data: *mut c_void, } @@ -342,7 +342,7 @@ cfg_if! { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_un") .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) + // FIXME(debug): .field("sun_path", &self.sun_path) .finish() } } @@ -371,7 +371,7 @@ cfg_if! { f.debug_struct("sockaddr_storage") .field("ss_family", &self.ss_family) .field("__ss_align", &self.__ss_align) - // FIXME: .field("__ss_pad2", &self.__ss_pad2) + // FIXME(debug): .field("__ss_pad2", &self.__ss_pad2) .finish() } } @@ -422,12 +422,12 @@ cfg_if! { impl fmt::Debug for utsname { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utsname") - // FIXME: .field("sysname", &self.sysname) - // FIXME: .field("nodename", &self.nodename) - // FIXME: .field("release", &self.release) - // FIXME: .field("version", &self.version) - // FIXME: .field("machine", &self.machine) - // FIXME: .field("domainname", &self.domainname) + // FIXME(debug): .field("sysname", &self.sysname) + // FIXME(debug): .field("nodename", &self.nodename) + // FIXME(debug): .field("release", &self.release) + // FIXME(debug): .field("version", &self.version) + // FIXME(debug): .field("machine", &self.machine) + // FIXME(debug): .field("domainname", &self.domainname) .finish() } } diff --git a/src/unix/mod.rs b/src/unix/mod.rs index a14dafdf06d9e..8a0aa3266759b 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -537,7 +537,7 @@ missing! { #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum FILE {} #[cfg_attr(feature = "extra_traits", derive(Debug))] - pub enum fpos_t {} // FIXME: fill this out with a struct + pub enum fpos_t {} // FIXME(unix): fill this out with a struct } extern "C" { @@ -1329,11 +1329,11 @@ extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__gmtime_r50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME: for `time_t` + // FIXME(time): for `time_t` pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; #[cfg_attr(target_os = "netbsd", link_name = "__localtime_r50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME: for `time_t` + // FIXME(time): for `time_t` pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), @@ -1349,19 +1349,19 @@ extern "C" { pub fn time(time: *mut time_t) -> time_t; #[cfg_attr(target_os = "netbsd", link_name = "__gmtime50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME: for `time_t` + // FIXME(time): for `time_t` pub fn gmtime(time_p: *const time_t) -> *mut tm; #[cfg_attr(target_os = "netbsd", link_name = "__locatime50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME: for `time_t` + // FIXME(time): for `time_t` pub fn localtime(time_p: *const time_t) -> *mut tm; #[cfg_attr(target_os = "netbsd", link_name = "__difftime50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME: for `time_t` + // FIXME(time): for `time_t` pub fn difftime(time1: time_t, time0: time_t) -> c_double; #[cfg_attr(target_os = "netbsd", link_name = "__timegm50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME: for `time_t` + // FIXME(time): for `time_t` pub fn timegm(tm: *mut crate::tm) -> time_t; #[cfg_attr(target_os = "netbsd", link_name = "__mknod50")] @@ -1619,7 +1619,7 @@ cfg_if! { all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "readdir_r@FBSD_1.0" )] - #[allow(non_autolinks)] // FIXME: `<>` breaks line length limit. + #[allow(non_autolinks)] // FIXME(docs): `<>` breaks line length limit. /// The 64-bit libc on Solaris and illumos only has readdir_r. If a /// 32-bit Solaris or illumos target is ever created, it should use /// __posix_readdir_r. See libc(3LIB) on Solaris or illumos: diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 7b918494c72c8..2f13157fff64a 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -348,7 +348,7 @@ pub const F_LOCK: c_int = 1; pub const F_TLOCK: c_int = 2; pub const F_TEST: c_int = 3; -// FIXME: relibc { +// FIXME(redox): relibc { pub const RTLD_DEFAULT: *mut c_void = 0i64 as *mut c_void; // } @@ -504,7 +504,7 @@ pub const F_GETFD: c_int = 1; pub const F_SETFD: c_int = 2; pub const F_GETFL: c_int = 3; pub const F_SETFL: c_int = 4; -// FIXME: relibc { +// FIXME(redox): relibc { pub const F_DUPFD_CLOEXEC: c_int = crate::F_DUPFD; // } pub const FD_CLOEXEC: c_int = 0x0100_0000; @@ -526,7 +526,7 @@ pub const O_DIRECTORY: c_int = 0x1000_0000; pub const O_PATH: c_int = 0x2000_0000; pub const O_SYMLINK: c_int = 0x4000_0000; // Negative to allow it to be used as int -// FIXME: Fix negative values missing from includes +// FIXME(redox): Fix negative values missing from includes pub const O_NOFOLLOW: c_int = -0x8000_0000; // locale.h @@ -567,7 +567,7 @@ pub const NI_NAMEREQD: c_int = 0x0008; pub const NI_DGRAM: c_int = 0x0010; // netinet/in.h -// FIXME: relibc { +// FIXME(redox): relibc { pub const IP_TTL: c_int = 2; pub const IPV6_UNICAST_HOPS: c_int = 16; pub const IPV6_MULTICAST_IF: c_int = 17; @@ -592,7 +592,7 @@ pub const IPPROTO_MAX: c_int = 255; // netinet/tcp.h pub const TCP_NODELAY: c_int = 1; -// FIXME: relibc { +// FIXME(redox): relibc { pub const TCP_KEEPIDLE: c_int = 1; // } @@ -723,7 +723,7 @@ pub const EXIT_SUCCESS: c_int = 0; pub const EXIT_FAILURE: c_int = 1; // sys/ioctl.h -// FIXME: relibc { +// FIXME(redox): relibc { pub const FIONREAD: c_ulong = 0x541B; pub const FIONBIO: c_ulong = 0x5421; pub const FIOCLEX: c_ulong = 0x5451; @@ -1283,7 +1283,7 @@ cfg_if! { .field("d_off", &self.d_off) .field("d_reclen", &self.d_reclen) .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) + // FIXME(debug): .field("d_name", &self.d_name) .finish() } } @@ -1315,7 +1315,7 @@ cfg_if! { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_un") .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) + // FIXME(debug): .field("sun_path", &self.sun_path) .finish() } } @@ -1346,7 +1346,7 @@ cfg_if! { f.debug_struct("sockaddr_storage") .field("ss_family", &self.ss_family) .field("__ss_align", &self.__ss_align) - // FIXME: .field("__ss_padding", &self.__ss_padding) + // FIXME(debug): .field("__ss_padding", &self.__ss_padding) .finish() } } @@ -1398,12 +1398,12 @@ cfg_if! { impl fmt::Debug for utsname { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utsname") - // FIXME: .field("sysname", &self.sysname) - // FIXME: .field("nodename", &self.nodename) - // FIXME: .field("release", &self.release) - // FIXME: .field("version", &self.version) - // FIXME: .field("machine", &self.machine) - // FIXME: .field("domainname", &self.domainname) + // FIXME(debug): .field("sysname", &self.sysname) + // FIXME(debug): .field("nodename", &self.nodename) + // FIXME(debug): .field("release", &self.release) + // FIXME(debug): .field("version", &self.version) + // FIXME(debug): .field("machine", &self.machine) + // FIXME(debug): .field("domainname", &self.domainname) .finish() } } From ab5bbaeff994aff92d5f1ea1df8dfb74f439f140 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sun, 5 Jan 2025 20:05:24 +0000 Subject: [PATCH 0461/1228] linux/android proposal to deprecate kernel modules syscalls. they were functional up 2.6. [create_module](https://man7.org/linux/man-pages/man2/create_module.2.html) [query_module](https://man7.org/linux/man-pages/man2/query_module.2.html) [get_kernel_syms](https://man7.org/linux/man-pages/man2/get_kernel_syms.2.html) (backport ) (cherry picked from commit e84fc948d7f1f7f1a5f6c9631379f5febc2e37e3) --- src/unix/linux_like/android/b32/x86/mod.rs | 3 +++ src/unix/linux_like/android/b64/x86_64/mod.rs | 3 +++ src/unix/linux_like/linux/gnu/b32/m68k/mod.rs | 3 +++ src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 3 +++ src/unix/linux_like/linux/gnu/b32/powerpc.rs | 3 +++ src/unix/linux_like/linux/gnu/b32/sparc/mod.rs | 3 +++ src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 3 +++ src/unix/linux_like/linux/gnu/b64/mips64/mod.rs | 3 +++ src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs | 3 +++ src/unix/linux_like/linux/gnu/b64/s390x.rs | 3 +++ src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs | 3 +++ src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs | 3 +++ src/unix/linux_like/linux/musl/b32/mips/mod.rs | 3 +++ src/unix/linux_like/linux/musl/b32/powerpc.rs | 3 +++ src/unix/linux_like/linux/musl/b32/x86/mod.rs | 3 +++ src/unix/linux_like/linux/musl/b64/mips64.rs | 3 +++ src/unix/linux_like/linux/musl/b64/powerpc64.rs | 3 +++ src/unix/linux_like/linux/musl/b64/s390x.rs | 3 +++ src/unix/linux_like/linux/musl/b64/x86_64/mod.rs | 3 +++ src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs | 3 +++ 20 files changed, 60 insertions(+) diff --git a/src/unix/linux_like/android/b32/x86/mod.rs b/src/unix/linux_like/android/b32/x86/mod.rs index caa4802d8a399..2acbe7712eb77 100644 --- a/src/unix/linux_like/android/b32/x86/mod.rs +++ b/src/unix/linux_like/android/b32/x86/mod.rs @@ -268,9 +268,11 @@ pub const SYS_modify_ldt: c_long = 123; pub const SYS_adjtimex: c_long = 124; pub const SYS_mprotect: c_long = 125; pub const SYS_sigprocmask: c_long = 126; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 127; pub const SYS_init_module: c_long = 128; pub const SYS_delete_module: c_long = 129; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 130; pub const SYS_quotactl: c_long = 131; pub const SYS_getpgid: c_long = 132; @@ -314,6 +316,7 @@ pub const SYS_mremap: c_long = 163; pub const SYS_setresuid: c_long = 164; pub const SYS_getresuid: c_long = 165; pub const SYS_vm86: c_long = 166; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 167; pub const SYS_poll: c_long = 168; pub const SYS_nfsservctl: c_long = 169; diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index d9f9fa50e0459..ce2d70999856a 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -565,10 +565,13 @@ pub const SYS_sethostname: c_long = 170; pub const SYS_setdomainname: c_long = 171; pub const SYS_iopl: c_long = 172; pub const SYS_ioperm: c_long = 173; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 174; pub const SYS_init_module: c_long = 175; pub const SYS_delete_module: c_long = 176; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 177; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 178; pub const SYS_quotactl: c_long = 179; pub const SYS_nfsservctl: c_long = 180; diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index 2de54f047bbb4..d8b047ab446ab 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -548,9 +548,11 @@ pub const SYS_cacheflush: c_long = 123; pub const SYS_adjtimex_time32: c_long = 124; pub const SYS_mprotect: c_long = 125; pub const SYS_sigprocmask: c_long = 126; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 127; pub const SYS_init_module: c_long = 128; pub const SYS_delete_module: c_long = 129; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 130; pub const SYS_quotactl: c_long = 131; pub const SYS_getpgid: c_long = 132; @@ -587,6 +589,7 @@ pub const SYS_mremap: c_long = 163; pub const SYS_setresuid16: c_long = 164; pub const SYS_getresuid16: c_long = 165; pub const SYS_getpagesize: c_long = 166; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 167; pub const SYS_poll: c_long = 168; pub const SYS_nfsservctl: c_long = 169; diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 9fd8f819379e5..b15df99e50ec6 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -289,9 +289,11 @@ pub const SYS_modify_ldt: c_long = 4000 + 123; pub const SYS_adjtimex: c_long = 4000 + 124; pub const SYS_mprotect: c_long = 4000 + 125; pub const SYS_sigprocmask: c_long = 4000 + 126; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 4000 + 127; pub const SYS_init_module: c_long = 4000 + 128; pub const SYS_delete_module: c_long = 4000 + 129; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 4000 + 130; pub const SYS_quotactl: c_long = 4000 + 131; pub const SYS_getpgid: c_long = 4000 + 132; @@ -348,6 +350,7 @@ pub const SYS_socket: c_long = 4000 + 183; pub const SYS_socketpair: c_long = 4000 + 184; pub const SYS_setresuid: c_long = 4000 + 185; pub const SYS_getresuid: c_long = 4000 + 186; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 4000 + 187; pub const SYS_poll: c_long = 4000 + 188; pub const SYS_nfsservctl: c_long = 4000 + 189; diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 025ae37002e35..d15012c4ec68c 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -555,9 +555,11 @@ pub const SYS_modify_ldt: c_long = 123; pub const SYS_adjtimex: c_long = 124; pub const SYS_mprotect: c_long = 125; pub const SYS_sigprocmask: c_long = 126; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 127; pub const SYS_init_module: c_long = 128; pub const SYS_delete_module: c_long = 129; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 130; pub const SYS_quotactl: c_long = 131; pub const SYS_getpgid: c_long = 132; @@ -594,6 +596,7 @@ pub const SYS_nanosleep: c_long = 162; pub const SYS_mremap: c_long = 163; pub const SYS_setresuid: c_long = 164; pub const SYS_getresuid: c_long = 165; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 166; pub const SYS_poll: c_long = 167; pub const SYS_nfsservctl: c_long = 168; diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index fcd3c52bcee37..de00e9915826a 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -617,6 +617,7 @@ pub const SYS_flistxattr: c_long = 180; pub const SYS_removexattr: c_long = 181; pub const SYS_lremovexattr: c_long = 182; pub const SYS_sigpending: c_long = 183; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 184; pub const SYS_setpgid: c_long = 185; pub const SYS_fremovexattr: c_long = 186; @@ -654,8 +655,10 @@ pub const SYS_clone: c_long = 217; pub const SYS_ioprio_get: c_long = 218; pub const SYS_adjtimex: c_long = 219; pub const SYS_sigprocmask: c_long = 220; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 221; pub const SYS_delete_module: c_long = 222; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 223; pub const SYS_getpgid: c_long = 224; pub const SYS_bdflush: c_long = 225; diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 84fb3ae31e6c9..bb2e3ccbf8925 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -771,9 +771,11 @@ pub const SYS_modify_ldt: c_long = 123; pub const SYS_adjtimex: c_long = 124; pub const SYS_mprotect: c_long = 125; pub const SYS_sigprocmask: c_long = 126; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 127; pub const SYS_init_module: c_long = 128; pub const SYS_delete_module: c_long = 129; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 130; pub const SYS_quotactl: c_long = 131; pub const SYS_getpgid: c_long = 132; @@ -811,6 +813,7 @@ pub const SYS_mremap: c_long = 163; pub const SYS_setresuid: c_long = 164; pub const SYS_getresuid: c_long = 165; pub const SYS_vm86: c_long = 166; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 167; pub const SYS_poll: c_long = 168; pub const SYS_nfsservctl: c_long = 169; diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index e1aef3759ddd5..1d13bdb945d6e 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -411,10 +411,13 @@ pub const SYS_swapoff: c_long = 5000 + 163; pub const SYS_reboot: c_long = 5000 + 164; pub const SYS_sethostname: c_long = 5000 + 165; pub const SYS_setdomainname: c_long = 5000 + 166; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 5000 + 167; pub const SYS_init_module: c_long = 5000 + 168; pub const SYS_delete_module: c_long = 5000 + 169; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 5000 + 170; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 5000 + 171; pub const SYS_quotactl: c_long = 5000 + 172; pub const SYS_nfsservctl: c_long = 5000 + 173; diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index 8d79845eb401b..3eda86440d40c 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -698,9 +698,11 @@ pub const SYS_modify_ldt: c_long = 123; pub const SYS_adjtimex: c_long = 124; pub const SYS_mprotect: c_long = 125; pub const SYS_sigprocmask: c_long = 126; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 127; pub const SYS_init_module: c_long = 128; pub const SYS_delete_module: c_long = 129; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 130; pub const SYS_quotactl: c_long = 131; pub const SYS_getpgid: c_long = 132; @@ -737,6 +739,7 @@ pub const SYS_nanosleep: c_long = 162; pub const SYS_mremap: c_long = 163; pub const SYS_setresuid: c_long = 164; pub const SYS_getresuid: c_long = 165; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 166; pub const SYS_poll: c_long = 167; pub const SYS_nfsservctl: c_long = 168; diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 386d464295091..7a48de58c967b 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -679,9 +679,11 @@ pub const SYS_uname: c_long = 122; pub const SYS_adjtimex: c_long = 124; pub const SYS_mprotect: c_long = 125; pub const SYS_sigprocmask: c_long = 126; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 127; pub const SYS_init_module: c_long = 128; pub const SYS_delete_module: c_long = 129; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 130; pub const SYS_quotactl: c_long = 131; pub const SYS_getpgid: c_long = 132; @@ -712,6 +714,7 @@ pub const SYS_sched_get_priority_min: c_long = 160; pub const SYS_sched_rr_get_interval: c_long = 161; pub const SYS_nanosleep: c_long = 162; pub const SYS_mremap: c_long = 163; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 167; pub const SYS_poll: c_long = 168; pub const SYS_nfsservctl: c_long = 169; diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs index b9f9485de1e37..829686ff16ee5 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -710,6 +710,7 @@ pub const SYS_flistxattr: c_long = 180; pub const SYS_removexattr: c_long = 181; pub const SYS_lremovexattr: c_long = 182; pub const SYS_sigpending: c_long = 183; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 184; pub const SYS_setpgid: c_long = 185; pub const SYS_fremovexattr: c_long = 186; @@ -747,8 +748,10 @@ pub const SYS_clone: c_long = 217; pub const SYS_ioprio_get: c_long = 218; pub const SYS_adjtimex: c_long = 219; pub const SYS_sigprocmask: c_long = 220; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 221; pub const SYS_delete_module: c_long = 222; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 223; pub const SYS_getpgid: c_long = 224; pub const SYS_bdflush: c_long = 225; diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs index 5e7d6e5da5523..eb9563e53e2c0 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs @@ -244,10 +244,13 @@ pub const SYS_sethostname: c_long = 170; pub const SYS_setdomainname: c_long = 171; pub const SYS_iopl: c_long = 172; pub const SYS_ioperm: c_long = 173; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 174; pub const SYS_init_module: c_long = 175; pub const SYS_delete_module: c_long = 176; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 177; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 178; pub const SYS_quotactl: c_long = 179; pub const SYS_nfsservctl: c_long = 180; diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index 56418ededd38e..c9aa5b136dcba 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -502,9 +502,11 @@ pub const SYS_modify_ldt: c_long = 4000 + 123; pub const SYS_adjtimex: c_long = 4000 + 124; pub const SYS_mprotect: c_long = 4000 + 125; pub const SYS_sigprocmask: c_long = 4000 + 126; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 4000 + 127; pub const SYS_init_module: c_long = 4000 + 128; pub const SYS_delete_module: c_long = 4000 + 129; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 4000 + 130; pub const SYS_quotactl: c_long = 4000 + 131; pub const SYS_getpgid: c_long = 4000 + 132; @@ -560,6 +562,7 @@ pub const SYS_socket: c_long = 4000 + 183; pub const SYS_socketpair: c_long = 4000 + 184; pub const SYS_setresuid: c_long = 4000 + 185; pub const SYS_getresuid: c_long = 4000 + 186; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 4000 + 187; pub const SYS_poll: c_long = 4000 + 188; pub const SYS_nfsservctl: c_long = 4000 + 189; diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index de2c5d5e3f724..dbd10802e6656 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -468,9 +468,11 @@ pub const SYS_modify_ldt: c_long = 123; pub const SYS_adjtimex: c_long = 124; pub const SYS_mprotect: c_long = 125; pub const SYS_sigprocmask: c_long = 126; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 127; pub const SYS_init_module: c_long = 128; pub const SYS_delete_module: c_long = 129; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 130; pub const SYS_quotactl: c_long = 131; pub const SYS_getpgid: c_long = 132; @@ -507,6 +509,7 @@ pub const SYS_nanosleep: c_long = 162; pub const SYS_mremap: c_long = 163; pub const SYS_setresuid: c_long = 164; pub const SYS_getresuid: c_long = 165; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 166; pub const SYS_poll: c_long = 167; pub const SYS_nfsservctl: c_long = 168; diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 5b947f38d99f2..52fe908802f32 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -610,9 +610,11 @@ pub const SYS_modify_ldt: c_long = 123; pub const SYS_adjtimex: c_long = 124; pub const SYS_mprotect: c_long = 125; pub const SYS_sigprocmask: c_long = 126; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 127; pub const SYS_init_module: c_long = 128; pub const SYS_delete_module: c_long = 129; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 130; pub const SYS_quotactl: c_long = 131; pub const SYS_getpgid: c_long = 132; @@ -650,6 +652,7 @@ pub const SYS_mremap: c_long = 163; pub const SYS_setresuid: c_long = 164; pub const SYS_getresuid: c_long = 165; pub const SYS_vm86: c_long = 166; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 167; pub const SYS_poll: c_long = 168; pub const SYS_nfsservctl: c_long = 169; diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index 0ce7e932a2db4..33afe4e46c0d2 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -240,10 +240,13 @@ pub const SYS_swapoff: c_long = 5000 + 163; pub const SYS_reboot: c_long = 5000 + 164; pub const SYS_sethostname: c_long = 5000 + 165; pub const SYS_setdomainname: c_long = 5000 + 166; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 5000 + 167; pub const SYS_init_module: c_long = 5000 + 168; pub const SYS_delete_module: c_long = 5000 + 169; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 5000 + 170; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 5000 + 171; pub const SYS_quotactl: c_long = 5000 + 172; pub const SYS_nfsservctl: c_long = 5000 + 173; diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index f85e2748b1848..fb9653bc881a0 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -351,9 +351,11 @@ pub const SYS_modify_ldt: c_long = 123; pub const SYS_adjtimex: c_long = 124; pub const SYS_mprotect: c_long = 125; pub const SYS_sigprocmask: c_long = 126; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 127; pub const SYS_init_module: c_long = 128; pub const SYS_delete_module: c_long = 129; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 130; pub const SYS_quotactl: c_long = 131; pub const SYS_getpgid: c_long = 132; @@ -390,6 +392,7 @@ pub const SYS_nanosleep: c_long = 162; pub const SYS_mremap: c_long = 163; pub const SYS_setresuid: c_long = 164; pub const SYS_getresuid: c_long = 165; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 166; pub const SYS_poll: c_long = 167; pub const SYS_nfsservctl: c_long = 168; diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index cb3ec41be7f93..b992a2c4361e4 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -433,9 +433,11 @@ pub const SYS_uname: c_long = 122; pub const SYS_adjtimex: c_long = 124; pub const SYS_mprotect: c_long = 125; pub const SYS_sigprocmask: c_long = 126; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 127; pub const SYS_init_module: c_long = 128; pub const SYS_delete_module: c_long = 129; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 130; pub const SYS_quotactl: c_long = 131; pub const SYS_getpgid: c_long = 132; @@ -467,6 +469,7 @@ pub const SYS_sched_get_priority_min: c_long = 160; pub const SYS_sched_rr_get_interval: c_long = 161; pub const SYS_nanosleep: c_long = 162; pub const SYS_mremap: c_long = 163; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 167; pub const SYS_poll: c_long = 168; pub const SYS_nfsservctl: c_long = 169; diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index ac62582d08b61..b44b54de65953 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -445,10 +445,13 @@ pub const SYS_sethostname: c_long = 170; pub const SYS_setdomainname: c_long = 171; pub const SYS_iopl: c_long = 172; pub const SYS_ioperm: c_long = 173; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 174; pub const SYS_init_module: c_long = 175; pub const SYS_delete_module: c_long = 176; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 177; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 178; pub const SYS_quotactl: c_long = 179; pub const SYS_nfsservctl: c_long = 180; diff --git a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs index 049b987fcd98a..a78daea80b62c 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs @@ -398,9 +398,11 @@ pub const SYS_modify_ldt: c_long = 4000 + 123; pub const SYS_adjtimex: c_long = 4000 + 124; pub const SYS_mprotect: c_long = 4000 + 125; pub const SYS_sigprocmask: c_long = 4000 + 126; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_create_module: c_long = 4000 + 127; pub const SYS_init_module: c_long = 4000 + 128; pub const SYS_delete_module: c_long = 4000 + 129; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_get_kernel_syms: c_long = 4000 + 130; pub const SYS_quotactl: c_long = 4000 + 131; pub const SYS_getpgid: c_long = 4000 + 132; @@ -457,6 +459,7 @@ pub const SYS_socket: c_long = 4000 + 183; pub const SYS_socketpair: c_long = 4000 + 184; pub const SYS_setresuid: c_long = 4000 + 185; pub const SYS_getresuid: c_long = 4000 + 186; +#[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")] pub const SYS_query_module: c_long = 4000 + 187; pub const SYS_poll: c_long = 4000 + 188; pub const SYS_nfsservctl: c_long = 4000 + 189; From fea6f1389840fe1597de72f036198653d06be57c Mon Sep 17 00:00:00 2001 From: Steve Lau Date: Fri, 3 Jan 2025 13:25:58 +0800 Subject: [PATCH 0462/1228] add CLONE_NEWTIME to Linux/musl (backport ) (cherry picked from commit d05754dd39fc1854ca999918c7c6ba3184434227) (cherry picked from commit e5a8390276ba1ddecc3ec244a4c22e5d67979a79) [ squashed two commits for the backport - Trevor ] --- libc-test/semver/linux-musl.txt | 1 + src/unix/linux_like/linux/musl/mod.rs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index 62b188dac8288..2223bb50059ee 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -5,6 +5,7 @@ AIO_ALLDONE AIO_CANCELED AIO_NOTCANCELED BOOT_TIME +CLONE_NEWTIME DEAD_PROCESS EMPTY Elf32_Chdr diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 7105461a9f93d..81ee07483e7b4 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -995,6 +995,8 @@ pub const XDP_PKT_CONTD: crate::__u32 = 1 << 0; pub const _CS_V6_ENV: c_int = 1148; pub const _CS_V7_ENV: c_int = 1149; +pub const CLONE_NEWTIME: c_int = 0x80; + cfg_if! { if #[cfg(target_arch = "s390x")] { pub const POSIX_FADV_DONTNEED: c_int = 6; From ba11cc0d4532e72356c3596ed28d38fb01b125b7 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 27 Jan 2025 07:03:08 +0000 Subject: [PATCH 0463/1228] Fix the `missing_abi` lint Recent versions of Rust require the ABI always be specified for `extern` functions, whereas it historically defaulted to `extern "C"`. Fix a few cases where this lint now gets raised by specifying `extern "C"`. (backport ) (cherry picked from commit c9a71dc2d31b73c00091a4082c1e989cee79f792) --- src/macros.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index b4db0fd469da8..e7dbf5611970e 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -243,7 +243,7 @@ cfg_if! { )*) => ($( #[inline] $(#[$attr])* - pub $($constness)* unsafe extern fn $i($($arg: $argty),*) -> $ret + pub $($constness)* unsafe extern "C" fn $i($($arg: $argty),*) -> $ret $body )*) } @@ -257,7 +257,7 @@ cfg_if! { )*) => ($( #[inline] $(#[$attr])* - pub $($constness)* extern fn $i($($arg: $argty),*) -> $ret + pub $($constness)* extern "C" fn $i($($arg: $argty),*) -> $ret $body )*) } @@ -285,7 +285,7 @@ cfg_if! { )*) => ($( #[inline] $(#[$attr])* - pub unsafe extern fn $i($($arg: $argty),*) -> $ret + pub unsafe extern "C" fn $i($($arg: $argty),*) -> $ret $body )*) } @@ -299,7 +299,7 @@ cfg_if! { )*) => ($( #[inline] $(#[$attr])* - pub extern fn $i($($arg: $argty),*) -> $ret + pub extern "C" fn $i($($arg: $argty),*) -> $ret $body )*) } From 70eb0a04ecf2c22b3c03617985070ee2c91fad30 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 5 Feb 2025 07:57:14 +0000 Subject: [PATCH 0464/1228] Disable `RUST_BACKTRACE` for FreeBSD CI Having this environment variable set causes a segfault [1]. Just disable backtraces for now. [1]: https://github.com/rust-lang/rust/issues/132185 (backport ) (cherry picked from commit 8d8a199f29aadddf89e42c689f0d7a8ef3711c20) --- .cirrus.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.cirrus.yml b/.cirrus.yml index 656696c825752..7968772921d40 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -3,6 +3,9 @@ task: env: HOME: /tmp # cargo cache needs it TARGET: x86_64-unknown-freebsd + # FIXME(freebsd): FreeBSD has a segfault when `RUST_BACKTRACE` is set + # https://github.com/rust-lang/rust/issues/132185 + RUST_BACKTRACE: "0" matrix: - name: nightly freebsd-13 i686 # Test i686 FreeBSD in 32-bit emulation on a 64-bit host. From e04c86e3148295fa706236ef6b5fd76b41ac8d2a Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 5 Feb 2025 08:09:26 +0000 Subject: [PATCH 0465/1228] FreeBSD: Add the new `st_filerev` field to `stat32` for FreeBSD 15 This field appears to have been added recently [1]. [1]: https://github.com/freebsd/freebsd-src/commit/b4663a8d111767206bb3ebcfec5b95a6b88bc720 (backport ) (cherry picked from commit f691a1a52fd6df5c6a58b526ff568d4a17049212) --- src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index 4a454619ef06c..9c81a8410db04 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -266,7 +266,8 @@ s! { pub st_blksize: crate::blksize_t, pub st_flags: crate::fflags_t, pub st_gen: u64, - pub st_spare: [u64; 10], + pub st_filerev: u64, + pub st_spare: [u64; 9], } } From 7cbbfedb9a0ca60252308c2dfa97510077d34606 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 5 Feb 2025 10:09:46 +0000 Subject: [PATCH 0466/1228] Temporarily disable `powerpc-unknown-linux-gnu` tests As mentioned in [1], this test has started to fail for unclear reasons. Disable this until it can be investigated further. [1]: https://github.com/rust-lang/libc/pull/4254#issuecomment-2636288713 (backport ) (cherry picked from commit eb7045bd7e9744a980389fdbf95cc50880e67796) --- .github/workflows/ci.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d255ebff1cf69..964d72d1d4d99 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -136,7 +136,9 @@ jobs: - i686-unknown-linux-musl - loongarch64-unknown-linux-gnu - loongarch64-unknown-linux-musl - - powerpc-unknown-linux-gnu + # FIXME(ppc): SIGILL running tests, see + # https://github.com/rust-lang/libc/pull/4254#issuecomment-2636288713 + # - powerpc-unknown-linux-gnu - powerpc64-unknown-linux-gnu - powerpc64le-unknown-linux-gnu - riscv64gc-unknown-linux-gnu From 42cd7e1a634960b02d290abb1978f5391a142ea0 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 12 Feb 2025 19:34:17 +0000 Subject: [PATCH 0467/1228] Bump FreeBSD CI to 13.4 and 14.2 13.3 is marked EOL and 14.1 is marked legacy. Update these runners to the latest version. This should resolve some current CI failures. (backport ) (cherry picked from commit 40a6c7f95f61c3b9b97acf34740b8036e6f392f8) --- .cirrus.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 7968772921d40..7985cb854bbe3 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -12,13 +12,13 @@ task: env: TARGET: i686-unknown-freebsd freebsd_instance: - image_family: freebsd-13-3 + image_family: freebsd-13-4 - name: nightly freebsd-13 x86_64 freebsd_instance: - image_family: freebsd-13-3 + image_family: freebsd-13-4 - name: nightly freebsd-14 x86_64 freebsd_instance: - image: freebsd-14-1-release-amd64-ufs + image: freebsd-14-2-release-amd64-ufs - name: nightly freebsd-15 x86_64 freebsd_instance: image_family: freebsd-15-0-snap From 7f86bf8d863622032b83e1514b9ffaa7b3497fcc Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 12 Jan 2025 16:44:26 +0100 Subject: [PATCH 0468/1228] hurd: Fix CMSG_DATA on 64bit systems This was fixed upstream glibc in https://sourceware.org/git/?p=glibc.git;a=patch;h=cf13f740a91b5bbf6bb60a30b45c2a3933ff1259 (backport ) (cherry picked from commit 3659a6d7de022d90fa20bbb67c10d4624d65a685) --- src/unix/hurd/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index bb5339d0a48bd..0c5f001202844 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -3449,7 +3449,7 @@ f! { } pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - cmsg.offset(1) as *mut c_uchar + (cmsg as *mut c_uchar).offset(CMSG_ALIGN(mem::size_of::()) as isize) } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { From 8e728d7474f3448dfb69d9fae3ae914d75512f6c Mon Sep 17 00:00:00 2001 From: lvllvl <24905907+lvllvl@users.noreply.github.com> Date: Tue, 7 Jan 2025 23:40:08 +0000 Subject: [PATCH 0469/1228] chore: add labels for FIXMEs in repo (backport ) (cherry picked from commit 6c6674e2954c1189926f3c8112372263f8e6b730) --- libc-test/build.rs | 38 +++++++++++++++++++------------------- src/fuchsia/mod.rs | 36 ++++++++++++++++++------------------ src/lib.rs | 2 +- src/vxworks/mod.rs | 6 +++--- 4 files changed, 41 insertions(+), 41 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 5c5fd96df21c0..c5c7becebe718 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -268,7 +268,7 @@ fn test_apple(target: &str) { "os/clock.h", "os/lock.h", "os/signpost.h", - // FIXME: Requires the macOS 14.4 SDK. + // FIXME(macos): Requires the macOS 14.4 SDK. //"os/os_sync_wait_on_address.h", "poll.h", "pthread.h", @@ -338,15 +338,15 @@ fn test_apple(target: &str) { return true; } match ty { - // FIXME: actually a union + // FIXME(union): actually a union "sigval" => true, - // FIXME: The size is changed in recent macOSes. + // FIXME(macos): The size is changed in recent macOSes. "malloc_zone_t" => true, // it is a moving target, changing through versions // also contains bitfields members "tcp_connection_info" => true, - // FIXME: The size is changed in recent macOSes. + // FIXME(macos): The size is changed in recent macOSes. "malloc_introspection_t" => true, _ => false, @@ -358,10 +358,10 @@ fn test_apple(target: &str) { return true; } match ty { - // FIXME: Requires the macOS 14.4 SDK. + // FIXME(macos): Requires the macOS 14.4 SDK. "os_sync_wake_by_address_flags_t" | "os_sync_wait_on_address_flags_t" => true, - // FIXME: "'__uint128' undeclared" in C + // FIXME(macos): "'__uint128' undeclared" in C "__uint128" => true, _ => false, @@ -377,13 +377,13 @@ fn test_apple(target: &str) { // These OSX constants are removed in Sierra. // https://developer.apple.com/library/content/releasenotes/General/APIDiffsMacOS10_12/Swift/Darwin.html "KERN_KDENABLE_BG_TRACE" | "KERN_KDDISABLE_BG_TRACE" => true, - // FIXME: the value has been changed since Catalina (0xffff0000 -> 0x3fff0000). + // FIXME(macos): the value has been changed since Catalina (0xffff0000 -> 0x3fff0000). "SF_SETTABLE" => true, - // FIXME: XCode 13.1 doesn't have it. + // FIXME(macos): XCode 13.1 doesn't have it. "TIOCREMOTE" => true, - // FIXME: Requires the macOS 14.4 SDK. + // FIXME(macos): Requires the macOS 14.4 SDK. "OS_SYNC_WAKE_BY_ADDRESS_NONE" | "OS_SYNC_WAKE_BY_ADDRESS_SHARED" | "OS_SYNC_WAIT_ON_ADDRESS_NONE" @@ -402,19 +402,19 @@ fn test_apple(target: &str) { // close calls the close_nocancel system call "close" => true, - // FIXME: std removed libresolv support: https://github.com/rust-lang/rust/pull/102766 + // FIXME(1.0): std removed libresolv support: https://github.com/rust-lang/rust/pull/102766 "res_init" => true, - // FIXME: remove once the target in CI is updated + // FIXME(macos): remove once the target in CI is updated "pthread_jit_write_freeze_callbacks_np" => true, - // FIXME: ABI has been changed on recent macOSes. + // FIXME(macos): ABI has been changed on recent macOSes. "os_unfair_lock_assert_owner" | "os_unfair_lock_assert_not_owner" => true, - // FIXME: Once the SDK get updated to Ventura's level + // FIXME(macos): Once the SDK get updated to Ventura's level "freadlink" | "mknodat" | "mkfifoat" => true, - // FIXME: Requires the macOS 14.4 SDK. + // FIXME(macos): Requires the macOS 14.4 SDK. "os_sync_wake_by_address_any" | "os_sync_wake_by_address_all" | "os_sync_wake_by_address_flags_t" @@ -429,7 +429,7 @@ fn test_apple(target: &str) { cfg.skip_field(move |struct_, field| { match (struct_, field) { - // FIXME: the array size has been changed since macOS 10.15 ([8] -> [7]). + // FIXME(macos): the array size has been changed since macOS 10.15 ([8] -> [7]). ("statfs", "f_reserved") => true, ("__darwin_arm_neon_state64", "__v") => true, // MAXPATHLEN is too big for auto-derive traits on arrays. @@ -447,7 +447,7 @@ fn test_apple(target: &str) { cfg.skip_field_type(move |struct_, field| { match (struct_, field) { - // FIXME: actually a union + // FIXME(union): actually a union ("sigevent", "sigev_value") => true, _ => false, } @@ -481,7 +481,7 @@ fn test_apple(target: &str) { s if s.ends_with("_nsec") && struct_.starts_with("stat") => { s.replace("e_nsec", "espec.tv_nsec") } - // FIXME: sigaction actually contains a union with two variants: + // FIXME(macos): sigaction actually contains a union with two variants: // a sa_sigaction with type: (*)(int, struct __siginfo *, void *) // a sa_handler with type sig_t "sa_sigaction" if struct_ == "sigaction" => "sa_handler".to_string(), @@ -490,7 +490,7 @@ fn test_apple(target: &str) { }); cfg.skip_roundtrip(move |s| match s { - // FIXME: this type has the wrong ABI + // FIXME(macos): this type has the wrong ABI "max_align_t" if i686 => true, // Can't return an array from a C function. "uuid_t" | "vol_capabilities_set_t" => true, @@ -597,7 +597,7 @@ fn test_openbsd(target: &str) { return true; } match ty { - // FIXME: actually a union + // FIXME(union): actually a union "sigval" => true, _ => false, diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 8e56e3f62928d..f0559db9bee55 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -91,7 +91,7 @@ pub type rlim_t = c_ulonglong; pub type c_long = i64; pub type c_ulong = u64; -// FIXME: why are these uninhabited types? that seems... wrong? +// FIXME(fuchsia): why are these uninhabited types? that seems... wrong? // Presumably these should be `()` or an `extern type` (when that stabilizes). #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} @@ -111,7 +111,7 @@ impl Clone for DIR { } #[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum fpos64_t {} // FIXME: fill this out with a struct +pub enum fpos64_t {} // FIXME(fuchsia): fill this out with a struct impl Copy for fpos64_t {} impl Clone for fpos64_t { fn clone(&self) -> fpos64_t { @@ -144,7 +144,7 @@ s! { pub tv_nsec: c_long, } - // FIXME: the rlimit and rusage related functions and types don't exist + // FIXME(fuchsia): the rlimit and rusage related functions and types don't exist // within zircon. Are there reasons for keeping them around? pub struct rlimit { pub rlim_cur: rlim_t, @@ -478,7 +478,7 @@ s! { pub ifa_flags: c_uint, pub ifa_addr: *mut crate::sockaddr, pub ifa_netmask: *mut crate::sockaddr, - pub ifa_ifu: *mut crate::sockaddr, // FIXME This should be a union + pub ifa_ifu: *mut crate::sockaddr, // FIXME(union) This should be a union pub ifa_data: *mut c_void, } @@ -1097,7 +1097,7 @@ cfg_if! { .field("totalhigh", &self.totalhigh) .field("freehigh", &self.freehigh) .field("mem_unit", &self.mem_unit) - // FIXME: .field("__reserved", &self.__reserved) + // FIXME(debug): .field("__reserved", &self.__reserved) .finish() } } @@ -1135,7 +1135,7 @@ cfg_if! { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_un") .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) + // FIXME(debug): .field("sun_path", &self.sun_path) .finish() } } @@ -1163,7 +1163,7 @@ cfg_if! { f.debug_struct("sockaddr_storage") .field("ss_family", &self.ss_family) .field("__ss_align", &self.__ss_align) - // FIXME: .field("__ss_pad2", &self.__ss_pad2) + // FIXME(debug): .field("__ss_pad2", &self.__ss_pad2) .finish() } } @@ -1207,11 +1207,11 @@ cfg_if! { impl fmt::Debug for utsname { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utsname") - // FIXME: .field("sysname", &self.sysname) - // FIXME: .field("nodename", &self.nodename) - // FIXME: .field("release", &self.release) - // FIXME: .field("version", &self.version) - // FIXME: .field("machine", &self.machine) + // FIXME(debug): .field("sysname", &self.sysname) + // FIXME(debug): .field("nodename", &self.nodename) + // FIXME(debug): .field("release", &self.release) + // FIXME(debug): .field("version", &self.version) + // FIXME(debug): .field("machine", &self.machine) .finish() } } @@ -1246,7 +1246,7 @@ cfg_if! { .field("d_off", &self.d_off) .field("d_reclen", &self.d_reclen) .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) + // FIXME(debug): .field("d_name", &self.d_name) .finish() } } @@ -1281,7 +1281,7 @@ cfg_if! { .field("d_off", &self.d_off) .field("d_reclen", &self.d_reclen) .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) + // FIXME(debug): .field("d_name", &self.d_name) .finish() } } @@ -1390,7 +1390,7 @@ cfg_if! { impl fmt::Debug for pthread_cond_t { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_cond_t") - // FIXME: .field("size", &self.size) + // FIXME(debug): .field("size", &self.size) .finish() } } @@ -1409,7 +1409,7 @@ cfg_if! { impl fmt::Debug for pthread_mutex_t { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_mutex_t") - // FIXME: .field("size", &self.size) + // FIXME(debug): .field("size", &self.size) .finish() } } @@ -1428,7 +1428,7 @@ cfg_if! { impl fmt::Debug for pthread_rwlock_t { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_rwlock_t") - // FIXME: .field("size", &self.size) + // FIXME(debug): .field("size", &self.size) .finish() } } @@ -3562,7 +3562,7 @@ impl Clone for FILE { } } #[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum fpos_t {} // FIXME: fill this out with a struct +pub enum fpos_t {} // FIXME(fuchsia): fill this out with a struct impl Copy for fpos_t {} impl Clone for fpos_t { fn clone(&self) -> fpos_t { diff --git a/src/lib.rs b/src/lib.rs index c1cdc7f1bc4eb..060c4c1b39cdd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,7 +12,7 @@ redundant_semicolons, unused_macros, unused_macro_rules, - // FIXME: temporarily allow dead_code to fix CI: + // FIXME(1.0): temporarily allow dead_code to fix CI: // - https://github.com/rust-lang/libc/issues/3740 // - https://github.com/rust-lang/rust/pull/126456 dead_code, diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index b8faf16e9aa13..e7ec43ab5e430 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -562,7 +562,7 @@ pub const EAI_SERVICE: c_int = 9; pub const EAI_SOCKTYPE: c_int = 10; pub const EAI_SYSTEM: c_int = 11; -// FIXME: This is not defined in vxWorks, but we have to define it here +// FIXME(vxworks): This is not defined in vxWorks, but we have to define it here // to make the building pass for getrandom and std pub const RTLD_DEFAULT: *mut c_void = 0i64 as *mut c_void; @@ -725,7 +725,7 @@ pub const S_taskLib_TASK_HOOK_TABLE_FULL: c_int = taskErrorBase + 0x0066; pub const S_taskLib_TASK_HOOK_NOT_FOUND: c_int = taskErrorBase + 0x0067; pub const S_taskLib_ILLEGAL_PRIORITY: c_int = taskErrorBase + 0x0068; -// FIXME: could also be useful for TASK_DESC type +// FIXME(vxworks): could also be useful for TASK_DESC type pub const VX_TASK_NAME_LENGTH: c_int = 31; // semLibCommon.h @@ -1066,7 +1066,7 @@ impl Clone for FILE { } } #[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum fpos_t {} // FIXME: fill this out with a struct +pub enum fpos_t {} // FIXME(vxworks): fill this out with a struct impl Copy for fpos_t {} impl Clone for fpos_t { fn clone(&self) -> fpos_t { From 608f947befc9a1194c0bcf03dca378abe4ab746c Mon Sep 17 00:00:00 2001 From: xd009642 Date: Thu, 6 Feb 2025 16:13:48 +0900 Subject: [PATCH 0470/1228] Adds in SI and TRAP signal codes Impacts linux and android adding in (when applicable): * SI_ASYNCIO * SI_ASYNCNL * SI_DETHREAD * SI_KERNEL * SI_MESGQ * SI_QUEUE * SI_SIGIO * SI_TIMER * SI_TKILL * SI_USER And also: * TRAP_BRANCH * TRAP_BRKPT * TRAP_HWBKPT * TRAP_PERF * TRAP_TRACE * TRAP_UNK (backport ) (cherry picked from commit a34697a1fde98a4898d88217144d2e68cecce57c) --- libc-test/build.rs | 6 ++++++ libc-test/semver/linux.txt | 16 ++++++++++++++++ src/unix/linux_like/android/mod.rs | 4 ++++ src/unix/linux_like/linux/mod.rs | 4 ++++ src/unix/linux_like/mod.rs | 18 ++++++++++++++++++ 5 files changed, 48 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index c5c7becebe718..447462569a55b 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3065,6 +3065,9 @@ fn test_emscripten(target: &str) { // https://github.com/emscripten-core/emscripten/pull/14883 "SIG_IGN" => true, + // Constants present in other linuxes but not emscripten + "SI_DETHREAD" | "TRAP_PERF" => true, + // LFS64 types have been removed in Emscripten 3.1.44 // https://github.com/emscripten-core/emscripten/pull/19812 n if n.starts_with("RLIM64") => true, @@ -4130,6 +4133,9 @@ fn test_linux(target: &str) { // FIXME: Not currently available in headers on ARM and musl. "NETLINK_GET_STRICT_CHK" if arm => true, + // Skip as this signal codes and trap reasons need newer headers + "SI_DETHREAD" | "TRAP_PERF" => true, + // kernel constants not available in uclibc 1.0.34 | "EXTPROC" | "IPPROTO_BEETPH" diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 175e2811e9649..d2193b870516f 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2879,7 +2879,17 @@ SIOCSMIIREG SIOCSRARP SIOCWANDEV SIOGIFINDEX +SI_ASYNCIO +SI_ASYNCNL +SI_DETHREAD +SI_KERNEL SI_LOAD_SHIFT +SI_MESGQ +SI_QUEUE +SI_SIGIO +SI_TIMER +SI_TKILL +SI_USER SND_CNT SND_MAX SOCK_CLOEXEC @@ -3359,6 +3369,12 @@ TP_STATUS_USER TP_STATUS_VLAN_TPID_VALID TP_STATUS_VLAN_VALID TP_STATUS_WRONG_FORMAT +TRAP_BRANCH +TRAP_BRKPT +TRAP_HWBKPT +TRAP_PERF +TRAP_TRACE +TRAP_UNK TUNATTACHFILTER TUNDETACHFILTER TUNGETFEATURES diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index b12120bb564d4..0e1b05aa5cf72 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3568,6 +3568,10 @@ pub const AT_RSEQ_ALIGN: c_ulong = 28; pub const AT_EXECFN: c_ulong = 31; pub const AT_MINSIGSTKSZ: c_ulong = 51; +// siginfo.h +pub const SI_DETHREAD: c_int = -7; +pub const TRAP_PERF: c_int = 6; + // Most `*_SUPER_MAGIC` constants are defined at the `linux_like` level; the // following are only available on newer Linux versions than the versions // currently used in CI in some configurations, so we define them here. diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 0439493375949..88d39c6316a40 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -5725,6 +5725,10 @@ pub const EPIOCGPARAMS: Ioctl = 0x80088a02; const _IOC_NRBITS: u32 = 8; const _IOC_TYPEBITS: u32 = 8; +// siginfo.h +pub const SI_DETHREAD: c_int = -7; +pub const TRAP_PERF: c_int = 6; + // https://github.com/search?q=repo%3Atorvalds%2Flinux+%22%23define+_IOC_NONE%22&type=code cfg_if! { if #[cfg(any( diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 5b6325e8ca822..c7ff2aea96e79 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1289,6 +1289,17 @@ pub const PIPE_BUF: usize = 4096; pub const SI_LOAD_SHIFT: c_uint = 16; +// si_code values +pub const SI_USER: c_int = 0; +pub const SI_KERNEL: c_int = 0x80; +pub const SI_QUEUE: c_int = -1; +pub const SI_TIMER: c_int = -2; +pub const SI_MESGQ: c_int = -3; +pub const SI_ASYNCIO: c_int = -4; +pub const SI_SIGIO: c_int = -5; +pub const SI_TKILL: c_int = -6; +pub const SI_ASYNCNL: c_int = -60; + // si_code values for SIGBUS signal pub const BUS_ADRALN: c_int = 1; pub const BUS_ADRERR: c_int = 2; @@ -1297,6 +1308,13 @@ pub const BUS_OBJERR: c_int = 3; pub const BUS_MCEERR_AR: c_int = 4; pub const BUS_MCEERR_AO: c_int = 5; +// si_code values for SIGTRAP +pub const TRAP_BRKPT: c_int = 1; +pub const TRAP_TRACE: c_int = 2; +pub const TRAP_BRANCH: c_int = 3; +pub const TRAP_HWBKPT: c_int = 4; +pub const TRAP_UNK: c_int = 5; + // si_code values for SIGCHLD signal pub const CLD_EXITED: c_int = 1; pub const CLD_KILLED: c_int = 2; From e7a9c4a7bb28339f57ac519f8449394d79a0910a Mon Sep 17 00:00:00 2001 From: Kleis Auke Wolthuizen Date: Tue, 14 Jan 2025 10:40:10 +0100 Subject: [PATCH 0471/1228] emscripten: Assume version is at least 3.1.42 This revises commit 63b0d673eaf2a177ff208c5c50999738bdd1bf0d to assume that Emscripten 3.1.42 or later is being used whenever `emcc` is not available. Since Emscripten 3.1.42 was released on June 23, 2023, the majority of users are expected to have upgraded to a more recent version. Resolves: https://github.com/rust-lang/rust/issues/131467. (backport ) (cherry picked from commit b511f66635f8d8060c5b4ed0eb605ac8973005c5) --- build.rs | 8 ++++---- src/unix/linux_like/emscripten/mod.rs | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build.rs b/build.rs index 90fbc0d7c5fda..5f401f9f1072e 100644 --- a/build.rs +++ b/build.rs @@ -5,7 +5,7 @@ use std::{env, str}; // 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", + "emscripten_old_stat_abi", "espidf_time32", "freebsd10", "freebsd11", @@ -74,9 +74,9 @@ fn main() { } match emcc_version_code() { - Some(v) if (v >= 30142) => set_cfg("emscripten_new_stat_abi"), - // Non-Emscripten or version < 3.1.42. - Some(_) | None => (), + Some(v) if (v < 30142) => set_cfg("emscripten_old_stat_abi"), + // Non-Emscripten or version >= 3.1.42. + _ => (), } // On CI: deny all warnings diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 94b3776606a41..c1c5108c17eb4 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -227,16 +227,16 @@ s! { } pub struct stat { pub st_dev: crate::dev_t, - #[cfg(not(emscripten_new_stat_abi))] + #[cfg(emscripten_old_stat_abi)] __st_dev_padding: c_int, - #[cfg(not(emscripten_new_stat_abi))] + #[cfg(emscripten_old_stat_abi)] __st_ino_truncated: c_long, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - #[cfg(not(emscripten_new_stat_abi))] + #[cfg(emscripten_old_stat_abi)] __st_rdev_padding: c_int, pub st_size: off_t, pub st_blksize: crate::blksize_t, From 5e6b350a0daa450e1e6b580f8f59169879bc722d Mon Sep 17 00:00:00 2001 From: Kleis Auke Wolthuizen Date: Mon, 27 Jan 2025 10:25:23 +0100 Subject: [PATCH 0472/1228] emscripten: Fix broken link (backport ) (cherry picked from commit 99515f2058400fbd07156f3b5907b9285c5b5f7a) --- ci/emscripten.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/emscripten.sh b/ci/emscripten.sh index 0a4112e7e205e..e2f41937ddfc0 100755 --- a/ci/emscripten.sh +++ b/ci/emscripten.sh @@ -3,7 +3,7 @@ set -eux # Note: keep in sync with: -# https://github.com/rust-lang/rust/blob/master/src/ci/docker/scripts/emscripten.sh +# https://github.com/rust-lang/rust/blob/master/src/doc/rustc/src/platform-support/wasm32-unknown-emscripten.md#requirements emsdk_version=3.1.68 git clone https://github.com/emscripten-core/emsdk.git /emsdk-portable From 81c931f950d48e72da8cbdd75e2bae6f7b9f9bb9 Mon Sep 17 00:00:00 2001 From: Mohamed Attia Date: Thu, 13 Feb 2025 23:58:08 +0100 Subject: [PATCH 0473/1228] Fix reference to build file with guaranteed build platforms. (backport ) (cherry picked from commit 728a5e2ba3ae519347145d206e8aff2de5c8751a) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 901a776e24f20..c616d8b29f52b 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ but this is not guaranteed. You can see the platform(target)-specific docs on [docs.rs], select a platform you want to see. -See [`ci/build.sh`](https://github.com/rust-lang/libc/blob/HEAD/ci/build.sh) for +See [`ci/verify-build.sh`](https://github.com/rust-lang/libc/blob/HEAD/ci/verify-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. From e943c9823fa5012a42b2dfd6510dbaa982492256 Mon Sep 17 00:00:00 2001 From: Rain Date: Tue, 11 Feb 2025 23:22:09 +0000 Subject: [PATCH 0474/1228] [solarish/illumos] add the posix_spawn family of functions Add definitions from `spawn.h` as present [in illumos-gate (blame view)][spawn-h]. I added definitions more than 15 years old to `solarish/mod.rs`, and others to `solarish/illumos.rs`. There are a lot of definitions here -- it's easiest to look at them in the blame view linked above. But here are the corresponding man pages: For solarish: * [`posix_spawn`, `posix_spawnp`](https://illumos.org/man/3C/posix_spawn) * [`posix_spawn_file_actions_{init,destroy}`](https://illumos.org/man/3C/posix_spawn_file_actions_init) * [`posix_spawn_file_actions_{addopen,addclose}`](https://illumos.org/man/3C/posix_spawn_file_actions_addopen) * [`posix_spawn_file_actions_adddup2`](https://illumos.org/man/3C/posix_spawn_file_actions_adddup2) * [`posix_spawn_file_actions_addclosefrom_np`](https://illumos.org/man/3C/posix_spawn_file_actions_addclosefrom_np) * [`posix_spawnattr_{init,destroy}`](https://illumos.org/man/3C/posix_spawnattr_init) * [`posix_spawnattr_{setflags,getflags}`](https://illumos.org/man/3C/posix_spawnattr_setflags) * [`posix_spawnattr_{setpgroup,getpgroup}`](https://illumos.org/man/3C/posix_spawnattr_setpgroup) * [`posix_spawnattr_{setschedparam,getschedparam}`](https://illumos.org/man/3C/posix_spawnattr_setschedparam) * [`posix_spawnattr_{setschedpolicy,getschedpolicy}`](https://illumos.org/man/3C/posix_spawnattr_setschedpolicy) * [`posix_spawnattr_{setsigdefault,getsigdefault}`](https://illumos.org/man/3C/posix_spawnattr_setsigdefault) * [`posix_spawnattr_{setsigignore,getsigignore}_np`](https://illumos.org/man/3C/posix_spawnattr_setsigignore_np) * [`posix_spawnattr_{setsigmask,getsigmask}`](https://illumos.org/man/3C/posix_spawnattr_setsigmask) Newer functions added independently to Solaris and illumos: * [`posix_spawn_file_actions_{addchdir,addchdir_np,addfchdir}` on Solaris](https://docs.oracle.com/cd/E88353_01/html/E37843/posix-spawn-file-actions-addchdir-np-3c.html) * The illumos-only functions are quite recent so the man pages haven't been uploaded to illumos.org yet. But [here's the one for `addchdir` and `addfchdir`](https://github.com/illumos/illumos-gate/blob/7633a05bff8c639f2df722d1fba7b889b2763d3d/usr/src/man/man3c/posix_spawn_file_actions_addchdir.3c). Note that the `_np` functions are not documented in the manual, but they are available for compatibility. The one function I skipped over was [`posix_spawn_pipe_np`](https://illumos.org/man/3C/posix_spawn_pipe_np) -- it seemed a bit niche and I wasn't quite sure how to model `boolean_t`. [spawn-h]: https://github.com/illumos/illumos-gate/blame/7633a05bff8c639f2df722d1fba7b889b2763d3d/usr/src/head/spawn.h#L1 (backport ) (cherry picked from commit 162e3064659bbcfa857e606f47cbe90874cb6001) --- libc-test/build.rs | 1 + libc-test/semver/illumos.txt | 2 + libc-test/semver/solarish.txt | 37 +++++++++++ src/unix/solarish/illumos.rs | 7 +++ src/unix/solarish/mod.rs | 114 ++++++++++++++++++++++++++++++++++ src/unix/solarish/solaris.rs | 2 + 6 files changed, 163 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 447462569a55b..eb41e2eaa7ac8 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -915,6 +915,7 @@ fn test_solarish(target: &str) { "sched.h", "semaphore.h", "signal.h", + "spawn.h", "stddef.h", "stdint.h", "stdio.h", diff --git a/libc-test/semver/illumos.txt b/libc-test/semver/illumos.txt index 433a6a1816240..b39aba51d1b5f 100644 --- a/libc-test/semver/illumos.txt +++ b/libc-test/semver/illumos.txt @@ -14,8 +14,10 @@ POSIX_FADV_NORMAL POSIX_FADV_RANDOM POSIX_FADV_SEQUENTIAL POSIX_FADV_WILLNEED +POSIX_SPAWN_SETSID posix_fadvise posix_fallocate +posix_spawn_file_actions_addfchdir_np pthread_attr_get_np pthread_attr_getstackaddr pthread_attr_setstack diff --git a/libc-test/semver/solarish.txt b/libc-test/semver/solarish.txt index f6bb5be4e5aca..f8380fd02936b 100644 --- a/libc-test/semver/solarish.txt +++ b/libc-test/semver/solarish.txt @@ -15,6 +15,16 @@ LIO_READ LIO_WAIT LIO_WRITE PIPE_BUF +POSIX_SPAWN_NOEXECERR_NP +POSIX_SPAWN_NOSIGCHLD_NP +POSIX_SPAWN_RESETIDS +POSIX_SPAWN_SETPGROUP +POSIX_SPAWN_SETSCHEDPARAM +POSIX_SPAWN_SETSCHEDULER +POSIX_SPAWN_SETSIGDEF +POSIX_SPAWN_SETSIGIGN_NP +POSIX_SPAWN_SETSIGMASK +POSIX_SPAWN_WAITPID_NP SIGEV_PORT SIGRTMAX SIGRTMIN @@ -34,5 +44,32 @@ bind in6_pktinfo in_pktinfo lio_listio +posix_spawn +posix_spawn_file_actions_addchdir +posix_spawn_file_actions_addchdir_np +posix_spawn_file_actions_addclose +posix_spawn_file_actions_addclosefrom_np +posix_spawn_file_actions_adddup2 +posix_spawn_file_actions_addfchdir +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_getsigignore_np +posix_spawnattr_getsigmask +posix_spawnattr_init +posix_spawnattr_setflags +posix_spawnattr_setpgroup +posix_spawnattr_setschedparam +posix_spawnattr_setschedpolicy +posix_spawnattr_setsigdefault +posix_spawnattr_setsigignore_np +posix_spawnattr_setsigmask +posix_spawnp recvmsg sendmsg diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index a1adae00dcc12..caa3f27b3cb35 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -205,6 +205,8 @@ pub const POSIX_FADV_WILLNEED: c_int = 3; pub const POSIX_FADV_DONTNEED: c_int = 4; pub const POSIX_FADV_NOREUSE: c_int = 5; +pub const POSIX_SPAWN_SETSID: c_short = 0x40; + pub const SIGINFO: c_int = 41; pub const O_DIRECT: c_int = 0x2000000; @@ -335,6 +337,11 @@ extern "C" { pub fn pwritev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; pub fn getpagesizes2(pagesize: *mut size_t, nelem: c_int) -> c_int; + pub fn posix_spawn_file_actions_addfchdir_np( + file_actions: *mut crate::posix_spawn_file_actions_t, + fd: c_int, + ) -> c_int; + pub fn ptsname_r(fildes: c_int, name: *mut c_char, namelen: size_t) -> c_int; pub fn syncfs(fd: c_int) -> c_int; diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 9def117803e52..25913377e4a17 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -56,6 +56,9 @@ pub type lgrp_lat_between_t = c_uint; pub type lgrp_mem_size_flag_t = c_uint; pub type lgrp_view_t = c_uint; +pub type posix_spawnattr_t = *mut c_void; +pub type posix_spawn_file_actions_t = *mut c_void; + #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} impl Copy for timezone {} @@ -1543,6 +1546,17 @@ 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_short = 0x1; +pub const POSIX_SPAWN_SETPGROUP: c_short = 0x2; +pub const POSIX_SPAWN_SETSIGDEF: c_short = 0x4; +pub const POSIX_SPAWN_SETSIGMASK: c_short = 0x8; +pub const POSIX_SPAWN_SETSCHEDPARAM: c_short = 0x10; +pub const POSIX_SPAWN_SETSCHEDULER: c_short = 0x20; +pub const POSIX_SPAWN_SETSIGIGN_NP: c_short = 0x800; +pub const POSIX_SPAWN_NOSIGCHLD_NP: c_short = 0x1000; +pub const POSIX_SPAWN_WAITPID_NP: c_short = 0x2000; +pub const POSIX_SPAWN_NOEXECERR_NP: c_short = 0x4000; + pub const PTHREAD_CREATE_JOINABLE: c_int = 0; pub const PTHREAD_CREATE_DETACHED: c_int = 0x40; pub const PTHREAD_PROCESS_SHARED: c_int = 1; @@ -2688,6 +2702,106 @@ extern "C" { pub fn posix_fallocate(fd: c_int, offset: off_t, len: off_t) -> c_int; pub fn posix_madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; + pub fn posix_spawn( + pid: *mut crate::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 crate::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_spawn_file_actions_init(file_actions: *mut posix_spawn_file_actions_t) -> c_int; + pub fn posix_spawn_file_actions_destroy(file_actions: *mut posix_spawn_file_actions_t) + -> c_int; + pub fn posix_spawn_file_actions_addopen( + file_actions: *mut posix_spawn_file_actions_t, + fildes: c_int, + path: *const c_char, + oflag: c_int, + mode: crate::mode_t, + ) -> c_int; + pub fn posix_spawn_file_actions_addclose( + file_actions: *mut posix_spawn_file_actions_t, + fildes: c_int, + ) -> c_int; + pub fn posix_spawn_file_actions_adddup2( + file_actions: *mut posix_spawn_file_actions_t, + fildes: c_int, + newfildes: c_int, + ) -> c_int; + pub fn posix_spawn_file_actions_addclosefrom_np( + file_actions: *mut posix_spawn_file_actions_t, + lowfiledes: c_int, + ) -> c_int; + pub fn posix_spawn_file_actions_addchdir( + file_actions: *mut posix_spawn_file_actions_t, + path: *const c_char, + ) -> c_int; + pub fn posix_spawn_file_actions_addchdir_np( + file_actions: *mut posix_spawn_file_actions_t, + path: *const c_char, + ) -> c_int; + pub fn posix_spawn_file_actions_addfchdir( + file_actions: *mut posix_spawn_file_actions_t, + fd: c_int, + ) -> 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_setflags(attr: *mut posix_spawnattr_t, flags: c_short) -> c_int; + pub fn posix_spawnattr_getflags(attr: *const posix_spawnattr_t, flags: *mut c_short) -> c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, pgroup: crate::pid_t) -> c_int; + pub fn posix_spawnattr_getpgroup( + attr: *const posix_spawnattr_t, + _pgroup: *mut crate::pid_t, + ) -> c_int; + pub fn posix_spawnattr_setschedparam( + attr: *mut posix_spawnattr_t, + param: *const crate::sched_param, + ) -> c_int; + pub fn posix_spawnattr_getschedparam( + attr: *const posix_spawnattr_t, + param: *mut crate::sched_param, + ) -> c_int; + pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, policy: c_int) -> c_int; + pub fn posix_spawnattr_getschedpolicy( + attr: *const posix_spawnattr_t, + _policy: *mut c_int, + ) -> c_int; + pub fn posix_spawnattr_setsigdefault( + attr: *mut posix_spawnattr_t, + sigdefault: *const sigset_t, + ) -> c_int; + pub fn posix_spawnattr_getsigdefault( + attr: *const posix_spawnattr_t, + sigdefault: *mut sigset_t, + ) -> c_int; + pub fn posix_spawnattr_setsigignore_np( + attr: *mut posix_spawnattr_t, + sigignore: *const sigset_t, + ) -> c_int; + pub fn posix_spawnattr_getsigignore_np( + attr: *const posix_spawnattr_t, + sigignore: *mut sigset_t, + ) -> c_int; + pub fn posix_spawnattr_setsigmask( + attr: *mut posix_spawnattr_t, + sigmask: *const sigset_t, + ) -> c_int; + pub fn posix_spawnattr_getsigmask( + attr: *const posix_spawnattr_t, + sigmask: *mut sigset_t, + ) -> c_int; + pub fn shmat(shmid: c_int, shmaddr: *const c_void, shmflg: c_int) -> *mut c_void; pub fn shmctl(shmid: c_int, cmd: c_int, buf: *mut crate::shmid_ds) -> c_int; diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index d080e6ce8d7f6..d0304082dac8b 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -189,6 +189,8 @@ pub const PRIV_TPD_UNSAFE: c_uint = 0x0800; pub const PRIV_PROC_TPD_RESET: c_uint = 0x1000; pub const PRIV_TPD_KILLABLE: c_uint = 0x2000; +pub const POSIX_SPAWN_SETSID: c_short = 0x400; + pub const PRIV_USER: c_uint = PRIV_DEBUG | PRIV_PROC_SENSITIVE | NET_MAC_AWARE From 5553e180f295460a9aa6284fbef7b5321742be7b Mon Sep 17 00:00:00 2001 From: Thomas Klausner Date: Fri, 14 Feb 2025 11:34:50 +0100 Subject: [PATCH 0475/1228] NetBSD: fix getmntinfo for NetBSD (backport ) (cherry picked from commit e1e9d97c1340e037469fb2dc3ae1d3a309b1c9c7) --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 8e3507fc743a8..fe2b667a523fc 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2849,7 +2849,7 @@ extern "C" { ntargets: size_t, hint: *const c_void, ) -> c_int; - + #[link_name = "__getmntinfo13"] pub fn getmntinfo(mntbufp: *mut *mut crate::statvfs, flags: c_int) -> c_int; pub fn getvfsstat(buf: *mut statvfs, bufsize: size_t, flags: c_int) -> c_int; } From 50fb36c599043b0c0f3c11b3fabf0ba35618894c Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 18 Feb 2025 07:55:15 +0000 Subject: [PATCH 0476/1228] Re-add the test for `primitive_types` This was added in d4da6c866a ("Move testing of primitive types from std"), with cherry pick 69ce8953a4. However, I accidentally reverted this part of the patch in 65c90726e2 ("added wireless struct and constants to Linux"), the cherry pick for 1ee94df243. Add this back here. --- libc-test/Cargo.toml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 007663f69c424..725d2f3247593 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -88,3 +88,8 @@ harness = true name = "semver" path = "test/semver.rs" harness = false + +[[test]] +name = "primitive_types" +path = "test/primitive_types.rs" +harness = true From 48bd1a0f0b2b77f5db1ff4fa3b898e5f1d957823 Mon Sep 17 00:00:00 2001 From: Ryan Mehri Date: Fri, 10 Jan 2025 19:01:24 -0800 Subject: [PATCH 0477/1228] port style.rs to syn and add tests for the style checker (backport ) (cherry picked from commit 56e82108afa1e54a4bb1996251d3d79016a092e0) --- .gitignore | 1 - libc-test/Cargo.toml | 16 ++ libc-test/test/check_style.rs | 50 ++++ libc-test/test/style/mod.rs | 490 ++++++++++++++++++++++++++++++++++ libc-test/test/style_tests.rs | 260 ++++++++++++++++++ 5 files changed, 816 insertions(+), 1 deletion(-) create mode 100644 libc-test/test/check_style.rs create mode 100644 libc-test/test/style/mod.rs create mode 100644 libc-test/test/style_tests.rs diff --git a/.gitignore b/.gitignore index bbbad4bc51532..f0ff2599d09b5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ target Cargo.lock *~ -style diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 725d2f3247593..f0f4c22346753 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -17,6 +17,12 @@ path = ".." version = "0.2.169" default-features = false +[dev-dependencies] +syn = { version = "2.0.91", features = ["full", "visit"] } +proc-macro2 = { version = "1.0.92", features = ["span-locations"] } +glob = "0.3.2" +annotate-snippets = { version = "0.11.5", features = ["testing-colors"] } + [build-dependencies] cc = "1.0.83" # FIXME: Use fork ctest until the maintainer gets back. @@ -93,3 +99,13 @@ harness = false name = "primitive_types" path = "test/primitive_types.rs" harness = true + +[[test]] +name = "style" +path = "test/check_style.rs" +harness = true + +[[test]] +name = "style_tests" +path = "test/style_tests.rs" +harness = true diff --git a/libc-test/test/check_style.rs b/libc-test/test/check_style.rs new file mode 100644 index 0000000000000..ee5e134891104 --- /dev/null +++ b/libc-test/test/check_style.rs @@ -0,0 +1,50 @@ +//! Simple script to verify the coding style of this library. +//! +//! ## How to run +//! +//! The first argument to this script is the directory to run on, so running +//! this script should be as simple as: +//! +//! ```notrust +//! cargo test --test style +//! ``` + +pub mod style; + +use std::env; +use std::path::Path; + +use style::{Result, StyleChecker}; + +#[test] +fn check_style() { + let root_dir = Path::new(env!("CARGO_MANIFEST_DIR")).join("../src"); + walk(&root_dir).unwrap(); + eprintln!("good style!"); +} + +fn walk(root_dir: &Path) -> Result<()> { + let mut style_checker = StyleChecker::new(); + + for entry in glob::glob(&format!( + "{}/**/*.rs", + root_dir.to_str().expect("dir should be valid UTF-8") + ))? { + let entry = entry?; + + let name = entry + .file_name() + .expect("file name should not end in ..") + .to_str() + .expect("file name should be valid UTF-8"); + if let "lib.rs" | "macros.rs" = &name[..] { + continue; + } + + let path = entry.as_path(); + style_checker.check_file(path)?; + style_checker.reset_state(); + } + + style_checker.finalize() +} diff --git a/libc-test/test/style/mod.rs b/libc-test/test/style/mod.rs new file mode 100644 index 0000000000000..cc953d32c3aed --- /dev/null +++ b/libc-test/test/style/mod.rs @@ -0,0 +1,490 @@ +//! Provides the [StyleChecker] visitor to verify the coding style of +//! this library. +//! +//! This is split out so that the implementation itself can be tested +//! separately, see test/check_style.rs for how it's used and +//! test/style_tests.rs for the implementation tests. +//! +//! ## Guidelines +//! +//! The current style is: +//! +//! * Specific module layout: +//! 1. use directives +//! 2. typedefs +//! 3. structs +//! 4. constants +//! 5. f! { ... } functions +//! 6. extern functions +//! 7. modules + pub use +//! * No manual deriving Copy/Clone +//! * Only one f! per module +//! * Multiple s! macros are allowed as long as there isn't a duplicate cfg, +//! whether as a standalone attribute (#[cfg]) or in a cfg_if! +//! * s! macros should not just have a positive cfg since they should +//! just go into the relevant file but combined cfgs with all(...) and +//! any(...) are allowed + +use std::collections::HashMap; +use std::fs; +use std::ops::Deref; +use std::path::{Path, PathBuf}; + +use annotate_snippets::{Level, Renderer, Snippet}; +use proc_macro2::Span; +use syn::parse::{Parse, ParseStream}; +use syn::spanned::Spanned; +use syn::visit::{self, Visit}; +use syn::Token; + +const ALLOWED_REPEATED_MACROS: &[&str] = &["s", "s_no_extra_traits", "s_paren"]; + +pub type Error = Box; +pub type Result = std::result::Result; + +#[derive(Default)] +pub struct StyleChecker { + /// The state the style checker is in, used to enforce the module layout. + state: State, + /// Span of the first item encountered in this state to use in help + /// diagnostic text. + state_span: Option, + /// The s! macro cfgs we have seen, whether through #[cfg] attributes + /// or within the branches of cfg_if! blocks so that we can check for duplicates. + seen_s_macro_cfgs: HashMap, + /// Span of the first f! macro seen, used to enforce only one f! macro + /// per module. + first_f_macro: Option, + /// The errors that the style checker has seen. + errors: Vec, + /// Path of the currently active file. + path: PathBuf, + /// Whether the style checker is currently in an `impl` block. + in_impl: bool, +} + +/// The part of the module layout we are currently checking. +#[derive(Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] +enum State { + #[default] + Start, + Imports, + Typedefs, + Structs, + Constants, + FunctionDefinitions, + Functions, + Modules, +} + +/// Similar to [syn::ExprIf] except with [syn::Attribute] +/// as the condition instead of [syn::Expr]. +struct ExprCfgIf { + _cond: syn::Attribute, + /// A `cfg_if!` branch can only contain items. + then_branch: Vec, + else_branch: Option>, +} + +enum ExprCfgElse { + /// Final block with no condition `else { /* ... */ }`. + Block(Vec), + /// `else if { /* ... */ }` block. + If(ExprCfgIf), +} + +/// Describes an that occurred error when checking the file +/// at the given `path`. Besides the error message, it contains +/// additional span information so that we can print nice error messages. +#[derive(Debug)] +struct FileError { + path: PathBuf, + span: Span, + title: String, + msg: String, + help: Option, +} + +/// Help message with an optional span where the help should point to. +type HelpMsg = (Option, String); + +impl StyleChecker { + pub fn new() -> Self { + Self::default() + } + + /// Reads and parses the file at the given path and checks + /// for any style violations. + pub fn check_file(&mut self, path: &Path) -> Result<()> { + let contents = fs::read_to_string(path)?; + + self.path = PathBuf::from(path); + self.check_string(contents) + } + + pub fn check_string(&mut self, contents: String) -> Result<()> { + let file = syn::parse_file(&contents)?; + self.visit_file(&file); + Ok(()) + } + + /// Resets the state of the [StyleChecker]. + pub fn reset_state(&mut self) { + *self = Self { + errors: std::mem::take(&mut self.errors), + ..Self::default() + }; + } + + /// Collect all errors into a single error, reporting them if any. + pub fn finalize(self) -> Result<()> { + if self.errors.is_empty() { + return Ok(()); + } + + let renderer = Renderer::styled(); + for error in self.errors { + let source = fs::read_to_string(&error.path)?; + + let mut snippet = Snippet::source(&source) + .origin(error.path.to_str().expect("path to be UTF-8")) + .fold(true) + .annotation(Level::Error.span(error.span.byte_range()).label(&error.msg)); + if let Some((help_span, help_msg)) = &error.help { + if let Some(help_span) = help_span { + snippet = snippet + .annotation(Level::Help.span(help_span.byte_range()).label(help_msg)); + } + } + + let mut msg = Level::Error.title(&error.title).snippet(snippet); + if let Some((help_span, help_msg)) = &error.help { + if help_span.is_none() { + msg = msg.footer(Level::Help.title(help_msg)) + } + } + + eprintln!("{}", renderer.render(msg)); + } + + Err("some tests failed".into()) + } + + fn set_state(&mut self, new_state: State, span: Span) { + if self.state > new_state && !self.in_impl { + let help_span = self + .state_span + .expect("state_span should be set since we are on a second state"); + self.error( + "incorrect module layout".to_string(), + span, + format!( + "{} found after {} when it belongs before", + new_state.desc(), + self.state.desc() + ), + ( + Some(help_span), + format!( + "move the {} to before this {}", + new_state.desc(), + self.state.desc() + ), + ), + ); + } + + if self.state != new_state { + self.state = new_state; + self.state_span = Some(span); + } + } + + /// Visit the items inside the [ExprCfgIf], restoring the state after + /// each branch. + fn visit_expr_cfg_if(&mut self, expr_cfg_if: &ExprCfgIf) { + let initial_state = self.state; + + for item in &expr_cfg_if.then_branch { + self.visit_item(item); + } + self.state = initial_state; + + if let Some(else_branch) = &expr_cfg_if.else_branch { + match else_branch.deref() { + ExprCfgElse::Block(items) => { + for item in items { + self.visit_item(item); + } + } + ExprCfgElse::If(expr_cfg_if) => self.visit_expr_cfg_if(&expr_cfg_if), + } + } + self.state = initial_state; + } + + /// If we see a normal s! macro without any attributes we just need + /// to check if there are any duplicates. + fn handle_s_macro_no_attrs(&mut self, item_macro: &syn::ItemMacro) { + let span = item_macro.span(); + match self.seen_s_macro_cfgs.get("") { + Some(seen_span) => { + self.error( + "duplicate s! macro".to_string(), + span, + format!("other s! macro"), + (Some(*seen_span), "combine the two".to_string()), + ); + } + None => { + self.seen_s_macro_cfgs.insert(String::new(), span); + } + } + } + + /// If an s! macro has attributes we check for any duplicates as well + /// as if they are standalone positive cfgs that would be better + /// in a separate file. + fn handle_s_macro_with_attrs(&mut self, item_macro: &syn::ItemMacro) { + for attr in &item_macro.attrs { + let Ok(meta_list) = attr.meta.require_list() else { + continue; + }; + + if meta_list.path.is_ident("cfg") { + let span = meta_list.span(); + let meta_str = meta_list.tokens.to_string(); + + match self.seen_s_macro_cfgs.get(&meta_str) { + Some(seen_span) => { + self.error( + "duplicate #[cfg] for s! macro".to_string(), + span, + "duplicated #[cfg]".to_string(), + (Some(*seen_span), "combine the two".to_string()), + ); + } + None => { + self.seen_s_macro_cfgs.insert(meta_str.clone(), span); + } + } + + if !meta_str.starts_with("not") + && !meta_str.starts_with("any") + && !meta_str.starts_with("all") + { + self.error( + "positive #[cfg] for s! macro".to_string(), + span, + String::new(), + (None, "move it to the relevant file".to_string()), + ); + } + } + } + } + + fn push_error(&mut self, title: String, span: Span, msg: String, help: Option) { + self.errors.push(FileError { + path: self.path.clone(), + title, + span, + msg, + help, + }); + } + + fn error(&mut self, title: String, span: Span, msg: String, help: HelpMsg) { + self.push_error(title, span, msg, Some(help)); + } +} + +impl<'ast> Visit<'ast> for StyleChecker { + /// Visit all items; most just update our current state but some also + /// perform additional checks like for the s! macro. + fn visit_item_use(&mut self, item_use: &'ast syn::ItemUse) { + let span = item_use.span(); + let new_state = if matches!(item_use.vis, syn::Visibility::Public(_)) { + State::Modules + } else { + State::Imports + }; + self.set_state(new_state, span); + + visit::visit_item_use(self, item_use); + } + + fn visit_item_const(&mut self, item_const: &'ast syn::ItemConst) { + let span = item_const.span(); + self.set_state(State::Constants, span); + + visit::visit_item_const(self, item_const); + } + + fn visit_item_impl(&mut self, item_impl: &'ast syn::ItemImpl) { + self.in_impl = true; + visit::visit_item_impl(self, item_impl); + self.in_impl = false; + } + + fn visit_item_struct(&mut self, item_struct: &'ast syn::ItemStruct) { + let span = item_struct.span(); + self.set_state(State::Structs, span); + + visit::visit_item_struct(self, item_struct); + } + + fn visit_item_type(&mut self, item_type: &'ast syn::ItemType) { + let span = item_type.span(); + self.set_state(State::Typedefs, span); + + visit::visit_item_type(self, item_type); + } + + /// Checks s! macros for any duplicate cfgs and whether they are + /// just positive #[cfg(...)] attributes. We need [syn::ItemMacro] + /// instead of [syn::Macro] because it contains the attributes. + fn visit_item_macro(&mut self, item_macro: &'ast syn::ItemMacro) { + if item_macro.mac.path.is_ident("s") { + if item_macro.attrs.is_empty() { + self.handle_s_macro_no_attrs(item_macro); + } else { + self.handle_s_macro_with_attrs(item_macro); + } + } + + visit::visit_item_macro(self, item_macro); + } + + fn visit_macro(&mut self, mac: &'ast syn::Macro) { + let span = mac.span(); + if mac.path.is_ident("cfg_if") { + let expr_cfg_if: ExprCfgIf = mac + .parse_body() + .expect("cfg_if! should be parsed since it compiled"); + + self.visit_expr_cfg_if(&expr_cfg_if); + } else { + let new_state = + if mac.path.get_ident().is_some_and(|ident| { + ALLOWED_REPEATED_MACROS.contains(&ident.to_string().as_str()) + }) { + // multiple macros of this type are allowed + State::Structs + } else if mac.path.is_ident("f") { + match self.first_f_macro { + Some(f_macro_span) => { + self.error( + "multiple f! macros in one module".to_string(), + span, + "other f! macro".to_string(), + ( + Some(f_macro_span), + "combine it with this f! macro".to_string(), + ), + ); + } + None => { + self.first_f_macro = Some(span); + } + } + State::FunctionDefinitions + } else { + self.state + }; + self.set_state(new_state, span); + } + + visit::visit_macro(self, mac); + } + + fn visit_item_foreign_mod(&mut self, item_foreign_mod: &'ast syn::ItemForeignMod) { + let span = item_foreign_mod.span(); + self.set_state(State::Functions, span); + + visit::visit_item_foreign_mod(self, item_foreign_mod); + } + + fn visit_item_mod(&mut self, item_mod: &'ast syn::ItemMod) { + let span = item_mod.span(); + self.set_state(State::Modules, span); + + visit::visit_item_mod(self, item_mod); + } + + fn visit_meta_list(&mut self, meta_list: &'ast syn::MetaList) { + let span = meta_list.span(); + let meta_str = meta_list.tokens.to_string(); + if meta_list.path.is_ident("derive") + && (meta_str.contains("Copy") || meta_str.contains("Clone")) + { + self.error( + "impl Copy and Clone manually".to_string(), + span, + "found manual implementation of Copy and/or Clone".to_string(), + (None, "use one of the s! macros instead".to_string()), + ); + } + + visit::visit_meta_list(self, meta_list); + } +} + +impl Parse for ExprCfgIf { + fn parse(input: ParseStream) -> syn::Result { + input.parse::()?; + let cond = input + .call(syn::Attribute::parse_outer)? + .into_iter() + .next() + .expect("an attribute should be present since it compiled"); + + let content; + syn::braced!(content in input); + let mut then_branch = Vec::new(); + while !content.is_empty() { + let mut value = content.parse()?; + if let syn::Item::Macro(item_macro) = &mut value { + item_macro.attrs.push(cond.clone()); + } + then_branch.push(value); + } + + let mut else_branch = None; + if input.peek(Token![else]) { + input.parse::()?; + + if input.peek(Token![if]) { + else_branch = Some(Box::new(ExprCfgElse::If(input.parse()?))); + } else { + let content; + syn::braced!(content in input); + let mut items = Vec::new(); + while !content.is_empty() { + items.push(content.parse()?); + } + else_branch = Some(Box::new(ExprCfgElse::Block(items))); + } + } + Ok(Self { + _cond: cond, + then_branch, + else_branch, + }) + } +} + +impl State { + fn desc(&self) -> &str { + match *self { + State::Start => "start", + State::Imports => "import", + State::Typedefs => "typedef", + State::Structs => "struct", + State::Constants => "constant", + State::FunctionDefinitions => "function definition", + State::Functions => "extern function", + State::Modules => "module", + } + } +} diff --git a/libc-test/test/style_tests.rs b/libc-test/test/style_tests.rs new file mode 100644 index 0000000000000..be8fddbccf644 --- /dev/null +++ b/libc-test/test/style_tests.rs @@ -0,0 +1,260 @@ +//! Verifies the implementation of the style checker in [style]. + +use style::StyleChecker; + +pub mod style; + +#[test] +fn check_style_accept_correct_module_layout() { + let contents = r#" +use core::mem::size_of; +pub type foo_t = u32; +struct Foo {} +pub const FOO: u32 = 0x20000; +f! {} +extern "C" {} +mod foolib; +pub use self::foolib::*; +"# + .to_string(); + + let mut checker = StyleChecker::new(); + checker.check_string(contents).unwrap(); + checker.finalize().unwrap(); +} + +#[test] +fn check_style_reject_incorrect_module_layout() { + let contents = r#" +use core::mem::size_of; +pub type foo_t = u32; +struct Foo {} +pub const FOO: u32 = 0x20000; +extern "C" {} +f! {} +mod foolib; +pub use self::foolib::*; +"# + .to_string(); + + let mut checker = StyleChecker::new(); + checker.check_string(contents).unwrap(); + assert!(checker.finalize().is_err()); +} + +#[test] +fn check_style_reject_incorrect_cfg_if_layout() { + let contents = r#" +cfg_if! { + if #[cfg(foo)] { + pub type foo_t = u32; + use core::mem::size_of; + } +} +"# + .to_string(); + + let mut checker = StyleChecker::new(); + checker.check_string(contents).unwrap(); + assert!(checker.finalize().is_err()); +} + +#[test] +fn check_style_accept_cfg_if_branch_resets_state() { + let contents = r#" +cfg_if! { + if #[cfg(foo)] { + use core::mem::size_of; + pub type foo_t = u32; + } else { + use core::mem::align_of; + } +} +"# + .to_string(); + + let mut checker = StyleChecker::new(); + checker.check_string(contents).unwrap(); + checker.finalize().unwrap(); +} + +#[test] +fn check_style_reject_multiple_f_macros() { + let contents = r#" +f! {} +f! {} +"# + .to_string(); + + let mut checker = StyleChecker::new(); + checker.check_string(contents).unwrap(); + assert!(checker.finalize().is_err()); +} + +#[test] +fn check_style_accept_cfg_ignore_target_endian_nested() { + let contents = r#" +pub struct Foo { + #[cfg(target_endian = "little")] + pub id: __u16, +} +"# + .to_string(); + + let mut checker = StyleChecker::new(); + checker.check_string(contents).unwrap(); + checker.finalize().unwrap(); +} + +#[test] +fn check_style_reject_manual_copy() { + let contents = r#" +#[derive(Copy)] +pub struct Foo {} +"# + .to_string(); + + let mut checker = StyleChecker::new(); + checker.check_string(contents).unwrap(); + assert!(checker.finalize().is_err()); +} + +#[test] +fn check_style_reject_manual_clone() { + let contents = r#" +#[derive(Clone)] +pub struct Foo {} +"# + .to_string(); + + let mut checker = StyleChecker::new(); + checker.check_string(contents).unwrap(); + assert!(checker.finalize().is_err()); +} + +#[test] +fn check_style_accept_multiple_s_macros_with_disjoint_cfg() { + let contents = r#" +// Main `s!` +s! {} + +// These are not supported on a single arch. It doesn't make sense to +// duplicate `foo` into every single file except one, so allow this here. +#[cfg(not(target_arch = "foo"))] +s! { pub struct foo { /* ... */ } } + +// Similar to the above, no problems here +#[cfg(not(target_os = "illumos"))] +s! { pub struct bar { /* ... */ } } +"# + .to_string(); + + let mut checker = StyleChecker::new(); + checker.check_string(contents).unwrap(); + checker.finalize().unwrap(); +} + +#[test] +fn check_style_reject_duplicated_s_macro() { + let contents = r#" +s! {} +s! {} +"# + .to_string(); + + let mut checker = StyleChecker::new(); + checker.check_string(contents).unwrap(); + assert!(checker.finalize().is_err()); +} + +#[test] +fn check_style_reject_duplicated_s_macro_cfg() { + let contents = r#" +#[cfg(not(target_arch = "foo"))] +s! {} + +#[cfg(not(target_arch = "foo"))] +s! {} +"# + .to_string(); + + let mut checker = StyleChecker::new(); + checker.check_string(contents).unwrap(); + assert!(checker.finalize().is_err()); +} + +#[test] +fn check_style_reject_single_positive_s_macro_cfg() { + let contents = r#" +// A positive (no `not`) config: reject because this should go into +// the relevant file. +#[cfg(target_arch = "foo")] +s! { pub struct foo { /* ... */ } } +"# + .to_string(); + + let mut checker = StyleChecker::new(); + checker.check_string(contents).unwrap(); + assert!(checker.finalize().is_err()); +} + +#[test] +fn check_style_reject_single_positive_s_macro_cfg_target_os() { + let contents = r#" +// A positive (no `not`) config: reject because this should go into +// the relevant file. +#[cfg(target_os = "foo")] +s! { pub struct foo { /* ... */ } } +"# + .to_string(); + + let mut checker = StyleChecker::new(); + checker.check_string(contents).unwrap(); + assert!(checker.finalize().is_err()); +} + +#[test] +fn check_style_accept_positive_s_macro_any() { + let contents = r#" +// It's nicer to accept this so that we don't have to duplicate the same struct 3 times. +#[cfg(any(target_arch = "foo", target_arch = "bar", target_arch = "baz"))] +s! { pub struct foo { /* ... */ } } +"# + .to_string(); + + let mut checker = StyleChecker::new(); + checker.check_string(contents).unwrap(); + checker.finalize().unwrap(); +} + +#[test] +fn check_style_accept_positive_s_macro_all() { + let contents = r#" +#[cfg(all(target_arch = "foo", target_arch = "bar", target_arch = "baz"))] +s! { pub struct foo { /* ... */ } } +"# + .to_string(); + + let mut checker = StyleChecker::new(); + checker.check_string(contents).unwrap(); + checker.finalize().unwrap(); +} + +#[test] +fn check_style_reject_duplicated_cfg_and_cfg_if() { + let contents = r#" +#[cfg(not(target_arch = "foo"))] +s! { pub struct foo { /* ... */ } } + +cfg_if! { + if #[cfg(not(target_arch = "foo"))] { + s!{ pub struct bar {} } + } +} +"# + .to_string(); + + let mut checker = StyleChecker::new(); + checker.check_string(contents).unwrap(); + assert!(checker.finalize().is_err()); +} From 80dcbb0916d5638f633b6707d95d6ed6666e71c0 Mon Sep 17 00:00:00 2001 From: Ryan Mehri Date: Fri, 10 Jan 2025 19:02:21 -0800 Subject: [PATCH 0478/1228] update style script and ci to run new style checker (backport ) (cherry picked from commit bd1b83864184b0587d666bb1b3f1b563a487bde2) --- ci/run.sh | 19 ++-- ci/runtest-android.rs | 20 ++-- ci/style.rs | 213 ------------------------------------------ ci/style.sh | 2 +- 4 files changed, 25 insertions(+), 229 deletions(-) delete mode 100644 ci/style.rs diff --git a/ci/run.sh b/ci/run.sh index 9754118f742b8..8889cda5a21e5 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -81,6 +81,7 @@ if [ -n "${QEMU:-}" ]; then fi cmd="cargo test --target $target ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"}" +test_flags="--skip check_style" # Run tests in the `libc` crate case "$target" in @@ -101,17 +102,20 @@ if [ "$target" = "s390x-unknown-linux-gnu" ]; then passed=0 until [ $n -ge $N ]; do if [ "$passed" = "0" ]; then - if $cmd --no-default-features; then + # shellcheck disable=SC2086 + if $cmd --no-default-features -- $test_flags; then passed=$((passed+1)) continue fi elif [ "$passed" = "1" ]; then - if $cmd; then + # shellcheck disable=SC2086 + if $cmd -- $test_flags; then passed=$((passed+1)) continue fi elif [ "$passed" = "2" ]; then - if $cmd --features extra_traits; then + # shellcheck disable=SC2086 + if $cmd --features extra_traits -- $test_flags; then break fi fi @@ -119,7 +123,10 @@ if [ "$target" = "s390x-unknown-linux-gnu" ]; then sleep 1 done else - $cmd --no-default-features - $cmd - $cmd --features extra_traits + # shellcheck disable=SC2086 + $cmd --no-default-features -- $test_flags + # shellcheck disable=SC2086 + $cmd -- $test_flags + # shellcheck disable=SC2086 + $cmd --features extra_traits -- $test_flags fi diff --git a/ci/runtest-android.rs b/ci/runtest-android.rs index 92bce79b0d714..d422f9c2e8a7e 100644 --- a/ci/runtest-android.rs +++ b/ci/runtest-android.rs @@ -1,11 +1,11 @@ use std::env; -use std::process::Command; use std::path::{Path, PathBuf}; +use std::process::Command; fn main() { let args = env::args_os() .skip(1) - .filter(|arg| arg != "--quiet") + .filter(|arg| arg != "--quiet" && arg != "--skip" && arg != "check_style") .collect::>(); assert_eq!(args.len(), 1); let test = PathBuf::from(&args[0]); @@ -36,14 +36,16 @@ fn main() { let stdout = String::from_utf8_lossy(&output.stdout); let stderr = String::from_utf8_lossy(&output.stderr); - println!("status: {}\nstdout ---\n{}\nstderr ---\n{}", - output.status, - stdout, - stderr); + println!( + "status: {}\nstdout ---\n{}\nstderr ---\n{}", + output.status, stdout, stderr + ); - if !stderr.lines().any(|l| (l.starts_with("PASSED ") && l.contains(" tests")) || l.starts_with("test result: ok")) - && !stdout.lines().any(|l| (l.starts_with("PASSED ") && l.contains(" tests")) || l.starts_with("test result: ok")) - { + if !stderr.lines().any(|l| { + (l.starts_with("PASSED ") && l.contains(" tests")) || l.starts_with("test result: ok") + }) && !stdout.lines().any(|l| { + (l.starts_with("PASSED ") && l.contains(" tests")) || l.starts_with("test result: ok") + }) { panic!("failed to find successful test run"); }; } diff --git a/ci/style.rs b/ci/style.rs deleted file mode 100644 index cad08f2eecc88..0000000000000 --- a/ci/style.rs +++ /dev/null @@ -1,213 +0,0 @@ -//! Simple script to verify the coding style of this library -//! -//! ## How to run -//! -//! The first argument to this script is the directory to run on, so running -//! this script should be as simple as: -//! -//! ```notrust -//! rustc ci/style.rs -//! ./style src -//! ``` -//! -//! ## Guidelines -//! -//! The current style is: -//! -//! * Specific module layout: -//! 1. use directives -//! 2. typedefs -//! 3. structs -//! 4. constants -//! 5. f! { ... } functions -//! 6. extern functions -//! 7. modules + pub use -//! -//! Things not verified: -//! -//! * alignment -//! * leading colons on paths - -use std::io::prelude::*; -use std::path::Path; -use std::{env, fs}; - -macro_rules! t { - ($e:expr) => { - match $e { - Ok(e) => e, - Err(e) => panic!("{} failed with {}", stringify!($e), e), - } - }; -} - -fn main() { - let arg = env::args().skip(1).next().unwrap_or(".".to_string()); - - let mut errors = Errors { errs: false }; - walk(Path::new(&arg), &mut errors); - - if errors.errs { - panic!("found some lint errors"); - } else { - println!("good style!"); - } -} - -fn walk(path: &Path, err: &mut Errors) { - for entry in t!(path.read_dir()).map(|e| t!(e)) { - let path = entry.path(); - if t!(entry.file_type()).is_dir() { - walk(&path, err); - continue; - } - - let name = entry.file_name().into_string().unwrap(); - match &name[..] { - n if !n.ends_with(".rs") => continue, - - "lib.rs" | "macros.rs" => continue, - - _ => {} - } - - let mut contents = String::new(); - t!(t!(fs::File::open(&path)).read_to_string(&mut contents)); - - check_style(&contents, &path, err); - } -} - -struct Errors { - errs: bool, -} - -#[derive(Clone, Copy, PartialEq)] -enum State { - Start, - Imports, - Typedefs, - Structs, - Constants, - FunctionDefinitions, - Functions, - Modules, -} - -fn check_style(file: &str, path: &Path, err: &mut Errors) { - let mut state = State::Start; - - // FIXME: see below - // let mut s_macros = 0; - - let mut f_macros = 0; - let mut in_impl = false; - - for (i, line) in file.lines().enumerate() { - if line.contains("#[cfg(") - && line.contains(']') - && !line.contains(" if ") - && !(line.contains("target_endian") || line.contains("target_arch")) - { - if state != State::Structs { - err.error(path, i, "use cfg_if! and submodules instead of #[cfg]"); - } - } - if line.contains("#[derive(") && (line.contains("Copy") || line.contains("Clone")) { - err.error(path, i, "impl Copy and Clone manually"); - } - if line.contains("impl") { - in_impl = true; - } - if in_impl && line.starts_with('}') { - in_impl = false; - } - - let orig_line = line; - let line = line.trim_start(); - let is_pub = line.starts_with("pub "); - let line = if is_pub { &line[4..] } else { line }; - - let line_state = if line.starts_with("use ") { - if line.contains("c_void") || line.contains("c_char") { - continue; - } - if is_pub { - State::Modules - } else { - State::Imports - } - } else if line.starts_with("const ") { - State::Constants - } else if line.starts_with("type ") && !in_impl { - State::Typedefs - } else if line.starts_with("s! {") { - // FIXME: see below - // s_macros += 1; - State::Structs - } else if line.starts_with("s_no_extra_traits! {") { - // multiple macros of this type are allowed - State::Structs - } else if line.starts_with("s_paren! {") { - // multiple macros of this type are allowed - State::Structs - } else if line.starts_with("f! {") { - f_macros += 1; - State::FunctionDefinitions - } else if line.starts_with("extern ") && !orig_line.starts_with(" ") { - State::Functions - } else if line.starts_with("mod ") { - State::Modules - } else { - continue; - }; - - if state as usize > line_state as usize { - err.error( - path, - i, - &format!( - "{} found after {} when it belongs before", - line_state.desc(), - state.desc() - ), - ); - } - - if f_macros == 2 { - f_macros += 1; - err.error(path, i, "multiple f! macros in one module"); - } - - // FIXME(#4109): multiple should be allowed if at least one is `cfg(not) within `cfg_if`. - // For now just disable this and check by hand. - // if s_macros == 2 { - // s_macros += 1; - // err.error(path, i, "multiple s! macros in one module"); - // } - - state = line_state; - } -} - -impl State { - fn desc(&self) -> &str { - match *self { - State::Start => "start", - State::Imports => "import", - State::Typedefs => "typedef", - State::Structs => "struct", - State::Constants => "constant", - State::FunctionDefinitions => "function definition", - State::Functions => "extern function", - State::Modules => "module", - } - } -} - -impl Errors { - fn error(&mut self, path: &Path, line: usize, msg: &str) { - self.errs = true; - println!("{}:{}: {}", path.display(), line + 1, msg); - } -} diff --git a/ci/style.sh b/ci/style.sh index c758712012e16..da16bf4fe9baf 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -9,7 +9,7 @@ if [ -n "${CI:-}" ]; then check="--check" fi -rustc ci/style.rs && ./style src +cargo test --manifest-path libc-test/Cargo.toml --test style -- --nocapture command -v rustfmt rustfmt -V From b2823f33ca599096eee3189269783df038b8d71d Mon Sep 17 00:00:00 2001 From: Ryan Mehri Date: Fri, 10 Jan 2025 19:02:42 -0800 Subject: [PATCH 0479/1228] fix some lints that were detected by the new style checker (backport ) (cherry picked from commit 94c2b1424af9b69e7dd15b4f3de0f5af3427433d) --- src/teeos/mod.rs | 6 ++--- src/unix/linux_like/linux/mod.rs | 24 +++++++++---------- .../linux_like/linux/uclibc/x86_64/l4re.rs | 1 - src/wasi/mod.rs | 3 +-- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/teeos/mod.rs b/src/teeos/mod.rs index b055d2aca8c7e..1ec2706cfdf76 100644 --- a/src/teeos/mod.rs +++ b/src/teeos/mod.rs @@ -51,9 +51,6 @@ pub type c_long = i64; pub type c_ulong = u64; -#[repr(align(16))] -pub struct _CLongDouble(pub u128); - // long double in C means A float point value, which has 128bit length. // but some bit maybe not used, so the real length of long double could be 80(x86) or 128(power pc/IEEE) // this is different from f128(not stable and not included default) in Rust, so we use u128 for FFI(Rust to C). @@ -88,6 +85,9 @@ pub type wctype_t = c_ulong; pub type cmpfunc = extern "C" fn(x: *const c_void, y: *const c_void) -> c_int; +#[repr(align(16))] +pub struct _CLongDouble(pub u128); + #[repr(align(8))] #[repr(C)] pub struct pthread_cond_t { diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 88d39c6316a40..c2fa6392fa500 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2162,18 +2162,6 @@ cfg_if! { } } -cfg_if! { - if #[cfg(all( - any(target_env = "gnu", target_env = "musl", target_env = "ohos"), - any(target_arch = "x86_64", target_arch = "x86") - ))] { - extern "C" { - pub fn iopl(level: c_int) -> c_int; - pub fn ioperm(from: c_ulong, num: c_ulong, turn_on: c_int) -> c_int; - } - } -} - cfg_if! { if #[cfg(any( target_env = "gnu", @@ -6007,6 +5995,18 @@ safe_f! { } } +cfg_if! { + if #[cfg(all( + any(target_env = "gnu", target_env = "musl", target_env = "ohos"), + any(target_arch = "x86_64", target_arch = "x86") + ))] { + extern "C" { + pub fn iopl(level: c_int) -> c_int; + pub fn ioperm(from: c_ulong, num: c_ulong, turn_on: c_int) -> c_int; + } + } +} + cfg_if! { if #[cfg(all(not(target_env = "uclibc"), not(target_env = "ohos")))] { extern "C" { diff --git a/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs b/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs index 7e1499a1fd8bd..b108e77c7cd32 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs @@ -28,7 +28,6 @@ s! { } } -#[cfg(target_os = "l4re")] #[allow(missing_debug_implementations)] pub struct pthread_attr_t { pub __detachstate: c_int, diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index 909b33a20ac77..f2b774ea51549 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -44,6 +44,7 @@ pub type nfds_t = c_ulong; pub type wchar_t = i32; pub type nl_item = c_int; pub type __wasi_rights_t = u64; +pub type locale_t = *mut __locale_struct; s_no_extra_traits! { #[repr(align(16))] @@ -63,8 +64,6 @@ pub enum DIR {} #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum __locale_struct {} -pub type locale_t = *mut __locale_struct; - s_paren! { // in wasi-libc clockid_t is const struct __clockid* (where __clockid is an opaque struct), // but that's an implementation detail that we don't want to have to deal with From e2f9290974aa042a281628a83125f958f379fb0c Mon Sep 17 00:00:00 2001 From: Aphek Date: Tue, 4 Feb 2025 20:44:28 -0300 Subject: [PATCH 0480/1228] Copy definitions from core::ffi and centralize them (backport ) (cherry picked from commit 95446f458e472511d65e560224c1b85570e50944) [ include the necessary changes for psp, which isn't part of the original commit since the target is not present on main - Trevor ] --- src/fuchsia/mod.rs | 13 --- src/hermit.rs | 13 --- src/lib.rs | 84 ++++++------------- src/{fixed_width_ints.rs => primitives.rs} | 65 +++++++++++++- src/psp.rs | 13 --- src/sgx.rs | 13 --- src/solid/aarch64.rs | 2 - src/solid/arm.rs | 2 - src/solid/mod.rs | 10 --- src/switch.rs | 12 --- src/teeos/mod.rs | 24 ------ src/trusty.rs | 23 ----- src/unix/aix/powerpc64.rs | 3 - src/unix/bsd/apple/b32/mod.rs | 2 - src/unix/bsd/apple/b64/mod.rs | 3 - src/unix/bsd/freebsdlike/dragonfly/mod.rs | 2 - src/unix/bsd/freebsdlike/freebsd/aarch64.rs | 2 - src/unix/bsd/freebsdlike/freebsd/arm.rs | 2 - src/unix/bsd/freebsdlike/freebsd/powerpc.rs | 2 - src/unix/bsd/freebsdlike/freebsd/powerpc64.rs | 2 - src/unix/bsd/freebsdlike/freebsd/riscv64.rs | 2 - src/unix/bsd/freebsdlike/freebsd/x86.rs | 2 - .../bsd/freebsdlike/freebsd/x86_64/mod.rs | 2 - src/unix/bsd/netbsdlike/netbsd/aarch64.rs | 2 - src/unix/bsd/netbsdlike/netbsd/arm.rs | 2 - src/unix/bsd/netbsdlike/netbsd/mips.rs | 2 - src/unix/bsd/netbsdlike/netbsd/powerpc.rs | 2 - src/unix/bsd/netbsdlike/netbsd/riscv64.rs | 2 - src/unix/bsd/netbsdlike/netbsd/sparc64.rs | 2 - src/unix/bsd/netbsdlike/netbsd/x86.rs | 2 - src/unix/bsd/netbsdlike/netbsd/x86_64.rs | 2 - src/unix/bsd/netbsdlike/openbsd/aarch64.rs | 2 - src/unix/bsd/netbsdlike/openbsd/arm.rs | 3 - src/unix/bsd/netbsdlike/openbsd/mips64.rs | 3 - src/unix/bsd/netbsdlike/openbsd/powerpc.rs | 3 - src/unix/bsd/netbsdlike/openbsd/powerpc64.rs | 3 - src/unix/bsd/netbsdlike/openbsd/riscv64.rs | 2 - src/unix/bsd/netbsdlike/openbsd/sparc64.rs | 3 - src/unix/bsd/netbsdlike/openbsd/x86.rs | 3 - src/unix/bsd/netbsdlike/openbsd/x86_64.rs | 2 - src/unix/haiku/b32.rs | 2 - src/unix/haiku/b64.rs | 2 - src/unix/hurd/b32.rs | 3 - src/unix/hurd/b64.rs | 3 - src/unix/linux_like/android/b32/mod.rs | 2 - src/unix/linux_like/android/b64/mod.rs | 2 - src/unix/linux_like/emscripten/mod.rs | 2 - src/unix/linux_like/linux/gnu/b32/mod.rs | 2 - .../linux_like/linux/gnu/b64/aarch64/ilp32.rs | 3 - .../linux_like/linux/gnu/b64/aarch64/lp64.rs | 3 - .../linux/gnu/b64/loongarch64/mod.rs | 2 - .../linux_like/linux/gnu/b64/mips64/mod.rs | 2 - .../linux_like/linux/gnu/b64/powerpc64/mod.rs | 2 - .../linux_like/linux/gnu/b64/riscv64/mod.rs | 2 - src/unix/linux_like/linux/gnu/b64/s390x.rs | 2 - .../linux_like/linux/gnu/b64/sparc64/mod.rs | 2 - .../linux/gnu/b64/x86_64/not_x32.rs | 3 - .../linux_like/linux/gnu/b64/x86_64/x32.rs | 3 - src/unix/linux_like/linux/musl/b32/mod.rs | 2 - src/unix/linux_like/linux/musl/b64/mod.rs | 2 - src/unix/linux_like/linux/uclibc/arm/mod.rs | 2 - .../linux/uclibc/mips/mips32/mod.rs | 2 - .../linux/uclibc/mips/mips64/mod.rs | 2 - .../linux_like/linux/uclibc/x86_64/mod.rs | 2 - src/unix/mod.rs | 10 --- src/unix/newlib/aarch64/mod.rs | 3 - src/unix/newlib/arm/mod.rs | 3 - src/unix/newlib/espidf/mod.rs | 3 - src/unix/newlib/horizon/mod.rs | 3 - src/unix/newlib/powerpc/mod.rs | 3 - src/unix/newlib/vita/mod.rs | 3 - src/unix/nto/aarch64.rs | 2 - src/unix/nto/x86_64.rs | 2 - src/unix/nuttx/mod.rs | 2 - src/unix/redox/mod.rs | 14 ---- src/unix/solarish/mod.rs | 2 - src/vxworks/aarch64.rs | 2 - src/vxworks/arm.rs | 2 - src/vxworks/mod.rs | 10 --- src/vxworks/powerpc.rs | 2 - src/vxworks/powerpc64.rs | 2 - src/vxworks/riscv32.rs | 2 - src/vxworks/riscv64.rs | 2 - src/vxworks/x86.rs | 2 - src/vxworks/x86_64.rs | 2 - src/wasi/mod.rs | 12 --- src/windows/mod.rs | 12 --- src/xous.rs | 12 --- 88 files changed, 89 insertions(+), 415 deletions(-) rename src/{fixed_width_ints.rs => primitives.rs} (73%) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index f0559db9bee55..d666c7e39de60 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -7,16 +7,6 @@ use crate::prelude::*; // PUB_TYPE -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; pub type intmax_t = i64; pub type uintmax_t = u64; @@ -88,9 +78,6 @@ pub type fsblkcnt_t = c_ulonglong; pub type fsfilcnt_t = c_ulonglong; pub type rlim_t = c_ulonglong; -pub type c_long = i64; -pub type c_ulong = u64; - // FIXME(fuchsia): why are these uninhabited types? that seems... wrong? // Presumably these should be `()` or an `extern type` (when that stabilizes). #[cfg_attr(feature = "extra_traits", derive(Debug))] diff --git a/src/hermit.rs b/src/hermit.rs index 03947bc01ade5..65d0bf374d8cd 100644 --- a/src/hermit.rs +++ b/src/hermit.rs @@ -2,24 +2,11 @@ use crate::prelude::*; -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_long = i64; -pub type c_ulong = u64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; pub type intmax_t = i64; pub type uintmax_t = u64; pub type intptr_t = isize; pub type uintptr_t = usize; -pub type c_float = f32; -pub type c_double = f64; - pub type size_t = usize; pub type ssize_t = isize; pub type ptrdiff_t = isize; diff --git a/src/lib.rs b/src/lib.rs index 060c4c1b39cdd..50aed357a82ab 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -41,138 +41,106 @@ cfg_if! { pub use core::ffi::c_void; -cfg_if! { - // This configuration comes from `rust-lang/rust` in `library/core/src/ffi/mod.rs`. - if #[cfg(all( - not(windows), - // FIXME(ctest): just use `target_vendor` = "apple"` once `ctest` supports it - not(any( - target_os = "macos", - target_os = "ios", - target_os = "tvos", - target_os = "watchos", - target_os = "visionos", - )), - any( - target_arch = "aarch64", - target_arch = "arm", - target_arch = "csky", - target_arch = "hexagon", - target_arch = "msp430", - target_arch = "powerpc", - target_arch = "powerpc64", - target_arch = "riscv64", - target_arch = "riscv32", - target_arch = "s390x", - target_arch = "xtensa", - ) - ))] { - pub type c_char = u8; - } else { - pub type c_char = i8; - } -} - cfg_if! { if #[cfg(windows)] { - mod fixed_width_ints; - pub use crate::fixed_width_ints::*; + mod primitives; + pub use crate::primitives::*; mod windows; pub use crate::windows::*; prelude!(); } else if #[cfg(target_os = "fuchsia")] { - mod fixed_width_ints; - pub use crate::fixed_width_ints::*; + mod primitives; + pub use crate::primitives::*; mod fuchsia; pub use crate::fuchsia::*; prelude!(); } else if #[cfg(target_os = "switch")] { - mod fixed_width_ints; - pub use fixed_width_ints::*; + mod primitives; + pub use primitives::*; mod switch; pub use switch::*; prelude!(); } else if #[cfg(target_os = "psp")] { - mod fixed_width_ints; - pub use crate::fixed_width_ints::*; + mod primitives; + pub use primitives::*; mod psp; pub use crate::psp::*; prelude!(); } else if #[cfg(target_os = "vxworks")] { - mod fixed_width_ints; - pub use crate::fixed_width_ints::*; + mod primitives; + pub use crate::primitives::*; mod vxworks; pub use crate::vxworks::*; prelude!(); } else if #[cfg(target_os = "solid_asp3")] { - mod fixed_width_ints; - pub use crate::fixed_width_ints::*; + mod primitives; + pub use crate::primitives::*; mod solid; pub use crate::solid::*; prelude!(); } else if #[cfg(unix)] { - mod fixed_width_ints; - pub use crate::fixed_width_ints::*; + mod primitives; + pub use crate::primitives::*; mod unix; pub use crate::unix::*; prelude!(); } else if #[cfg(target_os = "hermit")] { - mod fixed_width_ints; - pub use crate::fixed_width_ints::*; + mod primitives; + pub use crate::primitives::*; mod hermit; pub use crate::hermit::*; prelude!(); } else if #[cfg(target_os = "teeos")] { - mod fixed_width_ints; - pub use fixed_width_ints::*; + mod primitives; + pub use primitives::*; mod teeos; pub use teeos::*; prelude!(); } else if #[cfg(target_os = "trusty")] { - mod fixed_width_ints; - pub use crate::fixed_width_ints::*; + mod primitives; + pub use crate::primitives::*; mod trusty; pub use crate::trusty::*; prelude!(); } else if #[cfg(all(target_env = "sgx", target_vendor = "fortanix"))] { - mod fixed_width_ints; - pub use crate::fixed_width_ints::*; + mod primitives; + pub use crate::primitives::*; mod sgx; pub use crate::sgx::*; prelude!(); } else if #[cfg(any(target_env = "wasi", target_os = "wasi"))] { - mod fixed_width_ints; - pub use crate::fixed_width_ints::*; + mod primitives; + pub use crate::primitives::*; mod wasi; pub use crate::wasi::*; prelude!(); } else if #[cfg(target_os = "xous")] { - mod fixed_width_ints; - pub use crate::fixed_width_ints::*; + mod primitives; + pub use crate::primitives::*; mod xous; pub use crate::xous::*; diff --git a/src/fixed_width_ints.rs b/src/primitives.rs similarity index 73% rename from src/fixed_width_ints.rs rename to src/primitives.rs index d2385fd385d10..30d9b98ff1bc0 100644 --- a/src/fixed_width_ints.rs +++ b/src/primitives.rs @@ -1,6 +1,67 @@ -//! This module contains type aliases for C's fixed-width integer types . +//! This module contains type aliases for C's platform-specific types +//! and fixed-width integer types. //! -//! These aliases are deprecated: use the Rust types instead. +//! The platform-specific types definitions were taken from rust-lang/rust in +//! library/core/src/ffi/primitives.rs +//! +//! The fixed-width integer aliases are deprecated: use the Rust types instead. + +pub type c_schar = i8; +pub type c_uchar = u8; +pub type c_short = i16; +pub type c_ushort = u16; + +pub type c_longlong = i64; +pub type c_ulonglong = u64; + +pub type c_float = f32; +pub type c_double = f64; + +cfg_if! { + if #[cfg(all( + not(windows), + not(target_vendor = "apple"), + any( + target_arch = "aarch64", + target_arch = "arm", + target_arch = "csky", + target_arch = "hexagon", + target_arch = "msp430", + target_arch = "powerpc", + target_arch = "powerpc64", + target_arch = "riscv32", + target_arch = "riscv64", + target_arch = "s390x", + target_arch = "xtensa", + ) + ))] { + pub type c_char = u8; + } else { + // On every other target, c_char is signed. + pub type c_char = i8; + } +} + +cfg_if! { + if #[cfg(any(target_arch = "avr", target_arch = "msp430"))] { + pub type c_int = i16; + pub type c_uint = u16; + } else { + pub type c_int = i32; + pub type c_uint = u32; + } +} + +cfg_if! { + if #[cfg(all(target_pointer_width = "64", not(windows)))] { + pub type c_long = i64; + pub type c_ulong = u64; + } else { + // The minimal size of `long` in the C standard is 32 bits + pub type c_long = i32; + pub type c_ulong = u32; + } +} #[deprecated(since = "0.2.55", note = "Use i8 instead.")] pub type int8_t = i8; diff --git a/src/psp.rs b/src/psp.rs index ed9d4f4d5b415..73d4ae0173ece 100644 --- a/src/psp.rs +++ b/src/psp.rs @@ -6,16 +6,6 @@ use crate::prelude::*; -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; pub type intmax_t = i64; pub type uintmax_t = u64; @@ -25,9 +15,6 @@ pub type intptr_t = isize; pub type uintptr_t = usize; pub type ssize_t = isize; -pub type c_long = i64; -pub type c_ulong = u64; - pub type SceKernelVTimerHandler = unsafe extern "C" fn( uid: SceUid, arg1: *mut SceKernelSysClock, diff --git a/src/sgx.rs b/src/sgx.rs index 65eded63ad460..0caee5568e9e1 100644 --- a/src/sgx.rs +++ b/src/sgx.rs @@ -1,15 +1,5 @@ //! SGX C types definition -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; pub type intmax_t = i64; pub type uintmax_t = u64; @@ -19,8 +9,5 @@ pub type intptr_t = isize; pub type uintptr_t = usize; pub type ssize_t = isize; -pub type c_long = i64; -pub type c_ulong = u64; - pub const INT_MIN: c_int = -2147483648; pub const INT_MAX: c_int = 2147483647; diff --git a/src/solid/aarch64.rs b/src/solid/aarch64.rs index 630c7db54b55b..376783c8234ba 100644 --- a/src/solid/aarch64.rs +++ b/src/solid/aarch64.rs @@ -1,3 +1 @@ pub type wchar_t = u32; -pub type c_long = i64; -pub type c_ulong = u64; diff --git a/src/solid/arm.rs b/src/solid/arm.rs index 01fc7262f03e2..376783c8234ba 100644 --- a/src/solid/arm.rs +++ b/src/solid/arm.rs @@ -1,3 +1 @@ pub type wchar_t = u32; -pub type c_long = i32; -pub type c_ulong = u32; diff --git a/src/solid/mod.rs b/src/solid/mod.rs index 19c9b6aed344b..965c5bb1aa522 100644 --- a/src/solid/mod.rs +++ b/src/solid/mod.rs @@ -4,16 +4,6 @@ use crate::prelude::*; -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; pub type intmax_t = i64; pub type uintmax_t = u64; diff --git a/src/switch.rs b/src/switch.rs index 1875ea81ad1ec..d965ff7005fb2 100644 --- a/src/switch.rs +++ b/src/switch.rs @@ -1,15 +1,5 @@ //! Switch C type definitions -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; pub type intmax_t = i64; pub type uintmax_t = u64; @@ -20,8 +10,6 @@ pub type uintptr_t = usize; pub type ssize_t = isize; pub type off_t = i64; -pub type c_long = i64; -pub type c_ulong = u64; pub type wchar_t = u32; pub const INT_MIN: c_int = -2147483648; diff --git a/src/teeos/mod.rs b/src/teeos/mod.rs index 1ec2706cfdf76..9929e70e61e63 100644 --- a/src/teeos/mod.rs +++ b/src/teeos/mod.rs @@ -7,28 +7,8 @@ use crate::prelude::*; -pub type c_schar = i8; - -pub type c_uchar = u8; - -pub type c_short = i16; - -pub type c_ushort = u16; - -pub type c_int = i32; - -pub type c_uint = u32; - pub type c_bool = i32; -pub type c_float = f32; - -pub type c_double = f64; - -pub type c_longlong = i64; - -pub type c_ulonglong = u64; - pub type intmax_t = i64; pub type uintmax_t = u64; @@ -47,10 +27,6 @@ pub type pid_t = c_int; pub type wchar_t = u32; -pub type c_long = i64; - -pub type c_ulong = u64; - // long double in C means A float point value, which has 128bit length. // but some bit maybe not used, so the real length of long double could be 80(x86) or 128(power pc/IEEE) // this is different from f128(not stable and not included default) in Rust, so we use u128 for FFI(Rust to C). diff --git a/src/trusty.rs b/src/trusty.rs index db908d5c6d47a..7441aade0631e 100644 --- a/src/trusty.rs +++ b/src/trusty.rs @@ -4,26 +4,6 @@ pub type ssize_t = isize; pub type off_t = i64; -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; - -cfg_if! { - if #[cfg(target_pointer_width = "32")] { - pub type c_long = i32; - pub type c_ulong = u32; - } else if #[cfg(target_pointer_width = "64")] { - pub type c_long = i64; - pub type c_ulong = u64; - } -} - -pub type c_longlong = i64; -pub type c_ulonglong = u64; - pub type c_uint8_t = u8; pub type c_uint16_t = u16; pub type c_uint32_t = u32; @@ -37,9 +17,6 @@ pub type c_int64_t = i64; pub type intptr_t = isize; pub type uintptr_t = usize; -pub type c_float = f32; -pub type c_double = f64; - pub type time_t = c_long; pub type clockid_t = c_int; diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index 921774611e299..fcb9e6edfafa7 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -1,9 +1,6 @@ use crate::off_t; use crate::prelude::*; -pub type c_long = i64; -pub type c_ulong = u64; - s! { pub struct sigset_t { pub ss_set: [c_ulong; 4], diff --git a/src/unix/bsd/apple/b32/mod.rs b/src/unix/bsd/apple/b32/mod.rs index 70f8de79af7b6..4fec58f76be47 100644 --- a/src/unix/bsd/apple/b32/mod.rs +++ b/src/unix/bsd/apple/b32/mod.rs @@ -2,8 +2,6 @@ use crate::prelude::*; -pub type c_long = i32; -pub type c_ulong = u32; pub type boolean_t = c_int; s! { diff --git a/src/unix/bsd/apple/b64/mod.rs b/src/unix/bsd/apple/b64/mod.rs index b09bcb9dad332..98dccd3d49ddd 100644 --- a/src/unix/bsd/apple/b64/mod.rs +++ b/src/unix/bsd/apple/b64/mod.rs @@ -2,9 +2,6 @@ use crate::prelude::*; -pub type c_long = i64; -pub type c_ulong = u64; - s! { pub struct timeval32 { pub tv_sec: i32, diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 2897ad377f14d..cfaa93f76d88e 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -10,8 +10,6 @@ pub type nlink_t = u32; pub type blksize_t = i64; pub type clockid_t = c_ulong; -pub type c_long = i64; -pub type c_ulong = u64; pub type time_t = i64; pub type suseconds_t = i64; diff --git a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs index 0201008e485fb..ae93648ebd94f 100644 --- a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs @@ -1,7 +1,5 @@ use crate::prelude::*; -pub type c_long = i64; -pub type c_ulong = u64; pub type clock_t = i32; pub type wchar_t = u32; pub type time_t = i64; diff --git a/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/unix/bsd/freebsdlike/freebsd/arm.rs index 1624e655a0f4c..e29c9cef3981e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/arm.rs +++ b/src/unix/bsd/freebsdlike/freebsd/arm.rs @@ -1,7 +1,5 @@ use crate::prelude::*; -pub type c_long = i32; -pub type c_ulong = u32; pub type clock_t = u32; pub type wchar_t = u32; pub type time_t = i64; diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs index 6c8c973d570d1..9fde25d37b62f 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs @@ -1,7 +1,5 @@ use crate::prelude::*; -pub type c_long = i32; -pub type c_ulong = u32; pub type clock_t = u32; pub type wchar_t = i32; pub type time_t = i64; diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs index a812568b38e7d..e7df7f7737997 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs @@ -1,7 +1,5 @@ use crate::prelude::*; -pub type c_long = i64; -pub type c_ulong = u64; pub type clock_t = u32; pub type wchar_t = i32; pub type time_t = i64; diff --git a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs index 212413cbe22af..449a29f7d3df4 100644 --- a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs @@ -1,7 +1,5 @@ use crate::prelude::*; -pub type c_long = i64; -pub type c_ulong = u64; pub type clock_t = i32; pub type wchar_t = c_int; pub type time_t = i64; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index c5a922b455642..b196eafe06ab8 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -1,7 +1,5 @@ use crate::prelude::*; -pub type c_long = i32; -pub type c_ulong = u32; pub type clock_t = c_ulong; pub type wchar_t = i32; pub type time_t = i32; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index 199ea643fdab4..fde274bb15a69 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -1,7 +1,5 @@ use crate::prelude::*; -pub type c_long = i64; -pub type c_ulong = u64; pub type clock_t = i32; pub type wchar_t = i32; pub type time_t = i64; diff --git a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs index dbac03d2fb2ac..b511fc8457752 100644 --- a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs @@ -1,8 +1,6 @@ use crate::prelude::*; use crate::PT_FIRSTMACH; -pub type c_long = i64; -pub type c_ulong = u64; pub type greg_t = u64; pub type __cpu_simple_lock_nv_t = c_uchar; diff --git a/src/unix/bsd/netbsdlike/netbsd/arm.rs b/src/unix/bsd/netbsdlike/netbsd/arm.rs index 698eba93b31a5..b252862dfe650 100644 --- a/src/unix/bsd/netbsdlike/netbsd/arm.rs +++ b/src/unix/bsd/netbsdlike/netbsd/arm.rs @@ -1,8 +1,6 @@ use crate::prelude::*; use crate::PT_FIRSTMACH; -pub type c_long = i32; -pub type c_ulong = u32; pub type __cpu_simple_lock_nv_t = c_int; pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/mips.rs b/src/unix/bsd/netbsdlike/netbsd/mips.rs index 028deb0cfbf76..eabfe1bbcc1e8 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mips.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mips.rs @@ -1,8 +1,6 @@ use crate::prelude::*; use crate::PT_FIRSTMACH; -pub type c_long = i32; -pub type c_ulong = u32; pub type __cpu_simple_lock_nv_t = c_int; pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/powerpc.rs b/src/unix/bsd/netbsdlike/netbsd/powerpc.rs index 20eba6849a3ee..fc4cc3898e12a 100644 --- a/src/unix/bsd/netbsdlike/netbsd/powerpc.rs +++ b/src/unix/bsd/netbsdlike/netbsd/powerpc.rs @@ -1,8 +1,6 @@ use crate::prelude::*; use crate::PT_FIRSTMACH; -pub type c_long = i32; -pub type c_ulong = u32; pub type __cpu_simple_lock_nv_t = c_int; pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs index 0437b994ca276..550c3bd7bb4ea 100644 --- a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs @@ -2,8 +2,6 @@ use PT_FIRSTMACH; use crate::prelude::*; -pub type c_long = i64; -pub type c_ulong = u64; pub type __greg_t = u64; pub type __cpu_simple_lock_nv_t = c_int; pub type __gregset = [__greg_t; _NGREG]; diff --git a/src/unix/bsd/netbsdlike/netbsd/sparc64.rs b/src/unix/bsd/netbsdlike/netbsd/sparc64.rs index 3cfe535e7edfa..91622f7eea3fa 100644 --- a/src/unix/bsd/netbsdlike/netbsd/sparc64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/sparc64.rs @@ -1,7 +1,5 @@ use crate::prelude::*; -pub type c_long = i64; -pub type c_ulong = u64; pub type __cpu_simple_lock_nv_t = c_uchar; // should be pub(crate), but that requires Rust 1.18.0 diff --git a/src/unix/bsd/netbsdlike/netbsd/x86.rs b/src/unix/bsd/netbsdlike/netbsd/x86.rs index 04741f2dc1f4e..92e160d9bca0c 100644 --- a/src/unix/bsd/netbsdlike/netbsd/x86.rs +++ b/src/unix/bsd/netbsdlike/netbsd/x86.rs @@ -1,7 +1,5 @@ use crate::prelude::*; -pub type c_long = i32; -pub type c_ulong = u32; pub type __cpu_simple_lock_nv_t = c_uchar; pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/x86_64.rs b/src/unix/bsd/netbsdlike/netbsd/x86_64.rs index 52f3da771a157..5d31c0661e9c6 100644 --- a/src/unix/bsd/netbsdlike/netbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/x86_64.rs @@ -1,8 +1,6 @@ use crate::prelude::*; use crate::PT_FIRSTMACH; -pub type c_long = i64; -pub type c_ulong = u64; pub type c___greg_t = u64; pub type __cpu_simple_lock_nv_t = c_uchar; diff --git a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs index 4cd0b32549835..2c4b1df26ce83 100644 --- a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs @@ -1,7 +1,5 @@ use crate::prelude::*; -pub type c_long = i64; -pub type c_ulong = u64; pub type ucontext_t = sigcontext; s! { diff --git a/src/unix/bsd/netbsdlike/openbsd/arm.rs b/src/unix/bsd/netbsdlike/openbsd/arm.rs index 7fd17cf65a55f..ae91cde0a1739 100644 --- a/src/unix/bsd/netbsdlike/openbsd/arm.rs +++ b/src/unix/bsd/netbsdlike/openbsd/arm.rs @@ -1,8 +1,5 @@ use crate::prelude::*; -pub type c_long = i32; -pub type c_ulong = u32; - pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/mips64.rs b/src/unix/bsd/netbsdlike/openbsd/mips64.rs index 17ebae2889f17..162ceda265df9 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mips64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mips64.rs @@ -1,6 +1,3 @@ -pub type c_long = i64; -pub type c_ulong = u64; - #[doc(hidden)] pub const _ALIGNBYTES: usize = 7; diff --git a/src/unix/bsd/netbsdlike/openbsd/powerpc.rs b/src/unix/bsd/netbsdlike/openbsd/powerpc.rs index 7fd17cf65a55f..ae91cde0a1739 100644 --- a/src/unix/bsd/netbsdlike/openbsd/powerpc.rs +++ b/src/unix/bsd/netbsdlike/openbsd/powerpc.rs @@ -1,8 +1,5 @@ use crate::prelude::*; -pub type c_long = i32; -pub type c_ulong = u32; - pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs b/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs index 1a3b452091ce0..1c3d8df3b7956 100644 --- a/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs @@ -1,8 +1,5 @@ use crate::prelude::*; -pub type c_long = i64; -pub type c_ulong = u64; - pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/riscv64.rs b/src/unix/bsd/netbsdlike/openbsd/riscv64.rs index d37e9a67e6888..a0865406b80f3 100644 --- a/src/unix/bsd/netbsdlike/openbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/riscv64.rs @@ -1,7 +1,5 @@ use crate::prelude::*; -pub type c_long = i64; -pub type c_ulong = u64; pub type ucontext_t = sigcontext; s! { diff --git a/src/unix/bsd/netbsdlike/openbsd/sparc64.rs b/src/unix/bsd/netbsdlike/openbsd/sparc64.rs index f8e165a7de299..88481f4f014e8 100644 --- a/src/unix/bsd/netbsdlike/openbsd/sparc64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/sparc64.rs @@ -1,6 +1,3 @@ -pub type c_long = i64; -pub type c_ulong = u64; - #[doc(hidden)] pub const _ALIGNBYTES: usize = 0xf; diff --git a/src/unix/bsd/netbsdlike/openbsd/x86.rs b/src/unix/bsd/netbsdlike/openbsd/x86.rs index cac4ea7f8e94c..d2cf7832edd7f 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86.rs @@ -1,8 +1,5 @@ use crate::prelude::*; -pub type c_long = i32; -pub type c_ulong = u32; - pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs index 683046836320d..db9114e27cb60 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs @@ -1,8 +1,6 @@ use crate::prelude::*; use crate::PT_FIRSTMACH; -pub type c_long = i64; -pub type c_ulong = u64; pub type ucontext_t = sigcontext; s! { diff --git a/src/unix/haiku/b32.rs b/src/unix/haiku/b32.rs index c1135c834ef8b..1aa27e615ca4e 100644 --- a/src/unix/haiku/b32.rs +++ b/src/unix/haiku/b32.rs @@ -1,5 +1,3 @@ -pub type c_long = i32; -pub type c_ulong = u32; pub type time_t = i32; pub type Elf_Addr = crate::Elf32_Addr; diff --git a/src/unix/haiku/b64.rs b/src/unix/haiku/b64.rs index 96617042cf2ab..3355241fdb797 100644 --- a/src/unix/haiku/b64.rs +++ b/src/unix/haiku/b64.rs @@ -1,5 +1,3 @@ -pub type c_ulong = u64; -pub type c_long = i64; pub type time_t = i64; pub type Elf_Addr = crate::Elf64_Addr; diff --git a/src/unix/hurd/b32.rs b/src/unix/hurd/b32.rs index 5223d549dd025..e706789006dba 100644 --- a/src/unix/hurd/b32.rs +++ b/src/unix/hurd/b32.rs @@ -1,8 +1,5 @@ use crate::prelude::*; -pub type c_long = i32; -pub type c_ulong = u32; - pub type __int64_t = c_longlong; pub type __uint64_t = c_ulonglong; diff --git a/src/unix/hurd/b64.rs b/src/unix/hurd/b64.rs index 1954c27f88563..a44428c575adf 100644 --- a/src/unix/hurd/b64.rs +++ b/src/unix/hurd/b64.rs @@ -1,8 +1,5 @@ use crate::prelude::*; -pub type c_long = i64; -pub type c_ulong = u64; - pub type __int64_t = c_long; pub type __uint64_t = c_ulong; diff --git a/src/unix/linux_like/android/b32/mod.rs b/src/unix/linux_like/android/b32/mod.rs index 3e3485757ce98..42be94d425c72 100644 --- a/src/unix/linux_like/android/b32/mod.rs +++ b/src/unix/linux_like/android/b32/mod.rs @@ -3,8 +3,6 @@ use crate::prelude::*; // The following definitions are correct for arm and i686, // but may be wrong for mips -pub type c_long = i32; -pub type c_ulong = u32; pub type mode_t = u16; pub type off64_t = c_longlong; pub type sigset_t = c_ulong; diff --git a/src/unix/linux_like/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs index 0da702b45d18e..cc407e113f67a 100644 --- a/src/unix/linux_like/android/b64/mod.rs +++ b/src/unix/linux_like/android/b64/mod.rs @@ -3,8 +3,6 @@ use crate::prelude::*; // The following definitions are correct for aarch64 and x86_64, // but may be wrong for mips64 -pub type c_long = i64; -pub type c_ulong = u64; pub type mode_t = u32; pub type off64_t = i64; pub type socklen_t = u32; diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index c1c5108c17eb4..f22843e54073f 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -27,8 +27,6 @@ pub type blksize_t = c_long; pub type fsblkcnt_t = u32; pub type fsfilcnt_t = u32; pub type rlim_t = u64; -pub type c_long = i32; -pub type c_ulong = u32; pub type nlink_t = u32; pub type ino64_t = crate::ino_t; diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index adb36cc169fef..2cdd1320bf3e3 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -3,8 +3,6 @@ use crate::prelude::*; use crate::pthread_mutex_t; -pub type c_long = i32; -pub type c_ulong = u32; pub type clock_t = i32; pub type shmatt_t = c_ulong; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs index cec3b7ee28b5a..37e751e8db7da 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs @@ -1,8 +1,5 @@ use crate::pthread_mutex_t; -pub type c_long = i32; -pub type c_ulong = u32; - pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 32; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs index 4b09e476d370c..80c22d40eeedc 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs @@ -1,8 +1,5 @@ use crate::pthread_mutex_t; -pub type c_long = i64; -pub type c_ulong = u64; - pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 8; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 48; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 8; diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs index e8f045ba5f83b..6162565da17ca 100644 --- a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs @@ -1,8 +1,6 @@ use crate::prelude::*; use crate::{off64_t, off_t, pthread_mutex_t}; -pub type c_long = i64; -pub type c_ulong = u64; pub type wchar_t = i32; pub type blksize_t = i32; diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index 1d13bdb945d6e..375ea40cb6a1d 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -2,8 +2,6 @@ use crate::prelude::*; use crate::{off64_t, off_t, pthread_mutex_t}; pub type blksize_t = i64; -pub type c_long = i64; -pub type c_ulong = u64; pub type nlink_t = u64; pub type suseconds_t = i64; pub type wchar_t = i32; diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index 3eda86440d40c..e537dbcd0a86a 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -3,8 +3,6 @@ use crate::prelude::*; use crate::{off64_t, off_t, pthread_mutex_t}; -pub type c_long = i64; -pub type c_ulong = u64; pub type wchar_t = i32; pub type nlink_t = u64; pub type blksize_t = i64; diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index 3dd9369457353..578057ce58ed2 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -3,8 +3,6 @@ use crate::prelude::*; use crate::{off64_t, off_t}; -pub type c_long = i64; -pub type c_ulong = u64; pub type wchar_t = c_int; pub type nlink_t = c_uint; diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 7a48de58c967b..c08e12108b918 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -4,8 +4,6 @@ use crate::prelude::*; use crate::{off64_t, off_t, pthread_mutex_t}; pub type blksize_t = i64; -pub type c_long = i64; -pub type c_ulong = u64; pub type nlink_t = u64; pub type suseconds_t = i64; pub type wchar_t = i32; diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs index 829686ff16ee5..f77606e10cbf5 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -3,8 +3,6 @@ use crate::prelude::*; use crate::{off64_t, off_t, pthread_mutex_t}; -pub type c_long = i64; -pub type c_ulong = u64; pub type wchar_t = i32; pub type nlink_t = u32; pub type blksize_t = i64; diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs index eb9563e53e2c0..27b96a60aabd8 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs @@ -1,9 +1,6 @@ use crate::prelude::*; use crate::pthread_mutex_t; -pub type c_long = i64; -pub type c_ulong = u64; - s! { pub struct statvfs { pub f_bsize: c_ulong, diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs index eafb5246c9edc..1a1cd34be035f 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs @@ -1,9 +1,6 @@ use crate::prelude::*; use crate::pthread_mutex_t; -pub type c_long = i32; -pub type c_ulong = u32; - s! { pub struct statvfs { pub f_bsize: c_ulong, diff --git a/src/unix/linux_like/linux/musl/b32/mod.rs b/src/unix/linux_like/linux/musl/b32/mod.rs index 4a62ef1906ffb..00b3d7705090f 100644 --- a/src/unix/linux_like/linux/musl/b32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mod.rs @@ -1,7 +1,5 @@ use crate::prelude::*; -pub type c_long = i32; -pub type c_ulong = u32; pub type nlink_t = u32; pub type blksize_t = c_long; pub type __u64 = c_ulonglong; diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index 50d862f570426..b6e7de6591809 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -1,7 +1,5 @@ use crate::prelude::*; -pub type c_long = i64; -pub type c_ulong = u64; pub type regoff_t = c_long; s! { diff --git a/src/unix/linux_like/linux/uclibc/arm/mod.rs b/src/unix/linux_like/linux/uclibc/arm/mod.rs index c237b7e160bbf..000d9e33a734a 100644 --- a/src/unix/linux_like/linux/uclibc/arm/mod.rs +++ b/src/unix/linux_like/linux/uclibc/arm/mod.rs @@ -2,8 +2,6 @@ use crate::off64_t; use crate::prelude::*; pub type wchar_t = c_uint; -pub type c_long = i32; -pub type c_ulong = u32; pub type time_t = c_long; pub type clock_t = c_long; diff --git a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs index a78daea80b62c..783b879cbf8dd 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs @@ -1,8 +1,6 @@ use crate::off64_t; use crate::prelude::*; -pub type c_long = i32; -pub type c_ulong = u32; pub type clock_t = i32; pub type time_t = i32; pub type suseconds_t = i32; diff --git a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs index d0a0f345546b6..2e60f0d03fff9 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs @@ -3,8 +3,6 @@ use crate::prelude::*; pub type blkcnt_t = i64; pub type blksize_t = i64; -pub type c_long = i64; -pub type c_ulong = u64; pub type fsblkcnt_t = c_ulong; pub type fsfilcnt_t = c_ulong; pub type ino_t = u64; diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index 016b6580c5754..684eef20473db 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -6,8 +6,6 @@ use crate::prelude::*; pub type blkcnt_t = i64; pub type blksize_t = i64; pub type clock_t = i64; -pub type c_long = i64; -pub type c_ulong = u64; pub type fsblkcnt_t = c_ulong; pub type fsfilcnt_t = c_ulong; pub type fsword_t = c_long; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 8a0aa3266759b..65c426c181aef 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -5,16 +5,6 @@ use crate::prelude::*; -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; pub type intmax_t = i64; pub type uintmax_t = u64; diff --git a/src/unix/newlib/aarch64/mod.rs b/src/unix/newlib/aarch64/mod.rs index f0ab09443da22..e4640580e2478 100644 --- a/src/unix/newlib/aarch64/mod.rs +++ b/src/unix/newlib/aarch64/mod.rs @@ -3,9 +3,6 @@ use crate::prelude::*; pub type clock_t = c_long; pub type wchar_t = u32; -pub type c_long = i64; -pub type c_ulong = u64; - s! { pub struct sockaddr { pub sa_len: u8, diff --git a/src/unix/newlib/arm/mod.rs b/src/unix/newlib/arm/mod.rs index ae89440f237db..aea4ed764b03c 100644 --- a/src/unix/newlib/arm/mod.rs +++ b/src/unix/newlib/arm/mod.rs @@ -3,9 +3,6 @@ use crate::prelude::*; pub type clock_t = c_long; pub type wchar_t = u32; -pub type c_long = i32; -pub type c_ulong = u32; - s! { pub struct sockaddr { pub sa_family: crate::sa_family_t, diff --git a/src/unix/newlib/espidf/mod.rs b/src/unix/newlib/espidf/mod.rs index 0bb8e3ae9c766..57a033fcaf263 100644 --- a/src/unix/newlib/espidf/mod.rs +++ b/src/unix/newlib/espidf/mod.rs @@ -3,9 +3,6 @@ use crate::prelude::*; pub type clock_t = c_ulong; pub type wchar_t = u32; -pub type c_long = i32; -pub type c_ulong = u32; - s! { pub struct cmsghdr { pub cmsg_len: crate::socklen_t, diff --git a/src/unix/newlib/horizon/mod.rs b/src/unix/newlib/horizon/mod.rs index 05a1b284e295d..e98a4c53ccfff 100644 --- a/src/unix/newlib/horizon/mod.rs +++ b/src/unix/newlib/horizon/mod.rs @@ -3,9 +3,6 @@ use crate::off_t; use crate::prelude::*; -pub type c_long = i32; -pub type c_ulong = u32; - pub type wchar_t = c_uint; pub type u_register_t = c_uint; diff --git a/src/unix/newlib/powerpc/mod.rs b/src/unix/newlib/powerpc/mod.rs index b53c832a71aed..c4d4a2ed07c5e 100644 --- a/src/unix/newlib/powerpc/mod.rs +++ b/src/unix/newlib/powerpc/mod.rs @@ -3,9 +3,6 @@ use crate::prelude::*; pub type clock_t = c_ulong; pub type wchar_t = c_int; -pub type c_long = i32; -pub type c_ulong = u32; - pub use crate::unix::newlib::generic::{dirent, sigset_t, stat}; // the newlib shipped with devkitPPC does not support the following components: diff --git a/src/unix/newlib/vita/mod.rs b/src/unix/newlib/vita/mod.rs index 1f531cb4d35ff..822b61989d479 100644 --- a/src/unix/newlib/vita/mod.rs +++ b/src/unix/newlib/vita/mod.rs @@ -5,9 +5,6 @@ pub type clock_t = c_long; pub type wchar_t = u32; -pub type c_long = i32; -pub type c_ulong = u32; - pub type sigset_t = c_ulong; s! { diff --git a/src/unix/nto/aarch64.rs b/src/unix/nto/aarch64.rs index acc36bbf75363..559ab6e49a45d 100644 --- a/src/unix/nto/aarch64.rs +++ b/src/unix/nto/aarch64.rs @@ -1,8 +1,6 @@ use crate::prelude::*; pub type wchar_t = u32; -pub type c_long = i64; -pub type c_ulong = u64; pub type time_t = i64; s! { diff --git a/src/unix/nto/x86_64.rs b/src/unix/nto/x86_64.rs index 6cd24e187c443..521b5d4ab7879 100644 --- a/src/unix/nto/x86_64.rs +++ b/src/unix/nto/x86_64.rs @@ -1,8 +1,6 @@ use crate::prelude::*; pub type wchar_t = u32; -pub type c_long = i64; -pub type c_ulong = u64; pub type time_t = i64; s! { diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index bf6efdd7ae362..f77b104493670 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -5,8 +5,6 @@ pub type nlink_t = u16; pub type ino_t = u16; pub type blkcnt_t = u64; pub type blksize_t = i16; -pub type c_long = isize; -pub type c_ulong = usize; pub type cc_t = u8; pub type clock_t = i64; pub type dev_t = i32; diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 2f13157fff64a..c453f83efce60 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -2,20 +2,6 @@ use crate::prelude::*; pub type wchar_t = i32; -cfg_if! { - if #[cfg(target_pointer_width = "32")] { - pub type c_long = i32; - pub type c_ulong = u32; - } -} - -cfg_if! { - if #[cfg(target_pointer_width = "64")] { - pub type c_long = i64; - pub type c_ulong = u64; - } -} - pub type blkcnt_t = c_ulong; pub type blksize_t = c_long; pub type clock_t = c_long; diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 25913377e4a17..3a335357d6b6b 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -2,8 +2,6 @@ use core::mem::size_of; use crate::prelude::*; -pub type c_long = i64; -pub type c_ulong = u64; pub type caddr_t = *mut c_char; pub type clockid_t = c_int; diff --git a/src/vxworks/aarch64.rs b/src/vxworks/aarch64.rs index 630c7db54b55b..376783c8234ba 100644 --- a/src/vxworks/aarch64.rs +++ b/src/vxworks/aarch64.rs @@ -1,3 +1 @@ pub type wchar_t = u32; -pub type c_long = i64; -pub type c_ulong = u64; diff --git a/src/vxworks/arm.rs b/src/vxworks/arm.rs index 01fc7262f03e2..376783c8234ba 100644 --- a/src/vxworks/arm.rs +++ b/src/vxworks/arm.rs @@ -1,3 +1 @@ pub type wchar_t = u32; -pub type c_long = i32; -pub type c_ulong = u32; diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index e7ec43ab5e430..2b910616d794c 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -14,16 +14,6 @@ impl Clone for DIR { } } -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; pub type intmax_t = i64; pub type uintmax_t = u64; diff --git a/src/vxworks/powerpc.rs b/src/vxworks/powerpc.rs index 01fc7262f03e2..376783c8234ba 100644 --- a/src/vxworks/powerpc.rs +++ b/src/vxworks/powerpc.rs @@ -1,3 +1 @@ pub type wchar_t = u32; -pub type c_long = i32; -pub type c_ulong = u32; diff --git a/src/vxworks/powerpc64.rs b/src/vxworks/powerpc64.rs index 630c7db54b55b..376783c8234ba 100644 --- a/src/vxworks/powerpc64.rs +++ b/src/vxworks/powerpc64.rs @@ -1,3 +1 @@ pub type wchar_t = u32; -pub type c_long = i64; -pub type c_ulong = u64; diff --git a/src/vxworks/riscv32.rs b/src/vxworks/riscv32.rs index 741e312afce17..f562626f7fb2b 100644 --- a/src/vxworks/riscv32.rs +++ b/src/vxworks/riscv32.rs @@ -1,3 +1 @@ pub type wchar_t = i32; -pub type c_long = i32; -pub type c_ulong = u32; diff --git a/src/vxworks/riscv64.rs b/src/vxworks/riscv64.rs index 7bacd5c5abec4..f562626f7fb2b 100644 --- a/src/vxworks/riscv64.rs +++ b/src/vxworks/riscv64.rs @@ -1,3 +1 @@ pub type wchar_t = i32; -pub type c_long = i64; -pub type c_ulong = u64; diff --git a/src/vxworks/x86.rs b/src/vxworks/x86.rs index 741e312afce17..f562626f7fb2b 100644 --- a/src/vxworks/x86.rs +++ b/src/vxworks/x86.rs @@ -1,3 +1 @@ pub type wchar_t = i32; -pub type c_long = i32; -pub type c_ulong = u32; diff --git a/src/vxworks/x86_64.rs b/src/vxworks/x86_64.rs index 7bacd5c5abec4..f562626f7fb2b 100644 --- a/src/vxworks/x86_64.rs +++ b/src/vxworks/x86_64.rs @@ -1,3 +1 @@ pub type wchar_t = i32; -pub type c_long = i64; -pub type c_ulong = u64; diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index f2b774ea51549..035ff8958ab20 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -7,16 +7,6 @@ use core::iter::Iterator; use crate::prelude::*; -pub type c_uchar = u8; -pub type c_schar = i8; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_long = i32; -pub type c_ulong = u32; -pub type c_longlong = i64; -pub type c_ulonglong = u64; pub type intmax_t = i64; pub type uintmax_t = u64; pub type size_t = usize; @@ -28,8 +18,6 @@ pub type off_t = i64; pub type pid_t = i32; pub type clock_t = c_longlong; pub type time_t = c_longlong; -pub type c_double = f64; -pub type c_float = f32; pub type ino_t = u64; pub type sigset_t = c_uchar; pub type suseconds_t = c_longlong; diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 632c33f461493..06cab0e5037a3 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -2,16 +2,6 @@ use crate::prelude::*; -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; pub type intmax_t = i64; pub type uintmax_t = u64; @@ -22,8 +12,6 @@ pub type uintptr_t = usize; pub type ssize_t = isize; pub type sighandler_t = usize; -pub type c_long = i32; -pub type c_ulong = u32; pub type wchar_t = u16; pub type clock_t = i32; diff --git a/src/xous.rs b/src/xous.rs index 468865c8d4131..35350a723c8e9 100644 --- a/src/xous.rs +++ b/src/xous.rs @@ -1,15 +1,5 @@ //! Xous C type definitions -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; pub type intmax_t = i64; pub type uintmax_t = u64; @@ -20,8 +10,6 @@ pub type uintptr_t = usize; pub type ssize_t = isize; pub type off_t = i64; -pub type c_long = i64; -pub type c_ulong = u64; pub type wchar_t = u32; pub const INT_MIN: c_int = -2147483648; From 9385f3ac7e0fa99300fa6ff17ccc732001b637c6 Mon Sep 17 00:00:00 2001 From: Aphek Date: Thu, 6 Feb 2025 00:40:07 -0300 Subject: [PATCH 0481/1228] Add missing preludes (backport ) (cherry picked from commit b54607f8eb8c2f7b1351d2374bc38300472761a1) --- src/sgx.rs | 2 ++ src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs | 1 + src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs | 1 + 3 files changed, 4 insertions(+) diff --git a/src/sgx.rs b/src/sgx.rs index 0caee5568e9e1..9cf9c6d3b41b8 100644 --- a/src/sgx.rs +++ b/src/sgx.rs @@ -1,5 +1,7 @@ //! SGX C types definition +use crate::prelude::*; + pub type intmax_t = i64; pub type uintmax_t = u64; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs index 37e751e8db7da..f808ff31f8cca 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs @@ -1,3 +1,4 @@ +use crate::prelude::*; use crate::pthread_mutex_t; pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs index 80c22d40eeedc..960e5127806b3 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs @@ -1,3 +1,4 @@ +use crate::prelude::*; use crate::pthread_mutex_t; pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 8; From 3e2fb1752b364147baf0532d00e71f5e29514b03 Mon Sep 17 00:00:00 2001 From: Aphek Date: Tue, 4 Feb 2025 23:42:33 -0300 Subject: [PATCH 0482/1228] fix: Revert vita's c_char to i8 (backport ) (cherry picked from commit e5a669b526efd0db5809eb56b6dee3736d7a5c58) --- src/primitives.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/primitives.rs b/src/primitives.rs index 30d9b98ff1bc0..ed71e843057b1 100644 --- a/src/primitives.rs +++ b/src/primitives.rs @@ -21,6 +21,7 @@ cfg_if! { if #[cfg(all( not(windows), not(target_vendor = "apple"), + not(target_os = "vita"), any( target_arch = "aarch64", target_arch = "arm", From 11079fd0eb651261c330ac0c72860dc3b146fc62 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Wed, 20 Nov 2024 11:07:01 +0100 Subject: [PATCH 0483/1228] build.rs: Add linux_time_bits64 to ALLOWED_CFGS linux_time_bits64 will be used to match __USE_TIME_BITS64 in the uapi headers. The environment variable RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64 can be used by callers to enable the linux_time_bits64 config. (backport ) (cherry picked from commit 5453fe66f14aabb329ad508e99b114bcff51b0f0) --- build.rs | 7 +++++++ ci/verify-build.sh | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/build.rs b/build.rs index 5f401f9f1072e..2487f89e71563 100644 --- a/build.rs +++ b/build.rs @@ -18,6 +18,8 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ "libc_deny_warnings", "libc_thread_local", "libc_ctest", + // Corresponds to `__USE_TIME_BITS64` in UAPI + "linux_time_bits64", ]; // Extra values to allow for check-cfg. @@ -43,6 +45,7 @@ fn main() { let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); let libc_ci = env::var("LIBC_CI").is_ok(); let libc_check_cfg = env::var("LIBC_CHECK_CFG").is_ok() || rustc_minor_ver >= 80; + let linux_time_bits64 = env::var("RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64").is_ok(); // 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. @@ -79,6 +82,10 @@ fn main() { _ => (), } + if linux_time_bits64 { + set_cfg("linux_time_bits64"); + } + // On CI: deny all warnings if libc_ci { set_cfg("libc_deny_warnings"); diff --git a/ci/verify-build.sh b/ci/verify-build.sh index e61fc69188c59..ccdc223263641 100755 --- a/ci/verify-build.sh +++ b/ci/verify-build.sh @@ -72,6 +72,11 @@ test_target() { $cmd --features const-extern-fn $cmd --features extra_traits + if [ "$os" = "linux" ]; then + # Test with the equivalent of __USE_TIME_BITS64 + RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64=1 $cmd + fi + # Test again without default features, i.e. without "std" $cmd --no-default-features $cmd --no-default-features --features extra_traits From 4134091ef8b27aa58c3371a5a78adfb6b7c89615 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Mon, 20 Mar 2023 14:21:04 +0100 Subject: [PATCH 0484/1228] linux: Set SO_TIMESTAMP* and SO_RCVTIMEO and SO_SNDTIMEO The actual values may be different on 32bit archs with and without __USE_TIME_BITS64 (backport ) (cherry picked from commit 616d546afb8c73de575450230c5da69ba91f7c3b) --- libc-test/semver/TODO-linux.txt | 1 - libc-test/semver/linux-loongarch64.txt | 1 - libc-test/semver/linux-powerpc64.txt | 1 - libc-test/semver/linux-powerpc64le.txt | 1 - libc-test/semver/linux-riscv64gc.txt | 1 - libc-test/semver/linux.txt | 1 + src/unix/linux_like/linux/arch/generic/mod.rs | 35 +++++++++++----- src/unix/linux_like/linux/arch/mips/mod.rs | 40 ++++++++++++------- src/unix/linux_like/linux/arch/powerpc/mod.rs | 31 ++++++++++---- 9 files changed, 74 insertions(+), 38 deletions(-) diff --git a/libc-test/semver/TODO-linux.txt b/libc-test/semver/TODO-linux.txt index 8427cf1ea12c8..98568ab0e9745 100644 --- a/libc-test/semver/TODO-linux.txt +++ b/libc-test/semver/TODO-linux.txt @@ -54,7 +54,6 @@ SO_SELECT_ERR_QUEUE SO_SNDTIMEO_NEW SO_STYLE SO_TIMESTAMPING_NEW -SO_TIMESTAMPNS SO_TIMESTAMPNS_NEW SO_TIMESTAMP_NEW SO_TXTIME diff --git a/libc-test/semver/linux-loongarch64.txt b/libc-test/semver/linux-loongarch64.txt index ebcd4bf93356f..1302cb68b2c8a 100644 --- a/libc-test/semver/linux-loongarch64.txt +++ b/libc-test/semver/linux-loongarch64.txt @@ -87,7 +87,6 @@ SO_SECURITY_AUTHENTICATION SO_SECURITY_ENCRYPTION_NETWORK SO_SECURITY_ENCRYPTION_TRANSPORT SO_SELECT_ERR_QUEUE -SO_TIMESTAMPNS SO_WIFI_STATUS SYS_accept SYS_msgctl diff --git a/libc-test/semver/linux-powerpc64.txt b/libc-test/semver/linux-powerpc64.txt index 77718d9ce47f0..604add92838db 100644 --- a/libc-test/semver/linux-powerpc64.txt +++ b/libc-test/semver/linux-powerpc64.txt @@ -48,7 +48,6 @@ SO_SECURITY_AUTHENTICATION SO_SECURITY_ENCRYPTION_NETWORK SO_SECURITY_ENCRYPTION_TRANSPORT SO_SELECT_ERR_QUEUE -SO_TIMESTAMPNS SO_WIFI_STATUS SYS__llseek SYS__newselect diff --git a/libc-test/semver/linux-powerpc64le.txt b/libc-test/semver/linux-powerpc64le.txt index 99be508e6bd59..b4e5c4159a3d8 100644 --- a/libc-test/semver/linux-powerpc64le.txt +++ b/libc-test/semver/linux-powerpc64le.txt @@ -46,7 +46,6 @@ SO_SECURITY_AUTHENTICATION SO_SECURITY_ENCRYPTION_NETWORK SO_SECURITY_ENCRYPTION_TRANSPORT SO_SELECT_ERR_QUEUE -SO_TIMESTAMPNS SO_WIFI_STATUS SYS__llseek SYS__newselect diff --git a/libc-test/semver/linux-riscv64gc.txt b/libc-test/semver/linux-riscv64gc.txt index 13f5b85196790..09519e9dfbe7e 100644 --- a/libc-test/semver/linux-riscv64gc.txt +++ b/libc-test/semver/linux-riscv64gc.txt @@ -51,7 +51,6 @@ SO_SECURITY_AUTHENTICATION SO_SECURITY_ENCRYPTION_NETWORK SO_SECURITY_ENCRYPTION_TRANSPORT SO_SELECT_ERR_QUEUE -SO_TIMESTAMPNS SO_WIFI_STATUS SYS_accept SYS_fadvise64 diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index d2193b870516f..3ec327aec6337 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2964,6 +2964,7 @@ SO_RXQ_OVFL SO_SNDBUFFORCE SO_TIMESTAMP SO_TIMESTAMPING +SO_TIMESTAMPNS SPLICE_F_GIFT SPLICE_F_MORE SPLICE_F_MOVE diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index 10953fe789df3..ea38a20d67e40 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -40,10 +40,8 @@ pub const SO_PASSCRED: c_int = 16; pub const SO_PEERCRED: c_int = 17; pub const SO_RCVLOWAT: c_int = 18; pub const SO_SNDLOWAT: c_int = 19; -pub const SO_RCVTIMEO: c_int = 20; -pub const SO_SNDTIMEO: c_int = 21; -// pub const SO_RCVTIMEO_OLD: c_int = 20; -// pub const SO_SNDTIMEO_OLD: c_int = 21; +const SO_RCVTIMEO_OLD: c_int = 20; +const SO_SNDTIMEO_OLD: c_int = 21; pub const SO_SECURITY_AUTHENTICATION: c_int = 22; pub const SO_SECURITY_ENCRYPTION_TRANSPORT: c_int = 23; pub const SO_SECURITY_ENCRYPTION_NETWORK: c_int = 24; @@ -52,18 +50,35 @@ pub const SO_ATTACH_FILTER: c_int = 26; pub const SO_DETACH_FILTER: c_int = 27; pub const SO_GET_FILTER: c_int = SO_ATTACH_FILTER; pub const SO_PEERNAME: c_int = 28; -pub const SO_TIMESTAMP: c_int = 29; -// pub const SO_TIMESTAMP_OLD: c_int = 29; +const SO_TIMESTAMP_OLD: c_int = 29; +const SO_TIMESTAMPNS_OLD: c_int = 35; +const SO_TIMESTAMPING_OLD: c_int = 37; + +cfg_if! { + if #[cfg(all( + linux_time_bits64, + any(target_arch = "arm", target_arch = "x86") + ))] { + pub const SO_TIMESTAMP: c_int = SO_TIMESTAMP_NEW; + pub const SO_TIMESTAMPNS: c_int = SO_TIMESTAMPNS_NEW; + pub const SO_TIMESTAMPING: c_int = SO_TIMESTAMPING_NEW; + pub const SO_RCVTIMEO: c_int = SO_RCVTIMEO_NEW; + pub const SO_SNDTIMEO: c_int = SO_SNDTIMEO_NEW; + } else { + pub const SO_TIMESTAMP: c_int = SO_TIMESTAMP_OLD; + pub const SO_TIMESTAMPNS: c_int = SO_TIMESTAMPNS_OLD; + pub const SO_TIMESTAMPING: c_int = SO_TIMESTAMPING_OLD; + pub const SO_RCVTIMEO: c_int = SO_RCVTIMEO_OLD; + pub const SO_SNDTIMEO: c_int = SO_SNDTIMEO_OLD; + } +} + pub const SO_ACCEPTCONN: c_int = 30; pub const SO_PEERSEC: c_int = 31; pub const SO_SNDBUFFORCE: c_int = 32; pub const SO_RCVBUFFORCE: c_int = 33; pub const SO_PASSSEC: c_int = 34; -pub const SO_TIMESTAMPNS: c_int = 35; -// pub const SO_TIMESTAMPNS_OLD: c_int = 35; pub const SO_MARK: c_int = 36; -pub const SO_TIMESTAMPING: c_int = 37; -// pub const SO_TIMESTAMPING_OLD: c_int = 37; pub const SO_PROTOCOL: c_int = 38; pub const SO_DOMAIN: c_int = 39; pub const SO_RXQ_OVFL: c_int = 40; diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index 950ad5f118dfb..2fcadc8004ea7 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -36,10 +36,17 @@ pub const SO_RCVLOWAT: c_int = 0x1004; // NOTE: These definitions are now being renamed with _OLD postfix, // but CI haven't support them yet. // Some related consts could be found in b32.rs and b64.rs -pub const SO_SNDTIMEO: c_int = 0x1005; -pub const SO_RCVTIMEO: c_int = 0x1006; -// pub const SO_SNDTIMEO_OLD: c_int = 0x1005; -// pub const SO_RCVTIMEO_OLD: c_int = 0x1006; +const SO_SNDTIMEO_OLD: c_int = 0x1005; +const SO_RCVTIMEO_OLD: c_int = 0x1006; +cfg_if! { + if #[cfg(linux_time_bits64)] { + pub const SO_SNDTIMEO: c_int = SO_SNDTIMEO_NEW; + pub const SO_RCVTIMEO: c_int = SO_RCVTIMEO_NEW; + } else { + pub const SO_SNDTIMEO: c_int = SO_SNDTIMEO_OLD; + pub const SO_RCVTIMEO: c_int = SO_RCVTIMEO_OLD; + } +} pub const SO_ACCEPTCONN: c_int = 0x1009; pub const SO_PROTOCOL: c_int = 0x1028; pub const SO_DOMAIN: c_int = 0x1029; @@ -91,17 +98,20 @@ pub const SO_BINDTOIFINDEX: c_int = 62; // NOTE: These definitions are now being renamed with _OLD postfix, // but CI haven't support them yet. // Some related consts could be found in b32.rs and b64.rs -pub const SO_TIMESTAMP: c_int = 29; -pub const SO_TIMESTAMPNS: c_int = 35; -pub const SO_TIMESTAMPING: c_int = 37; -// pub const SO_TIMESTAMP_OLD: c_int = 29; -// pub const SO_TIMESTAMPNS_OLD: c_int = 35; -// pub const SO_TIMESTAMPING_OLD: c_int = 37; -// pub const SO_TIMESTAMP_NEW: c_int = 63; -// pub const SO_TIMESTAMPNS_NEW: c_int = 64; -// pub const SO_TIMESTAMPING_NEW: c_int = 65; -// pub const SO_RCVTIMEO_NEW: c_int = 66; -// pub const SO_SNDTIMEO_NEW: c_int = 67; +const SO_TIMESTAMP_OLD: c_int = 29; +const SO_TIMESTAMPNS_OLD: c_int = 35; +const SO_TIMESTAMPING_OLD: c_int = 37; +cfg_if! { + if #[cfg(linux_time_bits64)] { + pub const SO_TIMESTAMP: c_int = SO_TIMESTAMP_NEW; + pub const SO_TIMESTAMPNS: c_int = SO_TIMESTAMPNS_NEW; + pub const SO_TIMESTAMPING: c_int = SO_TIMESTAMPING_NEW; + } else { + pub const SO_TIMESTAMP: c_int = SO_TIMESTAMP_OLD; + pub const SO_TIMESTAMPNS: c_int = SO_TIMESTAMPNS_OLD; + pub const SO_TIMESTAMPING: c_int = SO_TIMESTAMPING_OLD; + } +} // pub const SO_DETACH_REUSEPORT_BPF: c_int = 68; // pub const SO_PREFER_BUSY_POLL: c_int = 69; // pub const SO_BUSY_POLL_BUDGET: c_int = 70; diff --git a/src/unix/linux_like/linux/arch/powerpc/mod.rs b/src/unix/linux_like/linux/arch/powerpc/mod.rs index de39df0d8323a..2e8d3e3675393 100644 --- a/src/unix/linux_like/linux/arch/powerpc/mod.rs +++ b/src/unix/linux_like/linux/arch/powerpc/mod.rs @@ -24,8 +24,15 @@ pub const SO_REUSEPORT: c_int = 15; // powerpc only differs in these pub const SO_RCVLOWAT: c_int = 16; pub const SO_SNDLOWAT: c_int = 17; -pub const SO_RCVTIMEO: c_int = 18; -pub const SO_SNDTIMEO: c_int = 19; +cfg_if! { + if #[cfg(linux_time_bits64)] { + pub const SO_SNDTIMEO: c_int = 67; + pub const SO_RCVTIMEO: c_int = 66; + } else { + pub const SO_SNDTIMEO: c_int = 19; + pub const SO_RCVTIMEO: c_int = 18; + } +} // pub const SO_RCVTIMEO_OLD: c_int = 18; // pub const SO_SNDTIMEO_OLD: c_int = 19; pub const SO_PASSCRED: c_int = 20; @@ -39,18 +46,26 @@ pub const SO_ATTACH_FILTER: c_int = 26; pub const SO_DETACH_FILTER: c_int = 27; pub const SO_GET_FILTER: c_int = SO_ATTACH_FILTER; pub const SO_PEERNAME: c_int = 28; -pub const SO_TIMESTAMP: c_int = 29; -// pub const SO_TIMESTAMP_OLD: c_int = 29; +cfg_if! { + if #[cfg(linux_time_bits64)] { + pub const SO_TIMESTAMP: c_int = SO_TIMESTAMP_NEW; + pub const SO_TIMESTAMPNS: c_int = SO_TIMESTAMPNS_NEW; + pub const SO_TIMESTAMPING: c_int = SO_TIMESTAMPING_NEW; + } else { + pub const SO_TIMESTAMP: c_int = SO_TIMESTAMP_OLD; + pub const SO_TIMESTAMPNS: c_int = SO_TIMESTAMPNS_OLD; + pub const SO_TIMESTAMPING: c_int = SO_TIMESTAMPING_OLD; + } +} +const SO_TIMESTAMP_OLD: c_int = 29; +const SO_TIMESTAMPNS_OLD: c_int = 35; +const SO_TIMESTAMPING_OLD: c_int = 37; pub const SO_ACCEPTCONN: c_int = 30; pub const SO_PEERSEC: c_int = 31; pub const SO_SNDBUFFORCE: c_int = 32; pub const SO_RCVBUFFORCE: c_int = 33; pub const SO_PASSSEC: c_int = 34; -pub const SO_TIMESTAMPNS: c_int = 35; -// pub const SO_TIMESTAMPNS_OLD: c_int = 35; pub const SO_MARK: c_int = 36; -pub const SO_TIMESTAMPING: c_int = 37; -// pub const SO_TIMESTAMPING_OLD: c_int = 37; pub const SO_PROTOCOL: c_int = 38; pub const SO_DOMAIN: c_int = 39; pub const SO_RXQ_OVFL: c_int = 40; From 83d3f04b0393058a0de692965dea8fcb0c760e57 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Wed, 20 Nov 2024 11:11:35 +0100 Subject: [PATCH 0485/1228] linux: Set RLIM_INFINITY for 32bit mips with __USE_TIME_BITS64 (backport ) (cherry picked from commit 125b4f715756b3f641a7178534fb9e2374ac1d90) --- src/unix/linux_like/linux/arch/mips/mod.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index 2fcadc8004ea7..70364b3108cd4 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -359,10 +359,17 @@ cfg_if! { } cfg_if! { - if #[cfg( + if #[cfg(all( any(target_arch = "mips", target_arch = "mips32r6"), - any(target_env = "gnu", target_env = "uclibc") - )] { + any(target_env = "uclibc", target_env = "gnu"), + linux_time_bits64 + ))] { + pub const RLIM_INFINITY: crate::rlim_t = !0; + } else if #[cfg(all( + any(target_arch = "mips", target_arch = "mips32r6"), + any(target_env = "uclibc", target_env = "gnu"), + not(linux_time_bits64) + ))] { pub const RLIM_INFINITY: crate::rlim_t = 0x7fffffff; } } From 17553b760d19867dc67647b3ee377f294fb3ac3a Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Fri, 17 Mar 2023 15:21:05 +0100 Subject: [PATCH 0486/1228] linux: Update struct input_event for __USE_TIME_BITS64 (backport ) (cherry picked from commit 7413e22f250030596f75c294cff976af2d3dfed5) --- src/unix/linux_like/linux/mod.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index c2fa6392fa500..71311c1ed6681 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -327,7 +327,21 @@ s! { } pub struct input_event { + // FIXME(1.0): Change to the commented variant, see https://github.com/rust-lang/libc/pull/4148#discussion_r1857511742 + #[cfg(any(target_pointer_width = "64", not(linux_time_bits64)))] pub time: crate::timeval, + // #[cfg(any(target_pointer_width = "64", not(linux_time_bits64)))] + // pub input_event_sec: time_t, + // #[cfg(any(target_pointer_width = "64", not(linux_time_bits64)))] + // pub input_event_usec: suseconds_t, + // #[cfg(target_arch = "sparc64")] + // _pad1: c_int, + #[cfg(all(target_pointer_width = "32", linux_time_bits64))] + pub input_event_sec: c_ulong, + + #[cfg(all(target_pointer_width = "32", linux_time_bits64))] + pub input_event_usec: c_ulong, + pub type_: __u16, pub code: __u16, pub value: __s32, From 72e58545718a7423154bd18f07a536d40b05bdc9 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Tue, 26 Nov 2024 17:28:26 +0100 Subject: [PATCH 0487/1228] unix: Add FIXME(time) for struct timeval struct timeval has to be updated at least for glibc with _TIME_BITS=64. (backport ) (cherry picked from commit c20130256eaa9e650beeffc1dc0b8ab0215aae2f) --- src/unix/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 65c426c181aef..1e70238d19824 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -56,6 +56,7 @@ s! { pub modtime: time_t, } + // FIXME(time): Needs updates at least for glibc _TIME_BITS=64 pub struct timeval { pub tv_sec: time_t, pub tv_usec: suseconds_t, From c5b746547116aef22ef4c01ccf2e626c36f0cee7 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Mon, 27 Jan 2025 09:53:12 +0100 Subject: [PATCH 0488/1228] Rerun build if RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64 changes Collect the linux_time_bits64 in one place. (backport ) (cherry picked from commit 9a861ed61c696761c18037ad6255176409bf43fe) --- build.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build.rs b/build.rs index 2487f89e71563..3439208f7e2ce 100644 --- a/build.rs +++ b/build.rs @@ -45,7 +45,6 @@ fn main() { let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); let libc_ci = env::var("LIBC_CI").is_ok(); let libc_check_cfg = env::var("LIBC_CHECK_CFG").is_ok() || rustc_minor_ver >= 80; - let linux_time_bits64 = env::var("RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64").is_ok(); // 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. @@ -82,6 +81,8 @@ fn main() { _ => (), } + let linux_time_bits64 = env::var("RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64").is_ok(); + println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64"); if linux_time_bits64 { set_cfg("linux_time_bits64"); } From 8b0ab163062c7495f1fba755c9a782e58e94fc57 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Mon, 16 Dec 2024 09:21:06 +0100 Subject: [PATCH 0489/1228] Add forgotten SO_*_NEW values to powerpc, mips and arm The _NEW defines are not available in musl and ohos. (backport ) (cherry picked from commit b0e68783fa8f4b91b6a1fa03fe7d4b1ebb8ed015) --- src/unix/linux_like/linux/arch/generic/mod.rs | 14 +++++++++++++- src/unix/linux_like/linux/arch/mips/mod.rs | 5 +++++ src/unix/linux_like/linux/arch/powerpc/mod.rs | 10 +++++----- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index ea38a20d67e40..098c83c3b885b 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -57,13 +57,24 @@ const SO_TIMESTAMPING_OLD: c_int = 37; cfg_if! { if #[cfg(all( linux_time_bits64, - any(target_arch = "arm", target_arch = "x86") + any(target_arch = "arm", target_arch = "x86"), + not(any(target_env = "musl", target_env = "ohos")) ))] { pub const SO_TIMESTAMP: c_int = SO_TIMESTAMP_NEW; pub const SO_TIMESTAMPNS: c_int = SO_TIMESTAMPNS_NEW; pub const SO_TIMESTAMPING: c_int = SO_TIMESTAMPING_NEW; pub const SO_RCVTIMEO: c_int = SO_RCVTIMEO_NEW; pub const SO_SNDTIMEO: c_int = SO_SNDTIMEO_NEW; + } else if #[cfg(all( + linux_time_bits64, + any(target_arch = "arm", target_arch = "x86"), + any(target_env = "musl", target_env = "ohos") + ))] { + pub const SO_TIMESTAMP: c_int = 63; + pub const SO_TIMESTAMPNS: c_int = 64; + pub const SO_TIMESTAMPING: c_int = 65; + pub const SO_RCVTIMEO: c_int = 66; + pub const SO_SNDTIMEO: c_int = 67; } else { pub const SO_TIMESTAMP: c_int = SO_TIMESTAMP_OLD; pub const SO_TIMESTAMPNS: c_int = SO_TIMESTAMPNS_OLD; @@ -114,6 +125,7 @@ cfg_if! { any( target_arch = "x86", target_arch = "x86_64", + target_arch = "arm", target_arch = "aarch64", target_arch = "csky", target_arch = "loongarch64" diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index 70364b3108cd4..612f8c73ffc3c 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -99,8 +99,13 @@ pub const SO_BINDTOIFINDEX: c_int = 62; // but CI haven't support them yet. // Some related consts could be found in b32.rs and b64.rs const SO_TIMESTAMP_OLD: c_int = 29; +const SO_RCVTIMEO_NEW: c_int = 66; +const SO_SNDTIMEO_NEW: c_int = 67; const SO_TIMESTAMPNS_OLD: c_int = 35; const SO_TIMESTAMPING_OLD: c_int = 37; +const SO_TIMESTAMP_NEW: c_int = 63; +const SO_TIMESTAMPNS_NEW: c_int = 64; +const SO_TIMESTAMPING_NEW: c_int = 65; cfg_if! { if #[cfg(linux_time_bits64)] { pub const SO_TIMESTAMP: c_int = SO_TIMESTAMP_NEW; diff --git a/src/unix/linux_like/linux/arch/powerpc/mod.rs b/src/unix/linux_like/linux/arch/powerpc/mod.rs index 2e8d3e3675393..50d1ef17bb887 100644 --- a/src/unix/linux_like/linux/arch/powerpc/mod.rs +++ b/src/unix/linux_like/linux/arch/powerpc/mod.rs @@ -94,11 +94,11 @@ pub const SO_ZEROCOPY: c_int = 60; pub const SO_TXTIME: c_int = 61; pub const SCM_TXTIME: c_int = SO_TXTIME; pub const SO_BINDTOIFINDEX: c_int = 62; -// pub const SO_TIMESTAMP_NEW: c_int = 63; -// pub const SO_TIMESTAMPNS_NEW: c_int = 64; -// pub const SO_TIMESTAMPING_NEW: c_int = 65; -// pub const SO_RCVTIMEO_NEW: c_int = 66; -// pub const SO_SNDTIMEO_NEW: c_int = 67; +const SO_TIMESTAMP_NEW: c_int = 63; +const SO_TIMESTAMPNS_NEW: c_int = 64; +const SO_TIMESTAMPING_NEW: c_int = 65; +const SO_RCVTIMEO_NEW: c_int = 66; +const SO_SNDTIMEO_NEW: c_int = 67; // pub const SO_DETACH_REUSEPORT_BPF: c_int = 68; // pub const SO_PREFER_BUSY_POLL: c_int = 69; // pub const SO_BUSY_POLL_BUDGET: c_int = 70; From b668252303c6a79c465aabc9a002bc0b4a79df6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=96=D1=83=D0=BD=D1=91=D0=B2=D0=B0=20=D0=9C=D0=B0=D1=80?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=9C=D0=B8=D1=85=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2?= =?UTF-8?q?=D0=BD=D0=B0?= Date: Fri, 21 Jun 2024 18:21:30 +0300 Subject: [PATCH 0490/1228] Add structures for freebsd (backport ) (cherry picked from commit 187468d37a3e9d785d915bfe7b82f81c3c6dc3f1) --- libc-test/build.rs | 2 ++ libc-test/semver/freebsd.txt | 2 ++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 16 ++++++++++++++++ 3 files changed, 20 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index eb41e2eaa7ac8..4aa1fa8bd8338 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2312,6 +2312,7 @@ fn test_freebsd(target: &str) { "sys/thr.h", "sys/time.h", [freebsd14 || freebsd15]:"sys/timerfd.h", + [freebsd13 || freebsd14 || freebsd15]:"dev/evdev/input.h", "sys/times.h", "sys/timex.h", "sys/types.h", @@ -2385,6 +2386,7 @@ fn test_freebsd(target: &str) { "type_" if struct_ == "rtprio" => "type".to_string(), "type_" if struct_ == "sockstat" => "type".to_string(), "type_" if struct_ == "devstat_match_table" => "type".to_string(), + "type_" if struct_ == "input_event" => "type".to_string(), s => s.to_string(), } }); diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index 486d11e64a60a..a5a9f9befb9d9 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -2026,6 +2026,8 @@ ifconf ifreq in6_pktinfo initgroups +input_absinfo +input_event ip_mreqn ipc_perm jail diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index ae4e366afdd48..23bbb1e1c47fe 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -290,6 +290,22 @@ s! { pub sem_flg: c_short, } + pub struct input_event { + pub time: crate::timeval, + pub type_: crate::u_short, + pub code: crate::u_short, + pub value: i32, + } + + pub struct input_absinfo { + pub value: i32, + pub minimum: i32, + pub maximum: i32, + pub fuzz: i32, + pub flat: i32, + pub resolution: i32, + } + pub struct msqid_ds { pub msg_perm: crate::ipc_perm, __unused1: *mut c_void, From 116b82e5aec3a42415d4586fbe01d4dcde5240dd Mon Sep 17 00:00:00 2001 From: Kartik Agarwala Date: Thu, 30 Jan 2025 13:52:59 +0530 Subject: [PATCH 0491/1228] Fix size of time_t in vxworks (backport ) (cherry picked from commit eec39f5d73774977fe237958e44490e0ec86fcdc) --- src/vxworks/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 2b910616d794c..073b5d07ce6fa 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -34,7 +34,7 @@ pub type ino_t = c_ulong; pub type rlim_t = c_ulong; pub type suseconds_t = c_long; -pub type time_t = c_long; +pub type time_t = c_longlong; pub type errno_t = c_int; From 7a7fe4683185d030bd16630b58387b82786f5597 Mon Sep 17 00:00:00 2001 From: Johannes Altmanninger Date: Thu, 19 Dec 2024 09:03:23 +0100 Subject: [PATCH 0492/1228] Apply modulo 256 to BSD WEXITSTATUS wait(2p)[^1] says > WEXITSTATUS(status) > If WIFEXITED(status) is true, evaluates to the low-order 8 bits > of the argument passed to _exit(2) or exit(3) by the child. meaning WEXITSTATUS(status) is an 8-bit value. We accidentally return too many bits. For example WEXITSTATUS(-1) returns -1 instead of 255. Fix it, matching the C library and our other WEXITSTATUS implementations. [^1] https://manpage.me/index.cgi?apropos=0&q=wait&sektion=2&manpath=FreeBSD+12-CURRENT+and+Ports&arch=default&format=html Originally reported at https://github.com/fish-shell/fish-shell/issues/10919 (backport ) (cherry picked from commit f9cde2f7241fca7fe5c5d9564c8d361847f42f9e) --- src/unix/bsd/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index d8e52f5f74245..445957537eb76 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -639,7 +639,7 @@ safe_f! { } pub {const} fn WEXITSTATUS(status: c_int) -> c_int { - status >> 8 + (status >> 8) & 0x00ff } pub {const} fn WCOREDUMP(status: c_int) -> bool { From a0021d2cb1c5cb3ed33969afacb4b9b9760989f9 Mon Sep 17 00:00:00 2001 From: Nicolas Iooss Date: Tue, 18 Feb 2025 14:23:52 +0000 Subject: [PATCH 0493/1228] Add recent socket timestamping flags for Linux and Android Linux defines 3 more flags for socket option SO_TIMESTAMPING: - SOF_TIMESTAMPING_BIND_PHC introduced in Linux 5.14 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d463126e23f112629edb01594141ca437a92a108 - SOF_TIMESTAMPING_OPT_ID_TCP introduced in Linux 6.2 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b534dc46c8ae0165b1b2509be24dbea4fa9c4011 - SOF_TIMESTAMPING_OPT_RX_FILTER introduced in Linux 6.12 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=be8e9eb3750639aa5cffb3f764ca080caed41bd0 These flags are defined in https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/net_tstamp.h?h=v6.13 Android C library (bionic) picked this flags up: https://android.googlesource.com/platform//bionic/+/9cdc362a2f7463670a766400defcd332a9edfe19/libc/kernel/uapi/linux/net_tstamp.h Update Linux and Android files accordingly. (backport ) (cherry picked from commit d1d92db586e16f8ed1cc5e9ece79783b8b19b4ac) --- libc-test/build.rs | 9 +++++++++ libc-test/semver/android.txt | 3 +++ libc-test/semver/linux.txt | 3 +++ src/unix/linux_like/android/mod.rs | 3 +++ src/unix/linux_like/linux/mod.rs | 3 +++ 5 files changed, 21 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 4aa1fa8bd8338..7efacf7a41e63 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2083,6 +2083,9 @@ fn test_android(target: &str) { | "PF_BLOCK_TS" | "PF_SUSPEND_TASK" => true, + // FIXME(android): Requires >= 6.12 kernel headers. + "SOF_TIMESTAMPING_OPT_RX_FILTER" => true, + _ => false, } }); @@ -4338,6 +4341,12 @@ fn test_linux(target: &str) { // FIXME: Requires >= 6.11 kernel headers. "MAP_DROPPABLE" => true, + // FIXME(linux): Requires >= 6.2 kernel headers. + "SOF_TIMESTAMPING_OPT_ID_TCP" => true, + + // FIXME(linux): Requires >= 6.12 kernel headers. + "SOF_TIMESTAMPING_OPT_RX_FILTER" => true, + _ => false, } }); diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index f8c136dd70e10..a60cd024f2040 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -2385,9 +2385,12 @@ SOCK_RAW SOCK_RDM SOCK_SEQPACKET SOCK_STREAM +SOF_TIMESTAMPING_BIND_PHC SOF_TIMESTAMPING_OPT_CMSG SOF_TIMESTAMPING_OPT_ID +SOF_TIMESTAMPING_OPT_ID_TCP SOF_TIMESTAMPING_OPT_PKTINFO +SOF_TIMESTAMPING_OPT_RX_FILTER SOF_TIMESTAMPING_OPT_STATS SOF_TIMESTAMPING_OPT_TSONLY SOF_TIMESTAMPING_OPT_TX_SWHW diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 3ec327aec6337..c91b5034608d2 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2898,9 +2898,12 @@ SOCK_NONBLOCK SOCK_PACKET SOCK_RAW SOCK_RDM +SOF_TIMESTAMPING_BIND_PHC SOF_TIMESTAMPING_OPT_CMSG SOF_TIMESTAMPING_OPT_ID +SOF_TIMESTAMPING_OPT_ID_TCP SOF_TIMESTAMPING_OPT_PKTINFO +SOF_TIMESTAMPING_OPT_RX_FILTER SOF_TIMESTAMPING_OPT_STATS SOF_TIMESTAMPING_OPT_TSONLY SOF_TIMESTAMPING_OPT_TX_SWHW diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 0e1b05aa5cf72..5debbe8fb967d 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -2942,6 +2942,9 @@ pub const SOF_TIMESTAMPING_OPT_TSONLY: c_uint = 1 << 11; pub const SOF_TIMESTAMPING_OPT_STATS: c_uint = 1 << 12; pub const SOF_TIMESTAMPING_OPT_PKTINFO: c_uint = 1 << 13; pub const SOF_TIMESTAMPING_OPT_TX_SWHW: c_uint = 1 << 14; +pub const SOF_TIMESTAMPING_BIND_PHC: c_uint = 1 << 15; +pub const SOF_TIMESTAMPING_OPT_ID_TCP: c_uint = 1 << 16; +pub const SOF_TIMESTAMPING_OPT_RX_FILTER: c_uint = 1 << 17; #[deprecated( since = "0.2.55", diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 71311c1ed6681..63049fe1c5547 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -4544,6 +4544,9 @@ pub const SOF_TIMESTAMPING_OPT_TSONLY: c_uint = 1 << 11; pub const SOF_TIMESTAMPING_OPT_STATS: c_uint = 1 << 12; pub const SOF_TIMESTAMPING_OPT_PKTINFO: c_uint = 1 << 13; pub const SOF_TIMESTAMPING_OPT_TX_SWHW: c_uint = 1 << 14; +pub const SOF_TIMESTAMPING_BIND_PHC: c_uint = 1 << 15; +pub const SOF_TIMESTAMPING_OPT_ID_TCP: c_uint = 1 << 16; +pub const SOF_TIMESTAMPING_OPT_RX_FILTER: c_uint = 1 << 17; pub const SOF_TXTIME_DEADLINE_MODE: u32 = 1 << 0; pub const SOF_TXTIME_REPORT_ERRORS: u32 = 1 << 1; From 42a30adc36ecceaf231589c4b1a1347c66d14222 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 22 Feb 2025 22:24:32 +0000 Subject: [PATCH 0494/1228] Switch back to matching `target_os` rather than `target_vendor` `ctest` is very particular about this and the current configuration, though working most of the time, seems to cause occasional CI errors that can't easily be explained or mitigated. Switch back to matching all Apple `target_os` options until `ctest` is fixed. (backport ) (cherry picked from commit a986f81dbc23bf669fdecd81a74b6ae3999cb8c8) --- src/primitives.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/primitives.rs b/src/primitives.rs index ed71e843057b1..668d3340d2abb 100644 --- a/src/primitives.rs +++ b/src/primitives.rs @@ -20,7 +20,14 @@ pub type c_double = f64; cfg_if! { if #[cfg(all( not(windows), - not(target_vendor = "apple"), + // FIXME(ctest): just use `target_vendor` = "apple"` once `ctest` supports it + not(any( + target_os = "macos", + target_os = "ios", + target_os = "tvos", + target_os = "watchos", + target_os = "visionos", + )), not(target_os = "vita"), any( target_arch = "aarch64", From 61d269893fc88f8e576d98432aa0aa639e64dbaf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 23 Feb 2025 00:11:57 +0000 Subject: [PATCH 0495/1228] chore: release v0.2.170 Co-authored-by: Trevor Gross --- CHANGELOG.md | 37 +++++++++++++++++++++++++++++++++++++ Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1efe1f840044..4a41b3ffdef10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,43 @@ # Changelog ## [Unreleased] +## [0.2.170](https://github.com/rust-lang/libc/compare/0.2.169...0.2.170) - 2025-02-23 + +### Added + +- Android: Declare `setdomainname` and `getdomainname` +- FreeBSD: Add `evdev` structures +- FreeBSD: Add the new `st_filerev` field to `stat32` ([#4254](https://github.com/rust-lang/libc/pull/4254)) +- Linux: Add `SI_*`` and `TRAP_*`` signal codes +- Linux: Add experimental configuration to enable 64-bit time in kernel APIs, set by `RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64`. +- Linux: Add recent socket timestamping flags +- Linux: Added new CANFD_FDF flag for the flags field of canfd_frame +- Musl: add CLONE_NEWTIME +- Solarish: add the posix_spawn family of functions + +### Deprecated + +- Linux: deprecate kernel modules syscalls + +### Changed + +- Emscripten: Assume version is at least 3.1.42 + +### Fixed + +- BSD: Correct the definition of `WEXITSTATUS` +- Hurd: Fix CMSG_DATA on 64bit systems ([#4240](https://github.com/rust-lang/libc/pull/424)) +- NetBSD: fix `getmntinfo` ([#4265](https://github.com/rust-lang/libc/pull/4265) +- VxWorks: Fix the size of `time_t` + +### Other + +- Add labels to FIXMEs , , +- CI: Bump FreeBSD CI to 13.4 and 14.2 +- Copy definitions from core::ffi and centralize them +- Define c_char at top-level and remove per-target c_char definitions +- Port style.rs to syn and add tests for the style checker + ## [0.2.169](https://github.com/rust-lang/libc/compare/0.2.168...0.2.169) - 2024-12-18 ### Added diff --git a/Cargo.toml b/Cargo.toml index aa6926ee5f0bd..e3b20745500dd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.169" +version = "0.2.170" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index f0f4c22346753..740b9ca18cac2 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -14,7 +14,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.169" +version = "0.2.170" default-features = false [dev-dependencies] From 8f5b7b6a7cfde9a652b08d6787e85fc29b426f01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kr=C3=B6ning?= Date: Wed, 5 Mar 2025 12:58:12 +0100 Subject: [PATCH 0496/1228] hermit: make `stat::st_size` signed --- src/hermit.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hermit.rs b/src/hermit.rs index 65d0bf374d8cd..db51ee94b7881 100644 --- a/src/hermit.rs +++ b/src/hermit.rs @@ -100,7 +100,7 @@ s! { pub st_uid: u32, pub st_gid: u32, pub st_rdev: u64, - pub st_size: u64, + pub st_size: i64, pub st_blksize: i64, pub st_blocks: i64, pub st_atim: timespec, From 0987973a5a11972082c04f9d1318ab4c317efa00 Mon Sep 17 00:00:00 2001 From: arctic-alpaca <67190338+arctic-alpaca@users.noreply.github.com> Date: Wed, 27 Nov 2024 21:14:45 +0100 Subject: [PATCH 0497/1228] move AF_XDP structs and constants to linux/mod.rs (backport ) (cherry picked from commit 7eaea55a4571530a4ca1cc5431c95cdc9b05d38a) --- libc-test/semver/linux-gnu.txt | 24 ----- libc-test/semver/linux-musl.txt | 24 ----- libc-test/semver/linux.txt | 24 +++++ src/unix/linux_like/linux/gnu/mod.rs | 111 ----------------------- src/unix/linux_like/linux/mod.rs | 121 ++++++++++++++++++++++++-- src/unix/linux_like/linux/musl/mod.rs | 112 ------------------------ 6 files changed, 140 insertions(+), 276 deletions(-) diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 2aed5d7628eae..9001de4c4ff3a 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -405,7 +405,6 @@ SOL_PPPOL2TP SOL_RAW SOL_RDS SOL_RXRPC -SOL_XDP STATX_ALL STATX_ATIME STATX_ATTR_APPEND @@ -472,31 +471,8 @@ UDF_SUPER_MAGIC UNAME26 USBDEVICE_SUPER_MAGIC USER_PROCESS -XDP_COPY -XDP_MMAP_OFFSETS -XDP_OPTIONS -XDP_OPTIONS_ZEROCOPY -XDP_PGOFF_RX_RING -XDP_PGOFF_TX_RING -XDP_PKT_CONTD -XDP_RING_NEED_WAKEUP -XDP_RX_RING -XDP_SHARED_UMEM -XDP_STATISTICS -XDP_TX_RING -XDP_UMEM_COMPLETION_RING -XDP_UMEM_FILL_RING -XDP_UMEM_PGOFF_COMPLETION_RING -XDP_UMEM_PGOFF_FILL_RING -XDP_UMEM_REG -XDP_UMEM_UNALIGNED_CHUNK_FLAG -XDP_USE_NEED_WAKEUP -XDP_USE_SG -XDP_ZEROCOPY XENFS_SUPER_MAGIC XFS_SUPER_MAGIC -XSK_UNALIGNED_BUF_ADDR_MASK -XSK_UNALIGNED_BUF_OFFSET_SHIFT _CS_GNU_LIBC_VERSION _CS_GNU_LIBPTHREAD_VERSION _CS_V6_ENV diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index 2223bb50059ee..d8e4918facb16 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -36,31 +36,7 @@ RWF_DSYNC RWF_HIPRI RWF_NOWAIT RWF_SYNC -SOL_XDP USER_PROCESS -XDP_COPY -XDP_MMAP_OFFSETS -XDP_OPTIONS -XDP_OPTIONS_ZEROCOPY -XDP_PGOFF_RX_RING -XDP_PGOFF_TX_RING -XDP_PKT_CONTD -XDP_RING_NEED_WAKEUP -XDP_RX_RING -XDP_SHARED_UMEM -XDP_STATISTICS -XDP_TX_RING -XDP_UMEM_COMPLETION_RING -XDP_UMEM_FILL_RING -XDP_UMEM_PGOFF_COMPLETION_RING -XDP_UMEM_PGOFF_FILL_RING -XDP_UMEM_REG -XDP_UMEM_UNALIGNED_CHUNK_FLAG -XDP_USE_NEED_WAKEUP -XDP_USE_SG -XDP_ZEROCOPY -XSK_UNALIGNED_BUF_ADDR_MASK -XSK_UNALIGNED_BUF_OFFSET_SHIFT _CS_V6_ENV _CS_V7_ENV adjtimex diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index c91b5034608d2..af5ded298cb80 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2939,6 +2939,7 @@ SOL_TIPC SOL_TLS SOL_UDP SOL_X25 +SOL_XDP SOMAXCONN SO_BINDTODEVICE SO_BUSY_POLL @@ -3455,11 +3456,34 @@ W_EXITCODE W_STOPCODE XATTR_CREATE XATTR_REPLACE +XDP_COPY +XDP_MMAP_OFFSETS +XDP_OPTIONS +XDP_OPTIONS_ZEROCOPY +XDP_PGOFF_RX_RING +XDP_PGOFF_TX_RING +XDP_PKT_CONTD +XDP_RING_NEED_WAKEUP +XDP_RX_RING +XDP_SHARED_UMEM +XDP_STATISTICS XDP_TXMD_FLAGS_CHECKSUM XDP_TXMD_FLAGS_TIMESTAMP XDP_TX_METADATA +XDP_TX_RING +XDP_UMEM_COMPLETION_RING +XDP_UMEM_FILL_RING +XDP_UMEM_PGOFF_COMPLETION_RING +XDP_UMEM_PGOFF_FILL_RING +XDP_UMEM_REG XDP_UMEM_TX_METADATA_LEN XDP_UMEM_TX_SW_CSUM +XDP_UMEM_UNALIGNED_CHUNK_FLAG +XDP_USE_NEED_WAKEUP +XDP_USE_SG +XDP_ZEROCOPY +XSK_UNALIGNED_BUF_ADDR_MASK +XSK_UNALIGNED_BUF_OFFSET_SHIFT XTABS YESEXPR YESSTR diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 48648e2b05a99..6d3ffd45885aa 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -328,84 +328,6 @@ s! { pub u: __c_anonymous_ptrace_syscall_info_data, } - // linux/if_xdp.h - - pub struct sockaddr_xdp { - pub sxdp_family: crate::__u16, - pub sxdp_flags: crate::__u16, - pub sxdp_ifindex: crate::__u32, - pub sxdp_queue_id: crate::__u32, - pub sxdp_shared_umem_fd: crate::__u32, - } - - pub struct xdp_ring_offset { - pub producer: crate::__u64, - pub consumer: crate::__u64, - pub desc: crate::__u64, - pub flags: crate::__u64, - } - - pub struct xdp_mmap_offsets { - pub rx: xdp_ring_offset, - pub tx: xdp_ring_offset, - pub fr: xdp_ring_offset, - pub cr: xdp_ring_offset, - } - - pub struct xdp_ring_offset_v1 { - pub producer: crate::__u64, - pub consumer: crate::__u64, - pub desc: crate::__u64, - } - - pub struct xdp_mmap_offsets_v1 { - pub rx: xdp_ring_offset_v1, - pub tx: xdp_ring_offset_v1, - pub fr: xdp_ring_offset_v1, - pub cr: xdp_ring_offset_v1, - } - - pub struct xdp_umem_reg { - pub addr: crate::__u64, - pub len: crate::__u64, - pub chunk_size: crate::__u32, - pub headroom: crate::__u32, - pub flags: crate::__u32, - pub tx_metadata_len: crate::__u32, - } - - pub struct xdp_umem_reg_v1 { - pub addr: crate::__u64, - pub len: crate::__u64, - pub chunk_size: crate::__u32, - pub headroom: crate::__u32, - } - - pub struct xdp_statistics { - pub rx_dropped: crate::__u64, - pub rx_invalid_descs: crate::__u64, - pub tx_invalid_descs: crate::__u64, - pub rx_ring_full: crate::__u64, - pub rx_fill_ring_empty_descs: crate::__u64, - pub tx_ring_empty_descs: crate::__u64, - } - - pub struct xdp_statistics_v1 { - pub rx_dropped: crate::__u64, - pub rx_invalid_descs: crate::__u64, - pub tx_invalid_descs: crate::__u64, - } - - pub struct xdp_options { - pub flags: crate::__u32, - } - - pub struct xdp_desc { - pub addr: crate::__u64, - pub len: crate::__u32, - pub options: crate::__u32, - } - pub struct iocb { pub aio_data: crate::__u64, #[cfg(target_endian = "little")] @@ -809,7 +731,6 @@ pub const SOL_RDS: c_int = 276; pub const SOL_IUCV: c_int = 277; pub const SOL_CAIF: c_int = 278; pub const SOL_NFC: c_int = 280; -pub const SOL_XDP: c_int = 283; pub const MSG_TRYHARD: c_int = 4; @@ -1042,38 +963,6 @@ pub const GENL_UNS_ADMIN_PERM: c_int = 0x10; pub const GENL_ID_VFS_DQUOT: c_int = crate::NLMSG_MIN_TYPE + 1; pub const GENL_ID_PMCRAID: c_int = crate::NLMSG_MIN_TYPE + 2; -// linux/if_xdp.h -pub const XDP_SHARED_UMEM: crate::__u16 = 1 << 0; -pub const XDP_COPY: crate::__u16 = 1 << 1; -pub const XDP_ZEROCOPY: crate::__u16 = 1 << 2; -pub const XDP_USE_NEED_WAKEUP: crate::__u16 = 1 << 3; -pub const XDP_USE_SG: crate::__u16 = 1 << 4; - -pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: crate::__u32 = 1 << 0; - -pub const XDP_RING_NEED_WAKEUP: crate::__u32 = 1 << 0; - -pub const XDP_MMAP_OFFSETS: c_int = 1; -pub const XDP_RX_RING: c_int = 2; -pub const XDP_TX_RING: c_int = 3; -pub const XDP_UMEM_REG: c_int = 4; -pub const XDP_UMEM_FILL_RING: c_int = 5; -pub const XDP_UMEM_COMPLETION_RING: c_int = 6; -pub const XDP_STATISTICS: c_int = 7; -pub const XDP_OPTIONS: c_int = 8; - -pub const XDP_OPTIONS_ZEROCOPY: crate::__u32 = 1 << 0; - -pub const XDP_PGOFF_RX_RING: off_t = 0; -pub const XDP_PGOFF_TX_RING: off_t = 0x80000000; -pub const XDP_UMEM_PGOFF_FILL_RING: c_ulonglong = 0x100000000; -pub const XDP_UMEM_PGOFF_COMPLETION_RING: c_ulonglong = 0x180000000; - -pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: c_int = 48; -pub const XSK_UNALIGNED_BUF_ADDR_MASK: c_ulonglong = (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1; - -pub const XDP_PKT_CONTD: crate::__u32 = 1 << 0; - pub const ELFOSABI_ARM_AEABI: u8 = 64; // linux/sched.h diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 63049fe1c5547..fffeeaeb49d6f 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1225,6 +1225,83 @@ s! { } // linux/if_xdp.h + + pub struct sockaddr_xdp { + pub sxdp_family: crate::__u16, + pub sxdp_flags: crate::__u16, + pub sxdp_ifindex: crate::__u32, + pub sxdp_queue_id: crate::__u32, + pub sxdp_shared_umem_fd: crate::__u32, + } + + pub struct xdp_ring_offset { + pub producer: crate::__u64, + pub consumer: crate::__u64, + pub desc: crate::__u64, + pub flags: crate::__u64, + } + + pub struct xdp_mmap_offsets { + pub rx: xdp_ring_offset, + pub tx: xdp_ring_offset, + pub fr: xdp_ring_offset, + pub cr: xdp_ring_offset, + } + + pub struct xdp_ring_offset_v1 { + pub producer: crate::__u64, + pub consumer: crate::__u64, + pub desc: crate::__u64, + } + + pub struct xdp_mmap_offsets_v1 { + pub rx: xdp_ring_offset_v1, + pub tx: xdp_ring_offset_v1, + pub fr: xdp_ring_offset_v1, + pub cr: xdp_ring_offset_v1, + } + + pub struct xdp_umem_reg { + pub addr: crate::__u64, + pub len: crate::__u64, + pub chunk_size: crate::__u32, + pub headroom: crate::__u32, + pub flags: crate::__u32, + pub tx_metadata_len: crate::__u32, + } + + pub struct xdp_umem_reg_v1 { + pub addr: crate::__u64, + pub len: crate::__u64, + pub chunk_size: crate::__u32, + pub headroom: crate::__u32, + } + + pub struct xdp_statistics { + pub rx_dropped: crate::__u64, + pub rx_invalid_descs: crate::__u64, + pub tx_invalid_descs: crate::__u64, + pub rx_ring_full: crate::__u64, + pub rx_fill_ring_empty_descs: crate::__u64, + pub tx_ring_empty_descs: crate::__u64, + } + + pub struct xdp_statistics_v1 { + pub rx_dropped: crate::__u64, + pub rx_invalid_descs: crate::__u64, + pub tx_invalid_descs: crate::__u64, + } + + pub struct xdp_options { + pub flags: crate::__u32, + } + + pub struct xdp_desc { + pub addr: crate::__u64, + pub len: crate::__u32, + pub options: crate::__u32, + } + pub struct xsk_tx_metadata_completion { pub tx_timestamp: crate::__u64, } @@ -5671,13 +5748,47 @@ pub const SCHED_FLAG_UTIL_CLAMP_MIN: c_int = 0x20; pub const SCHED_FLAG_UTIL_CLAMP_MAX: c_int = 0x40; // linux/if_xdp.h -pub const XDP_UMEM_TX_SW_CSUM: __u32 = 1 << 1; -pub const XDP_UMEM_TX_METADATA_LEN: __u32 = 1 << 2; +pub const XDP_SHARED_UMEM: crate::__u16 = 1 << 0; +pub const XDP_COPY: crate::__u16 = 1 << 1; +pub const XDP_ZEROCOPY: crate::__u16 = 1 << 2; +pub const XDP_USE_NEED_WAKEUP: crate::__u16 = 1 << 3; +pub const XDP_USE_SG: crate::__u16 = 1 << 4; + +pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: crate::__u32 = 1 << 0; + +pub const XDP_RING_NEED_WAKEUP: crate::__u32 = 1 << 0; + +pub const XDP_MMAP_OFFSETS: c_int = 1; +pub const XDP_RX_RING: c_int = 2; +pub const XDP_TX_RING: c_int = 3; +pub const XDP_UMEM_REG: c_int = 4; +pub const XDP_UMEM_FILL_RING: c_int = 5; +pub const XDP_UMEM_COMPLETION_RING: c_int = 6; +pub const XDP_STATISTICS: c_int = 7; +pub const XDP_OPTIONS: c_int = 8; + +pub const XDP_OPTIONS_ZEROCOPY: crate::__u32 = 1 << 0; + +pub const XDP_PGOFF_RX_RING: crate::off_t = 0; +pub const XDP_PGOFF_TX_RING: crate::off_t = 0x80000000; +pub const XDP_UMEM_PGOFF_FILL_RING: crate::c_ulonglong = 0x100000000; +pub const XDP_UMEM_PGOFF_COMPLETION_RING: crate::c_ulonglong = 0x180000000; + +pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: crate::c_int = 48; +pub const XSK_UNALIGNED_BUF_ADDR_MASK: crate::c_ulonglong = + (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1; + +pub const XDP_PKT_CONTD: crate::__u32 = 1 << 0; + +pub const XDP_UMEM_TX_SW_CSUM: crate::__u32 = 1 << 1; +pub const XDP_UMEM_TX_METADATA_LEN: crate::__u32 = 1 << 2; + +pub const XDP_TXMD_FLAGS_TIMESTAMP: crate::__u32 = 1 << 0; +pub const XDP_TXMD_FLAGS_CHECKSUM: crate::__u32 = 1 << 1; -pub const XDP_TXMD_FLAGS_TIMESTAMP: __u32 = 1 << 0; -pub const XDP_TXMD_FLAGS_CHECKSUM: __u32 = 1 << 1; +pub const XDP_TX_METADATA: crate::__u32 = 1 << 1; -pub const XDP_TX_METADATA: __u32 = 1 << 1; +pub const SOL_XDP: c_int = 283; // linux/mount.h pub const MOUNT_ATTR_RDONLY: crate::__u64 = 0x00000001; diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 81ee07483e7b4..7463f064ada4e 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -314,84 +314,6 @@ s! { pub esterror: c_long, } - // linux/if_xdp.h - - pub struct sockaddr_xdp { - pub sxdp_family: crate::__u16, - pub sxdp_flags: crate::__u16, - pub sxdp_ifindex: crate::__u32, - pub sxdp_queue_id: crate::__u32, - pub sxdp_shared_umem_fd: crate::__u32, - } - - pub struct xdp_ring_offset { - pub producer: crate::__u64, - pub consumer: crate::__u64, - pub desc: crate::__u64, - pub flags: crate::__u64, - } - - pub struct xdp_mmap_offsets { - pub rx: xdp_ring_offset, - pub tx: xdp_ring_offset, - pub fr: xdp_ring_offset, - pub cr: xdp_ring_offset, - } - - pub struct xdp_ring_offset_v1 { - pub producer: crate::__u64, - pub consumer: crate::__u64, - pub desc: crate::__u64, - } - - pub struct xdp_mmap_offsets_v1 { - pub rx: xdp_ring_offset_v1, - pub tx: xdp_ring_offset_v1, - pub fr: xdp_ring_offset_v1, - pub cr: xdp_ring_offset_v1, - } - - pub struct xdp_umem_reg { - pub addr: crate::__u64, - pub len: crate::__u64, - pub chunk_size: crate::__u32, - pub headroom: crate::__u32, - pub flags: crate::__u32, - pub tx_metadata_len: crate::__u32, - } - - pub struct xdp_umem_reg_v1 { - pub addr: crate::__u64, - pub len: crate::__u64, - pub chunk_size: crate::__u32, - pub headroom: crate::__u32, - } - - pub struct xdp_statistics { - pub rx_dropped: crate::__u64, - pub rx_invalid_descs: crate::__u64, - pub tx_invalid_descs: crate::__u64, - pub rx_ring_full: crate::__u64, - pub rx_fill_ring_empty_descs: crate::__u64, - pub tx_ring_empty_descs: crate::__u64, - } - - pub struct xdp_statistics_v1 { - pub rx_dropped: crate::__u64, - pub rx_invalid_descs: crate::__u64, - pub tx_invalid_descs: crate::__u64, - } - - pub struct xdp_options { - pub flags: crate::__u32, - } - - pub struct xdp_desc { - pub addr: crate::__u64, - pub len: crate::__u32, - pub options: crate::__u32, - } - // netinet/tcp.h pub struct tcp_info { @@ -958,40 +880,6 @@ pub const TIME_ERROR: c_int = 5; pub const TIME_BAD: c_int = TIME_ERROR; pub const MAXTC: c_long = 6; -pub const SOL_XDP: c_int = 283; - -// linux/if_xdp.h -pub const XDP_SHARED_UMEM: crate::__u16 = 1 << 0; -pub const XDP_COPY: crate::__u16 = 1 << 1; -pub const XDP_ZEROCOPY: crate::__u16 = 1 << 2; -pub const XDP_USE_NEED_WAKEUP: crate::__u16 = 1 << 3; -pub const XDP_USE_SG: crate::__u16 = 1 << 4; - -pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: crate::__u32 = 1 << 0; - -pub const XDP_RING_NEED_WAKEUP: crate::__u32 = 1 << 0; - -pub const XDP_MMAP_OFFSETS: c_int = 1; -pub const XDP_RX_RING: c_int = 2; -pub const XDP_TX_RING: c_int = 3; -pub const XDP_UMEM_REG: c_int = 4; -pub const XDP_UMEM_FILL_RING: c_int = 5; -pub const XDP_UMEM_COMPLETION_RING: c_int = 6; -pub const XDP_STATISTICS: c_int = 7; -pub const XDP_OPTIONS: c_int = 8; - -pub const XDP_OPTIONS_ZEROCOPY: crate::__u32 = 1 << 0; - -pub const XDP_PGOFF_RX_RING: off_t = 0; -pub const XDP_PGOFF_TX_RING: off_t = 0x80000000; -pub const XDP_UMEM_PGOFF_FILL_RING: c_ulonglong = 0x100000000; -pub const XDP_UMEM_PGOFF_COMPLETION_RING: c_ulonglong = 0x180000000; - -pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: c_int = 48; -pub const XSK_UNALIGNED_BUF_ADDR_MASK: c_ulonglong = (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1; - -pub const XDP_PKT_CONTD: crate::__u32 = 1 << 0; - pub const _CS_V6_ENV: c_int = 1148; pub const _CS_V7_ENV: c_int = 1149; From df2251448d96cf21d0638a0ef24d00cb7c703024 Mon Sep 17 00:00:00 2001 From: Huang Qi Date: Thu, 26 Dec 2024 16:11:39 +0800 Subject: [PATCH 0498/1228] feat: add pw_passwd field to passwd struct in NuttX Signed-off-by: Huang Qi (backport ) (cherry picked from commit ec9ea2242ff6fa06126084b35f6a55140728e05b) --- src/unix/nuttx/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index f77b104493670..5ce6d89a938c5 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -52,6 +52,7 @@ s! { pub struct passwd { pub pw_name: *const c_char, + pub pw_passwd: *const c_char, pub pw_uid: u32, pub pw_gid: u32, pub pw_gecos: *const c_char, @@ -245,6 +246,7 @@ s! { // for example, struct passwd, https://pubs.opengroup.org/onlinepubs/009695399/basedefs/pwd.h.html, // POSIX only defines following fields in struct passwd: // char *pw_name User's login name. +// char *pw_passwd Encrypted password. // uid_t pw_uid Numerical user ID. // gid_t pw_gid Numerical group ID. // char *pw_dir Initial working directory. From 80adb61619ae716d4bd9ed6394b3e54d549a3c9d Mon Sep 17 00:00:00 2001 From: Huang Qi Date: Thu, 26 Dec 2024 16:11:53 +0800 Subject: [PATCH 0499/1228] fix: update tm_zone and d_name fields to use c_char type in NuttX Signed-off-by: Huang Qi (backport ) (cherry picked from commit cb668df8ba18319a91716c12f76bbc5e287ae861) --- src/unix/nuttx/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index 5ce6d89a938c5..58b8b71cfd70d 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -127,7 +127,7 @@ s! { pub tm_yday: i32, pub tm_isdst: i32, pub tm_gmtoff: isize, - pub tm_zone: *const i8, + pub tm_zone: *const c_char, __reserved: [usize; __DEFAULT_RESERVED_SIZE__], } @@ -164,7 +164,7 @@ s! { pub struct dirent { pub d_type: u8, - pub d_name: [i8; __NAME_MAX__ + 1], + pub d_name: [c_char; __NAME_MAX__ + 1], } pub struct fd_set { From 89d2bbf7b37e89b777a0c362c6b9afc9e22fb5c9 Mon Sep 17 00:00:00 2001 From: lvllvl <24905907+lvllvl@users.noreply.github.com> Date: Mon, 6 Jan 2025 21:55:57 +0000 Subject: [PATCH 0500/1228] chore: add labels to FIXMEs (backport ) (cherry picked from commit d1d9c2b0ef78fc78e8d41e230490a5c50b0c88d0) --- libc-test/build.rs | 98 +++++++++++++++++++++++----------------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 7efacf7a41e63..fbb91bdead989 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2662,8 +2662,8 @@ fn test_freebsd(target: &str) { // These constants may change or disappear in future OS releases, and they probably // have no legitimate use in applications anyway. - "CAP_UNUSED0_44" | "CAP_UNUSED0_57" | "CAP_UNUSED1_22" | "CAP_UNUSED1_57" | - "CAP_ALL0" | "CAP_ALL1" => true, + "CAP_UNUSED0_44" | "CAP_UNUSED0_57" | "CAP_UNUSED1_22" | "CAP_UNUSED1_57" + | "CAP_ALL0" | "CAP_ALL1" => true, _ => false, } @@ -3036,11 +3036,11 @@ fn test_emscripten(target: &str) { cfg.skip_const(move |name| { match name { - // FIXME: deprecated - SIGNUNUSED was removed in glibc 2.26 + // FIXME(deprecated): deprecated - SIGNUNUSED was removed in glibc 2.26 // users should use SIGSYS instead "SIGUNUSED" => true, - // FIXME: emscripten uses different constants to constructs these + // FIXME(emscripten): emscripten uses different constants to constructs these n if n.contains("__SIZEOF_PTHREAD") => true, // No epoll support @@ -3097,7 +3097,7 @@ fn test_emscripten(target: &str) { (struct_ == "siginfo_t" && field == "_pad") || // musl names this __dummy1 but it's still there (struct_ == "glob_t" && field == "gl_flags") || - // FIXME: After musl 1.1.24, it have only one field `sched_priority`, + // FIXME(emscripten): After musl 1.1.24, it have only one field `sched_priority`, // while other fields become reserved. (struct_ == "sched_param" && [ "sched_ss_low_priority", @@ -3264,7 +3264,7 @@ fn test_neutrino(target: &str) { cfg.skip_type(move |ty| { match ty { - // FIXME: `sighandler_t` type is incorrect, see: + // FIXME(sighandler): `sighandler_t` type is incorrect, see: // https://github.com/rust-lang/libc/issues/1359 "sighandler_t" => true, @@ -3282,7 +3282,7 @@ fn test_neutrino(target: &str) { match ty { "Elf64_Phdr" | "Elf32_Phdr" => true, - // FIXME: This is actually a union, not a struct + // FIXME(union): This is actually a union, not a struct "sigval" => true, // union @@ -3316,7 +3316,7 @@ fn test_neutrino(target: &str) { // wrong signature of callback ptr "__cxa_atexit" => true, - // FIXME: Our API is unsound. The Rust API allows aliasing + // FIXME(ctest): Our API is unsound. The Rust API allows aliasing // pointers, but the C API requires pointers not to alias. // We should probably be at least using `&`/`&mut` here, see: // https://github.com/gnzlbg/ctest/issues/68 @@ -3426,7 +3426,7 @@ fn test_vxworks(target: &str) { "pathLib.h", "mqueue.h", } - // FIXME + // FIXME(vxworks) cfg.skip_const(move |name| match name { // sighandler_t weirdness "SIG_DFL" | "SIG_ERR" | "SIG_IGN" @@ -3434,7 +3434,7 @@ fn test_vxworks(target: &str) { | "RTLD_DEFAULT" => true, _ => false, }); - // FIXME + // FIXME(vxworks) cfg.skip_type(move |ty| match ty { "stat64" | "sighandler_t" | "off64_t" => true, _ => false, @@ -3457,7 +3457,7 @@ fn test_vxworks(target: &str) { t => t.to_string(), }); - // FIXME + // FIXME(vxworks) cfg.skip_fn(move |name| match name { // sigval "sigqueue" | "_sigqueue" @@ -3670,7 +3670,7 @@ fn test_linux(target: &str) { "linux/netfilter_ipv6/ip6_tables.h", "linux/netlink.h", "linux/openat2.h", - // FIXME: some items require Linux >= 5.6: + // FIXME(linux): some items require Linux >= 5.6: "linux/ptp_clock.h", "linux/ptrace.h", "linux/quota.h", @@ -3733,7 +3733,7 @@ fn test_linux(target: &str) { s if s.ends_with("_nsec") && struct_.starts_with("stat") => { s.replace("e_nsec", ".tv_nsec") } - // FIXME: epoll_event.data is actually a union in C, but in Rust + // FIXME(linux): epoll_event.data is actually a union in C, but in Rust // it is only a u64 because we only expose one field // http://man7.org/linux/man-pages/man2/epoll_wait.2.html "u64" if struct_ == "epoll_event" => "data.u64".to_string(), @@ -3753,7 +3753,7 @@ fn test_linux(target: &str) { }); cfg.skip_type(move |ty| { - // FIXME: very recent additions to musl, not yet released. + // FIXME(musl): very recent additions to musl, not yet released. // also apparently some glibc versions if ty == "Elf32_Relr" || ty == "Elf64_Relr" { return true; @@ -3762,7 +3762,7 @@ fn test_linux(target: &str) { return true; } match ty { - // FIXME: `sighandler_t` type is incorrect, see: + // FIXME(sighandler): `sighandler_t` type is incorrect, see: // https://github.com/rust-lang/libc/issues/1359 "sighandler_t" => true, @@ -3800,7 +3800,7 @@ fn test_linux(target: &str) { return true; } - // FIXME: CI has old headers + // FIXME(linux): CI has old headers if ty == "ptp_sys_offset_extended" { return true; } @@ -3810,7 +3810,7 @@ fn test_linux(target: &str) { return true; } - // FIXME: sparc64 CI has old headers + // FIXME(linux): sparc64 CI has old headers if sparc64 && (ty == "uinput_ff_erase" || ty == "uinput_abs_setup") { return true; } @@ -3833,7 +3833,7 @@ fn test_linux(target: &str) { return true; } - // FIXME: musl doesn't compile with `struct fanout_args` for unknown reasons. + // FIXME(musl): musl doesn't compile with `struct fanout_args` for unknown reasons. if musl && ty == "fanout_args" { return true; } @@ -3851,7 +3851,7 @@ fn test_linux(target: &str) { // which is absent in glibc, has to be defined. "__timeval" => true, - // FIXME: This is actually a union, not a struct + // FIXME(union): This is actually a union, not a struct "sigval" => true, // This type is tested in the `linux_termios.rs` file since there @@ -3859,13 +3859,13 @@ fn test_linux(target: &str) { // structs. "termios2" => true, - // FIXME: remove once we set minimum supported glibc version. + // FIXME(linux): remove once we set minimum supported glibc version. // ucontext_t added a new field as of glibc 2.28; our struct definition is // conservative and omits the field, but that means the size doesn't match for newer // glibcs (see https://github.com/rust-lang/libc/issues/1410) "ucontext_t" if gnu => true, - // FIXME: Somehow we cannot include headers correctly in glibc 2.30. + // FIXME(linux): Somehow we cannot include headers correctly in glibc 2.30. // So let's ignore for now and re-visit later. // Probably related: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91085 "statx" => true, @@ -3885,14 +3885,14 @@ fn test_linux(target: &str) { "sctp_initmsg" | "sctp_sndrcvinfo" | "sctp_sndinfo" | "sctp_rcvinfo" | "sctp_nxtinfo" | "sctp_prinfo" | "sctp_authinfo" => true, - // FIXME: requires >= 6.1 kernel headers + // FIXME(linux): requires >= 6.1 kernel headers "canxl_frame" => true, - // FIXME: The size of `iv` has been changed since Linux v6.0 + // FIXME(linux): The size of `iv` has been changed since Linux v6.0 // https://github.com/torvalds/linux/commit/94dfc73e7cf4a31da66b8843f0b9283ddd6b8381 "af_alg_iv" => true, - // FIXME: Requires >= 5.1 kernel headers. + // FIXME(linux): Requires >= 5.1 kernel headers. // Everything that uses install-musl.sh has 4.19 kernel headers. "tls12_crypto_info_aes_gcm_256" if (aarch64 || arm || i686 || s390x || x86_64) && musl => @@ -3900,7 +3900,7 @@ fn test_linux(target: &str) { true } - // FIXME: Requires >= 5.11 kernel headers. + // FIXME(linux): Requires >= 5.11 kernel headers. // Everything that uses install-musl.sh has 4.19 kernel headers. "tls12_crypto_info_chacha20_poly1305" if (aarch64 || arm || i686 || s390x || x86_64) && musl => @@ -3908,26 +3908,26 @@ fn test_linux(target: &str) { true } - // FIXME: Requires >= 5.3 kernel headers. + // FIXME(linux): Requires >= 5.3 kernel headers. // Everything that uses install-musl.sh has 4.19 kernel headers. "xdp_options" if musl => true, - // FIXME: Requires >= 5.4 kernel headers. + // FIXME(linux): Requires >= 5.4 kernel headers. // Everything that uses install-musl.sh has 4.19 kernel headers. "xdp_ring_offset" | "xdp_mmap_offsets" if musl => true, - // FIXME: Requires >= 6.8 kernel headers. + // FIXME(linux): Requires >= 6.8 kernel headers. // A field was added in 6.8. // https://github.com/torvalds/linux/commit/341ac980eab90ac1f6c22ee9f9da83ed9604d899 // The previous version of the struct was removed in 6.11 due to a bug. // https://github.com/torvalds/linux/commit/32654bbd6313b4cfc82297e6634fa9725c3c900f "xdp_umem_reg" => true, - // FIXME: Requires >= 5.9 kernel headers. + // FIXME(linux): Requires >= 5.9 kernel headers. // Everything that uses install-musl.sh has 4.19 kernel headers. "xdp_statistics" if musl => true, - // FIXME: Requires >= 6.8 kernel headers. + // FIXME(linux): Requires >= 6.8 kernel headers. "xsk_tx_metadata" | "__c_anonymous_xsk_tx_metadata_union" | "xsk_tx_metadata_request" @@ -3951,7 +3951,7 @@ fn test_linux(target: &str) { // kernel so we can drop this and test the type once this new version is used in CI. "sched_attr" => true, - // FIXME: Requires >= 6.9 kernel headers. + // FIXME(linux): Requires >= 6.9 kernel headers. "epoll_params" => true, _ => false, @@ -3996,7 +3996,7 @@ fn test_linux(target: &str) { } } if musl { - // FIXME: Requires >= 5.0 kernel headers + // FIXME(linux): Requires >= 5.0 kernel headers if name == "SECCOMP_GET_NOTIF_SIZES" || name == "SECCOMP_FILTER_FLAG_NEW_LISTENER" || name == "SECCOMP_FILTER_FLAG_TSYNC_ESRCH" @@ -4007,11 +4007,11 @@ fn test_linux(target: &str) { { return true; } - // FIXME: Requires >= 4.20 kernel headers + // FIXME(linux): Requires >= 4.20 kernel headers if name == "PTP_SYS_OFFSET_EXTENDED" { return true; } - // FIXME: Requires >= 5.4 kernel headers + // FIXME(linux): Requires >= 5.4 kernel headers if name == "PTP_CLOCK_GETCAPS2" || name == "PTP_ENABLE_PPS2" || name == "PTP_EXTTS_REQUEST2" @@ -4024,7 +4024,7 @@ fn test_linux(target: &str) { { return true; } - // FIXME: Requires >= 5.4.1 kernel headers + // FIXME(linux): Requires >= 5.4.1 kernel headers if name.starts_with("J1939") || name.starts_with("RTEXT_FILTER_") || name.starts_with("SO_J1939") @@ -4032,7 +4032,7 @@ fn test_linux(target: &str) { { return true; } - // FIXME: Requires >= 5.10 kernel headers + // FIXME(linux): Requires >= 5.10 kernel headers if name.starts_with("MEMBARRIER_CMD_REGISTER") || name.starts_with("MEMBARRIER_CMD_PRIVATE") { @@ -4073,15 +4073,15 @@ fn test_linux(target: &str) { // because including `linux/if_arp.h` causes some conflicts: "ARPHRD_CAN" => true, - // FIXME: deprecated: not available in any header + // FIXME(deprecated): deprecated: not available in any header // See: https://github.com/rust-lang/libc/issues/1356 "ENOATTR" => true, - // FIXME: SIGUNUSED was removed in glibc 2.26 + // FIXME(deprecated): SIGUNUSED was removed in glibc 2.26 // Users should use SIGSYS instead. "SIGUNUSED" => true, - // FIXME: conflicts with glibc headers and is tested in + // FIXME(linux): conflicts with glibc headers and is tested in // `linux_termios.rs` below: | "BOTHER" | "IBSHIFT" @@ -4090,11 +4090,11 @@ fn test_linux(target: &str) { | "TCSETSW2" | "TCSETSF2" => true, - // FIXME: on musl the pthread types are defined a little differently + // FIXME(musl): on musl the pthread types are defined a little differently // - these constants are used by the glibc implementation. n if musl && n.contains("__SIZEOF_PTHREAD") => true, - // FIXME: It was extended to 4096 since glibc 2.31 (Linux 5.4). + // FIXME(linux): It was extended to 4096 since glibc 2.31 (Linux 5.4). // We should do so after a while. "SOMAXCONN" if gnu => true, @@ -4106,37 +4106,37 @@ fn test_linux(target: &str) { | "IPPROTO_ETHERNET" | "IPPROTO_MPTCP" => true, - // FIXME: Not yet implemented on sparc64 + // FIXME(linux): Not yet implemented on sparc64 "SYS_clone3" if sparc64 => true, - // FIXME: Not defined on ARM, gnueabihf, musl, PowerPC, riscv64, s390x, and sparc64. + // FIXME(linux): Not defined on ARM, gnueabihf, musl, PowerPC, riscv64, s390x, and sparc64. "SYS_memfd_secret" if arm | gnueabihf | musl | ppc | riscv64 | s390x | sparc64 => true, - // FIXME: Added in Linux 5.16 + // FIXME(linux): Added in Linux 5.16 // https://github.com/torvalds/linux/commit/039c0ec9bb77446d7ada7f55f90af9299b28ca49 "SYS_futex_waitv" => true, - // FIXME: Added in Linux 5.17 + // FIXME(linux): Added in Linux 5.17 // https://github.com/torvalds/linux/commit/c6018b4b254971863bd0ad36bb5e7d0fa0f0ddb0 "SYS_set_mempolicy_home_node" => true, - // FIXME: Added in Linux 5.18 + // FIXME(linux): Added in Linux 5.18 // https://github.com/torvalds/linux/commit/8b5413647262dda8d8d0e07e14ea1de9ac7cf0b2 "NFQA_PRIORITY" => true, - // FIXME: requires more recent kernel headers on CI + // FIXME(linux): requires more recent kernel headers on CI | "UINPUT_VERSION" | "SW_MAX" | "SW_CNT" if ppc64 || riscv64 => true, - // FIXME: requires more recent kernel headers on CI + // FIXME(linux): requires more recent kernel headers on CI | "MFD_EXEC" | "MFD_NOEXEC_SEAL" | "SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV" if sparc64 => true, - // FIXME: Not currently available in headers on ARM and musl. + // FIXME(linux): Not currently available in headers on ARM and musl. "NETLINK_GET_STRICT_CHK" if arm => true, // Skip as this signal codes and trap reasons need newer headers From 8a77755a432895e20a1a765f98a8c49dfc7f8230 Mon Sep 17 00:00:00 2001 From: Huang Qi Date: Fri, 24 Jan 2025 21:32:07 +0800 Subject: [PATCH 0501/1228] Remove pthread_set_name_np from NuttX Removed `pthread_set_name_np` function from the NuttX bindings as it does not exist in the NuttX API, this change aligns the code with the actual NuttX implementation Signed-off-by: Huang Qi (backport ) (cherry picked from commit f4ab0b11a443e5592d348256337a6b621ea5dd09) --- src/unix/nuttx/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index 58b8b71cfd70d..8446eafaf19e6 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -556,7 +556,6 @@ extern "C" { pub fn clock_gettime(clockid: clockid_t, tp: *mut timespec) -> i32; pub fn futimens(fd: i32, times: *const timespec) -> i32; pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, clock_id: clockid_t) -> i32; - pub fn pthread_set_name_np(thread: pthread_t, name: *const c_char) -> i32; pub fn pthread_setname_np(thread: pthread_t, name: *const c_char) -> i32; pub fn pthread_getname_np(thread: pthread_t, name: *mut c_char, len: usize) -> i32; pub fn getrandom(buf: *mut c_void, buflen: usize, flags: u32) -> isize; From 9ee1fc9839a47ac196e21eb5eef98bb42896c5a0 Mon Sep 17 00:00:00 2001 From: lvllvl <24905907+lvllvl@users.noreply.github.com> Date: Fri, 7 Feb 2025 00:49:19 +0000 Subject: [PATCH 0502/1228] chore: add labels to FIXMEs (backport ) (cherry picked from commit 67d2ead291e2a1c3c1a3c53a6a90070925fec8cf) --- libc-test/build.rs | 72 +++++++++++++++++++++++----------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index fbb91bdead989..27195892b9a0a 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4196,26 +4196,26 @@ fn test_linux(target: &str) { | "CANXL_XLF" => true, - // FIXME: Parts of netfilter/nfnetlink*.h require more recent kernel headers: + // FIXME(linux): Parts of netfilter/nfnetlink*.h require more recent kernel headers: | "RTNLGRP_MCTP_IFADDR" // linux v5.17+ | "RTNLGRP_TUNNEL" // linux v5.18+ | "RTNLGRP_STATS" // linux v5.18+ => true, - // FIXME: The below is no longer const in glibc 2.34: + // FIXME(linux): The below is no longer const in glibc 2.34: // https://github.com/bminor/glibc/commit/5d98a7dae955bafa6740c26eaba9c86060ae0344 | "PTHREAD_STACK_MIN" | "SIGSTKSZ" | "MINSIGSTKSZ" if gnu => true, - // FIXME: Linux >= 5.16: + // FIXME(linux): Linux >= 5.16: // https://github.com/torvalds/linux/commit/42df6e1d221dddc0f2acf2be37e68d553ad65f96 "NF_NETDEV_EGRESS" if sparc64 => true, // value changed "NF_NETDEV_NUMHOOKS" if sparc64 => true, - // FIXME: requires Linux >= v5.8 + // FIXME(linux): requires Linux >= v5.8 "IF_LINK_MODE_TESTING" if sparc64 => true, // DIFF(main): fixed in 1.0 with e9abac9ac2 @@ -4227,7 +4227,7 @@ fn test_linux(target: &str) { // kernel 6.2 minimum "TUN_F_USO4" | "TUN_F_USO6" | "IFF_NO_CARRIER" => true, - // FIXME: Requires more recent kernel headers + // FIXME(linux): Requires more recent kernel headers | "IFLA_PARENT_DEV_NAME" // linux v5.13+ | "IFLA_PARENT_DEV_BUS_NAME" // linux v5.13+ | "IFLA_GRO_MAX_SIZE" // linux v5.16+ @@ -4240,10 +4240,10 @@ fn test_linux(target: &str) { // kernel 6.5 minimum "MOVE_MOUNT_BENEATH" => true, - // FIXME: Requires linux 6.1 + // FIXME(linux): Requires linux 6.1 "ALG_SET_KEY_BY_KEY_SERIAL" | "ALG_SET_DRBG_ENTROPY" => true, - // FIXME: Requires more recent kernel headers + // FIXME(linux): Requires more recent kernel headers | "FAN_FS_ERROR" // linux v5.16+ | "FAN_RENAME" // linux v5.17+ | "FAN_REPORT_TARGET_FID" // linux v5.17+ @@ -4271,10 +4271,10 @@ fn test_linux(target: &str) { | "FAN_EPIDFD" if musl => true, - // FIXME: Requires linux 6.5 + // FIXME(linux): Requires linux 6.5 "NFT_MSG_MAX" => true, - // FIXME: Requires >= 6.6 kernel headers. + // FIXME(linux): Requires >= 6.6 kernel headers. "XDP_USE_SG" | "XDP_PKT_CONTD" => @@ -4282,7 +4282,7 @@ fn test_linux(target: &str) { true } - // FIXME: Requires >= 6.8 kernel headers. + // FIXME(linux): Requires >= 6.8 kernel headers. "XDP_UMEM_TX_SW_CSUM" | "XDP_TXMD_FLAGS_TIMESTAMP" | "XDP_TXMD_FLAGS_CHECKSUM" @@ -4292,20 +4292,20 @@ fn test_linux(target: &str) { true } - // FIXME: Requires >= 6.11 kernel headers. + // FIXME(linux): Requires >= 6.11 kernel headers. "XDP_UMEM_TX_METADATA_LEN" => { true } - // FIXME: Requires >= 6.6 kernel headers. + // FIXME(linux): Requires >= 6.6 kernel headers. "SYS_fchmodat2" => true, - // FIXME: Requires >= 6.10 kernel headers. + // FIXME(linux): Requires >= 6.10 kernel headers. "SYS_mseal" => true, - // FIXME: seems to not be available all the time (from : + // FIXME(linux): seems to not be available all the time (from : "PF_VCPU" | "PF_IDLE" | "PF_EXITING" @@ -4334,11 +4334,11 @@ fn test_linux(target: &str) { | "PF_BLOCK_TS" | "PF_SUSPEND_TASK" => true, - // FIXME: Requires >= 6.9 kernel headers. + // FIXME(linux): Requires >= 6.9 kernel headers. "EPIOCSPARAMS" | "EPIOCGPARAMS" => true, - // FIXME: Requires >= 6.11 kernel headers. + // FIXME(linux): Requires >= 6.11 kernel headers. "MAP_DROPPABLE" => true, // FIXME(linux): Requires >= 6.2 kernel headers. @@ -4375,7 +4375,7 @@ fn test_linux(target: &str) { // test the XSI version below. "strerror_r" => true, - // FIXME: Our API is unsound. The Rust API allows aliasing + // FIXME(linux): Our API is unsound. The Rust API allows aliasing // pointers, but the C API requires pointers not to alias. // We should probably be at least using `&`/`&mut` here, see: // https://github.com/gnzlbg/ctest/issues/68 @@ -4386,10 +4386,10 @@ fn test_linux(target: &str) { // Needs glibc 2.35 or later. "posix_spawn_file_actions_addtcsetpgrp_np" if gnu && sparc64 => true, - // FIXME: Deprecated since glibc 2.30. Remove fn once upstream does. + // FIXME(linux): Deprecated since glibc 2.30. Remove fn once upstream does. "sysctl" if gnu => true, - // FIXME: It now takes c_void instead of timezone since glibc 2.31. + // FIXME(linux): It now takes c_void instead of timezone since glibc 2.31. "gettimeofday" if gnu => true, // These are all implemented as static inline functions in uclibc, so @@ -4417,7 +4417,7 @@ fn test_linux(target: &str) { // assume it's a int instead. "getnameinfo" if uclibc => true, - // FIXME: This needs musl 1.2.2 or later. + // FIXME(musl): This needs musl 1.2.2 or later. "gettid" if musl => true, // Needs glibc 2.33 or later. @@ -4453,7 +4453,7 @@ fn test_linux(target: &str) { "posix_basename" if gnu => true, "gnu_basename" if gnu => true, - // FIXME: function pointers changed since Ubuntu 23.10 + // FIXME(linux): function pointers changed since Ubuntu 23.10 "strtol" | "strtoll" | "strtoul" | "strtoull" | "fscanf" | "scanf" | "sscanf" => true, // Added in musl 1.2.5 @@ -4515,7 +4515,7 @@ fn test_linux(target: &str) { field == "ssi_syscall" || field == "ssi_call_addr" || field == "ssi_arch")) || - // FIXME: After musl 1.1.24, it have only one field `sched_priority`, + // FIXME(musl): After musl 1.1.24, it have only one field `sched_priority`, // while other fields become reserved. (struct_ == "sched_param" && [ "sched_ss_low_priority", @@ -4523,11 +4523,11 @@ fn test_linux(target: &str) { "sched_ss_init_budget", "sched_ss_max_repl", ].contains(&field) && musl) || - // FIXME: After musl 1.1.24, the type becomes `int` instead of `unsigned short`. + // FIXME(musl): After musl 1.1.24, the type becomes `int` instead of `unsigned short`. (struct_ == "ipc_perm" && field == "__seq" && aarch64_musl) || // glibc uses unnamed fields here and Rust doesn't support that yet (struct_ == "timex" && field.starts_with("__unused")) || - // FIXME: It now takes mode_t since glibc 2.31 on some targets. + // FIXME(linux): It now takes mode_t since glibc 2.31 on some targets. (struct_ == "ipc_perm" && field == "mode" && ((x86_64 || i686 || arm || riscv64) && gnu || x86_64_gnux32) ) || @@ -4574,9 +4574,9 @@ fn test_linux(target: &str) { }); cfg.skip_roundtrip(move |s| match s { - // FIXME: + // FIXME(1.0): "mcontext_t" if s390x => true, - // FIXME: This is actually a union. + // FIXME(union): This is actually a union. "fpreg_t" if s390x => true, // The test doesn't work on some env: @@ -4610,7 +4610,7 @@ fn test_linux(target: &str) { "fanotify_event_info_fid" => true, "cmsghdr" => true, - // FIXME: the call ABI of max_align_t is incorrect on these platforms: + // FIXME(linux): the call ABI of max_align_t is incorrect on these platforms: "max_align_t" if i686 || ppc64 => true, _ => false, @@ -4941,13 +4941,13 @@ fn test_haiku(target: &str) { return true; } match ty { - // FIXME: actually a union + // FIXME(union): actually a union "sigval" => true, - // FIXME: locale_t does not exist on Haiku + // FIXME(haiku): locale_t does not exist on Haiku "locale_t" => true, - // FIXME: rusage has a different layout on Haiku + // FIXME(haiku): rusage has a different layout on Haiku "rusage" => true, - // FIXME?: complains that rust aligns on 4 byte boundary, but + // FIXME(haiku): complains that rust aligns on 4 byte boundary, but // Haiku does not align it at all. "in6_addr" => true, // The d_name attribute is an array of 1 on Haiku, with the @@ -4972,7 +4972,7 @@ fn test_haiku(target: &str) { cfg.skip_type(move |ty| { match ty { - // FIXME: locale_t does not exist on Haiku + // FIXME(haiku): locale_t does not exist on Haiku "locale_t" => true, // These cause errors, to be reviewed in the future "sighandler_t" => true, @@ -4987,7 +4987,7 @@ fn test_haiku(target: &str) { cfg.skip_fn(move |name| { // skip those that are manually verified match name { - // FIXME: https://github.com/rust-lang/libc/issues/1272 + // FIXME(haiku): https://github.com/rust-lang/libc/issues/1272 "execv" | "execve" | "execvp" | "execvpe" => true, // FIXME: does not exist on haiku "open_wmemstream" => true, @@ -5013,7 +5013,7 @@ fn test_haiku(target: &str) { cfg.skip_const(move |name| { match name { - // FIXME: these constants do not exist on Haiku + // FIXME(haiku): these constants do not exist on Haiku "DT_UNKNOWN" | "DT_FIFO" | "DT_CHR" | "DT_DIR" | "DT_BLK" | "DT_REG" | "DT_LNK" | "DT_SOCK" => true, "USRQUOTA" | "GRPQUOTA" => true, @@ -5039,7 +5039,7 @@ fn test_haiku(target: &str) { cfg.skip_field(move |struct_, field| { match (struct_, field) { - // FIXME: the stat struct actually has timespec members, whereas + // FIXME(time): the stat struct actually has timespec members, whereas // the current representation has these unpacked. ("stat", "st_atime") => true, ("stat", "st_atime_nsec") => true, @@ -5069,7 +5069,7 @@ fn test_haiku(target: &str) { }); cfg.skip_roundtrip(move |s| match s { - // FIXME: for some reason the roundtrip check fails for cpu_info + // FIXME(1.0): for some reason the roundtrip check fails for cpu_info "cpu_info" => true, _ => false, }); From 0149964361364aec583fae0559e50ddd0409b376 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 14 Feb 2025 19:51:48 +0000 Subject: [PATCH 0503/1228] linux: deprecate obsolete packet filter interfaces. sockaddr_ll/AF_PACKET are in place since Linux 2.2 (backport ) (cherry picked from commit eb78ad0090fb2d2195bd4564368468334d399dea) --- src/unix/linux_like/android/mod.rs | 1 + src/unix/linux_like/linux/gnu/mod.rs | 1 + src/unix/linux_like/linux/mod.rs | 1 + src/unix/linux_like/linux/musl/mod.rs | 1 + src/unix/linux_like/linux/uclibc/mod.rs | 1 + 5 files changed, 5 insertions(+) diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 5debbe8fb967d..2ba535d635961 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1474,6 +1474,7 @@ pub const SOCK_STREAM: c_int = 1; pub const SOCK_DGRAM: c_int = 2; pub const SOCK_SEQPACKET: c_int = 5; pub const SOCK_DCCP: c_int = 6; +#[deprecated(since = "0.2.70", note = "AF_PACKET must be used instead")] pub const SOCK_PACKET: c_int = 10; pub const IPPROTO_MAX: c_int = 256; diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 6d3ffd45885aa..0272166e76e14 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -763,6 +763,7 @@ pub const ENOTSUP: c_int = EOPNOTSUPP; pub const SOCK_SEQPACKET: c_int = 5; pub const SOCK_DCCP: c_int = 6; +#[deprecated(since = "0.2.70", note = "AF_PACKET must be used instead")] pub const SOCK_PACKET: c_int = 10; pub const AF_IB: c_int = 27; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index fffeeaeb49d6f..d9936fdb4f7e7 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -186,6 +186,7 @@ s! { pub mr_address: [c_uchar; 8], } + #[deprecated(since = "0.2.70", note = "sockaddr_ll type must be used instead")] pub struct sockaddr_pkt { pub spkt_family: c_ushort, pub spkt_device: [c_uchar; 14], diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 7463f064ada4e..b474a6f3e4dfe 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -716,6 +716,7 @@ pub const MAP_ANONYMOUS: c_int = MAP_ANON; pub const SOCK_SEQPACKET: c_int = 5; pub const SOCK_DCCP: c_int = 6; pub const SOCK_NONBLOCK: c_int = O_NONBLOCK; +#[deprecated(since = "0.2.70", note = "AF_PACKET must be used instead")] pub const SOCK_PACKET: c_int = 10; pub const SOMAXCONN: c_int = 128; diff --git a/src/unix/linux_like/linux/uclibc/mod.rs b/src/unix/linux_like/linux/uclibc/mod.rs index 7495f07878119..272f3c4e223b2 100644 --- a/src/unix/linux_like/linux/uclibc/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mod.rs @@ -382,6 +382,7 @@ pub const RUSAGE_THREAD: c_int = 1; pub const SHM_EXEC: c_int = 0o100000; pub const SIGPOLL: c_int = SIGIO; pub const SOCK_DCCP: c_int = 6; +#[deprecated(since = "0.2.70", note = "AF_PACKET must be used instead")] pub const SOCK_PACKET: c_int = 10; pub const TCP_COOKIE_TRANSACTIONS: c_int = 15; pub const UDP_GRO: c_int = 104; From 7d17f1641b9bde14286be5d5041efc356c9c5869 Mon Sep 17 00:00:00 2001 From: lvllvl <24905907+lvllvl@users.noreply.github.com> Date: Mon, 6 Jan 2025 00:49:46 +0000 Subject: [PATCH 0504/1228] chore: add labels to FIXMEs (backport ) (cherry picked from commit 5096e10057a48869119b4f267f78366b425c53fa) --- libc-test/build.rs | 98 +++++++++++++++++++++++----------------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 27195892b9a0a..994e359d49f79 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -724,7 +724,7 @@ fn test_windows(target: &str) { // Just pass all these through, no need for a "struct" prefix "FILE" | "DIR" | "Dl_info" => ty.to_string(), - // FIXME: these don't exist: + // FIXME(windows): these don't exist: "time64_t" => "__time64_t".to_string(), "ssize_t" => "SSIZE_T".to_string(), @@ -756,7 +756,7 @@ fn test_windows(target: &str) { cfg.skip_type(move |name| match name { "SSIZE_T" if !gnu => true, "ssize_t" if !gnu => true, - // FIXME: The size and alignment of this type are incorrect + // FIXME(windows): The size and alignment of this type are incorrect "time_t" if gnu && i686 => true, _ => false, }); @@ -766,7 +766,7 @@ fn test_windows(target: &str) { return true; } match ty { - // FIXME: The size and alignment of this struct are incorrect + // FIXME(windows): The size and alignment of this struct are incorrect "timespec" if gnu && i686 => true, _ => false, } @@ -774,12 +774,12 @@ fn test_windows(target: &str) { cfg.skip_const(move |name| { match name { - // FIXME: API error: + // FIXME(windows): API error: // SIG_ERR type is "void (*)(int)", not "int" "SIG_ERR" | // Similar for SIG_DFL/IGN/GET/SGE/ACK "SIG_DFL" | "SIG_IGN" | "SIG_GET" | "SIG_SGE" | "SIG_ACK" => true, - // FIXME: newer windows-gnu environment on CI? + // FIXME(windows): newer windows-gnu environment on CI? "_O_OBTAIN_DIR" if gnu => true, _ => false, } @@ -789,7 +789,7 @@ fn test_windows(target: &str) { "CONTEXT" if field == "Fp" => true, _ => false, }); - // FIXME: All functions point to the wrong addresses? + // FIXME(windows): All functions point to the wrong addresses? cfg.skip_fn_ptrcheck(|_| true); cfg.skip_signededness(move |c| { @@ -1093,7 +1093,7 @@ fn test_solarish(target: &str) { // are still ABI compatible. We can wait for the next major release // to be compliant with the new API. // - // FIXME: unskip these for next major release + // FIXME(solarish): unskip these for next major release "setpriority" | "personality" => true, // signal is defined in terms of sighandler_t, so ignore @@ -1131,7 +1131,7 @@ fn test_solarish(target: &str) { // excluded from the tests. "getifaddrs" if is_illumos => true, - // FIXME: Our API is unsound. The Rust API allows aliasing + // FIXME(ctest): Our API is unsound. The Rust API allows aliasing // pointers, but the C API requires pointers not to alias. // We should probably be at least using `&`/`&mut` here, see: // https://github.com/gnzlbg/ctest/issues/68 @@ -1277,7 +1277,7 @@ fn test_netbsd(target: &str) { return true; } match ty { - // FIXME: sighandler_t is crazy across platforms + // FIXME(netbsd): sighandler_t is crazy across platforms "sighandler_t" => true, _ => false, } @@ -1321,7 +1321,7 @@ fn test_netbsd(target: &str) { cfg.skip_fn(move |name| { match name { - // FIXME: https://github.com/rust-lang/libc/issues/1272 + // FIXME(netbsd): https://github.com/rust-lang/libc/issues/1272 "execv" | "execve" | "execvp" => true, // FIXME: netbsd 10 minimum "getentropy" | "getrandom" => true, @@ -1462,7 +1462,7 @@ fn test_dragonflybsd(target: &str) { | "Elf64_Shdr" | "Elf32_Sym" | "Elf64_Sym" | "Elf32_Ehdr" | "Elf64_Ehdr" | "Elf32_Chdr" | "Elf64_Chdr" => ty.to_string(), - // FIXME: OSX calls this something else + // FIXME(dragonflybsd): OSX calls this something else "sighandler_t" => "sig_t".to_string(), t if is_union => format!("union {}", t), @@ -1507,7 +1507,7 @@ fn test_dragonflybsd(target: &str) { return true; } match ty { - // FIXME: These are tested as part of the linux_fcntl tests since + // FIXME(dragonflybsd): These are tested as part of the linux_fcntl tests since // there are header conflicts when including them with all the other // structs. "termios2" => true, @@ -1874,7 +1874,7 @@ fn test_android(target: &str) { // Our stat *_nsec fields normally don't actually exist but are part // of a timeval struct s if s.ends_with("_nsec") && struct_.starts_with("stat") => s.to_string(), - // FIXME: appears that `epoll_event.data` is an union + // FIXME(union): appears that `epoll_event.data` is an union "u64" if struct_ == "epoll_event" => "data.u64".to_string(), // The following structs have a field called `type` in C, // but `type` is a Rust keyword, so these fields are translated @@ -1893,7 +1893,7 @@ fn test_android(target: &str) { cfg.skip_type(move |ty| { match ty { - // FIXME: `sighandler_t` type is incorrect, see: + // FIXME(android): `sighandler_t` type is incorrect, see: // https://github.com/rust-lang/libc/issues/1359 "sighandler_t" => true, @@ -1904,7 +1904,7 @@ fn test_android(target: &str) { "posix_spawn_file_actions_t" => true, "posix_spawnattr_t" => true, - // FIXME: "'__uint128' undeclared" in C + // FIXME(android): "'__uint128' undeclared" in C "__uint128" => true, _ => false, @@ -1927,12 +1927,12 @@ fn test_android(target: &str) { // These are tested in the `linux_elf.rs` file. "Elf64_Phdr" | "Elf32_Phdr" => true, - // FIXME: The type of `iv` has been changed. + // FIXME(android): The type of `iv` has been changed. "af_alg_iv" => true, - // FIXME: The size of struct has been changed: + // FIXME(android): The size of struct has been changed: "inotify_event" => true, - // FIXME: The field has been changed: + // FIXME(android): The field has been changed: "sockaddr_vm" => true, _ => false, @@ -1959,13 +1959,13 @@ fn test_android(target: &str) { // The `ARPHRD_CAN` is tested in the `linux_if_arp.rs` tests: "ARPHRD_CAN" => true, - // FIXME: deprecated: not available in any header + // FIXME(deprecated): deprecated: not available in any header // See: https://github.com/rust-lang/libc/issues/1356 "ENOATTR" => true, - // FIXME: still necessary? + // FIXME(android): still necessary? "SIG_DFL" | "SIG_ERR" | "SIG_IGN" => true, // sighandler_t weirdness - // FIXME: deprecated - removed in glibc 2.26 + // FIXME(deprecated): deprecated - removed in glibc 2.26 "SIGUNUSED" => true, // Needs a newer Android SDK for the definition @@ -1974,7 +1974,7 @@ fn test_android(target: &str) { // Requires Linux kernel 5.6 "VMADDR_CID_LOCAL" => true, - // FIXME: conflicts with standard C headers and is tested in + // FIXME(android): conflicts with standard C headers and is tested in // `linux_termios.rs` below: "BOTHER" => true, "IBSHIFT" => true, @@ -2004,7 +2004,7 @@ fn test_android(target: &str) { // kernel 6.2 minimum "TUN_F_USO4" | "TUN_F_USO6" | "IFF_NO_CARRIER" => true, - // FIXME: NDK r22 minimum required + // FIXME(android): NDK r22 minimum required | "FDB_NOTIFY_BIT" | "FDB_NOTIFY_INACTIVE_BIT" | "IFLA_ALT_IFNAME" @@ -2017,16 +2017,16 @@ fn test_android(target: &str) { | "NFEA_DONT_REFRESH" | "NFEA_UNSPEC" => true, - // FIXME: NDK r23 minimum required + // FIXME(android): NDK r23 minimum required | "IFLA_PARENT_DEV_BUS_NAME" | "IFLA_PARENT_DEV_NAME" => true, - // FIXME: NDK r25 minimum required + // FIXME(android): NDK r25 minimum required | "IFLA_GRO_MAX_SIZE" | "NDA_FLAGS_EXT" | "NTF_EXT_MANAGED" => true, - // FIXME: NDK above r25 required + // FIXME(android): NDK above r25 required | "IFLA_ALLMULTI" | "IFLA_DEVLINK_PORT" | "IFLA_GRO_IPV4_MAX_SIZE" @@ -2040,7 +2040,7 @@ fn test_android(target: &str) { | "NTF_EXT_LOCKED" | "ALG_SET_DRBG_ENTROPY" => true, - // FIXME: Something has been changed on r26b: + // FIXME(android): Something has been changed on r26b: | "IPPROTO_MAX" | "NFNL_SUBSYS_COUNT" | "NF_NETDEV_NUMHOOKS" @@ -2048,10 +2048,10 @@ fn test_android(target: &str) { | "SW_MAX" | "SW_CNT" => true, - // FIXME: aarch64 env cannot find it: + // FIXME(android): aarch64 env cannot find it: | "PTRACE_GETREGS" | "PTRACE_SETREGS" if aarch64 => true, - // FIXME: The value has been changed on r26b: + // FIXME(android): The value has been changed on r26b: | "SYS_syscalls" if aarch64 => true, // From ``. @@ -2093,7 +2093,7 @@ fn test_android(target: &str) { cfg.skip_fn(move |name| { // skip those that are manually verified match name { - // FIXME: https://github.com/rust-lang/libc/issues/1272 + // FIXME(android): https://github.com/rust-lang/libc/issues/1272 "execv" | "execve" | "execvp" | "execvpe" | "fexecve" => true, // There are two versions of the sterror_r function, see @@ -2147,7 +2147,7 @@ fn test_android(target: &str) { // Added in API level 26, but some tests use level 24. "getdomainname" | "setdomainname" => true, - // FIXME: bad function pointers: + // FIXME(android): bad function pointers: "isalnum" | "isalpha" | "iscntrl" | "isdigit" | "isgraph" | "islower" | "isprint" | "ispunct" | "isspace" | "isupper" | "isxdigit" | "isblank" | "tolower" | "toupper" => true, @@ -2163,12 +2163,12 @@ fn test_android(target: &str) { (struct_ == "sigevent" && field == "sigev_value") || // this one is an anonymous union (struct_ == "ff_effect" && field == "u") || - // FIXME: `sa_sigaction` has type `sighandler_t` but that type is + // FIXME(android): `sa_sigaction` has type `sighandler_t` but that type is // incorrect, see: https://github.com/rust-lang/libc/issues/1359 (struct_ == "sigaction" && field == "sa_sigaction") || // signalfd had SIGSYS fields added in Android 4.19, but CI does not have that version yet. (struct_ == "signalfd_siginfo" && field == "ssi_call_addr") || - // FIXME: Seems the type has been changed on NDK r26b + // FIXME(android): Seems the type has been changed on NDK r26b (struct_ == "flock64" && (field == "l_start" || field == "l_len")) }); @@ -2360,7 +2360,7 @@ fn test_freebsd(target: &str) { | "devstat_match_flags" | "devstat_priority" => ty.to_string(), - // FIXME: https://github.com/rust-lang/libc/issues/1273 + // FIXME(freebsd): https://github.com/rust-lang/libc/issues/1273 "sighandler_t" => "sig_t".to_string(), t if is_union => format!("union {}", t), @@ -2423,12 +2423,12 @@ fn test_freebsd(target: &str) { true } - // FIXME: These are deprecated - remove in a couple of releases. + // FIXME(deprecated): These are deprecated - remove in a couple of releases. // These constants were removed in FreeBSD 11 (svn r273250) but will // still be accepted and ignored at runtime. "MAP_RENAME" | "MAP_NORESERVE" => true, - // FIXME: These are deprecated - remove in a couple of releases. + // FIXME(deprecated): These are deprecated - remove in a couple of releases. // These constants were removed in FreeBSD 11 (svn r262489), // and they've never had any legitimate use outside of the // base system anyway. @@ -2454,7 +2454,7 @@ fn test_freebsd(target: &str) { // Removed in FreeBSD 14 (git 7ff9ae90f0b) "IFF_NOGROUP" => true, - // FIXME: These are deprecated - remove in a couple of releases. + // FIXME(deprecated): These are deprecated - remove in a couple of releases. // These symbols are not stable across OS-versions. They were // changed for FreeBSD 14 in git revisions b62848b0c3f and // 2cf7870864e. @@ -2568,7 +2568,7 @@ fn test_freebsd(target: &str) { } // Added in FreeBSD 14. - "F_KINFO" => true, // FIXME: depends how frequent freebsd 14 is updated on CI, this addition went this week only. + "F_KINFO" => true, // FIXME(freebsd): depends how frequent freebsd 14 is updated on CI, this addition went this week only. "SHM_RENAME_NOREPLACE" | "SHM_RENAME_EXCHANGE" | "SHM_LARGEPAGE_ALLOC_DEFAULT" @@ -2624,11 +2624,11 @@ fn test_freebsd(target: &str) { // Added in FreeBSD 14 "IFCAP_NV" if Some(14) > freebsd_ver => true, - // FIXME: Removed in https://reviews.freebsd.org/D38574 and https://reviews.freebsd.org/D38822 + // FIXME(freebsd): Removed in https://reviews.freebsd.org/D38574 and https://reviews.freebsd.org/D38822 // We maybe should deprecate them once a stable release ships them. "IP_BINDMULTI" | "IP_RSS_LISTEN_BUCKET" => true, - // FIXME: Removed in https://reviews.freebsd.org/D39127. + // FIXME(freebsd): Removed in https://reviews.freebsd.org/D39127. "KERN_VNODE" => true, // Added in FreeBSD 14 @@ -2651,10 +2651,10 @@ fn test_freebsd(target: &str) { true } - // FIXME: Removed in FreeBSD 15: + // FIXME(freebsd): Removed in FreeBSD 15: "LOCAL_CONNWAIT" if freebsd_ver >= Some(15) => true, - // FIXME: The values has been changed in FreeBSD 15: + // FIXME(freebsd): The values has been changed in FreeBSD 15: "CLOCK_BOOTTIME" if Some(15) <= freebsd_ver => true, // Added in FreeBSD 14.0 @@ -2713,7 +2713,7 @@ fn test_freebsd(target: &str) { | "sctp_send_failed_event" | "sctp_stream_reset_event" => true, - // FIXME: Changed in FreeBSD 15 + // FIXME(freebsd): Changed in FreeBSD 15 "tcp_info" | "sockstat" if Some(15) >= freebsd_ver => true, _ => false, @@ -2732,7 +2732,7 @@ fn test_freebsd(target: &str) { // Therefore the function pointer comparison does not make sense for it. "uname" => true, - // FIXME: Our API is unsound. The Rust API allows aliasing + // FIXME(ctest): Our API is unsound. The Rust API allows aliasing // pointers, but the C API requires pointers not to alias. // We should probably be at least using `&`/`&mut` here, see: // https://github.com/gnzlbg/ctest/issues/68 @@ -2795,7 +2795,7 @@ fn test_freebsd(target: &str) { cfg.skip_field(move |struct_, field| { match (struct_, field) { - // FIXME: `sa_sigaction` has type `sighandler_t` but that type is + // FIXME(freebsd): `sa_sigaction` has type `sighandler_t` but that type is // incorrect, see: https://github.com/rust-lang/libc/issues/1359 ("sigaction", "sa_sigaction") => true, @@ -2826,7 +2826,7 @@ fn test_freebsd(target: &str) { // anonymous struct ("devstat", "dev_links") => true, - // FIXME: structs too complicated to bind for now... + // FIXME(freebsd): structs too complicated to bind for now... ("kinfo_proc", "ki_paddr") => true, ("kinfo_proc", "ki_addr") => true, ("kinfo_proc", "ki_tracep") => true, @@ -2874,7 +2874,7 @@ fn test_emscripten(target: &str) { assert!(target.contains("emscripten")); let mut cfg = ctest_cfg(); - cfg.define("_GNU_SOURCE", None); // FIXME: ?? + cfg.define("_GNU_SOURCE", None); // FIXME(emscripten): ?? headers! { cfg: "ctype.h", @@ -2990,7 +2990,7 @@ fn test_emscripten(target: &str) { cfg.skip_type(move |ty| { match ty { // sighandler_t is crazy across platforms - // FIXME: is this necessary? + // FIXME(emscripten): is this necessary? "sighandler_t" => true, // No epoll support @@ -3008,7 +3008,7 @@ fn test_emscripten(target: &str) { // This is actually a union, not a struct "sigval" => true, - // FIXME: Investigate why the test fails. + // FIXME(emscripten): Investigate why the test fails. // Skip for now to unblock CI. "pthread_condattr_t" => true, "pthread_mutexattr_t" => true, From 5d9a22f51d19b2e343ad43a11e83aa011c8f032f Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Mon, 17 Feb 2025 14:33:34 +0100 Subject: [PATCH 0505/1228] gnu b32: Copy struct stat to mips and use it Just a simple copy, no cfg conditionals have been removed. This makes it easier to review this commit. (backport ) (cherry picked from commit 66532982296edaf223b111d7b2859ec0bea806da) --- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 48 +++++++++ src/unix/linux_like/linux/gnu/b32/mod.rs | 100 ++++++++++-------- 2 files changed, 101 insertions(+), 47 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index b15df99e50ec6..729d6429c3428 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -4,6 +4,54 @@ use crate::{off64_t, off_t}; pub type wchar_t = i32; s! { + pub struct stat { + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] + pub st_dev: crate::dev_t, + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] + pub st_dev: c_ulong, + + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] + __pad1: c_short, + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] + st_pad1: [c_long; 3], + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] + pub st_rdev: crate::dev_t, + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] + pub st_rdev: c_ulong, + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] + __pad2: c_short, + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] + st_pad2: [c_long; 2], + pub st_size: off_t, + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] + st_pad3: c_long, + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] + pub st_blksize: crate::blksize_t, + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] + __unused4: c_long, + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] + __unused5: c_long, + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] + pub st_blksize: crate::blksize_t, + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] + pub st_blocks: crate::blkcnt_t, + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] + st_pad5: [c_long; 14], + } + pub struct stat64 { pub st_dev: c_ulong, st_pad1: [c_long; 3], diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 2cdd1320bf3e3..9ff08c293e2c1 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -40,55 +40,61 @@ cfg_if! { } } -s! { - pub struct stat { - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - pub st_dev: crate::dev_t, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - pub st_dev: c_ulong, - - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - __pad1: c_short, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - st_pad1: [c_long; 3], - pub st_ino: crate::ino_t, - pub st_mode: crate::mode_t, - pub st_nlink: crate::nlink_t, - pub st_uid: crate::uid_t, - pub st_gid: crate::gid_t, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - pub st_rdev: crate::dev_t, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - pub st_rdev: c_ulong, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - __pad2: c_short, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - st_pad2: [c_long; 2], - pub st_size: off_t, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - st_pad3: c_long, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - pub st_blksize: crate::blksize_t, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - pub st_blocks: crate::blkcnt_t, - pub st_atime: crate::time_t, - pub st_atime_nsec: c_long, - pub st_mtime: crate::time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: crate::time_t, - pub st_ctime_nsec: c_long, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - __unused4: c_long, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - __unused5: c_long, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - pub st_blksize: crate::blksize_t, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - pub st_blocks: crate::blkcnt_t, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - st_pad5: [c_long; 14], +cfg_if! { + if #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] { + s! { + pub struct stat { + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] + pub st_dev: crate::dev_t, + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] + pub st_dev: c_ulong, + + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] + __pad1: c_short, + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] + st_pad1: [c_long; 3], + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] + pub st_rdev: crate::dev_t, + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] + pub st_rdev: c_ulong, + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] + __pad2: c_short, + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] + st_pad2: [c_long; 2], + pub st_size: off_t, + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] + st_pad3: c_long, + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] + pub st_blksize: crate::blksize_t, + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] + __unused4: c_long, + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] + __unused5: c_long, + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] + pub st_blksize: crate::blksize_t, + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] + pub st_blocks: crate::blkcnt_t, + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] + st_pad5: [c_long; 14], + } + } } +} +s! { pub struct statvfs { pub f_bsize: c_ulong, pub f_frsize: c_ulong, From d67c99451930925c5fbb9aad622a903cae78bc06 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Mon, 17 Feb 2025 14:36:48 +0100 Subject: [PATCH 0506/1228] gnu b32: Remove mips cfg conditionals in struct stat Now that mips has its own copy of struct stat, remove all the cfg conditionals used to handle the difference between mips and everything else. Future support for _FILE_OFFSET_BITS=64 and _TIME_BITS=64 will be much easier when the mips differences does not have to be handled in the same conditionals. (backport ) (cherry picked from commit a092eed1ade740da43817037ff5675b237a8606b) --- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 24 ------------------- src/unix/linux_like/linux/gnu/b32/mod.rs | 24 ------------------- 2 files changed, 48 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 729d6429c3428..249ed09a0dadd 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -5,50 +5,26 @@ pub type wchar_t = i32; s! { pub struct stat { - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - pub st_dev: crate::dev_t, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] pub st_dev: c_ulong, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - __pad1: c_short, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] st_pad1: [c_long; 3], pub st_ino: crate::ino_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - pub st_rdev: crate::dev_t, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] pub st_rdev: c_ulong, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - __pad2: c_short, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] st_pad2: [c_long; 2], pub st_size: off_t, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] st_pad3: c_long, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - pub st_blksize: crate::blksize_t, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - pub st_blocks: crate::blkcnt_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - __unused4: c_long, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] - __unused5: c_long, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] pub st_blksize: crate::blksize_t, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] pub st_blocks: crate::blkcnt_t, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] st_pad5: [c_long; 14], } diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 9ff08c293e2c1..134bfb05b7470 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -44,34 +44,18 @@ cfg_if! { if #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] { s! { pub struct stat { - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] pub st_dev: crate::dev_t, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - pub st_dev: c_ulong, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] __pad1: c_short, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - st_pad1: [c_long; 3], pub st_ino: crate::ino_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] pub st_rdev: crate::dev_t, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - pub st_rdev: c_ulong, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] __pad2: c_short, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - st_pad2: [c_long; 2], pub st_size: off_t, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - st_pad3: c_long, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] pub st_blksize: crate::blksize_t, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] pub st_blocks: crate::blkcnt_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -79,16 +63,8 @@ cfg_if! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] __unused4: c_long, - #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] __unused5: c_long, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - pub st_blksize: crate::blksize_t, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - pub st_blocks: crate::blkcnt_t, - #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] - st_pad5: [c_long; 14], } } } From 25245d2958554ad8350b58ed823d97e81064ed82 Mon Sep 17 00:00:00 2001 From: lvllvl <24905907+lvllvl@users.noreply.github.com> Date: Wed, 8 Jan 2025 02:05:41 +0000 Subject: [PATCH 0507/1228] chore: add labels to FIXMEs (backport ) (cherry picked from commit ccf7b41dd47aa6ab07bf14561b1e9f37e2e900ea) --- src/fuchsia/x86_64.rs | 2 +- src/unix/bsd/apple/b32/mod.rs | 4 +-- src/unix/bsd/apple/b64/aarch64/mod.rs | 2 +- src/unix/bsd/apple/b64/mod.rs | 2 +- src/unix/bsd/apple/b64/x86_64/mod.rs | 2 +- src/unix/bsd/apple/mod.rs | 30 +++++++++---------- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 8 ++--- src/unix/bsd/freebsdlike/freebsd/mod.rs | 14 ++++----- .../bsd/freebsdlike/freebsd/x86_64/mod.rs | 2 +- src/unix/bsd/freebsdlike/mod.rs | 2 +- src/unix/bsd/netbsdlike/netbsd/mod.rs | 21 ++++++------- 11 files changed, 45 insertions(+), 44 deletions(-) diff --git a/src/fuchsia/x86_64.rs b/src/fuchsia/x86_64.rs index ffff3a78b5ed5..a184539e28277 100644 --- a/src/fuchsia/x86_64.rs +++ b/src/fuchsia/x86_64.rs @@ -102,7 +102,7 @@ cfg_if! { .field("uc_stack", &self.uc_stack) .field("uc_mcontext", &self.uc_mcontext) .field("uc_sigmask", &self.uc_sigmask) - // FIXME: .field("__private", &self.__private) + // FIXME(debug): .field("__private", &self.__private) .finish() } } diff --git a/src/unix/bsd/apple/b32/mod.rs b/src/unix/bsd/apple/b32/mod.rs index 4fec58f76be47..3753ffb085907 100644 --- a/src/unix/bsd/apple/b32/mod.rs +++ b/src/unix/bsd/apple/b32/mod.rs @@ -45,7 +45,7 @@ s! { } pub struct malloc_zone_t { - __private: [crate::uintptr_t; 18], // FIXME: keeping private for now + __private: [crate::uintptr_t; 18], // FIXME(macos): keeping private for now } } @@ -84,7 +84,7 @@ cfg_if! { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_attr_t") .field("__sig", &self.__sig) - // FIXME: .field("__opaque", &self.__opaque) + // FIXME(debug): .field("__opaque", &self.__opaque) .finish() } } diff --git a/src/unix/bsd/apple/b64/aarch64/mod.rs b/src/unix/bsd/apple/b64/aarch64/mod.rs index 60b9d4bb4ce40..e300b76ae8228 100644 --- a/src/unix/bsd/apple/b64/aarch64/mod.rs +++ b/src/unix/bsd/apple/b64/aarch64/mod.rs @@ -5,7 +5,7 @@ pub type mcontext_t = *mut __darwin_mcontext64; s! { pub struct malloc_zone_t { - __private: [crate::uintptr_t; 18], // FIXME: needs arm64 auth pointers support + __private: [crate::uintptr_t; 18], // FIXME(macos): needs arm64 auth pointers support } pub struct ucontext_t { diff --git a/src/unix/bsd/apple/b64/mod.rs b/src/unix/bsd/apple/b64/mod.rs index 98dccd3d49ddd..2bd682313428e 100644 --- a/src/unix/bsd/apple/b64/mod.rs +++ b/src/unix/bsd/apple/b64/mod.rs @@ -77,7 +77,7 @@ cfg_if! { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_attr_t") .field("__sig", &self.__sig) - // FIXME: .field("__opaque", &self.__opaque) + // FIXME(debug): .field("__opaque", &self.__opaque) .finish() } } diff --git a/src/unix/bsd/apple/b64/x86_64/mod.rs b/src/unix/bsd/apple/b64/x86_64/mod.rs index ea738497e98de..aa5ab85c0268b 100644 --- a/src/unix/bsd/apple/b64/x86_64/mod.rs +++ b/src/unix/bsd/apple/b64/x86_64/mod.rs @@ -106,7 +106,7 @@ s! { } pub struct malloc_introspection_t { - _private: [crate::uintptr_t; 16], // FIXME: keeping private for now + _private: [crate::uintptr_t; 16], // FIXME(macos): keeping private for now } pub struct malloc_zone_t { diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index fe8bad4209f37..2f89f70dcb477 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -371,7 +371,7 @@ s! { } pub struct sigaction { - // FIXME: this field is actually a union + // FIXME(union): this field is actually a union pub sa_sigaction: crate::sighandler_t, pub sa_mask: sigset_t, pub sa_flags: c_int, @@ -1342,9 +1342,9 @@ s_no_extra_traits! { pub shm_lpid: crate::pid_t, pub shm_cpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - pub shm_atime: crate::time_t, // FIXME: 64-bit wrong align => wrong offset - pub shm_dtime: crate::time_t, // FIXME: 64-bit wrong align => wrong offset - pub shm_ctime: crate::time_t, // FIXME: 64-bit wrong align => wrong offset + pub shm_atime: crate::time_t, // FIXME(macos): 64-bit wrong align => wrong offset + pub shm_dtime: crate::time_t, // FIXME(macos): 64-bit wrong align => wrong offset + pub shm_ctime: crate::time_t, // FIXME(macos): 64-bit wrong align => wrong offset // FIXME: 64-bit wrong align => wrong offset: pub shm_internal: *mut c_void, } @@ -1955,7 +1955,7 @@ cfg_if! { .field("pth_curpri", &self.pth_curpri) .field("pth_priority", &self.pth_priority) .field("pth_maxpriority", &self.pth_maxpriority) - // FIXME: .field("pth_name", &self.pth_name) + // FIXME(debug): .field("pth_name", &self.pth_name) .finish() } } @@ -2021,8 +2021,8 @@ cfg_if! { .field("f_fssubtype", &self.f_fssubtype) .field("f_fstypename", &self.f_fstypename) .field("f_type", &self.f_type) - // FIXME: .field("f_mntonname", &self.f_mntonname) - // FIXME: .field("f_mntfromname", &self.f_mntfromname) + // FIXME(debug): .field("f_mntonname", &self.f_mntonname) + // FIXME(debug): .field("f_mntfromname", &self.f_mntfromname) .field("f_reserved", &self.f_reserved) .finish() } @@ -2072,7 +2072,7 @@ cfg_if! { .field("d_reclen", &self.d_reclen) .field("d_namlen", &self.d_namlen) .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) + // FIXME(debug): .field("d_name", &self.d_name) .finish() } } @@ -2101,7 +2101,7 @@ cfg_if! { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_rwlock_t") .field("__sig", &self.__sig) - // FIXME: .field("__opaque", &self.__opaque) + // FIXME(debug): .field("__opaque", &self.__opaque) .finish() } } @@ -2129,7 +2129,7 @@ cfg_if! { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_mutex_t") .field("__sig", &self.__sig) - // FIXME: .field("__opaque", &self.__opaque) + // FIXME(debug): .field("__opaque", &self.__opaque) .finish() } } @@ -2158,7 +2158,7 @@ cfg_if! { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("pthread_cond_t") .field("__sig", &self.__sig) - // FIXME: .field("__opaque", &self.__opaque) + // FIXME(debug): .field("__opaque", &self.__opaque) .finish() } } @@ -2197,7 +2197,7 @@ cfg_if! { .field("ss_family", &self.ss_family) .field("__ss_pad1", &self.__ss_pad1) .field("__ss_align", &self.__ss_align) - // FIXME: .field("__ss_pad2", &self.__ss_pad2) + // FIXME(debug): .field("__ss_pad2", &self.__ss_pad2) .finish() } } @@ -2237,13 +2237,13 @@ cfg_if! { impl fmt::Debug for utmpx { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utmpx") - // FIXME: .field("ut_user", &self.ut_user) + // FIXME(debug): .field("ut_user", &self.ut_user) .field("ut_id", &self.ut_id) .field("ut_line", &self.ut_line) .field("ut_pid", &self.ut_pid) .field("ut_type", &self.ut_type) .field("ut_tv", &self.ut_tv) - // FIXME: .field("ut_host", &self.ut_host) + // FIXME(debug): .field("ut_host", &self.ut_host) .field("ut_pad", &self.ut_pad) .finish() } @@ -2485,7 +2485,7 @@ cfg_if! { .field("pth_curpri", &self.pth_curpri) .field("pth_priority", &self.pth_priority) .field("pth_maxpriority", &self.pth_maxpriority) - // FIXME: .field("pth_name", &self.pth_name) + // FIXME(debug): .field("pth_name", &self.pth_name) .finish() } } diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index cfaa93f76d88e..c7621809ba439 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -560,7 +560,7 @@ cfg_if! { .field("ut_name", &self.ut_name) .field("ut_id", &self.ut_id) .field("ut_line", &self.ut_line) - // FIXME: .field("ut_host", &self.ut_host) + // FIXME(debug): .field("ut_host", &self.ut_host) .field("ut_unused", &self.ut_unused) .field("ut_session", &self.ut_session) .field("ut_type", &self.ut_type) @@ -639,7 +639,7 @@ cfg_if! { .field("d_type", &self.d_type) // Ignore __unused1 // Ignore __unused2 - // FIXME: .field("d_name", &self.d_name) + // FIXME(debug): .field("d_name", &self.d_name) .finish() } } @@ -701,10 +701,10 @@ cfg_if! { .field("f_flags", &self.f_flags) .field("f_syncwrites", &self.f_syncwrites) .field("f_asyncwrites", &self.f_asyncwrites) - // FIXME: .field("f_mntonname", &self.f_mntonname) + // FIXME(debug): .field("f_mntonname", &self.f_mntonname) .field("f_syncreads", &self.f_syncreads) .field("f_asyncreads", &self.f_asyncreads) - // FIXME: .field("f_mntfromname", &self.f_mntfromname) + // FIXME(debug): .field("f_mntfromname", &self.f_mntfromname) .finish() } } diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 23bbb1e1c47fe..824ff1ac674c6 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1639,7 +1639,7 @@ s_no_extra_traits! { pub kf_flags: c_int, _kf_pad0: c_int, pub kf_offset: i64, - _priv: [u8; 304], // FIXME: this is really a giant union + _priv: [u8; 304], // FIXME(freebsd): this is really a giant union pub kf_status: u16, _kf_pad1: u16, _kf_ispare0: c_int, @@ -1690,8 +1690,8 @@ cfg_if! { .field("ut_pid", &self.ut_pid) .field("ut_user", &self.ut_user) .field("ut_line", &self.ut_line) - // FIXME: .field("ut_host", &self.ut_host) - // FIXME: .field("__ut_spare", &self.__ut_spare) + // FIXME(debug): .field("ut_host", &self.ut_host) + // FIXME(debug): .field("__ut_spare", &self.__ut_spare) .finish() } } @@ -1778,7 +1778,7 @@ cfg_if! { .field("sdl_nlen", &self.sdl_nlen) .field("sdl_alen", &self.sdl_alen) .field("sdl_slen", &self.sdl_slen) - // FIXME: .field("sdl_data", &self.sdl_data) + // FIXME(debug): .field("sdl_data", &self.sdl_data) .finish() } } @@ -2286,7 +2286,7 @@ cfg_if! { f.debug_struct("sctp_gen_error_cause") .field("code", &{ self.code }) .field("length", &{ self.length }) - // FIXME: .field("info", &{self.info}) + // FIXME(debug): .field("info", &{self.info}) .finish() } } @@ -2358,7 +2358,7 @@ cfg_if! { f.debug_struct("sctp_error_missing_param") .field("cause", &{ self.cause }) .field("num_missing_params", &{ self.num_missing_params }) - // FIXME: .field("tpe", &{self.tpe}) + // FIXME(debug): .field("tpe", &{self.tpe}) .finish() } } @@ -5689,7 +5689,7 @@ extern "C" { pub fn pidfile_close(path: *mut crate::pidfh) -> c_int; pub fn pidfile_remove(path: *mut crate::pidfh) -> c_int; pub fn pidfile_fileno(path: *const crate::pidfh) -> c_int; - // FIXME: pidfile_signal in due time (both manpage present and updated image snapshot) + // FIXME(freebsd): pidfile_signal in due time (both manpage present and updated image snapshot) } #[link(name = "procstat")] diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index fde274bb15a69..065847043225c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -344,7 +344,7 @@ cfg_if! { .field("mc_len", &self.mc_len) .field("mc_fpformat", &self.mc_fpformat) .field("mc_ownedfp", &self.mc_ownedfp) - // FIXME: .field("mc_fpstate", &self.mc_fpstate) + // FIXME(debug): .field("mc_fpstate", &self.mc_fpstate) .field("mc_fsbase", &self.mc_fsbase) .field("mc_gsbase", &self.mc_gsbase) .field("mc_xfpustate", &self.mc_xfpustate) diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 3c62e7d5e8271..2d74756d9957d 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -418,7 +418,7 @@ cfg_if! { .field("ss_family", &self.ss_family) .field("__ss_pad1", &self.__ss_pad1) .field("__ss_align", &self.__ss_align) - // FIXME: .field("__ss_pad2", &self.__ss_pad2) + // FIXME(debug): .field("__ss_pad2", &self.__ss_pad2) .finish() } } diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index fe2b667a523fc..3cd4d7ae13953 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -10,7 +10,7 @@ pub type fsfilcnt_t = u64; pub type idtype_t = c_int; pub type mqd_t = c_int; type __pthread_spin_t = __cpu_simple_lock_nv_t; -pub type vm_size_t = crate::uintptr_t; // FIXME: deprecated since long time +pub type vm_size_t = crate::uintptr_t; // FIXME(deprecated): deprecated since long time pub type lwpid_t = c_uint; pub type shmatt_t = c_uint; pub type cpuid_t = c_ulong; @@ -297,7 +297,8 @@ s! { pub flags: u32, pub fflags: u32, pub data: i64, - pub udata: intptr_t, /* FIXME: NetBSD 10.0 will finally have same layout as other BSD */ + // FIXME(netbsd): NetBSD 10.0 will finally have same layout as other BSD + pub udata: intptr_t, } pub struct dqblk { @@ -799,7 +800,7 @@ s_no_extra_traits! { pub ut_session: u16, pub ut_type: u16, pub ut_pid: crate::pid_t, - pub ut_exit: __exit_status, // FIXME: when anonymous struct are supported + pub ut_exit: __exit_status, // FIXME(netbsd): when anonymous struct are supported pub ut_ss: sockaddr_storage, pub ut_tv: crate::timeval, pub ut_pad: [u8; _UTX_PADSIZE], @@ -945,14 +946,14 @@ cfg_if! { .field("ut_name", &self.ut_name) .field("ut_id", &self.ut_id) .field("ut_line", &self.ut_line) - // FIXME .field("ut_host", &self.ut_host) + // FIXME(debug) .field("ut_host", &self.ut_host) .field("ut_session", &self.ut_session) .field("ut_type", &self.ut_type) .field("ut_pid", &self.ut_pid) .field("ut_exit", &self.ut_exit) .field("ut_ss", &self.ut_ss) .field("ut_tv", &self.ut_tv) - // FIXME .field("ut_pad", &self.ut_pad) + // FIXME(debug) .field("ut_pad", &self.ut_pad) .finish() } } @@ -993,7 +994,7 @@ cfg_if! { f.debug_struct("lastlogx") .field("ll_tv", &self.ll_tv) .field("ll_line", &self.ll_line) - // FIXME.field("ll_host", &self.ll_host) + // FIXME(debug).field("ll_host", &self.ll_host) .field("ll_ss", &self.ll_ss) .finish() } @@ -1159,7 +1160,7 @@ cfg_if! { .field("d_reclen", &self.d_reclen) .field("d_namlen", &self.d_namlen) .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) + // FIXME(debug): .field("d_name", &self.d_name) .finish() } } @@ -1235,8 +1236,8 @@ cfg_if! { .field("f_owner", &self.f_owner) .field("f_spare", &self.f_spare) .field("f_fstypename", &self.f_fstypename) - // FIXME: .field("f_mntonname", &self.f_mntonname) - // FIXME: .field("f_mntfromname", &self.f_mntfromname) + // FIXME(debug): .field("f_mntonname", &self.f_mntonname) + // FIXME(debug): .field("f_mntfromname", &self.f_mntfromname) .finish() } } @@ -1290,7 +1291,7 @@ cfg_if! { .field("ss_family", &self.ss_family) .field("__ss_pad1", &self.__ss_pad1) .field("__ss_pad2", &self.__ss_pad2) - // FIXME: .field("__ss_pad3", &self.__ss_pad3) + // FIXME(debug): .field("__ss_pad3", &self.__ss_pad3) .finish() } } From 24430c76a2764e1cb767600bbdb519c525272a6a Mon Sep 17 00:00:00 2001 From: Ivan Gankevich Date: Wed, 18 Dec 2024 07:33:32 +0100 Subject: [PATCH 0508/1228] Make all `major`, `minor`, `makedev` into `const fn`. (backport ) (cherry picked from commit 37c3333c07105cf29245941ecbbd5733ad0ddd22) --- libc-test/src/makedev.c | 16 +++-- libc-test/test/makedev.rs | 58 ++++++++++++++++++- src/fuchsia/mod.rs | 28 ++++----- src/unix/aix/mod.rs | 38 ++++++------ src/unix/bsd/apple/mod.rs | 24 ++++---- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 16 ++--- .../bsd/freebsdlike/freebsd/freebsd11/mod.rs | 6 +- .../bsd/freebsdlike/freebsd/freebsd12/mod.rs | 6 +- .../bsd/freebsdlike/freebsd/freebsd13/mod.rs | 6 +- .../bsd/freebsdlike/freebsd/freebsd14/mod.rs | 6 +- .../bsd/freebsdlike/freebsd/freebsd15/mod.rs | 6 +- src/unix/bsd/netbsdlike/netbsd/mod.rs | 22 +++---- src/unix/bsd/netbsdlike/openbsd/mod.rs | 25 ++++---- src/unix/hurd/mod.rs | 16 ++--- src/unix/linux_like/android/mod.rs | 14 +++-- src/unix/linux_like/emscripten/mod.rs | 38 ++++++------ src/unix/linux_like/linux/mod.rs | 28 ++++----- src/unix/nto/mod.rs | 16 ++--- 18 files changed, 210 insertions(+), 159 deletions(-) diff --git a/libc-test/src/makedev.c b/libc-test/src/makedev.c index 7f99d60728bb4..62752c72ab97f 100644 --- a/libc-test/src/makedev.c +++ b/libc-test/src/makedev.c @@ -3,11 +3,19 @@ #include #endif -// Since makedev is a macro instead of a function, it isn't available to FFI. -// libc must reimplement it, which is error-prone. This file provides FFI -// access to the actual macro so it can be tested against the Rust -// reimplementation. +// Since makedev, major, minor are macros instead of functions, they aren't +// available to FFI. libc must reimplement them, which is error-prone. This +// file provides FFI access to the actual macros so they can be tested against +// the Rust reimplementation. dev_t makedev_ffi(unsigned major, unsigned minor) { return makedev(major, minor); } + +unsigned int major_ffi(dev_t dev) { + return major(dev); +} + +unsigned int minor_ffi(dev_t dev) { + return minor(dev); +} diff --git a/libc-test/test/makedev.rs b/libc-test/test/makedev.rs index cb00975b9a41f..44297a2163aa2 100644 --- a/libc-test/test/makedev.rs +++ b/libc-test/test/makedev.rs @@ -1,6 +1,50 @@ -//! Compare libc's makdev function against the actual C macros, for various +//! Compare libc's makedev, major, minor functions against the actual C macros, for various //! inputs. +#[cfg(any(target_os = "solaris", target_os = "illumos"))] +mod ret { + pub type MajorRetType = libc::major_t; + pub type MinorRetType = libc::minor_t; +} + +#[cfg(any( + target_os = "linux", + target_os = "l4re", + target_os = "emscripten", + target_os = "fuchsia", + target_os = "aix", + target_os = "nto", + target_os = "hurd", + target_os = "openbsd", +))] +mod ret { + pub type MajorRetType = libc::c_uint; + pub type MinorRetType = libc::c_uint; +} + +#[cfg(any( + target_os = "android", + target_os = "dragonfly", + target_os = "netbsd", + target_os = "freebsd", +))] +mod ret { + pub type MajorRetType = libc::c_int; + pub type MinorRetType = libc::c_int; +} + +#[cfg(any( + target_os = "macos", + target_os = "ios", + target_os = "tvos", + target_os = "watchos", + target_os = "visionos" +))] +mod ret { + pub type MajorRetType = i32; + pub type MinorRetType = i32; +} + #[cfg(any( target_os = "android", target_os = "dragonfly", @@ -14,13 +58,21 @@ mod t { use libc::{self, c_uint, dev_t}; + use super::ret::*; + extern "C" { pub fn makedev_ffi(major: c_uint, minor: c_uint) -> dev_t; + pub fn major_ffi(dev: dev_t) -> c_uint; + pub fn minor_ffi(dev: dev_t) -> c_uint; } fn compare(major: c_uint, minor: c_uint) { - let expected = unsafe { makedev_ffi(major, minor) }; - assert_eq!(libc::makedev(major, minor), expected); + let dev = unsafe { makedev_ffi(major, minor) }; + assert_eq!(libc::makedev(major, minor), dev); + let major = unsafe { major_ffi(dev) }; + assert_eq!(libc::major(dev), major as MajorRetType); + let minor = unsafe { minor_ffi(dev) }; + assert_eq!(libc::minor(dev), minor as MinorRetType); } // Every OS should be able to handle 8 bit major and minor numbers diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index d666c7e39de60..9e8f55471a1ac 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -3423,20 +3423,6 @@ f! { set1.bits == set2.bits } - pub fn major(dev: crate::dev_t) -> c_uint { - let mut major = 0; - major |= (dev & 0x00000000000fff00) >> 8; - major |= (dev & 0xfffff00000000000) >> 32; - major as c_uint - } - - pub fn minor(dev: crate::dev_t) -> c_uint { - let mut minor = 0; - minor |= (dev & 0x00000000000000ff) >> 0; - minor |= (dev & 0x00000ffffff00000) >> 12; - minor as c_uint - } - pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { cmsg.offset(1) as *mut c_uchar } @@ -3519,6 +3505,20 @@ safe_f! { dev |= (minor & 0xffffff00) << 12; dev } + + pub {const} fn major(dev: crate::dev_t) -> c_uint { + let mut major = 0; + major |= (dev & 0x00000000000fff00) >> 8; + major |= (dev & 0xfffff00000000000) >> 32; + major as c_uint + } + + pub {const} fn minor(dev: crate::dev_t) -> c_uint { + let mut minor = 0; + minor |= (dev & 0x00000000000000ff) >> 0; + minor |= (dev & 0x00000ffffff00000) >> 12; + minor as c_uint + } } fn __CMSG_LEN(cmsg: *const cmsghdr) -> ssize_t { diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 647836b6f6719..d158ab86c8a9b 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -2546,25 +2546,6 @@ f! { let fd = fd as usize; return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0; } - - pub fn major(dev: crate::dev_t) -> c_uint { - let x = dev >> 16; - x as c_uint - } - - pub fn minor(dev: crate::dev_t) -> c_uint { - let y = dev & 0xFFFF; - y as c_uint - } - - pub fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { - let major = major as crate::dev_t; - let minor = minor as crate::dev_t; - let mut dev = 0; - dev |= major << 16; - dev |= minor; - dev - } } safe_f! { @@ -2612,6 +2593,25 @@ safe_f! { pub {const} fn WCOREDUMP(_status: c_int) -> bool { false } + + pub {const} fn major(dev: crate::dev_t) -> c_uint { + let x = dev >> 16; + x as c_uint + } + + pub {const} fn minor(dev: crate::dev_t) -> c_uint { + let y = dev & 0xFFFF; + y as c_uint + } + + pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + let major = major as crate::dev_t; + let minor = minor as crate::dev_t; + let mut dev = 0; + dev |= major << 16; + dev |= minor; + dev + } } #[link(name = "thread")] diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 2f89f70dcb477..9103522d95053 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -5715,18 +5715,6 @@ f! { pub {const} fn VM_MAKE_TAG(id: u8) -> u32 { (id as u32) << 24u32 } - - pub fn major(dev: dev_t) -> i32 { - (dev >> 24) & 0xff - } - - pub fn minor(dev: dev_t) -> i32 { - dev & 0xffffff - } - - pub fn makedev(major: i32, minor: i32) -> dev_t { - (major << 24) | minor - } } safe_f! { @@ -5749,6 +5737,18 @@ safe_f! { pub {const} fn WIFSTOPPED(status: c_int) -> bool { _WSTATUS(status) == _WSTOPPED && WSTOPSIG(status) != 0x13 } + + pub {const} fn makedev(major: i32, minor: i32) -> dev_t { + (major << 24) | minor + } + + pub {const} fn major(dev: dev_t) -> i32 { + (dev >> 24) & 0xff + } + + pub {const} fn minor(dev: dev_t) -> i32 { + dev & 0xffffff + } } extern "C" { diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index c7621809ba439..a8c253bb976ac 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -1590,14 +1590,6 @@ f! { let (idx, offset) = ((cpu >> 6) & 3, cpu & 63); 0 != cpuset.ary[idx] & (1 << offset) } - - pub fn major(dev: crate::dev_t) -> c_int { - ((dev >> 8) & 0xff) as c_int - } - - pub fn minor(dev: crate::dev_t) -> c_int { - (dev & 0xffff00ff) as c_int - } } safe_f! { @@ -1613,6 +1605,14 @@ safe_f! { dev |= minor; dev } + + pub {const} fn major(dev: crate::dev_t) -> c_int { + ((dev >> 8) & 0xff) as c_int + } + + pub {const} fn minor(dev: crate::dev_t) -> c_int { + (dev & 0xffff00ff) as c_int + } } extern "C" { diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs index 6a484e4a0b229..87ddbcc4376c8 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs @@ -441,14 +441,12 @@ safe_f! { let minor = minor as crate::dev_t; (major << 8) | minor } -} -f! { - pub fn major(dev: crate::dev_t) -> c_int { + pub {const} fn major(dev: crate::dev_t) -> c_int { ((dev >> 8) & 0xff) as c_int } - pub fn minor(dev: crate::dev_t) -> c_int { + pub {const} fn minor(dev: crate::dev_t) -> c_int { (dev & 0xffff00ff) as c_int } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index d419433efeb9b..6c2f586195dc5 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -496,14 +496,12 @@ safe_f! { dev |= ((minor & 0xffff00ff) as dev_t) << 0; dev } -} -f! { - pub fn major(dev: crate::dev_t) -> c_int { + pub {const} fn major(dev: crate::dev_t) -> c_int { (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as c_int } - pub fn minor(dev: crate::dev_t) -> c_int { + pub {const} fn minor(dev: crate::dev_t) -> c_int { (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as c_int } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs index c5944a69988e8..cf507e66b38c0 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -518,14 +518,12 @@ safe_f! { dev |= ((minor & 0xffff00ff) as dev_t) << 0; dev } -} -f! { - pub fn major(dev: crate::dev_t) -> c_int { + pub {const} fn major(dev: crate::dev_t) -> c_int { (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as c_int } - pub fn minor(dev: crate::dev_t) -> c_int { + pub {const} fn minor(dev: crate::dev_t) -> c_int { (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as c_int } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index 34dd48f486f4a..0a05ca9fad3e8 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -518,14 +518,12 @@ safe_f! { dev |= ((minor & 0xffff00ff) as dev_t) << 0; dev } -} -f! { - pub fn major(dev: crate::dev_t) -> c_int { + pub {const} fn major(dev: crate::dev_t) -> c_int { (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as c_int } - pub fn minor(dev: crate::dev_t) -> c_int { + pub {const} fn minor(dev: crate::dev_t) -> c_int { (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as c_int } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index 9c81a8410db04..2fe39a3acea2c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -519,14 +519,12 @@ safe_f! { dev |= ((minor & 0xffff00ff) as dev_t) << 0; dev } -} -f! { - pub fn major(dev: crate::dev_t) -> c_int { + pub {const} fn major(dev: crate::dev_t) -> c_int { (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as c_int } - pub fn minor(dev: crate::dev_t) -> c_int { + pub {const} fn minor(dev: crate::dev_t) -> c_int { (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as c_int } } diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 3cd4d7ae13953..8ede2b603d100 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2461,17 +2461,6 @@ f! { pub fn PROT_MPROTECT_EXTRACT(x: c_int) -> c_int { (x >> 3) & 0x7 } - - pub fn major(dev: crate::dev_t) -> c_int { - (((dev as u32) & 0x000fff00) >> 8) as c_int - } - - pub fn minor(dev: crate::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! { @@ -2500,6 +2489,17 @@ safe_f! { dev |= minor & 0xff; dev } + + pub {const} fn major(dev: crate::dev_t) -> c_int { + (((dev as u32) & 0x000fff00) >> 8) as c_int + } + + pub {const} fn minor(dev: crate::dev_t) -> c_int { + let mut res = 0; + res |= ((dev as u32) & 0xfff00000) >> 12; + res |= (dev as u32) & 0x000000ff; + res as c_int + } } extern "C" { diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index f86919264c0ad..62955757e8e21 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1966,19 +1966,6 @@ f! { pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { (_ALIGN(mem::size_of::()) + _ALIGN(length as usize)) as c_uint } - - pub fn major(dev: crate::dev_t) -> c_uint { - ((dev as c_uint) >> 8) & 0xff - } - - pub fn minor(dev: crate::dev_t) -> c_uint { - let dev = dev as c_uint; - let mut res = 0; - res |= (dev) & 0xff; - res |= ((dev) & 0xffff0000) >> 8; - - res - } } safe_f! { @@ -2007,6 +1994,18 @@ safe_f! { dev |= (minor & 0xffff00) << 8; dev } + + pub {const} fn major(dev: crate::dev_t) -> c_uint { + ((dev as c_uint) >> 8) & 0xff + } + + pub {const} fn minor(dev: crate::dev_t) -> c_uint { + let dev = dev as c_uint; + let mut res = 0; + res |= (dev) & 0xff; + res |= ((dev) & 0xffff0000) >> 8; + res + } } extern "C" { diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 0c5f001202844..8703f4d37a66d 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -3524,14 +3524,6 @@ f! { set1.bits == set2.bits } - pub fn major(dev: crate::dev_t) -> c_uint { - ((dev >> 8) & 0xff) as c_uint - } - - pub fn minor(dev: crate::dev_t) -> c_uint { - (dev & 0xffff00ff) as c_uint - } - pub fn IPTOS_TOS(tos: u8) -> u8 { tos & IPTOS_TOS_MASK } @@ -4566,6 +4558,14 @@ safe_f! { dev } + pub {const} fn major(dev: crate::dev_t) -> c_uint { + ((dev >> 8) & 0xff) as c_uint + } + + pub {const} fn minor(dev: crate::dev_t) -> c_uint { + (dev & 0xffff00ff) as c_uint + } + pub fn SIGRTMAX() -> c_int { unsafe { __libc_current_sigrtmax() } } diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 2ba535d635961..af76f0307f8a0 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3647,12 +3647,6 @@ f! { set1.__bits == set2.__bits } - pub fn major(dev: crate::dev_t) -> c_int { - ((dev >> 8) & 0xfff) as c_int - } - pub fn minor(dev: crate::dev_t) -> c_int { - ((dev & 0xff) | ((dev >> 12) & 0xfff00)) as c_int - } pub fn NLA_ALIGN(len: c_int) -> c_int { return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1); } @@ -3668,6 +3662,14 @@ safe_f! { let mi = mi as crate::dev_t; ((ma & 0xfff) << 8) | (mi & 0xff) | ((mi & 0xfff00) << 12) } + + pub {const} fn major(dev: crate::dev_t) -> c_int { + ((dev >> 8) & 0xfff) as c_int + } + + pub {const} fn minor(dev: crate::dev_t) -> c_int { + ((dev & 0xff) | ((dev >> 12) & 0xfff00)) as c_int + } } extern "C" { diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index f22843e54073f..09de6f7d1e191 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -1452,41 +1452,41 @@ f! { pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { set1.bits == set2.bits } +} + +safe_f! { + pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + let major = major as crate::dev_t; + let minor = minor as crate::dev_t; + let mut dev = 0; + dev |= (major & 0xfffff000) << 31 << 1; + dev |= (major & 0x00000fff) << 8; + dev |= (minor & 0xffffff00) << 12; + dev |= minor & 0x000000ff; + dev + } - pub fn major(dev: crate::dev_t) -> c_uint { + pub {const} fn major(dev: crate::dev_t) -> c_uint { // see // https://github.com/emscripten-core/emscripten/blob/ // main/system/lib/libc/musl/include/sys/sysmacros.h let mut major = 0; - major |= (dev & 0x00000fff) >> 8; - major |= (dev & 0xfffff000) >> 31 >> 1; + major |= (dev >> 31 >> 1) & 0xfffff000; + major |= (dev >> 8) & 0x00000fff; major as c_uint } - pub fn minor(dev: crate::dev_t) -> c_uint { + pub {const} fn minor(dev: crate::dev_t) -> c_uint { // see // https://github.com/emscripten-core/emscripten/blob/ // main/system/lib/libc/musl/include/sys/sysmacros.h let mut minor = 0; - minor |= (dev & 0x000000ff) >> 0; - minor |= (dev & 0xffffff00) >> 12; + minor |= (dev >> 12) & 0xffffff00; + minor |= dev & 0x000000ff; minor as c_uint } } -safe_f! { - pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { - let major = major as crate::dev_t; - let minor = minor as crate::dev_t; - let mut dev = 0; - dev |= (major & 0x00000fff) << 8; - dev |= (major & 0xfffff000) << 31 << 1; - dev |= (minor & 0x000000ff) << 0; - dev |= (minor & 0xffffff00) << 12; - dev - } -} - extern "C" { pub fn getrlimit(resource: c_int, rlim: *mut crate::rlimit) -> c_int; pub fn setrlimit(resource: c_int, rlim: *const crate::rlimit) -> c_int; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index d9936fdb4f7e7..c3c084ed05d99 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -6006,20 +6006,6 @@ f! { () } - pub fn major(dev: crate::dev_t) -> c_uint { - let mut major = 0; - major |= (dev & 0x00000000000fff00) >> 8; - major |= (dev & 0xfffff00000000000) >> 32; - major as c_uint - } - - pub fn minor(dev: crate::dev_t) -> c_uint { - let mut minor = 0; - minor |= (dev & 0x00000000000000ff) >> 0; - minor |= (dev & 0x00000ffffff00000) >> 12; - minor as c_uint - } - pub fn IPTOS_TOS(tos: u8) -> u8 { tos & IPTOS_TOS_MASK } @@ -6111,6 +6097,20 @@ safe_f! { dev } + pub {const} fn major(dev: crate::dev_t) -> c_uint { + let mut major = 0; + major |= (dev & 0x00000000000fff00) >> 8; + major |= (dev & 0xfffff00000000000) >> 32; + major as c_uint + } + + pub {const} fn minor(dev: crate::dev_t) -> c_uint { + let mut minor = 0; + minor |= (dev & 0x00000000000000ff) >> 0; + minor |= (dev & 0x00000ffffff00000) >> 12; + minor as c_uint + } + pub {const} fn SCTP_PR_TTL_ENABLED(policy: c_int) -> bool { policy == SCTP_PR_SCTP_TTL } diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index ad4b390d61c07..b6850da000d34 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -2804,14 +2804,6 @@ f! { let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 }; mem::size_of::() + mem::size_of::() * ngrps } - - pub fn major(dev: crate::dev_t) -> c_uint { - ((dev as c_uint) >> 10) & 0x3f - } - - pub fn minor(dev: crate::dev_t) -> c_uint { - (dev as c_uint) & 0x3ff - } } safe_f! { @@ -2854,6 +2846,14 @@ safe_f! { pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { ((major << 10) | (minor)) as crate::dev_t } + + pub {const} fn major(dev: crate::dev_t) -> c_uint { + ((dev as c_uint) >> 10) & 0x3f + } + + pub {const} fn minor(dev: crate::dev_t) -> c_uint { + (dev as c_uint) & 0x3ff + } } // Network related functions are provided by libsocket and regex From 903dc2321db03df0f635d6950bfe881458e13564 Mon Sep 17 00:00:00 2001 From: lvllvl <24905907+lvllvl@users.noreply.github.com> Date: Mon, 24 Feb 2025 00:29:41 +0000 Subject: [PATCH 0509/1228] chore: add labels to each FIXME (backport ) (cherry picked from commit 861246a7e1ae9d9ad6b8d356ebb47ab5ad1b43df) --- src/unix/bsd/mod.rs | 12 +++---- src/unix/bsd/netbsdlike/openbsd/mod.rs | 20 ++++++------ src/unix/bsd/netbsdlike/openbsd/x86_64.rs | 4 +-- src/unix/haiku/mod.rs | 10 +++--- src/unix/haiku/x86_64.rs | 10 +++--- .../linux_like/linux/gnu/b64/x86_64/mod.rs | 2 +- src/unix/linux_like/linux/musl/b32/hexagon.rs | 2 +- src/unix/nto/mod.rs | 14 ++++---- src/unix/solarish/mod.rs | 32 +++++++++---------- 9 files changed, 53 insertions(+), 53 deletions(-) diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 445957537eb76..bddb68c8b400a 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -185,7 +185,7 @@ cfg_if! { f.debug_struct("sockaddr_un") .field("sun_len", &self.sun_len) .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) + // FIXME(debug): .field("sun_path", &self.sun_path) .finish() } } @@ -232,11 +232,11 @@ cfg_if! { impl fmt::Debug for utsname { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utsname") - // FIXME: .field("sysname", &self.sysname) - // FIXME: .field("nodename", &self.nodename) - // FIXME: .field("release", &self.release) - // FIXME: .field("version", &self.version) - // FIXME: .field("machine", &self.machine) + // FIXME(debug): .field("sysname", &self.sysname) + // FIXME(debug): .field("nodename", &self.nodename) + // FIXME(debug): .field("release", &self.release) + // FIXME(debug): .field("version", &self.version) + // FIXME(debug): .field("machine", &self.machine) .finish() } } diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 62955757e8e21..ff3a99fcc7db2 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -781,7 +781,7 @@ cfg_if! { .field("d_reclen", &self.d_reclen) .field("d_type", &self.d_type) .field("d_namlen", &self.d_namlen) - // FIXME: .field("d_name", &self.d_name) + // FIXME(debug): .field("d_name", &self.d_name) .finish() } } @@ -874,8 +874,8 @@ cfg_if! { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("lastlog") .field("ll_time", &self.ll_time) - // FIXME: .field("ll_line", &self.ll_line) - // FIXME: .field("ll_host", &self.ll_host) + // FIXME(debug): .field("ll_line", &self.ll_line) + // FIXME(debug): .field("ll_host", &self.ll_host) .finish() } } @@ -914,9 +914,9 @@ cfg_if! { impl fmt::Debug for utmp { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utmp") - // FIXME: .field("ut_line", &self.ut_line) - // FIXME: .field("ut_name", &self.ut_name) - // FIXME: .field("ut_host", &self.ut_host) + // FIXME(debug): .field("ut_line", &self.ut_line) + // FIXME(debug): .field("ut_name", &self.ut_name) + // FIXME(debug): .field("ut_host", &self.ut_host) .field("ut_time", &self.ut_time) .finish() } @@ -1049,10 +1049,10 @@ cfg_if! { .field("f_namemax", &self.f_namemax) .field("f_owner", &self.f_owner) .field("f_ctime", &self.f_ctime) - // FIXME: .field("f_fstypename", &self.f_fstypename) - // FIXME: .field("f_mntonname", &self.f_mntonname) - // FIXME: .field("f_mntfromname", &self.f_mntfromname) - // FIXME: .field("f_mntfromspec", &self.f_mntfromspec) + // FIXME(debug): .field("f_fstypename", &self.f_fstypename) + // FIXME(debug): .field("f_mntonname", &self.f_mntonname) + // FIXME(debug): .field("f_mntfromname", &self.f_mntfromname) + // FIXME(debug): .field("f_mntfromspec", &self.f_mntfromspec) .field("mount_info", &self.mount_info) .finish() } diff --git a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs index db9114e27cb60..9003f3588c1b6 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs @@ -92,8 +92,8 @@ cfg_if! { .field("fx_rdp", &{ self.fx_rdp }) .field("fx_mxcsr", &{ self.fx_mxcsr }) .field("fx_mxcsr_mask", &{ self.fx_mxcsr_mask }) - // FIXME: .field("fx_st", &{self.fx_st}) - // FIXME: .field("fx_xmm", &{self.fx_xmm}) + // FIXME(debug): .field("fx_st", &{self.fx_st}) + // FIXME(debug): .field("fx_xmm", &{self.fx_xmm}) .finish() } } diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 10ee719b9c18f..76e44cc796f1d 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -562,7 +562,7 @@ cfg_if! { f.debug_struct("sockaddr_un") .field("sun_len", &self.sun_len) .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) + // FIXME(debug): .field("sun_path", &self.sun_path) .finish() } } @@ -599,7 +599,7 @@ cfg_if! { .field("ss_family", &self.ss_family) .field("__ss_pad1", &self.__ss_pad1) .field("__ss_pad2", &self.__ss_pad2) - // FIXME: .field("__ss_pad3", &self.__ss_pad3) + // FIXME(debug): .field("__ss_pad3", &self.__ss_pad3) .finish() } } @@ -636,7 +636,7 @@ cfg_if! { .field("d_ino", &self.d_ino) .field("d_pino", &self.d_pino) .field("d_reclen", &self.d_reclen) - // FIXME: .field("d_name", &self.d_name) + // FIXME(debug): .field("d_name", &self.d_name) .finish() } } @@ -868,7 +868,7 @@ pub const LC_NUMERIC: c_int = 4; pub const LC_TIME: c_int = 5; pub const LC_MESSAGES: c_int = 6; -// FIXME: Haiku does not have MAP_FILE, but library/std/os.rs requires it +// FIXME(haiku): Haiku does not have MAP_FILE, but library/std/os.rs requires it pub const MAP_FILE: c_int = 0x00; pub const MAP_SHARED: c_int = 0x01; pub const MAP_PRIVATE: c_int = 0x02; @@ -1302,7 +1302,7 @@ pub const PTHREAD_MUTEX_NORMAL: c_int = 1; pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 2; pub const PTHREAD_MUTEX_RECURSIVE: c_int = 3; -pub const FIOCLEX: c_ulong = 0; // FIXME: does not exist on Haiku! +pub const FIOCLEX: c_ulong = 0; // FIXME(haiku): does not exist on Haiku! pub const RUSAGE_CHILDREN: c_int = -1; diff --git a/src/unix/haiku/x86_64.rs b/src/unix/haiku/x86_64.rs index e77588df59f4f..548c8e06b825c 100644 --- a/src/unix/haiku/x86_64.rs +++ b/src/unix/haiku/x86_64.rs @@ -94,9 +94,9 @@ cfg_if! { .field("rdp", &self.rdp) .field("mxcsr", &self.mxcsr) .field("mscsr_mask", &self.mscsr_mask) - // FIXME: .field("_fpreg", &self._fpreg) - // FIXME: .field("_xmm", &self._xmm) - // FIXME: .field("_reserved_416_511", &self._reserved_416_511) + // FIXME(debug): .field("_fpreg", &self._fpreg) + // FIXME(debug): .field("_xmm", &self._xmm) + // FIXME(debug): .field("_reserved_416_511", &self._reserved_416_511) .finish() } } @@ -133,7 +133,7 @@ cfg_if! { f.debug_struct("xstate_hdr") .field("bv", &self.bv) .field("xcomp_bv", &self.xcomp_bv) - // FIXME: .field("_reserved", &field._reserved) + // FIXME(debug): .field("_reserved", &field._reserved) .finish() } } @@ -162,7 +162,7 @@ cfg_if! { f.debug_struct("savefpu") .field("fp_fxsave", &self.fp_fxsave) .field("fp_xstate", &self.fp_xstate) - // FIXME: .field("_fp_ymm", &field._fp_ymm) + // FIXME(debug): .field("_fp_ymm", &field._fp_ymm) .finish() } } diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index 291d78393fe9d..9bcc2717c7bd1 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -308,7 +308,7 @@ s_no_extra_traits! { pub uc_mcontext: mcontext_t, pub uc_sigmask: crate::sigset_t, __private: [u8; 512], - // FIXME(linux): the shadow stack field requires glibc >= 2.28. + // FIXME(glibc): the shadow stack field requires glibc >= 2.28. // Re-add once we drop compatibility with glibc versions older than // 2.28. // diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index f58eccca4edb3..4ae82af9c5d22 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -286,7 +286,7 @@ pub const SYS_clock_settime: c_int = 112; pub const SYS_clone: c_int = 220; pub const SYS_close: c_int = 57; pub const SYS_connect: c_int = 203; -pub const SYS_copy_file_range: c_int = -1; // FIXME(musl) +pub const SYS_copy_file_range: c_int = -1; // FIXME(hexagon) pub const SYS_creat: c_int = 1064; pub const SYS_delete_module: c_int = 106; pub const SYS_dup2: c_int = 1041; diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index b6850da000d34..c1457d631acf1 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -806,7 +806,7 @@ cfg_if! { f.debug_struct("sockaddr_un") .field("sun_len", &self.sun_len) .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) + // FIXME(debug): .field("sun_path", &self.sun_path) .finish() } } @@ -1015,11 +1015,11 @@ cfg_if! { impl fmt::Debug for utsname { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utsname") - // FIXME: .field("sysname", &self.sysname) - // FIXME: .field("nodename", &self.nodename) - // FIXME: .field("release", &self.release) - // FIXME: .field("version", &self.version) - // FIXME: .field("machine", &self.machine) + // FIXME(debug): .field("sysname", &self.sysname) + // FIXME(debug): .field("nodename", &self.nodename) + // FIXME(debug): .field("release", &self.release) + // FIXME(debug): .field("version", &self.version) + // FIXME(debug): .field("machine", &self.machine) .finish() } } @@ -1095,7 +1095,7 @@ cfg_if! { .field("ss_family", &self.ss_family) .field("__ss_pad1", &self.__ss_pad1) .field("__ss_align", &self.__ss_align) - // FIXME: .field("__ss_pad2", &self.__ss_pad2) + // FIXME(debug): .field("__ss_pad2", &self.__ss_pad2) .finish() } } diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 3a335357d6b6b..dbcc7f44e4437 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -589,7 +589,7 @@ cfg_if! { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("sockaddr_un") .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) + // FIXME(debug): .field("sun_path", &self.sun_path) .finish() } } @@ -632,11 +632,11 @@ cfg_if! { impl fmt::Debug for utsname { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utsname") - // FIXME: .field("sysname", &self.sysname) - // FIXME: .field("nodename", &self.nodename) - // FIXME: .field("release", &self.release) - // FIXME: .field("version", &self.version) - // FIXME: .field("machine", &self.machine) + // FIXME(debug): .field("sysname", &self.sysname) + // FIXME(debug): .field("nodename", &self.nodename) + // FIXME(debug): .field("release", &self.release) + // FIXME(debug): .field("version", &self.version) + // FIXME(debug): .field("machine", &self.machine) .finish() } } @@ -662,7 +662,7 @@ cfg_if! { impl fmt::Debug for fd_set { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("fd_set") - // FIXME: .field("fds_bits", &self.fds_bits) + // FIXME(debug): .field("fds_bits", &self.fds_bits) .finish() } } @@ -691,7 +691,7 @@ cfg_if! { .field("ss_family", &self.ss_family) .field("__ss_pad1", &self.__ss_pad1) .field("__ss_align", &self.__ss_align) - // FIXME: .field("__ss_pad2", &self.__ss_pad2) + // FIXME(debug): .field("__ss_pad2", &self.__ss_pad2) .finish() } } @@ -740,7 +740,7 @@ cfg_if! { && self.si_code == other.si_code && self.si_errno == other.si_errno { - // FIXME: The `si_pad` field in the 64-bit version of the struct is ignored + // FIXME(solarish): The `si_pad` field in the 64-bit version of the struct is ignored // (for now) when doing comparisons. let field_count = self.data_field_count(); @@ -760,7 +760,7 @@ cfg_if! { .field("si_signo", &self.si_signo) .field("si_code", &self.si_code) .field("si_errno", &self.si_errno) - // FIXME: .field("__pad", &self.__pad) + // FIXME(debug): .field("__pad", &self.__pad) .finish() } } @@ -770,7 +770,7 @@ cfg_if! { self.si_code.hash(state); self.si_errno.hash(state); - // FIXME: The `si_pad` field in the 64-bit version of the struct is ignored + // FIXME(solarish): The `si_pad` field in the 64-bit version of the struct is ignored // (for now) when doing hashing. let field_count = self.data_field_count(); @@ -803,7 +803,7 @@ cfg_if! { .field("sdl_nlen", &self.sdl_nlen) .field("sdl_alen", &self.sdl_alen) .field("sdl_slen", &self.sdl_slen) - // FIXME: .field("sdl_data", &self.sdl_data) + // FIXME(debug): .field("sdl_data", &self.sdl_data) .finish() } } @@ -853,7 +853,7 @@ cfg_if! { impl PartialEq for pad128_t { fn eq(&self, other: &pad128_t) -> bool { unsafe { - // FIXME: self._q == other._q || + // FIXME(solarish): self._q == other._q || self._l == other._l } } @@ -862,7 +862,7 @@ cfg_if! { impl hash::Hash for pad128_t { fn hash(&self, state: &mut H) { unsafe { - // FIXME: state.write_i64(self._q as i64); + // FIXME(solarish): state.write_i64(self._q as i64); self._l.hash(state); } } @@ -870,7 +870,7 @@ cfg_if! { impl PartialEq for upad128_t { fn eq(&self, other: &upad128_t) -> bool { unsafe { - // FIXME: self._q == other._q || + // FIXME(solarish): self._q == other._q || self._l == other._l } } @@ -879,7 +879,7 @@ cfg_if! { impl hash::Hash for upad128_t { fn hash(&self, state: &mut H) { unsafe { - // FIXME: state.write_i64(self._q as i64); + // FIXME(solarish): state.write_i64(self._q as i64); self._l.hash(state); } } From 1d231c33c7a92c30bdc2cd737372ed89c8d09f05 Mon Sep 17 00:00:00 2001 From: Tobias Heider Date: Tue, 25 Feb 2025 14:16:31 +0000 Subject: [PATCH 0510/1228] bsd: add devname(3) (backport ) (cherry picked from commit d27a2840b26ebd591858653bff3b684d40256721) --- libc-test/semver/apple.txt | 1 + libc-test/semver/dragonfly.txt | 1 + libc-test/semver/freebsd.txt | 1 + libc-test/semver/netbsd.txt | 1 + libc-test/semver/openbsd.txt | 1 + src/unix/bsd/mod.rs | 2 ++ 6 files changed, 7 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index 1b278d66a15b5..33f3682d36262 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -1924,6 +1924,7 @@ cpu_type_t ctime ctime_r ctl_info +devname difftime dirfd dirname diff --git a/libc-test/semver/dragonfly.txt b/libc-test/semver/dragonfly.txt index c197a2edac65b..1e6a5f4791cfd 100644 --- a/libc-test/semver/dragonfly.txt +++ b/libc-test/semver/dragonfly.txt @@ -1303,6 +1303,7 @@ cpuctl_cpuid_count_args_t cpuctl_msr_args_t cpuctl_update_args_t daemon +devname devname_r difftime dirfd diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index a5a9f9befb9d9..96b4c19b53fb7 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -1907,6 +1907,7 @@ cpuset_setid cpusetid_t daemon dallocx +devname devname_r difftime dirfd diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index faeb32e76862e..7c914ebbe9fed 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -1255,6 +1255,7 @@ clock_settime cmsghdr consttime_memequal daemon +devname difftime dirfd dirname diff --git a/libc-test/semver/openbsd.txt b/libc-test/semver/openbsd.txt index e09df52bb4c1b..74f7ec3183e3b 100644 --- a/libc-test/semver/openbsd.txt +++ b/libc-test/semver/openbsd.txt @@ -1070,6 +1070,7 @@ clock_getres clock_settime cmsghdr daemon +devname difftime dirfd dirname diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index bddb68c8b400a..674fdc088d2b9 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -965,6 +965,8 @@ extern "C" { timeptr: *const crate::tm, locale: crate::locale_t, ) -> size_t; + + pub fn devname(dev: crate::dev_t, mode_t: crate::mode_t) -> *mut c_char; } cfg_if! { From df5cd47764b35dff63900cbd8404d27055cf3d7b Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Thu, 23 Jan 2025 14:55:21 -0500 Subject: [PATCH 0511/1228] Use sa_sigaction instead the union for AIX. (backport ) (cherry picked from commit fcb9df0feecfd2aa3cbeda0501dbcd6bf0c9d872) --- src/unix/aix/mod.rs | 54 +++------------------------------------------ 1 file changed, 3 insertions(+), 51 deletions(-) diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index d158ab86c8a9b..a43fcd104748c 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -533,20 +533,15 @@ s! { pub it_interval: crate::timespec, pub it_value: crate::timespec, } -} - -s_no_extra_traits! { - pub union __sigaction_sa_union { - pub __su_handler: extern "C" fn(c: c_int), - pub __su_sigaction: extern "C" fn(c: c_int, info: *mut siginfo_t, ptr: *mut c_void), - } pub struct sigaction { - pub sa_union: __sigaction_sa_union, + pub sa_sigaction: crate::sighandler_t, // FIXME(union): this field is actually a union pub sa_mask: sigset_t, pub sa_flags: c_int, } +} +s_no_extra_traits! { pub union __poll_ctl_ext_u { pub addr: *mut c_void, pub data32: u32, @@ -565,49 +560,6 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { - impl PartialEq for __sigaction_sa_union { - fn eq(&self, other: &__sigaction_sa_union) -> bool { - unsafe { - self.__su_handler == other.__su_handler - && self.__su_sigaction == other.__su_sigaction - } - } - } - impl Eq for __sigaction_sa_union {} - impl hash::Hash for __sigaction_sa_union { - fn hash(&self, state: &mut H) { - unsafe { - self.__su_handler.hash(state); - self.__su_sigaction.hash(state); - } - } - } - - impl PartialEq for sigaction { - fn eq(&self, other: &sigaction) -> bool { - self.sa_mask == other.sa_mask - && self.sa_flags == other.sa_flags - && self.sa_union == other.sa_union - } - } - impl Eq for sigaction {} - impl fmt::Debug for sigaction { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("sigaction") - .field("sa_union", &self.sa_union) - .field("sa_mask", &self.sa_mask) - .field("sa_flags", &self.sa_flags) - .finish() - } - } - impl hash::Hash for sigaction { - fn hash(&self, state: &mut H) { - self.sa_union.hash(state); - self.sa_mask.hash(state); - self.sa_flags.hash(state); - } - } - impl PartialEq for __poll_ctl_ext_u { fn eq(&self, other: &__poll_ctl_ext_u) -> bool { unsafe { From 867fc9fbbcd2eacaf03bf544016527c5410f8c08 Mon Sep 17 00:00:00 2001 From: Eliza Weisman Date: Wed, 26 Feb 2025 13:01:01 -0800 Subject: [PATCH 0512/1228] solarish: define `IP_BOUND_IF` and `IPV6_BOUND_IF` These socket options are currently defined only on macOS and friends, but they exist on illumos and Solaris as well. This commit defines these socket options on solarish operating systems. On Solaris, see the man page [`ip(7P)`]. I'd like to provide a link to the illumos manual pages, but apparently https://illumos.org/man seems to be impacted by today's AWS outage. The constants are defined in `/usr/include/netinet/in.h`: ```console eliza@atrium ~ $ uname -a SunOS atrium 5.11 helios-2.0.22827 i86pc i386 i86pc eliza@atrium ~ $ rg 'IP(V6)?_BOUND_IF' /usr/include /usr/include/netinet/in.h 978:#define IP_BOUND_IF 0x41 /* bind socket to an ifindex */ 1311:#define IPV6_BOUND_IF 0x41 /* bind to an ifindex */ ``` [`ip(7P)`]: https://docs.oracle.com/cd/E86824_01/html/E54777/ip-7p.html - [x] Relevant tests in `libc-test/semver` have been updated - [x] No placeholder or unstable values like `*LAST` or `*MAX` are included (see [#3131](https://github.com/rust-lang/libc/issues/3131)) - [x] Tested locally (`cd libc-test && cargo test --target mytarget`); especially relevant for platforms that may not be checked in CI (backport ) (cherry picked from commit 885148d575cac3dd8473369271657fd425c3e300) --- libc-test/semver/solarish.txt | 2 ++ src/unix/solarish/mod.rs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/libc-test/semver/solarish.txt b/libc-test/semver/solarish.txt index f8380fd02936b..b02baab0efac2 100644 --- a/libc-test/semver/solarish.txt +++ b/libc-test/semver/solarish.txt @@ -1,10 +1,12 @@ AIO_ALLDONE AIO_CANCELED AIO_NOTCANCELED +IPV6_BOUND_IF IPV6_DONTFRAG IPV6_PKTINFO IPV6_RECVTCLASS IPV6_TCLASS +IP_BOUND_IF IP_DONTFRAG IP_PKTINFO IP_TOS diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index dbcc7f44e4437..65aaccec2ba96 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1148,6 +1148,7 @@ pub const IPV6_DONTFRAG: c_int = 0x21; pub const IPV6_SEC_OPT: c_int = 0x22; pub const IPV6_TCLASS: c_int = 0x26; pub const IPV6_V6ONLY: c_int = 0x27; +pub const IPV6_BOUND_IF: c_int = 0x41; cfg_if! { if #[cfg(target_pointer_width = "64")] { @@ -1691,6 +1692,7 @@ pub const IP_ADD_SOURCE_MEMBERSHIP: c_int = 23; pub const IP_DROP_SOURCE_MEMBERSHIP: c_int = 24; pub const IP_BLOCK_SOURCE: c_int = 21; pub const IP_UNBLOCK_SOURCE: c_int = 22; +pub const IP_BOUND_IF: c_int = 0x41; // These TCP socket options are common between illumos and Solaris, while higher // numbers have generally diverged: From 44f1f92025d2cc574500a1c5117f06833d82568a Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sun, 19 Jan 2025 13:14:14 +0000 Subject: [PATCH 0513/1228] adding if_nameindex/if_freenameindex support for Android. [ref](https://android.googlesource.com/platform/bionic/+/master/libc/include/net/if.h#52) close GH-4246 (backport ) (cherry picked from commit 32821d48836036550dad8f0660b7527ffdc2ac08) --- libc-test/build.rs | 5 +++++ libc-test/semver/android.txt | 2 ++ src/unix/linux_like/android/mod.rs | 8 ++++++++ 3 files changed, 15 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 994e359d49f79..e02fcbe106122 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1906,6 +1906,8 @@ fn test_android(target: &str) { // FIXME(android): "'__uint128' undeclared" in C "__uint128" => true, + // Added in API level 24 + "if_nameindex" => true, _ => false, } @@ -2152,6 +2154,9 @@ fn test_android(target: &str) { | "ispunct" | "isspace" | "isupper" | "isxdigit" | "isblank" | "tolower" | "toupper" => true, + // Added in API level 24 + "if_nameindex" | "if_freenameindex" => true, + _ => false, } }); diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index a60cd024f2040..c62b76b39a938 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -3382,7 +3382,9 @@ group hostent id_t idtype_t +if_freenameindex if_indextoname +if_nameindex if_nametoindex ifaddrs ifconf diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index af76f0307f8a0..ba9527c01ec2c 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -517,6 +517,11 @@ s! { pub ifr6_prefixlen: u32, pub ifr6_ifindex: c_int, } + + pub struct if_nameindex { + pub if_index: c_uint, + pub if_name: *mut c_char, + } } s_no_extra_traits! { @@ -4136,6 +4141,9 @@ extern "C" { newpath: *const c_char, flags: c_uint, ) -> c_int; + + pub fn if_nameindex() -> *mut if_nameindex; + pub fn if_freenameindex(ptr: *mut if_nameindex); } cfg_if! { From 2aabbf03958074908a4de9fa8bade1a2e8a43165 Mon Sep 17 00:00:00 2001 From: Tobias Heider Date: Sun, 2 Mar 2025 17:47:54 +0000 Subject: [PATCH 0514/1228] closefrom: add NetBSD, OpenBSD, DragonflyBSD NetBSD, OpenBSD and DragonFly return c_int, FreeBSD returns void, so we can't just add it in freebsdlike. Apple doesn't seem to support closefrom at all at this point. (backport ) (cherry picked from commit 8512ab4fed718fae6555838389d95d666d0536ed) --- libc-test/semver/dragonfly.txt | 1 + libc-test/semver/netbsd.txt | 1 + libc-test/semver/openbsd.txt | 1 + src/unix/bsd/freebsdlike/dragonfly/mod.rs | 2 ++ src/unix/bsd/netbsdlike/mod.rs | 2 ++ 5 files changed, 7 insertions(+) diff --git a/libc-test/semver/dragonfly.txt b/libc-test/semver/dragonfly.txt index 1e6a5f4791cfd..20efcf664696a 100644 --- a/libc-test/semver/dragonfly.txt +++ b/libc-test/semver/dragonfly.txt @@ -1296,6 +1296,7 @@ clock_getcpuclockid clock_getres clock_nanosleep clock_settime +closefrom cmsgcred cmsghdr cpuctl_cpuid_args_t diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index 7c914ebbe9fed..d9e1b66c233a4 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -1252,6 +1252,7 @@ clearerr clock_getres clock_nanosleep clock_settime +closefrom cmsghdr consttime_memequal daemon diff --git a/libc-test/semver/openbsd.txt b/libc-test/semver/openbsd.txt index 74f7ec3183e3b..a340a83a92712 100644 --- a/libc-test/semver/openbsd.txt +++ b/libc-test/semver/openbsd.txt @@ -1068,6 +1068,7 @@ chroot clearerr clock_getres clock_settime +closefrom cmsghdr daemon devname diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index a8c253bb976ac..5dbe69e564b33 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -1702,6 +1702,8 @@ extern "C" { mntvbufp: *mut *mut crate::statvfs, flags: c_int, ) -> c_int; + + pub fn closefrom(lowfd: c_int) -> c_int; } #[link(name = "rt")] diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index 7e5fa2ca87ef5..dfd58d75b74ae 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -861,6 +861,8 @@ extern "C" { flags: c_int, timeout: *mut crate::timespec, ) -> c_int; + + pub fn closefrom(lowfd: c_int) -> c_int; } cfg_if! { From 8410db8520803fb5c2f349038363cbdb1ad15c6a Mon Sep 17 00:00:00 2001 From: Bert Peters Date: Tue, 25 Feb 2025 20:44:37 +0100 Subject: [PATCH 0515/1228] Add SysV semaphore constants (backport ) (cherry picked from commit f84f6181c61aa0de121803da72ea6e8ca3097e04) --- libc-test/semver/linux.txt | 11 +++++++++++ src/unix/linux_like/linux/mod.rs | 13 +++++++++++++ 2 files changed, 24 insertions(+) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index af5ded298cb80..e0bca05e22be1 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -885,6 +885,11 @@ GENL_ID_CTRL GENL_MAX_ID GENL_MIN_ID GENL_NAMSIZ +GETALL +GETNCNT +GETPID +GETVAL +GETZCNT GLOB_ABORTED GLOB_APPEND GLOB_DOOFFS @@ -2744,6 +2749,12 @@ SEEK_DATA SEEK_HOLE SELFMAG SEM_FAILED +SEM_INFO +SEM_STAT +SEM_STAT_ANY +SEM_UNDO +SETALL +SETVAL SFD_CLOEXEC SFD_NONBLOCK SHM_EXEC diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index c3c084ed05d99..b36e0891741fa 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -3018,6 +3018,19 @@ pub const MSG_NOERROR: c_int = 0o10000; pub const MSG_EXCEPT: c_int = 0o20000; pub const MSG_ZEROCOPY: c_int = 0x4000000; +pub const SEM_UNDO: c_int = 0x1000; + +pub const GETPID: c_int = 11; +pub const GETVAL: c_int = 12; +pub const GETALL: c_int = 13; +pub const GETNCNT: c_int = 14; +pub const GETZCNT: c_int = 15; +pub const SETVAL: c_int = 16; +pub const SETALL: c_int = 17; +pub const SEM_STAT: c_int = 18; +pub const SEM_INFO: c_int = 19; +pub const SEM_STAT_ANY: c_int = 20; + pub const SHM_R: c_int = 0o400; pub const SHM_W: c_int = 0o200; From fd2157c126ad79c896c25a2f0eb3f6fcd812f1f0 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Fri, 28 Feb 2025 16:58:36 +0100 Subject: [PATCH 0516/1228] linux/mips: Correct values for SI_TIMER, SI_MESGQ, SI_ASYNCIO See arch/mips/include/uapi/asm/siginfo.h (backport ) (cherry picked from commit 1f8474e2e4c34851ad339cf3948e7e5610878232) --- src/unix/linux_like/mod.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index c7ff2aea96e79..1d8f2747ea0ac 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1293,9 +1293,17 @@ pub const SI_LOAD_SHIFT: c_uint = 16; pub const SI_USER: c_int = 0; pub const SI_KERNEL: c_int = 0x80; pub const SI_QUEUE: c_int = -1; -pub const SI_TIMER: c_int = -2; -pub const SI_MESGQ: c_int = -3; -pub const SI_ASYNCIO: c_int = -4; +cfg_if! { + if #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] { + pub const SI_TIMER: c_int = -2; + pub const SI_MESGQ: c_int = -3; + pub const SI_ASYNCIO: c_int = -4; + } else { + pub const SI_TIMER: c_int = -3; + pub const SI_MESGQ: c_int = -4; + pub const SI_ASYNCIO: c_int = -2; + } +} pub const SI_SIGIO: c_int = -5; pub const SI_TKILL: c_int = -6; pub const SI_ASYNCNL: c_int = -60; From 06e704bb829187e32f5cfe58788b046098388341 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 10 Mar 2025 05:40:03 +0000 Subject: [PATCH 0517/1228] Change the range syntax that is giving `ctest` problems `ctest` is iffy about whether or not it accepts `..=` syntax, and I can't figure out what makes it decide whether or not to accept it and sometimes random changes seem to make things fail, so just replace the syntax. This is simpler anyway, and closer matches the upstream definition [1]. Link: https://github.com/torvalds/linux/blob/80e54e84911a923c40d7bee33a34c1b4be148d7a/Makefile#L1316 [1] (backport ) (cherry picked from commit 1779f14a0ea8bb663e1e220f006f88284fe5e1b3) --- libc-test/test/linux_kernel_version.rs | 13 +++++++------ src/unix/linux_like/mod.rs | 6 +----- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/libc-test/test/linux_kernel_version.rs b/libc-test/test/linux_kernel_version.rs index 767b0db257a46..eadc4095bee96 100644 --- a/libc-test/test/linux_kernel_version.rs +++ b/libc-test/test/linux_kernel_version.rs @@ -1,15 +1,16 @@ //! Compare libc's KERNEL_VERSION macro against a specific kernel version. -#[cfg( - target_os = "linux", -)] +#[cfg(target_os = "linux")] mod t { use libc; #[test] fn test_kernel_version() { - unsafe { - assert_eq!(libc::KERNEL_VERSION(6, 0, 0), 393216); - } + assert_eq!(unsafe { libc::KERNEL_VERSION(6, 0, 0) }, 393216); + // Check that the patch level saturates + assert_eq!(unsafe { libc::KERNEL_VERSION(6, 0, 255) }, 393471); + assert_eq!(unsafe { libc::KERNEL_VERSION(6, 0, 256) }, 393471); + assert_eq!(unsafe { libc::KERNEL_VERSION(6, 0, 300) }, 393471); + assert_eq!(unsafe { libc::KERNEL_VERSION(6, 0, u32::MAX) }, 393471); } } diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 1d8f2747ea0ac..b3e6281f48d28 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1756,11 +1756,7 @@ safe_f! { #[allow(ellipsis_inclusive_range_patterns)] pub {const} fn KERNEL_VERSION(a: u32, b: u32, c: u32) -> u32 { - ((a << 16) + (b << 8)) - + match c { - 0..=255 => c, - _ => 255, - } + ((a << 16) + (b << 8)) + if c > 255 { 255 } else { c } } } From f05012e4ec451eda76697a764d9b7d6846cb75a0 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 10 Mar 2025 05:44:50 +0000 Subject: [PATCH 0518/1228] Remove tests for the `i586-pc-windows-msvc` target Since [1], this target no longer exists so we need to remove it from CI. [1]: https://github.com/rust-lang/rust/pull/137957 (backport ) (cherry picked from commit 33c320a059c3bf9ee11538f7a3430a7b19543823) --- Cargo.toml | 1 - ci/verify-build.sh | 1 - 2 files changed, 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index e3b20745500dd..f9c7268f60cc5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -50,7 +50,6 @@ targets = [ "armv7r-none-eabihf", # FIXME(hexagon): excluded due to duplicate symbol errors # "hexagon-unknown-linux-musl", - "i586-pc-windows-msvc", "i586-unknown-linux-gnu", "i586-unknown-linux-musl", "i686-linux-android", diff --git a/ci/verify-build.sh b/ci/verify-build.sh index ccdc223263641..7ee562312b410 100755 --- a/ci/verify-build.sh +++ b/ci/verify-build.sh @@ -192,7 +192,6 @@ armebv7r-none-eabihf \ armv7-wrs-vxworks-eabihf \ armv7r-none-eabi \ armv7r-none-eabihf \ -i586-pc-windows-msvc \ i686-pc-windows-msvc \ i686-unknown-haiku \ i686-unknown-netbsd \ From e7dcb9743a5030a4c0720cf05ef40c7de8bee36f Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 10 Mar 2025 06:39:11 +0000 Subject: [PATCH 0519/1228] Remove the `check_cfg` job check-cfg was stabilized in 1.80, so there is no longer any need to have a specific job and environment variable to enable it only under certain conditions. (backport ) (cherry picked from commit 2065a4a0c64452ee5f2ba2b2182285711a2173ba) --- .github/workflows/ci.yaml | 13 ------------- build.rs | 10 +++------- 2 files changed, 3 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 964d72d1d4d99..10bd55da62685 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -204,19 +204,6 @@ jobs: export PATH=$HOME/.rust_solaris/bin:$PATH ./ci/run.sh ${{ matrix.target }} - check_cfg: - name: "Check #[cfg]s" - runs-on: ubuntu-24.04 - env: - TOOLCHAIN: nightly - timeout-minutes: 10 - steps: - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: ./ci/install-rust.sh - - name: Build with check-cfg - run: LIBC_CHECK_CFG=1 cargo build -Z unstable-options -Z check-cfg - # One job that "summarizes" the success state of this pipeline. This can then be added to branch # protection, rather than having to add each job separately. success: diff --git a/build.rs b/build.rs index 3439208f7e2ce..cf1a2e0da024b 100644 --- a/build.rs +++ b/build.rs @@ -44,7 +44,6 @@ fn main() { let (rustc_minor_ver, _is_nightly) = rustc_minor_nightly(); let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); let libc_ci = env::var("LIBC_CI").is_ok(); - let libc_check_cfg = env::var("LIBC_CHECK_CFG").is_ok() || rustc_minor_ver >= 80; // 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. @@ -100,12 +99,9 @@ fn main() { // Set unconditionally when ctest is not being invoked. 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 { + // Since Rust 1.80, configuration that isn't recognized by default needs to be provided to + // avoid warnings. + if rustc_minor_ver >= 80 { for cfg in ALLOWED_CFGS { if rustc_minor_ver >= 75 { println!("cargo:rustc-check-cfg=cfg({})", cfg); From 83f6dcfb7a6991203990f4859d05ca74c0afba53 Mon Sep 17 00:00:00 2001 From: John Marino Date: Mon, 3 Mar 2025 22:57:04 +0000 Subject: [PATCH 0520/1228] Relocate functions to define them to dragonfly. While here: - Relocate mkostemp and mkostemps functions for same reason - Update semver tests for DF spawn and mkostemp(s) (backport ) [ update constants to c_int to match libc-0.2 - Trevor ] (cherry picked from commit a294be6fcad4d1297e303de42f459aafe5f5a8f0) --- libc-test/semver/dragonfly.txt | 31 +++++++++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 87 ------------------------ src/unix/bsd/freebsdlike/mod.rs | 88 +++++++++++++++++++++++++ 3 files changed, 119 insertions(+), 87 deletions(-) diff --git a/libc-test/semver/dragonfly.txt b/libc-test/semver/dragonfly.txt index 20efcf664696a..564d4eb36c311 100644 --- a/libc-test/semver/dragonfly.txt +++ b/libc-test/semver/dragonfly.txt @@ -771,6 +771,12 @@ POSIX_MADV_NORMAL POSIX_MADV_RANDOM POSIX_MADV_SEQUENTIAL POSIX_MADV_WILLNEED +POSIX_SPAWN_RESETIDS +POSIX_SPAWN_SETPGROUP +POSIX_SPAWN_SETSCHEDPARAM +POSIX_SPAWN_SETSCHEDULER +POSIX_SPAWN_SETSIGDEF +POSIX_SPAWN_SETSIGMASK PPPDISC PROC_PDEATHSIG_CTL PROC_PDEATHSIG_STATUS @@ -1434,6 +1440,8 @@ mincore mkdirat mkfifoat mknodat +mkostemp +mkostemps mkstemps mq_attr mq_close @@ -1468,6 +1476,29 @@ popen posix_fadvise posix_fallocate 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_spawn_file_actions_t +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_spawnattr_t +posix_spawnp ppoll preadv procctl diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 824ff1ac674c6..ff096e51c731c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -26,8 +26,6 @@ pub type cpulevel_t = c_int; pub type cpuwhich_t = c_int; pub type mqd_t = *mut c_void; -pub type posix_spawnattr_t = *mut c_void; -pub type posix_spawn_file_actions_t = *mut c_void; pub type pthread_spinlock_t = *mut __c_anonymous_pthread_spinlock; pub type pthread_barrierattr_t = *mut __c_anonymous_pthread_barrierattr; @@ -3967,14 +3965,6 @@ pub const RTP_PRIO_REALTIME: c_ushort = 2; pub const RTP_PRIO_NORMAL: c_ushort = 3; pub const RTP_PRIO_IDLE: c_ushort = 4; -// DIFF(main): changed to `c_short` in f62eb023ab -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; - // Flags for chflags(2) pub const UF_SYSTEM: c_ulong = 0x00000080; pub const UF_SPARSE: c_ulong = 0x00000100; @@ -5185,9 +5175,6 @@ extern "C" { sevp: *mut sigevent, ) -> c_int; - pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int; - pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int; - pub fn getutxuser(user: *const c_char) -> *mut utmpx; pub fn setutxdb(_type: c_int, file: *const c_char) -> c_int; @@ -5221,80 +5208,6 @@ extern "C" { pub fn rtprio_thread(function: c_int, lwpid: crate::lwpid_t, rtp: *mut super::rtprio) -> c_int; - pub fn posix_spawn( - pid: *mut crate::pid_t, - path: *const c_char, - file_actions: *const crate::posix_spawn_file_actions_t, - attrp: *const crate::posix_spawnattr_t, - argv: *const *mut c_char, - envp: *const *mut c_char, - ) -> c_int; - pub fn posix_spawnp( - pid: *mut crate::pid_t, - file: *const c_char, - file_actions: *const crate::posix_spawn_file_actions_t, - attrp: *const crate::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 crate::sigset_t, - ) -> c_int; - pub fn posix_spawnattr_setsigdefault( - attr: *mut posix_spawnattr_t, - default: *const crate::sigset_t, - ) -> c_int; - pub fn posix_spawnattr_getsigmask( - attr: *const posix_spawnattr_t, - default: *mut crate::sigset_t, - ) -> c_int; - pub fn posix_spawnattr_setsigmask( - attr: *mut posix_spawnattr_t, - default: *const crate::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 crate::pid_t, - ) -> c_int; - pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: crate::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 crate::sched_param, - ) -> c_int; - pub fn posix_spawnattr_setschedparam( - attr: *mut posix_spawnattr_t, - param: *const crate::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: crate::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; - pub fn uuidgen(store: *mut uuid, count: c_int) -> c_int; pub fn thr_kill(id: c_long, sig: c_int) -> c_int; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 2d74756d9957d..5ed09c78f1891 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -42,6 +42,9 @@ pub type iconv_t = *mut c_void; // making the type definition system dependent. Better not bind it exactly. pub type kvm_t = c_void; +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; @@ -1481,6 +1484,14 @@ pub const GRND_NONBLOCK: c_uint = 0x1; pub const GRND_RANDOM: c_uint = 0x2; pub const GRND_INSECURE: c_uint = 0x4; +// DIFF(main): changed to `c_short` in f62eb023ab +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; + safe_f! { pub {const} fn WIFCONTINUED(status: c_int) -> bool { status == 0x13 @@ -1795,6 +1806,83 @@ extern "C" { search_path: *const c_char, argv: *const *mut c_char, ) -> c_int; + + pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int; + pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int; + + pub fn posix_spawn( + pid: *mut crate::pid_t, + path: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::posix_spawnattr_t, + argv: *const *mut c_char, + envp: *const *mut c_char, + ) -> c_int; + pub fn posix_spawnp( + pid: *mut crate::pid_t, + file: *const c_char, + file_actions: *const crate::posix_spawn_file_actions_t, + attrp: *const crate::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 crate::sigset_t, + ) -> c_int; + pub fn posix_spawnattr_setsigdefault( + attr: *mut posix_spawnattr_t, + default: *const crate::sigset_t, + ) -> c_int; + pub fn posix_spawnattr_getsigmask( + attr: *const posix_spawnattr_t, + default: *mut crate::sigset_t, + ) -> c_int; + pub fn posix_spawnattr_setsigmask( + attr: *mut posix_spawnattr_t, + default: *const crate::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 crate::pid_t, + ) -> c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: crate::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 crate::sched_param, + ) -> c_int; + pub fn posix_spawnattr_setschedparam( + attr: *mut posix_spawnattr_t, + param: *const crate::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: crate::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; } #[link(name = "rt")] From 9f7928d701bab7f18b3277a2f5bd43f7701a2e13 Mon Sep 17 00:00:00 2001 From: Arjun Ramesh Date: Wed, 10 Jul 2024 17:40:44 -0400 Subject: [PATCH 0521/1228] Added bindings for `wasm32-wali-linux-musl` target Base libc crate symbols without named syscall stubbing in this crate. Basic `libc-test` support is included, but the target is currently untested (backport ) (cherry picked from commit 1b8acf5cbe21f84059a973a85a6ef9b79598495a) --- libc-test/build.rs | 145 ++-- src/unix/linux_like/linux/arch/generic/mod.rs | 3 +- src/unix/linux_like/linux/musl/b64/mod.rs | 3 + .../linux_like/linux/musl/b64/wasm32/mod.rs | 681 ++++++++++++++++++ .../linux_like/linux/musl/b64/wasm32/wali.rs | 441 ++++++++++++ src/unix/linux_like/linux/musl/mod.rs | 4 +- 6 files changed, 1206 insertions(+), 71 deletions(-) create mode 100644 src/unix/linux_like/linux/musl/b64/wasm32/mod.rs create mode 100644 src/unix/linux_like/linux/musl/b64/wasm32/wali.rs diff --git a/libc-test/build.rs b/libc-test/build.rs index e02fcbe106122..43614c8678d1b 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -14,7 +14,7 @@ fn src_hotfix_dir() -> PathBuf { fn do_cc() { let target = env::var("TARGET").unwrap(); if cfg!(unix) { - let exclude = ["redox", "wasi"]; + let exclude = ["redox", "wasi", "wali"]; if !exclude.iter().any(|x| target.contains(x)) { let mut cmsg = cc::Build::new(); @@ -26,7 +26,7 @@ fn do_cc() { cmsg.compile("cmsg"); } - if target.contains("linux") + if (target.contains("linux") && !target.contains("wasm32")) || target.contains("android") || target.contains("emscripten") || target.contains("fuchsia") @@ -35,10 +35,10 @@ fn do_cc() { cc::Build::new().file("src/makedev.c").compile("makedev"); } } - if target.contains("android") || target.contains("linux") { + if target.contains("android") || (target.contains("linux") && !target.contains("wasm32")) { cc::Build::new().file("src/errqueue.c").compile("errqueue"); } - if target.contains("linux") + if (target.contains("linux") && !target.contains("wasm32")) || target.contains("l4re") || target.contains("android") || target.contains("emscripten") @@ -3509,6 +3509,7 @@ fn test_linux(target: &str) { let x86_64_gnux32 = target.contains("gnux32") && x86_64; let riscv64 = target.contains("riscv64"); let loongarch64 = target.contains("loongarch64"); + let wasm32 = target.contains("wasm32"); let uclibc = target.contains("uclibc"); let mut cfg = ctest_cfg(); @@ -3634,68 +3635,73 @@ fn test_linux(target: &str) { cfg: [loongarch64 || riscv64]: "asm/hwcap.h", "asm/mman.h", - [gnu]: "linux/aio_abi.h", - "linux/can.h", - "linux/can/raw.h", - "linux/can/j1939.h", - "linux/dccp.h", - "linux/errqueue.h", - "linux/falloc.h", - "linux/filter.h", - "linux/fs.h", - "linux/futex.h", - "linux/genetlink.h", - "linux/if.h", - "linux/if_addr.h", - "linux/if_alg.h", - "linux/if_ether.h", - "linux/if_packet.h", - "linux/if_tun.h", - "linux/if_xdp.h", - "linux/input.h", - "linux/ipv6.h", - "linux/kexec.h", - "linux/keyctl.h", - "linux/magic.h", - "linux/memfd.h", - "linux/membarrier.h", - "linux/mempolicy.h", - "linux/mman.h", - "linux/module.h", - "linux/mount.h", - "linux/net_tstamp.h", - "linux/netfilter/nfnetlink.h", - "linux/netfilter/nfnetlink_log.h", - "linux/netfilter/nfnetlink_queue.h", - "linux/netfilter/nf_tables.h", - "linux/netfilter_arp.h", - "linux/netfilter_bridge.h", - "linux/netfilter_ipv4.h", - "linux/netfilter_ipv6.h", - "linux/netfilter_ipv6/ip6_tables.h", - "linux/netlink.h", - "linux/openat2.h", - // FIXME(linux): some items require Linux >= 5.6: - "linux/ptp_clock.h", - "linux/ptrace.h", - "linux/quota.h", - "linux/random.h", - "linux/reboot.h", - "linux/rtnetlink.h", - "linux/sched.h", - "linux/sctp.h", - "linux/seccomp.h", - "linux/sock_diag.h", - "linux/sockios.h", - "linux/tls.h", - "linux/uinput.h", - "linux/vm_sockets.h", - "linux/wait.h", - "linux/wireless.h", - "sys/fanotify.h", - // is not present on uclibc - [!uclibc]: "sys/auxv.h", - [gnu || musl]: "linux/close_range.h", + } + + if !wasm32 { + headers! { cfg: + [gnu]: "linux/aio_abi.h", + "linux/can.h", + "linux/can/raw.h", + "linux/can/j1939.h", + "linux/dccp.h", + "linux/errqueue.h", + "linux/falloc.h", + "linux/filter.h", + "linux/fs.h", + "linux/futex.h", + "linux/genetlink.h", + "linux/if.h", + "linux/if_addr.h", + "linux/if_alg.h", + "linux/if_ether.h", + "linux/if_packet.h", + "linux/if_tun.h", + "linux/if_xdp.h", + "linux/input.h", + "linux/ipv6.h", + "linux/kexec.h", + "linux/keyctl.h", + "linux/magic.h", + "linux/memfd.h", + "linux/membarrier.h", + "linux/mempolicy.h", + "linux/mman.h", + "linux/module.h", + "linux/mount.h", + "linux/net_tstamp.h", + "linux/netfilter/nfnetlink.h", + "linux/netfilter/nfnetlink_log.h", + "linux/netfilter/nfnetlink_queue.h", + "linux/netfilter/nf_tables.h", + "linux/netfilter_arp.h", + "linux/netfilter_bridge.h", + "linux/netfilter_ipv4.h", + "linux/netfilter_ipv6.h", + "linux/netfilter_ipv6/ip6_tables.h", + "linux/netlink.h", + "linux/openat2.h", + // FIXME(linux): some items require Linux >= 5.6: + "linux/ptp_clock.h", + "linux/ptrace.h", + "linux/quota.h", + "linux/random.h", + "linux/reboot.h", + "linux/rtnetlink.h", + "linux/sched.h", + "linux/sctp.h", + "linux/seccomp.h", + "linux/sock_diag.h", + "linux/sockios.h", + "linux/tls.h", + "linux/uinput.h", + "linux/vm_sockets.h", + "linux/wait.h", + "linux/wireless.h", + "sys/fanotify.h", + // is not present on uclibc + [!uclibc]: "sys/auxv.h", + [gnu || musl]: "linux/close_range.h", + } } // note: aio.h must be included before sys/mount.h @@ -4632,6 +4638,7 @@ fn test_linux_like_apis(target: &str) { let gnu = target.contains("gnu"); let musl = target.contains("musl") || target.contains("ohos"); let linux = target.contains("linux"); + let wali = target.contains("linux") && target.contains("wasm32"); let emscripten = target.contains("emscripten"); let android = target.contains("android"); assert!(linux || android || emscripten); @@ -4681,7 +4688,7 @@ fn test_linux_like_apis(target: &str) { cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_fcntl.rs"); } - if linux || android { + if (linux && !wali) || android { // test termios let mut cfg = ctest_cfg(); cfg.header("asm/termbits.h"); @@ -4733,7 +4740,7 @@ fn test_linux_like_apis(target: &str) { cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_ipv6.rs"); } - if linux || android { + if (linux && !wali) || android { // Test Elf64_Phdr and Elf32_Phdr // These types have a field called `p_type`, but including // "resolve.h" defines a `p_type` macro that expands to `__p_type` @@ -4755,7 +4762,7 @@ fn test_linux_like_apis(target: &str) { cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_elf.rs"); } - if linux || android { + if (linux && !wali) || android { // Test `ARPHRD_CAN`. let mut cfg = ctest_cfg(); cfg.header("linux/if_arp.h"); diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index 098c83c3b885b..e81f49b443190 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -303,7 +303,8 @@ cfg_if! { target_arch = "riscv64", target_arch = "aarch64", target_arch = "s390x", - target_arch = "loongarch64" + target_arch = "loongarch64", + target_arch = "wasm32" ))] { pub const FS_IOC_GETFLAGS: Ioctl = 0x80086601; pub const FS_IOC_SETFLAGS: Ioctl = 0x40086602; diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index b6e7de6591809..174d80d3950cb 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -107,6 +107,9 @@ cfg_if! { } else if #[cfg(any(target_arch = "loongarch64"))] { mod loongarch64; pub use self::loongarch64::*; + } else if #[cfg(any(target_arch = "wasm32"))] { + mod wasm32; + pub use self::wasm32::*; } else { // Unknown target_arch } diff --git a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs new file mode 100644 index 0000000000000..3ac15b8a9349d --- /dev/null +++ b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs @@ -0,0 +1,681 @@ +//! Wasm32 definitions conforming to the WALI ABI. +//! The WALI ABI closely mirrors `x86_64` Linux and is thus implemented within the `b64` module as opposed to `b32` +use crate::off_t; +use crate::prelude::*; + +pub type wchar_t = i32; +pub type nlink_t = u64; +pub type blksize_t = c_long; +pub type __u64 = c_ulonglong; +pub type __s64 = c_longlong; + +s! { + pub struct stat { + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + __pad0: c_int, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __unused: [c_long; 3], + } + + pub struct stat64 { + pub st_dev: crate::dev_t, + pub st_ino: crate::ino64_t, + pub st_nlink: crate::nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + __pad0: c_int, + pub st_rdev: crate::dev_t, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __reserved: [c_long; 3], + } + + pub struct ipc_perm { + pub __ipc_perm_key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub __seq: c_int, + __unused1: c_long, + __unused2: c_long, + } +} + +// Syscall table +pub const SYS_read: c_long = 0; +pub const SYS_write: c_long = 1; +pub const SYS_open: c_long = 2; +pub const SYS_close: c_long = 3; +pub const SYS_stat: c_long = 4; +pub const SYS_fstat: c_long = 5; +pub const SYS_lstat: c_long = 6; +pub const SYS_poll: c_long = 7; +pub const SYS_lseek: c_long = 8; +pub const SYS_mmap: c_long = 9; +pub const SYS_mprotect: c_long = 10; +pub const SYS_munmap: c_long = 11; +pub const SYS_brk: c_long = 12; +pub const SYS_rt_sigaction: c_long = 13; +pub const SYS_rt_sigprocmask: c_long = 14; +pub const SYS_rt_sigreturn: c_long = 15; +pub const SYS_ioctl: c_long = 16; +pub const SYS_pread64: c_long = 17; +pub const SYS_pwrite64: c_long = 18; +pub const SYS_readv: c_long = 19; +pub const SYS_writev: c_long = 20; +pub const SYS_access: c_long = 21; +pub const SYS_pipe: c_long = 22; +pub const SYS_select: c_long = 23; +pub const SYS_sched_yield: c_long = 24; +pub const SYS_mremap: c_long = 25; +pub const SYS_msync: c_long = 26; +pub const SYS_mincore: c_long = 27; +pub const SYS_madvise: c_long = 28; +pub const SYS_shmget: c_long = 29; +pub const SYS_shmat: c_long = 30; +pub const SYS_shmctl: c_long = 31; +pub const SYS_dup: c_long = 32; +pub const SYS_dup2: c_long = 33; +pub const SYS_pause: c_long = 34; +pub const SYS_nanosleep: c_long = 35; +pub const SYS_getitimer: c_long = 36; +pub const SYS_alarm: c_long = 37; +pub const SYS_setitimer: c_long = 38; +pub const SYS_getpid: c_long = 39; +pub const SYS_sendfile: c_long = 40; +pub const SYS_socket: c_long = 41; +pub const SYS_connect: c_long = 42; +pub const SYS_accept: c_long = 43; +pub const SYS_sendto: c_long = 44; +pub const SYS_recvfrom: c_long = 45; +pub const SYS_sendmsg: c_long = 46; +pub const SYS_recvmsg: c_long = 47; +pub const SYS_shutdown: c_long = 48; +pub const SYS_bind: c_long = 49; +pub const SYS_listen: c_long = 50; +pub const SYS_getsockname: c_long = 51; +pub const SYS_getpeername: c_long = 52; +pub const SYS_socketpair: c_long = 53; +pub const SYS_setsockopt: c_long = 54; +pub const SYS_getsockopt: c_long = 55; +pub const SYS_clone: c_long = 56; +pub const SYS_fork: c_long = 57; +pub const SYS_vfork: c_long = 58; +pub const SYS_execve: c_long = 59; +pub const SYS_exit: c_long = 60; +pub const SYS_wait4: c_long = 61; +pub const SYS_kill: c_long = 62; +pub const SYS_uname: c_long = 63; +pub const SYS_semget: c_long = 64; +pub const SYS_semop: c_long = 65; +pub const SYS_semctl: c_long = 66; +pub const SYS_shmdt: c_long = 67; +pub const SYS_msgget: c_long = 68; +pub const SYS_msgsnd: c_long = 69; +pub const SYS_msgrcv: c_long = 70; +pub const SYS_msgctl: c_long = 71; +pub const SYS_fcntl: c_long = 72; +pub const SYS_flock: c_long = 73; +pub const SYS_fsync: c_long = 74; +pub const SYS_fdatasync: c_long = 75; +pub const SYS_truncate: c_long = 76; +pub const SYS_ftruncate: c_long = 77; +pub const SYS_getdents: c_long = 78; +pub const SYS_getcwd: c_long = 79; +pub const SYS_chdir: c_long = 80; +pub const SYS_fchdir: c_long = 81; +pub const SYS_rename: c_long = 82; +pub const SYS_mkdir: c_long = 83; +pub const SYS_rmdir: c_long = 84; +pub const SYS_creat: c_long = 85; +pub const SYS_link: c_long = 86; +pub const SYS_unlink: c_long = 87; +pub const SYS_symlink: c_long = 88; +pub const SYS_readlink: c_long = 89; +pub const SYS_chmod: c_long = 90; +pub const SYS_fchmod: c_long = 91; +pub const SYS_chown: c_long = 92; +pub const SYS_fchown: c_long = 93; +pub const SYS_lchown: c_long = 94; +pub const SYS_umask: c_long = 95; +pub const SYS_gettimeofday: c_long = 96; +pub const SYS_getrlimit: c_long = 97; +pub const SYS_getrusage: c_long = 98; +pub const SYS_sysinfo: c_long = 99; +pub const SYS_times: c_long = 100; +pub const SYS_ptrace: c_long = 101; +pub const SYS_getuid: c_long = 102; +pub const SYS_syslog: c_long = 103; +pub const SYS_getgid: c_long = 104; +pub const SYS_setuid: c_long = 105; +pub const SYS_setgid: c_long = 106; +pub const SYS_geteuid: c_long = 107; +pub const SYS_getegid: c_long = 108; +pub const SYS_setpgid: c_long = 109; +pub const SYS_getppid: c_long = 110; +pub const SYS_getpgrp: c_long = 111; +pub const SYS_setsid: c_long = 112; +pub const SYS_setreuid: c_long = 113; +pub const SYS_setregid: c_long = 114; +pub const SYS_getgroups: c_long = 115; +pub const SYS_setgroups: c_long = 116; +pub const SYS_setresuid: c_long = 117; +pub const SYS_getresuid: c_long = 118; +pub const SYS_setresgid: c_long = 119; +pub const SYS_getresgid: c_long = 120; +pub const SYS_getpgid: c_long = 121; +pub const SYS_setfsuid: c_long = 122; +pub const SYS_setfsgid: c_long = 123; +pub const SYS_getsid: c_long = 124; +pub const SYS_capget: c_long = 125; +pub const SYS_capset: c_long = 126; +pub const SYS_rt_sigpending: c_long = 127; +pub const SYS_rt_sigtimedwait: c_long = 128; +pub const SYS_rt_sigqueueinfo: c_long = 129; +pub const SYS_rt_sigsuspend: c_long = 130; +pub const SYS_sigaltstack: c_long = 131; +pub const SYS_utime: c_long = 132; +pub const SYS_mknod: c_long = 133; +pub const SYS_uselib: c_long = 134; +pub const SYS_personality: c_long = 135; +pub const SYS_ustat: c_long = 136; +pub const SYS_statfs: c_long = 137; +pub const SYS_fstatfs: c_long = 138; +pub const SYS_sysfs: c_long = 139; +pub const SYS_getpriority: c_long = 140; +pub const SYS_setpriority: c_long = 141; +pub const SYS_sched_setparam: c_long = 142; +pub const SYS_sched_getparam: c_long = 143; +pub const SYS_sched_setscheduler: c_long = 144; +pub const SYS_sched_getscheduler: c_long = 145; +pub const SYS_sched_get_priority_max: c_long = 146; +pub const SYS_sched_get_priority_min: c_long = 147; +pub const SYS_sched_rr_get_interval: c_long = 148; +pub const SYS_mlock: c_long = 149; +pub const SYS_munlock: c_long = 150; +pub const SYS_mlockall: c_long = 151; +pub const SYS_munlockall: c_long = 152; +pub const SYS_vhangup: c_long = 153; +pub const SYS_modify_ldt: c_long = 154; +pub const SYS_pivot_root: c_long = 155; +pub const SYS__sysctl: c_long = 156; +pub const SYS_prctl: c_long = 157; +pub const SYS_arch_prctl: c_long = 158; +pub const SYS_adjtimex: c_long = 159; +pub const SYS_setrlimit: c_long = 160; +pub const SYS_chroot: c_long = 161; +pub const SYS_sync: c_long = 162; +pub const SYS_acct: c_long = 163; +pub const SYS_settimeofday: c_long = 164; +pub const SYS_mount: c_long = 165; +pub const SYS_umount2: c_long = 166; +pub const SYS_swapon: c_long = 167; +pub const SYS_swapoff: c_long = 168; +pub const SYS_reboot: c_long = 169; +pub const SYS_sethostname: c_long = 170; +pub const SYS_setdomainname: c_long = 171; +pub const SYS_iopl: c_long = 172; +pub const SYS_ioperm: c_long = 173; +pub const SYS_create_module: c_long = 174; +pub const SYS_init_module: c_long = 175; +pub const SYS_delete_module: c_long = 176; +pub const SYS_get_kernel_syms: c_long = 177; +pub const SYS_query_module: c_long = 178; +pub const SYS_quotactl: c_long = 179; +pub const SYS_nfsservctl: c_long = 180; +pub const SYS_getpmsg: c_long = 181; +pub const SYS_putpmsg: c_long = 182; +pub const SYS_afs_syscall: c_long = 183; +pub const SYS_tuxcall: c_long = 184; +pub const SYS_security: c_long = 185; +pub const SYS_gettid: c_long = 186; +pub const SYS_readahead: c_long = 187; +pub const SYS_setxattr: c_long = 188; +pub const SYS_lsetxattr: c_long = 189; +pub const SYS_fsetxattr: c_long = 190; +pub const SYS_getxattr: c_long = 191; +pub const SYS_lgetxattr: c_long = 192; +pub const SYS_fgetxattr: c_long = 193; +pub const SYS_listxattr: c_long = 194; +pub const SYS_llistxattr: c_long = 195; +pub const SYS_flistxattr: c_long = 196; +pub const SYS_removexattr: c_long = 197; +pub const SYS_lremovexattr: c_long = 198; +pub const SYS_fremovexattr: c_long = 199; +pub const SYS_tkill: c_long = 200; +pub const SYS_time: c_long = 201; +pub const SYS_futex: c_long = 202; +pub const SYS_sched_setaffinity: c_long = 203; +pub const SYS_sched_getaffinity: c_long = 204; +pub const SYS_set_thread_area: c_long = 205; +pub const SYS_io_setup: c_long = 206; +pub const SYS_io_destroy: c_long = 207; +pub const SYS_io_getevents: c_long = 208; +pub const SYS_io_submit: c_long = 209; +pub const SYS_io_cancel: c_long = 210; +pub const SYS_get_thread_area: c_long = 211; +pub const SYS_lookup_dcookie: c_long = 212; +pub const SYS_epoll_create: c_long = 213; +pub const SYS_epoll_ctl_old: c_long = 214; +pub const SYS_epoll_wait_old: c_long = 215; +pub const SYS_remap_file_pages: c_long = 216; +pub const SYS_getdents64: c_long = 217; +pub const SYS_set_tid_address: c_long = 218; +pub const SYS_restart_syscall: c_long = 219; +pub const SYS_semtimedop: c_long = 220; +pub const SYS_fadvise64: c_long = 221; +pub const SYS_timer_create: c_long = 222; +pub const SYS_timer_settime: c_long = 223; +pub const SYS_timer_gettime: c_long = 224; +pub const SYS_timer_getoverrun: c_long = 225; +pub const SYS_timer_delete: c_long = 226; +pub const SYS_clock_settime: c_long = 227; +pub const SYS_clock_gettime: c_long = 228; +pub const SYS_clock_getres: c_long = 229; +pub const SYS_clock_nanosleep: c_long = 230; +pub const SYS_exit_group: c_long = 231; +pub const SYS_epoll_wait: c_long = 232; +pub const SYS_epoll_ctl: c_long = 233; +pub const SYS_tgkill: c_long = 234; +pub const SYS_utimes: c_long = 235; +pub const SYS_vserver: c_long = 236; +pub const SYS_mbind: c_long = 237; +pub const SYS_set_mempolicy: c_long = 238; +pub const SYS_get_mempolicy: c_long = 239; +pub const SYS_mq_open: c_long = 240; +pub const SYS_mq_unlink: c_long = 241; +pub const SYS_mq_timedsend: c_long = 242; +pub const SYS_mq_timedreceive: c_long = 243; +pub const SYS_mq_notify: c_long = 244; +pub const SYS_mq_getsetattr: c_long = 245; +pub const SYS_kexec_load: c_long = 246; +pub const SYS_waitid: c_long = 247; +pub const SYS_add_key: c_long = 248; +pub const SYS_request_key: c_long = 249; +pub const SYS_keyctl: c_long = 250; +pub const SYS_ioprio_set: c_long = 251; +pub const SYS_ioprio_get: c_long = 252; +pub const SYS_inotify_init: c_long = 253; +pub const SYS_inotify_add_watch: c_long = 254; +pub const SYS_inotify_rm_watch: c_long = 255; +pub const SYS_migrate_pages: c_long = 256; +pub const SYS_openat: c_long = 257; +pub const SYS_mkdirat: c_long = 258; +pub const SYS_mknodat: c_long = 259; +pub const SYS_fchownat: c_long = 260; +pub const SYS_futimesat: c_long = 261; +pub const SYS_newfstatat: c_long = 262; +pub const SYS_unlinkat: c_long = 263; +pub const SYS_renameat: c_long = 264; +pub const SYS_linkat: c_long = 265; +pub const SYS_symlinkat: c_long = 266; +pub const SYS_readlinkat: c_long = 267; +pub const SYS_fchmodat: c_long = 268; +pub const SYS_faccessat: c_long = 269; +pub const SYS_pselect6: c_long = 270; +pub const SYS_ppoll: c_long = 271; +pub const SYS_unshare: c_long = 272; +pub const SYS_set_robust_list: c_long = 273; +pub const SYS_get_robust_list: c_long = 274; +pub const SYS_splice: c_long = 275; +pub const SYS_tee: c_long = 276; +pub const SYS_sync_file_range: c_long = 277; +pub const SYS_vmsplice: c_long = 278; +pub const SYS_move_pages: c_long = 279; +pub const SYS_utimensat: c_long = 280; +pub const SYS_epoll_pwait: c_long = 281; +pub const SYS_signalfd: c_long = 282; +pub const SYS_timerfd_create: c_long = 283; +pub const SYS_eventfd: c_long = 284; +pub const SYS_fallocate: c_long = 285; +pub const SYS_timerfd_settime: c_long = 286; +pub const SYS_timerfd_gettime: c_long = 287; +pub const SYS_accept4: c_long = 288; +pub const SYS_signalfd4: c_long = 289; +pub const SYS_eventfd2: c_long = 290; +pub const SYS_epoll_create1: c_long = 291; +pub const SYS_dup3: c_long = 292; +pub const SYS_pipe2: c_long = 293; +pub const SYS_inotify_init1: c_long = 294; +pub const SYS_preadv: c_long = 295; +pub const SYS_pwritev: c_long = 296; +pub const SYS_rt_tgsigqueueinfo: c_long = 297; +pub const SYS_perf_event_open: c_long = 298; +pub const SYS_recvmmsg: c_long = 299; +pub const SYS_fanotify_init: c_long = 300; +pub const SYS_fanotify_mark: c_long = 301; +pub const SYS_prlimit64: c_long = 302; +pub const SYS_name_to_handle_at: c_long = 303; +pub const SYS_open_by_handle_at: c_long = 304; +pub const SYS_clock_adjtime: c_long = 305; +pub const SYS_syncfs: c_long = 306; +pub const SYS_sendmmsg: c_long = 307; +pub const SYS_setns: c_long = 308; +pub const SYS_getcpu: c_long = 309; +pub const SYS_process_vm_readv: c_long = 310; +pub const SYS_process_vm_writev: c_long = 311; +pub const SYS_kcmp: c_long = 312; +pub const SYS_finit_module: c_long = 313; +pub const SYS_sched_setattr: c_long = 314; +pub const SYS_sched_getattr: c_long = 315; +pub const SYS_renameat2: c_long = 316; +pub const SYS_seccomp: c_long = 317; +pub const SYS_getrandom: c_long = 318; +pub const SYS_memfd_create: c_long = 319; +pub const SYS_kexec_file_load: c_long = 320; +pub const SYS_bpf: c_long = 321; +pub const SYS_execveat: c_long = 322; +pub const SYS_userfaultfd: c_long = 323; +pub const SYS_membarrier: c_long = 324; +pub const SYS_mlock2: c_long = 325; +pub const SYS_copy_file_range: c_long = 326; +pub const SYS_preadv2: c_long = 327; +pub const SYS_pwritev2: c_long = 328; +pub const SYS_pkey_mprotect: c_long = 329; +pub const SYS_pkey_alloc: c_long = 330; +pub const SYS_pkey_free: c_long = 331; +pub const SYS_statx: c_long = 332; +pub const SYS_io_pgetevents: c_long = 333; +pub const SYS_rseq: c_long = 334; +pub const SYS_pidfd_send_signal: c_long = 424; +pub const SYS_io_uring_setup: c_long = 425; +pub const SYS_io_uring_enter: c_long = 426; +pub const SYS_io_uring_register: c_long = 427; +pub const SYS_open_tree: c_long = 428; +pub const SYS_move_mount: c_long = 429; +pub const SYS_fsopen: c_long = 430; +pub const SYS_fsconfig: c_long = 431; +pub const SYS_fsmount: c_long = 432; +pub const SYS_fspick: c_long = 433; +pub const SYS_pidfd_open: c_long = 434; +pub const SYS_clone3: c_long = 435; +pub const SYS_close_range: c_long = 436; +pub const SYS_openat2: c_long = 437; +pub const SYS_pidfd_getfd: c_long = 438; +pub const SYS_faccessat2: c_long = 439; +pub const SYS_process_madvise: c_long = 440; +pub const SYS_epoll_pwait2: c_long = 441; +pub const SYS_mount_setattr: c_long = 442; +pub const SYS_quotactl_fd: c_long = 443; +pub const SYS_landlock_create_ruleset: c_long = 444; +pub const SYS_landlock_add_rule: c_long = 445; +pub const SYS_landlock_restrict_self: c_long = 446; +pub const SYS_memfd_secret: c_long = 447; +pub const SYS_process_mrelease: c_long = 448; +pub const SYS_futex_waitv: c_long = 449; +pub const SYS_set_mempolicy_home_node: c_long = 450; + +// Syscall aliases for WALI +pub const SYS_fadvise: c_long = SYS_fadvise64; + +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MAP_32BIT: c_int = 0x0040; +pub const O_APPEND: c_int = 1024; +pub const O_DIRECT: c_int = 0x4000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_LARGEFILE: c_int = 0; +pub const O_NOFOLLOW: c_int = 0x20000; +pub const O_CREAT: c_int = 64; +pub const O_EXCL: c_int = 128; +pub const O_NOCTTY: c_int = 256; +pub const O_NONBLOCK: c_int = 2048; +pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; +pub const O_DSYNC: c_int = 4096; +pub const O_ASYNC: c_int = 0x2000; + +pub const PTRACE_SYSEMU: c_int = 31; +pub const PTRACE_SYSEMU_SINGLESTEP: c_int = 32; + +pub const SIGSTKSZ: size_t = 8192; +pub const MINSIGSTKSZ: size_t = 2048; + +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EMULTIHOP: c_int = 72; +pub const EBADMSG: c_int = 74; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const ERFKILL: c_int = 132; +pub const EHWPOISON: c_int = 133; + +pub const SA_ONSTACK: c_int = 0x08000000; +pub const SA_SIGINFO: c_int = 0x00000004; +pub const SA_NOCLDWAIT: c_int = 0x00000002; + +pub const SIGCHLD: c_int = 17; +pub const SIGBUS: c_int = 7; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGUSR1: c_int = 10; +pub const SIGUSR2: c_int = 12; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGURG: c_int = 23; +pub const SIGIO: c_int = 29; +pub const SIGSYS: c_int = 31; +pub const SIGSTKFLT: c_int = 16; +pub const SIGPOLL: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIG_SETMASK: c_int = 2; +pub const SIG_BLOCK: c_int = 0x000000; +pub const SIG_UNBLOCK: c_int = 0x01; + +pub const F_GETLK: c_int = 5; +pub const F_GETOWN: c_int = 9; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; +pub const F_SETOWN: c_int = 8; + +pub const VEOF: usize = 4; + +pub const POLLWRNORM: c_short = 0x100; +pub const POLLWRBAND: c_short = 0x200; + +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; + +pub const MAP_ANON: c_int = 0x0020; +pub const MAP_GROWSDOWN: c_int = 0x0100; +pub const MAP_DENYWRITE: c_int = 0x0800; +pub const MAP_EXECUTABLE: c_int = 0x01000; +pub const MAP_LOCKED: c_int = 0x02000; +pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_POPULATE: c_int = 0x08000; +pub const MAP_NONBLOCK: c_int = 0x010000; +pub const MAP_STACK: c_int = 0x020000; +pub const MAP_HUGETLB: c_int = 0x040000; +pub const MAP_SYNC: c_int = 0x080000; + +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; +pub const CBAUD: crate::tcflag_t = 0o0010017; +pub const TAB1: c_int = 0x00000800; +pub const TAB2: c_int = 0x00001000; +pub const TAB3: c_int = 0x00001800; +pub const CR1: c_int = 0x00000200; +pub const CR2: c_int = 0x00000400; +pub const CR3: c_int = 0x00000600; +pub const FF1: c_int = 0x00008000; +pub const BS1: c_int = 0x00002000; +pub const VT1: c_int = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: crate::tcflag_t = 0x00000400; +pub const IXOFF: crate::tcflag_t = 0x00001000; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const CSIZE: crate::tcflag_t = 0x00000030; +pub const CS6: crate::tcflag_t = 0x00000010; +pub const CS7: crate::tcflag_t = 0x00000020; +pub const CS8: crate::tcflag_t = 0x00000030; +pub const CSTOPB: crate::tcflag_t = 0x00000040; +pub const CREAD: crate::tcflag_t = 0x00000080; +pub const PARENB: crate::tcflag_t = 0x00000100; +pub const PARODD: crate::tcflag_t = 0x00000200; +pub const HUPCL: crate::tcflag_t = 0x00000400; +pub const CLOCAL: crate::tcflag_t = 0x00000800; +pub const ECHOKE: crate::tcflag_t = 0x00000800; +pub const ECHOE: crate::tcflag_t = 0x00000010; +pub const ECHOK: crate::tcflag_t = 0x00000020; +pub const ECHONL: crate::tcflag_t = 0x00000040; +pub const ECHOPRT: crate::tcflag_t = 0x00000400; +pub const ECHOCTL: crate::tcflag_t = 0x00000200; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const PENDIN: crate::tcflag_t = 0x00004000; +pub const NOFLSH: crate::tcflag_t = 0x00000080; +pub const CIBAUD: crate::tcflag_t = 0o02003600000; +pub const CBAUDEX: crate::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: crate::tcflag_t = 0o000002; +pub const NLDLY: crate::tcflag_t = 0o000400; +pub const CRDLY: crate::tcflag_t = 0o003000; +pub const TABDLY: crate::tcflag_t = 0o014000; +pub const BSDLY: crate::tcflag_t = 0o020000; +pub const FFDLY: crate::tcflag_t = 0o100000; +pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XTABS: crate::tcflag_t = 0o014000; +pub const B57600: crate::speed_t = 0o010001; +pub const B115200: crate::speed_t = 0o010002; +pub const B230400: crate::speed_t = 0o010003; +pub const B460800: crate::speed_t = 0o010004; +pub const B500000: crate::speed_t = 0o010005; +pub const B576000: crate::speed_t = 0o010006; +pub const B921600: crate::speed_t = 0o010007; +pub const B1000000: crate::speed_t = 0o010010; +pub const B1152000: crate::speed_t = 0o010011; +pub const B1500000: crate::speed_t = 0o010012; +pub const B2000000: crate::speed_t = 0o010013; +pub const B2500000: crate::speed_t = 0o010014; +pub const B3000000: crate::speed_t = 0o010015; +pub const B3500000: crate::speed_t = 0o010016; +pub const B4000000: crate::speed_t = 0o010017; + +pub const EDEADLK: c_int = 35; +pub const EDEADLOCK: c_int = EDEADLK; + +pub const EXTPROC: crate::tcflag_t = 0x00010000; +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: crate::tcflag_t = 0x00008000; +pub const TOSTOP: crate::tcflag_t = 0x00000100; +pub const FLUSHO: crate::tcflag_t = 0x00001000; + +cfg_if! { + if #[cfg(target_vendor = "wali")] { + mod wali; + pub use self::wali::*; + } +} diff --git a/src/unix/linux_like/linux/musl/b64/wasm32/wali.rs b/src/unix/linux_like/linux/musl/b64/wasm32/wali.rs new file mode 100644 index 0000000000000..bda5c241c1d2d --- /dev/null +++ b/src/unix/linux_like/linux/musl/b64/wasm32/wali.rs @@ -0,0 +1,441 @@ +//! WebAssembly Linux Interface syscall specification + +// --- Autogenerated from WALI/scripts/autogen.py --- +#[link(wasm_import_module = "wali")] +extern "C" { + /* 0 */ + #[link_name = "SYS_read"] + pub fn __syscall_SYS_read(a1: i32, a2: i32, a3: u32) -> ::c_long; + /* 1 */ + #[link_name = "SYS_write"] + pub fn __syscall_SYS_write(a1: i32, a2: i32, a3: u32) -> ::c_long; + /* 2 */ + #[link_name = "SYS_open"] + pub fn __syscall_SYS_open(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 3 */ + #[link_name = "SYS_close"] + pub fn __syscall_SYS_close(a1: i32) -> ::c_long; + /* 4 */ + #[link_name = "SYS_stat"] + pub fn __syscall_SYS_stat(a1: i32, a2: i32) -> ::c_long; + /* 5 */ + #[link_name = "SYS_fstat"] + pub fn __syscall_SYS_fstat(a1: i32, a2: i32) -> ::c_long; + /* 6 */ + #[link_name = "SYS_lstat"] + pub fn __syscall_SYS_lstat(a1: i32, a2: i32) -> ::c_long; + /* 7 */ + #[link_name = "SYS_poll"] + pub fn __syscall_SYS_poll(a1: i32, a2: u32, a3: i32) -> ::c_long; + /* 8 */ + #[link_name = "SYS_lseek"] + pub fn __syscall_SYS_lseek(a1: i32, a2: i64, a3: i32) -> ::c_long; + /* 9 */ + #[link_name = "SYS_mmap"] + pub fn __syscall_SYS_mmap(a1: i32, a2: u32, a3: i32, a4: i32, a5: i32, a6: i64) -> ::c_long; + /* 10 */ + #[link_name = "SYS_mprotect"] + pub fn __syscall_SYS_mprotect(a1: i32, a2: u32, a3: i32) -> ::c_long; + /* 11 */ + #[link_name = "SYS_munmap"] + pub fn __syscall_SYS_munmap(a1: i32, a2: u32) -> ::c_long; + /* 12 */ + #[link_name = "SYS_brk"] + pub fn __syscall_SYS_brk(a1: i32) -> ::c_long; + /* 13 */ + #[link_name = "SYS_rt_sigaction"] + pub fn __syscall_SYS_rt_sigaction(a1: i32, a2: i32, a3: i32, a4: u32) -> ::c_long; + /* 14 */ + #[link_name = "SYS_rt_sigprocmask"] + pub fn __syscall_SYS_rt_sigprocmask(a1: i32, a2: i32, a3: i32, a4: u32) -> ::c_long; + /* 15 */ + #[link_name = "SYS_rt_sigreturn"] + pub fn __syscall_SYS_rt_sigreturn(a1: i64) -> ::c_long; + /* 16 */ + #[link_name = "SYS_ioctl"] + pub fn __syscall_SYS_ioctl(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 17 */ + #[link_name = "SYS_pread64"] + pub fn __syscall_SYS_pread64(a1: i32, a2: i32, a3: u32, a4: i64) -> ::c_long; + /* 18 */ + #[link_name = "SYS_pwrite64"] + pub fn __syscall_SYS_pwrite64(a1: i32, a2: i32, a3: u32, a4: i64) -> ::c_long; + /* 19 */ + #[link_name = "SYS_readv"] + pub fn __syscall_SYS_readv(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 20 */ + #[link_name = "SYS_writev"] + pub fn __syscall_SYS_writev(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 21 */ + #[link_name = "SYS_access"] + pub fn __syscall_SYS_access(a1: i32, a2: i32) -> ::c_long; + /* 22 */ + #[link_name = "SYS_pipe"] + pub fn __syscall_SYS_pipe(a1: i32) -> ::c_long; + /* 23 */ + #[link_name = "SYS_select"] + pub fn __syscall_SYS_select(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> ::c_long; + /* 24 */ + #[link_name = "SYS_sched_yield"] + pub fn __syscall_SYS_sched_yield() -> ::c_long; + /* 25 */ + #[link_name = "SYS_mremap"] + pub fn __syscall_SYS_mremap(a1: i32, a2: u32, a3: u32, a4: i32, a5: i32) -> ::c_long; + /* 26 */ + #[link_name = "SYS_msync"] + pub fn __syscall_SYS_msync(a1: i32, a2: u32, a3: i32) -> ::c_long; + /* 28 */ + #[link_name = "SYS_madvise"] + pub fn __syscall_SYS_madvise(a1: i32, a2: u32, a3: i32) -> ::c_long; + /* 32 */ + #[link_name = "SYS_dup"] + pub fn __syscall_SYS_dup(a1: i32) -> ::c_long; + /* 33 */ + #[link_name = "SYS_dup2"] + pub fn __syscall_SYS_dup2(a1: i32, a2: i32) -> ::c_long; + /* 35 */ + #[link_name = "SYS_nanosleep"] + pub fn __syscall_SYS_nanosleep(a1: i32, a2: i32) -> ::c_long; + /* 37 */ + #[link_name = "SYS_alarm"] + pub fn __syscall_SYS_alarm(a1: i32) -> ::c_long; + /* 38 */ + #[link_name = "SYS_setitimer"] + pub fn __syscall_SYS_setitimer(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 39 */ + #[link_name = "SYS_getpid"] + pub fn __syscall_SYS_getpid() -> ::c_long; + /* 41 */ + #[link_name = "SYS_socket"] + pub fn __syscall_SYS_socket(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 42 */ + #[link_name = "SYS_connect"] + pub fn __syscall_SYS_connect(a1: i32, a2: i32, a3: u32) -> ::c_long; + /* 43 */ + #[link_name = "SYS_accept"] + pub fn __syscall_SYS_accept(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 44 */ + #[link_name = "SYS_sendto"] + pub fn __syscall_SYS_sendto(a1: i32, a2: i32, a3: u32, a4: i32, a5: i32, a6: u32) -> ::c_long; + /* 45 */ + #[link_name = "SYS_recvfrom"] + pub fn __syscall_SYS_recvfrom(a1: i32, a2: i32, a3: u32, a4: i32, a5: i32, a6: i32) + -> ::c_long; + /* 46 */ + #[link_name = "SYS_sendmsg"] + pub fn __syscall_SYS_sendmsg(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 47 */ + #[link_name = "SYS_recvmsg"] + pub fn __syscall_SYS_recvmsg(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 48 */ + #[link_name = "SYS_shutdown"] + pub fn __syscall_SYS_shutdown(a1: i32, a2: i32) -> ::c_long; + /* 49 */ + #[link_name = "SYS_bind"] + pub fn __syscall_SYS_bind(a1: i32, a2: i32, a3: u32) -> ::c_long; + /* 50 */ + #[link_name = "SYS_listen"] + pub fn __syscall_SYS_listen(a1: i32, a2: i32) -> ::c_long; + /* 51 */ + #[link_name = "SYS_getsockname"] + pub fn __syscall_SYS_getsockname(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 52 */ + #[link_name = "SYS_getpeername"] + pub fn __syscall_SYS_getpeername(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 53 */ + #[link_name = "SYS_socketpair"] + pub fn __syscall_SYS_socketpair(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + /* 54 */ + #[link_name = "SYS_setsockopt"] + pub fn __syscall_SYS_setsockopt(a1: i32, a2: i32, a3: i32, a4: i32, a5: u32) -> ::c_long; + /* 55 */ + #[link_name = "SYS_getsockopt"] + pub fn __syscall_SYS_getsockopt(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> ::c_long; + /* 57 */ + #[link_name = "SYS_fork"] + pub fn __syscall_SYS_fork() -> ::c_long; + /* 59 */ + #[link_name = "SYS_execve"] + pub fn __syscall_SYS_execve(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 60 */ + #[link_name = "SYS_exit"] + pub fn __syscall_SYS_exit(a1: i32) -> ::c_long; + /* 61 */ + #[link_name = "SYS_wait4"] + pub fn __syscall_SYS_wait4(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + /* 62 */ + #[link_name = "SYS_kill"] + pub fn __syscall_SYS_kill(a1: i32, a2: i32) -> ::c_long; + /* 63 */ + #[link_name = "SYS_uname"] + pub fn __syscall_SYS_uname(a1: i32) -> ::c_long; + /* 72 */ + #[link_name = "SYS_fcntl"] + pub fn __syscall_SYS_fcntl(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 73 */ + #[link_name = "SYS_flock"] + pub fn __syscall_SYS_flock(a1: i32, a2: i32) -> ::c_long; + /* 74 */ + #[link_name = "SYS_fsync"] + pub fn __syscall_SYS_fsync(a1: i32) -> ::c_long; + /* 75 */ + #[link_name = "SYS_fdatasync"] + pub fn __syscall_SYS_fdatasync(a1: i32) -> ::c_long; + /* 77 */ + #[link_name = "SYS_ftruncate"] + pub fn __syscall_SYS_ftruncate(a1: i32, a2: i64) -> ::c_long; + /* 78 */ + #[link_name = "SYS_getdents"] + pub fn __syscall_SYS_getdents(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 79 */ + #[link_name = "SYS_getcwd"] + pub fn __syscall_SYS_getcwd(a1: i32, a2: u32) -> ::c_long; + /* 80 */ + #[link_name = "SYS_chdir"] + pub fn __syscall_SYS_chdir(a1: i32) -> ::c_long; + /* 81 */ + #[link_name = "SYS_fchdir"] + pub fn __syscall_SYS_fchdir(a1: i32) -> ::c_long; + /* 82 */ + #[link_name = "SYS_rename"] + pub fn __syscall_SYS_rename(a1: i32, a2: i32) -> ::c_long; + /* 83 */ + #[link_name = "SYS_mkdir"] + pub fn __syscall_SYS_mkdir(a1: i32, a2: i32) -> ::c_long; + /* 84 */ + #[link_name = "SYS_rmdir"] + pub fn __syscall_SYS_rmdir(a1: i32) -> ::c_long; + /* 86 */ + #[link_name = "SYS_link"] + pub fn __syscall_SYS_link(a1: i32, a2: i32) -> ::c_long; + /* 87 */ + #[link_name = "SYS_unlink"] + pub fn __syscall_SYS_unlink(a1: i32) -> ::c_long; + /* 88 */ + #[link_name = "SYS_symlink"] + pub fn __syscall_SYS_symlink(a1: i32, a2: i32) -> ::c_long; + /* 89 */ + #[link_name = "SYS_readlink"] + pub fn __syscall_SYS_readlink(a1: i32, a2: i32, a3: u32) -> ::c_long; + /* 90 */ + #[link_name = "SYS_chmod"] + pub fn __syscall_SYS_chmod(a1: i32, a2: i32) -> ::c_long; + /* 91 */ + #[link_name = "SYS_fchmod"] + pub fn __syscall_SYS_fchmod(a1: i32, a2: i32) -> ::c_long; + /* 92 */ + #[link_name = "SYS_chown"] + pub fn __syscall_SYS_chown(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 93 */ + #[link_name = "SYS_fchown"] + pub fn __syscall_SYS_fchown(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 95 */ + #[link_name = "SYS_umask"] + pub fn __syscall_SYS_umask(a1: i32) -> ::c_long; + /* 97 */ + #[link_name = "SYS_getrlimit"] + pub fn __syscall_SYS_getrlimit(a1: i32, a2: i32) -> ::c_long; + /* 98 */ + #[link_name = "SYS_getrusage"] + pub fn __syscall_SYS_getrusage(a1: i32, a2: i32) -> ::c_long; + /* 99 */ + #[link_name = "SYS_sysinfo"] + pub fn __syscall_SYS_sysinfo(a1: i32) -> ::c_long; + /* 102 */ + #[link_name = "SYS_getuid"] + pub fn __syscall_SYS_getuid() -> ::c_long; + /* 104 */ + #[link_name = "SYS_getgid"] + pub fn __syscall_SYS_getgid() -> ::c_long; + /* 105 */ + #[link_name = "SYS_setuid"] + pub fn __syscall_SYS_setuid(a1: i32) -> ::c_long; + /* 106 */ + #[link_name = "SYS_setgid"] + pub fn __syscall_SYS_setgid(a1: i32) -> ::c_long; + /* 107 */ + #[link_name = "SYS_geteuid"] + pub fn __syscall_SYS_geteuid() -> ::c_long; + /* 108 */ + #[link_name = "SYS_getegid"] + pub fn __syscall_SYS_getegid() -> ::c_long; + /* 109 */ + #[link_name = "SYS_setpgid"] + pub fn __syscall_SYS_setpgid(a1: i32, a2: i32) -> ::c_long; + /* 110 */ + #[link_name = "SYS_getppid"] + pub fn __syscall_SYS_getppid() -> ::c_long; + /* 112 */ + #[link_name = "SYS_setsid"] + pub fn __syscall_SYS_setsid() -> ::c_long; + /* 113 */ + #[link_name = "SYS_setreuid"] + pub fn __syscall_SYS_setreuid(a1: i32, a2: i32) -> ::c_long; + /* 114 */ + #[link_name = "SYS_setregid"] + pub fn __syscall_SYS_setregid(a1: i32, a2: i32) -> ::c_long; + /* 115 */ + #[link_name = "SYS_getgroups"] + pub fn __syscall_SYS_getgroups(a1: u32, a2: i32) -> ::c_long; + /* 116 */ + #[link_name = "SYS_setgroups"] + pub fn __syscall_SYS_setgroups(a1: u32, a2: i32) -> ::c_long; + /* 117 */ + #[link_name = "SYS_setresuid"] + pub fn __syscall_SYS_setresuid(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 119 */ + #[link_name = "SYS_setresgid"] + pub fn __syscall_SYS_setresgid(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 121 */ + #[link_name = "SYS_getpgid"] + pub fn __syscall_SYS_getpgid(a1: i32) -> ::c_long; + /* 124 */ + #[link_name = "SYS_getsid"] + pub fn __syscall_SYS_getsid(a1: i32) -> ::c_long; + /* 127 */ + #[link_name = "SYS_rt_sigpending"] + pub fn __syscall_SYS_rt_sigpending(a1: i32, a2: u32) -> ::c_long; + /* 130 */ + #[link_name = "SYS_rt_sigsuspend"] + pub fn __syscall_SYS_rt_sigsuspend(a1: i32, a2: u32) -> ::c_long; + /* 131 */ + #[link_name = "SYS_sigaltstack"] + pub fn __syscall_SYS_sigaltstack(a1: i32, a2: i32) -> ::c_long; + /* 132 */ + #[link_name = "SYS_utime"] + pub fn __syscall_SYS_utime(a1: i32, a2: i32) -> ::c_long; + /* 137 */ + #[link_name = "SYS_statfs"] + pub fn __syscall_SYS_statfs(a1: i32, a2: i32) -> ::c_long; + /* 138 */ + #[link_name = "SYS_fstatfs"] + pub fn __syscall_SYS_fstatfs(a1: i32, a2: i32) -> ::c_long; + /* 157 */ + #[link_name = "SYS_prctl"] + pub fn __syscall_SYS_prctl(a1: i32, a2: u64, a3: u64, a4: u64, a5: u64) -> ::c_long; + /* 160 */ + #[link_name = "SYS_setrlimit"] + pub fn __syscall_SYS_setrlimit(a1: i32, a2: i32) -> ::c_long; + /* 161 */ + #[link_name = "SYS_chroot"] + pub fn __syscall_SYS_chroot(a1: i32) -> ::c_long; + /* 186 */ + #[link_name = "SYS_gettid"] + pub fn __syscall_SYS_gettid() -> ::c_long; + /* 200 */ + #[link_name = "SYS_tkill"] + pub fn __syscall_SYS_tkill(a1: i32, a2: i32) -> ::c_long; + /* 202 */ + #[link_name = "SYS_futex"] + pub fn __syscall_SYS_futex(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32, a6: i32) -> ::c_long; + /* 204 */ + #[link_name = "SYS_sched_getaffinity"] + pub fn __syscall_SYS_sched_getaffinity(a1: i32, a2: u32, a3: i32) -> ::c_long; + /* 217 */ + #[link_name = "SYS_getdents64"] + pub fn __syscall_SYS_getdents64(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 218 */ + #[link_name = "SYS_set_tid_address"] + pub fn __syscall_SYS_set_tid_address(a1: i32) -> ::c_long; + /* 221 */ + #[link_name = "SYS_fadvise"] + pub fn __syscall_SYS_fadvise(a1: i32, a2: i64, a3: i64, a4: i32) -> ::c_long; + /* 228 */ + #[link_name = "SYS_clock_gettime"] + pub fn __syscall_SYS_clock_gettime(a1: i32, a2: i32) -> ::c_long; + /* 229 */ + #[link_name = "SYS_clock_getres"] + pub fn __syscall_SYS_clock_getres(a1: i32, a2: i32) -> ::c_long; + /* 230 */ + #[link_name = "SYS_clock_nanosleep"] + pub fn __syscall_SYS_clock_nanosleep(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + /* 231 */ + #[link_name = "SYS_exit_group"] + pub fn __syscall_SYS_exit_group(a1: i32) -> ::c_long; + /* 233 */ + #[link_name = "SYS_epoll_ctl"] + pub fn __syscall_SYS_epoll_ctl(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + /* 257 */ + #[link_name = "SYS_openat"] + pub fn __syscall_SYS_openat(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + /* 258 */ + #[link_name = "SYS_mkdirat"] + pub fn __syscall_SYS_mkdirat(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 260 */ + #[link_name = "SYS_fchownat"] + pub fn __syscall_SYS_fchownat(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> ::c_long; + /* 262 */ + #[link_name = "SYS_fstatat"] + pub fn __syscall_SYS_fstatat(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + /* 263 */ + #[link_name = "SYS_unlinkat"] + pub fn __syscall_SYS_unlinkat(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 265 */ + #[link_name = "SYS_linkat"] + pub fn __syscall_SYS_linkat(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> ::c_long; + /* 266 */ + #[link_name = "SYS_symlinkat"] + pub fn __syscall_SYS_symlinkat(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 267 */ + #[link_name = "SYS_readlinkat"] + pub fn __syscall_SYS_readlinkat(a1: i32, a2: i32, a3: i32, a4: u32) -> ::c_long; + /* 268 */ + #[link_name = "SYS_fchmodat"] + pub fn __syscall_SYS_fchmodat(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + /* 269 */ + #[link_name = "SYS_faccessat"] + pub fn __syscall_SYS_faccessat(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + /* 270 */ + #[link_name = "SYS_pselect6"] + pub fn __syscall_SYS_pselect6(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32, a6: i32) + -> ::c_long; + /* 271 */ + #[link_name = "SYS_ppoll"] + pub fn __syscall_SYS_ppoll(a1: i32, a2: u32, a3: i32, a4: i32, a5: u32) -> ::c_long; + /* 280 */ + #[link_name = "SYS_utimensat"] + pub fn __syscall_SYS_utimensat(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + /* 281 */ + #[link_name = "SYS_epoll_pwait"] + pub fn __syscall_SYS_epoll_pwait( + a1: i32, + a2: i32, + a3: i32, + a4: i32, + a5: i32, + a6: u32, + ) -> ::c_long; + /* 284 */ + #[link_name = "SYS_eventfd"] + pub fn __syscall_SYS_eventfd(a1: i32) -> ::c_long; + /* 288 */ + #[link_name = "SYS_accept4"] + pub fn __syscall_SYS_accept4(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + /* 290 */ + #[link_name = "SYS_eventfd2"] + pub fn __syscall_SYS_eventfd2(a1: i32, a2: i32) -> ::c_long; + /* 291 */ + #[link_name = "SYS_epoll_create1"] + pub fn __syscall_SYS_epoll_create1(a1: i32) -> ::c_long; + /* 292 */ + #[link_name = "SYS_dup3"] + pub fn __syscall_SYS_dup3(a1: i32, a2: i32, a3: i32) -> ::c_long; + /* 293 */ + #[link_name = "SYS_pipe2"] + pub fn __syscall_SYS_pipe2(a1: i32, a2: i32) -> ::c_long; + /* 302 */ + #[link_name = "SYS_prlimit64"] + pub fn __syscall_SYS_prlimit64(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + /* 316 */ + #[link_name = "SYS_renameat2"] + pub fn __syscall_SYS_renameat2(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> ::c_long; + /* 318 */ + #[link_name = "SYS_getrandom"] + pub fn __syscall_SYS_getrandom(a1: i32, a2: u32, a3: i32) -> ::c_long; + /* 332 */ + #[link_name = "SYS_statx"] + pub fn __syscall_SYS_statx(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> ::c_long; + /* 439 */ + #[link_name = "SYS_faccessat2"] + pub fn __syscall_SYS_faccessat2(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; +} diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index b474a6f3e4dfe..57109e920b67d 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -1002,7 +1002,9 @@ cfg_if! { target_arch = "powerpc64", target_arch = "s390x", target_arch = "riscv64", - target_arch = "loongarch64" + target_arch = "loongarch64", + // musl-linux ABI for wasm32 follows b64 convention + target_arch = "wasm32", ))] { mod b64; pub use self::b64::*; From c809c734e12eef7ef5a8e1df2b130a2f25eade94 Mon Sep 17 00:00:00 2001 From: Pedro Tammela Date: Thu, 21 Nov 2024 13:06:04 -0300 Subject: [PATCH 0522/1228] Add SO_PREFER_BUSY_POLL and SO_BUSY_POLL_BUDGET Remove the comment of these socket options. Reference: https://elixir.bootlin.com/linux/latest/source/include/uapi/asm-generic/socket.h Note, musl hardcodes 'SO_*' constants instead of inheriting them from the OS. Signed-off-by: Pedro Tammela (backport ) (cherry picked from commit b3884fb8bfdb17bd911de42ad46d7f46f8700c8c) --- libc-test/build.rs | 6 ++++++ libc-test/semver/linux.txt | 2 ++ src/unix/linux_like/linux/arch/generic/mod.rs | 9 +++++++-- src/unix/linux_like/linux/arch/mips/mod.rs | 4 ++-- src/unix/linux_like/linux/arch/powerpc/mod.rs | 4 ++-- src/unix/linux_like/linux/arch/sparc/mod.rs | 4 ++-- 6 files changed, 21 insertions(+), 8 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 43614c8678d1b..341b78e723ab7 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4061,6 +4061,12 @@ fn test_linux(target: &str) { if loongarch64 && (name == "MFD_NOEXEC_SEAL" || name == "MFD_EXEC") { return true; } + // FIXME(musl): Requires musl >= 1.2 + if name == "SO_PREFER_BUSY_POLL" + || name == "SO_BUSY_POLL_BUDGET" + { + return true; + } } match name { // These constants are not available if gnu headers have been included diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index e0bca05e22be1..88721a2fb4ca0 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2954,6 +2954,7 @@ SOL_XDP SOMAXCONN SO_BINDTODEVICE SO_BUSY_POLL +SO_BUSY_POLL_BUDGET SO_DOMAIN SO_EE_OFFENDER SO_EE_ORIGIN_ICMP @@ -2973,6 +2974,7 @@ SO_PASSSEC SO_PEEK_OFF SO_PEERCRED SO_PEERSEC +SO_PREFER_BUSY_POLL SO_RCVBUFFORCE SO_REUSEPORT SO_RXQ_OVFL diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index e81f49b443190..c515c7495a894 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -130,6 +130,11 @@ cfg_if! { target_arch = "csky", target_arch = "loongarch64" ), + // FIXME(musl): + // Musl hardcodes the SO_* constants instead + // of inheriting them from the kernel headers. + // For new constants you might need consider updating + // musl in the CI as well. not(any(target_env = "musl", target_env = "ohos")) ))] { pub const SO_TIMESTAMP_NEW: c_int = 63; @@ -140,8 +145,8 @@ cfg_if! { pub const SO_DETACH_REUSEPORT_BPF: c_int = 68; } } -// pub const SO_PREFER_BUSY_POLL: c_int = 69; -// pub const SO_BUSY_POLL_BUDGET: c_int = 70; +pub const SO_PREFER_BUSY_POLL: c_int = 69; +pub const SO_BUSY_POLL_BUDGET: c_int = 70; cfg_if! { if #[cfg(any( diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index 612f8c73ffc3c..1cff58290ed30 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -118,8 +118,8 @@ cfg_if! { } } // pub const SO_DETACH_REUSEPORT_BPF: c_int = 68; -// pub const SO_PREFER_BUSY_POLL: c_int = 69; -// pub const SO_BUSY_POLL_BUDGET: c_int = 70; +pub const SO_PREFER_BUSY_POLL: c_int = 69; +pub const SO_BUSY_POLL_BUDGET: c_int = 70; pub const FICLONE: c_ulong = 0x80049409; pub const FICLONERANGE: c_ulong = 0x8020940D; diff --git a/src/unix/linux_like/linux/arch/powerpc/mod.rs b/src/unix/linux_like/linux/arch/powerpc/mod.rs index 50d1ef17bb887..f731fe7203fb8 100644 --- a/src/unix/linux_like/linux/arch/powerpc/mod.rs +++ b/src/unix/linux_like/linux/arch/powerpc/mod.rs @@ -100,8 +100,8 @@ const SO_TIMESTAMPING_NEW: c_int = 65; const SO_RCVTIMEO_NEW: c_int = 66; const SO_SNDTIMEO_NEW: c_int = 67; // pub const SO_DETACH_REUSEPORT_BPF: c_int = 68; -// pub const SO_PREFER_BUSY_POLL: c_int = 69; -// pub const SO_BUSY_POLL_BUDGET: c_int = 70; +pub const SO_PREFER_BUSY_POLL: c_int = 69; +pub const SO_BUSY_POLL_BUDGET: c_int = 70; pub const FICLONE: c_ulong = 0x80049409; pub const FICLONERANGE: c_ulong = 0x8020940D; diff --git a/src/unix/linux_like/linux/arch/sparc/mod.rs b/src/unix/linux_like/linux/arch/sparc/mod.rs index 829307aa71039..286c332459d97 100644 --- a/src/unix/linux_like/linux/arch/sparc/mod.rs +++ b/src/unix/linux_like/linux/arch/sparc/mod.rs @@ -95,8 +95,8 @@ pub const SO_TIMESTAMPING: c_int = 0x0023; // pub const SO_RCVTIMEO_NEW: c_int = 0x0044; // pub const SO_SNDTIMEO_NEW: c_int = 0x0045; // pub const SO_DETACH_REUSEPORT_BPF: c_int = 0x0047; -// pub const SO_PREFER_BUSY_POLL: c_int = 0x0048; -// pub const SO_BUSY_POLL_BUDGET: c_int = 0x0049; +pub const SO_PREFER_BUSY_POLL: c_int = 0x0048; +pub const SO_BUSY_POLL_BUDGET: c_int = 0x0049; // Defined in unix/linux_like/mod.rs // pub const SCM_TIMESTAMP: c_int = SO_TIMESTAMP; From bb1ec34f1eb83845bbdc9936c9f98e77f2f78326 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 7 Mar 2025 04:22:21 +0000 Subject: [PATCH 0523/1228] Pass `--no-self-update` to `rustup update` Hopefully this will help some of the recent CI issues. (backport ) (cherry picked from commit 8efcf7b21f14573964040f11b237444eeb961e23) --- .github/workflows/ci.yaml | 2 +- ci/install-rust.sh | 2 +- ci/style.sh | 7 +------ 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 10bd55da62685..5609e136663a7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -22,7 +22,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain - run: ./ci/install-rust.sh + run: ./ci/install-rust.sh && rustup component add rustfmt - name: Check style run: ./ci/style.sh diff --git a/ci/install-rust.sh b/ci/install-rust.sh index 16fd0b4e8a577..6e7b1930c59a2 100755 --- a/ci/install-rust.sh +++ b/ci/install-rust.sh @@ -24,7 +24,7 @@ if [ "$os" = "windows" ] && [ -n "${TARGET:-}" ]; then fi rustup set profile minimal -rustup update --force "$toolchain" +rustup update --force "$toolchain" --no-self-update rustup default "$toolchain" if [ -n "${TARGET:-}" ]; then diff --git a/ci/style.sh b/ci/style.sh index da16bf4fe9baf..5b200796a8c53 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -2,12 +2,7 @@ set -eux -if [ -n "${CI:-}" ]; then - rustup toolchain install nightly -c rustfmt --allow-downgrade - rustup override set nightly - - check="--check" -fi +[ -n "${CI:-}" ] && check="--check" cargo test --manifest-path libc-test/Cargo.toml --test style -- --nocapture From fa16c8e37e2985f99dfdd77fbf22945182d219b8 Mon Sep 17 00:00:00 2001 From: Koutheir Attouchi Date: Thu, 6 Mar 2025 10:34:51 -0500 Subject: [PATCH 0524/1228] Make msqid_ds.__msg_cbytes public. (backport ) (cherry picked from commit a4fd45edc8e9807fc0e7f5e5ac737e1cf3f2b7a6) --- src/fuchsia/mod.rs | 2 +- src/unix/linux_like/emscripten/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b32/csky/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b32/m68k/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 2 +- src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b32/sparc/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b64/mod.rs | 2 +- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 2 +- src/unix/linux_like/linux/musl/b32/hexagon.rs | 2 +- src/unix/linux_like/linux/musl/b32/mips/mod.rs | 2 +- src/unix/linux_like/linux/musl/b32/powerpc.rs | 2 +- src/unix/linux_like/linux/musl/b32/riscv32/mod.rs | 2 +- src/unix/linux_like/linux/musl/b32/x86/mod.rs | 2 +- src/unix/linux_like/linux/musl/b64/mod.rs | 2 +- src/unix/linux_like/linux/uclibc/arm/mod.rs | 2 +- src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs | 2 +- src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs | 2 +- src/unix/linux_like/linux/uclibc/x86_64/mod.rs | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 9e8f55471a1ac..b60201791b645 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -807,7 +807,7 @@ s! { pub msg_stime: crate::time_t, pub msg_rtime: crate::time_t, pub msg_ctime: crate::time_t, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 09de6f7d1e191..985b3c0c5e187 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -272,7 +272,7 @@ s! { pub msg_stime: crate::time_t, pub msg_rtime: crate::time_t, pub msg_ctime: crate::time_t, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 9462f627d63e7..28514c0bf42d8 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -135,7 +135,7 @@ s! { __glibc_reserved2: c_ulong, pub msg_ctime: crate::time_t, __glibc_reserved3: c_ulong, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs index 96cc52c55854e..89189e63302c4 100644 --- a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs @@ -134,7 +134,7 @@ s! { __glibc_reserved2: c_ulong, pub msg_ctime: crate::time_t, __glibc_reserved3: c_ulong, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index d8b047ab446ab..b4c63c1df9b71 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -134,7 +134,7 @@ s! { __glibc_reserved2: c_uint, pub msg_ctime: crate::time_t, __glibc_reserved3: c_uint, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 249ed09a0dadd..cc9ebf2e901d9 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -162,7 +162,7 @@ s! { pub msg_ctime: crate::time_t, #[cfg(target_endian = "little")] __glibc_reserved3: c_ulong, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index d15012c4ec68c..b789a86a97728 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -135,7 +135,7 @@ s! { pub msg_rtime: crate::time_t, __glibc_reserved3: c_uint, pub msg_ctime: crate::time_t, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs index 91b17847e10ae..bcae7c2048bf9 100644 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -11,7 +11,7 @@ s! { pub msg_stime: crate::time_t, pub msg_rtime: crate::time_t, pub msg_ctime: crate::time_t, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index de00e9915826a..968cf7734ef8e 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -149,7 +149,7 @@ s! { pub msg_rtime: crate::time_t, __pad3: c_uint, pub msg_ctime: crate::time_t, - __msg_cbytes: c_ushort, + pub __msg_cbytes: c_ushort, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index bb2e3ccbf8925..2ec8692e36a8d 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -209,7 +209,7 @@ s! { __glibc_reserved2: c_ulong, pub msg_ctime: crate::time_t, __glibc_reserved3: c_ulong, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs index fde7a5c6c3602..73276679a3d18 100644 --- a/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -58,7 +58,7 @@ s! { pub msg_stime: crate::time_t, pub msg_rtime: crate::time_t, pub msg_ctime: crate::time_t, - __msg_cbytes: u64, + pub __msg_cbytes: u64, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index 5829b0270d69c..ad74ecfcb2bda 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -90,7 +90,7 @@ s! { __unused2: c_int, pub msg_ctime: crate::time_t, __unused3: c_int, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 4ae82af9c5d22..4aab076e1c2d3 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -67,7 +67,7 @@ s! { __unused2: c_int, pub msg_ctime: crate::time_t, __unused3: c_int, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index c9aa5b136dcba..e0b35b6c58ea6 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -98,7 +98,7 @@ s! { pub msg_ctime: crate::time_t, #[cfg(target_endian = "little")] __unused3: c_int, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index dbd10802e6656..7d7124a7c7e1c 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -90,7 +90,7 @@ s! { pub msg_rtime: crate::time_t, __unused3: c_int, pub msg_ctime: crate::time_t, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index 291dc7ec644d0..1a4ab1c65502d 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -91,7 +91,7 @@ s! { __unused2: c_int, pub msg_ctime: crate::time_t, __unused3: c_int, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 52fe908802f32..a01dca67c8b89 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -94,7 +94,7 @@ s! { __unused2: c_int, pub msg_ctime: crate::time_t, __unused3: c_int, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index 174d80d3950cb..6ae3c39724af8 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -35,7 +35,7 @@ s! { pub msg_stime: crate::time_t, pub msg_rtime: crate::time_t, pub msg_ctime: crate::time_t, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/uclibc/arm/mod.rs b/src/unix/linux_like/linux/uclibc/arm/mod.rs index 000d9e33a734a..634161ed622ca 100644 --- a/src/unix/linux_like/linux/uclibc/arm/mod.rs +++ b/src/unix/linux_like/linux/uclibc/arm/mod.rs @@ -216,7 +216,7 @@ s! { __unused2: c_ulong, pub msg_ctime: crate::time_t, __unused3: c_ulong, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs index 783b879cbf8dd..7dd0440907855 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs @@ -164,7 +164,7 @@ s! { pub msg_ctime: crate::time_t, #[cfg(target_endian = "little")] __glibc_reserved3: c_ulong, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs index 2e60f0d03fff9..39eb0242730d8 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs @@ -120,7 +120,7 @@ s! { pub msg_stime: crate::time_t, pub msg_rtime: crate::time_t, pub msg_ctime: crate::time_t, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index 684eef20473db..3a4ee0dee31c2 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -81,7 +81,7 @@ s! { pub msg_stime: crate::time_t, pub msg_rtime: crate::time_t, pub msg_ctime: crate::time_t, - __msg_cbytes: c_ulong, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, From bb10d5f7d6eb1e377a3c60e449628635fcfbe353 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AE=87=E9=80=B8?= Date: Sat, 22 Feb 2025 23:06:04 +0800 Subject: [PATCH 0525/1228] cygwin: add support Co-authored-by: Ookiineko (backport ) (cherry picked from commit f5569b1d574768751de109bf51e08348abc7f7d3) --- build.rs | 2 +- libc-test/build.rs | 170 +++ libc-test/semver/cygwin.txt | 27 + libc-test/src/makedev.c | 2 +- libc-test/test/makedev.rs | 2 + src/unix/cygwin/mod.rs | 2438 +++++++++++++++++++++++++++++++++++ src/unix/mod.rs | 30 +- 7 files changed, 2665 insertions(+), 6 deletions(-) create mode 100644 libc-test/semver/cygwin.txt create mode 100644 src/unix/cygwin/mod.rs diff --git a/build.rs b/build.rs index cf1a2e0da024b..a09826fe87b76 100644 --- a/build.rs +++ b/build.rs @@ -27,7 +27,7 @@ const CHECK_CFG_EXTRA: &'static [(&'static str, &'static [&'static str])] = &[ ( "target_os", &[ - "switch", "aix", "ohos", "hurd", "rtems", "visionos", "nuttx", + "switch", "aix", "ohos", "hurd", "rtems", "visionos", "nuttx", "cygwin", ], ), ("target_env", &["illumos", "wasi", "aix", "ohos"]), diff --git a/libc-test/build.rs b/libc-test/build.rs index 341b78e723ab7..71bc5e553cf5c 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -31,6 +31,7 @@ fn do_cc() { || target.contains("emscripten") || target.contains("fuchsia") || target.contains("bsd") + || target.contains("cygwin") { cc::Build::new().file("src/makedev.c").compile("makedev"); } @@ -60,6 +61,7 @@ fn do_ctest() { t if t.contains("linux") => return test_linux(t), t if t.contains("netbsd") => return test_netbsd(t), t if t.contains("openbsd") => return test_openbsd(t), + t if t.contains("cygwin") => return test_cygwin(t), t if t.contains("redox") => return test_redox(t), t if t.contains("solaris") => return test_solarish(t), t if t.contains("illumos") => return test_solarish(t), @@ -686,6 +688,174 @@ fn test_openbsd(target: &str) { cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } +fn test_cygwin(target: &str) { + assert!(target.contains("cygwin")); + + let mut cfg = ctest_cfg(); + cfg.define("_GNU_SOURCE", None); + + headers! { cfg: + "ctype.h", + "dirent.h", + "dlfcn.h", + "errno.h", + "fcntl.h", + "grp.h", + "iconv.h", + "langinfo.h", + "limits.h", + "locale.h", + "net/if.h", + "netdb.h", + "netinet/tcp.h", + "poll.h", + "pthread.h", + "pwd.h", + "resolv.h", + "sched.h", + "semaphore.h", + "signal.h", + "stddef.h", + "stdlib.h", + "string.h", + "sys/cpuset.h", + "sys/ioctl.h", + "sys/mman.h", + "sys/mount.h", + "sys/param.h", + "sys/quota.h", + "sys/random.h", + "sys/resource.h", + "sys/select.h", + "sys/socket.h", + "sys/statvfs.h", + "sys/times.h", + "sys/types.h", + "sys/uio.h", + "sys/un.h", + "sys/utsname.h", + "syslog.h", + "termios.h", + "unistd.h", + "utime.h", + "wait.h", + "wchar.h", + } + + cfg.type_name(move |ty, is_struct, is_union| { + match ty { + // Just pass all these through, no need for a "struct" prefix + "FILE" | "DIR" | "Dl_info" | "fd_set" => ty.to_string(), + + "Ioctl" => "int".to_string(), + + t if is_union => format!("union {}", t), + + t if t.ends_with("_t") => t.to_string(), + + // sigval is a struct in Rust, but a union in C: + "sigval" => format!("union sigval"), + + // put `struct` in front of all structs:. + t if is_struct => format!("struct {}", t), + + t => t.to_string(), + } + }); + + cfg.skip_const(move |name| { + match name { + // FIXME(cygwin): these constants do not exist on Cygwin + "ARPOP_REQUEST" | "ARPOP_REPLY" | "ATF_COM" | "ATF_PERM" | "ATF_PUBL" + | "ATF_USETRAILERS" => true, + + // not defined on Cygwin, but [get|set]priority is, so they are + // useful + "PRIO_MIN" | "PRIO_MAX" => true, + + // The following does not exist on Cygwin but is required by + // several crates + "FIOCLEX" | "SA_NOCLDWAIT" => true, + + _ => false, + } + }); + + cfg.skip_signededness(move |c| match c { + n if n.starts_with("pthread") => true, + + // For consistency with other platforms. Actually a function ptr. + "sighandler_t" => true, + + _ => false, + }); + + cfg.skip_struct(move |ty| { + if ty.starts_with("__c_anonymous_") { + return true; + } + + false + }); + + cfg.field_name(move |struct_, field| { + match field { + // Our stat *_nsec fields normally don't actually exist but are part + // of a timeval struct + s if s.ends_with("_nsec") && struct_.starts_with("stat") => { + s.replace("e_nsec", ".tv_nsec") + } + + // FIXME(cygwin): sigaction actually contains a union with two variants: + // a sa_sigaction with type: (*)(int, struct __siginfo *, void *) + // a sa_handler with type sig_t + "sa_sigaction" if struct_ == "sigaction" => "sa_handler".to_string(), + + s => s.to_string(), + } + }); + + cfg.skip_field(|struct_, field| { + match (struct_, field) { + // this is actually a union on linux, so we can't represent it well and + // just insert some padding. + ("ifreq", "ifr_ifru") => true, + ("ifconf", "ifc_ifcu") => true, + + _ => false, + } + }); + + cfg.skip_fn(move |name| { + // skip those that are manually verified + match name { + // There are two versions of the sterror_r function, see + // + // https://linux.die.net/man/3/strerror_r + // + // An XSI-compliant version provided if: + // + // (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE + // + // and a GNU specific version provided if _GNU_SOURCE is defined. + // + // libc provides bindings for the XSI-compliant version, which is + // preferred for portable applications. + // + // We skip the test here since here _GNU_SOURCE is defined, and + // test the XSI version below. + "strerror_r" => true, + + // FIXME(cygwin): does not exist on Cygwin + "mlockall" | "munlockall" => true, + + _ => false, + } + }); + + cfg.generate("../src/lib.rs", "main.rs"); +} + fn test_windows(target: &str) { assert!(target.contains("windows")); let gnu = target.contains("gnu"); diff --git a/libc-test/semver/cygwin.txt b/libc-test/semver/cygwin.txt new file mode 100644 index 0000000000000..0c953574c0ad6 --- /dev/null +++ b/libc-test/semver/cygwin.txt @@ -0,0 +1,27 @@ +FORK_NO_RELOAD +FORK_RELOAD +MOUNT_AUTOMATIC +MOUNT_BIND +MOUNT_CYGDRIVE +MOUNT_CYGWIN_EXEC +MOUNT_DEVFS +MOUNT_DONT_USE +MOUNT_DOS +MOUNT_EXEC +MOUNT_IHASH +MOUNT_IMMUTABLE +MOUNT_NOACL +MOUNT_NOPOSIX +MOUNT_NOTEXEC +MOUNT_OVERRIDE +MOUNT_PROC +MOUNT_RO +MOUNT_SPARSE +MOUNT_SYSTEM +MOUNT_TEXT +MOUNT_USER_TEMP +WINDOWS_HWND +WINDOWS_POST +WINDOWS_SEND +cygwin_umount +dlfork diff --git a/libc-test/src/makedev.c b/libc-test/src/makedev.c index 62752c72ab97f..e878e31f93b15 100644 --- a/libc-test/src/makedev.c +++ b/libc-test/src/makedev.c @@ -1,5 +1,5 @@ #include -#if defined(__linux__) || defined(__EMSCRIPTEN__) +#if defined(__linux__) || defined(__EMSCRIPTEN__) || defined(__CYGWIN__) #include #endif diff --git a/libc-test/test/makedev.rs b/libc-test/test/makedev.rs index 44297a2163aa2..374294ebe11d6 100644 --- a/libc-test/test/makedev.rs +++ b/libc-test/test/makedev.rs @@ -54,6 +54,7 @@ mod ret { target_os = "linux", target_os = "netbsd", target_os = "openbsd", + target_os = "cygwin", ))] mod t { use libc::{self, c_uint, dev_t}; @@ -133,6 +134,7 @@ mod t { target_os = "freebsd", target_os = "fuchsia", target_os = "linux", + target_os = "cygwin", ))] #[test] fn test_fbsd12_like() { diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs new file mode 100644 index 0000000000000..d1ea06a7900cf --- /dev/null +++ b/src/unix/cygwin/mod.rs @@ -0,0 +1,2438 @@ +use crate::prelude::*; +use crate::*; + +pub type wchar_t = c_ushort; + +pub type blkcnt_t = i64; +pub type blksize_t = i32; +pub type dev_t = u32; +pub type fsblkcnt_t = c_ulong; +pub type fsfilcnt_t = c_ulong; +pub type ino_t = u64; +pub type key_t = c_longlong; +pub type sa_family_t = u16; +pub type socklen_t = c_int; + +pub type off_t = c_long; +pub type id_t = u32; +pub type mode_t = u32; +pub type _off64_t = c_longlong; +pub type loff_t = _off64_t; +pub type iconv_t = *mut c_void; +pub type clock_t = c_ulong; +pub type time_t = c_long; +pub type clockid_t = c_ulong; +pub type timer_t = c_ulong; +pub type nl_item = c_int; +pub type nlink_t = c_ushort; +pub type suseconds_t = c_long; +pub type useconds_t = c_ulong; + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum timezone {} +impl Copy for timezone {} +impl Clone for timezone { + fn clone(&self) -> timezone { + *self + } +} + +pub type sigset_t = c_ulong; + +pub type fd_mask = c_ulong; + +pub type pthread_t = *mut c_void; +pub type pthread_mutex_t = *mut c_void; + +// Must be usize due to libstd/sys_common/thread_local.rs, +// should technically be *mut c_void +pub type pthread_key_t = usize; + +pub type pthread_attr_t = *mut c_void; +pub type pthread_mutexattr_t = *mut c_void; +pub type pthread_condattr_t = *mut c_void; +pub type pthread_cond_t = *mut c_void; + +// The following ones should be *mut c_void +pub type pthread_barrierattr_t = usize; +pub type pthread_barrier_t = usize; +pub type pthread_spinlock_t = usize; + +pub type pthread_rwlock_t = *mut c_void; +pub type pthread_rwlockattr_t = *mut c_void; + +pub type register_t = intptr_t; +pub type u_char = c_uchar; +pub type u_short = c_ushort; +pub type u_long = c_ulong; +pub type u_int = c_uint; +pub type caddr_t = *mut c_char; +pub type vm_size_t = c_ulong; + +pub type rlim_t = c_ulong; + +pub type nfds_t = c_uint; + +pub type sem_t = *mut sem; + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum sem {} +impl Copy for sem {} +impl Clone for sem { + fn clone(&self) -> sem { + *self + } +} + +pub type tcflag_t = c_uint; +pub type speed_t = c_uint; + +pub type vm_offset_t = c_ulong; + +pub type posix_spawn_file_actions_t = *mut c_void; +pub type posix_spawnattr_t = *mut c_void; + +s! { + pub struct itimerspec { + pub it_interval: timespec, + pub it_value: timespec, + } + + pub struct cpu_set_t { + bits: [u64; 16], + } + + pub struct sigaction { + pub sa_sigaction: sighandler_t, + pub sa_mask: sigset_t, + pub sa_flags: c_int, + } + + pub struct stack_t { + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: size_t, + } + + pub struct tm { + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + pub tm_gmtoff: c_long, + pub tm_zone: *const c_char, + } + + pub struct bintime { + pub sec: time_t, + pub frac: u64, + } + + pub struct passwd { + pub pw_name: *mut c_char, + pub pw_passwd: *mut c_char, + pub pw_uid: uid_t, + pub pw_gid: gid_t, + pub pw_comment: *mut c_char, + pub pw_gecos: *mut c_char, + pub pw_dir: *mut c_char, + pub pw_shell: *mut c_char, + } + + pub struct if_nameindex { + pub if_index: c_uint, + pub if_name: *mut c_char, + } + + pub struct ucred { + pub pid: pid_t, + pub uid: uid_t, + pub gid: gid_t, + } + + pub struct msghdr { + pub msg_name: *mut c_void, + pub msg_namelen: socklen_t, + pub msg_iov: *mut iovec, + pub msg_iovlen: c_int, + pub msg_control: *mut c_void, + pub msg_controllen: socklen_t, + pub msg_flags: c_int, + } + + pub struct cmsghdr { + pub cmsg_len: size_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, + } + + pub struct Dl_info { + pub dli_fname: [c_char; PATH_MAX as usize], + pub dli_fbase: *mut c_void, + pub dli_sname: *const c_char, + pub dli_saddr: *mut c_void, + } + + pub struct in6_pktinfo { + pub ipi6_addr: in6_addr, + pub ipi6_ifindex: u32, + } + + pub struct sockaddr_in6 { + pub sin6_family: sa_family_t, + pub sin6_port: in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: in6_addr, + pub sin6_scope_id: u32, + } + + pub struct ip_mreq_source { + pub imr_multiaddr: in_addr, + pub imr_sourceaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct addrinfo { + pub ai_flags: c_int, + pub ai_family: c_int, + pub ai_socktype: c_int, + pub ai_protocol: c_int, + pub ai_addrlen: socklen_t, + pub ai_canonname: *mut c_char, + pub ai_addr: *mut sockaddr, + pub ai_next: *mut addrinfo, + } + + pub struct lconv { + pub decimal_point: *mut c_char, + pub thousands_sep: *mut c_char, + pub grouping: *mut c_char, + pub int_curr_symbol: *mut c_char, + pub currency_symbol: *mut c_char, + pub mon_decimal_point: *mut c_char, + pub mon_thousands_sep: *mut c_char, + pub mon_grouping: *mut c_char, + pub positive_sign: *mut c_char, + pub negative_sign: *mut c_char, + pub int_frac_digits: c_char, + pub frac_digits: c_char, + pub p_cs_precedes: c_char, + pub p_sep_by_space: c_char, + pub n_cs_precedes: c_char, + pub n_sep_by_space: c_char, + pub p_sign_posn: c_char, + pub n_sign_posn: c_char, + pub int_n_cs_precedes: c_char, + pub int_n_sep_by_space: c_char, + pub int_n_sign_posn: c_char, + pub int_p_cs_precedes: c_char, + pub int_p_sep_by_space: c_char, + pub int_p_sign_posn: c_char, + } + + pub struct termios { + pub c_iflag: tcflag_t, + pub c_oflag: tcflag_t, + pub c_cflag: tcflag_t, + pub c_lflag: tcflag_t, + pub c_line: c_char, + pub c_cc: [cc_t; NCCS], + pub c_ispeed: speed_t, + pub c_ospeed: speed_t, + } + + pub struct sched_param { + pub sched_priority: c_int, + } + + pub struct flock { + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: pid_t, + } + + pub struct hostent { + pub h_name: *const c_char, + pub h_aliases: *mut *mut c_char, + pub h_addrtype: c_short, + pub h_length: c_short, + pub h_addr_list: *mut *mut c_char, + } + + pub struct linger { + pub l_onoff: c_ushort, + pub l_linger: c_ushort, + } + + pub struct fd_set { + fds_bits: [fd_mask; FD_SETSIZE / core::mem::size_of::() / 8], + } + + pub struct _uc_fpxreg { + pub significand: [u16; 4], + pub exponent: u16, + pub padding: [u16; 3], + } + + pub struct _uc_xmmreg { + pub element: [u32; 4], + } + + pub struct _fpstate { + pub cwd: u16, + pub swd: u16, + pub ftw: u16, + pub fop: u16, + pub rip: u64, + pub rdp: u64, + pub mxcsr: u32, + pub mxcr_mask: u32, + pub st: [_uc_fpxreg; 8], + pub xmm: [_uc_xmmreg; 16], + pub padding: [u32; 24], + } + + #[repr(align(16))] + pub struct mcontext_t { + pub p1home: u64, + pub p2home: u64, + pub p3home: u64, + pub p4home: u64, + pub p5home: u64, + pub p6home: u64, + pub ctxflags: u32, + pub mxcsr: u32, + pub cs: u16, + pub ds: u16, + pub es: u16, + pub fs: u16, + pub gs: u16, + pub ss: u16, + pub eflags: u32, + pub dr0: u64, + pub dr1: u64, + pub dr2: u64, + pub dr3: u64, + pub dr6: u64, + pub dr7: u64, + pub rax: u64, + pub rcx: u64, + pub rdx: u64, + pub rbx: u64, + pub rsp: u64, + pub rbp: u64, + pub rsi: u64, + pub rdi: u64, + pub r8: u64, + pub r9: u64, + pub r10: u64, + pub r11: u64, + pub r12: u64, + pub r13: u64, + pub r14: u64, + pub r15: u64, + pub rip: u64, + pub fpregs: _fpstate, + pub vregs: [u64; 52], + pub vcx: u64, + pub dbc: u64, + pub btr: u64, + pub bfr: u64, + pub etr: u64, + pub efr: u64, + pub oldmask: u64, + pub cr2: u64, + } + + pub struct sigevent { + pub sigev_value: sigval, + pub sigev_signo: c_int, + pub sigev_notify: c_int, + pub sigev_notify_function: Option, + pub sigev_notify_attributes: *mut pthread_attr_t, + } + + #[repr(align(8))] + pub struct ucontext_t { + pub uc_mcontext: mcontext_t, + pub uc_link: *mut ucontext_t, + pub uc_sigmask: sigset_t, + pub uc_stack: stack_t, + pub uc_flags: c_ulong, + } + + pub struct sockaddr { + pub sa_family: sa_family_t, + pub sa_data: [c_char; 14], + } + + pub struct sockaddr_storage { + pub ss_family: sa_family_t, + __ss_pad1: [c_char; 6], + __ss_align: i64, + __ss_pad2: [c_char; 112], + } + + 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_uid: uid_t, + pub st_gid: gid_t, + pub st_rdev: dev_t, + pub st_size: off_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_blksize: blksize_t, + pub st_blocks: blkcnt_t, + pub st_birthtime: time_t, + pub st_birthtime_nsec: c_long, + } + + pub struct in_addr { + pub s_addr: in_addr_t, + } + + pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct in_pktinfo { + pub ipi_addr: in_addr, + pub ipi_ifindex: u32, + } + + pub struct sockaddr_in { + pub sin_family: sa_family_t, + pub sin_port: in_port_t, + pub sin_addr: in_addr, + pub sin_zero: [u8; 8], + } + + 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_flag: c_ulong, + pub f_namemax: c_ulong, + } +} + +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4], + } + + pub struct siginfo_t { + pub si_signo: c_int, + pub si_code: c_int, + pub si_pid: pid_t, + pub si_uid: uid_t, + pub si_errno: c_int, + __pad: [u32; 32], + } + + pub union __c_anonymous_ifr_ifru { + pub ifru_addr: sockaddr, + pub ifru_broadaddr: sockaddr, + pub ifru_dstaddr: sockaddr, + pub ifru_netmask: sockaddr, + pub ifru_hwaddr: sockaddr, + pub ifru_flags: c_int, + pub ifru_metric: c_int, + pub ifru_mtu: c_int, + pub ifru_ifindex: c_int, + pub ifru_data: *mut c_char, + __ifru_pad: [c_char; 28], + } + + pub struct ifreq { + /// if name, e.g. "en0" + pub ifr_name: [c_char; IFNAMSIZ], + pub ifr_ifru: __c_anonymous_ifr_ifru, + } + + pub union __c_anonymous_ifc_ifcu { + pub ifcu_buf: caddr_t, + pub ifcu_req: *mut ifreq, + } + + pub struct ifconf { + pub ifc_len: c_int, + pub ifc_ifcu: __c_anonymous_ifc_ifcu, + } + + pub struct dirent { + __d_version: u32, + pub d_ino: ino_t, + pub d_type: c_uchar, + __d_unused1: [c_uchar; 3], + __d_internal1: u32, + pub d_name: [c_char; 256], + } + + pub struct sockaddr_un { + pub sun_family: sa_family_t, + pub sun_path: [c_char; 108], + } + + pub struct utsname { + pub sysname: [c_char; 65], + pub nodename: [c_char; 65], + pub release: [c_char; 65], + pub version: [c_char; 65], + pub machine: [c_char; 65], + pub domainname: [c_char; 65], + } +} + +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut c_void { + #[repr(C)] + struct siginfo_si_addr { + _si_signo: c_int, + _si_code: c_int, + _si_pid: pid_t, + _si_uid: uid_t, + _si_errno: c_int, + si_addr: *mut c_void, + } + (*(self as *const siginfo_t as *const siginfo_si_addr)).si_addr + } + + pub unsafe fn si_status(&self) -> c_int { + #[repr(C)] + struct siginfo_sigchld { + _si_signo: c_int, + _si_code: c_int, + _si_pid: pid_t, + _si_uid: uid_t, + _si_errno: c_int, + si_status: c_int, + } + (*(self as *const siginfo_t as *const siginfo_sigchld)).si_status + } + + 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_value(&self) -> sigval { + #[repr(C)] + struct siginfo_si_value { + _si_signo: c_int, + _si_code: c_int, + _si_pid: pid_t, + _si_uid: uid_t, + _si_errno: c_int, + si_value: sigval, + } + (*(self as *const siginfo_t as *const siginfo_si_value)).si_value + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for siginfo_t { + fn eq(&self, other: &siginfo_t) -> bool { + self.si_signo == other.si_signo + && self.si_code == other.si_code + && self.si_pid == other.si_pid + && self.si_uid == other.si_uid + && self.si_errno == other.si_errno + } + } + + impl Eq for siginfo_t {} + + impl fmt::Debug for siginfo_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.debug_struct("siginfo_t") + .field("si_signo", &self.si_signo) + .field("si_code", &self.si_code) + .field("si_pid", &self.si_pid) + .field("si_uid", &self.si_uid) + .field("si_errno", &self.si_errno) + // Ignore __pad + .finish() + } + } + + impl hash::Hash for siginfo_t { + fn hash(&self, state: &mut H) { + self.si_signo.hash(state); + self.si_code.hash(state); + self.si_pid.hash(state); + self.si_uid.hash(state); + self.si_errno.hash(state); + // Ignore __pad + } + } + + 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 fmt::Debug for ifconf { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.debug_struct("ifconf") + .field("ifc_len", &self.ifc_len) + .field("ifc_ifcu", &self.ifc_ifcu) + .finish() + } + } + + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_ino == other.d_ino + && self.d_type == other.d_type + && self + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a, b)| a == b) + } + } + + impl Eq for dirent {} + + impl fmt::Debug for dirent { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.debug_struct("dirent") + .field("d_ino", &self.d_ino) + .field("d_type", &self.d_type) + // FIXME: .field("d_name", &self.d_name) + .finish() + } + } + + impl hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_ino.hash(state); + self.d_type.hash(state); + self.d_name.hash(state); + } + } + + impl PartialEq for sockaddr_un { + fn eq(&self, other: &sockaddr_un) -> bool { + self.sun_family == other.sun_family + && self + .sun_path + .iter() + .zip(other.sun_path.iter()) + .all(|(a, b)| a == b) + } + } + + impl Eq for sockaddr_un {} + + impl fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.debug_struct("sockaddr_un") + .field("sun_family", &self.sun_family) + // FIXME: .field("sun_path", &self.sun_path) + .finish() + } + } + + impl hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { + self.sun_family.hash(state); + self.sun_path.hash(state); + } + } + + impl PartialEq for utsname { + fn eq(&self, other: &utsname) -> bool { + self.sysname + .iter() + .zip(other.sysname.iter()) + .all(|(a, b)| a == b) + && self + .nodename + .iter() + .zip(other.nodename.iter()) + .all(|(a, b)| a == b) + && self + .release + .iter() + .zip(other.release.iter()) + .all(|(a, b)| a == b) + && self + .version + .iter() + .zip(other.version.iter()) + .all(|(a, b)| a == b) + && self + .machine + .iter() + .zip(other.machine.iter()) + .all(|(a, b)| a == b) + && self + .domainname + .iter() + .zip(other.domainname.iter()) + .all(|(a, b)| a == b) + } + } + + impl Eq for utsname {} + + impl fmt::Debug for utsname { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.debug_struct("utsname") + // FIXME: .field("sysname", &self.sysname) + // FIXME: .field("nodename", &self.nodename) + // FIXME: .field("release", &self.release) + // FIXME: .field("version", &self.version) + // FIXME: .field("machine", &self.machine) + // FIXME: .field("domainname", &self.domainname) + .finish() + } + } + + impl hash::Hash for utsname { + fn hash(&self, state: &mut H) { + self.sysname.hash(state); + self.nodename.hash(state); + self.release.hash(state); + self.version.hash(state); + self.machine.hash(state); + self.domainname.hash(state); + } + } + } +} + +pub const FD_SETSIZE: usize = 1024; + +pub const CPU_SETSIZE: c_int = 0x400; + +// si_code values for SIGBUS signal +pub const BUS_ADRALN: c_int = 25; +pub const BUS_ADRERR: c_int = 26; +pub const BUS_OBJERR: c_int = 27; + +// si_code values for SIGCHLD signal +pub const CLD_EXITED: c_int = 28; +pub const CLD_KILLED: c_int = 29; +pub const CLD_DUMPED: c_int = 30; +pub const CLD_TRAPPED: c_int = 31; +pub const CLD_STOPPED: c_int = 32; +pub const CLD_CONTINUED: c_int = 33; + +pub const SIGEV_SIGNAL: c_int = 0; +pub const SIGEV_NONE: c_int = 1; +pub const SIGEV_THREAD: c_int = 2; + +pub const SA_NOCLDSTOP: c_int = 0x00000001; +pub const SA_NOCLDWAIT: c_int = 0; // FIXME: does not exist on Cygwin! +pub const SA_SIGINFO: c_int = 0x00000002; +pub const SA_RESTART: c_int = 0x10000000; +pub const SA_ONSTACK: c_int = 0x20000000; +pub const SA_NODEFER: c_int = 0x40000000; +pub const SA_RESETHAND: c_int = 0x80000000; +pub const MINSIGSTKSZ: size_t = 8192; +pub const SIGSTKSZ: size_t = 32768; +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGTRAP: c_int = 5; +pub const SIGABRT: c_int = 6; +pub const SIGEMT: c_int = 7; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGBUS: c_int = 10; +pub const SIGSEGV: c_int = 11; +pub const SIGSYS: c_int = 12; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; +pub const SIGURG: c_int = 16; +pub const SIGSTOP: c_int = 17; +pub const SIGTSTP: c_int = 18; +pub const SIGCONT: c_int = 19; +pub const SIGCHLD: c_int = 20; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGIO: c_int = 23; +pub const SIGPOLL: c_int = 23; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGPWR: c_int = 29; +pub const SIGUSR1: c_int = 30; +pub const SIGUSR2: c_int = 31; + +pub const SS_ONSTACK: c_int = 0x1; +pub const SS_DISABLE: c_int = 0x2; + +pub const SIG_SETMASK: c_int = 0; +pub const SIG_BLOCK: c_int = 1; +pub const SIG_UNBLOCK: c_int = 2; + +pub const TIMER_ABSTIME: c_int = 4; +pub const CLOCK_REALTIME_COARSE: clockid_t = 0; +pub const CLOCK_REALTIME: clockid_t = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: clockid_t = 2; +pub const CLOCK_THREAD_CPUTIME_ID: clockid_t = 3; +pub const CLOCK_MONOTONIC: clockid_t = 4; +pub const CLOCK_MONOTONIC_RAW: clockid_t = 5; +pub const CLOCK_MONOTONIC_COARSE: clockid_t = 6; +pub const CLOCK_BOOTTIME: clockid_t = 7; +pub const CLOCK_REALTIME_ALARM: clockid_t = 8; +pub const CLOCK_BOOTTIME_ALARM: clockid_t = 9; + +pub const ITIMER_REAL: c_int = 0; +pub const ITIMER_VIRTUAL: c_int = 1; +pub const ITIMER_PROF: c_int = 2; + +pub const PRIO_PROCESS: c_int = 0; +pub const PRIO_PGRP: c_int = 1; +pub const PRIO_USER: c_int = 2; +pub const RLIMIT_CPU: c_int = 0; +pub const RLIMIT_FSIZE: c_int = 1; +pub const RLIMIT_DATA: c_int = 2; +pub const RLIMIT_STACK: c_int = 3; +pub const RLIMIT_CORE: c_int = 4; +pub const RLIMIT_NOFILE: c_int = 5; +pub const RLIMIT_AS: c_int = 6; +pub const RLIM_NLIMITS: c_int = 7; +pub const RLIMIT_NLIMITS: c_int = RLIM_NLIMITS; +pub const RLIM_INFINITY: rlim_t = !0; +pub const RLIM_SAVED_MAX: rlim_t = RLIM_INFINITY; +pub const RLIM_SAVED_CUR: rlim_t = RLIM_INFINITY; + +pub const RUSAGE_SELF: c_int = 0; +pub const RUSAGE_CHILDREN: c_int = -1; + +pub const IFF_UP: c_int = 0x1; // interface is up +pub const IFF_BROADCAST: c_int = 0x2; // broadcast address valid +pub const IFF_LOOPBACK: c_int = 0x8; // is a loopback net +pub const IFF_POINTOPOINT: c_int = 0x10; // interface is point-to-point link +pub const IFF_NOTRAILERS: c_int = 0x20; // avoid use of trailers +pub const IFF_RUNNING: c_int = 0x40; // resources allocated +pub const IFF_NOARP: c_int = 0x80; // no address resolution protocol +pub const IFF_PROMISC: c_int = 0x100; // receive all packets +pub const IFF_MULTICAST: c_int = 0x1000; // supports multicast +pub const IFF_LOWER_UP: c_int = 0x10000; // driver signals L1 up +pub const IFF_DORMANT: c_int = 0x20000; // driver signals dormant + +pub const IF_NAMESIZE: size_t = 44; +pub const IFNAMSIZ: size_t = IF_NAMESIZE; + +pub const FIONREAD: c_int = 0x4008667f; +pub const FIONBIO: c_int = 0x8004667e; +pub const FIOASYNC: c_int = 0x8008667d; +pub const FIOCLEX: c_int = 0; // FIXME: does not exist on Cygwin! +pub const SIOCGIFCONF: c_ulong = 0x80107364; +pub const SIOCGIFFLAGS: c_ulong = 0x80507365; +pub const SIOCGIFADDR: c_ulong = 0x80507366; +pub const SIOCGIFBRDADDR: c_ulong = 0x80507367; +pub const SIOCGIFNETMASK: c_ulong = 0x80507368; +pub const SIOCGIFHWADDR: c_ulong = 0x80507369; +pub const SIOCGIFMETRIC: c_ulong = 0x8050736a; +pub const SIOCGIFMTU: c_ulong = 0x8050736b; +pub const SIOCGIFINDEX: c_ulong = 0x8050736c; +pub const SIOGIFINDEX: c_ulong = SIOCGIFINDEX; +pub const SIOCGIFDSTADDR: c_ulong = 0x8050736e; +pub const SOL_SOCKET: c_int = 0xffff; +pub const SO_DEBUG: c_int = 1; +pub const SO_ACCEPTCONN: c_int = 0x0002; +pub const SO_REUSEADDR: c_int = 0x0004; +pub const SO_KEEPALIVE: c_int = 0x0008; +pub const SO_DONTROUTE: c_int = 0x0010; +pub const SO_BROADCAST: c_int = 0x0020; +pub const SO_USELOOPBACK: c_int = 0x0040; +pub const SO_LINGER: c_int = 0x0080; +pub const SO_OOBINLINE: c_int = 0x0100; +pub const SO_PEERCRED: c_int = 0x0200; +pub const SO_PASSCRED: c_int = 0x0400; +pub const SO_SNDBUF: c_int = 0x1001; +pub const SO_RCVBUF: c_int = 0x1002; +pub const SO_SNDLOWAT: c_int = 0x1003; +pub const SO_RCVLOWAT: c_int = 0x1004; +pub const SO_SNDTIMEO: c_int = 0x1005; +pub const SO_RCVTIMEO: c_int = 0x1006; +pub const SO_ERROR: c_int = 0x1007; +pub const SO_TYPE: c_int = 0x1008; + +pub const SCM_RIGHTS: c_int = 0x01; +pub const SCM_CREDENTIALS: c_int = 0x02; +pub const SOCK_STREAM: c_int = 1; +pub const SOCK_DGRAM: c_int = 2; +pub const SOCK_RAW: c_int = 3; +pub const SOCK_RDM: c_int = 4; +pub const SOCK_SEQPACKET: c_int = 5; +pub const SOCK_NONBLOCK: c_int = 0x01000000; +pub const SOCK_CLOEXEC: c_int = 0x02000000; +pub const AF_UNSPEC: c_int = 0; +pub const AF_LOCAL: c_int = 1; +pub const AF_UNIX: c_int = AF_LOCAL; +pub const AF_INET: c_int = 2; +pub const AF_IMPLINK: c_int = 3; +pub const AF_PUP: c_int = 4; +pub const AF_CHAOS: c_int = 5; +pub const AF_NS: c_int = 6; +pub const AF_ISO: c_int = 7; +pub const AF_OSI: c_int = AF_ISO; +pub const AF_ECMA: c_int = 8; +pub const AF_DATAKIT: c_int = 9; +pub const AF_CCITT: c_int = 10; +pub const AF_SNA: c_int = 11; +pub const AF_DECnet: c_int = 12; +pub const AF_DLI: c_int = 13; +pub const AF_LAT: c_int = 14; +pub const AF_HYLINK: c_int = 15; +pub const AF_APPLETALK: c_int = 16; +pub const AF_NETBIOS: c_int = 17; +pub const AF_INET6: c_int = 23; +pub const PF_UNSPEC: c_int = AF_UNSPEC; +pub const PF_LOCAL: c_int = AF_LOCAL; +pub const PF_UNIX: c_int = PF_LOCAL; +pub const PF_INET: c_int = AF_INET; +pub const PF_IMPLINK: c_int = AF_IMPLINK; +pub const PF_PUP: c_int = AF_PUP; +pub const PF_CHAOS: c_int = AF_CHAOS; +pub const PF_NS: c_int = AF_NS; +pub const PF_ISO: c_int = AF_ISO; +pub const PF_OSI: c_int = AF_ISO; +pub const PF_DATAKIT: c_int = AF_DATAKIT; +pub const PF_CCITT: c_int = AF_CCITT; +pub const PF_SNA: c_int = AF_SNA; +pub const PF_DECnet: c_int = AF_DECnet; +pub const PF_DLI: c_int = AF_DLI; +pub const PF_LAT: c_int = AF_LAT; +pub const PF_HYLINK: c_int = AF_HYLINK; +pub const PF_APPLETALK: c_int = AF_APPLETALK; +pub const PF_NETBIOS: c_int = AF_NETBIOS; +pub const PF_INET6: c_int = AF_INET6; +pub const SOMAXCONN: c_int = 0x7fffffff; +pub const MSG_OOB: c_int = 0x1; +pub const MSG_PEEK: c_int = 0x2; +pub const MSG_DONTROUTE: c_int = 0x4; +pub const MSG_WAITALL: c_int = 0x8; +pub const MSG_DONTWAIT: c_int = 0x10; +pub const MSG_NOSIGNAL: c_int = 0x20; +pub const MSG_TRUNC: c_int = 0x0100; +pub const MSG_CTRUNC: c_int = 0x0200; +pub const MSG_BCAST: c_int = 0x0400; +pub const MSG_MCAST: c_int = 0x0800; +pub const MSG_CMSG_CLOEXEC: c_int = 0x1000; +pub const MSG_EOR: c_int = 0x8000; +pub const SOL_IP: c_int = 0; +pub const SOL_IPV6: c_int = 41; +pub const SOL_TCP: c_int = 6; +pub const SOL_UDP: c_int = 17; +pub const IPTOS_LOWDELAY: u8 = 0x10; +pub const IPTOS_THROUGHPUT: u8 = 0x08; +pub const IPTOS_RELIABILITY: u8 = 0x04; +pub const IP_DEFAULT_MULTICAST_TTL: c_int = 1; +pub const IP_DEFAULT_MULTICAST_LOOP: c_int = 1; +pub const IP_OPTIONS: c_int = 1; +pub const IP_HDRINCL: c_int = 2; +pub const IP_TOS: c_int = 3; +pub const IP_TTL: c_int = 4; +pub const IP_MULTICAST_IF: c_int = 9; +pub const IP_MULTICAST_TTL: c_int = 10; +pub const IP_MULTICAST_LOOP: c_int = 11; +pub const IP_ADD_MEMBERSHIP: c_int = 12; +pub const IP_DROP_MEMBERSHIP: c_int = 13; +pub const IP_ADD_SOURCE_MEMBERSHIP: c_int = 15; +pub const IP_DROP_SOURCE_MEMBERSHIP: c_int = 16; +pub const IP_BLOCK_SOURCE: c_int = 17; +pub const IP_UNBLOCK_SOURCE: c_int = 18; +pub const IP_PKTINFO: c_int = 19; +pub const IP_UNICAST_IF: c_int = 31; +pub const IPV6_HOPOPTS: c_int = 1; +pub const IPV6_UNICAST_HOPS: c_int = 4; +pub const IPV6_MULTICAST_IF: c_int = 9; +pub const IPV6_MULTICAST_HOPS: c_int = 10; +pub const IPV6_MULTICAST_LOOP: c_int = 11; +pub const IPV6_ADD_MEMBERSHIP: c_int = 12; +pub const IPV6_DROP_MEMBERSHIP: c_int = 13; +pub const IPV6_JOIN_GROUP: c_int = 12; +pub const IPV6_LEAVE_GROUP: c_int = 13; +pub const IPV6_DONTFRAG: c_int = 14; +pub const IPV6_PKTINFO: c_int = 19; +pub const IPV6_HOPLIMIT: c_int = 21; +pub const IPV6_CHECKSUM: c_int = 26; +pub const IPV6_V6ONLY: c_int = 27; +pub const IPV6_UNICAST_IF: c_int = 31; +pub const IPV6_RTHDR: c_int = 32; +pub const IPV6_RECVRTHDR: c_int = 38; +pub const IPV6_TCLASS: c_int = 39; +pub const IPV6_RECVTCLASS: c_int = 40; +pub const MCAST_JOIN_GROUP: c_int = 41; +pub const MCAST_LEAVE_GROUP: c_int = 42; +pub const MCAST_BLOCK_SOURCE: c_int = 43; +pub const MCAST_UNBLOCK_SOURCE: c_int = 44; +pub const MCAST_JOIN_SOURCE_GROUP: c_int = 45; +pub const MCAST_LEAVE_SOURCE_GROUP: c_int = 46; +pub const MCAST_INCLUDE: c_int = 0; +pub const MCAST_EXCLUDE: c_int = 1; +pub const SHUT_RD: c_int = 0; +pub const SHUT_WR: c_int = 1; +pub const SHUT_RDWR: c_int = 2; + +pub const S_BLKSIZE: mode_t = 1024; +pub const S_IREAD: mode_t = 256; +pub const S_IWRITE: mode_t = 128; +pub const S_IEXEC: mode_t = 64; +pub const S_ENFMT: mode_t = 1024; +pub const S_IFMT: mode_t = 61440; +pub const S_IFDIR: mode_t = 16384; +pub const S_IFCHR: mode_t = 8192; +pub const S_IFBLK: mode_t = 24576; +pub const S_IFREG: mode_t = 32768; +pub const S_IFLNK: mode_t = 40960; +pub const S_IFSOCK: mode_t = 49152; +pub const S_IFIFO: mode_t = 4096; +pub const S_IRWXU: mode_t = 448; +pub const S_IRUSR: mode_t = 256; +pub const S_IWUSR: mode_t = 128; +pub const S_IXUSR: mode_t = 64; +pub const S_IRWXG: mode_t = 56; +pub const S_IRGRP: mode_t = 32; +pub const S_IWGRP: mode_t = 16; +pub const S_IXGRP: mode_t = 8; +pub const S_IRWXO: mode_t = 7; +pub const S_IROTH: mode_t = 4; +pub const S_IWOTH: mode_t = 2; +pub const S_IXOTH: mode_t = 1; +pub const UTIME_NOW: c_long = -2; +pub const UTIME_OMIT: c_long = -1; + +pub const ARG_MAX: c_int = 32000; +pub const CHILD_MAX: c_int = 256; +pub const IOV_MAX: c_int = 1024; +pub const PTHREAD_STACK_MIN: size_t = 65536; +pub const PATH_MAX: c_int = 4096; +pub const PIPE_BUF: usize = 4096; +pub const NGROUPS_MAX: c_int = 1024; + +pub const FORK_RELOAD: c_int = 1; +pub const FORK_NO_RELOAD: c_int = 0; + +pub const RTLD_DEFAULT: *mut c_void = 0isize as *mut c_void; +pub const RTLD_LOCAL: c_int = 0; +pub const RTLD_LAZY: c_int = 1; +pub const RTLD_NOW: c_int = 2; +pub const RTLD_GLOBAL: c_int = 4; +pub const RTLD_NODELETE: c_int = 8; +pub const RTLD_NOLOAD: c_int = 16; +pub const RTLD_DEEPBIND: c_int = 32; + +/// IP6 hop-by-hop options +pub const IPPROTO_HOPOPTS: c_int = 0; + +/// gateway mgmt protocol +pub const IPPROTO_IGMP: c_int = 2; + +/// IPIP tunnels (older KA9Q tunnels use 94) +pub const IPPROTO_IPIP: c_int = 4; + +/// exterior gateway protocol +pub const IPPROTO_EGP: c_int = 8; + +/// pup +pub const IPPROTO_PUP: c_int = 12; + +/// xns idp +pub const IPPROTO_IDP: c_int = 22; + +/// IP6 routing header +pub const IPPROTO_ROUTING: c_int = 43; + +/// IP6 fragmentation header +pub const IPPROTO_FRAGMENT: c_int = 44; + +/// IP6 Encap Sec. Payload +pub const IPPROTO_ESP: c_int = 50; + +/// IP6 Auth Header +pub const IPPROTO_AH: c_int = 51; + +/// IP6 no next header +pub const IPPROTO_NONE: c_int = 59; + +/// IP6 destination option +pub const IPPROTO_DSTOPTS: c_int = 60; + +pub const IPPROTO_RAW: c_int = 255; +pub const IPPROTO_MAX: c_int = 256; + +pub const AI_PASSIVE: c_int = 0x1; +pub const AI_CANONNAME: c_int = 0x2; +pub const AI_NUMERICHOST: c_int = 0x4; +pub const AI_NUMERICSERV: c_int = 0x8; +pub const AI_ALL: c_int = 0x100; +pub const AI_ADDRCONFIG: c_int = 0x400; +pub const AI_V4MAPPED: c_int = 0x800; +pub const NI_NOFQDN: c_int = 0x1; +pub const NI_NUMERICHOST: c_int = 0x2; +pub const NI_NAMEREQD: c_int = 0x4; +pub const NI_NUMERICSERV: c_int = 0x8; +pub const NI_DGRAM: c_int = 0x10; +pub const NI_MAXHOST: c_int = 1025; +pub const NI_MAXSERV: c_int = 32; +pub const EAI_AGAIN: c_int = 2; +pub const EAI_BADFLAGS: c_int = 3; +pub const EAI_FAIL: c_int = 4; +pub const EAI_FAMILY: c_int = 5; +pub const EAI_MEMORY: c_int = 6; +pub const EAI_NODATA: c_int = 7; +pub const EAI_NONAME: c_int = 8; +pub const EAI_SERVICE: c_int = 9; +pub const EAI_SOCKTYPE: c_int = 10; +pub const EAI_SYSTEM: c_int = 11; +pub const EAI_OVERFLOW: c_int = 14; + +pub const POLLIN: c_short = 0x1; +pub const POLLPRI: c_short = 0x2; +pub const POLLOUT: c_short = 0x4; +pub const POLLERR: c_short = 0x8; +pub const POLLHUP: c_short = 0x10; +pub const POLLNVAL: c_short = 0x20; +pub const POLLRDNORM: c_short = 0x1; +pub const POLLRDBAND: c_short = 0x2; +pub const POLLWRNORM: c_short = 0x4; +pub const POLLWRBAND: c_short = 0x4; + +pub const LC_ALL: c_int = 0; +pub const LC_COLLATE: c_int = 1; +pub const LC_CTYPE: c_int = 2; +pub const LC_MONETARY: c_int = 3; +pub const LC_NUMERIC: c_int = 4; +pub const LC_TIME: c_int = 5; +pub const LC_MESSAGES: c_int = 6; +pub const LC_ALL_MASK: c_int = 1 << 0; +pub const LC_COLLATE_MASK: c_int = 1 << 1; +pub const LC_CTYPE_MASK: c_int = 1 << 2; +pub const LC_MONETARY_MASK: c_int = 1 << 3; +pub const LC_NUMERIC_MASK: c_int = 1 << 4; +pub const LC_TIME_MASK: c_int = 1 << 5; +pub const LC_MESSAGES_MASK: c_int = 1 << 6; +pub const LC_GLOBAL_LOCALE: locale_t = -1isize as locale_t; + +pub const SEM_FAILED: *mut sem_t = core::ptr::null_mut(); + +pub const ST_RDONLY: c_ulong = 0x80000; +pub const ST_NOSUID: c_ulong = 0; + +pub const TIOCMGET: c_int = 0x5415; +pub const TIOCMBIS: c_int = 0x5416; +pub const TIOCMBIC: c_int = 0x5417; +pub const TIOCMSET: c_int = 0x5418; +pub const TIOCINQ: c_int = 0x541B; +pub const TIOCSCTTY: c_int = 0x540E; +pub const TIOCSBRK: c_int = 0x5427; +pub const TIOCCBRK: c_int = 0x5428; +pub const TIOCM_DTR: c_int = 0x002; +pub const TIOCM_RTS: c_int = 0x004; +pub const TIOCM_CTS: c_int = 0x020; +pub const TIOCM_CAR: c_int = 0x040; +pub const TIOCM_RNG: c_int = 0x080; +pub const TIOCM_CD: c_int = TIOCM_CAR; +pub const TIOCM_RI: c_int = TIOCM_RNG; +pub const TCOOFF: c_int = 0; +pub const TCOON: c_int = 1; +pub const TCIOFF: c_int = 2; +pub const TCION: c_int = 3; +pub const TCGETA: c_int = 5; +pub const TCSETA: c_int = 6; +pub const TCSETAW: c_int = 7; +pub const TCSETAF: c_int = 8; +pub const TCIFLUSH: c_int = 0; +pub const TCOFLUSH: c_int = 1; +pub const TCIOFLUSH: c_int = 2; +pub const TCFLSH: c_int = 3; +pub const TCSAFLUSH: c_int = 1; +pub const TCSANOW: c_int = 2; +pub const TCSADRAIN: c_int = 3; +pub const TIOCPKT: c_int = 6; +pub const TIOCPKT_DATA: c_int = 0x0; +pub const TIOCPKT_FLUSHREAD: c_int = 0x1; +pub const TIOCPKT_FLUSHWRITE: c_int = 0x2; +pub const TIOCPKT_STOP: c_int = 0x4; +pub const TIOCPKT_START: c_int = 0x8; +pub const TIOCPKT_NOSTOP: c_int = 0x10; +pub const TIOCPKT_DOSTOP: c_int = 0x20; +pub const IGNBRK: tcflag_t = 0x00001; +pub const BRKINT: tcflag_t = 0x00002; +pub const IGNPAR: tcflag_t = 0x00004; +pub const IMAXBEL: tcflag_t = 0x00008; +pub const INPCK: tcflag_t = 0x00010; +pub const ISTRIP: tcflag_t = 0x00020; +pub const INLCR: tcflag_t = 0x00040; +pub const IGNCR: tcflag_t = 0x00080; +pub const ICRNL: tcflag_t = 0x00100; +pub const IXON: tcflag_t = 0x00400; +pub const IXOFF: tcflag_t = 0x01000; +pub const IUCLC: tcflag_t = 0x04000; +pub const IXANY: tcflag_t = 0x08000; +pub const PARMRK: tcflag_t = 0x10000; +pub const IUTF8: tcflag_t = 0x20000; +pub const OPOST: tcflag_t = 0x00001; +pub const OLCUC: tcflag_t = 0x00002; +pub const OCRNL: tcflag_t = 0x00004; +pub const ONLCR: tcflag_t = 0x00008; +pub const ONOCR: tcflag_t = 0x00010; +pub const ONLRET: tcflag_t = 0x00020; +pub const OFILL: tcflag_t = 0x00040; +pub const CRDLY: tcflag_t = 0x00180; +pub const CR0: tcflag_t = 0x00000; +pub const CR1: tcflag_t = 0x00080; +pub const CR2: tcflag_t = 0x00100; +pub const CR3: tcflag_t = 0x00180; +pub const NLDLY: tcflag_t = 0x00200; +pub const NL0: tcflag_t = 0x00000; +pub const NL1: tcflag_t = 0x00200; +pub const BSDLY: tcflag_t = 0x00400; +pub const BS0: tcflag_t = 0x00000; +pub const BS1: tcflag_t = 0x00400; +pub const TABDLY: tcflag_t = 0x01800; +pub const TAB0: tcflag_t = 0x00000; +pub const TAB1: tcflag_t = 0x00800; +pub const TAB2: tcflag_t = 0x01000; +pub const TAB3: tcflag_t = 0x01800; +pub const XTABS: tcflag_t = 0x01800; +pub const VTDLY: tcflag_t = 0x02000; +pub const VT0: tcflag_t = 0x00000; +pub const VT1: tcflag_t = 0x02000; +pub const FFDLY: tcflag_t = 0x04000; +pub const FF0: tcflag_t = 0x00000; +pub const FF1: tcflag_t = 0x04000; +pub const OFDEL: tcflag_t = 0x08000; +pub const CBAUD: tcflag_t = 0x0100f; +pub const B0: speed_t = 0x00000; +pub const B50: speed_t = 0x00001; +pub const B75: speed_t = 0x00002; +pub const B110: speed_t = 0x00003; +pub const B134: speed_t = 0x00004; +pub const B150: speed_t = 0x00005; +pub const B200: speed_t = 0x00006; +pub const B300: speed_t = 0x00007; +pub const B600: speed_t = 0x00008; +pub const B1200: speed_t = 0x00009; +pub const B1800: speed_t = 0x0000a; +pub const B2400: speed_t = 0x0000b; +pub const B4800: speed_t = 0x0000c; +pub const B9600: speed_t = 0x0000d; +pub const B19200: speed_t = 0x0000e; +pub const B38400: speed_t = 0x0000f; +pub const CSIZE: tcflag_t = 0x00030; +pub const CS5: tcflag_t = 0x00000; +pub const CS6: tcflag_t = 0x00010; +pub const CS7: tcflag_t = 0x00020; +pub const CS8: tcflag_t = 0x00030; +pub const CSTOPB: tcflag_t = 0x00040; +pub const CREAD: tcflag_t = 0x00080; +pub const PARENB: tcflag_t = 0x00100; +pub const PARODD: tcflag_t = 0x00200; +pub const HUPCL: tcflag_t = 0x00400; +pub const CLOCAL: tcflag_t = 0x00800; +pub const CBAUDEX: tcflag_t = 0x0100f; +pub const B57600: speed_t = 0x01001; +pub const B115200: speed_t = 0x01002; +pub const B230400: speed_t = 0x01004; +pub const B460800: speed_t = 0x01006; +pub const B500000: speed_t = 0x01007; +pub const B576000: speed_t = 0x01008; +pub const B921600: speed_t = 0x01009; +pub const B1000000: speed_t = 0x0100a; +pub const B1152000: speed_t = 0x0100b; +pub const B1500000: speed_t = 0x0100c; +pub const B2000000: speed_t = 0x0100d; +pub const B2500000: speed_t = 0x0100e; +pub const B3000000: speed_t = 0x0100f; +pub const CRTSCTS: tcflag_t = 0x08000; +pub const CMSPAR: tcflag_t = 0x40000000; +pub const ISIG: tcflag_t = 0x0001; +pub const ICANON: tcflag_t = 0x0002; +pub const ECHO: tcflag_t = 0x0004; +pub const ECHOE: tcflag_t = 0x0008; +pub const ECHOK: tcflag_t = 0x0010; +pub const ECHONL: tcflag_t = 0x0020; +pub const NOFLSH: tcflag_t = 0x0040; +pub const TOSTOP: tcflag_t = 0x0080; +pub const IEXTEN: tcflag_t = 0x0100; +pub const FLUSHO: tcflag_t = 0x0200; +pub const ECHOKE: tcflag_t = 0x0400; +pub const ECHOCTL: tcflag_t = 0x0800; +pub const VDISCARD: usize = 1; +pub const VEOL: usize = 2; +pub const VEOL2: usize = 3; +pub const VEOF: usize = 4; +pub const VERASE: usize = 5; +pub const VINTR: usize = 6; +pub const VKILL: usize = 7; +pub const VLNEXT: usize = 8; +pub const VMIN: usize = 9; +pub const VQUIT: usize = 10; +pub const VREPRINT: usize = 11; +pub const VSTART: usize = 12; +pub const VSTOP: usize = 13; +pub const VSUSP: usize = 14; +pub const VSWTC: usize = 15; +pub const VTIME: usize = 16; +pub const VWERASE: usize = 17; +pub const NCCS: usize = 18; + +pub const TIOCGWINSZ: c_int = 0x5401; +pub const TIOCSWINSZ: c_int = 0x5402; +pub const TIOCLINUX: c_int = 0x5403; +pub const TIOCGPGRP: c_int = 0x540f; +pub const TIOCSPGRP: c_int = 0x5410; + +pub const WNOHANG: c_int = 1; +pub const WUNTRACED: c_int = 2; +pub const WCONTINUED: c_int = 8; + +pub const EXIT_FAILURE: c_int = 1; +pub const EXIT_SUCCESS: c_int = 0; + +pub const PROT_NONE: c_int = 0; +pub const PROT_READ: c_int = 1; +pub const PROT_WRITE: c_int = 2; +pub const PROT_EXEC: c_int = 4; +pub const MAP_FILE: c_int = 0; +pub const MAP_SHARED: c_int = 1; +pub const MAP_PRIVATE: c_int = 2; +pub const MAP_TYPE: c_int = 0xf; +pub const MAP_FIXED: c_int = 0x10; +pub const MAP_ANON: c_int = 0x20; +pub const MAP_ANONYMOUS: c_int = MAP_ANON; +pub const MAP_NORESERVE: c_int = 0x4000; +pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; +pub const MS_ASYNC: c_int = 1; +pub const MS_SYNC: c_int = 2; +pub const MS_INVALIDATE: c_int = 4; +pub const POSIX_MADV_NORMAL: c_int = 0; +pub const POSIX_MADV_SEQUENTIAL: c_int = 1; +pub const POSIX_MADV_RANDOM: c_int = 2; +pub const POSIX_MADV_WILLNEED: c_int = 3; +pub const POSIX_MADV_DONTNEED: c_int = 4; +pub const MADV_NORMAL: c_int = 0; +pub const MADV_SEQUENTIAL: c_int = 1; +pub const MADV_RANDOM: c_int = 2; +pub const MADV_WILLNEED: c_int = 3; +pub const MADV_DONTNEED: c_int = 4; + +pub const F_ULOCK: c_int = 0; +pub const F_LOCK: c_int = 1; +pub const F_TLOCK: c_int = 2; +pub const F_TEST: c_int = 3; + +pub const F_OK: c_int = 0; +pub const R_OK: c_int = 4; +pub const W_OK: c_int = 2; +pub const X_OK: c_int = 1; +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; +pub const _SC_ARG_MAX: c_int = 0; +pub const _SC_CHILD_MAX: c_int = 1; +pub const _SC_CLK_TCK: c_int = 2; +pub const _SC_NGROUPS_MAX: c_int = 3; +pub const _SC_OPEN_MAX: c_int = 4; +pub const _SC_JOB_CONTROL: c_int = 5; +pub const _SC_SAVED_IDS: c_int = 6; +pub const _SC_VERSION: c_int = 7; +pub const _SC_PAGESIZE: c_int = 8; +pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; +pub const _SC_NPROCESSORS_CONF: c_int = 9; +pub const _SC_NPROCESSORS_ONLN: c_int = 10; +pub const _SC_PHYS_PAGES: c_int = 11; +pub const _SC_AVPHYS_PAGES: c_int = 12; +pub const _SC_MQ_OPEN_MAX: c_int = 13; +pub const _SC_MQ_PRIO_MAX: c_int = 14; +pub const _SC_RTSIG_MAX: c_int = 15; +pub const _SC_SEM_NSEMS_MAX: c_int = 16; +pub const _SC_SEM_VALUE_MAX: c_int = 17; +pub const _SC_SIGQUEUE_MAX: c_int = 18; +pub const _SC_TIMER_MAX: c_int = 19; +pub const _SC_TZNAME_MAX: c_int = 20; +pub const _SC_ASYNCHRONOUS_IO: c_int = 21; +pub const _SC_FSYNC: c_int = 22; +pub const _SC_MAPPED_FILES: c_int = 23; +pub const _SC_MEMLOCK: c_int = 24; +pub const _SC_MEMLOCK_RANGE: c_int = 25; +pub const _SC_MEMORY_PROTECTION: c_int = 26; +pub const _SC_MESSAGE_PASSING: c_int = 27; +pub const _SC_PRIORITIZED_IO: c_int = 28; +pub const _SC_REALTIME_SIGNALS: c_int = 29; +pub const _SC_SEMAPHORES: c_int = 30; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 31; +pub const _SC_SYNCHRONIZED_IO: c_int = 32; +pub const _SC_TIMERS: c_int = 33; +pub const _SC_AIO_LISTIO_MAX: c_int = 34; +pub const _SC_AIO_MAX: c_int = 35; +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 36; +pub const _SC_DELAYTIMER_MAX: c_int = 37; +pub const _SC_THREAD_KEYS_MAX: c_int = 38; +pub const _SC_THREAD_STACK_MIN: c_int = 39; +pub const _SC_THREAD_THREADS_MAX: c_int = 40; +pub const _SC_TTY_NAME_MAX: c_int = 41; +pub const _SC_THREADS: c_int = 42; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 43; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 44; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 45; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 46; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 47; +pub const _SC_THREAD_PRIO_CEILING: c_int = _SC_THREAD_PRIO_PROTECT; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 48; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 49; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 50; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 51; +pub const _SC_LOGIN_NAME_MAX: c_int = 52; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 53; +pub const _SC_ADVISORY_INFO: c_int = 54; +pub const _SC_ATEXIT_MAX: c_int = 55; +pub const _SC_BARRIERS: c_int = 56; +pub const _SC_BC_BASE_MAX: c_int = 57; +pub const _SC_BC_DIM_MAX: c_int = 58; +pub const _SC_BC_SCALE_MAX: c_int = 59; +pub const _SC_BC_STRING_MAX: c_int = 60; +pub const _SC_CLOCK_SELECTION: c_int = 61; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 62; +pub const _SC_CPUTIME: c_int = 63; +pub const _SC_EXPR_NEST_MAX: c_int = 64; +pub const _SC_HOST_NAME_MAX: c_int = 65; +pub const _SC_IOV_MAX: c_int = 66; +pub const _SC_IPV6: c_int = 67; +pub const _SC_LINE_MAX: c_int = 68; +pub const _SC_MONOTONIC_CLOCK: c_int = 69; +pub const _SC_RAW_SOCKETS: c_int = 70; +pub const _SC_READER_WRITER_LOCKS: c_int = 71; +pub const _SC_REGEXP: c_int = 72; +pub const _SC_RE_DUP_MAX: c_int = 73; +pub const _SC_SHELL: c_int = 74; +pub const _SC_SPAWN: c_int = 75; +pub const _SC_SPIN_LOCKS: c_int = 76; +pub const _SC_SPORADIC_SERVER: c_int = 77; +pub const _SC_SS_REPL_MAX: c_int = 78; +pub const _SC_SYMLOOP_MAX: c_int = 79; +pub const _SC_THREAD_CPUTIME: c_int = 80; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 81; +pub const _SC_TIMEOUTS: c_int = 82; +pub const _SC_TRACE: c_int = 83; +pub const _SC_TRACE_EVENT_FILTER: c_int = 84; +pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 85; +pub const _SC_TRACE_INHERIT: c_int = 86; +pub const _SC_TRACE_LOG: c_int = 87; +pub const _SC_TRACE_NAME_MAX: c_int = 88; +pub const _SC_TRACE_SYS_MAX: c_int = 89; +pub const _SC_TRACE_USER_EVENT_MAX: c_int = 90; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 91; +pub const _SC_V7_ILP32_OFF32: c_int = 92; +pub const _SC_V6_ILP32_OFF32: c_int = _SC_V7_ILP32_OFF32; +pub const _SC_XBS5_ILP32_OFF32: c_int = _SC_V7_ILP32_OFF32; +pub const _SC_V7_ILP32_OFFBIG: c_int = 93; +pub const _SC_V6_ILP32_OFFBIG: c_int = _SC_V7_ILP32_OFFBIG; +pub const _SC_XBS5_ILP32_OFFBIG: c_int = _SC_V7_ILP32_OFFBIG; +pub const _SC_V7_LP64_OFF64: c_int = 94; +pub const _SC_V6_LP64_OFF64: c_int = _SC_V7_LP64_OFF64; +pub const _SC_XBS5_LP64_OFF64: c_int = _SC_V7_LP64_OFF64; +pub const _SC_V7_LPBIG_OFFBIG: c_int = 95; +pub const _SC_V6_LPBIG_OFFBIG: c_int = _SC_V7_LPBIG_OFFBIG; +pub const _SC_XBS5_LPBIG_OFFBIG: c_int = _SC_V7_LPBIG_OFFBIG; +pub const _SC_XOPEN_CRYPT: c_int = 96; +pub const _SC_XOPEN_ENH_I18N: c_int = 97; +pub const _SC_XOPEN_LEGACY: c_int = 98; +pub const _SC_XOPEN_REALTIME: c_int = 99; +pub const _SC_STREAM_MAX: c_int = 100; +pub const _SC_PRIORITY_SCHEDULING: c_int = 101; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 102; +pub const _SC_XOPEN_SHM: c_int = 103; +pub const _SC_XOPEN_STREAMS: c_int = 104; +pub const _SC_XOPEN_UNIX: c_int = 105; +pub const _SC_XOPEN_VERSION: c_int = 106; +pub const _SC_2_CHAR_TERM: c_int = 107; +pub const _SC_2_C_BIND: c_int = 108; +pub const _SC_2_C_DEV: c_int = 109; +pub const _SC_2_FORT_DEV: c_int = 110; +pub const _SC_2_FORT_RUN: c_int = 111; +pub const _SC_2_LOCALEDEF: c_int = 112; +pub const _SC_2_PBS: c_int = 113; +pub const _SC_2_PBS_ACCOUNTING: c_int = 114; +pub const _SC_2_PBS_CHECKPOINT: c_int = 115; +pub const _SC_2_PBS_LOCATE: c_int = 116; +pub const _SC_2_PBS_MESSAGE: c_int = 117; +pub const _SC_2_PBS_TRACK: c_int = 118; +pub const _SC_2_SW_DEV: c_int = 119; +pub const _SC_2_UPE: c_int = 120; +pub const _SC_2_VERSION: c_int = 121; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 122; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 123; +pub const _SC_XOPEN_UUCP: c_int = 124; +pub const _SC_LEVEL1_ICACHE_SIZE: c_int = 125; +pub const _SC_LEVEL1_ICACHE_ASSOC: c_int = 126; +pub const _SC_LEVEL1_ICACHE_LINESIZE: c_int = 127; +pub const _SC_LEVEL1_DCACHE_SIZE: c_int = 128; +pub const _SC_LEVEL1_DCACHE_ASSOC: c_int = 129; +pub const _SC_LEVEL1_DCACHE_LINESIZE: c_int = 130; +pub const _SC_LEVEL2_CACHE_SIZE: c_int = 131; +pub const _SC_LEVEL2_CACHE_ASSOC: c_int = 132; +pub const _SC_LEVEL2_CACHE_LINESIZE: c_int = 133; +pub const _SC_LEVEL3_CACHE_SIZE: c_int = 134; +pub const _SC_LEVEL3_CACHE_ASSOC: c_int = 135; +pub const _SC_LEVEL3_CACHE_LINESIZE: c_int = 136; +pub const _SC_LEVEL4_CACHE_SIZE: c_int = 137; +pub const _SC_LEVEL4_CACHE_ASSOC: c_int = 138; +pub const _SC_LEVEL4_CACHE_LINESIZE: c_int = 139; +pub const _PC_LINK_MAX: c_int = 0; +pub const _PC_MAX_CANON: c_int = 1; +pub const _PC_MAX_INPUT: c_int = 2; +pub const _PC_NAME_MAX: c_int = 3; +pub const _PC_PATH_MAX: c_int = 4; +pub const _PC_PIPE_BUF: c_int = 5; +pub const _PC_CHOWN_RESTRICTED: c_int = 6; +pub const _PC_NO_TRUNC: c_int = 7; +pub const _PC_VDISABLE: c_int = 8; +pub const _PC_ASYNC_IO: c_int = 9; +pub const _PC_PRIO_IO: c_int = 10; +pub const _PC_SYNC_IO: c_int = 11; +pub const _PC_FILESIZEBITS: c_int = 12; +pub const _PC_2_SYMLINKS: c_int = 13; +pub const _PC_SYMLINK_MAX: c_int = 14; +pub const _PC_ALLOC_SIZE_MIN: c_int = 15; +pub const _PC_REC_INCR_XFER_SIZE: c_int = 16; +pub const _PC_REC_MAX_XFER_SIZE: c_int = 17; +pub const _PC_REC_MIN_XFER_SIZE: c_int = 18; +pub const _PC_REC_XFER_ALIGN: c_int = 19; +pub const _PC_TIMESTAMP_RESOLUTION: c_int = 20; +pub const _CS_PATH: c_int = 0; + +pub const O_ACCMODE: c_int = 0x3; +pub const O_RDONLY: c_int = 0; +pub const O_WRONLY: c_int = 1; +pub const O_RDWR: c_int = 2; +pub const O_APPEND: c_int = 0x0008; +pub const O_CREAT: c_int = 0x0200; +pub const O_TRUNC: c_int = 0x0400; +pub const O_EXCL: c_int = 0x0800; +pub const O_SYNC: c_int = 0x2000; +pub const O_NONBLOCK: c_int = 0x4000; +pub const O_NOCTTY: c_int = 0x8000; +pub const O_CLOEXEC: c_int = 0x40000; +pub const O_NOFOLLOW: c_int = 0x100000; +pub const O_DIRECTORY: c_int = 0x200000; +pub const O_EXEC: c_int = 0x400000; +pub const O_SEARCH: c_int = 0x400000; +pub const O_DIRECT: c_int = 0x80000; +pub const O_DSYNC: c_int = 0x2000; +pub const O_RSYNC: c_int = 0x2000; +pub const O_TMPFILE: c_int = 0x800000; +pub const O_NOATIME: c_int = 0x1000000; +pub const O_PATH: c_int = 0x2000000; +pub const F_DUPFD: c_int = 0; +pub const F_GETFD: c_int = 1; +pub const F_SETFD: c_int = 2; +pub const F_GETFL: c_int = 3; +pub const F_SETFL: c_int = 4; +pub const F_GETOWN: c_int = 5; +pub const F_SETOWN: c_int = 6; +pub const F_GETLK: c_int = 7; +pub const F_SETLK: c_int = 8; +pub const F_SETLKW: c_int = 9; +pub const F_RGETLK: c_int = 10; +pub const F_RSETLK: c_int = 11; +pub const F_CNVT: c_int = 12; +pub const F_RSETLKW: c_int = 13; +pub const F_DUPFD_CLOEXEC: c_int = 14; +pub const F_RDLCK: c_int = 1; +pub const F_WRLCK: c_int = 2; +pub const F_UNLCK: c_int = 3; +pub const AT_FDCWD: c_int = -2; +pub const AT_EACCESS: c_int = 1; +pub const AT_SYMLINK_NOFOLLOW: c_int = 2; +pub const AT_SYMLINK_FOLLOW: c_int = 4; +pub const AT_REMOVEDIR: c_int = 8; +pub const AT_EMPTY_PATH: c_int = 16; +pub const LOCK_SH: c_int = 1; +pub const LOCK_EX: c_int = 2; +pub const LOCK_NB: c_int = 4; +pub const LOCK_UN: c_int = 8; + +pub const EPERM: c_int = 1; +pub const ENOENT: c_int = 2; +pub const ESRCH: c_int = 3; +pub const EINTR: c_int = 4; +pub const EIO: c_int = 5; +pub const ENXIO: c_int = 6; +pub const E2BIG: c_int = 7; +pub const ENOEXEC: c_int = 8; +pub const EBADF: c_int = 9; +pub const ECHILD: c_int = 10; +pub const EAGAIN: c_int = 11; +pub const ENOMEM: c_int = 12; +pub const EACCES: c_int = 13; +pub const EFAULT: c_int = 14; +pub const ENOTBLK: c_int = 15; +pub const EBUSY: c_int = 16; +pub const EEXIST: c_int = 17; +pub const EXDEV: c_int = 18; +pub const ENODEV: c_int = 19; +pub const ENOTDIR: c_int = 20; +pub const EISDIR: c_int = 21; +pub const EINVAL: c_int = 22; +pub const ENFILE: c_int = 23; +pub const EMFILE: c_int = 24; +pub const ENOTTY: c_int = 25; +pub const ETXTBSY: c_int = 26; +pub const EFBIG: c_int = 27; +pub const ENOSPC: c_int = 28; +pub const ESPIPE: c_int = 29; +pub const EROFS: c_int = 30; +pub const EMLINK: c_int = 31; +pub const EPIPE: c_int = 32; +pub const EDOM: c_int = 33; +pub const ERANGE: c_int = 34; +pub const ENOMSG: c_int = 35; +pub const EIDRM: c_int = 36; +pub const ECHRNG: c_int = 37; +pub const EL2NSYNC: c_int = 38; +pub const EL3HLT: c_int = 39; +pub const EL3RST: c_int = 40; +pub const ELNRNG: c_int = 41; +pub const EUNATCH: c_int = 42; +pub const ENOCSI: c_int = 43; +pub const EL2HLT: c_int = 44; +pub const EDEADLK: c_int = 45; +pub const ENOLCK: c_int = 46; +pub const EBADE: c_int = 50; +pub const EBADR: c_int = 51; +pub const EXFULL: c_int = 52; +pub const ENOANO: c_int = 53; +pub const EBADRQC: c_int = 54; +pub const EBADSLT: c_int = 55; +pub const EDEADLOCK: c_int = 56; +pub const EBFONT: c_int = 57; +pub const ENOSTR: c_int = 60; +pub const ENODATA: c_int = 61; +pub const ETIME: c_int = 62; +pub const ENOSR: c_int = 63; +pub const ENONET: c_int = 64; +pub const ENOPKG: c_int = 65; +pub const EREMOTE: c_int = 66; +pub const ENOLINK: c_int = 67; +pub const EADV: c_int = 68; +pub const ESRMNT: c_int = 69; +pub const ECOMM: c_int = 70; +pub const EPROTO: c_int = 71; +pub const EMULTIHOP: c_int = 74; +pub const EDOTDOT: c_int = 76; +pub const EBADMSG: c_int = 77; +pub const EFTYPE: c_int = 79; +pub const ENOTUNIQ: c_int = 80; +pub const EBADFD: c_int = 81; +pub const EREMCHG: c_int = 82; +pub const ELIBACC: c_int = 83; +pub const ELIBBAD: c_int = 84; +pub const ELIBSCN: c_int = 85; +pub const ELIBMAX: c_int = 86; +pub const ELIBEXEC: c_int = 87; +pub const ENOSYS: c_int = 88; +pub const ENOTEMPTY: c_int = 90; +pub const ENAMETOOLONG: c_int = 91; +pub const ELOOP: c_int = 92; +pub const EOPNOTSUPP: c_int = 95; +pub const EPFNOSUPPORT: c_int = 96; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EAFNOSUPPORT: c_int = 106; +pub const EPROTOTYPE: c_int = 107; +pub const ENOTSOCK: c_int = 108; +pub const ENOPROTOOPT: c_int = 109; +pub const ESHUTDOWN: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EADDRINUSE: c_int = 112; +pub const ECONNABORTED: c_int = 113; +pub const ENETUNREACH: c_int = 114; +pub const ENETDOWN: c_int = 115; +pub const ETIMEDOUT: c_int = 116; +pub const EHOSTDOWN: c_int = 117; +pub const EHOSTUNREACH: c_int = 118; +pub const EINPROGRESS: c_int = 119; +pub const EALREADY: c_int = 120; +pub const EDESTADDRREQ: c_int = 121; +pub const EMSGSIZE: c_int = 122; +pub const EPROTONOSUPPORT: c_int = 123; +pub const ESOCKTNOSUPPORT: c_int = 124; +pub const EADDRNOTAVAIL: c_int = 125; +pub const ENETRESET: c_int = 126; +pub const EISCONN: c_int = 127; +pub const ENOTCONN: c_int = 128; +pub const ETOOMANYREFS: c_int = 129; +pub const EPROCLIM: c_int = 130; +pub const EUSERS: c_int = 131; +pub const EDQUOT: c_int = 132; +pub const ESTALE: c_int = 133; +pub const ENOTSUP: c_int = 134; +pub const ENOMEDIUM: c_int = 135; +pub const EILSEQ: c_int = 138; +pub const EOVERFLOW: c_int = 139; +pub const ECANCELED: c_int = 140; +pub const ENOTRECOVERABLE: c_int = 141; +pub const EOWNERDEAD: c_int = 142; +pub const ESTRPIPE: c_int = 143; +pub const EWOULDBLOCK: c_int = EAGAIN; /* Operation would block */ + +pub const SCHED_OTHER: c_int = 3; +pub const SCHED_FIFO: c_int = 1; +pub const SCHED_RR: c_int = 2; + +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 21 as *mut _; +pub const PTHREAD_CREATE_DETACHED: c_int = 1; +pub const PTHREAD_CREATE_JOINABLE: c_int = 0; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 0; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 1; +pub const PTHREAD_MUTEX_NORMAL: c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_NORMAL; +pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: pthread_mutex_t = 18 as *mut _; +pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: pthread_mutex_t = 20 as *mut _; +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 19 as *mut _; +pub const PTHREAD_PROCESS_SHARED: c_int = 1; +pub const PTHREAD_PROCESS_PRIVATE: c_int = 0; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 22 as *mut _; + +pub const LITTLE_ENDIAN: c_int = 1234; +pub const BIG_ENDIAN: c_int = 4321; + +pub const TCP_NODELAY: c_int = 1; +pub const TCP_KEEPIDLE: c_int = 3; +pub const TCP_MAXSEG: c_int = 4; +pub const TCP_QUICKACK: c_int = 12; +pub const TCP_USER_TIMEOUT: c_int = 14; +pub const TCP_FASTOPEN: c_int = 15; +pub const TCP_KEEPCNT: c_int = 16; +pub const TCP_KEEPINTVL: c_int = 17; + +pub const WINDOWS_POST: c_int = 0; +pub const WINDOWS_SEND: c_int = 1; +pub const WINDOWS_HWND: c_int = 2; + +pub const MOUNT_TEXT: c_uint = 0x01; +pub const MOUNT_SYSTEM: c_uint = 0x08; +pub const MOUNT_EXEC: c_uint = 0x10; +pub const MOUNT_CYGDRIVE: c_uint = 0x20; +pub const MOUNT_CYGWIN_EXEC: c_uint = 0x40; +pub const MOUNT_SPARSE: c_uint = 0x80; +pub const MOUNT_NOTEXEC: c_uint = 0x100; +pub const MOUNT_DEVFS: c_uint = 0x200; +pub const MOUNT_PROC: c_uint = 0x400; +pub const MOUNT_RO: c_uint = 0x1000; +pub const MOUNT_NOACL: c_uint = 0x2000; +pub const MOUNT_NOPOSIX: c_uint = 0x4000; +pub const MOUNT_OVERRIDE: c_uint = 0x8000; +pub const MOUNT_IMMUTABLE: c_uint = 0x10000; +pub const MOUNT_AUTOMATIC: c_uint = 0x20000; +pub const MOUNT_DOS: c_uint = 0x40000; +pub const MOUNT_IHASH: c_uint = 0x80000; +pub const MOUNT_BIND: c_uint = 0x100000; +pub const MOUNT_USER_TEMP: c_uint = 0x200000; +pub const MOUNT_DONT_USE: c_uint = 0x80000000; + +pub const _POSIX_VDISABLE: cc_t = 0; + +pub const GRND_NONBLOCK: c_uint = 0x1; +pub const GRND_RANDOM: c_uint = 0x2; + +pub const _IONBF: c_int = 2; +pub const BUFSIZ: c_int = 1024; + +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; + +f! { + pub fn FD_CLR(fd: c_int, set: *mut fd_set) { + let fd = fd as usize; + let size = core::mem::size_of_val(&(*set).fds_bits[0]) * 8; + (*set).fds_bits[fd / size] &= !(1 << (fd % size)); + } + + pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { + let fd = fd as usize; + let size = core::mem::size_of_val(&(*set).fds_bits[0]) * 8; + ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 + } + + pub fn FD_SET(fd: c_int, set: *mut fd_set) { + let fd = fd as usize; + let size = core::mem::size_of_val(&(*set).fds_bits[0]) * 8; + (*set).fds_bits[fd / size] |= 1 << (fd % size); + } + + pub fn FD_ZERO(set: *mut fd_set) { + for slot in (*set).fds_bits.iter_mut() { + *slot = 0; + } + } + + pub fn CPU_ALLOC_SIZE(count: c_int) -> size_t { + let _dummy: cpu_set_t = cpu_set_t { bits: [0; 16] }; + let size_in_bits = 8 * core::mem::size_of_val(&_dummy.bits[0]); + ((count as size_t + size_in_bits - 1) / 8) as size_t + } + + pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int { + let mut s: u32 = 0; + let size_of_mask = core::mem::size_of_val(&cpuset.bits[0]); + for i in cpuset.bits[..(size / size_of_mask)].iter() { + s += i.count_ones(); + } + s as c_int + } + + pub fn CPU_ZERO(cpuset: &mut cpu_set_t) { + for slot in cpuset.bits.iter_mut() { + *slot = 0; + } + } + pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) { + let size_in_bits = 8 * core::mem::size_of_val(&cpuset.bits[0]); + if cpu < size_in_bits { + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + cpuset.bits[idx] |= 1 << offset; + } + } + + pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) { + let size_in_bits = 8 * core::mem::size_of_val(&cpuset.bits[0]); + if cpu < size_in_bits { + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + cpuset.bits[idx] &= !(1 << offset); + } + } + + pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { + let size_in_bits = 8 * core::mem::size_of_val(&cpuset.bits[0]); + if cpu < size_in_bits { + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + 0 != (cpuset.bits[idx] & (1 << offset)) + } else { + false + } + } + + pub fn CPU_COUNT(cpuset: &cpu_set_t) -> c_int { + CPU_COUNT_S(::core::mem::size_of::(), cpuset) + } + + pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { + set1.bits == set2.bits + } + + pub fn major(dev: dev_t) -> c_uint { + ((dev >> 16) & 0xffff) as c_uint + } + + pub fn minor(dev: dev_t) -> c_uint { + (dev & 0xffff) as c_uint + } + + pub fn CMSG_LEN(length: c_uint) -> c_uint { + CMSG_ALIGN(::core::mem::size_of::()) as c_uint + length + } + + pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::core::mem::size_of::())) as c_uint + } + + pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { + if (*mhdr).msg_controllen as usize >= core::mem::size_of::() { + (*mhdr).msg_control.cast() + } else { + core::ptr::null_mut() + } + } + + pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { + let next = (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; + let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; + if next as usize + CMSG_ALIGN(::core::mem::size_of::()) as usize > max { + core::ptr::null_mut() + } else { + next + } + } + + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { + cmsg.offset(1).cast_mut() + } +} + +safe_f! { + pub {const} fn makedev(ma: c_uint, mi: c_uint) -> dev_t { + let ma = ma as dev_t; + let mi = mi as dev_t; + (ma << 16) | (mi & 0xffff) + } + + pub {const} fn WIFEXITED(status: c_int) -> bool { + (status & 0xff) == 0 + } + + pub {const} fn WIFSIGNALED(status: c_int) -> bool { + (status & 0o177) != 0o177 && (status & 0o177) != 0 + } + + pub {const} fn WIFSTOPPED(status: c_int) -> bool { + (status & 0xff) == 0o177 + } + + pub {const} fn WIFCONTINUED(status: c_int) -> bool { + (status & 0o177777) == 0o177777 + } + + pub {const} fn WEXITSTATUS(status: c_int) -> c_int { + (status >> 8) & 0xff + } + + pub {const} fn WTERMSIG(status: c_int) -> c_int { + status & 0o177 + } + + pub {const} fn WSTOPSIG(status: c_int) -> c_int { + (status >> 8) & 0xff + } + + pub {const} fn WCOREDUMP(status: c_int) -> bool { + WIFSIGNALED(status) && (status & 0x80) != 0 + } +} + +const_fn! { + {const} fn CMSG_ALIGN(len: usize) -> usize { + len + core::mem::size_of::() - 1 & !(::core::mem::size_of::() - 1) + } +} + +extern "C" { + pub fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> c_int; + + pub fn pthread_sigmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; + pub fn sigsuspend(mask: *const sigset_t) -> c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> c_int; + pub fn pthread_kill(thread: pthread_t, sig: c_int) -> c_int; + + pub fn sigtimedwait( + set: *const sigset_t, + info: *mut siginfo_t, + timeout: *const timespec, + ) -> c_int; + + pub fn strftime(s: *mut c_char, max: size_t, format: *const c_char, tm: *const tm) -> size_t; + + pub fn asctime_r(tm: *const tm, buf: *mut c_char) -> *mut c_char; + pub fn ctime_r(timep: *const time_t, buf: *mut c_char) -> *mut c_char; + pub fn strptime(s: *const c_char, format: *const c_char, tm: *mut tm) -> *mut c_char; + pub fn clock_settime(clk_id: clockid_t, tp: *const timespec) -> c_int; + pub fn clock_gettime(clk_id: clockid_t, tp: *mut timespec) -> c_int; + pub fn clock_getres(clk_id: clockid_t, tp: *mut timespec) -> c_int; + + pub fn timer_create(clockid: clockid_t, sevp: *mut sigevent, timerid: *mut timer_t) -> c_int; + + pub fn timer_delete(timerid: timer_t) -> c_int; + + pub fn timer_settime( + timerid: timer_t, + flags: c_int, + new_value: *const itimerspec, + old_value: *mut itimerspec, + ) -> c_int; + + pub fn timer_gettime(timerid: timer_t, curr_value: *mut itimerspec) -> c_int; + pub fn timer_getoverrun(timerid: timer_t) -> c_int; + + pub fn clock_nanosleep( + clk_id: clockid_t, + flags: c_int, + rqtp: *const timespec, + rmtp: *mut timespec, + ) -> c_int; + + pub fn clock_getcpuclockid(pid: pid_t, clk_id: *mut clockid_t) -> c_int; + + pub fn futimes(fd: c_int, times: *const timeval) -> c_int; + pub fn lutimes(file: *const c_char, times: *const timeval) -> c_int; + pub fn settimeofday(tv: *const timeval, tz: *const timezone) -> c_int; + pub fn getitimer(which: c_int, curr_value: *mut itimerval) -> c_int; + + pub fn setitimer(which: c_int, new_value: *const itimerval, old_value: *mut itimerval) + -> c_int; + + pub fn gettimeofday(tp: *mut timeval, tz: *mut c_void) -> c_int; + pub fn futimesat(fd: c_int, path: *const c_char, times: *const timeval) -> c_int; + + pub fn getrlimit(resource: c_int, rlim: *mut rlimit) -> c_int; + pub fn setrlimit(resource: c_int, rlim: *const rlimit) -> c_int; + pub fn getpriority(which: c_int, who: id_t) -> c_int; + pub fn setpriority(which: c_int, who: id_t, prio: c_int) -> c_int; + + pub fn getpwnam_r( + name: *const c_char, + pwd: *mut passwd, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut passwd, + ) -> c_int; + + pub fn getpwuid_r( + uid: uid_t, + pwd: *mut passwd, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut passwd, + ) -> c_int; + + pub fn getpwent() -> *mut passwd; + pub fn setpwent(); + pub fn endpwent(); + + pub fn if_nameindex() -> *mut if_nameindex; + pub fn if_freenameindex(ptr: *mut if_nameindex); + + pub fn readv(fd: c_int, iov: *const iovec, iovcnt: c_int) -> ssize_t; + pub fn writev(fd: c_int, iov: *const iovec, iovcnt: c_int) -> ssize_t; + + 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 utimensat( + dirfd: c_int, + path: *const c_char, + times: *const timespec, + flag: c_int, + ) -> c_int; + + pub fn futimens(fd: c_int, times: *const timespec) -> c_int; + + pub fn dlfork(val: c_int); + + pub fn accept4(s: c_int, addr: *mut sockaddr, addrlen: *mut socklen_t, flags: c_int) -> c_int; + + pub fn bind(socket: c_int, address: *const sockaddr, address_len: socklen_t) -> c_int; + + pub fn recvfrom( + socket: c_int, + buf: *mut c_void, + len: size_t, + flags: c_int, + addr: *mut sockaddr, + addrlen: *mut socklen_t, + ) -> ssize_t; + + pub fn recvmsg(fd: c_int, msg: *mut msghdr, flags: c_int) -> ssize_t; + pub fn sendmsg(fd: c_int, msg: *const msghdr, flags: c_int) -> ssize_t; + + pub fn getnameinfo( + sa: *const sockaddr, + salen: socklen_t, + host: *mut c_char, + hostlen: socklen_t, + serv: *mut c_char, + sevlen: socklen_t, + flags: c_int, + ) -> c_int; + + pub fn ppoll( + fds: *mut pollfd, + nfds: nfds_t, + timeout: *const timespec, + sigmask: *const sigset_t, + ) -> c_int; + + pub fn newlocale(mask: c_int, locale: *const c_char, base: locale_t) -> locale_t; + pub fn freelocale(loc: locale_t); + pub fn duplocale(base: locale_t) -> locale_t; + pub fn uselocale(loc: locale_t) -> locale_t; + + pub fn sem_init(sem: *mut sem_t, pshared: c_int, value: c_uint) -> c_int; + pub fn sem_destroy(sem: *mut sem_t) -> c_int; + pub fn sem_open(name: *const c_char, oflag: c_int, ...) -> *mut sem_t; + pub fn sem_close(sem: *mut sem_t) -> c_int; + pub fn sem_unlink(name: *const c_char) -> c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const timespec) -> c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int; + + pub fn clearenv() -> c_int; + pub fn ptsname_r(fd: c_int, buf: *mut c_char, buflen: size_t) -> c_int; + pub fn getpt() -> c_int; + pub fn memalign(align: size_t, size: size_t) -> *mut c_void; + pub fn getloadavg(loadavg: *mut c_double, nelem: c_int) -> c_int; + + pub fn abs(i: c_int) -> c_int; + pub fn arc4random() -> u32; + pub fn arc4random_uniform(l: u32) -> u32; + pub fn arc4random_buf(buf: *mut c_void, size: size_t); + pub fn labs(i: c_long) -> c_long; + pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int; + pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int; + pub fn mkstemps(template: *mut c_char, suffixlen: c_int) -> c_int; + pub fn rand() -> c_int; + pub fn reallocarray(ptr: *mut c_void, nmemb: size_t, size: size_t) -> *mut c_void; + pub fn reallocf(ptr: *mut c_void, size: size_t) -> *mut c_void; + pub fn srand(seed: c_uint); + pub fn drand48() -> c_double; + pub fn erand48(xseed: *mut c_ushort) -> c_double; + pub fn jrand48(xseed: *mut c_ushort) -> c_long; + pub fn lcong48(p: *mut c_ushort); + pub fn lrand48() -> c_long; + pub fn mrand48() -> c_long; + pub fn nrand48(xseed: *mut c_ushort) -> c_long; + pub fn seed48(xseed: *mut c_ushort) -> *mut c_ushort; + pub fn srand48(seed: c_long); + + pub fn qsort_r( + base: *mut c_void, + num: size_t, + size: size_t, + compar: Option c_int>, + arg: *mut c_void, + ); + + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; + pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; + pub fn posix_madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; + pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; + pub fn shm_unlink(name: *const c_char) -> c_int; + + pub fn explicit_bzero(s: *mut c_void, len: size_t); + pub fn ffs(value: c_int) -> c_int; + pub fn ffsl(value: c_long) -> c_int; + pub fn ffsll(value: c_longlong) -> c_int; + pub fn fls(value: c_int) -> c_int; + pub fn flsl(value: c_long) -> c_int; + pub fn flsll(value: c_longlong) -> c_int; + pub fn strcasecmp_l(s1: *const c_char, s2: *const c_char, loc: locale_t) -> c_int; + + pub fn strncasecmp_l(s1: *const c_char, s2: *const c_char, n: size_t, loc: locale_t) -> c_int; + + 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 memccpy(dest: *mut c_void, src: *const c_void, c: c_int, count: size_t) -> *mut c_void; + + pub fn memmem( + haystack: *const c_void, + haystacklen: size_t, + needle: *const c_void, + needlelen: size_t, + ) -> *mut c_void; + + pub fn memrchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; + pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; + pub fn strsep(string: *mut *mut c_char, delim: *const c_char) -> *mut c_char; + + #[link_name = "__gnu_basename"] + pub fn basename(path: *const c_char) -> *mut c_char; + + pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; + pub fn dup3(src: c_int, dst: c_int, flags: c_int) -> c_int; + pub fn eaccess(pathname: *const c_char, mode: c_int) -> c_int; + pub fn euidaccess(pathname: *const c_char, mode: c_int) -> c_int; + // pub fn execlpe(path: *const c_char, arg0: *const c_char, ...) -> c_int; + + pub fn execvpe( + file: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + ) -> c_int; + + pub fn faccessat(dirfd: c_int, pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; + + pub fn fexecve(fd: c_int, argv: *const *const c_char, envp: *const *const c_char) -> c_int; + + pub fn fdatasync(fd: c_int) -> c_int; + pub fn getdomainname(name: *mut c_char, len: size_t) -> c_int; + pub fn getentropy(buf: *mut c_void, buflen: size_t) -> c_int; + pub fn gethostid() -> c_long; + pub fn getpagesize() -> c_int; + pub fn getpeereid(socket: c_int, euid: *mut uid_t, egid: *mut gid_t) -> c_int; + + pub fn pthread_atfork( + prepare: Option, + parent: Option, + child: Option, + ) -> c_int; + + pub fn pipe2(fds: *mut c_int, flags: c_int) -> c_int; + pub fn sbrk(increment: intptr_t) -> *mut c_void; + pub fn setgroups(ngroups: c_int, ptr: *const gid_t) -> c_int; + pub fn sethostname(name: *const c_char, len: size_t) -> c_int; + pub fn vhangup() -> c_int; + pub fn getdtablesize() -> c_int; + pub fn sync(); + + pub fn __errno() -> *mut c_int; + + pub fn sched_setparam(pid: pid_t, param: *const sched_param) -> c_int; + pub fn sched_getparam(pid: pid_t, param: *mut sched_param) -> c_int; + + pub fn sched_setscheduler(pid: pid_t, policy: c_int, param: *const sched_param) -> c_int; + + pub fn sched_getscheduler(pid: pid_t) -> c_int; + pub fn sched_get_priority_max(policy: c_int) -> c_int; + pub fn sched_get_priority_min(policy: c_int) -> c_int; + pub fn sched_rr_get_interval(pid: pid_t, t: *mut timespec) -> c_int; + pub fn sched_getcpu() -> c_int; + pub fn sched_getaffinity(pid: pid_t, cpusetsize: size_t, mask: *mut cpu_set_t) -> c_int; + + pub fn sched_setaffinity(pid: pid_t, cpusetsize: size_t, cpuset: *const cpu_set_t) -> c_int; + + pub fn pthread_attr_getguardsize(attr: *const pthread_attr_t, guardsize: *mut size_t) -> c_int; + + pub fn pthread_attr_getschedparam( + attr: *const pthread_attr_t, + param: *mut sched_param, + ) -> c_int; + + pub fn pthread_attr_setschedparam( + attr: *mut pthread_attr_t, + param: *const sched_param, + ) -> c_int; + + pub fn pthread_attr_getstack( + attr: *const pthread_attr_t, + stackaddr: *mut *mut c_void, + stacksize: *mut size_t, + ) -> c_int; + + pub fn pthread_cancel(thread: pthread_t) -> c_int; + + pub fn pthread_condattr_getclock( + attr: *const pthread_condattr_t, + clock_id: *mut clockid_t, + ) -> c_int; + + pub fn pthread_condattr_getpshared( + attr: *const pthread_condattr_t, + pshared: *mut c_int, + ) -> c_int; + + pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, clock_id: clockid_t) -> c_int; + + pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: c_int) -> c_int; + pub fn pthread_barrierattr_init(attr: *mut pthread_barrierattr_t) -> c_int; + + pub fn pthread_barrierattr_setpshared(attr: *mut pthread_barrierattr_t, shared: c_int) + -> c_int; + + pub fn pthread_barrierattr_getpshared( + attr: *const pthread_barrierattr_t, + shared: *mut c_int, + ) -> c_int; + + pub fn pthread_barrierattr_destroy(attr: *mut pthread_barrierattr_t) -> c_int; + + pub fn pthread_barrier_init( + barrier: *mut pthread_barrier_t, + attr: *const pthread_barrierattr_t, + count: c_uint, + ) -> c_int; + + pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> c_int; + pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> c_int; + + pub fn pthread_create( + native: *mut pthread_t, + attr: *const pthread_attr_t, + f: extern "C" fn(*mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; + + pub fn pthread_getcpuclockid(thread: pthread_t, clk_id: *mut clockid_t) -> c_int; + + pub fn pthread_getschedparam( + native: pthread_t, + policy: *mut c_int, + param: *mut sched_param, + ) -> c_int; + + pub fn pthread_mutex_timedlock(lock: *mut pthread_mutex_t, abstime: *const timespec) -> c_int; + + pub fn pthread_mutexattr_getprotocol( + attr: *const pthread_mutexattr_t, + protocol: *mut c_int, + ) -> c_int; + + pub fn pthread_mutexattr_getpshared( + attr: *const pthread_mutexattr_t, + pshared: *mut c_int, + ) -> c_int; + + pub fn pthread_mutexattr_setprotocol(attr: *mut pthread_mutexattr_t, protocol: c_int) -> c_int; + + pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, pshared: c_int) -> c_int; + + pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> c_int; + pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: c_int) -> c_int; + pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> c_int; + pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> c_int; + pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> c_int; + + pub fn pthread_rwlockattr_getpshared( + attr: *const pthread_rwlockattr_t, + val: *mut c_int, + ) -> c_int; + + pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: c_int) -> c_int; + + pub fn pthread_setschedparam( + native: pthread_t, + policy: c_int, + param: *const sched_param, + ) -> c_int; + + pub fn pthread_setschedprio(native: pthread_t, priority: c_int) -> c_int; + + pub fn pthread_getaffinity_np( + thread: pthread_t, + cpusetsize: size_t, + cpuset: *mut cpu_set_t, + ) -> c_int; + + pub fn pthread_getattr_np(native: pthread_t, attr: *mut pthread_attr_t) -> c_int; + pub fn pthread_getname_np(thread: pthread_t, name: *mut c_char, len: size_t) -> c_int; + + pub fn pthread_setaffinity_np( + thread: pthread_t, + cpusetsize: size_t, + cpuset: *const cpu_set_t, + ) -> c_int; + + pub fn pthread_setname_np(thread: pthread_t, name: *const c_char) -> c_int; + pub fn pthread_sigqueue(thread: *mut pthread_t, sig: c_int, value: sigval) -> c_int; + + pub fn ioctl(fd: c_int, request: c_int, ...) -> c_int; + + pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; + + pub fn mount(src: *const c_char, target: *const c_char, flags: c_uint) -> c_int; + + pub fn umount(target: *const c_char) -> c_int; + pub fn cygwin_umount(target: *const c_char, flags: c_uint) -> c_int; + + pub fn dirfd(dirp: *mut DIR) -> c_int; + pub fn seekdir(dirp: *mut DIR, loc: c_long); + pub fn telldir(dirp: *mut DIR) -> c_long; + + pub fn uname(buf: *mut utsname) -> 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; +} diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 1e70238d19824..b2de87ebf8477 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -135,6 +135,7 @@ s! { pub ipv6mr_interface: c_uint, } + #[cfg(not(target_os = "cygwin"))] pub struct hostent { pub h_name: *mut c_char, pub h_aliases: *mut *mut c_char, @@ -161,6 +162,7 @@ s! { pub ws_ypixel: c_ushort, } + #[cfg(not(target_os = "cygwin"))] pub struct linger { pub l_onoff: c_int, pub l_linger: c_int, @@ -188,6 +190,9 @@ s! { pub struct servent { pub s_name: *mut c_char, pub s_aliases: *mut *mut c_char, + #[cfg(target_os = "cygwin")] + pub s_port: c_short, + #[cfg(not(target_os = "cygwin"))] pub s_port: c_int, pub s_proto: *mut c_char, } @@ -195,7 +200,10 @@ s! { pub struct protoent { pub p_name: *mut c_char, pub p_aliases: *mut *mut c_char, + #[cfg(not(target_os = "cygwin"))] pub p_proto: c_int, + #[cfg(target_os = "cygwin")] + pub p_proto: c_short, } #[repr(align(4))] @@ -245,7 +253,8 @@ cfg_if! { if #[cfg(not(any( target_os = "haiku", target_os = "illumos", - target_os = "solaris" + target_os = "solaris", + target_os = "cygwin" )))] { pub const IF_NAMESIZE: size_t = 16; pub const IFNAMSIZ: size_t = IF_NAMESIZE; @@ -370,8 +379,13 @@ cfg_if! { // cargo build, don't pull in anything extra as the std dep // already pulls in all libs. } else if #[cfg(all( - target_os = "linux", - any(target_env = "gnu", target_env = "uclibc"), + any( + all( + target_os = "linux", + any(target_env = "gnu", target_env = "uclibc") + ), + target_os = "cygwin" + ), feature = "rustc-dep-of-std" ))] { #[link( @@ -1301,6 +1315,7 @@ extern "C" { not(any(target_env = "musl", target_env = "ohos")) ), target_os = "freebsd", + target_os = "cygwin", target_os = "dragonfly", target_os = "haiku" ), @@ -1370,10 +1385,13 @@ extern "C" { pub fn getprotobyname(name: *const c_char) -> *mut protoent; pub fn getprotobynumber(proto: c_int) -> *mut protoent; pub fn chroot(name: *const c_char) -> c_int; + #[cfg(target_os = "cygwin")] + pub fn usleep(secs: useconds_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "usleep$UNIX2003" )] + #[cfg(not(target_os = "cygwin"))] pub fn usleep(secs: c_uint) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), @@ -1517,7 +1535,8 @@ cfg_if! { target_os = "android", target_os = "haiku", target_os = "nto", - target_os = "solaris" + target_os = "solaris", + target_os = "cygwin" )))] { extern "C" { pub fn adjtime(delta: *const timeval, olddelta: *mut timeval) -> c_int; @@ -1734,6 +1753,9 @@ cfg_if! { } else if #[cfg(target_os = "redox")] { mod redox; pub use self::redox::*; + } else if #[cfg(target_os = "cygwin")] { + mod cygwin; + pub use self::cygwin::*; } else if #[cfg(target_os = "nto")] { mod nto; pub use self::nto::*; From 7472faa623c7715913060059d11f996c82ae136c Mon Sep 17 00:00:00 2001 From: Sean Cross Date: Fri, 7 Mar 2025 10:13:22 +0800 Subject: [PATCH 0526/1228] xous: include prelude to define c_int With the latest changes, libstd no longer builds: ``` Compiling libc v0.2.170 (/opt/Xous/libc) error[E0412]: cannot find type `c_int` in this scope --> /opt/Xous/libc/src/xous.rs:17:20 | 17 | pub const INT_MIN: c_int = -2147483648; | ^^^^^ not found in this scope | help: consider importing one of these type aliases | 5 + use crate::c_int; | 5 + use rustc_std_workspace_core::ffi::c_int; | error[E0412]: cannot find type `c_int` in this scope --> /opt/Xous/libc/src/xous.rs:18:20 | 18 | pub const INT_MAX: c_int = 2147483647; | ^^^^^ not found in this scope | help: consider importing one of these type aliases | 5 + use crate::c_int; | 5 + use rustc_std_workspace_core::ffi::c_int; | For more information about this error, try `rustc --explain E0412`. error: could not compile `libc` (lib) due to 2 previous errors ``` Include the prelude to define `c_int` and fix the build on rust `main`. Signed-off-by: Sean Cross (backport ) (cherry picked from commit fd66a07318b5aa055a552ca6572f41ca23994d6b) --- src/xous.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/xous.rs b/src/xous.rs index 35350a723c8e9..2415fd42824e1 100644 --- a/src/xous.rs +++ b/src/xous.rs @@ -1,5 +1,7 @@ //! Xous C type definitions +use crate::prelude::*; + pub type intmax_t = i64; pub type uintmax_t = u64; From 46b1b3dfae630152b3d8adf2d2b49bd3c0f49492 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AE=87=E9=80=B8?= Date: Fri, 7 Mar 2025 20:43:07 +0800 Subject: [PATCH 0527/1228] Cygwin: Fix usage of f! (backport ) [ update message to mention Cygwin - Trevor ] (cherry picked from commit cd4be97305fc0e8f4a355a8cd6f816c3c7ca5f63) --- src/unix/cygwin/mod.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index d1ea06a7900cf..9417763b54e3c 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -1787,7 +1787,7 @@ pub const POSIX_SPAWN_SETSIGDEF: c_int = 0x10; pub const POSIX_SPAWN_SETSIGMASK: c_int = 0x20; f! { - pub fn FD_CLR(fd: c_int, set: *mut fd_set) { + pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; let size = core::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); @@ -1799,13 +1799,13 @@ f! { ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 } - pub fn FD_SET(fd: c_int, set: *mut fd_set) { + pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; let size = core::mem::size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); } - pub fn FD_ZERO(set: *mut fd_set) { + pub fn FD_ZERO(set: *mut fd_set) -> () { for slot in (*set).fds_bits.iter_mut() { *slot = 0; } @@ -1826,12 +1826,12 @@ f! { s as c_int } - pub fn CPU_ZERO(cpuset: &mut cpu_set_t) { + pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { for slot in cpuset.bits.iter_mut() { *slot = 0; } } - pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) { + pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { let size_in_bits = 8 * core::mem::size_of_val(&cpuset.bits[0]); if cpu < size_in_bits { let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); @@ -1839,7 +1839,7 @@ f! { } } - pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) { + pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { let size_in_bits = 8 * core::mem::size_of_val(&cpuset.bits[0]); if cpu < size_in_bits { let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); @@ -1900,7 +1900,7 @@ f! { } pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - cmsg.offset(1).cast_mut() + cmsg.offset(1).cast_mut().cast() } } From d0cdbb13a4ec561806730bd4acf00b608c91a929 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AE=87=E9=80=B8?= Date: Sat, 8 Mar 2025 00:05:57 +0800 Subject: [PATCH 0528/1228] Cygwin: Fix strerror_r (backport ) [ update message to mention Cygwin - Trevor ] (cherry picked from commit e5f9b4eddc105b5e7b57d69e7fd328897ee2c77a) --- src/unix/cygwin/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 9417763b54e3c..b9e5d7e3aa517 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -2167,6 +2167,7 @@ extern "C" { ) -> *mut c_void; pub fn memrchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; + #[link_name = "__xpg_strerror_r"] pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; pub fn strsep(string: *mut *mut c_char, delim: *const c_char) -> *mut c_char; From 5726b3cde245a1917e47d446d9d7243f18472e08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AE=87=E9=80=B8?= Date: Sat, 8 Mar 2025 23:31:41 +0800 Subject: [PATCH 0529/1228] Cygwin: Add PTY and group API * `forkpty` & `openpty`: for nix::pty * `getgrgid_r`, `getgrouplist`, getgrnam_r`, `initgroups`: for `user` feature of `nix::unistd` (backport ) [ update message to mention Cygwin - Trevor ] (cherry picked from commit 3dd709264d2777caf11f62b906febd0103e0dd81) --- src/unix/cygwin/mod.rs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index b9e5d7e3aa517..4bfdde336ac9b 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -2436,4 +2436,40 @@ extern "C" { fd: c_int, newfd: c_int, ) -> c_int; + + pub fn forkpty( + amaster: *mut c_int, + name: *mut c_char, + termp: *const termios, + winp: *const crate::winsize, + ) -> crate::pid_t; + pub fn openpty( + amaster: *mut c_int, + aslave: *mut c_int, + name: *mut c_char, + termp: *const termios, + winp: *const crate::winsize, + ) -> c_int; + + pub fn getgrgid_r( + gid: crate::gid_t, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn getgrouplist( + user: *const c_char, + group: crate::gid_t, + groups: *mut crate::gid_t, + ngroups: *mut c_int, + ) -> c_int; + pub fn getgrnam_r( + name: *const c_char, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn initgroups(user: *const c_char, group: crate::gid_t) -> c_int; } From 10af5a66966396b196f3027880f85046acd4809c Mon Sep 17 00:00:00 2001 From: Pedro Tammela Date: Mon, 10 Mar 2025 16:54:44 -0300 Subject: [PATCH 0530/1228] ci: s390x: fix 'cannot find libc' error Signed-off-by: Pedro Tammela (backport ) (cherry picked from commit 4776e0fc35d7b3389d36698158489f69379422cc) --- ci/linux-s390x.sh | 4 ++-- ci/run.sh | 1 - src/unix/linux_like/linux/gnu/b64/mod.rs | 6 ++++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/ci/linux-s390x.sh b/ci/linux-s390x.sh index 5c89e90b11906..ddba4c48c0d82 100755 --- a/ci/linux-s390x.sh +++ b/ci/linux-s390x.sh @@ -6,8 +6,8 @@ mkdir -m 777 /qemu cd /qemu 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 +curl --retry 5 -LO http://ftp.debian.org/debian/dists/testing/main/installer-s390x/20241227/images/generic/kernel.debian +curl --retry 5 -LO http://ftp.debian.org/debian/dists/testing/main/installer-s390x/20241227/images/generic/initrd.debian mv kernel.debian kernel mv initrd.debian initrd.gz diff --git a/ci/run.sh b/ci/run.sh index 8889cda5a21e5..c58ae1caa1739 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -87,7 +87,6 @@ test_flags="--skip check_style" case "$target" in # Only run `libc-test` # FIXME(android): unit tests fail to start on Android - # FIXME(s390x): unit tests fail to locate glibc *android*) cmd="$cmd --manifest-path libc-test/Cargo.toml" ;; *s390x*) cmd="$cmd --manifest-path libc-test/Cargo.toml" ;; # For all other platforms, test everything in the workspace diff --git a/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs index 73276679a3d18..9d7608f67f132 100644 --- a/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -77,7 +77,8 @@ s! { target_arch = "mips64r6", target_arch = "powerpc64", target_arch = "riscv64", - target_arch = "sparc64" + target_arch = "sparc64", + target_arch = "s390x", )))] __reserved: crate::__syscall_ulong_t, pub sem_ctime: crate::time_t, @@ -88,7 +89,8 @@ s! { target_arch = "mips64r6", target_arch = "powerpc64", target_arch = "riscv64", - target_arch = "sparc64" + target_arch = "sparc64", + target_arch = "s390x", )))] __reserved2: crate::__syscall_ulong_t, pub sem_nsems: crate::__syscall_ulong_t, From 67352ee823c7a09882b320bdb4f1359e05f29a18 Mon Sep 17 00:00:00 2001 From: Pedro Tammela Date: Mon, 10 Mar 2025 16:55:51 -0300 Subject: [PATCH 0531/1228] ci: sparc64: fix 'cannot find libc' error Signed-off-by: Pedro Tammela (backport ) (cherry picked from commit 1ae6552373ad8f3ee6235b78f3a722dfa9f89bb7) --- ci/docker/sparc64-unknown-linux-gnu/Dockerfile | 9 +-------- ci/linux-sparc64.sh | 8 ++++---- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile index 61b0e798e52c1..645cc3362ab93 100644 --- a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile @@ -1,11 +1,4 @@ -# FIXME(sparc): newer versions of Ubuntu get the following errors -# ``` -# /prog: /lib/sparc64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /prog) -# /prog: /lib/sparc64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by /prog) -# ``` -# Not sure if this is a problem from rustc, our libc, or Ubuntu so we just -# stick with an old LTS for now. -FROM ubuntu:22.04 +FROM ubuntu:24.10 RUN apt-get update && apt-get install -y --no-install-recommends \ curl ca-certificates \ diff --git a/ci/linux-sparc64.sh b/ci/linux-sparc64.sh index d81ed104277a9..b272c42edd9aa 100755 --- a/ci/linux-sparc64.sh +++ b/ci/linux-sparc64.sh @@ -5,11 +5,11 @@ set -eux mkdir -m 777 /qemu cd /qemu -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 +curl --retry 5 -LO https://cdimage.debian.org/cdimage/ports/snapshots/2024-12-24/debian-12.0.0-sparc64-NETINST-1.iso +7z e debian-12.0.0-sparc64-NETINST-1.iso install/initrd.gz +7z e debian-12.0.0-sparc64-NETINST-1.iso install/vmlinux mv vmlinux kernel -rm debian-11.0.0-sparc64-NETINST-1.iso +rm debian-12.0.0-sparc64-NETINST-1.iso mkdir init cd init From ff17476460f85c5b669faa2ecce30147649504a8 Mon Sep 17 00:00:00 2001 From: Luca BRUNO Date: Mon, 10 Mar 2025 16:18:20 +0100 Subject: [PATCH 0532/1228] linux_like: add F_SEAL_EXEC This flag has been introduced in Linux kernel 6.3: https://github.com/torvalds/linux/commit/6fd7353829cafc4067aad9eea0dc95da67e7df16 (backport ) (cherry picked from commit 61c4a0a6597174e1f6f475806e9f2467794c7f98) --- libc-test/build.rs | 4 +++- libc-test/semver/android.txt | 1 + libc-test/semver/linux.txt | 1 + src/unix/linux_like/android/mod.rs | 1 + src/unix/linux_like/linux/mod.rs | 1 + 5 files changed, 7 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 71bc5e553cf5c..289c85179cebd 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4255,7 +4255,9 @@ fn test_linux(target: &str) { | "F_SEAL_SEAL" | "F_SEAL_SHRINK" | "F_SEAL_GROW" - | "F_SEAL_WRITE" => true, + | "F_SEAL_WRITE" + | "F_SEAL_FUTURE_WRITE" + | "F_SEAL_EXEC" => true, // The `ARPHRD_CAN` is tested in the `linux_if_arp.rs` tests // because including `linux/if_arp.h` causes some conflicts: "ARPHRD_CAN" => true, diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index c62b76b39a938..983d0e6d521a2 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -685,6 +685,7 @@ F_OFD_SETLK F_OFD_SETLKW F_OK F_RDLCK +F_SEAL_EXEC F_SEAL_GROW F_SEAL_SEAL F_SEAL_SHRINK diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 88721a2fb4ca0..6990f58bb0f64 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -864,6 +864,7 @@ F_OFD_GETLK F_OFD_SETLK F_OFD_SETLKW F_RDLCK +F_SEAL_EXEC F_SEAL_FUTURE_WRITE F_SEAL_GROW F_SEAL_SEAL diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index ba9527c01ec2c..330438feb4d76 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1305,6 +1305,7 @@ pub const F_TLOCK: c_int = 2; pub const F_ULOCK: c_int = 0; pub const F_SEAL_FUTURE_WRITE: c_int = 0x0010; +pub const F_SEAL_EXEC: c_int = 0x0020; pub const IFF_LOWER_UP: c_int = 0x10000; pub const IFF_DORMANT: c_int = 0x20000; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index b36e0891741fa..b6dd307de7b96 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2770,6 +2770,7 @@ pub const F_TLOCK: c_int = 2; pub const F_ULOCK: c_int = 0; pub const F_SEAL_FUTURE_WRITE: c_int = 0x0010; +pub const F_SEAL_EXEC: c_int = 0x0020; pub const IFF_LOWER_UP: c_int = 0x10000; pub const IFF_DORMANT: c_int = 0x20000; From 85f6836e3bbfbc436d4de658a37f15d0932a9155 Mon Sep 17 00:00:00 2001 From: Pedro Tammela Date: Wed, 5 Mar 2025 16:49:20 -0300 Subject: [PATCH 0533/1228] linux: add socket constants up to SO_DEVMEM_DONTNEED The devmem constants requires headers >= 6.12 on gnu libc. Musl hardcodes these constants into "sys/socket.h", which are not yet present. For reference: https://elixir.bootlin.com/linux/v6.13.5/source/include/uapi/asm-generic/socket.h#L142 Signed-off-by: Pedro Tammela (backport ) (cherry picked from commit ae98eddc738e8abb597eb53acbecace52062c0a9) --- libc-test/build.rs | 27 +++++++++++++++++++ libc-test/semver/linux.txt | 12 +++++++++ src/unix/linux_like/linux/arch/generic/mod.rs | 13 +++++++++ src/unix/linux_like/linux/arch/mips/mod.rs | 13 +++++++++ src/unix/linux_like/linux/arch/powerpc/mod.rs | 13 +++++++++ src/unix/linux_like/linux/arch/sparc/mod.rs | 13 +++++++++ 6 files changed, 91 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 289c85179cebd..a88ad2287ad67 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4237,6 +4237,26 @@ fn test_linux(target: &str) { { return true; } + // FIXME(musl): Not in musl yet + if name == "SO_NETNS_COOKIE" + || name == "SO_BUF_LOCK" + || name == "SO_RESERVE_MEM" + || name == "SO_TXREHASH" + || name == "SO_RCVMARK" + || name == "SO_PASSPIDFD" + || name == "SO_PEERPIDFD" + || name == "SO_DEVMEM_LINEAR" + || name == "SO_DEVMEM_DMABUF" + || name == "SO_DEVMEM_DONTNEED" + { + return true; + } + // FIXME(musl): Not in musl yet + if name == "SCM_DEVMEM_LINEAR" + || name == "SCM_DEVMEM_DMABUF" + { + return true; + } } match name { // These constants are not available if gnu headers have been included @@ -4536,6 +4556,13 @@ fn test_linux(target: &str) { // FIXME(linux): Requires >= 6.12 kernel headers. "SOF_TIMESTAMPING_OPT_RX_FILTER" => true, + // FIXME(linux): Requires >= 6.12 kernel headers. + "SO_DEVMEM_LINEAR" + | "SO_DEVMEM_DMABUF" + | "SO_DEVMEM_DONTNEED" + | "SCM_DEVMEM_LINEAR" + | "SCM_DEVMEM_DMABUF" => true, + _ => false, } }); diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 6990f58bb0f64..8c4b54f3cfaa4 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2648,6 +2648,8 @@ SCHED_OTHER SCHED_RESET_ON_FORK SCHED_RR SCM_CREDENTIALS +SCM_DEVMEM_DMABUF +SCM_DEVMEM_LINEAR SCM_J1939_DEST_ADDR SCM_J1939_DEST_NAME SCM_J1939_ERRQUEUE @@ -2954,8 +2956,12 @@ SOL_X25 SOL_XDP SOMAXCONN SO_BINDTODEVICE +SO_BUF_LOCK SO_BUSY_POLL SO_BUSY_POLL_BUDGET +SO_DEVMEM_DMABUF +SO_DEVMEM_DONTNEED +SO_DEVMEM_LINEAR SO_DOMAIN SO_EE_OFFENDER SO_EE_ORIGIN_ICMP @@ -2969,20 +2975,26 @@ SO_J1939_FILTER SO_J1939_PROMISC SO_J1939_SEND_PRIO SO_MARK +SO_NETNS_COOKIE SO_ORIGINAL_DST SO_PASSCRED +SO_PASSPIDFD SO_PASSSEC SO_PEEK_OFF SO_PEERCRED +SO_PEERPIDFD SO_PEERSEC SO_PREFER_BUSY_POLL SO_RCVBUFFORCE +SO_RCVMARK +SO_RESERVE_MEM SO_REUSEPORT SO_RXQ_OVFL SO_SNDBUFFORCE SO_TIMESTAMP SO_TIMESTAMPING SO_TIMESTAMPNS +SO_TXREHASH SPLICE_F_GIFT SPLICE_F_MORE SPLICE_F_MOVE diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index c515c7495a894..61d2e3fe19180 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -147,6 +147,16 @@ cfg_if! { } pub const SO_PREFER_BUSY_POLL: c_int = 69; pub const SO_BUSY_POLL_BUDGET: c_int = 70; +pub const SO_NETNS_COOKIE: c_int = 71; +pub const SO_BUF_LOCK: c_int = 72; +pub const SO_RESERVE_MEM: c_int = 73; +pub const SO_TXREHASH: c_int = 74; +pub const SO_RCVMARK: c_int = 75; +pub const SO_PASSPIDFD: c_int = 76; +pub const SO_PEERPIDFD: c_int = 77; +pub const SO_DEVMEM_LINEAR: c_int = 78; +pub const SO_DEVMEM_DMABUF: c_int = 79; +pub const SO_DEVMEM_DONTNEED: c_int = 80; cfg_if! { if #[cfg(any( @@ -169,6 +179,9 @@ cfg_if! { pub const SCM_TIMESTAMPNS: c_int = SO_TIMESTAMPNS; pub const SCM_TIMESTAMPING: c_int = SO_TIMESTAMPING; +pub const SCM_DEVMEM_LINEAR: c_int = SO_DEVMEM_LINEAR; +pub const SCM_DEVMEM_DMABUF: c_int = SO_DEVMEM_DMABUF; + // Ioctl Constants pub const TCGETS: Ioctl = 0x5401; diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index 1cff58290ed30..1e12a1097202b 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -120,6 +120,16 @@ cfg_if! { // pub const SO_DETACH_REUSEPORT_BPF: c_int = 68; pub const SO_PREFER_BUSY_POLL: c_int = 69; pub const SO_BUSY_POLL_BUDGET: c_int = 70; +pub const SO_NETNS_COOKIE: c_int = 71; +pub const SO_BUF_LOCK: c_int = 72; +pub const SO_RESERVE_MEM: c_int = 73; +pub const SO_TXREHASH: c_int = 74; +pub const SO_RCVMARK: c_int = 75; +pub const SO_PASSPIDFD: c_int = 76; +pub const SO_PEERPIDFD: c_int = 77; +pub const SO_DEVMEM_LINEAR: c_int = 78; +pub const SO_DEVMEM_DMABUF: c_int = 79; +pub const SO_DEVMEM_DONTNEED: c_int = 80; pub const FICLONE: c_ulong = 0x80049409; pub const FICLONERANGE: c_ulong = 0x8020940D; @@ -129,6 +139,9 @@ pub const FICLONERANGE: c_ulong = 0x8020940D; pub const SCM_TIMESTAMPNS: c_int = SO_TIMESTAMPNS; pub const SCM_TIMESTAMPING: c_int = SO_TIMESTAMPING; +pub const SCM_DEVMEM_LINEAR: c_int = SO_DEVMEM_LINEAR; +pub const SCM_DEVMEM_DMABUF: c_int = SO_DEVMEM_DMABUF; + // Ioctl Constants pub const TCGETS: Ioctl = 0x540d; diff --git a/src/unix/linux_like/linux/arch/powerpc/mod.rs b/src/unix/linux_like/linux/arch/powerpc/mod.rs index f731fe7203fb8..588b99a2d0f22 100644 --- a/src/unix/linux_like/linux/arch/powerpc/mod.rs +++ b/src/unix/linux_like/linux/arch/powerpc/mod.rs @@ -102,6 +102,16 @@ const SO_SNDTIMEO_NEW: c_int = 67; // pub const SO_DETACH_REUSEPORT_BPF: c_int = 68; pub const SO_PREFER_BUSY_POLL: c_int = 69; pub const SO_BUSY_POLL_BUDGET: c_int = 70; +pub const SO_NETNS_COOKIE: c_int = 71; +pub const SO_BUF_LOCK: c_int = 72; +pub const SO_RESERVE_MEM: c_int = 73; +pub const SO_TXREHASH: c_int = 74; +pub const SO_RCVMARK: c_int = 75; +pub const SO_PASSPIDFD: c_int = 76; +pub const SO_PEERPIDFD: c_int = 77; +pub const SO_DEVMEM_LINEAR: c_int = 78; +pub const SO_DEVMEM_DMABUF: c_int = 79; +pub const SO_DEVMEM_DONTNEED: c_int = 80; pub const FICLONE: c_ulong = 0x80049409; pub const FICLONERANGE: c_ulong = 0x8020940D; @@ -111,6 +121,9 @@ pub const FICLONERANGE: c_ulong = 0x8020940D; pub const SCM_TIMESTAMPNS: c_int = SO_TIMESTAMPNS; pub const SCM_TIMESTAMPING: c_int = SO_TIMESTAMPING; +pub const SCM_DEVMEM_LINEAR: c_int = SO_DEVMEM_LINEAR; +pub const SCM_DEVMEM_DMABUF: c_int = SO_DEVMEM_DMABUF; + // Ioctl Constants cfg_if! { diff --git a/src/unix/linux_like/linux/arch/sparc/mod.rs b/src/unix/linux_like/linux/arch/sparc/mod.rs index 286c332459d97..86af2ad14bcd0 100644 --- a/src/unix/linux_like/linux/arch/sparc/mod.rs +++ b/src/unix/linux_like/linux/arch/sparc/mod.rs @@ -97,12 +97,25 @@ pub const SO_TIMESTAMPING: c_int = 0x0023; // pub const SO_DETACH_REUSEPORT_BPF: c_int = 0x0047; pub const SO_PREFER_BUSY_POLL: c_int = 0x0048; pub const SO_BUSY_POLL_BUDGET: c_int = 0x0049; +pub const SO_NETNS_COOKIE: c_int = 0x0050; +pub const SO_BUF_LOCK: c_int = 0x0051; +pub const SO_RESERVE_MEM: c_int = 0x0052; +pub const SO_TXREHASH: c_int = 0x0053; +pub const SO_RCVMARK: c_int = 0x0054; +pub const SO_PASSPIDFD: c_int = 0x0055; +pub const SO_PEERPIDFD: c_int = 0x0056; +pub const SO_DEVMEM_LINEAR: c_int = 0x0057; +pub const SO_DEVMEM_DMABUF: c_int = 0x0058; +pub const SO_DEVMEM_DONTNEED: c_int = 0x0059; // Defined in unix/linux_like/mod.rs // pub const SCM_TIMESTAMP: c_int = SO_TIMESTAMP; pub const SCM_TIMESTAMPNS: c_int = SO_TIMESTAMPNS; pub const SCM_TIMESTAMPING: c_int = SO_TIMESTAMPING; +pub const SCM_DEVMEM_LINEAR: c_int = SO_DEVMEM_LINEAR; +pub const SCM_DEVMEM_DMABUF: c_int = SO_DEVMEM_DMABUF; + // Ioctl Constants pub const TCGETS: Ioctl = 0x40245408; From 29a40e2cacdb63bf1efc640ab74c6a63c5a96dcf Mon Sep 17 00:00:00 2001 From: Pedro Tammela Date: Wed, 5 Mar 2025 18:14:05 -0300 Subject: [PATCH 0534/1228] linux: add devmem structs For reference: https://elixir.bootlin.com/linux/v6.13.5/source/include/uapi/linux/uio.h#L23 Signed-off-by: Pedro Tammela (backport ) (cherry picked from commit 4985e60cc353eeb6b2e06eb4932543f834f8b3b4) --- libc-test/build.rs | 4 ++++ src/unix/linux_like/linux/mod.rs | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index a88ad2287ad67..3fedeb412aa12 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4135,6 +4135,10 @@ fn test_linux(target: &str) { // FIXME(linux): Requires >= 6.9 kernel headers. "epoll_params" => true, + // FIXME(linux): Requires >= 6.12 kernel headers. + "dmabuf_cmsg" | + "dmabuf_token" => true, + _ => false, } }); diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index b6dd307de7b96..c2737f8d89096 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1320,6 +1320,21 @@ s! { pub propagation: crate::__u64, pub userns_fd: crate::__u64, } + + // linux/uio.h + + pub struct dmabuf_cmsg { + pub frag_offset: crate::__u64, + pub frag_size: crate::__u32, + pub frag_token: crate::__u32, + pub dmabuf_id: crate::__u32, + pub flags: crate::__u32, + } + + pub struct dmabuf_token { + pub token_start: crate::__u32, + pub token_count: crate::__u32, + } } cfg_if! { From 5746f8e4902df9e3128b6d9550682176093648c6 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Mon, 10 Mar 2025 00:25:48 +0100 Subject: [PATCH 0535/1228] Add missing macos proc types and constants (backport ) (cherry picked from commit f3c54e8754d901ec5f59bd18ae794302ee68f581) --- src/unix/bsd/apple/mod.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 9103522d95053..56169a5cf73d8 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1303,6 +1303,12 @@ s! { pub ctl_id: u32, pub ctl_name: [c_char; MAX_KCTL_NAME], } + + // sys/proc_info.h + pub struct proc_fdinfo { + pub proc_fd: i32, + pub proc_fdtype: u32, + } } s_no_extra_traits! { @@ -5139,6 +5145,21 @@ pub const PROC_PIDTASKINFO: c_int = 4; pub const PROC_PIDTHREADINFO: c_int = 5; pub const PROC_PIDVNODEPATHINFO: c_int = 9; pub const PROC_PIDPATHINFO_MAXSIZE: c_int = 4096; + +pub const PROC_PIDLISTFDS: c_int = 1; +pub const PROC_PIDLISTFD_SIZE: c_int = mem::size_of::() as c_int; +pub const PROX_FDTYPE_ATALK: c_int = 0; +pub const PROX_FDTYPE_VNODE: c_int = 1; +pub const PROX_FDTYPE_SOCKET: c_int = 2; +pub const PROX_FDTYPE_PSHM: c_int = 3; +pub const PROX_FDTYPE_PSEM: c_int = 4; +pub const PROX_FDTYPE_KQUEUE: c_int = 5; +pub const PROX_FDTYPE_PIPE: c_int = 6; +pub const PROX_FDTYPE_FSEVENTS: c_int = 7; +pub const PROX_FDTYPE_NETPOLICY: c_int = 9; +pub const PROX_FDTYPE_CHANNEL: c_int = 10; +pub const PROX_FDTYPE_NEXUS: c_int = 11; + pub const PROC_CSM_ALL: c_uint = 0x0001; pub const PROC_CSM_NOSMT: c_uint = 0x0002; pub const PROC_CSM_TECS: c_uint = 0x0004; From 78b0f8a7397e177ff487f1a70a22a67ae5638f72 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 11 Mar 2025 09:04:58 +0000 Subject: [PATCH 0536/1228] chore: release v0.2.171 Co-authored-by: Trevor Gross --- CHANGELOG.md | 56 ++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 3 files changed, 58 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a41b3ffdef10..502c8e1d18828 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,62 @@ # Changelog ## [Unreleased] + +## [0.2.171](https://github.com/rust-lang/libc/compare/0.2.170...0.2.171) - 2025-03-11 + +### Added + +- Android: Add `if_nameindex`/`if_freenameindex` support ([#4247](https://github.com/rust-lang/libc/pull/4247)) +- Apple: Add missing proc types and constants ([#4310](https://github.com/rust-lang/libc/pull/4310)) +- BSD: Add `devname` ([#4285](https://github.com/rust-lang/libc/pull/4285)) +- Cygwin: Add PTY and group API ([#4309](https://github.com/rust-lang/libc/pull/4309)) +- Cygwin: Add support ([#4279](https://github.com/rust-lang/libc/pull/4279)) +- FreeBSD: Make `spawn.h` interfaces available on all FreeBSD-like systems ([#4294](https://github.com/rust-lang/libc/pull/4294)) +- Linux: Add `AF_XDP` structs for all Linux environments ([#4163](https://github.com/rust-lang/libc/pull/4163)) +- Linux: Add SysV semaphore constants ([#4286](https://github.com/rust-lang/libc/pull/4286)) +- Linux: Add `F_SEAL_EXEC` ([#4316](https://github.com/rust-lang/libc/pull/4316)) +- Linux: Add `SO_PREFER_BUSY_POLL` and `SO_BUSY_POLL_BUDGET` ([#3917](https://github.com/rust-lang/libc/pull/3917)) +- Linux: Add `devmem` structs ([#4299](https://github.com/rust-lang/libc/pull/4299)) +- Linux: Add socket constants up to `SO_DEVMEM_DONTNEED` ([#4299](https://github.com/rust-lang/libc/pull/4299)) +- NetBSD, OpenBSD, DragonflyBSD: Add `closefrom` ([#4290](https://github.com/rust-lang/libc/pull/4290)) +- NuttX: Add `pw_passwd` field to `passwd` ([#4222](https://github.com/rust-lang/libc/pull/4222)) +- Solarish: define `IP_BOUND_IF` and `IPV6_BOUND_IF` ([#4287](https://github.com/rust-lang/libc/pull/4287)) +- Wali: Add bindings for `wasm32-wali-linux-musl` target ([#4244](https://github.com/rust-lang/libc/pull/4244)) + +### Changed + +- AIX: Use `sa_sigaction` instead of a union ([#4250](https://github.com/rust-lang/libc/pull/4250)) +- Make `msqid_ds.__msg_cbytes` public ([#4301](https://github.com/rust-lang/libc/pull/4301)) +- Unix: Make all `major`, `minor`, `makedev` into `const fn` ([#4208](https://github.com/rust-lang/libc/pull/4208)) + +### Deprecated + +- Linux: Deprecate obsolete packet filter interfaces ([#4267](https://github.com/rust-lang/libc/pull/4267)) + +### Fixed + +- Cygwin: Fix strerror_r ([#4308](https://github.com/rust-lang/libc/pull/4308)) +- Cygwin: Fix usage of f! ([#4308](https://github.com/rust-lang/libc/pull/4308)) +- Hermit: Make `stat::st_size` signed ([#4298](https://github.com/rust-lang/libc/pull/4298)) +- Linux: Correct values for `SI_TIMER`, `SI_MESGQ`, `SI_ASYNCIO` ([#4292](https://github.com/rust-lang/libc/pull/4292)) +- NuttX: Update `tm_zone` and `d_name` fields to use `c_char` type ([#4222](https://github.com/rust-lang/libc/pull/4222)) +- Xous: Include the prelude to define `c_int` ([#4304](https://github.com/rust-lang/libc/pull/4304)) + +### Other + +- Add labels to FIXMEs ([#4231](https://github.com/rust-lang/libc/pull/4231), [#4232](https://github.com/rust-lang/libc/pull/4232), [#4234](https://github.com/rust-lang/libc/pull/4234), [#4235](https://github.com/rust-lang/libc/pull/4235), [#4236](https://github.com/rust-lang/libc/pull/4236)) +- CI: Fix "cannot find libc" error on Sparc64 ([#4317](https://github.com/rust-lang/libc/pull/4317)) +- CI: Fix "cannot find libc" error on s390x ([#4317](https://github.com/rust-lang/libc/pull/4317)) +- CI: Pass `--no-self-update` to `rustup update` ([#4306](https://github.com/rust-lang/libc/pull/4306)) +- CI: Remove tests for the `i586-pc-windows-msvc` target ([#4311](https://github.com/rust-lang/libc/pull/4311)) +- CI: Remove the `check_cfg` job ([#4322](https://github.com/rust-lang/libc/pull/4312)) +- Change the range syntax that is giving `ctest` problems ([#4311](https://github.com/rust-lang/libc/pull/4311)) +- Linux: Split out the stat struct for gnu/b32/mips ([#4276](https://github.com/rust-lang/libc/pull/4276)) + +### Removed + +- NuttX: Remove `pthread_set_name_np` ([#4251](https://github.com/rust-lang/libc/pull/4251)) + ## [0.2.170](https://github.com/rust-lang/libc/compare/0.2.169...0.2.170) - 2025-02-23 ### Added diff --git a/Cargo.toml b/Cargo.toml index f9c7268f60cc5..c90e201b898d7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.170" +version = "0.2.171" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 740b9ca18cac2..2f32e12bb3755 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -14,7 +14,7 @@ A test crate for the libc crate. [dependencies.libc] path = ".." -version = "0.2.170" +version = "0.2.171" default-features = false [dev-dependencies] From 14beec8284f5eba1f8c967029aa318d13661dd34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AE=87=E9=80=B8?= Date: Tue, 11 Mar 2025 22:32:23 +0800 Subject: [PATCH 0537/1228] cygwin: add statfs & fcntl Needed by rustix support: * statfs, fstatfs, and struct statfs * posix_fadvise, posix_fallocate, fallocate, and constants (backport ) (cherry picked from commit f007c3e8f0a55de82db019c2652d0838bb35dfb1) --- src/unix/cygwin/mod.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 4bfdde336ac9b..ac24c2f3a0105 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -435,6 +435,19 @@ s! { pub f_flag: c_ulong, pub f_namemax: c_ulong, } + + pub struct statfs { + pub f_type: c_ulong, + pub f_bsize: c_ulong, + pub f_blocks: c_ulong, + pub f_bfree: c_ulong, + pub f_bavail: c_ulong, + pub f_files: c_ulong, + pub f_ffree: c_ulong, + pub f_fsid: c_ulong, + pub f_namelen: c_ulong, + pub f_spare: [c_ulong; 6], + } } s_no_extra_traits! { @@ -1786,6 +1799,20 @@ 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_FADV_NORMAL: c_int = 0; +pub const POSIX_FADV_SEQUENTIAL: c_int = 1; +pub const POSIX_FADV_RANDOM: c_int = 2; +pub const POSIX_FADV_WILLNEED: c_int = 3; +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; + +pub const FALLOC_FL_PUNCH_HOLE: c_int = 0x0001; +pub const FALLOC_FL_ZERO_RANGE: c_int = 0x0002; +pub const FALLOC_FL_UNSHARE_RANGE: c_int = 0x0004; +pub const FALLOC_FL_COLLAPSE_RANGE: c_int = 0x0008; +pub const FALLOC_FL_INSERT_RANGE: c_int = 0x0010; +pub const FALLOC_FL_KEEP_SIZE: c_int = 0x1000; + f! { pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; @@ -2472,4 +2499,11 @@ extern "C" { result: *mut *mut crate::group, ) -> c_int; pub fn initgroups(user: *const c_char, group: crate::gid_t) -> c_int; + + pub fn statfs(path: *const c_char, buf: *mut statfs) -> c_int; + pub fn fstatfs(fd: c_int, buf: *mut statfs) -> c_int; + + pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advise: c_int) -> c_int; + pub fn posix_fallocate(fd: c_int, offset: off_t, len: off_t) -> c_int; + pub fn fallocate(fd: c_int, mode: c_int, offset: off_t, len: off_t) -> c_int; } From 56330cd455e04c9a65d72e23f97427ac7b1a623c Mon Sep 17 00:00:00 2001 From: John Baublitz Date: Thu, 27 Feb 2025 14:28:23 -0500 Subject: [PATCH 0538/1228] linux: Add new netlink flags (backport ) (cherry picked from commit 70527d14f3049fa672ca09ca0d197742b683cc1e) --- libc-test/semver/android.txt | 4 ++++ libc-test/semver/linux.txt | 4 ++++ src/unix/linux_like/android/mod.rs | 6 ++++++ src/unix/linux_like/linux/mod.rs | 6 ++++++ 4 files changed, 20 insertions(+) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 983d0e6d521a2..20b240885325e 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -1793,8 +1793,11 @@ NLMSG_MIN_TYPE NLMSG_NOOP NLMSG_OVERRUN NLM_F_ACK +NLM_F_ACK_TLVS NLM_F_APPEND NLM_F_ATOMIC +NLM_F_BULK +NLM_F_CAPPED NLM_F_CREATE NLM_F_DUMP NLM_F_DUMP_FILTERED @@ -1803,6 +1806,7 @@ NLM_F_ECHO NLM_F_EXCL NLM_F_MATCH NLM_F_MULTI +NLM_F_NONREC NLM_F_REPLACE NLM_F_REQUEST NLM_F_ROOT diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 8c4b54f3cfaa4..859ef9f58dfb1 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1996,8 +1996,11 @@ NLMSG_MIN_TYPE NLMSG_NOOP NLMSG_OVERRUN NLM_F_ACK +NLM_F_ACK_TLVS NLM_F_APPEND NLM_F_ATOMIC +NLM_F_BULK +NLM_F_CAPPED NLM_F_CREATE NLM_F_DUMP NLM_F_DUMP_FILTERED @@ -2006,6 +2009,7 @@ NLM_F_ECHO NLM_F_EXCL NLM_F_MATCH NLM_F_MULTI +NLM_F_NONREC NLM_F_REPLACE NLM_F_REQUEST NLM_F_ROOT diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 330438feb4d76..5de2e4acc1273 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1985,6 +1985,12 @@ pub const NLM_F_EXCL: c_int = 0x200; pub const NLM_F_CREATE: c_int = 0x400; pub const NLM_F_APPEND: c_int = 0x800; +pub const NLM_F_NONREC: c_int = 0x100; +pub const NLM_F_BULK: c_int = 0x200; + +pub const NLM_F_CAPPED: c_int = 0x100; +pub const NLM_F_ACK_TLVS: c_int = 0x200; + pub const NLMSG_NOOP: c_int = 0x1; pub const NLMSG_ERROR: c_int = 0x2; pub const NLMSG_DONE: c_int = 0x3; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index c2737f8d89096..1e681400776aa 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -4419,6 +4419,12 @@ pub const NLM_F_EXCL: c_int = 0x200; pub const NLM_F_CREATE: c_int = 0x400; pub const NLM_F_APPEND: c_int = 0x800; +pub const NLM_F_NONREC: c_int = 0x100; +pub const NLM_F_BULK: c_int = 0x200; + +pub const NLM_F_CAPPED: c_int = 0x100; +pub const NLM_F_ACK_TLVS: c_int = 0x200; + pub const NETLINK_ADD_MEMBERSHIP: c_int = 1; pub const NETLINK_DROP_MEMBERSHIP: c_int = 2; pub const NETLINK_PKTINFO: c_int = 3; From c107c77fbbcce7c6cf6e3dc23b36d0b8cd5ef418 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonin=20D=C3=B6rwald?= Date: Tue, 11 Mar 2025 21:53:14 +0100 Subject: [PATCH 0539/1228] linux: Added _IO, _IOW, _IOR, _IOWR to the exported API (backport ) (cherry picked from commit cf6113d1aa733ad473de8909cabbd797aebe738c) --- libc-test/semver/linux.txt | 4 ++++ src/unix/linux_like/linux/mod.rs | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 859ef9f58dfb1..6f1aa74017923 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -3553,9 +3553,13 @@ _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LIBS _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS +_IO _IOFBF _IOLBF _IONBF +_IOR +_IOW +_IOWR _PC_2_SYMLINKS _PC_ALLOC_SIZE_MIN _PC_ASYNC_IO diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 1e681400776aa..7a5f83f90128a 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -5939,22 +5939,22 @@ const fn _IOC(dir: u32, ty: u32, nr: u32, size: usize) -> u32 { } /// Build an ioctl number for an argumentless ioctl. -pub(crate) const fn _IO(ty: u32, nr: u32) -> u32 { +pub const fn _IO(ty: u32, nr: u32) -> u32 { _IOC(_IOC_NONE, ty, nr, 0) } /// Build an ioctl number for an read-only ioctl. -pub(crate) const fn _IOR(ty: u32, nr: u32) -> u32 { +pub const fn _IOR(ty: u32, nr: u32) -> u32 { _IOC(_IOC_READ, ty, nr, size_of::()) } /// Build an ioctl number for an write-only ioctl. -pub(crate) const fn _IOW(ty: u32, nr: u32) -> u32 { +pub const fn _IOW(ty: u32, nr: u32) -> u32 { _IOC(_IOC_WRITE, ty, nr, size_of::()) } /// Build an ioctl number for a read-write ioctl. -pub(crate) const fn _IOWR(ty: u32, nr: u32) -> u32 { +pub const fn _IOWR(ty: u32, nr: u32) -> u32 { _IOC(_IOC_READ | _IOC_WRITE, ty, nr, size_of::()) } From 9d7c71c1288a8f687d2b08d05372fc02077c5e88 Mon Sep 17 00:00:00 2001 From: Berrysoft Date: Wed, 12 Mar 2025 13:11:36 +0800 Subject: [PATCH 0540/1228] cygwin: fix member types of statfs (backport ) (cherry picked from commit 9b403359a6a53acb07f0e27a2b72e6d8148f2524) --- src/unix/cygwin/mod.rs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index ac24c2f3a0105..312324a5e80fd 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -437,16 +437,16 @@ s! { } pub struct statfs { - pub f_type: c_ulong, - pub f_bsize: c_ulong, - pub f_blocks: c_ulong, - pub f_bfree: c_ulong, - pub f_bavail: c_ulong, - pub f_files: c_ulong, - pub f_ffree: c_ulong, - pub f_fsid: c_ulong, - pub f_namelen: c_ulong, - pub f_spare: [c_ulong; 6], + pub f_type: c_long, + pub f_bsize: c_long, + pub f_blocks: c_long, + pub f_bfree: c_long, + pub f_bavail: c_long, + pub f_files: c_long, + pub f_ffree: c_long, + pub f_fsid: c_long, + pub f_namelen: c_long, + pub f_spare: [c_long; 6], } } From f630218a143f58cf09847ad30ecb05ec8bc8b5ed Mon Sep 17 00:00:00 2001 From: Kartik Agarwala Date: Tue, 18 Mar 2025 12:11:38 +0530 Subject: [PATCH 0541/1228] Add more error codes for VxWorks (backport ) (cherry picked from commit bb7f778565d7bd491196df48d75c9bec443ec2b2) --- src/vxworks/mod.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 073b5d07ce6fa..d9c472b0aa4bb 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -620,6 +620,9 @@ pub const ENODEV: c_int = 19; pub const ENOTDIR: c_int = 20; pub const EISDIR: c_int = 21; pub const EINVAL: c_int = 22; +pub const ENFILE: c_int = 23; +pub const EMFILE: c_int = 24; +pub const ENOTTY: c_int = 25; pub const ENAMETOOLONG: c_int = 26; pub const EFBIG: c_int = 27; pub const ENOSPC: c_int = 28; @@ -628,7 +631,12 @@ pub const EROFS: c_int = 30; pub const EMLINK: c_int = 31; pub const EPIPE: c_int = 32; pub const EDEADLK: c_int = 33; +pub const ENOLCK: c_int = 34; +pub const ENOTSUP: c_int = 35; +pub const EMSGSIZE: c_int = 36; +pub const EDOM: c_int = 37; pub const ERANGE: c_int = 38; +pub const EDOOM: c_int = 39; pub const EDESTADDRREQ: c_int = 40; pub const EPROTOTYPE: c_int = 41; pub const ENOPROTOOPT: c_int = 42; @@ -655,12 +663,30 @@ pub const ENETDOWN: c_int = 62; pub const ETXTBSY: c_int = 63; pub const ELOOP: c_int = 64; pub const EHOSTUNREACH: c_int = 65; +pub const ENOTBLK: c_int = 66; +pub const EHOSTDOWN: c_int = 67; pub const EINPROGRESS: c_int = 68; pub const EALREADY: c_int = 69; pub const EWOULDBLOCK: c_int = 70; pub const ENOSYS: c_int = 71; +pub const ECANCELED: c_int = 72; +pub const ENOSR: c_int = 74; +pub const ENOSTR: c_int = 75; +pub const EPROTO: c_int = 76; +pub const EBADMSG: c_int = 77; +pub const ENODATA: c_int = 78; +pub const ETIME: c_int = 79; +pub const ENOMSG: c_int = 80; +pub const EFPOS: c_int = 81; +pub const EILSEQ: c_int = 82; pub const EDQUOT: c_int = 83; +pub const EIDRM: c_int = 84; +pub const EOVERFLOW: c_int = 85; +pub const EMULTIHOP: c_int = 86; +pub const ENOLINK: c_int = 87; pub const ESTALE: c_int = 88; +pub const EOWNERDEAD: c_int = 89; +pub const ENOTRECOVERABLE: c_int = 90; // NFS errnos: Refer to pkgs_v2/storage/fs/nfs/h/nfs/nfsCommon.h const M_nfsStat: c_int = 48 << 16; From b28fef82f37f98873dab2540a38c9534564992f5 Mon Sep 17 00:00:00 2001 From: Kartik Agarwala Date: Tue, 18 Mar 2025 13:14:13 +0530 Subject: [PATCH 0542/1228] Add some missing functions (backport ) (cherry picked from commit 317391c8280d43efef59d9518b02461901c56e5b) --- src/vxworks/mod.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index d9c472b0aa4bb..9ebaae5008bf2 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -1257,6 +1257,7 @@ extern "C" { pub fn umask(mask: mode_t) -> mode_t; pub fn mlock(addr: *const c_void, len: size_t) -> c_int; pub fn mlockall(flags: c_int) -> c_int; + pub fn munlock(addr: *const c_void, len: size_t) -> c_int; pub fn munlockall() -> c_int; pub fn mmap( @@ -1268,6 +1269,10 @@ extern "C" { offset: off_t, ) -> *mut c_void; pub fn munmap(addr: *mut c_void, len: size_t) -> c_int; + + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; + pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; + pub fn truncate(path: *const c_char, length: off_t) -> c_int; pub fn shm_open(name: *const c_char, oflag: c_int, mode: crate::mode_t) -> c_int; pub fn shm_unlink(name: *const c_char) -> c_int; @@ -1284,6 +1289,8 @@ extern "C" { pub fn utimes(filename: *const c_char, times: *const crate::timeval) -> c_int; + pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; + #[link_name = "_rtld_dlopen"] pub fn dlopen(filename: *const c_char, flag: c_int) -> *mut c_void; From bbb331a9dcfabbb12f32181ebb8c5c7aa448e652 Mon Sep 17 00:00:00 2001 From: Michael Buesch Date: Fri, 14 Mar 2025 19:10:05 +0100 Subject: [PATCH 0543/1228] seccomp: Add more constants from seccomp.h and align Android + Linux (backport ) (cherry picked from commit 97432d1e07ede4132410134fa02ea371729b9d6c) --- libc-test/semver/android.txt | 9 +++++++++ libc-test/semver/linux.txt | 1 + src/unix/linux_like/android/mod.rs | 27 ++++++++++++++++++++------- src/unix/linux_like/linux/mod.rs | 13 +++++++------ 4 files changed, 37 insertions(+), 13 deletions(-) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 20b240885325e..e7e2c4c4c489c 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -2226,10 +2226,16 @@ SCM_CREDENTIALS SCM_RIGHTS SCM_TIMESTAMP SCM_TIMESTAMPING +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 @@ -2245,6 +2251,9 @@ SECCOMP_RET_LOG SECCOMP_RET_TRACE SECCOMP_RET_TRAP SECCOMP_RET_USER_NOTIF +SECCOMP_SET_MODE_FILTER +SECCOMP_SET_MODE_STRICT +SECCOMP_USER_NOTIF_FLAG_CONTINUE SEEK_CUR SEEK_DATA SEEK_END diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 6f1aa74017923..9c09671613959 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2749,6 +2749,7 @@ SECCOMP_RET_KILL_THREAD SECCOMP_RET_LOG SECCOMP_RET_TRACE SECCOMP_RET_TRAP +SECCOMP_RET_USER_NOTIF SECCOMP_SET_MODE_FILTER SECCOMP_SET_MODE_STRICT SECCOMP_USER_NOTIF_FLAG_CONTINUE diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 5de2e4acc1273..5285a44e1abc7 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -2200,18 +2200,22 @@ pub const GRND_NONBLOCK: c_uint = 0x0001; pub const GRND_RANDOM: c_uint = 0x0002; pub const GRND_INSECURE: c_uint = 0x0004; +// pub const SECCOMP_MODE_DISABLED: c_uint = 0; pub const SECCOMP_MODE_STRICT: c_uint = 1; pub const SECCOMP_MODE_FILTER: c_uint = 2; -pub const SECCOMP_FILTER_FLAG_TSYNC: c_ulong = 1; -pub const SECCOMP_FILTER_FLAG_LOG: c_ulong = 2; -pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: c_ulong = 4; -pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: c_ulong = 8; +pub const SECCOMP_SET_MODE_STRICT: c_uint = 0; +pub const SECCOMP_SET_MODE_FILTER: c_uint = 1; +pub const SECCOMP_GET_ACTION_AVAIL: c_uint = 2; +pub const SECCOMP_GET_NOTIF_SIZES: c_uint = 3; -pub const SECCOMP_RET_ACTION_FULL: c_uint = 0xffff0000; -pub const SECCOMP_RET_ACTION: c_uint = 0x7fff0000; -pub const SECCOMP_RET_DATA: c_uint = 0x0000ffff; +pub const SECCOMP_FILTER_FLAG_TSYNC: c_ulong = 1 << 0; +pub const SECCOMP_FILTER_FLAG_LOG: c_ulong = 1 << 1; +pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: c_ulong = 1 << 2; +pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: c_ulong = 1 << 3; +pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: c_ulong = 1 << 4; +pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: c_ulong = 1 << 5; pub const SECCOMP_RET_KILL_PROCESS: c_uint = 0x80000000; pub const SECCOMP_RET_KILL_THREAD: c_uint = 0x00000000; @@ -2223,6 +2227,15 @@ pub const SECCOMP_RET_TRACE: c_uint = 0x7ff00000; pub const SECCOMP_RET_LOG: c_uint = 0x7ffc0000; pub const SECCOMP_RET_ALLOW: c_uint = 0x7fff0000; +pub const SECCOMP_RET_ACTION_FULL: c_uint = 0xffff0000; +pub const SECCOMP_RET_ACTION: c_uint = 0x7fff0000; +pub const SECCOMP_RET_DATA: c_uint = 0x0000ffff; + +pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: c_ulong = 1; + +pub const SECCOMP_ADDFD_FLAG_SETFD: c_ulong = 1; +pub const SECCOMP_ADDFD_FLAG_SEND: c_ulong = 2; + pub const NLA_F_NESTED: c_int = 1 << 15; pub const NLA_F_NET_BYTEORDER: c_int = 1 << 14; pub const NLA_TYPE_MASK: c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER); diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 7a5f83f90128a..480bcf04468a0 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -3285,18 +3285,19 @@ pub const SECCOMP_SET_MODE_FILTER: c_uint = 1; pub const SECCOMP_GET_ACTION_AVAIL: c_uint = 2; pub const SECCOMP_GET_NOTIF_SIZES: c_uint = 3; -pub const SECCOMP_FILTER_FLAG_TSYNC: c_ulong = 1; -pub const SECCOMP_FILTER_FLAG_LOG: c_ulong = 2; -pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: c_ulong = 4; -pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: c_ulong = 8; -pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: c_ulong = 16; -pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: c_ulong = 32; +pub const SECCOMP_FILTER_FLAG_TSYNC: c_ulong = 1 << 0; +pub const SECCOMP_FILTER_FLAG_LOG: c_ulong = 1 << 1; +pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: c_ulong = 1 << 2; +pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: c_ulong = 1 << 3; +pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: c_ulong = 1 << 4; +pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: c_ulong = 1 << 5; pub const SECCOMP_RET_KILL_PROCESS: c_uint = 0x80000000; pub const SECCOMP_RET_KILL_THREAD: c_uint = 0x00000000; pub const SECCOMP_RET_KILL: c_uint = SECCOMP_RET_KILL_THREAD; pub const SECCOMP_RET_TRAP: c_uint = 0x00030000; pub const SECCOMP_RET_ERRNO: c_uint = 0x00050000; +pub const SECCOMP_RET_USER_NOTIF: c_uint = 0x7fc00000; pub const SECCOMP_RET_TRACE: c_uint = 0x7ff00000; pub const SECCOMP_RET_LOG: c_uint = 0x7ffc0000; pub const SECCOMP_RET_ALLOW: c_uint = 0x7fff0000; From 20a99defd03c2db3e728b0f9ccaee1c16cf34f15 Mon Sep 17 00:00:00 2001 From: WANG Rui Date: Tue, 11 Mar 2025 19:54:20 +0800 Subject: [PATCH 0544/1228] ci: install musl from source for loongarch64 (backport ) (cherry picked from commit ec47180e5551a6424a0b2ef555faaea7286f751e) --- .../loongarch64-unknown-linux-musl/Dockerfile | 16 +++++++++------- ci/install-musl-cross.sh | 10 ---------- ci/install-musl.sh | 17 ++++++++++++++++- 3 files changed, 25 insertions(+), 18 deletions(-) delete mode 100755 ci/install-musl-cross.sh diff --git a/ci/docker/loongarch64-unknown-linux-musl/Dockerfile b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile index f4a23a6666c8a..0b3ff4da34ba0 100644 --- a/ci/docker/loongarch64-unknown-linux-musl/Dockerfile +++ b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile @@ -1,14 +1,16 @@ FROM ubuntu:24.10 RUN apt-get update && apt-get install -y --no-install-recommends \ - ca-certificates curl gcc git libc6-dev make qemu-user xz-utils + ca-certificates curl gcc gcc-14-loongarch64-linux-gnu git libc6-dev \ + make qemu-user xz-utils patch rsync -COPY install-musl-cross.sh / -RUN /install-musl-cross.sh loongarch64-unknown-linux-musl +COPY install-musl.sh / +RUN /install-musl.sh loongarch64 -ENV CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_MUSL_LINKER=loongarch64-unknown-linux-musl-gcc \ +ENV CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_MUSL_LINKER=musl-gcc \ CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_MUSL_RUNNER="qemu-loongarch64" \ - CC_loongarch64_unknown_linux_musl=loongarch64-unknown-linux-musl-gcc \ + CC_loongarch64_unknown_linux_musl=musl-gcc \ CFLAGS_loongarch64_unknown_linux_musl="-mabi=lp64d -fPIC" \ - QEMU_LD_PREFIX=/loongarch64-unknown-linux-musl/loongarch64-unknown-linux-musl/sysroot \ - PATH=$PATH:/loongarch64-unknown-linux-musl/bin:/rust/bin + RUSTFLAGS="-Ctarget-feature=+crt-static" \ + QEMU_LD_PREFIX=/musl-loongarch64 \ + PATH=$PATH:/musl-loongarch64/bin:/rust/bin diff --git a/ci/install-musl-cross.sh b/ci/install-musl-cross.sh deleted file mode 100755 index 38381dc9bd6bf..0000000000000 --- a/ci/install-musl-cross.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# -# Install musl cross toolchain - -set -ex - -MUSL_CROSS_VER=20241103 -MUSL_CROSS_URL=https://github.com/musl-cross/musl-cross/releases/download/$MUSL_CROSS_VER/$1.tar.xz - -curl -L --retry 5 "$MUSL_CROSS_URL" | tar -xJf - -C / diff --git a/ci/install-musl.sh b/ci/install-musl.sh index 1cf1ec6500cde..416874d916f3e 100755 --- a/ci/install-musl.sh +++ b/ci/install-musl.sh @@ -5,7 +5,15 @@ set -eux -musl_version=1.1.24 +case ${1} in + loongarch64) + musl_version=1.2.5 + ;; + *) + musl_version=1.1.24 + ;; +esac + musl="musl-${musl_version}" # Download, configure, build, and install musl: @@ -53,6 +61,13 @@ case ${1} in ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes make install -j4 ;; + loongarch64) + musl_arch=loongarch64 + kernel_arch=loongarch + CC=loongarch64-linux-gnu-gcc-14 \ + ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes + make install -j4 + ;; *) echo "Unknown target arch: \"${1}\"" exit 1 From 5a1f5f206beaf7845d40f3394758b468d69751f4 Mon Sep 17 00:00:00 2001 From: Biraj Parikh Date: Thu, 20 Mar 2025 20:55:50 -0700 Subject: [PATCH 0545/1228] feat: Add tcp_info to Linux uClibc bindings (backport ) (cherry picked from commit c023ed5a246ab6dfe892a8248f7e92eaf1441afc) --- src/unix/linux_like/linux/uclibc/mod.rs | 36 +++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/unix/linux_like/linux/uclibc/mod.rs b/src/unix/linux_like/linux/uclibc/mod.rs index 272f3c4e223b2..b7a34dd3b6716 100644 --- a/src/unix/linux_like/linux/uclibc/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mod.rs @@ -114,6 +114,42 @@ s! { pub struct pthread_condattr_t { size: [u8; crate::__SIZEOF_PTHREAD_CONDATTR_T], } + + 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, + /// This contains the bitfields `tcpi_snd_wscale` and `tcpi_rcv_wscale`. + /// Each is 4 bits. + pub tcpi_snd_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_total_retrans: u32, + } } impl siginfo_t { From c271bffe39e1f2e3776f6445fac14ea97acdcac3 Mon Sep 17 00:00:00 2001 From: Tamir Duberstein Date: Thu, 20 Mar 2025 11:45:08 -0400 Subject: [PATCH 0546/1228] musl: enable `getrandom` on all musl platforms The existing bindings were added in #1399 and limited to targets where rustc used musl version >= 1.1.20 which was not all musl targets at that time. Since https://github.com/rust-lang/rust/pull/107129 all musl targets use musl 1.2.3. Hence, move the binding to the module root so it is available for all musl targets. (backport ) (cherry picked from commit 77d301184110ec08defe78b4ba08450072eb5fb5) --- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 4 ---- src/unix/linux_like/linux/musl/b32/powerpc.rs | 4 ---- src/unix/linux_like/linux/musl/b32/x86/mod.rs | 4 ---- src/unix/linux_like/linux/musl/b64/mod.rs | 4 ---- src/unix/linux_like/linux/musl/mod.rs | 3 +++ 5 files changed, 3 insertions(+), 16 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index ad74ecfcb2bda..292585fc3a77a 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -795,7 +795,3 @@ pub const SYS_process_mrelease: c_long = 448; pub const SYS_futex_waitv: c_long = 449; pub const SYS_set_mempolicy_home_node: c_long = 450; pub const SYS_mseal: c_long = 462; - -extern "C" { - pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; -} diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 7d7124a7c7e1c..0de40b15094bc 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -745,7 +745,3 @@ pub const SYS_process_mrelease: c_long = 448; pub const SYS_futex_waitv: c_long = 449; pub const SYS_set_mempolicy_home_node: c_long = 450; pub const SYS_mseal: c_long = 462; - -extern "C" { - pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; -} diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index a01dca67c8b89..22befbb0b71a5 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -913,7 +913,3 @@ pub const CS: c_int = 13; pub const EFL: c_int = 14; pub const UESP: c_int = 15; pub const SS: c_int = 16; - -extern "C" { - pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; -} diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index 6ae3c39724af8..6b6761ba03ac4 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -81,10 +81,6 @@ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; -extern "C" { - pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; -} - cfg_if! { if #[cfg(target_arch = "aarch64")] { mod aarch64; diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 57109e920b67d..40ca6d82d1690 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -971,6 +971,9 @@ extern "C" { pub fn dirname(path: *mut c_char) -> *mut c_char; pub fn basename(path: *mut c_char) -> *mut c_char; + // Addded in `musl` 1.1.20 + pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; + // Added in `musl` 1.1.24 pub fn posix_spawn_file_actions_addchdir_np( actions: *mut crate::posix_spawn_file_actions_t, From bce5fbda39dd15d68500c46177bef71d32f2966e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kr=C3=B6ning?= Date: Thu, 20 Mar 2025 12:40:48 +0100 Subject: [PATCH 0547/1228] hermit: add `AF_UNSPEC` (backport ) (cherry picked from commit d6ccb3d6b6a210a79e81ad4042cbbd3cda877754) --- libc-test/semver/hermit.txt | 1 + src/hermit.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/hermit.txt b/libc-test/semver/hermit.txt index ba44a7d2246ca..8304057eee271 100644 --- a/libc-test/semver/hermit.txt +++ b/libc-test/semver/hermit.txt @@ -1,5 +1,6 @@ AF_INET AF_INET6 +AF_UNSPEC CLOCK_MONOTONIC CLOCK_REALTIME DT_BLK diff --git a/src/hermit.rs b/src/hermit.rs index db51ee94b7881..a93a3e21cdb8e 100644 --- a/src/hermit.rs +++ b/src/hermit.rs @@ -114,6 +114,7 @@ s! { } } +pub const AF_UNSPEC: i32 = 0; pub const AF_INET: i32 = 0; pub const AF_INET6: i32 = 1; From 7a882bfcf57b8891103695a96fcf897c1e791073 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kr=C3=B6ning?= Date: Thu, 20 Mar 2025 12:41:47 +0100 Subject: [PATCH 0548/1228] hermit: add `AF_VSOCK` (backport ) (cherry picked from commit 248734ec76ca7ea98e8ce49a52c7d6c15645eca3) --- libc-test/semver/hermit.txt | 1 + src/hermit.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/hermit.txt b/libc-test/semver/hermit.txt index 8304057eee271..43ca11b6acf74 100644 --- a/libc-test/semver/hermit.txt +++ b/libc-test/semver/hermit.txt @@ -1,6 +1,7 @@ AF_INET AF_INET6 AF_UNSPEC +AF_VSOCK CLOCK_MONOTONIC CLOCK_REALTIME DT_BLK diff --git a/src/hermit.rs b/src/hermit.rs index a93a3e21cdb8e..8635b246a2de6 100644 --- a/src/hermit.rs +++ b/src/hermit.rs @@ -117,6 +117,7 @@ s! { pub const AF_UNSPEC: i32 = 0; pub const AF_INET: i32 = 0; pub const AF_INET6: i32 = 1; +pub const AF_VSOCK: i32 = 2; pub const CLOCK_REALTIME: clockid_t = 1; pub const CLOCK_MONOTONIC: clockid_t = 4; From c40de72079623f25f21681384fcd27a900090b97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kr=C3=B6ning?= Date: Thu, 20 Mar 2025 12:42:24 +0100 Subject: [PATCH 0549/1228] hermit: make `AF_INET = 3` (backport ) (cherry picked from commit 13ac7db1c0170cce9820dcc622bbcd40b4063fd2) --- src/hermit.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hermit.rs b/src/hermit.rs index 8635b246a2de6..b96be6b0e2a2f 100644 --- a/src/hermit.rs +++ b/src/hermit.rs @@ -115,7 +115,7 @@ s! { } pub const AF_UNSPEC: i32 = 0; -pub const AF_INET: i32 = 0; +pub const AF_INET: i32 = 3; pub const AF_INET6: i32 = 1; pub const AF_VSOCK: i32 = 2; From de18637f22d5198b51375e0f7993ff2ec9f4281c Mon Sep 17 00:00:00 2001 From: Taiki Endo Date: Tue, 18 Mar 2025 22:25:20 +0900 Subject: [PATCH 0550/1228] android: Add getauxval for 32-bit targets (backport ) (cherry picked from commit a42eea3540fa30dbb7f672aa0bdfe6ea346b379f) --- libc-test/semver/android.txt | 1 + src/unix/linux_like/android/b64/mod.rs | 1 - src/unix/linux_like/android/mod.rs | 2 ++ 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index e7e2c4c4c489c..34875722a8432 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -3338,6 +3338,7 @@ fwrite_unlocked gai_strerror genlmsghdr getaddrinfo +getauxval getchar getchar_unlocked getcwd diff --git a/src/unix/linux_like/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs index cc407e113f67a..b507dac7a1227 100644 --- a/src/unix/linux_like/android/b64/mod.rs +++ b/src/unix/linux_like/android/b64/mod.rs @@ -305,7 +305,6 @@ f! { } extern "C" { - pub fn getauxval(type_: c_ulong) -> c_ulong; pub fn __system_property_wait( pi: *const crate::prop_info, __old_serial: u32, diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 5285a44e1abc7..7d2f4f1327091 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -4085,6 +4085,8 @@ extern "C" { pub fn gettid() -> crate::pid_t; + pub fn getauxval(type_: c_ulong) -> c_ulong; + /// Only available in API Version 28+ 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; From 2480f3723dff49cdbef164a3863f470c9c45efd2 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Wed, 19 Mar 2025 18:42:01 +0000 Subject: [PATCH 0551/1228] adding secure_getenv for solaris/illumos. [solaris](https://docs.oracle.com/cd/E88353_01/html/E37843/secure-getenv-3c.html) [illumos](https://github.com/illumos/illumos-gate/blob/dc7ec32189c86a0f330aee77229dad2ad57eac71/usr/src/man/man3c/getenv.3c#L12) (backport ) (cherry picked from commit 351a99dc31c2f27b70e25c2d93377eba5d2f452e) --- libc-test/build.rs | 7 +++++-- src/unix/solarish/mod.rs | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 3fedeb412aa12..f2dde1e5536f2 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1307,6 +1307,10 @@ fn test_solarish(target: &str) { // https://github.com/gnzlbg/ctest/issues/68 "lio_listio" => true, + // Exists on illumos too but, for now, is + // [a recent addition](https://www.illumos.org/issues/17094). + "secure_getenv" if is_illumos => true, + _ => false, } }); @@ -4136,8 +4140,7 @@ fn test_linux(target: &str) { "epoll_params" => true, // FIXME(linux): Requires >= 6.12 kernel headers. - "dmabuf_cmsg" | - "dmabuf_token" => true, + "dmabuf_cmsg" | "dmabuf_token" => true, _ => false, } diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 65aaccec2ba96..3ddde8da0c407 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -3201,6 +3201,8 @@ extern "C" { pub fn arc4random() -> u32; pub fn arc4random_buf(buf: *mut c_void, nbytes: size_t); pub fn arc4random_uniform(upper_bound: u32) -> u32; + + pub fn secure_getenv(name: *const c_char) -> *mut c_char; } #[link(name = "sendfile")] From b56ee8166d10f0ad3a61b916babb99aa382a5915 Mon Sep 17 00:00:00 2001 From: 12101111 Date: Mon, 17 Mar 2025 00:21:28 +0800 Subject: [PATCH 0552/1228] Remove RTLD_DEEPBIND. It's a glibc extension and not supported by musl. (backport ) (cherry picked from commit 60b8b39390cc2b149d05147a12834aba35d41b6f) --- src/unix/linux_like/linux/musl/b32/riscv32/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index 1a4ab1c65502d..641b706aa057b 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -111,7 +111,6 @@ s_no_extra_traits! { //pub const RLIM_INFINITY: crate::rlim_t = !0; pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: c_int = 0x8; //pub const RLIMIT_RSS: crate::__rlimit_resource_t = 5; //pub const RLIMIT_AS: crate::__rlimit_resource_t = 9; //pub const RLIMIT_MEMLOCK: crate::__rlimit_resource_t = 8; From 0637411ae285dc95ebba70539b3f32035548d818 Mon Sep 17 00:00:00 2001 From: 12101111 Date: Mon, 17 Mar 2025 00:22:17 +0800 Subject: [PATCH 0553/1228] Fix the value of SA_ONSTACK (backport ) (cherry picked from commit 9f7b63fa8722c35375cffe1337cf3972a4f797fe) --- src/unix/linux_like/linux/musl/b32/riscv32/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index 641b706aa057b..23dab771096a3 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -208,7 +208,7 @@ pub const ERFKILL: c_int = 132; pub const SOCK_STREAM: c_int = 1; pub const SOCK_DGRAM: c_int = 2; -pub const SA_ONSTACK: c_int = 8; +pub const SA_ONSTACK: c_int = 0x08000000; pub const SA_SIGINFO: c_int = 4; pub const SA_NOCLDWAIT: c_int = 2; pub const SIGTTIN: c_int = 21; From 2d5b81addb72ad82e0268dfb56caad5df471df13 Mon Sep 17 00:00:00 2001 From: 12101111 Date: Mon, 17 Mar 2025 00:23:50 +0800 Subject: [PATCH 0554/1228] Fix syscall table (backport ) (cherry picked from commit 5c778ef9e422f165fd250a7ebe97439a984927be) --- .../linux_like/linux/musl/b32/riscv32/mod.rs | 56 +++++++++---------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index 23dab771096a3..abb495642d86c 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -345,7 +345,7 @@ pub const EXTPROC: crate::tcflag_t = 65536; pub const SYS_read: c_long = 63; pub const SYS_write: c_long = 64; pub const SYS_close: c_long = 57; -pub const SYS_fstat: c_long = 80; +// RISC-V don't have SYS_fstat, use statx instead. pub const SYS_lseek: c_long = 62; pub const SYS_mmap: c_long = 222; pub const SYS_mprotect: c_long = 226; @@ -368,7 +368,6 @@ pub const SYS_shmget: c_long = 194; pub const SYS_shmat: c_long = 196; pub const SYS_shmctl: c_long = 195; pub const SYS_dup: c_long = 23; -pub const SYS_nanosleep: c_long = 101; pub const SYS_getitimer: c_long = 102; pub const SYS_setitimer: c_long = 103; pub const SYS_getpid: c_long = 172; @@ -391,7 +390,7 @@ pub const SYS_getsockopt: c_long = 209; pub const SYS_clone: c_long = 220; pub const SYS_execve: c_long = 221; pub const SYS_exit: c_long = 93; -pub const SYS_wait4: c_long = 260; +// RISC-V don't have wait4, use waitid instead. pub const SYS_kill: c_long = 129; pub const SYS_uname: c_long = 160; pub const SYS_semget: c_long = 190; @@ -414,8 +413,8 @@ pub const SYS_fchdir: c_long = 50; pub const SYS_fchmod: c_long = 52; pub const SYS_fchown: c_long = 55; pub const SYS_umask: c_long = 166; -pub const SYS_gettimeofday: c_long = 169; -pub const SYS_getrlimit: c_long = 163; +// RISC-V don't have gettimeofday, use clock_gettime64 instead. +// RISC-V don't have getrlimit, use prlimit64 instead. pub const SYS_getrusage: c_long = 165; pub const SYS_sysinfo: c_long = 179; pub const SYS_times: c_long = 153; @@ -445,7 +444,7 @@ pub const SYS_getsid: c_long = 156; pub const SYS_capget: c_long = 90; pub const SYS_capset: c_long = 91; pub const SYS_rt_sigpending: c_long = 136; -pub const SYS_rt_sigtimedwait: c_long = 137; +pub const SYS_rt_sigtimedwait_time64: c_long = 421; pub const SYS_rt_sigqueueinfo: c_long = 138; pub const SYS_rt_sigsuspend: c_long = 133; pub const SYS_sigaltstack: c_long = 132; @@ -460,7 +459,7 @@ pub const SYS_sched_setscheduler: c_long = 119; pub const SYS_sched_getscheduler: c_long = 120; pub const SYS_sched_get_priority_max: c_long = 125; pub const SYS_sched_get_priority_min: c_long = 126; -pub const SYS_sched_rr_get_interval: c_long = 127; +pub const SYS_sched_rr_get_interval_time64: c_long = 423; pub const SYS_mlock: c_long = 228; pub const SYS_munlock: c_long = 229; pub const SYS_mlockall: c_long = 230; @@ -468,12 +467,11 @@ pub const SYS_munlockall: c_long = 231; pub const SYS_vhangup: c_long = 58; pub const SYS_pivot_root: c_long = 41; pub const SYS_prctl: c_long = 167; -pub const SYS_adjtimex: c_long = 171; -pub const SYS_setrlimit: c_long = 164; +// RISC-V don't have setrlimit, use prlimit64 instead. pub const SYS_chroot: c_long = 51; pub const SYS_sync: c_long = 81; pub const SYS_acct: c_long = 89; -pub const SYS_settimeofday: c_long = 170; +// RISC-V don't have settimeofday, use clock_settime64 instead. pub const SYS_mount: c_long = 40; pub const SYS_umount2: c_long = 39; pub const SYS_swapon: c_long = 224; @@ -500,12 +498,12 @@ pub const SYS_removexattr: c_long = 14; pub const SYS_lremovexattr: c_long = 15; pub const SYS_fremovexattr: c_long = 16; pub const SYS_tkill: c_long = 130; -pub const SYS_futex: c_long = 98; +pub const SYS_futex_time64: c_long = 422; pub const SYS_sched_setaffinity: c_long = 122; pub const SYS_sched_getaffinity: c_long = 123; pub const SYS_io_setup: c_long = 0; pub const SYS_io_destroy: c_long = 1; -pub const SYS_io_getevents: c_long = 4; +pub const SYS_io_pgetevents_time64: c_long = 416; pub const SYS_io_submit: c_long = 2; pub const SYS_io_cancel: c_long = 3; pub const SYS_lookup_dcookie: c_long = 18; @@ -513,17 +511,17 @@ pub const SYS_remap_file_pages: c_long = 234; pub const SYS_getdents64: c_long = 61; pub const SYS_set_tid_address: c_long = 96; pub const SYS_restart_syscall: c_long = 128; -pub const SYS_semtimedop: c_long = 192; +pub const SYS_semtimedop_time64: c_long = 420; pub const SYS_fadvise64: c_long = 223; pub const SYS_timer_create: c_long = 107; -pub const SYS_timer_settime: c_long = 110; -pub const SYS_timer_gettime: c_long = 108; +pub const SYS_timer_settime64: c_long = 409; +pub const SYS_timer_gettime64: c_long = 408; pub const SYS_timer_getoverrun: c_long = 109; pub const SYS_timer_delete: c_long = 111; -pub const SYS_clock_settime: c_long = 112; -pub const SYS_clock_gettime: c_long = 113; -pub const SYS_clock_getres: c_long = 114; -pub const SYS_clock_nanosleep: c_long = 115; +pub const SYS_clock_settime64: c_long = 404; +pub const SYS_clock_gettime64: c_long = 403; +pub const SYS_clock_getres_time64: c_long = 406; +pub const SYS_clock_nanosleep_time64: c_long = 407; pub const SYS_exit_group: c_long = 94; pub const SYS_epoll_ctl: c_long = 21; pub const SYS_tgkill: c_long = 131; @@ -532,8 +530,8 @@ pub const SYS_set_mempolicy: c_long = 237; pub const SYS_get_mempolicy: c_long = 236; pub const SYS_mq_open: c_long = 180; pub const SYS_mq_unlink: c_long = 181; -pub const SYS_mq_timedsend: c_long = 182; -pub const SYS_mq_timedreceive: c_long = 183; +pub const SYS_mq_timedsend_time64: c_long = 418; +pub const SYS_mq_timedreceive_time64: c_long = 419; pub const SYS_mq_notify: c_long = 184; pub const SYS_mq_getsetattr: c_long = 185; pub const SYS_kexec_load: c_long = 104; @@ -550,15 +548,15 @@ pub const SYS_openat: c_long = 56; pub const SYS_mkdirat: c_long = 34; pub const SYS_mknodat: c_long = 33; pub const SYS_fchownat: c_long = 54; -pub const SYS_newfstatat: c_long = 79; +// RISC-V don't have newfstatat, use statx instead. pub const SYS_unlinkat: c_long = 35; pub const SYS_linkat: c_long = 37; pub const SYS_symlinkat: c_long = 36; pub const SYS_readlinkat: c_long = 78; pub const SYS_fchmodat: c_long = 53; pub const SYS_faccessat: c_long = 48; -pub const SYS_pselect6: c_long = 72; -pub const SYS_ppoll: c_long = 73; +pub const SYS_pselect6_time64: c_long = 413; +pub const SYS_ppoll_time64: c_long = 414; pub const SYS_unshare: c_long = 97; pub const SYS_set_robust_list: c_long = 99; pub const SYS_get_robust_list: c_long = 100; @@ -567,12 +565,12 @@ pub const SYS_tee: c_long = 77; pub const SYS_sync_file_range: c_long = 84; pub const SYS_vmsplice: c_long = 75; pub const SYS_move_pages: c_long = 239; -pub const SYS_utimensat: c_long = 88; +pub const SYS_utimensat_time64: c_long = 412; pub const SYS_epoll_pwait: c_long = 22; pub const SYS_timerfd_create: c_long = 85; pub const SYS_fallocate: c_long = 47; -pub const SYS_timerfd_settime: c_long = 86; -pub const SYS_timerfd_gettime: c_long = 87; +pub const SYS_timerfd_settime64: c_long = 411; +pub const SYS_timerfd_gettime64: c_long = 410; pub const SYS_accept4: c_long = 242; pub const SYS_signalfd4: c_long = 74; pub const SYS_eventfd2: c_long = 19; @@ -584,13 +582,13 @@ pub const SYS_preadv: c_long = 69; pub const SYS_pwritev: c_long = 70; pub const SYS_rt_tgsigqueueinfo: c_long = 240; pub const SYS_perf_event_open: c_long = 241; -pub const SYS_recvmmsg: c_long = 243; +pub const SYS_recvmmsg_time64: c_long = 417; pub const SYS_fanotify_init: c_long = 262; pub const SYS_fanotify_mark: c_long = 263; pub const SYS_prlimit64: c_long = 261; pub const SYS_name_to_handle_at: c_long = 264; pub const SYS_open_by_handle_at: c_long = 265; -pub const SYS_clock_adjtime: c_long = 266; +pub const SYS_clock_adjtime64: c_long = 405; pub const SYS_syncfs: c_long = 267; pub const SYS_sendmmsg: c_long = 269; pub const SYS_setns: c_long = 268; From de071942c5101510911c61b70288f2745d9c5188 Mon Sep 17 00:00:00 2001 From: 12101111 Date: Mon, 17 Mar 2025 00:47:31 +0800 Subject: [PATCH 0555/1228] Remove O_FSYNC, musl don't define it. Use O_SYNC instead. (backport ) (cherry picked from commit 60a445c1ff647ae0ae4373d20a75d1132c874509) --- src/unix/linux_like/linux/musl/b32/riscv32/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index abb495642d86c..9c0525cb167b2 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -124,7 +124,6 @@ pub const O_NONBLOCK: c_int = 2048; pub const O_SYNC: c_int = 1052672; pub const O_RSYNC: c_int = 1052672; pub const O_DSYNC: c_int = 4096; -pub const O_FSYNC: c_int = 1052672; pub const MAP_GROWSDOWN: c_int = 256; pub const EDEADLK: c_int = 35; pub const ENAMETOOLONG: c_int = 36; From 05df979b8e4f80026ad2a3f470b1dbdec4c50be2 Mon Sep 17 00:00:00 2001 From: Petr Sumbera Date: Fri, 21 Mar 2025 09:06:51 +0000 Subject: [PATCH 0556/1228] temporarily define O_DIRECT and SIGINFO for Solaris (backport ) (cherry picked from commit 141c6d7d6929a6a2dfc12bcfec0a1d751838b10a) --- libc-test/build.rs | 7 +++++++ src/unix/solarish/solaris.rs | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index f2dde1e5536f2..12c01f4afd00c 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1049,6 +1049,13 @@ fn test_solarish(target: &str) { cfg.define("__EXTENSIONS__", None); cfg.define("_LCONV_C99", None); + // FIXME(solaris): This should be removed once new Nix crate is released. + // See comment in src/unix/solarish/solaris.rs for these. + if is_solaris { + cfg.define("O_DIRECT", Some("0x2000000")); + cfg.define("SIGINFO", Some("41")); + } + headers! { cfg: "aio.h", diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index d0304082dac8b..12e964dcda77c 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -161,6 +161,14 @@ cfg_if! { } } +// FIXME(solaris): O_DIRECT and SIGINFO are NOT available on Solaris. +// But in past they were defined here and thus other crates expected them. +// Latest version v0.29.0 of Nix crate still expects this. Since last +// version of Nix crate is almost one year ago let's define these two +// temporarily before new Nix version is released. +pub const O_DIRECT: c_int = 0x2000000; +pub const SIGINFO: c_int = 41; + pub const _UTMP_USER_LEN: usize = 32; pub const _UTMP_LINE_LEN: usize = 32; pub const _UTMP_ID_LEN: usize = 4; From 5f8ac01756536d99232887e5f7e8de852db46e02 Mon Sep 17 00:00:00 2001 From: jimmycathy Date: Sun, 16 Mar 2025 13:29:43 +0800 Subject: [PATCH 0557/1228] Fix typo in waitpid parameter name Signed-off-by: jimmycathy (backport ) (cherry picked from commit 2c85704cacb4c9bc851d77a2f4318c531a507a2b) --- src/vxworks/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 9ebaae5008bf2..640bfc63ce042 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -1747,7 +1747,7 @@ extern "C" { pub fn getppid() -> pid_t; // wait.h - pub fn waitpid(pid: pid_t, status: *mut c_int, optons: c_int) -> pid_t; + pub fn waitpid(pid: pid_t, status: *mut c_int, options: c_int) -> pid_t; // unistd.h pub fn sysconf(attr: c_int) -> c_long; From 029aa40f967401864e764f9019b7ba21561bc4b7 Mon Sep 17 00:00:00 2001 From: Huang Qi Date: Tue, 25 Mar 2025 17:41:46 +0800 Subject: [PATCH 0558/1228] Add more signal constants for NuttX (backport ) (cherry picked from commit 7103b87de1a868cd4f7fc04607344a7209526b4d) --- src/unix/nuttx/mod.rs | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index 8446eafaf19e6..015a2ba9afbd0 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -517,7 +517,39 @@ pub const _SC_THREAD_STACK_MIN: i32 = 0x58; pub const _SC_GETPW_R_SIZE_MAX: i32 = 0x25; // signal.h -pub const SIGPIPE: i32 = 13; +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGTRAP: c_int = 5; +pub const SIGABRT: c_int = 6; +pub const SIGIOT: c_int = 6; +pub const SIGBUS: c_int = 7; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGUSR1: c_int = 10; +pub const SIGSEGV: c_int = 11; +pub const SIGUSR2: c_int = 12; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; +pub const SIGSTKFLT: c_int = 16; +pub const SIGCHLD: c_int = 17; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGURG: c_int = 23; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGIO: c_int = 29; +pub const SIGPOLL: c_int = SIGIO; +pub const SIGPWR: c_int = 30; +pub const SIGSYS: c_int = 31; // pthread.h pub const PTHREAD_MUTEX_NORMAL: i32 = 0; From e8a4bdf1f7959f7a9f2528c77c3408a2f5a0e8ae Mon Sep 17 00:00:00 2001 From: Berrysoft Date: Mon, 24 Mar 2025 18:07:56 +0800 Subject: [PATCH 0559/1228] Add new socket options for cygwin (backport ) (cherry picked from commit 29d3d1428a563eb20d417d1c967816fa5d914eb5) --- src/unix/cygwin/mod.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 312324a5e80fd..078492d00a2c3 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -974,6 +974,8 @@ pub const SOL_UDP: c_int = 17; pub const IPTOS_LOWDELAY: u8 = 0x10; pub const IPTOS_THROUGHPUT: u8 = 0x08; pub const IPTOS_RELIABILITY: u8 = 0x04; +pub const IPTOS_LOWCOST: u8 = 0x02; +pub const IPTOS_MINCOST: u8 = IPTOS_LOWCOST; pub const IP_DEFAULT_MULTICAST_TTL: c_int = 1; pub const IP_DEFAULT_MULTICAST_LOOP: c_int = 1; pub const IP_OPTIONS: c_int = 1; @@ -990,8 +992,18 @@ pub const IP_DROP_SOURCE_MEMBERSHIP: c_int = 16; pub const IP_BLOCK_SOURCE: c_int = 17; pub const IP_UNBLOCK_SOURCE: c_int = 18; pub const IP_PKTINFO: c_int = 19; +pub const IP_RECVTTL: c_int = 21; pub const IP_UNICAST_IF: c_int = 31; +pub const IP_RECVTOS: c_int = 40; +pub const IP_MTU_DISCOVER: c_int = 71; +pub const IP_MTU: c_int = 73; +pub const IP_RECVERR: c_int = 75; +pub const IP_PMTUDISC_WANT: c_int = 0; +pub const IP_PMTUDISC_DO: c_int = 1; +pub const IP_PMTUDISC_DONT: c_int = 2; +pub const IP_PMTUDISC_PROBE: c_int = 3; pub const IPV6_HOPOPTS: c_int = 1; +pub const IPV6_HDRINCL: c_int = 2; pub const IPV6_UNICAST_HOPS: c_int = 4; pub const IPV6_MULTICAST_IF: c_int = 9; pub const IPV6_MULTICAST_HOPS: c_int = 10; @@ -1010,6 +1022,13 @@ pub const IPV6_RTHDR: c_int = 32; pub const IPV6_RECVRTHDR: c_int = 38; pub const IPV6_TCLASS: c_int = 39; pub const IPV6_RECVTCLASS: c_int = 40; +pub const IPV6_MTU_DISCOVER: c_int = 71; +pub const IPV6_MTU: c_int = 72; +pub const IPV6_RECVERR: c_int = 75; +pub const IPV6_PMTUDISC_WANT: c_int = 0; +pub const IPV6_PMTUDISC_DO: c_int = 1; +pub const IPV6_PMTUDISC_DONT: c_int = 2; +pub const IPV6_PMTUDISC_PROBE: c_int = 3; pub const MCAST_JOIN_GROUP: c_int = 41; pub const MCAST_LEAVE_GROUP: c_int = 42; pub const MCAST_BLOCK_SOURCE: c_int = 43; From 02741e0538dba60eeae4808a598de1d6933cf9c1 Mon Sep 17 00:00:00 2001 From: Kartik Agarwala Date: Tue, 25 Mar 2025 13:21:10 +0530 Subject: [PATCH 0560/1228] Add missing Signal related consts (backport ) (cherry picked from commit c3dab47421c7558bdc0df921367f3d23be30ddd6) --- src/vxworks/mod.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 640bfc63ce042..200badb8deb11 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -967,11 +967,34 @@ pub const SIGCONT: c_int = 19; pub const SIGCHLD: c_int = 20; pub const SIGTTIN: c_int = 21; pub const SIGTTOU: c_int = 22; +pub const SIGUSR1: c_int = 30; +pub const SIGUSR2: c_int = 31; +pub const SIGPOLL: c_int = 32; +pub const SIGPROF: c_int = 33; +pub const SIGSYS: c_int = 34; +pub const SIGURG: c_int = 35; +pub const SIGVTALRM: c_int = 36; +pub const SIGXCPU: c_int = 37; +pub const SIGXFSZ: c_int = 38; +pub const SIGRTMIN: c_int = 48; + +pub const SIGIO: c_int = SIGRTMIN; +pub const SIGWINCH: c_int = SIGRTMIN + 5; +pub const SIGLOST: c_int = SIGRTMIN + 6; pub const SIG_BLOCK: c_int = 1; pub const SIG_UNBLOCK: c_int = 2; pub const SIG_SETMASK: c_int = 3; +pub const SA_NOCLDSTOP: c_int = 0x0001; +pub const SA_SIGINFO: c_int = 0x0002; +pub const SA_ONSTACK: c_int = 0x0004; +pub const SA_INTERRUPT: c_int = 0x0008; +pub const SA_RESETHAND: c_int = 0x0010; +pub const SA_RESTART: c_int = 0x0020; +pub const SA_NODEFER: c_int = 0x0040; +pub const SA_NOCLDWAIT: c_int = 0x0080; + pub const SI_SYNC: c_int = 0; pub const SI_USER: c_int = -1; pub const SI_QUEUE: c_int = -2; From 5875016d7b7687a73d08ff812153427b2b45853f Mon Sep 17 00:00:00 2001 From: Kartik Agarwala Date: Tue, 25 Mar 2025 13:25:05 +0530 Subject: [PATCH 0561/1228] Add missing d_type member in dirent struct (backport ) (cherry picked from commit ba681b3038f98a3c92a3044ad5e50450488e5a2c) --- src/vxworks/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 200badb8deb11..3a44adc7ea5b0 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -410,6 +410,7 @@ s_no_extra_traits! { pub struct dirent { pub d_ino: crate::ino_t, pub d_name: [c_char; _PARM_NAME_MAX as usize + 1], + pub d_type: c_uchar, } pub struct sockaddr_un { @@ -458,6 +459,7 @@ cfg_if! { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_name", &&self.d_name[..]) + .field("d_type", &self.d_type) .finish() } } From f05f950a05164d863df2eb2cac3f7ba988216bae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AE=87=E9=80=B8?= Date: Mon, 31 Mar 2025 00:49:23 +0800 Subject: [PATCH 0562/1228] Fix test on cygwin And fill semver file for cygwin. (backport ) (cherry picked from commit 5c8804bedbe51db13fff08dcd31c2afc1c0de31c) --- libc-test/build.rs | 8 +- libc-test/semver/cygwin.txt | 851 ++++++++++++++++++++++++++++++++++++ libc-test/test/makedev.rs | 1 + src/unix/cygwin/mod.rs | 29 +- src/unix/mod.rs | 1 + 5 files changed, 872 insertions(+), 18 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 12c01f4afd00c..3824ac28592c7 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -13,7 +13,7 @@ fn src_hotfix_dir() -> PathBuf { fn do_cc() { let target = env::var("TARGET").unwrap(); - if cfg!(unix) { + if cfg!(unix) || target.contains("cygwin") { let exclude = ["redox", "wasi", "wali"]; if !exclude.iter().any(|x| target.contains(x)) { let mut cmsg = cc::Build::new(); @@ -700,6 +700,7 @@ fn test_cygwin(target: &str) { "dlfcn.h", "errno.h", "fcntl.h", + "fnmatch.h", "grp.h", "iconv.h", "langinfo.h", @@ -710,11 +711,13 @@ fn test_cygwin(target: &str) { "netinet/tcp.h", "poll.h", "pthread.h", + "pty.h", "pwd.h", "resolv.h", "sched.h", "semaphore.h", "signal.h", + "spawn.h", "stddef.h", "stdlib.h", "string.h", @@ -734,6 +737,7 @@ fn test_cygwin(target: &str) { "sys/uio.h", "sys/un.h", "sys/utsname.h", + "sys/vfs.h", "syslog.h", "termios.h", "unistd.h", @@ -853,7 +857,7 @@ fn test_cygwin(target: &str) { } }); - cfg.generate("../src/lib.rs", "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } fn test_windows(target: &str) { diff --git a/libc-test/semver/cygwin.txt b/libc-test/semver/cygwin.txt index 0c953574c0ad6..2b0b827674fdf 100644 --- a/libc-test/semver/cygwin.txt +++ b/libc-test/semver/cygwin.txt @@ -1,5 +1,262 @@ +AF_APPLETALK +AF_CCITT +AF_CHAOS +AF_DATAKIT +AF_DECnet +AF_DLI +AF_ECMA +AF_HYLINK +AF_IMPLINK +AF_ISO +AF_LAT +AF_LOCAL +AF_NETBIOS +AF_NS +AF_OSI +AF_PUP +AF_SNA +AI_ADDRCONFIG +AI_ALL +AI_CANONNAME +AI_NUMERICHOST +AI_NUMERICSERV +AI_PASSIVE +AI_V4MAPPED +ARG_MAX +AT_EACCESS +AT_EMPTY_PATH +AT_FDCWD +AT_REMOVEDIR +AT_SYMLINK_FOLLOW +AT_SYMLINK_NOFOLLOW +B1000000 +B1152000 +B1500000 +B2000000 +B2500000 +B3000000 +B460800 +B500000 +B576000 +B921600 +BIG_ENDIAN +BS0 +BS1 +BSDLY +BUFSIZ +BUS_ADRALN +BUS_ADRERR +BUS_OBJERR +CBAUD +CBAUDEX +CHILD_MAX +CLD_CONTINUED +CLD_DUMPED +CLD_EXITED +CLD_KILLED +CLD_STOPPED +CLD_TRAPPED +CLOCK_BOOTTIME +CLOCK_BOOTTIME_ALARM +CLOCK_MONOTONIC_COARSE +CLOCK_MONOTONIC_RAW +CLOCK_PROCESS_CPUTIME_ID +CLOCK_REALTIME_ALARM +CLOCK_REALTIME_COARSE +CLOCK_THREAD_CPUTIME_ID +CMSPAR +CPU_SETSIZE +CR0 +CR1 +CR2 +CR3 +CRDLY +CRTSCTS +EADV +EAI_AGAIN +EAI_BADFLAGS +EAI_FAIL +EAI_FAMILY +EAI_MEMORY +EAI_NODATA +EAI_NONAME +EAI_OVERFLOW +EAI_SERVICE +EAI_SOCKTYPE +EBADE +EBADFD +EBADR +EBADRQC +EBADSLT +EBFONT +ECHOCTL +ECHOKE +ECHRNG +ECOMM +EDEADLOCK +EDOTDOT +EFTYPE +EL2HLT +EL2NSYNC +EL3HLT +EL3RST +ELIBACC +ELIBBAD +ELIBEXEC +ELIBMAX +ELIBSCN +ELNRNG +EMULTIHOP +ENOANO +ENOCSI +ENODATA +ENOLINK +ENOMEDIUM +ENONET +ENOPKG +ENOSR +ENOSTR +ENOTRECOVERABLE +ENOTSUP +ENOTUNIQ +EOWNERDEAD +EPROCLIM +EREMCHG +EREMOTE +ESOCKTNOSUPPORT +ESRMNT +ESTRPIPE +ETIME +ETOOMANYREFS +EUNATCH +EUSERS +EXFULL +FALLOC_FL_COLLAPSE_RANGE +FALLOC_FL_INSERT_RANGE +FALLOC_FL_KEEP_SIZE +FALLOC_FL_PUNCH_HOLE +FALLOC_FL_UNSHARE_RANGE +FALLOC_FL_ZERO_RANGE +FF0 +FF1 +FFDLY +FIOASYNC +FIONREAD +FLUSHO FORK_NO_RELOAD FORK_RELOAD +F_CNVT +F_GETOWN +F_LOCK +F_RDLCK +F_RGETLK +F_RSETLK +F_RSETLKW +F_SETOWN +F_TEST +F_TLOCK +F_ULOCK +F_UNLCK +F_WRLCK +GRND_NONBLOCK +GRND_RANDOM +IFF_BROADCAST +IFF_DORMANT +IFF_LOOPBACK +IFF_LOWER_UP +IFF_MULTICAST +IFF_NOARP +IFF_NOTRAILERS +IFF_POINTOPOINT +IFF_PROMISC +IFF_RUNNING +IFF_UP +IMAXBEL +IOV_MAX +IPPROTO_AH +IPPROTO_DSTOPTS +IPPROTO_EGP +IPPROTO_ESP +IPPROTO_FRAGMENT +IPPROTO_HOPOPTS +IPPROTO_IDP +IPPROTO_IGMP +IPPROTO_IPIP +IPPROTO_MAX +IPPROTO_NONE +IPPROTO_PUP +IPPROTO_RAW +IPPROTO_ROUTING +IPTOS_LOWDELAY +IPTOS_RELIABILITY +IPTOS_THROUGHPUT +IPV6_ADD_MEMBERSHIP +IPV6_CHECKSUM +IPV6_DONTFRAG +IPV6_DROP_MEMBERSHIP +IPV6_HOPLIMIT +IPV6_HOPOPTS +IPV6_JOIN_GROUP +IPV6_LEAVE_GROUP +IPV6_PKTINFO +IPV6_RECVRTHDR +IPV6_RECVTCLASS +IPV6_RTHDR +IPV6_TCLASS +IPV6_UNICAST_IF +IP_ADD_SOURCE_MEMBERSHIP +IP_BLOCK_SOURCE +IP_DEFAULT_MULTICAST_LOOP +IP_DEFAULT_MULTICAST_TTL +IP_DROP_SOURCE_MEMBERSHIP +IP_HDRINCL +IP_OPTIONS +IP_PKTINFO +IP_TOS +IP_UNBLOCK_SOURCE +IP_UNICAST_IF +ITIMER_PROF +ITIMER_REAL +ITIMER_VIRTUAL +IUCLC +IUTF8 +LC_ALL +LC_ALL_MASK +LC_COLLATE +LC_COLLATE_MASK +LC_CTYPE +LC_CTYPE_MASK +LC_GLOBAL_LOCALE +LC_MESSAGES +LC_MESSAGES_MASK +LC_MONETARY +LC_MONETARY_MASK +LC_NUMERIC +LC_NUMERIC_MASK +LC_TIME +LC_TIME_MASK +LITTLE_ENDIAN +LOCK_EX +LOCK_NB +LOCK_SH +LOCK_UN +MADV_DONTNEED +MADV_NORMAL +MADV_RANDOM +MADV_SEQUENTIAL +MADV_WILLNEED +MAP_FILE +MAP_NORESERVE +MAP_TYPE +MCAST_BLOCK_SOURCE +MCAST_EXCLUDE +MCAST_INCLUDE +MCAST_JOIN_GROUP +MCAST_JOIN_SOURCE_GROUP +MCAST_LEAVE_GROUP +MCAST_LEAVE_SOURCE_GROUP +MCAST_UNBLOCK_SOURCE +MINSIGSTKSZ MOUNT_AUTOMATIC MOUNT_BIND MOUNT_CYGDRIVE @@ -20,8 +277,602 @@ MOUNT_SPARSE MOUNT_SYSTEM MOUNT_TEXT MOUNT_USER_TEMP +MSG_BCAST +MSG_CMSG_CLOEXEC +MSG_DONTWAIT +MSG_MCAST +NGROUPS_MAX +NI_DGRAM +NI_MAXSERV +NI_NAMEREQD +NI_NOFQDN +NI_NUMERICHOST +NI_NUMERICSERV +NL0 +NL1 +NLDLY +OFDEL +OFILL +OLCUC +O_DIRECT +O_DSYNC +O_EXEC +O_NOATIME +O_NOCTTY +O_PATH +O_RSYNC +O_SEARCH +O_SYNC +O_TMPFILE +PF_APPLETALK +PF_CCITT +PF_CHAOS +PF_DATAKIT +PF_DECnet +PF_DLI +PF_HYLINK +PF_IMPLINK +PF_ISO +PF_LAT +PF_LOCAL +PF_NETBIOS +PF_NS +PF_OSI +PF_PUP +PF_SNA +PIPE_BUF +POLLRDBAND +POLLRDNORM +POLLWRBAND +POLLWRNORM +POSIX_FADV_DONTNEED +POSIX_FADV_NOREUSE +POSIX_FADV_NORMAL +POSIX_FADV_RANDOM +POSIX_FADV_SEQUENTIAL +POSIX_FADV_WILLNEED +POSIX_MADV_DONTNEED +POSIX_MADV_NORMAL +POSIX_MADV_RANDOM +POSIX_MADV_SEQUENTIAL +POSIX_MADV_WILLNEED +POSIX_SPAWN_RESETIDS +POSIX_SPAWN_SETPGROUP +POSIX_SPAWN_SETSCHEDPARAM +POSIX_SPAWN_SETSCHEDULER +POSIX_SPAWN_SETSIGDEF +POSIX_SPAWN_SETSIGMASK +PTHREAD_CREATE_DETACHED +PTHREAD_CREATE_JOINABLE +PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP +PTHREAD_MUTEX_DEFAULT +PTHREAD_MUTEX_ERRORCHECK +PTHREAD_PROCESS_PRIVATE +PTHREAD_PROCESS_SHARED +PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP +PTHREAD_STACK_MIN +RLIMIT_AS +RLIMIT_CORE +RLIMIT_CPU +RLIMIT_DATA +RLIMIT_FSIZE +RLIMIT_NLIMITS +RLIMIT_NOFILE +RLIMIT_STACK +RLIM_INFINITY +RLIM_NLIMITS +RLIM_SAVED_CUR +RLIM_SAVED_MAX +RTLD_DEEPBIND +RTLD_NODELETE +RTLD_NOLOAD +RUSAGE_CHILDREN +RUSAGE_SELF +SCHED_FIFO +SCHED_OTHER +SCHED_RR +SCM_CREDENTIALS +SCM_RIGHTS +SEM_FAILED +SIGEMT +SIGEV_NONE +SIGEV_SIGNAL +SIGEV_THREAD +SIGPOLL +SIGPWR +SIGSTKSZ +SIOCGIFADDR +SIOCGIFBRDADDR +SIOCGIFCONF +SIOCGIFDSTADDR +SIOCGIFFLAGS +SIOCGIFHWADDR +SIOCGIFINDEX +SIOCGIFMETRIC +SIOCGIFMTU +SIOCGIFNETMASK +SIOGIFINDEX +SOCK_CLOEXEC +SOCK_NONBLOCK +SOCK_RAW +SOCK_RDM +SOL_IP +SOL_IPV6 +SOL_TCP +SOL_UDP +SOMAXCONN +SO_PASSCRED +SO_PEERCRED +SO_USELOOPBACK +SS_DISABLE +SS_ONSTACK +ST_NOSUID +ST_RDONLY +S_BLKSIZE +S_ENFMT +S_IEXEC +S_IREAD +S_IWRITE +TAB0 +TAB1 +TAB2 +TAB3 +TABDLY +TCFLSH +TCGETA +TCP_FASTOPEN +TCP_KEEPCNT +TCP_KEEPIDLE +TCP_KEEPINTVL +TCP_MAXSEG +TCP_QUICKACK +TCP_USER_TIMEOUT +TCSETA +TCSETAF +TCSETAW +TIMER_ABSTIME +TIOCCBRK +TIOCGPGRP +TIOCINQ +TIOCLINUX +TIOCMBIC +TIOCMBIS +TIOCMGET +TIOCMSET +TIOCM_CAR +TIOCM_CD +TIOCM_CTS +TIOCM_DTR +TIOCM_RI +TIOCM_RNG +TIOCM_RTS +TIOCPKT +TIOCPKT_DATA +TIOCPKT_DOSTOP +TIOCPKT_FLUSHREAD +TIOCPKT_FLUSHWRITE +TIOCPKT_NOSTOP +TIOCPKT_START +TIOCPKT_STOP +TIOCSBRK +TIOCSCTTY +TIOCSPGRP +UTIME_NOW +UTIME_OMIT +VDISCARD +VLNEXT +VREPRINT +VSWTC +VT0 +VT1 +VTDLY WINDOWS_HWND WINDOWS_POST WINDOWS_SEND +XTABS +_CS_PATH +_IONBF +_PC_2_SYMLINKS +_PC_ALLOC_SIZE_MIN +_PC_ASYNC_IO +_PC_FILESIZEBITS +_PC_PRIO_IO +_PC_REC_INCR_XFER_SIZE +_PC_REC_MAX_XFER_SIZE +_PC_REC_MIN_XFER_SIZE +_PC_REC_XFER_ALIGN +_PC_SYMLINK_MAX +_PC_SYNC_IO +_PC_TIMESTAMP_RESOLUTION +_POSIX_VDISABLE +_SC_2_CHAR_TERM +_SC_2_C_BIND +_SC_2_C_DEV +_SC_2_FORT_DEV +_SC_2_FORT_RUN +_SC_2_LOCALEDEF +_SC_2_PBS +_SC_2_PBS_ACCOUNTING +_SC_2_PBS_CHECKPOINT +_SC_2_PBS_LOCATE +_SC_2_PBS_MESSAGE +_SC_2_PBS_TRACK +_SC_2_SW_DEV +_SC_2_UPE +_SC_2_VERSION +_SC_ADVISORY_INFO +_SC_AIO_LISTIO_MAX +_SC_AIO_MAX +_SC_AIO_PRIO_DELTA_MAX +_SC_ASYNCHRONOUS_IO +_SC_ATEXIT_MAX +_SC_AVPHYS_PAGES +_SC_BARRIERS +_SC_BC_BASE_MAX +_SC_BC_DIM_MAX +_SC_BC_SCALE_MAX +_SC_BC_STRING_MAX +_SC_CLOCK_SELECTION +_SC_COLL_WEIGHTS_MAX +_SC_CPUTIME +_SC_DELAYTIMER_MAX +_SC_EXPR_NEST_MAX +_SC_FSYNC +_SC_GETGR_R_SIZE_MAX +_SC_GETPW_R_SIZE_MAX +_SC_IOV_MAX +_SC_IPV6 +_SC_JOB_CONTROL +_SC_LEVEL1_DCACHE_ASSOC +_SC_LEVEL1_DCACHE_LINESIZE +_SC_LEVEL1_DCACHE_SIZE +_SC_LEVEL1_ICACHE_ASSOC +_SC_LEVEL1_ICACHE_LINESIZE +_SC_LEVEL1_ICACHE_SIZE +_SC_LEVEL2_CACHE_ASSOC +_SC_LEVEL2_CACHE_LINESIZE +_SC_LEVEL2_CACHE_SIZE +_SC_LEVEL3_CACHE_ASSOC +_SC_LEVEL3_CACHE_LINESIZE +_SC_LEVEL3_CACHE_SIZE +_SC_LEVEL4_CACHE_ASSOC +_SC_LEVEL4_CACHE_LINESIZE +_SC_LEVEL4_CACHE_SIZE +_SC_LINE_MAX +_SC_LOGIN_NAME_MAX +_SC_MAPPED_FILES +_SC_MEMLOCK +_SC_MEMLOCK_RANGE +_SC_MEMORY_PROTECTION +_SC_MESSAGE_PASSING +_SC_MONOTONIC_CLOCK +_SC_MQ_OPEN_MAX +_SC_MQ_PRIO_MAX +_SC_NPROCESSORS_CONF +_SC_NPROCESSORS_ONLN +_SC_PHYS_PAGES +_SC_PRIORITIZED_IO +_SC_PRIORITY_SCHEDULING +_SC_RAW_SOCKETS +_SC_READER_WRITER_LOCKS +_SC_REALTIME_SIGNALS +_SC_REGEXP +_SC_RE_DUP_MAX +_SC_RTSIG_MAX +_SC_SAVED_IDS +_SC_SEMAPHORES +_SC_SEM_NSEMS_MAX +_SC_SEM_VALUE_MAX +_SC_SHARED_MEMORY_OBJECTS +_SC_SHELL +_SC_SIGQUEUE_MAX +_SC_SPAWN +_SC_SPIN_LOCKS +_SC_SPORADIC_SERVER +_SC_SS_REPL_MAX +_SC_SYNCHRONIZED_IO +_SC_THREADS +_SC_THREAD_ATTR_STACKADDR +_SC_THREAD_ATTR_STACKSIZE +_SC_THREAD_CPUTIME +_SC_THREAD_DESTRUCTOR_ITERATIONS +_SC_THREAD_KEYS_MAX +_SC_THREAD_PRIORITY_SCHEDULING +_SC_THREAD_PRIO_CEILING +_SC_THREAD_PRIO_INHERIT +_SC_THREAD_PRIO_PROTECT +_SC_THREAD_PROCESS_SHARED +_SC_THREAD_ROBUST_PRIO_INHERIT +_SC_THREAD_ROBUST_PRIO_PROTECT +_SC_THREAD_SAFE_FUNCTIONS +_SC_THREAD_SPORADIC_SERVER +_SC_THREAD_STACK_MIN +_SC_THREAD_THREADS_MAX +_SC_TIMEOUTS +_SC_TIMERS +_SC_TIMER_MAX +_SC_TRACE +_SC_TRACE_EVENT_FILTER +_SC_TRACE_EVENT_NAME_MAX +_SC_TRACE_INHERIT +_SC_TRACE_LOG +_SC_TRACE_NAME_MAX +_SC_TRACE_SYS_MAX +_SC_TRACE_USER_EVENT_MAX +_SC_TYPED_MEMORY_OBJECTS +_SC_V6_ILP32_OFF32 +_SC_V6_ILP32_OFFBIG +_SC_V6_LP64_OFF64 +_SC_V6_LPBIG_OFFBIG +_SC_V7_ILP32_OFF32 +_SC_V7_ILP32_OFFBIG +_SC_V7_LP64_OFF64 +_SC_V7_LPBIG_OFFBIG +_SC_XBS5_ILP32_OFF32 +_SC_XBS5_ILP32_OFFBIG +_SC_XBS5_LP64_OFF64 +_SC_XBS5_LPBIG_OFFBIG +_SC_XOPEN_CRYPT +_SC_XOPEN_ENH_I18N +_SC_XOPEN_LEGACY +_SC_XOPEN_REALTIME +_SC_XOPEN_REALTIME_THREADS +_SC_XOPEN_SHM +_SC_XOPEN_STREAMS +_SC_XOPEN_UNIX +_SC_XOPEN_UUCP +_SC_XOPEN_VERSION +__errno +_fpstate +_off64_t +_uc_fpxreg +_uc_xmmreg +abs +accept4 +arc4random +arc4random_buf +arc4random_uniform +asctime_r +basename +bintime +caddr_t +clearenv +clock_getres +clock_settime +cmsghdr +cpu_set_t +ctime_r cygwin_umount +daemon +dirfd dlfork +drand48 +dup3 +duplocale +eaccess +endpwent +erand48 +euidaccess +execvpe +explicit_bzero +faccessat +fallocate +fd_mask +fdatasync +fexecve +ffs +ffsl +ffsll +fls +flsl +flsll +forkpty +freelocale +fstatfs +futimes +futimesat +getdomainname +getdtablesize +getentropy +getgrgid_r +getgrnam_r +getgrouplist +gethostid +getitimer +getloadavg +getnameinfo +getpagesize +getpeereid +getpriority +getpt +getpwent +getpwnam_r +getpwuid_r +getrandom +getrlimit +iconv_t +id_t +if_freenameindex +if_nameindex +ifconf +ifreq +in6_pktinfo +in_pktinfo +initgroups +ip_mreq_source +itimerspec +jrand48 +key_t +labs +lcong48 +loff_t +lrand48 +lutimes +madvise +major +makedev +max_align_t +mcontext_t +memalign +memmem +memrchr +minor +mkfifoat +mknodat +mkostemp +mkostemps +mkstemps +mount +mrand48 +msghdr +newlocale +nl_item +nrand48 +openpty +pipe2 +posix_fadvise +posix_fallocate +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_spawn_file_actions_t +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_spawnattr_t +posix_spawnp +ppoll +pthread_atfork +pthread_attr_getguardsize +pthread_attr_getschedparam +pthread_attr_getstack +pthread_attr_setschedparam +pthread_barrier_destroy +pthread_barrier_init +pthread_barrier_t +pthread_barrier_wait +pthread_barrierattr_destroy +pthread_barrierattr_getpshared +pthread_barrierattr_init +pthread_barrierattr_t +pthread_cancel +pthread_condattr_getclock +pthread_condattr_getpshared +pthread_condattr_setclock +pthread_condattr_setpshared +pthread_getaffinity_np +pthread_getattr_np +pthread_getcpuclockid +pthread_getname_np +pthread_getschedparam +pthread_kill +pthread_mutex_timedlock +pthread_mutexattr_getprotocol +pthread_mutexattr_getpshared +pthread_mutexattr_setprotocol +pthread_mutexattr_setpshared +pthread_rwlockattr_getpshared +pthread_rwlockattr_setpshared +pthread_setaffinity_np +pthread_setname_np +pthread_setschedparam +pthread_setschedprio +pthread_sigmask +pthread_sigqueue +pthread_spin_destroy +pthread_spin_init +pthread_spin_lock +pthread_spin_trylock +pthread_spin_unlock +pthread_spinlock_t +ptsname_r +qsort_r +rand +reallocarray +reallocf +recvmsg +register_t +sbrk +sched_get_priority_max +sched_get_priority_min +sched_getaffinity +sched_getcpu +sched_getparam +sched_getscheduler +sched_param +sched_rr_get_interval +sched_setaffinity +sched_setparam +sched_setscheduler +seed48 +seekdir +sem +sem_close +sem_destroy +sem_getvalue +sem_init +sem_open +sem_timedwait +sem_unlink +sendmsg +setgroups +sethostname +setitimer +setpriority +setpwent +setrlimit +settimeofday +sigaltstack +sigevent +siginfo_t +sigsuspend +sigtimedwait +sigwait +sigwaitinfo +srand +srand48 +stack_t +statfs +strcasecmp_l +strftime +strncasecmp_l +strptime +strsep +sync +telldir +timer_create +timer_delete +timer_getoverrun +timer_gettime +timer_settime +timer_t +timingsafe_bcmp +timingsafe_memcmp +u_char +u_int +u_long +u_short +ucontext_t +ucred +umount +useconds_t +uselocale +utimensat +vhangup +vm_offset_t +vm_size_t diff --git a/libc-test/test/makedev.rs b/libc-test/test/makedev.rs index 374294ebe11d6..61e1d501be280 100644 --- a/libc-test/test/makedev.rs +++ b/libc-test/test/makedev.rs @@ -16,6 +16,7 @@ mod ret { target_os = "nto", target_os = "hurd", target_os = "openbsd", + target_os = "cygwin", ))] mod ret { pub type MajorRetType = libc::c_uint; diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 078492d00a2c3..9fe63985f1180 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -511,7 +511,7 @@ s_no_extra_traits! { } pub struct utsname { - pub sysname: [c_char; 65], + pub sysname: [c_char; 66], pub nodename: [c_char; 65], pub release: [c_char; 65], pub version: [c_char; 65], @@ -1911,14 +1911,6 @@ f! { set1.bits == set2.bits } - pub fn major(dev: dev_t) -> c_uint { - ((dev >> 16) & 0xffff) as c_uint - } - - pub fn minor(dev: dev_t) -> c_uint { - (dev & 0xffff) as c_uint - } - pub fn CMSG_LEN(length: c_uint) -> c_uint { CMSG_ALIGN(::core::mem::size_of::()) as c_uint + length } @@ -1957,6 +1949,14 @@ safe_f! { (ma << 16) | (mi & 0xffff) } + pub {const} fn major(dev: dev_t) -> c_uint { + ((dev >> 16) & 0xffff) as c_uint + } + + pub {const} fn minor(dev: dev_t) -> c_uint { + (dev & 0xffff) as c_uint + } + pub {const} fn WIFEXITED(status: c_int) -> bool { (status & 0xff) == 0 } @@ -2203,8 +2203,6 @@ extern "C" { 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 memccpy(dest: *mut c_void, src: *const c_void, c: c_int, count: size_t) -> *mut c_void; - pub fn memmem( haystack: *const c_void, haystacklen: size_t, @@ -2224,17 +2222,16 @@ extern "C" { pub fn dup3(src: c_int, dst: c_int, flags: c_int) -> c_int; pub fn eaccess(pathname: *const c_char, mode: c_int) -> c_int; pub fn euidaccess(pathname: *const c_char, mode: c_int) -> c_int; - // pub fn execlpe(path: *const c_char, arg0: *const c_char, ...) -> c_int; pub fn execvpe( file: *const c_char, - argv: *const *const c_char, - envp: *const *const c_char, + argv: *const *mut c_char, + envp: *const *mut c_char, ) -> c_int; pub fn faccessat(dirfd: c_int, pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; - pub fn fexecve(fd: c_int, argv: *const *const c_char, envp: *const *const c_char) -> c_int; + pub fn fexecve(fd: c_int, argv: *const *mut c_char, envp: *const *mut c_char) -> c_int; pub fn fdatasync(fd: c_int) -> c_int; pub fn getdomainname(name: *mut c_char, len: size_t) -> c_int; @@ -2395,7 +2392,7 @@ extern "C" { ) -> c_int; pub fn pthread_setname_np(thread: pthread_t, name: *const c_char) -> c_int; - pub fn pthread_sigqueue(thread: *mut pthread_t, sig: c_int, value: sigval) -> c_int; + pub fn pthread_sigqueue(thread: pthread_t, sig: c_int, value: sigval) -> c_int; pub fn ioctl(fd: c_int, request: c_int, ...) -> c_int; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index b2de87ebf8477..32af26a8a4056 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -351,6 +351,7 @@ cfg_if! { target_os = "freebsd", target_os = "android", target_os = "openbsd", + target_os = "cygwin", ))] { pub const FNM_PATHNAME: c_int = 1 << 1; pub const FNM_NOESCAPE: c_int = 1 << 0; From 17c585a49c227bd2ed0f4c541688e2963ca87851 Mon Sep 17 00:00:00 2001 From: Tero Huttunen Date: Sat, 22 Mar 2025 15:09:36 +0200 Subject: [PATCH 0563/1228] linux: add missing pthread_attr_setstack Adds missing pthread_attr_setstack. The getter function pthread_attr_getstack is already defined. (backport ) (cherry picked from commit 087ede1f66157ead2eca6164921fad46e7573346) --- libc-test/semver/linux.txt | 1 + src/unix/linux_like/mod.rs | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 9c09671613959..e351f6956710d 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -4032,6 +4032,7 @@ pthread_attr_setguardsize pthread_attr_setinheritsched pthread_attr_setschedparam pthread_attr_setschedpolicy +pthread_attr_setstack pthread_barrier_destroy pthread_barrier_init pthread_barrier_t diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index b3e6281f48d28..875814dcc08e1 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1784,6 +1784,11 @@ extern "C" { stackaddr: *mut *mut c_void, stacksize: *mut size_t, ) -> c_int; + pub fn pthread_attr_setstack( + attr: *mut crate::pthread_attr_t, + stackaddr: *mut c_void, + stacksize: size_t, + ) -> c_int; pub fn memalign(align: size_t, size: size_t) -> *mut c_void; pub fn setgroups(ngroups: size_t, ptr: *const crate::gid_t) -> c_int; pub fn pipe2(fds: *mut c_int, flags: c_int) -> c_int; From cb50c4a788e2ced2936441b36cdde225c2e01972 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Sat, 15 Mar 2025 18:19:16 -0700 Subject: [PATCH 0564/1228] Add timerfd APIs for illumos and NetBSD. illumos and NetBSD >= 10 support Linux-compatble timerfd APIs. This is based on the headers for [illumos] and [NetBSD]. [illumos]: https://code.illumos.org/plugins/gitiles/illumos-gate/+/refs/heads/master/usr/src/uts/common/sys/timerfd.h#34 [NetBSD]: https://nxr.netbsd.org/xref/src/sys/sys/timerfd.h#44 (backport ) (cherry picked from commit b2b17022cbd4190cbf342961f1162daee4bb037f) --- libc-test/semver/illumos.txt | 7 +++++++ libc-test/semver/netbsd.txt | 7 +++++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 16 ++++++++++++++++ src/unix/solarish/illumos.rs | 15 +++++++++++++++ 4 files changed, 45 insertions(+) diff --git a/libc-test/semver/illumos.txt b/libc-test/semver/illumos.txt index b39aba51d1b5f..67d990269d27a 100644 --- a/libc-test/semver/illumos.txt +++ b/libc-test/semver/illumos.txt @@ -15,6 +15,10 @@ POSIX_FADV_RANDOM POSIX_FADV_SEQUENTIAL POSIX_FADV_WILLNEED POSIX_SPAWN_SETSID +TFD_CLOEXEC +TFD_NONBLOCK +TFD_TIMER_ABSTIME +TFD_TIMER_CANCEL_ON_SET posix_fadvise posix_fallocate posix_spawn_file_actions_addfchdir_np @@ -23,3 +27,6 @@ pthread_attr_getstackaddr pthread_attr_setstack ptsname_r syncfs +timerfd_create +timerfd_gettime +timerfd_settime diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index d9e1b66c233a4..57e1cf5c4bd1b 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -1042,6 +1042,10 @@ TCP_KEEPINIT TCP_KEEPINTVL TCP_MAXSEG TCP_MD5SIG +TFD_CLOEXEC +TFD_NONBLOCK +TFD_TIMER_ABSTIME +TFD_TIMER_CANCEL_ON_SET THOUSEP TIMER_ABSTIME TIME_DEL @@ -1613,6 +1617,9 @@ timer_getoverrun timer_gettime timer_settime timer_t +timerfd_create +timerfd_gettime +timerfd_settime timex truncate ttyname_r diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 8ede2b603d100..9f44907a98b7c 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2409,6 +2409,12 @@ pub const RTA_TAG: c_int = 0x100; pub const RTAX_TAG: c_int = 8; pub const RTAX_MAX: c_int = 9; +// sys/timerfd.h +pub const TFD_CLOEXEC: i32 = crate::O_CLOEXEC; +pub const TFD_NONBLOCK: i32 = crate::O_NONBLOCK; +pub const TFD_TIMER_ABSTIME: i32 = crate::O_WRONLY; +pub const TFD_TIMER_CANCEL_ON_SET: i32 = crate::O_RDWR; + const_fn! { {const} fn _ALIGN(p: usize) -> usize { (p + _ALIGNBYTES) & !_ALIGNBYTES @@ -2853,6 +2859,16 @@ extern "C" { #[link_name = "__getmntinfo13"] pub fn getmntinfo(mntbufp: *mut *mut crate::statvfs, flags: c_int) -> c_int; pub fn getvfsstat(buf: *mut statvfs, bufsize: size_t, flags: c_int) -> c_int; + + // Added in `NetBSD` 10.0 + pub fn timerfd_create(clockid: crate::clockid_t, flags: c_int) -> c_int; + pub fn timerfd_gettime(fd: c_int, curr_value: *mut itimerspec) -> c_int; + pub fn timerfd_settime( + fd: c_int, + flags: c_int, + new_value: *const itimerspec, + old_value: *mut itimerspec, + ) -> c_int; } #[link(name = "rt")] diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index caa3f27b3cb35..3cb68e4d6fca4 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -286,6 +286,12 @@ pub const B4000000: crate::speed_t = 31; // sys/systeminfo.h pub const SI_ADDRESS_WIDTH: c_int = 520; +// sys/timerfd.h +pub const TFD_CLOEXEC: i32 = 0o2000000; +pub const TFD_NONBLOCK: i32 = 0o4000; +pub const TFD_TIMER_ABSTIME: i32 = 1 << 0; +pub const TFD_TIMER_CANCEL_ON_SET: i32 = 1 << 1; + extern "C" { pub fn eventfd(init: c_uint, flags: c_int) -> c_int; @@ -353,4 +359,13 @@ extern "C" { n: size_t, loc: crate::locale_t, ) -> c_int; + + pub fn timerfd_create(clockid: c_int, flags: c_int) -> c_int; + pub fn timerfd_gettime(fd: c_int, curr_value: *mut crate::itimerspec) -> c_int; + pub fn timerfd_settime( + fd: c_int, + flags: c_int, + new_value: *const crate::itimerspec, + old_value: *mut crate::itimerspec, + ) -> c_int; } From 8e5fa76cc4b5c262ce8914b843aed6c1cdc289d0 Mon Sep 17 00:00:00 2001 From: yuvraj wale Date: Thu, 13 Mar 2025 05:32:49 +0530 Subject: [PATCH 0565/1228] solarish: restrict openpty and forkpty polyfills to illumos, replace Solaris implementation with FFI (backport ) (cherry picked from commit e9d29ecaf9b9f14bb7a2c8dcd2f9856e63abef21) --- src/unix/solarish/compat.rs | 2 ++ src/unix/solarish/solaris.rs | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/unix/solarish/compat.rs b/src/unix/solarish/compat.rs index 8fd1c750a62cf..649d6ac9a1536 100644 --- a/src/unix/solarish/compat.rs +++ b/src/unix/solarish/compat.rs @@ -53,6 +53,7 @@ unsafe fn bail(fdm: c_int, fds: c_int) -> c_int { return -1; } +#[cfg(target_os = "illumos")] pub unsafe fn openpty( amain: *mut c_int, asubord: *mut c_int, @@ -123,6 +124,7 @@ pub unsafe fn openpty( 0 } +#[cfg(target_os = "illumos")] pub unsafe fn forkpty( amain: *mut c_int, name: *mut c_char, diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index 12e964dcda77c..4c6a5bd489604 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -1,7 +1,7 @@ use crate::prelude::*; use crate::{ exit_status, off_t, NET_MAC_AWARE, NET_MAC_AWARE_INHERIT, PRIV_AWARE_RESET, PRIV_DEBUG, - PRIV_PFEXEC, PRIV_XPOLICY, + PRIV_PFEXEC, PRIV_XPOLICY, termios, }; pub type door_attr_t = c_uint; @@ -242,4 +242,19 @@ extern "C" { pub fn pthread_getattr_np(thread: crate::pthread_t, attr: *mut crate::pthread_attr_t) -> c_int; pub fn euidaccess(path: *const c_char, amode: c_int) -> c_int; + + pub fn openpty( + amain: *mut c_int, + asubord: *mut c_int, + name: *mut c_char, + termp: *mut termios, + winp: *mut crate::winsize, + ) -> c_int; + + pub fn forkpty( + amain: *mut c_int, + name: *mut c_char, + termp: *mut termios, + winp: *mut crate::winsize, + ) -> crate::pid_t; } From aa9eab3eaa90bc34db883a7f60175cff12119f74 Mon Sep 17 00:00:00 2001 From: mbyx Date: Tue, 4 Mar 2025 13:31:49 +0500 Subject: [PATCH 0566/1228] linux: add missing tls bindings sort semver/linux.txt properly (backport ) (cherry picked from commit bdcb3eb19c91b6878220af3fbeb5d9b1336e4f59) --- libc-test/semver/linux.txt | 43 +++++++++++++++ src/unix/linux_like/linux/mod.rs | 92 ++++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index e351f6956710d..8fb58518f927a 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -3366,6 +3366,12 @@ TLS_1_2_VERSION_MINOR TLS_1_3_VERSION TLS_1_3_VERSION_MAJOR TLS_1_3_VERSION_MINOR +TLS_CIPHER_AES_CCM_128 +TLS_CIPHER_AES_CCM_128_IV_SIZE +TLS_CIPHER_AES_CCM_128_KEY_SIZE +TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE +TLS_CIPHER_AES_CCM_128_SALT_SIZE +TLS_CIPHER_AES_CCM_128_TAG_SIZE TLS_CIPHER_AES_GCM_128 TLS_CIPHER_AES_GCM_128_IV_SIZE TLS_CIPHER_AES_GCM_128_KEY_SIZE @@ -3378,16 +3384,53 @@ 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_ARIA_GCM_128 +TLS_CIPHER_ARIA_GCM_128_IV_SIZE +TLS_CIPHER_ARIA_GCM_128_KEY_SIZE +TLS_CIPHER_ARIA_GCM_128_REC_SEQ_SIZE +TLS_CIPHER_ARIA_GCM_128_SALT_SIZE +TLS_CIPHER_ARIA_GCM_128_TAG_SIZE +TLS_CIPHER_ARIA_GCM_256 +TLS_CIPHER_ARIA_GCM_256_IV_SIZE +TLS_CIPHER_ARIA_GCM_256_KEY_SIZE +TLS_CIPHER_ARIA_GCM_256_REC_SEQ_SIZE +TLS_CIPHER_ARIA_GCM_256_SALT_SIZE +TLS_CIPHER_ARIA_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_CIPHER_SM4_CCM +TLS_CIPHER_SM4_CCM_IV_SIZE +TLS_CIPHER_SM4_CCM_KEY_SIZE +TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE +TLS_CIPHER_SM4_CCM_SALT_SIZE +TLS_CIPHER_SM4_CCM_TAG_SIZE +TLS_CIPHER_SM4_GCM +TLS_CIPHER_SM4_GCM_IV_SIZE +TLS_CIPHER_SM4_GCM_KEY_SIZE +TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE +TLS_CIPHER_SM4_GCM_SALT_SIZE +TLS_CIPHER_SM4_GCM_TAG_SIZE +TLS_CONF_BASE +TLS_CONF_HW +TLS_CONF_HW_RECORD +TLS_CONF_SW TLS_GET_RECORD_TYPE +TLS_INFO_CIPHER +TLS_INFO_RXCONF +TLS_INFO_RX_NO_PAD +TLS_INFO_TXCONF +TLS_INFO_UNSPEC +TLS_INFO_VERSION +TLS_INFO_ZC_RO_TX TLS_RX +TLS_RX_EXPECT_NO_PAD TLS_SET_RECORD_TYPE TLS_TX +TLS_TX_ZEROCOPY_RO TP_FT_REQ_FILL_RXHASH TP_STATUS_AVAILABLE TP_STATUS_BLK_TMO diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 480bcf04468a0..3e9a98a53b8c7 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -966,6 +966,14 @@ s! { pub rec_seq: [c_uchar; TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE], } + pub struct tls12_crypto_info_aes_ccm_128 { + pub info: tls_crypto_info, + pub iv: [c_uchar; TLS_CIPHER_AES_CCM_128_IV_SIZE], + pub key: [c_uchar; TLS_CIPHER_AES_CCM_128_KEY_SIZE], + pub salt: [c_uchar; TLS_CIPHER_AES_CCM_128_SALT_SIZE], + pub rec_seq: [c_uchar; TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE], + } + pub struct tls12_crypto_info_chacha20_poly1305 { pub info: tls_crypto_info, pub iv: [c_uchar; TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE], @@ -974,6 +982,38 @@ s! { pub rec_seq: [c_uchar; TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE], } + pub struct tls12_crypto_info_sm4_gcm { + pub info: tls_crypto_info, + pub iv: [c_uchar; TLS_CIPHER_SM4_GCM_IV_SIZE], + pub key: [c_uchar; TLS_CIPHER_SM4_GCM_KEY_SIZE], + pub salt: [c_uchar; TLS_CIPHER_SM4_GCM_SALT_SIZE], + pub rec_seq: [c_uchar; TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE], + } + + pub struct tls12_crypto_info_sm4_ccm { + pub info: tls_crypto_info, + pub iv: [c_uchar; TLS_CIPHER_SM4_CCM_IV_SIZE], + pub key: [c_uchar; TLS_CIPHER_SM4_CCM_KEY_SIZE], + pub salt: [c_uchar; TLS_CIPHER_SM4_CCM_SALT_SIZE], + pub rec_seq: [c_uchar; TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE], + } + + pub struct tls12_crypto_info_aria_gcm_128 { + pub info: tls_crypto_info, + pub iv: [c_uchar; TLS_CIPHER_ARIA_GCM_128_IV_SIZE], + pub key: [c_uchar; TLS_CIPHER_ARIA_GCM_128_KEY_SIZE], + pub salt: [c_uchar; TLS_CIPHER_ARIA_GCM_128_SALT_SIZE], + pub rec_seq: [c_uchar; TLS_CIPHER_ARIA_GCM_128_REC_SEQ_SIZE], + } + + pub struct tls12_crypto_info_aria_gcm_256 { + pub info: tls_crypto_info, + pub iv: [c_uchar; TLS_CIPHER_ARIA_GCM_256_IV_SIZE], + pub key: [c_uchar; TLS_CIPHER_ARIA_GCM_256_KEY_SIZE], + pub salt: [c_uchar; TLS_CIPHER_ARIA_GCM_256_SALT_SIZE], + pub rec_seq: [c_uchar; TLS_CIPHER_ARIA_GCM_256_REC_SEQ_SIZE], + } + // linux/wireless.h pub struct iw_param { @@ -4721,6 +4761,9 @@ pub const PTP_PF_PHYSYNC: c_uint = 3; pub const TLS_TX: c_int = 1; pub const TLS_RX: c_int = 2; +pub const TLS_TX_ZEROCOPY_RO: c_int = 3; +pub const TLS_RX_EXPECT_NO_PAD: c_int = 4; + pub const TLS_1_2_VERSION_MAJOR: __u8 = 0x3; pub const TLS_1_2_VERSION_MINOR: __u8 = 0x3; pub const TLS_1_2_VERSION: __u16 = @@ -4745,6 +4788,13 @@ pub const TLS_CIPHER_AES_GCM_256_SALT_SIZE: usize = 4; pub const TLS_CIPHER_AES_GCM_256_TAG_SIZE: usize = 16; pub const TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE: usize = 8; +pub const TLS_CIPHER_AES_CCM_128: __u16 = 53; +pub const TLS_CIPHER_AES_CCM_128_IV_SIZE: usize = 8; +pub const TLS_CIPHER_AES_CCM_128_KEY_SIZE: usize = 16; +pub const TLS_CIPHER_AES_CCM_128_SALT_SIZE: usize = 4; +pub const TLS_CIPHER_AES_CCM_128_TAG_SIZE: usize = 16; +pub const TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE: usize = 8; + pub const TLS_CIPHER_CHACHA20_POLY1305: __u16 = 54; pub const TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE: usize = 12; pub const TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE: usize = 32; @@ -4752,11 +4802,53 @@ pub const TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE: usize = 0; pub const TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE: usize = 16; pub const TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE: usize = 8; +pub const TLS_CIPHER_SM4_GCM: __u16 = 55; +pub const TLS_CIPHER_SM4_GCM_IV_SIZE: usize = 8; +pub const TLS_CIPHER_SM4_GCM_KEY_SIZE: usize = 16; +pub const TLS_CIPHER_SM4_GCM_SALT_SIZE: usize = 4; +pub const TLS_CIPHER_SM4_GCM_TAG_SIZE: usize = 16; +pub const TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE: usize = 8; + +pub const TLS_CIPHER_SM4_CCM: __u16 = 56; +pub const TLS_CIPHER_SM4_CCM_IV_SIZE: usize = 8; +pub const TLS_CIPHER_SM4_CCM_KEY_SIZE: usize = 16; +pub const TLS_CIPHER_SM4_CCM_SALT_SIZE: usize = 4; +pub const TLS_CIPHER_SM4_CCM_TAG_SIZE: usize = 16; +pub const TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE: usize = 8; + +pub const TLS_CIPHER_ARIA_GCM_128: __u16 = 57; +pub const TLS_CIPHER_ARIA_GCM_128_IV_SIZE: usize = 8; +pub const TLS_CIPHER_ARIA_GCM_128_KEY_SIZE: usize = 16; +pub const TLS_CIPHER_ARIA_GCM_128_SALT_SIZE: usize = 4; +pub const TLS_CIPHER_ARIA_GCM_128_TAG_SIZE: usize = 16; +pub const TLS_CIPHER_ARIA_GCM_128_REC_SEQ_SIZE: usize = 8; + +pub const TLS_CIPHER_ARIA_GCM_256: __u16 = 58; +pub const TLS_CIPHER_ARIA_GCM_256_IV_SIZE: usize = 8; +pub const TLS_CIPHER_ARIA_GCM_256_KEY_SIZE: usize = 32; +pub const TLS_CIPHER_ARIA_GCM_256_SALT_SIZE: usize = 4; +pub const TLS_CIPHER_ARIA_GCM_256_TAG_SIZE: usize = 16; +pub const TLS_CIPHER_ARIA_GCM_256_REC_SEQ_SIZE: usize = 8; + pub const TLS_SET_RECORD_TYPE: c_int = 1; pub const TLS_GET_RECORD_TYPE: c_int = 2; pub const SOL_TLS: c_int = 282; +// enum +pub const TLS_INFO_UNSPEC: c_int = 0x00; +pub const TLS_INFO_VERSION: c_int = 0x01; +pub const TLS_INFO_CIPHER: c_int = 0x02; +pub const TLS_INFO_TXCONF: c_int = 0x03; +pub const TLS_INFO_RXCONF: c_int = 0x04; +pub const TLS_INFO_ZC_RO_TX: c_int = 0x05; +pub const TLS_INFO_RX_NO_PAD: c_int = 0x06; + +pub const TLS_CONF_BASE: c_int = 1; +pub const TLS_CONF_SW: c_int = 2; +pub const TLS_CONF_HW: c_int = 3; +pub const TLS_CONF_HW_RECORD: c_int = 4; + // linux/if_alg.h pub const ALG_SET_KEY: c_int = 1; pub const ALG_SET_IV: c_int = 2; From 2a9260f81cb1bc0bc8c15d8605f1d5f065adeb5a Mon Sep 17 00:00:00 2001 From: yuvraj wale Date: Wed, 12 Mar 2025 19:42:18 +0530 Subject: [PATCH 0567/1228] Add: missing INPUT_PROP_XXX flags from input-event-codes.h (backport ) (cherry picked from commit 43d5a538a5ce0f1c44b7943bf9a92eed8ca52a01) --- libc-test/semver/linux.txt | 7 +++++++ src/unix/linux_like/linux/mod.rs | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 8fb58518f927a..9bf5ec61c461f 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1060,8 +1060,15 @@ IF_OPER_TESTING IF_OPER_UNKNOWN IF_OPER_UP IMAXBEL +INPUT_PROP_ACCELEROMETER +INPUT_PROP_BUTTONPAD INPUT_PROP_CNT +INPUT_PROP_DIRECT INPUT_PROP_MAX +INPUT_PROP_POINTER +INPUT_PROP_POINTING_STICK +INPUT_PROP_SEMI_MT +INPUT_PROP_TOPBUTTONPAD IN_ACCESS IN_ALL_EVENTS IN_ATTRIB diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 3e9a98a53b8c7..ca301fb9f9352 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -5191,6 +5191,13 @@ pub const FF_MAX: __u16 = 0x7f; pub const FF_CNT: usize = FF_MAX as usize + 1; // linux/input-event-codes.h +pub const INPUT_PROP_POINTER: __u16 = 0x00; +pub const INPUT_PROP_DIRECT: __u16 = 0x01; +pub const INPUT_PROP_BUTTONPAD: __u16 = 0x02; +pub const INPUT_PROP_SEMI_MT: __u16 = 0x03; +pub const INPUT_PROP_TOPBUTTONPAD: __u16 = 0x04; +pub const INPUT_PROP_POINTING_STICK: __u16 = 0x05; +pub const INPUT_PROP_ACCELEROMETER: __u16 = 0x06; pub const INPUT_PROP_MAX: __u16 = 0x1f; pub const INPUT_PROP_CNT: usize = INPUT_PROP_MAX as usize + 1; pub const EV_MAX: __u16 = 0x1f; From 19ee58a406a37de159189d8d6cf15a7c49419878 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 29 Mar 2025 16:07:27 +0000 Subject: [PATCH 0568/1228] adding further BPF program flags for Linux. [ref](https://sites.uclouvain.be/SystInfo/usr/include/linux/filter.h.html) (backport ) (cherry picked from commit 9b8242d41c1f0dde80daca11938a239abd59a244) --- libc-test/semver/linux-aarch64.txt | 8 ++++++++ libc-test/semver/linux-loongarch64.txt | 8 ++++++++ libc-test/semver/linux-x86_64.txt | 8 ++++++++ src/unix/linux_like/linux/mod.rs | 26 ++++++++++++++++++++++++++ 4 files changed, 50 insertions(+) diff --git a/libc-test/semver/linux-aarch64.txt b/libc-test/semver/linux-aarch64.txt index 9dceaeccb819b..c4bce0196f8ae 100644 --- a/libc-test/semver/linux-aarch64.txt +++ b/libc-test/semver/linux-aarch64.txt @@ -2,10 +2,12 @@ B2500000 B3000000 B3500000 B4000000 +BPF_A BPF_ABS BPF_ADD BPF_ALU BPF_B +BPF_CLASS BPF_DIV BPF_H BPF_IMM @@ -25,15 +27,21 @@ BPF_MEM BPF_MISC BPF_MISCOP BPF_MOD +BPF_MODE BPF_MSH BPF_NEG BPF_NET_OFF +BPF_OP BPF_RET BPF_RVAL +BPF_SIZE +BPF_SRC BPF_ST BPF_STMT BPF_STX BPF_SUB +BPF_TAX +BPF_TXA BPF_W BPF_X BPF_XOR diff --git a/libc-test/semver/linux-loongarch64.txt b/libc-test/semver/linux-loongarch64.txt index 1302cb68b2c8a..1b50e7248b7fe 100644 --- a/libc-test/semver/linux-loongarch64.txt +++ b/libc-test/semver/linux-loongarch64.txt @@ -2,10 +2,12 @@ B2500000 B3000000 B3500000 B4000000 +BPF_A BPF_ABS BPF_ADD BPF_ALU BPF_B +BPF_CLASS BPF_DIV BPF_H BPF_IMM @@ -25,15 +27,21 @@ BPF_MEM BPF_MISC BPF_MISCOP BPF_MOD +BPF_MODE BPF_MSH BPF_NEG BPF_NET_OFF +BPF_OP BPF_RET BPF_RVAL +BPF_SIZE +BPF_SRC BPF_ST BPF_STMT BPF_STX BPF_SUB +BPF_TAX +BPF_TXA BPF_W BPF_X BPF_XOR diff --git a/libc-test/semver/linux-x86_64.txt b/libc-test/semver/linux-x86_64.txt index f1ed29b8f299d..9d62f8cd3cd35 100644 --- a/libc-test/semver/linux-x86_64.txt +++ b/libc-test/semver/linux-x86_64.txt @@ -2,10 +2,12 @@ B2500000 B3000000 B3500000 B4000000 +BPF_A BPF_ABS BPF_ADD BPF_ALU BPF_B +BPF_CLASS BPF_DIV BPF_H BPF_IMM @@ -25,15 +27,21 @@ BPF_MEM BPF_MISC BPF_MISCOP BPF_MOD +BPF_MODE BPF_MSH BPF_NEG BPF_NET_OFF +BPF_OP BPF_RET BPF_RVAL +BPF_SIZE +BPF_SRC BPF_ST BPF_STMT BPF_STX BPF_SUB +BPF_TAX +BPF_TXA BPF_W BPF_X BPF_XOR diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index ca301fb9f9352..17d99962eeee9 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -3492,6 +3492,12 @@ pub const BPF_JSET: __u32 = 0x40; pub const BPF_K: __u32 = 0x00; pub const BPF_X: __u32 = 0x08; +// linux/filter.h + +pub const BPF_A: __u32 = 0x10; +pub const BPF_TAX: __u32 = 0x00; +pub const BPF_TXA: __u32 = 0x80; + // linux/openat2.h pub const RESOLVE_NO_XDEV: crate::__u64 = 0x01; pub const RESOLVE_NO_MAGICLINKS: crate::__u64 = 0x02; @@ -6169,6 +6175,26 @@ f! { (x + TPACKET_ALIGNMENT - 1) & !(TPACKET_ALIGNMENT - 1) } + pub fn BPF_CLASS(code: __u32) -> __u32 { + code & 0x07 + } + + pub fn BPF_SIZE(code: __u32) -> __u32 { + code & 0x18 + } + + pub fn BPF_MODE(code: __u32) -> __u32 { + code & 0xe0 + } + + pub fn BPF_OP(code: __u32) -> __u32 { + code & 0xf0 + } + + pub fn BPF_SRC(code: __u32) -> __u32 { + code & 0x08 + } + pub fn BPF_RVAL(code: __u32) -> __u32 { code & 0x18 } From 411f298e80d4b9a635c93171b16a5486341cd93c Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 3 Apr 2025 00:34:30 +0000 Subject: [PATCH 0569/1228] Always deny warnings in CI (backport ) (cherry picked from commit 6198136bc7ac63966875829504d416392fbe16ce) --- .github/workflows/ci.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5609e136663a7..fe37151bccba3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -7,8 +7,12 @@ on: - libc-0.2 env: + CARGO_TERM_COLOR: always CARGO_TERM_VERBOSE: true LIBC_CI: 1 + RUSTDOCFLAGS: -Dwarnings + RUSTFLAGS: -Dwarnings + RUST_BACKTRACE: full defaults: run: @@ -42,6 +46,12 @@ jobs: TOOLCHAIN: ${{ matrix.toolchain }} steps: - uses: actions/checkout@v4 + # Remove `-Dwarnings` at the MSRV since lints may be different or buffier + - name: Update RUSTFLAGS + run: | + set -eux + [ "${{ matrix.toolchain }}" = "1.63.0" ] && echo 'RUSTFLAGS=' >> "$GITHUB_ENV" || true + - name: Setup Rust toolchain run: ./ci/install-rust.sh From f202ec47db675827b1e560a11453892bf92db6e2 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 3 Apr 2025 00:38:42 +0000 Subject: [PATCH 0570/1228] Ensure the makedev test does not emit unused errors (backport ) (cherry picked from commit a1a956dc078dca102d5651cd933caefa6f3cf483) --- libc-test/Cargo.toml | 7 +- libc-test/test/makedev.rs | 223 ++++++++++++++++++-------------------- 2 files changed, 109 insertions(+), 121 deletions(-) diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 2f32e12bb3755..26b38621fb3c8 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -12,10 +12,9 @@ description = """ A test crate for the libc crate. """ -[dependencies.libc] -path = ".." -version = "0.2.171" -default-features = false +[dependencies] +cfg-if = "1.0.0" +libc = { path = "..", version = "0.2.171", default-features = false } [dev-dependencies] syn = { version = "2.0.91", features = ["full", "visit"] } diff --git a/libc-test/test/makedev.rs b/libc-test/test/makedev.rs index 61e1d501be280..ea701f6abe94b 100644 --- a/libc-test/test/makedev.rs +++ b/libc-test/test/makedev.rs @@ -1,52 +1,7 @@ //! Compare libc's makedev, major, minor functions against the actual C macros, for various //! inputs. -#[cfg(any(target_os = "solaris", target_os = "illumos"))] -mod ret { - pub type MajorRetType = libc::major_t; - pub type MinorRetType = libc::minor_t; -} - -#[cfg(any( - target_os = "linux", - target_os = "l4re", - target_os = "emscripten", - target_os = "fuchsia", - target_os = "aix", - target_os = "nto", - target_os = "hurd", - target_os = "openbsd", - target_os = "cygwin", -))] -mod ret { - pub type MajorRetType = libc::c_uint; - pub type MinorRetType = libc::c_uint; -} - -#[cfg(any( - target_os = "android", - target_os = "dragonfly", - target_os = "netbsd", - target_os = "freebsd", -))] -mod ret { - pub type MajorRetType = libc::c_int; - pub type MinorRetType = libc::c_int; -} - -#[cfg(any( - target_os = "macos", - target_os = "ios", - target_os = "tvos", - target_os = "watchos", - target_os = "visionos" -))] -mod ret { - pub type MajorRetType = i32; - pub type MinorRetType = i32; -} - -#[cfg(any( +#![cfg(any( target_os = "android", target_os = "dragonfly", target_os = "emscripten", @@ -57,100 +12,134 @@ mod ret { target_os = "openbsd", target_os = "cygwin", ))] -mod t { - use libc::{self, c_uint, dev_t}; - use super::ret::*; +use libc::{self, c_uint, dev_t}; - extern "C" { - pub fn makedev_ffi(major: c_uint, minor: c_uint) -> dev_t; - pub fn major_ffi(dev: dev_t) -> c_uint; - pub fn minor_ffi(dev: dev_t) -> c_uint; +cfg_if::cfg_if! { + if #[cfg(any(target_os = "solaris", target_os = "illumos"))] { + pub type MajorRetType = libc::major_t; + pub type MinorRetType = libc::minor_t; + } else if #[cfg(any( + target_os = "linux", + target_os = "l4re", + target_os = "emscripten", + target_os = "fuchsia", + target_os = "aix", + target_os = "nto", + target_os = "hurd", + target_os = "openbsd", + target_os = "cygwin", + ))] { + pub type MajorRetType = libc::c_uint; + pub type MinorRetType = libc::c_uint; + } else if #[cfg(any( + target_os = "android", + target_os = "dragonfly", + target_os = "netbsd", + target_os = "freebsd", + ))] { + pub type MajorRetType = libc::c_int; + pub type MinorRetType = libc::c_int; + } else if #[cfg(any( + target_os = "macos", + target_os = "ios", + target_os = "tvos", + target_os = "watchos", + target_os = "visionos" + ))] { + pub type MajorRetType = i32; + pub type MinorRetType = i32; } +} - fn compare(major: c_uint, minor: c_uint) { - let dev = unsafe { makedev_ffi(major, minor) }; - assert_eq!(libc::makedev(major, minor), dev); - let major = unsafe { major_ffi(dev) }; - assert_eq!(libc::major(dev), major as MajorRetType); - let minor = unsafe { minor_ffi(dev) }; - assert_eq!(libc::minor(dev), minor as MinorRetType); - } +extern "C" { + pub fn makedev_ffi(major: c_uint, minor: c_uint) -> dev_t; + pub fn major_ffi(dev: dev_t) -> c_uint; + pub fn minor_ffi(dev: dev_t) -> c_uint; +} - // Every OS should be able to handle 8 bit major and minor numbers - #[test] - fn test_8bits() { - for major in 0..256 { - for minor in 0..256 { - compare(major, minor); - } +fn compare(major: c_uint, minor: c_uint) { + let dev = unsafe { makedev_ffi(major, minor) }; + assert_eq!(libc::makedev(major, minor), dev); + let major = unsafe { major_ffi(dev) }; + assert_eq!(libc::major(dev), major as MajorRetType); + let minor = unsafe { minor_ffi(dev) }; + assert_eq!(libc::minor(dev), minor as MinorRetType); +} + +// Every OS should be able to handle 8 bit major and minor numbers +#[test] +fn test_8bits() { + for major in 0..256 { + for minor in 0..256 { + compare(major, minor); } } +} - // Android allows 12 bits for major and 20 for minor - #[test] - #[cfg(target_os = "android")] - fn test_android_like() { - for major in [0, 1, 255, 256, 4095] { - for minor_exp in [1, 8, 16] { - for minor in [(1 << minor_exp) - 1, (1 << minor_exp)] { - compare(major, minor); - } +// Android allows 12 bits for major and 20 for minor +#[test] +#[cfg(target_os = "android")] +fn test_android_like() { + for major in [0, 1, 255, 256, 4095] { + for minor_exp in [1, 8, 16] { + for minor in [(1 << minor_exp) - 1, (1 << minor_exp)] { + compare(major, minor); } - compare(major, (1 << 20) - 1); } + compare(major, (1 << 20) - 1); } +} - // These OSes allow 32 bits for minor, but only 8 for major - #[test] - #[cfg(any(target_os = "dragonfly", target_os = "freebsd", target_os = "netbsd",))] - fn test_fbsd11_like() { - for major in [0, 1, 255] { - for minor_exp in [1, 8, 16, 24, 31] { - for minor in [(1 << minor_exp) - 1, (1 << minor_exp)] { - compare(major, minor); - } +// These OSes allow 32 bits for minor, but only 8 for major +#[test] +#[cfg(any(target_os = "dragonfly", target_os = "freebsd", target_os = "netbsd",))] +fn test_fbsd11_like() { + for major in [0, 1, 255] { + for minor_exp in [1, 8, 16, 24, 31] { + for minor in [(1 << minor_exp) - 1, (1 << minor_exp)] { + compare(major, minor); } - compare(major, c_uint::MAX); } + compare(major, c_uint::MAX); } +} - // OpenBSD allows 8 bits for major and 24 for minor - #[test] - #[cfg(target_os = "openbsd")] - fn test_openbsd_like() { - for major in [0, 1, 255] { - for minor_exp in [1, 8, 16] { - for minor in [(1 << minor_exp) - 1, (1 << minor_exp)] { - compare(major, minor); - } +// OpenBSD allows 8 bits for major and 24 for minor +#[test] +#[cfg(target_os = "openbsd")] +fn test_openbsd_like() { + for major in [0, 1, 255] { + for minor_exp in [1, 8, 16] { + for minor in [(1 << minor_exp) - 1, (1 << minor_exp)] { + compare(major, minor); } - compare(major, (1 << 24) - 1); } + compare(major, (1 << 24) - 1); } +} - // These OSes allow 32 bits for both minor and major - #[cfg(any( - target_os = "emscripten", - target_os = "freebsd", - target_os = "fuchsia", - target_os = "linux", - target_os = "cygwin", - ))] - #[test] - fn test_fbsd12_like() { - if std::mem::size_of::() >= 8 { - for major_exp in [0, 16, 24, 31] { - for major in [(1 << major_exp) - 1, (1 << major_exp)] { - for minor_exp in [1, 8, 16, 24, 31] { - for minor in [(1 << minor_exp) - 1, (1 << minor_exp)] { - compare(major, minor); - } +// These OSes allow 32 bits for both minor and major +#[cfg(any( + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "linux", + target_os = "cygwin", +))] +#[test] +fn test_fbsd12_like() { + if std::mem::size_of::() >= 8 { + for major_exp in [0, 16, 24, 31] { + for major in [(1 << major_exp) - 1, (1 << major_exp)] { + for minor_exp in [1, 8, 16, 24, 31] { + for minor in [(1 << minor_exp) - 1, (1 << minor_exp)] { + compare(major, minor); } - compare(major, c_uint::MAX); } - compare(c_uint::MAX, c_uint::MAX); + compare(major, c_uint::MAX); } + compare(c_uint::MAX, c_uint::MAX); } } } From a45a6c3f08c834b6a795c74d259fe02d1bdac250 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 3 Apr 2025 21:18:30 +0000 Subject: [PATCH 0571/1228] Add an empty `ctest` crate A bit of a quirk of `release-plz` seems to be that it uses the latest published stable Cargo.toml as the workspace root, which makes publishing `ctest` a problem because it doesn't exist (and so isn't in the workspace) with our published `libc`, instead only existing on `main`. Work around this by creating an empty crate named `ctest` so the `libc-0.2` version of `Cargo.toml` lists it as a workspace member. Link: https://github.com/release-plz/release-plz/issues/2163 --- Cargo.toml | 5 ++++- ctest/Cargo.toml | 10 ++++++++++ ctest/src/lib.rs | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 ctest/Cargo.toml create mode 100644 ctest/src/lib.rs diff --git a/Cargo.toml b/Cargo.toml index c90e201b898d7..a86df92f2333b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -151,4 +151,7 @@ align = [] use_std = ['std'] [workspace] -members = ["libc-test"] +members = [ + "ctest", + "libc-test", +] diff --git a/ctest/Cargo.toml b/ctest/Cargo.toml new file mode 100644 index 0000000000000..377de00ef02a4 --- /dev/null +++ b/ctest/Cargo.toml @@ -0,0 +1,10 @@ +# This is a dummy package so the published stable `libc` can have `ctest` in +# the workspace, which works around . + +[package] +name = "ctest" +version = "0.1.0" +edition = "2021" +publish = false + +[dependencies] diff --git a/ctest/src/lib.rs b/ctest/src/lib.rs new file mode 100644 index 0000000000000..8b137891791fe --- /dev/null +++ b/ctest/src/lib.rs @@ -0,0 +1 @@ + From de7fe5cddd1a3b7d91422049889428feee4c7363 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 22 Feb 2025 21:49:59 +0000 Subject: [PATCH 0572/1228] Revert "Also skip `MFD_EXEC` and `MFD_NOEXEC_SEAL` on sparc64" This commit was included in [1] but was not present in the original commmit. This was likely needed because of previous differences in CI setup and MSRV between the two branches. Now that the two branches are much more similar, the same kernel verion and Rust versions are tested so this should no longer be needed. This reverts commit 61331df06f425934fa43a506e25217f49a039a7c. [1]: https://github.com/rust-lang/libc/pull/3708 --- libc-test/build.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 3824ac28592c7..9b28def466c70 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4358,10 +4358,7 @@ fn test_linux(target: &str) { if ppc64 || riscv64 => true, // FIXME(linux): requires more recent kernel headers on CI - | "MFD_EXEC" - | "MFD_NOEXEC_SEAL" - | "SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV" - if sparc64 => true, + "SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV" if sparc64 => true, // FIXME(linux): Not currently available in headers on ARM and musl. "NETLINK_GET_STRICT_CHK" if arm => true, From 8e77cc51a75e820fdaef987344f3374a3d6e30a3 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 3 Apr 2025 04:02:49 +0000 Subject: [PATCH 0573/1228] Make triagebot aware of labels related to `ctest` (backport ) (cherry picked from commit 009619644b96a94dc13802901c09792255de2e48) --- triagebot.toml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/triagebot.toml b/triagebot.toml index d4ad3459c1fc8..c749fc11d9445 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -3,6 +3,7 @@ allow-unauthenticated = [ "C-*", "O-*", "S-*", + "ctest", "stable-nominated", ] @@ -152,6 +153,12 @@ trigger_files = [ "src/vxworks/x86_64.rs", ] +[autolabel.ctest] +trigger_files = [ + "ctest", + "ctest-test", +] + [review-submitted] # These labels are removed when a review is submitted. review_labels = ["S-waiting-on-review"] From 704a28cad7a4c6c39a66d8e81c275bc0343efdf4 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 3 Apr 2025 19:14:00 +0000 Subject: [PATCH 0574/1228] Add links to common header sources in the PR template (backport ) (cherry picked from commit 5adc1ecc46f4b39cd76fc13ad1cda1ba13e1ab38) --- .github/PULL_REQUEST_TEMPLATE.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 5aafd9213ef20..c3d315acc5ada 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -12,8 +12,20 @@ Please fill out the below template. # Sources - + # Checklist From a96d4548468195fcb1fa2607a968db4bf2b41702 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Sun, 6 Apr 2025 05:22:49 -0700 Subject: [PATCH 0575/1228] Define Linux ioctl codes on more architectures. Define ioctl codes including `FICLONE` and `FS_IOC32_GETVERSION` using `_IOR` and `_IOW` so that they're automatically supported on all architectures, including riscv32gc-unknown-linux-gnu. (backport ) (cherry picked from commit 4b439b0953573e0383da7e092b1f516ba21f3398) --- src/unix/linux_like/linux/arch/generic/mod.rs | 75 ++++--------------- 1 file changed, 15 insertions(+), 60 deletions(-) diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index 61d2e3fe19180..ec3179b431f97 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -1,5 +1,5 @@ use crate::prelude::*; -use crate::Ioctl; +use crate::{Ioctl, _IOR, _IOW}; s! { pub struct termios2 { @@ -158,21 +158,8 @@ pub const SO_DEVMEM_LINEAR: c_int = 78; pub const SO_DEVMEM_DMABUF: c_int = 79; pub const SO_DEVMEM_DONTNEED: c_int = 80; -cfg_if! { - if #[cfg(any( - target_arch = "x86", - target_arch = "x86_64", - target_arch = "arm", - target_arch = "aarch64", - target_arch = "riscv64", - target_arch = "s390x", - target_arch = "csky", - target_arch = "loongarch64" - ))] { - pub const FICLONE: c_ulong = 0x40049409; - pub const FICLONERANGE: c_ulong = 0x4020940D; - } -} +pub const FICLONE: Ioctl = _IOW::(0x94, 9) as Ioctl; +pub const FICLONERANGE: Ioctl = _IOW::(0x94, 13) as Ioctl; // Defined in unix/linux_like/mod.rs // pub const SCM_TIMESTAMP: c_int = SO_TIMESTAMP; @@ -293,50 +280,18 @@ pub const TUNGETVNETBE: Ioctl = 0x800454df; pub const TUNSETSTEERINGEBPF: Ioctl = 0x800454e0; pub const TUNSETFILTEREBPF: Ioctl = 0x800454e1; -cfg_if! { - // Those type are constructed using the _IOC macro - // DD-SS_SSSS_SSSS_SSSS-TTTT_TTTT-NNNN_NNNN - // where D stands for direction (either None (00), Read (01) or Write (11)) - // where S stands for size (int, long, struct...) - // where T stands for type ('f','v','X'...) - // where N stands for NR (NumbeR) - if #[cfg(any( - target_arch = "x86", - target_arch = "arm", - target_arch = "csky" - ))] { - pub const FS_IOC_GETFLAGS: Ioctl = 0x80046601; - pub const FS_IOC_SETFLAGS: Ioctl = 0x40046602; - pub const FS_IOC_GETVERSION: Ioctl = 0x80047601; - pub const FS_IOC_SETVERSION: Ioctl = 0x40047602; - pub const FS_IOC32_GETFLAGS: Ioctl = 0x80046601; - pub const FS_IOC32_SETFLAGS: Ioctl = 0x40046602; - pub const FS_IOC32_GETVERSION: Ioctl = 0x80047601; - pub const FS_IOC32_SETVERSION: Ioctl = 0x40047602; - pub const TUNATTACHFILTER: Ioctl = 0x400854d5; - pub const TUNDETACHFILTER: Ioctl = 0x400854d6; - pub const TUNGETFILTER: Ioctl = 0x800854db; - } else if #[cfg(any( - target_arch = "x86_64", - target_arch = "riscv64", - target_arch = "aarch64", - target_arch = "s390x", - target_arch = "loongarch64", - target_arch = "wasm32" - ))] { - pub const FS_IOC_GETFLAGS: Ioctl = 0x80086601; - pub const FS_IOC_SETFLAGS: Ioctl = 0x40086602; - pub const FS_IOC_GETVERSION: Ioctl = 0x80087601; - pub const FS_IOC_SETVERSION: Ioctl = 0x40087602; - pub const FS_IOC32_GETFLAGS: Ioctl = 0x80046601; - pub const FS_IOC32_SETFLAGS: Ioctl = 0x40046602; - pub const FS_IOC32_GETVERSION: Ioctl = 0x80047601; - pub const FS_IOC32_SETVERSION: Ioctl = 0x40047602; - pub const TUNATTACHFILTER: Ioctl = 0x401054d5; - pub const TUNDETACHFILTER: Ioctl = 0x401054d6; - pub const TUNGETFILTER: Ioctl = 0x801054db; - } -} +pub const FS_IOC_GETFLAGS: Ioctl = _IOR::('f' as u32, 1) as Ioctl; +pub const FS_IOC_SETFLAGS: Ioctl = _IOW::('f' as u32, 2) as Ioctl; +pub const FS_IOC_GETVERSION: Ioctl = _IOR::('v' as u32, 1) as Ioctl; +pub const FS_IOC_SETVERSION: Ioctl = _IOW::('v' as u32, 2) as Ioctl; +pub const FS_IOC32_GETFLAGS: Ioctl = _IOR::('f' as u32, 1) as Ioctl; +pub const FS_IOC32_SETFLAGS: Ioctl = _IOW::('f' as u32, 2) as Ioctl; +pub const FS_IOC32_GETVERSION: Ioctl = _IOR::('v' as u32, 1) as Ioctl; +pub const FS_IOC32_SETVERSION: Ioctl = _IOW::('v' as u32, 2) as Ioctl; + +pub const TUNATTACHFILTER: Ioctl = _IOW::('T' as u32, 213) as Ioctl; +pub const TUNDETACHFILTER: Ioctl = _IOW::('T' as u32, 214) as Ioctl; +pub const TUNGETFILTER: Ioctl = _IOR::('T' as u32, 219) as Ioctl; cfg_if! { if #[cfg(any(target_arch = "arm", target_arch = "s390x"))] { From f7f3c7c9cb514275bc2bff749961ea0e25063d33 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 4 Apr 2025 01:50:56 +0000 Subject: [PATCH 0576/1228] FreeBSD: Deprecate TCP_PCAP_OUT and TCP_PCAP_IN FreeBSD removed these upstream in [1], so deprecate them here. This resolves a recent CI failure. These constants were originally added in [2]. [1]: https://github.com/freebsd/freebsd-src/commit/6e76489098c6dc415ac3f2ae084154c3c22558ec [2]: https://github.com/rust-lang/libc/pull/1151 (backport ) (cherry picked from commit c8f09101420163c946cc3ecbb27de54263a3effb) --- libc-test/build.rs | 3 +++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 2 ++ 2 files changed, 5 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 9b28def466c70..3cc6a1042550a 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2855,6 +2855,9 @@ fn test_freebsd(target: &str) { "CAP_UNUSED0_44" | "CAP_UNUSED0_57" | "CAP_UNUSED1_22" | "CAP_UNUSED1_57" | "CAP_ALL0" | "CAP_ALL1" => true, + // FIXME(freebsd): Removed in FreeBSD 15, deprecated in libc + "TCP_PCAP_OUT" | "TCP_PCAP_IN" => true, + _ => false, } }); diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index ff096e51c731c..375c51b3de669 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -3771,7 +3771,9 @@ pub const TCP_PERF_INFO: c_int = 78; pub const TCP_LRD: c_int = 79; pub const TCP_KEEPINIT: c_int = 128; pub const TCP_FASTOPEN: c_int = 1025; +#[deprecated(since = "0.2.171", note = "removed in FreeBSD 15")] pub const TCP_PCAP_OUT: c_int = 2048; +#[deprecated(since = "0.2.171", note = "removed in FreeBSD 15")] pub const TCP_PCAP_IN: c_int = 4096; pub const TCP_FUNCTION_BLK: c_int = 8192; pub const TCP_FUNCTION_ALIAS: c_int = 8193; From 232dabcd8984bcd19698d23b11ae264613766c41 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Wed, 11 Dec 2024 15:54:27 +0100 Subject: [PATCH 0577/1228] ci: Use $PWD instead of $(pwd) in run-docker Less commands makes for a cleaner `set -x` log. And it is more efficient. (backport ) (cherry picked from commit afa5c65d2dad6a0534c48d330c8bb555075c5cf4) --- ci/run-docker.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/run-docker.sh b/ci/run-docker.sh index fcd9e1a9d2e03..622d9453cbd08 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -47,8 +47,8 @@ run() { --env CARGO_TARGET_DIR=/checkout/target \ --volume "$CARGO_HOME":/cargo \ --volume "$(rustc --print sysroot)":/rust:ro \ - --volume "$(pwd)":/checkout:ro \ - --volume "$(pwd)"/target:/checkout/target \ + --volume "$PWD":/checkout:ro \ + --volume "$PWD"/target:/checkout/target \ $kvm \ --init \ --workdir /checkout \ From e45d8e089adcc1d9e88044e6e9a685127a99ddd3 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Fri, 14 Mar 2025 11:18:37 +0100 Subject: [PATCH 0578/1228] ci: Add matrix env variables to the environment Variables set with `env` in the matrix never propagated into the environment. Add a step in test_tier1 and test_tier2 that reads the env context from the matrix and adds the variables to the environment used by later steps. (backport ) (cherry picked from commit 84a04a156b9dd4f5576491aa7e8c2bdb4776608d) --- .github/workflows/ci.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index fe37151bccba3..0610fbc51c6e7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -108,6 +108,13 @@ jobs: with: key: ${{ matrix.target }} + - name: Add matrix env variables to the environment + if: matrix.env + run: | + echo '${{ toJson(matrix.env) }}' | + jq -r 'to_entries | map("\(.key)=\(.value|tostring)") | .[]' >>$GITHUB_ENV + shell: bash + - name: Run natively if: "!matrix.docker" run: ./ci/run.sh ${{ matrix.target }} @@ -174,6 +181,13 @@ jobs: with: key: ${{ matrix.target }} + - name: Add matrix env variables to the environment + if: matrix.env + run: | + echo '${{ toJson(matrix.env) }}' | + jq -r 'to_entries | map("\(.key)=\(.value|tostring)") | .[]' >>$GITHUB_ENV + shell: bash + - name: Execute run-docker.sh run: ./ci/run-docker.sh ${{ matrix.target }} From 4aba8adfbc5923c9412868c038be1554e72412c6 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Fri, 14 Mar 2025 14:48:33 +0100 Subject: [PATCH 0579/1228] ci: Always upload successfully created artifacts The `Create I artifacts` step is always run, whether earlier steps succeeds or not. But the upload step would only run if all preceeding steps wer successfull. Add a conditional to always run except if artifact creation failed. (backport ) (cherry picked from commit f10e8e4340bd3c9b681fe0b01ba141eec9f5db0b) --- .github/workflows/ci.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0610fbc51c6e7..1302aece0f7e5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -123,9 +123,11 @@ jobs: run: ./ci/run-docker.sh ${{ matrix.target }} - name: Create CI artifacts + id: create_artifacts if: always() run: ./ci/create-artifacts.py - uses: actions/upload-artifact@v4 + if: always() && steps.create_artifacts.outcome == 'success' with: name: ${{ env.ARCHIVE_NAME }}-${{ matrix.target }} path: ${{ env.ARCHIVE_PATH }} @@ -192,9 +194,11 @@ jobs: run: ./ci/run-docker.sh ${{ matrix.target }} - name: Create CI artifacts + id: create_artifacts if: always() run: ./ci/create-artifacts.py - uses: actions/upload-artifact@v4 + if: always() && steps.create_artifacts.outcome == 'success' with: name: ${{ env.ARCHIVE_NAME }}-${{ matrix.target }} path: ${{ env.ARCHIVE_PATH }} From aed5b56449b05aacd602b04499a9a92d3d96c373 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Fri, 14 Mar 2025 16:04:22 +0100 Subject: [PATCH 0580/1228] gnu: build settings for _FILE_OFFSET_BITS=64 (backport ) (cherry picked from commit a184436eca52a191dc8af9f16c7e9f22d966a7f0) --- build.rs | 23 +++++++++++++++++++++++ libc-test/build.rs | 28 ++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/build.rs b/build.rs index a09826fe87b76..0e83c0eb89da0 100644 --- a/build.rs +++ b/build.rs @@ -13,6 +13,8 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ "freebsd13", "freebsd14", "freebsd15", + // Corresponds to `_FILE_OFFSET_BITS=64` in glibc + "gnu_file_offset_bits64", // FIXME(ctest): this config shouldn't be needed but ctest can't parse `const extern fn` "libc_const_extern_fn", "libc_deny_warnings", @@ -44,6 +46,10 @@ fn main() { let (rustc_minor_ver, _is_nightly) = rustc_minor_nightly(); let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); let libc_ci = env::var("LIBC_CI").is_ok(); + let target_env = env::var("CARGO_CFG_TARGET_ENV").unwrap_or_default(); + let target_os = env::var("CARGO_CFG_TARGET_OS").unwrap_or_default(); + let target_ptr_width = env::var("CARGO_CFG_TARGET_POINTER_WIDTH").unwrap_or_default(); + let target_arch = env::var("CARGO_CFG_TARGET_ARCH").unwrap_or_default(); // The ABI of libc used by std is backward compatible with FreeBSD 12. // The ABI of libc from crates.io is backward compatible with FreeBSD 11. @@ -85,6 +91,23 @@ fn main() { if linux_time_bits64 { set_cfg("linux_time_bits64"); } + println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS"); + match env::var("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS") { + Ok(val) if val == "64" => { + if target_env == "gnu" + && target_os == "linux" + && target_ptr_width == "32" + && target_arch != "riscv32" + && target_arch != "x86_64" + { + set_cfg("gnu_file_offset_bits64"); + } + } + Ok(val) if val != "32" => { + panic!("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS may only be set to '32' or '64'") + } + _ => {} + } // On CI: deny all warnings if libc_ci { diff --git a/libc-test/build.rs b/libc-test/build.rs index 3cc6a1042550a..c84bddca80960 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3664,6 +3664,26 @@ fn test_vxworks(target: &str) { cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } +fn config_gnu_bits(target: &str, cfg: &mut ctest::TestGenerator) { + match env::var("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS") { + Ok(val) if val == "64" => { + if target.contains("gnu") + && target.contains("linux") + && !target.ends_with("x32") + && !target.contains("riscv32") + && env::var("CARGO_CFG_TARGET_POINTER_WIDTH").unwrap() == "32" + { + cfg.define("_FILE_OFFSET_BITS", Some("64")); + cfg.cfg("gnu_file_offset_bits64", None); + } + } + Ok(val) if val != "32" => { + panic!("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS may only be set to '32' or '64'") + } + _ => {} + } +} + fn test_linux(target: &str) { assert!(target.contains("linux")); @@ -3707,6 +3727,8 @@ fn test_linux(target: &str) { // glibc versions older than 2.29. cfg.define("__GLIBC_USE_DEPRECATED_SCANF", None); + config_gnu_bits(target, &mut cfg); + headers! { cfg: "ctype.h", "dirent.h", @@ -4869,6 +4891,7 @@ fn test_linux_like_apis(target: &str) { if linux || android || emscripten { // test strerror_r from the `string.h` header let mut cfg = ctest_cfg(); + config_gnu_bits(target, &mut cfg); cfg.skip_type(|_| true).skip_static(|_| true); headers! { cfg: "string.h" } @@ -4885,6 +4908,7 @@ fn test_linux_like_apis(target: &str) { // test fcntl - see: // http://man7.org/linux/man-pages/man2/fcntl.2.html let mut cfg = ctest_cfg(); + config_gnu_bits(target, &mut cfg); if musl { cfg.header("fcntl.h"); @@ -4914,6 +4938,7 @@ fn test_linux_like_apis(target: &str) { if (linux && !wali) || android { // test termios let mut cfg = ctest_cfg(); + config_gnu_bits(target, &mut cfg); cfg.header("asm/termbits.h"); cfg.header("linux/termios.h"); cfg.skip_type(|_| true) @@ -4938,6 +4963,7 @@ fn test_linux_like_apis(target: &str) { if linux || android { // test IPV6_ constants: let mut cfg = ctest_cfg(); + config_gnu_bits(target, &mut cfg); headers! { cfg: "linux/in6.h" @@ -4969,6 +4995,7 @@ fn test_linux_like_apis(target: &str) { // "resolve.h" defines a `p_type` macro that expands to `__p_type` // making the tests for these fails when both are included. let mut cfg = ctest_cfg(); + config_gnu_bits(target, &mut cfg); cfg.header("elf.h"); cfg.skip_fn(|_| true) .skip_static(|_| true) @@ -4988,6 +5015,7 @@ fn test_linux_like_apis(target: &str) { if (linux && !wali) || android { // Test `ARPHRD_CAN`. let mut cfg = ctest_cfg(); + config_gnu_bits(target, &mut cfg); cfg.header("linux/if_arp.h"); cfg.skip_fn(|_| true) .skip_static(|_| true) From 4d009b4ff5de597c74dd44a31f628f1bd3ee3b93 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Fri, 14 Mar 2025 16:05:07 +0100 Subject: [PATCH 0581/1228] gnu: Set up the CI for _FILE_OFFSET_BITS=64 Add new jobs for i686 in test_tier1 and arm and powerpc in test_tier2 where RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS=64. Use artifact-tag to avoid artifact name collisions. (backport ) (cherry picked from commit 874e3994740d84a0e5c52ed4a845076d021b4fd4) --- .github/workflows/ci.yaml | 27 +++++++++++++++++++++------ ci/run-docker.sh | 1 + ci/verify-build.sh | 9 +++++++-- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1302aece0f7e5..73d2f9f42c785 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -77,6 +77,12 @@ jobs: - target: i686-unknown-linux-gnu docker: true os: ubuntu-24.04 + - target: i686-unknown-linux-gnu + docker: true + os: ubuntu-24.04 + artifact-tag: offset-bits64 + env: + RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64 - target: x86_64-unknown-linux-gnu docker: true os: ubuntu-24.04 @@ -129,7 +135,7 @@ jobs: - uses: actions/upload-artifact@v4 if: always() && steps.create_artifacts.outcome == 'success' with: - name: ${{ env.ARCHIVE_NAME }}-${{ matrix.target }} + name: ${{ env.ARCHIVE_NAME }}-${{ matrix.target }}${{ matrix.artifact-tag && format('-{0}', matrix.artifact-tag) }} path: ${{ env.ARCHIVE_PATH }} retention-days: 5 @@ -149,15 +155,11 @@ jobs: - aarch64-unknown-linux-gnu - aarch64-unknown-linux-musl - arm-linux-androideabi - - arm-unknown-linux-gnueabihf - arm-unknown-linux-musleabihf - i686-linux-android - i686-unknown-linux-musl - loongarch64-unknown-linux-gnu - loongarch64-unknown-linux-musl - # FIXME(ppc): SIGILL running tests, see - # https://github.com/rust-lang/libc/pull/4254#issuecomment-2636288713 - # - powerpc-unknown-linux-gnu - powerpc64-unknown-linux-gnu - powerpc64le-unknown-linux-gnu - riscv64gc-unknown-linux-gnu @@ -172,6 +174,19 @@ jobs: # FIXME: It seems some items in `src/unix/mod.rs` # aren't defined on redox actually. # - x86_64-unknown-redox + include: + - target: arm-unknown-linux-gnueabihf + - target: arm-unknown-linux-gnueabihf + env: + RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64 + artifact-tag: offset-bits64 + # FIXME(ppc): SIGILL running tests, see + # https://github.com/rust-lang/libc/pull/4254#issuecomment-2636288713 + # - target: powerpc-unknown-linux-gnu + # - target: powerpc-unknown-linux-gnu + # env: + # RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64 + # artifact-tag: offset-bits64 timeout-minutes: 25 env: TARGET: ${{ matrix.target }} @@ -200,7 +215,7 @@ jobs: - uses: actions/upload-artifact@v4 if: always() && steps.create_artifacts.outcome == 'success' with: - name: ${{ env.ARCHIVE_NAME }}-${{ matrix.target }} + name: ${{ env.ARCHIVE_NAME }}-${{ matrix.target }}${{ matrix.artifact-tag && format('-{0}', matrix.artifact-tag) }} path: ${{ env.ARCHIVE_PATH }} retention-days: 5 diff --git a/ci/run-docker.sh b/ci/run-docker.sh index 622d9453cbd08..6e18e520ce2d1 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -43,6 +43,7 @@ run() { --user "$(id -u)":"$(id -g)" \ --env LIBC_CI \ --env LIBC_CI_ZBUILD_STD \ + --env RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS \ --env CARGO_HOME=/cargo \ --env CARGO_TARGET_DIR=/checkout/target \ --volume "$CARGO_HOME":/cargo \ diff --git a/ci/verify-build.sh b/ci/verify-build.sh index 7ee562312b410..375a5de1b0a2f 100755 --- a/ci/verify-build.sh +++ b/ci/verify-build.sh @@ -75,6 +75,11 @@ test_target() { if [ "$os" = "linux" ]; then # Test with the equivalent of __USE_TIME_BITS64 RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64=1 $cmd + case "$target" in + # Test with the equivalent of __FILE_OFFSET_BITS=64 + arm*-gnu*|i*86*-gnu|powerpc-*-gnu*|mips*-gnu|sparc-*-gnu|thumb-*gnu*) + RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS=64 $cmd;; + esac fi # Test again without default features, i.e. without "std" @@ -92,7 +97,7 @@ test_target() { stable-x86_64-*freebsd*) do_freebsd_checks=1 ;; nightly-i686*freebsd*) do_freebsd_checks=1 ;; esac - + if [ -n "${do_freebsd_checks:-}" ]; then for version in $freebsd_versions; do export RUST_LIBC_UNSTABLE_FREEBSD_VERSION="$version" @@ -300,7 +305,7 @@ filter_and_run() { if [ "$target" = "wasm32-wasip2" ] && [ "$supports_wasi_pn" = "0" ]; then return fi - + test_target "$target" "$no_dist" some_tests_run=1 fi From 399f9836e72d5730944d34c565b09b9d2603db7a Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Mon, 16 Dec 2024 14:00:22 +0100 Subject: [PATCH 0582/1228] gnu: Handle basic file types for 32bit with _FILE_OFFSET_BITS=64 Set the basic types correctly for gnu_file_offset_bits64 (_FILE_OFFSET_BITS=64). (backport ) (cherry picked from commit f44fdc17f287e9a3560586dcaf2a120e8b76d32e) --- src/unix/linux_like/linux/gnu/b32/mod.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 134bfb05b7470..4f4ad065243b1 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -27,6 +27,16 @@ cfg_if! { pub type fsfilcnt_t = u64; pub type rlim_t = u64; pub type blksize_t = i64; + } else if #[cfg(gnu_file_offset_bits64)] { + pub type time_t = i32; + pub type suseconds_t = i32; + pub type ino_t = u64; + pub type off_t = i64; + pub type blkcnt_t = i64; + pub type fsblkcnt_t = u64; + pub type fsfilcnt_t = u64; + pub type rlim_t = u64; + pub type blksize_t = i32; } else { pub type time_t = i32; pub type suseconds_t = i32; From c2501a64c42892228dd83d028586b5bad8ac6a94 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Mon, 20 Mar 2023 14:31:28 +0100 Subject: [PATCH 0583/1228] gnu: Update F_GETLK for gnu_file_offset_bits64 gnu_file_offset_bits64 means _FILE_OFFSET_BITS=64. (backport ) (cherry picked from commit 862ba8aa2f22099b4411547ec1884232c5b02ae2) --- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 8 +++++++- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 8 +++++++- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 8 +++++++- src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 8 +++++++- 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 28514c0bf42d8..70a0e5dc1162f 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -397,7 +397,13 @@ pub const MCL_ONFAULT: c_int = 0x0004; pub const POLLWRNORM: c_short = 0x100; pub const POLLWRBAND: c_short = 0x200; -pub const F_GETLK: c_int = 5; +cfg_if! { + if #[cfg(gnu_file_offset_bits64)] { + pub const F_GETLK: c_int = 12; + } else { + pub const F_GETLK: c_int = 5; + } +} pub const F_GETOWN: c_int = 9; pub const F_SETOWN: c_int = 8; diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index cc9ebf2e901d9..aaf5f388bba91 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -745,7 +745,13 @@ pub const MAP_HUGETLB: c_int = 0x080000; pub const EFD_NONBLOCK: c_int = 0x80; -pub const F_GETLK: c_int = 14; +cfg_if! { + if #[cfg(gnu_file_offset_bits64)] { + pub const F_GETLK: c_int = 33; + } else { + pub const F_GETLK: c_int = 14; + } +} pub const F_GETOWN: c_int = 23; pub const F_SETOWN: c_int = 24; diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index b789a86a97728..1632de8de658e 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -301,7 +301,13 @@ pub const MCL_ONFAULT: c_int = 0x8000; pub const POLLWRNORM: c_short = 0x100; pub const POLLWRBAND: c_short = 0x200; -pub const F_GETLK: c_int = 5; +cfg_if! { + if #[cfg(gnu_file_offset_bits64)] { + pub const F_GETLK: c_int = 12; + } else { + pub const F_GETLK: c_int = 5; + } +} pub const F_GETOWN: c_int = 9; pub const F_SETOWN: c_int = 8; diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 2ec8692e36a8d..4c9e4493a8ed6 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -499,7 +499,13 @@ pub const SA_NOCLDWAIT: c_int = 0x00000002; pub const SOCK_STREAM: c_int = 1; pub const SOCK_DGRAM: c_int = 2; -pub const F_GETLK: c_int = 5; +cfg_if! { + if #[cfg(gnu_file_offset_bits64)] { + pub const F_GETLK: c_int = 12; + } else { + pub const F_GETLK: c_int = 5; + } +} pub const F_GETOWN: c_int = 9; pub const F_SETOWN: c_int = 8; From d788f3a39fa62c837f78d03c4f189df2d42f593f Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Mon, 20 Mar 2023 14:32:07 +0100 Subject: [PATCH 0584/1228] gnu: Update F_SETLK and F_SETLKW for gnu_file_offset_bits64 (backport ) (cherry picked from commit 6ed2bc820c2b55ca4711672fa199c9c4f3d4400a) --- src/unix/linux_like/linux/gnu/b32/mod.rs | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 4f4ad065243b1..d132a1b4f6582 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -177,9 +177,6 @@ cfg_if! { pub const PTRACE_DETACH: c_uint = 11; - pub const F_SETLK: c_int = 8; - pub const F_SETLKW: c_int = 9; - pub const F_RDLCK: c_int = 1; pub const F_WRLCK: c_int = 2; pub const F_UNLCK: c_int = 3; @@ -223,9 +220,6 @@ cfg_if! { pub const PTRACE_DETACH: c_uint = 17; - pub const F_SETLK: c_int = 6; - pub const F_SETLKW: c_int = 7; - pub const F_RDLCK: c_int = 0; pub const F_WRLCK: c_int = 1; pub const F_UNLCK: c_int = 2; @@ -261,6 +255,24 @@ cfg_if! { pub const EFD_CLOEXEC: c_int = 0x80000; } } +cfg_if! { + if #[cfg(target_arch = "sparc")] { + pub const F_SETLK: c_int = 8; + pub const F_SETLKW: c_int = 9; + } else if #[cfg(all( + gnu_file_offset_bits64, + any(target_arch = "mips", target_arch = "mips32r6") + ))] { + pub const F_SETLK: c_int = 34; + pub const F_SETLKW: c_int = 35; + } else if #[cfg(gnu_file_offset_bits64)] { + pub const F_SETLK: c_int = 13; + pub const F_SETLKW: c_int = 14; + } else { + pub const F_SETLK: c_int = 6; + pub const F_SETLKW: c_int = 7; + } +} #[cfg(target_endian = "little")] pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { From d4fe9e63764a2d7d080fe88be1ccd91e8cc9c11b Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Tue, 11 Mar 2025 14:33:48 +0100 Subject: [PATCH 0585/1228] gnu: Set RLIM_INFINITY for mips with gnu_file_offset_bits64 (backport ) (cherry picked from commit 5c5c3645615d0aaee87a60c2e1667386d62e286b) --- src/unix/linux_like/linux/arch/mips/mod.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index 1e12a1097202b..eee7cc81a47e4 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -379,8 +379,13 @@ cfg_if! { cfg_if! { if #[cfg(all( any(target_arch = "mips", target_arch = "mips32r6"), - any(target_env = "uclibc", target_env = "gnu"), - linux_time_bits64 + any( + all(target_env = "uclibc", linux_time_bits64), + all( + target_env = "gnu", + any(linux_time_bits64, gnu_file_offset_bits64) + ) + ) ))] { pub const RLIM_INFINITY: crate::rlim_t = !0; } else if #[cfg(all( From c6a40ea40a53d95de397d9db5e08551b3b20417a Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Thu, 21 Nov 2024 16:25:30 +0100 Subject: [PATCH 0586/1228] gnu: Use _FILE_OFFSET_BITS=64 versions of glibc symbols When _FILE_OFFSET_BITS=64, glibc redirects some function calls to 64 bit versions. These symbols are sometimes the public LFS variants, sometimes hidden variants. (backport ) (cherry picked from commit 2b4fafbbea40c66c8fc5c7001afb3ed2dbe141c4) --- src/unix/linux_like/linux/gnu/mod.rs | 5 +++++ src/unix/linux_like/linux/mod.rs | 14 ++++++++++++++ src/unix/linux_like/mod.rs | 5 +++++ src/unix/mod.rs | 27 +++++++++++++++++++++++++++ 4 files changed, 51 insertions(+) diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 0272166e76e14..35e479196a058 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1200,8 +1200,11 @@ extern "C" { pub fn getrlimit64(resource: crate::__rlimit_resource_t, rlim: *mut crate::rlimit64) -> c_int; pub fn setrlimit64(resource: crate::__rlimit_resource_t, rlim: *const crate::rlimit64) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "getrlimit64")] pub fn getrlimit(resource: crate::__rlimit_resource_t, rlim: *mut crate::rlimit) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "setrlimit64")] pub fn setrlimit(resource: crate::__rlimit_resource_t, rlim: *const crate::rlimit) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "prlimit64")] pub fn prlimit( pid: crate::pid_t, resource: crate::__rlimit_resource_t, @@ -1242,6 +1245,7 @@ extern "C" { dirfd: c_int, path: *const c_char, ) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "preadv64v2")] pub fn preadv2( fd: c_int, iov: *const crate::iovec, @@ -1249,6 +1253,7 @@ extern "C" { offset: off_t, flags: c_int, ) -> ssize_t; + #[cfg_attr(gnu_file_offset_bits64, link_name = "pwritev64v2")] pub fn pwritev2( fd: c_int, iov: *const crate::iovec, diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 17d99962eeee9..dc065eafb79bb 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -6300,17 +6300,23 @@ cfg_if! { cfg_if! { if #[cfg(all(not(target_env = "uclibc"), not(target_env = "ohos")))] { extern "C" { + #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_read64")] pub fn aio_read(aiocbp: *mut aiocb) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_write64")] pub fn aio_write(aiocbp: *mut aiocb) -> c_int; pub fn aio_fsync(op: c_int, aiocbp: *mut aiocb) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_error64")] pub fn aio_error(aiocbp: *const aiocb) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_return64")] pub fn aio_return(aiocbp: *mut aiocb) -> ssize_t; pub fn aio_suspend( aiocb_list: *const *const aiocb, nitems: c_int, timeout: *const crate::timespec, ) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_cancel64")] pub fn aio_cancel(fd: c_int, aiocbp: *mut aiocb) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "lio_listio64")] pub fn lio_listio( mode: c_int, aiocb_list: *const *mut aiocb, @@ -6324,12 +6330,14 @@ cfg_if! { cfg_if! { if #[cfg(not(target_env = "uclibc"))] { extern "C" { + #[cfg_attr(gnu_file_offset_bits64, link_name = "pwritev64")] pub fn pwritev( fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t, ) -> ssize_t; + #[cfg_attr(gnu_file_offset_bits64, link_name = "preadv64")] pub fn preadv( fd: c_int, iov: *const crate::iovec, @@ -6494,7 +6502,9 @@ extern "C" { pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; pub fn __errno_location() -> *mut c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "fallocate64")] pub fn fallocate(fd: c_int, mode: c_int, offset: off_t, len: off_t) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "posix_fallocate64")] pub fn posix_fallocate(fd: c_int, offset: off_t, len: off_t) -> c_int; pub fn readahead(fd: c_int, offset: off64_t, count: size_t) -> ssize_t; pub fn getxattr( @@ -6601,12 +6611,14 @@ extern "C" { ... ) -> *mut c_void; + #[cfg_attr(gnu_file_offset_bits64, link_name = "glob64")] pub fn glob( pattern: *const c_char, flags: c_int, errfunc: Option c_int>, pglob: *mut crate::glob_t, ) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "globfree64")] pub fn globfree(pglob: *mut crate::glob_t); pub fn posix_madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; @@ -6632,6 +6644,7 @@ extern "C" { addr: *mut crate::sockaddr, addrlen: *mut crate::socklen_t, ) -> ssize_t; + #[cfg_attr(gnu_file_offset_bits64, link_name = "mkstemps64")] pub fn mkstemps(template: *mut c_char, suffixlen: c_int) -> c_int; pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char; @@ -6796,6 +6809,7 @@ extern "C" { policy: c_int, param: *const crate::sched_param, ) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "sendfile64")] pub fn sendfile(out_fd: c_int, in_fd: c_int, offset: *mut off_t, count: size_t) -> ssize_t; pub fn sigsuspend(mask: *const crate::sigset_t) -> c_int; pub fn getgrgid_r( diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 875814dcc08e1..4d1d0a5399b8a 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1792,9 +1792,12 @@ extern "C" { pub fn memalign(align: size_t, size: size_t) -> *mut c_void; pub fn setgroups(ngroups: size_t, ptr: *const crate::gid_t) -> c_int; pub fn pipe2(fds: *mut c_int, flags: c_int) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "statfs64")] pub fn statfs(path: *const c_char, buf: *mut statfs) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "fstatfs64")] pub fn fstatfs(fd: c_int, buf: *mut statfs) -> c_int; pub fn memrchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; + #[cfg_attr(gnu_file_offset_bits64, link_name = "posix_fadvise64")] pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advise: c_int) -> c_int; pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; pub fn utimensat( @@ -1900,7 +1903,9 @@ extern "C" { ) -> size_t; pub fn strptime(s: *const c_char, format: *const c_char, tm: *mut crate::tm) -> *mut c_char; + #[cfg_attr(gnu_file_offset_bits64, link_name = "mkostemp64")] pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "mkostemps64")] pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int; pub fn getdomainname(name: *mut c_char, len: size_t) -> c_int; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 32af26a8a4056..7fd9d71744cb7 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -578,17 +578,20 @@ extern "C" { all(target_os = "macos", target_arch = "x86"), link_name = "fopen$UNIX2003" )] + #[cfg_attr(gnu_file_offset_bits64, link_name = "fopen64")] pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "freopen$UNIX2003" )] + #[cfg_attr(gnu_file_offset_bits64, link_name = "freopen64")] pub fn freopen(filename: *const c_char, mode: *const c_char, file: *mut FILE) -> *mut FILE; pub fn fflush(file: *mut FILE) -> c_int; pub fn fclose(file: *mut FILE) -> c_int; pub fn remove(filename: *const c_char) -> c_int; pub fn rename(oldname: *const c_char, newname: *const c_char) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "tmpfile64")] pub fn tmpfile() -> *mut FILE; pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, size: size_t) -> c_int; pub fn setbuf(stream: *mut FILE, buf: *mut c_char); @@ -614,8 +617,10 @@ extern "C" { pub fn ftell(stream: *mut FILE) -> c_long; pub fn rewind(stream: *mut FILE); #[cfg_attr(target_os = "netbsd", link_name = "__fgetpos50")] + #[cfg_attr(gnu_file_offset_bits64, link_name = "fgetpos64")] pub fn fgetpos(stream: *mut FILE, ptr: *mut fpos_t) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__fsetpos50")] + #[cfg_attr(gnu_file_offset_bits64, link_name = "fsetpos64")] pub fn fsetpos(stream: *mut FILE, ptr: *const fpos_t) -> c_int; pub fn feof(stream: *mut FILE) -> c_int; pub fn ferror(stream: *mut FILE) -> c_int; @@ -827,6 +832,7 @@ extern "C" { all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "fstat@FBSD_1.0" )] + #[cfg_attr(gnu_file_offset_bits64, link_name = "fstat64")] pub fn fstat(fildes: c_int, buf: *mut stat) -> c_int; pub fn mkdir(path: *const c_char, mode: mode_t) -> c_int; @@ -840,6 +846,7 @@ extern "C" { all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "stat@FBSD_1.0" )] + #[cfg_attr(gnu_file_offset_bits64, link_name = "stat64")] pub fn stat(path: *const c_char, buf: *mut stat) -> c_int; pub fn pclose(stream: *mut crate::FILE) -> c_int; @@ -854,16 +861,19 @@ extern "C" { all(target_os = "macos", target_arch = "x86"), link_name = "open$UNIX2003" )] + #[cfg_attr(gnu_file_offset_bits64, link_name = "open64")] pub fn open(path: *const c_char, oflag: c_int, ...) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "creat$UNIX2003" )] + #[cfg_attr(gnu_file_offset_bits64, link_name = "creat64")] pub fn creat(path: *const c_char, mode: mode_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "fcntl$UNIX2003" )] + #[cfg_attr(gnu_file_offset_bits64, link_name = "__fcntl_time64")] pub fn fcntl(fd: c_int, cmd: c_int, ...) -> c_int; #[cfg_attr( @@ -886,6 +896,7 @@ extern "C" { all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "readdir@FBSD_1.0" )] + #[cfg_attr(gnu_file_offset_bits64, link_name = "readdir64")] pub fn readdir(dirp: *mut crate::DIR) -> *mut crate::dirent; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), @@ -924,6 +935,7 @@ extern "C" { all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "fstatat@FBSD_1.1" )] + #[cfg_attr(gnu_file_offset_bits64, link_name = "fstatat64")] pub fn fstatat(dirfd: c_int, pathname: *const c_char, buf: *mut stat, flags: c_int) -> c_int; pub fn linkat( olddirfd: c_int, @@ -998,6 +1010,7 @@ extern "C" { pub fn isatty(fd: c_int) -> c_int; #[cfg_attr(target_os = "solaris", link_name = "__link_xpg4")] pub fn link(src: *const c_char, dst: *const c_char) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "lseek64")] pub fn lseek(fd: c_int, offset: off_t, whence: c_int) -> off_t; pub fn pathconf(path: *const c_char, name: c_int) -> c_long; pub fn pipe(fds: *mut c_int) -> c_int; @@ -1060,11 +1073,13 @@ extern "C" { all(target_os = "macos", target_arch = "x86"), link_name = "pread$UNIX2003" )] + #[cfg_attr(gnu_file_offset_bits64, link_name = "pread64")] pub fn pread(fd: c_int, buf: *mut c_void, count: size_t, offset: off_t) -> ssize_t; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pwrite$UNIX2003" )] + #[cfg_attr(gnu_file_offset_bits64, link_name = "pwrite64")] pub fn pwrite(fd: c_int, buf: *const c_void, count: size_t, offset: off_t) -> ssize_t; pub fn umask(mask: mode_t) -> mode_t; @@ -1091,6 +1106,7 @@ extern "C" { all(target_os = "macos", target_arch = "x86"), link_name = "mmap$UNIX2003" )] + #[cfg_attr(gnu_file_offset_bits64, link_name = "mmap64")] pub fn mmap( addr: *mut c_void, len: size_t, @@ -1117,6 +1133,7 @@ extern "C" { all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "lstat@FBSD_1.0" )] + #[cfg_attr(gnu_file_offset_bits64, link_name = "lstat64")] pub fn lstat(path: *const c_char, buf: *mut stat) -> c_int; #[cfg_attr( @@ -1139,7 +1156,9 @@ extern "C" { pub fn symlink(path1: *const c_char, path2: *const c_char) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "truncate64")] pub fn truncate(path: *const c_char, length: off_t) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "ftruncate64")] pub fn ftruncate(fd: c_int, length: off_t) -> c_int; pub fn signal(signum: c_int, handler: sighandler_t) -> sighandler_t; @@ -1444,7 +1463,9 @@ extern "C" { pub fn sem_wait(sem: *mut sem_t) -> c_int; pub fn sem_trywait(sem: *mut sem_t) -> c_int; pub fn sem_post(sem: *mut sem_t) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "statvfs64")] pub fn statvfs(path: *const c_char, buf: *mut statvfs) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "fstatvfs64")] pub fn fstatvfs(fd: c_int, buf: *mut statvfs) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__sigemptyset14")] @@ -1468,7 +1489,9 @@ extern "C" { pub fn mkfifo(path: *const c_char, mode: mode_t) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "fseeko64")] pub fn fseeko(stream: *mut crate::FILE, offset: off_t, whence: c_int) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "ftello64")] pub fn ftello(stream: *mut crate::FILE) -> off_t; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), @@ -1485,6 +1508,7 @@ extern "C" { pub fn tcflush(fd: c_int, action: c_int) -> c_int; pub fn tcgetsid(fd: c_int) -> crate::pid_t; pub fn tcsendbreak(fd: c_int, duration: c_int) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "mkstemp64")] pub fn mkstemp(template: *mut c_char) -> c_int; pub fn mkdtemp(template: *mut c_char) -> *mut c_char; @@ -1509,6 +1533,7 @@ extern "C" { pub fn strcasestr(cs: *const c_char, ct: *const c_char) -> *mut c_char; pub fn getline(lineptr: *mut *mut c_char, n: *mut size_t, stream: *mut FILE) -> ssize_t; + #[cfg_attr(gnu_file_offset_bits64, link_name = "lockf64")] pub fn lockf(fd: c_int, cmd: c_int, len: off_t) -> c_int; } @@ -1609,6 +1634,7 @@ cfg_if! { pub fn pause() -> c_int; pub fn mkdirat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "openat64")] pub fn openat(dirfd: c_int, pathname: *const c_char, flags: c_int, ...) -> c_int; #[cfg_attr( @@ -1637,6 +1663,7 @@ cfg_if! { /// https://illumos.org/man/3lib/libc /// https://docs.oracle.com/cd/E36784_01/html/E36873/libc-3lib.html /// https://www.unix.com/man-page/opensolaris/3LIB/libc/ + #[cfg_attr(gnu_file_offset_bits64, link_name = "readdir64_r")] pub fn readdir_r( dirp: *mut crate::DIR, entry: *mut crate::dirent, From 25d4c0aad65dc88ac4de77231399899ef26b1f1a Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Tue, 18 Mar 2025 16:47:20 +0100 Subject: [PATCH 0587/1228] gnu powerpc: Use a separate stat struct for powerpc Like mips, the stat struct will become different once support for gnu_file_offset_bits64 is added. (backport ) (cherry picked from commit 0c6d56cfe115847344d62756e5d7334740011572) --- src/unix/linux_like/linux/gnu/b32/mod.rs | 6 +++++- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 22 ++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index d132a1b4f6582..726c41e9eb5c0 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -51,7 +51,11 @@ cfg_if! { } cfg_if! { - if #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] { + if #[cfg(not(any( + target_arch = "mips", + target_arch = "mips32r6", + target_arch = "powerpc" + )))] { s! { pub struct stat { pub st_dev: crate::dev_t, diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 1632de8de658e..ce91e988b8bca 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -57,6 +57,28 @@ s! { __glibc_reserved2: u64, } + pub struct stat { + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad2: c_ushort, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __glibc_reserved4: c_ulong, + __glibc_reserved5: c_ulong, + } + pub struct stat64 { pub st_dev: crate::dev_t, pub st_ino: crate::ino64_t, From e6202841f37d81fec0ab1394ad7c0deac2f01762 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Thu, 20 Mar 2025 12:14:19 +0100 Subject: [PATCH 0588/1228] gnu sparc: Use a separate stat struct for 32bit powerpc Like mips and powerpc, the stat struct will become different once support for gnu_file_offset_bits64 is added. (backport ) (cherry picked from commit e1349594daebb742b2ef3af63255eaba9699d203) --- src/unix/linux_like/linux/gnu/b32/mod.rs | 3 ++- .../linux_like/linux/gnu/b32/sparc/mod.rs | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 726c41e9eb5c0..cbcb38f5a7769 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -54,7 +54,8 @@ cfg_if! { if #[cfg(not(any( target_arch = "mips", target_arch = "mips32r6", - target_arch = "powerpc" + target_arch = "powerpc", + target_arch = "sparc" )))] { s! { pub struct stat { diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index 968cf7734ef8e..2e17f80965c76 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -60,6 +60,29 @@ s! { pub ss_size: size_t, } + pub struct stat { + pub st_dev: crate::dev_t, + __pad1: c_ushort, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + __pad2: c_ushort, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + __glibc_reserved4: c_ulong, + __glibc_reserved5: c_ulong, + } + pub struct stat64 { pub st_dev: crate::dev_t, pub st_ino: crate::ino64_t, From a8df758817c948d09c734604149f54bfa7e739c2 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Thu, 19 Dec 2024 14:11:40 +0100 Subject: [PATCH 0589/1228] gnu: Adapt struct stat for gnu_file_offset_bits64 Change the __padX members in b32/mod.rs from short to uint even though they are actually unsigned short in C. Using unsigned int will give the same alignment, and make the struct equivalent to stat64 when gnu_file_offset_bits64 is set. (backport ) (cherry picked from commit 5a5abc2b284829dd4dc8c901bcb702c7adcc241f) --- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 14 ++++++++ src/unix/linux_like/linux/gnu/b32/mod.rs | 35 +++++++++++++++---- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 2 ++ .../linux_like/linux/gnu/b32/sparc/mod.rs | 1 + 4 files changed, 45 insertions(+), 7 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index aaf5f388bba91..2a0055b8b4f58 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -8,22 +8,36 @@ s! { pub st_dev: c_ulong, st_pad1: [c_long; 3], + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, + pub st_rdev: c_ulong, + + #[cfg(not(gnu_file_offset_bits64))] st_pad2: [c_long; 2], + #[cfg(gnu_file_offset_bits64)] + st_pad2: [c_long; 3], + pub st_size: off_t, + + #[cfg(not(gnu_file_offset_bits64))] st_pad3: c_long, + pub st_atime: crate::time_t, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, + pub st_blksize: crate::blksize_t, + #[cfg(gnu_file_offset_bits64)] + st_pad4: c_long, pub st_blocks: crate::blkcnt_t, st_pad5: [c_long; 14], } diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index cbcb38f5a7769..e9a958478c543 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -20,7 +20,9 @@ cfg_if! { if #[cfg(target_arch = "riscv32")] { pub type time_t = i64; pub type suseconds_t = i64; - pub type ino_t = u64; + type __ino_t = c_ulong; + type __ino64_t = u64; + pub type ino_t = __ino64_t; pub type off_t = i64; pub type blkcnt_t = i64; pub type fsblkcnt_t = u64; @@ -30,7 +32,9 @@ cfg_if! { } else if #[cfg(gnu_file_offset_bits64)] { pub type time_t = i32; pub type suseconds_t = i32; - pub type ino_t = u64; + type __ino_t = c_ulong; + type __ino64_t = u64; + pub type ino_t = __ino64_t; pub type off_t = i64; pub type blkcnt_t = i64; pub type fsblkcnt_t = u64; @@ -40,7 +44,9 @@ cfg_if! { } else { pub type time_t = i32; pub type suseconds_t = i32; - pub type ino_t = u32; + type __ino_t = c_ulong; + type __ino64_t = u64; + pub type ino_t = __ino_t; pub type off_t = i32; pub type blkcnt_t = i32; pub type fsblkcnt_t = c_ulong; @@ -61,25 +67,40 @@ cfg_if! { pub struct stat { pub st_dev: crate::dev_t, - __pad1: c_short, + __pad1: c_uint, + + #[cfg(not(gnu_file_offset_bits64))] pub st_ino: crate::ino_t, + #[cfg(all(gnu_file_offset_bits64))] + __st_ino: __ino_t, + pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, - __pad2: c_short, + + __pad2: c_uint, + pub st_size: off_t, + pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused4: c_long, - __unused5: c_long, + + #[cfg(not(gnu_file_offset_bits64))] + __glibc_reserved4: c_long, + #[cfg(not(gnu_file_offset_bits64))] + __glibc_reserved5: c_long, + #[cfg(gnu_file_offset_bits64)] + pub st_ino: crate::ino_t, } } } diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index ce91e988b8bca..36da977d688a3 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -59,6 +59,8 @@ s! { pub struct stat { pub st_dev: crate::dev_t, + #[cfg(not(gnu_file_offset_bits64))] + __pad1: c_ushort, pub st_ino: crate::ino_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index 2e17f80965c76..d60f6f2a1dfa6 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -62,6 +62,7 @@ s! { pub struct stat { pub st_dev: crate::dev_t, + #[cfg(not(gnu_file_offset_bits64))] __pad1: c_ushort, pub st_ino: crate::ino_t, pub st_mode: crate::mode_t, From 0789132dd27136f99ea5fcf443045d392e0fd9da Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Tue, 18 Mar 2025 16:00:29 +0100 Subject: [PATCH 0590/1228] gnu: Adapt stat64 for gnu_file_offset_bits64 (backport ) (cherry picked from commit 96e81e718d4ca91f29353b362d9b5e93c176663f) --- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 70a0e5dc1162f..2dd4a88674f3e 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -61,7 +61,7 @@ s! { pub struct stat64 { pub st_dev: crate::dev_t, __pad1: c_uint, - __st_ino: crate::ino_t, + __st_ino: c_ulong, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 4c9e4493a8ed6..c0eb9e89bc442 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -135,7 +135,7 @@ s! { pub struct stat64 { pub st_dev: crate::dev_t, __pad1: c_uint, - __st_ino: crate::ino_t, + __st_ino: c_ulong, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, From 4c67438a92597f3b523b9bbf40fd7826541d772d Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Thu, 20 Mar 2025 11:15:33 +0100 Subject: [PATCH 0591/1228] gnu: Correct the struct stat64 padding for 32bit mips (backport ) (cherry picked from commit 169d50bd2b1818292d2e329cb7f67373edc72517) --- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 2a0055b8b4f58..6c2f499b5914b 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -51,7 +51,7 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: c_ulong, - st_pad2: [c_long; 2], + st_pad2: [c_long; 3], pub st_size: off64_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, From b6ad13550ab83bb64629d7607a2592552590bbb6 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Thu, 20 Mar 2025 12:14:52 +0100 Subject: [PATCH 0592/1228] gnu: Correct struct stat64 for sparc Struct stat and stat64 needs to match when gnu_file_offset_bits64 is set. (backport ) (cherry picked from commit 22ac02cc253d23e55451dafdcba60158e8be5023) --- src/unix/linux_like/linux/gnu/b32/sparc/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index d60f6f2a1dfa6..abd49cf455cc3 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -102,7 +102,8 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __reserved: [c_long; 2], + __glibc_reserved4: c_ulong, + __glibc_reserved5: c_ulong, } pub struct statfs64 { From 8da41612148451033ffadf804f16d591b0c7e3eb Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Mon, 17 Mar 2025 16:53:11 +0100 Subject: [PATCH 0593/1228] gnu: Add the __f_unused field to struct statvfs for sparc The __f_unused field should be the same in statvfs and statvfs64 (where it was already included) as can be seen in https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/bits/statvfs.h;h=1aed2f54aa86e43ac1c1d3a33197b3232be76580;hb=HEAD (backport ) (cherry picked from commit 131efe92084f65f8170f84016f5622a4eb4e12c4) --- src/unix/linux_like/linux/gnu/b32/sparc/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index abd49cf455cc3..16e48b490c313 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -131,6 +131,7 @@ s! { pub f_ffree: u64, pub f_favail: u64, pub f_fsid: c_ulong, + __f_unused: c_int, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], From f5dc0701a6f5e23bacf243321eb763f78d3ef8bb Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Tue, 18 Mar 2025 15:14:48 +0100 Subject: [PATCH 0594/1228] gnu: Add missing f_flags field to struct statfs for sparc (backport ) (cherry picked from commit c1e48123b2ea5f5cc7dd3b56a56604702c3df19d) --- src/unix/linux_like/linux/gnu/b32/sparc/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index 16e48b490c313..7533ad689bb42 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -26,7 +26,8 @@ s! { pub f_namelen: crate::__fsword_t, pub f_frsize: crate::__fsword_t, - f_spare: [crate::__fsword_t; 5], + pub f_flags: crate::__fsword_t, + f_spare: [crate::__fsword_t; 4], } pub struct siginfo_t { From 394f97fa5a1f84d6b145d43cba6f5b94c002a206 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Thu, 21 Nov 2024 13:49:17 +0100 Subject: [PATCH 0595/1228] gnu: Add proper structs for fpos_t and fpos64_t (backport ) (cherry picked from commit 872642ada4a2992d9125bd7c47d31a2d50491b1d) --- src/unix/linux_like/linux/gnu/mod.rs | 18 ++++++++++++++++++ src/unix/linux_like/linux/mod.rs | 11 ++++++++--- src/unix/mod.rs | 11 +++++++++-- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 35e479196a058..7cf0dadc8e782 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -407,6 +407,24 @@ s! { #[cfg(target_pointer_width = "64")] __size: [c_char; 32], } + + pub struct mbstate_t { + __count: c_int, + __wchb: [c_char; 4], + } + + pub struct fpos64_t { + __pos: off64_t, + __state: crate::mbstate_t, + } + + pub struct fpos_t { + #[cfg(not(gnu_file_offset_bits64))] + __pos: off_t, + #[cfg(gnu_file_offset_bits64)] + __pos: off64_t, + __state: crate::mbstate_t, + } } impl siginfo_t { diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index dc065eafb79bb..d9e3e5d2508ca 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -74,9 +74,14 @@ pub type iconv_t = *mut c_void; pub type sctp_assoc_t = __s32; pub type eventfd_t = u64; -missing! { - #[cfg_attr(feature = "extra_traits", derive(Debug))] - pub enum fpos64_t {} // FIXME(linux): fill this out with a struct + +cfg_if! { + if #[cfg(not(target_env = "gnu"))] { + missing! { + #[cfg_attr(feature = "extra_traits", derive(Debug))] + pub enum fpos64_t {} // FIXME(linux): fill this out with a struct + } + } } e! { diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 7fd9d71744cb7..fa88de25f4aa2 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -539,11 +539,18 @@ cfg_if! { } } +cfg_if! { + if #[cfg(not(target_env = "gnu"))] { + missing! { + #[cfg_attr(feature = "extra_traits", derive(Debug))] + pub enum fpos_t {} // FIXME(unix): fill this out with a struct + } + } +} + missing! { #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum FILE {} - #[cfg_attr(feature = "extra_traits", derive(Debug))] - pub enum fpos_t {} // FIXME(unix): fill this out with a struct } extern "C" { From c553ad52c336e3782d41bdeba73d6ac4038bdd67 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Mon, 20 Mar 2023 14:33:33 +0100 Subject: [PATCH 0596/1228] gnu: Update struct aiocb for gnu_file_offset_bits64 (backport ) (cherry picked from commit 7ba56f2adf2585e6ca6293c934209ccf20f8eb67) --- src/unix/linux_like/linux/gnu/mod.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 7cf0dadc8e782..7f4ff568ac8e8 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -32,7 +32,11 @@ s! { __error_code: c_int, __return_value: ssize_t, pub aio_offset: off_t, - #[cfg(all(not(target_arch = "x86_64"), target_pointer_width = "32"))] + #[cfg(all( + not(gnu_file_offset_bits64), + not(target_arch = "x86_64"), + target_pointer_width = "32" + ))] __unused1: [c_char; 4], __glibc_reserved: [c_char; 32], } From dca8f0909d1978c98b6ae022532aeb12a4e30752 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Tue, 11 Mar 2025 14:33:11 +0100 Subject: [PATCH 0597/1228] gnu: Adapt struct flock on mips for gnu_file_offset_bits64 (backport ) (cherry picked from commit 4a7c9a98756914a515b7d9874ab620e2c3b97414) --- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 6c2f499b5914b..649a8e04bd470 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -190,9 +190,11 @@ s! { pub l_whence: c_short, pub l_start: off_t, pub l_len: off_t, + #[cfg(not(gnu_file_offset_bits64))] pub l_sysid: c_long, pub l_pid: crate::pid_t, - pad: [c_long; 4], + #[cfg(not(gnu_file_offset_bits64))] + __glibc_reserved0: [c_long; 4], } } From 8b54b5cc75ed6912a7caf5979c795c8f61ad2ec5 Mon Sep 17 00:00:00 2001 From: Jakub Janowski Date: Fri, 4 Apr 2025 02:25:56 +0300 Subject: [PATCH 0598/1228] if_tun.h ioctls for android Add missing constants from linux/if_tun.h header on android platform. Mainly ioctl operation codes (backport ) (cherry picked from commit 610eb02a95cd4620ef12fd54b35553c265e8c09b) --- libc-test/semver/android.txt | 29 +++++++++++++ src/unix/linux_like/android/mod.rs | 55 ++++++++++++++++++++++++ src/unix/linux_like/linux/mod.rs | 68 ++---------------------------- src/unix/linux_like/mod.rs | 67 +++++++++++++++++++++++++++++ 4 files changed, 155 insertions(+), 64 deletions(-) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 34875722a8432..83b27b117d98b 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -2897,6 +2897,33 @@ TIOCSWINSZ TMPFS_MAGIC TMP_MAX TOSTOP +TUNATTACHFILTER +TUNDETACHFILTER +TUNGETFEATURES +TUNGETFILTER +TUNGETIFF +TUNGETSNDBUF +TUNGETVNETBE +TUNGETVNETHDRSZ +TUNGETVNETLE +TUNSETDEBUG +TUNSETFILTEREBPF +TUNSETGROUP +TUNSETIFF +TUNSETIFINDEX +TUNSETLINK +TUNSETNOCSUM +TUNSETOFFLOAD +TUNSETOWNER +TUNSETPERSIST +TUNSETQUEUE +TUNSETSNDBUF +TUNSETSTEERINGEBPF +TUNSETTXFILTER +TUNSETVNETBE +TUNSETVNETHDRSZ +TUNSETVNETLE +TUN_FLT_ALLMULTI TUN_F_CSUM TUN_F_TSO4 TUN_F_TSO6 @@ -2904,6 +2931,8 @@ TUN_F_TSO_ECN TUN_F_UFO TUN_F_USO4 TUN_F_USO6 +TUN_PKT_STRIP +TUN_TX_TIMESTAMP UINPUT_MAX_NAME_SIZE UINPUT_VERSION UIO_MAXIOV diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 7d2f4f1327091..d5fe6c7540a88 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -2680,6 +2680,7 @@ pub const IFF_ATTACH_QUEUE: c_int = 0x0200; pub const IFF_DETACH_QUEUE: c_int = 0x0400; pub const IFF_PERSIST: c_int = 0x0800; pub const IFF_NOFILTER: c_int = 0x1000; +pub const TUN_TX_TIMESTAMP: c_int = 1; // Features for GSO (TUNSETOFFLOAD) pub const TUN_F_CSUM: c_uint = 0x01; pub const TUN_F_TSO4: c_uint = 0x02; @@ -2688,6 +2689,40 @@ pub const TUN_F_TSO_ECN: c_uint = 0x08; pub const TUN_F_UFO: c_uint = 0x10; pub const TUN_F_USO4: c_uint = 0x20; pub const TUN_F_USO6: c_uint = 0x40; +// Protocol info prepended to the packets (when IFF_NO_PI is not set) +pub const TUN_PKT_STRIP: c_int = 0x0001; +// Accept all multicast packets +pub const TUN_FLT_ALLMULTI: c_int = 0x0001; +// Ioctl operation codes +const T_TYPE: u32 = b'T' as u32; +pub const TUNSETNOCSUM: c_int = _IOW::(T_TYPE, 200); +pub const TUNSETDEBUG: c_int = _IOW::(T_TYPE, 201); +pub const TUNSETIFF: c_int = _IOW::(T_TYPE, 202); +pub const TUNSETPERSIST: c_int = _IOW::(T_TYPE, 203); +pub const TUNSETOWNER: c_int = _IOW::(T_TYPE, 204); +pub const TUNSETLINK: c_int = _IOW::(T_TYPE, 205); +pub const TUNSETGROUP: c_int = _IOW::(T_TYPE, 206); +pub const TUNGETFEATURES: c_int = _IOR::(T_TYPE, 207); +pub const TUNSETOFFLOAD: c_int = _IOW::(T_TYPE, 208); +pub const TUNSETTXFILTER: c_int = _IOW::(T_TYPE, 209); +pub const TUNGETIFF: c_int = _IOR::(T_TYPE, 210); +pub const TUNGETSNDBUF: c_int = _IOR::(T_TYPE, 211); +pub const TUNSETSNDBUF: c_int = _IOW::(T_TYPE, 212); +pub const TUNATTACHFILTER: c_int = _IOW::(T_TYPE, 213); +pub const TUNDETACHFILTER: c_int = _IOW::(T_TYPE, 214); +pub const TUNGETVNETHDRSZ: c_int = _IOR::(T_TYPE, 215); +pub const TUNSETVNETHDRSZ: c_int = _IOW::(T_TYPE, 216); +pub const TUNSETQUEUE: c_int = _IOW::(T_TYPE, 217); +pub const TUNSETIFINDEX: c_int = _IOW::(T_TYPE, 218); +pub const TUNGETFILTER: c_int = _IOR::(T_TYPE, 219); +pub const TUNSETVNETLE: c_int = _IOW::(T_TYPE, 220); +pub const TUNGETVNETLE: c_int = _IOR::(T_TYPE, 221); +pub const TUNSETVNETBE: c_int = _IOW::(T_TYPE, 222); +pub const TUNGETVNETBE: c_int = _IOR::(T_TYPE, 223); +pub const TUNSETSTEERINGEBPF: c_int = _IOR::(T_TYPE, 224); +pub const TUNSETFILTEREBPF: c_int = _IOR::(T_TYPE, 225); +pub const TUNSETCARRIER: c_int = _IOW::(T_TYPE, 226); +pub const TUNGETDEVNETNS: c_int = _IO(T_TYPE, 227); // start android/platform/bionic/libc/kernel/uapi/linux/if_ether.h // from https://android.googlesource.com/platform/bionic/+/HEAD/libc/kernel/uapi/linux/if_ether.h @@ -4263,3 +4298,23 @@ impl siginfo_t { self.sifields().sigchld.si_stime } } + +/// Build an ioctl number for an argumentless ioctl. +pub const fn _IO(ty: u32, nr: u32) -> c_int { + super::_IOC(super::_IOC_NONE, ty, nr, 0) as c_int +} + +/// Build an ioctl number for an read-only ioctl. +pub const fn _IOR(ty: u32, nr: u32) -> c_int { + super::_IOC(super::_IOC_READ, ty, nr, mem::size_of::()) as c_int +} + +/// Build an ioctl number for an write-only ioctl. +pub const fn _IOW(ty: u32, nr: u32) -> c_int { + super::_IOC(super::_IOC_WRITE, ty, nr, mem::size_of::()) as c_int +} + +/// Build an ioctl number for a read-write ioctl. +pub const fn _IOWR(ty: u32, nr: u32) -> c_int { + super::_IOC(super::_IOC_READ | super::_IOC_WRITE, ty, nr, mem::size_of::()) as c_int +} diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 17d99962eeee9..9e2b2db7b1a09 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -5980,88 +5980,28 @@ pub const SCHED_FLAG_ALL: c_int = SCHED_FLAG_RESET_ON_FORK pub const EPIOCSPARAMS: Ioctl = 0x40088a01; pub const EPIOCGPARAMS: Ioctl = 0x80088a02; -const _IOC_NRBITS: u32 = 8; -const _IOC_TYPEBITS: u32 = 8; - // siginfo.h pub const SI_DETHREAD: c_int = -7; pub const TRAP_PERF: c_int = 6; -// https://github.com/search?q=repo%3Atorvalds%2Flinux+%22%23define+_IOC_NONE%22&type=code -cfg_if! { - if #[cfg(any( - any(target_arch = "powerpc", target_arch = "powerpc64"), - any(target_arch = "sparc", target_arch = "sparc64"), - any(target_arch = "mips", target_arch = "mips64"), - ))] { - // https://github.com/torvalds/linux/blob/b311c1b497e51a628aa89e7cb954481e5f9dced2/arch/powerpc/include/uapi/asm/ioctl.h - // https://github.com/torvalds/linux/blob/b311c1b497e51a628aa89e7cb954481e5f9dced2/arch/sparc/include/uapi/asm/ioctl.h - // https://github.com/torvalds/linux/blob/b311c1b497e51a628aa89e7cb954481e5f9dced2/arch/mips/include/uapi/asm/ioctl.h - - const _IOC_SIZEBITS: u32 = 13; - const _IOC_DIRBITS: u32 = 3; - - const _IOC_NONE: u32 = 1; - const _IOC_READ: u32 = 2; - const _IOC_WRITE: u32 = 4; - } else { - // https://github.com/torvalds/linux/blob/b311c1b497e51a628aa89e7cb954481e5f9dced2/include/uapi/asm-generic/ioctl.h - - const _IOC_SIZEBITS: u32 = 14; - const _IOC_DIRBITS: u32 = 2; - - const _IOC_NONE: u32 = 0; - const _IOC_WRITE: u32 = 1; - const _IOC_READ: u32 = 2; - } -} - -const _IOC_NRMASK: u32 = (1 << _IOC_NRBITS) - 1; -const _IOC_TYPEMASK: u32 = (1 << _IOC_TYPEBITS) - 1; -const _IOC_SIZEMASK: u32 = (1 << _IOC_SIZEBITS) - 1; -const _IOC_DIRMASK: u32 = (1 << _IOC_DIRBITS) - 1; - -const _IOC_NRSHIFT: u32 = 0; -const _IOC_TYPESHIFT: u32 = _IOC_NRSHIFT + _IOC_NRBITS; -const _IOC_SIZESHIFT: u32 = _IOC_TYPESHIFT + _IOC_TYPEBITS; -const _IOC_DIRSHIFT: u32 = _IOC_SIZESHIFT + _IOC_SIZEBITS; - -// adapted from https://github.com/torvalds/linux/blob/8a696a29c6905594e4abf78eaafcb62165ac61f1/rust/kernel/ioctl.rs - -/// Build an ioctl number, analogous to the C macro of the same name. -const fn _IOC(dir: u32, ty: u32, nr: u32, size: usize) -> u32 { - // FIXME(ctest) the `garando_syntax` crate (used by ctest2 in the CI test suite) - // cannot currently parse these `debug_assert!`s - // - // debug_assert!(dir <= _IOC_DIRMASK); - // debug_assert!(ty <= _IOC_TYPEMASK); - // debug_assert!(nr <= _IOC_NRMASK); - // debug_assert!(size <= (_IOC_SIZEMASK as usize)); - - (dir << _IOC_DIRSHIFT) - | (ty << _IOC_TYPESHIFT) - | (nr << _IOC_NRSHIFT) - | ((size as u32) << _IOC_SIZESHIFT) -} - /// Build an ioctl number for an argumentless ioctl. pub const fn _IO(ty: u32, nr: u32) -> u32 { - _IOC(_IOC_NONE, ty, nr, 0) + super::_IOC(super::_IOC_NONE, ty, nr, 0) } /// Build an ioctl number for an read-only ioctl. pub const fn _IOR(ty: u32, nr: u32) -> u32 { - _IOC(_IOC_READ, ty, nr, size_of::()) + super::_IOC(super::_IOC_READ, ty, nr, size_of::()) } /// Build an ioctl number for an write-only ioctl. pub const fn _IOW(ty: u32, nr: u32) -> u32 { - _IOC(_IOC_WRITE, ty, nr, size_of::()) + super::_IOC(super::_IOC_WRITE, ty, nr, size_of::()) } /// Build an ioctl number for a read-write ioctl. pub const fn _IOWR(ty: u32, nr: u32) -> u32 { - _IOC(_IOC_READ | _IOC_WRITE, ty, nr, size_of::()) + super::_IOC(super::_IOC_READ | super::_IOC_WRITE, ty, nr, size_of::()) } f! { diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 875814dcc08e1..eff3e60d97b55 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1631,6 +1631,73 @@ cfg_if! { } } +// https://github.com/search?q=repo%3Atorvalds%2Flinux+%22%23define+_IOC_NONE%22&type=code +cfg_if! { + if #[cfg(any( + target_os = "linux", + target_os = "android", + target_os = "l4re" + ))] { + const _IOC_NRBITS: u32 = 8; + const _IOC_TYPEBITS: u32 = 8; + + cfg_if! { + if #[cfg(any( + any(target_arch = "powerpc", target_arch = "powerpc64"), + any(target_arch = "sparc", target_arch = "sparc64"), + any(target_arch = "mips", target_arch = "mips64"), + ))] { + // https://github.com/torvalds/linux/blob/b311c1b497e51a628aa89e7cb954481e5f9dced2/arch/powerpc/include/uapi/asm/ioctl.h + // https://github.com/torvalds/linux/blob/b311c1b497e51a628aa89e7cb954481e5f9dced2/arch/sparc/include/uapi/asm/ioctl.h + // https://github.com/torvalds/linux/blob/b311c1b497e51a628aa89e7cb954481e5f9dced2/arch/mips/include/uapi/asm/ioctl.h + + const _IOC_SIZEBITS: u32 = 13; + const _IOC_DIRBITS: u32 = 3; + + const _IOC_NONE: u32 = 1; + const _IOC_READ: u32 = 2; + const _IOC_WRITE: u32 = 4; + } else { + // https://github.com/torvalds/linux/blob/b311c1b497e51a628aa89e7cb954481e5f9dced2/include/uapi/asm-generic/ioctl.h + + const _IOC_SIZEBITS: u32 = 14; + const _IOC_DIRBITS: u32 = 2; + + const _IOC_NONE: u32 = 0; + const _IOC_WRITE: u32 = 1; + const _IOC_READ: u32 = 2; + } + } + const _IOC_NRMASK: u32 = (1 << _IOC_NRBITS) - 1; + const _IOC_TYPEMASK: u32 = (1 << _IOC_TYPEBITS) - 1; + const _IOC_SIZEMASK: u32 = (1 << _IOC_SIZEBITS) - 1; + const _IOC_DIRMASK: u32 = (1 << _IOC_DIRBITS) - 1; + + const _IOC_NRSHIFT: u32 = 0; + const _IOC_TYPESHIFT: u32 = _IOC_NRSHIFT + _IOC_NRBITS; + const _IOC_SIZESHIFT: u32 = _IOC_TYPESHIFT + _IOC_TYPEBITS; + const _IOC_DIRSHIFT: u32 = _IOC_SIZESHIFT + _IOC_SIZEBITS; + + // adapted from https://github.com/torvalds/linux/blob/8a696a29c6905594e4abf78eaafcb62165ac61f1/rust/kernel/ioctl.rs + + /// Build an ioctl number, analogous to the C macro of the same name. + const fn _IOC(dir: u32, ty: u32, nr: u32, size: usize) -> u32 { + // FIXME(ctest) the `garando_syntax` crate (used by ctest in the CI test suite) + // cannot currently parse these `debug_assert!`s + // + // debug_assert!(dir <= _IOC_DIRMASK); + // debug_assert!(ty <= _IOC_TYPEMASK); + // debug_assert!(nr <= _IOC_NRMASK); + // debug_assert!(size <= (_IOC_SIZEMASK as usize)); + + (dir << _IOC_DIRSHIFT) + | (ty << _IOC_TYPESHIFT) + | (nr << _IOC_NRSHIFT) + | ((size as u32) << _IOC_SIZESHIFT) + } + } +} + const_fn! { {const} fn CMSG_ALIGN(len: usize) -> usize { len + mem::size_of::() - 1 & !(mem::size_of::() - 1) From 651bdf22d9a91547b07d610d5f9e51b4d4a8ed24 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Wed, 12 Mar 2025 18:15:07 +0100 Subject: [PATCH 0599/1228] Add missing `filedesc` and `fdescenttbl` in FreeBSD [ edited the message to be more specific - Trevor ] (backport ) (cherry picked from commit a23e0e0bc99dae996491249c36b163dea13427eb) --- .../bsd/freebsdlike/freebsd/freebsd11/mod.rs | 3 +- .../bsd/freebsdlike/freebsd/freebsd12/mod.rs | 3 +- .../bsd/freebsdlike/freebsd/freebsd13/mod.rs | 3 +- .../bsd/freebsdlike/freebsd/freebsd14/mod.rs | 3 +- .../bsd/freebsdlike/freebsd/freebsd15/mod.rs | 3 +- src/unix/bsd/freebsdlike/freebsd/mod.rs | 41 +++++++++++++++++++ 6 files changed, 46 insertions(+), 10 deletions(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs index 87ddbcc4376c8..584644701aea2 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs @@ -51,9 +51,8 @@ s! { // 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, + pub ki_fd: *mut crate::filedesc, // This is normally "struct vmspace". /// Pointer to kernel vmspace struct. pub ki_vmspace: *mut c_void, diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index 6c2f586195dc5..21062e50afcbd 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -59,9 +59,8 @@ s! { // 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, + pub ki_fd: *mut crate::filedesc, // This is normally "struct vmspace". /// Pointer to kernel vmspace struct. pub ki_vmspace: *mut c_void, diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs index cf507e66b38c0..505d2d1591652 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -69,9 +69,8 @@ s! { // 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, + pub ki_fd: *mut crate::filedesc, // This is normally "struct vmspace". /// Pointer to kernel vmspace struct. pub ki_vmspace: *mut c_void, diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index 0a05ca9fad3e8..44a3656d674f7 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -69,9 +69,8 @@ s! { // 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, + pub ki_fd: *mut crate::filedesc, // This is normally "struct vmspace". /// Pointer to kernel vmspace struct. pub ki_vmspace: *mut c_void, diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index 2fe39a3acea2c..29c9c0cb94fff 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -69,9 +69,8 @@ s! { // 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, + pub ki_fd: *mut crate::filedesc, // This is normally "struct vmspace". /// Pointer to kernel vmspace struct. pub ki_vmspace: *mut c_void, diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 375c51b3de669..11830db22ab5a 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1357,6 +1357,47 @@ s! { pub strchange_instrms: u16, pub strchange_outstrms: u16, } + + pub struct filedesc { + pub fd_files: *mut fdescenttbl, + pub fd_map: *mut c_ulong, + pub fd_freefile: c_int, + pub fd_refcnt: c_int, + pub fd_holdcnt: c_int, + fd_sx: sx, + fd_kqlist: kqlist, + pub fd_holdleaderscount: c_int, + pub fd_holdleaderswakeup: c_int, + } + + pub struct fdescenttbl { + pub fdt_nfiles: c_int, + fdt_ofiles: [*mut c_void; 0], + } + + // FIXME: Should be private. + #[doc(hidden)] + pub struct sx { + lock_object: lock_object, + sx_lock: crate::uintptr_t, + } + + // FIXME: Should be private. + #[doc(hidden)] + pub struct lock_object { + lo_name: *const c_char, + lo_flags: c_uint, + lo_data: c_uint, + // This is normally `struct witness`. + lo_witness: *mut c_void, + } + + // FIXME: Should be private. + #[doc(hidden)] + pub struct kqlist { + tqh_first: *mut c_void, + tqh_last: *mut *mut c_void, + } } s_no_extra_traits! { From 087820baff4889115bbfca2a64f769bfe3255423 Mon Sep 17 00:00:00 2001 From: Berrysoft Date: Thu, 10 Apr 2025 14:43:28 +0800 Subject: [PATCH 0600/1228] cygwin: posix_spawn_file_actions_add[f]chdir[_np] (backport ) (cherry picked from commit e46d0c7e74701ea90fd1a8f562620aa5b26c97ad) --- libc-test/semver/cygwin.txt | 4 ++++ src/unix/cygwin/mod.rs | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/libc-test/semver/cygwin.txt b/libc-test/semver/cygwin.txt index 2b0b827674fdf..99e822ca62d18 100644 --- a/libc-test/semver/cygwin.txt +++ b/libc-test/semver/cygwin.txt @@ -734,8 +734,12 @@ posix_fadvise posix_fallocate posix_madvise posix_spawn +posix_spawn_file_actions_addchdir +posix_spawn_file_actions_addchdir_np posix_spawn_file_actions_addclose posix_spawn_file_actions_adddup2 +posix_spawn_file_actions_addfchdir +posix_spawn_file_actions_addfchdir_np posix_spawn_file_actions_addopen posix_spawn_file_actions_destroy posix_spawn_file_actions_init diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 9fe63985f1180..c2fda6768b2b0 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -2479,6 +2479,22 @@ extern "C" { fd: c_int, newfd: c_int, ) -> c_int; + pub fn posix_spawn_file_actions_addchdir( + actions: *mut crate::posix_spawn_file_actions_t, + path: *const c_char, + ) -> c_int; + pub fn posix_spawn_file_actions_addfchdir( + actions: *mut crate::posix_spawn_file_actions_t, + fd: c_int, + ) -> c_int; + pub fn posix_spawn_file_actions_addchdir_np( + actions: *mut crate::posix_spawn_file_actions_t, + path: *const c_char, + ) -> c_int; + pub fn posix_spawn_file_actions_addfchdir_np( + actions: *mut crate::posix_spawn_file_actions_t, + fd: c_int, + ) -> c_int; pub fn forkpty( amaster: *mut c_int, From abf01706808828e82f4132113ecfeee4fe6c0d46 Mon Sep 17 00:00:00 2001 From: Florian Bartels Date: Mon, 2 Dec 2024 10:44:14 +0100 Subject: [PATCH 0601/1228] Add support for alternative QNX Neutrino network stack `io-sock` Signed-off-by: Florian Bartels (backport ) (cherry picked from commit f5bfa9f86d0d7d6813ac04c17964fc5a11c8fedc) --- libc-test/build.rs | 20 +++ src/unix/mod.rs | 23 +++- src/unix/nto/mod.rs | 291 +++++++++++++++++++++++++++++--------------- 3 files changed, 237 insertions(+), 97 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index c84bddca80960..0bde80b811119 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3307,6 +3307,20 @@ fn test_neutrino(target: &str) { assert!(target.contains("nto-qnx")); let mut cfg = ctest_cfg(); + if target.ends_with("_iosock") { + let qnx_target_val = std::env::var("QNX_TARGET") + .unwrap_or_else(|_| "QNX_TARGET_not_set_please_source_qnxsdp".into()); + + cfg.include(qnx_target_val + "/usr/include/io-sock"); + headers! { cfg: + "io-sock.h", + "sys/types.h", + "sys/socket.h", + "sys/sysctl.h", + "net/if.h", + "net/if_arp.h" + } + } headers! { cfg: "ctype.h", @@ -3464,6 +3478,9 @@ fn test_neutrino(target: &str) { // Does not exist in Neutrino "locale_t" => true, + // FIXME: "'__uint128' undeclared" in C + "__uint128" => true, + _ => false, } }); @@ -3527,6 +3544,9 @@ fn test_neutrino(target: &str) { // stack unwinding bug. "__my_thread_exit" => true, + // Wrong const-ness + "dl_iterate_phdr" => true, + _ => false, } }); diff --git a/src/unix/mod.rs b/src/unix/mod.rs index fa88de25f4aa2..433eeec950965 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -334,7 +334,13 @@ pub const ATF_PERM: c_int = 0x04; pub const ATF_PUBL: c_int = 0x08; pub const ATF_USETRAILERS: c_int = 0x10; -pub const FNM_PERIOD: c_int = 1 << 2; +cfg_if! { + if #[cfg(target_os = "nto")] { + pub const FNM_PERIOD: c_int = 1 << 1; + } else { + pub const FNM_PERIOD: c_int = 1 << 2; + } +} pub const FNM_NOMATCH: c_int = 1; cfg_if! { @@ -354,9 +360,22 @@ cfg_if! { target_os = "cygwin", ))] { pub const FNM_PATHNAME: c_int = 1 << 1; - pub const FNM_NOESCAPE: c_int = 1 << 0; } else { pub const FNM_PATHNAME: c_int = 1 << 0; + } +} + +cfg_if! { + if #[cfg(any( + target_os = "macos", + target_os = "freebsd", + target_os = "android", + target_os = "openbsd", + ))] { + pub const FNM_NOESCAPE: c_int = 1 << 0; + } else if #[cfg(target_os = "nto")] { + pub const FNM_NOESCAPE: c_int = 1 << 2; + } else { pub const FNM_NOESCAPE: c_int = 1 << 1; } } diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index c1457d631acf1..e0a1c9b652102 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -114,7 +114,7 @@ s! { pub imr_interface: in_addr, } - #[repr(packed)] + #[cfg_attr(any(target_env = "nto71", target_env = "nto70"), repr(packed))] pub struct in_addr { pub s_addr: crate::in_addr_t, } @@ -125,6 +125,7 @@ s! { pub sa_data: [c_char; 14], } + #[cfg(not(target_env = "nto71_iosock"))] pub struct sockaddr_in { pub sin_len: u8, pub sin_family: sa_family_t, @@ -133,6 +134,15 @@ s! { pub sin_zero: [i8; 8], } + #[cfg(target_env = "nto71_iosock")] + pub struct sockaddr_in { + pub sin_len: u8, + pub sin_family: sa_family_t, + pub sin_port: crate::in_port_t, + pub sin_addr: crate::in_addr, + pub sin_zero: [c_char; 8], + } + pub struct sockaddr_in6 { pub sin6_len: u8, pub sin6_family: sa_family_t, @@ -234,6 +244,8 @@ s! { pub _Reserved: [*mut c_char; 8], } + // Does not exist in io-sock + #[cfg(not(target_env = "nto71_iosock"))] pub struct in_pktinfo { pub ipi_addr: crate::in_addr, pub ipi_ifindex: c_uint, @@ -255,7 +267,7 @@ s! { pub arp_flags: c_int, } - #[repr(packed)] + #[cfg_attr(any(target_env = "nto71", target_env = "nto70"), repr(packed))] pub struct arphdr { pub ar_hrd: u16, pub ar_pro: u16, @@ -264,11 +276,18 @@ s! { pub ar_op: u16, } + #[cfg(not(target_env = "nto71_iosock"))] pub struct mmsghdr { pub msg_hdr: crate::msghdr, pub msg_len: c_uint, } + #[cfg(target_env = "nto71_iosock")] + pub struct mmsghdr { + pub msg_hdr: crate::msghdr, + pub msg_len: ssize_t, + } + #[repr(align(8))] pub struct siginfo_t { pub si_signo: c_int, @@ -592,6 +611,7 @@ s! { pub bf_insns: *mut crate::bpf_insn, } + #[cfg(not(target_env = "nto71_iosock"))] pub struct bpf_stat { pub bs_recv: u64, pub bs_drop: u64, @@ -599,6 +619,12 @@ s! { bs_padding: [u64; 13], } + #[cfg(target_env = "nto71_iosock")] + pub struct bpf_stat { + pub bs_recv: c_uint, + pub bs_drop: c_uint, + } + pub struct bpf_version { pub bv_major: c_ushort, pub bv_minor: c_ushort, @@ -623,6 +649,8 @@ s! { pub bfl_list: *mut c_uint, } + // Does not exist in io-sock + #[cfg(not(target_env = "nto71_iosock"))] pub struct unpcbid { pub unp_pid: crate::pid_t, pub unp_euid: crate::uid_t, @@ -723,6 +751,7 @@ s_no_extra_traits! { msg_pad4: [c_long; 4], } + #[cfg(not(target_env = "nto71_iosock"))] pub struct sockaddr_dl { pub sdl_len: c_uchar, pub sdl_family: crate::sa_family_t, @@ -734,6 +763,18 @@ s_no_extra_traits! { pub sdl_data: [c_char; 12], } + #[cfg(target_env = "nto71_iosock")] + pub struct sockaddr_dl { + pub sdl_len: c_uchar, + pub sdl_family: c_uchar, + pub sdl_index: c_ushort, + pub sdl_type: c_uchar, + pub sdl_nlen: c_uchar, + pub sdl_alen: c_uchar, + pub sdl_slen: c_uchar, + pub sdl_data: [c_char; 46], + } + pub struct sync_t { __u: c_uint, // union pub __owner: c_uint, @@ -1232,7 +1273,122 @@ pub const MS_SYNC: c_int = 2; pub const SCM_RIGHTS: c_int = 0x01; pub const SCM_TIMESTAMP: c_int = 0x02; -pub const SCM_CREDS: c_int = 0x04; +cfg_if! { + if #[cfg(not(target_env = "nto71_iosock"))] { + pub const SCM_CREDS: c_int = 0x04; + pub const IFF_NOTRAILERS: c_int = 0x00000020; + pub const AF_INET6: c_int = 24; + pub const AF_BLUETOOTH: c_int = 31; + pub const pseudo_AF_KEY: c_int = 29; + pub const MSG_NOSIGNAL: c_int = 0x0800; + pub const MSG_WAITFORONE: c_int = 0x2000; + pub const IP_IPSEC_POLICY_COMPAT: c_int = 22; + pub const IP_PKTINFO: c_int = 25; + pub const IPPROTO_DIVERT: c_int = 259; + pub const IPV6_IPSEC_POLICY_COMPAT: c_int = 28; + pub const TCP_KEEPALIVE: c_int = 0x04; + pub const ARPHRD_ARCNET: u16 = 7; + pub const SO_BINDTODEVICE: c_int = 0x0800; + pub const EAI_NODATA: c_int = 7; + pub const IPTOS_ECN_NOT_ECT: u8 = 0x00; + pub const RTF_BROADCAST: u32 = 0x80000; + pub const UDP_ENCAP: c_int = 100; + pub const HW_IOSTATS: c_int = 9; + pub const HW_MACHINE_ARCH: c_int = 10; + pub const HW_ALIGNBYTES: c_int = 11; + pub const HW_CNMAGIC: c_int = 12; + pub const HW_PHYSMEM64: c_int = 13; + pub const HW_USERMEM64: c_int = 14; + pub const HW_IOSTATNAMES: c_int = 15; + pub const HW_MAXID: c_int = 15; + pub const CTL_UNSPEC: c_int = 0; + pub const CTL_QNX: c_int = 9; + pub const CTL_PROC: c_int = 10; + pub const CTL_VENDOR: c_int = 11; + pub const CTL_EMUL: c_int = 12; + pub const CTL_SECURITY: c_int = 13; + pub const CTL_MAXID: c_int = 14; + pub const AF_ARP: c_int = 28; + pub const AF_IEEE80211: c_int = 32; + pub const AF_NATM: c_int = 27; + pub const AF_NS: c_int = 6; + pub const BIOCGDLTLIST: c_int = -1072676233; + pub const BIOCGETIF: c_int = 1083196011; + pub const BIOCGSEESENT: c_int = 1074020984; + pub const BIOCGSTATS: c_int = 1082147439; + pub const BIOCSDLT: c_int = -2147204490; + pub const BIOCSETIF: c_int = -2138029460; + pub const BIOCSSEESENT: c_int = -2147204487; + pub const FIONSPACE: c_int = 1074030200; + pub const FIONWRITE: c_int = 1074030201; + pub const IFF_ACCEPTRTADV: c_int = 0x40000000; + pub const IFF_IP6FORWARDING: c_int = 0x20000000; + pub const IFF_SHIM: c_int = 0x80000000; + pub const KERN_ARND: c_int = 81; + pub const KERN_IOV_MAX: c_int = 38; + pub const KERN_LOGSIGEXIT: c_int = 46; + pub const KERN_MAXID: c_int = 83; + pub const KERN_PROC_ARGS: c_int = 48; + pub const KERN_PROC_ENV: c_int = 3; + pub const KERN_PROC_GID: c_int = 7; + pub const KERN_PROC_RGID: c_int = 8; + pub const LOCAL_CONNWAIT: c_int = 0x0002; + pub const LOCAL_CREDS: c_int = 0x0001; + pub const LOCAL_PEEREID: c_int = 0x0003; + pub const MSG_NOTIFICATION: c_int = 0x0400; + pub const NET_RT_IFLIST: c_int = 4; + pub const NI_NUMERICSCOPE: c_int = 0x00000040; + pub const PF_ARP: c_int = 28; + pub const PF_NATM: c_int = 27; + pub const pseudo_AF_HDRCMPLT: c_int = 30; + pub const SIOCGIFADDR: c_int = -1064277727; + pub const SO_FIB: c_int = 0x100a; + pub const SO_TXPRIO: c_int = 0x100b; + pub const SO_SETFIB: c_int = 0x100a; + pub const SO_VLANPRIO: c_int = 0x100c; + pub const USER_ATEXIT_MAX: c_int = 21; + pub const USER_MAXID: c_int = 22; + pub const SO_OVERFLOWED: c_int = 0x1009; + } else { + pub const SCM_CREDS: c_int = 0x03; + pub const AF_INET6: c_int = 28; + pub const AF_BLUETOOTH: c_int = 36; + pub const pseudo_AF_KEY: c_int = 27; + pub const MSG_NOSIGNAL: c_int = 0x20000; + pub const MSG_WAITFORONE: c_int = 0x00080000; + pub const IPPROTO_DIVERT: c_int = 258; + pub const RTF_BROADCAST: u32 = 0x400000; + pub const UDP_ENCAP: c_int = 1; + pub const HW_MACHINE_ARCH: c_int = 11; + pub const AF_ARP: c_int = 35; + pub const AF_IEEE80211: c_int = 37; + pub const AF_NATM: c_int = 29; + pub const BIOCGDLTLIST: c_ulong = 0xffffffffc0104279; + pub const BIOCGETIF: c_int = 0x4020426b; + pub const BIOCGSEESENT: c_int = 0x40044276; + pub const BIOCGSTATS: c_int = 0x4008426f; + pub const BIOCSDLT: c_int = 0x80044278; + pub const BIOCSETIF: c_int = 0x8020426c; + pub const BIOCSSEESENT: c_int = 0x80044277; + pub const KERN_ARND: c_int = 37; + pub const KERN_IOV_MAX: c_int = 35; + pub const KERN_LOGSIGEXIT: c_int = 34; + pub const KERN_PROC_ARGS: c_int = 7; + pub const KERN_PROC_ENV: c_int = 35; + pub const KERN_PROC_GID: c_int = 11; + pub const KERN_PROC_RGID: c_int = 10; + pub const LOCAL_CONNWAIT: c_int = 4; + pub const LOCAL_CREDS: c_int = 2; + pub const MSG_NOTIFICATION: c_int = 0x00002000; + pub const NET_RT_IFLIST: c_int = 3; + pub const NI_NUMERICSCOPE: c_int = 0x00000020; + pub const PF_ARP: c_int = AF_ARP; + pub const PF_NATM: c_int = AF_NATM; + pub const pseudo_AF_HDRCMPLT: c_int = 31; + pub const SIOCGIFADDR: c_int = 0xc0206921; + pub const SO_SETFIB: c_int = 0x1014; + } +} pub const MAP_TYPE: c_int = 0x3; @@ -1241,7 +1397,6 @@ pub const IFF_BROADCAST: c_int = 0x00000002; pub const IFF_DEBUG: c_int = 0x00000004; pub const IFF_LOOPBACK: c_int = 0x00000008; pub const IFF_POINTOPOINT: c_int = 0x00000010; -pub const IFF_NOTRAILERS: c_int = 0x00000020; pub const IFF_RUNNING: c_int = 0x00000040; pub const IFF_NOARP: c_int = 0x00000080; pub const IFF_PROMISC: c_int = 0x00000100; @@ -1254,10 +1409,9 @@ pub const AF_LOCAL: c_int = 1; pub const AF_INET: c_int = 2; pub const AF_IPX: c_int = 23; pub const AF_APPLETALK: c_int = 16; -pub const AF_INET6: c_int = 24; pub const AF_ROUTE: c_int = 17; pub const AF_SNA: c_int = 11; -pub const AF_BLUETOOTH: c_int = 31; + pub const AF_ISDN: c_int = 26; pub const PF_UNSPEC: c_int = AF_UNSPEC; @@ -1267,7 +1421,6 @@ pub const PF_INET: c_int = AF_INET; pub const PF_IPX: c_int = AF_IPX; pub const PF_APPLETALK: c_int = AF_APPLETALK; pub const PF_INET6: c_int = AF_INET6; -pub const pseudo_AF_KEY: c_int = 29; pub const PF_KEY: c_int = pseudo_AF_KEY; pub const PF_ROUTE: c_int = AF_ROUTE; pub const PF_SNA: c_int = AF_SNA; @@ -1285,8 +1438,6 @@ pub const MSG_TRUNC: c_int = 0x0010; pub const MSG_DONTWAIT: c_int = 0x0080; pub const MSG_EOR: c_int = 0x0008; pub const MSG_WAITALL: c_int = 0x0040; -pub const MSG_NOSIGNAL: c_int = 0x0800; -pub const MSG_WAITFORONE: c_int = 0x2000; pub const IP_TOS: c_int = 3; pub const IP_TTL: c_int = 4; @@ -1294,8 +1445,6 @@ pub const IP_HDRINCL: c_int = 2; pub const IP_OPTIONS: c_int = 1; pub const IP_RECVOPTS: c_int = 5; pub const IP_RETOPTS: c_int = 8; -pub const IP_PKTINFO: c_int = 25; -pub const IP_IPSEC_POLICY_COMPAT: c_int = 22; pub const IP_MULTICAST_IF: c_int = 9; pub const IP_MULTICAST_TTL: c_int = 10; pub const IP_MULTICAST_LOOP: c_int = 11; @@ -1325,7 +1474,6 @@ pub const IPPROTO_SCTP: c_int = 132; pub const IPPROTO_RAW: c_int = 255; pub const IPPROTO_MAX: c_int = 256; pub const IPPROTO_CARP: c_int = 112; -pub const IPPROTO_DIVERT: c_int = 259; pub const IPPROTO_DONE: c_int = 257; pub const IPPROTO_EON: c_int = 80; pub const IPPROTO_ETHERIP: c_int = 97; @@ -1343,7 +1491,6 @@ pub const IPV6_JOIN_GROUP: c_int = 12; pub const IPV6_LEAVE_GROUP: c_int = 13; pub const IPV6_CHECKSUM: c_int = 26; pub const IPV6_V6ONLY: c_int = 27; -pub const IPV6_IPSEC_POLICY_COMPAT: c_int = 28; pub const IPV6_RTHDRDSTOPTS: c_int = 35; pub const IPV6_RECVPKTINFO: c_int = 36; pub const IPV6_RECVHOPLIMIT: c_int = 37; @@ -1364,7 +1511,6 @@ pub const IPV6_DONTFRAG: c_int = 62; pub const TCP_NODELAY: c_int = 0x01; pub const TCP_MAXSEG: c_int = 0x02; pub const TCP_MD5SIG: c_int = 0x10; -pub const TCP_KEEPALIVE: c_int = 0x04; pub const SHUT_RD: c_int = 0; pub const SHUT_WR: c_int = 1; @@ -1514,7 +1660,6 @@ pub const MAXTTL: u8 = 255; pub const ARPHRD_ETHER: u16 = 1; pub const ARPHRD_IEEE802: u16 = 6; -pub const ARPHRD_ARCNET: u16 = 7; pub const ARPHRD_IEEE1394: u16 = 24; pub const SOL_SOCKET: c_int = 0xffff; @@ -1535,7 +1680,6 @@ pub const SO_RCVLOWAT: c_int = 0x1004; pub const SO_SNDLOWAT: c_int = 0x1003; pub const SO_RCVTIMEO: c_int = 0x1006; pub const SO_SNDTIMEO: c_int = 0x1005; -pub const SO_BINDTODEVICE: c_int = 0x0800; pub const SO_TIMESTAMP: c_int = 0x0400; pub const SO_ACCEPTCONN: c_int = 0x0002; @@ -1581,7 +1725,6 @@ pub const EAI_BADFLAGS: c_int = 3; pub const EAI_NONAME: c_int = 8; pub const EAI_AGAIN: c_int = 2; pub const EAI_FAIL: c_int = 4; -pub const EAI_NODATA: c_int = 7; pub const EAI_FAMILY: c_int = 5; pub const EAI_SOCKTYPE: c_int = 10; pub const EAI_SERVICE: c_int = 9; @@ -1616,8 +1759,6 @@ pub const POSIX_SPAWN_SETSIGMASK: c_int = 0x00000002; pub const POSIX_SPAWN_SETSCHEDPARAM: c_int = 0x00000400; pub const POSIX_SPAWN_SETSCHEDULER: c_int = 0x00000040; -pub const IPTOS_ECN_NOT_ECT: u8 = 0x00; - pub const RTF_UP: c_ushort = 0x0001; pub const RTF_GATEWAY: c_ushort = 0x0002; @@ -1627,14 +1768,11 @@ pub const RTF_MODIFIED: c_ushort = 0x0020; pub const RTF_REJECT: c_ushort = 0x0008; pub const RTF_STATIC: c_ushort = 0x0800; pub const RTF_XRESOLVE: c_ushort = 0x0200; -pub const RTF_BROADCAST: u32 = 0x80000; pub const RTM_NEWADDR: u16 = 0xc; pub const RTM_DELADDR: u16 = 0xd; pub const RTA_DST: c_ushort = 0x1; pub const RTA_GATEWAY: c_ushort = 0x2; -pub const UDP_ENCAP: c_int = 100; - pub const IN_ACCESS: u32 = 0x00000001; pub const IN_MODIFY: u32 = 0x00000002; pub const IN_ATTRIB: u32 = 0x00000004; @@ -2268,16 +2406,6 @@ pub const HW_PHYSMEM: c_int = 5; pub const HW_USERMEM: c_int = 6; pub const HW_PAGESIZE: c_int = 7; pub const HW_DISKNAMES: c_int = 8; -pub const HW_IOSTATS: c_int = 9; -pub const HW_MACHINE_ARCH: c_int = 10; -pub const HW_ALIGNBYTES: c_int = 11; -pub const HW_CNMAGIC: c_int = 12; -pub const HW_PHYSMEM64: c_int = 13; -pub const HW_USERMEM64: c_int = 14; -pub const HW_IOSTATNAMES: c_int = 15; -pub const HW_MAXID: c_int = 15; - -pub const CTL_UNSPEC: c_int = 0; pub const CTL_KERN: c_int = 1; pub const CTL_VM: c_int = 2; pub const CTL_VFS: c_int = 3; @@ -2286,12 +2414,6 @@ pub const CTL_DEBUG: c_int = 5; pub const CTL_HW: c_int = 6; pub const CTL_MACHDEP: c_int = 7; pub const CTL_USER: c_int = 8; -pub const CTL_QNX: c_int = 9; -pub const CTL_PROC: c_int = 10; -pub const CTL_VENDOR: c_int = 11; -pub const CTL_EMUL: c_int = 12; -pub const CTL_SECURITY: c_int = 13; -pub const CTL_MAXID: c_int = 14; pub const DAY_1: crate::nl_item = 8; pub const DAY_2: crate::nl_item = 9; @@ -2335,7 +2457,6 @@ pub const ABMON_10: crate::nl_item = 43; pub const ABMON_11: crate::nl_item = 44; pub const ABMON_12: crate::nl_item = 45; -pub const AF_ARP: c_int = 28; pub const AF_CCITT: c_int = 10; pub const AF_CHAOS: c_int = 5; pub const AF_CNT: c_int = 21; @@ -2346,13 +2467,10 @@ pub const AF_DLI: c_int = 13; pub const AF_E164: c_int = 26; pub const AF_ECMA: c_int = 8; pub const AF_HYLINK: c_int = 15; -pub const AF_IEEE80211: c_int = 32; pub const AF_IMPLINK: c_int = 3; pub const AF_ISO: c_int = 7; pub const AF_LAT: c_int = 14; pub const AF_LINK: c_int = 18; -pub const AF_NATM: c_int = 27; -pub const AF_NS: c_int = 6; pub const AF_OSI: c_int = 7; pub const AF_PUP: c_int = 4; pub const ALT_DIGITS: crate::nl_item = 50; @@ -2362,21 +2480,14 @@ pub const B76800: crate::speed_t = 76800; pub const BIOCFLUSH: c_int = 17000; pub const BIOCGBLEN: c_int = 1074020966; pub const BIOCGDLT: c_int = 1074020970; -pub const BIOCGDLTLIST: c_int = -1072676233; -pub const BIOCGETIF: c_int = 1083196011; pub const BIOCGHDRCMPLT: c_int = 1074020980; pub const BIOCGRTIMEOUT: c_int = 1074807406; -pub const BIOCGSEESENT: c_int = 1074020984; -pub const BIOCGSTATS: c_int = 1082147439; pub const BIOCIMMEDIATE: c_int = -2147204496; pub const BIOCPROMISC: c_int = 17001; pub const BIOCSBLEN: c_int = -1073462682; -pub const BIOCSDLT: c_int = -2147204490; pub const BIOCSETF: c_int = -2146418073; -pub const BIOCSETIF: c_int = -2138029460; pub const BIOCSHDRCMPLT: c_int = -2147204491; pub const BIOCSRTIMEOUT: c_int = -2146418067; -pub const BIOCSSEESENT: c_int = -2147204487; pub const BIOCVERSION: c_int = 1074020977; pub const BPF_ALIGNMENT: usize = mem::size_of::(); @@ -2412,18 +2523,13 @@ pub const FIOCLEX: c_int = 26113; pub const FIOGETOWN: c_int = 1074030203; pub const FIONCLEX: c_int = 26114; pub const FIONREAD: c_int = 1074030207; -pub const FIONSPACE: c_int = 1074030200; -pub const FIONWRITE: c_int = 1074030201; pub const FIOSETOWN: c_int = -2147195268; pub const F_SETOWN: c_int = 36; -pub const IFF_ACCEPTRTADV: c_int = 0x40000000; -pub const IFF_IP6FORWARDING: c_int = 0x20000000; pub const IFF_LINK0: c_int = 0x00001000; pub const IFF_LINK1: c_int = 0x00002000; pub const IFF_LINK2: c_int = 0x00004000; pub const IFF_OACTIVE: c_int = 0x00000400; -pub const IFF_SHIM: c_int = 0x80000000; pub const IFF_SIMPLEX: c_int = 0x00000800; pub const IHFLOW: tcflag_t = 0x00000001; pub const IIDLE: tcflag_t = 0x00000008; @@ -2434,17 +2540,13 @@ pub const IUCLC: tcflag_t = 0x00000200; pub const IUTF8: tcflag_t = 0x0004000; pub const KERN_ARGMAX: c_int = 8; -pub const KERN_ARND: c_int = 81; pub const KERN_BOOTTIME: c_int = 21; pub const KERN_CLOCKRATE: c_int = 12; pub const KERN_FILE: c_int = 15; pub const KERN_HOSTID: c_int = 11; pub const KERN_HOSTNAME: c_int = 10; -pub const KERN_IOV_MAX: c_int = 38; pub const KERN_JOB_CONTROL: c_int = 19; -pub const KERN_LOGSIGEXIT: c_int = 46; pub const KERN_MAXFILES: c_int = 7; -pub const KERN_MAXID: c_int = 83; pub const KERN_MAXPROC: c_int = 6; pub const KERN_MAXVNODES: c_int = 5; pub const KERN_NGROUPS: c_int = 18; @@ -2454,12 +2556,8 @@ pub const KERN_OSTYPE: c_int = 1; pub const KERN_POSIX1: c_int = 17; pub const KERN_PROC: c_int = 14; pub const KERN_PROC_ALL: c_int = 0; -pub const KERN_PROC_ARGS: c_int = 48; -pub const KERN_PROC_ENV: c_int = 3; -pub const KERN_PROC_GID: c_int = 7; pub const KERN_PROC_PGRP: c_int = 2; pub const KERN_PROC_PID: c_int = 1; -pub const KERN_PROC_RGID: c_int = 8; pub const KERN_PROC_RUID: c_int = 6; pub const KERN_PROC_SESSION: c_int = 3; pub const KERN_PROC_TTY: c_int = 4; @@ -2478,25 +2576,16 @@ pub const LC_MONETARY: c_int = 4; pub const LC_NUMERIC: c_int = 8; pub const LC_TIME: c_int = 16; -pub const LOCAL_CONNWAIT: c_int = 0x0002; -pub const LOCAL_CREDS: c_int = 0x0001; -pub const LOCAL_PEEREID: c_int = 0x0003; - pub const MAP_STACK: c_int = 0x00001000; pub const MNT_NOEXEC: c_int = 0x02; pub const MNT_NOSUID: c_int = 0x04; pub const MNT_RDONLY: c_int = 0x01; -pub const MSG_NOTIFICATION: c_int = 0x0400; - pub const NET_RT_DUMP: c_int = 1; pub const NET_RT_FLAGS: c_int = 2; -pub const NET_RT_IFLIST: c_int = 4; -pub const NI_NUMERICSCOPE: c_int = 0x00000040; pub const OHFLOW: tcflag_t = 0x00000002; pub const P_ALL: idtype_t = 0; pub const PARSTK: tcflag_t = 0x00000004; -pub const PF_ARP: c_int = 28; pub const PF_CCITT: c_int = 10; pub const PF_CHAOS: c_int = 5; pub const PF_CNT: c_int = 21; @@ -2510,7 +2599,6 @@ pub const PF_IMPLINK: c_int = 3; pub const PF_ISO: c_int = 7; pub const PF_LAT: c_int = 14; pub const PF_LINK: c_int = 18; -pub const PF_NATM: c_int = 27; pub const PF_OSI: c_int = 7; pub const PF_PIP: c_int = 25; pub const PF_PUP: c_int = 4; @@ -2528,7 +2616,6 @@ pub const P_PID: idtype_t = 1; pub const PRIO_PGRP: c_int = 1; pub const PRIO_PROCESS: c_int = 0; pub const PRIO_USER: c_int = 2; -pub const pseudo_AF_HDRCMPLT: c_int = 30; pub const pseudo_AF_PIP: c_int = 25; pub const pseudo_AF_RTIP: c_int = 22; pub const pseudo_AF_XTP: c_int = 19; @@ -2573,13 +2660,7 @@ pub const SIGEMT: c_int = 7; pub const SIGEV_NONE: c_int = 0; pub const SIGEV_SIGNAL: c_int = 129; pub const SIGEV_THREAD: c_int = 135; -pub const SIOCGIFADDR: c_int = -1064277727; -pub const SO_FIB: c_int = 0x100a; -pub const SO_OVERFLOWED: c_int = 0x1009; -pub const SO_SETFIB: c_int = 0x100a; -pub const SO_TXPRIO: c_int = 0x100b; pub const SO_USELOOPBACK: c_int = 0x0040; -pub const SO_VLANPRIO: c_int = 0x100c; pub const _SS_ALIGNSIZE: usize = mem::size_of::(); pub const _SS_MAXSIZE: usize = 128; pub const _SS_PAD1SIZE: usize = _SS_ALIGNSIZE - 2; @@ -2649,8 +2730,6 @@ pub const USER_POSIX2_SW_DEV: c_int = 17; pub const USER_POSIX2_UPE: c_int = 18; pub const USER_STREAM_MAX: c_int = 19; pub const USER_TZNAME_MAX: c_int = 20; -pub const USER_ATEXIT_MAX: c_int = 21; -pub const USER_MAXID: c_int = 22; pub const VDOWN: usize = 31; pub const VINS: usize = 32; @@ -2856,6 +2935,42 @@ safe_f! { } } +cfg_if! { + if #[cfg(not(target_env = "nto71_iosock"))] { + extern "C" { + pub fn sendmmsg( + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_uint, + ) -> c_int; + pub fn recvmmsg( + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_uint, + timeout: *mut crate::timespec, + ) -> c_int; + } + } else { + extern "C" { + pub fn sendmmsg( + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: size_t, + flags: c_int, + ) -> ssize_t; + pub fn recvmmsg( + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: size_t, + flags: c_int, + timeout: *const crate::timespec, + ) -> ssize_t; + } + } +} + // Network related functions are provided by libsocket and regex // functions are provided by libregex. // In QNX <=7.0, libregex functions were included in libc itself. @@ -3277,20 +3392,6 @@ extern "C" { flags: c_int, ) -> c_int; - pub fn sendmmsg( - sockfd: c_int, - msgvec: *mut crate::mmsghdr, - vlen: c_uint, - flags: c_uint, - ) -> c_int; - pub fn recvmmsg( - sockfd: c_int, - msgvec: *mut crate::mmsghdr, - vlen: c_uint, - flags: c_uint, - timeout: *mut crate::timespec, - ) -> c_int; - pub fn mallopt(param: c_int, value: i64) -> c_int; pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut c_void) -> c_int; From 08f84149efe4486c4c9442d4a80f042dbee65b81 Mon Sep 17 00:00:00 2001 From: Florian Bartels Date: Wed, 12 Mar 2025 15:01:38 +0100 Subject: [PATCH 0602/1228] Add QNX 7.1-iosock and 8.0 to list of additional cfgs (backport ) (cherry picked from commit 0e2dc3f2d09867cd2b01f76b86d917b262ab6245) --- build.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build.rs b/build.rs index 0e83c0eb89da0..bf5277a9a9968 100644 --- a/build.rs +++ b/build.rs @@ -32,7 +32,10 @@ const CHECK_CFG_EXTRA: &'static [(&'static str, &'static [&'static str])] = &[ "switch", "aix", "ohos", "hurd", "rtems", "visionos", "nuttx", "cygwin", ], ), - ("target_env", &["illumos", "wasi", "aix", "ohos"]), + ( + "target_env", + &["illumos", "wasi", "aix", "ohos", "nto71_iosock", "nto80"], + ), ( "target_arch", &["loongarch64", "mips32r6", "mips64r6", "csky"], From 55c58c956d72819faea79fd49ff8dbb779c8a577 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Thu, 10 Apr 2025 08:58:17 -0600 Subject: [PATCH 0603/1228] Add more redox sys/socket.h and sys/uio.h definitions (backport ) (cherry picked from commit a27b5a644f39e0d574d9c31153dcb8360951c098) --- src/unix/redox/mod.rs | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index c453f83efce60..d7ed748c08a43 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -131,6 +131,22 @@ s! { pub thousands_sep: *const c_char, } + pub struct msghdr { + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: size_t, + pub msg_control: *mut c_void, + pub msg_controllen: size_t, + pub msg_flags: c_int, + } + + pub struct cmsghdr { + pub cmsg_len: size_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, + } + pub struct passwd { pub pw_name: *mut c_char, pub pw_passwd: *mut c_char, @@ -1212,6 +1228,12 @@ extern "C" { pub fn setrlimit(resource: c_int, rlim: *const crate::rlimit) -> c_int; // sys/socket.h + pub fn CMSG_ALIGN(len: size_t) -> size_t; + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar; + pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr; + pub fn CMSG_LEN(len: c_uint) -> c_uint; + pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr; + pub fn CMSG_SPACE(len: c_uint) -> c_uint; pub fn bind( socket: c_int, address: *const crate::sockaddr, @@ -1225,11 +1247,33 @@ extern "C" { addr: *mut crate::sockaddr, addrlen: *mut crate::socklen_t, ) -> ssize_t; + pub fn recvmsg(socket: c_int, msg: *mut msghdr, flags: c_int) -> ssize_t; + pub fn sendmsg(socket: c_int, msg: *const msghdr, flags: c_int) -> ssize_t; + pub fn sendto( + socket: c_int, + buf: *const c_void, + len: size_t, + flags: c_int, + addr: *const crate::sockaddr, + addrlen: crate::socklen_t, + ) -> ssize_t; // sys/stat.h pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; // sys/uio.h + pub fn preadv( + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: off_t, + ) -> ssize_t; + pub fn pwritev( + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: off_t, + ) -> ssize_t; pub fn readv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; From 1ff2f2181ae33067ee8e25bee4cbcab535c34160 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Wed, 9 Apr 2025 19:02:55 +0100 Subject: [PATCH 0604/1228] adding linux glibc ptrace_sud_config and related PTRACE_*ET_SYSCALL_USER_DISPATCH_CONFIG. [ref](https://github.com/torvalds/linux/blob/a24588245776dafc227243a01bfbeb8a59bafba9/include/uapi/linux/ptrace.h#L138) [ref](https://github.com/torvalds/linux/blob/a24588245776dafc227243a01bfbeb8a59bafba9/include/uapi/linux/ptrace.h#L115) (backport ) (cherry picked from commit 795a6d6e6619742755e79db38bb33da7d534d9a7) --- libc-test/build.rs | 5 +++++ libc-test/semver/linux-gnu.txt | 3 +++ src/unix/linux_like/linux/gnu/mod.rs | 9 +++++++++ src/unix/solarish/solaris.rs | 4 ++-- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 0bde80b811119..4955e8545d8aa 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4198,6 +4198,9 @@ fn test_linux(target: &str) { // FIXME(linux): Requires >= 6.12 kernel headers. "dmabuf_cmsg" | "dmabuf_token" => true, + // FIXME(linux): Requires >= 6.4 kernel headers. + "ptrace_sud_config" => true, + _ => false, } }); @@ -4622,6 +4625,8 @@ fn test_linux(target: &str) { | "SO_DEVMEM_DONTNEED" | "SCM_DEVMEM_LINEAR" | "SCM_DEVMEM_DMABUF" => true, + // FIXME(linux): Requires >= 6.4 kernel headers. + "PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG" | "PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG" => true, _ => false, } diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 9001de4c4ff3a..7f04169042c14 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -348,6 +348,8 @@ PR_SET_VMA PR_SET_VMA_ANON_NAME PTHREAD_MUTEX_ADAPTIVE_NP PTRACE_GET_SYSCALL_INFO +PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG +PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG PTRACE_SYSCALL_INFO_ENTRY PTRACE_SYSCALL_INFO_EXIT PTRACE_SYSCALL_INFO_NONE @@ -652,6 +654,7 @@ pthread_rwlockattr_getkind_np pthread_rwlockattr_getpshared pthread_rwlockattr_setkind_np ptrace_peeksiginfo_args +ptrace_sud_config ptrace_syscall_info putgrent putpwent diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 7f4ff568ac8e8..823f495084bda 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -332,6 +332,13 @@ s! { pub u: __c_anonymous_ptrace_syscall_info_data, } + pub struct ptrace_sud_config { + pub mode: crate::__u64, + pub selector: crate::__u64, + pub offset: crate::__u64, + pub len: crate::__u64, + } + pub struct iocb { pub aio_data: crate::__u64, #[cfg(target_endian = "little")] @@ -933,6 +940,8 @@ pub const PTRACE_SYSCALL_INFO_NONE: crate::__u8 = 0; pub const PTRACE_SYSCALL_INFO_ENTRY: crate::__u8 = 1; pub const PTRACE_SYSCALL_INFO_EXIT: crate::__u8 = 2; pub const PTRACE_SYSCALL_INFO_SECCOMP: crate::__u8 = 3; +pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: crate::__u8 = 0x4210; +pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: crate::__u8 = 0x4211; // linux/fs.h diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index 4c6a5bd489604..7baa8a1a2b675 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -1,7 +1,7 @@ use crate::prelude::*; use crate::{ - exit_status, off_t, NET_MAC_AWARE, NET_MAC_AWARE_INHERIT, PRIV_AWARE_RESET, PRIV_DEBUG, - PRIV_PFEXEC, PRIV_XPOLICY, termios, + exit_status, off_t, termios, NET_MAC_AWARE, NET_MAC_AWARE_INHERIT, PRIV_AWARE_RESET, + PRIV_DEBUG, PRIV_PFEXEC, PRIV_XPOLICY, }; pub type door_attr_t = c_uint; From a358dae479b3b886caa1410d4f80fa546db31660 Mon Sep 17 00:00:00 2001 From: Etienne Cordonnier Date: Sat, 15 Mar 2025 20:38:25 +0100 Subject: [PATCH 0605/1228] Add missing utmpx apis for linux musl Close https://github.com/rust-lang/libc/issues/4322 Also add a deprecation warning, because those functions are only implemented as stubs inside musl. Signed-off-by: Etienne Cordonnier (backport ) (cherry picked from commit 42ead6d709c373ad96ad88245d4345510bc0a32b) --- libc-test/semver/linux-musl.txt | 5 ++++ src/unix/linux_like/linux/musl/mod.rs | 35 ++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index d8e4918facb16..e2fdcbf006c64 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -1,3 +1,4 @@ +ACCOUNTING AF_IB AF_MPLS AF_XDP @@ -37,6 +38,9 @@ RWF_HIPRI RWF_NOWAIT RWF_SYNC USER_PROCESS +UT_HOSTSIZE +UT_LINESIZE +UT_NAMESIZE _CS_V6_ENV _CS_V7_ENV adjtimex @@ -82,3 +86,4 @@ reallocarray setutxent tcp_info timex +utmpxname diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 40ca6d82d1690..f850849b2d6ae 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -654,7 +654,7 @@ pub const INIT_PROCESS: c_short = 5; pub const LOGIN_PROCESS: c_short = 6; pub const USER_PROCESS: c_short = 7; pub const DEAD_PROCESS: c_short = 8; -// musl does not define ACCOUNTING +pub const ACCOUNTING: c_short = 9; pub const SFD_CLOEXEC: c_int = 0x080000; @@ -886,6 +886,10 @@ pub const _CS_V7_ENV: c_int = 1149; pub const CLONE_NEWTIME: c_int = 0x80; +pub const UT_HOSTSIZE: usize = 256; +pub const UT_LINESIZE: usize = 32; +pub const UT_NAMESIZE: usize = 32; + cfg_if! { if #[cfg(target_arch = "s390x")] { pub const POSIX_FADV_DONTNEED: c_int = 6; @@ -985,12 +989,41 @@ extern "C" { fd: c_int, ) -> c_int; + #[deprecated( + since = "0.2.172", + note = "musl provides `utmp` as stubs and an alternative should be preferred; see https://wiki.musl-libc.org/faq.html" + )] pub fn getutxent() -> *mut utmpx; + #[deprecated( + since = "0.2.172", + note = "musl provides `utmp` as stubs and an alternative should be preferred; see https://wiki.musl-libc.org/faq.html" + )] pub fn getutxid(ut: *const utmpx) -> *mut utmpx; + #[deprecated( + since = "0.2.172", + note = "musl provides `utmp` as stubs and an alternative should be preferred; see https://wiki.musl-libc.org/faq.html" + )] pub fn getutxline(ut: *const utmpx) -> *mut utmpx; + #[deprecated( + since = "0.2.172", + note = "musl provides `utmp` as stubs and an alternative should be preferred; see https://wiki.musl-libc.org/faq.html" + )] pub fn pututxline(ut: *const utmpx) -> *mut utmpx; + #[deprecated( + since = "0.2.172", + note = "musl provides `utmp` as stubs and an alternative should be preferred; see https://wiki.musl-libc.org/faq.html" + )] pub fn setutxent(); + #[deprecated( + since = "0.2.172", + note = "musl provides `utmp` as stubs and an alternative should be preferred; see https://wiki.musl-libc.org/faq.html" + )] pub fn endutxent(); + #[deprecated( + since = "0.2.172", + note = "musl provides `utmp` as stubs and an alternative should be preferred; see https://wiki.musl-libc.org/faq.html" + )] + pub fn utmpxname(file: *const c_char) -> c_int; } // Alias to 64 to mimic glibc's LFS64 support From f9a47ac8113e45fc9c6871911bc1e0b7de858972 Mon Sep 17 00:00:00 2001 From: Ningyuan Wang Date: Fri, 11 Apr 2025 16:51:37 +0900 Subject: [PATCH 0606/1228] Define SO_BINDTOIFINDEX on Android Android supports SO_BINDTOIFINDEX since SDK level 31: https://cs.android.com/android/platform/superproject/main/+/main:prebuilts/vndk/v31/arm/include/bionic/libc/kernel/uapi/asm-generic/socket.h;l=88;drc=684b16d3ce1e891ebe15d5678e12fa05ee6dd6e4 (backport ) (cherry picked from commit efc694994f918f4970c6bca265b69fe42dc0cb1c) --- libc-test/semver/android.txt | 1 + src/unix/linux_like/android/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 83b27b117d98b..02705fedbf44d 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -2446,6 +2446,7 @@ SOL_X25 SOMAXCONN SO_ACCEPTCONN SO_BINDTODEVICE +SO_BINDTOIFINDEX SO_BROADCAST SO_BSDCOMPAT SO_BUSY_POLL diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index d5fe6c7540a88..c5875f2956df7 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1555,6 +1555,7 @@ pub const SO_PEEK_OFF: c_int = 42; pub const SO_BUSY_POLL: c_int = 46; pub const SCM_TIMESTAMPING_OPT_STATS: c_int = 54; pub const SCM_TIMESTAMPING_PKTINFO: c_int = 58; +pub const SO_BINDTOIFINDEX: c_int = 62; pub const SO_TIMESTAMP_NEW: c_int = 63; pub const SO_TIMESTAMPNS_NEW: c_int = 64; pub const SO_TIMESTAMPING_NEW: c_int = 65; From 3bffe1d58a9e86521cee10b697270403e2429f76 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 11 Apr 2025 18:58:14 +0000 Subject: [PATCH 0607/1228] Make triagebot warn on non-default branches This should help catch PRs that are accidentally made against `libc-0.2` rather than `main`. (backport ) (cherry picked from commit 4959c766fcb14c78d8c575382e4d671ab45446a3) --- triagebot.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/triagebot.toml b/triagebot.toml index c749fc11d9445..f42f244bd6f85 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -8,6 +8,7 @@ allow-unauthenticated = [ ] [assign] +warn_non_default_branch.enable = true contributing_url = "https://github.com/rust-lang/libc/blob/HEAD/CONTRIBUTING.md" [assign.owners] From 31b32009070ffbdfdea2752d10bc51c2a580991c Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 11 Apr 2025 19:01:36 +0000 Subject: [PATCH 0608/1228] Suggest stable-nominated in the PR template (backport ) (cherry picked from commit 868b75fbca48de43b5921dcc820142495f6e324d) --- .github/PULL_REQUEST_TEMPLATE.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index c3d315acc5ada..ab0e6c84998c7 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -37,3 +37,9 @@ or mark it as a draft if you are not sure. --> included (see [#3131](https://github.com/rust-lang/libc/issues/3131)) - [ ] Tested locally (`cd libc-test && cargo test --target mytarget`); especially relevant for platforms that may not be checked in CI + + From 481eca7cc3382b3a8e367a16f1e20440810d70fd Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 11 Apr 2025 23:21:51 +0000 Subject: [PATCH 0609/1228] chore: release libc 0.2.172 --- CHANGELOG.md | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++- Cargo.toml | 2 +- 2 files changed, 66 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 502c8e1d18828..82a37cffc6e21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,70 @@ # Changelog -## [Unreleased] +## [0.2.172](https://github.com/rust-lang/libc/compare/0.2.171...0.2.172) - 2025-04-14 + +### Added + +- Android: Add `getauxval` for 32-bit targets ([#4338](https://github.com/rust-lang/libc/pull/4338)) +- Android: Add `if_tun.h` ioctls ([#4379](https://github.com/rust-lang/libc/pull/4379)) +- Android: Define `SO_BINDTOIFINDEX` ([#4391](https://github.com/rust-lang/libc/pull/4391)) +- Cygwin: Add `posix_spawn_file_actions_add[f]chdir[_np]` ([#4387](https://github.com/rust-lang/libc/pull/4387)) +- Cygwin: Add new socket options ([#4350](https://github.com/rust-lang/libc/pull/4350)) +- Cygwin: Add statfs & fcntl ([#4321](https://github.com/rust-lang/libc/pull/4321)) +- FreeBSD: Add `filedesc` and `fdescenttbl` ([#4327](https://github.com/rust-lang/libc/pull/4327)) +- Glibc: Add unstable support for _FILE_OFFSET_BITS=64 ([#4345](https://github.com/rust-lang/libc/pull/4345)) +- Hermit: Add `AF_UNSPEC` ([#4344](https://github.com/rust-lang/libc/pull/4344)) +- Hermit: Add `AF_VSOCK` ([#4344](https://github.com/rust-lang/libc/pull/4344)) +- Illumos, NetBSD: Add `timerfd` APIs ([#4333](https://github.com/rust-lang/libc/pull/4333)) +- Linux: Add `_IO`, `_IOW`, `_IOR`, `_IOWR` to the exported API ([#4325](https://github.com/rust-lang/libc/pull/4325)) +- Linux: Add `tcp_info` to uClibc bindings ([#4347](https://github.com/rust-lang/libc/pull/4347)) +- Linux: Add further BPF program flags ([#4356](https://github.com/rust-lang/libc/pull/4356)) +- Linux: Add missing INPUT_PROP_XXX flags from `input-event-codes.h` ([#4326](https://github.com/rust-lang/libc/pull/4326)) +- Linux: Add missing TLS bindings ([#4296](https://github.com/rust-lang/libc/pull/4296)) +- Linux: Add more constants from `seccomp.h` ([#4330](https://github.com/rust-lang/libc/pull/4330)) +- Linux: Add more glibc `ptrace_sud_config` and related `PTRACE_*ET_SYSCALL_USER_DISPATCH_CONFIG`. ([#4386](https://github.com/rust-lang/libc/pull/4386)) +- Linux: Add new netlink flags ([#4288](https://github.com/rust-lang/libc/pull/4288)) +- Linux: Define ioctl codes on more architectures ([#4382](https://github.com/rust-lang/libc/pull/4382)) +- Linux: Add missing `pthread_attr_setstack` ([#4349](https://github.com/rust-lang/libc/pull/4349)) +- Musl: Add missing `utmpx` API ([#4332](https://github.com/rust-lang/libc/pull/4332)) +- Musl: Enable `getrandom` on all platforms ([#4346](https://github.com/rust-lang/libc/pull/4346)) +- NuttX: Add more signal constants ([#4353](https://github.com/rust-lang/libc/pull/4353)) +- QNX: Add QNX 7.1-iosock and 8.0 to list of additional cfgs ([#4169](https://github.com/rust-lang/libc/pull/4169)) +- QNX: Add support for alternative Neutrino network stack `io-sock` ([#4169](https://github.com/rust-lang/libc/pull/4169)) +- Redox: Add more `sys/socket.h` and `sys/uio.h` definitions ([#4388](https://github.com/rust-lang/libc/pull/4388)) +- Solaris: Temporarily define `O_DIRECT` and `SIGINFO` ([#4348](https://github.com/rust-lang/libc/pull/4348)) +- Solarish: Add `secure_getenv` ([#4342](https://github.com/rust-lang/libc/pull/4342)) +- VxWorks: Add missing `d_type` member to `dirent` ([#4352](https://github.com/rust-lang/libc/pull/4352)) +- VxWorks: Add missing signal-related constsants ([#4352](https://github.com/rust-lang/libc/pull/4352)) +- VxWorks: Add more error codes ([#4337](https://github.com/rust-lang/libc/pull/4337)) + +### Deprecated + +- FreeBSD: Deprecate `TCP_PCAP_OUT` and `TCP_PCAP_IN` ([#4381](https://github.com/rust-lang/libc/pull/4381)) + +### Fixed + +- Cygwin: Fix member types of `statfs` ([#4324](https://github.com/rust-lang/libc/pull/4324)) +- Cygwin: Fix tests ([#4357](https://github.com/rust-lang/libc/pull/4357)) +- Hermit: Make `AF_INET = 3` ([#4344](https://github.com/rust-lang/libc/pull/4344)) +- Musl: Fix the syscall table on RISC-V-32 ([#4335](https://github.com/rust-lang/libc/pull/4335)) +- Musl: Fix the value of `SA_ONSTACK` on RISC-V-32 ([#4335](https://github.com/rust-lang/libc/pull/4335)) +- VxWorks: Fix a typo in the `waitpid` parameter name ([#4334](https://github.com/rust-lang/libc/pull/4334)) + +### Removed + +- Musl: Remove `O_FSYNC` on RISC-V-32 (use `O_SYNC` instead) ([#4335](https://github.com/rust-lang/libc/pull/4335)) +- Musl: Remove `RTLD_DEEPBIND` on RISC-V-32 ([#4335](https://github.com/rust-lang/libc/pull/4335)) + +### Other + +- CI: Add matrix env variables to the environment ([#4345](https://github.com/rust-lang/libc/pull/4345)) +- CI: Always deny warnings ([#4363](https://github.com/rust-lang/libc/pull/4363)) +- CI: Always upload successfully created artifacts ([#4345](https://github.com/rust-lang/libc/pull/4345)) +- CI: Install musl from source for loongarch64 ([#4320](https://github.com/rust-lang/libc/pull/4320)) +- CI: Revert "Also skip `MFD_EXEC` and `MFD_NOEXEC_SEAL` on sparc64" ([#]()) +- CI: Use `$PWD` instead of `$(pwd)` in run-docker ([#4345](https://github.com/rust-lang/libc/pull/4345)) +- Solarish: Restrict `openpty` and `forkpty` polyfills to Illumos, replace Solaris implementation with bindings ([#4329](https://github.com/rust-lang/libc/pull/4329)) +- Testing: Ensure the makedev test does not emit unused errors ([#4363](https://github.com/rust-lang/libc/pull/4363)) ## [0.2.171](https://github.com/rust-lang/libc/compare/0.2.170...0.2.171) - 2025-03-11 diff --git a/Cargo.toml b/Cargo.toml index a86df92f2333b..cabbc528a16c2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.171" +version = "0.2.172" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" From 54e402fff47876fd152be1a67a307550685ee533 Mon Sep 17 00:00:00 2001 From: WANG Rui Date: Tue, 8 Apr 2025 11:06:15 +0800 Subject: [PATCH 0610/1228] musl: loongarch64: Fix the struct ipc_perm bindings Refer: https://git.musl-libc.org/cgit/musl/tree/arch/generic/bits/ipc.h?h=v1.2.5 (backport ) (cherry picked from commit 65a7737ef234a7deb5e367571fa2de6106141e33) --- src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index 36f05e10e6ea4..e96bcbb2788e4 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -65,7 +65,6 @@ s! { pub cgid: crate::gid_t, pub mode: c_uint, pub __seq: c_int, - __pad2: c_ushort, __unused1: c_ulong, __unused2: c_ulong, } From 952bc8146c46ae860b5e11f94b45daa7c4a34c7a Mon Sep 17 00:00:00 2001 From: Yuri Astrakhan Date: Mon, 14 Apr 2025 15:34:21 -0400 Subject: [PATCH 0611/1228] chore: cleanup Cargo.toml and rm perl * Remove Cargo settings that are identical to the defaults (per Cargo [recommendations](https://doc.rust-lang.org/cargo/reference/manifest.html)) * Fix perl-based method to extract MSRV (backport ) (cherry picked from commit d8e39a2823b6f6d433d93436a5eedbb0117adeab) --- Cargo.toml | 17 ++++++----------- libc-test/Cargo.toml | 12 ++++-------- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index cabbc528a16c2..9e53e45110a7e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,21 +1,16 @@ [package] name = "libc" version = "0.2.172" -authors = ["The Rust Project Developers"] -license = "MIT OR Apache-2.0" -readme = "README.md" -edition = "2021" -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"] categories = ["external-ffi-bindings", "no-std", "os"] -build = "build.rs" exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml"] +description = "Raw FFI bindings to platform libraries like libc." +publish = false # On the main branch, we don't want to publish anything +authors = ["The Rust Project Developers"] +edition = "2021" +license = "MIT OR Apache-2.0" +repository = "https://github.com/rust-lang/libc" rust-version = "1.63" -description = """ -Raw FFI bindings to platform libraries like libc. -""" [package.metadata.docs.rs] features = ["extra_traits"] diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 26b38621fb3c8..9573c3fdb8288 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -1,16 +1,12 @@ [package] name = "libc-test" -version = "0.2.155" -edition = "2021" +version = "0.1.0" +description = "A test crate for the libc crate." +publish = false authors = ["The Rust Project Developers"] +edition = "2021" license = "MIT OR Apache-2.0" -build = "build.rs" -publish = false repository = "https://github.com/rust-lang/libc" -homepage = "https://github.com/rust-lang/libc" -description = """ -A test crate for the libc crate. -""" [dependencies] cfg-if = "1.0.0" From 66b5875936caf1805a1e23b90f0b38f1797d0157 Mon Sep 17 00:00:00 2001 From: Yuri Astrakhan Date: Sun, 13 Apr 2025 22:41:59 -0400 Subject: [PATCH 0612/1228] chore: minor cleanup `mode_t` usage `crate::mode_t` is almost never needed because it is part of prelude. Moreover, in many cases `mode_t` was already used without the prefix - thus confusing if they are different or not. Keeping it the same helps readability. (backport ) [ Resolve conflict around vxworks S_* constants - Trevor ] (cherry picked from commit 1984cc22406f45cae7d6c6e2a1d1bc3faa6dc3e8) --- src/fuchsia/mod.rs | 62 ++++++++++++-------------- src/unix/aix/mod.rs | 9 ++-- src/unix/bsd/apple/mod.rs | 9 ++-- src/unix/bsd/freebsdlike/mod.rs | 11 +++-- src/unix/bsd/netbsdlike/mod.rs | 11 +++-- src/unix/haiku/mod.rs | 53 +++++++++++----------- src/unix/hurd/mod.rs | 63 +++++++++++++-------------- src/unix/linux_like/android/mod.rs | 13 ++++-- src/unix/linux_like/emscripten/mod.rs | 6 +-- src/unix/linux_like/linux/mod.rs | 4 +- src/unix/linux_like/mod.rs | 43 +++++++++--------- src/unix/mod.rs | 17 +++----- src/unix/newlib/mod.rs | 44 +++++++++---------- src/unix/nto/mod.rs | 57 +++++++++++------------- src/unix/redox/mod.rs | 16 ++----- src/unix/solarish/mod.rs | 13 +++--- src/vxworks/mod.rs | 10 ++--- src/wasi/mod.rs | 2 +- 18 files changed, 207 insertions(+), 236 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index b60201791b645..f065eaa3aec8b 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -1452,9 +1452,9 @@ pub const GRPQUOTA: c_int = 1; pub const SIGIOT: c_int = 6; -pub const S_ISUID: crate::mode_t = 0o4000; -pub const S_ISGID: crate::mode_t = 0o2000; -pub const S_ISVTX: crate::mode_t = 0o1000; +pub const S_ISUID: mode_t = 0o4000; +pub const S_ISGID: mode_t = 0o2000; +pub const S_ISVTX: mode_t = 0o1000; pub const IF_NAMESIZE: size_t = 16; pub const IFNAMSIZ: size_t = IF_NAMESIZE; @@ -1585,26 +1585,26 @@ pub const O_RDONLY: c_int = 0; pub const O_WRONLY: c_int = 1; pub const O_RDWR: c_int = 2; -pub const S_IFIFO: crate::mode_t = 0o1_0000; -pub const S_IFCHR: crate::mode_t = 0o2_0000; -pub const S_IFBLK: crate::mode_t = 0o6_0000; -pub const S_IFDIR: crate::mode_t = 0o4_0000; -pub const S_IFREG: crate::mode_t = 0o10_0000; -pub const S_IFLNK: crate::mode_t = 0o12_0000; -pub const S_IFSOCK: crate::mode_t = 0o14_0000; -pub const S_IFMT: crate::mode_t = 0o17_0000; -pub const S_IRWXU: crate::mode_t = 0o0700; -pub const S_IXUSR: crate::mode_t = 0o0100; -pub const S_IWUSR: crate::mode_t = 0o0200; -pub const S_IRUSR: crate::mode_t = 0o0400; -pub const S_IRWXG: crate::mode_t = 0o0070; -pub const S_IXGRP: crate::mode_t = 0o0010; -pub const S_IWGRP: crate::mode_t = 0o0020; -pub const S_IRGRP: crate::mode_t = 0o0040; -pub const S_IRWXO: crate::mode_t = 0o0007; -pub const S_IXOTH: crate::mode_t = 0o0001; -pub const S_IWOTH: crate::mode_t = 0o0002; -pub const S_IROTH: crate::mode_t = 0o0004; +pub const S_IFIFO: mode_t = 0o1_0000; +pub const S_IFCHR: mode_t = 0o2_0000; +pub const S_IFBLK: mode_t = 0o6_0000; +pub const S_IFDIR: mode_t = 0o4_0000; +pub const S_IFREG: mode_t = 0o10_0000; +pub const S_IFLNK: mode_t = 0o12_0000; +pub const S_IFSOCK: mode_t = 0o14_0000; +pub const S_IFMT: mode_t = 0o17_0000; +pub const S_IRWXU: mode_t = 0o0700; +pub const S_IXUSR: mode_t = 0o0100; +pub const S_IWUSR: mode_t = 0o0200; +pub const S_IRUSR: mode_t = 0o0400; +pub const S_IRWXG: mode_t = 0o0070; +pub const S_IXGRP: mode_t = 0o0010; +pub const S_IWGRP: mode_t = 0o0020; +pub const S_IRGRP: mode_t = 0o0040; +pub const S_IRWXO: mode_t = 0o0007; +pub const S_IXOTH: mode_t = 0o0001; +pub const S_IWOTH: mode_t = 0o0002; +pub const S_IROTH: mode_t = 0o0004; pub const F_OK: c_int = 0; pub const R_OK: c_int = 4; pub const W_OK: c_int = 2; @@ -3726,12 +3726,7 @@ extern "C" { pub fn rewinddir(dirp: *mut crate::DIR); pub fn openat(dirfd: c_int, pathname: *const c_char, flags: c_int, ...) -> c_int; - pub fn fchmodat( - dirfd: c_int, - pathname: *const c_char, - mode: crate::mode_t, - flags: c_int, - ) -> c_int; + pub fn fchmodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, flags: c_int) -> c_int; pub fn fchown(fd: c_int, owner: crate::uid_t, group: crate::gid_t) -> c_int; pub fn fchownat( dirfd: c_int, @@ -3748,7 +3743,7 @@ extern "C" { newpath: *const c_char, flags: c_int, ) -> c_int; - pub fn mkdirat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; + pub fn mkdirat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; pub fn readlinkat( dirfd: c_int, pathname: *const c_char, @@ -3966,7 +3961,7 @@ extern "C" { pub fn gmtime(time_p: *const time_t) -> *mut tm; pub fn localtime(time_p: *const time_t) -> *mut tm; - pub fn mknod(pathname: *const c_char, mode: crate::mode_t, dev: crate::dev_t) -> c_int; + pub fn mknod(pathname: *const c_char, mode: mode_t, dev: crate::dev_t) -> c_int; pub fn uname(buf: *mut crate::utsname) -> c_int; pub fn gethostname(name: *mut c_char, len: size_t) -> c_int; pub fn getservbyname(name: *const c_char, proto: *const c_char) -> *mut servent; @@ -4086,8 +4081,7 @@ extern "C" { pub fn fdopendir(fd: c_int) -> *mut crate::DIR; - pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t, dev: dev_t) - -> c_int; + pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, dev: dev_t) -> c_int; pub fn pthread_condattr_getclock( attr: *const pthread_condattr_t, clock_id: *mut clockid_t, @@ -4214,7 +4208,7 @@ extern "C" { pub fn setfsuid(uid: crate::uid_t) -> c_int; // Not available now on Android - pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; pub fn if_nameindex() -> *mut if_nameindex; pub fn if_freenameindex(ptr: *mut if_nameindex); pub fn sync_file_range(fd: c_int, offset: off64_t, nbytes: off64_t, flags: c_uint) -> c_int; diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index a43fcd104748c..8cca9bb3c20d6 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -2881,9 +2881,8 @@ extern "C" { ) -> *mut c_void; pub fn memset_s(s: *mut c_void, smax: size_t, c: c_int, n: size_t) -> c_int; pub fn mincore(addr: *const c_void, len: size_t, vec: *mut c_char) -> c_int; - pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; - pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t, dev: dev_t) - -> c_int; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; + pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, dev: dev_t) -> c_int; pub fn mount(device: *const c_char, path: *const c_char, flags: c_int) -> c_int; pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; pub fn mq_close(mqd: crate::mqd_t) -> c_int; @@ -2977,7 +2976,7 @@ extern "C" { fd: c_int, path: *const c_char, oflag: c_int, - mode: crate::mode_t, + mode: mode_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_init(actions: *mut posix_spawn_file_actions_t) -> c_int; @@ -3142,7 +3141,7 @@ extern "C" { pub fn shmdt(shmaddr: *const c_void) -> c_int; pub fn shmctl(shmid: c_int, cmd: c_int, buf: *mut crate::shmid_ds) -> c_int; pub fn shmget(key: key_t, size: size_t, shmflg: c_int) -> c_int; - pub fn shm_open(name: *const c_char, oflag: c_int, mode: crate::mode_t) -> c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; pub fn shm_unlink(name: *const c_char) -> c_int; pub fn splice(socket1: c_int, socket2: c_int, flags: c_int) -> c_int; pub fn srand(seed: c_uint); diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 56169a5cf73d8..9c76ed7c01cc5 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -775,7 +775,7 @@ s! { pub gid: crate::gid_t, pub cuid: crate::uid_t, pub cgid: crate::gid_t, - pub mode: crate::mode_t, + pub mode: mode_t, pub _seq: c_ushort, pub _key: crate::key_t, } @@ -6341,7 +6341,7 @@ extern "C" { fd: c_int, path: *const c_char, oflag: c_int, - mode: crate::mode_t, + mode: mode_t, ) -> c_int; pub fn posix_spawn_file_actions_addclose( actions: *mut posix_spawn_file_actions_t, @@ -6660,9 +6660,8 @@ 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: crate::mode_t) -> c_int; - pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t, dev: dev_t) - -> c_int; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; + pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, dev: dev_t) -> c_int; pub fn freadlink(fd: c_int, buf: *mut c_char, size: size_t) -> c_int; pub fn execvP( file: *const c_char, diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 5ed09c78f1891..197873cd17795 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -378,7 +378,7 @@ s! { pub cgid: crate::gid_t, pub uid: crate::uid_t, pub gid: crate::gid_t, - pub mode: crate::mode_t, + pub mode: mode_t, pub seq: c_ushort, pub key: crate::key_t, } @@ -1602,13 +1602,12 @@ extern "C" { pub fn lchflags(path: *const c_char, flags: c_ulong) -> c_int; pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int; pub fn memrchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; - pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; #[cfg_attr( all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "mknodat@FBSD_1.1" )] - pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t, dev: dev_t) - -> c_int; + pub fn mknodat(dirfd: c_int, pathname: *const c_char, 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: crate::locale_t) -> crate::locale_t; @@ -1730,7 +1729,7 @@ extern "C" { pub fn setresuid(ruid: crate::uid_t, euid: crate::uid_t, suid: crate::uid_t) -> c_int; pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int; pub fn setutxent(); - pub fn shm_open(name: *const c_char, oflag: c_int, mode: crate::mode_t) -> c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; pub fn sigtimedwait( set: *const sigset_t, info: *mut siginfo_t, @@ -1872,7 +1871,7 @@ extern "C" { fd: c_int, path: *const c_char, oflag: c_int, - mode: crate::mode_t, + mode: mode_t, ) -> c_int; pub fn posix_spawn_file_actions_addclose( actions: *mut posix_spawn_file_actions_t, diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index dfd58d75b74ae..682b8b7e9fe74 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -78,7 +78,7 @@ s! { pub cgid: crate::gid_t, pub uid: crate::uid_t, pub gid: crate::gid_t, - pub mode: crate::mode_t, + pub mode: mode_t, #[cfg(target_os = "openbsd")] pub seq: c_ushort, #[cfg(target_os = "netbsd")] @@ -689,7 +689,7 @@ extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__clock_settime50")] pub fn clock_settime(clk_id: crate::clockid_t, tp: *const crate::timespec) -> c_int; pub fn __errno() -> *mut c_int; - pub fn shm_open(name: *const c_char, oflag: c_int, mode: crate::mode_t) -> c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; pub fn memrchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int; pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int; @@ -707,9 +707,8 @@ extern "C" { pub fn getpriority(which: c_int, who: crate::id_t) -> c_int; pub fn setpriority(which: c_int, who: crate::id_t, prio: c_int) -> c_int; - pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t, dev: dev_t) - -> c_int; - pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; + pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, dev: dev_t) -> c_int; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int; pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int; pub fn pthread_condattr_setclock( @@ -830,7 +829,7 @@ extern "C" { fd: c_int, path: *const c_char, oflag: c_int, - mode: crate::mode_t, + mode: mode_t, ) -> c_int; pub fn posix_spawn_file_actions_addclose( actions: *mut posix_spawn_file_actions_t, diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 76e44cc796f1d..ef48fa6f9be4b 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -420,7 +420,7 @@ s! { pub gid: crate::gid_t, pub cuid: crate::uid_t, pub cgid: crate::gid_t, - pub mode: crate::mode_t, + pub mode: mode_t, } pub struct sembuf { @@ -774,27 +774,27 @@ pub const O_NOFOLLOW: c_int = 0x00080000; pub const O_NOCACHE: c_int = 0x00100000; pub const O_DIRECTORY: c_int = 0x00200000; -pub const S_IFIFO: crate::mode_t = 0o1_0000; -pub const S_IFCHR: crate::mode_t = 0o2_0000; -pub const S_IFBLK: crate::mode_t = 0o6_0000; -pub const S_IFDIR: crate::mode_t = 0o4_0000; -pub const S_IFREG: crate::mode_t = 0o10_0000; -pub const S_IFLNK: crate::mode_t = 0o12_0000; -pub const S_IFSOCK: crate::mode_t = 0o14_0000; -pub const S_IFMT: crate::mode_t = 0o17_0000; - -pub const S_IRWXU: crate::mode_t = 0o0700; -pub const S_IRUSR: crate::mode_t = 0o0400; -pub const S_IWUSR: crate::mode_t = 0o0200; -pub const S_IXUSR: crate::mode_t = 0o0100; -pub const S_IRWXG: crate::mode_t = 0o0070; -pub const S_IRGRP: crate::mode_t = 0o0040; -pub const S_IWGRP: crate::mode_t = 0o0020; -pub const S_IXGRP: crate::mode_t = 0o0010; -pub const S_IRWXO: crate::mode_t = 0o0007; -pub const S_IROTH: crate::mode_t = 0o0004; -pub const S_IWOTH: crate::mode_t = 0o0002; -pub const S_IXOTH: crate::mode_t = 0o0001; +pub const S_IFIFO: mode_t = 0o1_0000; +pub const S_IFCHR: mode_t = 0o2_0000; +pub const S_IFBLK: mode_t = 0o6_0000; +pub const S_IFDIR: mode_t = 0o4_0000; +pub const S_IFREG: mode_t = 0o10_0000; +pub const S_IFLNK: mode_t = 0o12_0000; +pub const S_IFSOCK: mode_t = 0o14_0000; +pub const S_IFMT: mode_t = 0o17_0000; + +pub const S_IRWXU: mode_t = 0o0700; +pub const S_IRUSR: mode_t = 0o0400; +pub const S_IWUSR: mode_t = 0o0200; +pub const S_IXUSR: mode_t = 0o0100; +pub const S_IRWXG: mode_t = 0o0070; +pub const S_IRGRP: mode_t = 0o0040; +pub const S_IWGRP: mode_t = 0o0020; +pub const S_IXGRP: mode_t = 0o0010; +pub const S_IRWXO: mode_t = 0o0007; +pub const S_IROTH: mode_t = 0o0004; +pub const S_IWOTH: mode_t = 0o0002; +pub const S_IXOTH: mode_t = 0o0001; pub const F_OK: c_int = 0; pub const R_OK: c_int = 4; @@ -1733,9 +1733,8 @@ extern "C" { bufferSize: size_t, res: *mut *mut spwd, ) -> c_int; - pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; - pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t, dev: dev_t) - -> c_int; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; + pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, dev: dev_t) -> c_int; pub fn sem_destroy(sem: *mut sem_t) -> c_int; pub fn sem_init(sem: *mut sem_t, pshared: c_int, value: c_uint) -> c_int; @@ -1813,7 +1812,7 @@ extern "C" { pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advice: c_int) -> c_int; pub fn posix_fallocate(fd: c_int, offset: off_t, len: off_t) -> c_int; - pub fn shm_open(name: *const c_char, oflag: c_int, mode: crate::mode_t) -> c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; pub fn shm_unlink(name: *const c_char) -> c_int; pub fn seekdir(dirp: *mut crate::DIR, loc: c_long); @@ -2032,7 +2031,7 @@ extern "C" { fildes: c_int, path: *const c_char, oflag: c_int, - mode: crate::mode_t, + mode: mode_t, ) -> c_int; pub fn posix_spawn_file_actions_addclose( file_actions: *mut posix_spawn_file_actions_t, diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 8703f4d37a66d..961710b5ae76d 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -2150,35 +2150,35 @@ pub const SF_NOUNLINK: c_uint = 1048576; pub const SF_SNAPSHOT: c_uint = 2097152; pub const UTIME_NOW: c_long = -1; pub const UTIME_OMIT: c_long = -2; -pub const S_IFMT: crate::mode_t = 0o17_0000; -pub const S_IFDIR: crate::mode_t = 0o4_0000; -pub const S_IFCHR: crate::mode_t = 0o2_0000; -pub const S_IFBLK: crate::mode_t = 0o6_0000; -pub const S_IFREG: crate::mode_t = 0o10_0000; -pub const S_IFIFO: crate::mode_t = 0o1_0000; -pub const S_IFLNK: crate::mode_t = 0o12_0000; -pub const S_IFSOCK: crate::mode_t = 0o14_0000; -pub const S_ISUID: crate::mode_t = 0o4000; -pub const S_ISGID: crate::mode_t = 0o2000; -pub const S_ISVTX: crate::mode_t = 0o1000; -pub const S_IRUSR: crate::mode_t = 0o0400; -pub const S_IWUSR: crate::mode_t = 0o0200; -pub const S_IXUSR: crate::mode_t = 0o0100; -pub const S_IRWXU: crate::mode_t = 0o0700; -pub const S_IREAD: crate::mode_t = 0o0400; -pub const S_IWRITE: crate::mode_t = 0o0200; -pub const S_IEXEC: crate::mode_t = 0o0100; -pub const S_IRGRP: crate::mode_t = 0o0040; -pub const S_IWGRP: crate::mode_t = 0o0020; -pub const S_IXGRP: crate::mode_t = 0o0010; -pub const S_IRWXG: crate::mode_t = 0o0070; -pub const S_IROTH: crate::mode_t = 0o0004; -pub const S_IWOTH: crate::mode_t = 0o0002; -pub const S_IXOTH: crate::mode_t = 0o0001; -pub const S_IRWXO: crate::mode_t = 0o0007; -pub const ACCESSPERMS: crate::mode_t = 511; -pub const ALLPERMS: crate::mode_t = 4095; -pub const DEFFILEMODE: crate::mode_t = 438; +pub const S_IFMT: mode_t = 0o17_0000; +pub const S_IFDIR: mode_t = 0o4_0000; +pub const S_IFCHR: mode_t = 0o2_0000; +pub const S_IFBLK: mode_t = 0o6_0000; +pub const S_IFREG: mode_t = 0o10_0000; +pub const S_IFIFO: mode_t = 0o1_0000; +pub const S_IFLNK: mode_t = 0o12_0000; +pub const S_IFSOCK: mode_t = 0o14_0000; +pub const S_ISUID: mode_t = 0o4000; +pub const S_ISGID: mode_t = 0o2000; +pub const S_ISVTX: mode_t = 0o1000; +pub const S_IRUSR: mode_t = 0o0400; +pub const S_IWUSR: mode_t = 0o0200; +pub const S_IXUSR: mode_t = 0o0100; +pub const S_IRWXU: mode_t = 0o0700; +pub const S_IREAD: mode_t = 0o0400; +pub const S_IWRITE: mode_t = 0o0200; +pub const S_IEXEC: mode_t = 0o0100; +pub const S_IRGRP: mode_t = 0o0040; +pub const S_IWGRP: mode_t = 0o0020; +pub const S_IXGRP: mode_t = 0o0010; +pub const S_IRWXG: mode_t = 0o0070; +pub const S_IROTH: mode_t = 0o0004; +pub const S_IWOTH: mode_t = 0o0002; +pub const S_IXOTH: mode_t = 0o0001; +pub const S_IRWXO: mode_t = 0o0007; +pub const ACCESSPERMS: mode_t = 511; +pub const ALLPERMS: mode_t = 4095; +pub const DEFFILEMODE: mode_t = 438; pub const S_BLKSIZE: usize = 512; pub const STATX_TYPE: c_uint = 1; pub const STATX_MODE: c_uint = 2; @@ -3574,8 +3574,7 @@ extern "C" { pub fn mkfifoat(__fd: c_int, __path: *const c_char, __mode: __mode_t) -> c_int; - pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t, dev: dev_t) - -> c_int; + pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, dev: dev_t) -> c_int; pub fn __libc_current_sigrtmin() -> c_int; @@ -4248,7 +4247,7 @@ extern "C" { fd: c_int, path: *const c_char, oflag: c_int, - mode: crate::mode_t, + mode: mode_t, ) -> c_int; pub fn posix_spawn_file_actions_addclose( actions: *mut posix_spawn_file_actions_t, diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index c5875f2956df7..3d24d5d8fb73f 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -2709,7 +2709,7 @@ pub const TUNSETTXFILTER: c_int = _IOW::(T_TYPE, 209); pub const TUNGETIFF: c_int = _IOR::(T_TYPE, 210); pub const TUNGETSNDBUF: c_int = _IOR::(T_TYPE, 211); pub const TUNSETSNDBUF: c_int = _IOW::(T_TYPE, 212); -pub const TUNATTACHFILTER: c_int = _IOW::(T_TYPE, 213); +pub const TUNATTACHFILTER: c_int = _IOW::(T_TYPE, 213); pub const TUNDETACHFILTER: c_int = _IOW::(T_TYPE, 214); pub const TUNGETVNETHDRSZ: c_int = _IOR::(T_TYPE, 215); pub const TUNSETVNETHDRSZ: c_int = _IOW::(T_TYPE, 216); @@ -4307,15 +4307,20 @@ pub const fn _IO(ty: u32, nr: u32) -> c_int { /// Build an ioctl number for an read-only ioctl. pub const fn _IOR(ty: u32, nr: u32) -> c_int { - super::_IOC(super::_IOC_READ, ty, nr, mem::size_of::()) as c_int + super::_IOC(super::_IOC_READ, ty, nr, mem::size_of::()) as c_int } /// Build an ioctl number for an write-only ioctl. pub const fn _IOW(ty: u32, nr: u32) -> c_int { - super::_IOC(super::_IOC_WRITE, ty, nr, mem::size_of::()) as c_int + super::_IOC(super::_IOC_WRITE, ty, nr, mem::size_of::()) as c_int } /// Build an ioctl number for a read-write ioctl. pub const fn _IOWR(ty: u32, nr: u32) -> c_int { - super::_IOC(super::_IOC_READ | super::_IOC_WRITE, ty, nr, mem::size_of::()) as c_int + super::_IOC( + super::_IOC_READ | super::_IOC_WRITE, + ty, + nr, + mem::size_of::(), + ) as c_int } diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 985b3c0c5e187..462a944b1e2b1 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -171,7 +171,7 @@ s! { pub gid: crate::gid_t, pub cuid: crate::uid_t, pub cgid: crate::gid_t, - pub mode: crate::mode_t, + pub mode: mode_t, pub __seq: c_int, __unused1: c_long, __unused2: c_long, @@ -229,7 +229,7 @@ s! { __st_dev_padding: c_int, #[cfg(emscripten_old_stat_abi)] __st_ino_truncated: c_long, - pub st_mode: crate::mode_t, + pub st_mode: mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, @@ -1530,7 +1530,7 @@ extern "C" { ) -> c_int; pub fn getloadavg(loadavg: *mut c_double, nelem: c_int) -> c_int; - pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; pub fn if_nameindex() -> *mut if_nameindex; pub fn if_freenameindex(ptr: *mut if_nameindex); diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 5be701beeaabc..59857ff1274e5 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -6544,7 +6544,7 @@ extern "C" { pub fn setfsuid(uid: crate::uid_t) -> c_int; // Not available now on Android - pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; pub fn if_nameindex() -> *mut if_nameindex; pub fn if_freenameindex(ptr: *mut if_nameindex); pub fn sync_file_range(fd: c_int, offset: off64_t, nbytes: off64_t, flags: c_uint) -> c_int; @@ -6899,7 +6899,7 @@ extern "C" { fd: c_int, path: *const c_char, oflag: c_int, - mode: crate::mode_t, + mode: mode_t, ) -> c_int; pub fn posix_spawn_file_actions_addclose( actions: *mut posix_spawn_file_actions_t, diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 64481a673bd39..9c7766a1407d1 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -545,26 +545,26 @@ pub const O_RDWR: c_int = 2; pub const SOCK_CLOEXEC: c_int = O_CLOEXEC; -pub const S_IFIFO: crate::mode_t = 0o1_0000; -pub const S_IFCHR: crate::mode_t = 0o2_0000; -pub const S_IFBLK: crate::mode_t = 0o6_0000; -pub const S_IFDIR: crate::mode_t = 0o4_0000; -pub const S_IFREG: crate::mode_t = 0o10_0000; -pub const S_IFLNK: crate::mode_t = 0o12_0000; -pub const S_IFSOCK: crate::mode_t = 0o14_0000; -pub const S_IFMT: crate::mode_t = 0o17_0000; -pub const S_IRWXU: crate::mode_t = 0o0700; -pub const S_IXUSR: crate::mode_t = 0o0100; -pub const S_IWUSR: crate::mode_t = 0o0200; -pub const S_IRUSR: crate::mode_t = 0o0400; -pub const S_IRWXG: crate::mode_t = 0o0070; -pub const S_IXGRP: crate::mode_t = 0o0010; -pub const S_IWGRP: crate::mode_t = 0o0020; -pub const S_IRGRP: crate::mode_t = 0o0040; -pub const S_IRWXO: crate::mode_t = 0o0007; -pub const S_IXOTH: crate::mode_t = 0o0001; -pub const S_IWOTH: crate::mode_t = 0o0002; -pub const S_IROTH: crate::mode_t = 0o0004; +pub const S_IFIFO: mode_t = 0o1_0000; +pub const S_IFCHR: mode_t = 0o2_0000; +pub const S_IFBLK: mode_t = 0o6_0000; +pub const S_IFDIR: mode_t = 0o4_0000; +pub const S_IFREG: mode_t = 0o10_0000; +pub const S_IFLNK: mode_t = 0o12_0000; +pub const S_IFSOCK: mode_t = 0o14_0000; +pub const S_IFMT: mode_t = 0o17_0000; +pub const S_IRWXU: mode_t = 0o0700; +pub const S_IXUSR: mode_t = 0o0100; +pub const S_IWUSR: mode_t = 0o0200; +pub const S_IRUSR: mode_t = 0o0400; +pub const S_IRWXG: mode_t = 0o0070; +pub const S_IXGRP: mode_t = 0o0010; +pub const S_IWGRP: mode_t = 0o0020; +pub const S_IRGRP: mode_t = 0o0040; +pub const S_IRWXO: mode_t = 0o0007; +pub const S_IXOTH: mode_t = 0o0001; +pub const S_IWOTH: mode_t = 0o0002; +pub const S_IROTH: mode_t = 0o0004; pub const F_OK: c_int = 0; pub const R_OK: c_int = 4; pub const W_OK: c_int = 2; @@ -1877,8 +1877,7 @@ extern "C" { pub fn freelocale(loc: crate::locale_t); pub fn newlocale(mask: c_int, locale: *const c_char, base: crate::locale_t) -> crate::locale_t; pub fn uselocale(loc: crate::locale_t) -> crate::locale_t; - pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t, dev: dev_t) - -> c_int; + pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, dev: dev_t) -> c_int; pub fn pthread_condattr_getclock( attr: *const pthread_condattr_t, clock_id: *mut clockid_t, diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 433eeec950965..4fc2afedfc095 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -245,9 +245,9 @@ cfg_if! { } pub const SIGIOT: c_int = 6; -pub const S_ISUID: crate::mode_t = 0o4000; -pub const S_ISGID: crate::mode_t = 0o2000; -pub const S_ISVTX: crate::mode_t = 0o1000; +pub const S_ISUID: mode_t = 0o4000; +pub const S_ISGID: mode_t = 0o2000; +pub const S_ISVTX: mode_t = 0o1000; cfg_if! { if #[cfg(not(any( @@ -939,12 +939,7 @@ extern "C" { )] pub fn rewinddir(dirp: *mut crate::DIR); - pub fn fchmodat( - dirfd: c_int, - pathname: *const c_char, - mode: crate::mode_t, - flags: c_int, - ) -> c_int; + pub fn fchmodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, flags: c_int) -> c_int; pub fn fchown(fd: c_int, owner: crate::uid_t, group: crate::gid_t) -> c_int; pub fn fchownat( dirfd: c_int, @@ -1421,7 +1416,7 @@ extern "C" { all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "mknod@FBSD_1.0" )] - pub fn mknod(pathname: *const c_char, mode: crate::mode_t, dev: crate::dev_t) -> c_int; + pub fn mknod(pathname: *const c_char, mode: mode_t, dev: crate::dev_t) -> c_int; pub fn gethostname(name: *mut c_char, len: size_t) -> c_int; pub fn endservent(); pub fn getservbyname(name: *const c_char, proto: *const c_char) -> *mut servent; @@ -1659,7 +1654,7 @@ cfg_if! { )] pub fn pause() -> c_int; - pub fn mkdirat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; + pub fn mkdirat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; #[cfg_attr(gnu_file_offset_bits64, link_name = "openat64")] pub fn openat(dirfd: c_int, pathname: *const c_char, flags: c_int, ...) -> c_int; diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index ae118b4719a65..d49bdb3e9e18c 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -568,28 +568,28 @@ pub const SEEK_END: c_int = 2; pub const FIOCLEX: c_ulong = 0x20006601; pub const FIONCLEX: c_ulong = 0x20006602; -pub const S_BLKSIZE: crate::mode_t = 1024; -pub const S_IREAD: crate::mode_t = 0o0400; -pub const S_IWRITE: crate::mode_t = 0o0200; -pub const S_IEXEC: crate::mode_t = 0o0100; -pub const S_ENFMT: crate::mode_t = 0o2000; -pub const S_IFMT: crate::mode_t = 0o17_0000; -pub const S_IFDIR: crate::mode_t = 0o4_0000; -pub const S_IFCHR: crate::mode_t = 0o2_0000; -pub const S_IFBLK: crate::mode_t = 0o6_0000; -pub const S_IFREG: crate::mode_t = 0o10_0000; -pub const S_IFLNK: crate::mode_t = 0o12_0000; -pub const S_IFSOCK: crate::mode_t = 0o14_0000; -pub const S_IFIFO: crate::mode_t = 0o1_0000; -pub const S_IRUSR: crate::mode_t = 0o0400; -pub const S_IWUSR: crate::mode_t = 0o0200; -pub const S_IXUSR: crate::mode_t = 0o0100; -pub const S_IRGRP: crate::mode_t = 0o0040; -pub const S_IWGRP: crate::mode_t = 0o0020; -pub const S_IXGRP: crate::mode_t = 0o0010; -pub const S_IROTH: crate::mode_t = 0o0004; -pub const S_IWOTH: crate::mode_t = 0o0002; -pub const S_IXOTH: crate::mode_t = 0o0001; +pub const S_BLKSIZE: mode_t = 1024; +pub const S_IREAD: mode_t = 0o0400; +pub const S_IWRITE: mode_t = 0o0200; +pub const S_IEXEC: mode_t = 0o0100; +pub const S_ENFMT: mode_t = 0o2000; +pub const S_IFMT: mode_t = 0o17_0000; +pub const S_IFDIR: mode_t = 0o4_0000; +pub const S_IFCHR: mode_t = 0o2_0000; +pub const S_IFBLK: mode_t = 0o6_0000; +pub const S_IFREG: mode_t = 0o10_0000; +pub const S_IFLNK: mode_t = 0o12_0000; +pub const S_IFSOCK: mode_t = 0o14_0000; +pub const S_IFIFO: mode_t = 0o1_0000; +pub const S_IRUSR: mode_t = 0o0400; +pub const S_IWUSR: mode_t = 0o0200; +pub const S_IXUSR: mode_t = 0o0100; +pub const S_IRGRP: mode_t = 0o0040; +pub const S_IWGRP: mode_t = 0o0020; +pub const S_IXGRP: mode_t = 0o0010; +pub const S_IROTH: mode_t = 0o0004; +pub const S_IWOTH: mode_t = 0o0002; +pub const S_IXOTH: mode_t = 0o0001; pub const SOL_TCP: c_int = 6; diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index e0a1c9b652102..631972b144676 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -98,7 +98,7 @@ s! { pub __old_st_mtime: crate::_Time32t, pub __old_st_atime: crate::_Time32t, pub __old_st_ctime: crate::_Time32t, - pub st_mode: crate::mode_t, + pub st_mode: mode_t, pub st_nlink: crate::nlink_t, pub st_blocksize: crate::blksize_t, pub st_nblocks: i32, @@ -563,7 +563,7 @@ s! { pub gid: crate::gid_t, pub cuid: crate::uid_t, pub cgid: crate::gid_t, - pub mode: crate::mode_t, + pub mode: mode_t, pub seq: c_uint, pub key: crate::key_t, _reserved: [c_int; 4], @@ -2175,27 +2175,27 @@ pub const S_IEXEC: mode_t = crate::S_IXUSR; pub const S_IWRITE: mode_t = crate::S_IWUSR; pub const S_IREAD: mode_t = crate::S_IRUSR; -pub const S_IFIFO: crate::mode_t = 0o1_0000; -pub const S_IFCHR: crate::mode_t = 0o2_0000; -pub const S_IFDIR: crate::mode_t = 0o4_0000; -pub const S_IFBLK: crate::mode_t = 0o6_0000; -pub const S_IFREG: crate::mode_t = 0o10_0000; -pub const S_IFLNK: crate::mode_t = 0o12_0000; -pub const S_IFSOCK: crate::mode_t = 0o14_0000; -pub const S_IFMT: crate::mode_t = 0o17_0000; - -pub const S_IXOTH: crate::mode_t = 0o0001; -pub const S_IWOTH: crate::mode_t = 0o0002; -pub const S_IROTH: crate::mode_t = 0o0004; -pub const S_IRWXO: crate::mode_t = 0o0007; -pub const S_IXGRP: crate::mode_t = 0o0010; -pub const S_IWGRP: crate::mode_t = 0o0020; -pub const S_IRGRP: crate::mode_t = 0o0040; -pub const S_IRWXG: crate::mode_t = 0o0070; -pub const S_IXUSR: crate::mode_t = 0o0100; -pub const S_IWUSR: crate::mode_t = 0o0200; -pub const S_IRUSR: crate::mode_t = 0o0400; -pub const S_IRWXU: crate::mode_t = 0o0700; +pub const S_IFIFO: mode_t = 0o1_0000; +pub const S_IFCHR: mode_t = 0o2_0000; +pub const S_IFDIR: mode_t = 0o4_0000; +pub const S_IFBLK: mode_t = 0o6_0000; +pub const S_IFREG: mode_t = 0o10_0000; +pub const S_IFLNK: mode_t = 0o12_0000; +pub const S_IFSOCK: mode_t = 0o14_0000; +pub const S_IFMT: mode_t = 0o17_0000; + +pub const S_IXOTH: mode_t = 0o0001; +pub const S_IWOTH: mode_t = 0o0002; +pub const S_IROTH: mode_t = 0o0004; +pub const S_IRWXO: mode_t = 0o0007; +pub const S_IXGRP: mode_t = 0o0010; +pub const S_IWGRP: mode_t = 0o0020; +pub const S_IRGRP: mode_t = 0o0040; +pub const S_IRWXG: mode_t = 0o0070; +pub const S_IXUSR: mode_t = 0o0100; +pub const S_IWUSR: mode_t = 0o0200; +pub const S_IRUSR: mode_t = 0o0400; +pub const S_IRWXU: mode_t = 0o0700; pub const F_LOCK: c_int = 1; pub const F_TEST: c_int = 3; @@ -2982,13 +2982,8 @@ extern "C" { pub fn fdatasync(fd: c_int) -> c_int; pub fn getpriority(which: c_int, who: crate::id_t) -> c_int; pub fn setpriority(which: c_int, who: crate::id_t, prio: c_int) -> c_int; - pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; - pub fn mknodat( - __fd: c_int, - pathname: *const c_char, - mode: crate::mode_t, - dev: crate::dev_t, - ) -> c_int; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; + pub fn mknodat(__fd: c_int, pathname: *const c_char, mode: mode_t, dev: crate::dev_t) -> c_int; pub fn clock_getres(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; @@ -3361,7 +3356,7 @@ extern "C" { fd: c_int, path: *const c_char, oflag: c_int, - mode: crate::mode_t, + mode: mode_t, ) -> c_int; pub fn posix_spawn_file_actions_addclose( actions: *mut posix_spawn_file_actions_t, diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index d7ed748c08a43..15b8da6fa82ac 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -196,7 +196,7 @@ s! { pub st_dev: crate::dev_t, pub st_ino: crate::ino_t, pub st_nlink: crate::nlink_t, - pub st_mode: crate::mode_t, + pub st_mode: mode_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, @@ -1262,18 +1262,8 @@ extern "C" { pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; // sys/uio.h - pub fn preadv( - fd: c_int, - iov: *const crate::iovec, - iovcnt: c_int, - offset: off_t, - ) -> ssize_t; - pub fn pwritev( - fd: c_int, - iov: *const crate::iovec, - iovcnt: c_int, - offset: off_t, - ) -> ssize_t; + pub fn preadv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; + pub fn pwritev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; pub fn readv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 3ddde8da0c407..652d5263a5fd0 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -96,7 +96,7 @@ s! { pub gid: crate::gid_t, pub cuid: crate::uid_t, pub cgid: crate::gid_t, - pub mode: crate::mode_t, + pub mode: mode_t, pub seq: c_uint, pub key: crate::key_t, } @@ -328,7 +328,7 @@ s! { pub struct stat { pub st_dev: crate::dev_t, pub st_ino: crate::ino_t, - pub st_mode: crate::mode_t, + pub st_mode: mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, @@ -2648,9 +2648,8 @@ extern "C" { pub fn getpriority(which: c_int, who: c_int) -> c_int; pub fn setpriority(which: c_int, who: c_int, prio: c_int) -> c_int; - pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t, dev: dev_t) - -> c_int; - pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; + pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, dev: dev_t) -> c_int; + pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; pub fn sethostname(name: *const c_char, len: c_int) -> c_int; pub fn if_nameindex() -> *mut if_nameindex; pub fn if_freenameindex(ptr: *mut if_nameindex); @@ -2727,7 +2726,7 @@ extern "C" { fildes: c_int, path: *const c_char, oflag: c_int, - mode: crate::mode_t, + mode: mode_t, ) -> c_int; pub fn posix_spawn_file_actions_addclose( file_actions: *mut posix_spawn_file_actions_t, @@ -2810,7 +2809,7 @@ extern "C" { pub fn shmget(key: key_t, size: size_t, shmflg: c_int) -> c_int; - pub fn shm_open(name: *const c_char, oflag: c_int, mode: crate::mode_t) -> c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; pub fn shm_unlink(name: *const c_char) -> c_int; pub fn seekdir(dirp: *mut crate::DIR, loc: c_long); diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 3a44adc7ea5b0..e2051baa2df0d 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -220,7 +220,7 @@ s! { pub struct stat { pub st_dev: crate::dev_t, pub st_ino: crate::ino_t, - pub st_mode: crate::mode_t, + pub st_mode: mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, @@ -1299,7 +1299,7 @@ extern "C" { pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; pub fn truncate(path: *const c_char, length: off_t) -> c_int; - pub fn shm_open(name: *const c_char, oflag: c_int, mode: crate::mode_t) -> c_int; + pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; pub fn shm_unlink(name: *const c_char) -> c_int; pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut c_void) -> c_int; @@ -1810,13 +1810,13 @@ extern "C" { pub fn rmdir(path: *const c_char) -> c_int; // stat.h - pub fn mkdir(dirName: *const c_char, mode: crate::mode_t) -> c_int; + pub fn mkdir(dirName: *const c_char, mode: mode_t) -> c_int; // stat.h - pub fn chmod(path: *const c_char, mode: crate::mode_t) -> c_int; + pub fn chmod(path: *const c_char, mode: mode_t) -> c_int; // stat.h - pub fn fchmod(attr1: c_int, attr2: crate::mode_t) -> c_int; + pub fn fchmod(attr1: c_int, attr2: mode_t) -> c_int; // unistd.h pub fn fsync(fd: c_int) -> c_int; diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index 035ff8958ab20..61061918c05fc 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -653,7 +653,7 @@ extern "C" { newpath: *const c_char, flags: c_int, ) -> c_int; - pub fn mkdirat(dirfd: c_int, pathname: *const c_char, mode: crate::mode_t) -> c_int; + pub fn mkdirat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; pub fn readlinkat( dirfd: c_int, pathname: *const c_char, From 56a16c16bea74b126438a142aa4997c1c46edcb7 Mon Sep 17 00:00:00 2001 From: Kartik Agarwala Date: Mon, 14 Apr 2025 10:57:18 +0530 Subject: [PATCH 0613/1228] Add missing UTIME defines and TASK_RENAME_LENGTH (backport ) (cherry picked from commit e119caeaffe5d0b78c3c6beb45f7a038550c625c) --- src/vxworks/mod.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index e2051baa2df0d..cdca84e471e55 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -745,6 +745,7 @@ pub const S_taskLib_ILLEGAL_PRIORITY: c_int = taskErrorBase + 0x0068; // FIXME(vxworks): could also be useful for TASK_DESC type pub const VX_TASK_NAME_LENGTH: c_int = 31; +pub const VX_TASK_RENAME_LENGTH: c_int = 16; // semLibCommon.h pub const S_semLib_INVALID_STATE: c_int = semErrorBase + 0x0065; @@ -806,6 +807,9 @@ pub const S_IWOTH: c_int = 0o0002; pub const S_IXOTH: c_int = 0o0001; pub const S_IRWXO: c_int = 0o0007; +pub const UTIME_OMIT: c_long = 0x3ffffffe; +pub const UTIME_NOW: c_long = 0x3fffffff; + // socket.h pub const SOL_SOCKET: c_int = 0xffff; pub const SOMAXCONN: c_int = 128; From f1e6e15c8a5ced75eb58d87a599ba3d52bafd16b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 15 Apr 2025 23:08:48 +0000 Subject: [PATCH 0614/1228] Introduce a new `c_enum` macro Our current `e!` macro makes it easy to run into UB if C headers add a variant that isn't represented in the Rust version. Add a path to migrate away from this by introducing the `c_enum!` macro which represents a C enum as Rust constants and a type alias. Part of [1]. [1]: https://github.com/rust-lang/libc/issues/4419 (backport ) (cherry picked from commit 62051ca277a78d9af4912d7957fa5ce3611183a0) --- src/macros.rs | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) diff --git a/src/macros.rs b/src/macros.rs index e7dbf5611970e..abffa2afb9520 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -193,6 +193,7 @@ macro_rules! missing { /// Implement `Clone` and `Copy` for an enum, as well as `Debug`, `Eq`, `Hash`, and /// `PartialEq` if the `extra_traits` feature is enabled. +// FIXME(#4419): Replace all uses of `e!` with `c_enum!` macro_rules! e { ($( $(#[$attr:meta])* @@ -210,6 +211,48 @@ macro_rules! e { )*); } +/// Represent a C enum as Rust constants and a type. +/// +/// C enums can't soundly be mapped to Rust enums since C enums are allowed to have duplicates or +/// unlisted values, but this is UB in Rust. This enum doesn't implement any traits, its main +/// purpose is to calculate the correct enum values. +/// +/// See for more. +macro_rules! c_enum { + ( + $(#[repr($repr:ty)])? + $ty_name:ident { + $($variant:ident $(= $value:literal)?,)+ + } + ) => { + pub type $ty_name = c_enum!(@ty $($repr)?); + c_enum!(@one; $ty_name; 0; $($variant $(= $value)?,)+); + }; + + // Matcher for a single variant + (@one; $_ty_name:ident; $_idx:expr;) => {}; + ( + @one; $ty_name:ident; $default_val:expr; + $variant:ident $(= $value:literal)?, + $($tail:tt)* + ) => { + pub const $variant: $ty_name = { + #[allow(unused_variables)] + let r = $default_val; + $(let r = $value;)? + r + }; + + // The next value is always one more than the previous value, unless + // set explicitly. + c_enum!(@one; $ty_name; $variant + 1; $($tail)*); + }; + + // Use a specific type if provided, otherwise default to `c_uint` + (@ty $repr:ty) => { $repr }; + (@ty) => { $crate::c_uint }; +} + // This is a pretty horrible hack to allow us to conditionally mark some functions as 'const', // without requiring users of this macro to care "libc_const_extern_fn". // @@ -359,3 +402,76 @@ macro_rules! deprecated_mach { )* } } + +#[cfg(test)] +mod tests { + #[test] + fn c_enumbasic() { + // By default, variants get sequential values. + c_enum! { + e { + VAR0, + VAR1, + VAR2, + } + } + + assert_eq!(VAR0, 0_u32); + assert_eq!(VAR1, 1_u32); + assert_eq!(VAR2, 2_u32); + } + + #[test] + fn c_enumrepr() { + // By default, variants get sequential values. + c_enum! { + #[repr(u16)] + e { + VAR0, + } + } + + assert_eq!(VAR0, 0_u16); + } + + #[test] + fn c_enumset_value() { + // Setting an explicit value resets the count. + c_enum! { + e { + VAR2 = 2, + VAR3, + VAR4, + } + } + + assert_eq!(VAR2, 2_u32); + assert_eq!(VAR3, 3_u32); + assert_eq!(VAR4, 4_u32); + } + + #[test] + fn c_enummultiple_set_value() { + // C enums always take one more than the previous value, unless set to a specific + // value. Duplicates are allowed. + c_enum! { + e { + VAR0, + VAR2_0 = 2, + VAR3_0, + VAR4_0, + VAR2_1 = 2, + VAR3_1, + VAR4_1, + } + } + + assert_eq!(VAR0, 0_u32); + assert_eq!(VAR2_0, 2_u32); + assert_eq!(VAR3_0, 3_u32); + assert_eq!(VAR4_0, 4_u32); + assert_eq!(VAR2_1, 2_u32); + assert_eq!(VAR3_1, 3_u32); + assert_eq!(VAR4_1, 4_u32); + } +} From ab9cd3c5b93a70b7ed072786b2025d0337058eeb Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sun, 13 Apr 2025 08:56:34 +0100 Subject: [PATCH 0615/1228] adding pid_type enum values for Linux. [ref](https://github.com/torvalds/linux/blob/7cdabafc001202de9984f22c973305f424e0a8b7/include/linux/pid_types.h#L5) (backport ) (cherry picked from commit e79c8d90c8e746043d1da4828843e151329e3faf) --- libc-test/semver/linux.txt | 6 ++++++ src/unix/linux_like/linux/mod.rs | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 9bf5ec61c461f..92c0f64fb5068 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2171,6 +2171,11 @@ PF_WANPIPE PF_WQ_WORKER PF_X PF_X25 +PIDTYPE_MAX +PIDTYPE_PGID +PIDTYPE_PID +PIDTYPE_SID +PIDTYPE_TGID PIPE_BUF PM_STR POLLRDBAND @@ -4038,6 +4043,7 @@ packet_mreq pause personality pgn_t +pid_type pipe2 popen posix_fadvise diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 59857ff1274e5..5f4f219cbedd1 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -93,6 +93,16 @@ e! { } } +c_enum! { + pid_type { + PIDTYPE_PID, + PIDTYPE_TGID, + PIDTYPE_PGID, + PIDTYPE_SID, + PIDTYPE_MAX, + } +} + s! { pub struct glob_t { pub gl_pathc: size_t, From 5f922548540bfef89e2cc7068e60ce32ad634d06 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 25 Apr 2025 03:40:53 +0000 Subject: [PATCH 0616/1228] Fix an `unnecessary_transmutes` from a recent nightly (backport ) (cherry picked from commit 673af93ebd3f3b830f2d1a76eb10d622b7731d83) --- src/unix/linux_like/linux/gnu/b64/s390x.rs | 2 +- src/unix/linux_like/linux/musl/b64/s390x.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index c08e12108b918..18684de36dc52 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -235,7 +235,7 @@ cfg_if! { impl hash::Hash for fpreg_t { fn hash(&self, state: &mut H) { - let d: u64 = unsafe { mem::transmute(self.d) }; + let d: u64 = self.d.to_bits(); d.hash(state); } } diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index b992a2c4361e4..8a274f39dfb77 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -88,7 +88,7 @@ cfg_if! { impl hash::Hash for fpreg_t { fn hash(&self, state: &mut H) { - let d: u64 = unsafe { mem::transmute(self.d) }; + let d: u64 = self.d.to_bits(); d.hash(state); } } From d392ce79ae083a6c75064cfa3d97a3e8c8e51639 Mon Sep 17 00:00:00 2001 From: Ryan Castellucci Date: Tue, 11 Mar 2025 08:33:53 +0000 Subject: [PATCH 0617/1228] linux: add constant PACKET_IGNORE_OUTGOING (backport ) (cherry picked from commit 29ab31e2cacdcb12e8151b15daf7dc65ef195d59) --- libc-test/semver/linux.txt | 1 + src/unix/linux_like/linux/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 92c0f64fb5068..962c4363ebfba 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2084,6 +2084,7 @@ PACKET_FANOUT_QM PACKET_FANOUT_RND PACKET_FANOUT_ROLLOVER PACKET_HOST +PACKET_IGNORE_OUTGOING PACKET_KERNEL PACKET_LOOPBACK PACKET_LOSS diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 5f4f219cbedd1..ade7311d75f5e 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -3840,6 +3840,7 @@ pub const PACKET_LOSS: c_int = 14; pub const PACKET_TIMESTAMP: c_int = 17; pub const PACKET_FANOUT: c_int = 18; pub const PACKET_QDISC_BYPASS: c_int = 20; +pub const PACKET_IGNORE_OUTGOING: c_int = 23; pub const PACKET_FANOUT_HASH: c_uint = 0; pub const PACKET_FANOUT_LB: c_uint = 1; From 1e47c9cf057bbfd19e55546010489c6a034dcc9b Mon Sep 17 00:00:00 2001 From: Guus Waals <_@guusw.nl> Date: Thu, 23 Jan 2025 20:20:32 +0800 Subject: [PATCH 0618/1228] Fix querying emcc on windows (use emcc.bat) (backport ) (cherry picked from commit 1606561beafccb1b1e77d05a0bf117129681cabb) --- build.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/build.rs b/build.rs index bf5277a9a9968..ec2c599ca7de0 100644 --- a/build.rs +++ b/build.rs @@ -241,7 +241,13 @@ fn which_freebsd() -> Option { } fn emcc_version_code() -> Option { - let output = Command::new("emcc").arg("-dumpversion").output().ok()?; + let emcc = if cfg!(target_os = "windows") { + "emcc.bat" + } else { + "emcc" + }; + + let output = Command::new(emcc).arg("-dumpversion").output().ok()?; if !output.status.success() { return None; } From 2f3e868594abf2e40f5853354cf1056a0211c7c1 Mon Sep 17 00:00:00 2001 From: rusty-snake <41237666+rusty-snake@users.noreply.github.com> Date: Sat, 12 Apr 2025 13:22:35 +0200 Subject: [PATCH 0619/1228] Update pidfd constants and types (Linux 6.9-6.15) (backport ) (cherry picked from commit 126f2c66d23a00f8dfd1d99459fb6a1f9011dfbb) --- libc-test/build.rs | 29 +++++++++++ libc-test/semver/linux-musl.txt | 1 - libc-test/semver/linux.txt | 22 +++++++++ src/unix/linux_like/linux/gnu/mod.rs | 1 - src/unix/linux_like/linux/mod.rs | 48 +++++++++++++++++++ src/unix/linux_like/linux/musl/mod.rs | 2 - src/unix/linux_like/linux/uclibc/arm/mod.rs | 1 - src/unix/linux_like/linux/uclibc/mips/mod.rs | 1 - .../linux_like/linux/uclibc/x86_64/mod.rs | 1 - 9 files changed, 99 insertions(+), 7 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 4955e8545d8aa..84d707e1652e7 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4123,6 +4123,10 @@ fn test_linux(target: &str) { // Might differ between kernel versions "open_how" => true, + // Linux >= 6.13 (pidfd_info.exit_code: Linux >= 6.15) + // Might differ between kernel versions + "pidfd_info" => true, + "sctp_initmsg" | "sctp_sndrcvinfo" | "sctp_sndinfo" | "sctp_rcvinfo" | "sctp_nxtinfo" | "sctp_prinfo" | "sctp_authinfo" => true, @@ -4229,6 +4233,7 @@ fn test_linux(target: &str) { || name.starts_with("OPEN_TREE_") || name.starts_with("P_") || name.starts_with("PF_") + || name.starts_with("PIDFD_") || name.starts_with("RLIMIT_") || name.starts_with("RTEXT_FILTER_") || name.starts_with("SOL_") @@ -4432,6 +4437,30 @@ fn test_linux(target: &str) { // headers conflicts with linux/pidfd.h "PIDFD_NONBLOCK" => true, + // Linux >= 6.9 + "PIDFD_THREAD" + | "PIDFD_SIGNAL_THREAD" + | "PIDFD_SIGNAL_THREAD_GROUP" + | "PIDFD_SIGNAL_PROCESS_GROUP" => true, + // Linux >= 6.11 + "PIDFD_GET_CGROUP_NAMESPACE" + | "PIDFD_GET_IPC_NAMESPACE" + | "PIDFD_GET_MNT_NAMESPACE" + | "PIDFD_GET_NET_NAMESPACE" + | "PIDFD_GET_PID_NAMESPACE" + | "PIDFD_GET_PID_FOR_CHILDREN_NAMESPACE" + | "PIDFD_GET_TIME_NAMESPACE" + | "PIDFD_GET_TIME_FOR_CHILDREN_NAMESPACE" + | "PIDFD_GET_USER_NAMESPACE" + | "PIDFD_GET_UTS_NAMESPACE" => true, + // Linux >= 6.13 + "PIDFD_GET_INFO" + | "PIDFD_INFO_PID" + | "PIDFD_INFO_CREDS" + | "PIDFD_INFO_CGROUPID" + | "PIDFD_INFO_SIZE_VER0" => true, + // Linux >= 6.15 + "PIDFD_INFO_EXIT" | "PIDFD_SELF" | "PIDFD_SELF_PROCESS" => true, // is a private value for kernel usage normally "FUSE_SUPER_MAGIC" => true, diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index e2fdcbf006c64..462f45f7d13b0 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -28,7 +28,6 @@ OLD_TIME PF_IB PF_MPLS PF_XDP -PIDFD_NONBLOCK PR_SET_VMA PR_SET_VMA_ANON_NAME RUN_LVL diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 962c4363ebfba..2c12b10969e58 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2172,6 +2172,27 @@ PF_WANPIPE PF_WQ_WORKER PF_X PF_X25 +PIDFD_GET_CGROUP_NAMESPACE +PIDFD_GET_INFO +PIDFD_GET_IPC_NAMESPACE +PIDFD_GET_MNT_NAMESPACE +PIDFD_GET_NET_NAMESPACE +PIDFD_GET_PID_FOR_CHILDREN_NAMESPACE +PIDFD_GET_PID_NAMESPACE +PIDFD_GET_TIME_FOR_CHILDREN_NAMESPACE +PIDFD_GET_TIME_NAMESPACE +PIDFD_GET_USER_NAMESPACE +PIDFD_GET_UTS_NAMESPACE +PIDFD_INFO_CGROUPID +PIDFD_INFO_CREDS +PIDFD_INFO_EXIT +PIDFD_INFO_PID +PIDFD_INFO_SIZE_VER0 +PIDFD_NONBLOCK +PIDFD_SIGNAL_PROCESS_GROUP +PIDFD_SIGNAL_THREAD +PIDFD_SIGNAL_THREAD_GROUP +PIDFD_THREAD PIDTYPE_MAX PIDTYPE_PGID PIDTYPE_PID @@ -4045,6 +4066,7 @@ pause personality pgn_t pid_type +pidfd_info pipe2 popen posix_fadvise diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 823f495084bda..84d7c24742c37 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -751,7 +751,6 @@ pub const RTLD_DI_TLS_MODID: c_int = 9; pub const RTLD_DI_TLS_DATA: c_int = 10; pub const SOCK_NONBLOCK: c_int = O_NONBLOCK; -pub const PIDFD_NONBLOCK: c_uint = O_NONBLOCK as c_uint; pub const SOL_RXRPC: c_int = 272; pub const SOL_PPPOL2TP: c_int = 273; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index ade7311d75f5e..367bfb61baca2 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1376,6 +1376,25 @@ s! { pub userns_fd: crate::__u64, } + // linux/pidfd.h + + pub struct pidfd_info { + mask: crate::__u64, + cgroupid: crate::__u64, + pid: crate::__u32, + tgid: crate::__u32, + ppid: crate::__u32, + ruid: crate::__u32, + rgid: crate::__u32, + euid: crate::__u32, + egid: crate::__u32, + suid: crate::__u32, + sgid: crate::__u32, + fsuid: crate::__u32, + fsgid: crate::__u32, + exit_code: crate::__s32, + } + // linux/uio.h pub struct dmabuf_cmsg { @@ -3192,6 +3211,35 @@ pub const MREMAP_MAYMOVE: c_int = 1; pub const MREMAP_FIXED: c_int = 2; pub const MREMAP_DONTUNMAP: c_int = 4; +// linux/pidfd.h +pub const PIDFD_NONBLOCK: c_uint = O_NONBLOCK as c_uint; +pub const PIDFD_THREAD: c_uint = O_EXCL as c_uint; + +pub const PIDFD_SIGNAL_THREAD: c_uint = 1 << 0; +pub const PIDFD_SIGNAL_THREAD_GROUP: c_uint = 1 << 1; +pub const PIDFD_SIGNAL_PROCESS_GROUP: c_uint = 1 << 2; + +pub const PIDFD_INFO_PID: c_uint = 1 << 0; +pub const PIDFD_INFO_CREDS: c_uint = 1 << 1; +pub const PIDFD_INFO_CGROUPID: c_uint = 1 << 2; +pub const PIDFD_INFO_EXIT: c_uint = 1 << 3; + +pub const PIDFD_INFO_SIZE_VER0: c_uint = 64; + +const PIDFS_IOCTL_MAGIC: c_uint = 0xFF; +pub const PIDFD_GET_CGROUP_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 1); +pub const PIDFD_GET_IPC_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 2); +pub const PIDFD_GET_MNT_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 3); +pub const PIDFD_GET_NET_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 4); +pub const PIDFD_GET_PID_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 5); +pub const PIDFD_GET_PID_FOR_CHILDREN_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 6); +pub const PIDFD_GET_TIME_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 7); +pub const PIDFD_GET_TIME_FOR_CHILDREN_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 8); +pub const PIDFD_GET_USER_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 9); +pub const PIDFD_GET_UTS_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 10); +pub const PIDFD_GET_INFO: c_uint = _IOWR::(PIDFS_IOCTL_MAGIC, 11); + +// linux/prctl.h pub const PR_SET_PDEATHSIG: c_int = 1; pub const PR_GET_PDEATHSIG: c_int = 2; diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index f850849b2d6ae..5d4d97fafbc8e 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -787,8 +787,6 @@ pub const EFD_NONBLOCK: c_int = crate::O_NONBLOCK; pub const SFD_NONBLOCK: c_int = crate::O_NONBLOCK; -pub const PIDFD_NONBLOCK: c_uint = O_NONBLOCK as c_uint; - pub const TCSANOW: c_int = 0; pub const TCSADRAIN: c_int = 1; pub const TCSAFLUSH: c_int = 2; diff --git a/src/unix/linux_like/linux/uclibc/arm/mod.rs b/src/unix/linux_like/linux/uclibc/arm/mod.rs index 634161ed622ca..7a517f4974694 100644 --- a/src/unix/linux_like/linux/uclibc/arm/mod.rs +++ b/src/unix/linux_like/linux/uclibc/arm/mod.rs @@ -475,7 +475,6 @@ pub const POLLWRBAND: c_short = 0x200; pub const POLLWRNORM: c_short = 0x100; pub const PTHREAD_STACK_MIN: size_t = 16384; pub const RTLD_GLOBAL: c_int = 0x00100; -pub const PIDFD_NONBLOCK: c_int = 0x800; // These are typed unsigned to match sigaction pub const SA_NOCLDSTOP: c_ulong = 0x1; diff --git a/src/unix/linux_like/linux/uclibc/mips/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mod.rs index f1934c396773a..0ad572a95f888 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mod.rs @@ -57,7 +57,6 @@ pub const O_LARGEFILE: c_int = 0x2000; pub const O_NDELAY: c_int = 0x80; pub const SOCK_NONBLOCK: c_int = 128; -pub const PIDFD_NONBLOCK: c_int = 128; pub const EDEADLK: c_int = 45; pub const ENAMETOOLONG: c_int = 78; diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index 3a4ee0dee31c2..4a6c19fc97da3 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -342,7 +342,6 @@ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const PIDFD_NONBLOCK: c_int = 0o4000; cfg_if! { if #[cfg(target_os = "l4re")] { From 859a8fa7400a3ed9a739152641f31f27e71ed73f Mon Sep 17 00:00:00 2001 From: 4lDO2 <4lDO2@protonmail.com> Date: Mon, 21 Apr 2025 21:22:12 +0200 Subject: [PATCH 0620/1228] Update Redox SA_ constants. (backport ) (cherry picked from commit 74c3cc02540e72656ec340ac4bb043b21804b059) --- src/unix/redox/mod.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 15b8da6fa82ac..2e78bc8179a72 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -661,14 +661,14 @@ pub const SIGPWR: c_int = 30; pub const SIGSYS: c_int = 31; pub const NSIG: c_int = 32; -pub const SA_NOCLDSTOP: c_ulong = 0x00000001; -pub const SA_NOCLDWAIT: c_ulong = 0x00000002; -pub const SA_SIGINFO: c_ulong = 0x00000004; -pub const SA_RESTORER: c_ulong = 0x04000000; -pub const SA_ONSTACK: c_ulong = 0x08000000; -pub const SA_RESTART: c_ulong = 0x10000000; -pub const SA_NODEFER: c_ulong = 0x40000000; -pub const SA_RESETHAND: c_ulong = 0x80000000; +pub const SA_NOCLDWAIT: c_ulong = 0x0000_0002; +pub const SA_RESTORER: c_ulong = 0x0000_0004; // FIXME(redox): remove after relibc removes it +pub const SA_SIGINFO: c_ulong = 0x0200_0000; +pub const SA_ONSTACK: c_ulong = 0x0400_0000; +pub const SA_RESTART: c_ulong = 0x0800_0000; +pub const SA_NODEFER: c_ulong = 0x1000_0000; +pub const SA_RESETHAND: c_ulong = 0x2000_0000; +pub const SA_NOCLDSTOP: c_ulong = 0x4000_0000; // sys/file.h pub const LOCK_SH: c_int = 1; From 26e618b83433b807d14ba8c61184f029383bf418 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 26 Apr 2025 18:51:02 +0000 Subject: [PATCH 0621/1228] Set issue-links and no-mentions for triagebot (backport ) (cherry picked from commit e69ebcff733f3a2fd93f02edba474415d8bcf801) --- triagebot.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/triagebot.toml b/triagebot.toml index f42f244bd6f85..5293671074632 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -16,6 +16,12 @@ contributing_url = "https://github.com/rust-lang/libc/blob/HEAD/CONTRIBUTING.md" "@tgross35", ] +# Ensure issue links link to this repo +[issue-links] + +# Prevents mentions in commits to avoid users being spammed +[no-mentions] + [autolabel."A-CI"] trigger_files = [ ".cirrus.yml", From 3ddb15525becff07d52abf0e2fb634631b756cb5 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 27 Apr 2025 16:58:44 +0000 Subject: [PATCH 0622/1228] Remove triagebot assignment It's only me and I watch the repo anyway, so save me some unneeded pings. (backport ) (cherry picked from commit 004030904ae36e656788b14e295d263b1946d568) --- triagebot.toml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/triagebot.toml b/triagebot.toml index 5293671074632..fe3a00af581f7 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -11,11 +11,6 @@ allow-unauthenticated = [ warn_non_default_branch.enable = true contributing_url = "https://github.com/rust-lang/libc/blob/HEAD/CONTRIBUTING.md" -[assign.owners] -"*" = [ - "@tgross35", -] - # Ensure issue links link to this repo [issue-links] From 28779d2c468849174bf24bbfde1cae28813b21f6 Mon Sep 17 00:00:00 2001 From: Ashwin Naren Date: Wed, 23 Apr 2025 10:18:10 -0700 Subject: [PATCH 0623/1228] add more windows time.h functions (backport ) (cherry picked from commit 35a32a7cee020fb577e0ccaf9eecbc787dd261e0) --- libc-test/semver/windows.txt | 8 ++++++++ src/windows/mod.rs | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/libc-test/semver/windows.txt b/libc-test/semver/windows.txt index db55da5f4e48d..281a13bb73034 100644 --- a/libc-test/semver/windows.txt +++ b/libc-test/semver/windows.txt @@ -174,12 +174,15 @@ c_void calloc chdir chmod +clock clock_t close commit connect creat +ctime dev_t +difftime dup dup2 errno_t @@ -214,7 +217,11 @@ fsetpos fstat ftell fwrite +get_daylight +get_dstbias get_osfhandle +get_timezone +get_tzname getchar getcwd getenv @@ -326,6 +333,7 @@ tm tmpfile tolower toupper +tzset uint16_t uint32_t uint64_t diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 06cab0e5037a3..8490b709bae9e 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -382,12 +382,25 @@ extern "C" { pub fn signal(signum: c_int, handler: sighandler_t) -> sighandler_t; pub fn raise(signum: c_int) -> c_int; + pub fn clock() -> clock_t; + pub fn ctime(sourceTime: *const time_t) -> *mut c_char; + pub fn difftime(timeEnd: time_t, timeStart: time_t) -> c_double; #[link_name = "_gmtime64_s"] pub fn gmtime_s(destTime: *mut tm, srcTime: *const time_t) -> c_int; + #[link_name = "_get_daylight"] + pub fn get_daylight(hours: *mut c_int) -> errno_t; + #[link_name = "_get_dstbias"] + pub fn get_dstbias(seconds: *mut c_long) -> errno_t; + #[link_name = "_get_timezone"] + pub fn get_timezone(seconds: *mut c_long) -> errno_t; + #[link_name = "_get_tzname"] + pub fn get_tzname(p_return_value: *mut size_t, time_zone_name: *mut c_char, size_in_bytes: size_t, index: c_int) -> errno_t; #[link_name = "_localtime64_s"] pub fn localtime_s(tmDest: *mut tm, sourceTime: *const time_t) -> crate::errno_t; #[link_name = "_time64"] pub fn time(destTime: *mut time_t) -> time_t; + #[link_name = "_tzset"] + pub fn tzset(); #[link_name = "_chmod"] pub fn chmod(path: *const c_char, mode: c_int) -> c_int; #[link_name = "_wchmod"] From b3f1acf5952b27f9e773761c84e31188998f7471 Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Thu, 1 May 2025 11:20:37 +0000 Subject: [PATCH 0624/1228] musl: fix test build with musl 1.2.0+ Since musl 1.2.0, the utmpx.ut_session type changed from long to int (with padding). For now, skip the test for this field. Fixes: 3305 (backport ) (cherry picked from commit aa08592255c39ee99d32fffae78007a842293c0d) --- libc-test/build.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 84d707e1652e7..ebc2f97a05fda 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4880,7 +4880,9 @@ fn test_linux(target: &str) { (struct_ == "statvfs" && field == "__f_spare") || (struct_ == "statvfs64" && field == "__f_spare") || // the `xsk_tx_metadata_union` field is an anonymous union - (struct_ == "xsk_tx_metadata" && field == "xsk_tx_metadata_union") + (struct_ == "xsk_tx_metadata" && field == "xsk_tx_metadata_union") || + // FIXME(musl): After musl 1.2.0, the type becomes `int` instead of `long`. + (struct_ == "utmpx" && field == "ut_session") }); cfg.skip_roundtrip(move |s| match s { From b595ed4c20fb0fb63b4ee27c8809217f40a4756f Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Fri, 2 May 2025 09:10:12 -0600 Subject: [PATCH 0625/1228] redox: make CMSG_ALIGN, CMSG_LEN, and CMSG_SPACE const functions (backport ) (cherry picked from commit b20a7255ce3d586b9ff3d253e342031504ad5f5c) --- src/unix/redox/mod.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 2e78bc8179a72..c21c156f40ff2 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1014,8 +1014,19 @@ pub const PRIO_PROCESS: c_int = 0; pub const PRIO_PGRP: c_int = 1; pub const PRIO_USER: c_int = 2; -// wait.h f! { + //sys/socket.h + pub {const} fn CMSG_ALIGN(len: size_t) -> size_t { + (len + mem::size_of::() - 1) & !(mem::size_of::() - 1) + } + pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + (CMSG_ALIGN(mem::size_of::()) + length as usize) as c_uint + } + pub {const} fn CMSG_SPACE(len: c_uint) -> c_uint { + (CMSG_ALIGN(len as size_t) + CMSG_ALIGN(mem::size_of::())) as c_uint + } + + // wait.h pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; @@ -1228,12 +1239,9 @@ extern "C" { pub fn setrlimit(resource: c_int, rlim: *const crate::rlimit) -> c_int; // sys/socket.h - pub fn CMSG_ALIGN(len: size_t) -> size_t; pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar; pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr; - pub fn CMSG_LEN(len: c_uint) -> c_uint; pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr; - pub fn CMSG_SPACE(len: c_uint) -> c_uint; pub fn bind( socket: c_int, address: *const crate::sockaddr, From 6cec0fad829f2c575eb0c982a878615680cea523 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Fri, 2 May 2025 08:52:21 -0600 Subject: [PATCH 0626/1228] redox: define SCM_RIGHTS (backport ) (cherry picked from commit 74bfdee3ee011f2da1f91e7d056616b1eab0f8a4) --- libc-test/semver/redox.txt | 1 + src/unix/redox/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/redox.txt b/libc-test/semver/redox.txt index 8e7403982e216..3c3c52eabb4f0 100644 --- a/libc-test/semver/redox.txt +++ b/libc-test/semver/redox.txt @@ -135,6 +135,7 @@ O_SHLOCK O_SYMLINK PTHREAD_STACK_MIN SA_RESTORER +SCM_RIGHTS SIGIO SIGPWR SIGSTKFLT diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index c21c156f40ff2..d9900d1cb4fe7 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -782,6 +782,7 @@ pub const MSG_PEEK: c_int = 2; pub const MSG_TRUNC: c_int = 32; pub const MSG_DONTWAIT: c_int = 64; pub const MSG_WAITALL: c_int = 256; +pub const SCM_RIGHTS: c_int = 1; pub const SHUT_RD: c_int = 0; pub const SHUT_WR: c_int = 1; pub const SHUT_RDWR: c_int = 2; From 3d942f981d930c1c8bf26cd4f2df519a9d687655 Mon Sep 17 00:00:00 2001 From: rusty-snake <41237666+rusty-snake@users.noreply.github.com> Date: Sat, 12 Apr 2025 11:44:52 +0200 Subject: [PATCH 0627/1228] Add constants for Memory-Deny-Write-Execute prctls (backport ) (cherry picked from commit 4ed4eb63542dccd2f67ffd68c205155f34e28687) --- libc-test/build.rs | 7 +++++++ libc-test/semver/linux.txt | 4 ++++ src/unix/linux_like/linux/mod.rs | 5 +++++ 3 files changed, 16 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index ebc2f97a05fda..7d6e5fe6d7330 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4302,6 +4302,10 @@ fn test_linux(target: &str) { if loongarch64 && (name == "MFD_NOEXEC_SEAL" || name == "MFD_EXEC") { return true; } + // FIXME: Requires >= 6.3 (6.6) kernel headers + if name == "PR_GET_MDWE" || name == "PR_MDWE_NO_INHERIT" || name == "PR_MDWE_REFUSE_EXEC_GAIN" || name == "PR_SET_MDWE" { + return true; + } // FIXME(musl): Requires musl >= 1.2 if name == "SO_PREFER_BUSY_POLL" || name == "SO_BUSY_POLL_BUDGET" @@ -4583,6 +4587,9 @@ fn test_linux(target: &str) { true } + // FIXME(linux): Requires >= 6.6 kernel headers. + "PR_MDWE_NO_INHERIT" => true, + // FIXME(linux): Requires >= 6.8 kernel headers. "XDP_UMEM_TX_SW_CSUM" | "XDP_TXMD_FLAGS_TIMESTAMP" diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 2c12b10969e58..011fba0d85b6b 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2256,6 +2256,7 @@ PR_GET_FPEMU PR_GET_FPEXC PR_GET_FP_MODE PR_GET_KEEPCAPS +PR_GET_MDWE PR_GET_NAME PR_GET_NO_NEW_PRIVS PR_GET_PDEATHSIG @@ -2274,6 +2275,8 @@ PR_MCE_KILL_EARLY PR_MCE_KILL_GET PR_MCE_KILL_LATE PR_MCE_KILL_SET +PR_MDWE_NO_INHERIT +PR_MDWE_REFUSE_EXEC_GAIN PR_MPX_DISABLE_MANAGEMENT PR_MPX_ENABLE_MANAGEMENT PR_SCHED_CORE @@ -2292,6 +2295,7 @@ PR_SET_FPEMU PR_SET_FPEXC PR_SET_FP_MODE PR_SET_KEEPCAPS +PR_SET_MDWE PR_SET_MM PR_SET_MM_ARG_END PR_SET_MM_ARG_START diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 367bfb61baca2..c0989d2d74c7d 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -3342,6 +3342,11 @@ pub const PR_GET_CHILD_SUBREAPER: c_int = 37; pub const PR_SET_NO_NEW_PRIVS: c_int = 38; pub const PR_GET_NO_NEW_PRIVS: c_int = 39; +pub const PR_SET_MDWE: c_int = 65; +pub const PR_GET_MDWE: c_int = 66; +pub const PR_MDWE_REFUSE_EXEC_GAIN: c_uint = 1 << 0; +pub const PR_MDWE_NO_INHERIT: c_uint = 1 << 1; + pub const PR_GET_TID_ADDRESS: c_int = 40; pub const PR_SET_THP_DISABLE: c_int = 41; From e56ab23a97422d770618c7d5a54fd33435c4d2f6 Mon Sep 17 00:00:00 2001 From: Petr Sumbera Date: Mon, 26 May 2025 10:34:46 +0200 Subject: [PATCH 0628/1228] Fixes Solaris CI after solaris-vm was updated to Solaris 11.4.81 CBE It also specifies exact solaris-vm version to avoid future disruptions. (backport ) (cherry picked from commit d450f9c27a4f0a28087f7d0cba9d680bf8b0b233) --- .github/workflows/ci.yaml | 2 +- src/unix/solarish/x86_64.rs | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 73d2f9f42c785..d581b362ebacf 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -232,7 +232,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: test on Solaris - uses: vmactions/solaris-vm@v1 + uses: vmactions/solaris-vm@v1.1.3 with: release: "11.4-gcc" usesh: true diff --git a/src/unix/solarish/x86_64.rs b/src/unix/solarish/x86_64.rs index 4deaac0fc1718..2f82d244863aa 100644 --- a/src/unix/solarish/x86_64.rs +++ b/src/unix/solarish/x86_64.rs @@ -91,7 +91,9 @@ s_no_extra_traits! { #[cfg(target_os = "solaris")] pub uc_xrs: solaris::xrs_t, #[cfg(target_os = "solaris")] - pub uc_filler: [c_long; 3], + pub uc_lwpid: c_uint, + #[cfg(target_os = "solaris")] + pub uc_filler: [c_long; 2], } } From e70b031fbd4b10840f58fe84f97cf625d1b58bfd Mon Sep 17 00:00:00 2001 From: Yuri Astrakhan Date: Mon, 14 Apr 2025 22:46:54 -0400 Subject: [PATCH 0629/1228] chore: add clippy CI tests run cargo clippy for all targets (backport ) (cherry picked from commit bea4d1b0b893f222a837dcfa2ed1a100f1ed440a) --- Cargo.toml | 22 ++++++++++++++++++++++ ci/style.sh | 3 +++ ci/verify-build.sh | 7 +++++++ libc-test/Cargo.toml | 23 +++++++++++++++++++++++ 4 files changed, 55 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 9e53e45110a7e..8ae40020fad33 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -150,3 +150,25 @@ members = [ "ctest", "libc-test", ] + +# +# TODO: These should be renamed as `[workspace.lints.*]` once MSRV is abve 1.64 +# This way all crates can use it with `[lints] workspace=true` section +# + +[lints.rust] +# TODO: make ident usage consistent in each file +unused_qualifications = "allow" + +[lints.clippy] +# TODO: all these are default lints and should probably be fixed +identity_op = "allow" +if_same_then_else = "allow" +missing_safety_doc = "allow" +non_minimal_cfg = "allow" +precedence = "allow" +redundant_field_names = "allow" +redundant_static_lifetimes = "allow" +unnecessary_cast = "allow" +unused_unit = "allow" +zero_ptr = "allow" diff --git a/ci/style.sh b/ci/style.sh index 5b200796a8c53..99fc2f12c089d 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -4,6 +4,9 @@ set -eux [ -n "${CI:-}" ] && check="--check" +# TODO: for some reason using `--workspace` validates a lot of generated code in ./target/** dir +cargo clippy -p libc@1.0.0-alpha.1 -p ctest --all-targets -- -D warnings + cargo test --manifest-path libc-test/Cargo.toml --test style -- --nocapture command -v rustfmt diff --git a/ci/verify-build.sh b/ci/verify-build.sh index 375a5de1b0a2f..c99d04addfafe 100755 --- a/ci/verify-build.sh +++ b/ci/verify-build.sh @@ -44,9 +44,13 @@ test_target() { # The basic command that is run each time cmd="cargo +$rust build --target $target" + # The basic clippy command + clippy_cmd="cargo +$rust clippy --all-targets --target $target" + if [ "${no_dist}" != "0" ]; then # If we can't download a `core`, we need to build it cmd="$cmd -Zbuild-std=core,alloc" + clippy_cmd="$clippy_cmd -Zbuild-std=core,alloc" # FIXME: With `build-std` feature, `compiler_builtins` emits a lof of lint warnings. RUSTFLAGS="${RUSTFLAGS:-} -Aimproper_ctypes_definitions" @@ -67,6 +71,9 @@ test_target() { done fi + # Run cargo clippy first + $clippy_cmd + # Test with expected combinations of features $cmd $cmd --features const-extern-fn diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 9573c3fdb8288..fe8d2866cf324 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -104,3 +104,26 @@ harness = true name = "style_tests" path = "test/style_tests.rs" harness = true + +# +# TODO: These should be moved to the root Cargo.toml as `[workspace.lints.*]` once MSRV is abve 1.64 +# replace it with `[lints] workspace=true` +# + +[lints.rust] +# TODO: make ident usage consistent in each file +unused_qualifications = "allow" + +[lints.clippy] +# TODO: fix these, and enable pedantic lints with needed exceptions +needless_return = "allow" +comparison_to_empty = "allow" +unused_io_amount = "allow" +write_with_newline = "allow" +needless_borrows_for_generic_args = "allow" +only_used_in_recursion = "allow" +match_like_matches_macro = "allow" +useless_format = "allow" +wildcard_in_or_patterns = "allow" +nonminimal_bool = "allow" +match_single_binding = "allow" From 2aba8545d79551f1e7105bfeb1893739262012ab Mon Sep 17 00:00:00 2001 From: Yuri Astrakhan Date: Mon, 14 Apr 2025 22:57:49 -0400 Subject: [PATCH 0630/1228] simplify clippy ci (backport ) (cherry picked from commit 5997a8b58b7f348300c839a1bd5b82f7eee459a5) --- .github/workflows/ci.yaml | 12 ++++++++++++ ci/style.sh | 3 --- ci/verify-build.sh | 7 ------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d581b362ebacf..60e4340145c2d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -30,6 +30,18 @@ jobs: - name: Check style run: ./ci/style.sh + clippy: + name: Clippy check + runs-on: ubuntu-24.04 + timeout-minutes: 10 + steps: + - uses: actions/checkout@v4 + - uses: Swatinem/rust-cache@v2 + # Here we use the latest stable Rust toolchain already installed by GitHub + # Ideally we should run it for every target, but we cannot rely on unstable toolchains + # due to Clippy not being consistent between them. + - run: cargo clippy --workspace --exclude libc-test --exclude ctest-test --all-targets -- -D warnings + # This runs `cargo build --target ...` for all T1 and T2 targets` verify_build: name: Verify build diff --git a/ci/style.sh b/ci/style.sh index 99fc2f12c089d..5b200796a8c53 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -4,9 +4,6 @@ set -eux [ -n "${CI:-}" ] && check="--check" -# TODO: for some reason using `--workspace` validates a lot of generated code in ./target/** dir -cargo clippy -p libc@1.0.0-alpha.1 -p ctest --all-targets -- -D warnings - cargo test --manifest-path libc-test/Cargo.toml --test style -- --nocapture command -v rustfmt diff --git a/ci/verify-build.sh b/ci/verify-build.sh index c99d04addfafe..375a5de1b0a2f 100755 --- a/ci/verify-build.sh +++ b/ci/verify-build.sh @@ -44,13 +44,9 @@ test_target() { # The basic command that is run each time cmd="cargo +$rust build --target $target" - # The basic clippy command - clippy_cmd="cargo +$rust clippy --all-targets --target $target" - if [ "${no_dist}" != "0" ]; then # If we can't download a `core`, we need to build it cmd="$cmd -Zbuild-std=core,alloc" - clippy_cmd="$clippy_cmd -Zbuild-std=core,alloc" # FIXME: With `build-std` feature, `compiler_builtins` emits a lof of lint warnings. RUSTFLAGS="${RUSTFLAGS:-} -Aimproper_ctypes_definitions" @@ -71,9 +67,6 @@ test_target() { done fi - # Run cargo clippy first - $clippy_cmd - # Test with expected combinations of features $cmd $cmd --features const-extern-fn From c544ee4d7ad012a4d0b14f2b1c85799331161c8b Mon Sep 17 00:00:00 2001 From: Yuri Astrakhan Date: Mon, 14 Apr 2025 23:03:23 -0400 Subject: [PATCH 0631/1228] run clippy on 3 major platforms (backport ) (cherry picked from commit e09683ea3523cde23c36ffe7ada2289b76a18618) --- .github/workflows/ci.yaml | 11 ++++++++--- Cargo.toml | 11 +++++------ libc-test/Cargo.toml | 10 ++++------ 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 60e4340145c2d..9b98d1d83e8e8 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -31,11 +31,15 @@ jobs: run: ./ci/style.sh clippy: - name: Clippy check - runs-on: ubuntu-24.04 + name: Clippy on ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-24.04, macos-14, windows-2022] + runs-on: ${{ matrix.os }} timeout-minutes: 10 steps: - uses: actions/checkout@v4 + - run: rustup update stable --no-self-update - uses: Swatinem/rust-cache@v2 # Here we use the latest stable Rust toolchain already installed by GitHub # Ideally we should run it for every target, but we cannot rely on unstable toolchains @@ -270,7 +274,8 @@ jobs: - test_tier2 - test_tier2_vm - verify_build - # Github branch protection is exceedingly silly and treats "jobs skipped because a dependency + - clippy + # GitHub branch protection is exceedingly silly and treats "jobs skipped because a dependency # failed" as success. So we have to do some contortions to ensure the job fails if any of its # dependencies fails. if: always() # make sure this is never "skipped" diff --git a/Cargo.toml b/Cargo.toml index 8ae40020fad33..88d748dc549a2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -151,20 +151,19 @@ members = [ "libc-test", ] -# -# TODO: These should be renamed as `[workspace.lints.*]` once MSRV is abve 1.64 +# FIXME(msrv): These should be renamed as `[workspace.lints.*]` once MSRV is above 1.64 # This way all crates can use it with `[lints] workspace=true` section -# [lints.rust] -# TODO: make ident usage consistent in each file +# FIXME(cleanup): make ident usage consistent in each file unused_qualifications = "allow" [lints.clippy] -# TODO: all these are default lints and should probably be fixed +missing_safety_doc = "allow" + +# FIXME(clippy): all these are default lints and should probably be fixed identity_op = "allow" if_same_then_else = "allow" -missing_safety_doc = "allow" non_minimal_cfg = "allow" precedence = "allow" redundant_field_names = "allow" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index fe8d2866cf324..9e7d176b71be6 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -105,17 +105,15 @@ name = "style_tests" path = "test/style_tests.rs" harness = true -# -# TODO: These should be moved to the root Cargo.toml as `[workspace.lints.*]` once MSRV is abve 1.64 -# replace it with `[lints] workspace=true` -# +# FIXME(msrv): These should be moved to the root Cargo.toml as `[workspace.lints.*]` +# once MSRV is above 1.64 and replaced with `[lints] workspace=true` [lints.rust] -# TODO: make ident usage consistent in each file +# FIXME(cleanup): make ident usage consistent in each file unused_qualifications = "allow" [lints.clippy] -# TODO: fix these, and enable pedantic lints with needed exceptions +# FIXME(clippy): fix these needless_return = "allow" comparison_to_empty = "allow" unused_io_amount = "allow" From d716b809e5e5bba253b069b61930eb5204e18c43 Mon Sep 17 00:00:00 2001 From: Yuri Astrakhan Date: Tue, 15 Apr 2025 02:55:14 -0400 Subject: [PATCH 0632/1228] chore: inline format args (backport ) (cherry picked from commit 444d9df5606f5b848f338f03b5be00581cb44f1f) --- build.rs | 12 +-- ci/ios/deploy_and_run_on_ios_simulator.rs | 4 +- ci/runtest-android.rs | 4 +- libc-test/build.rs | 93 +++++++++++------------ 4 files changed, 55 insertions(+), 58 deletions(-) diff --git a/build.rs b/build.rs index ec2c599ca7de0..2fc84aa6b8d33 100644 --- a/build.rs +++ b/build.rs @@ -130,17 +130,17 @@ fn main() { if rustc_minor_ver >= 80 { for cfg in ALLOWED_CFGS { if rustc_minor_ver >= 75 { - println!("cargo:rustc-check-cfg=cfg({})", cfg); + println!("cargo:rustc-check-cfg=cfg({cfg})"); } else { - println!("cargo:rustc-check-cfg=values({})", cfg); + 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); + println!("cargo:rustc-check-cfg=cfg({name},values(\"{values}\"))"); } else { - println!("cargo:rustc-check-cfg=values({},\"{}\")", name, values); + println!("cargo:rustc-check-cfg=values({name},\"{values}\")"); } } } @@ -267,7 +267,7 @@ fn emcc_version_code() -> Option { fn set_cfg(cfg: &str) { if !ALLOWED_CFGS.contains(&cfg) { - panic!("trying to set cfg {}, but it is not in ALLOWED_CFGS", cfg); + panic!("trying to set cfg {cfg}, but it is not in ALLOWED_CFGS"); } - println!("cargo:rustc-cfg={}", cfg); + println!("cargo:rustc-cfg={cfg}"); } diff --git a/ci/ios/deploy_and_run_on_ios_simulator.rs b/ci/ios/deploy_and_run_on_ios_simulator.rs index aa1034fc749df..7e0b80268ffbc 100644 --- a/ci/ios/deploy_and_run_on_ios_simulator.rs +++ b/ci/ios/deploy_and_run_on_ios_simulator.rs @@ -16,7 +16,7 @@ use std::process::Command; macro_rules! t { ($e:expr) => (match $e { Ok(e) => e, - Err(e) => panic!("{} failed with: {}", stringify!($e), e), + Err(e) => panic!("{} failed with: {e}", stringify!($e)), }) } @@ -143,7 +143,7 @@ trait CheckStatus { impl CheckStatus for Command { fn check_status(&mut self) { - println!("\trunning: {:?}", self); + println!("\trunning: {self:?}"); assert!(t!(self.status()).success()); } } diff --git a/ci/runtest-android.rs b/ci/runtest-android.rs index d422f9c2e8a7e..29b1a82f675c7 100644 --- a/ci/runtest-android.rs +++ b/ci/runtest-android.rs @@ -37,8 +37,8 @@ fn main() { let stderr = String::from_utf8_lossy(&output.stderr); println!( - "status: {}\nstdout ---\n{}\nstderr ---\n{}", - output.status, stdout, stderr + "status: {}\nstdout ---\n{stdout}\nstderr ---\n{stderr}", + output.status, ); if !stderr.lines().any(|l| { diff --git a/libc-test/build.rs b/libc-test/build.rs index 7d6e5fe6d7330..6b5cd9b74d029 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -69,7 +69,7 @@ fn do_ctest() { t if t.contains("windows") => return test_windows(t), t if t.contains("vxworks") => return test_vxworks(t), t if t.contains("nto-qnx") => return test_neutrino(t), - t => panic!("unknown target {}", t), + t => panic!("unknown target {t}"), } } @@ -109,13 +109,13 @@ fn do_semver() { process_semver_file(&mut output, &mut semver_root, &vendor); } process_semver_file(&mut output, &mut semver_root, &os); - let os_arch = format!("{}-{}", os, arch); + let os_arch = format!("{os}-{arch}"); process_semver_file(&mut output, &mut semver_root, &os_arch); if target_env != "" { - let os_env = format!("{}-{}", os, target_env); + let os_env = format!("{os}-{target_env}"); process_semver_file(&mut output, &mut semver_root, &os_env); - let os_env_arch = format!("{}-{}-{}", os, target_env, arch); + let os_env_arch = format!("{os}-{target_env}-{arch}"); process_semver_file(&mut output, &mut semver_root, &os_env_arch); } } @@ -132,7 +132,7 @@ fn process_semver_file>(output: &mut W, path: &mut Path path.pop(); return; } - Err(err) => panic!("unexpected error opening file: {}", err), + Err(err) => panic!("unexpected error opening file: {err}"), }; let input = BufReader::new(input_file); @@ -471,9 +471,9 @@ fn test_apple(target: &str) { // OSX calls this something else "sighandler_t" => "sig_t".to_string(), - t if is_union => format!("union {}", t), + t if is_union => format!("union {t}"), t if t.ends_with("_t") => t.to_string(), - t if is_struct => format!("struct {}", t), + t if is_struct => format!("struct {t}"), t => t.to_string(), } }); @@ -654,9 +654,9 @@ fn test_openbsd(target: &str) { // OSX calls this something else "sighandler_t" => "sig_t".to_string(), - t if is_union => format!("union {}", t), + t if is_union => format!("union {t}"), t if t.ends_with("_t") => t.to_string(), - t if is_struct => format!("struct {}", t), + t if is_struct => format!("struct {t}"), t => t.to_string(), } }); @@ -753,7 +753,7 @@ fn test_cygwin(target: &str) { "Ioctl" => "int".to_string(), - t if is_union => format!("union {}", t), + t if is_union => format!("union {t}"), t if t.ends_with("_t") => t.to_string(), @@ -761,7 +761,7 @@ fn test_cygwin(target: &str) { "sigval" => format!("union sigval"), // put `struct` in front of all structs:. - t if is_struct => format!("struct {}", t), + t if is_struct => format!("struct {t}"), t => t.to_string(), } @@ -905,7 +905,7 @@ fn test_windows(target: &str) { "sighandler_t" if !gnu => "_crt_signal_t".to_string(), "sighandler_t" if gnu => "__p_sig_fn_t".to_string(), - t if is_union => format!("union {}", t), + t if is_union => format!("union {t}"), t if t.ends_with("_t") => t.to_string(), // Windows uppercase structs don't have `struct` in front: @@ -918,7 +918,7 @@ fn test_windows(target: &str) { "struct __utimbuf64".to_string() } else { // put `struct` in front of all structs: - format!("struct {}", t) + format!("struct {t}") } } t => t.to_string(), @@ -1164,8 +1164,8 @@ fn test_solarish(target: &str) { "FILE" => "__FILE".to_string(), "DIR" | "Dl_info" => ty.to_string(), t if t.ends_with("_t") => t.to_string(), - t if is_struct => format!("struct {}", t), - t if is_union => format!("union {}", t), + t if is_struct => format!("struct {t}"), + t if is_union => format!("union {t}"), t => t.to_string(), }); @@ -1434,12 +1434,12 @@ fn test_netbsd(target: &str) { // OSX calls this something else "sighandler_t" => "sig_t".to_string(), - t if is_union => format!("union {}", t), + t if is_union => format!("union {t}"), t if t.ends_with("_t") => t.to_string(), // put `struct` in front of all structs:. - t if is_struct => format!("struct {}", t), + t if is_struct => format!("struct {t}"), t => t.to_string(), } @@ -1650,7 +1650,7 @@ fn test_dragonflybsd(target: &str) { // FIXME(dragonflybsd): OSX calls this something else "sighandler_t" => "sig_t".to_string(), - t if is_union => format!("union {}", t), + t if is_union => format!("union {t}"), t if t.ends_with("_t") => t.to_string(), @@ -1658,7 +1658,7 @@ fn test_dragonflybsd(target: &str) { "sigval" => format!("union sigval"), // put `struct` in front of all structs:. - t if is_struct => format!("struct {}", t), + t if is_struct => format!("struct {t}"), t => t.to_string(), } @@ -1828,11 +1828,11 @@ fn test_wasi(target: &str) { cfg.type_name(move |ty, is_struct, is_union| match ty { "FILE" | "fd_set" | "DIR" => ty.to_string(), - t if is_union => format!("union {}", t), - t if t.starts_with("__wasi") && t.ends_with("_u") => format!("union {}", t), - t if t.starts_with("__wasi") && is_struct => format!("struct {}", t), + t if is_union => format!("union {t}"), + t if t.starts_with("__wasi") && t.ends_with("_u") => format!("union {t}"), + t if t.starts_with("__wasi") && is_struct => format!("struct {t}"), t if t.ends_with("_t") => t.to_string(), - t if is_struct => format!("struct {}", t), + t if is_struct => format!("struct {t}"), t => t.to_string(), }); @@ -1881,7 +1881,7 @@ fn test_android(target: &str) { let target_pointer_width = match target { t if t.contains("aarch64") || t.contains("x86_64") => 64, t if t.contains("i686") || t.contains("arm") => 32, - t => panic!("unsupported target: {}", t), + t => panic!("unsupported target: {t}"), }; let x86 = target.contains("i686") || target.contains("x86_64"); let aarch64 = target.contains("aarch64"); @@ -2040,7 +2040,7 @@ fn test_android(target: &str) { // Just pass all these through, no need for a "struct" prefix "FILE" | "fd_set" | "Dl_info" | "Elf32_Phdr" | "Elf64_Phdr" => ty.to_string(), - t if is_union => format!("union {}", t), + t if is_union => format!("union {t}"), t if t.ends_with("_t") => t.to_string(), @@ -2048,7 +2048,7 @@ fn test_android(target: &str) { "sigval" => format!("union sigval"), // put `struct` in front of all structs:. - t if is_struct => format!("struct {}", t), + t if is_struct => format!("struct {t}"), t => t.to_string(), } @@ -2553,7 +2553,7 @@ fn test_freebsd(target: &str) { // FIXME(freebsd): https://github.com/rust-lang/libc/issues/1273 "sighandler_t" => "sig_t".to_string(), - t if is_union => format!("union {}", t), + t if is_union => format!("union {t}"), t if t.ends_with("_t") => t.to_string(), @@ -2561,7 +2561,7 @@ fn test_freebsd(target: &str) { "sigval" => format!("union sigval"), // put `struct` in front of all structs:. - t if is_struct => format!("struct {}", t), + t if is_struct => format!("struct {t}"), t => t.to_string(), } @@ -3158,10 +3158,10 @@ fn test_emscripten(target: &str) { t if t.ends_with("_t") => t.to_string(), // put `struct` in front of all structs:. - t if is_struct => format!("struct {}", t), + t if is_struct => format!("struct {t}"), // put `union` in front of all unions: - t if is_union => format!("union {}", t), + t if is_union => format!("union {t}"), t => t.to_string(), } @@ -3438,12 +3438,12 @@ fn test_neutrino(target: &str) { "Ioctl" => "int".to_string(), - t if is_union => format!("union {}", t), + t if is_union => format!("union {t}"), t if t.ends_with("_t") => t.to_string(), // put `struct` in front of all structs:. - t if is_struct => format!("struct {}", t), + t if is_struct => format!("struct {t}"), t => t.to_string(), } @@ -3664,9 +3664,9 @@ fn test_vxworks(target: &str) { cfg.type_name(move |ty, is_struct, is_union| match ty { "DIR" | "FILE" | "Dl_info" | "RTP_DESC" => ty.to_string(), - t if is_union => format!("union {}", t), + t if is_union => format!("union {t}"), t if t.ends_with("_t") => t.to_string(), - t if is_struct => format!("struct {}", t), + t if is_struct => format!("struct {t}"), t => t.to_string(), }); @@ -3716,10 +3716,7 @@ fn test_linux(target: &str) { (true, false, false) => (), (false, true, false) => (), (false, false, true) => (), - (_, _, _) => panic!( - "linux target lib is gnu: {}, musl: {}, uclibc: {}", - gnu, musl, uclibc - ), + (_, _, _) => panic!("linux target lib is gnu: {gnu}, musl: {musl}, uclibc: {uclibc}"), } let arm = target.contains("arm"); @@ -3959,9 +3956,9 @@ fn test_linux(target: &str) { // typedefs don't need any keywords t if t.ends_with("_t") => t.to_string(), // put `struct` in front of all structs:. - t if is_struct => format!("struct {}", t), + t if is_struct => format!("struct {t}"), // put `union` in front of all unions: - t if is_union => format!("union {}", t), + t if is_union => format!("union {t}"), t => t.to_string(), } @@ -4990,8 +4987,8 @@ fn test_linux_like_apis(target: &str) { _ => true, }) .type_name(move |ty, is_struct, is_union| match ty { - t if is_struct => format!("struct {}", t), - t if is_union => format!("union {}", t), + t if is_struct => format!("struct {t}"), + t if is_union => format!("union {t}"), t => t.to_string(), }); @@ -5016,8 +5013,8 @@ fn test_linux_like_apis(target: &str) { .type_name(move |ty, is_struct, is_union| match ty { "Ioctl" if gnu => "unsigned long".to_string(), "Ioctl" => "int".to_string(), - t if is_struct => format!("struct {}", t), - t if is_union => format!("union {}", t), + t if is_struct => format!("struct {t}"), + t if is_union => format!("union {t}"), t => t.to_string(), }); cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_termios.rs"); @@ -5045,8 +5042,8 @@ fn test_linux_like_apis(target: &str) { _ => true, }) .type_name(move |ty, is_struct, is_union| match ty { - t if is_struct => format!("struct {}", t), - t if is_union => format!("union {}", t), + t if is_struct => format!("struct {t}"), + t if is_union => format!("union {t}"), t => t.to_string(), }); cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_ipv6.rs"); @@ -5433,9 +5430,9 @@ fn test_haiku(target: &str) { // is actually a union "sigval" => format!("union sigval"), - t if is_union => format!("union {}", t), + t if is_union => format!("union {t}"), t if t.ends_with("_t") => t.to_string(), - t if is_struct => format!("struct {}", t), + t if is_struct => format!("struct {t}"), t => t.to_string(), } }); From b21e075c77d1c47a3142cb3b5afa35a111d47a1a Mon Sep 17 00:00:00 2001 From: Yuri Astrakhan Date: Mon, 14 Apr 2025 23:20:00 -0400 Subject: [PATCH 0633/1228] chore: lint `libc-test/build.rs` run `cargo clippy --all-targets` on `libc-test/build.rs`, and fix all default issues. Notes: * `copy_dir_hotfix` had a `replace` parameter that was never used (backport ) [ adjust section heading to avoid ### turning into comment - Trevor ] (cherry picked from commit 8b15e27a1e06ea9484caa75632de63263a3abb5c) --- libc-test/Cargo.toml | 14 ----- libc-test/build.rs | 119 ++++++++++++++++++-------------------- libc-test/test/makedev.rs | 6 +- 3 files changed, 59 insertions(+), 80 deletions(-) diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 9e7d176b71be6..6379029be07a9 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -109,19 +109,5 @@ harness = true # once MSRV is above 1.64 and replaced with `[lints] workspace=true` [lints.rust] -# FIXME(cleanup): make ident usage consistent in each file -unused_qualifications = "allow" [lints.clippy] -# FIXME(clippy): fix these -needless_return = "allow" -comparison_to_empty = "allow" -unused_io_amount = "allow" -write_with_newline = "allow" -needless_borrows_for_generic_args = "allow" -only_used_in_recursion = "allow" -match_like_matches_macro = "allow" -useless_format = "allow" -wildcard_in_or_patterns = "allow" -nonminimal_bool = "allow" -match_single_binding = "allow" diff --git a/libc-test/build.rs b/libc-test/build.rs index 6b5cd9b74d029..bcbe2dc3356f3 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1,4 +1,5 @@ #![deny(warnings)] +#![allow(clippy::match_like_matches_macro)] extern crate ctest2 as ctest; @@ -52,23 +53,23 @@ fn do_cc() { fn do_ctest() { match &env::var("TARGET").unwrap() { - t if t.contains("android") => return test_android(t), - t if t.contains("apple") => return test_apple(t), - t if t.contains("dragonfly") => return test_dragonflybsd(t), - t if t.contains("emscripten") => return test_emscripten(t), - t if t.contains("freebsd") => return test_freebsd(t), - t if t.contains("haiku") => return test_haiku(t), - t if t.contains("linux") => return test_linux(t), - t if t.contains("netbsd") => return test_netbsd(t), - t if t.contains("openbsd") => return test_openbsd(t), - t if t.contains("cygwin") => return test_cygwin(t), - t if t.contains("redox") => return test_redox(t), - t if t.contains("solaris") => return test_solarish(t), - t if t.contains("illumos") => return test_solarish(t), - t if t.contains("wasi") => return test_wasi(t), - t if t.contains("windows") => return test_windows(t), - t if t.contains("vxworks") => return test_vxworks(t), - t if t.contains("nto-qnx") => return test_neutrino(t), + t if t.contains("android") => test_android(t), + t if t.contains("apple") => test_apple(t), + t if t.contains("dragonfly") => test_dragonflybsd(t), + t if t.contains("emscripten") => test_emscripten(t), + t if t.contains("freebsd") => test_freebsd(t), + t if t.contains("haiku") => test_haiku(t), + t if t.contains("linux") => test_linux(t), + t if t.contains("netbsd") => test_netbsd(t), + t if t.contains("openbsd") => test_openbsd(t), + t if t.contains("cygwin") => test_cygwin(t), + t if t.contains("redox") => test_redox(t), + t if t.contains("solaris") => test_solarish(t), + t if t.contains("illumos") => test_solarish(t), + t if t.contains("wasi") => test_wasi(t), + t if t.contains("windows") => test_windows(t), + t if t.contains("vxworks") => test_vxworks(t), + t if t.contains("nto-qnx") => test_neutrino(t), t => panic!("unknown target {t}"), } } @@ -111,7 +112,7 @@ fn do_semver() { process_semver_file(&mut output, &mut semver_root, &os); let os_arch = format!("{os}-{arch}"); process_semver_file(&mut output, &mut semver_root, &os_arch); - if target_env != "" { + if !target_env.is_empty() { let os_env = format!("{os}-{target_env}"); process_semver_file(&mut output, &mut semver_root, &os_env); @@ -136,21 +137,21 @@ fn process_semver_file>(output: &mut W, path: &mut Path }; let input = BufReader::new(input_file); - write!(output, "// Source: {}.\n", path.display()).unwrap(); - output.write(b"use libc::{\n").unwrap(); + writeln!(output, "// Source: {}.", path.display()).unwrap(); + output.write_all(b"use libc::{\n").unwrap(); for line in input.lines() { let line = line.unwrap().into_bytes(); match line.first() { // Ignore comments and empty lines. Some(b'#') | None => continue, _ => { - output.write(b" ").unwrap(); - output.write(&line).unwrap(); - output.write(b",\n").unwrap(); + output.write_all(b" ").unwrap(); + output.write_all(&line).unwrap(); + output.write_all(b",\n").unwrap(); } } } - output.write(b"};\n\n").unwrap(); + output.write_all(b"};\n\n").unwrap(); path.pop(); } @@ -172,8 +173,10 @@ fn main() { do_semver(); } +// FIXME(clippy): removing `replace` somehow fails the `Test tier1 (x86_64-pc-windows-msvc, windows-2022)` CI job +#[allow(clippy::only_used_in_recursion)] fn copy_dir_hotfix(src: &Path, dst: &Path, regex: ®ex::bytes::Regex, replace: &[u8]) { - std::fs::create_dir(&dst).unwrap(); + std::fs::create_dir(dst).unwrap(); for entry in src.read_dir().unwrap() { let entry = entry.unwrap(); let src_path = entry.path(); @@ -758,7 +761,7 @@ fn test_cygwin(target: &str) { t if t.ends_with("_t") => t.to_string(), // sigval is a struct in Rust, but a union in C: - "sigval" => format!("union sigval"), + "sigval" => "union sigval".to_string(), // put `struct` in front of all structs:. t if is_struct => format!("struct {t}"), @@ -1505,6 +1508,7 @@ fn test_netbsd(target: &str) { }); cfg.skip_fn(move |name| { + #[expect(clippy::wildcard_in_or_patterns)] match name { // FIXME(netbsd): https://github.com/rust-lang/libc/issues/1272 "execv" | "execve" | "execvp" => true, @@ -1655,7 +1659,7 @@ fn test_dragonflybsd(target: &str) { t if t.ends_with("_t") => t.to_string(), // sigval is a struct in Rust, but a union in C: - "sigval" => format!("union sigval"), + "sigval" => "union sigval".to_string(), // put `struct` in front of all structs:. t if is_struct => format!("struct {t}"), @@ -2045,7 +2049,7 @@ fn test_android(target: &str) { t if t.ends_with("_t") => t.to_string(), // sigval is a struct in Rust, but a union in C: - "sigval" => format!("union sigval"), + "sigval" => "union sigval".to_string(), // put `struct` in front of all structs:. t if is_struct => format!("struct {t}"), @@ -2404,18 +2408,9 @@ fn test_freebsd(target: &str) { // Required for making freebsd11_stat available in the headers cfg.define("_WANT_FREEBSD11_STAT", None); - let freebsd13 = match freebsd_ver { - Some(n) if n >= 13 => true, - _ => false, - }; - let freebsd14 = match freebsd_ver { - Some(n) if n >= 14 => true, - _ => false, - }; - let freebsd15 = match freebsd_ver { - Some(n) if n >= 15 => true, - _ => false, - }; + let freebsd13 = matches!(freebsd_ver, Some(n) if n >= 13); + let freebsd14 = matches!(freebsd_ver, Some(n) if n >= 14); + let freebsd15 = matches!(freebsd_ver, Some(n) if n >= 15); headers! { cfg: "aio.h", @@ -2558,7 +2553,7 @@ fn test_freebsd(target: &str) { t if t.ends_with("_t") => t.to_string(), // sigval is a struct in Rust, but a union in C: - "sigval" => format!("union sigval"), + "sigval" => "union sigval".to_string(), // put `struct` in front of all structs:. t if is_struct => format!("struct {t}"), @@ -3308,7 +3303,7 @@ fn test_neutrino(target: &str) { let mut cfg = ctest_cfg(); if target.ends_with("_iosock") { - let qnx_target_val = std::env::var("QNX_TARGET") + let qnx_target_val = env::var("QNX_TARGET") .unwrap_or_else(|_| "QNX_TARGET_not_set_please_source_qnxsdp".into()); cfg.include(qnx_target_val + "/usr/include/io-sock"); @@ -3558,17 +3553,17 @@ fn test_neutrino(target: &str) { struct_ == "_idle_hook" && field == "time" }); - cfg.skip_field(move |struct_, field| { - (struct_ == "__sched_param" && field == "reserved") || - (struct_ == "sched_param" && field == "reserved") || - (struct_ == "sigevent" && field == "__padding1") || // ensure alignment - (struct_ == "sigevent" && field == "__padding2") || // union - (struct_ == "sigevent" && field == "__sigev_un2") || // union - // sighandler_t type is super weird - (struct_ == "sigaction" && field == "sa_sigaction") || - // does not exist - (struct_ == "syspage_entry" && field == "__reserved") || - false // keep me for smaller diffs when something is added above + cfg.skip_field(|struct_, field| { + matches!( + (struct_, field), + ("__sched_param", "reserved") + | ("sched_param", "reserved") + | ("sigevent", "__padding1") // ensure alignment + | ("sigevent", "__padding2") // union + | ("sigevent", "__sigev_un2") // union + | ("sigaction", "sa_sigaction") // sighandler_t type is super weird + | ("syspage_entry", "__reserved") // does not exist + ) }); cfg.skip_static(move |name| (name == "__dso_handle")); @@ -3658,9 +3653,7 @@ fn test_vxworks(target: &str) { _ => false, }); - cfg.skip_roundtrip(move |s| match s { - _ => false, - }); + cfg.skip_roundtrip(|_| false); cfg.type_name(move |ty, is_struct, is_union| match ty { "DIR" | "FILE" | "Dl_info" | "RTP_DESC" => ty.to_string(), @@ -4959,8 +4952,8 @@ fn test_linux_like_apis(target: &str) { "strerror_r" => false, _ => true, }) - .skip_const(|_| true) - .skip_struct(|_| true); + .skip_const(|_| true) + .skip_struct(|_| true); cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_strerror_r.rs"); } @@ -5034,10 +5027,10 @@ fn test_linux_like_apis(target: &str) { .skip_const(|_| true) .skip_struct(|_| true) .skip_const(move |name| match name { - "IPV6_FLOWINFO" - | "IPV6_FLOWLABEL_MGR" - | "IPV6_FLOWINFO_SEND" - | "IPV6_FLOWINFO_FLOWLABEL" + "IPV6_FLOWINFO" + | "IPV6_FLOWLABEL_MGR" + | "IPV6_FLOWINFO_SEND" + | "IPV6_FLOWINFO_FLOWLABEL" | "IPV6_FLOWINFO_PRIORITY" => false, _ => true, }) @@ -5429,7 +5422,7 @@ fn test_haiku(target: &str) { } // is actually a union - "sigval" => format!("union sigval"), + "sigval" => "union sigval".to_string(), t if is_union => format!("union {t}"), t if t.ends_with("_t") => t.to_string(), t if is_struct => format!("struct {t}"), diff --git a/libc-test/test/makedev.rs b/libc-test/test/makedev.rs index ea701f6abe94b..6cf180975b8c0 100644 --- a/libc-test/test/makedev.rs +++ b/libc-test/test/makedev.rs @@ -30,8 +30,8 @@ cfg_if::cfg_if! { target_os = "openbsd", target_os = "cygwin", ))] { - pub type MajorRetType = libc::c_uint; - pub type MinorRetType = libc::c_uint; + pub type MajorRetType = c_uint; + pub type MinorRetType = c_uint; } else if #[cfg(any( target_os = "android", target_os = "dragonfly", @@ -129,7 +129,7 @@ fn test_openbsd_like() { ))] #[test] fn test_fbsd12_like() { - if std::mem::size_of::() >= 8 { + if size_of::() >= 8 { for major_exp in [0, 16, 24, 31] { for major in [(1 << major_exp) - 1, (1 << major_exp)] { for minor_exp in [1, 8, 16, 24, 31] { From a598506f0592445b5e98055e3d6c48dd2bb7fa6f Mon Sep 17 00:00:00 2001 From: Yuri Astrakhan Date: Mon, 14 Apr 2025 21:33:10 -0400 Subject: [PATCH 0634/1228] chore: apply some clippy lints (backport ) [ drop changes around the FreeBSD version in build.rs since the logic isn't the same - Trevor ] (cherry picked from commit a283b9e66d4a8e9371b0aa69d8534010a1c7d9e7) --- Cargo.toml | 28 +++++++++------ build.rs | 36 ++++++++++--------- src/fuchsia/mod.rs | 6 ++-- src/unix/aix/mod.rs | 4 +-- src/unix/bsd/apple/mod.rs | 6 ++-- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/mod.rs | 6 ++-- src/unix/bsd/mod.rs | 4 +-- src/unix/bsd/netbsdlike/netbsd/mod.rs | 4 +-- src/unix/bsd/netbsdlike/openbsd/mod.rs | 2 +- src/unix/haiku/mod.rs | 4 +-- src/unix/hurd/mod.rs | 6 ++-- src/unix/linux_like/android/mod.rs | 2 +- src/unix/linux_like/emscripten/mod.rs | 4 +-- src/unix/linux_like/linux/gnu/b64/mod.rs | 2 +- .../linux_like/linux/gnu/b64/riscv64/mod.rs | 1 + src/unix/linux_like/linux/gnu/mod.rs | 6 ++-- src/unix/linux_like/linux/mod.rs | 32 +++++++---------- src/unix/linux_like/mod.rs | 8 ++--- src/unix/nto/mod.rs | 4 +-- src/unix/solarish/compat.rs | 6 ++-- src/unix/solarish/mod.rs | 4 +-- src/vxworks/mod.rs | 4 +-- 23 files changed, 90 insertions(+), 91 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 88d748dc549a2..0f6a6a7e54b88 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -159,15 +159,21 @@ members = [ unused_qualifications = "allow" [lints.clippy] -missing_safety_doc = "allow" +# Enable pedantic lints - use this manually once in a while, but don't enable by default +# pedantic = { level = "warn", priority = -1 } -# FIXME(clippy): all these are default lints and should probably be fixed -identity_op = "allow" -if_same_then_else = "allow" -non_minimal_cfg = "allow" -precedence = "allow" -redundant_field_names = "allow" -redundant_static_lifetimes = "allow" -unnecessary_cast = "allow" -unused_unit = "allow" -zero_ptr = "allow" +# We are okay with the current state of these lints +explicit_iter_loop = "warn" +identity_op = "allow" # some expressions like `0 | x` are clearer for bit ops +manual_assert = "warn" +map_unwrap_or = "warn" +missing_safety_doc = "allow" # safety? in libc? seriously? +non_minimal_cfg = "allow" # for some reason cfg_if! sometimes trigger this +ptr_as_ptr = "warn" +unnecessary_semicolon = "warn" + +# FIXME(clippy): these should be fixed if possible +expl_impl_clone_on_copy = "allow" +uninlined_format_args = "allow" +unnecessary_cast = "allow" # some casts like `as usize` are only needed for some targets +used_underscore_binding = "allow" diff --git a/build.rs b/build.rs index 2fc84aa6b8d33..bcb9495e4502e 100644 --- a/build.rs +++ b/build.rs @@ -4,7 +4,7 @@ use std::{env, str}; // List of cfgs this build script is allowed to set. The list is needed to support check-cfg, as we // need to know all the possible cfgs that this script will set. If you need to set another cfg // make sure to add it to this list as well. -const ALLOWED_CFGS: &'static [&'static str] = &[ +const ALLOWED_CFGS: &[&str] = &[ "emscripten_old_stat_abi", "espidf_time32", "freebsd10", @@ -25,7 +25,7 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ ]; // Extra values to allow for check-cfg. -const CHECK_CFG_EXTRA: &'static [(&'static str, &'static [&'static str])] = &[ +const CHECK_CFG_EXTRA: &[(&str, &[&str])] = &[ ( "target_os", &[ @@ -169,12 +169,11 @@ fn rustc_version_cmd(is_clippy_driver: bool) -> Output { let output = cmd.output().expect("Failed to get rustc version"); - if !output.status.success() { - panic!( - "failed to run rustc: {}", - String::from_utf8_lossy(output.stderr.as_slice()) - ); - } + assert!( + output.status.success(), + "failed to run rustc: {}", + String::from_utf8_lossy(output.stderr.as_slice()) + ); output } @@ -201,9 +200,11 @@ fn rustc_minor_nightly() -> (u32, bool) { let mut pieces = version.split('.'); - if pieces.next() != Some("rustc 1") { - panic!("Failed to get rustc version"); - } + assert_eq!( + pieces.next(), + Some("rustc 1"), + "Failed to get rustc version" + ); let minor = pieces.next(); @@ -213,9 +214,9 @@ fn rustc_minor_nightly() -> (u32, bool) { // since a nightly build should either come from CI // or a git checkout let nightly_raw = otry!(pieces.next()).split('-').nth(1); - let nightly = nightly_raw - .map(|raw| raw.starts_with("dev") || raw.starts_with("nightly")) - .unwrap_or(false); + let nightly = nightly_raw.map_or(false, |raw| { + raw.starts_with("dev") || raw.starts_with("nightly") + }); let minor = otry!(otry!(minor).parse().ok()); (minor, nightly) @@ -266,8 +267,9 @@ fn emcc_version_code() -> Option { } fn set_cfg(cfg: &str) { - if !ALLOWED_CFGS.contains(&cfg) { - panic!("trying to set cfg {cfg}, but it is not in ALLOWED_CFGS"); - } + assert!( + ALLOWED_CFGS.contains(&cfg), + "trying to set cfg {cfg}, but it is not in ALLOWED_CFGS", + ); println!("cargo:rustc-cfg={cfg}"); } diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index f065eaa3aec8b..c09708f71a0f6 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -3429,9 +3429,9 @@ f! { pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if ((*cmsg).cmsg_len as size_t) < mem::size_of::() { - 0 as *mut cmsghdr + core::ptr::null_mut::() } else if __CMSG_NEXT(cmsg).add(mem::size_of::()) >= __MHDR_END(mhdr) { - 0 as *mut cmsghdr + core::ptr::null_mut::() } else { __CMSG_NEXT(cmsg).cast() } @@ -3441,7 +3441,7 @@ f! { if (*mhdr).msg_controllen as size_t >= mem::size_of::() { (*mhdr).msg_control.cast() } else { - 0 as *mut cmsghdr + core::ptr::null_mut::() } } diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 8cca9bb3c20d6..a8bfca7d2266f 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -2442,7 +2442,7 @@ f! { if (*mhdr).msg_controllen as usize >= mem::size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { - 0 as *mut cmsghdr + core::ptr::null_mut::() } } @@ -2453,7 +2453,7 @@ f! { if (cmsg as usize + (*cmsg).cmsg_len as usize + mem::size_of::()) > ((*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize) { - 0 as *mut cmsghdr + core::ptr::null_mut::() } else { // AIX does not have any alignment/padding for ancillary data, so we don't need _CMSG_ALIGN here. (cmsg as usize + (*cmsg).cmsg_len as usize) as *mut cmsghdr diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 9c76ed7c01cc5..ebc841a99c36e 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1691,7 +1691,7 @@ impl siginfo_t { si_value: crate::sigval, } - (*(self as *const siginfo_t as *const siginfo_timer)).si_value + (*(self as *const siginfo_t).cast::()).si_value } pub unsafe fn si_pid(&self) -> crate::pid_t { @@ -5635,7 +5635,7 @@ pub const VMADDR_PORT_ANY: c_uint = 0xFFFFFFFF; const fn __DARWIN_ALIGN32(p: usize) -> usize { const __DARWIN_ALIGNBYTES32: usize = mem::size_of::() - 1; - p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32 + (p + __DARWIN_ALIGNBYTES32) & !__DARWIN_ALIGNBYTES32 } pub const THREAD_EXTENDED_POLICY_COUNT: mach_msg_type_number_t = @@ -5710,7 +5710,7 @@ f! { pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { return crate::CMSG_FIRSTHDR(mhdr); - }; + } let cmsg_len = (*cmsg).cmsg_len as usize; let next = cmsg as usize + __DARWIN_ALIGN32(cmsg_len); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 5dbe69e564b33..5534c1390b911 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -1560,7 +1560,7 @@ f! { if next <= max { (cmsg as usize + _CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr } else { - 0 as *mut cmsghdr + core::ptr::null_mut::() } } diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 11830db22ab5a..7d6b876d6a15a 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -4930,7 +4930,7 @@ const_fn! { f! { pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).offset(_ALIGN(mem::size_of::()) as isize) + (cmsg as *mut c_uchar).add(_ALIGN(mem::size_of::())) } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { @@ -4945,7 +4945,7 @@ f! { cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { - 0 as *mut cmsghdr + core::ptr::null_mut::() } else { (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr } @@ -4992,14 +4992,12 @@ f! { let bitset_bits = 8 * mem::size_of::(); let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); cpuset.__bits[idx] |= 1 << offset; - () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpuset_t) -> () { let bitset_bits = 8 * mem::size_of::(); let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); cpuset.__bits[idx] &= !(1 << offset); - () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpuset_t) -> bool { diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 674fdc088d2b9..1f84950fa1945 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -596,7 +596,7 @@ pub const RTAX_BRD: c_int = 7; f! { pub fn CMSG_FIRSTHDR(mhdr: *const crate::msghdr) -> *mut cmsghdr { if (*mhdr).msg_controllen as usize >= mem::size_of::() { - (*mhdr).msg_control as *mut cmsghdr + (*mhdr).msg_control.cast::() } else { core::ptr::null_mut() } @@ -623,7 +623,7 @@ f! { } pub fn FD_ZERO(set: *mut fd_set) -> () { - for slot in (*set).fds_bits.iter_mut() { + for slot in &mut (*set).fds_bits { *slot = 0; } } diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 9f44907a98b7c..8633ee3dd5c08 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2423,7 +2423,7 @@ const_fn! { f! { pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).offset(_ALIGN(mem::size_of::()) as isize) + (cmsg as *mut c_uchar).add(_ALIGN(mem::size_of::())) } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { @@ -2438,7 +2438,7 @@ f! { cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { - 0 as *mut cmsghdr + core::ptr::null_mut::() } else { (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr } diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index ff3a99fcc7db2..bd18311f5d20b 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1957,7 +1957,7 @@ f! { cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { - 0 as *mut cmsghdr + core::ptr::null_mut::() } else { (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr } diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index ef48fa6f9be4b..a47aac2a4fa4d 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1572,7 +1572,7 @@ f! { if (*mhdr).msg_controllen as usize >= mem::size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { - 0 as *mut cmsghdr + core::ptr::null_mut::() } } @@ -1597,7 +1597,7 @@ f! { + CMSG_ALIGN(mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { - 0 as *mut cmsghdr + core::ptr::null_mut::() } else { (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr } diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 961710b5ae76d..f32975bac4544 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -3444,7 +3444,7 @@ f! { if (*mhdr).msg_controllen as usize >= mem::size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { - 0 as *mut cmsghdr + core::ptr::null_mut::() } } @@ -3462,14 +3462,14 @@ f! { pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if ((*cmsg).cmsg_len as usize) < mem::size_of::() { - return 0 as *mut cmsghdr; + return core::ptr::null_mut::(); }; let next = (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if (next.offset(1)) as usize > max || next as usize + CMSG_ALIGN((*next).cmsg_len as usize) > max { - 0 as *mut cmsghdr + core::ptr::null_mut::() } else { next as *mut cmsghdr } diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 3d24d5d8fb73f..2aa47cda07b09 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3653,7 +3653,7 @@ f! { let next = (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if (next.offset(1)) as usize > max { - 0 as *mut cmsghdr + core::ptr::null_mut::() } else { next as *mut cmsghdr } diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 462a944b1e2b1..46d0d0f007433 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -1412,12 +1412,12 @@ pub const SOMAXCONN: c_int = 128; f! { pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if ((*cmsg).cmsg_len as usize) < mem::size_of::() { - return 0 as *mut cmsghdr; + return core::ptr::null_mut::(); }; let next = (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if (next.offset(1)) as usize > max { - 0 as *mut cmsghdr + core::ptr::null_mut::() } else { next as *mut cmsghdr } diff --git a/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs index 9d7608f67f132..5927e6c991725 100644 --- a/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -119,7 +119,7 @@ cfg_if! { } else if #[cfg(any(target_arch = "s390x"))] { mod s390x; pub use self::s390x::*; - } else if #[cfg(any(target_arch = "x86_64"))] { + } else if #[cfg(target_arch = "x86_64")] { mod x86_64; pub use self::x86_64::*; } else if #[cfg(any(target_arch = "riscv64"))] { diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index 578057ce58ed2..d689bb14c3ebf 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -601,6 +601,7 @@ pub const REG_NARGS: usize = 8; pub const COMPAT_HWCAP_ISA_I: c_ulong = 1 << (b'I' - b'A'); pub const COMPAT_HWCAP_ISA_M: c_ulong = 1 << (b'M' - b'A'); +#[allow(clippy::eq_op)] pub const COMPAT_HWCAP_ISA_A: c_ulong = 1 << (b'A' - b'A'); pub const COMPAT_HWCAP_ISA_F: c_ulong = 1 << (b'F' - b'A'); pub const COMPAT_HWCAP_ISA_D: c_ulong = 1 << (b'D' - b'A'); diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 84d7c24742c37..5ba13dd6fc2c4 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -447,7 +447,7 @@ impl siginfo_t { _si_code: c_int, si_addr: *mut c_void, } - (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr + (*(self as *const siginfo_t).cast::()).si_addr } pub unsafe fn si_value(&self) -> crate::sigval { @@ -460,7 +460,7 @@ impl siginfo_t { _si_overrun: c_int, si_sigval: crate::sigval, } - (*(self as *const siginfo_t as *const siginfo_timer)).si_sigval + (*(self as *const siginfo_t).cast::()).si_sigval } } @@ -498,7 +498,7 @@ struct siginfo_f { impl siginfo_t { unsafe fn sifields(&self) -> &sifields { - &(*(self as *const siginfo_t as *const siginfo_f)).sifields + &(*(self as *const siginfo_t).cast::()).sifields } pub unsafe fn si_pid(&self) -> crate::pid_t { diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index c0989d2d74c7d..2bfe8f7be3be8 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -6080,16 +6080,16 @@ f! { pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if ((*cmsg).cmsg_len as usize) < size_of::() { - return 0 as *mut cmsghdr; - }; + return core::ptr::null_mut::(); + } let next = (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if (next.wrapping_offset(1)) as usize > max || next as usize + super::CMSG_ALIGN((*next).cmsg_len as usize) > max { - 0 as *mut cmsghdr + core::ptr::null_mut::() } else { - next as *mut cmsghdr + next } } @@ -6100,7 +6100,7 @@ f! { } pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { - for slot in cpuset.bits.iter_mut() { + for slot in &mut cpuset.bits { *slot = 0; } } @@ -6109,14 +6109,12 @@ f! { let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; - () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); - () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { @@ -6128,7 +6126,7 @@ f! { pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int { let mut s: u32 = 0; let size_of_mask = mem::size_of_val(&cpuset.bits[0]); - for i in cpuset.bits[..(size / size_of_mask)].iter() { + for i in &cpuset.bits[..(size / size_of_mask)] { s += i.count_ones(); } s as c_int @@ -6143,7 +6141,7 @@ f! { } pub fn SCTP_PR_INDEX(policy: c_int) -> c_int { - policy >> 4 - 1 + policy >> (4 - 1) } pub fn SCTP_PR_POLICY(policy: c_int) -> c_int { @@ -6153,7 +6151,6 @@ f! { pub fn SCTP_PR_SET_POLICY(flags: &mut c_int, policy: c_int) -> () { *flags &= !SCTP_PR_SCTP_MASK; *flags |= policy; - () } pub fn IPTOS_TOS(tos: u8) -> u8 { @@ -6214,20 +6211,15 @@ f! { pub fn BPF_STMT(code: __u16, k: __u32) -> sock_filter { sock_filter { - code: code, + code, jt: 0, jf: 0, - k: k, + k, } } pub fn BPF_JUMP(code: __u16, k: __u32, jt: __u8, jf: __u8) -> sock_filter { - sock_filter { - code: code, - jt: jt, - jf: jf, - k: k, - } + sock_filter { code, jt, jf, k } } pub fn ELF32_R_SYM(val: Elf32_Word) -> Elf32_Word { @@ -6239,7 +6231,7 @@ f! { } pub fn ELF32_R_INFO(sym: Elf32_Word, t: Elf32_Word) -> Elf32_Word { - sym << 8 + t & 0xff + sym << (8 + t) & 0xff } pub fn ELF64_R_SYM(val: Elf64_Xword) -> Elf64_Xword { @@ -6251,7 +6243,7 @@ f! { } pub fn ELF64_R_INFO(sym: Elf64_Xword, t: Elf64_Xword) -> Elf64_Xword { - sym << 32 + t + sym << (32 + t) } } diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 9c7766a1407d1..c730947529fb6 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1700,16 +1700,16 @@ cfg_if! { const_fn! { {const} fn CMSG_ALIGN(len: usize) -> usize { - len + mem::size_of::() - 1 & !(mem::size_of::() - 1) + (len + mem::size_of::() - 1) & !(mem::size_of::() - 1) } } f! { pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { if (*mhdr).msg_controllen as usize >= mem::size_of::() { - (*mhdr).msg_control as *mut cmsghdr + (*mhdr).msg_control.cast::() } else { - 0 as *mut cmsghdr + core::ptr::null_mut::() } } @@ -1746,7 +1746,7 @@ f! { } pub fn FD_ZERO(set: *mut fd_set) -> () { - for slot in (*set).fds_bits.iter_mut() { + for slot in &mut (*set).fds_bits { *slot = 0; } } diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 631972b144676..209fd3b695e99 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -2802,7 +2802,7 @@ f! { if (*mhdr).msg_controllen as usize >= mem::size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { - 0 as *mut cmsghdr + core::ptr::null_mut::() } } @@ -2810,7 +2810,7 @@ f! { let msg = _CMSG_ALIGN((*cmsg).cmsg_len as usize); let next = cmsg as usize + msg + _CMSG_ALIGN(mem::size_of::()); if next > (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize { - 0 as *mut cmsghdr + core::ptr::null_mut::() } else { (cmsg as usize + msg) as *mut cmsghdr } diff --git a/src/unix/solarish/compat.rs b/src/unix/solarish/compat.rs index 649d6ac9a1536..80d2835977f59 100644 --- a/src/unix/solarish/compat.rs +++ b/src/unix/solarish/compat.rs @@ -50,7 +50,7 @@ unsafe fn bail(fdm: c_int, fds: c_int) -> c_int { crate::close(fdm); } *___errno() = e; - return -1; + -1 } #[cfg(target_os = "illumos")] @@ -184,7 +184,7 @@ pub unsafe fn getpwent_r( ) -> c_int { let old_errno = *crate::___errno(); *crate::___errno() = 0; - *result = native_getpwent_r(pwd, buf, min(buflen, c_int::max_value() as size_t) as c_int); + *result = native_getpwent_r(pwd, buf, min(buflen, c_int::MAX as size_t) as c_int); let ret = if (*result).is_null() { *crate::___errno() @@ -204,7 +204,7 @@ pub unsafe fn getgrent_r( ) -> c_int { let old_errno = *crate::___errno(); *crate::___errno() = 0; - *result = native_getgrent_r(grp, buf, min(buflen, c_int::max_value() as size_t) as c_int); + *result = native_getgrent_r(grp, buf, min(buflen, c_int::MAX as size_t) as c_int); let ret = if (*result).is_null() { *crate::___errno() diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 652d5263a5fd0..605e35ca53bf9 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -2483,7 +2483,7 @@ f! { pub fn CMSG_FIRSTHDR(mhdr: *const crate::msghdr) -> *mut cmsghdr { if ((*mhdr).msg_controllen as usize) < size_of::() { - 0 as *mut cmsghdr + core::ptr::null_mut::() } else { (*mhdr).msg_control as *mut cmsghdr } @@ -2497,7 +2497,7 @@ f! { _CMSG_HDR_ALIGN(cmsg as usize + (*cmsg).cmsg_len as usize + size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { - 0 as *mut cmsghdr + core::ptr::null_mut::() } else { _CMSG_HDR_ALIGN(cmsg as usize + (*cmsg).cmsg_len as usize) as *mut cmsghdr } diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index cdca84e471e55..793379dcdd792 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -1132,7 +1132,7 @@ f! { if next <= max { (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr } else { - 0 as *mut cmsghdr + core::ptr::null_mut::() } } @@ -1140,7 +1140,7 @@ f! { if (*mhdr).msg_controllen as usize > 0 { (*mhdr).msg_control as *mut cmsghdr } else { - 0 as *mut cmsghdr + core::ptr::null_mut::() } } From 2bb4ceaeb89e55cd0398aae1d269a2a1b55603bc Mon Sep 17 00:00:00 2001 From: rusty-snake <41237666+rusty-snake@users.noreply.github.com> Date: Thu, 1 May 2025 11:22:57 +0200 Subject: [PATCH 0635/1228] Add constants and types for nsfs ioctls (backport ) (cherry picked from commit 0d7f0ceabe7a1b64df519032f1ebdb70faced316) --- libc-test/build.rs | 21 +++++++++++++++------ libc-test/semver/linux.txt | 13 +++++++++++++ src/unix/linux_like/linux/mod.rs | 28 ++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 6 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index bcbe2dc3356f3..1ac7baf8ca91f 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3899,6 +3899,7 @@ fn test_linux(target: &str) { "linux/netfilter_ipv6.h", "linux/netfilter_ipv6/ip6_tables.h", "linux/netlink.h", + "linux/nsfs.h", "linux/openat2.h", // FIXME(linux): some items require Linux >= 5.6: "linux/ptp_clock.h", @@ -4192,6 +4193,9 @@ fn test_linux(target: &str) { // FIXME(linux): Requires >= 6.12 kernel headers. "dmabuf_cmsg" | "dmabuf_token" => true, + // FIXME(linux): Requires >= 6.12 kernel headers. + "mnt_ns_info" => true, + // FIXME(linux): Requires >= 6.4 kernel headers. "ptrace_sud_config" => true, @@ -4597,6 +4601,11 @@ fn test_linux(target: &str) { true } + // FIXME(linux): Requires >= 6.11 kernel headers. + "NS_GET_MNTNS_ID" | "NS_GET_PID_FROM_PIDNS" | "NS_GET_TGID_FROM_PIDNS" | "NS_GET_PID_IN_PIDNS" | "NS_GET_TGID_IN_PIDNS" => true, + // FIXME(linux): Requires >= 6.12 kernel headers. + "MNT_NS_INFO_SIZE_VER0" | "NS_MNT_GET_INFO" | "NS_MNT_GET_NEXT" | "NS_MNT_GET_PREV" => true, + // FIXME(linux): Requires >= 6.6 kernel headers. "SYS_fchmodat2" => true, @@ -4952,8 +4961,8 @@ fn test_linux_like_apis(target: &str) { "strerror_r" => false, _ => true, }) - .skip_const(|_| true) - .skip_struct(|_| true); + .skip_const(|_| true) + .skip_struct(|_| true); cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_strerror_r.rs"); } @@ -5027,10 +5036,10 @@ fn test_linux_like_apis(target: &str) { .skip_const(|_| true) .skip_struct(|_| true) .skip_const(move |name| match name { - "IPV6_FLOWINFO" - | "IPV6_FLOWLABEL_MGR" - | "IPV6_FLOWINFO_SEND" - | "IPV6_FLOWINFO_FLOWLABEL" + "IPV6_FLOWINFO" + | "IPV6_FLOWLABEL_MGR" + | "IPV6_FLOWINFO_SEND" + | "IPV6_FLOWINFO_FLOWLABEL" | "IPV6_FLOWINFO_PRIORITY" => false, _ => true, }) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 011fba0d85b6b..533adc6ebbcae 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1667,6 +1667,7 @@ MMAP_PAGE_ZERO MNT_DETACH MNT_EXPIRE MNT_FORCE +MNT_NS_INFO_SIZE_VER0 MODULE_INIT_IGNORE_MODVERSIONS MODULE_INIT_IGNORE_VERMAGIC MON_1 @@ -2022,6 +2023,18 @@ NLM_F_REQUEST NLM_F_ROOT NOEXPR NOSTR +NS_GET_MNTNS_ID +NS_GET_NSTYPE +NS_GET_OWNER_UID +NS_GET_PARENT +NS_GET_PID_FROM_PIDNS +NS_GET_PID_IN_PIDNS +NS_GET_TGID_FROM_PIDNS +NS_GET_TGID_IN_PIDNS +NS_GET_USERNS +NS_MNT_GET_INFO +NS_MNT_GET_NEXT +NS_MNT_GET_PREV NTF_PROXY NTF_ROUTER NTF_SELF diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 2bfe8f7be3be8..e224666dd2847 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1376,6 +1376,13 @@ s! { pub userns_fd: crate::__u64, } + // linux/nsfs.h + pub struct mnt_ns_info { + pub size: crate::__u32, + pub nr_mounts: crate::__u32, + pub mnt_ns_id: crate::__u64, + } + // linux/pidfd.h pub struct pidfd_info { @@ -3211,6 +3218,27 @@ pub const MREMAP_MAYMOVE: c_int = 1; pub const MREMAP_FIXED: c_int = 2; pub const MREMAP_DONTUNMAP: c_int = 4; +// linux/nsfs.h +const NSIO: c_uint = 0xb7; + +pub const NS_GET_USERNS: c_uint = _IO(NSIO, 0x1); +pub const NS_GET_PARENT: c_uint = _IO(NSIO, 0x2); +pub const NS_GET_NSTYPE: c_uint = _IO(NSIO, 0x3); +pub const NS_GET_OWNER_UID: c_uint = _IO(NSIO, 0x4); + +pub const NS_GET_MNTNS_ID: c_uint = _IOR::<__u64>(NSIO, 0x5); + +pub const NS_GET_PID_FROM_PIDNS: c_uint = _IOR::(NSIO, 0x6); +pub const NS_GET_TGID_FROM_PIDNS: c_uint = _IOR::(NSIO, 0x7); +pub const NS_GET_PID_IN_PIDNS: c_uint = _IOR::(NSIO, 0x8); +pub const NS_GET_TGID_IN_PIDNS: c_uint = _IOR::(NSIO, 0x9); + +pub const MNT_NS_INFO_SIZE_VER0: c_uint = 16; + +pub const NS_MNT_GET_INFO: c_uint = _IOR::(NSIO, 10); +pub const NS_MNT_GET_NEXT: c_uint = _IOR::(NSIO, 11); +pub const NS_MNT_GET_PREV: c_uint = _IOR::(NSIO, 12); + // linux/pidfd.h pub const PIDFD_NONBLOCK: c_uint = O_NONBLOCK as c_uint; pub const PIDFD_THREAD: c_uint = O_EXCL as c_uint; From e9fc5808c55555e3b3181dea340891d2e87ec086 Mon Sep 17 00:00:00 2001 From: WANG Rui Date: Wed, 7 May 2025 10:30:38 +0800 Subject: [PATCH 0636/1228] musl: loongarch64: Define MADV_SOFT_OFFLINE constant (backport ) (cherry picked from commit 054c95888c2b20b341166ff49a1252c180041005) --- libc-test/semver/linux-gnu-loongarch64.txt | 1 - libc-test/semver/linux-loongarch64.txt | 1 + src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs | 2 ++ 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/libc-test/semver/linux-gnu-loongarch64.txt b/libc-test/semver/linux-gnu-loongarch64.txt index ec6595b79b76f..ccf233e6e09c3 100644 --- a/libc-test/semver/linux-gnu-loongarch64.txt +++ b/libc-test/semver/linux-gnu-loongarch64.txt @@ -10,7 +10,6 @@ KEYCTL_CAPS0_RESTRICT_KEYRING KEYCTL_CAPS1_NS_KEYRING_NAME KEYCTL_CAPS1_NS_KEY_TAG KEYCTL_MOVE -MADV_SOFT_OFFLINE PTRACE_GETFPREGS PTRACE_GETFPXREGS PTRACE_GETREGS diff --git a/libc-test/semver/linux-loongarch64.txt b/libc-test/semver/linux-loongarch64.txt index 1b50e7248b7fe..7f0446c76abd8 100644 --- a/libc-test/semver/linux-loongarch64.txt +++ b/libc-test/semver/linux-loongarch64.txt @@ -48,6 +48,7 @@ BPF_XOR CIBAUD FICLONE FICLONERANGE +MADV_SOFT_OFFLINE MAP_SYNC NFT_MSG_DELOBJ NFT_MSG_GETOBJ diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index e96bcbb2788e4..55ffc20c31dbd 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -532,6 +532,8 @@ pub const ENOTRECOVERABLE: c_int = 131; pub const EHWPOISON: c_int = 133; pub const ERFKILL: c_int = 132; +pub const MADV_SOFT_OFFLINE: c_int = 101; + pub const SA_ONSTACK: c_int = 0x08000000; pub const SA_SIGINFO: c_int = 0x00000004; pub const SA_NOCLDWAIT: c_int = 0x00000002; From f1e459f1846fd6266f71aefcfbe9fef7a7abb56d Mon Sep 17 00:00:00 2001 From: Mattias Nissler Date: Tue, 6 May 2025 01:05:23 -0700 Subject: [PATCH 0637/1228] Add MADV_SOFT_OFFLINE definition for RISC-V musl targets (backport ) (cherry picked from commit 118a904c4e690327d2ca3a633822ac1171cae5fa) --- libc-test/semver/linux-riscv64gc.txt | 1 + src/unix/linux_like/linux/musl/b32/riscv32/mod.rs | 1 + src/unix/linux_like/linux/musl/b64/riscv64/mod.rs | 1 + 3 files changed, 3 insertions(+) diff --git a/libc-test/semver/linux-riscv64gc.txt b/libc-test/semver/linux-riscv64gc.txt index 09519e9dfbe7e..01609e899a709 100644 --- a/libc-test/semver/linux-riscv64gc.txt +++ b/libc-test/semver/linux-riscv64gc.txt @@ -24,6 +24,7 @@ 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 diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index 9c0525cb167b2..9b76105969343 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -246,6 +246,7 @@ pub const O_DIRECT: c_int = 16384; pub const O_DIRECTORY: c_int = 65536; pub const O_LARGEFILE: c_int = 0o0100000; pub const O_NOFOLLOW: c_int = 131072; +pub const MADV_SOFT_OFFLINE: c_int = 101; pub const MAP_HUGETLB: c_int = 262144; pub const MAP_LOCKED: c_int = 8192; pub const MAP_NORESERVE: c_int = 16384; diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index 2b9b394d51d17..115ec076f6a53 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -572,6 +572,7 @@ pub const POLLWRBAND: c_short = 0x200; pub const SOCK_STREAM: c_int = 1; pub const SOCK_DGRAM: c_int = 2; +pub const MADV_SOFT_OFFLINE: c_int = 101; pub const MAP_ANON: c_int = 0x0020; pub const MAP_GROWSDOWN: c_int = 0x0100; pub const MAP_DENYWRITE: c_int = 0x0800; From c469a85507fa25c5851f8e3277fad44d51d356b7 Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Sun, 4 May 2025 04:50:21 +0000 Subject: [PATCH 0638/1228] ci: install-musl: upgrade to 1.2.3 This will be chosen based on the RUST_LIBC_UNSTABLE_MUSL_V1_2_3 variable. Co-authored-by: Daniel Frampton (backport ) (cherry picked from commit e7762a8fdba09b1dd59a29b1915c60e862ec6a57) --- .github/workflows/ci.yaml | 12 ++++++++++++ ci/install-musl.sh | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9b98d1d83e8e8..84d8d1a1f436a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -196,6 +196,18 @@ jobs: env: RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64 artifact-tag: offset-bits64 + - target: aarch64-unknown-linux-musl + env: + RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 + - target: arm-unknown-linux-musleabihf + env: + RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 + - target: i686-unknown-linux-musl + env: + RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 + - target: loongarch64-unknown-linux-musl + env: + RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 # FIXME(ppc): SIGILL running tests, see # https://github.com/rust-lang/libc/pull/4254#issuecomment-2636288713 # - target: powerpc-unknown-linux-gnu diff --git a/ci/install-musl.sh b/ci/install-musl.sh index 416874d916f3e..8567c0848675a 100755 --- a/ci/install-musl.sh +++ b/ci/install-musl.sh @@ -10,7 +10,7 @@ case ${1} in musl_version=1.2.5 ;; *) - musl_version=1.1.24 + [ -n "${RUST_LIBC_UNSTABLE_MUSL_V1_2_3:-}" ] && musl_version=1.2.3 || musl_version=1.1.24 ;; esac From a28ee2b2d93927a57dd9860db189b7cad255ce15 Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Sat, 3 May 2025 09:18:40 +0000 Subject: [PATCH 0639/1228] libc-test: update conditions for workarounds for musl <1.2.3 This commit gates various workarounds of older musl versions behind the RUST_LIBC_UNSTABLE_MUSL_V1_2_3 variable. (backport ) (cherry picked from commit 85a7c8536d6d6a56257eb2755b28a1dc41c1cd0f) --- libc-test/build.rs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 1ac7baf8ca91f..cf432fd19fa51 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3730,6 +3730,9 @@ fn test_linux(target: &str) { let wasm32 = target.contains("wasm32"); let uclibc = target.contains("uclibc"); + let musl_v1_2_3 = env::var("RUST_LIBC_UNSTABLE_MUSL_V1_2_3").is_ok(); + let old_musl = musl && !musl_v1_2_3; + let mut cfg = ctest_cfg(); cfg.define("_GNU_SOURCE", None); // This macro re-defines fscanf,scanf,sscanf to link to the symbols that are @@ -4300,9 +4303,9 @@ fn test_linux(target: &str) { if name == "PR_GET_MDWE" || name == "PR_MDWE_NO_INHERIT" || name == "PR_MDWE_REFUSE_EXEC_GAIN" || name == "PR_SET_MDWE" { return true; } - // FIXME(musl): Requires musl >= 1.2 - if name == "SO_PREFER_BUSY_POLL" - || name == "SO_BUSY_POLL_BUDGET" + // Requires musl >= 1.2 + if old_musl && (name == "SO_PREFER_BUSY_POLL" + || name == "SO_BUSY_POLL_BUDGET") { return true; } @@ -4734,18 +4737,18 @@ fn test_linux(target: &str) { "getnameinfo" if uclibc => true, // FIXME(musl): This needs musl 1.2.2 or later. - "gettid" if musl => true, + "gettid" if old_musl => true, // Needs glibc 2.33 or later. "mallinfo2" => true, - "reallocarray" if musl => true, + "reallocarray" if old_musl => true, // Not defined in uclibc as of 1.0.34 "gettid" if uclibc => true, // Needs musl 1.2.3 or later. - "pthread_getname_np" if musl => true, + "pthread_getname_np" if old_musl => true, // pthread_sigqueue uses sigval, which was initially declared // as a struct but should be defined as a union. However due From b553d1f7e643f9830158d6a66b5647ee3fa4fa85 Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Sat, 3 May 2025 10:21:09 +0000 Subject: [PATCH 0640/1228] musl: Fix O_LARGEFILE constant value. This was accidentally set to 0 in upstream, but fixed in commit b8b729b. If running with prior versions without that commit, this commit effectively backports it. (backport ) (cherry picked from commit 686aa7a3a2ead357a732d018e4295c9a92312132) --- libc-test/build.rs | 4 ++++ src/unix/linux_like/linux/musl/b64/riscv64/mod.rs | 2 +- src/unix/linux_like/linux/musl/b64/x86_64/mod.rs | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index cf432fd19fa51..71758f46432be 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4329,6 +4329,10 @@ fn test_linux(target: &str) { { return true; } + // Values changed in newer musl versions on these arches + if old_musl && (riscv64 || x86_64) && name == "O_LARGEFILE" { + return true; + } } match name { // These constants are not available if gnu headers have been included diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index 115ec076f6a53..cf851c4660113 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -432,7 +432,7 @@ pub const SYS_landlock_restrict_self: c_long = 446; pub const O_APPEND: c_int = 1024; pub const O_DIRECT: c_int = 0x4000; pub const O_DIRECTORY: c_int = 0x10000; -pub const O_LARGEFILE: c_int = 0; +pub const O_LARGEFILE: c_int = 0o100000; pub const O_NOFOLLOW: c_int = 0x20000; pub const O_CREAT: c_int = 64; pub const O_EXCL: c_int = 128; diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index b44b54de65953..a8070cb970755 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -701,7 +701,7 @@ pub const MAP_32BIT: c_int = 0x0040; pub const O_APPEND: c_int = 1024; pub const O_DIRECT: c_int = 0x4000; pub const O_DIRECTORY: c_int = 0x10000; -pub const O_LARGEFILE: c_int = 0; +pub const O_LARGEFILE: c_int = 0o0100000; pub const O_NOFOLLOW: c_int = 0x20000; pub const O_CREAT: c_int = 64; pub const O_EXCL: c_int = 128; From a485516e3b875ec7f35f1dcd1427962bcd8a7623 Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Sat, 3 May 2025 10:54:10 +0000 Subject: [PATCH 0641/1228] Add musl_v1_2_3 feature This feature, controlled by the environment variable RUST_LIBC_UNSTABLE_MUSL_V1_2_3 will control whether breaking changes up to musl v1.2.3 will be reflected (backport ) (cherry picked from commit 2a68f7f9f6139f8930df345ae19697336908e940) --- build.rs | 8 ++++++++ libc-test/build.rs | 3 +++ 2 files changed, 11 insertions(+) diff --git a/build.rs b/build.rs index bcb9495e4502e..2a55a4c07e525 100644 --- a/build.rs +++ b/build.rs @@ -22,6 +22,7 @@ const ALLOWED_CFGS: &[&str] = &[ "libc_ctest", // Corresponds to `__USE_TIME_BITS64` in UAPI "linux_time_bits64", + "musl_v1_2_3" ]; // Extra values to allow for check-cfg. @@ -89,6 +90,13 @@ fn main() { _ => (), } + let musl_v1_2_3 = env::var("RUST_LIBC_UNSTABLE_MUSL_V1_2_3").is_ok(); + println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_MUSL_V1_2_3"); + // loongarch64 and ohos have already updated + if musl_v1_2_3 || target_os == "loongarch64" || target_env == "ohos" { + // FIXME(musl): enable time64 api as well + set_cfg("musl_v1_2_3"); + } let linux_time_bits64 = env::var("RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64").is_ok(); println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64"); if linux_time_bits64 { diff --git a/libc-test/build.rs b/libc-test/build.rs index 71758f46432be..e75f10060e83b 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3734,6 +3734,9 @@ fn test_linux(target: &str) { let old_musl = musl && !musl_v1_2_3; let mut cfg = ctest_cfg(); + if musl_v1_2_3 { + cfg.cfg("musl_v1_2_3", None); + } cfg.define("_GNU_SOURCE", None); // This macro re-defines fscanf,scanf,sscanf to link to the symbols that are // deprecated since glibc >= 2.29. This allows Rust binaries to link against From d63132d42ce8428b442d28e7afd0eb15813cffb6 Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Sat, 3 May 2025 11:27:09 +0000 Subject: [PATCH 0642/1228] musl: fix utmpx struct layout This ut_session has changed from long to int + padding in newer versions. This was already reflected on loongarch64 and ohos - this commit adds this change, and re-enables the test when musl_v1_2_3 is set. Co-authored-by: Ariadne Conill (backport ) (cherry picked from commit 1038c7f1f4dbd6a39b867263dc5478806744f5a0) --- libc-test/build.rs | 4 +-- src/unix/linux_like/linux/musl/mod.rs | 39 ++++++++++----------------- 2 files changed, 16 insertions(+), 27 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index e75f10060e83b..9506da3570a7e 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4897,8 +4897,8 @@ fn test_linux(target: &str) { (struct_ == "statvfs64" && field == "__f_spare") || // the `xsk_tx_metadata_union` field is an anonymous union (struct_ == "xsk_tx_metadata" && field == "xsk_tx_metadata_union") || - // FIXME(musl): After musl 1.2.0, the type becomes `int` instead of `long`. - (struct_ == "utmpx" && field == "ut_session") + // After musl 1.2.0, the type becomes `int` instead of `long`. + (old_musl && struct_ == "utmpx" && field == "ut_session") }); cfg.skip_roundtrip(move |s| match s { diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 5d4d97fafbc8e..efab9deaf6138 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -438,13 +438,6 @@ s_no_extra_traits! { pub __reserved: [c_char; 256], } - // FIXME(musl): musl added paddings and adjusted - // layout in 1.2.0 but our CI is still 1.1.24. - // So, I'm leaving some fields as cfg for now. - // ref. https://github.com/bminor/musl/commit/ - // 1e7f0fcd7ff2096904fd93a2ee6d12a2392be392 - // - // OpenHarmony uses the musl 1.2 layout. pub struct utmpx { pub ut_type: c_short, __ut_pad1: c_short, @@ -455,31 +448,24 @@ s_no_extra_traits! { pub ut_host: [c_char; 256], pub ut_exit: __exit_status, - #[cfg(target_env = "musl")] - #[cfg(not(target_arch = "loongarch64"))] + #[cfg(not(musl_v1_2_3))] + #[deprecated( + since = "0.2.173", + note = "The ABI of this field has changed from c_long to c_int with padding, \ + we'll follow that change in the future release. See #4443 for more info." + )] pub ut_session: c_long, - #[cfg(target_env = "musl")] - #[cfg(target_arch = "loongarch64")] - pub ut_session: c_int, - - #[cfg(target_env = "musl")] - #[cfg(target_arch = "loongarch64")] + #[cfg(musl_v1_2_3)] + #[cfg(not(target_endian = "little"))] __ut_pad2: c_int, - #[cfg(target_env = "ohos")] - #[cfg(target_endian = "little")] + #[cfg(musl_v1_2_3)] pub ut_session: c_int, - #[cfg(target_env = "ohos")] - #[cfg(target_endian = "little")] - __ut_pad2: c_int, - #[cfg(target_env = "ohos")] - #[cfg(not(target_endian = "little"))] + #[cfg(musl_v1_2_3)] + #[cfg(target_endian = "little")] __ut_pad2: c_int, - #[cfg(target_env = "ohos")] - #[cfg(not(target_endian = "little"))] - pub ut_session: c_int, pub ut_tv: crate::timeval, pub ut_addr_v6: [c_uint; 4], @@ -555,6 +541,7 @@ cfg_if! { } impl PartialEq for utmpx { + #[allow(deprecated)] fn eq(&self, other: &utmpx) -> bool { self.ut_type == other.ut_type //&& self.__ut_pad1 == other.__ut_pad1 @@ -579,6 +566,7 @@ cfg_if! { impl Eq for utmpx {} impl fmt::Debug for utmpx { + #[allow(deprecated)] fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("utmpx") .field("ut_type", &self.ut_type) @@ -599,6 +587,7 @@ cfg_if! { } impl hash::Hash for utmpx { + #[allow(deprecated)] fn hash(&self, state: &mut H) { self.ut_type.hash(state); //self.__ut_pad1.hash(state); From 37cde5af0a7a52e1aadadcfa38d28514d3bb75a7 Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Sat, 3 May 2025 11:46:22 +0000 Subject: [PATCH 0643/1228] musl: struct tcp_info: add new fields since 1.2.0/1.2.2 This reflects the upstream commits, 5e0c9f2 and d4f2981, which reflect changes in linux 5.4 and 5.5 respectively As mentioned in the comments, this is possible now as the CI musl version has updated and the headers are newer. (backport ) (cherry picked from commit fb4212a6bd14f0378a3c6fcdd6f8bd64cc79a8fb) --- libc-test/build.rs | 3 +++ src/unix/linux_like/linux/musl/mod.rs | 8 -------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 9506da3570a7e..5e6de77549079 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4205,6 +4205,9 @@ fn test_linux(target: &str) { // FIXME(linux): Requires >= 6.4 kernel headers. "ptrace_sud_config" => true, + // Struct has changed for new musl versions + "tcp_info" if old_musl => true, + _ => false, } }); diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index efab9deaf6138..393d46b20cf25 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -323,16 +323,11 @@ s! { pub tcpi_probes: u8, pub tcpi_backoff: u8, pub tcpi_options: u8, - /* - * FIXME(musl): enable on all targets once musl headers are more up to date - */ /// This contains the bitfields `tcpi_snd_wscale` and `tcpi_rcv_wscale`. /// Each is 4 bits. - #[cfg(target_arch = "loongarch64")] pub tcpi_snd_rcv_wscale: u8, /// This contains the bitfields `tcpi_delivery_rate_app_limited` (1 bit) and /// `tcpi_fastopen_client_fail` (2 bits). - #[cfg(target_arch = "loongarch64")] pub tcpi_delivery_fastopen_bitfields: u8, pub tcpi_rto: u32, pub tcpi_ato: u32, @@ -378,10 +373,7 @@ s! { pub tcpi_bytes_retrans: u64, pub tcpi_dsack_dups: u32, pub tcpi_reord_seen: u32, - // FIXME(musl): enable on all targets once CI musl is updated - #[cfg(target_arch = "loongarch64")] pub tcpi_rcv_ooopack: u32, - #[cfg(target_arch = "loongarch64")] pub tcpi_snd_wnd: u32, } From f5d4b076c40dc8877c87f5e10dad913c366fa918 Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Sat, 3 May 2025 11:57:39 +0000 Subject: [PATCH 0644/1228] musl: update RLIM_NLIMITS This reflects upstream commit 2507e7f. This should be safe to change as this has been marked deprecated to warn people it will change across OS versions since 0.2.64 (>5 years ago) (backport ) (cherry picked from commit 5d24ad2e30cfe0e8fab14feaeb1c19c7e34101e0) --- libc-test/build.rs | 4 ++++ src/unix/linux_like/linux/arch/generic/mod.rs | 3 --- src/unix/linux_like/linux/arch/mips/mod.rs | 2 +- src/unix/linux_like/linux/arch/powerpc/mod.rs | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 5e6de77549079..351c0cc11af33 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4339,6 +4339,10 @@ fn test_linux(target: &str) { if old_musl && (riscv64 || x86_64) && name == "O_LARGEFILE" { return true; } + // Values changed in newer musl versions + if old_musl && name == "RLIM_NLIMITS" { + return true; + } } match name { // These constants are not available if gnu headers have been included diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index ec3179b431f97..75cb7e19375d0 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -357,9 +357,6 @@ cfg_if! { pub const RLIMIT_RTPRIO: c_int = 14; pub const RLIMIT_RTTIME: c_int = 15; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] - #[cfg(not(target_arch = "loongarch64"))] - pub const RLIM_NLIMITS: c_int = 15; - #[cfg(target_arch = "loongarch64")] pub const RLIM_NLIMITS: c_int = 16; #[allow(deprecated)] #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index eee7cc81a47e4..1ac2340a27385 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -349,7 +349,7 @@ cfg_if! { pub const RLIMIT_RTPRIO: c_int = 14; pub const RLIMIT_RTTIME: c_int = 15; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] - pub const RLIM_NLIMITS: c_int = 15; + pub const RLIM_NLIMITS: c_int = 16; #[allow(deprecated)] #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIMIT_NLIMITS: c_int = RLIM_NLIMITS; diff --git a/src/unix/linux_like/linux/arch/powerpc/mod.rs b/src/unix/linux_like/linux/arch/powerpc/mod.rs index 588b99a2d0f22..23fac9fba6262 100644 --- a/src/unix/linux_like/linux/arch/powerpc/mod.rs +++ b/src/unix/linux_like/linux/arch/powerpc/mod.rs @@ -330,7 +330,7 @@ cfg_if! { pub const RLIMIT_RTPRIO: c_int = 14; pub const RLIMIT_RTTIME: c_int = 15; #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] - pub const RLIM_NLIMITS: c_int = 15; + pub const RLIM_NLIMITS: c_int = 16; #[allow(deprecated)] #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIMIT_NLIMITS: c_int = RLIM_NLIMITS; From 53a99ed92101a787c87e3e57f121549b9100039d Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Sat, 3 May 2025 12:31:19 +0000 Subject: [PATCH 0645/1228] musl: struct ipc_perm: rename `__ipc_perm_key` to `__key` This isn't strictly related to musl 1.2.3, however now presents a good time to change it, before the 1.0 release. (backport ) (cherry picked from commit 3f81aadb0f1d1381c78f9b49da5267b3c466b138) --- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 8 ++++++++ src/unix/linux_like/linux/musl/b32/hexagon.rs | 8 ++++++++ src/unix/linux_like/linux/musl/b32/mips/mod.rs | 8 ++++++++ src/unix/linux_like/linux/musl/b32/powerpc.rs | 8 ++++++++ src/unix/linux_like/linux/musl/b32/x86/mod.rs | 8 ++++++++ src/unix/linux_like/linux/musl/b64/aarch64/mod.rs | 8 ++++++++ src/unix/linux_like/linux/musl/b64/mips64.rs | 8 ++++++++ src/unix/linux_like/linux/musl/b64/powerpc64.rs | 8 ++++++++ src/unix/linux_like/linux/musl/b64/s390x.rs | 8 ++++++++ src/unix/linux_like/linux/musl/b64/wasm32/mod.rs | 8 ++++++++ src/unix/linux_like/linux/musl/b64/x86_64/mod.rs | 8 ++++++++ 11 files changed, 88 insertions(+) diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index 292585fc3a77a..a79b3fa3729ed 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -55,6 +55,14 @@ s! { } pub struct ipc_perm { + #[cfg(musl_v1_2_3)] + pub __key: crate::key_t, + #[cfg(not(musl_v1_2_3))] + #[deprecated( + since = "0.2.173", + note = "This field is incorrectly named and will be changed + to __key in a future release." + )] pub __ipc_perm_key: crate::key_t, pub uid: crate::uid_t, pub gid: crate::gid_t, diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 4aab076e1c2d3..b687953554184 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -34,6 +34,14 @@ s! { } pub struct ipc_perm { + #[cfg(musl_v1_2_3)] + pub __key: crate::key_t, + #[cfg(not(musl_v1_2_3))] + #[deprecated( + since = "0.2.173", + note = "This field is incorrectly named and will be changed + to __key in a future release" + )] pub __ipc_perm_key: crate::key_t, pub uid: crate::uid_t, pub gid: crate::gid_t, diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index e0b35b6c58ea6..3f2b73decbec6 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -57,6 +57,14 @@ s! { } pub struct ipc_perm { + #[cfg(musl_v1_2_3)] + pub __key: crate::key_t, + #[cfg(not(musl_v1_2_3))] + #[deprecated( + since = "0.2.173", + note = "This field is incorrectly named and will be changed + to __key in a future release." + )] pub __ipc_perm_key: crate::key_t, pub uid: crate::uid_t, pub gid: crate::gid_t, diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 0de40b15094bc..460b2d8fcf0ee 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -53,6 +53,14 @@ s! { } pub struct ipc_perm { + #[cfg(musl_v1_2_3)] + pub __key: crate::key_t, + #[cfg(not(musl_v1_2_3))] + #[deprecated( + since = "0.2.173", + note = "This field is incorrectly named and will be changed + to __key in a future release." + )] pub __ipc_perm_key: crate::key_t, pub uid: crate::uid_t, pub gid: crate::gid_t, diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 22befbb0b71a5..c42bed66900e4 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -59,6 +59,14 @@ s! { } pub struct ipc_perm { + #[cfg(musl_v1_2_3)] + pub __key: crate::key_t, + #[cfg(not(musl_v1_2_3))] + #[deprecated( + since = "0.2.173", + note = "This field is incorrectly named and will be changed + to __key in a future release." + )] pub __ipc_perm_key: crate::key_t, pub uid: crate::uid_t, pub gid: crate::gid_t, diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index e84b9f563c668..aca96f2ece1df 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -60,6 +60,14 @@ s! { } pub struct ipc_perm { + #[cfg(musl_v1_2_3)] + pub __key: crate::key_t, + #[cfg(not(musl_v1_2_3))] + #[deprecated( + since = "0.2.173", + note = "This field is incorrectly named and will be changed + to __key in a future release." + )] pub __ipc_perm_key: crate::key_t, pub uid: crate::uid_t, pub gid: crate::gid_t, diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index 33afe4e46c0d2..5cef57239fda9 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -57,6 +57,14 @@ s! { } pub struct ipc_perm { + #[cfg(musl_v1_2_3)] + pub __key: crate::key_t, + #[cfg(not(musl_v1_2_3))] + #[deprecated( + since = "0.2.173", + note = "This field is incorrectly named and will be changed + to __key in a future release." + )] pub __ipc_perm_key: crate::key_t, pub uid: crate::uid_t, pub gid: crate::gid_t, diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index fb9653bc881a0..4f3c081fb633c 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -51,6 +51,14 @@ s! { } pub struct ipc_perm { + #[cfg(musl_v1_2_3)] + pub __key: crate::key_t, + #[cfg(not(musl_v1_2_3))] + #[deprecated( + since = "0.2.173", + note = "This field is incorrectly named and will be changed + to __key in a future release." + )] pub __ipc_perm_key: crate::key_t, pub uid: crate::uid_t, pub gid: crate::gid_t, diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index 8a274f39dfb77..fe9f798d00863 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -10,6 +10,14 @@ pub type __s64 = i64; s! { pub struct ipc_perm { + #[cfg(musl_v1_2_3)] + pub __key: crate::key_t, + #[cfg(not(musl_v1_2_3))] + #[deprecated( + since = "0.2.173", + note = "This field is incorrectly named and will be changed + to __key in a future release." + )] pub __ipc_perm_key: crate::key_t, pub uid: crate::uid_t, pub gid: crate::gid_t, diff --git a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs index 3ac15b8a9349d..3f7a6098297f5 100644 --- a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs @@ -53,6 +53,14 @@ s! { } pub struct ipc_perm { + #[cfg(musl_v1_2_3)] + pub __key: crate::key_t, + #[cfg(not(musl_v1_2_3))] + #[deprecated( + since = "0.2.173", + note = "This field is incorrectly named and will be changed + to __key in a future release." + )] pub __ipc_perm_key: crate::key_t, pub uid: crate::uid_t, pub gid: crate::gid_t, diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index a8070cb970755..c02744c5183dd 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -112,6 +112,14 @@ s! { } pub struct ipc_perm { + #[cfg(musl_v1_2_3)] + pub __key: crate::key_t, + #[cfg(not(musl_v1_2_3))] + #[deprecated( + since = "0.2.173", + note = "This field is incorrectly named and will be changed + to __key in a future release." + )] pub __ipc_perm_key: crate::key_t, pub uid: crate::uid_t, pub gid: crate::gid_t, From a066096ec006e1f68c8aa5c6bb5ccf20c7119329 Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Sat, 3 May 2025 13:09:41 +0000 Subject: [PATCH 0646/1228] musl: aarch64: update type of ipc_perm->__seq to match upstream The architecture-specific definitions was removed in upstream commit 319b2d0, changing the type to the generic definition of int. (backport ) (cherry picked from commit 3f911737768f78469952fe2604b38f4bc52374e1) --- libc-test/build.rs | 5 ++--- src/unix/linux_like/linux/musl/b64/aarch64/mod.rs | 13 +++++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 351c0cc11af33..39adfd281d166 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3722,7 +3722,6 @@ fn test_linux(target: &str) { let x32 = target.contains("x32"); let x86_32 = target.contains("i686"); let x86_64 = target.contains("x86_64"); - let aarch64_musl = aarch64 && musl; let gnueabihf = target.contains("gnueabihf"); let x86_64_gnux32 = target.contains("gnux32") && x86_64; let riscv64 = target.contains("riscv64"); @@ -4856,8 +4855,8 @@ fn test_linux(target: &str) { "sched_ss_init_budget", "sched_ss_max_repl", ].contains(&field) && musl) || - // FIXME(musl): After musl 1.1.24, the type becomes `int` instead of `unsigned short`. - (struct_ == "ipc_perm" && field == "__seq" && aarch64_musl) || + // After musl 1.1.24, the type becomes `int` instead of `unsigned short`. + (struct_ == "ipc_perm" && field == "__seq" && old_musl && aarch64) || // glibc uses unnamed fields here and Rust doesn't support that yet (struct_ == "timex" && field.starts_with("__unused")) || // FIXME(linux): It now takes mode_t since glibc 2.31 on some targets. diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index aca96f2ece1df..243247edafc46 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -74,9 +74,18 @@ s! { pub cuid: crate::uid_t, pub cgid: crate::gid_t, pub mode: crate::mode_t, + + #[cfg(musl_v1_2_3)] + pub __seq: c_int, + #[cfg(not(musl_v1_2_3))] + #[deprecated( + since = "0.2.173", + note = "The type of this field has changed from c_ushort to c_int, + we'll follow that change in the future release." + )] pub __seq: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __unused1: c_long, + __unused2: c_long, } pub struct ucontext_t { From 5c17c0d0d1f86cb65f1f95f4e20abfc2f4f2741c Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Mon, 5 May 2025 07:55:39 +0000 Subject: [PATCH 0647/1228] ci: add quotes to URL in install-musl.sh script This silences shellcheck warnings (backport ) (cherry picked from commit 60f7b3d1841ca463cdfb1af85b713efd0b4d3b29) --- ci/install-musl.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/install-musl.sh b/ci/install-musl.sh index 8567c0848675a..d3752a900ba6d 100755 --- a/ci/install-musl.sh +++ b/ci/install-musl.sh @@ -17,7 +17,7 @@ esac musl="musl-${musl_version}" # Download, configure, build, and install musl: -curl --retry 5 https://www.musl-libc.org/releases/${musl}.tar.gz | tar xzf - +curl --retry 5 "https://www.musl-libc.org/releases/${musl}.tar.gz" | tar xzf - cd "$musl" case ${1} in From e3c6d0d80baf9ff327cacee433618abaf3fbfa6b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 4 May 2025 05:30:57 +0000 Subject: [PATCH 0648/1228] triagebot: Set `issue-links.check-commits = false` Disable warnings when crosslinking issues, since we do want contributors to do this. Cc: https://github.com/rust-lang/triagebot/pull/1966 (backport ) (cherry picked from commit 6a8609cb5dfcdfcb67078295c425015f71522b98) --- triagebot.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/triagebot.toml b/triagebot.toml index fe3a00af581f7..6aa18772a750e 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -13,6 +13,7 @@ contributing_url = "https://github.com/rust-lang/libc/blob/HEAD/CONTRIBUTING.md" # Ensure issue links link to this repo [issue-links] +check-commits = false # don't forbid links to issues # Prevents mentions in commits to avoid users being spammed [no-mentions] From 3db74e3ccb27d42a45be1577dd9537f7d281648b Mon Sep 17 00:00:00 2001 From: The 8472 Date: Sun, 11 May 2025 16:34:22 +0200 Subject: [PATCH 0649/1228] linux: add new flags for pwritev2/preadv2 (backport ) (cherry picked from commit 6e7549d34f839aa3b76476df0408a155fec81186) --- libc-test/build.rs | 9 +++++++++ libc-test/semver/linux-gnu.txt | 3 +++ libc-test/semver/linux-musl.txt | 3 +++ src/unix/linux_like/linux/gnu/mod.rs | 9 --------- src/unix/linux_like/linux/mod.rs | 12 ++++++++++++ src/unix/linux_like/linux/musl/mod.rs | 6 ------ 6 files changed, 27 insertions(+), 15 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 39adfd281d166..c0b0517075c7e 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4542,6 +4542,15 @@ fn test_linux(target: &str) { // kernel 6.2 minimum "TUN_F_USO4" | "TUN_F_USO6" | "IFF_NO_CARRIER" => true, + // kernel 6.9 minimum + "RWF_NOAPPEND" => true, + + // kernel 6.11 minimum + "RWF_ATOMIC" => true, + + // kernel 6.14 minimum + "RWF_DONTCACHE" => true, + // FIXME(linux): Requires more recent kernel headers | "IFLA_PARENT_DEV_NAME" // linux v5.13+ | "IFLA_PARENT_DEV_BUS_NAME" // linux v5.13+ diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 7f04169042c14..c88da4fe9bf6e 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -389,8 +389,11 @@ RTM_NEWCACHEREPORT RTM_NEWSTATS RUN_LVL RWF_APPEND +RWF_ATOMIC +RWF_DONTCACHE RWF_DSYNC RWF_HIPRI +RWF_NOAPPEND RWF_NOWAIT RWF_SYNC SECURITYFS_MAGIC diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index 462f45f7d13b0..8497fe9cf529a 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -32,8 +32,11 @@ PR_SET_VMA PR_SET_VMA_ANON_NAME RUN_LVL RWF_APPEND +RWF_ATOMIC +RWF_DONTCACHE RWF_DSYNC RWF_HIPRI +RWF_NOAPPEND RWF_NOWAIT RWF_SYNC USER_PROCESS diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 5ba13dd6fc2c4..49b009470af5a 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -942,15 +942,6 @@ pub const PTRACE_SYSCALL_INFO_SECCOMP: crate::__u8 = 3; pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: crate::__u8 = 0x4210; pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: crate::__u8 = 0x4211; -// linux/fs.h - -// Flags for preadv2/pwritev2 -pub const RWF_HIPRI: c_int = 0x00000001; -pub const RWF_DSYNC: c_int = 0x00000002; -pub const RWF_SYNC: c_int = 0x00000004; -pub const RWF_NOWAIT: c_int = 0x00000008; -pub const RWF_APPEND: c_int = 0x00000010; - // linux/rtnetlink.h pub const TCA_PAD: c_ushort = 9; pub const TCA_DUMP_INVISIBLE: c_ushort = 10; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index e224666dd2847..94145420553be 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2897,6 +2897,18 @@ pub const IFA_F_NOPREFIXROUTE: u32 = 0x200; pub const IFA_F_MCAUTOJOIN: u32 = 0x400; pub const IFA_F_STABLE_PRIVACY: u32 = 0x800; +// linux/fs.h + +// Flags for preadv2/pwritev2 +pub const RWF_HIPRI: c_int = 0x00000001; +pub const RWF_DSYNC: c_int = 0x00000002; +pub const RWF_SYNC: c_int = 0x00000004; +pub const RWF_NOWAIT: c_int = 0x00000008; +pub const RWF_APPEND: c_int = 0x00000010; +pub const RWF_NOAPPEND: c_int = 0x00000020; +pub const RWF_ATOMIC: c_int = 0x00000040; +pub const RWF_DONTCACHE: c_int = 0x00000080; + // linux/if_link.h pub const IFLA_UNSPEC: c_ushort = 0; pub const IFLA_ADDRESS: c_ushort = 1; diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 393d46b20cf25..9931847672ad4 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -747,12 +747,6 @@ pub const PTRACE_PEEKSIGINFO: c_int = 0x4209; pub const PTRACE_GETSIGMASK: c_uint = 0x420a; pub const PTRACE_SETSIGMASK: c_uint = 0x420b; -pub const RWF_HIPRI: c_int = 0x00000001; -pub const RWF_DSYNC: c_int = 0x00000002; -pub const RWF_SYNC: c_int = 0x00000004; -pub const RWF_NOWAIT: c_int = 0x00000008; -pub const RWF_APPEND: c_int = 0x00000010; - pub const AF_IB: c_int = 27; pub const AF_MPLS: c_int = 28; pub const AF_NFC: c_int = 39; From 40c1f316ce01031cdd967a065a1c2e4bcde046e4 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 10 May 2025 22:53:18 +0000 Subject: [PATCH 0650/1228] adding SO_SPLICE socket option support for freebsd >= 14.2 [ref](https://github.com/freebsd/freebsd-src/blob/d3f15bc2a51d1822795135d9ad4627dc1c7f2b18/sys/sys/socket.h#L175) and [ref](https://github.com/freebsd/freebsd-src/blob/d3f15bc2a51d1822795135d9ad4627dc1c7f2b18/sys/sys/socketvar.h#L76) (backport ) (cherry picked from commit 47ac2e75f172de447f3c1205c63ac6afaacd61de) --- libc-test/build.rs | 6 ++++++ libc-test/semver/freebsd.txt | 2 ++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 7 +++++++ 3 files changed, 15 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index c0b0517075c7e..4efc1ff7a92dd 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2853,6 +2853,9 @@ fn test_freebsd(target: &str) { // FIXME(freebsd): Removed in FreeBSD 15, deprecated in libc "TCP_PCAP_OUT" | "TCP_PCAP_IN" => true, + // Added in FreeBSD 14.2 + "SO_SPLICE" if Some(14) > freebsd_ver => true, + _ => false, } }); @@ -2904,6 +2907,9 @@ fn test_freebsd(target: &str) { // FIXME(freebsd): Changed in FreeBSD 15 "tcp_info" | "sockstat" if Some(15) >= freebsd_ver => true, + // `splice` introduced in FreeBSD 14.2 + "splice" if Some(14) > freebsd_ver => true, + _ => false, } }); diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index 96b4c19b53fb7..d0b64323282c1 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -1466,6 +1466,7 @@ SO_PROTOTYPE SO_REUSEPORT SO_REUSEPORT_LB SO_SETFIB +SO_SPLICE SO_TIMESTAMP SO_TS_BINTIME SO_TS_CLOCK @@ -2360,6 +2361,7 @@ sigwait sigwaitinfo sockaddr_dl sockcred +splice srand srand48 stack_t diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 7d6b876d6a15a..c88967e6fce58 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1398,6 +1398,12 @@ s! { tqh_first: *mut c_void, tqh_last: *mut *mut c_void, } + + pub struct splice { + pub sp_fd: c_int, + pub sp_max: off_t, + pub sp_idle: crate::timeval, + } } s_no_extra_traits! { @@ -3193,6 +3199,7 @@ pub const SO_PROTOCOL: c_int = 0x1016; pub const SO_PROTOTYPE: c_int = SO_PROTOCOL; pub const SO_TS_CLOCK: c_int = 0x1017; pub const SO_DOMAIN: c_int = 0x1019; +pub const SO_SPLICE: c_int = 0x1023; pub const SO_VENDOR: c_int = 0x80000000; pub const SO_TS_REALTIME_MICRO: c_int = 0; From 28e6ae297b1bd48789da1f66e4d1390829185fbf Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 13 May 2025 21:14:57 +0000 Subject: [PATCH 0651/1228] Run `cargo fmt` from the workspace root (backport ) (cherry picked from commit adcb2b8258ab3b2f21678724f342e84fb28dff3e) --- build.rs | 2 +- src/windows/mod.rs | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/build.rs b/build.rs index 2a55a4c07e525..6eafad5429b9b 100644 --- a/build.rs +++ b/build.rs @@ -22,7 +22,7 @@ const ALLOWED_CFGS: &[&str] = &[ "libc_ctest", // Corresponds to `__USE_TIME_BITS64` in UAPI "linux_time_bits64", - "musl_v1_2_3" + "musl_v1_2_3", ]; // Extra values to allow for check-cfg. diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 8490b709bae9e..5cafc855f78a0 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -394,7 +394,12 @@ extern "C" { #[link_name = "_get_timezone"] pub fn get_timezone(seconds: *mut c_long) -> errno_t; #[link_name = "_get_tzname"] - pub fn get_tzname(p_return_value: *mut size_t, time_zone_name: *mut c_char, size_in_bytes: size_t, index: c_int) -> errno_t; + pub fn get_tzname( + p_return_value: *mut size_t, + time_zone_name: *mut c_char, + size_in_bytes: size_t, + index: c_int, + ) -> errno_t; #[link_name = "_localtime64_s"] pub fn localtime_s(tmDest: *mut tm, sourceTime: *const time_t) -> crate::errno_t; #[link_name = "_time64"] From a2189ad2caac97baf19f11f1223893eebfcbd309 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 13 May 2025 21:16:20 +0000 Subject: [PATCH 0652/1228] ci: Run `cargo fmt` for the entire workspace Currently only `src/` is checked. Add a run that covers everything else. This does mean files in `src/` get formatted twice, but `cargo fmt` doesn't support an `--exclude` option. (backport ) (cherry picked from commit 1ca8b368a84893ab57fcee3ce26066e255d9b8b2) --- ci/style.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ci/style.sh b/ci/style.sh index 5b200796a8c53..2b5ddfc6328da 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -59,6 +59,10 @@ done < "$tmpfile" rm "$tmpfile" +# Run once from workspace root to get everything that wasn't handled as an +# individual file. +cargo fmt + if shellcheck --version ; then find . -name '*.sh' -print0 | xargs -0 shellcheck else From 3b98e7d82a134530bf7508f8df3661eb2e2f42f1 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 13 May 2025 21:18:48 +0000 Subject: [PATCH 0653/1228] ci: Don't exclude `ctest/` There are no longer any shell files in `ctest/`, so this FIXME can be resolved. Also move this to the end so missing shellcheck doesn't exit before the sort checks. (backport ) [ note - this backport doesn't do much since `ctest/` was never excluded, but it does keep file structure in sync - Trevor ] (cherry picked from commit 654bf4eb22056d8b343e578c8a299cd789a7cf0f) --- ci/style.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ci/style.sh b/ci/style.sh index 2b5ddfc6328da..0d4a4f953dda1 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -63,13 +63,6 @@ rm "$tmpfile" # individual file. cargo fmt -if shellcheck --version ; then - find . -name '*.sh' -print0 | xargs -0 shellcheck -else - echo "shellcheck not found" - exit 1 -fi - # Ensure that `sort` output is not locale-dependent export LC_ALL=C @@ -91,3 +84,10 @@ for file in libc-test/semver/*.txt; do exit 1 fi done + +if shellcheck --version ; then + find . -name '*.sh' -print0 | xargs -0 shellcheck +else + echo "shellcheck not found" + exit 1 +fi From 6e353398a6a4fff08c3a8fc0701280b1dde7af46 Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Tue, 18 Mar 2025 16:48:52 -0400 Subject: [PATCH 0654/1228] Enable libc-test for AIX and fix definitions/declarations. (backport ) (cherry picked from commit c192a5cae31dd84ad17dc3c2dd0a3deaacae452a) --- libc-test/build.rs | 240 +++- libc-test/semver/aix.txt | 2608 +++++++++++++++++++++++++++++++++++++ libc-test/test/cmsg.rs | 6 +- libc-test/test/makedev.rs | 1 - src/unix/aix/mod.rs | 678 ++++++---- src/unix/aix/powerpc64.rs | 358 ++--- src/unix/mod.rs | 28 +- 7 files changed, 3395 insertions(+), 524 deletions(-) create mode 100644 libc-test/semver/aix.txt diff --git a/libc-test/build.rs b/libc-test/build.rs index 4efc1ff7a92dd..74fce84d73765 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -70,6 +70,7 @@ fn do_ctest() { t if t.contains("windows") => test_windows(t), t if t.contains("vxworks") => test_vxworks(t), t if t.contains("nto-qnx") => test_neutrino(t), + t if t.contains("aix") => return test_aix(t), t => panic!("unknown target {t}"), } } @@ -102,7 +103,9 @@ fn do_semver() { // NOTE: Android doesn't include the unix file (or the Linux file) because // there are some many definitions missing it's actually easier just to // maintain a file for Android. - if family != os && os != "android" { + // NOTE: AIX doesn't include the unix file because there are definitions + // missing on AIX. It is easier to maintain a file for AIX. + if family != os && !matches!(os.as_str(), "android" | "aix") { process_semver_file(&mut output, &mut semver_root, &family); } // We don't do semver for unknown targets. @@ -5485,3 +5488,238 @@ fn test_haiku(target: &str) { }); cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } + +fn test_aix(target: &str) { + assert!(target.contains("aix")); + + // ctest generates arguments supported only by clang, so make sure to + // run with CC=clang. While debugging, "CFLAGS=-ferror-limit=" + // is useful to get more error output. + let mut cfg = ctest_cfg(); + cfg.define("_THREAD_SAFE", None); + + // Avoid the error for definitions such as '{0, 0, 0, 1}' for + // 'IN6ADDR_LOOPBACK_INIT' in netinent/in.h. + cfg.flag("-Wno-missing-braces"); + + headers! { cfg: + "aio.h", + "ctype.h", + "dirent.h", + "dlfcn.h", + "errno.h", + "fcntl.h", + "fnmatch.h", + "glob.h", + "grp.h", + "iconv.h", + "langinfo.h", + "libgen.h", + "limits.h", + "locale.h", + "malloc.h", + "mntent.h", + "mqueue.h", + "netinet/in.h", // this needs be before net/if.h + "poll.h", // this needs be before net/if.h + "sys/pollset.h", // this needs to be before net/if.h + "net/if.h", + "net/bpf.h", // this needs to be after net/if.h + "net/if_dl.h", + "netdb.h", + "netinet/tcp.h", + "pthread.h", + "pwd.h", + "rpcsvc/mount.h", + "rpcsvc/rstat.h", + "regex.h", + "resolv.h", + "sched.h", + "search.h", + "semaphore.h", + "signal.h", + "spawn.h", + "stddef.h", + "stdint.h", + "stdio.h", + "stdlib.h", + "string.h", + "strings.h", + "sys/aacct.h", + "sys/acct.h", + "sys/dr.h", + "sys/file.h", + "sys/io.h", + "sys/ioctl.h", + "sys/ipc.h", + "sys/ldr.h", + "sys/mman.h", + "sys/msg.h", + "sys/reg.h", + "sys/resource.h", + "sys/sem.h", + "sys/shm.h", + "sys/socket.h", + "sys/stat.h", + "sys/statfs.h", + "sys/statvfs.h", + "sys/stropts.h", + "sys/termio.h", + "sys/time.h", + "sys/times.h", + "sys/types.h", + "sys/uio.h", + "sys/un.h", + "sys/user.h", + "sys/utsname.h", + "sys/vattr.h", + "sys/vminfo.h", + "sys/wait.h", + "sys/xti.h", + "syslog.h", + "termios.h", + "thread.h", + "time.h", + "ucontext.h", + "unistd.h", + "utime.h", + "utmp.h", + "utmpx.h", + "wchar.h", + } + + cfg.skip_type(move |ty| match ty { + // AIX does not define type 'sighandler_t'. + "sighandler_t" => true, + + // The alignment of 'double' does not agree between C and Rust for AIX. + // We are working on a resolution. + "c_double" => true, + + _ => false, + }); + + cfg.type_name(move |ty, is_struct, is_union| match ty { + "DIR" => ty.to_string(), + "FILE" => ty.to_string(), + "ACTION" => ty.to_string(), + + // 'sigval' is a struct in Rust, but a union in C. + "sigval" => format!("union sigval"), + + t if t.ends_with("_t") => t.to_string(), + t if is_struct => format!("struct {}", t), + t if is_union => format!("union {}", t), + t => t.to_string(), + }); + + cfg.skip_const(move |name| match name { + // Skip 'sighandler_t' assignments. + "SIG_DFL" | "SIG_ERR" | "SIG_IGN" => true, + + _ => false, + }); + + cfg.skip_struct(move |ty| { + match ty { + // FIXME(union): actually a union. + "sigval" => true, + + // '__poll_ctl_ext_u' and '__pollfd_ext_u' are for unnamed unions. + "__poll_ctl_ext_u" => true, + "__pollfd_ext_u" => true, + + // 'struct fpreg_t' is not defined in AIX headers. It is created to + // allow type 'double' to be used in signal contexts. + "fpreg_t" => true, + + _ => false, + } + }); + + cfg.skip_field_type(move |struct_, field| { + match (struct_, field) { + // AIX does not define 'sighandler_t'. + ("sigaction", "sa_sigaction") => true, + + // The type of 'fpr' is 'fpreg_t' which is created to allow type + // 'double' to be used in signal contexts. + ("__context64", "fpr") => true, + ("__tm_context_t", "fpr") => true, + + _ => false, + } + }); + + cfg.skip_field(move |s, field| { + match s { + // The field 'u' is actually a unnamed union in the AIX header. + "poll_ctl_ext" if field == "u" => true, + + // The field 'data' is actually a unnamed union in the AIX header. + "pollfd_ext" if field == "data" => true, + + _ => false, + } + }); + + cfg.skip_fn(move |name| { + match name { + // 'sighandler_t' is not defined on AIX. + "signal" => true, + + // The function is only available under macro _USE_IRS in 'netdb.h'. + "hstrerror" => true, + + // _ALL_SOURCE signatures for these functions differ from POSIX's + // on AIX. + "poll" => true, + "readlinkat" => true, + "readlink" => true, + "pselect" => true, + + // The AIX signature differs from POSIX's, issue opened. + "gai_strerror" => true, + + // AIX implements POSIX-compliant versions of these functions + // using 'static' wrappers in the headers, which in turn call + // the corresponding system libc functions prefixed with '_posix_' + // (e.g., '_posix_aio_read' for 'aio_read'). + // On the Rust side, these functions resolve directly to the + // POSIX-compliant versions in the system libc. As a result, + // function pointer comparisons between the C and Rust sides + // would fail. + "getpwuid_r" | "getpwnam_r" | "getgrgid_r" | "getgrnam_r" + | "aio_cancel" | "aio_error" | "aio_fsync" | "aio_read" + | "aio_return" | "aio_suspend" | "aio_write" | "select" => true, + + // 'getdtablesize' is a constant in the AIX header but it is + // a real function in libc which the Rust side is resolved to. + // The function pointer comparison test would fail. + "getdtablesize" => true, + + // FIXME(ctest): Our API is unsound. The Rust API allows aliasing + // pointers, but the C API requires pointers not to alias. + // We should probably be at least using '&'/'&mut' here, see: + // https://github.com/gnzlbg/ctest/issues/68. + "lio_listio" => true, + + _ => false, + } + }); + + + cfg.volatile_item(|i| { + use ctest::VolatileItemKind::*; + match i { + // 'aio_buf' is of type 'volatile void**' but since we cannot + // express that in Rust types, we have to explicitly tell the + // checker about it here. + StructField(ref n, ref f) if n == "aiocb" && f == "aio_buf" => true, + + _ => false, + } + }); + + cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); +} diff --git a/libc-test/semver/aix.txt b/libc-test/semver/aix.txt new file mode 100644 index 0000000000000..3b6417ba3e718 --- /dev/null +++ b/libc-test/semver/aix.txt @@ -0,0 +1,2608 @@ +ABDAY_1 +ABDAY_2 +ABDAY_3 +ABDAY_4 +ABDAY_5 +ABDAY_6 +ABDAY_7 +ABMON_1 +ABMON_10 +ABMON_11 +ABMON_12 +ABMON_2 +ABMON_3 +ABMON_4 +ABMON_5 +ABMON_6 +ABMON_7 +ABMON_8 +ABMON_9 +ACCOUNTING +ACTION +AF_APPLETALK +AF_CCITT +AF_CHAOS +AF_DATAKIT +AF_DECnet +AF_DLI +AF_ECMA +AF_HYLINK +AF_IMPLINK +AF_INET +AF_INET6 +AF_INTF +AF_ISO +AF_LAT +AF_LINK +AF_LOCAL +AF_MAX +AF_NDD +AF_NS +AF_OSI +AF_PUP +AF_RIF +AF_ROUTE +AF_SNA +AF_UNIX +AF_UNSPEC +AIO_ALLDONE +AIO_CANCELED +AIO_LISTIO_MAX +AIO_NOTCANCELED +AI_ADDRCONFIG +AI_ALL +AI_CANONNAME +AI_DEFAULT +AI_EXTFLAGS +AI_NUMERICHOST +AI_NUMERICSERV +AI_PASSIVE +AI_V4MAPPED +ALTWERASE +ALT_DIGITS +AM_STR +ARG_MAX +ARPHRD_802_3 +ARPHRD_802_5 +ARPHRD_ETHER +ARPHRD_FDDI +AT_EACCESS +AT_FDCWD +AT_FLAGS +AT_GID +AT_REMOVEDIR +AT_SYMLINK_FOLLOW +AT_SYMLINK_NOFOLLOW +AT_UID +B0 +B110 +B1200 +B134 +B150 +B1800 +B19200 +B200 +B2400 +B300 +B38400 +B4800 +B50 +B600 +B75 +B9600 +BC_BASE_MAX +BC_DIM_MAX +BC_SCALE_MAX +BC_STRING_MAX +BIG_ENDIAN +BIOCFLUSH +BIOCGBLEN +BIOCGDLT +BIOCGETIF +BIOCGRTIMEOUT +BIOCGSTATS +BIOCIMMEDIATE +BIOCPROMISC +BIOCSBLEN +BIOCSDEVNO +BIOCSETF +BIOCSETIF +BIOCSRTIMEOUT +BIOCVERSION +BOOT_TIME +BPF_ABS +BPF_ADD +BPF_ALIGNMENT +BPF_ALU +BPF_AND +BPF_B +BPF_DIV +BPF_H +BPF_IMM +BPF_IND +BPF_JA +BPF_JEQ +BPF_JGE +BPF_JGT +BPF_JMP +BPF_JSET +BPF_K +BPF_LD +BPF_LDX +BPF_LEN +BPF_LSH +BPF_MAXINSNS +BPF_MEM +BPF_MEMWORDS +BPF_MISC +BPF_MSH +BPF_MUL +BPF_NEG +BPF_OR +BPF_RET +BPF_RSH +BPF_ST +BPF_STX +BPF_SUB +BPF_W +BPF_X +BRKINT +BS0 +BS1 +BSDLY +BUFSIZ +BUS_ADRALN +BUS_ADRERR +BUS_OBJERR +BUS_UEGARD +CBAUD +CBREAK +CHARCLASS_NAME_MAX +CHILD_MAX +CIBAUD +CLD_CONTINUED +CLD_DUMPED +CLD_EXITED +CLD_KILLED +CLD_STOPPED +CLD_TRAPPED +CLOCAL +CLOCK_MONOTONIC +CLOCK_PROCESS_CPUTIME_ID +CLOCK_REALTIME +CLOCK_THREAD_CPUTIME_ID +CMSG_DATA +CMSG_FIRSTHDR +CMSG_NXTHDR +CODESET +COLL_WEIGHTS_MAX +CPUSTATES +CR0 +CR1 +CR2 +CR3 +CRDLY +CREAD +CRNCYSTR +CS5 +CS6 +CS7 +CS8 +CSIZE +CSTART +CSTOP +CSTOPB +DAY_1 +DAY_2 +DAY_3 +DAY_4 +DAY_5 +DAY_6 +DAY_7 +DEAD_PROCESS +DIR +DLT_ARCNET +DLT_ATM +DLT_AX25 +DLT_EN10MB +DLT_EN3MB +DLT_FDDI +DLT_IEEE802 +DLT_IPOIB +DLT_NULL +DLT_PPP +DLT_PRONET +DLT_SLIP +DST_AUST +DST_CAN +DST_EET +DST_MET +DST_NONE +DST_USA +DST_WET +D_FMT +D_T_FMT +E2BIG +EACCES +EADDRINUSE +EADDRNOTAVAIL +EAFNOSUPPORT +EAGAIN +EAI_AGAIN +EAI_BADFLAGS +EAI_FAIL +EAI_FAMILY +EAI_MEMORY +EAI_NODATA +EAI_NONAME +EAI_OVERFLOW +EAI_SERVICE +EAI_SOCKTYPE +EAI_SYSTEM +EALREADY +EBADF +EBADMSG +EBUSY +ECANCELED +ECHILD +ECHO +ECHOCTL +ECHOE +ECHOK +ECHOKE +ECHONL +ECHOPRT +ECHRNG +ECLONEME +ECONNABORTED +ECONNREFUSED +ECONNRESET +ECORRUPT +EDEADLK +EDESTADDREQ +EDESTADDRREQ +EDIST +EDOM +EDQUOT +EEXIST +EFAULT +EFBIG +EFORMAT +EHOSTDOWN +EHOSTUNREACH +EIDRM +EILSEQ +EINPROGRESS +EINTR +EINVAL +EIO +EISCONN +EISDIR +EL2HLT +EL2NSYNC +EL3HLT +EL3RST +ELNRNG +ELOOP +EMEDIA +EMFILE +EMLINK +EMPTY +EMSGSIZE +EMTP_INFO_FORMAT +EMULTIHOP +ENAMETOOLONG +ENERGYSCALE_INFO +ENETDOWN +ENETRESET +ENETUNREACH +ENFILE +ENOATTR +ENOBUFS +ENOCONNECT +ENOCSI +ENODATA +ENODEV +ENOENT +ENOEXEC +ENOLCK +ENOLINK +ENOMEM +ENOMSG +ENOPROTOOPT +ENOSPC +ENOSR +ENOSTR +ENOSYS +ENOTBLK +ENOTCONN +ENOTDIR +ENOTEMPTY +ENOTREADY +ENOTRECOVERABLE +ENOTRUST +ENOTSOCK +ENOTSUP +ENOTTY +ENTER +ENXIO +EOF +EOPNOTSUPP +EOVERFLOW +EOWNERDEAD +EPERM +EPFNOSUPPORT +EPIPE +EPROCLIM +EPROTO +EPROTONOSUPPORT +EPROTOTYPE +ERA +ERANGE +ERA_D_FMT +ERA_D_T_FMT +ERA_T_FMT +EREMOTE +ERESTART +EROFS +ESAD +ESHUTDOWN +ESOCKTNOSUPPORT +ESOFT +ESPIPE +ESRCH +ESTALE +ESYSERROR +ETIME +ETIMEDOUT +ETOOMANYREFS +ETXTBSY +EUNATCH +EUSERS +EWOULDBLOCK +EWRPROTECT +EXDEV +EXIT_FAILURE +EXIT_SUCCESS +EXPR_NEST_MAX +EXTA +EXTB +FASYNC +FD_CLOEXEC +FD_CLR +FD_ISSET +FD_SET +FD_SETSIZE +FD_ZERO +FF0 +FF1 +FFDLY +FILE +FILENAME_MAX +FIND +FIOASYNC +FIOCLEX +FIOGETOWN +FIONBIO +FIONCLEX +FIONREAD +FIOSETOWN +FLUSHO +FNM_NOESCAPE +FNM_NOMATCH +FNM_PATHNAME +FNM_PERIOD +FOPEN_MAX +FPE_FLTDIV +FPE_FLTINV +FPE_FLTOVF +FPE_FLTRES +FPE_FLTSUB +FPE_FLTUND +FPE_INTDIV +FPE_INTOVF +F_CLOSEM +F_DUP2FD +F_DUPFD +F_DUPFD_CLOEXEC +F_GETFD +F_GETFL +F_GETLK +F_GETLK64 +F_GETOWN +F_LOCK +F_OK +F_RDLCK +F_SETFD +F_SETFL +F_SETLK +F_SETLK64 +F_SETLKW +F_SETLKW64 +F_SETOWN +F_TEST +F_TLOCK +F_TSTLK +F_ULOCK +F_UNLCK +F_WRLCK +GETALL +GETNCNT +GETPID +GETVAL +GETZCNT +GLOB_ABORTED +GLOB_APPEND +GLOB_DOOFFS +GLOB_ERR +GLOB_MARK +GLOB_NOCHECK +GLOB_NOESCAPE +GLOB_NOMATCH +GLOB_NOSORT +GLOB_NOSPACE +GLOB_NOSYS +GRPQUOTA +HUPCL +IA64 +IBSHIFT +ICANON +ICRNL +IEXTEN +IFF_ALLMULTI +IFF_BROADCAST +IFF_DEBUG +IFF_LINK0 +IFF_LINK1 +IFF_LINK2 +IFF_LOOPBACK +IFF_MULTICAST +IFF_NOARP +IFF_NOTRAILERS +IFF_OACTIVE +IFF_POINTOPOINT +IFF_PROMISC +IFF_RUNNING +IFF_SIMPLEX +IFF_UP +IFNAMSIZ +IFNET_SLOWHZ +IFQ_MAXLEN +IF_NAMESIZE +IGNBRK +IGNCR +IGNPAR +ILL_BADSTK +ILL_COPROC +ILL_ILLADR +ILL_ILLOPC +ILL_ILLOPN +ILL_ILLTRP +ILL_PRVOPC +ILL_PRVREG +ILL_TMBADTHING +IMAXBEL +IN6ADDR_ANY_INIT +IN6ADDR_LOOPBACK_INIT +INADDR_ANY +INADDR_BROADCAST +INADDR_LOOPBACK +INADDR_NONE +INIT_PROCESS +INLCR +INPCK +INT_MAX +INT_MIN +IOCPARM_MASK +IOC_IN +IOC_INOUT +IOC_OUT +IOC_VOID +IOV_MAX +IPC_ALLOC +IPC_CREAT +IPC_EXCL +IPC_NOERROR +IPC_NOWAIT +IPC_O +IPC_PRIVATE +IPC_R +IPC_RMID +IPC_SET +IPC_STAT +IPC_W +IPDEFTTL +IPOPT_CONTROL +IPOPT_EOL +IPOPT_LSRR +IPOPT_MINOFF +IPOPT_NOP +IPOPT_OFFSET +IPOPT_OLEN +IPOPT_OPTVAL +IPOPT_RESERVED1 +IPOPT_RESERVED2 +IPOPT_RR +IPOPT_SSRR +IPOPT_TS +IPOPT_TS_PRESPEC +IPOPT_TS_TSANDADDR +IPOPT_TS_TSONLY +IPPROTO_AH +IPPROTO_BIP +IPPROTO_DSTOPTS +IPPROTO_EGP +IPPROTO_EON +IPPROTO_ESP +IPPROTO_FRAGMENT +IPPROTO_GGP +IPPROTO_GIF +IPPROTO_GRE +IPPROTO_HOPOPTS +IPPROTO_ICMP +IPPROTO_ICMPV6 +IPPROTO_IDP +IPPROTO_IGMP +IPPROTO_IP +IPPROTO_IPIP +IPPROTO_IPV6 +IPPROTO_LOCAL +IPPROTO_MH +IPPROTO_NONE +IPPROTO_PUP +IPPROTO_QOS +IPPROTO_RAW +IPPROTO_ROUTING +IPPROTO_RSVP +IPPROTO_SCTP +IPPROTO_TCP +IPPROTO_TP +IPPROTO_UDP +IPTOS_LOWDELAY +IPTOS_PREC_CRITIC_ECP +IPTOS_PREC_FLASH +IPTOS_PREC_FLASHOVERRIDE +IPTOS_PREC_IMMEDIATE +IPTOS_PREC_INTERNETCONTROL +IPTOS_PREC_NETCONTROL +IPTOS_PREC_PRIORITY +IPTOS_PREC_ROUTINE +IPTOS_RELIABILITY +IPTOS_THROUGHPUT +IPV6_ADDRFORM +IPV6_ADDR_PREFERENCES +IPV6_ADD_MEMBERSHIP +IPV6_CHECKSUM +IPV6_DONTFRAG +IPV6_DROP_MEMBERSHIP +IPV6_DSTOPTS +IPV6_FLOWINFO_FLOWLABEL +IPV6_FLOWINFO_PRIFLOW +IPV6_FLOWINFO_PRIORITY +IPV6_FLOWINFO_SRFLAG +IPV6_FLOWINFO_VERSION +IPV6_HOPLIMIT +IPV6_HOPOPTS +IPV6_JOIN_GROUP +IPV6_LEAVE_GROUP +IPV6_MULTICAST_HOPS +IPV6_MULTICAST_IF +IPV6_MULTICAST_LOOP +IPV6_NEXTHOP +IPV6_PATHMTU +IPV6_PKTINFO +IPV6_PREFER_SRC_CGA +IPV6_PREFER_SRC_COA +IPV6_PREFER_SRC_HOME +IPV6_PREFER_SRC_NONCGA +IPV6_PREFER_SRC_PUBLIC +IPV6_PREFER_SRC_TMP +IPV6_RECVDSTOPTS +IPV6_RECVHOPLIMIT +IPV6_RECVHOPOPTS +IPV6_RECVPATHMTU +IPV6_RECVPKTINFO +IPV6_RECVRTHDR +IPV6_RECVTCLASS +IPV6_RTHDR +IPV6_RTHDRDSTOPTS +IPV6_TCLASS +IPV6_UNICAST_HOPS +IPV6_V6ONLY +IPVERSION +IP_ADDRFORM +IP_ADD_MEMBERSHIP +IP_ADD_SOURCE_MEMBERSHIP +IP_BLOCK_SOURCE +IP_BROADCAST_IF +IP_DEFAULT_MULTICAST_LOOP +IP_DEFAULT_MULTICAST_TTL +IP_DHCPMODE +IP_DONTFRAG +IP_DROP_MEMBERSHIP +IP_DROP_SOURCE_MEMBERSHIP +IP_FINDPMTU +IP_HDRINCL +IP_INC_MEMBERSHIPS +IP_INIT_MEMBERSHIP +IP_MULTICAST_HOPS +IP_MULTICAST_IF +IP_MULTICAST_LOOP +IP_MULTICAST_TTL +IP_OPTIONS +IP_PMTUAGE +IP_RECVDSTADDR +IP_RECVIF +IP_RECVIFINFO +IP_RECVINTERFACE +IP_RECVMACHDR +IP_RECVOPTS +IP_RECVRETOPTS +IP_RECVTTL +IP_RETOPTS +IP_TOS +IP_TTL +IP_UNBLOCK_SOURCE +IP_UNICAST_HOPS +ISIG +ISTRIP +ITIMER_PROF +ITIMER_REAL +ITIMER_REAL1 +ITIMER_REAL_TH +ITIMER_VIRT +ITIMER_VIRTUAL +IUCLC +IXANY +IXOFF +IXON +I_ATMARK +I_CANPUT +I_CKBAND +I_FDINSERT +I_FIND +I_FLUSH +I_FLUSHBAND +I_GETBAND +I_GETCLTIME +I_GETSIG +I_GRDOPT +I_GWROPT +I_LINK +I_LIST +I_LOOK +I_NREAD +I_PEEK +I_PLINK +I_POP +I_PUNLINK +I_PUSH +I_RECVFD +I_SENDFD +I_SETCLTIME +I_SETSIG +I_SRDOPT +I_STR +I_SWROPT +I_UNLINK +LCASE +LC_ALL +LC_ALL_MASK +LC_COLLATE +LC_COLLATE_MASK +LC_CTYPE +LC_CTYPE_MASK +LC_GLOBAL_LOCALE +LC_MESSAGES +LC_MESSAGES_MASK +LC_MONETARY +LC_MONETARY_MASK +LC_NUMERIC +LC_NUMERIC_MASK +LC_TIME +LC_TIME_MASK +LIO_NOP +LIO_NOWAIT +LIO_READ +LIO_WAIT +LIO_WRITE +LITTLE_ENDIAN +LOCK_EX +LOCK_NB +LOCK_SH +LOCK_UN +LOGIN_PROCESS +LOG_ALERT +LOG_AUTH +LOG_AUTHPRIV +LOG_CONS +LOG_CRIT +LOG_CRON +LOG_DAEMON +LOG_DEBUG +LOG_EMERG +LOG_ERR +LOG_FACMASK +LOG_INFO +LOG_KERN +LOG_LOCAL0 +LOG_LOCAL1 +LOG_LOCAL2 +LOG_LOCAL3 +LOG_LOCAL4 +LOG_LOCAL5 +LOG_LOCAL6 +LOG_LOCAL7 +LOG_LPR +LOG_MAIL +LOG_NDELAY +LOG_NEWS +LOG_NFACILITIES +LOG_NOTICE +LOG_NOWAIT +LOG_ODELAY +LOG_PERROR +LOG_PID +LOG_PRIMASK +LOG_SYSLOG +LOG_USER +LOG_UUCP +LOG_WARNING +LPAR_INFO_FORMAT1 +LPAR_INFO_FORMAT2 +LPAR_INFO_LPM_CAPABILITY +LPAR_INFO_VRME_ALLOW_DESIRED +LPAR_INFO_VRME_LPAR +LPAR_INFO_VRME_NUM_POOLS +LPAR_INFO_VRME_POOLS +LPAR_INFO_VRME_RESET_HWMARKS +L_GETINFO +L_GETKERNINFO +L_GETLIB32INFO +L_GETLIB64INFO +L_GETLIBPATH +L_GETMESSAGES +L_GETPROCINFO +L_GETXINFO +L_tmpnam +MADV_DONTNEED +MADV_NORMAL +MADV_RANDOM +MADV_SEQUENTIAL +MADV_WILLNEED +MAP_ANON +MAP_ANONYMOUS +MAP_FAILED +MAP_FILE +MAP_FIXED +MAP_PRIVATE +MAP_SHARED +MAP_TYPE +MAXCOMLEN +MAXHOSTNAMELEN +MAXPATHLEN +MAXSYMLINKS +MAXTTL +MAXUPRC +MAX_CANON +MAX_INPUT +MCAST_BLOCK_SOURCE +MCAST_EXCLUDE +MCAST_INCLUDE +MCAST_JOIN_GROUP +MCAST_JOIN_SOURCE_GROUP +MCAST_LEAVE_GROUP +MCAST_LEAVE_SOURCE_GROUP +MCAST_UNBLOCK_SOURCE +MCL_CURRENT +MCL_FUTURE +MDMBUF +MINSIGSTKSZ +MON_1 +MON_10 +MON_11 +MON_12 +MON_2 +MON_3 +MON_4 +MON_5 +MON_6 +MON_7 +MON_8 +MON_9 +MSG_ARGEXT +MSG_COMPAT +MSG_CTRUNC +MSG_DONTROUTE +MSG_EOR +MSG_MAXIOVLEN +MSG_MPEG2 +MSG_NOERROR +MSG_NONBLOCK +MSG_NOSIGNAL +MSG_OOB +MSG_PEEK +MSG_TRUNC +MSG_WAITALL +MSG_WAITFORONE +MS_ASYNC +MS_INVALIDATE +MS_SYNC +NCCS +NEW_TIME +NFSMNT_ACDIRMAX +NFSMNT_ACDIRMIN +NFSMNT_ACREGMAX +NFSMNT_ACREGMIN +NFSMNT_HOSTNAME +NFSMNT_INT +NFSMNT_NOAC +NFSMNT_RETRANS +NFSMNT_RSIZE +NFSMNT_SOFT +NFSMNT_TIMEO +NFSMNT_WSIZE +NGROUPS +NGROUPS_MAX +NI_DGRAM +NI_MAXHOST +NI_MAXSERV +NI_NAMEREQD +NI_NOFQDN +NI_NUMERICHOST +NI_NUMERICSCOPE +NI_NUMERICSERV +NL0 +NL1 +NLDLY +NOEXPR +NOFILE +NOFLSH +NOSTR +NUM_PROC_MODULE_TYPES +NZERO +OCRNL +OFDEL +OFILL +OLCUC +OLD_TIME +ONLCR +ONLRET +ONOCR +ONOEOT +OPEN_MAX +OPOST +OXTABS +O_ACCMODE +O_APPEND +O_CLOEXEC +O_CREAT +O_DIRECT +O_DIRECTORY +O_DSYNC +O_EXCL +O_EXEC +O_LARGEFILE +O_NDELAY +O_NOCTTY +O_NOFOLLOW +O_NONBLOCK +O_RDONLY +O_RDWR +O_RSYNC +O_SEARCH +O_SYNC +O_TRUNC +O_TTY_INIT +O_WRONLY +PAGESIZE +PARENB +PAREXT +PARMRK +PARODD +PATH_MAX +PDP_ENDIAN +PENDIN +PF_APPLETALK +PF_CCITT +PF_CHAOS +PF_DATAKIT +PF_DECnet +PF_DLI +PF_ECMA +PF_HYLINK +PF_IMPLINK +PF_INET +PF_INET6 +PF_INTF +PF_ISO +PF_LAT +PF_LINK +PF_MAX +PF_NDD +PF_NS +PF_OSI +PF_PUP +PF_RIF +PF_ROUTE +PF_SNA +PF_UNIX +PF_UNSPEC +PF_XTP +PIPE_BUF +PM_STR +POLLERR +POLLHUP +POLLIN +POLLMSG +POLLNORM +POLLNVAL +POLLOUT +POLLPRI +POLLRDBAND +POLLRDNORM +POLLSYNC +POLLWRBAND +POLLWRNORM +POLL_ERR +POLL_HUP +POLL_IN +POLL_MSG +POLL_OUT +POLL_PRI +POSIX_FADV_DONTNEED +POSIX_FADV_NOREUSE +POSIX_FADV_NORMAL +POSIX_FADV_RANDOM +POSIX_FADV_SEQUENTIAL +POSIX_FADV_WILLNEED +POSIX_MADV_DONTNEED +POSIX_MADV_NORMAL +POSIX_MADV_RANDOM +POSIX_MADV_SEQUENTIAL +POSIX_MADV_WILLNEED +POSIX_SPAWN_FORK_HANDLERS +POSIX_SPAWN_RESETIDS +POSIX_SPAWN_SETPGROUP +POSIX_SPAWN_SETSCHEDPARAM +POSIX_SPAWN_SETSCHEDULER +POSIX_SPAWN_SETSIGDEF +POSIX_SPAWN_SETSIGMASK +POWER_4 +POWER_5 +POWER_6 +POWER_601 +POWER_603 +POWER_604 +POWER_620 +POWER_630 +POWER_7 +POWER_8 +POWER_9 +POWER_A35 +POWER_MPC7450 +POWER_PC +POWER_RS +POWER_RS1 +POWER_RS2 +POWER_RS64II +POWER_RS64III +POWER_RS64IV +POWER_RSC +PRIO_MAX +PRIO_MIN +PRIO_PGRP +PRIO_PROCESS +PRIO_USER +PROC_MODULE_INFO +PROT_EXEC +PROT_NONE +PROT_READ +PROT_WRITE +PS_ADD +PS_DELETE +PS_MOD +PS_REPLACE +PTHREAD_BARRIER_SERIAL_THREAD +PTHREAD_COND_INITIALIZER +PTHREAD_CREATE_DETACHED +PTHREAD_CREATE_JOINABLE +PTHREAD_MUTEX_DEFAULT +PTHREAD_MUTEX_ERRORCHECK +PTHREAD_MUTEX_INITIALIZER +PTHREAD_MUTEX_NORMAL +PTHREAD_MUTEX_RECURSIVE +PTHREAD_MUTEX_ROBUST +PTHREAD_MUTEX_STALLED +PTHREAD_ONCE_INIT +PTHREAD_PRIO_INHERIT +PTHREAD_PRIO_NONE +PTHREAD_PRIO_PROTECT +PTHREAD_PROCESS_PRIVATE +PTHREAD_PROCESS_SHARED +PTHREAD_RWLOCK_INITIALIZER +PTHREAD_STACK_MIN +PTRACE_ATTACH +PTRACE_CONT +PTRACE_DETACH +PTRACE_GETFPREGS +PTRACE_GETREGS +PTRACE_KILL +PTRACE_PEEKDATA +PTRACE_PEEKTEXT +PTRACE_PEEKUSER +PTRACE_POKEDATA +PTRACE_POKETEXT +PTRACE_POKEUSER +PTRACE_SETFPREGS +PTRACE_SETREGS +PTRACE_SINGLESTEP +PTRACE_SYSCALL +PTRACE_TRACEME +PTT_CLEAR_TRAP +PTT_CONTINUE +PTT_READ_FPRS +PTT_READ_FPSCR_HI +PTT_READ_GPRS +PTT_READ_SPRS +PTT_READ_TM +PTT_READ_UKEYSET +PTT_READ_VEC +PTT_READ_VSX +PTT_SET_TRAP +PTT_STEP +PTT_WATCH +PTT_WRITE_FPRS +PTT_WRITE_FPSCR_HI +PTT_WRITE_GPRS +PTT_WRITE_SPRS +PTT_WRITE_VEC +PTT_WRITE_VSX +PT_ATTACH +PT_CLEAR +PT_CONTINUE +PT_DETACH +PT_GET_UKEY +PT_KILL +PT_LDINFO +PT_LDXINFO +PT_MULTI +PT_NEXT +PT_QUERY +PT_READ_BLOCK +PT_READ_D +PT_READ_FPR +PT_READ_GPR +PT_READ_I +PT_REATT +PT_REGSET +PT_SET +PT_STEP +PT_TRACE_ME +PT_WATCH +PT_WRITE_BLOCK +PT_WRITE_D +PT_WRITE_FPR +PT_WRITE_GPR +PT_WRITE_I +P_ALL +P_PGID +P_PID +Q_GETQUOTA +Q_QUOTAOFF +Q_QUOTAON +Q_SETQLIM +Q_SETQUOTA +Q_SETUSE +Q_SYNC +RADIXCHAR +RAND_MAX +REG_BADBR +REG_BADPAT +REG_BADRPT +REG_EBOL +REG_EBRACE +REG_EBRACK +REG_ECHAR +REG_ECOLLATE +REG_ECTYPE +REG_EEOL +REG_EESCAPE +REG_ENOSYS +REG_EPAREN +REG_ERANGE +REG_ESPACE +REG_ESUBREG +REG_EXTENDED +REG_ICASE +REG_NEWLINE +REG_NOMATCH +REG_NOSUB +REG_NOTBOL +REG_NOTEOL +RLIMIT_AS +RLIMIT_CORE +RLIMIT_CPU +RLIMIT_DATA +RLIMIT_FSIZE +RLIMIT_NOFILE +RLIMIT_NPROC +RLIMIT_RSS +RLIMIT_STACK +RLIMIT_THREADS +RLIM_INFINITY +RLIM_NLIMITS +RLIM_SAVED_CUR +RLIM_SAVED_MAX +RTAX_AUTHOR +RTAX_BRD +RTAX_DST +RTAX_GATEWAY +RTAX_GENMASK +RTAX_IFA +RTAX_IFP +RTAX_MAX +RTAX_NETMASK +RTA_AUTHOR +RTA_BRD +RTA_DOWNSTREAM +RTA_DST +RTA_GATEWAY +RTA_GENMASK +RTA_IFA +RTA_IFP +RTA_NETMASK +RTF_ACTIVE_DGD +RTF_BCE +RTF_BLACKHOLE +RTF_BROADCAST +RTF_BUL +RTF_CACHED +RTF_CLONE +RTF_CLONED +RTF_CLONING +RTF_DONE +RTF_DYNAMIC +RTF_FREE_IN_PROG +RTF_GATEWAY +RTF_HOST +RTF_LLINFO +RTF_LOCAL +RTF_MASK +RTF_MODIFIED +RTF_MULTICAST +RTF_PERMANENT6 +RTF_PINNED +RTF_PROTO1 +RTF_PROTO2 +RTF_PROTO3 +RTF_REJECT +RTF_SMALLMTU +RTF_STATIC +RTF_STOPSRCH +RTF_UNREACHABLE +RTF_UP +RTF_XRESOLVE +RTLD_DEFAULT +RTLD_GLOBAL +RTLD_LAZY +RTLD_LOCAL +RTLD_MEMBER +RTLD_MYSELF +RTLD_NEXT +RTLD_NOAUTODEFER +RTLD_NOW +RTM_ADD +RTM_CHANGE +RTM_DELADDR +RTM_DELETE +RTM_EXPIRE +RTM_GET +RTM_GETNEXT +RTM_IFINFO +RTM_LOCK +RTM_LOSING +RTM_MISS +RTM_NEWADDR +RTM_OLDADD +RTM_OLDDEL +RTM_REDIRECT +RTM_RESOLVE +RTM_RTLOST +RTM_SAMEADDR +RTM_SET +RTV_EXPIRE +RTV_HOPCOUNT +RTV_MTU +RTV_RPIPE +RTV_RTT +RTV_RTTVAR +RTV_SPIPE +RTV_SSTHRESH +RUN_LVL +RUSAGE_CHILDREN +RUSAGE_SELF +RUSAGE_THREAD +R_OK +SA_NOCLDSTOP +SA_NOCLDWAIT +SA_NODEFER +SA_ONSTACK +SA_RESETHAND +SA_RESTART +SA_SIGINFO +SCHED_FIFO +SCHED_FIFO2 +SCHED_FIFO3 +SCHED_FIFO4 +SCHED_GLOBAL +SCHED_LOCAL +SCHED_OTHER +SCHED_RR +SCM_RIGHTS +SC_AME_STAT +SC_ARCH +SC_CAC_CONG +SC_CAPINC +SC_DFP_VER +SC_DISP_WHE +SC_DTLB_ATT +SC_DTLB_SZ +SC_ECO_STAT +SC_EC_LVL +SC_ENT_CAP +SC_IMPL +SC_ITLB_ATT +SC_ITLB_SZ +SC_KRN_ATTR +SC_L1C_ATTR +SC_L1C_DBS +SC_L1C_DCA +SC_L1C_DLS +SC_L1C_DSZ +SC_L1C_IBS +SC_L1C_ICA +SC_L1C_ILS +SC_L1C_ISZ +SC_L2C_AS +SC_L2C_SZ +SC_LMB_SZ +SC_MAX_NCPUS +SC_MAX_REALADDR +SC_MAX_XCPU +SC_MMA_VER +SC_MOD_ARCH +SC_MOD_IMPL +SC_NCPUS +SC_NX_CAP +SC_ORIG_ENT_CAP +SC_PHYSMEM +SC_PHYS_IMP +SC_PHYS_VER +SC_PKS_STATE +SC_PRI_LC +SC_PRO_LC +SC_RESRV_SZ +SC_RTC_TYPE +SC_SLB_ATTR +SC_SLB_SZ +SC_SMT_STAT +SC_SMT_TC +SC_SPCM_MAX +SC_SPCM_STATUS +SC_SPLP_STAT +SC_TLB_ATTR +SC_TM_VER +SC_VCAPW +SC_VERS +SC_VIRT_AL +SC_VMX_VER +SC_VRM_STAT +SC_WIDTH +SC_XFRAC +SC_XINT +SEEK_CUR +SEEK_END +SEEK_SET +SEGV_ACCERR +SEGV_KEYERR +SEGV_MAPERR +SEM_FAILED +SEM_UNDO +SETALL +SETVAL +SF_CLOSE +SF_DONT_CACHE +SF_REUSE +SF_SYNC_CACHE +SHMLBA +SHMLBA_EXTSHM +SHM_CLEAR +SHM_COPY +SHM_DEST +SHM_FMAP +SHM_HGSEG +SHM_LGPAGE +SHM_LOCK +SHM_MAP +SHM_PIN +SHM_R +SHM_RDONLY +SHM_RND +SHM_SHMAT +SHM_UNLOCK +SHM_W +SHUT_RD +SHUT_RDWR +SHUT_WR +SIGABRT +SIGALRM +SIGBUS +SIGCHLD +SIGCLD +SIGCONT +SIGEMT +SIGEV_NONE +SIGEV_SIGNAL +SIGEV_THREAD +SIGFPE +SIGHUP +SIGILL +SIGINT +SIGIO +SIGIOT +SIGKILL +SIGPIPE +SIGPOLL +SIGPROF +SIGPWR +SIGQUIT +SIGRTMAX +SIGRTMIN +SIGSEGV +SIGSTKSZ +SIGSTOP +SIGSYS +SIGTERM +SIGTRAP +SIGTSTP +SIGTTIN +SIGTTOU +SIGURG +SIGUSR1 +SIGUSR2 +SIGVTALRM +SIGWINCH +SIGXCPU +SIGXFSZ +SIG_BLOCK +SIG_DFL +SIG_ERR +SIG_IGN +SIG_SETMASK +SIG_UNBLOCK +SIOCADDMULTI +SIOCADDRT +SIOCDARP +SIOCDELMULTI +SIOCDELRT +SIOCDIFADDR +SIOCGARP +SIOCGIFADDR +SIOCGIFBRDADDR +SIOCGIFCONF +SIOCGIFDSTADDR +SIOCGIFFLAGS +SIOCGIFHWADDR +SIOCGIFMETRIC +SIOCGIFMTU +SIOCGIFNETMASK +SIOCSARP +SIOCSIFADDR +SIOCSIFBRDADDR +SIOCSIFDSTADDR +SIOCSIFFLAGS +SIOCSIFMETRIC +SIOCSIFMTU +SIOCSIFNETMASK +SI_ASYNCIO +SI_EMPTY +SI_MESGQ +SI_QUEUE +SI_TIMER +SI_UNDEFINED +SI_USER +SOCK_DGRAM +SOCK_RAW +SOCK_RDM +SOCK_SEQPACKET +SOCK_STREAM +SOL_SOCKET +SOMAXCONN +SO_ACCEPTCONN +SO_AUDIT +SO_BROADCAST +SO_CKSUMRECV +SO_DEBUG +SO_DONTROUTE +SO_ERROR +SO_KEEPALIVE +SO_KERNACCEPT +SO_LINGER +SO_NOMULTIPATH +SO_NOREUSEADDR +SO_OOBINLINE +SO_RCVBUF +SO_RCVLOWAT +SO_RCVTIMEO +SO_REUSEADDR +SO_REUSEPORT +SO_SNDBUF +SO_SNDLOWAT +SO_SNDTIMEO +SO_TIMESTAMPNS +SO_TYPE +SO_USELOOPBACK +SO_USE_IFBUFS +SS_DISABLE +SS_ONSTACK +STDERR_FILENO +STDIN_FILENO +STDOUT_FILENO +ST_NODEV +ST_NOSUID +ST_RDONLY +S_IEXEC +S_IFBLK +S_IFCHR +S_IFDIR +S_IFIFO +S_IFLNK +S_IFMT +S_IFREG +S_IFSOCK +S_IREAD +S_IRGRP +S_IROTH +S_IRUSR +S_IRWXG +S_IRWXO +S_IRWXU +S_ISGID +S_ISUID +S_ISVTX +S_IWGRP +S_IWOTH +S_IWRITE +S_IWUSR +S_IXGRP +S_IXOTH +S_IXUSR +TAB0 +TAB1 +TAB2 +TAB3 +TABDLY +TANDEM +TCFLSH +TCGETA +TCGETS +TCIFLUSH +TCIOFF +TCIOFLUSH +TCION +TCOFLUSH +TCOOFF +TCOON +TCP_KEEPALIVE +TCP_KEEPCNT +TCP_KEEPIDLE +TCP_KEEPINTVL +TCP_MAXSEG +TCP_NODELAY +TCP_NODELAYACK +TCP_RFC1323 +TCSADRAIN +TCSAFLUSH +TCSANOW +TCSBRK +TCSETA +TCSETAF +TCSETAW +TCSETS +TCSETSF +TCSETSW +TCXONC +THOUSEP +TIMEOFDAY +TIMER_ABSTIME +TIOC +TIOCCBRK +TIOCCDTR +TIOCCONS +TIOCEXCL +TIOCFLUSH +TIOCGETC +TIOCGETD +TIOCGETP +TIOCGLTC +TIOCGPGRP +TIOCGSID +TIOCGWINSZ +TIOCHPCL +TIOCLBIC +TIOCLBIS +TIOCLGET +TIOCLSET +TIOCMBIC +TIOCMBIS +TIOCMGET +TIOCMODG +TIOCMODS +TIOCMSET +TIOCM_CAR +TIOCM_CD +TIOCM_CTS +TIOCM_DSR +TIOCM_DTR +TIOCM_LE +TIOCM_RI +TIOCM_RNG +TIOCM_RTS +TIOCM_SR +TIOCM_ST +TIOCNOTTY +TIOCNXCL +TIOCOUTQ +TIOCPKT +TIOCPKT_DATA +TIOCPKT_DOSTOP +TIOCPKT_FLUSHREAD +TIOCPKT_FLUSHWRITE +TIOCPKT_NOSTOP +TIOCPKT_START +TIOCPKT_STOP +TIOCREMOTE +TIOCSBRK +TIOCSDTR +TIOCSETC +TIOCSETD +TIOCSETN +TIOCSETP +TIOCSLTC +TIOCSPGRP +TIOCSTART +TIOCSTI +TIOCSTOP +TIOCSWINSZ +TIOCUCNTL +TMP_MAX +TOSTOP +TRAP_BRKPT +TRAP_TRACE +T_FMT +T_FMT_AMPM +UF_SYSTEM +UIO_MAXIOV +USER_PROCESS +USRQUOTA +UTIME_NOW +UTIME_OMIT +VDISCRD +VDSUSP +VEOF +VEOL +VEOL2 +VERASE +VINTR +VKILL +VLNEXT +VMIN +VQUIT +VREPRINT +VSTART +VSTOP +VSUSP +VT0 +VT1 +VTDLY +VTIME +VWERSE +WCONTINUED +WCOREDUMP +WEXITED +WEXITSTATUS +WIFCONTINUED +WIFEXITED +WIFSIGNALED +WIFSTOPPED +WNOHANG +WNOWAIT +WPAR_INFO_FORMAT +WSTOPPED +WSTOPSIG +WTERMSIG +WUNTRACED +W_OK +XCASE +XTABS +X_OK +YESEXPR +YESSTR +_Errno +_IOFBF +_IOLBF +_IONBF +_PC_2_SYMLINKS +_PC_ALLOC_SIZE_MIN +_PC_ASYNC_IO +_PC_CHOWN_RESTRICTED +_PC_FILESIZEBITS +_PC_LINK_MAX +_PC_MAX_CANON +_PC_MAX_INPUT +_PC_NAME_MAX +_PC_NO_TRUNC +_PC_PATH_MAX +_PC_PIPE_BUF +_PC_PRIO_IO +_PC_REC_INCR_XFER_SIZE +_PC_REC_MAX_XFER_SIZE +_PC_REC_MIN_XFER_SIZE +_PC_REC_XFER_ALIGN +_PC_SYMLINK_MAX +_PC_SYNC_IO +_PC_TIMESTAMP_RESOLUTION +_PC_VDISABLE +_POSIX_VDISABLE +_SC_2_CHAR_TERM +_SC_2_C_BIND +_SC_2_C_DEV +_SC_2_C_VERSION +_SC_2_FORT_DEV +_SC_2_FORT_RUN +_SC_2_LOCALEDEF +_SC_2_PBS +_SC_2_PBS_ACCOUNTING +_SC_2_PBS_CHECKPOINT +_SC_2_PBS_LOCATE +_SC_2_PBS_MESSAGE +_SC_2_PBS_TRACK +_SC_2_SW_DEV +_SC_2_UPE +_SC_2_VERSION +_SC_ADVISORY_INFO +_SC_AIO_LISTIO_MAX +_SC_AIO_MAX +_SC_AIO_PRIO_DELTA_MAX +_SC_ARG_MAX +_SC_ASYNCHRONOUS_IO +_SC_ATEXIT_MAX +_SC_AVPHYS_PAGES +_SC_BARRIERS +_SC_BC_BASE_MAX +_SC_BC_DIM_MAX +_SC_BC_SCALE_MAX +_SC_BC_STRING_MAX +_SC_CHILD_MAX +_SC_CLK_TCK +_SC_CLOCK_SELECTION +_SC_COLL_WEIGHTS_MAX +_SC_CPUTIME +_SC_DELAYTIMER_MAX +_SC_EXPR_NEST_MAX +_SC_FSYNC +_SC_GETGR_R_SIZE_MAX +_SC_GETPW_R_SIZE_MAX +_SC_HOST_NAME_MAX +_SC_IOV_MAX +_SC_IPV6 +_SC_JOB_CONTROL +_SC_LINE_MAX +_SC_LOGIN_NAME_MAX +_SC_MAPPED_FILES +_SC_MEMLOCK +_SC_MEMLOCK_RANGE +_SC_MEMORY_PROTECTION +_SC_MESSAGE_PASSING +_SC_MONOTONIC_CLOCK +_SC_MQ_OPEN_MAX +_SC_MQ_PRIO_MAX +_SC_NGROUPS_MAX +_SC_NPROCESSORS_CONF +_SC_NPROCESSORS_ONLN +_SC_OPEN_MAX +_SC_PAGESIZE +_SC_PAGE_SIZE +_SC_PASS_MAX +_SC_PHYS_PAGES +_SC_PRIORITIZED_IO +_SC_PRIORITY_SCHEDULING +_SC_RAW_SOCKETS +_SC_READER_WRITER_LOCKS +_SC_REALTIME_SIGNALS +_SC_REGEXP +_SC_RE_DUP_MAX +_SC_RTSIG_MAX +_SC_SAVED_IDS +_SC_SEMAPHORES +_SC_SEM_NSEMS_MAX +_SC_SEM_VALUE_MAX +_SC_SHARED_MEMORY_OBJECTS +_SC_SHELL +_SC_SIGQUEUE_MAX +_SC_SPAWN +_SC_SPIN_LOCKS +_SC_SPORADIC_SERVER +_SC_SS_REPL_MAX +_SC_STREAM_MAX +_SC_SYMLOOP_MAX +_SC_SYNCHRONIZED_IO +_SC_THREADS +_SC_THREAD_ATTR_STACKADDR +_SC_THREAD_ATTR_STACKSIZE +_SC_THREAD_CPUTIME +_SC_THREAD_DESTRUCTOR_ITERATIONS +_SC_THREAD_KEYS_MAX +_SC_THREAD_PRIORITY_SCHEDULING +_SC_THREAD_PRIO_INHERIT +_SC_THREAD_PRIO_PROTECT +_SC_THREAD_PROCESS_SHARED +_SC_THREAD_SAFE_FUNCTIONS +_SC_THREAD_SPORADIC_SERVER +_SC_THREAD_STACK_MIN +_SC_THREAD_THREADS_MAX +_SC_TIMEOUTS +_SC_TIMERS +_SC_TIMER_MAX +_SC_TRACE +_SC_TRACE_EVENT_FILTER +_SC_TRACE_EVENT_NAME_MAX +_SC_TRACE_INHERIT +_SC_TRACE_LOG +_SC_TRACE_NAME_MAX +_SC_TRACE_SYS_MAX +_SC_TRACE_USER_EVENT_MAX +_SC_TTY_NAME_MAX +_SC_TYPED_MEMORY_OBJECTS +_SC_TZNAME_MAX +_SC_T_IOV_MAX +_SC_V6_ILP32_OFF32 +_SC_V6_ILP32_OFFBIG +_SC_V6_LP64_OFF64 +_SC_V6_LPBIG_OFFBIG +_SC_VERSION +_SC_XBS5_ILP32_OFF32 +_SC_XBS5_ILP32_OFFBIG +_SC_XBS5_LP64_OFF64 +_SC_XBS5_LPBIG_OFFBIG +_SC_XOPEN_CRYPT +_SC_XOPEN_ENH_I18N +_SC_XOPEN_LEGACY +_SC_XOPEN_REALTIME +_SC_XOPEN_REALTIME_THREADS +_SC_XOPEN_SHM +_SC_XOPEN_STREAMS +_SC_XOPEN_UNIX +_SC_XOPEN_VERSION +_SC_XOPEN_XCU_VERSION +_W_SEWTED +_W_SFWTED +_W_SLWTED +_W_STOPPED +_W_STRC +__context64 +__extctx_t +__pollfd_ext_u +__tm_context_t +__vmx_context_t +__vmxreg_t +__vsx_context_t +_exit +abort +accept +access +acct +addrinfo +aio_cancel +aio_error +aio_fsync +aio_read +aio_return +aio_suspend +aio_write +aiocb +alarm +aligned_alloc +atexit +atof +atoi +atol +atoll +basename +bind +blkcnt_t +blksize_t +brk +c_char +c_double +c_float +c_int +c_long +c_longlong +c_schar +c_short +c_uchar +c_uint +c_ulong +c_ulonglong +c_ushort +c_void +calloc +cc_t +cfgetispeed +cfgetospeed +cfmakeraw +cfsetispeed +cfsetospeed +cfsetspeed +chdir +chmod +chown +clearenv +clock_getcpuclockid +clock_getres +clock_gettime +clock_nanosleep +clock_settime +clock_t +clockid_t +close +closedir +closelog +cmsghdr +confstr +connect +creat +creat64 +ctermid +dev_t +dirent +dirfd +dirname +dlclose +dlerror +dlopen +dlsym +drand48 +dup +dup2 +duplocale +endgrent +endmntent +endpwent +endutent +endutxent +entry +erand48 +execl +execle +execlp +execv +execve +execvp +exit +exit_status +faccessat +fattach +fchmod +fchmodat +fchown +fchownat +fclose +fcntl +fd_set +fdatasync +fdopen +feof +ferror +fexecve +fflush +ffs +ffsl +ffsll +fgetc +fgetgrent +fgetpos +fgetpos64 +fgetpwent +fgets +fileno +flock +flock64 +fnmatch +fopen +fopen64 +fork +fpathconf +fpos_t +fpreg_t +fprintf +fputc +fputs +fread +free +freeaddrinfo +freelocale +freopen +freopen64 +fsblkcnt_t +fscanf +fseek +fseeko +fseeko64 +fsetpos +fsetpos64 +fsfilcnt_t +fsid64_t +fsid_t +fstat +fstat64 +fstatat +fstatfs +fstatfs64 +fstatvfs +fstatvfs64 +fsync +ftell +ftello +ftello64 +ftok +ftruncate +ftruncate64 +futimens +fwrite +gai_strerror +getaddrinfo +getchar +getchar_unlocked +getcontext +getcwd +getdomainname +getdtablesize +getegid +getenv +geteuid +getgid +getgrent +getgrgid +getgrgid_r +getgrnam +getgrnam_r +getgroups +getgrset +gethostid +gethostname +getitimer +getlogin +getmntent +getnameinfo +getopt +getpagesize +getpeername +getpgid +getpgrp +getpid +getppid +getpriority +getprotobyname +getprotobynumber +getpwent +getpwnam +getpwnam_r +getpwuid +getpwuid_r +getrlimit +getrlimit64 +getservbyname +getsockname +getsockopt +getsystemcfg +gettimeofday +getuid +getutent +getutid +getutline +getutxent +getutxid +getutxline +gid_t +glob +glob_t +globfree +gmtime +gmtime_r +grantpt +group +hasmntopt +hcreate +hdestroy +hostent +hsearch +hstrerror +htonl +htons +iconv +iconv_close +iconv_open +idtype_t +if_freenameindex +if_indextoname +if_nameindex +if_nametoindex +in6_addr +in6addr_any +in6addr_loopback +in_addr +in_addr_t +in_port_t +initgroups +ino_t +int16_t +int32_t +int64_t +int8_t +intmax_t +intptr_t +ioctl +iovec +ip_mreq +ip_mreq_source +ipc_perm +ipv6_mreq +isalnum +isalpha +isatty +isblank +iscntrl +isdigit +isgraph +islower +isprint +ispunct +isspace +isupper +isxdigit +itimerspec +itimerval +jrand48 +kill +lchown +lcong48 +lconv +lfind +linger +link +linkat +lio_listio +listen +loadquery +locale_t +localeconv +localtime +localtime_r +lpar_get_info +lpar_set_resources +lrand48 +lsearch +lseek +lseek64 +lstat +lstat64 +madvise +makecontext +mallinfo +malloc +mallopt +mcontext_t +memccpy +memchr +memcmp +memcpy +memmem +memmove +memset +memset_s +mincore +mkdir +mkdtemp +mkfifo +mkfifoat +mknod +mknodat +mkstemp +mktime +mlock +mlockall +mmap +mmsghdr +mntent +mode_t +mprotect +mq_attr +mq_close +mq_getattr +mq_notify +mq_open +mq_receive +mq_send +mq_setattr +mq_timedreceive +mq_timedsend +mq_unlink +mrand48 +msgctl +msgget +msghdr +msgrcv +msgsnd +msqid_ds +msync +munlock +munlockall +munmap +nanosleep +newlocale +nfds_t +nl_langinfo +nl_langinfo_l +nlink_t +nrand48 +ntohl +ntohs +off_t +open +open64 +opendir +openlog +osigevent +passwd +pathconf +pclose +perror +pid_t +pipe +poll +poll_ctl +poll_ctl_ext +pollfd +pollfd_ext +pollset_create +pollset_ctl +pollset_destroy +pollset_poll +pollset_query +popen +posix_fadvise +posix_fadvise64 +posix_fallocate +posix_fallocate64 +posix_madvise +posix_memalign +posix_openpt +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_spawnattr_t +posix_spawnp +pread +pread64 +preadv +printf +protoent +pselect +pseudo_AF_XTP +pthread_atfork +pthread_attr_destroy +pthread_attr_getdetachstate +pthread_attr_getguardsize +pthread_attr_getinheritsched +pthread_attr_getschedparam +pthread_attr_getschedpolicy +pthread_attr_getscope +pthread_attr_getstack +pthread_attr_getstackaddr +pthread_attr_getstacksize +pthread_attr_init +pthread_attr_setdetachstate +pthread_attr_setguardsize +pthread_attr_setinheritsched +pthread_attr_setschedparam +pthread_attr_setschedpolicy +pthread_attr_setscope +pthread_attr_setstack +pthread_attr_setstackaddr +pthread_attr_setstacksize +pthread_attr_t +pthread_barrier_destroy +pthread_barrier_init +pthread_barrier_t +pthread_barrier_wait +pthread_barrierattr_destroy +pthread_barrierattr_getpshared +pthread_barrierattr_init +pthread_barrierattr_setpshared +pthread_cancel +pthread_cleanup_pop +pthread_cleanup_push +pthread_cond_broadcast +pthread_cond_destroy +pthread_cond_init +pthread_cond_signal +pthread_cond_t +pthread_cond_timedwait +pthread_cond_wait +pthread_condattr_destroy +pthread_condattr_getclock +pthread_condattr_getpshared +pthread_condattr_init +pthread_condattr_setclock +pthread_condattr_setpshared +pthread_condattr_t +pthread_create +pthread_detach +pthread_equal +pthread_exit +pthread_getconcurrency +pthread_getcpuclockid +pthread_getschedparam +pthread_getspecific +pthread_join +pthread_key_create +pthread_key_delete +pthread_key_t +pthread_kill +pthread_mutex_consistent +pthread_mutex_destroy +pthread_mutex_getprioceiling +pthread_mutex_init +pthread_mutex_lock +pthread_mutex_setprioceiling +pthread_mutex_t +pthread_mutex_timedlock +pthread_mutex_trylock +pthread_mutex_unlock +pthread_mutexattr_destroy +pthread_mutexattr_getprioceiling +pthread_mutexattr_getprotocol +pthread_mutexattr_getpshared +pthread_mutexattr_getrobust +pthread_mutexattr_gettype +pthread_mutexattr_init +pthread_mutexattr_setprioceiling +pthread_mutexattr_setprotocol +pthread_mutexattr_setpshared +pthread_mutexattr_setrobust +pthread_mutexattr_settype +pthread_mutexattr_t +pthread_once +pthread_once_t +pthread_rwlock_destroy +pthread_rwlock_init +pthread_rwlock_rdlock +pthread_rwlock_t +pthread_rwlock_timedrdlock +pthread_rwlock_timedwrlock +pthread_rwlock_tryrdlock +pthread_rwlock_trywrlock +pthread_rwlock_unlock +pthread_rwlock_wrlock +pthread_rwlockattr_destroy +pthread_rwlockattr_getpshared +pthread_rwlockattr_init +pthread_rwlockattr_setpshared +pthread_rwlockattr_t +pthread_self +pthread_setcancelstate +pthread_setcanceltype +pthread_setconcurrency +pthread_setschedparam +pthread_setschedprio +pthread_setspecific +pthread_sigmask +pthread_spin_destroy +pthread_spin_init +pthread_spin_lock +pthread_spin_trylock +pthread_spin_unlock +pthread_spinlock_t +pthread_t +pthread_testcancel +ptrace64 +ptrdiff_t +ptsname +putchar +putchar_unlocked +putenv +puts +pututline +pututxline +pwrite +pwrite64 +pwritev +quotactl +raise +rand +read +readdir +readlink +readv +realloc +realpath +recv +recvfrom +recvmsg +regcomp +regerror +regex_t +regexec +regfree +regmatch_t +remove +rename +renameat +res_init +rewind +rewinddir +rlim_t +rlimit +rlimit64 +rmdir +rusage +sa_family_t +sbrk +scanf +sched_get_priority_max +sched_get_priority_min +sched_getparam +sched_getscheduler +sched_param +sched_rr_get_interval +sched_setparam +sched_setscheduler +sched_yield +seed48 +seekdir +select +sem_close +sem_destroy +sem_getvalue +sem_init +sem_open +sem_post +sem_t +sem_timedwait +sem_trywait +sem_unlink +sem_wait +sembuf +semctl +semget +semop +send +send_file +sendmsg +sendto +servent +setbuf +setcontext +setdomainname +setegid +setenv +seteuid +setgid +setgrent +setgroups +setitimer +setlocale +setlogmask +setmntent +setpgid +setpriority +setpwent +setregid +setreuid +setrlimit +setrlimit64 +setsid +setsockopt +settimeofday +setuid +setutent +setutxent +setvbuf +sf_parms +shm_open +shm_unlink +shmat +shmctl +shmdt +shmget +shmid_ds +shutdown +sigaction +sigaddset +sigaltstack +sigdelset +sigemptyset +sigevent +sigfillset +sighandler_t +siginfo_t +sigismember +signal +sigpending +sigprocmask +sigset_t +sigsuspend +sigtimedwait +sigval +sigwait +sigwaitinfo +size_t +sleep +snprintf +sockaddr +sockaddr_dl +sockaddr_in +sockaddr_in6 +sockaddr_storage +sockaddr_un +socket +socketpair +socklen_t +speed_t +sprintf +srand +srand48 +sscanf +ssize_t +st_timespec +stack_t +stat +stat64 +stat64at +statfs +statfs64 +statvfs +statvfs64 +statx +strcasecmp_l +strcat +strchr +strcmp +strcoll +strcpy +strcspn +strdup +strerror +strerror_r +strftime +strlen +strncasecmp_l +strncat +strncmp +strncpy +strnlen +strpbrk +strptime +strrchr +strsep +strspn +strstr +strtod +strtof +strtok +strtol +strtoll +strtoul +strtoull +strxfrm +suseconds_t +swapcontext +swapoff +swapon +symlink +symlinkat +sync +sysconf +syslog +system +tcdrain +tcflag_t +tcflow +tcflush +tcgetattr +tcgetpgrp +tcgetsid +tcsendbreak +tcsetattr +tcsetpgrp +telldir +termios +thr_kill +thr_self +time +time_t +timer_create +timer_delete +timer_getoverrun +timer_gettime +timer_settime +times +timespec +timeval +timezone +tm +tmpfile +tmpnam +tms +tolower +toupper +truncate64 +ttyname +ucontext_t +uid_t +uint16_t +uint32_t +uint64_t +uint8_t +uintmax_t +uintptr_t +uio_rw +umask +uname +ungetc +unlink +unlinkat +unlockpt +unsetenv +updwtmp +uselocale +usleep +utimbuf +utime +utimensat +utimes +utmp +utmpname +utmpx +utsname +wait +wait4 +waitid +waitpid +wchar_t +wcslen +wcstombs +wmemchr +write +writev +xutsname diff --git a/libc-test/test/cmsg.rs b/libc-test/test/cmsg.rs index 130b143cf9dbd..15f4fed1e30ec 100644 --- a/libc-test/test/cmsg.rs +++ b/libc-test/test/cmsg.rs @@ -68,10 +68,14 @@ mod t { mhdr.msg_control = pcmsghdr as *mut c_void; mhdr.msg_controllen = (160 - start_ofs) as _; for cmsg_len in 0..64 { + // Address must be a multiple of 0x4 for testing on AIX. + if cfg!(target_os = "aix") && cmsg_len % std::mem::size_of::() != 0 { + continue; + } for next_cmsg_len in 0..32 { unsafe { pcmsghdr.cast::().write_bytes(0, CAPACITY); - (*pcmsghdr).cmsg_len = cmsg_len; + (*pcmsghdr).cmsg_len = cmsg_len as _; let libc_next = libc::CMSG_NXTHDR(&mhdr, pcmsghdr); let next = cmsg_nxthdr(&mhdr, pcmsghdr); assert_eq!(libc_next, next); diff --git a/libc-test/test/makedev.rs b/libc-test/test/makedev.rs index 6cf180975b8c0..1c08776d7260f 100644 --- a/libc-test/test/makedev.rs +++ b/libc-test/test/makedev.rs @@ -24,7 +24,6 @@ cfg_if::cfg_if! { target_os = "l4re", target_os = "emscripten", target_os = "fuchsia", - target_os = "aix", target_os = "nto", target_os = "hurd", target_os = "openbsd", diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index a8bfca7d2266f..f06d475565cfd 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -1,4 +1,5 @@ use crate::prelude::*; +use crate::{in_addr_t, in_port_t}; pub type caddr_t = *mut c_char; pub type clockid_t = c_longlong; @@ -9,7 +10,6 @@ pub type dev_t = c_ulong; pub type fpos64_t = c_longlong; pub type fsblkcnt_t = c_ulong; pub type fsfilcnt_t = c_ulong; -pub type idtype_t = c_int; pub type ino_t = c_ulong; pub type key_t = c_int; pub type mode_t = c_uint; @@ -18,25 +18,23 @@ pub type rlim_t = c_ulong; pub type speed_t = c_uint; pub type tcflag_t = c_uint; pub type time_t = c_long; -pub type time64_t = crate::int64_t; +pub type time64_t = i64; pub type timer_t = c_long; pub type wchar_t = c_uint; -pub type nfds_t = c_int; +pub type nfds_t = c_uint; pub type projid_t = c_int; pub type id_t = c_uint; pub type blksize64_t = c_ulonglong; pub type blkcnt64_t = c_ulonglong; -pub type sctp_assoc_t = crate::uint32_t; - pub type suseconds_t = c_int; pub type useconds_t = c_uint; pub type off_t = c_long; +pub type offset_t = c_longlong; pub type off64_t = c_longlong; +pub type idtype_t = c_uint; pub type socklen_t = c_uint; pub type sa_family_t = c_uchar; -pub type in_port_t = c_ushort; -pub type in_addr_t = c_uint; pub type signal_t = c_int; pub type pthread_t = c_uint; @@ -69,6 +67,11 @@ e! { UIO_WRITE_NO_MOVE, UIO_PWRITE, } + #[repr(u32)] + pub enum ACTION { + FIND = 0, + ENTER, + } } s! { @@ -228,7 +231,7 @@ s! { pub sin_family: sa_family_t, pub sin_port: in_port_t, pub sin_addr: in_addr, - pub sin_zero: [c_char; 8], + pub sin_zero: [c_uchar; 8], } pub struct sockaddr_in6 { @@ -318,19 +321,6 @@ s! { pub sigev_notify_attributes: *mut pthread_attr_t, } - // Should be union with another 'sival_int' - pub struct sigval64 { - pub sival_ptr: c_ulonglong, - } - - pub struct sigevent64 { - pub sigev_value: sigval64, - pub sigev_signo: c_int, - pub sigev_notify: c_int, - pub sigev_notify_function: c_ulonglong, - pub sigev_notify_attributes: c_ulonglong, - } - pub struct osigevent { pub sevt_value: *mut c_void, pub sevt_signo: signal_t, @@ -402,7 +392,7 @@ s! { pub keepcost: c_int, } - pub struct utmp_exit_status { + pub struct exit_status { pub e_termination: c_short, pub e_exit: c_short, } @@ -414,7 +404,7 @@ s! { pub ut_pid: crate::pid_t, pub ut_type: c_short, pub ut_time: time64_t, - pub ut_exit: utmp_exit_status, + pub ut_exit: exit_status, pub ut_host: [c_char; 256], pub __dbl_word_pad: c_int, pub __reservedA: [c_int; 2], @@ -459,7 +449,7 @@ s! { pub shm_extshm: c_int, pub shm_pagesize: crate::int64_t, pub shm_lba: crate::uint64_t, - pub shm_reserved: crate::int64_t, + pub shm_reserved0: crate::int64_t, pub shm_reserved1: crate::int64_t, } @@ -554,7 +544,7 @@ s_no_extra_traits! { pub events: c_short, pub fd: c_int, pub u: __poll_ctl_ext_u, - pub reversed64: [u64; 6], + pub reserved64: [u64; 6], } } @@ -586,7 +576,7 @@ cfg_if! { && self.command == other.command && self.events == other.events && self.fd == other.fd - && self.reversed64 == other.reversed64 + && self.reserved64 == other.reserved64 && self.u == other.u } } @@ -599,7 +589,7 @@ cfg_if! { .field("events", &self.events) .field("fd", &self.fd) .field("u", &self.u) - .field("reversed64", &self.reversed64) + .field("reserved64", &self.reserved64) .finish() } } @@ -610,7 +600,7 @@ cfg_if! { self.events.hash(state); self.fd.hash(state); self.u.hash(state); - self.reversed64.hash(state); + self.reserved64.hash(state); } } } @@ -643,33 +633,33 @@ pub const O_DIRECTORY: c_int = 0x80000; pub const O_SEARCH: c_int = 0x20; pub const O_EXEC: c_int = 0x20; pub const O_CLOEXEC: c_int = 0x800000; -pub const O_ACCMODE: c_int = O_RDONLY | O_WRONLY | O_RDWR; +pub const O_ACCMODE: c_int = O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH; pub const O_DIRECT: c_int = 0x8000000; pub const O_TTY_INIT: c_int = 0; pub const O_RSYNC: c_int = 0x200000; pub const O_LARGEFILE: c_int = 0x4000000; -pub const F_CLOSEM: c_int = 10; +pub const F_DUPFD: c_int = 0; pub const F_DUPFD_CLOEXEC: c_int = 16; -pub const F_GETLK64: c_int = 11; -pub const F_SETLK64: c_int = 12; -pub const F_SETLKW64: c_int = 13; -pub const F_DUP2FD: c_int = 14; -pub const F_TSTLK: c_int = 15; +pub const F_GETFD: c_int = 1; +pub const F_SETFD: c_int = 2; +pub const F_GETFL: c_int = 3; +pub const F_SETFL: c_int = 4; pub const F_GETLK: c_int = F_GETLK64; pub const F_SETLK: c_int = F_SETLK64; pub const F_SETLKW: c_int = F_SETLKW64; pub const F_GETOWN: c_int = 8; pub const F_SETOWN: c_int = 9; +pub const F_CLOSEM: c_int = 10; +pub const F_GETLK64: c_int = 11; +pub const F_SETLK64: c_int = 12; +pub const F_SETLKW64: c_int = 13; +pub const F_DUP2FD: c_int = 14; +pub const F_TSTLK: c_int = 15; pub const AT_FDCWD: c_int = -2; pub const AT_SYMLINK_NOFOLLOW: c_int = 1; pub const AT_SYMLINK_FOLLOW: c_int = 2; pub const AT_REMOVEDIR: c_int = 1; pub const AT_EACCESS: c_int = 1; -pub const F_DUPFD: c_int = 0; -pub const F_GETFD: c_int = 1; -pub const F_SETFD: c_int = 2; -pub const F_GETFL: c_int = 3; -pub const F_SETFL: c_int = 4; pub const O_SYNC: c_int = 16; pub const O_NONBLOCK: c_int = 4; pub const FASYNC: c_int = 0x20000; @@ -754,25 +744,25 @@ pub const NOEXPR: crate::nl_item = 62; // locale.h pub const LC_GLOBAL_LOCALE: crate::locale_t = -1isize as crate::locale_t; +pub const LC_COLLATE: c_int = 0; pub const LC_CTYPE: c_int = 1; +pub const LC_MONETARY: c_int = 2; pub const LC_NUMERIC: c_int = 3; pub const LC_TIME: c_int = 4; -pub const LC_COLLATE: c_int = 0; -pub const LC_MONETARY: c_int = 2; -pub const LC_MESSAGES: c_int = 4; +pub const LC_MESSAGES: c_int = 5; pub const LC_ALL: c_int = -1; +pub const LC_COLLATE_MASK: c_int = 1; pub const LC_CTYPE_MASK: c_int = 2; +pub const LC_MESSAGES_MASK: c_int = 4; +pub const LC_MONETARY_MASK: c_int = 8; pub const LC_NUMERIC_MASK: c_int = 16; pub const LC_TIME_MASK: c_int = 32; -pub const LC_COLLATE_MASK: c_int = 1; -pub const LC_MONETARY_MASK: c_int = 8; -pub const LC_MESSAGES_MASK: c_int = 4; -pub const LC_ALL_MASK: c_int = LC_CTYPE_MASK - | LC_NUMERIC_MASK - | LC_TIME_MASK - | LC_COLLATE_MASK +pub const LC_ALL_MASK: c_int = LC_COLLATE_MASK + | LC_CTYPE_MASK + | LC_MESSAGES_MASK | LC_MONETARY_MASK - | LC_MESSAGES_MASK; + | LC_NUMERIC_MASK + | LC_TIME_MASK; // netdb.h pub const NI_MAXHOST: crate::socklen_t = 1025; @@ -808,8 +798,11 @@ pub const IPV6_ADDR_PREFERENCES: c_int = 74; pub const IPV6_CHECKSUM: c_int = 39; pub const IPV6_DONTFRAG: c_int = 45; pub const IPV6_DSTOPTS: c_int = 54; -pub const IPV6_FLOWINFO_FLOWLABEL: c_int = 16777215; -pub const IPV6_FLOWINFO_PRIORITY: c_int = 251658240; +pub const IPV6_FLOWINFO_FLOWLABEL: c_int = 0x00ffffff; +pub const IPV6_FLOWINFO_PRIORITY: c_int = 0x0f000000; +pub const IPV6_FLOWINFO_PRIFLOW: c_int = 0x0fffffff; +pub const IPV6_FLOWINFO_SRFLAG: c_int = 0x10000000; +pub const IPV6_FLOWINFO_VERSION: c_int = 0xf0000000; pub const IPV6_HOPLIMIT: c_int = 40; pub const IPV6_HOPOPTS: c_int = 52; pub const IPV6_NEXTHOP: c_int = 48; @@ -844,20 +837,20 @@ pub const DLT_PPP: c_int = 0x17; pub const DLT_FDDI: c_int = 0xf; pub const DLT_ATM: c_int = 0x25; pub const DLT_IPOIB: c_int = 0xc7; -pub const BIOCSETF: c_ulong = 0x80104267; -pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; -pub const BIOCGBLEN: c_int = 0x40044266; -pub const BIOCSBLEN: c_int = 0xc0044266; -pub const BIOCFLUSH: c_int = 0x20004268; -pub const BIOCPROMISC: c_int = 0x20004269; -pub const BIOCGDLT: c_int = 0x4004426a; -pub const BIOCSRTIMEOUT: c_int = 0x8010426d; -pub const BIOCGSTATS: c_int = 0x4008426f; -pub const BIOCIMMEDIATE: c_int = 0x80044270; -pub const BIOCVERSION: c_int = 0x40044271; -pub const BIOCSDEVNO: c_int = 0x20004272; -pub const BIOCGETIF: c_ulong = 0x4020426b; -pub const BIOCSETIF: c_ulong = 0xffffffff8020426c; +pub const BIOCSETF: c_long = -2146418073; +pub const BIOCGRTIMEOUT: c_long = 1074807406; +pub const BIOCGBLEN: c_long = 1074020966; +pub const BIOCSBLEN: c_long = -1073462682; +pub const BIOCFLUSH: c_long = 536887912; +pub const BIOCPROMISC: c_long = 536887913; +pub const BIOCGDLT: c_long = 1074020970; +pub const BIOCSRTIMEOUT: c_long = -2146418067; +pub const BIOCGSTATS: c_long = 1074283119; +pub const BIOCIMMEDIATE: c_long = -2147204496; +pub const BIOCVERSION: c_long = 1074020977; +pub const BIOCSDEVNO: c_long = 536887922; +pub const BIOCGETIF: c_long = 1075855979; +pub const BIOCSETIF: c_long = -2145369492; pub const BPF_ABS: c_int = 32; pub const BPF_ADD: c_int = 0; pub const BPF_ALIGNMENT: c_ulong = 4; @@ -1024,7 +1017,6 @@ pub const IPPROTO_SCTP: c_int = 132; pub const IPPROTO_MH: c_int = 135; pub const IPPROTO_GIF: c_int = 140; pub const IPPROTO_RAW: c_int = 255; -pub const IPPROTO_MAX: c_int = 256; pub const IP_OPTIONS: c_int = 1; pub const IP_HDRINCL: c_int = 2; pub const IP_TOS: c_int = 3; @@ -1121,7 +1113,7 @@ pub const TCP_KEEPCNT: c_int = 0x13; pub const TCP_NODELAYACK: c_int = 0x14; // pthread.h -pub const PTHREAD_BARRIER_SERIAL_THREAD: c_int = -1; +pub const PTHREAD_BARRIER_SERIAL_THREAD: c_int = 2; pub const PTHREAD_CREATE_JOINABLE: c_int = 0; pub const PTHREAD_CREATE_DETACHED: c_int = 1; pub const PTHREAD_PROCESS_SHARED: c_int = 0; @@ -1163,17 +1155,18 @@ pub const REG_EEOL: c_int = 16; pub const REG_ENOSYS: c_int = 17; // rpcsvc/mount.h -pub const NFSMNT_ACDIRMAX: c_int = 2048; -pub const NFSMNT_ACDIRMIN: c_int = 1024; -pub const NFSMNT_ACREGMAX: c_int = 512; -pub const NFSMNT_ACREGMIN: c_int = 256; -pub const NFSMNT_INT: c_int = 64; -pub const NFSMNT_NOAC: c_int = 128; -pub const NFSMNT_RETRANS: c_int = 16; -pub const NFSMNT_RSIZE: c_int = 4; -pub const NFSMNT_SOFT: c_int = 1; -pub const NFSMNT_TIMEO: c_int = 8; -pub const NFSMNT_WSIZE: c_int = 2; +pub const NFSMNT_SOFT: c_int = 0x001; +pub const NFSMNT_WSIZE: c_int = 0x002; +pub const NFSMNT_RSIZE: c_int = 0x004; +pub const NFSMNT_TIMEO: c_int = 0x008; +pub const NFSMNT_RETRANS: c_int = 0x010; +pub const NFSMNT_HOSTNAME: c_int = 0x020; +pub const NFSMNT_INT: c_int = 0x040; +pub const NFSMNT_NOAC: c_int = 0x080; +pub const NFSMNT_ACREGMIN: c_int = 0x0100; +pub const NFSMNT_ACREGMAX: c_int = 0x0200; +pub const NFSMNT_ACDIRMIN: c_int = 0x0400; +pub const NFSMNT_ACDIRMAX: c_int = 0x0800; // rpcsvc/rstat.h pub const CPUSTATES: c_int = 4; @@ -1276,35 +1269,19 @@ pub const EUNATCH: c_int = 42; pub const ENOCSI: c_int = 43; pub const EL2HLT: c_int = 44; pub const EDEADLK: c_int = 45; +pub const ENOTREADY: c_int = 46; +pub const EWRPROTECT: c_int = 47; +pub const EFORMAT: c_int = 48; pub const ENOLCK: c_int = 49; -pub const ECANCELED: c_int = 117; -pub const ENOTSUP: c_int = 124; -pub const EPROCLIM: c_int = 83; -pub const EDQUOT: c_int = 88; -pub const EOWNERDEAD: c_int = 95; -pub const ENOTRECOVERABLE: c_int = 94; -pub const ENOSTR: c_int = 123; -pub const ENODATA: c_int = 122; -pub const ETIME: c_int = 119; -pub const ENOSR: c_int = 118; -pub const EREMOTE: c_int = 93; -pub const ENOATTR: c_int = 112; -pub const ESAD: c_int = 113; -pub const ENOTRUST: c_int = 114; -pub const ENOLINK: c_int = 126; -pub const EPROTO: c_int = 121; -pub const EMULTIHOP: c_int = 125; -pub const EBADMSG: c_int = 120; -pub const ENAMETOOLONG: c_int = 86; -pub const EOVERFLOW: c_int = 127; -pub const EILSEQ: c_int = 116; -pub const ENOSYS: c_int = 109; -pub const ELOOP: c_int = 85; -pub const ERESTART: c_int = 82; -pub const ENOTEMPTY: c_int = 87; -pub const EUSERS: c_int = 84; +pub const ENOCONNECT: c_int = 50; +pub const ESTALE: c_int = 52; +pub const EDIST: c_int = 53; +pub const EWOULDBLOCK: c_int = EAGAIN; +pub const EINPROGRESS: c_int = 55; +pub const EALREADY: c_int = 56; pub const ENOTSOCK: c_int = 57; pub const EDESTADDRREQ: c_int = 58; +pub const EDESTADDREQ: c_int = EDESTADDRREQ; pub const EMSGSIZE: c_int = 59; pub const EPROTOTYPE: c_int = 60; pub const ENOPROTOOPT: c_int = 61; @@ -1324,15 +1301,43 @@ pub const ENOBUFS: c_int = 74; pub const EISCONN: c_int = 75; pub const ENOTCONN: c_int = 76; pub const ESHUTDOWN: c_int = 77; -pub const ETOOMANYREFS: c_int = 115; pub const ETIMEDOUT: c_int = 78; pub const ECONNREFUSED: c_int = 79; pub const EHOSTDOWN: c_int = 80; pub const EHOSTUNREACH: c_int = 81; -pub const EWOULDBLOCK: c_int = EAGAIN; -pub const EALREADY: c_int = 56; -pub const EINPROGRESS: c_int = 55; -pub const ESTALE: c_int = 52; +pub const ERESTART: c_int = 82; +pub const EPROCLIM: c_int = 83; +pub const EUSERS: c_int = 84; +pub const ELOOP: c_int = 85; +pub const ENAMETOOLONG: c_int = 86; +pub const ENOTEMPTY: c_int = EEXIST; +pub const EDQUOT: c_int = 88; +pub const ECORRUPT: c_int = 89; +pub const ESYSERROR: c_int = 90; +pub const EREMOTE: c_int = 93; +pub const ENOTRECOVERABLE: c_int = 94; +pub const EOWNERDEAD: c_int = 95; +// errnos 96-108 reserved for future use compatible with AIX PS/2 +pub const ENOSYS: c_int = 109; +pub const EMEDIA: c_int = 110; +pub const ESOFT: c_int = 111; +pub const ENOATTR: c_int = 112; +pub const ESAD: c_int = 113; +pub const ENOTRUST: c_int = 114; +pub const ETOOMANYREFS: c_int = 115; +pub const EILSEQ: c_int = 116; +pub const ECANCELED: c_int = 117; +pub const ENOSR: c_int = 118; +pub const ETIME: c_int = 119; +pub const EBADMSG: c_int = 120; +pub const EPROTO: c_int = 121; +pub const ENODATA: c_int = 122; +pub const ENOSTR: c_int = 123; +pub const ECLONEME: c_int = ERESTART; +pub const ENOTSUP: c_int = 124; +pub const EMULTIHOP: c_int = 125; +pub const ENOLINK: c_int = 126; +pub const EOVERFLOW: c_int = 127; // sys/dr.h pub const LPAR_INFO_FORMAT1: c_int = 1; @@ -1371,22 +1376,22 @@ pub const Q_SETQUOTA: c_int = 0x400; // sys/ioctl.h pub const IOCPARM_MASK: c_int = 0x7f; -pub const IOC_VOID: c_int = 0x20000000; -pub const IOC_OUT: c_int = 0x40000000; -pub const IOC_IN: c_int = 0x40000000 << 1; -pub const IOC_INOUT: c_int = IOC_IN | IOC_OUT; -pub const FIOCLEX: c_int = 536897025; -pub const FIONCLEX: c_int = 536897026; -pub const FIONREAD: c_int = 1074030207; -pub const FIONBIO: c_int = -2147195266; -pub const FIOASYNC: c_int = -2147195267; -pub const FIOSETOWN: c_int = -2147195268; -pub const FIOGETOWN: c_int = 1074030203; -pub const TIOCGETD: c_int = 0x40047400; -pub const TIOCSETD: c_int = 0x80047401; -pub const TIOCHPCL: c_int = 0x20007402; -pub const TIOCMODG: c_int = 0x40047403; -pub const TIOCMODS: c_int = 0x80047404; +pub const IOC_VOID: c_long = 536870912; +pub const IOC_OUT: c_long = 1073741824; +pub const IOC_IN: c_long = -2147483648; +pub const IOC_INOUT: c_long = IOC_IN | IOC_OUT; +pub const FIOCLEX: c_long = 536897025; +pub const FIONCLEX: c_long = 536897026; +pub const FIONREAD: c_long = 1074030207; +pub const FIONBIO: c_long = -2147195266; +pub const FIOASYNC: c_long = -2147195267; +pub const FIOSETOWN: c_long = -2147195268; +pub const FIOGETOWN: c_long = 1074030203; +pub const TIOCGETD: c_long = 1074033664; +pub const TIOCSETD: c_long = -2147191807; +pub const TIOCHPCL: c_long = 536900610; +pub const TIOCMODG: c_long = 1074033667; +pub const TIOCMODS: c_long = -2147191804; pub const TIOCM_LE: c_int = 0x1; pub const TIOCM_DTR: c_int = 0x2; pub const TIOCM_RTS: c_int = 0x4; @@ -1398,46 +1403,46 @@ pub const TIOCM_CD: c_int = 0x40; pub const TIOCM_RNG: c_int = 0x80; pub const TIOCM_RI: c_int = 0x80; pub const TIOCM_DSR: c_int = 0x100; -pub const TIOCGETP: c_int = 0x40067408; -pub const TIOCSETP: c_int = 0x80067409; -pub const TIOCSETN: c_int = 0x8006740a; -pub const TIOCEXCL: c_int = 0x2000740d; -pub const TIOCNXCL: c_int = 0x2000740e; -pub const TIOCFLUSH: c_int = 0x80047410; -pub const TIOCSETC: c_int = 0x80067411; -pub const TIOCGETC: c_int = 0x40067412; +pub const TIOCGETP: c_long = 1074164744; +pub const TIOCSETP: c_long = -2147060727; +pub const TIOCSETN: c_long = -2147060726; +pub const TIOCEXCL: c_long = 536900621; +pub const TIOCNXCL: c_long = 536900622; +pub const TIOCFLUSH: c_long = -2147191792; +pub const TIOCSETC: c_long = -2147060719; +pub const TIOCGETC: c_long = 1074164754; pub const TANDEM: c_int = 0x1; pub const CBREAK: c_int = 0x2; pub const LCASE: c_int = 0x4; pub const MDMBUF: c_int = 0x800000; pub const XTABS: c_int = 0xc00; -pub const SIOCADDMULTI: c_int = -2145359567; -pub const SIOCADDRT: c_int = -2143784438; -pub const SIOCDARP: c_int = -2142476000; -pub const SIOCDELMULTI: c_int = -2145359566; -pub const SIOCDELRT: c_int = -2143784437; -pub const SIOCDIFADDR: c_int = -2144835303; -pub const SIOCGARP: c_int = -1068734170; -pub const SIOCGIFADDR: c_int = -1071093471; -pub const SIOCGIFBRDADDR: c_int = -1071093469; -pub const SIOCGIFCONF: c_int = -1072666299; -pub const SIOCGIFDSTADDR: c_int = -1071093470; -pub const SIOCGIFFLAGS: c_int = -1071093487; -pub const SIOCGIFHWADDR: c_int = -1068209771; -pub const SIOCGIFMETRIC: c_int = -1071093481; -pub const SIOCGIFMTU: c_int = -1071093418; -pub const SIOCGIFNETMASK: c_int = -1071093467; -pub const SIOCSARP: c_int = -2142476002; -pub const SIOCSIFADDR: c_int = -2144835316; -pub const SIOCSIFBRDADDR: c_int = -2144835309; -pub const SIOCSIFDSTADDR: c_int = -2144835314; -pub const SIOCSIFFLAGS: c_int = -2144835312; -pub const SIOCSIFMETRIC: c_int = -2144835304; -pub const SIOCSIFMTU: c_int = -2144835240; -pub const SIOCSIFNETMASK: c_int = -2144835306; -pub const TIOCUCNTL: c_int = -2147191706; -pub const TIOCCONS: c_int = -2147191710; -pub const TIOCPKT: c_int = -2147191696; +pub const SIOCADDMULTI: c_long = -2145359567; +pub const SIOCADDRT: c_long = -2143784438; +pub const SIOCDARP: c_long = -2142476000; +pub const SIOCDELMULTI: c_long = -2145359566; +pub const SIOCDELRT: c_long = -2143784437; +pub const SIOCDIFADDR: c_long = -2144835303; +pub const SIOCGARP: c_long = -1068734170; +pub const SIOCGIFADDR: c_long = -1071093471; +pub const SIOCGIFBRDADDR: c_long = -1071093469; +pub const SIOCGIFCONF: c_long = -1072666299; +pub const SIOCGIFDSTADDR: c_long = -1071093470; +pub const SIOCGIFFLAGS: c_long = -1071093487; +pub const SIOCGIFHWADDR: c_long = -1068209771; +pub const SIOCGIFMETRIC: c_long = -1071093481; +pub const SIOCGIFMTU: c_long = -1071093418; +pub const SIOCGIFNETMASK: c_long = -1071093467; +pub const SIOCSARP: c_long = -2142476002; +pub const SIOCSIFADDR: c_long = -2144835316; +pub const SIOCSIFBRDADDR: c_long = -2144835309; +pub const SIOCSIFDSTADDR: c_long = -2144835314; +pub const SIOCSIFFLAGS: c_long = -2144835312; +pub const SIOCSIFMETRIC: c_long = -2144835304; +pub const SIOCSIFMTU: c_long = -2144835240; +pub const SIOCSIFNETMASK: c_long = -2144835306; +pub const TIOCUCNTL: c_long = -2147191706; +pub const TIOCCONS: c_long = -2147191710; +pub const TIOCPKT: c_long = -2147191696; pub const TIOCPKT_DATA: c_int = 0; pub const TIOCPKT_FLUSHREAD: c_int = 1; pub const TIOCPKT_FLUSHWRITE: c_int = 2; @@ -1463,9 +1468,13 @@ pub const SHM_LOCK: c_int = 201; pub const SHM_UNLOCK: c_int = 202; // sys/ldr.h +pub const L_GETMESSAGES: c_int = 1; pub const L_GETINFO: c_int = 2; -pub const L_GETMESSAGE: c_int = 1; pub const L_GETLIBPATH: c_int = 3; +pub const L_GETKERNINFO: c_int = 4; +pub const L_GETLIB32INFO: c_int = 5; +pub const L_GETLIB64INFO: c_int = 6; +pub const L_GETPROCINFO: c_int = 7; pub const L_GETXINFO: c_int = 8; // sys/limits.h @@ -2097,31 +2106,31 @@ pub const TCOON: c_int = 1; pub const TCIOFF: c_int = 2; pub const TCION: c_int = 3; pub const TIOC: c_int = 0x5400; -pub const TIOCGWINSZ: c_int = 0x40087468; -pub const TIOCSWINSZ: c_int = 0x80087467; -pub const TIOCLBIS: c_int = 0x8004747f; -pub const TIOCLBIC: c_int = 0x8004747e; -pub const TIOCLSET: c_int = 0x8004747d; -pub const TIOCLGET: c_int = 0x4004747c; -pub const TIOCSBRK: c_int = 0x2000747b; -pub const TIOCCBRK: c_int = 0x2000747a; -pub const TIOCSDTR: c_int = 0x20007479; -pub const TIOCCDTR: c_int = 0x20007478; -pub const TIOCSLTC: c_int = 0x80067475; -pub const TIOCGLTC: c_int = 0x40067474; -pub const TIOCOUTQ: c_int = 0x40047473; -pub const TIOCNOTTY: c_int = 0x20007471; -pub const TIOCSTOP: c_int = 0x2000746f; -pub const TIOCSTART: c_int = 0x2000746e; -pub const TIOCGPGRP: c_int = 0x40047477; -pub const TIOCSPGRP: c_int = 0x80047476; -pub const TIOCGSID: c_int = 0x40047448; -pub const TIOCSTI: c_int = 0x80017472; -pub const TIOCMSET: c_int = 0x8004746d; -pub const TIOCMBIS: c_int = 0x8004746c; -pub const TIOCMBIC: c_int = 0x8004746b; -pub const TIOCMGET: c_int = 0x4004746a; -pub const TIOCREMOTE: c_int = 0x80047469; +pub const TIOCGWINSZ: c_long = 1074295912; +pub const TIOCSWINSZ: c_long = -2146929561; +pub const TIOCLBIS: c_long = -2147191681; +pub const TIOCLBIC: c_long = -2147191682; +pub const TIOCLSET: c_long = -2147191683; +pub const TIOCLGET: c_long = 1074033788; +pub const TIOCSBRK: c_long = 536900731; +pub const TIOCCBRK: c_long = 536900730; +pub const TIOCSDTR: c_long = 536900729; +pub const TIOCCDTR: c_long = 536900728; +pub const TIOCSLTC: c_long = -2147060619; +pub const TIOCGLTC: c_long = 1074164852; +pub const TIOCOUTQ: c_long = 1074033779; +pub const TIOCNOTTY: c_long = 536900721; +pub const TIOCSTOP: c_long = 536900719; +pub const TIOCSTART: c_long = 536900718; +pub const TIOCGPGRP: c_long = 1074033783; +pub const TIOCSPGRP: c_long = -2147191690; +pub const TIOCGSID: c_long = 1074033736; +pub const TIOCSTI: c_long = -2147388302; +pub const TIOCMSET: c_long = -2147191699; +pub const TIOCMBIS: c_long = -2147191700; +pub const TIOCMBIC: c_long = -2147191701; +pub const TIOCMGET: c_long = 1074033770; +pub const TIOCREMOTE: c_long = -2147191703; // sys/user.h pub const MAXCOMLEN: c_int = 32; @@ -2133,9 +2142,9 @@ pub const AT_GID: c_int = 8; pub const AT_UID: c_int = 4; // sys/wait.h -pub const P_ALL: c_int = 0; -pub const P_PID: c_int = 1; -pub const P_PGID: c_int = 2; +pub const P_ALL: idtype_t = 0; +pub const P_PID: idtype_t = 1; +pub const P_PGID: idtype_t = 2; pub const WNOHANG: c_int = 0x1; pub const WUNTRACED: c_int = 0x2; pub const WEXITED: c_int = 0x04; @@ -2157,7 +2166,7 @@ pub const CS6: crate::tcflag_t = 0x00000010; pub const CS7: crate::tcflag_t = 0x00000020; pub const CS8: crate::tcflag_t = 0x00000030; pub const CSTOPB: crate::tcflag_t = 0x00000040; -pub const ECHO: crate::tcflag_t = 0x20000; +pub const ECHO: crate::tcflag_t = 0x00000008; pub const ECHOE: crate::tcflag_t = 0x00000010; pub const ECHOK: crate::tcflag_t = 0x00000020; pub const ECHONL: crate::tcflag_t = 0x00000040; @@ -2173,7 +2182,7 @@ pub const ISTRIP: crate::tcflag_t = 0x00000020; pub const INLCR: crate::tcflag_t = 0x00000040; pub const IGNCR: crate::tcflag_t = 0x00000080; pub const ICRNL: crate::tcflag_t = 0x00000100; -pub const IXON: crate::tcflag_t = 0x0001; +pub const IXON: crate::tcflag_t = 0x00000200; pub const IXOFF: crate::tcflag_t = 0x00000400; pub const IXANY: crate::tcflag_t = 0x00001000; pub const IMAXBEL: crate::tcflag_t = 0x00010000; @@ -2426,7 +2435,7 @@ pub const _SC_IPV6: c_int = 154; pub const _SC_RAW_SOCKETS: c_int = 155; // utmp.h -pub const EMPTY: c_short = -1; +pub const EMPTY: c_short = 0; pub const RUN_LVL: c_short = 1; pub const BOOT_TIME: c_short = 2; pub const OLD_TIME: c_short = 3; @@ -2579,109 +2588,249 @@ extern "C" { parent: Option, child: Option, ) -> c_int; + + pub fn pthread_attr_getdetachstate( + attr: *const crate::pthread_attr_t, + detachstate: *mut c_int, + ) -> c_int; + pub fn pthread_attr_getguardsize( attr: *const crate::pthread_attr_t, guardsize: *mut size_t, ) -> c_int; - pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int; + + pub fn pthread_attr_getinheritsched( + attr: *const crate::pthread_attr_t, + inheritsched: *mut c_int, + ) -> c_int; + pub fn pthread_attr_getschedparam( attr: *const crate::pthread_attr_t, param: *mut sched_param, ) -> c_int; + + pub fn pthread_attr_getstackaddr( + attr: *const crate::pthread_attr_t, + stackaddr: *mut *mut c_void, + ) -> c_int; + + pub fn pthread_attr_getschedpolicy( + attr: *const crate::pthread_attr_t, + policy: *mut c_int, + ) -> c_int; + + pub fn pthread_attr_getscope( + attr: *const crate::pthread_attr_t, + contentionscope: *mut c_int, + ) -> c_int; + pub fn pthread_attr_getstack( attr: *const crate::pthread_attr_t, stackaddr: *mut *mut c_void, stacksize: *mut size_t, ) -> c_int; + + pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int; + + pub fn pthread_attr_setinheritsched( + attr: *mut crate::pthread_attr_t, + inheritsched: c_int, + ) -> c_int; + pub fn pthread_attr_setschedparam( attr: *mut crate::pthread_attr_t, param: *const sched_param, ) -> c_int; - pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> c_int; - pub fn pthread_barrier_init( - barrier: *mut pthread_barrier_t, - attr: *const crate::pthread_barrierattr_t, - count: c_uint, + + pub fn pthread_attr_setschedpolicy(attr: *mut crate::pthread_attr_t, policy: c_int) -> c_int; + + pub fn pthread_attr_setscope(attr: *mut crate::pthread_attr_t, contentionscope: c_int) + -> c_int; + + pub fn pthread_attr_setstack( + attr: *mut crate::pthread_attr_t, + stackaddr: *mut c_void, + stacksize: size_t, ) -> c_int; - pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> c_int; + + pub fn pthread_attr_setstackaddr( + attr: *mut crate::pthread_attr_t, + stackaddr: *mut c_void, + ) -> c_int; + pub fn pthread_barrierattr_destroy(attr: *mut crate::pthread_barrierattr_t) -> c_int; + pub fn pthread_barrierattr_getpshared( attr: *const crate::pthread_barrierattr_t, - shared: *mut c_int, + pshared: *mut c_int, ) -> c_int; + pub fn pthread_barrierattr_init(attr: *mut crate::pthread_barrierattr_t) -> c_int; + pub fn pthread_barrierattr_setpshared( attr: *mut crate::pthread_barrierattr_t, - shared: c_int, + pshared: c_int, ) -> c_int; + + pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> c_int; + + pub fn pthread_barrier_init( + barrier: *mut pthread_barrier_t, + attr: *const crate::pthread_barrierattr_t, + count: c_uint, + ) -> c_int; + + pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> c_int; + pub fn pthread_cancel(thread: crate::pthread_t) -> c_int; + + pub fn pthread_cleanup_pop(execute: c_int) -> c_void; + + pub fn pthread_cleanup_push( + routine: Option, + arg: *mut c_void, + ) -> c_void; + pub fn pthread_condattr_getclock( attr: *const pthread_condattr_t, clock_id: *mut clockid_t, ) -> c_int; + pub fn pthread_condattr_getpshared( attr: *const pthread_condattr_t, pshared: *mut c_int, ) -> c_int; + pub fn pthread_condattr_setclock( attr: *mut pthread_condattr_t, clock_id: crate::clockid_t, ) -> c_int; + pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: c_int) -> c_int; + pub fn pthread_create( - native: *mut crate::pthread_t, + thread: *mut crate::pthread_t, attr: *const crate::pthread_attr_t, - f: extern "C" fn(*mut c_void) -> *mut c_void, - value: *mut c_void, + start_routine: extern "C" fn(*mut c_void) -> *mut c_void, + arg: *mut c_void, ) -> c_int; - pub fn pthread_getattr_np(native: crate::pthread_t, attr: *mut crate::pthread_attr_t) -> c_int; - pub fn pthread_getcpuclockid(thread: crate::pthread_t, clk_id: *mut crate::clockid_t) -> c_int; + + pub fn pthread_getconcurrency() -> c_int; + + pub fn pthread_getcpuclockid( + thread_id: crate::pthread_t, + clock_id: *mut crate::clockid_t, + ) -> c_int; + pub fn pthread_getschedparam( thread: crate::pthread_t, policy: *mut c_int, param: *mut sched_param, ) -> c_int; - pub fn pthread_kill(thread: crate::pthread_t, signal: c_int) -> c_int; - pub fn pthread_mutex_consistent(mutex: *mut crate::pthread_mutex_t) -> c_int; - pub fn pthread_mutex_timedlock( - lock: *mut pthread_mutex_t, - abstime: *const crate::timespec, + + pub fn pthread_kill(thread: crate::pthread_t, sig: c_int) -> c_int; + + pub fn pthread_mutexattr_getprioceiling( + attr: *const crate::pthread_mutexattr_t, + prioceiling: *mut c_int, ) -> c_int; + pub fn pthread_mutexattr_getprotocol( attr: *const pthread_mutexattr_t, protocol: *mut c_int, ) -> c_int; + pub fn pthread_mutexattr_getpshared( attr: *const pthread_mutexattr_t, pshared: *mut c_int, ) -> c_int; + pub fn pthread_mutexattr_getrobust( - attr: *mut crate::pthread_mutexattr_t, + attr: *const crate::pthread_mutexattr_t, robust: *mut c_int, ) -> c_int; + + pub fn pthread_mutexattr_gettype( + attr: *const crate::pthread_mutexattr_t, + _type: *mut c_int, + ) -> c_int; + + pub fn pthread_mutexattr_setprioceiling( + attr: *mut crate::pthread_mutexattr_t, + prioceiling: c_int, + ) -> c_int; + pub fn pthread_mutexattr_setprotocol(attr: *mut pthread_mutexattr_t, protocol: c_int) -> c_int; + pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, pshared: c_int) -> c_int; + pub fn pthread_mutexattr_setrobust( attr: *mut crate::pthread_mutexattr_t, robust: c_int, ) -> c_int; + + pub fn pthread_mutex_consistent(mutex: *mut crate::pthread_mutex_t) -> c_int; + + pub fn pthread_mutex_getprioceiling( + mutex: *const crate::pthread_mutex_t, + prioceiling: *mut c_int, + ) -> c_int; + + pub fn pthread_mutex_setprioceiling( + mutex: *mut crate::pthread_mutex_t, + prioceiling: c_int, + old_ceiling: *mut c_int, + ) -> c_int; + + pub fn pthread_mutex_timedlock( + mutex: *mut pthread_mutex_t, + abstime: *const crate::timespec, + ) -> c_int; + + pub fn pthread_once( + once_control: *mut crate::pthread_once_t, + init_routine: Option, + ) -> c_int; + pub fn pthread_rwlockattr_getpshared( attr: *const pthread_rwlockattr_t, - val: *mut c_int, + pshared: *mut c_int, + ) -> c_int; + + pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, pshared: c_int) -> c_int; + + pub fn pthread_rwlock_timedrdlock( + rwlock: *mut crate::pthread_rwlock_t, + abstime: *const crate::timespec, + ) -> c_int; + + pub fn pthread_rwlock_timedwrlock( + rwlock: *mut crate::pthread_rwlock_t, + abstime: *const crate::timespec, ) -> c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: c_int) -> c_int; + + pub fn pthread_setcancelstate(state: c_int, oldstate: *mut c_int) -> c_int; + pub fn pthread_setcanceltype(_type: c_int, oldtype: *mut c_int) -> c_int; + + pub fn pthread_setconcurrency(new_level: c_int) -> c_int; + pub fn pthread_setschedparam( thread: crate::pthread_t, policy: c_int, param: *const sched_param, ) -> c_int; - pub fn pthread_setschedprio(native: crate::pthread_t, priority: c_int) -> c_int; - pub fn pthread_sigmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; + + pub fn pthread_setschedprio(thread: crate::pthread_t, prio: c_int) -> c_int; + + pub fn pthread_sigmask(how: c_int, set: *const sigset_t, oset: *mut sigset_t) -> c_int; + pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> c_int; pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: c_int) -> c_int; pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> c_int; pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> c_int; pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> c_int; + + pub fn pthread_testcancel() -> c_void; } #[link(name = "iconv")] @@ -2698,14 +2847,25 @@ extern "C" { } extern "C" { - pub fn acct(filename: *const c_char) -> c_int; + pub fn acct(filename: *mut c_char) -> c_int; + #[link_name = "_posix_aio_cancel"] pub fn aio_cancel(fildes: c_int, aiocbp: *mut crate::aiocb) -> c_int; - pub fn aio_error(aiocbp: *mut crate::aiocb) -> c_int; + #[link_name = "_posix_aio_error"] + pub fn aio_error(aiocbp: *const crate::aiocb) -> c_int; #[link_name = "_posix_aio_fsync"] pub fn aio_fsync(op: c_int, aiocbp: *mut crate::aiocb) -> c_int; + #[link_name = "_posix_aio_read"] pub fn aio_read(aiocbp: *mut crate::aiocb) -> c_int; - // pub fn aio_suspend - // pub fn aio_write + #[link_name = "_posix_aio_return"] + pub fn aio_return(aiocbp: *mut crate::aiocb) -> ssize_t; + #[link_name = "_posix_aio_suspend"] + pub fn aio_suspend( + list: *const *const crate::aiocb, + nent: c_int, + timeout: *const crate::timespec, + ) -> c_int; + #[link_name = "_posix_aio_write"] + pub fn aio_write(aiocbp: *mut crate::aiocb) -> c_int; pub fn basename(path: *mut c_char) -> *mut c_char; pub fn bind( socket: c_int, @@ -2771,6 +2931,7 @@ extern "C" { pub fn getdtablesize() -> c_int; pub fn getgrent() -> *mut crate::group; pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; + #[link_name = "_posix_getgrgid_r"] pub fn getgrgid_r( gid: crate::gid_t, grp: *mut crate::group, @@ -2779,14 +2940,15 @@ extern "C" { result: *mut *mut crate::group, ) -> c_int; pub fn getgrnam(name: *const c_char) -> *mut crate::group; + #[link_name = "_posix_getgrnam_r"] pub fn getgrnam_r( name: *const c_char, grp: *mut crate::group, buf: *mut c_char, - buflen: size_t, + buflen: c_int, result: *mut *mut crate::group, ) -> c_int; - pub fn getgrset(user: *mut c_char) -> *mut c_char; + pub fn getgrset(user: *const c_char) -> *mut c_char; pub fn gethostid() -> c_long; pub fn getmntent(stream: *mut crate::FILE) -> *mut crate::mntent; pub fn getnameinfo( @@ -2799,9 +2961,9 @@ extern "C" { flags: c_int, ) -> c_int; pub fn getpagesize() -> c_int; - pub fn getpeereid(socket: c_int, euid: *mut crate::uid_t, egid: *mut crate::gid_t) -> c_int; pub fn getpriority(which: c_int, who: crate::id_t) -> c_int; pub fn getpwent() -> *mut crate::passwd; + #[link_name = "_posix_getpwnam_r"] pub fn getpwnam_r( name: *const c_char, pwd: *mut passwd, @@ -2809,6 +2971,7 @@ extern "C" { buflen: size_t, result: *mut *mut passwd, ) -> c_int; + #[link_name = "_posix_getpwuid_r"] pub fn getpwuid_r( uid: crate::uid_t, pwd: *mut passwd, @@ -2836,7 +2999,7 @@ extern "C" { pub fn hasmntopt(mnt: *const crate::mntent, opt: *const c_char) -> *mut c_char; pub fn hcreate(nelt: size_t) -> c_int; pub fn hdestroy(); - pub fn hsearch(entry: entry, action: c_int) -> *mut entry; + pub fn hsearch(entry: entry, action: ACTION) -> *mut entry; pub fn if_freenameindex(ptr: *mut if_nameindex); pub fn if_nameindex() -> *mut if_nameindex; pub fn initgroups(name: *const c_char, basegid: crate::gid_t) -> c_int; @@ -2850,13 +3013,14 @@ extern "C" { width: size_t, compar: Option c_int>, ) -> *mut c_void; + #[link_name = "_posix_lio_listio"] pub fn lio_listio( mode: c_int, aiocb_list: *const *mut aiocb, - nitems: c_int, + nent: c_int, sevp: *mut sigevent, ) -> c_int; - pub fn loadquery(flags: c_int, buf: *mut c_char, buflen: c_uint) -> c_int; + pub fn loadquery(flags: c_int, buf: *mut c_void, buflen: c_uint, ...) -> c_int; pub fn lpar_get_info(command: c_int, buf: *mut c_void, bufsize: size_t) -> c_int; pub fn lpar_set_resources(id: c_int, resource: *mut c_void) -> c_int; pub fn lrand48() -> c_long; @@ -2869,7 +3033,7 @@ extern "C" { ) -> *mut c_void; pub fn lseek64(fd: c_int, offset: off64_t, whence: c_int) -> off64_t; pub fn lstat64(path: *const c_char, buf: *mut stat64) -> c_int; - pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; + pub fn madvise(addr: caddr_t, len: size_t, advice: c_int) -> c_int; pub fn makecontext(ucp: *mut crate::ucontext_t, func: extern "C" fn(), argc: c_int, ...); pub fn mallinfo() -> crate::mallinfo; pub fn mallopt(param: c_int, value: c_int) -> c_int; @@ -2880,10 +3044,9 @@ extern "C" { needlelen: size_t, ) -> *mut c_void; pub fn memset_s(s: *mut c_void, smax: size_t, c: c_int, n: size_t) -> c_int; - pub fn mincore(addr: *const c_void, len: size_t, vec: *mut c_char) -> c_int; + pub fn mincore(addr: caddr_t, len: size_t, vec: *mut c_char) -> c_int; pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, dev: dev_t) -> c_int; - pub fn mount(device: *const c_char, path: *const c_char, flags: c_int) -> c_int; pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; pub fn mq_close(mqd: crate::mqd_t) -> c_int; pub fn mq_getattr(mqd: crate::mqd_t, attr: *mut crate::mq_attr) -> c_int; @@ -3027,7 +3190,7 @@ extern "C" { envp: *const *mut c_char, ) -> c_int; pub fn pread64(fd: c_int, buf: *mut c_void, count: size_t, offset: off64_t) -> ssize_t; - pub fn preadv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; + pub fn preadv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: offset_t) -> ssize_t; pub fn ptrace64( request: c_int, id: c_longlong, @@ -3038,11 +3201,13 @@ extern "C" { pub fn pututline(u: *const utmp) -> *mut utmp; pub fn pututxline(ut: *const utmpx) -> *mut utmpx; pub fn pwrite64(fd: c_int, buf: *const c_void, count: size_t, offset: off64_t) -> ssize_t; - pub fn pwritev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off_t) -> ssize_t; - #[link_name = "__linux_quotactl"] - pub fn quotactl(cmd: c_int, special: *const c_char, id: c_int, data: *mut c_char) -> c_int; + pub fn pwritev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: offset_t) + -> ssize_t; + pub fn quotactl(cmd: *mut c_char, special: c_int, id: c_int, data: caddr_t) -> c_int; pub fn rand() -> c_int; pub fn readv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; + // AIX header socket.h maps recvfrom() to nrecvfrom() + #[link_name = "nrecvfrom"] pub fn recvfrom( socket: c_int, buf: *mut c_void, @@ -3051,13 +3216,8 @@ extern "C" { addr: *mut crate::sockaddr, addrlen: *mut crate::socklen_t, ) -> ssize_t; - pub fn recvmmsg( - sockfd: c_int, - msgvec: *mut crate::mmsghdr, - vlen: c_uint, - flags: c_int, - timeout: *mut crate::timespec, - ) -> c_int; + // AIX header socket.h maps recvmsg() to nrecvmsg(). + #[link_name = "nrecvmsg"] pub fn recvmsg(sockfd: c_int, msg: *mut msghdr, flags: c_int) -> ssize_t; pub fn regcomp(preg: *mut regex_t, pattern: *const c_char, cflags: c_int) -> c_int; pub fn regerror( @@ -3086,14 +3246,6 @@ extern "C" { policy: c_int, param: *const crate::sched_param, ) -> c_int; - pub fn sctp_opt_info( - sd: c_int, - id: crate::sctp_assoc_t, - opt: c_int, - arg_size: *mut c_void, - size: *mut size_t, - ) -> c_int; - pub fn sctp_peeloff(s: c_int, id: crate::sctp_assoc_t) -> c_int; pub fn seed48(xseed: *mut c_ushort) -> *mut c_ushort; pub fn seekdir(dirp: *mut crate::DIR, loc: c_long); pub fn sem_close(sem: *mut sem_t) -> c_int; @@ -3107,20 +3259,19 @@ extern "C" { pub fn semget(key: crate::key_t, nsems: c_int, semflag: c_int) -> c_int; pub fn semop(semid: c_int, sops: *mut sembuf, nsops: size_t) -> c_int; pub fn send_file(socket: *mut c_int, iobuf: *mut sf_parms, flags: c_uint) -> ssize_t; - pub fn sendmmsg(sockfd: c_int, msgvec: *mut mmsghdr, vlen: c_uint, flags: c_int) -> c_int; + // AIX header socket.h maps sendmsg() to nsendmsg(). + #[link_name = "nsendmsg"] pub fn sendmsg(sockfd: c_int, msg: *const msghdr, flags: c_int) -> ssize_t; pub fn setcontext(ucp: *const ucontext_t) -> c_int; - pub fn setdomainname(name: *const c_char, len: c_int) -> c_int; - pub fn setgroups(ngroups: c_int, ptr: *const crate::gid_t) -> c_int; + pub fn setdomainname(name: *mut c_char, len: c_int) -> c_int; + pub fn setgroups(ngroups: c_int, ptr: *mut crate::gid_t) -> c_int; pub fn setgrent(); - pub fn sethostid(hostid: c_int) -> c_int; - pub fn sethostname(name: *const c_char, len: c_int) -> c_int; pub fn setmntent(filename: *const c_char, ty: *const c_char) -> *mut crate::FILE; pub fn setpriority(which: c_int, who: id_t, priority: c_int) -> c_int; pub fn setpwent(); pub fn setrlimit(resource: c_int, rlim: *const crate::rlimit) -> c_int; pub fn setrlimit64(resource: c_int, rlim: *const rlimit64) -> c_int; - pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int; + pub fn settimeofday(tv: *mut crate::timeval, tz: *mut crate::timezone) -> c_int; pub fn setitimer( which: c_int, new_value: *const crate::itimerval, @@ -3143,15 +3294,14 @@ extern "C" { pub fn shmget(key: key_t, size: size_t, shmflg: c_int) -> c_int; pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; pub fn shm_unlink(name: *const c_char) -> c_int; - pub fn splice(socket1: c_int, socket2: c_int, flags: c_int) -> c_int; pub fn srand(seed: c_uint); pub fn srand48(seed: c_long); pub fn stat64(path: *const c_char, buf: *mut stat64) -> c_int; pub fn stat64at(dirfd: c_int, path: *const c_char, buf: *mut stat64, flags: c_int) -> c_int; - pub fn statfs(path: *const c_char, buf: *mut statfs) -> c_int; - pub fn statfs64(path: *const c_char, buf: *mut statfs64) -> c_int; + pub fn statfs(path: *mut c_char, buf: *mut statfs) -> c_int; + pub fn statfs64(path: *mut c_char, buf: *mut statfs64) -> c_int; pub fn statvfs64(path: *const c_char, buf: *mut statvfs64) -> c_int; - pub fn statx(path: *const c_char, buf: *mut stat, length: c_int, command: c_int) -> c_int; + pub fn statx(path: *mut c_char, buf: *mut stat, length: c_int, command: c_int) -> c_int; pub fn strcasecmp_l( string1: *const c_char, string2: *const c_char, @@ -3173,8 +3323,8 @@ extern "C" { pub fn strptime(s: *const c_char, format: *const c_char, tm: *mut crate::tm) -> *mut c_char; pub fn strsep(string: *mut *mut c_char, delim: *const c_char) -> *mut c_char; pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> c_int; - pub fn swapoff(puath: *const c_char) -> c_int; - pub fn swapon(path: *const c_char) -> c_int; + pub fn swapoff(puath: *mut c_char) -> c_int; + pub fn swapon(path: *mut c_char) -> c_int; pub fn sync(); pub fn telldir(dirp: *mut crate::DIR) -> c_long; pub fn timer_create( @@ -3193,9 +3343,9 @@ extern "C" { ) -> c_int; pub fn truncate64(path: *const c_char, length: off64_t) -> c_int; pub fn uname(buf: *mut crate::utsname) -> c_int; - pub fn updwtmp(file: *const c_char, u: *mut utmp); + pub fn updwtmp(file: *const c_char, u: *const utmp); pub fn uselocale(loc: crate::locale_t) -> crate::locale_t; - pub fn utmpname(file: *const c_char) -> c_int; + pub fn utmpname(file: *mut c_char) -> c_int; pub fn utimensat( dirfd: c_int, path: *const c_char, diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index fcb9e6edfafa7..1bc177841afcd 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -29,7 +29,7 @@ s! { pub f_files: crate::fsfilcnt_t, pub f_ffree: crate::fsfilcnt_t, pub f_favail: crate::fsfilcnt_t, - pub f_fsid: c_ulong, + pub f_fsid: crate::fsid_t, pub f_basetype: [c_char; 16], pub f_flag: c_ulong, pub f_namemax: c_ulong, @@ -49,6 +49,10 @@ s! { __mt_word: [c_long; 8], } + pub struct pthread_once_t { + __on_word: [c_long; 9], + } + pub struct stat { pub st_dev: crate::dev_t, pub st_ino: crate::ino_t, @@ -59,9 +63,9 @@ s! { pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, pub st_ssize: c_int, - pub st_atime: crate::st_timespec, - pub st_mtime: crate::st_timespec, - pub st_ctime: crate::st_timespec, + pub st_atim: crate::st_timespec, + pub st_mtim: crate::st_timespec, + pub st_ctim: crate::st_timespec, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, pub st_vfstype: c_int, @@ -112,20 +116,47 @@ s! { pub aio_sigev_tid: c_long, } - pub struct ucontext_t { - pub __sc_onstack: c_int, - pub uc_sigmask: crate::sigset_t, - pub __sc_uerror: c_int, - pub uc_mcontext: crate::mcontext_t, - pub uc_link: *mut ucontext_t, - pub uc_stack: crate::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 __vmxreg_t { + __v: [c_uint; 4], } - pub struct mcontext_t { + pub struct __vmx_context_t { + pub __vr: [crate::__vmxreg_t; 32], + pub __pad1: [c_uint; 3], + pub __vscr: c_uint, + pub __vrsave: c_uint, + pub __pad2: [c_uint; 3], + } + + pub struct __vsx_context_t { + pub __vsr_dw1: [c_ulonglong; 32], + } + + pub struct __tm_context_t { + pub vmx: crate::__vmx_context_t, + pub vsx: crate::__vsx_context_t, + pub gpr: [c_ulonglong; 32], + pub lr: c_ulonglong, + pub ctr: c_ulonglong, + pub cr: c_uint, + pub xer: c_uint, + pub amr: c_ulonglong, + pub texasr: c_ulonglong, + pub tfiar: c_ulonglong, + pub tfhar: c_ulonglong, + pub ppr: c_ulonglong, + pub dscr: c_ulonglong, + pub tar: c_ulonglong, + pub fpscr: c_uint, + pub fpscrx: c_uint, + pub fpr: [fpreg_t; 32], + pub tmcontext: c_char, + pub tmstate: c_char, + pub prevowner: c_char, + pub pad: [c_char; 5], + } + + pub struct __context64 { pub gpr: [c_ulonglong; 32], pub msr: c_ulonglong, pub iar: c_ulonglong, @@ -136,8 +167,7 @@ s! { pub fpscr: c_uint, pub fpscrx: c_uint, pub except: [c_ulonglong; 1], - // Should be array of double type - pub fpr: [crate::uint64_t; 32], + pub fpr: [fpreg_t; 32], pub fpeu: c_char, pub fpinfo: c_char, pub fpscr24_31: c_char, @@ -145,6 +175,33 @@ s! { pub excp_type: c_int, } + pub struct mcontext_t { + pub jmp_context: __context64, + } + + pub struct __extctx_t { + pub __flags: c_uint, + pub __rsvd1: [c_uint; 3], + pub __vmx: crate::__vmx_context_t, + pub __ukeys: [c_uint; 2], + pub __vsx: crate::__vsx_context_t, + pub __tm: crate::__tm_context_t, + pub __reserved: [c_char; 1860], + pub __extctx_magic: c_int, + } + + pub struct ucontext_t { + pub __sc_onstack: c_int, + pub uc_sigmask: crate::sigset_t, + pub __sc_uerror: c_int, + pub uc_mcontext: crate::mcontext_t, + pub uc_link: *mut ucontext_t, + pub uc_stack: crate::stack_t, + pub __extctx: *mut crate::__extctx_t, + pub __extctx_magic: c_int, + pub __pad: [c_int; 1], + } + pub struct utmpx { pub ut_user: [c_char; 256], pub ut_id: [c_char; 14], @@ -199,70 +256,6 @@ s_no_extra_traits! { pub __pad: [c_int; 3], } - 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 "C" fn( - file: *mut file, - rw: crate::uio_rw, - io: *mut c_void, - ext: c_long, - secattr: *mut c_void, - ) -> c_int, - pub fo_ioctl: extern "C" fn( - file: *mut file, - a: c_long, - b: crate::caddr_t, - c: c_long, - d: c_long, - ) -> c_int, - pub fo_select: - extern "C" fn(file: *mut file, a: c_int, b: *mut c_ushort, c: extern "C" fn()) -> c_int, - pub fo_close: extern "C" fn(file: *mut file) -> c_int, - pub fo_fstat: extern "C" fn(file: *mut file, sstat: *mut crate::stat) -> c_int, - } - - pub struct file { - pub f_flag: c_long, - pub f_count: c_int, - pub f_options: c_short, - pub f_type: c_short, - // Should be pointer to 'vnode' - pub f_data: *mut c_void, - pub f_offset: c_longlong, - pub f_dir_off: c_long, - // Should be pointer to 'cred' - pub f_cred: *mut c_void, - pub f_lock: _kernel_simple_lock, - pub f_offset_lock: _kernel_simple_lock, - pub f_vinfo: crate::caddr_t, - pub f_ops: *mut fileops_t, - pub f_parentp: crate::caddr_t, - pub f_fnamep: crate::caddr_t, - pub f_fdata: [c_char; 160], - } - - pub union __ld_info_file { - pub _ldinfo_fd: c_int, - pub _ldinfo_fp: *mut file, - pub _core_offset: c_long, - } - - pub struct ld_info { - pub ldinfo_next: c_uint, - pub ldinfo_flags: c_uint, - pub _file: __ld_info_file, - pub ldinfo_textorg: *mut c_void, - pub ldinfo_textsize: c_ulong, - pub ldinfo_dataorg: *mut c_void, - pub ldinfo_datasize: c_ulong, - pub ldinfo_filename: [c_char; 2], - } - pub union __pollfd_ext_u { pub addr: *mut c_void, pub data32: u32, @@ -271,10 +264,14 @@ s_no_extra_traits! { pub struct pollfd_ext { pub fd: c_int, - pub events: c_ushort, - pub revents: c_ushort, + pub events: c_short, + pub revents: c_short, pub data: __pollfd_ext_u, } + + pub struct fpreg_t { + pub d: c_double, + } } impl siginfo_t { @@ -346,174 +343,6 @@ cfg_if! { self.__si_flags.hash(state); } } - - impl PartialEq for _kernel_simple_lock { - fn eq(&self, other: &_kernel_simple_lock) -> bool { - unsafe { self._slock == other._slock && self._slockp == other._slockp } - } - } - impl Eq for _kernel_simple_lock {} - impl hash::Hash for _kernel_simple_lock { - fn hash(&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 { - f.debug_struct("fileops_t") - .field("fo_rw", &self.fo_rw) - .field("fo_ioctl", &self.fo_ioctl) - .field("fo_select", &self.fo_select) - .field("fo_close", &self.fo_close) - .field("fo_fstat", &self.fo_fstat) - .finish() - } - } - impl hash::Hash for fileops_t { - fn hash(&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 { - 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 - && self.f_lock == other.f_lock - && self.f_offset_lock == other.f_offset_lock - } - } - impl Eq for file {} - impl fmt::Debug for file { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("file") - .field("f_flag", &self.f_flag) - .field("f_count", &self.f_count) - .field("f_options", &self.f_options) - .field("f_type", &self.f_type) - .field("f_data", &self.f_data) - .field("f_offset", &self.f_offset) - .field("f_dir_off", &self.f_dir_off) - .field("f_cred", &self.f_cred) - .field("f_lock", &self.f_lock) - .field("f_offset_lock", &self.f_offset_lock) - .field("f_vinfo", &self.f_vinfo) - .field("f_ops", &self.f_ops) - .field("f_parentp", &self.f_parentp) - .field("f_fnamep", &self.f_fnamep) - .field("f_fdata", &self.f_fdata) - .finish() - } - } - impl hash::Hash for file { - fn hash(&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); - self.f_lock.hash(state); - 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); - } - } - - 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 - } - } - } - impl Eq for __ld_info_file {} - impl hash::Hash for __ld_info_file { - fn hash(&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 { - 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 - && self._file == other._file - } - } - impl Eq for ld_info {} - impl fmt::Debug for ld_info { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("ld_info") - .field("ldinfo_next", &self.ldinfo_next) - .field("ldinfo_flags", &self.ldinfo_flags) - .field("ldinfo_textorg", &self.ldinfo_textorg) - .field("ldinfo_textsize", &self.ldinfo_textsize) - .field("ldinfo_dataorg", &self.ldinfo_dataorg) - .field("ldinfo_datasize", &self.ldinfo_datasize) - .field("ldinfo_filename", &self.ldinfo_filename) - .field("_file", &self._file) - .finish() - } - } - impl hash::Hash for ld_info { - fn hash(&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); - self._file.hash(state); - } - } - impl PartialEq for __pollfd_ext_u { fn eq(&self, other: &__pollfd_ext_u) -> bool { unsafe { @@ -561,6 +390,26 @@ cfg_if! { self.data.hash(state); } } + impl PartialEq for fpreg_t { + fn eq(&self, other: &fpreg_t) -> bool { + self.d == other.d + } + } + + impl Eq for fpreg_t {} + + impl fmt::Debug for fpreg_t { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.debug_struct("fpreg_t").field("d", &self.d).finish() + } + } + + impl hash::Hash for fpreg_t { + fn hash(&self, state: &mut H) { + let d: u64 = unsafe { mem::transmute(self.d) }; + d.hash(state); + } + } } } @@ -573,6 +422,11 @@ pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { 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 PTHREAD_ONCE_INIT: pthread_once_t = pthread_once_t { + __on_word: [0, 0, 0, 0, 0, 2, 0, 0, 0], +}; + pub const RLIM_INFINITY: c_ulong = 0x7fffffffffffffff; extern "C" { diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 4fc2afedfc095..d6259ea0f35dd 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -155,6 +155,7 @@ s! { pub revents: c_short, } + #[cfg(not(target_os = "aix"))] pub struct winsize { pub ws_row: c_ushort, pub ws_col: c_ushort, @@ -220,7 +221,7 @@ pub const SIG_IGN: sighandler_t = 1 as sighandler_t; pub const SIG_ERR: sighandler_t = !0 as sighandler_t; cfg_if! { - if #[cfg(not(target_os = "nto"))] { + if #[cfg(all(not(target_os = "nto"), not(target_os = "aix")))] { pub const DT_UNKNOWN: u8 = 0; pub const DT_FIFO: u8 = 1; pub const DT_CHR: u8 = 2; @@ -335,7 +336,7 @@ pub const ATF_PUBL: c_int = 0x08; pub const ATF_USETRAILERS: c_int = 0x10; cfg_if! { - if #[cfg(target_os = "nto")] { + if #[cfg(any(target_os = "nto", target_os = "aix"))] { pub const FNM_PERIOD: c_int = 1 << 1; } else { pub const FNM_PERIOD: c_int = 1 << 2; @@ -346,7 +347,7 @@ pub const FNM_NOMATCH: c_int = 1; cfg_if! { if #[cfg(any(target_os = "illumos", target_os = "solaris",))] { pub const FNM_CASEFOLD: c_int = 1 << 3; - } else { + } else if #[cfg(not(target_os = "aix"))] { pub const FNM_CASEFOLD: c_int = 1 << 4; } } @@ -375,6 +376,8 @@ cfg_if! { pub const FNM_NOESCAPE: c_int = 1 << 0; } else if #[cfg(target_os = "nto")] { pub const FNM_NOESCAPE: c_int = 1 << 2; + } else if #[cfg(target_os = "aix")] { + pub const FNM_NOESCAPE: c_int = 1 << 3; } else { pub const FNM_NOESCAPE: c_int = 1 << 1; } @@ -666,7 +669,9 @@ extern "C" { pub fn strtoll(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_longlong; pub fn strtoul(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulong; pub fn strtoull(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulonglong; + #[cfg_attr(target_os = "aix", link_name = "vec_calloc")] pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; + #[cfg_attr(target_os = "aix", link_name = "vec_malloc")] pub fn malloc(size: size_t) -> *mut c_void; pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; pub fn free(p: *mut c_void); @@ -778,6 +783,7 @@ extern "C" { link_name = "accept$UNIX2003" )] #[cfg_attr(target_os = "espidf", link_name = "lwip_accept")] + #[cfg_attr(target_os = "aix", link_name = "naccept")] pub fn accept(socket: c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> c_int; #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] #[cfg_attr( @@ -785,6 +791,7 @@ extern "C" { link_name = "getpeername$UNIX2003" )] #[cfg_attr(target_os = "espidf", link_name = "lwip_getpeername")] + #[cfg_attr(target_os = "aix", link_name = "ngetpeername")] pub fn getpeername(socket: c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> c_int; #[cfg(not(all(target_arch = "powerpc", target_vendor = "nintendo")))] @@ -793,6 +800,7 @@ extern "C" { link_name = "getsockname$UNIX2003" )] #[cfg_attr(target_os = "espidf", link_name = "lwip_getsockname")] + #[cfg_attr(target_os = "aix", link_name = "ngetsockname")] pub fn getsockname(socket: c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> c_int; #[cfg_attr(target_os = "espidf", link_name = "lwip_setsockopt")] @@ -1372,6 +1380,7 @@ extern "C" { ), link_name = "res_9_init" )] + #[cfg_attr(target_os = "aix", link_name = "_res_init")] pub fn res_init() -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__gmtime_r50")] @@ -1406,6 +1415,7 @@ extern "C" { #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] // FIXME(time): for `time_t` pub fn difftime(time1: time_t, time0: time_t) -> c_double; + #[cfg(not(target_os = "aix"))] #[cfg_attr(target_os = "netbsd", link_name = "__timegm50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] // FIXME(time): for `time_t` @@ -1466,6 +1476,7 @@ extern "C" { link_name = "select$UNIX2003" )] #[cfg_attr(target_os = "netbsd", link_name = "__select50")] + #[cfg_attr(target_os = "aix", link_name = "__fd_select")] pub fn select( nfds: c_int, readfds: *mut fd_set, @@ -1551,6 +1562,7 @@ extern "C" { pub fn ptsname(fd: c_int) -> *mut c_char; pub fn unlockpt(fd: c_int) -> c_int; + #[cfg(not(target_os = "aix"))] pub fn strcasestr(cs: *const c_char, ct: *const c_char) -> *mut c_char; pub fn getline(lineptr: *mut *mut c_char, n: *mut size_t, stream: *mut FILE) -> ssize_t; @@ -1583,7 +1595,8 @@ cfg_if! { target_os = "haiku", target_os = "nto", target_os = "solaris", - target_os = "cygwin" + target_os = "cygwin", + target_os = "aix", )))] { extern "C" { pub fn adjtime(delta: *const timeval, olddelta: *mut timeval) -> c_int; @@ -1752,7 +1765,12 @@ cfg_if! { } cfg_if! { - if #[cfg(not(any( + if #[cfg(target_os = "aix")] { + extern "C" { + pub fn cfmakeraw(termios: *mut crate::termios) -> c_int; + pub fn cfsetspeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; + } + } else if #[cfg(not(any( target_os = "solaris", target_os = "illumos", target_os = "nto", From b6971335c9b35720351e79ad85cedfbaef091bc6 Mon Sep 17 00:00:00 2001 From: Jakub Janowski Date: Tue, 15 Apr 2025 11:50:59 +0300 Subject: [PATCH 0655/1228] Cleanup IOCTL definitions in linux_like tree (backport ) (cherry picked from commit 49a6e233a085866dff1a4c410dc21d1cd96e861e) --- libc-test/build.rs | 2 + libc-test/semver/android.txt | 5 + src/unix/linux_like/android/mod.rs | 160 +---------------- src/unix/linux_like/linux/arch/generic/mod.rs | 46 +---- src/unix/linux_like/linux/arch/mips/mod.rs | 65 ------- src/unix/linux_like/linux/arch/powerpc/mod.rs | 65 ------- src/unix/linux_like/linux/arch/sparc/mod.rs | 63 ------- src/unix/linux_like/linux/gnu/mod.rs | 27 --- src/unix/linux_like/linux/mod.rs | 169 +++++------------- src/unix/linux_like/mod.rs | 149 ++++++++++++++- 10 files changed, 202 insertions(+), 549 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 74fce84d73765..a7752f0b36b66 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2054,6 +2054,8 @@ fn test_android(target: &str) { // sigval is a struct in Rust, but a union in C: "sigval" => "union sigval".to_string(), + "Ioctl" => "int".to_string(), + // put `struct` in front of all structs:. t if is_struct => format!("struct {t}"), diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 02705fedbf44d..881ed4378f7ce 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -634,6 +634,8 @@ FF1 FFDLY FF_CNT FF_MAX +FICLONE +FICLONERANGE FILE FILENAME_MAX FIOCLEX @@ -750,6 +752,8 @@ IFF_DYNAMIC IFF_LOOPBACK IFF_MASTER IFF_MULTICAST +IFF_NAPI +IFF_NAPI_FRAGS IFF_NOARP IFF_NOTRAILERS IFF_NO_CARRIER @@ -3321,6 +3325,7 @@ fgetpos fgets fgets_unlocked fgetxattr +file_clone_range fileno flistxattr flock diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 2aa47cda07b09..5915d9dcb631c 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -2,6 +2,15 @@ use crate::prelude::*; +cfg_if! { + if #[cfg(doc)] { + pub(crate) type Ioctl = c_int; + } else { + #[doc(hidden)] + pub type Ioctl = c_int; + } +} + pub type clock_t = c_long; pub type time_t = c_long; pub type suseconds_t = c_long; @@ -337,19 +346,6 @@ s! { pub dlpi_tls_data: *mut c_void, } - // linux/filter.h - pub struct sock_filter { - pub code: crate::__u16, - pub jt: crate::__u8, - pub jf: crate::__u8, - pub k: crate::__u32, - } - - pub struct sock_fprog { - pub len: c_ushort, - pub filter: *mut sock_filter, - } - // linux/seccomp.h pub struct seccomp_data { pub nr: c_int, @@ -1698,27 +1694,6 @@ pub const FIONREAD: c_int = 0x541B; pub const TIOCCONS: c_int = 0x541D; pub const TIOCSBRK: c_int = 0x5427; pub const TIOCCBRK: c_int = 0x5428; -cfg_if! { - if #[cfg(any( - target_arch = "x86", - target_arch = "x86_64", - target_arch = "arm", - target_arch = "aarch64", - target_arch = "riscv64", - target_arch = "s390x" - ))] { - pub const FICLONE: c_int = 0x40049409; - pub const FICLONERANGE: c_int = 0x4020940D; - } else if #[cfg(any( - target_arch = "mips", - target_arch = "mips64", - target_arch = "powerpc", - target_arch = "powerpc64" - ))] { - pub const FICLONE: c_int = 0x80049409; - pub const FICLONERANGE: c_int = 0x8020940D; - } -} pub const ST_RDONLY: c_ulong = 1; pub const ST_NOSUID: c_ulong = 2; @@ -1900,38 +1875,6 @@ pub const BLKIOOPT: c_int = 0x1279; pub const BLKSSZGET: c_int = 0x1268; pub const BLKPBSZGET: c_int = 0x127B; -cfg_if! { - // Those type are constructed using the _IOC macro - // DD-SS_SSSS_SSSS_SSSS-TTTT_TTTT-NNNN_NNNN - // where D stands for direction (either None (00), Read (01) or Write (11)) - // where S stands for size (int, long, struct...) - // where T stands for type ('f','v','X'...) - // where N stands for NR (NumbeR) - if #[cfg(any(target_arch = "x86", target_arch = "arm"))] { - pub const FS_IOC_GETFLAGS: c_int = 0x80046601; - pub const FS_IOC_SETFLAGS: c_int = 0x40046602; - pub const FS_IOC_GETVERSION: c_int = 0x80047601; - pub const FS_IOC_SETVERSION: c_int = 0x40047602; - pub const FS_IOC32_GETFLAGS: c_int = 0x80046601; - pub const FS_IOC32_SETFLAGS: c_int = 0x40046602; - pub const FS_IOC32_GETVERSION: c_int = 0x80047601; - pub const FS_IOC32_SETVERSION: c_int = 0x40047602; - } else if #[cfg(any( - target_arch = "x86_64", - target_arch = "riscv64", - target_arch = "aarch64" - ))] { - pub const FS_IOC_GETFLAGS: c_int = 0x80086601; - pub const FS_IOC_SETFLAGS: c_int = 0x40086602; - pub const FS_IOC_GETVERSION: c_int = 0x80087601; - pub const FS_IOC_SETVERSION: c_int = 0x40087602; - pub const FS_IOC32_GETFLAGS: c_int = 0x80046601; - pub const FS_IOC32_SETFLAGS: c_int = 0x40046602; - pub const FS_IOC32_GETVERSION: c_int = 0x80047601; - pub const FS_IOC32_SETVERSION: c_int = 0x40047602; - } -} - pub const EAI_AGAIN: c_int = 2; pub const EAI_BADFLAGS: c_int = 3; pub const EAI_FAIL: c_int = 4; @@ -2666,65 +2609,6 @@ pub const SND_CNT: usize = SND_MAX as usize + 1; pub const UINPUT_VERSION: c_uint = 5; pub const UINPUT_MAX_NAME_SIZE: usize = 80; -// bionic/libc/kernel/uapi/linux/if_tun.h -pub const IFF_TUN: c_int = 0x0001; -pub const IFF_TAP: c_int = 0x0002; -pub const IFF_NAPI: c_int = 0x0010; -pub const IFF_NAPI_FRAGS: c_int = 0x0020; -pub const IFF_NO_CARRIER: c_int = 0x0040; -pub const IFF_NO_PI: c_int = 0x1000; -pub const IFF_ONE_QUEUE: c_int = 0x2000; -pub const IFF_VNET_HDR: c_int = 0x4000; -pub const IFF_TUN_EXCL: c_int = 0x8000; -pub const IFF_MULTI_QUEUE: c_int = 0x0100; -pub const IFF_ATTACH_QUEUE: c_int = 0x0200; -pub const IFF_DETACH_QUEUE: c_int = 0x0400; -pub const IFF_PERSIST: c_int = 0x0800; -pub const IFF_NOFILTER: c_int = 0x1000; -pub const TUN_TX_TIMESTAMP: c_int = 1; -// Features for GSO (TUNSETOFFLOAD) -pub const TUN_F_CSUM: c_uint = 0x01; -pub const TUN_F_TSO4: c_uint = 0x02; -pub const TUN_F_TSO6: c_uint = 0x04; -pub const TUN_F_TSO_ECN: c_uint = 0x08; -pub const TUN_F_UFO: c_uint = 0x10; -pub const TUN_F_USO4: c_uint = 0x20; -pub const TUN_F_USO6: c_uint = 0x40; -// Protocol info prepended to the packets (when IFF_NO_PI is not set) -pub const TUN_PKT_STRIP: c_int = 0x0001; -// Accept all multicast packets -pub const TUN_FLT_ALLMULTI: c_int = 0x0001; -// Ioctl operation codes -const T_TYPE: u32 = b'T' as u32; -pub const TUNSETNOCSUM: c_int = _IOW::(T_TYPE, 200); -pub const TUNSETDEBUG: c_int = _IOW::(T_TYPE, 201); -pub const TUNSETIFF: c_int = _IOW::(T_TYPE, 202); -pub const TUNSETPERSIST: c_int = _IOW::(T_TYPE, 203); -pub const TUNSETOWNER: c_int = _IOW::(T_TYPE, 204); -pub const TUNSETLINK: c_int = _IOW::(T_TYPE, 205); -pub const TUNSETGROUP: c_int = _IOW::(T_TYPE, 206); -pub const TUNGETFEATURES: c_int = _IOR::(T_TYPE, 207); -pub const TUNSETOFFLOAD: c_int = _IOW::(T_TYPE, 208); -pub const TUNSETTXFILTER: c_int = _IOW::(T_TYPE, 209); -pub const TUNGETIFF: c_int = _IOR::(T_TYPE, 210); -pub const TUNGETSNDBUF: c_int = _IOR::(T_TYPE, 211); -pub const TUNSETSNDBUF: c_int = _IOW::(T_TYPE, 212); -pub const TUNATTACHFILTER: c_int = _IOW::(T_TYPE, 213); -pub const TUNDETACHFILTER: c_int = _IOW::(T_TYPE, 214); -pub const TUNGETVNETHDRSZ: c_int = _IOR::(T_TYPE, 215); -pub const TUNSETVNETHDRSZ: c_int = _IOW::(T_TYPE, 216); -pub const TUNSETQUEUE: c_int = _IOW::(T_TYPE, 217); -pub const TUNSETIFINDEX: c_int = _IOW::(T_TYPE, 218); -pub const TUNGETFILTER: c_int = _IOR::(T_TYPE, 219); -pub const TUNSETVNETLE: c_int = _IOW::(T_TYPE, 220); -pub const TUNGETVNETLE: c_int = _IOR::(T_TYPE, 221); -pub const TUNSETVNETBE: c_int = _IOW::(T_TYPE, 222); -pub const TUNGETVNETBE: c_int = _IOR::(T_TYPE, 223); -pub const TUNSETSTEERINGEBPF: c_int = _IOR::(T_TYPE, 224); -pub const TUNSETFILTEREBPF: c_int = _IOR::(T_TYPE, 225); -pub const TUNSETCARRIER: c_int = _IOW::(T_TYPE, 226); -pub const TUNGETDEVNETNS: c_int = _IO(T_TYPE, 227); - // start android/platform/bionic/libc/kernel/uapi/linux/if_ether.h // from https://android.googlesource.com/platform/bionic/+/HEAD/libc/kernel/uapi/linux/if_ether.h pub const ETH_ALEN: c_int = 6; @@ -3758,7 +3642,6 @@ extern "C" { pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut crate::timezone) -> c_int; pub fn mlock2(addr: *const c_void, len: size_t, flags: c_int) -> c_int; pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; - pub fn ioctl(fd: c_int, request: c_int, ...) -> c_int; pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; pub fn recvfrom( @@ -4299,28 +4182,3 @@ impl siginfo_t { self.sifields().sigchld.si_stime } } - -/// Build an ioctl number for an argumentless ioctl. -pub const fn _IO(ty: u32, nr: u32) -> c_int { - super::_IOC(super::_IOC_NONE, ty, nr, 0) as c_int -} - -/// Build an ioctl number for an read-only ioctl. -pub const fn _IOR(ty: u32, nr: u32) -> c_int { - super::_IOC(super::_IOC_READ, ty, nr, mem::size_of::()) as c_int -} - -/// Build an ioctl number for an write-only ioctl. -pub const fn _IOW(ty: u32, nr: u32) -> c_int { - super::_IOC(super::_IOC_WRITE, ty, nr, mem::size_of::()) as c_int -} - -/// Build an ioctl number for a read-write ioctl. -pub const fn _IOWR(ty: u32, nr: u32) -> c_int { - super::_IOC( - super::_IOC_READ | super::_IOC_WRITE, - ty, - nr, - mem::size_of::(), - ) as c_int -} diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index 75cb7e19375d0..33d3cfbd6b436 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -1,5 +1,5 @@ use crate::prelude::*; -use crate::{Ioctl, _IOR, _IOW}; +use crate::Ioctl; s! { pub struct termios2 { @@ -158,9 +158,6 @@ pub const SO_DEVMEM_LINEAR: c_int = 78; pub const SO_DEVMEM_DMABUF: c_int = 79; pub const SO_DEVMEM_DONTNEED: c_int = 80; -pub const FICLONE: Ioctl = _IOW::(0x94, 9) as Ioctl; -pub const FICLONERANGE: Ioctl = _IOW::(0x94, 13) as Ioctl; - // Defined in unix/linux_like/mod.rs // pub const SCM_TIMESTAMP: c_int = SO_TIMESTAMP; pub const SCM_TIMESTAMPNS: c_int = SO_TIMESTAMPNS; @@ -251,47 +248,6 @@ pub const BLKIOMIN: Ioctl = 0x1278; pub const BLKIOOPT: Ioctl = 0x1279; pub const BLKSSZGET: Ioctl = 0x1268; pub const BLKPBSZGET: Ioctl = 0x127B; -// linux/if_tun.h -pub const TUNSETNOCSUM: Ioctl = 0x400454c8; -pub const TUNSETDEBUG: Ioctl = 0x400454c9; -pub const TUNSETIFF: Ioctl = 0x400454ca; -pub const TUNSETPERSIST: Ioctl = 0x400454cb; -pub const TUNSETOWNER: Ioctl = 0x400454cc; -pub const TUNSETLINK: Ioctl = 0x400454cd; -pub const TUNSETGROUP: Ioctl = 0x400454ce; -pub const TUNGETFEATURES: Ioctl = 0x800454cf; -pub const TUNSETOFFLOAD: Ioctl = 0x400454d0; -pub const TUNSETTXFILTER: Ioctl = 0x400454d1; -pub const TUNGETIFF: Ioctl = 0x800454d2; -pub const TUNGETSNDBUF: Ioctl = 0x800454d3; -pub const TUNSETSNDBUF: Ioctl = 0x400454d4; -pub const TUNGETVNETHDRSZ: Ioctl = 0x800454d7; -pub const TUNSETVNETHDRSZ: Ioctl = 0x400454d8; -pub const TUNSETQUEUE: Ioctl = 0x400454d9; -pub const TUNSETIFINDEX: Ioctl = 0x400454da; -pub const TUNSETVNETLE: Ioctl = 0x400454dc; -pub const TUNGETVNETLE: Ioctl = 0x800454dd; -/* The TUNSETVNETBE and TUNGETVNETBE ioctls are for cross-endian support on - * little-endian hosts. Not all kernel configurations support them, but all - * configurations that support SET also support GET. - */ -pub const TUNSETVNETBE: Ioctl = 0x400454de; -pub const TUNGETVNETBE: Ioctl = 0x800454df; -pub const TUNSETSTEERINGEBPF: Ioctl = 0x800454e0; -pub const TUNSETFILTEREBPF: Ioctl = 0x800454e1; - -pub const FS_IOC_GETFLAGS: Ioctl = _IOR::('f' as u32, 1) as Ioctl; -pub const FS_IOC_SETFLAGS: Ioctl = _IOW::('f' as u32, 2) as Ioctl; -pub const FS_IOC_GETVERSION: Ioctl = _IOR::('v' as u32, 1) as Ioctl; -pub const FS_IOC_SETVERSION: Ioctl = _IOW::('v' as u32, 2) as Ioctl; -pub const FS_IOC32_GETFLAGS: Ioctl = _IOR::('f' as u32, 1) as Ioctl; -pub const FS_IOC32_SETFLAGS: Ioctl = _IOW::('f' as u32, 2) as Ioctl; -pub const FS_IOC32_GETVERSION: Ioctl = _IOR::('v' as u32, 1) as Ioctl; -pub const FS_IOC32_SETVERSION: Ioctl = _IOW::('v' as u32, 2) as Ioctl; - -pub const TUNATTACHFILTER: Ioctl = _IOW::('T' as u32, 213) as Ioctl; -pub const TUNDETACHFILTER: Ioctl = _IOW::('T' as u32, 214) as Ioctl; -pub const TUNGETFILTER: Ioctl = _IOR::('T' as u32, 219) as Ioctl; cfg_if! { if #[cfg(any(target_arch = "arm", target_arch = "s390x"))] { diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index 1ac2340a27385..bf58d5a145b82 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -131,9 +131,6 @@ pub const SO_DEVMEM_LINEAR: c_int = 78; pub const SO_DEVMEM_DMABUF: c_int = 79; pub const SO_DEVMEM_DONTNEED: c_int = 80; -pub const FICLONE: c_ulong = 0x80049409; -pub const FICLONERANGE: c_ulong = 0x8020940D; - // Defined in unix/linux_like/mod.rs // pub const SCM_TIMESTAMP: c_int = SO_TIMESTAMP; pub const SCM_TIMESTAMPNS: c_int = SO_TIMESTAMPNS; @@ -223,68 +220,6 @@ pub const BLKIOMIN: Ioctl = 0x20001278; pub const BLKIOOPT: Ioctl = 0x20001279; pub const BLKSSZGET: Ioctl = 0x20001268; pub const BLKPBSZGET: Ioctl = 0x2000127B; -// linux/if_tun.h -pub const TUNSETNOCSUM: Ioctl = 0x800454c8; -pub const TUNSETDEBUG: Ioctl = 0x800454c9; -pub const TUNSETIFF: Ioctl = 0x800454ca; -pub const TUNSETPERSIST: Ioctl = 0x800454cb; -pub const TUNSETOWNER: Ioctl = 0x800454cc; -pub const TUNSETLINK: Ioctl = 0x800454cd; -pub const TUNSETGROUP: Ioctl = 0x800454ce; -pub const TUNGETFEATURES: Ioctl = 0x400454cf; -pub const TUNSETOFFLOAD: Ioctl = 0x800454d0; -pub const TUNSETTXFILTER: Ioctl = 0x800454d1; -pub const TUNGETIFF: Ioctl = 0x400454d2; -pub const TUNGETSNDBUF: Ioctl = 0x400454d3; -pub const TUNSETSNDBUF: Ioctl = 0x800454d4; -pub const TUNGETVNETHDRSZ: Ioctl = 0x400454d7; -pub const TUNSETVNETHDRSZ: Ioctl = 0x800454d8; -pub const TUNSETQUEUE: Ioctl = 0x800454d9; -pub const TUNSETIFINDEX: Ioctl = 0x800454da; -pub const TUNSETVNETLE: Ioctl = 0x800454dc; -pub const TUNGETVNETLE: Ioctl = 0x400454dd; -/* The TUNSETVNETBE and TUNGETVNETBE ioctls are for cross-endian support on - * little-endian hosts. Not all kernel configurations support them, but all - * configurations that support SET also support GET. - */ -pub const TUNSETVNETBE: Ioctl = 0x800454de; -pub const TUNGETVNETBE: Ioctl = 0x400454df; -pub const TUNSETSTEERINGEBPF: Ioctl = 0x400454e0; -pub const TUNSETFILTEREBPF: Ioctl = 0x400454e1; - -cfg_if! { - // Those type are constructed using the _IOC macro - // DD-SS_SSSS_SSSS_SSSS-TTTT_TTTT-NNNN_NNNN - // where D stands for direction (either None (00), Read (01) or Write (11)) - // where S stands for size (int, long, struct...) - // where T stands for type ('f','v','X'...) - // where N stands for NR (NumbeR) - if #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] { - pub const FS_IOC_GETFLAGS: Ioctl = 0x40046601; - pub const FS_IOC_SETFLAGS: Ioctl = 0x80046602; - pub const FS_IOC_GETVERSION: Ioctl = 0x40047601; - pub const FS_IOC_SETVERSION: Ioctl = 0x80047602; - pub const FS_IOC32_GETFLAGS: Ioctl = 0x40046601; - pub const FS_IOC32_SETFLAGS: Ioctl = 0x80046602; - pub const FS_IOC32_GETVERSION: Ioctl = 0x40047601; - pub const FS_IOC32_SETVERSION: Ioctl = 0x80047602; - pub const TUNATTACHFILTER: Ioctl = 0x800854d5; - pub const TUNDETACHFILTER: Ioctl = 0x800854d6; - pub const TUNGETFILTER: Ioctl = 0x400854db; - } else if #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))] { - pub const FS_IOC_GETFLAGS: Ioctl = 0x40086601; - pub const FS_IOC_SETFLAGS: Ioctl = 0x80086602; - pub const FS_IOC_GETVERSION: Ioctl = 0x40087601; - pub const FS_IOC_SETVERSION: Ioctl = 0x80087602; - pub const FS_IOC32_GETFLAGS: Ioctl = 0x40046601; - pub const FS_IOC32_SETFLAGS: Ioctl = 0x80046602; - pub const FS_IOC32_GETVERSION: Ioctl = 0x40047601; - pub const FS_IOC32_SETVERSION: Ioctl = 0x80047602; - pub const TUNATTACHFILTER: Ioctl = 0x801054d5; - pub const TUNDETACHFILTER: Ioctl = 0x801054d6; - pub const TUNGETFILTER: Ioctl = 0x401054db; - } -} cfg_if! { if #[cfg(target_env = "musl")] { diff --git a/src/unix/linux_like/linux/arch/powerpc/mod.rs b/src/unix/linux_like/linux/arch/powerpc/mod.rs index 23fac9fba6262..33a373ce1fa2f 100644 --- a/src/unix/linux_like/linux/arch/powerpc/mod.rs +++ b/src/unix/linux_like/linux/arch/powerpc/mod.rs @@ -113,9 +113,6 @@ pub const SO_DEVMEM_LINEAR: c_int = 78; pub const SO_DEVMEM_DMABUF: c_int = 79; pub const SO_DEVMEM_DONTNEED: c_int = 80; -pub const FICLONE: c_ulong = 0x80049409; -pub const FICLONERANGE: c_ulong = 0x8020940D; - // Defined in unix/linux_like/mod.rs // pub const SCM_TIMESTAMP: c_int = SO_TIMESTAMP; pub const SCM_TIMESTAMPNS: c_int = SO_TIMESTAMPNS; @@ -209,68 +206,6 @@ pub const BLKIOOPT: Ioctl = 0x20001279; pub const BLKSSZGET: Ioctl = 0x20001268; pub const BLKPBSZGET: Ioctl = 0x2000127B; //pub const FIOQSIZE: Ioctl = 0x40086680; -// linux/if_tun.h -pub const TUNSETNOCSUM: Ioctl = 0x800454c8; -pub const TUNSETDEBUG: Ioctl = 0x800454c9; -pub const TUNSETIFF: Ioctl = 0x800454ca; -pub const TUNSETPERSIST: Ioctl = 0x800454cb; -pub const TUNSETOWNER: Ioctl = 0x800454cc; -pub const TUNSETLINK: Ioctl = 0x800454cd; -pub const TUNSETGROUP: Ioctl = 0x800454ce; -pub const TUNGETFEATURES: Ioctl = 0x400454cf; -pub const TUNSETOFFLOAD: Ioctl = 0x800454d0; -pub const TUNSETTXFILTER: Ioctl = 0x800454d1; -pub const TUNGETIFF: Ioctl = 0x400454d2; -pub const TUNGETSNDBUF: Ioctl = 0x400454d3; -pub const TUNSETSNDBUF: Ioctl = 0x800454d4; -pub const TUNGETVNETHDRSZ: Ioctl = 0x400454d7; -pub const TUNSETVNETHDRSZ: Ioctl = 0x800454d8; -pub const TUNSETQUEUE: Ioctl = 0x800454d9; -pub const TUNSETIFINDEX: Ioctl = 0x800454da; -pub const TUNSETVNETLE: Ioctl = 0x800454dc; -pub const TUNGETVNETLE: Ioctl = 0x400454dd; -/* The TUNSETVNETBE and TUNGETVNETBE ioctls are for cross-endian support on - * little-endian hosts. Not all kernel configurations support them, but all - * configurations that support SET also support GET. - */ -pub const TUNSETVNETBE: Ioctl = 0x800454de; -pub const TUNGETVNETBE: Ioctl = 0x400454df; -pub const TUNSETSTEERINGEBPF: Ioctl = 0x400454e0; -pub const TUNSETFILTEREBPF: Ioctl = 0x400454e1; - -cfg_if! { - // Those type are constructed using the _IOC macro - // DD-SS_SSSS_SSSS_SSSS-TTTT_TTTT-NNNN_NNNN - // where D stands for direction (either None (00), Read (01) or Write (11)) - // where S stands for size (int, long, struct...) - // where T stands for type ('f','v','X'...) - // where N stands for NR (NumbeR) - if #[cfg(target_arch = "powerpc")] { - pub const FS_IOC_GETFLAGS: Ioctl = 0x40046601; - pub const FS_IOC_SETFLAGS: Ioctl = 0x80046602; - pub const FS_IOC_GETVERSION: Ioctl = 0x40047601; - pub const FS_IOC_SETVERSION: Ioctl = 0x80047602; - pub const FS_IOC32_GETFLAGS: Ioctl = 0x40046601; - pub const FS_IOC32_SETFLAGS: Ioctl = 0x80046602; - pub const FS_IOC32_GETVERSION: Ioctl = 0x40047601; - pub const FS_IOC32_SETVERSION: Ioctl = 0x80047602; - pub const TUNATTACHFILTER: Ioctl = 0x800854d5; - pub const TUNDETACHFILTER: Ioctl = 0x800854d6; - pub const TUNGETFILTER: Ioctl = 0x400854db; - } else if #[cfg(target_arch = "powerpc64")] { - pub const FS_IOC_GETFLAGS: Ioctl = 0x40086601; - pub const FS_IOC_SETFLAGS: Ioctl = 0x80086602; - pub const FS_IOC_GETVERSION: Ioctl = 0x40087601; - pub const FS_IOC_SETVERSION: Ioctl = 0x80087602; - pub const FS_IOC32_GETFLAGS: Ioctl = 0x40046601; - pub const FS_IOC32_SETFLAGS: Ioctl = 0x80046602; - pub const FS_IOC32_GETVERSION: Ioctl = 0x40047601; - pub const FS_IOC32_SETVERSION: Ioctl = 0x80047602; - pub const TUNATTACHFILTER: Ioctl = 0x801054d5; - pub const TUNDETACHFILTER: Ioctl = 0x801054d6; - pub const TUNGETFILTER: Ioctl = 0x401054db; - } -} pub const TIOCM_LE: c_int = 0x001; pub const TIOCM_DTR: c_int = 0x002; diff --git a/src/unix/linux_like/linux/arch/sparc/mod.rs b/src/unix/linux_like/linux/arch/sparc/mod.rs index 86af2ad14bcd0..4c108ba7b71c1 100644 --- a/src/unix/linux_like/linux/arch/sparc/mod.rs +++ b/src/unix/linux_like/linux/arch/sparc/mod.rs @@ -199,35 +199,6 @@ pub const BLKPBSZGET: Ioctl = 0x2000127B; //pub const TIOCGRS485: Ioctl = 0x40205441; //pub const TIOCSRS485: Ioctl = 0xc0205442; -// linux/if_tun.h -pub const TUNSETNOCSUM: Ioctl = 0x800454c8; -pub const TUNSETDEBUG: Ioctl = 0x800454c9; -pub const TUNSETIFF: Ioctl = 0x800454ca; -pub const TUNSETPERSIST: Ioctl = 0x800454cb; -pub const TUNSETOWNER: Ioctl = 0x800454cc; -pub const TUNSETLINK: Ioctl = 0x800454cd; -pub const TUNSETGROUP: Ioctl = 0x800454ce; -pub const TUNGETFEATURES: Ioctl = 0x400454cf; -pub const TUNSETOFFLOAD: Ioctl = 0x800454d0; -pub const TUNSETTXFILTER: Ioctl = 0x800454d1; -pub const TUNGETIFF: Ioctl = 0x400454d2; -pub const TUNGETSNDBUF: Ioctl = 0x400454d3; -pub const TUNSETSNDBUF: Ioctl = 0x800454d4; -pub const TUNGETVNETHDRSZ: Ioctl = 0x400454d7; -pub const TUNSETVNETHDRSZ: Ioctl = 0x800454d8; -pub const TUNSETQUEUE: Ioctl = 0x800454d9; -pub const TUNSETIFINDEX: Ioctl = 0x800454da; -pub const TUNSETVNETLE: Ioctl = 0x800454dc; -pub const TUNGETVNETLE: Ioctl = 0x400454dd; -/* The TUNSETVNETBE and TUNGETVNETBE ioctls are for cross-endian support on - * little-endian hosts. Not all kernel configurations support them, but all - * configurations that support SET also support GET. - */ -pub const TUNSETVNETBE: Ioctl = 0x800454de; -pub const TUNGETVNETBE: Ioctl = 0x400454df; -pub const TUNSETSTEERINGEBPF: Ioctl = 0x400454e0; -pub const TUNSETFILTEREBPF: Ioctl = 0x400454e1; - pub const TIOCM_LE: c_int = 0x001; pub const TIOCM_DTR: c_int = 0x002; pub const TIOCM_RTS: c_int = 0x004; @@ -274,37 +245,3 @@ cfg_if! { pub const RLIM_INFINITY: crate::rlim_t = 0x7fffffff; } } - -cfg_if! { - // Those type are constructed using the _IOC macro - // DD-SS_SSSS_SSSS_SSSS-TTTT_TTTT-NNNN_NNNN - // where D stands for direction (either None (00), Read (01) or Write (11)) - // where S stands for size (int, long, struct...) - // where T stands for type ('f','v','X'...) - // where N stands for NR (NumbeR) - if #[cfg(target_arch = "sparc")] { - pub const FS_IOC_GETFLAGS: Ioctl = 0x40046601; - pub const FS_IOC_SETFLAGS: Ioctl = 0x80046602; - pub const FS_IOC_GETVERSION: Ioctl = 0x40047601; - pub const FS_IOC_SETVERSION: Ioctl = 0x80047602; - pub const FS_IOC32_GETFLAGS: Ioctl = 0x40046601; - pub const FS_IOC32_SETFLAGS: Ioctl = 0x80046602; - pub const FS_IOC32_GETVERSION: Ioctl = 0x40047601; - pub const FS_IOC32_SETVERSION: Ioctl = 0x80047602; - pub const TUNATTACHFILTER: Ioctl = 0x800854d5; - pub const TUNDETACHFILTER: Ioctl = 0x800854d6; - pub const TUNGETFILTER: Ioctl = 0x400854db; - } else if #[cfg(target_arch = "sparc64")] { - pub const FS_IOC_GETFLAGS: Ioctl = 0x40086601; - pub const FS_IOC_SETFLAGS: Ioctl = 0x80086602; - pub const FS_IOC_GETVERSION: Ioctl = 0x40087601; - pub const FS_IOC_SETVERSION: Ioctl = 0x80087602; - pub const FS_IOC32_GETFLAGS: Ioctl = 0x40046601; - pub const FS_IOC32_SETFLAGS: Ioctl = 0x80046602; - pub const FS_IOC32_GETVERSION: Ioctl = 0x40047601; - pub const FS_IOC32_SETVERSION: Ioctl = 0x80047602; - pub const TUNATTACHFILTER: Ioctl = 0x801054d5; - pub const TUNDETACHFILTER: Ioctl = 0x801054d6; - pub const TUNGETFILTER: Ioctl = 0x401054db; - } -} diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 49b009470af5a..5235bce1f4796 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1149,33 +1149,6 @@ pub const REG_EEND: c_int = 14; pub const REG_ESIZE: c_int = 15; pub const REG_ERPAREN: c_int = 16; -cfg_if! { - if #[cfg(any( - target_arch = "x86", - target_arch = "x86_64", - target_arch = "arm", - target_arch = "aarch64", - target_arch = "loongarch64", - target_arch = "riscv64", - target_arch = "s390x" - ))] { - pub const TUNSETCARRIER: Ioctl = 0x400454e2; - pub const TUNGETDEVNETNS: Ioctl = 0x54e3; - } else if #[cfg(any( - target_arch = "mips", - target_arch = "mips64", - target_arch = "powerpc", - target_arch = "powerpc64", - target_arch = "sparc", - target_arch = "sparc64" - ))] { - pub const TUNSETCARRIER: Ioctl = 0x800454e2; - pub const TUNGETDEVNETNS: Ioctl = 0x200054e3; - } else { - // Unknown target_arch - } -} - extern "C" { pub fn fgetspent_r( fp: *mut crate::FILE, diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 94145420553be..021611af5b52f 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -3,6 +3,7 @@ use core::mem::size_of; use crate::prelude::*; +use crate::{sock_filter, _IO, _IOR, _IOW, _IOWR}; pub type useconds_t = u32; pub type dev_t = u64; @@ -758,19 +759,6 @@ s! { pub addr_mask: u8, } - // linux/filter.h - pub struct sock_filter { - pub code: __u16, - pub jt: __u8, - pub jf: __u8, - pub k: __u32, - } - - pub struct sock_fprog { - pub len: c_ushort, - pub filter: *mut sock_filter, - } - // linux/seccomp.h pub struct seccomp_data { pub nr: c_int, @@ -825,13 +813,6 @@ s! { pub nla_type: u16, } - pub struct file_clone_range { - pub src_fd: crate::__s64, - pub src_offset: crate::__u64, - pub src_length: crate::__u64, - pub dest_offset: crate::__u64, - } - pub struct __c_anonymous_ifru_map { pub mem_start: c_ulong, pub mem_end: c_ulong, @@ -2981,46 +2962,6 @@ pub const IFLA_INFO_XSTATS: c_ushort = 3; pub const IFLA_INFO_SLAVE_KIND: c_ushort = 4; pub const IFLA_INFO_SLAVE_DATA: c_ushort = 5; -// linux/if_tun.h -/* TUNSETIFF ifr flags */ -pub const IFF_TUN: c_int = 0x0001; -pub const IFF_TAP: c_int = 0x0002; -pub const IFF_NAPI: c_int = 0x0010; -pub const IFF_NAPI_FRAGS: c_int = 0x0020; -// Used in TUNSETIFF to bring up tun/tap without carrier -pub const IFF_NO_CARRIER: c_int = 0x0040; -pub const IFF_NO_PI: c_int = 0x1000; -// Read queue size -pub const TUN_READQ_SIZE: c_short = 500; -// TUN device type flags: deprecated. Use IFF_TUN/IFF_TAP instead. -pub const TUN_TUN_DEV: c_short = crate::IFF_TUN as c_short; -pub const TUN_TAP_DEV: c_short = crate::IFF_TAP as c_short; -pub const TUN_TYPE_MASK: c_short = 0x000f; -// This flag has no real effect -pub const IFF_ONE_QUEUE: c_int = 0x2000; -pub const IFF_VNET_HDR: c_int = 0x4000; -pub const IFF_TUN_EXCL: c_int = 0x8000; -pub const IFF_MULTI_QUEUE: c_int = 0x0100; -pub const IFF_ATTACH_QUEUE: c_int = 0x0200; -pub const IFF_DETACH_QUEUE: c_int = 0x0400; -// read-only flag -pub const IFF_PERSIST: c_int = 0x0800; -pub const IFF_NOFILTER: c_int = 0x1000; -// Socket options -pub const TUN_TX_TIMESTAMP: c_int = 1; -// Features for GSO (TUNSETOFFLOAD) -pub const TUN_F_CSUM: c_uint = 0x01; -pub const TUN_F_TSO4: c_uint = 0x02; -pub const TUN_F_TSO6: c_uint = 0x04; -pub const TUN_F_TSO_ECN: c_uint = 0x08; -pub const TUN_F_UFO: c_uint = 0x10; -pub const TUN_F_USO4: c_uint = 0x20; -pub const TUN_F_USO6: c_uint = 0x40; -// Protocol info prepended to the packets (when IFF_NO_PI is not set) -pub const TUN_PKT_STRIP: c_int = 0x0001; -// Accept all multicast packets -pub const TUN_FLT_ALLMULTI: c_int = 0x0001; - // Since Linux 3.1 pub const SEEK_DATA: c_int = 3; pub const SEEK_HOLE: c_int = 4; @@ -3233,23 +3174,23 @@ pub const MREMAP_DONTUNMAP: c_int = 4; // linux/nsfs.h const NSIO: c_uint = 0xb7; -pub const NS_GET_USERNS: c_uint = _IO(NSIO, 0x1); -pub const NS_GET_PARENT: c_uint = _IO(NSIO, 0x2); -pub const NS_GET_NSTYPE: c_uint = _IO(NSIO, 0x3); -pub const NS_GET_OWNER_UID: c_uint = _IO(NSIO, 0x4); +pub const NS_GET_USERNS: Ioctl = _IO(NSIO, 0x1); +pub const NS_GET_PARENT: Ioctl = _IO(NSIO, 0x2); +pub const NS_GET_NSTYPE: Ioctl = _IO(NSIO, 0x3); +pub const NS_GET_OWNER_UID: Ioctl = _IO(NSIO, 0x4); -pub const NS_GET_MNTNS_ID: c_uint = _IOR::<__u64>(NSIO, 0x5); +pub const NS_GET_MNTNS_ID: Ioctl = _IOR::<__u64>(NSIO, 0x5); -pub const NS_GET_PID_FROM_PIDNS: c_uint = _IOR::(NSIO, 0x6); -pub const NS_GET_TGID_FROM_PIDNS: c_uint = _IOR::(NSIO, 0x7); -pub const NS_GET_PID_IN_PIDNS: c_uint = _IOR::(NSIO, 0x8); -pub const NS_GET_TGID_IN_PIDNS: c_uint = _IOR::(NSIO, 0x9); +pub const NS_GET_PID_FROM_PIDNS: Ioctl = _IOR::(NSIO, 0x6); +pub const NS_GET_TGID_FROM_PIDNS: Ioctl = _IOR::(NSIO, 0x7); +pub const NS_GET_PID_IN_PIDNS: Ioctl = _IOR::(NSIO, 0x8); +pub const NS_GET_TGID_IN_PIDNS: Ioctl = _IOR::(NSIO, 0x9); -pub const MNT_NS_INFO_SIZE_VER0: c_uint = 16; +pub const MNT_NS_INFO_SIZE_VER0: Ioctl = 16; -pub const NS_MNT_GET_INFO: c_uint = _IOR::(NSIO, 10); -pub const NS_MNT_GET_NEXT: c_uint = _IOR::(NSIO, 11); -pub const NS_MNT_GET_PREV: c_uint = _IOR::(NSIO, 12); +pub const NS_MNT_GET_INFO: Ioctl = _IOR::(NSIO, 10); +pub const NS_MNT_GET_NEXT: Ioctl = _IOR::(NSIO, 11); +pub const NS_MNT_GET_PREV: Ioctl = _IOR::(NSIO, 12); // linux/pidfd.h pub const PIDFD_NONBLOCK: c_uint = O_NONBLOCK as c_uint; @@ -3267,17 +3208,17 @@ pub const PIDFD_INFO_EXIT: c_uint = 1 << 3; pub const PIDFD_INFO_SIZE_VER0: c_uint = 64; const PIDFS_IOCTL_MAGIC: c_uint = 0xFF; -pub const PIDFD_GET_CGROUP_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 1); -pub const PIDFD_GET_IPC_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 2); -pub const PIDFD_GET_MNT_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 3); -pub const PIDFD_GET_NET_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 4); -pub const PIDFD_GET_PID_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 5); -pub const PIDFD_GET_PID_FOR_CHILDREN_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 6); -pub const PIDFD_GET_TIME_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 7); -pub const PIDFD_GET_TIME_FOR_CHILDREN_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 8); -pub const PIDFD_GET_USER_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 9); -pub const PIDFD_GET_UTS_NAMESPACE: c_uint = _IO(PIDFS_IOCTL_MAGIC, 10); -pub const PIDFD_GET_INFO: c_uint = _IOWR::(PIDFS_IOCTL_MAGIC, 11); +pub const PIDFD_GET_CGROUP_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 1); +pub const PIDFD_GET_IPC_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 2); +pub const PIDFD_GET_MNT_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 3); +pub const PIDFD_GET_NET_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 4); +pub const PIDFD_GET_PID_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 5); +pub const PIDFD_GET_PID_FOR_CHILDREN_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 6); +pub const PIDFD_GET_TIME_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 7); +pub const PIDFD_GET_TIME_FOR_CHILDREN_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 8); +pub const PIDFD_GET_USER_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 9); +pub const PIDFD_GET_UTS_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 10); +pub const PIDFD_GET_INFO: Ioctl = _IOWR::(PIDFS_IOCTL_MAGIC, 11); // linux/prctl.h pub const PR_SET_PDEATHSIG: c_int = 1; @@ -4846,25 +4787,25 @@ pub const PTP_MAX_SAMPLES: c_uint = 25; // Maximum allowed offset measurement sa const PTP_CLK_MAGIC: u32 = b'=' as u32; -pub const PTP_CLOCK_GETCAPS: c_uint = _IOR::(PTP_CLK_MAGIC, 1); -pub const PTP_EXTTS_REQUEST: c_uint = _IOW::(PTP_CLK_MAGIC, 2); -pub const PTP_PEROUT_REQUEST: c_uint = _IOW::(PTP_CLK_MAGIC, 3); -pub const PTP_ENABLE_PPS: c_uint = _IOW::(PTP_CLK_MAGIC, 4); -pub const PTP_SYS_OFFSET: c_uint = _IOW::(PTP_CLK_MAGIC, 5); -pub const PTP_PIN_GETFUNC: c_uint = _IOWR::(PTP_CLK_MAGIC, 6); -pub const PTP_PIN_SETFUNC: c_uint = _IOW::(PTP_CLK_MAGIC, 7); -pub const PTP_SYS_OFFSET_PRECISE: c_uint = _IOWR::(PTP_CLK_MAGIC, 8); -pub const PTP_SYS_OFFSET_EXTENDED: c_uint = _IOWR::(PTP_CLK_MAGIC, 9); - -pub const PTP_CLOCK_GETCAPS2: c_uint = _IOR::(PTP_CLK_MAGIC, 10); -pub const PTP_EXTTS_REQUEST2: c_uint = _IOW::(PTP_CLK_MAGIC, 11); -pub const PTP_PEROUT_REQUEST2: c_uint = _IOW::(PTP_CLK_MAGIC, 12); -pub const PTP_ENABLE_PPS2: c_uint = _IOW::(PTP_CLK_MAGIC, 13); -pub const PTP_SYS_OFFSET2: c_uint = _IOW::(PTP_CLK_MAGIC, 14); -pub const PTP_PIN_GETFUNC2: c_uint = _IOWR::(PTP_CLK_MAGIC, 15); -pub const PTP_PIN_SETFUNC2: c_uint = _IOW::(PTP_CLK_MAGIC, 16); -pub const PTP_SYS_OFFSET_PRECISE2: c_uint = _IOWR::(PTP_CLK_MAGIC, 17); -pub const PTP_SYS_OFFSET_EXTENDED2: c_uint = _IOWR::(PTP_CLK_MAGIC, 18); +pub const PTP_CLOCK_GETCAPS: Ioctl = _IOR::(PTP_CLK_MAGIC, 1); +pub const PTP_EXTTS_REQUEST: Ioctl = _IOW::(PTP_CLK_MAGIC, 2); +pub const PTP_PEROUT_REQUEST: Ioctl = _IOW::(PTP_CLK_MAGIC, 3); +pub const PTP_ENABLE_PPS: Ioctl = _IOW::(PTP_CLK_MAGIC, 4); +pub const PTP_SYS_OFFSET: Ioctl = _IOW::(PTP_CLK_MAGIC, 5); +pub const PTP_PIN_GETFUNC: Ioctl = _IOWR::(PTP_CLK_MAGIC, 6); +pub const PTP_PIN_SETFUNC: Ioctl = _IOW::(PTP_CLK_MAGIC, 7); +pub const PTP_SYS_OFFSET_PRECISE: Ioctl = _IOWR::(PTP_CLK_MAGIC, 8); +pub const PTP_SYS_OFFSET_EXTENDED: Ioctl = _IOWR::(PTP_CLK_MAGIC, 9); + +pub const PTP_CLOCK_GETCAPS2: Ioctl = _IOR::(PTP_CLK_MAGIC, 10); +pub const PTP_EXTTS_REQUEST2: Ioctl = _IOW::(PTP_CLK_MAGIC, 11); +pub const PTP_PEROUT_REQUEST2: Ioctl = _IOW::(PTP_CLK_MAGIC, 12); +pub const PTP_ENABLE_PPS2: Ioctl = _IOW::(PTP_CLK_MAGIC, 13); +pub const PTP_SYS_OFFSET2: Ioctl = _IOW::(PTP_CLK_MAGIC, 14); +pub const PTP_PIN_GETFUNC2: Ioctl = _IOWR::(PTP_CLK_MAGIC, 15); +pub const PTP_PIN_SETFUNC2: Ioctl = _IOW::(PTP_CLK_MAGIC, 16); +pub const PTP_SYS_OFFSET_PRECISE2: Ioctl = _IOWR::(PTP_CLK_MAGIC, 17); +pub const PTP_SYS_OFFSET_EXTENDED2: Ioctl = _IOWR::(PTP_CLK_MAGIC, 18); // enum ptp_pin_function pub const PTP_PF_NONE: c_uint = 0; @@ -6093,26 +6034,6 @@ pub const EPIOCGPARAMS: Ioctl = 0x80088a02; pub const SI_DETHREAD: c_int = -7; pub const TRAP_PERF: c_int = 6; -/// Build an ioctl number for an argumentless ioctl. -pub const fn _IO(ty: u32, nr: u32) -> u32 { - super::_IOC(super::_IOC_NONE, ty, nr, 0) -} - -/// Build an ioctl number for an read-only ioctl. -pub const fn _IOR(ty: u32, nr: u32) -> u32 { - super::_IOC(super::_IOC_READ, ty, nr, size_of::()) -} - -/// Build an ioctl number for an write-only ioctl. -pub const fn _IOW(ty: u32, nr: u32) -> u32 { - super::_IOC(super::_IOC_WRITE, ty, nr, size_of::()) -} - -/// Build an ioctl number for a read-write ioctl. -pub const fn _IOWR(ty: u32, nr: u32) -> u32 { - super::_IOC(super::_IOC_READ | super::_IOC_WRITE, ty, nr, size_of::()) -} - f! { pub fn NLA_ALIGN(len: c_int) -> c_int { return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1); @@ -7097,8 +7018,6 @@ extern "C" { ) -> ssize_t; pub fn klogctl(syslog_type: c_int, bufp: *mut c_char, len: c_int) -> c_int; - - pub fn ioctl(fd: c_int, request: Ioctl, ...) -> c_int; } // LFS64 extensions diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index c730947529fb6..aab4cb385e000 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -207,6 +207,32 @@ s! { } } +cfg_if! { + if #[cfg(not(target_os = "emscripten"))] { + s! { + pub struct file_clone_range { + pub src_fd: crate::__s64, + pub src_offset: crate::__u64, + pub src_length: crate::__u64, + pub dest_offset: crate::__u64, + } + + // linux/filter.h + pub struct sock_filter { + pub code: __u16, + pub jt: __u8, + pub jf: __u8, + pub k: __u32, + } + + pub struct sock_fprog { + pub len: c_ushort, + pub filter: *mut sock_filter, + } + } + } +} + cfg_if! { if #[cfg(any(target_env = "gnu", target_os = "android"))] { s! { @@ -1482,6 +1508,93 @@ pub const ARPHRD_IEEE802154: u16 = 804; pub const ARPHRD_VOID: u16 = 0xFFFF; pub const ARPHRD_NONE: u16 = 0xFFFE; +cfg_if! { + if #[cfg(not(target_os = "emscripten"))] { + // linux/if_tun.h + /* TUNSETIFF ifr flags */ + pub const IFF_TUN: c_int = 0x0001; + pub const IFF_TAP: c_int = 0x0002; + pub const IFF_NAPI: c_int = 0x0010; + pub const IFF_NAPI_FRAGS: c_int = 0x0020; + // Used in TUNSETIFF to bring up tun/tap without carrier + pub const IFF_NO_CARRIER: c_int = 0x0040; + pub const IFF_NO_PI: c_int = 0x1000; + // Read queue size + pub const TUN_READQ_SIZE: c_short = 500; + // TUN device type flags: deprecated. Use IFF_TUN/IFF_TAP instead. + pub const TUN_TUN_DEV: c_short = crate::IFF_TUN as c_short; + pub const TUN_TAP_DEV: c_short = crate::IFF_TAP as c_short; + pub const TUN_TYPE_MASK: c_short = 0x000f; + // This flag has no real effect + pub const IFF_ONE_QUEUE: c_int = 0x2000; + pub const IFF_VNET_HDR: c_int = 0x4000; + pub const IFF_TUN_EXCL: c_int = 0x8000; + pub const IFF_MULTI_QUEUE: c_int = 0x0100; + pub const IFF_ATTACH_QUEUE: c_int = 0x0200; + pub const IFF_DETACH_QUEUE: c_int = 0x0400; + // read-only flag + pub const IFF_PERSIST: c_int = 0x0800; + pub const IFF_NOFILTER: c_int = 0x1000; + // Socket options + pub const TUN_TX_TIMESTAMP: c_int = 1; + // Features for GSO (TUNSETOFFLOAD) + pub const TUN_F_CSUM: c_uint = 0x01; + pub const TUN_F_TSO4: c_uint = 0x02; + pub const TUN_F_TSO6: c_uint = 0x04; + pub const TUN_F_TSO_ECN: c_uint = 0x08; + pub const TUN_F_UFO: c_uint = 0x10; + pub const TUN_F_USO4: c_uint = 0x20; + pub const TUN_F_USO6: c_uint = 0x40; + // Protocol info prepended to the packets (when IFF_NO_PI is not set) + pub const TUN_PKT_STRIP: c_int = 0x0001; + // Accept all multicast packets + pub const TUN_FLT_ALLMULTI: c_int = 0x0001; + // Ioctl operation codes + const T_TYPE: u32 = b'T' as u32; + pub const TUNSETNOCSUM: Ioctl = _IOW::(T_TYPE, 200); + pub const TUNSETDEBUG: Ioctl = _IOW::(T_TYPE, 201); + pub const TUNSETIFF: Ioctl = _IOW::(T_TYPE, 202); + pub const TUNSETPERSIST: Ioctl = _IOW::(T_TYPE, 203); + pub const TUNSETOWNER: Ioctl = _IOW::(T_TYPE, 204); + pub const TUNSETLINK: Ioctl = _IOW::(T_TYPE, 205); + pub const TUNSETGROUP: Ioctl = _IOW::(T_TYPE, 206); + pub const TUNGETFEATURES: Ioctl = _IOR::(T_TYPE, 207); + pub const TUNSETOFFLOAD: Ioctl = _IOW::(T_TYPE, 208); + pub const TUNSETTXFILTER: Ioctl = _IOW::(T_TYPE, 209); + pub const TUNGETIFF: Ioctl = _IOR::(T_TYPE, 210); + pub const TUNGETSNDBUF: Ioctl = _IOR::(T_TYPE, 211); + pub const TUNSETSNDBUF: Ioctl = _IOW::(T_TYPE, 212); + pub const TUNATTACHFILTER: Ioctl = _IOW::(T_TYPE, 213); + pub const TUNDETACHFILTER: Ioctl = _IOW::(T_TYPE, 214); + pub const TUNGETVNETHDRSZ: Ioctl = _IOR::(T_TYPE, 215); + pub const TUNSETVNETHDRSZ: Ioctl = _IOW::(T_TYPE, 216); + pub const TUNSETQUEUE: Ioctl = _IOW::(T_TYPE, 217); + pub const TUNSETIFINDEX: Ioctl = _IOW::(T_TYPE, 218); + pub const TUNGETFILTER: Ioctl = _IOR::(T_TYPE, 219); + pub const TUNSETVNETLE: Ioctl = _IOW::(T_TYPE, 220); + pub const TUNGETVNETLE: Ioctl = _IOR::(T_TYPE, 221); + pub const TUNSETVNETBE: Ioctl = _IOW::(T_TYPE, 222); + pub const TUNGETVNETBE: Ioctl = _IOR::(T_TYPE, 223); + pub const TUNSETSTEERINGEBPF: Ioctl = _IOR::(T_TYPE, 224); + pub const TUNSETFILTEREBPF: Ioctl = _IOR::(T_TYPE, 225); + pub const TUNSETCARRIER: Ioctl = _IOW::(T_TYPE, 226); + pub const TUNGETDEVNETNS: Ioctl = _IO(T_TYPE, 227); + + // linux/fs.h + pub const FS_IOC_GETFLAGS: Ioctl = _IOR::('f' as u32, 1); + pub const FS_IOC_SETFLAGS: Ioctl = _IOW::('f' as u32, 2); + pub const FS_IOC_GETVERSION: Ioctl = _IOR::('v' as u32, 1); + pub const FS_IOC_SETVERSION: Ioctl = _IOW::('v' as u32, 2); + pub const FS_IOC32_GETFLAGS: Ioctl = _IOR::('f' as u32, 1); + pub const FS_IOC32_SETFLAGS: Ioctl = _IOW::('f' as u32, 2); + pub const FS_IOC32_GETVERSION: Ioctl = _IOR::('v' as u32, 1); + pub const FS_IOC32_SETVERSION: Ioctl = _IOW::('v' as u32, 2); + + pub const FICLONE: Ioctl = _IOW::(0x94, 9); + pub const FICLONERANGE: Ioctl = _IOW::(0x94, 13); + } +} + cfg_if! { if #[cfg(target_os = "emscripten")] { // Emscripten does not define any `*_SUPER_MAGIC` constants. @@ -1633,11 +1746,7 @@ cfg_if! { // https://github.com/search?q=repo%3Atorvalds%2Flinux+%22%23define+_IOC_NONE%22&type=code cfg_if! { - if #[cfg(any( - target_os = "linux", - target_os = "android", - target_os = "l4re" - ))] { + if #[cfg(not(target_os = "emscripten"))] { const _IOC_NRBITS: u32 = 8; const _IOC_TYPEBITS: u32 = 8; @@ -1681,7 +1790,7 @@ cfg_if! { // adapted from https://github.com/torvalds/linux/blob/8a696a29c6905594e4abf78eaafcb62165ac61f1/rust/kernel/ioctl.rs /// Build an ioctl number, analogous to the C macro of the same name. - const fn _IOC(dir: u32, ty: u32, nr: u32, size: usize) -> u32 { + const fn _IOC(dir: u32, ty: u32, nr: u32, size: usize) -> Ioctl { // FIXME(ctest) the `garando_syntax` crate (used by ctest in the CI test suite) // cannot currently parse these `debug_assert!`s // @@ -1690,10 +1799,34 @@ cfg_if! { // debug_assert!(nr <= _IOC_NRMASK); // debug_assert!(size <= (_IOC_SIZEMASK as usize)); - (dir << _IOC_DIRSHIFT) + ((dir << _IOC_DIRSHIFT) | (ty << _IOC_TYPESHIFT) | (nr << _IOC_NRSHIFT) - | ((size as u32) << _IOC_SIZESHIFT) + | ((size as u32) << _IOC_SIZESHIFT)) as Ioctl + } + + /// Build an ioctl number for an argumentless ioctl. + pub const fn _IO(ty: u32, nr: u32) -> Ioctl { + _IOC(_IOC_NONE, ty, nr, 0) + } + + /// Build an ioctl number for an read-only ioctl. + pub const fn _IOR(ty: u32, nr: u32) -> Ioctl { + _IOC(_IOC_READ, ty, nr, mem::size_of::()) + } + + /// Build an ioctl number for an write-only ioctl. + pub const fn _IOW(ty: u32, nr: u32) -> Ioctl { + _IOC(_IOC_WRITE, ty, nr, mem::size_of::()) + } + + /// Build an ioctl number for a read-write ioctl. + pub const fn _IOWR(ty: u32, nr: u32) -> Ioctl { + _IOC(_IOC_READ | _IOC_WRITE, ty, nr, mem::size_of::()) + } + + extern "C" { + pub fn ioctl(fd: c_int, request: Ioctl, ...) -> c_int; } } } From a64612fcc51ff37a275eff554bf59f0161261af5 Mon Sep 17 00:00:00 2001 From: Huang Qi Date: Wed, 28 May 2025 16:47:18 +0800 Subject: [PATCH 0656/1228] Add arc4random and arc4random_buf to NuttX * Declare `arc4random` and `arc4random_buf` as extern "C" functions in the NuttX module * Enable access to system-provided random number generation for NuttX targets * Aligns NuttX FFI with other Unix platforms that expose these functions This change allows Rust code targeting NuttX to use `arc4random` and `arc4random_buf` for secure random number generation, improving compatibility and feature parity with other targets. (backport ) (cherry picked from commit f8e47462b503fa432ac2b248a53d830b471b5ec1) --- src/unix/nuttx/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index 015a2ba9afbd0..de734f9e0f63d 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -591,4 +591,6 @@ extern "C" { pub fn pthread_setname_np(thread: pthread_t, name: *const c_char) -> i32; pub fn pthread_getname_np(thread: pthread_t, name: *mut c_char, len: usize) -> i32; pub fn getrandom(buf: *mut c_void, buflen: usize, flags: u32) -> isize; + pub fn arc4random() -> u32; + pub fn arc4random_buf(bytes: *mut c_void, nbytes: usize); } From 00c199937c0c7600d7d425a67d9b30b38ac3d2cc Mon Sep 17 00:00:00 2001 From: Bben01 <52465698+Bben01@users.noreply.github.com> Date: Wed, 30 Apr 2025 10:29:29 +0300 Subject: [PATCH 0657/1228] Add constants from linux/cn_proc.h and linux/connector.h (backport ) (cherry picked from commit abd00f80b61fa48e394fb600f95fee63c78c6537) --- ci/style.sh | 2 +- libc-test/build.rs | 5 ++++ src/unix/linux_like/linux/mod.rs | 45 ++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/ci/style.sh b/ci/style.sh index 0d4a4f953dda1..97a9bc47bc132 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -26,7 +26,7 @@ while IFS= read -r file; do # Turn all braced macro `foo! { /* ... */ }` invocations into # `fn foo_fmt_tmp() { /* ... */ }`. - perl -pi -e 's/(?!macro_rules)\b(\w+)!\s*\{/fn $1_fmt_tmp() {/g' "$file" + perl -pi -e 's/(?!macro_rules|c_enum)\b(\w+)!\s*\{/fn $1_fmt_tmp() {/g' "$file" # Replace `if #[cfg(...)]` within `cfg_if` with `if cfg_tmp!([...])` which # `rustfmt` will format. We put brackets within the parens so it is easy to diff --git a/libc-test/build.rs b/libc-test/build.rs index a7752f0b36b66..4815715a5c493 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3879,6 +3879,8 @@ fn test_linux(target: &str) { "linux/can.h", "linux/can/raw.h", "linux/can/j1939.h", + "linux/cn_proc.h", + "linux/connector.h", "linux/dccp.h", "linux/errqueue.h", "linux/falloc.h", @@ -4699,6 +4701,9 @@ fn test_linux(target: &str) { // FIXME(linux): Requires >= 6.4 kernel headers. "PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG" | "PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG" => true, + // FIXME(linux): Requires >= 6.6 kernel headers. + "PROC_EVENT_NONZERO_EXIT" => true, + _ => false, } }); diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 021611af5b52f..bfae5592a431c 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -4734,6 +4734,51 @@ pub const RTNLGRP_MCTP_IFADDR: c_uint = 0x22; pub const RTNLGRP_TUNNEL: c_uint = 0x23; pub const RTNLGRP_STATS: c_uint = 0x24; +// linux/cn_proc.h +c_enum! { + proc_cn_mcast_op { + PROC_CN_MCAST_LISTEN = 1, + PROC_CN_MCAST_IGNORE = 2, + } +} + +c_enum! { + proc_cn_event { + PROC_EVENT_NONE = 0x00000000, + PROC_EVENT_FORK = 0x00000001, + PROC_EVENT_EXEC = 0x00000002, + PROC_EVENT_UID = 0x00000004, + PROC_EVENT_GID = 0x00000040, + PROC_EVENT_SID = 0x00000080, + PROC_EVENT_PTRACE = 0x00000100, + PROC_EVENT_COMM = 0x00000200, + PROC_EVENT_NONZERO_EXIT = 0x20000000, + PROC_EVENT_COREDUMP = 0x40000000, + PROC_EVENT_EXIT = 0x80000000, + } +} + +// linux/connector.h +pub const CN_IDX_PROC: c_uint = 0x1; +pub const CN_VAL_PROC: c_uint = 0x1; +pub const CN_IDX_CIFS: c_uint = 0x2; +pub const CN_VAL_CIFS: c_uint = 0x1; +pub const CN_W1_IDX: c_uint = 0x3; +pub const CN_W1_VAL: c_uint = 0x1; +pub const CN_IDX_V86D: c_uint = 0x4; +pub const CN_VAL_V86D_UVESAFB: c_uint = 0x1; +pub const CN_IDX_BB: c_uint = 0x5; +pub const CN_DST_IDX: c_uint = 0x6; +pub const CN_DST_VAL: c_uint = 0x1; +pub const CN_IDX_DM: c_uint = 0x7; +pub const CN_VAL_DM_USERSPACE_LOG: c_uint = 0x1; +pub const CN_IDX_DRBD: c_uint = 0x8; +pub const CN_VAL_DRBD: c_uint = 0x1; +pub const CN_KVP_IDX: c_uint = 0x9; +pub const CN_KVP_VAL: c_uint = 0x1; +pub const CN_VSS_IDX: c_uint = 0xA; +pub const CN_VSS_VAL: c_uint = 0x1; + // linux/module.h pub const MODULE_INIT_IGNORE_MODVERSIONS: c_uint = 0x0001; pub const MODULE_INIT_IGNORE_VERMAGIC: c_uint = 0x0002; From 4e7a6411eefe0a6b2b93ae163a4ca9a78a46ad0b Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Tue, 25 Mar 2025 16:04:44 +0100 Subject: [PATCH 0658/1228] gnu: build settings for _TIME_BITS=64 (backport ) (cherry picked from commit 5f1eb6ca6f9fb13199468cdb09ecbbbc419c4108) --- build.rs | 40 +++++++++++++++++++++++++++------------- libc-test/build.rs | 39 +++++++++++++++++++++++++++------------ 2 files changed, 54 insertions(+), 25 deletions(-) diff --git a/build.rs b/build.rs index 6eafad5429b9b..5e1e62c5188ef 100644 --- a/build.rs +++ b/build.rs @@ -15,6 +15,8 @@ const ALLOWED_CFGS: &[&str] = &[ "freebsd15", // Corresponds to `_FILE_OFFSET_BITS=64` in glibc "gnu_file_offset_bits64", + // Corresponds to `_TIME_BITS=64` in glibc + "gnu_time_bits64", // FIXME(ctest): this config shouldn't be needed but ctest can't parse `const extern fn` "libc_const_extern_fn", "libc_deny_warnings", @@ -103,23 +105,35 @@ fn main() { set_cfg("linux_time_bits64"); } println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS"); - match env::var("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS") { - Ok(val) if val == "64" => { - if target_env == "gnu" - && target_os == "linux" - && target_ptr_width == "32" - && target_arch != "riscv32" - && target_arch != "x86_64" - { + println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_GNU_TIME_BITS"); + if target_env == "gnu" + && target_os == "linux" + && target_ptr_width == "32" + && target_arch != "riscv32" + && target_arch != "x86_64" + { + match env::var("RUST_LIBC_UNSTABLE_GNU_TIME_BITS") { + Ok(val) if val == "64" => { set_cfg("gnu_file_offset_bits64"); + set_cfg("linux_time_bits64"); + set_cfg("gnu_time_bits64"); + } + Ok(val) if val != "32" => { + panic!("RUST_LIBC_UNSTABLE_GNU_TIME_BITS may only be set to '32' or '64'") + } + _ => { + match env::var("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS") { + Ok(val) if val == "64" => { + set_cfg("gnu_file_offset_bits64"); + } + Ok(val) if val != "32" => { + panic!("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS may only be set to '32' or '64'") + } + _ => {} + } } } - Ok(val) if val != "32" => { - panic!("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS may only be set to '32' or '64'") - } - _ => {} } - // On CI: deny all warnings if libc_ci { set_cfg("libc_deny_warnings"); diff --git a/libc-test/build.rs b/libc-test/build.rs index 4815715a5c493..ae0a54bdd16d0 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3689,22 +3689,37 @@ fn test_vxworks(target: &str) { } fn config_gnu_bits(target: &str, cfg: &mut ctest::TestGenerator) { - match env::var("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS") { - Ok(val) if val == "64" => { - if target.contains("gnu") - && target.contains("linux") - && !target.ends_with("x32") - && !target.contains("riscv32") - && env::var("CARGO_CFG_TARGET_POINTER_WIDTH").unwrap() == "32" - { + let pointer_width = env::var("CARGO_CFG_TARGET_POINTER_WIDTH").unwrap_or_default(); + if target.contains("gnu") + && target.contains("linux") + && !target.ends_with("x32") + && !target.contains("riscv32") + && pointer_width == "32" + { + match env::var("RUST_LIBC_UNSTABLE_GNU_TIME_BITS") { + Ok(val) if val == "64" => { cfg.define("_FILE_OFFSET_BITS", Some("64")); + cfg.define("_TIME_BITS", Some("64")); cfg.cfg("gnu_file_offset_bits64", None); + cfg.cfg("linux_time_bits64", None); + cfg.cfg("gnu_time_bits64", None); + } + Ok(val) if val != "32" => { + panic!("RUST_LIBC_UNSTABLE_GNU_TIME_BITS may only be set to '32' or '64'") + } + _ => { + match env::var("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS") { + Ok(val) if val == "64" => { + cfg.define("_FILE_OFFSET_BITS", Some("64")); + cfg.cfg("gnu_file_offset_bits64", None); + } + Ok(val) if val != "32" => { + panic!("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS may only be set to '32' or '64'") + } + _ => {} + } } } - Ok(val) if val != "32" => { - panic!("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS may only be set to '32' or '64'") - } - _ => {} } } From 52035e1c00577a3df95b55cfe24c847d6ef72644 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Tue, 25 Mar 2025 16:08:33 +0100 Subject: [PATCH 0659/1228] gnu: Set up the CI for _TIME_BITS=64 Add new jobs for i686 in test_tier1 and arm and powerpc in test_tier2 where RUST_LIBC_UNSTABLE_GNU_TIME_BITS=64. Use artifact-tag to avoid artifact name collisions. (backport ) (cherry picked from commit 352274a3dedcbb942da5eca5cf7df75b15444518) --- .github/workflows/ci.yaml | 14 ++++++++++++++ ci/run-docker.sh | 1 + ci/verify-build.sh | 7 +++++-- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 84d8d1a1f436a..97abaef3f23f5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -99,6 +99,12 @@ jobs: artifact-tag: offset-bits64 env: RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64 + - target: i686-unknown-linux-gnu + docker: true + os: ubuntu-24.04 + artifact-tag: time-bits64 + env: + RUST_LIBC_UNSTABLE_GNU_TIME_BITS: 64 - target: x86_64-unknown-linux-gnu docker: true os: ubuntu-24.04 @@ -196,6 +202,10 @@ jobs: env: RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64 artifact-tag: offset-bits64 + - target: arm-unknown-linux-gnueabihf + env: + RUST_LIBC_UNSTABLE_GNU_TIME_BITS: 64 + artifact-tag: time-bits64 - target: aarch64-unknown-linux-musl env: RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 @@ -215,6 +225,10 @@ jobs: # env: # RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64 # artifact-tag: offset-bits64 + # - target: powerpc-unknown-linux-gnu + # env: + # RUST_LIBC_UNSTABLE_GNU_TIME_BITS: 64 + # artifact-tag: time-bits64 timeout-minutes: 25 env: TARGET: ${{ matrix.target }} diff --git a/ci/run-docker.sh b/ci/run-docker.sh index 6e18e520ce2d1..9411d39e5f670 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -44,6 +44,7 @@ run() { --env LIBC_CI \ --env LIBC_CI_ZBUILD_STD \ --env RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS \ + --env RUST_LIBC_UNSTABLE_GNU_TIME_BITS \ --env CARGO_HOME=/cargo \ --env CARGO_TARGET_DIR=/checkout/target \ --volume "$CARGO_HOME":/cargo \ diff --git a/ci/verify-build.sh b/ci/verify-build.sh index 375a5de1b0a2f..7def289221491 100755 --- a/ci/verify-build.sh +++ b/ci/verify-build.sh @@ -76,9 +76,12 @@ test_target() { # Test with the equivalent of __USE_TIME_BITS64 RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64=1 $cmd case "$target" in - # Test with the equivalent of __FILE_OFFSET_BITS=64 arm*-gnu*|i*86*-gnu|powerpc-*-gnu*|mips*-gnu|sparc-*-gnu|thumb-*gnu*) - RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS=64 $cmd;; + # Test with the equivalent of _FILE_OFFSET_BITS=64 + RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS=64 $cmd + # Test with the equivalent of _TIME_BITS=64 + RUST_LIBC_UNSTABLE_GNU_TIME_BITS=64 $cmd + ;; esac fi From e9f0ad2ddb56b516e5f455592581f820ceb98a31 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Tue, 25 Mar 2025 17:09:13 +0100 Subject: [PATCH 0660/1228] gnu: Handle basic time types for 32bit with _TIME_BITS=64 Set the basic types correctly for gnu_time_bits64 (_TIME_BITS=64 and _FILE_OFFSET_BITS=64). (backport ) (cherry picked from commit 739873b59ceb1ae63229d71823c0b64bdb880482) --- src/unix/linux_like/linux/gnu/b32/mod.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index e9a958478c543..67737d6841d1d 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -29,6 +29,18 @@ cfg_if! { pub type fsfilcnt_t = u64; pub type rlim_t = u64; pub type blksize_t = i64; + } else if #[cfg(gnu_time_bits64)] { + pub type time_t = i64; + pub type suseconds_t = i32; + type __ino_t = c_ulong; + type __ino64_t = u64; + pub type ino_t = __ino64_t; + pub type off_t = i64; + pub type blkcnt_t = i64; + pub type fsblkcnt_t = u64; + pub type fsfilcnt_t = u64; + pub type rlim_t = u64; + pub type blksize_t = i32; } else if #[cfg(gnu_file_offset_bits64)] { pub type time_t = i32; pub type suseconds_t = i32; From 8f3da768cf925e331161cecee4070c490c1297b1 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Thu, 21 Nov 2024 16:25:30 +0100 Subject: [PATCH 0661/1228] gnu: Use _TIME_BITS=64 versions of glibc symbols Set the link names of relevant symbols to use be the same as when a C program is built against GNU libc with -D_TIME_BITS=64 -- which also requires -D_FILE_OFFSET_BITS=64. References: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/io/fcntl.h fcntl on line 190 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/io/sys/poll.h ppoll on line 71 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/io/sys/stat.h difftime on line 86 fstat on line 218 fstat64 on line 249 fstatat on line 270 fstatat64 on line 296 futimens on line 456 gmtime on line 140 gmtime_r on line 163 localtime on line 141 localtime_r on line 167 lstat on line 318 lstat64 on line 318 mktime on line 88 stat on line 214 stat64 on line 214 time on line 85 timegm on line 249 utimensat on line 439 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/io/utime.h utime on line 56 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/misc/sys/ioctl.h ioctl on line 45 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/misc/sys/select.h pselect on line 134 select on line 108 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/posix/glob.h glob on line 154 glob64 on line 174 globfree on line 160 globfree64 on line 180 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/posix/sched.h sched_rr_get_interval on line 81 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/posix/sys/wait.h wait4 on line 163 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/resource/sys/resource.h getrusage on line 93 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/rt/aio.h aio_suspend on line 197 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/rt/mqueue.h mq_timedreceive on line 91 mq_timedsend on line 99 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/signal/signal.h sigtimedwait on line 279 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/socket/sys/socket.h getsockopt on line 260 recvmmsg on line 219 recvmsg on line 219 sendmmsg on line 199 sendmsg on line 178 setsockopt on line 281 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/nptl/pthread.h pthread_cond_timedwait on line 1151 pthread_mutex_timedlock on line 805 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/pthread/semaphore.h sem_timedwait on line 68 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/bits/time.h clock_adjtime on line 82 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/sys/epoll.h epoll_pwait2 on line 146 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/sys/prctl.h prctl on line 45 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/sys/timerfd.h timerfd_gettime on line 67 timerfd_settime on line 52 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/sys/timex.h adjtimex on line 70 ntp_adjtime on line 76 ntp_gettime on line 72 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysvipc/sys/msg.h msgctl on line 65 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysvipc/sys/sem.h semctl on line 55 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysvipc/sys/shm.h shmctl on line 53 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/time/sys/time.h adjtime on line 102 futimes on line 200 gettimeofday on line 71 lutimes on line 196 settimeofday on line 98 utimes on line 176 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/time/time.h clock_getres on line 299 clock_gettime on line 302 clock_nanosleep on line 328 clock_settime on line 305 ctime_r on line 206 nanosleep on line 328 timer_gettime on line 366 timer_settime on line 361 (backport ) (cherry picked from commit 4c58e4b560b29408f8f3aba012add7756ea70d0d) --- src/unix/linux_like/linux/gnu/mod.rs | 13 +++++++- src/unix/linux_like/linux/mod.rs | 32 +++++++++++++++++-- src/unix/linux_like/mod.rs | 13 ++++++++ src/unix/mod.rs | 48 +++++++++++++++++++++++++--- 4 files changed, 98 insertions(+), 8 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 5235bce1f4796..bf739d6f6e2e6 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1177,12 +1177,14 @@ extern "C" { compar: Option c_int>, arg: *mut c_void, ); + #[cfg_attr(gnu_time_bits64, link_name = "__sendmmsg64")] pub fn sendmmsg( sockfd: c_int, msgvec: *mut crate::mmsghdr, vlen: c_uint, flags: c_int, ) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__recvmmsg64")] pub fn recvmmsg( sockfd: c_int, msgvec: *mut crate::mmsghdr, @@ -1221,15 +1223,20 @@ extern "C" { pub fn endutxent(); pub fn getpt() -> c_int; pub fn mallopt(param: c_int, value: c_int) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__gettimeofday64")] pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut crate::timezone) -> c_int; pub fn getentropy(buf: *mut c_void, buflen: size_t) -> c_int; pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; pub fn getauxval(type_: c_ulong) -> c_ulong; + #[cfg_attr(gnu_time_bits64, link_name = "___adjtimex64")] pub fn adjtimex(buf: *mut timex) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "___adjtimex64")] pub fn ntp_adjtime(buf: *mut timex) -> c_int; - #[link_name = "ntp_gettimex"] + #[cfg_attr(not(gnu_time_bits64), link_name = "ntp_gettimex")] + #[cfg_attr(gnu_time_bits64, link_name = "__ntp_gettime64")] pub fn ntp_gettime(buf: *mut ntptimeval) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__clock_adjtime64")] pub fn clock_adjtime(clk_id: crate::clockid_t, buf: *mut crate::timex) -> c_int; pub fn fanotify_mark( @@ -1284,12 +1291,14 @@ extern "C" { pub fn ctermid(s: *mut c_char) -> *mut c_char; pub fn backtrace(buf: *mut *mut c_void, sz: c_int) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__glob64_time64")] pub fn glob64( pattern: *const c_char, flags: c_int, errfunc: Option c_int>, pglob: *mut glob64_t, ) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__globfree64_time64")] pub fn globfree64(pglob: *mut glob64_t); pub fn ptrace(request: c_uint, ...) -> c_long; pub fn pthread_attr_getaffinity_np( @@ -1357,6 +1366,7 @@ extern "C" { pub fn eaccess(pathname: *const c_char, mode: c_int) -> c_int; pub fn asctime_r(tm: *const crate::tm, buf: *mut c_char) -> *mut c_char; + #[cfg_attr(gnu_time_bits64, link_name = "__ctime64_r")] pub fn ctime_r(timep: *const time_t, buf: *mut c_char) -> *mut c_char; pub fn dirname(path: *mut c_char) -> *mut c_char; @@ -1421,6 +1431,7 @@ extern "C" { pub fn mq_notify(mqdes: crate::mqd_t, sevp: *const crate::sigevent) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__epoll_pwait2_time64")] pub fn epoll_pwait2( epfd: c_int, events: *mut crate::epoll_event, diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index bfae5592a431c..6fcc4d49ec41d 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -6316,6 +6316,7 @@ cfg_if! { pub fn aio_error(aiocbp: *const aiocb) -> c_int; #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_return64")] pub fn aio_return(aiocbp: *mut aiocb) -> ssize_t; + #[cfg_attr(gnu_time_bits64, link_name = "__aio_suspend_time64")] pub fn aio_suspend( aiocb_list: *const *const aiocb, nitems: c_int, @@ -6377,6 +6378,7 @@ cfg_if! { riovcnt: c_ulong, flags: c_ulong, ) -> isize; + #[cfg_attr(gnu_time_bits64, link_name = "__futimes64")] pub fn futimes(fd: c_int, times: *const crate::timeval) -> c_int; } } @@ -6406,6 +6408,7 @@ cfg_if! { msg_len: size_t, msg_prio: *mut c_uint, ) -> ssize_t; + #[cfg_attr(gnu_time_bits64, link_name = "__mq_timedreceive_time64")] pub fn mq_timedreceive( mqd: crate::mqd_t, msg_ptr: *mut c_char, @@ -6419,6 +6422,7 @@ cfg_if! { msg_len: size_t, msg_prio: c_uint, ) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__mq_timedsend_time64")] pub fn mq_timedsend( mqd: crate::mqd_t, msg_ptr: *const c_char, @@ -6469,6 +6473,7 @@ extern "C" { pub fn seed48(xseed: *mut c_ushort) -> *mut c_ushort; pub fn lcong48(p: *mut c_ushort); + #[cfg_attr(gnu_time_bits64, link_name = "__lutimes64")] pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int; pub fn setpwent(); @@ -6490,11 +6495,14 @@ extern "C" { pub fn shmget(key: crate::key_t, size: size_t, shmflg: c_int) -> c_int; 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; + #[cfg_attr(gnu_time_bits64, link_name = "__shmctl64")] pub fn shmctl(shmid: c_int, cmd: c_int, buf: *mut crate::shmid_ds) -> c_int; pub fn ftok(pathname: *const c_char, proj_id: c_int) -> crate::key_t; pub fn semget(key: crate::key_t, nsems: c_int, semflag: c_int) -> c_int; pub fn semop(semid: c_int, sops: *mut crate::sembuf, nsops: size_t) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__semctl64")] pub fn semctl(semid: c_int, semnum: c_int, cmd: c_int, ...) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__msgctl64")] pub fn msgctl(msqid: c_int, cmd: c_int, buf: *mut msqid_ds) -> c_int; pub fn msgget(key: crate::key_t, msgflg: c_int) -> c_int; pub fn msgrcv( @@ -6561,7 +6569,9 @@ extern "C" { pub fn fremovexattr(filedes: c_int, name: *const c_char) -> c_int; pub fn signalfd(fd: c_int, mask: *const crate::sigset_t, flags: c_int) -> c_int; pub fn timerfd_create(clockid: crate::clockid_t, flags: c_int) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__timerfd_gettime64")] pub fn timerfd_gettime(fd: c_int, curr_value: *mut itimerspec) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__timerfd_settime64")] pub fn timerfd_settime( fd: c_int, flags: c_int, @@ -6577,6 +6587,7 @@ extern "C" { sigmask: *const crate::sigset_t, ) -> c_int; pub fn dup3(oldfd: c_int, newfd: c_int, flags: c_int) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__sigtimedwait64")] pub fn sigtimedwait( set: *const sigset_t, info: *mut siginfo_t, @@ -6618,14 +6629,22 @@ extern "C" { ... ) -> *mut c_void; - #[cfg_attr(gnu_file_offset_bits64, link_name = "glob64")] + #[cfg_attr(gnu_time_bits64, link_name = "__glob64_time64")] + #[cfg_attr( + all(not(gnu_time_bits64), gnu_file_offset_bits64), + link_name = "glob64" + )] pub fn glob( pattern: *const c_char, flags: c_int, errfunc: Option c_int>, pglob: *mut crate::glob_t, ) -> c_int; - #[cfg_attr(gnu_file_offset_bits64, link_name = "globfree64")] + #[cfg_attr(gnu_time_bits64, link_name = "__globfree64_time64")] + #[cfg_attr( + all(not(gnu_time_bits64), gnu_file_offset_bits64), + link_name = "globfree64" + )] pub fn globfree(pglob: *mut crate::glob_t); pub fn posix_madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; @@ -6688,6 +6707,7 @@ extern "C" { pub fn umount(target: *const c_char) -> c_int; pub fn sched_get_priority_max(policy: c_int) -> c_int; pub fn tee(fd_in: c_int, fd_out: c_int, len: size_t, flags: c_uint) -> ssize_t; + #[cfg_attr(gnu_time_bits64, link_name = "__settimeofday64")] pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int; pub fn splice( fd_in: c_int, @@ -6701,7 +6721,9 @@ extern "C" { pub fn eventfd_read(fd: c_int, value: *mut eventfd_t) -> c_int; pub fn eventfd_write(fd: c_int, value: eventfd_t) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__sched_rr_get_interval64")] pub fn sched_rr_get_interval(pid: crate::pid_t, tp: *mut crate::timespec) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__sem_timedwait64")] pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int; pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int; pub fn sched_setparam(pid: crate::pid_t, param: *const crate::sched_param) -> c_int; @@ -6717,8 +6739,10 @@ extern "C" { data: *const c_void, ) -> c_int; pub fn personality(persona: c_ulong) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__prctl_time64")] pub fn prctl(option: c_int, ...) -> c_int; pub fn sched_getparam(pid: crate::pid_t, param: *mut crate::sched_param) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__ppoll64")] pub fn ppoll( fds: *mut crate::pollfd, nfds: nfds_t, @@ -6731,6 +6755,7 @@ extern "C" { ) -> c_int; pub fn pthread_mutexattr_setprotocol(attr: *mut pthread_mutexattr_t, protocol: c_int) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__pthread_mutex_timedlock64")] pub fn pthread_mutex_timedlock( lock: *mut pthread_mutex_t, abstime: *const crate::timespec, @@ -6765,6 +6790,7 @@ extern "C" { ... ) -> c_int; pub fn sched_getscheduler(pid: crate::pid_t) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__clock_nanosleep_time64")] pub fn clock_nanosleep( clk_id: crate::clockid_t, flags: c_int, @@ -7022,7 +7048,9 @@ extern "C" { ) -> c_int; pub fn timer_delete(timerid: crate::timer_t) -> c_int; pub fn timer_getoverrun(timerid: crate::timer_t) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__timer_gettime64")] pub fn timer_gettime(timerid: crate::timer_t, curr_value: *mut crate::itimerspec) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__timer_settime64")] pub fn timer_settime( timerid: crate::timer_t, flags: c_int, diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index aab4cb385e000..2d9b8ec9d9535 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1826,6 +1826,7 @@ cfg_if! { } extern "C" { + #[cfg_attr(gnu_time_bits64, link_name = "__ioctl_time64")] pub fn ioctl(fd: c_int, request: Ioctl, ...) -> c_int; } } @@ -1971,8 +1972,11 @@ extern "C" { pub fn fdatasync(fd: c_int) -> c_int; pub fn mincore(addr: *mut c_void, len: size_t, vec: *mut c_uchar) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__clock_getres64")] pub fn clock_getres(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__clock_gettime64")] pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__clock_settime64")] pub fn clock_settime(clk_id: crate::clockid_t, tp: *const crate::timespec) -> c_int; pub fn clock_getcpuclockid(pid: crate::pid_t, clk_id: *mut crate::clockid_t) -> c_int; @@ -1999,7 +2003,9 @@ extern "C" { pub fn memrchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; #[cfg_attr(gnu_file_offset_bits64, link_name = "posix_fadvise64")] pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advise: c_int) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__futimens64")] pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__utimensat64")] pub fn utimensat( dirfd: c_int, path: *const c_char, @@ -2054,6 +2060,7 @@ extern "C" { pub fn vfork() -> crate::pid_t; pub fn setresgid(rgid: crate::gid_t, egid: crate::gid_t, sgid: crate::gid_t) -> c_int; pub fn setresuid(ruid: crate::uid_t, euid: crate::uid_t, suid: crate::uid_t) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__wait4_time64")] pub fn wait4( pid: crate::pid_t, status: *mut c_int, @@ -2081,7 +2088,9 @@ extern "C" { pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; pub fn readv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t; + #[cfg_attr(gnu_time_bits64, link_name = "__sendmsg64")] pub fn sendmsg(fd: c_int, msg: *const crate::msghdr, flags: c_int) -> ssize_t; + #[cfg_attr(gnu_time_bits64, link_name = "__recvmsg64")] pub fn recvmsg(fd: c_int, msg: *mut crate::msghdr, flags: c_int) -> ssize_t; pub fn uname(buf: *mut crate::utsname) -> c_int; @@ -2123,7 +2132,9 @@ cfg_if! { pub fn fstatvfs64(fd: c_int, buf: *mut statvfs64) -> c_int; pub fn statfs64(path: *const c_char, buf: *mut statfs64) -> c_int; pub fn creat64(path: *const c_char, mode: mode_t) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__fstat64_time64")] pub fn fstat64(fildes: c_int, buf: *mut stat64) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__fstatat64_time64")] pub fn fstatat64( dirfd: c_int, pathname: *const c_char, @@ -2132,6 +2143,7 @@ cfg_if! { ) -> c_int; pub fn ftruncate64(fd: c_int, length: off64_t) -> c_int; pub fn lseek64(fd: c_int, offset: off64_t, whence: c_int) -> off64_t; + #[cfg_attr(gnu_time_bits64, link_name = "__lstat64_time64")] pub fn lstat64(path: *const c_char, buf: *mut stat64) -> c_int; pub fn mmap64( addr: *mut c_void, @@ -2162,6 +2174,7 @@ cfg_if! { entry: *mut crate::dirent64, result: *mut *mut crate::dirent64, ) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__stat64_time64")] pub fn stat64(path: *const c_char, buf: *mut stat64) -> c_int; pub fn truncate64(path: *const c_char, length: off64_t) -> c_int; } diff --git a/src/unix/mod.rs b/src/unix/mod.rs index d6259ea0f35dd..ff521747ba14c 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -804,6 +804,7 @@ extern "C" { pub fn getsockname(socket: c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> c_int; #[cfg_attr(target_os = "espidf", link_name = "lwip_setsockopt")] + #[cfg_attr(gnu_time_bits64, link_name = "__setsockopt64")] pub fn setsockopt( socket: c_int, level: c_int, @@ -866,7 +867,11 @@ extern "C" { all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "fstat@FBSD_1.0" )] - #[cfg_attr(gnu_file_offset_bits64, link_name = "fstat64")] + #[cfg_attr(gnu_time_bits64, link_name = "__fstat64_time64")] + #[cfg_attr( + all(not(gnu_time_bits64), gnu_file_offset_bits64), + link_name = "fstat64" + )] pub fn fstat(fildes: c_int, buf: *mut stat) -> c_int; pub fn mkdir(path: *const c_char, mode: mode_t) -> c_int; @@ -880,7 +885,11 @@ extern "C" { all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "stat@FBSD_1.0" )] - #[cfg_attr(gnu_file_offset_bits64, link_name = "stat64")] + #[cfg_attr(gnu_time_bits64, link_name = "__stat64_time64")] + #[cfg_attr( + all(not(gnu_time_bits64), gnu_file_offset_bits64), + link_name = "stat64" + )] pub fn stat(path: *const c_char, buf: *mut stat) -> c_int; pub fn pclose(stream: *mut crate::FILE) -> c_int; @@ -907,7 +916,11 @@ extern "C" { all(target_os = "macos", target_arch = "x86"), link_name = "fcntl$UNIX2003" )] - #[cfg_attr(gnu_file_offset_bits64, link_name = "__fcntl_time64")] + #[cfg_attr(gnu_time_bits64, link_name = "__fcntl_time64")] + #[cfg_attr( + all(not(gnu_time_bits64), gnu_file_offset_bits64), + link_name = "__fcntl_time64" + )] pub fn fcntl(fd: c_int, cmd: c_int, ...) -> c_int; #[cfg_attr( @@ -964,7 +977,11 @@ extern "C" { all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "fstatat@FBSD_1.1" )] - #[cfg_attr(gnu_file_offset_bits64, link_name = "fstatat64")] + #[cfg_attr(gnu_time_bits64, link_name = "__fstatat64_time64")] + #[cfg_attr( + all(not(gnu_time_bits64), gnu_file_offset_bits64), + link_name = "fstatat64" + )] pub fn fstatat(dirfd: c_int, pathname: *const c_char, buf: *mut stat, flags: c_int) -> c_int; pub fn linkat( olddirfd: c_int, @@ -1069,6 +1086,7 @@ extern "C" { link_name = "nanosleep$UNIX2003" )] #[cfg_attr(target_os = "netbsd", link_name = "__nanosleep50")] + #[cfg_attr(gnu_time_bits64, link_name = "__nanosleep64")] pub fn nanosleep(rqtp: *const timespec, rmtp: *mut timespec) -> c_int; pub fn tcgetpgrp(fd: c_int) -> pid_t; pub fn tcsetpgrp(fd: c_int, pgrp: crate::pid_t) -> c_int; @@ -1113,6 +1131,7 @@ extern "C" { pub fn umask(mask: mode_t) -> mode_t; #[cfg_attr(target_os = "netbsd", link_name = "__utime50")] + #[cfg_attr(gnu_time_bits64, link_name = "__utime64")] pub fn utime(file: *const c_char, buf: *const utimbuf) -> c_int; #[cfg_attr( @@ -1162,7 +1181,11 @@ extern "C" { all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "lstat@FBSD_1.0" )] - #[cfg_attr(gnu_file_offset_bits64, link_name = "lstat64")] + #[cfg_attr(gnu_time_bits64, link_name = "__lstat64_time64")] + #[cfg_attr( + all(not(gnu_time_bits64), gnu_file_offset_bits64), + link_name = "lstat64" + )] pub fn lstat(path: *const c_char, buf: *mut stat) -> c_int; #[cfg_attr( @@ -1193,6 +1216,7 @@ extern "C" { pub fn signal(signum: c_int, handler: sighandler_t) -> sighandler_t; #[cfg_attr(target_os = "netbsd", link_name = "__getrusage50")] + #[cfg_attr(gnu_time_bits64, link_name = "__getrusage64")] pub fn getrusage(resource: c_int, usage: *mut rusage) -> c_int; #[cfg_attr( @@ -1268,6 +1292,7 @@ extern "C" { all(target_os = "macos", target_arch = "x86"), link_name = "pthread_cond_timedwait$UNIX2003" )] + #[cfg_attr(gnu_time_bits64, link_name = "__pthread_cond_timedwait64")] pub fn pthread_cond_timedwait( cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t, @@ -1324,6 +1349,7 @@ extern "C" { link_name = "__xnet_getsockopt" )] #[cfg_attr(target_os = "espidf", link_name = "lwip_getsockopt")] + #[cfg_attr(gnu_time_bits64, link_name = "__getsockopt64")] pub fn getsockopt( sockfd: c_int, level: c_int, @@ -1334,6 +1360,7 @@ extern "C" { pub fn raise(signum: c_int) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__utimes50")] + #[cfg_attr(gnu_time_bits64, link_name = "__utimes64")] pub fn utimes(filename: *const c_char, times: *const crate::timeval) -> c_int; pub fn dlopen(filename: *const c_char, flag: c_int) -> *mut c_void; pub fn dlerror() -> *mut c_char; @@ -1386,10 +1413,12 @@ extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__gmtime_r50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] // FIXME(time): for `time_t` + #[cfg_attr(gnu_time_bits64, link_name = "__gmtime64_r")] pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; #[cfg_attr(target_os = "netbsd", link_name = "__localtime_r50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] // FIXME(time): for `time_t` + #[cfg_attr(gnu_time_bits64, link_name = "__localtime64_r")] pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), @@ -1398,27 +1427,33 @@ extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__mktime50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] // FIXME: for `time_t` + #[cfg_attr(gnu_time_bits64, link_name = "__mktime64")] pub fn mktime(tm: *mut tm) -> time_t; #[cfg_attr(target_os = "netbsd", link_name = "__time50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] // FIXME: for `time_t` + #[cfg_attr(gnu_time_bits64, link_name = "__time64")] pub fn time(time: *mut time_t) -> time_t; #[cfg_attr(target_os = "netbsd", link_name = "__gmtime50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] // FIXME(time): for `time_t` + #[cfg_attr(gnu_time_bits64, link_name = "__gmtime64")] pub fn gmtime(time_p: *const time_t) -> *mut tm; #[cfg_attr(target_os = "netbsd", link_name = "__locatime50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] // FIXME(time): for `time_t` + #[cfg_attr(gnu_time_bits64, link_name = "__localtime64")] pub fn localtime(time_p: *const time_t) -> *mut tm; #[cfg_attr(target_os = "netbsd", link_name = "__difftime50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] // FIXME(time): for `time_t` + #[cfg_attr(gnu_time_bits64, link_name = "__difftime64")] pub fn difftime(time1: time_t, time0: time_t) -> c_double; #[cfg(not(target_os = "aix"))] #[cfg_attr(target_os = "netbsd", link_name = "__timegm50")] #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] // FIXME(time): for `time_t` + #[cfg_attr(gnu_time_bits64, link_name = "__timegm64")] pub fn timegm(tm: *mut crate::tm) -> time_t; #[cfg_attr(target_os = "netbsd", link_name = "__mknod50")] @@ -1477,6 +1512,7 @@ extern "C" { )] #[cfg_attr(target_os = "netbsd", link_name = "__select50")] #[cfg_attr(target_os = "aix", link_name = "__fd_select")] + #[cfg_attr(gnu_time_bits64, link_name = "__select64")] pub fn select( nfds: c_int, readfds: *mut fd_set, @@ -1599,6 +1635,7 @@ cfg_if! { target_os = "aix", )))] { extern "C" { + #[cfg_attr(gnu_time_bits64, link_name = "__adjtime64")] pub fn adjtime(delta: *const timeval, olddelta: *mut timeval) -> c_int; } } else if #[cfg(target_os = "solaris")] { @@ -1752,6 +1789,7 @@ cfg_if! { link_name = "pselect$UNIX2003" )] #[cfg_attr(target_os = "netbsd", link_name = "__pselect50")] + #[cfg_attr(gnu_time_bits64, link_name = "__pselect64")] pub fn pselect( nfds: c_int, readfds: *mut fd_set, From e2f0562ebaf9d929ccd2c302d8860d497fab8adb Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Mon, 20 Mar 2023 14:22:31 +0100 Subject: [PATCH 0662/1228] gnu: Update struct shmid_ds for 64-bit time References: Common definition for _TIME_BITS=64 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds_helper.h Generic implementation used by x86 and arm: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h PowerPC: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h MIPS: (no changes required) https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h SPARC: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h (backport ) (cherry picked from commit 831b6269787ed0f226859352fdde1befaa249d03) --- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 3 +++ src/unix/linux_like/linux/gnu/b32/powerpc.rs | 7 +++++++ src/unix/linux_like/linux/gnu/b32/sparc/mod.rs | 6 ++++++ src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 3 +++ 4 files changed, 19 insertions(+) diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 2dd4a88674f3e..95cb236091d26 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -115,10 +115,13 @@ s! { pub shm_perm: crate::ipc_perm, pub shm_segsz: size_t, pub shm_atime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __unused1: c_ulong, pub shm_dtime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __unused2: c_ulong, pub shm_ctime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __unused3: c_ulong, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 36da977d688a3..0ecdbdd73e654 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -136,13 +136,20 @@ s! { pub struct shmid_ds { pub shm_perm: crate::ipc_perm, + #[cfg(gnu_time_bits64)] + pub shm_segsz: size_t, + #[cfg(not(gnu_time_bits64))] __glibc_reserved1: c_uint, pub shm_atime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __glibc_reserved2: c_uint, pub shm_dtime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __glibc_reserved3: c_uint, pub shm_ctime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __glibc_reserved4: c_uint, + #[cfg(not(gnu_time_bits64))] pub shm_segsz: size_t, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index 7533ad689bb42..6081145cc3d80 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -154,12 +154,18 @@ s! { pub struct shmid_ds { pub shm_perm: crate::ipc_perm, + #[cfg(gnu_time_bits64)] + pub shm_segsz: size_t, + #[cfg(not(gnu_time_bits64))] __pad1: c_uint, pub shm_atime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __pad2: c_uint, pub shm_dtime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __pad3: c_uint, pub shm_ctime: crate::time_t, + #[cfg(not(gnu_time_bits64))] pub shm_segsz: size_t, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index c0eb9e89bc442..2f2751f4418c8 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -189,10 +189,13 @@ s! { pub shm_perm: crate::ipc_perm, pub shm_segsz: size_t, pub shm_atime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __unused1: c_ulong, pub shm_dtime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __unused2: c_ulong, pub shm_ctime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __unused3: c_ulong, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, From 85f205b50e531741f145e81fce82cde867993478 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Mon, 27 Mar 2023 14:15:18 +0200 Subject: [PATCH 0663/1228] gnu: Update struct msqid_ds for 64-bit time References: Common definition for _TIME_BITS=64 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds_helper.h Generic implementation used by x86 and arm: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h PowerPC: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h MIPS: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h SPARC: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h (backport ) (cherry picked from commit bb5a84a4dabe325c5a24fd0cfa04f63e91cdb0fe) --- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 3 +++ src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 12 ++++++------ src/unix/linux_like/linux/gnu/b32/powerpc.rs | 3 +++ src/unix/linux_like/linux/gnu/b32/sparc/mod.rs | 9 ++++++--- src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 3 +++ 5 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 95cb236091d26..68eafcb350735 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -133,10 +133,13 @@ s! { pub struct msqid_ds { pub msg_perm: crate::ipc_perm, pub msg_stime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __glibc_reserved1: c_ulong, pub msg_rtime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __glibc_reserved2: c_ulong, pub msg_ctime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __glibc_reserved3: c_ulong, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 649a8e04bd470..1de98a64172d6 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -161,22 +161,22 @@ s! { pub struct msqid_ds { pub msg_perm: crate::ipc_perm, - #[cfg(target_endian = "big")] + #[cfg(all(not(gnu_time_bits64), target_endian = "big"))] __glibc_reserved1: c_ulong, pub msg_stime: crate::time_t, - #[cfg(target_endian = "little")] + #[cfg(all(not(gnu_time_bits64), target_endian = "little"))] __glibc_reserved1: c_ulong, - #[cfg(target_endian = "big")] + #[cfg(all(not(gnu_time_bits64), target_endian = "big"))] __glibc_reserved2: c_ulong, pub msg_rtime: crate::time_t, - #[cfg(target_endian = "little")] + #[cfg(all(not(gnu_time_bits64), target_endian = "little"))] __glibc_reserved2: c_ulong, - #[cfg(target_endian = "big")] + #[cfg(all(not(gnu_time_bits64), target_endian = "big"))] __glibc_reserved3: c_ulong, pub msg_ctime: crate::time_t, #[cfg(target_endian = "little")] __glibc_reserved3: c_ulong, - pub __msg_cbytes: c_ulong, + __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 0ecdbdd73e654..14d42e4b9b47a 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -160,10 +160,13 @@ s! { pub struct msqid_ds { pub msg_perm: crate::ipc_perm, + #[cfg(not(gnu_time_bits64))] __glibc_reserved1: c_uint, pub msg_stime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __glibc_reserved2: c_uint, pub msg_rtime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __glibc_reserved3: c_uint, pub msg_ctime: crate::time_t, pub __msg_cbytes: c_ulong, diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index 6081145cc3d80..03760e72e5e93 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -176,19 +176,22 @@ s! { pub struct msqid_ds { pub msg_perm: crate::ipc_perm, + #[cfg(not(gnu_time_bits64))] __pad1: c_uint, pub msg_stime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __pad2: c_uint, pub msg_rtime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __pad3: c_uint, pub msg_ctime: crate::time_t, - pub __msg_cbytes: c_ushort, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved1: c_ulong, - __glibc_reserved2: c_ulong, + __glibc_reserved4: c_ulong, + __glibc_reserved5: c_ulong, } } diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 2f2751f4418c8..729dc7b9e7286 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -207,10 +207,13 @@ s! { pub struct msqid_ds { pub msg_perm: crate::ipc_perm, pub msg_stime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __glibc_reserved1: c_ulong, pub msg_rtime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __glibc_reserved2: c_ulong, pub msg_ctime: crate::time_t, + #[cfg(not(gnu_time_bits64))] __glibc_reserved3: c_ulong, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, From 70dcf6da22c6d9d5488761dbb75a3e3e46417d5a Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Mon, 20 Mar 2023 14:29:55 +0100 Subject: [PATCH 0664/1228] gnu: Update struct semid_ds for 64-bit time References: Common definition for _TIME_BITS=64 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds_helper.h Generic implementation used by arm: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h x86: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h PowerPC: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h MIPS: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h SPARC: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h (backport ) (cherry picked from commit a05a91cf87519c196ec4705481aec378e8f909d2) --- src/unix/linux_like/linux/gnu/b32/mod.rs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 67737d6841d1d..56bc9c01b46c3 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -166,25 +166,38 @@ s! { pub struct semid_ds { pub sem_perm: ipc_perm, - #[cfg(target_arch = "powerpc")] + #[cfg(all(not(gnu_time_bits64), target_arch = "powerpc"))] __reserved: crate::__syscall_ulong_t, pub sem_otime: crate::time_t, #[cfg(not(any( + gnu_time_bits64, target_arch = "mips", target_arch = "mips32r6", target_arch = "powerpc" )))] __reserved: crate::__syscall_ulong_t, - #[cfg(target_arch = "powerpc")] + #[cfg(all(not(gnu_time_bits64), target_arch = "powerpc"))] __reserved2: crate::__syscall_ulong_t, pub sem_ctime: crate::time_t, #[cfg(not(any( + gnu_time_bits64, target_arch = "mips", target_arch = "mips32r6", target_arch = "powerpc" )))] __reserved2: crate::__syscall_ulong_t, pub sem_nsems: crate::__syscall_ulong_t, + #[cfg(all( + gnu_time_bits64, + not(any( + target_arch = "mips", + target_arch = "mips32r6", + target_arch = "powerpc", + target_arch = "arm", + target_arch = "x86" + )) + ))] + __reserved2: crate::__syscall_ulong_t, __glibc_reserved3: crate::__syscall_ulong_t, __glibc_reserved4: crate::__syscall_ulong_t, } From dfcfcf847ffcf381f5e962f84ac2ef549cb2d60f Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Mon, 27 Mar 2023 14:17:19 +0200 Subject: [PATCH 0665/1228] gnu: Update struct timespec for GNU _TIME_BITS=64 Use a GNU libc specific version of struct timespec in unix/linux_like/linux/gnu and keep the version in unix for all other unix libc's. Big-endian platforms wants 32 bits of padding before tv_nsec, little-endian after. GNU libc always uses long for tv_nsec. References: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/time/bits/types/struct_timespec.h (backport ) (cherry picked from commit bbaa0173daa439f55e6fabfd71982fc579bb3e8c) --- src/unix/linux_like/linux/gnu/mod.rs | 12 ++++++++++++ src/unix/mod.rs | 1 + 2 files changed, 13 insertions(+) diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index bf739d6f6e2e6..0c5a74b346a93 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -436,6 +436,18 @@ s! { __pos: off64_t, __state: crate::mbstate_t, } + + // linux x32 compatibility + // See https://sourceware.org/bugzilla/show_bug.cgi?id=16437 + pub struct timespec { + pub tv_sec: time_t, + #[cfg(all(gnu_time_bits64, target_endian = "big"))] + __pad: i32, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub tv_nsec: c_long, + #[cfg(all(gnu_time_bits64, target_endian = "little"))] + __pad: i32, + } } impl siginfo_t { diff --git a/src/unix/mod.rs b/src/unix/mod.rs index ff521747ba14c..b8742e006c8c2 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -64,6 +64,7 @@ s! { // linux x32 compatibility // See https://sourceware.org/bugzilla/show_bug.cgi?id=16437 + #[cfg(not(target_env = "gnu"))] pub struct timespec { pub tv_sec: time_t, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] From 516e529eb392036e2bc02eb5ae1343db2261ab98 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Tue, 25 Mar 2025 17:19:38 +0100 Subject: [PATCH 0666/1228] gnu: Move struct timex from gnu to gnu/b32 and gnu/b64 Will make it easier to adapt for _TIME_BITS=64 (backport ) (cherry picked from commit 87d9e201c3feb62e58f6ede10637ecc45db2f7b4) --- src/unix/linux_like/linux/gnu/b32/mod.rs | 34 ++++++++++ src/unix/linux_like/linux/gnu/b64/mod.rs | 79 ++++++++++++++++++++++++ src/unix/linux_like/linux/gnu/mod.rs | 79 ------------------------ 3 files changed, 113 insertions(+), 79 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 56bc9c01b46c3..5d2897a2b493a 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -201,6 +201,40 @@ s! { __glibc_reserved3: crate::__syscall_ulong_t, __glibc_reserved4: crate::__syscall_ulong_t, } + + pub struct timex { + pub modes: c_uint, + pub offset: c_long, + pub freq: c_long, + pub maxerror: c_long, + pub esterror: c_long, + pub status: c_int, + pub constant: c_long, + pub precision: c_long, + pub tolerance: c_long, + pub time: crate::timeval, + pub tick: c_long, + pub ppsfreq: c_long, + pub jitter: c_long, + pub shift: c_int, + pub stabil: c_long, + pub jitcnt: c_long, + pub calcnt: c_long, + pub errcnt: c_long, + pub stbcnt: c_long, + pub tai: c_int, + pub __unused1: i32, + pub __unused2: i32, + pub __unused3: i32, + pub __unused4: i32, + pub __unused5: i32, + pub __unused6: i32, + pub __unused7: i32, + pub __unused8: i32, + pub __unused9: i32, + pub __unused10: i32, + pub __unused11: i32, + } } pub const POSIX_FADV_DONTNEED: c_int = 4; diff --git a/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs index 5927e6c991725..ba5678b459795 100644 --- a/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -97,6 +97,85 @@ s! { __glibc_reserved3: crate::__syscall_ulong_t, __glibc_reserved4: crate::__syscall_ulong_t, } + + pub struct timex { + pub modes: c_uint, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub offset: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub offset: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub freq: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub freq: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub maxerror: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub maxerror: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub esterror: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub esterror: c_long, + pub status: c_int, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub constant: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub constant: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub precision: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub precision: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub tolerance: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub tolerance: c_long, + pub time: crate::timeval, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub tick: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub tick: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub ppsfreq: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub ppsfreq: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub jitter: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub jitter: c_long, + pub shift: c_int, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub stabil: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub stabil: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub jitcnt: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub jitcnt: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub calcnt: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub calcnt: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub errcnt: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub errcnt: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub stbcnt: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub stbcnt: c_long, + pub tai: c_int, + pub __unused1: i32, + pub __unused2: i32, + pub __unused3: i32, + pub __unused4: i32, + pub __unused5: i32, + pub __unused6: i32, + pub __unused7: i32, + pub __unused8: i32, + pub __unused9: i32, + pub __unused10: i32, + pub __unused11: i32, + } } pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 0c5a74b346a93..3533e388f2451 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -174,85 +174,6 @@ s! { pub rt_irtt: c_ushort, } - pub struct timex { - pub modes: c_uint, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub offset: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub offset: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub freq: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub freq: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub maxerror: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub maxerror: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub esterror: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub esterror: c_long, - pub status: c_int, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub constant: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub constant: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub precision: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub precision: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub tolerance: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub tolerance: c_long, - pub time: crate::timeval, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub tick: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub tick: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub ppsfreq: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub ppsfreq: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub jitter: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub jitter: c_long, - pub shift: c_int, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub stabil: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub stabil: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub jitcnt: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub jitcnt: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub calcnt: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub calcnt: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub errcnt: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub errcnt: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub stbcnt: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub stbcnt: c_long, - pub tai: c_int, - pub __unused1: i32, - pub __unused2: i32, - pub __unused3: i32, - pub __unused4: i32, - pub __unused5: i32, - pub __unused6: i32, - pub __unused7: i32, - pub __unused8: i32, - pub __unused9: i32, - pub __unused10: i32, - pub __unused11: i32, - } - pub struct ntptimeval { pub time: crate::timeval, pub maxerror: c_long, From 37f00731c81c09fb1afb4cb482d8ca94e89c00fd Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Tue, 25 Mar 2025 17:53:22 +0100 Subject: [PATCH 0667/1228] gnu: Adapt struct timex for gnu_time_bits64 Refrences: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/bits/timex.h (backport ) (cherry picked from commit 8d0f97b3818851bfb7a98f6deaf6e67424585611) --- src/unix/linux_like/linux/gnu/b32/mod.rs | 39 ++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 5d2897a2b493a..614f128de62ed 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -202,6 +202,45 @@ s! { __glibc_reserved4: crate::__syscall_ulong_t, } + #[cfg(gnu_time_bits64)] + pub struct timex { + pub modes: c_uint, + _pad1: c_int, + pub offset: c_longlong, + pub freq: c_longlong, + pub maxerror: c_longlong, + pub esterror: c_longlong, + pub status: c_int, + _pad2: c_int, + pub constant: c_longlong, + pub precision: c_longlong, + pub tolerance: c_longlong, + pub time: crate::timeval, + pub tick: c_longlong, + pub ppsfreq: c_longlong, + pub jitter: c_longlong, + pub shift: c_int, + _pad3: c_int, + pub stabil: c_longlong, + pub jitcnt: c_longlong, + pub calcnt: c_longlong, + pub errcnt: c_longlong, + pub stbcnt: c_longlong, + pub tai: c_int, + pub __unused1: i32, + pub __unused2: i32, + pub __unused3: i32, + pub __unused4: i32, + pub __unused5: i32, + pub __unused6: i32, + pub __unused7: i32, + pub __unused8: i32, + pub __unused9: i32, + pub __unused10: i32, + pub __unused11: i32, + } + + #[cfg(not(gnu_time_bits64))] pub struct timex { pub modes: c_uint, pub offset: c_long, From 21e5e3d7650eae2f7787d5037acf792e0bc5d968 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Fri, 17 Mar 2023 15:30:46 +0100 Subject: [PATCH 0668/1228] gnu: Handle timeval.tv_usec for glibc 64-bit time_t For 64 bit time on 32 bit linux glibc timeval.tv_usec is actually __suseconds64_t (64 bits) while suseconds_t is still 32 bits. References: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/time/bits/types/struct_timeval.h (backport ) (cherry picked from commit b63a6521b6edad304761a1f1e73f24aaf1e23c8f) --- src/unix/linux_like/linux/gnu/b32/mod.rs | 1 + src/unix/mod.rs | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 614f128de62ed..fc39d76724f40 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -15,6 +15,7 @@ pub type __fsword_t = i32; pub type fsblkcnt64_t = u64; pub type fsfilcnt64_t = u64; pub type __syscall_ulong_t = c_ulong; +pub type __suseconds64_t = i64; cfg_if! { if #[cfg(target_arch = "riscv32")] { diff --git a/src/unix/mod.rs b/src/unix/mod.rs index b8742e006c8c2..78331310ccabc 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -56,10 +56,14 @@ s! { pub modtime: time_t, } - // FIXME(time): Needs updates at least for glibc _TIME_BITS=64 pub struct timeval { pub tv_sec: time_t, + #[cfg(not(gnu_time_bits64))] pub tv_usec: suseconds_t, + // For 64 bit time on 32 bit linux glibc, suseconds_t is still + // a 32 bit type. Use __suseconds64_t instead + #[cfg(gnu_time_bits64)] + pub tv_usec: __suseconds64_t, } // linux x32 compatibility From 36b2e484a5af6ae4da5e282b57b9070302fa8c2c Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Tue, 25 Mar 2025 18:38:13 +0100 Subject: [PATCH 0669/1228] gnu: Adapt struct stat for gnu_time_bits64 References: ARM: https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/arm/bits/struct_stat.h MIPS: https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/mips/bits/struct_stat.h POWERPC: https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h SPARC: https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h x86: https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/x86/bits/struct_stat.h Common definition for _TIME_BITS=64 https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h (backport ) (cherry picked from commit 8995e0be55ac62886d6e1568ca4f0ae785986091) --- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 25 +++++++++++++++++-- src/unix/linux_like/linux/gnu/b32/mod.rs | 14 ++++++++--- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 9 +++++++ 3 files changed, 43 insertions(+), 5 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 1de98a64172d6..759da2334aeaf 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -5,8 +5,12 @@ pub type wchar_t = i32; s! { pub struct stat { + #[cfg(not(gnu_time_bits64))] pub st_dev: c_ulong, + #[cfg(gnu_time_bits64)] + pub st_dev: crate::dev_t, + #[cfg(not(gnu_time_bits64))] st_pad1: [c_long; 3], pub st_ino: crate::ino_t, @@ -16,11 +20,14 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, + #[cfg(not(gnu_time_bits64))] pub st_rdev: c_ulong, + #[cfg(gnu_time_bits64)] + pub st_rdev: crate::dev_t, #[cfg(not(gnu_file_offset_bits64))] st_pad2: [c_long; 2], - #[cfg(gnu_file_offset_bits64)] + #[cfg(all(not(gnu_time_bits64), gnu_file_offset_bits64))] st_pad2: [c_long; 3], pub st_size: off_t, @@ -28,17 +35,31 @@ s! { #[cfg(not(gnu_file_offset_bits64))] st_pad3: c_long, + #[cfg(gnu_time_bits64)] + pub st_blksize: crate::blksize_t, + #[cfg(gnu_time_bits64)] + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + #[cfg(gnu_time_bits64)] + _atime_pad: c_int, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, + #[cfg(gnu_time_bits64)] + _mtime_pad: c_int, pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, + #[cfg(gnu_time_bits64)] + _ctime_pad: c_int, pub st_ctime_nsec: c_long, + #[cfg(not(gnu_time_bits64))] pub st_blksize: crate::blksize_t, - #[cfg(gnu_file_offset_bits64)] + #[cfg(all(not(gnu_time_bits64), gnu_file_offset_bits64))] st_pad4: c_long, + #[cfg(not(gnu_time_bits64))] pub st_blocks: crate::blkcnt_t, + #[cfg(not(gnu_time_bits64))] st_pad5: [c_long; 14], } diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index fc39d76724f40..fe843a7643207 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -80,11 +80,12 @@ cfg_if! { pub struct stat { pub st_dev: crate::dev_t, + #[cfg(not(gnu_time_bits64))] __pad1: c_uint, - #[cfg(not(gnu_file_offset_bits64))] + #[cfg(any(gnu_time_bits64, not(gnu_file_offset_bits64)))] pub st_ino: crate::ino_t, - #[cfg(all(gnu_file_offset_bits64))] + #[cfg(all(not(gnu_time_bits64), gnu_file_offset_bits64))] __st_ino: __ino_t, pub st_mode: crate::mode_t, @@ -94,6 +95,7 @@ cfg_if! { pub st_rdev: crate::dev_t, + #[cfg(not(gnu_time_bits64))] __pad2: c_uint, pub st_size: off_t, @@ -103,16 +105,22 @@ cfg_if! { pub st_atime: crate::time_t, pub st_atime_nsec: c_long, + #[cfg(gnu_time_bits64)] + _atime_pad: c_int, pub st_mtime: crate::time_t, pub st_mtime_nsec: c_long, + #[cfg(gnu_time_bits64)] + _mtime_pad: c_int, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, + #[cfg(gnu_time_bits64)] + _ctime_pad: c_int, #[cfg(not(gnu_file_offset_bits64))] __glibc_reserved4: c_long, #[cfg(not(gnu_file_offset_bits64))] __glibc_reserved5: c_long, - #[cfg(gnu_file_offset_bits64)] + #[cfg(all(not(gnu_time_bits64), gnu_file_offset_bits64))] pub st_ino: crate::ino_t, } } diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 14d42e4b9b47a..80c2bee56ca28 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -67,17 +67,26 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, + #[cfg(not(gnu_time_bits64))] __pad2: c_ushort, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, pub st_atime: crate::time_t, + #[cfg(gnu_time_bits64)] + _atime_pad: c_int, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, + #[cfg(gnu_time_bits64)] + _mtime_pad: c_int, pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, + #[cfg(gnu_time_bits64)] + _ctime_pad: c_int, pub st_ctime_nsec: c_long, + #[cfg(not(gnu_time_bits64))] __glibc_reserved4: c_ulong, + #[cfg(not(gnu_time_bits64))] __glibc_reserved5: c_ulong, } From f4619be1c971ec93382bc330f94c30461d285ea2 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Tue, 25 Mar 2025 20:31:41 +0100 Subject: [PATCH 0670/1228] gnu: Adapt struct stat64 for gnu_time_bits64 References: ARM: https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/arm/bits/struct_stat.h MIPS: https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/mips/bits/struct_stat.h POWERPC: https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h SPARC: https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h x86: https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/x86/bits/struct_stat.h Common definition for _TIME_BITS=64 https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h (backport ) (cherry picked from commit 402a8513eb44dc5cd413cf105d59be0d0bd50b55) --- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 12 ++++++++ src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 30 +++++++++++++++++++ src/unix/linux_like/linux/gnu/b32/powerpc.rs | 9 ++++++ src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 12 ++++++++ 4 files changed, 63 insertions(+) diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 68eafcb350735..5fb72e0b7206d 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -60,23 +60,35 @@ s! { pub struct stat64 { pub st_dev: crate::dev_t, + #[cfg(not(gnu_time_bits64))] __pad1: c_uint, + #[cfg(not(gnu_time_bits64))] __st_ino: c_ulong, + #[cfg(gnu_time_bits64)] + pub st_ino: crate::ino_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, + #[cfg(not(gnu_time_bits64))] __pad2: c_uint, pub st_size: off64_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt64_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, + #[cfg(gnu_time_bits64)] + _atime_pad: c_int, pub st_mtime: crate::time_t, pub st_mtime_nsec: c_long, + #[cfg(gnu_time_bits64)] + _mtime_pad: c_int, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, + #[cfg(gnu_time_bits64)] + _ctime_pad: c_int, + #[cfg(not(gnu_time_bits64))] pub st_ino: crate::ino64_t, } diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 759da2334aeaf..6581d729e9923 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -64,25 +64,55 @@ s! { } pub struct stat64 { + #[cfg(not(gnu_time_bits64))] pub st_dev: c_ulong, + #[cfg(gnu_time_bits64)] + pub st_dev: crate::dev_t, + + #[cfg(not(gnu_time_bits64))] st_pad1: [c_long; 3], + pub st_ino: crate::ino64_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, + + #[cfg(not(gnu_time_bits64))] pub st_rdev: c_ulong, + #[cfg(gnu_time_bits64)] + pub st_rdev: crate::dev_t, + + #[cfg(not(gnu_time_bits64))] st_pad2: [c_long; 3], + pub st_size: off64_t, + + #[cfg(gnu_time_bits64)] + pub st_blksize: crate::blksize_t, + #[cfg(gnu_time_bits64)] + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + #[cfg(gnu_time_bits64)] + _atime_pad: c_int, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, + #[cfg(gnu_time_bits64)] + _mtime_pad: c_int, pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, + #[cfg(gnu_time_bits64)] + _ctime_pad: c_int, pub st_ctime_nsec: c_long, + + #[cfg(not(gnu_time_bits64))] pub st_blksize: crate::blksize_t, + #[cfg(not(gnu_time_bits64))] st_pad3: c_long, + #[cfg(not(gnu_time_bits64))] pub st_blocks: crate::blkcnt64_t, + #[cfg(not(gnu_time_bits64))] st_pad5: [c_long; 14], } diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 80c2bee56ca28..d562aac3700a8 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -98,17 +98,26 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, + #[cfg(not(gnu_time_bits64))] __pad2: c_ushort, pub st_size: off64_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt64_t, pub st_atime: crate::time_t, + #[cfg(gnu_time_bits64)] + _atime_pad: c_int, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, + #[cfg(gnu_time_bits64)] + _mtime_pad: c_int, pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, + #[cfg(gnu_time_bits64)] + _ctime_pad: c_int, pub st_ctime_nsec: c_long, + #[cfg(not(gnu_time_bits64))] __glibc_reserved4: c_ulong, + #[cfg(not(gnu_time_bits64))] __glibc_reserved5: c_ulong, } diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 729dc7b9e7286..08d2f44eb9e97 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -134,23 +134,35 @@ s! { pub struct stat64 { pub st_dev: crate::dev_t, + #[cfg(not(gnu_time_bits64))] __pad1: c_uint, + #[cfg(not(gnu_time_bits64))] __st_ino: c_ulong, + #[cfg(gnu_time_bits64)] + pub st_ino: crate::ino_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, + #[cfg(not(gnu_time_bits64))] __pad2: c_uint, pub st_size: off64_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt64_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, + #[cfg(gnu_time_bits64)] + _atime_pad: c_int, pub st_mtime: crate::time_t, pub st_mtime_nsec: c_long, + #[cfg(gnu_time_bits64)] + _mtime_pad: c_int, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, + #[cfg(gnu_time_bits64)] + _ctime_pad: c_int, + #[cfg(not(gnu_time_bits64))] pub st_ino: crate::ino64_t, } From 44b29ed525af4f3eecb55e5db84f31d7ae1b48b2 Mon Sep 17 00:00:00 2001 From: Sebastien Marie Date: Sun, 25 May 2025 12:59:10 +0000 Subject: [PATCH 0671/1228] openbsd: ignore some constants in CI (removed in upcoming OpenBSD 7.8) (backport ) (cherry picked from commit f5220c14ac26b67bcfc05567f562c8d497a9ce4a) --- libc-test/build.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index ae0a54bdd16d0..c6282de1a3a5c 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -622,9 +622,12 @@ fn test_openbsd(target: &str) { "KERN_MAXID" | "NET_RT_MAXID" => true, "EV_SYSFLAGS" => true, - // Removed in OpenBSD 7.7 (unused since 1991) + // Removed in OpenBSD 7.7 "ATF_COM" | "ATF_PERM" | "ATF_PUBL" | "ATF_USETRAILERS" => true, + // Removed in OpenBSD 7.8 + "CTL_FS" | "SO_NETPROC" => true, + _ => false, } }); @@ -5622,9 +5625,9 @@ fn test_aix(target: &str) { }); cfg.type_name(move |ty, is_struct, is_union| match ty { - "DIR" => ty.to_string(), - "FILE" => ty.to_string(), - "ACTION" => ty.to_string(), + "DIR" => ty.to_string(), + "FILE" => ty.to_string(), + "ACTION" => ty.to_string(), // 'sigval' is a struct in Rust, but a union in C. "sigval" => format!("union sigval"), @@ -5711,9 +5714,9 @@ fn test_aix(target: &str) { // POSIX-compliant versions in the system libc. As a result, // function pointer comparisons between the C and Rust sides // would fail. - "getpwuid_r" | "getpwnam_r" | "getgrgid_r" | "getgrnam_r" - | "aio_cancel" | "aio_error" | "aio_fsync" | "aio_read" - | "aio_return" | "aio_suspend" | "aio_write" | "select" => true, + "getpwuid_r" | "getpwnam_r" | "getgrgid_r" | "getgrnam_r" | "aio_cancel" + | "aio_error" | "aio_fsync" | "aio_read" | "aio_return" | "aio_suspend" + | "aio_write" | "select" => true, // 'getdtablesize' is a constant in the AIX header but it is // a real function in libc which the Rust side is resolved to. @@ -5730,7 +5733,6 @@ fn test_aix(target: &str) { } }); - cfg.volatile_item(|i| { use ctest::VolatileItemKind::*; match i { From c04c92ede7daf6c390586eae6f8cc5c1137ef838 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 2 Jun 2025 04:22:19 +0000 Subject: [PATCH 0672/1228] Replace handwritten `Debug` impls with derives `s_no_extra_traits!` doesn't derive `Debug` so there are a lot of handwritten implementations. However, since we have a derive-like solution for unions now (printing them like an opaque struct), there really isn't any reason these can't all be derived. Add `derive(Debug)` to `s_no_extra_traits`, still gated behind `feature = "extra_traits"`, which allows getting rid of manual implementations. (backport ) (cherry picked from commit 65c39bf1b0c7b904cf512280860120307d17703b) --- libc-test/test/cmsg.rs | 2 +- src/fuchsia/mod.rs | 121 ----- src/fuchsia/x86_64.rs | 12 - src/macros.rs | 4 +- src/psp.rs | 28 - src/unix/aix/mod.rs | 12 - src/unix/aix/powerpc64.rs | 32 -- src/unix/bsd/apple/b32/mod.rs | 15 - src/unix/bsd/apple/b64/mod.rs | 15 - src/unix/bsd/apple/mod.rs | 505 ------------------ src/unix/bsd/freebsdlike/dragonfly/mod.rs | 120 ----- src/unix/bsd/freebsdlike/freebsd/aarch64.rs | 34 -- src/unix/bsd/freebsdlike/freebsd/arm.rs | 10 - .../bsd/freebsdlike/freebsd/freebsd11/mod.rs | 50 -- .../bsd/freebsdlike/freebsd/freebsd12/mod.rs | 51 -- .../bsd/freebsdlike/freebsd/freebsd13/mod.rs | 51 -- .../bsd/freebsdlike/freebsd/freebsd14/mod.rs | 51 -- .../bsd/freebsdlike/freebsd/freebsd15/mod.rs | 51 -- src/unix/bsd/freebsdlike/freebsd/mod.rs | 285 ---------- src/unix/bsd/freebsdlike/freebsd/powerpc.rs | 15 - src/unix/bsd/freebsdlike/freebsd/powerpc64.rs | 15 - src/unix/bsd/freebsdlike/freebsd/riscv64.rs | 36 -- src/unix/bsd/freebsdlike/freebsd/x86.rs | 36 -- .../bsd/freebsdlike/freebsd/x86_64/mod.rs | 82 --- src/unix/bsd/freebsdlike/mod.rs | 11 - src/unix/bsd/mod.rs | 22 - src/unix/bsd/netbsdlike/netbsd/mod.rs | 138 ----- src/unix/bsd/netbsdlike/openbsd/mod.rs | 83 --- src/unix/bsd/netbsdlike/openbsd/x86_64.rs | 16 - src/unix/cygwin/mod.rs | 63 --- src/unix/haiku/mod.rs | 58 -- src/unix/haiku/native.rs | 9 - src/unix/haiku/x86_64.rs | 70 --- src/unix/hurd/mod.rs | 18 - src/unix/linux_like/android/b32/arm.rs | 24 - src/unix/linux_like/android/b32/mod.rs | 12 - src/unix/linux_like/android/b32/x86/mod.rs | 23 - src/unix/linux_like/android/b64/mod.rs | 39 -- src/unix/linux_like/android/b64/x86_64/mod.rs | 65 --- src/unix/linux_like/android/mod.rs | 145 ----- src/unix/linux_like/emscripten/mod.rs | 48 -- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 11 - src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 33 -- src/unix/linux_like/linux/gnu/b64/s390x.rs | 6 - .../linux_like/linux/gnu/b64/x86_64/mod.rs | 30 -- src/unix/linux_like/linux/gnu/mod.rs | 46 +- src/unix/linux_like/linux/mod.rs | 178 ------ src/unix/linux_like/linux/musl/b32/arm/mod.rs | 11 - src/unix/linux_like/linux/musl/b32/x86/mod.rs | 33 -- src/unix/linux_like/linux/musl/b64/s390x.rs | 6 - .../linux_like/linux/musl/b64/x86_64/mod.rs | 30 -- src/unix/linux_like/linux/musl/mod.rs | 42 -- src/unix/linux_like/mod.rs | 51 -- src/unix/nto/mod.rs | 182 ------- src/unix/redox/mod.rs | 44 -- src/unix/solarish/illumos.rs | 28 - src/unix/solarish/mod.rs | 70 --- src/unix/solarish/solaris.rs | 18 - src/unix/solarish/x86_64.rs | 27 - src/vxworks/mod.rs | 47 -- 60 files changed, 9 insertions(+), 3361 deletions(-) diff --git a/libc-test/test/cmsg.rs b/libc-test/test/cmsg.rs index 15f4fed1e30ec..763819019b771 100644 --- a/libc-test/test/cmsg.rs +++ b/libc-test/test/cmsg.rs @@ -70,7 +70,7 @@ mod t { for cmsg_len in 0..64 { // Address must be a multiple of 0x4 for testing on AIX. if cfg!(target_os = "aix") && cmsg_len % std::mem::size_of::() != 0 { - continue; + continue; } for next_cmsg_len in 0..32 { unsafe { diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index c09708f71a0f6..bfd71ff78dda7 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -1068,26 +1068,6 @@ cfg_if! { } } impl Eq for sysinfo {} - impl fmt::Debug for sysinfo { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sysinfo") - .field("uptime", &self.uptime) - .field("loads", &self.loads) - .field("totalram", &self.totalram) - .field("freeram", &self.freeram) - .field("sharedram", &self.sharedram) - .field("bufferram", &self.bufferram) - .field("totalswap", &self.totalswap) - .field("freeswap", &self.freeswap) - .field("procs", &self.procs) - .field("pad", &self.pad) - .field("totalhigh", &self.totalhigh) - .field("freehigh", &self.freehigh) - .field("mem_unit", &self.mem_unit) - // FIXME(debug): .field("__reserved", &self.__reserved) - .finish() - } - } impl hash::Hash for sysinfo { fn hash(&self, state: &mut H) { self.uptime.hash(state); @@ -1118,14 +1098,6 @@ cfg_if! { } } impl Eq for sockaddr_un {} - impl fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_family", &self.sun_family) - // FIXME(debug): .field("sun_path", &self.sun_path) - .finish() - } - } impl hash::Hash for sockaddr_un { fn hash(&self, state: &mut H) { self.sun_family.hash(state); @@ -1145,15 +1117,6 @@ cfg_if! { } } impl Eq for sockaddr_storage {} - impl fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_family", &self.ss_family) - .field("__ss_align", &self.__ss_align) - // FIXME(debug): .field("__ss_pad2", &self.__ss_pad2) - .finish() - } - } impl hash::Hash for sockaddr_storage { fn hash(&self, state: &mut H) { self.ss_family.hash(state); @@ -1191,17 +1154,6 @@ cfg_if! { } } impl Eq for utsname {} - impl fmt::Debug for utsname { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utsname") - // FIXME(debug): .field("sysname", &self.sysname) - // FIXME(debug): .field("nodename", &self.nodename) - // FIXME(debug): .field("release", &self.release) - // FIXME(debug): .field("version", &self.version) - // FIXME(debug): .field("machine", &self.machine) - .finish() - } - } impl hash::Hash for utsname { fn hash(&self, state: &mut H) { self.sysname.hash(state); @@ -1226,17 +1178,6 @@ cfg_if! { } } impl Eq for dirent {} - impl fmt::Debug for dirent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME(debug): .field("d_name", &self.d_name) - .finish() - } - } impl hash::Hash for dirent { fn hash(&self, state: &mut H) { self.d_ino.hash(state); @@ -1261,17 +1202,6 @@ cfg_if! { } } impl Eq for dirent64 {} - impl fmt::Debug for dirent64 { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("dirent64") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME(debug): .field("d_name", &self.d_name) - .finish() - } - } impl hash::Hash for dirent64 { fn hash(&self, state: &mut H) { self.d_ino.hash(state); @@ -1291,16 +1221,6 @@ cfg_if! { } } impl Eq for mq_attr {} - impl fmt::Debug for mq_attr { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("mq_attr") - .field("mq_flags", &self.mq_flags) - .field("mq_maxmsg", &self.mq_maxmsg) - .field("mq_msgsize", &self.mq_msgsize) - .field("mq_curmsgs", &self.mq_curmsgs) - .finish() - } - } impl hash::Hash for mq_attr { fn hash(&self, state: &mut H) { self.mq_flags.hash(state); @@ -1318,15 +1238,6 @@ cfg_if! { } } impl Eq for sockaddr_nl {} - impl fmt::Debug for sockaddr_nl { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_nl") - .field("nl_family", &self.nl_family) - .field("nl_pid", &self.nl_pid) - .field("nl_groups", &self.nl_groups) - .finish() - } - } impl hash::Hash for sockaddr_nl { fn hash(&self, state: &mut H) { self.nl_family.hash(state); @@ -1347,17 +1258,6 @@ cfg_if! { } } impl Eq for sigevent {} - impl fmt::Debug for sigevent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sigevent") - .field("sigev_value", &self.sigev_value) - .field("sigev_signo", &self.sigev_signo) - .field("sigev_notify", &self.sigev_notify) - .field("sigev_notify_function", &self.sigev_notify_function) - .field("sigev_notify_attributes", &self.sigev_notify_attributes) - .finish() - } - } impl hash::Hash for sigevent { fn hash(&self, state: &mut H) { self.sigev_value.hash(state); @@ -1374,13 +1274,6 @@ cfg_if! { } } impl Eq for pthread_cond_t {} - impl fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_cond_t") - // FIXME(debug): .field("size", &self.size) - .finish() - } - } impl hash::Hash for pthread_cond_t { fn hash(&self, state: &mut H) { self.size.hash(state); @@ -1393,13 +1286,6 @@ cfg_if! { } } impl Eq for pthread_mutex_t {} - impl fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_mutex_t") - // FIXME(debug): .field("size", &self.size) - .finish() - } - } impl hash::Hash for pthread_mutex_t { fn hash(&self, state: &mut H) { self.size.hash(state); @@ -1412,13 +1298,6 @@ cfg_if! { } } impl Eq for pthread_rwlock_t {} - impl fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_rwlock_t") - // FIXME(debug): .field("size", &self.size) - .finish() - } - } impl hash::Hash for pthread_rwlock_t { fn hash(&self, state: &mut H) { self.size.hash(state); diff --git a/src/fuchsia/x86_64.rs b/src/fuchsia/x86_64.rs index a184539e28277..add60a4564020 100644 --- a/src/fuchsia/x86_64.rs +++ b/src/fuchsia/x86_64.rs @@ -94,18 +94,6 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_sigmask", &self.uc_sigmask) - // FIXME(debug): .field("__private", &self.__private) - .finish() - } - } impl hash::Hash for ucontext_t { fn hash(&self, state: &mut H) { self.uc_flags.hash(state); diff --git a/src/macros.rs b/src/macros.rs index abffa2afb9520..a0fb7ff12c0f8 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -141,7 +141,8 @@ macro_rules! s_paren { )*); } -/// Implement `Clone` and `Copy` for a struct with no `extra_traits` feature. +/// Implement `Clone` and `Copy` for a struct with no `extra_traits` feature, as well as `Debug` +/// with `extra_traits` since that can always be derived. /// /// Most items will prefer to use [`s`]. macro_rules! s_no_extra_traits { @@ -172,6 +173,7 @@ macro_rules! s_no_extra_traits { __item! { #[repr(C)] #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)] + #[cfg_attr(feature = "extra_traits", ::core::prelude::v1::derive(Debug))] $(#[$attr])* pub struct $i { $($field)* } } diff --git a/src/psp.rs b/src/psp.rs index 73d4ae0173ece..56d528cff54c2 100644 --- a/src/psp.rs +++ b/src/psp.rs @@ -2115,12 +2115,10 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] pub struct GeContext { pub context: [u32; 512], } - #[allow(missing_debug_implementations)] pub struct SceKernelUtilsSha1Context { pub h: [u32; 5usize], pub us_remains: u16, @@ -2129,13 +2127,11 @@ s_no_extra_traits! { pub buf: [u8; 64usize], } - #[allow(missing_debug_implementations)] pub struct SceKernelUtilsMt19937Context { pub count: u32, pub state: [u32; 624usize], } - #[allow(missing_debug_implementations)] pub struct SceKernelUtilsMd5Context { pub h: [u32; 4usize], pub pad: u32, @@ -2145,7 +2141,6 @@ s_no_extra_traits! { pub buf: [u8; 64usize], } - #[allow(missing_debug_implementations)] pub struct SceIoDirent { pub d_stat: SceIoStat, pub d_name: [u8; 256usize], @@ -2153,7 +2148,6 @@ s_no_extra_traits! { pub dummy: i32, } - #[cfg_attr(feature = "extra_traits", derive(Debug))] pub struct ScePspFRect { pub x: f32, pub y: f32, @@ -2162,7 +2156,6 @@ s_no_extra_traits! { } #[repr(align(16))] - #[cfg_attr(feature = "extra_traits", derive(Debug))] pub struct ScePspFVector3 { pub x: f32, pub y: f32, @@ -2170,7 +2163,6 @@ s_no_extra_traits! { } #[repr(align(16))] - #[cfg_attr(feature = "extra_traits", derive(Debug))] pub struct ScePspFVector4 { pub x: f32, pub y: f32, @@ -2178,7 +2170,6 @@ s_no_extra_traits! { pub w: f32, } - #[cfg_attr(feature = "extra_traits", derive(Debug))] pub struct ScePspFVector4Unaligned { pub x: f32, pub y: f32, @@ -2186,26 +2177,22 @@ s_no_extra_traits! { pub w: f32, } - #[cfg_attr(feature = "extra_traits", derive(Debug))] pub struct ScePspFVector2 { pub x: f32, pub y: f32, } - #[cfg_attr(feature = "extra_traits", derive(Debug))] pub struct ScePspFMatrix2 { pub x: ScePspFVector2, pub y: ScePspFVector2, } - #[cfg_attr(feature = "extra_traits", derive(Debug))] pub struct ScePspFMatrix3 { pub x: ScePspFVector3, pub y: ScePspFVector3, pub z: ScePspFVector3, } - #[cfg_attr(feature = "extra_traits", derive(Debug))] #[repr(align(16))] pub struct ScePspFMatrix4 { pub x: ScePspFVector4, @@ -2214,7 +2201,6 @@ s_no_extra_traits! { pub w: ScePspFVector4, } - #[allow(missing_debug_implementations)] pub struct ScePspFMatrix4Unaligned { pub x: ScePspFVector4, pub y: ScePspFVector4, @@ -2222,7 +2208,6 @@ s_no_extra_traits! { pub w: ScePspFVector4, } - #[allow(missing_debug_implementations)] pub union ScePspVector3 { pub fv: ScePspFVector3, pub iv: ScePspIVector3, @@ -2230,7 +2215,6 @@ s_no_extra_traits! { pub i: [i32; 3usize], } - #[allow(missing_debug_implementations)] pub union ScePspVector4 { pub fv: ScePspFVector4, pub iv: ScePspIVector4, @@ -2239,7 +2223,6 @@ s_no_extra_traits! { pub i: [i32; 4usize], } - #[allow(missing_debug_implementations)] pub union ScePspMatrix2 { pub fm: ScePspFMatrix2, pub im: ScePspIMatrix2, @@ -2250,7 +2233,6 @@ s_no_extra_traits! { pub i: [[i32; 2usize]; 2usize], } - #[allow(missing_debug_implementations)] pub union ScePspMatrix3 { pub fm: ScePspFMatrix3, pub im: ScePspIMatrix3, @@ -2261,7 +2243,6 @@ s_no_extra_traits! { pub i: [[i32; 3usize]; 3usize], } - #[allow(missing_debug_implementations)] pub union ScePspVector2 { pub fv: ScePspFVector2, pub iv: ScePspIVector2, @@ -2269,7 +2250,6 @@ s_no_extra_traits! { pub i: [i32; 2usize], } - #[allow(missing_debug_implementations)] pub union ScePspMatrix4 { pub fm: ScePspFMatrix4, pub im: ScePspIMatrix4, @@ -2280,7 +2260,6 @@ s_no_extra_traits! { pub i: [[i32; 4usize]; 4usize], } - #[allow(missing_debug_implementations)] pub struct Key { pub key_type: KeyType, pub name: [u8; 256usize], @@ -2289,7 +2268,6 @@ s_no_extra_traits! { pub unk3: u32, } - #[allow(missing_debug_implementations)] pub struct UtilityMsgDialogParams { pub base: UtilityDialogCommon, pub unknown: i32, @@ -2300,13 +2278,11 @@ s_no_extra_traits! { pub button_pressed: UtilityMsgDialogPressed, } - #[allow(missing_debug_implementations)] pub union UtilityNetData { pub as_uint: u32, pub as_string: [u8; 128usize], } - #[allow(missing_debug_implementations)] pub struct UtilitySavedataSFOParam { pub title: [u8; 128usize], pub savedata_title: [u8; 128usize], @@ -2315,7 +2291,6 @@ s_no_extra_traits! { pub unknown: [u8; 3usize], } - #[allow(missing_debug_implementations)] pub struct SceUtilitySavedataParam { pub base: UtilityDialogCommon, pub mode: UtilitySavedataMode, @@ -2342,7 +2317,6 @@ s_no_extra_traits! { pub unknown3: [u8; 20], } - #[allow(missing_debug_implementations)] pub struct SceNetAdhocctlPeerInfo { pub next: *mut SceNetAdhocctlPeerInfo, pub nickname: [u8; 128usize], @@ -2351,7 +2325,6 @@ s_no_extra_traits! { pub timestamp: u32, } - #[allow(missing_debug_implementations)] pub struct SceNetAdhocctlParams { pub channel: i32, pub name: [u8; 8usize], @@ -2359,7 +2332,6 @@ s_no_extra_traits! { pub nickname: [u8; 128usize], } - #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] pub union SceNetApctlInfo { pub name: [u8; 64usize], pub bssid: [u8; 6usize], diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index f06d475565cfd..3f8145d6b3b42 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -581,18 +581,6 @@ cfg_if! { } } impl Eq for poll_ctl_ext {} - impl fmt::Debug for poll_ctl_ext { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("poll_ctl_ext") - .field("version", &self.version) - .field("command", &self.command) - .field("events", &self.events) - .field("fd", &self.fd) - .field("u", &self.u) - .field("reserved64", &self.reserved64) - .finish() - } - } impl hash::Hash for poll_ctl_ext { fn hash(&self, state: &mut H) { self.version.hash(state); diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index 1bc177841afcd..f379e2df71898 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -313,22 +313,6 @@ cfg_if! { } } impl Eq for siginfo_t {} - impl fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("siginfo_t") - .field("si_signo", &self.si_signo) - .field("si_errno", &self.si_errno) - .field("si_code", &self.si_code) - .field("si_pid", &self.si_pid) - .field("si_uid", &self.si_uid) - .field("si_status", &self.si_status) - .field("si_addr", &self.si_addr) - .field("si_band", &self.si_band) - .field("si_value", &self.si_value) - .field("__si_flags", &self.__si_flags) - .finish() - } - } impl hash::Hash for siginfo_t { fn hash(&self, state: &mut H) { self.si_signo.hash(state); @@ -372,16 +356,6 @@ cfg_if! { } } impl Eq for pollfd_ext {} - impl fmt::Debug for pollfd_ext { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("pollfd_ext") - .field("fd", &self.fd) - .field("events", &self.events) - .field("revents", &self.revents) - .field("data", &self.data) - .finish() - } - } impl hash::Hash for pollfd_ext { fn hash(&self, state: &mut H) { self.fd.hash(state); @@ -398,12 +372,6 @@ cfg_if! { impl Eq for fpreg_t {} - impl fmt::Debug for fpreg_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("fpreg_t").field("d", &self.d).finish() - } - } - impl hash::Hash for fpreg_t { fn hash(&self, state: &mut H) { let d: u64 = unsafe { mem::transmute(self.d) }; diff --git a/src/unix/bsd/apple/b32/mod.rs b/src/unix/bsd/apple/b32/mod.rs index 3753ffb085907..bdc986da168a8 100644 --- a/src/unix/bsd/apple/b32/mod.rs +++ b/src/unix/bsd/apple/b32/mod.rs @@ -80,14 +80,6 @@ cfg_if! { } } impl Eq for pthread_attr_t {} - impl fmt::Debug for pthread_attr_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_attr_t") - .field("__sig", &self.__sig) - // FIXME(debug): .field("__opaque", &self.__opaque) - .finish() - } - } impl hash::Hash for pthread_attr_t { fn hash(&self, state: &mut H) { self.__sig.hash(state); @@ -105,13 +97,6 @@ cfg_if! { } } impl Eq for pthread_once_t {} - impl fmt::Debug for pthread_once_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_once_t") - .field("__sig", &self.__sig) - .finish() - } - } impl hash::Hash for pthread_once_t { fn hash(&self, state: &mut H) { self.__sig.hash(state); diff --git a/src/unix/bsd/apple/b64/mod.rs b/src/unix/bsd/apple/b64/mod.rs index 2bd682313428e..34743464a44e7 100644 --- a/src/unix/bsd/apple/b64/mod.rs +++ b/src/unix/bsd/apple/b64/mod.rs @@ -73,14 +73,6 @@ cfg_if! { } } impl Eq for pthread_attr_t {} - impl fmt::Debug for pthread_attr_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_attr_t") - .field("__sig", &self.__sig) - // FIXME(debug): .field("__opaque", &self.__opaque) - .finish() - } - } impl hash::Hash for pthread_attr_t { fn hash(&self, state: &mut H) { self.__sig.hash(state); @@ -98,13 +90,6 @@ cfg_if! { } } impl Eq for pthread_once_t {} - impl fmt::Debug for pthread_once_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_once_t") - .field("__sig", &self.__sig) - .finish() - } - } impl hash::Hash for pthread_once_t { fn hash(&self, state: &mut H) { self.__sig.hash(state); diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index ebc841a99c36e..14b35e200ec39 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1753,11 +1753,6 @@ cfg_if! { } } impl Eq for ifconf {} - impl fmt::Debug for ifconf { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ifconf").finish_non_exhaustive() - } - } impl PartialEq for kevent { fn eq(&self, other: &kevent) -> bool { @@ -1770,24 +1765,6 @@ cfg_if! { } } impl Eq for kevent {} - impl fmt::Debug for kevent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let ident = self.ident; - let filter = self.filter; - let flags = self.flags; - let fflags = self.fflags; - let data = self.data; - let udata = self.udata; - f.debug_struct("kevent") - .field("ident", &ident) - .field("filter", &filter) - .field("flags", &flags) - .field("fflags", &fflags) - .field("data", &data) - .field("udata", &udata) - .finish() - } - } impl hash::Hash for kevent { fn hash(&self, state: &mut H) { let ident = self.ident; @@ -1822,28 +1799,6 @@ cfg_if! { } } impl Eq for semid_ds {} - impl fmt::Debug for semid_ds { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let sem_perm = self.sem_perm; - let sem_base = self.sem_base; - let sem_nsems = self.sem_nsems; - let sem_otime = self.sem_otime; - let sem_pad1 = self.sem_pad1; - let sem_ctime = self.sem_ctime; - let sem_pad2 = self.sem_pad2; - let sem_pad3 = self.sem_pad3; - f.debug_struct("semid_ds") - .field("sem_perm", &sem_perm) - .field("sem_base", &sem_base) - .field("sem_nsems", &sem_nsems) - .field("sem_otime", &sem_otime) - .field("sem_pad1", &sem_pad1) - .field("sem_ctime", &sem_ctime) - .field("sem_pad2", &sem_pad2) - .field("sem_pad3", &sem_pad3) - .finish() - } - } impl hash::Hash for semid_ds { fn hash(&self, state: &mut H) { let sem_perm = self.sem_perm; @@ -1881,30 +1836,6 @@ cfg_if! { } } impl Eq for shmid_ds {} - impl fmt::Debug for shmid_ds { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let shm_perm = self.shm_perm; - let shm_segsz = self.shm_segsz; - let shm_lpid = self.shm_lpid; - let shm_cpid = self.shm_cpid; - let shm_nattch = self.shm_nattch; - let shm_atime = self.shm_atime; - let shm_dtime = self.shm_dtime; - let shm_ctime = self.shm_ctime; - let shm_internal = self.shm_internal; - f.debug_struct("shmid_ds") - .field("shm_perm", &shm_perm) - .field("shm_segsz", &shm_segsz) - .field("shm_lpid", &shm_lpid) - .field("shm_cpid", &shm_cpid) - .field("shm_nattch", &shm_nattch) - .field("shm_atime", &shm_atime) - .field("shm_dtime", &shm_dtime) - .field("shm_ctime", &shm_ctime) - .field("shm_internal", &shm_internal) - .finish() - } - } impl hash::Hash for shmid_ds { fn hash(&self, state: &mut H) { let shm_perm = self.shm_perm; @@ -1948,23 +1879,6 @@ cfg_if! { } } impl Eq for proc_threadinfo {} - impl fmt::Debug for proc_threadinfo { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("proc_threadinfo") - .field("pth_user_time", &self.pth_user_time) - .field("pth_system_time", &self.pth_system_time) - .field("pth_cpu_usage", &self.pth_cpu_usage) - .field("pth_policy", &self.pth_policy) - .field("pth_run_state", &self.pth_run_state) - .field("pth_flags", &self.pth_flags) - .field("pth_sleep_time", &self.pth_sleep_time) - .field("pth_curpri", &self.pth_curpri) - .field("pth_priority", &self.pth_priority) - .field("pth_maxpriority", &self.pth_maxpriority) - // FIXME(debug): .field("pth_name", &self.pth_name) - .finish() - } - } impl hash::Hash for proc_threadinfo { fn hash(&self, state: &mut H) { self.pth_user_time.hash(state); @@ -2011,28 +1925,6 @@ cfg_if! { } 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_fsid", &self.f_fsid) - .field("f_owner", &self.f_owner) - .field("f_flags", &self.f_flags) - .field("f_fssubtype", &self.f_fssubtype) - .field("f_fstypename", &self.f_fstypename) - .field("f_type", &self.f_type) - // FIXME(debug): .field("f_mntonname", &self.f_mntonname) - // FIXME(debug): .field("f_mntfromname", &self.f_mntfromname) - .field("f_reserved", &self.f_reserved) - .finish() - } - } impl hash::Hash for statfs { fn hash(&self, state: &mut H) { @@ -2070,18 +1962,6 @@ cfg_if! { } } impl Eq for dirent {} - impl fmt::Debug for dirent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_seekoff", &self.d_seekoff) - .field("d_reclen", &self.d_reclen) - .field("d_namlen", &self.d_namlen) - .field("d_type", &self.d_type) - // FIXME(debug): .field("d_name", &self.d_name) - .finish() - } - } impl hash::Hash for dirent { fn hash(&self, state: &mut H) { self.d_ino.hash(state); @@ -2103,14 +1983,6 @@ cfg_if! { } } impl Eq for pthread_rwlock_t {} - impl fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_rwlock_t") - .field("__sig", &self.__sig) - // FIXME(debug): .field("__opaque", &self.__opaque) - .finish() - } - } impl hash::Hash for pthread_rwlock_t { fn hash(&self, state: &mut H) { self.__sig.hash(state); @@ -2131,15 +2003,6 @@ cfg_if! { impl Eq for pthread_mutex_t {} - impl fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_mutex_t") - .field("__sig", &self.__sig) - // FIXME(debug): .field("__opaque", &self.__opaque) - .finish() - } - } - impl hash::Hash for pthread_mutex_t { fn hash(&self, state: &mut H) { self.__sig.hash(state); @@ -2160,15 +2023,6 @@ cfg_if! { impl Eq for pthread_cond_t {} - impl fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_cond_t") - .field("__sig", &self.__sig) - // FIXME(debug): .field("__opaque", &self.__opaque) - .finish() - } - } - impl hash::Hash for pthread_cond_t { fn hash(&self, state: &mut H) { self.__sig.hash(state); @@ -2196,18 +2050,6 @@ cfg_if! { impl Eq for sockaddr_storage {} - impl fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_len", &self.ss_len) - .field("ss_family", &self.ss_family) - .field("__ss_pad1", &self.__ss_pad1) - .field("__ss_align", &self.__ss_align) - // FIXME(debug): .field("__ss_pad2", &self.__ss_pad2) - .finish() - } - } - impl hash::Hash for sockaddr_storage { fn hash(&self, state: &mut H) { self.ss_len.hash(state); @@ -2240,21 +2082,6 @@ cfg_if! { impl Eq for utmpx {} - impl fmt::Debug for utmpx { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utmpx") - // FIXME(debug): .field("ut_user", &self.ut_user) - .field("ut_id", &self.ut_id) - .field("ut_line", &self.ut_line) - .field("ut_pid", &self.ut_pid) - .field("ut_type", &self.ut_type) - .field("ut_tv", &self.ut_tv) - // FIXME(debug): .field("ut_host", &self.ut_host) - .field("ut_pad", &self.ut_pad) - .finish() - } - } - impl hash::Hash for utmpx { fn hash(&self, state: &mut H) { self.ut_user.hash(state); @@ -2279,17 +2106,6 @@ cfg_if! { impl Eq for sigevent {} - impl fmt::Debug for sigevent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sigevent") - .field("sigev_notify", &self.sigev_notify) - .field("sigev_signo", &self.sigev_signo) - .field("sigev_value", &self.sigev_value) - .field("sigev_notify_attributes", &self.sigev_notify_attributes) - .finish() - } - } - impl hash::Hash for sigevent { fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); @@ -2305,13 +2121,6 @@ cfg_if! { } } impl Eq for processor_cpu_load_info {} - impl fmt::Debug for processor_cpu_load_info { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("processor_cpu_load_info") - .field("cpu_ticks", &self.cpu_ticks) - .finish() - } - } impl hash::Hash for processor_cpu_load_info { fn hash(&self, state: &mut H) { self.cpu_ticks.hash(state); @@ -2328,17 +2137,6 @@ cfg_if! { } } impl Eq for processor_basic_info {} - impl fmt::Debug for processor_basic_info { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("processor_basic_info") - .field("cpu_type", &self.cpu_type) - .field("cpu_subtype", &self.cpu_subtype) - .field("running", &self.running) - .field("slot_num", &self.slot_num) - .field("is_master", &self.is_master) - .finish() - } - } impl hash::Hash for processor_basic_info { fn hash(&self, state: &mut H) { self.cpu_type.hash(state); @@ -2356,14 +2154,6 @@ cfg_if! { } } impl Eq for processor_set_basic_info {} - impl fmt::Debug for processor_set_basic_info { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("processor_set_basic_info") - .field("processor_count", &self.processor_count) - .field("default_policy", &self.default_policy) - .finish() - } - } impl hash::Hash for processor_set_basic_info { fn hash(&self, state: &mut H) { self.processor_count.hash(state); @@ -2380,16 +2170,6 @@ cfg_if! { } } impl Eq for processor_set_load_info {} - impl fmt::Debug for processor_set_load_info { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("processor_set_load_info") - .field("task_count", &self.task_count) - .field("thread_count", &self.thread_count) - .field("load_average", &self.load_average) - .field("mach_factor", &self.mach_factor) - .finish() - } - } impl hash::Hash for processor_set_load_info { fn hash(&self, state: &mut H) { self.task_count.hash(state); @@ -2405,14 +2185,6 @@ cfg_if! { } } impl Eq for time_value_t {} - impl fmt::Debug for time_value_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("time_value_t") - .field("seconds", &self.seconds) - .field("microseconds", &self.microseconds) - .finish() - } - } impl hash::Hash for time_value_t { fn hash(&self, state: &mut H) { self.seconds.hash(state); @@ -2432,20 +2204,6 @@ cfg_if! { } } impl Eq for thread_basic_info {} - impl fmt::Debug for thread_basic_info { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("thread_basic_info") - .field("user_time", &self.user_time) - .field("system_time", &self.system_time) - .field("cpu_usage", &self.cpu_usage) - .field("policy", &self.policy) - .field("run_state", &self.run_state) - .field("flags", &self.flags) - .field("suspend_count", &self.suspend_count) - .field("sleep_time", &self.sleep_time) - .finish() - } - } impl hash::Hash for thread_basic_info { fn hash(&self, state: &mut H) { self.user_time.hash(state); @@ -2478,23 +2236,6 @@ cfg_if! { } } impl Eq for thread_extended_info {} - impl fmt::Debug for thread_extended_info { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("proc_threadinfo") - .field("pth_user_time", &self.pth_user_time) - .field("pth_system_time", &self.pth_system_time) - .field("pth_cpu_usage", &self.pth_cpu_usage) - .field("pth_policy", &self.pth_policy) - .field("pth_run_state", &self.pth_run_state) - .field("pth_flags", &self.pth_flags) - .field("pth_sleep_time", &self.pth_sleep_time) - .field("pth_curpri", &self.pth_curpri) - .field("pth_priority", &self.pth_priority) - .field("pth_maxpriority", &self.pth_maxpriority) - // FIXME(debug): .field("pth_name", &self.pth_name) - .finish() - } - } impl hash::Hash for thread_extended_info { fn hash(&self, state: &mut H) { self.pth_user_time.hash(state); @@ -2518,15 +2259,6 @@ cfg_if! { } } impl Eq for thread_identifier_info {} - impl fmt::Debug for thread_identifier_info { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("thread_identifier_info") - .field("thread_id", &self.thread_id) - .field("thread_handle", &self.thread_handle) - .field("dispatch_qaddr", &self.dispatch_qaddr) - .finish() - } - } impl hash::Hash for thread_identifier_info { fn hash(&self, state: &mut H) { self.thread_id.hash(state); @@ -2564,62 +2296,6 @@ cfg_if! { } } impl Eq for if_data64 {} - impl fmt::Debug for if_data64 { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let ifi_type = self.ifi_type; - let ifi_typelen = self.ifi_typelen; - let ifi_physical = self.ifi_physical; - let ifi_addrlen = self.ifi_addrlen; - let ifi_hdrlen = self.ifi_hdrlen; - let ifi_recvquota = self.ifi_recvquota; - let ifi_xmitquota = self.ifi_xmitquota; - let ifi_unused1 = self.ifi_unused1; - let ifi_mtu = self.ifi_mtu; - let ifi_metric = self.ifi_metric; - let ifi_baudrate = self.ifi_baudrate; - let ifi_ipackets = self.ifi_ipackets; - let ifi_ierrors = self.ifi_ierrors; - let ifi_opackets = self.ifi_opackets; - let ifi_oerrors = self.ifi_oerrors; - let ifi_collisions = self.ifi_collisions; - let ifi_ibytes = self.ifi_ibytes; - let ifi_obytes = self.ifi_obytes; - let ifi_imcasts = self.ifi_imcasts; - let ifi_omcasts = self.ifi_omcasts; - let ifi_iqdrops = self.ifi_iqdrops; - let ifi_noproto = self.ifi_noproto; - let ifi_recvtiming = self.ifi_recvtiming; - let ifi_xmittiming = self.ifi_xmittiming; - let ifi_lastchange = self.ifi_lastchange; - f.debug_struct("if_data64") - .field("ifi_type", &ifi_type) - .field("ifi_typelen", &ifi_typelen) - .field("ifi_physical", &ifi_physical) - .field("ifi_addrlen", &ifi_addrlen) - .field("ifi_hdrlen", &ifi_hdrlen) - .field("ifi_recvquota", &ifi_recvquota) - .field("ifi_xmitquota", &ifi_xmitquota) - .field("ifi_unused1", &ifi_unused1) - .field("ifi_mtu", &ifi_mtu) - .field("ifi_metric", &ifi_metric) - .field("ifi_baudrate", &ifi_baudrate) - .field("ifi_ipackets", &ifi_ipackets) - .field("ifi_ierrors", &ifi_ierrors) - .field("ifi_opackets", &ifi_opackets) - .field("ifi_oerrors", &ifi_oerrors) - .field("ifi_collisions", &ifi_collisions) - .field("ifi_ibytes", &ifi_ibytes) - .field("ifi_obytes", &ifi_obytes) - .field("ifi_imcasts", &ifi_imcasts) - .field("ifi_omcasts", &ifi_omcasts) - .field("ifi_iqdrops", &ifi_iqdrops) - .field("ifi_noproto", &ifi_noproto) - .field("ifi_recvtiming", &ifi_recvtiming) - .field("ifi_xmittiming", &ifi_xmittiming) - .field("ifi_lastchange", &ifi_lastchange) - .finish() - } - } impl hash::Hash for if_data64 { fn hash(&self, state: &mut H) { let ifi_type = self.ifi_type; @@ -2690,34 +2366,6 @@ cfg_if! { } } impl Eq for if_msghdr2 {} - impl fmt::Debug for if_msghdr2 { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let ifm_msglen = self.ifm_msglen; - let ifm_version = self.ifm_version; - let ifm_type = self.ifm_type; - let ifm_addrs = self.ifm_addrs; - let ifm_flags = self.ifm_flags; - let ifm_index = self.ifm_index; - let ifm_snd_len = self.ifm_snd_len; - let ifm_snd_maxlen = self.ifm_snd_maxlen; - let ifm_snd_drops = self.ifm_snd_drops; - let ifm_timer = self.ifm_timer; - let ifm_data = self.ifm_data; - f.debug_struct("if_msghdr2") - .field("ifm_msglen", &ifm_msglen) - .field("ifm_version", &ifm_version) - .field("ifm_type", &ifm_type) - .field("ifm_addrs", &ifm_addrs) - .field("ifm_flags", &ifm_flags) - .field("ifm_index", &ifm_index) - .field("ifm_snd_len", &ifm_snd_len) - .field("ifm_snd_maxlen", &ifm_snd_maxlen) - .field("ifm_snd_drops", &ifm_snd_drops) - .field("ifm_timer", &ifm_timer) - .field("ifm_data", &ifm_data) - .finish() - } - } impl hash::Hash for if_msghdr2 { fn hash(&self, state: &mut H) { let ifm_msglen = self.ifm_msglen; @@ -2775,64 +2423,6 @@ cfg_if! { } } impl Eq for vm_statistics64 {} - impl fmt::Debug for vm_statistics64 { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let free_count = self.free_count; - let active_count = self.active_count; - let inactive_count = self.inactive_count; - let wire_count = self.wire_count; - let zero_fill_count = self.zero_fill_count; - let reactivations = self.reactivations; - let pageins = self.pageins; - let pageouts = self.pageouts; - let faults = self.faults; - let cow_faults = self.cow_faults; - let lookups = self.lookups; - let hits = self.hits; - let purges = self.purges; - let purgeable_count = self.purgeable_count; - let speculative_count = self.speculative_count; - let decompressions = self.decompressions; - let compressions = self.compressions; - let swapins = self.swapins; - let swapouts = self.swapouts; - let compressor_page_count = self.compressor_page_count; - let throttled_count = self.throttled_count; - let external_page_count = self.external_page_count; - let internal_page_count = self.internal_page_count; - // Otherwise rustfmt crashes... - let total_uncompressed = self.total_uncompressed_pages_in_compressor; - f.debug_struct("vm_statistics64") - .field("free_count", &free_count) - .field("active_count", &active_count) - .field("inactive_count", &inactive_count) - .field("wire_count", &wire_count) - .field("zero_fill_count", &zero_fill_count) - .field("reactivations", &reactivations) - .field("pageins", &pageins) - .field("pageouts", &pageouts) - .field("faults", &faults) - .field("cow_faults", &cow_faults) - .field("lookups", &lookups) - .field("hits", &hits) - .field("purges", &purges) - .field("purgeable_count", &purgeable_count) - .field("speculative_count", &speculative_count) - .field("decompressions", &decompressions) - .field("compressions", &compressions) - .field("swapins", &swapins) - .field("swapouts", &swapouts) - .field("compressor_page_count", &compressor_page_count) - .field("throttled_count", &throttled_count) - .field("external_page_count", &external_page_count) - .field("internal_page_count", &internal_page_count) - .field( - "total_uncompressed_pages_in_compressor", - &total_uncompressed, - ) - .finish() - } - } impl hash::Hash for vm_statistics64 { fn hash(&self, state: &mut H) { let free_count = self.free_count; @@ -2899,26 +2489,6 @@ cfg_if! { } } impl Eq for mach_task_basic_info {} - impl fmt::Debug for mach_task_basic_info { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let virtual_size = self.virtual_size; - let resident_size = self.resident_size; - let resident_size_max = self.resident_size_max; - let user_time = self.user_time; - let system_time = self.system_time; - let policy = self.policy; - let suspend_count = self.suspend_count; - f.debug_struct("mach_task_basic_info") - .field("virtual_size", &virtual_size) - .field("resident_size", &resident_size) - .field("resident_size_max", &resident_size_max) - .field("user_time", &user_time) - .field("system_time", &system_time) - .field("policy", &policy) - .field("suspend_count", &suspend_count) - .finish() - } - } impl hash::Hash for mach_task_basic_info { fn hash(&self, state: &mut H) { let virtual_size = self.virtual_size; @@ -2946,18 +2516,6 @@ cfg_if! { } } impl Eq for log2phys {} - impl fmt::Debug for log2phys { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let l2p_flags = self.l2p_flags; - let l2p_contigbytes = self.l2p_contigbytes; - let l2p_devoffset = self.l2p_devoffset; - f.debug_struct("log2phys") - .field("l2p_flags", &l2p_flags) - .field("l2p_contigbytes", &l2p_contigbytes) - .field("l2p_devoffset", &l2p_devoffset) - .finish() - } - } impl hash::Hash for log2phys { fn hash(&self, state: &mut H) { let l2p_flags = self.l2p_flags; @@ -2976,14 +2534,6 @@ cfg_if! { impl Eq for os_unfair_lock {} - impl fmt::Debug for os_unfair_lock { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("os_unfair_lock") - .field("_os_unfair_lock_opaque", &self._os_unfair_lock_opaque) - .finish() - } - } - impl hash::Hash for os_unfair_lock { fn hash(&self, state: &mut H) { self._os_unfair_lock_opaque.hash(state); @@ -3002,24 +2552,6 @@ cfg_if! { 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(&self, state: &mut H) { let svm_len = self.svm_len; @@ -3046,16 +2578,6 @@ cfg_if! { 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(&self, state: &mut H) { self.ifdm_current.hash(state); @@ -3088,15 +2610,6 @@ cfg_if! { 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(&self, state: &mut H) { self.ifk_module_id.hash(state); @@ -3164,15 +2677,6 @@ cfg_if! { 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(&self, state: &mut H) { self.ifr_name.hash(state); @@ -3238,15 +2742,6 @@ cfg_if! { } impl Eq for in6_ifreq {} - - impl fmt::Debug for in6_ifreq { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("in6_ifreq") - .field("ifr_name", &self.ifr_name) - .field("ifr_ifru", &self.ifr_ifru) - .finish() - } - } } } diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 5534c1390b911..168c85094f5be 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -554,24 +554,6 @@ cfg_if! { } } impl Eq for utmpx {} - impl fmt::Debug for utmpx { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utmpx") - .field("ut_name", &self.ut_name) - .field("ut_id", &self.ut_id) - .field("ut_line", &self.ut_line) - // FIXME(debug): .field("ut_host", &self.ut_host) - .field("ut_unused", &self.ut_unused) - .field("ut_session", &self.ut_session) - .field("ut_type", &self.ut_type) - .field("ut_pid", &self.ut_pid) - .field("ut_exit", &self.ut_exit) - .field("ut_ss", &self.ut_ss) - .field("ut_tv", &self.ut_tv) - .field("ut_unused2", &self.ut_unused2) - .finish() - } - } impl hash::Hash for utmpx { fn hash(&self, state: &mut H) { self.ut_name.hash(state); @@ -597,16 +579,6 @@ cfg_if! { } } impl Eq for lastlogx {} - impl fmt::Debug for lastlogx { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("lastlogx") - .field("ll_tv", &self.ll_tv) - .field("ll_line", &self.ll_line) - .field("ll_host", &self.ll_host) - .field("ll_ss", &self.ll_ss) - .finish() - } - } impl hash::Hash for lastlogx { fn hash(&self, state: &mut H) { self.ll_tv.hash(state); @@ -631,18 +603,6 @@ cfg_if! { } } 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_namlen", &self.d_namlen) - .field("d_type", &self.d_type) - // Ignore __unused1 - // Ignore __unused2 - // FIXME(debug): .field("d_name", &self.d_name) - .finish() - } - } impl hash::Hash for dirent { fn hash(&self, state: &mut H) { self.d_fileno.hash(state); @@ -685,29 +645,6 @@ cfg_if! { } } 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_fsid", &self.f_fsid) - .field("f_owner", &self.f_owner) - .field("f_type", &self.f_type) - .field("f_flags", &self.f_flags) - .field("f_syncwrites", &self.f_syncwrites) - .field("f_asyncwrites", &self.f_asyncwrites) - // FIXME(debug): .field("f_mntonname", &self.f_mntonname) - .field("f_syncreads", &self.f_syncreads) - .field("f_asyncreads", &self.f_asyncreads) - // FIXME(debug): .field("f_mntfromname", &self.f_mntfromname) - .finish() - } - } impl hash::Hash for statfs { fn hash(&self, state: &mut H) { self.f_bsize.hash(state); @@ -739,15 +676,6 @@ cfg_if! { } } impl Eq for sigevent {} - impl fmt::Debug for sigevent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sigevent") - .field("sigev_notify", &self.sigev_notify) - .field("sigev_signo", &self.sigev_signo) - .field("sigev_value", &self.sigev_value) - .finish() - } - } impl hash::Hash for sigevent { fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); @@ -790,42 +718,6 @@ cfg_if! { } } 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_rdi", &self.mc_rdi) - .field("mc_rsi", &self.mc_rsi) - .field("mc_rdx", &self.mc_rdx) - .field("mc_rcx", &self.mc_rcx) - .field("mc_r8", &self.mc_r8) - .field("mc_r9", &self.mc_r9) - .field("mc_rax", &self.mc_rax) - .field("mc_rbx", &self.mc_rbx) - .field("mc_rbp", &self.mc_rbp) - .field("mc_r10", &self.mc_r10) - .field("mc_r11", &self.mc_r11) - .field("mc_r12", &self.mc_r12) - .field("mc_r13", &self.mc_r13) - .field("mc_r14", &self.mc_r14) - .field("mc_r15", &self.mc_r15) - .field("mc_xflags", &self.mc_xflags) - .field("mc_trapno", &self.mc_trapno) - .field("mc_addr", &self.mc_addr) - .field("mc_flags", &self.mc_flags) - .field("mc_err", &self.mc_err) - .field("mc_rip", &self.mc_rip) - .field("mc_cs", &self.mc_cs) - .field("mc_rflags", &self.mc_rflags) - .field("mc_rsp", &self.mc_rsp) - .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_fpregs", &self.mc_fpregs) - .finish() - } - } impl hash::Hash for mcontext_t { fn hash(&self, state: &mut H) { self.mc_onstack.hash(state); @@ -875,18 +767,6 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_sigmask", &self.uc_sigmask) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_cofunc", &self.uc_cofunc) - .field("uc_arg", &self.uc_arg) - .finish() - } - } impl hash::Hash for ucontext_t { fn hash(&self, state: &mut H) { self.uc_sigmask.hash(state); diff --git a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs index ae93648ebd94f..7f5693dcf5d5c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs @@ -48,18 +48,6 @@ cfg_if! { } } impl Eq for gpregs {} - impl fmt::Debug for gpregs { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("gpregs") - .field("gp_x", &self.gp_x) - .field("gp_lr", &self.gp_lr) - .field("gp_sp", &self.gp_sp) - .field("gp_elr", &self.gp_elr) - .field("gp_spsr", &self.gp_spsr) - .field("gp_pad", &self.gp_pad) - .finish() - } - } impl hash::Hash for gpregs { fn hash(&self, state: &mut H) { self.gp_x.hash(state); @@ -80,17 +68,6 @@ cfg_if! { } } impl Eq for fpregs {} - impl fmt::Debug for fpregs { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("fpregs") - .field("fp_q", &self.fp_q) - .field("fp_sr", &self.fp_sr) - .field("fp_cr", &self.fp_cr) - .field("fp_flags", &self.fp_flags) - .field("fp_pad", &self.fp_pad) - .finish() - } - } impl hash::Hash for fpregs { fn hash(&self, state: &mut H) { self.fp_q.hash(state); @@ -114,17 +91,6 @@ cfg_if! { } } 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_gpregs", &self.mc_gpregs) - .field("mc_fpregs", &self.mc_fpregs) - .field("mc_flags", &self.mc_flags) - .field("mc_pad", &self.mc_pad) - .field("mc_spare", &self.mc_spare) - .finish() - } - } impl hash::Hash for mcontext_t { fn hash(&self, state: &mut H) { self.mc_gpregs.hash(state); diff --git a/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/unix/bsd/freebsdlike/freebsd/arm.rs index e29c9cef3981e..27eeafe200f53 100644 --- a/src/unix/bsd/freebsdlike/freebsd/arm.rs +++ b/src/unix/bsd/freebsdlike/freebsd/arm.rs @@ -32,16 +32,6 @@ cfg_if! { } } 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("__gregs", &self.__gregs) - .field("mc_vfp_size", &self.mc_vfp_size) - .field("mc_vfp_ptr", &self.mc_vfp_ptr) - .field("mc_spare", &self.mc_spare) - .finish() - } - } impl hash::Hash for mcontext_t { fn hash(&self, state: &mut H) { self.__gregs.hash(state); diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs index 584644701aea2..9705e300bd9ac 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs @@ -296,29 +296,6 @@ cfg_if! { } } 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(&self, state: &mut H) { self.f_version.hash(state); @@ -357,17 +334,6 @@ cfg_if! { } } 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_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(&self, state: &mut H) { self.d_fileno.hash(state); @@ -394,22 +360,6 @@ cfg_if! { } } 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_mntdir", &self.vn_mntdir) - .field("vn_dev", &self.vn_dev) - .field("vn_fsid", &self.vn_fsid) - .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(&self, state: &mut H) { let self_vn_devname: &[c_char] = &self.vn_devname; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index 21062e50afcbd..005b26894cc81 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -340,29 +340,6 @@ cfg_if! { } } 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(&self, state: &mut H) { self.f_version.hash(state); @@ -403,18 +380,6 @@ cfg_if! { } } 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(&self, state: &mut H) { self.d_fileno.hash(state); @@ -442,22 +407,6 @@ cfg_if! { } } 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(&self, state: &mut H) { let self_vn_devname: &[c_char] = &self.vn_devname; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs index 505d2d1591652..5c40a355fb95b 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -353,29 +353,6 @@ cfg_if! { } } 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(&self, state: &mut H) { self.f_version.hash(state); @@ -416,18 +393,6 @@ cfg_if! { } } 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(&self, state: &mut H) { self.d_fileno.hash(state); @@ -455,22 +420,6 @@ cfg_if! { } } 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(&self, state: &mut H) { let self_vn_devname: &[c_char] = &self.vn_devname; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index 44a3656d674f7..de1001b26fab9 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -353,29 +353,6 @@ cfg_if! { } } 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(&self, state: &mut H) { self.f_version.hash(state); @@ -416,18 +393,6 @@ cfg_if! { } } 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(&self, state: &mut H) { self.d_fileno.hash(state); @@ -455,22 +420,6 @@ cfg_if! { } } 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(&self, state: &mut H) { let self_vn_devname: &[c_char] = &self.vn_devname; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index 29c9c0cb94fff..6a02d7b35c186 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -354,29 +354,6 @@ cfg_if! { } } 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(&self, state: &mut H) { self.f_version.hash(state); @@ -417,18 +394,6 @@ cfg_if! { } } 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(&self, state: &mut H) { self.d_fileno.hash(state); @@ -456,22 +421,6 @@ cfg_if! { } } 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(&self, state: &mut H) { let self_vn_devname: &[c_char] = &self.vn_devname; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index c88967e6fce58..bd4601576294a 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1726,20 +1726,6 @@ cfg_if! { } } impl Eq for utmpx {} - impl fmt::Debug for utmpx { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utmpx") - .field("ut_type", &self.ut_type) - .field("ut_tv", &self.ut_tv) - .field("ut_id", &self.ut_id) - .field("ut_pid", &self.ut_pid) - .field("ut_user", &self.ut_user) - .field("ut_line", &self.ut_line) - // FIXME(debug): .field("ut_host", &self.ut_host) - // FIXME(debug): .field("__ut_spare", &self.__ut_spare) - .finish() - } - } impl hash::Hash for utmpx { fn hash(&self, state: &mut H) { self.ut_type.hash(state); @@ -1775,17 +1761,6 @@ cfg_if! { } } impl Eq for xucred {} - impl fmt::Debug for xucred { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("xucred") - .field("cr_version", &self.cr_version) - .field("cr_uid", &self.cr_uid) - .field("cr_ngroups", &self.cr_ngroups) - .field("cr_groups", &self.cr_groups) - .field("cr_pid__c_anonymous_union", &self.cr_pid__c_anonymous_union) - .finish() - } - } impl hash::Hash for xucred { fn hash(&self, state: &mut H) { self.cr_version.hash(state); @@ -1813,20 +1788,6 @@ cfg_if! { } } impl Eq for sockaddr_dl {} - impl fmt::Debug for sockaddr_dl { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_dl") - .field("sdl_len", &self.sdl_len) - .field("sdl_family", &self.sdl_family) - .field("sdl_index", &self.sdl_index) - .field("sdl_type", &self.sdl_type) - .field("sdl_nlen", &self.sdl_nlen) - .field("sdl_alen", &self.sdl_alen) - .field("sdl_slen", &self.sdl_slen) - // FIXME(debug): .field("sdl_data", &self.sdl_data) - .finish() - } - } impl hash::Hash for sockaddr_dl { fn hash(&self, state: &mut H) { self.sdl_len.hash(state); @@ -1849,16 +1810,6 @@ cfg_if! { } } impl Eq for mq_attr {} - impl fmt::Debug for mq_attr { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("mq_attr") - .field("mq_flags", &self.mq_flags) - .field("mq_maxmsg", &self.mq_maxmsg) - .field("mq_msgsize", &self.mq_msgsize) - .field("mq_curmsgs", &self.mq_curmsgs) - .finish() - } - } impl hash::Hash for mq_attr { fn hash(&self, state: &mut H) { self.mq_flags.hash(state); @@ -1877,16 +1828,6 @@ cfg_if! { } } impl Eq for sigevent {} - impl fmt::Debug for sigevent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sigevent") - .field("sigev_notify", &self.sigev_notify) - .field("sigev_signo", &self.sigev_signo) - .field("sigev_value", &self.sigev_value) - .field("sigev_notify_thread_id", &self.sigev_notify_thread_id) - .finish() - } - } impl hash::Hash for sigevent { fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); @@ -1905,16 +1846,6 @@ cfg_if! { } } impl Eq for ptsstat {} - impl fmt::Debug for ptsstat { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let self_devname: &[c_char] = &self.devname; - - f.debug_struct("ptsstat") - .field("dev", &self.dev) - .field("devname", &self_devname) - .finish() - } - } impl hash::Hash for ptsstat { fn hash(&self, state: &mut H) { let self_devname: &[c_char] = &self.devname; @@ -1936,14 +1867,6 @@ cfg_if! { } } impl Eq for Elf32_Auxinfo {} - impl fmt::Debug for Elf32_Auxinfo { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("Elf32_Auxinfo") - .field("a_type", &self.a_type) - .field("a_un", &self.a_un) - .finish() - } - } impl PartialEq for __c_anonymous_ifr_ifru { fn eq(&self, other: &__c_anonymous_ifr_ifru) -> bool { @@ -1993,14 +1916,6 @@ cfg_if! { } } 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(&self, state: &mut H) { self.ifr_name.hash(state); @@ -2032,16 +1947,6 @@ cfg_if! { } } impl Eq for ifstat {} - impl fmt::Debug for ifstat { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let ascii: &[c_char] = &self.ascii; - - f.debug_struct("ifstat") - .field("ifs_name", &self.ifs_name) - .field("ascii", &ascii) - .finish() - } - } impl hash::Hash for ifstat { fn hash(&self, state: &mut H) { self.ifs_name.hash(state); @@ -2062,19 +1967,6 @@ cfg_if! { } } impl Eq for ifrsskey {} - impl fmt::Debug for ifrsskey { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let ifrk_key: &[u8] = &self.ifrk_key; - - f.debug_struct("ifrsskey") - .field("ifrk_name", &self.ifrk_name) - .field("ifrk_func", &self.ifrk_func) - .field("ifrk_spare0", &self.ifrk_spare0) - .field("ifrk_keylen", &self.ifrk_keylen) - .field("ifrk_key", &ifrk_key) - .finish() - } - } impl hash::Hash for ifrsskey { fn hash(&self, state: &mut H) { self.ifrk_name.hash(state); @@ -2097,18 +1989,6 @@ cfg_if! { } } impl Eq for ifdownreason {} - impl fmt::Debug for ifdownreason { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let ifdr_msg: &[c_char] = &self.ifdr_msg; - - f.debug_struct("ifdownreason") - .field("ifdr_name", &self.ifdr_name) - .field("ifdr_reason", &self.ifdr_reason) - .field("ifdr_vendor", &self.ifdr_vendor) - .field("ifdr_msg", &ifdr_msg) - .finish() - } - } impl hash::Hash for ifdownreason { fn hash(&self, state: &mut H) { self.ifdr_name.hash(state); @@ -2178,37 +2058,6 @@ cfg_if! { } } impl Eq for if_data {} - impl fmt::Debug for if_data { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("if_data") - .field("ifi_type", &self.ifi_type) - .field("ifi_physical", &self.ifi_physical) - .field("ifi_addrlen", &self.ifi_addrlen) - .field("ifi_hdrlen", &self.ifi_hdrlen) - .field("ifi_link_state", &self.ifi_link_state) - .field("ifi_vhid", &self.ifi_vhid) - .field("ifi_datalen", &self.ifi_datalen) - .field("ifi_mtu", &self.ifi_mtu) - .field("ifi_metric", &self.ifi_metric) - .field("ifi_baudrate", &self.ifi_baudrate) - .field("ifi_ipackets", &self.ifi_ipackets) - .field("ifi_ierrors", &self.ifi_ierrors) - .field("ifi_opackets", &self.ifi_opackets) - .field("ifi_oerrors", &self.ifi_oerrors) - .field("ifi_collisions", &self.ifi_collisions) - .field("ifi_ibytes", &self.ifi_ibytes) - .field("ifi_obytes", &self.ifi_obytes) - .field("ifi_imcasts", &self.ifi_imcasts) - .field("ifi_omcasts", &self.ifi_omcasts) - .field("ifi_iqdrops", &self.ifi_iqdrops) - .field("ifi_oqdrops", &self.ifi_oqdrops) - .field("ifi_noproto", &self.ifi_noproto) - .field("ifi_hwassist", &self.ifi_hwassist) - .field("__ifi_epoch", &self.__ifi_epoch) - .field("__ifi_lastchange", &self.__ifi_lastchange) - .finish() - } - } impl hash::Hash for if_data { fn hash(&self, state: &mut H) { self.ifi_type.hash(state); @@ -2248,16 +2097,6 @@ cfg_if! { } } impl Eq for sctphdr {} - impl fmt::Debug for sctphdr { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sctphdr") - .field("src_port", &{ self.src_port }) - .field("dest_port", &{ self.dest_port }) - .field("v_tag", &{ self.v_tag }) - .field("checksum", &{ self.checksum }) - .finish() - } - } impl hash::Hash for sctphdr { fn hash(&self, state: &mut H) { { self.src_port }.hash(state); @@ -2275,15 +2114,6 @@ cfg_if! { } } impl Eq for sctp_chunkhdr {} - impl fmt::Debug for sctp_chunkhdr { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sctp_chunkhdr") - .field("chunk_type", &{ self.chunk_type }) - .field("chunk_flags", &{ self.chunk_flags }) - .field("chunk_length", &{ self.chunk_length }) - .finish() - } - } impl hash::Hash for sctp_chunkhdr { fn hash(&self, state: &mut H) { { self.chunk_type }.hash(state); @@ -2300,14 +2130,6 @@ cfg_if! { } } impl Eq for sctp_paramhdr {} - impl fmt::Debug for sctp_paramhdr { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sctp_paramhdr") - .field("param_type", &{ self.param_type }) - .field("param_length", &{ self.param_length }) - .finish() - } - } impl hash::Hash for sctp_paramhdr { fn hash(&self, state: &mut H) { { self.param_type }.hash(state); @@ -2326,15 +2148,6 @@ cfg_if! { } } impl Eq for sctp_gen_error_cause {} - impl fmt::Debug for sctp_gen_error_cause { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sctp_gen_error_cause") - .field("code", &{ self.code }) - .field("length", &{ self.length }) - // FIXME(debug): .field("info", &{self.info}) - .finish() - } - } impl hash::Hash for sctp_gen_error_cause { fn hash(&self, state: &mut H) { { self.code }.hash(state); @@ -2349,14 +2162,6 @@ cfg_if! { } } impl Eq for sctp_error_cause {} - impl fmt::Debug for sctp_error_cause { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sctp_error_cause") - .field("code", &{ self.code }) - .field("length", &{ self.length }) - .finish() - } - } impl hash::Hash for sctp_error_cause { fn hash(&self, state: &mut H) { { self.code }.hash(state); @@ -2372,14 +2177,6 @@ cfg_if! { } } impl Eq for sctp_error_invalid_stream {} - impl fmt::Debug for sctp_error_invalid_stream { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sctp_error_invalid_stream") - .field("cause", &{ self.cause }) - .field("stream_id", &{ self.stream_id }) - .finish() - } - } impl hash::Hash for sctp_error_invalid_stream { fn hash(&self, state: &mut H) { { self.cause }.hash(state); @@ -2398,15 +2195,6 @@ cfg_if! { } } impl Eq for sctp_error_missing_param {} - impl fmt::Debug for sctp_error_missing_param { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sctp_error_missing_param") - .field("cause", &{ self.cause }) - .field("num_missing_params", &{ self.num_missing_params }) - // FIXME(debug): .field("tpe", &{self.tpe}) - .finish() - } - } impl hash::Hash for sctp_error_missing_param { fn hash(&self, state: &mut H) { { self.cause }.hash(state); @@ -2423,14 +2211,6 @@ cfg_if! { } } impl Eq for sctp_error_stale_cookie {} - impl fmt::Debug for sctp_error_stale_cookie { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sctp_error_stale_cookie") - .field("cause", &{ self.cause }) - .field("stale_time", &{ self.stale_time }) - .finish() - } - } impl hash::Hash for sctp_error_stale_cookie { fn hash(&self, state: &mut H) { { self.cause }.hash(state); @@ -2444,13 +2224,6 @@ cfg_if! { } } impl Eq for sctp_error_out_of_resource {} - impl fmt::Debug for sctp_error_out_of_resource { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sctp_error_out_of_resource") - .field("cause", &{ self.cause }) - .finish() - } - } impl hash::Hash for sctp_error_out_of_resource { fn hash(&self, state: &mut H) { { self.cause }.hash(state); @@ -2463,13 +2236,6 @@ cfg_if! { } } impl Eq for sctp_error_unresolv_addr {} - impl fmt::Debug for sctp_error_unresolv_addr { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sctp_error_unresolv_addr") - .field("cause", &{ self.cause }) - .finish() - } - } impl hash::Hash for sctp_error_unresolv_addr { fn hash(&self, state: &mut H) { { self.cause }.hash(state); @@ -2482,14 +2248,6 @@ cfg_if! { } } impl Eq for sctp_error_unrecognized_chunk {} - impl fmt::Debug for sctp_error_unrecognized_chunk { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sctp_error_unrecognized_chunk") - .field("cause", &{ self.cause }) - .field("ch", &{ self.ch }) - .finish() - } - } impl hash::Hash for sctp_error_unrecognized_chunk { fn hash(&self, state: &mut H) { { self.cause }.hash(state); @@ -2503,14 +2261,6 @@ cfg_if! { } } impl Eq for sctp_error_no_user_data {} - impl fmt::Debug for sctp_error_no_user_data { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sctp_error_no_user_data") - .field("cause", &{ self.cause }) - .field("tsn", &{ self.tsn }) - .finish() - } - } impl hash::Hash for sctp_error_no_user_data { fn hash(&self, state: &mut H) { { self.cause }.hash(state); @@ -2524,14 +2274,6 @@ cfg_if! { } } impl Eq for sctp_error_auth_invalid_hmac {} - impl fmt::Debug for sctp_error_auth_invalid_hmac { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sctp_error_invalid_hmac") - .field("cause", &{ self.cause }) - .field("hmac_id", &{ self.hmac_id }) - .finish() - } - } impl hash::Hash for sctp_error_auth_invalid_hmac { fn hash(&self, state: &mut H) { { self.cause }.hash(state); @@ -2557,21 +2299,6 @@ cfg_if! { } } impl Eq for kinfo_file {} - impl fmt::Debug for kinfo_file { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("kinfo_file") - .field("kf_structsize", &self.kf_structsize) - .field("kf_type", &self.kf_type) - .field("kf_fd", &self.kf_fd) - .field("kf_ref_count", &self.kf_ref_count) - .field("kf_flags", &self.kf_flags) - .field("kf_offset", &self.kf_offset) - .field("kf_status", &self.kf_status) - .field("kf_cap_rights", &self.kf_cap_rights) - .field("kf_path", &&self.kf_path[..]) - .finish() - } - } impl hash::Hash for kinfo_file { fn hash(&self, state: &mut H) { self.kf_structsize.hash(state); @@ -2585,18 +2312,6 @@ cfg_if! { self.kf_path.hash(state); } } - - impl fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_sigmask", &self.uc_sigmask) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_flags", &self.uc_flags) - .finish() - } - } } } diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs index 9fde25d37b62f..a6d9ed6d7f4da 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs @@ -37,21 +37,6 @@ cfg_if! { } } 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_vers", &self.mc_vers) - .field("mc_flags", &self.mc_flags) - .field("mc_onstack", &self.mc_onstack) - .field("mc_len", &self.mc_len) - .field("mc_avec", &self.mc_avec) - .field("mc_av", &self.mc_av) - .field("mc_frame", &self.mc_frame) - .field("mc_fpreg", &self.mc_fpreg) - .field("mc_vsxfpreg", &self.mc_vsxfpreg) - .finish() - } - } impl hash::Hash for mcontext_t { fn hash(&self, state: &mut H) { self.mc_vers.hash(state); diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs index e7df7f7737997..87b425ad9b096 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs @@ -37,21 +37,6 @@ cfg_if! { } } 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_vers", &self.mc_vers) - .field("mc_flags", &self.mc_flags) - .field("mc_onstack", &self.mc_onstack) - .field("mc_len", &self.mc_len) - .field("mc_avec", &self.mc_avec) - .field("mc_av", &self.mc_av) - .field("mc_frame", &self.mc_frame) - .field("mc_fpreg", &self.mc_fpreg) - .field("mc_vsxfpreg", &self.mc_vsxfpreg) - .finish() - } - } impl hash::Hash for mcontext_t { fn hash(&self, state: &mut H) { self.mc_vers.hash(state); diff --git a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs index 449a29f7d3df4..bc065cfa58fae 100644 --- a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs @@ -51,21 +51,6 @@ cfg_if! { } } impl Eq for gpregs {} - impl fmt::Debug for gpregs { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("gpregs") - .field("gp_ra", &self.gp_ra) - .field("gp_sp", &self.gp_sp) - .field("gp_gp", &self.gp_gp) - .field("gp_tp", &self.gp_tp) - .field("gp_t", &self.gp_t) - .field("gp_s", &self.gp_s) - .field("gp_a", &self.gp_a) - .field("gp_sepc", &self.gp_sepc) - .field("gp_sstatus", &self.gp_sstatus) - .finish() - } - } impl hash::Hash for gpregs { fn hash(&self, state: &mut H) { self.gp_ra.hash(state); @@ -88,16 +73,6 @@ cfg_if! { } } impl Eq for fpregs {} - impl fmt::Debug for fpregs { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("fpregs") - .field("fp_x", &self.fp_x) - .field("fp_fcsr", &self.fp_fcsr) - .field("fp_flags", &self.fp_flags) - .field("pad", &self.pad) - .finish() - } - } impl hash::Hash for fpregs { fn hash(&self, state: &mut H) { self.fp_x.hash(state); @@ -120,17 +95,6 @@ cfg_if! { } } 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_gpregs", &self.mc_gpregs) - .field("mc_fpregs", &self.mc_fpregs) - .field("mc_flags", &self.mc_flags) - .field("mc_pad", &self.mc_pad) - .field("mc_spare", &self.mc_spare) - .finish() - } - } impl hash::Hash for mcontext_t { fn hash(&self, state: &mut H) { self.mc_gpregs.hash(state); diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index b196eafe06ab8..b739719340438 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -87,42 +87,6 @@ cfg_if! { } } 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(&self, state: &mut H) { self.mc_onstack.hash(state); diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index 065847043225c..40e1d72e2041e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -156,16 +156,6 @@ cfg_if! { } } impl Eq for fpreg32 {} - impl fmt::Debug for fpreg32 { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("fpreg32") - .field("fpr_env", &&self.fpr_env[..]) - .field("fpr_acc", &self.fpr_acc) - .field("fpr_ex_sw", &self.fpr_ex_sw) - .field("fpr_pad", &&self.fpr_pad[..]) - .finish() - } - } impl hash::Hash for fpreg32 { fn hash(&self, state: &mut H) { self.fpr_env.hash(state); @@ -184,16 +174,6 @@ cfg_if! { } } impl Eq for fpreg {} - impl fmt::Debug for fpreg { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("fpreg") - .field("fpr_env", &self.fpr_env) - .field("fpr_acc", &self.fpr_acc) - .field("fpr_xacc", &self.fpr_xacc) - .field("fpr_spare", &self.fpr_spare) - .finish() - } - } impl hash::Hash for fpreg { fn hash(&self, state: &mut H) { self.fpr_env.hash(state); @@ -216,16 +196,6 @@ cfg_if! { } } impl Eq for xmmreg {} - impl fmt::Debug for xmmreg { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("xmmreg") - .field("xmm_env", &self.xmm_env) - .field("xmm_acc", &self.xmm_acc) - .field("xmm_reg", &self.xmm_reg) - .field("xmm_pad", &&self.xmm_pad[..]) - .finish() - } - } impl hash::Hash for xmmreg { fn hash(&self, state: &mut H) { self.xmm_env.hash(state); @@ -253,14 +223,6 @@ cfg_if! { } } impl Eq for Elf64_Auxinfo {} - impl fmt::Debug for Elf64_Auxinfo { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("Elf64_Auxinfo") - .field("a_type", &self.a_type) - .field("a_un", &self.a_un) - .finish() - } - } impl PartialEq for mcontext_t { fn eq(&self, other: &mcontext_t) -> bool { @@ -309,50 +271,6 @@ cfg_if! { } } 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_rdi", &self.mc_rdi) - .field("mc_rsi", &self.mc_rsi) - .field("mc_rdx", &self.mc_rdx) - .field("mc_rcx", &self.mc_rcx) - .field("mc_r8", &self.mc_r8) - .field("mc_r9", &self.mc_r9) - .field("mc_rax", &self.mc_rax) - .field("mc_rbx", &self.mc_rbx) - .field("mc_rbp", &self.mc_rbp) - .field("mc_r10", &self.mc_r10) - .field("mc_r11", &self.mc_r11) - .field("mc_r12", &self.mc_r12) - .field("mc_r13", &self.mc_r13) - .field("mc_r14", &self.mc_r14) - .field("mc_r15", &self.mc_r15) - .field("mc_trapno", &self.mc_trapno) - .field("mc_fs", &self.mc_fs) - .field("mc_gs", &self.mc_gs) - .field("mc_addr", &self.mc_addr) - .field("mc_flags", &self.mc_flags) - .field("mc_es", &self.mc_es) - .field("mc_ds", &self.mc_ds) - .field("mc_err", &self.mc_err) - .field("mc_rip", &self.mc_rip) - .field("mc_cs", &self.mc_cs) - .field("mc_rflags", &self.mc_rflags) - .field("mc_rsp", &self.mc_rsp) - .field("mc_ss", &self.mc_ss) - .field("mc_len", &self.mc_len) - .field("mc_fpformat", &self.mc_fpformat) - .field("mc_ownedfp", &self.mc_ownedfp) - // FIXME(debug): .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_spare", &self.mc_spare) - .finish() - } - } impl hash::Hash for mcontext_t { fn hash(&self, state: &mut H) { self.mc_onstack.hash(state); diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 197873cd17795..644e035e2c67a 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -414,17 +414,6 @@ cfg_if! { } } impl Eq for sockaddr_storage {} - impl fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_len", &self.ss_len) - .field("ss_family", &self.ss_family) - .field("__ss_pad1", &self.__ss_pad1) - .field("__ss_align", &self.__ss_align) - // FIXME(debug): .field("__ss_pad2", &self.__ss_pad2) - .finish() - } - } impl hash::Hash for sockaddr_storage { fn hash(&self, state: &mut H) { self.ss_len.hash(state); diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 1f84950fa1945..f2f17f4681a56 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -180,16 +180,6 @@ cfg_if! { impl Eq for sockaddr_un {} - impl fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_len", &self.sun_len) - .field("sun_family", &self.sun_family) - // FIXME(debug): .field("sun_path", &self.sun_path) - .finish() - } - } - impl hash::Hash for sockaddr_un { fn hash(&self, state: &mut H) { self.sun_len.hash(state); @@ -229,18 +219,6 @@ cfg_if! { impl Eq for utsname {} - impl fmt::Debug for utsname { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utsname") - // FIXME(debug): .field("sysname", &self.sysname) - // FIXME(debug): .field("nodename", &self.nodename) - // FIXME(debug): .field("release", &self.release) - // FIXME(debug): .field("version", &self.version) - // FIXME(debug): .field("machine", &self.machine) - .finish() - } - } - impl hash::Hash for utsname { fn hash(&self, state: &mut H) { self.sysname.hash(state); diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 8633ee3dd5c08..3addd5a8a6e36 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -940,24 +940,6 @@ cfg_if! { impl Eq for utmpx {} - impl fmt::Debug for utmpx { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utmpx") - .field("ut_name", &self.ut_name) - .field("ut_id", &self.ut_id) - .field("ut_line", &self.ut_line) - // FIXME(debug) .field("ut_host", &self.ut_host) - .field("ut_session", &self.ut_session) - .field("ut_type", &self.ut_type) - .field("ut_pid", &self.ut_pid) - .field("ut_exit", &self.ut_exit) - .field("ut_ss", &self.ut_ss) - .field("ut_tv", &self.ut_tv) - // FIXME(debug) .field("ut_pad", &self.ut_pad) - .finish() - } - } - impl hash::Hash for utmpx { fn hash(&self, state: &mut H) { self.ut_name.hash(state); @@ -989,17 +971,6 @@ cfg_if! { impl Eq for lastlogx {} - impl fmt::Debug for lastlogx { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("lastlogx") - .field("ll_tv", &self.ll_tv) - .field("ll_line", &self.ll_line) - // FIXME(debug).field("ll_host", &self.ll_host) - .field("ll_ss", &self.ll_ss) - .finish() - } - } - impl hash::Hash for lastlogx { fn hash(&self, state: &mut H) { self.ll_tv.hash(state); @@ -1015,14 +986,6 @@ cfg_if! { } } impl Eq for in_pktinfo {} - impl fmt::Debug for in_pktinfo { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("in_pktinfo") - .field("ipi_addr", &self.ipi_addr) - .field("ipi_ifindex", &self.ipi_ifindex) - .finish() - } - } impl hash::Hash for in_pktinfo { fn hash(&self, state: &mut H) { self.ipi_addr.hash(state); @@ -1040,20 +1003,6 @@ cfg_if! { } } impl Eq for arphdr {} - impl fmt::Debug for arphdr { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let ar_hrd = self.ar_hrd; - let ar_pro = self.ar_pro; - let ar_op = self.ar_op; - f.debug_struct("arphdr") - .field("ar_hrd", &ar_hrd) - .field("ar_pro", &ar_pro) - .field("ar_hln", &self.ar_hln) - .field("ar_pln", &self.ar_pln) - .field("ar_op", &ar_op) - .finish() - } - } impl hash::Hash for arphdr { fn hash(&self, state: &mut H) { let ar_hrd = self.ar_hrd; @@ -1073,12 +1022,6 @@ cfg_if! { } } impl Eq for in_addr {} - impl fmt::Debug for in_addr { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let s_addr = self.s_addr; - f.debug_struct("in_addr").field("s_addr", &s_addr).finish() - } - } impl hash::Hash for in_addr { fn hash(&self, state: &mut H) { let s_addr = self.s_addr; @@ -1093,14 +1036,6 @@ cfg_if! { } } impl Eq for ip_mreq {} - impl fmt::Debug for ip_mreq { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ip_mreq") - .field("imr_multiaddr", &self.imr_multiaddr) - .field("imr_interface", &self.imr_interface) - .finish() - } - } impl hash::Hash for ip_mreq { fn hash(&self, state: &mut H) { self.imr_multiaddr.hash(state); @@ -1118,17 +1053,6 @@ cfg_if! { } } impl Eq for sockaddr_in {} - impl fmt::Debug for sockaddr_in { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_in") - .field("sin_len", &self.sin_len) - .field("sin_family", &self.sin_family) - .field("sin_port", &self.sin_port) - .field("sin_addr", &self.sin_addr) - .field("sin_zero", &self.sin_zero) - .finish() - } - } impl hash::Hash for sockaddr_in { fn hash(&self, state: &mut H) { self.sin_len.hash(state); @@ -1153,17 +1077,6 @@ cfg_if! { } } 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_reclen", &self.d_reclen) - .field("d_namlen", &self.d_namlen) - .field("d_type", &self.d_type) - // FIXME(debug): .field("d_name", &self.d_name) - .finish() - } - } impl hash::Hash for dirent { fn hash(&self, state: &mut H) { self.d_fileno.hash(state); @@ -1211,36 +1124,6 @@ cfg_if! { } } impl Eq for statvfs {} - impl fmt::Debug for statvfs { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("statvfs") - .field("f_flag", &self.f_flag) - .field("f_bsize", &self.f_bsize) - .field("f_frsize", &self.f_frsize) - .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_bresvd", &self.f_bresvd) - .field("f_files", &self.f_files) - .field("f_ffree", &self.f_ffree) - .field("f_favail", &self.f_favail) - .field("f_fresvd", &self.f_fresvd) - .field("f_syncreads", &self.f_syncreads) - .field("f_syncwrites", &self.f_syncwrites) - .field("f_asyncreads", &self.f_asyncreads) - .field("f_asyncwrites", &self.f_asyncwrites) - .field("f_fsidx", &self.f_fsidx) - .field("f_fsid", &self.f_fsid) - .field("f_namemax", &self.f_namemax) - .field("f_owner", &self.f_owner) - .field("f_spare", &self.f_spare) - .field("f_fstypename", &self.f_fstypename) - // FIXME(debug): .field("f_mntonname", &self.f_mntonname) - // FIXME(debug): .field("f_mntfromname", &self.f_mntfromname) - .finish() - } - } impl hash::Hash for statvfs { fn hash(&self, state: &mut H) { self.f_flag.hash(state); @@ -1284,17 +1167,6 @@ cfg_if! { } } impl Eq for sockaddr_storage {} - impl fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_len", &self.ss_len) - .field("ss_family", &self.ss_family) - .field("__ss_pad1", &self.__ss_pad1) - .field("__ss_pad2", &self.__ss_pad2) - // FIXME(debug): .field("__ss_pad3", &self.__ss_pad3) - .finish() - } - } impl hash::Hash for sockaddr_storage { fn hash(&self, state: &mut H) { self.ss_len.hash(state); @@ -1314,16 +1186,6 @@ cfg_if! { } } impl Eq for sigevent {} - impl fmt::Debug for sigevent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sigevent") - .field("sigev_notify", &self.sigev_notify) - .field("sigev_signo", &self.sigev_signo) - .field("sigev_value", &self.sigev_value) - .field("sigev_notify_attributes", &self.sigev_notify_attributes) - .finish() - } - } impl hash::Hash for sigevent { fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index bd18311f5d20b..3b3971692fe38 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -773,19 +773,6 @@ cfg_if! { 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) - // FIXME(debug): .field("d_name", &self.d_name) - .finish() - } - } - impl hash::Hash for dirent { fn hash(&self, state: &mut H) { self.d_fileno.hash(state); @@ -805,15 +792,6 @@ cfg_if! { impl Eq for sockaddr_storage {} - impl fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_len", &self.ss_len) - .field("ss_family", &self.ss_family) - .finish() - } - } - impl hash::Hash for sockaddr_storage { fn hash(&self, state: &mut H) { self.ss_len.hash(state); @@ -832,17 +810,6 @@ cfg_if! { impl Eq for siginfo_t {} - impl fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("siginfo_t") - .field("si_signo", &self.si_signo) - .field("si_code", &self.si_code) - .field("si_errno", &self.si_errno) - .field("si_addr", &self.si_addr) - .finish() - } - } - impl hash::Hash for siginfo_t { fn hash(&self, state: &mut H) { self.si_signo.hash(state); @@ -870,16 +837,6 @@ cfg_if! { impl Eq for lastlog {} - impl fmt::Debug for lastlog { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("lastlog") - .field("ll_time", &self.ll_time) - // FIXME(debug): .field("ll_line", &self.ll_line) - // FIXME(debug): .field("ll_host", &self.ll_host) - .finish() - } - } - impl hash::Hash for lastlog { fn hash(&self, state: &mut H) { self.ll_time.hash(state); @@ -911,17 +868,6 @@ cfg_if! { impl Eq for utmp {} - impl fmt::Debug for utmp { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utmp") - // FIXME(debug): .field("ut_line", &self.ut_line) - // FIXME(debug): .field("ut_name", &self.ut_name) - // FIXME(debug): .field("ut_host", &self.ut_host) - .field("ut_time", &self.ut_time) - .finish() - } - } - impl hash::Hash for utmp { fn hash(&self, state: &mut H) { self.ut_line.hash(state); @@ -1029,35 +975,6 @@ cfg_if! { impl Eq for statfs {} - impl fmt::Debug for statfs { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("statfs") - .field("f_flags", &self.f_flags) - .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_favail", &self.f_favail) - .field("f_syncwrites", &self.f_syncwrites) - .field("f_syncreads", &self.f_syncreads) - .field("f_asyncwrites", &self.f_asyncwrites) - .field("f_asyncreads", &self.f_asyncreads) - .field("f_fsid", &self.f_fsid) - .field("f_namemax", &self.f_namemax) - .field("f_owner", &self.f_owner) - .field("f_ctime", &self.f_ctime) - // FIXME(debug): .field("f_fstypename", &self.f_fstypename) - // FIXME(debug): .field("f_mntonname", &self.f_mntonname) - // FIXME(debug): .field("f_mntfromname", &self.f_mntfromname) - // FIXME(debug): .field("f_mntfromspec", &self.f_mntfromspec) - .field("mount_info", &self.mount_info) - .finish() - } - } - impl hash::Hash for statfs { fn hash(&self, state: &mut H) { self.f_flags.hash(state); diff --git a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs index 9003f3588c1b6..33a19f969ac97 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs @@ -81,22 +81,6 @@ cfg_if! { } } impl Eq for fxsave64 {} - impl fmt::Debug for fxsave64 { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("fxsave64") - .field("fx_fcw", &{ self.fx_fcw }) - .field("fx_fsw", &{ self.fx_fsw }) - .field("fx_ftw", &{ self.fx_ftw }) - .field("fx_fop", &{ self.fx_fop }) - .field("fx_rip", &{ self.fx_rip }) - .field("fx_rdp", &{ self.fx_rdp }) - .field("fx_mxcsr", &{ self.fx_mxcsr }) - .field("fx_mxcsr_mask", &{ self.fx_mxcsr_mask }) - // FIXME(debug): .field("fx_st", &{self.fx_st}) - // FIXME(debug): .field("fx_xmm", &{self.fx_xmm}) - .finish() - } - } impl hash::Hash for fxsave64 { fn hash(&self, state: &mut H) { { self.fx_fcw }.hash(state); diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index c2fda6768b2b0..2986c7c74a7c4 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -583,19 +583,6 @@ cfg_if! { impl Eq for siginfo_t {} - impl fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("siginfo_t") - .field("si_signo", &self.si_signo) - .field("si_code", &self.si_code) - .field("si_pid", &self.si_pid) - .field("si_uid", &self.si_uid) - .field("si_errno", &self.si_errno) - // Ignore __pad - .finish() - } - } - impl hash::Hash for siginfo_t { fn hash(&self, state: &mut H) { self.si_signo.hash(state); @@ -607,24 +594,6 @@ cfg_if! { } } - 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 fmt::Debug for ifconf { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ifconf") - .field("ifc_len", &self.ifc_len) - .field("ifc_ifcu", &self.ifc_ifcu) - .finish() - } - } - impl PartialEq for dirent { fn eq(&self, other: &dirent) -> bool { self.d_ino == other.d_ino @@ -639,16 +608,6 @@ cfg_if! { impl Eq for dirent {} - impl fmt::Debug for dirent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) - .finish() - } - } - impl hash::Hash for dirent { fn hash(&self, state: &mut H) { self.d_ino.hash(state); @@ -670,15 +629,6 @@ cfg_if! { impl Eq for sockaddr_un {} - impl fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) - .finish() - } - } - impl hash::Hash for sockaddr_un { fn hash(&self, state: &mut H) { self.sun_family.hash(state); @@ -722,19 +672,6 @@ cfg_if! { impl Eq for utsname {} - impl fmt::Debug for utsname { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utsname") - // FIXME: .field("sysname", &self.sysname) - // FIXME: .field("nodename", &self.nodename) - // FIXME: .field("release", &self.release) - // FIXME: .field("version", &self.version) - // FIXME: .field("machine", &self.machine) - // FIXME: .field("domainname", &self.domainname) - .finish() - } - } - impl hash::Hash for utsname { fn hash(&self, state: &mut H) { self.sysname.hash(state); diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index a47aac2a4fa4d..6b168a470bb02 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -517,22 +517,6 @@ cfg_if! { } impl Eq for utmpx {} - - impl fmt::Debug for utmpx { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utmpx") - .field("ut_type", &self.ut_type) - .field("ut_tv", &self.ut_tv) - .field("ut_id", &self.ut_id) - .field("ut_pid", &self.ut_pid) - .field("ut_user", &self.ut_user) - .field("ut_line", &self.ut_line) - .field("ut_host", &self.ut_host) - .field("__ut_reserved", &self.__ut_reserved) - .finish() - } - } - impl hash::Hash for utmpx { fn hash(&self, state: &mut H) { self.ut_type.hash(state); @@ -557,15 +541,6 @@ cfg_if! { } } impl Eq for sockaddr_un {} - impl fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_len", &self.sun_len) - .field("sun_family", &self.sun_family) - // FIXME(debug): .field("sun_path", &self.sun_path) - .finish() - } - } impl hash::Hash for sockaddr_un { fn hash(&self, state: &mut H) { self.sun_len.hash(state); @@ -592,17 +567,6 @@ cfg_if! { } } impl Eq for sockaddr_storage {} - impl fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_len", &self.ss_len) - .field("ss_family", &self.ss_family) - .field("__ss_pad1", &self.__ss_pad1) - .field("__ss_pad2", &self.__ss_pad2) - // FIXME(debug): .field("__ss_pad3", &self.__ss_pad3) - .finish() - } - } impl hash::Hash for sockaddr_storage { fn hash(&self, state: &mut H) { self.ss_len.hash(state); @@ -628,18 +592,6 @@ cfg_if! { } } impl Eq for dirent {} - impl fmt::Debug for dirent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("dirent") - .field("d_dev", &self.d_dev) - .field("d_pdev", &self.d_pdev) - .field("d_ino", &self.d_ino) - .field("d_pino", &self.d_pino) - .field("d_reclen", &self.d_reclen) - // FIXME(debug): .field("d_name", &self.d_name) - .finish() - } - } impl hash::Hash for dirent { fn hash(&self, state: &mut H) { self.d_dev.hash(state); @@ -660,16 +612,6 @@ cfg_if! { } } impl Eq for sigevent {} - impl fmt::Debug for sigevent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sigevent") - .field("sigev_notify", &self.sigev_notify) - .field("sigev_signo", &self.sigev_signo) - .field("sigev_value", &self.sigev_value) - .field("sigev_notify_attributes", &self.sigev_notify_attributes) - .finish() - } - } impl hash::Hash for sigevent { fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs index d373a9ced0866..a5a5e53491556 100644 --- a/src/unix/haiku/native.rs +++ b/src/unix/haiku/native.rs @@ -520,15 +520,6 @@ cfg_if! { } impl Eq for cpu_topology_node_info {} - impl fmt::Debug for cpu_topology_node_info { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("cpu_topology_node_info") - .field("id", &self.id) - .field("type", &self.type_) - .field("level", &self.level) - .finish() - } - } } } diff --git a/src/unix/haiku/x86_64.rs b/src/unix/haiku/x86_64.rs index 548c8e06b825c..16e2612ed760d 100644 --- a/src/unix/haiku/x86_64.rs +++ b/src/unix/haiku/x86_64.rs @@ -83,23 +83,6 @@ cfg_if! { } } impl Eq for fpu_state {} - impl fmt::Debug for fpu_state { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("fpu_state") - .field("control", &self.control) - .field("status", &self.status) - .field("tag", &self.tag) - .field("opcode", &self.opcode) - .field("rip", &self.rip) - .field("rdp", &self.rdp) - .field("mxcsr", &self.mxcsr) - .field("mscsr_mask", &self.mscsr_mask) - // FIXME(debug): .field("_fpreg", &self._fpreg) - // FIXME(debug): .field("_xmm", &self._xmm) - // FIXME(debug): .field("_reserved_416_511", &self._reserved_416_511) - .finish() - } - } impl hash::Hash for fpu_state { fn hash(&self, state: &mut H) { self.control.hash(state); @@ -128,15 +111,6 @@ cfg_if! { } } impl Eq for xstate_hdr {} - impl fmt::Debug for xstate_hdr { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("xstate_hdr") - .field("bv", &self.bv) - .field("xcomp_bv", &self.xcomp_bv) - // FIXME(debug): .field("_reserved", &field._reserved) - .finish() - } - } impl hash::Hash for xstate_hdr { fn hash(&self, state: &mut H) { self.bv.hash(state); @@ -157,15 +131,6 @@ cfg_if! { } } impl Eq for savefpu {} - impl fmt::Debug for savefpu { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("savefpu") - .field("fp_fxsave", &self.fp_fxsave) - .field("fp_xstate", &self.fp_xstate) - // FIXME(debug): .field("_fp_ymm", &field._fp_ymm) - .finish() - } - } impl hash::Hash for savefpu { fn hash(&self, state: &mut H) { self.fp_fxsave.hash(state); @@ -198,31 +163,6 @@ cfg_if! { } } 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("rax", &self.rax) - .field("rbx", &self.rbx) - .field("rcx", &self.rcx) - .field("rdx", &self.rdx) - .field("rdi", &self.rdi) - .field("rsi", &self.rsi) - .field("rbp", &self.rbp) - .field("r8", &self.r8) - .field("r9", &self.r9) - .field("r10", &self.r10) - .field("r11", &self.r11) - .field("r12", &self.r12) - .field("r13", &self.r13) - .field("r14", &self.r14) - .field("r15", &self.r15) - .field("rsp", &self.rsp) - .field("rip", &self.rip) - .field("rflags", &self.rflags) - .field("fpu", &self.fpu) - .finish() - } - } impl hash::Hash for mcontext_t { fn hash(&self, state: &mut H) { self.rax.hash(state); @@ -256,16 +196,6 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_link", &self.uc_link) - .field("uc_sigmask", &self.uc_sigmask) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .finish() - } - } impl hash::Hash for ucontext_t { fn hash(&self, state: &mut H) { self.uc_link.hash(state); diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index f32975bac4544..49bb076633ea2 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -1084,24 +1084,6 @@ cfg_if! { impl Eq for utmpx {} - impl fmt::Debug for utmpx { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utmpx") - .field("ut_type", &self.ut_type) - .field("ut_pid", &self.ut_pid) - .field("ut_line", &self.ut_line) - .field("ut_id", &self.ut_id) - .field("ut_user", &self.ut_user) - // FIXME(debug): .field("ut_host", &self.ut_host) - .field("ut_exit", &self.ut_exit) - .field("ut_session", &self.ut_session) - .field("ut_tv", &self.ut_tv) - .field("ut_addr_v6", &self.ut_addr_v6) - .field("__glibc_reserved", &self.__glibc_reserved) - .finish() - } - } - impl hash::Hash for utmpx { fn hash(&self, state: &mut H) { self.ut_type.hash(state); diff --git a/src/unix/linux_like/android/b32/arm.rs b/src/unix/linux_like/android/b32/arm.rs index a6170adc14d3f..b78c8a83623ea 100644 --- a/src/unix/linux_like/android/b32/arm.rs +++ b/src/unix/linux_like/android/b32/arm.rs @@ -65,14 +65,6 @@ cfg_if! { } } impl Eq for __c_anonymous_uc_sigmask_with_padding {} - impl fmt::Debug for __c_anonymous_uc_sigmask_with_padding { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("uc_sigmask_with_padding") - .field("uc_sigmask_with_padding", &self.uc_sigmask) - // Ignore padding - .finish() - } - } impl hash::Hash for __c_anonymous_uc_sigmask_with_padding { fn hash(&self, state: &mut H) { self.uc_sigmask.hash(state) @@ -104,22 +96,6 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field( - "uc_sigmask__c_anonymous_union", - &self.uc_sigmask__c_anonymous_union, - ) - .field("uc_regspace", &&self.uc_regspace[..]) - // Ignore padding field - .finish() - } - } impl hash::Hash for ucontext_t { fn hash(&self, state: &mut H) { self.uc_flags.hash(state); diff --git a/src/unix/linux_like/android/b32/mod.rs b/src/unix/linux_like/android/b32/mod.rs index 42be94d425c72..43e739bd9592b 100644 --- a/src/unix/linux_like/android/b32/mod.rs +++ b/src/unix/linux_like/android/b32/mod.rs @@ -181,18 +181,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl fmt::Debug for sigset64_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sigset64_t") - .field("__bits", &self.__bits) - .finish() - } - } - } -} - // These constants must be of the same type of sigaction.sa_flags pub const SA_NOCLDSTOP: c_int = 0x00000001; pub const SA_NOCLDWAIT: c_int = 0x00000002; diff --git a/src/unix/linux_like/android/b32/x86/mod.rs b/src/unix/linux_like/android/b32/x86/mod.rs index 2acbe7712eb77..edbfd38552cb5 100644 --- a/src/unix/linux_like/android/b32/x86/mod.rs +++ b/src/unix/linux_like/android/b32/x86/mod.rs @@ -67,14 +67,6 @@ cfg_if! { } } impl Eq for __c_anonymous_uc_sigmask_with_padding {} - impl fmt::Debug for __c_anonymous_uc_sigmask_with_padding { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("uc_sigmask_with_padding") - .field("uc_sigmask_with_padding", &self.uc_sigmask) - // Ignore padding - .finish() - } - } impl hash::Hash for __c_anonymous_uc_sigmask_with_padding { fn hash(&self, state: &mut H) { self.uc_sigmask.hash(state) @@ -105,21 +97,6 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field( - "uc_sigmask__c_anonymous_union", - &self.uc_sigmask__c_anonymous_union, - ) - // Ignore padding field - .finish() - } - } impl hash::Hash for ucontext_t { fn hash(&self, state: &mut H) { self.uc_flags.hash(state); diff --git a/src/unix/linux_like/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs index b507dac7a1227..b23c562cd8b7f 100644 --- a/src/unix/linux_like/android/b64/mod.rs +++ b/src/unix/linux_like/android/b64/mod.rs @@ -155,15 +155,6 @@ cfg_if! { impl Eq for pthread_mutex_t {} - impl fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_mutex_t") - .field("value", &self.value) - // FIXME(debug): .field("__reserved", &self.__reserved) - .finish() - } - } - impl hash::Hash for pthread_mutex_t { fn hash(&self, state: &mut H) { self.value.hash(state); @@ -184,15 +175,6 @@ cfg_if! { impl Eq for pthread_cond_t {} - impl fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_cond_t") - .field("value", &self.value) - // FIXME(debug): .field("__reserved", &self.__reserved) - .finish() - } - } - impl hash::Hash for pthread_cond_t { fn hash(&self, state: &mut H) { self.value.hash(state); @@ -217,19 +199,6 @@ cfg_if! { impl Eq for pthread_rwlock_t {} - impl fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_rwlock_t") - .field("numLocks", &self.numLocks) - .field("writerThreadId", &self.writerThreadId) - .field("pendingReaders", &self.pendingReaders) - .field("pendingWriters", &self.pendingWriters) - .field("attr", &self.attr) - // FIXME(debug): .field("__reserved", &self.__reserved) - .finish() - } - } - impl hash::Hash for pthread_rwlock_t { fn hash(&self, state: &mut H) { self.numLocks.hash(state); @@ -240,14 +209,6 @@ cfg_if! { self.__reserved.hash(state); } } - - impl fmt::Debug for sigset64_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sigset64_t") - .field("__bits", &self.__bits) - .finish() - } - } } } diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index ce2d70999856a..3288f05e076aa 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -195,15 +195,6 @@ cfg_if! { } } impl Eq for _libc_fpxreg {} - impl fmt::Debug for _libc_fpxreg { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("_libc_fpxreg") - .field("significand", &self.significand) - .field("exponent", &self.exponent) - // Ignore padding field - .finish() - } - } impl hash::Hash for _libc_fpxreg { fn hash(&self, state: &mut H) { self.significand.hash(state); @@ -228,23 +219,6 @@ cfg_if! { } } impl Eq for _libc_fpstate {} - impl fmt::Debug for _libc_fpstate { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("_libc_fpstate") - .field("cwd", &self.cwd) - .field("swd", &self.swd) - .field("ftw", &self.ftw) - .field("fop", &self.fop) - .field("rip", &self.rip) - .field("rdp", &self.rdp) - .field("mxcsr", &self.mxcsr) - .field("mxcr_mask", &self.mxcr_mask) - .field("_st", &self._st) - .field("_xmm", &self._xmm) - // Ignore padding field - .finish() - } - } impl hash::Hash for _libc_fpstate { fn hash(&self, state: &mut H) { self.cwd.hash(state); @@ -268,15 +242,6 @@ cfg_if! { } } 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("gregs", &self.gregs) - .field("fpregs", &self.fpregs) - // Ignore padding field - .finish() - } - } impl hash::Hash for mcontext_t { fn hash(&self, state: &mut H) { self.gregs.hash(state); @@ -296,18 +261,6 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_sigmask64", &self.uc_sigmask64) - // Ignore padding field - .finish() - } - } impl hash::Hash for ucontext_t { fn hash(&self, state: &mut H) { self.uc_flags.hash(state); @@ -341,24 +294,6 @@ cfg_if! { impl Eq for user_fpregs_struct {} - impl fmt::Debug for user_fpregs_struct { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("user_fpregs_struct") - .field("cwd", &self.cwd) - .field("swd", &self.swd) - .field("ftw", &self.ftw) - .field("fop", &self.fop) - .field("rip", &self.rip) - .field("rdp", &self.rdp) - .field("mxcsr", &self.mxcsr) - .field("mxcr_mask", &self.mxcr_mask) - .field("st_space", &self.st_space) - // FIXME(debug): .field("xmm_space", &self.xmm_space) - // Ignore padding field - .finish() - } - } - impl hash::Hash for user_fpregs_struct { fn hash(&self, state: &mut H) { self.cwd.hash(state); diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 5915d9dcb631c..3dee96e2123a0 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -660,15 +660,6 @@ cfg_if! { } } impl Eq for sockaddr_nl {} - impl fmt::Debug for sockaddr_nl { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_nl") - .field("nl_family", &self.nl_family) - .field("nl_pid", &self.nl_pid) - .field("nl_groups", &self.nl_groups) - .finish() - } - } impl hash::Hash for sockaddr_nl { fn hash(&self, state: &mut H) { self.nl_family.hash(state); @@ -693,18 +684,6 @@ cfg_if! { impl Eq for dirent {} - impl fmt::Debug for dirent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME(debug): .field("d_name", &self.d_name) - .finish() - } - } - impl hash::Hash for dirent { fn hash(&self, state: &mut H) { self.d_ino.hash(state); @@ -731,18 +710,6 @@ cfg_if! { impl Eq for dirent64 {} - impl fmt::Debug for dirent64 { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("dirent64") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME(debug): .field("d_name", &self.d_name) - .finish() - } - } - impl hash::Hash for dirent64 { fn hash(&self, state: &mut H) { self.d_ino.hash(state); @@ -765,18 +732,6 @@ cfg_if! { impl Eq for siginfo_t {} - impl fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("siginfo_t") - .field("si_signo", &self.si_signo) - .field("si_errno", &self.si_errno) - .field("si_code", &self.si_code) - // Ignore _pad - // Ignore _align - .finish() - } - } - impl hash::Hash for siginfo_t { fn hash(&self, state: &mut H) { self.si_signo.hash(state); @@ -805,16 +760,6 @@ cfg_if! { impl Eq for lastlog {} - impl fmt::Debug for lastlog { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("lastlog") - .field("ll_time", &self.ll_time) - .field("ll_line", &self.ll_line) - // FIXME(debug): .field("ll_host", &self.ll_host) - .finish() - } - } - impl hash::Hash for lastlog { fn hash(&self, state: &mut H) { self.ll_time.hash(state); @@ -853,24 +798,6 @@ cfg_if! { impl Eq for utmp {} - impl fmt::Debug for utmp { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utmp") - .field("ut_type", &self.ut_type) - .field("ut_pid", &self.ut_pid) - .field("ut_line", &self.ut_line) - .field("ut_id", &self.ut_id) - .field("ut_user", &self.ut_user) - // FIXME(debug): .field("ut_host", &self.ut_host) - .field("ut_exit", &self.ut_exit) - .field("ut_session", &self.ut_session) - .field("ut_tv", &self.ut_tv) - .field("ut_addr_v6", &self.ut_addr_v6) - .field("unused", &self.unused) - .finish() - } - } - impl hash::Hash for utmp { fn hash(&self, state: &mut H) { self.ut_type.hash(state); @@ -907,18 +834,6 @@ cfg_if! { impl Eq for sockaddr_alg {} - impl fmt::Debug for sockaddr_alg { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_alg") - .field("salg_family", &self.salg_family) - .field("salg_type", &self.salg_type) - .field("salg_feat", &self.salg_feat) - .field("salg_mask", &self.salg_mask) - .field("salg_name", &&self.salg_name[..]) - .finish() - } - } - impl hash::Hash for sockaddr_alg { fn hash(&self, state: &mut H) { self.salg_family.hash(state); @@ -938,16 +853,6 @@ cfg_if! { } impl Eq for uinput_setup {} - impl fmt::Debug for uinput_setup { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("uinput_setup") - .field("id", &self.id) - .field("name", &&self.name[..]) - .field("ff_effects_max", &self.ff_effects_max) - .finish() - } - } - impl hash::Hash for uinput_setup { fn hash(&self, state: &mut H) { self.id.hash(state); @@ -969,20 +874,6 @@ cfg_if! { } impl Eq for uinput_user_dev {} - impl fmt::Debug for uinput_user_dev { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("uinput_setup") - .field("name", &&self.name[..]) - .field("id", &self.id) - .field("ff_effects_max", &self.ff_effects_max) - .field("absmax", &&self.absmax[..]) - .field("absmin", &&self.absmin[..]) - .field("absfuzz", &&self.absfuzz[..]) - .field("absflat", &&self.absflat[..]) - .finish() - } - } - impl hash::Hash for uinput_user_dev { fn hash(&self, state: &mut H) { self.name.hash(state); @@ -995,24 +886,6 @@ cfg_if! { } } - 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 fmt::Debug for ifconf { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ifconf") - .field("ifc_len", &self.ifc_len) - .field("ifc_ifcu", &self.ifc_ifcu) - .finish() - } - } - #[allow(deprecated)] impl af_alg_iv { fn as_slice(&self) -> &[u8] { @@ -1030,15 +903,6 @@ cfg_if! { #[allow(deprecated)] impl Eq for af_alg_iv {} - #[allow(deprecated)] - impl fmt::Debug for af_alg_iv { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("af_alg_iv") - .field("ivlen", &self.ivlen) - .finish() - } - } - #[allow(deprecated)] impl hash::Hash for af_alg_iv { fn hash(&self, state: &mut H) { @@ -1054,15 +918,6 @@ cfg_if! { } } impl Eq for prop_info {} - impl fmt::Debug for prop_info { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("prop_info") - .field("__name", &self.__name) - .field("__serial", &self.__serial) - .field("__value", &self.__value) - .finish() - } - } } } diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 46d0d0f007433..deac314ce35c8 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -403,17 +403,6 @@ cfg_if! { } } impl Eq for dirent {} - impl fmt::Debug for dirent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME(debug): .field("d_name", &self.d_name) - .finish() - } - } impl hash::Hash for dirent { fn hash(&self, state: &mut H) { self.d_ino.hash(state); @@ -447,26 +436,6 @@ cfg_if! { } } impl Eq for sysinfo {} - impl fmt::Debug for sysinfo { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sysinfo") - .field("uptime", &self.uptime) - .field("loads", &self.loads) - .field("totalram", &self.totalram) - .field("freeram", &self.freeram) - .field("sharedram", &self.sharedram) - .field("bufferram", &self.bufferram) - .field("totalswap", &self.totalswap) - .field("freeswap", &self.freeswap) - .field("procs", &self.procs) - .field("pad", &self.pad) - .field("totalhigh", &self.totalhigh) - .field("freehigh", &self.freehigh) - .field("mem_unit", &self.mem_unit) - // FIXME(debug): .field("__reserved", &self.__reserved) - .finish() - } - } impl hash::Hash for sysinfo { fn hash(&self, state: &mut H) { self.uptime.hash(state); @@ -495,16 +464,6 @@ cfg_if! { } } impl Eq for mq_attr {} - impl fmt::Debug for mq_attr { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("mq_attr") - .field("mq_flags", &self.mq_flags) - .field("mq_maxmsg", &self.mq_maxmsg) - .field("mq_msgsize", &self.mq_msgsize) - .field("mq_curmsgs", &self.mq_curmsgs) - .finish() - } - } impl hash::Hash for mq_attr { fn hash(&self, state: &mut H) { self.mq_flags.hash(state); @@ -520,13 +479,6 @@ cfg_if! { } } impl Eq for pthread_cond_t {} - impl fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_cond_t") - // FIXME(debug): .field("size", &self.size) - .finish() - } - } impl hash::Hash for pthread_cond_t { fn hash(&self, state: &mut H) { self.size.hash(state); diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 5fb72e0b7206d..80d7be3891f3a 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -260,17 +260,6 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_link) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_sigmask", &self.uc_sigmask) - .finish() - } - } impl hash::Hash for ucontext_t { fn hash(&self, state: &mut H) { self.uc_flags.hash(state); diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 08d2f44eb9e97..0f23f0033417a 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -314,26 +314,6 @@ cfg_if! { impl Eq for user_fpxregs_struct {} - impl fmt::Debug for user_fpxregs_struct { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("user_fpxregs_struct") - .field("cwd", &self.cwd) - .field("swd", &self.swd) - .field("twd", &self.twd) - .field("fop", &self.fop) - .field("fip", &self.fip) - .field("fcs", &self.fcs) - .field("foo", &self.foo) - .field("fos", &self.fos) - .field("mxcsr", &self.mxcsr) - // Ignore __reserved field - .field("st_space", &self.st_space) - .field("xmm_space", &self.xmm_space) - // Ignore padding field - .finish() - } - } - impl hash::Hash for user_fpxregs_struct { fn hash(&self, state: &mut H) { self.cwd.hash(state); @@ -365,19 +345,6 @@ cfg_if! { impl Eq for ucontext_t {} - impl fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_sigmask", &self.uc_sigmask) - // Ignore __private field - .finish() - } - } - impl hash::Hash for ucontext_t { fn hash(&self, state: &mut H) { self.uc_flags.hash(state); diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 18684de36dc52..aa42a025db351 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -227,12 +227,6 @@ cfg_if! { impl Eq for fpreg_t {} - impl fmt::Debug for fpreg_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("fpreg_t").field("d", &self.d).finish() - } - } - impl hash::Hash for fpreg_t { fn hash(&self, state: &mut H) { let d: u64 = self.d.to_bits(); diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index 9bcc2717c7bd1..e76ae75125d17 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -346,23 +346,6 @@ cfg_if! { impl Eq for user_fpregs_struct {} - impl fmt::Debug for user_fpregs_struct { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("user_fpregs_struct") - .field("cwd", &self.cwd) - .field("ftw", &self.ftw) - .field("fop", &self.fop) - .field("rip", &self.rip) - .field("rdp", &self.rdp) - .field("mxcsr", &self.mxcsr) - .field("mxcr_mask", &self.mxcr_mask) - .field("st_space", &self.st_space) - // FIXME(debug): .field("xmm_space", &self.xmm_space) - // Ignore padding field - .finish() - } - } - impl hash::Hash for user_fpregs_struct { fn hash(&self, state: &mut H) { self.cwd.hash(state); @@ -391,19 +374,6 @@ cfg_if! { impl Eq for ucontext_t {} - impl fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_sigmask", &self.uc_sigmask) - // Ignore __private field - .finish() - } - } - impl hash::Hash for ucontext_t { fn hash(&self, state: &mut H) { self.uc_flags.hash(state); diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 3533e388f2451..4fc9a0aa2068b 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -455,19 +455,13 @@ impl siginfo_t { } } -pub union __c_anonymous_ptrace_syscall_info_data { - pub entry: __c_anonymous_ptrace_syscall_info_entry, - pub exit: __c_anonymous_ptrace_syscall_info_exit, - pub seccomp: __c_anonymous_ptrace_syscall_info_seccomp, -} -impl Copy for __c_anonymous_ptrace_syscall_info_data {} -impl Clone for __c_anonymous_ptrace_syscall_info_data { - fn clone(&self) -> __c_anonymous_ptrace_syscall_info_data { - *self +s_no_extra_traits! { + pub union __c_anonymous_ptrace_syscall_info_data { + pub entry: __c_anonymous_ptrace_syscall_info_entry, + pub exit: __c_anonymous_ptrace_syscall_info_exit, + pub seccomp: __c_anonymous_ptrace_syscall_info_seccomp, } -} -s_no_extra_traits! { pub struct utmpx { pub ut_type: c_short, pub ut_pid: crate::pid_t, @@ -537,24 +531,6 @@ cfg_if! { impl Eq for utmpx {} - impl fmt::Debug for utmpx { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utmpx") - .field("ut_type", &self.ut_type) - .field("ut_pid", &self.ut_pid) - .field("ut_line", &self.ut_line) - .field("ut_id", &self.ut_id) - .field("ut_user", &self.ut_user) - // FIXME(debug): .field("ut_host", &self.ut_host) - .field("ut_exit", &self.ut_exit) - .field("ut_session", &self.ut_session) - .field("ut_tv", &self.ut_tv) - .field("ut_addr_v6", &self.ut_addr_v6) - .field("__glibc_reserved", &self.__glibc_reserved) - .finish() - } - } - impl hash::Hash for utmpx { fn hash(&self, state: &mut H) { self.ut_type.hash(state); @@ -583,18 +559,6 @@ cfg_if! { impl Eq for __c_anonymous_ptrace_syscall_info_data {} - impl fmt::Debug for __c_anonymous_ptrace_syscall_info_data { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - unsafe { - f.debug_struct("__c_anonymous_ptrace_syscall_info_data") - .field("entry", &self.entry) - .field("exit", &self.exit) - .field("seccomp", &self.seccomp) - .finish() - } - } - } - impl hash::Hash for __c_anonymous_ptrace_syscall_info_data { fn hash(&self, state: &mut H) { unsafe { diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 6fcc4d49ec41d..9439ce257fffd 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1880,15 +1880,6 @@ cfg_if! { } } impl Eq for sockaddr_nl {} - impl fmt::Debug for sockaddr_nl { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_nl") - .field("nl_family", &self.nl_family) - .field("nl_pid", &self.nl_pid) - .field("nl_groups", &self.nl_groups) - .finish() - } - } impl hash::Hash for sockaddr_nl { fn hash(&self, state: &mut H) { self.nl_family.hash(state); @@ -1913,18 +1904,6 @@ cfg_if! { impl Eq for dirent {} - impl fmt::Debug for dirent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME(debug): .field("d_name", &self.d_name) - .finish() - } - } - impl hash::Hash for dirent { fn hash(&self, state: &mut H) { self.d_ino.hash(state); @@ -1951,18 +1930,6 @@ cfg_if! { impl Eq for dirent64 {} - impl fmt::Debug for dirent64 { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("dirent64") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME(debug): .field("d_name", &self.d_name) - .finish() - } - } - impl hash::Hash for dirent64 { fn hash(&self, state: &mut H) { self.d_ino.hash(state); @@ -1981,14 +1948,6 @@ cfg_if! { impl Eq for pthread_cond_t {} - impl fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_cond_t") - // FIXME(debug): .field("size", &self.size) - .finish() - } - } - impl hash::Hash for pthread_cond_t { fn hash(&self, state: &mut H) { self.size.hash(state); @@ -2003,14 +1962,6 @@ cfg_if! { impl Eq for pthread_mutex_t {} - impl fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_mutex_t") - // FIXME(debug): .field("size", &self.size) - .finish() - } - } - impl hash::Hash for pthread_mutex_t { fn hash(&self, state: &mut H) { self.size.hash(state); @@ -2025,14 +1976,6 @@ cfg_if! { impl Eq for pthread_rwlock_t {} - impl fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_rwlock_t") - // FIXME(debug): .field("size", &self.size) - .finish() - } - } - impl hash::Hash for pthread_rwlock_t { fn hash(&self, state: &mut H) { self.size.hash(state); @@ -2047,14 +1990,6 @@ cfg_if! { impl Eq for pthread_barrier_t {} - impl fmt::Debug for pthread_barrier_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_barrier_t") - .field("size", &self.size) - .finish() - } - } - impl hash::Hash for pthread_barrier_t { fn hash(&self, state: &mut H) { self.size.hash(state); @@ -2081,18 +2016,6 @@ cfg_if! { impl Eq for sockaddr_alg {} - impl fmt::Debug for sockaddr_alg { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_alg") - .field("salg_family", &self.salg_family) - .field("salg_type", &self.salg_type) - .field("salg_feat", &self.salg_feat) - .field("salg_mask", &self.salg_mask) - .field("salg_name", &&self.salg_name[..]) - .finish() - } - } - impl hash::Hash for sockaddr_alg { fn hash(&self, state: &mut H) { self.salg_family.hash(state); @@ -2112,16 +2035,6 @@ cfg_if! { } impl Eq for uinput_setup {} - impl fmt::Debug for uinput_setup { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("uinput_setup") - .field("id", &self.id) - .field("name", &&self.name[..]) - .field("ff_effects_max", &self.ff_effects_max) - .finish() - } - } - impl hash::Hash for uinput_setup { fn hash(&self, state: &mut H) { self.id.hash(state); @@ -2143,20 +2056,6 @@ cfg_if! { } impl Eq for uinput_user_dev {} - impl fmt::Debug for uinput_user_dev { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("uinput_setup") - .field("name", &&self.name[..]) - .field("id", &self.id) - .field("ff_effects_max", &self.ff_effects_max) - .field("absmax", &&self.absmax[..]) - .field("absmin", &&self.absmin[..]) - .field("absfuzz", &&self.absfuzz[..]) - .field("absflat", &&self.absflat[..]) - .finish() - } - } - impl hash::Hash for uinput_user_dev { fn hash(&self, state: &mut H) { self.name.hash(state); @@ -2186,15 +2085,6 @@ cfg_if! { #[allow(deprecated)] impl Eq for af_alg_iv {} - #[allow(deprecated)] - impl fmt::Debug for af_alg_iv { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("af_alg_iv") - .field("ivlen", &self.ivlen) - .finish() - } - } - #[allow(deprecated)] impl hash::Hash for af_alg_iv { fn hash(&self, state: &mut H) { @@ -2211,16 +2101,6 @@ cfg_if! { } } impl Eq for mq_attr {} - impl fmt::Debug for mq_attr { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("mq_attr") - .field("mq_flags", &self.mq_flags) - .field("mq_maxmsg", &self.mq_maxmsg) - .field("mq_msgsize", &self.mq_msgsize) - .field("mq_curmsgs", &self.mq_curmsgs) - .finish() - } - } impl hash::Hash for mq_attr { fn hash(&self, state: &mut H) { self.mq_flags.hash(state); @@ -2229,31 +2109,6 @@ cfg_if! { self.mq_curmsgs.hash(state); } } - 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 fmt::Debug for ifconf { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ifconf") - .field("ifc_len", &self.ifc_len) - .field("ifc_ifcu", &self.ifc_ifcu) - .finish() - } - } - impl fmt::Debug for hwtstamp_config { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("hwtstamp_config") - .field("flags", &self.flags) - .field("tx_type", &self.tx_type) - .field("rx_filter", &self.rx_filter) - .finish() - } - } impl PartialEq for hwtstamp_config { fn eq(&self, other: &hwtstamp_config) -> bool { self.flags == other.flags @@ -2270,20 +2125,6 @@ cfg_if! { } } - impl fmt::Debug for sched_attr { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sched_attr") - .field("size", &self.size) - .field("sched_policy", &self.sched_policy) - .field("sched_flags", &self.sched_flags) - .field("sched_nice", &self.sched_nice) - .field("sched_priority", &self.sched_priority) - .field("sched_runtime", &self.sched_runtime) - .field("sched_deadline", &self.sched_deadline) - .field("sched_period", &self.sched_period) - .finish() - } - } impl PartialEq for sched_attr { fn eq(&self, other: &sched_attr) -> bool { self.size == other.size @@ -2309,25 +2150,6 @@ cfg_if! { self.sched_period.hash(state); } } - - impl fmt::Debug for iw_event { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("iw_event") - .field("len", &self.len) - .field("cmd", &self.cmd) - .field("u", &self.u) - .finish() - } - } - - impl fmt::Debug for iwreq { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("iwreq") - .field("ifr_ifrn", &self.ifr_ifrn) - .field("u", &self.u) - .finish() - } - } } } diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index a79b3fa3729ed..b9be033a2c2c4 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -162,17 +162,6 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_link) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_sigmask", &self.uc_sigmask) - .finish() - } - } impl hash::Hash for ucontext_t { fn hash(&self, state: &mut H) { self.uc_flags.hash(state); diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index c42bed66900e4..583e0a51eacb0 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -167,26 +167,6 @@ cfg_if! { impl Eq for user_fpxregs_struct {} - impl fmt::Debug for user_fpxregs_struct { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("user_fpxregs_struct") - .field("cwd", &self.cwd) - .field("swd", &self.swd) - .field("twd", &self.twd) - .field("fop", &self.fop) - .field("fip", &self.fip) - .field("fcs", &self.fcs) - .field("foo", &self.foo) - .field("fos", &self.fos) - .field("mxcsr", &self.mxcsr) - // Ignore __reserved field - .field("st_space", &self.st_space) - .field("xmm_space", &self.xmm_space) - // Ignore padding field - .finish() - } - } - impl hash::Hash for user_fpxregs_struct { fn hash(&self, state: &mut H) { self.cwd.hash(state); @@ -222,19 +202,6 @@ cfg_if! { impl Eq for ucontext_t {} - impl fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_sigmask", &self.uc_sigmask) - // Ignore __private field - .finish() - } - } - impl hash::Hash for ucontext_t { fn hash(&self, state: &mut H) { self.uc_flags.hash(state); diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index fe9f798d00863..0f1062860d1ca 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -88,12 +88,6 @@ cfg_if! { impl Eq for fpreg_t {} - impl fmt::Debug for fpreg_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("fpreg_t").field("d", &self.d).finish() - } - } - impl hash::Hash for fpreg_t { fn hash(&self, state: &mut H) { let d: u64 = self.d.to_bits(); diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index c02744c5183dd..17a9f6ce47475 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -202,23 +202,6 @@ cfg_if! { impl Eq for user_fpregs_struct {} - impl fmt::Debug for user_fpregs_struct { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("user_fpregs_struct") - .field("cwd", &self.cwd) - .field("ftw", &self.ftw) - .field("fop", &self.fop) - .field("rip", &self.rip) - .field("rdp", &self.rdp) - .field("mxcsr", &self.mxcsr) - .field("mxcr_mask", &self.mxcr_mask) - .field("st_space", &self.st_space) - // FIXME(debug): .field("xmm_space", &self.xmm_space) - // Ignore padding field - .finish() - } - } - impl hash::Hash for user_fpregs_struct { fn hash(&self, state: &mut H) { self.cwd.hash(state); @@ -251,19 +234,6 @@ cfg_if! { impl Eq for ucontext_t {} - impl fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_sigmask", &self.uc_sigmask) - // Ignore __private field - .finish() - } - } - impl hash::Hash for ucontext_t { fn hash(&self, state: &mut H) { self.uc_flags.hash(state); diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 9931847672ad4..fb083fd54eea0 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -492,27 +492,6 @@ cfg_if! { impl Eq for sysinfo {} - impl fmt::Debug for sysinfo { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sysinfo") - .field("uptime", &self.uptime) - .field("loads", &self.loads) - .field("totalram", &self.totalram) - .field("freeram", &self.freeram) - .field("sharedram", &self.sharedram) - .field("bufferram", &self.bufferram) - .field("totalswap", &self.totalswap) - .field("freeswap", &self.freeswap) - .field("procs", &self.procs) - .field("pad", &self.pad) - .field("totalhigh", &self.totalhigh) - .field("freehigh", &self.freehigh) - .field("mem_unit", &self.mem_unit) - // FIXME(debug): .field("__reserved", &self.__reserved) - .finish() - } - } - impl hash::Hash for sysinfo { fn hash(&self, state: &mut H) { self.uptime.hash(state); @@ -557,27 +536,6 @@ cfg_if! { impl Eq for utmpx {} - impl fmt::Debug for utmpx { - #[allow(deprecated)] - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utmpx") - .field("ut_type", &self.ut_type) - //.field("__ut_pad1", &self.__ut_pad1) - .field("ut_pid", &self.ut_pid) - .field("ut_line", &self.ut_line) - .field("ut_id", &self.ut_id) - .field("ut_user", &self.ut_user) - //FIXME(debug): .field("ut_host", &self.ut_host) - .field("ut_exit", &self.ut_exit) - .field("ut_session", &self.ut_session) - //.field("__ut_pad2", &self.__ut_pad2) - .field("ut_tv", &self.ut_tv) - .field("ut_addr_v6", &self.ut_addr_v6) - .field("__unused", &self.__unused) - .finish() - } - } - impl hash::Hash for utmpx { #[allow(deprecated)] fn hash(&self, state: &mut H) { diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 2d9b8ec9d9535..a2969e854fdc9 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -334,16 +334,6 @@ cfg_if! { } } impl Eq for epoll_event {} - impl fmt::Debug for epoll_event { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let events = self.events; - let u64 = self.u64; - f.debug_struct("epoll_event") - .field("events", &events) - .field("u64", &u64) - .finish() - } - } impl hash::Hash for epoll_event { fn hash(&self, state: &mut H) { let events = self.events; @@ -364,14 +354,6 @@ cfg_if! { } } impl Eq for sockaddr_un {} - impl fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_family", &self.sun_family) - // FIXME(debug): .field("sun_path", &self.sun_path) - .finish() - } - } impl hash::Hash for sockaddr_un { fn hash(&self, state: &mut H) { self.sun_family.hash(state); @@ -392,16 +374,6 @@ cfg_if! { impl Eq for sockaddr_storage {} - impl fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_family", &self.ss_family) - .field("__ss_align", &self.__ss_align) - // FIXME(debug): .field("__ss_pad2", &self.__ss_pad2) - .finish() - } - } - impl hash::Hash for sockaddr_storage { fn hash(&self, state: &mut H) { self.ss_family.hash(state); @@ -445,19 +417,6 @@ cfg_if! { impl Eq for utsname {} - impl fmt::Debug for utsname { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utsname") - // FIXME(debug): .field("sysname", &self.sysname) - // FIXME(debug): .field("nodename", &self.nodename) - // FIXME(debug): .field("release", &self.release) - // FIXME(debug): .field("version", &self.version) - // FIXME(debug): .field("machine", &self.machine) - // FIXME(debug): .field("domainname", &self.domainname) - .finish() - } - } - impl hash::Hash for utsname { fn hash(&self, state: &mut H) { self.sysname.hash(state); @@ -478,16 +437,6 @@ cfg_if! { } } impl Eq for sigevent {} - impl fmt::Debug for sigevent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sigevent") - .field("sigev_value", &self.sigev_value) - .field("sigev_signo", &self.sigev_signo) - .field("sigev_notify", &self.sigev_notify) - .field("sigev_notify_thread_id", &self.sigev_notify_thread_id) - .finish() - } - } impl hash::Hash for sigevent { fn hash(&self, state: &mut H) { self.sigev_value.hash(state); diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 209fd3b695e99..581b99e6728f0 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -811,16 +811,6 @@ cfg_if! { } } impl Eq for sigevent {} - impl fmt::Debug for sigevent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sigevent") - .field("sigev_notify", &self.sigev_notify) - .field("sigev_signo", &self.sigev_signo) - .field("sigev_value", &self.sigev_value) - .field("__sigev_un2", &self.__sigev_un2) - .finish() - } - } impl hash::Hash for sigevent { fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); @@ -842,15 +832,6 @@ cfg_if! { } } impl Eq for sockaddr_un {} - impl fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_len", &self.sun_len) - .field("sun_family", &self.sun_family) - // FIXME(debug): .field("sun_path", &self.sun_path) - .finish() - } - } impl hash::Hash for sockaddr_un { fn hash(&self, state: &mut H) { @@ -867,13 +848,6 @@ cfg_if! { } } impl Eq for sigset_t {} - impl fmt::Debug for sigset_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sigset_t") - .field("__val", &self.__val) - .finish() - } - } impl hash::Hash for sigset_t { fn hash(&self, state: &mut H) { self.__val.hash(state); @@ -881,50 +855,10 @@ cfg_if! { } // msg - impl fmt::Debug for msg { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("msg") - .field("msg_next", &self.msg_next) - .field("msg_type", &self.msg_type) - .field("msg_ts", &self.msg_ts) - .field("msg_spot", &self.msg_spot) - .finish() - } - } // msqid_ds - impl fmt::Debug for msqid_ds { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("msqid_ds") - .field("msg_perm", &self.msg_perm) - .field("msg_first", &self.msg_first) - .field("msg_cbytes", &self.msg_cbytes) - .field("msg_qnum", &self.msg_qnum) - .field("msg_qbytes", &self.msg_qbytes) - .field("msg_lspid", &self.msg_lspid) - .field("msg_lrpid", &self.msg_lrpid) - .field("msg_stime", &self.msg_stime) - .field("msg_rtime", &self.msg_rtime) - .field("msg_ctime", &self.msg_ctime) - .finish() - } - } // sockaddr_dl - impl fmt::Debug for sockaddr_dl { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_dl") - .field("sdl_len", &self.sdl_len) - .field("sdl_family", &self.sdl_family) - .field("sdl_index", &self.sdl_index) - .field("sdl_type", &self.sdl_type) - .field("sdl_nlen", &self.sdl_nlen) - .field("sdl_alen", &self.sdl_alen) - .field("sdl_slen", &self.sdl_slen) - .field("sdl_data", &self.sdl_data) - .finish() - } - } impl PartialEq for sockaddr_dl { fn eq(&self, other: &sockaddr_dl) -> bool { self.sdl_len == other.sdl_len @@ -955,73 +889,6 @@ cfg_if! { } } - // sync_t - impl fmt::Debug for sync_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sync_t") - .field("__owner", &self.__owner) - .field("__u", &self.__u) - .finish() - } - } - - // pthread_barrier_t - impl fmt::Debug for pthread_barrier_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_barrier_t") - .field("__pad", &self.__pad) - .finish() - } - } - - // pthread_rwlock_t - impl fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("pthread_rwlock_t") - .field("__active", &self.__active) - .field("__blockedwriters", &self.__blockedwriters) - .field("__blockedreaders", &self.__blockedreaders) - .field("__heavy", &self.__heavy) - .field("__lock", &self.__lock) - .field("__rcond", &self.__rcond) - .field("__wcond", &self.__wcond) - .field("__owner", &self.__owner) - .field("__spare", &self.__spare) - .finish() - } - } - - // syspage_entry - impl fmt::Debug for syspage_entry { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("syspage_entry") - .field("size", &self.size) - .field("total_size", &self.total_size) - .field("type_", &self.type_) - .field("num_cpu", &self.num_cpu) - .field("system_private", &self.system_private) - .field("old_asinfo", &self.old_asinfo) - .field("hwinfo", &self.hwinfo) - .field("old_cpuinfo", &self.old_cpuinfo) - .field("old_cacheattr", &self.old_cacheattr) - .field("qtime", &self.qtime) - .field("callout", &self.callout) - .field("callin", &self.callin) - .field("typed_strings", &self.typed_strings) - .field("strings", &self.strings) - .field("old_intrinfo", &self.old_intrinfo) - .field("smp", &self.smp) - .field("pminfo", &self.pminfo) - .field("old_mdriver", &self.old_mdriver) - .field("new_asinfo", &self.new_asinfo) - .field("new_cpuinfo", &self.new_cpuinfo) - .field("new_cacheattr", &self.new_cacheattr) - .field("new_intrinfo", &self.new_intrinfo) - .field("new_mdriver", &self.new_mdriver) - .finish() - } - } - impl PartialEq for utsname { fn eq(&self, other: &utsname) -> bool { self.sysname @@ -1053,18 +920,6 @@ cfg_if! { impl Eq for utsname {} - impl fmt::Debug for utsname { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utsname") - // FIXME(debug): .field("sysname", &self.sysname) - // FIXME(debug): .field("nodename", &self.nodename) - // FIXME(debug): .field("release", &self.release) - // FIXME(debug): .field("version", &self.version) - // FIXME(debug): .field("machine", &self.machine) - .finish() - } - } - impl hash::Hash for utsname { fn hash(&self, state: &mut H) { self.sysname.hash(state); @@ -1089,19 +944,6 @@ cfg_if! { impl Eq for mq_attr {} - impl fmt::Debug for mq_attr { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("mq_attr") - .field("mq_maxmsg", &self.mq_maxmsg) - .field("mq_msgsize", &self.mq_msgsize) - .field("mq_flags", &self.mq_flags) - .field("mq_curmsgs", &self.mq_curmsgs) - .field("mq_msgsize", &self.mq_msgsize) - .field("mq_sendwait", &self.mq_sendwait) - .field("mq_recvwait", &self.mq_recvwait) - .finish() - } - } impl hash::Hash for mq_attr { fn hash(&self, state: &mut H) { self.mq_maxmsg.hash(state); @@ -1129,18 +971,6 @@ cfg_if! { impl Eq for sockaddr_storage {} - impl fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_len", &self.ss_len) - .field("ss_family", &self.ss_family) - .field("__ss_pad1", &self.__ss_pad1) - .field("__ss_align", &self.__ss_align) - // FIXME(debug): .field("__ss_pad2", &self.__ss_pad2) - .finish() - } - } - impl hash::Hash for sockaddr_storage { fn hash(&self, state: &mut H) { self.ss_len.hash(state); @@ -1166,18 +996,6 @@ cfg_if! { impl Eq for dirent {} - impl fmt::Debug for dirent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_offset", &self.d_offset) - .field("d_reclen", &self.d_reclen) - .field("d_namelen", &self.d_namelen) - .field("d_name", &&self.d_name[..self.d_namelen as _]) - .finish() - } - } - impl hash::Hash for dirent { fn hash(&self, state: &mut H) { self.d_ino.hash(state); diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index d9900d1cb4fe7..a6676cfdc1f3e 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1305,18 +1305,6 @@ cfg_if! { impl Eq for dirent {} - impl fmt::Debug for dirent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME(debug): .field("d_name", &self.d_name) - .finish() - } - } - impl hash::Hash for dirent { fn hash(&self, state: &mut H) { self.d_ino.hash(state); @@ -1340,15 +1328,6 @@ cfg_if! { impl Eq for sockaddr_un {} - impl fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_family", &self.sun_family) - // FIXME(debug): .field("sun_path", &self.sun_path) - .finish() - } - } - impl hash::Hash for sockaddr_un { fn hash(&self, state: &mut H) { self.sun_family.hash(state); @@ -1370,16 +1349,6 @@ cfg_if! { impl Eq for sockaddr_storage {} - impl fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_family", &self.ss_family) - .field("__ss_align", &self.__ss_align) - // FIXME(debug): .field("__ss_padding", &self.__ss_padding) - .finish() - } - } - impl hash::Hash for sockaddr_storage { fn hash(&self, state: &mut H) { self.ss_family.hash(state); @@ -1424,19 +1393,6 @@ cfg_if! { impl Eq for utsname {} - impl fmt::Debug for utsname { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utsname") - // FIXME(debug): .field("sysname", &self.sysname) - // FIXME(debug): .field("nodename", &self.nodename) - // FIXME(debug): .field("release", &self.release) - // FIXME(debug): .field("version", &self.version) - // FIXME(debug): .field("machine", &self.machine) - // FIXME(debug): .field("domainname", &self.domainname) - .finish() - } - } - impl hash::Hash for utsname { fn hash(&self, state: &mut H) { self.sysname.hash(state); diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index 3cb68e4d6fca4..fbeadaf344fa0 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -89,24 +89,6 @@ cfg_if! { impl Eq for utmpx {} - impl fmt::Debug for utmpx { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utmpx") - .field("ut_user", &self.ut_user) - .field("ut_id", &self.ut_id) - .field("ut_line", &self.ut_line) - .field("ut_pid", &self.ut_pid) - .field("ut_type", &self.ut_type) - .field("ut_exit", &self.ut_exit) - .field("ut_tv", &self.ut_tv) - .field("ut_session", &self.ut_session) - .field("ut_pad", &self.ut_pad) - .field("ut_syslen", &self.ut_syslen) - .field("ut_host", &&self.ut_host[..]) - .finish() - } - } - impl hash::Hash for utmpx { fn hash(&self, state: &mut H) { self.ut_user.hash(state); @@ -129,16 +111,6 @@ cfg_if! { } } impl Eq for epoll_event {} - impl fmt::Debug for epoll_event { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let events = self.events; - let u64 = self.u64; - f.debug_struct("epoll_event") - .field("events", &events) - .field("u64", &u64) - .finish() - } - } impl hash::Hash for epoll_event { fn hash(&self, state: &mut H) { let events = self.events; diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 605e35ca53bf9..9f90c4cbaaedc 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -585,14 +585,6 @@ cfg_if! { } } impl Eq for sockaddr_un {} - impl fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_family", &self.sun_family) - // FIXME(debug): .field("sun_path", &self.sun_path) - .finish() - } - } impl hash::Hash for sockaddr_un { fn hash(&self, state: &mut H) { self.sun_family.hash(state); @@ -629,17 +621,6 @@ cfg_if! { } } impl Eq for utsname {} - impl fmt::Debug for utsname { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utsname") - // FIXME(debug): .field("sysname", &self.sysname) - // FIXME(debug): .field("nodename", &self.nodename) - // FIXME(debug): .field("release", &self.release) - // FIXME(debug): .field("version", &self.version) - // FIXME(debug): .field("machine", &self.machine) - .finish() - } - } impl hash::Hash for utsname { fn hash(&self, state: &mut H) { self.sysname.hash(state); @@ -659,13 +640,6 @@ cfg_if! { } } impl Eq for fd_set {} - impl fmt::Debug for fd_set { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("fd_set") - // FIXME(debug): .field("fds_bits", &self.fds_bits) - .finish() - } - } impl hash::Hash for fd_set { fn hash(&self, state: &mut H) { self.fds_bits.hash(state); @@ -685,16 +659,6 @@ cfg_if! { } } impl Eq for sockaddr_storage {} - impl fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_family", &self.ss_family) - .field("__ss_pad1", &self.__ss_pad1) - .field("__ss_align", &self.__ss_align) - // FIXME(debug): .field("__ss_pad2", &self.__ss_pad2) - .finish() - } - } impl hash::Hash for sockaddr_storage { fn hash(&self, state: &mut H) { self.ss_family.hash(state); @@ -754,16 +718,6 @@ cfg_if! { } } impl Eq for siginfo_t {} - impl fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("siginfo_t") - .field("si_signo", &self.si_signo) - .field("si_code", &self.si_code) - .field("si_errno", &self.si_errno) - // FIXME(debug): .field("__pad", &self.__pad) - .finish() - } - } impl hash::Hash for siginfo_t { fn hash(&self, state: &mut H) { self.si_signo.hash(state); @@ -794,19 +748,6 @@ cfg_if! { } } impl Eq for sockaddr_dl {} - impl fmt::Debug for sockaddr_dl { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_dl") - .field("sdl_family", &self.sdl_family) - .field("sdl_index", &self.sdl_index) - .field("sdl_type", &self.sdl_type) - .field("sdl_nlen", &self.sdl_nlen) - .field("sdl_alen", &self.sdl_alen) - .field("sdl_slen", &self.sdl_slen) - // FIXME(debug): .field("sdl_data", &self.sdl_data) - .finish() - } - } impl hash::Hash for sockaddr_dl { fn hash(&self, state: &mut H) { self.sdl_family.hash(state); @@ -829,17 +770,6 @@ cfg_if! { } } impl Eq for sigevent {} - impl fmt::Debug for sigevent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sigevent") - .field("sigev_notify", &self.sigev_notify) - .field("sigev_signo", &self.sigev_signo) - .field("sigev_value", &self.sigev_value) - .field("ss_sp", &self.ss_sp) - .field("sigev_notify_attributes", &self.sigev_notify_attributes) - .finish() - } - } impl hash::Hash for sigevent { fn hash(&self, state: &mut H) { self.sigev_notify.hash(state); diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index 7baa8a1a2b675..097ff1c9cd6bd 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -125,24 +125,6 @@ cfg_if! { impl Eq for utmpx {} - impl fmt::Debug for utmpx { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("utmpx") - .field("ut_user", &self.ut_user) - .field("ut_id", &self.ut_id) - .field("ut_line", &self.ut_line) - .field("ut_pid", &self.ut_pid) - .field("ut_type", &self.ut_type) - .field("ut_exit", &self.ut_exit) - .field("ut_tv", &self.ut_tv) - .field("ut_session", &self.ut_session) - .field("pad", &self.pad) - .field("ut_syslen", &self.ut_syslen) - .field("ut_host", &&self.ut_host[..]) - .finish() - } - } - impl hash::Hash for utmpx { fn hash(&self, state: &mut H) { self.ut_user.hash(state); diff --git a/src/unix/solarish/x86_64.rs b/src/unix/solarish/x86_64.rs index 2f82d244863aa..a45ca4b7d0976 100644 --- a/src/unix/solarish/x86_64.rs +++ b/src/unix/solarish/x86_64.rs @@ -118,27 +118,12 @@ cfg_if! { } } impl Eq for fpregset_t {} - impl fmt::Debug for fpregset_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("fpregset_t") - .field("fp_reg_set", &self.fp_reg_set) - .finish() - } - } impl PartialEq for mcontext_t { fn eq(&self, other: &mcontext_t) -> bool { self.gregs == other.gregs && self.fpregs == other.fpregs } } 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("gregs", &self.gregs) - .field("fpregs", &self.fpregs) - .finish() - } - } impl PartialEq for ucontext_t { fn eq(&self, other: &ucontext_t) -> bool { self.uc_flags == other.uc_flags @@ -150,18 +135,6 @@ cfg_if! { } } impl Eq for ucontext_t {} - impl fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_sigmask", &self.uc_sigmask) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_filler", &self.uc_filler) - .finish() - } - } } } diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 793379dcdd792..deef310db8e0f 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -454,53 +454,6 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { - impl fmt::Debug for dirent { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_name", &&self.d_name[..]) - .field("d_type", &self.d_type) - .finish() - } - } - - impl fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_len", &self.sun_len) - .field("sun_family", &self.sun_family) - .field("sun_path", &&self.sun_path[..]) - .finish() - } - } - - impl fmt::Debug for RTP_DESC { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("RTP_DESC") - .field("status", &self.status) - .field("options", &self.options) - .field("entrAddr", &self.entrAddr) - .field("initTaskId", &self.initTaskId) - .field("parentId", &self.parentId) - .field("pathName", &&self.pathName[..]) - .field("taskCnt", &self.taskCnt) - .field("textStart", &self.textStart) - .field("textEnd", &self.textEnd) - .finish() - } - } - impl fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_len", &self.ss_len) - .field("ss_family", &self.ss_family) - .field("__ss_pad1", &&self.__ss_pad1[..]) - .field("__ss_align", &self.__ss_align) - .field("__ss_pad2", &&self.__ss_pad2[..]) - .finish() - } - } - impl PartialEq for sa_u_t { fn eq(&self, other: &sa_u_t) -> bool { unsafe { From 9810e4b6df50642a74b71758c94754d65cfad09e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 2 Jun 2025 05:37:38 +0000 Subject: [PATCH 0673/1228] hurd: Fix build from missing `fpos_t` In 872642ad ("gnu: Add proper structs for fpos_t and fpos64_t"), `fpos_t` was changed from an opaque struct to one with a definition on Linux GNU, with the Unix fallback configured as for targets without a GNU `target_env`. However, GNU hurd matches `target_env = "gnu"`, but doesn't have a `fpos` implementation. Fix the build by adjusting the fallback `cfg` to be more specific. Eventually we probably want the same definition on Hurd as on Linux. (backport ) (cherry picked from commit 72f49c99656e70eb70e20b444f3be85f3302f306) --- src/unix/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 78331310ccabc..96209e7e72cd7 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -567,7 +567,7 @@ cfg_if! { } cfg_if! { - if #[cfg(not(target_env = "gnu"))] { + if #[cfg(not(all(target_os = "linux", target_env = "gnu")))] { missing! { #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum fpos_t {} // FIXME(unix): fill this out with a struct From 2a04153cdaf5b620d0a726938b3acde0a0834a3c Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 2 Jun 2025 00:50:12 +0000 Subject: [PATCH 0674/1228] ci: Disable the i686 Android job This job has been failing a lot due to failures installing packages: > [ 5/13] RUN apt-get install -y --no-install-recommends file wget ca-certificates python3 unzip expect openjdk-8-jre libstdc++6:i386 libpulse0: 8.400 E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/libx/libxcb/libxcb-randr0_1.17.0-2_amd64.deb 403 Forbidden [IP: 185.125.190.82 80] 8.400 E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/libx/libxcb/libxcb-shm0_1.17.0-2_amd64.deb 403 Forbidden [IP: 185.125.190.82 80] 8.400 E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/libx/libxcb/libxcb-sync1_1.17.0-2_amd64.deb 403 Forbidden [IP: 185.125.190.82 80] 8.400 E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/libx/libxcb/libxcb-xfixes0_1.17.0-2_amd64.deb 403 Forbidden [IP: 185.125.190.82 80] 8.400 E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/libx/libxfixes/libxfixes3_6.0.0-2build1_amd64.deb 403 Forbidden [IP: 185.125.190.82 80] 8.400 E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/libx/libxshmfence/libxshmfence1_1.3-1build5_amd64.deb 403 Forbidden [IP: 185.125.190.82 80] 8.400 E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1build4_amd64.deb 403 Forbidden [IP: 185.125.190.82 80] 8.400 E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.122-1_amd64.deb 403 Forbidden [IP: 185.125.190.82 80] 8.400 E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/libp/libpciaccess/libpciaccess0_0.17-3build1_amd64.deb 403 Forbidden [IP: 185.125.190.82 80] 8.400 E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? Assume that this is a temporary problem on the repository side and disable the job for now. Issue regarding Android CI: https://github.com/rust-lang/libc/issues/4297 (backport ) (cherry picked from commit eba1e9da88fd5a9aa5462c541f8486b3d5fddd75) --- .github/workflows/ci.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 97abaef3f23f5..41bbd9970a106 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -178,7 +178,8 @@ jobs: - aarch64-unknown-linux-musl - arm-linux-androideabi - arm-unknown-linux-musleabihf - - i686-linux-android + # FIXME(#4297): Disabled due to spurious failueSome android jobs are disabled because of high rates of + # - i686-linux-android - i686-unknown-linux-musl - loongarch64-unknown-linux-gnu - loongarch64-unknown-linux-musl From a8e40d74139b43feb493d9356f0cbc4faa096cff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Jun 2025 15:26:30 +0000 Subject: [PATCH 0675/1228] build(deps): bump vmactions/solaris-vm from 1.1.3 to 1.1.4 Bumps [vmactions/solaris-vm](https://github.com/vmactions/solaris-vm) from 1.1.3 to 1.1.4. - [Release notes](https://github.com/vmactions/solaris-vm/releases) - [Commits](https://github.com/vmactions/solaris-vm/compare/v1.1.3...v1.1.4) --- updated-dependencies: - dependency-name: vmactions/solaris-vm dependency-version: 1.1.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] (backport ) (cherry picked from commit c3cf1dec4c8553fe049536c050527e3f0343bae9) --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 41bbd9970a106..86467f799f0f2 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -275,7 +275,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: test on Solaris - uses: vmactions/solaris-vm@v1.1.3 + uses: vmactions/solaris-vm@v1.1.4 with: release: "11.4-gcc" usesh: true From 600d8adc2166cf8e95293b7caf2608d263c08b9f Mon Sep 17 00:00:00 2001 From: mbyx Date: Sun, 1 Jun 2025 23:05:28 +0500 Subject: [PATCH 0676/1228] Add ctest-next stub and expected dependencies (backport ) [ remove dependencies so this can remain a stub - Trevor ] (cherry picked from commit 0763c6553ad3e012509936c8b3a3ff54930e2bbe) --- Cargo.toml | 1 + ctest-next/Cargo.toml | 8 ++++++++ ctest-next/src/lib.rs | 14 ++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 ctest-next/Cargo.toml create mode 100644 ctest-next/src/lib.rs diff --git a/Cargo.toml b/Cargo.toml index 0f6a6a7e54b88..1bdf875fc91f7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -148,6 +148,7 @@ use_std = ['std'] [workspace] members = [ "ctest", + "ctest-next", "libc-test", ] diff --git a/ctest-next/Cargo.toml b/ctest-next/Cargo.toml new file mode 100644 index 0000000000000..b30a6b30eab76 --- /dev/null +++ b/ctest-next/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "ctest-next" +version = "0.1.0" +edition = "2021" +rust-version = "1.77" +license = "MIT OR Apache-2.0" +repository = "https://github.com/rust-lang/libc" +publish = false diff --git a/ctest-next/src/lib.rs b/ctest-next/src/lib.rs new file mode 100644 index 0000000000000..7d12d9af8195b --- /dev/null +++ b/ctest-next/src/lib.rs @@ -0,0 +1,14 @@ +pub fn add(left: usize, right: usize) -> usize { + left + right +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn it_works() { + let result = add(2, 2); + assert_eq!(result, 4); + } +} From 6595c614b499afcdcbfcd288e2d5cce4acbc2737 Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Tue, 3 Jun 2025 10:53:42 -0400 Subject: [PATCH 0677/1228] Add AIX triple to Cargo.toml for doc. (backport ) (cherry picked from commit 187707b89aaf7470dc858a4b21f29ec121ad68f7) --- Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Cargo.toml b/Cargo.toml index 1bdf875fc91f7..8ea9997cb7661 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -73,6 +73,7 @@ targets = [ "powerpc-unknown-netbsd", "powerpc-wrs-vxworks", "powerpc-wrs-vxworks-spe", + "powerpc64-ibm-aix", "powerpc64-unknown-freebsd", "powerpc64-unknown-linux-gnu", "powerpc64-wrs-vxworks", From 53301c2052d506dcc170cf7ebe91c9f241896588 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 2 Jun 2025 05:46:30 +0000 Subject: [PATCH 0678/1228] lints: Warn rather than deny by default We check with `-Dwarnings` in CI, so these still get checked. This change serves to prevent failures to compile downstream if the lint expectations are not met on untested targets. (backport ) (cherry picked from commit 260e35720ae963cedec40941775200ec3fee16cf) --- src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 50aed357a82ab..a2c09ce58bab1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -25,8 +25,8 @@ // DIFF(1.0): The thread local references that raise this lint were removed in 1.0 #![cfg_attr(feature = "rustc-dep-of-std", allow(static_mut_refs))] // Enable extra lints: -#![cfg_attr(feature = "extra_traits", deny(missing_debug_implementations))] -#![deny(missing_copy_implementations, safe_packed_borrows)] +#![cfg_attr(feature = "extra_traits", warn(missing_debug_implementations))] +#![warn(missing_copy_implementations, safe_packed_borrows)] #![cfg_attr(not(feature = "rustc-dep-of-std"), no_std)] #![cfg_attr(feature = "rustc-dep-of-std", no_core)] From 7be1a7a7d818b6b92bb1ed726be985bc16869b5b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 2 Jun 2025 05:52:12 +0000 Subject: [PATCH 0679/1228] lints: Remove `allow(redundant_semicolons)` (backport ) (cherry picked from commit 0b6aa1b296ad12ea2062ae90a0cfe8688cdbef02) --- src/lib.rs | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index a2c09ce58bab1..879efcec48eae 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -7,9 +7,6 @@ bad_style, overflowing_literals, improper_ctypes, - // This lint is renamed but we run CI for old stable rustc so should be here. - redundant_semicolon, - redundant_semicolons, unused_macros, unused_macro_rules, // FIXME(1.0): temporarily allow dead_code to fix CI: From 1a418edf7cea22380c5c49b61079a5afc5762e8b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 2 Jun 2025 05:48:06 +0000 Subject: [PATCH 0680/1228] lints: Remove `allow(dead_code)` As discussed in [1], some changes to dead code warnings caused a lot of code to be inaccurately reported as dead in `libc`. The change was reverted and improved since then, so we no longer need to skip this check. Includes some changes to make things pass with the lint. [1]: https://github.com/rust-lang/libc/issues/3740 (backport ) (cherry picked from commit 77a21a816490ce7766dd653725c7e99743e4e315) --- src/lib.rs | 4 --- src/unix/linux_like/linux/arch/generic/mod.rs | 11 +++--- src/unix/linux_like/linux/arch/mips/mod.rs | 32 ++++++++--------- src/unix/linux_like/linux/arch/powerpc/mod.rs | 34 +++++++++++-------- .../linux/musl/b64/loongarch64/mod.rs | 2 -- src/unix/linux_like/linux/uclibc/mod.rs | 3 ++ src/unix/redox/mod.rs | 8 ----- src/unix/solarish/compat.rs | 7 ++-- 8 files changed, 49 insertions(+), 52 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 879efcec48eae..a96ffc6ffe8ed 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -9,10 +9,6 @@ improper_ctypes, unused_macros, unused_macro_rules, - // FIXME(1.0): temporarily allow dead_code to fix CI: - // - https://github.com/rust-lang/libc/issues/3740 - // - https://github.com/rust-lang/rust/pull/126456 - dead_code, )] #![cfg_attr(libc_deny_warnings, deny(warnings))] // Attributes needed when building as part of the standard library diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index 33d3cfbd6b436..465ceddeab64e 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -40,8 +40,6 @@ pub const SO_PASSCRED: c_int = 16; pub const SO_PEERCRED: c_int = 17; pub const SO_RCVLOWAT: c_int = 18; pub const SO_SNDLOWAT: c_int = 19; -const SO_RCVTIMEO_OLD: c_int = 20; -const SO_SNDTIMEO_OLD: c_int = 21; pub const SO_SECURITY_AUTHENTICATION: c_int = 22; pub const SO_SECURITY_ENCRYPTION_TRANSPORT: c_int = 23; pub const SO_SECURITY_ENCRYPTION_NETWORK: c_int = 24; @@ -50,9 +48,6 @@ pub const SO_ATTACH_FILTER: c_int = 26; pub const SO_DETACH_FILTER: c_int = 27; pub const SO_GET_FILTER: c_int = SO_ATTACH_FILTER; pub const SO_PEERNAME: c_int = 28; -const SO_TIMESTAMP_OLD: c_int = 29; -const SO_TIMESTAMPNS_OLD: c_int = 35; -const SO_TIMESTAMPING_OLD: c_int = 37; cfg_if! { if #[cfg(all( @@ -76,6 +71,12 @@ cfg_if! { pub const SO_RCVTIMEO: c_int = 66; pub const SO_SNDTIMEO: c_int = 67; } else { + const SO_TIMESTAMP_OLD: c_int = 29; + const SO_TIMESTAMPNS_OLD: c_int = 35; + const SO_TIMESTAMPING_OLD: c_int = 37; + const SO_RCVTIMEO_OLD: c_int = 20; + const SO_SNDTIMEO_OLD: c_int = 21; + pub const SO_TIMESTAMP: c_int = SO_TIMESTAMP_OLD; pub const SO_TIMESTAMPNS: c_int = SO_TIMESTAMPNS_OLD; pub const SO_TIMESTAMPING: c_int = SO_TIMESTAMPING_OLD; diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index bf58d5a145b82..ba688948a906d 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -33,16 +33,17 @@ pub const SO_SNDBUF: c_int = 0x1001; pub const SO_RCVBUF: c_int = 0x1002; pub const SO_SNDLOWAT: c_int = 0x1003; pub const SO_RCVLOWAT: c_int = 0x1004; -// NOTE: These definitions are now being renamed with _OLD postfix, -// but CI haven't support them yet. -// Some related consts could be found in b32.rs and b64.rs -const SO_SNDTIMEO_OLD: c_int = 0x1005; -const SO_RCVTIMEO_OLD: c_int = 0x1006; cfg_if! { if #[cfg(linux_time_bits64)] { + const SO_RCVTIMEO_NEW: c_int = 66; + const SO_SNDTIMEO_NEW: c_int = 67; + pub const SO_SNDTIMEO: c_int = SO_SNDTIMEO_NEW; pub const SO_RCVTIMEO: c_int = SO_RCVTIMEO_NEW; } else { + const SO_SNDTIMEO_OLD: c_int = 0x1005; + const SO_RCVTIMEO_OLD: c_int = 0x1006; + pub const SO_SNDTIMEO: c_int = SO_SNDTIMEO_OLD; pub const SO_RCVTIMEO: c_int = SO_RCVTIMEO_OLD; } @@ -95,28 +96,27 @@ pub const SO_ZEROCOPY: c_int = 60; pub const SO_TXTIME: c_int = 61; pub const SCM_TXTIME: c_int = SO_TXTIME; pub const SO_BINDTOIFINDEX: c_int = 62; -// NOTE: These definitions are now being renamed with _OLD postfix, -// but CI haven't support them yet. -// Some related consts could be found in b32.rs and b64.rs -const SO_TIMESTAMP_OLD: c_int = 29; -const SO_RCVTIMEO_NEW: c_int = 66; -const SO_SNDTIMEO_NEW: c_int = 67; -const SO_TIMESTAMPNS_OLD: c_int = 35; -const SO_TIMESTAMPING_OLD: c_int = 37; -const SO_TIMESTAMP_NEW: c_int = 63; -const SO_TIMESTAMPNS_NEW: c_int = 64; -const SO_TIMESTAMPING_NEW: c_int = 65; + cfg_if! { if #[cfg(linux_time_bits64)] { + const SO_TIMESTAMP_NEW: c_int = 63; + const SO_TIMESTAMPNS_NEW: c_int = 64; + const SO_TIMESTAMPING_NEW: c_int = 65; + pub const SO_TIMESTAMP: c_int = SO_TIMESTAMP_NEW; pub const SO_TIMESTAMPNS: c_int = SO_TIMESTAMPNS_NEW; pub const SO_TIMESTAMPING: c_int = SO_TIMESTAMPING_NEW; } else { + const SO_TIMESTAMP_OLD: c_int = 29; + const SO_TIMESTAMPNS_OLD: c_int = 35; + const SO_TIMESTAMPING_OLD: c_int = 37; + pub const SO_TIMESTAMP: c_int = SO_TIMESTAMP_OLD; pub const SO_TIMESTAMPNS: c_int = SO_TIMESTAMPNS_OLD; pub const SO_TIMESTAMPING: c_int = SO_TIMESTAMPING_OLD; } } + // pub const SO_DETACH_REUSEPORT_BPF: c_int = 68; pub const SO_PREFER_BUSY_POLL: c_int = 69; pub const SO_BUSY_POLL_BUDGET: c_int = 70; diff --git a/src/unix/linux_like/linux/arch/powerpc/mod.rs b/src/unix/linux_like/linux/arch/powerpc/mod.rs index 33a373ce1fa2f..3249a9f1b6a46 100644 --- a/src/unix/linux_like/linux/arch/powerpc/mod.rs +++ b/src/unix/linux_like/linux/arch/powerpc/mod.rs @@ -24,17 +24,23 @@ pub const SO_REUSEPORT: c_int = 15; // powerpc only differs in these pub const SO_RCVLOWAT: c_int = 16; pub const SO_SNDLOWAT: c_int = 17; + cfg_if! { if #[cfg(linux_time_bits64)] { - pub const SO_SNDTIMEO: c_int = 67; - pub const SO_RCVTIMEO: c_int = 66; + const SO_RCVTIMEO_NEW: c_int = 66; + const SO_SNDTIMEO_NEW: c_int = 67; + + pub const SO_RCVTIMEO: c_int = SO_RCVTIMEO_NEW; + pub const SO_SNDTIMEO: c_int = SO_SNDTIMEO_NEW; } else { - pub const SO_SNDTIMEO: c_int = 19; - pub const SO_RCVTIMEO: c_int = 18; + const SO_RCVTIMEO_OLD: c_int = 18; + const SO_SNDTIMEO_OLD: c_int = 19; + + pub const SO_RCVTIMEO: c_int = SO_RCVTIMEO_OLD; + pub const SO_SNDTIMEO: c_int = SO_SNDTIMEO_OLD; } } -// pub const SO_RCVTIMEO_OLD: c_int = 18; -// pub const SO_SNDTIMEO_OLD: c_int = 19; + pub const SO_PASSCRED: c_int = 20; pub const SO_PEERCRED: c_int = 21; // end @@ -48,18 +54,23 @@ pub const SO_GET_FILTER: c_int = SO_ATTACH_FILTER; pub const SO_PEERNAME: c_int = 28; cfg_if! { if #[cfg(linux_time_bits64)] { + const SO_TIMESTAMP_NEW: c_int = 63; + const SO_TIMESTAMPNS_NEW: c_int = 64; + const SO_TIMESTAMPING_NEW: c_int = 65; + pub const SO_TIMESTAMP: c_int = SO_TIMESTAMP_NEW; pub const SO_TIMESTAMPNS: c_int = SO_TIMESTAMPNS_NEW; pub const SO_TIMESTAMPING: c_int = SO_TIMESTAMPING_NEW; } else { + const SO_TIMESTAMP_OLD: c_int = 29; + const SO_TIMESTAMPNS_OLD: c_int = 35; + const SO_TIMESTAMPING_OLD: c_int = 37; + pub const SO_TIMESTAMP: c_int = SO_TIMESTAMP_OLD; pub const SO_TIMESTAMPNS: c_int = SO_TIMESTAMPNS_OLD; pub const SO_TIMESTAMPING: c_int = SO_TIMESTAMPING_OLD; } } -const SO_TIMESTAMP_OLD: c_int = 29; -const SO_TIMESTAMPNS_OLD: c_int = 35; -const SO_TIMESTAMPING_OLD: c_int = 37; pub const SO_ACCEPTCONN: c_int = 30; pub const SO_PEERSEC: c_int = 31; pub const SO_SNDBUFFORCE: c_int = 32; @@ -94,11 +105,6 @@ pub const SO_ZEROCOPY: c_int = 60; pub const SO_TXTIME: c_int = 61; pub const SCM_TXTIME: c_int = SO_TXTIME; pub const SO_BINDTOIFINDEX: c_int = 62; -const SO_TIMESTAMP_NEW: c_int = 63; -const SO_TIMESTAMPNS_NEW: c_int = 64; -const SO_TIMESTAMPING_NEW: c_int = 65; -const SO_RCVTIMEO_NEW: c_int = 66; -const SO_SNDTIMEO_NEW: c_int = 67; // pub const SO_DETACH_REUSEPORT_BPF: c_int = 68; pub const SO_PREFER_BUSY_POLL: c_int = 69; pub const SO_BUSY_POLL_BUDGET: c_int = 70; diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index 55ffc20c31dbd..17724b528415e 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -7,8 +7,6 @@ pub type wchar_t = c_int; pub type nlink_t = c_uint; pub type blksize_t = c_int; -pub type fsblkcnt64_t = c_ulong; -pub type fsfilcnt64_t = c_ulong; pub type __u64 = c_ulonglong; pub type __s64 = c_longlong; diff --git a/src/unix/linux_like/linux/uclibc/mod.rs b/src/unix/linux_like/linux/uclibc/mod.rs index b7a34dd3b6716..4fef82ed8e167 100644 --- a/src/unix/linux_like/linux/uclibc/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mod.rs @@ -1,3 +1,6 @@ +// FIXME(ulibc): this module has definitions that are redundant with the parent +#![allow(dead_code)] + use crate::off64_t; use crate::prelude::*; diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index a6676cfdc1f3e..859cdccde05cd 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1258,14 +1258,6 @@ extern "C" { ) -> ssize_t; pub fn recvmsg(socket: c_int, msg: *mut msghdr, flags: c_int) -> ssize_t; pub fn sendmsg(socket: c_int, msg: *const msghdr, flags: c_int) -> ssize_t; - pub fn sendto( - socket: c_int, - buf: *const c_void, - len: size_t, - flags: c_int, - addr: *const crate::sockaddr, - addrlen: crate::socklen_t, - ) -> ssize_t; // sys/stat.h pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; diff --git a/src/unix/solarish/compat.rs b/src/unix/solarish/compat.rs index 80d2835977f59..22bcf12edcc82 100644 --- a/src/unix/solarish/compat.rs +++ b/src/unix/solarish/compat.rs @@ -5,9 +5,6 @@ use core::cmp::min; use crate::unix::solarish::*; use crate::{c_char, c_int, size_t}; -const PTEM: &[u8] = b"ptem\0"; -const LDTERM: &[u8] = b"ldterm\0"; - pub unsafe fn cfmakeraw(termios: *mut crate::termios) { (*termios).c_iflag &= !(IMAXBEL | IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON); @@ -41,6 +38,7 @@ pub unsafe fn cfsetspeed(termios: *mut crate::termios, speed: crate::speed_t) -> 0 } +#[cfg(target_os = "illumos")] unsafe fn bail(fdm: c_int, fds: c_int) -> c_int { let e = *___errno(); if fds >= 0 { @@ -61,6 +59,9 @@ pub unsafe fn openpty( termp: *const termios, winp: *const crate::winsize, ) -> c_int { + const PTEM: &[u8] = b"ptem\0"; + const LDTERM: &[u8] = b"ldterm\0"; + // Open the main pseudo-terminal device, making sure not to set it as the // controlling terminal for this process: let fdm = crate::posix_openpt(O_RDWR | O_NOCTTY); From 2d0dfd33bae6edb450a520a0353ded672159c495 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 9 Jun 2025 20:24:56 +0000 Subject: [PATCH 0681/1228] chore: release libc 0.2.173 --- CHANGELOG.md | 37 +++++++++++++++++++++++++++++++++++++ Cargo.toml | 2 +- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 82a37cffc6e21..0adc302581864 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,42 @@ # Changelog + +## [0.2.173](https://github.com/rust-lang/libc/compare/0.2.172...0.2.173) - 2025-06-09 + +### Added + +- AIX: Add an AIX triple to Cargo.toml for doc ([#4475](https://github.com/rust-lang/libc/pull/4475)) +- FreeBSD: Add the `SO_SPLICE` socket option support for FreeBSD >= 14.2 ([#4451](https://github.com/rust-lang/libc/pull/4451)) +- Linux GNU: Prepare for supporting `_TIME_BITS=64` ([#4433](https://github.com/rust-lang/libc/pull/4433)) +- Linux: Add constant PACKET_IGNORE_OUTGOING ([#4319](https://github.com/rust-lang/libc/pull/4319)) +- Linux: Add constants and types for `nsfs` ioctls ([#4436](https://github.com/rust-lang/libc/pull/4436)) +- Linux: Add constants for Memory-Deny-Write-Execute `prctls` ([#4400](https://github.com/rust-lang/libc/pull/4400)) +- Linux: Add constants from `linux/cn_proc.h` and `linux/connector.h` ([#4434](https://github.com/rust-lang/libc/pull/4434)) +- Linux: Add new flags for `pwritev2` and `preadv2` ([#4452](https://github.com/rust-lang/libc/pull/4452)) +- Linux: Add pid_type enum values ([#4403](https://github.com/rust-lang/libc/pull/4403)) +- Linux: Update pidfd constants and types (Linux 6.9-6.15) ([#4402](https://github.com/rust-lang/libc/pull/4402)) +- Loongarch64 musl: Define the `MADV_SOFT_OFFLINE` constant ([#4448](https://github.com/rust-lang/libc/pull/4448)) +- Musl: Add new fields since 1.2.0/1.2.2 to `struct tcp_info` ([#4443](https://github.com/rust-lang/libc/pull/4443)) +- Musl: Prepare for supporting v1.2.3 ([#4443](https://github.com/rust-lang/libc/pull/4443)) +- NuttX: Add `arc4random` and `arc4random_buf` ([#4464](https://github.com/rust-lang/libc/pull/4464)) +- RISC-V Musl: Add `MADV_SOFT_OFFLINE` definition ([#4447](https://github.com/rust-lang/libc/pull/4447)) +- Redox: Define SCM_RIGHTS ([#4440](https://github.com/rust-lang/libc/pull/4440)) +- VxWorks: Add missing UTIME defines and TASK_RENAME_LENGTH ([#4407](https://github.com/rust-lang/libc/pull/4407)) +- Windows: Add more `time.h` functions ([#4427](https://github.com/rust-lang/libc/pull/4427)) + +### Changed + +- Redox: Update `SA_` constants. ([#4426](https://github.com/rust-lang/libc/pull/4426)) +- Redox: make `CMSG_ALIGN`, `CMSG_LEN`, and `CMSG_SPACE` const functions ([#4441](https://github.com/rust-lang/libc/pull/4441)) + +### Fixed + +- AIX: Enable libc-test and fix definitions/declarations. ([#4450](https://github.com/rust-lang/libc/pull/4450)) +- Emscripten: Fix querying emcc on windows (use emcc.bat) ([#4248](https://github.com/rust-lang/libc/pull/4248)) +- Hurd: Fix build from missing `fpos_t` ([#4472](https://github.com/rust-lang/libc/pull/4472)) +- Loongarch64 Musl: Fix the `struct ipc_perm` bindings ([#4384](https://github.com/rust-lang/libc/pull/4384)) +- Musl: Fix the `O_LARGEFILE` constant value. ([#4443](https://github.com/rust-lang/libc/pull/4443)) + ## [0.2.172](https://github.com/rust-lang/libc/compare/0.2.171...0.2.172) - 2025-04-14 ### Added diff --git a/Cargo.toml b/Cargo.toml index 8ea9997cb7661..bbe151dd55071 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.172" +version = "0.2.173" keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml"] From 6787debbcf474846d3e74f10e4090767555dc9b8 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 13 Jun 2025 16:51:18 +0000 Subject: [PATCH 0682/1228] Fix publishing on the `libc-0.2` branch In the cherry pick for d8e39a2823 ("chore: cleanup Cargo.toml and rm perl"), I accidentally picked up the `publish = false` line which isn't intended for this branch. Remove it so we get releases again. --- Cargo.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index bbe151dd55071..b9d9d73fd1d56 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,6 @@ keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml"] description = "Raw FFI bindings to platform libraries like libc." -publish = false # On the main branch, we don't want to publish anything authors = ["The Rust Project Developers"] edition = "2021" license = "MIT OR Apache-2.0" From 513405844c7dae4c3addc4066e3ac61bb68e4543 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 15 Jun 2025 22:35:16 +0000 Subject: [PATCH 0683/1228] Allow new `unpredictable_function_pointer_comparisons` lints These appeared in a recent nightly from our `PartialEq` derives. Add `allow`s where needed to suppress them, since removing the derive would be breaking. (backport ) [ applied to PSP as well - Trevor ] (cherry picked from commit e6378105c41a6bf525bd6a746db11e0c52ce172e) --- src/fuchsia/mod.rs | 2 ++ src/psp.rs | 14 ++++++++++++++ src/unix/bsd/apple/b64/x86_64/mod.rs | 2 ++ src/unix/bsd/freebsdlike/dragonfly/mod.rs | 2 ++ src/unix/cygwin/mod.rs | 2 ++ src/unix/haiku/native.rs | 3 +++ src/unix/linux_like/android/b32/mod.rs | 2 ++ src/unix/linux_like/android/b64/mod.rs | 2 ++ src/unix/linux_like/emscripten/mod.rs | 2 ++ src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 2 ++ src/unix/linux_like/linux/gnu/b32/csky/mod.rs | 2 ++ src/unix/linux_like/linux/gnu/b32/m68k/mod.rs | 2 ++ src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 2 ++ src/unix/linux_like/linux/gnu/b32/powerpc.rs | 2 ++ src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs | 2 ++ src/unix/linux_like/linux/gnu/b32/sparc/mod.rs | 2 ++ src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 2 ++ src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs | 2 ++ .../linux_like/linux/gnu/b64/loongarch64/mod.rs | 2 ++ src/unix/linux_like/linux/gnu/b64/mips64/mod.rs | 2 ++ src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs | 2 ++ src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs | 2 ++ src/unix/linux_like/linux/gnu/b64/s390x.rs | 2 ++ src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs | 2 ++ src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs | 2 ++ src/unix/linux_like/linux/musl/mod.rs | 2 ++ src/unix/linux_like/linux/uclibc/arm/mod.rs | 2 ++ src/unix/linux_like/linux/uclibc/x86_64/mod.rs | 2 ++ src/unix/nto/mod.rs | 2 ++ src/unix/nto/neutrino.rs | 2 ++ src/unix/redox/mod.rs | 2 ++ 31 files changed, 75 insertions(+) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index bfd71ff78dda7..22f9c6faf755b 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -292,6 +292,8 @@ s! { __dummy4: [c_char; 16], } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, diff --git a/src/psp.rs b/src/psp.rs index 56d528cff54c2..131ef3180332b 100644 --- a/src/psp.rs +++ b/src/psp.rs @@ -1415,6 +1415,8 @@ s! { pub stack: [u32; 8], } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct GeCallbackData { pub signal_func: Option, pub signal_arg: *mut c_void, @@ -1537,6 +1539,8 @@ s! { pub stack_mpid: SceUid, } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct SceKernelThreadInfo { pub size: usize, pub name: [u8; 32], @@ -1611,6 +1615,8 @@ s! { pub first_message: *mut c_void, } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct SceKernelVTimerInfo { pub size: usize, pub name: [u8; 32], @@ -1622,6 +1628,8 @@ s! { pub common: *mut c_void, } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct SceKernelThreadEventHandlerInfo { pub size: usize, pub name: [u8; 32], @@ -1631,6 +1639,8 @@ s! { pub common: *mut c_void, } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct SceKernelAlarmInfo { pub size: usize, pub schedule: SceKernelSysClock, @@ -1688,6 +1698,8 @@ s! { pub size: usize, } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct SceKernelCallbackInfo { pub size: usize, pub name: [u8; 32usize], @@ -1787,6 +1799,8 @@ s! { pub type_: UmdType, } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct SceMpegRingbuffer { pub packets: i32, pub unk0: u32, diff --git a/src/unix/bsd/apple/b64/x86_64/mod.rs b/src/unix/bsd/apple/b64/x86_64/mod.rs index aa5ab85c0268b..cfb1b8a8a5976 100644 --- a/src/unix/bsd/apple/b64/x86_64/mod.rs +++ b/src/unix/bsd/apple/b64/x86_64/mod.rs @@ -109,6 +109,8 @@ s! { _private: [crate::uintptr_t; 16], // FIXME(macos): keeping private for now } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct malloc_zone_t { _reserved1: *mut c_void, _reserved2: *mut c_void, diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 168c85094f5be..8ecb3336277dd 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -520,6 +520,8 @@ s_no_extra_traits! { pub mc_fpregs: [[c_uint; 8]; 32], } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct ucontext_t { pub uc_sigmask: crate::sigset_t, pub uc_mcontext: mcontext_t, diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 2986c7c74a7c4..b03c882027037 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -351,6 +351,8 @@ s! { pub cr2: u64, } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigevent { pub sigev_value: sigval, pub sigev_signo: c_int, diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs index a5a5e53491556..446c2fa0433e9 100644 --- a/src/unix/haiku/native.rs +++ b/src/unix/haiku/native.rs @@ -403,11 +403,14 @@ s! { } // kernel/image.h + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct image_info { pub id: image_id, pub image_type: c_int, pub sequence: i32, pub init_order: i32, + // FIXME(1.0): these should be made optional pub init_routine: extern "C" fn(), pub term_routine: extern "C" fn(), pub device: crate::dev_t, diff --git a/src/unix/linux_like/android/b32/mod.rs b/src/unix/linux_like/android/b32/mod.rs index 43e739bd9592b..d02dbf92d7924 100644 --- a/src/unix/linux_like/android/b32/mod.rs +++ b/src/unix/linux_like/android/b32/mod.rs @@ -12,6 +12,8 @@ pub type __u64 = c_ulonglong; pub type __s64 = c_longlong; s! { + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, diff --git a/src/unix/linux_like/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs index b23c562cd8b7f..e16c251a6d519 100644 --- a/src/unix/linux_like/android/b64/mod.rs +++ b/src/unix/linux_like/android/b64/mod.rs @@ -12,6 +12,8 @@ s! { __val: [c_ulong; 1], } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_flags: c_int, pub sa_sigaction: crate::sighandler_t, diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index deac314ce35c8..a7dc492edfea0 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -158,6 +158,8 @@ s! { pub sem_flg: c_short, } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 80d7be3891f3a..3f81de3545de6 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -4,6 +4,8 @@ use crate::{off64_t, off_t}; pub type wchar_t = u32; s! { + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, diff --git a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs index 89189e63302c4..b8f73e2d5414a 100644 --- a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs @@ -4,6 +4,8 @@ use crate::{off64_t, off_t}; pub type wchar_t = u32; s! { + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index b4c63c1df9b71..fe4b05f4e2a10 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -4,6 +4,8 @@ use crate::{off64_t, off_t}; pub type wchar_t = i32; s! { + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 6581d729e9923..507672f8a974c 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -163,6 +163,8 @@ s! { __f_spare: [c_int; 6], } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_flags: c_int, pub sa_sigaction: crate::sighandler_t, diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index d562aac3700a8..791f14956806d 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -4,6 +4,8 @@ use crate::{off64_t, off_t}; pub type wchar_t = i32; s! { + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, diff --git a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs index bcae7c2048bf9..d9599ddb582fc 100644 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -108,6 +108,8 @@ s! { pub ss_size: size_t, } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index 03760e72e5e93..cfe2101b4af77 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -6,6 +6,8 @@ use crate::{off64_t, off_t}; pub type wchar_t = i32; s! { + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 0f23f0033417a..da6af94375e4f 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -5,6 +5,8 @@ pub type wchar_t = i32; pub type greg_t = i32; s! { + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index 0e990f6006378..b310af8e4e531 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -11,6 +11,8 @@ pub type __u64 = c_ulonglong; pub type __s64 = c_longlong; s! { + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs index 6162565da17ca..c67177c7067f9 100644 --- a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs @@ -134,6 +134,8 @@ s! { __size: [c_ulong; 7], } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index 375ea40cb6a1d..8bd9542a62f1e 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -136,6 +136,8 @@ s! { __size: [c_ulong; 7], } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_flags: c_int, pub sa_sigaction: crate::sighandler_t, diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index e537dbcd0a86a..5073a8af7a41e 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -11,6 +11,8 @@ pub type __u64 = c_ulong; pub type __s64 = c_long; s! { + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index d689bb14c3ebf..6da6eeccca486 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -143,6 +143,8 @@ s! { pub ss_size: size_t, } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index aa42a025db351..029485c5b4a32 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -12,6 +12,8 @@ pub type __u64 = u64; pub type __s64 = i64; s! { + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, __glibc_reserved0: c_int, diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs index f77606e10cbf5..cdbd9b43b28c7 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -11,6 +11,8 @@ pub type __u64 = c_ulonglong; pub type __s64 = c_longlong; s! { + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index e76ae75125d17..ea8aeda42d63d 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -12,6 +12,8 @@ pub type __u64 = c_ulonglong; pub type __s64 = c_longlong; s! { + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index fb083fd54eea0..e2afbd860a1ce 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -142,6 +142,8 @@ s! { __dummy4: [c_char; 16], } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, diff --git a/src/unix/linux_like/linux/uclibc/arm/mod.rs b/src/unix/linux_like/linux/uclibc/arm/mod.rs index 7a517f4974694..c54d77b194c48 100644 --- a/src/unix/linux_like/linux/uclibc/arm/mod.rs +++ b/src/unix/linux_like/linux/uclibc/arm/mod.rs @@ -163,6 +163,8 @@ s! { __val: [c_ulong; 2], } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_flags: c_ulong, diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index 4a6c19fc97da3..fbc87be74125d 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -144,6 +144,8 @@ s! { st_pad4: [c_long; 3], } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_handler: crate::sighandler_t, pub sa_flags: c_ulong, diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 581b99e6728f0..7270beacacb5a 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -576,6 +576,8 @@ s! { re_g: *mut c_void, } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct _thread_attr { pub __flags: c_int, pub __stacksize: size_t, diff --git a/src/unix/nto/neutrino.rs b/src/unix/nto/neutrino.rs index 71a2301d1b968..8aac468009785 100644 --- a/src/unix/nto/neutrino.rs +++ b/src/unix/nto/neutrino.rs @@ -137,6 +137,8 @@ s! { pub ev: crate::__c_anonymous_struct_ev, } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct _sighandler_info { pub siginfo: crate::siginfo_t, pub handler: Option, diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 859cdccde05cd..9a79d0e280f0c 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -157,6 +157,8 @@ s! { pub pw_shell: *mut c_char, } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, pub sa_flags: c_ulong, From c08c5073efd877d7217bc32b5c6ec1b1248490d9 Mon Sep 17 00:00:00 2001 From: Collin Funk Date: Sun, 15 Jun 2025 15:40:18 -0700 Subject: [PATCH 0684/1228] openbsd: Fix some clippy warnings to use `pointer::cast`. (backport ) (cherry picked from commit 10b7252259cc6d23aba3c381f79a74e7ae86e702) --- src/unix/bsd/netbsdlike/openbsd/mod.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 3b3971692fe38..621b4038d0ccf 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -630,7 +630,7 @@ impl siginfo_t { _pad: [c_int; SI_PAD], _pid: crate::pid_t, } - (*(self as *const siginfo_t as *const siginfo_timer))._pid + (*(self as *const siginfo_t).cast::())._pid } pub unsafe fn si_uid(&self) -> crate::uid_t { @@ -643,7 +643,7 @@ impl siginfo_t { _pid: crate::pid_t, _uid: crate::uid_t, } - (*(self as *const siginfo_t as *const siginfo_timer))._uid + (*(self as *const siginfo_t).cast::())._uid } pub unsafe fn si_value(&self) -> crate::sigval { @@ -657,7 +657,7 @@ impl siginfo_t { _uid: crate::uid_t, value: crate::sigval, } - (*(self as *const siginfo_t as *const siginfo_timer)).value + (*(self as *const siginfo_t).cast::()).value } } From 1e99d50bc98ec6387efef17f9f44e978202bf083 Mon Sep 17 00:00:00 2001 From: The 8472 Date: Sat, 14 Jun 2025 15:44:10 +0200 Subject: [PATCH 0685/1228] make pidfd_info fields pub the struct appers to be extensible, so also mark it as non_exhaustive (backport ) (cherry picked from commit 4dc50ebfd4750a5b7459482aa2618387a0bdbb7f) --- src/unix/linux_like/linux/mod.rs | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 9439ce257fffd..992df6cffd92e 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1366,21 +1366,22 @@ s! { // linux/pidfd.h + #[non_exhaustive] pub struct pidfd_info { - mask: crate::__u64, - cgroupid: crate::__u64, - pid: crate::__u32, - tgid: crate::__u32, - ppid: crate::__u32, - ruid: crate::__u32, - rgid: crate::__u32, - euid: crate::__u32, - egid: crate::__u32, - suid: crate::__u32, - sgid: crate::__u32, - fsuid: crate::__u32, - fsgid: crate::__u32, - exit_code: crate::__s32, + pub mask: crate::__u64, + pub cgroupid: crate::__u64, + pub pid: crate::__u32, + pub tgid: crate::__u32, + pub ppid: crate::__u32, + pub ruid: crate::__u32, + pub rgid: crate::__u32, + pub euid: crate::__u32, + pub egid: crate::__u32, + pub suid: crate::__u32, + pub sgid: crate::__u32, + pub fsuid: crate::__u32, + pub fsgid: crate::__u32, + pub exit_code: crate::__s32, } // linux/uio.h From 790180ba16a40ab648fb7317ba39aff8f1a21ad9 Mon Sep 17 00:00:00 2001 From: Collin Funk Date: Sun, 15 Jun 2025 19:18:39 -0700 Subject: [PATCH 0686/1228] Remove unessecary semicolons from definitions of `CMSG_NXTHDR`. (backport ) (cherry picked from commit a2cf7c82ed85530e6262b0bc4d6f14bcda91777f) --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 2 +- src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 +- src/unix/bsd/netbsdlike/openbsd/mod.rs | 2 +- src/unix/haiku/mod.rs | 2 +- src/unix/hurd/mod.rs | 2 +- src/unix/linux_like/emscripten/mod.rs | 2 +- src/unix/solarish/mod.rs | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index bd4601576294a..de41a7c6d3ed6 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -4662,7 +4662,7 @@ f! { pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { return crate::CMSG_FIRSTHDR(mhdr); - }; + } let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 3addd5a8a6e36..7bcb55ac25d9e 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2295,7 +2295,7 @@ f! { pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { return crate::CMSG_FIRSTHDR(mhdr); - }; + } let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 621b4038d0ccf..d0bb4badac271 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1869,7 +1869,7 @@ f! { pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { return crate::CMSG_FIRSTHDR(mhdr); - }; + } let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(mem::size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 6b168a470bb02..9d04266c794da 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1533,7 +1533,7 @@ f! { pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { return crate::CMSG_FIRSTHDR(mhdr); - }; + } let next = cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize) + CMSG_ALIGN(mem::size_of::()); diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 49bb076633ea2..843e7f4c3915d 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -3445,7 +3445,7 @@ f! { pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if ((*cmsg).cmsg_len as usize) < mem::size_of::() { return core::ptr::null_mut::(); - }; + } let next = (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if (next.offset(1)) as usize > max diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index a7dc492edfea0..57d00d1879930 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -1367,7 +1367,7 @@ f! { pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if ((*cmsg).cmsg_len as usize) < mem::size_of::() { return core::ptr::null_mut::(); - }; + } let next = (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if (next.offset(1)) as usize > max { diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 9f90c4cbaaedc..addfbe054b85f 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -2422,7 +2422,7 @@ f! { pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { return crate::CMSG_FIRSTHDR(mhdr); - }; + } let next = _CMSG_HDR_ALIGN(cmsg as usize + (*cmsg).cmsg_len as usize + size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; From 7d92568ed609f0fef5814e71b6b7bd10925662b8 Mon Sep 17 00:00:00 2001 From: Huang Qi Date: Tue, 10 Jun 2025 16:43:07 +0800 Subject: [PATCH 0687/1228] fix: use nlink_t type for st_nlink in struct stat definition for NuttX (backport ) (cherry picked from commit 8620c2c249b6f1b99f026c0382c80ef03f497efc) --- src/unix/nuttx/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index de734f9e0f63d..69732d845b400 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -32,7 +32,7 @@ s! { pub st_dev: dev_t, pub st_ino: ino_t, pub st_mode: mode_t, - pub st_nlink: u64, + pub st_nlink: nlink_t, pub st_uid: u32, pub st_gid: u32, pub st_rdev: dev_t, From 264a5399ab6e29bf29eac5c29c9f771eb6d58f5b Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Mon, 16 Jun 2025 17:11:16 +0200 Subject: [PATCH 0688/1228] Add missing timespec.tv_nsec for gnux32 The tv_nsec field was removed by mistake for gnux32 in bbaa0173daa4 ("gnu: Update struct timespec for GNU _TIME_BITS=64"). Fixes #4495 Link: https://github.com/bminor/glibc/blob/d1b27eeda3d92f33314e93537437cab11ddf4777/time/bits/types/struct_timespec.h#L11-L31 [ add referenced commit summary and link to the message - Trevor ] (backport ) (cherry picked from commit e9bd0b43e0b6830072e5af3e7c6618ec62732363) --- src/unix/linux_like/linux/gnu/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 4fc9a0aa2068b..e1ee70b7428f4 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -366,6 +366,8 @@ s! { __pad: i32, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] pub tv_nsec: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub tv_nsec: i64, #[cfg(all(gnu_time_bits64, target_endian = "little"))] __pad: i32, } From ce31fdaf1c78d37536827983890229b041fcc299 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 17 Jun 2025 10:22:52 +0000 Subject: [PATCH 0689/1228] chore: release libc 0.2.174 --- CHANGELOG.md | 17 +++++++++++++++++ Cargo.toml | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0adc302581864..fa193e550288a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## [0.2.174](https://github.com/rust-lang/libc/compare/0.2.173...0.2.174) - 2025-06-17 + +### Added + +- Linux: Make `pidfd_info` fields pub ([#4487](https://github.com/rust-lang/libc/pull/4487)) + +### Fixed + +- Gnu x32: Add missing `timespec.tv_nsec` ([#4497](https://github.com/rust-lang/libc/pull/4497)) +- NuttX: Use `nlink_t` type for `st_nlink` in `struct stat` definition ([#4483](https://github.com/rust-lang/libc/pull/4483)) + +### Other + +- Allow new `unpredictable_function_pointer_comparisons` lints ([#4489](https://github.com/rust-lang/libc/pull/4489)) +- OpenBSD: Fix some clippy warnings to use `pointer::cast`. ([#4490](https://github.com/rust-lang/libc/pull/4490)) +- Remove unessecary semicolons from definitions of `CMSG_NXTHDR`. ([#4492](https://github.com/rust-lang/libc/pull/4492)) + ## [0.2.173](https://github.com/rust-lang/libc/compare/0.2.172...0.2.173) - 2025-06-09 diff --git a/Cargo.toml b/Cargo.toml index b9d9d73fd1d56..9ac66aaeabc01 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.173" +version = "0.2.174" keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml"] From 43dd31edad79a3b6ca14104d435936687b5af420 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 26 Jun 2025 07:21:20 -0500 Subject: [PATCH 0690/1228] ci: Run `cargo-semver-checks` This should eventually be able to replace the `.txt` files. --- .github/workflows/ci.yaml | 6 +++++- ci/verify-build.sh | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 86467f799f0f2..a18f93f51a426 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -67,10 +67,14 @@ jobs: run: | set -eux [ "${{ matrix.toolchain }}" = "1.63.0" ] && echo 'RUSTFLAGS=' >> "$GITHUB_ENV" || true - + - name: Setup Rust toolchain run: ./ci/install-rust.sh + - name: Install semver-checks + uses: taiki-e/install-action@cargo-semver-checks + if: matrix.toolchain == 'stable' + # FIXME(ci): These `du` statements are temporary for debugging cache - name: Target size before restoring cache run: du -sh target | sort -k 2 || true diff --git a/ci/verify-build.sh b/ci/verify-build.sh index 7def289221491..0cd8f89dd3005 100755 --- a/ci/verify-build.sh +++ b/ci/verify-build.sh @@ -11,6 +11,7 @@ set -eux rust="$TOOLCHAIN" filter="${FILTER:-}" +host_target=$(rustc -vV | awk '/^host/ { print $2 }') case "$(uname -s)" in Linux*) os=linux ;; @@ -25,6 +26,7 @@ esac echo "Testing Rust $rust on $os" if [ "$TOOLCHAIN" = "nightly" ] ; then + # For build-std rustup component add rust-src fi @@ -108,6 +110,13 @@ test_target() { $cmd --no-default-features done fi + + # FIXME(semver): can't pass `--target` to `cargo-semver-checks` + if [ "$rust" = "stable" ] && [ "$target" = "$host_target" ]; then + # Run semver checks on the stable channel + cargo semver-checks --only-explicit-features \ + --features std,extra_traits + fi } freebsd_versions="\ From fff24ebca34b3a45e19c21bdd39ebe2caa8405de Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 26 Jun 2025 07:34:14 -0500 Subject: [PATCH 0691/1228] ci: Don't test an unused feature `const-extern-fn` no longer does anything so we don't need to test for it. --- ci/verify-build.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/ci/verify-build.sh b/ci/verify-build.sh index 0cd8f89dd3005..a44ef0a181fc8 100755 --- a/ci/verify-build.sh +++ b/ci/verify-build.sh @@ -71,7 +71,6 @@ test_target() { # Test with expected combinations of features $cmd - $cmd --features const-extern-fn $cmd --features extra_traits if [ "$os" = "linux" ]; then From 2957e7c19c805a79e2a4472d916db5066f8054ea Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Wed, 2 Jul 2025 06:27:24 +0200 Subject: [PATCH 0692/1228] semver: powerpc64le: Move glibc-only symbols into separate file These aren't defined on musl. Split them up like done e.g. in loongarch64. Signed-off-by: Jens Reidel (backport ) (cherry picked from commit 27bf19c14b1338400145be51f0471832ed965a0a) --- libc-test/semver/linux-gnu-powerpc64le.txt | 14 ++++++++++++++ libc-test/semver/linux-powerpc64le.txt | 17 ----------------- 2 files changed, 14 insertions(+), 17 deletions(-) create mode 100644 libc-test/semver/linux-gnu-powerpc64le.txt diff --git a/libc-test/semver/linux-gnu-powerpc64le.txt b/libc-test/semver/linux-gnu-powerpc64le.txt new file mode 100644 index 0000000000000..148688c5ff20d --- /dev/null +++ b/libc-test/semver/linux-gnu-powerpc64le.txt @@ -0,0 +1,14 @@ +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 +max_align_t +sysctl diff --git a/libc-test/semver/linux-powerpc64le.txt b/libc-test/semver/linux-powerpc64le.txt index b4e5c4159a3d8..f6564fd2ae586 100644 --- a/libc-test/semver/linux-powerpc64le.txt +++ b/libc-test/semver/linux-powerpc64le.txt @@ -2,27 +2,12 @@ B2500000 B3000000 B3500000 B4000000 -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 -PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP -PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP -PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP SCM_TIMESTAMPNS SCM_WIFI_STATUS SIGSTKFLT @@ -159,5 +144,3 @@ TIOCGRS485 TIOCSBRK TIOCSRS485 flock64 -max_align_t -sysctl From 31c595a2351fa6aad3a4889eabd061f4da3ad1e1 Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Wed, 2 Jul 2025 06:32:09 +0200 Subject: [PATCH 0693/1228] semver: powerpc64(le): Rename powerpc64le files to powerpc64 CARGO_CFG_TARGET_ARCH is powerpc64 on both powerpc64 and powerpc64le. This would cause the powerpc64le semver files to be unused. Replace the powerpc64 files with the powerpc64le ones, they are compatible with each other and only differ in endianess. Linux, musl and glibc share the same code for both endian targets. See the cargo documentation: https://doc.rust-lang.org/reference/conditional-compilation.html#target_arch Signed-off-by: Jens Reidel (backport ) (cherry picked from commit 2881ee5fe892162df655cee7800f2f790f186348) --- ...owerpc64le.txt => linux-gnu-powerpc64.txt} | 0 libc-test/semver/linux-powerpc64.txt | 19 --- libc-test/semver/linux-powerpc64le.txt | 146 ------------------ 3 files changed, 165 deletions(-) rename libc-test/semver/{linux-gnu-powerpc64le.txt => linux-gnu-powerpc64.txt} (100%) delete mode 100644 libc-test/semver/linux-powerpc64le.txt diff --git a/libc-test/semver/linux-gnu-powerpc64le.txt b/libc-test/semver/linux-gnu-powerpc64.txt similarity index 100% rename from libc-test/semver/linux-gnu-powerpc64le.txt rename to libc-test/semver/linux-gnu-powerpc64.txt diff --git a/libc-test/semver/linux-powerpc64.txt b/libc-test/semver/linux-powerpc64.txt index 604add92838db..f6564fd2ae586 100644 --- a/libc-test/semver/linux-powerpc64.txt +++ b/libc-test/semver/linux-powerpc64.txt @@ -2,29 +2,12 @@ B2500000 B3000000 B3500000 B4000000 -Elf32_Rela -Elf64_Rela -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 -PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP -PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP -PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP SCM_TIMESTAMPNS SCM_WIFI_STATUS SIGSTKFLT @@ -161,5 +144,3 @@ TIOCGRS485 TIOCSBRK TIOCSRS485 flock64 -max_align_t -sysctl diff --git a/libc-test/semver/linux-powerpc64le.txt b/libc-test/semver/linux-powerpc64le.txt deleted file mode 100644 index f6564fd2ae586..0000000000000 --- a/libc-test/semver/linux-powerpc64le.txt +++ /dev/null @@ -1,146 +0,0 @@ -B2500000 -B3000000 -B3500000 -B4000000 -MADV_SOFT_OFFLINE -MAP_SYNC -NFT_MSG_DELOBJ -NFT_MSG_GETOBJ -NFT_MSG_GETOBJ_RESET -NFT_MSG_NEWOBJ -SCM_TIMESTAMPNS -SCM_WIFI_STATUS -SIGSTKFLT -SIGUNUSED -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_NOFCS -SO_NO_CHECK -SO_PEERNAME -SO_PRIORITY -SO_PROTOCOL -SO_SECURITY_AUTHENTICATION -SO_SECURITY_ENCRYPTION_NETWORK -SO_SECURITY_ENCRYPTION_TRANSPORT -SO_SELECT_ERR_QUEUE -SO_WIFI_STATUS -SYS__llseek -SYS__newselect -SYS__sysctl -SYS_accept -SYS_access -SYS_afs_syscall -SYS_alarm -SYS_bdflush -SYS_break -SYS_chmod -SYS_chown -SYS_creat -SYS_create_module -SYS_dup2 -SYS_epoll_create -SYS_epoll_wait -SYS_eventfd -SYS_fork -SYS_fstat -SYS_fstatfs64 -SYS_ftime -SYS_futimesat -SYS_get_kernel_syms -SYS_getdents -SYS_getpgrp -SYS_getpmsg -SYS_gtty -SYS_idle -SYS_inotify_init -SYS_ioperm -SYS_iopl -SYS_ipc -SYS_kexec_file_load -SYS_lchown -SYS_link -SYS_lock -SYS_lstat -SYS_mkdir -SYS_mknod -SYS_modify_ldt -SYS_mpx -SYS_multiplexer -SYS_newfstatat -SYS_nice -SYS_oldfstat -SYS_oldlstat -SYS_oldolduname -SYS_oldstat -SYS_olduname -SYS_open -SYS_pause -SYS_pciconfig_iobase -SYS_pciconfig_read -SYS_pciconfig_write -SYS_pipe -SYS_poll -SYS_prof -SYS_profil -SYS_putpmsg -SYS_query_module -SYS_readdir -SYS_readlink -SYS_recv -SYS_rename -SYS_renameat -SYS_rmdir -SYS_rtas -SYS_select -SYS_send -SYS_sendfile -SYS_setrlimit -SYS_sgetmask -SYS_sigaction -SYS_signal -SYS_signalfd -SYS_sigpending -SYS_sigprocmask -SYS_sigreturn -SYS_sigsuspend -SYS_socketcall -SYS_spu_create -SYS_spu_run -SYS_ssetmask -SYS_stat -SYS_statfs64 -SYS_stime -SYS_stty -SYS_subpage_prot -SYS_swapcontext -SYS_switch_endian -SYS_symlink -SYS_sync_file_range2 -SYS_sys_debug_setcontext -SYS_sysfs -SYS_time -SYS_tuxcall -SYS_ugetrlimit -SYS_ulimit -SYS_umount -SYS_unlink -SYS_uselib -SYS_ustat -SYS_utime -SYS_utimes -SYS_vfork -SYS_vm86 -SYS_waitpid -TIOCCBRK -TIOCGRS485 -TIOCSBRK -TIOCSRS485 -flock64 From 76d4a8e2bcc25ae179b2425638b9e7e5c73303ed Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Wed, 2 Jul 2025 06:59:19 +0200 Subject: [PATCH 0694/1228] musl: Fix definition of NCCS on powerpc(64) These overwrite the value with their own. https://git.musl-libc.org/cgit/musl/tree/arch/powerpc/bits/termios.h#n2 https://git.musl-libc.org/cgit/musl/tree/arch/powerpc64/bits/termios.h#n2 Signed-off-by: Jens Reidel (backport ) (cherry picked from commit f8e5a84d445b82ffbdd47a8b01a5fcbae63127c5) --- src/unix/linux_like/linux/musl/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index e2afbd860a1ce..bb4bc0bf2e37a 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -599,7 +599,10 @@ pub const ACCOUNTING: c_short = 9; pub const SFD_CLOEXEC: c_int = 0x080000; +#[cfg(not(any(target_arch = "powerpc", target_arch = "powerpc64")))] pub const NCCS: usize = 32; +#[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))] +pub const NCCS: usize = 19; pub const O_TRUNC: c_int = 512; pub const O_NOATIME: c_int = 0o1000000; From f162c05300f4f3d5b4209a79aa5f033f6e8b97d0 Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Thu, 3 Jul 2025 03:45:08 +0200 Subject: [PATCH 0695/1228] musl: powerpc64: Fix definition of MAP_LOCKED and MAP_NORESERVE powerpc and powerpc64 have different definitions for these in musl. The powerpc values were correct, but powerpc64 ones were not. This was changed in musl 1.1.17. See https://git.musl-libc.org/cgit/musl/commit/?id=c10bc61508dc52b8315084e628f36a6c3c2dabb1 Signed-off-by: Jens Reidel (backport ) (cherry picked from commit 5c0742b970287f9086a0f3f2407c0b9528dbfdd8) --- src/unix/linux_like/linux/musl/b64/powerpc64.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index 4f3c081fb633c..186f410363867 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -175,8 +175,8 @@ pub const MAP_ANON: c_int = 0x0020; pub const MAP_GROWSDOWN: c_int = 0x0100; pub const MAP_DENYWRITE: c_int = 0x0800; pub const MAP_EXECUTABLE: c_int = 0x01000; -pub const MAP_LOCKED: c_int = 0x02000; -pub const MAP_NORESERVE: c_int = 0x04000; +pub const MAP_LOCKED: c_int = 0x80; +pub const MAP_NORESERVE: c_int = 0x40; pub const MAP_POPULATE: c_int = 0x08000; pub const MAP_NONBLOCK: c_int = 0x010000; pub const MAP_STACK: c_int = 0x020000; From d0c1e3a67b1a92530c7ab364c2a26acd0df2786c Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Thu, 3 Jul 2025 03:55:27 +0200 Subject: [PATCH 0696/1228] musl: powerpc64: Fix definition of EDEADLK musl defines EDEADLK to be 35 on powerpc64 and EDEADLOCK to be 58. This has always been the case since the introduction of powerpc64 support in musl. See: https://git.musl-libc.org/cgit/musl/tree/arch/powerpc64/bits/errno.h#n35 https://git.musl-libc.org/cgit/musl/tree/arch/powerpc64/bits/errno.h#n58 Signed-off-by: Jens Reidel (backport ) (cherry picked from commit 3e28d999cd06953e6f6a7231c8a0864c61511ce9) --- src/unix/linux_like/linux/musl/b64/powerpc64.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index 186f410363867..680230d8adb4f 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -639,8 +639,8 @@ pub const SYS_process_mrelease: c_long = 448; pub const SYS_futex_waitv: c_long = 449; pub const SYS_set_mempolicy_home_node: c_long = 450; -pub const EDEADLK: c_int = 58; -pub const EDEADLOCK: c_int = EDEADLK; +pub const EDEADLK: c_int = 35; +pub const EDEADLOCK: c_int = 58; pub const EXTPROC: crate::tcflag_t = 0x10000000; pub const VEOL: usize = 6; From d0cc330ca93e83a466883285d42897b0f47a206a Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Thu, 3 Jul 2025 04:10:36 +0200 Subject: [PATCH 0697/1228] musl: powerpc(64): Decommonize termios definitions PowerPC targets use their own, separate definitions of termios that change the order of the c_line and c_cc fields. See: https://git.musl-libc.org/cgit/musl/tree/arch/powerpc/bits/termios.h#n3 https://git.musl-libc.org/cgit/musl/tree/arch/powerpc64/bits/termios.h#n3 Signed-off-by: Jens Reidel (backport ) (cherry picked from commit 0dfd754b4f83fa99ed8ecc7b617e272b785495b8) --- src/unix/linux_like/linux/musl/b32/powerpc.rs | 11 +++++++++++ src/unix/linux_like/linux/musl/b64/powerpc64.rs | 11 +++++++++++ src/unix/linux_like/linux/musl/mod.rs | 2 ++ 3 files changed, 24 insertions(+) diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 460b2d8fcf0ee..a07dfda17794e 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -4,6 +4,17 @@ use crate::prelude::*; pub type wchar_t = i32; s! { + pub struct termios { + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_cc: [crate::cc_t; crate::NCCS], + pub c_line: crate::cc_t, + pub __c_ispeed: crate::speed_t, + pub __c_ospeed: crate::speed_t, + } + pub struct stat { pub st_dev: crate::dev_t, pub st_ino: crate::ino_t, diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index 680230d8adb4f..462dad9117b74 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -8,6 +8,17 @@ pub type nlink_t = u64; pub type blksize_t = c_long; s! { + pub struct termios { + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_cc: [crate::cc_t; crate::NCCS], + pub c_line: crate::cc_t, + pub __c_ispeed: crate::speed_t, + pub __c_ospeed: crate::speed_t, + } + pub struct stat { pub st_dev: crate::dev_t, pub st_ino: crate::ino_t, diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index bb4bc0bf2e37a..5241d0a7ad2dd 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -212,6 +212,8 @@ s! { __f_reserved: [c_int; 6], } + // PowerPC implementations are special, see the subfolders + #[cfg(not(any(target_arch = "powerpc", target_arch = "powerpc64")))] pub struct termios { pub c_iflag: crate::tcflag_t, pub c_oflag: crate::tcflag_t, From 185a637ced4fe921b25ef99183735d9642fd21b1 Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Thu, 3 Jul 2025 04:28:42 +0200 Subject: [PATCH 0698/1228] musl: powerpc64: Decommonize definition of shmid_ds powerpc64 is the only 64-bit target that doesn't use the generic definition for these in musl. See https://git.musl-libc.org/cgit/musl/tree/arch/powerpc64/bits/shm.h#n3 Signed-off-by: Jens Reidel (backport ) (cherry picked from commit 1ac2a19cbf07c7d3426c63ef00d183c5c7031d50) --- src/unix/linux_like/linux/musl/b64/mod.rs | 2 ++ src/unix/linux_like/linux/musl/b64/powerpc64.rs | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index 6b6761ba03ac4..3fb059812b4ff 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -17,6 +17,8 @@ s! { __val: [c_ulong; 16], } + // PowerPC implementation is special, see the subfolder. + #[cfg(not(target_arch = "powerpc64"))] pub struct shmid_ds { pub shm_perm: crate::ipc_perm, pub shm_segsz: size_t, diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index 462dad9117b74..dc03a71caedac 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -61,6 +61,18 @@ s! { __reserved: [c_long; 3], } + pub struct shmid_ds { + pub shm_perm: crate::ipc_perm, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_segsz: size_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: c_ulong, + __unused: [c_ulong; 2], + } + pub struct ipc_perm { #[cfg(musl_v1_2_3)] pub __key: crate::key_t, From e1a5df2411fd3f29e635ce74056bebf399f8683d Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 3 Jul 2025 00:48:37 -0500 Subject: [PATCH 0699/1228] triagebot: Add autolabels for PowerPC (backport ) (cherry picked from commit 9ccce075b94a638328282a95c96595fa2ee1c020) --- triagebot.toml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/triagebot.toml b/triagebot.toml index 6aa18772a750e..18c7fd79f8157 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -87,6 +87,24 @@ trigger_files = ["src/unix/linux_like/linux/musl"] [autolabel."O-newlib"] trigger_files = ["src/unix/newlib"] +[autolabel."O-powerpc"] +trigger_files = [ + "src/unix/aix/powerpc64.rs", + "src/unix/bsd/freebsdlike/freebsd/powerpc.rs", + "src/unix/bsd/freebsdlike/freebsd/powerpc64.rs", + "src/unix/bsd/netbsdlike/netbsd/powerpc.rs", + "src/unix/bsd/netbsdlike/openbsd/powerpc.rs", + "src/unix/bsd/netbsdlike/openbsd/powerpc64.rs", + "src/unix/linux_like/linux/arch/powerpc/", + "src/unix/linux_like/linux/gnu/b32/powerpc.rs", + "src/unix/linux_like/linux/gnu/b64/powerpc64/", + "src/unix/linux_like/linux/musl/b32/powerpc.rs", + "src/unix/linux_like/linux/musl/b64/powerpc64.rs", + "src/unix/newlib/powerpc/", + "src/vxworks/powerpc.rs", + "src/vxworks/powerpc64.rs", +] + [autolabel."O-redox"] trigger_files = ["src/unix/redox"] From c4afd2444b8dc6006e61a125e98f5fb9151bc737 Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Wed, 2 Jul 2025 07:03:04 +0200 Subject: [PATCH 0700/1228] musl: Clarify reason for CPU_SETSIZE value This value was set to 1024 for all targets in the following commit: https://git.musl-libc.org/cgit/musl/commit/?id=bc695a5ac1d7929e5c1ad5297eb47e146cccd157 Since loongarch64 requires musl 1.2.5, the expected value there is different than the other targets, which still target an earlier musl. Signed-off-by: Jens Reidel (backport ) (cherry picked from commit 046bed55e764420e99a2585964f5bb3df0bfd81b) --- src/unix/linux_like/linux/musl/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 5241d0a7ad2dd..d5383e5dae9b5 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -675,6 +675,7 @@ pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; +// FIXME(musl): Value is 1024 for all architectures since 1.2.4 #[cfg(not(target_arch = "loongarch64"))] pub const CPU_SETSIZE: c_int = 128; #[cfg(target_arch = "loongarch64")] From 81ea0503f707282c75a4f8b4f6049933c15ee6bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Wed, 2 Jul 2025 16:19:49 +0000 Subject: [PATCH 0701/1228] linux-musl-s390x: Remove bogus definition of RTLD_DEEPBIND musl-libc does not define RTLD_DEEPBIND on any architecture. Fixes: 88de3880f ("add definitions for s390x musl targets") (backport ) (cherry picked from commit 6faa6d3f98520607f382fd26dbbcd6bf3cfcc85d) --- src/unix/linux_like/linux/musl/b64/s390x.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index 0f1062860d1ca..879ffb3a31d37 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -98,7 +98,6 @@ cfg_if! { } pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: c_int = 0x8; pub const EUCLEAN: c_int = 117; pub const ENOTNAM: c_int = 118; From a447c3b6f45b12ffc43caad52d564a50c2d6812e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Wed, 2 Jul 2025 16:25:50 +0000 Subject: [PATCH 0702/1228] linux-musl-s390x: Remove bogus definition of O_FSYNC musl-libc does not define O_FSYNC on any architecture, since commit v1.1.15-15-gc1f4ed15 (committed 2016-08-30): https://git.musl-libc.org/cgit/musl/commit/?id=c1f4ed150137d793c9d07356305a89e8785e7e02 Fixes: 88de3880f ("add definitions for s390x musl targets") (backport ) (cherry picked from commit a5b89d33fd9913b3fefa389e6824abc5f63763a2) --- src/unix/linux_like/linux/musl/b64/s390x.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index 879ffb3a31d37..c312505a7d77f 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -133,7 +133,6 @@ pub const O_NOCTTY: c_int = 256; pub const O_SYNC: c_int = 1052672; pub const O_RSYNC: c_int = 1052672; pub const O_DSYNC: c_int = 4096; -pub const O_FSYNC: c_int = 0x101000; pub const O_DIRECT: c_int = 0x4000; pub const O_DIRECTORY: c_int = 0x10000; pub const O_NOFOLLOW: c_int = 0x20000; From 1a494b58ab62b0b80153077bb13d759779f5dae7 Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Thu, 3 Jul 2025 09:15:37 -0400 Subject: [PATCH 0703/1228] Add function getpeereid. (backport ) (cherry picked from commit 336e3f1956c9a3a73455e2710c387a8dc493801a) --- libc-test/build.rs | 3 +++ libc-test/semver/aix.txt | 1 + src/unix/aix/mod.rs | 1 + 3 files changed, 5 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index c6282de1a3a5c..93e05b49a8897 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -5729,6 +5729,9 @@ fn test_aix(target: &str) { // https://github.com/gnzlbg/ctest/issues/68. "lio_listio" => true, + // The function is only available under macro _KERNEL in 'proto_uipc.h'. + "getpeereid" => true, + _ => false, } }); diff --git a/libc-test/semver/aix.txt b/libc-test/semver/aix.txt index 3b6417ba3e718..8a030153c9fd4 100644 --- a/libc-test/semver/aix.txt +++ b/libc-test/semver/aix.txt @@ -1989,6 +1989,7 @@ getmntent getnameinfo getopt getpagesize +getpeereid getpeername getpgid getpgrp diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 3f8145d6b3b42..fdb3b9233cc86 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -2949,6 +2949,7 @@ extern "C" { flags: c_int, ) -> c_int; pub fn getpagesize() -> c_int; + pub fn getpeereid(socket: c_int, euid: *mut crate::uid_t, egid: *mut crate::gid_t) -> c_int; pub fn getpriority(which: c_int, who: crate::id_t) -> c_int; pub fn getpwent() -> *mut crate::passwd; #[link_name = "_posix_getpwnam_r"] From 4c961104c047417cd293635879382a36a611d084 Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Fri, 4 Jul 2025 05:57:10 +0200 Subject: [PATCH 0704/1228] musl: mips64: Use special MIPS definition of statfs 64-bit MIPS has the same special definition as 32-bit MIPS in musl. See https://git.musl-libc.org/cgit/musl/tree/arch/mips64/bits/statfs.h Signed-off-by: Jens Reidel (backport ) (cherry picked from commit 4ea56f7d094f67d08c5a38e607952211b7eea24c) --- src/unix/linux_like/linux/musl/b64/mips64.rs | 30 ++++++++++++++++++++ src/unix/linux_like/linux/musl/mod.rs | 4 +-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index 5cef57239fda9..cd80935324c6c 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -76,6 +76,36 @@ s! { __unused1: c_ulong, __unused2: c_ulong, } + + pub struct statfs { + pub f_type: c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_ulong, + pub f_flags: c_ulong, + pub f_spare: [c_ulong; 5], + } + + pub struct statfs64 { + pub f_type: c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt64_t, + pub f_bfree: crate::fsblkcnt64_t, + pub f_files: crate::fsfilcnt64_t, + pub f_ffree: crate::fsfilcnt64_t, + pub f_bavail: crate::fsblkcnt64_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_ulong, + pub f_flags: c_ulong, + pub f_spare: [c_ulong; 5], + } } pub const SIGSTKSZ: size_t = 8192; diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index d5383e5dae9b5..8f43d1912fabf 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -382,7 +382,7 @@ s! { } // MIPS implementation is special (see mips arch folders) - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips64")))] pub struct statfs { pub f_type: c_ulong, pub f_bsize: c_ulong, @@ -399,7 +399,7 @@ s! { } // MIPS implementation is special (see mips arch folders) - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips64")))] pub struct statfs64 { pub f_type: c_ulong, pub f_bsize: c_ulong, From d2669062df7c57639c0094a31d85bde8c3ebc564 Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Fri, 4 Jul 2025 07:46:30 +0200 Subject: [PATCH 0705/1228] musl: mips64: Swap order of si_errno and si_code in siginfo_t All MIPS targets, 32-bit and 64-bit, swap these around. See: https://git.musl-libc.org/cgit/musl/tree/arch/mips64/bits/signal.h#n103 https://git.musl-libc.org/cgit/musl/tree/include/signal.h#n100 Signed-off-by: Jens Reidel (backport ) (cherry picked from commit 76072a6a0ee57ba8f174217ad754976e637b1412) --- src/unix/linux_like/linux/musl/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 8f43d1912fabf..c2bba245a98db 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -157,10 +157,10 @@ s! { // FIXME(union): C implementation uses unions pub struct siginfo_t { pub si_signo: c_int, - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips64")))] pub si_errno: c_int, pub si_code: c_int, - #[cfg(target_arch = "mips")] + #[cfg(any(target_arch = "mips", target_arch = "mips64"))] pub si_errno: c_int, #[doc(hidden)] #[deprecated( From b6012d187630103c1b47f0ead0949bfb0aae6a60 Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Fri, 4 Jul 2025 07:40:42 +0200 Subject: [PATCH 0706/1228] linux_like: mips64: Fix SI_TIMER, SI_MESGQ and SI_ASYNCIO definitions mips64 uses the same definitions for these as the 32-bit targets. See e.g.: https://github.com/torvalds/linux/blob/master/arch/mips/include/uapi/asm/siginfo.h#L21 https://git.musl-libc.org/cgit/musl/tree/arch/mips64/bits/signal.h#n96 Signed-off-by: Jens Reidel (backport ) (cherry picked from commit dff820c26946aac4ae6d248b21e04d5fab57279f) --- src/unix/linux_like/mod.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index a2969e854fdc9..42f4efe42aebb 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1269,7 +1269,11 @@ pub const SI_USER: c_int = 0; pub const SI_KERNEL: c_int = 0x80; pub const SI_QUEUE: c_int = -1; cfg_if! { - if #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] { + if #[cfg(not(any( + target_arch = "mips", + target_arch = "mips32r6", + target_arch = "mips64" + )))] { pub const SI_TIMER: c_int = -2; pub const SI_MESGQ: c_int = -3; pub const SI_ASYNCIO: c_int = -4; From e4ac9344cbd148c0bc44d90c47624f361a7fbef3 Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Fri, 4 Jul 2025 07:34:21 +0200 Subject: [PATCH 0707/1228] musl: mips64: Use special MIPS definition of stack_t stack_t is sigaltstack, which in musl has a special definition for MIPS that switches around ss_size and ss_flags. The 32-bit definition was already correct. See: https://git.musl-libc.org/cgit/musl/tree/arch/mips64/bits/signal.h#n67 Signed-off-by: Jens Reidel (backport ) (cherry picked from commit 3d3392b46e22770d22ff2c207bcccf2080f77975) --- src/unix/linux_like/linux/musl/b64/mips64.rs | 6 ++++++ src/unix/linux_like/linux/musl/b64/mod.rs | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index cd80935324c6c..59667d3efeb7d 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -56,6 +56,12 @@ s! { __pad5: [c_int; 14], } + pub struct stack_t { + pub ss_sp: *mut c_void, + pub ss_size: size_t, + pub ss_flags: c_int, + } + pub struct ipc_perm { #[cfg(musl_v1_2_3)] pub __key: crate::key_t, diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index 3fb059812b4ff..1bfd812ab2a34 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -3,6 +3,8 @@ use crate::prelude::*; pub type regoff_t = c_long; s! { + // MIPS implementation is special, see the subfolder. + #[cfg(not(target_arch = "mips64"))] pub struct stack_t { pub ss_sp: *mut c_void, pub ss_flags: c_int, From 9ff5e7f8970532607b5511d9dc4d5b84ca30f259 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 7 Jul 2025 22:59:41 +0000 Subject: [PATCH 0708/1228] ci: Update RUSTFLAGS to attempt to resolve cache issues Our cache does not seem to be working. rust-cache takes RUSTFLAGS into account, so it is possible that there is a problem due to it getting set dynamically. This is more than likely not the cause, but it is worth a try and is cleaner anyway. (backport ) (cherry picked from commit be84d13ccfa684c3d7e7857df5e003331feaf229) --- .github/workflows/ci.yaml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a18f93f51a426..6678e42b6adb3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -62,12 +62,6 @@ jobs: TOOLCHAIN: ${{ matrix.toolchain }} steps: - uses: actions/checkout@v4 - # Remove `-Dwarnings` at the MSRV since lints may be different or buffier - - name: Update RUSTFLAGS - run: | - set -eux - [ "${{ matrix.toolchain }}" = "1.63.0" ] && echo 'RUSTFLAGS=' >> "$GITHUB_ENV" || true - - name: Setup Rust toolchain run: ./ci/install-rust.sh @@ -85,7 +79,11 @@ jobs: run: du -sh target | sort -k 2 || true - name: Execute build.sh - run: ./ci/verify-build.sh + run: | + set -eux + # Remove `-Dwarnings` at the MSRV since lints may be different + [ "${{ matrix.toolchain }}" = "1.63.0" ] && export RUSTFLAGS="" + ./ci/verify-build.sh - name: Target size after job completion run: du -sh target | sort -k 2 From c3e3681c6775184f359875b7517530244bcfb241 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 7 Jul 2025 23:21:35 +0000 Subject: [PATCH 0709/1228] ci: Only build `core` with `-Zbuild-std` We don't need alloc or std, so save some CI time by only building `core`. (backport ) (cherry picked from commit d96fb205fa12fe827cdc87599e322ca3fcbdb530) --- ci/run.sh | 2 +- ci/verify-build.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/run.sh b/ci/run.sh index c58ae1caa1739..1d4b5f5079d96 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -51,7 +51,7 @@ if [ -n "${QEMU:-}" ]; then cargo build \ --manifest-path libc-test/Cargo.toml \ --target "$target" \ - --test main ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"} + --test main ${LIBC_CI_ZBUILD_STD+"-Zbuild-std=core"} rm "${CARGO_TARGET_DIR}/${target}"/debug/main-*.d cp "${CARGO_TARGET_DIR}/${target}"/debug/main-* "${tmpdir}"/mount/libc-test # shellcheck disable=SC2016 diff --git a/ci/verify-build.sh b/ci/verify-build.sh index a44ef0a181fc8..f19ed9d774a08 100755 --- a/ci/verify-build.sh +++ b/ci/verify-build.sh @@ -48,7 +48,7 @@ test_target() { if [ "${no_dist}" != "0" ]; then # If we can't download a `core`, we need to build it - cmd="$cmd -Zbuild-std=core,alloc" + cmd="$cmd -Zbuild-std=core" # FIXME: With `build-std` feature, `compiler_builtins` emits a lof of lint warnings. RUSTFLAGS="${RUSTFLAGS:-} -Aimproper_ctypes_definitions" From 20d39903369c06bb4a306eb5b8443662260b51dd Mon Sep 17 00:00:00 2001 From: mbyx Date: Tue, 15 Jul 2025 12:09:28 +0500 Subject: [PATCH 0710/1228] libc-test: fix lint error (backport ) (cherry picked from commit 2e5e02ca9ca27ebeb7f8cde2e8fdb195375e1a32) --- libc-test/build.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 93e05b49a8897..c5818dbe1b120 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3580,7 +3580,7 @@ fn test_neutrino(target: &str) { ) }); - cfg.skip_static(move |name| (name == "__dso_handle")); + cfg.skip_static(move |name| name == "__dso_handle"); cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); } From a56dcac2a3102426c18304ca6ea7cf8bd4b41743 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 16 Jul 2025 01:53:26 -0400 Subject: [PATCH 0711/1228] build: Fix incorrect `target_os` -> `target_arch` check This was introduced in 2a68f7f9f6 ("Add musl_v1_2_3 feature"). Fixes: https://github.com/rust-lang/libc/issues/4526 (backport ) (cherry picked from commit 4c52a681543d58fb8de37322f8b4bb86fbbd5fc4) --- build.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.rs b/build.rs index 5e1e62c5188ef..070354f1e756a 100644 --- a/build.rs +++ b/build.rs @@ -95,7 +95,7 @@ fn main() { let musl_v1_2_3 = env::var("RUST_LIBC_UNSTABLE_MUSL_V1_2_3").is_ok(); println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_MUSL_V1_2_3"); // loongarch64 and ohos have already updated - if musl_v1_2_3 || target_os == "loongarch64" || target_env == "ohos" { + if musl_v1_2_3 || target_arch == "loongarch64" || target_env == "ohos" { // FIXME(musl): enable time64 api as well set_cfg("musl_v1_2_3"); } From b54ba610255829f06c78dea2e17e41594ce026a7 Mon Sep 17 00:00:00 2001 From: Collin Funk Date: Mon, 16 Jun 2025 19:03:46 -0700 Subject: [PATCH 0712/1228] hurd: Fix `clippy::unused_unit` warnings. (backport ) (cherry picked from commit afd569fb62dddeaf5f1068b87b0039d7b1412a34) --- src/unix/hurd/mod.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 843e7f4c3915d..1844b6ab36d2e 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -3473,14 +3473,12 @@ f! { let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; - () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); - () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { From dd93259846ad9360ec0dfac1d2c1e96a79aaf844 Mon Sep 17 00:00:00 2001 From: Collin Funk Date: Mon, 16 Jun 2025 19:08:17 -0700 Subject: [PATCH 0713/1228] hurd: Fix `clippy::redundant_static_lifetimes` warnings. (backport ) (cherry picked from commit 82d508f564eae5caafcbbc54ed77a0e218b16868) --- src/unix/hurd/mod.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 1844b6ab36d2e..7f21e226a39e0 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -1594,12 +1594,12 @@ pub const SEM_VALUE_MAX: c_int = 2147483647; pub const MAXNAMLEN: usize = 255; // netdb.h -pub const _PATH_HEQUIV: &'static [u8; 17usize] = b"/etc/hosts.equiv\0"; -pub const _PATH_HOSTS: &'static [u8; 11usize] = b"/etc/hosts\0"; -pub const _PATH_NETWORKS: &'static [u8; 14usize] = b"/etc/networks\0"; -pub const _PATH_NSSWITCH_CONF: &'static [u8; 19usize] = b"/etc/nsswitch.conf\0"; -pub const _PATH_PROTOCOLS: &'static [u8; 15usize] = b"/etc/protocols\0"; -pub const _PATH_SERVICES: &'static [u8; 14usize] = b"/etc/services\0"; +pub const _PATH_HEQUIV: &[u8; 17usize] = b"/etc/hosts.equiv\0"; +pub const _PATH_HOSTS: &[u8; 11usize] = b"/etc/hosts\0"; +pub const _PATH_NETWORKS: &[u8; 14usize] = b"/etc/networks\0"; +pub const _PATH_NSSWITCH_CONF: &[u8; 19usize] = b"/etc/nsswitch.conf\0"; +pub const _PATH_PROTOCOLS: &[u8; 15usize] = b"/etc/protocols\0"; +pub const _PATH_SERVICES: &[u8; 14usize] = b"/etc/services\0"; pub const HOST_NOT_FOUND: c_int = 1; pub const TRY_AGAIN: c_int = 2; pub const NO_RECOVERY: c_int = 3; From 464dbb867be3bb8eb8367dc8244f2006416de577 Mon Sep 17 00:00:00 2001 From: Collin Funk Date: Mon, 16 Jun 2025 19:13:59 -0700 Subject: [PATCH 0714/1228] hurd: Fix `clippy::precedence` warnings. (backport ) (cherry picked from commit c5ddc704ef36fac2c12c69fe762af9b0506e2d8f) --- src/unix/hurd/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 7f21e226a39e0..6ce5d854682cb 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -3416,7 +3416,7 @@ const _UTSNAME_LENGTH: usize = 1024; const_fn! { {const} fn CMSG_ALIGN(len: usize) -> usize { - len + mem::size_of::() - 1 & !(mem::size_of::() - 1) + (len + mem::size_of::() - 1) & !(mem::size_of::() - 1) } } From f0e2ab1b2f33e6b532f107268c40ec6820b37f9e Mon Sep 17 00:00:00 2001 From: Collin Funk Date: Mon, 16 Jun 2025 19:16:19 -0700 Subject: [PATCH 0715/1228] hurd: Fix `clippy::ptr_as_ptr` warnings. (backport ) (cherry picked from commit 483e331281ec08de555759b433c5a7bccacf91b5) --- src/unix/hurd/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 6ce5d854682cb..96dd443b3196d 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -3424,7 +3424,7 @@ const_fn! { f! { pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { if (*mhdr).msg_controllen as usize >= mem::size_of::() { - (*mhdr).msg_control as *mut cmsghdr + (*mhdr).msg_control.cast::() } else { core::ptr::null_mut::() } @@ -3453,7 +3453,7 @@ f! { { core::ptr::null_mut::() } else { - next as *mut cmsghdr + next.cast::() } } From e5ec1abb54a35a2f36d2bee3b44f99af41931877 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 16 Jun 2025 08:42:00 +0000 Subject: [PATCH 0716/1228] Add the `enum` keyword to the `c_enum` macro Our `style.sh` script can't handle these easily, and it seems like `ctest` may struggle with this macro. Add the `enum` keyword so the expanded code is valid Rust. (backport ) (cherry picked from commit 19e04c8be3a62e36fef995fb6f6e40de06891d53) --- ci/style.sh | 2 +- src/macros.rs | 10 +++++----- src/unix/linux_like/linux/mod.rs | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ci/style.sh b/ci/style.sh index 97a9bc47bc132..0d4a4f953dda1 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -26,7 +26,7 @@ while IFS= read -r file; do # Turn all braced macro `foo! { /* ... */ }` invocations into # `fn foo_fmt_tmp() { /* ... */ }`. - perl -pi -e 's/(?!macro_rules|c_enum)\b(\w+)!\s*\{/fn $1_fmt_tmp() {/g' "$file" + perl -pi -e 's/(?!macro_rules)\b(\w+)!\s*\{/fn $1_fmt_tmp() {/g' "$file" # Replace `if #[cfg(...)]` within `cfg_if` with `if cfg_tmp!([...])` which # `rustfmt` will format. We put brackets within the parens so it is easy to diff --git a/src/macros.rs b/src/macros.rs index a0fb7ff12c0f8..aac47561d2fbd 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -223,7 +223,7 @@ macro_rules! e { macro_rules! c_enum { ( $(#[repr($repr:ty)])? - $ty_name:ident { + enum $ty_name:ident { $($variant:ident $(= $value:literal)?,)+ } ) => { @@ -411,7 +411,7 @@ mod tests { fn c_enumbasic() { // By default, variants get sequential values. c_enum! { - e { + enum e { VAR0, VAR1, VAR2, @@ -428,7 +428,7 @@ mod tests { // By default, variants get sequential values. c_enum! { #[repr(u16)] - e { + enum e { VAR0, } } @@ -440,7 +440,7 @@ mod tests { fn c_enumset_value() { // Setting an explicit value resets the count. c_enum! { - e { + enum e { VAR2 = 2, VAR3, VAR4, @@ -457,7 +457,7 @@ mod tests { // C enums always take one more than the previous value, unless set to a specific // value. Duplicates are allowed. c_enum! { - e { + enum e { VAR0, VAR2_0 = 2, VAR3_0, diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 992df6cffd92e..15518ce596ca3 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -95,7 +95,7 @@ e! { } c_enum! { - pid_type { + enum pid_type { PIDTYPE_PID, PIDTYPE_TGID, PIDTYPE_PGID, @@ -4559,14 +4559,14 @@ pub const RTNLGRP_STATS: c_uint = 0x24; // linux/cn_proc.h c_enum! { - proc_cn_mcast_op { + enum proc_cn_mcast_op { PROC_CN_MCAST_LISTEN = 1, PROC_CN_MCAST_IGNORE = 2, } } c_enum! { - proc_cn_event { + enum proc_cn_event { PROC_EVENT_NONE = 0x00000000, PROC_EVENT_FORK = 0x00000001, PROC_EVENT_EXEC = 0x00000002, From 639df92ab9836991769cf7bf00b73d770e7d11ed Mon Sep 17 00:00:00 2001 From: Chris Wailes Date: Tue, 24 Jun 2025 17:07:02 -0700 Subject: [PATCH 0717/1228] Add CLONE_CLEAR_SIGHAND and CLONE_INTO_CGROUP for Android (backport ) (cherry picked from commit cbcd3445cb146b18cd96aa86764e3e8864d6411c) --- libc-test/semver/android.txt | 2 ++ src/unix/linux_like/android/mod.rs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 881ed4378f7ce..a52cc25077a95 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -238,9 +238,11 @@ CLOCK_TAI CLOCK_THREAD_CPUTIME_ID CLONE_CHILD_CLEARTID CLONE_CHILD_SETTID +CLONE_CLEAR_SIGHAND CLONE_DETACHED CLONE_FILES CLONE_FS +CLONE_INTO_CGROUP CLONE_IO CLONE_NEWCGROUP CLONE_NEWIPC diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 3dee96e2123a0..8d20394790f57 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -2896,6 +2896,8 @@ pub const SCHED_DEADLINE: c_int = 6; pub const SCHED_RESET_ON_FORK: c_int = 0x40000000; pub const CLONE_PIDFD: c_int = 0x1000; +pub const CLONE_CLEAR_SIGHAND: c_ulonglong = 0x100000000; +pub const CLONE_INTO_CGROUP: c_ulonglong = 0x200000000; // linux/membarrier.h pub const MEMBARRIER_CMD_QUERY: c_int = 0; From 0b79744fe1696a0018506b4d407c3e19dee0ec72 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Tue, 10 Jun 2025 10:33:59 +0300 Subject: [PATCH 0718/1228] libc-test/build.rs: add netinet/in_pcb.h to the list of FreeBSD headers (backport ) (cherry picked from commit 84430578c5c87f77d037c4324b2531705c86f254) --- libc-test/build.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index c5818dbe1b120..2676ccb7402da 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2502,6 +2502,8 @@ fn test_freebsd(target: &str) { "sys/sem.h", "sys/shm.h", "sys/socket.h", + "sys/socketvar.h", + "netinet/in_pcb.h", // must be after sys/socketvar.h "sys/stat.h", "sys/statvfs.h", "sys/sysctl.h", From f24bd9104e83f27dbce0cad239b072326fff3eec Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Thu, 22 May 2025 14:22:35 +0300 Subject: [PATCH 0719/1228] FreeBSD: add xinpgen and related types definitions (backport ) (cherry picked from commit 7d2a69501b61dae6b2c27aff6c629ca507a7911a) --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index de41a7c6d3ed6..1022cc7606953 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -11,6 +11,9 @@ pub type fixpt_t = __fixpt_t; pub type __lwpid_t = i32; pub type lwpid_t = __lwpid_t; pub type blksize_t = i32; +pub type ksize_t = u64; +pub type inp_gen_t = u64; +pub type so_gen_t = u64; pub type clockid_t = c_int; pub type sem_t = _sem; pub type timer_t = *mut __c_anonymous__timer; @@ -1701,6 +1704,16 @@ s_no_extra_traits! { pub uc_flags: c_int, __spare__: [c_int; 4], } + + #[repr(align(8))] + pub struct xinpgen { + pub xig_len: ksize_t, + pub xig_count: u32, + _xig_spare32: u32, + pub xig_gen: inp_gen_t, + pub xig_sogen: so_gen_t, + _xig_spare64: [u64; 4], + } } cfg_if! { From aa40d691c7853842a20b7fe4bdf34346de16d802 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Wed, 21 May 2025 08:03:07 +0300 Subject: [PATCH 0720/1228] FreeBSD: add in_conninfo definition (backport ) (cherry picked from commit 34e3b14f4b2a259917753b7c5185b94183fa781c) --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 29 +++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 1022cc7606953..281cf39ef1c83 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1714,6 +1714,31 @@ s_no_extra_traits! { pub xig_sogen: so_gen_t, _xig_spare64: [u64; 4], } + + pub struct in_addr_4in6 { + _ia46_pad32: [u32; 3], + pub ia46_addr4: crate::in_addr, + } + + pub union in_dependaddr { + pub id46_addr: crate::in_addr_4in6, + pub id6_addr: crate::in6_addr, + } + + pub struct in_endpoints { + pub ie_fport: u16, + pub ie_lport: u16, + pub ie_dependfaddr: crate::in_dependaddr, + pub ie_dependladdr: crate::in_dependaddr, + pub ie6_zoneid: u32, + } + + pub struct in_conninfo { + pub inc_flags: u8, + pub inc_len: u8, + pub inc_fibnum: u16, + pub inc_ie: crate::in_endpoints, + } } cfg_if! { @@ -4631,6 +4656,10 @@ pub const RB_POWERCYCLE: c_int = 0x400000; pub const RB_PROBE: c_int = 0x10000000; pub const RB_MULTIPLE: c_int = 0x20000000; +// netinet/in_pcb.h +pub const INC_ISIPV6: c_uchar = 0x01; +pub const INC_IPV6MINMTU: c_uchar = 0x02; + // sys/time.h pub const CLOCK_BOOTTIME: crate::clockid_t = crate::CLOCK_UPTIME; pub const CLOCK_REALTIME_COARSE: crate::clockid_t = crate::CLOCK_REALTIME_FAST; From f424fb2dd6c70422a74bef7cf1b8800bc0bfdeb8 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Wed, 21 May 2025 08:03:29 +0300 Subject: [PATCH 0721/1228] FreeBSD: add xktls_session definition (backport ) (cherry picked from commit 9220aacb5bddebc356cff62ac7d9ca045f6f0f62) --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 281cf39ef1c83..9016ca0a99703 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1739,6 +1739,38 @@ s_no_extra_traits! { pub inc_fibnum: u16, pub inc_ie: crate::in_endpoints, } + + pub struct xktls_session_onedir { + pub gennum: u64, + _rsrv1: [u64; 8], + _rsrv2: [u32; 8], + pub iv: [u8; 32], + pub cipher_algorithm: i32, + pub auth_algorithm: i32, + pub cipher_key_len: u16, + pub iv_len: u16, + pub auth_key_len: u16, + pub max_frame_len: u16, + pub tls_vmajor: u8, + pub tls_vminor: u8, + pub tls_hlen: u8, + pub tls_tlen: u8, + pub tls_bs: u8, + pub flags: u8, + pub drv_st_len: u16, + pub ifnet: [u8; 16], + } + + pub struct xktls_session { + pub tsz: u32, + pub fsz: u32, + pub inp_gencnt: u64, + pub so_pcb: kvaddr_t, + pub coninf: crate::in_conninfo, + pub rx_vlan_id: c_ushort, + pub rcv: crate::xktls_session_onedir, + pub snd: crate::xktls_session_onedir, + } } cfg_if! { From 1eed8a2da705012e9cc8fcf7f5719a9131b52f1d Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Tue, 10 Jun 2025 10:55:55 +0300 Subject: [PATCH 0722/1228] FreeBSD: skip checking of xktls_session* structs on FreeBSD 14.x and older (backport ) (cherry picked from commit db4dba7aac10f7ad14029bc1da5bc1152c284995) --- libc-test/build.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 2676ccb7402da..92e0c60612a4c 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2920,6 +2920,10 @@ fn test_freebsd(target: &str) { // `splice` introduced in FreeBSD 14.2 "splice" if Some(14) > freebsd_ver => true, + // Those are introduced in FreeBSD 15. + "xktls_session_onedir" | "xktls_session" + if Some(15) > freebsd_ver => true, + _ => false, } }); From af882646dd86a1cc8e68aec43b7dc63b5fba2995 Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Fri, 27 Jun 2025 14:31:17 -0400 Subject: [PATCH 0723/1228] Use unique errno values. (backport ) (cherry picked from commit fa6a2995bb341cd87a47a0e27aa96986e844d4c5) --- libc-test/build.rs | 5 +++++ libc-test/semver/aix.txt | 2 -- src/unix/aix/mod.rs | 6 ++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 92e0c60612a4c..8bf08ab78e54a 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -5648,6 +5648,11 @@ fn test_aix(target: &str) { // Skip 'sighandler_t' assignments. "SIG_DFL" | "SIG_ERR" | "SIG_IGN" => true, + // _ALL_SOURCE defines these errno values as aliases of other errno + // values, but POSIX requires each errno to be unique. Skip these + // values because non-unique values are being used which will + // fail the test when _ALL_SOURCE is defined. + "EWOULDBLOCK" | "ENOTEMPTY" => true, _ => false, }); diff --git a/libc-test/semver/aix.txt b/libc-test/semver/aix.txt index 8a030153c9fd4..38553abf3f80d 100644 --- a/libc-test/semver/aix.txt +++ b/libc-test/semver/aix.txt @@ -253,13 +253,11 @@ ECHOKE ECHONL ECHOPRT ECHRNG -ECLONEME ECONNABORTED ECONNREFUSED ECONNRESET ECORRUPT EDEADLK -EDESTADDREQ EDESTADDRREQ EDIST EDOM diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index fdb3b9233cc86..985a44c41f5ed 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -1264,12 +1264,11 @@ pub const ENOLCK: c_int = 49; pub const ENOCONNECT: c_int = 50; pub const ESTALE: c_int = 52; pub const EDIST: c_int = 53; -pub const EWOULDBLOCK: c_int = EAGAIN; +pub const EWOULDBLOCK: c_int = 54; pub const EINPROGRESS: c_int = 55; pub const EALREADY: c_int = 56; pub const ENOTSOCK: c_int = 57; pub const EDESTADDRREQ: c_int = 58; -pub const EDESTADDREQ: c_int = EDESTADDRREQ; pub const EMSGSIZE: c_int = 59; pub const EPROTOTYPE: c_int = 60; pub const ENOPROTOOPT: c_int = 61; @@ -1298,7 +1297,7 @@ pub const EPROCLIM: c_int = 83; pub const EUSERS: c_int = 84; pub const ELOOP: c_int = 85; pub const ENAMETOOLONG: c_int = 86; -pub const ENOTEMPTY: c_int = EEXIST; +pub const ENOTEMPTY: c_int = 87; pub const EDQUOT: c_int = 88; pub const ECORRUPT: c_int = 89; pub const ESYSERROR: c_int = 90; @@ -1321,7 +1320,6 @@ pub const EBADMSG: c_int = 120; pub const EPROTO: c_int = 121; pub const ENODATA: c_int = 122; pub const ENOSTR: c_int = 123; -pub const ECLONEME: c_int = ERESTART; pub const ENOTSUP: c_int = 124; pub const EMULTIHOP: c_int = 125; pub const ENOLINK: c_int = 126; From a23abdd59742bde0b304123e2a80fd22d268766e Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Wed, 2 Jul 2025 03:49:03 +0200 Subject: [PATCH 0724/1228] musl: mips64: Fix type of nlink_t musl defines nlink_t to be an unsigned 32-bit integer on mips64, therefore changing the size of stat64 from 216 bytes to 208. The current definition in the libc crate does not match this and therefore defines stat64 wrong on mips64 musl, which results in bogus readings of fields following st_nlink. See https://git.musl-libc.org/cgit/musl/tree/arch/mips64/bits/alltypes.h.in#n22 for the musl definition of nlink_t. Signed-off-by: Jens Reidel (backport ) (cherry picked from commit 02eff0f2968af897e3856b7a86952b96ba60d034) --- src/unix/linux_like/linux/musl/b64/mips64.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index 59667d3efeb7d..57a460bd1c8f4 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -4,7 +4,7 @@ use crate::prelude::*; pub type wchar_t = i32; pub type __u64 = c_ulong; pub type __s64 = c_long; -pub type nlink_t = u64; +pub type nlink_t = c_uint; pub type blksize_t = i64; s! { From 5e8ca2cf096c448e7141d717950cae8c0ce0a821 Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Wed, 2 Jul 2025 05:44:45 +0200 Subject: [PATCH 0725/1228] musl: Decommonize definition of fanotify_event_metadata musl has its own definition of the fanotify_event_metadata struct and doesn't use the one from the Linux kernel. The difference here is that musl's mask field has the type unsigned long long, while the kernel uses __u64. This currently causes libc-test to fail to compile on musl targets. Linux: https://github.com/torvalds/linux/blob/master/include/uapi/linux/fanotify.h#L143 musl: https://git.musl-libc.org/cgit/musl/tree/include/sys/fanotify.h#n15 Signed-off-by: Jens Reidel (backport ) (cherry picked from commit 7559ba1619ec05c6619cc31f775eda45504065d2) --- src/unix/linux_like/linux/mod.rs | 1 + src/unix/linux_like/linux/musl/mod.rs | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 15518ce596ca3..09456604215d3 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1220,6 +1220,7 @@ s! { size: [u8; crate::__SIZEOF_PTHREAD_BARRIERATTR_T], } + #[cfg(not(target_env = "musl"))] #[repr(align(8))] pub struct fanotify_event_metadata { pub event_len: __u32, diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index c2bba245a98db..8d4a5ce90b93d 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -142,6 +142,17 @@ s! { __dummy4: [c_char; 16], } + #[repr(align(8))] + pub struct fanotify_event_metadata { + pub event_len: c_uint, + pub vers: c_uchar, + pub reserved: c_uchar, + pub metadata_len: c_ushort, + pub mask: c_ulonglong, + pub fd: c_int, + pub pid: c_int, + } + // FIXME(1.0): This should not implement `PartialEq` #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { From 36aa38bda88633f256949f5405c5646cc8f72ea3 Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Wed, 2 Jul 2025 05:59:51 +0200 Subject: [PATCH 0726/1228] linux: gnu/musl: MAP_32BIT is only defined on x86 The Linux kernel only defines MAP_32BIT in the asm/mman.h header on x86. Remove the erraneous definitions for any other architectures on Linux targets. See https://github.com/torvalds/linux/blob/master/arch/x86/include/uapi/asm/mman.h#L5 This makes libc-test somewhat compile on powerpc64le musl. Signed-off-by: Jens Reidel (backport ) (cherry picked from commit 9332d56877d358f4efee70ecaa807396ef00aed0) --- libc-test/build.rs | 5 +++++ src/unix/linux_like/linux/gnu/b32/m68k/mod.rs | 1 - src/unix/linux_like/linux/musl/b64/powerpc64.rs | 2 ++ src/unix/linux_like/linux/musl/b64/wasm32/mod.rs | 1 - 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 8bf08ab78e54a..3b8585d6739a9 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4379,6 +4379,11 @@ fn test_linux(target: &str) { if old_musl && name == "RLIM_NLIMITS" { return true; } + // FIXME: Does not exist on non-x86 architectures, slated for removal + // in libc in 1.0 + if ppc64 && name == "MAP_32BIT" { + return true; + } } match name { // These constants are not available if gnu headers have been included diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index fe4b05f4e2a10..71b3dd316394c 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -191,7 +191,6 @@ pub const O_NDELAY: c_int = 0x800; pub const MADV_SOFT_OFFLINE: c_int = 101; pub const MAP_LOCKED: c_int = 0x02000; pub const MAP_NORESERVE: c_int = 0x04000; -pub const MAP_32BIT: c_int = 0x0040; pub const MAP_ANON: c_int = 0x0020; pub const MAP_ANONYMOUS: c_int = 0x0020; pub const MAP_DENYWRITE: c_int = 0x0800; diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index dc03a71caedac..a313aac21df09 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -95,6 +95,8 @@ s! { } pub const MADV_SOFT_OFFLINE: c_int = 101; +#[deprecated(since = "0.2.175", note = "Linux does not define MAP_32BIT on any architectures \ + other than x86 and x86_64, this constant will be removed in the future")] pub const MAP_32BIT: c_int = 0x0040; pub const O_APPEND: c_int = 1024; pub const O_DIRECT: c_int = 0x20000; diff --git a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs index 3f7a6098297f5..29750e79e17e6 100644 --- a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs @@ -441,7 +441,6 @@ pub const SYS_set_mempolicy_home_node: c_long = 450; pub const SYS_fadvise: c_long = SYS_fadvise64; pub const MADV_SOFT_OFFLINE: c_int = 101; -pub const MAP_32BIT: c_int = 0x0040; pub const O_APPEND: c_int = 1024; pub const O_DIRECT: c_int = 0x4000; pub const O_DIRECTORY: c_int = 0x10000; From 1ab0d740427cee51e7260c9d97ca48936821d6f0 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Thu, 26 Jun 2025 05:47:42 +0300 Subject: [PATCH 0727/1228] FreeBSD amd64: add mc_tlsbase member to mcontext_t (backport ) (cherry picked from commit 64bfc7d69794dbdf8509f1c0b5fcb1625f266646) --- src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index 40e1d72e2041e..4ee20901436cf 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -137,7 +137,8 @@ s_no_extra_traits! { pub mc_gsbase: register_t, pub mc_xfpustate: register_t, pub mc_xfpustate_len: register_t, - pub mc_spare: [c_long; 4], + pub mc_tlsbase: register_t, + pub mc_spare: [c_long; 3], } } From c96513542bb3770c7c771f4cbad699fbf4e3d418 Mon Sep 17 00:00:00 2001 From: Chris Wailes Date: Fri, 6 Jun 2025 15:01:48 -0700 Subject: [PATCH 0728/1228] Add SECBIT_ constants from securebits.h See: https://github.com/torvalds/linux/blob/master/include/uapi/linux/securebits.h (backport ) (cherry picked from commit f811577fed5214f9d8805c79e31b6d27840a0b4c) --- libc-test/build.rs | 1 + libc-test/semver/linux.txt | 11 ++++++++++ src/unix/linux_like/linux/mod.rs | 35 ++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 3b8585d6739a9..58f489e5f65d3 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3953,6 +3953,7 @@ fn test_linux(target: &str) { "linux/sched.h", "linux/sctp.h", "linux/seccomp.h", + "linux/securebits.h", "linux/sock_diag.h", "linux/sockios.h", "linux/tls.h", diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 533adc6ebbcae..5ab4aef3d8a35 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2776,6 +2776,14 @@ SCTP_STATUS SCTP_STREAM_RESET_INCOMING SCTP_STREAM_RESET_OUTGOING SCTP_UNORDERED +SECBIT_KEEP_CAPS +SECBIT_KEEP_CAPS_LOCKED +SECBIT_NOROOT +SECBIT_NOROOT_LOCKED +SECBIT_NO_CAP_AMBIENT_RAISE +SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED +SECBIT_NO_SETUID_FIXUP +SECBIT_NO_SETUID_FIXUP_LOCKED SECCOMP_ADDFD_FLAG_SEND SECCOMP_ADDFD_FLAG_SETFD SECCOMP_FILTER_FLAG_LOG @@ -2804,6 +2812,9 @@ SECCOMP_RET_USER_NOTIF SECCOMP_SET_MODE_FILTER SECCOMP_SET_MODE_STRICT SECCOMP_USER_NOTIF_FLAG_CONTINUE +SECUREBITS_DEFAULT +SECURE_ALL_BITS +SECURE_ALL_LOCKS SEEK_DATA SEEK_HOLE SELFMAG diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 09456604215d3..bf973f3b65af6 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -4848,6 +4848,41 @@ pub const IN_ONLYDIR: u32 = 0x0100_0000; pub const IN_DONT_FOLLOW: u32 = 0x0200_0000; pub const IN_EXCL_UNLINK: u32 = 0x0400_0000; +// uapi/linux/securebits.h +const SECURE_NOROOT: c_int = 0; +const SECURE_NOROOT_LOCKED: c_int = 1; + +pub const SECBIT_NOROOT: c_int = issecure_mask(SECURE_NOROOT); +pub const SECBIT_NOROOT_LOCKED: c_int = issecure_mask(SECURE_NOROOT_LOCKED); + +const SECURE_NO_SETUID_FIXUP: c_int = 2; +const SECURE_NO_SETUID_FIXUP_LOCKED: c_int = 3; + +pub const SECBIT_NO_SETUID_FIXUP: c_int = issecure_mask(SECURE_NO_SETUID_FIXUP); +pub const SECBIT_NO_SETUID_FIXUP_LOCKED: c_int = issecure_mask(SECURE_NO_SETUID_FIXUP_LOCKED); + +const SECURE_KEEP_CAPS: c_int = 4; +const SECURE_KEEP_CAPS_LOCKED: c_int = 5; + +pub const SECBIT_KEEP_CAPS: c_int = issecure_mask(SECURE_KEEP_CAPS); +pub const SECBIT_KEEP_CAPS_LOCKED: c_int = issecure_mask(SECURE_KEEP_CAPS_LOCKED); + +const SECURE_NO_CAP_AMBIENT_RAISE: c_int = 6; +const SECURE_NO_CAP_AMBIENT_RAISE_LOCKED: c_int = 7; + +pub const SECBIT_NO_CAP_AMBIENT_RAISE: c_int = issecure_mask(SECURE_NO_CAP_AMBIENT_RAISE); +pub const SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED: c_int = + issecure_mask(SECURE_NO_CAP_AMBIENT_RAISE_LOCKED); + +pub const SECUREBITS_DEFAULT: c_int = 0x00000000; +pub const SECURE_ALL_BITS: c_int = + SECBIT_NOROOT | SECBIT_NO_SETUID_FIXUP | SECBIT_KEEP_CAPS | SECBIT_NO_CAP_AMBIENT_RAISE; +pub const SECURE_ALL_LOCKS: c_int = SECURE_ALL_BITS << 1; + +const fn issecure_mask(x: c_int) -> c_int { + 1 << x +} + // linux/keyctl.h pub const KEY_SPEC_THREAD_KEYRING: i32 = -1; pub const KEY_SPEC_PROCESS_KEYRING: i32 = -2; From 318319c99ab751ee2d9375f47570c47663d3ff8f Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 7 Jul 2025 15:53:26 +0000 Subject: [PATCH 0729/1228] Add `core::mem::{size_of, align_of}` to the prelude Since 1.80 these, along with their `_val` versions, are in the default `core` prelude so they don't need to be imported. 1.80 exceeds our MSRV so we can't use it from there, but we can add it to our prelude for now. (backport ) (cherry picked from commit 26a5ea66ea54e4f099972a9e9b1b5200465978dd) --- src/fuchsia/mod.rs | 28 ++++---- src/macros.rs | 2 + src/primitives.rs | 16 ++--- src/teeos/mod.rs | 8 +-- src/unix/aix/mod.rs | 16 ++--- src/unix/bsd/apple/mod.rs | 46 ++++++------- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 12 ++-- src/unix/bsd/freebsdlike/freebsd/aarch64.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/arm.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/mod.rs | 23 ++++--- src/unix/bsd/freebsdlike/freebsd/powerpc.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/powerpc64.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/riscv64.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/x86.rs | 2 +- .../bsd/freebsdlike/freebsd/x86_64/mod.rs | 2 +- src/unix/bsd/freebsdlike/mod.rs | 2 +- src/unix/bsd/mod.rs | 8 +-- src/unix/bsd/netbsdlike/netbsd/aarch64.rs | 2 +- src/unix/bsd/netbsdlike/netbsd/arm.rs | 2 +- src/unix/bsd/netbsdlike/netbsd/mips.rs | 2 +- src/unix/bsd/netbsdlike/netbsd/mod.rs | 11 ++-- src/unix/bsd/netbsdlike/netbsd/powerpc.rs | 2 +- src/unix/bsd/netbsdlike/netbsd/riscv64.rs | 2 +- src/unix/bsd/netbsdlike/netbsd/x86.rs | 2 +- src/unix/bsd/netbsdlike/netbsd/x86_64.rs | 2 +- src/unix/bsd/netbsdlike/openbsd/aarch64.rs | 2 +- src/unix/bsd/netbsdlike/openbsd/arm.rs | 2 +- src/unix/bsd/netbsdlike/openbsd/mod.rs | 11 ++-- src/unix/bsd/netbsdlike/openbsd/powerpc.rs | 2 +- src/unix/bsd/netbsdlike/openbsd/powerpc64.rs | 2 +- src/unix/bsd/netbsdlike/openbsd/riscv64.rs | 2 +- src/unix/bsd/netbsdlike/openbsd/x86.rs | 2 +- src/unix/bsd/netbsdlike/openbsd/x86_64.rs | 2 +- src/unix/cygwin/mod.rs | 30 ++++----- src/unix/haiku/mod.rs | 18 ++--- src/unix/haiku/native.rs | 65 +++++-------------- src/unix/hurd/mod.rs | 30 ++++----- src/unix/linux_like/android/mod.rs | 12 ++-- src/unix/linux_like/emscripten/mod.rs | 8 +-- src/unix/linux_like/linux/mod.rs | 12 ++-- .../linux_like/linux/musl/b64/powerpc64.rs | 7 +- src/unix/linux_like/mod.rs | 20 +++--- src/unix/newlib/mod.rs | 6 +- src/unix/nto/mod.rs | 28 ++++---- src/unix/redox/mod.rs | 14 ++-- src/unix/solarish/mod.rs | 10 ++- src/vxworks/mod.rs | 11 ++-- 47 files changed, 226 insertions(+), 270 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 22f9c6faf755b..a019ebb1f04cf 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -3250,20 +3250,20 @@ cfg_if! { f! { pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } @@ -3281,21 +3281,21 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); 0 != (cpuset.bits[idx] & (1 << offset)) } @@ -3309,9 +3309,9 @@ f! { } pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { - if ((*cmsg).cmsg_len as size_t) < mem::size_of::() { + if ((*cmsg).cmsg_len as size_t) < size_of::() { core::ptr::null_mut::() - } else if __CMSG_NEXT(cmsg).add(mem::size_of::()) >= __MHDR_END(mhdr) { + } else if __CMSG_NEXT(cmsg).add(size_of::()) >= __MHDR_END(mhdr) { core::ptr::null_mut::() } else { __CMSG_NEXT(cmsg).cast() @@ -3319,7 +3319,7 @@ f! { } pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as size_t >= mem::size_of::() { + if (*mhdr).msg_controllen as size_t >= size_of::() { (*mhdr).msg_control.cast() } else { core::ptr::null_mut::() @@ -3327,15 +3327,15 @@ f! { } pub {const} fn CMSG_ALIGN(len: size_t) -> size_t { - (len + mem::size_of::() - 1) & !(mem::size_of::() - 1) + (len + size_of::() - 1) & !(size_of::() - 1) } pub {const} fn CMSG_SPACE(len: c_uint) -> c_uint { - (CMSG_ALIGN(len as size_t) + CMSG_ALIGN(mem::size_of::())) as c_uint + (CMSG_ALIGN(len as size_t) + CMSG_ALIGN(size_of::())) as c_uint } pub {const} fn CMSG_LEN(len: c_uint) -> c_uint { - (CMSG_ALIGN(mem::size_of::()) + len as size_t) as c_uint + (CMSG_ALIGN(size_of::()) + len as size_t) as c_uint } } @@ -3403,8 +3403,8 @@ safe_f! { } fn __CMSG_LEN(cmsg: *const cmsghdr) -> ssize_t { - ((unsafe { (*cmsg).cmsg_len as size_t } + mem::size_of::() - 1) - & !(mem::size_of::() - 1)) as ssize_t + ((unsafe { (*cmsg).cmsg_len as size_t } + size_of::() - 1) & !(size_of::() - 1)) + as ssize_t } fn __CMSG_NEXT(cmsg: *const cmsghdr) -> *mut c_uchar { diff --git a/src/macros.rs b/src/macros.rs index aac47561d2fbd..5f2a08d5de32d 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -77,6 +77,8 @@ macro_rules! prelude { pub(crate) use ::core::option::Option; #[allow(unused_imports)] pub(crate) use ::core::{fmt, hash, iter, mem}; + #[allow(unused_imports)] + pub(crate) use mem::{align_of, align_of_val, size_of, size_of_val}; // Commonly used types defined in this crate #[allow(unused_imports)] diff --git a/src/primitives.rs b/src/primitives.rs index 668d3340d2abb..307a5dafaa9cb 100644 --- a/src/primitives.rs +++ b/src/primitives.rs @@ -151,16 +151,16 @@ cfg_if! { // // catch the fact that llvm and gcc disagree on how x64 __int128 // // is actually *passed* on the stack (clang underaligns it for // // the same reason that rustc *never* properly aligns it). - // static_assert_eq!(core::mem::size_of::<__int128>(), _SIZE_128); - // static_assert_eq!(core::mem::align_of::<__int128>(), _ALIGN_128); + // static_assert_eq!(size_of::<__int128>(), _SIZE_128); + // static_assert_eq!(align_of::<__int128>(), _ALIGN_128); - // static_assert_eq!(core::mem::size_of::<__uint128>(), _SIZE_128); - // static_assert_eq!(core::mem::align_of::<__uint128>(), _ALIGN_128); + // static_assert_eq!(size_of::<__uint128>(), _SIZE_128); + // static_assert_eq!(align_of::<__uint128>(), _ALIGN_128); - // static_assert_eq!(core::mem::size_of::<__int128_t>(), _SIZE_128); - // static_assert_eq!(core::mem::align_of::<__int128_t>(), _ALIGN_128); + // static_assert_eq!(size_of::<__int128_t>(), _SIZE_128); + // static_assert_eq!(align_of::<__int128_t>(), _ALIGN_128); - // static_assert_eq!(core::mem::size_of::<__uint128_t>(), _SIZE_128); - // static_assert_eq!(core::mem::align_of::<__uint128_t>(), _ALIGN_128); + // static_assert_eq!(size_of::<__uint128_t>(), _SIZE_128); + // static_assert_eq!(align_of::<__uint128_t>(), _ALIGN_128); } } diff --git a/src/teeos/mod.rs b/src/teeos/mod.rs index 9929e70e61e63..fd9c0b168aba4 100644 --- a/src/teeos/mod.rs +++ b/src/teeos/mod.rs @@ -99,7 +99,7 @@ pub struct pthread_attr_t { #[repr(C)] pub struct cpu_set_t { - bits: [c_ulong; 128 / core::mem::size_of::()], + bits: [c_ulong; 128 / size_of::()], } #[repr(C)] @@ -137,7 +137,7 @@ pub struct mbstate_t { #[repr(C)] pub struct sem_t { - pub __val: [c_int; 4 * core::mem::size_of::() / core::mem::size_of::()], + pub __val: [c_int; 4 * size_of::() / size_of::()], } #[repr(C)] @@ -1342,7 +1342,7 @@ pub fn errno() -> c_int { pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int { let mut s: u32 = 0; - let size_of_mask = core::mem::size_of_val(&cpuset.bits[0]); + let size_of_mask = size_of_val(&cpuset.bits[0]); for i in cpuset.bits[..(size / size_of_mask)].iter() { s += i.count_ones(); @@ -1351,5 +1351,5 @@ pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int { } pub fn CPU_COUNT(cpuset: &cpu_set_t) -> c_int { - CPU_COUNT_S(core::mem::size_of::(), cpuset) + CPU_COUNT_S(size_of::(), cpuset) } diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 985a44c41f5ed..13feca788cb3d 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -2434,7 +2434,7 @@ pub const ACCOUNTING: c_short = 9; f! { pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= mem::size_of::() { + if (*mhdr).msg_controllen as usize >= size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { core::ptr::null_mut::() @@ -2445,7 +2445,7 @@ f! { if cmsg.is_null() { CMSG_FIRSTHDR(mhdr) } else { - if (cmsg as usize + (*cmsg).cmsg_len as usize + mem::size_of::()) + if (cmsg as usize + (*cmsg).cmsg_len as usize + size_of::()) > ((*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize) { core::ptr::null_mut::() @@ -2457,15 +2457,15 @@ f! { } pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).offset(mem::size_of::() as isize) + (cmsg as *mut c_uchar).offset(size_of::() as isize) } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - mem::size_of::() as c_uint + length + size_of::() as c_uint + length } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - mem::size_of::() as c_uint + length + size_of::() as c_uint + length } pub fn FD_ZERO(set: *mut fd_set) -> () { @@ -2475,21 +2475,21 @@ f! { } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { - let bits = mem::size_of::() * 8; + let bits = size_of::() * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] |= 1 << (fd % bits); return; } pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { - let bits = mem::size_of::() * 8; + let bits = size_of::() * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { - let bits = mem::size_of::() * 8; + let bits = size_of::() * 8; let fd = fd as usize; return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0; } diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 14b35e200ec39..0535336e34511 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -4642,7 +4642,7 @@ pub const PROC_PIDVNODEPATHINFO: c_int = 9; pub const PROC_PIDPATHINFO_MAXSIZE: c_int = 4096; pub const PROC_PIDLISTFDS: c_int = 1; -pub const PROC_PIDLISTFD_SIZE: c_int = mem::size_of::() as c_int; +pub const PROC_PIDLISTFD_SIZE: c_int = size_of::() as c_int; pub const PROX_FDTYPE_ATALK: c_int = 0; pub const PROX_FDTYPE_VNODE: c_int = 1; pub const PROX_FDTYPE_SOCKET: c_int = 2; @@ -5129,48 +5129,42 @@ pub const VMADDR_CID_HOST: c_uint = 2; pub const VMADDR_PORT_ANY: c_uint = 0xFFFFFFFF; const fn __DARWIN_ALIGN32(p: usize) -> usize { - const __DARWIN_ALIGNBYTES32: usize = mem::size_of::() - 1; + const __DARWIN_ALIGNBYTES32: usize = size_of::() - 1; (p + __DARWIN_ALIGNBYTES32) & !__DARWIN_ALIGNBYTES32 } pub const THREAD_EXTENDED_POLICY_COUNT: mach_msg_type_number_t = - (mem::size_of::() / mem::size_of::()) - as mach_msg_type_number_t; + (size_of::() / size_of::()) as mach_msg_type_number_t; pub const THREAD_TIME_CONSTRAINT_POLICY_COUNT: mach_msg_type_number_t = - (mem::size_of::() / mem::size_of::()) + (size_of::() / size_of::()) as mach_msg_type_number_t; pub const THREAD_PRECEDENCE_POLICY_COUNT: mach_msg_type_number_t = - (mem::size_of::() / mem::size_of::()) + (size_of::() / size_of::()) as mach_msg_type_number_t; pub const THREAD_AFFINITY_POLICY_COUNT: mach_msg_type_number_t = - (mem::size_of::() / mem::size_of::()) - as mach_msg_type_number_t; + (size_of::() / size_of::()) as mach_msg_type_number_t; pub const THREAD_BACKGROUND_POLICY_COUNT: mach_msg_type_number_t = - (mem::size_of::() / mem::size_of::()) + (size_of::() / size_of::()) as mach_msg_type_number_t; pub const THREAD_LATENCY_QOS_POLICY_COUNT: mach_msg_type_number_t = - (mem::size_of::() / mem::size_of::()) + (size_of::() / size_of::()) as mach_msg_type_number_t; pub const THREAD_THROUGHPUT_QOS_POLICY_COUNT: mach_msg_type_number_t = - (mem::size_of::() / mem::size_of::()) + (size_of::() / size_of::()) as mach_msg_type_number_t; pub const THREAD_BASIC_INFO_COUNT: mach_msg_type_number_t = - (mem::size_of::() / mem::size_of::()) - as mach_msg_type_number_t; + (size_of::() / size_of::()) as mach_msg_type_number_t; pub const THREAD_IDENTIFIER_INFO_COUNT: mach_msg_type_number_t = - (mem::size_of::() / mem::size_of::()) - as mach_msg_type_number_t; + (size_of::() / size_of::()) as mach_msg_type_number_t; pub const THREAD_EXTENDED_INFO_COUNT: mach_msg_type_number_t = - (mem::size_of::() / mem::size_of::()) - as mach_msg_type_number_t; + (size_of::() / size_of::()) as mach_msg_type_number_t; pub const TASK_THREAD_TIMES_INFO_COUNT: u32 = - (mem::size_of::() / mem::size_of::()) as u32; + (size_of::() / size_of::()) as u32; pub const MACH_TASK_BASIC_INFO_COUNT: u32 = - (mem::size_of::() / mem::size_of::()) as u32; -pub const HOST_VM_INFO64_COUNT: mach_msg_type_number_t = (mem::size_of::() - / mem::size_of::()) - as mach_msg_type_number_t; + (size_of::() / size_of::()) as u32; +pub const HOST_VM_INFO64_COUNT: mach_msg_type_number_t = + (size_of::() / size_of::()) as mach_msg_type_number_t; // bsd/net/if_mib.h /// Non-interface-specific @@ -5209,7 +5203,7 @@ f! { let cmsg_len = (*cmsg).cmsg_len as usize; let next = cmsg as usize + __DARWIN_ALIGN32(cmsg_len); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; - if next + __DARWIN_ALIGN32(mem::size_of::()) > max { + if next + __DARWIN_ALIGN32(size_of::()) > max { core::ptr::null_mut() } else { next as *mut cmsghdr @@ -5217,15 +5211,15 @@ f! { } pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).add(__DARWIN_ALIGN32(mem::size_of::())) + (cmsg as *mut c_uchar).add(__DARWIN_ALIGN32(size_of::())) } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (__DARWIN_ALIGN32(mem::size_of::()) + __DARWIN_ALIGN32(length as usize)) as c_uint + (__DARWIN_ALIGN32(size_of::()) + __DARWIN_ALIGN32(length as usize)) as c_uint } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - (__DARWIN_ALIGN32(mem::size_of::()) + length as usize) as c_uint + (__DARWIN_ALIGN32(size_of::()) + length as usize) as c_uint } pub {const} fn VM_MAKE_TAG(id: u8) -> u32 { diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 8ecb3336277dd..bf2c06383d92e 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -949,7 +949,7 @@ pub const CPUCTL_MSRSBIT: c_int = 0xc0106305; pub const CPUCTL_MSRCBIT: c_int = 0xc0106306; pub const CPUCTL_CPUID_COUNT: c_int = 0xc0106307; -pub const CPU_SETSIZE: size_t = mem::size_of::() * 8; +pub const CPU_SETSIZE: size_t = size_of::() * 8; pub const EVFILT_READ: i16 = -1; pub const EVFILT_WRITE: i16 = -2; @@ -1421,23 +1421,23 @@ pub const RTAX_MAX: c_int = 11; const_fn! { {const} fn _CMSG_ALIGN(n: usize) -> usize { - (n + (mem::size_of::() - 1)) & !(mem::size_of::() - 1) + (n + (size_of::() - 1)) & !(size_of::() - 1) } } f! { pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).offset(_CMSG_ALIGN(mem::size_of::()) as isize) + (cmsg as *mut c_uchar).offset(_CMSG_ALIGN(size_of::()) as isize) } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - (_CMSG_ALIGN(mem::size_of::()) + length as usize) as c_uint + (_CMSG_ALIGN(size_of::()) + length as usize) as c_uint } pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { let next = cmsg as usize + _CMSG_ALIGN((*cmsg).cmsg_len as usize) - + _CMSG_ALIGN(mem::size_of::()); + + _CMSG_ALIGN(size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next <= max { (cmsg as usize + _CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr @@ -1447,7 +1447,7 @@ f! { } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (_CMSG_ALIGN(mem::size_of::()) + _CMSG_ALIGN(length as usize)) as c_uint + (_CMSG_ALIGN(size_of::()) + _CMSG_ALIGN(length as usize)) as c_uint } pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { diff --git a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs index 7f5693dcf5d5c..e74c26bb46e2c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs @@ -33,7 +33,7 @@ s_no_extra_traits! { } } -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; cfg_if! { if #[cfg(feature = "extra_traits")] { diff --git a/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/unix/bsd/freebsdlike/freebsd/arm.rs index 27eeafe200f53..c17e12913d8f8 100644 --- a/src/unix/bsd/freebsdlike/freebsd/arm.rs +++ b/src/unix/bsd/freebsdlike/freebsd/arm.rs @@ -43,7 +43,7 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 9016ca0a99703..1ab5623ae5b47 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -4726,19 +4726,18 @@ const_fn! { f! { pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).add(_ALIGN(mem::size_of::())) + (cmsg as *mut c_uchar).add(_ALIGN(size_of::())) } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - _ALIGN(mem::size_of::()) as c_uint + length + _ALIGN(size_of::()) as c_uint + length } pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { return crate::CMSG_FIRSTHDR(mhdr); } - let next = - cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(mem::size_of::()); + let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { core::ptr::null_mut::() @@ -4748,7 +4747,7 @@ f! { } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (_ALIGN(mem::size_of::()) + _ALIGN(length as usize)) as c_uint + (_ALIGN(size_of::()) + _ALIGN(length as usize)) as c_uint } pub fn MALLOCX_ALIGN(lg: c_uint) -> c_int { @@ -4765,7 +4764,7 @@ f! { pub fn SOCKCREDSIZE(ngrps: usize) -> usize { let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 }; - mem::size_of::() + mem::size_of::() * ngrps + size_of::() + size_of::() * ngrps } pub fn uname(buf: *mut crate::utsname) -> c_int { @@ -4785,27 +4784,27 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpuset_t) -> () { - let bitset_bits = 8 * mem::size_of::(); + let bitset_bits = 8 * size_of::(); let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); cpuset.__bits[idx] |= 1 << offset; } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpuset_t) -> () { - let bitset_bits = 8 * mem::size_of::(); + let bitset_bits = 8 * size_of::(); let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); cpuset.__bits[idx] &= !(1 << offset); } pub fn CPU_ISSET(cpu: usize, cpuset: &cpuset_t) -> bool { - let bitset_bits = 8 * mem::size_of::(); + let bitset_bits = 8 * size_of::(); let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); 0 != cpuset.__bits[idx] & (1 << offset) } pub fn CPU_COUNT(cpuset: &cpuset_t) -> c_int { let mut s: u32 = 0; - let cpuset_size = mem::size_of::(); - let bitset_size = mem::size_of::(); + let cpuset_size = size_of::(); + let bitset_size = size_of::(); for i in cpuset.__bits[..(cpuset_size / bitset_size)].iter() { s += i.count_ones(); @@ -4815,7 +4814,7 @@ f! { pub fn SOCKCRED2SIZE(ngrps: usize) -> usize { let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 }; - mem::size_of::() + mem::size_of::() * ngrps + size_of::() + size_of::() * ngrps } pub fn PROT_MAX(x: c_int) -> c_int { diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs index a6d9ed6d7f4da..e4275b10ba508 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs @@ -53,7 +53,7 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs index 87b425ad9b096..b5a81311ecc60 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs @@ -53,7 +53,7 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; diff --git a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs index bc065cfa58fae..5ae5d34a74660 100644 --- a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs @@ -107,7 +107,7 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index b739719340438..5becde55db43e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -124,7 +124,7 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const MINSIGSTKSZ: size_t = 2048; // 512 * 4 diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index 4ee20901436cf..27addc6361d1e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -317,7 +317,7 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 644e035e2c67a..6d32a1dc95a48 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -427,7 +427,7 @@ cfg_if! { } // Non-public helper constant -const SIZEOF_LONG: usize = mem::size_of::(); +const SIZEOF_LONG: usize = size_of::(); #[deprecated( since = "0.2.64", diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index f2f17f4681a56..cb83ccdc7efc0 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -573,7 +573,7 @@ pub const RTAX_BRD: c_int = 7; f! { pub fn CMSG_FIRSTHDR(mhdr: *const crate::msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= mem::size_of::() { + if (*mhdr).msg_controllen as usize >= size_of::() { (*mhdr).msg_control.cast::() } else { core::ptr::null_mut() @@ -581,20 +581,20 @@ f! { } pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { - let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { - let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { - let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] |= 1 << (fd % bits); return; diff --git a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs index b511fc8457752..e0206af04f8f1 100644 --- a/src/unix/bsd/netbsdlike/netbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/aarch64.rs @@ -65,7 +65,7 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const PT_GETREGS: c_int = PT_FIRSTMACH + 0; pub const PT_SETREGS: c_int = PT_FIRSTMACH + 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/arm.rs b/src/unix/bsd/netbsdlike/netbsd/arm.rs index b252862dfe650..9ff44bd40826a 100644 --- a/src/unix/bsd/netbsdlike/netbsd/arm.rs +++ b/src/unix/bsd/netbsdlike/netbsd/arm.rs @@ -3,7 +3,7 @@ use crate::PT_FIRSTMACH; pub type __cpu_simple_lock_nv_t = c_int; -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const PT_GETREGS: c_int = PT_FIRSTMACH + 1; pub const PT_SETREGS: c_int = PT_FIRSTMACH + 2; diff --git a/src/unix/bsd/netbsdlike/netbsd/mips.rs b/src/unix/bsd/netbsdlike/netbsd/mips.rs index eabfe1bbcc1e8..1b24b4f6e3159 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mips.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mips.rs @@ -3,7 +3,7 @@ use crate::PT_FIRSTMACH; pub type __cpu_simple_lock_nv_t = c_int; -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const PT_GETREGS: c_int = PT_FIRSTMACH + 1; pub const PT_SETREGS: c_int = PT_FIRSTMACH + 2; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 7bcb55ac25d9e..1367276762d61 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2285,19 +2285,18 @@ const_fn! { f! { pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).add(_ALIGN(mem::size_of::())) + (cmsg as *mut c_uchar).add(_ALIGN(size_of::())) } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - _ALIGN(mem::size_of::()) as c_uint + length + _ALIGN(size_of::()) as c_uint + length } pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { return crate::CMSG_FIRSTHDR(mhdr); } - let next = - cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(mem::size_of::()); + let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { core::ptr::null_mut::() @@ -2307,7 +2306,7 @@ f! { } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (_ALIGN(mem::size_of::()) + _ALIGN(length as usize)) as c_uint + (_ALIGN(size_of::()) + _ALIGN(length as usize)) as c_uint } // dirfd() is a macro on netbsd to access @@ -2319,7 +2318,7 @@ f! { pub fn SOCKCREDSIZE(ngrps: usize) -> usize { let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 }; - mem::size_of::() + mem::size_of::() * ngrps + size_of::() + size_of::() * ngrps } pub fn PROT_MPROTECT(x: c_int) -> c_int { diff --git a/src/unix/bsd/netbsdlike/netbsd/powerpc.rs b/src/unix/bsd/netbsdlike/netbsd/powerpc.rs index fc4cc3898e12a..f8f2d56c0d374 100644 --- a/src/unix/bsd/netbsdlike/netbsd/powerpc.rs +++ b/src/unix/bsd/netbsdlike/netbsd/powerpc.rs @@ -3,7 +3,7 @@ use crate::PT_FIRSTMACH; pub type __cpu_simple_lock_nv_t = c_int; -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const PT_STEP: c_int = PT_FIRSTMACH + 0; pub const PT_GETREGS: c_int = PT_FIRSTMACH + 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs index 550c3bd7bb4ea..47240cb2818c0 100644 --- a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs @@ -22,7 +22,7 @@ s_no_extra_traits! { } } -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const PT_GETREGS: c_int = PT_FIRSTMACH + 0; pub const PT_SETREGS: c_int = PT_FIRSTMACH + 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/x86.rs b/src/unix/bsd/netbsdlike/netbsd/x86.rs index 92e160d9bca0c..95f55768973ca 100644 --- a/src/unix/bsd/netbsdlike/netbsd/x86.rs +++ b/src/unix/bsd/netbsdlike/netbsd/x86.rs @@ -2,4 +2,4 @@ use crate::prelude::*; pub type __cpu_simple_lock_nv_t = c_uchar; -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; diff --git a/src/unix/bsd/netbsdlike/netbsd/x86_64.rs b/src/unix/bsd/netbsdlike/netbsd/x86_64.rs index 5d31c0661e9c6..77daa4b1e9eb2 100644 --- a/src/unix/bsd/netbsdlike/netbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/x86_64.rs @@ -20,7 +20,7 @@ s! { } } -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const PT_STEP: c_int = PT_FIRSTMACH + 0; pub const PT_GETREGS: c_int = PT_FIRSTMACH + 1; diff --git a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs index 2c4b1df26ce83..e0d347fb5e6b8 100644 --- a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs @@ -15,6 +15,6 @@ s! { } } -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/arm.rs b/src/unix/bsd/netbsdlike/openbsd/arm.rs index ae91cde0a1739..8b3f72139d86e 100644 --- a/src/unix/bsd/netbsdlike/openbsd/arm.rs +++ b/src/unix/bsd/netbsdlike/openbsd/arm.rs @@ -1,5 +1,5 @@ use crate::prelude::*; -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index d0bb4badac271..3a7aeadf4656d 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1633,7 +1633,7 @@ pub const NTFS_MFLAG_ALLNAMES: c_int = 0x2; pub const TMPFS_ARGS_VERSION: c_int = 1; const SI_MAXSZ: size_t = 128; -const SI_PAD: size_t = (SI_MAXSZ / mem::size_of::()) - 3; +const SI_PAD: size_t = (SI_MAXSZ / size_of::()) - 3; pub const MAP_STACK: c_int = 0x4000; pub const MAP_CONCEAL: c_int = 0x8000; @@ -1859,19 +1859,18 @@ const_fn! { f! { pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).offset(_ALIGN(mem::size_of::()) as isize) + (cmsg as *mut c_uchar).offset(_ALIGN(size_of::()) as isize) } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - _ALIGN(mem::size_of::()) as c_uint + length + _ALIGN(size_of::()) as c_uint + length } pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if cmsg.is_null() { return crate::CMSG_FIRSTHDR(mhdr); } - let next = - cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(mem::size_of::()); + let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { core::ptr::null_mut::() @@ -1881,7 +1880,7 @@ f! { } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (_ALIGN(mem::size_of::()) + _ALIGN(length as usize)) as c_uint + (_ALIGN(size_of::()) + _ALIGN(length as usize)) as c_uint } } diff --git a/src/unix/bsd/netbsdlike/openbsd/powerpc.rs b/src/unix/bsd/netbsdlike/openbsd/powerpc.rs index ae91cde0a1739..8b3f72139d86e 100644 --- a/src/unix/bsd/netbsdlike/openbsd/powerpc.rs +++ b/src/unix/bsd/netbsdlike/openbsd/powerpc.rs @@ -1,5 +1,5 @@ use crate::prelude::*; -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs b/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs index 1c3d8df3b7956..5ebe85741454e 100644 --- a/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs @@ -1,5 +1,5 @@ use crate::prelude::*; -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/riscv64.rs b/src/unix/bsd/netbsdlike/openbsd/riscv64.rs index a0865406b80f3..3545763d12c54 100644 --- a/src/unix/bsd/netbsdlike/openbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/riscv64.rs @@ -20,6 +20,6 @@ s! { } } -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/x86.rs b/src/unix/bsd/netbsdlike/openbsd/x86.rs index d2cf7832edd7f..97dc58327d222 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86.rs @@ -1,5 +1,5 @@ use crate::prelude::*; -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs index 33a19f969ac97..984570c387013 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs @@ -98,7 +98,7 @@ cfg_if! { } } -pub(crate) const _ALIGNBYTES: usize = mem::size_of::() - 1; +pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index b03c882027037..2353f68dbc153 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -272,7 +272,7 @@ s! { } pub struct fd_set { - fds_bits: [fd_mask; FD_SETSIZE / core::mem::size_of::() / 8], + fds_bits: [fd_mask; FD_SETSIZE / size_of::() / 8], } pub struct _uc_fpxreg { @@ -1774,19 +1774,19 @@ pub const FALLOC_FL_KEEP_SIZE: c_int = 0x1000; f! { pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = core::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = core::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = core::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); } @@ -1798,13 +1798,13 @@ f! { pub fn CPU_ALLOC_SIZE(count: c_int) -> size_t { let _dummy: cpu_set_t = cpu_set_t { bits: [0; 16] }; - let size_in_bits = 8 * core::mem::size_of_val(&_dummy.bits[0]); + let size_in_bits = 8 * size_of_val(&_dummy.bits[0]); ((count as size_t + size_in_bits - 1) / 8) as size_t } pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int { let mut s: u32 = 0; - let size_of_mask = core::mem::size_of_val(&cpuset.bits[0]); + let size_of_mask = size_of_val(&cpuset.bits[0]); for i in cpuset.bits[..(size / size_of_mask)].iter() { s += i.count_ones(); } @@ -1817,7 +1817,7 @@ f! { } } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * core::mem::size_of_val(&cpuset.bits[0]); + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); if cpu < size_in_bits { let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; @@ -1825,7 +1825,7 @@ f! { } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * core::mem::size_of_val(&cpuset.bits[0]); + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); if cpu < size_in_bits { let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); @@ -1833,7 +1833,7 @@ f! { } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * core::mem::size_of_val(&cpuset.bits[0]); + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); if cpu < size_in_bits { let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); 0 != (cpuset.bits[idx] & (1 << offset)) @@ -1843,7 +1843,7 @@ f! { } pub fn CPU_COUNT(cpuset: &cpu_set_t) -> c_int { - CPU_COUNT_S(::core::mem::size_of::(), cpuset) + CPU_COUNT_S(size_of::(), cpuset) } pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { @@ -1851,15 +1851,15 @@ f! { } pub fn CMSG_LEN(length: c_uint) -> c_uint { - CMSG_ALIGN(::core::mem::size_of::()) as c_uint + length + CMSG_ALIGN(size_of::()) as c_uint + length } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::core::mem::size_of::())) as c_uint + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(size_of::())) as c_uint } pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= core::mem::size_of::() { + if (*mhdr).msg_controllen as usize >= size_of::() { (*mhdr).msg_control.cast() } else { core::ptr::null_mut() @@ -1869,7 +1869,7 @@ f! { pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { let next = (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; - if next as usize + CMSG_ALIGN(::core::mem::size_of::()) as usize > max { + if next as usize + CMSG_ALIGN(size_of::()) as usize > max { core::ptr::null_mut() } else { next @@ -1931,7 +1931,7 @@ safe_f! { const_fn! { {const} fn CMSG_ALIGN(len: usize) -> usize { - len + core::mem::size_of::() - 1 & !(::core::mem::size_of::() - 1) + len + size_of::() - 1 & !(size_of::() - 1) } } diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 9d04266c794da..790591fc0b9f7 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1505,13 +1505,13 @@ pub const POSIX_SPAWN_SETSID: c_int = 0x40; const_fn! { {const} fn CMSG_ALIGN(len: usize) -> usize { - len + mem::size_of::() - 1 & !(mem::size_of::() - 1) + len + size_of::() - 1 & !(size_of::() - 1) } } f! { pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= mem::size_of::() { + if (*mhdr).msg_controllen as usize >= size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { core::ptr::null_mut::() @@ -1519,15 +1519,15 @@ f! { } pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).offset(CMSG_ALIGN(mem::size_of::()) as isize) + (cmsg as *mut c_uchar).offset(CMSG_ALIGN(size_of::()) as isize) } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(mem::size_of::())) as c_uint + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(size_of::())) as c_uint } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - CMSG_ALIGN(mem::size_of::()) as c_uint + length + CMSG_ALIGN(size_of::()) as c_uint + length } pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { @@ -1536,7 +1536,7 @@ f! { } let next = cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize) - + CMSG_ALIGN(mem::size_of::()); + + CMSG_ALIGN(size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next > max { core::ptr::null_mut::() @@ -1547,20 +1547,20 @@ f! { pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs index 446c2fa0433e9..082e85b326ead 100644 --- a/src/unix/haiku/native.rs +++ b/src/unix/haiku/native.rs @@ -1298,17 +1298,12 @@ extern "C" { // The following functions are defined as macros in C/C++ #[inline] pub unsafe fn get_cpu_info(firstCPU: u32, cpuCount: u32, info: *mut cpu_info) -> status_t { - _get_cpu_info_etc( - firstCPU, - cpuCount, - info, - core::mem::size_of::() as size_t, - ) + _get_cpu_info_etc(firstCPU, cpuCount, info, size_of::() as size_t) } #[inline] pub unsafe fn get_area_info(id: area_id, info: *mut area_info) -> status_t { - _get_area_info(id, info, core::mem::size_of::() as usize) + _get_area_info(id, info, size_of::() as usize) } #[inline] @@ -1317,17 +1312,12 @@ pub unsafe fn get_next_area_info( cookie: *mut isize, info: *mut area_info, ) -> status_t { - _get_next_area_info( - team, - cookie, - info, - core::mem::size_of::() as usize, - ) + _get_next_area_info(team, cookie, info, size_of::() as usize) } #[inline] pub unsafe fn get_port_info(port: port_id, buf: *mut port_info) -> status_t { - _get_port_info(port, buf, core::mem::size_of::() as size_t) + _get_port_info(port, buf, size_of::() as size_t) } #[inline] @@ -1336,12 +1326,7 @@ pub unsafe fn get_next_port_info( cookie: *mut i32, portInfo: *mut port_info, ) -> status_t { - _get_next_port_info( - port, - cookie, - portInfo, - core::mem::size_of::() as size_t, - ) + _get_next_port_info(port, cookie, portInfo, size_of::() as size_t) } #[inline] @@ -1354,7 +1339,7 @@ pub unsafe fn get_port_message_info_etc( _get_port_message_info_etc( port, info, - core::mem::size_of::() as size_t, + size_of::() as size_t, flags, timeout, ) @@ -1362,42 +1347,32 @@ pub unsafe fn get_port_message_info_etc( #[inline] pub unsafe fn get_sem_info(id: sem_id, info: *mut sem_info) -> status_t { - _get_sem_info(id, info, core::mem::size_of::() as size_t) + _get_sem_info(id, info, size_of::() as size_t) } #[inline] pub unsafe fn get_next_sem_info(team: team_id, cookie: *mut i32, info: *mut sem_info) -> status_t { - _get_next_sem_info( - team, - cookie, - info, - core::mem::size_of::() as size_t, - ) + _get_next_sem_info(team, cookie, info, size_of::() as size_t) } #[inline] pub unsafe fn get_team_info(team: team_id, info: *mut team_info) -> status_t { - _get_team_info(team, info, core::mem::size_of::() as size_t) + _get_team_info(team, info, size_of::() as size_t) } #[inline] pub unsafe fn get_next_team_info(cookie: *mut i32, info: *mut team_info) -> status_t { - _get_next_team_info(cookie, info, core::mem::size_of::() as size_t) + _get_next_team_info(cookie, info, size_of::() as size_t) } #[inline] pub unsafe fn get_team_usage_info(team: team_id, who: i32, info: *mut team_usage_info) -> status_t { - _get_team_usage_info( - team, - who, - info, - core::mem::size_of::() as size_t, - ) + _get_team_usage_info(team, who, info, size_of::() as size_t) } #[inline] pub unsafe fn get_thread_info(id: thread_id, info: *mut thread_info) -> status_t { - _get_thread_info(id, info, core::mem::size_of::() as size_t) + _get_thread_info(id, info, size_of::() as size_t) } #[inline] @@ -1406,18 +1381,13 @@ pub unsafe fn get_next_thread_info( cookie: *mut i32, info: *mut thread_info, ) -> status_t { - _get_next_thread_info( - team, - cookie, - info, - core::mem::size_of::() as size_t, - ) + _get_next_thread_info(team, cookie, info, size_of::() as size_t) } // kernel/image.h #[inline] pub unsafe fn get_image_info(image: image_id, info: *mut image_info) -> status_t { - _get_image_info(image, info, core::mem::size_of::() as size_t) + _get_image_info(image, info, size_of::() as size_t) } #[inline] @@ -1426,10 +1396,5 @@ pub unsafe fn get_next_image_info( cookie: *mut i32, info: *mut image_info, ) -> status_t { - _get_next_image_info( - team, - cookie, - info, - core::mem::size_of::() as size_t, - ) + _get_next_image_info(team, cookie, info, size_of::() as size_t) } diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 96dd443b3196d..1f7276eb36f1c 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -3416,14 +3416,14 @@ const _UTSNAME_LENGTH: usize = 1024; const_fn! { {const} fn CMSG_ALIGN(len: usize) -> usize { - (len + mem::size_of::() - 1) & !(mem::size_of::() - 1) + (len + size_of::() - 1) & !(size_of::() - 1) } } // functions f! { pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= mem::size_of::() { + if (*mhdr).msg_controllen as usize >= size_of::() { (*mhdr).msg_control.cast::() } else { core::ptr::null_mut::() @@ -3431,19 +3431,19 @@ f! { } pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).offset(CMSG_ALIGN(mem::size_of::()) as isize) + (cmsg as *mut c_uchar).offset(CMSG_ALIGN(size_of::()) as isize) } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(mem::size_of::())) as c_uint + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(size_of::())) as c_uint } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - CMSG_ALIGN(mem::size_of::()) as c_uint + length + CMSG_ALIGN(size_of::()) as c_uint + length } pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { - if ((*cmsg).cmsg_len as usize) < mem::size_of::() { + if ((*cmsg).cmsg_len as usize) < size_of::() { return core::ptr::null_mut::(); } let next = (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; @@ -3459,7 +3459,7 @@ f! { pub fn CPU_ALLOC_SIZE(count: c_int) -> size_t { let _dummy: cpu_set_t = mem::zeroed(); - let size_in_bits = 8 * mem::size_of_val(&_dummy.bits[0]); + let size_in_bits = 8 * size_of_val(&_dummy.bits[0]); ((count as size_t + size_in_bits - 1) / 8) as size_t } @@ -3470,26 +3470,26 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); 0 != (cpuset.bits[idx] & (1 << offset)) } pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int { let mut s: u32 = 0; - let size_of_mask = mem::size_of_val(&cpuset.bits[0]); + let size_of_mask = size_of_val(&cpuset.bits[0]); for i in cpuset.bits[..(size / size_of_mask)].iter() { s += i.count_ones(); } @@ -3497,7 +3497,7 @@ f! { } pub fn CPU_COUNT(cpuset: &cpu_set_t) -> c_int { - CPU_COUNT_S(mem::size_of::(), cpuset) + CPU_COUNT_S(size_of::(), cpuset) } pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { @@ -3514,20 +3514,20 @@ f! { pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 8d20394790f57..7201b09982eb7 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3402,7 +3402,7 @@ f! { pub fn CPU_ALLOC_SIZE(count: c_int) -> size_t { let _dummy: cpu_set_t = mem::zeroed(); - let size_in_bits = 8 * mem::size_of_val(&_dummy.__bits[0]); + let size_in_bits = 8 * size_of_val(&_dummy.__bits[0]); ((count as size_t + size_in_bits - 1) / 8) as size_t } @@ -3413,28 +3413,28 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc + let size_in_bits = 8 * size_of_val(&cpuset.__bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.__bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc + let size_in_bits = 8 * size_of_val(&cpuset.__bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.__bits[idx] &= !(1 << offset); () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * mem::size_of_val(&cpuset.__bits[0]); + let size_in_bits = 8 * size_of_val(&cpuset.__bits[0]); let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); 0 != (cpuset.__bits[idx] & (1 << offset)) } pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int { let mut s: u32 = 0; - let size_of_mask = mem::size_of_val(&cpuset.__bits[0]); + let size_of_mask = size_of_val(&cpuset.__bits[0]); for i in cpuset.__bits[..(size / size_of_mask)].iter() { s += i.count_ones(); } @@ -3442,7 +3442,7 @@ f! { } pub fn CPU_COUNT(cpuset: &cpu_set_t) -> c_int { - CPU_COUNT_S(mem::size_of::(), cpuset) + CPU_COUNT_S(size_of::(), cpuset) } pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 57d00d1879930..1d00f3d404ea1 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -1365,7 +1365,7 @@ pub const SOMAXCONN: c_int = 128; f! { pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { - if ((*cmsg).cmsg_len as usize) < mem::size_of::() { + if ((*cmsg).cmsg_len as usize) < size_of::() { return core::ptr::null_mut::(); } let next = (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; @@ -1384,21 +1384,21 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); 0 != (cpuset.bits[idx] & (1 << offset)) } diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index bf973f3b65af6..e4874760155b1 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1,7 +1,5 @@ //! Linux-specific definitions for linux-like values -use core::mem::size_of; - use crate::prelude::*; use crate::{sock_filter, _IO, _IOR, _IOW, _IOWR}; @@ -5960,7 +5958,7 @@ f! { pub fn CPU_ALLOC_SIZE(count: c_int) -> size_t { let _dummy: cpu_set_t = mem::zeroed(); - let size_in_bits = 8 * mem::size_of_val(&_dummy.bits[0]); + let size_in_bits = 8 * size_of_val(&_dummy.bits[0]); ((count as size_t + size_in_bits - 1) / 8) as size_t } @@ -5971,26 +5969,26 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] |= 1 << offset; } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); // 32, 64 etc let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); cpuset.bits[idx] &= !(1 << offset); } pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); 0 != (cpuset.bits[idx] & (1 << offset)) } pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int { let mut s: u32 = 0; - let size_of_mask = mem::size_of_val(&cpuset.bits[0]); + let size_of_mask = size_of_val(&cpuset.bits[0]); for i in &cpuset.bits[..(size / size_of_mask)] { s += i.count_ones(); } diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index a313aac21df09..bbcd382211dfd 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -95,8 +95,11 @@ s! { } pub const MADV_SOFT_OFFLINE: c_int = 101; -#[deprecated(since = "0.2.175", note = "Linux does not define MAP_32BIT on any architectures \ - other than x86 and x86_64, this constant will be removed in the future")] +#[deprecated( + since = "0.2.175", + note = "Linux does not define MAP_32BIT on any architectures \ + other than x86 and x86_64, this constant will be removed in the future" +)] pub const MAP_32BIT: c_int = 0x0040; pub const O_APPEND: c_int = 1024; pub const O_DIRECT: c_int = 0x20000; diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 42f4efe42aebb..4e0d6124d880a 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1765,17 +1765,17 @@ cfg_if! { /// Build an ioctl number for an read-only ioctl. pub const fn _IOR(ty: u32, nr: u32) -> Ioctl { - _IOC(_IOC_READ, ty, nr, mem::size_of::()) + _IOC(_IOC_READ, ty, nr, size_of::()) } /// Build an ioctl number for an write-only ioctl. pub const fn _IOW(ty: u32, nr: u32) -> Ioctl { - _IOC(_IOC_WRITE, ty, nr, mem::size_of::()) + _IOC(_IOC_WRITE, ty, nr, size_of::()) } /// Build an ioctl number for a read-write ioctl. pub const fn _IOWR(ty: u32, nr: u32) -> Ioctl { - _IOC(_IOC_READ | _IOC_WRITE, ty, nr, mem::size_of::()) + _IOC(_IOC_READ | _IOC_WRITE, ty, nr, size_of::()) } extern "C" { @@ -1787,13 +1787,13 @@ cfg_if! { const_fn! { {const} fn CMSG_ALIGN(len: usize) -> usize { - (len + mem::size_of::() - 1) & !(mem::size_of::() - 1) + (len + size_of::() - 1) & !(size_of::() - 1) } } f! { pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= mem::size_of::() { + if (*mhdr).msg_controllen as usize >= size_of::() { (*mhdr).msg_control.cast::() } else { core::ptr::null_mut::() @@ -1805,29 +1805,29 @@ f! { } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(mem::size_of::())) as c_uint + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(size_of::())) as c_uint } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - CMSG_ALIGN(mem::size_of::()) as c_uint + length + CMSG_ALIGN(size_of::()) as c_uint + length } pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index d49bdb3e9e18c..0193083f4e63b 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -837,20 +837,20 @@ pub const PRIO_USER: c_int = 2; f! { pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { - let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { - let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { - let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] |= 1 << (fd % bits); return; diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 7270beacacb5a..c5ebdde3868f3 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -2310,7 +2310,7 @@ pub const BIOCSHDRCMPLT: c_int = -2147204491; pub const BIOCSRTIMEOUT: c_int = -2146418067; pub const BIOCVERSION: c_int = 1074020977; -pub const BPF_ALIGNMENT: usize = mem::size_of::(); +pub const BPF_ALIGNMENT: usize = size_of::(); pub const CHAR_BIT: usize = 8; pub const CODESET: crate::nl_item = 1; pub const CRNCYSTR: crate::nl_item = 55; @@ -2481,7 +2481,7 @@ pub const SIGEV_NONE: c_int = 0; pub const SIGEV_SIGNAL: c_int = 129; pub const SIGEV_THREAD: c_int = 135; pub const SO_USELOOPBACK: c_int = 0x0040; -pub const _SS_ALIGNSIZE: usize = mem::size_of::(); +pub const _SS_ALIGNSIZE: usize = size_of::(); pub const _SS_MAXSIZE: usize = 128; pub const _SS_PAD1SIZE: usize = _SS_ALIGNSIZE - 2; pub const _SS_PAD2SIZE: usize = _SS_MAXSIZE - 2 - _SS_PAD1SIZE - _SS_ALIGNSIZE; @@ -2609,7 +2609,7 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { const_fn! { {const} fn _CMSG_ALIGN(len: usize) -> usize { - len + mem::size_of::() - 1 & !(mem::size_of::() - 1) + len + size_of::() - 1 & !(size_of::() - 1) } {const} fn _ALIGN(p: usize, b: usize) -> usize { @@ -2619,7 +2619,7 @@ const_fn! { f! { pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= mem::size_of::() { + if (*mhdr).msg_controllen as usize >= size_of::() { (*mhdr).msg_control as *mut cmsghdr } else { core::ptr::null_mut::() @@ -2628,7 +2628,7 @@ f! { pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { let msg = _CMSG_ALIGN((*cmsg).cmsg_len as usize); - let next = cmsg as usize + msg + _CMSG_ALIGN(mem::size_of::()); + let next = cmsg as usize + msg + _CMSG_ALIGN(size_of::()); if next > (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize { core::ptr::null_mut::() } else { @@ -2637,33 +2637,33 @@ f! { } pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).offset(_CMSG_ALIGN(mem::size_of::()) as isize) + (cmsg as *mut c_uchar).offset(_CMSG_ALIGN(size_of::()) as isize) } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - _CMSG_ALIGN(mem::size_of::()) as c_uint + length + _CMSG_ALIGN(size_of::()) as c_uint + length } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (_CMSG_ALIGN(mem::size_of::()) + _CMSG_ALIGN(length as usize)) as c_uint + (_CMSG_ALIGN(size_of::()) + _CMSG_ALIGN(length as usize)) as c_uint } pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } @@ -2682,7 +2682,7 @@ f! { } pub fn _DEXTRA_VALID(_x: *const crate::dirent_extra, _d: *const dirent) -> bool { - let sz = _x as usize - _d as usize + mem::size_of::(); + let sz = _x as usize - _d as usize + size_of::(); let rsz = (*_d).d_reclen as usize; if sz > rsz || sz + (*_x).d_datalen as usize > rsz { @@ -2694,14 +2694,14 @@ f! { pub fn _DEXTRA_NEXT(_x: *const crate::dirent_extra) -> *mut crate::dirent_extra { _ALIGN( - _x as usize + mem::size_of::() + (*_x).d_datalen as usize, + _x as usize + size_of::() + (*_x).d_datalen as usize, 8, ) as *mut crate::dirent_extra } pub fn SOCKCREDSIZE(ngrps: usize) -> usize { let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 }; - mem::size_of::() + mem::size_of::() * ngrps + size_of::() + size_of::() * ngrps } } diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 9a79d0e280f0c..7420fba229912 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -67,7 +67,7 @@ s_no_extra_traits! { pub struct sockaddr_storage { pub ss_family: crate::sa_family_t, - __ss_padding: [u8; 128 - mem::size_of::() - mem::size_of::()], + __ss_padding: [u8; 128 - size_of::() - size_of::()], __ss_align: c_ulong, } } @@ -1020,32 +1020,32 @@ pub const PRIO_USER: c_int = 2; f! { //sys/socket.h pub {const} fn CMSG_ALIGN(len: size_t) -> size_t { - (len + mem::size_of::() - 1) & !(mem::size_of::() - 1) + (len + size_of::() - 1) & !(size_of::() - 1) } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - (CMSG_ALIGN(mem::size_of::()) + length as usize) as c_uint + (CMSG_ALIGN(size_of::()) + length as usize) as c_uint } pub {const} fn CMSG_SPACE(len: c_uint) -> c_uint { - (CMSG_ALIGN(len as size_t) + CMSG_ALIGN(mem::size_of::())) as c_uint + (CMSG_ALIGN(len as size_t) + CMSG_ALIGN(size_of::())) as c_uint } // wait.h pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] &= !(1 << (fd % size)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { let fd = fd as usize; - let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let size = size_of_val(&(*set).fds_bits[0]) * 8; (*set).fds_bits[fd / size] |= 1 << (fd % size); return; } diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index addfbe054b85f..48f13cdc59ae4 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1,5 +1,3 @@ -use core::mem::size_of; - use crate::prelude::*; pub type caddr_t = *mut c_char; @@ -2408,7 +2406,7 @@ f! { } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - _CMSG_DATA_ALIGN(mem::size_of::()) as c_uint + length + _CMSG_DATA_ALIGN(size_of::()) as c_uint + length } pub fn CMSG_FIRSTHDR(mhdr: *const crate::msghdr) -> *mut cmsghdr { @@ -2438,20 +2436,20 @@ f! { } pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { - let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); return; } pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { - let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0; } pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () { - let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; + let bits = size_of_val(&(*set).fds_bits[0]) * 8; let fd = fd as usize; (*set).fds_bits[fd / bits] |= 1 << (fd % bits); return; diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index deef310db8e0f..f28e5ee7229ba 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -1,6 +1,5 @@ //! Interface to VxWorks C library -use core::mem::size_of; use core::ptr::null_mut; use crate::prelude::*; @@ -1074,13 +1073,13 @@ impl Clone for fpos_t { f! { pub {const} fn CMSG_ALIGN(len: usize) -> usize { - len + mem::size_of::() - 1 & !(mem::size_of::() - 1) + len + size_of::() - 1 & !(size_of::() - 1) } pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { let next = cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize) - + CMSG_ALIGN(mem::size_of::()); + + CMSG_ALIGN(size_of::()); let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if next <= max { (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr @@ -1098,15 +1097,15 @@ f! { } pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - (cmsg as *mut c_uchar).offset(CMSG_ALIGN(mem::size_of::()) as isize) + (cmsg as *mut c_uchar).offset(CMSG_ALIGN(size_of::()) as isize) } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(mem::size_of::())) as c_uint + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(size_of::())) as c_uint } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - CMSG_ALIGN(mem::size_of::()) as c_uint + length + CMSG_ALIGN(size_of::()) as c_uint + length } } From cea95cbcf6f29f1f9f4b3c112b86cf7dbb09c397 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 7 Jul 2025 16:58:24 +0000 Subject: [PATCH 0730/1228] Add `--check` to `cargo fmt` run in CI `cargo fmt` was being called twice without `--check`, so style was only enforced on files that got checked individually. Remove the redundant call and add `--check` here. (backport ) (cherry picked from commit 1187328757859648aca72c9bff8bb2ad73412f75) --- ci/style.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/ci/style.sh b/ci/style.sh index 0d4a4f953dda1..9b7c1ed26b05e 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -9,9 +9,6 @@ cargo test --manifest-path libc-test/Cargo.toml --test style -- --nocapture command -v rustfmt rustfmt -V -# Run once to cover everything that isn't in `src/` -cargo fmt - # Save a list of all source files tmpfile="file-list~" # trailing tilde for gitignore find src -name '*.rs' > "$tmpfile" @@ -61,7 +58,7 @@ rm "$tmpfile" # Run once from workspace root to get everything that wasn't handled as an # individual file. -cargo fmt +cargo fmt "$check" # Ensure that `sort` output is not locale-dependent export LC_ALL=C From f6e013c5787cec6876082f7cdcde90a816c0feb6 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 7 Jul 2025 17:02:48 +0000 Subject: [PATCH 0731/1228] Format files that were previously not being checked in CI (backport ) (cherry picked from commit 5b14b8922104ace02276fddb759c84aa394142f5) --- libc-test/build.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 58f489e5f65d3..022931047ac3c 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2921,8 +2921,7 @@ fn test_freebsd(target: &str) { "splice" if Some(14) > freebsd_ver => true, // Those are introduced in FreeBSD 15. - "xktls_session_onedir" | "xktls_session" - if Some(15) > freebsd_ver => true, + "xktls_session_onedir" | "xktls_session" if Some(15) > freebsd_ver => true, _ => false, } From 310a79bf02ce35de56918eef8c943da75ed2a467 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 7 Jul 2025 21:25:48 +0000 Subject: [PATCH 0732/1228] Fix style.sh unset variable when run locally (backport ) (cherry picked from commit ae97728280855bd20b59fbbf82d17d9f44a04896) --- ci/style.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/style.sh b/ci/style.sh index 9b7c1ed26b05e..4e425f8806000 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -58,7 +58,7 @@ rm "$tmpfile" # Run once from workspace root to get everything that wasn't handled as an # individual file. -cargo fmt "$check" +cargo fmt ${check:+"$check"} # Ensure that `sort` output is not locale-dependent export LC_ALL=C From 46673b8380754f49778a667cb1561a9da2bd16c4 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Sat, 14 Jun 2025 14:39:58 -0600 Subject: [PATCH 0733/1228] Fix CI on FreeBSD 15 A recent change has replaced an unused preprocessor symbol: P_UNUSED3 https://github.com/freebsd/freebsd-src/commit/33be1632047c05dbfcc139476e05f49c3a86d560 Another recent change has changed the size of a spare field: mc_spare https://github.com/freebsd/freebsd-src/commit/eea3e4dd9703a252509d75814049aa8da5007ebb (backport ) (cherry picked from commit 46b90a84f10929ae4b16dec2a07328f94b8bc2f5) --- libc-test/build.rs | 4 +++- src/unix/bsd/freebsdlike/freebsd/mod.rs | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 022931047ac3c..f620e0659c0eb 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2641,7 +2641,7 @@ fn test_freebsd(target: &str) { "TDF_CANSWAP" | "TDF_SWAPINREQ" => true, // Unaccessible in FreeBSD 15 - "TDI_SWAPPED" | "P_SWAPPINGOUT" | "P_SWAPPINGIN" => true, + "TDI_SWAPPED" | "P_SWAPPINGOUT" | "P_SWAPPINGIN" | "P_UNUSED3" => true, // Removed in FreeBSD 14 (git a6b55ee6be1) "IFF_KNOWSEPOCH" => true, @@ -3062,6 +3062,8 @@ fn test_freebsd(target: &str) { // `tcp_snd_wscale` and `tcp_rcv_wscale` are bitfields ("tcp_info", "tcp_snd_wscale") => true, ("tcp_info", "tcp_rcv_wscale") => true, + // mc_spare can change in size between OS releases. It's a spare field, after all. + ("__mcontext", "mc_spare") => true, _ => false, } diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 1ab5623ae5b47..3466e3b38d8cb 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -4217,7 +4217,9 @@ pub const TDI_IWAIT: c_int = 0x0010; pub const P_ADVLOCK: c_int = 0x00000001; pub const P_CONTROLT: c_int = 0x00000002; pub const P_KPROC: c_int = 0x00000004; +#[deprecated(since = "1.0", note = "Replaced in FreeBSD 15 by P_IDLEPROC")] pub const P_UNUSED3: c_int = 0x00000008; +pub const P_IDLEPROC: c_int = 0x00000008; pub const P_PPWAIT: c_int = 0x00000010; pub const P_PROFIL: c_int = 0x00000020; pub const P_STOPPROF: c_int = 0x00000040; From d1ac77eede20ecf9b052de5cf9d2d8735c23909d Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Thu, 3 Jul 2025 04:45:07 +0200 Subject: [PATCH 0734/1228] ci/docs: Build and check powerpc64le-unknown-linux-musl Now that all of the issues with powerpc64 + musl are resolved, let's make sure it won't regress in the future and also build the documentation for it. Signed-off-by: Jens Reidel (backport ) (cherry picked from commit 28ea7a98cac428db6a90db2aa8cde409e06e65f5) --- .github/workflows/ci.yaml | 4 ++++ Cargo.toml | 1 + .../powerpc64le-unknown-linux-musl/Dockerfile | 15 +++++++++++++++ ci/install-musl.sh | 7 +++++++ ci/verify-build.sh | 3 +++ 5 files changed, 30 insertions(+) create mode 100644 ci/docker/powerpc64le-unknown-linux-musl/Dockerfile diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6678e42b6adb3..789d1f40b5cd5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -187,6 +187,7 @@ jobs: - loongarch64-unknown-linux-musl - powerpc64-unknown-linux-gnu - powerpc64le-unknown-linux-gnu + - powerpc64le-unknown-linux-musl - riscv64gc-unknown-linux-gnu - s390x-unknown-linux-gnu - wasm32-unknown-emscripten @@ -221,6 +222,9 @@ jobs: - target: loongarch64-unknown-linux-musl env: RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 + - target: powerpc64le-unknown-linux-musl + env: + RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 # FIXME(ppc): SIGILL running tests, see # https://github.com/rust-lang/libc/pull/4254#issuecomment-2636288713 # - target: powerpc-unknown-linux-gnu diff --git a/Cargo.toml b/Cargo.toml index 9ac66aaeabc01..8e043b7b47f61 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -77,6 +77,7 @@ targets = [ "powerpc64-unknown-linux-gnu", "powerpc64-wrs-vxworks", "powerpc64le-unknown-linux-gnu", + "powerpc64le-unknown-linux-musl", "riscv32gc-unknown-linux-gnu", "riscv32i-unknown-none-elf", "riscv32imac-unknown-none-elf", diff --git a/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile b/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile new file mode 100644 index 0000000000000..b25f284eddf7a --- /dev/null +++ b/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile @@ -0,0 +1,15 @@ +FROM ubuntu:24.10 + +RUN apt-get update && apt-get install -y --no-install-recommends \ + gcc make libc6-dev git curl ca-certificates \ + gcc-powerpc64le-linux-gnu qemu-user xz-utils patch rsync + +COPY install-musl.sh / +RUN /install-musl.sh powerpc64le + +# FIXME: shouldn't need the `-lgcc` here, shouldn't that be in std? +ENV PATH=$PATH:/musl-powerpc64/bin:/rust/bin \ + CC_powerpc64le_unknown_linux_musl=musl-gcc \ + RUSTFLAGS='-Clink-args=-lgcc -L /musl-powerpc64/lib' \ + CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_MUSL_LINKER=musl-gcc \ + CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_MUSL_RUNNER="qemu-ppc64le -L /musl-powerpc64" diff --git a/ci/install-musl.sh b/ci/install-musl.sh index d3752a900ba6d..ca8368a7074df 100755 --- a/ci/install-musl.sh +++ b/ci/install-musl.sh @@ -68,6 +68,13 @@ case ${1} in ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes make install -j4 ;; + powerpc64*) + musl_arch=powerpc64 + kernel_arch=powerpc + CC="${1}-linux-gnu-gcc" CFLAGS="-mlong-double-64" \ + ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes + make install -j4 + ;; *) echo "Unknown target arch: \"${1}\"" exit 1 diff --git a/ci/verify-build.sh b/ci/verify-build.sh index f19ed9d774a08..85dff451e3863 100755 --- a/ci/verify-build.sh +++ b/ci/verify-build.sh @@ -161,11 +161,14 @@ x86_64-unknown-linux-musl \ x86_64-unknown-netbsd \ " +# FIXME(powerpc64le): powerpc64le-unknown-linux-musl is tier 2 since 1.85 and +# can be moved to rust_linux_targets once MSRV is increased rust_nightly_linux_targets="\ aarch64-unknown-fuchsia \ armv5te-unknown-linux-gnueabi \ armv5te-unknown-linux-musleabi \ i686-pc-windows-gnu \ +powerpc64le-unknown-linux-musl \ riscv64gc-unknown-linux-gnu \ x86_64-fortanix-unknown-sgx \ x86_64-pc-solaris \ From 0956e2a96c3c82393f72f4559ae47764b3746792 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 7 Jul 2025 17:10:24 +0000 Subject: [PATCH 0735/1228] Add a lockfile and upgrade dependencies `ctest` is horribly inconsistent across targets for unclear reasons. It seems unlikely, but one possibility is that different versions of dependencies are getting used on different platforms. Attempt to mitigate this by adding a lockfile and upgrading all `Cargo.toml` dependencies to the latest version. (backport ) (cherry picked from commit fb3281c92be593ff5fdf6b663f21f408789b864e) --- .gitignore | 1 - Cargo.lock | 421 +++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 2 +- libc-test/Cargo.toml | 8 +- 4 files changed, 426 insertions(+), 6 deletions(-) create mode 100644 Cargo.lock diff --git a/.gitignore b/.gitignore index f0ff2599d09b5..7aef3038432cf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ target -Cargo.lock *~ diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000000000..76360464c7c7e --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,421 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "annotate-snippets" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "710e8eae58854cdc1790fcb56cca04d712a17be849eeb81da2a724bf4bae2bc4" +dependencies = [ + "anstyle", + "unicode-width", +] + +[[package]] +name = "anstyle" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" + +[[package]] +name = "cc" +version = "1.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c1599538de2394445747c8cf7935946e3cc27e9625f889d979bfb2aaf569362" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cfg-if" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" + +[[package]] +name = "ctest" +version = "0.1.0" + +[[package]] +name = "ctest-next" +version = "0.1.0" + +[[package]] +name = "ctest2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cf53ed2a9e25d98cd444fd6e73eae7de0a26a8cb9e3f998170c6901a1afa0e5" +dependencies = [ + "cc", + "garando_syntax", + "rustc_version", +] + +[[package]] +name = "dirs" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3" +dependencies = [ + "cfg-if 0.1.10", + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc 0.2.174 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_users", + "winapi", +] + +[[package]] +name = "garando_errors" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18495ec4aced5922809efe4d2862918ff0e8d75e122bde57bba9bae45965256a" +dependencies = [ + "garando_pos", + "libc 0.2.174 (registry+https://github.com/rust-lang/crates.io-index)", + "serde", + "term", + "unicode-xid", +] + +[[package]] +name = "garando_pos" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9386fc75dca486daefbbf5a8d2ea6f379237f95c9b982776159cd66f220aaf" +dependencies = [ + "serde", +] + +[[package]] +name = "garando_syntax" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d8a383861d12fc78c251bbcb1ec252dd8338714ce02ab0cc393cfd02f40d32b" +dependencies = [ + "bitflags 1.3.2", + "garando_errors", + "garando_pos", + "log", + "serde", + "serde_json", + "unicode-xid", +] + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if 1.0.1", + "libc 0.2.174 (registry+https://github.com/rust-lang/crates.io-index)", + "wasi", +] + +[[package]] +name = "glob" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "libc" +version = "0.2.174" +dependencies = [ + "rustc-std-workspace-core", +] + +[[package]] +name = "libc" +version = "0.2.174" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" + +[[package]] +name = "libc-test" +version = "0.1.0" +dependencies = [ + "annotate-snippets", + "cc", + "cfg-if 1.0.1", + "ctest2", + "glob", + "libc 0.2.174", + "proc-macro2", + "regex", + "syn", +] + +[[package]] +name = "libredox" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" +dependencies = [ + "bitflags 2.9.1", + "libc 0.2.174 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "log" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" + +[[package]] +name = "memchr" +version = "2.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" + +[[package]] +name = "proc-macro2" +version = "1.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "rustc-std-workspace-core" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9c45b374136f52f2d6311062c7146bff20fec063c3f5d46a410bd937746955" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "semver" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "syn" +version = "2.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "term" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0863a3345e70f61d613eab32ee046ccd1bcc5f9105fe402c61fcd0c13eeb8b5" +dependencies = [ + "dirs", + "winapi", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-width" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/Cargo.toml b/Cargo.toml index 8e043b7b47f61..eb60f04af2f85 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -129,7 +129,7 @@ targets = [ cargo-args = ["-Zbuild-std=core"] [dependencies] -rustc-std-workspace-core = { version = "1.0.0", optional = true } +rustc-std-workspace-core = { version = "1.0.1", optional = true } [features] default = ["std"] diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 6379029be07a9..4d9331798a375 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -9,17 +9,17 @@ license = "MIT OR Apache-2.0" repository = "https://github.com/rust-lang/libc" [dependencies] -cfg-if = "1.0.0" +cfg-if = "1.0.1" libc = { path = "..", version = "0.2.171", default-features = false } [dev-dependencies] -syn = { version = "2.0.91", features = ["full", "visit"] } -proc-macro2 = { version = "1.0.92", features = ["span-locations"] } +syn = { version = "2.0.104", features = ["full", "visit"] } +proc-macro2 = { version = "1.0.95", features = ["span-locations"] } glob = "0.3.2" annotate-snippets = { version = "0.11.5", features = ["testing-colors"] } [build-dependencies] -cc = "1.0.83" +cc = "1.2.29" # FIXME: Use fork ctest until the maintainer gets back. ctest2 = "0.4.3" regex = "1.11.1" From 33cc3133cf203532e8b311422745a4e800001e55 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 7 Jul 2025 22:41:20 +0000 Subject: [PATCH 0736/1228] cleanup: Remove `allow(missing_debug_implementations)` Since the macros now create a `Debug` implementation for all types, there isn't any need to allow this lint anywhere. (backport ) (cherry picked from commit da7a725ce4cd2925494d0987716a365098e53948) --- src/unix/bsd/apple/b32/mod.rs | 1 - src/unix/bsd/apple/b64/aarch64/mod.rs | 1 - src/unix/bsd/apple/b64/x86_64/mod.rs | 1 - src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs | 1 - src/unix/cygwin/mod.rs | 1 - src/unix/linux_like/android/b32/x86/mod.rs | 1 - src/unix/linux_like/android/b64/aarch64/mod.rs | 1 - src/unix/linux_like/android/b64/riscv64/mod.rs | 1 - src/unix/linux_like/android/b64/x86_64/mod.rs | 1 - src/unix/linux_like/emscripten/mod.rs | 2 -- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 2 -- src/unix/linux_like/linux/gnu/b32/csky/mod.rs | 1 - src/unix/linux_like/linux/gnu/b32/m68k/mod.rs | 1 - src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 1 - src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs | 5 ----- src/unix/linux_like/linux/gnu/b32/sparc/mod.rs | 1 - src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 1 - src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs | 1 - src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs | 1 - src/unix/linux_like/linux/gnu/b64/mips64/mod.rs | 1 - src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs | 1 - src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs | 5 ----- src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs | 1 - src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs | 1 - src/unix/linux_like/linux/mod.rs | 11 ----------- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 2 -- src/unix/linux_like/linux/musl/b32/mips/mod.rs | 1 - src/unix/linux_like/linux/musl/b32/riscv32/mod.rs | 1 - src/unix/linux_like/linux/musl/b32/x86/mod.rs | 1 - src/unix/linux_like/linux/musl/b64/aarch64/mod.rs | 1 - src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs | 1 - src/unix/linux_like/linux/musl/b64/riscv64/mod.rs | 5 ----- src/unix/linux_like/linux/musl/b64/x86_64/mod.rs | 1 - src/unix/linux_like/linux/uclibc/x86_64/l4re.rs | 2 +- src/unix/linux_like/linux/uclibc/x86_64/mod.rs | 1 - src/unix/solarish/solaris.rs | 3 --- src/wasi/mod.rs | 1 - src/windows/gnu/mod.rs | 2 -- 38 files changed, 1 insertion(+), 66 deletions(-) diff --git a/src/unix/bsd/apple/b32/mod.rs b/src/unix/bsd/apple/b32/mod.rs index bdc986da168a8..bd6762558f508 100644 --- a/src/unix/bsd/apple/b32/mod.rs +++ b/src/unix/bsd/apple/b32/mod.rs @@ -60,7 +60,6 @@ s_no_extra_traits! { __opaque: [c_char; crate::__PTHREAD_ONCE_SIZE__], } - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 2], diff --git a/src/unix/bsd/apple/b64/aarch64/mod.rs b/src/unix/bsd/apple/b64/aarch64/mod.rs index e300b76ae8228..a13013c09b03b 100644 --- a/src/unix/bsd/apple/b64/aarch64/mod.rs +++ b/src/unix/bsd/apple/b64/aarch64/mod.rs @@ -47,7 +47,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] pub struct max_align_t { priv_: f64, } diff --git a/src/unix/bsd/apple/b64/x86_64/mod.rs b/src/unix/bsd/apple/b64/x86_64/mod.rs index cfb1b8a8a5976..5365becf66c3e 100644 --- a/src/unix/bsd/apple/b64/x86_64/mod.rs +++ b/src/unix/bsd/apple/b64/x86_64/mod.rs @@ -172,7 +172,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 2], diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index 27addc6361d1e..fa85f11ce2812 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -92,7 +92,6 @@ s_no_extra_traits! { pub a_un: __c_anonymous_elf64_auxv_union, } - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4], diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 2353f68dbc153..fde2c18936e71 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -453,7 +453,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4], diff --git a/src/unix/linux_like/android/b32/x86/mod.rs b/src/unix/linux_like/android/b32/x86/mod.rs index edbfd38552cb5..ca46c3c462246 100644 --- a/src/unix/linux_like/android/b32/x86/mod.rs +++ b/src/unix/linux_like/android/b32/x86/mod.rs @@ -51,7 +51,6 @@ s_no_extra_traits! { __fpregs_mem: _libc_fpstate, } - #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { priv_: [f64; 2], diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index b678eb8da6aa4..3c6131089ee89 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -85,7 +85,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f32; 8], diff --git a/src/unix/linux_like/android/b64/riscv64/mod.rs b/src/unix/linux_like/android/b64/riscv64/mod.rs index c4dc98e010aed..ca8c727164ad7 100644 --- a/src/unix/linux_like/android/b64/riscv64/mod.rs +++ b/src/unix/linux_like/android/b64/riscv64/mod.rs @@ -55,7 +55,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f32; 8], diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index 3288f05e076aa..0fddeb7bc267f 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -112,7 +112,6 @@ s_no_extra_traits! { uc_sigmask64: crate::sigset64_t, } - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4], diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 1d00f3d404ea1..7a43670536e4f 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -315,7 +315,6 @@ s! { pub ha: [c_uchar; crate::MAX_ADDR_LEN], } - #[allow(missing_debug_implementations)] #[repr(align(4))] pub struct pthread_mutex_t { size: [u8; crate::__SIZEOF_PTHREAD_MUTEX_T], @@ -382,7 +381,6 @@ s_no_extra_traits! { size: [u8; crate::__SIZEOF_PTHREAD_COND_T], } - #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { priv_: [f64; 3], diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 3f81de3545de6..900851ab5f42c 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -232,13 +232,11 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { priv_: [i64; 2], } - #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct ucontext_t { pub uc_flags: c_ulong, diff --git a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs index b8f73e2d5414a..95881894a4b94 100644 --- a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs @@ -168,7 +168,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { priv_: [i64; 2], diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index 71b3dd316394c..d614fddeca9d9 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -161,7 +161,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(2))] pub struct max_align_t { priv_: [i8; 20], diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 507672f8a974c..db0505a2473de 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -252,7 +252,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { priv_: [f32; 4], diff --git a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs index d9599ddb582fc..b04ee50462745 100644 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -197,7 +197,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] pub struct ucontext_t { pub __uc_flags: c_ulong, pub uc_link: *mut ucontext_t, @@ -206,7 +205,6 @@ s_no_extra_traits! { pub uc_mcontext: mcontext_t, } - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct mcontext_t { pub __gregs: [c_ulong; 32], @@ -219,19 +217,16 @@ s_no_extra_traits! { pub __q: __riscv_mc_q_ext_state, } - #[allow(missing_debug_implementations)] pub struct __riscv_mc_f_ext_state { pub __f: [c_uint; 32], pub __fcsr: c_uint, } - #[allow(missing_debug_implementations)] pub struct __riscv_mc_d_ext_state { pub __f: [c_ulonglong; 32], pub __fcsr: c_uint, } - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct __riscv_mc_q_ext_state { pub __f: [c_ulonglong; 64], diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index cfe2101b4af77..f9d6a95ed036e 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -198,7 +198,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { priv_: [i64; 3], diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index da6af94375e4f..5f0dfe90adf81 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -287,7 +287,6 @@ s_no_extra_traits! { __ssp: [c_ulong; 4], } - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 6], diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index b310af8e4e531..28b4e40fde543 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -242,7 +242,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f32; 8], diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs index c67177c7067f9..8f15ce4d1529a 100644 --- a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs @@ -237,7 +237,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4], diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index 8bd9542a62f1e..56f30cd08a482 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -187,7 +187,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4], diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index 5073a8af7a41e..047efe55b1a38 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -194,7 +194,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [i64; 4], diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index 6da6eeccca486..bfbc8ee5cf683 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -247,7 +247,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] pub struct ucontext_t { pub __uc_flags: c_ulong, pub uc_link: *mut ucontext_t, @@ -256,7 +255,6 @@ s_no_extra_traits! { pub uc_mcontext: mcontext_t, } - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct mcontext_t { pub __gregs: [c_ulong; 32], @@ -269,19 +267,16 @@ s_no_extra_traits! { pub __q: __riscv_mc_q_ext_state, } - #[allow(missing_debug_implementations)] pub struct __riscv_mc_f_ext_state { pub __f: [c_uint; 32], pub __fcsr: c_uint, } - #[allow(missing_debug_implementations)] pub struct __riscv_mc_d_ext_state { pub __f: [c_ulonglong; 32], pub __fcsr: c_uint, } - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct __riscv_mc_q_ext_state { pub __f: [c_ulonglong; 64], diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs index cdbd9b43b28c7..c4203dc0b2da4 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -197,7 +197,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [i64; 4], diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index ea8aeda42d63d..f4555ee420230 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -317,7 +317,6 @@ s_no_extra_traits! { // __ssp: [c_ulonglong; 4], } - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4], diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index e4874760155b1..0146d50b4e39d 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1574,18 +1574,15 @@ s_no_extra_traits! { pub sched_period: crate::__u64, } - #[allow(missing_debug_implementations)] pub union tpacket_req_u { pub req: crate::tpacket_req, pub req3: crate::tpacket_req3, } - #[allow(missing_debug_implementations)] pub union tpacket_bd_header_u { pub bh1: crate::tpacket_hdr_v1, } - #[allow(missing_debug_implementations)] pub struct tpacket_block_desc { pub version: __u32, pub offset_to_priv: __u32, @@ -1746,7 +1743,6 @@ s_no_extra_traits! { } // linux/net_tstamp.h - #[allow(missing_debug_implementations)] pub struct sock_txtime { pub clockid: crate::clockid_t, pub flags: __u32, @@ -1754,7 +1750,6 @@ s_no_extra_traits! { // linux/can.h #[repr(align(8))] - #[allow(missing_debug_implementations)] pub struct can_frame { pub can_id: canid_t, // FIXME(1.0): this field was renamed to `len` in Linux 5.11 @@ -1766,7 +1761,6 @@ s_no_extra_traits! { } #[repr(align(8))] - #[allow(missing_debug_implementations)] pub struct canfd_frame { pub can_id: canid_t, pub len: u8, @@ -1777,7 +1771,6 @@ s_no_extra_traits! { } #[repr(align(8))] - #[allow(missing_debug_implementations)] pub struct canxl_frame { pub prio: canid_t, pub flags: u8, @@ -1787,13 +1780,11 @@ s_no_extra_traits! { pub data: [u8; CANXL_MAX_DLEN], } - #[allow(missing_debug_implementations)] pub union __c_anonymous_sockaddr_can_can_addr { pub tp: __c_anonymous_sockaddr_can_tp, pub j1939: __c_anonymous_sockaddr_can_j1939, } - #[allow(missing_debug_implementations)] pub struct sockaddr_can { pub can_family: crate::sa_family_t, pub can_ifindex: c_int, @@ -1848,7 +1839,6 @@ s_no_extra_traits! { pub rsv: [c_uint; 4], } - #[allow(missing_debug_implementations)] pub struct ptp_perout_request { pub anonymous_1: __c_anonymous_ptp_perout_request_1, pub period: ptp_clock_time, @@ -1858,7 +1848,6 @@ s_no_extra_traits! { } // linux/if_xdp.h - #[allow(missing_debug_implementations)] pub struct xsk_tx_metadata { pub flags: crate::__u64, pub xsk_tx_metadata_union: __c_anonymous_xsk_tx_metadata_union, diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index b9be033a2c2c4..a04f05ea50db8 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -133,7 +133,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] pub struct ucontext_t { pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, @@ -143,7 +142,6 @@ s_no_extra_traits! { pub uc_regspace: [c_ulonglong; 64], } - #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { priv_: (i64, i64), diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index 3f2b73decbec6..4f29b27ad0a14 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -147,7 +147,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { priv_: [f32; 4], diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index 9b76105969343..0e2f53edcad4c 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -102,7 +102,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { priv_: (i64, f64), diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 583e0a51eacb0..ae8b7d761dd6f 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -138,7 +138,6 @@ s_no_extra_traits! { __private: [u8; 112], } - #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { priv_: [f64; 3], diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index 243247edafc46..67151a8d37116 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -129,7 +129,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f32; 8], diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index 17724b528415e..e014fbf48c0da 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -114,7 +114,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4], diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index cf851c4660113..8389af961cf58 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -86,7 +86,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] pub struct ucontext_t { pub __uc_flags: c_ulong, pub uc_link: *mut ucontext_t, @@ -95,7 +94,6 @@ s_no_extra_traits! { pub uc_mcontext: mcontext_t, } - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct mcontext_t { pub __gregs: [c_ulong; 32], @@ -108,19 +106,16 @@ s_no_extra_traits! { pub __q: __riscv_mc_q_ext_state, } - #[allow(missing_debug_implementations)] pub struct __riscv_mc_f_ext_state { pub __f: [c_uint; 32], pub __fcsr: c_uint, } - #[allow(missing_debug_implementations)] pub struct __riscv_mc_d_ext_state { pub __f: [c_ulonglong; 32], pub __fcsr: c_uint, } - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct __riscv_mc_q_ext_state { pub __f: [c_ulonglong; 64], diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index 17a9f6ce47475..ce8319f015e97 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -171,7 +171,6 @@ s_no_extra_traits! { __private: [u8; 512], } - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4], diff --git a/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs b/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs index b108e77c7cd32..380077711d797 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs @@ -28,7 +28,7 @@ s! { } } -#[allow(missing_debug_implementations)] +#[cfg_attr(feature = "extra_traits", derive(Debug))] pub struct pthread_attr_t { pub __detachstate: c_int, pub __schedpolicy: c_int, diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index fbc87be74125d..1a2e4bcc1a897 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -293,7 +293,6 @@ s! { } s_no_extra_traits! { - #[allow(missing_debug_implementations)] pub struct dirent { pub d_ino: crate::ino64_t, pub d_off: off64_t, diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index 097ff1c9cd6bd..58b097a16269b 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -59,7 +59,6 @@ s! { s_no_extra_traits! { #[repr(packed)] - #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] pub struct door_desc_t__d_data__d_desc { pub d_descriptor: c_int, pub d_id: crate::door_id_t, @@ -70,13 +69,11 @@ s_no_extra_traits! { d_resv: [c_int; 5], /* Check out /usr/include/sys/door.h */ } - #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] pub struct door_desc_t { pub d_attributes: door_attr_t, pub d_data: door_desc_t__d_data, } - #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] pub struct door_arg_t { pub data_ptr: *const c_char, pub data_size: size_t, diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index 61061918c05fc..4abb2bc1f99e2 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -36,7 +36,6 @@ pub type locale_t = *mut __locale_struct; s_no_extra_traits! { #[repr(align(16))] - #[allow(missing_debug_implementations)] pub struct max_align_t { priv_: [f64; 4], } diff --git a/src/windows/gnu/mod.rs b/src/windows/gnu/mod.rs index a263dfa736bba..aee2c1efed108 100644 --- a/src/windows/gnu/mod.rs +++ b/src/windows/gnu/mod.rs @@ -3,7 +3,6 @@ use crate::prelude::*; cfg_if! { if #[cfg(target_pointer_width = "64")] { s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4], @@ -11,7 +10,6 @@ cfg_if! { } } else if #[cfg(target_pointer_width = "32")] { s_no_extra_traits! { - #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [i64; 6], From 8f00e3913bba80303725981f28162b28e4dcc98d Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 5 May 2025 02:28:26 +0000 Subject: [PATCH 0737/1228] Begin source reorganization with `linux/can.h` This is a small module so it is easy to adapt to the future directory structure. Sources: * https://github.com/torvalds/linux/blob/92a09c47464d040866cf2b4cd052bc60555185fb/include/uapi/linux/can.h * https://github.com/torvalds/linux/blob/92a09c47464d040866cf2b4cd052bc60555185fb/include/uapi/linux/can/j1939.h * https://github.com/torvalds/linux/blob/92a09c47464d040866cf2b4cd052bc60555185fb/include/uapi/linux/can/raw.h (backport ) (cherry picked from commit 3356f1217d8dd5a17b4cf3d0e78fe341e98944df) --- src/lib.rs | 4 + src/new/linux_uapi/linux/can.rs | 137 +++++++++++++++++++ src/new/linux_uapi/linux/can/j1939.rs | 60 +++++++++ src/new/linux_uapi/linux/can/raw.rs | 15 +++ src/new/linux_uapi/linux/mod.rs | 4 + src/new/linux_uapi/mod.rs | 4 + src/new/mod.rs | 12 ++ src/unix/linux_like/linux/mod.rs | 185 -------------------------- triagebot.toml | 5 +- 9 files changed, 240 insertions(+), 186 deletions(-) create mode 100644 src/new/linux_uapi/linux/can.rs create mode 100644 src/new/linux_uapi/linux/can/j1939.rs create mode 100644 src/new/linux_uapi/linux/can/raw.rs create mode 100644 src/new/linux_uapi/linux/mod.rs create mode 100644 src/new/linux_uapi/mod.rs create mode 100644 src/new/mod.rs diff --git a/src/lib.rs b/src/lib.rs index a96ffc6ffe8ed..fb901944b22bd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -25,6 +25,7 @@ #[macro_use] mod macros; +mod new; cfg_if! { if #[cfg(feature = "rustc-dep-of-std")] { @@ -34,6 +35,9 @@ cfg_if! { pub use core::ffi::c_void; +#[allow(unused_imports)] // needed while the module is empty on some platforms +pub use new::*; + cfg_if! { if #[cfg(windows)] { mod primitives; diff --git a/src/new/linux_uapi/linux/can.rs b/src/new/linux_uapi/linux/can.rs new file mode 100644 index 0000000000000..8fb4b9d6dc972 --- /dev/null +++ b/src/new/linux_uapi/linux/can.rs @@ -0,0 +1,137 @@ +//! Header: `uapi/linux/can.h` + +// FIXME(ctest): we shouldn't have to specify the path but garando doesn't find modules otherwise +#[path = "can/j1939.rs"] +pub(crate) mod j1939; +#[path = "can/raw.rs"] +pub(crate) mod raw; + +pub use j1939::*; +pub use raw::*; + +use crate::prelude::*; + +pub const CAN_EFF_FLAG: canid_t = 0x80000000; +pub const CAN_RTR_FLAG: canid_t = 0x40000000; +pub const CAN_ERR_FLAG: canid_t = 0x20000000; + +pub const CAN_SFF_MASK: canid_t = 0x000007FF; +pub const CAN_EFF_MASK: canid_t = 0x1FFFFFFF; +pub const CAN_ERR_MASK: canid_t = 0x1FFFFFFF; +pub const CANXL_PRIO_MASK: crate::canid_t = CAN_SFF_MASK; + +pub type canid_t = u32; + +pub const CAN_SFF_ID_BITS: c_int = 11; +pub const CAN_EFF_ID_BITS: c_int = 29; +pub const CANXL_PRIO_BITS: c_int = CAN_SFF_ID_BITS; + +pub type can_err_mask_t = u32; + +pub const CAN_MAX_DLC: c_int = 8; +pub const CAN_MAX_DLEN: usize = 8; + +pub const CANFD_MAX_DLC: c_int = 15; +pub const CANFD_MAX_DLEN: usize = 64; + +pub const CANXL_MIN_DLC: c_int = 0; +pub const CANXL_MAX_DLC: c_int = 2047; +pub const CANXL_MAX_DLC_MASK: c_int = 0x07FF; +pub const CANXL_MIN_DLEN: usize = 1; +pub const CANXL_MAX_DLEN: usize = 2048; + +s! { + #[repr(align(8))] + pub struct can_frame { + pub can_id: canid_t, + // FIXME(1.0): this field was renamed to `len` in Linux 5.11 + pub can_dlc: u8, + __pad: u8, + __res0: u8, + pub len8_dlc: u8, + pub data: [u8; CAN_MAX_DLEN], + } +} + +pub const CANFD_BRS: c_int = 0x01; +pub const CANFD_ESI: c_int = 0x02; +pub const CANFD_FDF: c_int = 0x04; + +s! { + #[repr(align(8))] + pub struct canfd_frame { + pub can_id: canid_t, + pub len: u8, + pub flags: u8, + __res0: u8, + __res1: u8, + pub data: [u8; CANFD_MAX_DLEN], + } +} + +pub const CANXL_XLF: c_int = 0x80; +pub const CANXL_SEC: c_int = 0x01; + +s! { + #[repr(align(8))] + pub struct canxl_frame { + pub prio: canid_t, + pub flags: u8, + pub sdt: u8, + pub len: u16, + pub af: u32, + pub data: [u8; CANXL_MAX_DLEN], + } +} + +pub const CAN_MTU: usize = size_of::(); +pub const CANFD_MTU: usize = size_of::(); +pub const CANXL_MTU: usize = size_of::(); +// FIXME(offset_of): use `core::mem::offset_of!` once that is available +// https://github.com/rust-lang/rfcs/pull/3308 +// pub const CANXL_HDR_SIZE: usize = core::mem::offset_of!(canxl_frame, data); +pub const CANXL_HDR_SIZE: usize = 12; +pub const CANXL_MIN_MTU: usize = CANXL_HDR_SIZE + 64; +pub const CANXL_MAX_MTU: usize = CANXL_MTU; + +pub const CAN_RAW: c_int = 1; +pub const CAN_BCM: c_int = 2; +pub const CAN_TP16: c_int = 3; +pub const CAN_TP20: c_int = 4; +pub const CAN_MCNET: c_int = 5; +pub const CAN_ISOTP: c_int = 6; +pub const CAN_J1939: c_int = 7; +pub const CAN_NPROTO: c_int = 8; + +pub const SOL_CAN_BASE: c_int = 100; + +s_no_extra_traits! { + pub struct sockaddr_can { + pub can_family: crate::sa_family_t, + pub can_ifindex: c_int, + pub can_addr: __c_anonymous_sockaddr_can_can_addr, + } + + pub union __c_anonymous_sockaddr_can_can_addr { + pub tp: __c_anonymous_sockaddr_can_tp, + pub j1939: __c_anonymous_sockaddr_can_j1939, + } + + pub struct __c_anonymous_sockaddr_can_tp { + pub rx_id: canid_t, + pub tx_id: canid_t, + } + + pub struct __c_anonymous_sockaddr_can_j1939 { + pub name: u64, + pub pgn: u32, + pub addr: u8, + } + + pub struct can_filter { + pub can_id: canid_t, + pub can_mask: canid_t, + } +} + +pub const CAN_INV_FILTER: canid_t = 0x20000000; diff --git a/src/new/linux_uapi/linux/can/j1939.rs b/src/new/linux_uapi/linux/can/j1939.rs new file mode 100644 index 0000000000000..fdf425ce6c0c1 --- /dev/null +++ b/src/new/linux_uapi/linux/can/j1939.rs @@ -0,0 +1,60 @@ +//! `linux/can/j1939.h` + +pub use crate::linux::can::*; + +pub const J1939_MAX_UNICAST_ADDR: c_uchar = 0xfd; +pub const J1939_IDLE_ADDR: c_uchar = 0xfe; +pub const J1939_NO_ADDR: c_uchar = 0xff; +pub const J1939_NO_NAME: c_ulong = 0; +pub const J1939_PGN_REQUEST: c_uint = 0x0ea00; +pub const J1939_PGN_ADDRESS_CLAIMED: c_uint = 0x0ee00; +pub const J1939_PGN_ADDRESS_COMMANDED: c_uint = 0x0fed8; +pub const J1939_PGN_PDU1_MAX: c_uint = 0x3ff00; +pub const J1939_PGN_MAX: c_uint = 0x3ffff; +pub const J1939_NO_PGN: c_uint = 0x40000; + +pub type pgn_t = u32; +pub type priority_t = u8; +pub type name_t = u64; + +pub const SOL_CAN_J1939: c_int = SOL_CAN_BASE + CAN_J1939; + +// FIXME(cleanup): these could use c_enum if it can accept anonymous enums. + +pub const SO_J1939_FILTER: c_int = 1; +pub const SO_J1939_PROMISC: c_int = 2; +pub const SO_J1939_SEND_PRIO: c_int = 3; +pub const SO_J1939_ERRQUEUE: c_int = 4; + +pub const SCM_J1939_DEST_ADDR: c_int = 1; +pub const SCM_J1939_DEST_NAME: c_int = 2; +pub const SCM_J1939_PRIO: c_int = 3; +pub const SCM_J1939_ERRQUEUE: c_int = 4; + +pub const J1939_NLA_PAD: c_int = 0; +pub const J1939_NLA_BYTES_ACKED: c_int = 1; +pub const J1939_NLA_TOTAL_SIZE: c_int = 2; +pub const J1939_NLA_PGN: c_int = 3; +pub const J1939_NLA_SRC_NAME: c_int = 4; +pub const J1939_NLA_DEST_NAME: c_int = 5; +pub const J1939_NLA_SRC_ADDR: c_int = 6; +pub const J1939_NLA_DEST_ADDR: c_int = 7; + +pub const J1939_EE_INFO_NONE: c_int = 0; +pub const J1939_EE_INFO_TX_ABORT: c_int = 1; +pub const J1939_EE_INFO_RX_RTS: c_int = 2; +pub const J1939_EE_INFO_RX_DPO: c_int = 3; +pub const J1939_EE_INFO_RX_ABORT: c_int = 4; + +s! { + pub struct j1939_filter { + pub name: name_t, + pub name_mask: name_t, + pub pgn: pgn_t, + pub pgn_mask: pgn_t, + pub addr: u8, + pub addr_mask: u8, + } +} + +pub const J1939_FILTER_MAX: c_int = 512; diff --git a/src/new/linux_uapi/linux/can/raw.rs b/src/new/linux_uapi/linux/can/raw.rs new file mode 100644 index 0000000000000..1f92a13edbba6 --- /dev/null +++ b/src/new/linux_uapi/linux/can/raw.rs @@ -0,0 +1,15 @@ +//! `linux/can/raw.h` + +pub use crate::linux::can::*; + +pub const SOL_CAN_RAW: c_int = SOL_CAN_BASE + CAN_RAW; +pub const CAN_RAW_FILTER_MAX: c_int = 512; + +// FIXME(cleanup): use `c_enum!`, which needs to be adapted to allow omitting a type. +pub const CAN_RAW_FILTER: c_int = 1; +pub const CAN_RAW_ERR_FILTER: c_int = 2; +pub const CAN_RAW_LOOPBACK: c_int = 3; +pub const CAN_RAW_RECV_OWN_MSGS: c_int = 4; +pub const CAN_RAW_FD_FRAMES: c_int = 5; +pub const CAN_RAW_JOIN_FILTERS: c_int = 6; +pub const CAN_RAW_XL_FRAMES: c_int = 7; diff --git a/src/new/linux_uapi/linux/mod.rs b/src/new/linux_uapi/linux/mod.rs new file mode 100644 index 0000000000000..4a9c04d6396b1 --- /dev/null +++ b/src/new/linux_uapi/linux/mod.rs @@ -0,0 +1,4 @@ +//! The `linux` directory within `include/uapi` in the Linux source tree. + +pub(crate) mod can; +pub use can::*; diff --git a/src/new/linux_uapi/mod.rs b/src/new/linux_uapi/mod.rs new file mode 100644 index 0000000000000..e0d4e094c435f --- /dev/null +++ b/src/new/linux_uapi/mod.rs @@ -0,0 +1,4 @@ +//! This directory maps to `include/uapi` in the Linux source tree. + +pub(crate) mod linux; +pub use linux::*; diff --git a/src/new/mod.rs b/src/new/mod.rs new file mode 100644 index 0000000000000..4006f5c82288d --- /dev/null +++ b/src/new/mod.rs @@ -0,0 +1,12 @@ +//! This module contains the future directory structure. If possible, new definitions should +//! get added here. +//! +//! Eventually everything should be moved over, and we will move this directory to the top +//! level in `src`. + +cfg_if! { + if #[cfg(target_os = "linux")] { + mod linux_uapi; + pub use linux_uapi::*; + } +} diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 0146d50b4e39d..dee6ed53e74fc 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -58,15 +58,6 @@ cfg_if! { } } -// linux/can.h -pub type canid_t = u32; - -// linux/can/j1939.h -pub type can_err_mask_t = u32; -pub type pgn_t = u32; -pub type priority_t = u8; -pub type name_t = u64; - pub type iconv_t = *mut c_void; // linux/sctp.h @@ -730,33 +721,6 @@ s! { pub ee_data: u32, } - // linux/can.h - pub struct __c_anonymous_sockaddr_can_tp { - pub rx_id: canid_t, - pub tx_id: canid_t, - } - - pub struct __c_anonymous_sockaddr_can_j1939 { - pub name: u64, - pub pgn: u32, - pub addr: u8, - } - - pub struct can_filter { - pub can_id: canid_t, - pub can_mask: canid_t, - } - - // linux/can/j1939.h - pub struct j1939_filter { - pub name: name_t, - pub name_mask: name_t, - pub pgn: pgn_t, - pub pgn_mask: pgn_t, - pub addr: u8, - pub addr_mask: u8, - } - // linux/seccomp.h pub struct seccomp_data { pub nr: c_int, @@ -1748,49 +1712,6 @@ s_no_extra_traits! { pub flags: __u32, } - // linux/can.h - #[repr(align(8))] - pub struct can_frame { - pub can_id: canid_t, - // FIXME(1.0): this field was renamed to `len` in Linux 5.11 - pub can_dlc: u8, - __pad: u8, - __res0: u8, - pub len8_dlc: u8, - pub data: [u8; CAN_MAX_DLEN], - } - - #[repr(align(8))] - pub struct canfd_frame { - pub can_id: canid_t, - pub len: u8, - pub flags: u8, - __res0: u8, - __res1: u8, - pub data: [u8; CANFD_MAX_DLEN], - } - - #[repr(align(8))] - pub struct canxl_frame { - pub prio: canid_t, - pub flags: u8, - pub sdt: u8, - pub len: u16, - pub af: u32, - pub data: [u8; CANXL_MAX_DLEN], - } - - pub union __c_anonymous_sockaddr_can_can_addr { - pub tp: __c_anonymous_sockaddr_can_tp, - pub j1939: __c_anonymous_sockaddr_can_j1939, - } - - pub struct sockaddr_can { - pub can_family: crate::sa_family_t, - pub can_ifindex: c_int, - pub can_addr: __c_anonymous_sockaddr_can_can_addr, - } - // linux/wireless.h pub union iwreq_data { pub name: [c_char; crate::IFNAMSIZ], @@ -5401,112 +5322,6 @@ pub const EDOM: c_int = 33; pub const ERANGE: c_int = 34; pub const EWOULDBLOCK: c_int = EAGAIN; -// linux/can.h -pub const CAN_EFF_FLAG: canid_t = 0x80000000; -pub const CAN_RTR_FLAG: canid_t = 0x40000000; -pub const CAN_ERR_FLAG: canid_t = 0x20000000; -pub const CAN_SFF_MASK: canid_t = 0x000007FF; -pub const CAN_EFF_MASK: canid_t = 0x1FFFFFFF; -pub const CAN_ERR_MASK: canid_t = 0x1FFFFFFF; -pub const CANXL_PRIO_MASK: crate::canid_t = CAN_SFF_MASK; - -pub const CAN_SFF_ID_BITS: c_int = 11; -pub const CAN_EFF_ID_BITS: c_int = 29; -pub const CANXL_PRIO_BITS: c_int = CAN_SFF_ID_BITS; - -pub const CAN_MAX_DLC: c_int = 8; -pub const CAN_MAX_DLEN: usize = 8; -pub const CANFD_MAX_DLC: c_int = 15; -pub const CANFD_MAX_DLEN: usize = 64; - -pub const CANFD_BRS: c_int = 0x01; -pub const CANFD_ESI: c_int = 0x02; -pub const CANFD_FDF: c_int = 0x04; - -pub const CANXL_MIN_DLC: c_int = 0; -pub const CANXL_MAX_DLC: c_int = 2047; -pub const CANXL_MAX_DLC_MASK: c_int = 0x07FF; -pub const CANXL_MIN_DLEN: usize = 1; -pub const CANXL_MAX_DLEN: usize = 2048; - -pub const CANXL_XLF: c_int = 0x80; -pub const CANXL_SEC: c_int = 0x01; - -pub const CAN_MTU: usize = size_of::(); -pub const CANFD_MTU: usize = size_of::(); -pub const CANXL_MTU: usize = size_of::(); -// FIXME(offset_of): use `core::mem::offset_of!` once that is available -// https://github.com/rust-lang/rfcs/pull/3308 -// pub const CANXL_HDR_SIZE: usize = core::mem::offset_of!(canxl_frame, data); -pub const CANXL_HDR_SIZE: usize = 12; -pub const CANXL_MIN_MTU: usize = CANXL_HDR_SIZE + 64; -pub const CANXL_MAX_MTU: usize = CANXL_MTU; - -pub const CAN_RAW: c_int = 1; -pub const CAN_BCM: c_int = 2; -pub const CAN_TP16: c_int = 3; -pub const CAN_TP20: c_int = 4; -pub const CAN_MCNET: c_int = 5; -pub const CAN_ISOTP: c_int = 6; -pub const CAN_J1939: c_int = 7; -pub const CAN_NPROTO: c_int = 8; - -pub const SOL_CAN_BASE: c_int = 100; - -pub const CAN_INV_FILTER: canid_t = 0x20000000; -pub const CAN_RAW_FILTER_MAX: c_int = 512; - -// linux/can/raw.h -pub const SOL_CAN_RAW: c_int = SOL_CAN_BASE + CAN_RAW; -pub const CAN_RAW_FILTER: c_int = 1; -pub const CAN_RAW_ERR_FILTER: c_int = 2; -pub const CAN_RAW_LOOPBACK: c_int = 3; -pub const CAN_RAW_RECV_OWN_MSGS: c_int = 4; -pub const CAN_RAW_FD_FRAMES: c_int = 5; -pub const CAN_RAW_JOIN_FILTERS: c_int = 6; -pub const CAN_RAW_XL_FRAMES: c_int = 7; - -// linux/can/j1939.h -pub const SOL_CAN_J1939: c_int = SOL_CAN_BASE + CAN_J1939; - -pub const J1939_MAX_UNICAST_ADDR: c_uchar = 0xfd; -pub const J1939_IDLE_ADDR: c_uchar = 0xfe; -pub const J1939_NO_ADDR: c_uchar = 0xff; -pub const J1939_NO_NAME: c_ulong = 0; -pub const J1939_PGN_REQUEST: c_uint = 0x0ea00; -pub const J1939_PGN_ADDRESS_CLAIMED: c_uint = 0x0ee00; -pub const J1939_PGN_ADDRESS_COMMANDED: c_uint = 0x0fed8; -pub const J1939_PGN_PDU1_MAX: c_uint = 0x3ff00; -pub const J1939_PGN_MAX: c_uint = 0x3ffff; -pub const J1939_NO_PGN: c_uint = 0x40000; - -pub const SO_J1939_FILTER: c_int = 1; -pub const SO_J1939_PROMISC: c_int = 2; -pub const SO_J1939_SEND_PRIO: c_int = 3; -pub const SO_J1939_ERRQUEUE: c_int = 4; - -pub const SCM_J1939_DEST_ADDR: c_int = 1; -pub const SCM_J1939_DEST_NAME: c_int = 2; -pub const SCM_J1939_PRIO: c_int = 3; -pub const SCM_J1939_ERRQUEUE: c_int = 4; - -pub const J1939_NLA_PAD: c_int = 0; -pub const J1939_NLA_BYTES_ACKED: c_int = 1; -pub const J1939_NLA_TOTAL_SIZE: c_int = 2; -pub const J1939_NLA_PGN: c_int = 3; -pub const J1939_NLA_SRC_NAME: c_int = 4; -pub const J1939_NLA_DEST_NAME: c_int = 5; -pub const J1939_NLA_SRC_ADDR: c_int = 6; -pub const J1939_NLA_DEST_ADDR: c_int = 7; - -pub const J1939_EE_INFO_NONE: c_int = 0; -pub const J1939_EE_INFO_TX_ABORT: c_int = 1; -pub const J1939_EE_INFO_RX_RTS: c_int = 2; -pub const J1939_EE_INFO_RX_DPO: c_int = 3; -pub const J1939_EE_INFO_RX_ABORT: c_int = 4; - -pub const J1939_FILTER_MAX: c_int = 512; - // linux/sctp.h pub const SCTP_FUTURE_ASSOC: c_int = 0; pub const SCTP_CURRENT_ASSOC: c_int = 1; diff --git a/triagebot.toml b/triagebot.toml index 18c7fd79f8157..54d848f8f9cd3 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -61,7 +61,10 @@ trigger_files = [ trigger_files = ["src/unix/solarish/illumos.rs"] [autolabel."O-linux"] -trigger_files = ["src/unix/linux_like/linux"] +trigger_files = [ + "src/unix/linux_like/linux", + "src/reorg/linux_uapi", +] [autolabel."O-linux-like"] trigger_files = ["src/unix/linux_like/mod.rs"] From 5a7955ed6a7c1294f89b8b961522a82407d6d1e1 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 7 Jul 2025 15:26:01 +0000 Subject: [PATCH 0738/1228] ci: Skip the `new` module with style check (backport ) (cherry picked from commit d08c3940bf94b3efcaf476b27797bf7ac03b82b6) --- libc-test/test/check_style.rs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/libc-test/test/check_style.rs b/libc-test/test/check_style.rs index ee5e134891104..24f793e4feb86 100644 --- a/libc-test/test/check_style.rs +++ b/libc-test/test/check_style.rs @@ -16,21 +16,32 @@ use std::path::Path; use style::{Result, StyleChecker}; +/// Relative to `src/`. +const SKIP_PREFIXES: &[&str] = &[ + // Don't run the style checker on the reorganized portion of the crate while we figure + // out what style we want. + "new/", +]; + #[test] fn check_style() { - let root_dir = Path::new(env!("CARGO_MANIFEST_DIR")).join("../src"); - walk(&root_dir).unwrap(); + let src_root = Path::new(env!("CARGO_MANIFEST_DIR")).join("../src"); + walk(&src_root).unwrap(); eprintln!("good style!"); } -fn walk(root_dir: &Path) -> Result<()> { +fn walk(src_root: &Path) -> Result<()> { let mut style_checker = StyleChecker::new(); for entry in glob::glob(&format!( "{}/**/*.rs", - root_dir.to_str().expect("dir should be valid UTF-8") + src_root.to_str().expect("dir should be valid UTF-8") ))? { let entry = entry?; + let relpath = entry.strip_prefix(src_root).expect("known path"); + if SKIP_PREFIXES.iter().any(|pfx| relpath.starts_with(pfx)) { + continue; + } let name = entry .file_name() From b2287047d8efd809918f3cbb107530bbf4bfe487 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 8 Jul 2025 00:05:06 -0500 Subject: [PATCH 0739/1228] Source reorganization of Android `socket.h` Create a bionic module and move some things over from `linux_like`. Source: https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/include/sys/socket.h;drc=dc6e2fb4857f05bfee435cfd4f3859e74c746811 (backport ) (cherry picked from commit bce7db1b5d3ba2f10e1caa17e6401ebf8016cf32) --- src/new/bionic/mod.rs | 2 ++ src/new/bionic/sys/mod.rs | 2 ++ src/new/bionic/sys/socket.rs | 51 ++++++++++++++++++++++++++++++ src/new/mod.rs | 3 ++ src/unix/linux_like/android/mod.rs | 44 +------------------------- src/unix/linux_like/mod.rs | 14 ++++---- 6 files changed, 66 insertions(+), 50 deletions(-) create mode 100644 src/new/bionic/mod.rs create mode 100644 src/new/bionic/sys/mod.rs create mode 100644 src/new/bionic/sys/socket.rs diff --git a/src/new/bionic/mod.rs b/src/new/bionic/mod.rs new file mode 100644 index 0000000000000..644a4ab96d90f --- /dev/null +++ b/src/new/bionic/mod.rs @@ -0,0 +1,2 @@ +mod sys; +pub use sys::*; diff --git a/src/new/bionic/sys/mod.rs b/src/new/bionic/sys/mod.rs new file mode 100644 index 0000000000000..fd96d0821ac88 --- /dev/null +++ b/src/new/bionic/sys/mod.rs @@ -0,0 +1,2 @@ +mod socket; +pub use socket::*; diff --git a/src/new/bionic/sys/socket.rs b/src/new/bionic/sys/socket.rs new file mode 100644 index 0000000000000..49af36fe93356 --- /dev/null +++ b/src/new/bionic/sys/socket.rs @@ -0,0 +1,51 @@ +//! Header: `bionic/libc/include/sys/socket.h` + +use crate::prelude::*; + +s! { + pub struct msghdr { + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + pub msg_iovlen: size_t, + pub msg_control: *mut c_void, + pub msg_controllen: size_t, + pub msg_flags: c_int, + } + + pub struct cmsghdr { + pub cmsg_len: size_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, + } + + pub struct ucred { + pub pid: crate::pid_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + } +} + +extern "C" { + pub fn recvmmsg( + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_int, + timeout: *const crate::timespec, + ) -> c_int; + pub fn sendmmsg( + sockfd: c_int, + msgvec: *const crate::mmsghdr, + vlen: c_uint, + flags: c_int, + ) -> c_int; + pub fn recvfrom( + socket: c_int, + buf: *mut c_void, + len: size_t, + flags: c_int, + addr: *mut crate::sockaddr, + addrlen: *mut crate::socklen_t, + ) -> ssize_t; +} diff --git a/src/new/mod.rs b/src/new/mod.rs index 4006f5c82288d..0a2a55b0f469b 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -8,5 +8,8 @@ cfg_if! { if #[cfg(target_os = "linux")] { mod linux_uapi; pub use linux_uapi::*; + } else if #[cfg(target_os = "android")] { + mod bionic; + pub use bionic::*; } } diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 7201b09982eb7..100008ce5d8e9 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1,6 +1,7 @@ //! Android-specific definitions for linux-like values use crate::prelude::*; +use crate::{cmsghdr, msghdr}; cfg_if! { if #[cfg(doc)] { @@ -74,22 +75,6 @@ s! { __val: [c_int; 2], } - pub struct msghdr { - pub msg_name: *mut c_void, - pub msg_namelen: crate::socklen_t, - pub msg_iov: *mut crate::iovec, - pub msg_iovlen: size_t, - pub msg_control: *mut c_void, - pub msg_controllen: size_t, - pub msg_flags: c_int, - } - - pub struct cmsghdr { - pub cmsg_len: size_t, - pub cmsg_level: c_int, - pub cmsg_type: c_int, - } - pub struct termios { pub c_iflag: crate::tcflag_t, pub c_oflag: crate::tcflag_t, @@ -203,12 +188,6 @@ s! { pub it_value: crate::timespec, } - pub struct ucred { - pub pid: crate::pid_t, - pub uid: crate::uid_t, - pub gid: crate::gid_t, - } - pub struct genlmsghdr { pub cmd: u8, pub version: u8, @@ -3501,14 +3480,6 @@ extern "C" { pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; - pub fn recvfrom( - socket: c_int, - buf: *mut c_void, - len: size_t, - flags: c_int, - addr: *mut crate::sockaddr, - addrlen: *mut crate::socklen_t, - ) -> ssize_t; pub fn getnameinfo( sa: *const crate::sockaddr, salen: crate::socklen_t, @@ -3821,19 +3792,6 @@ extern "C" { ) -> c_int; pub fn __errno() -> *mut c_int; pub fn inotify_rm_watch(fd: c_int, wd: u32) -> c_int; - pub fn sendmmsg( - sockfd: c_int, - msgvec: *const crate::mmsghdr, - vlen: c_uint, - flags: c_int, - ) -> c_int; - pub fn recvmmsg( - sockfd: c_int, - msgvec: *mut crate::mmsghdr, - vlen: c_uint, - flags: c_int, - timeout: *const crate::timespec, - ) -> c_int; pub fn inotify_init() -> c_int; pub fn inotify_init1(flags: c_int) -> c_int; pub fn inotify_add_watch(fd: c_int, path: *const c_char, mask: u32) -> c_int; diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 4e0d6124d880a..98a093db2e742 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1792,24 +1792,24 @@ const_fn! { } f! { - pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= size_of::() { - (*mhdr).msg_control.cast::() + pub fn CMSG_FIRSTHDR(mhdr: *const crate::msghdr) -> *mut crate::cmsghdr { + if (*mhdr).msg_controllen as usize >= size_of::() { + (*mhdr).msg_control.cast::() } else { - core::ptr::null_mut::() + core::ptr::null_mut::() } } - pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { + pub fn CMSG_DATA(cmsg: *const crate::cmsghdr) -> *mut c_uchar { cmsg.offset(1) as *mut c_uchar } pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(size_of::())) as c_uint + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(size_of::())) as c_uint } pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { - CMSG_ALIGN(size_of::()) as c_uint + length + CMSG_ALIGN(size_of::()) as c_uint + length } pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () { From 0108917a289af803a8349d74491f859f895c8065 Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Wed, 23 Jul 2025 11:31:01 -0400 Subject: [PATCH 0740/1228] Add 'const' to signatures to be consistent with other platforms. (backport ) (cherry picked from commit 6af1254bc96e0dbd7a1c713179d3d8277b611a90) --- libc-test/build.rs | 9 +++++++++ src/unix/aix/mod.rs | 18 +++++++++--------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index f620e0659c0eb..6724ab2c7719d 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -5750,6 +5750,15 @@ fn test_aix(target: &str) { // The function is only available under macro _KERNEL in 'proto_uipc.h'. "getpeereid" => true, + // The AIX signatures for these non-POSIX functions differ from + // those on platforms like Linux: some arguments are not marked + // with the 'const' qualifier, even though they are not modified. + // To be consistent with other platforms, 'const' is added to the + // Rust declarations. However, this causes a mismatch with the AIX + // header signatures. Skipping. + "setdomainname" | "settimeofday" | "statfs" | "statfs64" | "statx" | "swapoff" + | "swapon" | "utmpname" | "setgroups" => true, + _ => false, } }); diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 13feca788cb3d..2d3f40c2a10b8 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -3250,15 +3250,15 @@ extern "C" { #[link_name = "nsendmsg"] pub fn sendmsg(sockfd: c_int, msg: *const msghdr, flags: c_int) -> ssize_t; pub fn setcontext(ucp: *const ucontext_t) -> c_int; - pub fn setdomainname(name: *mut c_char, len: c_int) -> c_int; - pub fn setgroups(ngroups: c_int, ptr: *mut crate::gid_t) -> c_int; + pub fn setdomainname(name: *const c_char, len: c_int) -> c_int; + pub fn setgroups(ngroups: c_int, ptr: *const crate::gid_t) -> c_int; pub fn setgrent(); pub fn setmntent(filename: *const c_char, ty: *const c_char) -> *mut crate::FILE; pub fn setpriority(which: c_int, who: id_t, priority: c_int) -> c_int; pub fn setpwent(); pub fn setrlimit(resource: c_int, rlim: *const crate::rlimit) -> c_int; pub fn setrlimit64(resource: c_int, rlim: *const rlimit64) -> c_int; - pub fn settimeofday(tv: *mut crate::timeval, tz: *mut crate::timezone) -> c_int; + pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int; pub fn setitimer( which: c_int, new_value: *const crate::itimerval, @@ -3285,10 +3285,10 @@ extern "C" { pub fn srand48(seed: c_long); pub fn stat64(path: *const c_char, buf: *mut stat64) -> c_int; pub fn stat64at(dirfd: c_int, path: *const c_char, buf: *mut stat64, flags: c_int) -> c_int; - pub fn statfs(path: *mut c_char, buf: *mut statfs) -> c_int; - pub fn statfs64(path: *mut c_char, buf: *mut statfs64) -> c_int; + pub fn statfs(path: *const c_char, buf: *mut statfs) -> c_int; + pub fn statfs64(path: *const c_char, buf: *mut statfs64) -> c_int; pub fn statvfs64(path: *const c_char, buf: *mut statvfs64) -> c_int; - pub fn statx(path: *mut c_char, buf: *mut stat, length: c_int, command: c_int) -> c_int; + pub fn statx(path: *const c_char, buf: *mut stat, length: c_int, command: c_int) -> c_int; pub fn strcasecmp_l( string1: *const c_char, string2: *const c_char, @@ -3310,8 +3310,8 @@ extern "C" { pub fn strptime(s: *const c_char, format: *const c_char, tm: *mut crate::tm) -> *mut c_char; pub fn strsep(string: *mut *mut c_char, delim: *const c_char) -> *mut c_char; pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> c_int; - pub fn swapoff(puath: *mut c_char) -> c_int; - pub fn swapon(path: *mut c_char) -> c_int; + pub fn swapoff(path: *const c_char) -> c_int; + pub fn swapon(path: *const c_char) -> c_int; pub fn sync(); pub fn telldir(dirp: *mut crate::DIR) -> c_long; pub fn timer_create( @@ -3332,7 +3332,7 @@ extern "C" { pub fn uname(buf: *mut crate::utsname) -> c_int; pub fn updwtmp(file: *const c_char, u: *const utmp); pub fn uselocale(loc: crate::locale_t) -> crate::locale_t; - pub fn utmpname(file: *mut c_char) -> c_int; + pub fn utmpname(file: *const c_char) -> c_int; pub fn utimensat( dirfd: c_int, path: *const c_char, From 906fcef8075ca53212716289f114e2fc8691a1c1 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 23 Jul 2025 21:48:34 -0500 Subject: [PATCH 0741/1228] ci: Remove handling for the `QEMU` environment variable The last uses of this were removed in 201d5394658f ("Remove OpenBSD CI") and e88e6b99de10 ("Move FreeBSD testing from Travis/QEMU to Cirrus-CI"), so this is no longer needed. Clean up the CI script. (backport ) (cherry picked from commit 423ee014c89e237d086c327413da939da050b4d0) --- ci/run.sh | 73 +------------------------------------------------------ 1 file changed, 1 insertion(+), 72 deletions(-) diff --git a/ci/run.sh b/ci/run.sh index 1d4b5f5079d96..3583e198ecea1 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -5,87 +5,16 @@ set -eux -mirrors_url="https://ci-mirrors.rust-lang.org/libc" - target="$1" export RUST_BACKTRACE="${RUST_BACKTRACE:-1}" -# If we're going to run tests inside of a qemu image, then we don't need any of -# the scripts below. Instead, download the image, prepare a filesystem which has -# the current state of this repository, and then run the image. -# -# It's assume that all images, when run with two disks, will run the `run.sh` -# script from the second which we place inside. -if [ -n "${QEMU:-}" ]; then - tmpdir=/tmp/qemu-img-creation - mkdir -p "${tmpdir}" - - if [ -z "${QEMU#*.gz}" ]; then - # image is .gz : download and uncompress it - base_file="${QEMU%.gz}" - pipe_cmd="gunzip -d" - elif [ -z "${QEMU#*.xz}" ]; then - # image is .xz : download and uncompress it - base_file="${QEMU%.xz}" - pipe_cmd="unxz" - else - # plain qcow2 image: just download it - base_file="$QEMU" - pipe_cmd="cat" # nop to forward the result - fi - - qemufile="$(echo "$base_file" | sed 's/\//__/g')" - if [ ! -f "${tmpdir}/${qemufile}" ]; then - curl --retry 5 "${mirrors_url}/${QEMU}" | $pipe_cmd > "${tmpdir}/${qemufile}" - fi - - # Create a mount a fresh new filesystem image that we'll later pass to QEMU. - # This will have a `run.sh` script will which use the artifacts inside to run - # on the host. - rm -f "${tmpdir}/libc-test.img" - mkdir "${tmpdir}/mount" - - # Do the standard rigamarole of cross-compiling an executable and then the - # script to run just executes the binary. - cargo build \ - --manifest-path libc-test/Cargo.toml \ - --target "$target" \ - --test main ${LIBC_CI_ZBUILD_STD+"-Zbuild-std=core"} - rm "${CARGO_TARGET_DIR}/${target}"/debug/main-*.d - cp "${CARGO_TARGET_DIR}/${target}"/debug/main-* "${tmpdir}"/mount/libc-test - # shellcheck disable=SC2016 - echo 'exec $1/libc-test' > "${tmpdir}/mount/run.sh" - - du -sh "${tmpdir}/mount" - genext2fs \ - --root "${tmpdir}/mount" \ - --size-in-blocks 100000 \ - "${tmpdir}/libc-test.img" - - # Pass -snapshot to prevent tampering with the disk images, this helps when - # running this script in development. The two drives are then passed next, - # first is the OS and second is the one we just made. Next the network is - # configured to work (I'm not entirely sure how), and then finally we turn off - # graphics and redirect the serial console output to out.log. - qemu-system-x86_64 \ - -m 1024 \ - -snapshot \ - -drive if=virtio,file="${tmpdir}/${qemufile}" \ - -drive if=virtio,file="${tmpdir}/libc-test.img" \ - -net nic,model=virtio \ - -net user \ - -nographic \ - -vga none 2>&1 | tee "${CARGO_TARGET_DIR}/out.log" - exec grep -E "^(PASSED)|(test result: ok)" "${CARGO_TARGET_DIR}/out.log" -fi - cmd="cargo test --target $target ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"}" test_flags="--skip check_style" # Run tests in the `libc` crate case "$target" in - # Only run `libc-test` + # Only run `libc-test` # FIXME(android): unit tests fail to start on Android *android*) cmd="$cmd --manifest-path libc-test/Cargo.toml" ;; *s390x*) cmd="$cmd --manifest-path libc-test/Cargo.toml" ;; From baf9c04f98f9d9c76dfbe14d916b587225dd2da2 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 23 Jul 2025 21:56:30 -0500 Subject: [PATCH 0742/1228] ci: Upgrade wasm dependencies to the latest version (backport ) (cherry picked from commit 7013c988dbe2d1b1a7c9709138f6d2f957d7683f) --- ci/wasi.sh | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/ci/wasi.sh b/ci/wasi.sh index e7896233ad7f3..4928681b0a270 100755 --- a/ci/wasi.sh +++ b/ci/wasi.sh @@ -11,12 +11,8 @@ apt-get install -y --no-install-recommends \ # Wasmtime is used to execute tests and wasi-sdk is used to compile tests. # Download appropriate versions here and configure various flags below. -# -# At the time of this writing wasmtime 24.0.0 is the latest release and -# wasi-sdk-24 is the latest release, that these numbers match is just -# coincidence. -wasmtime=24.0.0 -wasi_sdk=24 +wasmtime=35.0.0 +wasi_sdk=25 curl -L https://github.com/bytecodealliance/wasmtime/releases/download/v$wasmtime/wasmtime-v$wasmtime-x86_64-linux.tar.xz | tar xJf - From 7217b2b23929ca78e1bf2f081b9a499c42f1f6c5 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 23 Jul 2025 22:41:43 -0500 Subject: [PATCH 0743/1228] ci: Format shell scripts Set up `shfmt` configuration and apply it to our shell scripts with the following: fd -e sh -x shfmt -w (backport ) (cherry picked from commit 0d1d6fdb4e4bb25a36e7cf9a85aedf91642bb17c) --- .editorconfig | 7 ++++++ ci/android-install-sdk.sh | 48 +++++++++++++++++++-------------------- ci/install-musl.sh | 17 +++++++------- ci/install-rust.sh | 10 ++++---- ci/run-docker.sh | 2 +- ci/run.sh | 8 +++---- ci/style.sh | 4 ++-- ci/verify-build.sh | 14 ++++++------ 8 files changed, 58 insertions(+), 52 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000000..155c9905f91e1 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,7 @@ +[*.sh] +# See https://github.com/mvdan/sh/blob/master/cmd/shfmt/shfmt.1.scd#examples +indent_style = space +indent_size = 4 + +switch_case_indent = true +space_redirects = true diff --git a/ci/android-install-sdk.sh b/ci/android-install-sdk.sh index 331e061357648..43e1153dcd331 100755 --- a/ci/android-install-sdk.sh +++ b/ci/android-install-sdk.sh @@ -15,27 +15,27 @@ wget -q --tries=20 "https://dl.google.com/android/repository/commandlinetools-li unzip -q -d sdk/cmdline-tools "commandlinetools-linux-${sdk}_latest.zip" case "$1" in - arm | armv7) - api=24 - image="system-images;android-${api};default;armeabi-v7a" - ;; - aarch64) - api=24 - image="system-images;android-${api};google_apis;arm64-v8a" - ;; - i686) - api=28 - image="system-images;android-${api};default;x86" - ;; - x86_64) - api=28 - image="system-images;android-${api};default;x86_64" - ;; - *) - echo "invalid arch: $1" - exit 1 - ;; -esac; + arm | armv7) + api=24 + image="system-images;android-${api};default;armeabi-v7a" + ;; + aarch64) + api=24 + image="system-images;android-${api};google_apis;arm64-v8a" + ;; + i686) + api=28 + image="system-images;android-${api};default;x86" + ;; + x86_64) + api=28 + image="system-images;android-${api};default;x86_64" + ;; + *) + echo "invalid arch: $1" + exit 1 + ;; +esac # Try to fix warning about missing file. # See https://askubuntu.com/a/1078784 @@ -53,9 +53,9 @@ echo '#Fri Nov 03 10:11:27 CET 2017 count=0' >> /root/.android/repositories.cfg # which produces an insane amount of output. yes | ./sdk/cmdline-tools/tools/bin/sdkmanager --licenses --no_https | grep -v = || true yes | ./sdk/cmdline-tools/tools/bin/sdkmanager --no_https \ - "platform-tools" \ - "platforms;android-${api}" \ - "${image}" | grep -v = || true + "platform-tools" \ + "platforms;android-${api}" \ + "${image}" | grep -v = || true # The newer emulator versions (31.3.12 or higher) fail to a valid AVD and the test gets stuck. # Until we figure out why, we use the older version (31.3.11). diff --git a/ci/install-musl.sh b/ci/install-musl.sh index ca8368a7074df..f5516553707d2 100755 --- a/ci/install-musl.sh +++ b/ci/install-musl.sh @@ -25,14 +25,14 @@ case ${1} in musl_arch=aarch64 kernel_arch=arm64 CC=aarch64-linux-gnu-gcc \ - ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes + ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes make install -j4 ;; arm) musl_arch=arm kernel_arch=arm CC=arm-linux-gnueabihf-gcc CFLAGS="-march=armv6 -marm -mfpu=vfp" \ - ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes + ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes make install -j4 ;; i686) @@ -43,7 +43,7 @@ case ${1} in # Specifically pass -m32 in CFLAGS and override CC when running # ./configure, since otherwise the script will fail to find a compiler. CC=gcc CFLAGS="-m32" \ - ./configure --prefix="/musl-${musl_arch}" --disable-shared --target=i686 + ./configure --prefix="/musl-${musl_arch}" --disable-shared --target=i686 # unset CROSS_COMPILE when running make; otherwise the makefile will # call the non-existent binary 'i686-ar'. make CROSS_COMPILE= install -j4 @@ -58,21 +58,21 @@ case ${1} in musl_arch=s390x kernel_arch=s390 CC=s390x-linux-gnu-gcc \ - ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes + ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes make install -j4 ;; loongarch64) musl_arch=loongarch64 kernel_arch=loongarch CC=loongarch64-linux-gnu-gcc-14 \ - ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes + ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes make install -j4 ;; powerpc64*) musl_arch=powerpc64 kernel_arch=powerpc CC="${1}-linux-gnu-gcc" CFLAGS="-mlong-double-64" \ - ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes + ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes make install -j4 ;; *) @@ -81,7 +81,6 @@ case ${1} in ;; esac - # shellcheck disable=SC2103 cd .. rm -rf "$musl" @@ -123,8 +122,8 @@ EOF base=$(basename "$url") curl --retry 5 -L "$url" > "$base" case $base in - linux-*) kernel=$base;; - patch-*) patch=$base;; + linux-*) kernel=$base ;; + patch-*) patch=$base ;; esac # Check if file is known grep -o "$base" alpine-sha512sums diff --git a/ci/install-rust.sh b/ci/install-rust.sh index 6e7b1930c59a2..69e8ba97a5d3d 100755 --- a/ci/install-rust.sh +++ b/ci/install-rust.sh @@ -9,9 +9,9 @@ toolchain="${TOOLCHAIN:-nightly}" os="${OS:-}" case "$(uname -s)" in - Linux*) os=linux ;; - Darwin*) os=macos ;; - MINGW*) os=windows ;; + Linux*) os=linux ;; + Darwin*) os=macos ;; + MINGW*) os=windows ;; *) echo "Unknown system $(uname -s)" exit 1 @@ -51,7 +51,7 @@ if [ "$os" = "windows" ]; then if [ -n "${ARCH_BITS:-}" ]; then echo "Fix MinGW" - for i in crt2.o dllcrt2.o libmingwex.a libmsvcrt.a ; do + for i in crt2.o dllcrt2.o libmingwex.a libmsvcrt.a; do cp -f "/C/ProgramData/Chocolatey/lib/mingw/tools/install/mingw$ARCH_BITS/$ARCH-w64-mingw32/lib/$i" "$(rustc --print sysroot)/lib/rustlib/$TARGET/lib" done fi @@ -71,6 +71,6 @@ until [ $n -ge $N ]; do break fi - n=$((n+1)) + n=$((n + 1)) sleep 1 done diff --git a/ci/run-docker.sh b/ci/run-docker.sh index 9411d39e5f670..db10c3b061ba8 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -21,7 +21,7 @@ echo "${HOME}" pwd # Avoid "no space left on device" failure if running in CI -if [ "${CI:-0}" != "0" ] && [ "$target" = "aarch64-linux-android" ] ; then +if [ "${CI:-0}" != "0" ] && [ "$target" = "aarch64-linux-android" ]; then docker system prune -af docker system df fi diff --git a/ci/run.sh b/ci/run.sh index 3583e198ecea1..7b4525143d05a 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -19,7 +19,7 @@ case "$target" in *android*) cmd="$cmd --manifest-path libc-test/Cargo.toml" ;; *s390x*) cmd="$cmd --manifest-path libc-test/Cargo.toml" ;; # For all other platforms, test everything in the workspace - *) cmd="$cmd --workspace" + *) cmd="$cmd --workspace" ;; esac if [ "$target" = "s390x-unknown-linux-gnu" ]; then @@ -32,13 +32,13 @@ if [ "$target" = "s390x-unknown-linux-gnu" ]; then if [ "$passed" = "0" ]; then # shellcheck disable=SC2086 if $cmd --no-default-features -- $test_flags; then - passed=$((passed+1)) + passed=$((passed + 1)) continue fi elif [ "$passed" = "1" ]; then # shellcheck disable=SC2086 if $cmd -- $test_flags; then - passed=$((passed+1)) + passed=$((passed + 1)) continue fi elif [ "$passed" = "2" ]; then @@ -47,7 +47,7 @@ if [ "$target" = "s390x-unknown-linux-gnu" ]; then break fi fi - n=$((n+1)) + n=$((n + 1)) sleep 1 done else diff --git a/ci/style.sh b/ci/style.sh index 4e425f8806000..72465f71c760a 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -65,7 +65,7 @@ export LC_ALL=C for file in libc-test/semver/*.txt; do case "$file" in - *TODO*) continue ;; + *TODO*) continue ;; esac if ! sort -C "$file"; then @@ -82,7 +82,7 @@ for file in libc-test/semver/*.txt; do fi done -if shellcheck --version ; then +if shellcheck --version; then find . -name '*.sh' -print0 | xargs -0 shellcheck else echo "shellcheck not found" diff --git a/ci/verify-build.sh b/ci/verify-build.sh index 85dff451e3863..e833de2e04c5b 100755 --- a/ci/verify-build.sh +++ b/ci/verify-build.sh @@ -14,9 +14,9 @@ filter="${FILTER:-}" host_target=$(rustc -vV | awk '/^host/ { print $2 }') case "$(uname -s)" in - Linux*) os=linux ;; - Darwin*) os=macos ;; - MINGW*) os=windows ;; + Linux*) os=linux ;; + Darwin*) os=macos ;; + MINGW*) os=windows ;; *) echo "Unknown system $(uname -s)" exit 1 @@ -25,7 +25,7 @@ esac echo "Testing Rust $rust on $os" -if [ "$TOOLCHAIN" = "nightly" ] ; then +if [ "$TOOLCHAIN" = "nightly" ]; then # For build-std rustup component add rust-src fi @@ -61,10 +61,10 @@ test_target() { N=5 n=0 until [ $n -ge $N ]; do - if rustup target add "$target" --toolchain "$rust" ; then + if rustup target add "$target" --toolchain "$rust"; then break fi - n=$((n+1)) + n=$((n + 1)) sleep 1 done fi @@ -77,7 +77,7 @@ test_target() { # Test with the equivalent of __USE_TIME_BITS64 RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64=1 $cmd case "$target" in - arm*-gnu*|i*86*-gnu|powerpc-*-gnu*|mips*-gnu|sparc-*-gnu|thumb-*gnu*) + arm*-gnu* | i*86*-gnu | powerpc-*-gnu* | mips*-gnu | sparc-*-gnu | thumb-*gnu*) # Test with the equivalent of _FILE_OFFSET_BITS=64 RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS=64 $cmd # Test with the equivalent of _TIME_BITS=64 From 9fa71a8666dee7788a513c6ca5e25ca63182e4f7 Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Thu, 10 Jul 2025 14:30:59 +0000 Subject: [PATCH 0744/1228] linux: Add EXEC_RESTRICT_FILE and EXEC_DENY_INTERACTIVE securebits These were added in 6.14 with the following commit: https://github.com/torvalds/linux/commit/a0623b2a1d595341971c189b90a6b06f42cd209d Signed-off-by: Jens Reidel (backport ) (cherry picked from commit 1a1efaf8d6873a4d00f0a3329adbf4bc7703b0ee) --- libc-test/build.rs | 10 ++++++++++ libc-test/semver/linux.txt | 5 +++++ src/unix/linux_like/linux/mod.rs | 24 ++++++++++++++++++++++-- 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 6724ab2c7719d..2a690d8e2d273 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4735,6 +4735,16 @@ fn test_linux(target: &str) { // FIXME(linux): Requires >= 6.6 kernel headers. "PROC_EVENT_NONZERO_EXIT" => true, + // FIXME(linux): Requires >= 6.14 kernel headers. + "SECBIT_EXEC_DENY_INTERACTIVE" + | "SECBIT_EXEC_DENY_INTERACTIVE_LOCKED" + | "SECBIT_EXEC_RESTRICT_FILE" + | "SECBIT_EXEC_RESTRICT_FILE_LOCKED" + | "SECURE_ALL_UNPRIVILEGED" => true, + + // FIXME(linux): Value changed in 6.14 + "SECURE_ALL_BITS" | "SECURE_ALL_LOCKS" => true, + _ => false, } }); diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 5ab4aef3d8a35..47a029dfc6b8f 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2776,6 +2776,10 @@ SCTP_STATUS SCTP_STREAM_RESET_INCOMING SCTP_STREAM_RESET_OUTGOING SCTP_UNORDERED +SECBIT_EXEC_DENY_INTERACTIVE +SECBIT_EXEC_DENY_INTERACTIVE_LOCKED +SECBIT_EXEC_RESTRICT_FILE +SECBIT_EXEC_RESTRICT_FILE_LOCKED SECBIT_KEEP_CAPS SECBIT_KEEP_CAPS_LOCKED SECBIT_NOROOT @@ -2815,6 +2819,7 @@ SECCOMP_USER_NOTIF_FLAG_CONTINUE SECUREBITS_DEFAULT SECURE_ALL_BITS SECURE_ALL_LOCKS +SECURE_ALL_UNPRIVILEGED SEEK_DATA SEEK_HOLE SELFMAG diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index dee6ed53e74fc..7fd24d480c53a 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -4782,11 +4782,31 @@ pub const SECBIT_NO_CAP_AMBIENT_RAISE: c_int = issecure_mask(SECURE_NO_CAP_AMBIE pub const SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED: c_int = issecure_mask(SECURE_NO_CAP_AMBIENT_RAISE_LOCKED); +const SECURE_EXEC_RESTRICT_FILE: c_int = 8; +const SECURE_EXEC_RESTRICT_FILE_LOCKED: c_int = 9; + +pub const SECBIT_EXEC_RESTRICT_FILE: c_int = issecure_mask(SECURE_EXEC_RESTRICT_FILE); +pub const SECBIT_EXEC_RESTRICT_FILE_LOCKED: c_int = issecure_mask(SECURE_EXEC_RESTRICT_FILE_LOCKED); + +const SECURE_EXEC_DENY_INTERACTIVE: c_int = 10; +const SECURE_EXEC_DENY_INTERACTIVE_LOCKED: c_int = 11; + +pub const SECBIT_EXEC_DENY_INTERACTIVE: c_int = issecure_mask(SECURE_EXEC_DENY_INTERACTIVE); +pub const SECBIT_EXEC_DENY_INTERACTIVE_LOCKED: c_int = + issecure_mask(SECURE_EXEC_DENY_INTERACTIVE_LOCKED); + pub const SECUREBITS_DEFAULT: c_int = 0x00000000; -pub const SECURE_ALL_BITS: c_int = - SECBIT_NOROOT | SECBIT_NO_SETUID_FIXUP | SECBIT_KEEP_CAPS | SECBIT_NO_CAP_AMBIENT_RAISE; +pub const SECURE_ALL_BITS: c_int = SECBIT_NOROOT + | SECBIT_NO_SETUID_FIXUP + | SECBIT_KEEP_CAPS + | SECBIT_NO_CAP_AMBIENT_RAISE + | SECBIT_EXEC_RESTRICT_FILE + | SECBIT_EXEC_DENY_INTERACTIVE; pub const SECURE_ALL_LOCKS: c_int = SECURE_ALL_BITS << 1; +pub const SECURE_ALL_UNPRIVILEGED: c_int = + issecure_mask(SECURE_EXEC_RESTRICT_FILE) | issecure_mask(SECURE_EXEC_DENY_INTERACTIVE); + const fn issecure_mask(x: c_int) -> c_int { 1 << x } From 14c8f0944aaf61c9467419a685c4d4d1b3fb3cfb Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 23 Jul 2025 23:32:54 -0500 Subject: [PATCH 0745/1228] test: Start using automatic test detection Move the `cmsg` test from `libc-test/test/` to `libc-test/tests/`, which is autodetected. (backport ) (cherry picked from commit b0de59a36ea4d7c6c80fd061daff43c90e58475d) --- libc-test/Cargo.toml | 5 ----- {libc-test/test => libc-tests/tests}/cmsg.rs | 5 ++--- 2 files changed, 2 insertions(+), 8 deletions(-) rename {libc-test/test => libc-tests/tests}/cmsg.rs (95%) diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 4d9331798a375..5be5863f4d5af 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -65,11 +65,6 @@ name = "linux-termios" path = "test/linux_termios.rs" harness = false -[[test]] -name = "cmsg" -path = "test/cmsg.rs" -harness = true - [[test]] name = "makedev" path = "test/makedev.rs" diff --git a/libc-test/test/cmsg.rs b/libc-tests/tests/cmsg.rs similarity index 95% rename from libc-test/test/cmsg.rs rename to libc-tests/tests/cmsg.rs index 763819019b771..bba658c498aa9 100644 --- a/libc-test/test/cmsg.rs +++ b/libc-tests/tests/cmsg.rs @@ -55,7 +55,6 @@ mod t { #[cfg(not(target_arch = "sparc64"))] #[test] fn test_cmsg_nxthdr() { - use std::ptr; // Helps to align the buffer on the stack. #[repr(align(8))] struct Align8(T); @@ -65,7 +64,7 @@ mod t { let mut mhdr: msghdr = unsafe { mem::zeroed() }; for start_ofs in 0..64 { let pcmsghdr = buffer.0.as_mut_ptr().cast::(); - mhdr.msg_control = pcmsghdr as *mut c_void; + mhdr.msg_control = pcmsghdr.cast::(); mhdr.msg_controllen = (160 - start_ofs) as _; for cmsg_len in 0..64 { // Address must be a multiple of 0x4 for testing on AIX. @@ -80,7 +79,7 @@ mod t { let next = cmsg_nxthdr(&mhdr, pcmsghdr); assert_eq!(libc_next, next); - if libc_next != ptr::null_mut() { + if !libc_next.is_null() { (*libc_next).cmsg_len = next_cmsg_len; let libc_next = libc::CMSG_NXTHDR(&mhdr, pcmsghdr); let next = cmsg_nxthdr(&mhdr, pcmsghdr); From 50faaa22a1a6aea6377ae5c614e5fbfa72c594fe Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 23 Jul 2025 21:59:36 -0500 Subject: [PATCH 0746/1228] ci: Upgrade to the macos-15 runner image (backport ) (cherry picked from commit 96c990ecd0ee68f8f6764365bc64dc09cf96f691) --- .github/workflows/ci.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 789d1f40b5cd5..e9c1306af438b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -34,7 +34,7 @@ jobs: name: Clippy on ${{ matrix.os }} strategy: matrix: - os: [ubuntu-24.04, macos-14, windows-2022] + os: [ubuntu-24.04, macos-15, windows-2022] runs-on: ${{ matrix.os }} timeout-minutes: 10 steps: @@ -52,7 +52,7 @@ jobs: strategy: matrix: toolchain: [stable, nightly, 1.63.0] - os: [ubuntu-24.04, macos-14, windows-2022] + os: [ubuntu-24.04, macos-15, windows-2022] include: - toolchain: beta os: ubuntu-24.04 @@ -111,7 +111,7 @@ jobs: docker: true os: ubuntu-24.04 - target: aarch64-apple-darwin - os: macos-14 + os: macos-15 - target: x86_64-pc-windows-gnu os: windows-2022 env: From 3ceeee10a6f730c5ba20e04fca951142c95c451c Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 24 Jul 2025 00:31:29 -0500 Subject: [PATCH 0747/1228] test: Correct the directory for `tests` b0de59a36ea4 ("test: Start using automatic test detection") moved `cmsg` to `libc-tests` rather than `libc-test`. Fix this here. (backport ) (cherry picked from commit b93598fc771b948e86bab17623e2fd9d1d844769) --- {libc-tests => libc-test}/tests/cmsg.rs | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {libc-tests => libc-test}/tests/cmsg.rs (100%) diff --git a/libc-tests/tests/cmsg.rs b/libc-test/tests/cmsg.rs similarity index 100% rename from libc-tests/tests/cmsg.rs rename to libc-test/tests/cmsg.rs From 04777c194f303c743a85f5b08613cf3e83aa3365 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 24 Jul 2025 00:35:43 -0500 Subject: [PATCH 0748/1228] test: Move more tests to `libc-test/tests` Use autodetection for more tests that don't need a harness. (backport ) (cherry picked from commit 196f0abd8fee3dcd8926ce847ebbf82081f61d3b) --- libc-test/Cargo.toml | 20 -------------------- libc-test/{test => tests}/errqueue.rs | 0 libc-test/{test => tests}/makedev.rs | 0 libc-test/{test => tests}/primitive_types.rs | 0 libc-test/{test => tests}/sigrt.rs | 0 5 files changed, 20 deletions(-) rename libc-test/{test => tests}/errqueue.rs (100%) rename libc-test/{test => tests}/makedev.rs (100%) rename libc-test/{test => tests}/primitive_types.rs (100%) rename libc-test/{test => tests}/sigrt.rs (100%) diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 5be5863f4d5af..6c9d8c82ab07f 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -65,31 +65,11 @@ name = "linux-termios" path = "test/linux_termios.rs" harness = false -[[test]] -name = "makedev" -path = "test/makedev.rs" -harness = true - -[[test]] -name = "errqueue" -path = "test/errqueue.rs" -harness = true - -[[test]] -name = "sigrt" -path = "test/sigrt.rs" -harness = true - [[test]] name = "semver" path = "test/semver.rs" harness = false -[[test]] -name = "primitive_types" -path = "test/primitive_types.rs" -harness = true - [[test]] name = "style" path = "test/check_style.rs" diff --git a/libc-test/test/errqueue.rs b/libc-test/tests/errqueue.rs similarity index 100% rename from libc-test/test/errqueue.rs rename to libc-test/tests/errqueue.rs diff --git a/libc-test/test/makedev.rs b/libc-test/tests/makedev.rs similarity index 100% rename from libc-test/test/makedev.rs rename to libc-test/tests/makedev.rs diff --git a/libc-test/test/primitive_types.rs b/libc-test/tests/primitive_types.rs similarity index 100% rename from libc-test/test/primitive_types.rs rename to libc-test/tests/primitive_types.rs diff --git a/libc-test/test/sigrt.rs b/libc-test/tests/sigrt.rs similarity index 100% rename from libc-test/test/sigrt.rs rename to libc-test/tests/sigrt.rs From 8cdff917549a683e51a97625a1adead1ce846c32 Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Thu, 24 Jul 2025 09:15:11 -0400 Subject: [PATCH 0749/1228] Retore `struct winsize`. (backport ) (cherry picked from commit e8bb082966a51e71a6bca208096ee26fad80c746) --- libc-test/semver/aix.txt | 1 + src/unix/mod.rs | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/libc-test/semver/aix.txt b/libc-test/semver/aix.txt index 38553abf3f80d..1f3324e213f54 100644 --- a/libc-test/semver/aix.txt +++ b/libc-test/semver/aix.txt @@ -2601,6 +2601,7 @@ waitpid wchar_t wcslen wcstombs +winsize wmemchr write writev diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 96209e7e72cd7..941f2faa99217 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -160,7 +160,6 @@ s! { pub revents: c_short, } - #[cfg(not(target_os = "aix"))] pub struct winsize { pub ws_row: c_ushort, pub ws_col: c_ushort, From 916f6b4c259f3e132deec5f960361ea3984303a2 Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Thu, 24 Jul 2025 08:31:53 -0400 Subject: [PATCH 0750/1228] Fix the type of the 'f_fsid' field in 'struct statvfs'. (backport ) (cherry picked from commit d98eb8fcdc99e1dc66288050b64e8cc09964d9a3) --- libc-test/build.rs | 3 +++ src/unix/aix/powerpc64.rs | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 2a690d8e2d273..243d809cabf64 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -5700,6 +5700,9 @@ fn test_aix(target: &str) { ("__context64", "fpr") => true, ("__tm_context_t", "fpr") => true, + // The _ALL_SOURCE type of 'f_fsid' differs from POSIX's on AIX. + ("statvfs", "f_fsid") => true, + _ => false, } }); diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index f379e2df71898..b2b7ea88f6e4e 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -29,7 +29,7 @@ s! { pub f_files: crate::fsfilcnt_t, pub f_ffree: crate::fsfilcnt_t, pub f_favail: crate::fsfilcnt_t, - pub f_fsid: crate::fsid_t, + pub f_fsid: c_ulong, pub f_basetype: [c_char; 16], pub f_flag: c_ulong, pub f_namemax: c_ulong, From 0801043211874d65644cc1d28322e9f05744b588 Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Fri, 25 Jul 2025 15:59:19 -0400 Subject: [PATCH 0751/1228] Fix the type of constants for use as the 'int request' argument to 'ioctl()'. (backport ) (cherry picked from commit 3c84eb65e46f39eed403a76a5da3b2e526cff0af) --- libc-test/build.rs | 16 ++++ src/unix/aix/mod.rs | 180 ++++++++++++++++++++++---------------------- 2 files changed, 106 insertions(+), 90 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 243d809cabf64..7ea00da688a19 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -5670,6 +5670,22 @@ fn test_aix(target: &str) { // values because non-unique values are being used which will // fail the test when _ALL_SOURCE is defined. "EWOULDBLOCK" | "ENOTEMPTY" => true, + + // FIXME(ctest): These constants are intended for use as the 'int request' argument + // to 'ioctl()'. However, the AIX headers do not explicitly define their types. If a + // value has the sign bit set, it gets sign-extended to a 64-bit value in the 64-bit + // mode, which fails the comparison with the Rust definitions, where the type is + //`c_int`. + "BIOCSETF" | "BIOCSBLEN" | "BIOCSRTIMEOUT" | "BIOCIMMEDIATE" | "BIOCSETIF" | "FIONBIO" + | "FIOASYNC" | "FIOSETOWN" | "TIOCSETD" | "TIOCMODS" | "TIOCSETP" | "TIOCSETN" + | "TIOCFLUSH" | "TIOCSETC" | "SIOCADDMULTI" | "SIOCADDRT" | "SIOCDARP" | "SIOCDELMULTI" + | "SIOCGIFADDR" | "SIOCGIFBRDADDR" | "SIOCGIFCONF" | "SIOCGIFDSTADDR" | "SIOCGIFFLAGS" + | "SIOCGIFHWADDR" | "SIOCGIFMETRIC" | "SIOCGIFMTU" | "SIOCGIFNETMASK" | "SIOCSARP" + | "SIOCSIFADDR" | "SIOCSIFBRDADDR" | "SIOCSIFDSTADDR" | "SIOCSIFFLAGS" + | "SIOCSIFMETRIC" | "SIOCSIFMTU" | "SIOCSIFNETMASK" | "TIOCUCNTL" | "TIOCCONS" + | "TIOCPKT" | "TIOCSWINSZ" | "TIOCLBIS" | "TIOCLBIC" | "TIOCLSET" | "TIOCSLTC" + | "TIOCSPGRP" | "TIOCSTI" | "TIOCMSET" | "TIOCMBIS" | "TIOCMBIC" | "TIOCREMOTE" => true, + _ => false, }); diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 2d3f40c2a10b8..1ee8c53b5505b 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -825,20 +825,20 @@ pub const DLT_PPP: c_int = 0x17; pub const DLT_FDDI: c_int = 0xf; pub const DLT_ATM: c_int = 0x25; pub const DLT_IPOIB: c_int = 0xc7; -pub const BIOCSETF: c_long = -2146418073; -pub const BIOCGRTIMEOUT: c_long = 1074807406; -pub const BIOCGBLEN: c_long = 1074020966; -pub const BIOCSBLEN: c_long = -1073462682; -pub const BIOCFLUSH: c_long = 536887912; -pub const BIOCPROMISC: c_long = 536887913; -pub const BIOCGDLT: c_long = 1074020970; -pub const BIOCSRTIMEOUT: c_long = -2146418067; -pub const BIOCGSTATS: c_long = 1074283119; -pub const BIOCIMMEDIATE: c_long = -2147204496; -pub const BIOCVERSION: c_long = 1074020977; -pub const BIOCSDEVNO: c_long = 536887922; -pub const BIOCGETIF: c_long = 1075855979; -pub const BIOCSETIF: c_long = -2145369492; +pub const BIOCSETF: c_int = 0x80104267; +pub const BIOCGRTIMEOUT: c_int = 0x4010426e; +pub const BIOCGBLEN: c_int = 0x40044266; +pub const BIOCSBLEN: c_int = 0xc0044266; +pub const BIOCFLUSH: c_int = 0x20004268; +pub const BIOCPROMISC: c_int = 0x20004269; +pub const BIOCGDLT: c_int = 0x4004426a; +pub const BIOCSRTIMEOUT: c_int = 0x8010426d; +pub const BIOCGSTATS: c_int = 0x4008426f; +pub const BIOCIMMEDIATE: c_int = 0x80044270; +pub const BIOCVERSION: c_int = 0x40044271; +pub const BIOCSDEVNO: c_int = 0x20004272; +pub const BIOCGETIF: c_int = 0x4020426b; +pub const BIOCSETIF: c_int = 0x8020426c; pub const BPF_ABS: c_int = 32; pub const BPF_ADD: c_int = 0; pub const BPF_ALIGNMENT: c_ulong = 4; @@ -1362,22 +1362,22 @@ pub const Q_SETQUOTA: c_int = 0x400; // sys/ioctl.h pub const IOCPARM_MASK: c_int = 0x7f; -pub const IOC_VOID: c_long = 536870912; -pub const IOC_OUT: c_long = 1073741824; -pub const IOC_IN: c_long = -2147483648; -pub const IOC_INOUT: c_long = IOC_IN | IOC_OUT; -pub const FIOCLEX: c_long = 536897025; -pub const FIONCLEX: c_long = 536897026; -pub const FIONREAD: c_long = 1074030207; -pub const FIONBIO: c_long = -2147195266; -pub const FIOASYNC: c_long = -2147195267; -pub const FIOSETOWN: c_long = -2147195268; -pub const FIOGETOWN: c_long = 1074030203; -pub const TIOCGETD: c_long = 1074033664; -pub const TIOCSETD: c_long = -2147191807; -pub const TIOCHPCL: c_long = 536900610; -pub const TIOCMODG: c_long = 1074033667; -pub const TIOCMODS: c_long = -2147191804; +pub const IOC_VOID: c_int = 0x20000000; +pub const IOC_OUT: c_int = 0x40000000; +pub const IOC_IN: c_int = 0x40000000 << 1; +pub const IOC_INOUT: c_int = IOC_IN | IOC_OUT; +pub const FIOCLEX: c_int = 0x20006601; +pub const FIONCLEX: c_int = 0x20006602; +pub const FIONREAD: c_int = 0x4004667f; +pub const FIONBIO: c_int = 0x8004667e; +pub const FIOASYNC: c_int = 0x8004667d; +pub const FIOSETOWN: c_int = 0x8004667c; +pub const FIOGETOWN: c_int = 0x4004667b; +pub const TIOCGETD: c_int = 0x40047400; +pub const TIOCSETD: c_int = 0x80047401; +pub const TIOCHPCL: c_int = 0x20007402; +pub const TIOCMODG: c_int = 0x40047403; +pub const TIOCMODS: c_int = 0x80047404; pub const TIOCM_LE: c_int = 0x1; pub const TIOCM_DTR: c_int = 0x2; pub const TIOCM_RTS: c_int = 0x4; @@ -1389,46 +1389,46 @@ pub const TIOCM_CD: c_int = 0x40; pub const TIOCM_RNG: c_int = 0x80; pub const TIOCM_RI: c_int = 0x80; pub const TIOCM_DSR: c_int = 0x100; -pub const TIOCGETP: c_long = 1074164744; -pub const TIOCSETP: c_long = -2147060727; -pub const TIOCSETN: c_long = -2147060726; -pub const TIOCEXCL: c_long = 536900621; -pub const TIOCNXCL: c_long = 536900622; -pub const TIOCFLUSH: c_long = -2147191792; -pub const TIOCSETC: c_long = -2147060719; -pub const TIOCGETC: c_long = 1074164754; +pub const TIOCGETP: c_int = 0x40067408; +pub const TIOCSETP: c_int = 0x80067409; +pub const TIOCSETN: c_int = 0x8006740a; +pub const TIOCEXCL: c_int = 0x2000740d; +pub const TIOCNXCL: c_int = 0x2000740e; +pub const TIOCFLUSH: c_int = 0x80047410; +pub const TIOCSETC: c_int = 0x80067411; +pub const TIOCGETC: c_int = 0x40067412; pub const TANDEM: c_int = 0x1; pub const CBREAK: c_int = 0x2; pub const LCASE: c_int = 0x4; pub const MDMBUF: c_int = 0x800000; pub const XTABS: c_int = 0xc00; -pub const SIOCADDMULTI: c_long = -2145359567; -pub const SIOCADDRT: c_long = -2143784438; -pub const SIOCDARP: c_long = -2142476000; -pub const SIOCDELMULTI: c_long = -2145359566; -pub const SIOCDELRT: c_long = -2143784437; -pub const SIOCDIFADDR: c_long = -2144835303; -pub const SIOCGARP: c_long = -1068734170; -pub const SIOCGIFADDR: c_long = -1071093471; -pub const SIOCGIFBRDADDR: c_long = -1071093469; -pub const SIOCGIFCONF: c_long = -1072666299; -pub const SIOCGIFDSTADDR: c_long = -1071093470; -pub const SIOCGIFFLAGS: c_long = -1071093487; -pub const SIOCGIFHWADDR: c_long = -1068209771; -pub const SIOCGIFMETRIC: c_long = -1071093481; -pub const SIOCGIFMTU: c_long = -1071093418; -pub const SIOCGIFNETMASK: c_long = -1071093467; -pub const SIOCSARP: c_long = -2142476002; -pub const SIOCSIFADDR: c_long = -2144835316; -pub const SIOCSIFBRDADDR: c_long = -2144835309; -pub const SIOCSIFDSTADDR: c_long = -2144835314; -pub const SIOCSIFFLAGS: c_long = -2144835312; -pub const SIOCSIFMETRIC: c_long = -2144835304; -pub const SIOCSIFMTU: c_long = -2144835240; -pub const SIOCSIFNETMASK: c_long = -2144835306; -pub const TIOCUCNTL: c_long = -2147191706; -pub const TIOCCONS: c_long = -2147191710; -pub const TIOCPKT: c_long = -2147191696; +pub const SIOCADDMULTI: c_int = 0x80206931; +pub const SIOCADDRT: c_int = 0x8038720a; +pub const SIOCDARP: c_int = 0x804c6920; +pub const SIOCDELMULTI: c_int = 0x80206932; +pub const SIOCDELRT: c_int = 0x8038720b; +pub const SIOCDIFADDR: c_int = 0x80286919; +pub const SIOCGARP: c_int = 0xc04c6926; +pub const SIOCGIFADDR: c_int = 0xc0286921; +pub const SIOCGIFBRDADDR: c_int = 0xc0286923; +pub const SIOCGIFCONF: c_int = 0xc0106945; +pub const SIOCGIFDSTADDR: c_int = 0xc0286922; +pub const SIOCGIFFLAGS: c_int = 0xc0286911; +pub const SIOCGIFHWADDR: c_int = 0xc0546995; +pub const SIOCGIFMETRIC: c_int = 0xc0286917; +pub const SIOCGIFMTU: c_int = 0xc0286956; +pub const SIOCGIFNETMASK: c_int = 0xc0286925; +pub const SIOCSARP: c_int = 0x804c691e; +pub const SIOCSIFADDR: c_int = 0x8028690c; +pub const SIOCSIFBRDADDR: c_int = 0x80286913; +pub const SIOCSIFDSTADDR: c_int = 0x8028690e; +pub const SIOCSIFFLAGS: c_int = 0x80286910; +pub const SIOCSIFMETRIC: c_int = 0x80286918; +pub const SIOCSIFMTU: c_int = 0x80286958; +pub const SIOCSIFNETMASK: c_int = 0x80286916; +pub const TIOCUCNTL: c_int = 0x80047466; +pub const TIOCCONS: c_int = 0x80047462; +pub const TIOCPKT: c_int = 0x80047470; pub const TIOCPKT_DATA: c_int = 0; pub const TIOCPKT_FLUSHREAD: c_int = 1; pub const TIOCPKT_FLUSHWRITE: c_int = 2; @@ -2092,31 +2092,31 @@ pub const TCOON: c_int = 1; pub const TCIOFF: c_int = 2; pub const TCION: c_int = 3; pub const TIOC: c_int = 0x5400; -pub const TIOCGWINSZ: c_long = 1074295912; -pub const TIOCSWINSZ: c_long = -2146929561; -pub const TIOCLBIS: c_long = -2147191681; -pub const TIOCLBIC: c_long = -2147191682; -pub const TIOCLSET: c_long = -2147191683; -pub const TIOCLGET: c_long = 1074033788; -pub const TIOCSBRK: c_long = 536900731; -pub const TIOCCBRK: c_long = 536900730; -pub const TIOCSDTR: c_long = 536900729; -pub const TIOCCDTR: c_long = 536900728; -pub const TIOCSLTC: c_long = -2147060619; -pub const TIOCGLTC: c_long = 1074164852; -pub const TIOCOUTQ: c_long = 1074033779; -pub const TIOCNOTTY: c_long = 536900721; -pub const TIOCSTOP: c_long = 536900719; -pub const TIOCSTART: c_long = 536900718; -pub const TIOCGPGRP: c_long = 1074033783; -pub const TIOCSPGRP: c_long = -2147191690; -pub const TIOCGSID: c_long = 1074033736; -pub const TIOCSTI: c_long = -2147388302; -pub const TIOCMSET: c_long = -2147191699; -pub const TIOCMBIS: c_long = -2147191700; -pub const TIOCMBIC: c_long = -2147191701; -pub const TIOCMGET: c_long = 1074033770; -pub const TIOCREMOTE: c_long = -2147191703; +pub const TIOCGWINSZ: c_int = 0x40087468; +pub const TIOCSWINSZ: c_int = 0x80087467; +pub const TIOCLBIS: c_int = 0x8004747f; +pub const TIOCLBIC: c_int = 0x8004747e; +pub const TIOCLSET: c_int = 0x8004747d; +pub const TIOCLGET: c_int = 0x4004747c; +pub const TIOCSBRK: c_int = 0x2000747b; +pub const TIOCCBRK: c_int = 0x2000747a; +pub const TIOCSDTR: c_int = 0x20007479; +pub const TIOCCDTR: c_int = 0x20007478; +pub const TIOCSLTC: c_int = 0x80067475; +pub const TIOCGLTC: c_int = 0x40067474; +pub const TIOCOUTQ: c_int = 0x40047473; +pub const TIOCNOTTY: c_int = 0x20007471; +pub const TIOCSTOP: c_int = 0x2000746f; +pub const TIOCSTART: c_int = 0x2000746e; +pub const TIOCGPGRP: c_int = 0x40047477; +pub const TIOCSPGRP: c_int = 0x80047476; +pub const TIOCGSID: c_int = 0x40047448; +pub const TIOCSTI: c_int = 0x80017472; +pub const TIOCMSET: c_int = 0x8004746d; +pub const TIOCMBIS: c_int = 0x8004746c; +pub const TIOCMBIC: c_int = 0x8004746b; +pub const TIOCMGET: c_int = 0x4004746a; +pub const TIOCREMOTE: c_int = 0x80047469; // sys/user.h pub const MAXCOMLEN: c_int = 32; From 8d561ff741eaa3a7ce843d1aa5625e130cffedc7 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 29 Jul 2025 03:01:57 -0500 Subject: [PATCH 0752/1228] linux: Fix `s_no_extra_traits`->`s!` in `can` Fixes an accidental semver regression for trait impls introduced in 151d902258ef ("Begin source reorganization with `linux/can.h`", cherry-pick 3356f1217d8d). --- src/new/linux_uapi/linux/can.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/new/linux_uapi/linux/can.rs b/src/new/linux_uapi/linux/can.rs index 8fb4b9d6dc972..8e48b4a869bb8 100644 --- a/src/new/linux_uapi/linux/can.rs +++ b/src/new/linux_uapi/linux/can.rs @@ -116,7 +116,9 @@ s_no_extra_traits! { pub tp: __c_anonymous_sockaddr_can_tp, pub j1939: __c_anonymous_sockaddr_can_j1939, } +} +s! { pub struct __c_anonymous_sockaddr_can_tp { pub rx_id: canid_t, pub tx_id: canid_t, From 63011f63a89ee80fdd8145e37e0222e76277220e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 9 Aug 2025 21:06:42 -0500 Subject: [PATCH 0753/1228] ci: Update Debian s390x links Debian recently had a release, so we need to update our links. (backport ) (cherry picked from commit 46337d0b155a849ba81f7a978810fc0fbd26eb19) --- ci/linux-s390x.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/linux-s390x.sh b/ci/linux-s390x.sh index ddba4c48c0d82..e365cb3abbc8f 100755 --- a/ci/linux-s390x.sh +++ b/ci/linux-s390x.sh @@ -6,8 +6,8 @@ mkdir -m 777 /qemu cd /qemu 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/20241227/images/generic/kernel.debian -curl --retry 5 -LO http://ftp.debian.org/debian/dists/testing/main/installer-s390x/20241227/images/generic/initrd.debian +curl --retry 5 -LO https://ftp.debian.org/debian/dists/testing/main/installer-s390x/20250803/images/generic/kernel.debian +curl --retry 5 -LO https://ftp.debian.org/debian/dists/testing/main/installer-s390x/20250803/images/generic/initrd.debian mv kernel.debian kernel mv initrd.debian initrd.gz From 203ff7f960f6c970d6a01b0f1ae5cb7ff1415cd9 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sun, 11 May 2025 22:56:04 +0100 Subject: [PATCH 0754/1228] Adding strftime* for illumos/solaris. [ref](https://smartos.org/man/3C/strftime) [ref](https://docs.oracle.com/cd/E88353_01/html/E37843/strftime-3c.html) Fixes: #4449 (backport ) (cherry picked from commit f4964b534a01893f2eb7f2f880ddea6277555a19) --- libc-test/semver/solarish.txt | 2 ++ src/unix/solarish/mod.rs | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/libc-test/semver/solarish.txt b/libc-test/semver/solarish.txt index b02baab0efac2..cee5977fc35ee 100644 --- a/libc-test/semver/solarish.txt +++ b/libc-test/semver/solarish.txt @@ -75,3 +75,5 @@ posix_spawnattr_setsigmask posix_spawnp recvmsg sendmsg +strftime +strftime_l diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 48f13cdc59ae4..fc89d1d6d2a62 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -3130,6 +3130,21 @@ extern "C" { pub fn arc4random_uniform(upper_bound: u32) -> u32; pub fn secure_getenv(name: *const c_char) -> *mut c_char; + + #[cfg_attr(target_os = "solaris", link_name = "__strftime_xpg7")] + pub fn strftime( + s: *mut c_char, + maxsize: size_t, + format: *const c_char, + timeptr: *const crate::tm, + ) -> size_t; + pub fn strftime_l( + s: *mut c_char, + maxsize: size_t, + format: *const c_char, + timeptr: *const crate::tm, + loc: crate::locale_t, + ) -> size_t; } #[link(name = "sendfile")] From 26d8317dfa0bb5e7ac46fd80fd05546fe2955f7e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 26 Jul 2025 01:29:53 -0500 Subject: [PATCH 0755/1228] Enable the `rust_2024_compatibility` lint Enable this lint with the expectation that we will eventually be upgrading editions. There are some exceptions needed, and `unsafe_op_in_unsafe_fn` will take a while to go through. (backport ) (cherry picked from commit 2fe8b17c7582e91ed935a8bc6add5b575e087e06) --- src/lib.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index fb901944b22bd..703a985b7acb6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -10,6 +10,15 @@ unused_macros, unused_macro_rules, )] +// Prepare for a future upgrade +#![warn(rust_2024_compatibility)] +// Things missing for 2024 that are blocked on MSRV or breakage +#![allow( + missing_unsafe_on_extern, + edition_2024_expr_fragment_specifier, + // Allowed globally, the warning is enabled in individual modules as we work through them + unsafe_op_in_unsafe_fn +)] #![cfg_attr(libc_deny_warnings, deny(warnings))] // Attributes needed when building as part of the standard library #![cfg_attr(feature = "rustc-dep-of-std", feature(link_cfg, no_core))] From a28e51f2a5a00a912cf94ccaf2cad28ec92fdca7 Mon Sep 17 00:00:00 2001 From: Skyler Hawthorne Date: Sun, 29 Jun 2025 09:29:04 -0400 Subject: [PATCH 0756/1228] add prctl constants on android Add all constants from bionic's `prctl.h` header https://android.googlesource.com/platform/bionic/+/7ac54f5c391bf3aeb9fec84a158939421fd8f505/libc/kernel/uapi/linux/prctl.h (backport ) (cherry picked from commit eb505fb30cd201e146e2aa16b2b843c111a1d033) --- libc-test/semver/android.txt | 156 ++++++++++++++++++++++++++ src/unix/linux_like/android/mod.rs | 173 +++++++++++++++++++++++++++-- 2 files changed, 317 insertions(+), 12 deletions(-) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index a52cc25077a95..80066883c7db0 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -1947,17 +1947,171 @@ PROT_GROWSUP PROT_NONE PROT_READ PROT_WRITE +PR_CAPBSET_DROP +PR_CAPBSET_READ +PR_CAP_AMBIENT +PR_CAP_AMBIENT_CLEAR_ALL +PR_CAP_AMBIENT_IS_SET +PR_CAP_AMBIENT_LOWER +PR_CAP_AMBIENT_RAISE +PR_ENDIAN_BIG +PR_ENDIAN_LITTLE +PR_ENDIAN_PPC_LITTLE +PR_FPEMU_NOPRINT +PR_FPEMU_SIGFPE +PR_FP_EXC_ASYNC +PR_FP_EXC_DISABLED +PR_FP_EXC_DIV +PR_FP_EXC_INV +PR_FP_EXC_NONRECOV +PR_FP_EXC_OVF +PR_FP_EXC_PRECISE +PR_FP_EXC_RES +PR_FP_EXC_SW_ENABLE +PR_FP_EXC_UND +PR_FP_MODE_FR +PR_FP_MODE_FRE +PR_GET_AUXV +PR_GET_CHILD_SUBREAPER +PR_GET_DUMPABLE +PR_GET_ENDIAN +PR_GET_FPEMU +PR_GET_FPEXC +PR_GET_FP_MODE +PR_GET_IO_FLUSHER +PR_GET_KEEPCAPS +PR_GET_MDWE +PR_GET_MEMORY_MERGE PR_GET_NAME PR_GET_NO_NEW_PRIVS +PR_GET_PDEATHSIG PR_GET_SECCOMP +PR_GET_SECUREBITS +PR_GET_SPECULATION_CTRL +PR_GET_TAGGED_ADDR_CTRL +PR_GET_THP_DISABLE +PR_GET_TID_ADDRESS +PR_GET_TIMERSLACK PR_GET_TIMING +PR_GET_TSC +PR_GET_UNALIGN +PR_MCE_KILL +PR_MCE_KILL_CLEAR +PR_MCE_KILL_DEFAULT +PR_MCE_KILL_EARLY +PR_MCE_KILL_GET +PR_MCE_KILL_LATE +PR_MCE_KILL_SET +PR_MDWE_NO_INHERIT +PR_MDWE_REFUSE_EXEC_GAIN +PR_MPX_DISABLE_MANAGEMENT +PR_MPX_ENABLE_MANAGEMENT +PR_MTE_TAG_MASK +PR_MTE_TAG_SHIFT +PR_MTE_TCF_ASYNC +PR_MTE_TCF_MASK +PR_MTE_TCF_NONE +PR_MTE_TCF_SHIFT +PR_MTE_TCF_SYNC +PR_PAC_APDAKEY +PR_PAC_APDBKEY +PR_PAC_APGAKEY +PR_PAC_APIAKEY +PR_PAC_APIBKEY +PR_PAC_GET_ENABLED_KEYS +PR_PAC_RESET_KEYS +PR_PAC_SET_ENABLED_KEYS +PR_RISCV_V_GET_CONTROL +PR_RISCV_V_SET_CONTROL +PR_RISCV_V_VSTATE_CTRL_CUR_MASK +PR_RISCV_V_VSTATE_CTRL_DEFAULT +PR_RISCV_V_VSTATE_CTRL_INHERIT +PR_RISCV_V_VSTATE_CTRL_MASK +PR_RISCV_V_VSTATE_CTRL_NEXT_MASK +PR_RISCV_V_VSTATE_CTRL_OFF +PR_RISCV_V_VSTATE_CTRL_ON +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 +PR_SET_FPEMU +PR_SET_FPEXC +PR_SET_FP_MODE +PR_SET_IO_FLUSHER +PR_SET_KEEPCAPS +PR_SET_MDWE +PR_SET_MEMORY_MERGE +PR_SET_MM +PR_SET_MM_ARG_END +PR_SET_MM_ARG_START +PR_SET_MM_AUXV +PR_SET_MM_BRK +PR_SET_MM_END_CODE +PR_SET_MM_END_DATA +PR_SET_MM_ENV_END +PR_SET_MM_ENV_START +PR_SET_MM_EXE_FILE +PR_SET_MM_MAP +PR_SET_MM_MAP_SIZE +PR_SET_MM_START_BRK +PR_SET_MM_START_CODE +PR_SET_MM_START_DATA +PR_SET_MM_START_STACK 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_SPECULATION_CTRL +PR_SET_SYSCALL_USER_DISPATCH +PR_SET_TAGGED_ADDR_CTRL +PR_SET_THP_DISABLE +PR_SET_TIMERSLACK +PR_SET_TIMING +PR_SET_TSC +PR_SET_UNALIGN PR_SET_VMA PR_SET_VMA_ANON_NAME +PR_SME_GET_VL +PR_SME_SET_VL +PR_SME_SET_VL_ONEXEC +PR_SME_VL_INHERIT +PR_SME_VL_LEN_MASK +PR_SPEC_DISABLE +PR_SPEC_DISABLE_NOEXEC +PR_SPEC_ENABLE +PR_SPEC_FORCE_DISABLE +PR_SPEC_INDIRECT_BRANCH +PR_SPEC_L1D_FLUSH +PR_SPEC_NOT_AFFECTED +PR_SPEC_PRCTL +PR_SPEC_STORE_BYPASS +PR_SVE_GET_VL +PR_SVE_SET_VL +PR_SVE_SET_VL_ONEXEC +PR_SVE_VL_INHERIT +PR_SVE_VL_LEN_MASK +PR_SYS_DISPATCH_OFF +PR_SYS_DISPATCH_ON +PR_TAGGED_ADDR_ENABLE +PR_TASK_PERF_EVENTS_DISABLE +PR_TASK_PERF_EVENTS_ENABLE PR_TIMING_STATISTICAL PR_TIMING_TIMESTAMP +PR_TSC_ENABLE +PR_TSC_SIGSEGV +PR_UNALIGN_NOPRINT +PR_UNALIGN_SIGBUS PTHREAD_BARRIER_SERIAL_THREAD PTHREAD_COND_INITIALIZER PTHREAD_CREATE_DETACHED @@ -2516,6 +2670,8 @@ SW_CNT SW_MAX SYN_CNT SYN_MAX +SYSCALL_DISPATCH_FILTER_ALLOW +SYSCALL_DISPATCH_FILTER_BLOCK SYS_accept4 SYS_acct SYS_add_key diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 100008ce5d8e9..ac76616b68cfb 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -2912,29 +2912,178 @@ pub const PF_VSOCK: c_int = AF_VSOCK; pub const SOMAXCONN: c_int = 128; -// sys/prctl.h -pub const PR_SET_PDEATHSIG: c_int = 1; -pub const PR_GET_PDEATHSIG: c_int = 2; -pub const PR_GET_SECUREBITS: c_int = 27; -pub const PR_SET_SECUREBITS: c_int = 28; - // sys/system_properties.h pub const PROP_VALUE_MAX: c_int = 92; pub const PROP_NAME_MAX: c_int = 32; // sys/prctl.h -pub const PR_SET_VMA: c_int = 0x53564d41; -pub const PR_SET_VMA_ANON_NAME: c_int = 0; -pub const PR_SET_NO_NEW_PRIVS: c_int = 38; -pub const PR_GET_NO_NEW_PRIVS: c_int = 39; -pub const PR_GET_SECCOMP: c_int = 21; -pub const PR_SET_SECCOMP: c_int = 22; +pub const PR_SET_PDEATHSIG: c_int = 1; +pub const PR_GET_PDEATHSIG: c_int = 2; +pub const PR_GET_DUMPABLE: c_int = 3; +pub const PR_SET_DUMPABLE: c_int = 4; +pub const PR_GET_UNALIGN: c_int = 5; +pub const PR_SET_UNALIGN: c_int = 6; +pub const PR_UNALIGN_NOPRINT: c_int = 1; +pub const PR_UNALIGN_SIGBUS: c_int = 2; +pub const PR_GET_KEEPCAPS: c_int = 7; +pub const PR_SET_KEEPCAPS: c_int = 8; +pub const PR_GET_FPEMU: c_int = 9; +pub const PR_SET_FPEMU: c_int = 10; +pub const PR_FPEMU_NOPRINT: c_int = 1; +pub const PR_FPEMU_SIGFPE: c_int = 2; +pub const PR_GET_FPEXC: c_int = 11; +pub const PR_SET_FPEXC: c_int = 12; +pub const PR_FP_EXC_SW_ENABLE: c_int = 0x80; +pub const PR_FP_EXC_DIV: c_int = 0x010000; +pub const PR_FP_EXC_OVF: c_int = 0x020000; +pub const PR_FP_EXC_UND: c_int = 0x040000; +pub const PR_FP_EXC_RES: c_int = 0x080000; +pub const PR_FP_EXC_INV: c_int = 0x100000; +pub const PR_FP_EXC_DISABLED: c_int = 0; +pub const PR_FP_EXC_NONRECOV: c_int = 1; +pub const PR_FP_EXC_ASYNC: c_int = 2; +pub const PR_FP_EXC_PRECISE: c_int = 3; pub const PR_GET_TIMING: c_int = 13; pub const PR_SET_TIMING: c_int = 14; pub const PR_TIMING_STATISTICAL: c_int = 0; pub const PR_TIMING_TIMESTAMP: c_int = 1; pub const PR_SET_NAME: c_int = 15; pub const PR_GET_NAME: c_int = 16; +pub const PR_GET_ENDIAN: c_int = 19; +pub const PR_SET_ENDIAN: c_int = 20; +pub const PR_ENDIAN_BIG: c_int = 0; +pub const PR_ENDIAN_LITTLE: c_int = 1; +pub const PR_ENDIAN_PPC_LITTLE: c_int = 2; +pub const PR_GET_SECCOMP: c_int = 21; +pub const PR_SET_SECCOMP: c_int = 22; +pub const PR_CAPBSET_READ: c_int = 23; +pub const PR_CAPBSET_DROP: c_int = 24; +pub const PR_GET_TSC: c_int = 25; +pub const PR_SET_TSC: c_int = 26; +pub const PR_TSC_ENABLE: c_int = 1; +pub const PR_TSC_SIGSEGV: c_int = 2; +pub const PR_GET_SECUREBITS: c_int = 27; +pub const PR_SET_SECUREBITS: c_int = 28; +pub const PR_SET_TIMERSLACK: c_int = 29; +pub const PR_GET_TIMERSLACK: c_int = 30; +pub const PR_TASK_PERF_EVENTS_DISABLE: c_int = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: c_int = 32; +pub const PR_MCE_KILL: c_int = 33; +pub const PR_MCE_KILL_CLEAR: c_int = 0; +pub const PR_MCE_KILL_SET: c_int = 1; +pub const PR_MCE_KILL_LATE: c_int = 0; +pub const PR_MCE_KILL_EARLY: c_int = 1; +pub const PR_MCE_KILL_DEFAULT: c_int = 2; +pub const PR_MCE_KILL_GET: c_int = 34; +pub const PR_SET_MM: c_int = 35; +pub const PR_SET_MM_START_CODE: c_int = 1; +pub const PR_SET_MM_END_CODE: c_int = 2; +pub const PR_SET_MM_START_DATA: c_int = 3; +pub const PR_SET_MM_END_DATA: c_int = 4; +pub const PR_SET_MM_START_STACK: c_int = 5; +pub const PR_SET_MM_START_BRK: c_int = 6; +pub const PR_SET_MM_BRK: c_int = 7; +pub const PR_SET_MM_ARG_START: c_int = 8; +pub const PR_SET_MM_ARG_END: c_int = 9; +pub const PR_SET_MM_ENV_START: c_int = 10; +pub const PR_SET_MM_ENV_END: c_int = 11; +pub const PR_SET_MM_AUXV: c_int = 12; +pub const PR_SET_MM_EXE_FILE: c_int = 13; +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; +pub const PR_SET_NO_NEW_PRIVS: c_int = 38; +pub const PR_GET_NO_NEW_PRIVS: c_int = 39; +pub const PR_GET_TID_ADDRESS: c_int = 40; +pub const PR_SET_THP_DISABLE: c_int = 41; +pub const PR_GET_THP_DISABLE: c_int = 42; +pub const PR_MPX_ENABLE_MANAGEMENT: c_int = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: c_int = 44; +pub const PR_SET_FP_MODE: c_int = 45; +pub const PR_GET_FP_MODE: c_int = 46; +pub const PR_FP_MODE_FR: c_int = 1 << 0; +pub const PR_FP_MODE_FRE: c_int = 1 << 1; +pub const PR_CAP_AMBIENT: c_int = 47; +pub const PR_CAP_AMBIENT_IS_SET: c_int = 1; +pub const PR_CAP_AMBIENT_RAISE: c_int = 2; +pub const PR_CAP_AMBIENT_LOWER: c_int = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: c_int = 4; +pub const PR_SVE_SET_VL: c_int = 50; +pub const PR_SVE_SET_VL_ONEXEC: c_int = 1 << 18; +pub const PR_SVE_GET_VL: c_int = 51; +pub const PR_SVE_VL_LEN_MASK: c_int = 0xffff; +pub const PR_SVE_VL_INHERIT: c_int = 1 << 17; +pub const PR_GET_SPECULATION_CTRL: c_int = 52; +pub const PR_SET_SPECULATION_CTRL: c_int = 53; +pub const PR_SPEC_STORE_BYPASS: c_int = 0; +pub const PR_SPEC_INDIRECT_BRANCH: c_int = 1; +pub const PR_SPEC_L1D_FLUSH: c_int = 2; +pub const PR_SPEC_NOT_AFFECTED: c_int = 0; +pub const PR_SPEC_PRCTL: c_ulong = 1 << 0; +pub const PR_SPEC_ENABLE: c_ulong = 1 << 1; +pub const PR_SPEC_DISABLE: c_ulong = 1 << 2; +pub const PR_SPEC_FORCE_DISABLE: c_ulong = 1 << 3; +pub const PR_SPEC_DISABLE_NOEXEC: c_ulong = 1 << 4; +pub const PR_PAC_RESET_KEYS: c_int = 54; +pub const PR_PAC_APIAKEY: c_ulong = 1 << 0; +pub const PR_PAC_APIBKEY: c_ulong = 1 << 1; +pub const PR_PAC_APDAKEY: c_ulong = 1 << 2; +pub const PR_PAC_APDBKEY: c_ulong = 1 << 3; +pub const PR_PAC_APGAKEY: c_ulong = 1 << 4; +pub const PR_SET_TAGGED_ADDR_CTRL: c_int = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: c_int = 56; +pub const PR_TAGGED_ADDR_ENABLE: c_ulong = 1 << 0; +pub const PR_MTE_TCF_NONE: c_ulong = 0; +pub const PR_MTE_TCF_SYNC: c_ulong = 1 << 1; +pub const PR_MTE_TCF_ASYNC: c_ulong = 1 << 2; +pub const PR_MTE_TCF_MASK: c_ulong = PR_MTE_TCF_SYNC | PR_MTE_TCF_ASYNC; +pub const PR_MTE_TAG_SHIFT: c_ulong = 3; +pub const PR_MTE_TAG_MASK: c_ulong = 0xffff << PR_MTE_TAG_SHIFT; +pub const PR_MTE_TCF_SHIFT: c_ulong = 1; +pub const PR_SET_IO_FLUSHER: c_int = 57; +pub const PR_GET_IO_FLUSHER: c_int = 58; +pub const PR_SET_SYSCALL_USER_DISPATCH: c_int = 59; +pub const PR_SYS_DISPATCH_OFF: c_int = 0; +pub const PR_SYS_DISPATCH_ON: c_int = 1; +pub const SYSCALL_DISPATCH_FILTER_ALLOW: c_int = 0; +pub const SYSCALL_DISPATCH_FILTER_BLOCK: c_int = 1; +pub const PR_PAC_SET_ENABLED_KEYS: c_int = 60; +pub const PR_PAC_GET_ENABLED_KEYS: c_int = 61; +pub const PR_SCHED_CORE: c_int = 62; +pub const PR_SCHED_CORE_GET: c_int = 0; +pub const PR_SCHED_CORE_CREATE: c_int = 1; +pub const PR_SCHED_CORE_SHARE_TO: c_int = 2; +pub const PR_SCHED_CORE_SHARE_FROM: c_int = 3; +pub const PR_SCHED_CORE_MAX: c_int = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: c_int = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: c_int = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: c_int = 2; +pub const PR_SME_SET_VL: c_int = 63; +pub const PR_SME_SET_VL_ONEXEC: c_int = 1 << 18; +pub const PR_SME_GET_VL: c_int = 64; +pub const PR_SME_VL_LEN_MASK: c_int = 0xffff; +pub const PR_SME_VL_INHERIT: c_int = 1 << 17; +pub const PR_SET_MDWE: c_int = 65; +pub const PR_MDWE_REFUSE_EXEC_GAIN: c_ulong = 1 << 0; +pub const PR_MDWE_NO_INHERIT: c_ulong = 1 << 1; +pub const PR_GET_MDWE: c_int = 66; +pub const PR_SET_VMA: c_int = 0x53564d41; +pub const PR_SET_VMA_ANON_NAME: c_int = 0; +pub const PR_GET_AUXV: c_int = 0x41555856; +pub const PR_SET_MEMORY_MERGE: c_int = 67; +pub const PR_GET_MEMORY_MERGE: c_int = 68; +pub const PR_RISCV_V_SET_CONTROL: c_int = 69; +pub const PR_RISCV_V_GET_CONTROL: c_int = 70; +pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: c_int = 0; +pub const PR_RISCV_V_VSTATE_CTRL_OFF: c_int = 1; +pub const PR_RISCV_V_VSTATE_CTRL_ON: c_int = 2; +pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: c_int = 1 << 4; +pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: c_int = 0x3; +pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: c_int = 0xc; +pub const PR_RISCV_V_VSTATE_CTRL_MASK: c_int = 0x1f; // linux/if_addr.h pub const IFA_UNSPEC: c_ushort = 0; From 65bd617c30a74619291ada8b77227562afd65395 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 28 Jul 2025 11:12:02 +0000 Subject: [PATCH 0757/1228] l4re: Move `pthread_attr_t` into `s!` Resolve the `improper_ctypes` warning on l4re-uclibc that we are getting in CI. The current version was added in e412497d3e0d ("Move L4Re-specific code into separate module.") and doesn't seem to have been intentional. (backport ) (cherry picked from commit 95c140034157f4c0aafc7b5130ed026390ffd098) --- .../linux_like/linux/uclibc/x86_64/l4re.rs | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs b/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs index 380077711d797..536c716ca4868 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs @@ -26,22 +26,21 @@ s! { /// Bitmap of CPUs. map: l4_umword_t, } -} -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub struct pthread_attr_t { - pub __detachstate: c_int, - pub __schedpolicy: c_int, - pub __schedparam: super::__sched_param, - pub __inheritsched: c_int, - pub __scope: c_int, - pub __guardsize: size_t, - pub __stackaddr_set: c_int, - pub __stackaddr: *mut c_void, // better don't use it - pub __stacksize: size_t, - // L4Re specifics - pub affinity: l4_sched_cpu_set_t, - pub create_flags: c_uint, + pub struct pthread_attr_t { + pub __detachstate: c_int, + pub __schedpolicy: c_int, + pub __schedparam: super::__sched_param, + pub __inheritsched: c_int, + pub __scope: c_int, + pub __guardsize: size_t, + pub __stackaddr_set: c_int, + pub __stackaddr: *mut c_void, // better don't use it + pub __stacksize: size_t, + // L4Re specifics + pub affinity: l4_sched_cpu_set_t, + pub create_flags: c_uint, + } } // L4Re requires a min stack size of 64k; that isn't defined in uClibc, but From 54d5823082d1fd52649ce20b26e229b6dcce2f2e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 10 Aug 2025 20:42:23 -0500 Subject: [PATCH 0758/1228] Update the `c_enum` macro to take multiple values Partial cherry pick of a541bf4f6dc5 ("libc: remove uses of enum as per #4419"). Co-authored-by: mbyx --- src/macros.rs | 30 ++++++++++++++++++++++-------- src/unix/linux_like/linux/mod.rs | 8 +++----- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index 5f2a08d5de32d..d0a55fa2fca29 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -223,10 +223,24 @@ macro_rules! e { /// /// See for more. macro_rules! c_enum { - ( + ($( + $(#[repr($repr:ty)])? + pub enum $ty_name:ident { + $($variant:ident $(= $value:expr)?,)+ + } + )+) => { + $(c_enum!(@expand; + $(#[repr($repr)])? + pub enum $ty_name { + $($variant $(= $value)?,)+ + } + );)+ + }; + + (@expand; $(#[repr($repr:ty)])? - enum $ty_name:ident { - $($variant:ident $(= $value:literal)?,)+ + pub enum $ty_name:ident { + $($variant:ident $(= $value:expr)?,)+ } ) => { pub type $ty_name = c_enum!(@ty $($repr)?); @@ -237,7 +251,7 @@ macro_rules! c_enum { (@one; $_ty_name:ident; $_idx:expr;) => {}; ( @one; $ty_name:ident; $default_val:expr; - $variant:ident $(= $value:literal)?, + $variant:ident $(= $value:expr)?, $($tail:tt)* ) => { pub const $variant: $ty_name = { @@ -413,7 +427,7 @@ mod tests { fn c_enumbasic() { // By default, variants get sequential values. c_enum! { - enum e { + pub enum e { VAR0, VAR1, VAR2, @@ -430,7 +444,7 @@ mod tests { // By default, variants get sequential values. c_enum! { #[repr(u16)] - enum e { + pub enum e { VAR0, } } @@ -442,7 +456,7 @@ mod tests { fn c_enumset_value() { // Setting an explicit value resets the count. c_enum! { - enum e { + pub enum e { VAR2 = 2, VAR3, VAR4, @@ -459,7 +473,7 @@ mod tests { // C enums always take one more than the previous value, unless set to a specific // value. Duplicates are allowed. c_enum! { - enum e { + pub enum e { VAR0, VAR2_0 = 2, VAR3_0, diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 7fd24d480c53a..182889574eadd 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -84,7 +84,7 @@ e! { } c_enum! { - enum pid_type { + pub enum pid_type { PIDTYPE_PID, PIDTYPE_TGID, PIDTYPE_PGID, @@ -4468,14 +4468,12 @@ pub const RTNLGRP_STATS: c_uint = 0x24; // linux/cn_proc.h c_enum! { - enum proc_cn_mcast_op { + pub enum proc_cn_mcast_op { PROC_CN_MCAST_LISTEN = 1, PROC_CN_MCAST_IGNORE = 2, } -} -c_enum! { - enum proc_cn_event { + pub enum proc_cn_event { PROC_EVENT_NONE = 0x00000000, PROC_EVENT_FORK = 0x00000001, PROC_EVENT_EXEC = 0x00000002, From f0a2c3e97baefd170b6ead3ab9db3dfc22538bdf Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 10 Aug 2025 20:42:23 -0500 Subject: [PATCH 0759/1228] haiku: Switch from `e!` to `c_enum!` The enums used on Haiku are currently broken: they have no `repr` attribute so Rust is treating them as a `u8` when they need to be `c_int`. This is flagged by `improper_ctypes`, which only shows up now that this lint got removed. Since this is broken anyway, we may as well just switch to `c_enum!`. This is a user-visible breaking change, but allowed as the target is tier 3. Partially cherry picked from commit a541bf4f6dc5 ("libc: remove uses of enum as per #4419"). Co-authored-by: mbyx --- src/unix/haiku/native.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs index 082e85b326ead..f3eaf623a59a5 100644 --- a/src/unix/haiku/native.rs +++ b/src/unix/haiku/native.rs @@ -46,7 +46,7 @@ pub type thread_func = extern "C" fn(*mut c_void) -> status_t; // kernel/image.h pub type image_id = i32; -e! { +c_enum! { // kernel/OS.h pub enum thread_state { B_THREAD_RUNNING = 1, From eaab4fc3f05dc646a953d4fd5ba46dfa1f8bd6f6 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 10 Aug 2025 21:47:19 -0500 Subject: [PATCH 0760/1228] psp: Correct char -> c_char --- src/psp.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/psp.rs b/src/psp.rs index 131ef3180332b..823567127c401 100644 --- a/src/psp.rs +++ b/src/psp.rs @@ -3271,18 +3271,18 @@ extern "C" { pub fn sceRtcGetWin32FileTime(date: *mut ScePspDateTime, time: *mut u64) -> i32; pub fn sceRtcParseDateTime(dest_tick: *mut u64, date_string: *const u8) -> i32; pub fn sceRtcFormatRFC3339( - psz_date_time: *mut char, + psz_date_time: *mut c_char, p_utc: *const u64, time_zone_minutes: i32, ) -> i32; - pub fn sceRtcFormatRFC3339LocalTime(psz_date_time: *mut char, p_utc: *const u64) -> i32; + pub fn sceRtcFormatRFC3339LocalTime(psz_date_time: *mut c_char, p_utc: *const u64) -> i32; pub fn sceRtcParseRFC3339(p_utc: *mut u64, psz_date_time: *const u8) -> i32; pub fn sceRtcFormatRFC2822( - psz_date_time: *mut char, + psz_date_time: *mut c_char, p_utc: *const u64, time_zone_minutes: i32, ) -> i32; - pub fn sceRtcFormatRFC2822LocalTime(psz_date_time: *mut char, p_utc: *const u64) -> i32; + pub fn sceRtcFormatRFC2822LocalTime(psz_date_time: *mut c_char, p_utc: *const u64) -> i32; pub fn sceIoOpen(file: *const u8, flags: i32, permissions: IoPermissions) -> SceUid; pub fn sceIoOpenAsync(file: *const u8, flags: i32, permissions: IoPermissions) -> SceUid; From 40b9f1c0b6ae36c8fa4cb5bc56ccfb7b51d5a3bb Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 26 Jul 2025 01:27:28 -0500 Subject: [PATCH 0761/1228] Don't allow `improper_ctypes` Most of what this crate does is interact with C, so the lint should be useful. It can be disabled on a case-by-case basis as needed. There are a few fixes needed for enums, which will be going away anyway (rust-lang/libc#4419). Additionally, switch the `bad_style` lint to the newer name `nonstandard_style`. (backport ) (cherry picked from commit 38bb46e21cfbf5fa0f5c879be7b98079de75c9e6) --- src/lib.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 703a985b7acb6..5989c64da6287 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -4,9 +4,8 @@ #![allow( renamed_and_removed_lints, // Keep this order. unknown_lints, // Keep this order. - bad_style, + nonstandard_style, overflowing_literals, - improper_ctypes, unused_macros, unused_macro_rules, )] From d287f62aba0d8f9c44bce9080c489dbc5abebb75 Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Thu, 24 Jul 2025 15:41:01 -0400 Subject: [PATCH 0762/1228] Add 'struct ld_info' and friends. (backport ) (cherry picked from commit 925eb0c94f5ceab848c666bc1bac4b34044a5c7b) --- libc-test/build.rs | 17 +++++++++ libc-test/semver/aix.txt | 6 ++++ src/unix/aix/powerpc64.rs | 75 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 7ea00da688a19..ce3a3fda4e1f6 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -5702,6 +5702,18 @@ fn test_aix(target: &str) { // allow type 'double' to be used in signal contexts. "fpreg_t" => true, + // This type is defined for a union used within `struct ld_info`. + // The AIX header does not declare a separate standalone union + // type for it. + "__ld_info_file" => true, + + // This is a simplified version of the AIX union `_simple_lock`. + "_kernel_simple_lock" => true, + + // These structures are guarded by the `_KERNEL` macro in the AIX + // header. + "fileops_t" | "file" => true, + _ => false, } }); @@ -5719,6 +5731,11 @@ fn test_aix(target: &str) { // The _ALL_SOURCE type of 'f_fsid' differs from POSIX's on AIX. ("statvfs", "f_fsid") => true, + // The type of `_file` is `__ld_info_file`, which is defined + // specifically for the union inside `struct ld_info`. The AIX + // header does not define a separate standalone union type for it. + ("ld_info", "_file") => true, + _ => false, } }); diff --git a/libc-test/semver/aix.txt b/libc-test/semver/aix.txt index 1f3324e213f54..73163c854f30d 100644 --- a/libc-test/semver/aix.txt +++ b/libc-test/semver/aix.txt @@ -1791,12 +1791,14 @@ _W_STOPPED _W_STRC __context64 __extctx_t +__ld_info_file __pollfd_ext_u __tm_context_t __vmx_context_t __vmxreg_t __vsx_context_t _exit +_kernel_simple_lock abort accept access @@ -1915,7 +1917,9 @@ fgetpos fgetpos64 fgetpwent fgets +file fileno +fileops_t flock flock64 fnmatch @@ -2079,6 +2083,7 @@ kill lchown lcong48 lconv +ld_info lfind linger link @@ -2090,6 +2095,7 @@ locale_t localeconv localtime localtime_r +lock_data_instrumented lpar_get_info lpar_set_resources lrand48 diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index b2b7ea88f6e4e..1a8ebb1cc7f6b 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -1,6 +1,12 @@ use crate::off_t; use crate::prelude::*; +// Define lock_data_instrumented as an empty enum +missing! { + #[cfg_attr(feature = "extra_traits", derive(Debug))] + pub enum lock_data_instrumented {} +} + s! { pub struct sigset_t { pub ss_set: [c_ulong; 4], @@ -256,6 +262,74 @@ s_no_extra_traits! { pub __pad: [c_int; 3], } + pub union _kernel_simple_lock { + pub _slock: c_long, + pub _slockp: *mut lock_data_instrumented, + } + + pub struct fileops_t { + pub fo_rw: Option< + extern "C" fn( + file: *mut file, + rw: crate::uio_rw, + io: *mut c_void, + ext: c_long, + secattr: *mut c_void, + ) -> c_int, + >, + pub fo_ioctl: Option< + extern "C" fn( + file: *mut file, + a: c_long, + b: crate::caddr_t, + c: c_long, + d: c_long, + ) -> c_int, + >, + pub fo_select: Option< + extern "C" fn(file: *mut file, a: c_int, b: *mut c_ushort, c: extern "C" fn()) -> c_int, + >, + pub fo_close: Option c_int>, + pub fo_fstat: Option c_int>, + } + + pub struct file { + pub f_flag: c_long, + pub f_count: c_int, + pub f_options: c_short, + pub f_type: c_short, + // Should be pointer to 'vnode' + pub f_data: *mut c_void, + pub f_offset: c_longlong, + pub f_dir_off: c_long, + // Should be pointer to 'cred' + pub f_cred: *mut c_void, + pub f_lock: _kernel_simple_lock, + pub f_offset_lock: _kernel_simple_lock, + pub f_vinfo: crate::caddr_t, + pub f_ops: *mut fileops_t, + pub f_parentp: crate::caddr_t, + pub f_fnamep: crate::caddr_t, + pub f_fdata: [c_char; 160], + } + + pub union __ld_info_file { + pub _ldinfo_fd: c_int, + pub _ldinfo_fp: *mut file, + pub _core_offset: c_long, + } + + pub struct ld_info { + pub ldinfo_next: c_uint, + pub ldinfo_flags: c_uint, + pub _file: __ld_info_file, + pub ldinfo_textorg: *mut c_void, + pub ldinfo_textsize: c_ulong, + pub ldinfo_dataorg: *mut c_void, + pub ldinfo_datasize: c_ulong, + pub ldinfo_filename: [c_char; 2], + } + pub union __pollfd_ext_u { pub addr: *mut c_void, pub data32: u32, @@ -327,6 +401,7 @@ cfg_if! { self.__si_flags.hash(state); } } + impl PartialEq for __pollfd_ext_u { fn eq(&self, other: &__pollfd_ext_u) -> bool { unsafe { From eed2be9367633d953e624a9118c9a437c05fb489 Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Mon, 28 Jul 2025 11:53:03 -0400 Subject: [PATCH 0763/1228] Remove duplicate constant definitions FIND and ENTER. (backport ) (cherry picked from commit bdc4b7df37ec8bbac325ddd6cdba712a0abe3bcd) --- src/unix/aix/mod.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 1ee8c53b5505b..9a4eac63dea63 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -1159,10 +1159,6 @@ pub const NFSMNT_ACDIRMAX: c_int = 0x0800; // rpcsvc/rstat.h pub const CPUSTATES: c_int = 4; -// search.h -pub const FIND: c_int = 0; -pub const ENTER: c_int = 1; - // semaphore.h pub const SEM_FAILED: *mut sem_t = -1isize as *mut crate::sem_t; From aadbcf5307bca6e6476672234629d2ec2dbdb545 Mon Sep 17 00:00:00 2001 From: qinghon Date: Sun, 25 May 2025 00:44:44 +0800 Subject: [PATCH 0764/1228] netbsd/openbsd: Export ioctl request generator macros (backport ) (cherry picked from commit e7cf1cc51c715d495cfd41fa3a1e7b10eb9f6f57) --- libc-test/semver/netbsd.txt | 16 +++++++++++++++ libc-test/semver/openbsd.txt | 14 +++++++++++++ src/unix/bsd/netbsdlike/mod.rs | 28 ++++++++++++++++++++++++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 23 +++++++++++++++++++++ src/unix/bsd/netbsdlike/openbsd/mod.rs | 17 ++++++++++++++++ 5 files changed, 98 insertions(+) diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index 57e1cf5c4bd1b..677e37ea0a155 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -426,6 +426,17 @@ IFF_SIMPLEX IFF_UP IMAXBEL INIT_PROCESS +IOCBASECMD +IOCGROUP +IOCGROUP_SHIFT +IOCPARM_LEN +IOCPARM_MASK +IOCPARM_SHIFT +IOC_DIRMASK +IOC_IN +IOC_INOUT +IOC_OUT +IOC_VOID IOV_MAX IPC_CREAT IPC_EXCL @@ -1116,9 +1127,14 @@ XATTR_CREATE XATTR_REPLACE YESEXPR YESSTR +_IO +_IOC _IOFBF _IOLBF _IONBF +_IOR +_IOW +_IOWR _PC_2_SYMLINKS _PC_ACL_EXTENDED _PC_FILESIZEBITS diff --git a/libc-test/semver/openbsd.txt b/libc-test/semver/openbsd.txt index a340a83a92712..c63c347723834 100644 --- a/libc-test/semver/openbsd.txt +++ b/libc-test/semver/openbsd.txt @@ -267,6 +267,15 @@ IFF_SIMPLEX IFF_STATICARP IFF_UP IMAXBEL +IOCBASECMD +IOCGROUP +IOCPARM_LEN +IOCPARM_MASK +IOC_DIRMASK +IOC_IN +IOC_INOUT +IOC_OUT +IOC_VOID IOV_MAX IPC_CREAT IPC_EXCL @@ -912,9 +921,14 @@ WSTOPPED WTRAPPED YESEXPR YESSTR +_IO +_IOC _IOFBF _IOLBF _IONBF +_IOR +_IOW +_IOWR _MAX_PAGE_SHIFT _PC_2_SYMLINKS _PC_ALLOC_SIZE_MIN diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index 682b8b7e9fe74..b9c35fe7f41f3 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -440,6 +440,34 @@ pub const MNT_NODEV: c_int = 0x00000010; pub const MNT_LOCAL: c_int = 0x00001000; pub const MNT_QUOTA: c_int = 0x00002000; +// sys/ioccom.h in NetBSD and OpenBSD +pub const IOCPARM_MASK: u32 = 0x1fff; + +pub const IOC_VOID: c_ulong = 0x20000000; +pub const IOC_OUT: c_ulong = 0x40000000; +pub const IOC_IN: c_ulong = 0x80000000; +pub const IOC_INOUT: c_ulong = IOC_IN | IOC_OUT; +pub const IOC_DIRMASK: c_ulong = 0xe0000000; + +pub const fn _IO(g: c_ulong, n: c_ulong) -> c_ulong { + _IOC(IOC_VOID, g, n, 0) +} + +/// Build an ioctl number for an read-only ioctl. +pub const fn _IOR(g: c_ulong, n: c_ulong) -> c_ulong { + _IOC(IOC_OUT, g, n, mem::size_of::() as c_ulong) +} + +/// Build an ioctl number for an write-only ioctl. +pub const fn _IOW(g: c_ulong, n: c_ulong) -> c_ulong { + _IOC(IOC_IN, g, n, mem::size_of::() as c_ulong) +} + +/// Build an ioctl number for a read-write ioctl. +pub const fn _IOWR(g: c_ulong, n: c_ulong) -> c_ulong { + _IOC(IOC_INOUT, g, n, mem::size_of::() as c_ulong) +} + pub const AF_UNSPEC: c_int = 0; pub const AF_LOCAL: c_int = 1; pub const AF_UNIX: c_int = AF_LOCAL; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 1367276762d61..507905f532d3b 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1712,6 +1712,29 @@ pub const MNT_WAIT: c_int = 1; pub const MNT_NOWAIT: c_int = 2; pub const MNT_LAZY: c_int = 3; +// sys/ioccom.h +pub const IOCPARM_SHIFT: u32 = 16; +pub const IOCGROUP_SHIFT: u32 = 8; + +pub const fn IOCPARM_LEN(x: u32) -> u32 { + (x >> IOCPARM_SHIFT) & crate::IOCPARM_MASK +} + +pub const fn IOCBASECMD(x: u32) -> u32 { + x & (!(crate::IOCPARM_MASK << IOCPARM_SHIFT)) +} + +pub const fn IOCGROUP(x: u32) -> u32 { + (x >> IOCGROUP_SHIFT) & 0xff +} + +pub const fn _IOC(inout: c_ulong, group: c_ulong, num: c_ulong, len: c_ulong) -> c_ulong { + (inout) + | (((len) & crate::IOCPARM_MASK as c_ulong) << IOCPARM_SHIFT) + | ((group) << IOCGROUP_SHIFT) + | (num) +} + // pub const CLOCK_PROCESS_CPUTIME_ID: crate::clockid_t = 2; pub const CLOCK_THREAD_CPUTIME_ID: crate::clockid_t = 4; diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 3a7aeadf4656d..5ee6bc0ca04f3 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1738,6 +1738,23 @@ pub const PF_R: u32 = 0x4; pub const PF_MASKOS: u32 = 0x0ff00000; pub const PF_MASKPROC: u32 = 0xf0000000; +// sys/ioccom.h +pub const fn IOCPARM_LEN(x: u32) -> u32 { + (x >> 16) & crate::IOCPARM_MASK +} + +pub const fn IOCBASECMD(x: u32) -> u32 { + x & (!(crate::IOCPARM_MASK << 16)) +} + +pub const fn IOCGROUP(x: u32) -> u32 { + (x >> 8) & 0xff +} + +pub const fn _IOC(inout: c_ulong, group: c_ulong, num: c_ulong, len: c_ulong) -> c_ulong { + (inout) | (((len) & crate::IOCPARM_MASK as c_ulong) << 16) | ((group) << 8) | (num) +} + // sys/mount.h pub const MNT_NOPERM: c_int = 0x00000020; pub const MNT_WXALLOWED: c_int = 0x00000800; From d23c71ee979e1a32aaf97a9a7c5f38ff0a59c3b1 Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Tue, 29 Jul 2025 12:08:16 -0400 Subject: [PATCH 0765/1228] Fix the types of 'struct stat'/'stat stat64' fields 'st_*tim'. (backport ) (cherry picked from commit cf82fdf3f22ccfa98ba120efc50d5f39ab2d52ff) --- libc-test/build.rs | 10 ++++++++++ src/unix/aix/mod.rs | 6 +++--- src/unix/aix/powerpc64.rs | 6 +++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index ce3a3fda4e1f6..fb9367d2ff958 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -5736,6 +5736,16 @@ fn test_aix(target: &str) { // header does not define a separate standalone union type for it. ("ld_info", "_file") => true, + // On AIX, when _ALL_SOURCE is defined, the types of the following fields + // differ from those used when _XOPEN_SOURCE is defined. The former uses + // 'struct st_timespec', while the latter uses 'struct timespec'. + ("stat", "st_atim") => true, + ("stat", "st_mtim") => true, + ("stat", "st_ctim") => true, + ("stat64", "st_atim") => true, + ("stat64", "st_mtim") => true, + ("stat64", "st_ctim") => true, + _ => false, } }); diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 9a4eac63dea63..a4e975ad8030e 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -463,9 +463,9 @@ s! { pub st_gid: crate::gid_t, pub st_rdev: dev_t, pub st_ssize: c_int, - pub st_atim: st_timespec, - pub st_mtim: st_timespec, - pub st_ctim: st_timespec, + pub st_atim: crate::timespec, + pub st_mtim: crate::timespec, + pub st_ctim: crate::timespec, pub st_blksize: blksize_t, pub st_blocks: blkcnt_t, pub st_vfstype: c_int, diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index 1a8ebb1cc7f6b..856fd0d127d70 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -69,9 +69,9 @@ s! { pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, pub st_ssize: c_int, - pub st_atim: crate::st_timespec, - pub st_mtim: crate::st_timespec, - pub st_ctim: crate::st_timespec, + pub st_atim: crate::timespec, + pub st_mtim: crate::timespec, + pub st_ctim: crate::timespec, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, pub st_vfstype: c_int, From 60a8cfd564f83164d45b9533ff7a0d7371878f2a Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 29 Jul 2025 05:53:53 -0500 Subject: [PATCH 0766/1228] NetBSD: mark an enum `#[repr(C)]` Resolve an instance of `improper_ctypes`. --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 507905f532d3b..b6b3639c37916 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -39,6 +39,7 @@ pub type Elf64_Xword = u64; pub type iconv_t = *mut c_void; e! { + #[repr(C)] pub enum fae_action { FAE_OPEN, FAE_DUP2, From 7085e0f243a91e0fa5f4640f35f4393c9bc338fe Mon Sep 17 00:00:00 2001 From: Thomas Klausner Date: Fri, 1 Aug 2025 21:39:50 +0200 Subject: [PATCH 0767/1228] NetBSD: add ptsname_r support (backport ) (cherry picked from commit e634372f7ebe918abccfa9b0de25f6dda2399f66) --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index b6b3639c37916..8179de20797e5 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2497,6 +2497,8 @@ extern "C" { winp: *mut crate::winsize, ) -> crate::pid_t; + pub fn ptsname_r(fd: c_int, buf: *mut c_char, buflen: size_t) -> c_int; + #[link_name = "__lutimes50"] pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int; #[link_name = "__gettimeofday50"] From f6355882054c91d0ed7827f35ea3d2c8b2dcfe76 Mon Sep 17 00:00:00 2001 From: Joakim Hulthe Date: Wed, 6 Aug 2025 15:21:45 +0200 Subject: [PATCH 0768/1228] Export UDP socket option consts on Android (backport ) (cherry picked from commit a43bdc34b235b4992289a0903ec24d86121af4c0) --- libc-test/semver/android.txt | 6 ++++++ src/unix/linux_like/android/mod.rs | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 80066883c7db0..96c77cb43c5ef 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -3096,6 +3096,12 @@ TUN_F_USO4 TUN_F_USO6 TUN_PKT_STRIP TUN_TX_TIMESTAMP +UDP_CORK +UDP_ENCAP +UDP_GRO +UDP_NO_CHECK6_RX +UDP_NO_CHECK6_TX +UDP_SEGMENT UINPUT_MAX_NAME_SIZE UINPUT_VERSION UIO_MAXIOV diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index ac76616b68cfb..df901a36635a8 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1323,6 +1323,15 @@ pub const SOL_ATALK: c_int = 258; pub const SOL_NETROM: c_int = 259; pub const SOL_ROSE: c_int = 260; +/* UDP socket options */ +// include/uapi/linux/udp.h +pub const UDP_CORK: c_int = 1; +pub const UDP_ENCAP: c_int = 100; +pub const UDP_NO_CHECK6_TX: c_int = 101; +pub const UDP_NO_CHECK6_RX: c_int = 102; +pub const UDP_SEGMENT: c_int = 103; +pub const UDP_GRO: c_int = 104; + /* DCCP socket options */ pub const DCCP_SOCKOPT_PACKET_SIZE: c_int = 1; pub const DCCP_SOCKOPT_SERVICE: c_int = 2; From 4fa238b0c252d87f8b1badc3016add6923c3f644 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 2 Aug 2025 12:49:42 -0700 Subject: [PATCH 0769/1228] riscv32: Define plain syscalls as their time64 variants RISCV32 is "time64-only" from the beginning on the kernel side. Based on musl change [1] [1] https://git.musl-libc.org/cgit/musl/commit/?id=4bbd7baea7c8538b3fb8e30f7b022a1eee071450 (backport ) (cherry picked from commit 458c5a0fb8668ec2f19f4a8ce023934809c58e52) --- .../linux_like/linux/musl/b32/riscv32/mod.rs | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index 0e2f53edcad4c..ea4b51f006f0f 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -633,3 +633,23 @@ pub const SYS_faccessat2: c_long = 439; pub const SYS_process_madvise: c_long = 440; pub const SYS_epoll_pwait2: c_long = 441; pub const SYS_mount_setattr: c_long = 442; + +// Plain syscalls aliased to their time64 variants +pub const SYS_clock_gettime: c_long = SYS_clock_gettime64; +pub const SYS_clock_settime: c_long = SYS_clock_settime64; +pub const SYS_clock_adjtime: c_long = SYS_clock_adjtime64; +pub const SYS_clock_getres: c_long = SYS_clock_getres_time64; +pub const SYS_clock_nanosleep: c_long = SYS_clock_nanosleep_time64; +pub const SYS_timer_gettime: c_long = SYS_timer_gettime64; +pub const SYS_timer_settime: c_long = SYS_timer_settime64; +pub const SYS_timerfd_gettime: c_long = SYS_timerfd_gettime64; +pub const SYS_timerfd_settime: c_long = SYS_timerfd_settime64; +pub const SYS_utimensat: c_long = SYS_utimensat_time64; +pub const SYS_pselect6: c_long = SYS_pselect6_time64; +pub const SYS_ppoll: c_long = SYS_ppoll_time64; +pub const SYS_recvmmsg: c_long = SYS_recvmmsg_time64; +pub const SYS_mq_timedsend: c_long = SYS_mq_timedsend_time64; +pub const SYS_mq_timedreceive: c_long = SYS_mq_timedreceive_time64; +pub const SYS_rt_sigtimedwait: c_long = SYS_rt_sigtimedwait_time64; +pub const SYS_futex: c_long = SYS_futex_time64; +pub const SYS_sched_rr_get_interval: c_long = SYS_sched_rr_get_interval_time64; From d431cd27a62f3c1679a19aeaec49428a52d08635 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Wed, 16 Oct 2024 09:05:59 +0200 Subject: [PATCH 0770/1228] Enable statx on musl-libc Version 1.2.5 of musl-libc added support for the statx system call[1]. [1]: https://musl.libc.org/releases.html (backport ) (cherry picked from commit ef3c046a1a839d3eef28d69de6b397e83ce9b94a) --- src/unix/linux_like/mod.rs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 98a093db2e742..b044caf109ee1 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -234,7 +234,11 @@ cfg_if! { } cfg_if! { - if #[cfg(any(target_env = "gnu", target_os = "android"))] { + if #[cfg(any( + target_env = "gnu", + target_os = "android", + all(target_env = "musl", musl_v1_2_3) + ))] { s! { pub struct statx { pub stx_mask: crate::__u32, @@ -1663,7 +1667,11 @@ cfg_if! { } cfg_if! { - if #[cfg(any(target_env = "gnu", target_os = "android"))] { + if #[cfg(any( + target_env = "gnu", + target_os = "android", + all(target_env = "musl", musl_v1_2_3) + ))] { pub const AT_STATX_SYNC_TYPE: c_int = 0x6000; pub const AT_STATX_SYNC_AS_STAT: c_int = 0x0000; pub const AT_STATX_FORCE_SYNC: c_int = 0x2000; @@ -2181,7 +2189,11 @@ cfg_if! { // The statx syscall, available on some libcs. cfg_if! { - if #[cfg(any(target_env = "gnu", target_os = "android"))] { + if #[cfg(any( + target_env = "gnu", + target_os = "android", + all(target_env = "musl", musl_v1_2_3) + ))] { extern "C" { pub fn statx( dirfd: c_int, From d3c354e1e2767eae5a226fcc7e631ee4ec1f53a3 Mon Sep 17 00:00:00 2001 From: Niels Sascha Reedijk Date: Mon, 23 Dec 2024 10:16:15 +0000 Subject: [PATCH 0771/1228] Haiku: move BSD API to a separate file Haiku implements various parts of the (non-POSIX) BSD API. This moves it to a separate file, for easier future maintenance. No functional change intended; the changes are synchronized with R1Beta5 (backport ) (cherry picked from commit f1091a7e87f04c0f7f78ef4b0dee15a0b1d71618) --- src/unix/haiku/bsd.rs | 81 +++++++++++++++++++++++++++++++++++++++ src/unix/haiku/mod.rs | 83 +++++++++++++--------------------------- src/unix/haiku/native.rs | 14 +------ 3 files changed, 109 insertions(+), 69 deletions(-) create mode 100644 src/unix/haiku/bsd.rs diff --git a/src/unix/haiku/bsd.rs b/src/unix/haiku/bsd.rs new file mode 100644 index 0000000000000..f093911d0c9c8 --- /dev/null +++ b/src/unix/haiku/bsd.rs @@ -0,0 +1,81 @@ +//! This file contains the BSD APIs available in Haiku. It corresponds to the +//! header files in `headers/compatibility/bsd`. +//! +//! Note that Haiku's BSD compatibility is a combination of system APIs and +//! utility libraries. There should only be system APIs in `libc`. When you are +//! trying to determine whether something should be included in this file, the +//! best indicator is whether it also exists in the BSD-specific definitions in +//! this libc crate. + +use crate::prelude::*; + +// stringlist.h (utility library) +// Note: this is kept because it was previously introduced +pub type StringList = _stringlist; + +s! { + // stringlist.h (utility library) + // Note: this is kept because it was previously introduced + pub struct _stringlist { + pub sl_str: *mut *mut c_char, + pub sl_max: size_t, + pub sl_cur: size_t, + } + + // sys/link_elf.h + pub struct dl_phdr_info { + pub dlpi_addr: crate::Elf_Addr, + pub dlpi_name: *const c_char, + pub dlpi_phdr: *const crate::Elf_Phdr, + pub dlpi_phnum: crate::Elf_Half, + } +} + +#[link(name = "bsd")] +extern "C" { + // stdlib.h + pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; + pub fn getprogname() -> *const c_char; + pub fn setprogname(progname: *const c_char); + pub fn arc4random() -> u32; + pub fn arc4random_uniform(upper_bound: u32) -> u32; + pub fn arc4random_buf(buf: *mut c_void, n: size_t); + + // pty.h + pub fn openpty( + amaster: *mut c_int, + aslave: *mut c_int, + name: *mut c_char, + termp: *mut crate::termios, + winp: *mut crate::winsize, + ) -> c_int; + pub fn login_tty(_fd: c_int) -> c_int; + pub fn forkpty( + amaster: *mut c_int, + name: *mut c_char, + termp: *mut crate::termios, + winp: *mut crate::winsize, + ) -> crate::pid_t; + + // string.h + pub fn strsep(string: *mut *mut c_char, delimiters: *const c_char) -> *mut c_char; + pub fn explicit_bzero(buf: *mut c_void, len: size_t); + + // stringlist.h (utility library) + // Note: this is kept because it was previously introduced + pub fn sl_init() -> *mut StringList; + pub fn sl_add(sl: *mut StringList, n: *mut c_char) -> c_int; + pub fn sl_free(sl: *mut StringList, i: c_int); + pub fn sl_find(sl: *mut StringList, n: *mut c_char) -> *mut c_char; + + // sys/link_elf.h + pub fn dl_iterate_phdr( + callback: Option< + unsafe extern "C" fn(info: *mut dl_phdr_info, size: usize, data: *mut c_void) -> c_int, + >, + data: *mut c_void, + ) -> c_int; + + // sys/time.h + pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int; +} diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 790591fc0b9f7..71eb890d30452 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1,5 +1,29 @@ use crate::prelude::*; +// This module contains bindings to the native Haiku API. The Haiku API +// originates from BeOS, and it was the original way to perform low level +// system and IO operations. The POSIX API was in that era was like a +// compatibility layer. In current Haiku development, both the POSIX API and +// the Haiku API are considered to be co-equal status. However, they are not +// integrated like they are on other UNIX platforms, which means that for many +// low level concepts there are two versions, like processes (POSIX) and +// teams (Haiku), or pthreads and native threads. +// +// Both the POSIX API and the Haiku API live in libroot.so, the library that is +// linked to any binary by default. Additionally, Haiku supports several +// non-POSIX APIs from BSD and GNU, which live in libbsd.so and libgnu.so. These +// modules are also supported. +// +// The module is comprised of the following files: +// - `mod.rs` (this file) implements the C11 and POSIX API found in +// `headers/posix` +// - `b32.rs`, `b64.rs` and `x86_64.rs` contain platform-specific definitions +// of the C11 and POSIX APIs +// - `native.rs` defines the native Haiku API that is implemented in +// `libroot.so` and that are found in `headers/os`. +// - `bsd.rs` defines the BSD customizations available on Haiku found in +// `headers/compatibility/bsd` + pub type rlim_t = crate::uintptr_t; pub type sa_family_t = u8; pub type pthread_key_t = c_int; @@ -56,8 +80,6 @@ pub type ACTION = c_int; pub type posix_spawnattr_t = *mut c_void; pub type posix_spawn_file_actions_t = *mut c_void; -pub type StringList = _stringlist; - #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} impl Copy for timezone {} @@ -440,19 +462,6 @@ s! { pub flag: *mut c_int, pub val: c_int, } - - pub struct _stringlist { - pub sl_str: *mut *mut c_char, - pub sl_max: size_t, - pub sl_cur: size_t, - } - - pub struct dl_phdr_info { - pub dlpi_addr: crate::Elf_Addr, - pub dlpi_name: *const c_char, - pub dlpi_phdr: *const crate::Elf_Phdr, - pub dlpi_phnum: crate::Elf_Half, - } } s_no_extra_traits! { @@ -1772,7 +1781,6 @@ extern "C" { addr: *mut crate::sockaddr, addrlen: *mut crate::socklen_t, ) -> ssize_t; - pub fn mkstemps(template: *mut c_char, suffixlen: c_int) -> c_int; pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char; pub fn bind( @@ -2032,46 +2040,6 @@ extern "C" { pub fn getentropy(buf: *mut c_void, buflen: size_t) -> c_int; } -#[link(name = "bsd")] -extern "C" { - pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int; - pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; - pub fn forkpty( - amaster: *mut c_int, - name: *mut c_char, - termp: *mut termios, - winp: *mut crate::winsize, - ) -> crate::pid_t; - pub fn openpty( - amaster: *mut c_int, - aslave: *mut c_int, - name: *mut c_char, - termp: *mut termios, - winp: *mut crate::winsize, - ) -> c_int; - pub fn strsep(string: *mut *mut c_char, delimiters: *const c_char) -> *mut c_char; - pub fn explicit_bzero(buf: *mut c_void, len: size_t); - pub fn login_tty(_fd: c_int) -> c_int; - - pub fn sl_init() -> *mut StringList; - pub fn sl_add(sl: *mut StringList, n: *mut c_char) -> c_int; - pub fn sl_free(sl: *mut StringList, i: c_int); - pub fn sl_find(sl: *mut StringList, n: *mut c_char) -> *mut c_char; - - pub fn getprogname() -> *const c_char; - pub fn setprogname(progname: *const c_char); - pub fn dl_iterate_phdr( - callback: Option< - unsafe extern "C" fn(info: *mut dl_phdr_info, size: usize, data: *mut c_void) -> c_int, - >, - data: *mut c_void, - ) -> c_int; - - pub fn arc4random() -> u32; - pub fn arc4random_uniform(upper_bound: u32) -> u32; - pub fn arc4random_buf(buf: *mut c_void, n: size_t); -} - #[link(name = "gnu")] extern "C" { pub fn memmem( @@ -2115,5 +2083,8 @@ cfg_if! { } } +mod bsd; +pub use self::bsd::*; + mod native; pub use self::native::*; diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs index f3eaf623a59a5..13a203f92ff56 100644 --- a/src/unix/haiku/native.rs +++ b/src/unix/haiku/native.rs @@ -1,19 +1,7 @@ use crate::off_t; use crate::prelude::*; -// This module contains bindings to the native Haiku API. The Haiku API -// originates from BeOS, and it was the original way to perform low level -// system and IO operations. The POSIX API was in that era was like a -// compatibility layer. In current Haiku development, both the POSIX API and -// the Haiku API are considered to be co-equal status. However, they are not -// integrated like they are on other UNIX platforms, which means that for many -// low level concepts there are two versions, like processes (POSIX) and -// teams (Haiku), or pthreads and native threads. -// -// Both the POSIX API and the Haiku API live in libroot.so, the library that is -// linked to any binary by default. -// -// This file follows the Haiku API for Haiku R1 beta 2. It is organized by the +// This file follows the Haiku API for Haiku R1 beta 5. It is organized by the // C/C++ header files in which the concepts can be found, while adhering to the // style guide for this crate. From 802771851aeea8255a82335e38a66ff9e5d167c5 Mon Sep 17 00:00:00 2001 From: Niels Sascha Reedijk Date: Wed, 25 Dec 2024 16:54:36 +0000 Subject: [PATCH 0772/1228] Haiku: add additional functionality in libbsd.so This includes: * sys/event.h: `kevent()`, `kqueue()`, data structure and constants * sys/iocomm.h: constants that are also defined for other platforms * stdlib.h: `mkstemps()` and `strtonum()` * sys/uov.h: `preadv()` and `pwritev()` * sys/wait.h: `wait4()` (backport ) (cherry picked from commit 7fd1b1a7b956bb345506a380874e6dfc523f93ba) --- src/unix/haiku/bsd.rs | 70 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/src/unix/haiku/bsd.rs b/src/unix/haiku/bsd.rs index f093911d0c9c8..1e3881e2c67ff 100644 --- a/src/unix/haiku/bsd.rs +++ b/src/unix/haiku/bsd.rs @@ -22,6 +22,17 @@ s! { pub sl_cur: size_t, } + // sys/event.h + pub struct kevent { + pub ident: crate::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], + } + // sys/link_elf.h pub struct dl_phdr_info { pub dlpi_addr: crate::Elf_Addr, @@ -31,6 +42,25 @@ s! { } } +// sys/event.h +pub const EVFILT_READ: i16 = -1; +pub const EVFILT_WRITE: i16 = -2; +pub const EVFILT_PROC: i16 = -5; +pub const EV_ADD: u16 = 0x0001; +pub const EV_DELETE: u16 = 0x0002; +pub const EV_ONESHOT: u16 = 0x0010; +pub const EV_CLEAR: u16 = 0x0020; +pub const EV_EOF: u16 = 0x8000; +pub const EV_ERROR: u16 = 0x4000; +pub const NOTE_EXIT: u32 = 0x80000000; + +// sys/ioccom.h +pub const IOC_VOID: c_ulong = 0x20000000; +pub const IOC_OUT: c_ulong = 0x40000000; +pub const IOC_IN: c_ulong = 0x80000000; +pub const IOC_INOUT: c_ulong = IOC_IN | IOC_OUT; +pub const IOC_DIRMASK: c_ulong = 0xe0000000; + #[link(name = "bsd")] extern "C" { // stdlib.h @@ -40,6 +70,13 @@ extern "C" { pub fn arc4random() -> u32; pub fn arc4random_uniform(upper_bound: u32) -> u32; pub fn arc4random_buf(buf: *mut c_void, n: size_t); + pub fn mkstemps(template: *mut c_char, suffixlen: c_int) -> c_int; + pub fn strtonum( + nptr: *const c_char, + minval: c_longlong, + maxval: c_longlong, + errstr: *mut *const c_char, + ) -> c_longlong; // pty.h pub fn openpty( @@ -68,6 +105,17 @@ extern "C" { pub fn sl_free(sl: *mut StringList, i: c_int); pub fn sl_find(sl: *mut StringList, n: *mut c_char) -> *mut c_char; + // sys/event.h + pub fn kqueue() -> c_int; + pub fn kevent( + kq: c_int, + changelist: *const kevent, + nchanges: c_int, + eventlist: *mut kevent, + nevents: c_int, + timeout: *const crate::timespec, + ) -> c_int; + // sys/link_elf.h pub fn dl_iterate_phdr( callback: Option< @@ -78,4 +126,26 @@ extern "C" { // sys/time.h pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int; + + // sys/uov.h + pub fn preadv( + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: crate::off_t, + ) -> ssize_t; + pub fn pwritev( + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: crate::off_t, + ) -> ssize_t; + + // sys/wait.h + pub fn wait4( + pid: crate::pid_t, + status: *mut c_int, + options: c_int, + rusage: *mut crate::rusage, + ) -> crate::pid_t; } From 7cdcaa62396816db2177cb663a4bf57f79603a52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Wed, 16 Jul 2025 16:02:37 +0200 Subject: [PATCH 0773/1228] freebsd: Fix type of struct xktls_session_onedir, field ifnet For the upstream definition, see: https://github.com/freebsd/freebsd-src/commit/c9e9a0fe5b0f88561f55fb2f6f5354fbbd96dd5d (backport ) (cherry picked from commit 985d95bb29c2156adcebf881266fd2f1a8708c6e) --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 3466e3b38d8cb..e2ee8e21f0c6f 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1758,7 +1758,7 @@ s_no_extra_traits! { pub tls_bs: u8, pub flags: u8, pub drv_st_len: u16, - pub ifnet: [u8; 16], + pub ifnet: [c_char; 16], } pub struct xktls_session { From 4cc1bf43310e6a31636e4c4eb31e78e702938f50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Thu, 24 Jul 2025 17:38:51 +0200 Subject: [PATCH 0774/1228] freebsd: Document avoidance of reserved name `gen` (backport ) (cherry picked from commit 99e33735dbc69837d5f4d1ea91a4ed353695985e) --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index e2ee8e21f0c6f..f60eb1a3e9cbe 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1741,6 +1741,8 @@ s_no_extra_traits! { } pub struct xktls_session_onedir { + // Note: this field is called `gen` in upstream FreeBSD, but `gen` is + // reserved keyword in Rust since the 2024 Edition, hence `gennum`. pub gennum: u64, _rsrv1: [u64; 8], _rsrv2: [u32; 8], From adfe283365cff1c6a05cddeca8afeaa667d1c637 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Thu, 24 Jul 2025 17:50:17 +0200 Subject: [PATCH 0775/1228] libc-test: Account for xktls_session_onedir::gen (freebsd) (backport ) (cherry picked from commit 56a04abb0c9f0cd84c7234451456eda4f796ae26) --- libc-test/build.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index fb9367d2ff958..1304d3bf14202 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2585,6 +2585,8 @@ fn test_freebsd(target: &str) { "type_" if struct_ == "sockstat" => "type".to_string(), "type_" if struct_ == "devstat_match_table" => "type".to_string(), "type_" if struct_ == "input_event" => "type".to_string(), + // Field is named `gennum` in Rust because `gen` is a keyword + "gennum" if struct_ == "xktls_session_onedir" => "gen".to_string(), s => s.to_string(), } }); From 2816bc2f66c1c62ec5a616fb499a2b27bbba4a3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Wed, 16 Jul 2025 16:04:28 +0200 Subject: [PATCH 0776/1228] libc-test: include sys/ktls.h on freebsd is necessary in order to find the xktls_* structs. See also: https://github.com/freebsd/freebsd-src/commit/c9e9a0fe5b0f88561f55fb2f6f5354fbbd96dd5d (backport ) (cherry picked from commit 4147a8b2689dfd281b3ca148c755e452936143f4) --- libc-test/build.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 1304d3bf14202..af273130833df 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2503,7 +2503,8 @@ fn test_freebsd(target: &str) { "sys/shm.h", "sys/socket.h", "sys/socketvar.h", - "netinet/in_pcb.h", // must be after sys/socketvar.h + [freebsd15]:"sys/ktls.h", + "netinet/in_pcb.h", // must be after sys/socketvar.h, sys/ktls.h "sys/stat.h", "sys/statvfs.h", "sys/sysctl.h", From 9606a2918b1f370119af8022d61b0ff03175beb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Wed, 16 Jul 2025 16:29:16 +0200 Subject: [PATCH 0777/1228] freebsd15: Add ki_uerrmsg to struct kinfo_proc Upstream commit: https://github.com/freebsd/freebsd-src/commit/7212b37345936899e979c63d0b054e114576faa0 (backport ) (cherry picked from commit e2404b45f790d0b0e7fccc252c496b2d2b852aef) --- src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index 6a02d7b35c186..97912bdebcdb2 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -226,6 +226,8 @@ s! { // This is normally "struct pwddesc". /// Pointer to process paths info. pub ki_pd: *mut c_void, + /// Address of the ext err msg place + pub ki_uerrmsg: *mut c_void, pub ki_spareptrs: [*mut c_void; crate::KI_NSPARE_PTR], pub ki_sparelongs: [c_long; crate::KI_NSPARE_LONG], /// PS_* flags. @@ -445,7 +447,7 @@ pub const KF_TYPE_EVENTFD: c_int = 13; /// max length of devicename pub const SPECNAMELEN: c_int = 255; -pub const KI_NSPARE_PTR: usize = 5; +pub const KI_NSPARE_PTR: usize = 4; /// domainset policies pub const DOMAINSET_POLICY_INVALID: c_int = 0; From e9b021b7cd3d3f045ce8ec743d344e56b14f7244 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Mon, 16 Dec 2024 09:33:31 +0000 Subject: [PATCH 0778/1228] freebsd adding further TCP stack related constants. ref: https://github.com/freebsd/freebsd-src/commit/e570d231f48957dcf0757b7b716330f3bd64e362#diff-c354fa9fe15a3e5c90079f38792a8e5458d76677437a53ee7537a62fbc72e100R255 (backport ) (cherry picked from commit 0442ebb48baf9cd1d599a889f29eb44b68a461d6) --- libc-test/semver/freebsd.txt | 20 ++++++++++++++++++++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 20 ++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index d0b64323282c1..e8f385fe78982 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -1507,15 +1507,35 @@ TAB3 TABDLY TCP_BBR_ALGORITHM TCP_BBR_DRAIN_PG +TCP_BBR_EXTRA_STATE +TCP_BBR_FLOOR_MIN_TSO +TCP_BBR_HDWR_PACE TCP_BBR_IWINTSO TCP_BBR_MAX_RTO TCP_BBR_MIN_RTO +TCP_BBR_MIN_TOPACEOUT +TCP_BBR_PACE_CROSS +TCP_BBR_PACE_DEL_TAR TCP_BBR_PACE_OH +TCP_BBR_PACE_PER_SEC +TCP_BBR_PACE_SEG_MAX +TCP_BBR_PACE_SEG_MIN +TCP_BBR_POLICER_DETECT +TCP_BBR_PROBE_RTT_GAIN TCP_BBR_PROBE_RTT_INT +TCP_BBR_PROBE_RTT_LEN +TCP_BBR_RACK_INIT_RATE +TCP_BBR_RACK_RTT_USE +TCP_BBR_RETRAN_WTSO +TCP_BBR_SEND_IWND_IN_TSO TCP_BBR_STARTUP_LOSS_EXIT TCP_BBR_STARTUP_PG +TCP_BBR_TMR_PACE_OH TCP_BBR_TSLIMITS +TCP_BBR_TSTMP_RAISES TCP_BBR_USEDEL_RATE +TCP_BBR_USE_RACK_RR +TCP_BBR_UTTER_MAX_TSO TCP_CCALGOOPT TCP_CONGESTION TCP_DELACK diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index f60eb1a3e9cbe..f64d079fd04c5 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -3638,6 +3638,26 @@ pub const TCP_BBR_USEDEL_RATE: c_int = 1079; pub const TCP_BBR_MIN_RTO: c_int = 1080; pub const TCP_BBR_MAX_RTO: c_int = 1081; pub const TCP_BBR_ALGORITHM: c_int = 1083; +pub const TCP_BBR_PACE_PER_SEC: c_int = 1086; +pub const TCP_BBR_PACE_DEL_TAR: c_int = 1087; +pub const TCP_BBR_PACE_SEG_MAX: c_int = 1088; +pub const TCP_BBR_PACE_SEG_MIN: c_int = 1089; +pub const TCP_BBR_PACE_CROSS: c_int = 1090; +pub const TCP_BBR_TMR_PACE_OH: c_int = 1096; +pub const TCP_BBR_RACK_RTT_USE: c_int = 1098; +pub const TCP_BBR_RETRAN_WTSO: c_int = 1099; +pub const TCP_BBR_PROBE_RTT_GAIN: c_int = 1101; +pub const TCP_BBR_PROBE_RTT_LEN: c_int = 1102; +pub const TCP_BBR_SEND_IWND_IN_TSO: c_int = 1103; +pub const TCP_BBR_USE_RACK_RR: c_int = 1104; +pub const TCP_BBR_HDWR_PACE: c_int = 1105; +pub const TCP_BBR_UTTER_MAX_TSO: c_int = 1106; +pub const TCP_BBR_EXTRA_STATE: c_int = 1107; +pub const TCP_BBR_FLOOR_MIN_TSO: c_int = 1108; +pub const TCP_BBR_MIN_TOPACEOUT: c_int = 1109; +pub const TCP_BBR_TSTMP_RAISES: c_int = 1110; +pub const TCP_BBR_POLICER_DETECT: c_int = 1111; +pub const TCP_BBR_RACK_INIT_RATE: c_int = 1112; pub const IP_BINDANY: c_int = 24; pub const IP_BINDMULTI: c_int = 25; From 172527344a1d92b2ca7f88fe2b1bbde4b02de58b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 9 Aug 2025 19:28:27 -0500 Subject: [PATCH 0779/1228] Rename the ctest file from `main` to `ctest` Make it more obvious what this test is about. (backport ) (cherry picked from commit fef089cce47331eac7f087dc968917fa9a578965) --- ci/create-artifacts.py | 4 ++-- libc-test/Cargo.toml | 4 ++-- libc-test/build.rs | 34 ++++++++++++++-------------- libc-test/test/{main.rs => ctest.rs} | 2 +- 4 files changed, 22 insertions(+), 22 deletions(-) rename libc-test/test/{main.rs => ctest.rs} (53%) diff --git a/ci/create-artifacts.py b/ci/create-artifacts.py index 23710c9cf602a..2854daa563154 100755 --- a/ci/create-artifacts.py +++ b/ci/create-artifacts.py @@ -14,9 +14,9 @@ def main(): - # Find the most recently touched file named "main.c" in the target + # Find the most recently touched file named "ctest_output.c" in the target # directory. This will be libc-tests's `OUT_DIR` - marker_files = [Path(p) for p in glob("target/**/main.c", recursive=True)] + marker_files = [Path(p) for p in glob("target/**/ctest_output.c", recursive=True)] marker_files.sort(key=lambda path: path.stat().st_mtime) build_dir = marker_files[0].parent print(f"Located build directory '{build_dir}'") diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 6c9d8c82ab07f..32d98257e335e 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -31,8 +31,8 @@ align = ["libc/align"] extra_traits = ["libc/extra_traits"] [[test]] -name = "main" -path = "test/main.rs" +name = "ctest" +path = "test/ctest.rs" harness = false [[test]] diff --git a/libc-test/build.rs b/libc-test/build.rs index af273130833df..8cb82e8a8d833 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -504,7 +504,7 @@ fn test_apple(target: &str) { "uuid_t" | "vol_capabilities_set_t" => true, _ => false, }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); } fn test_openbsd(target: &str) { @@ -694,7 +694,7 @@ fn test_openbsd(target: &str) { } }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); } fn test_cygwin(target: &str) { @@ -866,7 +866,7 @@ fn test_cygwin(target: &str) { } }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); } fn test_windows(target: &str) { @@ -995,7 +995,7 @@ fn test_windows(target: &str) { } }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); } fn test_redox(target: &str) { @@ -1045,7 +1045,7 @@ fn test_redox(target: &str) { "wchar.h", } - cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); } fn test_solarish(target: &str) { @@ -1335,7 +1335,7 @@ fn test_solarish(target: &str) { } }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); } fn test_netbsd(target: &str) { @@ -1551,7 +1551,7 @@ fn test_netbsd(target: &str) { } }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); } fn test_dragonflybsd(target: &str) { @@ -1776,7 +1776,7 @@ fn test_dragonflybsd(target: &str) { (struct_ == "sigevent" && field == "sigev_notify_thread_id") }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); } fn test_wasi(target: &str) { @@ -1883,7 +1883,7 @@ fn test_wasi(target: &str) { // doesn't support sizeof. cfg.skip_field(|s, field| s == "dirent" && field == "d_name"); - cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); } fn test_android(target: &str) { @@ -2390,7 +2390,7 @@ fn test_android(target: &str) { } }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); test_linux_like_apis(target); } @@ -3079,7 +3079,7 @@ fn test_freebsd(target: &str) { }); } - cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); } fn test_emscripten(target: &str) { @@ -3319,7 +3319,7 @@ fn test_emscripten(target: &str) { ].contains(&field)) }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); } fn test_neutrino(target: &str) { @@ -3592,7 +3592,7 @@ fn test_neutrino(target: &str) { cfg.skip_static(move |name| name == "__dso_handle"); - cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); } fn test_vxworks(target: &str) { @@ -3698,7 +3698,7 @@ fn test_vxworks(target: &str) { _ => false, }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); } fn config_gnu_bits(target: &str, cfg: &mut ctest::TestGenerator) { @@ -5019,7 +5019,7 @@ fn test_linux(target: &str) { _ => false, }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); test_linux_like_apis(target); } @@ -5537,7 +5537,7 @@ fn test_haiku(target: &str) { s => s.to_string(), } }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); } fn test_aix(target: &str) { @@ -5834,5 +5834,5 @@ fn test_aix(target: &str) { } }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "main.rs"); + cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); } diff --git a/libc-test/test/main.rs b/libc-test/test/ctest.rs similarity index 53% rename from libc-test/test/main.rs rename to libc-test/test/ctest.rs index c3fdcb56e54df..0b48c4af2975e 100644 --- a/libc-test/test/main.rs +++ b/libc-test/test/ctest.rs @@ -2,4 +2,4 @@ use libc::*; -include!(concat!(env!("OUT_DIR"), "/main.rs")); +include!(concat!(env!("OUT_DIR"), "/ctest_output.rs")); From 94a7f32972a352fe348edbd49b06995542f3c5f5 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 9 Aug 2025 21:11:26 -0500 Subject: [PATCH 0780/1228] cleanup: Format a file that was missed Also start validating formatting in CI for files in `ci/`. (backport ) (cherry picked from commit c0071cc9f9385da6352e40824cfd77334e85f72d) --- ci/ios/deploy_and_run_on_ios_simulator.rs | 100 +++++++++++++--------- ci/style.sh | 2 +- 2 files changed, 59 insertions(+), 43 deletions(-) diff --git a/ci/ios/deploy_and_run_on_ios_simulator.rs b/ci/ios/deploy_and_run_on_ios_simulator.rs index 7e0b80268ffbc..0398a9d3f888d 100644 --- a/ci/ios/deploy_and_run_on_ios_simulator.rs +++ b/ci/ios/deploy_and_run_on_ios_simulator.rs @@ -6,18 +6,19 @@ // (https://github.com/snipsco/dinghy): cargo dinghy install, then cargo dinghy // test. -use std::env; use std::fs::{self, File}; use std::io::Write; use std::path::Path; -use std::process; use std::process::Command; +use std::{env, process}; macro_rules! t { - ($e:expr) => (match $e { - Ok(e) => e, - Err(e) => panic!("{} failed with: {e}", stringify!($e)), - }) + ($e:expr) => { + match $e { + Ok(e) => e, + Err(e) => panic!("{} failed with: {e}", stringify!($e)), + } + }; } // Step one: Wrap as an app @@ -25,11 +26,15 @@ fn package_as_simulator_app(crate_name: &str, test_binary_path: &Path) { println!("Packaging simulator app"); drop(fs::remove_dir_all("ios_simulator_app")); t!(fs::create_dir("ios_simulator_app")); - t!(fs::copy(test_binary_path, - Path::new("ios_simulator_app").join(crate_name))); + t!(fs::copy( + test_binary_path, + Path::new("ios_simulator_app").join(crate_name) + )); let mut f = t!(File::create("ios_simulator_app/Info.plist")); - t!(f.write_all(format!(r#" + t!(f.write_all( + format!( + r#" com.rust.unittests - "#, crate_name).as_bytes())); + "#, + crate_name + ) + .as_bytes() + )); } // Step two: Start the iOS simulator @@ -57,8 +66,10 @@ fn start_simulator() { for line in stdout.lines() { if line.contains("rust_ios") { if found_rust_sim { - panic!("Duplicate rust_ios simulators found. Please \ - double-check xcrun simctl list."); + panic!( + "Duplicate rust_ios simulators found. Please \ + double-check xcrun simctl list." + ); } simulator_exists = true; simulator_booted = line.contains("(Booted)"); @@ -69,62 +80,67 @@ fn start_simulator() { if simulator_exists == false { println!("Creating iOS simulator"); Command::new("xcrun") - .arg("simctl") - .arg("create") - .arg("rust_ios") - .arg("com.apple.CoreSimulator.SimDeviceType.iPhone-SE") - .arg("com.apple.CoreSimulator.SimRuntime.iOS-10-2") - .check_status(); + .arg("simctl") + .arg("create") + .arg("rust_ios") + .arg("com.apple.CoreSimulator.SimDeviceType.iPhone-SE") + .arg("com.apple.CoreSimulator.SimRuntime.iOS-10-2") + .check_status(); } else if simulator_booted == true { println!("Shutting down already-booted simulator"); Command::new("xcrun") - .arg("simctl") - .arg("shutdown") - .arg("rust_ios") - .check_status(); + .arg("simctl") + .arg("shutdown") + .arg("rust_ios") + .check_status(); } println!("Starting iOS simulator"); // We can't uninstall the app (if present) as that will hang if the // simulator isn't completely booted; just erase the simulator instead. - Command::new("xcrun").arg("simctl").arg("erase").arg("rust_ios").check_status(); - Command::new("xcrun").arg("simctl").arg("boot").arg("rust_ios").check_status(); + Command::new("xcrun") + .arg("simctl") + .arg("erase") + .arg("rust_ios") + .check_status(); + Command::new("xcrun") + .arg("simctl") + .arg("boot") + .arg("rust_ios") + .check_status(); } // Step three: Install the app fn install_app_to_simulator() { println!("Installing app to simulator"); Command::new("xcrun") - .arg("simctl") - .arg("install") - .arg("booted") - .arg("ios_simulator_app/") - .check_status(); + .arg("simctl") + .arg("install") + .arg("booted") + .arg("ios_simulator_app/") + .check_status(); } // Step four: Run the app fn run_app_on_simulator() { println!("Running app"); let output = t!(Command::new("xcrun") - .arg("simctl") - .arg("launch") - .arg("--console") - .arg("booted") - .arg("com.rust.unittests") - .output()); + .arg("simctl") + .arg("launch") + .arg("--console") + .arg("booted") + .arg("com.rust.unittests") + .output()); println!("status: {}", output.status); println!("stdout --\n{}\n", String::from_utf8_lossy(&output.stdout)); println!("stderr --\n{}\n", String::from_utf8_lossy(&output.stderr)); let stdout = String::from_utf8_lossy(&output.stdout); - let passed = stdout.lines() - .find(|l| - (l.contains("PASSED") && - l.contains("tests")) || - l.contains("test result: ok") - ) - .unwrap_or(false); + let passed = stdout + .lines() + .find(|l| (l.contains("PASSED") && l.contains("tests")) || l.contains("test result: ok")) + .unwrap_or(false); println!("Shutting down simulator"); Command::new("xcrun") diff --git a/ci/style.sh b/ci/style.sh index 72465f71c760a..2d3e874e38998 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -11,7 +11,7 @@ rustfmt -V # Save a list of all source files tmpfile="file-list~" # trailing tilde for gitignore -find src -name '*.rs' > "$tmpfile" +find src ci -name '*.rs' > "$tmpfile" # Before formatting, replace all macro identifiers with a function signature. # This allows `rustfmt` to format it. From 4d04aee906450fed27305de30c23f518166f919f Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 11 Aug 2025 00:34:42 -0500 Subject: [PATCH 0781/1228] chore: release libc 0.2.175 --- CHANGELOG.md | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 2 +- 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fa193e550288a..7c57f86a2d6ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,66 @@ # Changelog +## [0.2.175](https://github.com/rust-lang/libc/compare/0.2.174...0.2.175) - 2025-08-10 + +### Added + +- AIX: Add `getpeereid` ([#4524](https://github.com/rust-lang/libc/pull/4524)) +- AIX: Add `struct ld_info` and friends ([#4578](https://github.com/rust-lang/libc/pull/4578)) +- AIX: Retore `struct winsize` ([#4577](https://github.com/rust-lang/libc/pull/4577)) +- Android: Add UDP socket option constants ([#4619](https://github.com/rust-lang/libc/pull/4619)) +- Android: Add `CLONE_CLEAR_SIGHAND` and `CLONE_INTO_CGROUP` ([#4502](https://github.com/rust-lang/libc/pull/4502)) +- Android: Add more `prctl` constants ([#4531](https://github.com/rust-lang/libc/pull/4531)) +- FreeBSD Add further TCP stack-related constants ([#4196](https://github.com/rust-lang/libc/pull/4196)) +- FreeBSD x86-64: Add `mcontext_t.mc_tlsbase ` ([#4503](https://github.com/rust-lang/libc/pull/4503)) +- FreeBSD15: Add `kinfo_proc.ki_uerrmsg` ([#4552](https://github.com/rust-lang/libc/pull/4552)) +- FreeBSD: Add `in_conninfo` ([#4482](https://github.com/rust-lang/libc/pull/4482)) +- FreeBSD: Add `xinpgen` and related types ([#4482](https://github.com/rust-lang/libc/pull/4482)) +- FreeBSD: Add `xktls_session` ([#4482](https://github.com/rust-lang/libc/pull/4482)) +- Haiku: Add functionality from `libbsd` ([#4221](https://github.com/rust-lang/libc/pull/4221)) +- Linux: Add `SECBIT_*` ([#4480](https://github.com/rust-lang/libc/pull/4480)) +- NetBSD, OpenBSD: Export `ioctl` request generator macros ([#4460](https://github.com/rust-lang/libc/pull/4460)) +- NetBSD: Add `ptsname_r` ([#4608](https://github.com/rust-lang/libc/pull/4608)) +- RISCV32: Add time-related syscalls ([#4612](https://github.com/rust-lang/libc/pull/4612)) +- Solarish: Add `strftime*` ([#4453](https://github.com/rust-lang/libc/pull/4453)) +- linux: Add `EXEC_RESTRICT_*` and `EXEC_DENY_*` ([#4545](https://github.com/rust-lang/libc/pull/4545)) + +### Changed + +- AIX: Add `const` to signatures to be consistent with other platforms ([#4563](https://github.com/rust-lang/libc/pull/4563)) + +### Fixed + +- AIX: Fix the type of `struct statvfs.f_fsid` ([#4576](https://github.com/rust-lang/libc/pull/4576)) +- AIX: Fix the type of constants for the `ioctl` `request` argument ([#4582](https://github.com/rust-lang/libc/pull/4582)) +- AIX: Fix the types of `stat{,64}.st_*tim` ([#4597](https://github.com/rust-lang/libc/pull/4597)) +- AIX: Use unique `errno` values ([#4507](https://github.com/rust-lang/libc/pull/4507)) +- Build: Fix an incorrect `target_os` -> `target_arch` check ([#4550](https://github.com/rust-lang/libc/pull/4550)) +- FreeBSD: Fix the type of `xktls_session_onedir.ifnet` ([#4552](https://github.com/rust-lang/libc/pull/4552)) +- Mips64 musl: Fix the type of `nlink_t` ([#4509](https://github.com/rust-lang/libc/pull/4509)) +- Mips64 musl: Use a special MIPS definition of `stack_t` ([#4528](https://github.com/rust-lang/libc/pull/4528)) +- Mips64: Fix `SI_TIMER`, `SI_MESGQ` and `SI_ASYNCIO` definitions ([#4529](https://github.com/rust-lang/libc/pull/4529)) +- Musl Mips64: Swap the order of `si_errno` and `si_code` in `siginfo_t` ([#4530](https://github.com/rust-lang/libc/pull/4530)) +- Musl Mips64: Use a special MIPS definition of `statfs` ([#4527](https://github.com/rust-lang/libc/pull/4527)) +- Musl: Fix the definition of `fanotify_event_metadata` ([#4510](https://github.com/rust-lang/libc/pull/4510)) +- NetBSD: Correct `enum fae_action` to be `#[repr(C)]` ([#60a8cfd5](https://github.com/rust-lang/libc/commit/60a8cfd564f83164d45b9533ff7a0d7371878f2a)) +- PSP: Correct `char` -> `c_char` ([eaab4fc3](https://github.com/rust-lang/libc/commit/eaab4fc3f05dc646a953d4fd5ba46dfa1f8bd6f6)) +- PowerPC musl: Fix `termios` definitions ([#4518](https://github.com/rust-lang/libc/pull/4518)) +- PowerPC musl: Fix the definition of `EDEADLK` ([#4517](https://github.com/rust-lang/libc/pull/4517)) +- PowerPC musl: Fix the definition of `NCCS` ([#4513](https://github.com/rust-lang/libc/pull/4513)) +- PowerPC musl: Fix the definitions of `MAP_LOCKED` and `MAP_NORESERVE` ([#4516](https://github.com/rust-lang/libc/pull/4516)) +- PowerPC64 musl: Fix the definition of `shmid_ds` ([#4519](https://github.com/rust-lang/libc/pull/4519)) + +### Deprecated + +- Linux: `MAP_32BIT` is only defined on x86 on non-x86 architectures ([#4511](https://github.com/rust-lang/libc/pull/4511)) + +### Removed + +- AIX: Remove duplicate constant definitions `FIND` and `ENTER` ([#4588](https://github.com/rust-lang/libc/pull/4588)) +- s390x musl: Remove `O_FSYNC` ([#4515](https://github.com/rust-lang/libc/pull/4515)) +- s390x musl: Remove `RTLD_DEEPBIND` ([#4515](https://github.com/rust-lang/libc/pull/4515)) + + ## [0.2.174](https://github.com/rust-lang/libc/compare/0.2.173...0.2.174) - 2025-06-17 ### Added diff --git a/Cargo.toml b/Cargo.toml index eb60f04af2f85..afeb07bc7c993 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.174" +version = "0.2.175" keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml"] From 84e26e6b166a6634d679fbf44e957102846b8a03 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 11 Aug 2025 01:51:12 -0500 Subject: [PATCH 0782/1228] Update the lockfile The release CI job didn't like that the `libc` dependency wasn't up to date. --- Cargo.lock | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 76360464c7c7e..f53314d8d3ba2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -41,9 +41,9 @@ checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" [[package]] name = "cc" -version = "1.2.29" +version = "1.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1599538de2394445747c8cf7935946e3cc27e9625f889d979bfb2aaf569362" +checksum = "2352e5597e9c544d5e6d9c95190d5d27738ade584fa8db0a16e130e5c2b5296e" dependencies = [ "shlex", ] @@ -95,7 +95,7 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" dependencies = [ - "libc 0.2.174 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.174", "redox_users", "winapi", ] @@ -107,7 +107,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18495ec4aced5922809efe4d2862918ff0e8d75e122bde57bba9bae45965256a" dependencies = [ "garando_pos", - "libc 0.2.174 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.174", "serde", "term", "unicode-xid", @@ -144,7 +144,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if 1.0.1", - "libc 0.2.174 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.174", "wasi", ] @@ -163,15 +163,15 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "libc" version = "0.2.174" -dependencies = [ - "rustc-std-workspace-core", -] +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "libc" -version = "0.2.174" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" +version = "0.2.175" +dependencies = [ + "rustc-std-workspace-core", +] [[package]] name = "libc-test" @@ -182,7 +182,7 @@ dependencies = [ "cfg-if 1.0.1", "ctest2", "glob", - "libc 0.2.174", + "libc 0.2.175", "proc-macro2", "regex", "syn", @@ -190,12 +190,12 @@ dependencies = [ [[package]] name = "libredox" -version = "0.1.4" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" +checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ "bitflags 2.9.1", - "libc 0.2.174 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.174", ] [[package]] @@ -212,9 +212,9 @@ checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "beef09f85ae72cea1ef96ba6870c51e6382ebfa4f0e85b643459331f3daa5be0" dependencies = [ "unicode-ident", ] @@ -317,9 +317,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.142" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" dependencies = [ "itoa", "memchr", From 50167c7a285de2415be115530b0dc0d9161f9931 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sun, 27 Jul 2025 14:57:27 +0100 Subject: [PATCH 0783/1228] haiku adding accept4 posix call [ref](https://github.com/haiku/haiku/commit/6beff0d1633e7e60dce1ec31ce7023fd84e1d638) (backport ) (cherry picked from commit 5fd26264d89c95e301fe83f6e0333711035760ad) --- src/unix/haiku/mod.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 71eb890d30452..124024e207d5c 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1261,6 +1261,8 @@ pub const SOCK_STREAM: c_int = 1; pub const SOCK_DGRAM: c_int = 2; pub const SOCK_RAW: c_int = 3; pub const SOCK_SEQPACKET: c_int = 5; +pub const SOCK_NONBLOCK: c_int = 0x00040000; +pub const SOCK_CLOEXEC: c_int = 0x00080000; pub const SOL_SOCKET: c_int = -1; pub const SO_ACCEPTCONN: c_int = 0x00000001; @@ -1789,6 +1791,13 @@ extern "C" { address_len: crate::socklen_t, ) -> c_int; + pub fn accept4( + socket: c_int, + address: *mut crate::sockaddr, + addressLength: *mut crate::socklen_t, + flags: c_int, + ) -> c_int; + pub fn writev(fd: c_int, iov: *const crate::iovec, count: c_int) -> ssize_t; pub fn readv(fd: c_int, iov: *const crate::iovec, count: c_int) -> ssize_t; From 3d190b07a7220c607dc1225dd2a8bc61646c0a8a Mon Sep 17 00:00:00 2001 From: mbyx Date: Mon, 11 Aug 2025 10:03:26 +0500 Subject: [PATCH 0784/1228] libc: add padding struct (backport ) (cherry picked from commit bbafd450b7b03f0a0248efbae99b563b04bdb10a) --- libc-test/test/check_style.rs | 2 +- src/macros.rs | 8 ++++++++ src/types.rs | 18 ++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 src/types.rs diff --git a/libc-test/test/check_style.rs b/libc-test/test/check_style.rs index 24f793e4feb86..d1d7fdf4aa150 100644 --- a/libc-test/test/check_style.rs +++ b/libc-test/test/check_style.rs @@ -20,7 +20,7 @@ use style::{Result, StyleChecker}; const SKIP_PREFIXES: &[&str] = &[ // Don't run the style checker on the reorganized portion of the crate while we figure // out what style we want. - "new/", + "new/", "types.rs", ]; #[test] diff --git a/src/macros.rs b/src/macros.rs index d0a55fa2fca29..b8286db2812b7 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -64,6 +64,8 @@ macro_rules! cfg_if { /// Create an internal crate prelude with `core` reexports and common types. macro_rules! prelude { () => { + mod types; + /// Frequently-used types that are available on all platforms /// /// We need to reexport the core types so this works with `rust-dep-of-std`. @@ -72,14 +74,20 @@ macro_rules! prelude { #[allow(unused_imports)] pub(crate) use ::core::clone::Clone; #[allow(unused_imports)] + pub(crate) use ::core::default::Default; + #[allow(unused_imports)] pub(crate) use ::core::marker::{Copy, Send, Sync}; #[allow(unused_imports)] pub(crate) use ::core::option::Option; #[allow(unused_imports)] + pub(crate) use ::core::prelude::v1::derive; + #[allow(unused_imports)] pub(crate) use ::core::{fmt, hash, iter, mem}; #[allow(unused_imports)] pub(crate) use mem::{align_of, align_of_val, size_of, size_of_val}; + #[allow(unused_imports)] + pub(crate) use crate::types::Padding; // Commonly used types defined in this crate #[allow(unused_imports)] pub(crate) use crate::{ diff --git a/src/types.rs b/src/types.rs new file mode 100644 index 0000000000000..d972d2390c9cd --- /dev/null +++ b/src/types.rs @@ -0,0 +1,18 @@ +//! Platform-agnostic support types. + +use core::mem::MaybeUninit; + +use crate::prelude::*; + +/// A transparent wrapper over `MaybeUninit` to represent uninitialized padding +/// while providing `Default`. +#[allow(unused)] +#[repr(transparent)] +#[derive(Clone, Copy)] +pub(crate) struct Padding(MaybeUninit); + +impl Default for Padding { + fn default() -> Self { + Self(MaybeUninit::zeroed()) + } +} From a97a0b53fb7faf5f99cd720ab12b1b8a5bf9f950 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Mon, 15 Sep 2025 15:18:27 +0800 Subject: [PATCH 0785/1228] Move deprecated attribute from `extern "C"` block to functions Fixes `useless_deprecated` error. --- src/unix/bsd/apple/mod.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 0535336e34511..a4e0a4c7c9424 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -6199,10 +6199,11 @@ cfg_if! { // These require a dependency on `libiconv`, and including this when built as // part of `std` means every Rust program gets it. Ideally we would have a link // modifier to only include these if they are used, but we do not. -#[deprecated(note = "Will be removed in 1.0 to avoid the `iconv` dependency")] #[cfg_attr(not(feature = "rustc-dep-of-std"), link(name = "iconv"))] extern "C" { + #[deprecated(note = "Will be removed in 1.0 to avoid the `iconv` dependency")] pub fn iconv_open(tocode: *const c_char, fromcode: *const c_char) -> iconv_t; + #[deprecated(note = "Will be removed in 1.0 to avoid the `iconv` dependency")] pub fn iconv( cd: iconv_t, inbuf: *mut *mut c_char, @@ -6210,6 +6211,7 @@ extern "C" { outbuf: *mut *mut c_char, outbytesleft: *mut size_t, ) -> size_t; + #[deprecated(note = "Will be removed in 1.0 to avoid the `iconv` dependency")] pub fn iconv_close(cd: iconv_t) -> c_int; } From 9bc9eab82e3bd45cf84dad0b2174914a5ead965f Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 19 Sep 2025 00:47:40 -0500 Subject: [PATCH 0786/1228] test: Add basic configuration to use ctest-next Set up a Cargo dependency on ctest-next, which is now published as a beta version of ctest. Includes a backport of only the libc-test portions of d8cc87845f84 ("ctest-next: miscellaneous filtering bug fixes") to reduce conflicts with future cherry picks. Co-authored-by: mbyx --- Cargo.lock | 115 +++++++++++++++++++++++++++++++++-- libc-test/Cargo.toml | 7 +++ libc-test/build.rs | 13 ++++ libc-test/test/ctest_next.rs | 5 ++ 4 files changed, 136 insertions(+), 4 deletions(-) create mode 100644 libc-test/test/ctest_next.rs diff --git a/Cargo.lock b/Cargo.lock index f53314d8d3ba2..26e312b8408ff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,6 +27,57 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" +[[package]] +name = "askama" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f75363874b771be265f4ffe307ca705ef6f3baa19011c149da8674a87f1b75c4" +dependencies = [ + "askama_derive", + "itoa", + "percent-encoding", + "serde", + "serde_json", +] + +[[package]] +name = "askama_derive" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "129397200fe83088e8a68407a8e2b1f826cf0086b21ccdb866a722c8bcd3a94f" +dependencies = [ + "askama_parser", + "basic-toml", + "memchr", + "proc-macro2", + "quote", + "rustc-hash", + "serde", + "serde_derive", + "syn", +] + +[[package]] +name = "askama_parser" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6ab5630b3d5eaf232620167977f95eb51f3432fc76852328774afbd242d4358" +dependencies = [ + "memchr", + "serde", + "serde_derive", + "winnow", +] + +[[package]] +name = "basic-toml" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba62675e8242a4c4e806d12f11d136e626e6c8361d6b829310732241652a178a" +dependencies = [ + "serde", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -64,6 +115,20 @@ checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" name = "ctest" version = "0.1.0" +[[package]] +name = "ctest" +version = "0.5.0-beta.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af3dc06650f831a3845f2493213c01ebe1dc1cd7bea271d26766a38dc6e72a3f" +dependencies = [ + "askama", + "cc", + "proc-macro2", + "quote", + "syn", + "thiserror 2.0.16", +] + [[package]] name = "ctest-next" version = "0.1.0" @@ -180,6 +245,7 @@ dependencies = [ "annotate-snippets", "cc", "cfg-if 1.0.1", + "ctest 0.5.0-beta.0", "ctest2", "glob", "libc 0.2.175", @@ -210,11 +276,17 @@ version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + [[package]] name = "proc-macro2" -version = "1.0.96" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beef09f85ae72cea1ef96ba6870c51e6382ebfa4f0e85b643459331f3daa5be0" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] @@ -236,7 +308,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -268,6 +340,12 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + [[package]] name = "rustc-std-workspace-core" version = "1.0.1" @@ -360,7 +438,16 @@ version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +dependencies = [ + "thiserror-impl 2.0.16", ] [[package]] @@ -374,6 +461,17 @@ dependencies = [ "syn", ] +[[package]] +name = "thiserror-impl" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "unicode-ident" version = "1.0.18" @@ -419,3 +517,12 @@ name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "winnow" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +dependencies = [ + "memchr", +] diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 32d98257e335e..0021b2a6b0326 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -22,6 +22,8 @@ annotate-snippets = { version = "0.11.5", features = ["testing-colors"] } cc = "1.2.29" # FIXME: Use fork ctest until the maintainer gets back. ctest2 = "0.4.3" +# Use the in-tree `ctest` from the `main` branch via crates.io +ctest_next = { version = "0.5.0-beta.0", package = "ctest" } regex = "1.11.1" [features] @@ -35,6 +37,11 @@ name = "ctest" path = "test/ctest.rs" harness = false +[[test]] +name = "ctest_next" +path = "test/ctest_next.rs" +harness = false + [[test]] name = "linux-fcntl" path = "test/linux_fcntl.rs" diff --git a/libc-test/build.rs b/libc-test/build.rs index 8cb82e8a8d833..ac6c6d3f1add5 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -84,6 +84,11 @@ fn ctest_cfg() -> ctest::TestGenerator { cfg } +#[expect(unused)] +fn ctest_next_cfg() -> ctest_next::TestGenerator { + ctest_next::TestGenerator::new() +} + fn do_semver() { let mut out = PathBuf::from(env::var("OUT_DIR").unwrap()); out.push("semver.rs"); @@ -171,6 +176,14 @@ fn main() { let re = regex::bytes::Regex::new(r"(?-u:\b)crate::").unwrap(); copy_dir_hotfix(Path::new("../src"), &hotfix_dir, &re, b"::"); + // FIXME(ctest): Only needed until ctest-next supports all tests. + // Provide a default for targets that don't yet use `ctest-next`. + std::fs::write( + format!("{}/main_next.rs", std::env::var("OUT_DIR").unwrap()), + "\nfn main() { println!(\"test result: ok\"); }\n", + ) + .unwrap(); + do_cc(); do_ctest(); do_semver(); diff --git a/libc-test/test/ctest_next.rs b/libc-test/test/ctest_next.rs new file mode 100644 index 0000000000000..68ff7c619e635 --- /dev/null +++ b/libc-test/test/ctest_next.rs @@ -0,0 +1,5 @@ +#[allow(deprecated)] +#[allow(unused_imports)] +use libc::*; + +include!(concat!(env!("OUT_DIR"), "/main_next.rs")); From 2a45f3b4f50a17e98116a21baa753f99bf6f8639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Mon, 11 Aug 2025 18:11:52 +0200 Subject: [PATCH 0787/1228] freebsd15: Mark kinfo_proc as non-exhaustive struct kinfo_proc may be extended again in the future. Add #[non_exhaustive] to let the compiler and other tooling know. (backport ) (cherry picked from commit 9ee2d2a0f6180e092ada3f9a5960a31b290fa755) --- src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index 97912bdebcdb2..778c5ee018e34 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -50,6 +50,7 @@ s! { _priv: [c_ulong; 8], } + #[non_exhaustive] pub struct kinfo_proc { /// Size of this structure. pub ki_structsize: c_int, From 49225cebf76aa9bbd9389ae4536321d9d66c03c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Mon, 11 Aug 2025 20:41:55 +0200 Subject: [PATCH 0788/1228] freebsd: Limit P_IDLEPROC to FreeBSD 15 `P_IDLEPROC` was introduced in FreeBSD 15, in commit 33be1632047c ("racct: Fix accounting of CPU time for the system idle process"). https://github.com/freebsd/freebsd-src/commit/33be1632047c05dbfcc139476e05f49c3a86d560 (backport ) (cherry picked from commit ac0e2b6578ecc0fa9749dbd25a30f60762a74d78) --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index f64d079fd04c5..aac1eaef7b16b 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -4241,6 +4241,7 @@ pub const P_CONTROLT: c_int = 0x00000002; pub const P_KPROC: c_int = 0x00000004; #[deprecated(since = "1.0", note = "Replaced in FreeBSD 15 by P_IDLEPROC")] pub const P_UNUSED3: c_int = 0x00000008; +#[cfg(freebsd15)] pub const P_IDLEPROC: c_int = 0x00000008; pub const P_PPWAIT: c_int = 0x00000010; pub const P_PROFIL: c_int = 0x00000020; From ba11a59c5a4d4c7ba76bf94581d9ea8e9712b781 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Mon, 11 Aug 2025 20:42:57 +0200 Subject: [PATCH 0789/1228] freebsd: Limit mcontext_t::mc_tlsbase to FreeBSD 15 mcontext_t::mc_tlsbase was introduced in FreeBSD 15, in commit eea3e4dd9703 ("amd64: add mc_tlsbase member to mcontext"). https://github.com/freebsd/freebsd-src/commit/eea3e4dd9703a252509d75814049aa8da5007ebb (backport ) (cherry picked from commit 3d93bf5894136d6baf66ccecf6ecf5275908f082) --- src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index fa85f11ce2812..29f11b039b080 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -98,6 +98,7 @@ s_no_extra_traits! { } #[repr(align(16))] + #[non_exhaustive] pub struct mcontext_t { pub mc_onstack: register_t, pub mc_rdi: register_t, @@ -136,7 +137,11 @@ s_no_extra_traits! { pub mc_gsbase: register_t, pub mc_xfpustate: register_t, pub mc_xfpustate_len: register_t, + #[cfg(any(freebsd12, freebsd13, freebsd14))] + pub mc_spare: [c_long; 4], + #[cfg(freebsd15)] pub mc_tlsbase: register_t, + #[cfg(freebsd15)] pub mc_spare: [c_long; 3], } } From 0a42f90fc2bc0c458d236d10d43efa2384ab0a82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Mon, 11 Aug 2025 10:08:21 +0200 Subject: [PATCH 0790/1228] Fix a few typos They were found with `codespell`. (backport ) (cherry picked from commit 33b0290967ac8de914ee4602ddb93650b4c8c20f) [ drop changes to ctest-next that don't apply - Trevor ] --- src/unix/linux_like/linux/musl/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 8d4a5ce90b93d..2c0cc87444d63 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -925,7 +925,7 @@ extern "C" { pub fn dirname(path: *mut c_char) -> *mut c_char; pub fn basename(path: *mut c_char) -> *mut c_char; - // Addded in `musl` 1.1.20 + // Added in `musl` 1.1.20 pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; // Added in `musl` 1.1.24 From 2d0a106f9b4fdad62221840159b022f7f59c5ff0 Mon Sep 17 00:00:00 2001 From: Ryan Mehri Date: Mon, 11 Aug 2025 12:49:23 -0400 Subject: [PATCH 0791/1228] fix: simplify epoll_event packed check (backport ) (cherry picked from commit 8bd31d7b0996fa4678364a15de7c90834c7033dc) --- src/unix/linux_like/mod.rs | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index b044caf109ee1..2beec93b91777 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -278,14 +278,7 @@ cfg_if! { s_no_extra_traits! { #[cfg_attr( - any( - all( - target_arch = "x86", - not(target_env = "musl"), - not(target_os = "android") - ), - target_arch = "x86_64" - ), + any(target_arch = "x86_64", all(target_arch = "x86", target_env = "gnu")), repr(packed) )] pub struct epoll_event { From 0a67633a514f3b01714564994801922a857cd2be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Mon, 11 Aug 2025 09:52:12 +0200 Subject: [PATCH 0792/1228] triagebot.toml: Fix src/new/linux_uapi path Commit 3356f1217 ("Begin source reorganization with `linux/can.h`") introduced a new directory structure for reorganizing the source code. It is called `src/new/` everywhere but in triagebot.toml, likely because `src/reorg/` is an older name used during development. (backport ) (cherry picked from commit 627a530db467db4d7278fbfaea8cb22864cf47ac) --- triagebot.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/triagebot.toml b/triagebot.toml index 54d848f8f9cd3..6a6dfccd18e21 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -63,7 +63,7 @@ trigger_files = ["src/unix/solarish/illumos.rs"] [autolabel."O-linux"] trigger_files = [ "src/unix/linux_like/linux", - "src/reorg/linux_uapi", + "src/new/linux_uapi", ] [autolabel."O-linux-like"] From 48799ef5da50a055a662cbb99fde1b9ef2be719e Mon Sep 17 00:00:00 2001 From: mbyx Date: Tue, 12 Aug 2025 15:13:55 +0500 Subject: [PATCH 0793/1228] libc: port windows to use ctest-next (backport ) (cherry picked from commit acd869f309083c3ca2d6095722b2ff19b157973b) --- libc-test/Cargo.toml | 5 --- libc-test/build.rs | 81 +++++++++++++++--------------------- libc-test/test/ctest.rs | 3 +- libc-test/test/ctest_next.rs | 5 --- 4 files changed, 36 insertions(+), 58 deletions(-) delete mode 100644 libc-test/test/ctest_next.rs diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 0021b2a6b0326..a2c5062e8c55b 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -37,11 +37,6 @@ name = "ctest" path = "test/ctest.rs" harness = false -[[test]] -name = "ctest_next" -path = "test/ctest_next.rs" -harness = false - [[test]] name = "linux-fcntl" path = "test/linux_fcntl.rs" diff --git a/libc-test/build.rs b/libc-test/build.rs index ac6c6d3f1add5..556228001ffbf 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -84,7 +84,6 @@ fn ctest_cfg() -> ctest::TestGenerator { cfg } -#[expect(unused)] fn ctest_next_cfg() -> ctest_next::TestGenerator { ctest_next::TestGenerator::new() } @@ -176,14 +175,6 @@ fn main() { let re = regex::bytes::Regex::new(r"(?-u:\b)crate::").unwrap(); copy_dir_hotfix(Path::new("../src"), &hotfix_dir, &re, b"::"); - // FIXME(ctest): Only needed until ctest-next supports all tests. - // Provide a default for targets that don't yet use `ctest-next`. - std::fs::write( - format!("{}/main_next.rs", std::env::var("OUT_DIR").unwrap()), - "\nfn main() { println!(\"test result: ok\"); }\n", - ) - .unwrap(); - do_cc(); do_ctest(); do_semver(); @@ -887,7 +878,8 @@ fn test_windows(target: &str) { let gnu = target.contains("gnu"); let i686 = target.contains("i686"); - let mut cfg = ctest_cfg(); + let mut cfg = ctest_next_cfg(); + cfg.skip_private(true); if target.contains("msvc") { cfg.flag("/wd4324"); } @@ -915,41 +907,37 @@ fn test_windows(target: &str) { [!gnu]: "Winsock2.h", } - cfg.type_name(move |ty, is_struct, is_union| { + cfg.rename_struct_ty(|ty| { match ty { // Just pass all these through, no need for a "struct" prefix - "FILE" | "DIR" | "Dl_info" => ty.to_string(), - + "FILE" | "DIR" | "Dl_info" => ty.to_string().into(), + t if t.ends_with("_t") => t.to_string().into(), + // Windows uppercase structs don't have `struct` in fr.into()ont: + t if ty.chars().next().unwrap().is_uppercase() => t.to_string().into(), + "stat" => "struct __stat64".to_string().into(), + "utimbuf" => "struct __utimbuf64".to_string().into(), + _ => None, + } + }); + cfg.rename_type(move |ty| { + match ty { // FIXME(windows): these don't exist: - "time64_t" => "__time64_t".to_string(), - "ssize_t" => "SSIZE_T".to_string(), - - "sighandler_t" if !gnu => "_crt_signal_t".to_string(), - "sighandler_t" if gnu => "__p_sig_fn_t".to_string(), - - t if is_union => format!("union {t}"), - t if t.ends_with("_t") => t.to_string(), + "time64_t" => "__time64_t".to_string().into(), + "ssize_t" => "SSIZE_T".to_string().into(), - // Windows uppercase structs don't have `struct` in front: - t if is_struct => { - if ty.chars().next().unwrap().is_uppercase() { - t.to_string() - } else if t == "stat" { - "struct __stat64".to_string() - } else if t == "utimbuf" { - "struct __utimbuf64".to_string() - } else { - // put `struct` in front of all structs: - format!("struct {t}") - } - } - t => t.to_string(), + "sighandler_t" if !gnu => "_crt_signal_t".to_string().into(), + "sighandler_t" if gnu => "__p_sig_fn_t".to_string().into(), + _ => None, } }); - cfg.fn_cname(move |name, cname| cname.unwrap_or(name).to_string()); + cfg.rename_fn(move |func| { + func.link_name() + .map(|l| l.to_string()) + .or(func.ident().to_string().into()) + }); - cfg.skip_type(move |name| match name { + cfg.skip_alias(move |alias| match alias.ident() { "SSIZE_T" if !gnu => true, "ssize_t" if !gnu => true, // FIXME(windows): The size and alignment of this type are incorrect @@ -957,7 +945,8 @@ fn test_windows(target: &str) { _ => false, }); - cfg.skip_struct(move |ty| { + cfg.skip_struct(move |struct_| { + let ty = struct_.ident(); if ty.starts_with("__c_anonymous_") { return true; } @@ -967,9 +956,10 @@ fn test_windows(target: &str) { _ => false, } }); + cfg.skip_union(move |union_| union_.ident().starts_with("__c_anonymous_")); - cfg.skip_const(move |name| { - match name { + cfg.skip_const(move |constant| { + match constant.ident() { // FIXME(windows): API error: // SIG_ERR type is "void (*)(int)", not "int" "SIG_ERR" | @@ -981,10 +971,7 @@ fn test_windows(target: &str) { } }); - cfg.skip_field(move |s, field| match s { - "CONTEXT" if field == "Fp" => true, - _ => false, - }); + cfg.skip_struct_field(move |s, field| s.ident() == "CONTEXT" && field.ident() == "Fp"); // FIXME(windows): All functions point to the wrong addresses? cfg.skip_fn_ptrcheck(|_| true); @@ -999,8 +986,8 @@ fn test_windows(target: &str) { } }); - cfg.skip_fn(move |name| { - match name { + cfg.skip_fn(move |func| { + match func.ident() { // FIXME: https://github.com/rust-lang/libc/issues/1272 "execv" | "execve" | "execvp" | "execvpe" => true, @@ -1008,7 +995,7 @@ fn test_windows(target: &str) { } }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); + ctest_next::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn test_redox(target: &str) { diff --git a/libc-test/test/ctest.rs b/libc-test/test/ctest.rs index 0b48c4af2975e..cc6da549e7cae 100644 --- a/libc-test/test/ctest.rs +++ b/libc-test/test/ctest.rs @@ -1,5 +1,6 @@ -#![allow(bad_style, improper_ctypes, deprecated)] +#![allow(deprecated)] +#[allow(unused_imports)] use libc::*; include!(concat!(env!("OUT_DIR"), "/ctest_output.rs")); diff --git a/libc-test/test/ctest_next.rs b/libc-test/test/ctest_next.rs deleted file mode 100644 index 68ff7c619e635..0000000000000 --- a/libc-test/test/ctest_next.rs +++ /dev/null @@ -1,5 +0,0 @@ -#[allow(deprecated)] -#[allow(unused_imports)] -use libc::*; - -include!(concat!(env!("OUT_DIR"), "/main_next.rs")); From acaadf3cc4acedb96866e0519a20850704ee426f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Tue, 12 Aug 2025 09:50:03 +0200 Subject: [PATCH 0794/1228] CI: Upgrade to FreeBSD 14.3 FreeBSD 14.3 was released on June 10, 2025: https://www.freebsd.org/releases/14.3R/announce/ (backport ) (cherry picked from commit d54af1798f91137f754b74377a4290ad28620456) --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index 7985cb854bbe3..fb627124e5b67 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -18,7 +18,7 @@ task: image_family: freebsd-13-4 - name: nightly freebsd-14 x86_64 freebsd_instance: - image: freebsd-14-2-release-amd64-ufs + image: freebsd-14-3-release-amd64-ufs - name: nightly freebsd-15 x86_64 freebsd_instance: image_family: freebsd-15-0-snap From bde1ebe95ac2125e29e4b3d68e3686f06b1caaaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Tue, 12 Aug 2025 10:41:38 +0200 Subject: [PATCH 0795/1228] freebsd14: Add st_fileref to struct stat st_fileref was backported to FreeBSD 14 with the 14.3 release. https://github.com/freebsd/freebsd-src/commit/86e95bb26ad8f357ddc6aef655b56d695b01fa7e (backport ) (cherry picked from commit dc3bf0adbb18e1b8ba8595a0ccee0896d2987407) --- src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index de1001b26fab9..4a65d59d5f3b1 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -234,6 +234,7 @@ s! { pub ki_tdflags: c_long, } + #[non_exhaustive] pub struct stat { pub st_dev: crate::dev_t, pub st_ino: crate::ino_t, @@ -265,7 +266,8 @@ s! { pub st_blksize: crate::blksize_t, pub st_flags: crate::fflags_t, pub st_gen: u64, - pub st_spare: [u64; 10], + pub st_filerev: u64, + pub st_spare: [u64; 9], } } From 80b11d685b4f6421a9578ff7b9911b291baee973 Mon Sep 17 00:00:00 2001 From: Josh Megnauth Date: Sun, 10 Aug 2025 02:39:38 -0400 Subject: [PATCH 0796/1228] Enable strftime, mkostemp[s] on Redox Redox's relibc supports: * mkostemp * mkostemps * strftime (backport ) (cherry picked from commit 8380bad96de3d2ffbc1b1070213fbfc9d31f62dd) --- libc-test/semver/redox.txt | 3 +++ src/unix/redox/mod.rs | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/libc-test/semver/redox.txt b/libc-test/semver/redox.txt index 3c3c52eabb4f0..3c0bd87f686d4 100644 --- a/libc-test/semver/redox.txt +++ b/libc-test/semver/redox.txt @@ -224,6 +224,8 @@ lockf login_tty madvise memalign +mkostemp +mkostemps nice open_memstream open_wmemstream @@ -240,6 +242,7 @@ sigtimedwait sigwait strcasecmp strcasestr +strftime strlcat strlcpy strncasecmp diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 7420fba229912..4446473a3ab3a 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1207,6 +1207,8 @@ extern "C" { tokens: *const *mut c_char, valuep: *mut *mut c_char, ) -> c_int; + pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int; + pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int; pub fn reallocarray(ptr: *mut c_void, nmemb: size_t, size: size_t) -> *mut c_void; // string.h @@ -1276,6 +1278,12 @@ extern "C" { // time.h pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut crate::timezone) -> c_int; pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; + pub fn strftime( + s: *mut c_char, + max: size_t, + format: *const c_char, + tm: *const crate::tm, + ) -> size_t; // utmp.h pub fn login_tty(fd: c_int) -> c_int; From 3a650dfdcb082f82d5d7f8449a107ac035252ede Mon Sep 17 00:00:00 2001 From: mbyx Date: Wed, 13 Aug 2025 11:11:18 +0500 Subject: [PATCH 0797/1228] libc: port freebsd to use ctest-next (backport ) (cherry picked from commit 673b10eb7aa2d437aae67295f8cefa26ed366973) --- libc-test/build.rs | 77 +++++++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 38 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 556228001ffbf..f669ed6f86c48 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -85,7 +85,9 @@ fn ctest_cfg() -> ctest::TestGenerator { } fn ctest_next_cfg() -> ctest_next::TestGenerator { - ctest_next::TestGenerator::new() + let mut cfg = ctest_next::TestGenerator::new(); + cfg.skip_private(true); + cfg } fn do_semver() { @@ -2397,7 +2399,7 @@ fn test_android(target: &str) { fn test_freebsd(target: &str) { assert!(target.contains("freebsd")); - let mut cfg = ctest_cfg(); + let mut cfg = ctest_next_cfg(); let freebsd_ver = which_freebsd(); @@ -2539,7 +2541,13 @@ fn test_freebsd(target: &str) { "wchar.h", } - cfg.type_name(move |ty, is_struct, is_union| { + cfg.rename_type(|ty| match ty { + // FIXME(freebsd): https://github.com/rust-lang/libc/issues/1273 + "sighandler_t" => Some("sig_t".to_string()), + _ => None, + }); + + cfg.rename_struct_ty(|ty| { match ty { // Just pass all these through, no need for a "struct" prefix "FILE" @@ -2554,27 +2562,20 @@ fn test_freebsd(target: &str) { | "devstat_support_flags" | "devstat_type_flags" | "devstat_match_flags" - | "devstat_priority" => ty.to_string(), - - // FIXME(freebsd): https://github.com/rust-lang/libc/issues/1273 - "sighandler_t" => "sig_t".to_string(), - - t if is_union => format!("union {t}"), - - t if t.ends_with("_t") => t.to_string(), + | "devstat_priority" => Some(ty.to_string()), // sigval is a struct in Rust, but a union in C: - "sigval" => "union sigval".to_string(), + "sigval" => Some("union sigval".to_string()), - // put `struct` in front of all structs:. - t if is_struct => format!("struct {t}"), + t if t.ends_with("_t") => Some(t.to_string()), - t => t.to_string(), + _ => None, } }); - cfg.field_name(move |struct_, field| { - match field { + cfg.rename_struct_field(|struct_, field_| { + let struct_ = struct_.ident(); + let replacement = match field_.ident() { // Our stat *_nsec fields normally don't actually exist but are part // of a timeval struct s if s.ends_with("_nsec") && struct_.starts_with("stat") => { @@ -2588,12 +2589,13 @@ fn test_freebsd(target: &str) { "type_" if struct_ == "input_event" => "type".to_string(), // Field is named `gennum` in Rust because `gen` is a keyword "gennum" if struct_ == "xktls_session_onedir" => "gen".to_string(), - s => s.to_string(), - } + _ => return None, + }; + Some(replacement) }); - cfg.skip_const(move |name| { - match name { + cfg.skip_const(move |constant| { + match constant.ident() { // These constants were introduced in FreeBSD 13: "F_ADD_SEALS" | "F_GET_SEALS" | "F_SEAL_SEAL" | "F_SEAL_SHRINK" | "F_SEAL_GROW" | "F_SEAL_WRITE" @@ -2873,8 +2875,8 @@ fn test_freebsd(target: &str) { } }); - cfg.skip_type(move |ty| { - match ty { + cfg.skip_alias(move |ty| { + match ty.ident() { // the struct "__kvm" is quite tricky to bind so since we only use a pointer to it // for now, it doesn't matter too much... "kvm_t" => true, @@ -2885,7 +2887,9 @@ fn test_freebsd(target: &str) { } }); - cfg.skip_struct(move |ty| { + cfg.skip_union(|u| u.ident().starts_with("__c_anonymous_")); + cfg.skip_struct(move |struct_| { + let ty = struct_.ident(); if ty.starts_with("__c_anonymous_") { return true; } @@ -2930,9 +2934,9 @@ fn test_freebsd(target: &str) { } }); - cfg.skip_fn(move |name| { + cfg.skip_fn(move |func| { // skip those that are manually verified - match name { + match func.ident() { // FIXME: https://github.com/rust-lang/libc/issues/1272 // Also, `execvpe` is introduced in FreeBSD 14.1 "execv" | "execve" | "execvp" | "execvpe" | "fexecve" => true, @@ -2993,18 +2997,12 @@ fn test_freebsd(target: &str) { } }); - cfg.volatile_item(|i| { - use ctest::VolatileItemKind::*; - match i { - // aio_buf is a volatile void** but since we cannot express that in - // Rust types, we have to explicitly tell the checker about it here: - StructField(ref n, ref f) if n == "aiocb" && f == "aio_buf" => true, - _ => false, - } - }); + // aio_buf is a volatile void* but since we cannot express that in + // Rust types, we have to explicitly tell the checker about it here: + cfg.volatile_struct_field(|s, f| s.ident() == "aiocb" && f.ident() == "aio_buf"); - cfg.skip_field(move |struct_, field| { - match (struct_, field) { + cfg.skip_struct_field(move |struct_, field| { + match (struct_.ident(), field.ident()) { // FIXME(freebsd): `sa_sigaction` has type `sighandler_t` but that type is // incorrect, see: https://github.com/rust-lang/libc/issues/1359 ("sigaction", "sa_sigaction") => true, @@ -3079,7 +3077,10 @@ fn test_freebsd(target: &str) { }); } - cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); + // FIXME(ctest): The original ctest bypassed this requirement somehow. + cfg.rename_type(move |ty| (ty == "dot3Vendors").then_some(format!("enum {ty}"))); + + ctest_next::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn test_emscripten(target: &str) { From d730bc33d8bfb06e299e141cbd042895d246e810 Mon Sep 17 00:00:00 2001 From: mbyx Date: Tue, 12 Aug 2025 16:32:37 +0500 Subject: [PATCH 0798/1228] libc: port apple to use ctest-next (backport ) (cherry picked from commit 1e8377c628619a53b20cea7fd87a15c5c424c183) --- libc-test/build.rs | 94 ++++++++++++++++++++-------------------------- 1 file changed, 41 insertions(+), 53 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index f669ed6f86c48..1d9bdae51fc45 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -226,7 +226,8 @@ fn test_apple(target: &str) { let x86_64 = target.contains("x86_64"); let i686 = target.contains("i686"); - let mut cfg = ctest_cfg(); + let mut cfg = ctest_next_cfg(); + cfg.flag("-Wno-deprecated-declarations"); cfg.define("__APPLE_USE_RFC_3542", None); @@ -347,14 +348,14 @@ fn test_apple(target: &str) { [x86_64]: "crt_externs.h", } - cfg.skip_struct(move |ty| { - if ty.starts_with("__c_anonymous_") { - return true; - } - match ty { + // Skip anonymous unions/structs. + cfg.skip_union(|u| u.ident().starts_with("__c_anonymous_")); + cfg.skip_struct(|s| s.ident().starts_with("__c_anonymous_")); + + cfg.skip_struct(|s| { + match s.ident() { // FIXME(union): actually a union "sigval" => true, - // FIXME(macos): The size is changed in recent macOSes. "malloc_zone_t" => true, // it is a moving target, changing through versions @@ -362,16 +363,13 @@ fn test_apple(target: &str) { "tcp_connection_info" => true, // FIXME(macos): The size is changed in recent macOSes. "malloc_introspection_t" => true, - _ => false, } }); - cfg.skip_type(move |ty| { - if ty.starts_with("__c_anonymous_") { - return true; - } - match ty { + cfg.skip_alias(|ty| ty.ident().starts_with("__c_anonymous_")); + cfg.skip_alias(|ty| { + match ty.ident() { // FIXME(macos): Requires the macOS 14.4 SDK. "os_sync_wake_by_address_flags_t" | "os_sync_wait_on_address_flags_t" => true, @@ -382,12 +380,10 @@ fn test_apple(target: &str) { } }); - cfg.skip_const(move |name| { - // They're declared via `deprecated_mach` and we don't support it anymore. - if name.starts_with("VM_FLAGS_") { - return true; - } - match name { + cfg.skip_const(move |constant| { + match constant.ident() { + // They're declared via `deprecated_mach` and we don't support it anymore. + x if x.starts_with("VM_FLAGS_") => true, // These OSX constants are removed in Sierra. // https://developer.apple.com/library/content/releasenotes/General/APIDiffsMacOS10_12/Swift/Darwin.html "KERN_KDENABLE_BG_TRACE" | "KERN_KDDISABLE_BG_TRACE" => true, @@ -407,12 +403,11 @@ fn test_apple(target: &str) { } }); - cfg.skip_fn(move |name| { + cfg.skip_fn(move |func| { // skip those that are manually verified - match name { + match func.ident() { // FIXME: https://github.com/rust-lang/libc/issues/1272 "execv" | "execve" | "execvp" => true, - // close calls the close_nocancel system call "close" => true, @@ -441,8 +436,8 @@ fn test_apple(target: &str) { } }); - cfg.skip_field(move |struct_, field| { - match (struct_, field) { + cfg.skip_struct_field(move |struct_, field| { + match (struct_.ident(), field.ident()) { // FIXME(macos): the array size has been changed since macOS 10.15 ([8] -> [7]). ("statfs", "f_reserved") => true, ("__darwin_arm_neon_state64", "__v") => true, @@ -459,47 +454,39 @@ fn test_apple(target: &str) { } }); - cfg.skip_field_type(move |struct_, field| { - match (struct_, field) { + cfg.skip_struct_field_type(move |struct_, field| { + match (struct_.ident(), field.ident()) { // FIXME(union): actually a union ("sigevent", "sigev_value") => true, _ => false, } }); - cfg.volatile_item(|i| { - use ctest::VolatileItemKind::*; - match i { - StructField(ref n, ref f) if n == "aiocb" && f == "aio_buf" => true, - _ => false, - } + cfg.volatile_struct_field(|s, f| s.ident() == "aiocb" && f.ident() == "aio_buf"); + + cfg.rename_struct_ty(move |ty| { + // Just pass all these through, no need for a "struct" prefix + ["FILE", "DIR", "Dl_info"] + .contains(&ty) + .then_some(ty.to_string()) }); - cfg.type_name(move |ty, is_struct, is_union| { - match ty { - // Just pass all these through, no need for a "struct" prefix - "FILE" | "DIR" | "Dl_info" => ty.to_string(), + // OSX calls this something else + cfg.rename_type(|ty| (ty == "sighandler_t").then_some("sig_t".to_string())); - // OSX calls this something else - "sighandler_t" => "sig_t".to_string(), + cfg.rename_struct_ty(|ty| ty.ends_with("_t").then_some(ty.to_string())); + cfg.rename_union_ty(|ty| ty.ends_with("_t").then_some(ty.to_string())); - t if is_union => format!("union {t}"), - t if t.ends_with("_t") => t.to_string(), - t if is_struct => format!("struct {t}"), - t => t.to_string(), - } - }); - - cfg.field_name(move |struct_, field| { - match field { - s if s.ends_with("_nsec") && struct_.starts_with("stat") => { - s.replace("e_nsec", "espec.tv_nsec") + cfg.rename_struct_field(|s, f| { + match f.ident() { + n if n.ends_with("_nsec") && s.ident().starts_with("stat") => { + Some(n.replace("e_nsec", "espec.tv_nsec")) } // FIXME(macos): sigaction actually contains a union with two variants: // a sa_sigaction with type: (*)(int, struct __siginfo *, void *) // a sa_handler with type sig_t - "sa_sigaction" if struct_ == "sigaction" => "sa_handler".to_string(), - s => s.to_string(), + "sa_sigaction" if s.ident() == "sigaction" => Some("sa_handler".to_string()), + _ => None, } }); @@ -510,7 +497,8 @@ fn test_apple(target: &str) { "uuid_t" | "vol_capabilities_set_t" => true, _ => false, }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); + + ctest_next::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn test_openbsd(target: &str) { @@ -881,7 +869,7 @@ fn test_windows(target: &str) { let i686 = target.contains("i686"); let mut cfg = ctest_next_cfg(); - cfg.skip_private(true); + if target.contains("msvc") { cfg.flag("/wd4324"); } From 03cc8d80f6014a436fcc89a01cc17733b7b63bbd Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Thu, 14 Aug 2025 15:10:30 -0400 Subject: [PATCH 0799/1228] Fix the type of the 4th arguement of getgrnam_r(). (backport ) (cherry picked from commit 8236b564f86744ec040343704e75af814d6244ad) --- src/unix/aix/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index a4e975ad8030e..f9c5a2bf1b78a 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -2927,7 +2927,7 @@ extern "C" { name: *const c_char, grp: *mut crate::group, buf: *mut c_char, - buflen: c_int, + buflen: size_t, result: *mut *mut crate::group, ) -> c_int; pub fn getgrset(user: *const c_char) -> *mut c_char; From 44d4977c232ad5f2c44446b0aaebb7a1dbe6abae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Aug 2025 21:11:43 +0000 Subject: [PATCH 0800/1228] build(deps): bump actions/checkout from 4 to 5 Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] (backport ) (cherry picked from commit c5552f6f2bd5d94cb6ac82eb1ce8b00e17ddfa85) --- .github/workflows/ci.yaml | 12 ++++++------ .github/workflows/publish_0.2.yml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e9c1306af438b..a1906564ad141 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -24,7 +24,7 @@ jobs: runs-on: ubuntu-24.04 timeout-minutes: 10 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Rust toolchain run: ./ci/install-rust.sh && rustup component add rustfmt - name: Check style @@ -38,7 +38,7 @@ jobs: runs-on: ${{ matrix.os }} timeout-minutes: 10 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: rustup update stable --no-self-update - uses: Swatinem/rust-cache@v2 # Here we use the latest stable Rust toolchain already installed by GitHub @@ -61,7 +61,7 @@ jobs: env: TOOLCHAIN: ${{ matrix.toolchain }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Rust toolchain run: ./ci/install-rust.sh @@ -131,7 +131,7 @@ jobs: env: TARGET: ${{ matrix.target }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Rust toolchain run: ./ci/install-rust.sh - uses: Swatinem/rust-cache@v2 @@ -240,7 +240,7 @@ jobs: env: TARGET: ${{ matrix.target }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Rust toolchain run: ./ci/install-rust.sh - uses: Swatinem/rust-cache@v2 @@ -279,7 +279,7 @@ jobs: - x86_64-pc-solaris timeout-minutes: 25 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: test on Solaris uses: vmactions/solaris-vm@v1.1.4 with: diff --git a/.github/workflows/publish_0.2.yml b/.github/workflows/publish_0.2.yml index 768fbcac7d3cc..5ad1e97e1c1dc 100644 --- a/.github/workflows/publish_0.2.yml +++ b/.github/workflows/publish_0.2.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: fetch-depth: 0 - name: Install Rust (rustup) From 16085f37baf4d657aed34fdc42b1ba7b5d2bb75a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Aug 2025 20:27:32 +0000 Subject: [PATCH 0801/1228] build(deps): bump vmactions/solaris-vm from 1.1.4 to 1.1.5 Bumps [vmactions/solaris-vm](https://github.com/vmactions/solaris-vm) from 1.1.4 to 1.1.5. - [Release notes](https://github.com/vmactions/solaris-vm/releases) - [Commits](https://github.com/vmactions/solaris-vm/compare/v1.1.4...v1.1.5) --- updated-dependencies: - dependency-name: vmactions/solaris-vm dependency-version: 1.1.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] (backport ) (cherry picked from commit 10d68a4c2dfa3a08fdf7e4d81f305ea833663dba) --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a1906564ad141..81842e5e6d9da 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -281,7 +281,7 @@ jobs: steps: - uses: actions/checkout@v5 - name: test on Solaris - uses: vmactions/solaris-vm@v1.1.4 + uses: vmactions/solaris-vm@v1.1.5 with: release: "11.4-gcc" usesh: true From c4a8ee43dc080282fb03e1c4fceee574b663b174 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 18 Sep 2025 23:39:30 -0500 Subject: [PATCH 0802/1228] ci: Upgrade Ubuntu docker images to 25.04 24.10 is EOL so we need to bump the images. (backport ) (cherry picked from commit 65da4e4e914a81e610f4862978488b123ae37176) --- ci/docker/aarch64-linux-android/Dockerfile | 2 +- ci/docker/aarch64-unknown-linux-gnu/Dockerfile | 2 +- ci/docker/aarch64-unknown-linux-musl/Dockerfile | 2 +- ci/docker/arm-linux-androideabi/Dockerfile | 2 +- ci/docker/asmjs-unknown-emscripten/Dockerfile | 2 +- ci/docker/i686-linux-android/Dockerfile | 2 +- ci/docker/loongarch64-unknown-linux-gnu/Dockerfile | 2 +- ci/docker/loongarch64-unknown-linux-musl/Dockerfile | 2 +- ci/docker/powerpc64-unknown-linux-gnu/Dockerfile | 2 +- ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile | 2 +- ci/docker/powerpc64le-unknown-linux-musl/Dockerfile | 2 +- ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile | 2 +- ci/docker/s390x-unknown-linux-gnu/Dockerfile | 2 +- ci/docker/s390x-unknown-linux-musl/Dockerfile | 2 +- ci/docker/sparc64-unknown-linux-gnu/Dockerfile | 2 +- ci/docker/wasm32-unknown-emscripten/Dockerfile | 2 +- ci/docker/wasm32-wasip1/Dockerfile | 2 +- ci/docker/wasm32-wasip2/Dockerfile | 2 +- ci/docker/x86_64-linux-android/Dockerfile | 2 +- ci/docker/x86_64-unknown-linux-gnu/Dockerfile | 2 +- ci/docker/x86_64-unknown-linux-gnux32/Dockerfile | 2 +- ci/docker/x86_64-unknown-linux-musl/Dockerfile | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/ci/docker/aarch64-linux-android/Dockerfile b/ci/docker/aarch64-linux-android/Dockerfile index dfd63718a9d0d..8ed15a5234d1e 100644 --- a/ci/docker/aarch64-linux-android/Dockerfile +++ b/ci/docker/aarch64-linux-android/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN dpkg --add-architecture i386 RUN apt-get update diff --git a/ci/docker/aarch64-unknown-linux-gnu/Dockerfile b/ci/docker/aarch64-unknown-linux-gnu/Dockerfile index 00569ddf22c9b..a4faeb4a8b96b 100644 --- a/ci/docker/aarch64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/aarch64-unknown-linux-gnu/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc libc6-dev ca-certificates \ diff --git a/ci/docker/aarch64-unknown-linux-musl/Dockerfile b/ci/docker/aarch64-unknown-linux-musl/Dockerfile index 053ed837b2e7c..f57c5fa6055c2 100644 --- a/ci/docker/aarch64-unknown-linux-musl/Dockerfile +++ b/ci/docker/aarch64-unknown-linux-musl/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc make libc6-dev git curl ca-certificates \ diff --git a/ci/docker/arm-linux-androideabi/Dockerfile b/ci/docker/arm-linux-androideabi/Dockerfile index 82f89f48e915c..e81623f7bf0e7 100644 --- a/ci/docker/arm-linux-androideabi/Dockerfile +++ b/ci/docker/arm-linux-androideabi/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN dpkg --add-architecture i386 RUN apt-get update diff --git a/ci/docker/asmjs-unknown-emscripten/Dockerfile b/ci/docker/asmjs-unknown-emscripten/Dockerfile index 085e45ff35ee6..c8fb40cc3d3c0 100644 --- a/ci/docker/asmjs-unknown-emscripten/Dockerfile +++ b/ci/docker/asmjs-unknown-emscripten/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 # This is a workaround to avoid the interaction with tzdata. ENV DEBIAN_FRONTEND=noninteractive diff --git a/ci/docker/i686-linux-android/Dockerfile b/ci/docker/i686-linux-android/Dockerfile index 8a159cd0502b5..24d15872efd07 100644 --- a/ci/docker/i686-linux-android/Dockerfile +++ b/ci/docker/i686-linux-android/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN dpkg --add-architecture i386 RUN apt-get update diff --git a/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile b/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile index 16b4cf4bfd34e..138b9a195adb8 100644 --- a/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc libc6-dev qemu-user ca-certificates \ diff --git a/ci/docker/loongarch64-unknown-linux-musl/Dockerfile b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile index 0b3ff4da34ba0..ec632c33f7af3 100644 --- a/ci/docker/loongarch64-unknown-linux-musl/Dockerfile +++ b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates curl gcc gcc-14-loongarch64-linux-gnu git libc6-dev \ diff --git a/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile b/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile index 76d8471a63aac..a8a9dd8c92263 100644 --- a/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc libc6-dev qemu-user ca-certificates \ diff --git a/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile b/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile index c4c6af25b8684..0d6110f39149f 100644 --- a/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile +++ b/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc libc6-dev qemu-user ca-certificates \ diff --git a/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile b/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile index b25f284eddf7a..40a661149f7d8 100644 --- a/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile +++ b/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc make libc6-dev git curl ca-certificates \ diff --git a/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile b/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile index 0624e2c102055..43138af5da234 100644 --- a/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile +++ b/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc libc6-dev qemu-user ca-certificates \ diff --git a/ci/docker/s390x-unknown-linux-gnu/Dockerfile b/ci/docker/s390x-unknown-linux-gnu/Dockerfile index dde2ef24254fc..aa3490228c4db 100644 --- a/ci/docker/s390x-unknown-linux-gnu/Dockerfile +++ b/ci/docker/s390x-unknown-linux-gnu/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ curl ca-certificates \ diff --git a/ci/docker/s390x-unknown-linux-musl/Dockerfile b/ci/docker/s390x-unknown-linux-musl/Dockerfile index 2d4ea759c5fbf..0dfad20fb7a1d 100644 --- a/ci/docker/s390x-unknown-linux-musl/Dockerfile +++ b/ci/docker/s390x-unknown-linux-musl/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ curl ca-certificates \ diff --git a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile index 645cc3362ab93..a91ec3dd25f27 100644 --- a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ curl ca-certificates \ diff --git a/ci/docker/wasm32-unknown-emscripten/Dockerfile b/ci/docker/wasm32-unknown-emscripten/Dockerfile index 0f9cb85dc30e8..969a0ffca0be3 100644 --- a/ci/docker/wasm32-unknown-emscripten/Dockerfile +++ b/ci/docker/wasm32-unknown-emscripten/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 # This is a workaround to avoid the interaction with tzdata. ENV DEBIAN_FRONTEND=noninteractive diff --git a/ci/docker/wasm32-wasip1/Dockerfile b/ci/docker/wasm32-wasip1/Dockerfile index e85b27ff82099..419159a0b1380 100644 --- a/ci/docker/wasm32-wasip1/Dockerfile +++ b/ci/docker/wasm32-wasip1/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 COPY wasi.sh / RUN /wasi.sh diff --git a/ci/docker/wasm32-wasip2/Dockerfile b/ci/docker/wasm32-wasip2/Dockerfile index be6bff3a843c5..8d819b36e5c15 100644 --- a/ci/docker/wasm32-wasip2/Dockerfile +++ b/ci/docker/wasm32-wasip2/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 COPY wasi.sh / RUN /wasi.sh diff --git a/ci/docker/x86_64-linux-android/Dockerfile b/ci/docker/x86_64-linux-android/Dockerfile index 3bf350820019f..950c2a9fdc612 100644 --- a/ci/docker/x86_64-linux-android/Dockerfile +++ b/ci/docker/x86_64-linux-android/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN apt-get update && \ apt-get install -y --no-install-recommends \ diff --git a/ci/docker/x86_64-unknown-linux-gnu/Dockerfile b/ci/docker/x86_64-unknown-linux-gnu/Dockerfile index b6ad33ebc7cb5..3e94948095024 100644 --- a/ci/docker/x86_64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-gnu/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN apt-get update RUN apt-get install -y --no-install-recommends \ diff --git a/ci/docker/x86_64-unknown-linux-gnux32/Dockerfile b/ci/docker/x86_64-unknown-linux-gnux32/Dockerfile index f50af741db564..92a92b1dfe98d 100644 --- a/ci/docker/x86_64-unknown-linux-gnux32/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-gnux32/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN apt-get update RUN apt-get install -y --no-install-recommends \ diff --git a/ci/docker/x86_64-unknown-linux-musl/Dockerfile b/ci/docker/x86_64-unknown-linux-musl/Dockerfile index 5c1b4b177880c..194a6e7847f55 100644 --- a/ci/docker/x86_64-unknown-linux-musl/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-musl/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:24.10 +FROM ubuntu:25.04 RUN apt-get update RUN apt-get install -y --no-install-recommends \ From 7180c1964e2c0a0979cfff70231d1f9792b5eb72 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 18 Sep 2025 22:19:42 -0500 Subject: [PATCH 0803/1228] Resolve `clippy::zero_ptr` Recent versions of Clippy now lint against `0 as *(const|mut) T` rather than using `null`/`null_mut`. Make the updates required for this to pass. (backport ) (cherry picked from commit c4eefd5d933d3f6f92b926ab95dce84599a4b8a9) --- src/fuchsia/mod.rs | 4 ++-- src/macros.rs | 2 +- src/unix/bsd/freebsdlike/mod.rs | 8 ++++---- src/unix/bsd/netbsdlike/mod.rs | 2 +- src/unix/bsd/netbsdlike/openbsd/mod.rs | 6 +++--- src/unix/cygwin/mod.rs | 2 +- src/unix/haiku/mod.rs | 2 +- src/unix/hurd/mod.rs | 4 ++-- src/unix/linux_like/android/b64/mod.rs | 2 +- src/unix/linux_like/android/mod.rs | 2 +- src/unix/linux_like/emscripten/mod.rs | 4 ++-- src/unix/linux_like/linux/mod.rs | 4 ++-- src/unix/newlib/horizon/mod.rs | 2 +- src/unix/newlib/vita/mod.rs | 2 +- src/unix/nuttx/mod.rs | 2 +- src/unix/redox/mod.rs | 2 +- src/vxworks/mod.rs | 2 +- 17 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index a019ebb1f04cf..3cd7f7cc31332 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -2308,7 +2308,7 @@ pub const ST_NOATIME: c_ulong = 1024; pub const ST_NODIRATIME: c_ulong = 2048; pub const RTLD_NEXT: *mut c_void = -1i64 as *mut c_void; -pub const RTLD_DEFAULT: *mut c_void = 0i64 as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); pub const RTLD_NODELETE: c_int = 0x1000; pub const RTLD_NOW: c_int = 0x2; @@ -2452,7 +2452,7 @@ pub const EFD_SEMAPHORE: c_int = 0x1; pub const LOG_NFACILITIES: c_int = 24; -pub const SEM_FAILED: *mut crate::sem_t = 0 as *mut sem_t; +pub const SEM_FAILED: *mut crate::sem_t = ptr::null_mut(); pub const RB_AUTOBOOT: c_int = 0x01234567u32 as i32; pub const RB_HALT_SYSTEM: c_int = 0xcdef0123u32 as i32; diff --git a/src/macros.rs b/src/macros.rs index b8286db2812b7..1bd547f07a28e 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -82,7 +82,7 @@ macro_rules! prelude { #[allow(unused_imports)] pub(crate) use ::core::prelude::v1::derive; #[allow(unused_imports)] - pub(crate) use ::core::{fmt, hash, iter, mem}; + pub(crate) use ::core::{fmt, hash, iter, mem, ptr}; #[allow(unused_imports)] pub(crate) use mem::{align_of, align_of_val, size_of, size_of_val}; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 6d32a1dc95a48..d093847f8983e 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1197,9 +1197,9 @@ pub const _SC_RAW_SOCKETS: c_int = 119; pub const _SC_SYMLOOP_MAX: c_int = 120; pub const _SC_PHYS_PAGES: c_int = 121; -pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0 as *mut _; -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0 as *mut _; -pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 0 as *mut _; +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = ptr::null_mut(); +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = ptr::null_mut(); +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = ptr::null_mut(); pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 1; pub const PTHREAD_MUTEX_RECURSIVE: c_int = 2; pub const PTHREAD_MUTEX_NORMAL: c_int = 3; @@ -1331,7 +1331,7 @@ pub const B230400: speed_t = 230400; pub const EXTA: speed_t = 19200; pub const EXTB: speed_t = 38400; -pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; +pub const SEM_FAILED: *mut sem_t = ptr::null_mut(); pub const CRTSCTS: crate::tcflag_t = 0x00030000; pub const CCTS_OFLOW: crate::tcflag_t = 0x00010000; diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index b9c35fe7f41f3..8bfeef9d25017 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -651,7 +651,7 @@ pub const B230400: speed_t = 230400; pub const EXTA: speed_t = 19200; pub const EXTB: speed_t = 38400; -pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; +pub const SEM_FAILED: *mut sem_t = ptr::null_mut(); pub const CRTSCTS: crate::tcflag_t = 0x00010000; pub const CRTS_IFLOW: crate::tcflag_t = CRTSCTS; diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 5ee6bc0ca04f3..74648feff585d 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1328,9 +1328,9 @@ pub const SCHED_RR: c_int = 3; pub const ST_NOSUID: c_ulong = 2; -pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0 as *mut _; -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0 as *mut _; -pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 0 as *mut _; +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = ptr::null_mut(); +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = ptr::null_mut(); +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = ptr::null_mut(); pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 1; pub const PTHREAD_MUTEX_RECURSIVE: c_int = 2; diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index fde2c18936e71..4263d92671dd2 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -1018,7 +1018,7 @@ pub const NGROUPS_MAX: c_int = 1024; pub const FORK_RELOAD: c_int = 1; pub const FORK_NO_RELOAD: c_int = 0; -pub const RTLD_DEFAULT: *mut c_void = 0isize as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); pub const RTLD_LOCAL: c_int = 0; pub const RTLD_LAZY: c_int = 1; pub const RTLD_NOW: c_int = 2; diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 124024e207d5c..6673e96c32971 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1060,7 +1060,7 @@ pub const FD_SETSIZE: usize = 1024; pub const RTLD_LOCAL: c_int = 0x0; pub const RTLD_NOW: c_int = 0x1; pub const RTLD_GLOBAL: c_int = 0x2; -pub const RTLD_DEFAULT: *mut c_void = 0isize as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); pub const BUFSIZ: c_uint = 8192; pub const FILENAME_MAX: c_uint = 256; diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 1f7276eb36f1c..a818fc5772cde 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -1791,7 +1791,7 @@ pub const RB_DEBUGGER: c_int = 0x1000; // semaphore.h pub const __SIZEOF_SEM_T: usize = 20; -pub const SEM_FAILED: *mut crate::sem_t = 0 as *mut sem_t; +pub const SEM_FAILED: *mut crate::sem_t = ptr::null_mut(); // termios.h pub const IGNBRK: crate::tcflag_t = 1; @@ -1962,7 +1962,7 @@ pub const CTIME: u8 = 0; pub const CBRK: u8 = 0u8; // dlfcn.h -pub const RTLD_DEFAULT: *mut c_void = 0i64 as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); pub const RTLD_NEXT: *mut c_void = -1i64 as *mut c_void; pub const RTLD_LAZY: c_int = 1; pub const RTLD_NOW: c_int = 2; diff --git a/src/unix/linux_like/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs index e16c251a6d519..46ceed4c6dcba 100644 --- a/src/unix/linux_like/android/b64/mod.rs +++ b/src/unix/linux_like/android/b64/mod.rs @@ -225,7 +225,7 @@ pub const SA_SIGINFO: c_int = 0x00000004; pub const RTLD_GLOBAL: c_int = 0x00100; pub const RTLD_NOW: c_int = 2; -pub const RTLD_DEFAULT: *mut c_void = 0i64 as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { value: 0, diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index df901a36635a8..bb08e9ab5f420 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1551,7 +1551,7 @@ pub const ST_RELATIME: c_ulong = 4096; pub const RTLD_NOLOAD: c_int = 0x4; pub const RTLD_NODELETE: c_int = 0x1000; -pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; +pub const SEM_FAILED: *mut sem_t = ptr::null_mut(); pub const AI_PASSIVE: c_int = 0x00000001; pub const AI_CANONNAME: c_int = 0x00000002; diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 7a43670536e4f..10b0893565a03 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -772,7 +772,7 @@ pub const ST_NOATIME: c_ulong = 1024; pub const ST_NODIRATIME: c_ulong = 2048; pub const RTLD_NEXT: *mut c_void = -1i64 as *mut c_void; -pub const RTLD_DEFAULT: *mut c_void = 0i64 as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); pub const RTLD_NODELETE: c_int = 0x1000; pub const RTLD_NOW: c_int = 0x2; @@ -842,7 +842,7 @@ pub const SHM_NORESERVE: c_int = 0o10000; pub const LOG_NFACILITIES: c_int = 24; -pub const SEM_FAILED: *mut crate::sem_t = 0 as *mut sem_t; +pub const SEM_FAILED: *mut crate::sem_t = ptr::null_mut(); pub const AI_PASSIVE: c_int = 0x0001; pub const AI_CANONNAME: c_int = 0x0002; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 182889574eadd..3e093f93e6af7 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2711,7 +2711,7 @@ pub const ST_NOATIME: c_ulong = 1024; pub const ST_NODIRATIME: c_ulong = 2048; pub const RTLD_NEXT: *mut c_void = -1i64 as *mut c_void; -pub const RTLD_DEFAULT: *mut c_void = 0i64 as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); pub const RTLD_NODELETE: c_int = 0x1000; pub const RTLD_NOW: c_int = 0x2; @@ -2835,7 +2835,7 @@ pub const EFD_SEMAPHORE: c_int = 0x1; pub const LOG_NFACILITIES: c_int = 24; -pub const SEM_FAILED: *mut crate::sem_t = 0 as *mut sem_t; +pub const SEM_FAILED: *mut crate::sem_t = ptr::null_mut(); pub const RB_AUTOBOOT: c_int = 0x01234567u32 as i32; pub const RB_HALT_SYSTEM: c_int = 0xcdef0123u32 as i32; diff --git a/src/unix/newlib/horizon/mod.rs b/src/unix/newlib/horizon/mod.rs index e98a4c53ccfff..ee325a0247241 100644 --- a/src/unix/newlib/horizon/mod.rs +++ b/src/unix/newlib/horizon/mod.rs @@ -173,7 +173,7 @@ pub const AF_INET6: c_int = 23; pub const FIONBIO: c_ulong = 1; -pub const RTLD_DEFAULT: *mut c_void = 0 as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); // For pthread get/setschedparam pub const SCHED_FIFO: c_int = 1; diff --git a/src/unix/newlib/vita/mod.rs b/src/unix/newlib/vita/mod.rs index 822b61989d479..62cd300e1d6f0 100644 --- a/src/unix/newlib/vita/mod.rs +++ b/src/unix/newlib/vita/mod.rs @@ -108,7 +108,7 @@ pub const POLLERR: c_short = 0x0008; pub const POLLHUP: c_short = 0x0010; pub const POLLNVAL: c_short = 0x0020; -pub const RTLD_DEFAULT: *mut c_void = 0 as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); pub const SOL_SOCKET: c_int = 0xffff; pub const SO_NONBLOCK: c_int = 0x1100; diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index 69732d845b400..b71d3f61670bc 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -274,7 +274,7 @@ pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { }; // dlfcn.h -pub const RTLD_DEFAULT: *mut c_void = 0 as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); // stdlib.h pub const EXIT_SUCCESS: i32 = 0; diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 4446473a3ab3a..e87806e8109cc 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -353,7 +353,7 @@ pub const F_TLOCK: c_int = 2; pub const F_TEST: c_int = 3; // FIXME(redox): relibc { -pub const RTLD_DEFAULT: *mut c_void = 0i64 as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); // } // dlfcn.h diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index f28e5ee7229ba..b03e8d6112e15 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -508,7 +508,7 @@ pub const EAI_SYSTEM: c_int = 11; // FIXME(vxworks): This is not defined in vxWorks, but we have to define it here // to make the building pass for getrandom and std -pub const RTLD_DEFAULT: *mut c_void = 0i64 as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); //Clock Lib Stuff pub const CLOCK_REALTIME: c_int = 0x0; From 067fcf304dc4d0dd5fb1354aeae3578ed970ecec Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 19 Sep 2025 01:34:40 -0500 Subject: [PATCH 0804/1228] FreeBSD: update gating of `mcontext_t.mc_tlsbase` freebsd11 wasn't covered, meaning test failures on the 0.2 branch. Add freebsd11 to the pattern, and use `cfg(not(...))` rather than `cfg(freebsd15)`. (Ideally this would instead be encoded as something like `cfg(freebsd_least_15)`.) Fixes: 3d93bf589413 ("freebsd: Limit mcontext_t::mc_tlsbase to FreeBSD 15") (backport ) (cherry picked from commit d8b90d6aeba1f196c1fabf0983e5c5a9d4f5cf62) --- src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index 29f11b039b080..a488f61adcf00 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -98,7 +98,7 @@ s_no_extra_traits! { } #[repr(align(16))] - #[non_exhaustive] + #[cfg_attr(not(any(freebsd11, freebsd12, freebsd13, freebsd14)), non_exhaustive)] pub struct mcontext_t { pub mc_onstack: register_t, pub mc_rdi: register_t, @@ -137,11 +137,13 @@ s_no_extra_traits! { pub mc_gsbase: register_t, pub mc_xfpustate: register_t, pub mc_xfpustate_len: register_t, - #[cfg(any(freebsd12, freebsd13, freebsd14))] + // freebsd < 15 + #[cfg(any(freebsd11, freebsd12, freebsd13, freebsd14))] pub mc_spare: [c_long; 4], - #[cfg(freebsd15)] + // freebsd >= 15 + #[cfg(not(any(freebsd11, freebsd12, freebsd13, freebsd14)))] pub mc_tlsbase: register_t, - #[cfg(freebsd15)] + #[cfg(not(any(freebsd11, freebsd12, freebsd13, freebsd14)))] pub mc_spare: [c_long; 3], } } From cba5f8d1cd897a3ad7d55ebfd8a453d686525c54 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 20 Sep 2025 19:24:11 -0500 Subject: [PATCH 0805/1228] test: Set required config in `ctest_next_cfg` This is done in `ctest_cfg` on `libc-0.2` to account for thread local use on Dragonfly. I should have done this in the cherry pick that added the function (the "Fixes" commit below) but missed it. Thus, add it now. Fixes: 3a650dfdcb08 ("libc: port freebsd to use ctest-next") --- libc-test/build.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 1d9bdae51fc45..b443af55467b9 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -87,6 +87,10 @@ fn ctest_cfg() -> ctest::TestGenerator { fn ctest_next_cfg() -> ctest_next::TestGenerator { let mut cfg = ctest_next::TestGenerator::new(); cfg.skip_private(true); + let libc_cfgs = ["libc_thread_local"]; + for f in &libc_cfgs { + cfg.cfg(f, None); + } cfg } From b9c21ee359f12d15f4a0fba1bbd853f8127d4c8a Mon Sep 17 00:00:00 2001 From: Sebastien Marie Date: Thu, 14 Aug 2025 12:23:29 +0200 Subject: [PATCH 0806/1228] libc: port openbsd to ctest-next (backport ) (cherry picked from commit 0ebbafde164a96835699b71aca96635c9fcb7ec2) [ some significant resolution needed due to API removed in 0.2 - Trevor ] --- libc-test/build.rs | 97 ++++++++++++++++++++++++++-------------------- 1 file changed, 54 insertions(+), 43 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index b443af55467b9..f633a36f09078 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -508,7 +508,7 @@ fn test_apple(target: &str) { fn test_openbsd(target: &str) { assert!(target.contains("openbsd")); - let mut cfg = ctest_cfg(); + let mut cfg = ctest_next_cfg(); cfg.flag("-Wno-deprecated-declarations"); let x86_64 = target.contains("x86_64"); @@ -598,20 +598,42 @@ fn test_openbsd(target: &str) { "sys/param.h", } - cfg.skip_struct(move |ty| { - if ty.starts_with("__c_anonymous_") { - return true; - } + cfg.rename_type(|ty| match ty { + // FIXME(openbsd): https://github.com/rust-lang/libc/issues/1273 + "sighandler_t" => Some("sig_t".to_string()), + _ => None, + }); + + cfg.rename_struct_ty(move |ty| { match ty { - // FIXME(union): actually a union - "sigval" => true, + // Just pass all these through, no need for a "struct" prefix + "FILE" | "DIR" | "Dl_info" | "Elf32_Phdr" | "Elf64_Phdr" => Some(ty.to_string()), - _ => false, + _ => None, } }); - cfg.skip_const(move |name| { - match name { + cfg.rename_struct_field(|struct_, field_| { + let struct_ = struct_.ident(); + let replacement = match field_.ident() { + "st_birthtime" if struct_.starts_with("stat") => "__st_birthtime".to_string(), + "st_birthtime_nsec" if struct_.starts_with("stat") => "__st_birthtimensec".to_string(), + + // Our stat *_nsec fields normally don't actually exist but are part + // of a timeval struct + s if s.ends_with("_nsec") && struct_.starts_with("stat") => { + s.replace("e_nsec", ".tv_nsec") + } + + "sa_sigaction" if struct_ == "sigaction" => "sa_handler".to_string(), + + _ => return None, + }; + Some(replacement) + }); + + cfg.skip_const(move |constant| { + match constant.ident() { // Removed in OpenBSD 6.0 "KERN_USERMOUNT" | "KERN_ARND" => true, // Removed in OpenBSD 7.2 @@ -620,7 +642,7 @@ fn test_openbsd(target: &str) { "KERN_MAXID" | "NET_RT_MAXID" => true, "EV_SYSFLAGS" => true, - // Removed in OpenBSD 7.7 + // Removed in OpenBSD 7.7 (unused since 1991) "ATF_COM" | "ATF_PERM" | "ATF_PUBL" | "ATF_USETRAILERS" => true, // Removed in OpenBSD 7.8 @@ -630,8 +652,8 @@ fn test_openbsd(target: &str) { } }); - cfg.skip_fn(move |name| { - match name { + cfg.skip_fn(move |func| { + match func.ident() { // FIXME: https://github.com/rust-lang/libc/issues/1272 "execv" | "execve" | "execvp" | "execvpe" => true, @@ -639,9 +661,6 @@ fn test_openbsd(target: &str) { // https://marc.info/?l=openbsd-cvs&m=154723400730318 "mincore" => true, - // futex() has volatile arguments, but that doesn't exist in Rust. - "futex" => true, - // Available for openBSD 7.3 "mimmutable" => true, @@ -653,46 +672,38 @@ fn test_openbsd(target: &str) { } }); - cfg.type_name(move |ty, is_struct, is_union| { - match ty { - // Just pass all these through, no need for a "struct" prefix - "FILE" | "DIR" | "Dl_info" | "Elf32_Phdr" | "Elf64_Phdr" => ty.to_string(), - - // OSX calls this something else - "sighandler_t" => "sig_t".to_string(), + // Skip anonymous unions/structs. + cfg.skip_union(|u| u.ident().starts_with("__c_anonymous_")); + cfg.skip_struct(|s| s.ident().starts_with("__c_anonymous_")); + cfg.skip_struct(move |ty| { + match ty.ident() { + // FIXME(union): actually a union + "sigval" => true, - t if is_union => format!("union {t}"), - t if t.ends_with("_t") => t.to_string(), - t if is_struct => format!("struct {t}"), - t => t.to_string(), + _ => false, } }); - cfg.field_name(move |struct_, field| match field { - "st_birthtime" if struct_.starts_with("stat") => "__st_birthtime".to_string(), - "st_birthtime_nsec" if struct_.starts_with("stat") => "__st_birthtimensec".to_string(), - s if s.ends_with("_nsec") && struct_.starts_with("stat") => s.replace("e_nsec", ".tv_nsec"), - "sa_sigaction" if struct_ == "sigaction" => "sa_handler".to_string(), - s => s.to_string(), - }); - - cfg.skip_field_type(move |struct_, field| { - // type siginfo_t.si_addr changed from OpenBSD 6.0 to 6.1 - struct_ == "siginfo_t" && field == "si_addr" - }); + cfg.rename_struct_ty(|ty| ty.ends_with("_t").then_some(ty.to_string())); + cfg.rename_union_ty(|ty| ty.ends_with("_t").then_some(ty.to_string())); - cfg.skip_field(|struct_, field| { - match (struct_, field) { + cfg.skip_struct_field(move |struct_, field| { + match (struct_.ident(), field.ident()) { // conflicting with `p_type` macro from . ("Elf32_Phdr", "p_type") => true, ("Elf64_Phdr", "p_type") => true, - // ifr_ifru is defined is an union + + // type siginfo_t.si_addr changed from OpenBSD 6.0 to 6.1 + ("siginfo_t", "si_addr") => true, + + // ifr_ifru is an union ("ifreq", "ifr_ifru") => true, + _ => false, } }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); + ctest_next::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn test_cygwin(target: &str) { From 0237f5a000d2a49d3b2f13f5afd67b8e869e39cf Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Fri, 1 Aug 2025 15:29:31 -0400 Subject: [PATCH 0807/1228] Restore non-POSIX functions guarded by the _KERNEL macro. (backport ) (cherry picked from commit b02c1211ea23aaaa708ce01ce4e4c2a905510801) --- libc-test/build.rs | 8 ++++++++ libc-test/semver/aix.txt | 9 +++++++++ src/unix/aix/mod.rs | 21 +++++++++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index f633a36f09078..78a9ae6ba7170 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -5583,6 +5583,7 @@ fn test_aix(target: &str) { "net/if_dl.h", "netdb.h", "netinet/tcp.h", + "netinet/sctp.h", "pthread.h", "pwd.h", "rpcsvc/mount.h", @@ -5822,6 +5823,13 @@ fn test_aix(target: &str) { "setdomainname" | "settimeofday" | "statfs" | "statfs64" | "statx" | "swapoff" | "swapon" | "utmpname" | "setgroups" => true, + // These non-POSIX functions are guarded by the _KERNEL macro in the AIX headers. + "recvmmsg" | "sendmmsg" | "sethostid" | "sethostname" | "splice" => true, + + // 'mount' is available in the system's libc.a and has a man page, but it is + // not declared in the AIX headers." + "mount" => true, + _ => false, } }); diff --git a/libc-test/semver/aix.txt b/libc-test/semver/aix.txt index 73163c854f30d..c8e0fe1c0d3e7 100644 --- a/libc-test/semver/aix.txt +++ b/libc-test/semver/aix.txt @@ -2133,6 +2133,7 @@ mmap mmsghdr mntent mode_t +mount mprotect mq_attr mq_close @@ -2363,6 +2364,7 @@ realloc realpath recv recvfrom +recvmmsg recvmsg regcomp regerror @@ -2393,6 +2395,9 @@ sched_rr_get_interval sched_setparam sched_setscheduler sched_yield +sctp_assoc_t +sctp_opt_info +sctp_peeloff seed48 seekdir select @@ -2413,6 +2418,7 @@ semget semop send send_file +sendmmsg sendmsg sendto servent @@ -2425,6 +2431,8 @@ seteuid setgid setgrent setgroups +sethostid +sethostname setitimer setlocale setlogmask @@ -2484,6 +2492,7 @@ socket socketpair socklen_t speed_t +splice sprintf srand srand48 diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index f9c5a2bf1b78a..8a1b95ea4485d 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -49,6 +49,7 @@ pub type rlim64_t = c_ulonglong; pub type sem_t = c_int; pub type pollset_t = c_int; +pub type sctp_assoc_t = c_uint; pub type pthread_rwlockattr_t = *mut c_void; pub type pthread_condattr_t = *mut c_void; @@ -3030,6 +3031,7 @@ extern "C" { pub fn mincore(addr: caddr_t, len: size_t, vec: *mut c_char) -> c_int; pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, dev: dev_t) -> c_int; + pub fn mount(device: *const c_char, path: *const c_char, flags: c_int) -> c_int; pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; pub fn mq_close(mqd: crate::mqd_t) -> c_int; pub fn mq_getattr(mqd: crate::mqd_t, attr: *mut crate::mq_attr) -> c_int; @@ -3199,6 +3201,13 @@ extern "C" { addr: *mut crate::sockaddr, addrlen: *mut crate::socklen_t, ) -> ssize_t; + pub fn recvmmsg( + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_int, + timeout: *mut crate::timespec, + ) -> c_int; // AIX header socket.h maps recvmsg() to nrecvmsg(). #[link_name = "nrecvmsg"] pub fn recvmsg(sockfd: c_int, msg: *mut msghdr, flags: c_int) -> ssize_t; @@ -3229,6 +3238,14 @@ extern "C" { policy: c_int, param: *const crate::sched_param, ) -> c_int; + pub fn sctp_opt_info( + sd: c_int, + id: crate::sctp_assoc_t, + opt: c_int, + arg_size: *mut c_void, + size: *mut size_t, + ) -> c_int; + pub fn sctp_peeloff(s: c_int, id: *mut c_uint) -> c_int; pub fn seed48(xseed: *mut c_ushort) -> *mut c_ushort; pub fn seekdir(dirp: *mut crate::DIR, loc: c_long); pub fn sem_close(sem: *mut sem_t) -> c_int; @@ -3242,6 +3259,7 @@ extern "C" { pub fn semget(key: crate::key_t, nsems: c_int, semflag: c_int) -> c_int; pub fn semop(semid: c_int, sops: *mut sembuf, nsops: size_t) -> c_int; pub fn send_file(socket: *mut c_int, iobuf: *mut sf_parms, flags: c_uint) -> ssize_t; + pub fn sendmmsg(sockfd: c_int, msgvec: *mut mmsghdr, vlen: c_uint, flags: c_int) -> c_int; // AIX header socket.h maps sendmsg() to nsendmsg(). #[link_name = "nsendmsg"] pub fn sendmsg(sockfd: c_int, msg: *const msghdr, flags: c_int) -> ssize_t; @@ -3249,6 +3267,8 @@ extern "C" { pub fn setdomainname(name: *const c_char, len: c_int) -> c_int; pub fn setgroups(ngroups: c_int, ptr: *const crate::gid_t) -> c_int; pub fn setgrent(); + pub fn sethostid(hostid: c_int) -> c_int; + pub fn sethostname(name: *const c_char, len: c_int) -> c_int; pub fn setmntent(filename: *const c_char, ty: *const c_char) -> *mut crate::FILE; pub fn setpriority(which: c_int, who: id_t, priority: c_int) -> c_int; pub fn setpwent(); @@ -3277,6 +3297,7 @@ extern "C" { pub fn shmget(key: key_t, size: size_t, shmflg: c_int) -> c_int; pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; pub fn shm_unlink(name: *const c_char) -> c_int; + pub fn splice(socket1: c_int, socket2: c_int, flags: c_int) -> c_int; pub fn srand(seed: c_uint); pub fn srand48(seed: c_long); pub fn stat64(path: *const c_char, buf: *mut stat64) -> c_int; From 4cdd912ddc39a36e1383df013d4844582253a6f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Wed, 2 Jul 2025 16:04:06 +0000 Subject: [PATCH 0808/1228] linux-musl: Specialize struct statfs[64] for s390x https://git.musl-libc.org/cgit/musl/tree/arch/s390x/bits/statfs.h statfs64 is the same as statfs on musl-libc, so it can also be a type alias on the Rust side. https://git.musl-libc.org/cgit/musl/tree/include/sys/statfs.h#n21 (backport ) (cherry picked from commit dd6f54cf5dfcdf574e1d7dd9efc9adb90881ce40) --- src/unix/linux_like/linux/musl/b64/s390x.rs | 16 ++++++++++++++++ src/unix/linux_like/linux/musl/mod.rs | 8 ++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index c312505a7d77f..27800a115ab62 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -7,6 +7,7 @@ pub type wchar_t = i32; pub type greg_t = u64; pub type __u64 = u64; pub type __s64 = i64; +pub type statfs64 = statfs; s! { pub struct ipc_perm { @@ -68,6 +69,21 @@ s! { pub st_blocks: crate::blkcnt64_t, __unused: [c_long; 3], } + + pub struct statfs { + pub f_type: c_uint, + pub f_bsize: c_uint, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_uint, + pub f_frsize: c_uint, + pub f_flags: c_uint, + pub f_spare: [c_uint; 4], + } } s_no_extra_traits! { diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 2c0cc87444d63..f625a3017d832 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -392,8 +392,8 @@ s! { pub tcpi_snd_wnd: u32, } - // MIPS implementation is special (see mips arch folders) - #[cfg(not(any(target_arch = "mips", target_arch = "mips64")))] + // MIPS/s390x implementation is special (see arch folders) + #[cfg(not(any(target_arch = "mips", target_arch = "mips64", target_arch = "s390x")))] pub struct statfs { pub f_type: c_ulong, pub f_bsize: c_ulong, @@ -409,8 +409,8 @@ s! { pub f_spare: [c_ulong; 4], } - // MIPS implementation is special (see mips arch folders) - #[cfg(not(any(target_arch = "mips", target_arch = "mips64")))] + // MIPS/s390x implementation is special (see arch folders) + #[cfg(not(any(target_arch = "mips", target_arch = "mips64", target_arch = "s390x")))] pub struct statfs64 { pub f_type: c_ulong, pub f_bsize: c_ulong, From 3749d986aee62930595e1c1bf34e2cdd01086a8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Wed, 2 Jul 2025 17:26:40 +0000 Subject: [PATCH 0809/1228] semver: Move some pthreads symbols to linux-gnu-s390x.txt glibc provides these symbols, but musl does not. (backport ) (cherry picked from commit da77f0f7c8e3e2f4412a1aeadb05ded7a9539236) --- libc-test/semver/linux-gnu-s390x.txt | 3 +++ libc-test/semver/linux-s390x.txt | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 libc-test/semver/linux-gnu-s390x.txt diff --git a/libc-test/semver/linux-gnu-s390x.txt b/libc-test/semver/linux-gnu-s390x.txt new file mode 100644 index 0000000000000..c82b587a8c735 --- /dev/null +++ b/libc-test/semver/linux-gnu-s390x.txt @@ -0,0 +1,3 @@ +PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP +PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP +PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP diff --git a/libc-test/semver/linux-s390x.txt b/libc-test/semver/linux-s390x.txt index 96be9c25e4f3c..f4b37a43cf0eb 100644 --- a/libc-test/semver/linux-s390x.txt +++ b/libc-test/semver/linux-s390x.txt @@ -21,9 +21,6 @@ NFT_MSG_DELOBJ NFT_MSG_GETOBJ NFT_MSG_GETOBJ_RESET NFT_MSG_NEWOBJ -PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP -PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP -PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP SIGSTKFLT SIGUNUSED SO_BSDCOMPAT From 2733b301b4478ec6826235fdb8b4828f082b4f36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Wed, 2 Jul 2025 18:06:53 +0000 Subject: [PATCH 0810/1228] semver: Move sysctl to linux-gnu-s390x.txt musl-libc does not implement sysctl. (backport ) (cherry picked from commit 751f3b67f92cfd6f498a9b97b6fabdc4797c42d5) --- libc-test/semver/linux-gnu-s390x.txt | 1 + libc-test/semver/linux-s390x.txt | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/libc-test/semver/linux-gnu-s390x.txt b/libc-test/semver/linux-gnu-s390x.txt index c82b587a8c735..ec90f4184b638 100644 --- a/libc-test/semver/linux-gnu-s390x.txt +++ b/libc-test/semver/linux-gnu-s390x.txt @@ -1,3 +1,4 @@ PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP +sysctl diff --git a/libc-test/semver/linux-s390x.txt b/libc-test/semver/linux-s390x.txt index f4b37a43cf0eb..34ebf4da7ab24 100644 --- a/libc-test/semver/linux-s390x.txt +++ b/libc-test/semver/linux-s390x.txt @@ -110,6 +110,5 @@ makecontext mcontext_t setcontext swapcontext -sysctl termios2 ucontext_t From db120820267000f7a3d9313fd8927b1676e1db81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Wed, 2 Jul 2025 17:36:53 +0000 Subject: [PATCH 0811/1228] linux-musl-s390x: Add SYS_mseal SYS_mseal is not yet defined in musl-libc, but it can only take one possible value, dictated by the kernel's syscall ABI. (backport ) (cherry picked from commit 6a13fd59c3d39bbdf38e31f15f2b20dfe130ac0a) --- src/unix/linux_like/linux/musl/b64/s390x.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index 27800a115ab62..db087a0380605 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -731,3 +731,4 @@ pub const SYS_futex_waitv: c_long = 449; pub const SYS_set_mempolicy_home_node: c_long = 450; pub const SYS_cachestat: c_long = 451; pub const SYS_fchmodat2: c_long = 452; +pub const SYS_mseal: c_long = 462; From e3cae5049397189935474b74ac02dea4ba52d311 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Tue, 12 Aug 2025 13:02:00 +0000 Subject: [PATCH 0812/1228] linux-musl-s390x: Make `fpreg_t` a union Previously, the definition was only changed for glibc but not for musl. Fixes: 051fa61f7 ("Make `fpreg_t` an union") (backport ) (cherry picked from commit 2e670a888196c3438f256af7293bf587753d4040) --- src/unix/linux_like/linux/musl/b64/s390x.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index db087a0380605..06cc61685b7ac 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -87,27 +87,25 @@ s! { } s_no_extra_traits! { - // FIXME(union): This is actually a union. - pub struct fpreg_t { + pub union fpreg_t { pub d: c_double, - // f: c_float, + pub f: c_float, } } cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for fpreg_t { - fn eq(&self, other: &fpreg_t) -> bool { - self.d == other.d + fn eq(&self, _other: &fpreg_t) -> bool { + unimplemented!("traits") } } impl Eq for fpreg_t {} impl hash::Hash for fpreg_t { - fn hash(&self, state: &mut H) { - let d: u64 = self.d.to_bits(); - d.hash(state); + fn hash(&self, _state: &mut H) { + unimplemented!("traits") } } } From 3c8c07af67c76ce8b499c096e0e0e28a4d96c6dd Mon Sep 17 00:00:00 2001 From: mbyx Date: Thu, 14 Aug 2025 20:35:56 +0500 Subject: [PATCH 0813/1228] libc: change ctest name to ctest-old (backport ) (cherry picked from commit b185a1360a4ad85fb11a085bfbe931e62bcbc496) --- libc-test/Cargo.toml | 4 ++-- libc-test/build.rs | 18 ++++++++---------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index a2c5062e8c55b..5179c11b23956 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -21,9 +21,9 @@ annotate-snippets = { version = "0.11.5", features = ["testing-colors"] } [build-dependencies] cc = "1.2.29" # FIXME: Use fork ctest until the maintainer gets back. -ctest2 = "0.4.3" +ctest-old = { version = "0.4.3", package = "ctest2" } # Use the in-tree `ctest` from the `main` branch via crates.io -ctest_next = { version = "0.5.0-beta.0", package = "ctest" } +ctest-next = { version = "0.5.0-beta.0", package = "ctest" } regex = "1.11.1" [features] diff --git a/libc-test/build.rs b/libc-test/build.rs index 78a9ae6ba7170..e3a48bcbbb79a 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1,8 +1,6 @@ #![deny(warnings)] #![allow(clippy::match_like_matches_macro)] -extern crate ctest2 as ctest; - use std::fs::File; use std::io::{BufRead, BufReader, BufWriter, Write}; use std::path::{Path, PathBuf}; @@ -75,8 +73,8 @@ fn do_ctest() { } } -fn ctest_cfg() -> ctest::TestGenerator { - let mut cfg = ctest::TestGenerator::new(); +fn ctest_cfg() -> ctest_old::TestGenerator { + let mut cfg = ctest_old::TestGenerator::new(); let libc_cfgs = ["libc_thread_local"]; for f in &libc_cfgs { cfg.cfg(f, None); @@ -3479,7 +3477,7 @@ fn test_neutrino(target: &str) { }); cfg.volatile_item(|i| { - use ctest::VolatileItemKind::*; + use ctest_old::VolatileItemKind::*; match i { // The following fields are volatie but since we cannot express that in // Rust types, we have to explicitly tell the checker about it here: @@ -3602,7 +3600,7 @@ fn test_neutrino(target: &str) { fn test_vxworks(target: &str) { assert!(target.contains("vxworks")); - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_old::TestGenerator::new(); headers! { cfg: "vxWorks.h", "yvals.h", @@ -3705,7 +3703,7 @@ fn test_vxworks(target: &str) { cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); } -fn config_gnu_bits(target: &str, cfg: &mut ctest::TestGenerator) { +fn config_gnu_bits(target: &str, cfg: &mut ctest_old::TestGenerator) { let pointer_width = env::var("CARGO_CFG_TARGET_POINTER_WIDTH").unwrap_or_default(); if target.contains("gnu") && target.contains("linux") @@ -4894,7 +4892,7 @@ fn test_linux(target: &str) { }); cfg.volatile_item(|i| { - use ctest::VolatileItemKind::*; + use ctest_old::VolatileItemKind::*; match i { // aio_buf is a volatile void** but since we cannot express that in // Rust types, we have to explicitly tell the checker about it here: @@ -5215,7 +5213,7 @@ fn test_haiku(target: &str) { cfg.flag("-Wno-deprecated-declarations"); cfg.define("__USE_GNU", Some("1")); cfg.define("_GNU_SOURCE", None); - cfg.language(ctest::Lang::CXX); + cfg.language(ctest_old::Lang::CXX); // POSIX API headers! { cfg: @@ -5835,7 +5833,7 @@ fn test_aix(target: &str) { }); cfg.volatile_item(|i| { - use ctest::VolatileItemKind::*; + use ctest_old::VolatileItemKind::*; match i { // 'aio_buf' is of type 'volatile void**' but since we cannot // express that in Rust types, we have to explicitly tell the From dbf5b4ca35f02d3754c89a2956a9f366e7e46aea Mon Sep 17 00:00:00 2001 From: mbyx Date: Thu, 14 Aug 2025 21:07:56 +0500 Subject: [PATCH 0814/1228] promote ctest-next to ctest (backport ) (cherry picked from commit 443954669399abec95751b0b220fd5f9ef26ea49) [ drop everything related to the actual ctest-next impl. Some other Cargo.toml adjustments were needed. - Trevor ] --- Cargo.lock | 35 +++++++++++++------------ Cargo.toml | 1 - ctest-next/Cargo.toml | 8 ------ ctest-next/src/lib.rs | 14 ---------- ctest/Cargo.toml | 5 ++-- libc-test/Cargo.toml | 5 ++-- libc-test/build.rs | 59 +++++++++++++++++++++---------------------- 7 files changed, 53 insertions(+), 74 deletions(-) delete mode 100644 ctest-next/Cargo.toml delete mode 100644 ctest-next/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 26e312b8408ff..0a7ab4bb083a3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -115,6 +115,18 @@ checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" name = "ctest" version = "0.1.0" +[[package]] +name = "ctest" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f18c94d081f9a0355affbeee3f8e677ce206e9aea89b952421f0be6bc588dde" +dependencies = [ + "cc", + "garando_syntax", + "indoc", + "rustc_version", +] + [[package]] name = "ctest" version = "0.5.0-beta.0" @@ -129,21 +141,6 @@ dependencies = [ "thiserror 2.0.16", ] -[[package]] -name = "ctest-next" -version = "0.1.0" - -[[package]] -name = "ctest2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cf53ed2a9e25d98cd444fd6e73eae7de0a26a8cb9e3f998170c6901a1afa0e5" -dependencies = [ - "cc", - "garando_syntax", - "rustc_version", -] - [[package]] name = "dirs" version = "2.0.2" @@ -219,6 +216,12 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +[[package]] +name = "indoc" +version = "2.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" + [[package]] name = "itoa" version = "1.0.15" @@ -245,8 +248,8 @@ dependencies = [ "annotate-snippets", "cc", "cfg-if 1.0.1", + "ctest 0.4.11", "ctest 0.5.0-beta.0", - "ctest2", "glob", "libc 0.2.175", "proc-macro2", diff --git a/Cargo.toml b/Cargo.toml index afeb07bc7c993..08ca0a83b4650 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -149,7 +149,6 @@ use_std = ['std'] [workspace] members = [ "ctest", - "ctest-next", "libc-test", ] diff --git a/ctest-next/Cargo.toml b/ctest-next/Cargo.toml deleted file mode 100644 index b30a6b30eab76..0000000000000 --- a/ctest-next/Cargo.toml +++ /dev/null @@ -1,8 +0,0 @@ -[package] -name = "ctest-next" -version = "0.1.0" -edition = "2021" -rust-version = "1.77" -license = "MIT OR Apache-2.0" -repository = "https://github.com/rust-lang/libc" -publish = false diff --git a/ctest-next/src/lib.rs b/ctest-next/src/lib.rs deleted file mode 100644 index 7d12d9af8195b..0000000000000 --- a/ctest-next/src/lib.rs +++ /dev/null @@ -1,14 +0,0 @@ -pub fn add(left: usize, right: usize) -> usize { - left + right -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn it_works() { - let result = add(2, 2); - assert_eq!(result, 4); - } -} diff --git a/ctest/Cargo.toml b/ctest/Cargo.toml index 377de00ef02a4..b5d68cb46d485 100644 --- a/ctest/Cargo.toml +++ b/ctest/Cargo.toml @@ -5,6 +5,7 @@ name = "ctest" version = "0.1.0" edition = "2021" +rust-version = "1.77" +license = "MIT OR Apache-2.0" +repository = "https://github.com/rust-lang/libc" publish = false - -[dependencies] diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 5179c11b23956..9976b482a44c4 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -20,10 +20,9 @@ annotate-snippets = { version = "0.11.5", features = ["testing-colors"] } [build-dependencies] cc = "1.2.29" -# FIXME: Use fork ctest until the maintainer gets back. -ctest-old = { version = "0.4.3", package = "ctest2" } +ctest-old = { version = "0.4.11", package = "ctest" } # Use the in-tree `ctest` from the `main` branch via crates.io -ctest-next = { version = "0.5.0-beta.0", package = "ctest" } +ctest = "0.5.0-beta.0" regex = "1.11.1" [features] diff --git a/libc-test/build.rs b/libc-test/build.rs index e3a48bcbbb79a..883023e26932b 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -73,7 +73,7 @@ fn do_ctest() { } } -fn ctest_cfg() -> ctest_old::TestGenerator { +fn ctest_old_cfg() -> ctest_old::TestGenerator { let mut cfg = ctest_old::TestGenerator::new(); let libc_cfgs = ["libc_thread_local"]; for f in &libc_cfgs { @@ -81,9 +81,8 @@ fn ctest_cfg() -> ctest_old::TestGenerator { } cfg } - -fn ctest_next_cfg() -> ctest_next::TestGenerator { - let mut cfg = ctest_next::TestGenerator::new(); +fn ctest_cfg() -> ctest::TestGenerator { + let mut cfg = ctest::TestGenerator::new(); cfg.skip_private(true); let libc_cfgs = ["libc_thread_local"]; for f in &libc_cfgs { @@ -228,7 +227,7 @@ fn test_apple(target: &str) { let x86_64 = target.contains("x86_64"); let i686 = target.contains("i686"); - let mut cfg = ctest_next_cfg(); + let mut cfg = ctest_cfg(); cfg.flag("-Wno-deprecated-declarations"); cfg.define("__APPLE_USE_RFC_3542", None); @@ -500,13 +499,13 @@ fn test_apple(target: &str) { _ => false, }); - ctest_next::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn test_openbsd(target: &str) { assert!(target.contains("openbsd")); - let mut cfg = ctest_next_cfg(); + let mut cfg = ctest_cfg(); cfg.flag("-Wno-deprecated-declarations"); let x86_64 = target.contains("x86_64"); @@ -701,13 +700,13 @@ fn test_openbsd(target: &str) { } }); - ctest_next::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn test_cygwin(target: &str) { assert!(target.contains("cygwin")); - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); cfg.define("_GNU_SOURCE", None); headers! { cfg: @@ -881,7 +880,7 @@ fn test_windows(target: &str) { let gnu = target.contains("gnu"); let i686 = target.contains("i686"); - let mut cfg = ctest_next_cfg(); + let mut cfg = ctest_cfg(); if target.contains("msvc") { cfg.flag("/wd4324"); @@ -998,13 +997,13 @@ fn test_windows(target: &str) { } }); - ctest_next::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn test_redox(target: &str) { assert!(target.contains("redox")); - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); cfg.flag("-Wno-deprecated-declarations"); headers! { @@ -1058,7 +1057,7 @@ fn test_solarish(target: &str) { // ctest generates arguments supported only by clang, so make sure to run with CC=clang. // While debugging, "CFLAGS=-ferror-limit=" is useful to get more error output. - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); cfg.flag("-Wno-deprecated-declarations"); cfg.define("_XOPEN_SOURCE", Some("700")); @@ -1343,7 +1342,7 @@ fn test_solarish(target: &str) { fn test_netbsd(target: &str) { assert!(target.contains("netbsd")); - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); cfg.flag("-Wno-deprecated-declarations"); cfg.define("_NETBSD_SOURCE", Some("1")); @@ -1559,7 +1558,7 @@ fn test_netbsd(target: &str) { fn test_dragonflybsd(target: &str) { assert!(target.contains("dragonfly")); - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); cfg.flag("-Wno-deprecated-declarations"); headers! { @@ -1786,7 +1785,7 @@ fn test_wasi(target: &str) { assert!(target.contains("wasi")); let p2 = target.contains("wasip2"); - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); cfg.define("_GNU_SOURCE", None); headers! { cfg: @@ -1899,7 +1898,7 @@ fn test_android(target: &str) { let x86 = target.contains("i686") || target.contains("x86_64"); let aarch64 = target.contains("aarch64"); - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); cfg.define("_GNU_SOURCE", None); headers! { cfg: @@ -2400,7 +2399,7 @@ fn test_android(target: &str) { fn test_freebsd(target: &str) { assert!(target.contains("freebsd")); - let mut cfg = ctest_next_cfg(); + let mut cfg = ctest_cfg(); let freebsd_ver = which_freebsd(); @@ -3081,13 +3080,13 @@ fn test_freebsd(target: &str) { // FIXME(ctest): The original ctest bypassed this requirement somehow. cfg.rename_type(move |ty| (ty == "dot3Vendors").then_some(format!("enum {ty}"))); - ctest_next::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn test_emscripten(target: &str) { assert!(target.contains("emscripten")); - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); cfg.define("_GNU_SOURCE", None); // FIXME(emscripten): ?? headers! { cfg: @@ -3327,7 +3326,7 @@ fn test_emscripten(target: &str) { fn test_neutrino(target: &str) { assert!(target.contains("nto-qnx")); - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); if target.ends_with("_iosock") { let qnx_target_val = env::var("QNX_TARGET") .unwrap_or_else(|_| "QNX_TARGET_not_set_please_source_qnxsdp".into()); @@ -3773,7 +3772,7 @@ fn test_linux(target: &str) { let musl_v1_2_3 = env::var("RUST_LIBC_UNSTABLE_MUSL_V1_2_3").is_ok(); let old_musl = musl && !musl_v1_2_3; - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); if musl_v1_2_3 { cfg.cfg("musl_v1_2_3", None); } @@ -5039,7 +5038,7 @@ fn test_linux_like_apis(target: &str) { if linux || android || emscripten { // test strerror_r from the `string.h` header - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); config_gnu_bits(target, &mut cfg); cfg.skip_type(|_| true).skip_static(|_| true); @@ -5056,7 +5055,7 @@ fn test_linux_like_apis(target: &str) { if linux || android || emscripten { // test fcntl - see: // http://man7.org/linux/man-pages/man2/fcntl.2.html - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); config_gnu_bits(target, &mut cfg); if musl { @@ -5086,7 +5085,7 @@ fn test_linux_like_apis(target: &str) { if (linux && !wali) || android { // test termios - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); config_gnu_bits(target, &mut cfg); cfg.header("asm/termbits.h"); cfg.header("linux/termios.h"); @@ -5111,7 +5110,7 @@ fn test_linux_like_apis(target: &str) { if linux || android { // test IPV6_ constants: - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); config_gnu_bits(target, &mut cfg); headers! { cfg: @@ -5143,7 +5142,7 @@ fn test_linux_like_apis(target: &str) { // These types have a field called `p_type`, but including // "resolve.h" defines a `p_type` macro that expands to `__p_type` // making the tests for these fails when both are included. - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); config_gnu_bits(target, &mut cfg); cfg.header("elf.h"); cfg.skip_fn(|_| true) @@ -5163,7 +5162,7 @@ fn test_linux_like_apis(target: &str) { if (linux && !wali) || android { // Test `ARPHRD_CAN`. - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); config_gnu_bits(target, &mut cfg); cfg.header("linux/if_arp.h"); cfg.skip_fn(|_| true) @@ -5209,7 +5208,7 @@ fn which_freebsd() -> Option { fn test_haiku(target: &str) { assert!(target.contains("haiku")); - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); cfg.flag("-Wno-deprecated-declarations"); cfg.define("__USE_GNU", Some("1")); cfg.define("_GNU_SOURCE", None); @@ -5548,7 +5547,7 @@ fn test_aix(target: &str) { // ctest generates arguments supported only by clang, so make sure to // run with CC=clang. While debugging, "CFLAGS=-ferror-limit=" // is useful to get more error output. - let mut cfg = ctest_cfg(); + let mut cfg = ctest_old_cfg(); cfg.define("_THREAD_SAFE", None); // Avoid the error for definitions such as '{0, 0, 0, 1}' for From 751b8925afd7fa1e147c0b3e0708a4d910b44e3b Mon Sep 17 00:00:00 2001 From: AMS21 Date: Fri, 15 Aug 2025 12:55:15 +0200 Subject: [PATCH 0815/1228] Add missing EM_RISCV constant (backport ) (cherry picked from commit 3f2a3ab95223203b122fec083a12059d597eed0a) --- libc-test/semver/linux.txt | 1 + src/unix/linux_like/linux/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 47a029dfc6b8f..b13911b0f2a68 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -514,6 +514,7 @@ EM_PPC64 EM_PRISM EM_RCE EM_RH32 +EM_RISCV EM_S370 EM_S390 EM_SH diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 3e093f93e6af7..b41f7b4fe8224 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2482,6 +2482,7 @@ pub const EM_XTENSA: u16 = 94; pub const EM_AARCH64: u16 = 183; pub const EM_TILEPRO: u16 = 188; pub const EM_TILEGX: u16 = 191; +pub const EM_RISCV: u16 = 243; pub const EM_ALPHA: u16 = 0x9026; // elf.h - Legal values for e_version (version). From 4d4ee8de978ea3d75cab1880a5cb6991435366b6 Mon Sep 17 00:00:00 2001 From: Josh Megnauth Date: Wed, 13 Aug 2025 02:33:27 -0400 Subject: [PATCH 0816/1228] redox: dirfd, VDISABLE, and resource consts (backport ) (cherry picked from commit d09b1dacaff5fbdadc81aafc0e1729cab3df1620) --- libc-test/semver/redox.txt | 13 +++++++++++++ src/unix/redox/mod.rs | 20 ++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/libc-test/semver/redox.txt b/libc-test/semver/redox.txt index 3c0bd87f686d4..790f2ac76b398 100644 --- a/libc-test/semver/redox.txt +++ b/libc-test/semver/redox.txt @@ -16,6 +16,7 @@ B460800 B500000 B576000 B921600 +BUFSIZ DT_UNKNOWN EADV EBADE @@ -130,10 +131,17 @@ OLCUC O_ASYNC O_EXLOCK O_FSYNC +O_NOCTTY O_PATH O_SHLOCK O_SYMLINK PTHREAD_STACK_MIN +RLIM_INFINITY +RLIM_SAVED_CUR +RLIM_SAVED_MAX +RUSAGE_CHILDREN +RUSAGE_SELF +RUSAGE_THREAD SA_RESTORER SCM_RIGHTS SIGIO @@ -172,6 +180,9 @@ VWERASE WEXITED WNOWAIT WSTOPPED +_IOFBF +_IOLBF +_IONBF _PC_2_SYMLINKS _PC_ALLOC_SIZE_MIN _PC_ASYNC_IO @@ -184,6 +195,7 @@ _PC_REC_XFER_ALIGN _PC_SOCK_MAXBUF _PC_SYMLINK_MAX _PC_SYNC_IO +_POSIX_VDISABLE _SC_LOGIN_NAME_MAX _SC_RE_DUP_MAX __WALL @@ -194,6 +206,7 @@ bsearch chroot clearerr difftime +dirfd endgrent endpwent endservent diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index e87806e8109cc..308e08b7e9114 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -532,6 +532,7 @@ pub const O_SYMLINK: c_int = 0x4000_0000; // Negative to allow it to be used as int // FIXME(redox): Fix negative values missing from includes pub const O_NOFOLLOW: c_int = -0x8000_0000; +pub const O_NOCTTY: c_int = 0x00000200; // locale.h pub const LC_ALL: c_int = 0; @@ -626,6 +627,15 @@ pub const PTHREAD_RWLOCK_INITIALIZER: crate::pthread_rwlock_t = crate::pthread_r }; pub const PTHREAD_STACK_MIN: size_t = 4096; +// sys/resource.h +pub const RLIM_INFINITY: u64 = !0; +pub const RLIM_SAVED_CUR: u64 = RLIM_INFINITY; +pub const RLIM_SAVED_MAX: u64 = RLIM_INFINITY; +pub const RUSAGE_SELF: c_int = 0; +pub const RUSAGE_CHILDREN: c_int = -1; +pub const RUSAGE_BOTH: c_int = -2; +pub const RUSAGE_THREAD: c_int = 1; + // signal.h pub const SIG_BLOCK: c_int = 0; pub const SIG_UNBLOCK: c_int = 1; @@ -935,6 +945,8 @@ pub const TCSANOW: c_int = 0; pub const TCSADRAIN: c_int = 1; pub const TCSAFLUSH: c_int = 2; +pub const _POSIX_VDISABLE: crate::cc_t = 0; + // sys/wait.h pub const WNOHANG: c_int = 1; pub const WUNTRACED: c_int = 2; @@ -984,6 +996,11 @@ pub const R_OK: c_int = 4; pub const W_OK: c_int = 2; pub const X_OK: c_int = 1; +// stdio.h +pub const BUFSIZ: c_uint = 1024; +pub const _IOFBF: c_int = 0; +pub const _IOLBF: c_int = 1; +pub const _IONBF: c_int = 2; pub const SEEK_SET: c_int = 0; pub const SEEK_CUR: c_int = 1; pub const SEEK_END: c_int = 2; @@ -1096,6 +1113,9 @@ extern "C" { pub fn __errno_location() -> *mut c_int; pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; + // dirent.h + pub fn dirfd(dirp: *mut crate::DIR) -> c_int; + // unistd.h pub fn pipe2(fds: *mut c_int, flags: c_int) -> c_int; pub fn getdtablesize() -> c_int; From a0225a05ffa86766351163e6f8c307d8d829573a Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 20 Sep 2025 19:40:43 -0500 Subject: [PATCH 0817/1228] ci: libc-0.2: Don't specify `needs` for tier 2 jobs On `main` we require that the tier 1 tests pass before running tier 2 jobs in an effort to avoid spending CI time when things would fail smoke checks. `libc-0.2` has a bit of a different flow though: most PRs are bulk backports that contain a number of patches which have already been validated once on `main`. To speed up the backport process a bit, remove `needs:` so all jobs start at the same time. --- .github/workflows/ci.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 81842e5e6d9da..5e074cbce02d9 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -163,9 +163,9 @@ jobs: path: ${{ env.ARCHIVE_PATH }} retention-days: 5 + # Unlike `main` this job doesn't have `needs`, in order to speed up backports a bit test_tier2: name: Test tier2 - needs: [test_tier1, style_check] runs-on: ubuntu-24.04 strategy: fail-fast: true @@ -270,7 +270,6 @@ jobs: test_tier2_vm: name: Test tier2 VM - needs: [test_tier1, style_check] runs-on: ubuntu-latest strategy: fail-fast: true From 02c10d01c10f51121add1ab59ac2b7d1d9385d78 Mon Sep 17 00:00:00 2001 From: mbyx Date: Thu, 21 Aug 2025 14:01:54 +0500 Subject: [PATCH 0818/1228] libc: Switch cygwin, redox, and dragonflybsd to the new ctest (backport ) (cherry picked from commit ea7fc0f6a8d70892883f15484ac8defe2eb1a5bd) --- libc-test/build.rs | 303 +++++++++++++++++++++------------------------ 1 file changed, 142 insertions(+), 161 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 883023e26932b..72b1e1d746577 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -706,7 +706,7 @@ fn test_openbsd(target: &str) { fn test_cygwin(target: &str) { assert!(target.contains("cygwin")); - let mut cfg = ctest_old_cfg(); + let mut cfg = ctest_cfg(); cfg.define("_GNU_SOURCE", None); headers! { cfg: @@ -761,29 +761,27 @@ fn test_cygwin(target: &str) { "wchar.h", } - cfg.type_name(move |ty, is_struct, is_union| { + cfg.rename_type(|ty| match ty { + "Ioctl" => Some("int".to_string()), + _ => None, + }); + + cfg.rename_struct_ty(move |ty| { match ty { // Just pass all these through, no need for a "struct" prefix - "FILE" | "DIR" | "Dl_info" | "fd_set" => ty.to_string(), - - "Ioctl" => "int".to_string(), - - t if is_union => format!("union {t}"), - - t if t.ends_with("_t") => t.to_string(), + "FILE" | "DIR" | "Dl_info" | "fd_set" => Some(ty.to_string()), // sigval is a struct in Rust, but a union in C: - "sigval" => "union sigval".to_string(), + "sigval" => Some("union sigval".to_string()), - // put `struct` in front of all structs:. - t if is_struct => format!("struct {t}"), + t if t.ends_with("_t") => Some(t.to_string()), - t => t.to_string(), + _ => None, } }); - cfg.skip_const(move |name| { - match name { + cfg.skip_const(move |constant| { + match constant.ident() { // FIXME(cygwin): these constants do not exist on Cygwin "ARPOP_REQUEST" | "ARPOP_REPLY" | "ATF_COM" | "ATF_PERM" | "ATF_PUBL" | "ATF_USETRAILERS" => true, @@ -809,33 +807,33 @@ fn test_cygwin(target: &str) { _ => false, }); - cfg.skip_struct(move |ty| { - if ty.starts_with("__c_anonymous_") { + cfg.skip_struct(move |struct_| { + if struct_.ident().starts_with("__c_anonymous_") { return true; } false }); - cfg.field_name(move |struct_, field| { - match field { + cfg.rename_struct_field(move |struct_, field| { + match field.ident() { // Our stat *_nsec fields normally don't actually exist but are part // of a timeval struct - s if s.ends_with("_nsec") && struct_.starts_with("stat") => { - s.replace("e_nsec", ".tv_nsec") + s if s.ends_with("_nsec") && struct_.ident().starts_with("stat") => { + Some(s.replace("e_nsec", ".tv_nsec")) } // FIXME(cygwin): sigaction actually contains a union with two variants: // a sa_sigaction with type: (*)(int, struct __siginfo *, void *) // a sa_handler with type sig_t - "sa_sigaction" if struct_ == "sigaction" => "sa_handler".to_string(), + "sa_sigaction" if struct_.ident() == "sigaction" => Some("sa_handler".to_string()), - s => s.to_string(), + _ => None, } }); - cfg.skip_field(|struct_, field| { - match (struct_, field) { + cfg.skip_struct_field(|struct_, field| { + match (struct_.ident(), field.ident()) { // this is actually a union on linux, so we can't represent it well and // just insert some padding. ("ifreq", "ifr_ifru") => true, @@ -845,9 +843,9 @@ fn test_cygwin(target: &str) { } }); - cfg.skip_fn(move |name| { + cfg.skip_fn(move |func| { // skip those that are manually verified - match name { + match func.ident() { // There are two versions of the sterror_r function, see // // https://linux.die.net/man/3/strerror_r @@ -872,7 +870,7 @@ fn test_cygwin(target: &str) { } }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn test_windows(target: &str) { @@ -1003,7 +1001,7 @@ fn test_windows(target: &str) { fn test_redox(target: &str) { assert!(target.contains("redox")); - let mut cfg = ctest_old_cfg(); + let mut cfg = ctest_cfg(); cfg.flag("-Wno-deprecated-declarations"); headers! { @@ -1047,7 +1045,7 @@ fn test_redox(target: &str) { "wchar.h", } - cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn test_solarish(target: &str) { @@ -1558,7 +1556,7 @@ fn test_netbsd(target: &str) { fn test_dragonflybsd(target: &str) { assert!(target.contains("dragonfly")); - let mut cfg = ctest_old_cfg(); + let mut cfg = ctest_cfg(); cfg.flag("-Wno-deprecated-declarations"); headers! { @@ -1652,58 +1650,58 @@ fn test_dragonflybsd(target: &str) { "iconv.h", } - cfg.type_name(move |ty, is_struct, is_union| { + cfg.rename_struct_ty(move |ty| { match ty { // Just pass all these through, no need for a "struct" prefix "FILE" | "fd_set" | "Dl_info" | "DIR" | "Elf32_Phdr" | "Elf64_Phdr" | "Elf32_Shdr" | "Elf64_Shdr" | "Elf32_Sym" | "Elf64_Sym" | "Elf32_Ehdr" | "Elf64_Ehdr" - | "Elf32_Chdr" | "Elf64_Chdr" => ty.to_string(), - - // FIXME(dragonflybsd): OSX calls this something else - "sighandler_t" => "sig_t".to_string(), - - t if is_union => format!("union {t}"), + | "Elf32_Chdr" | "Elf64_Chdr" => Some(ty.to_string()), - t if t.ends_with("_t") => t.to_string(), + t if t.ends_with("_t") => Some(t.to_string()), // sigval is a struct in Rust, but a union in C: - "sigval" => "union sigval".to_string(), + "sigval" => Some("union sigval".to_string()), - // put `struct` in front of all structs:. - t if is_struct => format!("struct {t}"), + _ => None, + } + }); - t => t.to_string(), + cfg.rename_type(|ty| { + match ty { + // FIXME(dragonflybsd): OSX calls this something else + "sighandler_t" => Some("sig_t".to_string()), + _ => None, } }); - cfg.field_name(move |struct_, field| { - match field { + cfg.rename_struct_field(move |struct_, field| { + match field.ident() { // Our stat *_nsec fields normally don't actually exist but are part // of a timeval struct - s if s.ends_with("_nsec") && struct_.starts_with("stat") => { - s.replace("e_nsec", ".tv_nsec") + s if s.ends_with("_nsec") && struct_.ident().starts_with("stat") => { + Some(s.replace("e_nsec", ".tv_nsec")) } - "u64" if struct_ == "epoll_event" => "data.u64".to_string(), + "u64" if struct_.ident() == "epoll_event" => Some("data.u64".to_string()), // Field is named `type` in C but that is a Rust keyword, // so these fields are translated to `type_` in the bindings. - "type_" if struct_ == "rtprio" => "type".to_string(), - s => s.to_string(), + "type_" if struct_.ident() == "rtprio" => Some("type".to_string()), + _ => None, } }); - cfg.skip_type(move |ty| { - match ty { + cfg.skip_alias(move |ty| { + match ty.ident() { // sighandler_t is crazy across platforms "sighandler_t" => true, _ => false, } }); - cfg.skip_struct(move |ty| { - if ty.starts_with("__c_anonymous_") { + cfg.skip_struct(move |struct_| { + if struct_.ident().starts_with("__c_anonymous_") { return true; } - match ty { + match struct_.ident() { // FIXME(dragonflybsd): These are tested as part of the linux_fcntl tests since // there are header conflicts when including them with all the other // structs. @@ -1728,8 +1726,8 @@ fn test_dragonflybsd(target: &str) { } }); - cfg.skip_const(move |name| { - match name { + cfg.skip_const(move |constant| { + match constant.ident() { "SIG_DFL" | "SIG_ERR" | "SIG_IGN" => true, // sighandler_t weirdness // weird signed extension or something like that? @@ -1744,12 +1742,11 @@ fn test_dragonflybsd(target: &str) { } }); - cfg.skip_fn(move |name| { + cfg.skip_fn(move |func| { // skip those that are manually verified - match name { + match func.ident() { // FIXME: https://github.com/rust-lang/libc/issues/1272 "execv" | "execve" | "execvp" | "fexecve" => true, - "getrlimit" | "getrlimit64" | // non-int in 1st arg "setrlimit" | "setrlimit64" | // non-int in 1st arg "prlimit" | "prlimit64" // non-int in 2nd arg @@ -1759,26 +1756,26 @@ fn test_dragonflybsd(target: &str) { } }); - cfg.skip_field_type(move |struct_, field| { + cfg.skip_struct_field_type(move |struct_, field| { // This is a weird union, don't check the type. - (struct_ == "ifaddrs" && field == "ifa_ifu") || + (struct_.ident() == "ifaddrs" && field.ident() == "ifa_ifu") || // sighandler_t type is super weird - (struct_ == "sigaction" && field == "sa_sigaction") || + (struct_.ident() == "sigaction" && field.ident() == "sa_sigaction") || // sigval is actually a union, but we pretend it's a struct - (struct_ == "sigevent" && field == "sigev_value") || + (struct_.ident() == "sigevent" && field.ident() == "sigev_value") || // aio_buf is "volatile void*" and Rust doesn't understand volatile - (struct_ == "aiocb" && field == "aio_buf") + (struct_.ident() == "aiocb" && field.ident() == "aio_buf") }); - cfg.skip_field(move |struct_, field| { + cfg.skip_struct_field(move |struct_, field| { // this is actually a union on linux, so we can't represent it well and // just insert some padding. - (struct_ == "siginfo_t" && field == "_pad") || + (struct_.ident() == "siginfo_t" && field.ident() == "_pad") || // sigev_notify_thread_id is actually part of a sigev_un union - (struct_ == "sigevent" && field == "sigev_notify_thread_id") + (struct_.ident() == "sigevent" && field.ident() == "sigev_notify_thread_id") }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn test_wasi(target: &str) { @@ -3326,7 +3323,7 @@ fn test_emscripten(target: &str) { fn test_neutrino(target: &str) { assert!(target.contains("nto-qnx")); - let mut cfg = ctest_old_cfg(); + let mut cfg = ctest_cfg(); if target.ends_with("_iosock") { let qnx_target_val = env::var("QNX_TARGET") .unwrap_or_else(|_| "QNX_TARGET_not_set_please_source_qnxsdp".into()); @@ -3448,49 +3445,40 @@ fn test_neutrino(target: &str) { ) .unwrap(); - cfg.type_name(move |ty, is_struct, is_union| { + cfg.rename_struct_ty(move |ty| { match ty { // Just pass all these through, no need for a "struct" prefix "FILE" | "fd_set" | "Dl_info" | "DIR" | "Elf32_Phdr" | "Elf64_Phdr" | "Elf32_Shdr" | "Elf64_Shdr" | "Elf32_Sym" | "Elf64_Sym" | "Elf32_Ehdr" | "Elf64_Ehdr" | "Elf32_Chdr" | "Elf64_Chdr" | "aarch64_qreg_t" | "syspage_entry_info" - | "syspage_array_info" => ty.to_string(), - - "Ioctl" => "int".to_string(), - - t if is_union => format!("union {t}"), + | "syspage_array_info" => Some(ty.to_string()), - t if t.ends_with("_t") => t.to_string(), - - // put `struct` in front of all structs:. - t if is_struct => format!("struct {t}"), - - t => t.to_string(), + t if t.ends_with("_t") => Some(t.to_string()), + _ => None, } }); - cfg.field_name(move |_struct_, field| match field { - "type_" => "type".to_string(), + cfg.rename_type(|ty| match ty { + "Ioctl" => Some("int".to_string()), + _ => None, + }); - s => s.to_string(), + cfg.rename_struct_field(move |_struct_, field| match field.ident() { + "type_" => Some("type".to_string()), + _ => None, }); - cfg.volatile_item(|i| { - use ctest_old::VolatileItemKind::*; - match i { - // The following fields are volatie but since we cannot express that in - // Rust types, we have to explicitly tell the checker about it here: - StructField(ref n, ref f) if n == "aiocb" && f == "aio_buf" => true, - StructField(ref n, ref f) if n == "qtime_entry" && f == "nsec_tod_adjust" => true, - StructField(ref n, ref f) if n == "qtime_entry" && f == "nsec" => true, - StructField(ref n, ref f) if n == "qtime_entry" && f == "nsec_stable" => true, - StructField(ref n, ref f) if n == "intrspin" && f == "value" => true, - _ => false, - } + cfg.volatile_struct_field(|s, f| match (s.ident(), f.ident()) { + ("aiocb", "aio_buf") => true, + ("qtime_entry", "nsec_tod_adjust") => true, + ("qtime_entry", "nsec") => true, + ("qtime_entry", "nsec_stable") => true, + ("intrspin", "value") => true, + _ => false, }); - cfg.skip_type(move |ty| { - match ty { + cfg.skip_alias(move |ty| { + match ty.ident() { // FIXME(sighandler): `sighandler_t` type is incorrect, see: // https://github.com/rust-lang/libc/issues/1359 "sighandler_t" => true, @@ -3505,11 +3493,11 @@ fn test_neutrino(target: &str) { } }); - cfg.skip_struct(move |ty| { - if ty.starts_with("__c_anonymous_") { + cfg.skip_struct(move |struct_| { + if struct_.ident().starts_with("__c_anonymous_") { return true; } - match ty { + match struct_.ident() { "Elf64_Phdr" | "Elf32_Phdr" => true, // FIXME(union): This is actually a union, not a struct @@ -3522,8 +3510,8 @@ fn test_neutrino(target: &str) { } }); - cfg.skip_const(move |name| { - match name { + cfg.skip_const(move |constant| { + match constant.ident() { // These signal "functions" are actually integer values that are casted to a fn ptr // This causes the compiler to err because of "illegal cast of int to ptr". "SIG_DFL" => true, @@ -3534,9 +3522,9 @@ fn test_neutrino(target: &str) { } }); - cfg.skip_fn(move |name| { + cfg.skip_fn(move |func| { // skip those that are manually verified - match name { + match func.ident() { // FIXME: https://github.com/rust-lang/libc/issues/1272 "execv" | "execve" | "execvp" | "execvpe" => true, @@ -3571,16 +3559,16 @@ fn test_neutrino(target: &str) { } }); - cfg.skip_field_type(move |struct_, field| { + cfg.skip_struct_field_type(move |struct_, field| { // sigval is actually a union, but we pretend it's a struct - struct_ == "sigevent" && field == "sigev_value" || + struct_.ident() == "sigevent" && field.ident() == "sigev_value" || // Anonymous structures - struct_ == "_idle_hook" && field == "time" + struct_.ident() == "_idle_hook" && field.ident() == "time" }); - cfg.skip_field(|struct_, field| { + cfg.skip_struct_field(|struct_, field| { matches!( - (struct_, field), + (struct_.ident(), field.ident()), ("__sched_param", "reserved") | ("sched_param", "reserved") | ("sigevent", "__padding1") // ensure alignment @@ -3591,15 +3579,15 @@ fn test_neutrino(target: &str) { ) }); - cfg.skip_static(move |name| name == "__dso_handle"); + cfg.skip_static(move |static_| static_.ident() == "__dso_handle"); - cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn test_vxworks(target: &str) { assert!(target.contains("vxworks")); - let mut cfg = ctest_old::TestGenerator::new(); + let mut cfg = ctest_cfg(); headers! { cfg: "vxWorks.h", "yvals.h", @@ -3660,7 +3648,7 @@ fn test_vxworks(target: &str) { "mqueue.h", } // FIXME(vxworks) - cfg.skip_const(move |name| match name { + cfg.skip_const(move |constant| match constant.ident() { // sighandler_t weirdness "SIG_DFL" | "SIG_ERR" | "SIG_IGN" // This is not defined in vxWorks @@ -3668,28 +3656,28 @@ fn test_vxworks(target: &str) { _ => false, }); // FIXME(vxworks) - cfg.skip_type(move |ty| match ty { + cfg.skip_alias(move |ty| match ty.ident() { "stat64" | "sighandler_t" | "off64_t" => true, _ => false, }); - cfg.skip_field_type(move |struct_, field| match (struct_, field) { - ("siginfo_t", "si_value") | ("stat", "st_size") | ("sigaction", "sa_u") => true, - _ => false, - }); + cfg.skip_struct_field_type( + move |struct_, field| match (struct_.ident(), field.ident()) { + ("siginfo_t", "si_value") | ("stat", "st_size") | ("sigaction", "sa_u") => true, + _ => false, + }, + ); cfg.skip_roundtrip(|_| false); - cfg.type_name(move |ty, is_struct, is_union| match ty { - "DIR" | "FILE" | "Dl_info" | "RTP_DESC" => ty.to_string(), - t if is_union => format!("union {t}"), - t if t.ends_with("_t") => t.to_string(), - t if is_struct => format!("struct {t}"), - t => t.to_string(), + cfg.rename_struct_ty(move |ty| match ty { + "DIR" | "FILE" | "Dl_info" | "RTP_DESC" => Some(ty.to_string()), + t if t.ends_with("_t") => Some(t.to_string()), + _ => None, }); // FIXME(vxworks) - cfg.skip_fn(move |name| match name { + cfg.skip_fn(move |func| match func.ident() { // sigval "sigqueue" | "_sigqueue" // sighandler_t @@ -3699,7 +3687,7 @@ fn test_vxworks(target: &str) { _ => false, }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn config_gnu_bits(target: &str, cfg: &mut ctest_old::TestGenerator) { @@ -5547,7 +5535,7 @@ fn test_aix(target: &str) { // ctest generates arguments supported only by clang, so make sure to // run with CC=clang. While debugging, "CFLAGS=-ferror-limit=" // is useful to get more error output. - let mut cfg = ctest_old_cfg(); + let mut cfg = ctest_cfg(); cfg.define("_THREAD_SAFE", None); // Avoid the error for definitions such as '{0, 0, 0, 1}' for @@ -5641,7 +5629,7 @@ fn test_aix(target: &str) { "wchar.h", } - cfg.skip_type(move |ty| match ty { + cfg.skip_alias(move |ty| match ty.ident() { // AIX does not define type 'sighandler_t'. "sighandler_t" => true, @@ -5652,21 +5640,18 @@ fn test_aix(target: &str) { _ => false, }); - cfg.type_name(move |ty, is_struct, is_union| match ty { - "DIR" => ty.to_string(), - "FILE" => ty.to_string(), - "ACTION" => ty.to_string(), + cfg.rename_struct_ty(move |ty| match ty { + "DIR" | "FILE" | "ACTION" => Some(ty.to_string()), // 'sigval' is a struct in Rust, but a union in C. - "sigval" => format!("union sigval"), + "sigval" => Some(format!("union sigval")), - t if t.ends_with("_t") => t.to_string(), - t if is_struct => format!("struct {}", t), - t if is_union => format!("union {}", t), - t => t.to_string(), + t if t.ends_with("_t") => Some(t.to_string()), + + _ => None, }); - cfg.skip_const(move |name| match name { + cfg.skip_const(move |constant| match constant.ident() { // Skip 'sighandler_t' assignments. "SIG_DFL" | "SIG_ERR" | "SIG_IGN" => true, @@ -5694,8 +5679,8 @@ fn test_aix(target: &str) { _ => false, }); - cfg.skip_struct(move |ty| { - match ty { + cfg.skip_struct(move |struct_| { + match struct_.ident() { // FIXME(union): actually a union. "sigval" => true, @@ -5723,8 +5708,8 @@ fn test_aix(target: &str) { } }); - cfg.skip_field_type(move |struct_, field| { - match (struct_, field) { + cfg.skip_struct_field_type(move |struct_, field| { + match (struct_.ident(), field.ident()) { // AIX does not define 'sighandler_t'. ("sigaction", "sa_sigaction") => true, @@ -5755,20 +5740,20 @@ fn test_aix(target: &str) { } }); - cfg.skip_field(move |s, field| { - match s { + cfg.skip_struct_field(move |s, field| { + match s.ident() { // The field 'u' is actually a unnamed union in the AIX header. - "poll_ctl_ext" if field == "u" => true, + "poll_ctl_ext" if field.ident() == "u" => true, // The field 'data' is actually a unnamed union in the AIX header. - "pollfd_ext" if field == "data" => true, + "pollfd_ext" if field.ident() == "data" => true, _ => false, } }); - cfg.skip_fn(move |name| { - match name { + cfg.skip_fn(move |func| { + match func.ident() { // 'sighandler_t' is not defined on AIX. "signal" => true, @@ -5831,17 +5816,13 @@ fn test_aix(target: &str) { } }); - cfg.volatile_item(|i| { - use ctest_old::VolatileItemKind::*; - match i { - // 'aio_buf' is of type 'volatile void**' but since we cannot - // express that in Rust types, we have to explicitly tell the - // checker about it here. - StructField(ref n, ref f) if n == "aiocb" && f == "aio_buf" => true, - - _ => false, - } + cfg.volatile_struct_field(|s, f| match (s.ident(), f.ident()) { + // 'aio_buf' is of type 'volatile void**' but since we cannot + // express that in Rust types, we have to explicitly tell the + // checker about it here. + ("aiocb", "aio_buf") => true, + _ => false, }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } From 4d041c7355dada0b44b16b0d744f20245dc8c953 Mon Sep 17 00:00:00 2001 From: mbyx Date: Fri, 15 Aug 2025 15:27:12 +0500 Subject: [PATCH 0819/1228] libc-test: Switch Linux to ctest-next (backport ) (cherry picked from commit 6f115e55a5c73907a9a860d5b10da1ffaa403f0f) --- libc-test/build.rs | 315 ++++++++++++++++++++++++--------------------- 1 file changed, 165 insertions(+), 150 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 72b1e1d746577..161d0b00dc1ac 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3690,7 +3690,7 @@ fn test_vxworks(target: &str) { ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } -fn config_gnu_bits(target: &str, cfg: &mut ctest_old::TestGenerator) { +fn config_gnu_bits(target: &str, cfg: &mut ctest::TestGenerator) { let pointer_width = env::var("CARGO_CFG_TARGET_POINTER_WIDTH").unwrap_or_default(); if target.contains("gnu") && target.contains("linux") @@ -3760,15 +3760,15 @@ fn test_linux(target: &str) { let musl_v1_2_3 = env::var("RUST_LIBC_UNSTABLE_MUSL_V1_2_3").is_ok(); let old_musl = musl && !musl_v1_2_3; - let mut cfg = ctest_old_cfg(); + let mut cfg = ctest_cfg(); if musl_v1_2_3 { cfg.cfg("musl_v1_2_3", None); } - cfg.define("_GNU_SOURCE", None); - // This macro re-defines fscanf,scanf,sscanf to link to the symbols that are - // deprecated since glibc >= 2.29. This allows Rust binaries to link against - // glibc versions older than 2.29. - cfg.define("__GLIBC_USE_DEPRECATED_SCANF", None); + cfg.define("_GNU_SOURCE", None) + // This macro re-defines fscanf,scanf,sscanf to link to the symbols that are + // deprecated since glibc >= 2.29. This allows Rust binaries to link against + // glibc versions older than 2.29. + .define("__GLIBC_USE_DEPRECATED_SCANF", None); config_gnu_bits(target, &mut cfg); @@ -3970,41 +3970,50 @@ fn test_linux(target: &str) { [!uclibc]: "aio.h", } - cfg.type_name(move |ty, is_struct, is_union| { - match ty { - // Just pass all these through, no need for a "struct" prefix - "FILE" | "fd_set" | "Dl_info" | "DIR" | "Elf32_Phdr" | "Elf64_Phdr" | "Elf32_Shdr" - | "Elf64_Shdr" | "Elf32_Sym" | "Elf64_Sym" | "Elf32_Ehdr" | "Elf64_Ehdr" - | "Elf32_Chdr" | "Elf64_Chdr" => ty.to_string(), - - "Ioctl" if gnu => "unsigned long".to_string(), - "Ioctl" => "int".to_string(), + // Just pass all these through, no need for a "struct" prefix + let typedef_structs = [ + "FILE", + "fd_set", + "Dl_info", + "DIR", + "Elf32_Phdr", + "Elf64_Phdr", + "Elf32_Shdr", + "Elf64_Shdr", + "Elf32_Sym", + "Elf64_Sym", + "Elf32_Ehdr", + "Elf64_Ehdr", + "Elf32_Chdr", + "Elf64_Chdr", + ]; + // typedefs don't need any keywords + cfg.rename_struct_ty(move |ty| typedef_structs.contains(&ty).then_some(ty.to_string())) + .rename_struct_ty(|ty| ty.ends_with("_t").then_some(ty.to_string())) + .rename_union_ty(|ty| ty.ends_with("_t").then_some(ty.to_string())); + cfg.rename_type(move |ty| { + match ty { + "Ioctl" if gnu => Some("unsigned long".to_string()), + "Ioctl" => Some("int".to_string()), // LFS64 types have been removed in musl 1.2.4+ - "off64_t" if musl => "off_t".to_string(), - - // typedefs don't need any keywords - t if t.ends_with("_t") => t.to_string(), - // put `struct` in front of all structs:. - t if is_struct => format!("struct {t}"), - // put `union` in front of all unions: - t if is_union => format!("union {t}"), - - t => t.to_string(), + "off64_t" if musl => Some("off_t".to_string()), + _ => None, } }); - cfg.field_name(move |struct_, field| { - match field { + cfg.rename_struct_field(|struct_, field| { + let struct_ = struct_.ident(); + match field.ident() { // Our stat *_nsec fields normally don't actually exist but are part // of a timeval struct s if s.ends_with("_nsec") && struct_.starts_with("stat") => { - s.replace("e_nsec", ".tv_nsec") + Some(s.replace("e_nsec", ".tv_nsec")) } // FIXME(linux): epoll_event.data is actually a union in C, but in Rust // it is only a u64 because we only expose one field // http://man7.org/linux/man-pages/man2/epoll_wait.2.html - "u64" if struct_ == "epoll_event" => "data.u64".to_string(), + "u64" if struct_ == "epoll_event" => Some("data.u64".to_string()), // The following structs have a field called `type` in C, // but `type` is a Rust keyword, so these fields are translated // to `type_` in Rust. @@ -4013,14 +4022,15 @@ fn test_linux(target: &str) { || struct_ == "input_mask" || struct_ == "ff_effect" => { - "type".to_string() + Some("type".to_string()) } - s => s.to_string(), + _ => None, } }); - cfg.skip_type(move |ty| { + cfg.skip_alias(move |alias| { + let ty = alias.ident(); // FIXME(musl): very recent additions to musl, not yet released. // also apparently some glibc versions if ty == "Elf32_Relr" || ty == "Elf64_Relr" { @@ -4063,10 +4073,12 @@ fn test_linux(target: &str) { } }); - cfg.skip_struct(move |ty| { - if ty.starts_with("__c_anonymous_") { - return true; - } + // Skip structs and enums that are unnamed in C. + cfg.skip_union(move |union_| union_.ident().starts_with("__c_anonymous_")); + cfg.skip_struct(move |struct_| struct_.ident().starts_with("__c_anonymous_")); + + cfg.skip_struct(move |struct_| { + let ty = struct_.ident(); // FIXME(linux): CI has old headers if ty == "ptp_sys_offset_extended" { @@ -4242,7 +4254,8 @@ fn test_linux(target: &str) { } }); - cfg.skip_const(move |name| { + cfg.skip_const(move |constant| { + let name = constant.ident(); if !gnu { // Skip definitions from the kernel on non-glibc Linux targets. // They're libc-independent, so we only need to check them on one @@ -4741,7 +4754,19 @@ fn test_linux(target: &str) { } }); - cfg.skip_fn(move |name| { + let c_enums = [ + "tpacket_versions", + "proc_cn_mcast_op", + "proc_cn_event", + "pid_type", + ]; + cfg.alias_is_c_enum(move |e| c_enums.contains(&e)); + + // FIXME(libc): `pid_type` and `proc_cn_event` is hidden. + cfg.skip_c_enum(|e| e == "pid_type" || e == "proc_cn_event"); + + cfg.skip_fn(move |function| { + let name = function.ident(); // skip those that are manually verified match name { // FIXME: https://github.com/rust-lang/libc/issues/1272 @@ -4853,42 +4878,38 @@ fn test_linux(target: &str) { } }); - cfg.skip_field_type(move |struct_, field| { + cfg.skip_struct_field_type(move |union_, field| { + let union_ = union_.ident(); + let field = field.ident(); // This is a weird union, don't check the type. - (struct_ == "ifaddrs" && field == "ifa_ifu") || + (union_ == "ifaddrs" && field == "ifa_ifu") || // sighandler_t type is super weird - (struct_ == "sigaction" && field == "sa_sigaction") || + (union_ == "sigaction" && field == "sa_sigaction") || // __timeval type is a patch which doesn't exist in glibc - (struct_ == "utmpx" && field == "ut_tv") || + (union_ == "utmpx" && field == "ut_tv") || // sigval is actually a union, but we pretend it's a struct - (struct_ == "sigevent" && field == "sigev_value") || + (union_ == "sigevent" && field == "sigev_value") || // this one is an anonymous union - (struct_ == "ff_effect" && field == "u") || + (union_ == "ff_effect" && field == "u") || // `__exit_status` type is a patch which is absent in musl - (struct_ == "utmpx" && field == "ut_exit" && musl) || + (union_ == "utmpx" && field == "ut_exit" && musl) || // `can_addr` is an anonymous union - (struct_ == "sockaddr_can" && field == "can_addr") || + (union_ == "sockaddr_can" && field == "can_addr") || // `anonymous_1` is an anonymous union - (struct_ == "ptp_perout_request" && field == "anonymous_1") || + (union_ == "ptp_perout_request" && field == "anonymous_1") || // `anonymous_2` is an anonymous union - (struct_ == "ptp_perout_request" && field == "anonymous_2") || + (union_ == "ptp_perout_request" && field == "anonymous_2") || // FIXME(linux): `adjust_phase` requires >= 5.7 kernel headers // FIXME(linux): `max_phase_adj` requires >= 5.19 kernel headers // the rsv field shrunk when those fields got added, so is omitted too - (struct_ == "ptp_clock_caps" && (loongarch64 || sparc64) && (["adjust_phase", "max_phase_adj", "rsv"].contains(&field))) + (union_ == "ptp_clock_caps" && (loongarch64 || sparc64) && (["adjust_phase", "max_phase_adj", "rsv"].contains(&field))) }); - cfg.volatile_item(|i| { - use ctest_old::VolatileItemKind::*; - match i { - // aio_buf is a volatile void** but since we cannot express that in - // Rust types, we have to explicitly tell the checker about it here: - StructField(ref n, ref f) if n == "aiocb" && f == "aio_buf" => true, - _ => false, - } - }); + cfg.volatile_struct_field(|s, f| s.ident() == "aiocb" && f.ident() == "aio_buf"); - cfg.skip_field(move |struct_, field| { + cfg.skip_struct_field(move |struct_, field| { + let struct_ = struct_.ident(); + let field = field.ident(); // this is actually a union on linux, so we can't represent it well and // just insert some padding. (struct_ == "siginfo_t" && field == "_pad") || @@ -5008,7 +5029,7 @@ fn test_linux(target: &str) { _ => false, }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); test_linux_like_apis(target); } @@ -5024,144 +5045,138 @@ fn test_linux_like_apis(target: &str) { let android = target.contains("android"); assert!(linux || android || emscripten); + let mut cfg = ctest_cfg(); if linux || android || emscripten { // test strerror_r from the `string.h` header - let mut cfg = ctest_old_cfg(); config_gnu_bits(target, &mut cfg); - cfg.skip_type(|_| true).skip_static(|_| true); - headers! { cfg: "string.h" } - cfg.skip_fn(|f| match f { - "strerror_r" => false, - _ => true, - }) - .skip_const(|_| true) - .skip_struct(|_| true); - cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_strerror_r.rs"); + + cfg.skip_alias(|_| true) + .skip_static(|_| true) + .skip_const(|_| true) + .skip_struct(|_| true) + .skip_union(|_| true) + .skip_fn(|function| function.ident() != "strerror_r"); + + ctest::generate_test(&mut cfg, "../src/lib.rs", "linux_strerror_r.rs").unwrap(); } + let mut cfg = ctest_cfg(); if linux || android || emscripten { // test fcntl - see: // http://man7.org/linux/man-pages/man2/fcntl.2.html - let mut cfg = ctest_old_cfg(); - config_gnu_bits(target, &mut cfg); + let fnctl_constants = [ + "F_CANCELLK", + "F_ADD_SEALS", + "F_GET_SEALS", + "F_SEAL_SEAL", + "F_SEAL_SHRINK", + "F_SEAL_GROW", + "F_SEAL_WRITE", + ]; + cfg.skip_alias(|_| true) + .skip_static(|_| true) + .skip_struct(|_| true) + .skip_union(|_| true) + .skip_fn(|_| true) + .skip_const(move |constant| !fnctl_constants.contains(&constant.ident())); + config_gnu_bits(target, &mut cfg); if musl { cfg.header("fcntl.h"); } else { cfg.header("linux/fcntl.h"); } - cfg.skip_type(|_| true) - .skip_static(|_| true) - .skip_struct(|_| true) - .skip_fn(|_| true) - .skip_const(move |name| match name { - // test fcntl constants: - "F_CANCELLK" | "F_ADD_SEALS" | "F_GET_SEALS" | "F_SEAL_SEAL" | "F_SEAL_SHRINK" - | "F_SEAL_GROW" | "F_SEAL_WRITE" => false, - _ => true, - }) - .type_name(move |ty, is_struct, is_union| match ty { - t if is_struct => format!("struct {t}"), - t if is_union => format!("union {t}"), - t => t.to_string(), - }); - - cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_fcntl.rs"); + ctest::generate_test(&mut cfg, "../src/lib.rs", "linux_fcntl.rs").unwrap(); } + let mut cfg = ctest_cfg(); if (linux && !wali) || android { // test termios - let mut cfg = ctest_old_cfg(); config_gnu_bits(target, &mut cfg); - cfg.header("asm/termbits.h"); - cfg.header("linux/termios.h"); - cfg.skip_type(|_| true) + + let termios_constants = [ + "BOTHER", "IBSHIFT", "TCGETS2", "TCSETS2", "TCSETSW2", "TCSETSF2", + ]; + cfg.header("asm/termbits.h") + .header("linux/termios.h") + .skip_alias(|_| true) .skip_static(|_| true) .skip_fn(|_| true) - .skip_const(|c| match c { - "BOTHER" | "IBSHIFT" => false, - "TCGETS2" | "TCSETS2" | "TCSETSW2" | "TCSETSF2" => false, - _ => true, - }) - .skip_struct(|s| s != "termios2") - .type_name(move |ty, is_struct, is_union| match ty { - "Ioctl" if gnu => "unsigned long".to_string(), - "Ioctl" => "int".to_string(), - t if is_struct => format!("struct {t}"), - t if is_union => format!("union {t}"), - t => t.to_string(), + .skip_const(move |constant| !termios_constants.contains(&constant.ident())) + .skip_union(|_| true) + .skip_struct(|s| s.ident() != "termios2") + .rename_type(move |ty| match ty { + "Ioctl" if gnu => Some("unsigned long".to_string()), + "Ioctl" => Some("int".to_string()), + _ => None, }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_termios.rs"); + + ctest::generate_test(&mut cfg, "../src/lib.rs", "linux_termios.rs").unwrap(); } + let mut cfg = ctest_cfg(); if linux || android { // test IPV6_ constants: - let mut cfg = ctest_old_cfg(); + let ipv6_constants = [ + "IPV6_FLOWINFO", + "IPV6_FLOWLABEL_MGR", + "IPV6_FLOWINFO_SEND", + "IPV6_FLOWINFO_FLOWLABEL", + "IPV6_FLOWINFO_PRIORITY", + ]; + cfg.skip_alias(|_| true) + .skip_static(|_| true) + .skip_fn(|_| true) + .skip_struct(|_| true) + .skip_union(|_| true) + .skip_const(move |constant| !ipv6_constants.contains(&constant.ident())); + config_gnu_bits(target, &mut cfg); headers! { cfg: "linux/in6.h" } - cfg.skip_type(|_| true) - .skip_static(|_| true) - .skip_fn(|_| true) - .skip_const(|_| true) - .skip_struct(|_| true) - .skip_const(move |name| match name { - "IPV6_FLOWINFO" - | "IPV6_FLOWLABEL_MGR" - | "IPV6_FLOWINFO_SEND" - | "IPV6_FLOWINFO_FLOWLABEL" - | "IPV6_FLOWINFO_PRIORITY" => false, - _ => true, - }) - .type_name(move |ty, is_struct, is_union| match ty { - t if is_struct => format!("struct {t}"), - t if is_union => format!("union {t}"), - t => t.to_string(), - }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_ipv6.rs"); + + ctest::generate_test(&mut cfg, "../src/lib.rs", "linux_ipv6.rs").unwrap(); } + let mut cfg = ctest_cfg(); if (linux && !wali) || android { // Test Elf64_Phdr and Elf32_Phdr // These types have a field called `p_type`, but including // "resolve.h" defines a `p_type` macro that expands to `__p_type` // making the tests for these fails when both are included. - let mut cfg = ctest_old_cfg(); - config_gnu_bits(target, &mut cfg); - cfg.header("elf.h"); - cfg.skip_fn(|_| true) + let elf_structs = ["Elf64_Phdr", "Elf32_Phdr"]; + cfg.header("elf.h") + .skip_fn(|_| true) .skip_static(|_| true) .skip_const(|_| true) - .type_name(move |ty, _is_struct, _is_union| ty.to_string()) - .skip_struct(move |ty| match ty { - "Elf64_Phdr" | "Elf32_Phdr" => false, - _ => true, - }) - .skip_type(move |ty| match ty { - "Elf64_Phdr" | "Elf32_Phdr" => false, - _ => true, - }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_elf.rs"); + .skip_union(|_| true) + .rename_struct_ty(move |ty| Some(ty.to_string())) + .skip_struct(move |struct_| !elf_structs.contains(&struct_.ident())) + .skip_alias(move |alias| !elf_structs.contains(&alias.ident())); + + config_gnu_bits(target, &mut cfg); + + ctest::generate_test(&mut cfg, "../src/lib.rs", "linux_elf.rs").unwrap(); } if (linux && !wali) || android { // Test `ARPHRD_CAN`. - let mut cfg = ctest_old_cfg(); + let mut cfg = ctest_cfg(); config_gnu_bits(target, &mut cfg); - cfg.header("linux/if_arp.h"); - cfg.skip_fn(|_| true) + cfg.header("linux/if_arp.h") + .skip_fn(|_| true) .skip_static(|_| true) - .skip_const(move |name| match name { - "ARPHRD_CAN" => false, - _ => true, - }) + .skip_union(|_| true) .skip_struct(|_| true) - .skip_type(|_| true); - cfg.generate(src_hotfix_dir().join("lib.rs"), "linux_if_arp.rs"); + .skip_union(|_| true) + .skip_alias(|_| true) + .skip_const(move |constant| constant.ident() != "ARPHRD_CAN"); + + ctest::generate_test(&mut cfg, "../src/lib.rs", "linux_if_arp.rs").unwrap(); } } From b4a0fdaf786f3268436abf68e44cbaa4375df09c Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Thu, 7 Sep 2023 15:14:34 +0200 Subject: [PATCH 0820/1228] Simplify the reading of RUST_LIBC_UNSTABLE_GNU_*_BITS variables Use (almost) the same code in build.rs and libc-test/build.rs. Make the decision chain clearer. Have a single default value that can be overriden in various ways, which should make switching the default much easier. (backport ) (cherry picked from commit 4a4a57bc3c045069ae5c4cc3b5fcacd70410ca13) --- build.rs | 49 +++++++++++++++++++++++++----------------- libc-test/build.rs | 53 ++++++++++++++++++++++++++-------------------- 2 files changed, 59 insertions(+), 43 deletions(-) diff --git a/build.rs b/build.rs index 070354f1e756a..163735ac4cad4 100644 --- a/build.rs +++ b/build.rs @@ -112,28 +112,37 @@ fn main() { && target_arch != "riscv32" && target_arch != "x86_64" { - match env::var("RUST_LIBC_UNSTABLE_GNU_TIME_BITS") { - Ok(val) if val == "64" => { - set_cfg("gnu_file_offset_bits64"); - set_cfg("linux_time_bits64"); - set_cfg("gnu_time_bits64"); - } - Ok(val) if val != "32" => { - panic!("RUST_LIBC_UNSTABLE_GNU_TIME_BITS may only be set to '32' or '64'") - } - _ => { - match env::var("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS") { - Ok(val) if val == "64" => { - set_cfg("gnu_file_offset_bits64"); - } - Ok(val) if val != "32" => { - panic!("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS may only be set to '32' or '64'") - } - _ => {} - } - } + let defaultbits = "32".to_string(); + let (timebits, filebits) = match ( + env::var("RUST_LIBC_UNSTABLE_GNU_TIME_BITS"), + env::var("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS"), + ) { + (Ok(_), Ok(_)) => panic!("Do not set both RUST_LIBC_UNSTABLE_GNU_TIME_BITS and RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS"), + (Err(_), Err(_)) => (defaultbits.clone(), defaultbits.clone()), + (Ok(tb), Err(_)) if tb == "64" => (tb.clone(), tb.clone()), + (Ok(tb), Err(_)) if tb == "32" => (tb, defaultbits.clone()), + (Ok(_), Err(_)) => panic!("Invalid value for RUST_LIBC_UNSTABLE_GNU_TIME_BITS, must be 32 or 64"), + (Err(_), Ok(fb)) if fb == "32" || fb == "64" => (defaultbits.clone(), fb), + (Err(_), Ok(_)) => panic!("Invalid value for RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS, must be 32 or 64"), + }; + let valid_bits = ["32", "64"]; + assert!( + valid_bits.contains(&filebits.as_str()) && valid_bits.contains(&timebits.as_str()), + "Invalid value for RUST_LIBC_UNSTABLE_GNU_TIME_BITS or RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS, must be 32, 64 or unset" + ); + assert!( + !(filebits == "32" && timebits == "64"), + "RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS must be 64 or unset if RUST_LIBC_UNSTABLE_GNU_TIME_BITS is 64" + ); + if timebits == "64" { + set_cfg("linux_time_bits64"); + set_cfg("gnu_time_bits64"); + } + if filebits == "64" { + set_cfg("gnu_file_offset_bits64"); } } + // On CI: deny all warnings if libc_ci { set_cfg("libc_deny_warnings"); diff --git a/libc-test/build.rs b/libc-test/build.rs index 161d0b00dc1ac..cb4e1fbe1d25d 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3698,29 +3698,36 @@ fn config_gnu_bits(target: &str, cfg: &mut ctest::TestGenerator) { && !target.contains("riscv32") && pointer_width == "32" { - match env::var("RUST_LIBC_UNSTABLE_GNU_TIME_BITS") { - Ok(val) if val == "64" => { - cfg.define("_FILE_OFFSET_BITS", Some("64")); - cfg.define("_TIME_BITS", Some("64")); - cfg.cfg("gnu_file_offset_bits64", None); - cfg.cfg("linux_time_bits64", None); - cfg.cfg("gnu_time_bits64", None); - } - Ok(val) if val != "32" => { - panic!("RUST_LIBC_UNSTABLE_GNU_TIME_BITS may only be set to '32' or '64'") - } - _ => { - match env::var("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS") { - Ok(val) if val == "64" => { - cfg.define("_FILE_OFFSET_BITS", Some("64")); - cfg.cfg("gnu_file_offset_bits64", None); - } - Ok(val) if val != "32" => { - panic!("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS may only be set to '32' or '64'") - } - _ => {} - } - } + let defaultbits = "32".to_string(); + let (timebits, filebits) = match ( + env::var("RUST_LIBC_UNSTABLE_GNU_TIME_BITS"), + env::var("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS"), + ) { + (Ok(_), Ok(_)) => panic!("Do not set both RUST_LIBC_UNSTABLE_GNU_TIME_BITS and RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS"), + (Err(_), Err(_)) => (defaultbits.clone(), defaultbits.clone()), + (Ok(tb), Err(_)) if tb == "64" => (tb.clone(), tb.clone()), + (Ok(tb), Err(_)) if tb == "32" => (tb, defaultbits.clone()), + (Ok(_), Err(_)) => panic!("Invalid value for RUST_LIBC_UNSTABLE_GNU_TIME_BITS, must be 32 or 64"), + (Err(_), Ok(fb)) if fb == "32" || fb == "64" => (defaultbits.clone(), fb), + (Err(_), Ok(_)) => panic!("Invalid value for RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS, must be 32 or 64"), + }; + let valid_bits = ["32", "64"]; + assert!( + valid_bits.contains(&filebits.as_str()) && valid_bits.contains(&timebits.as_str()), + "Invalid value for RUST_LIBC_UNSTABLE_GNU_TIME_BITS or RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS, must be 32, 64 or unset" + ); + assert!( + !(filebits == "32" && timebits == "64"), + "RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS must be 64 or unset if RUST_LIBC_UNSTABLE_GNU_TIME_BITS is 64" + ); + if timebits == "64" { + cfg.define("_TIME_BITS", Some("64")); + cfg.cfg("linux_time_bits64", None); + cfg.cfg("gnu_time_bits64", None); + } + if filebits == "64" { + cfg.define("_FILE_OFFSET_BITS", Some("64")); + cfg.cfg("gnu_file_offset_bits64", None); } } } From 0fc25c8ad80e249aeb72d82fa8a67521e7c0a304 Mon Sep 17 00:00:00 2001 From: Josh Megnauth Date: Tue, 19 Aug 2025 22:53:10 -0400 Subject: [PATCH 0821/1228] redox: More resource.h, fcntl.h constants (backport ) (cherry picked from commit b31ee9b22f99354f2ca00c68d038d6f377c8b8a4) --- libc-test/semver/redox.txt | 56 ++++++++++++++++++++++++++++ src/unix/redox/mod.rs | 76 +++++++++++++++++++++++++++++++++----- 2 files changed, 123 insertions(+), 9 deletions(-) diff --git a/libc-test/semver/redox.txt b/libc-test/semver/redox.txt index 790f2ac76b398..3e09870a7a76a 100644 --- a/libc-test/semver/redox.txt +++ b/libc-test/semver/redox.txt @@ -4,6 +4,7 @@ ATF_COM ATF_PERM ATF_PUBL ATF_USETRAILERS +AT_FDCWD B1000000 B1152000 B1500000 @@ -131,14 +132,32 @@ OLCUC O_ASYNC O_EXLOCK O_FSYNC +O_NDELAY O_NOCTTY O_PATH O_SHLOCK O_SYMLINK PTHREAD_STACK_MIN +RLIMIT_AS +RLIMIT_CORE +RLIMIT_CPU +RLIMIT_DATA +RLIMIT_FSIZE +RLIMIT_LOCKS +RLIMIT_MEMLOCK +RLIMIT_MSGQUEUE +RLIMIT_NICE +RLIMIT_NLIMITS +RLIMIT_NOFILE +RLIMIT_NPROC +RLIMIT_RSS +RLIMIT_RTPRIO +RLIMIT_SIGPENDING +RLIMIT_STACK RLIM_INFINITY RLIM_SAVED_CUR RLIM_SAVED_MAX +RUSAGE_BOTH RUSAGE_CHILDREN RUSAGE_SELF RUSAGE_THREAD @@ -180,6 +199,42 @@ VWERASE WEXITED WNOWAIT WSTOPPED +_CS_PATH +_CS_POSIX_V5_WIDTH_RESTRICTED_ENVS +_CS_POSIX_V6_ILP32_OFF32_CFLAGS +_CS_POSIX_V6_ILP32_OFF32_LDFLAGS +_CS_POSIX_V6_ILP32_OFF32_LIBS +_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS +_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS +_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS +_CS_POSIX_V6_ILP32_OFFBIG_LIBS +_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS +_CS_POSIX_V6_LP64_OFF64_CFLAGS +_CS_POSIX_V6_LP64_OFF64_LDFLAGS +_CS_POSIX_V6_LP64_OFF64_LIBS +_CS_POSIX_V6_LP64_OFF64_LINTFLAGS +_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS +_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS +_CS_POSIX_V6_LPBIG_OFFBIG_LIBS +_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS +_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS +_CS_POSIX_V7_ILP32_OFF32_CFLAGS +_CS_POSIX_V7_ILP32_OFF32_LDFLAGS +_CS_POSIX_V7_ILP32_OFF32_LIBS +_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS +_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS +_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS +_CS_POSIX_V7_ILP32_OFFBIG_LIBS +_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS +_CS_POSIX_V7_LP64_OFF64_CFLAGS +_CS_POSIX_V7_LP64_OFF64_LDFLAGS +_CS_POSIX_V7_LP64_OFF64_LIBS +_CS_POSIX_V7_LP64_OFF64_LINTFLAGS +_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS +_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS +_CS_POSIX_V7_LPBIG_OFFBIG_LIBS +_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS +_CS_POSIX_V7_WIDTH_RESTRICTED_ENVS _IOFBF _IOLBF _IONBF @@ -247,6 +302,7 @@ pipe2 pthread_condattr_setclock qsort reallocarray +rlim_t setgrent setpwent setrlimit diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 308e08b7e9114..3239ef4b5a1ec 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -352,6 +352,8 @@ pub const F_LOCK: c_int = 1; pub const F_TLOCK: c_int = 2; pub const F_TEST: c_int = 3; +pub const AT_FDCWD: c_int = -100; + // FIXME(redox): relibc { pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); // } @@ -517,6 +519,7 @@ pub const O_WRONLY: c_int = 0x0002_0000; pub const O_RDWR: c_int = 0x0003_0000; pub const O_ACCMODE: c_int = 0x0003_0000; pub const O_NONBLOCK: c_int = 0x0004_0000; +pub const O_NDELAY: c_int = O_NONBLOCK; pub const O_APPEND: c_int = 0x0008_0000; pub const O_SHLOCK: c_int = 0x0010_0000; pub const O_EXLOCK: c_int = 0x0020_0000; @@ -627,15 +630,6 @@ pub const PTHREAD_RWLOCK_INITIALIZER: crate::pthread_rwlock_t = crate::pthread_r }; pub const PTHREAD_STACK_MIN: size_t = 4096; -// sys/resource.h -pub const RLIM_INFINITY: u64 = !0; -pub const RLIM_SAVED_CUR: u64 = RLIM_INFINITY; -pub const RLIM_SAVED_MAX: u64 = RLIM_INFINITY; -pub const RUSAGE_SELF: c_int = 0; -pub const RUSAGE_CHILDREN: c_int = -1; -pub const RUSAGE_BOTH: c_int = -2; -pub const RUSAGE_THREAD: c_int = 1; - // signal.h pub const SIG_BLOCK: c_int = 0; pub const SIG_UNBLOCK: c_int = 1; @@ -774,6 +768,32 @@ pub const MS_ASYNC: c_int = 0x0001; pub const MS_INVALIDATE: c_int = 0x0002; pub const MS_SYNC: c_int = 0x0004; +// sys/resource.h +pub const RLIM_INFINITY: rlim_t = !0; +pub const RLIM_SAVED_CUR: rlim_t = RLIM_INFINITY; +pub const RLIM_SAVED_MAX: rlim_t = RLIM_INFINITY; +pub const RLIMIT_CPU: c_int = 0; +pub const RLIMIT_FSIZE: c_int = 1; +pub const RLIMIT_DATA: c_int = 2; +pub const RLIMIT_STACK: c_int = 3; +pub const RLIMIT_CORE: c_int = 4; +pub const RLIMIT_RSS: c_int = 5; +pub const RLIMIT_NPROC: c_int = 6; +pub const RLIMIT_NOFILE: c_int = 7; +pub const RLIMIT_MEMLOCK: c_int = 8; +pub const RLIMIT_AS: c_int = 9; +pub const RLIMIT_LOCKS: c_int = 10; +pub const RLIMIT_SIGPENDING: c_int = 11; +pub const RLIMIT_MSGQUEUE: c_int = 12; +pub const RLIMIT_NICE: c_int = 13; +pub const RLIMIT_RTPRIO: c_int = 14; +pub const RLIMIT_NLIMITS: c_int = 15; + +pub const RUSAGE_SELF: c_int = 0; +pub const RUSAGE_CHILDREN: c_int = -1; +pub const RUSAGE_BOTH: c_int = -2; +pub const RUSAGE_THREAD: c_int = 1; + // sys/select.h pub const FD_SETSIZE: usize = 1024; @@ -991,6 +1011,44 @@ pub const _SC_SYMLOOP_MAX: c_int = 173; pub const _SC_HOST_NAME_MAX: c_int = 180; // } POSIX.1 +// confstr +pub const _CS_PATH: c_int = 0; +pub const _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS: c_int = 1; +pub const _CS_POSIX_V5_WIDTH_RESTRICTED_ENVS: c_int = 4; +pub const _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS: c_int = 5; +pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: c_int = 1116; +pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: c_int = 1117; +pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: c_int = 1118; +pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: c_int = 1119; +pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: c_int = 1120; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: c_int = 1121; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: c_int = 1122; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: c_int = 1123; +pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: c_int = 1124; +pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: c_int = 1125; +pub const _CS_POSIX_V6_LP64_OFF64_LIBS: c_int = 1126; +pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: c_int = 1127; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: c_int = 1128; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: c_int = 1129; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: c_int = 1130; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: c_int = 1131; +pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: c_int = 1132; +pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: c_int = 1133; +pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: c_int = 1134; +pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: c_int = 1135; +pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: c_int = 1136; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: c_int = 1137; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: c_int = 1138; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: c_int = 1139; +pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: c_int = 1140; +pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: c_int = 1141; +pub const _CS_POSIX_V7_LP64_OFF64_LIBS: c_int = 1142; +pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: c_int = 1143; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: c_int = 1144; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: c_int = 1145; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: c_int = 1146; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: c_int = 1147; + pub const F_OK: c_int = 0; pub const R_OK: c_int = 4; pub const W_OK: c_int = 2; From 82d1f44aa49604d3bc1bceb0bddd3cc9fd04fbf8 Mon Sep 17 00:00:00 2001 From: Alexandre Girard Date: Wed, 20 Aug 2025 17:55:58 +0200 Subject: [PATCH 0822/1228] linux: Add missing SOL_PACKET optnames Authority: include/uapi/linux/if_packet.h Adds: + PACKET_COPY_THRESH (1da177e4c3f4) + PACKET_FANOUT_DATA (47dceb8ecdc1) + PACKET_FANOUT_FLAG_IGNORE_OUTGOING (58ba426388d9) + PACKET_HDRLEN (bbd6ef87c544) + PACKET_ORIGDEV (80feaacb8a64) + PACKET_RECV_OUTPUT (1da177e4c3f4) + PACKET_ROLLOVER_STATS (a9b6391814d5) + PACKET_TX_HAS_OFF (5920cd3a41f1) + PACKET_TX_TIMESTAMP (ed85b565b825) + PACKET_VNET_HDR (bfd5f4a3d605) + PACKET_VNET_HDR_SZ (dfc39d4026fb) Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=47dceb8ecdc1c3ad1818dfea3d659a05b74c3fc2 Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=58ba426388d9fe56aa638f555b01d6e63cada88c Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bbd6ef87c544d88c30e4b762b1b61ef267a7d279 Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=80feaacb8a6400a9540a961b6743c69a5896b937 Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a9b6391814d5d6b8668fca2dace86949b7244e2e Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5920cd3a41f1aefc30e9ce86384fc2fe9f5fe0c0 Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ed85b565b825566da34e55eee9ad150ed93fdda0 Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bfd5f4a3d605e0f6054df0b59fe0907ff7e696d3 Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=dfc39d4026fb2432363c0f77543c4cf3adca4c7b Signed-off-by: Alexandre Girard (backport ) (cherry picked from commit 584b91e1acc61218b2883c89efacf3a4f51051a8) Signed-off-by: Trevor Gross --- libc-test/semver/linux.txt | 11 +++++++++++ src/unix/linux_like/linux/mod.rs | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index b13911b0f2a68..ae30adbee794f 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2085,11 +2085,14 @@ O_TMPFILE PACKET_ADD_MEMBERSHIP PACKET_AUXDATA PACKET_BROADCAST +PACKET_COPY_THRESH PACKET_DROP_MEMBERSHIP PACKET_FANOUT PACKET_FANOUT_CBPF PACKET_FANOUT_CPU +PACKET_FANOUT_DATA PACKET_FANOUT_FLAG_DEFRAG +PACKET_FANOUT_FLAG_IGNORE_OUTGOING PACKET_FANOUT_FLAG_ROLLOVER PACKET_FANOUT_FLAG_UNIQUEID PACKET_FANOUT_HASH @@ -2097,6 +2100,7 @@ PACKET_FANOUT_LB PACKET_FANOUT_QM PACKET_FANOUT_RND PACKET_FANOUT_ROLLOVER +PACKET_HDRLEN PACKET_HOST PACKET_IGNORE_OUTGOING PACKET_KERNEL @@ -2107,15 +2111,22 @@ PACKET_MR_MULTICAST PACKET_MR_PROMISC PACKET_MR_UNICAST PACKET_MULTICAST +PACKET_ORIGDEV PACKET_OTHERHOST PACKET_OUTGOING PACKET_QDISC_BYPASS +PACKET_RECV_OUTPUT PACKET_RESERVE +PACKET_ROLLOVER_STATS PACKET_RX_RING PACKET_STATISTICS PACKET_TIMESTAMP +PACKET_TX_HAS_OFF +PACKET_TX_TIMESTAMP PACKET_USER PACKET_VERSION +PACKET_VNET_HDR +PACKET_VNET_HDR_SZ PENDIN PF_ALG PF_APPLETALK diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index b41f7b4fe8224..2d236327ea4ef 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -3597,17 +3597,27 @@ pub const PACKET_KERNEL: c_uchar = 7; pub const PACKET_ADD_MEMBERSHIP: c_int = 1; pub const PACKET_DROP_MEMBERSHIP: c_int = 2; +pub const PACKET_RECV_OUTPUT: c_int = 3; pub const PACKET_RX_RING: c_int = 5; pub const PACKET_STATISTICS: c_int = 6; +pub const PACKET_COPY_THRESH: c_int = 7; pub const PACKET_AUXDATA: c_int = 8; +pub const PACKET_ORIGDEV: c_int = 9; pub const PACKET_VERSION: c_int = 10; +pub const PACKET_HDRLEN: c_int = 11; pub const PACKET_RESERVE: c_int = 12; pub const PACKET_TX_RING: c_int = 13; pub const PACKET_LOSS: c_int = 14; +pub const PACKET_VNET_HDR: c_int = 15; +pub const PACKET_TX_TIMESTAMP: c_int = 16; pub const PACKET_TIMESTAMP: c_int = 17; pub const PACKET_FANOUT: c_int = 18; +pub const PACKET_TX_HAS_OFF: c_int = 19; pub const PACKET_QDISC_BYPASS: c_int = 20; +pub const PACKET_ROLLOVER_STATS: c_int = 21; +pub const PACKET_FANOUT_DATA: c_int = 22; pub const PACKET_IGNORE_OUTGOING: c_int = 23; +pub const PACKET_VNET_HDR_SZ: c_int = 24; pub const PACKET_FANOUT_HASH: c_uint = 0; pub const PACKET_FANOUT_LB: c_uint = 1; @@ -3619,6 +3629,7 @@ pub const PACKET_FANOUT_CBPF: c_uint = 6; pub const PACKET_FANOUT_EBPF: c_uint = 7; pub const PACKET_FANOUT_FLAG_ROLLOVER: c_uint = 0x1000; pub const PACKET_FANOUT_FLAG_UNIQUEID: c_uint = 0x2000; +pub const PACKET_FANOUT_FLAG_IGNORE_OUTGOING: c_uint = 0x4000; pub const PACKET_FANOUT_FLAG_DEFRAG: c_uint = 0x8000; pub const PACKET_MR_MULTICAST: c_int = 0; From 5c3bb1c816c39e416c03f283cdaaf3cb202db30d Mon Sep 17 00:00:00 2001 From: mbyx Date: Sun, 24 Aug 2025 16:14:11 +0500 Subject: [PATCH 0823/1228] libc: Switch tier 2 targets to the new ctest (backport ) (cherry picked from commit 048162d232bea6a9f7c21e2189508568a53e71df) [ numerous resolutions needed - Trevor ] --- libc-test/build.rs | 364 ++++++++++++++++++++++++--------------------- 1 file changed, 191 insertions(+), 173 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index cb4e1fbe1d25d..e0a7d8d2cbc63 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1055,7 +1055,7 @@ fn test_solarish(target: &str) { // ctest generates arguments supported only by clang, so make sure to run with CC=clang. // While debugging, "CFLAGS=-ferror-limit=" is useful to get more error output. - let mut cfg = ctest_old_cfg(); + let mut cfg = ctest_cfg(); cfg.flag("-Wno-deprecated-declarations"); cfg.define("_XOPEN_SOURCE", Some("700")); @@ -1164,35 +1164,38 @@ fn test_solarish(target: &str) { } } - cfg.skip_type(move |ty| match ty { + cfg.skip_alias(move |ty| match ty.ident() { "sighandler_t" => true, _ => false, }); - cfg.type_name(move |ty, is_struct, is_union| match ty { - "FILE" => "__FILE".to_string(), - "DIR" | "Dl_info" => ty.to_string(), - t if t.ends_with("_t") => t.to_string(), - t if is_struct => format!("struct {t}"), - t if is_union => format!("union {t}"), - t => t.to_string(), + cfg.rename_union_ty(|ty| match ty { + t if t.ends_with("_t") => Some(t.to_string()), + _ => None, }); - cfg.field_name(move |struct_, field| { - match struct_ { + cfg.rename_struct_ty(move |ty| match ty { + "FILE" => Some("__FILE".to_string()), + "DIR" | "Dl_info" => Some(ty.to_string()), + t if t.ends_with("_t") => Some(t.to_string()), + _ => None, + }); + + cfg.rename_struct_field(move |struct_, field| { + match struct_.ident() { // rust struct uses raw u64, rather than union - "epoll_event" if field == "u64" => "data.u64".to_string(), + "epoll_event" if field.ident() == "u64" => Some("data.u64".to_string()), // rust struct was committed with typo for Solaris - "door_arg_t" if field == "dec_num" => "desc_num".to_string(), - "stat" if field.ends_with("_nsec") => { + "door_arg_t" if field.ident() == "dec_num" => Some("desc_num".to_string()), + "stat" if field.ident().ends_with("_nsec") => { // expose stat.Xtim.tv_nsec fields - field.trim_end_matches("e_nsec").to_string() + ".tv_nsec" + Some(field.ident().trim_end_matches("e_nsec").to_string() + ".tv_nsec") } - _ => field.to_string(), + _ => None, } }); - cfg.skip_const(move |name| match name { + cfg.skip_const(move |constant| match constant.ident() { "DT_FIFO" | "DT_CHR" | "DT_DIR" | "DT_BLK" | "DT_REG" | "DT_LNK" | "DT_SOCK" | "USRQUOTA" | "GRPQUOTA" | "PRIO_MIN" | "PRIO_MAX" => true, @@ -1218,15 +1221,22 @@ fn test_solarish(target: &str) { _ => false, }); - cfg.skip_struct(move |ty| { - if ty.starts_with("__c_anonymous_") { + cfg.skip_union(|union_| { + // the union handling is a mess + if union_.ident().starts_with("__c_anonymous_") || union_.ident().contains("door_desc_t_") { + return true; + } + false + }); + cfg.skip_struct(move |struct_| { + if struct_.ident().starts_with("__c_anonymous_") { return true; } // the union handling is a mess - if ty.contains("door_desc_t_") { + if struct_.ident().contains("door_desc_t_") { return true; } - match ty { + match struct_.ident() { // union, not a struct "sigval" => true, // a bunch of solaris-only fields @@ -1235,13 +1245,14 @@ fn test_solarish(target: &str) { } }); - cfg.skip_field_type(move |struct_, field| { + cfg.skip_struct_field_type(move |struct_, field| { // aio_buf is "volatile void*" - struct_ == "aiocb" && field == "aio_buf" + struct_.ident() == "aiocb" && field.ident() == "aio_buf" }); - cfg.skip_field(move |s, field| { - match s { + cfg.skip_struct_field(move |s, field| { + let field = field.ident(); + match s.ident() { // C99 sizing on this is tough "dirent" if field == "d_name" => true, // the union/macro makes this rough @@ -1272,9 +1283,9 @@ fn test_solarish(target: &str) { } }); - cfg.skip_fn(move |name| { + cfg.skip_fn(move |func| { // skip those that are manually verified - match name { + match func.ident() { // const-ness only added recently "dladdr" => true, @@ -1335,12 +1346,12 @@ fn test_solarish(target: &str) { } }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn test_netbsd(target: &str) { assert!(target.contains("netbsd")); - let mut cfg = ctest_old_cfg(); + let mut cfg = ctest_cfg(); cfg.flag("-Wno-deprecated-declarations"); cfg.define("_NETBSD_SOURCE", Some("1")); @@ -1433,52 +1444,52 @@ fn test_netbsd(target: &str) { "iconv.h", } - cfg.type_name(move |ty, is_struct, is_union| { + cfg.rename_type(move |ty| { match ty { - // Just pass all these through, no need for a "struct" prefix - "FILE" | "fd_set" | "Dl_info" | "DIR" | "Elf32_Phdr" | "Elf64_Phdr" | "Elf32_Shdr" - | "Elf64_Shdr" | "Elf32_Sym" | "Elf64_Sym" | "Elf32_Ehdr" | "Elf64_Ehdr" - | "Elf32_Chdr" | "Elf64_Chdr" => ty.to_string(), - // OSX calls this something else - "sighandler_t" => "sig_t".to_string(), - - t if is_union => format!("union {t}"), - - t if t.ends_with("_t") => t.to_string(), - - // put `struct` in front of all structs:. - t if is_struct => format!("struct {t}"), + "sighandler_t" => Some("sig_t".to_string()), - t => t.to_string(), + _ => None, } }); - cfg.field_name(move |struct_, field| { - match field { + cfg.rename_struct_ty(|ty| match ty { + // Just pass all these through, no need for a "struct" prefix + "FILE" | "fd_set" | "Dl_info" | "DIR" | "Elf32_Phdr" | "Elf64_Phdr" | "Elf32_Shdr" + | "Elf64_Shdr" | "Elf32_Sym" | "Elf64_Sym" | "Elf32_Ehdr" | "Elf64_Ehdr" | "Elf32_Chdr" + | "Elf64_Chdr" => Some(ty.to_string()), + t if t.ends_with("_t") => Some(t.to_string()), + _ => None, + }); + + cfg.rename_struct_field(move |struct_, field| { + match field.ident() { // Our stat *_nsec fields normally don't actually exist but are part // of a timeval struct - s if s.ends_with("_nsec") && struct_.starts_with("stat") => { - s.replace("e_nsec", ".tv_nsec") + s if s.ends_with("_nsec") && struct_.ident().starts_with("stat") => { + Some(s.replace("e_nsec", ".tv_nsec")) } - "u64" if struct_ == "epoll_event" => "data.u64".to_string(), - s => s.to_string(), + "u64" if struct_.ident() == "epoll_event" => Some("data.u64".to_string()), + _ => None, } }); - cfg.skip_type(move |ty| { - if ty.starts_with("__c_anonymous_") { + cfg.skip_struct(|ty| ty.ident().starts_with("__c_anonymous_")); + cfg.skip_union(|ty| ty.ident().starts_with("__c_anonymous_")); + + cfg.skip_alias(move |ty| { + if ty.ident().starts_with("__c_anonymous_") { return true; } - match ty { + match ty.ident() { // FIXME(netbsd): sighandler_t is crazy across platforms "sighandler_t" => true, _ => false, } }); - cfg.skip_struct(move |ty| { - match ty { + cfg.skip_struct(move |struct_| { + match struct_.ident() { // This is actually a union, not a struct "sigval" => true, // These are tested as part of the linux_fcntl tests since there are @@ -1498,8 +1509,8 @@ fn test_netbsd(target: &str) { } }); - cfg.skip_const(move |name| { - match name { + cfg.skip_const(move |constant| { + match constant.ident() { "SIG_DFL" | "SIG_ERR" | "SIG_IGN" => true, // sighandler_t weirdness "SIGUNUSED" => true, // removed in glibc 2.26 @@ -1513,12 +1524,12 @@ fn test_netbsd(target: &str) { } }); - cfg.skip_fn(move |name| { + cfg.skip_fn(move |func| { #[expect(clippy::wildcard_in_or_patterns)] - match name { + match func.ident() { + // FIXME(netbsd): netbsd 10 minimum // FIXME(netbsd): https://github.com/rust-lang/libc/issues/1272 "execv" | "execve" | "execvp" => true, - // FIXME: netbsd 10 minimum "getentropy" | "getrandom" => true, "getrlimit" | "getrlimit64" | // non-int in 1st arg @@ -1529,19 +1540,19 @@ fn test_netbsd(target: &str) { } }); - cfg.skip_field_type(move |struct_, field| { + cfg.skip_struct_field_type(move |struct_, field| { // This is a weird union, don't check the type. - (struct_ == "ifaddrs" && field == "ifa_ifu") || + (struct_.ident() == "ifaddrs" && field.ident() == "ifa_ifu") || // sighandler_t type is super weird - (struct_ == "sigaction" && field == "sa_sigaction") || + (struct_.ident() == "sigaction" && field.ident() == "sa_sigaction") || // sigval is actually a union, but we pretend it's a struct - (struct_ == "sigevent" && field == "sigev_value") || + (struct_.ident() == "sigevent" && field.ident() == "sigev_value") || // aio_buf is "volatile void*" and Rust doesn't understand volatile - (struct_ == "aiocb" && field == "aio_buf") + (struct_.ident() == "aiocb" && field.ident() == "aio_buf") }); - cfg.skip_field(|struct_, field| { - match (struct_, field) { + cfg.skip_struct_field(|struct_, field| { + match (struct_.ident(), field.ident()) { // conflicting with `p_type` macro from . ("Elf32_Phdr", "p_type") => true, ("Elf64_Phdr", "p_type") => true, @@ -1551,7 +1562,7 @@ fn test_netbsd(target: &str) { } }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn test_dragonflybsd(target: &str) { @@ -1782,7 +1793,7 @@ fn test_wasi(target: &str) { assert!(target.contains("wasi")); let p2 = target.contains("wasip2"); - let mut cfg = ctest_old_cfg(); + let mut cfg = ctest_cfg(); cfg.define("_GNU_SOURCE", None); headers! { cfg: @@ -1829,35 +1840,25 @@ fn test_wasi(target: &str) { // to omit them. cfg.cfg("libc_ctest", None); - // `ctest2` has a hard-coded list of default cfgs which doesn't include - // wasip2, which is why it has to be set here manually. - if p2 { - cfg.cfg("target_env", Some("p2")); - } - - cfg.type_name(move |ty, is_struct, is_union| match ty { - "FILE" | "fd_set" | "DIR" => ty.to_string(), - t if is_union => format!("union {t}"), - t if t.starts_with("__wasi") && t.ends_with("_u") => format!("union {t}"), - t if t.starts_with("__wasi") && is_struct => format!("struct {t}"), - t if t.ends_with("_t") => t.to_string(), - t if is_struct => format!("struct {t}"), - t => t.to_string(), + cfg.rename_struct_ty(move |ty| match ty { + "FILE" | "fd_set" | "DIR" => Some(ty.to_string()), + t if t.ends_with("_t") => Some(t.to_string()), + _ => None, }); - cfg.field_name(move |_struct, field| { - match field { + cfg.rename_struct_field(move |_struct, field| { + match field.ident() { // deal with fields as rust keywords - "type_" => "type".to_string(), - s => s.to_string(), + "type_" => Some("type".to_string()), + _ => None, } }); // These have a different and internal type in header files and are only // used here to generate a pointer to them in bindings so skip these tests. - cfg.skip_static(|c| c.starts_with("_CLOCK_")); + cfg.skip_static(|s| s.ident().starts_with("_CLOCK_")); - cfg.skip_const(|c| match c { + cfg.skip_const(|c| match c.ident() { // These constants aren't yet defined in wasi-libc. // Exposing them is being tracked by https://github.com/WebAssembly/wasi-libc/issues/531. "SO_BROADCAST" | "SO_LINGER" => true, @@ -1865,7 +1866,7 @@ fn test_wasi(target: &str) { _ => false, }); - cfg.skip_fn(|f| match f { + cfg.skip_fn(|f| match f.ident() { // This function doesn't actually exist in libc's header files "__errno_location" => true, @@ -1880,9 +1881,9 @@ fn test_wasi(target: &str) { // d_name is declared as a flexible array in WASI libc, so it // doesn't support sizeof. - cfg.skip_field(|s, field| s == "dirent" && field == "d_name"); + cfg.skip_struct_field(|s, field| s.ident() == "dirent" && field.ident() == "d_name"); - cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn test_android(target: &str) { @@ -1895,7 +1896,7 @@ fn test_android(target: &str) { let x86 = target.contains("i686") || target.contains("x86_64"); let aarch64 = target.contains("aarch64"); - let mut cfg = ctest_old_cfg(); + let mut cfg = ctest_cfg(); cfg.define("_GNU_SOURCE", None); headers! { cfg: @@ -2044,51 +2045,43 @@ fn test_android(target: &str) { "android/set_abort_message.h" } - cfg.type_name(move |ty, is_struct, is_union| { - match ty { - // Just pass all these through, no need for a "struct" prefix - "FILE" | "fd_set" | "Dl_info" | "Elf32_Phdr" | "Elf64_Phdr" => ty.to_string(), - - t if is_union => format!("union {t}"), - - t if t.ends_with("_t") => t.to_string(), - - // sigval is a struct in Rust, but a union in C: - "sigval" => "union sigval".to_string(), - - "Ioctl" => "int".to_string(), - - // put `struct` in front of all structs:. - t if is_struct => format!("struct {t}"), + cfg.rename_type(move |ty| match ty { + "Ioctl" => Some("int".to_string()), + _ => None, + }); - t => t.to_string(), - } + cfg.rename_struct_ty(|ty| match ty { + // Just pass all these through, no need for a "struct" prefix + "FILE" | "fd_set" | "Dl_info" | "Elf32_Phdr" | "Elf64_Phdr" => Some(ty.to_string()), + // sigval is a struct in Rust, but a union in C: + "sigval" => Some("union sigval".to_string()), + t if t.ends_with("_t") => Some(t.to_string()), + _ => None, }); - cfg.field_name(move |struct_, field| { - match field { + cfg.rename_struct_field(move |struct_, field| { + match field.ident() { // Our stat *_nsec fields normally don't actually exist but are part // of a timeval struct - s if s.ends_with("_nsec") && struct_.starts_with("stat") => s.to_string(), + s if s.ends_with("_nsec") && struct_.ident().starts_with("stat") => Some(s.to_string()), // FIXME(union): appears that `epoll_event.data` is an union - "u64" if struct_ == "epoll_event" => "data.u64".to_string(), + "u64" if struct_.ident() == "epoll_event" => Some("data.u64".to_string()), // The following structs have a field called `type` in C, // but `type` is a Rust keyword, so these fields are translated // to `type_` in Rust. "type_" - if struct_ == "input_event" - || struct_ == "input_mask" - || struct_ == "ff_effect" => + if struct_.ident() == "input_event" + || struct_.ident() == "input_mask" + || struct_.ident() == "ff_effect" => { - "type".to_string() + Some("type".to_string()) } - - s => s.to_string(), + _ => None, } }); - cfg.skip_type(move |ty| { - match ty { + cfg.skip_alias(move |ty| { + match ty.ident() { // FIXME(android): `sighandler_t` type is incorrect, see: // https://github.com/rust-lang/libc/issues/1359 "sighandler_t" => true, @@ -2109,11 +2102,13 @@ fn test_android(target: &str) { } }); - cfg.skip_struct(move |ty| { - if ty.starts_with("__c_anonymous_") { + cfg.skip_union(move |union_| union_.ident().starts_with("__c_anonymous_")); + + cfg.skip_struct(move |struct_| { + if struct_.ident().starts_with("__c_anonymous_") { return true; } - match ty { + match struct_.ident() { // These are tested as part of the linux_fcntl tests since there are // header conflicts when including them with all the other structs. "termios2" => true, @@ -2137,8 +2132,8 @@ fn test_android(target: &str) { } }); - cfg.skip_const(move |name| { - match name { + cfg.skip_const(move |constant| { + match constant.ident() { // The IPV6 constants are tested in the `linux_ipv6.rs` tests: | "IPV6_FLOWINFO" | "IPV6_FLOWLABEL_MGR" @@ -2288,11 +2283,14 @@ fn test_android(target: &str) { } }); - cfg.skip_fn(move |name| { + cfg.skip_fn(move |func| { // skip those that are manually verified - match name { + match func.ident() { // FIXME(android): https://github.com/rust-lang/libc/issues/1272 - "execv" | "execve" | "execvp" | "execvpe" | "fexecve" => true, + "execv" | "execve" | "execvp" | "execvpe" => true, + + // FIXME(android): for unknown reasons linker unable to find "fexecve" + "fexecve" => true, // There are two versions of the sterror_r function, see // @@ -2353,11 +2351,17 @@ fn test_android(target: &str) { // Added in API level 24 "if_nameindex" | "if_freenameindex" => true, + // FIXME(ctest): In our current method of testing, we cast the function to a `void *`, + // which is not possible for functions that have been overloaded. + "ioctl" => true, + _ => false, } }); - cfg.skip_field_type(move |struct_, field| { + cfg.skip_struct_field_type(move |struct_, field| { + let struct_ = struct_.ident(); + let field = field.ident(); // This is a weird union, don't check the type. (struct_ == "ifaddrs" && field == "ifa_ifu") || // sigval is actually a union, but we pretend it's a struct @@ -2373,8 +2377,8 @@ fn test_android(target: &str) { (struct_ == "flock64" && (field == "l_start" || field == "l_len")) }); - cfg.skip_field(|struct_, field| { - match (struct_, field) { + cfg.skip_struct_field(|struct_, field| { + match (struct_.ident(), field.ident()) { // conflicting with `p_type` macro from . ("Elf32_Phdr", "p_type") => true, ("Elf64_Phdr", "p_type") => true, @@ -2389,7 +2393,7 @@ fn test_android(target: &str) { } }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); test_linux_like_apis(target); } @@ -3083,7 +3087,7 @@ fn test_freebsd(target: &str) { fn test_emscripten(target: &str) { assert!(target.contains("emscripten")); - let mut cfg = ctest_old_cfg(); + let mut cfg = ctest_cfg(); cfg.define("_GNU_SOURCE", None); // FIXME(emscripten): ?? headers! { cfg: @@ -3162,59 +3166,73 @@ fn test_emscripten(target: &str) { "wchar.h", } - cfg.type_name(move |ty, is_struct, is_union| { + cfg.rename_struct_ty(move |ty| { match ty { // Just pass all these through, no need for a "struct" prefix - "FILE" | "fd_set" | "Dl_info" | "DIR" => ty.to_string(), + "FILE" | "fd_set" | "Dl_info" | "DIR" => Some(ty.to_string()), // LFS64 types have been removed in Emscripten 3.1.44 // https://github.com/emscripten-core/emscripten/pull/19812 - "off64_t" => "off_t".to_string(), + "off64_t" => Some("off_t".to_string()), // typedefs don't need any keywords - t if t.ends_with("_t") => t.to_string(), - - // put `struct` in front of all structs:. - t if is_struct => format!("struct {t}"), - - // put `union` in front of all unions: - t if is_union => format!("union {t}"), - - t => t.to_string(), + t if t.ends_with("_t") => Some(t.to_string()), + _ => None, } }); - cfg.field_name(move |struct_, field| { - match field { + cfg.rename_struct_field(move |struct_, field| { + match field.ident() { // Our stat *_nsec fields normally don't actually exist but are part // of a timeval struct - s if s.ends_with("_nsec") && struct_.starts_with("stat") => { - s.replace("e_nsec", ".tv_nsec") + s if s.ends_with("_nsec") && struct_.ident().starts_with("stat") => { + Some(s.replace("e_nsec", ".tv_nsec")) } // Rust struct uses raw u64, rather than union - "u64" if struct_ == "epoll_event" => "data.u64".to_string(), - s => s.to_string(), + "u64" if struct_.ident() == "epoll_event" => Some("data.u64".to_string()), + _ => None, } }); - cfg.skip_type(move |ty| { - match ty { + cfg.skip_alias(move |ty| { + match ty.ident() { // sighandler_t is crazy across platforms // FIXME(emscripten): is this necessary? "sighandler_t" => true, + // LFS64 types have been removed in Emscripten 3.1.44 + // https://github.com/emscripten-core/emscripten/pull/19812 + t => t.ends_with("64") || t.ends_with("64_t"), + } + }); + + cfg.skip_union(|union_| { + if union_.ident().starts_with("__c_anonymous_") { + return true; + } + + match union_.ident() { // No epoll support // https://github.com/emscripten-core/emscripten/issues/5033 ty if ty.starts_with("epoll") => true, + _ => false, + } + }); + + cfg.skip_alias(|ty| { + match ty.ident() { // LFS64 types have been removed in Emscripten 3.1.44 // https://github.com/emscripten-core/emscripten/pull/19812 - t => t.ends_with("64") || t.ends_with("64_t"), + ty => ty.ends_with("64") || ty.ends_with("64_t"), } }); - cfg.skip_struct(move |ty| { - match ty { + cfg.skip_struct(move |struct_| { + if struct_.ident().starts_with("__c_anonymous_") { + return true; + } + match struct_.ident() { // This is actually a union, not a struct "sigval" => true, @@ -3226,16 +3244,14 @@ fn test_emscripten(target: &str) { // No epoll support // https://github.com/emscripten-core/emscripten/issues/5033 ty if ty.starts_with("epoll") => true, - ty if ty.starts_with("signalfd") => true, - // LFS64 types have been removed in Emscripten 3.1.44 - // https://github.com/emscripten-core/emscripten/pull/19812 - ty => ty.ends_with("64") || ty.ends_with("64_t"), + ty if ty.starts_with("signalfd") => true, + _ => false, } }); - cfg.skip_fn(move |name| { - match name { + cfg.skip_fn(move |func| { + match func.ident() { // Emscripten does not support fork/exec/wait or any kind of multi-process support // https://github.com/emscripten-core/emscripten/blob/3.1.68/tools/system_libs.py#L1100 "execv" | "execve" | "execvp" | "execvpe" | "fexecve" | "wait4" => true, @@ -3244,8 +3260,8 @@ fn test_emscripten(target: &str) { } }); - cfg.skip_const(move |name| { - match name { + cfg.skip_const(move |constant| { + match constant.ident() { // FIXME(deprecated): deprecated - SIGNUNUSED was removed in glibc 2.26 // users should use SIGSYS instead "SIGUNUSED" => true, @@ -3292,16 +3308,18 @@ fn test_emscripten(target: &str) { } }); - cfg.skip_field_type(move |struct_, field| { + cfg.skip_struct_field_type(move |struct_, field| { // This is a weird union, don't check the type. - (struct_ == "ifaddrs" && field == "ifa_ifu") || + (struct_.ident() == "ifaddrs" && field.ident() == "ifa_ifu") || // sighandler_t type is super weird - (struct_ == "sigaction" && field == "sa_sigaction") || + (struct_.ident() == "sigaction" && field.ident() == "sa_sigaction") || // sigval is actually a union, but we pretend it's a struct - (struct_ == "sigevent" && field == "sigev_value") + (struct_.ident() == "sigevent" && field.ident() == "sigev_value") }); - cfg.skip_field(move |struct_, field| { + cfg.skip_struct_field(move |struct_, field| { + let struct_ = struct_.ident(); + let field = field.ident(); // this is actually a union on linux, so we can't represent it well and // just insert some padding. (struct_ == "siginfo_t" && field == "_pad") || @@ -3317,7 +3335,7 @@ fn test_emscripten(target: &str) { ].contains(&field)) }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn test_neutrino(target: &str) { From 26010fd7c3a5c8b855aa66ddd6a527378feb20aa Mon Sep 17 00:00:00 2001 From: Ted Brandston Date: Thu, 10 Apr 2025 14:00:33 -0400 Subject: [PATCH 0824/1228] Add MS_NOSYMFOLLOW flag MS_NOSYMFOLLOW (since Linux 5.10) disallows automatic following of symlinks. See: https://github.com/torvalds/linux/commit/dab741e0e02bd3c4f5e2e97be74b39df2523fc6e (backport ) (cherry picked from commit 558f13cfd7982d14445dbdebd18e9f5b4900b78a) --- libc-test/semver/linux.txt | 1 + src/unix/linux_like/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index ae30adbee794f..b82f33365a3d5 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1732,6 +1732,7 @@ MS_NODEV MS_NODIRATIME MS_NOEXEC MS_NOSUID +MS_NOSYMFOLLOW MS_NOUSER MS_POSIXACL MS_PRIVATE diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 2beec93b91777..5a6dd61f53566 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -627,6 +627,7 @@ pub const MS_SYNCHRONOUS: c_ulong = 0x10; pub const MS_REMOUNT: c_ulong = 0x20; pub const MS_MANDLOCK: c_ulong = 0x40; pub const MS_DIRSYNC: c_ulong = 0x80; +pub const MS_NOSYMFOLLOW: c_ulong = 0x100; pub const MS_NOATIME: c_ulong = 0x0400; pub const MS_NODIRATIME: c_ulong = 0x0800; pub const MS_BIND: c_ulong = 0x1000; From 7201057857ad45232de4a82d51fc45814afc3aea Mon Sep 17 00:00:00 2001 From: Mikhail Kornaukhov Date: Mon, 1 Sep 2025 15:35:32 +0300 Subject: [PATCH 0825/1228] Add `backtrace_symbols(_fd)()` functions (backport ) (cherry picked from commit a69e346fd0a5483b432636573533260952b8a61d) --- libc-test/semver/linux-gnu.txt | 2 ++ src/unix/linux_like/linux/gnu/mod.rs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index c88da4fe9bf6e..cf215229e6b23 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -582,6 +582,8 @@ aio_write aiocb asctime_r backtrace +backtrace_symbols +backtrace_symbols_fd clock_adjtime close_range copy_file_range diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index e1ee70b7428f4..bc403ed431d10 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1190,6 +1190,8 @@ extern "C" { pub fn ctermid(s: *mut c_char) -> *mut c_char; pub fn backtrace(buf: *mut *mut c_void, sz: c_int) -> c_int; + pub fn backtrace_symbols(buffer: *const *mut c_void, len: c_int) -> *mut *mut c_char; + pub fn backtrace_symbols_fd(buffer: *const *mut c_void, len: c_int, fd: c_int); #[cfg_attr(gnu_time_bits64, link_name = "__glob64_time64")] pub fn glob64( pattern: *const c_char, From bd075034e8917fd1faf46eaa880e9a3ce3bd8290 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Thu, 21 Aug 2025 22:09:53 +0100 Subject: [PATCH 0826/1228] adding dlvsym support for linux/GNU, freebsd, dragonflybsd and netbsd. ref: https://linux.die.net/man/3/dlvsym ref: https://man.freebsd.org/cgi/man.cgi?query=dlvsym ref: https://github.com/DragonFlyBSD/DragonFlyBSD/blob/088552723935447397400336f5ddb7aa5f5de660/include/dlfcn.h#L126 ref: https://man.netbsd.org/dlfcn.3 (backport ) (cherry picked from commit d692cefd4b1fb55e1a58e733df7153a5f64a4ffb) --- libc-test/semver/dragonfly.txt | 1 + libc-test/semver/freebsd.txt | 1 + libc-test/semver/linux-gnu.txt | 1 + libc-test/semver/netbsd.txt | 1 + src/unix/bsd/freebsdlike/freebsd/mod.rs | 5 +++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 5 +++++ src/unix/linux_like/linux/gnu/mod.rs | 5 +++++ 7 files changed, 19 insertions(+) diff --git a/libc-test/semver/dragonfly.txt b/libc-test/semver/dragonfly.txt index 564d4eb36c311..31c40372f195c 100644 --- a/libc-test/semver/dragonfly.txt +++ b/libc-test/semver/dragonfly.txt @@ -1317,6 +1317,7 @@ dirfd dirname dl_iterate_phdr dl_phdr_info +dlvsym drand48 duplocale eaccess diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index e8f385fe78982..8150c6ae66913 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -1935,6 +1935,7 @@ dirfd dirname dl_iterate_phdr dl_phdr_info +dlvsym drand48 dup3 duplocale diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index cf215229e6b23..0fc9ace022818 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -592,6 +592,7 @@ ctime_r dirname dlinfo dlmopen +dlvsym eaccess endutxent epoll_pwait2 diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index 677e37ea0a155..3f7fb66c2efc8 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -1282,6 +1282,7 @@ dirfd dirname dl_iterate_phdr dl_phdr_info +dlvsym dqblk drand48 dup3 diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index aac1eaef7b16b..54a9ec5ab546f 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -5361,6 +5361,11 @@ extern "C" { idx1: c_ulong, idx2: c_ulong, ) -> c_int; + pub fn dlvsym( + handle: *mut c_void, + symbol: *const c_char, + version: *const c_char, + ) -> *mut c_void; } #[link(name = "memstat")] diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 8179de20797e5..57549d01236e9 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2687,6 +2687,11 @@ extern "C" { new_value: *const crate::itimerspec, old_value: *mut crate::itimerspec, ) -> c_int; + pub fn dlvsym( + handle: *mut c_void, + symbol: *const c_char, + version: *const c_char, + ) -> *mut c_void; // Added in `NetBSD` 7.0 pub fn explicit_memset(b: *mut c_void, c: c_int, len: size_t); diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index bc403ed431d10..17d11d27a4dea 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1285,6 +1285,11 @@ extern "C" { extra_info: *mut *mut c_void, flags: c_int, ) -> c_int; + pub fn dlvsym( + handle: *mut c_void, + symbol: *const c_char, + version: *const c_char, + ) -> *mut c_void; pub fn malloc_trim(__pad: size_t) -> c_int; pub fn gnu_get_libc_release() -> *const c_char; pub fn gnu_get_libc_version() -> *const c_char; From afee395899578a7c9737fe0541980b1ab9f11650 Mon Sep 17 00:00:00 2001 From: mbyx Date: Wed, 3 Sep 2025 21:40:58 +0500 Subject: [PATCH 0827/1228] libc: switch Haiku to new ctest. (backport ) (cherry picked from commit 13190a4c46f9328ed56f0c825b09232efce8a7ed) --- libc-test/build.rs | 76 ++++++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index e0a7d8d2cbc63..8f2ff153f3e06 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -73,6 +73,7 @@ fn do_ctest() { } } +#[expect(unused)] fn ctest_old_cfg() -> ctest_old::TestGenerator { let mut cfg = ctest_old::TestGenerator::new(); let libc_cfgs = ["libc_thread_local"]; @@ -5236,11 +5237,11 @@ fn which_freebsd() -> Option { fn test_haiku(target: &str) { assert!(target.contains("haiku")); - let mut cfg = ctest_old_cfg(); + let mut cfg = ctest_cfg(); cfg.flag("-Wno-deprecated-declarations"); cfg.define("__USE_GNU", Some("1")); cfg.define("_GNU_SOURCE", None); - cfg.language(ctest_old::Lang::CXX); + cfg.language(ctest::Language::CXX); // POSIX API headers! { cfg: @@ -5375,11 +5376,12 @@ fn test_haiku(target: &str) { "support/TypeConstants.h" } - cfg.skip_struct(move |ty| { - if ty.starts_with("__c_anonymous_") { + cfg.skip_union(|union_| union_.ident().starts_with("__c_anonymous_")); + cfg.skip_struct(move |struct_| { + if struct_.ident().starts_with("__c_anonymous_") { return true; } - match ty { + match struct_.ident() { // FIXME(union): actually a union "sigval" => true, // FIXME(haiku): locale_t does not exist on Haiku @@ -5409,8 +5411,8 @@ fn test_haiku(target: &str) { } }); - cfg.skip_type(move |ty| { - match ty { + cfg.skip_alias(move |ty| { + match ty.ident() { // FIXME(haiku): locale_t does not exist on Haiku "locale_t" => true, // These cause errors, to be reviewed in the future @@ -5423,12 +5425,12 @@ fn test_haiku(target: &str) { } }); - cfg.skip_fn(move |name| { + cfg.skip_fn(move |func| { // skip those that are manually verified - match name { + match func.ident() { // FIXME(haiku): https://github.com/rust-lang/libc/issues/1272 "execv" | "execve" | "execvp" | "execvpe" => true, - // FIXME: does not exist on haiku + // FIXME(haiku): does not exist on haiku "open_wmemstream" => true, "mlockall" | "munlockall" => true, "tcgetsid" => true, @@ -5450,8 +5452,8 @@ fn test_haiku(target: &str) { } }); - cfg.skip_const(move |name| { - match name { + cfg.skip_const(move |constant| { + match constant.ident() { // FIXME(haiku): these constants do not exist on Haiku "DT_UNKNOWN" | "DT_FIFO" | "DT_CHR" | "DT_DIR" | "DT_BLK" | "DT_REG" | "DT_LNK" | "DT_SOCK" => true, @@ -5476,8 +5478,8 @@ fn test_haiku(target: &str) { } }); - cfg.skip_field(move |struct_, field| { - match (struct_, field) { + cfg.skip_struct_field(move |struct_, field| { + match (struct_.ident(), field.ident()) { // FIXME(time): the stat struct actually has timespec members, whereas // the current representation has these unpacked. ("stat", "st_atime") => true, @@ -5513,7 +5515,14 @@ fn test_haiku(target: &str) { _ => false, }); - cfg.type_name(move |ty, is_struct, is_union| { + let c_enums = [ + "directory_which", + "path_base_directory", + "cpu_platform", + "cpu_vendor", + ]; + cfg.alias_is_c_enum(move |e| c_enums.contains(&e)); + cfg.rename_struct_ty(move |ty| { match ty { // Just pass all these through, no need for a "struct" prefix "area_info" @@ -5537,36 +5546,31 @@ fn test_haiku(target: &str) { | "cpu_topology_node_info" | "cpu_topology_root_info" | "cpu_topology_package_info" - | "cpu_topology_core_info" => ty.to_string(), - - // enums don't need a prefix - "directory_which" | "path_base_directory" | "cpu_platform" | "cpu_vendor" => { - ty.to_string() - } + | "cpu_topology_core_info" => Some(ty.to_string()), // is actually a union - "sigval" => "union sigval".to_string(), - t if is_union => format!("union {t}"), - t if t.ends_with("_t") => t.to_string(), - t if is_struct => format!("struct {t}"), - t => t.to_string(), + "sigval" => Some("union sigval".to_string()), + t if t.ends_with("_t") => Some(t.to_string()), + _ => None, } }); - cfg.field_name(move |struct_, field| { - match field { + cfg.rename_struct_field(move |struct_, field| { + let struct_ = struct_.ident(); + match field.ident() { // Field is named `type` in C but that is a Rust keyword, // so these fields are translated to `type_` in the bindings. - "type_" if struct_ == "object_wait_info" => "type".to_string(), - "type_" if struct_ == "sem_t" => "type".to_string(), - "type_" if struct_ == "attr_info" => "type".to_string(), - "type_" if struct_ == "index_info" => "type".to_string(), - "type_" if struct_ == "cpu_topology_node_info" => "type".to_string(), - "image_type" if struct_ == "image_info" => "type".to_string(), - s => s.to_string(), + "type_" if struct_ == "object_wait_info" => Some("type".to_string()), + "type_" if struct_ == "sem_t" => Some("type".to_string()), + "type_" if struct_ == "attr_info" => Some("type".to_string()), + "type_" if struct_ == "index_info" => Some("type".to_string()), + "type_" if struct_ == "cpu_topology_node_info" => Some("type".to_string()), + "image_type" if struct_ == "image_info" => Some("type".to_string()), + _ => None, } }); - cfg.generate(src_hotfix_dir().join("lib.rs"), "ctest_output.rs"); + + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } fn test_aix(target: &str) { From add42a64b3454117a719ed1a09cf4f76ba445505 Mon Sep 17 00:00:00 2001 From: mbyx Date: Wed, 3 Sep 2025 21:43:13 +0500 Subject: [PATCH 0828/1228] libc: remove ctest_old and src-hotfix directory. (backport ) (cherry picked from commit 78196bad3d8bf163bd06827d04feb202f96a4667) --- Cargo.lock | 226 +------------------------------------------ libc-test/Cargo.toml | 1 - libc-test/build.rs | 41 -------- 3 files changed, 4 insertions(+), 264 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0a7ab4bb083a3..fb19ca2f5614f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -78,18 +78,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" - [[package]] name = "cc" version = "1.2.32" @@ -99,12 +87,6 @@ dependencies = [ "shlex", ] -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - [[package]] name = "cfg-if" version = "1.0.1" @@ -115,18 +97,6 @@ checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" name = "ctest" version = "0.1.0" -[[package]] -name = "ctest" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f18c94d081f9a0355affbeee3f8e677ce206e9aea89b952421f0be6bc588dde" -dependencies = [ - "cc", - "garando_syntax", - "indoc", - "rustc_version", -] - [[package]] name = "ctest" version = "0.5.0-beta.0" @@ -138,76 +108,7 @@ dependencies = [ "proc-macro2", "quote", "syn", - "thiserror 2.0.16", -] - -[[package]] -name = "dirs" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3" -dependencies = [ - "cfg-if 0.1.10", - "dirs-sys", -] - -[[package]] -name = "dirs-sys" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" -dependencies = [ - "libc 0.2.174", - "redox_users", - "winapi", -] - -[[package]] -name = "garando_errors" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18495ec4aced5922809efe4d2862918ff0e8d75e122bde57bba9bae45965256a" -dependencies = [ - "garando_pos", - "libc 0.2.174", - "serde", - "term", - "unicode-xid", -] - -[[package]] -name = "garando_pos" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c9386fc75dca486daefbbf5a8d2ea6f379237f95c9b982776159cd66f220aaf" -dependencies = [ - "serde", -] - -[[package]] -name = "garando_syntax" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d8a383861d12fc78c251bbcb1ec252dd8338714ce02ab0cc393cfd02f40d32b" -dependencies = [ - "bitflags 1.3.2", - "garando_errors", - "garando_pos", - "log", - "serde", - "serde_json", - "unicode-xid", -] - -[[package]] -name = "getrandom" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" -dependencies = [ - "cfg-if 1.0.1", - "libc 0.2.174", - "wasi", + "thiserror", ] [[package]] @@ -216,24 +117,12 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" -[[package]] -name = "indoc" -version = "2.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" - [[package]] name = "itoa" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" -[[package]] -name = "libc" -version = "0.2.174" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" - [[package]] name = "libc" version = "0.2.175" @@ -247,32 +136,15 @@ version = "0.1.0" dependencies = [ "annotate-snippets", "cc", - "cfg-if 1.0.1", - "ctest 0.4.11", + "cfg-if", "ctest 0.5.0-beta.0", "glob", - "libc 0.2.175", + "libc", "proc-macro2", "regex", "syn", ] -[[package]] -name = "libredox" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" -dependencies = [ - "bitflags 2.9.1", - "libc 0.2.174", -] - -[[package]] -name = "log" -version = "0.4.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" - [[package]] name = "memchr" version = "2.7.5" @@ -303,17 +175,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "redox_users" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" -dependencies = [ - "getrandom", - "libredox", - "thiserror 1.0.69", -] - [[package]] name = "regex" version = "1.11.1" @@ -355,27 +216,12 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa9c45b374136f52f2d6311062c7146bff20fec063c3f5d46a410bd937746955" -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver", -] - [[package]] name = "ryu" version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" -[[package]] -name = "semver" -version = "1.0.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" - [[package]] name = "serde" version = "1.0.219" @@ -425,43 +271,13 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "term" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0863a3345e70f61d613eab32ee046ccd1bcc5f9105fe402c61fcd0c13eeb8b5" -dependencies = [ - "dirs", - "winapi", -] - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - [[package]] name = "thiserror" version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ - "thiserror-impl 2.0.16", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn", + "thiserror-impl", ] [[package]] @@ -487,40 +303,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - -[[package]] -name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - [[package]] name = "winnow" version = "0.7.13" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 9976b482a44c4..4ae4a3cd2056f 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -20,7 +20,6 @@ annotate-snippets = { version = "0.11.5", features = ["testing-colors"] } [build-dependencies] cc = "1.2.29" -ctest-old = { version = "0.4.11", package = "ctest" } # Use the in-tree `ctest` from the `main` branch via crates.io ctest = "0.5.0-beta.0" regex = "1.11.1" diff --git a/libc-test/build.rs b/libc-test/build.rs index 8f2ff153f3e06..53c2b2ad6f549 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -6,10 +6,6 @@ use std::io::{BufRead, BufReader, BufWriter, Write}; use std::path::{Path, PathBuf}; use std::{env, io}; -fn src_hotfix_dir() -> PathBuf { - Path::new(&env::var_os("OUT_DIR").unwrap()).join("src-hotfix") -} - fn do_cc() { let target = env::var("TARGET").unwrap(); if cfg!(unix) || target.contains("cygwin") { @@ -73,15 +69,6 @@ fn do_ctest() { } } -#[expect(unused)] -fn ctest_old_cfg() -> ctest_old::TestGenerator { - let mut cfg = ctest_old::TestGenerator::new(); - let libc_cfgs = ["libc_thread_local"]; - for f in &libc_cfgs { - cfg.cfg(f, None); - } - cfg -} fn ctest_cfg() -> ctest::TestGenerator { let mut cfg = ctest::TestGenerator::new(); cfg.skip_private(true); @@ -170,39 +157,11 @@ fn main() { // Avoid unnecessary re-building. println!("cargo:rerun-if-changed=build.rs"); - let hotfix_dir = src_hotfix_dir(); - if std::fs::exists(&hotfix_dir).unwrap() { - std::fs::remove_dir_all(&hotfix_dir).unwrap(); - } - - // FIXME(ctest): ctest2 cannot parse `crate::` in paths, so replace them with `::` - let re = regex::bytes::Regex::new(r"(?-u:\b)crate::").unwrap(); - copy_dir_hotfix(Path::new("../src"), &hotfix_dir, &re, b"::"); - do_cc(); do_ctest(); do_semver(); } -// FIXME(clippy): removing `replace` somehow fails the `Test tier1 (x86_64-pc-windows-msvc, windows-2022)` CI job -#[allow(clippy::only_used_in_recursion)] -fn copy_dir_hotfix(src: &Path, dst: &Path, regex: ®ex::bytes::Regex, replace: &[u8]) { - std::fs::create_dir(dst).unwrap(); - for entry in src.read_dir().unwrap() { - let entry = entry.unwrap(); - let src_path = entry.path(); - let dst_path = dst.join(entry.file_name()); - if entry.file_type().unwrap().is_dir() { - copy_dir_hotfix(&src_path, &dst_path, regex, replace); - } else { - // Replace "crate::" with "::" - let src_data = std::fs::read(&src_path).unwrap(); - let dst_data = regex.replace_all(&src_data, b"::"); - std::fs::write(&dst_path, &dst_data).unwrap(); - } - } -} - macro_rules! headers { ($cfg:ident: [$m:expr]: $header:literal) => { if $m { From ce8144f063072c4ce19f39a094c1b1e21bb641dc Mon Sep 17 00:00:00 2001 From: Wildan M Date: Tue, 2 Sep 2025 21:53:22 +0700 Subject: [PATCH 0829/1228] Fix redox MAP_FIXED (backport ) (cherry picked from commit 60286e6174f97e6ba63724872f7d028f480d1c07) --- src/unix/redox/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 3239ef4b5a1ec..d9502386dcae8 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -761,7 +761,7 @@ pub const MAP_SHARED: c_int = 0x0001; pub const MAP_PRIVATE: c_int = 0x0002; pub const MAP_ANON: c_int = 0x0020; pub const MAP_ANONYMOUS: c_int = MAP_ANON; -pub const MAP_FIXED: c_int = 0x0010; +pub const MAP_FIXED: c_int = 0x0004; pub const MAP_FAILED: *mut c_void = !0 as _; pub const MS_ASYNC: c_int = 0x0001; From a831211d3fd4a7d914c38ac64f4c8547b0888dc0 Mon Sep 17 00:00:00 2001 From: Huang Qi Date: Sat, 6 Sep 2025 10:36:51 +0800 Subject: [PATCH 0830/1228] nuttx: add __errno() function declaration Add missing __errno() function declaration for NuttX platform to enable proper errno handling in Rust code. NuttX's libc provides __errno() function which returns a pointer to the thread-local errno variable. This change allows Rust programs running on NuttX to properly access and manipulate errno values through the standard libc interface. Fixes errno functionality for NuttX targets. (backport ) (cherry picked from commit ffab35aa145852584b205429320a2b6b4a0dc7e7) --- src/unix/nuttx/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index b71d3f61670bc..3d3e2c3448841 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -566,6 +566,7 @@ pub const IP_ADD_MEMBERSHIP: i32 = 0x14; pub const IP_DROP_MEMBERSHIP: i32 = 0x15; extern "C" { + pub fn __errno() -> *mut c_int; pub fn bind(sockfd: i32, addr: *const sockaddr, addrlen: socklen_t) -> i32; pub fn ioctl(fd: i32, request: i32, ...) -> i32; pub fn dirfd(dirp: *mut DIR) -> i32; From 105e9cba806f9a99e285eef6f63da4ec01c7b4f8 Mon Sep 17 00:00:00 2001 From: Yuxuan Shui Date: Thu, 7 Aug 2025 19:05:26 +0100 Subject: [PATCH 0831/1228] Add `sigqueue` (backport ) (cherry picked from commit 8c2810ab9fb53a6ee35b6b2eab643fba6dcf3af4) --- libc-test/semver/aix.txt | 1 + libc-test/semver/android.txt | 1 + libc-test/semver/cygwin.txt | 1 + libc-test/semver/freebsd.txt | 1 + libc-test/semver/linux.txt | 1 + libc-test/semver/netbsd.txt | 1 + libc-test/semver/redox.txt | 1 + libc-test/semver/solarish.txt | 1 + src/unix/mod.rs | 14 ++++++++++++++ 9 files changed, 22 insertions(+) diff --git a/libc-test/semver/aix.txt b/libc-test/semver/aix.txt index c8e0fe1c0d3e7..ac82c5576f34c 100644 --- a/libc-test/semver/aix.txt +++ b/libc-test/semver/aix.txt @@ -2473,6 +2473,7 @@ sigismember signal sigpending sigprocmask +sigqueue sigset_t sigsuspend sigtimedwait diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 96c77cb43c5ef..53ab742cf2a6a 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -3985,6 +3985,7 @@ signalfd signalfd_siginfo sigpending sigprocmask +sigqueue sigset64_t sigset_t sigsuspend diff --git a/libc-test/semver/cygwin.txt b/libc-test/semver/cygwin.txt index 99e822ca62d18..a978f7312d9c3 100644 --- a/libc-test/semver/cygwin.txt +++ b/libc-test/semver/cygwin.txt @@ -844,6 +844,7 @@ settimeofday sigaltstack sigevent siginfo_t +sigqueue sigsuspend sigtimedwait sigwait diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index 8150c6ae66913..e473b710231c4 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -2376,6 +2376,7 @@ shmid_ds sigaltstack sigevent siginfo_t +sigqueue sigsuspend sigtimedwait sigwait diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index b82f33365a3d5..318cca51b482e 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -4298,6 +4298,7 @@ sigevent siginfo_t signalfd signalfd_siginfo +sigqueue sigsuspend sigtimedwait sigwait diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index 3f7fb66c2efc8..07d9ead87c763 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -1599,6 +1599,7 @@ shmid_ds sigaltstack sigevent siginfo_t +sigqueue sigsuspend sigtimedwait sigwait diff --git a/libc-test/semver/redox.txt b/libc-test/semver/redox.txt index 3e09870a7a76a..eeba3a35a54ce 100644 --- a/libc-test/semver/redox.txt +++ b/libc-test/semver/redox.txt @@ -307,6 +307,7 @@ setgrent setpwent setrlimit setservent +sigqueue sigtimedwait sigwait strcasecmp diff --git a/libc-test/semver/solarish.txt b/libc-test/semver/solarish.txt index cee5977fc35ee..9b1931c5a24f4 100644 --- a/libc-test/semver/solarish.txt +++ b/libc-test/semver/solarish.txt @@ -75,5 +75,6 @@ posix_spawnattr_setsigmask posix_spawnp recvmsg sendmsg +sigqueue strftime strftime_l diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 941f2faa99217..104758944317b 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1661,6 +1661,20 @@ cfg_if! { } } +cfg_if! { + if #[cfg(not(any( + target_os = "dragonfly", + target_os = "emscripten", + target_os = "hurd", + target_os = "macos", + target_os = "openbsd", + )))] { + extern "C" { + pub fn sigqueue(pid: pid_t, sig: c_int, value: crate::sigval) -> c_int; + } + } +} + cfg_if! { if #[cfg(not(target_os = "android"))] { extern "C" { From 3c704a9dc8aa1d47cc7f3b12e819555af78125bc Mon Sep 17 00:00:00 2001 From: mbyx Date: Mon, 1 Sep 2025 20:38:08 +0500 Subject: [PATCH 0832/1228] libc: uncomment items that were commented due to old ctest (backport ) (cherry picked from commit 61b722e2517775cea98428702710ee9ef00f02a0) [ resolution needed for primitives - Trevor ] --- src/new/linux_uapi/linux/can.rs | 3 -- src/primitives.rs | 64 --------------------------------- src/unix/linux_like/mod.rs | 11 +++--- 3 files changed, 4 insertions(+), 74 deletions(-) diff --git a/src/new/linux_uapi/linux/can.rs b/src/new/linux_uapi/linux/can.rs index 8e48b4a869bb8..b9479a63bacea 100644 --- a/src/new/linux_uapi/linux/can.rs +++ b/src/new/linux_uapi/linux/can.rs @@ -1,9 +1,6 @@ //! Header: `uapi/linux/can.h` -// FIXME(ctest): we shouldn't have to specify the path but garando doesn't find modules otherwise -#[path = "can/j1939.rs"] pub(crate) mod j1939; -#[path = "can/raw.rs"] pub(crate) mod raw; pub use j1939::*; diff --git a/src/primitives.rs b/src/primitives.rs index 307a5dafaa9cb..cec4f96f86eed 100644 --- a/src/primitives.rs +++ b/src/primitives.rs @@ -90,35 +90,6 @@ pub type uint64_t = u64; cfg_if! { if #[cfg(all(target_arch = "aarch64", not(target_os = "windows")))] { - // This introduces partial support for FFI with __int128 and - // equivalent types on platforms where Rust's definition is validated - // to match the standard C ABI of that platform. - // - // Rust does not guarantee u128/i128 are sound for FFI, and its - // definitions are in fact known to be incompatible. [0] - // - // However these problems aren't fundamental, and are just platform - // inconsistencies. Specifically at the time of this writing: - // - // * For x64 SysV ABIs (everything but Windows), the types are underaligned. - // * For all Windows ABIs, Microsoft doesn't actually officially define __int128, - // and as a result different implementations don't actually agree on its ABI. - // - // But on the other major aarch64 platforms (android, linux, ios, macos) we have - // validated that rustc has the right ABI for these types. This is important because - // aarch64 uses these types in some fundamental OS types like user_fpsimd_struct, - // which represents saved simd registers. - // - // Any API which uses these types will need to `#[ignore(improper_ctypes)]` - // until the upstream rust issue is resolved, but this at least lets us make - // progress on platforms where this type is important. - // - // The list of supported architectures and OSes is intentionally very restricted, - // as careful work needs to be done to verify that a particular platform - // has a conformant ABI. - // - // [0]: https://github.com/rust-lang/rust/issues/54341 - /// C `__int128` (a GCC extension that's part of many ABIs) pub type __int128 = i128; /// C `unsigned __int128` (a GCC extension that's part of many ABIs) @@ -127,40 +98,5 @@ cfg_if! { pub type __int128_t = i128; /// C __uint128_t (alternate name for [__uint128][]) pub type __uint128_t = u128; - - // NOTE: if you add more platforms to here, you may need to cfg - // these consts. They should always match the platform's values - // for `sizeof(__int128)` and `_Alignof(__int128)`. - const _SIZE_128: usize = 16; - const _ALIGN_128: usize = 16; - - // FIXME(ctest): ctest doesn't handle `_` as an identifier so these tests are temporarily - // disabled. - // macro_rules! static_assert_eq { - // ($a:expr, $b:expr) => { - // const _: [(); $a] = [(); $b]; - // }; - // } - // - // // Since Rust doesn't officially guarantee that these types - // // have compatible ABIs, we const assert that these values have the - // // known size/align of the target platform's libc. If rustc ever - // // tries to regress things, it will cause a compilation error. - // // - // // This isn't a bullet-proof solution because e.g. it doesn't - // // catch the fact that llvm and gcc disagree on how x64 __int128 - // // is actually *passed* on the stack (clang underaligns it for - // // the same reason that rustc *never* properly aligns it). - // static_assert_eq!(size_of::<__int128>(), _SIZE_128); - // static_assert_eq!(align_of::<__int128>(), _ALIGN_128); - - // static_assert_eq!(size_of::<__uint128>(), _SIZE_128); - // static_assert_eq!(align_of::<__uint128>(), _ALIGN_128); - - // static_assert_eq!(size_of::<__int128_t>(), _SIZE_128); - // static_assert_eq!(align_of::<__int128_t>(), _ALIGN_128); - - // static_assert_eq!(size_of::<__uint128_t>(), _SIZE_128); - // static_assert_eq!(align_of::<__uint128_t>(), _ALIGN_128); } } diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 5a6dd61f53566..29f13fb37313e 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1746,13 +1746,10 @@ cfg_if! { /// Build an ioctl number, analogous to the C macro of the same name. const fn _IOC(dir: u32, ty: u32, nr: u32, size: usize) -> Ioctl { - // FIXME(ctest) the `garando_syntax` crate (used by ctest in the CI test suite) - // cannot currently parse these `debug_assert!`s - // - // debug_assert!(dir <= _IOC_DIRMASK); - // debug_assert!(ty <= _IOC_TYPEMASK); - // debug_assert!(nr <= _IOC_NRMASK); - // debug_assert!(size <= (_IOC_SIZEMASK as usize)); + core::debug_assert!(dir <= _IOC_DIRMASK); + core::debug_assert!(ty <= _IOC_TYPEMASK); + core::debug_assert!(nr <= _IOC_NRMASK); + core::debug_assert!(size <= (_IOC_SIZEMASK as usize)); ((dir << _IOC_DIRSHIFT) | (ty << _IOC_TYPESHIFT) From 5ef622c866ccc4f562cd9413dd9fcc63392da964 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 22 Sep 2025 20:35:22 -0500 Subject: [PATCH 0833/1228] FreeBSD: deprecate TIOCMGDTRWAIT and TIOCMSDTRWAIT These constants were removed on `main` in ec605ffa5477 ("libc: fix ctest failure on freebsd15"). Mark them as deprecated with 0.2 rather than removing directly. Effectively a backport of https://github.com/rust-lang/libc/pull/4685. --- libc-test/build.rs | 3 +++ src/unix/bsd/freebsdlike/mod.rs | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 53c2b2ad6f549..abf5da9cee334 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2832,6 +2832,9 @@ fn test_freebsd(target: &str) { // Added in FreeBSD 14.2 "SO_SPLICE" if Some(14) > freebsd_ver => true, + // FIXME(deprecated): deprecated in 0.2, removed in main + "TIOCMGDTRWAIT" | "TIOCMSDTRWAIT" => true, + _ => false, } }); diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index d093847f8983e..713f44fabbdd8 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1238,7 +1238,15 @@ pub const TIOCGETD: c_ulong = 0x4004741a; pub const TIOCSETD: c_ulong = 0x8004741b; pub const TIOCGDRAINWAIT: c_ulong = 0x40047456; pub const TIOCSDRAINWAIT: c_ulong = 0x80047457; +#[cfg_attr( + not(target_os = "dragonfly"), + deprecated = "unused since FreeBSD 8, removed in FreeBSD 15" +)] pub const TIOCMGDTRWAIT: c_ulong = 0x4004745a; +#[cfg_attr( + not(target_os = "dragonfly"), + deprecated = "unused since FreeBSD 8, removed in FreeBSD 15" +)] pub const TIOCMSDTRWAIT: c_ulong = 0x8004745b; pub const TIOCDRAIN: c_ulong = 0x2000745e; pub const TIOCEXT: c_ulong = 0x80047460; From 10d03771878d34d7394a39b5dc0c31cf7a085ac7 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Fri, 12 Sep 2025 14:50:20 -0600 Subject: [PATCH 0834/1228] Remove some mask constants from FreeBSD These are bitmasks that are intended to be used within the kernel. New features may widen them, so their values aren't stable. They probably don't have any legitimate uses in userland. And their values have changed in FreeBSD 15, which is causing CI failures. https://github.com/freebsd/freebsd-src/commit/eea3e4dd9703a252509d75814049aa8da5007ebb https://github.com/freebsd/freebsd-src/commit/851dc7f859c23cab09a348bca03ab655534fb7e0 (backport ) (cherry picked from commit fbfa2929cf723edb5a975a9488ca3de972b10610) --- libc-test/semver/freebsd-x86_64.txt | 1 - libc-test/semver/freebsd.txt | 2 -- src/unix/bsd/freebsdlike/freebsd/mod.rs | 2 -- src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs | 1 - 4 files changed, 6 deletions(-) diff --git a/libc-test/semver/freebsd-x86_64.txt b/libc-test/semver/freebsd-x86_64.txt index 14ddc25a1b254..a785644bd5cd2 100644 --- a/libc-test/semver/freebsd-x86_64.txt +++ b/libc-test/semver/freebsd-x86_64.txt @@ -1,7 +1,6 @@ Elf64_Auxinfo KINFO_FILE_SIZE MAP_32BIT -_MC_FLAG_MASK _MC_FPFMT_NODEV _MC_FPFMT_XMM _MC_FPOWNED_FPU diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index e473b710231c4..01a659fa52883 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -683,8 +683,6 @@ JAIL_API_VERSION JAIL_ATTACH JAIL_CREATE JAIL_DYING -JAIL_GET_MASK -JAIL_SET_MASK JAIL_SYS_DISABLE JAIL_SYS_INHERIT JAIL_SYS_NEW diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 54a9ec5ab546f..a23eee3b8bb16 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -2950,8 +2950,6 @@ pub const JAIL_CREATE: c_int = 0x01; pub const JAIL_UPDATE: c_int = 0x02; pub const JAIL_ATTACH: c_int = 0x04; pub const JAIL_DYING: c_int = 0x08; -pub const JAIL_SET_MASK: c_int = 0x0f; -pub const JAIL_GET_MASK: c_int = 0x08; pub const JAIL_SYS_DISABLE: c_int = 0; pub const JAIL_SYS_NEW: c_int = 1; pub const JAIL_SYS_INHERIT: c_int = 2; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index a488f61adcf00..d665e3da01e87 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -334,7 +334,6 @@ pub const MINSIGSTKSZ: size_t = 2048; // 512 * 4 pub const _MC_HASSEGS: u32 = 0x1; pub const _MC_HASBASES: u32 = 0x2; pub const _MC_HASFPXSTATE: u32 = 0x4; -pub const _MC_FLAG_MASK: u32 = _MC_HASSEGS | _MC_HASBASES | _MC_HASFPXSTATE; pub const _MC_FPFMT_NODEV: c_long = 0x10000; pub const _MC_FPFMT_XMM: c_long = 0x10002; From fcac18b40d7427df4fdf0ced85a92db5414ca747 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Fri, 12 Sep 2025 14:34:17 -0600 Subject: [PATCH 0835/1228] Switch the FreeBSD 15 CI image to FreeBSD-15.0-ALPHA3 . (backport ) (cherry picked from commit d52be204dcb9957fd5fda35c6e20eab32581f4b4) --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index fb627124e5b67..8caefcbb28a12 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -21,7 +21,7 @@ task: image: freebsd-14-3-release-amd64-ufs - name: nightly freebsd-15 x86_64 freebsd_instance: - image_family: freebsd-15-0-snap + image: freebsd-15-0-alpha3-amd64-ufs setup_script: - pkg install -y libnghttp2 curl - curl https://sh.rustup.rs -sSf --output rustup.sh From d995b3cc9789a3a496bd387ddb78765e45aeeab0 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Sat, 13 Sep 2025 17:20:34 -0600 Subject: [PATCH 0836/1228] On FreeBSD, set the ELF symbol version for readdir_r This function will probably be removed in FreeBSD 16. But the old symbol will remain, for backwards-compatibility. Set the symbol version now, so that the current version of libc will still be able to compile on future versions of FreeBSD. (backport ) (cherry picked from commit 3908285c37960434ea6ffcff6624ccf20c5e57a4) --- src/unix/mod.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 104758944317b..b3ac89e9a889e 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1745,6 +1745,10 @@ cfg_if! { all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "readdir_r@FBSD_1.0" )] + #[cfg_attr( + all(target_os = "freebsd", not(any(freebsd11, freebsd10))), + link_name = "readdir_r@FBSD_1.5" + )] #[allow(non_autolinks)] // FIXME(docs): `<>` breaks line length limit. /// The 64-bit libc on Solaris and illumos only has readdir_r. If a /// 32-bit Solaris or illumos target is ever created, it should use From bcd950a8e149426a07ec5481e5d16b5e8580f2b2 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 12 Sep 2025 19:11:39 +0100 Subject: [PATCH 0837/1228] Fix gid_t/uid_t types for redox. ref https://github.com/rust-lang/libc/issues/4678 (backport ) (cherry picked from commit f87a548bab6606c37102dce1d18f7045c447c724) [ update link in message to be absolute - Trevor ] --- src/unix/redox/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index d9502386dcae8..42c534c949fa9 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -29,8 +29,8 @@ pub type tcflag_t = u32; pub type time_t = c_longlong; pub type id_t = c_uint; pub type pid_t = usize; -pub type uid_t = u32; -pub type gid_t = u32; +pub type uid_t = c_int; +pub type gid_t = c_int; #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} From fc46e55bb8273ca7f2264f930209da0618fa897f Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 11 Apr 2025 19:28:48 +0000 Subject: [PATCH 0838/1228] Disable release-pr for now This started failing on `libc-0.2` because the release PR doesn't work there either. I am unsure why it did work before. (cherry picked from commit d92334c0a7b9af7c05870308f2e9eaf1390e4d98) --- .github/workflows/publish_0.2.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/publish_0.2.yml b/.github/workflows/publish_0.2.yml index 5ad1e97e1c1dc..00d5a7792a548 100644 --- a/.github/workflows/publish_0.2.yml +++ b/.github/workflows/publish_0.2.yml @@ -27,3 +27,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} + with: + # FIXME(release): release-pr is broken since we have two release tracks for + # `libc` :( + command: release From a719972aec08002f3c0bfab871d93fdb65db092c Mon Sep 17 00:00:00 2001 From: Folkert de Vries Date: Thu, 28 Aug 2025 20:31:31 +0200 Subject: [PATCH 0839/1228] add `qsort_r` for unix, and `qsort` and `qsort_s` for windows (backport ) (cherry picked from commit ab36ccbe870804ff7fc9293e6e4264280411841b) --- libc-test/semver/apple.txt | 1 + libc-test/semver/freebsd.txt | 1 + libc-test/semver/netbsd.txt | 1 + libc-test/semver/windows.txt | 2 ++ src/unix/bsd/apple/mod.rs | 8 ++++++++ src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs | 12 ++++++++++++ src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs | 9 +++++++++ src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs | 9 +++++++++ src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs | 8 ++++++++ src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs | 8 ++++++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 8 ++++++++ src/windows/mod.rs | 13 +++++++++++++ 12 files changed, 80 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index 33f3682d36262..9301252dcc949 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -2231,6 +2231,7 @@ ptrace pututxline pwritev qsort +qsort_r querylocale quotactl radvisory diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index 01a659fa52883..74ea7dad541e0 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -2247,6 +2247,7 @@ ptsname_r pututxline pwritev qsort +qsort_r querylocale rallocx rand diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index 07d9ead87c763..4280ec02de730 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -1536,6 +1536,7 @@ ptrace_siginfo pututxline pwritev qsort +qsort_r rand readdir_r readlinkat diff --git a/libc-test/semver/windows.txt b/libc-test/semver/windows.txt index 281a13bb73034..a91794bed52ef 100644 --- a/libc-test/semver/windows.txt +++ b/libc-test/semver/windows.txt @@ -275,6 +275,8 @@ putchar putenv putenv_s puts +qsort +qsort_s raise rand read diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index a4e0a4c7c9424..0729c0db1e7dd 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -6157,6 +6157,14 @@ extern "C" { search_path: *const c_char, argv: *const *mut c_char, ) -> c_int; + + pub fn qsort_r( + base: *mut c_void, + num: size_t, + size: size_t, + arg: *mut c_void, + compar: Option c_int>, + ); } #[allow(deprecated)] diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs index 9705e300bd9ac..64949e5f0daeb 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs @@ -424,6 +424,18 @@ extern "C" { // in FreeBSD 12 pub fn dirname(path: *const c_char) -> *mut c_char; pub fn basename(path: *const c_char) -> *mut c_char; + + // Argument order of the function pointer changed in FreeBSD 14. From 14 onwards the signature + // matches the POSIX specification by having the third argument be a mutable pointer, on + // earlier versions the first argument is the mutable pointer. + #[link_name = "qsort_r@FBSD_1.0"] + pub fn qsort_r( + base: *mut c_void, + num: size_t, + size: size_t, + arg: *mut c_void, + compar: Option c_int>, + ); } cfg_if! { diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index 005b26894cc81..ab7d3fb41317e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -468,6 +468,15 @@ extern "C" { pub fn dirname(path: *mut c_char) -> *mut c_char; pub fn basename(path: *mut c_char) -> *mut c_char; + + #[link_name = "qsort_r@FBSD_1.0"] + pub fn qsort_r( + base: *mut c_void, + num: size_t, + size: size_t, + arg: *mut c_void, + compar: Option c_int>, + ); } cfg_if! { diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs index 5c40a355fb95b..ff55933938f54 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -507,6 +507,15 @@ extern "C" { pub fn dirname(path: *mut c_char) -> *mut c_char; pub fn basename(path: *mut c_char) -> *mut c_char; + + #[link_name = "qsort_r@FBSD_1.0"] + pub fn qsort_r( + base: *mut c_void, + num: size_t, + size: size_t, + arg: *mut c_void, + compar: Option c_int>, + ); } #[link(name = "kvm")] diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index 4a65d59d5f3b1..3f23f05f5907f 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -509,6 +509,14 @@ extern "C" { pub fn dirname(path: *mut c_char) -> *mut c_char; pub fn basename(path: *mut c_char) -> *mut c_char; + + pub fn qsort_r( + base: *mut c_void, + num: size_t, + size: size_t, + compar: Option c_int>, + arg: *mut c_void, + ); } #[link(name = "kvm")] diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index 778c5ee018e34..cc8d895331f0c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -511,6 +511,14 @@ extern "C" { pub fn dirname(path: *mut c_char) -> *mut c_char; pub fn basename(path: *mut c_char) -> *mut c_char; + + pub fn qsort_r( + base: *mut c_void, + num: size_t, + size: size_t, + compar: Option c_int>, + arg: *mut c_void, + ); } #[link(name = "kvm")] diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 57549d01236e9..5975cbad4f0ed 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2761,6 +2761,14 @@ extern "C" { new_value: *const itimerspec, old_value: *mut itimerspec, ) -> c_int; + + pub fn qsort_r( + base: *mut c_void, + num: size_t, + size: size_t, + compar: Option c_int>, + arg: *mut c_void, + ); } #[link(name = "rt")] diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 5cafc855f78a0..2703729fac5bf 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -297,6 +297,19 @@ extern "C" { pub fn isblank(c: c_int) -> c_int; pub fn tolower(c: c_int) -> c_int; pub fn toupper(c: c_int) -> c_int; + pub fn qsort( + base: *mut c_void, + num: size_t, + size: size_t, + compar: Option c_int>, + ); + pub fn qsort_s( + base: *mut c_void, + num: size_t, + size: size_t, + compar: Option c_int>, + arg: *mut c_void, + ); pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; pub fn freopen(filename: *const c_char, mode: *const c_char, file: *mut FILE) -> *mut FILE; pub fn fflush(file: *mut FILE) -> c_int; From 5a3b5da3459b5367e604da3c169bac8e491303ab Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Fri, 17 Sep 2021 16:58:21 -0600 Subject: [PATCH 0840/1228] Raise libc's FreeBSD ABI to 12 FreeBSD 11 was EoL on 30-Sept-2021. Update libc's ABI to 12. That version includes significant changes, such as 64-bit inodes. (backport ) (cherry picked from commit 4bafe6b1df5ca3edac9ebc2d63d811d84a972a08) --- build.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.rs b/build.rs index 163735ac4cad4..dddbe9360fabc 100644 --- a/build.rs +++ b/build.rs @@ -58,7 +58,7 @@ fn main() { let target_arch = env::var("CARGO_CFG_TARGET_ARCH").unwrap_or_default(); // The ABI of libc used by std is backward compatible with FreeBSD 12. - // The ABI of libc from crates.io is backward compatible with FreeBSD 11. + // The ABI of libc from crates.io is backward compatible with FreeBSD 12. // // On CI, we detect the actual FreeBSD version and match its ABI exactly, // running tests to ensure that the ABI is correct. @@ -69,11 +69,11 @@ fn main() { println!("cargo:warning=setting FreeBSD version to {vers}"); vers } else if libc_ci { - which_freebsd().unwrap_or(11) + which_freebsd().unwrap_or(12) } else if rustc_dep_of_std { 12 } else { - 11 + 12 }; match which_freebsd { From ffa91702f4e739b7e36c03f1b531a02189877a98 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Mon, 15 Sep 2025 15:12:07 +0800 Subject: [PATCH 0841/1228] build.rs: Avoid duplicate branch in FreeBSD version handling --- build.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/build.rs b/build.rs index dddbe9360fabc..ba1b1df527971 100644 --- a/build.rs +++ b/build.rs @@ -70,8 +70,6 @@ fn main() { vers } else if libc_ci { which_freebsd().unwrap_or(12) - } else if rustc_dep_of_std { - 12 } else { 12 }; From 28f612d63715548bc740be618bfe64072b95d4dc Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 23 Sep 2025 03:43:43 -0500 Subject: [PATCH 0842/1228] Update the repr type for C enums Partial cherry pick of 192bccbf2c83 ("ctest: add suport for c enum"). --- src/macros.rs | 34 ++++++++++++++++++---------------- src/types.rs | 8 ++++++++ 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index 1bd547f07a28e..76b9f0f4f5dfe 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -87,7 +87,7 @@ macro_rules! prelude { pub(crate) use mem::{align_of, align_of_val, size_of, size_of_val}; #[allow(unused_imports)] - pub(crate) use crate::types::Padding; + pub(crate) use crate::types::{CEnumRepr, Padding}; // Commonly used types defined in this crate #[allow(unused_imports)] pub(crate) use crate::{ @@ -274,9 +274,9 @@ macro_rules! c_enum { c_enum!(@one; $ty_name; $variant + 1; $($tail)*); }; - // Use a specific type if provided, otherwise default to `c_uint` + // Use a specific type if provided, otherwise default to `CEnumRepr` (@ty $repr:ty) => { $repr }; - (@ty) => { $crate::c_uint }; + (@ty) => { $crate::prelude::CEnumRepr }; } // This is a pretty horrible hack to allow us to conditionally mark some functions as 'const', @@ -431,6 +431,8 @@ macro_rules! deprecated_mach { #[cfg(test)] mod tests { + use crate::types::CEnumRepr; + #[test] fn c_enumbasic() { // By default, variants get sequential values. @@ -442,9 +444,9 @@ mod tests { } } - assert_eq!(VAR0, 0_u32); - assert_eq!(VAR1, 1_u32); - assert_eq!(VAR2, 2_u32); + assert_eq!(VAR0, 0 as CEnumRepr); + assert_eq!(VAR1, 1 as CEnumRepr); + assert_eq!(VAR2, 2 as CEnumRepr); } #[test] @@ -471,9 +473,9 @@ mod tests { } } - assert_eq!(VAR2, 2_u32); - assert_eq!(VAR3, 3_u32); - assert_eq!(VAR4, 4_u32); + assert_eq!(VAR2, 2 as CEnumRepr); + assert_eq!(VAR3, 3 as CEnumRepr); + assert_eq!(VAR4, 4 as CEnumRepr); } #[test] @@ -492,12 +494,12 @@ mod tests { } } - assert_eq!(VAR0, 0_u32); - assert_eq!(VAR2_0, 2_u32); - assert_eq!(VAR3_0, 3_u32); - assert_eq!(VAR4_0, 4_u32); - assert_eq!(VAR2_1, 2_u32); - assert_eq!(VAR3_1, 3_u32); - assert_eq!(VAR4_1, 4_u32); + assert_eq!(VAR0, 0 as CEnumRepr); + assert_eq!(VAR2_0, 2 as CEnumRepr); + assert_eq!(VAR3_0, 3 as CEnumRepr); + assert_eq!(VAR4_0, 4 as CEnumRepr); + assert_eq!(VAR2_1, 2 as CEnumRepr); + assert_eq!(VAR3_1, 3 as CEnumRepr); + assert_eq!(VAR4_1, 4 as CEnumRepr); } } diff --git a/src/types.rs b/src/types.rs index d972d2390c9cd..3ef8177c5feca 100644 --- a/src/types.rs +++ b/src/types.rs @@ -16,3 +16,11 @@ impl Default for Padding { Self(MaybeUninit::zeroed()) } } + +/// The default repr type used for C style enums in Rust. +#[cfg(target_env = "msvc")] +#[allow(unused)] +pub(crate) type CEnumRepr = c_int; +#[cfg(not(target_env = "msvc"))] +#[allow(unused)] +pub(crate) type CEnumRepr = c_uint; From 4a46fbe0c711088321cf79a4710f1d362e657e2a Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 9 Aug 2025 22:58:00 +0000 Subject: [PATCH 0843/1228] Always implement `Debug` Currently `Debug` implementations are gated behind the `extra-traits` feature. My understanding is that historically, this was for two reasons: 1. `Debug` implementations for unions were unsound 2. Concerns about compile time The first was resolved a while ago by adding a "manual derive" opaque implementation, in 6faa521f32fc ("fix: make Debug impl for unions opaque"). Regarding the second reason, compile times for the current `main` on my machine are (cleaning in between, with the 2025-08-06 nightly): $ cargo build -p libc Compiling libc v1.0.0-alpha.1 (~/rust-libc) Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.79s $ cargo build -p libc --release Compiling libc v1.0.0-alpha.1 (~/rust-libc) Finished `release` profile [optimized] target(s) in 0.64s $ cargo build -p libc --features extra_traits Compiling libc v1.0.0-alpha.1 (~/rust-libc) Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.08s $ cargo build -p libc --features extra_traits --release Compiling libc v1.0.0-alpha.1 (~/rust-libc) Finished `release` profile [optimized] target(s) in 0.85s And with this patch applied: $ cargo build -p libc Compiling libc v1.0.0-alpha.1 (~/rust-libc) Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.89s $ cargo build -p libc --release Compiling libc v1.0.0-alpha.1 (~/rust-libc) Finished `release` profile [optimized] target(s) in 0.70s $ cargo build -p libc --features extra_traits Compiling libc v1.0.0-alpha.1 (~/rust-libc) Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.15s $ cargo build -p libc --features extra_traits --release Compiling libc v1.0.0-alpha.1 (~/rust-libc) Finished `release` profile [optimized] target(s) in 0.86s That is a microbenchmark but it shows that there probably isn't anything to worry about. Thus, remove the `Debug` implementation from the `feature = "extra_traitts"` gating. Another advantage of doing this is that it should allow many crates to remove the enable for `extra_traits`, giving us a better idea of who wants `Debug` vs. who is actually using the `Eq`/`Hash` implementations. Link: https://github.com/rust-lang/libc/issues/3880 (backport ) (cherry picked from commit a6e75638ce4ea3faa003082fc91226a77336de07) [ needed to apply in a few more places, including the e! macro definition - Trevor ] --- src/fuchsia/mod.rs | 10 ++-- src/lib.rs | 2 - src/macros.rs | 51 ++++++++++++------- src/solid/mod.rs | 4 +- src/unix/aix/powerpc64.rs | 2 +- src/unix/bsd/apple/mod.rs | 8 +-- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 2 +- .../bsd/freebsdlike/freebsd/freebsd11/b32.rs | 3 +- .../bsd/freebsdlike/freebsd/freebsd11/b64.rs | 3 +- src/unix/bsd/freebsdlike/freebsd/mod.rs | 26 ++++++---- src/unix/bsd/freebsdlike/mod.rs | 2 +- src/unix/bsd/netbsdlike/mod.rs | 4 +- src/unix/cygwin/mod.rs | 4 +- src/unix/haiku/mod.rs | 2 +- src/unix/hurd/mod.rs | 4 +- src/unix/linux_like/emscripten/mod.rs | 2 +- src/unix/linux_like/linux/mod.rs | 2 +- src/unix/linux_like/mod.rs | 2 +- src/unix/mod.rs | 6 +-- src/unix/nto/mod.rs | 2 +- src/unix/redox/mod.rs | 2 +- src/unix/solarish/mod.rs | 4 +- src/vxworks/mod.rs | 8 +-- src/wasi/mod.rs | 8 +-- src/windows/mod.rs | 6 +-- 25 files changed, 97 insertions(+), 72 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 3cd7f7cc31332..6101f06ca2599 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -80,7 +80,7 @@ pub type rlim_t = c_ulonglong; // FIXME(fuchsia): why are these uninhabited types? that seems... wrong? // Presumably these should be `()` or an `extern type` (when that stabilizes). -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum timezone {} impl Copy for timezone {} impl Clone for timezone { @@ -88,7 +88,7 @@ impl Clone for timezone { *self } } -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum DIR {} impl Copy for DIR {} impl Clone for DIR { @@ -97,7 +97,7 @@ impl Clone for DIR { } } -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum fpos64_t {} // FIXME(fuchsia): fill this out with a struct impl Copy for fpos64_t {} impl Clone for fpos64_t { @@ -3421,7 +3421,7 @@ fn __MHDR_END(mhdr: *const msghdr) -> *mut c_uchar { #[link(name = "fdio")] extern "C" {} -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum FILE {} impl Copy for FILE {} impl Clone for FILE { @@ -3429,7 +3429,7 @@ impl Clone for FILE { *self } } -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum fpos_t {} // FIXME(fuchsia): fill this out with a struct impl Copy for fpos_t {} impl Clone for fpos_t { diff --git a/src/lib.rs b/src/lib.rs index 5989c64da6287..39cbbf809f0ce 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -25,8 +25,6 @@ #![cfg_attr(feature = "rustc-dep-of-std", allow(internal_features))] // DIFF(1.0): The thread local references that raise this lint were removed in 1.0 #![cfg_attr(feature = "rustc-dep-of-std", allow(static_mut_refs))] -// Enable extra lints: -#![cfg_attr(feature = "extra_traits", warn(missing_debug_implementations))] #![warn(missing_copy_implementations, safe_packed_borrows)] #![cfg_attr(not(feature = "rustc-dep-of-std"), no_std)] #![cfg_attr(feature = "rustc-dep-of-std", no_core)] diff --git a/src/macros.rs b/src/macros.rs index 76b9f0f4f5dfe..1d0672501b9d1 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -72,17 +72,20 @@ macro_rules! prelude { mod prelude { // Exports from `core` #[allow(unused_imports)] - pub(crate) use ::core::clone::Clone; + pub(crate) use core::clone::Clone; #[allow(unused_imports)] - pub(crate) use ::core::default::Default; + pub(crate) use core::default::Default; #[allow(unused_imports)] - pub(crate) use ::core::marker::{Copy, Send, Sync}; + pub(crate) use core::marker::{Copy, Send, Sync}; #[allow(unused_imports)] - pub(crate) use ::core::option::Option; + pub(crate) use core::option::Option; #[allow(unused_imports)] - pub(crate) use ::core::prelude::v1::derive; + pub(crate) use core::prelude::v1::derive; #[allow(unused_imports)] - pub(crate) use ::core::{fmt, hash, iter, mem, ptr}; + pub(crate) use core::{fmt, hash, iter, mem, ptr}; + + #[allow(unused_imports)] + pub(crate) use fmt::Debug; #[allow(unused_imports)] pub(crate) use mem::{align_of, align_of_val, size_of, size_of_val}; @@ -120,9 +123,13 @@ macro_rules! s { #[repr(C)] #[cfg_attr( feature = "extra_traits", - ::core::prelude::v1::derive(Debug, Eq, Hash, PartialEq) + ::core::prelude::v1::derive(Eq, Hash, PartialEq) + )] + #[::core::prelude::v1::derive( + ::core::clone::Clone, + ::core::marker::Copy, + ::core::fmt::Debug, )] - #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)] #[allow(deprecated)] $(#[$attr])* pub struct $i { $($field)* } @@ -142,17 +149,21 @@ macro_rules! s_paren { __item! { #[cfg_attr( feature = "extra_traits", - ::core::prelude::v1::derive(Debug, Eq, Hash, PartialEq) + ::core::prelude::v1::derive(Eq, Hash, PartialEq) + )] + #[::core::prelude::v1::derive( + ::core::clone::Clone, + ::core::marker::Copy, + ::core::fmt::Debug, )] - #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)] $(#[$attr])* pub struct $i ( $($field)* ); } )*); } -/// Implement `Clone` and `Copy` for a struct with no `extra_traits` feature, as well as `Debug` -/// with `extra_traits` since that can always be derived. +/// Implement `Clone`, `Copy`, and `Debug` since those can be derived, but exclude `PartialEq`, +/// `Eq`, and `Hash`. /// /// Most items will prefer to use [`s`]. macro_rules! s_no_extra_traits { @@ -171,7 +182,6 @@ macro_rules! s_no_extra_traits { pub union $i { $($field)* } } - #[cfg(feature = "extra_traits")] impl ::core::fmt::Debug for $i { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { f.debug_struct(::core::stringify!($i)).finish_non_exhaustive() @@ -182,8 +192,11 @@ macro_rules! s_no_extra_traits { (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => ( __item! { #[repr(C)] - #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)] - #[cfg_attr(feature = "extra_traits", ::core::prelude::v1::derive(Debug))] + #[::core::prelude::v1::derive( + ::core::clone::Clone, + ::core::marker::Copy, + ::core::fmt::Debug, + )] $(#[$attr])* pub struct $i { $($field)* } } @@ -214,9 +227,13 @@ macro_rules! e { __item! { #[cfg_attr( feature = "extra_traits", - ::core::prelude::v1::derive(Debug, Eq, Hash, PartialEq) + ::core::prelude::v1::derive(Eq, Hash, PartialEq) + )] + #[::core::prelude::v1::derive( + ::core::clone::Clone, + ::core::marker::Copy, + ::core::fmt::Debug, )] - #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)] $(#[$attr])* pub enum $i { $($field)* } } diff --git a/src/solid/mod.rs b/src/solid/mod.rs index 965c5bb1aa522..40d6a9d348586 100644 --- a/src/solid/mod.rs +++ b/src/solid/mod.rs @@ -395,7 +395,7 @@ pub const SIGUSR1: c_int = 30; pub const SIGUSR2: c_int = 31; pub const SIGPWR: c_int = 32; -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum FILE {} impl Copy for FILE {} impl Clone for FILE { @@ -403,7 +403,7 @@ impl Clone for FILE { *self } } -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum fpos_t {} impl Copy for fpos_t {} impl Clone for fpos_t { diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index 856fd0d127d70..ba4ddc057c40b 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -3,7 +3,7 @@ use crate::prelude::*; // Define lock_data_instrumented as an empty enum missing! { - #[cfg_attr(feature = "extra_traits", derive(Debug))] + #[derive(Debug)] pub enum lock_data_instrumented {} } diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 0729c0db1e7dd..69720f0ba61fe 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -179,7 +179,7 @@ deprecated_mach! { pub type mach_timebase_info_data_t = mach_timebase_info; } -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum timezone {} impl Copy for timezone {} impl Clone for timezone { @@ -188,7 +188,7 @@ impl Clone for timezone { } } -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] #[repr(u32)] pub enum qos_class_t { QOS_CLASS_USER_INTERACTIVE = 0x21, @@ -205,7 +205,7 @@ impl Clone for qos_class_t { } } -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] #[repr(u32)] pub enum sysdir_search_path_directory_t { SYSDIR_DIRECTORY_APPLICATION = 1, @@ -240,7 +240,7 @@ impl Clone for sysdir_search_path_directory_t { } } -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] #[repr(u32)] pub enum sysdir_search_path_domain_mask_t { SYSDIR_DOMAIN_MASK_USER = (1 << 0), diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index bf2c06383d92e..d25ae011f6b2d 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -45,7 +45,7 @@ pub type vm_map_entry_t = *mut vm_map_entry; pub type pmap = __c_anonymous_pmap; -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum sem {} impl Copy for sem {} impl Clone for sem { diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs index 4b96972433ec9..dca7d6ee79988 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs @@ -2,7 +2,8 @@ use crate::off_t; use crate::prelude::*; #[repr(C)] -#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] +#[derive(Debug)] +#[cfg_attr(feature = "extra_traits", derive(Eq, Hash, PartialEq))] pub struct stat { pub st_dev: crate::dev_t, pub st_ino: crate::ino_t, diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs index c492ceb47aa41..1f31aac0e3d3d 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs @@ -2,7 +2,8 @@ use crate::off_t; use crate::prelude::*; #[repr(C)] -#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] +#[derive(Debug)] +#[cfg_attr(feature = "extra_traits", derive(Eq, Hash, PartialEq))] pub struct stat { pub st_dev: crate::dev_t, pub st_ino: crate::ino_t, diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index a23eee3b8bb16..6ae8896063332 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -53,7 +53,8 @@ pub type sctp_assoc_t = u32; pub type eventfd_t = u64; -#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] +#[derive(Debug)] +#[cfg_attr(feature = "extra_traits", derive(Hash, PartialEq, Eq))] #[repr(u32)] pub enum devstat_support_flags { DEVSTAT_ALL_SUPPORTED = 0x00, @@ -68,7 +69,8 @@ impl Clone for devstat_support_flags { } } -#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] +#[derive(Debug)] +#[cfg_attr(feature = "extra_traits", derive(Hash, PartialEq, Eq))] #[repr(u32)] pub enum devstat_trans_flags { DEVSTAT_NO_DATA = 0x00, @@ -84,7 +86,8 @@ impl Clone for devstat_trans_flags { } } -#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] +#[derive(Debug)] +#[cfg_attr(feature = "extra_traits", derive(Hash, PartialEq, Eq))] #[repr(u32)] pub enum devstat_tag_type { DEVSTAT_TAG_SIMPLE = 0x00, @@ -99,7 +102,8 @@ impl Clone for devstat_tag_type { } } -#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] +#[derive(Debug)] +#[cfg_attr(feature = "extra_traits", derive(Hash, PartialEq, Eq))] #[repr(u32)] pub enum devstat_match_flags { DEVSTAT_MATCH_NONE = 0x00, @@ -114,7 +118,8 @@ impl Clone for devstat_match_flags { } } -#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] +#[derive(Debug)] +#[cfg_attr(feature = "extra_traits", derive(Hash, PartialEq, Eq))] #[repr(u32)] pub enum devstat_priority { DEVSTAT_PRIORITY_MIN = 0x000, @@ -135,7 +140,8 @@ impl Clone for devstat_priority { } } -#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] +#[derive(Debug)] +#[cfg_attr(feature = "extra_traits", derive(Hash, PartialEq, Eq))] #[repr(u32)] pub enum devstat_type_flags { DEVSTAT_TYPE_DIRECT = 0x000, @@ -167,7 +173,8 @@ impl Clone for devstat_type_flags { } } -#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] +#[derive(Debug)] +#[cfg_attr(feature = "extra_traits", derive(Hash, PartialEq, Eq))] #[repr(u32)] pub enum devstat_metric { DSM_NONE, @@ -224,7 +231,8 @@ impl Clone for devstat_metric { } } -#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] +#[derive(Debug)] +#[cfg_attr(feature = "extra_traits", derive(Hash, PartialEq, Eq))] #[repr(u32)] pub enum devstat_select_mode { DS_SELECT_ADD, @@ -2387,7 +2395,7 @@ cfg_if! { } } -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] #[repr(u32)] pub enum dot3Vendors { dot3VendorAMD = 1, diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 713f44fabbdd8..ee73397e985e0 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -59,7 +59,7 @@ cfg_if! { // link.h -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum timezone {} impl Copy for timezone {} impl Clone for timezone { diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index 8bfeef9d25017..bc3e4cdf094ff 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -16,7 +16,7 @@ pub type id_t = u32; pub type sem_t = *mut sem; pub type key_t = c_long; -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum timezone {} impl Copy for timezone {} impl Clone for timezone { @@ -24,7 +24,7 @@ impl Clone for timezone { *self } } -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum sem {} impl Copy for sem {} impl Clone for sem { diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 4263d92671dd2..cadc2b062bf94 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -28,7 +28,7 @@ pub type nlink_t = c_ushort; pub type suseconds_t = c_long; pub type useconds_t = c_ulong; -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum timezone {} impl Copy for timezone {} impl Clone for timezone { @@ -75,7 +75,7 @@ pub type nfds_t = c_uint; pub type sem_t = *mut sem; -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum sem {} impl Copy for sem {} impl Clone for sem { diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 6673e96c32971..1ddbaed7e2186 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -80,7 +80,7 @@ pub type ACTION = c_int; pub type posix_spawnattr_t = *mut c_void; pub type posix_spawn_file_actions_t = *mut c_void; -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum timezone {} impl Copy for timezone {} impl Clone for timezone { diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index a818fc5772cde..16d4c250cc478 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -225,7 +225,7 @@ pub type nl_item = c_int; pub type iconv_t = *mut c_void; -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum fpos64_t {} // FIXME(hurd): fill this out with a struct impl Copy for fpos64_t {} impl Clone for fpos64_t { @@ -234,7 +234,7 @@ impl Clone for fpos64_t { } } -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum timezone {} impl Copy for timezone {} impl Clone for timezone { diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 10b0893565a03..811d6aad8519d 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -41,7 +41,7 @@ pub type statfs64 = crate::statfs; pub type statvfs64 = crate::statvfs; pub type dirent64 = crate::dirent; -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum fpos64_t {} // FIXME(emscripten): fill this out with a struct impl Copy for fpos64_t {} impl Clone for fpos64_t { diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 2d236327ea4ef..1df6248e12eb2 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -68,7 +68,7 @@ pub type eventfd_t = u64; cfg_if! { if #[cfg(not(target_env = "gnu"))] { missing! { - #[cfg_attr(feature = "extra_traits", derive(Debug))] + #[derive(Debug)] pub enum fpos64_t {} // FIXME(linux): fill this out with a struct } } diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 29f13fb37313e..b0eb9ed85cd13 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -9,7 +9,7 @@ pub type key_t = c_int; pub type id_t = c_uint; missing! { - #[cfg_attr(feature = "extra_traits", derive(Debug))] + #[derive(Debug)] pub enum timezone {} } diff --git a/src/unix/mod.rs b/src/unix/mod.rs index b3ac89e9a889e..b59b5bc5ce55f 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -38,7 +38,7 @@ cfg_if! { } missing! { - #[cfg_attr(feature = "extra_traits", derive(Debug))] + #[derive(Debug)] pub enum DIR {} } pub type locale_t = *mut c_void; @@ -568,14 +568,14 @@ cfg_if! { cfg_if! { if #[cfg(not(all(target_os = "linux", target_env = "gnu")))] { missing! { - #[cfg_attr(feature = "extra_traits", derive(Debug))] + #[derive(Debug)] pub enum fpos_t {} // FIXME(unix): fill this out with a struct } } } missing! { - #[cfg_attr(feature = "extra_traits", derive(Debug))] + #[derive(Debug)] pub enum FILE {} } diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index c5ebdde3868f3..7baf673394b34 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -72,7 +72,7 @@ pub type sem_t = sync_t; pub type nl_item = c_int; -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum timezone {} impl Copy for timezone {} impl Clone for timezone { diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 42c534c949fa9..d9ecf1a45a18f 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -32,7 +32,7 @@ pub type pid_t = usize; pub type uid_t = c_int; pub type gid_t = c_int; -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum timezone {} impl Copy for timezone {} impl Clone for timezone { diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index fc89d1d6d2a62..a6219a64437f2 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -55,7 +55,7 @@ pub type lgrp_view_t = c_uint; pub type posix_spawnattr_t = *mut c_void; pub type posix_spawn_file_actions_t = *mut c_void; -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum timezone {} impl Copy for timezone {} impl Clone for timezone { @@ -64,7 +64,7 @@ impl Clone for timezone { } } -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum ucred_t {} impl Copy for ucred_t {} impl Clone for ucred_t { diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index b03e8d6112e15..657f85851c8f1 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -4,7 +4,7 @@ use core::ptr::null_mut; use crate::prelude::*; -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum DIR {} impl Copy for DIR {} impl Clone for DIR { @@ -95,7 +95,7 @@ pub type sa_family_t = c_uchar; // mqueue.h pub type mqd_t = c_int; -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum _Vx_semaphore {} impl Copy for _Vx_semaphore {} impl Clone for _Vx_semaphore { @@ -1054,7 +1054,7 @@ pub const MAP_CONTIG: c_int = 0x0020; pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum FILE {} impl Copy for FILE {} impl Clone for FILE { @@ -1062,7 +1062,7 @@ impl Clone for FILE { *self } } -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum fpos_t {} // FIXME(vxworks): fill this out with a struct impl Copy for fpos_t {} impl Clone for fpos_t { diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index 4abb2bc1f99e2..b0ac6b639d0d9 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -42,13 +42,13 @@ s_no_extra_traits! { } #[allow(missing_copy_implementations)] -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum FILE {} #[allow(missing_copy_implementations)] -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum DIR {} #[allow(missing_copy_implementations)] -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum __locale_struct {} s_paren! { @@ -176,7 +176,7 @@ s! { // etc., since it contains a flexible array member with a dynamic size. #[repr(C)] #[allow(missing_copy_implementations)] -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub struct dirent { pub d_ino: ino_t, pub d_type: c_uchar, diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 2703729fac5bf..33ff35ef20a4b 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -29,7 +29,7 @@ cfg_if! { pub type off_t = i32; pub type dev_t = u32; pub type ino_t = u16; -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum timezone {} impl Copy for timezone {} impl Clone for timezone { @@ -251,7 +251,7 @@ pub const SIG_ACK: crate::sighandler_t = 4; #[link(name = "libcmt", cfg(target_feature = "crt-static"))] extern "C" {} -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum FILE {} impl Copy for FILE {} impl Clone for FILE { @@ -259,7 +259,7 @@ impl Clone for FILE { *self } } -#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[derive(Debug)] pub enum fpos_t {} // FIXME(windows): fill this out with a struct impl Copy for fpos_t {} impl Clone for fpos_t { From 169b15bcc211b5d4c3cd695eb54c82b8c1f2fe45 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 22 Sep 2025 21:42:25 -0500 Subject: [PATCH 0844/1228] Implement `Debug` for `Padding` Use the `MaybeUninit` formatting so this prints as `Padding` or similar. (backport ) (cherry picked from commit 4c95aea2add75ffb14c77a9c7475e24636d3b233) --- src/types.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/types.rs b/src/types.rs index 3ef8177c5feca..8be1c2d2e43df 100644 --- a/src/types.rs +++ b/src/types.rs @@ -17,6 +17,16 @@ impl Default for Padding { } } +impl fmt::Debug for Padding { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + // Taken frmo `MaybeUninit`'s debug implementation + // NB: there is no `.pad_fmt` so we can't use a simpler `format_args!("Padding<{..}>"). + let full_name = core::any::type_name::(); + let prefix_len = full_name.find("Padding").unwrap(); + f.pad(&full_name[prefix_len..]) + } +} + /// The default repr type used for C style enums in Rust. #[cfg(target_env = "msvc")] #[allow(unused)] From 9b77a49ecd2cb15807b18da4c4be808df4a47321 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 22 Sep 2025 21:47:24 -0500 Subject: [PATCH 0845/1228] Add a note about why `Padding` requires `T: Copy` (backport ) (cherry picked from commit cac66e6e250812b4ba48e762aed141588dbe0566) --- src/types.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/types.rs b/src/types.rs index 8be1c2d2e43df..7d49a425d59ea 100644 --- a/src/types.rs +++ b/src/types.rs @@ -6,6 +6,9 @@ use crate::prelude::*; /// A transparent wrapper over `MaybeUninit` to represent uninitialized padding /// while providing `Default`. +// This is restricted to `Copy` types since that's a loose indicator that zeros is actually +// a valid bitpattern. There is no technical reason this is required, though, so it could be +// lifted in the future if it becomes a problem. #[allow(unused)] #[repr(transparent)] #[derive(Clone, Copy)] From fd3ffe46a5c2a170ce457af10260be8352e12ef0 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 22 Sep 2025 21:59:57 -0500 Subject: [PATCH 0846/1228] Remove `libc_const_extern_fn` This originally existed for MSRV support, then became a necessary hack to support the old ctest's inability to parse `const fn`. The new ctest doesn't have this limitation, so remove the config. Additionally, switch from the `*` kleene to `?` since that is possible now. (backport ) (cherry picked from commit 48940819fd7ed1797b9cb861c85abdd98c8d3296) --- build.rs | 5 -- src/macros.rs | 144 +++++++++++++------------------------------------- 2 files changed, 38 insertions(+), 111 deletions(-) diff --git a/build.rs b/build.rs index ba1b1df527971..26b2682eb59d4 100644 --- a/build.rs +++ b/build.rs @@ -17,8 +17,6 @@ const ALLOWED_CFGS: &[&str] = &[ "gnu_file_offset_bits64", // Corresponds to `_TIME_BITS=64` in glibc "gnu_time_bits64", - // FIXME(ctest): this config shouldn't be needed but ctest can't parse `const extern fn` - "libc_const_extern_fn", "libc_deny_warnings", "libc_thread_local", "libc_ctest", @@ -151,9 +149,6 @@ fn main() { set_cfg("libc_thread_local"); } - // Set unconditionally when ctest is not being invoked. - set_cfg("libc_const_extern_fn"); - // Since Rust 1.80, configuration that isn't recognized by default needs to be provided to // avoid warnings. if rustc_minor_ver >= 80 { diff --git a/src/macros.rs b/src/macros.rs index 1d0672501b9d1..051f1a13cb53e 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -296,114 +296,46 @@ macro_rules! c_enum { (@ty) => { $crate::prelude::CEnumRepr }; } -// This is a pretty horrible hack to allow us to conditionally mark some functions as 'const', -// without requiring users of this macro to care "libc_const_extern_fn". -// -// When 'libc_const_extern_fn' is enabled, we emit the captured 'const' keyword in the expanded -// function. -// -// When 'libc_const_extern_fn' is disabled, we always emit a plain 'pub unsafe extern fn'. -// Note that the expression matched by the macro is exactly the same - this allows -// users of this macro to work whether or not 'libc_const_extern_fn' is enabled -// -// Unfortunately, we need to duplicate most of this macro between the 'cfg_if' blocks. -// This is because 'const unsafe extern fn' won't even parse on older compilers, -// so we need to avoid emitting it at all of 'libc_const_extern_fn'. -// -// Specifically, moving the 'cfg_if' into the macro body will *not* work. Doing so would cause the -// '#[cfg(libc_const_extern_fn)]' to be emitted into user code. The 'cfg' gate will not stop Rust -// from trying to parse the 'pub const unsafe extern fn', so users would get a compiler error even -// when the 'libc_const_extern_fn' feature is disabled. - -// FIXME(ctest): ctest can't handle `const extern` functions, we should be able to remove this -// cfg completely. -// FIXME(ctest): ctest can't handle `$(,)?` so we use `$(,)*` which isn't quite correct. -cfg_if! { - if #[cfg(libc_const_extern_fn)] { - /// Define an `unsafe` function that is const as long as `libc_const_extern_fn` is enabled. - macro_rules! f { - ($( - $(#[$attr:meta])* - pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty - $body:block - )*) => ($( - #[inline] - $(#[$attr])* - pub $($constness)* unsafe extern "C" fn $i($($arg: $argty),*) -> $ret - $body - )*) - } - - /// Define a safe function that is const as long as `libc_const_extern_fn` is enabled. - macro_rules! safe_f { - ($( - $(#[$attr:meta])* - pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty - $body:block - )*) => ($( - #[inline] - $(#[$attr])* - pub $($constness)* extern "C" fn $i($($arg: $argty),*) -> $ret - $body - )*) - } - - /// A nonpublic function that is const as long as `libc_const_extern_fn` is enabled. - macro_rules! const_fn { - ($( - $(#[$attr:meta])* - $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty - $body:block - )*) => ($( - #[inline] - $(#[$attr])* - $($constness)* fn $i($($arg: $argty),*) -> $ret - $body - )*) - } - } else { - /// Define an `unsafe` function that is const as long as `libc_const_extern_fn` is enabled. - macro_rules! f { - ($( - $(#[$attr:meta])* - pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty - $body:block - )*) => ($( - #[inline] - $(#[$attr])* - pub unsafe extern "C" fn $i($($arg: $argty),*) -> $ret - $body - )*) - } +/// Define a `unsafe` function. +macro_rules! f { + ($( + $(#[$attr:meta])* + pub $({$constness:ident})? fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty + $body:block + )*) => ($( + #[inline] + $(#[$attr])* + pub $($constness)? unsafe extern "C" fn $i($($arg: $argty),*) -> $ret + $body + )*) +} - /// Define a safe function that is const as long as `libc_const_extern_fn` is enabled. - macro_rules! safe_f { - ($( - $(#[$attr:meta])* - pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty - $body:block - )*) => ($( - #[inline] - $(#[$attr])* - pub extern "C" fn $i($($arg: $argty),*) -> $ret - $body - )*) - } +/// Define a safe function. +macro_rules! safe_f { + ($( + $(#[$attr:meta])* + pub $({$constness:ident})? fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty + $body:block + )*) => ($( + #[inline] + $(#[$attr])* + pub $($constness)? extern "C" fn $i($($arg: $argty),*) -> $ret + $body + )*) +} - /// A nonpublic function that is const as long as `libc_const_extern_fn` is enabled. - macro_rules! const_fn { - ($( - $(#[$attr:meta])* - $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty - $body:block - )*) => ($( - #[inline] - $(#[$attr])* - fn $i($($arg: $argty),*) -> $ret - $body - )*) - } - } +/// Define a nonpublic function. +macro_rules! const_fn { + ($( + $(#[$attr:meta])* + $({$constness:ident})? fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty + $body:block + )*) => ($( + #[inline] + $(#[$attr])* + $($constness)? fn $i($($arg: $argty),*) -> $ret + $body + )*) } macro_rules! __item { From 09c8436f5a5563e33276c4a8490686b1adfa379b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 22 Sep 2025 22:40:08 -0500 Subject: [PATCH 0847/1228] Remove the `libc_ctest` feature This was a workaround for the old ctest not being able to parse something related to the `addr_of!` macros in statics referencing statics. This is not needed with the new ctest; thus, remove the config. (backport ) (cherry picked from commit 4f2c41a5970e13c9c1a7b265583a8dfdbc01b235) --- build.rs | 1 - libc-test/build.rs | 5 ----- src/wasi/mod.rs | 31 +++++++++++-------------------- 3 files changed, 11 insertions(+), 26 deletions(-) diff --git a/build.rs b/build.rs index 26b2682eb59d4..802ea7a37def0 100644 --- a/build.rs +++ b/build.rs @@ -19,7 +19,6 @@ const ALLOWED_CFGS: &[&str] = &[ "gnu_time_bits64", "libc_deny_warnings", "libc_thread_local", - "libc_ctest", // Corresponds to `__USE_TIME_BITS64` in UAPI "linux_time_bits64", "musl_v1_2_3", diff --git a/libc-test/build.rs b/libc-test/build.rs index abf5da9cee334..cc15451b760fb 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1795,11 +1795,6 @@ fn test_wasi(target: &str) { "wchar.h", } - // Currently `ctest2` doesn't support macros-in-static-expressions and will - // panic on them. That affects `CLOCK_*` defines in wasi to set this here - // to omit them. - cfg.cfg("libc_ctest", None); - cfg.rename_struct_ty(move |ty| match ty { "FILE" | "fd_set" | "DIR" => Some(ty.to_string()), t if t.ends_with("_t") => Some(t.to_string()), diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index b0ac6b639d0d9..823b87aa69efa 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -361,26 +361,17 @@ pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; pub const _SC_IOV_MAX: c_int = 60; pub const _SC_SYMLOOP_MAX: c_int = 173; -cfg_if! { - if #[cfg(libc_ctest)] { - // skip these constants when this is active because `ctest` currently - // panics on parsing the constants below - } else { - // `addr_of!(EXTERN_STATIC)` is now safe; remove `unsafe` when MSRV >= 1.82 - #[allow(unused_unsafe)] - pub static CLOCK_MONOTONIC: clockid_t = - unsafe { clockid_t(core::ptr::addr_of!(_CLOCK_MONOTONIC)) }; - #[allow(unused_unsafe)] - pub static CLOCK_PROCESS_CPUTIME_ID: clockid_t = - unsafe { clockid_t(core::ptr::addr_of!(_CLOCK_PROCESS_CPUTIME_ID)) }; - #[allow(unused_unsafe)] - pub static CLOCK_REALTIME: clockid_t = - unsafe { clockid_t(core::ptr::addr_of!(_CLOCK_REALTIME)) }; - #[allow(unused_unsafe)] - pub static CLOCK_THREAD_CPUTIME_ID: clockid_t = - unsafe { clockid_t(core::ptr::addr_of!(_CLOCK_THREAD_CPUTIME_ID)) }; - } -} +// FIXME(msrv): `addr_of!(EXTERN_STATIC)` is now safe; remove `unsafe` when MSRV >= 1.82 +#[allow(unused_unsafe)] +pub static CLOCK_MONOTONIC: clockid_t = unsafe { clockid_t(core::ptr::addr_of!(_CLOCK_MONOTONIC)) }; +#[allow(unused_unsafe)] +pub static CLOCK_PROCESS_CPUTIME_ID: clockid_t = + unsafe { clockid_t(core::ptr::addr_of!(_CLOCK_PROCESS_CPUTIME_ID)) }; +#[allow(unused_unsafe)] +pub static CLOCK_REALTIME: clockid_t = unsafe { clockid_t(core::ptr::addr_of!(_CLOCK_REALTIME)) }; +#[allow(unused_unsafe)] +pub static CLOCK_THREAD_CPUTIME_ID: clockid_t = + unsafe { clockid_t(core::ptr::addr_of!(_CLOCK_THREAD_CPUTIME_ID)) }; pub const ABDAY_1: crate::nl_item = 0x20000; pub const ABDAY_2: crate::nl_item = 0x20001; From 8c8584b7b12e1bd67353e5f6d5a8de9ebe6e1e4c Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 22 Sep 2025 22:47:46 -0500 Subject: [PATCH 0848/1228] Resolve a ctest FIXME regarding use of `size_of` in array lengths (backport ) (cherry picked from commit 6f0ebb8f0b6ff8126722bc4b93f339d48573842e) [ note that there was no FIXME comment on 0.2 - Trevor ] --- src/unix/linux_like/linux/musl/mod.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index f625a3017d832..4bc11449145c7 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -136,10 +136,7 @@ s! { pub aio_offset: off_t, __next: *mut c_void, __prev: *mut c_void, - #[cfg(target_pointer_width = "32")] - __dummy4: [c_char; 24], - #[cfg(target_pointer_width = "64")] - __dummy4: [c_char; 16], + __dummy4: [c_char; 32 - 2 * size_of::<*const ()>()], } #[repr(align(8))] From d32f60d67098749a271c737eb85d627875ff7cd8 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 22 Sep 2025 22:49:48 -0500 Subject: [PATCH 0849/1228] doc: Remove an unneeded link to the old ctest repo (backport ) (cherry picked from commit 1880ba50c38c0562af0defe94b0cdb638f7f9dec) --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 74f49f3e7bb04..0cdfaeadf9059 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -89,7 +89,7 @@ standard, it's just a list shared among all OSs that declare `#[cfg(unix)]`. We have two automated tests running on [GitHub Actions](https://github.com/rust-lang/libc/actions): -1. [`libc-test`](https://github.com/gnzlbg/ctest) +1. `libc-test` - `cd libc-test && cargo test` - Use the `skip_*()` functions in `build.rs` if you really need a workaround. 2. Style checker From 776a61416e86f91eb78a1d3d4a379989a1d46edd Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 22 Sep 2025 22:53:44 -0500 Subject: [PATCH 0850/1228] cleanup: Use `target_vendor = "apple"` The old ctest couldn't handle `target_vendor`, but this is no longer an issue. Simplify the config here. (backport ) (cherry picked from commit 94e3f9805056dca478c6d9dfd25e4333eda5989d) --- src/primitives.rs | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/primitives.rs b/src/primitives.rs index cec4f96f86eed..80a10af4c8546 100644 --- a/src/primitives.rs +++ b/src/primitives.rs @@ -20,14 +20,7 @@ pub type c_double = f64; cfg_if! { if #[cfg(all( not(windows), - // FIXME(ctest): just use `target_vendor` = "apple"` once `ctest` supports it - not(any( - target_os = "macos", - target_os = "ios", - target_os = "tvos", - target_os = "watchos", - target_os = "visionos", - )), + not(target_vendor = "apple"), not(target_os = "vita"), any( target_arch = "aarch64", From e447441a8c3bc9ab195a945c2e8db369987621d1 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 22 Sep 2025 22:32:31 -0500 Subject: [PATCH 0851/1228] cleanup: Simplify the syntax of `f!` and similar macros We no longer need to support gating `const` behind `libc_const_extern_fn`, so remove the awkward `{const}` syntax. (backport ) (cherry picked from commit e860257fc163d58872f0402f333960e19bdcae67) --- ci/style.sh | 7 ---- src/fuchsia/mod.rs | 30 ++++++------- src/macros.rs | 26 +++++++----- src/unix/aix/mod.rs | 26 ++++++------ src/unix/bsd/apple/mod.rs | 22 +++++----- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 14 +++---- .../bsd/freebsdlike/freebsd/freebsd11/mod.rs | 6 +-- .../bsd/freebsdlike/freebsd/freebsd12/mod.rs | 6 +-- .../bsd/freebsdlike/freebsd/freebsd13/mod.rs | 6 +-- .../bsd/freebsdlike/freebsd/freebsd14/mod.rs | 6 +-- .../bsd/freebsdlike/freebsd/freebsd15/mod.rs | 6 +-- src/unix/bsd/freebsdlike/freebsd/mod.rs | 28 ++++++------- src/unix/bsd/freebsdlike/mod.rs | 6 +-- src/unix/bsd/mod.rs | 10 ++--- src/unix/bsd/netbsdlike/netbsd/mod.rs | 20 ++++----- src/unix/bsd/netbsdlike/openbsd/mod.rs | 20 ++++----- src/unix/cygwin/mod.rs | 26 ++++++------ src/unix/haiku/mod.rs | 22 +++++----- src/unix/hurd/mod.rs | 42 +++++++++---------- src/unix/linux_like/android/mod.rs | 6 +-- src/unix/linux_like/emscripten/mod.rs | 6 +-- src/unix/linux_like/linux/mod.rs | 12 +++--- src/unix/linux_like/mod.rs | 38 ++++++++--------- src/unix/mod.rs | 8 ++-- src/unix/newlib/horizon/mod.rs | 16 +++---- src/unix/newlib/rtems/mod.rs | 16 +++---- src/unix/nto/mod.rs | 32 +++++++------- src/unix/redox/mod.rs | 22 +++++----- src/unix/solarish/mod.rs | 26 ++++++------ src/vxworks/mod.rs | 18 ++++---- 30 files changed, 264 insertions(+), 265 deletions(-) diff --git a/ci/style.sh b/ci/style.sh index 2d3e874e38998..200cc15cfa16a 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -31,12 +31,6 @@ while IFS= read -r file; do # wouldn't be correct for something like `all(any(...), ...)`). perl -pi -0777 -e 's/if #\[cfg\((.*?)\)\]/if cfg_tmp!([$1])/gms' "$file" - # We have some instances of `{const}` that make macros happy but aren't - # valid syntax. Replace this with just the keyword, plus an indicator - # comment on the preceding line (which is where rustfmt puts it. Also - # rust-lang/rustfmt#5464). - perl -pi -e 's/^(\s*)(.*)\{const\}/$1\/\* FMT-CONST \*\/\n$1$2const/g' "$file" - # Format the file. We need to invoke `rustfmt` directly since `cargo fmt` # can't figure out the module tree with the hacks in place. failed=false @@ -45,7 +39,6 @@ while IFS= read -r file; do # Restore all changes to the files. perl -pi -e 's/fn (\w+)_fmt_tmp\(\)/$1!/g' "$file" perl -pi -0777 -e 's/cfg_tmp!\(\[(.*?)\]\)/#[cfg($1)]/gms' "$file" - perl -pi -0777 -e 's/\/\* FMT-CONST \*\/(?:\n\s*)?(.*?)const/$1\{const\}/gms' "$file" # Defer emitting the failure until after the files get reset if [ "$failed" != "false" ]; then diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 6101f06ca2599..31f13b16832d2 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -3326,57 +3326,57 @@ f! { } } - pub {const} fn CMSG_ALIGN(len: size_t) -> size_t { + pub const fn CMSG_ALIGN(len: size_t) -> size_t { (len + size_of::() - 1) & !(size_of::() - 1) } - pub {const} fn CMSG_SPACE(len: c_uint) -> c_uint { + pub const fn CMSG_SPACE(len: c_uint) -> c_uint { (CMSG_ALIGN(len as size_t) + CMSG_ALIGN(size_of::())) as c_uint } - pub {const} fn CMSG_LEN(len: c_uint) -> c_uint { + pub const fn CMSG_LEN(len: c_uint) -> c_uint { (CMSG_ALIGN(size_of::()) + len as size_t) as c_uint } } safe_f! { - pub {const} fn WIFSTOPPED(status: c_int) -> bool { + pub const fn WIFSTOPPED(status: c_int) -> bool { (status & 0xff) == 0x7f } - pub {const} fn WSTOPSIG(status: c_int) -> c_int { + pub const fn WSTOPSIG(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WIFCONTINUED(status: c_int) -> bool { + pub const fn WIFCONTINUED(status: c_int) -> bool { status == 0xffff } - pub {const} fn WIFSIGNALED(status: c_int) -> bool { + pub const fn WIFSIGNALED(status: c_int) -> bool { ((status & 0x7f) + 1) as i8 >= 2 } - pub {const} fn WTERMSIG(status: c_int) -> c_int { + pub const fn WTERMSIG(status: c_int) -> c_int { status & 0x7f } - pub {const} fn WIFEXITED(status: c_int) -> bool { + pub const fn WIFEXITED(status: c_int) -> bool { (status & 0x7f) == 0 } - pub {const} fn WEXITSTATUS(status: c_int) -> c_int { + pub const fn WEXITSTATUS(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WCOREDUMP(status: c_int) -> bool { + pub const fn WCOREDUMP(status: c_int) -> bool { (status & 0x80) != 0 } - pub {const} fn QCMD(cmd: c_int, type_: c_int) -> c_int { + pub const fn QCMD(cmd: c_int, type_: c_int) -> c_int { (cmd << 8) | (type_ & 0x00ff) } - pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { let major = major as crate::dev_t; let minor = minor as crate::dev_t; let mut dev = 0; @@ -3387,14 +3387,14 @@ safe_f! { dev } - pub {const} fn major(dev: crate::dev_t) -> c_uint { + pub const fn major(dev: crate::dev_t) -> c_uint { let mut major = 0; major |= (dev & 0x00000000000fff00) >> 8; major |= (dev & 0xfffff00000000000) >> 32; major as c_uint } - pub {const} fn minor(dev: crate::dev_t) -> c_uint { + pub const fn minor(dev: crate::dev_t) -> c_uint { let mut minor = 0; minor |= (dev & 0x00000000000000ff) >> 0; minor |= (dev & 0x00000ffffff00000) >> 12; diff --git a/src/macros.rs b/src/macros.rs index 051f1a13cb53e..1ffa71e02df37 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -300,40 +300,46 @@ macro_rules! c_enum { macro_rules! f { ($( $(#[$attr:meta])* - pub $({$constness:ident})? fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty + // Less than ideal hack to match either `fn` or `const fn`. + pub $(fn $i:ident)? $(const fn $const_i:ident)? + ($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty $body:block - )*) => ($( + )+) => {$( #[inline] $(#[$attr])* - pub $($constness)? unsafe extern "C" fn $i($($arg: $argty),*) -> $ret + pub $(unsafe extern "C" fn $i)? $(const unsafe extern "C" fn $const_i)? + ($($arg: $argty),*) -> $ret $body - )*) + )+}; } /// Define a safe function. macro_rules! safe_f { ($( $(#[$attr:meta])* - pub $({$constness:ident})? fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty + // Less than ideal hack to match either `fn` or `const fn`. + pub $(fn $i:ident)? $(const fn $const_i:ident)? + ($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty $body:block - )*) => ($( + )+) => {$( #[inline] $(#[$attr])* - pub $($constness)? extern "C" fn $i($($arg: $argty),*) -> $ret + pub $(extern "C" fn $i)? $(const extern "C" fn $const_i)? + ($($arg: $argty),*) -> $ret $body - )*) + )+}; } /// Define a nonpublic function. macro_rules! const_fn { ($( $(#[$attr:meta])* - $({$constness:ident})? fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty + const fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty $body:block )*) => ($( #[inline] $(#[$attr])* - $($constness)? fn $i($($arg: $argty),*) -> $ret + const fn $i($($arg: $argty),*) -> $ret $body )*) } diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 8a1b95ea4485d..b6d1af52d133c 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -2457,11 +2457,11 @@ f! { (cmsg as *mut c_uchar).offset(size_of::() as isize) } - pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + pub const fn CMSG_LEN(length: c_uint) -> c_uint { size_of::() as c_uint + length } - pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + pub const fn CMSG_SPACE(length: c_uint) -> c_uint { size_of::() as c_uint + length } @@ -2493,11 +2493,11 @@ f! { } safe_f! { - pub {const} fn WIFSTOPPED(status: c_int) -> bool { + pub const fn WIFSTOPPED(status: c_int) -> bool { (status & _W_STOPPED) != 0 } - pub {const} fn WSTOPSIG(status: c_int) -> c_int { + pub const fn WSTOPSIG(status: c_int) -> c_int { if WIFSTOPPED(status) { (((status as c_uint) >> 8) & 0xff) as c_int } else { @@ -2505,11 +2505,11 @@ safe_f! { } } - pub {const} fn WIFEXITED(status: c_int) -> bool { + pub const fn WIFEXITED(status: c_int) -> bool { (status & 0xFF) == 0 } - pub {const} fn WEXITSTATUS(status: c_int) -> c_int { + pub const fn WEXITSTATUS(status: c_int) -> c_int { if WIFEXITED(status) { (((status as c_uint) >> 8) & 0xff) as c_int } else { @@ -2517,11 +2517,11 @@ safe_f! { } } - pub {const} fn WIFSIGNALED(status: c_int) -> bool { + pub const fn WIFSIGNALED(status: c_int) -> bool { !WIFEXITED(status) && !WIFSTOPPED(status) } - pub {const} fn WTERMSIG(status: c_int) -> c_int { + pub const fn WTERMSIG(status: c_int) -> c_int { if WIFSIGNALED(status) { (((status as c_uint) >> 16) & 0xff) as c_int } else { @@ -2529,26 +2529,26 @@ safe_f! { } } - pub {const} fn WIFCONTINUED(status: c_int) -> bool { + pub const fn WIFCONTINUED(status: c_int) -> bool { (status & WCONTINUED) != 0 } // AIX doesn't have native WCOREDUMP. - pub {const} fn WCOREDUMP(_status: c_int) -> bool { + pub const fn WCOREDUMP(_status: c_int) -> bool { false } - pub {const} fn major(dev: crate::dev_t) -> c_uint { + pub const fn major(dev: crate::dev_t) -> c_uint { let x = dev >> 16; x as c_uint } - pub {const} fn minor(dev: crate::dev_t) -> c_uint { + pub const fn minor(dev: crate::dev_t) -> c_uint { let y = dev & 0xFFFF; y as c_uint } - pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { let major = major as crate::dev_t; let minor = minor as crate::dev_t; let mut dev = 0; diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 69720f0ba61fe..1c6e5a8f000f7 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -5214,49 +5214,49 @@ f! { (cmsg as *mut c_uchar).add(__DARWIN_ALIGN32(size_of::())) } - pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + pub const fn CMSG_SPACE(length: c_uint) -> c_uint { (__DARWIN_ALIGN32(size_of::()) + __DARWIN_ALIGN32(length as usize)) as c_uint } - pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + pub const fn CMSG_LEN(length: c_uint) -> c_uint { (__DARWIN_ALIGN32(size_of::()) + length as usize) as c_uint } - pub {const} fn VM_MAKE_TAG(id: u8) -> u32 { + pub const fn VM_MAKE_TAG(id: u8) -> u32 { (id as u32) << 24u32 } } safe_f! { - pub {const} fn WSTOPSIG(status: c_int) -> c_int { + pub const fn WSTOPSIG(status: c_int) -> c_int { status >> 8 } - pub {const} fn _WSTATUS(status: c_int) -> c_int { + pub const fn _WSTATUS(status: c_int) -> c_int { status & 0x7f } - pub {const} fn WIFCONTINUED(status: c_int) -> bool { + pub const fn WIFCONTINUED(status: c_int) -> bool { _WSTATUS(status) == _WSTOPPED && WSTOPSIG(status) == 0x13 } - pub {const} fn WIFSIGNALED(status: c_int) -> bool { + pub const fn WIFSIGNALED(status: c_int) -> bool { _WSTATUS(status) != _WSTOPPED && _WSTATUS(status) != 0 } - pub {const} fn WIFSTOPPED(status: c_int) -> bool { + pub const fn WIFSTOPPED(status: c_int) -> bool { _WSTATUS(status) == _WSTOPPED && WSTOPSIG(status) != 0x13 } - pub {const} fn makedev(major: i32, minor: i32) -> dev_t { + pub const fn makedev(major: i32, minor: i32) -> dev_t { (major << 24) | minor } - pub {const} fn major(dev: dev_t) -> i32 { + pub const fn major(dev: dev_t) -> i32 { (dev >> 24) & 0xff } - pub {const} fn minor(dev: dev_t) -> i32 { + pub const fn minor(dev: dev_t) -> i32 { dev & 0xffffff } } diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index d25ae011f6b2d..930c7089131f1 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -1420,7 +1420,7 @@ pub const RTAX_MPLS3: c_int = 10; pub const RTAX_MAX: c_int = 11; const_fn! { - {const} fn _CMSG_ALIGN(n: usize) -> usize { + const fn _CMSG_ALIGN(n: usize) -> usize { (n + (size_of::() - 1)) & !(size_of::() - 1) } } @@ -1430,7 +1430,7 @@ f! { (cmsg as *mut c_uchar).offset(_CMSG_ALIGN(size_of::()) as isize) } - pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + pub const fn CMSG_LEN(length: c_uint) -> c_uint { (_CMSG_ALIGN(size_of::()) + length as usize) as c_uint } @@ -1446,7 +1446,7 @@ f! { } } - pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + pub const fn CMSG_SPACE(length: c_uint) -> c_uint { (_CMSG_ALIGN(size_of::()) + _CMSG_ALIGN(length as usize)) as c_uint } @@ -1475,11 +1475,11 @@ f! { } safe_f! { - pub {const} fn WIFSIGNALED(status: c_int) -> bool { + pub const fn WIFSIGNALED(status: c_int) -> bool { (status & 0o177) != 0o177 && (status & 0o177) != 0 } - pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { let major = major as crate::dev_t; let minor = minor as crate::dev_t; let mut dev = 0; @@ -1488,11 +1488,11 @@ safe_f! { dev } - pub {const} fn major(dev: crate::dev_t) -> c_int { + pub const fn major(dev: crate::dev_t) -> c_int { ((dev >> 8) & 0xff) as c_int } - pub {const} fn minor(dev: crate::dev_t) -> c_int { + pub const fn minor(dev: crate::dev_t) -> c_int { (dev & 0xffff00ff) as c_int } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs index 64949e5f0daeb..b3b032bc66949 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs @@ -385,17 +385,17 @@ pub const MINCORE_SUPER: c_int = 0x20; pub const SPECNAMELEN: c_int = 63; safe_f! { - pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { let major = major as crate::dev_t; let minor = minor as crate::dev_t; (major << 8) | minor } - pub {const} fn major(dev: crate::dev_t) -> c_int { + pub const fn major(dev: crate::dev_t) -> c_int { ((dev >> 8) & 0xff) as c_int } - pub {const} fn minor(dev: crate::dev_t) -> c_int { + pub const fn minor(dev: crate::dev_t) -> c_int { (dev & 0xffff00ff) as c_int } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index ab7d3fb41317e..962d7817a2649 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -434,7 +434,7 @@ pub const KI_NSPARE_PTR: usize = 6; pub const MINCORE_SUPER: c_int = 0x20; safe_f! { - pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { let major = major as crate::dev_t; let minor = minor as crate::dev_t; let mut dev = 0; @@ -445,11 +445,11 @@ safe_f! { dev } - pub {const} fn major(dev: crate::dev_t) -> c_int { + pub const fn major(dev: crate::dev_t) -> c_int { (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as c_int } - pub {const} fn minor(dev: crate::dev_t) -> c_int { + pub const fn minor(dev: crate::dev_t) -> c_int { (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as c_int } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs index ff55933938f54..7b0e467ba375e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -456,7 +456,7 @@ pub const DOMAINSET_POLICY_INTERLEAVE: c_int = 4; pub const MINCORE_SUPER: c_int = 0x20; safe_f! { - pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { let major = major as crate::dev_t; let minor = minor as crate::dev_t; let mut dev = 0; @@ -467,11 +467,11 @@ safe_f! { dev } - pub {const} fn major(dev: crate::dev_t) -> c_int { + pub const fn major(dev: crate::dev_t) -> c_int { (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as c_int } - pub {const} fn minor(dev: crate::dev_t) -> c_int { + pub const fn minor(dev: crate::dev_t) -> c_int { (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as c_int } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index 3f23f05f5907f..f20a46655665d 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -458,7 +458,7 @@ pub const DOMAINSET_POLICY_INTERLEAVE: c_int = 4; pub const MINCORE_SUPER: c_int = 0x60; safe_f! { - pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { let major = major as crate::dev_t; let minor = minor as crate::dev_t; let mut dev = 0; @@ -469,11 +469,11 @@ safe_f! { dev } - pub {const} fn major(dev: crate::dev_t) -> c_int { + pub const fn major(dev: crate::dev_t) -> c_int { (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as c_int } - pub {const} fn minor(dev: crate::dev_t) -> c_int { + pub const fn minor(dev: crate::dev_t) -> c_int { (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as c_int } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index cc8d895331f0c..c0d27ef370e6f 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -460,7 +460,7 @@ pub const DOMAINSET_POLICY_INTERLEAVE: c_int = 4; pub const MINCORE_SUPER: c_int = 0x60; safe_f! { - pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { let major = major as crate::dev_t; let minor = minor as crate::dev_t; let mut dev = 0; @@ -471,11 +471,11 @@ safe_f! { dev } - pub {const} fn major(dev: crate::dev_t) -> c_int { + pub const fn major(dev: crate::dev_t) -> c_int { (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as c_int } - pub {const} fn minor(dev: crate::dev_t) -> c_int { + pub const fn minor(dev: crate::dev_t) -> c_int { (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as c_int } } diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 6ae8896063332..0987617a0f3fc 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -4750,7 +4750,7 @@ pub const fn MAP_ALIGNED(a: c_int) -> c_int { } const_fn! { - {const} fn _ALIGN(p: usize) -> usize { + const fn _ALIGN(p: usize) -> usize { (p + _ALIGNBYTES) & !_ALIGNBYTES } } @@ -4760,7 +4760,7 @@ f! { (cmsg as *mut c_uchar).add(_ALIGN(size_of::())) } - pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + pub const fn CMSG_LEN(length: c_uint) -> c_uint { _ALIGN(size_of::()) as c_uint + length } @@ -4777,7 +4777,7 @@ f! { } } - pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + pub const fn CMSG_SPACE(length: c_uint) -> c_uint { (_ALIGN(size_of::()) + _ALIGN(length as usize)) as c_uint } @@ -4785,11 +4785,11 @@ f! { ffsl(lg as c_long - 1) } - pub {const} fn MALLOCX_TCACHE(tc: c_int) -> c_int { + pub const fn MALLOCX_TCACHE(tc: c_int) -> c_int { (tc + 2) << 8 as c_int } - pub {const} fn MALLOCX_ARENA(a: c_int) -> c_int { + pub const fn MALLOCX_ARENA(a: c_int) -> c_int { (a + 1) << 20 as c_int } @@ -4858,11 +4858,11 @@ f! { } safe_f! { - pub {const} fn WIFSIGNALED(status: c_int) -> bool { + pub const fn WIFSIGNALED(status: c_int) -> bool { (status & 0o177) != 0o177 && (status & 0o177) != 0 && status != 0x13 } - pub {const} fn INVALID_SINFO_FLAG(x: c_int) -> bool { + pub const fn INVALID_SINFO_FLAG(x: c_int) -> bool { (x) & 0xfffffff0 & !(SCTP_EOF | SCTP_ABORT @@ -4874,31 +4874,31 @@ safe_f! { != 0 } - pub {const} fn PR_SCTP_POLICY(x: c_int) -> c_int { + pub const fn PR_SCTP_POLICY(x: c_int) -> c_int { x & 0x0f } - pub {const} fn PR_SCTP_ENABLED(x: c_int) -> bool { + pub const fn PR_SCTP_ENABLED(x: c_int) -> bool { PR_SCTP_POLICY(x) != SCTP_PR_SCTP_NONE && PR_SCTP_POLICY(x) != SCTP_PR_SCTP_ALL } - pub {const} fn PR_SCTP_TTL_ENABLED(x: c_int) -> bool { + pub const fn PR_SCTP_TTL_ENABLED(x: c_int) -> bool { PR_SCTP_POLICY(x) == SCTP_PR_SCTP_TTL } - pub {const} fn PR_SCTP_BUF_ENABLED(x: c_int) -> bool { + pub const fn PR_SCTP_BUF_ENABLED(x: c_int) -> bool { PR_SCTP_POLICY(x) == SCTP_PR_SCTP_BUF } - pub {const} fn PR_SCTP_RTX_ENABLED(x: c_int) -> bool { + pub const fn PR_SCTP_RTX_ENABLED(x: c_int) -> bool { PR_SCTP_POLICY(x) == SCTP_PR_SCTP_RTX } - pub {const} fn PR_SCTP_INVALID_POLICY(x: c_int) -> bool { + pub const fn PR_SCTP_INVALID_POLICY(x: c_int) -> bool { PR_SCTP_POLICY(x) > SCTP_PR_SCTP_MAX } - pub {const} fn PR_SCTP_VALID_POLICY(x: c_int) -> bool { + pub const fn PR_SCTP_VALID_POLICY(x: c_int) -> bool { PR_SCTP_POLICY(x) <= SCTP_PR_SCTP_MAX } } diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index ee73397e985e0..71765b1f3bbf8 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1490,15 +1490,15 @@ pub const POSIX_SPAWN_SETSIGDEF: c_int = 0x10; pub const POSIX_SPAWN_SETSIGMASK: c_int = 0x20; safe_f! { - pub {const} fn WIFCONTINUED(status: c_int) -> bool { + pub const fn WIFCONTINUED(status: c_int) -> bool { status == 0x13 } - pub {const} fn WSTOPSIG(status: c_int) -> c_int { + pub const fn WSTOPSIG(status: c_int) -> c_int { status >> 8 } - pub {const} fn WIFSTOPPED(status: c_int) -> bool { + pub const fn WIFSTOPPED(status: c_int) -> bool { (status & 0o177) == 0o177 } } diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index cb83ccdc7efc0..24531db853145 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -608,23 +608,23 @@ f! { } safe_f! { - pub {const} fn WTERMSIG(status: c_int) -> c_int { + pub const fn WTERMSIG(status: c_int) -> c_int { status & 0o177 } - pub {const} fn WIFEXITED(status: c_int) -> bool { + pub const fn WIFEXITED(status: c_int) -> bool { (status & 0o177) == 0 } - pub {const} fn WEXITSTATUS(status: c_int) -> c_int { + pub const fn WEXITSTATUS(status: c_int) -> c_int { (status >> 8) & 0x00ff } - pub {const} fn WCOREDUMP(status: c_int) -> bool { + pub const fn WCOREDUMP(status: c_int) -> bool { (status & 0o200) != 0 } - pub {const} fn QCMD(cmd: c_int, type_: c_int) -> c_int { + pub const fn QCMD(cmd: c_int, type_: c_int) -> c_int { (cmd << 8) | (type_ & 0x00ff) } } diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 5975cbad4f0ed..bf241a981b8e4 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2302,7 +2302,7 @@ pub const TFD_TIMER_ABSTIME: i32 = crate::O_WRONLY; pub const TFD_TIMER_CANCEL_ON_SET: i32 = crate::O_RDWR; const_fn! { - {const} fn _ALIGN(p: usize) -> usize { + const fn _ALIGN(p: usize) -> usize { (p + _ALIGNBYTES) & !_ALIGNBYTES } } @@ -2312,7 +2312,7 @@ f! { (cmsg as *mut c_uchar).add(_ALIGN(size_of::())) } - pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + pub const fn CMSG_LEN(length: c_uint) -> c_uint { _ALIGN(size_of::()) as c_uint + length } @@ -2329,7 +2329,7 @@ f! { } } - pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + pub const fn CMSG_SPACE(length: c_uint) -> c_uint { (_ALIGN(size_of::()) + _ALIGN(length as usize)) as c_uint } @@ -2355,23 +2355,23 @@ f! { } safe_f! { - pub {const} fn WSTOPSIG(status: c_int) -> c_int { + pub const fn WSTOPSIG(status: c_int) -> c_int { status >> 8 } - pub {const} fn WIFSIGNALED(status: c_int) -> bool { + pub const fn WIFSIGNALED(status: c_int) -> bool { (status & 0o177) != 0o177 && (status & 0o177) != 0 } - pub {const} fn WIFSTOPPED(status: c_int) -> bool { + pub const fn WIFSTOPPED(status: c_int) -> bool { (status & 0o177) == 0o177 } - pub {const} fn WIFCONTINUED(status: c_int) -> bool { + pub const fn WIFCONTINUED(status: c_int) -> bool { status == 0xffff } - pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { let major = major as crate::dev_t; let minor = minor as crate::dev_t; let mut dev = 0; @@ -2381,11 +2381,11 @@ safe_f! { dev } - pub {const} fn major(dev: crate::dev_t) -> c_int { + pub const fn major(dev: crate::dev_t) -> c_int { (((dev as u32) & 0x000fff00) >> 8) as c_int } - pub {const} fn minor(dev: crate::dev_t) -> c_int { + pub const fn minor(dev: crate::dev_t) -> c_int { let mut res = 0; res |= ((dev as u32) & 0xfff00000) >> 12; res |= (dev as u32) & 0x000000ff; diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 74648feff585d..5a5307c499166 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1869,7 +1869,7 @@ pub const RTAX_SEARCH: c_int = 14; pub const RTAX_MAX: c_int = 15; const_fn! { - {const} fn _ALIGN(p: usize) -> usize { + const fn _ALIGN(p: usize) -> usize { (p + _ALIGNBYTES) & !_ALIGNBYTES } } @@ -1879,7 +1879,7 @@ f! { (cmsg as *mut c_uchar).offset(_ALIGN(size_of::()) as isize) } - pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + pub const fn CMSG_LEN(length: c_uint) -> c_uint { _ALIGN(size_of::()) as c_uint + length } @@ -1896,29 +1896,29 @@ f! { } } - pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + pub const fn CMSG_SPACE(length: c_uint) -> c_uint { (_ALIGN(size_of::()) + _ALIGN(length as usize)) as c_uint } } safe_f! { - pub {const} fn WSTOPSIG(status: c_int) -> c_int { + pub const fn WSTOPSIG(status: c_int) -> c_int { status >> 8 } - pub {const} fn WIFSIGNALED(status: c_int) -> bool { + pub const fn WIFSIGNALED(status: c_int) -> bool { (status & 0o177) != 0o177 && (status & 0o177) != 0 } - pub {const} fn WIFSTOPPED(status: c_int) -> bool { + pub const fn WIFSTOPPED(status: c_int) -> bool { (status & 0xff) == 0o177 } - pub {const} fn WIFCONTINUED(status: c_int) -> bool { + pub const fn WIFCONTINUED(status: c_int) -> bool { (status & 0o177777) == 0o177777 } - pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { let major = major as crate::dev_t; let minor = minor as crate::dev_t; let mut dev = 0; @@ -1928,11 +1928,11 @@ safe_f! { dev } - pub {const} fn major(dev: crate::dev_t) -> c_uint { + pub const fn major(dev: crate::dev_t) -> c_uint { ((dev as c_uint) >> 8) & 0xff } - pub {const} fn minor(dev: crate::dev_t) -> c_uint { + pub const fn minor(dev: crate::dev_t) -> c_uint { let dev = dev as c_uint; let mut res = 0; res |= (dev) & 0xff; diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index cadc2b062bf94..6d94a00ddb25a 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -1853,7 +1853,7 @@ f! { CMSG_ALIGN(size_of::()) as c_uint + length } - pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + pub const fn CMSG_SPACE(length: c_uint) -> c_uint { (CMSG_ALIGN(length as usize) + CMSG_ALIGN(size_of::())) as c_uint } @@ -1881,55 +1881,55 @@ f! { } safe_f! { - pub {const} fn makedev(ma: c_uint, mi: c_uint) -> dev_t { + pub const fn makedev(ma: c_uint, mi: c_uint) -> dev_t { let ma = ma as dev_t; let mi = mi as dev_t; (ma << 16) | (mi & 0xffff) } - pub {const} fn major(dev: dev_t) -> c_uint { + pub const fn major(dev: dev_t) -> c_uint { ((dev >> 16) & 0xffff) as c_uint } - pub {const} fn minor(dev: dev_t) -> c_uint { + pub const fn minor(dev: dev_t) -> c_uint { (dev & 0xffff) as c_uint } - pub {const} fn WIFEXITED(status: c_int) -> bool { + pub const fn WIFEXITED(status: c_int) -> bool { (status & 0xff) == 0 } - pub {const} fn WIFSIGNALED(status: c_int) -> bool { + pub const fn WIFSIGNALED(status: c_int) -> bool { (status & 0o177) != 0o177 && (status & 0o177) != 0 } - pub {const} fn WIFSTOPPED(status: c_int) -> bool { + pub const fn WIFSTOPPED(status: c_int) -> bool { (status & 0xff) == 0o177 } - pub {const} fn WIFCONTINUED(status: c_int) -> bool { + pub const fn WIFCONTINUED(status: c_int) -> bool { (status & 0o177777) == 0o177777 } - pub {const} fn WEXITSTATUS(status: c_int) -> c_int { + pub const fn WEXITSTATUS(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WTERMSIG(status: c_int) -> c_int { + pub const fn WTERMSIG(status: c_int) -> c_int { status & 0o177 } - pub {const} fn WSTOPSIG(status: c_int) -> c_int { + pub const fn WSTOPSIG(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WCOREDUMP(status: c_int) -> bool { + pub const fn WCOREDUMP(status: c_int) -> bool { WIFSIGNALED(status) && (status & 0x80) != 0 } } const_fn! { - {const} fn CMSG_ALIGN(len: usize) -> usize { + const fn CMSG_ALIGN(len: usize) -> usize { len + size_of::() - 1 & !(size_of::() - 1) } } diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 1ddbaed7e2186..e1b31b32338f7 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1515,7 +1515,7 @@ pub const POSIX_SPAWN_SETSIGMASK: c_int = 0x20; pub const POSIX_SPAWN_SETSID: c_int = 0x40; const_fn! { - {const} fn CMSG_ALIGN(len: usize) -> usize { + const fn CMSG_ALIGN(len: usize) -> usize { len + size_of::() - 1 & !(size_of::() - 1) } } @@ -1533,11 +1533,11 @@ f! { (cmsg as *mut c_uchar).offset(CMSG_ALIGN(size_of::()) as isize) } - pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + pub const fn CMSG_SPACE(length: c_uint) -> c_uint { (CMSG_ALIGN(length as usize) + CMSG_ALIGN(size_of::())) as c_uint } - pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + pub const fn CMSG_LEN(length: c_uint) -> c_uint { CMSG_ALIGN(size_of::()) as c_uint + length } @@ -1584,36 +1584,36 @@ f! { } safe_f! { - pub {const} fn WIFEXITED(status: c_int) -> bool { + pub const fn WIFEXITED(status: c_int) -> bool { (status & !0xff) == 0 } - pub {const} fn WEXITSTATUS(status: c_int) -> c_int { + pub const fn WEXITSTATUS(status: c_int) -> c_int { status & 0xff } - pub {const} fn WIFSIGNALED(status: c_int) -> bool { + pub const fn WIFSIGNALED(status: c_int) -> bool { ((status >> 8) & 0xff) != 0 } - pub {const} fn WTERMSIG(status: c_int) -> c_int { + pub const fn WTERMSIG(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WIFSTOPPED(status: c_int) -> bool { + pub const fn WIFSTOPPED(status: c_int) -> bool { ((status >> 16) & 0xff) != 0 } - pub {const} fn WSTOPSIG(status: c_int) -> c_int { + pub const fn WSTOPSIG(status: c_int) -> c_int { (status >> 16) & 0xff } // actually WIFCORED, but this is used everywhere else - pub {const} fn WCOREDUMP(status: c_int) -> bool { + pub const fn WCOREDUMP(status: c_int) -> bool { (status & 0x10000) != 0 } - pub {const} fn WIFCONTINUED(status: c_int) -> bool { + pub const fn WIFCONTINUED(status: c_int) -> bool { (status & 0x20000) != 0 } } diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 16d4c250cc478..5d63937a97fc7 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -3415,7 +3415,7 @@ pub const PTHREAD_STACK_MIN: size_t = 0; const _UTSNAME_LENGTH: usize = 1024; const_fn! { - {const} fn CMSG_ALIGN(len: usize) -> usize { + const fn CMSG_ALIGN(len: usize) -> usize { (len + size_of::() - 1) & !(size_of::() - 1) } } @@ -3434,11 +3434,11 @@ f! { (cmsg as *mut c_uchar).offset(CMSG_ALIGN(size_of::()) as isize) } - pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + pub const fn CMSG_SPACE(length: c_uint) -> c_uint { (CMSG_ALIGN(length as usize) + CMSG_ALIGN(size_of::())) as c_uint } - pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + pub const fn CMSG_LEN(length: c_uint) -> c_uint { CMSG_ALIGN(size_of::()) as c_uint + length } @@ -4528,7 +4528,7 @@ extern "C" { } safe_f! { - pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { let major = major as crate::dev_t; let minor = minor as crate::dev_t; let mut dev = 0; @@ -4537,11 +4537,11 @@ safe_f! { dev } - pub {const} fn major(dev: crate::dev_t) -> c_uint { + pub const fn major(dev: crate::dev_t) -> c_uint { ((dev >> 8) & 0xff) as c_uint } - pub {const} fn minor(dev: crate::dev_t) -> c_uint { + pub const fn minor(dev: crate::dev_t) -> c_uint { (dev & 0xffff00ff) as c_uint } @@ -4553,63 +4553,63 @@ safe_f! { unsafe { __libc_current_sigrtmin() } } - pub {const} fn WIFSTOPPED(status: c_int) -> bool { + pub const fn WIFSTOPPED(status: c_int) -> bool { (status & 0xff) == 0x7f } - pub {const} fn WSTOPSIG(status: c_int) -> c_int { + pub const fn WSTOPSIG(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WIFCONTINUED(status: c_int) -> bool { + pub const fn WIFCONTINUED(status: c_int) -> bool { status == 0xffff } - pub {const} fn WIFSIGNALED(status: c_int) -> bool { + pub const fn WIFSIGNALED(status: c_int) -> bool { ((status & 0x7f) + 1) as i8 >= 2 } - pub {const} fn WTERMSIG(status: c_int) -> c_int { + pub const fn WTERMSIG(status: c_int) -> c_int { status & 0x7f } - pub {const} fn WIFEXITED(status: c_int) -> bool { + pub const fn WIFEXITED(status: c_int) -> bool { (status & 0x7f) == 0 } - pub {const} fn WEXITSTATUS(status: c_int) -> c_int { + pub const fn WEXITSTATUS(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WCOREDUMP(status: c_int) -> bool { + pub const fn WCOREDUMP(status: c_int) -> bool { (status & 0x80) != 0 } - pub {const} fn W_EXITCODE(ret: c_int, sig: c_int) -> c_int { + pub const fn W_EXITCODE(ret: c_int, sig: c_int) -> c_int { (ret << 8) | sig } - pub {const} fn W_STOPCODE(sig: c_int) -> c_int { + pub const fn W_STOPCODE(sig: c_int) -> c_int { (sig << 8) | 0x7f } - pub {const} fn QCMD(cmd: c_int, type_: c_int) -> c_int { + pub const fn QCMD(cmd: c_int, type_: c_int) -> c_int { (cmd << 8) | (type_ & 0x00ff) } - pub {const} fn IPOPT_COPIED(o: u8) -> u8 { + pub const fn IPOPT_COPIED(o: u8) -> u8 { o & IPOPT_COPY } - pub {const} fn IPOPT_CLASS(o: u8) -> u8 { + pub const fn IPOPT_CLASS(o: u8) -> u8 { o & IPOPT_CLASS_MASK } - pub {const} fn IPOPT_NUMBER(o: u8) -> u8 { + pub const fn IPOPT_NUMBER(o: u8) -> u8 { o & IPOPT_NUMBER_MASK } - pub {const} fn IPTOS_ECN(x: u8) -> u8 { + pub const fn IPTOS_ECN(x: u8) -> u8 { x & crate::IPTOS_ECN_MASK } } diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index bb08e9ab5f420..fbd8ac2f87cfc 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3596,17 +3596,17 @@ f! { } safe_f! { - pub {const} fn makedev(ma: c_uint, mi: c_uint) -> crate::dev_t { + pub const fn makedev(ma: c_uint, mi: c_uint) -> crate::dev_t { let ma = ma as crate::dev_t; let mi = mi as crate::dev_t; ((ma & 0xfff) << 8) | (mi & 0xff) | ((mi & 0xfff00) << 12) } - pub {const} fn major(dev: crate::dev_t) -> c_int { + pub const fn major(dev: crate::dev_t) -> c_int { ((dev >> 8) & 0xfff) as c_int } - pub {const} fn minor(dev: crate::dev_t) -> c_int { + pub const fn minor(dev: crate::dev_t) -> c_int { ((dev & 0xff) | ((dev >> 12) & 0xfff00)) as c_int } } diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 811d6aad8519d..417e3e593bc5e 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -1407,7 +1407,7 @@ f! { } safe_f! { - pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { let major = major as crate::dev_t; let minor = minor as crate::dev_t; let mut dev = 0; @@ -1418,7 +1418,7 @@ safe_f! { dev } - pub {const} fn major(dev: crate::dev_t) -> c_uint { + pub const fn major(dev: crate::dev_t) -> c_uint { // see // https://github.com/emscripten-core/emscripten/blob/ // main/system/lib/libc/musl/include/sys/sysmacros.h @@ -1428,7 +1428,7 @@ safe_f! { major as c_uint } - pub {const} fn minor(dev: crate::dev_t) -> c_uint { + pub const fn minor(dev: crate::dev_t) -> c_uint { // see // https://github.com/emscripten-core/emscripten/blob/ // main/system/lib/libc/musl/include/sys/sysmacros.h diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 1df6248e12eb2..14401077479ed 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -5945,7 +5945,7 @@ f! { } safe_f! { - pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { let major = major as crate::dev_t; let minor = minor as crate::dev_t; let mut dev = 0; @@ -5956,29 +5956,29 @@ safe_f! { dev } - pub {const} fn major(dev: crate::dev_t) -> c_uint { + pub const fn major(dev: crate::dev_t) -> c_uint { let mut major = 0; major |= (dev & 0x00000000000fff00) >> 8; major |= (dev & 0xfffff00000000000) >> 32; major as c_uint } - pub {const} fn minor(dev: crate::dev_t) -> c_uint { + pub const fn minor(dev: crate::dev_t) -> c_uint { let mut minor = 0; minor |= (dev & 0x00000000000000ff) >> 0; minor |= (dev & 0x00000ffffff00000) >> 12; minor as c_uint } - pub {const} fn SCTP_PR_TTL_ENABLED(policy: c_int) -> bool { + pub const fn SCTP_PR_TTL_ENABLED(policy: c_int) -> bool { policy == SCTP_PR_SCTP_TTL } - pub {const} fn SCTP_PR_RTX_ENABLED(policy: c_int) -> bool { + pub const fn SCTP_PR_RTX_ENABLED(policy: c_int) -> bool { policy == SCTP_PR_SCTP_RTX } - pub {const} fn SCTP_PR_PRIO_ENABLED(policy: c_int) -> bool { + pub const fn SCTP_PR_PRIO_ENABLED(policy: c_int) -> bool { policy == SCTP_PR_SCTP_PRIO } } diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index b0eb9ed85cd13..2f7661d25105d 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1785,7 +1785,7 @@ cfg_if! { } const_fn! { - {const} fn CMSG_ALIGN(len: usize) -> usize { + const fn CMSG_ALIGN(len: usize) -> usize { (len + size_of::() - 1) & !(size_of::() - 1) } } @@ -1803,11 +1803,11 @@ f! { cmsg.offset(1) as *mut c_uchar } - pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + pub const fn CMSG_SPACE(length: c_uint) -> c_uint { (CMSG_ALIGN(length as usize) + CMSG_ALIGN(size_of::())) as c_uint } - pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + pub const fn CMSG_LEN(length: c_uint) -> c_uint { CMSG_ALIGN(size_of::()) as c_uint + length } @@ -1847,68 +1847,68 @@ safe_f! { unsafe { __libc_current_sigrtmin() } } - pub {const} fn WIFSTOPPED(status: c_int) -> bool { + pub const fn WIFSTOPPED(status: c_int) -> bool { (status & 0xff) == 0x7f } - pub {const} fn WSTOPSIG(status: c_int) -> c_int { + pub const fn WSTOPSIG(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WIFCONTINUED(status: c_int) -> bool { + pub const fn WIFCONTINUED(status: c_int) -> bool { status == 0xffff } - pub {const} fn WIFSIGNALED(status: c_int) -> bool { + pub const fn WIFSIGNALED(status: c_int) -> bool { ((status & 0x7f) + 1) as i8 >= 2 } - pub {const} fn WTERMSIG(status: c_int) -> c_int { + pub const fn WTERMSIG(status: c_int) -> c_int { status & 0x7f } - pub {const} fn WIFEXITED(status: c_int) -> bool { + pub const fn WIFEXITED(status: c_int) -> bool { (status & 0x7f) == 0 } - pub {const} fn WEXITSTATUS(status: c_int) -> c_int { + pub const fn WEXITSTATUS(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WCOREDUMP(status: c_int) -> bool { + pub const fn WCOREDUMP(status: c_int) -> bool { (status & 0x80) != 0 } - pub {const} fn W_EXITCODE(ret: c_int, sig: c_int) -> c_int { + pub const fn W_EXITCODE(ret: c_int, sig: c_int) -> c_int { (ret << 8) | sig } - pub {const} fn W_STOPCODE(sig: c_int) -> c_int { + pub const fn W_STOPCODE(sig: c_int) -> c_int { (sig << 8) | 0x7f } - pub {const} fn QCMD(cmd: c_int, type_: c_int) -> c_int { + pub const fn QCMD(cmd: c_int, type_: c_int) -> c_int { (cmd << 8) | (type_ & 0x00ff) } - pub {const} fn IPOPT_COPIED(o: u8) -> u8 { + pub const fn IPOPT_COPIED(o: u8) -> u8 { o & IPOPT_COPY } - pub {const} fn IPOPT_CLASS(o: u8) -> u8 { + pub const fn IPOPT_CLASS(o: u8) -> u8 { o & IPOPT_CLASS_MASK } - pub {const} fn IPOPT_NUMBER(o: u8) -> u8 { + pub const fn IPOPT_NUMBER(o: u8) -> u8 { o & IPOPT_NUMBER_MASK } - pub {const} fn IPTOS_ECN(x: u8) -> u8 { + pub const fn IPTOS_ECN(x: u8) -> u8 { x & crate::IPTOS_ECN_MASK } #[allow(ellipsis_inclusive_range_patterns)] - pub {const} fn KERNEL_VERSION(a: u32, b: u32, c: u32) -> u32 { + pub const fn KERNEL_VERSION(a: u32, b: u32, c: u32) -> u32 { ((a << 16) + (b << 8)) + if c > 255 { 255 } else { c } } } diff --git a/src/unix/mod.rs b/src/unix/mod.rs index b59b5bc5ce55f..6ba5d87de7ca0 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1614,16 +1614,16 @@ extern "C" { safe_f! { // It seems htonl, etc are macros on macOS. So we have to reimplement them. So let's // reimplement them for all UNIX platforms - pub {const} fn htonl(hostlong: u32) -> u32 { + pub const fn htonl(hostlong: u32) -> u32 { u32::to_be(hostlong) } - pub {const} fn htons(hostshort: u16) -> u16 { + pub const fn htons(hostshort: u16) -> u16 { u16::to_be(hostshort) } - pub {const} fn ntohl(netlong: u32) -> u32 { + pub const fn ntohl(netlong: u32) -> u32 { u32::from_be(netlong) } - pub {const} fn ntohs(netshort: u16) -> u16 { + pub const fn ntohs(netshort: u16) -> u16 { u16::from_be(netshort) } } diff --git a/src/unix/newlib/horizon/mod.rs b/src/unix/newlib/horizon/mod.rs index ee325a0247241..3958e02734ada 100644 --- a/src/unix/newlib/horizon/mod.rs +++ b/src/unix/newlib/horizon/mod.rs @@ -185,35 +185,35 @@ pub const GRND_RANDOM: c_uint = 0x2; // Horizon OS works doesn't or can't hold any of this information safe_f! { - pub {const} fn WIFSTOPPED(_status: c_int) -> bool { + pub const fn WIFSTOPPED(_status: c_int) -> bool { false } - pub {const} fn WSTOPSIG(_status: c_int) -> c_int { + pub const fn WSTOPSIG(_status: c_int) -> c_int { 0 } - pub {const} fn WIFCONTINUED(_status: c_int) -> bool { + pub const fn WIFCONTINUED(_status: c_int) -> bool { true } - pub {const} fn WIFSIGNALED(_status: c_int) -> bool { + pub const fn WIFSIGNALED(_status: c_int) -> bool { false } - pub {const} fn WTERMSIG(_status: c_int) -> c_int { + pub const fn WTERMSIG(_status: c_int) -> c_int { 0 } - pub {const} fn WIFEXITED(_status: c_int) -> bool { + pub const fn WIFEXITED(_status: c_int) -> bool { true } - pub {const} fn WEXITSTATUS(_status: c_int) -> c_int { + pub const fn WEXITSTATUS(_status: c_int) -> c_int { 0 } - pub {const} fn WCOREDUMP(_status: c_int) -> bool { + pub const fn WCOREDUMP(_status: c_int) -> bool { false } } diff --git a/src/unix/newlib/rtems/mod.rs b/src/unix/newlib/rtems/mod.rs index f14967da0aad1..0e23352744149 100644 --- a/src/unix/newlib/rtems/mod.rs +++ b/src/unix/newlib/rtems/mod.rs @@ -85,38 +85,38 @@ pub const WUNTRACED: c_int = 2; pub const SOMAXCONN: c_int = 128; safe_f! { - pub {const} fn WIFSTOPPED(status: c_int) -> bool { + pub const fn WIFSTOPPED(status: c_int) -> bool { (status & 0xff) == 0x7f } - pub {const} fn WSTOPSIG(status: c_int) -> c_int { + pub const fn WSTOPSIG(status: c_int) -> c_int { // (status >> 8) & 0xff WEXITSTATUS(status) } - pub {const} fn WIFSIGNALED(status: c_int) -> bool { + pub const fn WIFSIGNALED(status: c_int) -> bool { ((status & 0x7f) > 0) && ((status & 0x7f) < 0x7f) } - pub {const} fn WTERMSIG(status: c_int) -> c_int { + pub const fn WTERMSIG(status: c_int) -> c_int { status & 0x7f } - pub {const} fn WIFEXITED(status: c_int) -> bool { + pub const fn WIFEXITED(status: c_int) -> bool { (status & 0xff) == 0 } - pub {const} fn WEXITSTATUS(status: c_int) -> c_int { + pub const fn WEXITSTATUS(status: c_int) -> c_int { (status >> 8) & 0xff } // RTEMS doesn't have native WIFCONTINUED. - pub {const} fn WIFCONTINUED(_status: c_int) -> bool { + pub const fn WIFCONTINUED(_status: c_int) -> bool { true } // RTEMS doesn't have native WCOREDUMP. - pub {const} fn WCOREDUMP(_status: c_int) -> bool { + pub const fn WCOREDUMP(_status: c_int) -> bool { false } } diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 7baf673394b34..2dd3375c3a86d 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -2608,11 +2608,11 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { }; const_fn! { - {const} fn _CMSG_ALIGN(len: usize) -> usize { + const fn _CMSG_ALIGN(len: usize) -> usize { len + size_of::() - 1 & !(size_of::() - 1) } - {const} fn _ALIGN(p: usize, b: usize) -> usize { + const fn _ALIGN(p: usize, b: usize) -> usize { (p + b - 1) & !(b - 1) } } @@ -2640,11 +2640,11 @@ f! { (cmsg as *mut c_uchar).offset(_CMSG_ALIGN(size_of::()) as isize) } - pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + pub const fn CMSG_LEN(length: c_uint) -> c_uint { _CMSG_ALIGN(size_of::()) as c_uint + length } - pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + pub const fn CMSG_SPACE(length: c_uint) -> c_uint { (_CMSG_ALIGN(size_of::()) + _CMSG_ALIGN(length as usize)) as c_uint } @@ -2706,51 +2706,51 @@ f! { } safe_f! { - pub {const} fn WIFSTOPPED(status: c_int) -> bool { + pub const fn WIFSTOPPED(status: c_int) -> bool { (status & 0xff) == 0x7f } - pub {const} fn WSTOPSIG(status: c_int) -> c_int { + pub const fn WSTOPSIG(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WIFCONTINUED(status: c_int) -> bool { + pub const fn WIFCONTINUED(status: c_int) -> bool { status == 0xffff } - pub {const} fn WIFSIGNALED(status: c_int) -> bool { + pub const fn WIFSIGNALED(status: c_int) -> bool { ((status & 0x7f) + 1) as i8 >= 2 } - pub {const} fn WTERMSIG(status: c_int) -> c_int { + pub const fn WTERMSIG(status: c_int) -> c_int { status & 0x7f } - pub {const} fn WIFEXITED(status: c_int) -> bool { + pub const fn WIFEXITED(status: c_int) -> bool { (status & 0x7f) == 0 } - pub {const} fn WEXITSTATUS(status: c_int) -> c_int { + pub const fn WEXITSTATUS(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WCOREDUMP(status: c_int) -> bool { + pub const fn WCOREDUMP(status: c_int) -> bool { (status & 0x80) != 0 } - pub {const} fn IPTOS_ECN(x: u8) -> u8 { + pub const fn IPTOS_ECN(x: u8) -> u8 { x & crate::IPTOS_ECN_MASK } - pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { ((major << 10) | (minor)) as crate::dev_t } - pub {const} fn major(dev: crate::dev_t) -> c_uint { + pub const fn major(dev: crate::dev_t) -> c_uint { ((dev as c_uint) >> 10) & 0x3f } - pub {const} fn minor(dev: crate::dev_t) -> c_uint { + pub const fn minor(dev: crate::dev_t) -> c_uint { (dev as c_uint) & 0x3ff } } diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index d9ecf1a45a18f..4a8b2ae3c435d 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1094,13 +1094,13 @@ pub const PRIO_USER: c_int = 2; f! { //sys/socket.h - pub {const} fn CMSG_ALIGN(len: size_t) -> size_t { + pub const fn CMSG_ALIGN(len: size_t) -> size_t { (len + size_of::() - 1) & !(size_of::() - 1) } - pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + pub const fn CMSG_LEN(length: c_uint) -> c_uint { (CMSG_ALIGN(size_of::()) + length as usize) as c_uint } - pub {const} fn CMSG_SPACE(len: c_uint) -> c_uint { + pub const fn CMSG_SPACE(len: c_uint) -> c_uint { (CMSG_ALIGN(len as size_t) + CMSG_ALIGN(size_of::())) as c_uint } @@ -1133,35 +1133,35 @@ f! { } safe_f! { - pub {const} fn WIFSTOPPED(status: c_int) -> bool { + pub const fn WIFSTOPPED(status: c_int) -> bool { (status & 0xff) == 0x7f } - pub {const} fn WSTOPSIG(status: c_int) -> c_int { + pub const fn WSTOPSIG(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WIFCONTINUED(status: c_int) -> bool { + pub const fn WIFCONTINUED(status: c_int) -> bool { status == 0xffff } - pub {const} fn WIFSIGNALED(status: c_int) -> bool { + pub const fn WIFSIGNALED(status: c_int) -> bool { ((status & 0x7f) + 1) as i8 >= 2 } - pub {const} fn WTERMSIG(status: c_int) -> c_int { + pub const fn WTERMSIG(status: c_int) -> c_int { status & 0x7f } - pub {const} fn WIFEXITED(status: c_int) -> bool { + pub const fn WIFEXITED(status: c_int) -> bool { (status & 0x7f) == 0 } - pub {const} fn WEXITSTATUS(status: c_int) -> c_int { + pub const fn WEXITSTATUS(status: c_int) -> c_int { (status >> 8) & 0xff } - pub {const} fn WCOREDUMP(status: c_int) -> bool { + pub const fn WCOREDUMP(status: c_int) -> bool { (status & 0x80) != 0 } } diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index a6219a64437f2..2ebedcbf4653e 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -2391,11 +2391,11 @@ const NEWDEV: c_int = 1; pub const SFV_FD_SELF: c_int = -2; const_fn! { - {const} fn _CMSG_HDR_ALIGN(p: usize) -> usize { + const fn _CMSG_HDR_ALIGN(p: usize) -> usize { (p + _CMSG_HDR_ALIGNMENT - 1) & !(_CMSG_HDR_ALIGNMENT - 1) } - {const} fn _CMSG_DATA_ALIGN(p: usize) -> usize { + const fn _CMSG_DATA_ALIGN(p: usize) -> usize { (p + _CMSG_DATA_ALIGNMENT - 1) & !(_CMSG_DATA_ALIGNMENT - 1) } } @@ -2405,7 +2405,7 @@ f! { _CMSG_DATA_ALIGN(cmsg.offset(1) as usize) as *mut c_uchar } - pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + pub const fn CMSG_LEN(length: c_uint) -> c_uint { _CMSG_DATA_ALIGN(size_of::()) as c_uint + length } @@ -2431,7 +2431,7 @@ f! { } } - pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + pub const fn CMSG_SPACE(length: c_uint) -> c_uint { _CMSG_HDR_ALIGN(size_of::() as usize + length as usize) as c_uint } @@ -2471,39 +2471,39 @@ safe_f! { unsafe { crate::sysconf(_SC_SIGRT_MIN) as c_int } } - pub {const} fn WIFEXITED(status: c_int) -> bool { + pub const fn WIFEXITED(status: c_int) -> bool { (status & 0xFF) == 0 } - pub {const} fn WEXITSTATUS(status: c_int) -> c_int { + pub const fn WEXITSTATUS(status: c_int) -> c_int { (status >> 8) & 0xFF } - pub {const} fn WTERMSIG(status: c_int) -> c_int { + pub const fn WTERMSIG(status: c_int) -> c_int { status & 0x7F } - pub {const} fn WIFCONTINUED(status: c_int) -> bool { + pub const fn WIFCONTINUED(status: c_int) -> bool { (status & 0xffff) == 0xffff } - pub {const} fn WSTOPSIG(status: c_int) -> c_int { + pub const fn WSTOPSIG(status: c_int) -> c_int { (status & 0xff00) >> 8 } - pub {const} fn WIFSIGNALED(status: c_int) -> bool { + pub const fn WIFSIGNALED(status: c_int) -> bool { ((status & 0xff) > 0) && (status & 0xff00 == 0) } - pub {const} fn WIFSTOPPED(status: c_int) -> bool { + pub const fn WIFSTOPPED(status: c_int) -> bool { ((status & 0xff) == 0x7f) && ((status & 0xff00) != 0) } - pub {const} fn WCOREDUMP(status: c_int) -> bool { + pub const fn WCOREDUMP(status: c_int) -> bool { (status & 0x80) != 0 } - pub {const} fn MR_GET_TYPE(flags: c_uint) -> c_uint { + pub const fn MR_GET_TYPE(flags: c_uint) -> c_uint { flags & 0x0000ffff } } diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 657f85851c8f1..809640d112221 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -1072,7 +1072,7 @@ impl Clone for fpos_t { } f! { - pub {const} fn CMSG_ALIGN(len: usize) -> usize { + pub const fn CMSG_ALIGN(len: usize) -> usize { len + size_of::() - 1 & !(size_of::() - 1) } @@ -1100,11 +1100,11 @@ f! { (cmsg as *mut c_uchar).offset(CMSG_ALIGN(size_of::()) as isize) } - pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint { + pub const fn CMSG_SPACE(length: c_uint) -> c_uint { (CMSG_ALIGN(length as usize) + CMSG_ALIGN(size_of::())) as c_uint } - pub {const} fn CMSG_LEN(length: c_uint) -> c_uint { + pub const fn CMSG_LEN(length: c_uint) -> c_uint { CMSG_ALIGN(size_of::()) as c_uint + length } } @@ -1937,22 +1937,22 @@ extern "C" { // wait.h macros safe_f! { - pub {const} fn WIFEXITED(status: c_int) -> bool { + pub const fn WIFEXITED(status: c_int) -> bool { (status & 0xFF00) == 0 } - pub {const} fn WIFSIGNALED(status: c_int) -> bool { + pub const fn WIFSIGNALED(status: c_int) -> bool { (status & 0xFF00) != 0 } - pub {const} fn WIFSTOPPED(status: c_int) -> bool { + pub const fn WIFSTOPPED(status: c_int) -> bool { (status & 0xFF0000) != 0 } - pub {const} fn WEXITSTATUS(status: c_int) -> c_int { + pub const fn WEXITSTATUS(status: c_int) -> c_int { status & 0xFF } - pub {const} fn WTERMSIG(status: c_int) -> c_int { + pub const fn WTERMSIG(status: c_int) -> c_int { (status >> 8) & 0xFF } - pub {const} fn WSTOPSIG(status: c_int) -> c_int { + pub const fn WSTOPSIG(status: c_int) -> c_int { (status >> 16) & 0xFF } } From e653c54b2dce07ac385d893c535ebede9eac1472 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 23 Sep 2025 01:30:01 -0500 Subject: [PATCH 0852/1228] cleanup: Remove the `const_fn!` macro Now that is okay for functions to be always `const`, this macro doesn't add anything other than the `#[inline]` attribute, which isn't useful for private functions anyway. Thus, remove the macro and leave its contents wherever it is used. (backport ) (cherry picked from commit dcde5cd6b952cccc104308efd169d6bb229453cd) --- src/macros.rs | 14 -------------- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 6 ++---- src/unix/bsd/freebsdlike/freebsd/mod.rs | 6 ++---- src/unix/bsd/netbsdlike/netbsd/mod.rs | 6 ++---- src/unix/bsd/netbsdlike/openbsd/mod.rs | 6 ++---- src/unix/cygwin/mod.rs | 6 ++---- src/unix/haiku/mod.rs | 6 ++---- src/unix/hurd/mod.rs | 6 ++---- src/unix/linux_like/mod.rs | 6 ++---- src/unix/nto/mod.rs | 12 +++++------- src/unix/solarish/mod.rs | 12 +++++------- 11 files changed, 26 insertions(+), 60 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index 1ffa71e02df37..6906da6bd70da 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -330,20 +330,6 @@ macro_rules! safe_f { )+}; } -/// Define a nonpublic function. -macro_rules! const_fn { - ($( - $(#[$attr:meta])* - const fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty - $body:block - )*) => ($( - #[inline] - $(#[$attr])* - const fn $i($($arg: $argty),*) -> $ret - $body - )*) -} - macro_rules! __item { ($i:item) => { $i diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 930c7089131f1..dbf18ebb64dc6 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -1419,10 +1419,8 @@ pub const RTAX_MPLS2: c_int = 9; pub const RTAX_MPLS3: c_int = 10; pub const RTAX_MAX: c_int = 11; -const_fn! { - const fn _CMSG_ALIGN(n: usize) -> usize { - (n + (size_of::() - 1)) & !(size_of::() - 1) - } +const fn _CMSG_ALIGN(n: usize) -> usize { + (n + (size_of::() - 1)) & !(size_of::() - 1) } f! { diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 0987617a0f3fc..a5166d4e15c75 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -4749,10 +4749,8 @@ pub const fn MAP_ALIGNED(a: c_int) -> c_int { a << 24 } -const_fn! { - const fn _ALIGN(p: usize) -> usize { - (p + _ALIGNBYTES) & !_ALIGNBYTES - } +const fn _ALIGN(p: usize) -> usize { + (p + _ALIGNBYTES) & !_ALIGNBYTES } f! { diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index bf241a981b8e4..fba5391e14c44 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2301,10 +2301,8 @@ pub const TFD_NONBLOCK: i32 = crate::O_NONBLOCK; pub const TFD_TIMER_ABSTIME: i32 = crate::O_WRONLY; pub const TFD_TIMER_CANCEL_ON_SET: i32 = crate::O_RDWR; -const_fn! { - const fn _ALIGN(p: usize) -> usize { - (p + _ALIGNBYTES) & !_ALIGNBYTES - } +const fn _ALIGN(p: usize) -> usize { + (p + _ALIGNBYTES) & !_ALIGNBYTES } f! { diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 5a5307c499166..d2937bc16911b 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1868,10 +1868,8 @@ pub const RTAX_STATIC: c_int = 13; pub const RTAX_SEARCH: c_int = 14; pub const RTAX_MAX: c_int = 15; -const_fn! { - const fn _ALIGN(p: usize) -> usize { - (p + _ALIGNBYTES) & !_ALIGNBYTES - } +const fn _ALIGN(p: usize) -> usize { + (p + _ALIGNBYTES) & !_ALIGNBYTES } f! { diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 6d94a00ddb25a..12e30f3f9016c 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -1928,10 +1928,8 @@ safe_f! { } } -const_fn! { - const fn CMSG_ALIGN(len: usize) -> usize { - len + size_of::() - 1 & !(size_of::() - 1) - } +const fn CMSG_ALIGN(len: usize) -> usize { + len + size_of::() - 1 & !(size_of::() - 1) } extern "C" { diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index e1b31b32338f7..964598e97ca35 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1514,10 +1514,8 @@ pub const POSIX_SPAWN_SETSIGDEF: c_int = 0x10; pub const POSIX_SPAWN_SETSIGMASK: c_int = 0x20; pub const POSIX_SPAWN_SETSID: c_int = 0x40; -const_fn! { - const fn CMSG_ALIGN(len: usize) -> usize { - len + size_of::() - 1 & !(size_of::() - 1) - } +const fn CMSG_ALIGN(len: usize) -> usize { + len + size_of::() - 1 & !(size_of::() - 1) } f! { diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 5d63937a97fc7..24e9fe56f392d 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -3414,10 +3414,8 @@ pub const PTHREAD_STACK_MIN: size_t = 0; // Non-public helper constants const _UTSNAME_LENGTH: usize = 1024; -const_fn! { - const fn CMSG_ALIGN(len: usize) -> usize { - (len + size_of::() - 1) & !(size_of::() - 1) - } +const fn CMSG_ALIGN(len: usize) -> usize { + (len + size_of::() - 1) & !(size_of::() - 1) } // functions diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 2f7661d25105d..fd3fa996caad4 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1784,10 +1784,8 @@ cfg_if! { } } -const_fn! { - const fn CMSG_ALIGN(len: usize) -> usize { - (len + size_of::() - 1) & !(size_of::() - 1) - } +const fn CMSG_ALIGN(len: usize) -> usize { + (len + size_of::() - 1) & !(size_of::() - 1) } f! { diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 2dd3375c3a86d..75f5b56902f7f 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -2607,14 +2607,12 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { __spare: 0, }; -const_fn! { - const fn _CMSG_ALIGN(len: usize) -> usize { - len + size_of::() - 1 & !(size_of::() - 1) - } +const fn _CMSG_ALIGN(len: usize) -> usize { + len + size_of::() - 1 & !(size_of::() - 1) +} - const fn _ALIGN(p: usize, b: usize) -> usize { - (p + b - 1) & !(b - 1) - } +const fn _ALIGN(p: usize, b: usize) -> usize { + (p + b - 1) & !(b - 1) } f! { diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 2ebedcbf4653e..d8b32dfc0aae9 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -2390,14 +2390,12 @@ const NEWDEV: c_int = 1; // sys/sendfile.h pub const SFV_FD_SELF: c_int = -2; -const_fn! { - const fn _CMSG_HDR_ALIGN(p: usize) -> usize { - (p + _CMSG_HDR_ALIGNMENT - 1) & !(_CMSG_HDR_ALIGNMENT - 1) - } +const fn _CMSG_HDR_ALIGN(p: usize) -> usize { + (p + _CMSG_HDR_ALIGNMENT - 1) & !(_CMSG_HDR_ALIGNMENT - 1) +} - const fn _CMSG_DATA_ALIGN(p: usize) -> usize { - (p + _CMSG_DATA_ALIGNMENT - 1) & !(_CMSG_DATA_ALIGNMENT - 1) - } +const fn _CMSG_DATA_ALIGN(p: usize) -> usize { + (p + _CMSG_DATA_ALIGNMENT - 1) & !(_CMSG_DATA_ALIGNMENT - 1) } f! { From 6ca5571adf03942f4b2c270255f7b8821b9189fc Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 23 Sep 2025 03:33:43 -0500 Subject: [PATCH 0853/1228] Warn on missing debug implementations This was removed by accident; only the `feature = "rustc-dep-of-std"` gate should have been removed. Fixes: a6e75638ce4e ("Always implement `Debug`") (backport ) (cherry picked from commit 833eb194331a3a0bfb9a720b47606c0ebc145a64) --- src/lib.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 39cbbf809f0ce..aa919b5ca038e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -9,6 +9,11 @@ unused_macros, unused_macro_rules, )] +#![warn( + missing_copy_implementations, + missing_debug_implementations, + safe_packed_borrows +)] // Prepare for a future upgrade #![warn(rust_2024_compatibility)] // Things missing for 2024 that are blocked on MSRV or breakage @@ -25,7 +30,6 @@ #![cfg_attr(feature = "rustc-dep-of-std", allow(internal_features))] // DIFF(1.0): The thread local references that raise this lint were removed in 1.0 #![cfg_attr(feature = "rustc-dep-of-std", allow(static_mut_refs))] -#![warn(missing_copy_implementations, safe_packed_borrows)] #![cfg_attr(not(feature = "rustc-dep-of-std"), no_std)] #![cfg_attr(feature = "rustc-dep-of-std", no_core)] From 15e1389ae87935c9c08f4449a73c7b979cded21a Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 23 Sep 2025 05:05:25 -0500 Subject: [PATCH 0854/1228] chore: Release libc 0.2.176 --- CHANGELOG.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 55 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c57f86a2d6ee..eec2bfe4efe18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,58 @@ # Changelog +## [0.2.176](https://github.com/rust-lang/libc/compare/0.2.175...0.2.176) - 2025-09-23 + +### Support + +- The default FreeBSD version has been raised from 11 to 12. This matches `rustc` since 1.78. ([#2406](https://github.com/rust-lang/libc/pull/2406)) +- `Debug` is now always implemented, rather than being gated behind the `extra_traits` feature. ([#4624](https://github.com/rust-lang/libc/pull/4624)) + +### Added + +- AIX: Restore some non-POSIX functions guarded by the `_KERNEL` macro. ([#4607](https://github.com/rust-lang/libc/pull/4607)) +- FreeBSD 14: Add `st_fileref` to `struct stat` ([#4642](https://github.com/rust-lang/libc/pull/4642)) +- Haiku: Add the `accept4` POSIX call ([#4586](https://github.com/rust-lang/libc/pull/4586)) +- Introduce a wrapper for representing padding ([#4632](https://github.com/rust-lang/libc/pull/4632)) +- Linux: Add `EM_RISCV` ([#4659](https://github.com/rust-lang/libc/pull/4659)) +- Linux: Add `MS_NOSYMFOLLOW` ([#4389](https://github.com/rust-lang/libc/pull/4389)) +- Linux: Add `backtrace_symbols(_fd)` ([#4668](https://github.com/rust-lang/libc/pull/4668)) +- Linux: Add missing `SOL_PACKET` optnames ([#4669](https://github.com/rust-lang/libc/pull/4669)) +- Musl s390x: Add `SYS_mseal` ([#4549](https://github.com/rust-lang/libc/pull/4549)) +- NuttX: Add `__errno` ([#4687](https://github.com/rust-lang/libc/pull/4687)) +- Redox: Add `dirfd`, `VDISABLE`, and resource consts ([#4660](https://github.com/rust-lang/libc/pull/4660)) +- Redox: Add more `resource.h`, `fcntl.h` constants ([#4666](https://github.com/rust-lang/libc/pull/4666)) +- Redox: Enable `strftime` and `mkostemp[s]` ([#4629](https://github.com/rust-lang/libc/pull/4629)) +- Unix, Windows: Add `qsort_r` (Unix), and `qsort(_s)` (Windows) ([#4677](https://github.com/rust-lang/libc/pull/4677)) +- Unix: Add `dlvsym` for Linux-gnu, FreeBSD, and NetBSD ([#4671](https://github.com/rust-lang/libc/pull/4671)) +- Unix: Add `sigqueue` ([#4620](https://github.com/rust-lang/libc/pull/4620)) + +### Changed + +- FreeBSD 15: Mark `kinfo_proc` as non-exhaustive ([#4553](https://github.com/rust-lang/libc/pull/4553)) +- FreeBSD: Set the ELF symbol version for `readdir_r` ([#4694](https://github.com/rust-lang/libc/pull/4694)) +- Linux: Correct the config for whether or not `epoll_event` is packed ([#4639](https://github.com/rust-lang/libc/pull/4639)) +- Tests: Replace the old `ctest` with the much more reliable new implementation ([#4655](https://github.com/rust-lang/libc/pull/4655) and many related PRs) + +### Fixed + +- AIX: Fix the type of the 4th arguement of `getgrnam_r` ([#4656](https://github.com/rust-lang/libc/pull/4656 +- FreeBSD: Limit `P_IDLEPROC` to FreeBSD 15 ([#4640](https://github.com/rust-lang/libc/pull/4640)) +- FreeBSD: Limit `mcontext_t::mc_tlsbase` to FreeBSD 15 ([#4640](https://github.com/rust-lang/libc/pull/464)) +- FreeBSD: Update gating of `mcontext_t.mc_tlsbase` ([#4703](https://github.com/rust-lang/libc/pull/4703)) +- Musl s390x: Correct the definition of `statfs[64]` ([#4549](https://github.com/rust-lang/libc/pull/4549)) +- Musl s390x: Make `fpreg_t` a union ([#4549](https://github.com/rust-lang/libc/pull/4549)) +- Redox: Fix the types of `gid_t` and `uid_t` ([#4689](https://github.com/rust-lang/libc/pull/4689)) +- Redox: Fix the value of `MAP_FIXED` ([#4684](https://github.com/rust-lang/libc/pull/4684)) + +### Deprecated + +- Apple: Correct the `deprecated` attribute for `iconv` ([`a97a0b53`](https://github.com/rust-lang/libc/commit/a97a0b53fb7faf5f99cd720ab12b1b8a5bf9f950)) +- FreeBSD: Deprecate `TIOCMGDTRWAIT` and `TIOCMSDTRWAIT` ([#4685](https://github.com/rust-lang/libc/pull/4685)) + +### Removed + +- FreeBSD: Remove `JAIL_{GET,SET}_MASK`, `_MC_FLAG_MASK` ([#4691](https://github.com/rust-lang/libc/pull/4691)) + ## [0.2.175](https://github.com/rust-lang/libc/compare/0.2.174...0.2.175) - 2025-08-10 ### Added diff --git a/Cargo.lock b/Cargo.lock index fb19ca2f5614f..cbf613dc346fe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -125,7 +125,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "libc" -version = "0.2.175" +version = "0.2.176" dependencies = [ "rustc-std-workspace-core", ] diff --git a/Cargo.toml b/Cargo.toml index 08ca0a83b4650..9787fdee3ac4e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.175" +version = "0.2.176" keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml"] From 08acabd2f65cde4ce157dc25c1d6d75f6b022c23 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Thu, 9 Oct 2025 21:37:37 +0900 Subject: [PATCH 0855/1228] add script to cherry-pick --- cherry-pick-stable.sh | 150 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100755 cherry-pick-stable.sh diff --git a/cherry-pick-stable.sh b/cherry-pick-stable.sh new file mode 100755 index 0000000000000..c338be4f2ab22 --- /dev/null +++ b/cherry-pick-stable.sh @@ -0,0 +1,150 @@ +#!/bin/bash + +set -e + +# Parse arguments +DRY_RUN=false +while [[ $# -gt 0 ]]; do + case $1 in + --dry-run|-d) + DRY_RUN=true + shift + ;; + --help|-h) + echo "Usage: $0 [OPTIONS]" + echo "" + echo "Cherry-pick commits from PRs labeled 'stable-nominated' to current branch" + echo "" + echo "Options:" + echo " -d, --dry-run Show what would be done without making changes" + echo " -h, --help Show this help message" + exit 0 + ;; + *) + echo "Unknown option: $1" + echo "Use --help for usage information" + exit 1 + ;; + esac +done + +if [ "$DRY_RUN" = true ]; then + echo "[DRY RUN MODE - No changes will be made]" + echo "" +fi + +current_branch=$(git branch --show-current) +echo "Current branch: $current_branch" +echo "Fetching PRs with 'stable-nominated' label..." +echo "" + +# Get PRs with stable-nominated label that are merged +# Sort by merge date (oldest first) to preserve merge order and avoid conflicts +# Format: PR number, title, merge commit SHA +prs=$(gh pr list --state merged --label stable-nominated --json number,title,mergeCommit,mergedAt --jq 'sort_by(.mergedAt) | .[] | "\(.number)|\(.title)|\(.mergeCommit.oid)"') + +if [ -z "$prs" ]; then + echo "No PRs found with 'stable-nominated' label." + exit 0 +fi + +# Arrays to track results +declare -a successful +declare -a failed +declare -a skipped + +echo "Found PRs to cherry-pick:" +echo "" + +# Process each PR +while IFS='|' read -r pr_number title commit_sha; do + echo "----------------------------------------" + echo "PR #${pr_number}: ${title}" + echo "Commit: ${commit_sha}" + + # Check if commit already exists in current branch + if git branch --contains "$commit_sha" 2>/dev/null | grep -q "^\*"; then + echo "⏭ Already cherry-picked, skipping" + skipped+=("PR #${pr_number}: ${title}") + echo "" + continue + fi + + # Cherry-pick with -xe flags as specified + if [ "$DRY_RUN" = true ]; then + echo "Would cherry-pick with: git cherry-pick -xe $commit_sha" + echo "Would add backport note: (backport https://github.com/rust-lang/libc/pull/$pr_number)" + successful+=("PR #${pr_number}: ${title} (${commit_sha:0:8})") + else + if git cherry-pick -xe "$commit_sha" 2>&1; then + # Add backport note before the cherry-pick note as per CONTRIBUTING.md + current_msg=$(git log -1 --format=%B) + backport_line="(backport https://github.com/rust-lang/libc/pull/$pr_number)" + + # Insert backport line before "(cherry picked from commit" line + new_msg=$(echo "$current_msg" | sed "/^(cherry picked from commit/i\\ +$backport_line\\ +") + + # Amend the commit with the new message + git commit --amend -m "$new_msg" + + echo "✓ Successfully cherry-picked with backport note" + successful+=("PR #${pr_number}: ${title} (${commit_sha:0:8})") + else + echo "✗ Failed to cherry-pick" + failed+=("PR #${pr_number}: ${title} (${commit_sha:0:8})") + # Abort the failed cherry-pick + git cherry-pick --abort 2>/dev/null || true + fi + fi + echo "" +done <<< "$prs" + +# Print summary +echo "========================================" +if [ "$DRY_RUN" = true ]; then + echo "SUMMARY (DRY RUN)" +else + echo "SUMMARY" +fi +echo "========================================" +echo "" + +if [ ${#successful[@]} -gt 0 ]; then + if [ "$DRY_RUN" = true ]; then + echo "Would cherry-pick (${#successful[@]}):" + else + echo "Successfully cherry-picked (${#successful[@]}):" + fi + for item in "${successful[@]}"; do + echo " ✓ $item" + done + echo "" +fi + +if [ ${#skipped[@]} -gt 0 ]; then + echo "Skipped (${#skipped[@]}):" + for item in "${skipped[@]}"; do + echo " ⏭ $item" + done + echo "" +fi + +if [ ${#failed[@]} -gt 0 ]; then + echo "Failed (${#failed[@]}):" + for item in "${failed[@]}"; do + echo " ✗ $item" + done + echo "" + if [ "$DRY_RUN" = false ]; then + echo "Please resolve conflicts manually and re-run if needed." + fi + exit 1 +fi + +if [ "$DRY_RUN" = true ]; then + echo "Dry run complete! Run without --dry-run to apply changes." +else + echo "All done!" +fi From 0af069dcbfdb8ea80e437a50bc98ffd186915247 Mon Sep 17 00:00:00 2001 From: joboet Date: Tue, 23 Sep 2025 20:16:26 +0200 Subject: [PATCH 0856/1228] Windows: add `wcsnlen` (backport https://github.com/rust-lang/libc/pull/4721) (cherry picked from commit 11f939ad4d7154755d7e30ded09beeb8a4e6780a) --- libc-test/semver/windows.txt | 1 + src/windows/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/windows.txt b/libc-test/semver/windows.txt index a91794bed52ef..9e39684f07558 100644 --- a/libc-test/semver/windows.txt +++ b/libc-test/semver/windows.txt @@ -348,6 +348,7 @@ utimbuf wchar_t wchmod wcslen +wcsnlen wcstombs wexecl wexecle diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 33ff35ef20a4b..2f35af84c7493 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -379,6 +379,7 @@ extern "C" { pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; pub fn wcslen(buf: *const wchar_t) -> size_t; + pub fn wcsnlen(str: *const wchar_t, numberOfElements: size_t) -> size_t; pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> size_t; pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; From bdad4264ced348e8e1a8ffc25a9b493fae124fa9 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Tue, 30 Sep 2025 16:54:05 -0700 Subject: [PATCH 0857/1228] wasip2: Invert conditional to include p2 APIs This commit switches `cfg(target_feature = "p2")` to instead using `cfg(not(target_feature = "p1"))` to be more future-proof of new Rust targets such as `wasm32-wasip3`. All future targets will support the same set of functionality in `wasm32-wasip2`, so this should be valid for future targets. (backport https://github.com/rust-lang/libc/pull/4733) (cherry picked from commit d2fb5b062d40856cc944df3160d23af506f28914) --- src/wasi/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index 823b87aa69efa..bb3b729548780 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -846,7 +846,7 @@ extern "C" { } cfg_if! { - if #[cfg(target_env = "p2")] { + if #[cfg(not(target_env = "p1"))] { mod p2; pub use self::p2::*; } From fe277da53e919bb8272aa695e8df44b48aab95a3 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Sun, 28 Sep 2025 15:37:11 +0700 Subject: [PATCH 0858/1228] redox: more sysconf constants (backport https://github.com/rust-lang/libc/pull/4728) (cherry picked from commit 4d939b0d26d97f8794f14bdf2638e39bf19d4af1) --- libc-test/semver/redox.txt | 19 +++++++++++++++++++ src/unix/redox/mod.rs | 9 +++++++++ 2 files changed, 28 insertions(+) diff --git a/libc-test/semver/redox.txt b/libc-test/semver/redox.txt index eeba3a35a54ce..b7aaa5706d626 100644 --- a/libc-test/semver/redox.txt +++ b/libc-test/semver/redox.txt @@ -251,8 +251,27 @@ _PC_SOCK_MAXBUF _PC_SYMLINK_MAX _PC_SYNC_IO _POSIX_VDISABLE +_SC_ARG_MAX +_SC_CHILD_MAX +_SC_CLK_TCK +_SC_GETGR_R_SIZE_MAX +_SC_GETPW_R_SIZE_MAX +_SC_HOST_NAME_MAX _SC_LOGIN_NAME_MAX +_SC_NGROUPS_MAX +_SC_NPROCESSORS_CONF +_SC_NPROCESSORS_ONLN +_SC_OPEN_MAX +_SC_PAGESIZE +_SC_PAGE_SIZE +_SC_REALTIME_SIGNALS _SC_RE_DUP_MAX +_SC_SIGQUEUE_MAX +_SC_STREAM_MAX +_SC_SYMLOOP_MAX +_SC_TTY_NAME_MAX +_SC_TZNAME_MAX +_SC_VERSION __WALL __WCLONE __WNOTHREAD diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 4a8b2ae3c435d..50bdaf4d4f06b 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1002,13 +1002,22 @@ pub const _SC_PAGESIZE: c_int = 30; pub const _SC_PAGE_SIZE: c_int = 30; // ... pub const _SC_RE_DUP_MAX: c_int = 44; + +pub const _SC_NPROCESSORS_CONF: c_int = 57; +pub const _SC_NPROCESSORS_ONLN: c_int = 58; + // ... +pub const _SC_GETGR_R_SIZE_MAX: c_int = 69; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 70; pub const _SC_LOGIN_NAME_MAX: c_int = 71; pub const _SC_TTY_NAME_MAX: c_int = 72; // ... pub const _SC_SYMLOOP_MAX: c_int = 173; // ... pub const _SC_HOST_NAME_MAX: c_int = 180; +// ... +pub const _SC_SIGQUEUE_MAX: c_int = 190; +pub const _SC_REALTIME_SIGNALS: c_int = 191; // } POSIX.1 // confstr From d5737a01378862df540367c627b18d8a26dbdd0e Mon Sep 17 00:00:00 2001 From: Johannes Altmanninger Date: Sun, 5 Oct 2025 20:38:30 +0200 Subject: [PATCH 0859/1228] Define _CS_PATH on the BSDs According to https://man.netbsd.org/confstr.3 _CS_PATH is obsoleted by sysctl (which has a USER_CS_PATH equivalent), but Linux doesn't have that. So the simplest thing for applications is to use _CS_PATH which is part of POSIX. Define, matching the header. We could maybe share this definition in src/unix/bsd/netbsdlike/mod.rs, but I saw that existing definitions are not shared either, so I'm not sure. $ grep src/unix/bsd/netbsdlike -e _PC_LINK_MAX src/unix/bsd/netbsdlike/netbsd/mod.rs:1599:11:pub const _PC_LINK_MAX: c_int = 1; src/unix/bsd/netbsdlike/openbsd/mod.rs:1193:11:pub const _PC_LINK_MAX: c_int = 1; Originally reported in https://github.com/fish-shell/fish-shell/issues/11892 (backport https://github.com/rust-lang/libc/pull/4738) (cherry picked from commit b1be455b7b280b8a827ba051da0175bae03d47dd) --- libc-test/semver/dragonfly.txt | 1 + libc-test/semver/freebsd.txt | 1 + libc-test/semver/netbsd.txt | 1 + libc-test/semver/openbsd.txt | 1 + src/unix/bsd/freebsdlike/dragonfly/mod.rs | 2 ++ src/unix/bsd/freebsdlike/mod.rs | 2 ++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 ++ src/unix/bsd/netbsdlike/openbsd/mod.rs | 2 ++ 8 files changed, 12 insertions(+) diff --git a/libc-test/semver/dragonfly.txt b/libc-test/semver/dragonfly.txt index 31c40372f195c..6c2a3a0d2e4e0 100644 --- a/libc-test/semver/dragonfly.txt +++ b/libc-test/semver/dragonfly.txt @@ -1128,6 +1128,7 @@ WTRAPPED XUCRED_VERSION YESEXPR YESSTR +_CS_PATH _IOFBF _IOLBF _IONBF diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index 74ea7dad541e0..cebe46464eebf 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -1724,6 +1724,7 @@ XUCRED_VERSION XU_NGROUPS YESEXPR YESSTR +_CS_PATH _IOFBF _IOLBF _IONBF diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index 4280ec02de730..5821466cc8ddf 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -1127,6 +1127,7 @@ XATTR_CREATE XATTR_REPLACE YESEXPR YESSTR +_CS_PATH _IO _IOC _IOFBF diff --git a/libc-test/semver/openbsd.txt b/libc-test/semver/openbsd.txt index c63c347723834..8c20b2456cd5a 100644 --- a/libc-test/semver/openbsd.txt +++ b/libc-test/semver/openbsd.txt @@ -921,6 +921,7 @@ WSTOPPED WTRAPPED YESEXPR YESSTR +_CS_PATH _IO _IOC _IOFBF diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index dbf18ebb64dc6..8720bf7fb3649 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -1359,6 +1359,8 @@ pub const VCHECKPT: usize = 19; pub const _PC_2_SYMLINKS: c_int = 22; pub const _PC_TIMESTAMP_RESOLUTION: c_int = 23; +pub const _CS_PATH: c_int = 1; + pub const _SC_V7_ILP32_OFF32: c_int = 122; pub const _SC_V7_ILP32_OFFBIG: c_int = 123; pub const _SC_V7_LP64_OFF64: c_int = 124; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 71765b1f3bbf8..4bf62033474f0 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1197,6 +1197,8 @@ pub const _SC_RAW_SOCKETS: c_int = 119; pub const _SC_SYMLOOP_MAX: c_int = 120; pub const _SC_PHYS_PAGES: c_int = 121; +pub const _CS_PATH: c_int = 1; + pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = ptr::null_mut(); pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = ptr::null_mut(); pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = ptr::null_mut(); diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index fba5391e14c44..9f0831323af79 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1613,6 +1613,8 @@ pub const _PC_2_SYMLINKS: c_int = 13; pub const _PC_ACL_EXTENDED: c_int = 14; pub const _PC_MIN_HOLE_SIZE: c_int = 15; +pub const _CS_PATH: c_int = 1; + pub const _SC_SYNCHRONIZED_IO: c_int = 31; pub const _SC_IOV_MAX: c_int = 32; pub const _SC_MAPPED_FILES: c_int = 33; diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index d2937bc16911b..f4aa34a7ca40d 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1219,6 +1219,8 @@ pub const _PC_SYMLINK_MAX: c_int = 19; pub const _PC_SYNC_IO: c_int = 20; pub const _PC_TIMESTAMP_RESOLUTION: c_int = 21; +pub const _CS_PATH: c_int = 1; + pub const _SC_CLK_TCK: c_int = 3; pub const _SC_SEM_NSEMS_MAX: c_int = 31; pub const _SC_SEM_VALUE_MAX: c_int = 32; From 4ae44a44945ce5c2751aa198171bc1f47c292723 Mon Sep 17 00:00:00 2001 From: Matt Mastracci Date: Thu, 2 Oct 2025 15:03:07 -0600 Subject: [PATCH 0860/1228] Update semver tests (backport https://github.com/rust-lang/libc/pull/4736) (cherry picked from commit a7fe341fbf1f6eeadbd74b4be35fca9c85c55563) --- libc-test/semver/apple.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index 9301252dcc949..213f4d12d1507 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -1451,6 +1451,7 @@ TIOCEXCL TIOCEXT TIOCFLUSH TIOCGDRAINWAIT +TIOCGETA TIOCGETD TIOCGPGRP TIOCIXOFF @@ -1495,6 +1496,9 @@ TIOCSCONS TIOCSCTTY TIOCSDRAINWAIT TIOCSDTR +TIOCSETA +TIOCSETAF +TIOCSETAW TIOCSETD TIOCSIG TIOCSPGRP From ff2ff25f15bbd01c03482c0c1f49411b0b622957 Mon Sep 17 00:00:00 2001 From: Brad Smith Date: Mon, 29 Sep 2025 06:10:17 -0400 Subject: [PATCH 0861/1228] openbsd add elf_aux_info (backport https://github.com/rust-lang/libc/pull/4729) (cherry picked from commit 70625420c22ec55e3de2bb065bd0c617b28b4084) --- libc-test/build.rs | 1 + libc-test/semver/openbsd.txt | 6 ++++++ src/unix/bsd/netbsdlike/openbsd/mod.rs | 8 ++++++++ 3 files changed, 15 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index cc15451b760fb..ebc8f775c584d 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -553,6 +553,7 @@ fn test_openbsd(target: &str) { "sys/syscall.h", "sys/shm.h", "sys/param.h", + "sys/auxv.h", } cfg.rename_type(|ty| match ty { diff --git a/libc-test/semver/openbsd.txt b/libc-test/semver/openbsd.txt index 8c20b2456cd5a..cfb234fdfa3d1 100644 --- a/libc-test/semver/openbsd.txt +++ b/libc-test/semver/openbsd.txt @@ -63,6 +63,11 @@ ATF_PUBL ATF_USETRAILERS AT_EACCESS AT_FDCWD +AT_HWCAP +AT_HWCAP2 +AT_IGNORE +AT_NULL +AT_PAGESZ AT_REMOVEDIR AT_SYMLINK_FOLLOW AT_SYMLINK_NOFOLLOW @@ -1095,6 +1100,7 @@ dl_phdr_info drand48 dup3 duplocale +elf_aux_info endgrent endpwent endservent diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index f4aa34a7ca40d..b28f4557f5218 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1041,6 +1041,12 @@ pub const AT_SYMLINK_NOFOLLOW: c_int = 0x02; pub const AT_SYMLINK_FOLLOW: c_int = 0x04; pub const AT_REMOVEDIR: c_int = 0x08; +pub const AT_NULL: c_int = 0; +pub const AT_IGNORE: c_int = 1; +pub const AT_PAGESZ: c_int = 6; +pub const AT_HWCAP: c_int = 25; +pub const AT_HWCAP2: c_int = 26; + #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: c_int = 9; @@ -2093,6 +2099,8 @@ extern "C" { pub fn fstatfs(fd: c_int, buf: *mut statfs) -> c_int; pub fn getmntinfo(mntbufp: *mut *mut crate::statfs, flags: c_int) -> c_int; pub fn getfsstat(buf: *mut statfs, bufsize: size_t, flags: c_int) -> c_int; + + pub fn elf_aux_info(aux: c_int, buf: *mut c_void, buflen: c_int) -> c_int; } #[link(name = "execinfo")] From 2914d6f735740b40b8abbbae251aad11daf48885 Mon Sep 17 00:00:00 2001 From: Henry Chen Date: Mon, 29 Sep 2025 17:19:22 +0800 Subject: [PATCH 0862/1228] linux_like: add SIGEMT for mips* and sparc* (backport https://github.com/rust-lang/libc/pull/4730) (cherry picked from commit de7e184784a5e7fcacf9c6f90b5cf6331c44cbbd) --- libc-test/semver/linux-mips.txt | 1 + libc-test/semver/linux-sparc64.txt | 1 + src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 1 + src/unix/linux_like/linux/gnu/b32/sparc/mod.rs | 1 + src/unix/linux_like/linux/gnu/b64/mips64/mod.rs | 1 + src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs | 1 + src/unix/linux_like/linux/musl/b32/mips/mod.rs | 1 + src/unix/linux_like/linux/musl/b64/mips64.rs | 1 + src/unix/linux_like/linux/uclibc/mips/mod.rs | 1 + 9 files changed, 9 insertions(+) diff --git a/libc-test/semver/linux-mips.txt b/libc-test/semver/linux-mips.txt index 62da7368b5587..8d98f5604df0f 100644 --- a/libc-test/semver/linux-mips.txt +++ b/libc-test/semver/linux-mips.txt @@ -9,6 +9,7 @@ PTRACE_GETREGS PTRACE_SETFPREGS PTRACE_SETFPXREGS PTRACE_SETREGS +SIGEMT SO_PRIORITY SO_PROTOCOL SYS__sysctl diff --git a/libc-test/semver/linux-sparc64.txt b/libc-test/semver/linux-sparc64.txt index d6ae2f675f793..bb20c031feb5c 100644 --- a/libc-test/semver/linux-sparc64.txt +++ b/libc-test/semver/linux-sparc64.txt @@ -20,6 +20,7 @@ MAP_SYNC PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP +SIGEMT SYS__llseek SYS__newselect SYS__sysctl diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index db0505a2473de..3d2775cd800ae 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -768,6 +768,7 @@ pub const SOCK_DGRAM: c_int = 1; pub const SA_SIGINFO: c_int = 0x00000008; pub const SA_NOCLDWAIT: c_int = 0x00010000; +pub const SIGEMT: c_int = 7; pub const SIGCHLD: c_int = 18; pub const SIGBUS: c_int = 10; pub const SIGTTIN: c_int = 26; diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index f9d6a95ed036e..801f31e2c0e34 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -316,6 +316,7 @@ pub const SOCK_DGRAM: c_int = 2; pub const SA_SIGINFO: c_int = 0x200; pub const SA_NOCLDWAIT: c_int = 0x100; +pub const SIGEMT: c_int = 7; pub const SIGTTIN: c_int = 21; pub const SIGTTOU: c_int = 22; pub const SIGXCPU: c_int = 24; diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index 56f30cd08a482..7f66330d9c7ed 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -757,6 +757,7 @@ pub const SA_ONSTACK: c_int = 0x08000000; pub const SA_SIGINFO: c_int = 0x00000008; pub const SA_NOCLDWAIT: c_int = 0x00010000; +pub const SIGEMT: c_int = 7; pub const SIGCHLD: c_int = 18; pub const SIGBUS: c_int = 10; pub const SIGTTIN: c_int = 26; diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs index c4203dc0b2da4..f18e53a99b466 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -324,6 +324,7 @@ pub const SA_ONSTACK: c_int = 1; pub const SA_SIGINFO: c_int = 0x200; pub const SA_NOCLDWAIT: c_int = 0x100; +pub const SIGEMT: c_int = 7; pub const SIGTTIN: c_int = 21; pub const SIGTTOU: c_int = 22; pub const SIGXCPU: c_int = 24; diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index 4f29b27ad0a14..a623ff9a9f757 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -345,6 +345,7 @@ pub const SA_ONSTACK: c_int = 0x08000000; pub const SA_SIGINFO: c_int = 8; pub const SA_NOCLDWAIT: c_int = 0x10000; +pub const SIGEMT: c_int = 7; pub const SIGCHLD: c_int = 18; pub const SIGBUS: c_int = 10; pub const SIGTTIN: c_int = 26; diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index 57a460bd1c8f4..95dd37c889804 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -591,6 +591,7 @@ pub const SA_ONSTACK: c_int = 0x08000000; pub const SA_SIGINFO: c_int = 0x00000008; pub const SA_NOCLDWAIT: c_int = 0x00010000; +pub const SIGEMT: c_int = 7; pub const SIGCHLD: c_int = 18; pub const SIGBUS: c_int = 10; pub const SIGTTIN: c_int = 26; diff --git a/src/unix/linux_like/linux/uclibc/mips/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mod.rs index 0ad572a95f888..8d17aa8e98e9a 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mod.rs @@ -163,6 +163,7 @@ pub const SA_ONSTACK: c_uint = 0x08000000; pub const SA_SIGINFO: c_uint = 0x00000008; pub const SA_NOCLDWAIT: c_int = 0x00010000; +pub const SIGEMT: c_int = 7; pub const SIGCHLD: c_int = 18; pub const SIGBUS: c_int = 10; pub const SIGTTIN: c_int = 26; From 72a40e2550f924e8e5736a96afe71c71b988b08b Mon Sep 17 00:00:00 2001 From: joboet Date: Tue, 23 Sep 2025 15:51:45 +0200 Subject: [PATCH 0863/1228] add `pthread_cond_timedwait_relative_np` (backport ) (cherry picked from commit d2ece10681cdf854fc4509ca2de23ce16a3783ff) --- libc-test/semver/apple.txt | 1 + src/unix/bsd/apple/mod.rs | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index 213f4d12d1507..1d340bd54929d 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -2202,6 +2202,7 @@ pthread_attr_setschedpolicy pthread_attr_setscope pthread_attr_setstackaddr pthread_cancel +pthread_cond_timedwait_relative_np pthread_condattr_getpshared pthread_condattr_setpshared pthread_cpu_number_np diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 1c6e5a8f000f7..57c4d442836e0 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -5380,6 +5380,11 @@ extern "C" { pub fn mach_host_self() -> mach_port_t; #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] pub fn mach_thread_self() -> mach_port_t; + pub fn pthread_cond_timedwait_relative_np( + cond: *mut pthread_cond_t, + lock: *mut pthread_mutex_t, + timeout: *const crate::timespec, + ) -> c_int; pub fn pthread_once( once_control: *mut crate::pthread_once_t, init_routine: Option, From 329a5e77fd0666d9c2fda463eb005cfbb28c3e8c Mon Sep 17 00:00:00 2001 From: Matt Mastracci Date: Thu, 2 Oct 2025 14:44:35 -0600 Subject: [PATCH 0864/1228] Add missing TIOCGETA/TIOCSETA constants for macOS - Add TIOCGETA (0x40487413) for getting termios state - Add TIOCSETA (0x80487414) for setting termios state immediately - Add TIOCSETAW (0x80487415) for draining output then setting - Add TIOCSETAF (0x80487416) for draining output, flushing input, then setting These constants are present in macOS system headers but were missing from the libc crate. Fixes issue #4735. (backport ) (cherry picked from commit 755613edadc9950133731358acc81002e4b5437e) --- src/unix/bsd/apple/mod.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 57c4d442836e0..857508f794ad1 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -3341,6 +3341,10 @@ pub const TIOCDSIMICROCODE: c_uint = 0x20007455; pub const TIOCPTYGRANT: c_uint = 0x20007454; pub const TIOCPTYGNAME: c_uint = 0x40807453; pub const TIOCPTYUNLK: c_uint = 0x20007452; +pub const TIOCGETA: c_ulong = 0x40487413; +pub const TIOCSETA: c_ulong = 0x80487414; +pub const TIOCSETAW: c_ulong = 0x80487415; +pub const TIOCSETAF: c_ulong = 0x80487416; pub const BIOCGRSIG: c_ulong = 0x40044272; pub const BIOCSRSIG: c_ulong = 0x80044273; From 9f598d245e18ecb243118cfde095f24598ec9d5b Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Thu, 9 Oct 2025 22:02:00 +0900 Subject: [PATCH 0865/1228] chore: release libc 0.2.177 --- CHANGELOG.md | 16 ++++++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eec2bfe4efe18..e9b726cf19790 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## [0.2.177](https://github.com/rust-lang/libc/compare/0.2.176...0.2.177) - 2025-10-09 + +### Added + +- Apple: Add `TIOCGETA`, `TIOCSETA`, `TIOCSETAW`, `TIOCSETAF` constants ([#4736](https://github.com/rust-lang/libc/pull/4736)) +- Apple: Add `pthread_cond_timedwait_relative_np` ([#4719](https://github.com/rust-lang/libc/pull/4719)) +- BSDs: Add `_CS_PATH` constant ([#4738](https://github.com/rust-lang/libc/pull/4738)) +- Linux-like: Add `SIGEMT` for mips* and sparc* architectures ([#4730](https://github.com/rust-lang/libc/pull/4730)) +- OpenBSD: Add `elf_aux_info` ([#4729](https://github.com/rust-lang/libc/pull/4729)) +- Redox: Add more sysconf constants ([#4728](https://github.com/rust-lang/libc/pull/4728)) +- Windows: Add `wcsnlen` ([#4721](https://github.com/rust-lang/libc/pull/4721)) + +### Changed + +- WASIP2: Invert conditional to include p2 APIs ([#4733](https://github.com/rust-lang/libc/pull/4733)) + ## [0.2.176](https://github.com/rust-lang/libc/compare/0.2.175...0.2.176) - 2025-09-23 ### Support diff --git a/Cargo.lock b/Cargo.lock index cbf613dc346fe..46bd7a6704f01 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -125,7 +125,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "libc" -version = "0.2.176" +version = "0.2.177" dependencies = [ "rustc-std-workspace-core", ] diff --git a/Cargo.toml b/Cargo.toml index 9787fdee3ac4e..74241d2ee390a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.176" +version = "0.2.177" keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml"] From f54e564d704e1c769931f9f733224d5d3e229958 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Tue, 21 Oct 2025 21:05:02 +0900 Subject: [PATCH 0866/1228] test: remove unused assignment --- libc-test/tests/cmsg.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libc-test/tests/cmsg.rs b/libc-test/tests/cmsg.rs index bba658c498aa9..bb832f1ba3d54 100644 --- a/libc-test/tests/cmsg.rs +++ b/libc-test/tests/cmsg.rs @@ -30,13 +30,14 @@ mod t { #[test] fn test_cmsg_firsthdr() { + let mut buf = [0u8; 256]; let mut mhdr: msghdr = unsafe { mem::zeroed() }; - mhdr.msg_control = 0xdeadbeef as *mut c_void; - let pmhdr = &mhdr as *const msghdr; + mhdr.msg_control = buf.as_mut_ptr().cast::(); + for l in 0..128 { - mhdr.msg_controllen = l; + mhdr.msg_controllen = l as _; unsafe { - assert_eq!(libc::CMSG_FIRSTHDR(pmhdr), cmsg_firsthdr(pmhdr)); + assert_eq!(libc::CMSG_FIRSTHDR(&mhdr), cmsg_firsthdr(&mhdr)); } } } From 2c28eacc031e4954c59c568d6838c6df6edd5e46 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Tue, 21 Oct 2025 21:42:10 +0900 Subject: [PATCH 0867/1228] test: ignore some consts on windows-gnu --- libc-test/build.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index ebc8f775c584d..184b5c60443fb 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -928,6 +928,8 @@ fn test_windows(target: &str) { "SIG_DFL" | "SIG_IGN" | "SIG_GET" | "SIG_SGE" | "SIG_ACK" => true, // FIXME(windows): newer windows-gnu environment on CI? "_O_OBTAIN_DIR" if gnu => true, + // FIXME: These constants have been changed since windows-2022 20251014.68.1: + "L_tmpnam" | "TMP_MAX" => true, _ => false, } }); From 034e4f3360c7367af4b86ce10108daeefde1f479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Wieczoreck?= Date: Fri, 17 Oct 2025 14:12:45 +0200 Subject: [PATCH 0868/1228] Exclude cherry-pick-stable script from crates.io package --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 74241d2ee390a..a4df1a263ca75 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "libc" version = "0.2.177" keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] -exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml"] +exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml", "cherry-pick-stable.sh"] description = "Raw FFI bindings to platform libraries like libc." authors = ["The Rust Project Developers"] edition = "2021" From 18dca7260bd39a27d41a3b08041091a5f6c3b2d3 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sat, 6 Apr 2024 15:01:49 +0200 Subject: [PATCH 0869/1228] Avoid usage of thread_local on DragonFlyBSD __error() has been deprecated and return the same value as __errno_location(). Removing the __error() function eliminates the sole use of thread_local in this crate. (backport ) (cherry picked from commit de76fee6985da570d52bbc3a803967516f51e229) [ resolved conflicts in all files and removed the now-unused `rustc_dep_of_std` - Trevor ] --- build.rs | 7 ------- libc-test/build.rs | 4 ---- src/lib.rs | 1 - src/unix/bsd/freebsdlike/dragonfly/errno.rs | 17 ----------------- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 8 -------- 5 files changed, 37 deletions(-) delete mode 100644 src/unix/bsd/freebsdlike/dragonfly/errno.rs diff --git a/build.rs b/build.rs index 802ea7a37def0..2941fdf55a0f9 100644 --- a/build.rs +++ b/build.rs @@ -18,7 +18,6 @@ const ALLOWED_CFGS: &[&str] = &[ // Corresponds to `_TIME_BITS=64` in glibc "gnu_time_bits64", "libc_deny_warnings", - "libc_thread_local", // Corresponds to `__USE_TIME_BITS64` in UAPI "linux_time_bits64", "musl_v1_2_3", @@ -47,7 +46,6 @@ fn main() { println!("cargo:rerun-if-changed=build.rs"); let (rustc_minor_ver, _is_nightly) = rustc_minor_nightly(); - let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); let libc_ci = env::var("LIBC_CI").is_ok(); let target_env = env::var("CARGO_CFG_TARGET_ENV").unwrap_or_default(); let target_os = env::var("CARGO_CFG_TARGET_OS").unwrap_or_default(); @@ -143,11 +141,6 @@ fn main() { set_cfg("libc_deny_warnings"); } - // #[thread_local] is currently unstable - if rustc_dep_of_std { - set_cfg("libc_thread_local"); - } - // Since Rust 1.80, configuration that isn't recognized by default needs to be provided to // avoid warnings. if rustc_minor_ver >= 80 { diff --git a/libc-test/build.rs b/libc-test/build.rs index 184b5c60443fb..de7292423190c 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -72,10 +72,6 @@ fn do_ctest() { fn ctest_cfg() -> ctest::TestGenerator { let mut cfg = ctest::TestGenerator::new(); cfg.skip_private(true); - let libc_cfgs = ["libc_thread_local"]; - for f in &libc_cfgs { - cfg.cfg(f, None); - } cfg } diff --git a/src/lib.rs b/src/lib.rs index aa919b5ca038e..846c2189b79ed 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -26,7 +26,6 @@ #![cfg_attr(libc_deny_warnings, deny(warnings))] // Attributes needed when building as part of the standard library #![cfg_attr(feature = "rustc-dep-of-std", feature(link_cfg, no_core))] -#![cfg_attr(libc_thread_local, feature(thread_local))] #![cfg_attr(feature = "rustc-dep-of-std", allow(internal_features))] // DIFF(1.0): The thread local references that raise this lint were removed in 1.0 #![cfg_attr(feature = "rustc-dep-of-std", allow(static_mut_refs))] diff --git a/src/unix/bsd/freebsdlike/dragonfly/errno.rs b/src/unix/bsd/freebsdlike/dragonfly/errno.rs deleted file mode 100644 index 874c1da84d3a5..0000000000000 --- a/src/unix/bsd/freebsdlike/dragonfly/errno.rs +++ /dev/null @@ -1,17 +0,0 @@ -use crate::prelude::*; - -/* DIFF(main): module removed in de76fee6 */ - -// DragonFlyBSD's __error function is declared with "static inline", so it must -// be implemented in the libc crate, as a pointer to a static thread_local. -f! { - #[deprecated(since = "0.2.77", note = "Use `__errno_location()` instead")] - pub fn __error() -> *mut c_int { - &mut errno - } -} - -extern "C" { - #[thread_local] - pub static mut errno: c_int; -} diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 8720bf7fb3649..582e812796cf2 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -1625,11 +1625,3 @@ extern "C" { entry: vm_map_entry_t, ) -> vm_map_entry_t; } - -// DIFF(main): module removed in de76fee6 -cfg_if! { - if #[cfg(libc_thread_local)] { - mod errno; - pub use self::errno::*; - } -} From 53e3000c0918f08c928401eb9489c0e1ae6a3a22 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Fri, 26 Sep 2025 17:19:02 +0200 Subject: [PATCH 0870/1228] Simplify rustc-check-cfg emission in build.rs (backport ) (cherry picked from commit f093797507209552c90b1d7fca6de402f0506348) --- build.rs | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/build.rs b/build.rs index 2941fdf55a0f9..0d1cef6440570 100644 --- a/build.rs +++ b/build.rs @@ -145,19 +145,11 @@ fn main() { // avoid warnings. if rustc_minor_ver >= 80 { for cfg in ALLOWED_CFGS { - if rustc_minor_ver >= 75 { - println!("cargo:rustc-check-cfg=cfg({cfg})"); - } else { - println!("cargo:rustc-check-cfg=values({cfg})"); - } + println!("cargo:rustc-check-cfg=cfg({cfg})"); } for &(name, values) in CHECK_CFG_EXTRA { let values = values.join("\",\""); - if rustc_minor_ver >= 75 { - println!("cargo:rustc-check-cfg=cfg({name},values(\"{values}\"))"); - } else { - println!("cargo:rustc-check-cfg=values({name},\"{values}\")"); - } + println!("cargo:rustc-check-cfg=cfg({name},values(\"{values}\"))"); } } } From 5f3e003a043d73f22fb8ab6523902278d4ec4744 Mon Sep 17 00:00:00 2001 From: Henry Chen Date: Wed, 8 Oct 2025 11:38:42 +0800 Subject: [PATCH 0871/1228] libc-test: add mips to the sys_memfd_secret skip list (backport ) (cherry picked from commit 6f15928d59a4dd6f787cbfd60b1e22102a6e2e09) --- libc-test/build.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index de7292423190c..7ba1ef3ab3936 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3738,6 +3738,7 @@ fn test_linux(target: &str) { let loongarch64 = target.contains("loongarch64"); let wasm32 = target.contains("wasm32"); let uclibc = target.contains("uclibc"); + let mips = target.contains("mips"); let musl_v1_2_3 = env::var("RUST_LIBC_UNSTABLE_MUSL_V1_2_3").is_ok(); let old_musl = musl && !musl_v1_2_3; @@ -4434,8 +4435,8 @@ fn test_linux(target: &str) { // FIXME(linux): Not yet implemented on sparc64 "SYS_clone3" if sparc64 => true, - // FIXME(linux): Not defined on ARM, gnueabihf, musl, PowerPC, riscv64, s390x, and sparc64. - "SYS_memfd_secret" if arm | gnueabihf | musl | ppc | riscv64 | s390x | sparc64 => true, + // FIXME(linux): Not defined on ARM, gnueabihf, mips, musl, PowerPC, riscv64, s390x, and sparc64. + "SYS_memfd_secret" if arm | gnueabihf | mips | musl | ppc | riscv64 | s390x | sparc64 => true, // FIXME(linux): Added in Linux 5.16 // https://github.com/torvalds/linux/commit/039c0ec9bb77446d7ada7f55f90af9299b28ca49 From 8f47d96c9cee2ff42442141ddce39eb21664884e Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 10 Oct 2025 20:53:13 +0100 Subject: [PATCH 0872/1228] addinh issetugid() to *BSD based systems. close #4722 (backport ) (cherry picked from commit 01cb1e3633611e08ab30870f7ed8064ccb352785) --- libc-test/semver/apple.txt | 1 + libc-test/semver/dragonfly.txt | 1 + libc-test/semver/freebsd.txt | 1 + libc-test/semver/netbsd.txt | 1 + libc-test/semver/openbsd.txt | 1 + src/unix/bsd/mod.rs | 2 ++ 6 files changed, 7 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index 1d340bd54929d..e9fb9cb31fb12 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -2033,6 +2033,7 @@ initgroups integer_t ip_mreqn ipc_perm +issetugid kern_return_t kevent kevent64 diff --git a/libc-test/semver/dragonfly.txt b/libc-test/semver/dragonfly.txt index 6c2a3a0d2e4e0..6d41c8c6cabd9 100644 --- a/libc-test/semver/dragonfly.txt +++ b/libc-test/semver/dragonfly.txt @@ -1403,6 +1403,7 @@ if_nameindex ifaddrs in6_pktinfo initgroups +issetugid jrand48 kevent killpg diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index cebe46464eebf..e027d25d2b222 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -2052,6 +2052,7 @@ input_absinfo input_event ip_mreqn ipc_perm +issetugid jail jail_attach jail_get diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index 5821466cc8ddf..bcd25eca15b93 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -1402,6 +1402,7 @@ in6_pktinfo in_pktinfo initgroups ipc_perm +issetugid itimerspec jrand48 kevent diff --git a/libc-test/semver/openbsd.txt b/libc-test/semver/openbsd.txt index cfb234fdfa3d1..412ba5a4bd481 100644 --- a/libc-test/semver/openbsd.txt +++ b/libc-test/semver/openbsd.txt @@ -1173,6 +1173,7 @@ initgroups ip_mreqn ipc_perm iso_args +issetugid jrand48 kevent key_t diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 24531db853145..dd1c59907e881 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -945,6 +945,8 @@ extern "C" { ) -> size_t; pub fn devname(dev: crate::dev_t, mode_t: crate::mode_t) -> *mut c_char; + + pub fn issetugid() -> c_int; } cfg_if! { From 71005a53e965291d749622502bd5875c0c6a270b Mon Sep 17 00:00:00 2001 From: Brad Smith Date: Tue, 30 Sep 2025 22:24:40 -0400 Subject: [PATCH 0873/1228] add HWCAP consts (backport ) (cherry picked from commit e5b77756f0a66d784144ebf8ff6f41c619fd19cc) --- libc-test/build.rs | 9 +++++++++ libc-test/semver/android.txt | 2 ++ libc-test/semver/freebsd.txt | 2 ++ libc-test/semver/linux.txt | 2 ++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 2 ++ src/unix/linux_like/android/mod.rs | 2 ++ src/unix/linux_like/linux/mod.rs | 2 ++ 7 files changed, 21 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 7ba1ef3ab3936..bebc0432a77c0 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2233,6 +2233,9 @@ fn test_android(target: &str) { // FIXME(android): Requires >= 6.12 kernel headers. "SOF_TIMESTAMPING_OPT_RX_FILTER" => true, + // FIXME(android): Requires >= 6.9 kernel headers. + "AT_HWCAP3" | "AT_HWCAP4" => true, + _ => false, } }); @@ -2829,6 +2832,9 @@ fn test_freebsd(target: &str) { // FIXME(deprecated): deprecated in 0.2, removed in main "TIOCMGDTRWAIT" | "TIOCMSDTRWAIT" => true, + // Added in FreeBSD 15 + "AT_HWCAP3" | "AT_HWCAP4" if Some(15) > freebsd_ver => true, + _ => false, } }); @@ -4733,6 +4739,9 @@ fn test_linux(target: &str) { // FIXME(linux): Value changed in 6.14 "SECURE_ALL_BITS" | "SECURE_ALL_LOCKS" => true, + // FIXME(linux): Requires >= 6.9 kernel headers. + "AT_HWCAP3" | "AT_HWCAP4" => true, + _ => false, } }); diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 53ab742cf2a6a..644aeaa6667b9 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -150,6 +150,8 @@ AT_FLAGS AT_GID AT_HWCAP AT_HWCAP2 +AT_HWCAP3 +AT_HWCAP4 AT_IGNORE AT_MINSIGSTKSZ AT_NOTELF diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index e027d25d2b222..baf07600f5b12 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -96,6 +96,8 @@ AT_FLAGS AT_GID AT_HWCAP AT_HWCAP2 +AT_HWCAP3 +AT_HWCAP4 AT_NCPUS AT_NOTELF AT_NULL diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 318cca51b482e..7b002718e123d 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -168,6 +168,8 @@ AT_FLAGS AT_GID AT_HWCAP AT_HWCAP2 +AT_HWCAP3 +AT_HWCAP4 AT_IGNORE AT_MINSIGSTKSZ AT_NOTELF diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index a5166d4e15c75..2b601bd203808 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -3807,6 +3807,8 @@ pub const AT_HWCAP: c_int = 25; pub const AT_HWCAP2: c_int = 26; pub const AT_USRSTACKBASE: c_int = 35; pub const AT_USRSTACKLIM: c_int = 36; +pub const AT_HWCAP3: c_int = 38; +pub const AT_HWCAP4: c_int = 39; pub const TABDLY: crate::tcflag_t = 0x00000004; pub const TAB0: crate::tcflag_t = 0x00000000; diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index fbd8ac2f87cfc..fa2fd4e63dc55 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3508,6 +3508,8 @@ pub const AT_RANDOM: c_ulong = 25; pub const AT_HWCAP2: c_ulong = 26; pub const AT_RSEQ_FEATURE_SIZE: c_ulong = 27; pub const AT_RSEQ_ALIGN: c_ulong = 28; +pub const AT_HWCAP3: c_ulong = 29; +pub const AT_HWCAP4: c_ulong = 30; pub const AT_EXECFN: c_ulong = 31; pub const AT_MINSIGSTKSZ: c_ulong = 51; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 14401077479ed..8b8711d8ae960 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2544,6 +2544,8 @@ pub const AT_BASE_PLATFORM: c_ulong = 24; pub const AT_RANDOM: c_ulong = 25; pub const AT_HWCAP2: c_ulong = 26; +pub const AT_HWCAP3: c_ulong = 29; +pub const AT_HWCAP4: c_ulong = 30; pub const AT_EXECFN: c_ulong = 31; // defined in arch//include/uapi/asm/auxvec.h but has the same value From a44722ff04bbd101e4357c9cf163ed3d638c39d0 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Tue, 14 Oct 2025 20:44:03 +0900 Subject: [PATCH 0874/1228] Ignore false-positive warning (backport ) (cherry picked from commit 615224fb019c6ba3cfa79d19ad7b115063c25bb6) --- libc-test/tests/cmsg.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/libc-test/tests/cmsg.rs b/libc-test/tests/cmsg.rs index bb832f1ba3d54..893dd56dba266 100644 --- a/libc-test/tests/cmsg.rs +++ b/libc-test/tests/cmsg.rs @@ -29,6 +29,7 @@ mod t { } #[test] + #[allow(unused_assignments)] // false-positive: https://github.com/rust-lang/rust/issues/147648 fn test_cmsg_firsthdr() { let mut buf = [0u8; 256]; let mut mhdr: msghdr = unsafe { mem::zeroed() }; From b7daada349ab2a7c68dc0e69a6c96b3213e00d64 Mon Sep 17 00:00:00 2001 From: mounten Date: Sat, 20 Sep 2025 14:21:45 +0200 Subject: [PATCH 0875/1228] added cfmakeraw definition for target_os = nto (backport ) (cherry picked from commit 8423131190d02ba25e7d2336178f71ca1eabbd1a) --- src/unix/mod.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 6ba5d87de7ca0..c734838f88a47 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1825,16 +1825,12 @@ cfg_if! { } cfg_if! { - if #[cfg(target_os = "aix")] { + if #[cfg(any(target_os = "aix", target_os = "nto"))] { extern "C" { pub fn cfmakeraw(termios: *mut crate::termios) -> c_int; pub fn cfsetspeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; } - } else if #[cfg(not(any( - target_os = "solaris", - target_os = "illumos", - target_os = "nto", - )))] { + } else if #[cfg(not(any(target_os = "solaris", target_os = "illumos",)))] { extern "C" { pub fn cfmakeraw(termios: *mut crate::termios); pub fn cfsetspeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; From 3bba75f5a9e539439ffe826ece093e97a13c563c Mon Sep 17 00:00:00 2001 From: mounten Date: Mon, 22 Sep 2025 19:55:47 +0200 Subject: [PATCH 0876/1228] added cfsetspeed definition for target_os = nto and target_env = nto80 (backport ) (cherry picked from commit 6e1b073e3e4032d4bf7ade404a347cf9f82e08cb) --- src/unix/mod.rs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index c734838f88a47..2473a8ff7462d 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1828,11 +1828,28 @@ cfg_if! { if #[cfg(any(target_os = "aix", target_os = "nto"))] { extern "C" { pub fn cfmakeraw(termios: *mut crate::termios) -> c_int; - pub fn cfsetspeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; } } else if #[cfg(not(any(target_os = "solaris", target_os = "illumos",)))] { extern "C" { pub fn cfmakeraw(termios: *mut crate::termios); + } + } +} + +cfg_if! { + if #[cfg(any( + target_os = "aix", + all(target_os = "nto", target_env = "nto80") + ))] { + extern "C" { + pub fn cfsetspeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; + } + } else if #[cfg(not(any( + target_os = "solaris", + target_os = "illumos", + target_os = "nto" + )))] { + extern "C" { pub fn cfsetspeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; } } From 427a2cc13977873cca5b7bf58c22abf333a7af82 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Tue, 14 Oct 2025 07:23:08 -0700 Subject: [PATCH 0877/1228] Add more wasi definitions for libstd This commit fills out definitions in libc for rust-lang/rust#147572 notably filling out some fs-related functions as well as many pthread-related functions. The pthread-related functions were not available originally with wasi-libc but nowadays are stubs for single-threaded behavior. The goal is to make wasi targets more "unix like" in libstd and have less WASI-specific code. (backport ) (cherry picked from commit 702efb9616289032ceed5a481a03709506591112) --- libc-test/build.rs | 1 + src/wasi/mod.rs | 116 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 117 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index bebc0432a77c0..6adc1dcff0a87 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1769,6 +1769,7 @@ fn test_wasi(target: &str) { [p2]: "netinet/in.h", [p2]: "netinet/tcp.h", "poll.h", + "pthread.h", "sched.h", "stdbool.h", "stddef.h", diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index bb3b729548780..f6253283e53c3 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -33,6 +33,10 @@ pub type wchar_t = i32; pub type nl_item = c_int; pub type __wasi_rights_t = u64; pub type locale_t = *mut __locale_struct; +pub type pthread_t = *mut c_void; +pub type pthread_once_t = c_int; +pub type pthread_key_t = c_uint; +pub type pthread_spinlock_t = c_int; s_no_extra_traits! { #[repr(align(16))] @@ -170,6 +174,47 @@ s! { __nfds: usize, __fds: [c_int; FD_SETSIZE as usize], } + + #[repr(align(4))] + pub struct pthread_attr_t { + size: [u8; 36], + } + + pub struct pthread_mutexattr_t { + __attr: c_uint, + } + + pub struct pthread_condattr_t { + __attr: c_uint, + } + + pub struct pthread_barrierattr_t { + __attr: c_uint, + } + + pub struct pthread_rwlockattr_t { + __attr: [c_uint; 2], + } + + #[repr(align(4))] + pub struct pthread_cond_t { + size: [u8; 48], + } + + #[repr(align(4))] + pub struct pthread_mutex_t { + size: [u8; 24], + } + + #[repr(align(4))] + pub struct pthread_rwlock_t { + size: [u8; 32], + } + + #[repr(align(4))] + pub struct pthread_barrier_t { + size: [u8; 20], + } } // Declare dirent outside of s! so that it doesn't implement Copy, Eq, Hash, @@ -262,7 +307,9 @@ pub const DT_BLK: u8 = 1; pub const DT_CHR: u8 = 2; pub const DT_DIR: u8 = 3; pub const DT_REG: u8 = 4; +pub const DT_FIFO: u8 = 6; pub const DT_LNK: u8 = 7; +pub const DT_SOCK: u8 = 20; pub const FIONREAD: c_int = 1; pub const FIONBIO: c_int = 2; pub const F_OK: c_int = 0; @@ -438,6 +485,9 @@ pub const NOEXPR: crate::nl_item = 0x50001; pub const YESSTR: crate::nl_item = 0x50002; pub const NOSTR: crate::nl_item = 0x50003; +pub const PTHREAD_STACK_MIN: usize = 2048; +pub const TIMER_ABSTIME: c_int = 1; + f! { pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool { let set = &*set; @@ -843,6 +893,72 @@ extern "C" { pub fn arc4random_uniform(a: u32) -> u32; pub fn __errno_location() -> *mut c_int; + + pub fn chmod(path: *const c_char, mode: mode_t) -> c_int; + pub fn fchmod(fd: c_int, mode: mode_t) -> c_int; + pub fn realpath(pathname: *const c_char, resolved: *mut c_char) -> *mut c_char; + + pub fn pthread_self() -> pthread_t; + pub fn pthread_create( + native: *mut pthread_t, + attr: *const pthread_attr_t, + f: extern "C" fn(*mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; + pub fn pthread_equal(t1: pthread_t, t2: pthread_t) -> c_int; + pub fn pthread_join(native: pthread_t, value: *mut *mut c_void) -> c_int; + 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; + + pub fn pthread_key_create( + key: *mut pthread_key_t, + dtor: Option, + ) -> c_int; + pub fn pthread_key_delete(key: pthread_key_t) -> c_int; + pub fn pthread_getspecific(key: pthread_key_t) -> *mut c_void; + pub fn pthread_setspecific(key: pthread_key_t, value: *const c_void) -> c_int; + pub fn pthread_mutex_init( + lock: *mut pthread_mutex_t, + attr: *const pthread_mutexattr_t, + ) -> c_int; + pub fn pthread_mutex_destroy(lock: *mut pthread_mutex_t) -> c_int; + pub fn pthread_mutex_lock(lock: *mut pthread_mutex_t) -> c_int; + pub fn pthread_mutex_trylock(lock: *mut pthread_mutex_t) -> c_int; + pub fn pthread_mutex_unlock(lock: *mut pthread_mutex_t) -> c_int; + + pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> c_int; + pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> c_int; + pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, _type: c_int) -> c_int; + + pub fn pthread_cond_init(cond: *mut pthread_cond_t, attr: *const pthread_condattr_t) -> c_int; + pub fn pthread_cond_wait(cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t) -> c_int; + pub fn pthread_cond_timedwait( + cond: *mut pthread_cond_t, + lock: *mut pthread_mutex_t, + abstime: *const timespec, + ) -> c_int; + pub fn pthread_cond_signal(cond: *mut pthread_cond_t) -> c_int; + pub fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> c_int; + pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> c_int; + pub fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> c_int; + pub fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> c_int; + + pub fn pthread_rwlock_init( + lock: *mut pthread_rwlock_t, + attr: *const pthread_rwlockattr_t, + ) -> c_int; + pub fn pthread_rwlock_destroy(lock: *mut pthread_rwlock_t) -> c_int; + pub fn pthread_rwlock_rdlock(lock: *mut pthread_rwlock_t) -> c_int; + pub fn pthread_rwlock_tryrdlock(lock: *mut pthread_rwlock_t) -> c_int; + pub fn pthread_rwlock_wrlock(lock: *mut pthread_rwlock_t) -> c_int; + pub fn pthread_rwlock_trywrlock(lock: *mut pthread_rwlock_t) -> c_int; + 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; } cfg_if! { From 37972ffc611a42747f8699d7e695111dad5f41f8 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Tue, 14 Oct 2025 07:48:25 -0700 Subject: [PATCH 0878/1228] Update wasi-sdk used in testing (backport ) (cherry picked from commit 3fb070e707b3f77f67270d594f0eb00e0b646712) --- ci/wasi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/wasi.sh b/ci/wasi.sh index 4928681b0a270..19aa57e608542 100755 --- a/ci/wasi.sh +++ b/ci/wasi.sh @@ -12,7 +12,7 @@ apt-get install -y --no-install-recommends \ # Wasmtime is used to execute tests and wasi-sdk is used to compile tests. # Download appropriate versions here and configure various flags below. wasmtime=35.0.0 -wasi_sdk=25 +wasi_sdk=27 curl -L https://github.com/bytecodealliance/wasmtime/releases/download/v$wasmtime/wasmtime-v$wasmtime-x86_64-linux.tar.xz | tar xJf - From 77938351e771f833744385b61b7860c393cac31f Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Wed, 15 Oct 2025 07:46:56 -0700 Subject: [PATCH 0879/1228] More closely align pthread type reprs (backport ) (cherry picked from commit 06a5ca218d6fa4a69b01a27c4c96febab9c1d608) --- src/wasi/mod.rs | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index f6253283e53c3..d6979dd857318 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -175,9 +175,8 @@ s! { __fds: [c_int; FD_SETSIZE as usize], } - #[repr(align(4))] pub struct pthread_attr_t { - size: [u8; 36], + size: [c_long; 9], } pub struct pthread_mutexattr_t { @@ -196,24 +195,20 @@ s! { __attr: [c_uint; 2], } - #[repr(align(4))] pub struct pthread_cond_t { - size: [u8; 48], + size: [*mut c_void; 12], } - #[repr(align(4))] pub struct pthread_mutex_t { - size: [u8; 24], + size: [*mut c_void; 6], } - #[repr(align(4))] pub struct pthread_rwlock_t { - size: [u8; 32], + size: [*mut c_void; 8], } - #[repr(align(4))] pub struct pthread_barrier_t { - size: [u8; 20], + size: [*mut c_void; 5], } } From 352ad0100c1a5362f9bb2185ac20c892f3ae113c Mon Sep 17 00:00:00 2001 From: Johannes Altmanninger Date: Fri, 17 Oct 2025 15:07:05 +0200 Subject: [PATCH 0880/1228] Remove rogue definition of SIGSTKFLT for mips32-linux-musl Linux' arch/mips/include/uapi/asm/signal.h does not define SIGSTKFLT. For one MIPS architecture, we define it as 7 for unknown reasons, but 7 is already SIGEMT. This is confusing and probably useless. Remove it. [ squashed JohnTitor's commit deleting the changelog entry - Trevor ] (backport ) (cherry picked from commit bf0ea47dda26b3356f1c8c8716c7a70dba2a03a5) --- src/unix/linux_like/linux/musl/b32/mips/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index a623ff9a9f757..7564dcf612f9c 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -363,7 +363,6 @@ pub const SIGTSTP: c_int = 24; pub const SIGURG: c_int = 21; pub const SIGIO: c_int = 22; pub const SIGSYS: c_int = 12; -pub const SIGSTKFLT: c_int = 7; pub const SIGPOLL: c_int = crate::SIGIO; pub const SIGPWR: c_int = 19; pub const SIG_SETMASK: c_int = 3; From c9d1f54eadcd28d340ccb5df31ecc465bf7db7f5 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 3 Nov 2025 04:24:36 -0600 Subject: [PATCH 0881/1228] test: Upgrade to the latest `ctest` beta release Pick up the fixes that have been added on `main`. --- Cargo.lock | 67 +++++++++++++++++++++++++++----------------- libc-test/Cargo.toml | 2 +- 2 files changed, 43 insertions(+), 26 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 46bd7a6704f01..512d405c94c07 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -80,10 +80,11 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.32" +version = "1.2.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2352e5597e9c544d5e6d9c95190d5d27738ade584fa8db0a16e130e5c2b5296e" +checksum = "37521ac7aabe3d13122dc382493e20c9416f299d2ccd5b3a5340a2570cdeb0f3" dependencies = [ + "find-msvc-tools", "shlex", ] @@ -99,9 +100,9 @@ version = "0.1.0" [[package]] name = "ctest" -version = "0.5.0-beta.0" +version = "0.5.0-beta.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af3dc06650f831a3845f2493213c01ebe1dc1cd7bea271d26766a38dc6e72a3f" +checksum = "dc1a85629f6b82fee991771a8e3b927a8a082e12e4bb48b64a43e55476d27b10" dependencies = [ "askama", "cc", @@ -111,6 +112,12 @@ dependencies = [ "thiserror", ] +[[package]] +name = "find-msvc-tools" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" + [[package]] name = "glob" version = "0.3.2" @@ -137,7 +144,7 @@ dependencies = [ "annotate-snippets", "cc", "cfg-if", - "ctest 0.5.0-beta.0", + "ctest 0.5.0-beta.1", "glob", "libc", "proc-macro2", @@ -147,9 +154,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.5" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "percent-encoding" @@ -159,18 +166,18 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "proc-macro2" -version = "1.0.101" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.40" +version = "1.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" dependencies = [ "proc-macro2", ] @@ -224,18 +231,27 @@ checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "serde" -version = "1.0.219" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_core" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -244,14 +260,15 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.142" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] @@ -262,9 +279,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "syn" -version = "2.0.104" +version = "2.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" +checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" dependencies = [ "proc-macro2", "quote", @@ -273,18 +290,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", @@ -293,9 +310,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-width" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 4ae4a3cd2056f..9ebac5ba11808 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -21,7 +21,7 @@ annotate-snippets = { version = "0.11.5", features = ["testing-colors"] } [build-dependencies] cc = "1.2.29" # Use the in-tree `ctest` from the `main` branch via crates.io -ctest = "0.5.0-beta.0" +ctest = "0.5.0-beta.1" regex = "1.11.1" [features] From d089c542a73378b79509303dc129b6cf3cf8e93c Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Mon, 15 Sep 2025 16:58:44 -0400 Subject: [PATCH 0882/1228] Add 'ucontext_t' and related structures and functions. (backport ) (cherry picked from commit 5ab43ebf0fc1c2b13d594e51d084b08e7760cd7a) --- libc-test/semver/linux-gnu-powerpc64.txt | 15 ++++ .../linux_like/linux/gnu/b64/powerpc64/mod.rs | 84 +++++++++++++++++++ 2 files changed, 99 insertions(+) diff --git a/libc-test/semver/linux-gnu-powerpc64.txt b/libc-test/semver/linux-gnu-powerpc64.txt index 148688c5ff20d..46aa2db2cfdd3 100644 --- a/libc-test/semver/linux-gnu-powerpc64.txt +++ b/libc-test/semver/linux-gnu-powerpc64.txt @@ -10,5 +10,20 @@ KEYCTL_CAPS0_RESTRICT_KEYRING KEYCTL_CAPS1_NS_KEYRING_NAME KEYCTL_CAPS1_NS_KEY_TAG KEYCTL_MOVE +__NFPREG +__NGREG +__NVRREG +clone_args +fpregset_t +getcontext +gregset_t +makecontext max_align_t +mcontext_t +pt_regs +setcontext +swapcontext sysctl +ucontext_t +vrregset_t +vscr_t diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index 047efe55b1a38..00e47647a44d8 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -9,6 +9,8 @@ pub type blksize_t = i64; pub type suseconds_t = i64; pub type __u64 = c_ulong; pub type __s64 = c_long; +pub type gregset_t = [c_ulong; __NGREG]; +pub type fpregset_t = [c_ulong; __NFPREG]; s! { // FIXME(1.0): This should not implement `PartialEq` @@ -191,6 +193,21 @@ s! { pub ss_flags: c_int, pub ss_size: size_t, } + + #[repr(align(8))] + pub struct clone_args { + pub flags: c_ulonglong, + pub pidfd: c_ulonglong, + pub child_tid: c_ulonglong, + pub parent_tid: c_ulonglong, + pub exit_signal: c_ulonglong, + pub stack: c_ulonglong, + pub stack_size: c_ulonglong, + pub tls: c_ulonglong, + pub set_tid: c_ulonglong, + pub set_tid_size: c_ulonglong, + pub cgroup: c_ulonglong, + } } s_no_extra_traits! { @@ -198,6 +215,64 @@ s_no_extra_traits! { pub struct max_align_t { priv_: [i64; 4], } + + pub struct ucontext_t { + pub uc_flags: c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: crate::stack_t, + pub uc_sigmask: crate::sigset_t, + pub uc_mcontext: mcontext_t, + } + + pub struct pt_regs { + pub gpr: [c_ulong; 32], + pub nip: c_ulong, + pub msr: c_ulong, + pub orig_gpr3: c_ulong, + pub ctr: c_ulong, + pub link: c_ulong, + pub xer: c_ulong, + pub ccr: c_ulong, + pub softe: c_ulong, + pub trap: c_ulong, + pub dar: c_ulong, + pub dsisr: c_ulong, + pub result: c_ulong, + } + + pub struct mcontext_t { + __glibc_reserved: [c_ulong; 4], + pub signal: c_int, + __pad0: c_int, + pub handler: c_ulong, + pub oldmask: c_ulong, + pub regs: *mut pt_regs, + pub gp_regs: crate::gregset_t, + pub fp_regs: crate::fpregset_t, + pub v_regs: *mut vrregset_t, + pub vmx_reserve: [c_long; __NVRREG + __NVRREG + 1], + } + + #[repr(align(16))] + pub struct vrregset_t { + pub vrregs: [[c_uint; 4]; 32], + pub vscr: vscr_t, + pub vrsave: c_uint, + __pad: [c_uint; 3], + } + + #[repr(align(4))] + pub struct vscr_t { + #[cfg(target_endian = "big")] + __pad: [c_uint; 3], + #[cfg(target_endian = "big")] + pub vscr_word: c_uint, + + #[cfg(target_endian = "little")] + pub vscr_word: c_uint, + #[cfg(target_endian = "little")] + __pad: [c_uint; 3], + } } pub const POSIX_FADV_DONTNEED: c_int = 4; @@ -210,6 +285,10 @@ pub const VEOF: usize = 4; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; +pub const __NGREG: usize = 48; +pub const __NFPREG: usize = 33; +pub const __NVRREG: usize = 34; + pub const O_APPEND: c_int = 1024; pub const O_CREAT: c_int = 64; pub const O_EXCL: c_int = 128; @@ -971,4 +1050,9 @@ extern "C" { newp: *mut c_void, newlen: size_t, ) -> c_int; + + pub fn getcontext(ucp: *mut ucontext_t) -> c_int; + pub fn setcontext(ucp: *const ucontext_t) -> c_int; + pub fn swapcontext(oucp: *mut ucontext_t, ucp: *const ucontext_t) -> c_int; + pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: c_int, ...); } From 61734d554e315ad1fa943d5f534130f97d4d83b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Wed, 2 Jul 2025 17:21:51 +0000 Subject: [PATCH 0883/1228] Move keyctl to new/linux_uapi These constants are entirely defined in the Linux UAPI. https://elixir.bootlin.com/linux/v6.16.9/source/include/uapi/linux/keyctl.h (backport ) (cherry picked from commit 2bf1f66ea4a4c0061bed58efe6fc6d5891a8cb0a) --- src/new/linux_uapi/linux/keyctl.rs | 70 ++++++++++++++++++++++++++++ src/new/linux_uapi/linux/mod.rs | 2 + src/unix/linux_like/linux/gnu/mod.rs | 36 -------------- src/unix/linux_like/linux/mod.rs | 44 ----------------- 4 files changed, 72 insertions(+), 80 deletions(-) create mode 100644 src/new/linux_uapi/linux/keyctl.rs diff --git a/src/new/linux_uapi/linux/keyctl.rs b/src/new/linux_uapi/linux/keyctl.rs new file mode 100644 index 0000000000000..2c86df39e190b --- /dev/null +++ b/src/new/linux_uapi/linux/keyctl.rs @@ -0,0 +1,70 @@ +//! Header: `uapi/linux/keyctl.h` + +// linux/keyctl.h +pub const KEY_SPEC_THREAD_KEYRING: i32 = -1; +pub const KEY_SPEC_PROCESS_KEYRING: i32 = -2; +pub const KEY_SPEC_SESSION_KEYRING: i32 = -3; +pub const KEY_SPEC_USER_KEYRING: i32 = -4; +pub const KEY_SPEC_USER_SESSION_KEYRING: i32 = -5; +pub const KEY_SPEC_GROUP_KEYRING: i32 = -6; +pub const KEY_SPEC_REQKEY_AUTH_KEY: i32 = -7; +pub const KEY_SPEC_REQUESTOR_KEYRING: i32 = -8; + +pub const KEY_REQKEY_DEFL_NO_CHANGE: i32 = -1; +pub const KEY_REQKEY_DEFL_DEFAULT: i32 = 0; +pub const KEY_REQKEY_DEFL_THREAD_KEYRING: i32 = 1; +pub const KEY_REQKEY_DEFL_PROCESS_KEYRING: i32 = 2; +pub const KEY_REQKEY_DEFL_SESSION_KEYRING: i32 = 3; +pub const KEY_REQKEY_DEFL_USER_KEYRING: i32 = 4; +pub const KEY_REQKEY_DEFL_USER_SESSION_KEYRING: i32 = 5; +pub const KEY_REQKEY_DEFL_GROUP_KEYRING: i32 = 6; +pub const KEY_REQKEY_DEFL_REQUESTOR_KEYRING: i32 = 7; + +pub const KEYCTL_GET_KEYRING_ID: u32 = 0; +pub const KEYCTL_JOIN_SESSION_KEYRING: u32 = 1; +pub const KEYCTL_UPDATE: u32 = 2; +pub const KEYCTL_REVOKE: u32 = 3; +pub const KEYCTL_CHOWN: u32 = 4; +pub const KEYCTL_SETPERM: u32 = 5; +pub const KEYCTL_DESCRIBE: u32 = 6; +pub const KEYCTL_CLEAR: u32 = 7; +pub const KEYCTL_LINK: u32 = 8; +pub const KEYCTL_UNLINK: u32 = 9; +pub const KEYCTL_SEARCH: u32 = 10; +pub const KEYCTL_READ: u32 = 11; +pub const KEYCTL_INSTANTIATE: u32 = 12; +pub const KEYCTL_NEGATE: u32 = 13; +pub const KEYCTL_SET_REQKEY_KEYRING: u32 = 14; +pub const KEYCTL_SET_TIMEOUT: u32 = 15; +pub const KEYCTL_ASSUME_AUTHORITY: u32 = 16; +pub const KEYCTL_GET_SECURITY: u32 = 17; +pub const KEYCTL_SESSION_TO_PARENT: u32 = 18; +pub const KEYCTL_REJECT: u32 = 19; +pub const KEYCTL_INSTANTIATE_IOV: u32 = 20; +pub const KEYCTL_INVALIDATE: u32 = 21; +pub const KEYCTL_GET_PERSISTENT: u32 = 22; +pub const KEYCTL_DH_COMPUTE: u32 = 23; +pub const KEYCTL_PKEY_QUERY: u32 = 24; +pub const KEYCTL_PKEY_ENCRYPT: u32 = 25; +pub const KEYCTL_PKEY_DECRYPT: u32 = 26; +pub const KEYCTL_PKEY_SIGN: u32 = 27; +pub const KEYCTL_PKEY_VERIFY: u32 = 28; +pub const KEYCTL_RESTRICT_KEYRING: u32 = 29; +pub const KEYCTL_MOVE: u32 = 30; +pub const KEYCTL_CAPABILITIES: u32 = 31; + +pub const KEYCTL_SUPPORTS_ENCRYPT: u32 = 0x01; +pub const KEYCTL_SUPPORTS_DECRYPT: u32 = 0x02; +pub const KEYCTL_SUPPORTS_SIGN: u32 = 0x04; +pub const KEYCTL_SUPPORTS_VERIFY: u32 = 0x08; + +pub const KEYCTL_CAPS0_CAPABILITIES: u32 = 0x01; +pub const KEYCTL_CAPS0_PERSISTENT_KEYRINGS: u32 = 0x02; +pub const KEYCTL_CAPS0_DIFFIE_HELLMAN: u32 = 0x04; +pub const KEYCTL_CAPS0_PUBLIC_KEY: u32 = 0x08; +pub const KEYCTL_CAPS0_BIG_KEY: u32 = 0x10; +pub const KEYCTL_CAPS0_INVALIDATE: u32 = 0x20; +pub const KEYCTL_CAPS0_RESTRICT_KEYRING: u32 = 0x40; +pub const KEYCTL_CAPS0_MOVE: u32 = 0x80; +pub const KEYCTL_CAPS1_NS_KEYRING_NAME: u32 = 0x01; +pub const KEYCTL_CAPS1_NS_KEY_TAG: u32 = 0x02; diff --git a/src/new/linux_uapi/linux/mod.rs b/src/new/linux_uapi/linux/mod.rs index 4a9c04d6396b1..e264892063807 100644 --- a/src/new/linux_uapi/linux/mod.rs +++ b/src/new/linux_uapi/linux/mod.rs @@ -2,3 +2,5 @@ pub(crate) mod can; pub use can::*; +pub(crate) mod keyctl; +pub use keyctl::*; diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 17d11d27a4dea..afd9fe3396180 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -892,42 +892,6 @@ pub const CLONE_NEWTIME: c_int = 0x80; pub const CLONE_CLEAR_SIGHAND: c_int = 0x100000000; pub const CLONE_INTO_CGROUP: c_int = 0x200000000; -// linux/keyctl.h -pub const KEYCTL_DH_COMPUTE: u32 = 23; -pub const KEYCTL_PKEY_QUERY: u32 = 24; -pub const KEYCTL_PKEY_ENCRYPT: u32 = 25; -pub const KEYCTL_PKEY_DECRYPT: u32 = 26; -pub const KEYCTL_PKEY_SIGN: u32 = 27; -pub const KEYCTL_PKEY_VERIFY: u32 = 28; -pub const KEYCTL_RESTRICT_KEYRING: u32 = 29; - -pub const KEYCTL_SUPPORTS_ENCRYPT: u32 = 0x01; -pub const KEYCTL_SUPPORTS_DECRYPT: u32 = 0x02; -pub const KEYCTL_SUPPORTS_SIGN: u32 = 0x04; -pub const KEYCTL_SUPPORTS_VERIFY: u32 = 0x08; -cfg_if! { - if #[cfg(not(any( - target_arch = "mips", - target_arch = "mips32r6", - target_arch = "mips64", - target_arch = "mips64r6" - )))] { - pub const KEYCTL_MOVE: u32 = 30; - pub const KEYCTL_CAPABILITIES: u32 = 31; - - pub const KEYCTL_CAPS0_CAPABILITIES: u32 = 0x01; - pub const KEYCTL_CAPS0_PERSISTENT_KEYRINGS: u32 = 0x02; - pub const KEYCTL_CAPS0_DIFFIE_HELLMAN: u32 = 0x04; - pub const KEYCTL_CAPS0_PUBLIC_KEY: u32 = 0x08; - pub const KEYCTL_CAPS0_BIG_KEY: u32 = 0x10; - pub const KEYCTL_CAPS0_INVALIDATE: u32 = 0x20; - pub const KEYCTL_CAPS0_RESTRICT_KEYRING: u32 = 0x40; - pub const KEYCTL_CAPS0_MOVE: u32 = 0x80; - pub const KEYCTL_CAPS1_NS_KEYRING_NAME: u32 = 0x01; - pub const KEYCTL_CAPS1_NS_KEY_TAG: u32 = 0x02; - } -} - pub const M_MXFAST: c_int = 1; pub const M_NLBLKS: c_int = 2; pub const M_GRAIN: c_int = 3; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 8b8711d8ae960..a84ff4ef30f60 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -4823,50 +4823,6 @@ const fn issecure_mask(x: c_int) -> c_int { 1 << x } -// linux/keyctl.h -pub const KEY_SPEC_THREAD_KEYRING: i32 = -1; -pub const KEY_SPEC_PROCESS_KEYRING: i32 = -2; -pub const KEY_SPEC_SESSION_KEYRING: i32 = -3; -pub const KEY_SPEC_USER_KEYRING: i32 = -4; -pub const KEY_SPEC_USER_SESSION_KEYRING: i32 = -5; -pub const KEY_SPEC_GROUP_KEYRING: i32 = -6; -pub const KEY_SPEC_REQKEY_AUTH_KEY: i32 = -7; -pub const KEY_SPEC_REQUESTOR_KEYRING: i32 = -8; - -pub const KEY_REQKEY_DEFL_NO_CHANGE: i32 = -1; -pub const KEY_REQKEY_DEFL_DEFAULT: i32 = 0; -pub const KEY_REQKEY_DEFL_THREAD_KEYRING: i32 = 1; -pub const KEY_REQKEY_DEFL_PROCESS_KEYRING: i32 = 2; -pub const KEY_REQKEY_DEFL_SESSION_KEYRING: i32 = 3; -pub const KEY_REQKEY_DEFL_USER_KEYRING: i32 = 4; -pub const KEY_REQKEY_DEFL_USER_SESSION_KEYRING: i32 = 5; -pub const KEY_REQKEY_DEFL_GROUP_KEYRING: i32 = 6; -pub const KEY_REQKEY_DEFL_REQUESTOR_KEYRING: i32 = 7; - -pub const KEYCTL_GET_KEYRING_ID: u32 = 0; -pub const KEYCTL_JOIN_SESSION_KEYRING: u32 = 1; -pub const KEYCTL_UPDATE: u32 = 2; -pub const KEYCTL_REVOKE: u32 = 3; -pub const KEYCTL_CHOWN: u32 = 4; -pub const KEYCTL_SETPERM: u32 = 5; -pub const KEYCTL_DESCRIBE: u32 = 6; -pub const KEYCTL_CLEAR: u32 = 7; -pub const KEYCTL_LINK: u32 = 8; -pub const KEYCTL_UNLINK: u32 = 9; -pub const KEYCTL_SEARCH: u32 = 10; -pub const KEYCTL_READ: u32 = 11; -pub const KEYCTL_INSTANTIATE: u32 = 12; -pub const KEYCTL_NEGATE: u32 = 13; -pub const KEYCTL_SET_REQKEY_KEYRING: u32 = 14; -pub const KEYCTL_SET_TIMEOUT: u32 = 15; -pub const KEYCTL_ASSUME_AUTHORITY: u32 = 16; -pub const KEYCTL_GET_SECURITY: u32 = 17; -pub const KEYCTL_SESSION_TO_PARENT: u32 = 18; -pub const KEYCTL_REJECT: u32 = 19; -pub const KEYCTL_INSTANTIATE_IOV: u32 = 20; -pub const KEYCTL_INVALIDATE: u32 = 21; -pub const KEYCTL_GET_PERSISTENT: u32 = 22; - pub const IN_MASK_CREATE: u32 = 0x1000_0000; pub const IN_MASK_ADD: u32 = 0x2000_0000; pub const IN_ISDIR: u32 = 0x4000_0000; From 1390f59067b0c7069d1aea384f7ff9b75d9a33ef Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 21 Oct 2025 23:25:35 -0400 Subject: [PATCH 0884/1228] Enable range-diff with triagebot Link: https://forge.rust-lang.org/triagebot/range-diff.html (backport ) (cherry picked from commit 4f8507079f9c905c0abfb8167bc0f0b2e82b0e91) --- triagebot.toml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/triagebot.toml b/triagebot.toml index 6a6dfccd18e21..9b27504ffc9ae 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -18,6 +18,11 @@ check-commits = false # don't forbid links to issues # Prevents mentions in commits to avoid users being spammed [no-mentions] +# Enable comments linking to triagebot range-diff when a PR is rebased +# onto a different base commit +# Documentation at: https://forge.rust-lang.org/triagebot/range-diff.html +[range-diff] + [autolabel."A-CI"] trigger_files = [ ".cirrus.yml", From 21c66f4c4d7dd5473010391acb4f9d4ef5692152 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 22 Oct 2025 00:17:20 -0400 Subject: [PATCH 0885/1228] Assert the type created by `c_enum!` Currently there aren't any checks for what happens with `e`. Add one here. (backport ) (cherry picked from commit 1386b8c6470b31cdf2fb86f9244bc2760248a49b) --- src/macros.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/macros.rs b/src/macros.rs index 6906da6bd70da..f53f822503c24 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -372,6 +372,8 @@ macro_rules! deprecated_mach { #[cfg(test)] mod tests { + use core::any::TypeId; + use crate::types::CEnumRepr; #[test] @@ -385,6 +387,7 @@ mod tests { } } + assert_eq!(TypeId::of::(), TypeId::of::()); assert_eq!(VAR0, 0 as CEnumRepr); assert_eq!(VAR1, 1 as CEnumRepr); assert_eq!(VAR2, 2 as CEnumRepr); @@ -400,6 +403,7 @@ mod tests { } } + assert_eq!(TypeId::of::(), TypeId::of::()); assert_eq!(VAR0, 0_u16); } From 2b65e100a426c3e12b2b98436dc92cfbbfac998a Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 22 Oct 2025 00:53:05 -0400 Subject: [PATCH 0886/1228] Add support for anonymous enums to `c_enum!` C allows omitting the identifier of an enum definition in order to get the incrementing behavior without defining a new type. Add support for this to `c_enum!` by allowing `#anon` to be given as the identifier. The macro `@` matcher names are cleaned up here as well. Co-authored-by: Noa (backport ) (cherry picked from commit 02c4d661d222482ea18dc3baa149e0bed7210f3e) --- ci/style.sh | 7 ++++++ src/macros.rs | 64 ++++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 58 insertions(+), 13 deletions(-) diff --git a/ci/style.sh b/ci/style.sh index 200cc15cfa16a..c5fddbad1f8b1 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -31,6 +31,12 @@ while IFS= read -r file; do # wouldn't be correct for something like `all(any(...), ...)`). perl -pi -0777 -e 's/if #\[cfg\((.*?)\)\]/if cfg_tmp!([$1])/gms' "$file" + # The `c_enum!` macro allows anonymous enums without names, which + # isn't valid syntax. Replace it with a dummy name and an indicator + # comment on the preceding line (which is where rustfmt puts it. Also + # rust-lang/rustfmt#5464). + perl -pi -e 's/^(\s*)(.*)enum #anon\b/$1\/\* FMT-ANON-ENUM \*\/\n$1$2enum _fmt_anon/g' "$file" + # Format the file. We need to invoke `rustfmt` directly since `cargo fmt` # can't figure out the module tree with the hacks in place. failed=false @@ -39,6 +45,7 @@ while IFS= read -r file; do # Restore all changes to the files. perl -pi -e 's/fn (\w+)_fmt_tmp\(\)/$1!/g' "$file" perl -pi -0777 -e 's/cfg_tmp!\(\[(.*?)\]\)/#[cfg($1)]/gms' "$file" + perl -pi -0777 -e 's/\/\* FMT-ANON-ENUM \*\/(?:\n\s*)?(.*?)enum _fmt_anon/$1enum #anon/gms' "$file" # Defer emitting the failure until after the files get reset if [ "$failed" != "false" ]; then diff --git a/src/macros.rs b/src/macros.rs index f53f822503c24..cb00c8980f44e 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -246,36 +246,50 @@ macro_rules! e { /// unlisted values, but this is UB in Rust. This enum doesn't implement any traits, its main /// purpose is to calculate the correct enum values. /// +/// Use the magic name `#anon` if the C enum doesn't create a type. +/// /// See for more. macro_rules! c_enum { + // Matcher for multiple enums ($( $(#[repr($repr:ty)])? - pub enum $ty_name:ident { + pub enum $($ty_name:ident)? $(#$anon:ident)? { $($variant:ident $(= $value:expr)?,)+ } )+) => { - $(c_enum!(@expand; + $(c_enum!(@single; $(#[repr($repr)])? - pub enum $ty_name { + pub enum $($ty_name)? $(#$anon)? { $($variant $(= $value)?,)+ } );)+ }; - (@expand; + // Matcher for a single enum + (@single; $(#[repr($repr:ty)])? pub enum $ty_name:ident { $($variant:ident $(= $value:expr)?,)+ } ) => { pub type $ty_name = c_enum!(@ty $($repr)?); - c_enum!(@one; $ty_name; 0; $($variant $(= $value)?,)+); + c_enum!(@variant; $ty_name; 0; $($variant $(= $value)?,)+); + }; + + // Matcher for a single anonymous enum + (@single; + $(#[repr($repr:ty)])? + pub enum #anon { + $($variant:ident $(= $value:expr)?,)+ + } + ) => { + c_enum!(@variant; c_enum!(@ty $($repr)?); 0; $($variant $(= $value)?,)+); }; // Matcher for a single variant - (@one; $_ty_name:ident; $_idx:expr;) => {}; + (@variant; $_ty_name:ty; $_idx:expr;) => { /* end of the chain */ }; ( - @one; $ty_name:ident; $default_val:expr; + @variant; $ty_name:ty; $default_val:expr; $variant:ident $(= $value:expr)?, $($tail:tt)* ) => { @@ -288,7 +302,7 @@ macro_rules! c_enum { // The next value is always one more than the previous value, unless // set explicitly. - c_enum!(@one; $ty_name; $variant + 1; $($tail)*); + c_enum!(@variant; $ty_name; $variant + 1; $($tail)*); }; // Use a specific type if provided, otherwise default to `CEnumRepr` @@ -377,7 +391,7 @@ mod tests { use crate::types::CEnumRepr; #[test] - fn c_enumbasic() { + fn c_enum_basic() { // By default, variants get sequential values. c_enum! { pub enum e { @@ -385,30 +399,50 @@ mod tests { VAR1, VAR2, } + + // Also check enums that don't create a type. + pub enum #anon { + ANON0, + ANON1, + ANON2, + } } assert_eq!(TypeId::of::(), TypeId::of::()); assert_eq!(VAR0, 0 as CEnumRepr); assert_eq!(VAR1, 1 as CEnumRepr); assert_eq!(VAR2, 2 as CEnumRepr); + + assert_eq!(type_id_of_val(&ANON0), TypeId::of::()); + assert_eq!(ANON0, 0 as CEnumRepr); + assert_eq!(ANON1, 1 as CEnumRepr); + assert_eq!(ANON2, 2 as CEnumRepr); } #[test] - fn c_enumrepr() { - // By default, variants get sequential values. + fn c_enum_repr() { + // Check specifying the integer representation c_enum! { #[repr(u16)] pub enum e { VAR0, } + + #[repr(u16)] + pub enum #anon { + ANON0, + } } assert_eq!(TypeId::of::(), TypeId::of::()); assert_eq!(VAR0, 0_u16); + + assert_eq!(type_id_of_val(&ANON0), TypeId::of::()); + assert_eq!(ANON0, 0_u16); } #[test] - fn c_enumset_value() { + fn c_enum_set_value() { // Setting an explicit value resets the count. c_enum! { pub enum e { @@ -424,7 +458,7 @@ mod tests { } #[test] - fn c_enummultiple_set_value() { + fn c_enum_multiple_set_value() { // C enums always take one more than the previous value, unless set to a specific // value. Duplicates are allowed. c_enum! { @@ -447,4 +481,8 @@ mod tests { assert_eq!(VAR3_1, 3 as CEnumRepr); assert_eq!(VAR4_1, 4 as CEnumRepr); } + + fn type_id_of_val(_: &T) -> TypeId { + TypeId::of::() + } } From 4468e9bf61e695f00afc020efa714814198e8932 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Fri, 17 Oct 2025 15:44:18 +0700 Subject: [PATCH 0887/1228] redox: add setresgid and setresuid (backport ) (cherry picked from commit e4f9596986e954b76a077558a69a768e870238da) --- libc-test/semver/redox.txt | 2 ++ src/unix/redox/mod.rs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/libc-test/semver/redox.txt b/libc-test/semver/redox.txt index b7aaa5706d626..360c0fc29f21a 100644 --- a/libc-test/semver/redox.txt +++ b/libc-test/semver/redox.txt @@ -324,6 +324,8 @@ reallocarray rlim_t setgrent setpwent +setresgid +setresuid setrlimit setservent sigqueue diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 50bdaf4d4f06b..ec690cd720793 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1186,6 +1186,8 @@ extern "C" { // unistd.h pub fn pipe2(fds: *mut c_int, flags: c_int) -> c_int; pub fn getdtablesize() -> c_int; + pub fn setresgid(rgid: crate::gid_t, egid: crate::gid_t, sgid: crate::gid_t) -> c_int; + pub fn setresuid(ruid: crate::uid_t, euid: crate::uid_t, suid: crate::uid_t) -> c_int; // grp.h pub fn getgrent() -> *mut crate::group; From b31c945e53e11adc57e53d584bad50339e3d67d1 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Fri, 17 Oct 2025 16:10:53 +0700 Subject: [PATCH 0888/1228] redox: define getresgid and getresuid (backport ) (cherry picked from commit a9ddb5be4d3e286c3d74625f457c101ef8ebb5c9) --- libc-test/semver/redox.txt | 2 ++ src/unix/redox/mod.rs | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/libc-test/semver/redox.txt b/libc-test/semver/redox.txt index 360c0fc29f21a..e993475f20b4b 100644 --- a/libc-test/semver/redox.txt +++ b/libc-test/semver/redox.txt @@ -302,6 +302,8 @@ getgrouplist getline getpwent getpwnam_r +getresgid +getresuid getrlimit getrusage getservbyport diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index ec690cd720793..4db2e8d91b35e 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1186,6 +1186,16 @@ extern "C" { // unistd.h pub fn pipe2(fds: *mut c_int, flags: c_int) -> c_int; pub fn getdtablesize() -> c_int; + pub fn getresgid( + rgid: *mut crate::gid_t, + egid: *mut crate::gid_t, + sgid: *mut crate::gid_t, + ) -> c_int; + pub fn getresuid( + ruid: *mut crate::uid_t, + euid: *mut crate::uid_t, + suid: *mut crate::uid_t, + ) -> c_int; pub fn setresgid(rgid: crate::gid_t, egid: crate::gid_t, sgid: crate::gid_t) -> c_int; pub fn setresuid(ruid: crate::uid_t, euid: crate::uid_t, suid: crate::uid_t) -> c_int; From 057d463ad5448870dac99b3473cda4abc4563623 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= Date: Wed, 2 Jul 2025 17:44:45 +0000 Subject: [PATCH 0889/1228] linux-musl-s390x: Add __psw_t/fprefset_t/*context_t https://elixir.bootlin.com/musl/v1.2.5/source/arch/s390x/bits/signal.h (backport ) (cherry picked from commit c7702efc775537274f7f90578bfca92e80debb10) --- src/unix/linux_like/linux/musl/b64/s390x.rs | 25 +++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index 06cc61685b7ac..490d130c65bc4 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -84,6 +84,31 @@ s! { pub f_flags: c_uint, pub f_spare: [c_uint; 4], } + + pub struct __psw_t { + pub mask: c_ulong, + pub addr: c_ulong, + } + + pub struct fpregset_t { + pub fpc: c_uint, + pub fprs: [fpreg_t; 16], + } + + pub struct mcontext_t { + pub psw: __psw_t, + pub gregs: [c_ulong; 16], + pub aregs: [c_uint; 16], + pub fpregs: fpregset_t, + } + + pub struct ucontext_t { + pub uc_flags: c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: crate::stack_t, + pub uc_mcontext: mcontext_t, + pub uc_sigmask: crate::sigset_t, + } } s_no_extra_traits! { From 5356c368b2ee3c8073530236575218c2f3c56f12 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 23 Jul 2025 21:59:36 -0500 Subject: [PATCH 0890/1228] ci: Upgrade to the windows-2025 runner (backport ) (cherry picked from commit 22cef5bd0874ddf027d8ead52a6034ec97b0b07f) --- .github/workflows/ci.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5e074cbce02d9..947fe9c4756e2 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -34,7 +34,7 @@ jobs: name: Clippy on ${{ matrix.os }} strategy: matrix: - os: [ubuntu-24.04, macos-15, windows-2022] + os: [ubuntu-24.04, macos-15, windows-2025] runs-on: ${{ matrix.os }} timeout-minutes: 10 steps: @@ -52,7 +52,7 @@ jobs: strategy: matrix: toolchain: [stable, nightly, 1.63.0] - os: [ubuntu-24.04, macos-15, windows-2022] + os: [ubuntu-24.04, macos-15, windows-2025] include: - toolchain: beta os: ubuntu-24.04 @@ -113,19 +113,19 @@ jobs: - target: aarch64-apple-darwin os: macos-15 - target: x86_64-pc-windows-gnu - os: windows-2022 + os: windows-2025 env: ARCH_BITS: 64 ARCH: x86_64 - target: x86_64-pc-windows-msvc - os: windows-2022 + os: windows-2025 # FIXME: It currently causes segfaults. #- target: i686-pc-windows-gnu # env: # ARCH_BITS: 32 # ARCH: i686 - target: i686-pc-windows-msvc - os: windows-2022 + os: windows-2025 runs-on: ${{ matrix.os }} timeout-minutes: 25 env: From 8af0c6c6ae50215a22356a151a9f2fa10392715d Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 23 Jul 2025 22:09:53 -0500 Subject: [PATCH 0891/1228] MinGW: Set `L_tmpnam` and `TMP_MAX` to the UCRT value With the update to Windows-2025, MinGW is now using the UCRT values for `L_tmpnam` and `TMP_MAX`, which match the MSVC values. Since the values are now identical, consolidate the constants. Link: https://github.com/mingw-w64/mingw-w64/commit/c7c93e36a52fba279a18f508e7cb9a9b0b783e7e Link: https://github.com/mingw-w64/mingw-w64/commit/124ee27ee17871f560398b652c4000cdf8c3798f (backport ) (cherry picked from commit b54769a8454d4bcfbb5f7615bc071c41d9dd45b6) --- libc-test/build.rs | 2 -- src/windows/gnu/mod.rs | 3 --- src/windows/mod.rs | 3 +++ src/windows/msvc/mod.rs | 3 --- 4 files changed, 3 insertions(+), 8 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 6adc1dcff0a87..c3af35ca6db78 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -924,8 +924,6 @@ fn test_windows(target: &str) { "SIG_DFL" | "SIG_IGN" | "SIG_GET" | "SIG_SGE" | "SIG_ACK" => true, // FIXME(windows): newer windows-gnu environment on CI? "_O_OBTAIN_DIR" if gnu => true, - // FIXME: These constants have been changed since windows-2022 20251014.68.1: - "L_tmpnam" | "TMP_MAX" => true, _ => false, } }); diff --git a/src/windows/gnu/mod.rs b/src/windows/gnu/mod.rs index aee2c1efed108..7ea6a933c8e85 100644 --- a/src/windows/gnu/mod.rs +++ b/src/windows/gnu/mod.rs @@ -18,9 +18,6 @@ cfg_if! { } } -pub const L_tmpnam: c_uint = 14; -pub const TMP_MAX: c_uint = 0x7fff; - // stdio file descriptor numbers pub const STDIN_FILENO: c_int = 0; pub const STDOUT_FILENO: c_int = 1; diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 2f35af84c7493..969008c47c675 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -243,6 +243,9 @@ pub const SIG_GET: crate::sighandler_t = 2; pub const SIG_SGE: crate::sighandler_t = 3; pub const SIG_ACK: crate::sighandler_t = 4; +pub const L_tmpnam: c_uint = 260; +pub const TMP_MAX: c_uint = 0x7fff_ffff; + // DIFF(main): removed in 458c58f409 // FIXME(msrv): done by `std` starting in 1.79.0 // inline comment below appeases style checker diff --git a/src/windows/msvc/mod.rs b/src/windows/msvc/mod.rs index 5b620bc6c1afa..967df8c57f8bd 100644 --- a/src/windows/msvc/mod.rs +++ b/src/windows/msvc/mod.rs @@ -1,8 +1,5 @@ use crate::prelude::*; -pub const L_tmpnam: c_uint = 260; -pub const TMP_MAX: c_uint = 0x7fff_ffff; - // POSIX Supplement (from errno.h) // This particular error code is only currently available in msvc toolchain pub const EOTHER: c_int = 131; From 927e7046e77b6ed28f4803147d803fc024e5ca9e Mon Sep 17 00:00:00 2001 From: Noa Date: Fri, 29 Aug 2025 15:55:24 -0500 Subject: [PATCH 0892/1228] Add contents of linux/can/bcm.h (backport ) (cherry picked from commit 62a1fad1cf5cfb472f364d620076600583c97338) --- libc-test/build.rs | 8 +++-- libc-test/semver/linux.txt | 26 +++++++++++++++ src/new/linux_uapi/linux/can.rs | 2 ++ src/new/linux_uapi/linux/can/bcm.rs | 52 +++++++++++++++++++++++++++++ 4 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 src/new/linux_uapi/linux/can/bcm.rs diff --git a/libc-test/build.rs b/libc-test/build.rs index c3af35ca6db78..c829cedfa52da 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3882,6 +3882,7 @@ fn test_linux(target: &str) { headers! { cfg: [gnu]: "linux/aio_abi.h", "linux/can.h", + "linux/can/bcm.h", "linux/can/raw.h", "linux/can/j1939.h", "linux/cn_proc.h", @@ -4956,7 +4957,7 @@ fn test_linux(target: &str) { (musl && struct_ == "tcp_info" && field == "tcpi_delivery_fastopen_bitfields") || // either fsid_t or int[2] type (struct_ == "fanotify_event_info_fid" && field == "fsid") || - // `handle` is a VLA + // `handle` is a flexible array member (struct_ == "fanotify_event_info_fid" && field == "handle") || // `anonymous_1` is an anonymous union (struct_ == "ptp_perout_request" && field == "anonymous_1") || @@ -4974,7 +4975,9 @@ fn test_linux(target: &str) { // the `xsk_tx_metadata_union` field is an anonymous union (struct_ == "xsk_tx_metadata" && field == "xsk_tx_metadata_union") || // After musl 1.2.0, the type becomes `int` instead of `long`. - (old_musl && struct_ == "utmpx" && field == "ut_session") + (old_musl && struct_ == "utmpx" && field == "ut_session") || + // `frames` is a flexible array member + (struct_ == "bcm_msg_head" && field == "frames") }); cfg.skip_roundtrip(move |s| match s { @@ -5013,6 +5016,7 @@ fn test_linux(target: &str) { "inotify_event" => true, "fanotify_event_info_fid" => true, "cmsghdr" => true, + "bcm_msg_head" => true, // FIXME(linux): the call ABI of max_align_t is incorrect on these platforms: "max_align_t" if i686 || ppc64 => true, diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 7b002718e123d..f67a02f946527 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -234,6 +234,7 @@ CAN_EFF_ID_BITS CAN_EFF_MASK CAN_ERR_FLAG CAN_ERR_MASK +CAN_FD_FRAME CAN_INV_FILTER CAN_ISOTP CAN_J1939 @@ -2711,6 +2712,17 @@ RT_TOS RUSAGE_CHILDREN RUSAGE_SELF RUSAGE_THREAD +RX_ANNOUNCE_RESUME +RX_CHANGED +RX_CHECK_DLC +RX_DELETE +RX_FILTER_ID +RX_NO_AUTOTIMER +RX_READ +RX_RTR_FRAME +RX_SETUP +RX_STATUS +RX_TIMEOUT SCHED_BATCH SCHED_FIFO SCHED_IDLE @@ -2844,6 +2856,7 @@ SEM_STAT SEM_STAT_ANY SEM_UNDO SETALL +SETTIMER SETVAL SFD_CLOEXEC SFD_NONBLOCK @@ -3088,6 +3101,7 @@ SPLICE_F_MOVE SPLICE_F_NONBLOCK SS_DISABLE SS_ONSTACK +STARTTIMER STICKY_TIMEOUTS ST_APPEND ST_IMMUTABLE @@ -3576,6 +3590,16 @@ TUN_TAP_DEV TUN_TUN_DEV TUN_TX_TIMESTAMP TUN_TYPE_MASK +TX_ANNOUNCE +TX_COUNTEVT +TX_CP_CAN_ID +TX_DELETE +TX_EXPIRED +TX_READ +TX_RESET_MULTI_IDX +TX_SEND +TX_SETUP +TX_STATUS T_FMT T_FMT_AMPM UDP_CORK @@ -3859,6 +3883,8 @@ arpd_request arphdr arpreq arpreq_old +bcm_msg_head +bcm_timeval blkcnt64_t brk bsearch diff --git a/src/new/linux_uapi/linux/can.rs b/src/new/linux_uapi/linux/can.rs index b9479a63bacea..ac1c459fb8a13 100644 --- a/src/new/linux_uapi/linux/can.rs +++ b/src/new/linux_uapi/linux/can.rs @@ -1,8 +1,10 @@ //! Header: `uapi/linux/can.h` +pub(crate) mod bcm; pub(crate) mod j1939; pub(crate) mod raw; +pub use bcm::*; pub use j1939::*; pub use raw::*; diff --git a/src/new/linux_uapi/linux/can/bcm.rs b/src/new/linux_uapi/linux/can/bcm.rs new file mode 100644 index 0000000000000..2cdeb399b31f3 --- /dev/null +++ b/src/new/linux_uapi/linux/can/bcm.rs @@ -0,0 +1,52 @@ +//! `linux/can/bcm.h` + +pub use crate::linux::can::*; + +s! { + pub struct bcm_timeval { + pub tv_sec: c_long, + pub tv_usec: c_long, + } + + pub struct bcm_msg_head { + pub opcode: u32, + pub flags: u32, + pub count: u32, + pub ival1: bcm_timeval, + pub ival2: bcm_timeval, + pub can_id: canid_t, + pub nframes: u32, + pub frames: [can_frame; 0], + } +} + +c_enum! { + #[repr(u32)] + pub enum #anon { + TX_SETUP = 1, + TX_DELETE, + TX_READ, + TX_SEND, + RX_SETUP, + RX_DELETE, + RX_READ, + TX_STATUS, + TX_EXPIRED, + RX_STATUS, + RX_TIMEOUT, + RX_CHANGED, + } +} + +pub const SETTIMER: u32 = 0x0001; +pub const STARTTIMER: u32 = 0x0002; +pub const TX_COUNTEVT: u32 = 0x0004; +pub const TX_ANNOUNCE: u32 = 0x0008; +pub const TX_CP_CAN_ID: u32 = 0x0010; +pub const RX_FILTER_ID: u32 = 0x0020; +pub const RX_CHECK_DLC: u32 = 0x0040; +pub const RX_NO_AUTOTIMER: u32 = 0x0080; +pub const RX_ANNOUNCE_RESUME: u32 = 0x0100; +pub const TX_RESET_MULTI_IDX: u32 = 0x0200; +pub const RX_RTR_FRAME: u32 = 0x0400; +pub const CAN_FD_FRAME: u32 = 0x0800; From 8db5599a42e1695eca4888c9d6872e297731e95a Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Fri, 17 Oct 2025 14:20:22 -0400 Subject: [PATCH 0893/1228] Declare field 'tv_nsec' of structure 'timespec' as 'i32' in both 32-bit and 64-bit modes for AIX. (backport ) (cherry picked from commit 96eb752b067e8acc02abebba9a3aa980e2687c0f) --- libc-test/build.rs | 6 ++++++ src/unix/aix/mod.rs | 9 +++++++++ src/unix/mod.rs | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index c829cedfa52da..fc2953da91c75 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -5761,6 +5761,12 @@ fn test_aix(target: &str) { // The field 'data' is actually a unnamed union in the AIX header. "pollfd_ext" if field.ident() == "data" => true, + // On AIX, declares 'tv_nsec' as 'long', but the + // underlying system calls return a 32-bit value in both 32-bit + // and 64-bit modes. In the 'libc' crate it is declared as 'i32' + // to match the system call. Skip this field. + "timespec" if field.ident() == "tv_nsec" => true, + _ => false, } }); diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index b6d1af52d133c..05ff2fb082900 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -263,6 +263,15 @@ s! { pub tv_nsec: c_int, } + // On AIX, declares 'tv_nsec' as 'long', but the underlying + // system calls return a 4-byte value in both 32-bit and 64-bit modes. + // It is declared as 'c_int' here to avoid using the other undefined 4 + // bytes in the 64-bit mode. + pub struct timespec { + pub tv_sec: time_t, + pub tv_nsec: c_int, + } + pub struct statfs64 { pub f_version: c_int, pub f_type: c_int, diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 2473a8ff7462d..cb0b687a5c858 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -68,7 +68,7 @@ s! { // linux x32 compatibility // See https://sourceware.org/bugzilla/show_bug.cgi?id=16437 - #[cfg(not(target_env = "gnu"))] + #[cfg(all(not(target_env = "gnu"), not(target_os = "aix")))] pub struct timespec { pub tv_sec: time_t, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] From 2377184c0f09e3865a76141cf49babc9ea337d87 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 22 Oct 2025 17:37:14 -0400 Subject: [PATCH 0894/1228] test: linux: Unskip `statx` and `statx_timestamp` tests The mentioned issues with `#include` no longer seem to happen, so start testing these again. (backport ) (cherry picked from commit 758dc77437ccef55a6901e12121c6b6037afdcf0) --- libc-test/build.rs | 6 ------ 1 file changed, 6 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index fc2953da91c75..5f7bca66d3bcd 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4134,12 +4134,6 @@ fn test_linux(target: &str) { // glibcs (see https://github.com/rust-lang/libc/issues/1410) "ucontext_t" if gnu => true, - // FIXME(linux): Somehow we cannot include headers correctly in glibc 2.30. - // So let's ignore for now and re-visit later. - // Probably related: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91085 - "statx" => true, - "statx_timestamp" => true, - // On Linux, the type of `ut_exit` field of struct `utmpx` // can be an anonymous struct, so an extra struct, // which is absent in musl, has to be defined. From 900ab41cbb97b3a5678a69e293a235cb3e8ac371 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 22 Oct 2025 17:41:15 -0400 Subject: [PATCH 0895/1228] test: linux: Unskip `ip_mreqn` and `hwtstamp_config` The reason these failed in the first place was unclear, but they now pass. Closes: https://github.com/rust-lang/libc/issues/1558 (backport ) (cherry picked from commit d4ffc25b20eedc2727501f0a9aa1e139a31e079a) --- libc-test/build.rs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 5f7bca66d3bcd..934ec12c67d00 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4084,11 +4084,6 @@ fn test_linux(target: &str) { return true; } - // FIXME(#1558): passing by value corrupts the value for reasons not understood. - if (gnu && sparc64) && (ty == "ip_mreqn" || ty == "hwtstamp_config") { - return true; - } - // FIXME(rust-lang/rust#43894): pass by value for structs that are not an even 32/64 bits // on big-endian systems corrupts the value for unknown reasons. if (sparc64 || ppc || ppc64 || s390x) From cee777494aa2d38f8da365ec15a59bf158bb83ce Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 22 Oct 2025 17:52:27 -0400 Subject: [PATCH 0896/1228] linux: Update the definition for `ucontext_t` and unskip its tests The distributed versions of glibc now have the `__ssp` field, so we can add it here and start testing the type again. A field rename is needed since loongarch calls `__uc_flags` by a different name. (backport ) (cherry picked from commit f9f21cf01d47f395fbbc508be1ee34988fa1f70d) --- libc-test/build.rs | 11 ++++------- src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs | 6 +----- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 934ec12c67d00..162bbea40806a 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3991,7 +3991,7 @@ fn test_linux(target: &str) { } }); - cfg.rename_struct_field(|struct_, field| { + cfg.rename_struct_field(move |struct_, field| { let struct_ = struct_.ident(); match field.ident() { // Our stat *_nsec fields normally don't actually exist but are part @@ -4014,6 +4014,9 @@ fn test_linux(target: &str) { Some("type".to_string()) } + // FIXME(1.0): field has a different name on loongarch + "uc_flags" if loongarch64 && struct_ == "ucontext_t" => Some("__uc_flags".to_string()), + _ => None, } }); @@ -4123,12 +4126,6 @@ fn test_linux(target: &str) { // structs. "termios2" => true, - // FIXME(linux): remove once we set minimum supported glibc version. - // ucontext_t added a new field as of glibc 2.28; our struct definition is - // conservative and omits the field, but that means the size doesn't match for newer - // glibcs (see https://github.com/rust-lang/libc/issues/1410) - "ucontext_t" if gnu => true, - // On Linux, the type of `ut_exit` field of struct `utmpx` // can be an anonymous struct, so an extra struct, // which is absent in musl, has to be defined. diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index f4555ee420230..cf871f2a7d84a 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -310,11 +310,7 @@ s_no_extra_traits! { pub uc_mcontext: mcontext_t, pub uc_sigmask: crate::sigset_t, __private: [u8; 512], - // FIXME(glibc): the shadow stack field requires glibc >= 2.28. - // Re-add once we drop compatibility with glibc versions older than - // 2.28. - // - // __ssp: [c_ulonglong; 4], + __ssp: [c_ulonglong; 4], } #[repr(align(16))] From c5de12c50e5c2ac4f8c3da2cfc811252f0cba542 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 22 Oct 2025 17:56:37 -0400 Subject: [PATCH 0897/1228] test: linux: Unskip `clone_args` and `open_how` The concerns about changing across versions was resolved a long time ago. However, there is still a mismatch on PowerPC64, so a specific skip is added for now. (backport ) (cherry picked from commit dec14b0868843d288c195a5053d9fdf74222ce49) --- libc-test/build.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 162bbea40806a..8299c6aa7dde9 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4131,11 +4131,9 @@ fn test_linux(target: &str) { // which is absent in musl, has to be defined. "__exit_status" if musl => true, - // clone_args might differ b/w libc versions - "clone_args" => true, - - // Might differ between kernel versions - "open_how" => true, + // FIXME(ppc): tests fail due to a field type mismatch (`long long unsigned` vs + // `long unsigned`). + "clone_args" if ppc64 => true, // Linux >= 6.13 (pidfd_info.exit_code: Linux >= 6.15) // Might differ between kernel versions From e60a062ec7e06c8d0d26cc10664542bc8ebf4b47 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 22 Oct 2025 18:33:59 -0400 Subject: [PATCH 0898/1228] linux: Remove incorrect `repr(align(8))` for `canxl_frame` `can_frame` and `canfd_frame` need this, but `canxl_frame` does not. This was causing the struct to be incorrectly aligned. (backport ) (cherry picked from commit 488022ecde62a6b84a13ef14d753db4a885cb734) --- src/new/linux_uapi/linux/can.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/new/linux_uapi/linux/can.rs b/src/new/linux_uapi/linux/can.rs index ac1c459fb8a13..51e438434b09e 100644 --- a/src/new/linux_uapi/linux/can.rs +++ b/src/new/linux_uapi/linux/can.rs @@ -72,7 +72,6 @@ pub const CANXL_XLF: c_int = 0x80; pub const CANXL_SEC: c_int = 0x01; s! { - #[repr(align(8))] pub struct canxl_frame { pub prio: canid_t, pub flags: u8, From 0f6ff349c4902c4ce5b573996649839e879aa156 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 22 Oct 2025 18:09:13 -0400 Subject: [PATCH 0899/1228] test: linux: Unskip some types that now pass Unskip a number of types and constants that were added in more recent kernel versions but are now available in our CI setup. (backport ) (cherry picked from commit 969d956eafee31480d1de9a66aa92ea90ca93266) --- libc-test/build.rs | 69 ++++++++++++---------------------------------- 1 file changed, 18 insertions(+), 51 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 8299c6aa7dde9..8c9a4ae2d8b12 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4142,13 +4142,6 @@ fn test_linux(target: &str) { "sctp_initmsg" | "sctp_sndrcvinfo" | "sctp_sndinfo" | "sctp_rcvinfo" | "sctp_nxtinfo" | "sctp_prinfo" | "sctp_authinfo" => true, - // FIXME(linux): requires >= 6.1 kernel headers - "canxl_frame" => true, - - // FIXME(linux): The size of `iv` has been changed since Linux v6.0 - // https://github.com/torvalds/linux/commit/94dfc73e7cf4a31da66b8843f0b9283ddd6b8381 - "af_alg_iv" => true, - // FIXME(linux): Requires >= 5.1 kernel headers. // Everything that uses install-musl.sh has 4.19 kernel headers. "tls12_crypto_info_aes_gcm_256" @@ -4501,43 +4494,21 @@ fn test_linux(target: &str) { // is a private value for kernel usage normally "FUSE_SUPER_MAGIC" => true, - // linux 5.17 min - "PR_SET_VMA" | "PR_SET_VMA_ANON_NAME" => true, - - // present in recent kernels only - "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" => true, - - // present in recent kernels only >= 5.13 - "PR_PAC_SET_ENABLED_KEYS" | "PR_PAC_GET_ENABLED_KEYS" => true, - // present in recent kernels only >= 5.19 - "PR_SME_SET_VL" | "PR_SME_GET_VL" | "PR_SME_VL_LEN_MAX" | "PR_SME_SET_VL_INHERIT" | "PR_SME_SET_VL_ONE_EXEC" => true, - - // Added in Linux 5.14 - "FUTEX_LOCK_PI2" => true, - - // Added in linux 6.1 - "STATX_DIOALIGN" - | "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" - => true, - - // FIXME(linux): Parts of netfilter/nfnetlink*.h require more recent kernel headers: - | "RTNLGRP_MCTP_IFADDR" // linux v5.17+ - | "RTNLGRP_TUNNEL" // linux v5.18+ - | "RTNLGRP_STATS" // linux v5.18+ - => true, + // Not present on old musl + "PR_SET_VMA" + | "PR_SET_VMA_ANON_NAME" + | "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" if old_musl => true, + + // Not present in glibc + "PR_SME_VL_LEN_MAX" | "PR_SME_SET_VL_INHERIT" | "PR_SME_SET_VL_ONE_EXEC" if gnu => true, // FIXME(linux): The below is no longer const in glibc 2.34: // https://github.com/bminor/glibc/commit/5d98a7dae955bafa6740c26eaba9c86060ae0344 @@ -4546,15 +4517,9 @@ fn test_linux(target: &str) { | "MINSIGSTKSZ" if gnu => true, - // FIXME(linux): Linux >= 5.16: - // https://github.com/torvalds/linux/commit/42df6e1d221dddc0f2acf2be37e68d553ad65f96 - "NF_NETDEV_EGRESS" if sparc64 => true, // value changed "NF_NETDEV_NUMHOOKS" if sparc64 => true, - // FIXME(linux): requires Linux >= v5.8 - "IF_LINK_MODE_TESTING" if sparc64 => true, - // DIFF(main): fixed in 1.0 with e9abac9ac2 "CLONE_CLEAR_SIGHAND" | "CLONE_INTO_CGROUP" => true, @@ -4961,7 +4926,9 @@ fn test_linux(target: &str) { // After musl 1.2.0, the type becomes `int` instead of `long`. (old_musl && struct_ == "utmpx" && field == "ut_session") || // `frames` is a flexible array member - (struct_ == "bcm_msg_head" && field == "frames") + (struct_ == "bcm_msg_head" && field == "frames") || + // FAM + (struct_ == "af_alg_iv" && field == "iv") }); cfg.skip_roundtrip(move |s| match s { From 9dcc492131bc078c73ff27ffe38118ece6affa8b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 22 Oct 2025 18:09:53 -0400 Subject: [PATCH 0900/1228] test: linux: musl: Unskip types that needed newer kernel headers Our musl tests now use more recent headers, so we can start testing a number of types again. (backport ) (cherry picked from commit 7238ba5d071049c667498059083318e9adf555b3) --- libc-test/build.rs | 70 ---------------------------------------------- 1 file changed, 70 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 8c9a4ae2d8b12..47aebeeb3a0b4 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4142,30 +4142,6 @@ fn test_linux(target: &str) { "sctp_initmsg" | "sctp_sndrcvinfo" | "sctp_sndinfo" | "sctp_rcvinfo" | "sctp_nxtinfo" | "sctp_prinfo" | "sctp_authinfo" => true, - // FIXME(linux): Requires >= 5.1 kernel headers. - // Everything that uses install-musl.sh has 4.19 kernel headers. - "tls12_crypto_info_aes_gcm_256" - if (aarch64 || arm || i686 || s390x || x86_64) && musl => - { - true - } - - // FIXME(linux): Requires >= 5.11 kernel headers. - // Everything that uses install-musl.sh has 4.19 kernel headers. - "tls12_crypto_info_chacha20_poly1305" - if (aarch64 || arm || i686 || s390x || x86_64) && musl => - { - true - } - - // FIXME(linux): Requires >= 5.3 kernel headers. - // Everything that uses install-musl.sh has 4.19 kernel headers. - "xdp_options" if musl => true, - - // FIXME(linux): Requires >= 5.4 kernel headers. - // Everything that uses install-musl.sh has 4.19 kernel headers. - "xdp_ring_offset" | "xdp_mmap_offsets" if musl => true, - // FIXME(linux): Requires >= 6.8 kernel headers. // A field was added in 6.8. // https://github.com/torvalds/linux/commit/341ac980eab90ac1f6c22ee9f9da83ed9604d899 @@ -4173,10 +4149,6 @@ fn test_linux(target: &str) { // https://github.com/torvalds/linux/commit/32654bbd6313b4cfc82297e6634fa9725c3c900f "xdp_umem_reg" => true, - // FIXME(linux): Requires >= 5.9 kernel headers. - // Everything that uses install-musl.sh has 4.19 kernel headers. - "xdp_statistics" if musl => true, - // FIXME(linux): Requires >= 6.8 kernel headers. "xsk_tx_metadata" | "__c_anonymous_xsk_tx_metadata_union" @@ -4260,48 +4232,6 @@ fn test_linux(target: &str) { } } if musl { - // FIXME(linux): Requires >= 5.0 kernel headers - if name == "SECCOMP_GET_NOTIF_SIZES" - || name == "SECCOMP_FILTER_FLAG_NEW_LISTENER" - || name == "SECCOMP_FILTER_FLAG_TSYNC_ESRCH" - || name == "SECCOMP_USER_NOTIF_FLAG_CONTINUE" // requires >= 5.5 - || name == "SECCOMP_ADDFD_FLAG_SETFD" // requires >= 5.9 - || name == "SECCOMP_ADDFD_FLAG_SEND" // requires >= 5.9 - || name == "SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV" // requires >= 5.19 - { - return true; - } - // FIXME(linux): Requires >= 4.20 kernel headers - if name == "PTP_SYS_OFFSET_EXTENDED" { - return true; - } - // FIXME(linux): Requires >= 5.4 kernel headers - if name == "PTP_CLOCK_GETCAPS2" - || name == "PTP_ENABLE_PPS2" - || name == "PTP_EXTTS_REQUEST2" - || name == "PTP_PEROUT_REQUEST2" - || name == "PTP_PIN_GETFUNC2" - || name == "PTP_PIN_SETFUNC2" - || name == "PTP_SYS_OFFSET2" - || name == "PTP_SYS_OFFSET_PRECISE2" - || name == "PTP_SYS_OFFSET_EXTENDED2" - { - return true; - } - // FIXME(linux): Requires >= 5.4.1 kernel headers - if name.starts_with("J1939") - || name.starts_with("RTEXT_FILTER_") - || name.starts_with("SO_J1939") - || name.starts_with("SCM_J1939") - { - return true; - } - // FIXME(linux): Requires >= 5.10 kernel headers - if name.starts_with("MEMBARRIER_CMD_REGISTER") - || name.starts_with("MEMBARRIER_CMD_PRIVATE") - { - return true; - } // LFS64 types have been removed in musl 1.2.4+ if name.starts_with("RLIM64") { return true; From 1105b9222bd066f1295a073d54598eaf55bfe3cf Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 22 Oct 2025 18:45:20 -0400 Subject: [PATCH 0901/1228] ci: Log the output of uname -a Indicate which kernel version we are working with. (backport ) (cherry picked from commit cc3cee4a2f5deb304ffbe769d37d24bc1d52c6c2) --- ci/run.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ci/run.sh b/ci/run.sh index 7b4525143d05a..0938b695d403d 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -9,6 +9,9 @@ target="$1" export RUST_BACKTRACE="${RUST_BACKTRACE:-1}" +# For logging +uname -a + cmd="cargo test --target $target ${LIBC_CI_ZBUILD_STD+"-Zbuild-std"}" test_flags="--skip check_style" From 0b74cc4252eaada113a7361d94ab4d9e78691201 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 22 Oct 2025 23:42:01 -0400 Subject: [PATCH 0902/1228] ci: Update wasmtime to the latest release (38.0.2) (backport ) (cherry picked from commit 00360b97870b3023b6fc5e427b82d1e1b8dfd151) --- ci/wasi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/wasi.sh b/ci/wasi.sh index 19aa57e608542..f0d8a5245c99b 100755 --- a/ci/wasi.sh +++ b/ci/wasi.sh @@ -11,7 +11,7 @@ apt-get install -y --no-install-recommends \ # Wasmtime is used to execute tests and wasi-sdk is used to compile tests. # Download appropriate versions here and configure various flags below. -wasmtime=35.0.0 +wasmtime=38.0.2 wasi_sdk=27 curl -L https://github.com/bytecodealliance/wasmtime/releases/download/v$wasmtime/wasmtime-v$wasmtime-x86_64-linux.tar.xz | From 96cccde07c8b0cbc1054063fa9cf4800e0fad8f2 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 22 Oct 2025 22:30:43 -0400 Subject: [PATCH 0903/1228] test: linux: Unskip types and constants that are now available CI runs with the 6.11 kernel, so stop skipping tests on everything that was added before then where possible. (backport ) (cherry picked from commit dd44cb603e77e5bca7d9de0af2ee5c6e189e08d8) --- libc-test/build.rs | 162 ++++++++++++--------------------------------- 1 file changed, 44 insertions(+), 118 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 47aebeeb3a0b4..c684d20346cc0 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4182,9 +4182,6 @@ fn test_linux(target: &str) { // FIXME(linux): Requires >= 6.12 kernel headers. "mnt_ns_info" => true, - // FIXME(linux): Requires >= 6.4 kernel headers. - "ptrace_sud_config" => true, - // Struct has changed for new musl versions "tcp_info" if old_musl => true, @@ -4240,20 +4237,6 @@ fn test_linux(target: &str) { if name.starts_with("NI_IDN") { return true; } - // FIXME: Requires >= 6.3 kernel headers - if loongarch64 && (name == "MFD_NOEXEC_SEAL" || name == "MFD_EXEC") { - return true; - } - // FIXME: Requires >= 6.3 (6.6) kernel headers - if name == "PR_GET_MDWE" || name == "PR_MDWE_NO_INHERIT" || name == "PR_MDWE_REFUSE_EXEC_GAIN" || name == "PR_SET_MDWE" { - return true; - } - // Requires musl >= 1.2 - if old_musl && (name == "SO_PREFER_BUSY_POLL" - || name == "SO_BUSY_POLL_BUDGET") - { - return true; - } // FIXME(musl): Not in musl yet if name == "SO_NETNS_COOKIE" || name == "SO_BUF_LOCK" @@ -4274,20 +4257,45 @@ fn test_linux(target: &str) { { return true; } - // Values changed in newer musl versions on these arches - if old_musl && (riscv64 || x86_64) && name == "O_LARGEFILE" { - return true; - } - // Values changed in newer musl versions - if old_musl && name == "RLIM_NLIMITS" { - return true; - } // FIXME: Does not exist on non-x86 architectures, slated for removal // in libc in 1.0 if ppc64 && name == "MAP_32BIT" { return true; } } + if old_musl { + // Constants that don't exist on the old version of musl we test with, but do exist + // on newer versions. + match name { + | "FAN_EVENT_INFO_TYPE_ERROR" + | "FAN_EVENT_INFO_TYPE_NEW_DFID_NAME" + | "FAN_EVENT_INFO_TYPE_OLD_DFID_NAME" + | "FAN_FS_ERROR" + | "FAN_INFO" + | "FAN_MARK_EVICTABLE" + | "FAN_MARK_IGNORE" + | "FAN_MARK_IGNORE_SURV" + | "FAN_RENAME" + | "FAN_REPORT_DFID_NAME_TARGET" + | "FAN_REPORT_TARGET_FID" + | "FAN_RESPONSE_INFO_AUDIT_RULE" + | "FAN_RESPONSE_INFO_NONE" + | "IPPROTO_ETHERNET" + | "IPPROTO_MPTCP" + | "PR_GET_MDWE" + | "PR_MDWE_NO_INHERIT" + | "PR_MDWE_REFUSE_EXEC_GAIN" + | "PR_SET_MDWE" + | "RLIM_NLIMITS" + | "SI_DETHREAD" + | "SO_BUSY_POLL_BUDGET" + | "SO_PREFER_BUSY_POLL" + => return true, + // Values changed in newer musl versions on these arches + "O_LARGEFILE" if riscv64 || x86_64 => return true, + _ => (), + } + } match name { // These constants are not available if gnu headers have been included // and can therefore not be tested here @@ -4340,10 +4348,8 @@ fn test_linux(target: &str) { // deprecated: not available from Linux kernel 5.6: "VMADDR_CID_RESERVED" => true, - // IPPROTO_MAX was increased in 5.6 for IPPROTO_MPTCP: - | "IPPROTO_MAX" - | "IPPROTO_ETHERNET" - | "IPPROTO_MPTCP" => true, + // FIXME(value): IPPROTO_MAX was increased in 5.6 for IPPROTO_MPTCP: + "IPPROTO_MAX" => true, // FIXME(linux): Not yet implemented on sparc64 "SYS_clone3" if sparc64 => true, @@ -4351,32 +4357,8 @@ fn test_linux(target: &str) { // FIXME(linux): Not defined on ARM, gnueabihf, mips, musl, PowerPC, riscv64, s390x, and sparc64. "SYS_memfd_secret" if arm | gnueabihf | mips | musl | ppc | riscv64 | s390x | sparc64 => true, - // FIXME(linux): Added in Linux 5.16 - // https://github.com/torvalds/linux/commit/039c0ec9bb77446d7ada7f55f90af9299b28ca49 - "SYS_futex_waitv" => true, - - // FIXME(linux): Added in Linux 5.17 - // https://github.com/torvalds/linux/commit/c6018b4b254971863bd0ad36bb5e7d0fa0f0ddb0 - "SYS_set_mempolicy_home_node" => true, - - // FIXME(linux): Added in Linux 5.18 - // https://github.com/torvalds/linux/commit/8b5413647262dda8d8d0e07e14ea1de9ac7cf0b2 - "NFQA_PRIORITY" => true, - - // FIXME(linux): requires more recent kernel headers on CI - | "UINPUT_VERSION" - | "SW_MAX" - | "SW_CNT" - if ppc64 || riscv64 => true, - - // FIXME(linux): requires more recent kernel headers on CI - "SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV" if sparc64 => true, - - // FIXME(linux): Not currently available in headers on ARM and musl. - "NETLINK_GET_STRICT_CHK" if arm => true, - // Skip as this signal codes and trap reasons need newer headers - "SI_DETHREAD" | "TRAP_PERF" => true, + "TRAP_PERF" => true, // kernel constants not available in uclibc 1.0.34 | "EXTPROC" @@ -4453,12 +4435,6 @@ fn test_linux(target: &str) { // DIFF(main): fixed in 1.0 with e9abac9ac2 "CLONE_CLEAR_SIGHAND" | "CLONE_INTO_CGROUP" => true, - // kernel 6.1 minimum - "MADV_COLLAPSE" => true, - - // kernel 6.2 minimum - "TUN_F_USO4" | "TUN_F_USO6" | "IFF_NO_CARRIER" => true, - // kernel 6.9 minimum "RWF_NOAPPEND" => true, @@ -4468,38 +4444,6 @@ fn test_linux(target: &str) { // kernel 6.14 minimum "RWF_DONTCACHE" => true, - // FIXME(linux): Requires more recent kernel headers - | "IFLA_PARENT_DEV_NAME" // linux v5.13+ - | "IFLA_PARENT_DEV_BUS_NAME" // linux v5.13+ - | "IFLA_GRO_MAX_SIZE" // linux v5.16+ - | "IFLA_TSO_MAX_SIZE" // linux v5.18+ - | "IFLA_TSO_MAX_SEGS" // linux v5.18+ - | "IFLA_ALLMULTI" // linux v6.0+ - | "MADV_DONTNEED_LOCKED" // linux v5.18+ - => true, - "SCTP_FUTURE_ASSOC" | "SCTP_CURRENT_ASSOC" | "SCTP_ALL_ASSOC" | "SCTP_PEER_ADDR_THLDS_V2" => true, // linux 5.5+ - - // kernel 6.5 minimum - "MOVE_MOUNT_BENEATH" => true, - // FIXME(linux): Requires linux 6.1 - "ALG_SET_KEY_BY_KEY_SERIAL" | "ALG_SET_DRBG_ENTROPY" => true, - - // FIXME(linux): Requires more recent kernel headers - | "FAN_FS_ERROR" // linux v5.16+ - | "FAN_RENAME" // linux v5.17+ - | "FAN_REPORT_TARGET_FID" // linux v5.17+ - | "FAN_REPORT_DFID_NAME_TARGET" // linux v5.17+ - | "FAN_MARK_EVICTABLE" // linux v5.19+ - | "FAN_MARK_IGNORE" // linux v6.0+ - | "FAN_MARK_IGNORE_SURV" // linux v6.0+ - | "FAN_EVENT_INFO_TYPE_ERROR" // linux v5.16+ - | "FAN_EVENT_INFO_TYPE_OLD_DFID_NAME" // linux v5.17+ - | "FAN_EVENT_INFO_TYPE_NEW_DFID_NAME" // linux v5.17+ - | "FAN_RESPONSE_INFO_NONE" // linux v5.16+ - | "FAN_RESPONSE_INFO_AUDIT_RULE" // linux v5.16+ - | "FAN_INFO" // linux v5.16+ - => true, - // musl doesn't use in "FAN_REPORT_PIDFD" | "FAN_REPORT_DIR_FID" @@ -4512,36 +4456,24 @@ fn test_linux(target: &str) { | "FAN_EPIDFD" if musl => true, - // FIXME(linux): Requires linux 6.5 + // FIXME(value): value needs update "NFT_MSG_MAX" => true, // FIXME(linux): Requires >= 6.6 kernel headers. - "XDP_USE_SG" - | "XDP_PKT_CONTD" - => - { - true - } + "XDP_USE_SG" | "XDP_PKT_CONTD" => true, - // FIXME(linux): Requires >= 6.6 kernel headers. - "PR_MDWE_NO_INHERIT" => true, + // FIXME(linux): Missing only on this platform for some reason + "PR_MDWE_NO_INHERIT" if gnueabihf => true, // FIXME(linux): Requires >= 6.8 kernel headers. "XDP_UMEM_TX_SW_CSUM" | "XDP_TXMD_FLAGS_TIMESTAMP" | "XDP_TXMD_FLAGS_CHECKSUM" | "XDP_TX_METADATA" - => - { - true - } + => true, // FIXME(linux): Requires >= 6.11 kernel headers. - "XDP_UMEM_TX_METADATA_LEN" - => - { - true - } + "XDP_UMEM_TX_METADATA_LEN" => true, // FIXME(linux): Requires >= 6.11 kernel headers. "NS_GET_MNTNS_ID" | "NS_GET_PID_FROM_PIDNS" | "NS_GET_TGID_FROM_PIDNS" | "NS_GET_PID_IN_PIDNS" | "NS_GET_TGID_IN_PIDNS" => true, @@ -4584,15 +4516,11 @@ fn test_linux(target: &str) { | "PF_SUSPEND_TASK" => true, // FIXME(linux): Requires >= 6.9 kernel headers. - "EPIOCSPARAMS" - | "EPIOCGPARAMS" => true, + "EPIOCSPARAMS" | "EPIOCGPARAMS" => true, // FIXME(linux): Requires >= 6.11 kernel headers. "MAP_DROPPABLE" => true, - // FIXME(linux): Requires >= 6.2 kernel headers. - "SOF_TIMESTAMPING_OPT_ID_TCP" => true, - // FIXME(linux): Requires >= 6.12 kernel headers. "SOF_TIMESTAMPING_OPT_RX_FILTER" => true, @@ -4602,12 +4530,10 @@ fn test_linux(target: &str) { | "SO_DEVMEM_DONTNEED" | "SCM_DEVMEM_LINEAR" | "SCM_DEVMEM_DMABUF" => true, + // FIXME(linux): Requires >= 6.4 kernel headers. "PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG" | "PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG" => true, - // FIXME(linux): Requires >= 6.6 kernel headers. - "PROC_EVENT_NONZERO_EXIT" => true, - // FIXME(linux): Requires >= 6.14 kernel headers. "SECBIT_EXEC_DENY_INTERACTIVE" | "SECBIT_EXEC_DENY_INTERACTIVE_LOCKED" From a5ebf2339946bbc25ebed13525109650a162e450 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 22 Oct 2025 23:19:07 -0400 Subject: [PATCH 0904/1228] ci: Test x86_64-musl with musl 1.2.3 We already test aarch64 and a few other platforms, but x86 was missing. (backport ) (cherry picked from commit 8cac94f729a0690b6587c5c5ab13f2d2eeb333e4) --- .github/workflows/ci.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 947fe9c4756e2..70b3fbd1e2cee 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -225,6 +225,9 @@ jobs: - target: powerpc64le-unknown-linux-musl env: RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 + - target: x86_64-unknown-linux-musl + env: + RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 # FIXME(ppc): SIGILL running tests, see # https://github.com/rust-lang/libc/pull/4254#issuecomment-2636288713 # - target: powerpc-unknown-linux-gnu From f741fe06d4eb7ab642c387ed16862fdb9e948322 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 22 Oct 2025 22:47:35 -0400 Subject: [PATCH 0905/1228] linux: Correct the value of NFT_MSG_MAX This was updated in a more recent kernel version. (backport ) (cherry picked from commit e0e220e24ef7b476ac0e34073a2ed8d5b84644c6) --- libc-test/build.rs | 3 --- src/unix/linux_like/linux/mod.rs | 3 ++- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index c684d20346cc0..c350034264ae8 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4456,9 +4456,6 @@ fn test_linux(target: &str) { | "FAN_EPIDFD" if musl => true, - // FIXME(value): value needs update - "NFT_MSG_MAX" => true, - // FIXME(linux): Requires >= 6.6 kernel headers. "XDP_USE_SG" | "XDP_PKT_CONTD" => true, diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index a84ff4ef30f60..f8bbf65e63d9a 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -4913,7 +4913,8 @@ cfg_if! { pub const NFT_MSG_GETOBJ_RESET: c_int = 21; } } -pub const NFT_MSG_MAX: c_int = 25; + +pub const NFT_MSG_MAX: c_int = 34; pub const NFT_SET_ANONYMOUS: c_int = 0x1; pub const NFT_SET_CONSTANT: c_int = 0x2; From 3f195a3ce586557f2467df09d4ca1260043c23a2 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 23 Oct 2025 00:01:03 -0400 Subject: [PATCH 0906/1228] ci: Remove the unused linux-sparc64 setup script This hasn't been doing anything since e580f566c001 ("use `qemu-sparc64` to run sparc64 tests") which switched away from using qemu-system via `test-runner-linux`. Thus, remove it here. (backport ) (cherry picked from commit 9812d5b4a186e7d40ef6daf84e0baf27e60f901c) --- .../sparc64-unknown-linux-gnu/Dockerfile | 3 --- ci/linux-sparc64.sh | 19 ------------------- 2 files changed, 22 deletions(-) delete mode 100755 ci/linux-sparc64.sh diff --git a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile index a91ec3dd25f27..c55d57105a114 100644 --- a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile @@ -7,9 +7,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ qemu-system-sparc64 openbios-sparc seabios ipxe-qemu \ p7zip-full cpio linux-libc-dev-sparc64-cross qemu-user -COPY linux-sparc64.sh / -RUN /linux-sparc64.sh - ENV CARGO_TARGET_SPARC64_UNKNOWN_LINUX_GNU_LINKER=sparc64-linux-gnu-gcc \ CARGO_TARGET_SPARC64_UNKNOWN_LINUX_GNU_RUNNER="qemu-sparc64 -L /usr/sparc64-linux-gnu" \ CC_sparc64_unknown_linux_gnu=sparc64-linux-gnu-gcc \ diff --git a/ci/linux-sparc64.sh b/ci/linux-sparc64.sh deleted file mode 100755 index b272c42edd9aa..0000000000000 --- a/ci/linux-sparc64.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env sh - -set -eux - -mkdir -m 777 /qemu -cd /qemu - -curl --retry 5 -LO https://cdimage.debian.org/cdimage/ports/snapshots/2024-12-24/debian-12.0.0-sparc64-NETINST-1.iso -7z e debian-12.0.0-sparc64-NETINST-1.iso install/initrd.gz -7z e debian-12.0.0-sparc64-NETINST-1.iso install/vmlinux -mv vmlinux kernel -rm debian-12.0.0-sparc64-NETINST-1.iso - -mkdir init -cd init -gunzip -c ../initrd.gz | cpio -id -rm ../initrd.gz -cp /usr/sparc64-linux-gnu/lib/libgcc_s.so.1 usr/lib/ -chmod a+w . From 44452badcabd2b85802a5bb425e95d50d4a2c525 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 22 Oct 2025 03:20:45 -0400 Subject: [PATCH 0907/1228] Rename `missing!` to `extern_ty!` Really what we are indicating with this macro invocation is that we need a type that can be specified behind indirection but never used directly, which is an extern type. Using an uninhabited enum gets us most of the way there and is about the best we can do for now. (backport ) (cherry picked from commit fe5ecb8efb4df86b28e060e833754a7c2574fd9e) --- src/macros.rs | 11 ++++++++--- src/unix/aix/powerpc64.rs | 3 +-- src/unix/linux_like/linux/mod.rs | 3 +-- src/unix/linux_like/mod.rs | 3 +-- src/unix/mod.rs | 9 +++------ 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index cb00c8980f44e..f7058a7bd9c0c 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -203,15 +203,20 @@ macro_rules! s_no_extra_traits { ); } -/// Specify that an enum should have no traits that aren't specified in the macro -/// invocation, i.e. no `Clone` or `Copy`. -macro_rules! missing { +/// Create an uninhabited type that can't be constructed. It implements `Debug` but no +/// other traits. +/// +/// Really what we want here is something that also can't be named without indirection (in +/// ADTs or function signatures), but this doesn't exist. +macro_rules! extern_ty { ($( $(#[$attr:meta])* pub enum $i:ident {} )*) => ($( $(#[$attr])* #[allow(missing_copy_implementations)] + // FIXME(1.0): the type is uninhabited so this trait is unreachable. + #[::core::prelude::v1::derive(::core::fmt::Debug)] pub enum $i { } )*); } diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index ba4ddc057c40b..1b62859ae1633 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -2,8 +2,7 @@ use crate::off_t; use crate::prelude::*; // Define lock_data_instrumented as an empty enum -missing! { - #[derive(Debug)] +extern_ty! { pub enum lock_data_instrumented {} } diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index f8bbf65e63d9a..34ee66d1b6557 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -67,8 +67,7 @@ pub type eventfd_t = u64; cfg_if! { if #[cfg(not(target_env = "gnu"))] { - missing! { - #[derive(Debug)] + extern_ty! { pub enum fpos64_t {} // FIXME(linux): fill this out with a struct } } diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index fd3fa996caad4..0b1f376233a62 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -8,8 +8,7 @@ pub type timer_t = *mut c_void; pub type key_t = c_int; pub type id_t = c_uint; -missing! { - #[derive(Debug)] +extern_ty! { pub enum timezone {} } diff --git a/src/unix/mod.rs b/src/unix/mod.rs index cb0b687a5c858..e341c7d115691 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -37,8 +37,7 @@ cfg_if! { } } -missing! { - #[derive(Debug)] +extern_ty! { pub enum DIR {} } pub type locale_t = *mut c_void; @@ -567,15 +566,13 @@ cfg_if! { cfg_if! { if #[cfg(not(all(target_os = "linux", target_env = "gnu")))] { - missing! { - #[derive(Debug)] + extern_ty! { pub enum fpos_t {} // FIXME(unix): fill this out with a struct } } } -missing! { - #[derive(Debug)] +extern_ty! { pub enum FILE {} } From f8fb351bb7eab955ec763b7ba194312448e5193f Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 22 Oct 2025 04:02:16 -0400 Subject: [PATCH 0908/1228] Migrate manual extern types to `extern_ty!` Use the macro to replace repeated handwritten uninhabited enums. In order to keep the same traits, `extern_ty!` now implements `Clone` and `Copy` in addition to the existing `Debug`, which affects existing uses of `extern_ty!`. We don't need these traits since they can never be used on uninhabited types, but there is no harm in adding them for now and dropping later on. (backport ) (cherry picked from commit 147b462b0b0220bf004501e89273f42054c593d9) --- src/fuchsia/mod.rs | 48 ++++------------------- src/macros.rs | 15 ++++--- src/solid/mod.rs | 18 ++------- src/unix/bsd/apple/mod.rs | 9 +---- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 9 +---- src/unix/bsd/freebsdlike/mod.rs | 9 +---- src/unix/bsd/netbsdlike/mod.rs | 18 ++------- src/unix/cygwin/mod.rs | 18 ++------- src/unix/haiku/mod.rs | 9 +---- src/unix/hurd/mod.rs | 19 ++------- src/unix/linux_like/emscripten/mod.rs | 9 +---- src/unix/nto/mod.rs | 9 +---- src/unix/redox/mod.rs | 9 +---- src/unix/solarish/mod.rs | 19 ++------- src/vxworks/mod.rs | 36 ++++------------- src/windows/mod.rs | 29 ++++---------- 16 files changed, 61 insertions(+), 222 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 31f13b16832d2..5a3d0784c434c 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -78,32 +78,10 @@ pub type fsblkcnt_t = c_ulonglong; pub type fsfilcnt_t = c_ulonglong; pub type rlim_t = c_ulonglong; -// FIXME(fuchsia): why are these uninhabited types? that seems... wrong? -// Presumably these should be `()` or an `extern type` (when that stabilizes). -#[derive(Debug)] -pub enum timezone {} -impl Copy for timezone {} -impl Clone for timezone { - fn clone(&self) -> timezone { - *self - } -} -#[derive(Debug)] -pub enum DIR {} -impl Copy for DIR {} -impl Clone for DIR { - fn clone(&self) -> DIR { - *self - } -} - -#[derive(Debug)] -pub enum fpos64_t {} // FIXME(fuchsia): fill this out with a struct -impl Copy for fpos64_t {} -impl Clone for fpos64_t { - fn clone(&self) -> fpos64_t { - *self - } +extern_ty! { + pub enum timezone {} + pub enum DIR {} + pub enum fpos64_t {} // FIXME(fuchsia): fill this out with a struct } // PUB_STRUCT @@ -3421,21 +3399,9 @@ fn __MHDR_END(mhdr: *const msghdr) -> *mut c_uchar { #[link(name = "fdio")] extern "C" {} -#[derive(Debug)] -pub enum FILE {} -impl Copy for FILE {} -impl Clone for FILE { - fn clone(&self) -> FILE { - *self - } -} -#[derive(Debug)] -pub enum fpos_t {} // FIXME(fuchsia): fill this out with a struct -impl Copy for fpos_t {} -impl Clone for fpos_t { - fn clone(&self) -> fpos_t { - *self - } +extern_ty! { + pub enum FILE {} + pub enum fpos_t {} // FIXME(fuchsia): fill this out with a struct } extern "C" { diff --git a/src/macros.rs b/src/macros.rs index f7058a7bd9c0c..59dcbfa905c82 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -203,8 +203,9 @@ macro_rules! s_no_extra_traits { ); } -/// Create an uninhabited type that can't be constructed. It implements `Debug` but no -/// other traits. +/// Create an uninhabited type that can't be constructed. It implements `Debug`, `Clone`, +/// and `Copy`, but these aren't meaningful for extern types so they should eventually +/// be removed. /// /// Really what we want here is something that also can't be named without indirection (in /// ADTs or function signatures), but this doesn't exist. @@ -214,9 +215,13 @@ macro_rules! extern_ty { pub enum $i:ident {} )*) => ($( $(#[$attr])* - #[allow(missing_copy_implementations)] - // FIXME(1.0): the type is uninhabited so this trait is unreachable. - #[::core::prelude::v1::derive(::core::fmt::Debug)] + // FIXME(1.0): the type is uninhabited so these traits are unreachable and could be + // removed. + #[::core::prelude::v1::derive( + ::core::clone::Clone, + ::core::marker::Copy, + ::core::fmt::Debug, + )] pub enum $i { } )*); } diff --git a/src/solid/mod.rs b/src/solid/mod.rs index 40d6a9d348586..37c7fe5f0a342 100644 --- a/src/solid/mod.rs +++ b/src/solid/mod.rs @@ -395,21 +395,9 @@ pub const SIGUSR1: c_int = 30; pub const SIGUSR2: c_int = 31; pub const SIGPWR: c_int = 32; -#[derive(Debug)] -pub enum FILE {} -impl Copy for FILE {} -impl Clone for FILE { - fn clone(&self) -> FILE { - *self - } -} -#[derive(Debug)] -pub enum fpos_t {} -impl Copy for fpos_t {} -impl Clone for fpos_t { - fn clone(&self) -> fpos_t { - *self - } +extern_ty! { + pub enum FILE {} + pub enum fpos_t {} } extern "C" { diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 857508f794ad1..a9fcf556a5381 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -179,13 +179,8 @@ deprecated_mach! { pub type mach_timebase_info_data_t = mach_timebase_info; } -#[derive(Debug)] -pub enum timezone {} -impl Copy for timezone {} -impl Clone for timezone { - fn clone(&self) -> timezone { - *self - } +extern_ty! { + pub enum timezone {} } #[derive(Debug)] diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 582e812796cf2..4e054f9c89056 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -45,13 +45,8 @@ pub type vm_map_entry_t = *mut vm_map_entry; pub type pmap = __c_anonymous_pmap; -#[derive(Debug)] -pub enum sem {} -impl Copy for sem {} -impl Clone for sem { - fn clone(&self) -> sem { - *self - } +extern_ty! { + pub enum sem {} } e! { diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 4bf62033474f0..453d3e0734f05 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -59,13 +59,8 @@ cfg_if! { // link.h -#[derive(Debug)] -pub enum timezone {} -impl Copy for timezone {} -impl Clone for timezone { - fn clone(&self) -> timezone { - *self - } +extern_ty! { + pub enum timezone {} } impl siginfo_t { diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index bc3e4cdf094ff..294d334490bc1 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -16,21 +16,9 @@ pub type id_t = u32; pub type sem_t = *mut sem; pub type key_t = c_long; -#[derive(Debug)] -pub enum timezone {} -impl Copy for timezone {} -impl Clone for timezone { - fn clone(&self) -> timezone { - *self - } -} -#[derive(Debug)] -pub enum sem {} -impl Copy for sem {} -impl Clone for sem { - fn clone(&self) -> sem { - *self - } +extern_ty! { + pub enum timezone {} + pub enum sem {} } s! { diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 12e30f3f9016c..028ac80cb52d3 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -28,13 +28,8 @@ pub type nlink_t = c_ushort; pub type suseconds_t = c_long; pub type useconds_t = c_ulong; -#[derive(Debug)] -pub enum timezone {} -impl Copy for timezone {} -impl Clone for timezone { - fn clone(&self) -> timezone { - *self - } +extern_ty! { + pub enum timezone {} } pub type sigset_t = c_ulong; @@ -75,13 +70,8 @@ pub type nfds_t = c_uint; pub type sem_t = *mut sem; -#[derive(Debug)] -pub enum sem {} -impl Copy for sem {} -impl Clone for sem { - fn clone(&self) -> sem { - *self - } +extern_ty! { + pub enum sem {} } pub type tcflag_t = c_uint; diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 964598e97ca35..98764c497f0f6 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -80,13 +80,8 @@ pub type ACTION = c_int; pub type posix_spawnattr_t = *mut c_void; pub type posix_spawn_file_actions_t = *mut c_void; -#[derive(Debug)] -pub enum timezone {} -impl Copy for timezone {} -impl Clone for timezone { - fn clone(&self) -> timezone { - *self - } +extern_ty! { + pub enum timezone {} } impl siginfo_t { diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 24e9fe56f392d..acd0981b1a8b2 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -225,22 +225,9 @@ pub type nl_item = c_int; pub type iconv_t = *mut c_void; -#[derive(Debug)] -pub enum fpos64_t {} // FIXME(hurd): fill this out with a struct -impl Copy for fpos64_t {} -impl Clone for fpos64_t { - fn clone(&self) -> fpos64_t { - *self - } -} - -#[derive(Debug)] -pub enum timezone {} -impl Copy for timezone {} -impl Clone for timezone { - fn clone(&self) -> timezone { - *self - } +extern_ty! { + pub enum fpos64_t {} // FIXME(hurd): fill this out with a struct + pub enum timezone {} } // structs diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 417e3e593bc5e..91e506c57cc22 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -41,13 +41,8 @@ pub type statfs64 = crate::statfs; pub type statvfs64 = crate::statvfs; pub type dirent64 = crate::dirent; -#[derive(Debug)] -pub enum fpos64_t {} // FIXME(emscripten): fill this out with a struct -impl Copy for fpos64_t {} -impl Clone for fpos64_t { - fn clone(&self) -> fpos64_t { - *self - } +extern_ty! { + pub enum fpos64_t {} // FIXME(emscripten): fill this out with a struct } s! { diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 75f5b56902f7f..a81c210c80cf3 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -72,13 +72,8 @@ pub type sem_t = sync_t; pub type nl_item = c_int; -#[derive(Debug)] -pub enum timezone {} -impl Copy for timezone {} -impl Clone for timezone { - fn clone(&self) -> timezone { - *self - } +extern_ty! { + pub enum timezone {} } s! { diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 4db2e8d91b35e..55a8c15a234e2 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -32,13 +32,8 @@ pub type pid_t = usize; pub type uid_t = c_int; pub type gid_t = c_int; -#[derive(Debug)] -pub enum timezone {} -impl Copy for timezone {} -impl Clone for timezone { - fn clone(&self) -> timezone { - *self - } +extern_ty! { + pub enum timezone {} } s_no_extra_traits! { diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index d8b32dfc0aae9..f78b09a3db63a 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -55,22 +55,9 @@ pub type lgrp_view_t = c_uint; pub type posix_spawnattr_t = *mut c_void; pub type posix_spawn_file_actions_t = *mut c_void; -#[derive(Debug)] -pub enum timezone {} -impl Copy for timezone {} -impl Clone for timezone { - fn clone(&self) -> timezone { - *self - } -} - -#[derive(Debug)] -pub enum ucred_t {} -impl Copy for ucred_t {} -impl Clone for ucred_t { - fn clone(&self) -> ucred_t { - *self - } +extern_ty! { + pub enum timezone {} + pub enum ucred_t {} } s! { diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 809640d112221..ce6c91678caf4 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -4,13 +4,8 @@ use core::ptr::null_mut; use crate::prelude::*; -#[derive(Debug)] -pub enum DIR {} -impl Copy for DIR {} -impl Clone for DIR { - fn clone(&self) -> DIR { - *self - } +extern_ty! { + pub enum DIR {} } pub type intmax_t = i64; @@ -95,13 +90,8 @@ pub type sa_family_t = c_uchar; // mqueue.h pub type mqd_t = c_int; -#[derive(Debug)] -pub enum _Vx_semaphore {} -impl Copy for _Vx_semaphore {} -impl Clone for _Vx_semaphore { - fn clone(&self) -> _Vx_semaphore { - *self - } +extern_ty! { + pub enum _Vx_semaphore {} } impl siginfo_t { @@ -1054,21 +1044,9 @@ pub const MAP_CONTIG: c_int = 0x0020; pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; -#[derive(Debug)] -pub enum FILE {} -impl Copy for FILE {} -impl Clone for FILE { - fn clone(&self) -> FILE { - *self - } -} -#[derive(Debug)] -pub enum fpos_t {} // FIXME(vxworks): fill this out with a struct -impl Copy for fpos_t {} -impl Clone for fpos_t { - fn clone(&self) -> fpos_t { - *self - } +extern_ty! { + pub enum FILE {} + pub enum fpos_t {} // FIXME(vxworks): fill this out with a struct } f! { diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 969008c47c675..775be13bac91c 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -29,14 +29,11 @@ cfg_if! { pub type off_t = i32; pub type dev_t = u32; pub type ino_t = u16; -#[derive(Debug)] -pub enum timezone {} -impl Copy for timezone {} -impl Clone for timezone { - fn clone(&self) -> timezone { - *self - } + +extern_ty! { + pub enum timezone {} } + pub type time64_t = i64; pub type SOCKET = crate::uintptr_t; @@ -254,21 +251,9 @@ pub const TMP_MAX: c_uint = 0x7fff_ffff; #[link(name = "libcmt", cfg(target_feature = "crt-static"))] extern "C" {} -#[derive(Debug)] -pub enum FILE {} -impl Copy for FILE {} -impl Clone for FILE { - fn clone(&self) -> FILE { - *self - } -} -#[derive(Debug)] -pub enum fpos_t {} // FIXME(windows): fill this out with a struct -impl Copy for fpos_t {} -impl Clone for fpos_t { - fn clone(&self) -> fpos_t { - *self - } +extern_ty! { + pub enum FILE {} + pub enum fpos_t {} // FIXME(windows): fill this out with a struct } // Special handling for all print and scan type functions because of https://github.com/rust-lang/libc/issues/2860 From 255c9884273d29836306fd3b01e27a4bf125c064 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 23 Oct 2025 02:54:08 -0400 Subject: [PATCH 0909/1228] test: apple: Remove unneeded test skips Quite a few skipped tests now pass, so test configuration can be simplified. (backport ) (cherry picked from commit 0209508f8dc71a6b05adb14fb18c9db420db5c19) --- libc-test/build.rs | 45 +++------------------------------------------ 1 file changed, 3 insertions(+), 42 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index c350034264ae8..7a09fda3e1374 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -240,8 +240,7 @@ fn test_apple(target: &str) { "os/clock.h", "os/lock.h", "os/signpost.h", - // FIXME(macos): Requires the macOS 14.4 SDK. - //"os/os_sync_wait_on_address.h", + "os/os_sync_wait_on_address.h", "poll.h", "pthread.h", "pthread_spis.h", @@ -318,8 +317,6 @@ fn test_apple(target: &str) { // it is a moving target, changing through versions // also contains bitfields members "tcp_connection_info" => true, - // FIXME(macos): The size is changed in recent macOSes. - "malloc_introspection_t" => true, _ => false, } }); @@ -327,12 +324,8 @@ fn test_apple(target: &str) { cfg.skip_alias(|ty| ty.ident().starts_with("__c_anonymous_")); cfg.skip_alias(|ty| { match ty.ident() { - // FIXME(macos): Requires the macOS 14.4 SDK. - "os_sync_wake_by_address_flags_t" | "os_sync_wait_on_address_flags_t" => true, - // FIXME(macos): "'__uint128' undeclared" in C "__uint128" => true, - _ => false, } }); @@ -341,7 +334,7 @@ fn test_apple(target: &str) { match constant.ident() { // They're declared via `deprecated_mach` and we don't support it anymore. x if x.starts_with("VM_FLAGS_") => true, - // These OSX constants are removed in Sierra. + // FIXME(deprecated): These OSX constants are removed in Sierra. // https://developer.apple.com/library/content/releasenotes/General/APIDiffsMacOS10_12/Swift/Darwin.html "KERN_KDENABLE_BG_TRACE" | "KERN_KDDISABLE_BG_TRACE" => true, // FIXME(macos): the value has been changed since Catalina (0xffff0000 -> 0x3fff0000). @@ -350,12 +343,6 @@ fn test_apple(target: &str) { // FIXME(macos): XCode 13.1 doesn't have it. "TIOCREMOTE" => true, - // FIXME(macos): Requires the macOS 14.4 SDK. - "OS_SYNC_WAKE_BY_ADDRESS_NONE" - | "OS_SYNC_WAKE_BY_ADDRESS_SHARED" - | "OS_SYNC_WAIT_ON_ADDRESS_NONE" - | "OS_SYNC_WAIT_ON_ADDRESS_SHARED" => true, - _ => false, } }); @@ -365,41 +352,17 @@ fn test_apple(target: &str) { match func.ident() { // FIXME: https://github.com/rust-lang/libc/issues/1272 "execv" | "execve" | "execvp" => true, - // close calls the close_nocancel system call - "close" => true, - // FIXME(1.0): std removed libresolv support: https://github.com/rust-lang/rust/pull/102766 "res_init" => true, - - // FIXME(macos): remove once the target in CI is updated - "pthread_jit_write_freeze_callbacks_np" => true, - - // FIXME(macos): ABI has been changed on recent macOSes. - "os_unfair_lock_assert_owner" | "os_unfair_lock_assert_not_owner" => true, - - // FIXME(macos): Once the SDK get updated to Ventura's level - "freadlink" | "mknodat" | "mkfifoat" => true, - - // FIXME(macos): Requires the macOS 14.4 SDK. - "os_sync_wake_by_address_any" - | "os_sync_wake_by_address_all" - | "os_sync_wake_by_address_flags_t" - | "os_sync_wait_on_address" - | "os_sync_wait_on_address_flags_t" - | "os_sync_wait_on_address_with_deadline" - | "os_sync_wait_on_address_with_timeout" => true, - _ => false, } }); cfg.skip_struct_field(move |struct_, field| { match (struct_.ident(), field.ident()) { - // FIXME(macos): the array size has been changed since macOS 10.15 ([8] -> [7]). - ("statfs", "f_reserved") => true, - ("__darwin_arm_neon_state64", "__v") => true, // MAXPATHLEN is too big for auto-derive traits on arrays. ("vnode_info_path", "vip_path") => true, + // Anonymous ADT fields ("ifreq", "ifr_ifru") => true, ("in6_ifreq", "ifr_ifru") => true, ("ifkpi", "ifk_data") => true, @@ -450,8 +413,6 @@ fn test_apple(target: &str) { cfg.skip_roundtrip(move |s| match s { // FIXME(macos): this type has the wrong ABI "max_align_t" if i686 => true, - // Can't return an array from a C function. - "uuid_t" | "vol_capabilities_set_t" => true, _ => false, }); From efa57f83377b4b8989daf9babcb6d6cac0782992 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 23 Oct 2025 02:55:02 -0400 Subject: [PATCH 0910/1228] apple: Deprecate TIOCREMOTE This was removed as of MacOS 12.0.1 (Monterey). Link: https://github.com/apple-oss-distributions/xnu/commit/e6231be02a03711ca404e5121a151b24afbff733#diff-3c054321ffa9f7cfa71b5dfb244b27379af699ce4ead58446b3fe83f934140f3L152-R152 (backport ) (cherry picked from commit 3985d13f764b97f5949ac9e0058856fdda0c4258) --- libc-test/build.rs | 3 ++- src/unix/bsd/apple/mod.rs | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 7a09fda3e1374..2c51730fa27fb 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -340,7 +340,8 @@ fn test_apple(target: &str) { // FIXME(macos): the value has been changed since Catalina (0xffff0000 -> 0x3fff0000). "SF_SETTABLE" => true, - // FIXME(macos): XCode 13.1 doesn't have it. + // FIXME(deprecated): Removed since 12.0.1 / xnu-8019.41.5. See `ttycom.h` at + // https://github.com/apple-oss-distributions/xnu/commit/e6231be02a03711ca404e5121a151b24afbff733 "TIOCREMOTE" => true, _ => false, diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index a9fcf556a5381..3026cd488940c 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -3317,6 +3317,7 @@ pub const TIOCMSET: c_ulong = 0x8004746d; pub const TIOCMBIS: c_ulong = 0x8004746c; pub const TIOCMBIC: c_ulong = 0x8004746b; pub const TIOCMGET: c_ulong = 0x4004746a; +#[deprecated(since = "0.2.178", note = "Removed in MacOSX 12.0.1")] pub const TIOCREMOTE: c_ulong = 0x80047469; pub const TIOCGWINSZ: c_ulong = 0x40087468; pub const TIOCSWINSZ: c_ulong = 0x80087467; From 1e8116a6391d4488c2ec77964530074d7633ed64 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 23 Oct 2025 02:58:08 -0400 Subject: [PATCH 0911/1228] apple: Correct the value of `SF_SETTABLE` This was updated a long time ago in MacOS Catalina; update ours to match. Link: https://github.com/apple-oss-distributions/xnu/blob/f6217f891ac0bb64f3d375211650a4c1ff8ca1ea/bsd/sys/stat.h#L497 (backport ) (cherry picked from commit db33ac4f62d1e6dcdbdb5e91f480665ca35204da) --- libc-test/build.rs | 2 -- src/unix/bsd/apple/mod.rs | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 2c51730fa27fb..d183576697532 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -337,8 +337,6 @@ fn test_apple(target: &str) { // FIXME(deprecated): These OSX constants are removed in Sierra. // https://developer.apple.com/library/content/releasenotes/General/APIDiffsMacOS10_12/Swift/Darwin.html "KERN_KDENABLE_BG_TRACE" | "KERN_KDDISABLE_BG_TRACE" => true, - // FIXME(macos): the value has been changed since Catalina (0xffff0000 -> 0x3fff0000). - "SF_SETTABLE" => true, // FIXME(deprecated): Removed since 12.0.1 / xnu-8019.41.5. See `ttycom.h` at // https://github.com/apple-oss-distributions/xnu/commit/e6231be02a03711ca404e5121a151b24afbff733 diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 3026cd488940c..356e1ca4465af 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -4773,7 +4773,7 @@ pub const UF_APPEND: c_uint = 0x00000004; pub const UF_OPAQUE: c_uint = 0x00000008; pub const UF_COMPRESSED: c_uint = 0x00000020; pub const UF_TRACKED: c_uint = 0x00000040; -pub const SF_SETTABLE: c_uint = 0xffff0000; +pub const SF_SETTABLE: c_uint = 0x3fff0000; pub const SF_ARCHIVED: c_uint = 0x00010000; pub const SF_IMMUTABLE: c_uint = 0x00020000; pub const SF_APPEND: c_uint = 0x00040000; From 887807353233c4a9a05e58c9b0e79bbc689da3b6 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 23 Oct 2025 03:41:13 -0400 Subject: [PATCH 0912/1228] test: Change the `headers!` macro to a syntax that rustfmt will format Rustfmt will format `()` or `[]` macro invocations that contain valid Rust syntax, but not `{}` invocations. Switch to `()`, and update the syntax to be valid Rust so rustfmt cleans them up. (backport ) (cherry picked from commit a8b153236c1c7148a130c6969bb04886b1f3ebbd) --- libc-test/build.rs | 1708 ++++++++++++++++++++++---------------------- 1 file changed, 856 insertions(+), 852 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index d183576697532..22185284fab20 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -159,22 +159,24 @@ fn main() { } macro_rules! headers { - ($cfg:ident: [$m:expr]: $header:literal) => { - if $m { - $cfg.header($header); - } - }; - ($cfg:ident: $header:literal) => { - $cfg.header($header); - }; - ($($cfg:ident: $([$c:expr]:)* $header:literal,)*) => { - $(headers!($cfg: $([$c]:)* $header);)* - }; - ($cfg:ident: $( $([$c:expr]:)* $header:literal,)*) => { - headers!($($cfg: $([$c]:)* $header,)*); - }; - ($cfg:ident: $( $([$c:expr]:)* $header:literal),*) => { - headers!($($cfg: $([$c]:)* $header,)*); + ( + $cfg:ident, + $( + // Allow a simple header + $($header:literal)? + // As well as a style that is conditionally applied. + $(($pred:expr, $pred_header:literal))? + , + )+ + ) => { + $( + $( $cfg.header($header); )? + $( + if $pred { + $cfg.header($pred_header); + } + )? + )+ }; } @@ -188,7 +190,8 @@ fn test_apple(target: &str) { cfg.flag("-Wno-deprecated-declarations"); cfg.define("__APPLE_USE_RFC_3542", None); - headers! { cfg: + headers!( + cfg, "aio.h", "CommonCrypto/CommonCrypto.h", "CommonCrypto/CommonRandom.h", @@ -301,8 +304,8 @@ fn test_apple(target: &str) { "utmpx.h", "wchar.h", "xlocale.h", - [x86_64]: "crt_externs.h", - } + (x86_64, "crt_externs.h"), + ); // Skip anonymous unions/structs. cfg.skip_union(|u| u.ident().starts_with("__c_anonymous_")); @@ -426,7 +429,8 @@ fn test_openbsd(target: &str) { let x86_64 = target.contains("x86_64"); - headers! { cfg: + headers!( + cfg, "elf.h", "errno.h", "execinfo.h", @@ -448,7 +452,7 @@ fn test_openbsd(target: &str) { "ctype.h", "dirent.h", "sys/socket.h", - [x86_64]:"machine/fpu.h", + (x86_64, "machine/fpu.h"), "net/if.h", "net/route.h", "net/if_arp.h", @@ -510,7 +514,7 @@ fn test_openbsd(target: &str) { "sys/shm.h", "sys/param.h", "sys/auxv.h", - } + ); cfg.rename_type(|ty| match ty { // FIXME(openbsd): https://github.com/rust-lang/libc/issues/1273 @@ -626,7 +630,8 @@ fn test_cygwin(target: &str) { let mut cfg = ctest_cfg(); cfg.define("_GNU_SOURCE", None); - headers! { cfg: + headers!( + cfg, "ctype.h", "dirent.h", "dlfcn.h", @@ -676,7 +681,7 @@ fn test_cygwin(target: &str) { "utime.h", "wait.h", "wchar.h", - } + ); cfg.rename_type(|ty| match ty { "Ioctl" => Some("int".to_string()), @@ -802,7 +807,8 @@ fn test_windows(target: &str) { } cfg.define("_WIN32_WINNT", Some("0x8000")); - headers! { cfg: + headers!( + cfg, "direct.h", "errno.h", "fcntl.h", @@ -820,9 +826,9 @@ fn test_windows(target: &str) { "sys/utime.h", "time.h", "wchar.h", - [gnu]: "ws2tcpip.h", - [!gnu]: "Winsock2.h", - } + (gnu, "ws2tcpip.h"), + (!gnu, "Winsock2.h"), + ); cfg.rename_struct_ty(|ty| { match ty { @@ -921,8 +927,8 @@ fn test_redox(target: &str) { let mut cfg = ctest_cfg(); cfg.flag("-Wno-deprecated-declarations"); - headers! { - cfg: + headers!( + cfg, "ctype.h", "dirent.h", "dlfcn.h", @@ -960,7 +966,7 @@ fn test_redox(target: &str) { "unistd.h", "utime.h", "wchar.h", - } + ); ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } @@ -986,8 +992,8 @@ fn test_solarish(target: &str) { cfg.define("SIGINFO", Some("41")); } - headers! { - cfg: + headers!( + cfg, "aio.h", "ctype.h", "dirent.h", @@ -1066,19 +1072,14 @@ fn test_solarish(target: &str) { "utime.h", "utmpx.h", "wchar.h", - } + ); if is_illumos { - headers! { cfg: - "sys/epoll.h", - "sys/eventfd.h", - } + headers!(cfg, "sys/epoll.h", "sys/eventfd.h",); } if is_solaris { - headers! { cfg: - "sys/lgrp_user_impl.h", - } + headers!(cfg, "sys/lgrp_user_impl.h",); } cfg.skip_alias(move |ty| match ty.ident() { @@ -1273,8 +1274,8 @@ fn test_netbsd(target: &str) { cfg.flag("-Wno-deprecated-declarations"); cfg.define("_NETBSD_SOURCE", Some("1")); - headers! { - cfg: + headers!( + cfg, "elf.h", "errno.h", "fcntl.h", @@ -1359,7 +1360,7 @@ fn test_netbsd(target: &str) { "sys/reboot.h", "sys/shm.h", "iconv.h", - } + ); cfg.rename_type(move |ty| { match ty { @@ -1487,8 +1488,8 @@ fn test_dragonflybsd(target: &str) { let mut cfg = ctest_cfg(); cfg.flag("-Wno-deprecated-declarations"); - headers! { - cfg: + headers!( + cfg, "aio.h", "ctype.h", "dirent.h", @@ -1576,7 +1577,7 @@ fn test_dragonflybsd(target: &str) { "vm/vm_map.h", "wchar.h", "iconv.h", - } + ); cfg.rename_struct_ty(move |ty| { match ty { @@ -1713,7 +1714,8 @@ fn test_wasi(target: &str) { let mut cfg = ctest_cfg(); cfg.define("_GNU_SOURCE", None); - headers! { cfg: + headers!( + cfg, "ctype.h", "dirent.h", "errno.h", @@ -1723,9 +1725,9 @@ fn test_wasi(target: &str) { "limits.h", "locale.h", "malloc.h", - [p2]: "netdb.h", - [p2]: "netinet/in.h", - [p2]: "netinet/tcp.h", + (p2, "netdb.h"), + (p2, "netinet/in.h"), + (p2, "netinet/tcp.h"), "poll.h", "pthread.h", "sched.h", @@ -1751,7 +1753,7 @@ fn test_wasi(target: &str) { "wasi/libc-nocwd.h", "wasi/libc.h", "wchar.h", - } + ); cfg.rename_struct_ty(move |ty| match ty { "FILE" | "fd_set" | "DIR" => Some(ty.to_string()), @@ -1812,151 +1814,150 @@ fn test_android(target: &str) { let mut cfg = ctest_cfg(); cfg.define("_GNU_SOURCE", None); - headers! { cfg: - "arpa/inet.h", - "ctype.h", - "dirent.h", - "dlfcn.h", - "elf.h", - "errno.h", - "fcntl.h", - "fnmatch.h", - "getopt.h", - "grp.h", - "ifaddrs.h", - "libgen.h", - "limits.h", - "link.h", - "linux/sysctl.h", - "locale.h", - "malloc.h", - "net/ethernet.h", - "net/if.h", - "net/if_arp.h", - "net/route.h", - "netdb.h", - "netinet/in.h", - "netinet/ip.h", - "netinet/tcp.h", - "netinet/udp.h", - "netpacket/packet.h", - "poll.h", - "pthread.h", - "pty.h", - "pwd.h", - "regex.h", - "resolv.h", - "sched.h", - "semaphore.h", - "signal.h", - "spawn.h", - "stddef.h", - "stdint.h", - "stdio.h", - "stdlib.h", - "string.h", - "sys/auxv.h", - "sys/epoll.h", - "sys/eventfd.h", - "sys/file.h", - "sys/fsuid.h", - "sys/inotify.h", - "sys/ioctl.h", - "sys/klog.h", - "sys/mman.h", - "sys/mount.h", - "sys/personality.h", - "sys/prctl.h", - "sys/ptrace.h", - "sys/random.h", - "sys/reboot.h", - "sys/resource.h", - "sys/sendfile.h", - "sys/signalfd.h", - "sys/socket.h", - "sys/stat.h", - "sys/statvfs.h", - "sys/swap.h", - "sys/syscall.h", - "sys/sysinfo.h", - "sys/system_properties.h", - "sys/time.h", - "sys/timerfd.h", - "sys/times.h", - "sys/types.h", - "sys/ucontext.h", - "sys/uio.h", - "sys/un.h", - "sys/user.h", - "sys/utsname.h", - "sys/vfs.h", - "sys/xattr.h", - "sys/wait.h", - "syslog.h", - "termios.h", - "time.h", - "unistd.h", - "utime.h", - "utmp.h", - "wchar.h", - "xlocale.h", - // time64_t is not defined for 64-bit targets If included it will - // generate the error 'Your time_t is already 64-bit' - [target_pointer_width == 32]: "time64.h", - [x86]: "sys/reg.h", - } + headers!( + cfg, + "arpa/inet.h", + "ctype.h", + "dirent.h", + "dlfcn.h", + "elf.h", + "errno.h", + "fcntl.h", + "fnmatch.h", + "getopt.h", + "grp.h", + "ifaddrs.h", + "libgen.h", + "limits.h", + "link.h", + "linux/sysctl.h", + "locale.h", + "malloc.h", + "net/ethernet.h", + "net/if.h", + "net/if_arp.h", + "net/route.h", + "netdb.h", + "netinet/in.h", + "netinet/ip.h", + "netinet/tcp.h", + "netinet/udp.h", + "netpacket/packet.h", + "poll.h", + "pthread.h", + "pty.h", + "pwd.h", + "regex.h", + "resolv.h", + "sched.h", + "semaphore.h", + "signal.h", + "spawn.h", + "stddef.h", + "stdint.h", + "stdio.h", + "stdlib.h", + "string.h", + "sys/auxv.h", + "sys/epoll.h", + "sys/eventfd.h", + "sys/file.h", + "sys/fsuid.h", + "sys/inotify.h", + "sys/ioctl.h", + "sys/klog.h", + "sys/mman.h", + "sys/mount.h", + "sys/personality.h", + "sys/prctl.h", + "sys/ptrace.h", + "sys/random.h", + "sys/reboot.h", + "sys/resource.h", + "sys/sendfile.h", + "sys/signalfd.h", + "sys/socket.h", + "sys/stat.h", + "sys/statvfs.h", + "sys/swap.h", + "sys/syscall.h", + "sys/sysinfo.h", + "sys/system_properties.h", + "sys/time.h", + "sys/timerfd.h", + "sys/times.h", + "sys/types.h", + "sys/ucontext.h", + "sys/uio.h", + "sys/un.h", + "sys/user.h", + "sys/utsname.h", + "sys/vfs.h", + "sys/xattr.h", + "sys/wait.h", + "syslog.h", + "termios.h", + "time.h", + "unistd.h", + "utime.h", + "utmp.h", + "wchar.h", + "xlocale.h", + // time64_t is not defined for 64-bit targets If included it will + // generate the error 'Your time_t is already 64-bit' + (target_pointer_width == 32, "time64.h"), + (x86, "sys/reg.h"), + ); // Include linux headers at the end: - headers! { cfg: - "asm/mman.h", - "linux/auxvec.h", - "linux/dccp.h", - "linux/elf.h", - "linux/errqueue.h", - "linux/falloc.h", - "linux/filter.h", - "linux/futex.h", - "linux/fs.h", - "linux/genetlink.h", - "linux/if_alg.h", - "linux/if_addr.h", - "linux/if_ether.h", - "linux/if_link.h", - "linux/rtnetlink.h", - "linux/if_tun.h", - "linux/kexec.h", - "linux/magic.h", - "linux/membarrier.h", - "linux/memfd.h", - "linux/mempolicy.h", - "linux/module.h", - "linux/mount.h", - "linux/net_tstamp.h", - "linux/netfilter/nfnetlink.h", - "linux/netfilter/nfnetlink_log.h", - "linux/netfilter/nfnetlink_queue.h", - "linux/netfilter/nf_tables.h", - "linux/netfilter_arp.h", - "linux/netfilter_bridge.h", - "linux/netfilter_ipv4.h", - "linux/netfilter_ipv6.h", - "linux/netfilter_ipv6/ip6_tables.h", - "linux/netlink.h", - "linux/quota.h", - "linux/reboot.h", - "linux/seccomp.h", - "linux/sched.h", - "linux/sockios.h", - "linux/uinput.h", - "linux/vm_sockets.h", - "linux/wait.h", - - } + headers!( + cfg, + "asm/mman.h", + "linux/auxvec.h", + "linux/dccp.h", + "linux/elf.h", + "linux/errqueue.h", + "linux/falloc.h", + "linux/filter.h", + "linux/futex.h", + "linux/fs.h", + "linux/genetlink.h", + "linux/if_alg.h", + "linux/if_addr.h", + "linux/if_ether.h", + "linux/if_link.h", + "linux/rtnetlink.h", + "linux/if_tun.h", + "linux/kexec.h", + "linux/magic.h", + "linux/membarrier.h", + "linux/memfd.h", + "linux/mempolicy.h", + "linux/module.h", + "linux/mount.h", + "linux/net_tstamp.h", + "linux/netfilter/nfnetlink.h", + "linux/netfilter/nfnetlink_log.h", + "linux/netfilter/nfnetlink_queue.h", + "linux/netfilter/nf_tables.h", + "linux/netfilter_arp.h", + "linux/netfilter_bridge.h", + "linux/netfilter_ipv4.h", + "linux/netfilter_ipv6.h", + "linux/netfilter_ipv6/ip6_tables.h", + "linux/netlink.h", + "linux/quota.h", + "linux/reboot.h", + "linux/seccomp.h", + "linux/sched.h", + "linux/sockios.h", + "linux/uinput.h", + "linux/vm_sockets.h", + "linux/wait.h", + ); // Include Android-specific headers: - headers! { cfg: - "android/set_abort_message.h" - } + headers!(cfg, "android/set_abort_message.h",); cfg.rename_type(move |ty| match ty { "Ioctl" => Some("int".to_string()), @@ -2339,124 +2340,125 @@ fn test_freebsd(target: &str) { let freebsd14 = matches!(freebsd_ver, Some(n) if n >= 14); let freebsd15 = matches!(freebsd_ver, Some(n) if n >= 15); - headers! { cfg: - "aio.h", - "arpa/inet.h", - "bsm/audit.h", - "ctype.h", - "dirent.h", - "dlfcn.h", - "elf.h", - "errno.h", - "execinfo.h", - "fcntl.h", - "fnmatch.h", - "getopt.h", - "glob.h", - "grp.h", - "iconv.h", - "ifaddrs.h", - "kenv.h", - "langinfo.h", - "libgen.h", - "libutil.h", - "limits.h", - "link.h", - "locale.h", - "machine/elf.h", - "machine/reg.h", - "malloc_np.h", - "memstat.h", - "mqueue.h", - "net/bpf.h", - "net/if.h", - "net/if_arp.h", - "net/if_dl.h", - "net/if_mib.h", - "net/route.h", - "netdb.h", - "netinet/ip.h", - "netinet/in.h", - "netinet/sctp.h", - "netinet/tcp.h", - "netinet/udp.h", - "poll.h", - "pthread.h", - "pthread_np.h", - "pwd.h", - "regex.h", - "resolv.h", - "sched.h", - "semaphore.h", - "signal.h", - "spawn.h", - "stddef.h", - "stdint.h", - "stdio.h", - "stdlib.h", - "string.h", - "sys/capsicum.h", - "sys/auxv.h", - "sys/cpuset.h", - "sys/domainset.h", - "sys/eui64.h", - "sys/event.h", - [freebsd13]:"sys/eventfd.h", - "sys/extattr.h", - "sys/file.h", - "sys/ioctl.h", - "sys/ipc.h", - "sys/jail.h", - "sys/mman.h", - "sys/mount.h", - "sys/msg.h", - "sys/procctl.h", - "sys/procdesc.h", - "sys/ptrace.h", - "sys/queue.h", - "sys/random.h", - "sys/reboot.h", - "sys/resource.h", - "sys/rtprio.h", - "sys/sem.h", - "sys/shm.h", - "sys/socket.h", - "sys/socketvar.h", - [freebsd15]:"sys/ktls.h", - "netinet/in_pcb.h", // must be after sys/socketvar.h, sys/ktls.h - "sys/stat.h", - "sys/statvfs.h", - "sys/sysctl.h", - "sys/thr.h", - "sys/time.h", - [freebsd14 || freebsd15]:"sys/timerfd.h", - [freebsd13 || freebsd14 || freebsd15]:"dev/evdev/input.h", - "sys/times.h", - "sys/timex.h", - "sys/types.h", - "sys/proc.h", - "kvm.h", // must be after "sys/types.h" - "sys/ucontext.h", - "sys/uio.h", - "sys/ktrace.h", - "sys/umtx.h", - "sys/un.h", - "sys/user.h", - "sys/utsname.h", - "sys/uuid.h", - "sys/vmmeter.h", - "sys/wait.h", - "libprocstat.h", - "devstat.h", - "syslog.h", - "termios.h", - "time.h", - "ufs/ufs/quota.h", - "unistd.h", - "utime.h", - "utmpx.h", - "wchar.h", - } + headers!( + cfg, + "aio.h", + "arpa/inet.h", + "bsm/audit.h", + "ctype.h", + "dirent.h", + "dlfcn.h", + "elf.h", + "errno.h", + "execinfo.h", + "fcntl.h", + "fnmatch.h", + "getopt.h", + "glob.h", + "grp.h", + "iconv.h", + "ifaddrs.h", + "kenv.h", + "langinfo.h", + "libgen.h", + "libutil.h", + "limits.h", + "link.h", + "locale.h", + "machine/elf.h", + "machine/reg.h", + "malloc_np.h", + "memstat.h", + "mqueue.h", + "net/bpf.h", + "net/if.h", + "net/if_arp.h", + "net/if_dl.h", + "net/if_mib.h", + "net/route.h", + "netdb.h", + "netinet/ip.h", + "netinet/in.h", + "netinet/sctp.h", + "netinet/tcp.h", + "netinet/udp.h", + "poll.h", + "pthread.h", + "pthread_np.h", + "pwd.h", + "regex.h", + "resolv.h", + "sched.h", + "semaphore.h", + "signal.h", + "spawn.h", + "stddef.h", + "stdint.h", + "stdio.h", + "stdlib.h", + "string.h", + "sys/capsicum.h", + "sys/auxv.h", + "sys/cpuset.h", + "sys/domainset.h", + "sys/eui64.h", + "sys/event.h", + (freebsd13, "sys/eventfd.h"), + "sys/extattr.h", + "sys/file.h", + "sys/ioctl.h", + "sys/ipc.h", + "sys/jail.h", + "sys/mman.h", + "sys/mount.h", + "sys/msg.h", + "sys/procctl.h", + "sys/procdesc.h", + "sys/ptrace.h", + "sys/queue.h", + "sys/random.h", + "sys/reboot.h", + "sys/resource.h", + "sys/rtprio.h", + "sys/sem.h", + "sys/shm.h", + "sys/socket.h", + "sys/socketvar.h", + (freebsd15, "sys/ktls.h"), + "netinet/in_pcb.h", // must be after sys/socketvar.h, sys/ktls.h + "sys/stat.h", + "sys/statvfs.h", + "sys/sysctl.h", + "sys/thr.h", + "sys/time.h", + (freebsd14 || freebsd15, "sys/timerfd.h"), + (freebsd13 || freebsd14 || freebsd15, "dev/evdev/input.h"), + "sys/times.h", + "sys/timex.h", + "sys/types.h", + "sys/proc.h", + "kvm.h", // must be after "sys/types.h" + "sys/ucontext.h", + "sys/uio.h", + "sys/ktrace.h", + "sys/umtx.h", + "sys/un.h", + "sys/user.h", + "sys/utsname.h", + "sys/uuid.h", + "sys/vmmeter.h", + "sys/wait.h", + "libprocstat.h", + "devstat.h", + "syslog.h", + "termios.h", + "time.h", + "ufs/ufs/quota.h", + "unistd.h", + "utime.h", + "utmpx.h", + "wchar.h", + ); cfg.rename_type(|ty| match ty { // FIXME(freebsd): https://github.com/rust-lang/libc/issues/1273 @@ -3012,140 +3014,141 @@ fn test_emscripten(target: &str) { let mut cfg = ctest_cfg(); cfg.define("_GNU_SOURCE", None); // FIXME(emscripten): ?? - headers! { cfg: - "ctype.h", - "dirent.h", - "dlfcn.h", - "errno.h", - "fcntl.h", - "fnmatch.h", - "glob.h", - "grp.h", - "ifaddrs.h", - "langinfo.h", - "limits.h", - "locale.h", - "malloc.h", - "mntent.h", - "mqueue.h", - "net/ethernet.h", - "net/if.h", - "net/if_arp.h", - "net/route.h", - "netdb.h", - "netinet/in.h", - "netinet/ip.h", - "netinet/tcp.h", - "netinet/udp.h", - "netpacket/packet.h", - "poll.h", - "pthread.h", - "pty.h", - "pwd.h", - "resolv.h", - "sched.h", - "sched.h", - "semaphore.h", - "shadow.h", - "signal.h", - "stddef.h", - "stdint.h", - "stdio.h", - "stdlib.h", - "string.h", - "sys/file.h", - "sys/ioctl.h", - "sys/ipc.h", - "sys/mman.h", - "sys/mount.h", - "sys/msg.h", - "sys/resource.h", - "sys/sem.h", - "sys/shm.h", - "sys/socket.h", - "sys/stat.h", - "sys/statvfs.h", - "sys/syscall.h", - "sys/sysinfo.h", - "sys/time.h", - "sys/times.h", - "sys/types.h", - "sys/uio.h", - "sys/un.h", - "sys/user.h", - "sys/utsname.h", - "sys/vfs.h", - "sys/wait.h", - "sys/xattr.h", - "syslog.h", - "termios.h", - "time.h", - "ucontext.h", - "unistd.h", - "utime.h", - "utmp.h", - "utmpx.h", - "wchar.h", - } - - cfg.rename_struct_ty(move |ty| { - match ty { - // Just pass all these through, no need for a "struct" prefix - "FILE" | "fd_set" | "Dl_info" | "DIR" => Some(ty.to_string()), - - // LFS64 types have been removed in Emscripten 3.1.44 - // https://github.com/emscripten-core/emscripten/pull/19812 - "off64_t" => Some("off_t".to_string()), - - // typedefs don't need any keywords - t if t.ends_with("_t") => Some(t.to_string()), - _ => None, - } - }); - - cfg.rename_struct_field(move |struct_, field| { - match field.ident() { - // Our stat *_nsec fields normally don't actually exist but are part - // of a timeval struct - s if s.ends_with("_nsec") && struct_.ident().starts_with("stat") => { - Some(s.replace("e_nsec", ".tv_nsec")) - } - // Rust struct uses raw u64, rather than union - "u64" if struct_.ident() == "epoll_event" => Some("data.u64".to_string()), - _ => None, - } - }); - - cfg.skip_alias(move |ty| { - match ty.ident() { - // sighandler_t is crazy across platforms - // FIXME(emscripten): is this necessary? - "sighandler_t" => true, - - // LFS64 types have been removed in Emscripten 3.1.44 - // https://github.com/emscripten-core/emscripten/pull/19812 - t => t.ends_with("64") || t.ends_with("64_t"), - } - }); - - cfg.skip_union(|union_| { - if union_.ident().starts_with("__c_anonymous_") { - return true; - } - - match union_.ident() { - // No epoll support - // https://github.com/emscripten-core/emscripten/issues/5033 - ty if ty.starts_with("epoll") => true, - - _ => false, - } - }); - - cfg.skip_alias(|ty| { - match ty.ident() { - // LFS64 types have been removed in Emscripten 3.1.44 - // https://github.com/emscripten-core/emscripten/pull/19812 + headers!( + cfg, + "ctype.h", + "dirent.h", + "dlfcn.h", + "errno.h", + "fcntl.h", + "fnmatch.h", + "glob.h", + "grp.h", + "ifaddrs.h", + "langinfo.h", + "limits.h", + "locale.h", + "malloc.h", + "mntent.h", + "mqueue.h", + "net/ethernet.h", + "net/if.h", + "net/if_arp.h", + "net/route.h", + "netdb.h", + "netinet/in.h", + "netinet/ip.h", + "netinet/tcp.h", + "netinet/udp.h", + "netpacket/packet.h", + "poll.h", + "pthread.h", + "pty.h", + "pwd.h", + "resolv.h", + "sched.h", + "sched.h", + "semaphore.h", + "shadow.h", + "signal.h", + "stddef.h", + "stdint.h", + "stdio.h", + "stdlib.h", + "string.h", + "sys/file.h", + "sys/ioctl.h", + "sys/ipc.h", + "sys/mman.h", + "sys/mount.h", + "sys/msg.h", + "sys/resource.h", + "sys/sem.h", + "sys/shm.h", + "sys/socket.h", + "sys/stat.h", + "sys/statvfs.h", + "sys/syscall.h", + "sys/sysinfo.h", + "sys/time.h", + "sys/times.h", + "sys/types.h", + "sys/uio.h", + "sys/un.h", + "sys/user.h", + "sys/utsname.h", + "sys/vfs.h", + "sys/wait.h", + "sys/xattr.h", + "syslog.h", + "termios.h", + "time.h", + "ucontext.h", + "unistd.h", + "utime.h", + "utmp.h", + "utmpx.h", + "wchar.h", + ); + + cfg.rename_struct_ty(move |ty| { + match ty { + // Just pass all these through, no need for a "struct" prefix + "FILE" | "fd_set" | "Dl_info" | "DIR" => Some(ty.to_string()), + + // LFS64 types have been removed in Emscripten 3.1.44 + // https://github.com/emscripten-core/emscripten/pull/19812 + "off64_t" => Some("off_t".to_string()), + + // typedefs don't need any keywords + t if t.ends_with("_t") => Some(t.to_string()), + _ => None, + } + }); + + cfg.rename_struct_field(move |struct_, field| { + match field.ident() { + // Our stat *_nsec fields normally don't actually exist but are part + // of a timeval struct + s if s.ends_with("_nsec") && struct_.ident().starts_with("stat") => { + Some(s.replace("e_nsec", ".tv_nsec")) + } + // Rust struct uses raw u64, rather than union + "u64" if struct_.ident() == "epoll_event" => Some("data.u64".to_string()), + _ => None, + } + }); + + cfg.skip_alias(move |ty| { + match ty.ident() { + // sighandler_t is crazy across platforms + // FIXME(emscripten): is this necessary? + "sighandler_t" => true, + + // LFS64 types have been removed in Emscripten 3.1.44 + // https://github.com/emscripten-core/emscripten/pull/19812 + t => t.ends_with("64") || t.ends_with("64_t"), + } + }); + + cfg.skip_union(|union_| { + if union_.ident().starts_with("__c_anonymous_") { + return true; + } + + match union_.ident() { + // No epoll support + // https://github.com/emscripten-core/emscripten/issues/5033 + ty if ty.starts_with("epoll") => true, + + _ => false, + } + }); + + cfg.skip_alias(|ty| { + match ty.ident() { + // LFS64 types have been removed in Emscripten 3.1.44 + // https://github.com/emscripten-core/emscripten/pull/19812 ty => ty.ends_with("64") || ty.ends_with("64_t"), } }); @@ -3269,17 +3272,19 @@ fn test_neutrino(target: &str) { .unwrap_or_else(|_| "QNX_TARGET_not_set_please_source_qnxsdp".into()); cfg.include(qnx_target_val + "/usr/include/io-sock"); - headers! { cfg: + headers!( + cfg, "io-sock.h", "sys/types.h", "sys/socket.h", "sys/sysctl.h", "net/if.h", - "net/if_arp.h" - } + "net/if_arp.h", + ); } - headers! { cfg: + headers!( + cfg, "ctype.h", "dirent.h", "dlfcn.h", @@ -3362,12 +3367,11 @@ fn test_neutrino(target: &str) { "net/bpf.h", "net/if_dl.h", "sys/syspage.h", - // TODO: The following header file doesn't appear as part of the default headers // found in a standard installation of Neutrino 7.1 SDP. The structures/ // functions dependent on it are currently commented out. //"sys/asyncmsg.h", - } + ); // Create and include a header file containing // items which are not included in any official @@ -3528,65 +3532,66 @@ fn test_vxworks(target: &str) { assert!(target.contains("vxworks")); let mut cfg = ctest_cfg(); - headers! { cfg: - "vxWorks.h", - "yvals.h", - "nfs/nfsCommon.h", - "rtpLibCommon.h", - "randomNumGen.h", - "taskLib.h", - "sysLib.h", - "ioLib.h", - "inetLib.h", - "socket.h", - "errnoLib.h", - "ctype.h", - "dirent.h", - "dlfcn.h", - "elf.h", - "fcntl.h", - "grp.h", - "sys/poll.h", - "ifaddrs.h", - "langinfo.h", - "limits.h", - "link.h", - "locale.h", - "sys/stat.h", - "netdb.h", - "pthread.h", - "pwd.h", - "sched.h", - "semaphore.h", - "signal.h", - "stddef.h", - "stdint.h", - "stdio.h", - "stdlib.h", - "string.h", - "sys/file.h", - "sys/ioctl.h", - "sys/socket.h", - "sys/time.h", - "sys/times.h", - "sys/types.h", - "sys/uio.h", - "sys/un.h", - "sys/utsname.h", - "sys/wait.h", - "netinet/tcp.h", - "syslog.h", - "termios.h", - "time.h", - "ucontext.h", - "unistd.h", - "utime.h", - "wchar.h", - "errno.h", - "sys/mman.h", - "pathLib.h", - "mqueue.h", - } + headers!( + cfg, + "vxWorks.h", + "yvals.h", + "nfs/nfsCommon.h", + "rtpLibCommon.h", + "randomNumGen.h", + "taskLib.h", + "sysLib.h", + "ioLib.h", + "inetLib.h", + "socket.h", + "errnoLib.h", + "ctype.h", + "dirent.h", + "dlfcn.h", + "elf.h", + "fcntl.h", + "grp.h", + "sys/poll.h", + "ifaddrs.h", + "langinfo.h", + "limits.h", + "link.h", + "locale.h", + "sys/stat.h", + "netdb.h", + "pthread.h", + "pwd.h", + "sched.h", + "semaphore.h", + "signal.h", + "stddef.h", + "stdint.h", + "stdio.h", + "stdlib.h", + "string.h", + "sys/file.h", + "sys/ioctl.h", + "sys/socket.h", + "sys/time.h", + "sys/times.h", + "sys/types.h", + "sys/uio.h", + "sys/un.h", + "sys/utsname.h", + "sys/wait.h", + "netinet/tcp.h", + "syslog.h", + "termios.h", + "time.h", + "ucontext.h", + "unistd.h", + "utime.h", + "wchar.h", + "errno.h", + "sys/mman.h", + "pathLib.h", + "mqueue.h", + ); // FIXME(vxworks) cfg.skip_const(move |constant| match constant.ident() { // sighandler_t weirdness @@ -3720,127 +3725,125 @@ fn test_linux(target: &str) { config_gnu_bits(target, &mut cfg); - headers! { cfg: - "ctype.h", - "dirent.h", - "dlfcn.h", - "elf.h", - "fcntl.h", - "fnmatch.h", - "getopt.h", - "glob.h", - [gnu]: "gnu/libc-version.h", - "grp.h", - "iconv.h", - "ifaddrs.h", - "langinfo.h", - "libgen.h", - "limits.h", - "link.h", - "linux/sysctl.h", - "locale.h", - "malloc.h", - "mntent.h", - "mqueue.h", - "net/ethernet.h", - "net/if.h", - "net/if_arp.h", - "net/route.h", - "netdb.h", - "netinet/in.h", - "netinet/ip.h", - "netinet/tcp.h", - "netinet/udp.h", - "poll.h", - "pthread.h", - "pty.h", - "pwd.h", - "regex.h", - "resolv.h", - "sched.h", - "semaphore.h", - "shadow.h", - "signal.h", - "spawn.h", - "stddef.h", - "stdint.h", - "stdio.h", - "stdlib.h", - "string.h", - "sys/epoll.h", - "sys/eventfd.h", - "sys/file.h", - "sys/fsuid.h", - "sys/klog.h", - "sys/inotify.h", - "sys/ioctl.h", - "sys/ipc.h", - "sys/mman.h", - "sys/mount.h", - "sys/msg.h", - "sys/personality.h", - "sys/prctl.h", - "sys/ptrace.h", - "sys/quota.h", - "sys/random.h", - "sys/reboot.h", - "sys/resource.h", - "sys/sem.h", - "sys/sendfile.h", - "sys/shm.h", - "sys/signalfd.h", - "sys/socket.h", - "sys/stat.h", - "sys/statvfs.h", - "sys/swap.h", - "sys/syscall.h", - "sys/time.h", - "sys/timerfd.h", - "sys/times.h", - "sys/timex.h", - "sys/types.h", - "sys/uio.h", - "sys/un.h", - "sys/user.h", - "sys/utsname.h", - "sys/vfs.h", - "sys/wait.h", - "syslog.h", - "termios.h", - "time.h", - "ucontext.h", - "unistd.h", - "utime.h", - "utmp.h", - "utmpx.h", - "wchar.h", - "errno.h", - // `sys/io.h` is only available on x86*, Alpha, IA64, and 32-bit - // ARM: https://bugzilla.redhat.com/show_bug.cgi?id=1116162 - // Also unavailable on gnueabihf with glibc 2.30. - // https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=6b33f373c7b9199e00ba5fbafd94ac9bfb4337b1 - [(x86_64 || x86_32 || arm) && !gnueabihf]: "sys/io.h", - // `sys/reg.h` is only available on x86 and x86_64 - [x86_64 || x86_32]: "sys/reg.h", - // sysctl system call is deprecated and not available on musl - // It is also unsupported in x32, deprecated since glibc 2.30: - [!(x32 || musl || gnu)]: "sys/sysctl.h", - // is not supported by musl: - // https://www.openwall.com/lists/musl/2015/04/09/3 - // is not present on uclibc. - [!(musl || uclibc)]: "execinfo.h", - } + headers!( + cfg, + "ctype.h", + "dirent.h", + "dlfcn.h", + "elf.h", + "fcntl.h", + "fnmatch.h", + "getopt.h", + "glob.h", + (gnu, "gnu/libc-version.h"), + "grp.h", + "iconv.h", + "ifaddrs.h", + "langinfo.h", + "libgen.h", + "limits.h", + "link.h", + "linux/sysctl.h", + "locale.h", + "malloc.h", + "mntent.h", + "mqueue.h", + "net/ethernet.h", + "net/if.h", + "net/if_arp.h", + "net/route.h", + "netdb.h", + "netinet/in.h", + "netinet/ip.h", + "netinet/tcp.h", + "netinet/udp.h", + "poll.h", + "pthread.h", + "pty.h", + "pwd.h", + "regex.h", + "resolv.h", + "sched.h", + "semaphore.h", + "shadow.h", + "signal.h", + "spawn.h", + "stddef.h", + "stdint.h", + "stdio.h", + "stdlib.h", + "string.h", + "sys/epoll.h", + "sys/eventfd.h", + "sys/file.h", + "sys/fsuid.h", + "sys/klog.h", + "sys/inotify.h", + "sys/ioctl.h", + "sys/ipc.h", + "sys/mman.h", + "sys/mount.h", + "sys/msg.h", + "sys/personality.h", + "sys/prctl.h", + "sys/ptrace.h", + "sys/quota.h", + "sys/random.h", + "sys/reboot.h", + "sys/resource.h", + "sys/sem.h", + "sys/sendfile.h", + "sys/shm.h", + "sys/signalfd.h", + "sys/socket.h", + "sys/stat.h", + "sys/statvfs.h", + "sys/swap.h", + "sys/syscall.h", + "sys/time.h", + "sys/timerfd.h", + "sys/times.h", + "sys/timex.h", + "sys/types.h", + "sys/uio.h", + "sys/un.h", + "sys/user.h", + "sys/utsname.h", + "sys/vfs.h", + "sys/wait.h", + "syslog.h", + "termios.h", + "time.h", + "ucontext.h", + "unistd.h", + "utime.h", + "utmp.h", + "utmpx.h", + "wchar.h", + "errno.h", + // `sys/io.h` is only available on x86*, Alpha, IA64, and 32-bit + // ARM: https://bugzilla.redhat.com/show_bug.cgi?id=1116162 + // Also unavailable on gnueabihf with glibc 2.30. + // https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=6b33f373c7b9199e00ba5fbafd94ac9bfb4337b1 + ((x86_64 || x86_32 || arm) && !gnueabihf, "sys/io.h"), + // `sys/reg.h` is only available on x86 and x86_64 + (x86_64 || x86_32, "sys/reg.h"), + // sysctl system call is deprecated and not available on musl + // It is also unsupported in x32, deprecated since glibc 2.30: + (!(x32 || musl || gnu), "sys/sysctl.h"), + // is not supported by musl: + // https://www.openwall.com/lists/musl/2015/04/09/3 + // is not present on uclibc. + (!(musl || uclibc), "execinfo.h"), + ); // Include linux headers at the end: - headers! { - cfg: - [loongarch64 || riscv64]: "asm/hwcap.h", - "asm/mman.h", - } + headers!(cfg, (loongarch64 || riscv64, "asm/hwcap.h"), "asm/mman.h",); if !wasm32 { - headers! { cfg: - [gnu]: "linux/aio_abi.h", + headers!( + cfg, + (gnu, "linux/aio_abi.h"), "linux/can.h", "linux/can/bcm.h", "linux/can/raw.h", @@ -3905,19 +3908,19 @@ fn test_linux(target: &str) { "linux/wireless.h", "sys/fanotify.h", // is not present on uclibc - [!uclibc]: "sys/auxv.h", - [gnu || musl]: "linux/close_range.h", - } + (!uclibc, "sys/auxv.h"), + (gnu || musl, "linux/close_range.h"), + ); } // note: aio.h must be included before sys/mount.h - headers! { - cfg: + headers!( + cfg, "sys/xattr.h", "sys/sysinfo.h", // AIO is not supported by uclibc: - [!uclibc]: "aio.h", - } + (!uclibc, "aio.h"), + ); // Just pass all these through, no need for a "struct" prefix let typedef_structs = [ @@ -4808,7 +4811,7 @@ fn test_linux_like_apis(target: &str) { if linux || android || emscripten { // test strerror_r from the `string.h` header config_gnu_bits(target, &mut cfg); - headers! { cfg: "string.h" } + headers!(cfg, "string.h",); cfg.skip_alias(|_| true) .skip_static(|_| true) @@ -4893,10 +4896,7 @@ fn test_linux_like_apis(target: &str) { .skip_const(move |constant| !ipv6_constants.contains(&constant.ident())); config_gnu_bits(target, &mut cfg); - headers! { - cfg: - "linux/in6.h" - } + headers!(cfg, "linux/in6.h",); ctest::generate_test(&mut cfg, "../src/lib.rs", "linux_ipv6.rs").unwrap(); } @@ -4977,137 +4977,140 @@ fn test_haiku(target: &str) { cfg.language(ctest::Language::CXX); // POSIX API - headers! { cfg: - "alloca.h", - "arpa/inet.h", - "arpa/nameser.h", - "arpa/nameser_compat.h", - "assert.h", - "complex.h", - "ctype.h", - "dirent.h", - "div_t.h", - "dlfcn.h", - "endian.h", - "errno.h", - "fcntl.h", - "fenv.h", - "fnmatch.h", - "fts.h", - "ftw.h", - "getopt.h", - "glob.h", - "grp.h", - "inttypes.h", - "iovec.h", - "langinfo.h", - "libgen.h", - "libio.h", - "limits.h", - "locale.h", - "malloc.h", - "malloc_debug.h", - "math.h", - "memory.h", - "monetary.h", - "net/if.h", - "net/if_dl.h", - "net/if_media.h", - "net/if_tun.h", - "net/if_types.h", - "net/route.h", - "netdb.h", - "netinet/in.h", - "netinet/ip.h", - "netinet/ip6.h", - "netinet/ip_icmp.h", - "netinet/ip_var.h", - "netinet/tcp.h", - "netinet/udp.h", - "netinet6/in6.h", - "nl_types.h", - "null.h", - "poll.h", - "pthread.h", - "pwd.h", - "regex.h", - "resolv.h", - "sched.h", - "search.h", - "semaphore.h", - "setjmp.h", - "shadow.h", - "signal.h", - "size_t.h", - "spawn.h", - "stdint.h", - "stdio.h", - "stdlib.h", - "string.h", - "strings.h", - "sys/cdefs.h", - "sys/file.h", - "sys/ioctl.h", - "sys/ipc.h", - "sys/mman.h", - "sys/msg.h", - "sys/param.h", - "sys/poll.h", - "sys/resource.h", - "sys/select.h", - "sys/sem.h", - "sys/socket.h", - "sys/sockio.h", - "sys/stat.h", - "sys/statvfs.h", - "sys/time.h", - "sys/timeb.h", - "sys/times.h", - "sys/types.h", - "sys/uio.h", - "sys/un.h", - "sys/utsname.h", - "sys/wait.h", - "syslog.h", - "tar.h", - "termios.h", - "time.h", - "uchar.h", - "unistd.h", - "utime.h", - "utmpx.h", - "wchar.h", - "wchar_t.h", - "wctype.h" - } + headers!( + cfg, + "alloca.h", + "arpa/inet.h", + "arpa/nameser.h", + "arpa/nameser_compat.h", + "assert.h", + "complex.h", + "ctype.h", + "dirent.h", + "div_t.h", + "dlfcn.h", + "endian.h", + "errno.h", + "fcntl.h", + "fenv.h", + "fnmatch.h", + "fts.h", + "ftw.h", + "getopt.h", + "glob.h", + "grp.h", + "inttypes.h", + "iovec.h", + "langinfo.h", + "libgen.h", + "libio.h", + "limits.h", + "locale.h", + "malloc.h", + "malloc_debug.h", + "math.h", + "memory.h", + "monetary.h", + "net/if.h", + "net/if_dl.h", + "net/if_media.h", + "net/if_tun.h", + "net/if_types.h", + "net/route.h", + "netdb.h", + "netinet/in.h", + "netinet/ip.h", + "netinet/ip6.h", + "netinet/ip_icmp.h", + "netinet/ip_var.h", + "netinet/tcp.h", + "netinet/udp.h", + "netinet6/in6.h", + "nl_types.h", + "null.h", + "poll.h", + "pthread.h", + "pwd.h", + "regex.h", + "resolv.h", + "sched.h", + "search.h", + "semaphore.h", + "setjmp.h", + "shadow.h", + "signal.h", + "size_t.h", + "spawn.h", + "stdint.h", + "stdio.h", + "stdlib.h", + "string.h", + "strings.h", + "sys/cdefs.h", + "sys/file.h", + "sys/ioctl.h", + "sys/ipc.h", + "sys/mman.h", + "sys/msg.h", + "sys/param.h", + "sys/poll.h", + "sys/resource.h", + "sys/select.h", + "sys/sem.h", + "sys/socket.h", + "sys/sockio.h", + "sys/stat.h", + "sys/statvfs.h", + "sys/time.h", + "sys/timeb.h", + "sys/times.h", + "sys/types.h", + "sys/uio.h", + "sys/un.h", + "sys/utsname.h", + "sys/wait.h", + "syslog.h", + "tar.h", + "termios.h", + "time.h", + "uchar.h", + "unistd.h", + "utime.h", + "utmpx.h", + "wchar.h", + "wchar_t.h", + "wctype.h", + ); // BSD Extensions - headers! { cfg: - "ifaddrs.h", - "libutil.h", - "link.h", - "pty.h", - "stdlib.h", - "stringlist.h", - "sys/link_elf.h", - } + headers!( + cfg, + "ifaddrs.h", + "libutil.h", + "link.h", + "pty.h", + "stdlib.h", + "stringlist.h", + "sys/link_elf.h", + ); // Native API - headers! { cfg: - "kernel/OS.h", - "kernel/fs_attr.h", - "kernel/fs_index.h", - "kernel/fs_info.h", - "kernel/fs_query.h", - "kernel/fs_volume.h", - "kernel/image.h", - "kernel/scheduler.h", - "storage/FindDirectory.h", - "storage/StorageDefs.h", - "support/Errors.h", - "support/SupportDefs.h", - "support/TypeConstants.h" - } + headers!( + cfg, + "kernel/OS.h", + "kernel/fs_attr.h", + "kernel/fs_index.h", + "kernel/fs_info.h", + "kernel/fs_query.h", + "kernel/fs_volume.h", + "kernel/image.h", + "kernel/scheduler.h", + "storage/FindDirectory.h", + "storage/StorageDefs.h", + "support/Errors.h", + "support/SupportDefs.h", + "support/TypeConstants.h", + ); cfg.skip_union(|union_| union_.ident().starts_with("__c_anonymous_")); cfg.skip_struct(move |struct_| { @@ -5319,92 +5322,93 @@ fn test_aix(target: &str) { // 'IN6ADDR_LOOPBACK_INIT' in netinent/in.h. cfg.flag("-Wno-missing-braces"); - headers! { cfg: - "aio.h", - "ctype.h", - "dirent.h", - "dlfcn.h", - "errno.h", - "fcntl.h", - "fnmatch.h", - "glob.h", - "grp.h", - "iconv.h", - "langinfo.h", - "libgen.h", - "limits.h", - "locale.h", - "malloc.h", - "mntent.h", - "mqueue.h", - "netinet/in.h", // this needs be before net/if.h - "poll.h", // this needs be before net/if.h - "sys/pollset.h", // this needs to be before net/if.h - "net/if.h", - "net/bpf.h", // this needs to be after net/if.h - "net/if_dl.h", - "netdb.h", - "netinet/tcp.h", - "netinet/sctp.h", - "pthread.h", - "pwd.h", - "rpcsvc/mount.h", - "rpcsvc/rstat.h", - "regex.h", - "resolv.h", - "sched.h", - "search.h", - "semaphore.h", - "signal.h", - "spawn.h", - "stddef.h", - "stdint.h", - "stdio.h", - "stdlib.h", - "string.h", - "strings.h", - "sys/aacct.h", - "sys/acct.h", - "sys/dr.h", - "sys/file.h", - "sys/io.h", - "sys/ioctl.h", - "sys/ipc.h", - "sys/ldr.h", - "sys/mman.h", - "sys/msg.h", - "sys/reg.h", - "sys/resource.h", - "sys/sem.h", - "sys/shm.h", - "sys/socket.h", - "sys/stat.h", - "sys/statfs.h", - "sys/statvfs.h", - "sys/stropts.h", - "sys/termio.h", - "sys/time.h", - "sys/times.h", - "sys/types.h", - "sys/uio.h", - "sys/un.h", - "sys/user.h", - "sys/utsname.h", - "sys/vattr.h", - "sys/vminfo.h", - "sys/wait.h", - "sys/xti.h", - "syslog.h", - "termios.h", - "thread.h", - "time.h", - "ucontext.h", - "unistd.h", - "utime.h", - "utmp.h", - "utmpx.h", - "wchar.h", - } + headers!( + cfg, + "aio.h", + "ctype.h", + "dirent.h", + "dlfcn.h", + "errno.h", + "fcntl.h", + "fnmatch.h", + "glob.h", + "grp.h", + "iconv.h", + "langinfo.h", + "libgen.h", + "limits.h", + "locale.h", + "malloc.h", + "mntent.h", + "mqueue.h", + "netinet/in.h", // this needs be before net/if.h + "poll.h", // this needs be before net/if.h + "sys/pollset.h", // this needs to be before net/if.h + "net/if.h", + "net/bpf.h", // this needs to be after net/if.h + "net/if_dl.h", + "netdb.h", + "netinet/tcp.h", + "netinet/sctp.h", + "pthread.h", + "pwd.h", + "rpcsvc/mount.h", + "rpcsvc/rstat.h", + "regex.h", + "resolv.h", + "sched.h", + "search.h", + "semaphore.h", + "signal.h", + "spawn.h", + "stddef.h", + "stdint.h", + "stdio.h", + "stdlib.h", + "string.h", + "strings.h", + "sys/aacct.h", + "sys/acct.h", + "sys/dr.h", + "sys/file.h", + "sys/io.h", + "sys/ioctl.h", + "sys/ipc.h", + "sys/ldr.h", + "sys/mman.h", + "sys/msg.h", + "sys/reg.h", + "sys/resource.h", + "sys/sem.h", + "sys/shm.h", + "sys/socket.h", + "sys/stat.h", + "sys/statfs.h", + "sys/statvfs.h", + "sys/stropts.h", + "sys/termio.h", + "sys/time.h", + "sys/times.h", + "sys/types.h", + "sys/uio.h", + "sys/un.h", + "sys/user.h", + "sys/utsname.h", + "sys/vattr.h", + "sys/vminfo.h", + "sys/wait.h", + "sys/xti.h", + "syslog.h", + "termios.h", + "thread.h", + "time.h", + "ucontext.h", + "unistd.h", + "utime.h", + "utmp.h", + "utmpx.h", + "wchar.h", + ); cfg.skip_alias(move |ty| match ty.ident() { // AIX does not define type 'sighandler_t'. From df71428115ecc6bd208ba9839a7c337573a4eefa Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 23 Oct 2025 03:53:04 -0400 Subject: [PATCH 0913/1228] style: Adjust a comment so rustfmt works Rustfmt was skipping this entire block because it doesn't support comments in the middle of chained `|`. So, add a `=> true` after `IPV6_FLOWINFO_PRIORITY` and the whole closure starts to get formatted again. (backport ) (cherry picked from commit 4e4d9c223e05ab7b34f144f6167984db3b7e4b95) --- libc-test/build.rs | 112 ++++++++++++++++++++------------------------- 1 file changed, 49 insertions(+), 63 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 22185284fab20..fe178dcb4426f 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4212,13 +4212,11 @@ fn test_linux(target: &str) { || name == "SO_DEVMEM_DMABUF" || name == "SO_DEVMEM_DONTNEED" { - return true; + return true; } // FIXME(musl): Not in musl yet - if name == "SCM_DEVMEM_LINEAR" - || name == "SCM_DEVMEM_DMABUF" - { - return true; + if name == "SCM_DEVMEM_LINEAR" || name == "SCM_DEVMEM_DMABUF" { + return true; } // FIXME: Does not exist on non-x86 architectures, slated for removal // in libc in 1.0 @@ -4230,7 +4228,7 @@ fn test_linux(target: &str) { // Constants that don't exist on the old version of musl we test with, but do exist // on newer versions. match name { - | "FAN_EVENT_INFO_TYPE_ERROR" + "FAN_EVENT_INFO_TYPE_ERROR" | "FAN_EVENT_INFO_TYPE_NEW_DFID_NAME" | "FAN_EVENT_INFO_TYPE_OLD_DFID_NAME" | "FAN_FS_ERROR" @@ -4252,8 +4250,7 @@ fn test_linux(target: &str) { | "RLIM_NLIMITS" | "SI_DETHREAD" | "SO_BUSY_POLL_BUDGET" - | "SO_PREFER_BUSY_POLL" - => return true, + | "SO_PREFER_BUSY_POLL" => return true, // Values changed in newer musl versions on these arches "O_LARGEFILE" if riscv64 || x86_64 => return true, _ => (), @@ -4264,13 +4261,13 @@ fn test_linux(target: &str) { // and can therefore not be tested here // // The IPV6 constants are tested in the `linux_ipv6.rs` tests: - | "IPV6_FLOWINFO" + "IPV6_FLOWINFO" | "IPV6_FLOWLABEL_MGR" | "IPV6_FLOWINFO_SEND" | "IPV6_FLOWINFO_FLOWLABEL" - | "IPV6_FLOWINFO_PRIORITY" + | "IPV6_FLOWINFO_PRIORITY" => true, // The F_ fnctl constants are tested in the `linux_fnctl.rs` tests: - | "F_CANCELLK" + "F_CANCELLK" | "F_ADD_SEALS" | "F_GET_SEALS" | "F_SEAL_SEAL" @@ -4293,12 +4290,7 @@ fn test_linux(target: &str) { // FIXME(linux): conflicts with glibc headers and is tested in // `linux_termios.rs` below: - | "BOTHER" - | "IBSHIFT" - | "TCGETS2" - | "TCSETS2" - | "TCSETSW2" - | "TCSETSF2" => true, + "BOTHER" | "IBSHIFT" | "TCGETS2" | "TCSETS2" | "TCSETSW2" | "TCSETSF2" => true, // FIXME(musl): on musl the pthread types are defined a little differently // - these constants are used by the glibc implementation. @@ -4318,13 +4310,17 @@ fn test_linux(target: &str) { "SYS_clone3" if sparc64 => true, // FIXME(linux): Not defined on ARM, gnueabihf, mips, musl, PowerPC, riscv64, s390x, and sparc64. - "SYS_memfd_secret" if arm | gnueabihf | mips | musl | ppc | riscv64 | s390x | sparc64 => true, + "SYS_memfd_secret" + if arm | gnueabihf | mips | musl | ppc | riscv64 | s390x | sparc64 => + { + true + } // Skip as this signal codes and trap reasons need newer headers "TRAP_PERF" => true, // kernel constants not available in uclibc 1.0.34 - | "EXTPROC" + "EXTPROC" | "IPPROTO_BEETPH" | "IPPROTO_MPLS" | "IPV6_HDRINCL" @@ -4337,7 +4333,10 @@ fn test_linux(target: &str) { | "SHM_EXEC" | "UDP_GRO" | "UDP_SEGMENT" - if uclibc => true, + if uclibc => + { + true + } // headers conflicts with linux/pidfd.h "PIDFD_NONBLOCK" => true, @@ -4380,17 +4379,18 @@ fn test_linux(target: &str) { | "PR_SCHED_CORE_SCOPE_THREAD" | "PR_SCHED_CORE_SCOPE_THREAD_GROUP" | "PR_SCHED_CORE_SHARE_FROM" - | "PR_SCHED_CORE_SHARE_TO" if old_musl => true, + | "PR_SCHED_CORE_SHARE_TO" + if old_musl => + { + true + } // Not present in glibc "PR_SME_VL_LEN_MAX" | "PR_SME_SET_VL_INHERIT" | "PR_SME_SET_VL_ONE_EXEC" if gnu => true, // FIXME(linux): The below is no longer const in glibc 2.34: // https://github.com/bminor/glibc/commit/5d98a7dae955bafa6740c26eaba9c86060ae0344 - | "PTHREAD_STACK_MIN" - | "SIGSTKSZ" - | "MINSIGSTKSZ" - if gnu => true, + "PTHREAD_STACK_MIN" | "SIGSTKSZ" | "MINSIGSTKSZ" if gnu => true, // value changed "NF_NETDEV_NUMHOOKS" if sparc64 => true, @@ -4417,7 +4417,10 @@ fn test_linux(target: &str) { | "FAN_EVENT_INFO_TYPE_PIDFD" | "FAN_NOPIDFD" | "FAN_EPIDFD" - if musl => true, + if musl => + { + true + } // FIXME(linux): Requires >= 6.6 kernel headers. "XDP_USE_SG" | "XDP_PKT_CONTD" => true, @@ -4429,16 +4432,21 @@ fn test_linux(target: &str) { "XDP_UMEM_TX_SW_CSUM" | "XDP_TXMD_FLAGS_TIMESTAMP" | "XDP_TXMD_FLAGS_CHECKSUM" - | "XDP_TX_METADATA" - => true, + | "XDP_TX_METADATA" => true, // FIXME(linux): Requires >= 6.11 kernel headers. "XDP_UMEM_TX_METADATA_LEN" => true, // FIXME(linux): Requires >= 6.11 kernel headers. - "NS_GET_MNTNS_ID" | "NS_GET_PID_FROM_PIDNS" | "NS_GET_TGID_FROM_PIDNS" | "NS_GET_PID_IN_PIDNS" | "NS_GET_TGID_IN_PIDNS" => true, + "NS_GET_MNTNS_ID" + | "NS_GET_PID_FROM_PIDNS" + | "NS_GET_TGID_FROM_PIDNS" + | "NS_GET_PID_IN_PIDNS" + | "NS_GET_TGID_IN_PIDNS" => true, // FIXME(linux): Requires >= 6.12 kernel headers. - "MNT_NS_INFO_SIZE_VER0" | "NS_MNT_GET_INFO" | "NS_MNT_GET_NEXT" | "NS_MNT_GET_PREV" => true, + "MNT_NS_INFO_SIZE_VER0" | "NS_MNT_GET_INFO" | "NS_MNT_GET_NEXT" | "NS_MNT_GET_PREV" => { + true + } // FIXME(linux): Requires >= 6.6 kernel headers. "SYS_fchmodat2" => true, @@ -4447,33 +4455,13 @@ fn test_linux(target: &str) { "SYS_mseal" => true, // FIXME(linux): seems to not be available all the time (from : - "PF_VCPU" - | "PF_IDLE" - | "PF_EXITING" - | "PF_POSTCOREDUMP" - | "PF_IO_WORKER" - | "PF_WQ_WORKER" - | "PF_FORKNOEXEC" - | "PF_MCE_PROCESS" - | "PF_SUPERPRIV" - | "PF_DUMPCORE" - | "PF_SIGNALED" - | "PF_MEMALLOC" - | "PF_NPROC_EXCEEDED" - | "PF_USED_MATH" - | "PF_USER_WORKER" - | "PF_NOFREEZE" - | "PF_KSWAPD" - | "PF_MEMALLOC_NOFS" - | "PF_MEMALLOC_NOIO" - | "PF_LOCAL_THROTTLE" - | "PF_KTHREAD" - | "PF_RANDOMIZE" - | "PF_NO_SETAFFINITY" - | "PF_MCE_EARLY" - | "PF_MEMALLOC_PIN" - | "PF_BLOCK_TS" - | "PF_SUSPEND_TASK" => true, + "PF_VCPU" | "PF_IDLE" | "PF_EXITING" | "PF_POSTCOREDUMP" | "PF_IO_WORKER" + | "PF_WQ_WORKER" | "PF_FORKNOEXEC" | "PF_MCE_PROCESS" | "PF_SUPERPRIV" + | "PF_DUMPCORE" | "PF_SIGNALED" | "PF_MEMALLOC" | "PF_NPROC_EXCEEDED" + | "PF_USED_MATH" | "PF_USER_WORKER" | "PF_NOFREEZE" | "PF_KSWAPD" + | "PF_MEMALLOC_NOFS" | "PF_MEMALLOC_NOIO" | "PF_LOCAL_THROTTLE" | "PF_KTHREAD" + | "PF_RANDOMIZE" | "PF_NO_SETAFFINITY" | "PF_MCE_EARLY" | "PF_MEMALLOC_PIN" + | "PF_BLOCK_TS" | "PF_SUSPEND_TASK" => true, // FIXME(linux): Requires >= 6.9 kernel headers. "EPIOCSPARAMS" | "EPIOCGPARAMS" => true, @@ -4485,14 +4473,12 @@ fn test_linux(target: &str) { "SOF_TIMESTAMPING_OPT_RX_FILTER" => true, // FIXME(linux): Requires >= 6.12 kernel headers. - "SO_DEVMEM_LINEAR" - | "SO_DEVMEM_DMABUF" - | "SO_DEVMEM_DONTNEED" - | "SCM_DEVMEM_LINEAR" - | "SCM_DEVMEM_DMABUF" => true, + "SO_DEVMEM_LINEAR" | "SO_DEVMEM_DMABUF" | "SO_DEVMEM_DONTNEED" + | "SCM_DEVMEM_LINEAR" | "SCM_DEVMEM_DMABUF" => true, // FIXME(linux): Requires >= 6.4 kernel headers. - "PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG" | "PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG" => true, + "PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG" + | "PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG" => true, // FIXME(linux): Requires >= 6.14 kernel headers. "SECBIT_EXEC_DENY_INTERACTIVE" From 51932b9fe4745e061ed21731808957e695e749fb Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 23 Jul 2025 22:51:30 -0500 Subject: [PATCH 0914/1228] test: Use automatic test detection Move from `test/` to `tests/`, which is the directory for autodetection. This means that we can drop `[[test]]` entries in `libc-test/Cargo.toml` that don't require nondefault configuration like `harness = false`. The style library had to be moved to `style_lib` so that `style` could be used as the test name. (backport ) (cherry picked from commit eab41969cb267cb69b952fcadb355fcd9359a032) --- libc-test/Cargo.toml | 30 ++++--------------- libc-test/{test => tests}/ctest.rs | 0 libc-test/{test => tests}/linux_elf.rs | 0 libc-test/{test => tests}/linux_fcntl.rs | 0 libc-test/{test => tests}/linux_if_arp.rs | 0 libc-test/{test => tests}/linux_ipv6.rs | 0 .../{test => tests}/linux_kernel_version.rs | 0 libc-test/{test => tests}/linux_strerror_r.rs | 0 libc-test/{test => tests}/linux_termios.rs | 0 libc-test/{test => tests}/semver.rs | 0 .../{test/check_style.rs => tests/style.rs} | 4 +-- .../{test/style => tests/style_lib}/mod.rs | 0 libc-test/{test => tests}/style_tests.rs | 4 +-- 13 files changed, 10 insertions(+), 28 deletions(-) rename libc-test/{test => tests}/ctest.rs (100%) rename libc-test/{test => tests}/linux_elf.rs (100%) rename libc-test/{test => tests}/linux_fcntl.rs (100%) rename libc-test/{test => tests}/linux_if_arp.rs (100%) rename libc-test/{test => tests}/linux_ipv6.rs (100%) rename libc-test/{test => tests}/linux_kernel_version.rs (100%) rename libc-test/{test => tests}/linux_strerror_r.rs (100%) rename libc-test/{test => tests}/linux_termios.rs (100%) rename libc-test/{test => tests}/semver.rs (100%) rename libc-test/{test/check_style.rs => tests/style.rs} (96%) rename libc-test/{test/style => tests/style_lib}/mod.rs (100%) rename libc-test/{test => tests}/style_tests.rs (99%) diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 9ebac5ba11808..f761bab3a4dde 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -32,54 +32,36 @@ extra_traits = ["libc/extra_traits"] [[test]] name = "ctest" -path = "test/ctest.rs" harness = false [[test]] -name = "linux-fcntl" -path = "test/linux_fcntl.rs" +name = "linux_fcntl" harness = false [[test]] -name = "linux-if-arp" -path = "test/linux_if_arp.rs" +name = "linux_if_arp" harness = false [[test]] -name = "linux-ipv6" -path = "test/linux_ipv6.rs" +name = "linux_ipv6" harness = false [[test]] -name = "linux-elf" -path = "test/linux_elf.rs" +name = "linux_elf" harness = false [[test]] -name = "linux-strerror_r" -path = "test/linux_strerror_r.rs" +name = "linux_strerror_r" harness = false [[test]] -name = "linux-termios" -path = "test/linux_termios.rs" +name = "linux_termios" harness = false [[test]] name = "semver" -path = "test/semver.rs" harness = false -[[test]] -name = "style" -path = "test/check_style.rs" -harness = true - -[[test]] -name = "style_tests" -path = "test/style_tests.rs" -harness = true - # FIXME(msrv): These should be moved to the root Cargo.toml as `[workspace.lints.*]` # once MSRV is above 1.64 and replaced with `[lints] workspace=true` diff --git a/libc-test/test/ctest.rs b/libc-test/tests/ctest.rs similarity index 100% rename from libc-test/test/ctest.rs rename to libc-test/tests/ctest.rs diff --git a/libc-test/test/linux_elf.rs b/libc-test/tests/linux_elf.rs similarity index 100% rename from libc-test/test/linux_elf.rs rename to libc-test/tests/linux_elf.rs diff --git a/libc-test/test/linux_fcntl.rs b/libc-test/tests/linux_fcntl.rs similarity index 100% rename from libc-test/test/linux_fcntl.rs rename to libc-test/tests/linux_fcntl.rs diff --git a/libc-test/test/linux_if_arp.rs b/libc-test/tests/linux_if_arp.rs similarity index 100% rename from libc-test/test/linux_if_arp.rs rename to libc-test/tests/linux_if_arp.rs diff --git a/libc-test/test/linux_ipv6.rs b/libc-test/tests/linux_ipv6.rs similarity index 100% rename from libc-test/test/linux_ipv6.rs rename to libc-test/tests/linux_ipv6.rs diff --git a/libc-test/test/linux_kernel_version.rs b/libc-test/tests/linux_kernel_version.rs similarity index 100% rename from libc-test/test/linux_kernel_version.rs rename to libc-test/tests/linux_kernel_version.rs diff --git a/libc-test/test/linux_strerror_r.rs b/libc-test/tests/linux_strerror_r.rs similarity index 100% rename from libc-test/test/linux_strerror_r.rs rename to libc-test/tests/linux_strerror_r.rs diff --git a/libc-test/test/linux_termios.rs b/libc-test/tests/linux_termios.rs similarity index 100% rename from libc-test/test/linux_termios.rs rename to libc-test/tests/linux_termios.rs diff --git a/libc-test/test/semver.rs b/libc-test/tests/semver.rs similarity index 100% rename from libc-test/test/semver.rs rename to libc-test/tests/semver.rs diff --git a/libc-test/test/check_style.rs b/libc-test/tests/style.rs similarity index 96% rename from libc-test/test/check_style.rs rename to libc-test/tests/style.rs index d1d7fdf4aa150..d5af8dddbf973 100644 --- a/libc-test/test/check_style.rs +++ b/libc-test/tests/style.rs @@ -9,12 +9,12 @@ //! cargo test --test style //! ``` -pub mod style; +pub mod style_lib; use std::env; use std::path::Path; -use style::{Result, StyleChecker}; +use style_lib::{Result, StyleChecker}; /// Relative to `src/`. const SKIP_PREFIXES: &[&str] = &[ diff --git a/libc-test/test/style/mod.rs b/libc-test/tests/style_lib/mod.rs similarity index 100% rename from libc-test/test/style/mod.rs rename to libc-test/tests/style_lib/mod.rs diff --git a/libc-test/test/style_tests.rs b/libc-test/tests/style_tests.rs similarity index 99% rename from libc-test/test/style_tests.rs rename to libc-test/tests/style_tests.rs index be8fddbccf644..e136bb66d26a4 100644 --- a/libc-test/test/style_tests.rs +++ b/libc-test/tests/style_tests.rs @@ -1,8 +1,8 @@ //! Verifies the implementation of the style checker in [style]. -use style::StyleChecker; +use style_lib::StyleChecker; -pub mod style; +pub mod style_lib; #[test] fn check_style_accept_correct_module_layout() { From b8ab4488906e277fd17bf49206986a676a0b55ab Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 23 Oct 2025 04:17:24 -0400 Subject: [PATCH 0915/1228] test: Commonize shared configuration Every platform needs the `__c_anonymous` config and most need to skip `__uint128`, so just do these in a common place. (backport ) (cherry picked from commit c22bf186d2986ad804fc7e928f1d1d3c33b0e565) --- libc-test/build.rs | 102 +++++++-------------------------------------- 1 file changed, 16 insertions(+), 86 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index fe178dcb4426f..51457f3b4f6e3 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -72,6 +72,16 @@ fn do_ctest() { fn ctest_cfg() -> ctest::TestGenerator { let mut cfg = ctest::TestGenerator::new(); cfg.skip_private(true); + + // Skip anonymous unions/structs. + cfg.skip_union(|u| u.ident().starts_with("__c_anonymous_")); + cfg.skip_struct(|s| s.ident().starts_with("__c_anonymous_")); + cfg.skip_alias(|ty| ty.ident().starts_with("__c_anonymous_")); + + // __uint128 is not declared in C, but is an alias we export. + // FIXME(1.0): These aliases will eventually be removed. + cfg.skip_alias(|ty| ty.ident() == "__uint128"); + cfg } @@ -307,10 +317,6 @@ fn test_apple(target: &str) { (x86_64, "crt_externs.h"), ); - // Skip anonymous unions/structs. - cfg.skip_union(|u| u.ident().starts_with("__c_anonymous_")); - cfg.skip_struct(|s| s.ident().starts_with("__c_anonymous_")); - cfg.skip_struct(|s| { match s.ident() { // FIXME(union): actually a union @@ -324,15 +330,6 @@ fn test_apple(target: &str) { } }); - cfg.skip_alias(|ty| ty.ident().starts_with("__c_anonymous_")); - cfg.skip_alias(|ty| { - match ty.ident() { - // FIXME(macos): "'__uint128' undeclared" in C - "__uint128" => true, - _ => false, - } - }); - cfg.skip_const(move |constant| { match constant.ident() { // They're declared via `deprecated_mach` and we don't support it anymore. @@ -590,9 +587,6 @@ fn test_openbsd(target: &str) { } }); - // Skip anonymous unions/structs. - cfg.skip_union(|u| u.ident().starts_with("__c_anonymous_")); - cfg.skip_struct(|s| s.ident().starts_with("__c_anonymous_")); cfg.skip_struct(move |ty| { match ty.ident() { // FIXME(union): actually a union @@ -729,14 +723,6 @@ fn test_cygwin(target: &str) { _ => false, }); - cfg.skip_struct(move |struct_| { - if struct_.ident().starts_with("__c_anonymous_") { - return true; - } - - false - }); - cfg.rename_struct_field(move |struct_, field| { match field.ident() { // Our stat *_nsec fields normally don't actually exist but are part @@ -869,17 +855,12 @@ fn test_windows(target: &str) { }); cfg.skip_struct(move |struct_| { - let ty = struct_.ident(); - if ty.starts_with("__c_anonymous_") { - return true; - } - match ty { + match struct_.ident() { // FIXME(windows): The size and alignment of this struct are incorrect "timespec" if gnu && i686 => true, _ => false, } }); - cfg.skip_union(move |union_| union_.ident().starts_with("__c_anonymous_")); cfg.skip_const(move |constant| { match constant.ident() { @@ -1141,15 +1122,12 @@ fn test_solarish(target: &str) { cfg.skip_union(|union_| { // the union handling is a mess - if union_.ident().starts_with("__c_anonymous_") || union_.ident().contains("door_desc_t_") { + if union_.ident().contains("door_desc_t_") { return true; } false }); cfg.skip_struct(move |struct_| { - if struct_.ident().starts_with("__c_anonymous_") { - return true; - } // the union handling is a mess if struct_.ident().contains("door_desc_t_") { return true; @@ -1392,13 +1370,7 @@ fn test_netbsd(target: &str) { } }); - cfg.skip_struct(|ty| ty.ident().starts_with("__c_anonymous_")); - cfg.skip_union(|ty| ty.ident().starts_with("__c_anonymous_")); - cfg.skip_alias(move |ty| { - if ty.ident().starts_with("__c_anonymous_") { - return true; - } match ty.ident() { // FIXME(netbsd): sighandler_t is crazy across platforms "sighandler_t" => true, @@ -1627,9 +1599,6 @@ fn test_dragonflybsd(target: &str) { }); cfg.skip_struct(move |struct_| { - if struct_.ident().starts_with("__c_anonymous_") { - return true; - } match struct_.ident() { // FIXME(dragonflybsd): These are tested as part of the linux_fcntl tests since // there are header conflicts when including them with all the other @@ -2007,8 +1976,6 @@ fn test_android(target: &str) { "posix_spawn_file_actions_t" => true, "posix_spawnattr_t" => true, - // FIXME(android): "'__uint128' undeclared" in C - "__uint128" => true, // Added in API level 24 "if_nameindex" => true, @@ -2016,12 +1983,7 @@ fn test_android(target: &str) { } }); - cfg.skip_union(move |union_| union_.ident().starts_with("__c_anonymous_")); - cfg.skip_struct(move |struct_| { - if struct_.ident().starts_with("__c_anonymous_") { - return true; - } match struct_.ident() { // These are tested as part of the linux_fcntl tests since there are // header conflicts when including them with all the other structs. @@ -2812,13 +2774,8 @@ fn test_freebsd(target: &str) { } }); - cfg.skip_union(|u| u.ident().starts_with("__c_anonymous_")); cfg.skip_struct(move |struct_| { - let ty = struct_.ident(); - if ty.starts_with("__c_anonymous_") { - return true; - } - match ty { + match struct_.ident() { // `procstat` is a private struct "procstat" => true, @@ -3132,10 +3089,6 @@ fn test_emscripten(target: &str) { }); cfg.skip_union(|union_| { - if union_.ident().starts_with("__c_anonymous_") { - return true; - } - match union_.ident() { // No epoll support // https://github.com/emscripten-core/emscripten/issues/5033 @@ -3154,9 +3107,6 @@ fn test_emscripten(target: &str) { }); cfg.skip_struct(move |struct_| { - if struct_.ident().starts_with("__c_anonymous_") { - return true; - } match struct_.ident() { // This is actually a union, not a struct "sigval" => true, @@ -3430,17 +3380,11 @@ fn test_neutrino(target: &str) { // Does not exist in Neutrino "locale_t" => true, - // FIXME: "'__uint128' undeclared" in C - "__uint128" => true, - _ => false, } }); cfg.skip_struct(move |struct_| { - if struct_.ident().starts_with("__c_anonymous_") { - return true; - } match struct_.ident() { "Elf64_Phdr" | "Elf32_Phdr" => true, @@ -4014,9 +3958,6 @@ fn test_linux(target: &str) { // specific type. "Ioctl" => true, - // FIXME: "'__uint128' undeclared" in C - "__uint128" => true, - t => { if musl { // LFS64 types have been removed in musl 1.2.4+ @@ -4028,10 +3969,6 @@ fn test_linux(target: &str) { } }); - // Skip structs and enums that are unnamed in C. - cfg.skip_union(move |union_| union_.ident().starts_with("__c_anonymous_")); - cfg.skip_struct(move |struct_| struct_.ident().starts_with("__c_anonymous_")); - cfg.skip_struct(move |struct_| { let ty = struct_.ident(); @@ -4113,10 +4050,7 @@ fn test_linux(target: &str) { "xdp_umem_reg" => true, // FIXME(linux): Requires >= 6.8 kernel headers. - "xsk_tx_metadata" - | "__c_anonymous_xsk_tx_metadata_union" - | "xsk_tx_metadata_request" - | "xsk_tx_metadata_completion" => true, + "xsk_tx_metadata" | "xsk_tx_metadata_request" | "xsk_tx_metadata_completion" => true, // A new field was added in kernel 5.4, this is the old version for backwards compatibility. // https://github.com/torvalds/linux/commit/77cd0d7b3f257fd0e3096b4fdcff1a7d38e99e10 @@ -4797,9 +4731,9 @@ fn test_linux_like_apis(target: &str) { if linux || android || emscripten { // test strerror_r from the `string.h` header config_gnu_bits(target, &mut cfg); - headers!(cfg, "string.h",); - cfg.skip_alias(|_| true) + cfg.header("string.h") + .skip_alias(|_| true) .skip_static(|_| true) .skip_const(|_| true) .skip_struct(|_| true) @@ -5098,11 +5032,7 @@ fn test_haiku(target: &str) { "support/TypeConstants.h", ); - cfg.skip_union(|union_| union_.ident().starts_with("__c_anonymous_")); cfg.skip_struct(move |struct_| { - if struct_.ident().starts_with("__c_anonymous_") { - return true; - } match struct_.ident() { // FIXME(union): actually a union "sigval" => true, From a3e3b594fd75ecd9bd50d8dcd34be53e55596736 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 23 Oct 2025 05:58:28 -0400 Subject: [PATCH 0916/1228] apple: Port mcontext and ucontext to the new structure This includes `signal.h` stubs since that is a common header to import these types. (backport ) (cherry picked from commit 67f88659c80ce963de720fcfc5ebe6490c033f37) --- src/new/apple/apple_libc/signal.rs | 5 + src/new/apple/mod.rs | 10 ++ src/new/apple/xnu/arm/_mcontext.rs | 15 +++ src/new/apple/xnu/i386/_mcontext.rs | 15 +++ src/new/apple/xnu/mach/arm/_structs.rs | 37 ++++++++ src/new/apple/xnu/mach/i386/_structs.rs | 92 +++++++++++++++++++ src/new/apple/xnu/mach/machine/_structs.rs | 13 +++ src/new/apple/xnu/mach/mod.rs | 20 ++++ src/new/apple/xnu/machine/_mcontext.rs | 11 +++ src/new/apple/xnu/mod.rs | 30 ++++++ src/new/apple/xnu/sys/_types/_ucontext.rs | 17 ++++ src/new/apple/xnu/sys/mod.rs | 12 +++ src/new/apple/xnu/sys/signal.rs | 6 ++ src/new/mod.rs | 14 +++ src/unix/bsd/apple/b64/aarch64/mod.rs | 38 -------- src/unix/bsd/apple/b64/x86_64/mod.rs | 102 --------------------- triagebot.toml | 5 +- 17 files changed, 301 insertions(+), 141 deletions(-) create mode 100644 src/new/apple/apple_libc/signal.rs create mode 100644 src/new/apple/mod.rs create mode 100644 src/new/apple/xnu/arm/_mcontext.rs create mode 100644 src/new/apple/xnu/i386/_mcontext.rs create mode 100644 src/new/apple/xnu/mach/arm/_structs.rs create mode 100644 src/new/apple/xnu/mach/i386/_structs.rs create mode 100644 src/new/apple/xnu/mach/machine/_structs.rs create mode 100644 src/new/apple/xnu/mach/mod.rs create mode 100644 src/new/apple/xnu/machine/_mcontext.rs create mode 100644 src/new/apple/xnu/mod.rs create mode 100644 src/new/apple/xnu/sys/_types/_ucontext.rs create mode 100644 src/new/apple/xnu/sys/mod.rs create mode 100644 src/new/apple/xnu/sys/signal.rs diff --git a/src/new/apple/apple_libc/signal.rs b/src/new/apple/apple_libc/signal.rs new file mode 100644 index 0000000000000..971c47318c041 --- /dev/null +++ b/src/new/apple/apple_libc/signal.rs @@ -0,0 +1,5 @@ +//! Header: `signal.h` +//! +//! https://github.com/apple-oss-distributions/Libc/blob/main/include/signal.h + +pub use crate::sys::signal::*; diff --git a/src/new/apple/mod.rs b/src/new/apple/mod.rs new file mode 100644 index 0000000000000..c855a135ccf3b --- /dev/null +++ b/src/new/apple/mod.rs @@ -0,0 +1,10 @@ +//! Entrypoint for Apple headers, usually found as part of the Xcode SDK. + +pub(crate) mod xnu; +pub(crate) use xnu::*; + +pub(crate) mod apple_libc { + pub(crate) mod signal; +} + +pub(crate) use apple_libc::*; diff --git a/src/new/apple/xnu/arm/_mcontext.rs b/src/new/apple/xnu/arm/_mcontext.rs new file mode 100644 index 0000000000000..e57bc4f8adb09 --- /dev/null +++ b/src/new/apple/xnu/arm/_mcontext.rs @@ -0,0 +1,15 @@ +//! Header: `arm/_mcontext.h` +//! +//! https://github.com/apple-oss-distributions/xnu/blob/main/bsd/arm/_mcontext.h + +pub use crate::mach::machine::_structs::*; + +s! { + pub struct __darwin_mcontext64 { + pub __es: __darwin_arm_exception_state64, + pub __ss: __darwin_arm_thread_state64, + pub __ns: __darwin_arm_neon_state64, + } +} + +pub type mcontext_t = *mut __darwin_mcontext64; diff --git a/src/new/apple/xnu/i386/_mcontext.rs b/src/new/apple/xnu/i386/_mcontext.rs new file mode 100644 index 0000000000000..8ca3b116d9f26 --- /dev/null +++ b/src/new/apple/xnu/i386/_mcontext.rs @@ -0,0 +1,15 @@ +//! Header: `i386/_mcontext.h` +//! +//! https://github.com/apple-oss-distributions/xnu/blob/main/bsd/i386/_mcontext.h + +pub use crate::mach::machine::_structs::*; + +s! { + pub struct __darwin_mcontext64 { + pub __es: __darwin_x86_exception_state64, + pub __ss: __darwin_x86_thread_state64, + pub __fs: __darwin_x86_float_state64, + } +} + +pub type mcontext_t = *mut __darwin_mcontext64; diff --git a/src/new/apple/xnu/mach/arm/_structs.rs b/src/new/apple/xnu/mach/arm/_structs.rs new file mode 100644 index 0000000000000..d8d3b958ad5dd --- /dev/null +++ b/src/new/apple/xnu/mach/arm/_structs.rs @@ -0,0 +1,37 @@ +//! Header: `arm/_structs.h` +//! +//! https://github.com/apple-oss-distributions/xnu/blob/main/osfmk/mach/arm/_structs.h + +#[cfg(target_arch = "arm")] +use crate::prelude::*; + +s! { + pub struct __darwin_arm_exception_state64 { + pub __far: u64, + pub __esr: u32, + pub __exception: u32, + } + + pub struct __darwin_arm_thread_state64 { + pub __x: [u64; 29], + pub __fp: u64, + pub __lr: u64, + pub __sp: u64, + pub __pc: u64, + pub __cpsr: u32, + pub __pad: u32, + } + + #[cfg(target_arch = "aarch64")] + pub struct __darwin_arm_neon_state64 { + pub __v: [crate::__uint128_t; 32], + pub __fpsr: u32, + pub __fpcr: u32, + } + + #[cfg(target_arch = "arm")] + #[repr(align(16))] + pub struct __darwin_arm_neon_state64 { + opaque: [c_char; (32 * 16) + (2 * size_of::())], + } +} diff --git a/src/new/apple/xnu/mach/i386/_structs.rs b/src/new/apple/xnu/mach/i386/_structs.rs new file mode 100644 index 0000000000000..ea274e26a6885 --- /dev/null +++ b/src/new/apple/xnu/mach/i386/_structs.rs @@ -0,0 +1,92 @@ +//! Header: `i386/_structs.h` +//! +//! https://github.com/apple-oss-distributions/xnu/blob/main/osfmk/mach/i386/_structs.h + +use crate::prelude::*; + +s! { + pub struct __darwin_mmst_reg { + pub __mmst_reg: [c_char; 10], + pub __mmst_rsrv: [c_char; 6], + } + + pub struct __darwin_xmm_reg { + pub __xmm_reg: [c_char; 16], + } + + pub struct __darwin_x86_thread_state64 { + pub __rax: u64, + pub __rbx: u64, + pub __rcx: u64, + pub __rdx: u64, + pub __rdi: u64, + pub __rsi: u64, + pub __rbp: u64, + pub __rsp: u64, + pub __r8: u64, + pub __r9: u64, + pub __r10: u64, + pub __r11: u64, + pub __r12: u64, + pub __r13: u64, + pub __r14: u64, + pub __r15: u64, + pub __rip: u64, + pub __rflags: u64, + pub __cs: u64, + pub __fs: u64, + pub __gs: u64, + } + + pub struct __darwin_x86_exception_state64 { + pub __trapno: u16, + pub __cpu: u16, + pub __err: u32, + pub __faultvaddr: u64, + } + + pub struct __darwin_x86_float_state64 { + pub __fpu_reserved: [c_int; 2], + __fpu_fcw: c_short, + __fpu_fsw: c_short, + pub __fpu_ftw: u8, + pub __fpu_rsrv1: u8, + pub __fpu_fop: u16, + pub __fpu_ip: u32, + pub __fpu_cs: u16, + pub __fpu_rsrv2: u16, + pub __fpu_dp: u32, + pub __fpu_ds: u16, + pub __fpu_rsrv3: u16, + pub __fpu_mxcsr: u32, + pub __fpu_mxcsrmask: u32, + pub __fpu_stmm0: __darwin_mmst_reg, + pub __fpu_stmm1: __darwin_mmst_reg, + pub __fpu_stmm2: __darwin_mmst_reg, + pub __fpu_stmm3: __darwin_mmst_reg, + pub __fpu_stmm4: __darwin_mmst_reg, + pub __fpu_stmm5: __darwin_mmst_reg, + pub __fpu_stmm6: __darwin_mmst_reg, + pub __fpu_stmm7: __darwin_mmst_reg, + pub __fpu_xmm0: __darwin_xmm_reg, + pub __fpu_xmm1: __darwin_xmm_reg, + pub __fpu_xmm2: __darwin_xmm_reg, + pub __fpu_xmm3: __darwin_xmm_reg, + pub __fpu_xmm4: __darwin_xmm_reg, + pub __fpu_xmm5: __darwin_xmm_reg, + pub __fpu_xmm6: __darwin_xmm_reg, + pub __fpu_xmm7: __darwin_xmm_reg, + pub __fpu_xmm8: __darwin_xmm_reg, + pub __fpu_xmm9: __darwin_xmm_reg, + pub __fpu_xmm10: __darwin_xmm_reg, + pub __fpu_xmm11: __darwin_xmm_reg, + pub __fpu_xmm12: __darwin_xmm_reg, + pub __fpu_xmm13: __darwin_xmm_reg, + pub __fpu_xmm14: __darwin_xmm_reg, + pub __fpu_xmm15: __darwin_xmm_reg, + // FIXME(apple): this field is actually [u8; 96], but defining it with a bigger type allows + // us to auto-implement traits for it since the length of the array is less than 32 + __fpu_rsrv4: [u32; 24], + pub __fpu_reserved1: c_int, + } +} diff --git a/src/new/apple/xnu/mach/machine/_structs.rs b/src/new/apple/xnu/mach/machine/_structs.rs new file mode 100644 index 0000000000000..47df1005c86f8 --- /dev/null +++ b/src/new/apple/xnu/mach/machine/_structs.rs @@ -0,0 +1,13 @@ +//! Header: `mach/machine/_structs.h` +//! +//! https://github.com/apple-oss-distributions/xnu/blob/main/osfmk/mach/machine/_structs.h + +cfg_if! { + if #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] { + pub use crate::mach::i386::_structs::*; + } else if #[cfg(any(target_arch = "arm", target_arch = "aarch64"))] { + pub use crate::mach::arm::_structs::*; + } else { + // Unsupported arch + } +} diff --git a/src/new/apple/xnu/mach/mod.rs b/src/new/apple/xnu/mach/mod.rs new file mode 100644 index 0000000000000..d5fbee83e970e --- /dev/null +++ b/src/new/apple/xnu/mach/mod.rs @@ -0,0 +1,20 @@ +//! Directory: `mach/` +//! +//! https://github.com/apple-oss-distributions/xnu/tree/main/osfmk/mach + +/// Directory: `mach/arm` +#[cfg(any(target_arch = "arm", target_arch = "aarch64"))] +pub(crate) mod arm { + pub(crate) mod _structs; +} + +/// Directory: `mach/i386` +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +pub(crate) mod i386 { + pub(crate) mod _structs; +} + +/// Directory: `mach/machine` +pub(crate) mod machine { + pub(crate) mod _structs; +} diff --git a/src/new/apple/xnu/machine/_mcontext.rs b/src/new/apple/xnu/machine/_mcontext.rs new file mode 100644 index 0000000000000..004b94707e33a --- /dev/null +++ b/src/new/apple/xnu/machine/_mcontext.rs @@ -0,0 +1,11 @@ +//! Header: `machine/_mcontext.h` + +cfg_if! { + if #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] { + pub use crate::i386::_mcontext::*; + } else if #[cfg(any(target_arch = "arm", target_arch = "aarch64"))] { + pub use crate::arm::_mcontext::*; + } else { + // Unsupported arch + } +} diff --git a/src/new/apple/xnu/mod.rs b/src/new/apple/xnu/mod.rs new file mode 100644 index 0000000000000..8b8afb6bc39d3 --- /dev/null +++ b/src/new/apple/xnu/mod.rs @@ -0,0 +1,30 @@ +//! Source from XNU +//! +//! We omit nesting for the `bsd` module since most items of interest are in there. + +/// Directory: `arm/` +/// +/// https://github.com/apple-oss-distributions/xnu/tree/main/bsd/arm +#[cfg(any(target_arch = "arm", target_arch = "aarch64"))] +pub(crate) mod arm { + pub(crate) mod _mcontext; +} + +/// Directory: `i386/` +/// +/// https://github.com/apple-oss-distributions/xnu/tree/main/bsd/i386 +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +pub(crate) mod i386 { + pub(crate) mod _mcontext; +} + +pub(crate) mod mach; + +/// Directory: `machine/` +/// +/// https://github.com/apple-oss-distributions/xnu/tree/main/bsd/machine +pub(crate) mod machine { + pub(crate) mod _mcontext; +} + +pub(crate) mod sys; diff --git a/src/new/apple/xnu/sys/_types/_ucontext.rs b/src/new/apple/xnu/sys/_types/_ucontext.rs new file mode 100644 index 0000000000000..53bc0f22d6691 --- /dev/null +++ b/src/new/apple/xnu/sys/_types/_ucontext.rs @@ -0,0 +1,17 @@ +//! Header: `sys/_types/_ucontext.h` + +pub use crate::machine::_mcontext::*; +use crate::prelude::*; + +s! { + pub struct __darwin_ucontext { + pub uc_onstack: c_int, + pub uc_sigmask: crate::sigset_t, + pub uc_stack: crate::stack_t, + pub uc_link: *mut ucontext_t, + pub uc_mcsize: usize, + pub uc_mcontext: mcontext_t, + } +} + +pub type ucontext_t = __darwin_ucontext; diff --git a/src/new/apple/xnu/sys/mod.rs b/src/new/apple/xnu/sys/mod.rs new file mode 100644 index 0000000000000..8fdbe2846b58b --- /dev/null +++ b/src/new/apple/xnu/sys/mod.rs @@ -0,0 +1,12 @@ +//! Directory: `sys/` +//! +//! https://github.com/apple-oss-distributions/xnu/tree/main/bsd/sys + +pub(crate) mod signal; + +/// Directory: `sys/_types` +/// +/// https://github.com/apple-oss-distributions/xnu/tree/main/bsd/sys/_types +pub(crate) mod _types { + pub(crate) mod _ucontext; +} diff --git a/src/new/apple/xnu/sys/signal.rs b/src/new/apple/xnu/sys/signal.rs new file mode 100644 index 0000000000000..8399c830dc8cd --- /dev/null +++ b/src/new/apple/xnu/sys/signal.rs @@ -0,0 +1,6 @@ +//! Header: `sys/signal.h` +//! +//! https://github.com/apple-oss-distributions/xnu/blob/main/bsd/sys/signal.h + +pub use crate::machine::_mcontext::*; +pub use crate::sys::_types::_ucontext::*; diff --git a/src/new/mod.rs b/src/new/mod.rs index 0a2a55b0f469b..332c7c9001ea5 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -3,6 +3,16 @@ //! //! Eventually everything should be moved over, and we will move this directory to the top //! level in `src`. +//! +//! # Basic structure +//! +//! Each child module here represents a library or group of libraries that we are binding. Each of +//! these has several submodules, representing either a directory or a header file in that library. +//! +//! `#include`s turn into `pub use ...*;` statements. Then at the root level (here), we choose +//! which top-level headers we want to reexport the definitions for. +//! +//! All modules are only crate-public since we don't reexport this structure. cfg_if! { if #[cfg(target_os = "linux")] { @@ -11,5 +21,9 @@ cfg_if! { } else if #[cfg(target_os = "android")] { mod bionic; pub use bionic::*; + } else if #[cfg(target_vendor = "apple")] { + mod apple; + pub(crate) use apple::*; + pub use signal::*; } } diff --git a/src/unix/bsd/apple/b64/aarch64/mod.rs b/src/unix/bsd/apple/b64/aarch64/mod.rs index a13013c09b03b..b5cbe8ff5175f 100644 --- a/src/unix/bsd/apple/b64/aarch64/mod.rs +++ b/src/unix/bsd/apple/b64/aarch64/mod.rs @@ -1,49 +1,11 @@ use crate::prelude::*; pub type boolean_t = c_int; -pub type mcontext_t = *mut __darwin_mcontext64; s! { pub struct malloc_zone_t { __private: [crate::uintptr_t; 18], // FIXME(macos): needs arm64 auth pointers support } - - pub struct ucontext_t { - pub uc_onstack: c_int, - pub uc_sigmask: crate::sigset_t, - pub uc_stack: crate::stack_t, - pub uc_link: *mut crate::ucontext_t, - pub uc_mcsize: usize, - pub uc_mcontext: mcontext_t, - } - - pub struct __darwin_mcontext64 { - pub __es: __darwin_arm_exception_state64, - pub __ss: __darwin_arm_thread_state64, - pub __ns: __darwin_arm_neon_state64, - } - - pub struct __darwin_arm_exception_state64 { - pub __far: u64, - pub __esr: u32, - pub __exception: u32, - } - - pub struct __darwin_arm_thread_state64 { - pub __x: [u64; 29], - pub __fp: u64, - pub __lr: u64, - pub __sp: u64, - pub __pc: u64, - pub __cpsr: u32, - pub __pad: u32, - } - - pub struct __darwin_arm_neon_state64 { - pub __v: [crate::__uint128_t; 32], - pub __fpsr: u32, - pub __fpcr: u32, - } } s_no_extra_traits! { diff --git a/src/unix/bsd/apple/b64/x86_64/mod.rs b/src/unix/bsd/apple/b64/x86_64/mod.rs index 5365becf66c3e..2b22f489b9c6b 100644 --- a/src/unix/bsd/apple/b64/x86_64/mod.rs +++ b/src/unix/bsd/apple/b64/x86_64/mod.rs @@ -1,110 +1,8 @@ use crate::prelude::*; pub type boolean_t = c_uint; -pub type mcontext_t = *mut __darwin_mcontext64; s! { - pub struct ucontext_t { - pub uc_onstack: c_int, - pub uc_sigmask: crate::sigset_t, - pub uc_stack: crate::stack_t, - pub uc_link: *mut crate::ucontext_t, - pub uc_mcsize: usize, - pub uc_mcontext: mcontext_t, - } - - pub struct __darwin_mcontext64 { - pub __es: __darwin_x86_exception_state64, - pub __ss: __darwin_x86_thread_state64, - pub __fs: __darwin_x86_float_state64, - } - - pub struct __darwin_x86_exception_state64 { - pub __trapno: u16, - pub __cpu: u16, - pub __err: u32, - pub __faultvaddr: u64, - } - - pub struct __darwin_x86_thread_state64 { - pub __rax: u64, - pub __rbx: u64, - pub __rcx: u64, - pub __rdx: u64, - pub __rdi: u64, - pub __rsi: u64, - pub __rbp: u64, - pub __rsp: u64, - pub __r8: u64, - pub __r9: u64, - pub __r10: u64, - pub __r11: u64, - pub __r12: u64, - pub __r13: u64, - pub __r14: u64, - pub __r15: u64, - pub __rip: u64, - pub __rflags: u64, - pub __cs: u64, - pub __fs: u64, - pub __gs: u64, - } - - pub struct __darwin_x86_float_state64 { - pub __fpu_reserved: [c_int; 2], - __fpu_fcw: c_short, - __fpu_fsw: c_short, - pub __fpu_ftw: u8, - pub __fpu_rsrv1: u8, - pub __fpu_fop: u16, - pub __fpu_ip: u32, - pub __fpu_cs: u16, - pub __fpu_rsrv2: u16, - pub __fpu_dp: u32, - pub __fpu_ds: u16, - pub __fpu_rsrv3: u16, - pub __fpu_mxcsr: u32, - pub __fpu_mxcsrmask: u32, - pub __fpu_stmm0: __darwin_mmst_reg, - pub __fpu_stmm1: __darwin_mmst_reg, - pub __fpu_stmm2: __darwin_mmst_reg, - pub __fpu_stmm3: __darwin_mmst_reg, - pub __fpu_stmm4: __darwin_mmst_reg, - pub __fpu_stmm5: __darwin_mmst_reg, - pub __fpu_stmm6: __darwin_mmst_reg, - pub __fpu_stmm7: __darwin_mmst_reg, - pub __fpu_xmm0: __darwin_xmm_reg, - pub __fpu_xmm1: __darwin_xmm_reg, - pub __fpu_xmm2: __darwin_xmm_reg, - pub __fpu_xmm3: __darwin_xmm_reg, - pub __fpu_xmm4: __darwin_xmm_reg, - pub __fpu_xmm5: __darwin_xmm_reg, - pub __fpu_xmm6: __darwin_xmm_reg, - pub __fpu_xmm7: __darwin_xmm_reg, - pub __fpu_xmm8: __darwin_xmm_reg, - pub __fpu_xmm9: __darwin_xmm_reg, - pub __fpu_xmm10: __darwin_xmm_reg, - pub __fpu_xmm11: __darwin_xmm_reg, - pub __fpu_xmm12: __darwin_xmm_reg, - pub __fpu_xmm13: __darwin_xmm_reg, - pub __fpu_xmm14: __darwin_xmm_reg, - pub __fpu_xmm15: __darwin_xmm_reg, - // this field is actually [u8; 96], but defining it with a bigger type - // allows us to auto-implement traits for it since the length of the - // array is less than 32 - __fpu_rsrv4: [u32; 24], - pub __fpu_reserved1: c_int, - } - - pub struct __darwin_mmst_reg { - pub __mmst_reg: [c_char; 10], - pub __mmst_rsrv: [c_char; 6], - } - - pub struct __darwin_xmm_reg { - pub __xmm_reg: [c_char; 16], - } - pub struct malloc_introspection_t { _private: [crate::uintptr_t; 16], // FIXME(macos): keeping private for now } diff --git a/triagebot.toml b/triagebot.toml index 9b27504ffc9ae..099a4f87f3d4f 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -75,7 +75,10 @@ trigger_files = [ trigger_files = ["src/unix/linux_like/mod.rs"] [autolabel."O-macos"] -trigger_files = ["src/unix/bsd/apple"] +trigger_files = [ + "src/unix/bsd/apple", + "src/new/apple", +] [autolabel."O-mips"] trigger_files = [ From 8136e2c42f5b98d7d42a9a51727d64373bd9dbcc Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 23 Oct 2025 19:15:17 -0400 Subject: [PATCH 0917/1228] linux: Switch from glob exports to select imports Match Apple to make it more clear what headers we want to map. (backport ) (cherry picked from commit ed6645d101aabb0ec14814bf6c301c903c595bd0) --- src/new/linux_uapi/linux/can.rs | 4 ---- src/new/linux_uapi/linux/can/bcm.rs | 2 +- src/new/linux_uapi/linux/can/raw.rs | 2 +- src/new/linux_uapi/linux/keyctl.rs | 3 +-- src/new/linux_uapi/linux/mod.rs | 6 +++--- src/new/linux_uapi/mod.rs | 1 - src/new/mod.rs | 15 ++++++++++++++- 7 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/new/linux_uapi/linux/can.rs b/src/new/linux_uapi/linux/can.rs index 51e438434b09e..108a90b1a92c6 100644 --- a/src/new/linux_uapi/linux/can.rs +++ b/src/new/linux_uapi/linux/can.rs @@ -4,10 +4,6 @@ pub(crate) mod bcm; pub(crate) mod j1939; pub(crate) mod raw; -pub use bcm::*; -pub use j1939::*; -pub use raw::*; - use crate::prelude::*; pub const CAN_EFF_FLAG: canid_t = 0x80000000; diff --git a/src/new/linux_uapi/linux/can/bcm.rs b/src/new/linux_uapi/linux/can/bcm.rs index 2cdeb399b31f3..10f67d2db04e9 100644 --- a/src/new/linux_uapi/linux/can/bcm.rs +++ b/src/new/linux_uapi/linux/can/bcm.rs @@ -1,4 +1,4 @@ -//! `linux/can/bcm.h` +//! Header: `linux/can/bcm.h` pub use crate::linux::can::*; diff --git a/src/new/linux_uapi/linux/can/raw.rs b/src/new/linux_uapi/linux/can/raw.rs index 1f92a13edbba6..470334bd5d147 100644 --- a/src/new/linux_uapi/linux/can/raw.rs +++ b/src/new/linux_uapi/linux/can/raw.rs @@ -1,4 +1,4 @@ -//! `linux/can/raw.h` +//! Header: `linux/can/raw.h` pub use crate::linux::can::*; diff --git a/src/new/linux_uapi/linux/keyctl.rs b/src/new/linux_uapi/linux/keyctl.rs index 2c86df39e190b..cc6527a8a5113 100644 --- a/src/new/linux_uapi/linux/keyctl.rs +++ b/src/new/linux_uapi/linux/keyctl.rs @@ -1,6 +1,5 @@ -//! Header: `uapi/linux/keyctl.h` +//! Header: `linux/keyctl.h` -// linux/keyctl.h pub const KEY_SPEC_THREAD_KEYRING: i32 = -1; pub const KEY_SPEC_PROCESS_KEYRING: i32 = -2; pub const KEY_SPEC_SESSION_KEYRING: i32 = -3; diff --git a/src/new/linux_uapi/linux/mod.rs b/src/new/linux_uapi/linux/mod.rs index e264892063807..993394e4370ca 100644 --- a/src/new/linux_uapi/linux/mod.rs +++ b/src/new/linux_uapi/linux/mod.rs @@ -1,6 +1,6 @@ -//! The `linux` directory within `include/uapi` in the Linux source tree. +//! Directory: `linux/` +//! +//! pub(crate) mod can; -pub use can::*; pub(crate) mod keyctl; -pub use keyctl::*; diff --git a/src/new/linux_uapi/mod.rs b/src/new/linux_uapi/mod.rs index e0d4e094c435f..8ac3022d16578 100644 --- a/src/new/linux_uapi/mod.rs +++ b/src/new/linux_uapi/mod.rs @@ -1,4 +1,3 @@ //! This directory maps to `include/uapi` in the Linux source tree. pub(crate) mod linux; -pub use linux::*; diff --git a/src/new/mod.rs b/src/new/mod.rs index 332c7c9001ea5..410c7f5536fb8 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -14,16 +14,29 @@ //! //! All modules are only crate-public since we don't reexport this structure. +// Libraries available on each platform cfg_if! { if #[cfg(target_os = "linux")] { mod linux_uapi; - pub use linux_uapi::*; + pub(crate) use linux_uapi::*; } else if #[cfg(target_os = "android")] { mod bionic; pub use bionic::*; } else if #[cfg(target_vendor = "apple")] { mod apple; pub(crate) use apple::*; + } +} + +// Headers we export +cfg_if! { + if #[cfg(target_os = "linux")] { + pub use linux::can::bcm::*; + pub use linux::can::j1939::*; + pub use linux::can::raw::*; + pub use linux::can::*; + pub use linux::keyctl::*; + } else if #[cfg(target_vendor = "apple")] { pub use signal::*; } } From f888cb5e6d41f504fb370ae77ff38749b81c4219 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 24 Oct 2025 20:09:09 -0400 Subject: [PATCH 0918/1228] android: Switch from glob exports to select imports Match Apple and Linux to make it more clear what headers we want to map. Additionally, rename to `bionic_libc` since we may have others in the future (e.g. `bionic_uapi`). (backport ) (cherry picked from commit 0486b80b3d05c6854eda85eb69171e955e31547a) --- src/new/bionic/mod.rs | 2 -- src/new/bionic/sys/mod.rs | 2 -- src/new/bionic_libc/mod.rs | 5 +++++ src/new/bionic_libc/sys/mod.rs | 3 +++ src/new/{bionic => bionic_libc}/sys/socket.rs | 2 +- src/new/mod.rs | 8 +++++--- triagebot.toml | 5 ++++- 7 files changed, 18 insertions(+), 9 deletions(-) delete mode 100644 src/new/bionic/mod.rs delete mode 100644 src/new/bionic/sys/mod.rs create mode 100644 src/new/bionic_libc/mod.rs create mode 100644 src/new/bionic_libc/sys/mod.rs rename src/new/{bionic => bionic_libc}/sys/socket.rs (95%) diff --git a/src/new/bionic/mod.rs b/src/new/bionic/mod.rs deleted file mode 100644 index 644a4ab96d90f..0000000000000 --- a/src/new/bionic/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -mod sys; -pub use sys::*; diff --git a/src/new/bionic/sys/mod.rs b/src/new/bionic/sys/mod.rs deleted file mode 100644 index fd96d0821ac88..0000000000000 --- a/src/new/bionic/sys/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -mod socket; -pub use socket::*; diff --git a/src/new/bionic_libc/mod.rs b/src/new/bionic_libc/mod.rs new file mode 100644 index 0000000000000..2863b72cc2ed9 --- /dev/null +++ b/src/new/bionic_libc/mod.rs @@ -0,0 +1,5 @@ +//! This directory maps to `bionic/libc/include` in the Android source. +//! +//! + +pub(crate) mod sys; diff --git a/src/new/bionic_libc/sys/mod.rs b/src/new/bionic_libc/sys/mod.rs new file mode 100644 index 0000000000000..a882cbd99fca1 --- /dev/null +++ b/src/new/bionic_libc/sys/mod.rs @@ -0,0 +1,3 @@ +//! Directory: `sys/` + +pub(crate) mod socket; diff --git a/src/new/bionic/sys/socket.rs b/src/new/bionic_libc/sys/socket.rs similarity index 95% rename from src/new/bionic/sys/socket.rs rename to src/new/bionic_libc/sys/socket.rs index 49af36fe93356..c4a4e781275d9 100644 --- a/src/new/bionic/sys/socket.rs +++ b/src/new/bionic_libc/sys/socket.rs @@ -1,4 +1,4 @@ -//! Header: `bionic/libc/include/sys/socket.h` +//! Header: `sys/socket.h` use crate::prelude::*; diff --git a/src/new/mod.rs b/src/new/mod.rs index 410c7f5536fb8..73f99c15cf628 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -20,8 +20,8 @@ cfg_if! { mod linux_uapi; pub(crate) use linux_uapi::*; } else if #[cfg(target_os = "android")] { - mod bionic; - pub use bionic::*; + mod bionic_libc; + pub(crate) use bionic_libc::*; } else if #[cfg(target_vendor = "apple")] { mod apple; pub(crate) use apple::*; @@ -30,7 +30,9 @@ cfg_if! { // Headers we export cfg_if! { - if #[cfg(target_os = "linux")] { + if #[cfg(target_os = "android")] { + pub use sys::socket::*; + } else if #[cfg(target_os = "linux")] { pub use linux::can::bcm::*; pub use linux::can::j1939::*; pub use linux::can::raw::*; diff --git a/triagebot.toml b/triagebot.toml index 099a4f87f3d4f..0243834494fe3 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -34,7 +34,10 @@ trigger_files = [ new_pr = true [autolabel."O-android"] -trigger_files = ["src/unix/linux_like/android"] +trigger_files = [ + "src/new/bionic_libc", + "src/unix/linux_like/android", +] [autolabel."O-arm"] trigger_files = [ From 7d79caacecc8509edb8ea16880dccc506c919c9a Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 24 Oct 2025 20:23:52 -0400 Subject: [PATCH 0919/1228] apple: Move xnu and apple_libc up a level in the new structure There isn't any need to group these two modules. (backport ) (cherry picked from commit a83905dd6aa0655c4e9bd71a8a78d2856d665dd0) --- src/new/apple/mod.rs | 10 ---------- src/new/apple_libc/mod.rs | 3 +++ src/new/{apple => }/apple_libc/signal.rs | 0 src/new/{apple/xnu => apple_xnu}/arm/_mcontext.rs | 0 src/new/{apple/xnu => apple_xnu}/i386/_mcontext.rs | 0 src/new/{apple/xnu => apple_xnu}/mach/arm/_structs.rs | 0 src/new/{apple/xnu => apple_xnu}/mach/i386/_structs.rs | 0 .../{apple/xnu => apple_xnu}/mach/machine/_structs.rs | 0 src/new/{apple/xnu => apple_xnu}/mach/mod.rs | 0 src/new/{apple/xnu => apple_xnu}/machine/_mcontext.rs | 0 src/new/{apple/xnu => apple_xnu}/mod.rs | 0 .../{apple/xnu => apple_xnu}/sys/_types/_ucontext.rs | 0 src/new/{apple/xnu => apple_xnu}/sys/mod.rs | 0 src/new/{apple/xnu => apple_xnu}/sys/signal.rs | 0 src/new/mod.rs | 6 ++++-- triagebot.toml | 3 ++- 16 files changed, 9 insertions(+), 13 deletions(-) delete mode 100644 src/new/apple/mod.rs create mode 100644 src/new/apple_libc/mod.rs rename src/new/{apple => }/apple_libc/signal.rs (100%) rename src/new/{apple/xnu => apple_xnu}/arm/_mcontext.rs (100%) rename src/new/{apple/xnu => apple_xnu}/i386/_mcontext.rs (100%) rename src/new/{apple/xnu => apple_xnu}/mach/arm/_structs.rs (100%) rename src/new/{apple/xnu => apple_xnu}/mach/i386/_structs.rs (100%) rename src/new/{apple/xnu => apple_xnu}/mach/machine/_structs.rs (100%) rename src/new/{apple/xnu => apple_xnu}/mach/mod.rs (100%) rename src/new/{apple/xnu => apple_xnu}/machine/_mcontext.rs (100%) rename src/new/{apple/xnu => apple_xnu}/mod.rs (100%) rename src/new/{apple/xnu => apple_xnu}/sys/_types/_ucontext.rs (100%) rename src/new/{apple/xnu => apple_xnu}/sys/mod.rs (100%) rename src/new/{apple/xnu => apple_xnu}/sys/signal.rs (100%) diff --git a/src/new/apple/mod.rs b/src/new/apple/mod.rs deleted file mode 100644 index c855a135ccf3b..0000000000000 --- a/src/new/apple/mod.rs +++ /dev/null @@ -1,10 +0,0 @@ -//! Entrypoint for Apple headers, usually found as part of the Xcode SDK. - -pub(crate) mod xnu; -pub(crate) use xnu::*; - -pub(crate) mod apple_libc { - pub(crate) mod signal; -} - -pub(crate) use apple_libc::*; diff --git a/src/new/apple_libc/mod.rs b/src/new/apple_libc/mod.rs new file mode 100644 index 0000000000000..f53b8baa38ea1 --- /dev/null +++ b/src/new/apple_libc/mod.rs @@ -0,0 +1,3 @@ +//! Entrypoint for Apple headers, usually found as part of the Xcode SDK. + +pub(crate) mod signal; diff --git a/src/new/apple/apple_libc/signal.rs b/src/new/apple_libc/signal.rs similarity index 100% rename from src/new/apple/apple_libc/signal.rs rename to src/new/apple_libc/signal.rs diff --git a/src/new/apple/xnu/arm/_mcontext.rs b/src/new/apple_xnu/arm/_mcontext.rs similarity index 100% rename from src/new/apple/xnu/arm/_mcontext.rs rename to src/new/apple_xnu/arm/_mcontext.rs diff --git a/src/new/apple/xnu/i386/_mcontext.rs b/src/new/apple_xnu/i386/_mcontext.rs similarity index 100% rename from src/new/apple/xnu/i386/_mcontext.rs rename to src/new/apple_xnu/i386/_mcontext.rs diff --git a/src/new/apple/xnu/mach/arm/_structs.rs b/src/new/apple_xnu/mach/arm/_structs.rs similarity index 100% rename from src/new/apple/xnu/mach/arm/_structs.rs rename to src/new/apple_xnu/mach/arm/_structs.rs diff --git a/src/new/apple/xnu/mach/i386/_structs.rs b/src/new/apple_xnu/mach/i386/_structs.rs similarity index 100% rename from src/new/apple/xnu/mach/i386/_structs.rs rename to src/new/apple_xnu/mach/i386/_structs.rs diff --git a/src/new/apple/xnu/mach/machine/_structs.rs b/src/new/apple_xnu/mach/machine/_structs.rs similarity index 100% rename from src/new/apple/xnu/mach/machine/_structs.rs rename to src/new/apple_xnu/mach/machine/_structs.rs diff --git a/src/new/apple/xnu/mach/mod.rs b/src/new/apple_xnu/mach/mod.rs similarity index 100% rename from src/new/apple/xnu/mach/mod.rs rename to src/new/apple_xnu/mach/mod.rs diff --git a/src/new/apple/xnu/machine/_mcontext.rs b/src/new/apple_xnu/machine/_mcontext.rs similarity index 100% rename from src/new/apple/xnu/machine/_mcontext.rs rename to src/new/apple_xnu/machine/_mcontext.rs diff --git a/src/new/apple/xnu/mod.rs b/src/new/apple_xnu/mod.rs similarity index 100% rename from src/new/apple/xnu/mod.rs rename to src/new/apple_xnu/mod.rs diff --git a/src/new/apple/xnu/sys/_types/_ucontext.rs b/src/new/apple_xnu/sys/_types/_ucontext.rs similarity index 100% rename from src/new/apple/xnu/sys/_types/_ucontext.rs rename to src/new/apple_xnu/sys/_types/_ucontext.rs diff --git a/src/new/apple/xnu/sys/mod.rs b/src/new/apple_xnu/sys/mod.rs similarity index 100% rename from src/new/apple/xnu/sys/mod.rs rename to src/new/apple_xnu/sys/mod.rs diff --git a/src/new/apple/xnu/sys/signal.rs b/src/new/apple_xnu/sys/signal.rs similarity index 100% rename from src/new/apple/xnu/sys/signal.rs rename to src/new/apple_xnu/sys/signal.rs diff --git a/src/new/mod.rs b/src/new/mod.rs index 73f99c15cf628..326a5713becc5 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -23,8 +23,10 @@ cfg_if! { mod bionic_libc; pub(crate) use bionic_libc::*; } else if #[cfg(target_vendor = "apple")] { - mod apple; - pub(crate) use apple::*; + mod apple_libc; + mod apple_xnu; + pub(crate) use apple_libc::*; + pub(crate) use apple_xnu::*; } } diff --git a/triagebot.toml b/triagebot.toml index 0243834494fe3..7e8f309b40c67 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -80,7 +80,8 @@ trigger_files = ["src/unix/linux_like/mod.rs"] [autolabel."O-macos"] trigger_files = [ "src/unix/bsd/apple", - "src/new/apple", + "src/new/apple_lib", + "src/new/apple_xnu", ] [autolabel."O-mips"] From 9058efa233e1f34148688a3fc03fc2c4f62e0dcc Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 23 Oct 2025 20:02:23 -0400 Subject: [PATCH 0920/1228] reorg: Fill in the `src/new` structure Ensure each library we provide bindings for has a home module in order to make it easier to fill things in. Where possible, I included a link to the source tree. There is also a new module `common` that contains definitions intended to be shared across multiple libraries. (backport ) (cherry picked from commit b295e7887677432fdf093c49d14ac5111f86d884) --- src/new/aix/mod.rs | 4 + src/new/common/bsd.rs | 1 + src/new/common/freebsd_like.rs | 1 + src/new/common/linux_like/mod.rs | 1 + src/new/common/mod.rs | 38 +++++++++ src/new/common/netbsd_like.rs | 1 + src/new/common/posix/mod.rs | 1 + src/new/common/solarish.rs | 1 + src/new/cygwin/mod.rs | 3 + src/new/dragonfly/mod.rs | 4 + src/new/emscripten/mod.rs | 3 + src/new/espidf/mod.rs | 2 + src/new/freebsd/mod.rs | 4 + src/new/fuchsia/mod.rs | 2 + src/new/glibc/mod.rs | 4 + src/new/haiku/mod.rs | 2 + src/new/hermit_abi/mod.rs | 3 + src/new/horizon/mod.rs | 2 + src/new/hurd/mod.rs | 2 + src/new/illumos/mod.rs | 2 + src/new/l4re/mod.rs | 3 + src/new/mod.rs | 140 ++++++++++++++++++++++++++++++- src/new/musl/mod.rs | 4 + src/new/netbsd/mod.rs | 3 + src/new/newlib/mod.rs | 2 + src/new/nto/mod.rs | 2 + src/new/nuttx/mod.rs | 2 + src/new/openbsd/mod.rs | 4 + src/new/redox/mod.rs | 3 + src/new/relibc/mod.rs | 3 + src/new/rtems/mod.rs | 2 + src/new/sgx/mod.rs | 1 + src/new/solaris/mod.rs | 3 + src/new/solid/mod.rs | 2 + src/new/teeos/mod.rs | 2 + src/new/trusty/mod.rs | 2 + src/new/uclibc/mod.rs | 4 + src/new/ucrt/mod.rs | 4 + src/new/vita/mod.rs | 2 + src/new/vxworks/mod.rs | 2 + src/new/wasi/mod.rs | 3 + src/new/xous/mod.rs | 2 + 42 files changed, 272 insertions(+), 4 deletions(-) create mode 100644 src/new/aix/mod.rs create mode 100644 src/new/common/bsd.rs create mode 100644 src/new/common/freebsd_like.rs create mode 100644 src/new/common/linux_like/mod.rs create mode 100644 src/new/common/mod.rs create mode 100644 src/new/common/netbsd_like.rs create mode 100644 src/new/common/posix/mod.rs create mode 100644 src/new/common/solarish.rs create mode 100644 src/new/cygwin/mod.rs create mode 100644 src/new/dragonfly/mod.rs create mode 100644 src/new/emscripten/mod.rs create mode 100644 src/new/espidf/mod.rs create mode 100644 src/new/freebsd/mod.rs create mode 100644 src/new/fuchsia/mod.rs create mode 100644 src/new/glibc/mod.rs create mode 100644 src/new/haiku/mod.rs create mode 100644 src/new/hermit_abi/mod.rs create mode 100644 src/new/horizon/mod.rs create mode 100644 src/new/hurd/mod.rs create mode 100644 src/new/illumos/mod.rs create mode 100644 src/new/l4re/mod.rs create mode 100644 src/new/musl/mod.rs create mode 100644 src/new/netbsd/mod.rs create mode 100644 src/new/newlib/mod.rs create mode 100644 src/new/nto/mod.rs create mode 100644 src/new/nuttx/mod.rs create mode 100644 src/new/openbsd/mod.rs create mode 100644 src/new/redox/mod.rs create mode 100644 src/new/relibc/mod.rs create mode 100644 src/new/rtems/mod.rs create mode 100644 src/new/sgx/mod.rs create mode 100644 src/new/solaris/mod.rs create mode 100644 src/new/solid/mod.rs create mode 100644 src/new/teeos/mod.rs create mode 100644 src/new/trusty/mod.rs create mode 100644 src/new/uclibc/mod.rs create mode 100644 src/new/ucrt/mod.rs create mode 100644 src/new/vita/mod.rs create mode 100644 src/new/vxworks/mod.rs create mode 100644 src/new/wasi/mod.rs create mode 100644 src/new/xous/mod.rs diff --git a/src/new/aix/mod.rs b/src/new/aix/mod.rs new file mode 100644 index 0000000000000..79645f12d7360 --- /dev/null +++ b/src/new/aix/mod.rs @@ -0,0 +1,4 @@ +//! IBM AIX libc. +//! +//! * Headers are not public +//! * Manual pages: (under "Technical reference" for that version) diff --git a/src/new/common/bsd.rs b/src/new/common/bsd.rs new file mode 100644 index 0000000000000..818daf93489c9 --- /dev/null +++ b/src/new/common/bsd.rs @@ -0,0 +1 @@ +//! Interfaces common across the BSD family. diff --git a/src/new/common/freebsd_like.rs b/src/new/common/freebsd_like.rs new file mode 100644 index 0000000000000..f49f2c9c2c06e --- /dev/null +++ b/src/new/common/freebsd_like.rs @@ -0,0 +1 @@ +//! Interfaces common in FreeBSD-derived operating systems. This includes FreeBSD and DragonFlyBSD. diff --git a/src/new/common/linux_like/mod.rs b/src/new/common/linux_like/mod.rs new file mode 100644 index 0000000000000..9aceb4e09f0e3 --- /dev/null +++ b/src/new/common/linux_like/mod.rs @@ -0,0 +1 @@ +//! API that primarily comes from Linux but is also used other platforms (e.g. Android). diff --git a/src/new/common/mod.rs b/src/new/common/mod.rs new file mode 100644 index 0000000000000..cb0588ca26100 --- /dev/null +++ b/src/new/common/mod.rs @@ -0,0 +1,38 @@ +//! Interfaces that are common across multiple platforms +//! +//! We make these available everywhere but each platform must opt in to reexporting. +//! +//! There shouldn't be any repeated definitions or complex configuration in this module. On +//! platforms that don't use common APIs it is fine to use `#[cfg(not(...))]`, but if a platform +//! needs a custom definition then it should be defined in the platform-specific module. +//! +//! The goal is that platforms need to opt in to the definitions here, so that worst case we have +//! an unused warning on untested platforms (rather than exposing incorrect API). + +#[cfg(any( + target_vendor = "apple", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "netbsd", + target_os = "openbsd", +))] +mod bsd; + +#[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "l4re", + target_os = "linux", +))] +mod linux_like; + +#[cfg(any(target_os = "dragonfly", target_os = "freebsd"))] +mod freebsd_like; + +#[cfg(any(target_os = "netbsd", target_os = "openbsd"))] +mod netbsd_like; + +#[cfg(any(target_os = "illumos", target_os = "solaris"))] +mod solarish; + +mod posix; diff --git a/src/new/common/netbsd_like.rs b/src/new/common/netbsd_like.rs new file mode 100644 index 0000000000000..4267357ac9046 --- /dev/null +++ b/src/new/common/netbsd_like.rs @@ -0,0 +1 @@ +//! Interfaces common in NetBSD-derived operating systems. This includes NetBSD and OpenBSD. diff --git a/src/new/common/posix/mod.rs b/src/new/common/posix/mod.rs new file mode 100644 index 0000000000000..cb33296a9c656 --- /dev/null +++ b/src/new/common/posix/mod.rs @@ -0,0 +1 @@ +//! POSIX APIs that are used by a number of platforms diff --git a/src/new/common/solarish.rs b/src/new/common/solarish.rs new file mode 100644 index 0000000000000..f966114e370ae --- /dev/null +++ b/src/new/common/solarish.rs @@ -0,0 +1 @@ +//! Interfaces common in solaris-derived operating systems. This includes Solaris and Illumos. diff --git a/src/new/cygwin/mod.rs b/src/new/cygwin/mod.rs new file mode 100644 index 0000000000000..29d62f02f9fee --- /dev/null +++ b/src/new/cygwin/mod.rs @@ -0,0 +1,3 @@ +//! Cygwin libc. +//! +//! * Headers: diff --git a/src/new/dragonfly/mod.rs b/src/new/dragonfly/mod.rs new file mode 100644 index 0000000000000..9ea26f522be66 --- /dev/null +++ b/src/new/dragonfly/mod.rs @@ -0,0 +1,4 @@ +//! DragonFly BSD libc. +//! +//! * Headers: +//! * Manual pages: diff --git a/src/new/emscripten/mod.rs b/src/new/emscripten/mod.rs new file mode 100644 index 0000000000000..e58a3aceada16 --- /dev/null +++ b/src/new/emscripten/mod.rs @@ -0,0 +1,3 @@ +//! Emscripten libc. +//! +//! * Headers: diff --git a/src/new/espidf/mod.rs b/src/new/espidf/mod.rs new file mode 100644 index 0000000000000..061ea6e64614b --- /dev/null +++ b/src/new/espidf/mod.rs @@ -0,0 +1,2 @@ +//! Expressif libc. +// FIXME(espidf): link to headers needed. diff --git a/src/new/freebsd/mod.rs b/src/new/freebsd/mod.rs new file mode 100644 index 0000000000000..a1241c7a68cef --- /dev/null +++ b/src/new/freebsd/mod.rs @@ -0,0 +1,4 @@ +//! FreeBSD libc. +//! +//! * Headers: +//! * Symbol map: diff --git a/src/new/fuchsia/mod.rs b/src/new/fuchsia/mod.rs new file mode 100644 index 0000000000000..c1d275c95b3f6 --- /dev/null +++ b/src/new/fuchsia/mod.rs @@ -0,0 +1,2 @@ +//! Fuschia libc. +// FIXME(fuchsia): link to headers needed. diff --git a/src/new/glibc/mod.rs b/src/new/glibc/mod.rs new file mode 100644 index 0000000000000..8714820906414 --- /dev/null +++ b/src/new/glibc/mod.rs @@ -0,0 +1,4 @@ +//! GNU libc. +//! +//! * Headers: (official) +//! * Headers: (mirror) diff --git a/src/new/haiku/mod.rs b/src/new/haiku/mod.rs new file mode 100644 index 0000000000000..c119b67376269 --- /dev/null +++ b/src/new/haiku/mod.rs @@ -0,0 +1,2 @@ +//! Haiku OS libc. +// FIXME(haiku): link to headers needed. diff --git a/src/new/hermit_abi/mod.rs b/src/new/hermit_abi/mod.rs new file mode 100644 index 0000000000000..65f59fe12d691 --- /dev/null +++ b/src/new/hermit_abi/mod.rs @@ -0,0 +1,3 @@ +//! Hermit kernel libc. +//! +//! * Headers: diff --git a/src/new/horizon/mod.rs b/src/new/horizon/mod.rs new file mode 100644 index 0000000000000..338e9f0a4d840 --- /dev/null +++ b/src/new/horizon/mod.rs @@ -0,0 +1,2 @@ +//! Switch libc. +// FIXME(horizon): link to headers or manpages needed. diff --git a/src/new/hurd/mod.rs b/src/new/hurd/mod.rs new file mode 100644 index 0000000000000..12198d58bd582 --- /dev/null +++ b/src/new/hurd/mod.rs @@ -0,0 +1,2 @@ +//! GNU Hurd libc. +// FIXME(hurd): link to headers needed. diff --git a/src/new/illumos/mod.rs b/src/new/illumos/mod.rs new file mode 100644 index 0000000000000..66f6cb1ffd3c8 --- /dev/null +++ b/src/new/illumos/mod.rs @@ -0,0 +1,2 @@ +//! Illumos libc. +// FIXME(illumos): link to headers needed. diff --git a/src/new/l4re/mod.rs b/src/new/l4re/mod.rs new file mode 100644 index 0000000000000..cbf725f406b6b --- /dev/null +++ b/src/new/l4re/mod.rs @@ -0,0 +1,3 @@ +//! L4re. +//! +//! * Headers: diff --git a/src/new/mod.rs b/src/new/mod.rs index 326a5713becc5..27f232cb56882 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -14,11 +14,36 @@ //! //! All modules are only crate-public since we don't reexport this structure. -// Libraries available on each platform +mod common; + +/* The `pub(crate) use ...` statements are commented while the modules are empty */ + +// Platform libraries and combined platform+libc +// +// Not supported or not needed: +// * amdhsa +// * cuda +// * lynxos178 +// * managarm +// * motor +// * none +// * psp +// * psx +// * uefi +// * unknown +// * vexos +// * zkvm +// +// Combined to target_vendor = "apple" +// * ios +// * macos +// * tvos +// * visionos +// * watchos cfg_if! { - if #[cfg(target_os = "linux")] { - mod linux_uapi; - pub(crate) use linux_uapi::*; + if #[cfg(target_os = "aix")] { + mod aix; + // pub(crate) use aix::*; } else if #[cfg(target_os = "android")] { mod bionic_libc; pub(crate) use bionic_libc::*; @@ -27,6 +52,113 @@ cfg_if! { mod apple_xnu; pub(crate) use apple_libc::*; pub(crate) use apple_xnu::*; + } else if #[cfg(target_os = "cygwin")] { + mod cygwin; + // pub(crate) use cygwin::*; + } else if #[cfg(target_os = "dragonfly")] { + mod dragonfly; + // pub(crate) use dragonfly::*; + } else if #[cfg(target_os = "emscripten")] { + mod emscripten; + // pub(crate) use emscripten::*; + } else if #[cfg(target_os = "espidf")] { + mod espidf; + // pub(crate) use espidf::*; + } else if #[cfg(target_os = "freebsd")] { + mod freebsd; + // pub(crate) use freebsd::*; + } else if #[cfg(target_os = "fuchsia")] { + mod fuchsia; + // pub(crate) use fuchsia::*; + } else if #[cfg(target_os = "haiku")] { + mod haiku; + // pub(crate) use haiku::*; + } else if #[cfg(target_os = "hermit")] { + mod hermit_abi; + // pub(crate) use hermit_abi::*; + } else if #[cfg(target_os = "horizon")] { + mod horizon; + // pub(crate) use horizon::*; + } else if #[cfg(target_os = "hurd")] { + mod hurd; + // pub(crate) use hurd::*; + } else if #[cfg(target_os = "illumos")] { + mod illumos; + // pub(crate) use illumos::*; + } else if #[cfg(target_os = "l4re")] { + mod l4re; + // pub(crate) use l4re::*; + } else if #[cfg(target_os = "linux")] { + mod linux_uapi; + pub(crate) use linux_uapi::*; + } else if #[cfg(target_os = "netbsd")] { + mod netbsd; + // pub(crate) use netbsd::*; + } else if #[cfg(target_os = "nto")] { + mod nto; + // pub(crate) use nto::*; + } else if #[cfg(target_os = "nuttx")] { + mod nuttx; + // pub(crate) use nuttx::*; + } else if #[cfg(target_os = "openbsd")] { + mod openbsd; + // pub(crate) use openbsd::*; + } else if #[cfg(target_os = "redox")] { + mod redox; + // pub(crate) use redox::*; + } else if #[cfg(target_os = "rtems")] { + mod rtems; + // pub(crate) use rtems::*; + } else if #[cfg(target_os = "solaris")] { + mod solaris; + // pub(crate) use solaris::*; + } else if #[cfg(target_os = "solid_asp3")] { + mod solid; + // pub(crate) use solid::*; + } else if #[cfg(target_os = "teeos")] { + mod teeos; + // pub(crate) use teeos::*; + } else if #[cfg(target_os = "trusty")] { + mod trusty; + // pub(crate) use trusty::*; + } else if #[cfg(target_os = "vita")] { + mod vita; + // pub(crate) use vita::*; + } else if #[cfg(target_os = "vxworks")] { + mod vxworks; + // pub(crate) use vxworks::*; + } else if #[cfg(target_os = "wasi")] { + mod wasi; + // pub(crate) use wasi::*; + } else if #[cfg(target_os = "windows")] { + mod ucrt; + // pub(crate) use ucrt::*; + } else if #[cfg(target_os = "xous")] { + mod xous; + // pub(crate) use xous::*; + } +} + +// Multi-platform libc +cfg_if! { + if #[cfg(target_env = "gnu")] { + mod glibc; + // pub(crate) use glibc::*; + } else if #[cfg(target_env = "musl")] { + mod musl; + // pub(crate) use musl::*; + } else if #[cfg(target_env = "newlib")] { + mod newlib; + // pub(crate) use newlib::*; + } else if #[cfg(target_env = "relibc")] { + mod relibc; + // pub(crate) use relibc::*; + } else if #[cfg(target_env = "sgx")] { + mod sgx; + // pub(crate) use sgx::*; + } else if #[cfg(target_env = "uclibc")] { + mod uclibc; + // pub(crate) use uclibc::*; } } diff --git a/src/new/musl/mod.rs b/src/new/musl/mod.rs new file mode 100644 index 0000000000000..49f9abae21fb7 --- /dev/null +++ b/src/new/musl/mod.rs @@ -0,0 +1,4 @@ +//! Musl libc. +//! +//! * Headers: (official) +//! * Headers: (mirror) diff --git a/src/new/netbsd/mod.rs b/src/new/netbsd/mod.rs new file mode 100644 index 0000000000000..14b6a5f869e8f --- /dev/null +++ b/src/new/netbsd/mod.rs @@ -0,0 +1,3 @@ +//! NetBSD libc. +//! +//! * Manual pages: diff --git a/src/new/newlib/mod.rs b/src/new/newlib/mod.rs new file mode 100644 index 0000000000000..d5564cafcfd50 --- /dev/null +++ b/src/new/newlib/mod.rs @@ -0,0 +1,2 @@ +//! Newlib libc. +// FIXME(newlib): link to headers needed. diff --git a/src/new/nto/mod.rs b/src/new/nto/mod.rs new file mode 100644 index 0000000000000..8fa2d814eb8df --- /dev/null +++ b/src/new/nto/mod.rs @@ -0,0 +1,2 @@ +//! QNX Neutrino libc. +// FIXME(nto): link to manpages needed. diff --git a/src/new/nuttx/mod.rs b/src/new/nuttx/mod.rs new file mode 100644 index 0000000000000..89b9c05e849bd --- /dev/null +++ b/src/new/nuttx/mod.rs @@ -0,0 +1,2 @@ +//! RTEMS libc. +// FIXME(nuttx): link to headers needed. diff --git a/src/new/openbsd/mod.rs b/src/new/openbsd/mod.rs new file mode 100644 index 0000000000000..f97044effe76c --- /dev/null +++ b/src/new/openbsd/mod.rs @@ -0,0 +1,4 @@ +//! OpenBSD libc. +//! +//! * Headers: +//! * Manual pages: diff --git a/src/new/redox/mod.rs b/src/new/redox/mod.rs new file mode 100644 index 0000000000000..cf7806a2437ad --- /dev/null +++ b/src/new/redox/mod.rs @@ -0,0 +1,3 @@ +//! Redox libc. +//! +//! * Headers: diff --git a/src/new/relibc/mod.rs b/src/new/relibc/mod.rs new file mode 100644 index 0000000000000..baf26912ec7f0 --- /dev/null +++ b/src/new/relibc/mod.rs @@ -0,0 +1,3 @@ +//! Redox OS libc. +//! +//! * Headers: diff --git a/src/new/rtems/mod.rs b/src/new/rtems/mod.rs new file mode 100644 index 0000000000000..bd3dc3954c71e --- /dev/null +++ b/src/new/rtems/mod.rs @@ -0,0 +1,2 @@ +//! RTEMS libc. +// FIXME(rtems): link to headers needed. diff --git a/src/new/sgx/mod.rs b/src/new/sgx/mod.rs new file mode 100644 index 0000000000000..8b137891791fe --- /dev/null +++ b/src/new/sgx/mod.rs @@ -0,0 +1 @@ + diff --git a/src/new/solaris/mod.rs b/src/new/solaris/mod.rs new file mode 100644 index 0000000000000..b5d55492995de --- /dev/null +++ b/src/new/solaris/mod.rs @@ -0,0 +1,3 @@ +//! Solaris libc. +//! +//! * Manual pages: (under "Reference Manuals") diff --git a/src/new/solid/mod.rs b/src/new/solid/mod.rs new file mode 100644 index 0000000000000..4a197cfb62c5a --- /dev/null +++ b/src/new/solid/mod.rs @@ -0,0 +1,2 @@ +//! Kyoto Microcomputer SOLID. +// FIXME(solid): link to headers needed. diff --git a/src/new/teeos/mod.rs b/src/new/teeos/mod.rs new file mode 100644 index 0000000000000..96f44d3d39361 --- /dev/null +++ b/src/new/teeos/mod.rs @@ -0,0 +1,2 @@ +//! Per the target docs, TEEOS uses part of musl as its libc. +// FIXME(teeos): link to headers needed. diff --git a/src/new/trusty/mod.rs b/src/new/trusty/mod.rs new file mode 100644 index 0000000000000..261ecb09e46de --- /dev/null +++ b/src/new/trusty/mod.rs @@ -0,0 +1,2 @@ +//! Trusty libc. +// FIXME(trusty): link to headers needed. diff --git a/src/new/uclibc/mod.rs b/src/new/uclibc/mod.rs new file mode 100644 index 0000000000000..eda4b01d92d2c --- /dev/null +++ b/src/new/uclibc/mod.rs @@ -0,0 +1,4 @@ +//! uClibc. +//! +//! * About: +//! * Headers: (mirror) diff --git a/src/new/ucrt/mod.rs b/src/new/ucrt/mod.rs new file mode 100644 index 0000000000000..f6b5f5d1ef8fc --- /dev/null +++ b/src/new/ucrt/mod.rs @@ -0,0 +1,4 @@ +//! Windows Universal C Runtime. +//! +//! * Manual pages: +//! * UCRT information: diff --git a/src/new/vita/mod.rs b/src/new/vita/mod.rs new file mode 100644 index 0000000000000..21205ebd046fb --- /dev/null +++ b/src/new/vita/mod.rs @@ -0,0 +1,2 @@ +//! VITASDK system library. +// FIXME(vita): link to headers or manpages needed. diff --git a/src/new/vxworks/mod.rs b/src/new/vxworks/mod.rs new file mode 100644 index 0000000000000..a3116fce03803 --- /dev/null +++ b/src/new/vxworks/mod.rs @@ -0,0 +1,2 @@ +//! VxWorks libc. +// FIXME(vxworks): link to headers needed. diff --git a/src/new/wasi/mod.rs b/src/new/wasi/mod.rs new file mode 100644 index 0000000000000..341e6d5d16499 --- /dev/null +++ b/src/new/wasi/mod.rs @@ -0,0 +1,3 @@ +//! WASI libc. +//! +//! * Headers: diff --git a/src/new/xous/mod.rs b/src/new/xous/mod.rs new file mode 100644 index 0000000000000..8a9a28586c448 --- /dev/null +++ b/src/new/xous/mod.rs @@ -0,0 +1,2 @@ +//! Xous libc. +// FIXME(xous): link to headers needed. From dd308f9c120b49716053e06b70bec4cf72cc8c58 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 25 Oct 2025 05:13:34 -0400 Subject: [PATCH 0921/1228] fmt: Use vertical import formatting within `libc` The crate has a lot of reexports and will be getting many more. Change the formatting to vertical to reduce the possibility of conflicts. (backport ) (cherry picked from commit c04afc0831fde82f301ca232eb8030321f9347aa) --- ci/style.sh | 2 +- rustfmt.toml | 1 + src/macros.rs | 45 ++++++++++++++++--- src/rustfmt.toml | 7 +++ src/unix/aix/mod.rs | 5 ++- src/unix/bsd/apple/mod.rs | 5 ++- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 5 ++- src/unix/bsd/freebsdlike/freebsd/mod.rs | 5 ++- src/unix/bsd/netbsdlike/netbsd/mod.rs | 5 ++- src/unix/bsd/netbsdlike/openbsd/mod.rs | 5 ++- src/unix/linux_like/android/mod.rs | 5 ++- src/unix/linux_like/emscripten/lfs64.rs | 5 ++- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 5 ++- src/unix/linux_like/linux/gnu/b32/csky/mod.rs | 5 ++- src/unix/linux_like/linux/gnu/b32/m68k/mod.rs | 5 ++- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 5 ++- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 5 ++- .../linux_like/linux/gnu/b32/riscv32/mod.rs | 5 ++- .../linux_like/linux/gnu/b32/sparc/mod.rs | 5 ++- src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 5 ++- .../linux_like/linux/gnu/b64/aarch64/mod.rs | 5 ++- .../linux/gnu/b64/loongarch64/mod.rs | 6 ++- .../linux_like/linux/gnu/b64/mips64/mod.rs | 6 ++- .../linux_like/linux/gnu/b64/powerpc64/mod.rs | 6 ++- .../linux_like/linux/gnu/b64/riscv64/mod.rs | 5 ++- src/unix/linux_like/linux/gnu/b64/s390x.rs | 6 ++- .../linux_like/linux/gnu/b64/sparc64/mod.rs | 6 ++- .../linux_like/linux/gnu/b64/x86_64/mod.rs | 5 ++- src/unix/linux_like/linux/mod.rs | 8 +++- .../linux_like/linux/musl/b32/riscv32/mod.rs | 5 ++- .../linux/musl/b64/loongarch64/mod.rs | 5 ++- .../linux_like/linux/musl/b64/riscv64/mod.rs | 5 ++- src/unix/linux_like/linux/musl/lfs64.rs | 5 ++- src/unix/newlib/aarch64/mod.rs | 6 ++- src/unix/newlib/arm/mod.rs | 6 ++- src/unix/newlib/espidf/mod.rs | 6 ++- src/unix/newlib/powerpc/mod.rs | 6 ++- src/unix/nuttx/mod.rs | 7 ++- src/unix/solarish/compat.rs | 6 ++- src/unix/solarish/illumos.rs | 10 ++++- src/unix/solarish/solaris.rs | 11 ++++- 41 files changed, 220 insertions(+), 46 deletions(-) create mode 100644 src/rustfmt.toml diff --git a/ci/style.sh b/ci/style.sh index c5fddbad1f8b1..ef57a5efd0402 100755 --- a/ci/style.sh +++ b/ci/style.sh @@ -40,7 +40,7 @@ while IFS= read -r file; do # Format the file. We need to invoke `rustfmt` directly since `cargo fmt` # can't figure out the module tree with the hacks in place. failed=false - rustfmt --config-path rustfmt.toml "$file" ${check:+"$check"} || failed=true + rustfmt "$file" ${check:+"$check"} || failed=true # Restore all changes to the files. perl -pi -e 's/fn (\w+)_fmt_tmp\(\)/$1!/g' "$file" diff --git a/rustfmt.toml b/rustfmt.toml index de0fc5ecc0166..8016e2bbfeca9 100644 --- a/rustfmt.toml +++ b/rustfmt.toml @@ -1,3 +1,4 @@ +# Note that there is a separate configuration for `src/` edition = "2021" error_on_line_overflow = true group_imports = "StdExternalCrate" diff --git a/src/macros.rs b/src/macros.rs index 59dcbfa905c82..a5359db0f62c5 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -76,26 +76,59 @@ macro_rules! prelude { #[allow(unused_imports)] pub(crate) use core::default::Default; #[allow(unused_imports)] - pub(crate) use core::marker::{Copy, Send, Sync}; + pub(crate) use core::marker::{ + Copy, + Send, + Sync, + }; #[allow(unused_imports)] pub(crate) use core::option::Option; #[allow(unused_imports)] pub(crate) use core::prelude::v1::derive; #[allow(unused_imports)] - pub(crate) use core::{fmt, hash, iter, mem, ptr}; + pub(crate) use core::{ + fmt, + hash, + iter, + mem, + ptr, + }; #[allow(unused_imports)] pub(crate) use fmt::Debug; #[allow(unused_imports)] - pub(crate) use mem::{align_of, align_of_val, size_of, size_of_val}; + pub(crate) use mem::{ + align_of, + align_of_val, + size_of, + size_of_val, + }; #[allow(unused_imports)] - pub(crate) use crate::types::{CEnumRepr, Padding}; + pub(crate) use crate::types::{ + CEnumRepr, + Padding, + }; // Commonly used types defined in this crate #[allow(unused_imports)] pub(crate) use crate::{ - c_char, c_double, c_float, c_int, c_long, c_longlong, c_short, c_uchar, c_uint, - c_ulong, c_ulonglong, c_ushort, c_void, intptr_t, size_t, ssize_t, uintptr_t, + c_char, + c_double, + c_float, + c_int, + c_long, + c_longlong, + c_short, + c_uchar, + c_uint, + c_ulong, + c_ulonglong, + c_ushort, + c_void, + intptr_t, + size_t, + ssize_t, + uintptr_t, }; } }; diff --git a/src/rustfmt.toml b/src/rustfmt.toml new file mode 100644 index 0000000000000..19e4b2fa60beb --- /dev/null +++ b/src/rustfmt.toml @@ -0,0 +1,7 @@ +# Note that there is a separate top-level configuration for everything else +edition = "2021" +error_on_line_overflow = true +group_imports = "StdExternalCrate" +imports_granularity = "Module" +# This crate gets large lists of reexports. Use vertical to reduce conflicts. +imports_layout = "Vertical" diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 05ff2fb082900..b699a3c8001c8 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -1,5 +1,8 @@ use crate::prelude::*; -use crate::{in_addr_t, in_port_t}; +use crate::{ + in_addr_t, + in_port_t, +}; pub type caddr_t = *mut c_char; pub type clockid_t = c_longlong; diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 356e1ca4465af..ec05791d9aed0 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -3,7 +3,10 @@ //! This covers *-apple-* triples currently use crate::prelude::*; -use crate::{cmsghdr, off_t}; +use crate::{ + cmsghdr, + off_t, +}; pub type wchar_t = i32; pub type clock_t = c_ulong; diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 4e054f9c89056..632d83b0ea3b7 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -1,5 +1,8 @@ use crate::prelude::*; -use crate::{cmsghdr, off_t}; +use crate::{ + cmsghdr, + off_t, +}; pub type dev_t = u32; pub type wchar_t = i32; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 2b601bd203808..47698830a0398 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1,5 +1,8 @@ use crate::prelude::*; -use crate::{cmsghdr, off_t}; +use crate::{ + cmsghdr, + off_t, +}; pub type fflags_t = u32; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 9f0831323af79..262c644aace5a 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1,5 +1,8 @@ use crate::prelude::*; -use crate::{cmsghdr, off_t}; +use crate::{ + cmsghdr, + off_t, +}; pub type clock_t = c_uint; pub type suseconds_t = c_int; diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index b28f4557f5218..199986b851e91 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1,6 +1,9 @@ use crate::prelude::*; use crate::unix::bsd::O_SYNC; -use crate::{cmsghdr, off_t}; +use crate::{ + cmsghdr, + off_t, +}; pub type clock_t = i64; pub type suseconds_t = c_long; diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index fa2fd4e63dc55..c829adc656d22 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1,7 +1,10 @@ //! Android-specific definitions for linux-like values use crate::prelude::*; -use crate::{cmsghdr, msghdr}; +use crate::{ + cmsghdr, + msghdr, +}; cfg_if! { if #[cfg(doc)] { diff --git a/src/unix/linux_like/emscripten/lfs64.rs b/src/unix/linux_like/emscripten/lfs64.rs index 06be875446bb6..501540943889f 100644 --- a/src/unix/linux_like/emscripten/lfs64.rs +++ b/src/unix/linux_like/emscripten/lfs64.rs @@ -109,7 +109,10 @@ pub unsafe extern "C" fn mmap64( // // These aliases are mostly fine though, neither function takes a LFS64-namespaced type as an // argument, nor do their names clash with any declared types. -pub use crate::{open as open64, openat as openat64}; +pub use crate::{ + open as open64, + openat as openat64, +}; #[inline] pub unsafe extern "C" fn posix_fadvise64( diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 900851ab5f42c..0f7181e2aee1a 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -1,5 +1,8 @@ use crate::prelude::*; -use crate::{off64_t, off_t}; +use crate::{ + off64_t, + off_t, +}; pub type wchar_t = u32; diff --git a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs index 95881894a4b94..bb06c49df0a25 100644 --- a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs @@ -1,5 +1,8 @@ use crate::prelude::*; -use crate::{off64_t, off_t}; +use crate::{ + off64_t, + off_t, +}; pub type wchar_t = u32; diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index d614fddeca9d9..ceaab898074b4 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -1,5 +1,8 @@ use crate::prelude::*; -use crate::{off64_t, off_t}; +use crate::{ + off64_t, + off_t, +}; pub type wchar_t = i32; diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 3d2775cd800ae..98ce89e124891 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -1,5 +1,8 @@ use crate::prelude::*; -use crate::{off64_t, off_t}; +use crate::{ + off64_t, + off_t, +}; pub type wchar_t = i32; diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 791f14956806d..54470e10d6145 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -1,5 +1,8 @@ use crate::prelude::*; -use crate::{off64_t, off_t}; +use crate::{ + off64_t, + off_t, +}; pub type wchar_t = i32; diff --git a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs index b04ee50462745..f4f04c91b7f87 100644 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -1,7 +1,10 @@ //! RISC-V-specific definitions for 32-bit linux-like values use crate::prelude::*; -use crate::{off64_t, off_t}; +use crate::{ + off64_t, + off_t, +}; pub type wchar_t = c_int; diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index 801f31e2c0e34..03ecff3f342e1 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -1,7 +1,10 @@ //! SPARC-specific definitions for 32-bit linux-like values use crate::prelude::*; -use crate::{off64_t, off_t}; +use crate::{ + off64_t, + off_t, +}; pub type wchar_t = i32; diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 5f0dfe90adf81..26a95f85972f1 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -1,5 +1,8 @@ use crate::prelude::*; -use crate::{off64_t, off_t}; +use crate::{ + off64_t, + off_t, +}; pub type wchar_t = i32; pub type greg_t = i32; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index 28b4e40fde543..b5af0e8ec9548 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -1,7 +1,10 @@ //! AArch64-specific definitions for 64-bit linux-like values use crate::prelude::*; -use crate::{off64_t, off_t}; +use crate::{ + off64_t, + off_t, +}; pub type wchar_t = u32; pub type nlink_t = u32; diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs index 8f15ce4d1529a..1eeb6098284b8 100644 --- a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs @@ -1,5 +1,9 @@ use crate::prelude::*; -use crate::{off64_t, off_t, pthread_mutex_t}; +use crate::{ + off64_t, + off_t, + pthread_mutex_t, +}; pub type wchar_t = i32; diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index 7f66330d9c7ed..da43c3268813a 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -1,5 +1,9 @@ use crate::prelude::*; -use crate::{off64_t, off_t, pthread_mutex_t}; +use crate::{ + off64_t, + off_t, + pthread_mutex_t, +}; pub type blksize_t = i64; pub type nlink_t = u64; diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index 00e47647a44d8..153d25e2f3deb 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -1,7 +1,11 @@ //! PowerPC64-specific definitions for 64-bit linux-like values use crate::prelude::*; -use crate::{off64_t, off_t, pthread_mutex_t}; +use crate::{ + off64_t, + off_t, + pthread_mutex_t, +}; pub type wchar_t = i32; pub type nlink_t = u64; diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index bfbc8ee5cf683..e5546cdae7fb3 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -1,7 +1,10 @@ //! RISC-V-specific definitions for 64-bit linux-like values use crate::prelude::*; -use crate::{off64_t, off_t}; +use crate::{ + off64_t, + off_t, +}; pub type wchar_t = c_int; diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 029485c5b4a32..5bea1a100b1d7 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -1,7 +1,11 @@ //! s390x use crate::prelude::*; -use crate::{off64_t, off_t, pthread_mutex_t}; +use crate::{ + off64_t, + off_t, + pthread_mutex_t, +}; pub type blksize_t = i64; pub type nlink_t = u64; diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs index f18e53a99b466..0a40d7599bad9 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -1,7 +1,11 @@ //! SPARC64-specific definitions for 64-bit linux-like values use crate::prelude::*; -use crate::{off64_t, off_t, pthread_mutex_t}; +use crate::{ + off64_t, + off_t, + pthread_mutex_t, +}; pub type wchar_t = i32; pub type nlink_t = u32; diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index cf871f2a7d84a..e100871275776 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -1,7 +1,10 @@ //! x86_64-specific definitions for 64-bit linux-like values use crate::prelude::*; -use crate::{off64_t, off_t}; +use crate::{ + off64_t, + off_t, +}; pub type wchar_t = i32; pub type nlink_t = u64; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 34ee66d1b6557..45031ab2aa32c 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1,7 +1,13 @@ //! Linux-specific definitions for linux-like values use crate::prelude::*; -use crate::{sock_filter, _IO, _IOR, _IOW, _IOWR}; +use crate::{ + sock_filter, + _IO, + _IOR, + _IOW, + _IOWR, +}; pub type useconds_t = u32; pub type dev_t = u64; diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index ea4b51f006f0f..d78df7528d26f 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -1,7 +1,10 @@ //! RISC-V-specific definitions for 32-bit linux-like values use crate::prelude::*; -use crate::{off64_t, off_t}; +use crate::{ + off64_t, + off_t, +}; pub type wchar_t = c_int; diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index e014fbf48c0da..6ae9637cb58c6 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -1,7 +1,10 @@ //! LoongArch-specific definitions for 64-bit linux-like values use crate::prelude::*; -use crate::{off64_t, off_t}; +use crate::{ + off64_t, + off_t, +}; pub type wchar_t = c_int; diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index 8389af961cf58..cd93ef706deeb 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -1,7 +1,10 @@ //! RISC-V-specific definitions for 64-bit linux-like values use crate::prelude::*; -use crate::{off64_t, off_t}; +use crate::{ + off64_t, + off_t, +}; pub type wchar_t = c_int; diff --git a/src/unix/linux_like/linux/musl/lfs64.rs b/src/unix/linux_like/linux/musl/lfs64.rs index e6506fd3d385d..4d595fc42d72f 100644 --- a/src/unix/linux_like/linux/musl/lfs64.rs +++ b/src/unix/linux_like/linux/musl/lfs64.rs @@ -117,7 +117,10 @@ pub unsafe extern "C" fn mmap64( // // These aliases are mostly fine though, neither function takes a LFS64-namespaced type as an // argument, nor do their names clash with any declared types. -pub use crate::{open as open64, openat as openat64}; +pub use crate::{ + open as open64, + openat as openat64, +}; #[inline] pub unsafe extern "C" fn posix_fadvise64( diff --git a/src/unix/newlib/aarch64/mod.rs b/src/unix/newlib/aarch64/mod.rs index e4640580e2478..56c268fc5f2bb 100644 --- a/src/unix/newlib/aarch64/mod.rs +++ b/src/unix/newlib/aarch64/mod.rs @@ -49,4 +49,8 @@ pub const MSG_WAITALL: c_int = 0; pub const MSG_MORE: c_int = 0; pub const MSG_NOSIGNAL: c_int = 0; -pub use crate::unix::newlib::generic::{dirent, sigset_t, stat}; +pub use crate::unix::newlib::generic::{ + dirent, + sigset_t, + stat, +}; diff --git a/src/unix/newlib/arm/mod.rs b/src/unix/newlib/arm/mod.rs index aea4ed764b03c..26f3d52436b84 100644 --- a/src/unix/newlib/arm/mod.rs +++ b/src/unix/newlib/arm/mod.rs @@ -51,4 +51,8 @@ pub const MSG_WAITALL: c_int = 0; pub const MSG_MORE: c_int = 0; pub const MSG_NOSIGNAL: c_int = 0; -pub use crate::unix::newlib::generic::{dirent, sigset_t, stat}; +pub use crate::unix::newlib::generic::{ + dirent, + sigset_t, + stat, +}; diff --git a/src/unix/newlib/espidf/mod.rs b/src/unix/newlib/espidf/mod.rs index 57a033fcaf263..9bec89a7d78d4 100644 --- a/src/unix/newlib/espidf/mod.rs +++ b/src/unix/newlib/espidf/mod.rs @@ -117,4 +117,8 @@ extern "C" { pub fn eventfd(initval: c_uint, flags: c_int) -> c_int; } -pub use crate::unix::newlib::generic::{dirent, sigset_t, stat}; +pub use crate::unix::newlib::generic::{ + dirent, + sigset_t, + stat, +}; diff --git a/src/unix/newlib/powerpc/mod.rs b/src/unix/newlib/powerpc/mod.rs index c4d4a2ed07c5e..f51a1b2cbe602 100644 --- a/src/unix/newlib/powerpc/mod.rs +++ b/src/unix/newlib/powerpc/mod.rs @@ -3,7 +3,11 @@ use crate::prelude::*; pub type clock_t = c_ulong; pub type wchar_t = c_int; -pub use crate::unix::newlib::generic::{dirent, sigset_t, stat}; +pub use crate::unix::newlib::generic::{ + dirent, + sigset_t, + stat, +}; // the newlib shipped with devkitPPC does not support the following components: // - sockaddr diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index 3d3e2c3448841..41d59beeae4cd 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -1,5 +1,10 @@ use crate::prelude::*; -use crate::{in6_addr, in_addr_t, timespec, DIR}; +use crate::{ + in6_addr, + in_addr_t, + timespec, + DIR, +}; pub type nlink_t = u16; pub type ino_t = u16; diff --git a/src/unix/solarish/compat.rs b/src/unix/solarish/compat.rs index 22bcf12edcc82..6876a9d8fd319 100644 --- a/src/unix/solarish/compat.rs +++ b/src/unix/solarish/compat.rs @@ -3,7 +3,11 @@ use core::cmp::min; use crate::unix::solarish::*; -use crate::{c_char, c_int, size_t}; +use crate::{ + c_char, + c_int, + size_t, +}; pub unsafe fn cfmakeraw(termios: *mut crate::termios) { (*termios).c_iflag &= diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index fbeadaf344fa0..42aa5731f9aaa 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -1,7 +1,13 @@ use crate::prelude::*; use crate::{ - exit_status, off_t, NET_MAC_AWARE, NET_MAC_AWARE_INHERIT, PRIV_AWARE_RESET, PRIV_DEBUG, - PRIV_PFEXEC, PRIV_XPOLICY, + exit_status, + off_t, + NET_MAC_AWARE, + NET_MAC_AWARE_INHERIT, + PRIV_AWARE_RESET, + PRIV_DEBUG, + PRIV_PFEXEC, + PRIV_XPOLICY, }; pub type lgrp_rsrc_t = c_int; diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index 58b097a16269b..c23ec5109cb9c 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -1,7 +1,14 @@ use crate::prelude::*; use crate::{ - exit_status, off_t, termios, NET_MAC_AWARE, NET_MAC_AWARE_INHERIT, PRIV_AWARE_RESET, - PRIV_DEBUG, PRIV_PFEXEC, PRIV_XPOLICY, + exit_status, + off_t, + termios, + NET_MAC_AWARE, + NET_MAC_AWARE_INHERIT, + PRIV_AWARE_RESET, + PRIV_DEBUG, + PRIV_PFEXEC, + PRIV_XPOLICY, }; pub type door_attr_t = c_uint; From 78163b42b5da125e5c5b432818adc5dcca27e3fc Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 25 Oct 2025 14:37:37 -0400 Subject: [PATCH 0922/1228] nuttx: Resolve warnings Fix duplicate exports for nuttx. (backport ) (cherry picked from commit 82e3aed6cbe77ff9df4e25c9fbf7c29b56323359) --- src/unix/mod.rs | 3 +++ src/unix/nuttx/mod.rs | 6 ------ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index e341c7d115691..7caf78319e4fd 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -40,6 +40,8 @@ cfg_if! { extern_ty! { pub enum DIR {} } + +#[cfg(not(target_os = "nuttx"))] pub type locale_t = *mut c_void; s! { @@ -131,6 +133,7 @@ s! { __reserved: [c_long; 16], } + #[cfg(not(target_os = "nuttx"))] pub struct ipv6_mreq { pub ipv6mr_multiaddr: in6_addr, #[cfg(target_os = "android")] diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index 41d59beeae4cd..fe7c6ecb3007a 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -236,11 +236,6 @@ s! { pub ipv6mr_multiaddr: in6_addr, pub ipv6mr_interface: u32, } - - pub struct timeval { - pub tv_sec: time_t, - pub tv_usec: suseconds_t, - } } // Reserved two pointer size for reserved area for some structures. @@ -528,7 +523,6 @@ pub const SIGQUIT: c_int = 3; pub const SIGILL: c_int = 4; pub const SIGTRAP: c_int = 5; pub const SIGABRT: c_int = 6; -pub const SIGIOT: c_int = 6; pub const SIGBUS: c_int = 7; pub const SIGFPE: c_int = 8; pub const SIGKILL: c_int = 9; From 59baa2beb8927d6a42e411c6f77e0b71e1d0db66 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 25 Oct 2025 14:40:36 -0400 Subject: [PATCH 0923/1228] teeos: Switch to the `s!` macro Add the missing expected traits. (backport ) (cherry picked from commit d6d774f73e6677695d55a36da58236d7b840b199) --- src/teeos/mod.rs | 134 ++++++++++++++++++++++------------------------- 1 file changed, 63 insertions(+), 71 deletions(-) diff --git a/src/teeos/mod.rs b/src/teeos/mod.rs index fd9c0b168aba4..f9f8569360f97 100644 --- a/src/teeos/mod.rs +++ b/src/teeos/mod.rs @@ -61,89 +61,81 @@ pub type wctype_t = c_ulong; pub type cmpfunc = extern "C" fn(x: *const c_void, y: *const c_void) -> c_int; -#[repr(align(16))] -pub struct _CLongDouble(pub u128); - -#[repr(align(8))] -#[repr(C)] -pub struct pthread_cond_t { - #[doc(hidden)] - size: [u8; __SIZEOF_PTHREAD_COND_T], +s_paren! { + #[repr(align(16))] + pub struct _CLongDouble(pub u128); } -#[repr(align(8))] -#[repr(C)] -pub struct pthread_mutex_t { - #[doc(hidden)] - size: [u8; __SIZEOF_PTHREAD_MUTEX_T], -} +s! { + #[repr(align(8))] + pub struct pthread_cond_t { + #[doc(hidden)] + size: [u8; __SIZEOF_PTHREAD_COND_T], + } -#[repr(align(4))] -#[repr(C)] -pub struct pthread_mutexattr_t { - #[doc(hidden)] - size: [u8; __SIZEOF_PTHREAD_MUTEXATTR_T], -} + #[repr(align(8))] + pub struct pthread_mutex_t { + #[doc(hidden)] + size: [u8; __SIZEOF_PTHREAD_MUTEX_T], + } -#[repr(align(4))] -#[repr(C)] -pub struct pthread_condattr_t { - #[doc(hidden)] - size: [u8; __SIZEOF_PTHREAD_CONDATTR_T], -} + #[repr(align(4))] + pub struct pthread_mutexattr_t { + #[doc(hidden)] + size: [u8; __SIZEOF_PTHREAD_MUTEXATTR_T], + } -#[repr(C)] -pub struct pthread_attr_t { - __size: [u64; 7], -} + #[repr(align(4))] + pub struct pthread_condattr_t { + #[doc(hidden)] + size: [u8; __SIZEOF_PTHREAD_CONDATTR_T], + } -#[repr(C)] -pub struct cpu_set_t { - bits: [c_ulong; 128 / size_of::()], -} + pub struct pthread_attr_t { + __size: [u64; 7], + } -#[repr(C)] -pub struct timespec { - pub tv_sec: time_t, - pub tv_nsec: c_long, -} + pub struct cpu_set_t { + bits: [c_ulong; 128 / size_of::()], + } -#[repr(C)] -pub struct timeval { - pub tv_sec: time_t, - pub tv_usec: suseconds_t, -} + pub struct timespec { + pub tv_sec: time_t, + pub tv_nsec: c_long, + } -#[repr(C)] -pub struct tm { - pub tm_sec: c_int, - pub tm_min: c_int, - pub tm_hour: c_int, - pub tm_mday: c_int, - pub tm_mon: c_int, - pub tm_year: c_int, - pub tm_wday: c_int, - pub tm_yday: c_int, - pub tm_isdst: c_int, - pub __tm_gmtoff: c_long, - pub __tm_zone: *const c_char, -} + pub struct timeval { + pub tv_sec: time_t, + pub tv_usec: suseconds_t, + } -#[repr(C)] -pub struct mbstate_t { - pub __opaque1: c_uint, - pub __opaque2: c_uint, -} + pub struct tm { + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + pub __tm_gmtoff: c_long, + pub __tm_zone: *const c_char, + } -#[repr(C)] -pub struct sem_t { - pub __val: [c_int; 4 * size_of::() / size_of::()], -} + pub struct mbstate_t { + pub __opaque1: c_uint, + pub __opaque2: c_uint, + } -#[repr(C)] -pub struct div_t { - pub quot: c_int, - pub rem: c_int, + pub struct sem_t { + pub __val: [c_int; 4 * size_of::() / size_of::()], + } + + pub struct div_t { + pub quot: c_int, + pub rem: c_int, + } } // fcntl From dfee6b1b0fd4bbe94d89c4788d989b16a216ec01 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 25 Oct 2025 15:21:39 -0400 Subject: [PATCH 0924/1228] wali: Fix unknown config `target_vendor = "wali"` no longer seems to exist, so use wasm+musl to enable the module instead. Also fix missing types in the wali module. (backport ) (cherry picked from commit 57a0228bf3b50ec6102288230cab8ff387f60bce) --- .../linux_like/linux/musl/b64/wasm32/mod.rs | 2 +- .../linux_like/linux/musl/b64/wasm32/wali.rs | 288 +++++++++--------- 2 files changed, 145 insertions(+), 145 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs index 29750e79e17e6..00dc4e5b97f2d 100644 --- a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs @@ -681,7 +681,7 @@ pub const TOSTOP: crate::tcflag_t = 0x00000100; pub const FLUSHO: crate::tcflag_t = 0x00001000; cfg_if! { - if #[cfg(target_vendor = "wali")] { + if #[cfg(all(target_family = "wasm", target_env = "musl"))] { mod wali; pub use self::wali::*; } diff --git a/src/unix/linux_like/linux/musl/b64/wasm32/wali.rs b/src/unix/linux_like/linux/musl/b64/wasm32/wali.rs index bda5c241c1d2d..f347e8a69ddd0 100644 --- a/src/unix/linux_like/linux/musl/b64/wasm32/wali.rs +++ b/src/unix/linux_like/linux/musl/b64/wasm32/wali.rs @@ -1,400 +1,400 @@ //! WebAssembly Linux Interface syscall specification +use crate::prelude::*; + // --- Autogenerated from WALI/scripts/autogen.py --- #[link(wasm_import_module = "wali")] extern "C" { /* 0 */ #[link_name = "SYS_read"] - pub fn __syscall_SYS_read(a1: i32, a2: i32, a3: u32) -> ::c_long; + pub fn __syscall_SYS_read(a1: i32, a2: i32, a3: u32) -> c_long; /* 1 */ #[link_name = "SYS_write"] - pub fn __syscall_SYS_write(a1: i32, a2: i32, a3: u32) -> ::c_long; + pub fn __syscall_SYS_write(a1: i32, a2: i32, a3: u32) -> c_long; /* 2 */ #[link_name = "SYS_open"] - pub fn __syscall_SYS_open(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_open(a1: i32, a2: i32, a3: i32) -> c_long; /* 3 */ #[link_name = "SYS_close"] - pub fn __syscall_SYS_close(a1: i32) -> ::c_long; + pub fn __syscall_SYS_close(a1: i32) -> c_long; /* 4 */ #[link_name = "SYS_stat"] - pub fn __syscall_SYS_stat(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_stat(a1: i32, a2: i32) -> c_long; /* 5 */ #[link_name = "SYS_fstat"] - pub fn __syscall_SYS_fstat(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_fstat(a1: i32, a2: i32) -> c_long; /* 6 */ #[link_name = "SYS_lstat"] - pub fn __syscall_SYS_lstat(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_lstat(a1: i32, a2: i32) -> c_long; /* 7 */ #[link_name = "SYS_poll"] - pub fn __syscall_SYS_poll(a1: i32, a2: u32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_poll(a1: i32, a2: u32, a3: i32) -> c_long; /* 8 */ #[link_name = "SYS_lseek"] - pub fn __syscall_SYS_lseek(a1: i32, a2: i64, a3: i32) -> ::c_long; + pub fn __syscall_SYS_lseek(a1: i32, a2: i64, a3: i32) -> c_long; /* 9 */ #[link_name = "SYS_mmap"] - pub fn __syscall_SYS_mmap(a1: i32, a2: u32, a3: i32, a4: i32, a5: i32, a6: i64) -> ::c_long; + pub fn __syscall_SYS_mmap(a1: i32, a2: u32, a3: i32, a4: i32, a5: i32, a6: i64) -> c_long; /* 10 */ #[link_name = "SYS_mprotect"] - pub fn __syscall_SYS_mprotect(a1: i32, a2: u32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_mprotect(a1: i32, a2: u32, a3: i32) -> c_long; /* 11 */ #[link_name = "SYS_munmap"] - pub fn __syscall_SYS_munmap(a1: i32, a2: u32) -> ::c_long; + pub fn __syscall_SYS_munmap(a1: i32, a2: u32) -> c_long; /* 12 */ #[link_name = "SYS_brk"] - pub fn __syscall_SYS_brk(a1: i32) -> ::c_long; + pub fn __syscall_SYS_brk(a1: i32) -> c_long; /* 13 */ #[link_name = "SYS_rt_sigaction"] - pub fn __syscall_SYS_rt_sigaction(a1: i32, a2: i32, a3: i32, a4: u32) -> ::c_long; + pub fn __syscall_SYS_rt_sigaction(a1: i32, a2: i32, a3: i32, a4: u32) -> c_long; /* 14 */ #[link_name = "SYS_rt_sigprocmask"] - pub fn __syscall_SYS_rt_sigprocmask(a1: i32, a2: i32, a3: i32, a4: u32) -> ::c_long; + pub fn __syscall_SYS_rt_sigprocmask(a1: i32, a2: i32, a3: i32, a4: u32) -> c_long; /* 15 */ #[link_name = "SYS_rt_sigreturn"] - pub fn __syscall_SYS_rt_sigreturn(a1: i64) -> ::c_long; + pub fn __syscall_SYS_rt_sigreturn(a1: i64) -> c_long; /* 16 */ #[link_name = "SYS_ioctl"] - pub fn __syscall_SYS_ioctl(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_ioctl(a1: i32, a2: i32, a3: i32) -> c_long; /* 17 */ #[link_name = "SYS_pread64"] - pub fn __syscall_SYS_pread64(a1: i32, a2: i32, a3: u32, a4: i64) -> ::c_long; + pub fn __syscall_SYS_pread64(a1: i32, a2: i32, a3: u32, a4: i64) -> c_long; /* 18 */ #[link_name = "SYS_pwrite64"] - pub fn __syscall_SYS_pwrite64(a1: i32, a2: i32, a3: u32, a4: i64) -> ::c_long; + pub fn __syscall_SYS_pwrite64(a1: i32, a2: i32, a3: u32, a4: i64) -> c_long; /* 19 */ #[link_name = "SYS_readv"] - pub fn __syscall_SYS_readv(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_readv(a1: i32, a2: i32, a3: i32) -> c_long; /* 20 */ #[link_name = "SYS_writev"] - pub fn __syscall_SYS_writev(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_writev(a1: i32, a2: i32, a3: i32) -> c_long; /* 21 */ #[link_name = "SYS_access"] - pub fn __syscall_SYS_access(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_access(a1: i32, a2: i32) -> c_long; /* 22 */ #[link_name = "SYS_pipe"] - pub fn __syscall_SYS_pipe(a1: i32) -> ::c_long; + pub fn __syscall_SYS_pipe(a1: i32) -> c_long; /* 23 */ #[link_name = "SYS_select"] - pub fn __syscall_SYS_select(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> ::c_long; + pub fn __syscall_SYS_select(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> c_long; /* 24 */ #[link_name = "SYS_sched_yield"] - pub fn __syscall_SYS_sched_yield() -> ::c_long; + pub fn __syscall_SYS_sched_yield() -> c_long; /* 25 */ #[link_name = "SYS_mremap"] - pub fn __syscall_SYS_mremap(a1: i32, a2: u32, a3: u32, a4: i32, a5: i32) -> ::c_long; + pub fn __syscall_SYS_mremap(a1: i32, a2: u32, a3: u32, a4: i32, a5: i32) -> c_long; /* 26 */ #[link_name = "SYS_msync"] - pub fn __syscall_SYS_msync(a1: i32, a2: u32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_msync(a1: i32, a2: u32, a3: i32) -> c_long; /* 28 */ #[link_name = "SYS_madvise"] - pub fn __syscall_SYS_madvise(a1: i32, a2: u32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_madvise(a1: i32, a2: u32, a3: i32) -> c_long; /* 32 */ #[link_name = "SYS_dup"] - pub fn __syscall_SYS_dup(a1: i32) -> ::c_long; + pub fn __syscall_SYS_dup(a1: i32) -> c_long; /* 33 */ #[link_name = "SYS_dup2"] - pub fn __syscall_SYS_dup2(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_dup2(a1: i32, a2: i32) -> c_long; /* 35 */ #[link_name = "SYS_nanosleep"] - pub fn __syscall_SYS_nanosleep(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_nanosleep(a1: i32, a2: i32) -> c_long; /* 37 */ #[link_name = "SYS_alarm"] - pub fn __syscall_SYS_alarm(a1: i32) -> ::c_long; + pub fn __syscall_SYS_alarm(a1: i32) -> c_long; /* 38 */ #[link_name = "SYS_setitimer"] - pub fn __syscall_SYS_setitimer(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_setitimer(a1: i32, a2: i32, a3: i32) -> c_long; /* 39 */ #[link_name = "SYS_getpid"] - pub fn __syscall_SYS_getpid() -> ::c_long; + pub fn __syscall_SYS_getpid() -> c_long; /* 41 */ #[link_name = "SYS_socket"] - pub fn __syscall_SYS_socket(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_socket(a1: i32, a2: i32, a3: i32) -> c_long; /* 42 */ #[link_name = "SYS_connect"] - pub fn __syscall_SYS_connect(a1: i32, a2: i32, a3: u32) -> ::c_long; + pub fn __syscall_SYS_connect(a1: i32, a2: i32, a3: u32) -> c_long; /* 43 */ #[link_name = "SYS_accept"] - pub fn __syscall_SYS_accept(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_accept(a1: i32, a2: i32, a3: i32) -> c_long; /* 44 */ #[link_name = "SYS_sendto"] - pub fn __syscall_SYS_sendto(a1: i32, a2: i32, a3: u32, a4: i32, a5: i32, a6: u32) -> ::c_long; + pub fn __syscall_SYS_sendto(a1: i32, a2: i32, a3: u32, a4: i32, a5: i32, a6: u32) -> c_long; /* 45 */ #[link_name = "SYS_recvfrom"] - pub fn __syscall_SYS_recvfrom(a1: i32, a2: i32, a3: u32, a4: i32, a5: i32, a6: i32) - -> ::c_long; + pub fn __syscall_SYS_recvfrom(a1: i32, a2: i32, a3: u32, a4: i32, a5: i32, a6: i32) -> c_long; /* 46 */ #[link_name = "SYS_sendmsg"] - pub fn __syscall_SYS_sendmsg(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_sendmsg(a1: i32, a2: i32, a3: i32) -> c_long; /* 47 */ #[link_name = "SYS_recvmsg"] - pub fn __syscall_SYS_recvmsg(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_recvmsg(a1: i32, a2: i32, a3: i32) -> c_long; /* 48 */ #[link_name = "SYS_shutdown"] - pub fn __syscall_SYS_shutdown(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_shutdown(a1: i32, a2: i32) -> c_long; /* 49 */ #[link_name = "SYS_bind"] - pub fn __syscall_SYS_bind(a1: i32, a2: i32, a3: u32) -> ::c_long; + pub fn __syscall_SYS_bind(a1: i32, a2: i32, a3: u32) -> c_long; /* 50 */ #[link_name = "SYS_listen"] - pub fn __syscall_SYS_listen(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_listen(a1: i32, a2: i32) -> c_long; /* 51 */ #[link_name = "SYS_getsockname"] - pub fn __syscall_SYS_getsockname(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_getsockname(a1: i32, a2: i32, a3: i32) -> c_long; /* 52 */ #[link_name = "SYS_getpeername"] - pub fn __syscall_SYS_getpeername(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_getpeername(a1: i32, a2: i32, a3: i32) -> c_long; /* 53 */ #[link_name = "SYS_socketpair"] - pub fn __syscall_SYS_socketpair(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + pub fn __syscall_SYS_socketpair(a1: i32, a2: i32, a3: i32, a4: i32) -> c_long; /* 54 */ #[link_name = "SYS_setsockopt"] - pub fn __syscall_SYS_setsockopt(a1: i32, a2: i32, a3: i32, a4: i32, a5: u32) -> ::c_long; + pub fn __syscall_SYS_setsockopt(a1: i32, a2: i32, a3: i32, a4: i32, a5: u32) -> c_long; /* 55 */ #[link_name = "SYS_getsockopt"] - pub fn __syscall_SYS_getsockopt(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> ::c_long; + pub fn __syscall_SYS_getsockopt(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> c_long; /* 57 */ #[link_name = "SYS_fork"] - pub fn __syscall_SYS_fork() -> ::c_long; + pub fn __syscall_SYS_fork() -> c_long; /* 59 */ #[link_name = "SYS_execve"] - pub fn __syscall_SYS_execve(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_execve(a1: i32, a2: i32, a3: i32) -> c_long; /* 60 */ #[link_name = "SYS_exit"] - pub fn __syscall_SYS_exit(a1: i32) -> ::c_long; + pub fn __syscall_SYS_exit(a1: i32) -> c_long; /* 61 */ #[link_name = "SYS_wait4"] - pub fn __syscall_SYS_wait4(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + pub fn __syscall_SYS_wait4(a1: i32, a2: i32, a3: i32, a4: i32) -> c_long; /* 62 */ #[link_name = "SYS_kill"] - pub fn __syscall_SYS_kill(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_kill(a1: i32, a2: i32) -> c_long; /* 63 */ #[link_name = "SYS_uname"] - pub fn __syscall_SYS_uname(a1: i32) -> ::c_long; + pub fn __syscall_SYS_uname(a1: i32) -> c_long; /* 72 */ #[link_name = "SYS_fcntl"] - pub fn __syscall_SYS_fcntl(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_fcntl(a1: i32, a2: i32, a3: i32) -> c_long; /* 73 */ #[link_name = "SYS_flock"] - pub fn __syscall_SYS_flock(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_flock(a1: i32, a2: i32) -> c_long; /* 74 */ #[link_name = "SYS_fsync"] - pub fn __syscall_SYS_fsync(a1: i32) -> ::c_long; + pub fn __syscall_SYS_fsync(a1: i32) -> c_long; /* 75 */ #[link_name = "SYS_fdatasync"] - pub fn __syscall_SYS_fdatasync(a1: i32) -> ::c_long; + pub fn __syscall_SYS_fdatasync(a1: i32) -> c_long; /* 77 */ #[link_name = "SYS_ftruncate"] - pub fn __syscall_SYS_ftruncate(a1: i32, a2: i64) -> ::c_long; + pub fn __syscall_SYS_ftruncate(a1: i32, a2: i64) -> c_long; /* 78 */ #[link_name = "SYS_getdents"] - pub fn __syscall_SYS_getdents(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_getdents(a1: i32, a2: i32, a3: i32) -> c_long; /* 79 */ #[link_name = "SYS_getcwd"] - pub fn __syscall_SYS_getcwd(a1: i32, a2: u32) -> ::c_long; + pub fn __syscall_SYS_getcwd(a1: i32, a2: u32) -> c_long; /* 80 */ #[link_name = "SYS_chdir"] - pub fn __syscall_SYS_chdir(a1: i32) -> ::c_long; + pub fn __syscall_SYS_chdir(a1: i32) -> c_long; /* 81 */ #[link_name = "SYS_fchdir"] - pub fn __syscall_SYS_fchdir(a1: i32) -> ::c_long; + pub fn __syscall_SYS_fchdir(a1: i32) -> c_long; /* 82 */ #[link_name = "SYS_rename"] - pub fn __syscall_SYS_rename(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_rename(a1: i32, a2: i32) -> c_long; /* 83 */ #[link_name = "SYS_mkdir"] - pub fn __syscall_SYS_mkdir(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_mkdir(a1: i32, a2: i32) -> c_long; /* 84 */ #[link_name = "SYS_rmdir"] - pub fn __syscall_SYS_rmdir(a1: i32) -> ::c_long; + pub fn __syscall_SYS_rmdir(a1: i32) -> c_long; /* 86 */ #[link_name = "SYS_link"] - pub fn __syscall_SYS_link(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_link(a1: i32, a2: i32) -> c_long; /* 87 */ #[link_name = "SYS_unlink"] - pub fn __syscall_SYS_unlink(a1: i32) -> ::c_long; + pub fn __syscall_SYS_unlink(a1: i32) -> c_long; /* 88 */ #[link_name = "SYS_symlink"] - pub fn __syscall_SYS_symlink(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_symlink(a1: i32, a2: i32) -> c_long; /* 89 */ #[link_name = "SYS_readlink"] - pub fn __syscall_SYS_readlink(a1: i32, a2: i32, a3: u32) -> ::c_long; + pub fn __syscall_SYS_readlink(a1: i32, a2: i32, a3: u32) -> c_long; /* 90 */ #[link_name = "SYS_chmod"] - pub fn __syscall_SYS_chmod(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_chmod(a1: i32, a2: i32) -> c_long; /* 91 */ #[link_name = "SYS_fchmod"] - pub fn __syscall_SYS_fchmod(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_fchmod(a1: i32, a2: i32) -> c_long; /* 92 */ #[link_name = "SYS_chown"] - pub fn __syscall_SYS_chown(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_chown(a1: i32, a2: i32, a3: i32) -> c_long; /* 93 */ #[link_name = "SYS_fchown"] - pub fn __syscall_SYS_fchown(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_fchown(a1: i32, a2: i32, a3: i32) -> c_long; /* 95 */ #[link_name = "SYS_umask"] - pub fn __syscall_SYS_umask(a1: i32) -> ::c_long; + pub fn __syscall_SYS_umask(a1: i32) -> c_long; /* 97 */ #[link_name = "SYS_getrlimit"] - pub fn __syscall_SYS_getrlimit(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_getrlimit(a1: i32, a2: i32) -> c_long; /* 98 */ #[link_name = "SYS_getrusage"] - pub fn __syscall_SYS_getrusage(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_getrusage(a1: i32, a2: i32) -> c_long; /* 99 */ #[link_name = "SYS_sysinfo"] - pub fn __syscall_SYS_sysinfo(a1: i32) -> ::c_long; + pub fn __syscall_SYS_sysinfo(a1: i32) -> c_long; /* 102 */ #[link_name = "SYS_getuid"] - pub fn __syscall_SYS_getuid() -> ::c_long; + pub fn __syscall_SYS_getuid() -> c_long; /* 104 */ #[link_name = "SYS_getgid"] - pub fn __syscall_SYS_getgid() -> ::c_long; + pub fn __syscall_SYS_getgid() -> c_long; /* 105 */ #[link_name = "SYS_setuid"] - pub fn __syscall_SYS_setuid(a1: i32) -> ::c_long; + pub fn __syscall_SYS_setuid(a1: i32) -> c_long; /* 106 */ #[link_name = "SYS_setgid"] - pub fn __syscall_SYS_setgid(a1: i32) -> ::c_long; + pub fn __syscall_SYS_setgid(a1: i32) -> c_long; /* 107 */ #[link_name = "SYS_geteuid"] - pub fn __syscall_SYS_geteuid() -> ::c_long; + pub fn __syscall_SYS_geteuid() -> c_long; /* 108 */ #[link_name = "SYS_getegid"] - pub fn __syscall_SYS_getegid() -> ::c_long; + pub fn __syscall_SYS_getegid() -> c_long; /* 109 */ #[link_name = "SYS_setpgid"] - pub fn __syscall_SYS_setpgid(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_setpgid(a1: i32, a2: i32) -> c_long; /* 110 */ #[link_name = "SYS_getppid"] - pub fn __syscall_SYS_getppid() -> ::c_long; + pub fn __syscall_SYS_getppid() -> c_long; /* 112 */ #[link_name = "SYS_setsid"] - pub fn __syscall_SYS_setsid() -> ::c_long; + pub fn __syscall_SYS_setsid() -> c_long; /* 113 */ #[link_name = "SYS_setreuid"] - pub fn __syscall_SYS_setreuid(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_setreuid(a1: i32, a2: i32) -> c_long; /* 114 */ #[link_name = "SYS_setregid"] - pub fn __syscall_SYS_setregid(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_setregid(a1: i32, a2: i32) -> c_long; /* 115 */ #[link_name = "SYS_getgroups"] - pub fn __syscall_SYS_getgroups(a1: u32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_getgroups(a1: u32, a2: i32) -> c_long; /* 116 */ #[link_name = "SYS_setgroups"] - pub fn __syscall_SYS_setgroups(a1: u32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_setgroups(a1: u32, a2: i32) -> c_long; /* 117 */ #[link_name = "SYS_setresuid"] - pub fn __syscall_SYS_setresuid(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_setresuid(a1: i32, a2: i32, a3: i32) -> c_long; /* 119 */ #[link_name = "SYS_setresgid"] - pub fn __syscall_SYS_setresgid(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_setresgid(a1: i32, a2: i32, a3: i32) -> c_long; /* 121 */ #[link_name = "SYS_getpgid"] - pub fn __syscall_SYS_getpgid(a1: i32) -> ::c_long; + pub fn __syscall_SYS_getpgid(a1: i32) -> c_long; /* 124 */ #[link_name = "SYS_getsid"] - pub fn __syscall_SYS_getsid(a1: i32) -> ::c_long; + pub fn __syscall_SYS_getsid(a1: i32) -> c_long; /* 127 */ #[link_name = "SYS_rt_sigpending"] - pub fn __syscall_SYS_rt_sigpending(a1: i32, a2: u32) -> ::c_long; + pub fn __syscall_SYS_rt_sigpending(a1: i32, a2: u32) -> c_long; /* 130 */ #[link_name = "SYS_rt_sigsuspend"] - pub fn __syscall_SYS_rt_sigsuspend(a1: i32, a2: u32) -> ::c_long; + pub fn __syscall_SYS_rt_sigsuspend(a1: i32, a2: u32) -> c_long; /* 131 */ #[link_name = "SYS_sigaltstack"] - pub fn __syscall_SYS_sigaltstack(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_sigaltstack(a1: i32, a2: i32) -> c_long; /* 132 */ #[link_name = "SYS_utime"] - pub fn __syscall_SYS_utime(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_utime(a1: i32, a2: i32) -> c_long; /* 137 */ #[link_name = "SYS_statfs"] - pub fn __syscall_SYS_statfs(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_statfs(a1: i32, a2: i32) -> c_long; /* 138 */ #[link_name = "SYS_fstatfs"] - pub fn __syscall_SYS_fstatfs(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_fstatfs(a1: i32, a2: i32) -> c_long; /* 157 */ #[link_name = "SYS_prctl"] - pub fn __syscall_SYS_prctl(a1: i32, a2: u64, a3: u64, a4: u64, a5: u64) -> ::c_long; + pub fn __syscall_SYS_prctl(a1: i32, a2: u64, a3: u64, a4: u64, a5: u64) -> c_long; /* 160 */ #[link_name = "SYS_setrlimit"] - pub fn __syscall_SYS_setrlimit(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_setrlimit(a1: i32, a2: i32) -> c_long; /* 161 */ #[link_name = "SYS_chroot"] - pub fn __syscall_SYS_chroot(a1: i32) -> ::c_long; + pub fn __syscall_SYS_chroot(a1: i32) -> c_long; /* 186 */ #[link_name = "SYS_gettid"] - pub fn __syscall_SYS_gettid() -> ::c_long; + pub fn __syscall_SYS_gettid() -> c_long; /* 200 */ #[link_name = "SYS_tkill"] - pub fn __syscall_SYS_tkill(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_tkill(a1: i32, a2: i32) -> c_long; /* 202 */ #[link_name = "SYS_futex"] - pub fn __syscall_SYS_futex(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32, a6: i32) -> ::c_long; + pub fn __syscall_SYS_futex(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32, a6: i32) -> c_long; /* 204 */ #[link_name = "SYS_sched_getaffinity"] - pub fn __syscall_SYS_sched_getaffinity(a1: i32, a2: u32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_sched_getaffinity(a1: i32, a2: u32, a3: i32) -> c_long; /* 217 */ #[link_name = "SYS_getdents64"] - pub fn __syscall_SYS_getdents64(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_getdents64(a1: i32, a2: i32, a3: i32) -> c_long; /* 218 */ #[link_name = "SYS_set_tid_address"] - pub fn __syscall_SYS_set_tid_address(a1: i32) -> ::c_long; + pub fn __syscall_SYS_set_tid_address(a1: i32) -> c_long; /* 221 */ #[link_name = "SYS_fadvise"] - pub fn __syscall_SYS_fadvise(a1: i32, a2: i64, a3: i64, a4: i32) -> ::c_long; + pub fn __syscall_SYS_fadvise(a1: i32, a2: i64, a3: i64, a4: i32) -> c_long; /* 228 */ #[link_name = "SYS_clock_gettime"] - pub fn __syscall_SYS_clock_gettime(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_clock_gettime(a1: i32, a2: i32) -> c_long; /* 229 */ #[link_name = "SYS_clock_getres"] - pub fn __syscall_SYS_clock_getres(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_clock_getres(a1: i32, a2: i32) -> c_long; /* 230 */ #[link_name = "SYS_clock_nanosleep"] - pub fn __syscall_SYS_clock_nanosleep(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + pub fn __syscall_SYS_clock_nanosleep(a1: i32, a2: i32, a3: i32, a4: i32) -> c_long; /* 231 */ #[link_name = "SYS_exit_group"] - pub fn __syscall_SYS_exit_group(a1: i32) -> ::c_long; + pub fn __syscall_SYS_exit_group(a1: i32) -> c_long; /* 233 */ #[link_name = "SYS_epoll_ctl"] - pub fn __syscall_SYS_epoll_ctl(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + pub fn __syscall_SYS_epoll_ctl(a1: i32, a2: i32, a3: i32, a4: i32) -> c_long; /* 257 */ #[link_name = "SYS_openat"] - pub fn __syscall_SYS_openat(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + pub fn __syscall_SYS_openat(a1: i32, a2: i32, a3: i32, a4: i32) -> c_long; /* 258 */ #[link_name = "SYS_mkdirat"] - pub fn __syscall_SYS_mkdirat(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_mkdirat(a1: i32, a2: i32, a3: i32) -> c_long; /* 260 */ #[link_name = "SYS_fchownat"] - pub fn __syscall_SYS_fchownat(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> ::c_long; + pub fn __syscall_SYS_fchownat(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> c_long; /* 262 */ #[link_name = "SYS_fstatat"] - pub fn __syscall_SYS_fstatat(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + pub fn __syscall_SYS_fstatat(a1: i32, a2: i32, a3: i32, a4: i32) -> c_long; /* 263 */ #[link_name = "SYS_unlinkat"] - pub fn __syscall_SYS_unlinkat(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_unlinkat(a1: i32, a2: i32, a3: i32) -> c_long; /* 265 */ #[link_name = "SYS_linkat"] - pub fn __syscall_SYS_linkat(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> ::c_long; + pub fn __syscall_SYS_linkat(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> c_long; /* 266 */ #[link_name = "SYS_symlinkat"] - pub fn __syscall_SYS_symlinkat(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_symlinkat(a1: i32, a2: i32, a3: i32) -> c_long; /* 267 */ #[link_name = "SYS_readlinkat"] - pub fn __syscall_SYS_readlinkat(a1: i32, a2: i32, a3: i32, a4: u32) -> ::c_long; + pub fn __syscall_SYS_readlinkat(a1: i32, a2: i32, a3: i32, a4: u32) -> c_long; /* 268 */ #[link_name = "SYS_fchmodat"] - pub fn __syscall_SYS_fchmodat(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + pub fn __syscall_SYS_fchmodat(a1: i32, a2: i32, a3: i32, a4: i32) -> c_long; /* 269 */ #[link_name = "SYS_faccessat"] - pub fn __syscall_SYS_faccessat(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + pub fn __syscall_SYS_faccessat(a1: i32, a2: i32, a3: i32, a4: i32) -> c_long; /* 270 */ #[link_name = "SYS_pselect6"] - pub fn __syscall_SYS_pselect6(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32, a6: i32) - -> ::c_long; + pub fn __syscall_SYS_pselect6(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32, a6: i32) -> c_long; /* 271 */ #[link_name = "SYS_ppoll"] - pub fn __syscall_SYS_ppoll(a1: i32, a2: u32, a3: i32, a4: i32, a5: u32) -> ::c_long; + pub fn __syscall_SYS_ppoll(a1: i32, a2: u32, a3: i32, a4: i32, a5: u32) -> c_long; /* 280 */ #[link_name = "SYS_utimensat"] - pub fn __syscall_SYS_utimensat(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + pub fn __syscall_SYS_utimensat(a1: i32, a2: i32, a3: i32, a4: i32) -> c_long; /* 281 */ #[link_name = "SYS_epoll_pwait"] pub fn __syscall_SYS_epoll_pwait( @@ -404,38 +404,38 @@ extern "C" { a4: i32, a5: i32, a6: u32, - ) -> ::c_long; + ) -> c_long; /* 284 */ #[link_name = "SYS_eventfd"] - pub fn __syscall_SYS_eventfd(a1: i32) -> ::c_long; + pub fn __syscall_SYS_eventfd(a1: i32) -> c_long; /* 288 */ #[link_name = "SYS_accept4"] - pub fn __syscall_SYS_accept4(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + pub fn __syscall_SYS_accept4(a1: i32, a2: i32, a3: i32, a4: i32) -> c_long; /* 290 */ #[link_name = "SYS_eventfd2"] - pub fn __syscall_SYS_eventfd2(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_eventfd2(a1: i32, a2: i32) -> c_long; /* 291 */ #[link_name = "SYS_epoll_create1"] - pub fn __syscall_SYS_epoll_create1(a1: i32) -> ::c_long; + pub fn __syscall_SYS_epoll_create1(a1: i32) -> c_long; /* 292 */ #[link_name = "SYS_dup3"] - pub fn __syscall_SYS_dup3(a1: i32, a2: i32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_dup3(a1: i32, a2: i32, a3: i32) -> c_long; /* 293 */ #[link_name = "SYS_pipe2"] - pub fn __syscall_SYS_pipe2(a1: i32, a2: i32) -> ::c_long; + pub fn __syscall_SYS_pipe2(a1: i32, a2: i32) -> c_long; /* 302 */ #[link_name = "SYS_prlimit64"] - pub fn __syscall_SYS_prlimit64(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + pub fn __syscall_SYS_prlimit64(a1: i32, a2: i32, a3: i32, a4: i32) -> c_long; /* 316 */ #[link_name = "SYS_renameat2"] - pub fn __syscall_SYS_renameat2(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> ::c_long; + pub fn __syscall_SYS_renameat2(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> c_long; /* 318 */ #[link_name = "SYS_getrandom"] - pub fn __syscall_SYS_getrandom(a1: i32, a2: u32, a3: i32) -> ::c_long; + pub fn __syscall_SYS_getrandom(a1: i32, a2: u32, a3: i32) -> c_long; /* 332 */ #[link_name = "SYS_statx"] - pub fn __syscall_SYS_statx(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> ::c_long; + pub fn __syscall_SYS_statx(a1: i32, a2: i32, a3: i32, a4: i32, a5: i32) -> c_long; /* 439 */ #[link_name = "SYS_faccessat2"] - pub fn __syscall_SYS_faccessat2(a1: i32, a2: i32, a3: i32, a4: i32) -> ::c_long; + pub fn __syscall_SYS_faccessat2(a1: i32, a2: i32, a3: i32, a4: i32) -> c_long; } From 060372452a205b78723342adc9420acbe6e52c05 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 25 Oct 2025 15:23:40 -0400 Subject: [PATCH 0925/1228] espidf: Fix the duplicate definition of gethostname (backport ) (cherry picked from commit f6388933578ef33b7b830eacae8d293b816b14c0) --- src/unix/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 7caf78319e4fd..0de47f4e92b8e 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1466,6 +1466,7 @@ extern "C" { link_name = "mknod@FBSD_1.0" )] pub fn mknod(pathname: *const c_char, mode: mode_t, dev: crate::dev_t) -> c_int; + #[cfg(not(target_os = "espidf"))] pub fn gethostname(name: *mut c_char, len: size_t) -> c_int; pub fn endservent(); pub fn getservbyname(name: *const c_char, proto: *const c_char) -> *mut servent; From 6ab7fbf7aaeb5a14f24c94e894513775701f27e5 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 3 Nov 2025 19:54:37 -0600 Subject: [PATCH 0926/1228] ci: Ignore `repr_align_removed` for cargo-semver-checks This flagged a changed struct in the latest version. Alignment isn't something users should be relying upon, so ignore it globally. --- Cargo.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index a4df1a263ca75..141a77f791ea8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -178,3 +178,7 @@ expl_impl_clone_on_copy = "allow" uninlined_format_args = "allow" unnecessary_cast = "allow" # some casts like `as usize` are only needed for some targets used_underscore_binding = "allow" + +[package.metadata.cargo-semver-checks.lints] +# Alignment is an internal detail that users must not rely upon +repr_align_removed = "warn" From fe64ff945f36acbe59ebf7a0273c3cddff581fca Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 25 Oct 2025 18:51:53 -0400 Subject: [PATCH 0927/1228] Upgrade all dependencies to latest (backport ) (cherry picked from commit 1b84fd8fdc3487ae037b4bc16e32f03351ccefd6) [ `cargo update` run after the cherry pick - Trevor ] --- Cargo.lock | 32 ++++++++++++++++---------------- libc-test/Cargo.toml | 14 +++++++------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 512d405c94c07..30d8813e9114a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -23,9 +23,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.11" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "askama" @@ -90,9 +90,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "ctest" @@ -120,9 +120,9 @@ checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" [[package]] name = "glob" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "itoa" @@ -184,9 +184,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.1" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", @@ -196,9 +196,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", @@ -207,9 +207,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "rustc-hash" @@ -316,9 +316,9 @@ checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-width" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" [[package]] name = "winnow" diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index f761bab3a4dde..a1b54af127ae2 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -9,20 +9,20 @@ license = "MIT OR Apache-2.0" repository = "https://github.com/rust-lang/libc" [dependencies] -cfg-if = "1.0.1" -libc = { path = "..", version = "0.2.171", default-features = false } +cfg-if = "1.0.4" +libc = { path = "..", version = "0.2.177", default-features = false } [dev-dependencies] -syn = { version = "2.0.104", features = ["full", "visit"] } -proc-macro2 = { version = "1.0.95", features = ["span-locations"] } -glob = "0.3.2" +syn = { version = "2.0.108", features = ["full", "visit"] } +proc-macro2 = { version = "1.0.103", features = ["span-locations"] } +glob = "0.3.3" annotate-snippets = { version = "0.11.5", features = ["testing-colors"] } [build-dependencies] -cc = "1.2.29" +cc = "1.2.43" # Use the in-tree `ctest` from the `main` branch via crates.io ctest = "0.5.0-beta.1" -regex = "1.11.1" +regex = "1.12.2" [features] default = ["std"] From 9fe141ae20b390ed623fdac779167f0a21d3f808 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 25 Oct 2025 18:17:01 -0400 Subject: [PATCH 0928/1228] ci: Simplify job matrix with defaults Default jobs to ubuntu-24.04 but allow for overrides, and decide whether or not to run in Docker based on the target OS being Linux (rather than needing to specify). (backport ) (cherry picked from commit c239dce2feae85b70643cc4a2b60bf68ec290745) --- .github/workflows/ci.yaml | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 70b3fbd1e2cee..16fa73e1f9d26 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -93,23 +93,15 @@ jobs: matrix: include: - target: i686-unknown-linux-gnu - docker: true - os: ubuntu-24.04 - target: i686-unknown-linux-gnu - docker: true - os: ubuntu-24.04 artifact-tag: offset-bits64 env: RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64 - target: i686-unknown-linux-gnu - docker: true - os: ubuntu-24.04 artifact-tag: time-bits64 env: RUST_LIBC_UNSTABLE_GNU_TIME_BITS: 64 - target: x86_64-unknown-linux-gnu - docker: true - os: ubuntu-24.04 - target: aarch64-apple-darwin os: macos-15 - target: x86_64-pc-windows-gnu @@ -126,7 +118,7 @@ jobs: # ARCH: i686 - target: i686-pc-windows-msvc os: windows-2025 - runs-on: ${{ matrix.os }} + runs-on: ${{ matrix.os && matrix.os || 'ubuntu-24.04' }} timeout-minutes: 25 env: TARGET: ${{ matrix.target }} @@ -146,10 +138,10 @@ jobs: shell: bash - name: Run natively - if: "!matrix.docker" + if: runner.os != 'Linux' run: ./ci/run.sh ${{ matrix.target }} - name: Run in Docker - if: "matrix.docker" + if: runner.os == 'Linux' run: ./ci/run-docker.sh ${{ matrix.target }} - name: Create CI artifacts @@ -166,7 +158,7 @@ jobs: # Unlike `main` this job doesn't have `needs`, in order to speed up backports a bit test_tier2: name: Test tier2 - runs-on: ubuntu-24.04 + needs: [test_tier1, style_check] strategy: fail-fast: true max-parallel: 12 @@ -239,6 +231,7 @@ jobs: # env: # RUST_LIBC_UNSTABLE_GNU_TIME_BITS: 64 # artifact-tag: time-bits64 + runs-on: ${{ matrix.os && matrix.os || 'ubuntu-24.04' }} timeout-minutes: 25 env: TARGET: ${{ matrix.target }} @@ -257,7 +250,11 @@ jobs: jq -r 'to_entries | map("\(.key)=\(.value|tostring)") | .[]' >>$GITHUB_ENV shell: bash - - name: Execute run-docker.sh + - name: Run natively + if: runner.os != 'Linux' + run: ./ci/run.sh ${{ matrix.target }} + - name: Run in Docker + if: runner.os == 'Linux' run: ./ci/run-docker.sh ${{ matrix.target }} - name: Create CI artifacts From 032d2c6fceeebc5066151656e357628171d0525a Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 25 Oct 2025 18:33:35 -0400 Subject: [PATCH 0929/1228] ci: Sort the tier1 targets (backport ) (cherry picked from commit 49c300a3370ea374be2a88a1ab0f01b8b4e8fae2) --- .github/workflows/ci.yaml | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 16fa73e1f9d26..8e29f8275ee66 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -92,6 +92,13 @@ jobs: strategy: matrix: include: + - target: aarch64-apple-darwin + os: macos-15 + # FIXME: It currently causes segfaults. + #- target: i686-pc-windows-gnu + # env: { ARCH_BITS: 32, ARCH: i686 } + - target: i686-pc-windows-msvc + os: windows-2025 - target: i686-unknown-linux-gnu - target: i686-unknown-linux-gnu artifact-tag: offset-bits64 @@ -101,23 +108,12 @@ jobs: artifact-tag: time-bits64 env: RUST_LIBC_UNSTABLE_GNU_TIME_BITS: 64 - - target: x86_64-unknown-linux-gnu - - target: aarch64-apple-darwin - os: macos-15 - target: x86_64-pc-windows-gnu os: windows-2025 - env: - ARCH_BITS: 64 - ARCH: x86_64 + env: { ARCH_BITS: 64, ARCH: x86_64 } - target: x86_64-pc-windows-msvc os: windows-2025 - # FIXME: It currently causes segfaults. - #- target: i686-pc-windows-gnu - # env: - # ARCH_BITS: 32 - # ARCH: i686 - - target: i686-pc-windows-msvc - os: windows-2025 + - target: x86_64-unknown-linux-gnu runs-on: ${{ matrix.os && matrix.os || 'ubuntu-24.04' }} timeout-minutes: 25 env: From 1633873dbc7b25a94c96b2a154b899668d0fcd2d Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 25 Oct 2025 18:35:38 -0400 Subject: [PATCH 0930/1228] ci: Update the tier1 jobs aarch64-windows and aarch64-linux are now both tier 1, so promote them in CI. (backport ) (cherry picked from commit 3655bfdbfd8832dfb71559c7528a576891fc59aa) --- .github/workflows/ci.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 8e29f8275ee66..6f6e0831a637f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -94,6 +94,10 @@ jobs: include: - target: aarch64-apple-darwin os: macos-15 + - target: aarch64-pc-windows-msvc + os: windows-11-arm + - target: aarch64-unknown-linux-gnu + os: ubuntu-24.04-arm # FIXME: It currently causes segfaults. #- target: i686-pc-windows-gnu # env: { ARCH_BITS: 32, ARCH: i686 } @@ -164,7 +168,6 @@ jobs: # it first to make sure it gets a head start. - sparc64-unknown-linux-gnu - aarch64-linux-android - - aarch64-unknown-linux-gnu - aarch64-unknown-linux-musl - arm-linux-androideabi - arm-unknown-linux-musleabihf From dca9f7f987d233cf774594d1592a481f71fff8b6 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 25 Oct 2025 18:41:50 -0400 Subject: [PATCH 0931/1228] ci: Switch tier2 to use `include` style There isn't really any reason to use both `include` and the default matrix with `target` separately. This requires adding an artifact tag to the musl jobs. Additionally, flatten some bulky env options and prepare the Tier 2 VM targets to have more operating systems. (backport ) (cherry picked from commit 8b300eb9b7d6cf4d36213889784eff36542ebdf4) --- .github/workflows/ci.yaml | 102 ++++++++++++++++++-------------------- 1 file changed, 48 insertions(+), 54 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6f6e0831a637f..076db50c5e4f0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -106,12 +106,10 @@ jobs: - target: i686-unknown-linux-gnu - target: i686-unknown-linux-gnu artifact-tag: offset-bits64 - env: - RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64 + env: { RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64 } - target: i686-unknown-linux-gnu artifact-tag: time-bits64 - env: - RUST_LIBC_UNSTABLE_GNU_TIME_BITS: 64 + env: { RUST_LIBC_UNSTABLE_GNU_TIME_BITS: 64 } - target: x86_64-pc-windows-gnu os: windows-2025 env: { ARCH_BITS: 64, ARCH: x86_64 } @@ -163,72 +161,67 @@ jobs: fail-fast: true max-parallel: 12 matrix: - target: + include: # FIXME(sparc): this takes much longer to run than any other job, put # it first to make sure it gets a head start. - - sparc64-unknown-linux-gnu - - aarch64-linux-android - - aarch64-unknown-linux-musl - - arm-linux-androideabi - - arm-unknown-linux-musleabihf - # FIXME(#4297): Disabled due to spurious failueSome android jobs are disabled because of high rates of - # - i686-linux-android - - i686-unknown-linux-musl - - loongarch64-unknown-linux-gnu - - loongarch64-unknown-linux-musl - - powerpc64-unknown-linux-gnu - - powerpc64le-unknown-linux-gnu - - powerpc64le-unknown-linux-musl - - riscv64gc-unknown-linux-gnu - - s390x-unknown-linux-gnu - - wasm32-unknown-emscripten - - wasm32-wasip1 - - wasm32-wasip2 - - x86_64-linux-android - # FIXME: Exec format error (os error 8) - # - x86_64-unknown-linux-gnux32 - - x86_64-unknown-linux-musl - # FIXME: It seems some items in `src/unix/mod.rs` - # aren't defined on redox actually. - # - x86_64-unknown-redox - include: + - target: sparc64-unknown-linux-gnu + - target: aarch64-linux-android + - target: aarch64-unknown-linux-musl + - target: aarch64-unknown-linux-musl + env: { RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 } + artifact-tag: new-musl + - target: arm-linux-androideabi - target: arm-unknown-linux-gnueabihf - target: arm-unknown-linux-gnueabihf - env: - RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64 + env: { RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64 } artifact-tag: offset-bits64 - target: arm-unknown-linux-gnueabihf - env: - RUST_LIBC_UNSTABLE_GNU_TIME_BITS: 64 + env: { RUST_LIBC_UNSTABLE_GNU_TIME_BITS: 64 } artifact-tag: time-bits64 - - target: aarch64-unknown-linux-musl - env: - RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 - target: arm-unknown-linux-musleabihf - env: - RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 + - target: arm-unknown-linux-musleabihf + env: { RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 } + artifact-tag: new-musl + # FIXME(#4297): Disabled due to spurious failue + # - target: i686-linux-android - target: i686-unknown-linux-musl - env: - RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 + - target: i686-unknown-linux-musl + env: { RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 } + artifact-tag: new-musl + - target: loongarch64-unknown-linux-gnu + - target: loongarch64-unknown-linux-musl - target: loongarch64-unknown-linux-musl - env: - RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 + env: { RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 } + artifact-tag: new-musl + - target: powerpc64-unknown-linux-gnu + - target: powerpc64le-unknown-linux-gnu - target: powerpc64le-unknown-linux-musl - env: - RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 + - target: powerpc64le-unknown-linux-musl + env: { RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 } + artifact-tag: new-musl + - target: riscv64gc-unknown-linux-gnu + - target: s390x-unknown-linux-gnu + - target: wasm32-unknown-emscripten + - target: wasm32-wasip1 + - target: wasm32-wasip2 + - target: x86_64-linux-android + # FIXME: Exec format error (os error 8) + # - target: x86_64-unknown-linux-gnux32 - target: x86_64-unknown-linux-musl - env: - RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 + - target: x86_64-unknown-linux-musl + env: { RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 } + artifact-tag: new-musl + # FIXME: It seems some items in `src/unix/mod.rs` aren't defined on redox actually. + # - target: x86_64-unknown-redox + # FIXME(ppc): SIGILL running tests, see # https://github.com/rust-lang/libc/pull/4254#issuecomment-2636288713 # - target: powerpc-unknown-linux-gnu # - target: powerpc-unknown-linux-gnu - # env: - # RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64 + # env: { RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64 } # artifact-tag: offset-bits64 # - target: powerpc-unknown-linux-gnu - # env: - # RUST_LIBC_UNSTABLE_GNU_TIME_BITS: 64 + # env: { RUST_LIBC_UNSTABLE_GNU_TIME_BITS: 64 } # artifact-tag: time-bits64 runs-on: ${{ matrix.os && matrix.os || 'ubuntu-24.04' }} timeout-minutes: 25 @@ -273,13 +266,14 @@ jobs: strategy: fail-fast: true matrix: - target: - - x86_64-pc-solaris + include: + - target: x86_64-pc-solaris timeout-minutes: 25 steps: - uses: actions/checkout@v5 - name: test on Solaris uses: vmactions/solaris-vm@v1.1.5 + if: contains(matrix.target, 'solaris') with: release: "11.4-gcc" usesh: true From 289905a2b38baa2966e4271993ed4f4b6eae9a7f Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 25 Oct 2025 18:48:09 -0400 Subject: [PATCH 0932/1228] ci: Increase tier 2 max-parallel We have gained quite a few tier 2 jobs. Increase max-parallel so they don't take quite as long. (backport ) (cherry picked from commit e3cbac6363ac866d4b68f87cfc825adf83540bd1) --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 076db50c5e4f0..3b96f4e8990bb 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -159,7 +159,7 @@ jobs: needs: [test_tier1, style_check] strategy: fail-fast: true - max-parallel: 12 + max-parallel: 16 matrix: include: # FIXME(sparc): this takes much longer to run than any other job, put From 4f885ccd82168b6bfd3d373335179023db5bedda Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 25 Oct 2025 19:13:54 -0400 Subject: [PATCH 0933/1228] ci: Don't retry the s390x job We no longer use the flaky qemu-system runner, so there shouldn't be any need to keep the retry. (backport ) (cherry picked from commit bad4627c6c6be3527ef5c305f15ed94a74578497) --- ci/run.sh | 42 ++++++------------------------------------ 1 file changed, 6 insertions(+), 36 deletions(-) diff --git a/ci/run.sh b/ci/run.sh index 0938b695d403d..6ec25f5c70a5e 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -25,39 +25,9 @@ case "$target" in *) cmd="$cmd --workspace" ;; esac -if [ "$target" = "s390x-unknown-linux-gnu" ]; then - # FIXME: s390x-unknown-linux-gnu often fails to test due to timeout, - # so we retry this N times. - N=5 - n=0 - passed=0 - until [ $n -ge $N ]; do - if [ "$passed" = "0" ]; then - # shellcheck disable=SC2086 - if $cmd --no-default-features -- $test_flags; then - passed=$((passed + 1)) - continue - fi - elif [ "$passed" = "1" ]; then - # shellcheck disable=SC2086 - if $cmd -- $test_flags; then - passed=$((passed + 1)) - continue - fi - elif [ "$passed" = "2" ]; then - # shellcheck disable=SC2086 - if $cmd --features extra_traits -- $test_flags; then - break - fi - fi - n=$((n + 1)) - sleep 1 - done -else - # shellcheck disable=SC2086 - $cmd --no-default-features -- $test_flags - # shellcheck disable=SC2086 - $cmd -- $test_flags - # shellcheck disable=SC2086 - $cmd --features extra_traits -- $test_flags -fi +# shellcheck disable=SC2086 +$cmd --no-default-features -- $test_flags +# shellcheck disable=SC2086 +$cmd -- $test_flags +# shellcheck disable=SC2086 +$cmd --features extra_traits -- $test_flags From d6344beea2e02ad9b8fb4db580e8cd7e93c53a61 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 25 Oct 2025 19:02:53 -0400 Subject: [PATCH 0934/1228] ci: Add an x86_64-apple job I'm not sure why this was missing: possibly because it was only previously only possible to test with macos-13. GHA now has macos-15-intel which makes this easier, so add the job back. (backport ) (cherry picked from commit eb88448be3e3aa07179bb48ee06343cfb8656c8b) --- .github/workflows/ci.yaml | 2 ++ libc-test/build.rs | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 3b96f4e8990bb..0effac4922c1e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -204,6 +204,8 @@ jobs: - target: wasm32-unknown-emscripten - target: wasm32-wasip1 - target: wasm32-wasip2 + - target: x86_64-apple-darwin + os: macos-15-intel - target: x86_64-linux-android # FIXME: Exec format error (os error 8) # - target: x86_64-unknown-linux-gnux32 diff --git a/libc-test/build.rs b/libc-test/build.rs index 51457f3b4f6e3..54636a7503038 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -317,7 +317,7 @@ fn test_apple(target: &str) { (x86_64, "crt_externs.h"), ); - cfg.skip_struct(|s| { + cfg.skip_struct(move |s| { match s.ident() { // FIXME(union): actually a union "sigval" => true, @@ -326,6 +326,9 @@ fn test_apple(target: &str) { // it is a moving target, changing through versions // also contains bitfields members "tcp_connection_info" => true, + + // FIXME(macos): The size is changed in recent macOSes. + "malloc_introspection_t" if x86_64 => true, _ => false, } }); @@ -351,6 +354,8 @@ fn test_apple(target: &str) { match func.ident() { // FIXME: https://github.com/rust-lang/libc/issues/1272 "execv" | "execve" | "execvp" => true, + // close calls the close_nocancel system call on x86 + "close" if x86_64 => true, // FIXME(1.0): std removed libresolv support: https://github.com/rust-lang/rust/pull/102766 "res_init" => true, _ => false, From e7e02f43560f67ce0daaa927fd52d72cffc31b0e Mon Sep 17 00:00:00 2001 From: Kartik Agarwala Date: Sun, 26 Oct 2025 06:21:36 +0000 Subject: [PATCH 0935/1228] Add missing defines/functions needed by rust stdlib (backport ) (cherry picked from commit 0cd50326719a4eb541e39f24e871f7b1f54fb035) --- src/vxworks/mod.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index ce6c91678caf4..ecaba54b1cdcf 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -952,6 +952,11 @@ pub const SI_MESGQ: c_int = -5; pub const SI_CHILD: c_int = -6; pub const SI_KILL: c_int = SI_USER; +pub const AT_FDCWD: c_int = -100; +pub const AT_SYMLINK_NOFOLLOW: c_int = 0x100; +pub const AT_REMOVEDIR: c_int = 0x200; +pub const AT_SYMLINK_FOLLOW: c_int = 0x400; + // vxParams.h definitions pub const _PARM_NAME_MAX: c_int = 255; pub const _PARM_PATH_MAX: c_int = 1024; @@ -1017,6 +1022,7 @@ pub const RTP_ID_ERROR: crate::RTP_ID = -1; // h/public/unistd.h pub const _SC_GETPW_R_SIZE_MAX: c_int = 21; // Via unistd.h +pub const _SC_HOST_NAME_MAX: c_int = 22; pub const _SC_PAGESIZE: c_int = 39; pub const O_ACCMODE: c_int = 3; pub const O_CLOEXEC: c_int = 0x100000; // fcntlcom @@ -1166,6 +1172,7 @@ extern "C" { pub fn strcasecmp(s1: *const c_char, s2: *const c_char) -> c_int; pub fn strncasecmp(s1: *const c_char, s2: *const c_char, n: size_t) -> c_int; pub fn strlen(cs: *const c_char) -> size_t; + pub fn strnlen(cs: *const c_char, n: size_t) -> size_t; pub fn strerror(n: c_int) -> *mut c_char; pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; @@ -1250,6 +1257,13 @@ extern "C" { pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; + pub fn utimensat( + dirfd: c_int, + path: *const c_char, + times: *const crate::timespec, + flag: c_int, + ) -> c_int; + #[link_name = "_rtld_dlopen"] pub fn dlopen(filename: *const c_char, flag: c_int) -> *mut c_void; From e67cc716286a53f077dd1102fdbf97569d0263bc Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 25 Oct 2025 21:37:30 -0400 Subject: [PATCH 0936/1228] ci: Switch `verify-build` to a python script It would be nice to do a few more things with this script that are starting to get cumbersome in bash. Switch to python so we gain some flexibility. There are some target inaccuracies in the lists here, but fixing these is left for a future change. (backport ) (cherry picked from commit f82e7fae815f20e1274c455fad8325b3e8541636) --- .github/workflows/ci.yaml | 4 +- README.md | 2 +- ci/verify-build.py | 362 ++++++++++++++++++++++++++++++++++++++ ci/verify-build.sh | 344 ------------------------------------ 4 files changed, 365 insertions(+), 347 deletions(-) create mode 100755 ci/verify-build.py delete mode 100755 ci/verify-build.sh diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0effac4922c1e..9857aeb8bec2c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -78,12 +78,12 @@ jobs: - name: Target size after restoring cache run: du -sh target | sort -k 2 || true - - name: Execute build.sh + - name: Execute build check run: | set -eux # Remove `-Dwarnings` at the MSRV since lints may be different [ "${{ matrix.toolchain }}" = "1.63.0" ] && export RUSTFLAGS="" - ./ci/verify-build.sh + python3 ci/verify-build.py --toolchain "$TOOLCHAIN" - name: Target size after job completion run: du -sh target | sort -k 2 diff --git a/README.md b/README.md index c616d8b29f52b..607bf308d01eb 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ but this is not guaranteed. You can see the platform(target)-specific docs on [docs.rs], select a platform you want to see. -See [`ci/verify-build.sh`](https://github.com/rust-lang/libc/blob/HEAD/ci/verify-build.sh) for +See [`ci/verify-build.py`](https://github.com/rust-lang/libc/blob/HEAD/ci/verify-build.py) for the platforms on which `libc` is guaranteed to build for each Rust toolchain. The test-matrix at [GitHub Actions] and [Cirrus CI] show the platforms in which `libc` tests are run. diff --git a/ci/verify-build.py b/ci/verify-build.py new file mode 100755 index 0000000000000..09d185658f7ed --- /dev/null +++ b/ci/verify-build.py @@ -0,0 +1,362 @@ +#!/usr/bin/env python3 + +import re +import os +import argparse +import subprocess as sp +import sys +import platform +from typing import Optional +from enum import Enum, IntEnum +from dataclasses import dataclass, field + + +ESC_CYAN = "\033[1;36m" +ESC_END = "\033[0m" + + +class Os(Enum): + LINUX = "Linux" + WINDOWS = "Windows" + DARWIN = "Darwin" + + +class Toolchain(IntEnum): + OTHER = 0 # msrv + STABLE = 1 + BETA = 2 + NIGHTLY = 3 + + +@dataclass +class Cfg: + toolchain_name: str + toolchain: Toolchain = field(init=False) + host_target: str = field(init=False) + os_: Os = field(init=False) + + def __post_init__(self): + rustc_output = check_output(["rustc", f"+{self.toolchain_name}", "-vV"]) + self.host_target = re.findall(r"host: (.*)", rustc_output)[0] + if "nightly" in self.toolchain_name: + self.toolchain = Toolchain.NIGHTLY + elif "beta" in self.toolchain_name: + self.toolchain = Toolchain.BETA + elif "stable" in self.toolchain_name: + self.toolchain = Toolchain.STABLE + else: + self.toolchain = Toolchain.OTHER + self.os_ = Os(platform.system()) + eprint(f"Testing Rust {self.toolchain_name} on {self.os_}") + + def nightly(self) -> bool: + return self.toolchain == Toolchain.NIGHTLY + + +@dataclass +class Target: + name: str + dist: bool = True + min_toolchain: Toolchain = Toolchain.OTHER + + def __post_init__(self): + if not self.dist: + # We will need to use build-std + self.min_toolchain = Toolchain.NIGHTLY + + def run_on(self) -> Os: + """MacOS CI runs all apple targets, Windows CI runs all Windows targets, + Linux CI handles everything else.""" + + if "apple" in self.name: + return Os.DARWIN + elif "windows" in self.name: + return Os.WINDOWS + return Os.LINUX + + +FREEBSD_VERSIONS = [11, 12, 13, 14, 15] + +TARGETS = [ + # linux + Target("aarch64-linux-android"), + Target("aarch64-unknown-linux-gnu"), + Target("aarch64-unknown-linux-musl"), + Target("arm-linux-androideabi"), + Target("arm-unknown-linux-gnueabi"), + Target("arm-unknown-linux-gnueabihf"), + Target("arm-unknown-linux-musleabi"), + Target("arm-unknown-linux-musleabihf"), + Target("armv7-linux-androideabi"), + Target("armv7-unknown-linux-gnueabihf"), + Target("armv7-unknown-linux-musleabihf"), + Target("i586-unknown-linux-gnu"), + Target("i586-unknown-linux-musl"), + Target("i686-linux-android"), + Target("i686-unknown-freebsd"), + Target("i686-unknown-linux-gnu"), + Target("i686-unknown-linux-musl"), + Target("powerpc-unknown-linux-gnu"), + Target("powerpc64-unknown-linux-gnu"), + Target("powerpc64le-unknown-linux-gnu"), + Target("s390x-unknown-linux-gnu"), + Target("sparc64-unknown-linux-gnu"), + Target("sparcv9-sun-solaris"), + Target("wasm32-unknown-emscripten"), + Target("wasm32-unknown-unknown"), + # Target was renamed + Target("wasm32-wasip1", min_toolchain=Toolchain.STABLE), + Target("wasm32-wasip2", min_toolchain=Toolchain.STABLE), + Target("x86_64-linux-android"), + Target("x86_64-unknown-freebsd"), + Target("x86_64-unknown-linux-gnu"), + Target("x86_64-unknown-linux-musl"), + Target("x86_64-unknown-netbsd"), + # nightly linux + # FIXME(powerpc64le): powerpc64le-unknown-linux-musl is tier 2 since 1.85 and + # can be moved to rust_linux_targets once MSRV is increased + Target("aarch64-unknown-fuchsia", min_toolchain=Toolchain.NIGHTLY), + Target("armv5te-unknown-linux-gnueabi", min_toolchain=Toolchain.NIGHTLY), + Target("armv5te-unknown-linux-musleabi", min_toolchain=Toolchain.NIGHTLY), + Target("i686-pc-windows-gnu", min_toolchain=Toolchain.NIGHTLY), + Target("powerpc64le-unknown-linux-musl", min_toolchain=Toolchain.NIGHTLY), + Target("riscv64gc-unknown-linux-gnu", min_toolchain=Toolchain.NIGHTLY), + Target("x86_64-fortanix-unknown-sgx", min_toolchain=Toolchain.NIGHTLY), + Target("x86_64-pc-solaris", min_toolchain=Toolchain.NIGHTLY), + Target("x86_64-pc-windows-gnu", min_toolchain=Toolchain.NIGHTLY), + Target("x86_64-unknown-fuchsia", min_toolchain=Toolchain.NIGHTLY), + Target("x86_64-unknown-illumos", min_toolchain=Toolchain.NIGHTLY), + Target("x86_64-unknown-linux-gnux32", min_toolchain=Toolchain.NIGHTLY), + Target("x86_64-unknown-redox", min_toolchain=Toolchain.NIGHTLY), + # apple + Target("aarch64-apple-darwin"), + Target("aarch64-apple-ios"), + # windows + Target("x86_64-pc-windows-msvc"), + Target("x86_64-pc-windows-gnu"), + Target("i686-pc-windows-msvc"), + # linux nodist + # Targets which are not available via rustup and must be built with -Zbuild-std + # FIXME(hexagon): hexagon-unknown-linux-musl should be tested but currently has + # duplicate symbol errors from `compiler_builtins`. + Target("aarch64-pc-windows-msvc", dist=False), + Target("aarch64-unknown-freebsd", dist=False), + Target("aarch64-unknown-hermit", dist=False), + Target("aarch64-unknown-netbsd", dist=False), + Target("aarch64-unknown-openbsd", dist=False), + Target("aarch64-wrs-vxworks", dist=False), + Target("armebv7r-none-eabi", dist=False), + Target("armebv7r-none-eabihf", dist=False), + Target("armv7-wrs-vxworks-eabihf", dist=False), + Target("armv7r-none-eabi", dist=False), + Target("armv7r-none-eabihf", dist=False), + Target("i686-pc-windows-msvc", dist=False), + Target("i686-unknown-haiku", dist=False), + Target("i686-unknown-netbsd", dist=False), + Target("i686-unknown-openbsd", dist=False), + Target("i686-wrs-vxworks", dist=False), + Target("mips-unknown-linux-gnu", dist=False), + Target("mips-unknown-linux-musl", dist=False), + Target("mips64-unknown-linux-gnuabi64", dist=False), + Target("mips64-unknown-linux-muslabi64", dist=False), + Target("mips64el-unknown-linux-gnuabi64", dist=False), + Target("mips64el-unknown-linux-muslabi64", dist=False), + Target("mipsel-unknown-linux-gnu", dist=False), + Target("mipsel-unknown-linux-musl", dist=False), + Target("nvptx64-nvidia-cuda", dist=False), + Target("powerpc-unknown-linux-gnuspe", dist=False), + Target("powerpc-unknown-netbsd", dist=False), + Target("powerpc-wrs-vxworks", dist=False), + Target("powerpc-wrs-vxworks-spe", dist=False), + Target("powerpc64-unknown-freebsd", dist=False), + Target("powerpc64-wrs-vxworks", dist=False), + Target("riscv32i-unknown-none-elf", dist=False), + Target("riscv32imac-unknown-none-elf", dist=False), + Target("riscv32imc-unknown-none-elf", dist=False), + Target("riscv32gc-unknown-linux-gnu", dist=False), + Target("riscv32-wrs-vxworks", dist=False), + Target("riscv64gc-unknown-freebsd", dist=False), + Target("riscv64gc-unknown-hermit", dist=False), + Target("riscv64gc-unknown-linux-musl", dist=False), + Target("riscv64gc-unknown-none-elf", dist=False), + Target("riscv64imac-unknown-none-elf", dist=False), + Target("riscv64-wrs-vxworks", dist=False), + Target("s390x-unknown-linux-musl", dist=False), + Target("sparc-unknown-linux-gnu", dist=False), + Target("sparc64-unknown-netbsd", dist=False), + Target("thumbv6m-none-eabi", dist=False), + Target("thumbv7em-none-eabi", dist=False), + Target("thumbv7em-none-eabihf", dist=False), + Target("thumbv7m-none-eabi", dist=False), + Target("thumbv7neon-linux-androideabi", dist=False), + Target("thumbv7neon-unknown-linux-gnueabihf", dist=False), + Target("thumbv8m.main-none-eabi", dist=False), + Target("x86_64-pc-windows-msvc", dist=False), + Target("x86_64-unknown-dragonfly", dist=False), + Target("x86_64-unknown-haiku", dist=False), + Target("x86_64-unknown-hermit", dist=False), + Target("x86_64-unknown-l4re-uclibc", dist=False), + Target("x86_64-unknown-openbsd", dist=False), + Target("x86_64-wrs-vxworks", dist=False), + # apple nodist + Target("armv7s-apple-ios", dist=False), + Target("i686-apple-darwin", dist=False), + Target("i386-apple-ios", dist=False), +] + + +def eprint(*args, **kw): + print(*args, file=sys.stderr, **kw) + + +def xtrace(args: list[str], /, env: Optional[dict[str, str]]): + """Print commands before running them.""" + astr = " ".join(args) + if env is None: + eprint(f"+ {astr}") + else: + envdiff = set(env.items()) - set(os.environ.items()) + estr = " ".join(f"{k}='{v}'" for (k, v) in envdiff) + eprint(f"+ {estr} {astr}") + + +def check_output(args: list[str], /, env: Optional[dict[str, str]] = None) -> str: + xtrace(args, env=env) + return sp.check_output(args, env=env, encoding="utf8") + + +def run(args: list[str], /, env: Optional[dict[str, str]] = None): + xtrace(args, env=env) + sp.run(args, env=env, check=True) + + +def test_target(cfg: Cfg, target: Target): + env = os.environ.copy() + env.setdefault("RUSTFLAGS", "") + + tname = target.name + target_cfg = check_output(["rustc", "--print=cfg", "--target", tname]) + target_env = re.findall(r'target_env="(.*)"', target_cfg) + target_os = re.findall(r'target_os="(.*)"', target_cfg) + target_bits = re.findall(r'target_pointer_width="(.*)"', target_cfg)[0] + assert target_bits in ["32", "64"] + eprint(f"env {target_env}, os {target_os}, bits {target_bits}") + + cmd = ["cargo", f"+{cfg.toolchain_name}", "build", "--target", tname] + + if not target.dist: + # If we can't download a `core`, we need to build it + cmd += ["-Zbuild-std=core"] + # FIXME: With `build-std` feature, `compiler_builtins` emits a lot of lint warnings. + env["RUSTFLAGS"] += " -Aimproper_ctypes_definitions" + else: + run(["rustup", "target", "add", tname, "--toolchain", cfg.toolchain_name]) + + # Test with expected combinations of features + run(cmd, env=env) + run(cmd + ["--features=extra_traits"], env=env) + + # Check with different env for 64-bit time_t + if target_os == "linux" and target_bits == "32": + # Equivalent of __USE_TIME_BITS64 + run(cmd, env=env | {"RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64": "1"}) + + if "gnu" in target_env and target_bits == "32": + # Equivalent of _FILE_OFFSET_BITS=64 + run(cmd, env=env | {"RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS": "64"}) + # Equivalent of _TIME_BITS=64 + run(cmd, env=env | {"RUST_LIBC_UNSTABLE_GNU_TIME_BITS": "64"}) + + # Test again without default features, i.e. without `std` + run(cmd + ["--no-default-features"]) + run(cmd + ["--no-default-features", "--features=extra_traits"]) + + # Ensure the crate will build when used as a dependency of `std` + if cfg.nightly(): + run(cmd + ["--no-default-features", "--features=rustc-dep-of-std"]) + + # For freebsd targets, check with the different versions we support + # if on nightly or stable + if "freebsd" in tname and cfg.toolchain >= Toolchain.STABLE: + for version in FREEBSD_VERSIONS: + run(cmd, env=env | {"RUST_LIBC_UNSTABLE_FREEBSD_VERSION": str(version)}) + run( + cmd + ["--no-default-features"], + env=env | {"RUST_LIBC_UNSTABLE_FREEBSD_VERSION": str(version)}, + ) + + is_stable = cfg.toolchain == Toolchain.STABLE + # FIXME(semver): can't pass `--target` to `cargo-semver-checks` so we restrict to + # the host target + is_host = tname == cfg.host_target + if is_stable and is_host: + eprint("Running semver checks") + run( + [ + "cargo", + "semver-checks", + "--only-explicit-features", + "--features=std,extra_traits", + ] + ) + else: + eprint("Skipping semver checks") + + eprint(f"Finished checking target {tname}") + + +def main(): + p = argparse.ArgumentParser() + p.add_argument("--toolchain", required=True, help="Rust toolchain") + p.add_argument("--only", help="only targets matching this regex") + p.add_argument("--skip", help="skip targets matching this regex") + args = p.parse_args() + + cfg = Cfg(toolchain_name=args.toolchain) + eprint(f"Config: {cfg}") + eprint("Python version: ", sys.version) + + if cfg.nightly(): + # Needed for build-std + run(["rustup", "component", "add", "rust-src"]) + + targets = TARGETS + eprint(f"Total checked targets across platforms: {len(targets)}") + + if not cfg.nightly(): + # Non-dist targets need nightly for build-std + targets = [t for t in targets if t.dist] + + # Filter to targets supported on the current toolchain + targets = [t for t in targets if cfg.toolchain >= t.min_toolchain] + eprint(f"Targets checkable with this toolchain: {len(targets)}") + + # Targets get split among the diferent CI runners + targets = [t for t in targets if t.run_on() == cfg.os_] + eprint(f"Targets checked on this OS: {len(targets)}") + + # Apply filtering + if args.only: + targets = [t for t in targets if re.match(args.only, t.name)] + if args.skip: + targets = [t for t in targets if not re.match(args.skip, t.name)] + + total = len(targets) + eprint(f"Targets to run: {total}") + assert total > 0, "some tests should be run" + + for i, target in enumerate(targets): + # HACK: We need to install the toolchain by name for most Windows toolchains, + # but not when cross compiling. + if cfg.os_ == Os.WINDOWS and "aarch64" not in target.name: + run( + ["sh", "./ci/install-rust.sh"], env=os.environ | {"TARGET": target.name} + ) + + eprint(f"::group::Target: {target.name} ({i}/{total})") + eprint(f"{ESC_CYAN}Checking target {target} ({i}/{total}){ESC_END}") + test_target(cfg, target) + eprint("::endgroup::") + + +main() diff --git a/ci/verify-build.sh b/ci/verify-build.sh deleted file mode 100755 index e833de2e04c5b..0000000000000 --- a/ci/verify-build.sh +++ /dev/null @@ -1,344 +0,0 @@ -#!/usr/bin/env sh - -# Checks that libc builds properly for all supported targets on a particular -# Rust version: -# The FILTER environment variable can be used to select which target(s) to build. -# For example: set FILTER to vxworks to select the targets that has vxworks in name - -set -eux - -: "${TOOLCHAIN?The TOOLCHAIN environment variable must be set.}" - -rust="$TOOLCHAIN" -filter="${FILTER:-}" -host_target=$(rustc -vV | awk '/^host/ { print $2 }') - -case "$(uname -s)" in - Linux*) os=linux ;; - Darwin*) os=macos ;; - MINGW*) os=windows ;; - *) - echo "Unknown system $(uname -s)" - exit 1 - ;; -esac - -echo "Testing Rust $rust on $os" - -if [ "$TOOLCHAIN" = "nightly" ]; then - # For build-std - rustup component add rust-src -fi - -# Print GHA workflow commands -echo_if_ci() { - # Discard stderr so the "set -x" trace doesn't show up - { [ -n "${CI:-}" ] && echo "$1"; } 2> /dev/null -} - -# Run the tests for a specific target -test_target() { - target="$1" - no_dist="$2" - - RUSTFLAGS="${RUSTFLAGS:-}" - - # The basic command that is run each time - cmd="cargo +$rust build --target $target" - - if [ "${no_dist}" != "0" ]; then - # If we can't download a `core`, we need to build it - cmd="$cmd -Zbuild-std=core" - - # FIXME: With `build-std` feature, `compiler_builtins` emits a lof of lint warnings. - RUSTFLAGS="${RUSTFLAGS:-} -Aimproper_ctypes_definitions" - export RUSTFLAGS - else - # Otherwise it is available for download; fetch it: - - # FIXME: rustup often fails to download some artifacts due to network - # issues, so we retry this N times. - N=5 - n=0 - until [ $n -ge $N ]; do - if rustup target add "$target" --toolchain "$rust"; then - break - fi - n=$((n + 1)) - sleep 1 - done - fi - - # Test with expected combinations of features - $cmd - $cmd --features extra_traits - - if [ "$os" = "linux" ]; then - # Test with the equivalent of __USE_TIME_BITS64 - RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64=1 $cmd - case "$target" in - arm*-gnu* | i*86*-gnu | powerpc-*-gnu* | mips*-gnu | sparc-*-gnu | thumb-*gnu*) - # Test with the equivalent of _FILE_OFFSET_BITS=64 - RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS=64 $cmd - # Test with the equivalent of _TIME_BITS=64 - RUST_LIBC_UNSTABLE_GNU_TIME_BITS=64 $cmd - ;; - esac - fi - - # Test again without default features, i.e. without "std" - $cmd --no-default-features - $cmd --no-default-features --features extra_traits - - # Ensure the crate will build when used with `std` - if [ "$rust" = "nightly" ]; then - $cmd --no-default-features --features rustc-dep-of-std - fi - - # For tier 2 freebsd targets, check with the different versions we support - # if on nightly or stable - case "$rust-$target" in - stable-x86_64-*freebsd*) do_freebsd_checks=1 ;; - nightly-i686*freebsd*) do_freebsd_checks=1 ;; - esac - - if [ -n "${do_freebsd_checks:-}" ]; then - for version in $freebsd_versions; do - export RUST_LIBC_UNSTABLE_FREEBSD_VERSION="$version" - $cmd - $cmd --no-default-features - done - fi - - # FIXME(semver): can't pass `--target` to `cargo-semver-checks` - if [ "$rust" = "stable" ] && [ "$target" = "$host_target" ]; then - # Run semver checks on the stable channel - cargo semver-checks --only-explicit-features \ - --features std,extra_traits - fi -} - -freebsd_versions="\ -11 \ -12 \ -13 \ -14 \ -15 \ -" - -rust_linux_targets="\ -aarch64-linux-android \ -aarch64-unknown-linux-gnu \ -aarch64-unknown-linux-musl \ -arm-linux-androideabi \ -arm-unknown-linux-gnueabi \ -arm-unknown-linux-gnueabihf \ -arm-unknown-linux-musleabi \ -arm-unknown-linux-musleabihf \ -armv7-linux-androideabi \ -armv7-unknown-linux-gnueabihf \ -armv7-unknown-linux-musleabihf \ -i586-unknown-linux-gnu \ -i586-unknown-linux-musl \ -i686-linux-android \ -i686-unknown-freebsd \ -i686-unknown-linux-gnu \ -i686-unknown-linux-musl \ -powerpc-unknown-linux-gnu \ -powerpc64-unknown-linux-gnu \ -powerpc64le-unknown-linux-gnu \ -s390x-unknown-linux-gnu \ -sparc64-unknown-linux-gnu \ -sparcv9-sun-solaris \ -wasm32-unknown-emscripten \ -wasm32-unknown-unknown \ -wasm32-wasip1 \ -wasm32-wasip2 \ -x86_64-linux-android \ -x86_64-unknown-freebsd \ -x86_64-unknown-linux-gnu \ -x86_64-unknown-linux-musl \ -x86_64-unknown-netbsd \ -" - -# FIXME(powerpc64le): powerpc64le-unknown-linux-musl is tier 2 since 1.85 and -# can be moved to rust_linux_targets once MSRV is increased -rust_nightly_linux_targets="\ -aarch64-unknown-fuchsia \ -armv5te-unknown-linux-gnueabi \ -armv5te-unknown-linux-musleabi \ -i686-pc-windows-gnu \ -powerpc64le-unknown-linux-musl \ -riscv64gc-unknown-linux-gnu \ -x86_64-fortanix-unknown-sgx \ -x86_64-pc-solaris \ -x86_64-pc-windows-gnu \ -x86_64-unknown-fuchsia \ -x86_64-unknown-illumos \ -x86_64-unknown-linux-gnux32 \ -x86_64-unknown-redox \ -" - -rust_apple_targets="\ -aarch64-apple-darwin \ -aarch64-apple-ios \ -x86_64-apple-darwin \ -x86_64-apple-ios \ -" - -rust_nightly_apple_targets="\ -" - -# Must start with `x86_64-pc-windows-msvc` first. -rust_nightly_windows_targets="\ -x86_64-pc-windows-msvc \ -x86_64-pc-windows-gnu \ -i686-pc-windows-msvc \ -" - -# Targets which are not available via rustup and must be built with -Zbuild-std -# FIXME(hexagon): hexagon-unknown-linux-musl should be tested but currently has -# duplicate symbol errors from `compiler_builtins`. -rust_linux_no_dist_targets="\ -aarch64-pc-windows-msvc \ -aarch64-unknown-freebsd \ -aarch64-unknown-hermit \ -aarch64-unknown-netbsd \ -aarch64-unknown-openbsd \ -aarch64-wrs-vxworks \ -armebv7r-none-eabi \ -armebv7r-none-eabihf \ -armv7-wrs-vxworks-eabihf \ -armv7r-none-eabi \ -armv7r-none-eabihf \ -i686-pc-windows-msvc \ -i686-unknown-haiku \ -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-unknown-linux-gnu \ -mipsel-unknown-linux-musl \ -mipsel-sony-psp \ -nvptx64-nvidia-cuda \ -powerpc-unknown-linux-gnuspe \ -powerpc-unknown-netbsd \ -powerpc-wrs-vxworks \ -powerpc-wrs-vxworks-spe \ -powerpc64-unknown-freebsd \ -powerpc64-wrs-vxworks \ -riscv32i-unknown-none-elf \ -riscv32imac-unknown-none-elf \ -riscv32imc-unknown-none-elf \ -riscv32gc-unknown-linux-gnu \ -riscv32-wrs-vxworks \ -riscv64gc-unknown-freebsd \ -riscv64gc-unknown-hermit \ -riscv64gc-unknown-linux-musl \ -riscv64gc-unknown-none-elf \ -riscv64imac-unknown-none-elf \ -riscv64-wrs-vxworks \ -s390x-unknown-linux-musl \ -sparc-unknown-linux-gnu \ -sparc64-unknown-netbsd \ - -thumbv6m-none-eabi \ -thumbv7em-none-eabi \ -thumbv7em-none-eabihf \ -thumbv7m-none-eabi \ -thumbv7neon-linux-androideabi \ -thumbv7neon-unknown-linux-gnueabihf \ -thumbv8m.main-none-eabi \ -x86_64-pc-windows-msvc \ -x86_64-unknown-dragonfly \ -x86_64-unknown-haiku \ -x86_64-unknown-hermit \ -x86_64-unknown-l4re-uclibc \ -x86_64-unknown-openbsd \ -x86_64-wrs-vxworks \ -" - -rust_apple_no_dist_targets="\ -armv7s-apple-ios \ -i686-apple-darwin \ -i386-apple-ios \ -" - -# The targets are listed here alphabetically -if [ "$os" = "linux" ]; then - targets="$rust_linux_targets" - nightly_targets="$rust_nightly_linux_targets" - no_dist_targets="$rust_linux_no_dist_targets" -elif [ "$os" = "macos" ]; then - targets="$rust_apple_targets" - nightly_targets="$rust_nightly_apple_targets" - no_dist_targets="$rust_apple_no_dist_targets" -elif [ "$os" = "windows" ]; then - targets=${rust_nightly_windows_targets} -else - exit 1 -fi - -if [ "$rust" = "nightly" ]; then - targets="$targets ${nightly_targets:-}" -else - # build-std requires nightly - no_dist_targets="" -fi - -case "$rust" in - "stable") supports_wasi_pn=1 ;; - "beta") supports_wasi_pn=1 ;; - "nightly") supports_wasi_pn=1 ;; - *) supports_wasi_pn=0 ;; -esac - -some_tests_run=0 - -# Apply the `FILTER` variable, do OS-specific tasks, and run a target -filter_and_run() { - target="$1" - no_dist="${2:-0}" - - if echo "$target" | grep -q "$filter"; then - if [ "$os" = "windows" ]; then - TARGET="$target" ./ci/install-rust.sh - fi - - # `wasm32-wasip1` was renamed from `wasm32-wasi` - if [ "$target" = "wasm32-wasip1" ] && [ "$supports_wasi_pn" = "0" ]; then - target="wasm32-wasi" - fi - - # `wasm32-wasip2` only exists in recent versions of Rust - if [ "$target" = "wasm32-wasip2" ] && [ "$supports_wasi_pn" = "0" ]; then - return - fi - - test_target "$target" "$no_dist" - some_tests_run=1 - fi -} - -for target in $targets; do - echo_if_ci "::group::Target: $target" - filter_and_run "$target" - echo_if_ci "::endgroup::" -done - -for target in ${no_dist_targets:-}; do - echo_if_ci "::group::Target: $target" - filter_and_run "$target" 1 - echo_if_ci "::endgroup::" -done - -# Make sure we didn't accidentally filter everything -if [ "$some_tests_run" != 1 ]; then - echo "No tests were run" - exit 1 -fi From 0f4f2a9e5e93bfd861c9eafed62a08f49c73f203 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 26 Oct 2025 03:50:03 -0400 Subject: [PATCH 0937/1228] ci: Update targets in verify-build Do a few things: * Update the list to reflect current target tiers. * Add some missing T2 targets (includes ohos and gnullvm). * Remove unneeded `dist = False` and minimum toolchain config. * Delete some `-none-` targets, which don't make use of libc. * Add a check for duplicates. * Re-group and sort the lists. (backport ) (cherry picked from commit 24d00496c7a8ef2087a8065ca739952eb6857ba1) --- ci/verify-build.py | 127 +++++++++++++++++++++++++-------------------- 1 file changed, 71 insertions(+), 56 deletions(-) diff --git a/ci/verify-build.py b/ci/verify-build.py index 09d185658f7ed..a5f14a0df363b 100755 --- a/ci/verify-build.py +++ b/ci/verify-build.py @@ -77,81 +77,90 @@ def run_on(self) -> Os: FREEBSD_VERSIONS = [11, 12, 13, 14, 15] +# FIXME(ohos): CI fails with warnings TARGETS = [ - # linux - Target("aarch64-linux-android"), + # Tier 1 + Target("aarch64-apple-darwin"), + Target("aarch64-pc-windows-msvc"), Target("aarch64-unknown-linux-gnu"), + Target("i686-pc-windows-msvc"), + Target("i686-unknown-linux-gnu"), + Target("x86_64-pc-windows-gnu"), + Target("x86_64-pc-windows-msvc"), + Target("x86_64-unknown-linux-gnu"), + # + # Tier 2 with host tools + Target("aarch64-pc-windows-gnullvm", min_toolchain=Toolchain.STABLE), Target("aarch64-unknown-linux-musl"), - Target("arm-linux-androideabi"), + # Target("aarch64-unknown-linux-ohos"), Target("arm-unknown-linux-gnueabi"), Target("arm-unknown-linux-gnueabihf"), + Target("armv7-unknown-linux-gnueabihf"), + # Target("armv7-unknown-linux-ohos"), + Target("i686-pc-windows-gnu"), + Target("loongarch64-unknown-linux-gnu", min_toolchain=Toolchain.STABLE), + Target("loongarch64-unknown-linux-musl", min_toolchain=Toolchain.STABLE), + Target("powerpc-unknown-linux-gnu"), + Target("powerpc64-unknown-linux-gnu"), + Target("powerpc64le-unknown-linux-gnu"), + Target("powerpc64le-unknown-linux-musl", min_toolchain=Toolchain.STABLE), + Target("riscv64gc-unknown-linux-gnu"), + Target("s390x-unknown-linux-gnu"), + Target("sparcv9-sun-solaris"), + Target("x86_64-apple-darwin"), + Target("x86_64-pc-solaris"), + Target("x86_64-pc-windows-gnullvm", min_toolchain=Toolchain.STABLE), + Target("x86_64-unknown-freebsd"), + Target("x86_64-unknown-illumos"), + Target("x86_64-unknown-linux-musl"), + # Target("x86_64-unknown-linux-ohos"), + Target("x86_64-unknown-netbsd"), + # + # Tier 2 without host tools + Target("aarch64-apple-ios"), + Target("aarch64-linux-android"), + Target("aarch64-unknown-fuchsia", min_toolchain=Toolchain.STABLE), + Target("arm-linux-androideabi"), Target("arm-unknown-linux-musleabi"), Target("arm-unknown-linux-musleabihf"), + Target("armv5te-unknown-linux-gnueabi"), + Target("armv5te-unknown-linux-musleabi"), Target("armv7-linux-androideabi"), - Target("armv7-unknown-linux-gnueabihf"), Target("armv7-unknown-linux-musleabihf"), Target("i586-unknown-linux-gnu"), Target("i586-unknown-linux-musl"), Target("i686-linux-android"), Target("i686-unknown-freebsd"), - Target("i686-unknown-linux-gnu"), Target("i686-unknown-linux-musl"), - Target("powerpc-unknown-linux-gnu"), - Target("powerpc64-unknown-linux-gnu"), - Target("powerpc64le-unknown-linux-gnu"), - Target("s390x-unknown-linux-gnu"), Target("sparc64-unknown-linux-gnu"), - Target("sparcv9-sun-solaris"), Target("wasm32-unknown-emscripten"), Target("wasm32-unknown-unknown"), - # Target was renamed Target("wasm32-wasip1", min_toolchain=Toolchain.STABLE), Target("wasm32-wasip2", min_toolchain=Toolchain.STABLE), + Target("x86_64-fortanix-unknown-sgx"), Target("x86_64-linux-android"), - Target("x86_64-unknown-freebsd"), - Target("x86_64-unknown-linux-gnu"), - Target("x86_64-unknown-linux-musl"), - Target("x86_64-unknown-netbsd"), - # nightly linux - # FIXME(powerpc64le): powerpc64le-unknown-linux-musl is tier 2 since 1.85 and - # can be moved to rust_linux_targets once MSRV is increased - Target("aarch64-unknown-fuchsia", min_toolchain=Toolchain.NIGHTLY), - Target("armv5te-unknown-linux-gnueabi", min_toolchain=Toolchain.NIGHTLY), - Target("armv5te-unknown-linux-musleabi", min_toolchain=Toolchain.NIGHTLY), - Target("i686-pc-windows-gnu", min_toolchain=Toolchain.NIGHTLY), - Target("powerpc64le-unknown-linux-musl", min_toolchain=Toolchain.NIGHTLY), - Target("riscv64gc-unknown-linux-gnu", min_toolchain=Toolchain.NIGHTLY), - Target("x86_64-fortanix-unknown-sgx", min_toolchain=Toolchain.NIGHTLY), - Target("x86_64-pc-solaris", min_toolchain=Toolchain.NIGHTLY), - Target("x86_64-pc-windows-gnu", min_toolchain=Toolchain.NIGHTLY), - Target("x86_64-unknown-fuchsia", min_toolchain=Toolchain.NIGHTLY), - Target("x86_64-unknown-illumos", min_toolchain=Toolchain.NIGHTLY), - Target("x86_64-unknown-linux-gnux32", min_toolchain=Toolchain.NIGHTLY), - Target("x86_64-unknown-redox", min_toolchain=Toolchain.NIGHTLY), - # apple - Target("aarch64-apple-darwin"), - Target("aarch64-apple-ios"), - # windows - Target("x86_64-pc-windows-msvc"), - Target("x86_64-pc-windows-gnu"), - Target("i686-pc-windows-msvc"), - # linux nodist - # Targets which are not available via rustup and must be built with -Zbuild-std - # FIXME(hexagon): hexagon-unknown-linux-musl should be tested but currently has - # duplicate symbol errors from `compiler_builtins`. - Target("aarch64-pc-windows-msvc", dist=False), + Target("x86_64-unknown-fuchsia", min_toolchain=Toolchain.STABLE), + Target("x86_64-unknown-linux-gnux32"), + Target("x86_64-unknown-redox"), + # + # Libc has historically checked that a number of tier 3 targets build. Technically + # there is no need to do this given the target tier policy, but the cost is small + # and the saved churn from accidental breakage is significant, so we keep it around. Target("aarch64-unknown-freebsd", dist=False), Target("aarch64-unknown-hermit", dist=False), + Target("aarch64-unknown-illumos", dist=False), Target("aarch64-unknown-netbsd", dist=False), Target("aarch64-unknown-openbsd", dist=False), Target("aarch64-wrs-vxworks", dist=False), - Target("armebv7r-none-eabi", dist=False), Target("armebv7r-none-eabihf", dist=False), Target("armv7-wrs-vxworks-eabihf", dist=False), - Target("armv7r-none-eabi", dist=False), Target("armv7r-none-eabihf", dist=False), - Target("i686-pc-windows-msvc", dist=False), + Target("armv7s-apple-ios", dist=False), + Target("hexagon-unknown-linux-musl", dist=False), + Target("i386-apple-ios", dist=False), + Target("i686-apple-darwin", dist=False), Target("i686-unknown-haiku", dist=False), + Target("i686-unknown-hurd-gnu", dist=False), Target("i686-unknown-netbsd", dist=False), Target("i686-unknown-openbsd", dist=False), Target("i686-wrs-vxworks", dist=False), @@ -168,40 +177,35 @@ def run_on(self) -> Os: Target("powerpc-unknown-netbsd", dist=False), Target("powerpc-wrs-vxworks", dist=False), Target("powerpc-wrs-vxworks-spe", dist=False), + Target("powerpc64-ibm-aix", dist=False), Target("powerpc64-unknown-freebsd", dist=False), Target("powerpc64-wrs-vxworks", dist=False), + Target("riscv32-wrs-vxworks", dist=False), + Target("riscv32gc-unknown-linux-gnu", dist=False), Target("riscv32i-unknown-none-elf", dist=False), Target("riscv32imac-unknown-none-elf", dist=False), Target("riscv32imc-unknown-none-elf", dist=False), - Target("riscv32gc-unknown-linux-gnu", dist=False), - Target("riscv32-wrs-vxworks", dist=False), + Target("riscv64-wrs-vxworks", dist=False), + Target("riscv64a23-unknown-linux-gnu", dist=False), Target("riscv64gc-unknown-freebsd", dist=False), Target("riscv64gc-unknown-hermit", dist=False), Target("riscv64gc-unknown-linux-musl", dist=False), Target("riscv64gc-unknown-none-elf", dist=False), Target("riscv64imac-unknown-none-elf", dist=False), - Target("riscv64-wrs-vxworks", dist=False), Target("s390x-unknown-linux-musl", dist=False), Target("sparc-unknown-linux-gnu", dist=False), Target("sparc64-unknown-netbsd", dist=False), - Target("thumbv6m-none-eabi", dist=False), - Target("thumbv7em-none-eabi", dist=False), Target("thumbv7em-none-eabihf", dist=False), Target("thumbv7m-none-eabi", dist=False), Target("thumbv7neon-linux-androideabi", dist=False), Target("thumbv7neon-unknown-linux-gnueabihf", dist=False), Target("thumbv8m.main-none-eabi", dist=False), - Target("x86_64-pc-windows-msvc", dist=False), Target("x86_64-unknown-dragonfly", dist=False), Target("x86_64-unknown-haiku", dist=False), Target("x86_64-unknown-hermit", dist=False), Target("x86_64-unknown-l4re-uclibc", dist=False), Target("x86_64-unknown-openbsd", dist=False), Target("x86_64-wrs-vxworks", dist=False), - # apple nodist - Target("armv7s-apple-ios", dist=False), - Target("i686-apple-darwin", dist=False), - Target("i386-apple-ios", dist=False), ] @@ -230,6 +234,16 @@ def run(args: list[str], /, env: Optional[dict[str, str]] = None): sp.run(args, env=env, check=True) +def check_dup_targets(): + all = set() + duplicates = set() + for target in TARGETS: + if target.name in all: + duplicates.add(target.name) + all.add(target.name) + assert len(duplicates) == 0, f"duplicate targets: {duplicates}" + + def test_target(cfg: Cfg, target: Target): env = os.environ.copy() env.setdefault("RUSTFLAGS", "") @@ -315,6 +329,7 @@ def main(): cfg = Cfg(toolchain_name=args.toolchain) eprint(f"Config: {cfg}") eprint("Python version: ", sys.version) + check_dup_targets() if cfg.nightly(): # Needed for build-std From c068f6168ae15287883dd3a297b4c759701a5129 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 26 Oct 2025 04:09:25 -0400 Subject: [PATCH 0938/1228] ci: Always run verify-build on Linux Most of the targets are cross compiled anyway, and there isn't any advantage to running on native platforms. Start running everything on Linux which is the fastest and cheapest runner. As part of this, introduce a way to run only half of the target list from a single invocation. This is used to split the nightly job in two, each now only taking about as long as the stable job. (backport ) (cherry picked from commit 56b916db7e237d9259b697741550abcab9a0db29) --- .github/workflows/ci.yaml | 19 ++++++++++++++----- ci/verify-build.py | 38 +++++++++++++++----------------------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9857aeb8bec2c..62b7c5e56e56e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -51,12 +51,18 @@ jobs: name: Verify build strategy: matrix: - toolchain: [stable, nightly, 1.63.0] - os: [ubuntu-24.04, macos-15, windows-2025] + toolchain: [stable, 1.63.0] include: + # Nightly has a lot of targets, so split it in half + - toolchain: nightly + half: 1 + - toolchain: nightly + half: 2 - toolchain: beta - os: ubuntu-24.04 - runs-on: ${{ matrix.os }} + only: '(aarch64|x86_64)' # just a spot check for beta + - toolchain: stable + - toolchain: 1.63.0 # msrv + runs-on: ubuntu-24.04 timeout-minutes: 25 env: TOOLCHAIN: ${{ matrix.toolchain }} @@ -83,7 +89,10 @@ jobs: set -eux # Remove `-Dwarnings` at the MSRV since lints may be different [ "${{ matrix.toolchain }}" = "1.63.0" ] && export RUSTFLAGS="" - python3 ci/verify-build.py --toolchain "$TOOLCHAIN" + python3 ci/verify-build.py \ + --toolchain "$TOOLCHAIN" \ + ${{ matrix.only && format('--only "{0}"', matrix.only) }} \ + ${{ matrix.half && format('--half "{0}"', matrix.half) }} - name: Target size after job completion run: du -sh target | sort -k 2 diff --git a/ci/verify-build.py b/ci/verify-build.py index a5f14a0df363b..f27fde35e50c6 100755 --- a/ci/verify-build.py +++ b/ci/verify-build.py @@ -64,16 +64,6 @@ def __post_init__(self): # We will need to use build-std self.min_toolchain = Toolchain.NIGHTLY - def run_on(self) -> Os: - """MacOS CI runs all apple targets, Windows CI runs all Windows targets, - Linux CI handles everything else.""" - - if "apple" in self.name: - return Os.DARWIN - elif "windows" in self.name: - return Os.WINDOWS - return Os.LINUX - FREEBSD_VERSIONS = [11, 12, 13, 14, 15] @@ -324,6 +314,12 @@ def main(): p.add_argument("--toolchain", required=True, help="Rust toolchain") p.add_argument("--only", help="only targets matching this regex") p.add_argument("--skip", help="skip targets matching this regex") + p.add_argument( + "--half", + type=int, + choices=[1, 2], + help="specify 1 or 2 to run half of the targets", + ) args = p.parse_args() cfg = Cfg(toolchain_name=args.toolchain) @@ -346,30 +342,26 @@ def main(): targets = [t for t in targets if cfg.toolchain >= t.min_toolchain] eprint(f"Targets checkable with this toolchain: {len(targets)}") - # Targets get split among the diferent CI runners - targets = [t for t in targets if t.run_on() == cfg.os_] - eprint(f"Targets checked on this OS: {len(targets)}") - # Apply filtering if args.only: targets = [t for t in targets if re.match(args.only, t.name)] if args.skip: targets = [t for t in targets if not re.match(args.skip, t.name)] + # Allow splitting the targets in half for time improvements + if args.half == 1: + targets = targets[0::2] + elif args.half == 2: + targets = targets[1::2] + total = len(targets) eprint(f"Targets to run: {total}") assert total > 0, "some tests should be run" for i, target in enumerate(targets): - # HACK: We need to install the toolchain by name for most Windows toolchains, - # but not when cross compiling. - if cfg.os_ == Os.WINDOWS and "aarch64" not in target.name: - run( - ["sh", "./ci/install-rust.sh"], env=os.environ | {"TARGET": target.name} - ) - - eprint(f"::group::Target: {target.name} ({i}/{total})") - eprint(f"{ESC_CYAN}Checking target {target} ({i}/{total}){ESC_END}") + at = i + 1 + eprint(f"::group::Target: {target.name} ({at}/{total})") + eprint(f"{ESC_CYAN}Checking target {target} ({at}/{total}){ESC_END}") test_target(cfg, target) eprint("::endgroup::") From 026433589d2d2f96c1b475b79f792266fef07eea Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 26 Oct 2025 04:46:55 -0400 Subject: [PATCH 0939/1228] ci: Print elapsed time as part of verify-build (backport ) (cherry picked from commit 5e95452b38e4051d458fe3639d64a8ca64fe5cc3) --- ci/verify-build.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/ci/verify-build.py b/ci/verify-build.py index f27fde35e50c6..9c7e272bc8c94 100755 --- a/ci/verify-build.py +++ b/ci/verify-build.py @@ -1,14 +1,15 @@ #!/usr/bin/env python3 -import re -import os import argparse +import os +import platform +import re import subprocess as sp import sys -import platform -from typing import Optional -from enum import Enum, IntEnum +import time from dataclasses import dataclass, field +from enum import Enum, IntEnum +from typing import Optional ESC_CYAN = "\033[1;36m" @@ -235,6 +236,7 @@ def check_dup_targets(): def test_target(cfg: Cfg, target: Target): + start = time.time() env = os.environ.copy() env.setdefault("RUSTFLAGS", "") @@ -306,7 +308,8 @@ def test_target(cfg: Cfg, target: Target): else: eprint("Skipping semver checks") - eprint(f"Finished checking target {tname}") + elapsed = round(time.time() - start, 2) + eprint(f"Finished checking target {tname} in {elapsed} seconds") def main(): @@ -326,6 +329,7 @@ def main(): eprint(f"Config: {cfg}") eprint("Python version: ", sys.version) check_dup_targets() + start = time.time() if cfg.nightly(): # Needed for build-std @@ -365,5 +369,8 @@ def main(): test_target(cfg, target) eprint("::endgroup::") + elapsed = round(time.time() - start, 2) + eprint(f"Checked {total} targets in {elapsed} seconds") + main() From 6eac4e5dcbf2a3542bd8118da87e9cd3e34415f0 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 26 Oct 2025 04:54:02 -0400 Subject: [PATCH 0940/1228] ci: Launch create-artifacts.py with python We have occasional CI failures on Windows where the environment variables don't get set so the artifact upload fails. Looking at the logs, it doesn't even appear the create-artifact job ran (but there are no errors). The Windows runners sometimes have trouble launching python scripts via `./`, so switch to using the python3 executable in hopes that this helps. (backport ) (cherry picked from commit 962b985cfd3101715742c24f36f4c0cef4613dee) --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 62b7c5e56e56e..6e8253afd5bd8 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -154,7 +154,7 @@ jobs: - name: Create CI artifacts id: create_artifacts if: always() - run: ./ci/create-artifacts.py + run: python3 ci/create-artifacts.py - uses: actions/upload-artifact@v4 if: always() && steps.create_artifacts.outcome == 'success' with: From 8948e7a31b6e428ecd56d426ae48704a4a519af1 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 26 Oct 2025 04:59:58 -0400 Subject: [PATCH 0941/1228] aix: Resolve function comparison and `unnecessary_transmutes` warnings (backport ) (cherry picked from commit c81917388181e50c58c285b24488e7cef70fc897) --- src/unix/aix/mod.rs | 2 ++ src/unix/aix/powerpc64.rs | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index b699a3c8001c8..8fe62e4e540c3 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -326,6 +326,8 @@ s! { pub cmsg_type: c_int, } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigevent { pub sigev_value: crate::sigval, pub sigev_signo: c_int, diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index 1b62859ae1633..f3a4419efb38f 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -448,7 +448,7 @@ cfg_if! { impl hash::Hash for fpreg_t { fn hash(&self, state: &mut H) { - let d: u64 = unsafe { mem::transmute(self.d) }; + let d: u64 = self.d.to_bits(); d.hash(state); } } From 0ebb204bbb3aeae3a2291194925227b92d552554 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 26 Oct 2025 05:31:30 -0400 Subject: [PATCH 0942/1228] ci: For no-dist targets, do a check rather than a full build (backport ) (cherry picked from commit a53f4bc2964bbb1b594c628627cb9396ee48ba69) --- ci/verify-build.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ci/verify-build.py b/ci/verify-build.py index 9c7e272bc8c94..c5eb22dbd770f 100755 --- a/ci/verify-build.py +++ b/ci/verify-build.py @@ -248,7 +248,15 @@ def test_target(cfg: Cfg, target: Target): assert target_bits in ["32", "64"] eprint(f"env {target_env}, os {target_os}, bits {target_bits}") - cmd = ["cargo", f"+{cfg.toolchain_name}", "build", "--target", tname] + # Usually we do a full build to make sure we don't run into any crashes or link + # problems. If we need to use build-std, though, only do a check to speed + # things up. + if target.dist: + action = "build" + else: + action = "check" + + cmd = ["cargo", f"+{cfg.toolchain_name}", action, "--target", tname] if not target.dist: # If we can't download a `core`, we need to build it From c5fe2e378117ec5c5357f351faea759a13fe5d55 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 27 Oct 2025 02:56:31 -0400 Subject: [PATCH 0943/1228] macros: Allow `s!` and `s_no_extra_traits!` to take private items Occasionally we need to define structs that keep the expected set of traits but aren't crate-public. Add support to the macros to do this. (backport ) (cherry picked from commit cdcc46679ade1254d310b9db46224befefb9fe46) --- src/macros.rs | 60 +++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 49 insertions(+), 11 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index a5359db0f62c5..14ec3b53402f2 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -142,16 +142,16 @@ macro_rules! prelude { macro_rules! s { ($( $(#[$attr:meta])* - pub $t:ident $i:ident { $($field:tt)* } + $pub:vis $t:ident $i:ident { $($field:tt)* } )*) => ($( - s!(it: $(#[$attr])* pub $t $i { $($field)* }); + s!(it: $(#[$attr])* $pub $t $i { $($field)* }); )*); - (it: $(#[$attr:meta])* pub union $i:ident { $($field:tt)* }) => ( + (it: $(#[$attr:meta])* $pub:vis union $i:ident { $($field:tt)* }) => ( compile_error!("unions cannot derive extra traits, use s_no_extra_traits instead"); ); - (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => ( + (it: $(#[$attr:meta])* $pub:vis struct $i:ident { $($field:tt)* }) => ( __item! { #[repr(C)] #[cfg_attr( @@ -165,7 +165,7 @@ macro_rules! s { )] #[allow(deprecated)] $(#[$attr])* - pub struct $i { $($field)* } + $pub struct $i { $($field)* } } ); } @@ -202,17 +202,17 @@ macro_rules! s_paren { macro_rules! s_no_extra_traits { ($( $(#[$attr:meta])* - pub $t:ident $i:ident { $($field:tt)* } + $pub:vis $t:ident $i:ident { $($field:tt)* } )*) => ($( - s_no_extra_traits!(it: $(#[$attr])* pub $t $i { $($field)* }); + s_no_extra_traits!(it: $(#[$attr])* $pub $t $i { $($field)* }); )*); - (it: $(#[$attr:meta])* pub union $i:ident { $($field:tt)* }) => ( + (it: $(#[$attr:meta])* $pub:vis union $i:ident { $($field:tt)* }) => ( __item! { #[repr(C)] #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)] $(#[$attr])* - pub union $i { $($field)* } + $pub union $i { $($field)* } } impl ::core::fmt::Debug for $i { @@ -222,7 +222,7 @@ macro_rules! s_no_extra_traits { } ); - (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => ( + (it: $(#[$attr:meta])* $pub:vis struct $i:ident { $($field:tt)* }) => ( __item! { #[repr(C)] #[::core::prelude::v1::derive( @@ -231,7 +231,7 @@ macro_rules! s_no_extra_traits { ::core::fmt::Debug, )] $(#[$attr])* - pub struct $i { $($field)* } + $pub struct $i { $($field)* } } ); } @@ -529,3 +529,41 @@ mod tests { TypeId::of::() } } + +#[cfg(test)] +#[allow(unused)] +mod macro_checks { + s! { + pub struct S1 { + pub a: u32, + b: u32, + } + + struct S1Priv { + pub a: u32, + b: u32, + } + } + + s_no_extra_traits! { + pub struct S2 { + pub a: u32, + b: u32, + } + + struct S2Priv { + pub a: u32, + b: u32, + } + + pub union U2 { + pub a: u32, + b: f32, + } + + union U2Priv { + pub a: u32, + b: f32, + } + } +} From 33d56c2957b4819b022af3ffd662b56f188b944d Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 26 Oct 2025 05:51:09 -0400 Subject: [PATCH 0944/1228] ci: Pass the `MUSL_V1_2_3` env in docker This was being set as part of CI but not forwarded to the jobs. Start passing it now. (backport ) (cherry picked from commit ab130bf6df0cd664d474c6ee93a98ae3d7cad66c) --- ci/run-docker.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/run-docker.sh b/ci/run-docker.sh index db10c3b061ba8..c34bcff6ed786 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -45,6 +45,7 @@ run() { --env LIBC_CI_ZBUILD_STD \ --env RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS \ --env RUST_LIBC_UNSTABLE_GNU_TIME_BITS \ + --env RUST_LIBC_UNSTABLE_MUSL_V1_2_3 \ --env CARGO_HOME=/cargo \ --env CARGO_TARGET_DIR=/checkout/target \ --volume "$CARGO_HOME":/cargo \ From ecee47292e27a71112e79f5649daa3ca99fcbf20 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 26 Oct 2025 05:51:09 -0400 Subject: [PATCH 0945/1228] musl: Fix skips with recent versions It appeared that tests with the constants here were passing in CI with new versions of musl before, but that was only because the correct config wasn't being set. Go back to our original configuration (with some cleanup) to resolve this. Fixes: dd44cb603e77 ("test: linux: Unskip types and constants that are now available") (backport ) (cherry picked from commit 075c1184bc803fdfc9ced147eefc318dccb53a90) --- libc-test/build.rs | 125 ++++++++++++++++++++++----------------------- 1 file changed, 61 insertions(+), 64 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 54636a7503038..d23b0d6876813 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4084,8 +4084,14 @@ fn test_linux(target: &str) { // FIXME(linux): Requires >= 6.12 kernel headers. "mnt_ns_info" => true, - // Struct has changed for new musl versions - "tcp_info" if old_musl => true, + // FIXME(musl): Struct has changed for new musl versions + "tcp_info" if musl => true, + + // FIXME(musl): Supported in new musl but we don't have a new enough version in CI. + "statx" | "statx_timestamp" if musl => true, + + // FIXME(musl): New fields in newer versions + "utmpx" if !old_musl => true, _ => false, } @@ -4139,35 +4145,26 @@ fn test_linux(target: &str) { if name.starts_with("NI_IDN") { return true; } - // FIXME(musl): Not in musl yet - if name == "SO_NETNS_COOKIE" - || name == "SO_BUF_LOCK" - || name == "SO_RESERVE_MEM" - || name == "SO_TXREHASH" - || name == "SO_RCVMARK" - || name == "SO_PASSPIDFD" - || name == "SO_PEERPIDFD" - || name == "SO_DEVMEM_LINEAR" - || name == "SO_DEVMEM_DMABUF" - || name == "SO_DEVMEM_DONTNEED" - { - return true; - } - // FIXME(musl): Not in musl yet - if name == "SCM_DEVMEM_LINEAR" || name == "SCM_DEVMEM_DMABUF" { - return true; - } - // FIXME: Does not exist on non-x86 architectures, slated for removal - // in libc in 1.0 - if ppc64 && name == "MAP_32BIT" { - return true; - } - } - if old_musl { - // Constants that don't exist on the old version of musl we test with, but do exist - // on newer versions. + match name { - "FAN_EVENT_INFO_TYPE_ERROR" + // FIXME: Does not exist on non-x86 architectures, slated for removal + // in libc in 1.0 + "MAP_32BIT" if ppc64 => return true, + + // FIXME(musl): None of these are actually defined in musl, they should be removed. + "SO_NETNS_COOKIE" + | "SO_BUF_LOCK" + | "SO_RESERVE_MEM" + | "SO_TXREHASH" + | "SO_RCVMARK" + | "SO_PASSPIDFD" + | "SO_PEERPIDFD" + | "SO_DEVMEM_LINEAR" + | "SO_DEVMEM_DMABUF" + | "SO_DEVMEM_DONTNEED" + | "SCM_DEVMEM_LINEAR" + | "SCM_DEVMEM_DMABUF" + | "FAN_EVENT_INFO_TYPE_ERROR" | "FAN_EVENT_INFO_TYPE_NEW_DFID_NAME" | "FAN_EVENT_INFO_TYPE_OLD_DFID_NAME" | "FAN_FS_ERROR" @@ -4180,21 +4177,39 @@ fn test_linux(target: &str) { | "FAN_REPORT_TARGET_FID" | "FAN_RESPONSE_INFO_AUDIT_RULE" | "FAN_RESPONSE_INFO_NONE" - | "IPPROTO_ETHERNET" - | "IPPROTO_MPTCP" | "PR_GET_MDWE" | "PR_MDWE_NO_INHERIT" | "PR_MDWE_REFUSE_EXEC_GAIN" | "PR_SET_MDWE" - | "RLIM_NLIMITS" + | "IPPROTO_ETHERNET" + | "IPPROTO_MPTCP" | "SI_DETHREAD" - | "SO_BUSY_POLL_BUDGET" - | "SO_PREFER_BUSY_POLL" => return true, - // Values changed in newer musl versions on these arches + | "PR_SET_VMA" + | "PR_SET_VMA_ANON_NAME" + | "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" => return true, + + /* Added in versions more recent than what we test */ + // Since 1.2.3 + "SO_BUSY_POLL_BUDGET" | "SO_PREFER_BUSY_POLL" => return true, + + // FIXME(musl): value was updated in new musl + "RLIM_NLIMITS" => return true, + + // FIXME(musl): Values changed in newer musl versions on these arches "O_LARGEFILE" if riscv64 || x86_64 => return true, + _ => (), } } + match name { // These constants are not available if gnu headers have been included // and can therefore not be tested here @@ -4307,23 +4322,6 @@ fn test_linux(target: &str) { // is a private value for kernel usage normally "FUSE_SUPER_MAGIC" => true, - // Not present on old musl - "PR_SET_VMA" - | "PR_SET_VMA_ANON_NAME" - | "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" - if old_musl => - { - true - } - // Not present in glibc "PR_SME_VL_LEN_MAX" | "PR_SME_SET_VL_INHERIT" | "PR_SME_SET_VL_ONE_EXEC" if gnu => true, @@ -4514,20 +4512,22 @@ fn test_linux(target: &str) { // assume it's a int instead. "getnameinfo" if uclibc => true, - // FIXME(musl): This needs musl 1.2.2 or later. - "gettid" if old_musl => true, + // FIXME(musl): This needs musl 1.2.2 or later, which is newer than what we test with + // on CI. + "gettid" | "reallocarray" if musl => true, + // Needs musl 1.2.3 or later. + "pthread_getname_np" if musl => true, + // Added in musl 1.2.5 + "preadv2" | "pwritev2" if musl => true, + // FIXME(musl): Supported in new musl but we don't have a new enough version in CI. + "statx" if musl => true, // Needs glibc 2.33 or later. "mallinfo2" => true, - "reallocarray" if old_musl => true, - // Not defined in uclibc as of 1.0.34 "gettid" if uclibc => true, - // Needs musl 1.2.3 or later. - "pthread_getname_np" if old_musl => true, - // pthread_sigqueue uses sigval, which was initially declared // as a struct but should be defined as a union. However due // to the issues described here: https://github.com/rust-lang/libc/issues/2816 @@ -4553,9 +4553,6 @@ fn test_linux(target: &str) { // FIXME(linux): function pointers changed since Ubuntu 23.10 "strtol" | "strtoll" | "strtoul" | "strtoull" | "fscanf" | "scanf" | "sscanf" => true, - // Added in musl 1.2.5 - "preadv2" | "pwritev2" if musl => true, - _ => false, } }); @@ -4665,7 +4662,7 @@ fn test_linux(target: &str) { // the `xsk_tx_metadata_union` field is an anonymous union (struct_ == "xsk_tx_metadata" && field == "xsk_tx_metadata_union") || // After musl 1.2.0, the type becomes `int` instead of `long`. - (old_musl && struct_ == "utmpx" && field == "ut_session") || + (musl && struct_ == "utmpx" && field == "ut_session") || // `frames` is a flexible array member (struct_ == "bcm_msg_head" && field == "frames") || // FAM From 806d311d8a61c91301e36393240c7e4e7c31e911 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 27 Oct 2025 04:02:48 -0400 Subject: [PATCH 0946/1228] ci: Also check builds with `musl_v1_2_3` (backport ) (cherry picked from commit 7b9f8fd059a9cc4d64be801aced0019a4b62a119) --- ci/verify-build.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ci/verify-build.py b/ci/verify-build.py index c5eb22dbd770f..2d57bd81bcea9 100755 --- a/ci/verify-build.py +++ b/ci/verify-build.py @@ -281,6 +281,10 @@ def test_target(cfg: Cfg, target: Target): # Equivalent of _TIME_BITS=64 run(cmd, env=env | {"RUST_LIBC_UNSTABLE_GNU_TIME_BITS": "64"}) + if "musl" in target_env: + # Check with breaking changes from musl, including 64-bit time_t on 32-bit + run(cmd, env=env | {"RUST_LIBC_UNSTABLE_MUSL_V1_2_3": "1"}) + # Test again without default features, i.e. without `std` run(cmd + ["--no-default-features"]) run(cmd + ["--no-default-features", "--features=extra_traits"]) From d69581d6ebb657a18ce985bdfd5b337d7a965053 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 25 Oct 2025 20:54:30 -0400 Subject: [PATCH 0947/1228] ci: Run gnu env tests as part of the main job Since glibc supports both 32- and 64-bit time_t and off_t without different setup (just a header define in libc-test), these don't have any need to be standalone jobs. Switch glibc config variants to be checked as part of `run.sh`, which means we are now covering all 32-bit platforms by default. (backport ) (cherry picked from commit cbf2b8a94129b1ae857a0588de8465e46fd53572) --- .github/workflows/ci.yaml | 18 ------------------ ci/run.sh | 12 ++++++++++++ 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6e8253afd5bd8..6bbd53bda9043 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -113,12 +113,6 @@ jobs: - target: i686-pc-windows-msvc os: windows-2025 - target: i686-unknown-linux-gnu - - target: i686-unknown-linux-gnu - artifact-tag: offset-bits64 - env: { RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64 } - - target: i686-unknown-linux-gnu - artifact-tag: time-bits64 - env: { RUST_LIBC_UNSTABLE_GNU_TIME_BITS: 64 } - target: x86_64-pc-windows-gnu os: windows-2025 env: { ARCH_BITS: 64, ARCH: x86_64 } @@ -181,12 +175,6 @@ jobs: artifact-tag: new-musl - target: arm-linux-androideabi - target: arm-unknown-linux-gnueabihf - - target: arm-unknown-linux-gnueabihf - env: { RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64 } - artifact-tag: offset-bits64 - - target: arm-unknown-linux-gnueabihf - env: { RUST_LIBC_UNSTABLE_GNU_TIME_BITS: 64 } - artifact-tag: time-bits64 - target: arm-unknown-linux-musleabihf - target: arm-unknown-linux-musleabihf env: { RUST_LIBC_UNSTABLE_MUSL_V1_2_3: 1 } @@ -228,12 +216,6 @@ jobs: # FIXME(ppc): SIGILL running tests, see # https://github.com/rust-lang/libc/pull/4254#issuecomment-2636288713 # - target: powerpc-unknown-linux-gnu - # - target: powerpc-unknown-linux-gnu - # env: { RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64 } - # artifact-tag: offset-bits64 - # - target: powerpc-unknown-linux-gnu - # env: { RUST_LIBC_UNSTABLE_GNU_TIME_BITS: 64 } - # artifact-tag: time-bits64 runs-on: ${{ matrix.os && matrix.os || 'ubuntu-24.04' }} timeout-minutes: 25 env: diff --git a/ci/run.sh b/ci/run.sh index 6ec25f5c70a5e..8a7abf2e20f77 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -25,9 +25,21 @@ case "$target" in *) cmd="$cmd --workspace" ;; esac +env="$(rustc --print cfg --target "$target" | sed -n 's/target_env="\(.*\)"/\1/p')" +bits="$(rustc --print cfg --target "$target" | sed -n 's/target_pointer_width="\(.*\)"/\1/p')" + # shellcheck disable=SC2086 $cmd --no-default-features -- $test_flags # shellcheck disable=SC2086 $cmd -- $test_flags # shellcheck disable=SC2086 $cmd --features extra_traits -- $test_flags + +# On relevant platforms, also test with our optional settings + +if [ "$env" = "gnu" ] && [ "$bits" = "32" ]; then + # shellcheck disable=SC2086 + RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS=64 $cmd -- $test_flags + # shellcheck disable=SC2086 + RUST_LIBC_UNSTABLE_GNU_TIME_BITS=64 $cmd -- $test_flags +fi From 381d701757b5809fadc30ff8a28f33557f7b4a11 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 27 Oct 2025 04:58:00 -0400 Subject: [PATCH 0948/1228] ci: Only test against one of two musl versions Commonize to always build 1.2.5 for tests that require a newer musl, rather than either 1.2.3 or 1.2.5 based on the version. (backport ) (cherry picked from commit 03e32e84eb6a006f8d90a5b7d8ca883d252cd735) --- ci/install-musl.sh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ci/install-musl.sh b/ci/install-musl.sh index f5516553707d2..d43e29470dabd 100755 --- a/ci/install-musl.sh +++ b/ci/install-musl.sh @@ -5,12 +5,15 @@ set -eux +old_musl=1.1.24 +new_musl=1.2.5 + case ${1} in - loongarch64) - musl_version=1.2.5 - ;; + loongarch64) musl_version="$new_musl" ;; *) - [ -n "${RUST_LIBC_UNSTABLE_MUSL_V1_2_3:-}" ] && musl_version=1.2.3 || musl_version=1.1.24 + [ -n "${RUST_LIBC_UNSTABLE_MUSL_V1_2_3:-}" ] && + musl_version="$new_musl" || + musl_version="$old_musl" ;; esac From 9f7e864d8fe4c2b799399ddb4f6954f2e9c3105a Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Mon, 27 Oct 2025 09:24:27 -0400 Subject: [PATCH 0949/1228] Change errno EWOULDBLOCK to make it an alias of EAGAIN. (backport ) (cherry picked from commit 095aae8e6f0878b3dfb8f010cd8b699c5dd2d31f) --- libc-test/build.rs | 8 +++----- src/unix/aix/mod.rs | 3 ++- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index d23b0d6876813..fb8b08f95b147 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -5354,11 +5354,9 @@ fn test_aix(target: &str) { // Skip 'sighandler_t' assignments. "SIG_DFL" | "SIG_ERR" | "SIG_IGN" => true, - // _ALL_SOURCE defines these errno values as aliases of other errno - // values, but POSIX requires each errno to be unique. Skip these - // values because non-unique values are being used which will - // fail the test when _ALL_SOURCE is defined. - "EWOULDBLOCK" | "ENOTEMPTY" => true, + // _ALL_SOURCE defines ENOTEMPTY as an alias of EEXIST, but POSIX + // requires its value to be unique. Skip. + "ENOTEMPTY" => true, // FIXME(ctest): These constants are intended for use as the 'int request' argument // to 'ioctl()'. However, the AIX headers do not explicitly define their types. If a diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 8fe62e4e540c3..f4dd26f6aba37 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -1275,7 +1275,8 @@ pub const ENOLCK: c_int = 49; pub const ENOCONNECT: c_int = 50; pub const ESTALE: c_int = 52; pub const EDIST: c_int = 53; -pub const EWOULDBLOCK: c_int = 54; +// POSIX allows EWOULDBLOCK to be the same value as EAGAIN. +pub const EWOULDBLOCK: c_int = EAGAIN; pub const EINPROGRESS: c_int = 55; pub const EALREADY: c_int = 56; pub const ENOTSOCK: c_int = 57; From e460ad13545d73351884452ed232300000090ef9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 15:22:55 +0000 Subject: [PATCH 0950/1228] build(deps): bump actions/upload-artifact from 4 to 5 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] (backport ) (cherry picked from commit bf2bd19d07f1fb35fa0ee2fd956962b17ad15dba) --- .github/workflows/ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6bbd53bda9043..4014d75b07805 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -149,7 +149,7 @@ jobs: id: create_artifacts if: always() run: python3 ci/create-artifacts.py - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v5 if: always() && steps.create_artifacts.outcome == 'success' with: name: ${{ env.ARCHIVE_NAME }}-${{ matrix.target }}${{ matrix.artifact-tag && format('-{0}', matrix.artifact-tag) }} @@ -246,7 +246,7 @@ jobs: id: create_artifacts if: always() run: ./ci/create-artifacts.py - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v5 if: always() && steps.create_artifacts.outcome == 'success' with: name: ${{ env.ARCHIVE_NAME }}-${{ matrix.target }}${{ matrix.artifact-tag && format('-{0}', matrix.artifact-tag) }} From 8631e5b9f2e7ee688c69e8d2adc6fb92b39ba39b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 27 Oct 2025 18:25:06 -0400 Subject: [PATCH 0951/1228] Add an `offset_of` macro We can't yet use the standard library's macro since it isn't in our MSRV, but there are a couple of applicatons for having `offset_of` available. Add a polyfill for now. (backport ) (cherry picked from commit 18083938f28c39908f487624bd96ed9a6c0c24e0) --- src/macros.rs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/macros.rs b/src/macros.rs index 14ec3b53402f2..6f0adb9d46084 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -427,6 +427,23 @@ macro_rules! deprecated_mach { } } +/// Polyfill for std's `offset_of`. +// FIXME(msrv): stabilized in std in 1.77 +macro_rules! offset_of { + ($Ty:path, $field:ident) => {{ + // Taken from bytemuck, avoids accidentally calling on deref + #[allow(clippy::unneeded_field_pattern)] + let $Ty { $field: _, .. }; + let data = core::mem::MaybeUninit::<$Ty>::uninit(); + let ptr = data.as_ptr(); + // SAFETY: computed address is inbounds since we have a stack alloc for T + let fptr = unsafe { core::ptr::addr_of!((*ptr).$field) }; + let off = (fptr as usize).checked_sub(ptr as usize).unwrap(); + assert!(off <= core::mem::size_of::<$Ty>()); + off + }}; +} + #[cfg(test)] mod tests { use core::any::TypeId; @@ -528,6 +545,26 @@ mod tests { fn type_id_of_val(_: &T) -> TypeId { TypeId::of::() } + + #[test] + fn test_offset_of() { + #[repr(C)] + struct Off1 { + a: u8, + b: u32, + c: Off2, + d: u64, + } + + #[repr(C)] + #[repr(align(128))] + struct Off2 {} + + assert_eq!(core::mem::offset_of!(Off1, a), offset_of!(Off1, a)); + assert_eq!(core::mem::offset_of!(Off1, b), offset_of!(Off1, b)); + assert_eq!(core::mem::offset_of!(Off1, c), offset_of!(Off1, c)); + assert_eq!(core::mem::offset_of!(Off1, d), offset_of!(Off1, d)); + } } #[cfg(test)] From 5b7495e1e84f88922ccda39d02589eedf014c97e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 28 Oct 2025 02:13:38 -0400 Subject: [PATCH 0952/1228] ci: Commonize dockerfile style Split all dependencies to new lines and sort them, and use consistent indentation across all files. (backport ) (cherry picked from commit 2e208d03fe34ef7fe4e68e46ea7e6de227d83b4f) --- ci/docker/aarch64-linux-android/Dockerfile | 40 +++++++++---------- .../aarch64-unknown-linux-gnu/Dockerfile | 9 ++++- .../aarch64-unknown-linux-musl/Dockerfile | 13 +++++- ci/docker/arm-linux-androideabi/Dockerfile | 40 +++++++++---------- .../arm-unknown-linux-gnueabihf/Dockerfile | 9 ++++- .../arm-unknown-linux-musleabihf/Dockerfile | 13 +++++- .../Dockerfile | 11 ++++- ci/docker/asmjs-unknown-emscripten/Dockerfile | 9 ++--- ci/docker/i686-linux-android/Dockerfile | 40 +++++++++---------- ci/docker/i686-unknown-linux-gnu/Dockerfile | 5 ++- ci/docker/i686-unknown-linux-musl/Dockerfile | 12 +++++- .../loongarch64-unknown-linux-gnu/Dockerfile | 10 +++-- .../loongarch64-unknown-linux-musl/Dockerfile | 13 +++++- .../powerpc-unknown-linux-gnu/Dockerfile | 10 +++-- .../powerpc64-unknown-linux-gnu/Dockerfile | 10 +++-- .../powerpc64le-unknown-linux-gnu/Dockerfile | 10 +++-- .../powerpc64le-unknown-linux-musl/Dockerfile | 13 +++++- .../riscv64gc-unknown-linux-gnu/Dockerfile | 11 +++-- ci/docker/s390x-unknown-linux-gnu/Dockerfile | 13 +++--- ci/docker/s390x-unknown-linux-musl/Dockerfile | 13 +++--- .../sparc64-unknown-linux-gnu/Dockerfile | 19 ++++++--- .../wasm32-unknown-emscripten/Dockerfile | 19 +++++---- ci/docker/x86_64-linux-android/Dockerfile | 15 ++++--- ci/docker/x86_64-unknown-linux-gnu/Dockerfile | 9 +++-- .../x86_64-unknown-linux-gnux32/Dockerfile | 8 ++-- .../x86_64-unknown-linux-musl/Dockerfile | 14 +++++-- 26 files changed, 247 insertions(+), 141 deletions(-) diff --git a/ci/docker/aarch64-linux-android/Dockerfile b/ci/docker/aarch64-linux-android/Dockerfile index 8ed15a5234d1e..0e5baf0854238 100644 --- a/ci/docker/aarch64-linux-android/Dockerfile +++ b/ci/docker/aarch64-linux-android/Dockerfile @@ -1,18 +1,18 @@ FROM ubuntu:25.04 RUN dpkg --add-architecture i386 -RUN apt-get update -RUN apt-get install -y --no-install-recommends libc6-dev gcc -RUN apt-get install -y --no-install-recommends \ - file \ - wget \ - ca-certificates \ - python3 \ - unzip \ - expect \ - openjdk-8-jre \ - libstdc++6:i386 \ - libpulse0 +RUN apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates \ + expect \ + file \ + gcc \ + libc6-dev \ + libpulse0 \ + libstdc++6:i386 \ + openjdk-8-jre \ + python3 \ + unzip \ + wget WORKDIR /android/ COPY android* /android/ @@ -35,12 +35,12 @@ ENV PATH=$PATH:/rust/bin \ ADD runtest-android.rs /tmp/runtest.rs ENTRYPOINT [ \ - "bash", \ - "-c", \ - # set SHELL so android can detect a 64bits system, see - # http://stackoverflow.com/a/41789144 - "SHELL=/bin/dash /android/sdk/emulator/emulator @aarch64 -no-window & \ - rustc /tmp/runtest.rs -o /tmp/runtest && \ - exec \"$@\"", \ - "--" \ + "bash", \ + "-c", \ + # set SHELL so android can detect a 64bits system, see + # http://stackoverflow.com/a/41789144 + "SHELL=/bin/dash /android/sdk/emulator/emulator @aarch64 -no-window & \ + rustc /tmp/runtest.rs -o /tmp/runtest && \ + exec \"$@\"", \ + "--" \ ] diff --git a/ci/docker/aarch64-unknown-linux-gnu/Dockerfile b/ci/docker/aarch64-unknown-linux-gnu/Dockerfile index a4faeb4a8b96b..e6b1798b1cfbf 100644 --- a/ci/docker/aarch64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/aarch64-unknown-linux-gnu/Dockerfile @@ -1,8 +1,13 @@ FROM ubuntu:25.04 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 + ca-certificates \ + gcc \ + gcc-aarch64-linux-gnu \ + libc6-dev \ + libc6-dev-arm64-cross \ + qemu-user + ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \ CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER="qemu-aarch64 -L /usr/aarch64-linux-gnu" \ PATH=$PATH:/rust/bin diff --git a/ci/docker/aarch64-unknown-linux-musl/Dockerfile b/ci/docker/aarch64-unknown-linux-musl/Dockerfile index f57c5fa6055c2..3bbf58aa3b8b6 100644 --- a/ci/docker/aarch64-unknown-linux-musl/Dockerfile +++ b/ci/docker/aarch64-unknown-linux-musl/Dockerfile @@ -1,8 +1,17 @@ FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ - gcc make libc6-dev git curl ca-certificates \ - gcc-aarch64-linux-gnu qemu-user xz-utils patch rsync + ca-certificates \ + curl \ + gcc \ + gcc-aarch64-linux-gnu \ + git \ + libc6-dev \ + make \ + patch \ + qemu-user \ + rsync \ + xz-utils COPY install-musl.sh / RUN /install-musl.sh aarch64 diff --git a/ci/docker/arm-linux-androideabi/Dockerfile b/ci/docker/arm-linux-androideabi/Dockerfile index e81623f7bf0e7..23afe49970e71 100644 --- a/ci/docker/arm-linux-androideabi/Dockerfile +++ b/ci/docker/arm-linux-androideabi/Dockerfile @@ -1,18 +1,18 @@ FROM ubuntu:25.04 RUN dpkg --add-architecture i386 -RUN apt-get update -RUN apt-get install -y --no-install-recommends libc6-dev gcc -RUN apt-get install -y --no-install-recommends \ - file \ - wget \ - ca-certificates \ - python3 \ - unzip \ - expect \ - openjdk-8-jre \ - libstdc++6:i386 \ - libpulse0 +RUN apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates \ + expect \ + file \ + gcc \ + libc6-dev \ + libpulse0 \ + libstdc++6:i386 \ + openjdk-8-jre \ + python3 \ + unzip \ + wget WORKDIR /android/ COPY android* /android/ @@ -35,12 +35,12 @@ ENV PATH=$PATH:/rust/bin \ ADD runtest-android.rs /tmp/runtest.rs ENTRYPOINT [ \ - "bash", \ - "-c", \ - # set SHELL so android can detect a 64bits system, see - # http://stackoverflow.com/a/41789144 - "SHELL=/bin/dash /android/sdk/emulator/emulator @arm -no-window & \ - rustc /tmp/runtest.rs -o /tmp/runtest && \ - exec \"$@\"", \ - "--" \ + "bash", \ + "-c", \ + # set SHELL so android can detect a 64bits system, see + # http://stackoverflow.com/a/41789144 + "SHELL=/bin/dash /android/sdk/emulator/emulator @arm -no-window & \ + rustc /tmp/runtest.rs -o /tmp/runtest && \ + exec \"$@\"", \ + "--" \ ] diff --git a/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile b/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile index 8f2d3ea80d065..e6cdf778d78c0 100644 --- a/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile +++ b/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile @@ -4,8 +4,13 @@ FROM ubuntu:23.10 RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ /etc/apt/sources.list && \ 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 + ca-certificates \ + gcc \ + gcc-arm-linux-gnueabihf \ + libc6-dev \ + libc6-dev-armhf-cross \ + qemu-user + ENV CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \ CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_RUNNER="qemu-arm -L /usr/arm-linux-gnueabihf" \ PATH=$PATH:/rust/bin diff --git a/ci/docker/arm-unknown-linux-musleabihf/Dockerfile b/ci/docker/arm-unknown-linux-musleabihf/Dockerfile index c6bd116b6f1cb..e4628e8befbd0 100644 --- a/ci/docker/arm-unknown-linux-musleabihf/Dockerfile +++ b/ci/docker/arm-unknown-linux-musleabihf/Dockerfile @@ -4,8 +4,17 @@ FROM ubuntu:23.10 RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ /etc/apt/sources.list && \ apt-get update && apt-get install -y --no-install-recommends \ - gcc make libc6-dev git curl ca-certificates \ - gcc-arm-linux-gnueabihf qemu-user xz-utils patch rsync + ca-certificates \ + curl \ + gcc \ + gcc-arm-linux-gnueabihf \ + git \ + libc6-dev \ + make \ + patch \ + qemu-user \ + rsync \ + xz-utils COPY install-musl.sh / RUN /install-musl.sh arm diff --git a/ci/docker/armv7-unknown-linux-uclibceabihf/Dockerfile b/ci/docker/armv7-unknown-linux-uclibceabihf/Dockerfile index 330493f54a1d1..284389360ac2c 100644 --- a/ci/docker/armv7-unknown-linux-uclibceabihf/Dockerfile +++ b/ci/docker/armv7-unknown-linux-uclibceabihf/Dockerfile @@ -4,8 +4,15 @@ FROM ubuntu:23.10 RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ /etc/apt/sources.list && \ apt-get update && apt-get install -y --no-install-recommends \ - gcc libc6-dev qemu-user ca-certificates qemu-system-arm curl \ - xz-utils patch file + ca-certificates \ + curl \ + file \ + gcc \ + libc6-dev \ + patch \ + qemu-system-arm \ + qemu-user \ + xz-utils RUN mkdir /toolchain diff --git a/ci/docker/asmjs-unknown-emscripten/Dockerfile b/ci/docker/asmjs-unknown-emscripten/Dockerfile index c8fb40cc3d3c0..312eca1146dba 100644 --- a/ci/docker/asmjs-unknown-emscripten/Dockerfile +++ b/ci/docker/asmjs-unknown-emscripten/Dockerfile @@ -4,9 +4,8 @@ FROM ubuntu:25.04 ENV DEBIAN_FRONTEND=noninteractive ENV TZ=America/New_York -RUN apt-get update -RUN apt-get install -y --no-install-recommends tzdata -RUN apt-get install -y --no-install-recommends \ +RUN apt-get update && apt-get install -y --no-install-recommends \ + bzip2 \ ca-certificates \ curl \ gcc \ @@ -14,8 +13,8 @@ RUN apt-get install -y --no-install-recommends \ libc6-dev \ libxml2 \ python3 \ - xz-utils \ - bzip2 + tzdata \ + xz-utils COPY emscripten.sh / RUN /emscripten.sh diff --git a/ci/docker/i686-linux-android/Dockerfile b/ci/docker/i686-linux-android/Dockerfile index 24d15872efd07..96507d7fc2275 100644 --- a/ci/docker/i686-linux-android/Dockerfile +++ b/ci/docker/i686-linux-android/Dockerfile @@ -1,18 +1,18 @@ FROM ubuntu:25.04 RUN dpkg --add-architecture i386 -RUN apt-get update -RUN apt-get install -y --no-install-recommends libc6-dev gcc -RUN apt-get install -y --no-install-recommends \ - file \ - wget \ - ca-certificates \ - python3 \ - unzip \ - expect \ - openjdk-8-jre \ - libstdc++6:i386 \ - libpulse0 +RUN apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates \ + expect \ + gcc \ + libc6-dev \ + libpulse0 \ + libstdc++6:i386 \ + openjdk-8-jre \ + python3 \ + unzip \ + wget \ + file WORKDIR /android/ COPY android* /android/ @@ -35,12 +35,12 @@ ENV PATH=$PATH:/rust/bin \ ADD runtest-android.rs /tmp/runtest.rs ENTRYPOINT [ \ - "bash", \ - "-c", \ - # set SHELL so android can detect a 64bits system, see - # http://stackoverflow.com/a/41789144 - "SHELL=/bin/dash /android/sdk/emulator/emulator @i686 -no-window -no-accel & \ - rustc /tmp/runtest.rs -o /tmp/runtest && \ - exec \"$@\"", \ - "--" \ + "bash", \ + "-c", \ + # set SHELL so android can detect a 64bits system, see + # http://stackoverflow.com/a/41789144 + "SHELL=/bin/dash /android/sdk/emulator/emulator @i686 -no-window -no-accel & \ + rustc /tmp/runtest.rs -o /tmp/runtest && \ + exec \"$@\"", \ + "--" \ ] diff --git a/ci/docker/i686-unknown-linux-gnu/Dockerfile b/ci/docker/i686-unknown-linux-gnu/Dockerfile index fae0b566d33fc..5a2f4c9dd43ec 100644 --- a/ci/docker/i686-unknown-linux-gnu/Dockerfile +++ b/ci/docker/i686-unknown-linux-gnu/Dockerfile @@ -1,10 +1,11 @@ FROM ubuntu:23.10 - # FIXME(time): we are using an EOL release because 24.04 changes to 64-bit time RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ /etc/apt/sources.list && \ apt-get update && apt-get install -y --no-install-recommends \ - gcc-multilib libc6-dev ca-certificates + ca-certificates \ + gcc-multilib \ + libc6-dev ENV PATH=$PATH:/rust/bin diff --git a/ci/docker/i686-unknown-linux-musl/Dockerfile b/ci/docker/i686-unknown-linux-musl/Dockerfile index 287f325e9151f..82f2b786eda20 100644 --- a/ci/docker/i686-unknown-linux-musl/Dockerfile +++ b/ci/docker/i686-unknown-linux-musl/Dockerfile @@ -5,8 +5,16 @@ RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ /etc/apt/sources.list && \ dpkg --add-architecture i386 && \ apt-get update && apt-get install -y --no-install-recommends \ - gcc-multilib make libc6-dev git curl ca-certificates libc6-i386 \ - xz-utils patch rsync + ca-certificates \ + curl \ + gcc-multilib \ + git \ + libc6-dev \ + libc6-i386 \ + make \ + patch \ + rsync \ + xz-utils COPY install-musl.sh / RUN /install-musl.sh i686 diff --git a/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile b/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile index 138b9a195adb8..359a40b5f33d6 100644 --- a/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile @@ -1,9 +1,13 @@ FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ - gcc libc6-dev qemu-user ca-certificates \ - gcc-14-loongarch64-linux-gnu libc6-dev-loong64-cross \ - linux-headers-generic + ca-certificates \ + gcc \ + gcc-14-loongarch64-linux-gnu \ + libc6-dev \ + libc6-dev-loong64-cross \ + linux-headers-generic \ + qemu-user ENV CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_GNU_LINKER=loongarch64-linux-gnu-gcc-14 \ CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_GNU_RUNNER="qemu-loongarch64 -L /usr/loongarch64-linux-gnu" \ diff --git a/ci/docker/loongarch64-unknown-linux-musl/Dockerfile b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile index ec632c33f7af3..dcf75b428a290 100644 --- a/ci/docker/loongarch64-unknown-linux-musl/Dockerfile +++ b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile @@ -1,8 +1,17 @@ FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ - ca-certificates curl gcc gcc-14-loongarch64-linux-gnu git libc6-dev \ - make qemu-user xz-utils patch rsync + ca-certificates \ + curl \ + gcc \ + gcc-14-loongarch64-linux-gnu \ + git \ + libc6-dev \ + make \ + patch \ + qemu-user \ + rsync \ + xz-utils COPY install-musl.sh / RUN /install-musl.sh loongarch64 diff --git a/ci/docker/powerpc-unknown-linux-gnu/Dockerfile b/ci/docker/powerpc-unknown-linux-gnu/Dockerfile index 535202951d2ce..99c5f13892095 100644 --- a/ci/docker/powerpc-unknown-linux-gnu/Dockerfile +++ b/ci/docker/powerpc-unknown-linux-gnu/Dockerfile @@ -4,9 +4,13 @@ FROM ubuntu:23.10 RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ /etc/apt/sources.list && \ apt-get update && apt-get install -y --no-install-recommends \ - gcc libc6-dev qemu-user ca-certificates \ - gcc-powerpc-linux-gnu libc6-dev-powerpc-cross \ - qemu-system-ppc + ca-certificates \ + gcc \ + gcc-powerpc-linux-gnu \ + libc6-dev \ + libc6-dev-powerpc-cross \ + qemu-system-ppc \ + qemu-user ENV CARGO_TARGET_POWERPC_UNKNOWN_LINUX_GNU_LINKER=powerpc-linux-gnu-gcc \ CARGO_TARGET_POWERPC_UNKNOWN_LINUX_GNU_RUNNER="qemu-ppc -L /usr/powerpc-linux-gnu" \ diff --git a/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile b/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile index a8a9dd8c92263..f7907a32347ac 100644 --- a/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile @@ -1,9 +1,13 @@ FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ - gcc libc6-dev qemu-user ca-certificates \ - gcc-powerpc64-linux-gnu libc6-dev-ppc64-cross \ - qemu-system-ppc + ca-certificates \ + gcc \ + gcc-powerpc64-linux-gnu \ + libc6-dev \ + libc6-dev-ppc64-cross \ + qemu-system-ppc \ + qemu-user ENV CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_LINKER=powerpc64-linux-gnu-gcc \ CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_RUNNER="qemu-ppc64 -L /usr/powerpc64-linux-gnu" \ diff --git a/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile b/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile index 0d6110f39149f..f2f0a6e20c7b2 100644 --- a/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile +++ b/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile @@ -1,9 +1,13 @@ FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ - gcc libc6-dev qemu-user ca-certificates \ - gcc-powerpc64le-linux-gnu libc6-dev-ppc64el-cross \ - qemu-system-ppc + ca-certificates \ + gcc \ + gcc-powerpc64le-linux-gnu \ + libc6-dev \ + libc6-dev-ppc64el-cross \ + qemu-system-ppc \ + qemu-user ENV CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_LINKER=powerpc64le-linux-gnu-gcc \ CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_RUNNER="qemu-ppc64le -L /usr/powerpc64le-linux-gnu" \ diff --git a/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile b/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile index 40a661149f7d8..c21ce6a3d5097 100644 --- a/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile +++ b/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile @@ -1,8 +1,17 @@ FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ - gcc make libc6-dev git curl ca-certificates \ - gcc-powerpc64le-linux-gnu qemu-user xz-utils patch rsync + ca-certificates \ + curl \ + gcc \ + gcc-powerpc64le-linux-gnu \ + git \ + libc6-dev \ + make \ + patch \ + qemu-user \ + rsync \ + xz-utils COPY install-musl.sh / RUN /install-musl.sh powerpc64le diff --git a/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile b/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile index 43138af5da234..1750f8fd0f70e 100644 --- a/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile +++ b/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile @@ -1,9 +1,14 @@ FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ - gcc libc6-dev qemu-user ca-certificates \ - gcc-riscv64-linux-gnu libc6-dev-riscv64-cross \ - qemu-system-riscv64 linux-headers-generic + ca-certificates \ + gcc \ + gcc-riscv64-linux-gnu \ + libc6-dev \ + libc6-dev-riscv64-cross \ + linux-headers-generic \ + qemu-system-riscv64 \ + qemu-user ENV CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_LINKER=riscv64-linux-gnu-gcc \ CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_RUNNER="qemu-riscv64 -L /usr/riscv64-linux-gnu" \ diff --git a/ci/docker/s390x-unknown-linux-gnu/Dockerfile b/ci/docker/s390x-unknown-linux-gnu/Dockerfile index aa3490228c4db..4e0e3e7d514f9 100644 --- a/ci/docker/s390x-unknown-linux-gnu/Dockerfile +++ b/ci/docker/s390x-unknown-linux-gnu/Dockerfile @@ -1,11 +1,14 @@ FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ - curl ca-certificates \ - gcc libc6-dev \ - gcc-s390x-linux-gnu libc6-dev-s390x-cross \ - qemu-system-s390x \ - cpio + ca-certificates \ + cpio \ + curl \ + gcc \ + gcc-s390x-linux-gnu \ + libc6-dev \ + libc6-dev-s390x-cross \ + qemu-system-s390x COPY linux-s390x.sh / RUN /linux-s390x.sh diff --git a/ci/docker/s390x-unknown-linux-musl/Dockerfile b/ci/docker/s390x-unknown-linux-musl/Dockerfile index 0dfad20fb7a1d..58133e216c840 100644 --- a/ci/docker/s390x-unknown-linux-musl/Dockerfile +++ b/ci/docker/s390x-unknown-linux-musl/Dockerfile @@ -1,11 +1,14 @@ FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ - curl ca-certificates \ - gcc \ - gcc-s390x-linux-gnu \ - qemu-user \ - xz-utils patch rsync + curl \ + ca-certificates \ + gcc \ + gcc-s390x-linux-gnu \ + qemu-user \ + xz-utils \ + patch \ + rsync COPY install-musl.sh / RUN /install-musl.sh s390x diff --git a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile index c55d57105a114..67889b139488d 100644 --- a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile @@ -1,11 +1,20 @@ FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ - curl ca-certificates \ - gcc libc6-dev \ - gcc-sparc64-linux-gnu libc6-dev-sparc64-cross \ - qemu-system-sparc64 openbios-sparc seabios ipxe-qemu \ - p7zip-full cpio linux-libc-dev-sparc64-cross qemu-user + ca-certificates \ + cpio \ + curl \ + gcc \ + gcc-sparc64-linux-gnu \ + ipxe-qemu \ + libc6-dev \ + libc6-dev-sparc64-cross \ + linux-libc-dev-sparc64-cross \ + openbios-sparc \ + p7zip-full \ + qemu-system-sparc64 \ + qemu-user \ + seabios ENV CARGO_TARGET_SPARC64_UNKNOWN_LINUX_GNU_LINKER=sparc64-linux-gnu-gcc \ CARGO_TARGET_SPARC64_UNKNOWN_LINUX_GNU_RUNNER="qemu-sparc64 -L /usr/sparc64-linux-gnu" \ diff --git a/ci/docker/wasm32-unknown-emscripten/Dockerfile b/ci/docker/wasm32-unknown-emscripten/Dockerfile index 969a0ffca0be3..e068ad59f94c2 100644 --- a/ci/docker/wasm32-unknown-emscripten/Dockerfile +++ b/ci/docker/wasm32-unknown-emscripten/Dockerfile @@ -4,24 +4,23 @@ FROM ubuntu:25.04 ENV DEBIAN_FRONTEND=noninteractive ENV TZ=America/New_York -RUN apt-get update -RUN apt-get install -y --no-install-recommends tzdata -RUN apt-get install -y --no-install-recommends \ +RUN apt-get update && apt-get install -y --no-install-recommends \ + bzip2 \ ca-certificates \ - g++ \ - make \ - file \ + cmake \ curl \ + file \ + g++ \ gcc \ + gdb \ git \ libc6-dev \ libxml2 \ + make \ python3 \ - cmake \ + tzdata \ sudo \ - gdb \ - xz-utils \ - bzip2 + xz-utils RUN ln -s /usr/bin/python3 /usr/bin/python & \ ln -s /usr/bin/pip3 /usr/bin/pip diff --git a/ci/docker/x86_64-linux-android/Dockerfile b/ci/docker/x86_64-linux-android/Dockerfile index 950c2a9fdc612..76b80a894b2bb 100644 --- a/ci/docker/x86_64-linux-android/Dockerfile +++ b/ci/docker/x86_64-linux-android/Dockerfile @@ -1,13 +1,12 @@ FROM ubuntu:25.04 -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - ca-certificates \ - wget \ - gcc \ - libc-dev \ - python3 \ - unzip +RUN apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates \ + gcc \ + libc-dev \ + python3 \ + unzip \ + wget WORKDIR /android/ ENV ANDROID_ARCH=x86_64 diff --git a/ci/docker/x86_64-unknown-linux-gnu/Dockerfile b/ci/docker/x86_64-unknown-linux-gnu/Dockerfile index 3e94948095024..6ebf7bdcfc8de 100644 --- a/ci/docker/x86_64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-gnu/Dockerfile @@ -1,8 +1,11 @@ FROM ubuntu:25.04 -RUN apt-get update -RUN apt-get install -y --no-install-recommends \ - gcc libc6-dev ca-certificates linux-headers-generic +RUN apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates \ + g++ \ + gcc \ + libc6-dev \ + linux-headers-generic RUN apt search linux-headers RUN ls /usr/src diff --git a/ci/docker/x86_64-unknown-linux-gnux32/Dockerfile b/ci/docker/x86_64-unknown-linux-gnux32/Dockerfile index 92a92b1dfe98d..0d5cdd7daafb0 100644 --- a/ci/docker/x86_64-unknown-linux-gnux32/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-gnux32/Dockerfile @@ -1,6 +1,8 @@ FROM ubuntu:25.04 -RUN apt-get update -RUN apt-get install -y --no-install-recommends \ - gcc-multilib libc6-dev ca-certificates +RUN apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates \ + gcc-multilib \ + libc6-dev + ENV PATH=$PATH:/rust/bin diff --git a/ci/docker/x86_64-unknown-linux-musl/Dockerfile b/ci/docker/x86_64-unknown-linux-musl/Dockerfile index 194a6e7847f55..5b524c31eff79 100644 --- a/ci/docker/x86_64-unknown-linux-musl/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-musl/Dockerfile @@ -1,9 +1,15 @@ FROM ubuntu:25.04 -RUN apt-get update -RUN apt-get install -y --no-install-recommends \ - gcc make libc6-dev git curl ca-certificates \ - xz-utils patch rsync +RUN apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates \ + curl \ + gcc \ + git \ + libc6-dev \ + make \ + patch \ + rsync \ + xz-utils COPY install-musl.sh / RUN /install-musl.sh x86_64 From 28a95635a4f719521b3f8c04bccf826aae4b77b0 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 29 Oct 2025 02:28:57 -0500 Subject: [PATCH 0953/1228] ci: Remove unused dependency installs `linux-headers-generic` isn't needed, sparc no longer needs the dependencies to prepare for using qemu-system, and g++ isn't needed for platforms that have a C-only libc. (backport ) (cherry picked from commit 584c1d348ca24982601568f8f46c550c0d44abbd) --- ci/docker/loongarch64-unknown-linux-gnu/Dockerfile | 1 - ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile | 1 - ci/docker/sparc64-unknown-linux-gnu/Dockerfile | 9 +-------- ci/docker/x86_64-unknown-linux-gnu/Dockerfile | 4 +--- 4 files changed, 2 insertions(+), 13 deletions(-) diff --git a/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile b/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile index 359a40b5f33d6..ab13f33f1187d 100644 --- a/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile @@ -6,7 +6,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ gcc-14-loongarch64-linux-gnu \ libc6-dev \ libc6-dev-loong64-cross \ - linux-headers-generic \ qemu-user ENV CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_GNU_LINKER=loongarch64-linux-gnu-gcc-14 \ diff --git a/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile b/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile index 1750f8fd0f70e..10395b72406b0 100644 --- a/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile +++ b/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile @@ -6,7 +6,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ gcc-riscv64-linux-gnu \ libc6-dev \ libc6-dev-riscv64-cross \ - linux-headers-generic \ qemu-system-riscv64 \ qemu-user diff --git a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile index 67889b139488d..728586f119545 100644 --- a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile @@ -2,19 +2,12 @@ FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ - cpio \ - curl \ gcc \ gcc-sparc64-linux-gnu \ - ipxe-qemu \ libc6-dev \ libc6-dev-sparc64-cross \ - linux-libc-dev-sparc64-cross \ - openbios-sparc \ - p7zip-full \ qemu-system-sparc64 \ - qemu-user \ - seabios + qemu-user ENV CARGO_TARGET_SPARC64_UNKNOWN_LINUX_GNU_LINKER=sparc64-linux-gnu-gcc \ CARGO_TARGET_SPARC64_UNKNOWN_LINUX_GNU_RUNNER="qemu-sparc64 -L /usr/sparc64-linux-gnu" \ diff --git a/ci/docker/x86_64-unknown-linux-gnu/Dockerfile b/ci/docker/x86_64-unknown-linux-gnu/Dockerfile index 6ebf7bdcfc8de..ed9734ca2b6f8 100644 --- a/ci/docker/x86_64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-gnu/Dockerfile @@ -2,10 +2,8 @@ FROM ubuntu:25.04 RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ - g++ \ gcc \ - libc6-dev \ - linux-headers-generic + libc6-dev RUN apt search linux-headers RUN ls /usr/src From 9db13cf1b83f0760866693c6badf32dd513e7015 Mon Sep 17 00:00:00 2001 From: Bhavya Gautam Date: Wed, 15 Oct 2025 08:44:45 +0000 Subject: [PATCH 0954/1228] Adding defines and functions required for vxworks Co-authored-by: Immad Mir (backport ) (cherry picked from commit 2bee2f363b53935c9f1432ad62a582e9cb7fcb10) --- build.rs | 19 + libc-test/build.rs | 58 ++- libc-test/semver/vxworks.txt | 817 +++++++++++++++++++++++++++++++++++ src/vxworks/mod.rs | 426 +++++++++++++++++- 4 files changed, 1307 insertions(+), 13 deletions(-) create mode 100644 libc-test/semver/vxworks.txt diff --git a/build.rs b/build.rs index 0d1cef6440570..e41c7aa21cd3a 100644 --- a/build.rs +++ b/build.rs @@ -21,6 +21,7 @@ const ALLOWED_CFGS: &[&str] = &[ // Corresponds to `__USE_TIME_BITS64` in UAPI "linux_time_bits64", "musl_v1_2_3", + "vxworks_lt_25_09", ]; // Extra values to allow for check-cfg. @@ -85,6 +86,12 @@ fn main() { _ => (), } + match vxworks_version_code() { + Some(v) if (v < (25, 9)) => set_cfg("vxworks_lt_25_09"), + // VxWorks version >= 25.09 + _ => (), + } + let musl_v1_2_3 = env::var("RUST_LIBC_UNSTABLE_MUSL_V1_2_3").is_ok(); println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_MUSL_V1_2_3"); // loongarch64 and ohos have already updated @@ -274,6 +281,18 @@ fn emcc_version_code() -> Option { Some(major * 10000 + minor * 100 + patch) } +fn vxworks_version_code() -> Option<(u32, u32)> { + // Retrieve the VxWorks release version from the environment variable set by the VxWorks build environment + let version = env::var("WIND_RELEASE_ID").ok()?; + + let mut pieces = version.trim().split(['.']); + + let major: u32 = pieces.next().and_then(|x| x.parse().ok()).unwrap_or(0); + let minor: u32 = pieces.next().and_then(|x| x.parse().ok()).unwrap_or(0); + + Some((major, minor)) +} + fn set_cfg(cfg: &str) { assert!( ALLOWED_CFGS.contains(&cfg), diff --git a/libc-test/build.rs b/libc-test/build.rs index fb8b08f95b147..c31fa7e3fb5df 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -106,7 +106,7 @@ fn do_semver() { // maintain a file for Android. // NOTE: AIX doesn't include the unix file because there are definitions // missing on AIX. It is easier to maintain a file for AIX. - if family != os && !matches!(os.as_str(), "android" | "aix") { + if family != os && !matches!(os.as_str(), "android" | "aix") && os != "vxworks" { process_semver_file(&mut output, &mut semver_root, &family); } // We don't do semver for unknown targets. @@ -3477,13 +3477,33 @@ fn test_neutrino(target: &str) { ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } +fn which_vxworks() -> Option<(u32, u32)> { + let version = env::var("WIND_RELEASE_ID").ok()?; // When in VxWorks setup, WIND_RELEASE_ID is + // always set as the version of the release. + + let mut pieces = version.trim().split(['.']); + + let major: u32 = pieces.next().and_then(|x| x.parse().ok()).unwrap_or(0); + let minor: u32 = pieces.next().and_then(|x| x.parse().ok()).unwrap_or(0); + + Some((major, minor)) +} + fn test_vxworks(target: &str) { assert!(target.contains("vxworks")); let mut cfg = ctest_cfg(); + + let vxworks_ver = which_vxworks(); + + if vxworks_ver < Some((25, 9)) { + cfg.cfg("vxworks_lt_25_09", None); + } + headers!( cfg, "vxWorks.h", + "semLibCommon.h", "yvals.h", "nfs/nfsCommon.h", "rtpLibCommon.h", @@ -3500,13 +3520,11 @@ fn test_vxworks(target: &str) { "elf.h", "fcntl.h", "grp.h", - "sys/poll.h", "ifaddrs.h", "langinfo.h", "limits.h", "link.h", "locale.h", - "sys/stat.h", "netdb.h", "pthread.h", "pwd.h", @@ -3518,6 +3536,9 @@ fn test_vxworks(target: &str) { "stdio.h", "stdlib.h", "string.h", + "sys/select.h", + "sys/stat.h", + "sys/poll.h", "sys/file.h", "sys/ioctl.h", "sys/socket.h", @@ -3528,7 +3549,14 @@ fn test_vxworks(target: &str) { "sys/un.h", "sys/utsname.h", "sys/wait.h", + "sys/ttycom.h", + "sys/utsname.h", + "sys/resource.h", + "sys/mman.h", "netinet/tcp.h", + "netinet/udp.h", + "netinet/in.h", + "netinet6/in6.h", "syslog.h", "termios.h", "time.h", @@ -3537,16 +3565,22 @@ fn test_vxworks(target: &str) { "utime.h", "wchar.h", "errno.h", - "sys/mman.h", "pathLib.h", "mqueue.h", + "fnmatch.h", + "sioLibCommon.h", + "net/if.h", ); // FIXME(vxworks) cfg.skip_const(move |constant| match constant.ident() { // sighandler_t weirdness "SIG_DFL" | "SIG_ERR" | "SIG_IGN" - // This is not defined in vxWorks - | "RTLD_DEFAULT" => true, + // These are not defined in VxWorks + | "RTLD_DEFAULT" | "PRIO_PROCESS" + // Sticky bits not supported + | "S_ISVTX" + // The following are obsolete for VxWorks + | "SIGIO" | "SIGWINCH" | "SIGLOST" => true, _ => false, }); // FIXME(vxworks) @@ -3557,7 +3591,12 @@ fn test_vxworks(target: &str) { cfg.skip_struct_field_type( move |struct_, field| match (struct_.ident(), field.ident()) { - ("siginfo_t", "si_value") | ("stat", "st_size") | ("sigaction", "sa_u") => true, + ("siginfo_t", "si_value") + | ("stat", "st_size") + // sighandler_t type is super weird + | ("sigaction", "sa_sigaction") + // sa_u_t type is not defined in vxworks + | ("sigaction", "sa_u") => true, _ => false, }, ); @@ -3576,11 +3615,16 @@ fn test_vxworks(target: &str) { "sigqueue" | "_sigqueue" // sighandler_t | "signal" + // This is used a realpath and not _realpath + | "_realpath" // not used in static linking by default | "dlerror" => true, _ => false, }); + // Not defined in vxworks. Just a crate specific union type. + cfg.skip_union(move |u| u.ident() == "sa_u_t"); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } diff --git a/libc-test/semver/vxworks.txt b/libc-test/semver/vxworks.txt new file mode 100644 index 0000000000000..bb5f32ccc608f --- /dev/null +++ b/libc-test/semver/vxworks.txt @@ -0,0 +1,817 @@ +AF_INET +AF_INET6 +AF_UNIX +AF_UNSPEC +AT_FDCWD +AT_REMOVEDIR +AT_SYMLINK_FOLLOW +AT_SYMLINK_NOFOLLOW +B0 +B110 +B115200 +B1200 +B134 +B150 +B1800 +B19200 +B200 +B230400 +B2400 +B300 +B38400 +B4800 +B50 +B57600 +B600 +B75 +B9600 +BRKINT +CLOCAL +CLOCK_MONOTONIC +CLOCK_REALTIME +CREAD +CS5 +CS6 +CS7 +CS8 +CSIZE +CSTOPB +DIR +DT_BLK +DT_CHR +DT_DIR +DT_FIFO +DT_LNK +DT_REG +DT_SOCK +Dl_info +E2BIG +EACCES +EADDRINUSE +EADDRNOTAVAIL +EAFNOSUPPORT +EAGAIN +EAI_SYSTEM +EALREADY +EBADF +EBADMSG +EBUSY +ECANCELED +ECHILD +ECHO +ECHOE +ECHOK +ECHONL +ECONNABORTED +ECONNREFUSED +ECONNRESET +EDEADLK +EDESTADDRREQ +EDOM +EDQUOT +EEXIST +EFAULT +EFBIG +EHOSTDOWN +EHOSTUNREACH +EIDRM +EILSEQ +EINPROGRESS +EINTR +EINVAL +EIO +EISCONN +EISDIR +ELOOP +EMFILE +EMLINK +EMSGSIZE +ENAMETOOLONG +ENETDOWN +ENETRESET +ENETUNREACH +ENFILE +ENOBUFS +ENODEV +ENOENT +ENOEXEC +ENOLCK +ENOMEM +ENOMSG +ENOPROTOOPT +ENOSPC +ENOSYS +ENOTCONN +ENOTDIR +ENOTEMPTY +ENOTSOCK +ENOTTY +ENXIO +EOPNOTSUPP +EOVERFLOW +EPERM +EPFNOSUPPORT +EPIPE +EPROTO +EPROTONOSUPPORT +EPROTOTYPE +ERANGE +EROFS +ESHUTDOWN +ESPIPE +ESRCH +ESTALE +ETIMEDOUT +ETXTBSY +EWOULDBLOCK +EXDEV +EXIT_FAILURE +EXIT_SUCCESS +FD_CLOEXEC +FILE +FIONBIO +FNM_CASEFOLD +FNM_NOESCAPE +FNM_NOMATCH +FNM_PATHNAME +FNM_PERIOD +F_DUPFD +F_DUPFD_CLOEXEC +F_GETFD +F_GETFL +F_GETLK +F_OK +F_SETFD +F_SETFL +F_SETLK +F_SETLKW +HUPCL +ICANON +ICRNL +IEXTEN +IFNAMSIZ +IF_NAMESIZE +IGNBRK +IGNCR +IGNPAR +IN6ADDR_ANY_INIT +IN6ADDR_LOOPBACK_INIT +INADDR_ANY +INADDR_BROADCAST +INADDR_LOOPBACK +INADDR_NONE +INLCR +INPCK +INT_MAX +INT_MIN +IPPROTO_ICMP +IPPROTO_ICMPV6 +IPPROTO_IP +IPPROTO_IPV6 +IPPROTO_TCP +IPPROTO_UDP +IPV6_MULTICAST_HOPS +IPV6_MULTICAST_IF +IPV6_MULTICAST_LOOP +IPV6_UNICAST_HOPS +IPV6_V6ONLY +IP_ADD_MEMBERSHIP +IP_DROP_MEMBERSHIP +IP_MULTICAST_IF +IP_MULTICAST_LOOP +IP_MULTICAST_TTL +IP_TTL +ISIG +ISTRIP +IXOFF +IXON +LOG_ALERT +LOG_AUTH +LOG_CONS +LOG_CRIT +LOG_DAEMON +LOG_DEBUG +LOG_EMERG +LOG_ERR +LOG_FACMASK +LOG_INFO +LOG_KERN +LOG_LOCAL0 +LOG_LOCAL1 +LOG_LOCAL2 +LOG_LOCAL3 +LOG_LOCAL4 +LOG_LOCAL5 +LOG_LOCAL6 +LOG_LOCAL7 +LOG_LPR +LOG_MAIL +LOG_NDELAY +LOG_NEWS +LOG_NOTICE +LOG_NOWAIT +LOG_ODELAY +LOG_PID +LOG_PRIMASK +LOG_SYSLOG +LOG_USER +LOG_UUCP +LOG_WARNING +MAP_ANON +MAP_ANONYMOUS +MAP_FAILED +MAP_FIXED +MAP_PRIVATE +MAP_SHARED +MSG_CTRUNC +MSG_DONTROUTE +MSG_EOR +MSG_OOB +MSG_PEEK +MSG_TRUNC +MSG_WAITALL +MS_ASYNC +MS_INVALIDATE +MS_SYNC +NCCS +NI_MAXHOST +NOFLSH +OCRNL +ONLCR +OPOST +O_ACCMODE +O_APPEND +O_CLOEXEC +O_CREAT +O_EXCL +O_NONBLOCK +O_RDONLY +O_RDWR +O_TRUNC +O_WRONLY +PARENB +PARMRK +PARODD +PATH_MAX +PF_INET +PF_INET6 +PF_UNIX +PF_UNSPEC +POLLERR +POLLHUP +POLLIN +POLLNVAL +POLLOUT +POLLPRI +PROT_EXEC +PROT_NONE +PROT_READ +PROT_WRITE +PTHREAD_COND_INITIALIZER +PTHREAD_MUTEX_INITIALIZER +PTHREAD_MUTEX_NORMAL +PTHREAD_MUTEX_RECURSIVE +PTHREAD_RWLOCK_INITIALIZER +RTLD_DEFAULT +RTLD_GLOBAL +RTLD_LAZY +RTLD_LOCAL +RTLD_NOW +R_OK +SA_NOCLDSTOP +SA_NOCLDWAIT +SA_NODEFER +SA_ONSTACK +SA_RESETHAND +SA_RESTART +SA_SIGINFO +SEEK_CUR +SEEK_END +SEEK_SET +SHUT_RD +SHUT_RDWR +SHUT_WR +SIGABRT +SIGALRM +SIGBUS +SIGCHLD +SIGCONT +SIGFPE +SIGHUP +SIGILL +SIGINT +SIGKILL +SIGPIPE +SIGPROF +SIGQUIT +SIGSEGV +SIGSTOP +SIGSYS +SIGTERM +SIGTRAP +SIGTSTP +SIGTTIN +SIGTTOU +SIGURG +SIGUSR1 +SIGUSR2 +SIGVTALRM +SIGWINCH +SIGXCPU +SIGXFSZ +SIG_BLOCK +SIG_DFL +SIG_ERR +SIG_IGN +SIG_SETMASK +SIG_UNBLOCK +SOCK_DGRAM +SOCK_SEQPACKET +SOCK_STREAM +SOL_SOCKET +SO_ACCEPTCONN +SO_BROADCAST +SO_DEBUG +SO_DONTROUTE +SO_ERROR +SO_KEEPALIVE +SO_LINGER +SO_OOBINLINE +SO_RCVBUF +SO_RCVLOWAT +SO_RCVTIMEO +SO_REUSEADDR +SO_SNDBUF +SO_SNDLOWAT +SO_SNDTIMEO +SO_TYPE +STDERR_FILENO +STDIN_FILENO +STDOUT_FILENO +S_IFBLK +S_IFCHR +S_IFDIR +S_IFIFO +S_IFLNK +S_IFMT +S_IFREG +S_IFSOCK +S_IRGRP +S_IROTH +S_IRUSR +S_IRWXG +S_IRWXO +S_IRWXU +S_ISGID +S_ISUID +S_ISVTX +S_IWGRP +S_IWOTH +S_IWUSR +S_IXGRP +S_IXOTH +S_IXUSR +TCIFLUSH +TCP_NODELAY +TCSADRAIN +TCSAFLUSH +TCSANOW +TIOCGWINSZ +TIOCSWINSZ +VEOF +VERASE +VINTR +VKILL +VMIN +VQUIT +VTIME +WCONTINUED +WEXITSTATUS +WIFCONTINUED +WIFEXITED +WIFSIGNALED +WIFSTOPPED +WNOHANG +WSTOPSIG +WTERMSIG +WUNTRACED +W_OK +X_OK +_PC_CHOWN_RESTRICTED +_PC_LINK_MAX +_PC_MAX_CANON +_PC_MAX_INPUT +_PC_NAME_MAX +_PC_NO_TRUNC +_PC_PATH_MAX +_PC_PIPE_BUF +_PC_VDISABLE +_SC_ARG_MAX +_SC_CHILD_MAX +_SC_CLK_TCK +_SC_HOST_NAME_MAX +_SC_NGROUPS_MAX +_SC_OPEN_MAX +_SC_PAGESIZE +_SC_PAGE_SIZE +_SC_STREAM_MAX +_SC_SYMLOOP_MAX +_SC_TTY_NAME_MAX +_SC_TZNAME_MAX +_SC_VERSION +_exit +abort +accept +access +addrinfo +alarm +aligned_alloc +atexit +atof +atoi +atol +atoll +bind +blkcnt_t +blksize_t +c_char +c_double +c_float +c_int +c_long +c_longlong +c_schar +c_short +c_uchar +c_uint +c_ulong +c_ulonglong +c_ushort +c_void +calloc +cc_t +cfgetospeed +cfmakeraw +cfsetispeed +cfsetospeed +chdir +chmod +chown +clock_gettime +clock_t +clockid_t +close +closedir +closelog +confstr +connect +creat +dev_t +dirent +dladdr +dlclose +dlerror +dlopen +dlsym +dup +dup2 +exit +fchmod +fchmodat +fchown +fchownat +fclose +fcntl +fdopen +feof +ferror +fflush +fgetc +fgetpos +fgets +fileno +flock +fnmatch +fopen +fpathconf +fpos_t +fprintf +fputc +fputs +fread +free +freeaddrinfo +freopen +fscanf +fseek +fseeko +fsetpos +fstat +fsync +ftell +ftello +ftruncate +futimens +fwrite +gai_strerror +getaddrinfo +getchar +getchar_unlocked +getcwd +getegid +getenv +geteuid +getgid +getgroups +gethostname +getlogin +getopt +getpeername +getpid +getppid +getprotobyname +getprotobynumber +getservbyname +getsockname +getsockopt +gettimeofday +getuid +gid_t +gmtime +gmtime_r +group +hostent +in6_addr +in_addr +in_addr_t +ino_t +int16_t +int32_t +int64_t +int8_t +intmax_t +intptr_t +ioctl +iovec +ip_mreq +ipv6_mreq +isalnum +isalpha +isatty +isblank +iscntrl +isdigit +isgraph +islower +isprint +ispunct +isspace +isupper +isxdigit +kill +lconv +linger +link +linkat +listen +localtime +localtime_r +lseek +lstat +malloc +memccpy +memchr +memcmp +memcpy +memmove +memset +mkdir +mkdtemp +mkfifo +mkstemp +mktime +mlock +mlockall +mmap +mode_t +mprotect +msync +munlock +munlockall +munmap +nanosleep +nfds_t +nlink_t +off_t +open +opendir +openlog +pathconf +pclose +perror +pid_t +pipe +poll +pollfd +posix_memalign +pread +printf +protoent +pthread_attr_destroy +pthread_attr_getstacksize +pthread_attr_init +pthread_attr_setdetachstate +pthread_attr_setstacksize +pthread_attr_t +pthread_cond_broadcast +pthread_cond_destroy +pthread_cond_init +pthread_cond_signal +pthread_cond_t +pthread_cond_timedwait +pthread_cond_wait +pthread_condattr_destroy +pthread_condattr_init +pthread_condattr_t +pthread_create +pthread_detach +pthread_equal +pthread_exit +pthread_getspecific +pthread_join +pthread_key_create +pthread_key_delete +pthread_key_t +pthread_mutex_destroy +pthread_mutex_init +pthread_mutex_lock +pthread_mutex_t +pthread_mutex_trylock +pthread_mutex_unlock +pthread_mutexattr_destroy +pthread_mutexattr_init +pthread_mutexattr_settype +pthread_mutexattr_t +pthread_rwlock_destroy +pthread_rwlock_init +pthread_rwlock_rdlock +pthread_rwlock_t +pthread_rwlock_tryrdlock +pthread_rwlock_trywrlock +pthread_rwlock_unlock +pthread_rwlock_wrlock +pthread_rwlockattr_destroy +pthread_rwlockattr_init +pthread_rwlockattr_t +pthread_self +pthread_setspecific +pthread_t +ptrdiff_t +putchar +putchar_unlocked +putenv +puts +pwrite +raise +read +readdir +readlink +readv +realloc +realpath +recv +recvfrom +remove +rename +rewind +rewinddir +rlim_t +rlimit +rmdir +rusage +sa_family_t +scanf +sched_yield +send +sendto +servent +setbuf +setegid +setenv +seteuid +setgid +setlocale +setlogmask +setpgid +setsockopt +setuid +setvbuf +shm_open +shm_unlink +shutdown +sigaction +sigaddset +sigdelset +sigemptyset +sigfillset +sighandler_t +sigismember +signal +sigpending +sigprocmask +sigset_t +sigval +size_t +sleep +snprintf +sockaddr +sockaddr_in +sockaddr_in6 +sockaddr_storage +sockaddr_un +socket +socklen_t +speed_t +sprintf +sscanf +ssize_t +stat +strcat +strchr +strcmp +strcoll +strcpy +strcspn +strdup +strerror +strerror_r +strlen +strncat +strncmp +strncpy +strnlen +strpbrk +strrchr +strspn +strstr +strtod +strtof +strtok +strtol +strtoll +strtoul +strtoull +strxfrm +suseconds_t +symlink +symlinkat +sysconf +syslog +system +tcflag_t +tcflush +tcgetattr +tcsendbreak +tcsetattr +termios +time +time_t +timegm +times +timespec +timeval +tm +tmpfile +tmpnam +tms +tolower +toupper +ttyname +uid_t +uint16_t +uint32_t +uint64_t +uint8_t +uintmax_t +uintptr_t +umask +uname +ungetc +unlink +unlinkat +unsetenv +usleep +utimbuf +utime +utimensat +utimes +utsname +wait +waitpid +wchar_t +wcslen +wcstombs +winsize +wmemchr +write +writev diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index ecaba54b1cdcf..fcb74e26135bd 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -16,6 +16,10 @@ pub type intptr_t = isize; pub type ptrdiff_t = isize; pub type size_t = crate::uintptr_t; pub type ssize_t = intptr_t; +pub type speed_t = c_uint; +pub type tcflag_t = c_uint; +pub type clock_t = c_long; +pub type cc_t = c_uchar; pub type pid_t = c_int; pub type in_addr_t = u32; @@ -215,8 +219,17 @@ s! { pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, pub st_size: off_t, + #[cfg(not(vxworks_lt_25_09))] + pub st_atim: timespec, + #[cfg(vxworks_lt_25_09)] pub st_atime: crate::time_t, + #[cfg(not(vxworks_lt_25_09))] + pub st_mtim: timespec, + #[cfg(vxworks_lt_25_09)] pub st_mtime: crate::time_t, + #[cfg(not(vxworks_lt_25_09))] + pub st_ctim: timespec, + #[cfg(vxworks_lt_25_09)] pub st_ctime: crate::time_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, @@ -235,6 +248,15 @@ s! { // b_struct__Sched_param.h pub struct sched_param { + pub sched_priority: c_int, /* scheduling priority */ + pub sched_ss_low_priority: c_int, /* low scheduling priority */ + pub sched_ss_repl_period: crate::timespec, /* replenishment period */ + pub sched_ss_init_budget: crate::timespec, /* initial budget */ + pub sched_ss_max_repl: c_int, /* max pending replenishment */ + } + + // b_struct__Sched_param.h + pub struct _Sched_param { pub sched_priority: c_int, /* scheduling priority */ pub sched_ss_low_priority: c_int, /* low scheduling priority */ pub sched_ss_repl_period: crate::_Timespec, /* replenishment period */ @@ -254,13 +276,16 @@ s! { pub threadAttrSchedpolicy: c_int, pub threadAttrName: *mut c_char, pub threadAttrOptions: c_int, - pub threadAttrSchedparam: crate::sched_param, + pub threadAttrSchedparam: crate::_Sched_param, } // signal.h pub struct sigaction { + #[cfg(vxworks_lt_25_09)] pub sa_u: crate::sa_u_t, + #[cfg(not(vxworks_lt_25_09))] + pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, pub sa_flags: c_int, } @@ -325,6 +350,20 @@ s! { pub tm_isdst: c_int, } + // sys/times.h + pub struct tms { + pub tms_utime: crate::clock_t, + pub tms_stime: crate::clock_t, + pub tms_cutime: crate::clock_t, + pub tms_cstime: crate::clock_t, + } + + // utime.h + pub struct utimbuf { + pub actime: time_t, + pub modtime: time_t, + } + // in.h pub struct in_addr { pub s_addr: in_addr_t, @@ -360,6 +399,30 @@ s! { pub ai_next: *mut crate::addrinfo, } + // netdb.h + pub struct servent { + pub s_name: *mut c_char, + pub s_aliases: *mut *mut c_char, + pub s_port: c_int, + pub s_proto: *mut c_char, + } + + // netdb.h + pub struct protoent { + pub p_name: *mut c_char, + pub p_aliases: *mut *mut c_char, + pub p_proto: c_int, + } + + // netdb.h + pub struct hostent { + pub h_name: *mut c_char, + pub h_aliases: *mut *mut c_char, + pub h_addrtype: c_int, + pub h_length: c_int, + pub h_addr_list: *mut *mut c_char, + } + // in.h pub struct sockaddr_in { pub sin_len: u8, @@ -392,6 +455,98 @@ s! { pub mq_flags: c_long, pub mq_curmsgs: c_long, } + + pub struct winsize { + pub ws_row: c_ushort, + pub ws_col: c_ushort, + pub ws_xpixel: c_ushort, + pub ws_ypixel: c_ushort, + } + + pub struct termios { + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_cc: [crate::cc_t; crate::NCCS], + pub c_ispeed: crate::speed_t, + pub c_ospeed: crate::speed_t, + } + + pub struct rusage { + pub ru_utime: timeval, + pub ru_stime: timeval, + pub ru_maxrss: c_long, + pub ru_ixrss: c_long, + pub ru_idrss: c_long, + pub ru_isrss: c_long, + pub ru_minflt: c_long, + pub ru_majflt: c_long, + pub ru_nswap: c_long, + pub ru_inblock: c_long, + pub ru_oublock: c_long, + pub ru_msgsnd: c_long, + pub ru_msgrcv: c_long, + pub ru_nsignals: c_long, + pub ru_nvcsw: c_long, + pub ru_nivcsw: c_long, + } + + pub struct lconv { + pub currency_symbol: *mut c_char, + pub int_curr_symbol: *mut c_char, + pub mon_decimal_point: *mut c_char, + pub mon_grouping: *mut c_char, + pub mon_thousands_sep: *mut c_char, + pub negative_sign: *mut c_char, + pub positive_sign: *mut c_char, + pub frac_digits: c_char, + pub n_cs_precedes: c_char, + pub n_sep_by_space: c_char, + pub n_sign_posn: c_char, + pub p_cs_precedes: c_char, + pub p_sep_by_space: c_char, + pub p_sign_posn: c_char, + pub int_frac_digits: c_char, + pub int_n_cs_precedes: c_char, + pub int_n_sep_by_space: c_char, + pub int_n_sign_posn: c_char, + pub int_p_cs_precedes: c_char, + pub int_p_sep_by_space: c_char, + pub int_p_sign_posn: c_char, + pub decimal_point: *mut c_char, + pub grouping: *mut c_char, + pub thousands_sep: *mut c_char, + pub _Frac_grouping: *mut c_char, + pub _Frac_sep: *mut c_char, + pub _False: *mut c_char, + pub _True: *mut c_char, + + pub _No: *mut c_char, + pub _Yes: *mut c_char, + } + + // grp.h + pub struct group { + pub gr_name: *mut c_char, + pub gr_passwd: *mut c_char, + pub gr_gid: c_int, + pub gr_mem: *mut *mut c_char, + } + + pub struct utsname { + pub sysname: [c_char; 80], + pub nodename: [c_char; 256], + pub release: [c_char; 80], + pub version: [c_char; 256], + pub machine: [c_char; 256], + pub endian: [c_char; 80], + pub kernelversion: [c_char; 80], + pub releaseversion: [c_char; 80], + pub processor: [c_char; 80], + pub bsprevision: [c_char; 80], + pub builddate: [c_char; 80], + } } s_no_extra_traits! { @@ -496,6 +651,9 @@ pub const EAI_SERVICE: c_int = 9; pub const EAI_SOCKTYPE: c_int = 10; pub const EAI_SYSTEM: c_int = 11; +pub const INT_MAX: c_int = 0x7fffffff; +pub const INT_MIN: c_int = -INT_MAX - 1; + // FIXME(vxworks): This is not defined in vxWorks, but we have to define it here // to make the building pass for getrandom and std pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); @@ -683,12 +841,22 @@ const objErrorBase: c_int = 0x003d0000; pub const S_taskLib_NAME_NOT_FOUND: c_int = taskErrorBase + 0x0065; pub const S_taskLib_TASK_HOOK_TABLE_FULL: c_int = taskErrorBase + 0x0066; pub const S_taskLib_TASK_HOOK_NOT_FOUND: c_int = taskErrorBase + 0x0067; -pub const S_taskLib_ILLEGAL_PRIORITY: c_int = taskErrorBase + 0x0068; +pub const S_taskLib_ILLEGAL_PRIORITY: c_int = taskErrorBase + 0x006D; // FIXME(vxworks): could also be useful for TASK_DESC type pub const VX_TASK_NAME_LENGTH: c_int = 31; pub const VX_TASK_RENAME_LENGTH: c_int = 16; +pub const TCIFLUSH: c_int = 0; + +pub const VINTR: usize = 0; +pub const VQUIT: usize = 1; +pub const VERASE: usize = 2; +pub const VKILL: usize = 3; +pub const VEOF: usize = 4; +pub const VMIN: usize = 16; +pub const VTIME: usize = 17; + // semLibCommon.h pub const S_semLib_INVALID_STATE: c_int = semErrorBase + 0x0065; pub const S_semLib_INVALID_OPTION: c_int = semErrorBase + 0x0066; @@ -702,9 +870,28 @@ pub const S_objLib_OBJ_DELETED: c_int = objErrorBase + 0x0003; pub const S_objLib_OBJ_TIMEOUT: c_int = objErrorBase + 0x0004; pub const S_objLib_OBJ_NO_METHOD: c_int = objErrorBase + 0x0005; -// in.h +// netinet/in.h pub const IPPROTO_IP: c_int = 0; +pub const IPPROTO_ICMP: c_int = 1; +pub const IPPROTO_TCP: c_int = 6; pub const IPPROTO_IPV6: c_int = 41; +pub const IPPROTO_ICMPV6: c_int = 58; + +pub const INADDR_ANY: in_addr_t = 0; +pub const INADDR_LOOPBACK: in_addr_t = 2130706433; +pub const INADDR_BROADCAST: in_addr_t = 4294967295; +pub const INADDR_NONE: in_addr_t = 4294967295; + +// netinet6/in6.h +pub const IN6ADDR_LOOPBACK_INIT: in6_addr = in6_addr { + s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], +}; +pub const IN6ADDR_ANY_INIT: in6_addr = in6_addr { + s6_addr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +}; + +// udp.h +pub const IPPROTO_UDP: c_int = 17; pub const IP_TTL: c_int = 4; pub const IP_MULTICAST_IF: c_int = 9; @@ -713,6 +900,9 @@ pub const IP_MULTICAST_LOOP: c_int = 11; pub const IP_ADD_MEMBERSHIP: c_int = 12; pub const IP_DROP_MEMBERSHIP: c_int = 13; +// netdb.h +pub const NI_MAXHOST: c_int = 1025; + // in6.h pub const IPV6_V6ONLY: c_int = 1; pub const IPV6_UNICAST_HOPS: c_int = 4; @@ -813,8 +1003,12 @@ pub const MSG_COMPAT: c_int = 0x8000; pub const AF_UNSPEC: c_int = 0; pub const AF_LOCAL: c_int = 1; +pub const PF_LOCAL: c_int = AF_LOCAL; +pub const PF_UNIX: c_int = PF_LOCAL; +pub const PF_UNSPEC: c_int = AF_UNSPEC; pub const AF_UNIX: c_int = AF_LOCAL; pub const AF_INET: c_int = 2; +pub const PF_INET: c_int = AF_INET; pub const AF_NETLINK: c_int = 16; pub const AF_ROUTE: c_int = 17; pub const AF_LINK: c_int = 18; @@ -822,17 +1016,111 @@ pub const AF_PACKET: c_int = 19; pub const pseudo_AF_KEY: c_int = 27; pub const AF_KEY: c_int = pseudo_AF_KEY; pub const AF_INET6: c_int = 28; +pub const PF_INET6: c_int = AF_INET6; pub const AF_SOCKDEV: c_int = 31; pub const AF_TIPC: c_int = 33; pub const AF_MIPC: c_int = 34; pub const AF_MIPC_SAFE: c_int = 35; -pub const AF_MAX: c_int = 37; +pub const AF_MAX: c_int = 39; + +// termios.h +pub const B0: crate::speed_t = 0; +pub const B50: crate::speed_t = 50; +pub const B75: crate::speed_t = 75; +pub const B110: crate::speed_t = 110; +pub const B134: crate::speed_t = 134; +pub const B150: crate::speed_t = 150; +pub const B200: crate::speed_t = 200; +pub const B300: crate::speed_t = 300; +pub const B600: crate::speed_t = 600; +pub const B1200: crate::speed_t = 1200; +pub const B1800: crate::speed_t = 1800; +pub const B2400: crate::speed_t = 2400; +pub const B4800: crate::speed_t = 4800; +pub const B9600: crate::speed_t = 9600; +pub const B19200: crate::speed_t = 19200; +pub const B38400: crate::speed_t = 38400; +pub const B57600: crate::speed_t = 57600; +pub const B115200: crate::speed_t = 115200; +pub const B230400: crate::speed_t = 230400; + +pub const IGNBRK: crate::tcflag_t = 0x00000001; +pub const BRKINT: crate::tcflag_t = 0x00000002; +pub const IGNCR: crate::tcflag_t = 0x00000200; +pub const IGNPAR: crate::tcflag_t = 0x00000000; +pub const INPCK: crate::tcflag_t = 0x00000020; +pub const ISTRIP: crate::tcflag_t = 0x00000040; +pub const INLCR: crate::tcflag_t = 0x00000100; +pub const ISIG: crate::tcflag_t = 0x00000001; +pub const IXOFF: crate::tcflag_t = 0x00010000; +pub const IXON: crate::tcflag_t = 0x00002000; +pub const PARMRK: crate::tcflag_t = 0x00000000; +pub const NOFLSH: crate::tcflag_t = 0x00000000; +pub const NCCS: usize = 20; + +pub const OPOST: crate::tcflag_t = 0x00000001; +pub const ONLCR: crate::tcflag_t = 0x00000004; +pub const ECHO: crate::tcflag_t = 0x00000010; +pub const OCRNL: crate::tcflag_t = 0x00000010; +pub const ECHOE: crate::tcflag_t = 0x00000020; +pub const ECHOK: crate::tcflag_t = 0x00000040; +pub const ECHONL: crate::tcflag_t = 0x00000100; + +// net/if.h +pub const IFNAMSIZ: size_t = 16; +pub const IF_NAMESIZE: size_t = IFNAMSIZ; + +// sioLibCommon.h +pub const CLOCAL: crate::tcflag_t = 0x1; +pub const CREAD: crate::tcflag_t = 0x2; +pub const CS5: crate::tcflag_t = 0x0; +pub const CS6: crate::tcflag_t = 0x4; +pub const CS7: crate::tcflag_t = 0x8; +pub const CS8: crate::tcflag_t = 0xc; +pub const CSTOPB: crate::tcflag_t = 0x20; +pub const CSIZE: crate::tcflag_t = 0xc; + +pub const PARODD: crate::tcflag_t = 0x80; +pub const PARENB: crate::tcflag_t = 0x40; + +pub const DT_FIFO: c_uchar = 1; +pub const DT_CHR: c_uchar = 2; +pub const DT_DIR: c_uchar = 4; +pub const DT_BLK: c_uchar = 6; +pub const DT_REG: c_uchar = 8; +pub const DT_LNK: c_uchar = 10; +pub const DT_SOCK: c_uchar = 12; + +pub const FNM_NOMATCH: c_int = 1; +pub const FNM_NOESCAPE: c_int = 1; +pub const FNM_PATHNAME: c_int = 2; +pub const FNM_PERIOD: c_int = 4; +pub const FNM_CASEFOLD: c_int = 16; + +pub const F_OK: c_int = 0; +pub const X_OK: c_int = 1; +pub const W_OK: c_int = 2; + +pub const _PC_CHOWN_RESTRICTED: c_int = 4; +pub const _PC_LINK_MAX: c_int = 6; +pub const _PC_MAX_CANON: c_int = 7; +pub const _PC_MAX_INPUT: c_int = 8; +pub const _PC_NAME_MAX: c_int = 9; +pub const _PC_NO_TRUNC: c_int = 10; +pub const _PC_PATH_MAX: c_int = 11; +pub const _PC_PIPE_BUF: c_int = 12; +pub const _PC_VDISABLE: c_int = 20; + +pub const HUPCL: crate::tcflag_t = 0x10; pub const SHUT_RD: c_int = 0; pub const SHUT_WR: c_int = 1; pub const SHUT_RDWR: c_int = 2; -pub const IPPROTO_TCP: c_int = 6; +pub const ICANON: crate::tcflag_t = 0x00000002; +pub const ICRNL: crate::tcflag_t = 0x00000400; +pub const IEXTEN: crate::tcflag_t = 0x00000000; + pub const TCP_NODELAY: c_int = 1; pub const TCP_MAXSEG: c_int = 2; pub const TCP_NOPUSH: c_int = 3; @@ -840,6 +1128,10 @@ pub const TCP_KEEPIDLE: c_int = 4; pub const TCP_KEEPINTVL: c_int = 5; pub const TCP_KEEPCNT: c_int = 6; +pub const TCSANOW: c_int = 0; +pub const TCSADRAIN: c_int = 1; +pub const TCSAFLUSH: c_int = 2; + // ioLib.h pub const FIONREAD: c_int = 0x40040001; pub const FIOFLUSH: c_int = 2; @@ -888,6 +1180,48 @@ pub const F_SETLK: c_int = 8; pub const F_SETLKW: c_int = 9; pub const F_DUPFD_CLOEXEC: c_int = 14; +pub const LOG_EMERG: c_int = 0; +pub const LOG_ALERT: c_int = 1; +pub const LOG_CRIT: c_int = 2; +pub const LOG_ERR: c_int = 3; +pub const LOG_WARNING: c_int = 4; +pub const LOG_NOTICE: c_int = 5; +pub const LOG_INFO: c_int = 6; +pub const LOG_DEBUG: c_int = 7; + +pub const LOG_KERN: c_int = 0 << 3; +pub const LOG_USER: c_int = 1 << 3; +pub const LOG_MAIL: c_int = 2 << 3; +pub const LOG_DAEMON: c_int = 3 << 3; +pub const LOG_AUTH: c_int = 4 << 3; +pub const LOG_SYSLOG: c_int = 5 << 3; +pub const LOG_LPR: c_int = 6 << 3; +pub const LOG_NEWS: c_int = 7 << 3; +pub const LOG_UUCP: c_int = 8 << 3; +pub const LOG_LOCAL0: c_int = 16 << 3; +pub const LOG_LOCAL1: c_int = 17 << 3; +pub const LOG_LOCAL2: c_int = 18 << 3; +pub const LOG_LOCAL3: c_int = 19 << 3; +pub const LOG_LOCAL4: c_int = 20 << 3; +pub const LOG_LOCAL5: c_int = 21 << 3; +pub const LOG_LOCAL6: c_int = 22 << 3; +pub const LOG_LOCAL7: c_int = 23 << 3; + +pub const LOG_PID: c_int = 0x01; +pub const LOG_CONS: c_int = 0x02; +pub const LOG_ODELAY: c_int = 0x04; +pub const LOG_NDELAY: c_int = 0x08; +pub const LOG_NOWAIT: c_int = 0x10; + +pub const LOG_PRIMASK: c_int = 0x7; +pub const LOG_FACMASK: c_int = 0x3f8; + +// dlfcn.h +pub const RTLD_LOCAL: c_int = 0; +pub const RTLD_LAZY: c_int = 1; +pub const RTLD_NOW: c_int = 2; +pub const RTLD_GLOBAL: c_int = 256; + // signal.h pub const SIG_DFL: sighandler_t = 0 as sighandler_t; pub const SIG_IGN: sighandler_t = 1 as sighandler_t; @@ -964,6 +1298,7 @@ pub const _PARM_PATH_MAX: c_int = 1024; // WAIT STUFF pub const WNOHANG: c_int = 0x01; pub const WUNTRACED: c_int = 0x02; +pub const WCONTINUED: c_int = 0x04; const PTHREAD_MUTEXATTR_INITIALIZER: pthread_mutexattr_t = pthread_mutexattr_t { mutexAttrStatus: PTHREAD_INITIALIZED_OBJ, @@ -1021,9 +1356,22 @@ pub const VX_RTP_NAME_LENGTH: c_int = 255; pub const RTP_ID_ERROR: crate::RTP_ID = -1; // h/public/unistd.h -pub const _SC_GETPW_R_SIZE_MAX: c_int = 21; // Via unistd.h +// h/public/unistd.h +pub const R_OK: c_int = 4; +pub const _SC_ARG_MAX: c_int = 4; // Via unistd.h +pub const _SC_CHILD_MAX: c_int = 12; +pub const _SC_CLK_TCK: c_int = 13; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 21; pub const _SC_HOST_NAME_MAX: c_int = 22; +pub const _SC_NGROUPS_MAX: c_int = 36; +pub const _SC_OPEN_MAX: c_int = 37; +pub const _SC_PAGE_SIZE: c_int = 38; pub const _SC_PAGESIZE: c_int = 39; +pub const _SC_STREAM_MAX: c_int = 59; +pub const _SC_SYMLOOP_MAX: c_int = 60; +pub const _SC_TTY_NAME_MAX: c_int = 87; +pub const _SC_TZNAME_MAX: c_int = 89; +pub const _SC_VERSION: c_int = 94; pub const O_ACCMODE: c_int = 3; pub const O_CLOEXEC: c_int = 0x100000; // fcntlcom pub const O_EXCL: c_int = 0x0800; @@ -1048,8 +1396,16 @@ pub const MAP_ANONYMOUS: c_int = MAP_ANON; pub const MAP_FIXED: c_int = 0x0010; pub const MAP_CONTIG: c_int = 0x0020; +pub const MS_SYNC: c_int = 0x0001; +pub const MS_ASYNC: c_int = 0x0002; +pub const MS_INVALIDATE: c_int = 0x0004; + pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; +// sys/ttycom.h +pub const TIOCGWINSZ: c_int = 0x1740087468; +pub const TIOCSWINSZ: c_int = -0x7ff78b99; + extern_ty! { pub enum FILE {} pub enum fpos_t {} // FIXME(vxworks): fill this out with a struct @@ -1155,6 +1511,10 @@ extern "C" { pub fn system(s: *const c_char) -> c_int; pub fn getenv(s: *const c_char) -> *mut c_char; + pub fn cfgetospeed(termios: *const crate::termios) -> crate::speed_t; + pub fn cfmakeraw(termios: *mut crate::termios) -> c_int; + pub fn cfsetispeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; + pub fn cfsetospeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; pub fn strncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char; @@ -1183,8 +1543,39 @@ extern "C" { pub fn wmemchr(cx: *const wchar_t, c: wchar_t, n: size_t) -> *mut wchar_t; pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + pub fn memccpy(dest: *mut c_void, src: *const c_void, c: c_int, n: size_t) -> *mut c_void; pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; + + pub fn aligned_alloc(alignment: size_t, size: size_t) -> *mut c_void; + pub fn uname(buf: *mut crate::utsname) -> c_int; + pub fn times(buf: *mut crate::tms) -> crate::clock_t; + pub fn tcflush(fd: c_int, action: c_int) -> c_int; + pub fn pclose(stream: *mut crate::FILE) -> c_int; + pub fn mkdtemp(template: *mut c_char) -> *mut c_char; + + pub fn linkat( + olddirfd: c_int, + oldpath: *const c_char, + newdirfd: c_int, + newpath: *const c_char, + flags: c_int, + ) -> c_int; + + pub fn unlinkat(dirfd: c_int, pathname: *const c_char, flags: c_int) -> c_int; + + // netdb.h + pub fn getprotobyname(name: *const c_char) -> *mut protoent; + pub fn getprotobynumber(proto: c_int) -> *mut protoent; + pub fn getservbyname(name: *const c_char, proto: *const c_char) -> *mut servent; + + pub fn fchownat( + dirfd: c_int, + pathname: *const c_char, + owner: crate::uid_t, + group: crate::gid_t, + flags: c_int, + ) -> c_int; } extern "C" { @@ -1246,6 +1637,7 @@ extern "C" { pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut c_void) -> c_int; pub fn pthread_exit(value: *mut c_void) -> !; pub fn pthread_attr_setdetachstate(attr: *mut crate::pthread_attr_t, state: c_int) -> c_int; + pub fn pthread_equal(t1: crate::pthread_t, t2: crate::pthread_t) -> c_int; pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; @@ -1292,6 +1684,7 @@ extern "C" { pub fn usleep(secs: crate::useconds_t) -> c_int; pub fn putenv(string: *mut c_char) -> c_int; pub fn setlocale(category: c_int, locale: *const c_char) -> *mut c_char; + pub fn localeconv() -> *mut lconv; pub fn sigprocmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; pub fn sigpending(set: *mut sigset_t) -> c_int; @@ -1309,7 +1702,19 @@ extern "C" { pub fn setlogmask(maskpri: c_int) -> c_int; pub fn syslog(priority: c_int, message: *const c_char, ...); pub fn getline(lineptr: *mut *mut c_char, n: *mut size_t, stream: *mut FILE) -> ssize_t; + pub fn tcsetattr(fd: c_int, optional_actions: c_int, termios: *const crate::termios) -> c_int; + pub fn tcgetattr(fd: c_int, termios: *mut crate::termios) -> c_int; + pub fn tcsendbreak(fd: c_int, duration: c_int) -> c_int; + pub fn confstr(name: c_int, buf: *mut c_char, len: size_t) -> size_t; + pub fn fnmatch(pattern: *const c_char, name: *const c_char, flags: c_int) -> c_int; + + pub fn symlinkat(target: *const c_char, newdirfd: c_int, linkpath: *const c_char) -> c_int; + + // sys/stat.h + pub fn fchmodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, flags: c_int) -> c_int; + // utime.h + pub fn utime(file: *const c_char, buf: *const utimbuf) -> c_int; } extern "C" { @@ -1719,6 +2124,9 @@ extern "C" { // unistd.h pub fn getppid() -> pid_t; + // unistd.h + pub fn setpgid(pid: pid_t, pgid: pid_t) -> pid_t; + // wait.h pub fn waitpid(pid: pid_t, status: *mut c_int, options: c_int) -> pid_t; @@ -1823,6 +2231,9 @@ extern "C" { // signal.h pub fn sigemptyset(__set: *mut sigset_t) -> c_int; + pub fn sigfillset(set: *mut sigset_t) -> c_int; + pub fn sigdelset(set: *mut sigset_t, signum: c_int) -> c_int; + pub fn sigismember(set: *const sigset_t, signum: c_int) -> c_int; // pthread.h for kernel // signal.h for user @@ -1941,6 +2352,9 @@ safe_f! { pub const fn WEXITSTATUS(status: c_int) -> c_int { status & 0xFF } + pub const fn WIFCONTINUED(status: c_int) -> c_int { + (status >> 24) & 0xFF + } pub const fn WTERMSIG(status: c_int) -> c_int { (status >> 8) & 0xFF } From d3e25b6d16f0173eb2e10c6f1ade00051de18174 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 29 Oct 2025 03:28:44 -0500 Subject: [PATCH 0955/1228] VxWorks: Mention that the release ID represents minor+patch Link: https://github.com/rust-lang/libc/pull/4781#discussion_r2471685324 (backport ) (cherry picked from commit 5a1ced6e3b45e3012ef983dd8baeea40433cf135) --- build.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/build.rs b/build.rs index e41c7aa21cd3a..b2c63f673c4db 100644 --- a/build.rs +++ b/build.rs @@ -281,8 +281,10 @@ fn emcc_version_code() -> Option { Some(major * 10000 + minor * 100 + patch) } +/// Retrieve the VxWorks release version from the environment variable set by the VxWorks build +/// environment, in `(minor, patch)` form. Currently the only major version supported by Rust +/// is 7. fn vxworks_version_code() -> Option<(u32, u32)> { - // Retrieve the VxWorks release version from the environment variable set by the VxWorks build environment let version = env::var("WIND_RELEASE_ID").ok()?; let mut pieces = version.trim().split(['.']); From bf27bf19bc0bb4230c42d7d30c17e5a53e56914d Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 25 Oct 2025 17:54:47 -0400 Subject: [PATCH 0956/1228] doc: Fix rustdoc `bare_urls` warnings (backport ) (cherry picked from commit 91fc98caa6ac1120db4bd82469398995a7775c33) --- src/new/apple_libc/signal.rs | 2 +- src/new/apple_xnu/arm/_mcontext.rs | 2 +- src/new/apple_xnu/i386/_mcontext.rs | 2 +- src/new/apple_xnu/mach/arm/_structs.rs | 2 +- src/new/apple_xnu/mach/i386/_structs.rs | 2 +- src/new/apple_xnu/mach/machine/_structs.rs | 2 +- src/new/apple_xnu/mach/mod.rs | 2 +- src/new/apple_xnu/sys/mod.rs | 2 +- src/new/apple_xnu/sys/signal.rs | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/new/apple_libc/signal.rs b/src/new/apple_libc/signal.rs index 971c47318c041..b5f8d59b2d7f3 100644 --- a/src/new/apple_libc/signal.rs +++ b/src/new/apple_libc/signal.rs @@ -1,5 +1,5 @@ //! Header: `signal.h` //! -//! https://github.com/apple-oss-distributions/Libc/blob/main/include/signal.h +//! pub use crate::sys::signal::*; diff --git a/src/new/apple_xnu/arm/_mcontext.rs b/src/new/apple_xnu/arm/_mcontext.rs index e57bc4f8adb09..ae22f7a4ec777 100644 --- a/src/new/apple_xnu/arm/_mcontext.rs +++ b/src/new/apple_xnu/arm/_mcontext.rs @@ -1,6 +1,6 @@ //! Header: `arm/_mcontext.h` //! -//! https://github.com/apple-oss-distributions/xnu/blob/main/bsd/arm/_mcontext.h +//! pub use crate::mach::machine::_structs::*; diff --git a/src/new/apple_xnu/i386/_mcontext.rs b/src/new/apple_xnu/i386/_mcontext.rs index 8ca3b116d9f26..2b07ad1bf6e64 100644 --- a/src/new/apple_xnu/i386/_mcontext.rs +++ b/src/new/apple_xnu/i386/_mcontext.rs @@ -1,6 +1,6 @@ //! Header: `i386/_mcontext.h` //! -//! https://github.com/apple-oss-distributions/xnu/blob/main/bsd/i386/_mcontext.h +//! pub use crate::mach::machine::_structs::*; diff --git a/src/new/apple_xnu/mach/arm/_structs.rs b/src/new/apple_xnu/mach/arm/_structs.rs index d8d3b958ad5dd..c0ebce437aedd 100644 --- a/src/new/apple_xnu/mach/arm/_structs.rs +++ b/src/new/apple_xnu/mach/arm/_structs.rs @@ -1,6 +1,6 @@ //! Header: `arm/_structs.h` //! -//! https://github.com/apple-oss-distributions/xnu/blob/main/osfmk/mach/arm/_structs.h +//! #[cfg(target_arch = "arm")] use crate::prelude::*; diff --git a/src/new/apple_xnu/mach/i386/_structs.rs b/src/new/apple_xnu/mach/i386/_structs.rs index ea274e26a6885..15822f7710de8 100644 --- a/src/new/apple_xnu/mach/i386/_structs.rs +++ b/src/new/apple_xnu/mach/i386/_structs.rs @@ -1,6 +1,6 @@ //! Header: `i386/_structs.h` //! -//! https://github.com/apple-oss-distributions/xnu/blob/main/osfmk/mach/i386/_structs.h +//! use crate::prelude::*; diff --git a/src/new/apple_xnu/mach/machine/_structs.rs b/src/new/apple_xnu/mach/machine/_structs.rs index 47df1005c86f8..6acae8d9acbd7 100644 --- a/src/new/apple_xnu/mach/machine/_structs.rs +++ b/src/new/apple_xnu/mach/machine/_structs.rs @@ -1,6 +1,6 @@ //! Header: `mach/machine/_structs.h` //! -//! https://github.com/apple-oss-distributions/xnu/blob/main/osfmk/mach/machine/_structs.h +//! cfg_if! { if #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] { diff --git a/src/new/apple_xnu/mach/mod.rs b/src/new/apple_xnu/mach/mod.rs index d5fbee83e970e..90751260a7a7c 100644 --- a/src/new/apple_xnu/mach/mod.rs +++ b/src/new/apple_xnu/mach/mod.rs @@ -1,6 +1,6 @@ //! Directory: `mach/` //! -//! https://github.com/apple-oss-distributions/xnu/tree/main/osfmk/mach +//! /// Directory: `mach/arm` #[cfg(any(target_arch = "arm", target_arch = "aarch64"))] diff --git a/src/new/apple_xnu/sys/mod.rs b/src/new/apple_xnu/sys/mod.rs index 8fdbe2846b58b..5a75457926690 100644 --- a/src/new/apple_xnu/sys/mod.rs +++ b/src/new/apple_xnu/sys/mod.rs @@ -1,6 +1,6 @@ //! Directory: `sys/` //! -//! https://github.com/apple-oss-distributions/xnu/tree/main/bsd/sys +//! pub(crate) mod signal; diff --git a/src/new/apple_xnu/sys/signal.rs b/src/new/apple_xnu/sys/signal.rs index 8399c830dc8cd..844793e119b31 100644 --- a/src/new/apple_xnu/sys/signal.rs +++ b/src/new/apple_xnu/sys/signal.rs @@ -1,6 +1,6 @@ //! Header: `sys/signal.h` //! -//! https://github.com/apple-oss-distributions/xnu/blob/main/bsd/sys/signal.h +//! pub use crate::machine::_mcontext::*; pub use crate::sys::_types::_ucontext::*; From 2d2ed699604d4057a3a06dc5a0b00dcec70905d5 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 25 Oct 2025 17:47:44 -0400 Subject: [PATCH 0957/1228] reorg: Introduce a posix/unistd module Create a module for common Posix-specified definitions in `unistd.h`, which are then reexported by relevant targets. Populate this with the `STD{IN,OUT,ERR}_FILENO` constants to start, which have posix-specified values. Link: https://pubs.opengroup.org/onlinepubs/007904975/basedefs/unistd.h.html (backport ) (cherry picked from commit 9cf1a1c1ce89669860e3e45a28f6e8dea6573cb1) --- src/fuchsia/mod.rs | 3 -- src/new/aix/mod.rs | 2 ++ src/new/aix/unistd.rs | 7 +++++ src/new/apple_libc/mod.rs | 3 ++ src/new/apple_libc/unistd.rs | 7 +++++ src/new/bionic_libc/mod.rs | 1 + src/new/bionic_libc/unistd.rs | 7 +++++ src/new/common/mod.rs | 13 +++++---- src/new/common/posix/mod.rs | 2 ++ src/new/common/posix/unistd.rs | 9 ++++++ src/new/cygwin/mod.rs | 2 ++ src/new/cygwin/unistd.rs | 7 +++++ src/new/dragonfly/mod.rs | 2 ++ src/new/dragonfly/unistd.rs | 7 +++++ src/new/emscripten/mod.rs | 2 ++ src/new/emscripten/unistd.rs | 7 +++++ src/new/freebsd/mod.rs | 2 ++ src/new/freebsd/unistd.rs | 7 +++++ src/new/fuchsia/mod.rs | 2 ++ src/new/fuchsia/unistd.rs | 7 +++++ src/new/glibc/mod.rs | 2 ++ src/new/glibc/unistd.rs | 7 +++++ src/new/haiku/mod.rs | 2 ++ src/new/haiku/unistd.rs | 7 +++++ src/new/illumos/mod.rs | 2 ++ src/new/illumos/unistd.rs | 7 +++++ src/new/mod.rs | 52 +++++++++++++++++++-------------- src/new/musl/mod.rs | 2 ++ src/new/musl/unistd.rs | 7 +++++ src/new/netbsd/mod.rs | 2 ++ src/new/netbsd/unistd.rs | 7 +++++ src/new/newlib/mod.rs | 2 ++ src/new/newlib/unistd.rs | 7 +++++ src/new/nto/mod.rs | 2 ++ src/new/nto/unistd.rs | 7 +++++ src/new/nuttx/mod.rs | 2 ++ src/new/nuttx/unistd.rs | 7 +++++ src/new/openbsd/mod.rs | 2 ++ src/new/openbsd/unistd.rs | 7 +++++ src/new/relibc/mod.rs | 2 ++ src/new/relibc/unistd.rs | 7 +++++ src/new/sgx/mod.rs | 2 +- src/new/sgx/unistd.rs | 7 +++++ src/new/solaris/mod.rs | 2 ++ src/new/solaris/unistd.rs | 7 +++++ src/new/uclibc/mod.rs | 2 ++ src/new/uclibc/unistd.rs | 7 +++++ src/new/vita/mod.rs | 2 ++ src/new/vita/unistd.rs | 7 +++++ src/new/vxworks/mod.rs | 2 ++ src/new/vxworks/unistd.rs | 7 +++++ src/unix/aix/mod.rs | 3 -- src/unix/bsd/apple/mod.rs | 3 -- src/unix/bsd/freebsdlike/mod.rs | 3 -- src/unix/bsd/netbsdlike/mod.rs | 3 -- src/unix/cygwin/mod.rs | 3 -- src/unix/haiku/mod.rs | 3 -- src/unix/hurd/mod.rs | 3 -- src/unix/linux_like/mod.rs | 3 -- src/unix/newlib/mod.rs | 4 --- src/unix/nto/mod.rs | 4 --- src/unix/nuttx/mod.rs | 3 -- src/unix/redox/mod.rs | 3 -- src/unix/solarish/mod.rs | 3 -- src/vxworks/mod.rs | 4 --- 65 files changed, 254 insertions(+), 77 deletions(-) create mode 100644 src/new/aix/unistd.rs create mode 100644 src/new/apple_libc/unistd.rs create mode 100644 src/new/bionic_libc/unistd.rs create mode 100644 src/new/common/posix/unistd.rs create mode 100644 src/new/cygwin/unistd.rs create mode 100644 src/new/dragonfly/unistd.rs create mode 100644 src/new/emscripten/unistd.rs create mode 100644 src/new/freebsd/unistd.rs create mode 100644 src/new/fuchsia/unistd.rs create mode 100644 src/new/glibc/unistd.rs create mode 100644 src/new/haiku/unistd.rs create mode 100644 src/new/illumos/unistd.rs create mode 100644 src/new/musl/unistd.rs create mode 100644 src/new/netbsd/unistd.rs create mode 100644 src/new/newlib/unistd.rs create mode 100644 src/new/nto/unistd.rs create mode 100644 src/new/nuttx/unistd.rs create mode 100644 src/new/openbsd/unistd.rs create mode 100644 src/new/relibc/unistd.rs create mode 100644 src/new/sgx/unistd.rs create mode 100644 src/new/solaris/unistd.rs create mode 100644 src/new/uclibc/unistd.rs create mode 100644 src/new/vita/unistd.rs create mode 100644 src/new/vxworks/unistd.rs diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 5a3d0784c434c..134a2faf87966 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -1468,9 +1468,6 @@ pub const F_OK: c_int = 0; pub const R_OK: c_int = 4; pub const W_OK: c_int = 2; pub const X_OK: c_int = 1; -pub const STDIN_FILENO: c_int = 0; -pub const STDOUT_FILENO: c_int = 1; -pub const STDERR_FILENO: c_int = 2; pub const SIGHUP: c_int = 1; pub const SIGINT: c_int = 2; pub const SIGQUIT: c_int = 3; diff --git a/src/new/aix/mod.rs b/src/new/aix/mod.rs index 79645f12d7360..c99b206b71688 100644 --- a/src/new/aix/mod.rs +++ b/src/new/aix/mod.rs @@ -2,3 +2,5 @@ //! //! * Headers are not public //! * Manual pages: (under "Technical reference" for that version) + +pub(crate) mod unistd; diff --git a/src/new/aix/unistd.rs b/src/new/aix/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/aix/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/apple_libc/mod.rs b/src/new/apple_libc/mod.rs index f53b8baa38ea1..d7fcc90d12ff8 100644 --- a/src/new/apple_libc/mod.rs +++ b/src/new/apple_libc/mod.rs @@ -1,3 +1,6 @@ //! Entrypoint for Apple headers, usually found as part of the Xcode SDK. +//! +//! pub(crate) mod signal; +pub(crate) mod unistd; diff --git a/src/new/apple_libc/unistd.rs b/src/new/apple_libc/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/apple_libc/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/bionic_libc/mod.rs b/src/new/bionic_libc/mod.rs index 2863b72cc2ed9..b608e2f123c96 100644 --- a/src/new/bionic_libc/mod.rs +++ b/src/new/bionic_libc/mod.rs @@ -3,3 +3,4 @@ //! pub(crate) mod sys; +pub(crate) mod unistd; diff --git a/src/new/bionic_libc/unistd.rs b/src/new/bionic_libc/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/bionic_libc/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/common/mod.rs b/src/new/common/mod.rs index cb0588ca26100..acb18917c8998 100644 --- a/src/new/common/mod.rs +++ b/src/new/common/mod.rs @@ -16,7 +16,7 @@ target_os = "netbsd", target_os = "openbsd", ))] -mod bsd; +pub(crate) mod bsd; #[cfg(any( target_os = "android", @@ -24,15 +24,16 @@ mod bsd; target_os = "l4re", target_os = "linux", ))] -mod linux_like; +pub(crate) mod linux_like; #[cfg(any(target_os = "dragonfly", target_os = "freebsd"))] -mod freebsd_like; +pub(crate) mod freebsd_like; #[cfg(any(target_os = "netbsd", target_os = "openbsd"))] -mod netbsd_like; +pub(crate) mod netbsd_like; #[cfg(any(target_os = "illumos", target_os = "solaris"))] -mod solarish; +pub(crate) mod solarish; -mod posix; +#[cfg(target_family = "unix")] +pub(crate) mod posix; diff --git a/src/new/common/posix/mod.rs b/src/new/common/posix/mod.rs index cb33296a9c656..454b840404c95 100644 --- a/src/new/common/posix/mod.rs +++ b/src/new/common/posix/mod.rs @@ -1 +1,3 @@ //! POSIX APIs that are used by a number of platforms + +pub(crate) mod unistd; diff --git a/src/new/common/posix/unistd.rs b/src/new/common/posix/unistd.rs new file mode 100644 index 0000000000000..0c02cbaa699f4 --- /dev/null +++ b/src/new/common/posix/unistd.rs @@ -0,0 +1,9 @@ +//! Header: `unistd.h` +//! +//! + +use crate::prelude::*; + +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; diff --git a/src/new/cygwin/mod.rs b/src/new/cygwin/mod.rs index 29d62f02f9fee..356ae587653df 100644 --- a/src/new/cygwin/mod.rs +++ b/src/new/cygwin/mod.rs @@ -1,3 +1,5 @@ //! Cygwin libc. //! //! * Headers: + +pub(crate) mod unistd; diff --git a/src/new/cygwin/unistd.rs b/src/new/cygwin/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/cygwin/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/dragonfly/mod.rs b/src/new/dragonfly/mod.rs index 9ea26f522be66..4a1b2c4998d07 100644 --- a/src/new/dragonfly/mod.rs +++ b/src/new/dragonfly/mod.rs @@ -2,3 +2,5 @@ //! //! * Headers: //! * Manual pages: + +pub(crate) mod unistd; diff --git a/src/new/dragonfly/unistd.rs b/src/new/dragonfly/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/dragonfly/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/emscripten/mod.rs b/src/new/emscripten/mod.rs index e58a3aceada16..fec0fe3bfdd43 100644 --- a/src/new/emscripten/mod.rs +++ b/src/new/emscripten/mod.rs @@ -1,3 +1,5 @@ //! Emscripten libc. //! //! * Headers: + +pub(crate) mod unistd; diff --git a/src/new/emscripten/unistd.rs b/src/new/emscripten/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/emscripten/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/freebsd/mod.rs b/src/new/freebsd/mod.rs index a1241c7a68cef..87c2e487560be 100644 --- a/src/new/freebsd/mod.rs +++ b/src/new/freebsd/mod.rs @@ -2,3 +2,5 @@ //! //! * Headers: //! * Symbol map: + +pub(crate) mod unistd; diff --git a/src/new/freebsd/unistd.rs b/src/new/freebsd/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/freebsd/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/fuchsia/mod.rs b/src/new/fuchsia/mod.rs index c1d275c95b3f6..b3a908349bf3b 100644 --- a/src/new/fuchsia/mod.rs +++ b/src/new/fuchsia/mod.rs @@ -1,2 +1,4 @@ //! Fuschia libc. // FIXME(fuchsia): link to headers needed. + +pub(crate) mod unistd; diff --git a/src/new/fuchsia/unistd.rs b/src/new/fuchsia/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/fuchsia/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/glibc/mod.rs b/src/new/glibc/mod.rs index 8714820906414..9c4c11412dcc5 100644 --- a/src/new/glibc/mod.rs +++ b/src/new/glibc/mod.rs @@ -2,3 +2,5 @@ //! //! * Headers: (official) //! * Headers: (mirror) + +pub(crate) mod unistd; diff --git a/src/new/glibc/unistd.rs b/src/new/glibc/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/glibc/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/haiku/mod.rs b/src/new/haiku/mod.rs index c119b67376269..a565afe10d9ce 100644 --- a/src/new/haiku/mod.rs +++ b/src/new/haiku/mod.rs @@ -1,2 +1,4 @@ //! Haiku OS libc. // FIXME(haiku): link to headers needed. + +pub(crate) mod unistd; diff --git a/src/new/haiku/unistd.rs b/src/new/haiku/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/haiku/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/illumos/mod.rs b/src/new/illumos/mod.rs index 66f6cb1ffd3c8..83d15da8801f2 100644 --- a/src/new/illumos/mod.rs +++ b/src/new/illumos/mod.rs @@ -1,2 +1,4 @@ //! Illumos libc. // FIXME(illumos): link to headers needed. + +pub(crate) mod unistd; diff --git a/src/new/illumos/unistd.rs b/src/new/illumos/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/illumos/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/mod.rs b/src/new/mod.rs index 27f232cb56882..f83339ecf0fd1 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -43,7 +43,7 @@ mod common; cfg_if! { if #[cfg(target_os = "aix")] { mod aix; - // pub(crate) use aix::*; + pub(crate) use aix::*; } else if #[cfg(target_os = "android")] { mod bionic_libc; pub(crate) use bionic_libc::*; @@ -54,25 +54,25 @@ cfg_if! { pub(crate) use apple_xnu::*; } else if #[cfg(target_os = "cygwin")] { mod cygwin; - // pub(crate) use cygwin::*; + pub(crate) use cygwin::*; } else if #[cfg(target_os = "dragonfly")] { mod dragonfly; - // pub(crate) use dragonfly::*; + pub(crate) use dragonfly::*; } else if #[cfg(target_os = "emscripten")] { mod emscripten; - // pub(crate) use emscripten::*; + pub(crate) use emscripten::*; } else if #[cfg(target_os = "espidf")] { mod espidf; // pub(crate) use espidf::*; } else if #[cfg(target_os = "freebsd")] { mod freebsd; - // pub(crate) use freebsd::*; + pub(crate) use freebsd::*; } else if #[cfg(target_os = "fuchsia")] { mod fuchsia; - // pub(crate) use fuchsia::*; + pub(crate) use fuchsia::*; } else if #[cfg(target_os = "haiku")] { mod haiku; - // pub(crate) use haiku::*; + pub(crate) use haiku::*; } else if #[cfg(target_os = "hermit")] { mod hermit_abi; // pub(crate) use hermit_abi::*; @@ -84,7 +84,7 @@ cfg_if! { // pub(crate) use hurd::*; } else if #[cfg(target_os = "illumos")] { mod illumos; - // pub(crate) use illumos::*; + pub(crate) use illumos::*; } else if #[cfg(target_os = "l4re")] { mod l4re; // pub(crate) use l4re::*; @@ -93,25 +93,25 @@ cfg_if! { pub(crate) use linux_uapi::*; } else if #[cfg(target_os = "netbsd")] { mod netbsd; - // pub(crate) use netbsd::*; + pub(crate) use netbsd::*; } else if #[cfg(target_os = "nto")] { mod nto; - // pub(crate) use nto::*; + pub(crate) use nto::*; } else if #[cfg(target_os = "nuttx")] { mod nuttx; - // pub(crate) use nuttx::*; + pub(crate) use nuttx::*; } else if #[cfg(target_os = "openbsd")] { mod openbsd; - // pub(crate) use openbsd::*; + pub(crate) use openbsd::*; } else if #[cfg(target_os = "redox")] { mod redox; // pub(crate) use redox::*; } else if #[cfg(target_os = "rtems")] { mod rtems; - // pub(crate) use rtems::*; + pub(crate) use rtems::*; } else if #[cfg(target_os = "solaris")] { mod solaris; - // pub(crate) use solaris::*; + pub(crate) use solaris::*; } else if #[cfg(target_os = "solid_asp3")] { mod solid; // pub(crate) use solid::*; @@ -126,7 +126,7 @@ cfg_if! { // pub(crate) use vita::*; } else if #[cfg(target_os = "vxworks")] { mod vxworks; - // pub(crate) use vxworks::*; + pub(crate) use vxworks::*; } else if #[cfg(target_os = "wasi")] { mod wasi; // pub(crate) use wasi::*; @@ -141,24 +141,29 @@ cfg_if! { // Multi-platform libc cfg_if! { - if #[cfg(target_env = "gnu")] { + // FIXME(vxworks): vxworks sets `target_env = "gnu"` but maybe shouldn't. + if #[cfg(all( + target_family = "unix", + target_env = "gnu", + not(target_os = "vxworks") + ))] { mod glibc; - // pub(crate) use glibc::*; - } else if #[cfg(target_env = "musl")] { + pub(crate) use glibc::*; + } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] { mod musl; - // pub(crate) use musl::*; + pub(crate) use musl::*; } else if #[cfg(target_env = "newlib")] { mod newlib; - // pub(crate) use newlib::*; + pub(crate) use newlib::*; } else if #[cfg(target_env = "relibc")] { mod relibc; - // pub(crate) use relibc::*; + pub(crate) use relibc::*; } else if #[cfg(target_env = "sgx")] { mod sgx; // pub(crate) use sgx::*; } else if #[cfg(target_env = "uclibc")] { mod uclibc; - // pub(crate) use uclibc::*; + pub(crate) use uclibc::*; } } @@ -176,3 +181,6 @@ cfg_if! { pub use signal::*; } } + +#[cfg(target_family = "unix")] +pub use unistd::*; diff --git a/src/new/musl/mod.rs b/src/new/musl/mod.rs index 49f9abae21fb7..7b1f31e340a1f 100644 --- a/src/new/musl/mod.rs +++ b/src/new/musl/mod.rs @@ -2,3 +2,5 @@ //! //! * Headers: (official) //! * Headers: (mirror) + +pub(crate) mod unistd; diff --git a/src/new/musl/unistd.rs b/src/new/musl/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/musl/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/netbsd/mod.rs b/src/new/netbsd/mod.rs index 14b6a5f869e8f..b43e7aeb088d2 100644 --- a/src/new/netbsd/mod.rs +++ b/src/new/netbsd/mod.rs @@ -1,3 +1,5 @@ //! NetBSD libc. //! //! * Manual pages: + +pub(crate) mod unistd; diff --git a/src/new/netbsd/unistd.rs b/src/new/netbsd/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/netbsd/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/newlib/mod.rs b/src/new/newlib/mod.rs index d5564cafcfd50..b5c7e3dc73a0a 100644 --- a/src/new/newlib/mod.rs +++ b/src/new/newlib/mod.rs @@ -1,2 +1,4 @@ //! Newlib libc. // FIXME(newlib): link to headers needed. + +pub(crate) mod unistd; diff --git a/src/new/newlib/unistd.rs b/src/new/newlib/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/newlib/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/nto/mod.rs b/src/new/nto/mod.rs index 8fa2d814eb8df..df8ec183bd789 100644 --- a/src/new/nto/mod.rs +++ b/src/new/nto/mod.rs @@ -1,2 +1,4 @@ //! QNX Neutrino libc. // FIXME(nto): link to manpages needed. + +pub(crate) mod unistd; diff --git a/src/new/nto/unistd.rs b/src/new/nto/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/nto/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/nuttx/mod.rs b/src/new/nuttx/mod.rs index 89b9c05e849bd..513c945dbfd9b 100644 --- a/src/new/nuttx/mod.rs +++ b/src/new/nuttx/mod.rs @@ -1,2 +1,4 @@ //! RTEMS libc. // FIXME(nuttx): link to headers needed. + +pub(crate) mod unistd; diff --git a/src/new/nuttx/unistd.rs b/src/new/nuttx/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/nuttx/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/openbsd/mod.rs b/src/new/openbsd/mod.rs index f97044effe76c..d5debb80f3928 100644 --- a/src/new/openbsd/mod.rs +++ b/src/new/openbsd/mod.rs @@ -2,3 +2,5 @@ //! //! * Headers: //! * Manual pages: + +pub(crate) mod unistd; diff --git a/src/new/openbsd/unistd.rs b/src/new/openbsd/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/openbsd/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/relibc/mod.rs b/src/new/relibc/mod.rs index baf26912ec7f0..d2449123218a1 100644 --- a/src/new/relibc/mod.rs +++ b/src/new/relibc/mod.rs @@ -1,3 +1,5 @@ //! Redox OS libc. //! //! * Headers: + +pub(crate) mod unistd; diff --git a/src/new/relibc/unistd.rs b/src/new/relibc/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/relibc/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/sgx/mod.rs b/src/new/sgx/mod.rs index 8b137891791fe..8c15dadb4a0b8 100644 --- a/src/new/sgx/mod.rs +++ b/src/new/sgx/mod.rs @@ -1 +1 @@ - +//! Fortanix SGX. diff --git a/src/new/sgx/unistd.rs b/src/new/sgx/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/sgx/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/solaris/mod.rs b/src/new/solaris/mod.rs index b5d55492995de..97ae47333deb4 100644 --- a/src/new/solaris/mod.rs +++ b/src/new/solaris/mod.rs @@ -1,3 +1,5 @@ //! Solaris libc. //! //! * Manual pages: (under "Reference Manuals") + +pub(crate) mod unistd; diff --git a/src/new/solaris/unistd.rs b/src/new/solaris/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/solaris/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/uclibc/mod.rs b/src/new/uclibc/mod.rs index eda4b01d92d2c..4cb25389c91bf 100644 --- a/src/new/uclibc/mod.rs +++ b/src/new/uclibc/mod.rs @@ -2,3 +2,5 @@ //! //! * About: //! * Headers: (mirror) + +pub(crate) mod unistd; diff --git a/src/new/uclibc/unistd.rs b/src/new/uclibc/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/uclibc/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/vita/mod.rs b/src/new/vita/mod.rs index 21205ebd046fb..38783a3f19fbc 100644 --- a/src/new/vita/mod.rs +++ b/src/new/vita/mod.rs @@ -1,2 +1,4 @@ //! VITASDK system library. // FIXME(vita): link to headers or manpages needed. + +pub(crate) mod unistd; diff --git a/src/new/vita/unistd.rs b/src/new/vita/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/vita/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/new/vxworks/mod.rs b/src/new/vxworks/mod.rs index a3116fce03803..65630565e53e0 100644 --- a/src/new/vxworks/mod.rs +++ b/src/new/vxworks/mod.rs @@ -1,2 +1,4 @@ //! VxWorks libc. // FIXME(vxworks): link to headers needed. + +pub(crate) mod unistd; diff --git a/src/new/vxworks/unistd.rs b/src/new/vxworks/unistd.rs new file mode 100644 index 0000000000000..8d55ee5823315 --- /dev/null +++ b/src/new/vxworks/unistd.rs @@ -0,0 +1,7 @@ +//! Header: `unistd.h` + +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index f4dd26f6aba37..0b91a22cae8cc 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -2275,9 +2275,6 @@ pub const CLOCK_PROCESS_CPUTIME_ID: crate::clockid_t = 11; pub const CLOCK_THREAD_CPUTIME_ID: crate::clockid_t = 12; // unistd.h -pub const STDIN_FILENO: c_int = 0; -pub const STDOUT_FILENO: c_int = 1; -pub const STDERR_FILENO: c_int = 2; pub const _POSIX_VDISABLE: c_int = 0xff; pub const _PC_LINK_MAX: c_int = 11; pub const _PC_MAX_CANON: c_int = 12; diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index ec05791d9aed0..e85323c73227a 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -2932,9 +2932,6 @@ pub const F_OK: c_int = 0; pub const R_OK: c_int = 4; pub const W_OK: c_int = 2; pub const X_OK: c_int = 1; -pub const STDIN_FILENO: c_int = 0; -pub const STDOUT_FILENO: c_int = 1; -pub const STDERR_FILENO: c_int = 2; pub const F_LOCK: c_int = 1; pub const F_TEST: c_int = 3; pub const F_TLOCK: c_int = 2; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 453d3e0734f05..98996f260709f 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -572,9 +572,6 @@ pub const F_OK: c_int = 0; pub const R_OK: c_int = 4; pub const W_OK: c_int = 2; pub const X_OK: c_int = 1; -pub const STDIN_FILENO: c_int = 0; -pub const STDOUT_FILENO: c_int = 1; -pub const STDERR_FILENO: c_int = 2; pub const F_LOCK: c_int = 1; pub const F_TEST: c_int = 3; pub const F_TLOCK: c_int = 2; diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index 294d334490bc1..dc5e4528cf299 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -191,9 +191,6 @@ pub const F_OK: c_int = 0; pub const R_OK: c_int = 4; pub const W_OK: c_int = 2; pub const X_OK: c_int = 1; -pub const STDIN_FILENO: c_int = 0; -pub const STDOUT_FILENO: c_int = 1; -pub const STDERR_FILENO: c_int = 2; pub const F_LOCK: c_int = 1; pub const F_TEST: c_int = 3; pub const F_TLOCK: c_int = 2; diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 028ac80cb52d3..0e5faff17fb8f 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -1325,9 +1325,6 @@ pub const X_OK: c_int = 1; pub const SEEK_SET: c_int = 0; pub const SEEK_CUR: c_int = 1; pub const SEEK_END: c_int = 2; -pub const STDIN_FILENO: c_int = 0; -pub const STDOUT_FILENO: c_int = 1; -pub const STDERR_FILENO: c_int = 2; pub const _SC_ARG_MAX: c_int = 0; pub const _SC_CHILD_MAX: c_int = 1; pub const _SC_CLK_TCK: c_int = 2; diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 98764c497f0f6..7c3f07e0ad9be 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -746,9 +746,6 @@ pub const F_OK: c_int = 0; pub const R_OK: c_int = 4; pub const W_OK: c_int = 2; pub const X_OK: c_int = 1; -pub const STDIN_FILENO: c_int = 0; -pub const STDOUT_FILENO: c_int = 1; -pub const STDERR_FILENO: c_int = 2; pub const SIGHUP: c_int = 1; pub const SIGINT: c_int = 2; diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index acd0981b1a8b2..a0be74022e251 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -1172,9 +1172,6 @@ pub const SHM_REMAP: c_int = 0o40000; pub const SHM_LOCK: c_int = 11; pub const SHM_UNLOCK: c_int = 12; // unistd.h -pub const STDIN_FILENO: c_int = 0; -pub const STDOUT_FILENO: c_int = 1; -pub const STDERR_FILENO: c_int = 2; pub const __FD_SETSIZE: usize = 256; pub const R_OK: c_int = 4; pub const W_OK: c_int = 2; diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 0b1f376233a62..15e3597614e84 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -540,9 +540,6 @@ pub const F_OK: c_int = 0; pub const R_OK: c_int = 4; pub const W_OK: c_int = 2; pub const X_OK: c_int = 1; -pub const STDIN_FILENO: c_int = 0; -pub const STDOUT_FILENO: c_int = 1; -pub const STDERR_FILENO: c_int = 2; pub const SIGHUP: c_int = 1; pub const SIGINT: c_int = 2; pub const SIGQUIT: c_int = 3; diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index 0193083f4e63b..abec6d4991c37 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -557,10 +557,6 @@ cfg_if! { pub const RTLD_LAZY: c_int = 0x1; -pub const STDIN_FILENO: c_int = 0; -pub const STDOUT_FILENO: c_int = 1; -pub const STDERR_FILENO: c_int = 2; - pub const SEEK_SET: c_int = 0; pub const SEEK_CUR: c_int = 1; pub const SEEK_END: c_int = 2; diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index a81c210c80cf3..0ac1e682268f8 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -1054,10 +1054,6 @@ pub const X_OK: c_int = 1; pub const W_OK: c_int = 2; pub const R_OK: c_int = 4; -pub const STDIN_FILENO: c_int = 0; -pub const STDOUT_FILENO: c_int = 1; -pub const STDERR_FILENO: c_int = 2; - pub const SIGHUP: c_int = 1; pub const SIGINT: c_int = 2; pub const SIGQUIT: c_int = 3; diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index fe7c6ecb3007a..79e3f170e0c1f 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -509,9 +509,6 @@ pub const TCP_NODELAY: i32 = 0x10; pub const FIONBIO: i32 = 0x30a; // unistd.h -pub const STDIN_FILENO: i32 = 0; -pub const STDOUT_FILENO: i32 = 1; -pub const STDERR_FILENO: i32 = 2; pub const _SC_PAGESIZE: i32 = 0x36; pub const _SC_THREAD_STACK_MIN: i32 = 0x58; pub const _SC_GETPW_R_SIZE_MAX: i32 = 0x25; diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 55a8c15a234e2..9567099e59c42 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1066,9 +1066,6 @@ pub const _IONBF: c_int = 2; pub const SEEK_SET: c_int = 0; pub const SEEK_CUR: c_int = 1; pub const SEEK_END: c_int = 2; -pub const STDIN_FILENO: c_int = 0; -pub const STDOUT_FILENO: c_int = 1; -pub const STDERR_FILENO: c_int = 2; pub const _PC_LINK_MAX: c_int = 0; pub const _PC_MAX_CANON: c_int = 1; diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index f78b09a3db63a..fd52e353ef1d6 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1146,9 +1146,6 @@ pub const F_OK: c_int = 0; pub const R_OK: c_int = 4; pub const W_OK: c_int = 2; pub const X_OK: c_int = 1; -pub const STDIN_FILENO: c_int = 0; -pub const STDOUT_FILENO: c_int = 1; -pub const STDERR_FILENO: c_int = 2; pub const F_LOCK: c_int = 1; pub const F_TEST: c_int = 3; pub const F_TLOCK: c_int = 2; diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index fcb74e26135bd..5f22a7cee7297 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -640,10 +640,6 @@ cfg_if! { } } -pub const STDIN_FILENO: c_int = 0; -pub const STDOUT_FILENO: c_int = 1; -pub const STDERR_FILENO: c_int = 2; - pub const EXIT_SUCCESS: c_int = 0; pub const EXIT_FAILURE: c_int = 1; From b328398c4a2b857feadba508121415f726f585c1 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 8 Jul 2025 04:04:58 +0000 Subject: [PATCH 0958/1228] glibc: Initial setup of source reorganization Establish the basic source reorganization for glibc, and seed it with a `net/route.h` definition. Glibc has the same headers in various locations, then copies or (I believe) combines them in the install location based on the target platform. To mirror this, our source primarily mirrors the glibc source tree, then reexports things in `src/new/glibc.rs` in the same way that glibc does when it creates an install. (backport ) (cherry picked from commit 0399c4ed2ae4d3f7c3c6728b894881cd338e9520) --- src/new/glibc/mod.rs | 21 ++++++++++++- src/new/glibc/{ => posix}/unistd.rs | 2 ++ src/new/glibc/sysdeps/unix/linux/mod.rs | 10 +++++++ src/new/glibc/sysdeps/unix/linux/net/route.rs | 30 +++++++++++++++++++ src/new/glibc/sysdeps/unix/mod.rs | 6 ++++ src/new/mod.rs | 2 ++ src/unix/linux_like/linux/gnu/mod.rs | 21 ------------- 7 files changed, 70 insertions(+), 22 deletions(-) rename src/new/glibc/{ => posix}/unistd.rs (64%) create mode 100644 src/new/glibc/sysdeps/unix/linux/mod.rs create mode 100644 src/new/glibc/sysdeps/unix/linux/net/route.rs create mode 100644 src/new/glibc/sysdeps/unix/mod.rs diff --git a/src/new/glibc/mod.rs b/src/new/glibc/mod.rs index 9c4c11412dcc5..534aba86a493a 100644 --- a/src/new/glibc/mod.rs +++ b/src/new/glibc/mod.rs @@ -2,5 +2,24 @@ //! //! * Headers: (official) //! * Headers: (mirror) +//! +//! This module structure is modeled after glibc's source tree. Its build system selects headers +//! from different locations based on the platform, which we mimic here with reexports. + +/// Source directory: `posix/` +/// +/// +mod posix { + pub(crate) mod unistd; +} + +/// Source directory: `sysdeps/` +/// +/// +mod sysdeps { + pub(crate) mod unix; +} -pub(crate) mod unistd; +pub(crate) use posix::*; +#[cfg(target_os = "linux")] +pub(crate) use sysdeps::unix::linux::*; diff --git a/src/new/glibc/unistd.rs b/src/new/glibc/posix/unistd.rs similarity index 64% rename from src/new/glibc/unistd.rs rename to src/new/glibc/posix/unistd.rs index 8d55ee5823315..907066c458df2 100644 --- a/src/new/glibc/unistd.rs +++ b/src/new/glibc/posix/unistd.rs @@ -1,4 +1,6 @@ //! Header: `unistd.h` +//! +//! pub use crate::new::common::posix::unistd::{ STDERR_FILENO, diff --git a/src/new/glibc/sysdeps/unix/linux/mod.rs b/src/new/glibc/sysdeps/unix/linux/mod.rs new file mode 100644 index 0000000000000..0ecee596c5b12 --- /dev/null +++ b/src/new/glibc/sysdeps/unix/linux/mod.rs @@ -0,0 +1,10 @@ +//! Source directory: `sysdeps/unix/sysv/linux` (the `sysv` is flattened). +//! +//! + +/// Directory: `net/` +/// +/// Source directory: `sysdeps/unix/sysv/linux/net` +pub(crate) mod net { + pub(crate) mod route; +} diff --git a/src/new/glibc/sysdeps/unix/linux/net/route.rs b/src/new/glibc/sysdeps/unix/linux/net/route.rs new file mode 100644 index 0000000000000..2851451652df0 --- /dev/null +++ b/src/new/glibc/sysdeps/unix/linux/net/route.rs @@ -0,0 +1,30 @@ +//! Header: `net/route.h` +//! +//! Source header: `sysdeps/unix/sysv/linux/net/route.h` +//! + +use crate::prelude::*; + +s! { + pub struct rtentry { + pub rt_pad1: c_ulong, + pub rt_dst: crate::sockaddr, + pub rt_gateway: crate::sockaddr, + pub rt_genmask: crate::sockaddr, + pub rt_flags: c_ushort, + pub rt_pad2: c_short, + pub rt_pad3: c_ulong, + pub rt_tos: c_uchar, + pub rt_class: c_uchar, + // FIXME(1.0): private padding fields + #[cfg(target_pointer_width = "64")] + pub rt_pad4: [c_short; 3usize], + #[cfg(not(target_pointer_width = "64"))] + pub rt_pad4: c_short, + pub rt_metric: c_short, + pub rt_dev: *mut c_char, + pub rt_mtu: c_ulong, + pub rt_window: c_ulong, + pub rt_irtt: c_ushort, + } +} diff --git a/src/new/glibc/sysdeps/unix/mod.rs b/src/new/glibc/sysdeps/unix/mod.rs new file mode 100644 index 0000000000000..55a895d4d0de2 --- /dev/null +++ b/src/new/glibc/sysdeps/unix/mod.rs @@ -0,0 +1,6 @@ +//! Source directory: `sysdeps/unix/` +//! +//! + +#[cfg(target_os = "linux")] +pub(crate) mod linux; diff --git a/src/new/mod.rs b/src/new/mod.rs index f83339ecf0fd1..35a493df4b152 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -177,6 +177,8 @@ cfg_if! { pub use linux::can::raw::*; pub use linux::can::*; pub use linux::keyctl::*; + #[cfg(target_env = "gnu")] + pub use net::route::*; } else if #[cfg(target_vendor = "apple")] { pub use signal::*; } diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index afd9fe3396180..b877fc296d5d1 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -153,27 +153,6 @@ s! { pub nm_gid: u32, } - pub struct rtentry { - pub rt_pad1: c_ulong, - pub rt_dst: crate::sockaddr, - pub rt_gateway: crate::sockaddr, - pub rt_genmask: crate::sockaddr, - pub rt_flags: c_ushort, - pub rt_pad2: c_short, - pub rt_pad3: c_ulong, - pub rt_tos: c_uchar, - pub rt_class: c_uchar, - #[cfg(target_pointer_width = "64")] - pub rt_pad4: [c_short; 3usize], - #[cfg(not(target_pointer_width = "64"))] - pub rt_pad4: c_short, - pub rt_metric: c_short, - pub rt_dev: *mut c_char, - pub rt_mtu: c_ulong, - pub rt_window: c_ulong, - pub rt_irtt: c_ushort, - } - pub struct ntptimeval { pub time: crate::timeval, pub maxerror: c_long, From 37f122489a2754683b3f4e1fb0fd194caf9e3a7b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 30 Oct 2025 03:17:03 -0500 Subject: [PATCH 0959/1228] ci: Skip hexagon-unknown-linux-musl This hits an error about a duplicate fma symbol while building std. (backport ) (cherry picked from commit 5a9e1db32bb09a0b23e257b65e5b5ccdf754d00e) --- ci/verify-build.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ci/verify-build.py b/ci/verify-build.py index 2d57bd81bcea9..7e52e749440b5 100755 --- a/ci/verify-build.py +++ b/ci/verify-build.py @@ -147,7 +147,8 @@ def __post_init__(self): Target("armv7-wrs-vxworks-eabihf", dist=False), Target("armv7r-none-eabihf", dist=False), Target("armv7s-apple-ios", dist=False), - Target("hexagon-unknown-linux-musl", dist=False), + # FIXME(hexagon): hits "error: symbol 'fma' is already defined" error + # Target("hexagon-unknown-linux-musl", dist=False), Target("i386-apple-ios", dist=False), Target("i686-apple-darwin", dist=False), Target("i686-unknown-haiku", dist=False), From ffedb8cc4ab682d6006e2d2b21443c1203cea053 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 30 Oct 2025 15:08:02 -0500 Subject: [PATCH 0960/1228] ci: Re-enable ohos check builds (backport ) (cherry picked from commit 4bc2673628b515e75f660b6d6d101d066b92a972) --- ci/verify-build.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/ci/verify-build.py b/ci/verify-build.py index 7e52e749440b5..483dc5cfa96fb 100755 --- a/ci/verify-build.py +++ b/ci/verify-build.py @@ -68,7 +68,6 @@ def __post_init__(self): FREEBSD_VERSIONS = [11, 12, 13, 14, 15] -# FIXME(ohos): CI fails with warnings TARGETS = [ # Tier 1 Target("aarch64-apple-darwin"), @@ -83,11 +82,11 @@ def __post_init__(self): # Tier 2 with host tools Target("aarch64-pc-windows-gnullvm", min_toolchain=Toolchain.STABLE), Target("aarch64-unknown-linux-musl"), - # Target("aarch64-unknown-linux-ohos"), + Target("aarch64-unknown-linux-ohos", min_toolchain=Toolchain.STABLE), Target("arm-unknown-linux-gnueabi"), Target("arm-unknown-linux-gnueabihf"), Target("armv7-unknown-linux-gnueabihf"), - # Target("armv7-unknown-linux-ohos"), + Target("armv7-unknown-linux-ohos", min_toolchain=Toolchain.STABLE), Target("i686-pc-windows-gnu"), Target("loongarch64-unknown-linux-gnu", min_toolchain=Toolchain.STABLE), Target("loongarch64-unknown-linux-musl", min_toolchain=Toolchain.STABLE), @@ -104,7 +103,7 @@ def __post_init__(self): Target("x86_64-unknown-freebsd"), Target("x86_64-unknown-illumos"), Target("x86_64-unknown-linux-musl"), - # Target("x86_64-unknown-linux-ohos"), + Target("x86_64-unknown-linux-ohos", min_toolchain=Toolchain.STABLE), Target("x86_64-unknown-netbsd"), # # Tier 2 without host tools From c3fef8f97bbe59ae6a91a3726c45a8fd8f13fa3e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 30 Oct 2025 15:08:02 -0500 Subject: [PATCH 0961/1228] ohos: Don't emit duplicate lfs64 definitions The musl module is enabled on ohos, so these are duplicates. (backport ) (cherry picked from commit b30e7144278263f9fe12ad6d22c9713eeeb5dd5c) --- src/unix/linux_like/linux/mod.rs | 4 ++-- src/unix/linux_like/mod.rs | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 45031ab2aa32c..3d2f21a53062e 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1187,7 +1187,7 @@ s! { size: [u8; crate::__SIZEOF_PTHREAD_BARRIERATTR_T], } - #[cfg(not(target_env = "musl"))] + #[cfg(not(any(target_env = "musl", target_env = "ohos")))] #[repr(align(8))] pub struct fanotify_event_metadata { pub event_len: __u32, @@ -6752,7 +6752,7 @@ extern "C" { // // * musl has 64-bit versions only so aliases the LFS64 symbols to the standard ones cfg_if! { - if #[cfg(not(target_env = "musl"))] { + if #[cfg(not(any(target_env = "musl", target_env = "ohos")))] { extern "C" { pub fn fallocate64(fd: c_int, mode: c_int, offset: off64_t, len: off64_t) -> c_int; pub fn fgetpos64(stream: *mut crate::FILE, ptr: *mut fpos64_t) -> c_int; diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 15e3597614e84..b431643dfa3e4 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -2071,7 +2071,11 @@ extern "C" { // * musl and Emscripten has 64-bit versions only so aliases the LFS64 symbols to the standard ones // * ulibc doesn't have preadv64/pwritev64 cfg_if! { - if #[cfg(not(any(target_env = "musl", target_os = "emscripten")))] { + if #[cfg(not(any( + target_env = "musl", + target_env = "ohos", + target_os = "emscripten", + )))] { extern "C" { pub fn fstatfs64(fd: c_int, buf: *mut statfs64) -> c_int; pub fn statvfs64(path: *const c_char, buf: *mut statvfs64) -> c_int; @@ -2131,7 +2135,8 @@ cfg_if! { if #[cfg(not(any( target_env = "uclibc", target_env = "musl", - target_os = "emscripten" + target_env = "ohos", + target_os = "emscripten", )))] { extern "C" { pub fn preadv64( From 0e379dc540ece4976a52f1d785ae1b9ebe572bb5 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 8 Jul 2025 02:38:40 +0000 Subject: [PATCH 0962/1228] musl: Switch to the new structure for `socket.h` Move `struct msghdr`, `struct cmsghdr`, `sendmmsg`, and `recvmmsg` over at this time, as well as two `SOCK_*` constants that were in the musl module. Link: https://github.com/kraj/musl/blob/9f204467e88c75e36105d1359951c5857c20fe0b/include/sys/socket.h (backport ) (cherry picked from commit 564e0efe817e8d2e147c21fe2227c2d78eff44ff) --- src/new/mod.rs | 10 ++- src/new/musl/arch/generic/mod.rs | 7 +++ src/new/musl/arch/mips/bits/socket.rs | 4 ++ src/new/musl/arch/mips/mod.rs | 7 +++ src/new/musl/arch/mips64/bits/socket.rs | 4 ++ src/new/musl/arch/mips64/mod.rs | 7 +++ src/new/musl/arch/mod.rs | 10 +++ src/new/musl/mod.rs | 24 +++++++ src/new/musl/sys/socket.rs | 63 +++++++++++++++++++ src/unix/linux_like/linux/mod.rs | 14 +++-- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 3 - src/unix/linux_like/linux/musl/b32/hexagon.rs | 2 - .../linux_like/linux/musl/b32/mips/mod.rs | 3 - src/unix/linux_like/linux/musl/b32/mod.rs | 16 ----- src/unix/linux_like/linux/musl/b32/powerpc.rs | 3 - .../linux_like/linux/musl/b32/riscv32/mod.rs | 2 - src/unix/linux_like/linux/musl/b32/x86/mod.rs | 3 - .../linux_like/linux/musl/b64/aarch64/mod.rs | 3 - .../linux/musl/b64/loongarch64/mod.rs | 3 - src/unix/linux_like/linux/musl/b64/mips64.rs | 3 - src/unix/linux_like/linux/musl/b64/mod.rs | 28 --------- .../linux_like/linux/musl/b64/powerpc64.rs | 3 - .../linux_like/linux/musl/b64/riscv64/mod.rs | 3 - src/unix/linux_like/linux/musl/b64/s390x.rs | 3 - .../linux_like/linux/musl/b64/wasm32/mod.rs | 3 - .../linux_like/linux/musl/b64/x86_64/mod.rs | 3 - src/unix/linux_like/linux/musl/mod.rs | 14 ----- 27 files changed, 144 insertions(+), 104 deletions(-) create mode 100644 src/new/musl/arch/generic/mod.rs create mode 100644 src/new/musl/arch/mips/bits/socket.rs create mode 100644 src/new/musl/arch/mips/mod.rs create mode 100644 src/new/musl/arch/mips64/bits/socket.rs create mode 100644 src/new/musl/arch/mips64/mod.rs create mode 100644 src/new/musl/arch/mod.rs create mode 100644 src/new/musl/sys/socket.rs diff --git a/src/new/mod.rs b/src/new/mod.rs index 35a493df4b152..1846ada479fba 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -150,6 +150,7 @@ cfg_if! { mod glibc; pub(crate) use glibc::*; } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] { + // OhOS also uses the musl libc mod musl; pub(crate) use musl::*; } else if #[cfg(target_env = "newlib")] { @@ -167,7 +168,7 @@ cfg_if! { } } -// Headers we export +// Per-OS headers we export cfg_if! { if #[cfg(target_os = "android")] { pub use sys::socket::*; @@ -184,5 +185,12 @@ cfg_if! { } } +// Per-env headers we export +cfg_if! { + if #[cfg(any(target_env = "musl", target_env = "ohos"))] { + pub use sys::socket::*; + } +} + #[cfg(target_family = "unix")] pub use unistd::*; diff --git a/src/new/musl/arch/generic/mod.rs b/src/new/musl/arch/generic/mod.rs new file mode 100644 index 0000000000000..ac02505c882bf --- /dev/null +++ b/src/new/musl/arch/generic/mod.rs @@ -0,0 +1,7 @@ +//! Source directory: `arch/generic/` +//! +//! + +pub(crate) mod bits { + // Currently unused +} diff --git a/src/new/musl/arch/mips/bits/socket.rs b/src/new/musl/arch/mips/bits/socket.rs new file mode 100644 index 0000000000000..77b53e489c3d8 --- /dev/null +++ b/src/new/musl/arch/mips/bits/socket.rs @@ -0,0 +1,4 @@ +use crate::prelude::*; + +pub const SOCK_STREAM: c_int = 2; +pub const SOCK_DGRAM: c_int = 1; diff --git a/src/new/musl/arch/mips/mod.rs b/src/new/musl/arch/mips/mod.rs new file mode 100644 index 0000000000000..2f02036d254ce --- /dev/null +++ b/src/new/musl/arch/mips/mod.rs @@ -0,0 +1,7 @@ +//! Source directory: `arch/mips/` +//! +//! + +pub(crate) mod bits { + pub(crate) mod socket; +} diff --git a/src/new/musl/arch/mips64/bits/socket.rs b/src/new/musl/arch/mips64/bits/socket.rs new file mode 100644 index 0000000000000..77b53e489c3d8 --- /dev/null +++ b/src/new/musl/arch/mips64/bits/socket.rs @@ -0,0 +1,4 @@ +use crate::prelude::*; + +pub const SOCK_STREAM: c_int = 2; +pub const SOCK_DGRAM: c_int = 1; diff --git a/src/new/musl/arch/mips64/mod.rs b/src/new/musl/arch/mips64/mod.rs new file mode 100644 index 0000000000000..6a45b067b998e --- /dev/null +++ b/src/new/musl/arch/mips64/mod.rs @@ -0,0 +1,7 @@ +//! Source directory: `arch/mips64/` +//! +//! + +pub(crate) mod bits { + pub(crate) mod socket; +} diff --git a/src/new/musl/arch/mod.rs b/src/new/musl/arch/mod.rs new file mode 100644 index 0000000000000..514d7b4bdfea7 --- /dev/null +++ b/src/new/musl/arch/mod.rs @@ -0,0 +1,10 @@ +//! Source directory: `arch/` +//! +//! + +pub(crate) mod generic; + +#[cfg(target_arch = "mips")] +pub(crate) mod mips; +#[cfg(target_arch = "mips64")] +pub(crate) mod mips64; diff --git a/src/new/musl/mod.rs b/src/new/musl/mod.rs index 7b1f31e340a1f..d6297a8d27dd8 100644 --- a/src/new/musl/mod.rs +++ b/src/new/musl/mod.rs @@ -3,4 +3,28 @@ //! * Headers: (official) //! * Headers: (mirror) +// The musl build system includes `arch/$(ARCH)` (preferred if it exists) and `arch/generic` (used +// as the fallback). We can't exactly mirror this with glob exports, so instead we selectively +// reexport in a new module. +mod arch; + +pub(crate) mod bits { + cfg_if! { + if #[cfg(target_arch = "mips")] { + pub(crate) use super::arch::mips::bits::socket; + } else if #[cfg(target_arch = "mips64")] { + pub(crate) use super::arch::mips64::bits::socket; + } else { + // Reexports from generic will live here once we need them. + } + } +} + +/// Directory: `sys/` +/// +/// +pub(crate) mod sys { + pub(crate) mod socket; +} + pub(crate) mod unistd; diff --git a/src/new/musl/sys/socket.rs b/src/new/musl/sys/socket.rs new file mode 100644 index 0000000000000..f7105c9bbca16 --- /dev/null +++ b/src/new/musl/sys/socket.rs @@ -0,0 +1,63 @@ +//! Header: `sys/socket.h` +//! +//! + +use crate::prelude::*; + +s! { + pub struct msghdr { + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + #[cfg(all(target_pointer_width = "64", target_endian = "big"))] + __pad1: c_int, + pub msg_iovlen: c_int, + #[cfg(all(target_pointer_width = "64", target_endian = "little"))] + __pad1: c_int, + pub msg_control: *mut c_void, + #[cfg(all(target_pointer_width = "64", target_endian = "big"))] + __pad2: c_int, + pub msg_controllen: crate::socklen_t, + #[cfg(all(target_pointer_width = "64", target_endian = "little"))] + __pad2: c_int, + pub msg_flags: c_int, + } + + pub struct cmsghdr { + #[cfg(all(target_pointer_width = "64", target_endian = "big"))] + pub __pad1: c_int, + pub cmsg_len: crate::socklen_t, + #[cfg(all(target_pointer_width = "64", target_endian = "little"))] + pub __pad1: c_int, + pub cmsg_level: c_int, + pub cmsg_type: c_int, + } +} + +extern "C" { + pub fn sendmmsg( + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_uint, + ) -> c_int; + pub fn recvmmsg( + sockfd: c_int, + msgvec: *mut crate::mmsghdr, + vlen: c_uint, + flags: c_uint, + timeout: *mut crate::timespec, + ) -> c_int; +} + +cfg_if! { + if #[cfg(any(target_arch = "mips", target_arch = "mips64"))] { + pub use crate::bits::socket::{ + SOCK_DGRAM, + SOCK_STREAM, + }; + } else { + pub const SOCK_STREAM: c_int = 1; + pub const SOCK_DGRAM: c_int = 2; + } +} diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 3d2f21a53062e..ebbc9a44818e0 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -5739,16 +5739,20 @@ f! { return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1); } - pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { - if ((*cmsg).cmsg_len as usize) < size_of::() { - return core::ptr::null_mut::(); + pub fn CMSG_NXTHDR( + mhdr: *const crate::msghdr, + cmsg: *const crate::cmsghdr, + ) -> *mut crate::cmsghdr { + if ((*cmsg).cmsg_len as usize) < size_of::() { + return core::ptr::null_mut::(); } - let next = (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; + let next = + (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut crate::cmsghdr; let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; if (next.wrapping_offset(1)) as usize > max || next as usize + super::CMSG_ALIGN((*next).cmsg_len as usize) > max { - core::ptr::null_mut::() + core::ptr::null_mut::() } else { next } diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index a04f05ea50db8..189a294ea624f 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -272,9 +272,6 @@ pub const MAP_NONBLOCK: c_int = 0x010000; pub const MAP_STACK: c_int = 0x020000; pub const MAP_SYNC: c_int = 0x080000; -pub const SOCK_STREAM: c_int = 1; -pub const SOCK_DGRAM: c_int = 2; - pub const EDEADLK: c_int = 35; pub const ENAMETOOLONG: c_int = 36; pub const ENOLCK: c_int = 37; diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index b687953554184..1c29114338adb 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -244,8 +244,6 @@ pub const SIGXFSZ: c_int = 25; pub const SIG_SETMASK: c_int = 2; // FIXME(musl) check these pub const SIG_BLOCK: c_int = 0x000000; pub const SIG_UNBLOCK: c_int = 0x01; -pub const SOCK_DGRAM: c_int = 2; -pub const SOCK_STREAM: c_int = 1; pub const SOL_CAIF: c_int = 278; pub const SOL_IUCV: c_int = 277; pub const SOL_KCM: c_int = 281; diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index 7564dcf612f9c..d8c3ee9d54736 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -338,9 +338,6 @@ pub const ENOTRECOVERABLE: c_int = 166; pub const EHWPOISON: c_int = 168; pub const ERFKILL: c_int = 167; -pub const SOCK_STREAM: c_int = 2; -pub const SOCK_DGRAM: c_int = 1; - pub const SA_ONSTACK: c_int = 0x08000000; pub const SA_SIGINFO: c_int = 8; pub const SA_NOCLDWAIT: c_int = 0x10000; diff --git a/src/unix/linux_like/linux/musl/b32/mod.rs b/src/unix/linux_like/linux/musl/b32/mod.rs index 00b3d7705090f..ac76d3c659700 100644 --- a/src/unix/linux_like/linux/musl/b32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mod.rs @@ -15,22 +15,6 @@ s! { __val: [c_ulong; 32], } - pub struct msghdr { - pub msg_name: *mut c_void, - pub msg_namelen: crate::socklen_t, - pub msg_iov: *mut crate::iovec, - pub msg_iovlen: c_int, - pub msg_control: *mut c_void, - pub msg_controllen: crate::socklen_t, - pub msg_flags: c_int, - } - - pub struct cmsghdr { - pub cmsg_len: crate::socklen_t, - pub cmsg_level: c_int, - pub cmsg_type: c_int, - } - pub struct sem_t { __val: [c_int; 4], } diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index a07dfda17794e..60305b3041013 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -223,9 +223,6 @@ pub const MAP_SYNC: c_int = 0x080000; pub const PTRACE_SYSEMU: c_int = 0x1d; pub const PTRACE_SYSEMU_SINGLESTEP: c_int = 0x1e; -pub const SOCK_STREAM: c_int = 1; -pub const SOCK_DGRAM: c_int = 2; - pub const EDEADLK: c_int = 35; pub const ENAMETOOLONG: c_int = 36; pub const ENOLCK: c_int = 37; diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index d78df7528d26f..04ecf1b46c42d 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -207,8 +207,6 @@ pub const ENOTRECOVERABLE: c_int = 131; pub const EHWPOISON: c_int = 133; pub const ERFKILL: c_int = 132; -pub const SOCK_STREAM: c_int = 1; -pub const SOCK_DGRAM: c_int = 2; pub const SA_ONSTACK: c_int = 0x08000000; pub const SA_SIGINFO: c_int = 4; pub const SA_NOCLDWAIT: c_int = 2; diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index ae8b7d761dd6f..43ea2e88ff467 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -314,9 +314,6 @@ pub const MAP_NONBLOCK: c_int = 0x010000; pub const MAP_STACK: c_int = 0x020000; pub const MAP_SYNC: c_int = 0x080000; -pub const SOCK_STREAM: c_int = 1; -pub const SOCK_DGRAM: c_int = 2; - pub const EDEADLK: c_int = 35; pub const ENAMETOOLONG: c_int = 36; pub const ENOLCK: c_int = 37; diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index 67151a8d37116..087e39001e84f 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -279,9 +279,6 @@ pub const MAP_STACK: c_int = 0x020000; pub const MAP_HUGETLB: c_int = 0x040000; pub const MAP_SYNC: c_int = 0x080000; -pub const SOCK_STREAM: c_int = 1; -pub const SOCK_DGRAM: c_int = 2; - pub const SA_ONSTACK: c_int = 0x08000000; pub const SA_SIGINFO: c_int = 0x00000004; pub const SA_NOCLDWAIT: c_int = 0x00000002; diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index 6ae9637cb58c6..c151b0ec32046 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -573,9 +573,6 @@ pub const VEOF: usize = 4; pub const POLLWRNORM: c_short = 0x100; pub const POLLWRBAND: c_short = 0x200; -pub const SOCK_STREAM: c_int = 1; -pub const SOCK_DGRAM: c_int = 2; - pub const MAP_ANON: c_int = 0x0020; pub const MAP_GROWSDOWN: c_int = 0x0100; pub const MAP_DENYWRITE: c_int = 0x0800; diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index 95dd37c889804..4d40637c0cb99 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -584,9 +584,6 @@ pub const MAP_NONBLOCK: c_int = 0x20000; pub const MAP_STACK: c_int = 0x40000; pub const MAP_HUGETLB: c_int = 0x080000; -pub const SOCK_STREAM: c_int = 2; -pub const SOCK_DGRAM: c_int = 1; - pub const SA_ONSTACK: c_int = 0x08000000; pub const SA_SIGINFO: c_int = 0x00000008; pub const SA_NOCLDWAIT: c_int = 0x00010000; diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index 1bfd812ab2a34..35545402d11d1 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -48,34 +48,6 @@ s! { __pad2: c_ulong, } - pub struct msghdr { - pub msg_name: *mut c_void, - pub msg_namelen: crate::socklen_t, - pub msg_iov: *mut crate::iovec, - #[cfg(target_endian = "big")] - __pad1: c_int, - pub msg_iovlen: c_int, - #[cfg(target_endian = "little")] - __pad1: c_int, - pub msg_control: *mut c_void, - #[cfg(target_endian = "big")] - __pad2: c_int, - pub msg_controllen: crate::socklen_t, - #[cfg(target_endian = "little")] - __pad2: c_int, - pub msg_flags: c_int, - } - - pub struct cmsghdr { - #[cfg(target_endian = "big")] - pub __pad1: c_int, - pub cmsg_len: crate::socklen_t, - #[cfg(target_endian = "little")] - pub __pad1: c_int, - pub cmsg_level: c_int, - pub cmsg_type: c_int, - } - pub struct sem_t { __val: [c_int; 8], } diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index bbcd382211dfd..34d56192a585a 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -214,9 +214,6 @@ pub const MAP_SYNC: c_int = 0x080000; pub const PTRACE_SYSEMU: c_int = 0x1d; pub const PTRACE_SYSEMU_SINGLESTEP: c_int = 0x1e; -pub const SOCK_STREAM: c_int = 1; -pub const SOCK_DGRAM: c_int = 2; - pub const SA_ONSTACK: c_int = 0x08000000; pub const SA_SIGINFO: c_int = 0x00000004; pub const SA_NOCLDWAIT: c_int = 0x00000002; diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index cd93ef706deeb..29e950cc372f9 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -567,9 +567,6 @@ pub const VEOF: usize = 4; pub const POLLWRNORM: c_short = 0x100; pub const POLLWRBAND: c_short = 0x200; -pub const SOCK_STREAM: c_int = 1; -pub const SOCK_DGRAM: c_int = 2; - pub const MADV_SOFT_OFFLINE: c_int = 101; pub const MAP_ANON: c_int = 0x0020; pub const MAP_GROWSDOWN: c_int = 0x0100; diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index 490d130c65bc4..c0332205a7948 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -165,9 +165,6 @@ pub const SIGSTKSZ: size_t = 0x2000; pub const MINSIGSTKSZ: size_t = 2048; pub const SIG_SETMASK: c_int = 2; -pub const SOCK_STREAM: c_int = 1; -pub const SOCK_DGRAM: c_int = 2; - pub const O_NOCTTY: c_int = 256; pub const O_SYNC: c_int = 1052672; pub const O_RSYNC: c_int = 1052672; diff --git a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs index 00dc4e5b97f2d..903bd48a37323 100644 --- a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs @@ -584,9 +584,6 @@ pub const VEOF: usize = 4; pub const POLLWRNORM: c_short = 0x100; pub const POLLWRBAND: c_short = 0x200; -pub const SOCK_STREAM: c_int = 1; -pub const SOCK_DGRAM: c_int = 2; - pub const MAP_ANON: c_int = 0x0020; pub const MAP_GROWSDOWN: c_int = 0x0100; pub const MAP_DENYWRITE: c_int = 0x0800; diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index ce8319f015e97..ebb8084468b66 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -818,9 +818,6 @@ pub const VEOF: usize = 4; pub const POLLWRNORM: c_short = 0x100; pub const POLLWRBAND: c_short = 0x200; -pub const SOCK_STREAM: c_int = 1; -pub const SOCK_DGRAM: c_int = 2; - pub const MAP_ANON: c_int = 0x0020; pub const MAP_GROWSDOWN: c_int = 0x0100; pub const MAP_DENYWRITE: c_int = 0x0800; diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 4bc11449145c7..813bba693097d 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -848,20 +848,6 @@ cfg_if! { } extern "C" { - pub fn sendmmsg( - sockfd: c_int, - msgvec: *mut crate::mmsghdr, - vlen: c_uint, - flags: c_uint, - ) -> c_int; - pub fn recvmmsg( - sockfd: c_int, - msgvec: *mut crate::mmsghdr, - vlen: c_uint, - flags: c_uint, - timeout: *mut crate::timespec, - ) -> c_int; - pub fn getrlimit(resource: c_int, rlim: *mut crate::rlimit) -> c_int; pub fn setrlimit(resource: c_int, rlim: *const crate::rlimit) -> c_int; pub fn prlimit( From 5e113a36a1a523bf96bcf09219b430488c2a866b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 2 Nov 2025 03:27:26 -0600 Subject: [PATCH 0963/1228] Flip `Copy` and `PartialEq, Hash` derives for packed struct support 1.63 doesn't support deriving `PartialEq` on non-`Copy` packed structs and will error out here because it doesn't realize `Copy` is added later. Swapping the order of the derives resolves this issue and enables us to derive `extra_traits` even on packed structs. (backport ) (cherry picked from commit 79d1bdbb07b0b782cdb7b482c6a26a81dc044fc3) --- src/macros.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index 6f0adb9d46084..eec90c7e44cc1 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -154,15 +154,15 @@ macro_rules! s { (it: $(#[$attr:meta])* $pub:vis struct $i:ident { $($field:tt)* }) => ( __item! { #[repr(C)] - #[cfg_attr( - feature = "extra_traits", - ::core::prelude::v1::derive(Eq, Hash, PartialEq) - )] #[::core::prelude::v1::derive( ::core::clone::Clone, ::core::marker::Copy, ::core::fmt::Debug, )] + #[cfg_attr( + feature = "extra_traits", + ::core::prelude::v1::derive(Eq, Hash, PartialEq) + )] #[allow(deprecated)] $(#[$attr])* $pub struct $i { $($field)* } From c1009549643c30fab03943abb378548faec78383 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 2 Nov 2025 03:17:12 -0600 Subject: [PATCH 0964/1228] cleanup: Use derived traits as much as possible Historically Rust hasn't supported derives on packed structs well, and until recently our automatic derives via `s!` still did not support these (fixed by 79d1bdbb07b0 ("Flip `Copy` and `PartialEq, Hash` derives")). This meant that any packed struct implementing `extra_traits` had handwritten implementations that are no longer needed. There are also a handful of cases that use a handwritten implementation in order to selectively exclude padding fields. Others don't seem to be handwritten for any specific reason. Clean up all of the above by switching from `s_no_extra_traits!` to `s!` and deleting the handwritten implementations wherever possible. The only remaining handwritten implementations are those that compare unions with `unsafe` (which will have to be addressed) or floats. Note that in some cases, this means we are no longer excluding padding fields from comparisons. These traits are only usable via references, not raw pointers; thus, the user has asserted that they are initialized, and there is no UB in `libc` by reading them. Practically the only way to know they are initialized is by starting with a zeroed struct, so in most cases they will have no effect on the results. Whether or not padding fields are included in handwritten traits is also completely inconsistent (most include them), so there isn't much predictability lost here. The new `Padding` type will also improve the situation here in the future. (backport ) (cherry picked from commit 141aea1c5c1d13c6193056862a04000d860ece51) [ note that this was very conflict-heavy so the cherry pick differs quite a bit from the original commit - Trevor ] --- src/fuchsia/mod.rs | 267 +---- src/fuchsia/x86_64.rs | 32 - src/unix/aix/mod.rs | 38 +- src/unix/aix/powerpc64.rs | 67 +- src/unix/bsd/apple/b32/mod.rs | 43 +- src/unix/bsd/apple/b64/mod.rs | 41 - src/unix/bsd/apple/mod.rs | 915 +----------------- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 251 ----- src/unix/bsd/freebsdlike/freebsd/aarch64.rs | 70 +- src/unix/bsd/freebsdlike/freebsd/arm.rs | 28 +- .../bsd/freebsdlike/freebsd/freebsd11/mod.rs | 119 --- .../bsd/freebsdlike/freebsd/freebsd12/mod.rs | 121 --- .../bsd/freebsdlike/freebsd/freebsd13/mod.rs | 121 --- .../bsd/freebsdlike/freebsd/freebsd14/mod.rs | 121 --- .../bsd/freebsdlike/freebsd/freebsd15/mod.rs | 121 --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 609 ++---------- src/unix/bsd/freebsdlike/freebsd/powerpc.rs | 34 +- src/unix/bsd/freebsdlike/freebsd/powerpc64.rs | 34 +- src/unix/bsd/freebsdlike/freebsd/riscv64.rs | 74 +- src/unix/bsd/freebsdlike/freebsd/x86.rs | 84 +- .../bsd/freebsdlike/freebsd/x86_64/mod.rs | 193 +--- src/unix/bsd/freebsdlike/mod.rs | 30 - src/unix/bsd/mod.rs | 70 -- src/unix/bsd/netbsdlike/netbsd/mod.rs | 289 +----- src/unix/bsd/netbsdlike/openbsd/mod.rs | 354 ++----- src/unix/bsd/netbsdlike/openbsd/x86_64.rs | 44 - src/unix/cygwin/mod.rs | 172 +--- src/unix/haiku/mod.rs | 128 --- src/unix/haiku/native.rs | 28 +- src/unix/haiku/x86_64.rs | 152 +-- src/unix/hurd/mod.rs | 44 - src/unix/linux_like/android/b32/arm.rs | 52 +- src/unix/linux_like/android/b32/x86/mod.rs | 50 +- src/unix/linux_like/android/b64/mod.rs | 74 -- src/unix/linux_like/android/b64/x86_64/mod.rs | 164 +--- src/unix/linux_like/android/mod.rs | 259 +---- src/unix/linux_like/emscripten/mod.rs | 104 +- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 32 +- src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 70 +- .../linux_like/linux/gnu/b64/x86_64/mod.rs | 69 +- src/unix/linux_like/linux/gnu/mod.rs | 126 +-- src/unix/linux_like/linux/mod.rs | 473 +++------ src/unix/linux_like/linux/musl/b32/arm/mod.rs | 29 +- src/unix/linux_like/linux/musl/b32/x86/mod.rs | 74 +- .../linux_like/linux/musl/b64/x86_64/mod.rs | 73 +- src/unix/linux_like/linux/musl/mod.rs | 94 -- src/unix/linux_like/mod.rs | 131 +-- src/unix/newlib/mod.rs | 2 + src/unix/nto/mod.rs | 264 +---- src/unix/redox/mod.rs | 123 +-- src/unix/solarish/illumos.rs | 59 -- src/unix/solarish/mod.rs | 168 +--- src/unix/solarish/solaris.rs | 70 +- src/unix/solarish/x86_64.rs | 40 +- 54 files changed, 561 insertions(+), 6733 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 134a2faf87966..35046446c4476 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -880,9 +880,7 @@ s! { pub struct pthread_condattr_t { size: [u8; crate::__SIZEOF_PTHREAD_CONDATTR_T], } -} -s_no_extra_traits! { pub struct sysinfo { pub uptime: c_ulong, pub loads: [c_ulong; 3], @@ -969,6 +967,8 @@ s_no_extra_traits! { pub nl_groups: u32, } + // FIXME(msrv): suggested method was added in 1.85 + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigevent { pub sigev_value: crate::sigval, pub sigev_signo: c_int, @@ -1023,269 +1023,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for sysinfo { - fn eq(&self, other: &sysinfo) -> bool { - self.uptime == other.uptime - && self.loads == other.loads - && self.totalram == other.totalram - && self.freeram == other.freeram - && self.sharedram == other.sharedram - && self.bufferram == other.bufferram - && self.totalswap == other.totalswap - && self.freeswap == other.freeswap - && self.procs == other.procs - && self.pad == other.pad - && self.totalhigh == other.totalhigh - && self.freehigh == other.freehigh - && self.mem_unit == other.mem_unit - && self - .__reserved - .iter() - .zip(other.__reserved.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sysinfo {} - impl hash::Hash for sysinfo { - fn hash(&self, state: &mut H) { - self.uptime.hash(state); - self.loads.hash(state); - self.totalram.hash(state); - self.freeram.hash(state); - self.sharedram.hash(state); - self.bufferram.hash(state); - self.totalswap.hash(state); - self.freeswap.hash(state); - self.procs.hash(state); - self.pad.hash(state); - self.totalhigh.hash(state); - self.freehigh.hash(state); - self.mem_unit.hash(state); - self.__reserved.hash(state); - } - } - - impl PartialEq for sockaddr_un { - fn eq(&self, other: &sockaddr_un) -> bool { - self.sun_family == other.sun_family - && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_un {} - impl hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { - self.sun_family.hash(state); - self.sun_path.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_family == other.ss_family - && self.__ss_align == other.__ss_align - && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_storage {} - impl hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_family.hash(state); - self.__ss_align.hash(state); - self.__ss_pad2.hash(state); - } - } - - impl PartialEq for utsname { - fn eq(&self, other: &utsname) -> bool { - self.sysname - .iter() - .zip(other.sysname.iter()) - .all(|(a, b)| a == b) - && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a, b)| a == b) - && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a, b)| a == b) - && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a, b)| a == b) - && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for utsname {} - impl hash::Hash for utsname { - fn hash(&self, state: &mut H) { - self.sysname.hash(state); - self.nodename.hash(state); - self.release.hash(state); - self.version.hash(state); - self.machine.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for dirent {} - impl hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for dirent64 { - fn eq(&self, other: &dirent64) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for dirent64 {} - impl hash::Hash for dirent64 { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for mq_attr { - fn eq(&self, other: &mq_attr) -> bool { - self.mq_flags == other.mq_flags - && self.mq_maxmsg == other.mq_maxmsg - && self.mq_msgsize == other.mq_msgsize - && self.mq_curmsgs == other.mq_curmsgs - } - } - impl Eq for mq_attr {} - impl hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { - self.mq_flags.hash(state); - self.mq_maxmsg.hash(state); - self.mq_msgsize.hash(state); - self.mq_curmsgs.hash(state); - } - } - - impl PartialEq for sockaddr_nl { - fn eq(&self, other: &sockaddr_nl) -> bool { - self.nl_family == other.nl_family - && self.nl_pid == other.nl_pid - && self.nl_groups == other.nl_groups - } - } - impl Eq for sockaddr_nl {} - impl hash::Hash for sockaddr_nl { - fn hash(&self, state: &mut H) { - self.nl_family.hash(state); - self.nl_pid.hash(state); - self.nl_groups.hash(state); - } - } - - // FIXME(msrv): suggested method was added in 1.85 - #[allow(unpredictable_function_pointer_comparisons)] - impl PartialEq for sigevent { - fn eq(&self, other: &sigevent) -> bool { - self.sigev_value == other.sigev_value - && self.sigev_signo == other.sigev_signo - && self.sigev_notify == other.sigev_notify - && self.sigev_notify_function == other.sigev_notify_function - && self.sigev_notify_attributes == other.sigev_notify_attributes - } - } - impl Eq for sigevent {} - impl hash::Hash for sigevent { - fn hash(&self, state: &mut H) { - self.sigev_value.hash(state); - self.sigev_signo.hash(state); - self.sigev_notify.hash(state); - self.sigev_notify_function.hash(state); - self.sigev_notify_attributes.hash(state); - } - } - - impl PartialEq for pthread_cond_t { - fn eq(&self, other: &pthread_cond_t) -> bool { - self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b) - } - } - impl Eq for pthread_cond_t {} - impl hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - - impl PartialEq for pthread_mutex_t { - fn eq(&self, other: &pthread_mutex_t) -> bool { - self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b) - } - } - impl Eq for pthread_mutex_t {} - impl hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - - impl PartialEq for pthread_rwlock_t { - fn eq(&self, other: &pthread_rwlock_t) -> bool { - self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b) - } - } - impl Eq for pthread_rwlock_t {} - impl hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - } -} - // PUB_CONST pub const INT_MIN: c_int = -2147483648; diff --git a/src/fuchsia/x86_64.rs b/src/fuchsia/x86_64.rs index add60a4564020..2ce21e20fefc4 100644 --- a/src/fuchsia/x86_64.rs +++ b/src/fuchsia/x86_64.rs @@ -64,9 +64,7 @@ s! { __unused1: c_long, __unused2: c_long, } -} -s_no_extra_traits! { pub struct ucontext_t { pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, @@ -77,36 +75,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask == other.uc_sigmask - && self - .__private - .iter() - .zip(other.__private.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for ucontext_t {} - impl hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask.hash(state); - self.__private.hash(state); - } - } - } -} - // offsets in user_regs_structs, from sys/reg.h pub const R15: c_int = 0; pub const R14: c_int = 1; diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 0b91a22cae8cc..417b4a413300a 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -544,14 +544,6 @@ s! { pub sa_mask: sigset_t, pub sa_flags: c_int, } -} - -s_no_extra_traits! { - pub union __poll_ctl_ext_u { - pub addr: *mut c_void, - pub data32: u32, - pub data: u64, - } pub struct poll_ctl_ext { pub version: u8, @@ -563,6 +555,14 @@ s_no_extra_traits! { } } +s_no_extra_traits! { + pub union __poll_ctl_ext_u { + pub addr: *mut c_void, + pub data32: u32, + pub data: u64, + } +} + cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for __poll_ctl_ext_u { @@ -584,28 +584,6 @@ cfg_if! { } } } - - impl PartialEq for poll_ctl_ext { - fn eq(&self, other: &poll_ctl_ext) -> bool { - self.version == other.version - && self.command == other.command - && self.events == other.events - && self.fd == other.fd - && self.reserved64 == other.reserved64 - && self.u == other.u - } - } - impl Eq for poll_ctl_ext {} - impl hash::Hash for poll_ctl_ext { - fn hash(&self, state: &mut H) { - self.version.hash(state); - self.command.hash(state); - self.events.hash(state); - self.fd.hash(state); - self.u.hash(state); - self.reserved64.hash(state); - } - } } } diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index f3a4419efb38f..a936ddb7e2f99 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -244,9 +244,7 @@ s! { 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, @@ -261,6 +259,15 @@ s_no_extra_traits! { pub __pad: [c_int; 3], } + pub struct pollfd_ext { + pub fd: c_int, + pub events: c_short, + pub revents: c_short, + pub data: __pollfd_ext_u, + } +} + +s_no_extra_traits! { pub union _kernel_simple_lock { pub _slock: c_long, pub _slockp: *mut lock_data_instrumented, @@ -335,13 +342,6 @@ s_no_extra_traits! { pub data: u64, } - pub struct pollfd_ext { - pub fd: c_int, - pub events: c_short, - pub revents: c_short, - pub data: __pollfd_ext_u, - } - pub struct fpreg_t { pub d: c_double, } @@ -371,36 +371,6 @@ impl siginfo_t { cfg_if! { if #[cfg(feature = "extra_traits")] { - impl PartialEq for siginfo_t { - fn eq(&self, other: &siginfo_t) -> bool { - 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 - && self.si_value == other.si_value - } - } - impl Eq for siginfo_t {} - impl hash::Hash for siginfo_t { - fn hash(&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); - self.si_value.hash(state); - self.__si_flags.hash(state); - } - } - impl PartialEq for __pollfd_ext_u { fn eq(&self, other: &__pollfd_ext_u) -> bool { unsafe { @@ -421,31 +391,12 @@ cfg_if! { } } - impl PartialEq for pollfd_ext { - fn eq(&self, other: &pollfd_ext) -> bool { - self.fd == other.fd - && self.events == other.events - && self.revents == other.revents - && self.data == other.data - } - } - impl Eq for pollfd_ext {} - impl hash::Hash for pollfd_ext { - fn hash(&self, state: &mut H) { - self.fd.hash(state); - self.events.hash(state); - self.revents.hash(state); - self.data.hash(state); - } - } impl PartialEq for fpreg_t { fn eq(&self, other: &fpreg_t) -> bool { self.d == other.d } } - impl Eq for fpreg_t {} - impl hash::Hash for fpreg_t { fn hash(&self, state: &mut H) { let d: u64 = self.d.to_bits(); diff --git a/src/unix/bsd/apple/b32/mod.rs b/src/unix/bsd/apple/b32/mod.rs index bd6762558f508..f4234a110d827 100644 --- a/src/unix/bsd/apple/b32/mod.rs +++ b/src/unix/bsd/apple/b32/mod.rs @@ -47,9 +47,7 @@ s! { pub struct malloc_zone_t { __private: [crate::uintptr_t; 18], // FIXME(macos): keeping private for now } -} -s_no_extra_traits! { pub struct pthread_attr_t { __sig: c_long, __opaque: [c_char; 36], @@ -59,52 +57,15 @@ s_no_extra_traits! { __sig: c_long, __opaque: [c_char; crate::__PTHREAD_ONCE_SIZE__], } +} +s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [f64; 2], } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for pthread_attr_t { - fn eq(&self, other: &pthread_attr_t) -> bool { - self.__sig == other.__sig - && self - .__opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for pthread_attr_t {} - impl hash::Hash for pthread_attr_t { - fn hash(&self, state: &mut H) { - self.__sig.hash(state); - self.__opaque.hash(state); - } - } - impl PartialEq for pthread_once_t { - fn eq(&self, other: &pthread_once_t) -> bool { - self.__sig == other.__sig - && self - .__opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for pthread_once_t {} - impl hash::Hash for pthread_once_t { - fn hash(&self, state: &mut H) { - self.__sig.hash(state); - self.__opaque.hash(state); - } - } - } -} - #[doc(hidden)] #[deprecated(since = "0.2.55")] pub const NET_RT_MAXID: c_int = 10; diff --git a/src/unix/bsd/apple/b64/mod.rs b/src/unix/bsd/apple/b64/mod.rs index 34743464a44e7..2fe60d177fefa 100644 --- a/src/unix/bsd/apple/b64/mod.rs +++ b/src/unix/bsd/apple/b64/mod.rs @@ -46,9 +46,7 @@ s! { pub bh_datalen: u32, pub bh_hdrlen: c_ushort, } -} -s_no_extra_traits! { pub struct pthread_attr_t { __sig: c_long, __opaque: [c_char; 56], @@ -60,45 +58,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for pthread_attr_t { - fn eq(&self, other: &pthread_attr_t) -> bool { - self.__sig == other.__sig - && self - .__opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for pthread_attr_t {} - impl hash::Hash for pthread_attr_t { - fn hash(&self, state: &mut H) { - self.__sig.hash(state); - self.__opaque.hash(state); - } - } - impl PartialEq for pthread_once_t { - fn eq(&self, other: &pthread_once_t) -> bool { - self.__sig == other.__sig - && self - .__opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for pthread_once_t {} - impl hash::Hash for pthread_once_t { - fn hash(&self, state: &mut H) { - self.__sig.hash(state); - self.__opaque.hash(state); - } - } - } -} - #[doc(hidden)] #[deprecated(since = "0.2.55")] pub const NET_RT_MAXID: c_int = 11; diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index e85323c73227a..3080a3c27901c 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1307,14 +1307,6 @@ s! { pub proc_fd: i32, pub proc_fdtype: u32, } -} - -s_no_extra_traits! { - #[repr(packed(4))] - pub struct ifconf { - pub ifc_len: c_int, - pub ifc_ifcu: __c_anonymous_ifc_ifcu, - } #[repr(packed(4))] pub struct kevent { @@ -1610,11 +1602,6 @@ s_no_extra_traits! { pub ifdm_max: c_int, } - pub union __c_anonymous_ifk_data { - pub ifk_ptr: *mut c_void, - pub ifk_value: c_int, - } - #[repr(packed(4))] pub struct ifkpi { pub ifk_module_id: c_uint, @@ -1622,6 +1609,28 @@ s_no_extra_traits! { pub ifk_data: __c_anonymous_ifk_data, } + pub struct ifreq { + pub ifr_name: [c_char; crate::IFNAMSIZ], + pub ifr_ifru: __c_anonymous_ifr_ifru, + } + + pub struct in6_ifreq { + pub ifr_name: [c_char; crate::IFNAMSIZ], + pub ifr_ifru: __c_anonymous_ifr_ifru6, + } +} + +s_no_extra_traits! { + #[repr(packed(4))] + pub struct ifconf { + pub ifc_len: c_int, + pub ifc_ifcu: __c_anonymous_ifc_ifcu, + } + pub union __c_anonymous_ifk_data { + pub ifk_ptr: *mut c_void, + pub ifk_value: c_int, + } + pub union __c_anonymous_ifr_ifru { pub ifru_addr: crate::sockaddr, pub ifru_dstaddr: crate::sockaddr, @@ -1641,11 +1650,6 @@ s_no_extra_traits! { pub ifru_functional_type: u32, } - pub struct ifreq { - pub ifr_name: [c_char; crate::IFNAMSIZ], - pub ifr_ifru: __c_anonymous_ifr_ifru, - } - pub union __c_anonymous_ifc_ifcu { pub ifcu_buf: *mut c_char, pub ifcu_req: *mut ifreq, @@ -1664,11 +1668,6 @@ s_no_extra_traits! { pub ifru_icmp6stat: icmp6_ifstat, pub ifru_scope_id: [u32; SCOPE6_ID_MAX], } - - pub struct in6_ifreq { - pub ifr_name: [c_char; crate::IFNAMSIZ], - pub ifr_ifru: __c_anonymous_ifr_ifru6, - } } impl siginfo_t { @@ -1752,838 +1751,6 @@ cfg_if! { } impl Eq for ifconf {} - impl PartialEq for kevent { - fn eq(&self, other: &kevent) -> bool { - self.ident == other.ident - && self.filter == other.filter - && self.flags == other.flags - && self.fflags == other.fflags - && self.data == other.data - && self.udata == other.udata - } - } - impl Eq for kevent {} - impl hash::Hash for kevent { - fn hash(&self, state: &mut H) { - let ident = self.ident; - let filter = self.filter; - let flags = self.flags; - let fflags = self.fflags; - let data = self.data; - let udata = self.udata; - ident.hash(state); - filter.hash(state); - flags.hash(state); - fflags.hash(state); - data.hash(state); - udata.hash(state); - } - } - - impl PartialEq for semid_ds { - fn eq(&self, other: &semid_ds) -> bool { - let sem_perm = self.sem_perm; - let sem_pad3 = self.sem_pad3; - let other_sem_perm = other.sem_perm; - let other_sem_pad3 = other.sem_pad3; - sem_perm == other_sem_perm - && self.sem_base == other.sem_base - && self.sem_nsems == other.sem_nsems - && self.sem_otime == other.sem_otime - && self.sem_pad1 == other.sem_pad1 - && self.sem_ctime == other.sem_ctime - && self.sem_pad2 == other.sem_pad2 - && sem_pad3 == other_sem_pad3 - } - } - impl Eq for semid_ds {} - impl hash::Hash for semid_ds { - fn hash(&self, state: &mut H) { - let sem_perm = self.sem_perm; - let sem_base = self.sem_base; - let sem_nsems = self.sem_nsems; - let sem_otime = self.sem_otime; - let sem_pad1 = self.sem_pad1; - let sem_ctime = self.sem_ctime; - let sem_pad2 = self.sem_pad2; - let sem_pad3 = self.sem_pad3; - sem_perm.hash(state); - sem_base.hash(state); - sem_nsems.hash(state); - sem_otime.hash(state); - sem_pad1.hash(state); - sem_ctime.hash(state); - sem_pad2.hash(state); - sem_pad3.hash(state); - } - } - - impl PartialEq for shmid_ds { - fn eq(&self, other: &shmid_ds) -> bool { - let shm_perm = self.shm_perm; - let other_shm_perm = other.shm_perm; - shm_perm == other_shm_perm - && self.shm_segsz == other.shm_segsz - && self.shm_lpid == other.shm_lpid - && self.shm_cpid == other.shm_cpid - && self.shm_nattch == other.shm_nattch - && self.shm_atime == other.shm_atime - && self.shm_dtime == other.shm_dtime - && self.shm_ctime == other.shm_ctime - && self.shm_internal == other.shm_internal - } - } - impl Eq for shmid_ds {} - impl hash::Hash for shmid_ds { - fn hash(&self, state: &mut H) { - let shm_perm = self.shm_perm; - let shm_segsz = self.shm_segsz; - let shm_lpid = self.shm_lpid; - let shm_cpid = self.shm_cpid; - let shm_nattch = self.shm_nattch; - let shm_atime = self.shm_atime; - let shm_dtime = self.shm_dtime; - let shm_ctime = self.shm_ctime; - let shm_internal = self.shm_internal; - shm_perm.hash(state); - shm_segsz.hash(state); - shm_lpid.hash(state); - shm_cpid.hash(state); - shm_nattch.hash(state); - shm_atime.hash(state); - shm_dtime.hash(state); - shm_ctime.hash(state); - shm_internal.hash(state); - } - } - - impl PartialEq for proc_threadinfo { - fn eq(&self, other: &proc_threadinfo) -> bool { - self.pth_user_time == other.pth_user_time - && self.pth_system_time == other.pth_system_time - && self.pth_cpu_usage == other.pth_cpu_usage - && self.pth_policy == other.pth_policy - && self.pth_run_state == other.pth_run_state - && self.pth_flags == other.pth_flags - && self.pth_sleep_time == other.pth_sleep_time - && self.pth_curpri == other.pth_curpri - && self.pth_priority == other.pth_priority - && self.pth_maxpriority == other.pth_maxpriority - && self - .pth_name - .iter() - .zip(other.pth_name.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for proc_threadinfo {} - impl hash::Hash for proc_threadinfo { - fn hash(&self, state: &mut H) { - self.pth_user_time.hash(state); - self.pth_system_time.hash(state); - self.pth_cpu_usage.hash(state); - self.pth_policy.hash(state); - self.pth_run_state.hash(state); - self.pth_flags.hash(state); - self.pth_sleep_time.hash(state); - self.pth_curpri.hash(state); - self.pth_priority.hash(state); - self.pth_maxpriority.hash(state); - self.pth_name.hash(state); - } - } - - impl PartialEq for statfs { - fn eq(&self, other: &statfs) -> bool { - 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_fsid == other.f_fsid - && self.f_owner == other.f_owner - && self.f_flags == other.f_flags - && self.f_fssubtype == other.f_fssubtype - && self.f_fstypename == other.f_fstypename - && self.f_type == other.f_type - && self - .f_mntonname - .iter() - .zip(other.f_mntonname.iter()) - .all(|(a, b)| a == b) - && self - .f_mntfromname - .iter() - .zip(other.f_mntfromname.iter()) - .all(|(a, b)| a == b) - && self.f_reserved == other.f_reserved - } - } - - impl Eq for statfs {} - - impl hash::Hash for statfs { - fn hash(&self, state: &mut H) { - 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_fsid.hash(state); - self.f_owner.hash(state); - self.f_flags.hash(state); - self.f_fssubtype.hash(state); - self.f_fstypename.hash(state); - self.f_type.hash(state); - self.f_mntonname.hash(state); - self.f_mntfromname.hash(state); - self.f_reserved.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_ino == other.d_ino - && self.d_seekoff == other.d_seekoff - && self.d_reclen == other.d_reclen - && self.d_namlen == other.d_namlen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for dirent {} - impl hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_seekoff.hash(state); - self.d_reclen.hash(state); - self.d_namlen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - impl PartialEq for pthread_rwlock_t { - fn eq(&self, other: &pthread_rwlock_t) -> bool { - self.__sig == other.__sig - && self - .__opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for pthread_rwlock_t {} - impl hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { - self.__sig.hash(state); - self.__opaque.hash(state); - } - } - - impl PartialEq for pthread_mutex_t { - fn eq(&self, other: &pthread_mutex_t) -> bool { - self.__sig == other.__sig - && self - .__opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for pthread_mutex_t {} - - impl hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { - self.__sig.hash(state); - self.__opaque.hash(state); - } - } - - impl PartialEq for pthread_cond_t { - fn eq(&self, other: &pthread_cond_t) -> bool { - self.__sig == other.__sig - && self - .__opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for pthread_cond_t {} - - impl hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { - self.__sig.hash(state); - self.__opaque.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_len == other.ss_len - && self.ss_family == other.ss_family - && self - .__ss_pad1 - .iter() - .zip(other.__ss_pad1.iter()) - .all(|(a, b)| a == b) - && self.__ss_align == other.__ss_align - && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for sockaddr_storage {} - - impl hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_len.hash(state); - self.ss_family.hash(state); - self.__ss_pad1.hash(state); - self.__ss_align.hash(state); - self.__ss_pad2.hash(state); - } - } - - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_user - .iter() - .zip(other.ut_user.iter()) - .all(|(a, b)| a == b) - && self.ut_id == other.ut_id - && self.ut_line == other.ut_line - && self.ut_pid == other.ut_pid - && self.ut_type == other.ut_type - && self.ut_tv == other.ut_tv - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a, b)| a == b) - && self.ut_pad == other.ut_pad - } - } - - impl Eq for utmpx {} - - impl hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_user.hash(state); - self.ut_id.hash(state); - self.ut_line.hash(state); - self.ut_pid.hash(state); - self.ut_type.hash(state); - self.ut_tv.hash(state); - self.ut_host.hash(state); - self.ut_pad.hash(state); - } - } - - impl PartialEq for sigevent { - fn eq(&self, other: &sigevent) -> bool { - self.sigev_notify == other.sigev_notify - && self.sigev_signo == other.sigev_signo - && self.sigev_value == other.sigev_value - && self.sigev_notify_attributes == other.sigev_notify_attributes - } - } - - impl Eq for sigevent {} - - impl hash::Hash for sigevent { - fn hash(&self, state: &mut H) { - self.sigev_notify.hash(state); - self.sigev_signo.hash(state); - self.sigev_value.hash(state); - self.sigev_notify_attributes.hash(state); - } - } - - impl PartialEq for processor_cpu_load_info { - fn eq(&self, other: &processor_cpu_load_info) -> bool { - self.cpu_ticks == other.cpu_ticks - } - } - impl Eq for processor_cpu_load_info {} - impl hash::Hash for processor_cpu_load_info { - fn hash(&self, state: &mut H) { - self.cpu_ticks.hash(state); - } - } - - impl PartialEq for processor_basic_info { - fn eq(&self, other: &processor_basic_info) -> bool { - self.cpu_type == other.cpu_type - && self.cpu_subtype == other.cpu_subtype - && self.running == other.running - && self.slot_num == other.slot_num - && self.is_master == other.is_master - } - } - impl Eq for processor_basic_info {} - impl hash::Hash for processor_basic_info { - fn hash(&self, state: &mut H) { - self.cpu_type.hash(state); - self.cpu_subtype.hash(state); - self.running.hash(state); - self.slot_num.hash(state); - self.is_master.hash(state); - } - } - - impl PartialEq for processor_set_basic_info { - fn eq(&self, other: &processor_set_basic_info) -> bool { - self.processor_count == other.processor_count - && self.default_policy == other.default_policy - } - } - impl Eq for processor_set_basic_info {} - impl hash::Hash for processor_set_basic_info { - fn hash(&self, state: &mut H) { - self.processor_count.hash(state); - self.default_policy.hash(state); - } - } - - impl PartialEq for processor_set_load_info { - fn eq(&self, other: &processor_set_load_info) -> bool { - self.task_count == other.task_count - && self.thread_count == other.thread_count - && self.load_average == other.load_average - && self.mach_factor == other.mach_factor - } - } - impl Eq for processor_set_load_info {} - impl hash::Hash for processor_set_load_info { - fn hash(&self, state: &mut H) { - self.task_count.hash(state); - self.thread_count.hash(state); - self.load_average.hash(state); - self.mach_factor.hash(state); - } - } - - impl PartialEq for time_value_t { - fn eq(&self, other: &time_value_t) -> bool { - self.seconds == other.seconds && self.microseconds == other.microseconds - } - } - impl Eq for time_value_t {} - impl hash::Hash for time_value_t { - fn hash(&self, state: &mut H) { - self.seconds.hash(state); - self.microseconds.hash(state); - } - } - impl PartialEq for thread_basic_info { - fn eq(&self, other: &thread_basic_info) -> bool { - self.user_time == other.user_time - && self.system_time == other.system_time - && self.cpu_usage == other.cpu_usage - && self.policy == other.policy - && self.run_state == other.run_state - && self.flags == other.flags - && self.suspend_count == other.suspend_count - && self.sleep_time == other.sleep_time - } - } - impl Eq for thread_basic_info {} - impl hash::Hash for thread_basic_info { - fn hash(&self, state: &mut H) { - self.user_time.hash(state); - self.system_time.hash(state); - self.cpu_usage.hash(state); - self.policy.hash(state); - self.run_state.hash(state); - self.flags.hash(state); - self.suspend_count.hash(state); - self.sleep_time.hash(state); - } - } - impl PartialEq for thread_extended_info { - fn eq(&self, other: &thread_extended_info) -> bool { - self.pth_user_time == other.pth_user_time - && self.pth_system_time == other.pth_system_time - && self.pth_cpu_usage == other.pth_cpu_usage - && self.pth_policy == other.pth_policy - && self.pth_run_state == other.pth_run_state - && self.pth_flags == other.pth_flags - && self.pth_sleep_time == other.pth_sleep_time - && self.pth_curpri == other.pth_curpri - && self.pth_priority == other.pth_priority - && self.pth_maxpriority == other.pth_maxpriority - && self - .pth_name - .iter() - .zip(other.pth_name.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for thread_extended_info {} - impl hash::Hash for thread_extended_info { - fn hash(&self, state: &mut H) { - self.pth_user_time.hash(state); - self.pth_system_time.hash(state); - self.pth_cpu_usage.hash(state); - self.pth_policy.hash(state); - self.pth_run_state.hash(state); - self.pth_flags.hash(state); - self.pth_sleep_time.hash(state); - self.pth_curpri.hash(state); - self.pth_priority.hash(state); - self.pth_maxpriority.hash(state); - self.pth_name.hash(state); - } - } - impl PartialEq for thread_identifier_info { - fn eq(&self, other: &thread_identifier_info) -> bool { - self.thread_id == other.thread_id - && self.thread_handle == other.thread_handle - && self.dispatch_qaddr == other.dispatch_qaddr - } - } - impl Eq for thread_identifier_info {} - impl hash::Hash for thread_identifier_info { - fn hash(&self, state: &mut H) { - self.thread_id.hash(state); - self.thread_handle.hash(state); - self.dispatch_qaddr.hash(state); - } - } - impl PartialEq for if_data64 { - fn eq(&self, other: &if_data64) -> bool { - self.ifi_type == other.ifi_type - && self.ifi_typelen == other.ifi_typelen - && self.ifi_physical == other.ifi_physical - && self.ifi_addrlen == other.ifi_addrlen - && self.ifi_hdrlen == other.ifi_hdrlen - && self.ifi_recvquota == other.ifi_recvquota - && self.ifi_xmitquota == other.ifi_xmitquota - && self.ifi_unused1 == other.ifi_unused1 - && self.ifi_mtu == other.ifi_mtu - && self.ifi_metric == other.ifi_metric - && self.ifi_baudrate == other.ifi_baudrate - && self.ifi_ipackets == other.ifi_ipackets - && self.ifi_ierrors == other.ifi_ierrors - && self.ifi_opackets == other.ifi_opackets - && self.ifi_oerrors == other.ifi_oerrors - && self.ifi_collisions == other.ifi_collisions - && self.ifi_ibytes == other.ifi_ibytes - && self.ifi_obytes == other.ifi_obytes - && self.ifi_imcasts == other.ifi_imcasts - && self.ifi_omcasts == other.ifi_omcasts - && self.ifi_iqdrops == other.ifi_iqdrops - && self.ifi_noproto == other.ifi_noproto - && self.ifi_recvtiming == other.ifi_recvtiming - && self.ifi_xmittiming == other.ifi_xmittiming - && self.ifi_lastchange == other.ifi_lastchange - } - } - impl Eq for if_data64 {} - impl hash::Hash for if_data64 { - fn hash(&self, state: &mut H) { - let ifi_type = self.ifi_type; - let ifi_typelen = self.ifi_typelen; - let ifi_physical = self.ifi_physical; - let ifi_addrlen = self.ifi_addrlen; - let ifi_hdrlen = self.ifi_hdrlen; - let ifi_recvquota = self.ifi_recvquota; - let ifi_xmitquota = self.ifi_xmitquota; - let ifi_unused1 = self.ifi_unused1; - let ifi_mtu = self.ifi_mtu; - let ifi_metric = self.ifi_metric; - let ifi_baudrate = self.ifi_baudrate; - let ifi_ipackets = self.ifi_ipackets; - let ifi_ierrors = self.ifi_ierrors; - let ifi_opackets = self.ifi_opackets; - let ifi_oerrors = self.ifi_oerrors; - let ifi_collisions = self.ifi_collisions; - let ifi_ibytes = self.ifi_ibytes; - let ifi_obytes = self.ifi_obytes; - let ifi_imcasts = self.ifi_imcasts; - let ifi_omcasts = self.ifi_omcasts; - let ifi_iqdrops = self.ifi_iqdrops; - let ifi_noproto = self.ifi_noproto; - let ifi_recvtiming = self.ifi_recvtiming; - let ifi_xmittiming = self.ifi_xmittiming; - let ifi_lastchange = self.ifi_lastchange; - ifi_type.hash(state); - ifi_typelen.hash(state); - ifi_physical.hash(state); - ifi_addrlen.hash(state); - ifi_hdrlen.hash(state); - ifi_recvquota.hash(state); - ifi_xmitquota.hash(state); - ifi_unused1.hash(state); - ifi_mtu.hash(state); - ifi_metric.hash(state); - ifi_baudrate.hash(state); - ifi_ipackets.hash(state); - ifi_ierrors.hash(state); - ifi_opackets.hash(state); - ifi_oerrors.hash(state); - ifi_collisions.hash(state); - ifi_ibytes.hash(state); - ifi_obytes.hash(state); - ifi_imcasts.hash(state); - ifi_omcasts.hash(state); - ifi_iqdrops.hash(state); - ifi_noproto.hash(state); - ifi_recvtiming.hash(state); - ifi_xmittiming.hash(state); - ifi_lastchange.hash(state); - } - } - impl PartialEq for if_msghdr2 { - fn eq(&self, other: &if_msghdr2) -> bool { - self.ifm_msglen == other.ifm_msglen - && self.ifm_version == other.ifm_version - && self.ifm_type == other.ifm_type - && self.ifm_addrs == other.ifm_addrs - && self.ifm_flags == other.ifm_flags - && self.ifm_index == other.ifm_index - && self.ifm_snd_len == other.ifm_snd_len - && self.ifm_snd_maxlen == other.ifm_snd_maxlen - && self.ifm_snd_drops == other.ifm_snd_drops - && self.ifm_timer == other.ifm_timer - && self.ifm_data == other.ifm_data - } - } - impl Eq for if_msghdr2 {} - impl hash::Hash for if_msghdr2 { - fn hash(&self, state: &mut H) { - let ifm_msglen = self.ifm_msglen; - let ifm_version = self.ifm_version; - let ifm_type = self.ifm_type; - let ifm_addrs = self.ifm_addrs; - let ifm_flags = self.ifm_flags; - let ifm_index = self.ifm_index; - let ifm_snd_len = self.ifm_snd_len; - let ifm_snd_maxlen = self.ifm_snd_maxlen; - let ifm_snd_drops = self.ifm_snd_drops; - let ifm_timer = self.ifm_timer; - let ifm_data = self.ifm_data; - ifm_msglen.hash(state); - ifm_version.hash(state); - ifm_type.hash(state); - ifm_addrs.hash(state); - ifm_flags.hash(state); - ifm_index.hash(state); - ifm_snd_len.hash(state); - ifm_snd_maxlen.hash(state); - ifm_snd_drops.hash(state); - ifm_timer.hash(state); - ifm_data.hash(state); - } - } - impl PartialEq for vm_statistics64 { - fn eq(&self, other: &vm_statistics64) -> bool { - // Otherwise rustfmt crashes... - let total_uncompressed = self.total_uncompressed_pages_in_compressor; - self.free_count == other.free_count - && self.active_count == other.active_count - && self.inactive_count == other.inactive_count - && self.wire_count == other.wire_count - && self.zero_fill_count == other.zero_fill_count - && self.reactivations == other.reactivations - && self.pageins == other.pageins - && self.pageouts == other.pageouts - && self.faults == other.faults - && self.cow_faults == other.cow_faults - && self.lookups == other.lookups - && self.hits == other.hits - && self.purges == other.purges - && self.purgeable_count == other.purgeable_count - && self.speculative_count == other.speculative_count - && self.decompressions == other.decompressions - && self.compressions == other.compressions - && self.swapins == other.swapins - && self.swapouts == other.swapouts - && self.compressor_page_count == other.compressor_page_count - && self.throttled_count == other.throttled_count - && self.external_page_count == other.external_page_count - && self.internal_page_count == other.internal_page_count - && total_uncompressed == other.total_uncompressed_pages_in_compressor - } - } - impl Eq for vm_statistics64 {} - impl hash::Hash for vm_statistics64 { - fn hash(&self, state: &mut H) { - let free_count = self.free_count; - let active_count = self.active_count; - let inactive_count = self.inactive_count; - let wire_count = self.wire_count; - let zero_fill_count = self.zero_fill_count; - let reactivations = self.reactivations; - let pageins = self.pageins; - let pageouts = self.pageouts; - let faults = self.faults; - let cow_faults = self.cow_faults; - let lookups = self.lookups; - let hits = self.hits; - let purges = self.purges; - let purgeable_count = self.purgeable_count; - let speculative_count = self.speculative_count; - let decompressions = self.decompressions; - let compressions = self.compressions; - let swapins = self.swapins; - let swapouts = self.swapouts; - let compressor_page_count = self.compressor_page_count; - let throttled_count = self.throttled_count; - let external_page_count = self.external_page_count; - let internal_page_count = self.internal_page_count; - // Otherwise rustfmt crashes... - let total_uncompressed = self.total_uncompressed_pages_in_compressor; - free_count.hash(state); - active_count.hash(state); - inactive_count.hash(state); - wire_count.hash(state); - zero_fill_count.hash(state); - reactivations.hash(state); - pageins.hash(state); - pageouts.hash(state); - faults.hash(state); - cow_faults.hash(state); - lookups.hash(state); - hits.hash(state); - purges.hash(state); - purgeable_count.hash(state); - speculative_count.hash(state); - decompressions.hash(state); - compressions.hash(state); - swapins.hash(state); - swapouts.hash(state); - compressor_page_count.hash(state); - throttled_count.hash(state); - external_page_count.hash(state); - internal_page_count.hash(state); - total_uncompressed.hash(state); - } - } - - impl PartialEq for mach_task_basic_info { - fn eq(&self, other: &mach_task_basic_info) -> bool { - self.virtual_size == other.virtual_size - && self.resident_size == other.resident_size - && self.resident_size_max == other.resident_size_max - && self.user_time == other.user_time - && self.system_time == other.system_time - && self.policy == other.policy - && self.suspend_count == other.suspend_count - } - } - impl Eq for mach_task_basic_info {} - impl hash::Hash for mach_task_basic_info { - fn hash(&self, state: &mut H) { - let virtual_size = self.virtual_size; - let resident_size = self.resident_size; - let resident_size_max = self.resident_size_max; - let user_time = self.user_time; - let system_time = self.system_time; - let policy = self.policy; - let suspend_count = self.suspend_count; - virtual_size.hash(state); - resident_size.hash(state); - resident_size_max.hash(state); - user_time.hash(state); - system_time.hash(state); - policy.hash(state); - suspend_count.hash(state); - } - } - - impl PartialEq for log2phys { - fn eq(&self, other: &log2phys) -> bool { - self.l2p_flags == other.l2p_flags - && self.l2p_contigbytes == other.l2p_contigbytes - && self.l2p_devoffset == other.l2p_devoffset - } - } - impl Eq for log2phys {} - impl hash::Hash for log2phys { - fn hash(&self, state: &mut H) { - let l2p_flags = self.l2p_flags; - let l2p_contigbytes = self.l2p_contigbytes; - let l2p_devoffset = self.l2p_devoffset; - l2p_flags.hash(state); - l2p_contigbytes.hash(state); - l2p_devoffset.hash(state); - } - } - impl PartialEq for os_unfair_lock { - fn eq(&self, other: &os_unfair_lock) -> bool { - self._os_unfair_lock_opaque == other._os_unfair_lock_opaque - } - } - - impl Eq for os_unfair_lock {} - - impl hash::Hash for os_unfair_lock { - fn hash(&self, state: &mut H) { - 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 hash::Hash for sockaddr_vm { - fn hash(&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 hash::Hash for ifdevmtu { - fn hash(&self, state: &mut H) { - self.ifdm_current.hash(state); - self.ifdm_min.hash(state); - self.ifdm_max.hash(state); - } - } - 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 } @@ -2600,21 +1767,6 @@ cfg_if! { } } - 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 hash::Hash for ifkpi { - fn hash(&self, state: &mut H) { - self.ifk_module_id.hash(state); - self.ifk_type.hash(state); - } - } - impl PartialEq for __c_anonymous_ifr_ifru { fn eq(&self, other: &__c_anonymous_ifr_ifru) -> bool { unsafe { @@ -2667,21 +1819,6 @@ cfg_if! { } } - 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 hash::Hash for ifreq { - fn hash(&self, state: &mut H) { - self.ifr_name.hash(state); - self.ifr_ifru.hash(state); - } - } - impl Eq for __c_anonymous_ifc_ifcu {} impl PartialEq for __c_anonymous_ifc_ifcu { @@ -2732,14 +1869,6 @@ cfg_if! { } } } - - impl PartialEq for in6_ifreq { - fn eq(&self, other: &in6_ifreq) -> bool { - self.ifr_name == other.ifr_name && self.ifr_ifru == other.ifr_ifru - } - } - - impl Eq for in6_ifreq {} } } diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 632d83b0ea3b7..7596fe4fb0bc8 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -409,9 +409,7 @@ s! { pub data: *mut c_void, pub size: size_t, } -} -s_no_extra_traits! { pub struct utmpx { pub ut_name: [c_char; 32], pub ut_id: [c_char; 4], @@ -531,255 +529,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_name == other.ut_name - && self.ut_id == other.ut_id - && self.ut_line == other.ut_line - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a, b)| a == b) - && self.ut_unused == other.ut_unused - && self.ut_session == other.ut_session - && self.ut_type == other.ut_type - && self.ut_pid == other.ut_pid - && self.ut_exit == other.ut_exit - && self.ut_ss == other.ut_ss - && self.ut_tv == other.ut_tv - && self.ut_unused2 == other.ut_unused2 - } - } - impl Eq for utmpx {} - impl hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_name.hash(state); - self.ut_id.hash(state); - self.ut_line.hash(state); - self.ut_host.hash(state); - self.ut_unused.hash(state); - self.ut_session.hash(state); - self.ut_type.hash(state); - self.ut_pid.hash(state); - self.ut_exit.hash(state); - self.ut_ss.hash(state); - self.ut_tv.hash(state); - self.ut_unused2.hash(state); - } - } - impl PartialEq for lastlogx { - fn eq(&self, other: &lastlogx) -> bool { - self.ll_tv == other.ll_tv - && self.ll_line == other.ll_line - && self.ll_host == other.ll_host - && self.ll_ss == other.ll_ss - } - } - impl Eq for lastlogx {} - impl hash::Hash for lastlogx { - fn hash(&self, state: &mut H) { - self.ll_tv.hash(state); - self.ll_line.hash(state); - self.ll_host.hash(state); - self.ll_ss.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_fileno == other.d_fileno - && self.d_namlen == other.d_namlen - && self.d_type == other.d_type - // Ignore __unused1 - // Ignore __unused2 - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for dirent {} - impl hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_fileno.hash(state); - self.d_namlen.hash(state); - self.d_type.hash(state); - // Ignore __unused1 - // Ignore __unused2 - self.d_name.hash(state); - } - } - - impl PartialEq for statfs { - fn eq(&self, other: &statfs) -> bool { - 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_fsid == other.f_fsid - && self.f_owner == other.f_owner - && self.f_type == other.f_type - && self.f_flags == other.f_flags - && self.f_syncwrites == other.f_syncwrites - && self.f_asyncwrites == other.f_asyncwrites - && self.f_fstypename == other.f_fstypename - && self - .f_mntonname - .iter() - .zip(other.f_mntonname.iter()) - .all(|(a, b)| a == b) - && self.f_syncreads == other.f_syncreads - && self.f_asyncreads == other.f_asyncreads - && self - .f_mntfromname - .iter() - .zip(other.f_mntfromname.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for statfs {} - impl hash::Hash for statfs { - fn hash(&self, state: &mut H) { - 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_fsid.hash(state); - self.f_owner.hash(state); - self.f_type.hash(state); - self.f_flags.hash(state); - self.f_syncwrites.hash(state); - self.f_asyncwrites.hash(state); - self.f_fstypename.hash(state); - self.f_mntonname.hash(state); - self.f_syncreads.hash(state); - self.f_asyncreads.hash(state); - self.f_mntfromname.hash(state); - } - } - - impl PartialEq for sigevent { - fn eq(&self, other: &sigevent) -> bool { - self.sigev_notify == other.sigev_notify - && self.sigev_signo == other.sigev_signo - && self.sigev_value == other.sigev_value - } - } - impl Eq for sigevent {} - impl hash::Hash for sigevent { - fn hash(&self, state: &mut H) { - self.sigev_notify.hash(state); - self.sigev_signo.hash(state); - self.sigev_value.hash(state); - } - } - impl PartialEq for mcontext_t { - fn eq(&self, other: &mcontext_t) -> bool { - self.mc_onstack == other.mc_onstack - && self.mc_rdi == other.mc_rdi - && self.mc_rsi == other.mc_rsi - && self.mc_rdx == other.mc_rdx - && self.mc_rcx == other.mc_rcx - && self.mc_r8 == other.mc_r8 - && self.mc_r9 == other.mc_r9 - && self.mc_rax == other.mc_rax - && self.mc_rbx == other.mc_rbx - && self.mc_rbp == other.mc_rbp - && self.mc_r10 == other.mc_r10 - && self.mc_r11 == other.mc_r11 - && self.mc_r12 == other.mc_r12 - && self.mc_r13 == other.mc_r13 - && self.mc_r14 == other.mc_r14 - && self.mc_r15 == other.mc_r15 - && self.mc_xflags == other.mc_xflags - && self.mc_trapno == other.mc_trapno - && self.mc_addr == other.mc_addr - && self.mc_flags == other.mc_flags - && self.mc_err == other.mc_err - && self.mc_rip == other.mc_rip - && self.mc_cs == other.mc_cs - && self.mc_rflags == other.mc_rflags - && self.mc_rsp == other.mc_rsp - && 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_fpregs == other.mc_fpregs - } - } - impl Eq for mcontext_t {} - impl hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { - self.mc_onstack.hash(state); - self.mc_rdi.hash(state); - self.mc_rsi.hash(state); - self.mc_rdx.hash(state); - self.mc_rcx.hash(state); - self.mc_r8.hash(state); - self.mc_r9.hash(state); - self.mc_rax.hash(state); - self.mc_rbx.hash(state); - self.mc_rbp.hash(state); - self.mc_r10.hash(state); - self.mc_r11.hash(state); - self.mc_r10.hash(state); - self.mc_r11.hash(state); - self.mc_r12.hash(state); - self.mc_r13.hash(state); - self.mc_r14.hash(state); - self.mc_r15.hash(state); - self.mc_xflags.hash(state); - self.mc_trapno.hash(state); - self.mc_addr.hash(state); - self.mc_flags.hash(state); - self.mc_err.hash(state); - self.mc_rip.hash(state); - self.mc_cs.hash(state); - self.mc_rflags.hash(state); - self.mc_rsp.hash(state); - self.mc_ss.hash(state); - self.mc_len.hash(state); - self.mc_fpformat.hash(state); - self.mc_ownedfp.hash(state); - self.mc_fpregs.hash(state); - } - } - // FIXME(msrv): suggested method was added in 1.85 - #[allow(unpredictable_function_pointer_comparisons)] - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_sigmask == other.uc_sigmask - && self.uc_mcontext == other.uc_mcontext - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_cofunc == other.uc_cofunc - && self.uc_arg == other.uc_arg - } - } - impl Eq for ucontext_t {} - impl hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_sigmask.hash(state); - self.uc_mcontext.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_cofunc.hash(state); - self.uc_arg.hash(state); - } - } - } -} - pub const RAND_MAX: c_int = 0x7fff_ffff; pub const PTHREAD_STACK_MIN: size_t = 16384; pub const SIGSTKSZ: size_t = 40960; diff --git a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs index e74c26bb46e2c..232770f6e00fa 100644 --- a/src/unix/bsd/freebsdlike/freebsd/aarch64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/aarch64.rs @@ -6,7 +6,7 @@ pub type time_t = i64; pub type suseconds_t = i64; pub type register_t = i64; -s_no_extra_traits! { +s! { pub struct gpregs { pub gp_x: [crate::register_t; 30], pub gp_lr: crate::register_t, @@ -35,74 +35,6 @@ s_no_extra_traits! { pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for gpregs { - fn eq(&self, other: &gpregs) -> bool { - self.gp_x.iter().zip(other.gp_x.iter()).all(|(a, b)| a == b) - && self.gp_lr == other.gp_lr - && self.gp_sp == other.gp_sp - && self.gp_elr == other.gp_elr - && self.gp_spsr == other.gp_spsr - && self.gp_pad == other.gp_pad - } - } - impl Eq for gpregs {} - impl hash::Hash for gpregs { - fn hash(&self, state: &mut H) { - self.gp_x.hash(state); - self.gp_lr.hash(state); - self.gp_sp.hash(state); - self.gp_elr.hash(state); - self.gp_spsr.hash(state); - self.gp_pad.hash(state); - } - } - impl PartialEq for fpregs { - fn eq(&self, other: &fpregs) -> bool { - self.fp_q == other.fp_q - && self.fp_sr == other.fp_sr - && self.fp_cr == other.fp_cr - && self.fp_flags == other.fp_flags - && self.fp_pad == other.fp_pad - } - } - impl Eq for fpregs {} - impl hash::Hash for fpregs { - fn hash(&self, state: &mut H) { - self.fp_q.hash(state); - self.fp_sr.hash(state); - self.fp_cr.hash(state); - self.fp_flags.hash(state); - self.fp_pad.hash(state); - } - } - impl PartialEq for mcontext_t { - fn eq(&self, other: &mcontext_t) -> bool { - self.mc_gpregs == other.mc_gpregs - && self.mc_fpregs == other.mc_fpregs - && self.mc_flags == other.mc_flags - && self.mc_pad == other.mc_pad - && self - .mc_spare - .iter() - .zip(other.mc_spare.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for mcontext_t {} - impl hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { - self.mc_gpregs.hash(state); - self.mc_fpregs.hash(state); - self.mc_flags.hash(state); - self.mc_pad.hash(state); - self.mc_spare.hash(state); - } - } - } -} - pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; pub const MAP_32BIT: c_int = 0x00080000; diff --git a/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/unix/bsd/freebsdlike/freebsd/arm.rs index c17e12913d8f8..a0f51834d45dd 100644 --- a/src/unix/bsd/freebsdlike/freebsd/arm.rs +++ b/src/unix/bsd/freebsdlike/freebsd/arm.rs @@ -8,7 +8,7 @@ pub type register_t = i32; pub type __greg_t = c_uint; pub type __gregset_t = [crate::__greg_t; 17]; -s_no_extra_traits! { +s! { pub struct mcontext_t { pub __gregs: crate::__gregset_t, pub mc_vfp_size: usize, @@ -17,32 +17,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for mcontext_t { - fn eq(&self, other: &mcontext_t) -> bool { - self.__gregs == other.__gregs - && self.mc_vfp_size == other.mc_vfp_size - && self.mc_vfp_ptr == other.mc_vfp_ptr - && self - .mc_spare - .iter() - .zip(other.mc_spare.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for mcontext_t {} - impl hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { - self.__gregs.hash(state); - self.mc_vfp_size.hash(state); - self.mc_vfp_ptr.hash(state); - self.mc_spare.hash(state); - } - } - } -} - pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs index b3b032bc66949..e04fcc0cd82d3 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs @@ -210,9 +210,6 @@ s! { /// kthread flag. pub ki_tdflags: c_long, } -} - -s_no_extra_traits! { pub struct dirent { pub d_fileno: crate::ino_t, pub d_reclen: u16, @@ -261,122 +258,6 @@ s_no_extra_traits! { } } -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 hash::Hash for statfs { - fn hash(&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_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_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 hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_fileno.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_mntdir == other.vn_mntdir - && self.vn_dev == other.vn_dev - && self.vn_fsid == other.vn_fsid - && self.vn_type == other.vn_type - && self.vn_mode == other.vn_mode - && self_vn_devname == other_vn_devname - } - } - impl Eq for vnstat {} - impl hash::Hash for vnstat { - fn hash(&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_mntdir.hash(state); - self.vn_dev.hash(state); - self.vn_fsid.hash(state); - self.vn_type.hash(state); - self.vn_mode.hash(state); - self_vn_devname.hash(state); - } - } - } -} - pub const ELAST: c_int = 96; pub const RAND_MAX: c_int = 0x7fff_fffd; pub const KI_NSPARE_PTR: usize = 6; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index 962d7817a2649..41b9e32c039b0 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -254,9 +254,7 @@ s! { pub st_gen: u64, pub st_spare: [u64; 10], } -} -s_no_extra_traits! { pub struct dirent { pub d_fileno: crate::ino_t, pub d_off: off_t, @@ -305,125 +303,6 @@ s_no_extra_traits! { } } -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 hash::Hash for statfs { - fn hash(&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 hash::Hash for dirent { - fn hash(&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 hash::Hash for vnstat { - fn hash(&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_fffd; pub const ELAST: c_int = 97; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs index 7b0e467ba375e..aea817bbd4f17 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -267,9 +267,7 @@ s! { pub st_gen: u64, pub st_spare: [u64; 10], } -} -s_no_extra_traits! { pub struct dirent { pub d_fileno: crate::ino_t, pub d_off: off_t, @@ -318,125 +316,6 @@ s_no_extra_traits! { } } -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 hash::Hash for statfs { - fn hash(&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 hash::Hash for dirent { - fn hash(&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 hash::Hash for vnstat { - fn hash(&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; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index f20a46655665d..89b435895a5e3 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -269,9 +269,7 @@ s! { pub st_filerev: u64, pub st_spare: [u64; 9], } -} -s_no_extra_traits! { pub struct dirent { pub d_fileno: crate::ino_t, pub d_off: off_t, @@ -320,125 +318,6 @@ s_no_extra_traits! { } } -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 hash::Hash for statfs { - fn hash(&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 hash::Hash for dirent { - fn hash(&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 hash::Hash for vnstat { - fn hash(&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; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index c0d27ef370e6f..59a4344779d10 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -271,9 +271,7 @@ s! { pub st_filerev: u64, pub st_spare: [u64; 9], } -} -s_no_extra_traits! { pub struct dirent { pub d_fileno: crate::ino_t, pub d_off: off_t, @@ -322,125 +320,6 @@ s_no_extra_traits! { } } -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 hash::Hash for statfs { - fn hash(&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 hash::Hash for dirent { - fn hash(&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 hash::Hash for vnstat { - fn hash(&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; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 47698830a0398..a040efddbf72d 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1418,9 +1418,7 @@ s! { pub sp_max: off_t, pub sp_idle: crate::timeval, } -} -s_no_extra_traits! { pub struct utmpx { pub ut_type: c_short, pub ut_tv: crate::timeval, @@ -1432,11 +1430,6 @@ s_no_extra_traits! { pub __ut_spare: [c_char; 64], } - pub union __c_anonymous_cr_pid { - __cr_unused: *mut c_void, - pub cr_pid: crate::pid_t, - } - pub struct xucred { pub cr_version: c_uint, pub cr_uid: crate::uid_t, @@ -1464,18 +1457,6 @@ s_no_extra_traits! { __reserved: [c_long; 4], } - pub struct sigevent { - pub sigev_notify: c_int, - pub sigev_signo: c_int, - pub sigev_value: crate::sigval, - //The rest of the structure is actually a union. We expose only - //sigev_notify_thread_id because it's the most useful union member. - pub sigev_notify_thread_id: crate::lwpid_t, - #[cfg(target_pointer_width = "64")] - __unused1: c_int, - __unused2: [c_long; 7], - } - pub struct ptsstat { #[cfg(any(freebsd12, freebsd13, freebsd14, freebsd15))] pub dev: u64, @@ -1484,23 +1465,15 @@ s_no_extra_traits! { pub devname: [c_char; SPECNAMELEN as usize + 1], } - pub union __c_anonymous_elf32_auxv_union { - pub a_val: c_int, - } - pub struct Elf32_Auxinfo { pub a_type: c_int, pub a_un: __c_anonymous_elf32_auxv_union, } - pub union __c_anonymous_ifi_epoch { - pub tt: crate::time_t, - pub ph: u64, - } - - pub union __c_anonymous_ifi_lastchange { - pub tv: crate::timeval, - pub ph: __c_anonymous_ph, + pub struct ifreq { + /// if name, e.g. "en0" + pub ifr_name: [c_char; crate::IFNAMSIZ], + pub ifr_ifru: __c_anonymous_ifr_ifru, } pub struct if_data { @@ -1556,35 +1529,6 @@ s_no_extra_traits! { pub __ifi_lastchange: __c_anonymous_ifi_lastchange, } - pub union __c_anonymous_ifr_ifru { - pub ifru_addr: crate::sockaddr, - pub ifru_dstaddr: crate::sockaddr, - pub ifru_broadaddr: crate::sockaddr, - pub ifru_buffer: ifreq_buffer, - pub ifru_flags: [c_short; 2], - pub ifru_index: c_short, - pub ifru_jid: c_int, - pub ifru_metric: c_int, - pub ifru_mtu: c_int, - pub ifru_phys: c_int, - pub ifru_media: c_int, - pub ifru_data: crate::caddr_t, - pub ifru_cap: [c_int; 2], - pub ifru_fib: c_uint, - pub ifru_vlan_pcp: c_uchar, - } - - pub struct ifreq { - /// if name, e.g. "en0" - pub ifr_name: [c_char; crate::IFNAMSIZ], - pub ifr_ifru: __c_anonymous_ifr_ifru, - } - - pub union __c_anonymous_ifc_ifcu { - pub ifcu_buf: crate::caddr_t, - pub ifcu_req: *mut ifreq, - } - pub struct ifstat { /// if name, e.g. "en0" pub ifs_name: [c_char; crate::IFNAMSIZ as usize], @@ -1706,6 +1650,62 @@ s_no_extra_traits! { _kf_cap_spare: u64, pub kf_path: [c_char; crate::PATH_MAX as usize], } +} + +s_no_extra_traits! { + pub union __c_anonymous_cr_pid { + __cr_unused: *mut c_void, + pub cr_pid: crate::pid_t, + } + + pub struct sigevent { + pub sigev_notify: c_int, + pub sigev_signo: c_int, + pub sigev_value: crate::sigval, + //The rest of the structure is actually a union. We expose only + //sigev_notify_thread_id because it's the most useful union member. + pub sigev_notify_thread_id: crate::lwpid_t, + #[cfg(target_pointer_width = "64")] + __unused1: c_int, + __unused2: [c_long; 7], + } + + pub union __c_anonymous_elf32_auxv_union { + pub a_val: c_int, + } + + pub union __c_anonymous_ifi_epoch { + pub tt: crate::time_t, + pub ph: u64, + } + + pub union __c_anonymous_ifi_lastchange { + pub tv: crate::timeval, + pub ph: __c_anonymous_ph, + } + + pub union __c_anonymous_ifr_ifru { + pub ifru_addr: crate::sockaddr, + pub ifru_dstaddr: crate::sockaddr, + pub ifru_broadaddr: crate::sockaddr, + pub ifru_buffer: ifreq_buffer, + pub ifru_flags: [c_short; 2], + pub ifru_index: c_short, + pub ifru_jid: c_int, + pub ifru_metric: c_int, + pub ifru_mtu: c_int, + pub ifru_phys: c_int, + pub ifru_media: c_int, + pub ifru_data: crate::caddr_t, + pub ifru_cap: [c_int; 2], + pub ifru_fib: c_uint, + pub ifru_vlan_pcp: c_uchar, + } + + pub union __c_anonymous_ifc_ifcu { + pub ifcu_buf: crate::caddr_t, + pub ifcu_req: *mut ifreq, + } pub struct ucontext_t { pub uc_sigmask: crate::sigset_t, @@ -1788,40 +1788,6 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_type == other.ut_type - && self.ut_tv == other.ut_tv - && self.ut_id == other.ut_id - && self.ut_pid == other.ut_pid - && self.ut_user == other.ut_user - && self.ut_line == other.ut_line - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a, b)| a == b) - && self - .__ut_spare - .iter() - .zip(other.__ut_spare.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for utmpx {} - impl hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_type.hash(state); - self.ut_tv.hash(state); - self.ut_id.hash(state); - self.ut_pid.hash(state); - self.ut_user.hash(state); - self.ut_line.hash(state); - self.ut_host.hash(state); - self.__ut_spare.hash(state); - } - } - impl PartialEq for __c_anonymous_cr_pid { fn eq(&self, other: &__c_anonymous_cr_pid) -> bool { unsafe { self.cr_pid == other.cr_pid } @@ -1834,74 +1800,6 @@ cfg_if! { } } - impl PartialEq for xucred { - fn eq(&self, other: &xucred) -> bool { - self.cr_version == other.cr_version - && self.cr_uid == other.cr_uid - && self.cr_ngroups == other.cr_ngroups - && self.cr_groups == other.cr_groups - && self.cr_pid__c_anonymous_union == other.cr_pid__c_anonymous_union - } - } - impl Eq for xucred {} - impl hash::Hash for xucred { - fn hash(&self, state: &mut H) { - self.cr_version.hash(state); - self.cr_uid.hash(state); - self.cr_ngroups.hash(state); - self.cr_groups.hash(state); - self.cr_pid__c_anonymous_union.hash(state); - } - } - - impl PartialEq for sockaddr_dl { - fn eq(&self, other: &sockaddr_dl) -> bool { - self.sdl_len == other.sdl_len - && self.sdl_family == other.sdl_family - && self.sdl_index == other.sdl_index - && self.sdl_type == other.sdl_type - && self.sdl_nlen == other.sdl_nlen - && self.sdl_alen == other.sdl_alen - && self.sdl_slen == other.sdl_slen - && self - .sdl_data - .iter() - .zip(other.sdl_data.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_dl {} - impl hash::Hash for sockaddr_dl { - fn hash(&self, state: &mut H) { - self.sdl_len.hash(state); - self.sdl_family.hash(state); - self.sdl_index.hash(state); - self.sdl_type.hash(state); - self.sdl_nlen.hash(state); - self.sdl_alen.hash(state); - self.sdl_slen.hash(state); - self.sdl_data.hash(state); - } - } - - impl PartialEq for mq_attr { - fn eq(&self, other: &mq_attr) -> bool { - self.mq_flags == other.mq_flags - && self.mq_maxmsg == other.mq_maxmsg - && self.mq_msgsize == other.mq_msgsize - && self.mq_curmsgs == other.mq_curmsgs - } - } - impl Eq for mq_attr {} - impl hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { - self.mq_flags.hash(state); - self.mq_maxmsg.hash(state); - self.mq_msgsize.hash(state); - self.mq_curmsgs.hash(state); - } - } - impl PartialEq for sigevent { fn eq(&self, other: &sigevent) -> bool { self.sigev_notify == other.sigev_notify @@ -1920,36 +1818,17 @@ cfg_if! { } } - impl PartialEq for ptsstat { - fn eq(&self, other: &ptsstat) -> bool { - let self_devname: &[c_char] = &self.devname; - let other_devname: &[c_char] = &other.devname; - - self.dev == other.dev && self_devname == other_devname - } - } - impl Eq for ptsstat {} - impl hash::Hash for ptsstat { - fn hash(&self, state: &mut H) { - let self_devname: &[c_char] = &self.devname; - - self.dev.hash(state); - self_devname.hash(state); - } - } - impl PartialEq for __c_anonymous_elf32_auxv_union { fn eq(&self, other: &__c_anonymous_elf32_auxv_union) -> bool { unsafe { self.a_val == other.a_val } } } impl Eq for __c_anonymous_elf32_auxv_union {} - impl PartialEq for Elf32_Auxinfo { - fn eq(&self, other: &Elf32_Auxinfo) -> bool { - self.a_type == other.a_type && self.a_un == other.a_un + impl hash::Hash for __c_anonymous_elf32_auxv_union { + fn hash(&self, _state: &mut H) { + unimplemented!("traits"); } } - impl Eq for Elf32_Auxinfo {} impl PartialEq for __c_anonymous_ifr_ifru { fn eq(&self, other: &__c_anonymous_ifr_ifru) -> bool { @@ -1993,27 +1872,12 @@ cfg_if! { } } - 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 hash::Hash for ifreq { - fn hash(&self, state: &mut H) { - self.ifr_name.hash(state); - self.ifr_ifru.hash(state); - } - } - - impl Eq for __c_anonymous_ifc_ifcu {} - 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 } } } - + impl Eq for __c_anonymous_ifc_ifcu {} impl hash::Hash for __c_anonymous_ifc_ifcu { fn hash(&self, state: &mut H) { unsafe { self.ifcu_buf.hash(state) }; @@ -2021,66 +1885,6 @@ cfg_if! { } } - impl PartialEq for ifstat { - fn eq(&self, other: &ifstat) -> bool { - let self_ascii: &[c_char] = &self.ascii; - let other_ascii: &[c_char] = &other.ascii; - - self.ifs_name == other.ifs_name && self_ascii == other_ascii - } - } - impl Eq for ifstat {} - impl hash::Hash for ifstat { - fn hash(&self, state: &mut H) { - self.ifs_name.hash(state); - self.ascii.hash(state); - } - } - - impl PartialEq for ifrsskey { - fn eq(&self, other: &ifrsskey) -> bool { - let self_ifrk_key: &[u8] = &self.ifrk_key; - let other_ifrk_key: &[u8] = &other.ifrk_key; - - self.ifrk_name == other.ifrk_name - && self.ifrk_func == other.ifrk_func - && self.ifrk_spare0 == other.ifrk_spare0 - && self.ifrk_keylen == other.ifrk_keylen - && self_ifrk_key == other_ifrk_key - } - } - impl Eq for ifrsskey {} - impl hash::Hash for ifrsskey { - fn hash(&self, state: &mut H) { - self.ifrk_name.hash(state); - self.ifrk_func.hash(state); - self.ifrk_spare0.hash(state); - self.ifrk_keylen.hash(state); - self.ifrk_key.hash(state); - } - } - - impl PartialEq for ifdownreason { - fn eq(&self, other: &ifdownreason) -> bool { - let self_ifdr_msg: &[c_char] = &self.ifdr_msg; - let other_ifdr_msg: &[c_char] = &other.ifdr_msg; - - self.ifdr_name == other.ifdr_name - && self.ifdr_reason == other.ifdr_reason - && self.ifdr_vendor == other.ifdr_vendor - && self_ifdr_msg == other_ifdr_msg - } - } - impl Eq for ifdownreason {} - impl hash::Hash for ifdownreason { - fn hash(&self, state: &mut H) { - self.ifdr_name.hash(state); - self.ifdr_reason.hash(state); - self.ifdr_vendor.hash(state); - self.ifdr_msg.hash(state); - } - } - impl PartialEq for __c_anonymous_ifi_epoch { fn eq(&self, other: &__c_anonymous_ifi_epoch) -> bool { unsafe { self.tt == other.tt && self.ph == other.ph } @@ -2110,291 +1914,6 @@ cfg_if! { } } } - - impl PartialEq for if_data { - fn eq(&self, other: &if_data) -> bool { - self.ifi_type == other.ifi_type - && self.ifi_physical == other.ifi_physical - && self.ifi_addrlen == other.ifi_addrlen - && self.ifi_hdrlen == other.ifi_hdrlen - && self.ifi_link_state == other.ifi_link_state - && self.ifi_vhid == other.ifi_vhid - && self.ifi_datalen == other.ifi_datalen - && self.ifi_mtu == other.ifi_mtu - && self.ifi_metric == other.ifi_metric - && self.ifi_baudrate == other.ifi_baudrate - && self.ifi_ipackets == other.ifi_ipackets - && self.ifi_ierrors == other.ifi_ierrors - && self.ifi_opackets == other.ifi_opackets - && self.ifi_oerrors == other.ifi_oerrors - && self.ifi_collisions == other.ifi_collisions - && self.ifi_ibytes == other.ifi_ibytes - && self.ifi_obytes == other.ifi_obytes - && self.ifi_imcasts == other.ifi_imcasts - && self.ifi_omcasts == other.ifi_omcasts - && self.ifi_iqdrops == other.ifi_iqdrops - && self.ifi_oqdrops == other.ifi_oqdrops - && self.ifi_noproto == other.ifi_noproto - && self.ifi_hwassist == other.ifi_hwassist - && self.__ifi_epoch == other.__ifi_epoch - && self.__ifi_lastchange == other.__ifi_lastchange - } - } - impl Eq for if_data {} - impl hash::Hash for if_data { - fn hash(&self, state: &mut H) { - self.ifi_type.hash(state); - self.ifi_physical.hash(state); - self.ifi_addrlen.hash(state); - self.ifi_hdrlen.hash(state); - self.ifi_link_state.hash(state); - self.ifi_vhid.hash(state); - self.ifi_datalen.hash(state); - self.ifi_mtu.hash(state); - self.ifi_metric.hash(state); - self.ifi_baudrate.hash(state); - self.ifi_ipackets.hash(state); - self.ifi_ierrors.hash(state); - self.ifi_opackets.hash(state); - self.ifi_oerrors.hash(state); - self.ifi_collisions.hash(state); - self.ifi_ibytes.hash(state); - self.ifi_obytes.hash(state); - self.ifi_imcasts.hash(state); - self.ifi_omcasts.hash(state); - self.ifi_iqdrops.hash(state); - self.ifi_oqdrops.hash(state); - self.ifi_noproto.hash(state); - self.ifi_hwassist.hash(state); - self.__ifi_epoch.hash(state); - self.__ifi_lastchange.hash(state); - } - } - - impl PartialEq for sctphdr { - fn eq(&self, other: &sctphdr) -> bool { - return { self.src_port } == { other.src_port } - && { self.dest_port } == { other.dest_port } - && { self.v_tag } == { other.v_tag } - && { self.checksum } == { other.checksum }; - } - } - impl Eq for sctphdr {} - impl hash::Hash for sctphdr { - fn hash(&self, state: &mut H) { - { self.src_port }.hash(state); - { self.dest_port }.hash(state); - { self.v_tag }.hash(state); - { self.checksum }.hash(state); - } - } - - impl PartialEq for sctp_chunkhdr { - fn eq(&self, other: &sctp_chunkhdr) -> bool { - return { self.chunk_type } == { other.chunk_type } - && { self.chunk_flags } == { other.chunk_flags } - && { self.chunk_length } == { other.chunk_length }; - } - } - impl Eq for sctp_chunkhdr {} - impl hash::Hash for sctp_chunkhdr { - fn hash(&self, state: &mut H) { - { self.chunk_type }.hash(state); - { self.chunk_flags }.hash(state); - { self.chunk_length }.hash(state); - } - } - - impl PartialEq for sctp_paramhdr { - fn eq(&self, other: &sctp_paramhdr) -> bool { - return { self.param_type } == { other.param_type } && { self.param_length } == { - other.param_length - }; - } - } - impl Eq for sctp_paramhdr {} - impl hash::Hash for sctp_paramhdr { - fn hash(&self, state: &mut H) { - { self.param_type }.hash(state); - { self.param_length }.hash(state); - } - } - - impl PartialEq for sctp_gen_error_cause { - fn eq(&self, other: &sctp_gen_error_cause) -> bool { - return { self.code } == { other.code } && { self.length } == { other.length } && { - self.info - } - .iter() - .zip({ other.info }.iter()) - .all(|(a, b)| a == b); - } - } - impl Eq for sctp_gen_error_cause {} - impl hash::Hash for sctp_gen_error_cause { - fn hash(&self, state: &mut H) { - { self.code }.hash(state); - { self.length }.hash(state); - { self.info }.hash(state); - } - } - - impl PartialEq for sctp_error_cause { - fn eq(&self, other: &sctp_error_cause) -> bool { - return { self.code } == { other.code } && { self.length } == { other.length }; - } - } - impl Eq for sctp_error_cause {} - impl hash::Hash for sctp_error_cause { - fn hash(&self, state: &mut H) { - { self.code }.hash(state); - { self.length }.hash(state); - } - } - - impl PartialEq for sctp_error_invalid_stream { - fn eq(&self, other: &sctp_error_invalid_stream) -> bool { - return { self.cause } == { other.cause } && { self.stream_id } == { - other.stream_id - }; - } - } - impl Eq for sctp_error_invalid_stream {} - impl hash::Hash for sctp_error_invalid_stream { - fn hash(&self, state: &mut H) { - { self.cause }.hash(state); - { self.stream_id }.hash(state); - } - } - - impl PartialEq for sctp_error_missing_param { - fn eq(&self, other: &sctp_error_missing_param) -> bool { - return { self.cause } == { other.cause } - && { self.num_missing_params } == { other.num_missing_params } - && { self.tpe } - .iter() - .zip({ other.tpe }.iter()) - .all(|(a, b)| a == b); - } - } - impl Eq for sctp_error_missing_param {} - impl hash::Hash for sctp_error_missing_param { - fn hash(&self, state: &mut H) { - { self.cause }.hash(state); - { self.num_missing_params }.hash(state); - { self.tpe }.hash(state); - } - } - - impl PartialEq for sctp_error_stale_cookie { - fn eq(&self, other: &sctp_error_stale_cookie) -> bool { - return { self.cause } == { other.cause } && { self.stale_time } == { - other.stale_time - }; - } - } - impl Eq for sctp_error_stale_cookie {} - impl hash::Hash for sctp_error_stale_cookie { - fn hash(&self, state: &mut H) { - { self.cause }.hash(state); - { self.stale_time }.hash(state); - } - } - - impl PartialEq for sctp_error_out_of_resource { - fn eq(&self, other: &sctp_error_out_of_resource) -> bool { - return { self.cause } == { other.cause }; - } - } - impl Eq for sctp_error_out_of_resource {} - impl hash::Hash for sctp_error_out_of_resource { - fn hash(&self, state: &mut H) { - { self.cause }.hash(state); - } - } - - impl PartialEq for sctp_error_unresolv_addr { - fn eq(&self, other: &sctp_error_unresolv_addr) -> bool { - return { self.cause } == { other.cause }; - } - } - impl Eq for sctp_error_unresolv_addr {} - impl hash::Hash for sctp_error_unresolv_addr { - fn hash(&self, state: &mut H) { - { self.cause }.hash(state); - } - } - - impl PartialEq for sctp_error_unrecognized_chunk { - fn eq(&self, other: &sctp_error_unrecognized_chunk) -> bool { - return { self.cause } == { other.cause } && { self.ch } == { other.ch }; - } - } - impl Eq for sctp_error_unrecognized_chunk {} - impl hash::Hash for sctp_error_unrecognized_chunk { - fn hash(&self, state: &mut H) { - { self.cause }.hash(state); - { self.ch }.hash(state); - } - } - - impl PartialEq for sctp_error_no_user_data { - fn eq(&self, other: &sctp_error_no_user_data) -> bool { - return { self.cause } == { other.cause } && { self.tsn } == { other.tsn }; - } - } - impl Eq for sctp_error_no_user_data {} - impl hash::Hash for sctp_error_no_user_data { - fn hash(&self, state: &mut H) { - { self.cause }.hash(state); - { self.tsn }.hash(state); - } - } - - impl PartialEq for sctp_error_auth_invalid_hmac { - fn eq(&self, other: &sctp_error_auth_invalid_hmac) -> bool { - return { self.cause } == { other.cause } && { self.hmac_id } == { other.hmac_id }; - } - } - impl Eq for sctp_error_auth_invalid_hmac {} - impl hash::Hash for sctp_error_auth_invalid_hmac { - fn hash(&self, state: &mut H) { - { self.cause }.hash(state); - { self.hmac_id }.hash(state); - } - } - - impl PartialEq for kinfo_file { - fn eq(&self, other: &kinfo_file) -> bool { - self.kf_structsize == other.kf_structsize - && self.kf_type == other.kf_type - && self.kf_fd == other.kf_fd - && self.kf_ref_count == other.kf_ref_count - && self.kf_flags == other.kf_flags - && self.kf_offset == other.kf_offset - && self.kf_status == other.kf_status - && self.kf_cap_rights == other.kf_cap_rights - && self - .kf_path - .iter() - .zip(other.kf_path.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for kinfo_file {} - impl hash::Hash for kinfo_file { - fn hash(&self, state: &mut H) { - self.kf_structsize.hash(state); - self.kf_type.hash(state); - self.kf_fd.hash(state); - self.kf_ref_count.hash(state); - self.kf_flags.hash(state); - self.kf_offset.hash(state); - self.kf_status.hash(state); - self.kf_cap_rights.hash(state); - self.kf_path.hash(state); - } - } } } diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs index e4275b10ba508..4c0e165af9d24 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc.rs @@ -6,7 +6,7 @@ pub type time_t = i64; pub type suseconds_t = i32; pub type register_t = i32; -s_no_extra_traits! { +s! { #[repr(align(16))] pub struct mcontext_t { pub mc_vers: c_int, @@ -21,38 +21,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for mcontext_t { - fn eq(&self, other: &mcontext_t) -> bool { - self.mc_vers == other.mc_vers - && self.mc_flags == other.mc_flags - && self.mc_onstack == other.mc_onstack - && self.mc_len == other.mc_len - && self.mc_avec == other.mc_avec - && self.mc_av == other.mc_av - && self.mc_frame == other.mc_frame - && self.mc_fpreg == other.mc_fpreg - && self.mc_vsxfpreg == other.mc_vsxfpreg - } - } - impl Eq for mcontext_t {} - impl hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { - self.mc_vers.hash(state); - self.mc_flags.hash(state); - self.mc_onstack.hash(state); - self.mc_len.hash(state); - self.mc_avec.hash(state); - self.mc_av.hash(state); - self.mc_frame.hash(state); - self.mc_fpreg.hash(state); - self.mc_vsxfpreg.hash(state); - } - } - } -} - pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; diff --git a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs index b5a81311ecc60..bfc6d5c2ccc2e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs @@ -6,7 +6,7 @@ pub type time_t = i64; pub type suseconds_t = i64; pub type register_t = i64; -s_no_extra_traits! { +s! { #[repr(align(16))] pub struct mcontext_t { pub mc_vers: c_int, @@ -21,38 +21,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for mcontext_t { - fn eq(&self, other: &mcontext_t) -> bool { - self.mc_vers == other.mc_vers - && self.mc_flags == other.mc_flags - && self.mc_onstack == other.mc_onstack - && self.mc_len == other.mc_len - && self.mc_avec == other.mc_avec - && self.mc_av == other.mc_av - && self.mc_frame == other.mc_frame - && self.mc_fpreg == other.mc_fpreg - && self.mc_vsxfpreg == other.mc_vsxfpreg - } - } - impl Eq for mcontext_t {} - impl hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { - self.mc_vers.hash(state); - self.mc_flags.hash(state); - self.mc_onstack.hash(state); - self.mc_len.hash(state); - self.mc_avec.hash(state); - self.mc_av.hash(state); - self.mc_frame.hash(state); - self.mc_fpreg.hash(state); - self.mc_vsxfpreg.hash(state); - } - } - } -} - pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; diff --git a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs index 5ae5d34a74660..e2d7920541d9a 100644 --- a/src/unix/bsd/freebsdlike/freebsd/riscv64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/riscv64.rs @@ -6,7 +6,7 @@ pub type time_t = i64; pub type suseconds_t = c_long; pub type register_t = i64; -s_no_extra_traits! { +s! { pub struct gpregs { pub gp_ra: crate::register_t, pub gp_sp: crate::register_t, @@ -35,78 +35,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for gpregs { - fn eq(&self, other: &gpregs) -> bool { - self.gp_ra == other.gp_ra - && self.gp_sp == other.gp_sp - && self.gp_gp == other.gp_gp - && self.gp_tp == other.gp_tp - && self.gp_t.iter().zip(other.gp_t.iter()).all(|(a, b)| a == b) - && self.gp_s.iter().zip(other.gp_s.iter()).all(|(a, b)| a == b) - && self.gp_a.iter().zip(other.gp_a.iter()).all(|(a, b)| a == b) - && self.gp_sepc == other.gp_sepc - && self.gp_sstatus == other.gp_sstatus - } - } - impl Eq for gpregs {} - impl hash::Hash for gpregs { - fn hash(&self, state: &mut H) { - self.gp_ra.hash(state); - self.gp_sp.hash(state); - self.gp_gp.hash(state); - self.gp_tp.hash(state); - self.gp_t.hash(state); - self.gp_s.hash(state); - self.gp_a.hash(state); - self.gp_sepc.hash(state); - self.gp_sstatus.hash(state); - } - } - impl PartialEq for fpregs { - fn eq(&self, other: &fpregs) -> bool { - self.fp_x == other.fp_x - && self.fp_fcsr == other.fp_fcsr - && self.fp_flags == other.fp_flags - && self.pad == other.pad - } - } - impl Eq for fpregs {} - impl hash::Hash for fpregs { - fn hash(&self, state: &mut H) { - self.fp_x.hash(state); - self.fp_fcsr.hash(state); - self.fp_flags.hash(state); - self.pad.hash(state); - } - } - impl PartialEq for mcontext_t { - fn eq(&self, other: &mcontext_t) -> bool { - self.mc_gpregs == other.mc_gpregs - && self.mc_fpregs == other.mc_fpregs - && self.mc_flags == other.mc_flags - && self.mc_pad == other.mc_pad - && self - .mc_spare - .iter() - .zip(other.mc_spare.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for mcontext_t {} - impl hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { - self.mc_gpregs.hash(state); - self.mc_fpregs.hash(state); - self.mc_flags.hash(state); - self.mc_pad.hash(state); - self.mc_spare.hash(state); - } - } - } -} - pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs index 5becde55db43e..a95914d8a49a2 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -6,7 +6,7 @@ pub type time_t = i32; pub type suseconds_t = i32; pub type register_t = i32; -s_no_extra_traits! { +s! { #[repr(align(16))] pub struct mcontext_t { pub mc_onstack: register_t, @@ -42,88 +42,6 @@ s_no_extra_traits! { } } -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 hash::Hash for mcontext_t { - fn hash(&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(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const MINSIGSTKSZ: size_t = 2048; // 512 * 4 diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index d665e3da01e87..2d7a2b66621cf 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -57,9 +57,7 @@ s! { pub r_rsp: i64, pub r_ss: i64, } -} -s_no_extra_traits! { pub struct fpreg32 { pub fpr_env: [u32; 7], pub fpr_acc: [[u8; 10]; 8], @@ -80,23 +78,6 @@ s_no_extra_traits! { pub xmm_reg: [[u8; 16]; 8], pub xmm_pad: [u8; 224], } - - pub union __c_anonymous_elf64_auxv_union { - pub a_val: c_long, - pub a_ptr: *mut c_void, - pub a_fcn: extern "C" fn(), - } - - pub struct Elf64_Auxinfo { - pub a_type: c_long, - pub a_un: __c_anonymous_elf64_auxv_union, - } - - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4], - } - #[repr(align(16))] #[cfg_attr(not(any(freebsd11, freebsd12, freebsd13, freebsd14)), non_exhaustive)] pub struct mcontext_t { @@ -148,70 +129,26 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for fpreg32 { - fn eq(&self, other: &fpreg32) -> bool { - self.fpr_env == other.fpr_env - && self.fpr_acc == other.fpr_acc - && self.fpr_ex_sw == other.fpr_ex_sw - && self - .fpr_pad - .iter() - .zip(other.fpr_pad.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for fpreg32 {} - impl hash::Hash for fpreg32 { - fn hash(&self, state: &mut H) { - self.fpr_env.hash(state); - self.fpr_acc.hash(state); - self.fpr_ex_sw.hash(state); - self.fpr_pad.hash(state); - } - } +s_no_extra_traits! { + pub union __c_anonymous_elf64_auxv_union { + pub a_val: c_long, + pub a_ptr: *mut c_void, + pub a_fcn: extern "C" fn(), + } - impl PartialEq for fpreg { - fn eq(&self, other: &fpreg) -> bool { - self.fpr_env == other.fpr_env - && self.fpr_acc == other.fpr_acc - && self.fpr_xacc == other.fpr_xacc - && self.fpr_spare == other.fpr_spare - } - } - impl Eq for fpreg {} - impl hash::Hash for fpreg { - fn hash(&self, state: &mut H) { - self.fpr_env.hash(state); - self.fpr_acc.hash(state); - self.fpr_xacc.hash(state); - self.fpr_spare.hash(state); - } - } + pub struct Elf64_Auxinfo { + pub a_type: c_long, + pub a_un: __c_anonymous_elf64_auxv_union, + } - impl PartialEq for xmmreg { - fn eq(&self, other: &xmmreg) -> bool { - self.xmm_env == other.xmm_env - && self.xmm_acc == other.xmm_acc - && self.xmm_reg == other.xmm_reg - && self - .xmm_pad - .iter() - .zip(other.xmm_pad.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for xmmreg {} - impl hash::Hash for xmmreg { - fn hash(&self, state: &mut H) { - self.xmm_env.hash(state); - self.xmm_acc.hash(state); - self.xmm_reg.hash(state); - self.xmm_pad.hash(state); - } - } + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4], + } +} +cfg_if! { + if #[cfg(feature = "extra_traits")] { // FIXME(msrv): suggested method was added in 1.85 #[allow(unpredictable_function_pointer_comparisons)] impl PartialEq for __c_anonymous_elf64_auxv_union { @@ -224,102 +161,6 @@ cfg_if! { } } impl Eq for __c_anonymous_elf64_auxv_union {} - impl PartialEq for Elf64_Auxinfo { - fn eq(&self, other: &Elf64_Auxinfo) -> bool { - self.a_type == other.a_type && self.a_un == other.a_un - } - } - impl Eq for Elf64_Auxinfo {} - - impl PartialEq for mcontext_t { - fn eq(&self, other: &mcontext_t) -> bool { - self.mc_onstack == other.mc_onstack - && self.mc_rdi == other.mc_rdi - && self.mc_rsi == other.mc_rsi - && self.mc_rdx == other.mc_rdx - && self.mc_rcx == other.mc_rcx - && self.mc_r8 == other.mc_r8 - && self.mc_r9 == other.mc_r9 - && self.mc_rax == other.mc_rax - && self.mc_rbx == other.mc_rbx - && self.mc_rbp == other.mc_rbp - && self.mc_r10 == other.mc_r10 - && self.mc_r11 == other.mc_r11 - && self.mc_r12 == other.mc_r12 - && self.mc_r13 == other.mc_r13 - && self.mc_r14 == other.mc_r14 - && self.mc_r15 == other.mc_r15 - && self.mc_trapno == other.mc_trapno - && self.mc_fs == other.mc_fs - && self.mc_gs == other.mc_gs - && self.mc_addr == other.mc_addr - && self.mc_flags == other.mc_flags - && self.mc_es == other.mc_es - && self.mc_ds == other.mc_ds - && self.mc_err == other.mc_err - && self.mc_rip == other.mc_rip - && self.mc_cs == other.mc_cs - && self.mc_rflags == other.mc_rflags - && self.mc_rsp == other.mc_rsp - && 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_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_spare == other.mc_spare - } - } - impl Eq for mcontext_t {} - impl hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { - self.mc_onstack.hash(state); - self.mc_rdi.hash(state); - self.mc_rsi.hash(state); - self.mc_rdx.hash(state); - self.mc_rcx.hash(state); - self.mc_r8.hash(state); - self.mc_r9.hash(state); - self.mc_rax.hash(state); - self.mc_rbx.hash(state); - self.mc_rbp.hash(state); - self.mc_r10.hash(state); - self.mc_r11.hash(state); - self.mc_r12.hash(state); - self.mc_r13.hash(state); - self.mc_r14.hash(state); - self.mc_r15.hash(state); - self.mc_trapno.hash(state); - self.mc_fs.hash(state); - self.mc_gs.hash(state); - self.mc_addr.hash(state); - self.mc_flags.hash(state); - self.mc_es.hash(state); - self.mc_ds.hash(state); - self.mc_err.hash(state); - self.mc_rip.hash(state); - self.mc_cs.hash(state); - self.mc_rflags.hash(state); - self.mc_rsp.hash(state); - self.mc_ss.hash(state); - self.mc_len.hash(state); - self.mc_fpformat.hash(state); - self.mc_ownedfp.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_spare.hash(state); - } - } } } diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 98996f260709f..a8653d702a046 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -381,9 +381,7 @@ s! { pub struct eui64 { pub octet: [u8; EUI64_LEN], } -} -s_no_extra_traits! { pub struct sockaddr_storage { pub ss_len: u8, pub ss_family: crate::sa_family_t, @@ -393,34 +391,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_len == other.ss_len - && self.ss_family == other.ss_family - && self.__ss_pad1 == other.__ss_pad1 - && self.__ss_align == other.__ss_align - && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_storage {} - impl hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_len.hash(state); - self.ss_family.hash(state); - self.__ss_pad1.hash(state); - self.__ss_align.hash(state); - self.__ss_pad2.hash(state); - } - } - } -} - // Non-public helper constant const SIZEOF_LONG: usize = size_of::(); diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index dd1c59907e881..2916d821a4d6a 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -131,9 +131,6 @@ s! { pub flag: *mut c_int, pub val: c_int, } -} - -s_no_extra_traits! { pub struct sockaddr_un { pub sun_len: u8, pub sun_family: sa_family_t, @@ -164,73 +161,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for sockaddr_un { - fn eq(&self, other: &sockaddr_un) -> bool { - self.sun_len == other.sun_len - && self.sun_family == other.sun_family - && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for sockaddr_un {} - - impl hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { - self.sun_len.hash(state); - self.sun_family.hash(state); - self.sun_path.hash(state); - } - } - - impl PartialEq for utsname { - fn eq(&self, other: &utsname) -> bool { - self.sysname - .iter() - .zip(other.sysname.iter()) - .all(|(a, b)| a == b) - && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a, b)| a == b) - && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a, b)| a == b) - && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a, b)| a == b) - && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for utsname {} - - impl hash::Hash for utsname { - fn hash(&self, state: &mut H) { - self.sysname.hash(state); - self.nodename.hash(state); - self.release.hash(state); - self.version.hash(state); - self.machine.hash(state); - } - } - } -} - pub const LC_ALL: c_int = 0; pub const LC_COLLATE: c_int = 1; pub const LC_CTYPE: c_int = 2; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 262c644aace5a..2a360ca28af73 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -793,9 +793,7 @@ s! { pub tcpi_snd_zerowin: u32, pub __tcpi_pad: [u32; 26], } -} -s_no_extra_traits! { pub struct utmpx { pub ut_name: [c_char; _UTX_USERSIZE], pub ut_id: [c_char; _UTX_IDSIZE], @@ -904,7 +902,9 @@ s_no_extra_traits! { __unused1: *mut c_void, //actually a function pointer pub sigev_notify_attributes: *mut c_void, } +} +s_no_extra_traits! { pub union __c_anonymous_posix_spawn_fae { pub open: __c_anonymous_posix_spawn_fae_open, pub dup2: __c_anonymous_posix_spawn_fae_dup2, @@ -918,295 +918,12 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_type == other.ut_type - && self.ut_pid == other.ut_pid - && self.ut_name == other.ut_name - && self.ut_line == other.ut_line - && self.ut_id == other.ut_id - && self.ut_exit == other.ut_exit - && self.ut_session == other.ut_session - && self.ut_tv == other.ut_tv - && self.ut_ss == other.ut_ss - && self - .ut_pad - .iter() - .zip(other.ut_pad.iter()) - .all(|(a, b)| a == b) - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for utmpx {} - - impl hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_name.hash(state); - self.ut_type.hash(state); - self.ut_pid.hash(state); - self.ut_line.hash(state); - self.ut_id.hash(state); - self.ut_host.hash(state); - self.ut_exit.hash(state); - self.ut_session.hash(state); - self.ut_tv.hash(state); - self.ut_ss.hash(state); - self.ut_pad.hash(state); - } - } - - impl PartialEq for lastlogx { - fn eq(&self, other: &lastlogx) -> bool { - self.ll_tv == other.ll_tv - && self.ll_line == other.ll_line - && self.ll_ss == other.ll_ss - && self - .ll_host - .iter() - .zip(other.ll_host.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for lastlogx {} - - impl hash::Hash for lastlogx { - fn hash(&self, state: &mut H) { - self.ll_tv.hash(state); - self.ll_line.hash(state); - self.ll_host.hash(state); - self.ll_ss.hash(state); - } - } - - impl PartialEq for in_pktinfo { - fn eq(&self, other: &in_pktinfo) -> bool { - self.ipi_addr == other.ipi_addr && self.ipi_ifindex == other.ipi_ifindex - } - } - impl Eq for in_pktinfo {} - impl hash::Hash for in_pktinfo { - fn hash(&self, state: &mut H) { - self.ipi_addr.hash(state); - self.ipi_ifindex.hash(state); - } - } - - impl PartialEq for arphdr { - fn eq(&self, other: &arphdr) -> bool { - self.ar_hrd == other.ar_hrd - && self.ar_pro == other.ar_pro - && self.ar_hln == other.ar_hln - && self.ar_pln == other.ar_pln - && self.ar_op == other.ar_op - } - } - impl Eq for arphdr {} - impl hash::Hash for arphdr { - fn hash(&self, state: &mut H) { - let ar_hrd = self.ar_hrd; - let ar_pro = self.ar_pro; - let ar_op = self.ar_op; - ar_hrd.hash(state); - ar_pro.hash(state); - self.ar_hln.hash(state); - self.ar_pln.hash(state); - ar_op.hash(state); - } - } - - impl PartialEq for in_addr { - fn eq(&self, other: &in_addr) -> bool { - self.s_addr == other.s_addr - } - } - impl Eq for in_addr {} - impl hash::Hash for in_addr { - fn hash(&self, state: &mut H) { - let s_addr = self.s_addr; - s_addr.hash(state); - } - } - - impl PartialEq for ip_mreq { - fn eq(&self, other: &ip_mreq) -> bool { - self.imr_multiaddr == other.imr_multiaddr - && self.imr_interface == other.imr_interface - } - } - impl Eq for ip_mreq {} - impl hash::Hash for ip_mreq { - fn hash(&self, state: &mut H) { - self.imr_multiaddr.hash(state); - self.imr_interface.hash(state); - } - } - - impl PartialEq for sockaddr_in { - fn eq(&self, other: &sockaddr_in) -> bool { - self.sin_len == other.sin_len - && self.sin_family == other.sin_family - && self.sin_port == other.sin_port - && self.sin_addr == other.sin_addr - && self.sin_zero == other.sin_zero - } - } - impl Eq for sockaddr_in {} - impl hash::Hash for sockaddr_in { - fn hash(&self, state: &mut H) { - self.sin_len.hash(state); - self.sin_family.hash(state); - self.sin_port.hash(state); - self.sin_addr.hash(state); - self.sin_zero.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_fileno == other.d_fileno - && self.d_reclen == other.d_reclen - && self.d_namlen == other.d_namlen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for dirent {} - impl hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_fileno.hash(state); - self.d_reclen.hash(state); - self.d_namlen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for statvfs { - fn eq(&self, other: &statvfs) -> bool { - self.f_flag == other.f_flag - && self.f_bsize == other.f_bsize - && self.f_frsize == other.f_frsize - && 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_bresvd == other.f_bresvd - && self.f_files == other.f_files - && self.f_ffree == other.f_ffree - && self.f_favail == other.f_favail - && self.f_fresvd == other.f_fresvd - && self.f_syncreads == other.f_syncreads - && self.f_syncwrites == other.f_syncwrites - && self.f_asyncreads == other.f_asyncreads - && self.f_asyncwrites == other.f_asyncwrites - && self.f_fsidx == other.f_fsidx - && self.f_fsid == other.f_fsid - && self.f_namemax == other.f_namemax - && self.f_owner == other.f_owner - && self.f_spare == other.f_spare - && self.f_fstypename == other.f_fstypename - && self - .f_mntonname - .iter() - .zip(other.f_mntonname.iter()) - .all(|(a, b)| a == b) - && self - .f_mntfromname - .iter() - .zip(other.f_mntfromname.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for statvfs {} - impl hash::Hash for statvfs { - fn hash(&self, state: &mut H) { - self.f_flag.hash(state); - self.f_bsize.hash(state); - self.f_frsize.hash(state); - self.f_iosize.hash(state); - self.f_blocks.hash(state); - self.f_bfree.hash(state); - self.f_bavail.hash(state); - self.f_bresvd.hash(state); - self.f_files.hash(state); - self.f_ffree.hash(state); - self.f_favail.hash(state); - self.f_fresvd.hash(state); - self.f_syncreads.hash(state); - self.f_syncwrites.hash(state); - self.f_asyncreads.hash(state); - self.f_asyncwrites.hash(state); - self.f_fsidx.hash(state); - self.f_fsid.hash(state); - self.f_namemax.hash(state); - self.f_owner.hash(state); - self.f_spare.hash(state); - self.f_fstypename.hash(state); - self.f_mntonname.hash(state); - self.f_mntfromname.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_len == other.ss_len - && self.ss_family == other.ss_family - && self.__ss_pad1 == other.__ss_pad1 - && self.__ss_pad2 == other.__ss_pad2 - && self - .__ss_pad3 - .iter() - .zip(other.__ss_pad3.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_storage {} - impl hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_len.hash(state); - self.ss_family.hash(state); - self.__ss_pad1.hash(state); - self.__ss_pad2.hash(state); - self.__ss_pad3.hash(state); - } - } - - impl PartialEq for sigevent { - fn eq(&self, other: &sigevent) -> bool { - self.sigev_notify == other.sigev_notify - && self.sigev_signo == other.sigev_signo - && self.sigev_value == other.sigev_value - && self.sigev_notify_attributes == other.sigev_notify_attributes - } - } - impl Eq for sigevent {} - impl hash::Hash for sigevent { - fn hash(&self, state: &mut H) { - self.sigev_notify.hash(state); - self.sigev_signo.hash(state); - self.sigev_value.hash(state); - self.sigev_notify_attributes.hash(state); - } - } - impl Eq for __c_anonymous_posix_spawn_fae {} - impl PartialEq for __c_anonymous_posix_spawn_fae { fn eq(&self, other: &__c_anonymous_posix_spawn_fae) -> bool { unsafe { self.open == other.open || self.dup2 == other.dup2 } } } - impl hash::Hash for __c_anonymous_posix_spawn_fae { fn hash(&self, state: &mut H) { unsafe { @@ -1217,13 +934,11 @@ cfg_if! { } impl Eq for __c_anonymous_ifc_ifcu {} - 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 } } } - impl hash::Hash for __c_anonymous_ifc_ifcu { fn hash(&self, state: &mut H) { unsafe { diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 199986b851e91..e519e8dd95f13 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -609,62 +609,7 @@ s! { pub tcpi_so_snd_sb_lowat: u32, pub tcpi_so_snd_sb_wat: u32, } -} - -impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut c_char { - 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) -> crate::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: crate::pid_t, - } - (*(self as *const siginfo_t).cast::())._pid - } - - pub unsafe fn si_uid(&self) -> crate::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: crate::pid_t, - _uid: crate::uid_t, - } - (*(self as *const siginfo_t).cast::())._uid - } - - pub unsafe fn si_value(&self) -> crate::sigval { - #[repr(C)] - struct siginfo_timer { - _si_signo: c_int, - _si_code: c_int, - _si_errno: c_int, - _pad: [c_int; SI_PAD], - _pid: crate::pid_t, - _uid: crate::uid_t, - value: crate::sigval, - } - (*(self as *const siginfo_t).cast::()).value - } -} - -s_no_extra_traits! { pub struct dirent { pub d_fileno: crate::ino_t, pub d_off: off_t, @@ -707,30 +652,6 @@ s_no_extra_traits! { pub ut_time: crate::time_t, } - pub union mount_info { - pub ufs_args: ufs_args, - pub mfs_args: mfs_args, - pub nfs_args: nfs_args, - pub iso_args: iso_args, - pub msdosfs_args: msdosfs_args, - pub ntfs_args: ntfs_args, - pub tmpfs_args: tmpfs_args, - align: [c_char; 160], - } - - pub union __c_anonymous_ifr_ifru { - pub ifru_addr: crate::sockaddr, - pub ifru_dstaddr: crate::sockaddr, - pub ifru_broadaddr: crate::sockaddr, - pub ifru_flags: c_short, - pub ifru_metric: c_int, - pub ifru_vnetid: i64, - pub ifru_media: u64, - pub ifru_data: crate::caddr_t, - pub ifru_index: c_uint, - } - - // This type uses the union mount_info: pub struct statfs { pub f_flags: u32, pub f_bsize: u32, @@ -757,148 +678,111 @@ s_no_extra_traits! { } } +s_no_extra_traits! { + pub union mount_info { + pub ufs_args: ufs_args, + pub mfs_args: mfs_args, + pub nfs_args: nfs_args, + pub iso_args: iso_args, + pub msdosfs_args: msdosfs_args, + pub ntfs_args: ntfs_args, + pub tmpfs_args: tmpfs_args, + align: [c_char; 160], + } +} + cfg_if! { if #[cfg(feature = "extra_traits")] { - 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 + impl PartialEq for mount_info { + fn eq(&self, other: &mount_info) -> bool { + unsafe { + self.align .iter() - .zip(other.d_name.iter()) + .zip(other.align.iter()) .all(|(a, b)| a == b) + } } } - impl Eq for dirent {} - - impl hash::Hash for dirent { - fn hash(&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.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_len == other.ss_len && self.ss_family == other.ss_family - } - } - - impl Eq for sockaddr_storage {} - - impl hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_len.hash(state); - self.ss_family.hash(state); - } - } - - impl PartialEq for siginfo_t { - fn eq(&self, other: &siginfo_t) -> bool { - self.si_signo == other.si_signo - && self.si_code == other.si_code - && self.si_errno == other.si_errno - && self.si_addr == other.si_addr - } - } - - impl Eq for siginfo_t {} + impl Eq for mount_info {} - impl hash::Hash for siginfo_t { + impl hash::Hash for mount_info { fn hash(&self, state: &mut H) { - self.si_signo.hash(state); - self.si_code.hash(state); - self.si_errno.hash(state); - self.si_addr.hash(state); + unsafe { self.align.hash(state) }; } } + } +} - impl PartialEq for lastlog { - fn eq(&self, other: &lastlog) -> bool { - self.ll_time == other.ll_time - && self - .ll_line - .iter() - .zip(other.ll_line.iter()) - .all(|(a, b)| a == b) - && self - .ll_host - .iter() - .zip(other.ll_host.iter()) - .all(|(a, b)| a == b) - } - } +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut c_char { + self.si_addr + } - impl Eq for lastlog {} + pub unsafe fn si_code(&self) -> c_int { + self.si_code + } - impl hash::Hash for lastlog { - fn hash(&self, state: &mut H) { - self.ll_time.hash(state); - self.ll_line.hash(state); - self.ll_host.hash(state); - } - } + pub unsafe fn si_errno(&self) -> c_int { + self.si_errno + } - impl PartialEq for utmp { - fn eq(&self, other: &utmp) -> bool { - self.ut_time == other.ut_time - && self - .ut_line - .iter() - .zip(other.ut_line.iter()) - .all(|(a, b)| a == b) - && self - .ut_name - .iter() - .zip(other.ut_name.iter()) - .all(|(a, b)| a == b) - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a, b)| a == b) - } + pub unsafe fn si_pid(&self) -> crate::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: crate::pid_t, } + (*(self as *const siginfo_t).cast::())._pid + } - impl Eq for utmp {} - - impl hash::Hash for utmp { - fn hash(&self, state: &mut H) { - self.ut_line.hash(state); - self.ut_name.hash(state); - self.ut_host.hash(state); - self.ut_time.hash(state); - } + pub unsafe fn si_uid(&self) -> crate::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: crate::pid_t, + _uid: crate::uid_t, } + (*(self as *const siginfo_t).cast::())._uid + } - impl PartialEq for mount_info { - fn eq(&self, other: &mount_info) -> bool { - unsafe { - self.align - .iter() - .zip(other.align.iter()) - .all(|(a, b)| a == b) - } - } + pub unsafe fn si_value(&self) -> crate::sigval { + #[repr(C)] + struct siginfo_timer { + _si_signo: c_int, + _si_code: c_int, + _si_errno: c_int, + _pad: [c_int; SI_PAD], + _pid: crate::pid_t, + _uid: crate::uid_t, + value: crate::sigval, } + (*(self as *const siginfo_t).cast::()).value + } +} - impl Eq for mount_info {} - - impl hash::Hash for mount_info { - fn hash(&self, state: &mut H) { - unsafe { self.align.hash(state) }; - } - } +s_no_extra_traits! { + pub union __c_anonymous_ifr_ifru { + pub ifru_addr: crate::sockaddr, + pub ifru_dstaddr: crate::sockaddr, + pub ifru_broadaddr: crate::sockaddr, + pub ifru_flags: c_short, + pub ifru_metric: c_int, + pub ifru_vnetid: i64, + pub ifru_media: u64, + pub ifru_data: crate::caddr_t, + pub ifru_index: c_uint, + } +} +cfg_if! { + if #[cfg(feature = "extra_traits")] { impl PartialEq for __c_anonymous_ifr_ifru { fn eq(&self, other: &__c_anonymous_ifr_ifru) -> bool { unsafe { @@ -932,78 +816,6 @@ cfg_if! { } } } - - impl PartialEq for statfs { - fn eq(&self, other: &statfs) -> bool { - 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_favail == other.f_favail - && self.f_syncwrites == other.f_syncwrites - && self.f_syncreads == other.f_syncreads - && self.f_asyncwrites == other.f_asyncwrites - && self.f_asyncreads == other.f_asyncreads - && self.f_fsid == other.f_fsid - && self.f_namemax == other.f_namemax - && self.f_owner == other.f_owner - && self.f_ctime == other.f_ctime - && self - .f_fstypename - .iter() - .zip(other.f_fstypename.iter()) - .all(|(a, b)| a == b) - && self - .f_mntonname - .iter() - .zip(other.f_mntonname.iter()) - .all(|(a, b)| a == b) - && self - .f_mntfromname - .iter() - .zip(other.f_mntfromname.iter()) - .all(|(a, b)| a == b) - && self - .f_mntfromspec - .iter() - .zip(other.f_mntfromspec.iter()) - .all(|(a, b)| a == b) - && self.mount_info == other.mount_info - } - } - - impl Eq for statfs {} - - impl hash::Hash for statfs { - fn hash(&self, state: &mut H) { - 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_favail.hash(state); - self.f_syncwrites.hash(state); - self.f_syncreads.hash(state); - self.f_asyncwrites.hash(state); - self.f_asyncreads.hash(state); - self.f_fsid.hash(state); - self.f_namemax.hash(state); - self.f_owner.hash(state); - self.f_ctime.hash(state); - self.f_fstypename.hash(state); - self.f_mntonname.hash(state); - self.f_mntfromname.hash(state); - self.f_mntfromspec.hash(state); - self.mount_info.hash(state); - } - } } } diff --git a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs index 984570c387013..4abe8a1a7c5ed 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs @@ -36,9 +36,7 @@ s! { pub sc_mask: c_int, pub sc_cookie: c_long, } -} -s_no_extra_traits! { #[repr(packed)] pub struct fxsave64 { pub fx_fcw: u16, @@ -56,48 +54,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - // `fxsave64` is packed, so field access is unaligned. - // use {x} to create temporary storage, copy field to it, and do aligned access. - impl PartialEq for fxsave64 { - fn eq(&self, other: &fxsave64) -> bool { - return { self.fx_fcw } == { other.fx_fcw } - && { self.fx_fsw } == { other.fx_fsw } - && { self.fx_ftw } == { other.fx_ftw } - && { self.fx_fop } == { other.fx_fop } - && { self.fx_rip } == { other.fx_rip } - && { self.fx_rdp } == { other.fx_rdp } - && { self.fx_mxcsr } == { other.fx_mxcsr } - && { self.fx_mxcsr_mask } == { other.fx_mxcsr_mask } - && { self.fx_st } - .iter() - .zip({ other.fx_st }.iter()) - .all(|(a, b)| a == b) - && { self.fx_xmm } - .iter() - .zip({ other.fx_xmm }.iter()) - .all(|(a, b)| a == b); - } - } - impl Eq for fxsave64 {} - impl hash::Hash for fxsave64 { - fn hash(&self, state: &mut H) { - { self.fx_fcw }.hash(state); - { self.fx_fsw }.hash(state); - { self.fx_ftw }.hash(state); - { self.fx_fop }.hash(state); - { self.fx_rip }.hash(state); - { self.fx_rdp }.hash(state); - { self.fx_mxcsr }.hash(state); - { self.fx_mxcsr_mask }.hash(state); - { self.fx_st }.hash(state); - { self.fx_xmm }.hash(state); - } - } - } -} - pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 0e5faff17fb8f..6dee1217953cc 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -440,12 +440,19 @@ s! { pub f_namelen: c_long, pub f_spare: [c_long; 6], } -} -s_no_extra_traits! { - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4], + pub struct sockaddr_un { + pub sun_family: sa_family_t, + pub sun_path: [c_char; 108], + } + + pub struct utsname { + pub sysname: [c_char; 66], + pub nodename: [c_char; 65], + pub release: [c_char; 65], + pub version: [c_char; 65], + pub machine: [c_char; 65], + pub domainname: [c_char; 65], } pub struct siginfo_t { @@ -457,6 +464,22 @@ s_no_extra_traits! { __pad: [u32; 32], } + pub struct dirent { + __d_version: u32, + pub d_ino: ino_t, + pub d_type: c_uchar, + __d_unused1: [c_uchar; 3], + __d_internal1: u32, + pub d_name: [c_char; 256], + } +} + +s_no_extra_traits! { + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4], + } + pub union __c_anonymous_ifr_ifru { pub ifru_addr: sockaddr, pub ifru_broadaddr: sockaddr, @@ -486,29 +509,6 @@ s_no_extra_traits! { pub ifc_len: c_int, pub ifc_ifcu: __c_anonymous_ifc_ifcu, } - - pub struct dirent { - __d_version: u32, - pub d_ino: ino_t, - pub d_type: c_uchar, - __d_unused1: [c_uchar; 3], - __d_internal1: u32, - pub d_name: [c_char; 256], - } - - pub struct sockaddr_un { - pub sun_family: sa_family_t, - pub sun_path: [c_char; 108], - } - - pub struct utsname { - pub sysname: [c_char; 66], - pub nodename: [c_char; 65], - pub release: [c_char; 65], - pub version: [c_char; 65], - pub machine: [c_char; 65], - pub domainname: [c_char; 65], - } } impl siginfo_t { @@ -560,122 +560,6 @@ impl siginfo_t { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for siginfo_t { - fn eq(&self, other: &siginfo_t) -> bool { - self.si_signo == other.si_signo - && self.si_code == other.si_code - && self.si_pid == other.si_pid - && self.si_uid == other.si_uid - && self.si_errno == other.si_errno - } - } - - impl Eq for siginfo_t {} - - impl hash::Hash for siginfo_t { - fn hash(&self, state: &mut H) { - self.si_signo.hash(state); - self.si_code.hash(state); - self.si_pid.hash(state); - self.si_uid.hash(state); - self.si_errno.hash(state); - // Ignore __pad - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_ino == other.d_ino - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for dirent {} - - impl hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for sockaddr_un { - fn eq(&self, other: &sockaddr_un) -> bool { - self.sun_family == other.sun_family - && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for sockaddr_un {} - - impl hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { - self.sun_family.hash(state); - self.sun_path.hash(state); - } - } - - impl PartialEq for utsname { - fn eq(&self, other: &utsname) -> bool { - self.sysname - .iter() - .zip(other.sysname.iter()) - .all(|(a, b)| a == b) - && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a, b)| a == b) - && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a, b)| a == b) - && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a, b)| a == b) - && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a, b)| a == b) - && self - .domainname - .iter() - .zip(other.domainname.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for utsname {} - - impl hash::Hash for utsname { - fn hash(&self, state: &mut H) { - self.sysname.hash(state); - self.nodename.hash(state); - self.release.hash(state); - self.version.hash(state); - self.machine.hash(state); - self.domainname.hash(state); - } - } - } -} - pub const FD_SETSIZE: usize = 1024; pub const CPU_SETSIZE: c_int = 0x400; diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 7c3f07e0ad9be..41522dba929c4 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -457,9 +457,7 @@ s! { pub flag: *mut c_int, pub val: c_int, } -} -s_no_extra_traits! { pub struct sockaddr_un { pub sun_len: u8, pub sun_family: sa_family_t, @@ -501,132 +499,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_type == other.ut_type - && self.ut_tv == other.ut_tv - && self.ut_id == other.ut_id - && self.ut_pid == other.ut_pid - && self.ut_user == other.ut_user - && self.ut_line == other.ut_line - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a, b)| a == b) - && self.__ut_reserved == other.__ut_reserved - } - } - - impl Eq for utmpx {} - impl hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_type.hash(state); - self.ut_tv.hash(state); - self.ut_id.hash(state); - self.ut_pid.hash(state); - self.ut_user.hash(state); - self.ut_line.hash(state); - self.ut_host.hash(state); - self.__ut_reserved.hash(state); - } - } - impl PartialEq for sockaddr_un { - fn eq(&self, other: &sockaddr_un) -> bool { - self.sun_len == other.sun_len - && self.sun_family == other.sun_family - && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_un {} - impl hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { - self.sun_len.hash(state); - self.sun_family.hash(state); - self.sun_path.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_len == other.ss_len - && self.ss_family == other.ss_family - && self - .__ss_pad1 - .iter() - .zip(other.__ss_pad1.iter()) - .all(|(a, b)| a == b) - && self.__ss_pad2 == other.__ss_pad2 - && self - .__ss_pad3 - .iter() - .zip(other.__ss_pad3.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_storage {} - impl hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_len.hash(state); - self.ss_family.hash(state); - self.__ss_pad1.hash(state); - self.__ss_pad2.hash(state); - self.__ss_pad3.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_dev == other.d_dev - && self.d_pdev == other.d_pdev - && self.d_ino == other.d_ino - && self.d_pino == other.d_pino - && self.d_reclen == other.d_reclen - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for dirent {} - impl hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_dev.hash(state); - self.d_pdev.hash(state); - self.d_ino.hash(state); - self.d_pino.hash(state); - self.d_reclen.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for sigevent { - fn eq(&self, other: &sigevent) -> bool { - self.sigev_notify == other.sigev_notify - && self.sigev_signo == other.sigev_signo - && self.sigev_value == other.sigev_value - && self.sigev_notify_attributes == other.sigev_notify_attributes - } - } - impl Eq for sigevent {} - impl hash::Hash for sigevent { - fn hash(&self, state: &mut H) { - self.sigev_notify.hash(state); - self.sigev_signo.hash(state); - self.sigev_value.hash(state); - self.sigev_notify_attributes.hash(state); - } - } - } -} - pub const EXIT_FAILURE: c_int = 1; pub const EXIT_SUCCESS: c_int = 0; pub const RAND_MAX: c_int = 2147483647; diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs index 13a203f92ff56..6c7f69acbd4ee 100644 --- a/src/unix/haiku/native.rs +++ b/src/unix/haiku/native.rs @@ -451,6 +451,13 @@ s! { pub edx: u32, pub ecx: u32, } + + pub struct cpu_topology_node_info { + pub id: u32, + pub type_: topology_level_type, + pub level: u32, + pub data: __c_anonymous_cpu_topology_info_data, + } } s_no_extra_traits! { @@ -468,13 +475,6 @@ s_no_extra_traits! { pub package: cpu_topology_package_info, pub core: cpu_topology_core_info, } - - pub struct cpu_topology_node_info { - pub id: u32, - pub type_: topology_level_type, - pub level: u32, - pub data: __c_anonymous_cpu_topology_info_data, - } } cfg_if! { @@ -492,6 +492,11 @@ cfg_if! { } } impl Eq for cpuid_info {} + impl hash::Hash for cpuid_info { + fn hash(&self, _state: &mut H) { + unimplemented!("traits"); + } + } impl PartialEq for __c_anonymous_cpu_topology_info_data { fn eq(&self, other: &__c_anonymous_cpu_topology_info_data) -> bool { @@ -503,14 +508,11 @@ cfg_if! { } } impl Eq for __c_anonymous_cpu_topology_info_data {} - - impl PartialEq for cpu_topology_node_info { - fn eq(&self, other: &cpu_topology_node_info) -> bool { - self.id == other.id && self.type_ == other.type_ && self.level == other.level + impl hash::Hash for __c_anonymous_cpu_topology_info_data { + fn hash(&self, _state: &mut H) { + unimplemented!("traits"); } } - - impl Eq for cpu_topology_node_info {} } } diff --git a/src/unix/haiku/x86_64.rs b/src/unix/haiku/x86_64.rs index 16e2612ed760d..538ae30d438bf 100644 --- a/src/unix/haiku/x86_64.rs +++ b/src/unix/haiku/x86_64.rs @@ -1,6 +1,6 @@ use crate::prelude::*; -s_no_extra_traits! { +s! { pub struct fpu_state { pub control: c_ushort, pub status: c_ushort, @@ -56,153 +56,3 @@ s_no_extra_traits! { pub uc_mcontext: mcontext_t, } } - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for fpu_state { - fn eq(&self, other: &fpu_state) -> bool { - self.control == other.control - && self.status == other.status - && self.tag == other.tag - && self.opcode == other.opcode - && self.rip == other.rip - && self.rdp == other.rdp - && self.mxcsr == other.mxcsr - && self.mscsr_mask == other.mscsr_mask - && self - ._fpreg - .iter() - .zip(other._fpreg.iter()) - .all(|(a, b)| a == b) - && self._xmm.iter().zip(other._xmm.iter()).all(|(a, b)| a == b) - && self - ._reserved_416_511 - .iter() - .zip(other._reserved_416_511.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for fpu_state {} - impl hash::Hash for fpu_state { - fn hash(&self, state: &mut H) { - self.control.hash(state); - self.status.hash(state); - self.tag.hash(state); - self.opcode.hash(state); - self.rip.hash(state); - self.rdp.hash(state); - self.mxcsr.hash(state); - self.mscsr_mask.hash(state); - self._fpreg.hash(state); - self._xmm.hash(state); - self._reserved_416_511.hash(state); - } - } - - impl PartialEq for xstate_hdr { - fn eq(&self, other: &xstate_hdr) -> bool { - self.bv == other.bv - && self.xcomp_bv == other.xcomp_bv - && self - ._reserved - .iter() - .zip(other._reserved.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for xstate_hdr {} - impl hash::Hash for xstate_hdr { - fn hash(&self, state: &mut H) { - self.bv.hash(state); - self.xcomp_bv.hash(state); - self._reserved.hash(state); - } - } - - impl PartialEq for savefpu { - fn eq(&self, other: &savefpu) -> bool { - self.fp_fxsave == other.fp_fxsave - && self.fp_xstate == other.fp_xstate - && self - ._fp_ymm - .iter() - .zip(other._fp_ymm.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for savefpu {} - impl hash::Hash for savefpu { - fn hash(&self, state: &mut H) { - self.fp_fxsave.hash(state); - self.fp_xstate.hash(state); - self._fp_ymm.hash(state); - } - } - - impl PartialEq for mcontext_t { - fn eq(&self, other: &mcontext_t) -> bool { - self.rax == other.rax - && self.rbx == other.rbx - && self.rbx == other.rbx - && self.rcx == other.rcx - && self.rdx == other.rdx - && self.rdi == other.rdi - && self.rsi == other.rsi - && self.r8 == other.r8 - && self.r9 == other.r9 - && self.r10 == other.r10 - && self.r11 == other.r11 - && self.r12 == other.r12 - && self.r13 == other.r13 - && self.r14 == other.r14 - && self.r15 == other.r15 - && self.rsp == other.rsp - && self.rip == other.rip - && self.rflags == other.rflags - && self.fpu == other.fpu - } - } - impl Eq for mcontext_t {} - impl hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { - self.rax.hash(state); - self.rbx.hash(state); - self.rcx.hash(state); - self.rdx.hash(state); - self.rdi.hash(state); - self.rsi.hash(state); - self.rbp.hash(state); - self.r8.hash(state); - self.r9.hash(state); - self.r10.hash(state); - self.r11.hash(state); - self.r12.hash(state); - self.r13.hash(state); - self.r14.hash(state); - self.r15.hash(state); - self.rsp.hash(state); - self.rip.hash(state); - self.rflags.hash(state); - self.fpu.hash(state); - } - } - - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_link == other.uc_link - && self.uc_sigmask == other.uc_sigmask - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - } - } - impl Eq for ucontext_t {} - impl hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_link.hash(state); - self.uc_sigmask.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - } - } - } -} diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index a0be74022e251..7485074b91c1b 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -1019,9 +1019,7 @@ s! { pub flag: *mut c_int, pub val: c_int, } -} -s_no_extra_traits! { pub struct utmpx { pub ut_type: c_short, pub ut_pid: crate::pid_t, @@ -1047,48 +1045,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_type == other.ut_type - && self.ut_pid == other.ut_pid - && self.ut_line == other.ut_line - && self.ut_id == other.ut_id - && self.ut_user == other.ut_user - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a, b)| a == b) - && self.ut_exit == other.ut_exit - && self.ut_session == other.ut_session - && self.ut_tv == other.ut_tv - && self.ut_addr_v6 == other.ut_addr_v6 - && self.__glibc_reserved == other.__glibc_reserved - } - } - - impl Eq for utmpx {} - - impl hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_type.hash(state); - self.ut_pid.hash(state); - self.ut_line.hash(state); - self.ut_id.hash(state); - self.ut_user.hash(state); - self.ut_host.hash(state); - self.ut_exit.hash(state); - self.ut_session.hash(state); - self.ut_tv.hash(state); - self.ut_addr_v6.hash(state); - self.__glibc_reserved.hash(state); - } - } - } -} - impl siginfo_t { pub unsafe fn si_addr(&self) -> *mut c_void { self.si_addr diff --git a/src/unix/linux_like/android/b32/arm.rs b/src/unix/linux_like/android/b32/arm.rs index b78c8a83623ea..7fb2ff663bcac 100644 --- a/src/unix/linux_like/android/b32/arm.rs +++ b/src/unix/linux_like/android/b32/arm.rs @@ -28,20 +28,13 @@ s! { pub arm_cpsr: c_ulong, pub fault_address: c_ulong, } -} -s_no_extra_traits! { pub struct __c_anonymous_uc_sigmask_with_padding { pub uc_sigmask: crate::sigset_t, /* Android has a wrong (smaller) sigset_t on x86. */ __padding_rt_sigset: u32, } - pub union __c_anonymous_uc_sigmask { - uc_sigmask: __c_anonymous_uc_sigmask_with_padding, - uc_sigmask64: crate::sigset64_t, - } - pub struct ucontext_t { pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, @@ -56,22 +49,15 @@ s_no_extra_traits! { } } +s_no_extra_traits! { + pub union __c_anonymous_uc_sigmask { + uc_sigmask: __c_anonymous_uc_sigmask_with_padding, + uc_sigmask64: crate::sigset64_t, + } +} + cfg_if! { if #[cfg(feature = "extra_traits")] { - impl PartialEq for __c_anonymous_uc_sigmask_with_padding { - fn eq(&self, other: &__c_anonymous_uc_sigmask_with_padding) -> bool { - self.uc_sigmask == other.uc_sigmask - // Ignore padding - } - } - impl Eq for __c_anonymous_uc_sigmask_with_padding {} - impl hash::Hash for __c_anonymous_uc_sigmask_with_padding { - fn hash(&self, state: &mut H) { - self.uc_sigmask.hash(state) - // Ignore padding - } - } - impl PartialEq for __c_anonymous_uc_sigmask { fn eq(&self, other: &__c_anonymous_uc_sigmask) -> bool { unsafe { self.uc_sigmask == other.uc_sigmask } @@ -83,30 +69,6 @@ cfg_if! { unsafe { self.uc_sigmask.hash(state) } } } - - impl PartialEq for ucontext_t { - fn eq(&self, other: &Self) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask__c_anonymous_union == other.uc_sigmask__c_anonymous_union - && &self.uc_regspace[..] == &other.uc_regspace[..] - // Ignore padding field - } - } - impl Eq for ucontext_t {} - impl hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask__c_anonymous_union.hash(state); - self.uc_regspace[..].hash(state); - // Ignore padding field - } - } } } diff --git a/src/unix/linux_like/android/b32/x86/mod.rs b/src/unix/linux_like/android/b32/x86/mod.rs index ca46c3c462246..22a8766e88bb3 100644 --- a/src/unix/linux_like/android/b32/x86/mod.rs +++ b/src/unix/linux_like/android/b32/x86/mod.rs @@ -27,20 +27,13 @@ s! { pub oldmask: c_ulong, pub cr2: c_ulong, } -} -s_no_extra_traits! { pub struct __c_anonymous_uc_sigmask_with_padding { pub uc_sigmask: crate::sigset_t, /* Android has a wrong (smaller) sigset_t on x86. */ __padding_rt_sigset: u32, } - pub union __c_anonymous_uc_sigmask { - uc_sigmask: __c_anonymous_uc_sigmask_with_padding, - uc_sigmask64: crate::sigset64_t, - } - pub struct ucontext_t { pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, @@ -50,6 +43,13 @@ s_no_extra_traits! { __padding_rt_sigset: u32, __fpregs_mem: _libc_fpstate, } +} + +s_no_extra_traits! { + pub union __c_anonymous_uc_sigmask { + uc_sigmask: __c_anonymous_uc_sigmask_with_padding, + uc_sigmask64: crate::sigset64_t, + } #[repr(align(8))] pub struct max_align_t { @@ -59,20 +59,6 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { - impl PartialEq for __c_anonymous_uc_sigmask_with_padding { - fn eq(&self, other: &__c_anonymous_uc_sigmask_with_padding) -> bool { - self.uc_sigmask == other.uc_sigmask - // Ignore padding - } - } - impl Eq for __c_anonymous_uc_sigmask_with_padding {} - impl hash::Hash for __c_anonymous_uc_sigmask_with_padding { - fn hash(&self, state: &mut H) { - self.uc_sigmask.hash(state) - // Ignore padding - } - } - impl PartialEq for __c_anonymous_uc_sigmask { fn eq(&self, other: &__c_anonymous_uc_sigmask) -> bool { unsafe { self.uc_sigmask == other.uc_sigmask } @@ -84,28 +70,6 @@ cfg_if! { unsafe { self.uc_sigmask.hash(state) } } } - - impl PartialEq for ucontext_t { - fn eq(&self, other: &Self) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask__c_anonymous_union == other.uc_sigmask__c_anonymous_union - // Ignore padding field - } - } - impl Eq for ucontext_t {} - impl hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask__c_anonymous_union.hash(state); - // Ignore padding field - } - } } } diff --git a/src/unix/linux_like/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs index 46ceed4c6dcba..7d5baef752e44 100644 --- a/src/unix/linux_like/android/b64/mod.rs +++ b/src/unix/linux_like/android/b64/mod.rs @@ -115,9 +115,7 @@ s! { pub struct pthread_spinlock_t { __private: i64, } -} -s_no_extra_traits! { pub struct pthread_mutex_t { value: c_int, __reserved: [c_char; 36], @@ -142,78 +140,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for pthread_mutex_t { - fn eq(&self, other: &pthread_mutex_t) -> bool { - self.value == other.value - && self - .__reserved - .iter() - .zip(other.__reserved.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for pthread_mutex_t {} - - impl hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { - self.value.hash(state); - self.__reserved.hash(state); - } - } - - impl PartialEq for pthread_cond_t { - fn eq(&self, other: &pthread_cond_t) -> bool { - self.value == other.value - && self - .__reserved - .iter() - .zip(other.__reserved.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for pthread_cond_t {} - - impl hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { - self.value.hash(state); - self.__reserved.hash(state); - } - } - - impl PartialEq for pthread_rwlock_t { - fn eq(&self, other: &pthread_rwlock_t) -> bool { - self.numLocks == other.numLocks - && self.writerThreadId == other.writerThreadId - && self.pendingReaders == other.pendingReaders - && self.pendingWriters == other.pendingWriters - && self.attr == other.attr - && self - .__reserved - .iter() - .zip(other.__reserved.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for pthread_rwlock_t {} - - impl hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { - self.numLocks.hash(state); - self.writerThreadId.hash(state); - self.pendingReaders.hash(state); - self.pendingWriters.hash(state); - self.attr.hash(state); - self.__reserved.hash(state); - } - } - } -} - // These constants must be of the same type of sigaction.sa_flags pub const SA_NOCLDSTOP: c_int = 0x00000001; pub const SA_NOCLDWAIT: c_int = 0x00000002; diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index 0fddeb7bc267f..fd678d1f11108 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -104,37 +104,7 @@ s! { pub error_code: c_ulong, pub fault_address: c_ulong, } -} - -s_no_extra_traits! { - pub union __c_anonymous_uc_sigmask { - uc_sigmask: crate::sigset_t, - uc_sigmask64: crate::sigset64_t, - } - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for __c_anonymous_uc_sigmask { - fn eq(&self, other: &__c_anonymous_uc_sigmask) -> bool { - unsafe { self.uc_sigmask == other.uc_sigmask } - } - } - impl Eq for __c_anonymous_uc_sigmask {} - impl hash::Hash for __c_anonymous_uc_sigmask { - fn hash(&self, state: &mut H) { - unsafe { self.uc_sigmask.hash(state) } - } - } - } -} - -s_no_extra_traits! { pub struct _libc_fpxreg { pub significand: [u16; 4], pub exponent: u16, @@ -185,127 +155,29 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for _libc_fpxreg { - fn eq(&self, other: &Self) -> bool { - self.significand == other.significand && self.exponent == other.exponent - // Ignore padding field - } - } - impl Eq for _libc_fpxreg {} - impl hash::Hash for _libc_fpxreg { - fn hash(&self, state: &mut H) { - self.significand.hash(state); - self.exponent.hash(state); - // Ignore padding field - } - } - - impl PartialEq for _libc_fpstate { - fn eq(&self, other: &Self) -> bool { - self.cwd == other.cwd - && self.swd == other.swd - && self.ftw == other.ftw - && self.fop == other.fop - && self.rip == other.rip - && self.rdp == other.rdp - && self.mxcsr == other.mxcsr - && self.mxcr_mask == other.mxcr_mask - && self._st == other._st - && self._xmm == other._xmm - // Ignore padding field - } - } - impl Eq for _libc_fpstate {} - impl hash::Hash for _libc_fpstate { - fn hash(&self, state: &mut H) { - self.cwd.hash(state); - self.swd.hash(state); - self.ftw.hash(state); - self.fop.hash(state); - self.rip.hash(state); - self.rdp.hash(state); - self.mxcsr.hash(state); - self.mxcr_mask.hash(state); - self._st.hash(state); - self._xmm.hash(state); - // Ignore padding field - } - } - - impl PartialEq for mcontext_t { - fn eq(&self, other: &Self) -> bool { - self.gregs == other.gregs && self.fpregs == other.fpregs - // Ignore padding field - } - } - impl Eq for mcontext_t {} - impl hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { - self.gregs.hash(state); - self.fpregs.hash(state); - // Ignore padding field - } - } +s_no_extra_traits! { + pub union __c_anonymous_uc_sigmask { + uc_sigmask: crate::sigset_t, + uc_sigmask64: crate::sigset64_t, + } - impl PartialEq for ucontext_t { - fn eq(&self, other: &Self) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask64 == other.uc_sigmask64 - // Ignore padding field - } - } - impl Eq for ucontext_t {} - impl hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask64.hash(state); - // Ignore padding field - } - } + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4], + } +} - impl PartialEq for user_fpregs_struct { - fn eq(&self, other: &user_fpregs_struct) -> bool { - self.cwd == other.cwd - && self.swd == other.swd - && self.ftw == other.ftw - && self.fop == other.fop - && self.rip == other.rip - && self.rdp == other.rdp - && self.mxcsr == other.mxcsr - && self.mxcr_mask == other.mxcr_mask - && self.st_space == other.st_space - && self - .xmm_space - .iter() - .zip(other.xmm_space.iter()) - .all(|(a, b)| a == b) - // Ignore padding field +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for __c_anonymous_uc_sigmask { + fn eq(&self, other: &__c_anonymous_uc_sigmask) -> bool { + unsafe { self.uc_sigmask == other.uc_sigmask } } } - - impl Eq for user_fpregs_struct {} - - impl hash::Hash for user_fpregs_struct { + impl Eq for __c_anonymous_uc_sigmask {} + impl hash::Hash for __c_anonymous_uc_sigmask { fn hash(&self, state: &mut H) { - self.cwd.hash(state); - self.swd.hash(state); - self.ftw.hash(state); - self.fop.hash(state); - self.rip.hash(state); - self.rdp.hash(state); - self.mxcsr.hash(state); - self.mxcr_mask.hash(state); - self.st_space.hash(state); - self.xmm_space.hash(state); - // Ignore padding field + unsafe { self.uc_sigmask.hash(state) } } } } diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index c829adc656d22..e942bedfbdb19 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -500,9 +500,7 @@ s! { pub if_index: c_uint, pub if_name: *mut c_char, } -} -s_no_extra_traits! { pub struct sockaddr_nl { pub nl_family: crate::sa_family_t, nl_pad: c_ushort, @@ -578,6 +576,14 @@ s_no_extra_traits! { pub absflat: [crate::__s32; ABS_CNT], } + pub struct prop_info { + __name: [c_char; 32], + __serial: c_uint, + __value: [c_char; 92], + } +} + +s_no_extra_traits! { /// WARNING: The `PartialEq`, `Eq` and `Hash` implementations of this /// type are unsound and will be removed in the future. #[deprecated( @@ -590,12 +596,6 @@ s_no_extra_traits! { pub iv: [c_uchar; 0], } - pub struct prop_info { - __name: [c_char; 32], - __serial: c_uint, - __value: [c_char; 92], - } - pub union __c_anonymous_ifr_ifru { pub ifru_addr: crate::sockaddr, pub ifru_dstaddr: crate::sockaddr, @@ -634,240 +634,6 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { - impl PartialEq for sockaddr_nl { - fn eq(&self, other: &sockaddr_nl) -> bool { - self.nl_family == other.nl_family - && self.nl_pid == other.nl_pid - && self.nl_groups == other.nl_groups - } - } - impl Eq for sockaddr_nl {} - impl hash::Hash for sockaddr_nl { - fn hash(&self, state: &mut H) { - self.nl_family.hash(state); - self.nl_pid.hash(state); - self.nl_groups.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for dirent {} - - impl hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for dirent64 { - fn eq(&self, other: &dirent64) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for dirent64 {} - - impl hash::Hash for dirent64 { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for siginfo_t { - fn eq(&self, other: &siginfo_t) -> bool { - self.si_signo == other.si_signo - && self.si_errno == other.si_errno - && self.si_code == other.si_code - // Ignore _pad - // Ignore _align - } - } - - impl Eq for siginfo_t {} - - impl hash::Hash for siginfo_t { - fn hash(&self, state: &mut H) { - self.si_signo.hash(state); - self.si_errno.hash(state); - self.si_code.hash(state); - // Ignore _pad - // Ignore _align - } - } - - impl PartialEq for lastlog { - fn eq(&self, other: &lastlog) -> bool { - self.ll_time == other.ll_time - && self - .ll_line - .iter() - .zip(other.ll_line.iter()) - .all(|(a, b)| a == b) - && self - .ll_host - .iter() - .zip(other.ll_host.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for lastlog {} - - impl hash::Hash for lastlog { - fn hash(&self, state: &mut H) { - self.ll_time.hash(state); - self.ll_line.hash(state); - self.ll_host.hash(state); - } - } - - impl PartialEq for utmp { - fn eq(&self, other: &utmp) -> bool { - self.ut_type == other.ut_type - && self.ut_pid == other.ut_pid - && self - .ut_line - .iter() - .zip(other.ut_line.iter()) - .all(|(a, b)| a == b) - && self.ut_id == other.ut_id - && self - .ut_user - .iter() - .zip(other.ut_user.iter()) - .all(|(a, b)| a == b) - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a, b)| a == b) - && self.ut_exit == other.ut_exit - && self.ut_session == other.ut_session - && self.ut_tv == other.ut_tv - && self.ut_addr_v6 == other.ut_addr_v6 - && self.unused == other.unused - } - } - - impl Eq for utmp {} - - impl hash::Hash for utmp { - fn hash(&self, state: &mut H) { - self.ut_type.hash(state); - self.ut_pid.hash(state); - self.ut_line.hash(state); - self.ut_id.hash(state); - self.ut_user.hash(state); - self.ut_host.hash(state); - self.ut_exit.hash(state); - self.ut_session.hash(state); - self.ut_tv.hash(state); - self.ut_addr_v6.hash(state); - self.unused.hash(state); - } - } - - impl PartialEq for sockaddr_alg { - fn eq(&self, other: &sockaddr_alg) -> bool { - self.salg_family == other.salg_family - && self - .salg_type - .iter() - .zip(other.salg_type.iter()) - .all(|(a, b)| a == b) - && self.salg_feat == other.salg_feat - && self.salg_mask == other.salg_mask - && self - .salg_name - .iter() - .zip(other.salg_name.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for sockaddr_alg {} - - impl hash::Hash for sockaddr_alg { - fn hash(&self, state: &mut H) { - self.salg_family.hash(state); - self.salg_type.hash(state); - self.salg_feat.hash(state); - self.salg_mask.hash(state); - self.salg_name.hash(state); - } - } - - impl PartialEq for uinput_setup { - fn eq(&self, other: &uinput_setup) -> bool { - self.id == other.id - && self.name[..] == other.name[..] - && self.ff_effects_max == other.ff_effects_max - } - } - impl Eq for uinput_setup {} - - impl hash::Hash for uinput_setup { - fn hash(&self, state: &mut H) { - self.id.hash(state); - self.name.hash(state); - self.ff_effects_max.hash(state); - } - } - - impl PartialEq for uinput_user_dev { - fn eq(&self, other: &uinput_user_dev) -> bool { - self.name[..] == other.name[..] - && self.id == other.id - && self.ff_effects_max == other.ff_effects_max - && self.absmax[..] == other.absmax[..] - && self.absmin[..] == other.absmin[..] - && self.absfuzz[..] == other.absfuzz[..] - && self.absflat[..] == other.absflat[..] - } - } - impl Eq for uinput_user_dev {} - - impl hash::Hash for uinput_user_dev { - fn hash(&self, state: &mut H) { - self.name.hash(state); - self.id.hash(state); - self.ff_effects_max.hash(state); - self.absmax.hash(state); - self.absmin.hash(state); - self.absfuzz.hash(state); - self.absflat.hash(state); - } - } - #[allow(deprecated)] impl af_alg_iv { fn as_slice(&self) -> &[u8] { @@ -891,15 +657,6 @@ cfg_if! { self.as_slice().hash(state); } } - - impl PartialEq for prop_info { - fn eq(&self, other: &prop_info) -> bool { - self.__name == other.__name - && self.__serial == other.__serial - && self.__value == other.__value - } - } - impl Eq for prop_info {} } } diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 91e506c57cc22..306cf180e5c0b 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -334,9 +334,7 @@ s! { pub struct pthread_condattr_t { size: [u8; crate::__SIZEOF_PTHREAD_CONDATTR_T], } -} -s_no_extra_traits! { pub struct dirent { pub d_ino: crate::ino_t, pub d_off: off_t, @@ -375,113 +373,15 @@ s_no_extra_traits! { pub struct pthread_cond_t { size: [u8; crate::__SIZEOF_PTHREAD_COND_T], } +} +s_no_extra_traits! { #[repr(align(8))] pub struct max_align_t { priv_: [f64; 3], } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for dirent {} - impl hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for sysinfo { - fn eq(&self, other: &sysinfo) -> bool { - self.uptime == other.uptime - && self.loads == other.loads - && self.totalram == other.totalram - && self.freeram == other.freeram - && self.sharedram == other.sharedram - && self.bufferram == other.bufferram - && self.totalswap == other.totalswap - && self.freeswap == other.freeswap - && self.procs == other.procs - && self.pad == other.pad - && self.totalhigh == other.totalhigh - && self.freehigh == other.freehigh - && self.mem_unit == other.mem_unit - && self - .__reserved - .iter() - .zip(other.__reserved.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sysinfo {} - impl hash::Hash for sysinfo { - fn hash(&self, state: &mut H) { - self.uptime.hash(state); - self.loads.hash(state); - self.totalram.hash(state); - self.freeram.hash(state); - self.sharedram.hash(state); - self.bufferram.hash(state); - self.totalswap.hash(state); - self.freeswap.hash(state); - self.procs.hash(state); - self.pad.hash(state); - self.totalhigh.hash(state); - self.freehigh.hash(state); - self.mem_unit.hash(state); - self.__reserved.hash(state); - } - } - - impl PartialEq for mq_attr { - fn eq(&self, other: &mq_attr) -> bool { - self.mq_flags == other.mq_flags - && self.mq_maxmsg == other.mq_maxmsg - && self.mq_msgsize == other.mq_msgsize - && self.mq_curmsgs == other.mq_curmsgs - } - } - impl Eq for mq_attr {} - impl hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { - self.mq_flags.hash(state); - self.mq_maxmsg.hash(state); - self.mq_msgsize.hash(state); - self.mq_curmsgs.hash(state); - } - } - - impl PartialEq for pthread_cond_t { - fn eq(&self, other: &pthread_cond_t) -> bool { - self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b) - } - } - impl Eq for pthread_cond_t {} - impl hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - } -} - pub const MADV_SOFT_OFFLINE: c_int = 101; pub const MS_NOUSER: c_ulong = 0x80000000; pub const MS_RMT_MASK: c_ulong = 0x02800051; diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 0f7181e2aee1a..40d90159553a9 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -232,13 +232,6 @@ s! { pub arm_cpsr: c_ulong, pub arm_orig_r0: c_ulong, } -} - -s_no_extra_traits! { - #[repr(align(8))] - pub struct max_align_t { - priv_: [i64; 2], - } #[repr(align(8))] pub struct ucontext_t { @@ -251,27 +244,10 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask == other.uc_sigmask - } - } - impl Eq for ucontext_t {} - impl hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask.hash(state); - } - } +s_no_extra_traits! { + #[repr(align(8))] + pub struct max_align_t { + priv_: [i64; 2], } } diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 26a95f85972f1..4882acb8fd0e2 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -261,9 +261,7 @@ s! { pub ss_flags: c_int, pub ss_size: size_t, } -} -s_no_extra_traits! { pub struct user_fpxregs_struct { pub cwd: c_ushort, pub swd: c_ushort, @@ -289,79 +287,15 @@ s_no_extra_traits! { __private: [u8; 112], __ssp: [c_ulong; 4], } +} +s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [f64; 6], } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for user_fpxregs_struct { - fn eq(&self, other: &user_fpxregs_struct) -> bool { - self.cwd == other.cwd - && self.swd == other.swd - && self.twd == other.twd - && self.fop == other.fop - && self.fip == other.fip - && self.fcs == other.fcs - && self.foo == other.foo - && self.fos == other.fos - && self.mxcsr == other.mxcsr - // Ignore __reserved field - && self.st_space == other.st_space - && self.xmm_space == other.xmm_space - // Ignore padding field - } - } - - impl Eq for user_fpxregs_struct {} - - impl hash::Hash for user_fpxregs_struct { - fn hash(&self, state: &mut H) { - self.cwd.hash(state); - self.swd.hash(state); - self.twd.hash(state); - self.fop.hash(state); - self.fip.hash(state); - self.fcs.hash(state); - self.foo.hash(state); - self.fos.hash(state); - self.mxcsr.hash(state); - // Ignore __reserved field - self.st_space.hash(state); - self.xmm_space.hash(state); - // Ignore padding field - } - } - - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask == other.uc_sigmask - // Ignore __private field - } - } - - impl Eq for ucontext_t {} - - impl hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask.hash(state); - // Ignore __private field - } - } - } -} - pub const VEOF: usize = 4; pub const RTLD_DEEPBIND: c_int = 0x8; pub const RTLD_GLOBAL: c_int = 0x100; diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index e100871275776..f58d8bba480f8 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -289,9 +289,7 @@ s! { pub set_tid_size: c_ulonglong, pub cgroup: c_ulonglong, } -} -s_no_extra_traits! { pub struct user_fpregs_struct { pub cwd: c_ushort, pub swd: c_ushort, @@ -315,78 +313,15 @@ s_no_extra_traits! { __private: [u8; 512], __ssp: [c_ulonglong; 4], } +} +s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4], } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for user_fpregs_struct { - fn eq(&self, other: &user_fpregs_struct) -> bool { - self.cwd == other.cwd - && self.swd == other.swd - && self.ftw == other.ftw - && self.fop == other.fop - && self.rip == other.rip - && self.rdp == other.rdp - && self.mxcsr == other.mxcsr - && self.mxcr_mask == other.mxcr_mask - && self.st_space == other.st_space - && self - .xmm_space - .iter() - .zip(other.xmm_space.iter()) - .all(|(a, b)| a == b) - // Ignore padding field - } - } - - impl Eq for user_fpregs_struct {} - - impl hash::Hash for user_fpregs_struct { - fn hash(&self, state: &mut H) { - self.cwd.hash(state); - self.ftw.hash(state); - self.fop.hash(state); - self.rip.hash(state); - self.rdp.hash(state); - self.mxcsr.hash(state); - self.mxcr_mask.hash(state); - self.st_space.hash(state); - self.xmm_space.hash(state); - // Ignore padding field - } - } - - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask == other.uc_sigmask - // Ignore __private field - } - } - - impl Eq for ucontext_t {} - - impl hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask.hash(state); - // Ignore __private field - } - } - } -} - pub const POSIX_FADV_DONTNEED: c_int = 4; pub const POSIX_FADV_NOREUSE: c_int = 5; diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index b877fc296d5d1..3aae0164cab08 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -350,6 +350,50 @@ s! { #[cfg(all(gnu_time_bits64, target_endian = "little"))] __pad: i32, } + + pub struct utmpx { + pub ut_type: c_short, + pub ut_pid: crate::pid_t, + pub ut_line: [c_char; __UT_LINESIZE], + pub ut_id: [c_char; 4], + + pub ut_user: [c_char; __UT_NAMESIZE], + pub ut_host: [c_char; __UT_HOSTSIZE], + pub ut_exit: __exit_status, + + #[cfg(any( + target_arch = "aarch64", + target_arch = "s390x", + target_arch = "loongarch64", + all(target_pointer_width = "32", not(target_arch = "x86_64")) + ))] + pub ut_session: c_long, + #[cfg(any( + target_arch = "aarch64", + target_arch = "s390x", + target_arch = "loongarch64", + all(target_pointer_width = "32", not(target_arch = "x86_64")) + ))] + pub ut_tv: crate::timeval, + + #[cfg(not(any( + target_arch = "aarch64", + target_arch = "s390x", + target_arch = "loongarch64", + all(target_pointer_width = "32", not(target_arch = "x86_64")) + )))] + pub ut_session: i32, + #[cfg(not(any( + target_arch = "aarch64", + target_arch = "s390x", + target_arch = "loongarch64", + all(target_pointer_width = "32", not(target_arch = "x86_64")) + )))] + pub ut_tv: __timeval, + + pub ut_addr_v6: [i32; 4], + __glibc_reserved: [c_char; 20], + } } impl siginfo_t { @@ -442,92 +486,10 @@ s_no_extra_traits! { pub exit: __c_anonymous_ptrace_syscall_info_exit, pub seccomp: __c_anonymous_ptrace_syscall_info_seccomp, } - - pub struct utmpx { - pub ut_type: c_short, - pub ut_pid: crate::pid_t, - pub ut_line: [c_char; __UT_LINESIZE], - pub ut_id: [c_char; 4], - - pub ut_user: [c_char; __UT_NAMESIZE], - pub ut_host: [c_char; __UT_HOSTSIZE], - pub ut_exit: __exit_status, - - #[cfg(any( - target_arch = "aarch64", - target_arch = "s390x", - target_arch = "loongarch64", - all(target_pointer_width = "32", not(target_arch = "x86_64")) - ))] - pub ut_session: c_long, - #[cfg(any( - target_arch = "aarch64", - target_arch = "s390x", - target_arch = "loongarch64", - all(target_pointer_width = "32", not(target_arch = "x86_64")) - ))] - pub ut_tv: crate::timeval, - - #[cfg(not(any( - target_arch = "aarch64", - target_arch = "s390x", - target_arch = "loongarch64", - all(target_pointer_width = "32", not(target_arch = "x86_64")) - )))] - pub ut_session: i32, - #[cfg(not(any( - target_arch = "aarch64", - target_arch = "s390x", - target_arch = "loongarch64", - all(target_pointer_width = "32", not(target_arch = "x86_64")) - )))] - pub ut_tv: __timeval, - - pub ut_addr_v6: [i32; 4], - __glibc_reserved: [c_char; 20], - } } cfg_if! { if #[cfg(feature = "extra_traits")] { - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_type == other.ut_type - && self.ut_pid == other.ut_pid - && self.ut_line == other.ut_line - && self.ut_id == other.ut_id - && self.ut_user == other.ut_user - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a, b)| a == b) - && self.ut_exit == other.ut_exit - && self.ut_session == other.ut_session - && self.ut_tv == other.ut_tv - && self.ut_addr_v6 == other.ut_addr_v6 - && self.__glibc_reserved == other.__glibc_reserved - } - } - - impl Eq for utmpx {} - - impl hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_type.hash(state); - self.ut_pid.hash(state); - self.ut_line.hash(state); - self.ut_id.hash(state); - self.ut_user.hash(state); - self.ut_host.hash(state); - self.ut_exit.hash(state); - self.ut_session.hash(state); - self.ut_tv.hash(state); - self.ut_addr_v6.hash(state); - self.__glibc_reserved.hash(state); - } - } - impl PartialEq for __c_anonymous_ptrace_syscall_info_data { fn eq(&self, other: &__c_anonymous_ptrace_syscall_info_data) -> bool { unsafe { diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index ebbc9a44818e0..625c8e7f110c0 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1366,46 +1366,7 @@ s! { pub token_start: crate::__u32, pub token_count: crate::__u32, } -} - -cfg_if! { - if #[cfg(not(target_arch = "sparc64"))] { - s! { - pub struct iw_thrspy { - pub addr: crate::sockaddr, - pub qual: iw_quality, - pub low: iw_quality, - pub high: iw_quality, - } - - pub struct iw_mlme { - pub cmd: __u16, - pub reason_code: __u16, - pub addr: crate::sockaddr, - } - pub struct iw_michaelmicfailure { - pub flags: __u32, - pub src_addr: crate::sockaddr, - pub tsc: [__u8; IW_ENCODE_SEQ_MAX_SIZE], - } - - pub struct __c_anonymous_elf32_rela { - pub r_offset: Elf32_Addr, - pub r_info: Elf32_Word, - pub r_addend: Elf32_Sword, - } - - pub struct __c_anonymous_elf64_rela { - pub r_offset: Elf64_Addr, - pub r_info: Elf64_Xword, - pub r_addend: Elf64_Sxword, - } - } - } -} - -s_no_extra_traits! { pub struct sockaddr_nl { pub nl_family: crate::sa_family_t, nl_pad: c_ushort, @@ -1421,6 +1382,14 @@ s_no_extra_traits! { pub d_name: [c_char; 256], } + pub struct dirent64 { + pub d_ino: crate::ino64_t, + pub d_off: off64_t, + pub d_reclen: c_ushort, + pub d_type: c_uchar, + pub d_name: [c_char; 256], + } + pub struct sockaddr_alg { pub salg_family: crate::sa_family_t, pub salg_type: [c_uchar; 14], @@ -1445,18 +1414,6 @@ s_no_extra_traits! { pub absflat: [__s32; ABS_CNT], } - /// WARNING: The `PartialEq`, `Eq` and `Hash` implementations of this - /// type are unsound and will be removed in the future. - #[deprecated( - note = "this struct has unsafe trait implementations that will be \ - removed in the future", - since = "0.2.80" - )] - pub struct af_alg_iv { - pub ivlen: u32, - pub iv: [c_uchar; 0], - } - // x32 compatibility // See https://sourceware.org/bugzilla/show_bug.cgi?id=21279 pub struct mq_attr { @@ -1483,55 +1440,12 @@ s_no_extra_traits! { pad: [c_long; 4], } - pub union __c_anonymous_ifr_ifru { - pub ifru_addr: crate::sockaddr, - pub ifru_dstaddr: crate::sockaddr, - pub ifru_broadaddr: crate::sockaddr, - pub ifru_netmask: crate::sockaddr, - pub ifru_hwaddr: crate::sockaddr, - pub ifru_flags: c_short, - pub ifru_ifindex: c_int, - pub ifru_metric: c_int, - pub ifru_mtu: c_int, - pub ifru_map: __c_anonymous_ifru_map, - pub ifru_slave: [c_char; crate::IFNAMSIZ], - pub ifru_newname: [c_char; crate::IFNAMSIZ], - pub ifru_data: *mut c_char, - } - - pub struct ifreq { - /// interface name, e.g. "en0" - pub ifr_name: [c_char; crate::IFNAMSIZ], - pub ifr_ifru: __c_anonymous_ifr_ifru, - } - - pub union __c_anonymous_ifc_ifcu { - pub ifcu_buf: *mut c_char, - pub ifcu_req: *mut crate::ifreq, - } - - /// Structure used in SIOCGIFCONF request. Used to retrieve interface configuration for - /// machine (useful for programs which must know all networks accessible). - pub struct ifconf { - /// Size of buffer - pub ifc_len: c_int, - pub ifc_ifcu: __c_anonymous_ifc_ifcu, - } - pub struct hwtstamp_config { pub flags: c_int, pub tx_type: c_int, pub rx_filter: c_int, } - pub struct dirent64 { - pub d_ino: crate::ino64_t, - pub d_off: off64_t, - pub d_reclen: c_ushort, - pub d_type: c_uchar, - pub d_name: [c_char; 256], - } - pub struct sched_attr { pub size: __u32, pub sched_policy: __u32, @@ -1543,21 +1457,6 @@ s_no_extra_traits! { pub sched_period: crate::__u64, } - pub union tpacket_req_u { - pub req: crate::tpacket_req, - pub req3: crate::tpacket_req3, - } - - pub union tpacket_bd_header_u { - pub bh1: crate::tpacket_hdr_v1, - } - - pub struct tpacket_block_desc { - pub version: __u32, - pub offset_to_priv: __u32, - pub hdr: crate::tpacket_bd_header_u, - } - #[cfg_attr( all( any(target_env = "musl", target_env = "ohos"), @@ -1710,6 +1609,107 @@ s_no_extra_traits! { pub struct pthread_barrier_t { size: [u8; crate::__SIZEOF_PTHREAD_BARRIER_T], } +} + +cfg_if! { + if #[cfg(not(target_arch = "sparc64"))] { + s! { + pub struct iw_thrspy { + pub addr: crate::sockaddr, + pub qual: iw_quality, + pub low: iw_quality, + pub high: iw_quality, + } + + pub struct iw_mlme { + pub cmd: __u16, + pub reason_code: __u16, + pub addr: crate::sockaddr, + } + + pub struct iw_michaelmicfailure { + pub flags: __u32, + pub src_addr: crate::sockaddr, + pub tsc: [__u8; IW_ENCODE_SEQ_MAX_SIZE], + } + + pub struct __c_anonymous_elf32_rela { + pub r_offset: Elf32_Addr, + pub r_info: Elf32_Word, + pub r_addend: Elf32_Sword, + } + + pub struct __c_anonymous_elf64_rela { + pub r_offset: Elf64_Addr, + pub r_info: Elf64_Xword, + pub r_addend: Elf64_Sxword, + } + } + } +} + +s_no_extra_traits! { + /// WARNING: The `PartialEq`, `Eq` and `Hash` implementations of this + /// type are unsound and will be removed in the future. + #[deprecated( + note = "this struct has unsafe trait implementations that will be \ + removed in the future", + since = "0.2.80" + )] + pub struct af_alg_iv { + pub ivlen: u32, + pub iv: [c_uchar; 0], + } + + pub union __c_anonymous_ifr_ifru { + pub ifru_addr: crate::sockaddr, + pub ifru_dstaddr: crate::sockaddr, + pub ifru_broadaddr: crate::sockaddr, + pub ifru_netmask: crate::sockaddr, + pub ifru_hwaddr: crate::sockaddr, + pub ifru_flags: c_short, + pub ifru_ifindex: c_int, + pub ifru_metric: c_int, + pub ifru_mtu: c_int, + pub ifru_map: __c_anonymous_ifru_map, + pub ifru_slave: [c_char; crate::IFNAMSIZ], + pub ifru_newname: [c_char; crate::IFNAMSIZ], + pub ifru_data: *mut c_char, + } + + pub struct ifreq { + /// interface name, e.g. "en0" + pub ifr_name: [c_char; crate::IFNAMSIZ], + pub ifr_ifru: __c_anonymous_ifr_ifru, + } + + pub union __c_anonymous_ifc_ifcu { + pub ifcu_buf: *mut c_char, + pub ifcu_req: *mut crate::ifreq, + } + + /// Structure used in SIOCGIFCONF request. Used to retrieve interface configuration for + /// machine (useful for programs which must know all networks accessible). + pub struct ifconf { + /// Size of buffer + pub ifc_len: c_int, + pub ifc_ifcu: __c_anonymous_ifc_ifcu, + } + + pub union tpacket_req_u { + pub req: crate::tpacket_req, + pub req3: crate::tpacket_req3, + } + + pub union tpacket_bd_header_u { + pub bh1: crate::tpacket_hdr_v1, + } + + pub struct tpacket_block_desc { + pub version: __u32, + pub offset_to_priv: __u32, + pub hdr: crate::tpacket_bd_header_u, + } // linux/net_tstamp.h pub struct sock_txtime { @@ -1787,202 +1787,6 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { - impl PartialEq for sockaddr_nl { - fn eq(&self, other: &sockaddr_nl) -> bool { - self.nl_family == other.nl_family - && self.nl_pid == other.nl_pid - && self.nl_groups == other.nl_groups - } - } - impl Eq for sockaddr_nl {} - impl hash::Hash for sockaddr_nl { - fn hash(&self, state: &mut H) { - self.nl_family.hash(state); - self.nl_pid.hash(state); - self.nl_groups.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for dirent {} - - impl hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for dirent64 { - fn eq(&self, other: &dirent64) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for dirent64 {} - - impl hash::Hash for dirent64 { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for pthread_cond_t { - fn eq(&self, other: &pthread_cond_t) -> bool { - self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b) - } - } - - impl Eq for pthread_cond_t {} - - impl hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - - impl PartialEq for pthread_mutex_t { - fn eq(&self, other: &pthread_mutex_t) -> bool { - self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b) - } - } - - impl Eq for pthread_mutex_t {} - - impl hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - - impl PartialEq for pthread_rwlock_t { - fn eq(&self, other: &pthread_rwlock_t) -> bool { - self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b) - } - } - - impl Eq for pthread_rwlock_t {} - - impl hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - - impl PartialEq for pthread_barrier_t { - fn eq(&self, other: &pthread_barrier_t) -> bool { - self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b) - } - } - - impl Eq for pthread_barrier_t {} - - impl hash::Hash for pthread_barrier_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - - impl PartialEq for sockaddr_alg { - fn eq(&self, other: &sockaddr_alg) -> bool { - self.salg_family == other.salg_family - && self - .salg_type - .iter() - .zip(other.salg_type.iter()) - .all(|(a, b)| a == b) - && self.salg_feat == other.salg_feat - && self.salg_mask == other.salg_mask - && self - .salg_name - .iter() - .zip(other.salg_name.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for sockaddr_alg {} - - impl hash::Hash for sockaddr_alg { - fn hash(&self, state: &mut H) { - self.salg_family.hash(state); - self.salg_type.hash(state); - self.salg_feat.hash(state); - self.salg_mask.hash(state); - self.salg_name.hash(state); - } - } - - impl PartialEq for uinput_setup { - fn eq(&self, other: &uinput_setup) -> bool { - self.id == other.id - && self.name[..] == other.name[..] - && self.ff_effects_max == other.ff_effects_max - } - } - impl Eq for uinput_setup {} - - impl hash::Hash for uinput_setup { - fn hash(&self, state: &mut H) { - self.id.hash(state); - self.name.hash(state); - self.ff_effects_max.hash(state); - } - } - - impl PartialEq for uinput_user_dev { - fn eq(&self, other: &uinput_user_dev) -> bool { - self.name[..] == other.name[..] - && self.id == other.id - && self.ff_effects_max == other.ff_effects_max - && self.absmax[..] == other.absmax[..] - && self.absmin[..] == other.absmin[..] - && self.absfuzz[..] == other.absfuzz[..] - && self.absflat[..] == other.absflat[..] - } - } - impl Eq for uinput_user_dev {} - - impl hash::Hash for uinput_user_dev { - fn hash(&self, state: &mut H) { - self.name.hash(state); - self.id.hash(state); - self.ff_effects_max.hash(state); - self.absmax.hash(state); - self.absmin.hash(state); - self.absfuzz.hash(state); - self.absflat.hash(state); - } - } - #[allow(deprecated)] impl af_alg_iv { fn as_slice(&self) -> &[u8] { @@ -2006,65 +1810,6 @@ cfg_if! { self.as_slice().hash(state); } } - - impl PartialEq for mq_attr { - fn eq(&self, other: &mq_attr) -> bool { - self.mq_flags == other.mq_flags - && self.mq_maxmsg == other.mq_maxmsg - && self.mq_msgsize == other.mq_msgsize - && self.mq_curmsgs == other.mq_curmsgs - } - } - impl Eq for mq_attr {} - impl hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { - self.mq_flags.hash(state); - self.mq_maxmsg.hash(state); - self.mq_msgsize.hash(state); - self.mq_curmsgs.hash(state); - } - } - impl PartialEq for hwtstamp_config { - fn eq(&self, other: &hwtstamp_config) -> bool { - self.flags == other.flags - && self.tx_type == other.tx_type - && self.rx_filter == other.rx_filter - } - } - impl Eq for hwtstamp_config {} - impl hash::Hash for hwtstamp_config { - fn hash(&self, state: &mut H) { - self.flags.hash(state); - self.tx_type.hash(state); - self.rx_filter.hash(state); - } - } - - impl PartialEq for sched_attr { - fn eq(&self, other: &sched_attr) -> bool { - self.size == other.size - && self.sched_policy == other.sched_policy - && self.sched_flags == other.sched_flags - && self.sched_nice == other.sched_nice - && self.sched_priority == other.sched_priority - && self.sched_runtime == other.sched_runtime - && self.sched_deadline == other.sched_deadline - && self.sched_period == other.sched_period - } - } - impl Eq for sched_attr {} - impl hash::Hash for sched_attr { - fn hash(&self, state: &mut H) { - self.size.hash(state); - self.sched_policy.hash(state); - self.sched_flags.hash(state); - self.sched_nice.hash(state); - self.sched_priority.hash(state); - self.sched_runtime.hash(state); - self.sched_deadline.hash(state); - self.sched_period.hash(state); - } - } } } diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index 189a294ea624f..02fe6d6294a47 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -130,9 +130,6 @@ s! { pub arm_cpsr: c_ulong, pub fault_address: c_ulong, } -} - -s_no_extra_traits! { pub struct ucontext_t { pub uc_flags: c_ulong, pub uc_link: *mut ucontext_t, @@ -141,37 +138,15 @@ s_no_extra_traits! { pub uc_sigmask: crate::sigset_t, pub uc_regspace: [c_ulonglong; 64], } +} +s_no_extra_traits! { #[repr(align(8))] pub struct max_align_t { priv_: (i64, i64), } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask == other.uc_sigmask - } - } - impl Eq for ucontext_t {} - impl hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask.hash(state); - } - } - } -} - pub const SIGSTKSZ: size_t = 8192; pub const MINSIGSTKSZ: size_t = 2048; diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 43ea2e88ff467..5b7a3e8d10984 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -110,9 +110,7 @@ s! { __pad1: c_ulong, __pad2: c_ulong, } -} -s_no_extra_traits! { pub struct user_fpxregs_struct { pub cwd: c_ushort, pub swd: c_ushort, @@ -137,83 +135,15 @@ s_no_extra_traits! { pub uc_sigmask: crate::sigset_t, __private: [u8; 112], } +} +s_no_extra_traits! { #[repr(align(8))] pub struct max_align_t { priv_: [f64; 3], } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for user_fpxregs_struct { - fn eq(&self, other: &user_fpxregs_struct) -> bool { - self.cwd == other.cwd - && self.swd == other.swd - && self.twd == other.twd - && self.fop == other.fop - && self.fip == other.fip - && self.fcs == other.fcs - && self.foo == other.foo - && self.fos == other.fos - && self.mxcsr == other.mxcsr - // Ignore __reserved field - && self.st_space == other.st_space - && self.xmm_space == other.xmm_space - // Ignore padding field - } - } - - impl Eq for user_fpxregs_struct {} - - impl hash::Hash for user_fpxregs_struct { - fn hash(&self, state: &mut H) { - self.cwd.hash(state); - self.swd.hash(state); - self.twd.hash(state); - self.fop.hash(state); - self.fip.hash(state); - self.fcs.hash(state); - self.foo.hash(state); - self.fos.hash(state); - self.mxcsr.hash(state); - // Ignore __reserved field - self.st_space.hash(state); - self.xmm_space.hash(state); - // Ignore padding field - } - } - - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask == other.uc_sigmask - && self - .__private - .iter() - .zip(other.__private.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for ucontext_t {} - - impl hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask.hash(state); - self.__private.hash(state); - } - } - } -} - pub const SIGSTKSZ: size_t = 8192; pub const MINSIGSTKSZ: size_t = 2048; diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index ebb8084468b66..2ad8eb774ded8 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -145,9 +145,7 @@ s! { pub set_tid_size: c_ulonglong, pub cgroup: c_ulonglong, } -} -s_no_extra_traits! { pub struct user_fpregs_struct { pub cwd: c_ushort, pub swd: c_ushort, @@ -170,82 +168,15 @@ s_no_extra_traits! { pub uc_sigmask: crate::sigset_t, __private: [u8; 512], } +} +s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4], } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for user_fpregs_struct { - fn eq(&self, other: &user_fpregs_struct) -> bool { - self.cwd == other.cwd - && self.swd == other.swd - && self.ftw == other.ftw - && self.fop == other.fop - && self.rip == other.rip - && self.rdp == other.rdp - && self.mxcsr == other.mxcsr - && self.mxcr_mask == other.mxcr_mask - && self.st_space == other.st_space - && self - .xmm_space - .iter() - .zip(other.xmm_space.iter()) - .all(|(a, b)| a == b) - // Ignore padding field - } - } - - impl Eq for user_fpregs_struct {} - - impl hash::Hash for user_fpregs_struct { - fn hash(&self, state: &mut H) { - self.cwd.hash(state); - self.ftw.hash(state); - self.fop.hash(state); - self.rip.hash(state); - self.rdp.hash(state); - self.mxcsr.hash(state); - self.mxcr_mask.hash(state); - self.st_space.hash(state); - self.xmm_space.hash(state); - // Ignore padding field - } - } - - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask == other.uc_sigmask - && self - .__private - .iter() - .zip(other.__private.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for ucontext_t {} - - impl hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask.hash(state); - self.__private.hash(state); - } - } - } -} - // Syscall table pub const SYS_read: c_long = 0; diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 813bba693097d..793af6eb5be3e 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -422,9 +422,7 @@ s! { pub f_flags: c_ulong, pub f_spare: [c_ulong; 4], } -} -s_no_extra_traits! { pub struct sysinfo { pub uptime: c_ulong, pub loads: [c_ulong; 3], @@ -477,98 +475,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for sysinfo { - fn eq(&self, other: &sysinfo) -> bool { - self.uptime == other.uptime - && self.loads == other.loads - && self.totalram == other.totalram - && self.freeram == other.freeram - && self.sharedram == other.sharedram - && self.bufferram == other.bufferram - && self.totalswap == other.totalswap - && self.freeswap == other.freeswap - && self.procs == other.procs - && self.pad == other.pad - && self.totalhigh == other.totalhigh - && self.freehigh == other.freehigh - && self.mem_unit == other.mem_unit - && self - .__reserved - .iter() - .zip(other.__reserved.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for sysinfo {} - - impl hash::Hash for sysinfo { - fn hash(&self, state: &mut H) { - self.uptime.hash(state); - self.loads.hash(state); - self.totalram.hash(state); - self.freeram.hash(state); - self.sharedram.hash(state); - self.bufferram.hash(state); - self.totalswap.hash(state); - self.freeswap.hash(state); - self.procs.hash(state); - self.pad.hash(state); - self.totalhigh.hash(state); - self.freehigh.hash(state); - self.mem_unit.hash(state); - self.__reserved.hash(state); - } - } - - impl PartialEq for utmpx { - #[allow(deprecated)] - fn eq(&self, other: &utmpx) -> bool { - self.ut_type == other.ut_type - //&& self.__ut_pad1 == other.__ut_pad1 - && self.ut_pid == other.ut_pid - && self.ut_line == other.ut_line - && self.ut_id == other.ut_id - && self.ut_user == other.ut_user - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) - && self.ut_exit == other.ut_exit - && self.ut_session == other.ut_session - //&& self.__ut_pad2 == other.__ut_pad2 - && self.ut_tv == other.ut_tv - && self.ut_addr_v6 == other.ut_addr_v6 - && self.__unused == other.__unused - } - } - - impl Eq for utmpx {} - - impl hash::Hash for utmpx { - #[allow(deprecated)] - fn hash(&self, state: &mut H) { - self.ut_type.hash(state); - //self.__ut_pad1.hash(state); - self.ut_pid.hash(state); - self.ut_line.hash(state); - self.ut_id.hash(state); - self.ut_user.hash(state); - self.ut_host.hash(state); - self.ut_exit.hash(state); - self.ut_session.hash(state); - //self.__ut_pad2.hash(state); - self.ut_tv.hash(state); - self.ut_addr_v6.hash(state); - self.__unused.hash(state); - } - } - } -} - // include/sys/mman.h /* * Huge page size encoding when MAP_HUGETLB is specified, and a huge page diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index b431643dfa3e4..e79d2098bfcc0 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -204,6 +204,29 @@ s! { pub msg_hdr: crate::msghdr, pub msg_len: c_uint, } + + pub struct sockaddr_un { + pub sun_family: sa_family_t, + pub sun_path: [c_char; 108], + } + + pub struct sockaddr_storage { + pub ss_family: sa_family_t, + #[cfg(target_pointer_width = "32")] + __ss_pad2: [u8; 128 - 2 - 4], + #[cfg(target_pointer_width = "64")] + __ss_pad2: [u8; 128 - 2 - 8], + __ss_align: size_t, + } + + pub struct utsname { + pub sysname: [c_char; 65], + pub nodename: [c_char; 65], + pub release: [c_char; 65], + pub version: [c_char; 65], + pub machine: [c_char; 65], + pub domainname: [c_char; 65], + } } cfg_if! { @@ -285,29 +308,6 @@ s_no_extra_traits! { pub u64: u64, } - pub struct sockaddr_un { - pub sun_family: sa_family_t, - pub sun_path: [c_char; 108], - } - - pub struct sockaddr_storage { - pub ss_family: sa_family_t, - #[cfg(target_pointer_width = "32")] - __ss_pad2: [u8; 128 - 2 - 4], - #[cfg(target_pointer_width = "64")] - __ss_pad2: [u8; 128 - 2 - 8], - __ss_align: size_t, - } - - pub struct utsname { - pub sysname: [c_char; 65], - pub nodename: [c_char; 65], - pub release: [c_char; 65], - pub version: [c_char; 65], - pub machine: [c_char; 65], - pub domainname: [c_char; 65], - } - pub struct sigevent { pub sigev_value: crate::sigval, pub sigev_signo: c_int, @@ -339,91 +339,6 @@ cfg_if! { } } - impl PartialEq for sockaddr_un { - fn eq(&self, other: &sockaddr_un) -> bool { - self.sun_family == other.sun_family - && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_un {} - impl hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { - self.sun_family.hash(state); - self.sun_path.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_family == other.ss_family - && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for sockaddr_storage {} - - impl hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_family.hash(state); - self.__ss_pad2.hash(state); - } - } - - impl PartialEq for utsname { - fn eq(&self, other: &utsname) -> bool { - self.sysname - .iter() - .zip(other.sysname.iter()) - .all(|(a, b)| a == b) - && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a, b)| a == b) - && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a, b)| a == b) - && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a, b)| a == b) - && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a, b)| a == b) - && self - .domainname - .iter() - .zip(other.domainname.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for utsname {} - - impl hash::Hash for utsname { - fn hash(&self, state: &mut H) { - self.sysname.hash(state); - self.nodename.hash(state); - self.release.hash(state); - self.version.hash(state); - self.machine.hash(state); - self.domainname.hash(state); - } - } - impl PartialEq for sigevent { fn eq(&self, other: &sigevent) -> bool { self.sigev_value == other.sigev_value diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index abec6d4991c37..6b68a06cb0624 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -176,6 +176,8 @@ s! { pub f_namemax: c_ulong, } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_handler: extern "C" fn(arg1: c_int), pub sa_mask: sigset_t, diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 0ac1e682268f8..fa7745531787e 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -306,6 +306,8 @@ s! { pub rlim_max: rlim64_t, } + // FIXME(1.0): This should not implement `PartialEq` + #[allow(unpredictable_function_pointer_comparisons)] pub struct glob_t { pub gl_pathc: size_t, pub gl_matchc: c_int, @@ -668,9 +670,6 @@ s! { pub uc_stack: stack_t, pub uc_mcontext: mcontext_t, } -} - -s_no_extra_traits! { pub struct sockaddr_un { pub sun_len: u8, pub sun_family: sa_family_t, @@ -722,6 +721,32 @@ s_no_extra_traits! { pub mq_recvwait: c_long, } + #[cfg(not(target_env = "nto71_iosock"))] + pub struct sockaddr_dl { + pub sdl_len: c_uchar, + pub sdl_family: crate::sa_family_t, + pub sdl_index: u16, + pub sdl_type: c_uchar, + pub sdl_nlen: c_uchar, + pub sdl_alen: c_uchar, + pub sdl_slen: c_uchar, + pub sdl_data: [c_char; 12], + } + + #[cfg(target_env = "nto71_iosock")] + pub struct sockaddr_dl { + pub sdl_len: c_uchar, + pub sdl_family: c_uchar, + pub sdl_index: c_ushort, + pub sdl_type: c_uchar, + pub sdl_nlen: c_uchar, + pub sdl_alen: c_uchar, + pub sdl_slen: c_uchar, + pub sdl_data: [c_char; 46], + } +} + +s_no_extra_traits! { pub struct msg { pub msg_next: *mut crate::msg, pub msg_type: c_long, @@ -748,30 +773,6 @@ s_no_extra_traits! { msg_pad4: [c_long; 4], } - #[cfg(not(target_env = "nto71_iosock"))] - pub struct sockaddr_dl { - pub sdl_len: c_uchar, - pub sdl_family: crate::sa_family_t, - pub sdl_index: u16, - pub sdl_type: c_uchar, - pub sdl_nlen: c_uchar, - pub sdl_alen: c_uchar, - pub sdl_slen: c_uchar, - pub sdl_data: [c_char; 12], - } - - #[cfg(target_env = "nto71_iosock")] - pub struct sockaddr_dl { - pub sdl_len: c_uchar, - pub sdl_family: c_uchar, - pub sdl_index: c_ushort, - pub sdl_type: c_uchar, - pub sdl_nlen: c_uchar, - pub sdl_alen: c_uchar, - pub sdl_slen: c_uchar, - pub sdl_data: [c_char; 46], - } - pub struct sync_t { __u: c_uint, // union pub __owner: c_uint, @@ -796,215 +797,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - // sigevent - impl PartialEq for sigevent { - fn eq(&self, other: &sigevent) -> bool { - self.sigev_notify == other.sigev_notify - && self.sigev_signo == other.sigev_signo - && self.sigev_value == other.sigev_value - && self.__sigev_un2 == other.__sigev_un2 - } - } - impl Eq for sigevent {} - impl hash::Hash for sigevent { - fn hash(&self, state: &mut H) { - self.sigev_notify.hash(state); - self.sigev_signo.hash(state); - self.sigev_value.hash(state); - self.__sigev_un2.hash(state); - } - } - - impl PartialEq for sockaddr_un { - fn eq(&self, other: &sockaddr_un) -> bool { - self.sun_len == other.sun_len - && self.sun_family == other.sun_family - && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_un {} - - impl hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { - self.sun_len.hash(state); - self.sun_family.hash(state); - self.sun_path.hash(state); - } - } - - // sigset_t - impl PartialEq for sigset_t { - fn eq(&self, other: &sigset_t) -> bool { - self.__val == other.__val - } - } - impl Eq for sigset_t {} - impl hash::Hash for sigset_t { - fn hash(&self, state: &mut H) { - self.__val.hash(state); - } - } - - // msg - - // msqid_ds - - // sockaddr_dl - impl PartialEq for sockaddr_dl { - fn eq(&self, other: &sockaddr_dl) -> bool { - self.sdl_len == other.sdl_len - && self.sdl_family == other.sdl_family - && self.sdl_index == other.sdl_index - && self.sdl_type == other.sdl_type - && self.sdl_nlen == other.sdl_nlen - && self.sdl_alen == other.sdl_alen - && self.sdl_slen == other.sdl_slen - && self - .sdl_data - .iter() - .zip(other.sdl_data.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_dl {} - impl hash::Hash for sockaddr_dl { - fn hash(&self, state: &mut H) { - self.sdl_len.hash(state); - self.sdl_family.hash(state); - self.sdl_index.hash(state); - self.sdl_type.hash(state); - self.sdl_nlen.hash(state); - self.sdl_alen.hash(state); - self.sdl_slen.hash(state); - self.sdl_data.hash(state); - } - } - - impl PartialEq for utsname { - fn eq(&self, other: &utsname) -> bool { - self.sysname - .iter() - .zip(other.sysname.iter()) - .all(|(a, b)| a == b) - && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a, b)| a == b) - && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a, b)| a == b) - && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a, b)| a == b) - && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for utsname {} - - impl hash::Hash for utsname { - fn hash(&self, state: &mut H) { - self.sysname.hash(state); - self.nodename.hash(state); - self.release.hash(state); - self.version.hash(state); - self.machine.hash(state); - } - } - - impl PartialEq for mq_attr { - fn eq(&self, other: &mq_attr) -> bool { - self.mq_maxmsg == other.mq_maxmsg - && self.mq_msgsize == other.mq_msgsize - && self.mq_flags == other.mq_flags - && self.mq_curmsgs == other.mq_curmsgs - && self.mq_msgsize == other.mq_msgsize - && self.mq_sendwait == other.mq_sendwait - && self.mq_recvwait == other.mq_recvwait - } - } - - impl Eq for mq_attr {} - - impl hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { - self.mq_maxmsg.hash(state); - self.mq_msgsize.hash(state); - self.mq_flags.hash(state); - self.mq_curmsgs.hash(state); - self.mq_sendwait.hash(state); - self.mq_recvwait.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_len == other.ss_len - && self.ss_family == other.ss_family - && self.__ss_pad1 == other.__ss_pad1 - && self.__ss_align == other.__ss_align - && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for sockaddr_storage {} - - impl hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_len.hash(state); - self.ss_family.hash(state); - self.__ss_pad1.hash(state); - self.__ss_align.hash(state); - self.__ss_pad2.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_ino == other.d_ino - && self.d_offset == other.d_offset - && self.d_reclen == other.d_reclen - && self.d_namelen == other.d_namelen - && self.d_name[..self.d_namelen as _] - .iter() - .zip(other.d_name.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for dirent {} - - impl hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_offset.hash(state); - self.d_reclen.hash(state); - self.d_namelen.hash(state); - self.d_name[..self.d_namelen as _].hash(state); - } - } - } -} - pub const _SYSNAME_SIZE: usize = 256 + 1; pub const RLIM_INFINITY: crate::rlim_t = 0xfffffffffffffffd; pub const O_LARGEFILE: c_int = 0o0100000; diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 9567099e59c42..0002aa420fea3 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -36,7 +36,7 @@ extern_ty! { pub enum timezone {} } -s_no_extra_traits! { +s! { #[repr(C)] pub struct utsname { pub sysname: [c_char; UTSLENGTH], @@ -65,9 +65,7 @@ s_no_extra_traits! { __ss_padding: [u8; 128 - size_of::() - size_of::()], __ss_align: c_ulong, } -} -s! { pub struct addrinfo { pub ai_flags: c_int, pub ai_family: c_int, @@ -1379,122 +1377,3 @@ extern "C" { // utmp.h pub fn login_tty(fd: c_int) -> c_int; } - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for dirent {} - - impl hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for sockaddr_un { - fn eq(&self, other: &sockaddr_un) -> bool { - self.sun_family == other.sun_family - && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for sockaddr_un {} - - impl hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { - self.sun_family.hash(state); - self.sun_path.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_family == other.ss_family - && self.__ss_align == self.__ss_align - && self - .__ss_padding - .iter() - .zip(other.__ss_padding.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for sockaddr_storage {} - - impl hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_family.hash(state); - self.__ss_padding.hash(state); - self.__ss_align.hash(state); - } - } - - impl PartialEq for utsname { - fn eq(&self, other: &utsname) -> bool { - self.sysname - .iter() - .zip(other.sysname.iter()) - .all(|(a, b)| a == b) - && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a, b)| a == b) - && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a, b)| a == b) - && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a, b)| a == b) - && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a, b)| a == b) - && self - .domainname - .iter() - .zip(other.domainname.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for utsname {} - - impl hash::Hash for utsname { - fn hash(&self, state: &mut H) { - self.sysname.hash(state); - self.nodename.hash(state); - self.release.hash(state); - self.version.hash(state); - self.machine.hash(state); - self.domainname.hash(state); - } - } - } -} diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index 42aa5731f9aaa..d83a24075e0b4 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -47,9 +47,7 @@ s! { pub fi_pos: c_int, pub fi_name: [c_char; crate::FILNAME_MAX as usize], } -} -s_no_extra_traits! { #[cfg_attr(any(target_arch = "x86", target_arch = "x86_64"), repr(packed(4)))] pub struct epoll_event { pub events: u32, @@ -71,63 +69,6 @@ s_no_extra_traits! { } } -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_type == other.ut_type - && self.ut_pid == other.ut_pid - && self.ut_user == other.ut_user - && self.ut_line == other.ut_line - && self.ut_id == other.ut_id - && self.ut_exit == other.ut_exit - && self.ut_session == other.ut_session - && self.ut_tv == other.ut_tv - && self.ut_syslen == other.ut_syslen - && self.ut_pad == other.ut_pad - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for utmpx {} - - impl hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_user.hash(state); - self.ut_type.hash(state); - self.ut_pid.hash(state); - self.ut_line.hash(state); - self.ut_id.hash(state); - self.ut_host.hash(state); - self.ut_exit.hash(state); - self.ut_session.hash(state); - self.ut_tv.hash(state); - self.ut_syslen.hash(state); - self.ut_pad.hash(state); - } - } - - impl PartialEq for epoll_event { - fn eq(&self, other: &epoll_event) -> bool { - self.events == other.events && self.u64 == other.u64 - } - } - impl Eq for epoll_event {} - impl hash::Hash for epoll_event { - fn hash(&self, state: &mut H) { - let events = self.events; - let u64 = self.u64; - events.hash(state); - u64.hash(state); - } - } - } -} - pub const _UTX_USERSIZE: usize = 32; pub const _UTX_LINESIZE: usize = 32; pub const _UTX_PADSIZE: usize = 5; diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index fd52e353ef1d6..4f8fd105d57a5 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -484,9 +484,7 @@ s! { pub flag: *mut c_int, pub val: c_int, } -} -s_no_extra_traits! { pub struct sockaddr_un { pub sun_family: sa_family_t, pub sun_path: [c_char; 108], @@ -514,17 +512,6 @@ s_no_extra_traits! { __ss_pad2: [u8; 240], } - #[cfg_attr(target_pointer_width = "64", repr(align(8)))] - pub struct siginfo_t { - pub si_signo: c_int, - pub si_code: c_int, - pub si_errno: c_int, - #[cfg(target_pointer_width = "64")] - pub si_pad: c_int, - - __data_pad: [c_int; SIGINFO_DATA_SIZE], - } - pub struct sockaddr_dl { pub sdl_family: c_ushort, pub sdl_index: c_ushort, @@ -543,6 +530,19 @@ s_no_extra_traits! { pub sigev_notify_attributes: *const crate::pthread_attr_t, __sigev_pad2: c_int, } +} + +s_no_extra_traits! { + #[cfg_attr(target_pointer_width = "64", repr(align(8)))] + pub struct siginfo_t { + pub si_signo: c_int, + pub si_code: c_int, + pub si_errno: c_int, + #[cfg(target_pointer_width = "64")] + pub si_pad: c_int, + + __data_pad: [c_int; SIGINFO_DATA_SIZE], + } #[repr(align(16))] pub union pad128_t { @@ -559,100 +559,6 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { - impl PartialEq for sockaddr_un { - fn eq(&self, other: &sockaddr_un) -> bool { - self.sun_family == other.sun_family - && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_un {} - impl hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { - self.sun_family.hash(state); - self.sun_path.hash(state); - } - } - - impl PartialEq for utsname { - fn eq(&self, other: &utsname) -> bool { - self.sysname - .iter() - .zip(other.sysname.iter()) - .all(|(a, b)| a == b) - && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a, b)| a == b) - && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a, b)| a == b) - && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a, b)| a == b) - && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for utsname {} - impl hash::Hash for utsname { - fn hash(&self, state: &mut H) { - self.sysname.hash(state); - self.nodename.hash(state); - self.release.hash(state); - self.version.hash(state); - self.machine.hash(state); - } - } - - impl PartialEq for fd_set { - fn eq(&self, other: &fd_set) -> bool { - self.fds_bits - .iter() - .zip(other.fds_bits.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for fd_set {} - impl hash::Hash for fd_set { - fn hash(&self, state: &mut H) { - self.fds_bits.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_family == other.ss_family - && self.__ss_pad1 == other.__ss_pad1 - && self.__ss_align == other.__ss_align - && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_storage {} - impl hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_family.hash(state); - self.__ss_pad1.hash(state); - self.__ss_align.hash(state); - self.__ss_pad2.hash(state); - } - } - impl siginfo_t { /// The siginfo_t will have differing contents based on the delivered signal. Based on /// `si_signo`, this determines how many of the `c_int` pad fields contain valid data @@ -717,54 +623,6 @@ cfg_if! { } } - impl PartialEq for sockaddr_dl { - fn eq(&self, other: &sockaddr_dl) -> bool { - self.sdl_family == other.sdl_family - && self.sdl_index == other.sdl_index - && self.sdl_type == other.sdl_type - && self.sdl_nlen == other.sdl_nlen - && self.sdl_alen == other.sdl_alen - && self.sdl_slen == other.sdl_slen - && self - .sdl_data - .iter() - .zip(other.sdl_data.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_dl {} - impl hash::Hash for sockaddr_dl { - fn hash(&self, state: &mut H) { - self.sdl_family.hash(state); - self.sdl_index.hash(state); - self.sdl_type.hash(state); - self.sdl_nlen.hash(state); - self.sdl_alen.hash(state); - self.sdl_slen.hash(state); - self.sdl_data.hash(state); - } - } - - impl PartialEq for sigevent { - fn eq(&self, other: &sigevent) -> bool { - self.sigev_notify == other.sigev_notify - && self.sigev_signo == other.sigev_signo - && self.sigev_value == other.sigev_value - && self.ss_sp == other.ss_sp - && self.sigev_notify_attributes == other.sigev_notify_attributes - } - } - impl Eq for sigevent {} - impl hash::Hash for sigevent { - fn hash(&self, state: &mut H) { - self.sigev_notify.hash(state); - self.sigev_signo.hash(state); - self.sigev_value.hash(state); - self.ss_sp.hash(state); - self.sigev_notify_attributes.hash(state); - } - } - impl PartialEq for pad128_t { fn eq(&self, other: &pad128_t) -> bool { unsafe { diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index c23ec5109cb9c..2b9ace5e9c490 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -62,6 +62,20 @@ s! { pub xrs_id: c_ulong, pub xrs_ptr: *mut c_char, } + + pub struct utmpx { + pub ut_user: [c_char; _UTMP_USER_LEN], + pub ut_id: [c_char; _UTMP_ID_LEN], + pub ut_line: [c_char; _UTMP_LINE_LEN], + pub ut_pid: crate::pid_t, + pub ut_type: c_short, + pub ut_exit: exit_status, + pub ut_tv: crate::timeval, + pub ut_session: c_int, + pub pad: [c_int; 5], + pub ut_syslen: c_short, + pub ut_host: [c_char; 257], + } } s_no_extra_traits! { @@ -89,62 +103,6 @@ s_no_extra_traits! { pub rbuf: *const c_char, pub rsize: size_t, } - - pub struct utmpx { - pub ut_user: [c_char; _UTMP_USER_LEN], - pub ut_id: [c_char; _UTMP_ID_LEN], - pub ut_line: [c_char; _UTMP_LINE_LEN], - pub ut_pid: crate::pid_t, - pub ut_type: c_short, - pub ut_exit: exit_status, - pub ut_tv: crate::timeval, - pub ut_session: c_int, - pub pad: [c_int; 5], - pub ut_syslen: c_short, - pub ut_host: [c_char; 257], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_type == other.ut_type - && self.ut_pid == other.ut_pid - && self.ut_user == other.ut_user - && self.ut_line == other.ut_line - && self.ut_id == other.ut_id - && self.ut_exit == other.ut_exit - && self.ut_session == other.ut_session - && self.ut_tv == other.ut_tv - && self.ut_syslen == other.ut_syslen - && self.pad == other.pad - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for utmpx {} - - impl hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_user.hash(state); - self.ut_type.hash(state); - self.ut_pid.hash(state); - self.ut_line.hash(state); - self.ut_id.hash(state); - self.ut_host.hash(state); - self.ut_exit.hash(state); - self.ut_session.hash(state); - self.ut_tv.hash(state); - self.ut_syslen.hash(state); - self.pad.hash(state); - } - } - } } // FIXME(solaris): O_DIRECT and SIGINFO are NOT available on Solaris. diff --git a/src/unix/solarish/x86_64.rs b/src/unix/solarish/x86_64.rs index a45ca4b7d0976..a4c48064aaaa9 100644 --- a/src/unix/solarish/x86_64.rs +++ b/src/unix/solarish/x86_64.rs @@ -59,13 +59,6 @@ s! { #[cfg(target_os = "solaris")] pub dlpi_tls_data: *mut c_void, } -} - -s_no_extra_traits! { - pub union __c_anonymous_fp_reg_set { - pub fpchip_state: __c_anonymous_fpchip_state, - pub f_fpregs: [[u32; 13]; 10], - } pub struct fpregset_t { pub fp_reg_set: __c_anonymous_fp_reg_set, @@ -97,6 +90,13 @@ s_no_extra_traits! { } } +s_no_extra_traits! { + pub union __c_anonymous_fp_reg_set { + pub fpchip_state: __c_anonymous_fpchip_state, + pub f_fpregs: [[u32; 13]; 10], + } +} + cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for __c_anonymous_fp_reg_set { @@ -112,29 +112,13 @@ cfg_if! { } } impl Eq for __c_anonymous_fp_reg_set {} - impl PartialEq for fpregset_t { - fn eq(&self, other: &fpregset_t) -> bool { - self.fp_reg_set == other.fp_reg_set - } - } - impl Eq for fpregset_t {} - impl PartialEq for mcontext_t { - fn eq(&self, other: &mcontext_t) -> bool { - self.gregs == other.gregs && self.fpregs == other.fpregs - } - } - impl Eq for mcontext_t {} - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_sigmask == other.uc_sigmask - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_filler == other.uc_filler + impl hash::Hash for __c_anonymous_fp_reg_set { + fn hash(&self, state: &mut H) { + unsafe { + self.f_fpregs.hash(state); + } } } - impl Eq for ucontext_t {} } } From b922ce946509b3d2e190786f7e2558fa820674b1 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 3 Nov 2025 21:15:45 -0600 Subject: [PATCH 0965/1228] ci: Check process output in create-artifacts Add `check=True` to catch nonzero exit codes, and address one other lint for unneeded collection to `list`. Additionally, add some print statements in an attempt to help debug the CI failure on Windows. (backport ) (cherry picked from commit 83bd32f8ac10bf20bba9509b06de5f242ca7c6ad) --- ci/create-artifacts.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ci/create-artifacts.py b/ci/create-artifacts.py index 2854daa563154..bd5656fd040b2 100755 --- a/ci/create-artifacts.py +++ b/ci/create-artifacts.py @@ -30,7 +30,11 @@ def main(): archive_name = f"archive-{now}" archive_path = f"{archive_name}.tar.gz" - sp.run(["tar", "czvf", archive_path, "-C", build_dir, "-T-"], input=file_list) + sp.run( + ["tar", "czvf", archive_path, "-C", build_dir, "-T-"], + input=file_list, + check=True, + ) # If we are in GHA, set these env vars for future use gh_env = os.getenv("GITHUB_ENV") @@ -42,6 +46,7 @@ def main(): if __name__ == "__main__": + print("Starting script...") # For debugging CI failures # FIXME(ci): remove after the bump to windoes-2025 GHA images # Python <= 3.9 does not support the very helpful `root_dir` argument, # and that is the version used by the Windows GHA images. Rather than @@ -55,10 +60,12 @@ def main(): sys.exit(1) # Find the next 3.1x Python version - dirs = sorted(list(Path(r"C:\hostedtoolcache\windows\Python").iterdir())) + dirs = sorted(Path(r"C:\hostedtoolcache\windows\Python").iterdir()) usepy = next(x for x in dirs if r"\3.1" in str(x)) py = usepy.joinpath(r"x64\python.exe") print(f"relaunching with {py}") os.execvp(py, [__file__] + sys.argv) main() +else: + print("not invoked as main, exiting") # For debugging CI failures From dca3e1c5227a720d495c364d0e4b4e31c5667df6 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 5 Nov 2025 15:45:49 -0600 Subject: [PATCH 0966/1228] ci: Use a mirror for musl downloads The musl server has been a bit flaky, so the files we needed have been added to rust-lang mirrors. Update CI setup here to make use of them. Link: https://github.com/rust-lang/ci-mirrors/blob/15a6d341341e858c2b7be872a47a39f546cc6759/files/libc.toml (backport ) (cherry picked from commit 7c9757722c623dc87ce0f1f3bce34f1c8d93fe41) --- ci/install-musl.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ci/install-musl.sh b/ci/install-musl.sh index d43e29470dabd..2335eea3fbbda 100755 --- a/ci/install-musl.sh +++ b/ci/install-musl.sh @@ -19,9 +19,11 @@ esac musl="musl-${musl_version}" -# Download, configure, build, and install musl: -curl --retry 5 "https://www.musl-libc.org/releases/${musl}.tar.gz" | tar xzf - +# Note that if a new version of musl is needed, it needs to be added to the mirror +# first. See https://github.com/rust-lang/ci-mirrors/blob/main/files/libc.toml. +curl --retry 5 "https://ci-mirrors.rust-lang.org/libc/${musl}.tar.gz" | tar xzf - +# Configure, build, and install musl: cd "$musl" case ${1} in aarch64) From 8b1d4d2e05fb277fda63f2ad54220abe88802a0d Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 4 Nov 2025 03:37:22 -0600 Subject: [PATCH 0967/1228] ci: Run semver checks even on non-host targets Add a version of semver checks that run on non-host targets by building rustdoc JSON output and passing that to `cargo-semver-checks`. Unfortunately this doesn't have a way to suppress false positives, so we need to leave the checks as optional rather than enforced for now (i.e. the exit code isn't checked). --- .github/workflows/ci.yaml | 6 ++ Cargo.toml | 2 + ci/prep-semver-baseline.sh | 38 +++++++ ci/verify-build.py | 196 ++++++++++++++++++++++++++++++------- 4 files changed, 208 insertions(+), 34 deletions(-) create mode 100755 ci/prep-semver-baseline.sh diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 4014d75b07805..4c25722018004 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -13,6 +13,7 @@ env: RUSTDOCFLAGS: -Dwarnings RUSTFLAGS: -Dwarnings RUST_BACKTRACE: full + TARGET_REF: ${{ github.base_ref || github.event.merge_group.base_ref }} defaults: run: @@ -75,6 +76,10 @@ jobs: uses: taiki-e/install-action@cargo-semver-checks if: matrix.toolchain == 'stable' + - name: Retrieve semver baseline + if: matrix.toolchain == 'stable' + run: ./ci/prep-semver-baseline.sh + # FIXME(ci): These `du` statements are temporary for debugging cache - name: Target size before restoring cache run: du -sh target | sort -k 2 || true @@ -91,6 +96,7 @@ jobs: [ "${{ matrix.toolchain }}" = "1.63.0" ] && export RUSTFLAGS="" python3 ci/verify-build.py \ --toolchain "$TOOLCHAIN" \ + ${BASELINE_CRATE_DIR:+"--baseline-crate-dir" "$BASELINE_CRATE_DIR"} \ ${{ matrix.only && format('--only "{0}"', matrix.only) }} \ ${{ matrix.half && format('--half "{0}"', matrix.half) }} - name: Target size after job completion diff --git a/Cargo.toml b/Cargo.toml index 141a77f791ea8..fc8bec482600c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -182,3 +182,5 @@ used_underscore_binding = "allow" [package.metadata.cargo-semver-checks.lints] # Alignment is an internal detail that users must not rely upon repr_align_removed = "warn" +# We deprecate things all the time +global_value_marked_deprecated = "warn" diff --git a/ci/prep-semver-baseline.sh b/ci/prep-semver-baseline.sh new file mode 100755 index 0000000000000..7d7a3333fd3b6 --- /dev/null +++ b/ci/prep-semver-baseline.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# Download a baseline crate to run semver checks against + +set -euxo pipefail + +# Retrieve the index for libc +index=$(curl -L https://index.crates.io/li/bc/libc) + +# Regex for versions matching what we want to check against. Note we check only +# a suffix since in the merge queue `base_ref` is set to something like +# `refs/heads/main` rather than only the branch name. +if [[ "${TARGET_REF:-}" = *"libc-0.2" ]]; then + pat="^0.2" +elif [[ "${TARGET_REF:-}" = *"main" ]]; then + pat="^1.0" +else + echo "TARGET_REF must be set and end with either 'libc-0.2' or 'main'" + exit 1 +fi + +# Find the most recent version matching a pattern. +version=$( + echo "$index" | + jq -er --slurp --arg pat "$pat" ' + map(select(.vers | test($pat))) + | last + | debug("version:", .) + | .vers + ' +) + +libc_cache="${XDG_CACHE_DIR:-$HOME/.cache}/libc-ci/" +mkdir -p "$libc_cache" + +curl -L "https://static.crates.io/crates/libc/libc-$version.crate" | tar xzf - -C "$libc_cache" +crate_dir="$libc_cache/libc-$version" + +echo "BASELINE_CRATE_DIR=$crate_dir" >> "$GITHUB_ENV" diff --git a/ci/verify-build.py b/ci/verify-build.py index 483dc5cfa96fb..40552e2689ee1 100755 --- a/ci/verify-build.py +++ b/ci/verify-build.py @@ -9,9 +9,11 @@ import time from dataclasses import dataclass, field from enum import Enum, IntEnum -from typing import Optional +from pathlib import Path +from typing import Optional, Sequence +ESC_YELLOW = "\033[1;33m" ESC_CYAN = "\033[1;36m" ESC_END = "\033[0m" @@ -35,6 +37,8 @@ class Cfg: toolchain: Toolchain = field(init=False) host_target: str = field(init=False) os_: Os = field(init=False) + baseline_crate_dir: Optional[Path] + skip_semver: bool def __post_init__(self): rustc_output = check_output(["rustc", f"+{self.toolchain_name}", "-vV"]) @@ -66,6 +70,14 @@ def __post_init__(self): self.min_toolchain = Toolchain.NIGHTLY +@dataclass +class TargetResult: + """Not all checks exit immediately, so failures are reported here.""" + + target: Target + semver_ok: bool + + FREEBSD_VERSIONS = [11, 12, 13, 14, 15] TARGETS = [ @@ -200,13 +212,13 @@ def __post_init__(self): ] -def eprint(*args, **kw): +def eprint(*args, **kw) -> None: print(*args, file=sys.stderr, **kw) -def xtrace(args: list[str], /, env: Optional[dict[str, str]]): +def xtrace(args: Sequence[str | Path], *, env: Optional[dict[str, str]]) -> None: """Print commands before running them.""" - astr = " ".join(args) + astr = " ".join(str(arg) for arg in args) if env is None: eprint(f"+ {astr}") else: @@ -215,17 +227,25 @@ def xtrace(args: list[str], /, env: Optional[dict[str, str]]): eprint(f"+ {estr} {astr}") -def check_output(args: list[str], /, env: Optional[dict[str, str]] = None) -> str: +def check_output( + args: Sequence[str | Path], *, env: Optional[dict[str, str]] = None +) -> str: xtrace(args, env=env) return sp.check_output(args, env=env, encoding="utf8") -def run(args: list[str], /, env: Optional[dict[str, str]] = None): +def run( + args: Sequence[str | Path], + *, + env: Optional[dict[str, str]] = None, + check: bool = True, +) -> sp.CompletedProcess: xtrace(args, env=env) - sp.run(args, env=env, check=True) + return sp.run(args, env=env, check=check) -def check_dup_targets(): +def check_dup_targets() -> None: + """Ensure there are no duplicate targets in the list.""" all = set() duplicates = set() for target in TARGETS: @@ -235,7 +255,106 @@ def check_dup_targets(): assert len(duplicates) == 0, f"duplicate targets: {duplicates}" -def test_target(cfg: Cfg, target: Target): +def do_semver_checks(cfg: Cfg, target: Target) -> bool: + """Run cargo semver-checks for a target.""" + tname = target.name + if cfg.toolchain != Toolchain.STABLE: + eprint("Skipping semver checks (only supported on stable)") + return True + + if not target.dist: + eprint("Skipping semver checks on non-dist target") + return True + + if tname == cfg.host_target: + # FIXME(semver): This is what we actually want to be doing on all targets, but + # `--target` doesn't work right with semver-checks. + eprint("Running semver checks on host") + # NOTE: this is the only check which actually fails CI if it doesn't succeed, + # since it is the only check we can control lints for (via the + # package.metadata table). + # + # We may need to play around with this a bit. + run( + [ + "cargo", + "semver-checks", + "--only-explicit-features", + "--features=std,extra_traits", + "--release-type=patch", + ], + check=True, + ) + # Don't return here so we still get the same rustdoc-json-base tests even while + # running on the host. + + if cfg.baseline_crate_dir is None: + eprint( + "Non-host target: --baseline-crate-dir must be specified to \ + run semver-checks" + ) + sys.exit(1) + + # Since semver-checks doesn't work with `--target`, we build the json ourself and + # hand it over. + eprint("Running semver checks with cross compilation") + + # Set the bootstrap hack (for rustdoc json), allow warnings, and get rid of LIBC_CI + # (which sets `deny(warnings)`). + env = os.environ.copy() + env.setdefault("RUSTFLAGS", "") + env["RUSTFLAGS"] += " -Awarnings" + env["RUSTC_BOOTSTRAP"] = "1" + env.pop("LIBC_CI", None) + + cmd = ["cargo", "rustdoc", "--target", tname] + # Take the flags from: + # https://github.com/obi1kenobi/cargo-semver-checks/blob/030af2032e93a64a6a40c4deaa0f57f262042426/src/data_generation/generate.rs#L241-L297 + rustdoc_args = [ + "--", + "-Zunstable-options", + "--document-private-items", + "--document-hidden-items", + "--output-format=json", + "--cap-lints=allow", + ] + + # Build the current crate and the baseline crate, which CI should have downloaded + run([*cmd, *rustdoc_args], env=env) + run( + [*cmd, "--manifest-path", cfg.baseline_crate_dir / "Cargo.toml", *rustdoc_args], + env=env, + ) + + baseline = cfg.baseline_crate_dir / "target" / tname / "doc" / "libc.json" + current = Path("target") / tname / "doc" / "libc.json" + + # NOTE: We can't configure lints when using the rustoc input :(. For this reason, + # we don't check for failure output status since there is no way to override false + # positives. + # + # See: https://github.com/obi1kenobi/cargo-semver-checks/issues/827 + res = run( + [ + "cargo", + "semver-checks", + "--baseline-rustdoc", + baseline, + "--current-rustdoc", + current, + # For now, everything is a patch + "--release-type=patch", + ], + check=False, + ) + + # If this job failed, we can't fail CI because it may have been a false positive. + # But at least we can make an explicit note of it. + return res.returncode == 0 + + +def test_target(cfg: Cfg, target: Target) -> TargetResult: + """Run tests for a single target.""" start = time.time() env = os.environ.copy() env.setdefault("RUSTFLAGS", "") @@ -261,14 +380,15 @@ def test_target(cfg: Cfg, target: Target): if not target.dist: # If we can't download a `core`, we need to build it cmd += ["-Zbuild-std=core"] - # FIXME: With `build-std` feature, `compiler_builtins` emits a lot of lint warnings. + # FIXME: With `the build-std` feature, `compiler_builtins` emits a lot of + # lint warnings. env["RUSTFLAGS"] += " -Aimproper_ctypes_definitions" else: run(["rustup", "target", "add", tname, "--toolchain", cfg.toolchain_name]) # Test with expected combinations of features run(cmd, env=env) - run(cmd + ["--features=extra_traits"], env=env) + run([*cmd, "--features=extra_traits"], env=env) # Check with different env for 64-bit time_t if target_os == "linux" and target_bits == "32": @@ -286,12 +406,12 @@ def test_target(cfg: Cfg, target: Target): run(cmd, env=env | {"RUST_LIBC_UNSTABLE_MUSL_V1_2_3": "1"}) # Test again without default features, i.e. without `std` - run(cmd + ["--no-default-features"]) - run(cmd + ["--no-default-features", "--features=extra_traits"]) + run([*cmd, "--no-default-features"]) + run([*cmd, "--no-default-features", "--features=extra_traits"]) # Ensure the crate will build when used as a dependency of `std` if cfg.nightly(): - run(cmd + ["--no-default-features", "--features=rustc-dep-of-std"]) + run([*cmd, "--no-default-features", "--features=rustc-dep-of-std"]) # For freebsd targets, check with the different versions we support # if on nightly or stable @@ -299,36 +419,31 @@ def test_target(cfg: Cfg, target: Target): for version in FREEBSD_VERSIONS: run(cmd, env=env | {"RUST_LIBC_UNSTABLE_FREEBSD_VERSION": str(version)}) run( - cmd + ["--no-default-features"], + [*cmd, "--no-default-features"], env=env | {"RUST_LIBC_UNSTABLE_FREEBSD_VERSION": str(version)}, ) - is_stable = cfg.toolchain == Toolchain.STABLE - # FIXME(semver): can't pass `--target` to `cargo-semver-checks` so we restrict to - # the host target - is_host = tname == cfg.host_target - if is_stable and is_host: - eprint("Running semver checks") - run( - [ - "cargo", - "semver-checks", - "--only-explicit-features", - "--features=std,extra_traits", - ] - ) - else: + if cfg.skip_semver: eprint("Skipping semver checks") + semver_ok = True + else: + semver_ok = do_semver_checks(cfg, target) elapsed = round(time.time() - start, 2) eprint(f"Finished checking target {tname} in {elapsed} seconds") + return TargetResult(target=target, semver_ok=semver_ok) -def main(): +def main() -> None: p = argparse.ArgumentParser() p.add_argument("--toolchain", required=True, help="Rust toolchain") p.add_argument("--only", help="only targets matching this regex") p.add_argument("--skip", help="skip targets matching this regex") + p.add_argument("--skip-semver", help="don't run semver checks") + p.add_argument( + "--baseline-crate-dir", + help="specify the directory of the crate to run semver checks against", + ) p.add_argument( "--half", type=int, @@ -337,7 +452,11 @@ def main(): ) args = p.parse_args() - cfg = Cfg(toolchain_name=args.toolchain) + cfg = Cfg( + toolchain_name=args.toolchain, + baseline_crate_dir=args.baseline_crate_dir and Path(args.baseline_crate_dir), + skip_semver=args.skip_semver, + ) eprint(f"Config: {cfg}") eprint("Python version: ", sys.version) check_dup_targets() @@ -373,16 +492,25 @@ def main(): total = len(targets) eprint(f"Targets to run: {total}") assert total > 0, "some tests should be run" + target_results: list[TargetResult] = [] for i, target in enumerate(targets): at = i + 1 eprint(f"::group::Target: {target.name} ({at}/{total})") eprint(f"{ESC_CYAN}Checking target {target} ({at}/{total}){ESC_END}") - test_target(cfg, target) + res = test_target(cfg, target) + target_results.append(res) eprint("::endgroup::") elapsed = round(time.time() - start, 2) - eprint(f"Checked {total} targets in {elapsed} seconds") + + semver_failures = [t.target.name for t in target_results if not t.semver_ok] + if len(semver_failures) != 0: + eprint(f"\n{ESC_YELLOW}Some targets had semver failures:{ESC_END}") + for t in semver_failures: + eprint(f"* {t}") + + eprint(f"\nChecked {total} targets in {elapsed} seconds") main() From dee7569d6f09ea6d497ea0301005e996ef06fb32 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 3 Apr 2025 07:30:24 +0000 Subject: [PATCH 0968/1228] ci: Add a job to ensure documentation succeeds This is a cherry pick of 1b08efd83ae0 ("Increase the recursion limit to fix docs.rs `ctest`") but we don't need the ctest bit, only the docs build. So, in essence: (backport ) (cherry picked from commit 1b08efd83ae0493ff140ed89de3bc483494141e8) --- .github/workflows/ci.yaml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 4c25722018004..5d9fe0bf5e83c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -287,6 +287,17 @@ jobs: export PATH=$HOME/.rust_solaris/bin:$PATH ./ci/run.sh ${{ matrix.target }} + docs: + name: Ensure docs build + runs-on: ubuntu-24.04 + timeout-minutes: 10 + steps: + - uses: actions/checkout@master + - name: Install Rust + run: rustup update nightly --no-self-update && rustup default nightly + - uses: Swatinem/rust-cache@v2 + - run: cargo doc --workspace --no-deps + # One job that "summarizes" the success state of this pipeline. This can then be added to branch # protection, rather than having to add each job separately. success: @@ -298,8 +309,8 @@ jobs: - test_tier2 - test_tier2_vm - verify_build - - clippy - # GitHub branch protection is exceedingly silly and treats "jobs skipped because a dependency + - docs + # Github branch protection is exceedingly silly and treats "jobs skipped because a dependency # failed" as success. So we have to do some contortions to ensure the job fails if any of its # dependencies fails. if: always() # make sure this is never "skipped" From 218c038990f066a429b1a6af4073215c184062a0 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 2 Nov 2025 15:31:07 -0600 Subject: [PATCH 0969/1228] cleanup: Also use `s_no_extra_traits!` for private structs (backport ) (cherry picked from commit b4cb730fde5b8eb4b3f6d094753716f0a97c1aa1) --- .../bsd/freebsdlike/freebsd/freebsd11/b32.rs | 56 ++++++------- .../bsd/freebsdlike/freebsd/freebsd11/b64.rs | 54 ++++++------- src/unix/linux_like/android/mod.rs | 55 ++++++------- src/unix/linux_like/linux/gnu/mod.rs | 47 +++++------ src/unix/linux_like/linux/musl/mod.rs | 47 +++++------ src/unix/linux_like/linux/uclibc/mod.rs | 47 +++++------ src/unix/solarish/mod.rs | 81 ++++++------------- 7 files changed, 154 insertions(+), 233 deletions(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs index dca7d6ee79988..8a8f6b4f10126 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs @@ -1,37 +1,29 @@ use crate::off_t; use crate::prelude::*; -#[repr(C)] -#[derive(Debug)] -#[cfg_attr(feature = "extra_traits", derive(Eq, Hash, PartialEq))] -pub struct stat { - pub st_dev: crate::dev_t, - pub st_ino: crate::ino_t, - pub st_mode: crate::mode_t, - pub st_nlink: crate::nlink_t, - pub st_uid: crate::uid_t, - pub st_gid: crate::gid_t, - pub st_rdev: crate::dev_t, - pub st_atime: crate::time_t, - pub st_atime_nsec: c_long, - pub st_mtime: crate::time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: crate::time_t, - pub st_ctime_nsec: c_long, - pub st_size: off_t, - pub st_blocks: crate::blkcnt_t, - pub st_blksize: crate::blksize_t, - pub st_flags: crate::fflags_t, - pub st_gen: u32, - pub st_lspare: i32, - pub st_birthtime: crate::time_t, - pub st_birthtime_nsec: c_long, - __unused: [u8; 8], -} - -impl Copy for crate::stat {} -impl Clone for crate::stat { - fn clone(&self) -> crate::stat { - *self +s! { + pub struct stat { + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_size: off_t, + pub st_blocks: crate::blkcnt_t, + pub st_blksize: crate::blksize_t, + pub st_flags: crate::fflags_t, + pub st_gen: u32, + pub st_lspare: i32, + pub st_birthtime: crate::time_t, + pub st_birthtime_nsec: c_long, + __unused: [u8; 8], } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs index 1f31aac0e3d3d..9e80a792a8c7b 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs @@ -1,36 +1,28 @@ use crate::off_t; use crate::prelude::*; -#[repr(C)] -#[derive(Debug)] -#[cfg_attr(feature = "extra_traits", derive(Eq, Hash, PartialEq))] -pub struct stat { - pub st_dev: crate::dev_t, - pub st_ino: crate::ino_t, - pub st_mode: crate::mode_t, - pub st_nlink: crate::nlink_t, - pub st_uid: crate::uid_t, - pub st_gid: crate::gid_t, - pub st_rdev: crate::dev_t, - pub st_atime: crate::time_t, - pub st_atime_nsec: c_long, - pub st_mtime: crate::time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: crate::time_t, - pub st_ctime_nsec: c_long, - pub st_size: off_t, - pub st_blocks: crate::blkcnt_t, - pub st_blksize: crate::blksize_t, - pub st_flags: crate::fflags_t, - pub st_gen: u32, - pub st_lspare: i32, - pub st_birthtime: crate::time_t, - pub st_birthtime_nsec: c_long, -} - -impl Copy for crate::stat {} -impl Clone for crate::stat { - fn clone(&self) -> crate::stat { - *self +s! { + pub struct stat { + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + pub st_size: off_t, + pub st_blocks: crate::blkcnt_t, + pub st_blksize: crate::blksize_t, + pub st_flags: crate::fflags_t, + pub st_gen: u32, + pub st_lspare: i32, + pub st_birthtime: crate::time_t, + pub st_birthtime_nsec: c_long, } } diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index e942bedfbdb19..8e50af515364f 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -630,6 +630,29 @@ s_no_extra_traits! { pub ifc_len: c_int, /* Size of buffer. */ pub ifc_ifcu: __c_anonymous_ifc_ifcu, } + + // Internal, for casts to access union fields + struct sifields_sigchld { + si_pid: crate::pid_t, + si_uid: crate::uid_t, + si_status: c_int, + si_utime: c_long, + si_stime: c_long, + } + + // Internal, for casts to access union fields + union sifields { + _align_pointer: *mut c_void, + sigchld: sifields_sigchld, + } + + // Internal, for casts to access union fields. Note that some variants + // of sifields start with a pointer, which makes the alignment of + // sifields vary on 32-bit and 64-bit architectures. + struct siginfo_f { + _siginfo_base: [c_int; 3], + sifields: sifields, + } } cfg_if! { @@ -3860,38 +3883,6 @@ impl siginfo_t { } } -// Internal, for casts to access union fields -#[repr(C)] -struct sifields_sigchld { - si_pid: crate::pid_t, - si_uid: crate::uid_t, - si_status: c_int, - si_utime: c_long, - si_stime: c_long, -} -impl Copy for sifields_sigchld {} -impl Clone for sifields_sigchld { - fn clone(&self) -> sifields_sigchld { - *self - } -} - -// Internal, for casts to access union fields -#[repr(C)] -union sifields { - _align_pointer: *mut c_void, - sigchld: sifields_sigchld, -} - -// Internal, for casts to access union fields. Note that some variants -// of sifields start with a pointer, which makes the alignment of -// sifields vary on 32-bit and 64-bit architectures. -#[repr(C)] -struct siginfo_f { - _siginfo_base: [c_int; 3], - sifields: sifields, -} - impl siginfo_t { unsafe fn sifields(&self) -> &sifields { &(*(self as *const siginfo_t as *const siginfo_f)).sifields diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 3aae0164cab08..61ccee3e75234 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -422,36 +422,29 @@ impl siginfo_t { } } -// Internal, for casts to access union fields -#[repr(C)] -struct sifields_sigchld { - si_pid: crate::pid_t, - si_uid: crate::uid_t, - si_status: c_int, - si_utime: c_long, - si_stime: c_long, -} -impl Copy for sifields_sigchld {} -impl Clone for sifields_sigchld { - fn clone(&self) -> sifields_sigchld { - *self +s_no_extra_traits! { + // Internal, for casts to access union fields + struct sifields_sigchld { + si_pid: crate::pid_t, + si_uid: crate::uid_t, + si_status: c_int, + si_utime: c_long, + si_stime: c_long, } -} -// Internal, for casts to access union fields -#[repr(C)] -union sifields { - _align_pointer: *mut c_void, - sigchld: sifields_sigchld, -} + // Internal, for casts to access union fields + union sifields { + _align_pointer: *mut c_void, + sigchld: sifields_sigchld, + } -// Internal, for casts to access union fields. Note that some variants -// of sifields start with a pointer, which makes the alignment of -// sifields vary on 32-bit and 64-bit architectures. -#[repr(C)] -struct siginfo_f { - _siginfo_base: [c_int; 3], - sifields: sifields, + // Internal, for casts to access union fields. Note that some variants + // of sifields start with a pointer, which makes the alignment of + // sifields vary on 32-bit and 64-bit architectures. + struct siginfo_f { + _siginfo_base: [c_int; 3], + sifields: sifields, + } } impl siginfo_t { diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 793af6eb5be3e..c835ddbde2992 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -63,36 +63,29 @@ impl siginfo_t { } } -// Internal, for casts to access union fields -#[repr(C)] -struct sifields_sigchld { - si_pid: crate::pid_t, - si_uid: crate::uid_t, - si_status: c_int, - si_utime: c_long, - si_stime: c_long, -} -impl Copy for sifields_sigchld {} -impl Clone for sifields_sigchld { - fn clone(&self) -> sifields_sigchld { - *self +s_no_extra_traits! { + // Internal, for casts to access union fields + struct sifields_sigchld { + si_pid: crate::pid_t, + si_uid: crate::uid_t, + si_status: c_int, + si_utime: c_long, + si_stime: c_long, } -} -// Internal, for casts to access union fields -#[repr(C)] -union sifields { - _align_pointer: *mut c_void, - sigchld: sifields_sigchld, -} + // Internal, for casts to access union fields + union sifields { + _align_pointer: *mut c_void, + sigchld: sifields_sigchld, + } -// Internal, for casts to access union fields. Note that some variants -// of sifields start with a pointer, which makes the alignment of -// sifields vary on 32-bit and 64-bit architectures. -#[repr(C)] -struct siginfo_f { - _siginfo_base: [c_int; 3], - sifields: sifields, + // Internal, for casts to access union fields. Note that some variants + // of sifields start with a pointer, which makes the alignment of + // sifields vary on 32-bit and 64-bit architectures. + struct siginfo_f { + _siginfo_base: [c_int; 3], + sifields: sifields, + } } impl siginfo_t { diff --git a/src/unix/linux_like/linux/uclibc/mod.rs b/src/unix/linux_like/linux/uclibc/mod.rs index 4fef82ed8e167..69f1b006e1c01 100644 --- a/src/unix/linux_like/linux/uclibc/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mod.rs @@ -181,36 +181,29 @@ impl siginfo_t { } } -// Internal, for casts to access union fields -#[repr(C)] -struct sifields_sigchld { - si_pid: crate::pid_t, - si_uid: crate::uid_t, - si_status: c_int, - si_utime: c_long, - si_stime: c_long, -} -impl Copy for sifields_sigchld {} -impl Clone for sifields_sigchld { - fn clone(&self) -> sifields_sigchld { - *self +s_no_extra_traits! { + // Internal, for casts to access union fields + struct sifields_sigchld { + si_pid: crate::pid_t, + si_uid: crate::uid_t, + si_status: c_int, + si_utime: c_long, + si_stime: c_long, } -} -// Internal, for casts to access union fields -#[repr(C)] -union sifields { - _align_pointer: *mut c_void, - sigchld: sifields_sigchld, -} + // Internal, for casts to access union fields + union sifields { + _align_pointer: *mut c_void, + sigchld: sifields_sigchld, + } -// Internal, for casts to access union fields. Note that some variants -// of sifields start with a pointer, which makes the alignment of -// sifields vary on 32-bit and 64-bit architectures. -#[repr(C)] -struct siginfo_f { - _siginfo_base: [c_int; 3], - sifields: sifields, + // Internal, for casts to access union fields. Note that some variants + // of sifields start with a pointer, which makes the alignment of + // sifields vary on 32-bit and 64-bit architectures. + struct siginfo_f { + _siginfo_base: [c_int; 3], + sifields: sifields, + } } impl siginfo_t { diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 4f8fd105d57a5..1e5fc221296c1 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -668,71 +668,38 @@ cfg_if! { } } -#[repr(C)] -struct siginfo_fault { - addr: *mut c_void, - trapno: c_int, - pc: *mut crate::caddr_t, -} -impl Copy for siginfo_fault {} -impl Clone for siginfo_fault { - fn clone(&self) -> Self { - *self +s_no_extra_traits! { + struct siginfo_fault { + addr: *mut c_void, + trapno: c_int, + pc: *mut crate::caddr_t, } -} -#[repr(C)] -struct siginfo_cldval { - utime: crate::clock_t, - status: c_int, - stime: crate::clock_t, -} -impl Copy for siginfo_cldval {} -impl Clone for siginfo_cldval { - fn clone(&self) -> Self { - *self + struct siginfo_cldval { + utime: crate::clock_t, + status: c_int, + stime: crate::clock_t, } -} -#[repr(C)] -struct siginfo_killval { - uid: crate::uid_t, - value: crate::sigval, - // Pad out to match the SIGCLD value size - _pad: *mut c_void, -} -impl Copy for siginfo_killval {} -impl Clone for siginfo_killval { - fn clone(&self) -> Self { - *self + struct siginfo_killval { + uid: crate::uid_t, + value: crate::sigval, + // Pad out to match the SIGCLD value size + _pad: *mut c_void, } -} -#[repr(C)] -struct siginfo_sigcld { - pid: crate::pid_t, - val: siginfo_cldval, - ctid: crate::ctid_t, - zoneid: crate::zoneid_t, -} -impl Copy for siginfo_sigcld {} -impl Clone for siginfo_sigcld { - fn clone(&self) -> Self { - *self + struct siginfo_sigcld { + pid: crate::pid_t, + val: siginfo_cldval, + ctid: crate::ctid_t, + zoneid: crate::zoneid_t, } -} -#[repr(C)] -struct siginfo_kill { - pid: crate::pid_t, - val: siginfo_killval, - ctid: crate::ctid_t, - zoneid: crate::zoneid_t, -} -impl Copy for siginfo_kill {} -impl Clone for siginfo_kill { - fn clone(&self) -> Self { - *self + struct siginfo_kill { + pid: crate::pid_t, + val: siginfo_killval, + ctid: crate::ctid_t, + zoneid: crate::zoneid_t, } } From f598856cc1631b72ba1c317aa379d1e410fe7d6e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 4 Nov 2025 01:28:20 -0600 Subject: [PATCH 0970/1228] ci: Make clippy a required job This was part of e09683ea3523 ("run clippy on 3 major platforms"), most of which made it to libc-0.2. However, this line was missed. --- .github/workflows/ci.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5d9fe0bf5e83c..45814055f6bdc 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -310,6 +310,7 @@ jobs: - test_tier2_vm - verify_build - docs + - clippy # Github branch protection is exceedingly silly and treats "jobs skipped because a dependency # failed" as success. So we have to do some contortions to ensure the job fails if any of its # dependencies fails. From 3818dc0d19de9a719d68f356269569a39c840564 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 27 Oct 2025 00:13:15 -0400 Subject: [PATCH 0971/1228] ci: Add testing for NetBSD The x86-64 NetBSD target is tier 2, so we can start testing it. (backport ) (cherry picked from commit d77b8e7ff828c5de46f94c9a6997ac2e3529fe89) --- .github/workflows/ci.yaml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 45814055f6bdc..48b982f7a963f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -267,6 +267,7 @@ jobs: matrix: include: - target: x86_64-pc-solaris + - target: x86_64-unknown-netbsd timeout-minutes: 25 steps: - uses: actions/checkout@v5 @@ -287,6 +288,26 @@ jobs: export PATH=$HOME/.rust_solaris/bin:$PATH ./ci/run.sh ${{ matrix.target }} + - name: Test on NetBSD + uses: vmactions/netbsd-vm@v1 + if: contains(matrix.target, 'netbsd') + with: + release: "10.1" + usesh: true + mem: 4096 + copyback: false + prepare: | + set -x + /usr/sbin/pkg_add curl + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- \ + --profile minimal --default-toolchain nightly -y + run: | + set -x + . "$HOME/.cargo/env" + which rustc + rustc -Vv + ./ci/run.sh ${{ matrix.target }} + docs: name: Ensure docs build runs-on: ubuntu-24.04 From 3a718c71ba8010b03b86d2774133968d78fd0cb9 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 2 Nov 2025 21:55:36 -0600 Subject: [PATCH 0972/1228] Add `core::cfg` to the prelude This is not always present when we are building as `rustc-dep-of-std`. (backport ) (cherry picked from commit 919d0d4653d7d5aa73e00d2cdfe6e29a8ff1ee59) --- src/macros.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/macros.rs b/src/macros.rs index eec90c7e44cc1..c6001e7bc37c9 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -87,6 +87,7 @@ macro_rules! prelude { pub(crate) use core::prelude::v1::derive; #[allow(unused_imports)] pub(crate) use core::{ + cfg, fmt, hash, iter, From 4d12ac781b6fc1a58b37ee8c70aedbf7c26bf728 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 2 Nov 2025 16:21:17 -0600 Subject: [PATCH 0973/1228] test: Factor out a fallible command runner This pattern is currently used by the `freebsd-version` check but will be used by more in the future. (backport ) (cherry picked from commit 91f208c61eb684c9ec5a5666f0dcd9168c7b5f2e) --- libc-test/build.rs | 58 +++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index c31fa7e3fb5df..22f1341c92edf 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2286,7 +2286,21 @@ fn test_freebsd(target: &str) { assert!(target.contains("freebsd")); let mut cfg = ctest_cfg(); - let freebsd_ver = which_freebsd(); + let freebsd_ver = if let Ok(version) = env::var("RUST_LIBC_UNSTABLE_FREEBSD_VERSION") { + let vers = version.parse().unwrap(); + println!("cargo:warning=setting FreeBSD version to {vers}"); + Some(vers) + } else { + match &try_command_output("freebsd-version", &[]) { + Some(s) if s.starts_with("10") => Some(10), + Some(s) if s.starts_with("11") => Some(11), + Some(s) if s.starts_with("12") => Some(12), + Some(s) if s.starts_with("13") => Some(13), + Some(s) if s.starts_with("14") => Some(14), + Some(s) if s.starts_with("15") => Some(15), + Some(_) | None => None, + } + }; match freebsd_ver { Some(12) => cfg.cfg("freebsd12", None), @@ -4905,34 +4919,6 @@ fn test_linux_like_apis(target: &str) { } } -fn which_freebsd() -> Option { - if let Ok(version) = env::var("RUST_LIBC_UNSTABLE_FREEBSD_VERSION") { - let vers = version.parse().unwrap(); - println!("cargo:warning=setting FreeBSD version to {vers}"); - return Some(vers); - } - - let output = std::process::Command::new("freebsd-version") - .output() - .ok()?; - - if !output.status.success() { - return None; - } - - let stdout = String::from_utf8(output.stdout).ok()?; - - match &stdout { - s if s.starts_with("10") => Some(10), - s if s.starts_with("11") => Some(11), - 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 test_haiku(target: &str) { assert!(target.contains("haiku")); @@ -5573,3 +5559,17 @@ fn test_aix(target: &str) { ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } + +/// Attempt to execute a command and collect its output, If the command fails for whatever +/// reason, return `None`. +fn try_command_output(cmd: &str, args: &[&str]) -> Option { + let output = std::process::Command::new(cmd).args(args).output().ok()?; + + if !output.status.success() { + return None; + } + + let res = String::from_utf8(output.stdout) + .unwrap_or_else(|e| panic!("command {cmd} returned non-UTF-8 output: {e}")); + Some(res) +} From 7b2ed6f4a67a2f847c20f2c2257a58f195935ea8 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 28 Oct 2025 04:18:59 -0400 Subject: [PATCH 0974/1228] NetBSD: Delete items from the semver file that don't exist Some of these may have been removed. `NI_MAXHOST` is already specified in the unix semver file. (backport ) (cherry picked from commit 60d7cccb442a3c59d2d76f6305ba1784181d30ba) --- libc-test/semver/netbsd.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index bcd25eca15b93..58d581b7cb4fd 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -93,7 +93,6 @@ AT_SUN_IFLUSH AT_SUN_LDELF AT_SUN_LDNAME AT_SUN_LDSHDR -AT_SUN_LPGSIZE AT_SUN_PLATFORM AT_SYMLINK_FOLLOW AT_SYMLINK_NOFOLLOW @@ -734,7 +733,6 @@ NET_RT_OOIFLIST NET_RT_OOOIFLIST NEW_TIME NI_DGRAM -NI_MAXHOST NI_MAXSERV NI_NAMEREQD NI_NOFQDN @@ -845,7 +843,6 @@ POSIX_SPAWN_RETURNERROR POSIX_SPAWN_SETPGROUP POSIX_SPAWN_SETSCHEDPARAM POSIX_SPAWN_SETSCHEDULER -POSIX_SPAWN_SETSIGDEP POSIX_SPAWN_SETSIGMASK PROT_MPROTECT PTHREAD_CREATE_DETACHED @@ -1342,7 +1339,6 @@ futimes getbootfile getbyteorder getdiskrawname -getdistcookedname getdomainname getdtablesize getentropy @@ -1422,7 +1418,6 @@ lcong48 lgetxattr lio_listio listxattr -llistxaatr localeconv_l lockf login From a155a0ff92e2747fc1786ec01f50821ffe3920f7 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 2 Nov 2025 17:20:33 -0600 Subject: [PATCH 0975/1228] NetBSD: riscv64: Fix the mcontext types Currently this target fails to build. (backport ) (cherry picked from commit 368df02c8d8b04f688e8de3a2a5c4338f72d8f10) --- src/unix/bsd/netbsdlike/netbsd/riscv64.rs | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs index 47240cb2818c0..8cacb7250eddc 100644 --- a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs @@ -1,16 +1,15 @@ -use PT_FIRSTMACH; - use crate::prelude::*; +use crate::PT_FIRSTMACH; pub type __greg_t = u64; pub type __cpu_simple_lock_nv_t = c_int; pub type __gregset = [__greg_t; _NGREG]; -pub type __fregset = [__freg; _NFREG]; +pub type __fregset = [__fpreg; _NFREG]; s! { pub struct mcontext_t { pub __gregs: __gregset, - pub __fregs: __fpregset, + pub __fregs: __fregset, __spare: [crate::__greg_t; 7], } } @@ -22,6 +21,22 @@ s_no_extra_traits! { } } +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for __fpreg { + fn eq(&self, other: &Self) -> bool { + unsafe { self.u_u64 == other.u_u64 } + } + } + impl Eq for __fpreg {} + impl hash::Hash for __fpreg { + fn hash(&self, state: &mut H) { + unsafe { self.u_u64.hash(state) }; + } + } + } +} + pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; pub const PT_GETREGS: c_int = PT_FIRSTMACH + 0; From a443a4c837eaaff255b631f046f88d7710328fad Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 27 Oct 2025 20:01:26 -0400 Subject: [PATCH 0976/1228] NetBSD: Update test headers and skips Add headers required for the new constants we have, add skips for things we can't easily fix, and remove skips for things that now work. Additionally, check the NetBSD version via `uname` for configuring skips based on the tested version. (backport ) (cherry picked from commit 5634c88449febdd2d722bf2008bfc29503751053) --- libc-test/build.rs | 86 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 80 insertions(+), 6 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 22f1341c92edf..91f726aa48f56 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1254,6 +1254,12 @@ fn test_netbsd(target: &str) { assert!(target.contains("netbsd")); let mut cfg = ctest_cfg(); + // Assume netbsd10 but check for netbsd9 for test config. + let netbsd9 = match try_command_output("uname", &["-sr"]) { + Some(s) if s.starts_with("NetBSD 9.") => true, + _ => false, + }; + cfg.flag("-Wno-deprecated-declarations"); cfg.define("_NETBSD_SOURCE", Some("1")); @@ -1280,10 +1286,12 @@ fn test_netbsd(target: &str) { "ctype.h", "dirent.h", "dlfcn.h", + "execinfo.h", "glob.h", "grp.h", "ifaddrs.h", "langinfo.h", + "lwp.h", "net/bpf.h", "net/if.h", "net/if_arp.h", @@ -1302,12 +1310,14 @@ fn test_netbsd(target: &str) { "sched.h", "semaphore.h", "signal.h", + "spawn.h", "string.h", "sys/endian.h", "sys/exec_elf.h", "sys/xattr.h", "sys/extattr.h", "sys/file.h", + (!netbsd9, "sys/futex.h"), "sys/ioctl.h", "sys/ioctl_compat.h", "sys/ipc.h", @@ -1315,12 +1325,15 @@ fn test_netbsd(target: &str) { "sys/mman.h", "sys/mount.h", "sys/ptrace.h", + (!netbsd9, "sys/random.h"), "sys/resource.h", + "sys/sched.h", "sys/shm.h", "sys/socket.h", "sys/statvfs.h", "sys/sysctl.h", "sys/time.h", + (!netbsd9, "sys/timerfd.h"), "sys/times.h", "sys/timex.h", "sys/ucontext.h", @@ -1343,6 +1356,8 @@ fn test_netbsd(target: &str) { "sys/reboot.h", "sys/shm.h", "iconv.h", + "utmp.h", + "utmpx.h", ); cfg.rename_type(move |ty| { @@ -1375,10 +1390,14 @@ fn test_netbsd(target: &str) { } }); + cfg.alias_is_c_enum(|ty| ty == "fae_action"); + cfg.skip_alias(move |ty| { match ty.ident() { // FIXME(netbsd): sighandler_t is crazy across platforms "sighandler_t" => true, + // Incomplete type in C + "cpuset_t" => true, _ => false, } }); @@ -1390,6 +1409,10 @@ fn test_netbsd(target: &str) { // These are tested as part of the linux_fcntl tests since there are // header conflicts when including them with all the other structs. "termios2" => true, + // Anon struct + "__exit_status" => true, + // FIXME(netbsd): Should be importable but aren't for some reason. + "Aux32Info" | "Aux64Info" => true, _ => false, } }); @@ -1415,6 +1438,10 @@ fn test_netbsd(target: &str) { "BOTHER" => true, "GRND_RANDOM" | "GRND_INSECURE" | "GRND_NONBLOCK" => true, // netbsd 10 minimum + // Due to the NetBSD `__BIT` macro this turns out to be an `unsigned long`, but + // the futex syscall takes `int` ops. + "FUTEX_CMD_MASK" => true, + _ => false, } }); @@ -1422,14 +1449,10 @@ fn test_netbsd(target: &str) { cfg.skip_fn(move |func| { #[expect(clippy::wildcard_in_or_patterns)] match func.ident() { - // FIXME(netbsd): netbsd 10 minimum // FIXME(netbsd): https://github.com/rust-lang/libc/issues/1272 "execv" | "execve" | "execvp" => true, - "getentropy" | "getrandom" => true, - - "getrlimit" | "getrlimit64" | // non-int in 1st arg - "setrlimit" | "setrlimit64" | // non-int in 1st arg - "prlimit" | "prlimit64" | // non-int in 2nd arg + // FIXME(netbsd): Look into setting `_POSIX_C_SOURCE` to enable this + "qsort_r" => true, _ => false, } @@ -1453,10 +1476,61 @@ fn test_netbsd(target: &str) { ("Elf64_Phdr", "p_type") => true, // pthread_spin_t is a volatile uchar ("pthread_spinlock_t", "pts_spin") => true, + + // `tcp_snd_wscale` and `tcp_rcv_wscale` are bitfields + ("tcp_info", "tcp_snd_wscale") => true, + ("tcp_info", "tcp_rcv_wscale") => true, + + // Anonymous unions + ("ifconf", "ifc_ifcu") => true, + ("utmpx", "ut_exit") => true, + ("posix_spawn_file_actions_entry_t", "fae_data") => true, + _ => false, } }); + // Unless otherwise noted, everything in this block was an addition in NetBS 10. + if netbsd9 { + cfg.skip_const(move |constant| match constant.ident() { + "EOWNERDEAD" + | "ENOTRECOVERABLE" + | "F_GETPATH" + | "MNT_NFS4ACLS" + | "MNT_POSIX1EACLS" + | "MNT_ACLS" + | "EVFILT_USER" + | "EVFILT_EMPTY" + | "REG_ILLSEQ" + | "PT_SET_SIGPASS" + | "PT_GET_SIGPASS" + | "EXTATTR_NAMESPACE_EMPTY" => true, + x if x.starts_with("FUTEX") => true, + x if x.starts_with("NOTE_") => true, + x if x.starts_with("PT_LWP") => true, + x if x.starts_with("TFD_") => true, + "ELAST" => true, // not version-stable + _ => false, + }); + + cfg.skip_struct(move |struct_| match struct_.ident() { + x if x.starts_with("ptrace_lwp") => true, + _ => false, + }); + + cfg.skip_fn(move |func| match func.ident() { + "reallocarray" | "getentropy" | "ppoll" | "getrandom" => true, + x if x.starts_with("timerfd_") => true, + _ => false, + }); + + cfg.skip_struct_field(|struct_, field| match (struct_.ident(), field.ident()) { + ("statvfs", "f_mntfromlabel") => true, // added field + ("kevent", "udata") => true, // changed type (ABI-compatible) + _ => false, + }); + } + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } From d83e812146e0bb2f06caba73655401e32fb488d3 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 2 Nov 2025 19:27:16 -0600 Subject: [PATCH 0977/1228] NetBSD: Skip tests on 9.x for network structs with alignment mismatches These were previously packed, but this was changed in NetBSD10. Link: https://github.com/NetBSD/src/commit/1ca39e872702d4539e8844aff15593cf4c18a1cb (backport ) (cherry picked from commit 277c0c55786e85cd966d94ffa65ce172f97c54f1) --- libc-test/build.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 91f726aa48f56..4246d86874a11 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1515,6 +1515,8 @@ fn test_netbsd(target: &str) { cfg.skip_struct(move |struct_| match struct_.ident() { x if x.starts_with("ptrace_lwp") => true, + // These were packed before NetBSD 10 + "arphdr" | "in_addr" | "ip_mreq" | "sockaddr_in" => true, _ => false, }); From 18b90a4751297e4476a0b2af7162760b08c2fc74 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 27 Oct 2025 20:25:22 -0400 Subject: [PATCH 0978/1228] NetBSD: Remove IFF_NOTRAILERS Upstream commit: https://github.com/NetBSD/src/commit/091e15265dbe2bb314cd3f15830a81f296d03f40 (backport ) (cherry picked from commit 35d5592a1f9e712220203ddff65a5dc63e95c1ba) --- libc-test/semver/netbsd.txt | 1 - src/unix/bsd/netbsdlike/netbsd/mod.rs | 1 - 2 files changed, 2 deletions(-) diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index 58d581b7cb4fd..af57ee5ea4d81 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -416,7 +416,6 @@ IFF_LINK2 IFF_LOOPBACK IFF_MULTICAST IFF_NOARP -IFF_NOTRAILERS IFF_OACTIVE IFF_POINTOPOINT IFF_PROMISC diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 2a360ca28af73..4a164cd023e8d 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1118,7 +1118,6 @@ pub const IFF_BROADCAST: c_int = 0x0002; // broadcast address valid pub const IFF_DEBUG: c_int = 0x0004; // turn on debugging pub const IFF_LOOPBACK: c_int = 0x0008; // is a loopback net pub const IFF_POINTOPOINT: c_int = 0x0010; // interface is point-to-point link -pub const IFF_NOTRAILERS: c_int = 0x0020; // avoid use of trailers pub const IFF_RUNNING: c_int = 0x0040; // resources allocated pub const IFF_NOARP: c_int = 0x0080; // no address resolution protocol pub const IFF_PROMISC: c_int = 0x0100; // receive all packets From 573ede5b332a74b75ef5ed7e311f43363e894042 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 28 Oct 2025 22:50:55 -0400 Subject: [PATCH 0979/1228] NetBSD: Remove `*_MAXID` constants and `AT_SUN_LDPGSIZE` These assorted constants may have existed at some point but I can't find any reference to them in the source repo. Remove them now. (backport ) (cherry picked from commit 17727db4414aa32f7ff2bf7465a5d154682cad16) --- libc-test/semver/netbsd.txt | 3 --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 4 ---- 2 files changed, 7 deletions(-) diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index af57ee5ea4d81..ab4a8b1dbda10 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -179,7 +179,6 @@ CTL_HW CTL_IPPROTO_IPSEC CTL_KERN CTL_MACHDEP -CTL_MAXID CTL_MAXNAME CTL_MMAP CTL_NET @@ -532,7 +531,6 @@ KERN_LOGSIGEXIT KERN_LWP KERN_MAPPED_FILES KERN_MAXFILES -KERN_MAXID KERN_MAXPARTITIONS KERN_MAXPHYS KERN_MAXPROC @@ -726,7 +724,6 @@ NANOSECOND NET_RT_DUMP NET_RT_FLAGS NET_RT_IFLIST -NET_RT_MAXID NET_RT_OIFLIST NET_RT_OOIFLIST NET_RT_OOOIFLIST diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 4a164cd023e8d..e3829bf81d958 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -977,7 +977,6 @@ pub const AT_RGID: c_int = 2003; pub const AT_SUN_LDELF: c_int = 2004; pub const AT_SUN_LDSHDR: c_int = 2005; pub const AT_SUN_LDNAME: c_int = 2006; -pub const AT_SUN_LDPGSIZE: c_int = 2007; pub const AT_SUN_PLATFORM: c_int = 2008; pub const AT_SUN_HWCAP: c_int = 2009; pub const AT_SUN_IFLUSH: c_int = 2010; @@ -1219,7 +1218,6 @@ pub const NET_RT_OOOIFLIST: c_int = 3; pub const NET_RT_OOIFLIST: c_int = 4; pub const NET_RT_OIFLIST: c_int = 5; pub const NET_RT_IFLIST: c_int = 6; -pub const NET_RT_MAXID: c_int = 7; pub const PF_OROUTE: c_int = AF_OROUTE; pub const PF_ARP: c_int = AF_ARP; @@ -1701,7 +1699,6 @@ pub const CTL_PROC: c_int = 10; pub const CTL_VENDOR: c_int = 11; pub const CTL_EMUL: c_int = 12; pub const CTL_SECURITY: c_int = 13; -pub const CTL_MAXID: c_int = 14; pub const KERN_OSTYPE: c_int = 1; pub const KERN_OSRELEASE: c_int = 2; pub const KERN_OSREV: c_int = 3; @@ -1786,7 +1783,6 @@ pub const KERN_ARND: c_int = 81; pub const KERN_SYSVIPC: c_int = 82; pub const KERN_BOOTTIME: c_int = 83; pub const KERN_EVCNT: c_int = 84; -pub const KERN_MAXID: c_int = 85; pub const KERN_PROC_ALL: c_int = 0; pub const KERN_PROC_PID: c_int = 1; pub const KERN_PROC_PGRP: c_int = 2; From f8d1d9d9e28fd70809ec95bea23bba10783d1abc Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 27 Oct 2025 22:40:25 -0400 Subject: [PATCH 0980/1228] NetBSD: Remove `vm_size_t` As noted, this has been deprecated a long time and is no longer present on x86_64. Remove the typedef. (backport ) (cherry picked from commit 11d36ae0efd967e52c9346778ae6ab70b505beae) --- libc-test/semver/netbsd.txt | 1 - src/unix/bsd/netbsdlike/netbsd/mod.rs | 1 - 2 files changed, 2 deletions(-) diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index ab4a8b1dbda10..c02af7ccf5e21 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -1647,6 +1647,5 @@ utmpxname utpname utrace uucred -vm_size_t wait4 waitid diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index e3829bf81d958..54f2c2b45652a 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -13,7 +13,6 @@ pub type fsfilcnt_t = u64; pub type idtype_t = c_int; pub type mqd_t = c_int; type __pthread_spin_t = __cpu_simple_lock_nv_t; -pub type vm_size_t = crate::uintptr_t; // FIXME(deprecated): deprecated since long time pub type lwpid_t = c_uint; pub type shmatt_t = c_uint; pub type cpuid_t = c_ulong; From 110200b9214b600f5c1b3cb7d74450b124f9412d Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 28 Oct 2025 21:29:36 -0400 Subject: [PATCH 0981/1228] NetBSD: Remove BPF constants These are currently incorrect, so remove them for now. If desired, they can be added back in the future using the `_IO*` functions. (backport ) (cherry picked from commit 7de84bf0842561b85752acc29fa49803c190c745) --- libc-test/semver/netbsd.txt | 18 ---------------- src/unix/bsd/mod.rs | 31 ++++++++++++++++----------- src/unix/bsd/netbsdlike/netbsd/mod.rs | 6 ------ 3 files changed, 18 insertions(+), 37 deletions(-) diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index c02af7ccf5e21..97c39c24f8ccc 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -103,23 +103,6 @@ B460800 B7200 B76800 B921600 -BIOCFLUSH -BIOCGBLEN -BIOCGDLT -BIOCGETIF -BIOCGHDRCMPLT -BIOCGRSIG -BIOCGSEESENT -BIOCGSTATS -BIOCIMMEDIATE -BIOCPROMISC -BIOCSBLEN -BIOCSDLT -BIOCSETIF -BIOCSHDRCMPLT -BIOCSRSIG -BIOCSSEESENT -BIOCVERSION BOOT_TIME BUFSIZ BUS_ADRALN @@ -990,7 +973,6 @@ SIGINFO SIGIO SIGNATURE SIGSTKSZ -SIOCGIFADDR SOCKCREDSIZE SOCK_CLOEXEC SOCK_CONN_DGRAM diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 2916d821a4d6a..9b203f96eddcf 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -398,19 +398,24 @@ pub const POLLWRNORM: c_short = 0x004; pub const POLLRDBAND: c_short = 0x080; pub const POLLWRBAND: c_short = 0x100; -pub const BIOCGBLEN: c_ulong = 0x40044266; -pub const BIOCSBLEN: c_ulong = 0xc0044266; -pub const BIOCFLUSH: c_uint = 0x20004268; -pub const BIOCPROMISC: c_uint = 0x20004269; -pub const BIOCGDLT: c_ulong = 0x4004426a; -pub const BIOCGETIF: c_ulong = 0x4020426b; -pub const BIOCSETIF: c_ulong = 0x8020426c; -pub const BIOCGSTATS: c_ulong = 0x4008426f; -pub const BIOCIMMEDIATE: c_ulong = 0x80044270; -pub const BIOCVERSION: c_ulong = 0x40044271; -pub const BIOCGHDRCMPLT: c_ulong = 0x40044274; -pub const BIOCSHDRCMPLT: c_ulong = 0x80044275; -pub const SIOCGIFADDR: c_ulong = 0xc0206921; +cfg_if! { + // Not yet implemented on NetBSD + if #[cfg(not(any(target_os = "netbsd")))] { + pub const BIOCGBLEN: c_ulong = 0x40044266; + pub const BIOCSBLEN: c_ulong = 0xc0044266; + pub const BIOCFLUSH: c_uint = 0x20004268; + pub const BIOCPROMISC: c_uint = 0x20004269; + pub const BIOCGDLT: c_ulong = 0x4004426a; + pub const BIOCGETIF: c_ulong = 0x4020426b; + pub const BIOCSETIF: c_ulong = 0x8020426c; + pub const BIOCGSTATS: c_ulong = 0x4008426f; + pub const BIOCIMMEDIATE: c_ulong = 0x80044270; + pub const BIOCVERSION: c_ulong = 0x40044271; + pub const BIOCGHDRCMPLT: c_ulong = 0x40044274; + pub const BIOCSHDRCMPLT: c_ulong = 0x80044275; + pub const SIOCGIFADDR: c_ulong = 0xc0206921; + } +} pub const REG_BASIC: c_int = 0o0000; pub const REG_EXTENDED: c_int = 0o0001; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 54f2c2b45652a..445dffb44af75 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1403,12 +1403,6 @@ pub const FD_SETSIZE: usize = 0x100; pub const ST_NOSUID: c_ulong = 8; -pub const BIOCGRSIG: c_ulong = 0x40044272; -pub const BIOCSRSIG: c_ulong = 0x80044273; -pub const BIOCSDLT: c_ulong = 0x80044278; -pub const BIOCGSEESENT: c_ulong = 0x40044276; -pub const BIOCSSEESENT: c_ulong = 0x80044277; - // pub const MNT_UNION: c_int = 0x00000020; pub const MNT_NOCOREDUMP: c_int = 0x00008000; From 25acb9e971e6c65d7028ed7f2b3de36aea7fd787 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 27 Oct 2025 20:31:28 -0400 Subject: [PATCH 0982/1228] NetBSD: Replace REG_ENOSYS with REG_ILLSEQ Upstream commit: https://github.com/NetBSD/src/commit/cc8bab3745d49df3be13e903212f10c5fbee6c75 (backport ) (cherry picked from commit b038f178e2aad9ed4cbf2f2dda6b4b4ae926916a) --- libc-test/semver/netbsd.txt | 1 - src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index 97c39c24f8ccc..1f2a04c678632 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -884,7 +884,6 @@ REG_ECOLLATE REG_ECTYPE REG_EESCAPE REG_EMPTY -REG_ENOSYS REG_EPAREN REG_ERANGE REG_ESPACE diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 445dffb44af75..b626dd1da8944 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1882,7 +1882,7 @@ pub const FIBMAP: c_ulong = 0xc008667a; pub const SIGSTKSZ: size_t = 40960; -pub const REG_ENOSYS: c_int = 17; +pub const REG_ILLSEQ: c_int = 17; pub const PT_DUMPCORE: c_int = 12; pub const PT_LWPINFO: c_int = 13; From 8a4d0b5657916df25fb9339e256b7aad314524b2 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 27 Oct 2025 22:05:52 -0400 Subject: [PATCH 0983/1228] NetBSD: Fix `uucred.cr_ngroups` from `int` to `short` Link: https://github.com/NetBSD/src/blob/6017cb90fd7d83ed6e45d93129b12d525978c2fa/sys/sys/ucred.h#L52 (backport ) (cherry picked from commit 3bb84ebc5566637ddb2c03b90f13d5af91066ab8) --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index b626dd1da8944..54f2cc740fc9a 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -395,7 +395,7 @@ s! { pub cr_unused: c_ushort, pub cr_uid: crate::uid_t, pub cr_gid: crate::gid_t, - pub cr_ngroups: c_int, + pub cr_ngroups: c_short, pub cr_groups: [crate::gid_t; NGROUPS_MAX as usize], } From 788d615d9216c5af88f0fd1e038ff7e745a08b30 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 27 Oct 2025 22:28:15 -0400 Subject: [PATCH 0984/1228] NetBSD: Fix the type of `kevent.udata` This changed in 10.0. The change is ABI-compatible so we can make it now. This is a minor break, but should allow users to remove some special casing on NetBSD since this brings it in line with other BSDs. Link: https://github.com/NetBSD/src/blob/6017cb90fd7d83ed6e45d93129b12d525978c2fa/sys/sys/event.h#L72 (backport ) (cherry picked from commit 14f2bc5a1cfff354871167468d802f6fe2ca53a8) --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 54f2cc740fc9a..3c6415a78bf93 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -300,8 +300,7 @@ s! { pub flags: u32, pub fflags: u32, pub data: i64, - // FIXME(netbsd): NetBSD 10.0 will finally have same layout as other BSD - pub udata: intptr_t, + pub udata: *mut c_void, } pub struct dqblk { From 7ff5048fb646a843fc98246a4c5bfb72f88322a4 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 28 Oct 2025 22:21:00 -0400 Subject: [PATCH 0985/1228] NetBSD: Fix the value of `PT_SUSPEND` Link: https://github.com/NetBSD/src/blob/6ace5fed3bd010695a1b88ca6c1f8a5af7793ffb/sys/sys/ptrace.h#L62 (backport ) (cherry picked from commit 5e47663bc529af1c1aac82f5362ce284310d696b) --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 3c6415a78bf93..29c1ebc463918 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1893,7 +1893,7 @@ pub const PT_GET_PROCESS_STATE: c_int = 18; pub const PT_SET_SIGINFO: c_int = 19; pub const PT_GET_SIGINFO: c_int = 20; pub const PT_RESUME: c_int = 21; -pub const PT_SUSPEND: c_int = 23; +pub const PT_SUSPEND: c_int = 22; pub const PT_STOP: c_int = 23; pub const PT_LWPSTATUS: c_int = 24; pub const PT_LWPNEXT: c_int = 25; From 064616ca8185022cf2b55496fca4ea571d719eb2 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 28 Oct 2025 16:44:16 -0400 Subject: [PATCH 0986/1228] NetBSD: Fix the values of FNM_* constants Link: https://github.com/NetBSD/src/blob/908770859a5d5141adc63c7844190d01db8a18a4/include/fnmatch.h#L43-L48 (backport ) (cherry picked from commit cfb674c59dec21a10533c267b63859a45ef2eb92) --- src/unix/mod.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 0de47f4e92b8e..2d3dbaa5f7f63 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -351,7 +351,11 @@ cfg_if! { pub const FNM_NOMATCH: c_int = 1; cfg_if! { - if #[cfg(any(target_os = "illumos", target_os = "solaris",))] { + if #[cfg(any( + target_os = "illumos", + target_os = "solaris", + target_os = "netbsd" + ))] { pub const FNM_CASEFOLD: c_int = 1 << 3; } else if #[cfg(not(target_os = "aix"))] { pub const FNM_CASEFOLD: c_int = 1 << 4; @@ -365,6 +369,7 @@ cfg_if! { target_os = "android", target_os = "openbsd", target_os = "cygwin", + target_os = "netbsd", ))] { pub const FNM_PATHNAME: c_int = 1 << 1; } else { @@ -378,6 +383,7 @@ cfg_if! { target_os = "freebsd", target_os = "android", target_os = "openbsd", + target_os = "netbsd", ))] { pub const FNM_NOESCAPE: c_int = 1 << 0; } else if #[cfg(target_os = "nto")] { From 0c3e8af74afec12dedb15d919e60d89fb9034371 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 27 Oct 2025 22:23:29 -0400 Subject: [PATCH 0987/1228] NetBSD: Fix the type of `mcontext_t.__fpregs` Link: https://github.com/NetBSD/src/blob/6017cb90fd7d83ed6e45d93129b12d525978c2fa/sys/arch/amd64/include/mcontext.h#L59-L65 (backport ) (cherry picked from commit a47db5328b888658adc97b263d4572863b5df7f0) --- src/unix/bsd/netbsdlike/netbsd/x86_64.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/x86_64.rs b/src/unix/bsd/netbsdlike/netbsd/x86_64.rs index 77daa4b1e9eb2..801b326b70fa5 100644 --- a/src/unix/bsd/netbsdlike/netbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/x86_64.rs @@ -4,11 +4,14 @@ use crate::PT_FIRSTMACH; pub type c___greg_t = u64; pub type __cpu_simple_lock_nv_t = c_uchar; +// FIXME(alignment): Type is `__aligned(8)` +type __fpregset_t = [c_char; 512]; + s! { pub struct mcontext_t { pub __gregs: [c___greg_t; 26], pub _mc_tlsbase: c___greg_t, - pub __fpregs: [[c_char; 32]; 16], + pub __fpregs: __fpregset_t, } pub struct ucontext_t { From 2c31281c9a685bffd3aa25bfd0f4896b1d111a14 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 27 Oct 2025 22:09:54 -0400 Subject: [PATCH 0988/1228] NetBSD: Increase the size of `sockaddr_dl.sdl_data` from 12 to 24 Upstream commit: https://github.com/NetBSD/src/commit/a3d9e0f54ed964e4da9d6ef05c15f769c7bc2bc9 (backport ) (cherry picked from commit 8ff5e7e896f7608e60c1d71867d11017c09aeea6) --- libc-test/build.rs | 1 + src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 4246d86874a11..e0f7fb2797dce 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1514,6 +1514,7 @@ fn test_netbsd(target: &str) { }); cfg.skip_struct(move |struct_| match struct_.ident() { + "sockaddr_dl" => true, // Last field increased size in 10 x if x.starts_with("ptrace_lwp") => true, // These were packed before NetBSD 10 "arphdr" | "in_addr" | "ip_mreq" | "sockaddr_in" => true, diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 29c1ebc463918..8c3fe96ce3b47 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -412,7 +412,7 @@ s! { pub sdl_nlen: u8, pub sdl_alen: u8, pub sdl_slen: u8, - pub sdl_data: [c_char; 12], + pub sdl_data: [c_char; 24], } pub struct __exit_status { From 4aabc253dfe1ea07170cf71a6b2eb1cf8cd5b8e7 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 27 Oct 2025 22:35:46 -0400 Subject: [PATCH 0989/1228] NetBSD: Make `_cpuset` an extern type Our definition was correct for how it is defined internally, but in the header where it is included it is an incomplete definition. Link: https://github.com/NetBSD/src/blob/6017cb90fd7d83ed6e45d93129b12d525978c2fa/sys/sys/sched.h#L99 (backport ) (cherry picked from commit 95e5cdbb0771dac53c0fe384180fa68a7339d4cd) --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 8c3fe96ce3b47..499d7bf71ce38 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -49,6 +49,10 @@ e! { } } +extern_ty! { + pub enum _cpuset {} +} + cfg_if! { if #[cfg(target_pointer_width = "64")] { type Elf_Addr = Elf64_Addr; @@ -520,10 +524,6 @@ s! { pub dlpi_tls_data: *mut c_void, } - pub struct _cpuset { - bits: [u32; 0], - } - pub struct accept_filter_arg { pub af_name: [c_char; 16], af_arg: [c_char; 256 - 16], From 695c5b2c5d271846c369100cfc5c2bbdbc66d79e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 27 Oct 2025 20:46:56 -0400 Subject: [PATCH 0990/1228] NetBSD: Account for upstream changes to ptrace with LWP Deprecate the PT_LWPINFO and PL_EVENT* constants, as well as `ptrace_lwpinfo`. Upstream commit: https://github.com/NetBSD/src/commit/4f79a484704c25ba5c21ab92911b2c71cf56a9dd (backport ) (cherry picked from commit c4a86e0c19a48b0df2eba4fc186e6bd919c813b8) --- libc-test/build.rs | 5 +++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index e0f7fb2797dce..5a20faa0a6d18 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1413,6 +1413,8 @@ fn test_netbsd(target: &str) { "__exit_status" => true, // FIXME(netbsd): Should be importable but aren't for some reason. "Aux32Info" | "Aux64Info" => true, + // deprecated, obsolete upstream + "ptrace_lwpinfo" => true, _ => false, } }); @@ -1432,6 +1434,9 @@ fn test_netbsd(target: &str) { "SIG_DFL" | "SIG_ERR" | "SIG_IGN" => true, // sighandler_t weirdness "SIGUNUSED" => true, // removed in glibc 2.26 + // deprecated, obsolete upstream + "PT_LWPINFO" | "PL_EVENT_NONE" | "PL_EVENT_SIGNAL" | "PL_EVENT_SUSPENDED" => true, + // weird signed extension or something like that? "MS_NOUSER" => true, "MS_RMT_MASK" => true, // updated in glibc 2.22 and musl 1.1.13 diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 499d7bf71ce38..a8b5d573a21ed 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -711,6 +711,7 @@ s! { pub fae: *mut posix_spawn_file_actions_entry_t, } + #[deprecated(since = "0.2.178", note = "obsolete upstream")] pub struct ptrace_lwpinfo { pub pl_lwpid: lwpid_t, pub pl_event: c_int, @@ -1502,8 +1503,11 @@ pub const TIME_ERROR: c_int = 5; pub const LITTLE_ENDIAN: c_int = 1234; pub const BIG_ENDIAN: c_int = 4321; +#[deprecated(since = "0.2.178", note = "obsolete upstream")] pub const PL_EVENT_NONE: c_int = 0; +#[deprecated(since = "0.2.178", note = "obsolete upstream")] pub const PL_EVENT_SIGNAL: c_int = 1; +#[deprecated(since = "0.2.178", note = "obsolete upstream")] pub const PL_EVENT_SUSPENDED: c_int = 2; cfg_if! { @@ -1884,6 +1888,7 @@ pub const SIGSTKSZ: size_t = 40960; pub const REG_ILLSEQ: c_int = 17; pub const PT_DUMPCORE: c_int = 12; +#[deprecated(note = "obsolete operation")] pub const PT_LWPINFO: c_int = 13; pub const PT_SYSCALL: c_int = 14; pub const PT_SYSCALLEMU: c_int = 15; From 4ece257a067d36f5cee364e06055bb6655e20b79 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 28 Oct 2025 20:03:10 -0400 Subject: [PATCH 0991/1228] NetBSD: Introduce `statvfs.rs` Move statvfs types to the `new` module. Link: https://github.com/NetBSD/src/blob/6ace5fed3bd010695a1b88ca6c1f8a5af7793ffb/sys/sys/statvfs.h#L66-L101 (backport ) (cherry picked from commit c4731a0c308288626d83c6403a778c4c9328a59b) --- src/new/mod.rs | 2 ++ src/new/netbsd/mod.rs | 3 ++ src/new/netbsd/sys/mod.rs | 5 +++ src/new/netbsd/sys/statvfs.rs | 44 +++++++++++++++++++++++++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 36 +--------------------- src/unix/mod.rs | 4 +-- 6 files changed, 57 insertions(+), 37 deletions(-) create mode 100644 src/new/netbsd/sys/mod.rs create mode 100644 src/new/netbsd/sys/statvfs.rs diff --git a/src/new/mod.rs b/src/new/mod.rs index 1846ada479fba..dded532dc8004 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -182,6 +182,8 @@ cfg_if! { pub use net::route::*; } else if #[cfg(target_vendor = "apple")] { pub use signal::*; + } else if #[cfg(target_os = "netbsd")] { + pub use sys::statvfs::*; } } diff --git a/src/new/netbsd/mod.rs b/src/new/netbsd/mod.rs index b43e7aeb088d2..73bdb8292d6ef 100644 --- a/src/new/netbsd/mod.rs +++ b/src/new/netbsd/mod.rs @@ -1,5 +1,8 @@ //! NetBSD libc. //! +//! * Headers: +//! * Sys headers: //! * Manual pages: +pub(crate) mod sys; pub(crate) mod unistd; diff --git a/src/new/netbsd/sys/mod.rs b/src/new/netbsd/sys/mod.rs new file mode 100644 index 0000000000000..0ac2d2e2d876c --- /dev/null +++ b/src/new/netbsd/sys/mod.rs @@ -0,0 +1,5 @@ +//! Directory: `sys/` +//! +//! https://github.com/NetBSD/src/tree/trunk/sys/sys + +pub(crate) mod statvfs; diff --git a/src/new/netbsd/sys/statvfs.rs b/src/new/netbsd/sys/statvfs.rs new file mode 100644 index 0000000000000..640f42a33b21f --- /dev/null +++ b/src/new/netbsd/sys/statvfs.rs @@ -0,0 +1,44 @@ +//! Header: `sys/statvfs.h` +//! +//! + +use crate::prelude::*; + +const _VFS_NAMELEN: usize = 32; +const _VFS_MNAMELEN: usize = 1024; + +s! { + pub struct statvfs { + pub f_flag: c_ulong, + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_iosize: c_ulong, + + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_bresvd: crate::fsblkcnt_t, + + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + pub f_fresvd: crate::fsfilcnt_t, + + pub f_syncreads: u64, + pub f_syncwrites: u64, + + pub f_asyncreads: u64, + pub f_asyncwrites: u64, + + pub f_fsidx: crate::fsid_t, + pub f_fsid: c_ulong, + pub f_namemax: c_ulong, + pub f_owner: crate::uid_t, + + pub f_spare: [u32; 4], + + pub f_fstypename: [c_char; _VFS_NAMELEN], + pub f_mntonname: [c_char; _VFS_MNAMELEN], + pub f_mntfromname: [c_char; _VFS_MNAMELEN], + } +} diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index a8b5d573a21ed..a3082e7d53cbb 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -852,40 +852,6 @@ s! { pub d_name: [c_char; 512], } - pub struct statvfs { - pub f_flag: c_ulong, - pub f_bsize: c_ulong, - pub f_frsize: c_ulong, - pub f_iosize: c_ulong, - - pub f_blocks: crate::fsblkcnt_t, - pub f_bfree: crate::fsblkcnt_t, - pub f_bavail: crate::fsblkcnt_t, - pub f_bresvd: crate::fsblkcnt_t, - - pub f_files: crate::fsfilcnt_t, - pub f_ffree: crate::fsfilcnt_t, - pub f_favail: crate::fsfilcnt_t, - pub f_fresvd: crate::fsfilcnt_t, - - pub f_syncreads: u64, - pub f_syncwrites: u64, - - pub f_asyncreads: u64, - pub f_asyncwrites: u64, - - pub f_fsidx: crate::fsid_t, - pub f_fsid: c_ulong, - pub f_namemax: c_ulong, - pub f_owner: crate::uid_t, - - pub f_spare: [u32; 4], - - pub f_fstypename: [c_char; 32], - pub f_mntonname: [c_char; 1024], - pub f_mntfromname: [c_char; 1024], - } - pub struct sockaddr_storage { pub ss_len: u8, pub ss_family: crate::sa_family_t, @@ -2460,7 +2426,7 @@ extern "C" { ) -> c_int; #[link_name = "__getmntinfo13"] pub fn getmntinfo(mntbufp: *mut *mut crate::statvfs, flags: c_int) -> c_int; - pub fn getvfsstat(buf: *mut statvfs, bufsize: size_t, flags: c_int) -> c_int; + pub fn getvfsstat(buf: *mut crate::statvfs, bufsize: size_t, flags: c_int) -> c_int; // Added in `NetBSD` 10.0 pub fn timerfd_create(clockid: crate::clockid_t, flags: c_int) -> c_int; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 2d3dbaa5f7f63..c9cf903a0d3aa 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1543,9 +1543,9 @@ extern "C" { pub fn sem_trywait(sem: *mut sem_t) -> c_int; pub fn sem_post(sem: *mut sem_t) -> c_int; #[cfg_attr(gnu_file_offset_bits64, link_name = "statvfs64")] - pub fn statvfs(path: *const c_char, buf: *mut statvfs) -> c_int; + pub fn statvfs(path: *const c_char, buf: *mut crate::statvfs) -> c_int; #[cfg_attr(gnu_file_offset_bits64, link_name = "fstatvfs64")] - pub fn fstatvfs(fd: c_int, buf: *mut statvfs) -> c_int; + pub fn fstatvfs(fd: c_int, buf: *mut crate::statvfs) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__sigemptyset14")] pub fn sigemptyset(set: *mut sigset_t) -> c_int; From 5832cd96e5871cbbf0bfd724e8447170e5988bb2 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 27 Oct 2025 22:14:20 -0400 Subject: [PATCH 0992/1228] NetBSD: Make `statvfs.f_spare` non-public With NetBSD10 the type changes and fields get adjusted. Make the field nonpublic now to prepare for this change in the future. This is a minor breaking change but means that the NetBSD10 updates will not be breaking. Link: https://github.com/NetBSD/src/blob/6017cb90fd7d83ed6e45d93129b12d525978c2fa/sys/sys/statvfs.h#L94 (backport ) (cherry picked from commit d5f4354cf28a965d46876a1cf50e2896fbe1352d) --- src/new/netbsd/sys/statvfs.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/new/netbsd/sys/statvfs.rs b/src/new/netbsd/sys/statvfs.rs index 640f42a33b21f..eee3766300ce6 100644 --- a/src/new/netbsd/sys/statvfs.rs +++ b/src/new/netbsd/sys/statvfs.rs @@ -35,10 +35,13 @@ s! { pub f_namemax: c_ulong, pub f_owner: crate::uid_t, - pub f_spare: [u32; 4], + // This type is updated in a future version + f_spare: [u32; 4], pub f_fstypename: [c_char; _VFS_NAMELEN], pub f_mntonname: [c_char; _VFS_MNAMELEN], pub f_mntfromname: [c_char; _VFS_MNAMELEN], + // Added in NetBSD10 + // pub f_mntfromlabel: [c_char; _VFS_MNAMELEN], } } From a816498fae079a4d7fcdef852c4f0bd362a3ba46 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 2 Nov 2025 19:02:28 -0600 Subject: [PATCH 0993/1228] NetBSD: Skip tests for structvfs on NetBSD10 This went through an ABI change with a symbol version in NetBSD10. Our version still works but tests don't pass. Link: https://github.com/NetBSD/src/commit/02cdd248ec8b17634bab40aa4f2e161a756d7fce (backport ) (cherry picked from commit bf0f52cccfbc716cff00931062cf8b6059486b2e) --- libc-test/build.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 5a20faa0a6d18..f1317446282f6 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1415,6 +1415,8 @@ fn test_netbsd(target: &str) { "Aux32Info" | "Aux64Info" => true, // deprecated, obsolete upstream "ptrace_lwpinfo" => true, + // ABI change in NetBSD10, with symbol versioning. + "statvfs" if !netbsd9 => true, _ => false, } }); From ead03182a0c6a5fecab11377a9482110e9a8b95a Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 28 Oct 2025 20:24:30 -0400 Subject: [PATCH 0994/1228] NetBSD: Correct `ipc_perm`, split from OpenBSD as `ipc.rs` The field ordering is incorrect on NetBSD. Move it to the `new` module for NetBSD and OpenBSD and fix the mismatch on NetBSD. Link: https://github.com/NetBSD/src/blob/6ace5fed3bd010695a1b88ca6c1f8a5af7793ffb/sys/sys/ipc.h#L54-L68 Link: https://github.com/openbsd/src/blob/9abc5df53d8ad6b65dbd35b89ed94f73e2fc58da/sys/sys/ipc.h#L53-L61 (backport ) (cherry picked from commit 066e702ac0a9e87f1cd46399122f4c64b6359faa) --- src/new/mod.rs | 3 +++ src/new/netbsd/sys/ipc.rs | 17 +++++++++++++++++ src/new/netbsd/sys/mod.rs | 1 + src/new/openbsd/mod.rs | 1 + src/new/openbsd/sys/ipc.rs | 17 +++++++++++++++++ src/new/openbsd/sys/mod.rs | 5 +++++ src/unix/bsd/netbsdlike/mod.rs | 16 ---------------- 7 files changed, 44 insertions(+), 16 deletions(-) create mode 100644 src/new/netbsd/sys/ipc.rs create mode 100644 src/new/openbsd/sys/ipc.rs create mode 100644 src/new/openbsd/sys/mod.rs diff --git a/src/new/mod.rs b/src/new/mod.rs index dded532dc8004..9cb6e5b969fe1 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -183,7 +183,10 @@ cfg_if! { } else if #[cfg(target_vendor = "apple")] { pub use signal::*; } else if #[cfg(target_os = "netbsd")] { + pub use sys::ipc::*; pub use sys::statvfs::*; + } else if #[cfg(target_os = "openbsd")] { + pub use sys::ipc::*; } } diff --git a/src/new/netbsd/sys/ipc.rs b/src/new/netbsd/sys/ipc.rs new file mode 100644 index 0000000000000..49a1c84d74296 --- /dev/null +++ b/src/new/netbsd/sys/ipc.rs @@ -0,0 +1,17 @@ +//! Header: `sys/ipc.h` +//! +//! + +use crate::prelude::*; + +s! { + pub struct ipc_perm { + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub mode: crate::mode_t, + pub _seq: c_ushort, + pub _key: crate::key_t, + } +} diff --git a/src/new/netbsd/sys/mod.rs b/src/new/netbsd/sys/mod.rs index 0ac2d2e2d876c..7fab417362739 100644 --- a/src/new/netbsd/sys/mod.rs +++ b/src/new/netbsd/sys/mod.rs @@ -2,4 +2,5 @@ //! //! https://github.com/NetBSD/src/tree/trunk/sys/sys +pub(crate) mod ipc; pub(crate) mod statvfs; diff --git a/src/new/openbsd/mod.rs b/src/new/openbsd/mod.rs index d5debb80f3928..25fa784b2b004 100644 --- a/src/new/openbsd/mod.rs +++ b/src/new/openbsd/mod.rs @@ -3,4 +3,5 @@ //! * Headers: //! * Manual pages: +pub(crate) mod sys; pub(crate) mod unistd; diff --git a/src/new/openbsd/sys/ipc.rs b/src/new/openbsd/sys/ipc.rs new file mode 100644 index 0000000000000..59774405bcdd0 --- /dev/null +++ b/src/new/openbsd/sys/ipc.rs @@ -0,0 +1,17 @@ +//! Header: `sys/ipc.h` +//! +//! + +use crate::prelude::*; + +s! { + pub struct ipc_perm { + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub mode: crate::mode_t, + pub seq: c_ushort, + pub key: crate::key_t, + } +} diff --git a/src/new/openbsd/sys/mod.rs b/src/new/openbsd/sys/mod.rs new file mode 100644 index 0000000000000..7ba77c537356e --- /dev/null +++ b/src/new/openbsd/sys/mod.rs @@ -0,0 +1,5 @@ +//! Directory: `sys/` +//! +//! https://github.com/openbsd/src/tree/trunk/sys/sys + +pub(crate) mod ipc; diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index dc5e4528cf299..948e8d30248a7 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -61,22 +61,6 @@ s! { pub l_whence: c_short, } - pub struct ipc_perm { - pub cuid: crate::uid_t, - pub cgid: crate::gid_t, - pub uid: crate::uid_t, - pub gid: crate::gid_t, - pub mode: mode_t, - #[cfg(target_os = "openbsd")] - pub seq: c_ushort, - #[cfg(target_os = "netbsd")] - pub _seq: c_ushort, - #[cfg(target_os = "openbsd")] - pub key: crate::key_t, - #[cfg(target_os = "netbsd")] - pub _key: crate::key_t, - } - pub struct ptrace_io_desc { pub piod_op: c_int, pub piod_offs: *mut c_void, From c9cc3444e9cbe684a5fa6f8cc26a37285f5aa144 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 28 Oct 2025 20:43:58 -0400 Subject: [PATCH 0995/1228] NetBSD: Introduce `utmp_.rs`, correct the definition of `lastlog` The field order was incorrect. Update this and move it to `new`, along with the rest of `utmp`. As part of this, correct an incorrectly spelled `utpname` to `utmpname`. Fixes: 42289eb64f63 "Implement utmp for NetBSD" (backport ) (cherry picked from commit 6a01e2f2c2ef65fc41b1e9db27213eefa2dbe54b) --- libc-test/semver/netbsd.txt | 2 +- src/new/mod.rs | 1 + src/new/netbsd/mod.rs | 1 + src/new/netbsd/utmp_.rs | 32 +++++++++++++++++++++++++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 27 +++------------------- 5 files changed, 38 insertions(+), 25 deletions(-) create mode 100644 src/new/netbsd/utmp_.rs diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index 1f2a04c678632..982f610a4f3aa 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -1623,9 +1623,9 @@ updwtmpx useconds_t utimensat utmp +utmpname utmpx utmpxname -utpname utrace uucred wait4 diff --git a/src/new/mod.rs b/src/new/mod.rs index 9cb6e5b969fe1..e68f32724253a 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -185,6 +185,7 @@ cfg_if! { } else if #[cfg(target_os = "netbsd")] { pub use sys::ipc::*; pub use sys::statvfs::*; + pub use utmp_::*; } else if #[cfg(target_os = "openbsd")] { pub use sys::ipc::*; } diff --git a/src/new/netbsd/mod.rs b/src/new/netbsd/mod.rs index 73bdb8292d6ef..337f9018c848c 100644 --- a/src/new/netbsd/mod.rs +++ b/src/new/netbsd/mod.rs @@ -6,3 +6,4 @@ pub(crate) mod sys; pub(crate) mod unistd; +pub(crate) mod utmp_; diff --git a/src/new/netbsd/utmp_.rs b/src/new/netbsd/utmp_.rs new file mode 100644 index 0000000000000..6179a7924f42e --- /dev/null +++ b/src/new/netbsd/utmp_.rs @@ -0,0 +1,32 @@ +//! Header: `utmp.h` +//! +//! + +use crate::prelude::*; + +pub const UT_NAMESIZE: usize = 8; +pub const UT_LINESIZE: usize = 8; +pub const UT_HOSTSIZE: usize = 16; + +s! { + pub struct lastlog { + pub ll_time: crate::time_t, + pub ll_line: [c_char; UT_LINESIZE], + pub ll_host: [c_char; UT_HOSTSIZE], + } + + pub struct utmp { + pub ut_line: [c_char; UT_LINESIZE], + pub ut_name: [c_char; UT_NAMESIZE], + pub ut_host: [c_char; UT_HOSTSIZE], + pub ut_time: crate::time_t, + } +} + +#[link(name = "util")] +extern "C" { + pub fn utmpname(file: *const c_char) -> c_int; + pub fn setutent(); + pub fn getutent() -> *mut utmp; + pub fn endutent(); +} diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index a3082e7d53cbb..ef389d032134c 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -436,19 +436,6 @@ s! { _shm_internal: *mut c_void, } - pub struct utmp { - pub ut_line: [c_char; UT_LINESIZE], - pub ut_name: [c_char; UT_NAMESIZE], - pub ut_host: [c_char; UT_HOSTSIZE], - pub ut_time: crate::time_t, - } - - pub struct lastlog { - pub ll_line: [c_char; UT_LINESIZE], - pub ll_host: [c_char; UT_HOSTSIZE], - pub ll_time: crate::time_t, - } - pub struct timex { pub modes: c_uint, pub offset: c_long, @@ -1816,9 +1803,6 @@ pub const CHWFLOW: crate::tcflag_t = crate::MDMBUF | crate::CRTSCTS | crate::CDT // pub const _PATH_WTMPX: &[c_char; 14] = b"/var/log/wtmpx"; // pub const _PATH_LASTLOGX: &[c_char; 17] = b"/var/log/lastlogx"; // pub const _PATH_UTMP_UPDATE: &[c_char; 24] = b"/usr/libexec/utmp_update"; -pub const UT_NAMESIZE: usize = 8; -pub const UT_LINESIZE: usize = 8; -pub const UT_HOSTSIZE: usize = 16; pub const _UTX_USERSIZE: usize = 32; pub const _UTX_LINESIZE: usize = 32; pub const _UTX_PADSIZE: usize = 40; @@ -2497,13 +2481,8 @@ extern "C" { pub fn setutxent(); pub fn endutxent(); - pub fn getutmp(ux: *const utmpx, u: *mut utmp); - pub fn getutmpx(u: *const utmp, ux: *mut utmpx); - - pub fn utpname(file: *const c_char) -> c_int; - pub fn setutent(); - pub fn endutent(); - pub fn getutent() -> *mut utmp; + pub fn getutmp(ux: *const utmpx, u: *mut crate::utmp); + pub fn getutmpx(u: *const crate::utmp, ux: *mut utmpx); pub fn efopen(p: *const c_char, m: *const c_char) -> crate::FILE; pub fn emalloc(n: size_t) -> *mut c_void; @@ -2566,7 +2545,7 @@ extern "C" { precision: size_t, ) -> *mut c_char; #[link_name = "__login50"] - pub fn login(ut: *const utmp); + pub fn login(ut: *const crate::utmp); #[link_name = "__loginx50"] pub fn loginx(ut: *const utmpx); pub fn logout(line: *const c_char); From 2276c304c429dfec849965681dc4413e690ae31c Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 28 Oct 2025 22:17:32 -0400 Subject: [PATCH 0996/1228] NetBSD: Introduce `utmpx_.rs`, correct utmpx definitions Create a new module for `utmpx` and move definitions there, then correct `_UTX_PADSIZE`. We can also just use `s!`, there is no need to manually implement the traits. NetBSD defines `_UTX_PADSIZE` manually but includes this comment in their source: /* * This should be: * 40 - (sizeof(struct timeval) - sizeof(struct { long s; long u; }))) * but g++ does not like it, to retain size compatibility with v1.00, * so we do it manually. */ #ifdef _LP64 #define _UTX_PADSIZE 36 #else #define _UTX_PADSIZE 40 #endif I tried using the expression here: 40 - (size_of::() - size_of::<(c_long, c_long)>()); But this returns a value of 8 which doesn't match the expected 36. So, keep with their source and hardcode the values. Link: https://github.com/NetBSD/src/blob/6ace5fed3bd010695a1b88ca6c1f8a5af7793ffb/include/utmpx.h#L91-L101 (backport ) (cherry picked from commit 4055637d36dc795c71cea037066a42224eead2be) --- src/new/mod.rs | 1 + src/new/netbsd/mod.rs | 1 + src/new/netbsd/utmpx_.rs | 82 +++++++++++++++++++++++++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 65 +-------------------- 4 files changed, 85 insertions(+), 64 deletions(-) create mode 100644 src/new/netbsd/utmpx_.rs diff --git a/src/new/mod.rs b/src/new/mod.rs index e68f32724253a..8bbcaba4f5899 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -186,6 +186,7 @@ cfg_if! { pub use sys::ipc::*; pub use sys::statvfs::*; pub use utmp_::*; + pub use utmpx_::*; } else if #[cfg(target_os = "openbsd")] { pub use sys::ipc::*; } diff --git a/src/new/netbsd/mod.rs b/src/new/netbsd/mod.rs index 337f9018c848c..070a544dae81d 100644 --- a/src/new/netbsd/mod.rs +++ b/src/new/netbsd/mod.rs @@ -7,3 +7,4 @@ pub(crate) mod sys; pub(crate) mod unistd; pub(crate) mod utmp_; +pub(crate) mod utmpx_; diff --git a/src/new/netbsd/utmpx_.rs b/src/new/netbsd/utmpx_.rs new file mode 100644 index 0000000000000..6b0762056de5f --- /dev/null +++ b/src/new/netbsd/utmpx_.rs @@ -0,0 +1,82 @@ +//! Header: `utmpx.h` +//! +//! + +use crate::prelude::*; + +// pub const _PATH_UTMPX: &[c_char; 14] = b"/var/run/utmpx"; +// pub const _PATH_WTMPX: &[c_char; 14] = b"/var/log/wtmpx"; +// pub const _PATH_LASTLOGX: &[c_char; 17] = b"/var/log/lastlogx"; +// pub const _PATH_UTMP_UPDATE: &[c_char; 24] = b"/usr/libexec/utmp_update"; + +pub const _UTX_USERSIZE: usize = 32; +pub const _UTX_LINESIZE: usize = 32; +pub const _UTX_IDSIZE: usize = 4; +pub const _UTX_HOSTSIZE: usize = 256; + +pub const EMPTY: u16 = 0; +pub const RUN_LVL: u16 = 1; +pub const BOOT_TIME: u16 = 2; +pub const OLD_TIME: u16 = 3; +pub const NEW_TIME: u16 = 4; +pub const INIT_PROCESS: u16 = 5; +pub const LOGIN_PROCESS: u16 = 6; +pub const USER_PROCESS: u16 = 7; +pub const DEAD_PROCESS: u16 = 8; +pub const ACCOUNTING: u16 = 9; +pub const SIGNATURE: u16 = 10; +pub const DOWN_TIME: u16 = 11; + +// Expression based on the comment in NetBSD source. +pub const _UTX_PADSIZE: usize = if cfg!(target_pointer_width = "64") { + 36 +} else { + 40 +}; + +s! { + pub struct utmpx { + pub ut_name: [c_char; _UTX_USERSIZE], + pub ut_id: [c_char; _UTX_IDSIZE], + pub ut_line: [c_char; _UTX_LINESIZE], + pub ut_host: [c_char; _UTX_HOSTSIZE], + pub ut_session: u16, + pub ut_type: u16, + pub ut_pid: crate::pid_t, + pub ut_exit: __exit_status, // FIXME(netbsd): when anonymous struct are supported + pub ut_ss: crate::sockaddr_storage, + pub ut_tv: crate::timeval, + ut_pad: [u8; _UTX_PADSIZE], + } + + pub struct __exit_status { + pub e_termination: u16, + pub e_exit: u16, + } + + pub struct lastlogx { + pub ll_tv: crate::timeval, + pub ll_line: [c_char; _UTX_LINESIZE], + pub ll_host: [c_char; _UTX_HOSTSIZE], + pub ll_ss: crate::sockaddr_storage, + } +} + +#[link(name = "util")] +extern "C" { + pub fn setutxent(); + pub fn endutxent(); + + pub fn getutxent() -> *mut utmpx; + pub fn getutxid(ut: *const utmpx) -> *mut utmpx; + pub fn getutxline(ut: *const utmpx) -> *mut utmpx; + pub fn pututxline(ut: *const utmpx) -> *mut utmpx; + + pub fn updwtmpx(file: *const c_char, ut: *const utmpx) -> c_int; + pub fn getlastlogx(fname: *const c_char, uid: crate::uid_t, ll: *mut lastlogx) + -> *mut lastlogx; + pub fn updlastlogx(fname: *const c_char, uid: crate::uid_t, ll: *mut lastlogx) -> c_int; + pub fn getutmp(ux: *const utmpx, u: *mut crate::utmp); + pub fn getutmpx(u: *const crate::utmp, ux: *mut utmpx); + pub fn utmpxname(file: *const c_char) -> c_int; +} diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index ef389d032134c..a8840bf628a18 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -419,11 +419,6 @@ s! { pub sdl_data: [c_char; 24], } - pub struct __exit_status { - pub e_termination: u16, - pub e_exit: u16, - } - pub struct shmid_ds { pub shm_perm: crate::ipc_perm, pub shm_segsz: size_t, @@ -780,27 +775,6 @@ s! { pub __tcpi_pad: [u32; 26], } - pub struct utmpx { - pub ut_name: [c_char; _UTX_USERSIZE], - pub ut_id: [c_char; _UTX_IDSIZE], - pub ut_line: [c_char; _UTX_LINESIZE], - pub ut_host: [c_char; _UTX_HOSTSIZE], - pub ut_session: u16, - pub ut_type: u16, - pub ut_pid: crate::pid_t, - pub ut_exit: __exit_status, // FIXME(netbsd): when anonymous struct are supported - pub ut_ss: sockaddr_storage, - pub ut_tv: crate::timeval, - pub ut_pad: [u8; _UTX_PADSIZE], - } - - pub struct lastlogx { - pub ll_tv: crate::timeval, - pub ll_line: [c_char; _UTX_LINESIZE], - pub ll_host: [c_char; _UTX_HOSTSIZE], - pub ll_ss: sockaddr_storage, - } - pub struct in_pktinfo { pub ipi_addr: crate::in_addr, pub ipi_ifindex: c_uint, @@ -1799,28 +1773,6 @@ pub const ONLRET: crate::tcflag_t = 0x40; pub const CDTRCTS: crate::tcflag_t = 0x00020000; pub const CHWFLOW: crate::tcflag_t = crate::MDMBUF | crate::CRTSCTS | crate::CDTRCTS; -// pub const _PATH_UTMPX: &[c_char; 14] = b"/var/run/utmpx"; -// pub const _PATH_WTMPX: &[c_char; 14] = b"/var/log/wtmpx"; -// pub const _PATH_LASTLOGX: &[c_char; 17] = b"/var/log/lastlogx"; -// pub const _PATH_UTMP_UPDATE: &[c_char; 24] = b"/usr/libexec/utmp_update"; -pub const _UTX_USERSIZE: usize = 32; -pub const _UTX_LINESIZE: usize = 32; -pub const _UTX_PADSIZE: usize = 40; -pub const _UTX_IDSIZE: usize = 4; -pub const _UTX_HOSTSIZE: usize = 256; -pub const EMPTY: u16 = 0; -pub const RUN_LVL: u16 = 1; -pub const BOOT_TIME: u16 = 2; -pub const OLD_TIME: u16 = 3; -pub const NEW_TIME: u16 = 4; -pub const INIT_PROCESS: u16 = 5; -pub const LOGIN_PROCESS: u16 = 6; -pub const USER_PROCESS: u16 = 7; -pub const DEAD_PROCESS: u16 = 8; -pub const ACCOUNTING: u16 = 9; -pub const SIGNATURE: u16 = 10; -pub const DOWN_TIME: u16 = 11; - pub const SOCK_CLOEXEC: c_int = 0x10000000; pub const SOCK_NONBLOCK: c_int = 0x20000000; @@ -2469,21 +2421,6 @@ extern "C" { result: *mut *mut crate::group, ) -> c_int; - pub fn updwtmpx(file: *const c_char, ut: *const utmpx) -> c_int; - pub fn getlastlogx(fname: *const c_char, uid: crate::uid_t, ll: *mut lastlogx) - -> *mut lastlogx; - pub fn updlastlogx(fname: *const c_char, uid: crate::uid_t, ll: *mut lastlogx) -> c_int; - pub fn utmpxname(file: *const c_char) -> c_int; - pub fn getutxent() -> *mut utmpx; - pub fn getutxid(ut: *const utmpx) -> *mut utmpx; - pub fn getutxline(ut: *const utmpx) -> *mut utmpx; - pub fn pututxline(ut: *const utmpx) -> *mut utmpx; - pub fn setutxent(); - pub fn endutxent(); - - pub fn getutmp(ux: *const utmpx, u: *mut crate::utmp); - pub fn getutmpx(u: *const crate::utmp, ux: *mut utmpx); - pub fn efopen(p: *const c_char, m: *const c_char) -> crate::FILE; pub fn emalloc(n: size_t) -> *mut c_void; pub fn ecalloc(n: size_t, c: size_t) -> *mut c_void; @@ -2547,7 +2484,7 @@ extern "C" { #[link_name = "__login50"] pub fn login(ut: *const crate::utmp); #[link_name = "__loginx50"] - pub fn loginx(ut: *const utmpx); + pub fn loginx(ut: *const crate::utmpx); pub fn logout(line: *const c_char); pub fn logoutx(line: *const c_char, status: c_int, tpe: c_int); pub fn logwtmp(line: *const c_char, name: *const c_char, host: *const c_char); From 4812dca2e4da4a61d6dc0fc797492e8ba4d5511f Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 28 Oct 2025 20:57:44 -0400 Subject: [PATCH 0997/1228] NetBSD: Introduce `types.rs`, correct the definition of `lwpid_t` This is currently defined as an `unsigned int` but should be `int32_t`. Also move some related definitions `new`. Link: https://github.com/NetBSD/src/blob/6ace5fed3bd010695a1b88ca6c1f8a5af7793ffb/sys/sys/types.h#L200 (backport ) (cherry picked from commit 29464834a1aecefcd1aa14b0a89f4c23d7ee4922) --- src/new/mod.rs | 1 + src/new/netbsd/sys/mod.rs | 1 + src/new/netbsd/sys/types.rs | 16 ++++++++++++++++ src/unix/bsd/netbsdlike/mod.rs | 3 ++- src/unix/bsd/netbsdlike/netbsd/mod.rs | 9 ++------- src/unix/mod.rs | 2 +- 6 files changed, 23 insertions(+), 9 deletions(-) create mode 100644 src/new/netbsd/sys/types.rs diff --git a/src/new/mod.rs b/src/new/mod.rs index 8bbcaba4f5899..41dcdea56bdcb 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -185,6 +185,7 @@ cfg_if! { } else if #[cfg(target_os = "netbsd")] { pub use sys::ipc::*; pub use sys::statvfs::*; + pub use sys::types::*; pub use utmp_::*; pub use utmpx_::*; } else if #[cfg(target_os = "openbsd")] { diff --git a/src/new/netbsd/sys/mod.rs b/src/new/netbsd/sys/mod.rs index 7fab417362739..46031de9eb4cf 100644 --- a/src/new/netbsd/sys/mod.rs +++ b/src/new/netbsd/sys/mod.rs @@ -4,3 +4,4 @@ pub(crate) mod ipc; pub(crate) mod statvfs; +pub(crate) mod types; diff --git a/src/new/netbsd/sys/types.rs b/src/new/netbsd/sys/types.rs new file mode 100644 index 0000000000000..8dfc049426170 --- /dev/null +++ b/src/new/netbsd/sys/types.rs @@ -0,0 +1,16 @@ +//! Header: `sys/types.h` +//! +//! + +use crate::prelude::*; + +pub type dev_t = u64; + +pub type lwpid_t = i32; + +pub type mqd_t = c_int; +pub type cpuid_t = c_ulong; + +pub type clock_t = c_uint; +pub type timer_t = c_int; +pub type suseconds_t = c_int; diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index 948e8d30248a7..ee5371f4963e8 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -704,7 +704,8 @@ extern "C" { pub fn getpriority(which: c_int, who: crate::id_t) -> c_int; pub fn setpriority(which: c_int, who: crate::id_t, prio: c_int) -> c_int; - pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, dev: dev_t) -> c_int; + pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, dev: crate::dev_t) + -> c_int; pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int; pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index a8840bf628a18..ef020a9fc0926 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1,24 +1,19 @@ use crate::prelude::*; use crate::{ cmsghdr, + cpuid_t, + lwpid_t, off_t, }; -pub type clock_t = c_uint; -pub type suseconds_t = c_int; -pub type dev_t = u64; pub type blksize_t = i32; pub type fsblkcnt_t = u64; pub type fsfilcnt_t = u64; pub type idtype_t = c_int; -pub type mqd_t = c_int; type __pthread_spin_t = __cpu_simple_lock_nv_t; -pub type lwpid_t = c_uint; pub type shmatt_t = c_uint; -pub type cpuid_t = c_ulong; pub type cpuset_t = _cpuset; pub type pthread_spin_t = c_uchar; -pub type timer_t = c_int; // elf.h diff --git a/src/unix/mod.rs b/src/unix/mod.rs index c9cf903a0d3aa..3e54201f1e19c 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -60,7 +60,7 @@ s! { pub struct timeval { pub tv_sec: time_t, #[cfg(not(gnu_time_bits64))] - pub tv_usec: suseconds_t, + pub tv_usec: crate::suseconds_t, // For 64 bit time on 32 bit linux glibc, suseconds_t is still // a 32 bit type. Use __suseconds64_t instead #[cfg(gnu_time_bits64)] From 8316764919d8afafe4f7f30b5b51e4560a08dcbc Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 28 Oct 2025 21:44:59 -0400 Subject: [PATCH 0998/1228] NetBSD: Introduce `timex.rs` Move `timex.h` types to the `new/` module. (backport ) (cherry picked from commit fb74b6f9cafdc60afebcbf7016e34daf839d99c4) --- src/new/mod.rs | 1 + src/new/netbsd/sys/mod.rs | 1 + src/new/netbsd/sys/timex.rs | 94 +++++++++++++++++++++++++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 80 ----------------------- 4 files changed, 96 insertions(+), 80 deletions(-) create mode 100644 src/new/netbsd/sys/timex.rs diff --git a/src/new/mod.rs b/src/new/mod.rs index 41dcdea56bdcb..31a224cb67bf8 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -185,6 +185,7 @@ cfg_if! { } else if #[cfg(target_os = "netbsd")] { pub use sys::ipc::*; pub use sys::statvfs::*; + pub use sys::timex::*; pub use sys::types::*; pub use utmp_::*; pub use utmpx_::*; diff --git a/src/new/netbsd/sys/mod.rs b/src/new/netbsd/sys/mod.rs index 46031de9eb4cf..395b82ebd6809 100644 --- a/src/new/netbsd/sys/mod.rs +++ b/src/new/netbsd/sys/mod.rs @@ -4,4 +4,5 @@ pub(crate) mod ipc; pub(crate) mod statvfs; +pub(crate) mod timex; pub(crate) mod types; diff --git a/src/new/netbsd/sys/timex.rs b/src/new/netbsd/sys/timex.rs new file mode 100644 index 0000000000000..d3c279726c396 --- /dev/null +++ b/src/new/netbsd/sys/timex.rs @@ -0,0 +1,94 @@ +//! Header: `sys/timex.h` +//! +//! + +use crate::prelude::*; + +pub const MAXPHASE: c_long = 500000000; +pub const MAXFREQ: c_long = 500000; +pub const MINSEC: c_int = 256; +pub const MAXSEC: c_int = 2048; +pub const NANOSECOND: c_long = 1000000000; +pub const SCALE_PPM: c_int = 65; +pub const MAXTC: c_int = 10; + +pub const MOD_OFFSET: c_uint = 0x0001; +pub const MOD_FREQUENCY: c_uint = 0x0002; +pub const MOD_MAXERROR: c_uint = 0x0004; +pub const MOD_ESTERROR: c_uint = 0x0008; +pub const MOD_STATUS: c_uint = 0x0010; +pub const MOD_TIMECONST: c_uint = 0x0020; +pub const MOD_PPSMAX: c_uint = 0x0040; +pub const MOD_TAI: c_uint = 0x0080; +pub const MOD_MICRO: c_uint = 0x1000; +pub const MOD_NANO: c_uint = 0x2000; +pub const MOD_CLKB: c_uint = 0x4000; +pub const MOD_CLKA: c_uint = 0x8000; + +pub const STA_PLL: c_int = 0x0001; +pub const STA_PPSFREQ: c_int = 0x0002; +pub const STA_PPSTIME: c_int = 0x0004; +pub const STA_FLL: c_int = 0x0008; +pub const STA_INS: c_int = 0x0010; +pub const STA_DEL: c_int = 0x0020; +pub const STA_UNSYNC: c_int = 0x0040; +pub const STA_FREQHOLD: c_int = 0x0080; +pub const STA_PPSSIGNAL: c_int = 0x0100; +pub const STA_PPSJITTER: c_int = 0x0200; +pub const STA_PPSWANDER: c_int = 0x0400; +pub const STA_PPSERROR: c_int = 0x0800; +pub const STA_CLOCKERR: c_int = 0x1000; +pub const STA_NANO: c_int = 0x2000; +pub const STA_MODE: c_int = 0x4000; +pub const STA_CLK: c_int = 0x8000; + +pub const STA_RONLY: c_int = STA_PPSSIGNAL + | STA_PPSJITTER + | STA_PPSWANDER + | STA_PPSERROR + | STA_CLOCKERR + | STA_NANO + | STA_MODE + | STA_CLK; + +pub const TIME_OK: c_int = 0; +pub const TIME_INS: c_int = 1; +pub const TIME_DEL: c_int = 2; +pub const TIME_OOP: c_int = 3; +pub const TIME_WAIT: c_int = 4; +pub const TIME_ERROR: c_int = 5; + +s! { + pub struct ntptimeval { + pub time: crate::timespec, + pub maxerror: c_long, + pub esterror: c_long, + pub tai: c_long, + pub time_state: c_int, + } + + pub struct timex { + pub modes: c_uint, + pub offset: c_long, + pub freq: c_long, + pub maxerror: c_long, + pub esterror: c_long, + pub status: c_int, + pub constant: c_long, + pub precision: c_long, + pub tolerance: c_long, + pub ppsfreq: c_long, + pub jitter: c_long, + pub shift: c_int, + pub stabil: c_long, + pub jitcnt: c_long, + pub calcnt: c_long, + pub errcnt: c_long, + pub stbcnt: c_long, + } +} + +extern "C" { + pub fn ntp_gettime(buf: *mut ntptimeval) -> c_int; + pub fn ntp_adjtime(buf: *mut timex) -> c_int; +} diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index ef020a9fc0926..a1163d8f0eab4 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -426,34 +426,6 @@ s! { _shm_internal: *mut c_void, } - pub struct timex { - pub modes: c_uint, - pub offset: c_long, - pub freq: c_long, - pub maxerror: c_long, - pub esterror: c_long, - pub status: c_int, - pub constant: c_long, - pub precision: c_long, - pub tolerance: c_long, - pub ppsfreq: c_long, - pub jitter: c_long, - pub shift: c_int, - pub stabil: c_long, - pub jitcnt: c_long, - pub calcnt: c_long, - pub errcnt: c_long, - pub stbcnt: c_long, - } - - pub struct ntptimeval { - pub time: crate::timespec, - pub maxerror: c_long, - pub esterror: c_long, - pub tai: c_long, - pub time_state: c_int, - } - // elf.h pub struct Elf32_Phdr { @@ -1368,59 +1340,9 @@ pub const fn _IOC(inout: c_ulong, group: c_ulong, num: c_ulong, len: c_ulong) -> | (num) } -// pub const CLOCK_PROCESS_CPUTIME_ID: crate::clockid_t = 2; pub const CLOCK_THREAD_CPUTIME_ID: crate::clockid_t = 4; pub const NTP_API: c_int = 4; -pub const MAXPHASE: c_long = 500000000; -pub const MAXFREQ: c_long = 500000; -pub const MINSEC: c_int = 256; -pub const MAXSEC: c_int = 2048; -pub const NANOSECOND: c_long = 1000000000; -pub const SCALE_PPM: c_int = 65; -pub const MAXTC: c_int = 10; -pub const MOD_OFFSET: c_uint = 0x0001; -pub const MOD_FREQUENCY: c_uint = 0x0002; -pub const MOD_MAXERROR: c_uint = 0x0004; -pub const MOD_ESTERROR: c_uint = 0x0008; -pub const MOD_STATUS: c_uint = 0x0010; -pub const MOD_TIMECONST: c_uint = 0x0020; -pub const MOD_PPSMAX: c_uint = 0x0040; -pub const MOD_TAI: c_uint = 0x0080; -pub const MOD_MICRO: c_uint = 0x1000; -pub const MOD_NANO: c_uint = 0x2000; -pub const MOD_CLKB: c_uint = 0x4000; -pub const MOD_CLKA: c_uint = 0x8000; -pub const STA_PLL: c_int = 0x0001; -pub const STA_PPSFREQ: c_int = 0x0002; -pub const STA_PPSTIME: c_int = 0x0004; -pub const STA_FLL: c_int = 0x0008; -pub const STA_INS: c_int = 0x0010; -pub const STA_DEL: c_int = 0x0020; -pub const STA_UNSYNC: c_int = 0x0040; -pub const STA_FREQHOLD: c_int = 0x0080; -pub const STA_PPSSIGNAL: c_int = 0x0100; -pub const STA_PPSJITTER: c_int = 0x0200; -pub const STA_PPSWANDER: c_int = 0x0400; -pub const STA_PPSERROR: c_int = 0x0800; -pub const STA_CLOCKERR: c_int = 0x1000; -pub const STA_NANO: c_int = 0x2000; -pub const STA_MODE: c_int = 0x4000; -pub const STA_CLK: c_int = 0x8000; -pub const STA_RONLY: c_int = STA_PPSSIGNAL - | STA_PPSJITTER - | STA_PPSWANDER - | STA_PPSERROR - | STA_CLOCKERR - | STA_NANO - | STA_MODE - | STA_CLK; -pub const TIME_OK: c_int = 0; -pub const TIME_INS: c_int = 1; -pub const TIME_DEL: c_int = 2; -pub const TIME_OOP: c_int = 3; -pub const TIME_WAIT: c_int = 4; -pub const TIME_ERROR: c_int = 5; pub const LITTLE_ENDIAN: c_int = 1234; pub const BIG_ENDIAN: c_int = 4321; @@ -2001,8 +1923,6 @@ safe_f! { } extern "C" { - pub fn ntp_adjtime(buf: *mut timex) -> c_int; - pub fn ntp_gettime(buf: *mut ntptimeval) -> c_int; pub fn clock_nanosleep( clk_id: crate::clockid_t, flags: c_int, From 229203bc8b5fbfc5a59dae191a52907ea3371ff9 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 28 Oct 2025 21:57:11 -0400 Subject: [PATCH 0999/1228] NetBSD: Introduce `time.rs`, fix the values of `CLOCK_*_CPUTIME_ID` Link: https://github.com/NetBSD/src/blob/6ace5fed3bd010695a1b88ca6c1f8a5af7793ffb/sys/sys/time.h#L305-L306 (backport ) (cherry picked from commit 57213d424db1eefa76750a99a99fef57e1667caf) --- src/new/mod.rs | 1 + src/new/netbsd/sys/mod.rs | 1 + src/new/netbsd/sys/time.rs | 13 +++++++++++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 13 +++---------- 4 files changed, 18 insertions(+), 10 deletions(-) create mode 100644 src/new/netbsd/sys/time.rs diff --git a/src/new/mod.rs b/src/new/mod.rs index 31a224cb67bf8..8d8644a7dae94 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -185,6 +185,7 @@ cfg_if! { } else if #[cfg(target_os = "netbsd")] { pub use sys::ipc::*; pub use sys::statvfs::*; + pub use sys::time::*; pub use sys::timex::*; pub use sys::types::*; pub use utmp_::*; diff --git a/src/new/netbsd/sys/mod.rs b/src/new/netbsd/sys/mod.rs index 395b82ebd6809..185c1f1c2cba1 100644 --- a/src/new/netbsd/sys/mod.rs +++ b/src/new/netbsd/sys/mod.rs @@ -4,5 +4,6 @@ pub(crate) mod ipc; pub(crate) mod statvfs; +pub(crate) mod time; pub(crate) mod timex; pub(crate) mod types; diff --git a/src/new/netbsd/sys/time.rs b/src/new/netbsd/sys/time.rs new file mode 100644 index 0000000000000..5f2d39d347e69 --- /dev/null +++ b/src/new/netbsd/sys/time.rs @@ -0,0 +1,13 @@ +//! Header: `sys/time.h` +//! +//! + +s! { + pub struct itimerspec { + pub it_interval: crate::timespec, + pub it_value: crate::timespec, + } +} + +pub const CLOCK_THREAD_CPUTIME_ID: crate::clockid_t = 0x20000000; +pub const CLOCK_PROCESS_CPUTIME_ID: crate::clockid_t = 0x40000000; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index a1163d8f0eab4..7912df861b851 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -167,11 +167,6 @@ s! { pub mq_curmsgs: c_long, } - pub struct itimerspec { - pub it_interval: crate::timespec, - pub it_value: crate::timespec, - } - pub struct sigset_t { __bits: [u32; 4], } @@ -1340,8 +1335,6 @@ pub const fn _IOC(inout: c_ulong, group: c_ulong, num: c_ulong, len: c_ulong) -> | (num) } -pub const CLOCK_PROCESS_CPUTIME_ID: crate::clockid_t = 2; -pub const CLOCK_THREAD_CPUTIME_ID: crate::clockid_t = 4; pub const NTP_API: c_int = 4; pub const LITTLE_ENDIAN: c_int = 1234; @@ -2281,12 +2274,12 @@ extern "C" { // Added in `NetBSD` 10.0 pub fn timerfd_create(clockid: crate::clockid_t, flags: c_int) -> c_int; - pub fn timerfd_gettime(fd: c_int, curr_value: *mut itimerspec) -> c_int; + pub fn timerfd_gettime(fd: c_int, curr_value: *mut crate::itimerspec) -> c_int; pub fn timerfd_settime( fd: c_int, flags: c_int, - new_value: *const itimerspec, - old_value: *mut itimerspec, + new_value: *const crate::itimerspec, + old_value: *mut crate::itimerspec, ) -> c_int; pub fn qsort_r( From a1e111395c1ad7b8fc267975a2adb86142900cc1 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 29 Oct 2025 00:23:36 -0500 Subject: [PATCH 1000/1228] NetBSD: Introduce `if_.rs`, fix the definition of `ifreq` The definition of `struct ifreq` didn't match up. Make a new module for `net/if.h` and fix it there. Note that this drops some trait implementations since the correct API involves unions. (backport ) (cherry picked from commit 8cb1db91b85ac9cd041d471a388d0a5cb90c4e1e) --- libc-test/build.rs | 1 + src/new/mod.rs | 1 + src/new/netbsd/mod.rs | 4 ++ src/new/netbsd/net/if_.rs | 96 +++++++++++++++++++++++++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 76 --------------------- 5 files changed, 102 insertions(+), 76 deletions(-) create mode 100644 src/new/netbsd/net/if_.rs diff --git a/libc-test/build.rs b/libc-test/build.rs index f1317446282f6..e8e847e43d8fb 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1490,6 +1490,7 @@ fn test_netbsd(target: &str) { // Anonymous unions ("ifconf", "ifc_ifcu") => true, + ("ifreq", "ifr_ifru") => true, ("utmpx", "ut_exit") => true, ("posix_spawn_file_actions_entry_t", "fae_data") => true, diff --git a/src/new/mod.rs b/src/new/mod.rs index 8d8644a7dae94..38a0759afb65d 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -183,6 +183,7 @@ cfg_if! { } else if #[cfg(target_vendor = "apple")] { pub use signal::*; } else if #[cfg(target_os = "netbsd")] { + pub use net::if_::*; pub use sys::ipc::*; pub use sys::statvfs::*; pub use sys::time::*; diff --git a/src/new/netbsd/mod.rs b/src/new/netbsd/mod.rs index 070a544dae81d..5db71760c4de9 100644 --- a/src/new/netbsd/mod.rs +++ b/src/new/netbsd/mod.rs @@ -4,6 +4,10 @@ //! * Sys headers: //! * Manual pages: +pub(crate) mod net { + pub(crate) mod if_; +} + pub(crate) mod sys; pub(crate) mod unistd; pub(crate) mod utmp_; diff --git a/src/new/netbsd/net/if_.rs b/src/new/netbsd/net/if_.rs new file mode 100644 index 0000000000000..7cceadfc2b3d6 --- /dev/null +++ b/src/new/netbsd/net/if_.rs @@ -0,0 +1,96 @@ +//! Header: `net/if.h` +//! +//! + +use crate::prelude::*; +use crate::IFNAMSIZ; + +s! { + pub struct if_data { + pub ifi_type: c_uchar, + pub ifi_addrlen: c_uchar, + pub ifi_hdrlen: c_uchar, + pub ifi_link_state: c_int, + pub ifi_mtu: u64, + pub ifi_metric: u64, + pub ifi_baudrate: u64, + pub ifi_ipackets: u64, + pub ifi_ierrors: u64, + pub ifi_opackets: u64, + pub ifi_oerrors: u64, + pub ifi_collisions: u64, + pub ifi_ibytes: u64, + pub ifi_obytes: u64, + pub ifi_imcasts: u64, + pub ifi_omcasts: u64, + pub ifi_iqdrops: u64, + pub ifi_noproto: u64, + pub ifi_lastchange: crate::timespec, + } +} + +pub const IFF_UP: c_int = 0x0001; // interface is up +pub const IFF_BROADCAST: c_int = 0x0002; // broadcast address valid +pub const IFF_DEBUG: c_int = 0x0004; // turn on debugging +pub const IFF_LOOPBACK: c_int = 0x0008; // is a loopback net +pub const IFF_POINTOPOINT: c_int = 0x0010; // interface is point-to-point link +pub const IFF_RUNNING: c_int = 0x0040; // resources allocated +pub const IFF_NOARP: c_int = 0x0080; // no address resolution protocol +pub const IFF_PROMISC: c_int = 0x0100; // receive all packets +pub const IFF_ALLMULTI: c_int = 0x0200; // receive all multicast packets +pub const IFF_OACTIVE: c_int = 0x0400; // transmission in progress +pub const IFF_SIMPLEX: c_int = 0x0800; // can't hear own transmissions +pub const IFF_LINK0: c_int = 0x1000; // per link layer defined bit +pub const IFF_LINK1: c_int = 0x2000; // per link layer defined bit +pub const IFF_LINK2: c_int = 0x4000; // per link layer defined bit +pub const IFF_MULTICAST: c_int = 0x8000; // supports multicast + +s! { + pub struct if_msghdr { + pub ifm_msglen: c_ushort, + pub ifm_version: c_uchar, + pub ifm_type: c_uchar, + pub ifm_addrs: c_int, + pub ifm_flags: c_int, + pub ifm_index: c_ushort, + pub ifm_data: if_data, + } +} + +s_no_extra_traits! { + pub struct ifreq { + pub ifr_name: [c_char; IFNAMSIZ], + pub ifr_ifru: __c_anonymous_ifr_ifru, + } + + pub union __c_anonymous_ifr_ifru { + pub ifru_addr: crate::sockaddr, + pub ifru_dstaddr: crate::sockaddr, + pub ifru_broadaddr: crate::sockaddr, + pub space: crate::sockaddr_storage, + pub ifru_flags: c_short, + pub ifru_addrflags: c_int, + pub ifru_metrics: c_int, + pub ifru_mtu: c_int, + pub ifru_dlt: c_int, + pub ifru_value: c_uint, + pub ifru_data: *mut c_void, + // buf and buflen are deprecated but they contribute to union size + ifru_b: __c_anonymous_ifr_ifru_ifru_b, + } + + struct __c_anonymous_ifr_ifru_ifru_b { + b_buflen: u32, + b_buf: *mut c_void, + } + + pub struct ifconf { + pub ifc_len: c_int, + pub ifc_ifcu: __c_anonymous_ifc_ifcu, + } + + pub union __c_anonymous_ifc_ifcu { + pub ifcu_buf: *mut c_void, + pub ifcu_req: *mut ifreq, + } +} diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 7912df861b851..22c8cb7453778 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -342,38 +342,6 @@ s! { pub int_n_sign_posn: c_char, } - pub struct if_data { - pub ifi_type: c_uchar, - pub ifi_addrlen: c_uchar, - pub ifi_hdrlen: c_uchar, - pub ifi_link_state: c_int, - pub ifi_mtu: u64, - pub ifi_metric: u64, - pub ifi_baudrate: u64, - pub ifi_ipackets: u64, - pub ifi_ierrors: u64, - pub ifi_opackets: u64, - pub ifi_oerrors: u64, - pub ifi_collisions: u64, - pub ifi_ibytes: u64, - pub ifi_obytes: u64, - pub ifi_imcasts: u64, - pub ifi_omcasts: u64, - pub ifi_iqdrops: u64, - pub ifi_noproto: u64, - pub ifi_lastchange: crate::timespec, - } - - pub struct if_msghdr { - pub ifm_msglen: c_ushort, - pub ifm_version: c_uchar, - pub ifm_type: c_uchar, - pub ifm_addrs: c_int, - pub ifm_flags: c_int, - pub ifm_index: c_ushort, - pub ifm_data: if_data, - } - pub struct sockcred { pub sc_pid: crate::pid_t, pub sc_uid: crate::uid_t, @@ -685,15 +653,6 @@ s! { pub descr_str: [c_char; 1], } - pub struct ifreq { - pub _priv: [[c_char; 6]; 24], - } - - pub struct ifconf { - pub ifc_len: c_int, - pub ifc_ifcu: __c_anonymous_ifc_ifcu, - } - pub struct tcp_info { pub tcpi_state: u8, pub __tcpi_ca_state: u8, @@ -797,11 +756,6 @@ s_no_extra_traits! { pub open: __c_anonymous_posix_spawn_fae_open, pub dup2: __c_anonymous_posix_spawn_fae_dup2, } - - pub union __c_anonymous_ifc_ifcu { - pub ifcu_buf: *mut c_void, - pub ifcu_req: *mut ifreq, - } } cfg_if! { @@ -820,21 +774,6 @@ cfg_if! { } } } - - impl Eq for __c_anonymous_ifc_ifcu {} - 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 } - } - } - impl hash::Hash for __c_anonymous_ifc_ifcu { - fn hash(&self, state: &mut H) { - unsafe { - self.ifcu_buf.hash(state); - self.ifcu_req.hash(state); - } - } - } } } @@ -1000,21 +939,6 @@ pub const LOCAL_PEEREID: c_int = 0x0003; // get peer identification pub const LOCAL_CREDS: c_int = 0x0004; // pass credentials to receiver // https://github.com/NetBSD/src/blob/trunk/sys/net/if.h#L373 -pub const IFF_UP: c_int = 0x0001; // interface is up -pub const IFF_BROADCAST: c_int = 0x0002; // broadcast address valid -pub const IFF_DEBUG: c_int = 0x0004; // turn on debugging -pub const IFF_LOOPBACK: c_int = 0x0008; // is a loopback net -pub const IFF_POINTOPOINT: c_int = 0x0010; // interface is point-to-point link -pub const IFF_RUNNING: c_int = 0x0040; // resources allocated -pub const IFF_NOARP: c_int = 0x0080; // no address resolution protocol -pub const IFF_PROMISC: c_int = 0x0100; // receive all packets -pub const IFF_ALLMULTI: c_int = 0x0200; // receive all multicast packets -pub const IFF_OACTIVE: c_int = 0x0400; // transmission in progress -pub const IFF_SIMPLEX: c_int = 0x0800; // can't hear own transmissions -pub const IFF_LINK0: c_int = 0x1000; // per link layer defined bit -pub const IFF_LINK1: c_int = 0x2000; // per link layer defined bit -pub const IFF_LINK2: c_int = 0x4000; // per link layer defined bit -pub const IFF_MULTICAST: c_int = 0x8000; // supports multicast // sys/netinet/in.h // Protocols (RFC 1700) From 21c9579248eeb5c00773e6f745f9532d860a28d1 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 29 Oct 2025 01:44:02 -0500 Subject: [PATCH 1001/1228] NetBSD: Correct a number of symbol link names Relevant source: * `devname`: https://github.com/NetBSD/src/blob/908770859a5d5141adc63c7844190d01db8a18a4/include/stdlib.h#L296 * `getutent`: https://github.com/NetBSD/src/blob/908770859a5d5141adc63c7844190d01db8a18a4/include/utmp.h#L70 * `ntp_gettime`: https://github.com/NetBSD/src/blob/908770859a5d5141adc63c7844190d01db8a18a4/sys/sys/timex.h#L257 * `sched_rr_get_interval`: https://github.com/NetBSD/src/blob/908770859a5d5141adc63c7844190d01db8a18a4/include/sched.h#L50-L51 * `shmctl`: https://github.com/NetBSD/src/blob/908770859a5d5141adc63c7844190d01db8a18a4/sys/sys/shm.h#L2011 * `sig{action,suspend}`: https://github.com/NetBSD/src/blob/908770859a5d5141adc63c7844190d01db8a18a4/include/signal.h#L85-L95 * `{get,set}itimer`: https://github.com/NetBSD/src/blob/908770859a5d5141adc63c7844190d01db8a18a4/sys/sys/time.h#L331-L335 * `timer_{get,set}time`: https://github.com/NetBSD/src/blob/908770859a5d5141adc63c7844190d01db8a18a4/include/time.h#L158-L160 * `utmpx` symbols: https://github.com/NetBSD/src/blob/908770859a5d5141adc63c7844190d01db8a18a4/include/utmpx.h#L135-L150 * `wait4`: https://github.com/NetBSD/src/blob/908770859a5d5141adc63c7844190d01db8a18a4/sys/sys/wait.h#L209 Excluded are `__statvfs90`, `__fstatvfs90`, `__sigaction_siginfo`, `__getmntinfo90`, `__getvfsstat90`which are only present in 10.0+ (the symbol version seems to be N-1). Source: * https://github.com/NetBSD/src/blob/908770859a5d5141adc63c7844190d01db8a18a4/sys/sys/statvfs.h#L160-L168 There is also a deprecated aliases that used to be needed and is removed here. * `__getmntinfo13`: https://github.com/NetBSD/src/blob/62c785e59d064070166dab5d2a4492055effba89/lib/libc/compat/gen/compat___getmntinfo13.c#L49-L50 (backport ) (cherry picked from commit 1816f606144e0263fc2b1ed05b2f6f0e214536f2) --- libc-test/build.rs | 9 +++++++++ src/new/netbsd/sys/timex.rs | 1 + src/new/netbsd/utmp_.rs | 1 + src/new/netbsd/utmpx_.rs | 10 ++++++++++ src/unix/bsd/mod.rs | 5 +++++ src/unix/bsd/netbsdlike/mod.rs | 1 + src/unix/bsd/netbsdlike/netbsd/mod.rs | 6 ++++-- src/unix/mod.rs | 1 + 8 files changed, 32 insertions(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index e8e847e43d8fb..5725a9c8607ff 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1465,6 +1465,15 @@ fn test_netbsd(target: &str) { } }); + cfg.skip_fn_ptrcheck(move |func| { + match func { + // New symbol version present in NetBSD10, but we keep the old versions for NetBSD9 + // compatibility. + "getmntinfo" | "statvfs" | "fstatvfs" | "getvfsstat" | "sigaction" => true, + _ => false, + } + }); + cfg.skip_struct_field_type(move |struct_, field| { // This is a weird union, don't check the type. (struct_.ident() == "ifaddrs" && field.ident() == "ifa_ifu") || diff --git a/src/new/netbsd/sys/timex.rs b/src/new/netbsd/sys/timex.rs index d3c279726c396..82844bf0e732d 100644 --- a/src/new/netbsd/sys/timex.rs +++ b/src/new/netbsd/sys/timex.rs @@ -89,6 +89,7 @@ s! { } extern "C" { + #[link_name = "__ntp_gettime50"] pub fn ntp_gettime(buf: *mut ntptimeval) -> c_int; pub fn ntp_adjtime(buf: *mut timex) -> c_int; } diff --git a/src/new/netbsd/utmp_.rs b/src/new/netbsd/utmp_.rs index 6179a7924f42e..2047449053ce8 100644 --- a/src/new/netbsd/utmp_.rs +++ b/src/new/netbsd/utmp_.rs @@ -27,6 +27,7 @@ s! { extern "C" { pub fn utmpname(file: *const c_char) -> c_int; pub fn setutent(); + #[link_name = "__getutent50"] pub fn getutent() -> *mut utmp; pub fn endutent(); } diff --git a/src/new/netbsd/utmpx_.rs b/src/new/netbsd/utmpx_.rs index 6b0762056de5f..813c8fb69712e 100644 --- a/src/new/netbsd/utmpx_.rs +++ b/src/new/netbsd/utmpx_.rs @@ -67,16 +67,26 @@ extern "C" { pub fn setutxent(); pub fn endutxent(); + #[link_name = "__getutxent50"] pub fn getutxent() -> *mut utmpx; + #[link_name = "__getutxid50"] pub fn getutxid(ut: *const utmpx) -> *mut utmpx; + #[link_name = "__getutxline50"] pub fn getutxline(ut: *const utmpx) -> *mut utmpx; + #[link_name = "__pututxline50"] pub fn pututxline(ut: *const utmpx) -> *mut utmpx; + #[link_name = "__updwtmpx50"] pub fn updwtmpx(file: *const c_char, ut: *const utmpx) -> c_int; + #[link_name = "__getlastlogx50"] pub fn getlastlogx(fname: *const c_char, uid: crate::uid_t, ll: *mut lastlogx) -> *mut lastlogx; + + #[link_name = "__updlastlogx50"] pub fn updlastlogx(fname: *const c_char, uid: crate::uid_t, ll: *mut lastlogx) -> c_int; + #[link_name = "__getutmp50"] pub fn getutmp(ux: *const utmpx, u: *mut crate::utmp); + #[link_name = "__getutmpx50"] pub fn getutmpx(u: *const crate::utmp, ux: *mut utmpx); pub fn utmpxname(file: *const c_char) -> c_int; } diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 9b203f96eddcf..8ab3632968c95 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -730,6 +730,7 @@ extern "C" { )] #[cfg_attr(target_os = "netbsd", link_name = "__sigaltstack14")] pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__sigsuspend14")] pub fn sigsuspend(mask: *const crate::sigset_t) -> c_int; pub fn sem_close(sem: *mut sem_t) -> c_int; pub fn getdtablesize() -> c_int; @@ -804,6 +805,7 @@ extern "C" { all(target_os = "freebsd", any(freebsd12, freebsd11, freebsd10)), link_name = "wait4@FBSD_1.0" )] + #[cfg_attr(target_os = "netbsd", link_name = "__wait450")] pub fn wait4( pid: crate::pid_t, status: *mut c_int, @@ -814,11 +816,13 @@ extern "C" { all(target_os = "macos", target_arch = "x86"), link_name = "getitimer$UNIX2003" )] + #[cfg_attr(target_os = "netbsd", link_name = "__getitimer50")] pub fn getitimer(which: c_int, curr_value: *mut crate::itimerval) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "setitimer$UNIX2003" )] + #[cfg_attr(target_os = "netbsd", link_name = "__setitimer50")] pub fn setitimer( which: c_int, new_value: *const crate::itimerval, @@ -879,6 +883,7 @@ extern "C" { locale: crate::locale_t, ) -> size_t; + #[cfg_attr(target_os = "netbsd", link_name = "__devname50")] pub fn devname(dev: crate::dev_t, mode_t: crate::mode_t) -> *mut c_char; pub fn issetugid() -> c_int; diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index ee5371f4963e8..e1edcf9ffdc07 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -749,6 +749,7 @@ extern "C" { pub fn shmget(key: crate::key_t, size: size_t, shmflg: c_int) -> c_int; 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; + #[cfg_attr(target_os = "netbsd", link_name = "__shmctl50")] pub fn shmctl(shmid: c_int, cmd: c_int, buf: *mut crate::shmid_ds) -> c_int; // DIFF(main): changed to `*const *mut` in e77f551de9 diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 22c8cb7453778..56563ddc386e4 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2124,7 +2124,9 @@ extern "C" { ) -> c_int; pub fn timer_delete(timerid: crate::timer_t) -> c_int; pub fn timer_getoverrun(timerid: crate::timer_t) -> c_int; + #[link_name = "__timer_gettime50"] pub fn timer_gettime(timerid: crate::timer_t, curr_value: *mut crate::itimerspec) -> c_int; + #[link_name = "__timer_settime50"] pub fn timer_settime( timerid: crate::timer_t, flags: c_int, @@ -2150,6 +2152,7 @@ extern "C" { flags: c_int, ) -> *mut c_void; + #[link_name = "__sched_rr_get_interval50"] pub fn sched_rr_get_interval(pid: crate::pid_t, t: *mut crate::timespec) -> c_int; pub fn sched_setparam(pid: crate::pid_t, param: *const crate::sched_param) -> c_int; pub fn sched_getparam(pid: crate::pid_t, param: *mut crate::sched_param) -> c_int; @@ -2192,7 +2195,6 @@ extern "C" { ntargets: size_t, hint: *const c_void, ) -> c_int; - #[link_name = "__getmntinfo13"] pub fn getmntinfo(mntbufp: *mut *mut crate::statvfs, flags: c_int) -> c_int; pub fn getvfsstat(buf: *mut crate::statvfs, bufsize: size_t, flags: c_int) -> c_int; @@ -2239,7 +2241,7 @@ extern "C" { #[link(name = "util")] extern "C" { - #[cfg_attr(target_os = "netbsd", link_name = "__getpwent_r50")] + #[link_name = "__getpwent_r50"] pub fn getpwent_r( pwd: *mut crate::passwd, buf: *mut c_char, diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 3e54201f1e19c..677788e9fc9ad 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1646,6 +1646,7 @@ cfg_if! { target_os = "aix", )))] { extern "C" { + #[cfg_attr(target_os = "netbsd", link_name = "__adjtime50")] #[cfg_attr(gnu_time_bits64, link_name = "__adjtime64")] pub fn adjtime(delta: *const timeval, olddelta: *mut timeval) -> c_int; } From 5cd9f10350d641f26d29495ce6bc2ac07fa89541 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 2 Dec 2025 02:18:41 -0500 Subject: [PATCH 1002/1228] NetBSD: Correct the type of `kinfo_vmentry.kve_path` --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 56563ddc386e4..c21e0a21699a0 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -589,7 +589,7 @@ s! { pub kve_vn_rdev: u64, pub kve_vn_type: u32, pub kve_vn_mode: u32, - pub kve_path: [[c_char; 32]; 32], + pub kve_path: [c_char; crate::PATH_MAX as usize], } pub struct __c_anonymous_posix_spawn_fae_open { From d433afe71a6f56b68ba45a0ea63e1bdd9eefd4c5 Mon Sep 17 00:00:00 2001 From: = <=> Date: Mon, 3 Nov 2025 15:09:44 -0800 Subject: [PATCH 1003/1228] Add missing constants from `unistd.h` (backport ) (cherry picked from commit e654f3a8f08ea01ca7bb69c4ad8c962252b1807c) --- src/new/newlib/unistd.rs | 152 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) diff --git a/src/new/newlib/unistd.rs b/src/new/newlib/unistd.rs index 8d55ee5823315..6b240be9b7698 100644 --- a/src/new/newlib/unistd.rs +++ b/src/new/newlib/unistd.rs @@ -5,3 +5,155 @@ pub use crate::new::common::posix::unistd::{ STDIN_FILENO, STDOUT_FILENO, }; +use crate::prelude::*; + +pub const _SC_ARG_MAX: c_int = 0; +pub const _SC_CHILD_MAX: c_int = 1; +pub const _SC_CLK_TCK: c_int = 2; +pub const _SC_NGROUPS_MAX: c_int = 3; +pub const _SC_OPEN_MAX: c_int = 4; +pub const _SC_JOB_CONTROL: c_int = 5; +pub const _SC_SAVED_IDS: c_int = 6; +pub const _SC_VERSION: c_int = 7; +pub const _SC_PAGESIZE: c_int = 8; +pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; +pub const _SC_NPROCESSORS_CONF: c_int = 9; +pub const _SC_NPROCESSORS_ONLN: c_int = 10; +pub const _SC_PHYS_PAGES: c_int = 11; +pub const _SC_AVPHYS_PAGES: c_int = 12; +pub const _SC_MQ_OPEN_MAX: c_int = 13; +pub const _SC_MQ_PRIO_MAX: c_int = 14; +pub const _SC_RTSIG_MAX: c_int = 15; +pub const _SC_SEM_NSEMS_MAX: c_int = 16; +pub const _SC_SEM_VALUE_MAX: c_int = 17; +pub const _SC_SIGQUEUE_MAX: c_int = 18; +pub const _SC_TIMER_MAX: c_int = 19; +pub const _SC_TZNAME_MAX: c_int = 20; +pub const _SC_ASYNCHRONOUS_IO: c_int = 21; +pub const _SC_FSYNC: c_int = 22; +pub const _SC_MAPPED_FILES: c_int = 23; +pub const _SC_MEMLOCK: c_int = 24; +pub const _SC_MEMLOCK_RANGE: c_int = 25; +pub const _SC_MEMORY_PROTECTION: c_int = 26; +pub const _SC_MESSAGE_PASSING: c_int = 27; +pub const _SC_PRIORITIZED_IO: c_int = 28; +pub const _SC_REALTIME_SIGNALS: c_int = 29; +pub const _SC_SEMAPHORES: c_int = 30; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 31; +pub const _SC_SYNCHRONIZED_IO: c_int = 32; +pub const _SC_TIMERS: c_int = 33; +pub const _SC_AIO_LISTIO_MAX: c_int = 34; +pub const _SC_AIO_MAX: c_int = 35; +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 36; +pub const _SC_DELAYTIMER_MAX: c_int = 37; +pub const _SC_THREAD_KEYS_MAX: c_int = 38; +pub const _SC_THREAD_STACK_MIN: c_int = 39; +pub const _SC_THREAD_THREADS_MAX: c_int = 40; +pub const _SC_TTY_NAME_MAX: c_int = 41; +pub const _SC_THREADS: c_int = 42; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 43; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 44; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 45; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 46; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 47; +pub const _SC_THREAD_PRIO_CEILING: c_int = _SC_THREAD_PRIO_PROTECT; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 48; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 49; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 50; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 51; +pub const _SC_LOGIN_NAME_MAX: c_int = 52; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 53; +pub const _SC_ADVISORY_INFO: c_int = 54; +pub const _SC_ATEXIT_MAX: c_int = 55; +pub const _SC_BARRIERS: c_int = 56; +pub const _SC_BC_BASE_MAX: c_int = 57; +pub const _SC_BC_DIM_MAX: c_int = 58; +pub const _SC_BC_SCALE_MAX: c_int = 59; +pub const _SC_BC_STRING_MAX: c_int = 60; +pub const _SC_CLOCK_SELECTION: c_int = 61; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 62; +pub const _SC_CPUTIME: c_int = 63; +pub const _SC_EXPR_NEST_MAX: c_int = 64; +pub const _SC_HOST_NAME_MAX: c_int = 65; +pub const _SC_IOV_MAX: c_int = 66; +pub const _SC_IPV6: c_int = 67; +pub const _SC_LINE_MAX: c_int = 68; +pub const _SC_MONOTONIC_CLOCK: c_int = 69; +pub const _SC_RAW_SOCKETS: c_int = 70; +pub const _SC_READER_WRITER_LOCKS: c_int = 71; +pub const _SC_REGEXP: c_int = 72; +pub const _SC_RE_DUP_MAX: c_int = 73; +pub const _SC_SHELL: c_int = 74; +pub const _SC_SPAWN: c_int = 75; +pub const _SC_SPIN_LOCKS: c_int = 76; +pub const _SC_SPORADIC_SERVER: c_int = 77; +pub const _SC_SS_REPL_MAX: c_int = 78; +pub const _SC_SYMLOOP_MAX: c_int = 79; +pub const _SC_THREAD_CPUTIME: c_int = 80; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 81; +pub const _SC_TIMEOUTS: c_int = 82; +pub const _SC_TRACE: c_int = 83; +pub const _SC_TRACE_EVENT_FILTER: c_int = 84; +pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 85; +pub const _SC_TRACE_INHERIT: c_int = 86; +pub const _SC_TRACE_LOG: c_int = 87; +pub const _SC_TRACE_NAME_MAX: c_int = 88; +pub const _SC_TRACE_SYS_MAX: c_int = 89; +pub const _SC_TRACE_USER_EVENT_MAX: c_int = 90; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 91; +pub const _SC_V7_ILP32_OFF32: c_int = 92; +pub const _SC_V6_ILP32_OFF32: c_int = _SC_V7_ILP32_OFF32; +pub const _SC_XBS5_ILP32_OFF32: c_int = _SC_V7_ILP32_OFF32; +pub const _SC_V7_ILP32_OFFBIG: c_int = 93; +pub const _SC_V6_ILP32_OFFBIG: c_int = _SC_V7_ILP32_OFFBIG; +pub const _SC_XBS5_ILP32_OFFBIG: c_int = _SC_V7_ILP32_OFFBIG; +pub const _SC_V7_LP64_OFF64: c_int = 94; +pub const _SC_V6_LP64_OFF64: c_int = _SC_V7_LP64_OFF64; +pub const _SC_XBS5_LP64_OFF64: c_int = _SC_V7_LP64_OFF64; +pub const _SC_V7_LPBIG_OFFBIG: c_int = 95; +pub const _SC_V6_LPBIG_OFFBIG: c_int = _SC_V7_LPBIG_OFFBIG; +pub const _SC_XBS5_LPBIG_OFFBIG: c_int = _SC_V7_LPBIG_OFFBIG; +pub const _SC_XOPEN_CRYPT: c_int = 96; +pub const _SC_XOPEN_ENH_I18N: c_int = 97; +pub const _SC_XOPEN_LEGACY: c_int = 98; +pub const _SC_XOPEN_REALTIME: c_int = 99; +pub const _SC_STREAM_MAX: c_int = 100; +pub const _SC_PRIORITY_SCHEDULING: c_int = 101; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 102; +pub const _SC_XOPEN_SHM: c_int = 103; +pub const _SC_XOPEN_STREAMS: c_int = 104; +pub const _SC_XOPEN_UNIX: c_int = 105; +pub const _SC_XOPEN_VERSION: c_int = 106; +pub const _SC_2_CHAR_TERM: c_int = 107; +pub const _SC_2_C_BIND: c_int = 108; +pub const _SC_2_C_DEV: c_int = 109; +pub const _SC_2_FORT_DEV: c_int = 110; +pub const _SC_2_FORT_RUN: c_int = 111; +pub const _SC_2_LOCALEDEF: c_int = 112; +pub const _SC_2_PBS: c_int = 113; +pub const _SC_2_PBS_ACCOUNTING: c_int = 114; +pub const _SC_2_PBS_CHECKPOINT: c_int = 115; +pub const _SC_2_PBS_LOCATE: c_int = 116; +pub const _SC_2_PBS_MESSAGE: c_int = 117; +pub const _SC_2_PBS_TRACK: c_int = 118; +pub const _SC_2_SW_DEV: c_int = 119; +pub const _SC_2_UPE: c_int = 120; +pub const _SC_2_VERSION: c_int = 121; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 122; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 123; +pub const _SC_XOPEN_UUCP: c_int = 124; +pub const _SC_LEVEL1_ICACHE_SIZE: c_int = 125; +pub const _SC_LEVEL1_ICACHE_ASSOC: c_int = 126; +pub const _SC_LEVEL1_ICACHE_LINESIZE: c_int = 127; +pub const _SC_LEVEL1_DCACHE_SIZE: c_int = 128; +pub const _SC_LEVEL1_DCACHE_ASSOC: c_int = 129; +pub const _SC_LEVEL1_DCACHE_LINESIZE: c_int = 130; +pub const _SC_LEVEL2_CACHE_SIZE: c_int = 131; +pub const _SC_LEVEL2_CACHE_ASSOC: c_int = 132; +pub const _SC_LEVEL2_CACHE_LINESIZE: c_int = 133; +pub const _SC_LEVEL3_CACHE_SIZE: c_int = 134; +pub const _SC_LEVEL3_CACHE_ASSOC: c_int = 135; +pub const _SC_LEVEL3_CACHE_LINESIZE: c_int = 136; +pub const _SC_LEVEL4_CACHE_SIZE: c_int = 137; +pub const _SC_LEVEL4_CACHE_ASSOC: c_int = 138; +pub const _SC_LEVEL4_CACHE_LINESIZE: c_int = 139; From 676dd31b8f356445b85f8bade3abd74b3897829e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 1 Dec 2025 22:43:24 -0500 Subject: [PATCH 1004/1228] test: Upgrade ctest --- Cargo.lock | 6 +++--- libc-test/Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 30d8813e9114a..d76ff6d3c7cff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -100,9 +100,9 @@ version = "0.1.0" [[package]] name = "ctest" -version = "0.5.0-beta.1" +version = "0.5.0-beta.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1a85629f6b82fee991771a8e3b927a8a082e12e4bb48b64a43e55476d27b10" +checksum = "2011d1b0af8c72339aab2847f4650561f4a2807ea3797c8abb7525dcbb1fbaf7" dependencies = [ "askama", "cc", @@ -144,7 +144,7 @@ dependencies = [ "annotate-snippets", "cc", "cfg-if", - "ctest 0.5.0-beta.1", + "ctest 0.5.0-beta.2", "glob", "libc", "proc-macro2", diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index a1b54af127ae2..2f83b9659fae3 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -21,7 +21,7 @@ annotate-snippets = { version = "0.11.5", features = ["testing-colors"] } [build-dependencies] cc = "1.2.43" # Use the in-tree `ctest` from the `main` branch via crates.io -ctest = "0.5.0-beta.1" +ctest = "0.5.0-beta.2" regex = "1.12.2" [features] From dd86ef79203c5b4437c6ed851a6650c408e28214 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Wed, 19 Nov 2025 18:38:36 -0800 Subject: [PATCH 1005/1228] Gate `__wasilibc_register_preopened_fd` on WASI This API is only available in WASIp1 and as the libc build for WASIp2 is changing the symbol was recently deleted. This functionality makes sense for WASIp1, but for WASIp2 it's a fundamentally different set of syscalls so this is no longer provided by libc. (backport ) (cherry picked from commit ca20d7d9c30f201ea7501b6fbffe00da1c9daae2) --- src/wasi/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index d6979dd857318..a403648f85fc5 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -793,6 +793,7 @@ extern "C" { timeout: *const timeval, ) -> c_int; + #[cfg(target_env = "p1")] pub fn __wasilibc_register_preopened_fd(fd: c_int, path: *const c_char) -> c_int; pub fn __wasilibc_fd_renumber(fd: c_int, newfd: c_int) -> c_int; pub fn __wasilibc_unlinkat(fd: c_int, path: *const c_char) -> c_int; From 632c2fd44962b949e01853314584a5f3ad27860a Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Sat, 8 Nov 2025 08:31:31 -0700 Subject: [PATCH 1006/1228] Fix pid_t type on redox (backport ) (cherry picked from commit 33c96c930e3bd457bc06fd62241ed4f7cb0fbe16) --- src/unix/redox/mod.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 0002aa420fea3..45d479f94c152 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -28,7 +28,6 @@ pub type suseconds_t = c_int; pub type tcflag_t = u32; pub type time_t = c_longlong; pub type id_t = c_uint; -pub type pid_t = usize; pub type uid_t = c_int; pub type gid_t = c_int; @@ -247,7 +246,7 @@ s! { } pub struct ucred { - pub pid: pid_t, + pub pid: crate::pid_t, pub uid: uid_t, pub gid: gid_t, } From 7a709ffa51e2d93722b011bbaffe35bef8163caa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Nov 2025 15:39:27 +0000 Subject: [PATCH 1007/1228] build(deps): bump vmactions/solaris-vm from 1.1.5 to 1.1.6 Bumps [vmactions/solaris-vm](https://github.com/vmactions/solaris-vm) from 1.1.5 to 1.1.6. - [Release notes](https://github.com/vmactions/solaris-vm/releases) - [Commits](https://github.com/vmactions/solaris-vm/compare/v1.1.5...v1.1.6) --- updated-dependencies: - dependency-name: vmactions/solaris-vm dependency-version: 1.1.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] (backport ) (cherry picked from commit 7b336ae69d21022f21a1e2a71d3e312b7d572c5b) --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 48b982f7a963f..e523d2927b4d0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -272,7 +272,7 @@ jobs: steps: - uses: actions/checkout@v5 - name: test on Solaris - uses: vmactions/solaris-vm@v1.1.5 + uses: vmactions/solaris-vm@v1.1.6 if: contains(matrix.target, 'solaris') with: release: "11.4-gcc" From db87685208970d489f48d81850f9bb6b5bae9590 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Wed, 19 Nov 2025 18:58:45 -0800 Subject: [PATCH 1008/1228] Update wasi-sdk in CI, plus some script updates * Update to wasi-sdk-29 which is the latest * Pass `-Clink-self-contained=n` instead of `-Ctarget-feature=-crt-static` (which didn't work) to force using the external libc. (backport ) (cherry picked from commit 6259f3a35fb6cde8494f12502c0428184411e731) --- ci/docker/wasm32-wasip1/Dockerfile | 2 +- ci/docker/wasm32-wasip2/Dockerfile | 2 +- ci/wasi.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/docker/wasm32-wasip1/Dockerfile b/ci/docker/wasm32-wasip1/Dockerfile index 419159a0b1380..93258ac7e4422 100644 --- a/ci/docker/wasm32-wasip1/Dockerfile +++ b/ci/docker/wasm32-wasip1/Dockerfile @@ -10,7 +10,7 @@ RUN /wasi.sh # library. ENV CARGO_TARGET_WASM32_WASIP1_RUNNER=wasmtime \ CARGO_TARGET_WASM32_WASIP1_LINKER=/opt/wasi-sdk/bin/clang \ - CARGO_TARGET_WASM32_WASIP1_RUSTFLAGS="-lwasi-emulated-process-clocks -Ctarget-feature=-crt-static" \ + CARGO_TARGET_WASM32_WASIP1_RUSTFLAGS="-Clink-self-contained=n -lwasi-emulated-process-clocks" \ CC_wasm32_wasip1=/opt/wasi-sdk/bin/clang \ CFLAGS_wasm32_wasip1=-D_WASI_EMULATED_PROCESS_CLOCKS \ PATH=$PATH:/rust/bin:/wasmtime diff --git a/ci/docker/wasm32-wasip2/Dockerfile b/ci/docker/wasm32-wasip2/Dockerfile index 8d819b36e5c15..a8da1e212333e 100644 --- a/ci/docker/wasm32-wasip2/Dockerfile +++ b/ci/docker/wasm32-wasip2/Dockerfile @@ -9,7 +9,7 @@ RUN /wasi.sh # itself, this should be fixed upstream. ENV CARGO_TARGET_WASM32_WASIP2_RUNNER=wasmtime \ CARGO_TARGET_WASM32_WASIP2_LINKER=/opt/wasi-sdk/bin/clang \ - CARGO_TARGET_WASM32_WASIP2_RUSTFLAGS="-lwasi-emulated-process-clocks -Ctarget-feature=-crt-static -Clink-arg=-Wl,--export,cabi_realloc" \ + CARGO_TARGET_WASM32_WASIP2_RUSTFLAGS="-Clink-self-contained=n -lwasi-emulated-process-clocks -Clink-arg=-Wl,--export,cabi_realloc" \ CC_wasm32_wasip2=/opt/wasi-sdk/bin/clang \ CFLAGS_wasm32_wasip2=-D_WASI_EMULATED_PROCESS_CLOCKS \ PATH=$PATH:/rust/bin:/wasmtime diff --git a/ci/wasi.sh b/ci/wasi.sh index f0d8a5245c99b..2648aa38207d7 100755 --- a/ci/wasi.sh +++ b/ci/wasi.sh @@ -12,7 +12,7 @@ apt-get install -y --no-install-recommends \ # Wasmtime is used to execute tests and wasi-sdk is used to compile tests. # Download appropriate versions here and configure various flags below. wasmtime=38.0.2 -wasi_sdk=27 +wasi_sdk=29 curl -L https://github.com/bytecodealliance/wasmtime/releases/download/v$wasmtime/wasmtime-v$wasmtime-x86_64-linux.tar.xz | tar xJf - From 4103a4be31a62c3188cf375b997e5b3c2eb6fa6b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 2 Dec 2025 02:51:41 -0500 Subject: [PATCH 1009/1228] DragonflyBSD: Fix the type of `mcontext_t.mc_fpregs` --- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 7596fe4fb0bc8..9396cc128608c 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -513,7 +513,7 @@ s! { pub mc_ownedfp: c_uint, __reserved: c_uint, __unused: [c_uint; 8], - pub mc_fpregs: [[c_uint; 8]; 32], + pub mc_fpregs: [c_uint; 256], } // FIXME(1.0): This should not implement `PartialEq` From 662f767896ca7e5f4785a098205be2f30cd5e6e4 Mon Sep 17 00:00:00 2001 From: mbyx Date: Thu, 6 Nov 2025 18:30:02 +0500 Subject: [PATCH 1010/1228] libc: add PartialEq, Eq, and Hash trait implementations for Padding. (backport ) (cherry picked from commit cbc178b298c0afe83f23b90c43f6355c1fc5d9ab) --- src/types.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/types.rs b/src/types.rs index 7d49a425d59ea..4a7514564b22b 100644 --- a/src/types.rs +++ b/src/types.rs @@ -1,5 +1,7 @@ //! Platform-agnostic support types. +#[cfg(feature = "extra_traits")] +use core::hash::Hash; use core::mem::MaybeUninit; use crate::prelude::*; @@ -30,6 +32,24 @@ impl fmt::Debug for Padding { } } +/// Do nothing when hashing to ignore the existence of padding fields. +#[cfg(feature = "extra_traits")] +impl Hash for Padding { + fn hash(&self, _state: &mut H) {} +} + +/// Padding fields are all equal, regardless of what is inside them, so they do not affect anything. +#[cfg(feature = "extra_traits")] +impl PartialEq for Padding { + fn eq(&self, _other: &Self) -> bool { + true + } +} + +/// Mark that `Padding` implements `Eq` so that it can be used in types that implement it. +#[cfg(feature = "extra_traits")] +impl Eq for Padding {} + /// The default repr type used for C style enums in Rust. #[cfg(target_env = "msvc")] #[allow(unused)] From ac7a5750303b2d4fdcf3bc21faffd3d896c6cbf1 Mon Sep 17 00:00:00 2001 From: mbyx Date: Thu, 6 Nov 2025 18:30:32 +0500 Subject: [PATCH 1011/1228] libc: wrap padding fields with Padding newtype. (backport ) (cherry picked from commit c4dcfd23f00ec3fe6b7a2a67416084c174222754) --- src/fuchsia/aarch64.rs | 16 +++--- src/fuchsia/mod.rs | 56 +++++++++---------- src/fuchsia/riscv64.rs | 8 +-- src/fuchsia/x86_64.rs | 12 ++-- src/hermit.rs | 4 +- src/new/linux_uapi/linux/can.rs | 2 +- src/unix/aix/mod.rs | 4 +- src/unix/bsd/apple/mod.rs | 28 +++++----- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 16 +++--- .../bsd/freebsdlike/freebsd/freebsd11/b32.rs | 2 +- .../bsd/freebsdlike/freebsd/freebsd12/mod.rs | 4 +- .../bsd/freebsdlike/freebsd/freebsd13/mod.rs | 4 +- .../bsd/freebsdlike/freebsd/freebsd14/mod.rs | 4 +- .../bsd/freebsdlike/freebsd/freebsd15/mod.rs | 4 +- src/unix/bsd/freebsdlike/freebsd/mod.rs | 14 ++--- src/unix/bsd/freebsdlike/mod.rs | 20 +++---- src/unix/bsd/netbsdlike/netbsd/mod.rs | 36 ++++++------ src/unix/bsd/netbsdlike/openbsd/mod.rs | 20 +++---- src/unix/cygwin/mod.rs | 8 +-- src/unix/haiku/mod.rs | 24 ++++---- src/unix/haiku/native.rs | 2 +- src/unix/hurd/mod.rs | 32 +++++------ src/unix/linux_like/android/b32/arm.rs | 2 +- src/unix/linux_like/android/b32/mod.rs | 8 +-- .../linux_like/android/b64/aarch64/mod.rs | 18 +++--- src/unix/linux_like/android/b64/mod.rs | 2 +- .../linux_like/android/b64/riscv64/mod.rs | 16 +++--- src/unix/linux_like/android/b64/x86_64/mod.rs | 12 ++-- src/unix/linux_like/android/mod.rs | 8 +-- src/unix/linux_like/emscripten/mod.rs | 26 ++++----- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 22 ++++---- src/unix/linux_like/linux/gnu/b32/csky/mod.rs | 22 ++++---- src/unix/linux_like/linux/gnu/b32/m68k/mod.rs | 8 +-- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 30 +++++----- src/unix/linux_like/linux/gnu/b32/mod.rs | 20 +++---- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 8 +-- .../linux_like/linux/gnu/b32/riscv32/mod.rs | 14 ++--- .../linux_like/linux/gnu/b32/sparc/mod.rs | 34 +++++------ src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 32 +++++------ .../linux_like/linux/gnu/b64/aarch64/mod.rs | 26 ++++----- .../linux/gnu/b64/loongarch64/mod.rs | 18 +++--- .../linux_like/linux/gnu/b64/mips64/mod.rs | 32 +++++------ src/unix/linux_like/linux/gnu/b64/mod.rs | 4 +- .../linux_like/linux/gnu/b64/powerpc64/mod.rs | 20 +++---- .../linux_like/linux/gnu/b64/riscv64/mod.rs | 16 +++--- src/unix/linux_like/linux/gnu/b64/s390x.rs | 20 +++---- .../linux_like/linux/gnu/b64/sparc64/mod.rs | 26 ++++----- .../linux_like/linux/gnu/b64/x86_64/mod.rs | 28 +++++----- src/unix/linux_like/linux/gnu/mod.rs | 16 +++--- src/unix/linux_like/linux/mod.rs | 20 +++---- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 24 ++++---- src/unix/linux_like/linux/musl/b32/hexagon.rs | 22 ++++---- .../linux_like/linux/musl/b32/mips/mod.rs | 40 ++++++------- src/unix/linux_like/linux/musl/b32/powerpc.rs | 32 +++++------ .../linux_like/linux/musl/b32/riscv32/mod.rs | 26 ++++----- src/unix/linux_like/linux/musl/b32/x86/mod.rs | 26 ++++----- .../linux_like/linux/musl/b64/aarch64/mod.rs | 18 +++--- .../linux/musl/b64/loongarch64/mod.rs | 12 ++-- src/unix/linux_like/linux/musl/b64/mips64.rs | 26 ++++----- src/unix/linux_like/linux/musl/b64/mod.rs | 8 +-- .../linux_like/linux/musl/b64/powerpc64.rs | 14 ++--- .../linux_like/linux/musl/b64/riscv64/mod.rs | 12 ++-- src/unix/linux_like/linux/musl/b64/s390x.rs | 8 +-- .../linux_like/linux/musl/b64/wasm32/mod.rs | 12 ++-- .../linux_like/linux/musl/b64/x86_64/mod.rs | 18 +++--- src/unix/linux_like/linux/musl/mod.rs | 14 ++--- src/unix/linux_like/linux/uclibc/arm/mod.rs | 36 ++++++------ .../linux/uclibc/mips/mips32/mod.rs | 34 +++++------ .../linux/uclibc/mips/mips64/mod.rs | 32 +++++------ .../linux_like/linux/uclibc/x86_64/mod.rs | 24 ++++---- src/unix/linux_like/mod.rs | 10 ++-- src/unix/mod.rs | 30 +++++----- src/unix/newlib/vita/mod.rs | 2 +- src/unix/nto/mod.rs | 42 +++++++------- src/unix/nto/neutrino.rs | 6 +- src/unix/nto/x86_64.rs | 4 +- src/unix/nuttx/mod.rs | 16 +++--- src/unix/redox/mod.rs | 4 +- src/unix/solarish/mod.rs | 32 +++++------ src/wasi/mod.rs | 4 +- 80 files changed, 708 insertions(+), 708 deletions(-) diff --git a/src/fuchsia/aarch64.rs b/src/fuchsia/aarch64.rs index 577f0d99cf24d..93090f7238d7a 100644 --- a/src/fuchsia/aarch64.rs +++ b/src/fuchsia/aarch64.rs @@ -15,10 +15,10 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad0: c_ulong, + __pad0: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, - __pad1: c_int, + __pad1: Padding, pub st_blocks: crate::blkcnt_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -26,7 +26,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_uint; 2], + __unused: Padding<[c_uint; 2]>, } pub struct stat64 { @@ -37,10 +37,10 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad0: c_ulong, + __pad0: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, - __pad1: c_int, + __pad1: Padding, pub st_blocks: crate::blkcnt_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -48,7 +48,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_uint; 2], + __unused: Padding<[c_uint; 2]>, } pub struct ipc_perm { @@ -59,8 +59,8 @@ s! { pub cgid: crate::gid_t, pub mode: crate::mode_t, pub __seq: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __unused1: Padding, + __unused2: Padding, } } diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 35046446c4476..14fd1742ad383 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -121,46 +121,46 @@ s! { pub ru_stime: timeval, pub ru_maxrss: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad1: u32, + __pad1: Padding, pub ru_ixrss: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad2: u32, + __pad2: Padding, pub ru_idrss: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad3: u32, + __pad3: Padding, pub ru_isrss: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad4: u32, + __pad4: Padding, pub ru_minflt: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad5: u32, + __pad5: Padding, pub ru_majflt: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad6: u32, + __pad6: Padding, pub ru_nswap: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad7: u32, + __pad7: Padding, pub ru_inblock: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad8: u32, + __pad8: Padding, pub ru_oublock: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad9: u32, + __pad9: Padding, pub ru_msgsnd: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad10: u32, + __pad10: Padding, pub ru_msgrcv: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad11: u32, + __pad11: Padding, pub ru_nsignals: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad12: u32, + __pad12: Padding, pub ru_nvcsw: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad13: u32, + __pad13: Padding, pub ru_nivcsw: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad14: u32, + __pad14: Padding, } pub struct in_addr { @@ -432,11 +432,11 @@ s! { pub gl_offs: size_t, pub gl_flags: c_int, - __unused1: *mut c_void, - __unused2: *mut c_void, - __unused3: *mut c_void, - __unused4: *mut c_void, - __unused5: *mut c_void, + __unused1: Padding<*mut c_void>, + __unused2: Padding<*mut c_void>, + __unused3: Padding<*mut c_void>, + __unused4: Padding<*mut c_void>, + __unused5: Padding<*mut c_void>, } pub struct ifaddrs { @@ -521,7 +521,7 @@ s! { pub ssi_stime: u64, pub ssi_addr: u64, pub ssi_addr_lsb: u16, - _pad2: u16, + _pad2: Padding, pub ssi_syscall: i32, pub ssi_call_addr: u64, pub ssi_arch: u32, @@ -778,8 +778,8 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: c_ulong, - __pad1: c_ulong, - __pad2: c_ulong, + __pad1: Padding, + __pad2: Padding, } pub struct msqid_ds { @@ -792,8 +792,8 @@ s! { pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __pad1: c_ulong, - __pad2: c_ulong, + __pad1: Padding, + __pad2: Padding, } pub struct statfs { @@ -816,10 +816,10 @@ s! { pub msg_namelen: crate::socklen_t, pub msg_iov: *mut crate::iovec, pub msg_iovlen: c_int, - __pad1: c_int, + __pad1: Padding, pub msg_control: *mut c_void, pub msg_controllen: crate::socklen_t, - __pad2: crate::socklen_t, + __pad2: Padding, pub msg_flags: c_int, } @@ -905,7 +905,7 @@ s! { pub struct sockaddr_storage { pub ss_family: sa_family_t, - __ss_pad2: [u8; 128 - 2 - 8], + __ss_pad2: Padding<[u8; 128 - 2 - 8]>, __ss_align: size_t, } @@ -962,7 +962,7 @@ s! { pub struct sockaddr_nl { pub nl_family: crate::sa_family_t, - nl_pad: c_ushort, + nl_pad: Padding, pub nl_pid: u32, pub nl_groups: u32, } diff --git a/src/fuchsia/riscv64.rs b/src/fuchsia/riscv64.rs index c57d52aad1386..bc93cc3bff0a9 100644 --- a/src/fuchsia/riscv64.rs +++ b/src/fuchsia/riscv64.rs @@ -17,7 +17,7 @@ s! { pub st_mode: crate::mode_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - __pad0: c_int, + __pad0: Padding, pub st_rdev: crate::dev_t, pub st_size: off_t, pub st_blksize: crate::blksize_t, @@ -28,7 +28,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_long; 3], + __unused: Padding<[c_long; 3]>, } // Not actually used, IPC calls just return ENOSYS @@ -40,7 +40,7 @@ s! { pub cgid: crate::gid_t, pub mode: crate::mode_t, pub __seq: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __unused1: Padding, + __unused2: Padding, } } diff --git a/src/fuchsia/x86_64.rs b/src/fuchsia/x86_64.rs index 2ce21e20fefc4..fc42cd9810985 100644 --- a/src/fuchsia/x86_64.rs +++ b/src/fuchsia/x86_64.rs @@ -14,7 +14,7 @@ s! { pub st_mode: crate::mode_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - __pad0: c_int, + __pad0: Padding, pub st_rdev: crate::dev_t, pub st_size: off_t, pub st_blksize: crate::blksize_t, @@ -25,7 +25,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_long; 3], + __unused: Padding<[c_long; 3]>, } pub struct stat64 { @@ -35,7 +35,7 @@ s! { pub st_mode: crate::mode_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - __pad0: c_int, + __pad0: Padding, pub st_rdev: crate::dev_t, pub st_size: off_t, pub st_blksize: crate::blksize_t, @@ -46,7 +46,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __reserved: [c_long; 3], + __reserved: Padding<[c_long; 3]>, } pub struct mcontext_t { @@ -61,8 +61,8 @@ s! { pub cgid: crate::gid_t, pub mode: crate::mode_t, pub __seq: c_int, - __unused1: c_long, - __unused2: c_long, + __unused1: Padding, + __unused2: Padding, } pub struct ucontext_t { diff --git a/src/hermit.rs b/src/hermit.rs index b96be6b0e2a2f..e8699228b6001 100644 --- a/src/hermit.rs +++ b/src/hermit.rs @@ -87,9 +87,9 @@ s! { pub struct sockaddr_storage { pub ss_len: u8, pub ss_family: sa_family_t, - __ss_pad1: [u8; 6], + __ss_pad1: Padding<[u8; 6]>, __ss_align: i64, - __ss_pad2: [u8; 112], + __ss_pad2: Padding<[u8; 112]>, } pub struct stat { diff --git a/src/new/linux_uapi/linux/can.rs b/src/new/linux_uapi/linux/can.rs index 108a90b1a92c6..8019124749c1e 100644 --- a/src/new/linux_uapi/linux/can.rs +++ b/src/new/linux_uapi/linux/can.rs @@ -41,7 +41,7 @@ s! { pub can_id: canid_t, // FIXME(1.0): this field was renamed to `len` in Linux 5.11 pub can_dlc: u8, - __pad: u8, + __pad: Padding, __res0: u8, pub len8_dlc: u8, pub data: [u8; CAN_MAX_DLEN], diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 417b4a413300a..356d2a0c402da 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -250,9 +250,9 @@ s! { pub struct sockaddr_storage { pub __ss_len: c_uchar, pub ss_family: sa_family_t, - __ss_pad1: [c_char; 6], + __ss_pad1: Padding<[c_char; 6]>, __ss_align: crate::int64_t, - __ss_pad2: [c_char; 1265], + __ss_pad2: Padding<[c_char; 1265]>, } pub struct sockaddr_un { diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 3080a3c27901c..f0443666b22f4 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -284,18 +284,18 @@ s! { pub struct glob_t { pub gl_pathc: size_t, - __unused1: c_int, + __unused1: Padding, pub gl_offs: size_t, - __unused2: c_int, + __unused2: Padding, pub gl_pathv: *mut *mut c_char, - __unused3: *mut c_void, + __unused3: Padding<*mut c_void>, - __unused4: *mut c_void, - __unused5: *mut c_void, - __unused6: *mut c_void, - __unused7: *mut c_void, - __unused8: *mut c_void, + __unused4: Padding<*mut c_void>, + __unused5: Padding<*mut c_void>, + __unused6: Padding<*mut c_void>, + __unused7: Padding<*mut c_void>, + __unused8: Padding<*mut c_void>, } pub struct addrinfo { @@ -365,7 +365,7 @@ s! { pub si_addr: *mut c_void, //Requires it to be union for tests //pub si_value: crate::sigval, - _pad: [usize; 9], + _pad: Padding<[usize; 9]>, } pub struct sigaction { @@ -1142,7 +1142,7 @@ s! { pub tcpi_state: u8, pub tcpi_snd_wscale: u8, pub tcpi_rcv_wscale: u8, - __pad1: u8, + __pad1: Padding, pub tcpi_options: u32, pub tcpi_flags: u32, pub tcpi_rto: u32, @@ -1170,7 +1170,7 @@ s! { pub tcpi_tfo_send_blackhole: u32, pub tcpi_tfo_recv_blackhole: u32, pub tcpi_tfo_onebyte_proxy: u32, - __pad2: u32, + __pad2: Padding, pub tcpi_txpackets: u64, pub tcpi_txbytes: u64, pub tcpi_txretransmitbytes: u64, @@ -1406,9 +1406,9 @@ s! { pub struct sockaddr_storage { pub ss_len: u8, pub ss_family: crate::sa_family_t, - __ss_pad1: [u8; 6], + __ss_pad1: Padding<[u8; 6]>, __ss_align: i64, - __ss_pad2: [u8; 112], + __ss_pad2: Padding<[u8; 112]>, } pub struct utmpx { @@ -1426,7 +1426,7 @@ s! { pub sigev_notify: c_int, pub sigev_signo: c_int, pub sigev_value: crate::sigval, - __unused1: *mut c_void, //actually a function pointer + __unused1: Padding<*mut c_void>, //actually a function pointer pub sigev_notify_attributes: *mut crate::pthread_attr_t, } diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 9396cc128608c..5c1aa9d1774be 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -438,8 +438,8 @@ s! { pub d_fileno: crate::ino_t, pub d_namlen: u16, pub d_type: u8, - __unused1: u8, - __unused2: u32, + __unused1: Padding, + __unused2: Padding, pub d_name: [c_char; 256], } @@ -472,13 +472,13 @@ s! { pub sigev_notify: c_int, // The union is 8-byte in size, so it is aligned at a 8-byte offset. #[cfg(target_pointer_width = "64")] - __unused1: c_int, + __unused1: Padding, pub sigev_signo: c_int, //actually a union // pad the union #[cfg(target_pointer_width = "64")] - __unused2: c_int, + __unused2: Padding, pub sigev_value: crate::sigval, - __unused3: *mut c_void, //actually a function pointer + __unused3: Padding<*mut c_void>, //actually a function pointer } pub struct mcontext_t { @@ -511,8 +511,8 @@ s! { pub mc_len: c_uint, pub mc_fpformat: c_uint, pub mc_ownedfp: c_uint, - __reserved: c_uint, - __unused: [c_uint; 8], + __reserved: Padding, + __unused: Padding<[c_uint; 8]>, pub mc_fpregs: [c_uint; 256], } @@ -525,7 +525,7 @@ s! { pub uc_stack: stack_t, pub uc_cofunc: Option, pub uc_arg: *mut c_void, - __pad: [c_int; 4], + __pad: Padding<[c_int; 4]>, } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs index 8a8f6b4f10126..cd0c3e071012f 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs @@ -24,6 +24,6 @@ s! { pub st_lspare: i32, pub st_birthtime: crate::time_t, pub st_birthtime_nsec: c_long, - __unused: [u8; 8], + __unused: Padding<[u8; 8]>, } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index 41b9e32c039b0..bbce4af5e3eef 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -260,9 +260,9 @@ s! { pub d_off: off_t, pub d_reclen: u16, pub d_type: u8, - d_pad0: u8, + d_pad0: Padding, pub d_namlen: u16, - d_pad1: u16, + d_pad1: Padding, pub d_name: [c_char; 256], } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs index aea817bbd4f17..2f7dc72342898 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -273,9 +273,9 @@ s! { pub d_off: off_t, pub d_reclen: u16, pub d_type: u8, - d_pad0: u8, + d_pad0: Padding, pub d_namlen: u16, - d_pad1: u16, + d_pad1: Padding, pub d_name: [c_char; 256], } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index 89b435895a5e3..c5c262ab68d32 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -275,9 +275,9 @@ s! { pub d_off: off_t, pub d_reclen: u16, pub d_type: u8, - d_pad0: u8, + d_pad0: Padding, pub d_namlen: u16, - d_pad1: u16, + d_pad1: Padding, pub d_name: [c_char; 256], } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index 59a4344779d10..4031a078b995d 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -277,9 +277,9 @@ s! { pub d_off: off_t, pub d_reclen: u16, pub d_type: u8, - d_pad0: u8, + d_pad0: Padding, pub d_namlen: u16, - d_pad1: u16, + d_pad1: Padding, pub d_name: [c_char; 256], } diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index a040efddbf72d..c3542abb1794c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -320,8 +320,8 @@ s! { pub struct msqid_ds { pub msg_perm: crate::ipc_perm, - __unused1: *mut c_void, - __unused2: *mut c_void, + __unused1: Padding<*mut c_void>, + __unused2: Padding<*mut c_void>, pub msg_cbytes: crate::msglen_t, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, @@ -1119,7 +1119,7 @@ s! { pub struct shm_largepage_conf { pub psind: c_int, pub alloc_policy: c_int, - __pad: [c_int; 10], + __pad: Padding<[c_int; 10]>, } pub struct memory_type { @@ -1454,7 +1454,7 @@ s! { pub mq_maxmsg: c_long, pub mq_msgsize: c_long, pub mq_curmsgs: c_long, - __reserved: [c_long; 4], + __reserved: Padding<[c_long; 4]>, } pub struct ptsstat { @@ -1590,7 +1590,7 @@ s! { pub struct sctp_error_invalid_stream { pub cause: sctp_error_cause, pub stream_id: u16, - __reserved: u16, + __reserved: Padding, } #[repr(packed)] @@ -1640,11 +1640,11 @@ s! { pub kf_fd: c_int, pub kf_ref_count: c_int, pub kf_flags: c_int, - _kf_pad0: c_int, + _kf_pad0: Padding, pub kf_offset: i64, _priv: [u8; 304], // FIXME(freebsd): this is really a giant union pub kf_status: u16, - _kf_pad1: u16, + _kf_pad1: Padding, _kf_ispare0: c_int, pub kf_cap_rights: crate::cap_rights_t, _kf_cap_spare: u64, diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index a8653d702a046..4dc4e4a20207e 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -113,12 +113,12 @@ s! { pub gl_offs: size_t, pub gl_flags: c_int, pub gl_pathv: *mut *mut c_char, - __unused3: *mut c_void, - __unused4: *mut c_void, - __unused5: *mut c_void, - __unused6: *mut c_void, - __unused7: *mut c_void, - __unused8: *mut c_void, + __unused3: Padding<*mut c_void>, + __unused4: Padding<*mut c_void>, + __unused5: Padding<*mut c_void>, + __unused6: Padding<*mut c_void>, + __unused7: Padding<*mut c_void>, + __unused8: Padding<*mut c_void>, } pub struct addrinfo { @@ -145,8 +145,8 @@ s! { pub si_status: c_int, pub si_addr: *mut c_void, pub si_value: crate::sigval, - _pad1: c_long, - _pad2: [c_int; 7], + _pad1: Padding, + _pad2: Padding<[c_int; 7]>, } pub struct sigaction { @@ -385,9 +385,9 @@ s! { pub struct sockaddr_storage { pub ss_len: u8, pub ss_family: crate::sa_family_t, - __ss_pad1: [u8; 6], + __ss_pad1: Padding<[u8; 6]>, __ss_align: i64, - __ss_pad2: [u8; 112], + __ss_pad2: Padding<[u8; 112]>, } } diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index c21e0a21699a0..a8dbaeaecac2f 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -79,7 +79,7 @@ impl siginfo_t { _si_signo: c_int, _si_errno: c_int, _si_code: c_int, - __pad1: c_int, + __pad1: Padding, _pid: crate::pid_t, } (*(self as *const siginfo_t as *const siginfo_timer))._pid @@ -91,7 +91,7 @@ impl siginfo_t { _si_signo: c_int, _si_errno: c_int, _si_code: c_int, - __pad1: c_int, + __pad1: Padding, _pid: crate::pid_t, _uid: crate::uid_t, } @@ -104,7 +104,7 @@ impl siginfo_t { _si_signo: c_int, _si_errno: c_int, _si_code: c_int, - __pad1: c_int, + __pad1: Padding, _pid: crate::pid_t, _uid: crate::uid_t, value: crate::sigval, @@ -118,7 +118,7 @@ impl siginfo_t { _si_signo: c_int, _si_errno: c_int, _si_code: c_int, - __pad1: c_int, + __pad1: Padding, _pid: crate::pid_t, _uid: crate::uid_t, _value: crate::sigval, @@ -151,13 +151,13 @@ s! { pub gl_flags: c_int, pub gl_pathv: *mut *mut c_char, - __unused3: *mut c_void, + __unused3: Padding<*mut c_void>, - __unused4: *mut c_void, - __unused5: *mut c_void, - __unused6: *mut c_void, - __unused7: *mut c_void, - __unused8: *mut c_void, + __unused4: Padding<*mut c_void>, + __unused5: Padding<*mut c_void>, + __unused6: Padding<*mut c_void>, + __unused7: Padding<*mut c_void>, + __unused8: Padding<*mut c_void>, } pub struct mq_attr { @@ -210,9 +210,9 @@ s! { pub si_signo: c_int, pub si_code: c_int, pub si_errno: c_int, - __pad1: c_int, + __pad1: Padding, pub si_addr: *mut c_void, - __pad2: [u64; 13], + __pad2: Padding<[u64; 13]>, } pub struct pthread_attr_t { @@ -556,8 +556,8 @@ s! { pub l_priority: u8, pub l_usrpri: u8, pub l_stat: i8, - l_pad1: i8, - l_pad2: i32, + l_pad1: Padding, + l_pad2: Padding, pub l_wmesg: [c_char; KI_WMESGLEN as usize], pub l_wchan: u64, pub l_cpuid: u64, @@ -737,16 +737,16 @@ s! { pub struct sockaddr_storage { pub ss_len: u8, pub ss_family: crate::sa_family_t, - __ss_pad1: [u8; 6], - __ss_pad2: i64, - __ss_pad3: [u8; 112], + __ss_pad1: Padding<[u8; 6]>, + __ss_pad2: Padding, + __ss_pad3: Padding<[u8; 112]>, } pub struct sigevent { pub sigev_notify: c_int, pub sigev_signo: c_int, pub sigev_value: crate::sigval, - __unused1: *mut c_void, //actually a function pointer + __unused1: Padding<*mut c_void>, //actually a function pointer pub sigev_notify_attributes: *mut c_void, } } diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index e519e8dd95f13..3249fd526a745 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -75,13 +75,13 @@ s! { pub gl_offs: size_t, pub gl_flags: c_int, pub gl_pathv: *mut *mut c_char, - __unused1: *mut c_void, - __unused2: *mut c_void, - __unused3: *mut c_void, - __unused4: *mut c_void, - __unused5: *mut c_void, - __unused6: *mut c_void, - __unused7: *mut c_void, + __unused1: Padding<*mut c_void>, + __unused2: Padding<*mut c_void>, + __unused3: Padding<*mut c_void>, + __unused4: Padding<*mut c_void>, + __unused5: Padding<*mut c_void>, + __unused6: Padding<*mut c_void>, + __unused7: Padding<*mut c_void>, } pub struct lconv { @@ -733,7 +733,7 @@ impl siginfo_t { _si_signo: c_int, _si_code: c_int, _si_errno: c_int, - _pad: [c_int; SI_PAD], + _pad: Padding<[c_int; SI_PAD]>, _pid: crate::pid_t, } (*(self as *const siginfo_t).cast::())._pid @@ -745,7 +745,7 @@ impl siginfo_t { _si_signo: c_int, _si_code: c_int, _si_errno: c_int, - _pad: [c_int; SI_PAD], + _pad: Padding<[c_int; SI_PAD]>, _pid: crate::pid_t, _uid: crate::uid_t, } @@ -758,7 +758,7 @@ impl siginfo_t { _si_signo: c_int, _si_code: c_int, _si_errno: c_int, - _pad: [c_int; SI_PAD], + _pad: Padding<[c_int; SI_PAD]>, _pid: crate::pid_t, _uid: crate::uid_t, value: crate::sigval, diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 6dee1217953cc..172e009dcfba4 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -367,9 +367,9 @@ s! { pub struct sockaddr_storage { pub ss_family: sa_family_t, - __ss_pad1: [c_char; 6], + __ss_pad1: Padding<[c_char; 6]>, __ss_align: i64, - __ss_pad2: [c_char; 112], + __ss_pad2: Padding<[c_char; 112]>, } pub struct stat { @@ -461,7 +461,7 @@ s! { pub si_pid: pid_t, pub si_uid: uid_t, pub si_errno: c_int, - __pad: [u32; 32], + __pad: Padding<[u32; 32]>, } pub struct dirent { @@ -491,7 +491,7 @@ s_no_extra_traits! { pub ifru_mtu: c_int, pub ifru_ifindex: c_int, pub ifru_data: *mut c_char, - __ifru_pad: [c_char; 28], + __ifru_pad: Padding<[c_char; 28]>, } pub struct ifreq { diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 41522dba929c4..6658968a885ee 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -276,17 +276,17 @@ s! { pub struct glob_t { pub gl_pathc: size_t, - __unused1: size_t, + __unused1: Padding, pub gl_offs: size_t, - __unused2: size_t, + __unused2: Padding, pub gl_pathv: *mut *mut c_char, - __unused3: *mut c_void, - __unused4: *mut c_void, - __unused5: *mut c_void, - __unused6: *mut c_void, - __unused7: *mut c_void, - __unused8: *mut c_void, + __unused3: Padding<*mut c_void>, + __unused4: Padding<*mut c_void>, + __unused5: Padding<*mut c_void>, + __unused6: Padding<*mut c_void>, + __unused7: Padding<*mut c_void>, + __unused8: Padding<*mut c_void>, } pub struct pthread_mutex_t { @@ -466,9 +466,9 @@ s! { pub struct sockaddr_storage { pub ss_len: u8, pub ss_family: sa_family_t, - __ss_pad1: [u8; 6], - __ss_pad2: u64, - __ss_pad3: [u8; 112], + __ss_pad1: Padding<[u8; 6]>, + __ss_pad2: Padding, + __ss_pad3: Padding<[u8; 112]>, } pub struct dirent { pub d_dev: dev_t, @@ -483,7 +483,7 @@ s! { pub sigev_notify: c_int, pub sigev_signo: c_int, pub sigev_value: crate::sigval, - __unused1: *mut c_void, // actually a function pointer + __unused1: Padding<*mut c_void>, // actually a function pointer pub sigev_notify_attributes: *mut crate::pthread_attr_t, } diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs index 6c7f69acbd4ee..3ed686b8bbb4b 100644 --- a/src/unix/haiku/native.rs +++ b/src/unix/haiku/native.rs @@ -440,7 +440,7 @@ s! { } pub struct __c_anonymous_eax_3 { - __reserved: [u32; 2], + __reserved: Padding<[u32; 2]>, pub serial_number_high: u32, pub serial_number_low: u32, } diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 7485074b91c1b..9b7811b460e1b 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -415,7 +415,7 @@ s! { pub sigev_value: crate::sigval, pub sigev_signo: c_int, pub sigev_notify: c_int, - __unused1: *mut c_void, //actually a function pointer + __unused1: Padding<*mut c_void>, //actually a function pointer pub sigev_notify_attributes: *mut pthread_attr_t, } @@ -495,7 +495,7 @@ s! { pub stx_uid: u32, pub stx_gid: u32, pub stx_mode: u16, - __statx_pad1: [u16; 1], + __statx_pad1: Padding<[u16; 1]>, pub stx_ino: u64, pub stx_size: u64, pub stx_blocks: u64, @@ -508,7 +508,7 @@ s! { pub stx_rdev_minor: u32, pub stx_dev_major: u32, pub stx_dev_minor: u32, - __statx_pad2: [u64; 14], + __statx_pad2: Padding<[u64; 14]>, } pub struct statx_timestamp { @@ -595,7 +595,7 @@ s! { __return_value: ssize_t, pub aio_offset: off_t, #[cfg(all(not(target_arch = "x86_64"), target_pointer_width = "32"))] - __unused1: [c_char; 4], + __unused1: Padding<[c_char; 4]>, __glibc_reserved: [c_char; 32], } @@ -921,11 +921,11 @@ s! { pub gl_offs: size_t, pub gl_flags: c_int, - __unused1: *mut c_void, - __unused2: *mut c_void, - __unused3: *mut c_void, - __unused4: *mut c_void, - __unused5: *mut c_void, + __unused1: Padding<*mut c_void>, + __unused2: Padding<*mut c_void>, + __unused3: Padding<*mut c_void>, + __unused4: Padding<*mut c_void>, + __unused5: Padding<*mut c_void>, } pub struct glob64_t { @@ -934,11 +934,11 @@ s! { pub gl_offs: size_t, pub gl_flags: c_int, - __unused1: *mut c_void, - __unused2: *mut c_void, - __unused3: *mut c_void, - __unused4: *mut c_void, - __unused5: *mut c_void, + __unused1: Padding<*mut c_void>, + __unused2: Padding<*mut c_void>, + __unused3: Padding<*mut c_void>, + __unused4: Padding<*mut c_void>, + __unused5: Padding<*mut c_void>, } pub struct regex_t { @@ -995,7 +995,7 @@ s! { __allocated: c_int, __used: c_int, __actions: *mut c_int, - __pad: [c_int; 16], + __pad: Padding<[c_int; 16]>, } pub struct posix_spawnattr_t { @@ -1005,7 +1005,7 @@ s! { __ss: crate::sigset_t, __sp: crate::sched_param, __policy: c_int, - __pad: [c_int; 16], + __pad: Padding<[c_int; 16]>, } pub struct regmatch_t { diff --git a/src/unix/linux_like/android/b32/arm.rs b/src/unix/linux_like/android/b32/arm.rs index 7fb2ff663bcac..1d2d34dfedc40 100644 --- a/src/unix/linux_like/android/b32/arm.rs +++ b/src/unix/linux_like/android/b32/arm.rs @@ -43,7 +43,7 @@ s! { pub uc_sigmask__c_anonymous_union: __c_anonymous_uc_sigmask, /* The kernel adds extra padding after uc_sigmask to match * glibc sigset_t on ARM. */ - __padding: [c_char; 120], + __padding: Padding<[c_char; 120]>, __align: [c_longlong; 0], uc_regspace: [c_ulong; 128], } diff --git a/src/unix/linux_like/android/b32/mod.rs b/src/unix/linux_like/android/b32/mod.rs index d02dbf92d7924..62c3c4c32a4b6 100644 --- a/src/unix/linux_like/android/b32/mod.rs +++ b/src/unix/linux_like/android/b32/mod.rs @@ -28,14 +28,14 @@ s! { pub struct stat { pub st_dev: c_ulonglong, - __pad0: [c_uchar; 4], + __pad0: Padding<[c_uchar; 4]>, __st_ino: crate::ino_t, pub st_mode: c_uint, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: c_ulonglong, - __pad3: [c_uchar; 4], + __pad3: Padding<[c_uchar; 4]>, pub st_size: c_longlong, pub st_blksize: crate::blksize_t, pub st_blocks: c_ulonglong, @@ -50,14 +50,14 @@ s! { pub struct stat64 { pub st_dev: c_ulonglong, - __pad0: [c_uchar; 4], + __pad0: Padding<[c_uchar; 4]>, __st_ino: crate::ino_t, pub st_mode: c_uint, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: c_ulonglong, - __pad3: [c_uchar; 4], + __pad3: Padding<[c_uchar; 4]>, pub st_size: c_longlong, pub st_blksize: crate::blksize_t, pub st_blocks: c_ulonglong, diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index 3c6131089ee89..7c7a08fdf334f 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -14,10 +14,10 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad1: c_ulong, + __pad1: Padding, pub st_size: off64_t, pub st_blksize: c_int, - __pad2: c_int, + __pad2: Padding, pub st_blocks: c_long, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -25,8 +25,8 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused4: c_uint, - __unused5: c_uint, + __unused4: Padding, + __unused5: Padding, } pub struct stat64 { @@ -37,10 +37,10 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad1: c_ulong, + __pad1: Padding, pub st_size: off64_t, pub st_blksize: c_int, - __pad2: c_int, + __pad2: Padding, pub st_blocks: c_long, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -48,8 +48,8 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused4: c_uint, - __unused5: c_uint, + __unused4: Padding, + __unused5: Padding, } pub struct user_regs_struct { @@ -74,7 +74,7 @@ s! { pub sp: c_ulonglong, pub pc: c_ulonglong, pub pstate: c_ulonglong, - __reserved: [u64; 512], + __reserved: Padding<[u64; 512]>, } pub struct user_fpsimd_struct { diff --git a/src/unix/linux_like/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs index 7d5baef752e44..05ec19d85ad5e 100644 --- a/src/unix/linux_like/android/b64/mod.rs +++ b/src/unix/linux_like/android/b64/mod.rs @@ -33,7 +33,7 @@ s! { pub guard_size: size_t, pub sched_policy: i32, pub sched_priority: i32, - __reserved: [c_char; 16], + __reserved: Padding<[c_char; 16]>, } pub struct passwd { diff --git a/src/unix/linux_like/android/b64/riscv64/mod.rs b/src/unix/linux_like/android/b64/riscv64/mod.rs index ca8c727164ad7..dded1292b393f 100644 --- a/src/unix/linux_like/android/b64/riscv64/mod.rs +++ b/src/unix/linux_like/android/b64/riscv64/mod.rs @@ -15,10 +15,10 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad1: c_ulong, + __pad1: Padding, pub st_size: off64_t, pub st_blksize: c_int, - __pad2: c_int, + __pad2: Padding, pub st_blocks: c_long, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -26,8 +26,8 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused4: c_uint, - __unused5: c_uint, + __unused4: Padding, + __unused5: Padding, } pub struct stat64 { @@ -38,10 +38,10 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad1: c_ulong, + __pad1: Padding, pub st_size: off64_t, pub st_blksize: c_int, - __pad2: c_int, + __pad2: Padding, pub st_blocks: c_long, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -49,8 +49,8 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused4: c_uint, - __unused5: c_uint, + __unused4: Padding, + __unused5: Padding, } } diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index fd678d1f11108..801235d13ec1b 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -24,7 +24,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: c_long, pub st_ctime_nsec: c_long, - __unused: [c_long; 3], + __unused: Padding<[c_long; 3]>, } pub struct stat64 { @@ -44,7 +44,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: c_long, pub st_ctime_nsec: c_long, - __unused: [c_long; 3], + __unused: Padding<[c_long; 3]>, } pub struct _libc_xmmreg { @@ -91,12 +91,12 @@ s! { pub start_code: c_ulong, pub start_stack: c_ulong, pub signal: c_long, - __reserved: c_int, + __reserved: Padding, #[cfg(target_pointer_width = "32")] - __pad1: u32, + __pad1: Padding, pub u_ar0: *mut user_regs_struct, #[cfg(target_pointer_width = "32")] - __pad2: u32, + __pad2: Padding, pub u_fpstate: *mut user_fpregs_struct, pub magic: c_ulong, pub u_comm: [c_char; 32], @@ -108,7 +108,7 @@ s! { pub struct _libc_fpxreg { pub significand: [u16; 4], pub exponent: u16, - __padding: [u16; 3], + __padding: Padding<[u16; 3]>, } pub struct _libc_fpstate { diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 8e50af515364f..4419dde2d027c 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -137,7 +137,7 @@ s! { pub struct sem_t { count: c_uint, #[cfg(target_pointer_width = "64")] - __reserved: [c_int; 3], + __reserved: Padding<[c_int; 3]>, } pub struct exit_status { @@ -179,11 +179,11 @@ s! { pub ssi_stime: c_ulonglong, pub ssi_addr: c_ulonglong, pub ssi_addr_lsb: u16, - _pad2: u16, + _pad2: Padding, pub ssi_syscall: i32, pub ssi_call_addr: u64, pub ssi_arch: u32, - _pad: [u8; 28], + _pad: Padding<[u8; 28]>, } pub struct itimerspec { @@ -503,7 +503,7 @@ s! { pub struct sockaddr_nl { pub nl_family: crate::sa_family_t, - nl_pad: c_ushort, + nl_pad: Padding, pub nl_pid: u32, pub nl_groups: u32, } diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 306cf180e5c0b..820480213883b 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -52,11 +52,11 @@ s! { pub gl_offs: size_t, pub gl_flags: c_int, - __unused1: *mut c_void, - __unused2: *mut c_void, - __unused3: *mut c_void, - __unused4: *mut c_void, - __unused5: *mut c_void, + __unused1: Padding<*mut c_void>, + __unused2: Padding<*mut c_void>, + __unused3: Padding<*mut c_void>, + __unused4: Padding<*mut c_void>, + __unused5: Padding<*mut c_void>, } pub struct passwd { @@ -115,11 +115,11 @@ s! { pub ssi_stime: u64, pub ssi_addr: u64, pub ssi_addr_lsb: u16, - _pad2: u16, + _pad2: Padding, pub ssi_syscall: i32, pub ssi_call_addr: u64, pub ssi_arch: u32, - _pad: [u8; 28], + _pad: Padding<[u8; 28]>, } pub struct fsid_t { @@ -170,8 +170,8 @@ s! { pub cgid: crate::gid_t, pub mode: mode_t, pub __seq: c_int, - __unused1: c_long, - __unused2: c_long, + __unused1: Padding, + __unused2: Padding, } pub struct termios { @@ -260,8 +260,8 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: c_ulong, - __pad1: c_ulong, - __pad2: c_ulong, + __pad1: Padding, + __pad2: Padding, } pub struct msqid_ds { @@ -274,8 +274,8 @@ s! { pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __pad1: c_ulong, - __pad2: c_ulong, + __pad1: Padding, + __pad2: Padding, } pub struct statfs { diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 40d90159553a9..dadaa7a8f6892 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -56,17 +56,17 @@ s! { pub cuid: crate::uid_t, pub cgid: crate::gid_t, pub mode: c_ushort, - __pad1: c_ushort, + __pad1: Padding, pub __seq: c_ushort, - __pad2: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __pad2: Padding, + __unused1: Padding, + __unused2: Padding, } pub struct stat64 { pub st_dev: crate::dev_t, #[cfg(not(gnu_time_bits64))] - __pad1: c_uint, + __pad1: Padding, #[cfg(not(gnu_time_bits64))] __st_ino: c_ulong, #[cfg(gnu_time_bits64)] @@ -77,7 +77,7 @@ s! { pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, #[cfg(not(gnu_time_bits64))] - __pad2: c_uint, + __pad2: Padding, pub st_size: off64_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt64_t, @@ -133,18 +133,18 @@ s! { pub shm_segsz: size_t, pub shm_atime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __unused1: c_ulong, + __unused1: Padding, pub shm_dtime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __unused2: c_ulong, + __unused2: Padding, pub shm_ctime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __unused3: c_ulong, + __unused3: Padding, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __unused4: c_ulong, - __unused5: c_ulong, + __unused4: Padding, + __unused5: Padding, } pub struct msqid_ds { diff --git a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs index bb06c49df0a25..978b4398e9073 100644 --- a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs @@ -55,23 +55,23 @@ s! { pub cuid: crate::uid_t, pub cgid: crate::gid_t, pub mode: c_ushort, - __pad1: c_ushort, + __pad1: Padding, pub __seq: c_ushort, - __pad2: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __pad2: Padding, + __unused1: Padding, + __unused2: Padding, } pub struct stat64 { pub st_dev: crate::dev_t, - __pad1: c_uint, + __pad1: Padding, __st_ino: crate::ino_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad2: c_uint, + __pad2: Padding, pub st_size: off64_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt64_t, @@ -119,16 +119,16 @@ s! { pub shm_perm: crate::ipc_perm, pub shm_segsz: size_t, pub shm_atime: crate::time_t, - __unused1: c_ulong, + __unused1: Padding, pub shm_dtime: crate::time_t, - __unused2: c_ulong, + __unused2: Padding, pub shm_ctime: crate::time_t, - __unused3: c_ulong, + __unused3: Padding, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __unused4: c_ulong, - __unused5: c_ulong, + __unused4: Padding, + __unused5: Padding, } pub struct msqid_ds { diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index ceaab898074b4..721fe2d5aba99 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -57,21 +57,21 @@ s! { pub cgid: crate::gid_t, pub mode: crate::mode_t, __seq: c_ushort, - __pad1: c_ushort, + __pad1: Padding, __glibc_reserved1: c_ulong, __glibc_reserved2: c_ulong, } pub struct stat64 { pub st_dev: crate::dev_t, - __pad1: c_ushort, + __pad1: Padding, pub __st_ino: crate::ino_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad2: c_ushort, + __pad2: Padding, pub st_size: off64_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt64_t, @@ -152,7 +152,7 @@ s! { pub si_signo: c_int, pub si_code: c_int, pub si_errno: c_int, - _pad: [c_int; 29], + _pad: Padding<[c_int; 29]>, _align: [usize; 0], } diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 98ce89e124891..99af57a4460c0 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -14,7 +14,7 @@ s! { pub st_dev: crate::dev_t, #[cfg(not(gnu_time_bits64))] - st_pad1: [c_long; 3], + st_pad1: Padding<[c_long; 3]>, pub st_ino: crate::ino_t, @@ -29,14 +29,14 @@ s! { pub st_rdev: crate::dev_t, #[cfg(not(gnu_file_offset_bits64))] - st_pad2: [c_long; 2], + st_pad2: Padding<[c_long; 2]>, #[cfg(all(not(gnu_time_bits64), gnu_file_offset_bits64))] - st_pad2: [c_long; 3], + st_pad2: Padding<[c_long; 3]>, pub st_size: off_t, #[cfg(not(gnu_file_offset_bits64))] - st_pad3: c_long, + st_pad3: Padding, #[cfg(gnu_time_bits64)] pub st_blksize: crate::blksize_t, @@ -59,11 +59,11 @@ s! { #[cfg(not(gnu_time_bits64))] pub st_blksize: crate::blksize_t, #[cfg(all(not(gnu_time_bits64), gnu_file_offset_bits64))] - st_pad4: c_long, + st_pad4: Padding, #[cfg(not(gnu_time_bits64))] pub st_blocks: crate::blkcnt_t, #[cfg(not(gnu_time_bits64))] - st_pad5: [c_long; 14], + st_pad5: Padding<[c_long; 14]>, } pub struct stat64 { @@ -73,7 +73,7 @@ s! { pub st_dev: crate::dev_t, #[cfg(not(gnu_time_bits64))] - st_pad1: [c_long; 3], + st_pad1: Padding<[c_long; 3]>, pub st_ino: crate::ino64_t, pub st_mode: crate::mode_t, @@ -87,7 +87,7 @@ s! { pub st_rdev: crate::dev_t, #[cfg(not(gnu_time_bits64))] - st_pad2: [c_long; 3], + st_pad2: Padding<[c_long; 3]>, pub st_size: off64_t, @@ -112,11 +112,11 @@ s! { #[cfg(not(gnu_time_bits64))] pub st_blksize: crate::blksize_t, #[cfg(not(gnu_time_bits64))] - st_pad3: c_long, + st_pad3: Padding, #[cfg(not(gnu_time_bits64))] pub st_blocks: crate::blkcnt64_t, #[cfg(not(gnu_time_bits64))] - st_pad5: [c_long; 14], + st_pad5: Padding<[c_long; 14]>, } pub struct statfs { @@ -197,9 +197,9 @@ s! { pub cgid: crate::gid_t, pub mode: c_uint, pub __seq: c_ushort, - __pad1: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __pad1: Padding, + __unused1: Padding, + __unused2: Padding, } pub struct shmid_ds { @@ -211,8 +211,8 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __unused4: c_ulong, - __unused5: c_ulong, + __unused4: Padding, + __unused5: Padding, } pub struct msqid_ds { diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index fe843a7643207..1855693dc6c7a 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -81,7 +81,7 @@ cfg_if! { pub st_dev: crate::dev_t, #[cfg(not(gnu_time_bits64))] - __pad1: c_uint, + __pad1: Padding, #[cfg(any(gnu_time_bits64, not(gnu_file_offset_bits64)))] pub st_ino: crate::ino_t, @@ -96,7 +96,7 @@ cfg_if! { pub st_rdev: crate::dev_t, #[cfg(not(gnu_time_bits64))] - __pad2: c_uint, + __pad2: Padding, pub st_size: off_t, @@ -176,7 +176,7 @@ s! { pub struct semid_ds { pub sem_perm: ipc_perm, #[cfg(all(not(gnu_time_bits64), target_arch = "powerpc"))] - __reserved: crate::__syscall_ulong_t, + __reserved: Padding, pub sem_otime: crate::time_t, #[cfg(not(any( gnu_time_bits64, @@ -184,9 +184,9 @@ s! { target_arch = "mips32r6", target_arch = "powerpc" )))] - __reserved: crate::__syscall_ulong_t, + __reserved: Padding, #[cfg(all(not(gnu_time_bits64), target_arch = "powerpc"))] - __reserved2: crate::__syscall_ulong_t, + __reserved2: Padding, pub sem_ctime: crate::time_t, #[cfg(not(any( gnu_time_bits64, @@ -194,7 +194,7 @@ s! { target_arch = "mips32r6", target_arch = "powerpc" )))] - __reserved2: crate::__syscall_ulong_t, + __reserved2: Padding, pub sem_nsems: crate::__syscall_ulong_t, #[cfg(all( gnu_time_bits64, @@ -206,7 +206,7 @@ s! { target_arch = "x86" )) ))] - __reserved2: crate::__syscall_ulong_t, + __reserved2: Padding, __glibc_reserved3: crate::__syscall_ulong_t, __glibc_reserved4: crate::__syscall_ulong_t, } @@ -214,13 +214,13 @@ s! { #[cfg(gnu_time_bits64)] pub struct timex { pub modes: c_uint, - _pad1: c_int, + _pad1: Padding, pub offset: c_longlong, pub freq: c_longlong, pub maxerror: c_longlong, pub esterror: c_longlong, pub status: c_int, - _pad2: c_int, + _pad2: Padding, pub constant: c_longlong, pub precision: c_longlong, pub tolerance: c_longlong, @@ -229,7 +229,7 @@ s! { pub ppsfreq: c_longlong, pub jitter: c_longlong, pub shift: c_int, - _pad3: c_int, + _pad3: Padding, pub stabil: c_longlong, pub jitcnt: c_longlong, pub calcnt: c_longlong, diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 54470e10d6145..c84ee0c95cad5 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -57,7 +57,7 @@ s! { pub cgid: crate::gid_t, pub mode: crate::mode_t, __seq: u32, - __pad1: u32, + __pad1: Padding, __glibc_reserved1: u64, __glibc_reserved2: u64, } @@ -65,7 +65,7 @@ s! { pub struct stat { pub st_dev: crate::dev_t, #[cfg(not(gnu_file_offset_bits64))] - __pad1: c_ushort, + __pad1: Padding, pub st_ino: crate::ino_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, @@ -73,7 +73,7 @@ s! { pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, #[cfg(not(gnu_time_bits64))] - __pad2: c_ushort, + __pad2: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, @@ -104,7 +104,7 @@ s! { pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, #[cfg(not(gnu_time_bits64))] - __pad2: c_ushort, + __pad2: Padding, pub st_size: off64_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt64_t, diff --git a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs index f4f04c91b7f87..8da10a3c543b6 100644 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -42,7 +42,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_int; 2], + __unused: Padding<[c_int; 2]>, } pub struct statfs { @@ -127,11 +127,11 @@ s! { pub cuid: crate::uid_t, pub cgid: crate::gid_t, pub mode: c_ushort, - __pad1: c_ushort, + __pad1: Padding, pub __seq: c_ushort, - __pad2: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __pad2: Padding, + __unused1: Padding, + __unused2: Padding, } pub struct shmid_ds { @@ -143,8 +143,8 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __unused5: c_ulong, - __unused6: c_ulong, + __unused5: Padding, + __unused6: Padding, } pub struct flock { diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index 03ecff3f342e1..303d4a1135715 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -39,7 +39,7 @@ s! { pub si_signo: c_int, pub si_errno: c_int, pub si_code: c_int, - _pad: [c_int; 29], + _pad: Padding<[c_int; 29]>, _align: [usize; 0], } @@ -57,7 +57,7 @@ s! { pub l_start: off64_t, pub l_len: off64_t, pub l_pid: crate::pid_t, - __reserved: c_short, + __reserved: Padding, } pub struct stack_t { @@ -69,14 +69,14 @@ s! { pub struct stat { pub st_dev: crate::dev_t, #[cfg(not(gnu_file_offset_bits64))] - __pad1: c_ushort, + __pad1: Padding, pub st_ino: crate::ino_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad2: c_ushort, + __pad2: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, @@ -98,7 +98,7 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad2: c_ushort, + __pad2: Padding, pub st_size: off64_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt64_t, @@ -149,12 +149,12 @@ s! { pub gid: crate::gid_t, pub cuid: crate::uid_t, pub cgid: crate::gid_t, - __pad1: c_ushort, + __pad1: Padding, pub mode: c_ushort, - __pad2: c_ushort, + __pad2: Padding, pub __seq: c_ushort, - __unused1: c_ulonglong, - __unused2: c_ulonglong, + __unused1: Padding, + __unused2: Padding, } pub struct shmid_ds { @@ -162,33 +162,33 @@ s! { #[cfg(gnu_time_bits64)] pub shm_segsz: size_t, #[cfg(not(gnu_time_bits64))] - __pad1: c_uint, + __pad1: Padding, pub shm_atime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __pad2: c_uint, + __pad2: Padding, pub shm_dtime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __pad3: c_uint, + __pad3: Padding, pub shm_ctime: crate::time_t, #[cfg(not(gnu_time_bits64))] pub shm_segsz: size_t, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __reserved1: c_ulong, - __reserved2: c_ulong, + __reserved1: Padding, + __reserved2: Padding, } pub struct msqid_ds { pub msg_perm: crate::ipc_perm, #[cfg(not(gnu_time_bits64))] - __pad1: c_uint, + __pad1: Padding, pub msg_stime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __pad2: c_uint, + __pad2: Padding, pub msg_rtime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __pad3: c_uint, + __pad3: Padding, pub msg_ctime: crate::time_t, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 4882acb8fd0e2..8c80598f84f41 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -108,7 +108,7 @@ s! { pub start_code: c_ulong, pub start_stack: c_ulong, pub signal: c_long, - __reserved: c_int, + __reserved: Padding, pub u_ar0: *mut user_regs_struct, pub u_fpstate: *mut user_fpregs_struct, pub magic: c_ulong, @@ -130,17 +130,17 @@ s! { pub cuid: crate::uid_t, pub cgid: crate::gid_t, pub mode: c_ushort, - __pad1: c_ushort, + __pad1: Padding, pub __seq: c_ushort, - __pad2: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __pad2: Padding, + __unused1: Padding, + __unused2: Padding, } pub struct stat64 { pub st_dev: crate::dev_t, #[cfg(not(gnu_time_bits64))] - __pad1: c_uint, + __pad1: Padding, #[cfg(not(gnu_time_bits64))] __st_ino: c_ulong, #[cfg(gnu_time_bits64)] @@ -151,22 +151,22 @@ s! { pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, #[cfg(not(gnu_time_bits64))] - __pad2: c_uint, + __pad2: Padding, pub st_size: off64_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt64_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, #[cfg(gnu_time_bits64)] - _atime_pad: c_int, + _atime_pad: Padding, pub st_mtime: crate::time_t, pub st_mtime_nsec: c_long, #[cfg(gnu_time_bits64)] - _mtime_pad: c_int, + _mtime_pad: Padding, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, #[cfg(gnu_time_bits64)] - _ctime_pad: c_int, + _ctime_pad: Padding, #[cfg(not(gnu_time_bits64))] pub st_ino: crate::ino64_t, } @@ -207,18 +207,18 @@ s! { pub shm_segsz: size_t, pub shm_atime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __unused1: c_ulong, + __unused1: Padding, pub shm_dtime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __unused2: c_ulong, + __unused2: Padding, pub shm_ctime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __unused3: c_ulong, + __unused3: Padding, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __unused4: c_ulong, - __unused5: c_ulong, + __unused4: Padding, + __unused5: Padding, } pub struct msqid_ds { @@ -272,7 +272,7 @@ s! { pub foo: c_long, pub fos: c_long, pub mxcsr: c_long, - __reserved: c_long, + __reserved: Padding, pub st_space: [c_long; 32], pub xmm_space: [c_long; 32], padding: [c_long; 56], diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index b5af0e8ec9548..d896257046df4 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -20,7 +20,7 @@ s! { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, #[cfg(target_arch = "sparc64")] - __reserved0: c_int, + __reserved0: Padding, pub sa_flags: c_int, pub sa_restorer: Option, } @@ -65,10 +65,10 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad1: crate::dev_t, + __pad1: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, - __pad2: c_int, + __pad2: Padding, pub st_blocks: crate::blkcnt_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -76,7 +76,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_int; 2], + __unused: Padding<[c_int; 2]>, } pub struct stat64 { @@ -87,10 +87,10 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad1: crate::dev_t, + __pad1: Padding, pub st_size: off64_t, pub st_blksize: crate::blksize_t, - __pad2: c_int, + __pad2: Padding, pub st_blocks: crate::blkcnt64_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -98,7 +98,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_int; 2], + __unused: Padding<[c_int; 2]>, } pub struct statfs64 { @@ -165,9 +165,9 @@ s! { pub cgid: crate::gid_t, pub mode: c_uint, pub __seq: c_ushort, - __pad1: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __pad1: Padding, + __unused1: Padding, + __unused2: Padding, } pub struct shmid_ds { @@ -179,8 +179,8 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __unused4: c_ulong, - __unused5: c_ulong, + __unused4: Padding, + __unused5: Padding, } pub struct siginfo_t { @@ -219,7 +219,7 @@ s! { pub sp: c_ulonglong, pub pc: c_ulonglong, pub pstate: c_ulonglong, - __reserved: [u64; 512], + __reserved: Padding<[u64; 512]>, } pub struct user_fpsimd_struct { diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs index 1eeb6098284b8..e3971eaafe0ae 100644 --- a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs @@ -22,10 +22,10 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad1: crate::dev_t, + __pad1: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, - __pad2: c_int, + __pad2: Padding, pub st_blocks: crate::blkcnt_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -33,7 +33,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_int; 2], + __unused: Padding<[c_int; 2]>, } pub struct stat64 { @@ -55,7 +55,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_int; 2], + __unused: Padding<[c_int; 2]>, } pub struct statfs { @@ -176,9 +176,9 @@ s! { pub cgid: crate::gid_t, pub mode: c_uint, pub __seq: c_ushort, - __pad2: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __pad2: Padding, + __unused1: Padding, + __unused2: Padding, } pub struct shmid_ds { @@ -190,8 +190,8 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __unused4: c_ulong, - __unused5: c_ulong, + __unused4: Padding, + __unused5: Padding, } pub struct user_regs_struct { diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index da43c3268813a..dfec9203361d0 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -15,16 +15,16 @@ pub type __s64 = c_long; s! { pub struct stat { pub st_dev: c_ulong, - st_pad1: [c_long; 2], + st_pad1: Padding<[c_long; 2]>, pub st_ino: crate::ino_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: c_ulong, - st_pad2: [c_ulong; 1], + st_pad2: Padding<[c_ulong; 1]>, pub st_size: off_t, - st_pad3: c_long, + st_pad3: Padding, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, @@ -32,9 +32,9 @@ s! { pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, - st_pad4: c_long, + st_pad4: Padding, pub st_blocks: crate::blkcnt_t, - st_pad5: [c_long; 7], + st_pad5: Padding<[c_long; 7]>, } pub struct statfs { @@ -70,14 +70,14 @@ s! { pub struct stat64 { pub st_dev: c_ulong, - st_pad1: [c_long; 2], + st_pad1: Padding<[c_long; 2]>, pub st_ino: crate::ino64_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: c_ulong, - st_pad2: [c_long; 2], + st_pad2: Padding<[c_long; 2]>, pub st_size: off64_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -86,9 +86,9 @@ s! { pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, - st_pad3: c_long, + st_pad3: Padding, pub st_blocks: crate::blkcnt64_t, - st_pad5: [c_long; 7], + st_pad5: Padding<[c_long; 7]>, } pub struct statfs64 { @@ -159,8 +159,8 @@ s! { pub si_signo: c_int, pub si_code: c_int, pub si_errno: c_int, - _pad: c_int, - _pad2: [c_long; 14], + _pad: Padding, + _pad2: Padding<[c_long; 14]>, } pub struct ipc_perm { @@ -171,9 +171,9 @@ s! { pub cgid: crate::gid_t, pub mode: c_uint, pub __seq: c_ushort, - __pad1: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __pad1: Padding, + __unused1: Padding, + __unused2: Padding, } pub struct shmid_ds { @@ -185,8 +185,8 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __unused4: c_ulong, - __unused5: c_ulong, + __unused4: Padding, + __unused5: Padding, } } diff --git a/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs index ba5678b459795..5a3022117c2a3 100644 --- a/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -80,7 +80,7 @@ s! { target_arch = "sparc64", target_arch = "s390x", )))] - __reserved: crate::__syscall_ulong_t, + __reserved: Padding, pub sem_ctime: crate::time_t, #[cfg(not(any( target_arch = "aarch64", @@ -92,7 +92,7 @@ s! { target_arch = "sparc64", target_arch = "s390x", )))] - __reserved2: crate::__syscall_ulong_t, + __reserved2: Padding, pub sem_nsems: crate::__syscall_ulong_t, __glibc_reserved3: crate::__syscall_ulong_t, __glibc_reserved4: crate::__syscall_ulong_t, diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index 153d25e2f3deb..2d6957d5e51c7 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -23,7 +23,7 @@ s! { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, #[cfg(target_arch = "sparc64")] - __reserved0: c_int, + __reserved0: Padding, pub sa_flags: c_int, pub sa_restorer: Option, } @@ -67,7 +67,7 @@ s! { pub st_mode: crate::mode_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - __pad0: c_int, + __pad0: Padding, pub st_rdev: crate::dev_t, pub st_size: off_t, pub st_blksize: crate::blksize_t, @@ -78,7 +78,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_long; 3], + __unused: Padding<[c_long; 3]>, } pub struct stat64 { @@ -88,7 +88,7 @@ s! { pub st_mode: crate::mode_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - __pad0: c_int, + __pad0: Padding, pub st_rdev: crate::dev_t, pub st_size: off64_t, pub st_blksize: crate::blksize_t, @@ -99,7 +99,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __reserved: [c_long; 3], + __reserved: Padding<[c_long; 3]>, } pub struct statfs64 { @@ -159,9 +159,9 @@ s! { pub cgid: crate::gid_t, pub mode: crate::mode_t, pub __seq: u32, - __pad1: u32, - __unused1: u64, - __unused2: c_ulong, + __pad1: Padding, + __unused1: Padding, + __unused2: Padding, } pub struct shmid_ds { @@ -173,8 +173,8 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __unused4: c_ulong, - __unused5: c_ulong, + __unused4: Padding, + __unused5: Padding, } pub struct siginfo_t { diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index e5546cdae7fb3..3438a510d3bf9 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -40,7 +40,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_int; 2usize], + __unused: Padding<[c_int; 2usize]>, } pub struct stat64 { @@ -62,7 +62,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_int; 2], + __unused: Padding<[c_int; 2]>, } pub struct statfs { @@ -162,11 +162,11 @@ s! { pub cuid: crate::uid_t, pub cgid: crate::gid_t, pub mode: c_ushort, - __pad1: c_ushort, + __pad1: Padding, pub __seq: c_ushort, - __pad2: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __pad2: Padding, + __unused1: Padding, + __unused2: Padding, } pub struct shmid_ds { @@ -178,8 +178,8 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __unused5: c_ulong, - __unused6: c_ulong, + __unused5: Padding, + __unused6: Padding, } pub struct flock { diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 5bea1a100b1d7..d45e153aee3a9 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -61,8 +61,8 @@ s! { pub si_signo: c_int, pub si_errno: c_int, pub si_code: c_int, - _pad: c_int, - _pad2: [c_long; 14], + _pad: Padding, + _pad2: Padding<[c_long; 14]>, } pub struct stack_t { @@ -78,7 +78,7 @@ s! { pub st_mode: crate::mode_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - st_pad0: c_int, + st_pad0: Padding, pub st_rdev: crate::dev_t, pub st_size: off_t, pub st_atime: crate::time_t, @@ -99,7 +99,7 @@ s! { pub st_mode: crate::mode_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - st_pad0: c_int, + st_pad0: Padding, pub st_rdev: crate::dev_t, pub st_size: off_t, pub st_atime: crate::time_t, @@ -125,9 +125,9 @@ s! { pub cgid: crate::gid_t, pub mode: crate::mode_t, pub __seq: c_ushort, - __pad1: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __pad1: Padding, + __unused1: Padding, + __unused2: Padding, } pub struct shmid_ds { @@ -139,8 +139,8 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __unused4: c_ulong, - __unused5: c_ulong, + __unused4: Padding, + __unused5: Padding, } pub struct statvfs { @@ -165,7 +165,7 @@ s! { pub struct fpregset_t { pub fpc: u32, - __pad: u32, + __pad: Padding, pub fprs: [fpreg_t; 16], } diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs index 0a40d7599bad9..0b32562339690 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -21,7 +21,7 @@ s! { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, #[cfg(target_arch = "sparc64")] - __reserved0: c_int, + __reserved0: Padding, pub sa_flags: c_int, pub sa_restorer: Option, } @@ -71,7 +71,7 @@ s! { pub l_start: off64_t, pub l_len: off64_t, pub l_pid: crate::pid_t, - __reserved: c_short, + __reserved: Padding, } pub struct stack_t { @@ -82,14 +82,14 @@ s! { pub struct stat { pub st_dev: crate::dev_t, - __pad0: u64, + __pad0: Padding, pub st_ino: crate::ino_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad1: u64, + __pad1: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, @@ -99,19 +99,19 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_long; 2], + __unused: Padding<[c_long; 2]>, } pub struct stat64 { pub st_dev: crate::dev_t, - __pad0: u64, + __pad0: Padding, pub st_ino: crate::ino64_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad2: c_int, + __pad2: Padding, pub st_size: off64_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt64_t, @@ -121,7 +121,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __reserved: [c_long; 2], + __reserved: Padding<[c_long; 2]>, } pub struct statfs64 { @@ -180,10 +180,10 @@ s! { pub cuid: crate::uid_t, pub cgid: crate::gid_t, pub mode: crate::mode_t, - __pad0: u16, + __pad0: Padding, pub __seq: c_ushort, - __unused1: c_ulonglong, - __unused2: c_ulonglong, + __unused1: Padding, + __unused2: Padding, } pub struct shmid_ds { @@ -195,8 +195,8 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __reserved1: c_ulong, - __reserved2: c_ulong, + __reserved1: Padding, + __reserved2: Padding, } } diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index f58d8bba480f8..8654559b148fb 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -21,7 +21,7 @@ s! { pub sa_sigaction: crate::sighandler_t, pub sa_mask: crate::sigset_t, #[cfg(target_arch = "sparc64")] - __reserved0: c_int, + __reserved0: Padding, pub sa_flags: c_int, pub sa_restorer: Option, } @@ -86,7 +86,7 @@ s! { pub st_mode: crate::mode_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - __pad0: c_int, + __pad0: Padding, pub st_rdev: crate::dev_t, pub st_size: off_t, pub st_blksize: crate::blksize_t, @@ -97,7 +97,7 @@ s! { pub st_mtime_nsec: i64, pub st_ctime: crate::time_t, pub st_ctime_nsec: i64, - __unused: [i64; 3], + __unused: Padding<[i64; 3]>, } pub struct stat64 { @@ -107,7 +107,7 @@ s! { pub st_mode: crate::mode_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - __pad0: c_int, + __pad0: Padding, pub st_rdev: crate::dev_t, pub st_size: off_t, pub st_blksize: crate::blksize_t, @@ -118,7 +118,7 @@ s! { pub st_mtime_nsec: i64, pub st_ctime: crate::time_t, pub st_ctime_nsec: i64, - __reserved: [i64; 3], + __reserved: Padding<[i64; 3]>, } pub struct statfs64 { @@ -222,12 +222,12 @@ s! { pub start_code: c_ulonglong, pub start_stack: c_ulonglong, pub signal: c_longlong, - __reserved: c_int, + __reserved: Padding, #[cfg(target_pointer_width = "32")] - __pad1: u32, + __pad1: Padding, pub u_ar0: *mut user_regs_struct, #[cfg(target_pointer_width = "32")] - __pad2: u32, + __pad2: Padding, pub u_fpstate: *mut user_fpregs_struct, pub magic: c_ulonglong, pub u_comm: [c_char; 32], @@ -247,11 +247,11 @@ s! { pub cuid: crate::uid_t, pub cgid: crate::gid_t, pub mode: c_ushort, - __pad1: c_ushort, + __pad1: Padding, pub __seq: c_ushort, - __pad2: c_ushort, - __unused1: u64, - __unused2: u64, + __pad2: Padding, + __unused1: Padding, + __unused2: Padding, } pub struct shmid_ds { @@ -263,8 +263,8 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __unused4: u64, - __unused5: u64, + __unused4: Padding, + __unused5: Padding, } pub struct ptrace_rseq_configuration { diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 61ccee3e75234..96eed0d27ef2c 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -37,7 +37,7 @@ s! { not(target_arch = "x86_64"), target_pointer_width = "32" ))] - __unused1: [c_char; 4], + __unused1: Padding<[c_char; 4]>, __glibc_reserved: [c_char; 32], } @@ -57,11 +57,11 @@ s! { pub gl_offs: size_t, pub gl_flags: c_int, - __unused1: *mut c_void, - __unused2: *mut c_void, - __unused3: *mut c_void, - __unused4: *mut c_void, - __unused5: *mut c_void, + __unused1: Padding<*mut c_void>, + __unused2: Padding<*mut c_void>, + __unused3: Padding<*mut c_void>, + __unused4: Padding<*mut c_void>, + __unused5: Padding<*mut c_void>, } pub struct msghdr { @@ -342,13 +342,13 @@ s! { pub struct timespec { pub tv_sec: time_t, #[cfg(all(gnu_time_bits64, target_endian = "big"))] - __pad: i32, + __pad: Padding, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] pub tv_nsec: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub tv_nsec: i64, #[cfg(all(gnu_time_bits64, target_endian = "little"))] - __pad: i32, + __pad: Padding, } pub struct utmpx { diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 625c8e7f110c0..1447f3929257e 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -105,11 +105,11 @@ s! { pub gl_offs: size_t, pub gl_flags: c_int, - __unused1: *mut c_void, - __unused2: *mut c_void, - __unused3: *mut c_void, - __unused4: *mut c_void, - __unused5: *mut c_void, + __unused1: Padding<*mut c_void>, + __unused2: Padding<*mut c_void>, + __unused3: Padding<*mut c_void>, + __unused4: Padding<*mut c_void>, + __unused5: Padding<*mut c_void>, } pub struct passwd { @@ -164,11 +164,11 @@ s! { pub ssi_stime: u64, pub ssi_addr: u64, pub ssi_addr_lsb: u16, - _pad2: u16, + _pad2: Padding, pub ssi_syscall: i32, pub ssi_call_addr: u64, pub ssi_arch: u32, - _pad: [u8; 28], + _pad: Padding<[u8; 28]>, } pub struct itimerspec { @@ -643,7 +643,7 @@ s! { __allocated: c_int, __used: c_int, __actions: *mut c_int, - __pad: [c_int; 16], + __pad: Padding<[c_int; 16]>, } pub struct posix_spawnattr_t { @@ -656,7 +656,7 @@ s! { #[cfg(not(any(target_env = "musl", target_env = "ohos")))] __sp: crate::sched_param, __policy: c_int, - __pad: [c_int; 16], + __pad: Padding<[c_int; 16]>, } pub struct genlmsghdr { @@ -1369,7 +1369,7 @@ s! { pub struct sockaddr_nl { pub nl_family: crate::sa_family_t, - nl_pad: c_ushort, + nl_pad: Padding, pub nl_pid: u32, pub nl_groups: u32, } diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index 02fe6d6294a47..8051e6cf8253b 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -70,41 +70,41 @@ s! { pub cgid: crate::gid_t, pub mode: crate::mode_t, pub __seq: c_int, - __unused1: c_long, - __unused2: c_long, + __unused1: Padding, + __unused2: Padding, } pub struct shmid_ds { pub shm_perm: crate::ipc_perm, pub shm_segsz: size_t, pub shm_atime: crate::time_t, - __unused1: c_int, + __unused1: Padding, pub shm_dtime: crate::time_t, - __unused2: c_int, + __unused2: Padding, pub shm_ctime: crate::time_t, - __unused3: c_int, + __unused3: Padding, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: c_ulong, - __pad1: c_ulong, - __pad2: c_ulong, + __pad1: Padding, + __pad2: Padding, } pub struct msqid_ds { pub msg_perm: crate::ipc_perm, pub msg_stime: crate::time_t, - __unused1: c_int, + __unused1: Padding, pub msg_rtime: crate::time_t, - __unused2: c_int, + __unused2: Padding, pub msg_ctime: crate::time_t, - __unused3: c_int, + __unused3: Padding, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __pad1: c_ulong, - __pad2: c_ulong, + __pad1: Padding, + __pad2: Padding, } pub struct mcontext_t { diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 1c29114338adb..54bfbda97ed5c 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -24,7 +24,7 @@ s! { pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_int; 2], + __unused: Padding<[c_int; 2]>, } pub struct stack_t { @@ -55,33 +55,33 @@ s! { pub shm_perm: crate::ipc_perm, pub shm_segsz: size_t, pub shm_atime: crate::time_t, - __unused1: c_int, + __unused1: Padding, pub shm_dtime: crate::time_t, - __unused2: c_int, + __unused2: Padding, pub shm_ctime: crate::time_t, - __unused3: c_int, + __unused3: Padding, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: c_ulong, - __pad1: c_ulong, - __pad2: c_ulong, + __pad1: Padding, + __pad2: Padding, } pub struct msqid_ds { pub msg_perm: crate::ipc_perm, pub msg_stime: crate::time_t, - __unused1: c_int, + __unused1: Padding, pub msg_rtime: crate::time_t, - __unused2: c_int, + __unused2: Padding, pub msg_ctime: crate::time_t, - __unused3: c_int, + __unused3: Padding, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __pad1: c_ulong, - __pad2: c_ulong, + __pad1: Padding, + __pad2: Padding, } } diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index d8c3ee9d54736..d563c5e420a12 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -6,14 +6,14 @@ pub type wchar_t = c_int; s! { pub struct stat { pub st_dev: crate::dev_t, - __st_padding1: [c_long; 2], + __st_padding1: Padding<[c_long; 2]>, pub st_ino: crate::ino_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __st_padding2: [c_long; 2], + __st_padding2: Padding<[c_long; 2]>, pub st_size: off_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -22,21 +22,21 @@ s! { pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, - __st_padding3: c_long, + __st_padding3: Padding, pub st_blocks: crate::blkcnt_t, - __st_padding4: [c_long; 14], + __st_padding4: Padding<[c_long; 14]>, } pub struct stat64 { pub st_dev: crate::dev_t, - __st_padding1: [c_long; 2], + __st_padding1: Padding<[c_long; 2]>, pub st_ino: crate::ino64_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __st_padding2: [c_long; 2], + __st_padding2: Padding<[c_long; 2]>, pub st_size: off_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -45,9 +45,9 @@ s! { pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, - __st_padding3: c_long, + __st_padding3: Padding, pub st_blocks: crate::blkcnt64_t, - __st_padding4: [c_long; 14], + __st_padding4: Padding<[c_long; 14]>, } pub struct stack_t { @@ -72,8 +72,8 @@ s! { pub cgid: crate::gid_t, pub mode: crate::mode_t, pub __seq: c_int, - __unused1: c_long, - __unused2: c_long, + __unused1: Padding, + __unused2: Padding, } pub struct shmid_ds { @@ -85,34 +85,34 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: c_ulong, - __pad1: c_ulong, - __pad2: c_ulong, + __pad1: Padding, + __pad2: Padding, } pub struct msqid_ds { pub msg_perm: crate::ipc_perm, #[cfg(target_endian = "big")] - __unused1: c_int, + __unused1: Padding, pub msg_stime: crate::time_t, #[cfg(target_endian = "little")] - __unused1: c_int, + __unused1: Padding, #[cfg(target_endian = "big")] - __unused2: c_int, + __unused2: Padding, pub msg_rtime: crate::time_t, #[cfg(target_endian = "little")] - __unused2: c_int, + __unused2: Padding, #[cfg(target_endian = "big")] - __unused3: c_int, + __unused3: Padding, pub msg_ctime: crate::time_t, #[cfg(target_endian = "little")] - __unused3: c_int, + __unused3: Padding, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __pad1: c_ulong, - __pad2: c_ulong, + __pad1: Padding, + __pad2: Padding, } pub struct statfs { diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 60305b3041013..984c88b86d143 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -33,7 +33,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_long; 2], + __unused: Padding<[c_long; 2]>, } pub struct stat64 { @@ -54,7 +54,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_long; 2], + __unused: Padding<[c_long; 2]>, } pub struct stack_t { @@ -79,43 +79,43 @@ s! { pub cgid: crate::gid_t, pub mode: crate::mode_t, pub __seq: c_int, - __pad1: c_int, - __pad2: c_longlong, - __pad3: c_longlong, + __pad1: Padding, + __pad2: Padding, + __pad3: Padding, } pub struct shmid_ds { pub shm_perm: crate::ipc_perm, - __unused1: c_int, + __unused1: Padding, pub shm_atime: crate::time_t, - __unused2: c_int, + __unused2: Padding, pub shm_dtime: crate::time_t, - __unused3: c_int, + __unused3: Padding, pub shm_ctime: crate::time_t, - __unused4: c_int, + __unused4: Padding, pub shm_segsz: size_t, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: c_ulong, - __pad1: c_ulong, - __pad2: c_ulong, + __pad1: Padding, + __pad2: Padding, } pub struct msqid_ds { pub msg_perm: crate::ipc_perm, - __unused1: c_int, + __unused1: Padding, pub msg_stime: crate::time_t, - __unused2: c_int, + __unused2: Padding, pub msg_rtime: crate::time_t, - __unused3: c_int, + __unused3: Padding, pub msg_ctime: crate::time_t, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __pad1: c_ulong, - __pad2: c_ulong, + __pad1: Padding, + __pad2: Padding, } } diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index 04ecf1b46c42d..4237c579a1a7f 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -28,7 +28,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_int; 2usize], + __unused: Padding<[c_int; 2usize]>, } pub struct stat64 { @@ -50,7 +50,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_int; 2], + __unused: Padding<[c_int; 2]>, } pub struct stack_t { @@ -66,11 +66,11 @@ s! { pub cuid: crate::uid_t, pub cgid: crate::gid_t, pub mode: c_ushort, - __pad1: c_ushort, + __pad1: Padding, pub __seq: c_ushort, - __pad2: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __pad2: Padding, + __unused1: Padding, + __unused2: Padding, } pub struct shmid_ds { @@ -82,25 +82,25 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __unused5: c_ulong, - __unused6: c_ulong, + __unused5: Padding, + __unused6: Padding, } pub struct msqid_ds { pub msg_perm: crate::ipc_perm, pub msg_stime: crate::time_t, - __unused1: c_int, + __unused1: Padding, pub msg_rtime: crate::time_t, - __unused2: c_int, + __unused2: Padding, pub msg_ctime: crate::time_t, - __unused3: c_int, + __unused3: Padding, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __pad1: c_ulong, - __pad2: c_ulong, + __pad1: Padding, + __pad2: Padding, } } diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 5b7a3e8d10984..c51614240dbc3 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -74,41 +74,41 @@ s! { pub cgid: crate::gid_t, pub mode: crate::mode_t, pub __seq: c_int, - __unused1: c_long, - __unused2: c_long, + __unused1: Padding, + __unused2: Padding, } pub struct shmid_ds { pub shm_perm: crate::ipc_perm, pub shm_segsz: size_t, pub shm_atime: crate::time_t, - __unused1: c_int, + __unused1: Padding, pub shm_dtime: crate::time_t, - __unused2: c_int, + __unused2: Padding, pub shm_ctime: crate::time_t, - __unused3: c_int, + __unused3: Padding, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: c_ulong, - __pad1: c_ulong, - __pad2: c_ulong, + __pad1: Padding, + __pad2: Padding, } pub struct msqid_ds { pub msg_perm: crate::ipc_perm, pub msg_stime: crate::time_t, - __unused1: c_int, + __unused1: Padding, pub msg_rtime: crate::time_t, - __unused2: c_int, + __unused2: Padding, pub msg_ctime: crate::time_t, - __unused3: c_int, + __unused3: Padding, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __pad1: c_ulong, - __pad2: c_ulong, + __pad1: Padding, + __pad2: Padding, } pub struct user_fpxregs_struct { @@ -121,7 +121,7 @@ s! { pub foo: c_long, pub fos: c_long, pub mxcsr: c_long, - __reserved: c_long, + __reserved: Padding, pub st_space: [c_long; 32], pub xmm_space: [c_long; 32], padding: [c_long; 56], diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index 087e39001e84f..cc52a179e7203 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -16,10 +16,10 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad0: c_ulong, + __pad0: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, - __pad1: c_int, + __pad1: Padding, pub st_blocks: crate::blkcnt_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -27,7 +27,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_uint; 2], + __unused: Padding<[c_uint; 2]>, } pub struct stat64 { @@ -38,10 +38,10 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad0: c_ulong, + __pad0: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, - __pad1: c_int, + __pad1: Padding, pub st_blocks: crate::blkcnt_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -49,7 +49,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_uint; 2], + __unused: Padding<[c_uint; 2]>, } pub struct user_regs_struct { @@ -84,8 +84,8 @@ s! { we'll follow that change in the future release." )] pub __seq: c_ushort, - __unused1: c_long, - __unused2: c_long, + __unused1: Padding, + __unused2: Padding, } pub struct ucontext_t { @@ -103,7 +103,7 @@ s! { pub sp: c_ulong, pub pc: c_ulong, pub pstate: c_ulong, - __reserved: [u64; 512], + __reserved: Padding<[u64; 512]>, } #[repr(align(8))] diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index c151b0ec32046..e973370a80c88 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -22,10 +22,10 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad1: crate::dev_t, + __pad1: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, - __pad2: c_int, + __pad2: Padding, pub st_blocks: crate::blkcnt_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -33,7 +33,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_int; 2usize], + __unused: Padding<[c_int; 2usize]>, } pub struct stat64 { @@ -55,7 +55,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_int; 2], + __unused: Padding<[c_int; 2]>, } pub struct ipc_perm { @@ -66,8 +66,8 @@ s! { pub cgid: crate::gid_t, pub mode: c_uint, pub __seq: c_int, - __unused1: c_ulong, - __unused2: c_ulong, + __unused1: Padding, + __unused2: Padding, } pub struct user_regs_struct { diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index 4d40637c0cb99..9626e3db78b8e 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -10,16 +10,16 @@ pub type blksize_t = i64; s! { pub struct stat { pub st_dev: crate::dev_t, - __pad1: [c_int; 3], + __pad1: Padding<[c_int; 3]>, pub st_ino: crate::ino_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad2: [c_uint; 2], + __pad2: Padding<[c_uint; 2]>, pub st_size: off_t, - __pad3: c_int, + __pad3: Padding, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, @@ -27,23 +27,23 @@ s! { pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, - __pad4: c_uint, + __pad4: Padding, pub st_blocks: crate::blkcnt_t, - __pad5: [c_int; 14], + __pad5: Padding<[c_int; 14]>, } pub struct stat64 { pub st_dev: crate::dev_t, - __pad1: [c_int; 3], + __pad1: Padding<[c_int; 3]>, pub st_ino: crate::ino_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __pad2: [c_uint; 2], + __pad2: Padding<[c_uint; 2]>, pub st_size: off_t, - __pad3: c_int, + __pad3: Padding, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, @@ -51,9 +51,9 @@ s! { pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, - __pad4: c_uint, + __pad4: Padding, pub st_blocks: crate::blkcnt_t, - __pad5: [c_int; 14], + __pad5: Padding<[c_int; 14]>, } pub struct stack_t { @@ -78,9 +78,9 @@ s! { pub cgid: crate::gid_t, pub mode: crate::mode_t, pub __seq: c_int, - __pad1: c_int, - __unused1: c_ulong, - __unused2: c_ulong, + __pad1: Padding, + __unused1: Padding, + __unused2: Padding, } pub struct statfs { diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index 35545402d11d1..6365dbece4578 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -30,8 +30,8 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: c_ulong, - __pad1: c_ulong, - __pad2: c_ulong, + __pad1: Padding, + __pad2: Padding, } pub struct msqid_ds { @@ -44,8 +44,8 @@ s! { pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __pad1: c_ulong, - __pad2: c_ulong, + __pad1: Padding, + __pad2: Padding, } pub struct sem_t { diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index 34d56192a585a..dbf20c565e438 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -26,7 +26,7 @@ s! { pub st_mode: crate::mode_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - __pad0: c_int, + __pad0: Padding, pub st_rdev: crate::dev_t, pub st_size: off_t, pub st_blksize: crate::blksize_t, @@ -37,7 +37,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_long; 3], + __unused: Padding<[c_long; 3]>, } pub struct stat64 { @@ -47,7 +47,7 @@ s! { pub st_mode: crate::mode_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - __pad0: c_int, + __pad0: Padding, pub st_rdev: crate::dev_t, pub st_size: off_t, pub st_blksize: crate::blksize_t, @@ -58,7 +58,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __reserved: [c_long; 3], + __reserved: Padding<[c_long; 3]>, } pub struct shmid_ds { @@ -70,7 +70,7 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: c_ulong, - __unused: [c_ulong; 2], + __unused: Padding<[c_ulong; 2]>, } pub struct ipc_perm { @@ -89,8 +89,8 @@ s! { pub cgid: crate::gid_t, pub mode: crate::mode_t, pub __seq: c_int, - __unused1: c_long, - __unused2: c_long, + __unused1: Padding, + __unused2: Padding, } } diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index 29e950cc372f9..b987f8358b365 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -33,7 +33,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_int; 2usize], + __unused: Padding<[c_int; 2usize]>, } pub struct stat64 { @@ -55,7 +55,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_int; 2], + __unused: Padding<[c_int; 2]>, } pub struct ipc_perm { @@ -65,11 +65,11 @@ s! { pub cuid: crate::uid_t, pub cgid: crate::gid_t, pub mode: c_ushort, - __pad1: c_ushort, + __pad1: Padding, pub __seq: c_ushort, - __pad2: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __pad2: Padding, + __unused1: Padding, + __unused2: Padding, } #[repr(align(8))] diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index c0332205a7948..a7c4cb5d95f9c 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -26,8 +26,8 @@ s! { pub cgid: crate::gid_t, pub mode: crate::mode_t, pub __seq: c_int, - __pad1: c_long, - __pad2: c_long, + __pad1: Padding, + __pad2: Padding, } pub struct stat { @@ -47,7 +47,7 @@ s! { pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, - __unused: [c_long; 3], + __unused: Padding<[c_long; 3]>, } pub struct stat64 { @@ -67,7 +67,7 @@ s! { pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt64_t, - __unused: [c_long; 3], + __unused: Padding<[c_long; 3]>, } pub struct statfs { diff --git a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs index 903bd48a37323..d4d0fe69839b3 100644 --- a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs @@ -17,7 +17,7 @@ s! { pub st_mode: crate::mode_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - __pad0: c_int, + __pad0: Padding, pub st_rdev: crate::dev_t, pub st_size: off_t, pub st_blksize: crate::blksize_t, @@ -28,7 +28,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_long; 3], + __unused: Padding<[c_long; 3]>, } pub struct stat64 { @@ -38,7 +38,7 @@ s! { pub st_mode: crate::mode_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - __pad0: c_int, + __pad0: Padding, pub st_rdev: crate::dev_t, pub st_size: off_t, pub st_blksize: crate::blksize_t, @@ -49,7 +49,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __reserved: [c_long; 3], + __reserved: Padding<[c_long; 3]>, } pub struct ipc_perm { @@ -68,8 +68,8 @@ s! { pub cgid: crate::gid_t, pub mode: crate::mode_t, pub __seq: c_int, - __unused1: c_long, - __unused2: c_long, + __unused1: Padding, + __unused2: Padding, } } diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index 2ad8eb774ded8..364e16b5c9257 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -16,7 +16,7 @@ s! { pub st_mode: crate::mode_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - __pad0: c_int, + __pad0: Padding, pub st_rdev: crate::dev_t, pub st_size: off_t, pub st_blksize: crate::blksize_t, @@ -27,7 +27,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused: [c_long; 3], + __unused: Padding<[c_long; 3]>, } pub struct stat64 { @@ -37,7 +37,7 @@ s! { pub st_mode: crate::mode_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - __pad0: c_int, + __pad0: Padding, pub st_rdev: crate::dev_t, pub st_size: off_t, pub st_blksize: crate::blksize_t, @@ -48,7 +48,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __reserved: [c_long; 3], + __reserved: Padding<[c_long; 3]>, } pub struct user_regs_struct { @@ -91,12 +91,12 @@ s! { pub start_code: c_ulong, pub start_stack: c_ulong, pub signal: c_long, - __reserved: c_int, + __reserved: Padding, #[cfg(target_pointer_width = "32")] - __pad1: u32, + __pad1: Padding, pub u_ar0: *mut user_regs_struct, #[cfg(target_pointer_width = "32")] - __pad2: u32, + __pad2: Padding, pub u_fpstate: *mut user_fpregs_struct, pub magic: c_ulong, pub u_comm: [c_char; 32], @@ -127,8 +127,8 @@ s! { pub cgid: crate::gid_t, pub mode: crate::mode_t, pub __seq: c_int, - __unused1: c_long, - __unused2: c_long, + __unused1: Padding, + __unused2: Padding, } #[repr(align(8))] diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index c835ddbde2992..e3f58b4ebf149 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -185,7 +185,7 @@ s! { #[cfg(target_endian = "little")] pub f_fsid: c_ulong, #[cfg(target_pointer_width = "32")] - __pad: c_int, + __pad: Padding, #[cfg(target_endian = "big")] pub f_fsid: c_ulong, pub f_flag: c_ulong, @@ -205,7 +205,7 @@ s! { #[cfg(target_endian = "little")] pub f_fsid: c_ulong, #[cfg(target_pointer_width = "32")] - __pad: c_int, + __pad: Padding, #[cfg(target_endian = "big")] pub f_fsid: c_ulong, pub f_flag: c_ulong, @@ -245,7 +245,7 @@ s! { pub struct regex_t { __re_nsub: size_t, __opaque: *mut c_void, - __padding: [*mut c_void; 4usize], + __padding: Padding<[*mut c_void; 4usize]>, __nsub2: size_t, __padding2: c_char, } @@ -435,7 +435,7 @@ s! { pub struct utmpx { pub ut_type: c_short, - __ut_pad1: c_short, + __ut_pad1: Padding, pub ut_pid: crate::pid_t, pub ut_line: [c_char; 32], pub ut_id: [c_char; 4], @@ -453,18 +453,18 @@ s! { #[cfg(musl_v1_2_3)] #[cfg(not(target_endian = "little"))] - __ut_pad2: c_int, + __ut_pad2: Padding, #[cfg(musl_v1_2_3)] pub ut_session: c_int, #[cfg(musl_v1_2_3)] #[cfg(target_endian = "little")] - __ut_pad2: c_int, + __ut_pad2: Padding, pub ut_tv: crate::timeval, pub ut_addr_v6: [c_uint; 4], - __unused: [c_char; 20], + __unused: Padding<[c_char; 20]>, } } diff --git a/src/unix/linux_like/linux/uclibc/arm/mod.rs b/src/unix/linux_like/linux/uclibc/arm/mod.rs index c54d77b194c48..7052d9daac2d2 100644 --- a/src/unix/linux_like/linux/uclibc/arm/mod.rs +++ b/src/unix/linux_like/linux/uclibc/arm/mod.rs @@ -44,14 +44,14 @@ s! { pub struct stat { pub st_dev: c_ulonglong, - __pad1: c_ushort, + __pad1: Padding, pub st_ino: crate::ino_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: c_ulonglong, - __pad2: c_ushort, + __pad2: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, @@ -61,8 +61,8 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __unused4: c_ulong, - __unused5: c_ulong, + __unused4: Padding, + __unused5: Padding, } pub struct stat64 { @@ -203,44 +203,44 @@ s! { pub cuid: crate::uid_t, pub cgid: crate::gid_t, pub mode: c_ushort, - __pad1: c_ushort, + __pad1: Padding, pub __seq: c_ushort, - __pad2: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __pad2: Padding, + __unused1: Padding, + __unused2: Padding, } pub struct msqid_ds { pub msg_perm: crate::ipc_perm, pub msg_stime: crate::time_t, - __unused1: c_ulong, + __unused1: Padding, pub msg_rtime: crate::time_t, - __unused2: c_ulong, + __unused2: Padding, pub msg_ctime: crate::time_t, - __unused3: c_ulong, + __unused3: Padding, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __unused4: c_ulong, - __unused5: c_ulong, + __unused4: Padding, + __unused5: Padding, } pub struct shmid_ds { pub shm_perm: crate::ipc_perm, pub shm_segsz: size_t, pub shm_atime: crate::time_t, - __unused1: c_ulong, + __unused1: Padding, pub shm_dtime: crate::time_t, - __unused2: c_ulong, + __unused2: Padding, pub shm_ctime: crate::time_t, - __unused3: c_ulong, + __unused3: Padding, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __unused4: c_ulong, - __unused5: c_ulong, + __unused4: Padding, + __unused5: Padding, } // FIXME(1.0) this is actually a union diff --git a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs index 7dd0440907855..56137bdc38e6d 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs @@ -20,7 +20,7 @@ pub type fsfilcnt64_t = u64; s! { pub struct stat { pub st_dev: crate::dev_t, - st_pad1: [c_long; 2], + st_pad1: Padding<[c_long; 2]>, pub st_ino: crate::ino_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, @@ -29,7 +29,7 @@ s! { pub st_rdev: crate::dev_t, pub st_pad2: [c_long; 1], pub st_size: off_t, - st_pad3: c_long, + st_pad3: Padding, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, @@ -38,19 +38,19 @@ s! { pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, - st_pad5: [c_long; 14], + st_pad5: Padding<[c_long; 14]>, } pub struct stat64 { pub st_dev: crate::dev_t, - st_pad1: [c_long; 2], + st_pad1: Padding<[c_long; 2]>, pub st_ino: crate::ino64_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - st_pad2: [c_long; 2], + st_pad2: Padding<[c_long; 2]>, pub st_size: off64_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -59,9 +59,9 @@ s! { pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, - st_pad3: c_long, + st_pad3: Padding, pub st_blocks: crate::blkcnt64_t, - st_pad5: [c_long; 14], + st_pad5: Padding<[c_long; 14]>, } pub struct statvfs64 { @@ -114,11 +114,11 @@ s! { pub gl_offs: size_t, pub gl_flags: c_int, - __unused1: *mut c_void, - __unused2: *mut c_void, - __unused3: *mut c_void, - __unused4: *mut c_void, - __unused5: *mut c_void, + __unused1: Padding<*mut c_void>, + __unused2: Padding<*mut c_void>, + __unused3: Padding<*mut c_void>, + __unused4: Padding<*mut c_void>, + __unused5: Padding<*mut c_void>, } pub struct ipc_perm { @@ -129,9 +129,9 @@ s! { pub cgid: crate::gid_t, pub mode: c_uint, pub __seq: c_ushort, - __pad1: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __pad1: Padding, + __unused1: Padding, + __unused2: Padding, } pub struct shmid_ds { @@ -143,8 +143,8 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __unused4: c_ulong, - __unused5: c_ulong, + __unused4: Padding, + __unused5: Padding, } pub struct msqid_ds { diff --git a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs index 39eb0242730d8..b6adb637493bb 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs @@ -15,16 +15,16 @@ pub type wchar_t = i32; s! { pub struct stat { pub st_dev: c_ulong, - st_pad1: [c_long; 2], + st_pad1: Padding<[c_long; 2]>, pub st_ino: crate::ino_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: c_ulong, - st_pad2: [c_ulong; 1], + st_pad2: Padding<[c_ulong; 1]>, pub st_size: off_t, - st_pad3: c_long, + st_pad3: Padding, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, @@ -32,21 +32,21 @@ s! { pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, - st_pad4: c_long, + st_pad4: Padding, pub st_blocks: crate::blkcnt_t, - st_pad5: [c_long; 7], + st_pad5: Padding<[c_long; 7]>, } pub struct stat64 { pub st_dev: c_ulong, - st_pad1: [c_long; 2], + st_pad1: Padding<[c_long; 2]>, pub st_ino: crate::ino64_t, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: c_ulong, - st_pad2: [c_long; 2], + st_pad2: Padding<[c_long; 2]>, pub st_size: off64_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -55,9 +55,9 @@ s! { pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, - st_pad3: c_long, + st_pad3: Padding, pub st_blocks: crate::blkcnt64_t, - st_pad5: [c_long; 7], + st_pad5: Padding<[c_long; 7]>, } pub struct pthread_attr_t { @@ -85,8 +85,8 @@ s! { pub si_signo: c_int, pub si_code: c_int, pub si_errno: c_int, - _pad: c_int, - _pad2: [c_long; 14], + _pad: Padding, + _pad2: Padding<[c_long; 14]>, } pub struct ipc_perm { @@ -97,9 +97,9 @@ s! { pub cgid: crate::gid_t, pub mode: c_uint, pub __seq: c_ushort, - __pad1: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __pad1: Padding, + __unused1: Padding, + __unused2: Padding, } pub struct shmid_ds { @@ -111,8 +111,8 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __unused4: c_ulong, - __unused5: c_ulong, + __unused4: Padding, + __unused5: Padding, } pub struct msqid_ds { diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index 1a2e4bcc1a897..ce6b192580f23 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -31,11 +31,11 @@ s! { pub cuid: crate::uid_t, pub cgid: crate::gid_t, pub mode: c_ushort, // read / write - __pad1: c_ushort, + __pad1: Padding, pub __seq: c_ushort, - __pad2: c_ushort, - __unused1: c_ulong, - __unused2: c_ulong, + __pad2: Padding, + __unused1: Padding, + __unused2: Padding, } #[cfg(not(target_os = "l4re"))] @@ -72,8 +72,8 @@ s! { pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __unused1: c_ulong, - __unused2: c_ulong, + __unused1: Padding, + __unused2: Padding, } pub struct msqid_ds { @@ -141,7 +141,7 @@ s! { pub st_mtime_nsec: c_ulong, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_ulong, - st_pad4: [c_long; 3], + st_pad4: Padding<[c_long; 3]>, } // FIXME(1.0): This should not implement `PartialEq` @@ -256,11 +256,11 @@ s! { pub gl_pathv: *mut *mut c_char, pub gl_offs: size_t, pub gl_flags: c_int, - __unused1: *mut c_void, - __unused2: *mut c_void, - __unused3: *mut c_void, - __unused4: *mut c_void, - __unused5: *mut c_void, + __unused1: Padding<*mut c_void>, + __unused2: Padding<*mut c_void>, + __unused3: Padding<*mut c_void>, + __unused4: Padding<*mut c_void>, + __unused5: Padding<*mut c_void>, } pub struct cpu_set_t { diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index e79d2098bfcc0..86f11f3b2c08c 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -270,7 +270,7 @@ cfg_if! { pub stx_uid: crate::__u32, pub stx_gid: crate::__u32, pub stx_mode: crate::__u16, - __statx_pad1: [crate::__u16; 1], + __statx_pad1: Padding<[crate::__u16; 1]>, pub stx_ino: crate::__u64, pub stx_size: crate::__u64, pub stx_blocks: crate::__u64, @@ -286,13 +286,13 @@ cfg_if! { pub stx_mnt_id: crate::__u64, pub stx_dio_mem_align: crate::__u32, pub stx_dio_offset_align: crate::__u32, - __statx_pad3: [crate::__u64; 12], + __statx_pad3: Padding<[crate::__u64; 12]>, } pub struct statx_timestamp { pub tv_sec: crate::__s64, pub tv_nsec: crate::__u32, - __statx_timestamp_pad1: [crate::__s32; 1], + __statx_timestamp_pad1: Padding<[crate::__s32; 1]>, } } } @@ -316,9 +316,9 @@ s_no_extra_traits! { // the most useful member pub sigev_notify_thread_id: c_int, #[cfg(target_pointer_width = "64")] - __unused1: [c_int; 11], + __unused1: Padding<[c_int; 11]>, #[cfg(target_pointer_width = "32")] - __unused1: [c_int; 12], + __unused1: Padding<[c_int; 12]>, } } diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 677788e9fc9ad..e5bc9637541ad 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -88,49 +88,49 @@ s! { pub ru_stime: timeval, pub ru_maxrss: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad1: u32, + __pad1: Padding, pub ru_ixrss: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad2: u32, + __pad2: Padding, pub ru_idrss: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad3: u32, + __pad3: Padding, pub ru_isrss: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad4: u32, + __pad4: Padding, pub ru_minflt: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad5: u32, + __pad5: Padding, pub ru_majflt: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad6: u32, + __pad6: Padding, pub ru_nswap: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad7: u32, + __pad7: Padding, pub ru_inblock: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad8: u32, + __pad8: Padding, pub ru_oublock: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad9: u32, + __pad9: Padding, pub ru_msgsnd: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad10: u32, + __pad10: Padding, pub ru_msgrcv: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad11: u32, + __pad11: Padding, pub ru_nsignals: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad12: u32, + __pad12: Padding, pub ru_nvcsw: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad13: u32, + __pad13: Padding, pub ru_nivcsw: c_long, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad14: u32, + __pad14: Padding, #[cfg(any(target_env = "musl", target_env = "ohos", target_os = "emscripten"))] - __reserved: [c_long; 16], + __reserved: Padding<[c_long; 16]>, } #[cfg(not(target_os = "nuttx"))] diff --git a/src/unix/newlib/vita/mod.rs b/src/unix/newlib/vita/mod.rs index 62cd300e1d6f0..2a456f47363d9 100644 --- a/src/unix/newlib/vita/mod.rs +++ b/src/unix/newlib/vita/mod.rs @@ -82,7 +82,7 @@ s! { pub struct dirent { __offset: [u8; 88], pub d_name: [c_char; 256usize], - __pad: [u8; 8], + __pad: Padding<[u8; 8]>, } } diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index fa7745531787e..962e660f2bc16 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -316,11 +316,11 @@ s! { pub gl_flags: c_int, pub gl_errfunc: extern "C" fn(*const c_char, c_int) -> c_int, - __unused1: *mut c_void, - __unused2: *mut c_void, - __unused3: *mut c_void, - __unused4: *mut c_void, - __unused5: *mut c_void, + __unused1: Padding<*mut c_void>, + __unused2: Padding<*mut c_void>, + __unused3: Padding<*mut c_void>, + __unused4: Padding<*mut c_void>, + __unused5: Padding<*mut c_void>, } pub struct passwd { @@ -485,7 +485,7 @@ s! { pub c_cflag: crate::tcflag_t, pub c_lflag: crate::tcflag_t, pub c_cc: [crate::cc_t; crate::NCCS], - __reserved: [c_uint; 3], + __reserved: Padding<[c_uint; 3]>, pub c_ispeed: crate::speed_t, pub c_ospeed: crate::speed_t, } @@ -538,7 +538,7 @@ s! { pub aio_sigevent: crate::sigevent, pub aio_lio_opcode: c_int, pub _aio_lio_state: *mut c_void, - _aio_pad: [c_int; 3], + _aio_pad: Padding<[c_int; 3]>, pub _aio_next: *mut crate::aiocb, pub _aio_flag: c_uint, pub _aio_iotype: c_uint, @@ -593,7 +593,7 @@ s! { pub __prioceiling: c_int, pub __clockid: c_int, pub __count: c_int, - __reserved: [c_int; 3], + __reserved: Padding<[c_int; 3]>, } pub struct sockcred { @@ -679,9 +679,9 @@ s! { pub struct sockaddr_storage { pub ss_len: u8, pub ss_family: sa_family_t, - __ss_pad1: [c_char; 6], + __ss_pad1: Padding<[c_char; 6]>, __ss_align: i64, - __ss_pad2: [c_char; 112], + __ss_pad2: Padding<[c_char; 112]>, } pub struct utsname { @@ -752,7 +752,7 @@ s_no_extra_traits! { pub msg_type: c_long, pub msg_ts: c_ushort, pub msg_spot: c_short, - _pad: [u8; 4], + _pad: Padding<[u8; 4]>, } pub struct msqid_ds { @@ -765,12 +765,12 @@ s_no_extra_traits! { pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, pub msg_stime: crate::time_t, - msg_pad1: c_long, + msg_pad1: Padding, pub msg_rtime: crate::time_t, - msg_pad2: c_long, + msg_pad2: Padding, pub msg_ctime: crate::time_t, - msg_pad3: c_long, - msg_pad4: [c_long; 4], + msg_pad3: Padding, + msg_pad4: Padding<[c_long; 4]>, } pub struct sync_t { @@ -781,7 +781,7 @@ s_no_extra_traits! { #[repr(align(4))] pub struct pthread_barrier_t { // union - __pad: [u8; 28], // union + __pad: Padding<[u8; 28]>, // union } pub struct pthread_rwlock_t { @@ -3130,7 +3130,7 @@ impl siginfo_t { pub unsafe fn si_addr(&self) -> *mut c_void { #[repr(C)] struct siginfo_si_addr { - _pad: [u8; 32], + _pad: Padding<[u8; 32]>, si_addr: *mut c_void, } (*(self as *const siginfo_t as *const siginfo_si_addr)).si_addr @@ -3139,7 +3139,7 @@ impl siginfo_t { pub unsafe fn si_value(&self) -> crate::sigval { #[repr(C)] struct siginfo_si_value { - _pad: [u8; 32], + _pad: Padding<[u8; 32]>, si_value: crate::sigval, } (*(self as *const siginfo_t as *const siginfo_si_value)).si_value @@ -3148,7 +3148,7 @@ impl siginfo_t { pub unsafe fn si_pid(&self) -> crate::pid_t { #[repr(C)] struct siginfo_si_pid { - _pad: [u8; 16], + _pad: Padding<[u8; 16]>, si_pid: crate::pid_t, } (*(self as *const siginfo_t as *const siginfo_si_pid)).si_pid @@ -3157,7 +3157,7 @@ impl siginfo_t { pub unsafe fn si_uid(&self) -> crate::uid_t { #[repr(C)] struct siginfo_si_uid { - _pad: [u8; 24], + _pad: Padding<[u8; 24]>, si_uid: crate::uid_t, } (*(self as *const siginfo_t as *const siginfo_si_uid)).si_uid @@ -3166,7 +3166,7 @@ impl siginfo_t { pub unsafe fn si_status(&self) -> c_int { #[repr(C)] struct siginfo_si_status { - _pad: [u8; 28], + _pad: Padding<[u8; 28]>, si_status: c_int, } (*(self as *const siginfo_t as *const siginfo_si_status)).si_status diff --git a/src/unix/nto/neutrino.rs b/src/unix/nto/neutrino.rs index 8aac468009785..5d12d24047188 100644 --- a/src/unix/nto/neutrino.rs +++ b/src/unix/nto/neutrino.rs @@ -239,7 +239,7 @@ s_no_extra_traits! { pub pminfo: syspage_entry_info, pub old_mdriver: syspage_entry_info, spare0: [u32; 1], - __reserved: [u8; 160], // anonymous union with architecture dependent structs + __reserved: Padding<[u8; 160]>, // anonymous union with architecture dependent structs pub new_asinfo: syspage_array_info, pub new_cpuinfo: syspage_array_info, pub new_cacheattr: syspage_array_info, @@ -1245,13 +1245,13 @@ extern "C" { __id: crate::clockid_t, _new: *const crate::_clockperiod, __old: *mut crate::_clockperiod, - __reserved: c_int, + __reserved: Padding, ) -> c_int; pub fn ClockPeriod_r( __id: crate::clockid_t, _new: *const crate::_clockperiod, __old: *mut crate::_clockperiod, - __reserved: c_int, + __reserved: Padding, ) -> c_int; pub fn ClockId(__pid: crate::pid_t, __tid: c_int) -> c_int; pub fn ClockId_r(__pid: crate::pid_t, __tid: c_int) -> c_int; diff --git a/src/unix/nto/x86_64.rs b/src/unix/nto/x86_64.rs index 521b5d4ab7879..1fbfe3bb449bf 100644 --- a/src/unix/nto/x86_64.rs +++ b/src/unix/nto/x86_64.rs @@ -23,11 +23,11 @@ s! { pub r15: u64, pub rip: u64, pub cs: u32, - rsvd1: u32, + rsvd1: Padding, pub rflags: u64, pub rsp: u64, pub ss: u32, - rsvd2: u32, + rsvd2: Padding, } #[repr(align(8))] diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index 79e3f170e0c1f..e3ad7bafd153c 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -47,7 +47,7 @@ s! { pub st_ctim: timespec, pub st_blksize: blksize_t, pub st_blocks: i64, - __reserved: [usize; __DEFAULT_RESERVED_SIZE__], + __reserved: Padding<[usize; __DEFAULT_RESERVED_SIZE__]>, } pub struct sockaddr { @@ -63,7 +63,7 @@ s! { pub pw_gecos: *const c_char, pub pw_dir: *const c_char, pub pw_shell: *const c_char, - __reserved: [usize; __DEFAULT_RESERVED_SIZE__], + __reserved: Padding<[usize; __DEFAULT_RESERVED_SIZE__]>, } pub struct sem_t { @@ -118,7 +118,7 @@ s! { pub int_p_cs_precedes: i8, pub int_p_sep_by_space: i8, pub int_p_sign_posn: i8, - __reserved: [usize; __DEFAULT_RESERVED_SIZE__], + __reserved: Padding<[usize; __DEFAULT_RESERVED_SIZE__]>, } pub struct tm { @@ -133,7 +133,7 @@ s! { pub tm_isdst: i32, pub tm_gmtoff: isize, pub tm_zone: *const c_char, - __reserved: [usize; __DEFAULT_RESERVED_SIZE__], + __reserved: Padding<[usize; __DEFAULT_RESERVED_SIZE__]>, } pub struct addrinfo { @@ -145,7 +145,7 @@ s! { pub ai_addr: *mut sockaddr, pub ai_canonname: *mut c_char, pub ai_next: *mut addrinfo, - __reserved: [usize; __DEFAULT_RESERVED_SIZE__], + __reserved: Padding<[usize; __DEFAULT_RESERVED_SIZE__]>, } pub struct pthread_rwlock_t { @@ -164,7 +164,7 @@ s! { pub f_fsid: usize, pub f_flag: usize, pub f_namemax: usize, - __reserved: [usize; __DEFAULT_RESERVED_SIZE__], + __reserved: Padding<[usize; __DEFAULT_RESERVED_SIZE__]>, } pub struct dirent { @@ -185,7 +185,7 @@ s! { pub sa_mask: sigset_t, pub sa_flags: i32, pub sa_user: usize, - __reserved: [usize; __DEFAULT_RESERVED_SIZE__], + __reserved: Padding<[usize; __DEFAULT_RESERVED_SIZE__]>, } pub struct termios { @@ -195,7 +195,7 @@ s! { pub c_lflag: tcflag_t, pub c_cc: [cc_t; 12], pub c_speed: speed_t, - __reserved: [usize; __DEFAULT_RESERVED_SIZE__], + __reserved: Padding<[usize; __DEFAULT_RESERVED_SIZE__]>, } pub struct in_addr { diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 45d479f94c152..439e8db35b4e0 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -162,7 +162,7 @@ s! { pub si_signo: c_int, pub si_errno: c_int, pub si_code: c_int, - _pad: [c_int; 29], + _pad: Padding<[c_int; 29]>, _align: [usize; 0], } @@ -203,7 +203,7 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - _pad: [c_char; 24], + _pad: Padding<[c_char; 24]>, } pub struct statvfs { diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 1e5fc221296c1..5341b811fa557 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -226,24 +226,24 @@ s! { pub gl_pathc: size_t, pub gl_pathv: *mut *mut c_char, pub gl_offs: size_t, - __unused1: *mut c_void, - __unused2: c_int, + __unused1: Padding<*mut c_void>, + __unused2: Padding, #[cfg(target_os = "illumos")] - __unused3: c_int, + __unused3: Padding, #[cfg(target_os = "illumos")] - __unused4: c_int, + __unused4: Padding, #[cfg(target_os = "illumos")] - __unused5: *mut c_void, + __unused5: Padding<*mut c_void>, #[cfg(target_os = "illumos")] - __unused6: *mut c_void, + __unused6: Padding<*mut c_void>, #[cfg(target_os = "illumos")] - __unused7: *mut c_void, + __unused7: Padding<*mut c_void>, #[cfg(target_os = "illumos")] - __unused8: *mut c_void, + __unused8: Padding<*mut c_void>, #[cfg(target_os = "illumos")] - __unused9: *mut c_void, + __unused9: Padding<*mut c_void>, #[cfg(target_os = "illumos")] - __unused10: *mut c_void, + __unused10: Padding<*mut c_void>, } pub struct addrinfo { @@ -300,7 +300,7 @@ s! { pub struct sched_param { pub sched_priority: c_int, - sched_pad: [c_int; 8], + sched_pad: Padding<[c_int; 8]>, } pub struct Dl_info { @@ -393,7 +393,7 @@ s! { pub mq_maxmsg: c_long, pub mq_msgsize: c_long, pub mq_curmsgs: c_long, - _pad: [c_int; 12], + _pad: Padding<[c_int; 12]>, } pub struct port_event { @@ -507,9 +507,9 @@ s! { pub struct sockaddr_storage { pub ss_family: crate::sa_family_t, - __ss_pad1: [u8; 6], + __ss_pad1: Padding<[u8; 6]>, __ss_align: i64, - __ss_pad2: [u8; 240], + __ss_pad2: Padding<[u8; 240]>, } pub struct sockaddr_dl { @@ -528,7 +528,7 @@ s! { pub sigev_value: crate::sigval, pub ss_sp: *mut c_void, pub sigev_notify_attributes: *const crate::pthread_attr_t, - __sigev_pad2: c_int, + __sigev_pad2: Padding, } } @@ -685,7 +685,7 @@ s_no_extra_traits! { uid: crate::uid_t, value: crate::sigval, // Pad out to match the SIGCLD value size - _pad: *mut c_void, + _pad: Padding<*mut c_void>, } struct siginfo_sigcld { diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index a403648f85fc5..9f2539b9400a0 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -159,7 +159,7 @@ s! { pub st_mode: mode_t, pub st_uid: uid_t, pub st_gid: gid_t, - __pad0: c_uint, + __pad0: Padding, pub st_rdev: dev_t, pub st_size: off_t, pub st_blksize: blksize_t, @@ -167,7 +167,7 @@ s! { pub st_atim: timespec, pub st_mtim: timespec, pub st_ctim: timespec, - __reserved: [c_longlong; 3], + __reserved: Padding<[c_longlong; 3]>, } pub struct fd_set { From 5f39c13dd42178439be864b1d3153edf368117d3 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 19 Nov 2025 18:27:50 -0600 Subject: [PATCH 1012/1228] linux: Move Linux-specific pthread bits to the `new` module Move `pthread_*` API in `linux_like/linux.rs` to a module in `new` and reexport via `glibc` and `musl`. Eventually other platforms will be ported as well. (backport ) (cherry picked from commit 04c5805de39c16582afe8212fd5b0b3795280a26) --- src/new/common/linux_like/mod.rs | 3 + src/new/common/linux_like/pthread.rs | 23 +++ src/new/common/posix/mod.rs | 5 + src/new/common/posix/pthread.rs | 196 ++++++++++++++++++++++++++ src/new/glibc/mod.rs | 6 + src/new/glibc/sysdeps/nptl/mod.rs | 7 + src/new/glibc/sysdeps/nptl/pthread.rs | 50 +++++++ src/new/mod.rs | 11 +- src/new/musl/mod.rs | 2 + src/new/musl/pthread.rs | 53 +++++++ src/new/uclibc/mod.rs | 2 + src/new/uclibc/pthread.rs | 48 +++++++ src/unix/linux_like/linux/mod.rs | 116 --------------- 13 files changed, 404 insertions(+), 118 deletions(-) create mode 100644 src/new/common/linux_like/pthread.rs create mode 100644 src/new/common/posix/pthread.rs create mode 100644 src/new/glibc/sysdeps/nptl/mod.rs create mode 100644 src/new/glibc/sysdeps/nptl/pthread.rs create mode 100644 src/new/musl/pthread.rs create mode 100644 src/new/uclibc/pthread.rs diff --git a/src/new/common/linux_like/mod.rs b/src/new/common/linux_like/mod.rs index 9aceb4e09f0e3..1faf98706392f 100644 --- a/src/new/common/linux_like/mod.rs +++ b/src/new/common/linux_like/mod.rs @@ -1 +1,4 @@ //! API that primarily comes from Linux but is also used other platforms (e.g. Android). + +#[cfg(target_os = "linux")] +pub(crate) mod pthread; diff --git a/src/new/common/linux_like/pthread.rs b/src/new/common/linux_like/pthread.rs new file mode 100644 index 0000000000000..19c7cd81ec3b9 --- /dev/null +++ b/src/new/common/linux_like/pthread.rs @@ -0,0 +1,23 @@ +use crate::prelude::*; + +extern "C" { + #[cfg(target_os = "linux")] + pub fn pthread_getaffinity_np( + thread: crate::pthread_t, + cpusetsize: size_t, + cpuset: *mut crate::cpu_set_t, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_getname_np(thread: crate::pthread_t, name: *mut c_char, len: size_t) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_setaffinity_np( + thread: crate::pthread_t, + cpusetsize: size_t, + cpuset: *const crate::cpu_set_t, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_setname_np(thread: crate::pthread_t, name: *const c_char) -> c_int; +} diff --git a/src/new/common/posix/mod.rs b/src/new/common/posix/mod.rs index 454b840404c95..0428f6503a8a8 100644 --- a/src/new/common/posix/mod.rs +++ b/src/new/common/posix/mod.rs @@ -1,3 +1,8 @@ //! POSIX APIs that are used by a number of platforms +//! +//! These can be found at: . +// FIXME(pthread): eventually all platforms should use this module +#[cfg(target_os = "linux")] +pub(crate) mod pthread; pub(crate) mod unistd; diff --git a/src/new/common/posix/pthread.rs b/src/new/common/posix/pthread.rs new file mode 100644 index 0000000000000..847467b6b965a --- /dev/null +++ b/src/new/common/posix/pthread.rs @@ -0,0 +1,196 @@ +//! Header: `pthread.h` +//! +//! + +use crate::prelude::*; + +extern "C" { + #[cfg(target_os = "linux")] + pub fn pthread_atfork( + prepare: Option, + parent: Option, + child: Option, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_attr_getguardsize( + attr: *const crate::pthread_attr_t, + guardsize: *mut size_t, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_attr_getinheritsched( + attr: *const crate::pthread_attr_t, + inheritsched: *mut c_int, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_attr_getschedparam( + attr: *const crate::pthread_attr_t, + param: *mut crate::sched_param, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_attr_getschedpolicy( + attr: *const crate::pthread_attr_t, + policy: *mut c_int, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_attr_setinheritsched( + attr: *mut crate::pthread_attr_t, + inheritsched: c_int, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_attr_setschedparam( + attr: *mut crate::pthread_attr_t, + param: *const crate::sched_param, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_attr_setschedpolicy(attr: *mut crate::pthread_attr_t, policy: c_int) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_barrier_destroy(barrier: *mut crate::pthread_barrier_t) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_barrier_init( + barrier: *mut crate::pthread_barrier_t, + attr: *const crate::pthread_barrierattr_t, + count: c_uint, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_barrier_wait(barrier: *mut crate::pthread_barrier_t) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_barrierattr_destroy(attr: *mut crate::pthread_barrierattr_t) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_barrierattr_getpshared( + attr: *const crate::pthread_barrierattr_t, + shared: *mut c_int, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_barrierattr_init(attr: *mut crate::pthread_barrierattr_t) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_barrierattr_setpshared( + attr: *mut crate::pthread_barrierattr_t, + shared: c_int, + ) -> c_int; + + #[cfg(all(target_os = "linux", not(target_env = "ohos")))] + pub fn pthread_cancel(thread: crate::pthread_t) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_condattr_getpshared( + attr: *const crate::pthread_condattr_t, + pshared: *mut c_int, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_create( + native: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + f: extern "C" fn(*mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_getcpuclockid(thread: crate::pthread_t, clk_id: *mut crate::clockid_t) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_getschedparam( + native: crate::pthread_t, + policy: *mut c_int, + param: *mut crate::sched_param, + ) -> c_int; + + // FIXME(reorg): In recent POSIX versions, this is a signal.h function and not required + // in pthread. + #[cfg(target_os = "linux")] + pub fn pthread_kill(thread: crate::pthread_t, sig: c_int) -> c_int; + + #[cfg(all(target_os = "linux", not(target_env = "ohos")))] + pub fn pthread_mutex_consistent(mutex: *mut crate::pthread_mutex_t) -> c_int; + + #[cfg(target_os = "linux")] + #[cfg_attr(gnu_time_bits64, link_name = "__pthread_mutex_timedlock64")] + pub fn pthread_mutex_timedlock( + lock: *mut crate::pthread_mutex_t, + abstime: *const crate::timespec, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_mutexattr_getprotocol( + attr: *const crate::pthread_mutexattr_t, + protocol: *mut c_int, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_mutexattr_getpshared( + attr: *const crate::pthread_mutexattr_t, + pshared: *mut c_int, + ) -> c_int; + + #[cfg(all(target_os = "linux", not(target_env = "ohos")))] + pub fn pthread_mutexattr_getrobust( + attr: *const crate::pthread_mutexattr_t, + robustness: *mut c_int, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_mutexattr_setprotocol( + attr: *mut crate::pthread_mutexattr_t, + protocol: c_int, + ) -> c_int; + + #[cfg(all(target_os = "linux", not(target_env = "ohos")))] + pub fn pthread_mutexattr_setrobust( + attr: *mut crate::pthread_mutexattr_t, + robustness: c_int, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_once(control: *mut crate::pthread_once_t, routine: extern "C" fn()) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_setschedparam( + native: crate::pthread_t, + policy: c_int, + param: *const crate::sched_param, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_setschedprio(native: crate::pthread_t, priority: c_int) -> c_int; + + // FIXME(reorg): In recent POSIX versions, this is a signal.h function and not required + // in pthread. + #[cfg(target_os = "linux")] + pub fn pthread_sigmask( + how: c_int, + set: *const crate::sigset_t, + oldset: *mut crate::sigset_t, + ) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_spin_destroy(lock: *mut crate::pthread_spinlock_t) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_spin_init(lock: *mut crate::pthread_spinlock_t, pshared: c_int) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_spin_lock(lock: *mut crate::pthread_spinlock_t) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_spin_trylock(lock: *mut crate::pthread_spinlock_t) -> c_int; + + #[cfg(target_os = "linux")] + pub fn pthread_spin_unlock(lock: *mut crate::pthread_spinlock_t) -> c_int; +} diff --git a/src/new/glibc/mod.rs b/src/new/glibc/mod.rs index 534aba86a493a..71d979b17ecc4 100644 --- a/src/new/glibc/mod.rs +++ b/src/new/glibc/mod.rs @@ -17,9 +17,15 @@ mod posix { /// /// mod sysdeps { + // FIXME(pthread): eventually all platforms should use this module + #[cfg(target_os = "linux")] + pub(crate) mod nptl; pub(crate) mod unix; } pub(crate) use posix::*; +// FIXME(pthread): eventually all platforms should use this module +#[cfg(target_os = "linux")] +pub(crate) use sysdeps::nptl::*; #[cfg(target_os = "linux")] pub(crate) use sysdeps::unix::linux::*; diff --git a/src/new/glibc/sysdeps/nptl/mod.rs b/src/new/glibc/sysdeps/nptl/mod.rs new file mode 100644 index 0000000000000..18e82e48b80a7 --- /dev/null +++ b/src/new/glibc/sysdeps/nptl/mod.rs @@ -0,0 +1,7 @@ +//! Source directory: `sysdeps/nptl/`o +//! +//! Native POSIX threading library. +//! +//! + +pub(crate) mod pthread; diff --git a/src/new/glibc/sysdeps/nptl/pthread.rs b/src/new/glibc/sysdeps/nptl/pthread.rs new file mode 100644 index 0000000000000..5548aed823180 --- /dev/null +++ b/src/new/glibc/sysdeps/nptl/pthread.rs @@ -0,0 +1,50 @@ +//! Source header: `sysdeps/nptl/pthread.h` +//! +//! + +pub use crate::new::common::linux_like::pthread::{ + pthread_getaffinity_np, + pthread_getname_np, + pthread_setaffinity_np, + pthread_setname_np, +}; +pub use crate::new::common::posix::pthread::{ + pthread_atfork, + pthread_attr_getguardsize, + pthread_attr_getinheritsched, + pthread_attr_getschedparam, + pthread_attr_getschedpolicy, + pthread_attr_setguardsize, + pthread_attr_setinheritsched, + pthread_attr_setschedparam, + pthread_attr_setschedpolicy, + pthread_barrier_destroy, + pthread_barrier_init, + pthread_barrier_wait, + pthread_barrierattr_destroy, + pthread_barrierattr_getpshared, + pthread_barrierattr_init, + pthread_barrierattr_setpshared, + pthread_cancel, + pthread_condattr_getpshared, + pthread_create, + pthread_getcpuclockid, + pthread_getschedparam, + pthread_kill, + pthread_mutex_consistent, + pthread_mutex_timedlock, + pthread_mutexattr_getprotocol, + pthread_mutexattr_getpshared, + pthread_mutexattr_getrobust, + pthread_mutexattr_setprotocol, + pthread_mutexattr_setrobust, + pthread_once, + pthread_setschedparam, + pthread_setschedprio, + pthread_sigmask, + pthread_spin_destroy, + pthread_spin_init, + pthread_spin_lock, + pthread_spin_trylock, + pthread_spin_unlock, +}; diff --git a/src/new/mod.rs b/src/new/mod.rs index 38a0759afb65d..ed25ec630581a 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -203,5 +203,12 @@ cfg_if! { } } -#[cfg(target_family = "unix")] -pub use unistd::*; +// Per-family headers we export +cfg_if! { + if #[cfg(target_family = "unix")] { + // FIXME(pthread): eventually all platforms should use this module + #[cfg(target_os = "linux")] + pub use pthread::*; + pub use unistd::*; + } +} diff --git a/src/new/musl/mod.rs b/src/new/musl/mod.rs index d6297a8d27dd8..9fd4d8e96100d 100644 --- a/src/new/musl/mod.rs +++ b/src/new/musl/mod.rs @@ -20,6 +20,8 @@ pub(crate) mod bits { } } +pub(crate) mod pthread; + /// Directory: `sys/` /// /// diff --git a/src/new/musl/pthread.rs b/src/new/musl/pthread.rs new file mode 100644 index 0000000000000..7db80b0bbf716 --- /dev/null +++ b/src/new/musl/pthread.rs @@ -0,0 +1,53 @@ +//! Header: `pthread.h` +//! +//! + +pub use crate::new::common::linux_like::pthread::{ + pthread_getaffinity_np, + pthread_getname_np, + pthread_setaffinity_np, + pthread_setname_np, +}; +pub use crate::new::common::posix::pthread::{ + pthread_atfork, + pthread_attr_getguardsize, + pthread_attr_getinheritsched, + pthread_attr_getschedparam, + pthread_attr_getschedpolicy, + pthread_attr_setguardsize, + pthread_attr_setinheritsched, + pthread_attr_setschedparam, + pthread_attr_setschedpolicy, + pthread_barrier_destroy, + pthread_barrier_init, + pthread_barrier_wait, + pthread_barrierattr_destroy, + pthread_barrierattr_getpshared, + pthread_barrierattr_init, + pthread_barrierattr_setpshared, + pthread_condattr_getpshared, + pthread_create, + pthread_getcpuclockid, + pthread_getschedparam, + pthread_kill, + pthread_mutex_timedlock, + pthread_mutexattr_getprotocol, + pthread_mutexattr_getpshared, + pthread_mutexattr_setprotocol, + pthread_once, + pthread_setschedparam, + pthread_setschedprio, + pthread_sigmask, + pthread_spin_destroy, + pthread_spin_init, + pthread_spin_lock, + pthread_spin_trylock, + pthread_spin_unlock, +}; +#[cfg(not(target_env = "ohos"))] +pub use crate::new::common::posix::pthread::{ + pthread_cancel, + pthread_mutex_consistent, + pthread_mutexattr_getrobust, + pthread_mutexattr_setrobust, +}; diff --git a/src/new/uclibc/mod.rs b/src/new/uclibc/mod.rs index 4cb25389c91bf..f51ef6cc7ecee 100644 --- a/src/new/uclibc/mod.rs +++ b/src/new/uclibc/mod.rs @@ -3,4 +3,6 @@ //! * About: //! * Headers: (mirror) +#[cfg(target_os = "linux")] +pub(crate) mod pthread; pub(crate) mod unistd; diff --git a/src/new/uclibc/pthread.rs b/src/new/uclibc/pthread.rs new file mode 100644 index 0000000000000..8163be7916aec --- /dev/null +++ b/src/new/uclibc/pthread.rs @@ -0,0 +1,48 @@ +//! Header: `pthread.h` + +pub use crate::new::common::linux_like::pthread::{ + pthread_getaffinity_np, + pthread_getname_np, + pthread_setaffinity_np, + pthread_setname_np, +}; +pub use crate::new::common::posix::pthread::{ + pthread_atfork, + pthread_attr_getguardsize, + pthread_attr_getinheritsched, + pthread_attr_getschedparam, + pthread_attr_getschedpolicy, + pthread_attr_setguardsize, + pthread_attr_setinheritsched, + pthread_attr_setschedparam, + pthread_attr_setschedpolicy, + pthread_barrier_destroy, + pthread_barrier_init, + pthread_barrier_wait, + pthread_barrierattr_destroy, + pthread_barrierattr_getpshared, + pthread_barrierattr_init, + pthread_barrierattr_setpshared, + pthread_cancel, + pthread_condattr_getpshared, + pthread_create, + pthread_getcpuclockid, + pthread_getschedparam, + pthread_kill, + pthread_mutex_consistent, + pthread_mutex_timedlock, + pthread_mutexattr_getprotocol, + pthread_mutexattr_getpshared, + pthread_mutexattr_getrobust, + pthread_mutexattr_setprotocol, + pthread_mutexattr_setrobust, + pthread_once, + pthread_setschedparam, + pthread_setschedprio, + pthread_sigmask, + pthread_spin_destroy, + pthread_spin_init, + pthread_spin_lock, + pthread_spin_trylock, + pthread_spin_unlock, +}; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 1447f3929257e..057ae92e5f92b 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -5840,17 +5840,6 @@ cfg_if! { newattr: *const crate::mq_attr, oldattr: *mut crate::mq_attr, ) -> c_int; - - pub fn pthread_mutex_consistent(mutex: *mut pthread_mutex_t) -> c_int; - pub fn pthread_cancel(thread: crate::pthread_t) -> c_int; - pub fn pthread_mutexattr_getrobust( - attr: *const pthread_mutexattr_t, - robustness: *mut c_int, - ) -> c_int; - pub fn pthread_mutexattr_setrobust( - attr: *mut pthread_mutexattr_t, - robustness: c_int, - ) -> c_int; } } } @@ -6005,17 +5994,6 @@ extern "C" { len: *mut crate::socklen_t, flg: c_int, ) -> c_int; - pub fn pthread_getaffinity_np( - thread: crate::pthread_t, - cpusetsize: size_t, - cpuset: *mut crate::cpu_set_t, - ) -> c_int; - pub fn pthread_setaffinity_np( - thread: crate::pthread_t, - cpusetsize: size_t, - cpuset: *const crate::cpu_set_t, - ) -> c_int; - pub fn pthread_setschedprio(native: crate::pthread_t, priority: c_int) -> c_int; pub fn reboot(how_to: c_int) -> c_int; pub fn setfsgid(gid: crate::gid_t) -> c_int; pub fn setfsuid(uid: crate::uid_t) -> c_int; @@ -6102,11 +6080,6 @@ extern "C" { timeout: c_int, ) -> c_int; pub fn epoll_ctl(epfd: c_int, op: c_int, fd: c_int, event: *mut crate::epoll_event) -> c_int; - pub fn pthread_getschedparam( - native: crate::pthread_t, - policy: *mut c_int, - param: *mut crate::sched_param, - ) -> c_int; pub fn unshare(flags: c_int) -> c_int; pub fn umount(target: *const c_char) -> c_int; pub fn sched_get_priority_max(policy: c_int) -> c_int; @@ -6153,39 +6126,7 @@ extern "C" { timeout: *const crate::timespec, sigmask: *const sigset_t, ) -> c_int; - pub fn pthread_mutexattr_getprotocol( - attr: *const pthread_mutexattr_t, - protocol: *mut c_int, - ) -> c_int; - pub fn pthread_mutexattr_setprotocol(attr: *mut pthread_mutexattr_t, protocol: c_int) -> c_int; - #[cfg_attr(gnu_time_bits64, link_name = "__pthread_mutex_timedlock64")] - pub fn pthread_mutex_timedlock( - lock: *mut pthread_mutex_t, - abstime: *const crate::timespec, - ) -> c_int; - pub fn pthread_barrierattr_init(attr: *mut crate::pthread_barrierattr_t) -> c_int; - pub fn pthread_barrierattr_destroy(attr: *mut crate::pthread_barrierattr_t) -> c_int; - pub fn pthread_barrierattr_getpshared( - attr: *const crate::pthread_barrierattr_t, - shared: *mut c_int, - ) -> c_int; - pub fn pthread_barrierattr_setpshared( - attr: *mut crate::pthread_barrierattr_t, - shared: c_int, - ) -> c_int; - pub fn pthread_barrier_init( - barrier: *mut pthread_barrier_t, - attr: *const crate::pthread_barrierattr_t, - count: c_uint, - ) -> c_int; - pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> c_int; - pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> c_int; - pub fn pthread_spin_init(lock: *mut crate::pthread_spinlock_t, pshared: c_int) -> c_int; - pub fn pthread_spin_destroy(lock: *mut crate::pthread_spinlock_t) -> c_int; - pub fn pthread_spin_lock(lock: *mut crate::pthread_spinlock_t) -> c_int; - pub fn pthread_spin_trylock(lock: *mut crate::pthread_spinlock_t) -> c_int; - pub fn pthread_spin_unlock(lock: *mut crate::pthread_spinlock_t) -> c_int; pub fn clone( cb: extern "C" fn(*mut c_void) -> c_int, child_stack: *mut c_void, @@ -6201,45 +6142,10 @@ extern "C" { rqtp: *const crate::timespec, rmtp: *mut crate::timespec, ) -> c_int; - pub fn pthread_attr_getguardsize( - attr: *const crate::pthread_attr_t, - guardsize: *mut size_t, - ) -> c_int; - pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int; - pub fn pthread_attr_getinheritsched( - attr: *const crate::pthread_attr_t, - inheritsched: *mut c_int, - ) -> c_int; - pub fn pthread_attr_setinheritsched( - attr: *mut crate::pthread_attr_t, - inheritsched: c_int, - ) -> c_int; - pub fn pthread_attr_getschedpolicy( - attr: *const crate::pthread_attr_t, - policy: *mut c_int, - ) -> c_int; - pub fn pthread_attr_setschedpolicy(attr: *mut crate::pthread_attr_t, policy: c_int) -> c_int; - pub fn pthread_attr_getschedparam( - attr: *const crate::pthread_attr_t, - param: *mut crate::sched_param, - ) -> c_int; - pub fn pthread_attr_setschedparam( - attr: *mut crate::pthread_attr_t, - param: *const crate::sched_param, - ) -> 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 pthread_condattr_getpshared( - attr: *const pthread_condattr_t, - pshared: *mut c_int, - ) -> c_int; pub fn sysinfo(info: *mut crate::sysinfo) -> c_int; pub fn umount2(target: *const c_char, flags: c_int) -> c_int; - pub fn pthread_setschedparam( - native: crate::pthread_t, - policy: c_int, - param: *const crate::sched_param, - ) -> c_int; pub fn swapon(path: *const c_char, swapflags: c_int) -> c_int; pub fn sched_setscheduler( pid: crate::pid_t, @@ -6267,10 +6173,8 @@ extern "C" { result: *mut *mut crate::group, ) -> c_int; pub fn initgroups(user: *const c_char, group: crate::gid_t) -> c_int; - pub fn pthread_sigmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; pub fn sem_open(name: *const c_char, oflag: c_int, ...) -> *mut sem_t; pub fn getgrnam(name: *const c_char) -> *mut crate::group; - pub fn pthread_kill(thread: crate::pthread_t, sig: c_int) -> c_int; pub fn sem_unlink(name: *const c_char) -> c_int; pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; pub fn getpwnam_r( @@ -6288,11 +6192,6 @@ extern "C" { result: *mut *mut passwd, ) -> c_int; pub fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int; - pub fn pthread_atfork( - prepare: Option, - parent: Option, - child: Option, - ) -> c_int; pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; pub fn getgrouplist( user: *const c_char, @@ -6300,18 +6199,8 @@ extern "C" { groups: *mut crate::gid_t, ngroups: *mut c_int, ) -> c_int; - pub fn pthread_mutexattr_getpshared( - attr: *const pthread_mutexattr_t, - pshared: *mut c_int, - ) -> c_int; pub fn popen(command: *const c_char, mode: *const c_char) -> *mut crate::FILE; pub fn faccessat(dirfd: c_int, pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; - pub fn pthread_create( - native: *mut crate::pthread_t, - attr: *const crate::pthread_attr_t, - f: extern "C" fn(*mut c_void) -> *mut c_void, - value: *mut c_void, - ) -> c_int; pub fn dl_iterate_phdr( callback: Option< unsafe extern "C" fn( @@ -6464,7 +6353,6 @@ extern "C" { pub fn gethostid() -> c_long; - pub fn pthread_getcpuclockid(thread: crate::pthread_t, clk_id: *mut crate::clockid_t) -> c_int; pub fn memmem( haystack: *const c_void, haystacklen: size_t, @@ -6473,8 +6361,6 @@ extern "C" { ) -> *mut c_void; pub fn sched_getcpu() -> c_int; - pub fn pthread_getname_np(thread: crate::pthread_t, name: *mut c_char, len: size_t) -> c_int; - pub fn pthread_setname_np(thread: crate::pthread_t, name: *const c_char) -> c_int; pub fn getopt_long( argc: c_int, argv: *const *mut c_char, @@ -6483,8 +6369,6 @@ extern "C" { longindex: *mut c_int, ) -> c_int; - pub fn pthread_once(control: *mut pthread_once_t, routine: extern "C" fn()) -> c_int; - pub fn copy_file_range( fd_in: c_int, off_in: *mut off64_t, From 97b9c8722b81189765282c80051d8fe084512516 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 19 Nov 2025 21:11:20 -0600 Subject: [PATCH 1013/1228] ci: Disable tests on FreeBSD 13 These jobs almost always fail with a segfault so unfortunately aren't very useful. There isn't anything we can do to fix them on the libc side, given the issue comes from a kernel bug. The failing jobs have been a source of contributor confusion, so remove them here. Link: https://github.com/rust-lang/libc/issues/4740 Link: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=285873 (backport ) (cherry picked from commit 7b1449ab13ec24234793ed1c1fa75b7cf08742e8) --- .cirrus.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 8caefcbb28a12..11556721e9b06 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -7,15 +7,16 @@ task: # https://github.com/rust-lang/rust/issues/132185 RUST_BACKTRACE: "0" matrix: - - name: nightly freebsd-13 i686 - # Test i686 FreeBSD in 32-bit emulation on a 64-bit host. - env: - TARGET: i686-unknown-freebsd - freebsd_instance: - image_family: freebsd-13-4 - - name: nightly freebsd-13 x86_64 - freebsd_instance: - image_family: freebsd-13-4 + # FIXME(#4740): FreeBSD 13 tests are extremely flaky and fail most of the time + # - name: nightly freebsd-13 i686 + # # Test i686 FreeBSD in 32-bit emulation on a 64-bit host. + # env: + # TARGET: i686-unknown-freebsd + # freebsd_instance: + # image_family: freebsd-13-4 + # - name: nightly freebsd-13 x86_64 + # freebsd_instance: + # image_family: freebsd-13-4 - name: nightly freebsd-14 x86_64 freebsd_instance: image: freebsd-14-3-release-amd64-ufs From f8a3077afe6c70fca07ccd95e90ac491b986adac Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 19 Nov 2025 18:47:02 -0600 Subject: [PATCH 1014/1228] android: Move android-specific pthread bits to the `new` module (backport ) (cherry picked from commit af044aae8d9a5bb7f3bc50920f74769537bf3384) --- src/new/bionic_libc/mod.rs | 1 + src/new/bionic_libc/pthread.rs | 31 ++++++++++++ src/new/common/linux_like/mod.rs | 2 +- src/new/common/linux_like/pthread.rs | 2 +- src/new/common/posix/mod.rs | 2 +- src/new/common/posix/pthread.rs | 52 ++++++++++---------- src/new/mod.rs | 2 +- src/unix/linux_like/android/mod.rs | 73 +--------------------------- 8 files changed, 64 insertions(+), 101 deletions(-) create mode 100644 src/new/bionic_libc/pthread.rs diff --git a/src/new/bionic_libc/mod.rs b/src/new/bionic_libc/mod.rs index b608e2f123c96..1dd186e4f940f 100644 --- a/src/new/bionic_libc/mod.rs +++ b/src/new/bionic_libc/mod.rs @@ -2,5 +2,6 @@ //! //! +pub(crate) mod pthread; pub(crate) mod sys; pub(crate) mod unistd; diff --git a/src/new/bionic_libc/pthread.rs b/src/new/bionic_libc/pthread.rs new file mode 100644 index 0000000000000..ab2657c5a3a4c --- /dev/null +++ b/src/new/bionic_libc/pthread.rs @@ -0,0 +1,31 @@ +//! Header: `unistd.h` + +pub use crate::new::common::linux_like::pthread::pthread_setname_np; +pub use crate::new::common::posix::pthread::{ + pthread_atfork, + pthread_attr_getguardsize, + pthread_attr_getinheritsched, + pthread_attr_setguardsize, + pthread_attr_setinheritsched, + pthread_barrier_destroy, + pthread_barrier_init, + pthread_barrier_wait, + pthread_barrierattr_destroy, + pthread_barrierattr_getpshared, + pthread_barrierattr_init, + pthread_barrierattr_setpshared, + pthread_condattr_getpshared, + pthread_create, + pthread_getcpuclockid, + pthread_getschedparam, + pthread_kill, + pthread_mutex_timedlock, + pthread_mutexattr_getpshared, + pthread_setschedparam, + pthread_sigmask, + pthread_spin_destroy, + pthread_spin_init, + pthread_spin_lock, + pthread_spin_trylock, + pthread_spin_unlock, +}; diff --git a/src/new/common/linux_like/mod.rs b/src/new/common/linux_like/mod.rs index 1faf98706392f..b6700d8d0a84e 100644 --- a/src/new/common/linux_like/mod.rs +++ b/src/new/common/linux_like/mod.rs @@ -1,4 +1,4 @@ //! API that primarily comes from Linux but is also used other platforms (e.g. Android). -#[cfg(target_os = "linux")] +#[cfg(any(target_os = "android", target_os = "linux"))] pub(crate) mod pthread; diff --git a/src/new/common/linux_like/pthread.rs b/src/new/common/linux_like/pthread.rs index 19c7cd81ec3b9..1cb042668031f 100644 --- a/src/new/common/linux_like/pthread.rs +++ b/src/new/common/linux_like/pthread.rs @@ -18,6 +18,6 @@ extern "C" { cpuset: *const crate::cpu_set_t, ) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_setname_np(thread: crate::pthread_t, name: *const c_char) -> c_int; } diff --git a/src/new/common/posix/mod.rs b/src/new/common/posix/mod.rs index 0428f6503a8a8..4218ca8740b56 100644 --- a/src/new/common/posix/mod.rs +++ b/src/new/common/posix/mod.rs @@ -3,6 +3,6 @@ //! These can be found at: . // FIXME(pthread): eventually all platforms should use this module -#[cfg(target_os = "linux")] +#[cfg(any(target_os = "android", target_os = "linux"))] pub(crate) mod pthread; pub(crate) mod unistd; diff --git a/src/new/common/posix/pthread.rs b/src/new/common/posix/pthread.rs index 847467b6b965a..910b7f158f226 100644 --- a/src/new/common/posix/pthread.rs +++ b/src/new/common/posix/pthread.rs @@ -5,20 +5,20 @@ use crate::prelude::*; extern "C" { - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_atfork( prepare: Option, parent: Option, child: Option, ) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_attr_getguardsize( attr: *const crate::pthread_attr_t, guardsize: *mut size_t, ) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_attr_getinheritsched( attr: *const crate::pthread_attr_t, inheritsched: *mut c_int, @@ -36,10 +36,10 @@ extern "C" { policy: *mut c_int, ) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_attr_setinheritsched( attr: *mut crate::pthread_attr_t, inheritsched: c_int, @@ -54,32 +54,32 @@ extern "C" { #[cfg(target_os = "linux")] pub fn pthread_attr_setschedpolicy(attr: *mut crate::pthread_attr_t, policy: c_int) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_barrier_destroy(barrier: *mut crate::pthread_barrier_t) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_barrier_init( barrier: *mut crate::pthread_barrier_t, attr: *const crate::pthread_barrierattr_t, count: c_uint, ) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_barrier_wait(barrier: *mut crate::pthread_barrier_t) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_barrierattr_destroy(attr: *mut crate::pthread_barrierattr_t) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_barrierattr_getpshared( attr: *const crate::pthread_barrierattr_t, shared: *mut c_int, ) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_barrierattr_init(attr: *mut crate::pthread_barrierattr_t) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_barrierattr_setpshared( attr: *mut crate::pthread_barrierattr_t, shared: c_int, @@ -88,13 +88,13 @@ extern "C" { #[cfg(all(target_os = "linux", not(target_env = "ohos")))] pub fn pthread_cancel(thread: crate::pthread_t) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_condattr_getpshared( attr: *const crate::pthread_condattr_t, pshared: *mut c_int, ) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_create( native: *mut crate::pthread_t, attr: *const crate::pthread_attr_t, @@ -102,10 +102,10 @@ extern "C" { value: *mut c_void, ) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_getcpuclockid(thread: crate::pthread_t, clk_id: *mut crate::clockid_t) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_getschedparam( native: crate::pthread_t, policy: *mut c_int, @@ -114,13 +114,13 @@ extern "C" { // FIXME(reorg): In recent POSIX versions, this is a signal.h function and not required // in pthread. - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_kill(thread: crate::pthread_t, sig: c_int) -> c_int; #[cfg(all(target_os = "linux", not(target_env = "ohos")))] pub fn pthread_mutex_consistent(mutex: *mut crate::pthread_mutex_t) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] #[cfg_attr(gnu_time_bits64, link_name = "__pthread_mutex_timedlock64")] pub fn pthread_mutex_timedlock( lock: *mut crate::pthread_mutex_t, @@ -133,7 +133,7 @@ extern "C" { protocol: *mut c_int, ) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_mutexattr_getpshared( attr: *const crate::pthread_mutexattr_t, pshared: *mut c_int, @@ -160,7 +160,7 @@ extern "C" { #[cfg(target_os = "linux")] pub fn pthread_once(control: *mut crate::pthread_once_t, routine: extern "C" fn()) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_setschedparam( native: crate::pthread_t, policy: c_int, @@ -172,25 +172,25 @@ extern "C" { // FIXME(reorg): In recent POSIX versions, this is a signal.h function and not required // in pthread. - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_sigmask( how: c_int, set: *const crate::sigset_t, oldset: *mut crate::sigset_t, ) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_spin_destroy(lock: *mut crate::pthread_spinlock_t) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_spin_init(lock: *mut crate::pthread_spinlock_t, pshared: c_int) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_spin_lock(lock: *mut crate::pthread_spinlock_t) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_spin_trylock(lock: *mut crate::pthread_spinlock_t) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_spin_unlock(lock: *mut crate::pthread_spinlock_t) -> c_int; } diff --git a/src/new/mod.rs b/src/new/mod.rs index ed25ec630581a..87168614c7d4a 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -207,7 +207,7 @@ cfg_if! { cfg_if! { if #[cfg(target_family = "unix")] { // FIXME(pthread): eventually all platforms should use this module - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "android", target_os = "linux"))] pub use pthread::*; pub use unistd::*; } diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 4419dde2d027c..36f8e3841bc2e 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3547,11 +3547,6 @@ extern "C" { timeout: c_int, ) -> c_int; pub fn epoll_ctl(epfd: c_int, op: c_int, fd: c_int, event: *mut crate::epoll_event) -> c_int; - pub fn pthread_getschedparam( - native: crate::pthread_t, - policy: *mut c_int, - param: *mut crate::sched_param, - ) -> c_int; pub fn unshare(flags: c_int) -> c_int; pub fn umount(target: *const c_char) -> c_int; pub fn sched_get_priority_max(policy: c_int) -> c_int; @@ -3592,32 +3587,7 @@ extern "C" { timeout: *const crate::timespec, sigmask: *const sigset_t, ) -> c_int; - pub fn pthread_mutex_timedlock( - lock: *mut pthread_mutex_t, - abstime: *const crate::timespec, - ) -> c_int; - pub fn pthread_barrierattr_init(attr: *mut crate::pthread_barrierattr_t) -> c_int; - pub fn pthread_barrierattr_destroy(attr: *mut crate::pthread_barrierattr_t) -> c_int; - pub fn pthread_barrierattr_getpshared( - attr: *const crate::pthread_barrierattr_t, - shared: *mut c_int, - ) -> c_int; - pub fn pthread_barrierattr_setpshared( - attr: *mut crate::pthread_barrierattr_t, - shared: c_int, - ) -> c_int; - pub fn pthread_barrier_init( - barrier: *mut pthread_barrier_t, - attr: *const crate::pthread_barrierattr_t, - count: c_uint, - ) -> c_int; - pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> c_int; - pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> c_int; - pub fn pthread_spin_init(lock: *mut crate::pthread_spinlock_t, pshared: c_int) -> c_int; - pub fn pthread_spin_destroy(lock: *mut crate::pthread_spinlock_t) -> c_int; - pub fn pthread_spin_lock(lock: *mut crate::pthread_spinlock_t) -> c_int; - pub fn pthread_spin_trylock(lock: *mut crate::pthread_spinlock_t) -> c_int; - pub fn pthread_spin_unlock(lock: *mut crate::pthread_spinlock_t) -> c_int; + pub fn clone( cb: extern "C" fn(*mut c_void) -> c_int, child_stack: *mut c_void, @@ -3632,29 +3602,11 @@ extern "C" { rqtp: *const crate::timespec, rmtp: *mut crate::timespec, ) -> c_int; - pub fn pthread_attr_getguardsize( - attr: *const crate::pthread_attr_t, - guardsize: *mut size_t, - ) -> c_int; - pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int; - pub fn pthread_attr_getinheritsched( - attr: *const crate::pthread_attr_t, - flag: *mut c_int, - ) -> c_int; - pub fn pthread_attr_setinheritsched(attr: *mut crate::pthread_attr_t, flag: c_int) -> 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 pthread_condattr_getpshared( - attr: *const pthread_condattr_t, - pshared: *mut c_int, - ) -> c_int; pub fn sysinfo(info: *mut crate::sysinfo) -> c_int; pub fn umount2(target: *const c_char, flags: c_int) -> c_int; - pub fn pthread_setschedparam( - native: crate::pthread_t, - policy: c_int, - param: *const crate::sched_param, - ) -> c_int; pub fn swapon(path: *const c_char, swapflags: c_int) -> c_int; pub fn sched_setscheduler( pid: crate::pid_t, @@ -3682,10 +3634,8 @@ extern "C" { buflen: size_t, result: *mut *mut crate::group, ) -> c_int; - pub fn pthread_sigmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; pub fn sem_open(name: *const c_char, oflag: c_int, ...) -> *mut sem_t; pub fn getgrnam(name: *const c_char) -> *mut crate::group; - pub fn pthread_kill(thread: crate::pthread_t, sig: c_int) -> c_int; pub fn sem_unlink(name: *const c_char) -> c_int; pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; pub fn getpwnam_r( @@ -3708,11 +3658,6 @@ extern "C" { timeout: *const crate::timespec, ) -> c_int; pub fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int; - pub fn pthread_atfork( - prepare: Option, - parent: Option, - child: Option, - ) -> c_int; pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; pub fn getgrouplist( user: *const c_char, @@ -3721,18 +3666,8 @@ extern "C" { ngroups: *mut c_int, ) -> c_int; pub fn initgroups(user: *const c_char, group: crate::gid_t) -> c_int; - pub fn pthread_mutexattr_getpshared( - attr: *const pthread_mutexattr_t, - pshared: *mut c_int, - ) -> c_int; pub fn popen(command: *const c_char, mode: *const c_char) -> *mut crate::FILE; pub fn faccessat(dirfd: c_int, pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; - pub fn pthread_create( - native: *mut crate::pthread_t, - attr: *const crate::pthread_attr_t, - f: extern "C" fn(*mut c_void) -> *mut c_void, - value: *mut c_void, - ) -> c_int; pub fn __errno() -> *mut c_int; pub fn inotify_rm_watch(fd: c_int, wd: u32) -> c_int; pub fn inotify_init() -> c_int; @@ -3768,8 +3703,6 @@ extern "C" { 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 pthread_setname_np(thread: crate::pthread_t, name: *const c_char) -> c_int; - pub fn __system_property_set(__name: *const c_char, __value: *const c_char) -> c_int; pub fn __system_property_get(__name: *const c_char, __value: *mut c_char) -> c_int; pub fn __system_property_find(__name: *const c_char) -> *const prop_info; @@ -3794,8 +3727,6 @@ extern "C" { pub fn reallocarray(ptr: *mut c_void, nmemb: size_t, size: size_t) -> *mut c_void; - pub fn pthread_getcpuclockid(thread: crate::pthread_t, clk_id: *mut crate::clockid_t) -> c_int; - pub fn dirname(path: *const c_char) -> *mut c_char; pub fn basename(path: *const c_char) -> *mut c_char; pub fn getopt_long( From 807889d92b076e0b2d632035f132525411a418cf Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 19 Nov 2025 19:19:04 -0600 Subject: [PATCH 1015/1228] emscripten: Move emscripten-specific pthread bits to the `new` module (backport ) (cherry picked from commit 6029abbeeca7458d5ad0b463148f5ff30210188f) --- src/new/common/posix/mod.rs | 2 +- src/new/common/posix/pthread.rs | 2 +- src/new/emscripten/mod.rs | 1 + src/new/emscripten/pthread.rs | 3 +++ src/new/mod.rs | 2 +- src/unix/linux_like/emscripten/mod.rs | 6 ------ 6 files changed, 7 insertions(+), 9 deletions(-) create mode 100644 src/new/emscripten/pthread.rs diff --git a/src/new/common/posix/mod.rs b/src/new/common/posix/mod.rs index 4218ca8740b56..6008881d7469c 100644 --- a/src/new/common/posix/mod.rs +++ b/src/new/common/posix/mod.rs @@ -3,6 +3,6 @@ //! These can be found at: . // FIXME(pthread): eventually all platforms should use this module -#[cfg(any(target_os = "android", target_os = "linux"))] +#[cfg(any(target_os = "android", target_os = "emscripten", target_os = "linux"))] pub(crate) mod pthread; pub(crate) mod unistd; diff --git a/src/new/common/posix/pthread.rs b/src/new/common/posix/pthread.rs index 910b7f158f226..894957edc88c6 100644 --- a/src/new/common/posix/pthread.rs +++ b/src/new/common/posix/pthread.rs @@ -94,7 +94,7 @@ extern "C" { pshared: *mut c_int, ) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "emscripten", target_os = "linux"))] pub fn pthread_create( native: *mut crate::pthread_t, attr: *const crate::pthread_attr_t, diff --git a/src/new/emscripten/mod.rs b/src/new/emscripten/mod.rs index fec0fe3bfdd43..f0765d3e06fff 100644 --- a/src/new/emscripten/mod.rs +++ b/src/new/emscripten/mod.rs @@ -2,4 +2,5 @@ //! //! * Headers: +pub(crate) mod pthread; pub(crate) mod unistd; diff --git a/src/new/emscripten/pthread.rs b/src/new/emscripten/pthread.rs new file mode 100644 index 0000000000000..11da53ef4e243 --- /dev/null +++ b/src/new/emscripten/pthread.rs @@ -0,0 +1,3 @@ +//! Header: `pthread.h` + +pub use crate::new::common::posix::pthread::pthread_create; diff --git a/src/new/mod.rs b/src/new/mod.rs index 87168614c7d4a..72e838fee6ecb 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -207,7 +207,7 @@ cfg_if! { cfg_if! { if #[cfg(target_family = "unix")] { // FIXME(pthread): eventually all platforms should use this module - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "emscripten", target_os = "linux"))] pub use pthread::*; pub use unistd::*; } diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 820480213883b..8996527e2e8e1 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -1436,12 +1436,6 @@ extern "C" { pub fn ioctl(fd: c_int, request: c_int, ...) -> c_int; pub fn getpriority(which: c_int, who: crate::id_t) -> c_int; pub fn setpriority(which: c_int, who: crate::id_t, prio: c_int) -> c_int; - pub fn pthread_create( - native: *mut crate::pthread_t, - attr: *const crate::pthread_attr_t, - f: extern "C" fn(*mut c_void) -> *mut c_void, - value: *mut c_void, - ) -> c_int; pub fn getentropy(buf: *mut c_void, buflen: size_t) -> c_int; From 7fb2fe3ad298e319ceb9663bafdb9763905884fe Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 19 Nov 2025 19:53:12 -0600 Subject: [PATCH 1016/1228] linux-like: Move pthread API in to the `new` module (backport ) (cherry picked from commit bed5b8da278b105c1bf91c19786f2606048256b7) --- src/new/bionic_libc/pthread.rs | 13 +++- src/new/common/linux_like/mod.rs | 2 +- src/new/common/linux_like/pthread.rs | 2 + src/new/common/posix/pthread.rs | 90 +++++++++++++++++++++++++++ src/new/emscripten/pthread.rs | 13 +++- src/new/glibc/sysdeps/nptl/pthread.rs | 9 +++ src/new/musl/pthread.rs | 9 +++ src/new/uclibc/pthread.rs | 9 +++ src/unix/linux_like/mod.rs | 27 +------- 9 files changed, 145 insertions(+), 29 deletions(-) diff --git a/src/new/bionic_libc/pthread.rs b/src/new/bionic_libc/pthread.rs index ab2657c5a3a4c..4997547ff0905 100644 --- a/src/new/bionic_libc/pthread.rs +++ b/src/new/bionic_libc/pthread.rs @@ -1,12 +1,17 @@ //! Header: `unistd.h` -pub use crate::new::common::linux_like::pthread::pthread_setname_np; +pub use crate::new::common::linux_like::pthread::{ + pthread_getattr_np, + pthread_setname_np, +}; pub use crate::new::common::posix::pthread::{ pthread_atfork, pthread_attr_getguardsize, pthread_attr_getinheritsched, + pthread_attr_getstack, pthread_attr_setguardsize, pthread_attr_setinheritsched, + pthread_attr_setstack, pthread_barrier_destroy, pthread_barrier_init, pthread_barrier_wait, @@ -14,13 +19,19 @@ pub use crate::new::common::posix::pthread::{ pthread_barrierattr_getpshared, pthread_barrierattr_init, pthread_barrierattr_setpshared, + pthread_condattr_getclock, pthread_condattr_getpshared, + pthread_condattr_setclock, + pthread_condattr_setpshared, pthread_create, pthread_getcpuclockid, pthread_getschedparam, pthread_kill, pthread_mutex_timedlock, pthread_mutexattr_getpshared, + pthread_mutexattr_setpshared, + pthread_rwlockattr_getpshared, + pthread_rwlockattr_setpshared, pthread_setschedparam, pthread_sigmask, pthread_spin_destroy, diff --git a/src/new/common/linux_like/mod.rs b/src/new/common/linux_like/mod.rs index b6700d8d0a84e..6afd13c30c321 100644 --- a/src/new/common/linux_like/mod.rs +++ b/src/new/common/linux_like/mod.rs @@ -1,4 +1,4 @@ //! API that primarily comes from Linux but is also used other platforms (e.g. Android). -#[cfg(any(target_os = "android", target_os = "linux"))] +#[cfg(any(target_os = "android", target_os = "emscripten", target_os = "linux"))] pub(crate) mod pthread; diff --git a/src/new/common/linux_like/pthread.rs b/src/new/common/linux_like/pthread.rs index 1cb042668031f..165f3254e79da 100644 --- a/src/new/common/linux_like/pthread.rs +++ b/src/new/common/linux_like/pthread.rs @@ -8,6 +8,8 @@ extern "C" { cpuset: *mut crate::cpu_set_t, ) -> c_int; + pub fn pthread_getattr_np(native: crate::pthread_t, attr: *mut crate::pthread_attr_t) -> c_int; + #[cfg(target_os = "linux")] pub fn pthread_getname_np(thread: crate::pthread_t, name: *mut c_char, len: size_t) -> c_int; diff --git a/src/new/common/posix/pthread.rs b/src/new/common/posix/pthread.rs index 894957edc88c6..54f21b602f9c8 100644 --- a/src/new/common/posix/pthread.rs +++ b/src/new/common/posix/pthread.rs @@ -36,6 +36,18 @@ extern "C" { policy: *mut c_int, ) -> c_int; + #[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "linux", + target_os = "l4re" + ))] + pub fn pthread_attr_getstack( + attr: *const crate::pthread_attr_t, + stackaddr: *mut *mut c_void, + stacksize: *mut size_t, + ) -> c_int; + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int; @@ -54,6 +66,18 @@ extern "C" { #[cfg(target_os = "linux")] pub fn pthread_attr_setschedpolicy(attr: *mut crate::pthread_attr_t, policy: c_int) -> c_int; + #[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "linux", + target_os = "l4re" + ))] + pub fn pthread_attr_setstack( + attr: *mut crate::pthread_attr_t, + stackaddr: *mut c_void, + stacksize: size_t, + ) -> c_int; + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_barrier_destroy(barrier: *mut crate::pthread_barrier_t) -> c_int; @@ -88,12 +112,45 @@ extern "C" { #[cfg(all(target_os = "linux", not(target_env = "ohos")))] pub fn pthread_cancel(thread: crate::pthread_t) -> c_int; + #[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "linux", + target_os = "l4re" + ))] + pub fn pthread_condattr_getclock( + attr: *const crate::pthread_condattr_t, + clock_id: *mut crate::clockid_t, + ) -> c_int; + #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_condattr_getpshared( attr: *const crate::pthread_condattr_t, pshared: *mut c_int, ) -> c_int; + #[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "linux", + target_os = "l4re" + ))] + pub fn pthread_condattr_setclock( + attr: *mut crate::pthread_condattr_t, + clock_id: crate::clockid_t, + ) -> c_int; + + #[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "linux", + target_os = "l4re" + ))] + pub fn pthread_condattr_setpshared( + attr: *mut crate::pthread_condattr_t, + pshared: c_int, + ) -> c_int; + #[cfg(any(target_os = "android", target_os = "emscripten", target_os = "linux"))] pub fn pthread_create( native: *mut crate::pthread_t, @@ -151,12 +208,45 @@ extern "C" { protocol: c_int, ) -> c_int; + #[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "linux", + target_os = "l4re" + ))] + pub fn pthread_mutexattr_setpshared( + attr: *mut crate::pthread_mutexattr_t, + pshared: c_int, + ) -> c_int; + #[cfg(all(target_os = "linux", not(target_env = "ohos")))] pub fn pthread_mutexattr_setrobust( attr: *mut crate::pthread_mutexattr_t, robustness: c_int, ) -> c_int; + #[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "linux", + target_os = "l4re" + ))] + pub fn pthread_rwlockattr_getpshared( + attr: *const crate::pthread_rwlockattr_t, + val: *mut c_int, + ) -> c_int; + + #[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "linux", + target_os = "l4re" + ))] + pub fn pthread_rwlockattr_setpshared( + attr: *mut crate::pthread_rwlockattr_t, + val: c_int, + ) -> c_int; + #[cfg(target_os = "linux")] pub fn pthread_once(control: *mut crate::pthread_once_t, routine: extern "C" fn()) -> c_int; diff --git a/src/new/emscripten/pthread.rs b/src/new/emscripten/pthread.rs index 11da53ef4e243..21982b7979d43 100644 --- a/src/new/emscripten/pthread.rs +++ b/src/new/emscripten/pthread.rs @@ -1,3 +1,14 @@ //! Header: `pthread.h` -pub use crate::new::common::posix::pthread::pthread_create; +pub use crate::new::common::linux_like::pthread::pthread_getattr_np; +pub use crate::new::common::posix::pthread::{ + pthread_attr_getstack, + pthread_attr_setstack, + pthread_condattr_getclock, + pthread_condattr_setclock, + pthread_condattr_setpshared, + pthread_create, + pthread_mutexattr_setpshared, + pthread_rwlockattr_getpshared, + pthread_rwlockattr_setpshared, +}; diff --git a/src/new/glibc/sysdeps/nptl/pthread.rs b/src/new/glibc/sysdeps/nptl/pthread.rs index 5548aed823180..27b17285b53ba 100644 --- a/src/new/glibc/sysdeps/nptl/pthread.rs +++ b/src/new/glibc/sysdeps/nptl/pthread.rs @@ -4,6 +4,7 @@ pub use crate::new::common::linux_like::pthread::{ pthread_getaffinity_np, + pthread_getattr_np, pthread_getname_np, pthread_setaffinity_np, pthread_setname_np, @@ -14,10 +15,12 @@ pub use crate::new::common::posix::pthread::{ pthread_attr_getinheritsched, pthread_attr_getschedparam, pthread_attr_getschedpolicy, + pthread_attr_getstack, pthread_attr_setguardsize, pthread_attr_setinheritsched, pthread_attr_setschedparam, pthread_attr_setschedpolicy, + pthread_attr_setstack, pthread_barrier_destroy, pthread_barrier_init, pthread_barrier_wait, @@ -26,7 +29,10 @@ pub use crate::new::common::posix::pthread::{ pthread_barrierattr_init, pthread_barrierattr_setpshared, pthread_cancel, + pthread_condattr_getclock, pthread_condattr_getpshared, + pthread_condattr_setclock, + pthread_condattr_setpshared, pthread_create, pthread_getcpuclockid, pthread_getschedparam, @@ -37,8 +43,11 @@ pub use crate::new::common::posix::pthread::{ pthread_mutexattr_getpshared, pthread_mutexattr_getrobust, pthread_mutexattr_setprotocol, + pthread_mutexattr_setpshared, pthread_mutexattr_setrobust, pthread_once, + pthread_rwlockattr_getpshared, + pthread_rwlockattr_setpshared, pthread_setschedparam, pthread_setschedprio, pthread_sigmask, diff --git a/src/new/musl/pthread.rs b/src/new/musl/pthread.rs index 7db80b0bbf716..0d578bc9665dc 100644 --- a/src/new/musl/pthread.rs +++ b/src/new/musl/pthread.rs @@ -4,6 +4,7 @@ pub use crate::new::common::linux_like::pthread::{ pthread_getaffinity_np, + pthread_getattr_np, pthread_getname_np, pthread_setaffinity_np, pthread_setname_np, @@ -14,10 +15,12 @@ pub use crate::new::common::posix::pthread::{ pthread_attr_getinheritsched, pthread_attr_getschedparam, pthread_attr_getschedpolicy, + pthread_attr_getstack, pthread_attr_setguardsize, pthread_attr_setinheritsched, pthread_attr_setschedparam, pthread_attr_setschedpolicy, + pthread_attr_setstack, pthread_barrier_destroy, pthread_barrier_init, pthread_barrier_wait, @@ -25,7 +28,10 @@ pub use crate::new::common::posix::pthread::{ pthread_barrierattr_getpshared, pthread_barrierattr_init, pthread_barrierattr_setpshared, + pthread_condattr_getclock, pthread_condattr_getpshared, + pthread_condattr_setclock, + pthread_condattr_setpshared, pthread_create, pthread_getcpuclockid, pthread_getschedparam, @@ -34,7 +40,10 @@ pub use crate::new::common::posix::pthread::{ pthread_mutexattr_getprotocol, pthread_mutexattr_getpshared, pthread_mutexattr_setprotocol, + pthread_mutexattr_setpshared, pthread_once, + pthread_rwlockattr_getpshared, + pthread_rwlockattr_setpshared, pthread_setschedparam, pthread_setschedprio, pthread_sigmask, diff --git a/src/new/uclibc/pthread.rs b/src/new/uclibc/pthread.rs index 8163be7916aec..5dd1775bc187f 100644 --- a/src/new/uclibc/pthread.rs +++ b/src/new/uclibc/pthread.rs @@ -2,6 +2,7 @@ pub use crate::new::common::linux_like::pthread::{ pthread_getaffinity_np, + pthread_getattr_np, pthread_getname_np, pthread_setaffinity_np, pthread_setname_np, @@ -12,10 +13,12 @@ pub use crate::new::common::posix::pthread::{ pthread_attr_getinheritsched, pthread_attr_getschedparam, pthread_attr_getschedpolicy, + pthread_attr_getstack, pthread_attr_setguardsize, pthread_attr_setinheritsched, pthread_attr_setschedparam, pthread_attr_setschedpolicy, + pthread_attr_setstack, pthread_barrier_destroy, pthread_barrier_init, pthread_barrier_wait, @@ -24,7 +27,10 @@ pub use crate::new::common::posix::pthread::{ pthread_barrierattr_init, pthread_barrierattr_setpshared, pthread_cancel, + pthread_condattr_getclock, pthread_condattr_getpshared, + pthread_condattr_setclock, + pthread_condattr_setpshared, pthread_create, pthread_getcpuclockid, pthread_getschedparam, @@ -35,8 +41,11 @@ pub use crate::new::common::posix::pthread::{ pthread_mutexattr_getpshared, pthread_mutexattr_getrobust, pthread_mutexattr_setprotocol, + pthread_mutexattr_setpshared, pthread_mutexattr_setrobust, pthread_once, + pthread_rwlockattr_getpshared, + pthread_rwlockattr_setpshared, pthread_setschedparam, pthread_setschedprio, pthread_sigmask, diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 86f11f3b2c08c..c4ce06c92ec25 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1843,17 +1843,6 @@ extern "C" { pub fn dirfd(dirp: *mut crate::DIR) -> c_int; - pub fn pthread_getattr_np(native: crate::pthread_t, attr: *mut crate::pthread_attr_t) -> c_int; - pub fn pthread_attr_getstack( - attr: *const crate::pthread_attr_t, - stackaddr: *mut *mut c_void, - stacksize: *mut size_t, - ) -> c_int; - pub fn pthread_attr_setstack( - attr: *mut crate::pthread_attr_t, - stackaddr: *mut c_void, - stacksize: size_t, - ) -> c_int; pub fn memalign(align: size_t, size: size_t) -> *mut c_void; pub fn setgroups(ngroups: size_t, ptr: *const crate::gid_t) -> c_int; pub fn pipe2(fds: *mut c_int, flags: c_int) -> c_int; @@ -1878,21 +1867,7 @@ extern "C" { pub fn newlocale(mask: c_int, locale: *const c_char, base: crate::locale_t) -> crate::locale_t; pub fn uselocale(loc: crate::locale_t) -> crate::locale_t; pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, dev: dev_t) -> c_int; - pub fn pthread_condattr_getclock( - attr: *const pthread_condattr_t, - clock_id: *mut clockid_t, - ) -> c_int; - pub fn pthread_condattr_setclock( - attr: *mut pthread_condattr_t, - clock_id: crate::clockid_t, - ) -> c_int; - pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: c_int) -> c_int; - pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, pshared: c_int) -> c_int; - pub fn pthread_rwlockattr_getpshared( - attr: *const pthread_rwlockattr_t, - val: *mut c_int, - ) -> c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: c_int) -> c_int; + pub fn ptsname_r(fd: c_int, buf: *mut c_char, buflen: size_t) -> c_int; pub fn clearenv() -> c_int; pub fn waitid( From 17b34ea11d32e0731b6d08aca7bf62db39ac0467 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 19 Nov 2025 22:34:31 -0600 Subject: [PATCH 1017/1228] l4re: Update available pthread API This is imperfect but should get things closer to what is available on l4re's uclibc fork. Based on work by Marius Melzer [#4479]. [#4479]: https://github.com/rust-lang/libc/pull/4479 (backport ) (cherry picked from commit 34d8ce72d307b2432efd49038d20f059ac5f0e61) --- src/new/common/linux_like/mod.rs | 7 +++- src/new/common/posix/mod.rs | 7 +++- src/new/common/posix/pthread.rs | 63 +++++++++++++++++--------------- src/new/mod.rs | 7 +++- src/new/uclibc/mod.rs | 1 - src/new/uclibc/pthread.rs | 25 ++++++++----- 6 files changed, 68 insertions(+), 42 deletions(-) diff --git a/src/new/common/linux_like/mod.rs b/src/new/common/linux_like/mod.rs index 6afd13c30c321..9c41fe256ceff 100644 --- a/src/new/common/linux_like/mod.rs +++ b/src/new/common/linux_like/mod.rs @@ -1,4 +1,9 @@ //! API that primarily comes from Linux but is also used other platforms (e.g. Android). -#[cfg(any(target_os = "android", target_os = "emscripten", target_os = "linux"))] +#[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "l4re", + target_os = "linux" +))] pub(crate) mod pthread; diff --git a/src/new/common/posix/mod.rs b/src/new/common/posix/mod.rs index 6008881d7469c..9e92165656daa 100644 --- a/src/new/common/posix/mod.rs +++ b/src/new/common/posix/mod.rs @@ -3,6 +3,11 @@ //! These can be found at: . // FIXME(pthread): eventually all platforms should use this module -#[cfg(any(target_os = "android", target_os = "emscripten", target_os = "linux"))] +#[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "l4re", + target_os = "linux" +))] pub(crate) mod pthread; pub(crate) mod unistd; diff --git a/src/new/common/posix/pthread.rs b/src/new/common/posix/pthread.rs index 54f21b602f9c8..d32d50e7fd746 100644 --- a/src/new/common/posix/pthread.rs +++ b/src/new/common/posix/pthread.rs @@ -12,25 +12,25 @@ extern "C" { child: Option, ) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_attr_getguardsize( attr: *const crate::pthread_attr_t, guardsize: *mut size_t, ) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_attr_getinheritsched( attr: *const crate::pthread_attr_t, inheritsched: *mut c_int, ) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "l4re", target_os = "linux"))] pub fn pthread_attr_getschedparam( attr: *const crate::pthread_attr_t, param: *mut crate::sched_param, ) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "l4re", target_os = "linux"))] pub fn pthread_attr_getschedpolicy( attr: *const crate::pthread_attr_t, policy: *mut c_int, @@ -48,22 +48,22 @@ extern "C" { stacksize: *mut size_t, ) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_attr_setinheritsched( attr: *mut crate::pthread_attr_t, inheritsched: c_int, ) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "l4re", target_os = "linux"))] pub fn pthread_attr_setschedparam( attr: *mut crate::pthread_attr_t, param: *const crate::sched_param, ) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "l4re", target_os = "linux"))] pub fn pthread_attr_setschedpolicy(attr: *mut crate::pthread_attr_t, policy: c_int) -> c_int; #[cfg(any( @@ -78,20 +78,20 @@ extern "C" { stacksize: size_t, ) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_barrier_destroy(barrier: *mut crate::pthread_barrier_t) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_barrier_init( barrier: *mut crate::pthread_barrier_t, attr: *const crate::pthread_barrierattr_t, count: c_uint, ) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_barrier_wait(barrier: *mut crate::pthread_barrier_t) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_barrierattr_destroy(attr: *mut crate::pthread_barrierattr_t) -> c_int; #[cfg(any(target_os = "android", target_os = "linux"))] @@ -100,16 +100,16 @@ extern "C" { shared: *mut c_int, ) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_barrierattr_init(attr: *mut crate::pthread_barrierattr_t) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_barrierattr_setpshared( attr: *mut crate::pthread_barrierattr_t, shared: c_int, ) -> c_int; - #[cfg(all(target_os = "linux", not(target_env = "ohos")))] + #[cfg(any(target_os = "l4re", all(target_os = "linux", not(target_env = "ohos"))))] pub fn pthread_cancel(thread: crate::pthread_t) -> c_int; #[cfg(any( @@ -123,7 +123,7 @@ extern "C" { clock_id: *mut crate::clockid_t, ) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_condattr_getpshared( attr: *const crate::pthread_condattr_t, pshared: *mut c_int, @@ -151,7 +151,12 @@ extern "C" { pshared: c_int, ) -> c_int; - #[cfg(any(target_os = "android", target_os = "emscripten", target_os = "linux"))] + #[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "l4re", + target_os = "linux" + ))] pub fn pthread_create( native: *mut crate::pthread_t, attr: *const crate::pthread_attr_t, @@ -162,7 +167,7 @@ extern "C" { #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_getcpuclockid(thread: crate::pthread_t, clk_id: *mut crate::clockid_t) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_getschedparam( native: crate::pthread_t, policy: *mut c_int, @@ -171,13 +176,13 @@ extern "C" { // FIXME(reorg): In recent POSIX versions, this is a signal.h function and not required // in pthread. - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_kill(thread: crate::pthread_t, sig: c_int) -> c_int; #[cfg(all(target_os = "linux", not(target_env = "ohos")))] pub fn pthread_mutex_consistent(mutex: *mut crate::pthread_mutex_t) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] #[cfg_attr(gnu_time_bits64, link_name = "__pthread_mutex_timedlock64")] pub fn pthread_mutex_timedlock( lock: *mut crate::pthread_mutex_t, @@ -190,7 +195,7 @@ extern "C" { protocol: *mut c_int, ) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_mutexattr_getpshared( attr: *const crate::pthread_mutexattr_t, pshared: *mut c_int, @@ -247,10 +252,10 @@ extern "C" { val: c_int, ) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "l4re", target_os = "linux"))] pub fn pthread_once(control: *mut crate::pthread_once_t, routine: extern "C" fn()) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_setschedparam( native: crate::pthread_t, policy: c_int, @@ -262,25 +267,25 @@ extern "C" { // FIXME(reorg): In recent POSIX versions, this is a signal.h function and not required // in pthread. - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_sigmask( how: c_int, set: *const crate::sigset_t, oldset: *mut crate::sigset_t, ) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_spin_destroy(lock: *mut crate::pthread_spinlock_t) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_spin_init(lock: *mut crate::pthread_spinlock_t, pshared: c_int) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_spin_lock(lock: *mut crate::pthread_spinlock_t) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_spin_trylock(lock: *mut crate::pthread_spinlock_t) -> c_int; - #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_spin_unlock(lock: *mut crate::pthread_spinlock_t) -> c_int; } diff --git a/src/new/mod.rs b/src/new/mod.rs index 72e838fee6ecb..2d71b73a79315 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -207,7 +207,12 @@ cfg_if! { cfg_if! { if #[cfg(target_family = "unix")] { // FIXME(pthread): eventually all platforms should use this module - #[cfg(any(target_os = "android", target_os = "emscripten", target_os = "linux"))] + #[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "l4re", + target_os = "linux" + ))] pub use pthread::*; pub use unistd::*; } diff --git a/src/new/uclibc/mod.rs b/src/new/uclibc/mod.rs index f51ef6cc7ecee..6bf83ef2e1d38 100644 --- a/src/new/uclibc/mod.rs +++ b/src/new/uclibc/mod.rs @@ -3,6 +3,5 @@ //! * About: //! * Headers: (mirror) -#[cfg(target_os = "linux")] pub(crate) mod pthread; pub(crate) mod unistd; diff --git a/src/new/uclibc/pthread.rs b/src/new/uclibc/pthread.rs index 5dd1775bc187f..bd7075d1ce2ef 100644 --- a/src/new/uclibc/pthread.rs +++ b/src/new/uclibc/pthread.rs @@ -1,14 +1,29 @@ //! Header: `pthread.h` +//! +//! Note that The l4re port of uclibc doesn't yet support all `pthread_*` API that is +//! available upstream. +pub use crate::new::common::linux_like::pthread::pthread_getattr_np; +#[cfg(not(target_os = "l4re"))] pub use crate::new::common::linux_like::pthread::{ pthread_getaffinity_np, - pthread_getattr_np, pthread_getname_np, pthread_setaffinity_np, pthread_setname_np, }; +#[cfg(not(target_os = "l4re"))] pub use crate::new::common::posix::pthread::{ pthread_atfork, + pthread_barrierattr_getpshared, + pthread_getcpuclockid, + pthread_mutex_consistent, + pthread_mutexattr_getprotocol, + pthread_mutexattr_getrobust, + pthread_mutexattr_setprotocol, + pthread_mutexattr_setrobust, + pthread_setschedprio, +}; +pub use crate::new::common::posix::pthread::{ pthread_attr_getguardsize, pthread_attr_getinheritsched, pthread_attr_getschedparam, @@ -23,7 +38,6 @@ pub use crate::new::common::posix::pthread::{ pthread_barrier_init, pthread_barrier_wait, pthread_barrierattr_destroy, - pthread_barrierattr_getpshared, pthread_barrierattr_init, pthread_barrierattr_setpshared, pthread_cancel, @@ -32,22 +46,15 @@ pub use crate::new::common::posix::pthread::{ pthread_condattr_setclock, pthread_condattr_setpshared, pthread_create, - pthread_getcpuclockid, pthread_getschedparam, pthread_kill, - pthread_mutex_consistent, pthread_mutex_timedlock, - pthread_mutexattr_getprotocol, pthread_mutexattr_getpshared, - pthread_mutexattr_getrobust, - pthread_mutexattr_setprotocol, pthread_mutexattr_setpshared, - pthread_mutexattr_setrobust, pthread_once, pthread_rwlockattr_getpshared, pthread_rwlockattr_setpshared, pthread_setschedparam, - pthread_setschedprio, pthread_sigmask, pthread_spin_destroy, pthread_spin_init, From 8aa113ea4db22deac57c9237590b0454e02f0a54 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 19 Nov 2025 15:43:18 -0600 Subject: [PATCH 1018/1228] apple: Nest all new Apple sources in an `apple/` module We will eventually add `libpthread`, so accommodate for that. (backport ) (cherry picked from commit 4e698ae93d4de049cccde64925c11a036c1bd3f4) --- src/new/{apple_libc => apple/libc}/signal.rs | 0 src/new/{apple_libc => apple/libc}/unistd.rs | 0 src/new/apple/mod.rs | 17 +++++++++++++++++ .../{apple_xnu => apple/xnu}/arm/_mcontext.rs | 0 .../{apple_xnu => apple/xnu}/i386/_mcontext.rs | 0 .../xnu}/mach/arm/_structs.rs | 0 .../xnu}/mach/i386/_structs.rs | 0 .../xnu}/mach/machine/_structs.rs | 0 src/new/{apple_xnu => apple/xnu}/mach/mod.rs | 0 .../xnu}/machine/_mcontext.rs | 0 src/new/{apple_xnu => apple/xnu}/mod.rs | 0 .../xnu}/sys/_types/_ucontext.rs | 0 src/new/{apple_xnu => apple/xnu}/sys/mod.rs | 0 src/new/{apple_xnu => apple/xnu}/sys/signal.rs | 0 src/new/apple_libc/mod.rs | 6 ------ src/new/mod.rs | 6 ++---- 16 files changed, 19 insertions(+), 10 deletions(-) rename src/new/{apple_libc => apple/libc}/signal.rs (100%) rename src/new/{apple_libc => apple/libc}/unistd.rs (100%) create mode 100644 src/new/apple/mod.rs rename src/new/{apple_xnu => apple/xnu}/arm/_mcontext.rs (100%) rename src/new/{apple_xnu => apple/xnu}/i386/_mcontext.rs (100%) rename src/new/{apple_xnu => apple/xnu}/mach/arm/_structs.rs (100%) rename src/new/{apple_xnu => apple/xnu}/mach/i386/_structs.rs (100%) rename src/new/{apple_xnu => apple/xnu}/mach/machine/_structs.rs (100%) rename src/new/{apple_xnu => apple/xnu}/mach/mod.rs (100%) rename src/new/{apple_xnu => apple/xnu}/machine/_mcontext.rs (100%) rename src/new/{apple_xnu => apple/xnu}/mod.rs (100%) rename src/new/{apple_xnu => apple/xnu}/sys/_types/_ucontext.rs (100%) rename src/new/{apple_xnu => apple/xnu}/sys/mod.rs (100%) rename src/new/{apple_xnu => apple/xnu}/sys/signal.rs (100%) delete mode 100644 src/new/apple_libc/mod.rs diff --git a/src/new/apple_libc/signal.rs b/src/new/apple/libc/signal.rs similarity index 100% rename from src/new/apple_libc/signal.rs rename to src/new/apple/libc/signal.rs diff --git a/src/new/apple_libc/unistd.rs b/src/new/apple/libc/unistd.rs similarity index 100% rename from src/new/apple_libc/unistd.rs rename to src/new/apple/libc/unistd.rs diff --git a/src/new/apple/mod.rs b/src/new/apple/mod.rs new file mode 100644 index 0000000000000..3567ba3c0726c --- /dev/null +++ b/src/new/apple/mod.rs @@ -0,0 +1,17 @@ +//! Apple interfaces. +//! +//! The Xcode SDK includes interfaces that are split across a couple of different libraries. Most +//! of these are available at . + +/// Entrypoint for Apple headers, usually found as part of the Xcode SDK. +/// +/// +mod libc { + pub(crate) mod signal; + pub(crate) mod unistd; +} + +mod xnu; + +pub(crate) use libc::*; +pub(crate) use xnu::*; diff --git a/src/new/apple_xnu/arm/_mcontext.rs b/src/new/apple/xnu/arm/_mcontext.rs similarity index 100% rename from src/new/apple_xnu/arm/_mcontext.rs rename to src/new/apple/xnu/arm/_mcontext.rs diff --git a/src/new/apple_xnu/i386/_mcontext.rs b/src/new/apple/xnu/i386/_mcontext.rs similarity index 100% rename from src/new/apple_xnu/i386/_mcontext.rs rename to src/new/apple/xnu/i386/_mcontext.rs diff --git a/src/new/apple_xnu/mach/arm/_structs.rs b/src/new/apple/xnu/mach/arm/_structs.rs similarity index 100% rename from src/new/apple_xnu/mach/arm/_structs.rs rename to src/new/apple/xnu/mach/arm/_structs.rs diff --git a/src/new/apple_xnu/mach/i386/_structs.rs b/src/new/apple/xnu/mach/i386/_structs.rs similarity index 100% rename from src/new/apple_xnu/mach/i386/_structs.rs rename to src/new/apple/xnu/mach/i386/_structs.rs diff --git a/src/new/apple_xnu/mach/machine/_structs.rs b/src/new/apple/xnu/mach/machine/_structs.rs similarity index 100% rename from src/new/apple_xnu/mach/machine/_structs.rs rename to src/new/apple/xnu/mach/machine/_structs.rs diff --git a/src/new/apple_xnu/mach/mod.rs b/src/new/apple/xnu/mach/mod.rs similarity index 100% rename from src/new/apple_xnu/mach/mod.rs rename to src/new/apple/xnu/mach/mod.rs diff --git a/src/new/apple_xnu/machine/_mcontext.rs b/src/new/apple/xnu/machine/_mcontext.rs similarity index 100% rename from src/new/apple_xnu/machine/_mcontext.rs rename to src/new/apple/xnu/machine/_mcontext.rs diff --git a/src/new/apple_xnu/mod.rs b/src/new/apple/xnu/mod.rs similarity index 100% rename from src/new/apple_xnu/mod.rs rename to src/new/apple/xnu/mod.rs diff --git a/src/new/apple_xnu/sys/_types/_ucontext.rs b/src/new/apple/xnu/sys/_types/_ucontext.rs similarity index 100% rename from src/new/apple_xnu/sys/_types/_ucontext.rs rename to src/new/apple/xnu/sys/_types/_ucontext.rs diff --git a/src/new/apple_xnu/sys/mod.rs b/src/new/apple/xnu/sys/mod.rs similarity index 100% rename from src/new/apple_xnu/sys/mod.rs rename to src/new/apple/xnu/sys/mod.rs diff --git a/src/new/apple_xnu/sys/signal.rs b/src/new/apple/xnu/sys/signal.rs similarity index 100% rename from src/new/apple_xnu/sys/signal.rs rename to src/new/apple/xnu/sys/signal.rs diff --git a/src/new/apple_libc/mod.rs b/src/new/apple_libc/mod.rs deleted file mode 100644 index d7fcc90d12ff8..0000000000000 --- a/src/new/apple_libc/mod.rs +++ /dev/null @@ -1,6 +0,0 @@ -//! Entrypoint for Apple headers, usually found as part of the Xcode SDK. -//! -//! - -pub(crate) mod signal; -pub(crate) mod unistd; diff --git a/src/new/mod.rs b/src/new/mod.rs index 2d71b73a79315..0652ef9414993 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -48,10 +48,8 @@ cfg_if! { mod bionic_libc; pub(crate) use bionic_libc::*; } else if #[cfg(target_vendor = "apple")] { - mod apple_libc; - mod apple_xnu; - pub(crate) use apple_libc::*; - pub(crate) use apple_xnu::*; + mod apple; + pub(crate) use apple::*; } else if #[cfg(target_os = "cygwin")] { mod cygwin; pub(crate) use cygwin::*; From a4eba0e015a96c95e86a0f8bb61fd33ce6b7dc4f Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 20 Nov 2025 00:56:44 -0600 Subject: [PATCH 1019/1228] apple: Add missing pthread API to the semver lists (backport ) (cherry picked from commit dc66e547de225335f5dcf91b100fa099b852c304) --- libc-test/semver/apple.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index e9fb9cb31fb12..09934484f379e 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -2191,12 +2191,14 @@ pseudo_AF_PIP pseudo_AF_RTIP pseudo_AF_XTP pthread_atfork +pthread_attr_get_qos_class_np pthread_attr_getdetachstate pthread_attr_getinheritsched pthread_attr_getschedparam pthread_attr_getschedpolicy pthread_attr_getscope pthread_attr_getstackaddr +pthread_attr_set_qos_class_np pthread_attr_setinheritsched pthread_attr_setschedparam pthread_attr_setschedpolicy @@ -2209,6 +2211,7 @@ pthread_condattr_setpshared pthread_cpu_number_np pthread_create_from_mach_thread pthread_from_mach_thread_np +pthread_get_qos_class_np pthread_get_stackaddr_np pthread_get_stacksize_np pthread_getname_np @@ -2230,6 +2233,7 @@ pthread_once pthread_once_t pthread_rwlockattr_getpshared pthread_rwlockattr_setpshared +pthread_set_qos_class_self_np pthread_setname_np pthread_setschedparam pthread_stack_frame_decode_np From ae9b56c15cbc9e6bf91216189a6770244634b6fc Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 19 Nov 2025 16:53:13 -0600 Subject: [PATCH 1020/1228] apple: Move pthread API to the `new` module This sets up the basic structure but does not yet move all `pthread_*` API. (backport ) (cherry picked from commit ce5dc81cd72539fa1195fc2a4ea9ef1a3027f544) --- src/new/apple/libpthread/mod.rs | 20 ++ .../libpthread/pthread_/introspection.rs | 36 ++++ src/new/apple/libpthread/pthread_/pthread.rs | 76 +++++++ .../apple/libpthread/pthread_/pthread_impl.rs | 12 ++ .../apple/libpthread/pthread_/pthread_spis.rs | 14 ++ src/new/apple/libpthread/pthread_/qos.rs | 25 +++ src/new/apple/libpthread/pthread_/sched.rs | 9 + src/new/apple/libpthread/pthread_/spawn.rs | 16 ++ src/new/apple/libpthread/pthread_/stack_np.rs | 12 ++ .../libpthread/sys/_pthread/_pthread_types.rs | 79 +++++++ src/new/apple/libpthread/sys/mod.rs | 14 ++ src/new/apple/libpthread/sys/qos.rs | 22 ++ src/new/apple/mod.rs | 3 + src/new/apple/xnu/sys/mod.rs | 3 + src/new/common/posix/mod.rs | 3 +- src/new/common/posix/pthread.rs | 74 +++++-- src/new/mod.rs | 5 + src/unix/bsd/apple/b32/mod.rs | 23 -- src/unix/bsd/apple/b64/mod.rs | 23 -- src/unix/bsd/apple/mod.rs | 203 +----------------- src/unix/mod.rs | 70 +++--- 21 files changed, 445 insertions(+), 297 deletions(-) create mode 100644 src/new/apple/libpthread/mod.rs create mode 100644 src/new/apple/libpthread/pthread_/introspection.rs create mode 100644 src/new/apple/libpthread/pthread_/pthread.rs create mode 100644 src/new/apple/libpthread/pthread_/pthread_impl.rs create mode 100644 src/new/apple/libpthread/pthread_/pthread_spis.rs create mode 100644 src/new/apple/libpthread/pthread_/qos.rs create mode 100644 src/new/apple/libpthread/pthread_/sched.rs create mode 100644 src/new/apple/libpthread/pthread_/spawn.rs create mode 100644 src/new/apple/libpthread/pthread_/stack_np.rs create mode 100644 src/new/apple/libpthread/sys/_pthread/_pthread_types.rs create mode 100644 src/new/apple/libpthread/sys/mod.rs create mode 100644 src/new/apple/libpthread/sys/qos.rs diff --git a/src/new/apple/libpthread/mod.rs b/src/new/apple/libpthread/mod.rs new file mode 100644 index 0000000000000..66f25e6f7ba48 --- /dev/null +++ b/src/new/apple/libpthread/mod.rs @@ -0,0 +1,20 @@ +//! Source from libpthread + +/// Directory: `pthread/` +/// +/// Note that this module has a trailing underscore to avoid conflicting with its child `pthread` +/// module. +/// +/// +pub(crate) mod pthread_ { + pub(crate) mod introspection; + pub(crate) mod pthread; + pub(crate) mod pthread_impl; + pub(crate) mod pthread_spis; + pub(crate) mod qos; + pub(crate) mod sched; + pub(crate) mod spawn; + pub(crate) mod stack_np; +} + +pub(crate) mod sys; diff --git a/src/new/apple/libpthread/pthread_/introspection.rs b/src/new/apple/libpthread/pthread_/introspection.rs new file mode 100644 index 0000000000000..6a7e1557814c8 --- /dev/null +++ b/src/new/apple/libpthread/pthread_/introspection.rs @@ -0,0 +1,36 @@ +//! Header: `pthread/introspection.h` +//! +//! + +use crate::prelude::*; +pub use crate::pthread_::pthread::*; + +c_enum! { + #[repr(c_uint)] + pub enum #anon { + PTHREAD_INTROSPECTION_THREAD_CREATE = 1, + PTHREAD_INTROSPECTION_THREAD_START, + PTHREAD_INTROSPECTION_THREAD_TERMINATE, + PTHREAD_INTROSPECTION_THREAD_DESTROY, + } +} + +pub type pthread_introspection_hook_t = + extern "C" fn(event: c_uint, thread: pthread_t, addr: *mut c_void, size: size_t); + +extern "C" { + // Available from Big Sur + pub fn pthread_introspection_hook_install( + hook: pthread_introspection_hook_t, + ) -> pthread_introspection_hook_t; + pub fn pthread_introspection_setspecific_np( + thread: pthread_t, + key: pthread_key_t, + value: *const c_void, + ) -> c_int; + + pub fn pthread_introspection_getspecific_np( + thread: pthread_t, + key: pthread_key_t, + ) -> *mut c_void; +} diff --git a/src/new/apple/libpthread/pthread_/pthread.rs b/src/new/apple/libpthread/pthread_/pthread.rs new file mode 100644 index 0000000000000..a7e56bef8f11b --- /dev/null +++ b/src/new/apple/libpthread/pthread_/pthread.rs @@ -0,0 +1,76 @@ +//! Header: `pthread.h` or `pthread/pthread.h` +//! +//! + +use crate::prelude::*; +pub use crate::pthread_::qos::*; +pub use crate::pthread_::sched::*; +// No need to import from the `_pthread_attr_t` and similar modules since `_pthread_types` has +// everything we need. +pub use crate::sys::_pthread::_pthread_types::*; + +pub const PTHREAD_CREATE_JOINABLE: c_int = 1; +pub const PTHREAD_CREATE_DETACHED: c_int = 2; + +pub const PTHREAD_INHERIT_SCHED: c_int = 1; +pub const PTHREAD_EXPLICIT_SCHED: c_int = 2; + +pub const PTHREAD_CANCEL_ENABLE: c_int = 0x01; +pub const PTHREAD_CANCEL_DISABLE: c_int = 0x00; +pub const PTHREAD_CANCEL_DEFERRED: c_int = 0x02; +pub const PTHREAD_CANCEL_ASYNCHRONOUS: c_int = 0x00; + +pub const PTHREAD_CANCELED: *mut c_void = 1 as *mut c_void; + +pub const PTHREAD_SCOPE_SYSTEM: c_int = 1; +pub const PTHREAD_SCOPE_PROCESS: c_int = 2; + +pub const PTHREAD_PROCESS_SHARED: c_int = 1; +pub const PTHREAD_PROCESS_PRIVATE: c_int = 2; + +pub const PTHREAD_PRIO_NONE: c_int = 0; +pub const PTHREAD_PRIO_INHERIT: c_int = 1; +pub const PTHREAD_PRIO_PROTECT: c_int = 2; + +pub const PTHREAD_MUTEX_NORMAL: c_int = 0; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 1; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_NORMAL; + +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + __sig: _PTHREAD_RWLOCK_SIG_init, + __opaque: [0; __PTHREAD_RWLOCK_SIZE__], +}; + +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + __sig: _PTHREAD_MUTEX_SIG_init, + __opaque: [0; __PTHREAD_MUTEX_SIZE__], +}; + +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + __sig: _PTHREAD_COND_SIG_init, + __opaque: [0; __PTHREAD_COND_SIZE__], +}; + +pub const PTHREAD_ONCE_INIT: crate::pthread_once_t = crate::pthread_once_t { + __sig: _PTHREAD_ONCE_SIG_INIT, + __opaque: [0; __PTHREAD_ONCE_SIZE__], +}; + +pub use crate::new::common::posix::pthread::{ + pthread_attr_getinheritsched, + pthread_attr_getschedparam, + pthread_attr_getschedpolicy, + pthread_attr_setinheritsched, + pthread_attr_setschedparam, + pthread_attr_setschedpolicy, + pthread_condattr_getpshared, + pthread_condattr_setpshared, + pthread_getschedparam, + pthread_mutexattr_getpshared, + pthread_mutexattr_setpshared, + pthread_once, + pthread_rwlockattr_getpshared, + pthread_rwlockattr_setpshared, + pthread_setschedparam, +}; diff --git a/src/new/apple/libpthread/pthread_/pthread_impl.rs b/src/new/apple/libpthread/pthread_/pthread_impl.rs new file mode 100644 index 0000000000000..92c5e2733c44e --- /dev/null +++ b/src/new/apple/libpthread/pthread_/pthread_impl.rs @@ -0,0 +1,12 @@ +use crate::prelude::*; + +// FIXME(apple): these should all be `pub(crate)` +pub const _PTHREAD_MUTEX_SIG_init: c_long = 0x32AAABA7; + +pub const _PTHREAD_COND_SIG_init: c_long = 0x3CB0B1BB; +pub(crate) const _PTHREAD_ONCE_SIG_INIT: c_long = 0x30B1BCBA; +pub const _PTHREAD_RWLOCK_SIG_init: c_long = 0x2DA8B3B4; + +pub const SCHED_OTHER: c_int = 1; +pub const SCHED_FIFO: c_int = 4; +pub const SCHED_RR: c_int = 2; diff --git a/src/new/apple/libpthread/pthread_/pthread_spis.rs b/src/new/apple/libpthread/pthread_/pthread_spis.rs new file mode 100644 index 0000000000000..24e3fedc9d307 --- /dev/null +++ b/src/new/apple/libpthread/pthread_/pthread_spis.rs @@ -0,0 +1,14 @@ +//! Header: `pthread/pthread_spis.h` +//! +//! + +use crate::prelude::*; + +extern "C" { + pub fn pthread_create_from_mach_thread( + thread: *mut crate::pthread_t, + attr: *const crate::pthread_attr_t, + f: extern "C" fn(*mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; +} diff --git a/src/new/apple/libpthread/pthread_/qos.rs b/src/new/apple/libpthread/pthread_/qos.rs new file mode 100644 index 0000000000000..8b68c78ffb826 --- /dev/null +++ b/src/new/apple/libpthread/pthread_/qos.rs @@ -0,0 +1,25 @@ +//! Header: `pthread/qos.h` +//! +//! + +use crate::prelude::*; +pub use crate::sys::qos::*; + +extern "C" { + pub fn pthread_attr_set_qos_class_np( + attr: *mut crate::pthread_attr_t, + class: qos_class_t, + priority: c_int, + ) -> c_int; + pub fn pthread_attr_get_qos_class_np( + attr: *mut crate::pthread_attr_t, + class: *mut qos_class_t, + priority: *mut c_int, + ) -> c_int; + pub fn pthread_set_qos_class_self_np(class: qos_class_t, priority: c_int) -> c_int; + pub fn pthread_get_qos_class_np( + thread: crate::pthread_t, + class: *mut qos_class_t, + priority: *mut c_int, + ) -> c_int; +} diff --git a/src/new/apple/libpthread/pthread_/sched.rs b/src/new/apple/libpthread/pthread_/sched.rs new file mode 100644 index 0000000000000..d25a6cb082755 --- /dev/null +++ b/src/new/apple/libpthread/pthread_/sched.rs @@ -0,0 +1,9 @@ +pub use crate::new::pthread_::pthread_impl::*; +use crate::prelude::*; + +s! { + pub struct sched_param { + pub sched_priority: c_int, + __opaque: [c_char; 4], + } +} diff --git a/src/new/apple/libpthread/pthread_/spawn.rs b/src/new/apple/libpthread/pthread_/spawn.rs new file mode 100644 index 0000000000000..c5bdb7ababf10 --- /dev/null +++ b/src/new/apple/libpthread/pthread_/spawn.rs @@ -0,0 +1,16 @@ +//! Header: `pthread/spawn.h` +//! +//! + +use crate::prelude::*; + +extern "C" { + pub fn posix_spawnattr_set_qos_class_np( + attr: *mut crate::posix_spawnattr_t, + qos_class: crate::qos_class_t, + ) -> c_int; + pub fn posix_spawnattr_get_qos_class_np( + attr: *const crate::posix_spawnattr_t, + qos_class: *mut crate::qos_class_t, + ) -> c_int; +} diff --git a/src/new/apple/libpthread/pthread_/stack_np.rs b/src/new/apple/libpthread/pthread_/stack_np.rs new file mode 100644 index 0000000000000..0d501cdbb6f0b --- /dev/null +++ b/src/new/apple/libpthread/pthread_/stack_np.rs @@ -0,0 +1,12 @@ +//! Header: `pthread/stack_np.h` +//! +//! + +use crate::prelude::*; + +extern "C" { + pub fn pthread_stack_frame_decode_np( + frame_addr: uintptr_t, + return_addr: *mut uintptr_t, + ) -> uintptr_t; +} diff --git a/src/new/apple/libpthread/sys/_pthread/_pthread_types.rs b/src/new/apple/libpthread/sys/_pthread/_pthread_types.rs new file mode 100644 index 0000000000000..95e181c13f05d --- /dev/null +++ b/src/new/apple/libpthread/sys/_pthread/_pthread_types.rs @@ -0,0 +1,79 @@ +//! Header: `sys/_pthread/_pthread_types.h` +//! +//! +//! +//! Note that the actual header defines `_opaque_pthread_*` structs which are typedefed to +//! `__darwin_pthread*` structs, and typedefed again in separate `_pthread_*.h` files to their final +//! `pthread_` name. This isn't useful for us so we simplify a bit and just define everything here. + +use crate::prelude::*; + +cfg_if! { + if #[cfg(target_pointer_width = "64")] { + pub const __PTHREAD_SIZE__: usize = 8176; + pub const __PTHREAD_ATTR_SIZE__: usize = 56; + pub const __PTHREAD_MUTEXATTR_SIZE__: usize = 8; + pub const __PTHREAD_MUTEX_SIZE__: usize = 56; + pub const __PTHREAD_CONDATTR_SIZE__: usize = 8; + pub const __PTHREAD_COND_SIZE__: usize = 40; + pub const __PTHREAD_ONCE_SIZE__: usize = 8; + pub const __PTHREAD_RWLOCK_SIZE__: usize = 192; + pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 16; + } else { + pub const __PTHREAD_SIZE__: usize = 4088; + pub const __PTHREAD_ATTR_SIZE__: usize = 36; + pub const __PTHREAD_MUTEXATTR_SIZE__: usize = 8; + pub const __PTHREAD_MUTEX_SIZE__: usize = 40; + pub const __PTHREAD_CONDATTR_SIZE__: usize = 4; + pub const __PTHREAD_COND_SIZE__: usize = 24; + pub const __PTHREAD_ONCE_SIZE__: usize = 4; + pub const __PTHREAD_RWLOCK_SIZE__: usize = 124; + pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 12; + } +} + +s! { + pub struct pthread_attr_t { + pub(crate) __sig: c_long, + pub(crate) __opaque: [c_char; __PTHREAD_ATTR_SIZE__], + } + + pub struct pthread_cond_t { + pub(crate) __sig: c_long, + pub(crate) __opaque: [u8; __PTHREAD_COND_SIZE__], + } + + pub struct pthread_condattr_t { + pub(crate) __sig: c_long, + pub(crate) __opaque: [u8; __PTHREAD_CONDATTR_SIZE__], + } + + pub struct pthread_mutex_t { + pub(crate) __sig: c_long, + pub(crate) __opaque: [u8; __PTHREAD_MUTEX_SIZE__], + } + + pub struct pthread_mutexattr_t { + pub(crate) __sig: c_long, + pub(crate) __opaque: [u8; __PTHREAD_MUTEXATTR_SIZE__], + } + + pub struct pthread_once_t { + pub(crate) __sig: c_long, + pub(crate) __opaque: [c_char; __PTHREAD_ONCE_SIZE__], + } + + pub struct pthread_rwlock_t { + pub(crate) __sig: c_long, + pub(crate) __opaque: [u8; __PTHREAD_RWLOCK_SIZE__], + } + + pub struct pthread_rwlockattr_t { + pub(crate) __sig: c_long, + pub(crate) __opaque: [u8; __PTHREAD_RWLOCKATTR_SIZE__], + } +} + +pub type pthread_key_t = c_ulong; + +pub use crate::pthread_t; diff --git a/src/new/apple/libpthread/sys/mod.rs b/src/new/apple/libpthread/sys/mod.rs new file mode 100644 index 0000000000000..da0a229547cb2 --- /dev/null +++ b/src/new/apple/libpthread/sys/mod.rs @@ -0,0 +1,14 @@ +//! Directory: `sys/` +//! +//! + +/// Directory: `sys/_pthread/` +/// +/// +pub(crate) mod _pthread { + // We don't have the `_pthread_attr_t` and similar modules to match `_pthread_attr_t.h`, + // everything is defined in `_pthread_types`. + pub(crate) mod _pthread_types; +} + +pub(crate) mod qos; diff --git a/src/new/apple/libpthread/sys/qos.rs b/src/new/apple/libpthread/sys/qos.rs new file mode 100644 index 0000000000000..9d9a2eb3dfcb9 --- /dev/null +++ b/src/new/apple/libpthread/sys/qos.rs @@ -0,0 +1,22 @@ +//! Header: `sys/qos.h` +//! +//! + +use crate::prelude::*; + +#[derive(Debug)] +#[repr(u32)] +pub enum qos_class_t { + QOS_CLASS_USER_INTERACTIVE = 0x21, + QOS_CLASS_USER_INITIATED = 0x19, + QOS_CLASS_DEFAULT = 0x15, + QOS_CLASS_UTILITY = 0x11, + QOS_CLASS_BACKGROUND = 0x09, + QOS_CLASS_UNSPECIFIED = 0x00, +} +impl Copy for qos_class_t {} +impl Clone for qos_class_t { + fn clone(&self) -> qos_class_t { + *self + } +} diff --git a/src/new/apple/mod.rs b/src/new/apple/mod.rs index 3567ba3c0726c..beb8caab63c20 100644 --- a/src/new/apple/mod.rs +++ b/src/new/apple/mod.rs @@ -11,7 +11,10 @@ mod libc { pub(crate) mod unistd; } +mod libpthread; mod xnu; pub(crate) use libc::*; +pub(crate) use libpthread::pthread_; +pub(crate) use pthread_::pthread; pub(crate) use xnu::*; diff --git a/src/new/apple/xnu/sys/mod.rs b/src/new/apple/xnu/sys/mod.rs index 5a75457926690..ad4a204898cb8 100644 --- a/src/new/apple/xnu/sys/mod.rs +++ b/src/new/apple/xnu/sys/mod.rs @@ -10,3 +10,6 @@ pub(crate) mod signal; pub(crate) mod _types { pub(crate) mod _ucontext; } + +// Bit of a hack since the directories get merged and we can't have >1 sys module. +pub(crate) use crate::new::apple::libpthread::sys::*; diff --git a/src/new/common/posix/mod.rs b/src/new/common/posix/mod.rs index 9e92165656daa..7bd596e37205d 100644 --- a/src/new/common/posix/mod.rs +++ b/src/new/common/posix/mod.rs @@ -7,7 +7,8 @@ target_os = "android", target_os = "emscripten", target_os = "l4re", - target_os = "linux" + target_os = "linux", + target_vendor = "apple", ))] pub(crate) mod pthread; pub(crate) mod unistd; diff --git a/src/new/common/posix/pthread.rs b/src/new/common/posix/pthread.rs index d32d50e7fd746..8cff48c601fb8 100644 --- a/src/new/common/posix/pthread.rs +++ b/src/new/common/posix/pthread.rs @@ -18,19 +18,24 @@ extern "C" { guardsize: *mut size_t, ) -> c_int; - #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] + #[cfg(any( + target_os = "android", + target_os = "l4re", + target_os = "linux", + target_vendor = "apple", + ))] pub fn pthread_attr_getinheritsched( attr: *const crate::pthread_attr_t, inheritsched: *mut c_int, ) -> c_int; - #[cfg(any(target_os = "l4re", target_os = "linux"))] + #[cfg(any(target_os = "l4re", target_os = "linux", target_vendor = "apple"))] pub fn pthread_attr_getschedparam( attr: *const crate::pthread_attr_t, param: *mut crate::sched_param, ) -> c_int; - #[cfg(any(target_os = "l4re", target_os = "linux"))] + #[cfg(any(target_os = "l4re", target_os = "linux", target_vendor = "apple"))] pub fn pthread_attr_getschedpolicy( attr: *const crate::pthread_attr_t, policy: *mut c_int, @@ -51,19 +56,24 @@ extern "C" { #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int; - #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] + #[cfg(any( + target_os = "android", + target_os = "l4re", + target_os = "linux", + target_vendor = "apple" + ))] pub fn pthread_attr_setinheritsched( attr: *mut crate::pthread_attr_t, inheritsched: c_int, ) -> c_int; - #[cfg(any(target_os = "l4re", target_os = "linux"))] + #[cfg(any(target_os = "l4re", target_os = "linux", target_vendor = "apple"))] pub fn pthread_attr_setschedparam( attr: *mut crate::pthread_attr_t, param: *const crate::sched_param, ) -> c_int; - #[cfg(any(target_os = "l4re", target_os = "linux"))] + #[cfg(any(target_os = "l4re", target_os = "linux", target_vendor = "apple"))] pub fn pthread_attr_setschedpolicy(attr: *mut crate::pthread_attr_t, policy: c_int) -> c_int; #[cfg(any( @@ -116,14 +126,19 @@ extern "C" { target_os = "android", target_os = "emscripten", target_os = "linux", - target_os = "l4re" + target_os = "l4re", ))] pub fn pthread_condattr_getclock( attr: *const crate::pthread_condattr_t, clock_id: *mut crate::clockid_t, ) -> c_int; - #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] + #[cfg(any( + target_os = "android", + target_os = "l4re", + target_os = "linux", + target_vendor = "apple", + ))] pub fn pthread_condattr_getpshared( attr: *const crate::pthread_condattr_t, pshared: *mut c_int, @@ -133,7 +148,7 @@ extern "C" { target_os = "android", target_os = "emscripten", target_os = "linux", - target_os = "l4re" + target_os = "l4re", ))] pub fn pthread_condattr_setclock( attr: *mut crate::pthread_condattr_t, @@ -144,7 +159,8 @@ extern "C" { target_os = "android", target_os = "emscripten", target_os = "linux", - target_os = "l4re" + target_os = "l4re", + target_vendor = "apple", ))] pub fn pthread_condattr_setpshared( attr: *mut crate::pthread_condattr_t, @@ -155,7 +171,7 @@ extern "C" { target_os = "android", target_os = "emscripten", target_os = "l4re", - target_os = "linux" + target_os = "linux", ))] pub fn pthread_create( native: *mut crate::pthread_t, @@ -167,7 +183,12 @@ extern "C" { #[cfg(any(target_os = "android", target_os = "linux"))] pub fn pthread_getcpuclockid(thread: crate::pthread_t, clk_id: *mut crate::clockid_t) -> c_int; - #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] + #[cfg(any( + target_os = "android", + target_os = "l4re", + target_os = "linux", + target_vendor = "apple", + ))] pub fn pthread_getschedparam( native: crate::pthread_t, policy: *mut c_int, @@ -195,7 +216,12 @@ extern "C" { protocol: *mut c_int, ) -> c_int; - #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] + #[cfg(any( + target_os = "android", + target_os = "l4re", + target_os = "linux", + target_vendor = "apple", + ))] pub fn pthread_mutexattr_getpshared( attr: *const crate::pthread_mutexattr_t, pshared: *mut c_int, @@ -217,7 +243,8 @@ extern "C" { target_os = "android", target_os = "emscripten", target_os = "linux", - target_os = "l4re" + target_os = "l4re", + target_vendor = "apple", ))] pub fn pthread_mutexattr_setpshared( attr: *mut crate::pthread_mutexattr_t, @@ -234,7 +261,8 @@ extern "C" { target_os = "android", target_os = "emscripten", target_os = "linux", - target_os = "l4re" + target_os = "l4re", + target_vendor = "apple", ))] pub fn pthread_rwlockattr_getpshared( attr: *const crate::pthread_rwlockattr_t, @@ -245,17 +273,29 @@ extern "C" { target_os = "android", target_os = "emscripten", target_os = "linux", - target_os = "l4re" + target_os = "l4re", + target_vendor = "apple", ))] pub fn pthread_rwlockattr_setpshared( attr: *mut crate::pthread_rwlockattr_t, val: c_int, ) -> c_int; + // FIXME(1.0): These shoul be combined to the version that takes an optional unsafe function. #[cfg(any(target_os = "l4re", target_os = "linux"))] pub fn pthread_once(control: *mut crate::pthread_once_t, routine: extern "C" fn()) -> c_int; + #[cfg(target_vendor = "apple")] + pub fn pthread_once( + once_control: *mut crate::pthread_once_t, + init_routine: Option, + ) -> c_int; - #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] + #[cfg(any( + target_os = "android", + target_os = "l4re", + target_os = "linux", + target_vendor = "apple", + ))] pub fn pthread_setschedparam( native: crate::pthread_t, policy: c_int, diff --git a/src/new/mod.rs b/src/new/mod.rs index 0652ef9414993..dd451bb5286bd 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -179,6 +179,11 @@ cfg_if! { #[cfg(target_env = "gnu")] pub use net::route::*; } else if #[cfg(target_vendor = "apple")] { + pub use pthread::*; + pub use pthread_::introspection::*; + pub use pthread_::pthread_spis::*; + pub use pthread_::spawn::*; + pub use pthread_::stack_np::*; pub use signal::*; } else if #[cfg(target_os = "netbsd")] { pub use net::if_::*; diff --git a/src/unix/bsd/apple/b32/mod.rs b/src/unix/bsd/apple/b32/mod.rs index f4234a110d827..ab0c94ef4c2c2 100644 --- a/src/unix/bsd/apple/b32/mod.rs +++ b/src/unix/bsd/apple/b32/mod.rs @@ -47,16 +47,6 @@ s! { pub struct malloc_zone_t { __private: [crate::uintptr_t; 18], // FIXME(macos): keeping private for now } - - pub struct pthread_attr_t { - __sig: c_long, - __opaque: [c_char; 36], - } - - pub struct pthread_once_t { - __sig: c_long, - __opaque: [c_char; crate::__PTHREAD_ONCE_SIZE__], - } } s_no_extra_traits! { @@ -70,13 +60,6 @@ s_no_extra_traits! { #[deprecated(since = "0.2.55")] pub const NET_RT_MAXID: c_int = 10; -pub const __PTHREAD_MUTEX_SIZE__: usize = 40; -pub const __PTHREAD_COND_SIZE__: usize = 24; -pub const __PTHREAD_CONDATTR_SIZE__: usize = 4; -pub const __PTHREAD_ONCE_SIZE__: usize = 4; -pub const __PTHREAD_RWLOCK_SIZE__: usize = 124; -pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 12; - pub const TIOCTIMESTAMP: c_ulong = 0x40087459; pub const TIOCDCDTIMESTAMP: c_ulong = 0x40087458; @@ -85,12 +68,6 @@ pub const BIOCSRTIMEOUT: c_ulong = 0x8008426d; pub const BIOCGRTIMEOUT: c_ulong = 0x4008426e; pub const BIOCSETFNR: c_ulong = 0x8008427e; -const _PTHREAD_ONCE_SIG_INIT: c_long = 0x30B1BCBA; -pub const PTHREAD_ONCE_INIT: crate::pthread_once_t = crate::pthread_once_t { - __sig: _PTHREAD_ONCE_SIG_INIT, - __opaque: [0; 4], -}; - extern "C" { pub fn exchangedata(path1: *const c_char, path2: *const c_char, options: c_ulong) -> c_int; } diff --git a/src/unix/bsd/apple/b64/mod.rs b/src/unix/bsd/apple/b64/mod.rs index 2fe60d177fefa..4ef2799e8c5fb 100644 --- a/src/unix/bsd/apple/b64/mod.rs +++ b/src/unix/bsd/apple/b64/mod.rs @@ -46,29 +46,12 @@ s! { pub bh_datalen: u32, pub bh_hdrlen: c_ushort, } - - pub struct pthread_attr_t { - __sig: c_long, - __opaque: [c_char; 56], - } - - pub struct pthread_once_t { - __sig: c_long, - __opaque: [c_char; __PTHREAD_ONCE_SIZE__], - } } #[doc(hidden)] #[deprecated(since = "0.2.55")] pub const NET_RT_MAXID: c_int = 11; -pub const __PTHREAD_MUTEX_SIZE__: usize = 56; -pub const __PTHREAD_COND_SIZE__: usize = 40; -pub const __PTHREAD_CONDATTR_SIZE__: usize = 8; -pub const __PTHREAD_ONCE_SIZE__: usize = 8; -pub const __PTHREAD_RWLOCK_SIZE__: usize = 192; -pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 16; - pub const TIOCTIMESTAMP: c_ulong = 0x40107459; pub const TIOCDCDTIMESTAMP: c_ulong = 0x40107458; @@ -77,12 +60,6 @@ pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e; pub const BIOCSETFNR: c_ulong = 0x8010427e; -const _PTHREAD_ONCE_SIG_INIT: c_long = 0x30B1BCBA; -pub const PTHREAD_ONCE_INIT: crate::pthread_once_t = crate::pthread_once_t { - __sig: _PTHREAD_ONCE_SIG_INIT, - __opaque: [0; 8], -}; - extern "C" { pub fn exchangedata(path1: *const c_char, path2: *const c_char, options: c_uint) -> c_int; } diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index f0443666b22f4..00c7e5f1754dc 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -18,7 +18,6 @@ pub type mode_t = u16; pub type nlink_t = u16; pub type blksize_t = i32; pub type rlim_t = u64; -pub type pthread_key_t = c_ulong; pub type sigset_t = u32; pub type clockid_t = c_uint; pub type fsblkcnt_t = c_uint; @@ -131,8 +130,6 @@ pub type thread_latency_qos_policy_t = *mut thread_latency_qos_policy; pub type thread_throughput_qos_policy_data_t = thread_throughput_qos_policy; pub type thread_throughput_qos_policy_t = *mut thread_throughput_qos_policy; -pub type pthread_introspection_hook_t = - extern "C" fn(event: c_uint, thread: crate::pthread_t, addr: *mut c_void, size: size_t); pub type pthread_jit_write_callback_t = Option c_int>; pub type os_clockid_t = u32; @@ -186,23 +183,6 @@ extern_ty! { pub enum timezone {} } -#[derive(Debug)] -#[repr(u32)] -pub enum qos_class_t { - QOS_CLASS_USER_INTERACTIVE = 0x21, - QOS_CLASS_USER_INITIATED = 0x19, - QOS_CLASS_DEFAULT = 0x15, - QOS_CLASS_UTILITY = 0x11, - QOS_CLASS_BACKGROUND = 0x09, - QOS_CLASS_UNSPECIFIED = 0x00, -} -impl Copy for qos_class_t {} -impl Clone for qos_class_t { - fn clone(&self) -> qos_class_t { - *self - } -} - #[derive(Debug)] #[repr(u32)] pub enum sysdir_search_path_directory_t { @@ -340,21 +320,6 @@ s! { pub st_qspare: [i64; 2], } - pub struct pthread_mutexattr_t { - __sig: c_long, - __opaque: [u8; 8], - } - - pub struct pthread_condattr_t { - __sig: c_long, - __opaque: [u8; __PTHREAD_CONDATTR_SIZE__], - } - - pub struct pthread_rwlockattr_t { - __sig: c_long, - __opaque: [u8; __PTHREAD_RWLOCKATTR_SIZE__], - } - pub struct siginfo_t { pub si_signo: c_int, pub si_errno: c_int, @@ -901,12 +866,6 @@ s! { pub size: crate::vm_size_t, } - // sched.h - pub struct sched_param { - pub sched_priority: c_int, - __opaque: [c_char; 4], - } - pub struct vinfo_stat { pub vst_dev: u32, pub vst_mode: u16, @@ -1388,21 +1347,6 @@ s! { pub d_name: [c_char; 1024], } - pub struct pthread_rwlock_t { - __sig: c_long, - __opaque: [u8; __PTHREAD_RWLOCK_SIZE__], - } - - pub struct pthread_mutex_t { - __sig: c_long, - __opaque: [u8; __PTHREAD_MUTEX_SIZE__], - } - - pub struct pthread_cond_t { - __sig: c_long, - __opaque: [u8; __PTHREAD_COND_SIZE__], - } - pub struct sockaddr_storage { pub ss_len: u8, pub ss_family: crate::sa_family_t, @@ -2399,11 +2343,6 @@ pub const AT_SYMLINK_NOFOLLOW: c_int = 0x0020; pub const AT_SYMLINK_FOLLOW: c_int = 0x0040; pub const AT_REMOVEDIR: c_int = 0x0080; -pub const PTHREAD_INTROSPECTION_THREAD_CREATE: c_uint = 1; -pub const PTHREAD_INTROSPECTION_THREAD_START: c_uint = 2; -pub const PTHREAD_INTROSPECTION_THREAD_TERMINATE: c_uint = 3; -pub const PTHREAD_INTROSPECTION_THREAD_DESTROY: c_uint = 4; - pub const TIOCMODG: c_ulong = 0x40047403; pub const TIOCMODS: c_ulong = 0x80047404; pub const TIOCM_LE: c_int = 0x1; @@ -2556,23 +2495,6 @@ pub const _SC_XOPEN_VERSION: c_int = 116; pub const _SC_XOPEN_XCU_VERSION: c_int = 121; pub const _SC_PHYS_PAGES: c_int = 200; -pub const PTHREAD_PROCESS_PRIVATE: c_int = 2; -pub const PTHREAD_PROCESS_SHARED: c_int = 1; -pub const PTHREAD_CREATE_JOINABLE: c_int = 1; -pub const PTHREAD_CREATE_DETACHED: c_int = 2; -pub const PTHREAD_INHERIT_SCHED: c_int = 1; -pub const PTHREAD_EXPLICIT_SCHED: c_int = 2; -pub const PTHREAD_CANCEL_ENABLE: c_int = 0x01; -pub const PTHREAD_CANCEL_DISABLE: c_int = 0x00; -pub const PTHREAD_CANCEL_DEFERRED: c_int = 0x02; -pub const PTHREAD_CANCEL_ASYNCHRONOUS: c_int = 0x00; -pub const PTHREAD_CANCELED: *mut c_void = 1 as *mut c_void; -pub const PTHREAD_SCOPE_SYSTEM: c_int = 1; -pub const PTHREAD_SCOPE_PROCESS: c_int = 2; -pub const PTHREAD_PRIO_NONE: c_int = 0; -pub const PTHREAD_PRIO_INHERIT: c_int = 1; -pub const PTHREAD_PRIO_PROTECT: c_int = 2; - #[cfg(target_arch = "aarch64")] pub const PTHREAD_STACK_MIN: size_t = 16384; #[cfg(not(target_arch = "aarch64"))] @@ -3199,26 +3121,6 @@ pub const _CS_DARWIN_USER_DIR: c_int = 65536; pub const _CS_DARWIN_USER_TEMP_DIR: c_int = 65537; pub const _CS_DARWIN_USER_CACHE_DIR: c_int = 65538; -pub const PTHREAD_MUTEX_NORMAL: c_int = 0; -pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 1; -pub const PTHREAD_MUTEX_RECURSIVE: c_int = 2; -pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_NORMAL; -pub const _PTHREAD_MUTEX_SIG_init: c_long = 0x32AAABA7; -pub const _PTHREAD_COND_SIG_init: c_long = 0x3CB0B1BB; -pub const _PTHREAD_RWLOCK_SIG_init: c_long = 0x2DA8B3B4; -pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - __sig: _PTHREAD_MUTEX_SIG_init, - __opaque: [0; __PTHREAD_MUTEX_SIZE__], -}; -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - __sig: _PTHREAD_COND_SIG_init, - __opaque: [0; __PTHREAD_COND_SIZE__], -}; -pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - __sig: _PTHREAD_RWLOCK_SIG_init, - __opaque: [0; __PTHREAD_RWLOCK_SIZE__], -}; - pub const OS_UNFAIR_LOCK_INIT: os_unfair_lock = os_unfair_lock { _os_unfair_lock_opaque: 0, }; @@ -3240,10 +3142,6 @@ pub const FD_SETSIZE: usize = 1024; pub const ST_NOSUID: c_ulong = 2; -pub const SCHED_OTHER: c_int = 1; -pub const SCHED_FIFO: c_int = 4; -pub const SCHED_RR: c_int = 2; - pub const EVFILT_READ: i16 = -1; pub const EVFILT_WRITE: i16 = -2; pub const EVFILT_AIO: i16 = -3; @@ -4510,22 +4408,10 @@ extern "C" { #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] pub fn mach_thread_self() -> mach_port_t; pub fn pthread_cond_timedwait_relative_np( - cond: *mut pthread_cond_t, - lock: *mut pthread_mutex_t, + cond: *mut crate::pthread_cond_t, + lock: *mut crate::pthread_mutex_t, timeout: *const crate::timespec, ) -> c_int; - pub fn pthread_once( - once_control: *mut crate::pthread_once_t, - init_routine: Option, - ) -> c_int; - pub fn pthread_attr_getinheritsched( - attr: *const crate::pthread_attr_t, - inheritsched: *mut c_int, - ) -> c_int; - pub fn pthread_attr_getschedpolicy( - attr: *const crate::pthread_attr_t, - policy: *mut c_int, - ) -> c_int; pub fn pthread_attr_getscope( attr: *const crate::pthread_attr_t, contentionscope: *mut c_int, @@ -4538,11 +4424,6 @@ extern "C" { attr: *const crate::pthread_attr_t, detachstate: *mut c_int, ) -> c_int; - pub fn pthread_attr_setinheritsched( - attr: *mut crate::pthread_attr_t, - inheritsched: c_int, - ) -> c_int; - pub fn pthread_attr_setschedpolicy(attr: *mut crate::pthread_attr_t, policy: c_int) -> c_int; pub fn pthread_attr_setscope(attr: *mut crate::pthread_attr_t, contentionscope: c_int) -> c_int; pub fn pthread_attr_setstackaddr( @@ -4553,83 +4434,11 @@ extern "C" { pub fn pthread_getname_np(thread: crate::pthread_t, name: *mut c_char, len: size_t) -> c_int; pub fn pthread_mach_thread_np(thread: crate::pthread_t) -> crate::mach_port_t; pub fn pthread_from_mach_thread_np(port: crate::mach_port_t) -> crate::pthread_t; - pub fn pthread_create_from_mach_thread( - thread: *mut crate::pthread_t, - attr: *const crate::pthread_attr_t, - f: extern "C" fn(*mut c_void) -> *mut c_void, - value: *mut c_void, - ) -> c_int; - pub fn pthread_stack_frame_decode_np( - frame_addr: crate::uintptr_t, - return_addr: *mut crate::uintptr_t, - ) -> crate::uintptr_t; pub fn pthread_get_stackaddr_np(thread: crate::pthread_t) -> *mut c_void; pub fn pthread_get_stacksize_np(thread: crate::pthread_t) -> size_t; - pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: c_int) -> c_int; - pub fn pthread_condattr_getpshared( - 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) -> c_int; - pub fn pthread_mutexattr_getpshared( - attr: *const pthread_mutexattr_t, - pshared: *mut c_int, - ) -> c_int; - pub fn pthread_rwlockattr_getpshared( - attr: *const pthread_rwlockattr_t, - val: *mut c_int, - ) -> c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: c_int) -> c_int; pub fn pthread_threadid_np(thread: crate::pthread_t, thread_id: *mut u64) -> c_int; - pub fn pthread_attr_set_qos_class_np( - attr: *mut pthread_attr_t, - class: qos_class_t, - priority: c_int, - ) -> c_int; - pub fn pthread_attr_get_qos_class_np( - attr: *mut pthread_attr_t, - class: *mut qos_class_t, - priority: *mut c_int, - ) -> c_int; - pub fn pthread_set_qos_class_self_np(class: qos_class_t, priority: c_int) -> c_int; - pub fn pthread_get_qos_class_np( - thread: crate::pthread_t, - class: *mut qos_class_t, - priority: *mut c_int, - ) -> c_int; - pub fn pthread_attr_getschedparam( - attr: *const crate::pthread_attr_t, - param: *mut sched_param, - ) -> c_int; - pub fn pthread_attr_setschedparam( - attr: *mut crate::pthread_attr_t, - param: *const sched_param, - ) -> c_int; - pub fn pthread_getschedparam( - thread: crate::pthread_t, - policy: *mut c_int, - param: *mut sched_param, - ) -> c_int; - pub fn pthread_setschedparam( - thread: crate::pthread_t, - policy: c_int, - param: *const sched_param, - ) -> c_int; - // Available from Big Sur - pub fn pthread_introspection_hook_install( - hook: crate::pthread_introspection_hook_t, - ) -> crate::pthread_introspection_hook_t; - pub fn pthread_introspection_setspecific_np( - thread: crate::pthread_t, - key: crate::pthread_key_t, - value: *const c_void, - ) -> c_int; - pub fn pthread_introspection_getspecific_np( - thread: crate::pthread_t, - key: crate::pthread_key_t, - ) -> *mut c_void; pub fn pthread_jit_write_protect_np(enabled: c_int); pub fn pthread_jit_write_protect_supported_np() -> c_int; // An array of pthread_jit_write_with_callback_np must declare @@ -4948,14 +4757,6 @@ extern "C" { pref: *mut crate::cpu_type_t, ocount: *mut size_t, ) -> c_int; - pub fn posix_spawnattr_set_qos_class_np( - attr: *mut posix_spawnattr_t, - qos_class: crate::qos_class_t, - ) -> c_int; - pub fn posix_spawnattr_get_qos_class_np( - attr: *const posix_spawnattr_t, - qos_class: *mut crate::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; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index e5bc9637541ad..43b9305b9b190 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1265,94 +1265,100 @@ extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__libc_thr_yield")] pub fn sched_yield() -> c_int; pub fn pthread_key_create( - key: *mut pthread_key_t, + key: *mut crate::pthread_key_t, dtor: Option, ) -> c_int; - pub fn pthread_key_delete(key: pthread_key_t) -> c_int; - pub fn pthread_getspecific(key: pthread_key_t) -> *mut c_void; - pub fn pthread_setspecific(key: pthread_key_t, value: *const c_void) -> c_int; + pub fn pthread_key_delete(key: crate::pthread_key_t) -> c_int; + pub fn pthread_getspecific(key: crate::pthread_key_t) -> *mut c_void; + pub fn pthread_setspecific(key: crate::pthread_key_t, value: *const c_void) -> c_int; pub fn pthread_mutex_init( - lock: *mut pthread_mutex_t, - attr: *const pthread_mutexattr_t, + lock: *mut crate::pthread_mutex_t, + attr: *const crate::pthread_mutexattr_t, ) -> c_int; - pub fn pthread_mutex_destroy(lock: *mut pthread_mutex_t) -> c_int; - pub fn pthread_mutex_lock(lock: *mut pthread_mutex_t) -> c_int; - pub fn pthread_mutex_trylock(lock: *mut pthread_mutex_t) -> c_int; - pub fn pthread_mutex_unlock(lock: *mut pthread_mutex_t) -> c_int; + pub fn pthread_mutex_destroy(lock: *mut crate::pthread_mutex_t) -> c_int; + pub fn pthread_mutex_lock(lock: *mut crate::pthread_mutex_t) -> c_int; + pub fn pthread_mutex_trylock(lock: *mut crate::pthread_mutex_t) -> c_int; + pub fn pthread_mutex_unlock(lock: *mut crate::pthread_mutex_t) -> c_int; - pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> c_int; + pub fn pthread_mutexattr_init(attr: *mut crate::pthread_mutexattr_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_mutexattr_destroy$UNIX2003" )] - pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> c_int; - pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, _type: c_int) -> c_int; + pub fn pthread_mutexattr_destroy(attr: *mut crate::pthread_mutexattr_t) -> c_int; + pub fn pthread_mutexattr_settype(attr: *mut crate::pthread_mutexattr_t, _type: c_int) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_cond_init$UNIX2003" )] - pub fn pthread_cond_init(cond: *mut pthread_cond_t, attr: *const pthread_condattr_t) -> c_int; + pub fn pthread_cond_init( + cond: *mut crate::pthread_cond_t, + attr: *const crate::pthread_condattr_t, + ) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_cond_wait$UNIX2003" )] - pub fn pthread_cond_wait(cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t) -> c_int; + pub fn pthread_cond_wait( + cond: *mut crate::pthread_cond_t, + lock: *mut crate::pthread_mutex_t, + ) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_cond_timedwait$UNIX2003" )] #[cfg_attr(gnu_time_bits64, link_name = "__pthread_cond_timedwait64")] pub fn pthread_cond_timedwait( - cond: *mut pthread_cond_t, - lock: *mut pthread_mutex_t, + cond: *mut crate::pthread_cond_t, + lock: *mut crate::pthread_mutex_t, abstime: *const crate::timespec, ) -> c_int; - pub fn pthread_cond_signal(cond: *mut pthread_cond_t) -> c_int; - pub fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> c_int; - pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> c_int; - pub fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> c_int; - pub fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> c_int; + pub fn pthread_cond_signal(cond: *mut crate::pthread_cond_t) -> c_int; + pub fn pthread_cond_broadcast(cond: *mut crate::pthread_cond_t) -> c_int; + pub fn pthread_cond_destroy(cond: *mut crate::pthread_cond_t) -> c_int; + pub fn pthread_condattr_init(attr: *mut crate::pthread_condattr_t) -> c_int; + pub fn pthread_condattr_destroy(attr: *mut crate::pthread_condattr_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_init$UNIX2003" )] pub fn pthread_rwlock_init( - lock: *mut pthread_rwlock_t, - attr: *const pthread_rwlockattr_t, + lock: *mut crate::pthread_rwlock_t, + attr: *const crate::pthread_rwlockattr_t, ) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_destroy$UNIX2003" )] - pub fn pthread_rwlock_destroy(lock: *mut pthread_rwlock_t) -> c_int; + pub fn pthread_rwlock_destroy(lock: *mut crate::pthread_rwlock_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_rdlock$UNIX2003" )] - pub fn pthread_rwlock_rdlock(lock: *mut pthread_rwlock_t) -> c_int; + pub fn pthread_rwlock_rdlock(lock: *mut crate::pthread_rwlock_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_tryrdlock$UNIX2003" )] - pub fn pthread_rwlock_tryrdlock(lock: *mut pthread_rwlock_t) -> c_int; + pub fn pthread_rwlock_tryrdlock(lock: *mut crate::pthread_rwlock_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_wrlock$UNIX2003" )] - pub fn pthread_rwlock_wrlock(lock: *mut pthread_rwlock_t) -> c_int; + pub fn pthread_rwlock_wrlock(lock: *mut crate::pthread_rwlock_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_trywrlock$UNIX2003" )] - pub fn pthread_rwlock_trywrlock(lock: *mut pthread_rwlock_t) -> c_int; + pub fn pthread_rwlock_trywrlock(lock: *mut crate::pthread_rwlock_t) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_unlock$UNIX2003" )] - 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_rwlock_unlock(lock: *mut crate::pthread_rwlock_t) -> c_int; + pub fn pthread_rwlockattr_init(attr: *mut crate::pthread_rwlockattr_t) -> c_int; + pub fn pthread_rwlockattr_destroy(attr: *mut crate::pthread_rwlockattr_t) -> c_int; #[cfg_attr( any(target_os = "illumos", target_os = "solaris"), From d18a50717e3d9b0de6436efa647ddf061ecebab5 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 20 Nov 2025 05:03:52 -0600 Subject: [PATCH 1021/1228] fmt: Use the same rustfmt.toml everywhere It isn't worth keeping a separate rustfmt.toml only for ctest, so switch to using the vertical formatting everywhere. (backport ) (cherry picked from commit 04ab55dbcfaaea7e5cfbe3687c7204f86c17eac0) --- src/rustfmt.toml => .rustfmt.toml | 1 - build.rs | 10 ++++++++-- ci/ios/deploy_and_run_on_ios_simulator.rs | 10 ++++++++-- ci/runtest-android.rs | 5 ++++- libc-test/build.rs | 17 ++++++++++++++--- libc-test/tests/cmsg.rs | 9 ++++++++- libc-test/tests/errqueue.rs | 6 +++++- libc-test/tests/makedev.rs | 6 +++++- libc-test/tests/style.rs | 5 ++++- libc-test/tests/style_lib/mod.rs | 23 ++++++++++++++++++----- rustfmt.toml | 5 ----- 11 files changed, 74 insertions(+), 23 deletions(-) rename src/rustfmt.toml => .rustfmt.toml (74%) delete mode 100644 rustfmt.toml diff --git a/src/rustfmt.toml b/.rustfmt.toml similarity index 74% rename from src/rustfmt.toml rename to .rustfmt.toml index 19e4b2fa60beb..42e6cff32e740 100644 --- a/src/rustfmt.toml +++ b/.rustfmt.toml @@ -1,4 +1,3 @@ -# Note that there is a separate top-level configuration for everything else edition = "2021" error_on_line_overflow = true group_imports = "StdExternalCrate" diff --git a/build.rs b/build.rs index b2c63f673c4db..9e1dd66b59923 100644 --- a/build.rs +++ b/build.rs @@ -1,5 +1,11 @@ -use std::process::{Command, Output}; -use std::{env, str}; +use std::process::{ + Command, + Output, +}; +use std::{ + env, + str, +}; // List of cfgs this build script is allowed to set. The list is needed to support check-cfg, as we // need to know all the possible cfgs that this script will set. If you need to set another cfg diff --git a/ci/ios/deploy_and_run_on_ios_simulator.rs b/ci/ios/deploy_and_run_on_ios_simulator.rs index 0398a9d3f888d..5c2d2fbad328d 100644 --- a/ci/ios/deploy_and_run_on_ios_simulator.rs +++ b/ci/ios/deploy_and_run_on_ios_simulator.rs @@ -6,11 +6,17 @@ // (https://github.com/snipsco/dinghy): cargo dinghy install, then cargo dinghy // test. -use std::fs::{self, File}; +use std::fs::{ + self, + File, +}; use std::io::Write; use std::path::Path; use std::process::Command; -use std::{env, process}; +use std::{ + env, + process, +}; macro_rules! t { ($e:expr) => { diff --git a/ci/runtest-android.rs b/ci/runtest-android.rs index 29b1a82f675c7..b88cd9c1b9140 100644 --- a/ci/runtest-android.rs +++ b/ci/runtest-android.rs @@ -1,5 +1,8 @@ use std::env; -use std::path::{Path, PathBuf}; +use std::path::{ + Path, + PathBuf, +}; use std::process::Command; fn main() { diff --git a/libc-test/build.rs b/libc-test/build.rs index 5725a9c8607ff..514f888d7b986 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2,9 +2,20 @@ #![allow(clippy::match_like_matches_macro)] use std::fs::File; -use std::io::{BufRead, BufReader, BufWriter, Write}; -use std::path::{Path, PathBuf}; -use std::{env, io}; +use std::io::{ + BufRead, + BufReader, + BufWriter, + Write, +}; +use std::path::{ + Path, + PathBuf, +}; +use std::{ + env, + io, +}; fn do_cc() { let target = env::var("TARGET").unwrap(); diff --git a/libc-test/tests/cmsg.rs b/libc-test/tests/cmsg.rs index 893dd56dba266..80d4af53938e8 100644 --- a/libc-test/tests/cmsg.rs +++ b/libc-test/tests/cmsg.rs @@ -6,7 +6,14 @@ mod t { use std::mem; - use libc::{self, c_uchar, c_uint, c_void, cmsghdr, msghdr}; + use libc::{ + self, + c_uchar, + c_uint, + c_void, + cmsghdr, + msghdr, + }; extern "C" { pub fn cmsg_firsthdr(msgh: *const msghdr) -> *mut cmsghdr; diff --git a/libc-test/tests/errqueue.rs b/libc-test/tests/errqueue.rs index a7d1563c5cf39..c3d9c2e69a496 100644 --- a/libc-test/tests/errqueue.rs +++ b/libc-test/tests/errqueue.rs @@ -2,7 +2,11 @@ #[cfg(any(target_os = "linux", target_os = "android"))] mod t { - use libc::{self, sock_extended_err, sockaddr}; + use libc::{ + self, + sock_extended_err, + sockaddr, + }; extern "C" { pub fn so_ee_offender(ee: *const sock_extended_err) -> *mut sockaddr; diff --git a/libc-test/tests/makedev.rs b/libc-test/tests/makedev.rs index 1c08776d7260f..a5c1ec2ffc580 100644 --- a/libc-test/tests/makedev.rs +++ b/libc-test/tests/makedev.rs @@ -13,7 +13,11 @@ target_os = "cygwin", ))] -use libc::{self, c_uint, dev_t}; +use libc::{ + self, + c_uint, + dev_t, +}; cfg_if::cfg_if! { if #[cfg(any(target_os = "solaris", target_os = "illumos"))] { diff --git a/libc-test/tests/style.rs b/libc-test/tests/style.rs index d5af8dddbf973..dcbe43bb59651 100644 --- a/libc-test/tests/style.rs +++ b/libc-test/tests/style.rs @@ -14,7 +14,10 @@ pub mod style_lib; use std::env; use std::path::Path; -use style_lib::{Result, StyleChecker}; +use style_lib::{ + Result, + StyleChecker, +}; /// Relative to `src/`. const SKIP_PREFIXES: &[&str] = &[ diff --git a/libc-test/tests/style_lib/mod.rs b/libc-test/tests/style_lib/mod.rs index cc953d32c3aed..04eec91df635d 100644 --- a/libc-test/tests/style_lib/mod.rs +++ b/libc-test/tests/style_lib/mod.rs @@ -28,13 +28,26 @@ use std::collections::HashMap; use std::fs; use std::ops::Deref; -use std::path::{Path, PathBuf}; - -use annotate_snippets::{Level, Renderer, Snippet}; +use std::path::{ + Path, + PathBuf, +}; + +use annotate_snippets::{ + Level, + Renderer, + Snippet, +}; use proc_macro2::Span; -use syn::parse::{Parse, ParseStream}; +use syn::parse::{ + Parse, + ParseStream, +}; use syn::spanned::Spanned; -use syn::visit::{self, Visit}; +use syn::visit::{ + self, + Visit, +}; use syn::Token; const ALLOWED_REPEATED_MACROS: &[&str] = &["s", "s_no_extra_traits", "s_paren"]; diff --git a/rustfmt.toml b/rustfmt.toml deleted file mode 100644 index 8016e2bbfeca9..0000000000000 --- a/rustfmt.toml +++ /dev/null @@ -1,5 +0,0 @@ -# Note that there is a separate configuration for `src/` -edition = "2021" -error_on_line_overflow = true -group_imports = "StdExternalCrate" -imports_granularity = "Module" From 5a16ab5638ed2398fe2439638fc2a708018e791a Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 20 Nov 2025 03:27:24 -0600 Subject: [PATCH 1022/1228] fmt: Replace style.sh with style.py We need a bit more flexibility in the formatting, which would be difficult to achieve with bash. Rewrite the style check to a python script that will be easier to extend. This is also faster than using inplace perl, an now prints a diff when semver files aren't sorted. (backport ) (cherry picked from commit 9713fd10555633f22ed4eab4b46597a1ca990fec) --- .github/workflows/ci.yaml | 2 +- CONTRIBUTING.md | 2 +- ci/style.py | 165 ++++++++++++++++++++++++++++++++++++++ ci/style.sh | 90 --------------------- 4 files changed, 167 insertions(+), 92 deletions(-) create mode 100755 ci/style.py delete mode 100755 ci/style.sh diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e523d2927b4d0..e3800bad290cd 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -29,7 +29,7 @@ jobs: - name: Setup Rust toolchain run: ./ci/install-rust.sh && rustup component add rustfmt - name: Check style - run: ./ci/style.sh + run: ./ci/style.py clippy: name: Clippy on ${{ matrix.os }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0cdfaeadf9059..f43cda673d37b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -93,7 +93,7 @@ We have two automated tests running on - `cd libc-test && cargo test` - Use the `skip_*()` functions in `build.rs` if you really need a workaround. 2. Style checker - - [`./ci/style.sh`](https://github.com/rust-lang/libc/blob/main/ci/style.sh) + - [`./ci/style.py`](https://github.com/rust-lang/libc/blob/main/ci/style.py) ## Breaking change policy diff --git a/ci/style.py b/ci/style.py new file mode 100755 index 0000000000000..18aa60d1bdb4c --- /dev/null +++ b/ci/style.py @@ -0,0 +1,165 @@ +#!/usr/bin/env python3 + +import os +import re +import subprocess as sp +import sys + +from difflib import unified_diff +from glob import iglob +from pathlib import Path + + +FMT_DIRS = ["src", "ci"] +IGNORE_FILES = [ + # Too much special syntax that we don't want to format + "src/macros.rs" +] + + +def main(): + # if `CI` is set, do a check rather than overwriting + check_only = os.getenv("CI") is not None + run(["rustfmt", "-V"]) + + fmt_files = [] + for dir in FMT_DIRS: + fmt_files.extend(iglob(f"{dir}/**/*.rs", recursive=True)) + + for file in fmt_files: + if file in IGNORE_FILES: + continue + fmt_one(Path(file), check_only) + + # Run once from workspace root to get everything that wasn't handled as an + # individual file. + if check_only: + run(["cargo", "fmt", "--check"]) + else: + run(["cargo", "fmt"]) + + for file in iglob("libc-test/semver/*.txt"): + check_semver_file(Path(file)) + + # Style tests + run( + [ + "cargo", + "test", + "--manifest-path=libc-test/Cargo.toml", + "--test=style", + "--", + "--nocapture", + ] + ) + + try: + run(["shellcheck", "--version"]) + except sp.CalledProcessError: + eprint("ERROR: shellcheck not found") + exit(1) + + for file in iglob("**/*.sh", recursive=True): + run(["shellcheck", file]) + + +def fmt_one(fpath: Path, check_only: bool): + eprint(f"Formatting {fpath}") + text = fpath.read_text() + + # Rustfmt doesn't format the bodies of `{ ... }` macros, which is most of `libc`. To + # make things usable, we do some hacks to replace macros with some kind of + # alternative syntax that gets formatted about how we want, then reset the changes + # after formatting. + + # Turn all braced macro `foo! { /* ... */ }` invocations into + # `fn foo_fmt_tmp() { /* ... */ }`, since our macro bodies are usually valid in + # a function context. + text = re.sub(r"(?!macro_rules)\b(\w+)!\s*\{", r"fn \1_fmt_tmp() {", text) + + # Replace `if #[cfg(...)]` within `cfg_if` with `if cfg_tmp!([...])` which + # `rustfmt` will format. We put brackets within the parens so it is easy to + # match (trying to match parentheses would catch the first closing `)` which + # wouldn't be correct for something like `all(any(...), ...)`). + text = re.sub(r"if #\[cfg\((.*?)\)\]", r"if cfg_tmp!([\1])", text, flags=re.DOTALL) + + # The `c_enum!` macro allows anonymous enums without names, which isn't valid + # syntax. Replace it with a dummy name. + text = re.sub(r"enum #anon\b", r"enum _fmt_anon", text) + + # Invoke rustfmt passing via stdin/stdout so we don't need to write the file. Exits + # on failure. + cmd = ["rustfmt", "--config-path=.rustfmt.toml"] + if check_only: + res = check_output(cmd + ["--check"], input=text) + + # Unfortunately rustfmt on stdin always completes with 0 exit code even if + # there are errors, so we need to pick between writing the file to disk or + # relying on empty stdout to indicate success. + # . + if len(res) == 0: + return + eprint(f"ERROR: File {fpath} is not properly formatted") + print(res) + exit(1) + else: + text = check_output(cmd, input=text) + + # Restore all changes in the formatted text + text = re.sub(r"fn (\w+)_fmt_tmp\(\)", r"\1!", text) + text = re.sub(r"cfg_tmp!\(\[(.*?)\]\)", r"#[cfg(\1)]", text, flags=re.DOTALL) + text = re.sub(r"enum _fmt_anon", r"enum #anon", text) + + # And write the formatted file back + fpath.write_text(text) + + +def check_semver_file(fpath: Path): + if "TODO" in str(fpath): + eprint(f"Skipping semver file {fpath}") + return + + eprint(f"Checking semver file {fpath}") + + text = fpath.read_text() + lines = text.splitlines() + sort = sorted(lines) + if lines != sort: + eprint(f"ERROR: Unsorted semver file {fpath}") + eprint("\n".join(unified_diff(lines, sort, lineterm=""))) + exit(1) + + duplicates = [] + seen = set() + for line in lines: + if line in seen: + duplicates.append(line) + seen.add(line) + + if len(duplicates) > 0: + eprint(f"ERROR: Duplicates in semver file {fpath}") + eprint(duplicates) + exit(1) + + +def check_output(args: list[str], **kw) -> str: + xtrace(args) + return sp.check_output(args, encoding="utf8", text=True, **kw) + + +def run(args: list[str], **kw) -> sp.CompletedProcess: + xtrace(args) + return sp.run(args, check=True, text=True, **kw) + + +def xtrace(args: list[str]): + astr = " ".join(args) + eprint(f"+ {astr}") + + +def eprint(*args, **kw): + print(*args, file=sys.stderr, **kw) + + +if __name__ == "__main__": + main() diff --git a/ci/style.sh b/ci/style.sh deleted file mode 100755 index ef57a5efd0402..0000000000000 --- a/ci/style.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/sh - -set -eux - -[ -n "${CI:-}" ] && check="--check" - -cargo test --manifest-path libc-test/Cargo.toml --test style -- --nocapture - -command -v rustfmt -rustfmt -V - -# Save a list of all source files -tmpfile="file-list~" # trailing tilde for gitignore -find src ci -name '*.rs' > "$tmpfile" - -# Before formatting, replace all macro identifiers with a function signature. -# This allows `rustfmt` to format it. -while IFS= read -r file; do - if [ "$file" = "src/macros.rs" ]; then - # Too much special syntax in `macros.rs` that we don't want to format - continue - fi - - # Turn all braced macro `foo! { /* ... */ }` invocations into - # `fn foo_fmt_tmp() { /* ... */ }`. - perl -pi -e 's/(?!macro_rules)\b(\w+)!\s*\{/fn $1_fmt_tmp() {/g' "$file" - - # Replace `if #[cfg(...)]` within `cfg_if` with `if cfg_tmp!([...])` which - # `rustfmt` will format. We put brackets within the parens so it is easy to - # match (trying to match parentheses would catch the first closing `)` which - # wouldn't be correct for something like `all(any(...), ...)`). - perl -pi -0777 -e 's/if #\[cfg\((.*?)\)\]/if cfg_tmp!([$1])/gms' "$file" - - # The `c_enum!` macro allows anonymous enums without names, which - # isn't valid syntax. Replace it with a dummy name and an indicator - # comment on the preceding line (which is where rustfmt puts it. Also - # rust-lang/rustfmt#5464). - perl -pi -e 's/^(\s*)(.*)enum #anon\b/$1\/\* FMT-ANON-ENUM \*\/\n$1$2enum _fmt_anon/g' "$file" - - # Format the file. We need to invoke `rustfmt` directly since `cargo fmt` - # can't figure out the module tree with the hacks in place. - failed=false - rustfmt "$file" ${check:+"$check"} || failed=true - - # Restore all changes to the files. - perl -pi -e 's/fn (\w+)_fmt_tmp\(\)/$1!/g' "$file" - perl -pi -0777 -e 's/cfg_tmp!\(\[(.*?)\]\)/#[cfg($1)]/gms' "$file" - perl -pi -0777 -e 's/\/\* FMT-ANON-ENUM \*\/(?:\n\s*)?(.*?)enum _fmt_anon/$1enum #anon/gms' "$file" - - # Defer emitting the failure until after the files get reset - if [ "$failed" != "false" ]; then - echo "Formatting failed" - exit 1 - fi -done < "$tmpfile" - -rm "$tmpfile" - -# Run once from workspace root to get everything that wasn't handled as an -# individual file. -cargo fmt ${check:+"$check"} - -# Ensure that `sort` output is not locale-dependent -export LC_ALL=C - -for file in libc-test/semver/*.txt; do - case "$file" in - *TODO*) continue ;; - esac - - if ! sort -C "$file"; then - echo "Unsorted semver file $file" - exit 1 - fi - - duplicates=$(uniq -d "$file") - if [ -n "$duplicates" ]; then - echo "Semver file $file contains duplicates:" - echo "$duplicates" - - exit 1 - fi -done - -if shellcheck --version; then - find . -name '*.sh' -print0 | xargs -0 shellcheck -else - echo "shellcheck not found" - exit 1 -fi From 9771af7ce0c975d0379051c3c0eb58fac5cdabfa Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 20 Nov 2025 03:06:58 -0600 Subject: [PATCH 1023/1228] macros: Take a visibility for `c_enum` variants Accept a visibility so we are able to make some variants nonpublic. This means that `pub` needs to be added on all variants we want to be visible: it is more verbose, but matches how everything else works. (backport ) (cherry picked from commit ba6357ef7892f3eed598822c21e8ef692caf6575) [ Needed to drop changes to a lot of types that still use Rust `enum`s - Trevor ] --- src/macros.rs | 79 ++++- .../libpthread/pthread_/introspection.rs | 8 +- src/new/linux_uapi/linux/can/bcm.rs | 24 +- src/unix/haiku/native.rs | 328 +++++++++--------- src/unix/linux_like/linux/mod.rs | 36 +- 5 files changed, 264 insertions(+), 211 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index c6001e7bc37c9..019a15a2ec728 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -298,13 +298,13 @@ macro_rules! c_enum { ($( $(#[repr($repr:ty)])? pub enum $($ty_name:ident)? $(#$anon:ident)? { - $($variant:ident $(= $value:expr)?,)+ + $($vis:vis $variant:ident $(= $value:expr)?,)+ } )+) => { $(c_enum!(@single; $(#[repr($repr)])? pub enum $($ty_name)? $(#$anon)? { - $($variant $(= $value)?,)+ + $($vis $variant $(= $value)?,)+ } );)+ }; @@ -313,31 +313,45 @@ macro_rules! c_enum { (@single; $(#[repr($repr:ty)])? pub enum $ty_name:ident { - $($variant:ident $(= $value:expr)?,)+ + $($vis:vis $variant:ident $(= $value:expr)?,)+ } ) => { pub type $ty_name = c_enum!(@ty $($repr)?); - c_enum!(@variant; $ty_name; 0; $($variant $(= $value)?,)+); + c_enum! { + @variant; + ty: $ty_name; + default: 0; + variants: [$($vis $variant $(= $value)?,)+] + } }; // Matcher for a single anonymous enum (@single; $(#[repr($repr:ty)])? pub enum #anon { - $($variant:ident $(= $value:expr)?,)+ + $($vis:vis $variant:ident $(= $value:expr)?,)+ } ) => { - c_enum!(@variant; c_enum!(@ty $($repr)?); 0; $($variant $(= $value)?,)+); + c_enum! { + @variant; + ty: c_enum!(@ty $($repr)?); + default: 0; + variants: [$($vis $variant $(= $value)?,)+] + } }; - // Matcher for a single variant - (@variant; $_ty_name:ty; $_idx:expr;) => { /* end of the chain */ }; + // Matcher for variants: eats a single variant then recurses with the rest + (@variant; ty: $_ty_name:ty; default: $_idx:expr; variants: []) => { /* end of the chain */ }; ( - @variant; $ty_name:ty; $default_val:expr; - $variant:ident $(= $value:expr)?, - $($tail:tt)* + @variant; + ty: $ty_name:ty; + default: $default_val:expr; + variants: [ + $vis:vis $variant:ident $(= $value:expr)?, + $($tail:tt)* + ] ) => { - pub const $variant: $ty_name = { + $vis const $variant: $ty_name = { #[allow(unused_variables)] let r = $default_val; $(let r = $value;)? @@ -346,7 +360,12 @@ macro_rules! c_enum { // The next value is always one more than the previous value, unless // set explicitly. - c_enum!(@variant; $ty_name; $variant + 1; $($tail)*); + c_enum! { + @variant; + ty: $ty_name; + default: $variant + 1; + variants: [$($tail)*] + } }; // Use a specific type if provided, otherwise default to `CEnumRepr` @@ -543,6 +562,40 @@ mod tests { assert_eq!(VAR4_1, 4 as CEnumRepr); } + #[test] + fn c_enum_vis() { + mod priv1 { + c_enum! { + #[repr(u8)] + pub enum e1 { + PRIV_ON_1 = 10, + // Variant should still be usable within its visibility + pub PUB1 = PRIV_ON_1 * 2, + } + } + } + mod priv2 { + c_enum! { + #[repr(u16)] + pub enum e2 { + pub PRIV_ON_1 = 42, + pub PUB2 = PRIV_ON_1 * 2, + } + } + } + + use priv1::*; + use priv2::*; + + assert_eq!(TypeId::of::(), TypeId::of::()); + assert_eq!(TypeId::of::(), TypeId::of::()); + assert_eq!(PUB1, 10u8 * 2); + assert_eq!(PUB2, 42u16 * 2); + // Verify that the default is private. If `PRIV_ON_1` was actually public in `priv1`, this + // would be an ambiguous import and/or type mismatch error. + assert_eq!(PRIV_ON_1, 42u16); + } + fn type_id_of_val(_: &T) -> TypeId { TypeId::of::() } diff --git a/src/new/apple/libpthread/pthread_/introspection.rs b/src/new/apple/libpthread/pthread_/introspection.rs index 6a7e1557814c8..6509e22be3c08 100644 --- a/src/new/apple/libpthread/pthread_/introspection.rs +++ b/src/new/apple/libpthread/pthread_/introspection.rs @@ -8,10 +8,10 @@ pub use crate::pthread_::pthread::*; c_enum! { #[repr(c_uint)] pub enum #anon { - PTHREAD_INTROSPECTION_THREAD_CREATE = 1, - PTHREAD_INTROSPECTION_THREAD_START, - PTHREAD_INTROSPECTION_THREAD_TERMINATE, - PTHREAD_INTROSPECTION_THREAD_DESTROY, + pub PTHREAD_INTROSPECTION_THREAD_CREATE = 1, + pub PTHREAD_INTROSPECTION_THREAD_START, + pub PTHREAD_INTROSPECTION_THREAD_TERMINATE, + pub PTHREAD_INTROSPECTION_THREAD_DESTROY, } } diff --git a/src/new/linux_uapi/linux/can/bcm.rs b/src/new/linux_uapi/linux/can/bcm.rs index 10f67d2db04e9..853f85f040880 100644 --- a/src/new/linux_uapi/linux/can/bcm.rs +++ b/src/new/linux_uapi/linux/can/bcm.rs @@ -23,18 +23,18 @@ s! { c_enum! { #[repr(u32)] pub enum #anon { - TX_SETUP = 1, - TX_DELETE, - TX_READ, - TX_SEND, - RX_SETUP, - RX_DELETE, - RX_READ, - TX_STATUS, - TX_EXPIRED, - RX_STATUS, - RX_TIMEOUT, - RX_CHANGED, + pub TX_SETUP = 1, + pub TX_DELETE, + pub TX_READ, + pub TX_SEND, + pub RX_SETUP, + pub RX_DELETE, + pub RX_READ, + pub TX_STATUS, + pub TX_EXPIRED, + pub RX_STATUS, + pub RX_TIMEOUT, + pub RX_CHANGED, } } diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs index 3ed686b8bbb4b..acf6b3486de79 100644 --- a/src/unix/haiku/native.rs +++ b/src/unix/haiku/native.rs @@ -37,200 +37,200 @@ pub type image_id = i32; c_enum! { // kernel/OS.h pub enum thread_state { - B_THREAD_RUNNING = 1, - B_THREAD_READY, - B_THREAD_RECEIVING, - B_THREAD_ASLEEP, - B_THREAD_SUSPENDED, - B_THREAD_WAITING, + pub B_THREAD_RUNNING = 1, + pub B_THREAD_READY, + pub B_THREAD_RECEIVING, + pub B_THREAD_ASLEEP, + pub B_THREAD_SUSPENDED, + pub B_THREAD_WAITING, } // kernel/image.h pub enum image_type { - B_APP_IMAGE = 1, - B_LIBRARY_IMAGE, - B_ADD_ON_IMAGE, - B_SYSTEM_IMAGE, + pub B_APP_IMAGE = 1, + pub B_LIBRARY_IMAGE, + pub B_ADD_ON_IMAGE, + pub B_SYSTEM_IMAGE, } // kernel/scheduler.h pub enum be_task_flags { - B_DEFAULT_MEDIA_PRIORITY = 0x000, - B_OFFLINE_PROCESSING = 0x001, - B_STATUS_RENDERING = 0x002, - B_USER_INPUT_HANDLING = 0x004, - B_LIVE_VIDEO_MANIPULATION = 0x008, - B_VIDEO_PLAYBACK = 0x010, - B_VIDEO_RECORDING = 0x020, - B_LIVE_AUDIO_MANIPULATION = 0x040, - B_AUDIO_PLAYBACK = 0x080, - B_AUDIO_RECORDING = 0x100, - B_LIVE_3D_RENDERING = 0x200, - B_NUMBER_CRUNCHING = 0x400, - B_MIDI_PROCESSING = 0x800, + pub B_DEFAULT_MEDIA_PRIORITY = 0x000, + pub B_OFFLINE_PROCESSING = 0x001, + pub B_STATUS_RENDERING = 0x002, + pub B_USER_INPUT_HANDLING = 0x004, + pub B_LIVE_VIDEO_MANIPULATION = 0x008, + pub B_VIDEO_PLAYBACK = 0x010, + pub B_VIDEO_RECORDING = 0x020, + pub B_LIVE_AUDIO_MANIPULATION = 0x040, + pub B_AUDIO_PLAYBACK = 0x080, + pub B_AUDIO_RECORDING = 0x100, + pub B_LIVE_3D_RENDERING = 0x200, + pub B_NUMBER_CRUNCHING = 0x400, + pub B_MIDI_PROCESSING = 0x800, } pub enum schduler_mode { - SCHEDULER_MODE_LOW_LATENCY, - SCHEDULER_MODE_POWER_SAVING, + pub SCHEDULER_MODE_LOW_LATENCY, + pub SCHEDULER_MODE_POWER_SAVING, } // FindDirectory.h pub enum path_base_directory { - B_FIND_PATH_INSTALLATION_LOCATION_DIRECTORY, - B_FIND_PATH_ADD_ONS_DIRECTORY, - B_FIND_PATH_APPS_DIRECTORY, - B_FIND_PATH_BIN_DIRECTORY, - B_FIND_PATH_BOOT_DIRECTORY, - B_FIND_PATH_CACHE_DIRECTORY, - B_FIND_PATH_DATA_DIRECTORY, - B_FIND_PATH_DEVELOP_DIRECTORY, - B_FIND_PATH_DEVELOP_LIB_DIRECTORY, - B_FIND_PATH_DOCUMENTATION_DIRECTORY, - B_FIND_PATH_ETC_DIRECTORY, - B_FIND_PATH_FONTS_DIRECTORY, - B_FIND_PATH_HEADERS_DIRECTORY, - B_FIND_PATH_LIB_DIRECTORY, - B_FIND_PATH_LOG_DIRECTORY, - B_FIND_PATH_MEDIA_NODES_DIRECTORY, - B_FIND_PATH_PACKAGES_DIRECTORY, - B_FIND_PATH_PREFERENCES_DIRECTORY, - B_FIND_PATH_SERVERS_DIRECTORY, - B_FIND_PATH_SETTINGS_DIRECTORY, - B_FIND_PATH_SOUNDS_DIRECTORY, - B_FIND_PATH_SPOOL_DIRECTORY, - B_FIND_PATH_TRANSLATORS_DIRECTORY, - B_FIND_PATH_VAR_DIRECTORY, - B_FIND_PATH_IMAGE_PATH = 1000, - B_FIND_PATH_PACKAGE_PATH, + pub B_FIND_PATH_INSTALLATION_LOCATION_DIRECTORY, + pub B_FIND_PATH_ADD_ONS_DIRECTORY, + pub B_FIND_PATH_APPS_DIRECTORY, + pub B_FIND_PATH_BIN_DIRECTORY, + pub B_FIND_PATH_BOOT_DIRECTORY, + pub B_FIND_PATH_CACHE_DIRECTORY, + pub B_FIND_PATH_DATA_DIRECTORY, + pub B_FIND_PATH_DEVELOP_DIRECTORY, + pub B_FIND_PATH_DEVELOP_LIB_DIRECTORY, + pub B_FIND_PATH_DOCUMENTATION_DIRECTORY, + pub B_FIND_PATH_ETC_DIRECTORY, + pub B_FIND_PATH_FONTS_DIRECTORY, + pub B_FIND_PATH_HEADERS_DIRECTORY, + pub B_FIND_PATH_LIB_DIRECTORY, + pub B_FIND_PATH_LOG_DIRECTORY, + pub B_FIND_PATH_MEDIA_NODES_DIRECTORY, + pub B_FIND_PATH_PACKAGES_DIRECTORY, + pub B_FIND_PATH_PREFERENCES_DIRECTORY, + pub B_FIND_PATH_SERVERS_DIRECTORY, + pub B_FIND_PATH_SETTINGS_DIRECTORY, + pub B_FIND_PATH_SOUNDS_DIRECTORY, + pub B_FIND_PATH_SPOOL_DIRECTORY, + pub B_FIND_PATH_TRANSLATORS_DIRECTORY, + pub B_FIND_PATH_VAR_DIRECTORY, + pub B_FIND_PATH_IMAGE_PATH = 1000, + pub B_FIND_PATH_PACKAGE_PATH, } pub enum directory_which { - B_DESKTOP_DIRECTORY = 0, - B_TRASH_DIRECTORY, - B_SYSTEM_DIRECTORY = 1000, - B_SYSTEM_ADDONS_DIRECTORY = 1002, - B_SYSTEM_BOOT_DIRECTORY, - B_SYSTEM_FONTS_DIRECTORY, - B_SYSTEM_LIB_DIRECTORY, - B_SYSTEM_SERVERS_DIRECTORY, - B_SYSTEM_APPS_DIRECTORY, - B_SYSTEM_BIN_DIRECTORY, - B_SYSTEM_DOCUMENTATION_DIRECTORY = 1010, - B_SYSTEM_PREFERENCES_DIRECTORY, - B_SYSTEM_TRANSLATORS_DIRECTORY, - B_SYSTEM_MEDIA_NODES_DIRECTORY, - B_SYSTEM_SOUNDS_DIRECTORY, - B_SYSTEM_DATA_DIRECTORY, - B_SYSTEM_DEVELOP_DIRECTORY, - B_SYSTEM_PACKAGES_DIRECTORY, - B_SYSTEM_HEADERS_DIRECTORY, - B_SYSTEM_ETC_DIRECTORY = 2008, - B_SYSTEM_SETTINGS_DIRECTORY = 2010, - B_SYSTEM_LOG_DIRECTORY = 2012, - B_SYSTEM_SPOOL_DIRECTORY, - B_SYSTEM_TEMP_DIRECTORY, - B_SYSTEM_VAR_DIRECTORY, - B_SYSTEM_CACHE_DIRECTORY = 2020, - B_SYSTEM_NONPACKAGED_DIRECTORY = 2023, - B_SYSTEM_NONPACKAGED_ADDONS_DIRECTORY, - B_SYSTEM_NONPACKAGED_TRANSLATORS_DIRECTORY, - B_SYSTEM_NONPACKAGED_MEDIA_NODES_DIRECTORY, - B_SYSTEM_NONPACKAGED_BIN_DIRECTORY, - B_SYSTEM_NONPACKAGED_DATA_DIRECTORY, - B_SYSTEM_NONPACKAGED_FONTS_DIRECTORY, - B_SYSTEM_NONPACKAGED_SOUNDS_DIRECTORY, - B_SYSTEM_NONPACKAGED_DOCUMENTATION_DIRECTORY, - B_SYSTEM_NONPACKAGED_LIB_DIRECTORY, - B_SYSTEM_NONPACKAGED_HEADERS_DIRECTORY, - B_SYSTEM_NONPACKAGED_DEVELOP_DIRECTORY, - B_USER_DIRECTORY = 3000, - B_USER_CONFIG_DIRECTORY, - B_USER_ADDONS_DIRECTORY, - B_USER_BOOT_DIRECTORY, - B_USER_FONTS_DIRECTORY, - B_USER_LIB_DIRECTORY, - B_USER_SETTINGS_DIRECTORY, - B_USER_DESKBAR_DIRECTORY, - B_USER_PRINTERS_DIRECTORY, - B_USER_TRANSLATORS_DIRECTORY, - B_USER_MEDIA_NODES_DIRECTORY, - B_USER_SOUNDS_DIRECTORY, - B_USER_DATA_DIRECTORY, - B_USER_CACHE_DIRECTORY, - B_USER_PACKAGES_DIRECTORY, - B_USER_HEADERS_DIRECTORY, - B_USER_NONPACKAGED_DIRECTORY, - B_USER_NONPACKAGED_ADDONS_DIRECTORY, - B_USER_NONPACKAGED_TRANSLATORS_DIRECTORY, - B_USER_NONPACKAGED_MEDIA_NODES_DIRECTORY, - B_USER_NONPACKAGED_BIN_DIRECTORY, - B_USER_NONPACKAGED_DATA_DIRECTORY, - B_USER_NONPACKAGED_FONTS_DIRECTORY, - B_USER_NONPACKAGED_SOUNDS_DIRECTORY, - B_USER_NONPACKAGED_DOCUMENTATION_DIRECTORY, - B_USER_NONPACKAGED_LIB_DIRECTORY, - B_USER_NONPACKAGED_HEADERS_DIRECTORY, - B_USER_NONPACKAGED_DEVELOP_DIRECTORY, - B_USER_DEVELOP_DIRECTORY, - B_USER_DOCUMENTATION_DIRECTORY, - B_USER_SERVERS_DIRECTORY, - B_USER_APPS_DIRECTORY, - B_USER_BIN_DIRECTORY, - B_USER_PREFERENCES_DIRECTORY, - B_USER_ETC_DIRECTORY, - B_USER_LOG_DIRECTORY, - B_USER_SPOOL_DIRECTORY, - B_USER_VAR_DIRECTORY, - B_APPS_DIRECTORY = 4000, - B_PREFERENCES_DIRECTORY, - B_UTILITIES_DIRECTORY, - B_PACKAGE_LINKS_DIRECTORY, + pub B_DESKTOP_DIRECTORY = 0, + pub B_TRASH_DIRECTORY, + pub B_SYSTEM_DIRECTORY = 1000, + pub B_SYSTEM_ADDONS_DIRECTORY = 1002, + pub B_SYSTEM_BOOT_DIRECTORY, + pub B_SYSTEM_FONTS_DIRECTORY, + pub B_SYSTEM_LIB_DIRECTORY, + pub B_SYSTEM_SERVERS_DIRECTORY, + pub B_SYSTEM_APPS_DIRECTORY, + pub B_SYSTEM_BIN_DIRECTORY, + pub B_SYSTEM_DOCUMENTATION_DIRECTORY = 1010, + pub B_SYSTEM_PREFERENCES_DIRECTORY, + pub B_SYSTEM_TRANSLATORS_DIRECTORY, + pub B_SYSTEM_MEDIA_NODES_DIRECTORY, + pub B_SYSTEM_SOUNDS_DIRECTORY, + pub B_SYSTEM_DATA_DIRECTORY, + pub B_SYSTEM_DEVELOP_DIRECTORY, + pub B_SYSTEM_PACKAGES_DIRECTORY, + pub B_SYSTEM_HEADERS_DIRECTORY, + pub B_SYSTEM_ETC_DIRECTORY = 2008, + pub B_SYSTEM_SETTINGS_DIRECTORY = 2010, + pub B_SYSTEM_LOG_DIRECTORY = 2012, + pub B_SYSTEM_SPOOL_DIRECTORY, + pub B_SYSTEM_TEMP_DIRECTORY, + pub B_SYSTEM_VAR_DIRECTORY, + pub B_SYSTEM_CACHE_DIRECTORY = 2020, + pub B_SYSTEM_NONPACKAGED_DIRECTORY = 2023, + pub B_SYSTEM_NONPACKAGED_ADDONS_DIRECTORY, + pub B_SYSTEM_NONPACKAGED_TRANSLATORS_DIRECTORY, + pub B_SYSTEM_NONPACKAGED_MEDIA_NODES_DIRECTORY, + pub B_SYSTEM_NONPACKAGED_BIN_DIRECTORY, + pub B_SYSTEM_NONPACKAGED_DATA_DIRECTORY, + pub B_SYSTEM_NONPACKAGED_FONTS_DIRECTORY, + pub B_SYSTEM_NONPACKAGED_SOUNDS_DIRECTORY, + pub B_SYSTEM_NONPACKAGED_DOCUMENTATION_DIRECTORY, + pub B_SYSTEM_NONPACKAGED_LIB_DIRECTORY, + pub B_SYSTEM_NONPACKAGED_HEADERS_DIRECTORY, + pub B_SYSTEM_NONPACKAGED_DEVELOP_DIRECTORY, + pub B_USER_DIRECTORY = 3000, + pub B_USER_CONFIG_DIRECTORY, + pub B_USER_ADDONS_DIRECTORY, + pub B_USER_BOOT_DIRECTORY, + pub B_USER_FONTS_DIRECTORY, + pub B_USER_LIB_DIRECTORY, + pub B_USER_SETTINGS_DIRECTORY, + pub B_USER_DESKBAR_DIRECTORY, + pub B_USER_PRINTERS_DIRECTORY, + pub B_USER_TRANSLATORS_DIRECTORY, + pub B_USER_MEDIA_NODES_DIRECTORY, + pub B_USER_SOUNDS_DIRECTORY, + pub B_USER_DATA_DIRECTORY, + pub B_USER_CACHE_DIRECTORY, + pub B_USER_PACKAGES_DIRECTORY, + pub B_USER_HEADERS_DIRECTORY, + pub B_USER_NONPACKAGED_DIRECTORY, + pub B_USER_NONPACKAGED_ADDONS_DIRECTORY, + pub B_USER_NONPACKAGED_TRANSLATORS_DIRECTORY, + pub B_USER_NONPACKAGED_MEDIA_NODES_DIRECTORY, + pub B_USER_NONPACKAGED_BIN_DIRECTORY, + pub B_USER_NONPACKAGED_DATA_DIRECTORY, + pub B_USER_NONPACKAGED_FONTS_DIRECTORY, + pub B_USER_NONPACKAGED_SOUNDS_DIRECTORY, + pub B_USER_NONPACKAGED_DOCUMENTATION_DIRECTORY, + pub B_USER_NONPACKAGED_LIB_DIRECTORY, + pub B_USER_NONPACKAGED_HEADERS_DIRECTORY, + pub B_USER_NONPACKAGED_DEVELOP_DIRECTORY, + pub B_USER_DEVELOP_DIRECTORY, + pub B_USER_DOCUMENTATION_DIRECTORY, + pub B_USER_SERVERS_DIRECTORY, + pub B_USER_APPS_DIRECTORY, + pub B_USER_BIN_DIRECTORY, + pub B_USER_PREFERENCES_DIRECTORY, + pub B_USER_ETC_DIRECTORY, + pub B_USER_LOG_DIRECTORY, + pub B_USER_SPOOL_DIRECTORY, + pub B_USER_VAR_DIRECTORY, + pub B_APPS_DIRECTORY = 4000, + pub B_PREFERENCES_DIRECTORY, + pub B_UTILITIES_DIRECTORY, + pub B_PACKAGE_LINKS_DIRECTORY, } // kernel/OS.h pub enum topology_level_type { - B_TOPOLOGY_UNKNOWN, - B_TOPOLOGY_ROOT, - B_TOPOLOGY_SMT, - B_TOPOLOGY_CORE, - B_TOPOLOGY_PACKAGE, + pub B_TOPOLOGY_UNKNOWN, + pub B_TOPOLOGY_ROOT, + pub B_TOPOLOGY_SMT, + pub B_TOPOLOGY_CORE, + pub B_TOPOLOGY_PACKAGE, } pub enum cpu_platform { - B_CPU_UNKNOWN, - B_CPU_x86, - B_CPU_x86_64, - B_CPU_PPC, - B_CPU_PPC_64, - B_CPU_M68K, - B_CPU_ARM, - B_CPU_ARM_64, - B_CPU_ALPHA, - B_CPU_MIPS, - B_CPU_SH, - B_CPU_SPARC, - B_CPU_RISC_V, + pub B_CPU_UNKNOWN, + pub B_CPU_x86, + pub B_CPU_x86_64, + pub B_CPU_PPC, + pub B_CPU_PPC_64, + pub B_CPU_M68K, + pub B_CPU_ARM, + pub B_CPU_ARM_64, + pub B_CPU_ALPHA, + pub B_CPU_MIPS, + pub B_CPU_SH, + pub B_CPU_SPARC, + pub B_CPU_RISC_V, } pub enum cpu_vendor { - B_CPU_VENDOR_UNKNOWN, - B_CPU_VENDOR_AMD, - B_CPU_VENDOR_CYRIX, - B_CPU_VENDOR_IDT, - B_CPU_VENDOR_INTEL, - B_CPU_VENDOR_NATIONAL_SEMICONDUCTOR, - B_CPU_VENDOR_RISE, - B_CPU_VENDOR_TRANSMETA, - B_CPU_VENDOR_VIA, - B_CPU_VENDOR_IBM, - B_CPU_VENDOR_MOTOROLA, - B_CPU_VENDOR_NEC, - B_CPU_VENDOR_HYGON, - B_CPU_VENDOR_SUN, - B_CPU_VENDOR_FUJITSU, + pub B_CPU_VENDOR_UNKNOWN, + pub B_CPU_VENDOR_AMD, + pub B_CPU_VENDOR_CYRIX, + pub B_CPU_VENDOR_IDT, + pub B_CPU_VENDOR_INTEL, + pub B_CPU_VENDOR_NATIONAL_SEMICONDUCTOR, + pub B_CPU_VENDOR_RISE, + pub B_CPU_VENDOR_TRANSMETA, + pub B_CPU_VENDOR_VIA, + pub B_CPU_VENDOR_IBM, + pub B_CPU_VENDOR_MOTOROLA, + pub B_CPU_VENDOR_NEC, + pub B_CPU_VENDOR_HYGON, + pub B_CPU_VENDOR_SUN, + pub B_CPU_VENDOR_FUJITSU, } } diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 057ae92e5f92b..53abf72b88fbd 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -90,11 +90,11 @@ e! { c_enum! { pub enum pid_type { - PIDTYPE_PID, - PIDTYPE_TGID, - PIDTYPE_PGID, - PIDTYPE_SID, - PIDTYPE_MAX, + pub PIDTYPE_PID, + pub PIDTYPE_TGID, + pub PIDTYPE_PGID, + pub PIDTYPE_SID, + pub PIDTYPE_MAX, } } @@ -4233,22 +4233,22 @@ pub const RTNLGRP_STATS: c_uint = 0x24; // linux/cn_proc.h c_enum! { pub enum proc_cn_mcast_op { - PROC_CN_MCAST_LISTEN = 1, - PROC_CN_MCAST_IGNORE = 2, + pub PROC_CN_MCAST_LISTEN = 1, + pub PROC_CN_MCAST_IGNORE = 2, } pub enum proc_cn_event { - PROC_EVENT_NONE = 0x00000000, - PROC_EVENT_FORK = 0x00000001, - PROC_EVENT_EXEC = 0x00000002, - PROC_EVENT_UID = 0x00000004, - PROC_EVENT_GID = 0x00000040, - PROC_EVENT_SID = 0x00000080, - PROC_EVENT_PTRACE = 0x00000100, - PROC_EVENT_COMM = 0x00000200, - PROC_EVENT_NONZERO_EXIT = 0x20000000, - PROC_EVENT_COREDUMP = 0x40000000, - PROC_EVENT_EXIT = 0x80000000, + pub PROC_EVENT_NONE = 0x00000000, + pub PROC_EVENT_FORK = 0x00000001, + pub PROC_EVENT_EXEC = 0x00000002, + pub PROC_EVENT_UID = 0x00000004, + pub PROC_EVENT_GID = 0x00000040, + pub PROC_EVENT_SID = 0x00000080, + pub PROC_EVENT_PTRACE = 0x00000100, + pub PROC_EVENT_COMM = 0x00000200, + pub PROC_EVENT_NONZERO_EXIT = 0x20000000, + pub PROC_EVENT_COREDUMP = 0x40000000, + pub PROC_EVENT_EXIT = 0x80000000, } } From 7516d382af0715deb7868f88bef4b3d36412062a Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 20 Nov 2025 06:29:22 -0600 Subject: [PATCH 1024/1228] ci: Update `style.py` to work with visibility on enums E.g. the following can now be formatted correctly: c_enum! { #[repr(c_uint)] pub enum #anon { pub PTHREAD_INTROSPECTION_THREAD_CREATE = 1, pub PTHREAD_INTROSPECTION_THREAD_START, pub PTHREAD_INTROSPECTION_THREAD_TERMINATE, pub PTHREAD_INTROSPECTION_THREAD_DESTROY, } } (backport ) (cherry picked from commit d58c1f4f9ae01648b342d7dead291d08655677c4) --- ci/style.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/ci/style.py b/ci/style.py index 18aa60d1bdb4c..fcbee07dac17c 100755 --- a/ci/style.py +++ b/ci/style.py @@ -87,6 +87,22 @@ def fmt_one(fpath: Path, check_only: bool): # syntax. Replace it with a dummy name. text = re.sub(r"enum #anon\b", r"enum _fmt_anon", text) + # If enum variants are annotated with `pub`, rustfmt erases the visibility. To get + # around this we first match on all enums to extract their bodies, then look for `pub` + # visibility indicators. If found, these get stashed in a comment on the preceding + # line. + def enum_sub(m: re.Match) -> str: + enum_body = m.group(0) + rep = re.sub( + r"^(.*)\b(pub\s*?(\(.*?\))?)\s*", + r"\1/* FMT-VIS \2 END-FMT-VIS */\n\1", + enum_body, + flags=re.MULTILINE, + ) + return rep + + text = re.sub(r"\benum.*\{\n?(?:\s*[^}]*\n)+\s*\}", enum_sub, text) + # Invoke rustfmt passing via stdin/stdout so we don't need to write the file. Exits # on failure. cmd = ["rustfmt", "--config-path=.rustfmt.toml"] @@ -109,6 +125,7 @@ def fmt_one(fpath: Path, check_only: bool): text = re.sub(r"fn (\w+)_fmt_tmp\(\)", r"\1!", text) text = re.sub(r"cfg_tmp!\(\[(.*?)\]\)", r"#[cfg(\1)]", text, flags=re.DOTALL) text = re.sub(r"enum _fmt_anon", r"enum #anon", text) + text = re.sub(r"/\* FMT-VIS (.*) END-FMT-VIS \*/\n\s*", r"\1 ", text) # And write the formatted file back fpath.write_text(text) From 5d284b0afd113ea6e92a5c7d2c1c93d1b7a60d07 Mon Sep 17 00:00:00 2001 From: 500-internal-server-error <76838083+500-internal-server-error@users.noreply.github.com> Date: Wed, 12 Nov 2025 15:46:48 +0700 Subject: [PATCH 1025/1228] Fix test for cygwin (backport ) (cherry picked from commit eb871eb941ee3c44b00beac2df20a913894437ab) --- src/unix/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 43b9305b9b190..62b2cdee67f19 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -384,6 +384,7 @@ cfg_if! { target_os = "android", target_os = "openbsd", target_os = "netbsd", + target_os = "cygwin", ))] { pub const FNM_NOESCAPE: c_int = 1 << 0; } else if #[cfg(target_os = "nto")] { From 9ba7c90662818c9bd6733899e4718816fe8b6394 Mon Sep 17 00:00:00 2001 From: 500-internal-server-error <76838083+500-internal-server-error@users.noreply.github.com> Date: Mon, 24 Nov 2025 21:11:41 +0700 Subject: [PATCH 1026/1228] cygwin: Add missing utmp/x.h, grp.h, and stdio.h interfaces These constants and functions are required for building uutils-coreutils for Cygwin. Sources: https://github.com/msys2/msys2-runtime/blob/msys2-3.6.5/winsup/cygwin/include/cygwin/config.h#L50 https://github.com/msys2/msys2-runtime/blob/msys2-3.6.5/newlib/libc/include/stdio.h#L138-L139 https://github.com/msys2/msys2-runtime/blob/msys2-3.6.5/winsup/cygwin/include/cygwin/utmp.h#L20-L33 https://github.com/msys2/msys2-runtime/blob/msys2-3.6.5/winsup/cygwin/include/utmpx.h#L21-L32 https://github.com/msys2/msys2-runtime/blob/msys2-3.6.5/newlib/libc/include/stdio.h#L120-L122 https://github.com/msys2/msys2-runtime/blob/msys2-3.6.5/newlib/libc/include/grp.h#L64-L65 https://github.com/msys2/msys2-runtime/blob/msys2-3.6.5/winsup/cygwin/include/utmpx.h#L21-L32 https://github.com/msys2/msys2-runtime/blob/msys2-3.6.5/winsup/cygwin/include/utmpx.h#L42-L49 (backport ) (cherry picked from commit a3bb40e18a207d53b7eb02fdd21cf97c360aaa37) --- libc-test/build.rs | 2 ++ src/unix/cygwin/mod.rs | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 514f888d7b986..1cecf5d553ac2 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -667,6 +667,7 @@ fn test_cygwin(target: &str) { "spawn.h", "stddef.h", "stdlib.h", + "stdio.h", "string.h", "sys/cpuset.h", "sys/ioctl.h", @@ -689,6 +690,7 @@ fn test_cygwin(target: &str) { "termios.h", "unistd.h", "utime.h", + "utmpx.h", "wait.h", "wchar.h", ); diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 172e009dcfba4..94c156c8f41ce 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -509,6 +509,18 @@ s_no_extra_traits! { pub ifc_len: c_int, pub ifc_ifcu: __c_anonymous_ifc_ifcu, } + + pub struct utmpx { + pub ut_type: c_short, + pub ut_pid: pid_t, + pub ut_line: [c_char; UT_LINESIZE], + pub ut_id: [c_char; UT_IDLEN], + pub ut_time: time_t, + pub ut_user: [c_char; UT_NAMESIZE], + pub ut_host: [c_char; UT_HOSTSIZE], + pub ut_addr: c_long, + pub ut_tv: timeval, + } } impl siginfo_t { @@ -889,6 +901,8 @@ pub const PATH_MAX: c_int = 4096; pub const PIPE_BUF: usize = 4096; pub const NGROUPS_MAX: c_int = 1024; +pub const FILENAME_MAX: c_int = 4096; + pub const FORK_RELOAD: c_int = 1; pub const FORK_NO_RELOAD: c_int = 0; @@ -966,6 +980,19 @@ pub const EAI_SOCKTYPE: c_int = 10; pub const EAI_SYSTEM: c_int = 11; pub const EAI_OVERFLOW: c_int = 14; +pub const UT_LINESIZE: usize = 16; +pub const UT_NAMESIZE: usize = 16; +pub const UT_HOSTSIZE: usize = 256; +pub const UT_IDLEN: usize = 2; +pub const RUN_LVL: c_short = 1; +pub const BOOT_TIME: c_short = 2; +pub const NEW_TIME: c_short = 3; +pub const OLD_TIME: c_short = 4; +pub const INIT_PROCESS: c_short = 5; +pub const LOGIN_PROCESS: c_short = 6; +pub const USER_PROCESS: c_short = 7; +pub const DEAD_PROCESS: c_short = 8; + pub const POLLIN: c_short = 0x1; pub const POLLPRI: c_short = 0x2; pub const POLLOUT: c_short = 0x4; @@ -1617,6 +1644,8 @@ pub const _POSIX_VDISABLE: cc_t = 0; pub const GRND_NONBLOCK: c_uint = 0x1; pub const GRND_RANDOM: c_uint = 0x2; +pub const _IOFBF: c_int = 0; +pub const _IOLBF: c_int = 1; pub const _IONBF: c_int = 2; pub const BUFSIZ: c_int = 1024; @@ -2317,6 +2346,7 @@ extern "C" { winp: *const crate::winsize, ) -> c_int; + pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; pub fn getgrgid_r( gid: crate::gid_t, grp: *mut crate::group, @@ -2330,6 +2360,7 @@ extern "C" { groups: *mut crate::gid_t, ngroups: *mut c_int, ) -> c_int; + pub fn getgrnam(name: *const c_char) -> *mut crate::group; pub fn getgrnam_r( name: *const c_char, grp: *mut crate::group, @@ -2345,4 +2376,13 @@ extern "C" { pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advise: c_int) -> c_int; pub fn posix_fallocate(fd: c_int, offset: off_t, len: off_t) -> c_int; pub fn fallocate(fd: c_int, mode: c_int, offset: off_t, len: off_t) -> c_int; + + pub fn endutxent(); + pub fn getutxent() -> *mut utmpx; + pub fn getutxid(id: *const utmpx) -> *mut utmpx; + pub fn getutxline(line: *const utmpx) -> *mut utmpx; + pub fn pututxline(utmpx: *const utmpx) -> *mut utmpx; + pub fn setutxent(); + pub fn utmpxname(file: *const c_char) -> c_int; + pub fn updwtmpx(file: *const c_char, utmpx: *const utmpx); } From 03b7438253fc4f111bf7ef3ca44902538dcce948 Mon Sep 17 00:00:00 2001 From: Johannes Altmanninger Date: Sun, 16 Nov 2025 14:13:58 +0100 Subject: [PATCH 1027/1228] Make eventfd argument names match OS docs/headers (backport ) (cherry picked from commit 3ff2a88d1186126e4984446f3517f29c7a9c6305) --- src/fuchsia/mod.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/mod.rs | 2 +- src/unix/linux_like/android/mod.rs | 2 +- src/unix/linux_like/linux/mod.rs | 2 +- src/unix/solarish/illumos.rs | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 14fd1742ad383..4ba381cbb6e3a 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -3873,7 +3873,7 @@ extern "C" { len: size_t, flags: c_uint, ) -> ssize_t; - pub fn eventfd(init: c_uint, flags: c_int) -> c_int; + pub fn eventfd(initval: c_uint, flags: c_int) -> c_int; pub fn sched_rr_get_interval(pid: crate::pid_t, tp: *mut crate::timespec) -> c_int; pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int; pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index c3542abb1794c..c75e175b460a8 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -4795,7 +4795,7 @@ extern "C" { pub fn memfd_create(name: *const c_char, flags: c_uint) -> c_int; pub fn setaudit(auditinfo: *const auditinfo_t) -> c_int; - pub fn eventfd(init: c_uint, flags: c_int) -> c_int; + pub fn eventfd(initval: c_uint, flags: c_int) -> c_int; pub fn eventfd_read(fd: c_int, value: *mut eventfd_t) -> c_int; pub fn eventfd_write(fd: c_int, value: eventfd_t) -> c_int; diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 36f8e3841bc2e..82da3873c2b54 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3560,7 +3560,7 @@ extern "C" { len: size_t, flags: c_uint, ) -> ssize_t; - pub fn eventfd(init: c_uint, flags: c_int) -> c_int; + pub fn eventfd(initval: c_uint, flags: c_int) -> c_int; pub fn eventfd_read(fd: c_int, value: *mut eventfd_t) -> c_int; pub fn eventfd_write(fd: c_int, value: eventfd_t) -> c_int; pub fn sched_rr_get_interval(pid: crate::pid_t, tp: *mut crate::timespec) -> c_int; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 53abf72b88fbd..3a757ee8d2028 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -6094,7 +6094,7 @@ extern "C" { len: size_t, flags: c_uint, ) -> ssize_t; - pub fn eventfd(init: c_uint, flags: c_int) -> c_int; + pub fn eventfd(initval: c_uint, flags: c_int) -> c_int; pub fn eventfd_read(fd: c_int, value: *mut eventfd_t) -> c_int; pub fn eventfd_write(fd: c_int, value: eventfd_t) -> c_int; diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index d83a24075e0b4..c0a17823bb9a7 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -212,7 +212,7 @@ pub const TFD_TIMER_ABSTIME: i32 = 1 << 0; pub const TFD_TIMER_CANCEL_ON_SET: i32 = 1 << 1; extern "C" { - pub fn eventfd(init: c_uint, flags: c_int) -> c_int; + pub fn eventfd(initval: c_uint, flags: c_int) -> c_int; pub fn epoll_pwait( epfd: c_int, From ae6df796e2c918726ffafb7878b621ffad6a2bb7 Mon Sep 17 00:00:00 2001 From: Johannes Altmanninger Date: Sun, 16 Nov 2025 14:13:58 +0100 Subject: [PATCH 1028/1228] Define eventfd on NetBSD Like FreeBSD but unlike OpenBSD, NetBSD supports eventfd since version 10 (September 2021, see http://netbsd.org/changes/changes-10.0.html). I don't know enough about NetBSD to know whether all systems running 10 can be expected to have eventfd, but it's probably fine. Our GitHub actions CI only tests NetBSD 10.1. Ref: https://man.netbsd.org/eventfd.2 Ref: https://github.com/NetBSD/src/blob/d04b0c735abc997743bb3faa74464524cbe7becd/sys/sys/eventfd.h (backport ) (cherry picked from commit 3e82c57a9b5ed872b4effdf00e8f16cbe13831d1) --- libc-test/build.rs | 4 ++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 1cecf5d553ac2..7da0bcdefa355 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1365,6 +1365,7 @@ fn test_netbsd(target: &str) { "mqueue.h", "netinet/dccp.h", "sys/event.h", + (!netbsd9, "sys/eventfd.h"), "sys/quota.h", "sys/reboot.h", "sys/shm.h", @@ -1411,6 +1412,7 @@ fn test_netbsd(target: &str) { "sighandler_t" => true, // Incomplete type in C "cpuset_t" => true, + "eventfd_t" if netbsd9 => true, _ => false, } }); @@ -1474,6 +1476,8 @@ fn test_netbsd(target: &str) { // FIXME(netbsd): Look into setting `_POSIX_C_SOURCE` to enable this "qsort_r" => true, + "eventfd" | "eventfd_read" | "eventfd_write" if netbsd9 => true, + _ => false, } }); diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index a8dbaeaecac2f..a3c286875c092 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -7,6 +7,7 @@ use crate::{ }; pub type blksize_t = i32; +pub type eventfd_t = u64; pub type fsblkcnt_t = u64; pub type fsfilcnt_t = u64; pub type idtype_t = c_int; @@ -1743,6 +1744,11 @@ pub const RTA_TAG: c_int = 0x100; pub const RTAX_TAG: c_int = 8; pub const RTAX_MAX: c_int = 9; +// For eventfd +pub const EFD_SEMAPHORE: c_int = crate::O_RDWR; +pub const EFD_NONBLOCK: c_int = crate::O_NONBLOCK; +pub const EFD_CLOEXEC: c_int = crate::O_CLOEXEC; + // sys/timerfd.h pub const TFD_CLOEXEC: i32 = crate::O_CLOEXEC; pub const TFD_NONBLOCK: i32 = crate::O_NONBLOCK; @@ -2198,6 +2204,10 @@ extern "C" { pub fn getmntinfo(mntbufp: *mut *mut crate::statvfs, flags: c_int) -> c_int; pub fn getvfsstat(buf: *mut crate::statvfs, bufsize: size_t, flags: c_int) -> c_int; + pub fn eventfd(val: c_uint, flags: c_int) -> c_int; + pub fn eventfd_read(efd: c_int, valp: *mut eventfd_t) -> c_int; + pub fn eventfd_write(efd: c_int, val: eventfd_t) -> c_int; + // Added in `NetBSD` 10.0 pub fn timerfd_create(clockid: crate::clockid_t, flags: c_int) -> c_int; pub fn timerfd_gettime(fd: c_int, curr_value: *mut crate::itimerspec) -> c_int; From 999b4203ee3c450df6f6ef781fadd81fe51e7e78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Fri, 21 Nov 2025 22:50:00 +0100 Subject: [PATCH 1029/1228] linux, android: Add definition for IUCLC This is defined in termios-c_iflag.h (or termbits.h) and it's shared across all the linux archs, even though it's not POSIX (backport ) (cherry picked from commit fb8c00e283cf48a2a133537914bad180275d3b27) --- libc-test/semver/android.txt | 1 + libc-test/semver/linux.txt | 1 + src/unix/linux_like/android/mod.rs | 1 + src/unix/linux_like/linux/arch/generic/mod.rs | 1 + src/unix/linux_like/linux/arch/mips/mod.rs | 1 + src/unix/linux_like/linux/arch/powerpc/mod.rs | 1 + src/unix/linux_like/linux/arch/sparc/mod.rs | 1 + 7 files changed, 7 insertions(+) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 644aeaa6667b9..47b4d7693448a 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -1088,6 +1088,7 @@ IP_XFRM_POLICY ISIG ISOFS_SUPER_MAGIC ISTRIP +IUCLC IUTF8 IXANY IXOFF diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index f67a02f946527..151d21cbd02c6 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1302,6 +1302,7 @@ IP_XFRM_POLICY ITIMER_PROF ITIMER_REAL ITIMER_VIRTUAL +IUCLC IUTF8 IWEVASSOCREQIE IWEVASSOCRESPIE diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 82da3873c2b54..2ea3345238610 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1427,6 +1427,7 @@ pub const VSTART: usize = 8; pub const VSTOP: usize = 9; pub const VDISCARD: usize = 13; pub const VTIME: usize = 5; +pub const IUCLC: crate::tcflag_t = 0x00000200; pub const IXON: crate::tcflag_t = 0x00000400; pub const IXOFF: crate::tcflag_t = 0x00001000; pub const ONLCR: crate::tcflag_t = 0x4; diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index 465ceddeab64e..5fe9da78bb315 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -272,6 +272,7 @@ pub const TIOCM_DSR: c_int = 0x100; pub const BOTHER: crate::speed_t = 0o010000; pub const IBSHIFT: crate::tcflag_t = 16; +pub const IUCLC: crate::tcflag_t = 0o0001000; // RLIMIT Constants diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index ba688948a906d..e8ce0cb4fd109 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -242,6 +242,7 @@ pub const TIOCM_DSR: c_int = 0x400; pub const BOTHER: crate::speed_t = 0o010000; pub const IBSHIFT: crate::tcflag_t = 16; +pub const IUCLC: crate::tcflag_t = 0o0001000; // RLIMIT Constants diff --git a/src/unix/linux_like/linux/arch/powerpc/mod.rs b/src/unix/linux_like/linux/arch/powerpc/mod.rs index 3249a9f1b6a46..33440bf6ff7a5 100644 --- a/src/unix/linux_like/linux/arch/powerpc/mod.rs +++ b/src/unix/linux_like/linux/arch/powerpc/mod.rs @@ -227,6 +227,7 @@ pub const TIOCM_DSR: c_int = 0x100; pub const BOTHER: crate::speed_t = 0o0037; pub const IBSHIFT: crate::tcflag_t = 16; +pub const IUCLC: crate::tcflag_t = 0o0010000; // RLIMIT Constants diff --git a/src/unix/linux_like/linux/arch/sparc/mod.rs b/src/unix/linux_like/linux/arch/sparc/mod.rs index 4c108ba7b71c1..1b6729a3e1d8e 100644 --- a/src/unix/linux_like/linux/arch/sparc/mod.rs +++ b/src/unix/linux_like/linux/arch/sparc/mod.rs @@ -213,6 +213,7 @@ pub const TIOCM_DSR: c_int = 0x100; pub const BOTHER: crate::speed_t = 0x1000; pub const IBSHIFT: crate::tcflag_t = 16; +pub const IUCLC: crate::tcflag_t = 0o0001000; // RLIMIT Constants From 3cfeee46c2f28121771747f2e0bf9b5432a0eb29 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Nov 2025 14:26:27 +0000 Subject: [PATCH 1030/1228] build(deps): bump actions/checkout from 5 to 6 Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] (backport ) (cherry picked from commit 71e04e1ed98df356d49639f293384b4eff2a34e4) --- .github/workflows/ci.yaml | 12 ++++++------ .github/workflows/publish_0.2.yml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e3800bad290cd..6914a53d8e57a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -25,7 +25,7 @@ jobs: runs-on: ubuntu-24.04 timeout-minutes: 10 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Setup Rust toolchain run: ./ci/install-rust.sh && rustup component add rustfmt - name: Check style @@ -39,7 +39,7 @@ jobs: runs-on: ${{ matrix.os }} timeout-minutes: 10 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - run: rustup update stable --no-self-update - uses: Swatinem/rust-cache@v2 # Here we use the latest stable Rust toolchain already installed by GitHub @@ -68,7 +68,7 @@ jobs: env: TOOLCHAIN: ${{ matrix.toolchain }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Setup Rust toolchain run: ./ci/install-rust.sh @@ -130,7 +130,7 @@ jobs: env: TARGET: ${{ matrix.target }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Setup Rust toolchain run: ./ci/install-rust.sh - uses: Swatinem/rust-cache@v2 @@ -227,7 +227,7 @@ jobs: env: TARGET: ${{ matrix.target }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Setup Rust toolchain run: ./ci/install-rust.sh - uses: Swatinem/rust-cache@v2 @@ -270,7 +270,7 @@ jobs: - target: x86_64-unknown-netbsd timeout-minutes: 25 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: test on Solaris uses: vmactions/solaris-vm@v1.1.6 if: contains(matrix.target, 'solaris') diff --git a/.github/workflows/publish_0.2.yml b/.github/workflows/publish_0.2.yml index 00d5a7792a548..9327c50d88899 100644 --- a/.github/workflows/publish_0.2.yml +++ b/.github/workflows/publish_0.2.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 - name: Install Rust (rustup) From 887133e45ee709ff941f4d07f1069489a81aa531 Mon Sep 17 00:00:00 2001 From: Takashiidobe Date: Sat, 29 Nov 2025 12:03:15 -0500 Subject: [PATCH 1031/1228] add syscalls 451-469 for m68k linux (backport ) (cherry picked from commit b841a7822732dc10f05d1f9c022a7326dc7b1bc6) --- src/unix/linux_like/linux/gnu/b32/m68k/mod.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index 721fe2d5aba99..d2eb7ee3ec9b4 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -864,3 +864,22 @@ pub const SYS_landlock_restrict_self: c_long = 446; pub const SYS_process_mrelease: c_long = 448; pub const SYS_futex_waitv: c_long = 449; pub const SYS_set_mempolicy_home_node: c_long = 450; +pub const SYS_cachestat: c_long = 451; +pub const SYS_fchmodat2: c_long = 452; +pub const SYS_map_shadow_stack: c_long = 453; +pub const SYS_futex_wake: c_long = 454; +pub const SYS_futex_wait: c_long = 455; +pub const SYS_futex_requeue: c_long = 456; +pub const SYS_statmount: c_long = 457; +pub const SYS_listmount: c_long = 458; +pub const SYS_lsm_get_self_attr: c_long = 459; +pub const SYS_lsm_set_self_attr: c_long = 460; +pub const SYS_lsm_list_modules: c_long = 461; +pub const SYS_mseal: c_long = 462; +pub const SYS_setxattrat: c_long = 463; +pub const SYS_getxattrat: c_long = 464; +pub const SYS_listxattrat: c_long = 465; +pub const SYS_removexattrat: c_long = 466; +pub const SYS_open_tree_attr: c_long = 467; +pub const SYS_file_get_attr: c_long = 468; +pub const SYS_file_set_attr: c_long = 469; From bc25dfca2960fcd6bde9636e9fe9c87295765a5e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 2 Dec 2025 02:24:56 -0500 Subject: [PATCH 1032/1228] NetBSD: Only skip `sockaddr_dl` on NetBSD9 Fixes: 8ff5e7e896f7 ("NetBSD: Increase the size of sockaddr_dl.sdl_data from 12 to 24") (backport ) (cherry picked from commit 46845987076649c0458810e323162d5c8b40b61e) --- libc-test/build.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 7da0bcdefa355..71448bedc09e2 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1548,7 +1548,7 @@ fn test_netbsd(target: &str) { }); cfg.skip_struct(move |struct_| match struct_.ident() { - "sockaddr_dl" => true, // Last field increased size in 10 + "sockaddr_dl" if !netbsd9 => true, // Last field increased size in 10 x if x.starts_with("ptrace_lwp") => true, // These were packed before NetBSD 10 "arphdr" | "in_addr" | "ip_mreq" | "sockaddr_in" => true, From 2b95cbe1cecd28ab03d689b34c2696d70b65ff27 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 1 Dec 2025 21:28:43 -0500 Subject: [PATCH 1033/1228] chore: release libc 0.2.178 --- CHANGELOG.md | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 86 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e9b726cf19790..a41b5d5d496a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,89 @@ # Changelog +## [0.2.178](https://github.com/rust-lang/libc/compare/0.2.177...0.2.178) - 2025-12-01 + +### Added + +- BSD: Add `issetugid` ([#4744](https://github.com/rust-lang/libc/pull/4744)) +- Cygwin: Add missing utmp/x.h, grp.h, and stdio.h interfaces ([#4827](https://github.com/rust-lang/libc/pull/4827)) +- Linux s390x musl: Add `__psw_t`/`fprefset_t`/`*context_t` ([#4726](https://github.com/rust-lang/libc/pull/4726)) +- Linux, Android: Add definition for IUCLC ([#4846](https://github.com/rust-lang/libc/pull/4846)) +- Linux, FreeBSD: Add `AT_HWCAP{3,4}` ([#4734](https://github.com/rust-lang/libc/pull/4734)) +- Linux: Add definitions from linux/can/bcm.h ([#4683](https://github.com/rust-lang/libc/pull/4683)) +- Linux: Add syscalls 451-469 for m68k ([#4850](https://github.com/rust-lang/libc/pull/4850)) +- Linux: PowerPC: Add 'ucontext.h' definitions ([#4696](https://github.com/rust-lang/libc/pull/4696)) +- NetBSD: Define `eventfd` ([#4830](https://github.com/rust-lang/libc/pull/4830)) +- Newlib: Add missing constants from `unistd.h` ([#4811](https://github.com/rust-lang/libc/pull/4811)) +- QNX NTO: Add `cfmakeraw` ([#4704](https://github.com/rust-lang/libc/pull/4704)) +- QNX NTO: Add `cfsetspeed` ([#4704](https://github.com/rust-lang/libc/pull/4704)) +- Redox: Add `getresgid` and `getresuid` ([#4752](https://github.com/rust-lang/libc/pull/4752)) +- Redox: Add `setresgid` and `setresuid` ([#4752](https://github.com/rust-lang/libc/pull/4752)) +- VxWorks: Add definitions from `select.h`, `stat.h`, `poll.h`, `ttycom.h`, `utsname.h`, `resource.h`, `mman.h`, `udp.h`, `in.h`, `in6.h`, `if.h`, `fnmatch.h`, and `sioLibCommon.h` ([#4781](https://github.com/rust-lang/libc/pull/4781)) +- VxWorks: Add missing defines/functions needed by rust stdlib ([#4779](https://github.com/rust-lang/libc/pull/4779)) +- WASI: Add more definitions for libstd ([#4747](https://github.com/rust-lang/libc/pull/4747)) + +### Deprecated: + +- Apple: Deprecate `TIOCREMOTE` ([#4764](https://github.com/rust-lang/libc/pull/4764)) + +### Fixed: + +Note that there were a large number of fixes on NetBSD for this `libc` release, some of which include minor breakage. + +- AIX: Change errno `EWOULDBLOCK` to make it an alias of `EAGAIN` ([#4790](https://github.com/rust-lang/libc/pull/4790)) +- AIX: Resolve function comparison and `unnecessary_transmutes` warnings ([#4780](https://github.com/rust-lang/libc/pull/4780)) +- Apple: Correct the value of `SF_SETTABLE` ([#4764](https://github.com/rust-lang/libc/pull/4764)) +- DragonflyBSD: Fix the type of `mcontext_t.mc_fpregs` ([#]()) +- EspIDF: Fix the duplicate definition of `gethostname` ([#4773](https://github.com/rust-lang/libc/pull/4773)) +- L4Re: Update available pthread API ([#4836](https://github.com/rust-lang/libc/pull/4836)) +- Linux: Correct the value of `NFT_MSG_MAX` ([#4761](https://github.com/rust-lang/libc/pull/4761)) +- Linux: Remove incorrect `repr(align(8))` for `canxl_frame` ([#4760](https://github.com/rust-lang/libc/pull/4760)) +- Make `eventfd` argument names match OS docs/headers ([#4830](https://github.com/rust-lang/libc/pull/4830)) +- NetBSD: Account for upstream changes to ptrace with LWP ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Correct `ipc_perm`, split from OpenBSD as `ipc.rs` ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Correct a number of symbol link names ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Correct the type of `kinfo_vmentry.kve_path` ([#]()) +- NetBSD: Fix `uucred.cr_ngroups` from `int` to `short` ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Fix the type of `kevent.udata` ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Fix the type of `mcontext_t.__fpregs` ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Fix the value of `PT_SUSPEND` ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Fix the values of FNM_* constants ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Increase the size of `sockaddr_dl.sdl_data` from 12 to 24 ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Introduce `if_.rs`, fix the definition of `ifreq` ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Introduce `time.rs`, fix the values of `CLOCK_*_CPUTIME_ID` ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Introduce `timex.rs` ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Introduce `types.rs`, correct the definition of `lwpid_t` ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Introduce `utmp_.rs`, correct the definition of `lastlog` ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Introduce `utmpx_.rs`, correct utmpx definitions ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Make `_cpuset` an extern type ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: RISC-V 64: Fix the `mcontext` types ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- Nuttx: Resolve warnings ([#4773](https://github.com/rust-lang/libc/pull/4773)) +- OHOS: Don't emit duplicate lfs64 definitions ([#4804](https://github.com/rust-lang/libc/pull/4804)) +- Redox: Fix the type of `pid_t` ([#4825](https://github.com/rust-lang/libc/pull/4825)) +- WASI: Gate `__wasilibc_register_preopened_fd` ([#4837](https://github.com/rust-lang/libc/pull/4837)) +- Wali: Fix unknown config ([#4773](https://github.com/rust-lang/libc/pull/4773)) + +### Changed + +- AIX: Declare field 'tv_nsec' of structure 'timespec' as 'i32' in both 32-bit and 64-bit modes ([#4750](https://github.com/rust-lang/libc/pull/4750)) +- DragonFly: Avoid usage of `thread_local` ([#3653](https://github.com/rust-lang/libc/pull/3653)) +- Linux: Update the definition for `ucontext_t` and unskip its tests ([#4760](https://github.com/rust-lang/libc/pull/4760)) +- MinGW: Set `L_tmpnam` and `TMP_MAX` to the UCRT value ([#4566](https://github.com/rust-lang/libc/pull/4566)) +- WASI: More closely align pthread type reprs ([#4747](https://github.com/rust-lang/libc/pull/4747)) +- Simplify rustc-check-cfg emission in build.rs ([#4724](https://github.com/rust-lang/libc/pull/4724)) +- Transition a number of definitions to the new source structure (internal change) + +### Removed + +- MIPS Musl: Remove rogue definition of `SIGSTKFLT` ([#4749](https://github.com/rust-lang/libc/pull/4749)) +- NetBSD: Make `statvfs.f_spare` non-public ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Remove BPF constants ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Remove `*_MAXID` constants and `AT_SUN_LDPGSIZE` ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Remove `IFF_NOTRAILERS` ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Remove `vm_size_t` ([#4782](https://github.com/rust-lang/libc/pull/4782)) +- NetBSD: Replace REG_ENOSYS with REG_ILLSEQ ([#4782](https://github.com/rust-lang/libc/pull/4782)) + + ## [0.2.177](https://github.com/rust-lang/libc/compare/0.2.176...0.2.177) - 2025-10-09 ### Added diff --git a/Cargo.lock b/Cargo.lock index d76ff6d3c7cff..a1dc49a011a64 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -132,7 +132,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "libc" -version = "0.2.177" +version = "0.2.178" dependencies = [ "rustc-std-workspace-core", ] diff --git a/Cargo.toml b/Cargo.toml index fc8bec482600c..96d85e4b0d63c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.177" +version = "0.2.178" keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml", "cherry-pick-stable.sh"] From 61fc4c0761a9abf66d83cdd5163d094738be6e44 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Tue, 2 Dec 2025 07:05:38 -0700 Subject: [PATCH 1034/1228] Update CI images to FreeBSD 15.0-release Released yesterday. Also, restore testing on FreeBSD i686, but on a 15.0 image instead of 13.4. (backport ) (cherry picked from commit 9e5926604133219c52bd018007e018752a1146cf) --- .cirrus.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 11556721e9b06..0abb17a8ce5d1 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -8,21 +8,21 @@ task: RUST_BACKTRACE: "0" matrix: # FIXME(#4740): FreeBSD 13 tests are extremely flaky and fail most of the time - # - name: nightly freebsd-13 i686 - # # Test i686 FreeBSD in 32-bit emulation on a 64-bit host. - # env: - # TARGET: i686-unknown-freebsd - # freebsd_instance: - # image_family: freebsd-13-4 # - name: nightly freebsd-13 x86_64 # freebsd_instance: # image_family: freebsd-13-4 + - name: nightly freebsd-15 i686 + # Test i686 FreeBSD in 32-bit emulation on a 64-bit host. + env: + TARGET: i686-unknown-freebsd + freebsd_instance: + image: freebsd-15-0-release-amd64-ufs - name: nightly freebsd-14 x86_64 freebsd_instance: image: freebsd-14-3-release-amd64-ufs - name: nightly freebsd-15 x86_64 freebsd_instance: - image: freebsd-15-0-alpha3-amd64-ufs + image: freebsd-15-0-release-amd64-ufs setup_script: - pkg install -y libnghttp2 curl - curl https://sh.rustup.rs -sSf --output rustup.sh From f609034528d2c122f46c2e00887e886a998c3c61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Tue, 2 Dec 2025 19:21:51 +0100 Subject: [PATCH 1035/1228] linux, fuchsia: Mark mq_attr padding area as such As per commit c100954964 the hard-coded partial equality implementations have been dropped in favor for auto-generated ones, but they did not work for mq_attr, since the padding area was not typed correctly. Fix this, using the Padding type. (backport ) (cherry picked from commit d5b0f290a1c464fecc9710bb7fb1c8e011c1314a) --- src/fuchsia/mod.rs | 4 ++-- src/unix/linux_like/emscripten/mod.rs | 2 +- src/unix/linux_like/linux/mod.rs | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 4ba381cbb6e3a..dde162827e00e 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -946,7 +946,7 @@ s! { #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub mq_curmsgs: i64, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pad: [i64; 4], + pad: Padding<[i64; 4]>, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] pub mq_flags: c_long, @@ -957,7 +957,7 @@ s! { #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] pub mq_curmsgs: c_long, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pad: [c_long; 4], + pad: Padding<[c_long; 4]>, } pub struct sockaddr_nl { diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 8996527e2e8e1..6bb961520d55f 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -365,7 +365,7 @@ s! { pub mq_maxmsg: c_long, pub mq_msgsize: c_long, pub mq_curmsgs: c_long, - pad: [c_long; 4], + pad: Padding<[c_long; 4]>, } #[cfg_attr(target_pointer_width = "32", repr(align(4)))] diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 3a757ee8d2028..8a0b836d4c18e 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1426,7 +1426,7 @@ s! { #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub mq_curmsgs: i64, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pad: [i64; 4], + pad: Padding<[i64; 4]>, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] pub mq_flags: c_long, @@ -1437,7 +1437,7 @@ s! { #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] pub mq_curmsgs: c_long, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pad: [c_long; 4], + pad: Padding<[c_long; 4]>, } pub struct hwtstamp_config { From 2fba20ad8f98fcab6053d81a60fd5b80a7076888 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Sat, 22 Nov 2025 00:00:15 +0100 Subject: [PATCH 1036/1228] linux, android: Add a generic definition for XCASE XCASE it's defined for all the architectures, although this is not happening currently. The only arch definition that has a different value is powerpc (backport ) (cherry picked from commit ec63a9d1c2e98b02d32225bfc2260dcd77864a81) --- libc-test/semver/android.txt | 1 + libc-test/semver/linux-loongarch64.txt | 1 - libc-test/semver/linux-s390x.txt | 1 - libc-test/semver/linux.txt | 1 + src/unix/linux_like/android/mod.rs | 1 + src/unix/linux_like/linux/arch/generic/mod.rs | 1 + src/unix/linux_like/linux/arch/mips/mod.rs | 1 + src/unix/linux_like/linux/arch/powerpc/mod.rs | 1 + src/unix/linux_like/linux/arch/sparc/mod.rs | 1 + src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs | 1 - src/unix/linux_like/linux/gnu/b64/s390x.rs | 1 - src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs | 1 - src/unix/linux_like/linux/musl/b64/s390x.rs | 1 - 13 files changed, 7 insertions(+), 6 deletions(-) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 47b4d7693448a..c2bf6cd6a850a 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -3159,6 +3159,7 @@ WUNTRACED W_EXITCODE W_OK W_STOPCODE +XCASE XFS_SUPER_MAGIC XTABS X_OK diff --git a/libc-test/semver/linux-loongarch64.txt b/libc-test/semver/linux-loongarch64.txt index 7f0446c76abd8..b3a7a13fbc101 100644 --- a/libc-test/semver/linux-loongarch64.txt +++ b/libc-test/semver/linux-loongarch64.txt @@ -119,7 +119,6 @@ TIOCCBRK TIOCGRS485 TIOCSBRK TIOCSRS485 -XCASE flock64 max_align_t mcontext_t diff --git a/libc-test/semver/linux-s390x.txt b/libc-test/semver/linux-s390x.txt index 34ebf4da7ab24..ac59c8eaee4d2 100644 --- a/libc-test/semver/linux-s390x.txt +++ b/libc-test/semver/linux-s390x.txt @@ -99,7 +99,6 @@ SYS_utimes SYS_vfork TIOCCBRK TIOCSBRK -XCASE __psw_t flock64 fpreg_t diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 151d21cbd02c6..e9f4e9eccd62f 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -3637,6 +3637,7 @@ W_EXITCODE W_STOPCODE XATTR_CREATE XATTR_REPLACE +XCASE XDP_COPY XDP_MMAP_OFFSETS XDP_OPTIONS diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 2ea3345238610..4686f532a6126 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1459,6 +1459,7 @@ pub const TABDLY: crate::tcflag_t = 0o014000; pub const BSDLY: crate::tcflag_t = 0o020000; pub const FFDLY: crate::tcflag_t = 0o100000; pub const VTDLY: crate::tcflag_t = 0o040000; +pub const XCASE: crate::tcflag_t = 0o000004; pub const XTABS: crate::tcflag_t = 0o014000; pub const B0: crate::speed_t = 0o000000; diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index 5fe9da78bb315..37b751715e447 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -273,6 +273,7 @@ pub const TIOCM_DSR: c_int = 0x100; pub const BOTHER: crate::speed_t = 0o010000; pub const IBSHIFT: crate::tcflag_t = 16; pub const IUCLC: crate::tcflag_t = 0o0001000; +pub const XCASE: crate::tcflag_t = 0o0000004; // RLIMIT Constants diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index e8ce0cb4fd109..78eec0ff55ac2 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -243,6 +243,7 @@ pub const TIOCM_DSR: c_int = 0x400; pub const BOTHER: crate::speed_t = 0o010000; pub const IBSHIFT: crate::tcflag_t = 16; pub const IUCLC: crate::tcflag_t = 0o0001000; +pub const XCASE: crate::tcflag_t = 0o0000004; // RLIMIT Constants diff --git a/src/unix/linux_like/linux/arch/powerpc/mod.rs b/src/unix/linux_like/linux/arch/powerpc/mod.rs index 33440bf6ff7a5..b5a3557a705bc 100644 --- a/src/unix/linux_like/linux/arch/powerpc/mod.rs +++ b/src/unix/linux_like/linux/arch/powerpc/mod.rs @@ -228,6 +228,7 @@ pub const TIOCM_DSR: c_int = 0x100; pub const BOTHER: crate::speed_t = 0o0037; pub const IBSHIFT: crate::tcflag_t = 16; pub const IUCLC: crate::tcflag_t = 0o0010000; +pub const XCASE: crate::tcflag_t = 0o0040000; // RLIMIT Constants diff --git a/src/unix/linux_like/linux/arch/sparc/mod.rs b/src/unix/linux_like/linux/arch/sparc/mod.rs index 1b6729a3e1d8e..006156ee0c0ea 100644 --- a/src/unix/linux_like/linux/arch/sparc/mod.rs +++ b/src/unix/linux_like/linux/arch/sparc/mod.rs @@ -214,6 +214,7 @@ pub const TIOCM_DSR: c_int = 0x100; pub const BOTHER: crate::speed_t = 0x1000; pub const IBSHIFT: crate::tcflag_t = 16; pub const IUCLC: crate::tcflag_t = 0o0001000; +pub const XCASE: crate::tcflag_t = 0o0000004; // RLIMIT Constants diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs index e3971eaafe0ae..3f01da8c0b989 100644 --- a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs @@ -914,7 +914,6 @@ pub const ECHOPRT: crate::tcflag_t = 0x00000400; pub const ECHOCTL: crate::tcflag_t = 0x00000200; pub const ISIG: crate::tcflag_t = 0x00000001; pub const ICANON: crate::tcflag_t = 0x00000002; -pub const XCASE: crate::tcflag_t = 0x00000004; pub const PENDIN: crate::tcflag_t = 0x00004000; pub const NOFLSH: crate::tcflag_t = 0x00000080; diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index d45e153aee3a9..5b240b5cef64f 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -570,7 +570,6 @@ pub const CIBAUD: crate::tcflag_t = 0o02003600000; pub const ISIG: crate::tcflag_t = 0o000001; pub const ICANON: crate::tcflag_t = 0o000002; -pub const XCASE: crate::tcflag_t = 0o000004; pub const ECHOE: crate::tcflag_t = 0o000020; pub const ECHOK: crate::tcflag_t = 0o000040; pub const ECHONL: crate::tcflag_t = 0o000100; diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index e973370a80c88..f41f61de62bcf 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -626,7 +626,6 @@ pub const ECHOPRT: crate::tcflag_t = 0x00000400; pub const ECHOCTL: crate::tcflag_t = 0x00000200; pub const ISIG: crate::tcflag_t = 0x00000001; pub const ICANON: crate::tcflag_t = 0x00000002; -pub const XCASE: crate::tcflag_t = 0x00000004; pub const PENDIN: crate::tcflag_t = 0x00004000; pub const NOFLSH: crate::tcflag_t = 0x00000080; pub const CIBAUD: crate::tcflag_t = 0o02003600000; diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index a7c4cb5d95f9c..d8ce68e662089 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -362,7 +362,6 @@ pub const CIBAUD: crate::tcflag_t = 0o02003600000; pub const ISIG: crate::tcflag_t = 0o000001; pub const ICANON: crate::tcflag_t = 0o000002; -pub const XCASE: crate::tcflag_t = 0o000004; pub const ECHOE: crate::tcflag_t = 0o000020; pub const ECHOK: crate::tcflag_t = 0o000040; pub const ECHONL: crate::tcflag_t = 0o000100; From d87cb53ebcf3ea0fbcebb9df0005cd477042b80c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Dec 2025 16:47:04 +0000 Subject: [PATCH 1037/1228] build(deps): bump vmactions/solaris-vm from 1.1.6 to 1.1.8 Bumps [vmactions/solaris-vm](https://github.com/vmactions/solaris-vm) from 1.1.6 to 1.1.8. - [Release notes](https://github.com/vmactions/solaris-vm/releases) - [Commits](https://github.com/vmactions/solaris-vm/compare/v1.1.6...v1.1.8) --- updated-dependencies: - dependency-name: vmactions/solaris-vm dependency-version: 1.1.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] (backport ) (cherry picked from commit 1f0579d230da9fa7d2ef7a5c5b665594db5e6747) --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6914a53d8e57a..b0c8c3db6ef4c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -272,7 +272,7 @@ jobs: steps: - uses: actions/checkout@v6 - name: test on Solaris - uses: vmactions/solaris-vm@v1.1.6 + uses: vmactions/solaris-vm@v1.1.8 if: contains(matrix.target, 'solaris') with: release: "11.4-gcc" From bff7c5881e880c2ff9965fe9c4e6e33e5c883e0e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 2 Dec 2025 16:59:24 -0500 Subject: [PATCH 1038/1228] ci: Use mirrors for kernel.org in install-musl.sh We have had a high number of CI failures in the past few days due to errors like: #9 857.0 curl: (28) Failed to connect to kernel.org port 443 after 135536 ms: Couldn't connect to server #9 ERROR: process "/bin/sh -c /install-musl.sh arm" did not complete successfully: exit code: 28 Replace the Alpine kernel.org URLs with a rust-lang mirror to mitigate this. (backport ) (cherry picked from commit ba9759db75d9f406cad0b422443807bb93b3271c) --- ci/install-musl.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ci/install-musl.sh b/ci/install-musl.sh index 2335eea3fbbda..b714672938472 100755 --- a/ci/install-musl.sh +++ b/ci/install-musl.sh @@ -112,11 +112,15 @@ git clone -n --depth=1 --filter=tree:0 -b "${alpine_version}-stable" "$alpine_gi echo "\$sha512sums" > alpine-sha512sums EOF - # Retrieve all the variables - sh APKBUILD.vars + # Use a mirror since kernel.org can be a bit inconsistent + sed -i 's|https://kernel.org/pub/linux/kernel|https://ci-mirrors.rust-lang.org/linux/kernel|g' \ + APKBUILD.vars cat APKBUILD.vars + # Retrieve all the variables + sh APKBUILD.vars + kernel_version=$(tr -d "[:space:]" < alpine-kernver) pkg_version=$(tr -d "[:space:]" < alpine-pkgver) From b1c42f440cb95d2f8fe0145921b8428f4d815182 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 2 Dec 2025 17:38:38 -0500 Subject: [PATCH 1039/1228] ci: Relaunch `create-artifacts.py` via subprocess There have been a number of CI issues related to creating artifacts, where no output is produced from the script even though it seemingly starts successfully. In case this comes from `execvpe` somehow, switch to relaunching via subprocess. (backport ) (cherry picked from commit d5a75f33f25ccf2f37b3c3eaad0466523409a8dd) --- ci/create-artifacts.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/ci/create-artifacts.py b/ci/create-artifacts.py index bd5656fd040b2..4e7215a47bfee 100755 --- a/ci/create-artifacts.py +++ b/ci/create-artifacts.py @@ -47,7 +47,10 @@ def main(): if __name__ == "__main__": print("Starting script...") # For debugging CI failures - # FIXME(ci): remove after the bump to windoes-2025 GHA images + print("version: ", sys.version) + # FIXME(ci): If the windows-2025 images update to a minimum python above 3.9, + # this can be removed. + # # Python <= 3.9 does not support the very helpful `root_dir` argument, # and that is the version used by the Windows GHA images. Rather than # using setup-python or doing something in the CI script, just find @@ -55,16 +58,18 @@ def main(): # version. try: glob("", root_dir="") - except TypeError: + except TypeError as e: if os.environ.get("CI") is None: - sys.exit(1) + raise e # Just fail if we're not in CI # Find the next 3.1x Python version dirs = sorted(Path(r"C:\hostedtoolcache\windows\Python").iterdir()) usepy = next(x for x in dirs if r"\3.1" in str(x)) py = usepy.joinpath(r"x64\python.exe") - print(f"relaunching with {py}") - os.execvp(py, [__file__] + sys.argv) + args = [py, __file__, *sys.argv[1:]] + print(f"relaunching with {args}") + sp.run(args, check=True) + exit() main() else: From ed1cc0b3e62b6f2a81741220525c086e60015ef5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Wed, 3 Dec 2025 00:19:36 +0100 Subject: [PATCH 1040/1228] types: Add Padding::uninit() It allows to uninitialize padding areas in const contextes. (backport ) (cherry picked from commit e40f470032675f82bdc574bc66feb309b106f54a) --- src/types.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/types.rs b/src/types.rs index 4a7514564b22b..2d6e83f67fcde 100644 --- a/src/types.rs +++ b/src/types.rs @@ -22,6 +22,18 @@ impl Default for Padding { } } +impl Padding { + /// Const constructor for uninitialized padding in const contexts. + // FIXME: Change this into zeroed() and use MaybeUninit::zeroed() + // when we depend on rustc 1.75.0. + #[allow(unused)] + pub(crate) const fn uninit() -> Self { + // We can still safely use uninit here, since padding are is something + // that can are not meant to be read or written anyways. + Self(MaybeUninit::uninit()) + } +} + impl fmt::Debug for Padding { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { // Taken frmo `MaybeUninit`'s debug implementation From e80d50f9e3d33091b30027a362d43946fc8b7865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Tue, 2 Dec 2025 22:40:58 +0100 Subject: [PATCH 1041/1228] cleanup: Declare more private padding fields Padding's We have more private fields that are padding areas that are currently not marked as Padding, which is causing the generated Hash and PartialEq implementations to take care of them wrongly. Fix them (backport ) (cherry picked from commit 69783f63079f743339f76e8358cd368d5ab714b6) --- src/fuchsia/mod.rs | 2 +- src/new/musl/sys/socket.rs | 8 ++++---- src/new/netbsd/utmpx_.rs | 2 +- src/unix/bsd/apple/mod.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/mod.rs | 4 ++-- src/unix/bsd/netbsdlike/netbsd/mod.rs | 8 ++++---- src/unix/bsd/netbsdlike/openbsd/mod.rs | 10 +++++----- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 6 +++--- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 12 ++++++------ src/unix/linux_like/linux/gnu/b32/mod.rs | 6 +++--- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 12 ++++++------ src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs | 8 ++++---- src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs | 2 +- src/unix/linux_like/mod.rs | 4 ++-- src/unix/solarish/mod.rs | 2 +- 15 files changed, 44 insertions(+), 44 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index dde162827e00e..8b08711e0e94f 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -525,7 +525,7 @@ s! { pub ssi_syscall: i32, pub ssi_call_addr: u64, pub ssi_arch: u32, - _pad: [u8; 28], + _pad: Padding<[u8; 28]>, } pub struct itimerspec { diff --git a/src/new/musl/sys/socket.rs b/src/new/musl/sys/socket.rs index f7105c9bbca16..24731914641cc 100644 --- a/src/new/musl/sys/socket.rs +++ b/src/new/musl/sys/socket.rs @@ -10,16 +10,16 @@ s! { pub msg_namelen: crate::socklen_t, pub msg_iov: *mut crate::iovec, #[cfg(all(target_pointer_width = "64", target_endian = "big"))] - __pad1: c_int, + __pad1: Padding, pub msg_iovlen: c_int, #[cfg(all(target_pointer_width = "64", target_endian = "little"))] - __pad1: c_int, + __pad1: Padding, pub msg_control: *mut c_void, #[cfg(all(target_pointer_width = "64", target_endian = "big"))] - __pad2: c_int, + __pad2: Padding, pub msg_controllen: crate::socklen_t, #[cfg(all(target_pointer_width = "64", target_endian = "little"))] - __pad2: c_int, + __pad2: Padding, pub msg_flags: c_int, } diff --git a/src/new/netbsd/utmpx_.rs b/src/new/netbsd/utmpx_.rs index 813c8fb69712e..7b07b0c126643 100644 --- a/src/new/netbsd/utmpx_.rs +++ b/src/new/netbsd/utmpx_.rs @@ -46,7 +46,7 @@ s! { pub ut_exit: __exit_status, // FIXME(netbsd): when anonymous struct are supported pub ut_ss: crate::sockaddr_storage, pub ut_tv: crate::timeval, - ut_pad: [u8; _UTX_PADSIZE], + ut_pad: Padding<[u8; _UTX_PADSIZE]>, } pub struct __exit_status { diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 00c7e5f1754dc..2b2737b049f4a 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1363,7 +1363,7 @@ s! { pub ut_type: c_short, pub ut_tv: crate::timeval, pub ut_host: [c_char; _UTX_HOSTSIZE], - ut_pad: [u32; 16], + ut_pad: Padding<[u32; 16]>, } pub struct sigevent { diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index c75e175b460a8..784ba34bca5be 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -417,7 +417,7 @@ s! { m_ceilings: [u32; 2], m_rb_link: crate::uintptr_t, #[cfg(target_pointer_width = "32")] - m_pad: u32, + m_pad: Padding, m_spare: [u32; 2], } @@ -1727,7 +1727,7 @@ s_no_extra_traits! { } pub struct in_addr_4in6 { - _ia46_pad32: [u32; 3], + _ia46_pad32: Padding<[u32; 3]>, pub ia46_addr4: crate::in_addr, } diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index a3c286875c092..23715a64c70b8 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -231,7 +231,7 @@ s! { target_arch = "x86", target_arch = "x86_64" ))] - ptm_pad1: [u8; 3], + ptm_pad1: Padding<[u8; 3]>, // actually a union with a non-unused, 0-initialized field ptm_unused: __pthread_spin_t, #[cfg(any( @@ -240,7 +240,7 @@ s! { target_arch = "x86", target_arch = "x86_64" ))] - ptm_pad2: [u8; 3], + ptm_pad2: Padding<[u8; 3]>, ptm_owner: crate::pthread_t, ptm_waiters: *mut u8, ptm_recursed: c_uint, @@ -1282,9 +1282,9 @@ cfg_if! { pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { ptm_magic: 0x33330003, ptm_errorcheck: 0, - ptm_pad1: [0; 3], + ptm_pad1: Padding::uninit(), ptm_unused: 0, - ptm_pad2: [0; 3], + ptm_pad2: Padding::uninit(), ptm_waiters: 0 as *mut _, ptm_owner: 0, ptm_recursed: 0, diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 3249fd526a745..c656376f59868 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -623,9 +623,9 @@ s! { pub struct sockaddr_storage { pub ss_len: u8, pub ss_family: crate::sa_family_t, - __ss_pad1: [u8; 6], - __ss_pad2: i64, - __ss_pad3: [u8; 240], + __ss_pad1: Padding<[u8; 6]>, + __ss_pad2: Padding, + __ss_pad3: Padding<[u8; 240]>, } pub struct siginfo_t { @@ -634,9 +634,9 @@ s! { pub si_errno: c_int, pub si_addr: *mut c_char, #[cfg(target_pointer_width = "32")] - __pad: [u8; 112], + __pad: Padding<[u8; 112]>, #[cfg(target_pointer_width = "64")] - __pad: [u8; 108], + __pad: Padding<[u8; 108]>, } pub struct lastlog { diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index dadaa7a8f6892..930797fbe189d 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -84,15 +84,15 @@ s! { pub st_atime: crate::time_t, pub st_atime_nsec: c_long, #[cfg(gnu_time_bits64)] - _atime_pad: c_int, + _atime_pad: Padding, pub st_mtime: crate::time_t, pub st_mtime_nsec: c_long, #[cfg(gnu_time_bits64)] - _mtime_pad: c_int, + _mtime_pad: Padding, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, #[cfg(gnu_time_bits64)] - _ctime_pad: c_int, + _ctime_pad: Padding, #[cfg(not(gnu_time_bits64))] pub st_ino: crate::ino64_t, } diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 99af57a4460c0..781da2124d2ed 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -45,15 +45,15 @@ s! { pub st_atime: crate::time_t, #[cfg(gnu_time_bits64)] - _atime_pad: c_int, + _atime_pad: Padding, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, #[cfg(gnu_time_bits64)] - _mtime_pad: c_int, + _mtime_pad: Padding, pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, #[cfg(gnu_time_bits64)] - _ctime_pad: c_int, + _ctime_pad: Padding, pub st_ctime_nsec: c_long, #[cfg(not(gnu_time_bits64))] @@ -98,15 +98,15 @@ s! { pub st_atime: crate::time_t, #[cfg(gnu_time_bits64)] - _atime_pad: c_int, + _atime_pad: Padding, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, #[cfg(gnu_time_bits64)] - _mtime_pad: c_int, + _mtime_pad: Padding, pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, #[cfg(gnu_time_bits64)] - _ctime_pad: c_int, + _ctime_pad: Padding, pub st_ctime_nsec: c_long, #[cfg(not(gnu_time_bits64))] diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 1855693dc6c7a..f27e1440b6028 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -106,15 +106,15 @@ cfg_if! { pub st_atime: crate::time_t, pub st_atime_nsec: c_long, #[cfg(gnu_time_bits64)] - _atime_pad: c_int, + _atime_pad: Padding, pub st_mtime: crate::time_t, pub st_mtime_nsec: c_long, #[cfg(gnu_time_bits64)] - _mtime_pad: c_int, + _mtime_pad: Padding, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, #[cfg(gnu_time_bits64)] - _ctime_pad: c_int, + _ctime_pad: Padding, #[cfg(not(gnu_file_offset_bits64))] __glibc_reserved4: c_long, diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index c84ee0c95cad5..2b73e355f400d 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -79,15 +79,15 @@ s! { pub st_blocks: crate::blkcnt_t, pub st_atime: crate::time_t, #[cfg(gnu_time_bits64)] - _atime_pad: c_int, + _atime_pad: Padding, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, #[cfg(gnu_time_bits64)] - _mtime_pad: c_int, + _mtime_pad: Padding, pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, #[cfg(gnu_time_bits64)] - _ctime_pad: c_int, + _ctime_pad: Padding, pub st_ctime_nsec: c_long, #[cfg(not(gnu_time_bits64))] __glibc_reserved4: c_ulong, @@ -110,15 +110,15 @@ s! { pub st_blocks: crate::blkcnt64_t, pub st_atime: crate::time_t, #[cfg(gnu_time_bits64)] - _atime_pad: c_int, + _atime_pad: Padding, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, #[cfg(gnu_time_bits64)] - _mtime_pad: c_int, + _mtime_pad: Padding, pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, #[cfg(gnu_time_bits64)] - _ctime_pad: c_int, + _ctime_pad: Padding, pub st_ctime_nsec: c_long, #[cfg(not(gnu_time_bits64))] __glibc_reserved4: c_ulong, diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index 2d6957d5e51c7..8d4a642c6e61f 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -247,7 +247,7 @@ s_no_extra_traits! { pub struct mcontext_t { __glibc_reserved: [c_ulong; 4], pub signal: c_int, - __pad0: c_int, + __pad0: Padding, pub handler: c_ulong, pub oldmask: c_ulong, pub regs: *mut pt_regs, @@ -262,20 +262,20 @@ s_no_extra_traits! { pub vrregs: [[c_uint; 4]; 32], pub vscr: vscr_t, pub vrsave: c_uint, - __pad: [c_uint; 3], + __pad: Padding<[c_uint; 3]>, } #[repr(align(4))] pub struct vscr_t { #[cfg(target_endian = "big")] - __pad: [c_uint; 3], + __pad: Padding<[c_uint; 3]>, #[cfg(target_endian = "big")] pub vscr_word: c_uint, #[cfg(target_endian = "little")] pub vscr_word: c_uint, #[cfg(target_endian = "little")] - __pad: [c_uint; 3], + __pad: Padding<[c_uint; 3]>, } } diff --git a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs index 56137bdc38e6d..7fe990ae1efb0 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs @@ -235,7 +235,7 @@ s! { pub l_len: off_t, pub l_sysid: c_long, pub l_pid: crate::pid_t, - pad: [c_long; 4], + pad: Padding<[c_long; 4]>, } pub struct sysinfo { diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index c4ce06c92ec25..c396c6c37099c 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -213,9 +213,9 @@ s! { pub struct sockaddr_storage { pub ss_family: sa_family_t, #[cfg(target_pointer_width = "32")] - __ss_pad2: [u8; 128 - 2 - 4], + __ss_pad2: Padding<[u8; 128 - 2 - 4]>, #[cfg(target_pointer_width = "64")] - __ss_pad2: [u8; 128 - 2 - 8], + __ss_pad2: Padding<[u8; 128 - 2 - 8]>, __ss_align: size_t, } diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 5341b811fa557..494ecdb7d95cf 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -252,7 +252,7 @@ s! { pub ai_socktype: c_int, pub ai_protocol: c_int, #[cfg(target_arch = "sparc64")] - __sparcv9_pad: c_int, + __sparcv9_pad: Padding, pub ai_addrlen: crate::socklen_t, pub ai_canonname: *mut c_char, pub ai_addr: *mut crate::sockaddr, From 2c86fc375b424b642d1db11897f89c6da5c9aace Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Tue, 2 Dec 2025 23:01:54 +0100 Subject: [PATCH 1042/1228] cleanup: Also padding is padding! As previous commit, but tackle the *padding* fields (backport ) (cherry picked from commit 0745ad49a247e40f64207c9d8d7e846b8b017784) --- src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs | 4 ++-- src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs | 4 ++-- src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs | 4 ++-- src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs | 4 ++-- src/unix/bsd/netbsdlike/openbsd/mod.rs | 2 +- src/unix/linux_like/android/b32/arm.rs | 2 +- src/unix/linux_like/android/b32/x86/mod.rs | 4 ++-- src/unix/linux_like/android/b64/x86_64/mod.rs | 2 +- src/unix/linux_like/emscripten/mod.rs | 4 ++-- src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs | 2 +- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 8 ++++---- src/unix/linux_like/linux/musl/b32/hexagon.rs | 4 ++-- src/unix/linux_like/linux/musl/b32/powerpc.rs | 4 ++-- src/unix/linux_like/linux/musl/b32/x86/mod.rs | 10 +++++----- src/unix/linux_like/linux/musl/b64/x86_64/mod.rs | 2 +- src/unix/linux_like/linux/musl/mod.rs | 2 +- src/unix/nto/mod.rs | 2 +- src/unix/redox/mod.rs | 2 +- 19 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index bbce4af5e3eef..34979f8884d79 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -226,10 +226,10 @@ s! { pub st_ino: crate::ino_t, pub st_nlink: crate::nlink_t, pub st_mode: crate::mode_t, - st_padding0: i16, + st_padding0: Padding, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - st_padding1: i32, + st_padding1: Padding, pub st_rdev: crate::dev_t, #[cfg(target_arch = "x86")] st_atim_ext: i32, diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs index 2f7dc72342898..6ef62be3c0a2e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -239,10 +239,10 @@ s! { pub st_ino: crate::ino_t, pub st_nlink: crate::nlink_t, pub st_mode: crate::mode_t, - st_padding0: i16, + st_padding0: Padding, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - st_padding1: i32, + st_padding1: Padding, pub st_rdev: crate::dev_t, #[cfg(target_arch = "x86")] st_atim_ext: i32, diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index c5c262ab68d32..f2753cebcec9f 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -240,10 +240,10 @@ s! { pub st_ino: crate::ino_t, pub st_nlink: crate::nlink_t, pub st_mode: crate::mode_t, - st_padding0: i16, + st_padding0: Padding, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - st_padding1: i32, + st_padding1: Padding, pub st_rdev: crate::dev_t, #[cfg(target_arch = "x86")] st_atim_ext: i32, diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index 4031a078b995d..d9d93687850c3 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -242,10 +242,10 @@ s! { pub st_ino: crate::ino_t, pub st_nlink: crate::nlink_t, pub st_mode: crate::mode_t, - st_padding0: i16, + st_padding0: Padding, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - st_padding1: i32, + st_padding1: Padding, pub st_rdev: crate::dev_t, #[cfg(target_arch = "x86")] st_atim_ext: i32, diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index c656376f59868..8b12116ab25ae 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -616,7 +616,7 @@ s! { pub d_reclen: u16, pub d_type: u8, pub d_namlen: u8, - __d_padding: [u8; 4], + __d_padding: Padding<[u8; 4]>, pub d_name: [c_char; 256], } diff --git a/src/unix/linux_like/android/b32/arm.rs b/src/unix/linux_like/android/b32/arm.rs index 1d2d34dfedc40..66375876e7760 100644 --- a/src/unix/linux_like/android/b32/arm.rs +++ b/src/unix/linux_like/android/b32/arm.rs @@ -32,7 +32,7 @@ s! { pub struct __c_anonymous_uc_sigmask_with_padding { pub uc_sigmask: crate::sigset_t, /* Android has a wrong (smaller) sigset_t on x86. */ - __padding_rt_sigset: u32, + __padding_rt_sigset: Padding, } pub struct ucontext_t { diff --git a/src/unix/linux_like/android/b32/x86/mod.rs b/src/unix/linux_like/android/b32/x86/mod.rs index 22a8766e88bb3..7266cf2c31363 100644 --- a/src/unix/linux_like/android/b32/x86/mod.rs +++ b/src/unix/linux_like/android/b32/x86/mod.rs @@ -31,7 +31,7 @@ s! { pub struct __c_anonymous_uc_sigmask_with_padding { pub uc_sigmask: crate::sigset_t, /* Android has a wrong (smaller) sigset_t on x86. */ - __padding_rt_sigset: u32, + __padding_rt_sigset: Padding, } pub struct ucontext_t { @@ -40,7 +40,7 @@ s! { pub uc_stack: crate::stack_t, pub uc_mcontext: mcontext_t, pub uc_sigmask__c_anonymous_union: __c_anonymous_uc_sigmask, - __padding_rt_sigset: u32, + __padding_rt_sigset: Padding, __fpregs_mem: _libc_fpstate, } } diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index 801235d13ec1b..0f3b74131449a 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -151,7 +151,7 @@ s! { pub mxcr_mask: c_uint, pub st_space: [c_uint; 32], pub xmm_space: [c_uint; 64], - padding: [c_uint; 24], + padding: Padding<[c_uint; 24]>, } } diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 6bb961520d55f..72433bf471986 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -223,7 +223,7 @@ s! { pub struct stat { pub st_dev: crate::dev_t, #[cfg(emscripten_old_stat_abi)] - __st_dev_padding: c_int, + __st_dev_padding: Padding, #[cfg(emscripten_old_stat_abi)] __st_ino_truncated: c_long, pub st_mode: mode_t, @@ -232,7 +232,7 @@ s! { pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, #[cfg(emscripten_old_stat_abi)] - __st_rdev_padding: c_int, + __st_rdev_padding: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 8c80598f84f41..a5514b585c6e6 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -275,7 +275,7 @@ s! { __reserved: Padding, pub st_space: [c_long; 32], pub xmm_space: [c_long; 32], - padding: [c_long; 56], + padding: Padding<[c_long; 56]>, } pub struct ucontext_t { diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index 8654559b148fb..7edd7c5664001 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -301,7 +301,7 @@ s! { pub mxcr_mask: c_uint, pub st_space: [c_uint; 32], pub xmm_space: [c_uint; 64], - padding: [c_uint; 24], + padding: Padding<[c_uint; 24]>, } pub struct ucontext_t { diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index 8051e6cf8253b..dea804a527026 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -6,14 +6,14 @@ pub type wchar_t = u32; s! { pub struct stat { pub st_dev: crate::dev_t, - __st_dev_padding: c_int, + __st_dev_padding: Padding, __st_ino_truncated: c_long, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __st_rdev_padding: c_int, + __st_rdev_padding: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, @@ -28,14 +28,14 @@ s! { pub struct stat64 { pub st_dev: crate::dev_t, - __st_dev_padding: c_int, + __st_dev_padding: Padding, __st_ino_truncated: c_long, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __st_rdev_padding: c_int, + __st_rdev_padding: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 54bfbda97ed5c..8ce439cee5bf9 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -12,10 +12,10 @@ s! { pub st_uid: c_uint, pub st_gid: c_uint, pub st_rdev: c_ulonglong, - __st_rdev_padding: c_ulong, + __st_rdev_padding: Padding, pub st_size: c_longlong, pub st_blksize: crate::blksize_t, - __st_blksize_padding: c_int, + __st_blksize_padding: Padding, pub st_blocks: crate::blkcnt_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 984c88b86d143..4bf82c7b0cac4 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -23,7 +23,7 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __st_rdev_padding: c_short, + __st_rdev_padding: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, @@ -44,7 +44,7 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __st_rdev_padding: c_short, + __st_rdev_padding: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index c51614240dbc3..ada436fc99b56 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -6,14 +6,14 @@ pub type wchar_t = i32; s! { pub struct stat { pub st_dev: crate::dev_t, - __st_dev_padding: c_int, + __st_dev_padding: Padding, __st_ino_truncated: c_long, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __st_rdev_padding: c_int, + __st_rdev_padding: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, @@ -28,14 +28,14 @@ s! { pub struct stat64 { pub st_dev: crate::dev_t, - __st_dev_padding: c_int, + __st_dev_padding: Padding, __st_ino_truncated: c_long, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __st_rdev_padding: c_int, + __st_rdev_padding: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, @@ -124,7 +124,7 @@ s! { __reserved: Padding, pub st_space: [c_long; 32], pub xmm_space: [c_long; 32], - padding: [c_long; 56], + padding: Padding<[c_long; 56]>, } pub struct ucontext_t { diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index 364e16b5c9257..f7f449cbc8936 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -157,7 +157,7 @@ s! { pub mxcr_mask: c_uint, pub st_space: [c_uint; 32], pub xmm_space: [c_uint; 64], - padding: [c_uint; 24], + padding: Padding<[c_uint; 24]>, } pub struct ucontext_t { diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index e3f58b4ebf149..1f158b676ce3a 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -247,7 +247,7 @@ s! { __opaque: *mut c_void, __padding: Padding<[*mut c_void; 4usize]>, __nsub2: size_t, - __padding2: c_char, + __padding2: Padding, } pub struct rtentry { diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 962e660f2bc16..3ce3859033d87 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -615,7 +615,7 @@ s! { pub bs_recv: u64, pub bs_drop: u64, pub bs_capt: u64, - bs_padding: [u64; 13], + bs_padding: Padding<[u64; 13]>, } #[cfg(target_env = "nto71_iosock")] diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 439e8db35b4e0..b674ea219eb64 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -61,7 +61,7 @@ s! { pub struct sockaddr_storage { pub ss_family: crate::sa_family_t, - __ss_padding: [u8; 128 - size_of::() - size_of::()], + __ss_padding: Padding<[u8; 128 - size_of::() - size_of::()]>, __ss_align: c_ulong, } From a5f940c4cd543571b6586fe10b01e2377cebde78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Wed, 3 Dec 2025 01:38:27 +0100 Subject: [PATCH 1043/1228] cleanup: Also mark reserved fields as Padding Some were already done, more were missing (backport ) (cherry picked from commit e52c686941d149f50764df3a668ab7294f0df74c) --- src/unix/bsd/apple/b64/x86_64/mod.rs | 4 +-- src/unix/haiku/mod.rs | 2 +- src/unix/haiku/native.rs | 4 +-- src/unix/hurd/mod.rs | 4 +-- src/unix/linux_like/android/b32/mod.rs | 4 +-- src/unix/linux_like/android/b64/mod.rs | 12 +++---- src/unix/linux_like/android/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 10 +++--- src/unix/linux_like/linux/gnu/b32/csky/mod.rs | 10 +++--- src/unix/linux_like/linux/gnu/b32/m68k/mod.rs | 24 ++++++------- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 18 +++++----- src/unix/linux_like/linux/gnu/b32/mod.rs | 8 ++--- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 34 +++++++++---------- .../linux_like/linux/gnu/b32/riscv32/mod.rs | 4 +-- .../linux_like/linux/gnu/b32/sparc/mod.rs | 12 +++---- src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 10 +++--- src/unix/linux_like/linux/gnu/b64/mod.rs | 8 ++--- .../linux_like/linux/gnu/b64/powerpc64/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b64/s390x.rs | 6 ++-- src/unix/linux_like/linux/gnu/mod.rs | 6 ++-- src/unix/linux_like/linux/musl/mod.rs | 4 +-- .../linux/uclibc/mips/mips32/mod.rs | 16 ++++----- .../linux/uclibc/mips/mips64/mod.rs | 4 +-- src/unix/nto/mod.rs | 2 +- src/unix/nto/neutrino.rs | 12 +++---- src/unix/nto/x86_64.rs | 2 +- 26 files changed, 112 insertions(+), 112 deletions(-) diff --git a/src/unix/bsd/apple/b64/x86_64/mod.rs b/src/unix/bsd/apple/b64/x86_64/mod.rs index 2b22f489b9c6b..dac8c9e3d336d 100644 --- a/src/unix/bsd/apple/b64/x86_64/mod.rs +++ b/src/unix/bsd/apple/b64/x86_64/mod.rs @@ -10,8 +10,8 @@ s! { // FIXME(1.0): This should not implement `PartialEq` #[allow(unpredictable_function_pointer_comparisons)] pub struct malloc_zone_t { - _reserved1: *mut c_void, - _reserved2: *mut c_void, + _reserved1: Padding<*mut c_void>, + _reserved2: Padding<*mut c_void>, pub size: Option size_t>, pub malloc: diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 6658968a885ee..43ab47dce5d1b 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -495,7 +495,7 @@ s! { pub ut_user: [c_char; 32], pub ut_line: [c_char; 16], pub ut_host: [c_char; 128], - __ut_reserved: [c_char; 64], + __ut_reserved: Padding<[c_char; 64]>, } } diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs index acf6b3486de79..99ceab8a7519b 100644 --- a/src/unix/haiku/native.rs +++ b/src/unix/haiku/native.rs @@ -422,10 +422,10 @@ s! { pub model: u32, pub family: u32, pub tpe: u32, - __reserved_0: u32, + __reserved_0: Padding, pub extended_model: u32, pub extended_family: u32, - __reserved_1: u32, + __reserved_1: Padding, pub brand_index: u32, pub clflush: u32, pub logical_cpus: u32, diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 9b7811b460e1b..68e8973984b83 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -596,7 +596,7 @@ s! { pub aio_offset: off_t, #[cfg(all(not(target_arch = "x86_64"), target_pointer_width = "32"))] __unused1: Padding<[c_char; 4]>, - __glibc_reserved: [c_char; 32], + __glibc_reserved: Padding<[c_char; 32]>, } pub struct mq_attr { @@ -1041,7 +1041,7 @@ s! { pub ut_tv: __timeval, pub ut_addr_v6: [i32; 4], - __glibc_reserved: [c_char; 20], + __glibc_reserved: Padding<[c_char; 20]>, } } diff --git a/src/unix/linux_like/android/b32/mod.rs b/src/unix/linux_like/android/b32/mod.rs index 62c3c4c32a4b6..7927a2390ccf2 100644 --- a/src/unix/linux_like/android/b32/mod.rs +++ b/src/unix/linux_like/android/b32/mod.rs @@ -124,7 +124,7 @@ s! { pendingReaders: c_int, pendingWriters: c_int, attr: i32, - __reserved: [c_char; 12], + __reserved: Padding<[c_char; 12]>, } pub struct pthread_barrier_t { @@ -209,7 +209,7 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { pendingReaders: 0, pendingWriters: 0, attr: 0, - __reserved: [0; 12], + __reserved: Padding::uninit(), }; pub const PTHREAD_STACK_MIN: size_t = 4096 * 2; pub const CPU_SETSIZE: size_t = 32; diff --git a/src/unix/linux_like/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs index 05ec19d85ad5e..9fc1819379e56 100644 --- a/src/unix/linux_like/android/b64/mod.rs +++ b/src/unix/linux_like/android/b64/mod.rs @@ -118,12 +118,12 @@ s! { pub struct pthread_mutex_t { value: c_int, - __reserved: [c_char; 36], + __reserved: Padding<[c_char; 36]>, } pub struct pthread_cond_t { value: c_int, - __reserved: [c_char; 44], + __reserved: Padding<[c_char; 44]>, } pub struct pthread_rwlock_t { @@ -132,7 +132,7 @@ s! { pendingReaders: c_int, pendingWriters: c_int, attr: i32, - __reserved: [c_char; 36], + __reserved: Padding<[c_char; 36]>, } pub struct sigset64_t { @@ -155,11 +155,11 @@ pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { value: 0, - __reserved: [0; 36], + __reserved: Padding::uninit(), }; pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { value: 0, - __reserved: [0; 44], + __reserved: Padding::uninit(), }; pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { numLocks: 0, @@ -167,7 +167,7 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { pendingReaders: 0, pendingWriters: 0, attr: 0, - __reserved: [0; 36], + __reserved: Padding::uninit(), }; pub const PTHREAD_STACK_MIN: size_t = 4096 * 4; pub const CPU_SETSIZE: size_t = 1024; diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 4686f532a6126..05922ffc04726 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -158,7 +158,7 @@ s! { pub f_flag: c_ulong, pub f_namemax: c_ulong, #[cfg(target_pointer_width = "64")] - __f_reserved: [u32; 6], + __f_reserved: Padding<[u32; 6]>, } pub struct signalfd_siginfo { diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 930797fbe189d..57d6d74bef620 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -151,20 +151,20 @@ s! { pub msg_perm: crate::ipc_perm, pub msg_stime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved1: c_ulong, + __glibc_reserved1: Padding, pub msg_rtime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved2: c_ulong, + __glibc_reserved2: Padding, pub msg_ctime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved3: c_ulong, + __glibc_reserved3: Padding, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct siginfo_t { diff --git a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs index 978b4398e9073..f346034e09525 100644 --- a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs @@ -134,18 +134,18 @@ s! { pub struct msqid_ds { pub msg_perm: crate::ipc_perm, pub msg_stime: crate::time_t, - __glibc_reserved1: c_ulong, + __glibc_reserved1: Padding, pub msg_rtime: crate::time_t, - __glibc_reserved2: c_ulong, + __glibc_reserved2: Padding, pub msg_ctime: crate::time_t, - __glibc_reserved3: c_ulong, + __glibc_reserved3: Padding, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct siginfo_t { diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index d2eb7ee3ec9b4..01244f4277b2a 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -58,8 +58,8 @@ s! { pub mode: crate::mode_t, __seq: c_ushort, __pad1: Padding, - __glibc_reserved1: c_ulong, - __glibc_reserved2: c_ulong, + __glibc_reserved1: Padding, + __glibc_reserved2: Padding, } pub struct stat64 { @@ -119,33 +119,33 @@ s! { pub shm_perm: crate::ipc_perm, pub shm_segsz: size_t, pub shm_atime: crate::time_t, - __glibc_reserved1: c_long, + __glibc_reserved1: Padding, pub shm_dtime: crate::time_t, - __glibc_reserved2: c_long, + __glibc_reserved2: Padding, pub shm_ctime: crate::time_t, - __glibc_reserved3: c_long, + __glibc_reserved3: Padding, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __glibc_reserved5: c_ulong, - __glibc_reserved6: c_ulong, + __glibc_reserved5: Padding, + __glibc_reserved6: Padding, } pub struct msqid_ds { pub msg_perm: crate::ipc_perm, pub msg_stime: crate::time_t, - __glibc_reserved1: c_uint, + __glibc_reserved1: Padding, pub msg_rtime: crate::time_t, - __glibc_reserved2: c_uint, + __glibc_reserved2: Padding, pub msg_ctime: crate::time_t, - __glibc_reserved3: c_uint, + __glibc_reserved3: Padding, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct siginfo_t { diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 781da2124d2ed..d7f8a6077a5be 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -218,27 +218,27 @@ s! { pub struct msqid_ds { pub msg_perm: crate::ipc_perm, #[cfg(all(not(gnu_time_bits64), target_endian = "big"))] - __glibc_reserved1: c_ulong, + __glibc_reserved1: Padding, pub msg_stime: crate::time_t, #[cfg(all(not(gnu_time_bits64), target_endian = "little"))] - __glibc_reserved1: c_ulong, + __glibc_reserved1: Padding, #[cfg(all(not(gnu_time_bits64), target_endian = "big"))] - __glibc_reserved2: c_ulong, + __glibc_reserved2: Padding, pub msg_rtime: crate::time_t, #[cfg(all(not(gnu_time_bits64), target_endian = "little"))] - __glibc_reserved2: c_ulong, + __glibc_reserved2: Padding, #[cfg(all(not(gnu_time_bits64), target_endian = "big"))] - __glibc_reserved3: c_ulong, + __glibc_reserved3: Padding, pub msg_ctime: crate::time_t, #[cfg(target_endian = "little")] - __glibc_reserved3: c_ulong, + __glibc_reserved3: Padding, __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct flock { @@ -250,7 +250,7 @@ s! { pub l_sysid: c_long, pub l_pid: crate::pid_t, #[cfg(not(gnu_file_offset_bits64))] - __glibc_reserved0: [c_long; 4], + __glibc_reserved0: Padding<[c_long; 4]>, } } diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index f27e1440b6028..418b4d6774bca 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -117,9 +117,9 @@ cfg_if! { _ctime_pad: Padding, #[cfg(not(gnu_file_offset_bits64))] - __glibc_reserved4: c_long, + __glibc_reserved4: Padding, #[cfg(not(gnu_file_offset_bits64))] - __glibc_reserved5: c_long, + __glibc_reserved5: Padding, #[cfg(all(not(gnu_time_bits64), gnu_file_offset_bits64))] pub st_ino: crate::ino_t, } @@ -207,8 +207,8 @@ s! { )) ))] __reserved2: Padding, - __glibc_reserved3: crate::__syscall_ulong_t, - __glibc_reserved4: crate::__syscall_ulong_t, + __glibc_reserved3: Padding, + __glibc_reserved4: Padding, } #[cfg(gnu_time_bits64)] diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 2b73e355f400d..690ff78da17d9 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -58,8 +58,8 @@ s! { pub mode: crate::mode_t, __seq: u32, __pad1: Padding, - __glibc_reserved1: u64, - __glibc_reserved2: u64, + __glibc_reserved1: Padding, + __glibc_reserved2: Padding, } pub struct stat { @@ -90,9 +90,9 @@ s! { _ctime_pad: Padding, pub st_ctime_nsec: c_long, #[cfg(not(gnu_time_bits64))] - __glibc_reserved4: c_ulong, + __glibc_reserved4: Padding, #[cfg(not(gnu_time_bits64))] - __glibc_reserved5: c_ulong, + __glibc_reserved5: Padding, } pub struct stat64 { @@ -121,9 +121,9 @@ s! { _ctime_pad: Padding, pub st_ctime_nsec: c_long, #[cfg(not(gnu_time_bits64))] - __glibc_reserved4: c_ulong, + __glibc_reserved4: Padding, #[cfg(not(gnu_time_bits64))] - __glibc_reserved5: c_ulong, + __glibc_reserved5: Padding, } pub struct statfs64 { @@ -162,43 +162,43 @@ s! { #[cfg(gnu_time_bits64)] pub shm_segsz: size_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved1: c_uint, + __glibc_reserved1: Padding, pub shm_atime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved2: c_uint, + __glibc_reserved2: Padding, pub shm_dtime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved3: c_uint, + __glibc_reserved3: Padding, pub shm_ctime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved4: c_uint, + __glibc_reserved4: Padding, #[cfg(not(gnu_time_bits64))] pub shm_segsz: size_t, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __glibc_reserved5: c_ulong, - __glibc_reserved6: c_ulong, + __glibc_reserved5: Padding, + __glibc_reserved6: Padding, } pub struct msqid_ds { pub msg_perm: crate::ipc_perm, #[cfg(not(gnu_time_bits64))] - __glibc_reserved1: c_uint, + __glibc_reserved1: Padding, pub msg_stime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved2: c_uint, + __glibc_reserved2: Padding, pub msg_rtime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved3: c_uint, + __glibc_reserved3: Padding, pub msg_ctime: crate::time_t, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct siginfo_t { diff --git a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs index 8da10a3c543b6..5484a68bd1ec1 100644 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -19,8 +19,8 @@ s! { pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct stat64 { diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index 303d4a1135715..70959422e496d 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -86,8 +86,8 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct stat64 { @@ -108,8 +108,8 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct statfs64 { @@ -195,8 +195,8 @@ s! { pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } } diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index a5514b585c6e6..4b3c1166ef33e 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -225,20 +225,20 @@ s! { pub msg_perm: crate::ipc_perm, pub msg_stime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved1: c_ulong, + __glibc_reserved1: Padding, pub msg_rtime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved2: c_ulong, + __glibc_reserved2: Padding, pub msg_ctime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved3: c_ulong, + __glibc_reserved3: Padding, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct siginfo_t { diff --git a/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs index 5a3022117c2a3..3d442a6d8129d 100644 --- a/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -63,8 +63,8 @@ s! { pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: u64, - __glibc_reserved5: u64, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct semid_ds { @@ -94,8 +94,8 @@ s! { )))] __reserved2: Padding, pub sem_nsems: crate::__syscall_ulong_t, - __glibc_reserved3: crate::__syscall_ulong_t, - __glibc_reserved4: crate::__syscall_ulong_t, + __glibc_reserved3: Padding, + __glibc_reserved4: Padding, } pub struct timex { diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index 8d4a642c6e61f..ee2cd21dec783 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -245,7 +245,7 @@ s_no_extra_traits! { } pub struct mcontext_t { - __glibc_reserved: [c_ulong; 4], + __glibc_reserved: Padding<[c_ulong; 4]>, pub signal: c_int, __pad0: Padding, pub handler: c_ulong, diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 5b240b5cef64f..28e02c4f27920 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -20,7 +20,7 @@ s! { #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, - __glibc_reserved0: c_int, + __glibc_reserved0: Padding, pub sa_flags: c_int, pub sa_restorer: Option, pub sa_mask: crate::sigset_t, @@ -89,7 +89,7 @@ s! { pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, - __glibc_reserved: [c_long; 3], + __glibc_reserved: Padding<[c_long; 3]>, } pub struct stat64 { @@ -110,7 +110,7 @@ s! { pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt64_t, - __glibc_reserved: [c_long; 3], + __glibc_reserved: Padding<[c_long; 3]>, } pub struct pthread_attr_t { diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 96eed0d27ef2c..c487f31664fd3 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -38,7 +38,7 @@ s! { target_pointer_width = "32" ))] __unused1: Padding<[c_char; 4]>, - __glibc_reserved: [c_char; 32], + __glibc_reserved: Padding<[c_char; 32]>, } pub struct __exit_status { @@ -255,7 +255,7 @@ s! { pub aio_buf: crate::__u64, pub aio_nbytes: crate::__u64, pub aio_offset: crate::__s64, - aio_reserved2: crate::__u64, + aio_reserved2: Padding, pub aio_flags: crate::__u32, pub aio_resfd: crate::__u32, } @@ -392,7 +392,7 @@ s! { pub ut_tv: __timeval, pub ut_addr_v6: [i32; 4], - __glibc_reserved: [c_char; 20], + __glibc_reserved: Padding<[c_char; 20]>, } } diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 1f158b676ce3a..3c5a161418d6f 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -190,7 +190,7 @@ s! { pub f_fsid: c_ulong, pub f_flag: c_ulong, pub f_namemax: c_ulong, - __f_reserved: [c_int; 6], + __f_reserved: Padding<[c_int; 6]>, } pub struct statvfs64 { @@ -210,7 +210,7 @@ s! { pub f_fsid: c_ulong, pub f_flag: c_ulong, pub f_namemax: c_ulong, - __f_reserved: [c_int; 6], + __f_reserved: Padding<[c_int; 6]>, } // PowerPC implementations are special, see the subfolders diff --git a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs index 7fe990ae1efb0..93ed7ab213335 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs @@ -150,27 +150,27 @@ s! { pub struct msqid_ds { pub msg_perm: crate::ipc_perm, #[cfg(target_endian = "big")] - __glibc_reserved1: c_ulong, + __glibc_reserved1: Padding, pub msg_stime: crate::time_t, #[cfg(target_endian = "little")] - __glibc_reserved1: c_ulong, + __glibc_reserved1: Padding, #[cfg(target_endian = "big")] - __glibc_reserved2: c_ulong, + __glibc_reserved2: Padding, pub msg_rtime: crate::time_t, #[cfg(target_endian = "little")] - __glibc_reserved2: c_ulong, + __glibc_reserved2: Padding, #[cfg(target_endian = "big")] - __glibc_reserved3: c_ulong, + __glibc_reserved3: Padding, pub msg_ctime: crate::time_t, #[cfg(target_endian = "little")] - __glibc_reserved3: c_ulong, + __glibc_reserved3: Padding, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct statfs { diff --git a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs index b6adb637493bb..4495181400d48 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs @@ -125,8 +125,8 @@ s! { pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct statfs { diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 3ce3859033d87..b096920f7c64a 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -563,7 +563,7 @@ s! { pub mode: mode_t, pub seq: c_uint, pub key: crate::key_t, - _reserved: [c_int; 4], + _reserved: Padding<[c_int; 4]>, } pub struct regex_t { diff --git a/src/unix/nto/neutrino.rs b/src/unix/nto/neutrino.rs index 5d12d24047188..fda8b4839dfcb 100644 --- a/src/unix/nto/neutrino.rs +++ b/src/unix/nto/neutrino.rs @@ -41,7 +41,7 @@ s! { pub srcmsglen: isize, pub dstmsglen: isize, pub type_id: u32, - reserved: u32, + reserved: Padding, } pub struct _cred_info { @@ -75,7 +75,7 @@ s! { pub num_pulses: c_uint, pub rearm_threshold: c_uint, pub options: c_uint, - reserved: [c_uint; 3], + reserved: Padding<[c_uint; 3]>, } // TODO: The following structures are defined in a header file which doesn't @@ -106,7 +106,7 @@ s! { // pub max_num_buffer: c_uint, // pub trigger_num_msg: c_uint, // pub trigger_time: crate::_itimer, - // reserve: c_uint, + // reserve: Padding, //} //pub struct _asyncmsg_connection_descriptor { @@ -121,9 +121,9 @@ s! { // pub ttimer: crate::timer_t, // pub block_con: crate::pthread_cond_t, // pub mu: crate::pthread_mutex_t, - // reserved: c_uint, + // reserved: Padding, // pub attr: crate::_asyncmsg_connection_attr, - // pub reserves: [c_uint; 3], + // reserves: Padding<[c_uint; 3]>, // pub sendq: [crate::_asyncmsg_put_header; 1], // flexarray //} @@ -196,7 +196,7 @@ s! { pub priority_max: c_int, pub interval: u64, pub priority_priv: c_int, - reserved: [c_int; 11], + reserved: Padding<[c_int; 11]>, } pub struct _timer_info { diff --git a/src/unix/nto/x86_64.rs b/src/unix/nto/x86_64.rs index 1fbfe3bb449bf..b8e0b221363dc 100644 --- a/src/unix/nto/x86_64.rs +++ b/src/unix/nto/x86_64.rs @@ -64,7 +64,7 @@ s! { pub mxcsr_mask: u32, pub st_regs: [u8; 128], pub xmm_regs: [u8; 128], - reserved2: [u8; 224], + reserved2: Padding<[u8; 224]>, } pub struct fpu_extention_savearea_64 { From 52ae9320d467eab38e5ac9a6b0a7e9f59bf50307 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Wed, 3 Dec 2025 00:01:37 +0100 Subject: [PATCH 1044/1228] cleanup: Also unused fields are Padding ones (backport ) (cherry picked from commit 6383ad82758910224dc6937c66a25cf9a6bafe85) --- src/fuchsia/mod.rs | 2 +- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 10 +++++----- src/unix/bsd/freebsdlike/freebsd/mod.rs | 2 +- src/unix/bsd/netbsdlike/netbsd/mod.rs | 6 +++--- src/unix/bsd/netbsdlike/openbsd/aarch64.rs | 2 +- src/unix/bsd/netbsdlike/openbsd/riscv64.rs | 2 +- src/unix/bsd/netbsdlike/openbsd/x86_64.rs | 6 +++--- src/unix/cygwin/mod.rs | 2 +- src/unix/haiku/mod.rs | 8 ++++---- src/unix/hurd/mod.rs | 2 +- src/unix/linux_like/android/mod.rs | 2 +- src/unix/linux_like/emscripten/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b32/csky/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b32/m68k/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b32/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 2 +- src/unix/linux_like/linux/gnu/b32/sparc/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 2 +- src/unix/linux_like/linux/uclibc/arm/mod.rs | 2 +- src/unix/linux_like/linux/uclibc/mod.rs | 2 +- src/unix/linux_like/linux/uclibc/x86_64/mod.rs | 2 +- 23 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 8b08711e0e94f..376549e96b0a9 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -483,7 +483,7 @@ s! { #[cfg(target_endian = "little")] pub f_fsid: c_ulong, #[cfg(all(target_pointer_width = "32", not(target_arch = "x86_64")))] - __f_unused: c_int, + __f_unused: Padding, #[cfg(target_endian = "big")] pub f_fsid: c_ulong, pub f_flag: c_ulong, diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 5c1aa9d1774be..ba2af13275289 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -215,7 +215,7 @@ s! { pub cr_uid: crate::uid_t, pub cr_ngroups: c_short, pub cr_groups: [crate::gid_t; 16], - __cr_unused1: *mut c_void, + __cr_unused1: Padding<*mut c_void>, } pub struct stack_t { @@ -260,8 +260,8 @@ s! { pub cp_sys: u64, pub cp_intr: u64, pub cp_idel: u64, - cp_unused01: u64, - cp_unused02: u64, + cp_unused01: Padding, + cp_unused02: Padding, pub cp_sample_pc: u64, pub cp_sample_sp: u64, pub cp_msg: [c_char; 32], @@ -382,8 +382,8 @@ s! { pub vm_daddr: *mut c_char, pub vm_maxsaddr: *mut c_char, pub vm_minsaddr: *mut c_char, - _unused1: c_int, - _unused2: c_int, + _unused1: Padding, + _unused2: Padding, pub vm_pagesupply: c_int, pub vm_holdcnt: c_uint, pub vm_refcnt: c_uint, diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 784ba34bca5be..1d462525ac5e6 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1654,7 +1654,7 @@ s! { s_no_extra_traits! { pub union __c_anonymous_cr_pid { - __cr_unused: *mut c_void, + __cr_unused: Padding<*mut c_void>, pub cr_pid: crate::pid_t, } diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 23715a64c70b8..ed5d787f93ba5 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -233,7 +233,7 @@ s! { ))] ptm_pad1: Padding<[u8; 3]>, // actually a union with a non-unused, 0-initialized field - ptm_unused: __pthread_spin_t, + ptm_unused: Padding<__pthread_spin_t>, #[cfg(any( target_arch = "sparc", target_arch = "sparc64", @@ -1283,7 +1283,7 @@ cfg_if! { ptm_magic: 0x33330003, ptm_errorcheck: 0, ptm_pad1: Padding::uninit(), - ptm_unused: 0, + ptm_unused: Padding::uninit(), ptm_pad2: Padding::uninit(), ptm_waiters: 0 as *mut _, ptm_owner: 0, @@ -1294,7 +1294,7 @@ cfg_if! { pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { ptm_magic: 0x33330003, ptm_errorcheck: 0, - ptm_unused: 0, + ptm_unused: Padding::uninit(), ptm_waiters: 0 as *mut _, ptm_owner: 0, ptm_recursed: 0, diff --git a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs index e0d347fb5e6b8..13142ea0f9366 100644 --- a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs @@ -4,7 +4,7 @@ pub type ucontext_t = sigcontext; s! { pub struct sigcontext { - __sc_unused: c_int, + __sc_unused: Padding, pub sc_mask: c_int, pub sc_sp: c_ulong, pub sc_lr: c_ulong, diff --git a/src/unix/bsd/netbsdlike/openbsd/riscv64.rs b/src/unix/bsd/netbsdlike/openbsd/riscv64.rs index 3545763d12c54..e0ecf2ac28b50 100644 --- a/src/unix/bsd/netbsdlike/openbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/riscv64.rs @@ -4,7 +4,7 @@ pub type ucontext_t = sigcontext; s! { pub struct sigcontext { - __sc_unused: c_int, + __sc_unused: Padding, pub sc_mask: c_int, pub sc_ra: c_long, pub sc_sp: c_long, diff --git a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs index 4abe8a1a7c5ed..74889a743b9aa 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs @@ -32,7 +32,7 @@ s! { pub sc_rsp: c_long, pub sc_ss: c_long, pub sc_fpstate: *mut fxsave64, - __sc_unused: c_int, + __sc_unused: Padding, pub sc_mask: c_int, pub sc_cookie: c_long, } @@ -42,7 +42,7 @@ s! { pub fx_fcw: u16, pub fx_fsw: u16, pub fx_ftw: u8, - __fx_unused1: u8, + __fx_unused1: Padding, pub fx_fop: u16, pub fx_rip: u64, pub fx_rdp: u64, @@ -50,7 +50,7 @@ s! { pub fx_mxcsr_mask: u32, pub fx_st: [[u64; 2]; 8], pub fx_xmm: [[u64; 2]; 16], - __fx_unused3: [u8; 96], + __fx_unused3: Padding<[u8; 96]>, } } diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 94c156c8f41ce..9d3a3b55cfeae 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -468,7 +468,7 @@ s! { __d_version: u32, pub d_ino: ino_t, pub d_type: c_uchar, - __d_unused1: [c_uchar; 3], + __d_unused1: Padding<[c_uchar; 3]>, __d_internal1: u32, pub d_name: [c_char; 256], } diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 43ab47dce5d1b..0668f27a48d72 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -292,14 +292,14 @@ s! { pub struct pthread_mutex_t { flags: u32, lock: i32, - unused: i32, + unused: Padding, owner: i32, owner_count: i32, } pub struct pthread_cond_t { flags: u32, - unused: i32, + unused: Padding, mutex: *mut c_void, waiter_count: i32, lock: i32, @@ -1091,13 +1091,13 @@ pub const PTHREAD_STACK_MIN: size_t = 8192; pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { flags: 0, lock: 0, - unused: -42, + unused: Padding::uninit(), owner: -1, owner_count: 0, }; pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { flags: 0, - unused: -42, + unused: Padding::uninit(), mutex: 0 as *mut _, waiter_count: 0, lock: 0, diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 68e8973984b83..e119e4b8c74fc 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -708,7 +708,7 @@ s! { } pub struct _IO_FILE { - _unused: [u8; 0], + _unused: Padding<[u8; 0]>, } pub struct sched_param { diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 05922ffc04726..967f8e7bc9970 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -549,7 +549,7 @@ s! { pub ut_session: c_long, pub ut_tv: crate::timeval, pub ut_addr_v6: [i32; 4], - unused: [c_char; 20], + unused: Padding<[c_char; 20]>, } pub struct sockaddr_alg { diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 72433bf471986..59afc245eec54 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -91,7 +91,7 @@ s! { pub f_ffree: crate::fsfilcnt_t, pub f_favail: crate::fsfilcnt_t, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 57d6d74bef620..d05bccf3811ac 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -122,7 +122,7 @@ s! { pub f_ffree: u64, pub f_favail: u64, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], diff --git a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs index f346034e09525..dc88c635f1168 100644 --- a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs @@ -109,7 +109,7 @@ s! { pub f_ffree: u64, pub f_favail: u64, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index 01244f4277b2a..2d91f986b76a0 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -109,7 +109,7 @@ s! { pub f_ffree: crate::fsblkcnt64_t, pub f_favail: crate::fsblkcnt64_t, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index d7f8a6077a5be..18bb1933925f0 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -160,7 +160,7 @@ s! { pub f_ffree: u64, pub f_favail: u64, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 418b4d6774bca..d9aebbe0efda8 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -138,7 +138,7 @@ s! { pub f_ffree: crate::fsfilcnt_t, pub f_favail: crate::fsfilcnt_t, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 690ff78da17d9..b5d3631a6fcf2 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -151,7 +151,7 @@ s! { pub f_ffree: u64, pub f_favail: u64, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index 70959422e496d..75fefcd9401a8 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -137,7 +137,7 @@ s! { pub f_ffree: u64, pub f_favail: u64, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 4b3c1166ef33e..97429dad64285 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -196,7 +196,7 @@ s! { pub f_ffree: u64, pub f_favail: u64, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], diff --git a/src/unix/linux_like/linux/uclibc/arm/mod.rs b/src/unix/linux_like/linux/uclibc/arm/mod.rs index 7052d9daac2d2..26dd49b24465b 100644 --- a/src/unix/linux_like/linux/uclibc/arm/mod.rs +++ b/src/unix/linux_like/linux/uclibc/arm/mod.rs @@ -153,7 +153,7 @@ s! { pub f_ffree: u64, pub f_favail: u64, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], diff --git a/src/unix/linux_like/linux/uclibc/mod.rs b/src/unix/linux_like/linux/uclibc/mod.rs index 69f1b006e1c01..8ce6d2328f3c5 100644 --- a/src/unix/linux_like/linux/uclibc/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mod.rs @@ -36,7 +36,7 @@ s! { #[cfg(target_endian = "little")] pub f_fsid: c_ulong, #[cfg(target_pointer_width = "32")] - __f_unused: c_int, + __f_unused: Padding, #[cfg(target_endian = "big")] pub f_fsid: c_ulong, pub f_flag: c_ulong, diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index ce6b192580f23..1b1cb73f1513f 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -200,7 +200,7 @@ s! { pub f_ffree: u64, pub f_favail: u64, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], From ce099e9e674f90da01e3f848722763415c8224ac Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 3 Dec 2025 02:37:31 -0500 Subject: [PATCH 1045/1228] test: Switch remaining chained `||` to `match` in build.rs These are much easier to read and update. (backport ) (cherry picked from commit 5c4255f8259298ac6ad159d1dd3a27484844d454) --- libc-test/build.rs | 418 ++++++++++++++++++++++++--------------------- 1 file changed, 219 insertions(+), 199 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 71448bedc09e2..23a9d4ae6eac1 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1165,33 +1165,30 @@ fn test_solarish(target: &str) { }); cfg.skip_struct_field(move |s, field| { - let field = field.ident(); - match s.ident() { + match (s.ident(), field.ident()) { // C99 sizing on this is tough - "dirent" if field == "d_name" => true, + ("dirent", "d_name") => true, // the union/macro makes this rough - "sigaction" if field == "sa_sigaction" => true, + ("sigaction", "sa_sigaction") => true, // Missing in illumos - "sigevent" if field == "ss_sp" => true, + ("sigevent", "ss_sp") => true, // Avoid sigval union issues - "sigevent" if field == "sigev_value" => true, + ("sigevent", "sigev_value") => true, // const issues - "sigevent" if field == "sigev_notify_attributes" => true, + ("sigevent", "sigev_notify_attributes") => true, // Avoid const and union issues - "door_arg" if field == "desc_ptr" => true, - "door_desc_t" if field == "d_data" => true, - "door_arg_t" if field.ends_with("_ptr") => true, - "door_arg_t" if field.ends_with("rbuf") => true, + ("door_arg", "desc_ptr") => true, + ("door_desc_t", "d_data") => true, + ("door_arg_t", f) if f.ends_with("_ptr") => true, + ("door_arg_t", f) if f.ends_with("rbuf") => true, // anonymous union challenges - "fpregset_t" if field == "fp_reg_set" => true, + ("fpregset_t", "fp_reg_set") => true, // The LX brand (integrated into some illumos distros) commandeered several of the // `uc_filler` fields to use for brand-specific state. - "ucontext_t" if is_illumos && (field == "uc_filler" || field == "uc_brand_data") => { - true - } + ("ucontext_t", "uc_filler" | "uc_brand_data") if is_illumos => true, _ => false, } @@ -1492,14 +1489,17 @@ fn test_netbsd(target: &str) { }); cfg.skip_struct_field_type(move |struct_, field| { - // This is a weird union, don't check the type. - (struct_.ident() == "ifaddrs" && field.ident() == "ifa_ifu") || - // sighandler_t type is super weird - (struct_.ident() == "sigaction" && field.ident() == "sa_sigaction") || - // sigval is actually a union, but we pretend it's a struct - (struct_.ident() == "sigevent" && field.ident() == "sigev_value") || - // aio_buf is "volatile void*" and Rust doesn't understand volatile - (struct_.ident() == "aiocb" && field.ident() == "aio_buf") + match (struct_.ident(), field.ident()) { + // This is a weird union, don't check the type. + ("ifaddrs", "ifa_ifu") => true, + // sighandler_t type is super weird + ("sigaction", "sa_sigaction") => true, + // sigval is actually a union, but we pretend it's a struct + ("sigevent", "sigev_value") => true, + // aio_buf is "volatile void*" and Rust doesn't understand volatile + ("aiocb", "aio_buf") => true, + _ => false, + } }); cfg.skip_struct_field(|struct_, field| { @@ -1771,22 +1771,28 @@ fn test_dragonflybsd(target: &str) { }); cfg.skip_struct_field_type(move |struct_, field| { - // This is a weird union, don't check the type. - (struct_.ident() == "ifaddrs" && field.ident() == "ifa_ifu") || - // sighandler_t type is super weird - (struct_.ident() == "sigaction" && field.ident() == "sa_sigaction") || - // sigval is actually a union, but we pretend it's a struct - (struct_.ident() == "sigevent" && field.ident() == "sigev_value") || - // aio_buf is "volatile void*" and Rust doesn't understand volatile - (struct_.ident() == "aiocb" && field.ident() == "aio_buf") + match (struct_.ident(), field.ident()) { + // This is a weird union, don't check the type. + ("ifaddrs", "ifa_ifu") => true, + // sighandler_t type is super weird + ("sigaction", "sa_sigaction") => true, + // sigval is actually a union, but we pretend it's a struct + ("sigevent", "sigev_value") => true, + // aio_buf is "volatile void*" and Rust doesn't understand volatile + ("aiocb", "aio_buf") => true, + _ => false, + } }); cfg.skip_struct_field(move |struct_, field| { - // this is actually a union on linux, so we can't represent it well and - // just insert some padding. - (struct_.ident() == "siginfo_t" && field.ident() == "_pad") || - // sigev_notify_thread_id is actually part of a sigev_un union - (struct_.ident() == "sigevent" && field.ident() == "sigev_notify_thread_id") + match (struct_.ident(), field.ident()) { + // this is actually a union on linux, so we can't represent it well and + // just insert some padding. + ("siginfo_t", "_pad") => true, + // sigev_notify_thread_id is actually part of a sigev_un union + ("sigevent", "sigev_notify_thread_id") => true, + _ => false, + } }); ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); @@ -2059,22 +2065,20 @@ fn test_android(target: &str) { }); cfg.rename_struct_field(move |struct_, field| { - match field.ident() { + match (struct_.ident(), field.ident()) { // Our stat *_nsec fields normally don't actually exist but are part // of a timeval struct - s if s.ends_with("_nsec") && struct_.ident().starts_with("stat") => Some(s.to_string()), + ("stat" | "statfs" | "statvfs" | "stat64" | "statfs64" | "statvfs64", f) + if f.ends_with("_nsec") => + { + Some(f.to_string()) + } // FIXME(union): appears that `epoll_event.data` is an union - "u64" if struct_.ident() == "epoll_event" => Some("data.u64".to_string()), + ("epoll_event", "u64") => Some("data.u64".to_string()), // The following structs have a field called `type` in C, // but `type` is a Rust keyword, so these fields are translated // to `type_` in Rust. - "type_" - if struct_.ident() == "input_event" - || struct_.ident() == "input_mask" - || struct_.ident() == "ff_effect" => - { - Some("type".to_string()) - } + ("input_event" | "input_mask" | "ff_effect", "type_") => Some("type".to_string()), _ => None, } }); @@ -2355,21 +2359,22 @@ fn test_android(target: &str) { }); cfg.skip_struct_field_type(move |struct_, field| { - let struct_ = struct_.ident(); - let field = field.ident(); - // This is a weird union, don't check the type. - (struct_ == "ifaddrs" && field == "ifa_ifu") || - // sigval is actually a union, but we pretend it's a struct - (struct_ == "sigevent" && field == "sigev_value") || - // this one is an anonymous union - (struct_ == "ff_effect" && field == "u") || - // FIXME(android): `sa_sigaction` has type `sighandler_t` but that type is - // incorrect, see: https://github.com/rust-lang/libc/issues/1359 - (struct_ == "sigaction" && field == "sa_sigaction") || - // signalfd had SIGSYS fields added in Android 4.19, but CI does not have that version yet. - (struct_ == "signalfd_siginfo" && field == "ssi_call_addr") || - // FIXME(android): Seems the type has been changed on NDK r26b - (struct_ == "flock64" && (field == "l_start" || field == "l_len")) + match (struct_.ident(), field.ident()) { + // This is a weird union, don't check the type. + ("ifaddrs", "ifa_ifu") => true, + // sigval is actually a union, but we pretend it's a struct + ("sigevent", "sigev_value") => true, + // this one is an anonymous union + ("ff_effect", "u") => true, + // FIXME(android): `sa_sigaction` has type `sighandler_t` but that type is + // incorrect, see: https://github.com/rust-lang/libc/issues/1359 + ("sigaction", "sa_sigaction") => true, + // signalfd had SIGSYS fields added in Android 4.19, but CI does not have that version yet. + ("signalfd_siginfo", "ssi_call_addr") => true, + // FIXME(android): Seems the type has been changed on NDK r26b + ("flock64", "l_start" | "l_len") => true, + _ => false, + } }); cfg.skip_struct_field(|struct_, field| { @@ -3314,30 +3319,35 @@ fn test_emscripten(target: &str) { }); cfg.skip_struct_field_type(move |struct_, field| { - // This is a weird union, don't check the type. - (struct_.ident() == "ifaddrs" && field.ident() == "ifa_ifu") || - // sighandler_t type is super weird - (struct_.ident() == "sigaction" && field.ident() == "sa_sigaction") || - // sigval is actually a union, but we pretend it's a struct - (struct_.ident() == "sigevent" && field.ident() == "sigev_value") + match (struct_.ident(), field.ident()) { + // This is a weird union, don't check the type. + ("ifaddrs", "ifa_ifu") => true, + // sighandler_t type is super weird + ("sigaction", "sa_sigaction") => true, + // sigval is actually a union, but we pretend it's a struct + ("sigevent", "sigev_value") => true, + _ => false, + } }); cfg.skip_struct_field(move |struct_, field| { - let struct_ = struct_.ident(); - let field = field.ident(); - // this is actually a union on linux, so we can't represent it well and - // just insert some padding. - (struct_ == "siginfo_t" && field == "_pad") || - // musl names this __dummy1 but it's still there - (struct_ == "glob_t" && field == "gl_flags") || - // FIXME(emscripten): After musl 1.1.24, it have only one field `sched_priority`, - // while other fields become reserved. - (struct_ == "sched_param" && [ - "sched_ss_low_priority", - "sched_ss_repl_period", - "sched_ss_init_budget", - "sched_ss_max_repl", - ].contains(&field)) + match (struct_.ident(), field.ident()) { + // this is actually a union on linux, so we can't represent it well and + // just insert some padding. + ("siginfo_t", "_pad") => true, + // musl names this __dummy1 but it's still there + ("glob_t", "gl_flags") => true, + // FIXME(emscripten): After musl 1.1.24, it have only one field `sched_priority`, + // while other fields become reserved. + ( + "sched_param", + "sched_ss_low_priority" + | "sched_ss_repl_period" + | "sched_ss_init_budget" + | "sched_ss_max_repl", + ) => true, + _ => false, + } }); ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); @@ -4073,30 +4083,26 @@ fn test_linux(target: &str) { }); cfg.rename_struct_field(move |struct_, field| { - let struct_ = struct_.ident(); - match field.ident() { + match (struct_.ident(), field.ident()) { // Our stat *_nsec fields normally don't actually exist but are part // of a timeval struct - s if s.ends_with("_nsec") && struct_.starts_with("stat") => { - Some(s.replace("e_nsec", ".tv_nsec")) + ("stat" | "statfs" | "statvfs" | "stat64" | "statfs64" | "statvfs64", f) + if f.ends_with("_nsec") => + { + Some(f.replace("e_nsec", ".tv_nsec")) } + // FIXME(linux): epoll_event.data is actually a union in C, but in Rust // it is only a u64 because we only expose one field // http://man7.org/linux/man-pages/man2/epoll_wait.2.html - "u64" if struct_ == "epoll_event" => Some("data.u64".to_string()), + ("epoll_event", "u64") => Some("data.u64".to_string()), // The following structs have a field called `type` in C, // but `type` is a Rust keyword, so these fields are translated // to `type_` in Rust. - "type_" - if struct_ == "input_event" - || struct_ == "input_mask" - || struct_ == "ff_effect" => - { - Some("type".to_string()) - } + ("input_event" | "input_mask" | "ff_effect", "type_") => Some("type".to_string()), // FIXME(1.0): field has a different name on loongarch - "uc_flags" if loongarch64 && struct_ == "ucontext_t" => Some("__uc_flags".to_string()), + ("ucontext_t", "uc_flags") if loongarch64 => Some("__uc_flags".to_string()), _ => None, } @@ -4727,115 +4733,129 @@ fn test_linux(target: &str) { }); cfg.skip_struct_field_type(move |union_, field| { - let union_ = union_.ident(); - let field = field.ident(); - // This is a weird union, don't check the type. - (union_ == "ifaddrs" && field == "ifa_ifu") || - // sighandler_t type is super weird - (union_ == "sigaction" && field == "sa_sigaction") || - // __timeval type is a patch which doesn't exist in glibc - (union_ == "utmpx" && field == "ut_tv") || - // sigval is actually a union, but we pretend it's a struct - (union_ == "sigevent" && field == "sigev_value") || - // this one is an anonymous union - (union_ == "ff_effect" && field == "u") || - // `__exit_status` type is a patch which is absent in musl - (union_ == "utmpx" && field == "ut_exit" && musl) || - // `can_addr` is an anonymous union - (union_ == "sockaddr_can" && field == "can_addr") || - // `anonymous_1` is an anonymous union - (union_ == "ptp_perout_request" && field == "anonymous_1") || - // `anonymous_2` is an anonymous union - (union_ == "ptp_perout_request" && field == "anonymous_2") || - // FIXME(linux): `adjust_phase` requires >= 5.7 kernel headers - // FIXME(linux): `max_phase_adj` requires >= 5.19 kernel headers - // the rsv field shrunk when those fields got added, so is omitted too - (union_ == "ptp_clock_caps" && (loongarch64 || sparc64) && (["adjust_phase", "max_phase_adj", "rsv"].contains(&field))) + match (union_.ident(), field.ident()) { + // This is a weird union, don't check the type. + ("ifaddrs", "ifa_ifu") => true, + // sighandler_t type is super weird + ("sigaction", "sa_sigaction") => true, + // __timeval type is a patch which doesn't exist in glibc + ("utmpx", "ut_tv") => true, + // sigval is actually a union, but we pretend it's a struct + ("sigevent", "sigev_value") => true, + // this one is an anonymous union + ("ff_effect", "u") => true, + // `__exit_status` type is a patch which is absent in musl + ("utmpx", "ut_exit") if musl => true, + // `can_addr` is an anonymous union + ("sockaddr_can", "can_addr") => true, + // `anonymous_1` is an anonymous union + ("ptp_perout_request", "anonymous_1") => true, + // `anonymous_2` is an anonymous union + ("ptp_perout_request", "anonymous_2") => true, + // FIXME(linux): `adjust_phase` requires >= 5.7 kernel headers + // FIXME(linux): `max_phase_adj` requires >= 5.19 kernel headers + // the rsv field shrunk when those fields got added, so is omitted too + ("ptp_clock_caps", "adjust_phase" | "max_phase_adj" | "rsv") + if (loongarch64 || sparc64) => + { + true + } + _ => false, + } }); cfg.volatile_struct_field(|s, f| s.ident() == "aiocb" && f.ident() == "aio_buf"); cfg.skip_struct_field(move |struct_, field| { - let struct_ = struct_.ident(); - let field = field.ident(); - // this is actually a union on linux, so we can't represent it well and - // just insert some padding. - (struct_ == "siginfo_t" && field == "_pad") || - // musl names this __dummy1 but it's still there - (musl && struct_ == "glob_t" && field == "gl_flags") || - // musl seems to define this as an *anonymous* bitfield - (musl && struct_ == "statvfs" && field == "__f_unused") || - // sigev_notify_thread_id is actually part of a sigev_un union - (struct_ == "sigevent" && field == "sigev_notify_thread_id") || - // signalfd had SIGSYS fields added in Linux 4.18, but no libc release - // has them yet. - (struct_ == "signalfd_siginfo" && (field == "ssi_addr_lsb" || - field == "_pad2" || - field == "ssi_syscall" || - field == "ssi_call_addr" || - field == "ssi_arch")) || - // FIXME(musl): After musl 1.1.24, it have only one field `sched_priority`, - // while other fields become reserved. - (struct_ == "sched_param" && [ - "sched_ss_low_priority", - "sched_ss_repl_period", - "sched_ss_init_budget", - "sched_ss_max_repl", - ].contains(&field) && musl) || - // After musl 1.1.24, the type becomes `int` instead of `unsigned short`. - (struct_ == "ipc_perm" && field == "__seq" && old_musl && aarch64) || - // glibc uses unnamed fields here and Rust doesn't support that yet - (struct_ == "timex" && field.starts_with("__unused")) || - // FIXME(linux): It now takes mode_t since glibc 2.31 on some targets. - (struct_ == "ipc_perm" && field == "mode" - && ((x86_64 || i686 || arm || riscv64) && gnu || x86_64_gnux32) - ) || - // the `u` field is in fact an anonymous union - (gnu && struct_ == "ptrace_syscall_info" && (field == "u" || field == "pad")) || - // the vregs field is a `__uint128_t` C's type. - (struct_ == "user_fpsimd_struct" && field == "vregs") || - // Linux >= 5.11 tweaked the `svm_zero` field of the `sockaddr_vm` struct. - // https://github.com/torvalds/linux/commit/dc8eeef73b63ed8988224ba6b5ed19a615163a7f - (struct_ == "sockaddr_vm" && field == "svm_zero") || - // the `ifr_ifru` field is an anonymous union - (struct_ == "ifreq" && field == "ifr_ifru") || - // the `ifc_ifcu` field is an anonymous union - (struct_ == "ifconf" && field == "ifc_ifcu") || - // glibc uses a single array `uregs` instead of individual fields. - (struct_ == "user_regs" && arm) || - // the `ifr_ifrn` field is an anonymous union - (struct_ == "iwreq" && field == "ifr_ifrn") || - // the `key` field is a zero-sized array - (struct_ == "iw_encode_ext" && field == "key") || - // the `tcpi_snd_rcv_wscale` map two bitfield fields stored in a u8 - (struct_ == "tcp_info" && field == "tcpi_snd_rcv_wscale") || - // the `tcpi_delivery_fastopen_bitfields` map two bitfield fields stored in a u8 - (musl && struct_ == "tcp_info" && field == "tcpi_delivery_fastopen_bitfields") || - // either fsid_t or int[2] type - (struct_ == "fanotify_event_info_fid" && field == "fsid") || - // `handle` is a flexible array member - (struct_ == "fanotify_event_info_fid" && field == "handle") || - // `anonymous_1` is an anonymous union - (struct_ == "ptp_perout_request" && field == "anonymous_1") || - // `anonymous_2` is an anonymous union - (struct_ == "ptp_perout_request" && field == "anonymous_2") || - // FIXME(linux): `adjust_phase` requires >= 5.7 kernel headers - // FIXME(linux): `max_phase_adj` requires >= 5.19 kernel headers - // the rsv field shrunk when those fields got added, so is omitted too - (struct_ == "ptp_clock_caps" && (loongarch64 || sparc64) && (["adjust_phase", "max_phase_adj", "rsv"].contains(&field))) || - // invalid application of 'sizeof' to incomplete type 'long unsigned int[]' - (musl && struct_ == "mcontext_t" && field == "__extcontext" && loongarch64) || - // FIXME(#4121): a new field was added from `f_spare` - (struct_ == "statvfs" && field == "__f_spare") || - (struct_ == "statvfs64" && field == "__f_spare") || - // the `xsk_tx_metadata_union` field is an anonymous union - (struct_ == "xsk_tx_metadata" && field == "xsk_tx_metadata_union") || - // After musl 1.2.0, the type becomes `int` instead of `long`. - (musl && struct_ == "utmpx" && field == "ut_session") || - // `frames` is a flexible array member - (struct_ == "bcm_msg_head" && field == "frames") || - // FAM - (struct_ == "af_alg_iv" && field == "iv") + match (struct_.ident(), field.ident()) { + // this is actually a union on linux, so we can't represent it well and + // just insert some padding. + ("siginfo_t", "_pad") => true, + // musl names this __dummy1 but it's still there + ("glob_t", "gl_flags") if musl => true, + // musl seems to define this as an *anonymous* bitfield + ("statvfs", "__f_unused") if musl => true, + // sigev_notify_thread_id is actually part of a sigev_un union + ("sigevent", "sigev_notify_thread_id") => true, + // signalfd had SIGSYS fields added in Linux 4.18, but no libc release + // has them yet. + ( + "signalfd_siginfo", + "ssi_addr_lsb" | "_pad2" | "ssi_syscall" | "ssi_call_addr" | "ssi_arch", + ) => true, + // FIXME(musl): After musl 1.1.24, it have only one field `sched_priority`, + // while other fields become reserved. + ( + "sched_param", + "sched_ss_low_priority" + | "sched_ss_repl_period" + | "sched_ss_init_budget" + | "sched_ss_max_repl", + ) if musl => true, + // After musl 1.1.24, the type becomes `int` instead of `unsigned short`. + ("ipc_perm", "__seq") if old_musl && aarch64 => true, + // glibc uses unnamed fields here and Rust doesn't support that yet + ("timex", f) if f.starts_with("__unused") => true, + // // FIXME(linux): It now takes mode_t since glibc 2.31 on some targets. + ("ipc_perm", "mode") + if ((x86_64 || i686 || arm || riscv64) && gnu || x86_64_gnux32) => + { + true + } + // the `u` field is in fact an anonymous union + ("ptrace_syscall_info", "u" | "pad") if gnu => true, + // the vregs field is a `__uint128_t` C's type. + ("user_fpsimd_struct", "vregs") => true, + // Linux >= 5.11 tweaked the `svm_zero` field of the `sockaddr_vm` struct. + // https://github.com/torvalds/linux/commit/dc8eeef73b63ed8988224ba6b5ed19a615163a7f + ("sockaddr_vm", "svm_zero") => true, + // Linux >= 5.11 had added the svm_flags field to the `sockaddr_vm` struct. + ("sockaddr_vm", "svm_flags") => true, + // the `ifr_ifru` field is an anonymous union + ("ifreq", "ifr_ifru") => true, + // the `ifc_ifcu` field is an anonymous union + ("ifconf", "ifc_ifcu") => true, + // glibc uses a single array `uregs` instead of individual fields. + ("user_regs", _) if arm => true, + // the `ifr_ifrn` field is an anonymous union + ("iwreq", "ifr_ifrn") => true, + // the `key` field is a zero-sized array + ("iw_encode_ext", "key") => true, + // the `tcpi_snd_rcv_wscale` map two bitfield fields stored in a u8 + ("tcp_info", "tcpi_snd_rcv_wscale") => true, + // the `tcpi_delivery_fastopen_bitfields` map two bitfield fields stored in a u8 + ("tcp_info", "tcpi_delivery_fastopen_bitfields") if musl => true, + // either fsid_t or int[2] type + ("fanotify_event_info_fid", "fsid") => true, + // `handle` is a flexible array member + ("fanotify_event_info_fid", "handle") => true, + // `anonymous_1` is an anonymous union + ("ptp_perout_request", "anonymous_1") => true, + // `anonymous_2` is an anonymous union + ("ptp_perout_request", "anonymous_2") => true, + // FIXME(linux): `adjust_phase` requires >= 5.7 kernel headers + // FIXME(linux): `max_phase_adj` requires >= 5.19 kernel headers + // the rsv field shrunk when those fields got added, so is omitted too + ("ptp_clock_caps", "adjust_phase" | "max_phase_adj" | "rsv") + if loongarch64 || sparc64 => + { + true + } + // invalid application of 'sizeof' to incomplete type 'long unsigned int[]' + ("mcontext_t", "__extcontext") if musl && loongarch64 => true, + // FIXME(#4121): a new field was added from `f_spare` + ("statvfs", "__f_spare") => true, + ("statvfs64", "__f_spare") => true, + // the `xsk_tx_metadata_union` field is an anonymous union + ("xsk_tx_metadata", "xsk_tx_metadata_union") => true, + // After musl 1.2.0, the type becomes `int` instead of `long`. + ("utmpx", "ut_session") if musl => true, + // `frames` is a flexible array member + ("bcm_msg_head", "frames") => true, + // FAM + ("af_alg_iv", "iv") => true, + _ => false, + } }); cfg.skip_roundtrip(move |s| match s { From 3d46897f0da813600322ee8dfcd746725245c228 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 15 Feb 2025 23:02:09 +0000 Subject: [PATCH 1046/1228] macros: Update `offset_of!` - assert! access from core. - nested unsafe raises an error on older rust compilers on CI. [ re-split commits as authorized by the author, and update the commit summary - Trevor ] (backport ) (cherry picked from commit c20475c60e3a7f5223db15c8fb3c76f67be9291f) --- src/macros.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/macros.rs b/src/macros.rs index 019a15a2ec728..9d3c0e7b534eb 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -456,10 +456,12 @@ macro_rules! offset_of { let $Ty { $field: _, .. }; let data = core::mem::MaybeUninit::<$Ty>::uninit(); let ptr = data.as_ptr(); + // nested unsafe, see f! + #[allow(unused_unsafe)] // SAFETY: computed address is inbounds since we have a stack alloc for T let fptr = unsafe { core::ptr::addr_of!((*ptr).$field) }; let off = (fptr as usize).checked_sub(ptr as usize).unwrap(); - assert!(off <= core::mem::size_of::<$Ty>()); + core::assert!(off <= core::mem::size_of::<$Ty>()); off }}; } From e861a36a949fb0a1480d39eb075221eddbe40cbb Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 15 Feb 2025 23:02:09 +0000 Subject: [PATCH 1047/1228] adding SUN_LEN macro to linux glibc/musl [glibc ref](https://github.com/bminor/glibc/blob/1b6f868625403d6b7683af840e87d2b18d5d7731/socket/sys/un.h#L41) [musl ref](https://github.com/bminor/musl/blob/c47ad25ea3b484e10326f933e927c0bc8cded3da/include/sys/un.h#L24) [ re-split commits as authorized by the author - Trevor ] (backport ) (cherry picked from commit 34d6637bd07755b02b14ce1249ebe0d6a3fa48cd) --- libc-test/semver/linux-gnu.txt | 1 + libc-test/semver/linux-musl.txt | 1 + src/unix/linux_like/linux/mod.rs | 10 ++++++++++ 3 files changed, 12 insertions(+) diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 0fc9ace022818..0ef7c37782c2b 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -454,6 +454,7 @@ STA_PPSWANDER STA_RONLY STA_UNSYNC ST_RELATIME +SUN_LEN SYSFS_MAGIC TCA_CHAIN TCA_DUMP_INVISIBLE diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index 8497fe9cf529a..1a5678eed6657 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -39,6 +39,7 @@ RWF_HIPRI RWF_NOAPPEND RWF_NOWAIT RWF_SYNC +SUN_LEN USER_PROCESS UT_HOSTSIZE UT_LINESIZE diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 8a0b836d4c18e..5373c5cc96a33 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -5655,6 +5655,16 @@ f! { pub fn ELF64_R_INFO(sym: Elf64_Xword, t: Elf64_Xword) -> Elf64_Xword { sym << (32 + t) } + + #[cfg(target_env = "gnu")] + pub fn SUN_LEN(s: crate::sockaddr_un) -> usize { + offset_of!(crate::sockaddr_un, sun_path) + crate::strlen(s.sun_path.as_ptr()) + } + + #[cfg(target_env = "musl")] + pub fn SUN_LEN(s: crate::sockaddr_un) -> usize { + 2 * crate::strlen(s.sun_path.as_ptr()) + } } safe_f! { From dada818d2e05d2fc896e0a92d6c558c8a9636dda Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 3 Dec 2025 00:40:29 -0500 Subject: [PATCH 1048/1228] build: Introduce `env_flag` to allow setting flags false (backport ) (cherry picked from commit 598155629d4f0b42bec72cbd2af30d0abd5e54b7) --- build.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/build.rs b/build.rs index 9e1dd66b59923..e04b5ba640355 100644 --- a/build.rs +++ b/build.rs @@ -1,3 +1,4 @@ +use std::env::VarError; use std::process::{ Command, Output, @@ -53,7 +54,7 @@ fn main() { println!("cargo:rerun-if-changed=build.rs"); let (rustc_minor_ver, _is_nightly) = rustc_minor_nightly(); - let libc_ci = env::var("LIBC_CI").is_ok(); + let libc_ci = env_flag("LIBC_CI"); let target_env = env::var("CARGO_CFG_TARGET_ENV").unwrap_or_default(); let target_os = env::var("CARGO_CFG_TARGET_OS").unwrap_or_default(); let target_ptr_width = env::var("CARGO_CFG_TARGET_POINTER_WIDTH").unwrap_or_default(); @@ -98,14 +99,14 @@ fn main() { _ => (), } - let musl_v1_2_3 = env::var("RUST_LIBC_UNSTABLE_MUSL_V1_2_3").is_ok(); + let musl_v1_2_3 = env_flag("RUST_LIBC_UNSTABLE_MUSL_V1_2_3"); println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_MUSL_V1_2_3"); // loongarch64 and ohos have already updated if musl_v1_2_3 || target_arch == "loongarch64" || target_env == "ohos" { // FIXME(musl): enable time64 api as well set_cfg("musl_v1_2_3"); } - let linux_time_bits64 = env::var("RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64").is_ok(); + let linux_time_bits64 = env_flag("RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64"); println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64"); if linux_time_bits64 { set_cfg("linux_time_bits64"); @@ -308,3 +309,13 @@ fn set_cfg(cfg: &str) { ); println!("cargo:rustc-cfg={cfg}"); } + +/// Return true if the env is set to a value other than `0`. +fn env_flag(key: &str) -> bool { + match env::var(key) { + Ok(x) if x == "0" => false, + Err(VarError::NotPresent) => false, + Err(VarError::NotUnicode(_)) => panic!("non-unicode var for `{key}`"), + Ok(_) => true, + } +} From b651ce8dff7161bbf94cce07096264ad8830323d Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 3 Dec 2025 00:54:51 -0500 Subject: [PATCH 1049/1228] ci: Require specifying version in `install-musl.sh` Getting this information from an env has been problematic since `docker build` doesn't pass the environment. Switch to expecting an explicit arg and fail if unset, so we don't accidentally regress. With this change, new musl tests are correctly getting run in CI. (backport ) (cherry picked from commit 29c5b94554c3c007c2a13c7d43ed15c539cf91fc) --- .../aarch64-unknown-linux-musl/Dockerfile | 3 ++- .../arm-unknown-linux-musleabihf/Dockerfile | 3 ++- ci/docker/i686-unknown-linux-musl/Dockerfile | 3 ++- .../loongarch64-unknown-linux-musl/Dockerfile | 3 ++- .../powerpc64le-unknown-linux-musl/Dockerfile | 3 ++- ci/docker/s390x-unknown-linux-musl/Dockerfile | 3 ++- .../x86_64-unknown-linux-musl/Dockerfile | 3 ++- ci/install-musl.sh | 15 +++++++++---- ci/prep-semver-baseline.sh | 2 +- ci/run-docker.sh | 22 ++++++++++++++++--- 10 files changed, 45 insertions(+), 15 deletions(-) diff --git a/ci/docker/aarch64-unknown-linux-musl/Dockerfile b/ci/docker/aarch64-unknown-linux-musl/Dockerfile index 3bbf58aa3b8b6..a6eecf392a759 100644 --- a/ci/docker/aarch64-unknown-linux-musl/Dockerfile +++ b/ci/docker/aarch64-unknown-linux-musl/Dockerfile @@ -13,8 +13,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ rsync \ xz-utils +ARG MUSL_VERSION COPY install-musl.sh / -RUN /install-musl.sh aarch64 +RUN /install-musl.sh aarch64 "$MUSL_VERSION" # FIXME: shouldn't need the `-lgcc` here, shouldn't that be in std? ENV PATH=$PATH:/musl-aarch64/bin:/rust/bin \ diff --git a/ci/docker/arm-unknown-linux-musleabihf/Dockerfile b/ci/docker/arm-unknown-linux-musleabihf/Dockerfile index e4628e8befbd0..e796cabbdb735 100644 --- a/ci/docker/arm-unknown-linux-musleabihf/Dockerfile +++ b/ci/docker/arm-unknown-linux-musleabihf/Dockerfile @@ -16,8 +16,9 @@ RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ rsync \ xz-utils +ARG MUSL_VERSION COPY install-musl.sh / -RUN /install-musl.sh arm +RUN /install-musl.sh arm "$MUSL_VERSION" ENV PATH=$PATH:/musl-arm/bin:/rust/bin \ CC_arm_unknown_linux_musleabihf=musl-gcc \ diff --git a/ci/docker/i686-unknown-linux-musl/Dockerfile b/ci/docker/i686-unknown-linux-musl/Dockerfile index 82f2b786eda20..b4e3c919fdb66 100644 --- a/ci/docker/i686-unknown-linux-musl/Dockerfile +++ b/ci/docker/i686-unknown-linux-musl/Dockerfile @@ -16,8 +16,9 @@ RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ rsync \ xz-utils +ARG MUSL_VERSION COPY install-musl.sh / -RUN /install-musl.sh i686 +RUN /install-musl.sh i686 "$MUSL_VERSION" ENV PATH=$PATH:/musl-i686/bin:/rust/bin \ CC_i686_unknown_linux_musl=musl-gcc \ diff --git a/ci/docker/loongarch64-unknown-linux-musl/Dockerfile b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile index dcf75b428a290..37786e09796dd 100644 --- a/ci/docker/loongarch64-unknown-linux-musl/Dockerfile +++ b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile @@ -13,8 +13,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ rsync \ xz-utils +ARG MUSL_VERSION COPY install-musl.sh / -RUN /install-musl.sh loongarch64 +RUN /install-musl.sh loongarch64 "$MUSL_VERSION" ENV CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_MUSL_LINKER=musl-gcc \ CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_MUSL_RUNNER="qemu-loongarch64" \ diff --git a/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile b/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile index c21ce6a3d5097..8433df4108b9d 100644 --- a/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile +++ b/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile @@ -13,8 +13,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ rsync \ xz-utils +ARG MUSL_VERSION COPY install-musl.sh / -RUN /install-musl.sh powerpc64le +RUN /install-musl.sh powerpc64le "$MUSL_VERSION" # FIXME: shouldn't need the `-lgcc` here, shouldn't that be in std? ENV PATH=$PATH:/musl-powerpc64/bin:/rust/bin \ diff --git a/ci/docker/s390x-unknown-linux-musl/Dockerfile b/ci/docker/s390x-unknown-linux-musl/Dockerfile index 58133e216c840..7ee0df580c47c 100644 --- a/ci/docker/s390x-unknown-linux-musl/Dockerfile +++ b/ci/docker/s390x-unknown-linux-musl/Dockerfile @@ -10,8 +10,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ patch \ rsync +ARG MUSL_VERSION COPY install-musl.sh / -RUN /install-musl.sh s390x +RUN /install-musl.sh s390x "$MUSL_VERSION" # 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 \ diff --git a/ci/docker/x86_64-unknown-linux-musl/Dockerfile b/ci/docker/x86_64-unknown-linux-musl/Dockerfile index 5b524c31eff79..308fc3bde1e34 100644 --- a/ci/docker/x86_64-unknown-linux-musl/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-musl/Dockerfile @@ -11,8 +11,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ rsync \ xz-utils +ARG MUSL_VERSION COPY install-musl.sh / -RUN /install-musl.sh x86_64 +RUN /install-musl.sh x86_64 "$MUSL_VERSION" ENV PATH=$PATH:/musl-x86_64/bin:/rust/bin \ RUSTFLAGS="-L /musl-x86_64/lib" diff --git a/ci/install-musl.sh b/ci/install-musl.sh index b714672938472..b71e4f6139559 100755 --- a/ci/install-musl.sh +++ b/ci/install-musl.sh @@ -5,15 +5,22 @@ set -eux +arch="$1" +version="$2" old_musl=1.1.24 new_musl=1.2.5 -case ${1} in +case "$arch" in loongarch64) musl_version="$new_musl" ;; *) - [ -n "${RUST_LIBC_UNSTABLE_MUSL_V1_2_3:-}" ] && - musl_version="$new_musl" || - musl_version="$old_musl" + case "$version" in + old) musl_version="$old_musl" ;; + new) musl_version="$new_musl" ;; + *) + echo "musl version must be set to either 'old' or 'new'" + exit 1 + ;; + esac ;; esac diff --git a/ci/prep-semver-baseline.sh b/ci/prep-semver-baseline.sh index 7d7a3333fd3b6..d3d307e418669 100755 --- a/ci/prep-semver-baseline.sh +++ b/ci/prep-semver-baseline.sh @@ -21,7 +21,7 @@ fi # Find the most recent version matching a pattern. version=$( echo "$index" | - jq -er --slurp --arg pat "$pat" ' + jq -er --slurp --arg pat "$pat" ' map(select(.vers | test($pat))) | last | debug("version:", .) diff --git a/ci/run-docker.sh b/ci/run-docker.sh index c34bcff6ed786..7990875d58434 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # Disable SC2086 as it confuses the docker command. # shellcheck disable=SC2086 @@ -27,10 +27,26 @@ if [ "${CI:-0}" != "0" ] && [ "$target" = "aarch64-linux-android" ]; then fi run() { - echo "Building docker container for target $target" + run_target="$1" + echo "Building docker container for target $run_target" + + build_args=( + "--tag=libc-$run_target" + "--file=ci/docker/$run_target/Dockerfile" + "ci/" + ) + + if [[ "$run_target" = *"musl"* ]]; then + if [ -n "${RUST_LIBC_UNSTABLE_MUSL_V1_2_3:-}" ]; then + build_args+=("--build-arg=MUSL_VERSION=new") + else + build_args+=("--build-arg=MUSL_VERSION=old") + fi + fi # use -f so we can use ci/ as build context - docker build -t "libc-$target" -f "ci/docker/$target/Dockerfile" ci/ + docker build "${build_args[@]}" + mkdir -p target if [ -w /dev/kvm ]; then kvm="--volume /dev/kvm:/dev/kvm" From a9474f5f1fc09e6e969d631427adbc21bbba0c23 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 3 Dec 2025 03:12:09 -0500 Subject: [PATCH 1050/1228] musl: Fix the value of `CPU_SETSIZE` on musl 1.2+ Link: https://github.com/kraj/musl/blob/ff441c9ddfefbb94e5881ddd5112b24a944dc36c/include/sched.h#L126 (backport ) (cherry picked from commit 5e125a1007026a2ad86086105143409f8cf72611) --- src/unix/linux_like/linux/musl/mod.rs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 3c5a161418d6f..a4f6cdf573c2c 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -582,11 +582,8 @@ pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -// FIXME(musl): Value is 1024 for all architectures since 1.2.4 -#[cfg(not(target_arch = "loongarch64"))] -pub const CPU_SETSIZE: c_int = 128; -#[cfg(target_arch = "loongarch64")] -pub const CPU_SETSIZE: c_int = 1024; +// Value was changed in 1.2.4 +pub const CPU_SETSIZE: c_int = if cfg!(musl_v1_2_3) { 1024 } else { 128 }; pub const PTRACE_TRACEME: c_int = 0; pub const PTRACE_PEEKTEXT: c_int = 1; From 5a24e8c0fe917f50bac08cec63da1243048b7e35 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 3 Dec 2025 03:41:42 -0500 Subject: [PATCH 1051/1228] test: Skip `input_event.time` on recent musl (backport ) (cherry picked from commit 34e758376862382e0da205c918160f398e9e72b5) --- libc-test/build.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 23a9d4ae6eac1..696342da4f50a 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3839,6 +3839,9 @@ fn test_linux(target: &str) { let mips = target.contains("mips"); let musl_v1_2_3 = env::var("RUST_LIBC_UNSTABLE_MUSL_V1_2_3").is_ok(); + if musl_v1_2_3 { + assert!(musl); + } let old_musl = musl && !musl_v1_2_3; let mut cfg = ctest_cfg(); @@ -4850,6 +4853,8 @@ fn test_linux(target: &str) { ("xsk_tx_metadata", "xsk_tx_metadata_union") => true, // After musl 1.2.0, the type becomes `int` instead of `long`. ("utmpx", "ut_session") if musl => true, + // FIXME(musl,time): changed with the musl time updates + ("input_event", "time") if musl_v1_2_3 => true, // `frames` is a flexible array member ("bcm_msg_head", "frames") => true, // FAM From a127412aed71fb2ac59049ce0a2c8b14817dbc85 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 3 Dec 2025 04:33:21 -0500 Subject: [PATCH 1052/1228] test: musl: Skip time64-dependent API on new musl This is all intended to be removed once the PR adding our version of `_REDIR_TIME64` lands. (backport ) (cherry picked from commit 72fe537010f9600bfedbb43af89bdb8ff967317e) --- libc-test/build.rs | 77 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 696342da4f50a..3e236a53e9d27 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4907,6 +4907,83 @@ fn test_linux(target: &str) { _ => false, }); + // FIXME(musl,time): these should be resolved with the time64 updates + if musl_v1_2_3 { + // Time primitives changed, as did structs containing them + cfg.skip_alias(|ty| match ty.ident() { + "time_t" | "suseconds_t" => true, + _ => false, + }); + cfg.skip_struct(|s| match s.ident() { + "utimbuf" | "timeval" | "timespec" | "rusage" | "itimerval" | "itimerspec" + | "timex" | "ntptimeval" | "stat" | "shmid_ds" | "msqid_ds" => true, + _ => false, + }); + + cfg.skip_const(|c| match c.ident() { + // Changed syscall numbers under `linux_time_bits64` + "SO_TIMESTAMP" | "SO_TIMESTAMPNS" | "SO_TIMESTAMPING" | "SO_RCVTIMEO" + | "SO_SNDTIMEO" => true, + // Derived from `SO_` constants + "SCM_TIMESTAMP" | "SCM_TIMESTAMPNS" | "SCM_TIMESTAMPING" => true, + // `IPC_STAT` and derived values + "IPC_STAT" | "SEM_STAT" | "SEM_STAT_ANY" => true, + _ => false, + }); + + // Functions that got a new link name + cfg.skip_fn_ptrcheck(|f| match f { + "pthread_mutex_timedlock" + | "recvmmsg" + | "fstat" + | "stat" + | "fstatat" + | "nanosleep" + | "utime" + | "lstat" + | "getrusage" + | "pthread_cond_timedwait" + | "utimes" + | "dlsym" + | "gmtime_r" + | "localtime_r" + | "mktime" + | "time" + | "gmtime" + | "localtime" + | "difftime" + | "timegm" + | "select" + | "adjtime" + | "pselect" + | "clock_getres" + | "clock_gettime" + | "clock_settime" + | "futimens" + | "utimensat" + | "wait4" + | "aio_suspend" + | "futimes" + | "mq_timedreceive" + | "mq_timedsend" + | "lutimes" + | "timerfd_gettime" + | "timerfd_settime" + | "sigtimedwait" + | "settimeofday" + | "sched_rr_get_interval" + | "sem_timedwait" + | "ppoll" + | "clock_nanosleep" + | "timer_gettime" + | "timer_settime" + | "gettimeofday" + | "adjtimex" + | "clock_adjtime" => true, + _ => false, + }); + } + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); test_linux_like_apis(target); From 7a46bd3e7392975513b901e14d805f15c34871a8 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 3 Dec 2025 06:40:16 -0500 Subject: [PATCH 1053/1228] build: Remove `RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64` Currently this isn't used for any testing, and there isn't really a time when it would be useful to set this: it is always set by the libc in practice. Thus, remove it. (backport ) (cherry picked from commit a97bea577c4e5d0452805765722311b55f2735ef) --- build.rs | 5 ----- ci/verify-build.py | 5 ----- 2 files changed, 10 deletions(-) diff --git a/build.rs b/build.rs index e04b5ba640355..3277ae73df951 100644 --- a/build.rs +++ b/build.rs @@ -106,11 +106,6 @@ fn main() { // FIXME(musl): enable time64 api as well set_cfg("musl_v1_2_3"); } - let linux_time_bits64 = env_flag("RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64"); - println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64"); - if linux_time_bits64 { - set_cfg("linux_time_bits64"); - } println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS"); println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_GNU_TIME_BITS"); if target_env == "gnu" diff --git a/ci/verify-build.py b/ci/verify-build.py index 40552e2689ee1..0e0ea0c25b2ca 100755 --- a/ci/verify-build.py +++ b/ci/verify-build.py @@ -390,11 +390,6 @@ def test_target(cfg: Cfg, target: Target) -> TargetResult: run(cmd, env=env) run([*cmd, "--features=extra_traits"], env=env) - # Check with different env for 64-bit time_t - if target_os == "linux" and target_bits == "32": - # Equivalent of __USE_TIME_BITS64 - run(cmd, env=env | {"RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64": "1"}) - if "gnu" in target_env and target_bits == "32": # Equivalent of _FILE_OFFSET_BITS=64 run(cmd, env=env | {"RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS": "64"}) From 2749a2295d33070e55a1ff06d4b1c490734ea716 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 3 Dec 2025 07:21:56 -0500 Subject: [PATCH 1054/1228] test: Remove unneeded `unsafe` blocks (backport ) (cherry picked from commit dfd6ab9a24d2a84749517d14d92a7fcf7d530c00) --- libc-test/tests/linux_kernel_version.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libc-test/tests/linux_kernel_version.rs b/libc-test/tests/linux_kernel_version.rs index eadc4095bee96..10e504afe55ac 100644 --- a/libc-test/tests/linux_kernel_version.rs +++ b/libc-test/tests/linux_kernel_version.rs @@ -6,11 +6,11 @@ mod t { #[test] fn test_kernel_version() { - assert_eq!(unsafe { libc::KERNEL_VERSION(6, 0, 0) }, 393216); + assert_eq!(libc::KERNEL_VERSION(6, 0, 0), 393216); // Check that the patch level saturates - assert_eq!(unsafe { libc::KERNEL_VERSION(6, 0, 255) }, 393471); - assert_eq!(unsafe { libc::KERNEL_VERSION(6, 0, 256) }, 393471); - assert_eq!(unsafe { libc::KERNEL_VERSION(6, 0, 300) }, 393471); - assert_eq!(unsafe { libc::KERNEL_VERSION(6, 0, u32::MAX) }, 393471); + assert_eq!(libc::KERNEL_VERSION(6, 0, 255), 393471); + assert_eq!(libc::KERNEL_VERSION(6, 0, 256), 393471); + assert_eq!(libc::KERNEL_VERSION(6, 0, 300), 393471); + assert_eq!(libc::KERNEL_VERSION(6, 0, u32::MAX), 393471); } } From 74f1570492a5bced72ec75e8468c4f167f03021b Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 3 Dec 2025 07:02:44 -0500 Subject: [PATCH 1055/1228] ci: Forward more RUST and CARGO env to docker (backport ) (cherry picked from commit fb1901d11011ff327e1e25cc1f2a1b553f1379c6) --- ci/run-docker.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ci/run-docker.sh b/ci/run-docker.sh index 7990875d58434..9f98e029184e1 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -59,9 +59,13 @@ run() { --user "$(id -u)":"$(id -g)" \ --env LIBC_CI \ --env LIBC_CI_ZBUILD_STD \ + --env RUSTDOCFLAGS \ + --env RUST_BACKTRACE \ --env RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS \ --env RUST_LIBC_UNSTABLE_GNU_TIME_BITS \ --env RUST_LIBC_UNSTABLE_MUSL_V1_2_3 \ + --env CARGO_TERM_COLOR \ + --env CARGO_TERM_VERBOSE \ --env CARGO_HOME=/cargo \ --env CARGO_TARGET_DIR=/checkout/target \ --volume "$CARGO_HOME":/cargo \ From 6110acfa53916571abe42b5f465837174ca9ee09 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 3 Dec 2025 07:02:44 -0500 Subject: [PATCH 1056/1228] ci: Forward `RUSTFLAGS` to docker via `EXTRA_RUSTFLAGS` This needs to be a separate environment variable since otherwise it overwrites `RUSTFLAGS` as set in CI. This is currently happening, which is why warnings were not getting denied. (backport ) (cherry picked from commit cd1d68be25bde7d992357b1257561e92dc3f0c2b) --- ci/docker/aarch64-unknown-linux-musl/Dockerfile | 4 ++-- ci/docker/arm-unknown-linux-musleabihf/Dockerfile | 2 +- ci/docker/i686-unknown-linux-musl/Dockerfile | 2 +- ci/docker/loongarch64-unknown-linux-musl/Dockerfile | 8 ++++---- ci/docker/powerpc64le-unknown-linux-musl/Dockerfile | 4 ++-- ci/docker/s390x-unknown-linux-musl/Dockerfile | 6 +++--- ci/docker/wasm32-wasip1/Dockerfile | 2 +- ci/docker/wasm32-wasip2/Dockerfile | 2 +- ci/docker/x86_64-unknown-linux-musl/Dockerfile | 2 +- ci/run-docker.sh | 1 + ci/run.sh | 4 ++++ 11 files changed, 21 insertions(+), 16 deletions(-) diff --git a/ci/docker/aarch64-unknown-linux-musl/Dockerfile b/ci/docker/aarch64-unknown-linux-musl/Dockerfile index a6eecf392a759..15c38af65ce92 100644 --- a/ci/docker/aarch64-unknown-linux-musl/Dockerfile +++ b/ci/docker/aarch64-unknown-linux-musl/Dockerfile @@ -20,6 +20,6 @@ RUN /install-musl.sh aarch64 "$MUSL_VERSION" # 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' \ CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=musl-gcc \ - CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUNNER="qemu-aarch64 -L /musl-aarch64" + CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUNNER="qemu-aarch64 -L /musl-aarch64" \ + EXTRA_RUSTFLAGS="-Clink-args=-lgcc -L /musl-aarch64/lib" diff --git a/ci/docker/arm-unknown-linux-musleabihf/Dockerfile b/ci/docker/arm-unknown-linux-musleabihf/Dockerfile index e796cabbdb735..5d3d0aed50a1b 100644 --- a/ci/docker/arm-unknown-linux-musleabihf/Dockerfile +++ b/ci/docker/arm-unknown-linux-musleabihf/Dockerfile @@ -24,4 +24,4 @@ ENV PATH=$PATH:/musl-arm/bin:/rust/bin \ CC_arm_unknown_linux_musleabihf=musl-gcc \ CARGO_TARGET_ARM_UNKNOWN_LINUX_MUSLEABIHF_LINKER=musl-gcc \ CARGO_TARGET_ARM_UNKNOWN_LINUX_MUSLEABIHF_RUNNER="qemu-arm -L /musl-arm" \ - RUSTFLAGS="-L /musl-arm/lib" + EXTRA_RUSTFLAGS="-L /musl-arm/lib" diff --git a/ci/docker/i686-unknown-linux-musl/Dockerfile b/ci/docker/i686-unknown-linux-musl/Dockerfile index b4e3c919fdb66..ce3abd0e538c8 100644 --- a/ci/docker/i686-unknown-linux-musl/Dockerfile +++ b/ci/docker/i686-unknown-linux-musl/Dockerfile @@ -22,4 +22,4 @@ RUN /install-musl.sh i686 "$MUSL_VERSION" ENV PATH=$PATH:/musl-i686/bin:/rust/bin \ CC_i686_unknown_linux_musl=musl-gcc \ - RUSTFLAGS="-L /musl-i686/lib" + EXTRA_RUSTFLAGS="-L /musl-i686/lib" diff --git a/ci/docker/loongarch64-unknown-linux-musl/Dockerfile b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile index 37786e09796dd..c3066e027a40d 100644 --- a/ci/docker/loongarch64-unknown-linux-musl/Dockerfile +++ b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile @@ -17,10 +17,10 @@ ARG MUSL_VERSION COPY install-musl.sh / RUN /install-musl.sh loongarch64 "$MUSL_VERSION" -ENV CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_MUSL_LINKER=musl-gcc \ - CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_MUSL_RUNNER="qemu-loongarch64" \ - CC_loongarch64_unknown_linux_musl=musl-gcc \ +ENV CC_loongarch64_unknown_linux_musl=musl-gcc \ CFLAGS_loongarch64_unknown_linux_musl="-mabi=lp64d -fPIC" \ - RUSTFLAGS="-Ctarget-feature=+crt-static" \ + CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_MUSL_LINKER=musl-gcc \ + CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_MUSL_RUNNER="qemu-loongarch64" \ + EXTRA_RUSTFLAGS="-Ctarget-feature=+crt-static" \ QEMU_LD_PREFIX=/musl-loongarch64 \ PATH=$PATH:/musl-loongarch64/bin:/rust/bin diff --git a/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile b/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile index 8433df4108b9d..10cd93981a181 100644 --- a/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile +++ b/ci/docker/powerpc64le-unknown-linux-musl/Dockerfile @@ -20,6 +20,6 @@ RUN /install-musl.sh powerpc64le "$MUSL_VERSION" # FIXME: shouldn't need the `-lgcc` here, shouldn't that be in std? ENV PATH=$PATH:/musl-powerpc64/bin:/rust/bin \ CC_powerpc64le_unknown_linux_musl=musl-gcc \ - RUSTFLAGS='-Clink-args=-lgcc -L /musl-powerpc64/lib' \ CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_MUSL_LINKER=musl-gcc \ - CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_MUSL_RUNNER="qemu-ppc64le -L /musl-powerpc64" + CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_MUSL_RUNNER="qemu-ppc64le -L /musl-powerpc64" \ + EXTRA_RUSTFLAGS="-Clink-args=-lgcc -L /musl-powerpc64/lib" diff --git a/ci/docker/s390x-unknown-linux-musl/Dockerfile b/ci/docker/s390x-unknown-linux-musl/Dockerfile index 7ee0df580c47c..385f71e5b9dd8 100644 --- a/ci/docker/s390x-unknown-linux-musl/Dockerfile +++ b/ci/docker/s390x-unknown-linux-musl/Dockerfile @@ -15,8 +15,8 @@ COPY install-musl.sh / RUN /install-musl.sh s390x "$MUSL_VERSION" # 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 \ +ENV CC_s390x_unknown_linux_gnu=musl-gcc \ + 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 \ - RUSTFLAGS='-Clink-args=-lgcc -L /musl-s390x/lib' \ + EXTRA_RUSTFLAGS="-Clink-args=-lgcc -L /musl-s390x/lib" \ PATH=$PATH:/musl-s390x/bin:/rust/bin diff --git a/ci/docker/wasm32-wasip1/Dockerfile b/ci/docker/wasm32-wasip1/Dockerfile index 93258ac7e4422..4da0e17554f8c 100644 --- a/ci/docker/wasm32-wasip1/Dockerfile +++ b/ci/docker/wasm32-wasip1/Dockerfile @@ -10,7 +10,7 @@ RUN /wasi.sh # library. ENV CARGO_TARGET_WASM32_WASIP1_RUNNER=wasmtime \ CARGO_TARGET_WASM32_WASIP1_LINKER=/opt/wasi-sdk/bin/clang \ - CARGO_TARGET_WASM32_WASIP1_RUSTFLAGS="-Clink-self-contained=n -lwasi-emulated-process-clocks" \ + EXTRA_RUSTFLAGS="-Clink-self-contained=n -lwasi-emulated-process-clocks" \ CC_wasm32_wasip1=/opt/wasi-sdk/bin/clang \ CFLAGS_wasm32_wasip1=-D_WASI_EMULATED_PROCESS_CLOCKS \ PATH=$PATH:/rust/bin:/wasmtime diff --git a/ci/docker/wasm32-wasip2/Dockerfile b/ci/docker/wasm32-wasip2/Dockerfile index a8da1e212333e..a240928fa1ae9 100644 --- a/ci/docker/wasm32-wasip2/Dockerfile +++ b/ci/docker/wasm32-wasip2/Dockerfile @@ -9,7 +9,7 @@ RUN /wasi.sh # itself, this should be fixed upstream. ENV CARGO_TARGET_WASM32_WASIP2_RUNNER=wasmtime \ CARGO_TARGET_WASM32_WASIP2_LINKER=/opt/wasi-sdk/bin/clang \ - CARGO_TARGET_WASM32_WASIP2_RUSTFLAGS="-Clink-self-contained=n -lwasi-emulated-process-clocks -Clink-arg=-Wl,--export,cabi_realloc" \ + EXTRA_RUSTFLAGS="-Clink-self-contained=n -lwasi-emulated-process-clocks -Clink-arg=-Wl,--export,cabi_realloc" \ CC_wasm32_wasip2=/opt/wasi-sdk/bin/clang \ CFLAGS_wasm32_wasip2=-D_WASI_EMULATED_PROCESS_CLOCKS \ PATH=$PATH:/rust/bin:/wasmtime diff --git a/ci/docker/x86_64-unknown-linux-musl/Dockerfile b/ci/docker/x86_64-unknown-linux-musl/Dockerfile index 308fc3bde1e34..ec993efd8e65b 100644 --- a/ci/docker/x86_64-unknown-linux-musl/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-musl/Dockerfile @@ -16,4 +16,4 @@ COPY install-musl.sh / RUN /install-musl.sh x86_64 "$MUSL_VERSION" ENV PATH=$PATH:/musl-x86_64/bin:/rust/bin \ - RUSTFLAGS="-L /musl-x86_64/lib" + EXTRA_RUSTFLAGS="-L /musl-x86_64/lib" diff --git a/ci/run-docker.sh b/ci/run-docker.sh index 9f98e029184e1..bf38ca260d278 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -59,6 +59,7 @@ run() { --user "$(id -u)":"$(id -g)" \ --env LIBC_CI \ --env LIBC_CI_ZBUILD_STD \ + --env RUSTFLAGS \ --env RUSTDOCFLAGS \ --env RUST_BACKTRACE \ --env RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS \ diff --git a/ci/run.sh b/ci/run.sh index 8a7abf2e20f77..ce6ca11f44391 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -8,6 +8,10 @@ set -eux target="$1" export RUST_BACKTRACE="${RUST_BACKTRACE:-1}" +# Add target-specific rustflags set in dockerfiles +export RUSTFLAGS="${EXTRA_RUSTFLAGS:-} ${RUSTFLAGS:-}" + +echo "RUSTFLAGS: '$RUSTFLAGS'" # For logging uname -a From ec54e22d2bd8746185c120b99d693303d898ab86 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 28 Dec 2025 10:00:55 +0000 Subject: [PATCH 1057/1228] test: Update the `ctest` dependency --- Cargo.lock | 6 +++--- libc-test/Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a1dc49a011a64..324954d084a93 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -100,9 +100,9 @@ version = "0.1.0" [[package]] name = "ctest" -version = "0.5.0-beta.2" +version = "0.5.0-beta.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2011d1b0af8c72339aab2847f4650561f4a2807ea3797c8abb7525dcbb1fbaf7" +checksum = "a41986fe714de2b29e44b072f0f6676a247e5469d9262811dfd1bf733482a3b6" dependencies = [ "askama", "cc", @@ -144,7 +144,7 @@ dependencies = [ "annotate-snippets", "cc", "cfg-if", - "ctest 0.5.0-beta.2", + "ctest 0.5.0-beta.3", "glob", "libc", "proc-macro2", diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 2f83b9659fae3..3494bfa3611d7 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -21,7 +21,7 @@ annotate-snippets = { version = "0.11.5", features = ["testing-colors"] } [build-dependencies] cc = "1.2.43" # Use the in-tree `ctest` from the `main` branch via crates.io -ctest = "0.5.0-beta.2" +ctest = "0.5.0-beta.3" regex = "1.12.2" [features] From 86e01bbaefff228957788029dfef4e82ab3a09d5 Mon Sep 17 00:00:00 2001 From: Marius Melzer Date: Thu, 26 Jun 2025 16:06:14 +0200 Subject: [PATCH 1058/1228] ci: fix docker mount volumes SE-Linux enabled systems (backport ) (cherry picked from commit 789b9357bafbfa063107cffd583d2dd5dfe0f6d0) --- ci/run-docker.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/run-docker.sh b/ci/run-docker.sh index bf38ca260d278..b376e8538a922 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -69,9 +69,9 @@ run() { --env CARGO_TERM_VERBOSE \ --env CARGO_HOME=/cargo \ --env CARGO_TARGET_DIR=/checkout/target \ - --volume "$CARGO_HOME":/cargo \ - --volume "$(rustc --print sysroot)":/rust:ro \ - --volume "$PWD":/checkout:ro \ + --volume "$CARGO_HOME":/cargo:Z \ + --volume "$(rustc --print sysroot)":/rust:ro,Z \ + --volume "$PWD":/checkout:ro,Z \ --volume "$PWD"/target:/checkout/target \ $kvm \ --init \ From 03bfe886e03315ee608feddf95e7c499e803b68c Mon Sep 17 00:00:00 2001 From: Marius Melzer Date: Mon, 3 Nov 2025 13:53:53 +0100 Subject: [PATCH 1059/1228] Separate L4Re from Linux code and enable tests The L4Re code was previously attached to the Linux code which was not correct in many ways. This commit separates the L4Re code and enables the libc-tests and includes the fixes for the failing tests. (backport ) (cherry picked from commit 2fe1d91f1822bfa27e83a25ad5f817b526319f15) --- libc-test/build.rs | 110 +- libc-test/semver/l4re.txt | 2660 +++++++++++++++++ src/unix/linux_like/l4re/mod.rs | 194 ++ src/unix/linux_like/l4re/uclibc/mod.rs | 535 ++++ src/unix/linux_like/l4re/uclibc/x86_64/mod.rs | 416 +++ src/unix/linux_like/linux/mod.rs | 2095 +------------ .../linux_like/linux/uclibc/x86_64/l4re.rs | 53 - .../linux_like/linux/uclibc/x86_64/mod.rs | 13 +- .../linux_like/linux/uclibc/x86_64/other.rs | 7 - src/unix/linux_like/linux_l4re_shared.rs | 1972 ++++++++++++ src/unix/linux_like/mod.rs | 226 +- src/unix/mod.rs | 20 +- 12 files changed, 6121 insertions(+), 2180 deletions(-) create mode 100644 libc-test/semver/l4re.txt create mode 100644 src/unix/linux_like/l4re/mod.rs create mode 100644 src/unix/linux_like/l4re/uclibc/mod.rs create mode 100644 src/unix/linux_like/l4re/uclibc/x86_64/mod.rs delete mode 100644 src/unix/linux_like/linux/uclibc/x86_64/l4re.rs delete mode 100644 src/unix/linux_like/linux/uclibc/x86_64/other.rs create mode 100644 src/unix/linux_like/linux_l4re_shared.rs diff --git a/libc-test/build.rs b/libc-test/build.rs index 3e236a53e9d27..69ddcd3ba27a3 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -64,6 +64,7 @@ fn do_ctest() { t if t.contains("emscripten") => test_emscripten(t), t if t.contains("freebsd") => test_freebsd(t), t if t.contains("haiku") => test_haiku(t), + t if t.contains("l4re") => test_linux(t), t if t.contains("linux") => test_linux(t), t if t.contains("netbsd") => test_netbsd(t), t if t.contains("openbsd") => test_openbsd(t), @@ -115,9 +116,10 @@ fn do_semver() { // NOTE: Android doesn't include the unix file (or the Linux file) because // there are some many definitions missing it's actually easier just to // maintain a file for Android. - // NOTE: AIX doesn't include the unix file because there are definitions - // missing on AIX. It is easier to maintain a file for AIX. - if family != os && !matches!(os.as_str(), "android" | "aix") && os != "vxworks" { + // NOTE: AIX and L4Re do not include the unix file because there are + // definitions missing on these systems. It is easier to maintain separate + // files for them. + if family != os && !matches!(os.as_str(), "android" | "aix" | "l4re") && os != "vxworks" { process_semver_file(&mut output, &mut semver_root, &family); } // We don't do semver for unknown targets. @@ -3805,19 +3807,28 @@ fn config_gnu_bits(target: &str, cfg: &mut ctest::TestGenerator) { } } +// This also covers the L4Re targets since they have a similar API surface fn test_linux(target: &str) { - assert!(target.contains("linux")); + assert!(target.contains("linux") || target.contains("l4re")); + + // target_os + let linux = target.contains("linux"); + let l4re = target.contains("l4re"); // target_env let gnu = target.contains("gnu"); let musl = target.contains("musl") || target.contains("ohos"); let uclibc = target.contains("uclibc"); - match (gnu, musl, uclibc) { - (true, false, false) => (), - (false, true, false) => (), - (false, false, true) => (), - (_, _, _) => panic!("linux target lib is gnu: {gnu}, musl: {musl}, uclibc: {uclibc}"), + match (l4re, gnu, musl, uclibc) { + (false, true, false, false) => (), + (false, false, true, false) => (), + (false, false, false, true) => (), + (true, false, false, true) => (), + (_, _, _, _) => panic!( + "{} target lib is gnu: {gnu}, musl: {musl}, uclibc: {uclibc}", + if linux { "linux" } else { "l4re" } + ), } let arm = target.contains("arm"); @@ -3855,6 +3866,11 @@ fn test_linux(target: &str) { .define("__GLIBC_USE_DEPRECATED_SCANF", None); config_gnu_bits(target, &mut cfg); + // The L4Re libc headers contain some L4Re helper functions which are not needed for the libc + // interface and must not be added to the libc crate + if l4re { + cfg.flag("-Wno-unused-function"); + } headers!( cfg, @@ -3874,11 +3890,11 @@ fn test_linux(target: &str) { "libgen.h", "limits.h", "link.h", - "linux/sysctl.h", + (!l4re, "linux/sysctl.h"), "locale.h", "malloc.h", "mntent.h", - "mqueue.h", + (!l4re, "mqueue.h"), "net/ethernet.h", "net/if.h", "net/if_arp.h", @@ -3888,6 +3904,7 @@ fn test_linux(target: &str) { "netinet/ip.h", "netinet/tcp.h", "netinet/udp.h", + (l4re, "netpacket/packet.h"), "poll.h", "pthread.h", "pty.h", @@ -3898,43 +3915,44 @@ fn test_linux(target: &str) { "semaphore.h", "shadow.h", "signal.h", - "spawn.h", - "stddef.h", + (!l4re, "spawn.h"), + (!l4re, "stddef.h"), "stdint.h", "stdio.h", "stdlib.h", "string.h", - "sys/epoll.h", - "sys/eventfd.h", + (l4re, "sys/auxv.h"), + (!l4re, "sys/epoll.h"), + (!l4re, "sys/eventfd.h"), "sys/file.h", - "sys/fsuid.h", - "sys/klog.h", - "sys/inotify.h", + (!l4re, "sys/fsuid.h"), + (!l4re, "sys/klog.h"), + (!l4re, "sys/inotify.h"), "sys/ioctl.h", "sys/ipc.h", "sys/mman.h", "sys/mount.h", - "sys/msg.h", - "sys/personality.h", + (!l4re, "sys/msg.h"), + (!l4re, "sys/personality.h"), "sys/prctl.h", - "sys/ptrace.h", - "sys/quota.h", - "sys/random.h", - "sys/reboot.h", + (!l4re, "sys/ptrace.h"), + (!l4re, "sys/quota.h"), + (!l4re, "sys/random.h"), + (!l4re, "sys/reboot.h"), "sys/resource.h", "sys/sem.h", - "sys/sendfile.h", + (!l4re, "sys/sendfile.h"), "sys/shm.h", - "sys/signalfd.h", + (!l4re, "sys/signalfd.h"), "sys/socket.h", "sys/stat.h", "sys/statvfs.h", - "sys/swap.h", + (!l4re, "sys/swap.h"), "sys/syscall.h", "sys/time.h", - "sys/timerfd.h", + (!l4re, "sys/timerfd.h"), "sys/times.h", - "sys/timex.h", + (!l4re, "sys/timex.h"), "sys/types.h", "sys/uio.h", "sys/un.h", @@ -3956,12 +3974,12 @@ fn test_linux(target: &str) { // ARM: https://bugzilla.redhat.com/show_bug.cgi?id=1116162 // Also unavailable on gnueabihf with glibc 2.30. // https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=6b33f373c7b9199e00ba5fbafd94ac9bfb4337b1 - ((x86_64 || x86_32 || arm) && !gnueabihf, "sys/io.h"), + ((x86_64 || x86_32 || arm) && !gnueabihf && !l4re, "sys/io.h"), // `sys/reg.h` is only available on x86 and x86_64 - (x86_64 || x86_32, "sys/reg.h"), + ((x86_64 || x86_32) && !l4re, "sys/reg.h"), // sysctl system call is deprecated and not available on musl // It is also unsupported in x32, deprecated since glibc 2.30: - (!(x32 || musl || gnu), "sys/sysctl.h"), + (!(x32 || musl || gnu || l4re), "sys/sysctl.h"), // is not supported by musl: // https://www.openwall.com/lists/musl/2015/04/09/3 // is not present on uclibc. @@ -3969,9 +3987,13 @@ fn test_linux(target: &str) { ); // Include linux headers at the end: - headers!(cfg, (loongarch64 || riscv64, "asm/hwcap.h"), "asm/mman.h",); + headers!( + cfg, + ((loongarch64 || riscv64) && !l4re, "asm/hwcap.h"), + (!l4re, "asm/mman.h"), + ); - if !wasm32 { + if !wasm32 && !l4re { headers!( cfg, (gnu, "linux/aio_abi.h"), @@ -4047,7 +4069,7 @@ fn test_linux(target: &str) { // note: aio.h must be included before sys/mount.h headers!( cfg, - "sys/xattr.h", + (!l4re, "sys/xattr.h"), "sys/sysinfo.h", // AIO is not supported by uclibc: (!uclibc, "aio.h"), @@ -4077,10 +4099,11 @@ fn test_linux(target: &str) { cfg.rename_type(move |ty| { match ty { - "Ioctl" if gnu => Some("unsigned long".to_string()), + "Ioctl" if gnu || uclibc => Some("unsigned long".to_string()), "Ioctl" => Some("int".to_string()), // LFS64 types have been removed in musl 1.2.4+ "off64_t" if musl => Some("off_t".to_string()), + "fsword_t" if uclibc => Some("__SWORD_TYPE".to_string()), _ => None, } }); @@ -4277,6 +4300,13 @@ fn test_linux(target: &str) { cfg.skip_const(move |constant| { let name = constant.ident(); + + // L4Re requires a min stack size of 64k; that isn't defined in uClibc, but + // somewhere in the core libraries. uClibc wants 16k, but that's not enough. + if l4re && name == "PTHREAD_STACK_MIN" { + return true; + } + if !gnu { // Skip definitions from the kernel on non-glibc Linux targets. // They're libc-independent, so we only need to check them on one @@ -4426,7 +4456,7 @@ fn test_linux(target: &str) { // FIXME(musl): on musl the pthread types are defined a little differently // - these constants are used by the glibc implementation. - n if musl && n.contains("__SIZEOF_PTHREAD") => true, + n if (musl || uclibc) && n.contains("__SIZEOF_PTHREAD") => true, // FIXME(linux): It was extended to 4096 since glibc 2.31 (Linux 5.4). // We should do so after a while. @@ -4859,6 +4889,8 @@ fn test_linux(target: &str) { ("bcm_msg_head", "frames") => true, // FAM ("af_alg_iv", "iv") => true, + // FIXME(ctest): ctest does not translate the rust code which computes the padding size + ("pthread_cond_t", "__padding") if l4re => true, _ => false, } }); @@ -4986,7 +5018,9 @@ fn test_linux(target: &str) { ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); - test_linux_like_apis(target); + if !l4re { + test_linux_like_apis(target); + } } // This function tests APIs that are incompatible to test when other APIs diff --git a/libc-test/semver/l4re.txt b/libc-test/semver/l4re.txt new file mode 100644 index 0000000000000..ea50f8f58bf0d --- /dev/null +++ b/libc-test/semver/l4re.txt @@ -0,0 +1,2660 @@ +ABDAY_1 +ABDAY_2 +ABDAY_3 +ABDAY_4 +ABDAY_5 +ABDAY_6 +ABDAY_7 +ABMON_1 +ABMON_10 +ABMON_11 +ABMON_12 +ABMON_2 +ABMON_3 +ABMON_4 +ABMON_5 +ABMON_6 +ABMON_7 +ABMON_8 +ABMON_9 +AF_ALG +AF_APPLETALK +AF_ASH +AF_ATMPVC +AF_ATMSVC +AF_AX25 +AF_BLUETOOTH +AF_BRIDGE +AF_CAIF +AF_CAN +AF_DECnet +AF_ECONET +AF_IEEE802154 +AF_INET +AF_INET6 +AF_IPX +AF_IRDA +AF_ISDN +AF_IUCV +AF_KEY +AF_LLC +AF_LOCAL +AF_NETBEUI +AF_NETLINK +AF_NETROM +AF_NFC +AF_PACKET +AF_PHONET +AF_PPPOX +AF_RDS +AF_ROSE +AF_ROUTE +AF_RXRPC +AF_SECURITY +AF_SNA +AF_TIPC +AF_UNIX +AF_UNSPEC +AF_VSOCK +AF_WANPIPE +AF_X25 +AI_ADDRCONFIG +AI_ALL +AI_CANONNAME +AI_NUMERICHOST +AI_NUMERICSERV +AI_PASSIVE +AI_V4MAPPED +ALT_DIGITS +AM_STR +ARPD_FLUSH +ARPD_LOOKUP +ARPD_UPDATE +ARPHRD_ADAPT +ARPHRD_APPLETLK +ARPHRD_ARCNET +ARPHRD_ASH +ARPHRD_ATM +ARPHRD_AX25 +ARPHRD_BIF +ARPHRD_CAN +ARPHRD_CHAOS +ARPHRD_CISCO +ARPHRD_CSLIP +ARPHRD_CSLIP6 +ARPHRD_DDCMP +ARPHRD_DLCI +ARPHRD_ECONET +ARPHRD_EETHER +ARPHRD_ETHER +ARPHRD_EUI64 +ARPHRD_FCAL +ARPHRD_FCFABRIC +ARPHRD_FCPL +ARPHRD_FCPP +ARPHRD_FDDI +ARPHRD_FRAD +ARPHRD_HDLC +ARPHRD_HIPPI +ARPHRD_HWX25 +ARPHRD_IEEE1394 +ARPHRD_IEEE802 +ARPHRD_IEEE80211 +ARPHRD_IEEE80211_PRISM +ARPHRD_IEEE80211_RADIOTAP +ARPHRD_IEEE802154 +ARPHRD_IEEE802_TR +ARPHRD_INFINIBAND +ARPHRD_IPDDP +ARPHRD_IPGRE +ARPHRD_IRDA +ARPHRD_LAPB +ARPHRD_LOCALTLK +ARPHRD_LOOPBACK +ARPHRD_METRICOM +ARPHRD_NETROM +ARPHRD_NONE +ARPHRD_PIMREG +ARPHRD_PPP +ARPHRD_PRONET +ARPHRD_RAWHDLC +ARPHRD_ROSE +ARPHRD_RSRVD +ARPHRD_SIT +ARPHRD_SKIP +ARPHRD_SLIP +ARPHRD_SLIP6 +ARPHRD_TUNNEL +ARPHRD_TUNNEL6 +ARPHRD_VOID +ARPHRD_X25 +ARPOP_InREPLY +ARPOP_InREQUEST +ARPOP_NAK +ARPOP_REPLY +ARPOP_REQUEST +ARPOP_RREPLY +ARPOP_RREQUEST +ATF_COM +ATF_DONTPUB +ATF_MAGIC +ATF_NETMASK +ATF_PERM +ATF_PUBL +ATF_USETRAILERS +AT_BASE +AT_BASE_PLATFORM +AT_CLKTCK +AT_EACCESS +AT_EGID +AT_EMPTY_PATH +AT_ENTRY +AT_EUID +AT_EXECFD +AT_EXECFN +AT_FDCWD +AT_FLAGS +AT_GID +AT_HWCAP +AT_HWCAP2 +AT_IGNORE +AT_NOTELF +AT_NO_AUTOMOUNT +AT_NULL +AT_PAGESZ +AT_PHDR +AT_PHENT +AT_PHNUM +AT_PLATFORM +AT_RANDOM +AT_RECURSIVE +AT_REMOVEDIR +AT_SECURE +AT_SYMLINK_FOLLOW +AT_SYMLINK_NOFOLLOW +AT_SYSINFO_EHDR +AT_UID +B0 +B1000000 +B110 +B115200 +B1152000 +B1200 +B134 +B150 +B1500000 +B1800 +B19200 +B200 +B2000000 +B230400 +B2400 +B2500000 +B300 +B3000000 +B3500000 +B38400 +B4000000 +B460800 +B4800 +B50 +B500000 +B57600 +B576000 +B600 +B75 +B921600 +B9600 +BLKSSZGET +BOTHER +BRKINT +BS0 +BS1 +BSDLY +BUFSIZ +BUS_ADRALN +BUS_ADRERR +CBAUD +CBAUDEX +CLD_CONTINUED +CLD_DUMPED +CLD_EXITED +CLD_KILLED +CLD_STOPPED +CLD_TRAPPED +CLOCAL +CLOCK_BOOTTIME +CLOCK_BOOTTIME_ALARM +CLOCK_MONOTONIC +CLOCK_MONOTONIC_COARSE +CLOCK_MONOTONIC_RAW +CLOCK_PROCESS_CPUTIME_ID +CLOCK_REALTIME +CLOCK_REALTIME_ALARM +CLOCK_REALTIME_COARSE +CLOCK_TAI +CLOCK_THREAD_CPUTIME_ID +CLONE_CHILD_CLEARTID +CLONE_CHILD_SETTID +CLONE_DETACHED +CLONE_FILES +CLONE_FS +CLONE_IO +CLONE_NEWIPC +CLONE_NEWNET +CLONE_NEWNS +CLONE_NEWPID +CLONE_NEWUSER +CLONE_NEWUTS +CLONE_PARENT +CLONE_PARENT_SETTID +CLONE_PTRACE +CLONE_SETTLS +CLONE_SIGHAND +CLONE_SYSVSEM +CLONE_THREAD +CLONE_UNTRACED +CLONE_VFORK +CLONE_VM +CMSG_DATA +CMSG_FIRSTHDR +CMSG_LEN +CMSG_NXTHDR +CMSG_SPACE +CMSPAR +CODESET +CPU_ALLOC_SIZE +CPU_CLR +CPU_COUNT +CPU_COUNT_S +CPU_EQUAL +CPU_ISSET +CPU_SET +CPU_SETSIZE +CPU_ZERO +CR0 +CR1 +CR2 +CR3 +CRDLY +CREAD +CRNCYSTR +CRTSCTS +CS5 +CS6 +CS7 +CS8 +CSIZE +CSTOPB +DAY_1 +DAY_2 +DAY_3 +DAY_4 +DAY_5 +DAY_6 +DAY_7 +DIR +DT_BLK +DT_CHR +DT_DIR +DT_FIFO +DT_LNK +DT_REG +DT_SOCK +DT_UNKNOWN +D_FMT +D_T_FMT +Dl_info +E2BIG +EACCES +EADDRINUSE +EADDRNOTAVAIL +EADV +EAFNOSUPPORT +EAGAIN +EAI_AGAIN +EAI_BADFLAGS +EAI_FAIL +EAI_FAMILY +EAI_MEMORY +EAI_NODATA +EAI_NONAME +EAI_OVERFLOW +EAI_SERVICE +EAI_SOCKTYPE +EAI_SYSTEM +EALREADY +EBADE +EBADF +EBADFD +EBADMSG +EBADR +EBADRQC +EBADSLT +EBFONT +EBUSY +ECANCELED +ECHILD +ECHO +ECHOCTL +ECHOE +ECHOK +ECHOKE +ECHONL +ECHOPRT +ECHRNG +ECOMM +ECONNABORTED +ECONNREFUSED +ECONNRESET +EDEADLK +EDEADLOCK +EDESTADDRREQ +EDOM +EDOTDOT +EDQUOT +EEXIST +EFAULT +EFBIG +EHOSTDOWN +EHOSTUNREACH +EIDRM +EILSEQ +EINPROGRESS +EINTR +EINVAL +EIO +EISCONN +EISDIR +EISNAM +EI_ABIVERSION +EI_CLASS +EI_DATA +EI_MAG0 +EI_MAG1 +EI_MAG2 +EI_MAG3 +EI_NIDENT +EI_OSABI +EI_PAD +EI_VERSION +EKEYEXPIRED +EKEYREJECTED +EKEYREVOKED +EL2HLT +EL2NSYNC +EL3HLT +EL3RST +ELF32_R_INFO +ELF32_R_SYM +ELF32_R_TYPE +ELF64_R_INFO +ELF64_R_SYM +ELF64_R_TYPE +ELFCLASS32 +ELFCLASS64 +ELFCLASSNONE +ELFCLASSNUM +ELFDATA2LSB +ELFDATA2MSB +ELFDATANONE +ELFDATANUM +ELFMAG0 +ELFMAG1 +ELFMAG2 +ELFMAG3 +ELFOSABI_AIX +ELFOSABI_ARM +ELFOSABI_FREEBSD +ELFOSABI_GNU +ELFOSABI_HPUX +ELFOSABI_IRIX +ELFOSABI_LINUX +ELFOSABI_MODESTO +ELFOSABI_NETBSD +ELFOSABI_NONE +ELFOSABI_OPENBSD +ELFOSABI_SOLARIS +ELFOSABI_STANDALONE +ELFOSABI_SYSV +ELFOSABI_TRU64 +ELIBACC +ELIBBAD +ELIBEXEC +ELIBMAX +ELIBSCN +ELNRNG +ELOOP +EMEDIUMTYPE +EMFILE +EMLINK +EMSGSIZE +EMULTIHOP +EM_386 +EM_68HC05 +EM_68HC08 +EM_68HC11 +EM_68HC12 +EM_68HC16 +EM_68K +EM_860 +EM_88K +EM_960 +EM_AARCH64 +EM_ALPHA +EM_ARC +EM_ARM +EM_AVR +EM_COLDFIRE +EM_CRIS +EM_D10V +EM_D30V +EM_FAKE_ALPHA +EM_FIREPATH +EM_FR20 +EM_FR30 +EM_FX66 +EM_H8S +EM_H8_300 +EM_H8_300H +EM_H8_500 +EM_HUANY +EM_IA_64 +EM_JAVELIN +EM_M32 +EM_M32R +EM_ME16 +EM_MIPS +EM_MIPS_RS3_LE +EM_MIPS_X +EM_MMA +EM_MMIX +EM_MN10200 +EM_MN10300 +EM_NCPU +EM_NDR1 +EM_NONE +EM_PARISC +EM_PCP +EM_PDSP +EM_PJ +EM_PPC +EM_PPC64 +EM_PRISM +EM_RCE +EM_RH32 +EM_S370 +EM_S390 +EM_SH +EM_SPARC +EM_SPARC32PLUS +EM_SPARCV9 +EM_ST100 +EM_ST19 +EM_ST7 +EM_ST9PLUS +EM_STARCORE +EM_SVX +EM_TILEGX +EM_TILEPRO +EM_TINYJ +EM_TRICORE +EM_V800 +EM_V850 +EM_VAX +EM_VPP500 +EM_X86_64 +EM_XTENSA +EM_ZSP +ENAMETOOLONG +ENAVAIL +ENETDOWN +ENETRESET +ENETUNREACH +ENFILE +ENOANO +ENOBUFS +ENOCSI +ENODATA +ENODEV +ENOENT +ENOEXEC +ENOKEY +ENOLCK +ENOLINK +ENOMEDIUM +ENOMEM +ENOMSG +ENONET +ENOPKG +ENOPROTOOPT +ENOSPC +ENOSR +ENOSTR +ENOSYS +ENOTBLK +ENOTCONN +ENOTDIR +ENOTEMPTY +ENOTNAM +ENOTRECOVERABLE +ENOTSOCK +ENOTSUP +ENOTTY +ENOTUNIQ +ENXIO +EOF +EOPNOTSUPP +EOVERFLOW +EOWNERDEAD +EPERM +EPFNOSUPPORT +EPIPE +EPROTO +EPROTONOSUPPORT +EPROTOTYPE +ERA +ERANGE +ERA_D_FMT +ERA_D_T_FMT +ERA_T_FMT +EREMCHG +EREMOTE +EREMOTEIO +ERESTART +EROFS +ESHUTDOWN +ESOCKTNOSUPPORT +ESPIPE +ESRCH +ESRMNT +ESTALE +ESTRPIPE +ETIME +ETIMEDOUT +ETOOMANYREFS +ETXTBSY +ET_CORE +ET_DYN +ET_EXEC +ET_HIOS +ET_HIPROC +ET_LOOS +ET_LOPROC +ET_NONE +ET_NUM +ET_REL +EUCLEAN +EUNATCH +EUSERS +EV_NONE +EV_NUM +EWOULDBLOCK +EXDEV +EXFULL +EXIT_FAILURE +EXIT_SUCCESS +EXTA +EXTB +Elf32_Addr +Elf32_Ehdr +Elf32_Half +Elf32_Off +Elf32_Phdr +Elf32_Rel +Elf32_Rela +Elf32_Relr +Elf32_Section +Elf32_Shdr +Elf32_Sword +Elf32_Sym +Elf32_Word +Elf32_Xword +Elf64_Addr +Elf64_Ehdr +Elf64_Half +Elf64_Off +Elf64_Phdr +Elf64_Rel +Elf64_Rela +Elf64_Relr +Elf64_Section +Elf64_Shdr +Elf64_Sword +Elf64_Sxword +Elf64_Sym +Elf64_Word +Elf64_Xword +FD_CLOEXEC +FD_CLR +FD_ISSET +FD_SET +FD_SETSIZE +FD_ZERO +FF0 +FF1 +FFDLY +FILE +FILENAME_MAX +FIOCLEX +FIONBIO +FIONCLEX +FIONREAD +FIOQSIZE +FLUSHO +FNM_CASEFOLD +FNM_NOESCAPE +FNM_NOMATCH +FNM_PATHNAME +FNM_PERIOD +FOPEN_MAX +F_ADD_SEALS +F_CANCELLK +F_DUPFD +F_DUPFD_CLOEXEC +F_GETFD +F_GETFL +F_GETLEASE +F_GETLK +F_GETOWN +F_GETPIPE_SZ +F_GET_SEALS +F_LOCK +F_NOTIFY +F_OK +F_SEAL_GROW +F_SEAL_SEAL +F_SEAL_SHRINK +F_SEAL_WRITE +F_SETFD +F_SETFL +F_SETLEASE +F_SETLK +F_SETLKW +F_SETOWN +F_SETPIPE_SZ +F_TEST +F_TLOCK +F_ULOCK +F_UNLCK +F_WRLCK +GLOB_ABORTED +GLOB_APPEND +GLOB_DOOFFS +GLOB_ERR +GLOB_MARK +GLOB_NOCHECK +GLOB_NOESCAPE +GLOB_NOMATCH +GLOB_NOSORT +GLOB_NOSPACE +HUPCL +ICANON +ICRNL +IEXTEN +IFF_AUTOMEDIA +IFF_BROADCAST +IFF_DEBUG +IFF_MASTER +IFF_MULTICAST +IFF_POINTOPOINT +IFF_PORTSEL +IFF_PROMISC +IFF_RUNNING +IFF_SLAVE +IFNAMSIZ +IF_NAMESIZE +IGNBRK +IGNCR +IGNPAR +IN6ADDR_ANY_INIT +IN6ADDR_LOOPBACK_INIT +INADDR_ANY +INADDR_BROADCAST +INADDR_LOOPBACK +INADDR_NONE +INLCR +INPCK +INT_MAX +INT_MIN +IPC_CREAT +IPC_EXCL +IPC_INFO +IPC_NOWAIT +IPC_PRIVATE +IPC_RMID +IPC_SET +IPC_STAT +IPDEFTTL +IPOPT_CLASS +IPOPT_CLASS_MASK +IPOPT_CONTROL +IPOPT_COPIED +IPOPT_COPY +IPOPT_END +IPOPT_EOL +IPOPT_LSRR +IPOPT_MEASUREMENT +IPOPT_MINOFF +IPOPT_NOOP +IPOPT_NOP +IPOPT_NUMBER +IPOPT_NUMBER_MASK +IPOPT_OFFSET +IPOPT_OLEN +IPOPT_OPTVAL +IPOPT_RA +IPOPT_RESERVED1 +IPOPT_RESERVED2 +IPOPT_RR +IPOPT_SEC +IPOPT_SID +IPOPT_SSRR +IPOPT_TIMESTAMP +IPOPT_TS +IPOPT_TS_PRESPEC +IPOPT_TS_TSANDADDR +IPOPT_TS_TSONLY +IPPROTO_AH +IPPROTO_COMP +IPPROTO_DCCP +IPPROTO_DSTOPTS +IPPROTO_EGP +IPPROTO_ENCAP +IPPROTO_ESP +IPPROTO_FRAGMENT +IPPROTO_GRE +IPPROTO_HOPOPTS +IPPROTO_ICMP +IPPROTO_ICMPV6 +IPPROTO_IDP +IPPROTO_IGMP +IPPROTO_IP +IPPROTO_IPIP +IPPROTO_IPV6 +IPPROTO_MAX +IPPROTO_MH +IPPROTO_MTP +IPPROTO_NONE +IPPROTO_PIM +IPPROTO_PUP +IPPROTO_RAW +IPPROTO_ROUTING +IPPROTO_RSVP +IPPROTO_SCTP +IPPROTO_TCP +IPPROTO_TP +IPPROTO_UDP +IPPROTO_UDPLITE +IPTOS_ECN +IPTOS_ECN_CE +IPTOS_ECN_ECT0 +IPTOS_ECN_ECT1 +IPTOS_ECN_MASK +IPTOS_ECN_NOT_ECT +IPTOS_LOWDELAY +IPTOS_MINCOST +IPTOS_PREC +IPTOS_PREC_CRITIC_ECP +IPTOS_PREC_FLASH +IPTOS_PREC_FLASHOVERRIDE +IPTOS_PREC_IMMEDIATE +IPTOS_PREC_INTERNETCONTROL +IPTOS_PREC_MASK +IPTOS_PREC_NETCONTROL +IPTOS_PREC_PRIORITY +IPTOS_PREC_ROUTINE +IPTOS_RELIABILITY +IPTOS_THROUGHPUT +IPTOS_TOS +IPTOS_TOS_MASK +IPV6_2292DSTOPTS +IPV6_2292HOPLIMIT +IPV6_2292HOPOPTS +IPV6_2292PKTINFO +IPV6_2292PKTOPTIONS +IPV6_2292RTHDR +IPV6_ADDRFORM +IPV6_ADD_MEMBERSHIP +IPV6_AUTHHDR +IPV6_DROP_MEMBERSHIP +IPV6_DSTOPTS +IPV6_HOPLIMIT +IPV6_HOPOPTS +IPV6_IPSEC_POLICY +IPV6_JOIN_ANYCAST +IPV6_LEAVE_ANYCAST +IPV6_MTU +IPV6_MTU_DISCOVER +IPV6_MULTICAST_HOPS +IPV6_MULTICAST_IF +IPV6_MULTICAST_LOOP +IPV6_PKTINFO +IPV6_PMTUDISC_DO +IPV6_PMTUDISC_DONT +IPV6_PMTUDISC_PROBE +IPV6_PMTUDISC_WANT +IPV6_RECVDSTOPTS +IPV6_RECVERR +IPV6_RECVHOPLIMIT +IPV6_RECVHOPOPTS +IPV6_RECVPKTINFO +IPV6_RECVRTHDR +IPV6_RECVTCLASS +IPV6_ROUTER_ALERT +IPV6_RTHDR +IPV6_RTHDRDSTOPTS +IPV6_RTHDR_LOOSE +IPV6_RTHDR_STRICT +IPV6_TCLASS +IPV6_UNICAST_HOPS +IPV6_V6ONLY +IPV6_XFRM_POLICY +IPVERSION +IP_ADD_MEMBERSHIP +IP_ADD_SOURCE_MEMBERSHIP +IP_DEFAULT_MULTICAST_LOOP +IP_DEFAULT_MULTICAST_TTL +IP_DROP_MEMBERSHIP +IP_DROP_SOURCE_MEMBERSHIP +IP_FREEBIND +IP_HDRINCL +IP_IPSEC_POLICY +IP_MINTTL +IP_MSFILTER +IP_MTU +IP_MTU_DISCOVER +IP_MULTICAST_ALL +IP_MULTICAST_IF +IP_MULTICAST_LOOP +IP_MULTICAST_TTL +IP_OPTIONS +IP_ORIGDSTADDR +IP_PASSSEC +IP_PKTINFO +IP_PKTOPTIONS +IP_PMTUDISC_DO +IP_PMTUDISC_DONT +IP_PMTUDISC_PROBE +IP_PMTUDISC_WANT +IP_RECVERR +IP_RECVOPTS +IP_RECVORIGDSTADDR +IP_RECVTOS +IP_RECVTTL +IP_RETOPTS +IP_ROUTER_ALERT +IP_TOS +IP_TRANSPARENT +IP_TTL +IP_UNBLOCK_SOURCE +IP_UNICAST_IF +IP_XFRM_POLICY +ISIG +ISTRIP +ITIMER_PROF +ITIMER_REAL +ITIMER_VIRTUAL +IUTF8 +IXANY +IXOFF +IXON +LC_COLLATE +LC_COLLATE_MASK +LC_CTYPE +LC_CTYPE_MASK +LC_MESSAGES +LC_MESSAGES_MASK +LC_MONETARY +LC_MONETARY_MASK +LC_NUMERIC +LC_NUMERIC_MASK +LC_TIME +LC_TIME_MASK +LOG_ALERT +LOG_AUTH +LOG_AUTHPRIV +LOG_CONS +LOG_CRIT +LOG_CRON +LOG_DAEMON +LOG_DEBUG +LOG_EMERG +LOG_ERR +LOG_FACMASK +LOG_FTP +LOG_INFO +LOG_KERN +LOG_LOCAL0 +LOG_LOCAL1 +LOG_LOCAL2 +LOG_LOCAL3 +LOG_LOCAL4 +LOG_LOCAL5 +LOG_LOCAL6 +LOG_LOCAL7 +LOG_LPR +LOG_MAIL +LOG_NDELAY +LOG_NEWS +LOG_NFACILITIES +LOG_NOTICE +LOG_NOWAIT +LOG_ODELAY +LOG_PERROR +LOG_PID +LOG_PRIMASK +LOG_SYSLOG +LOG_USER +LOG_UUCP +LOG_WARNING +L_tmpnam +MADV_DODUMP +MADV_DOFORK +MADV_DONTDUMP +MADV_DONTFORK +MADV_DONTNEED +MADV_FREE +MADV_HUGEPAGE +MADV_HWPOISON +MADV_KEEPONFORK +MADV_MERGEABLE +MADV_NOHUGEPAGE +MADV_NORMAL +MADV_RANDOM +MADV_REMOVE +MADV_SEQUENTIAL +MADV_UNMERGEABLE +MADV_WILLNEED +MADV_WIPEONFORK +MAP_ANON +MAP_ANONYMOUS +MAP_DENYWRITE +MAP_EXECUTABLE +MAP_FAILED +MAP_FILE +MAP_FIXED +MAP_FIXED_NOREPLACE +MAP_GROWSDOWN +MAP_HUGETLB +MAP_HUGE_MASK +MAP_HUGE_SHIFT +MAP_LOCKED +MAP_NONBLOCK +MAP_NORESERVE +MAP_POPULATE +MAP_PRIVATE +MAP_SHARED +MAP_STACK +MAP_TYPE +MAXTTL +MAX_ADDR_LEN +MAX_IPOPTLEN +MCAST_BLOCK_SOURCE +MCAST_EXCLUDE +MCAST_INCLUDE +MCAST_JOIN_GROUP +MCAST_JOIN_SOURCE_GROUP +MCAST_LEAVE_GROUP +MCAST_LEAVE_SOURCE_GROUP +MCAST_MSFILTER +MCAST_UNBLOCK_SOURCE +MCL_CURRENT +MCL_FUTURE +MCL_ONFAULT +MFD_ALLOW_SEALING +MFD_CLOEXEC +MINSIGSTKSZ +MNT_DETACH +MNT_EXPIRE +MNT_FORCE +MON_1 +MON_10 +MON_11 +MON_12 +MON_2 +MON_3 +MON_4 +MON_5 +MON_6 +MON_7 +MON_8 +MON_9 +MSG_CMSG_CLOEXEC +MSG_CONFIRM +MSG_CTRUNC +MSG_DONTROUTE +MSG_DONTWAIT +MSG_EOR +MSG_ERRQUEUE +MSG_FASTOPEN +MSG_FIN +MSG_OOB +MSG_PEEK +MSG_SYN +MSG_TRUNC +MSG_WAITALL +MSG_WAITFORONE +MS_ACTIVE +MS_ASYNC +MS_BIND +MS_DIRSYNC +MS_INVALIDATE +MS_I_VERSION +MS_KERNMOUNT +MS_LAZYTIME +MS_MANDLOCK +MS_MGC_MSK +MS_MGC_VAL +MS_MOVE +MS_NOATIME +MS_NODEV +MS_NODIRATIME +MS_NOEXEC +MS_NOSUID +MS_NOUSER +MS_POSIXACL +MS_PRIVATE +MS_RDONLY +MS_REC +MS_REMOUNT +MS_RMT_MASK +MS_SHARED +MS_SILENT +MS_SLAVE +MS_STRICTATIME +MS_SYNC +MS_SYNCHRONOUS +MS_UNBINDABLE +NCCS +NI_DGRAM +NI_MAXHOST +NI_NAMEREQD +NI_NOFQDN +NI_NUMERICHOST +NI_NUMERICSERV +NL0 +NL1 +NOEXPR +NOFLSH +NOSTR +NT_ASRS +NT_AUXV +NT_FPREGSET +NT_GWINDOWS +NT_LWPSINFO +NT_LWPSTATUS +NT_PLATFORM +NT_PRCRED +NT_PRFPXREG +NT_PRPSINFO +NT_PRSTATUS +NT_PSINFO +NT_PSTATUS +NT_TASKSTRUCT +NT_UTSNAME +OCRNL +OFDEL +OFILL +OLCUC +ONLCR +ONLRET +ONOCR +OPOST +O_ACCMODE +O_APPEND +O_ASYNC +O_CLOEXEC +O_CREAT +O_DIRECT +O_DIRECTORY +O_DSYNC +O_EXCL +O_LARGEFILE +O_NDELAY +O_NOATIME +O_NOCTTY +O_NOFOLLOW +O_NONBLOCK +O_PATH +O_RDONLY +O_RDWR +O_RSYNC +O_SYNC +O_TMPFILE +O_TRUNC +O_WRONLY +PACKET_ADD_MEMBERSHIP +PACKET_BROADCAST +PACKET_DROP_MEMBERSHIP +PACKET_MR_ALLMULTI +PACKET_MR_MULTICAST +PACKET_MR_PROMISC +PACKET_MULTICAST +PACKET_OTHERHOST +PACKET_OUTGOING +PACKET_RX_RING +PACKET_STATISTICS +PARENB +PARMRK +PARODD +PATH_MAX +PENDIN +PF_ALG +PF_APPLETALK +PF_ASH +PF_ATMPVC +PF_ATMSVC +PF_AX25 +PF_BLUETOOTH +PF_BRIDGE +PF_CAIF +PF_CAN +PF_DECnet +PF_INET +PF_INET6 +PF_IPX +PF_IRDA +PF_ISDN +PF_IUCV +PF_KEY +PF_LLC +PF_LOCAL +PF_MASKOS +PF_MASKPROC +PF_NETBEUI +PF_NETLINK +PF_NETROM +PF_NFC +PF_PACKET +PF_PHONET +PF_PPPOX +PF_R +PF_RDS +PF_ROSE +PF_ROUTE +PF_RXRPC +PF_SECURITY +PF_UNIX +PF_UNSPEC +PF_VSOCK +PF_W +PF_WANPIPE +PF_X +PF_X25 +PM_STR +POLLERR +POLLHUP +POLLIN +POLLNVAL +POLLOUT +POLLPRI +POLLRDBAND +POLLRDNORM +POLLWRBAND +POLLWRNORM +POSIX_FADV_DONTNEED +POSIX_FADV_NOREUSE +POSIX_FADV_NORMAL +POSIX_FADV_RANDOM +POSIX_FADV_SEQUENTIAL +POSIX_FADV_WILLNEED +POSIX_MADV_DONTNEED +POSIX_MADV_NORMAL +POSIX_MADV_RANDOM +POSIX_MADV_SEQUENTIAL +POSIX_MADV_WILLNEED +PRIO_MAX +PRIO_MIN +PRIO_PGRP +PRIO_PROCESS +PRIO_USER +PROT_EXEC +PROT_GROWSDOWN +PROT_GROWSUP +PROT_NONE +PROT_READ +PROT_WRITE +PR_CAPBSET_DROP +PR_CAPBSET_READ +PR_CAP_AMBIENT +PR_CAP_AMBIENT_CLEAR_ALL +PR_CAP_AMBIENT_IS_SET +PR_CAP_AMBIENT_LOWER +PR_CAP_AMBIENT_RAISE +PR_ENDIAN_BIG +PR_ENDIAN_LITTLE +PR_ENDIAN_PPC_LITTLE +PR_FPEMU_NOPRINT +PR_FPEMU_SIGFPE +PR_FP_EXC_ASYNC +PR_FP_EXC_DISABLED +PR_FP_EXC_DIV +PR_FP_EXC_INV +PR_FP_EXC_NONRECOV +PR_FP_EXC_OVF +PR_FP_EXC_PRECISE +PR_FP_EXC_RES +PR_FP_EXC_SW_ENABLE +PR_FP_EXC_UND +PR_FP_MODE_FR +PR_FP_MODE_FRE +PR_GET_CHILD_SUBREAPER +PR_GET_DUMPABLE +PR_GET_ENDIAN +PR_GET_FPEMU +PR_GET_FPEXC +PR_GET_FP_MODE +PR_GET_KEEPCAPS +PR_GET_NAME +PR_GET_NO_NEW_PRIVS +PR_GET_PDEATHSIG +PR_GET_SECCOMP +PR_GET_SECUREBITS +PR_GET_THP_DISABLE +PR_GET_TID_ADDRESS +PR_GET_TIMERSLACK +PR_GET_TIMING +PR_GET_TSC +PR_GET_UNALIGN +PR_MCE_KILL +PR_MCE_KILL_CLEAR +PR_MCE_KILL_DEFAULT +PR_MCE_KILL_EARLY +PR_MCE_KILL_GET +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 +PR_SET_FPEMU +PR_SET_FPEXC +PR_SET_FP_MODE +PR_SET_KEEPCAPS +PR_SET_MM +PR_SET_MM_ARG_END +PR_SET_MM_ARG_START +PR_SET_MM_AUXV +PR_SET_MM_BRK +PR_SET_MM_END_CODE +PR_SET_MM_END_DATA +PR_SET_MM_ENV_END +PR_SET_MM_ENV_START +PR_SET_MM_EXE_FILE +PR_SET_MM_MAP +PR_SET_MM_MAP_SIZE +PR_SET_MM_START_BRK +PR_SET_MM_START_CODE +PR_SET_MM_START_DATA +PR_SET_MM_START_STACK +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 +PR_SET_TIMERSLACK +PR_SET_TIMING +PR_SET_TSC +PR_SET_UNALIGN +PR_TASK_PERF_EVENTS_DISABLE +PR_TASK_PERF_EVENTS_ENABLE +PR_TIMING_STATISTICAL +PR_TIMING_TIMESTAMP +PR_TSC_ENABLE +PR_TSC_SIGSEGV +PR_UNALIGN_NOPRINT +PR_UNALIGN_SIGBUS +PTHREAD_BARRIER_SERIAL_THREAD +PTHREAD_COND_INITIALIZER +PTHREAD_CREATE_DETACHED +PTHREAD_CREATE_JOINABLE +PTHREAD_EXPLICIT_SCHED +PTHREAD_INHERIT_SCHED +PTHREAD_MUTEX_DEFAULT +PTHREAD_MUTEX_ERRORCHECK +PTHREAD_MUTEX_INITIALIZER +PTHREAD_MUTEX_NORMAL +PTHREAD_MUTEX_RECURSIVE +PTHREAD_ONCE_INIT +PTHREAD_PROCESS_PRIVATE +PTHREAD_PROCESS_SHARED +PTHREAD_RWLOCK_INITIALIZER +PTHREAD_STACK_MIN +PT_DYNAMIC +PT_GNU_EH_FRAME +PT_GNU_RELRO +PT_GNU_STACK +PT_HIOS +PT_HIPROC +PT_HISUNW +PT_INTERP +PT_LOAD +PT_LOOS +PT_LOPROC +PT_LOSUNW +PT_NOTE +PT_NULL +PT_NUM +PT_PHDR +PT_SHLIB +PT_SUNWBSS +PT_SUNWSTACK +PT_TLS +P_ALL +P_PGID +P_PID +RADIXCHAR +RAND_MAX +REG_BADBR +REG_BADPAT +REG_BADRPT +REG_EBRACE +REG_EBRACK +REG_ECOLLATE +REG_ECTYPE +REG_EESCAPE +REG_ENOSYS +REG_EPAREN +REG_ERANGE +REG_ESPACE +REG_ESUBREG +REG_EXTENDED +REG_ICASE +REG_NEWLINE +REG_NOMATCH +REG_NOSUB +REG_NOTBOL +REG_NOTEOL +RLIM64_INFINITY +RLIMIT_AS +RLIMIT_CORE +RLIMIT_CPU +RLIMIT_DATA +RLIMIT_FSIZE +RLIMIT_LOCKS +RLIMIT_MEMLOCK +RLIMIT_MSGQUEUE +RLIMIT_NICE +RLIMIT_NLIMITS +RLIMIT_NOFILE +RLIMIT_NPROC +RLIMIT_RSS +RLIMIT_RTPRIO +RLIMIT_RTTIME +RLIMIT_SIGPENDING +RLIMIT_STACK +RLIM_INFINITY +RLIM_SAVED_CUR +RLIM_SAVED_MAX +RTCF_DIRECTSRC +RTCF_DOREDIRECT +RTCF_LOG +RTCF_MASQ +RTCF_NAT +RTCF_VALVE +RTF_ADDRCLASSMASK +RTF_ADDRCONF +RTF_ALLONLINK +RTF_BROADCAST +RTF_CACHE +RTF_DEFAULT +RTF_DYNAMIC +RTF_FLOW +RTF_GATEWAY +RTF_HOST +RTF_INTERFACE +RTF_IRTT +RTF_LINKRT +RTF_LOCAL +RTF_MODIFIED +RTF_MSS +RTF_MTU +RTF_MULTICAST +RTF_NAT +RTF_NOFORWARD +RTF_NONEXTHOP +RTF_NOPMTUDISC +RTF_POLICY +RTF_REINSTATE +RTF_REJECT +RTF_STATIC +RTF_THROW +RTF_UP +RTF_WINDOW +RTF_XRESOLVE +RTLD_DEFAULT +RTLD_GLOBAL +RTLD_LAZY +RTLD_LOCAL +RTLD_NEXT +RTLD_NODELETE +RTLD_NOLOAD +RTLD_NOW +RT_ADDRCLASS +RT_CLASS_DEFAULT +RT_CLASS_LOCAL +RT_CLASS_MAIN +RT_CLASS_MAX +RT_CLASS_UNSPEC +RT_LOCALADDR +RT_TOS +RUSAGE_CHILDREN +RUSAGE_SELF +RUSAGE_THREAD +R_OK +SA_NOCLDSTOP +SA_NOCLDWAIT +SA_NODEFER +SA_ONSTACK +SA_RESETHAND +SA_RESTART +SA_SIGINFO +SCHED_BATCH +SCHED_FIFO +SCHED_IDLE +SCHED_OTHER +SCHED_RESET_ON_FORK +SCHED_RR +SCM_CREDENTIALS +SCM_RIGHTS +SCM_TIMESTAMP +SEEK_CUR +SEEK_END +SEEK_SET +SELFMAG +SEM_FAILED +SHM_HUGETLB +SHM_LOCK +SHM_NORESERVE +SHM_R +SHM_RDONLY +SHM_REMAP +SHM_RND +SHM_UNLOCK +SHM_W +SHUT_RD +SHUT_RDWR +SHUT_WR +SIGABRT +SIGALRM +SIGBUS +SIGCHLD +SIGCONT +SIGEV_NONE +SIGEV_SIGNAL +SIGEV_THREAD +SIGFPE +SIGHUP +SIGILL +SIGINT +SIGIO +SIGIOT +SIGKILL +SIGPIPE +SIGPOLL +SIGPROF +SIGPWR +SIGQUIT +SIGRTMAX +SIGRTMIN +SIGSEGV +SIGSTKSZ +SIGSTOP +SIGSYS +SIGTERM +SIGTRAP +SIGTSTP +SIGTTIN +SIGTTOU +SIGURG +SIGUSR1 +SIGUSR2 +SIGVTALRM +SIGWINCH +SIGXCPU +SIGXFSZ +SIG_BLOCK +SIG_DFL +SIG_ERR +SIG_IGN +SIG_SETMASK +SIG_UNBLOCK +SIOCADDMULTI +SIOCADDRT +SIOCDARP +SIOCDELMULTI +SIOCDELRT +SIOCDIFADDR +SIOCDRARP +SIOCGIFADDR +SIOCGIFBR +SIOCGIFBRDADDR +SIOCGIFCONF +SIOCGIFCOUNT +SIOCGIFDSTADDR +SIOCGIFENCAP +SIOCGIFFLAGS +SIOCGIFHWADDR +SIOCGIFINDEX +SIOCGIFMAP +SIOCGIFMEM +SIOCGIFMETRIC +SIOCGIFMTU +SIOCGIFNAME +SIOCGIFNETMASK +SIOCGIFPFLAGS +SIOCGIFSLAVE +SIOCGIFTXQLEN +SIOCSIFADDR +SIOCSIFBR +SIOCSIFBRDADDR +SIOCSIFDSTADDR +SIOCSIFENCAP +SIOCSIFFLAGS +SIOCSIFHWADDR +SIOCSIFHWBROADCAST +SIOCSIFLINK +SIOCSIFMAP +SIOCSIFMEM +SIOCSIFMETRIC +SIOCSIFMTU +SIOCSIFNAME +SIOCSIFNETMASK +SIOCSIFPFLAGS +SIOCSIFSLAVE +SIOCSIFTXQLEN +SIOGIFINDEX +SI_ASYNCIO +SI_ASYNCNL +SI_KERNEL +SI_LOAD_SHIFT +SI_MESGQ +SI_QUEUE +SI_SIGIO +SI_TIMER +SI_TKILL +SI_USER +SOCK_CLOEXEC +SOCK_DCCP +SOCK_DGRAM +SOCK_NONBLOCK +SOCK_PACKET +SOCK_RAW +SOCK_RDM +SOCK_SEQPACKET +SOCK_STREAM +SOL_AAL +SOL_ALG +SOL_ATM +SOL_BLUETOOTH +SOL_DCCP +SOL_DECNET +SOL_ICMPV6 +SOL_IP +SOL_IPV6 +SOL_IRDA +SOL_LLC +SOL_NETBEUI +SOL_NETLINK +SOL_SOCKET +SOL_TCP +SOL_TIPC +SOL_UDP +SOL_X25 +SOMAXCONN +SO_ACCEPTCONN +SO_BINDTODEVICE +SO_BROADCAST +SO_BSDCOMPAT +SO_DEBUG +SO_DONTROUTE +SO_ERROR +SO_KEEPALIVE +SO_LINGER +SO_NO_CHECK +SO_OOBINLINE +SO_PRIORITY +SO_RCVBUF +SO_RCVLOWAT +SO_RCVTIMEO +SO_REUSEADDR +SO_SNDBUF +SO_SNDLOWAT +SO_SNDTIMEO +SO_TYPE +SS_DISABLE +SS_ONSTACK +STDERR_FILENO +STDIN_FILENO +STDOUT_FILENO +ST_APPEND +ST_IMMUTABLE +ST_MANDLOCK +ST_NOATIME +ST_NODEV +ST_NODIRATIME +ST_NOEXEC +ST_NOSUID +ST_RDONLY +ST_SYNCHRONOUS +ST_WRITE +S_IEXEC +S_IFBLK +S_IFCHR +S_IFDIR +S_IFIFO +S_IFLNK +S_IFMT +S_IFREG +S_IFSOCK +S_IREAD +S_IRGRP +S_IROTH +S_IRUSR +S_IRWXG +S_IRWXO +S_IRWXU +S_ISGID +S_ISUID +S_ISVTX +S_IWGRP +S_IWOTH +S_IWRITE +S_IWUSR +S_IXGRP +S_IXOTH +S_IXUSR +TAB0 +TAB1 +TAB2 +TAB3 +TABDLY +TCFLSH +TCGETA +TCGETS +TCIFLUSH +TCIOFF +TCIOFLUSH +TCION +TCOFLUSH +TCOOFF +TCOON +TCP_CONGESTION +TCP_COOKIE_TRANSACTIONS +TCP_CORK +TCP_DEFER_ACCEPT +TCP_FASTOPEN +TCP_INFO +TCP_KEEPCNT +TCP_KEEPIDLE +TCP_KEEPINTVL +TCP_LINGER2 +TCP_MAXSEG +TCP_MD5SIG +TCP_NODELAY +TCP_QUEUE_SEQ +TCP_QUICKACK +TCP_REPAIR +TCP_REPAIR_OPTIONS +TCP_REPAIR_QUEUE +TCP_SYNCNT +TCP_THIN_DUPACK +TCP_THIN_LINEAR_TIMEOUTS +TCP_TIMESTAMP +TCP_USER_TIMEOUT +TCP_WINDOW_CLAMP +TCSADRAIN +TCSAFLUSH +TCSANOW +TCSBRK +TCSETA +TCSETAF +TCSETAW +TCSETS +TCSETSF +TCSETSW +TCXONC +THOUSEP +TIMER_ABSTIME +TIOCCONS +TIOCEXCL +TIOCGPGRP +TIOCGSERIAL +TIOCGSOFTCAR +TIOCGWINSZ +TIOCINQ +TIOCLINUX +TIOCMBIC +TIOCMBIS +TIOCMGET +TIOCMSET +TIOCM_CAR +TIOCM_CD +TIOCM_CTS +TIOCM_DSR +TIOCM_DTR +TIOCM_LE +TIOCM_RI +TIOCM_RNG +TIOCM_RTS +TIOCM_SR +TIOCM_ST +TIOCNXCL +TIOCOUTQ +TIOCSCTTY +TIOCSPGRP +TIOCSSOFTCAR +TIOCSTI +TIOCSWINSZ +TOSTOP +T_FMT +T_FMT_AMPM +UDP_CORK +UDP_ENCAP +UDP_NO_CHECK6_RX +UDP_NO_CHECK6_TX +UIO_MAXIOV +UTIME_NOW +UTIME_OMIT +VDISCARD +VEOF +VEOL +VEOL2 +VERASE +VINTR +VKILL +VLNEXT +VMIN +VQUIT +VREPRINT +VSTART +VSTOP +VSUSP +VSWTC +VT0 +VT1 +VTDLY +VTIME +VWERASE +WCONTINUED +WCOREDUMP +WEXITED +WEXITSTATUS +WIFCONTINUED +WIFEXITED +WIFSIGNALED +WIFSTOPPED +WNOHANG +WNOWAIT +WSTOPPED +WSTOPSIG +WTERMSIG +WUNTRACED +W_EXITCODE +W_OK +W_STOPCODE +XTABS +X_OK +YESEXPR +YESSTR +_CS_PATH +_CS_POSIX_V5_WIDTH_RESTRICTED_ENVS +_CS_POSIX_V6_ILP32_OFF32_CFLAGS +_CS_POSIX_V6_ILP32_OFF32_LDFLAGS +_CS_POSIX_V6_ILP32_OFF32_LIBS +_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS +_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS +_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS +_CS_POSIX_V6_ILP32_OFFBIG_LIBS +_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS +_CS_POSIX_V6_LP64_OFF64_CFLAGS +_CS_POSIX_V6_LP64_OFF64_LDFLAGS +_CS_POSIX_V6_LP64_OFF64_LIBS +_CS_POSIX_V6_LP64_OFF64_LINTFLAGS +_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS +_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS +_CS_POSIX_V6_LPBIG_OFFBIG_LIBS +_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS +_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS +_CS_POSIX_V7_ILP32_OFF32_CFLAGS +_CS_POSIX_V7_ILP32_OFF32_LDFLAGS +_CS_POSIX_V7_ILP32_OFF32_LIBS +_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS +_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS +_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS +_CS_POSIX_V7_ILP32_OFFBIG_LIBS +_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS +_CS_POSIX_V7_LP64_OFF64_CFLAGS +_CS_POSIX_V7_LP64_OFF64_LDFLAGS +_CS_POSIX_V7_LP64_OFF64_LIBS +_CS_POSIX_V7_LP64_OFF64_LINTFLAGS +_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS +_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS +_CS_POSIX_V7_LPBIG_OFFBIG_LIBS +_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS +_CS_POSIX_V7_WIDTH_RESTRICTED_ENVS +_IOFBF +_IOLBF +_IONBF +_PC_2_SYMLINKS +_PC_ALLOC_SIZE_MIN +_PC_ASYNC_IO +_PC_CHOWN_RESTRICTED +_PC_FILESIZEBITS +_PC_LINK_MAX +_PC_MAX_CANON +_PC_MAX_INPUT +_PC_NAME_MAX +_PC_NO_TRUNC +_PC_PATH_MAX +_PC_PIPE_BUF +_PC_PRIO_IO +_PC_REC_INCR_XFER_SIZE +_PC_REC_MAX_XFER_SIZE +_PC_REC_MIN_XFER_SIZE +_PC_REC_XFER_ALIGN +_PC_SOCK_MAXBUF +_PC_SYMLINK_MAX +_PC_SYNC_IO +_PC_VDISABLE +_POSIX_VDISABLE +_SC_2_CHAR_TERM +_SC_2_C_BIND +_SC_2_C_DEV +_SC_2_FORT_DEV +_SC_2_FORT_RUN +_SC_2_LOCALEDEF +_SC_2_PBS +_SC_2_PBS_ACCOUNTING +_SC_2_PBS_CHECKPOINT +_SC_2_PBS_LOCATE +_SC_2_PBS_MESSAGE +_SC_2_PBS_TRACK +_SC_2_SW_DEV +_SC_2_UPE +_SC_2_VERSION +_SC_ADVISORY_INFO +_SC_AIO_LISTIO_MAX +_SC_AIO_MAX +_SC_AIO_PRIO_DELTA_MAX +_SC_ARG_MAX +_SC_ASYNCHRONOUS_IO +_SC_ATEXIT_MAX +_SC_AVPHYS_PAGES +_SC_BARRIERS +_SC_BC_BASE_MAX +_SC_BC_DIM_MAX +_SC_BC_SCALE_MAX +_SC_BC_STRING_MAX +_SC_CHILD_MAX +_SC_CLK_TCK +_SC_CLOCK_SELECTION +_SC_COLL_WEIGHTS_MAX +_SC_CPUTIME +_SC_FSYNC +_SC_GETGR_R_SIZE_MAX +_SC_GETPW_R_SIZE_MAX +_SC_HOST_NAME_MAX +_SC_IOV_MAX +_SC_IPV6 +_SC_JOB_CONTROL +_SC_LOGIN_NAME_MAX +_SC_MEMLOCK +_SC_MEMLOCK_RANGE +_SC_MEMORY_PROTECTION +_SC_MESSAGE_PASSING +_SC_MONOTONIC_CLOCK +_SC_MQ_OPEN_MAX +_SC_MQ_PRIO_MAX +_SC_NGROUPS_MAX +_SC_NPROCESSORS_CONF +_SC_NPROCESSORS_ONLN +_SC_NZERO +_SC_OPEN_MAX +_SC_PAGESIZE +_SC_PAGE_SIZE +_SC_PASS_MAX +_SC_PHYS_PAGES +_SC_PRIORITIZED_IO +_SC_PRIORITY_SCHEDULING +_SC_RAW_SOCKETS +_SC_READER_WRITER_LOCKS +_SC_REALTIME_SIGNALS +_SC_REGEXP +_SC_RE_DUP_MAX +_SC_RTSIG_MAX +_SC_SAVED_IDS +_SC_SEMAPHORES +_SC_SEM_NSEMS_MAX +_SC_SEM_VALUE_MAX +_SC_SHARED_MEMORY_OBJECTS +_SC_SHELL +_SC_SPAWN +_SC_SPIN_LOCKS +_SC_SPORADIC_SERVER +_SC_SS_REPL_MAX +_SC_STREAMS +_SC_STREAM_MAX +_SC_SYMLOOP_MAX +_SC_SYNCHRONIZED_IO +_SC_THREADS +_SC_THREAD_ATTR_STACKADDR +_SC_THREAD_ATTR_STACKSIZE +_SC_THREAD_CPUTIME +_SC_THREAD_DESTRUCTOR_ITERATIONS +_SC_THREAD_KEYS_MAX +_SC_THREAD_PRIORITY_SCHEDULING +_SC_THREAD_PRIO_INHERIT +_SC_THREAD_PRIO_PROTECT +_SC_THREAD_PROCESS_SHARED +_SC_THREAD_ROBUST_PRIO_INHERIT +_SC_THREAD_ROBUST_PRIO_PROTECT +_SC_THREAD_SAFE_FUNCTIONS +_SC_THREAD_SPORADIC_SERVER +_SC_THREAD_STACK_MIN +_SC_THREAD_THREADS_MAX +_SC_TIMEOUTS +_SC_TIMERS +_SC_TIMER_MAX +_SC_TRACE +_SC_TRACE_EVENT_FILTER +_SC_TRACE_EVENT_NAME_MAX +_SC_TRACE_INHERIT +_SC_TRACE_LOG +_SC_TRACE_NAME_MAX +_SC_TRACE_SYS_MAX +_SC_TRACE_USER_EVENT_MAX +_SC_TTY_NAME_MAX +_SC_TYPED_MEMORY_OBJECTS +_SC_TZNAME_MAX +_SC_V6_ILP32_OFF32 +_SC_V6_ILP32_OFFBIG +_SC_V6_LP64_OFF64 +_SC_V6_LPBIG_OFFBIG +_SC_V7_ILP32_OFF32 +_SC_V7_ILP32_OFFBIG +_SC_V7_LP64_OFF64 +_SC_V7_LPBIG_OFFBIG +_SC_VERSION +_SC_XBS5_ILP32_OFF32 +_SC_XBS5_ILP32_OFFBIG +_SC_XBS5_LP64_OFF64 +_SC_XBS5_LPBIG_OFFBIG +_SC_XOPEN_CRYPT +_SC_XOPEN_ENH_I18N +_SC_XOPEN_LEGACY +_SC_XOPEN_REALTIME +_SC_XOPEN_REALTIME_THREADS +_SC_XOPEN_SHM +_SC_XOPEN_STREAMS +_SC_XOPEN_UNIX +_SC_XOPEN_VERSION +_SC_XOPEN_XCU_VERSION +_SC_XOPEN_XPG2 +_SC_XOPEN_XPG3 +_SC_XOPEN_XPG4 +__SIZEOF_PTHREAD_ATTR_T +__SIZEOF_PTHREAD_BARRIERATTR_T +__SIZEOF_PTHREAD_BARRIER_T +__SIZEOF_PTHREAD_CONDATTR_T +__SIZEOF_PTHREAD_COND_COMPAT_T +__SIZEOF_PTHREAD_COND_T +__SIZEOF_PTHREAD_MUTEXATTR_T +__SIZEOF_PTHREAD_MUTEX_T +__SIZEOF_PTHREAD_RWLOCKATTR_T +__SIZEOF_PTHREAD_RWLOCK_T +__WALL +__WCLONE +__WNOTHREAD +__c_anonymous_ifc_ifcu +__c_anonymous_ifr_ifru +__c_anonymous_ifru_map +__errno_location +__exit_status +_exit +abort +accept +access +addrinfo +alarm +aligned_alloc +arpd_request +arphdr +arpreq +arpreq_old +atof +atoi +atol +atoll +bind +blkcnt64_t +blkcnt_t +blksize_t +c_char +c_double +c_float +c_int +c_long +c_longlong +c_schar +c_short +c_uchar +c_uint +c_ulong +c_ulonglong +c_ushort +c_void +calloc +cc_t +cfgetispeed +cfgetospeed +cfmakeraw +cfsetospeed +chdir +chmod +chown +chroot +clearenv +clearerr +clock_gettime +clock_t +clockid_t +close +closedir +closelog +cmsghdr +confstr +connect +cpu_set_t +creat +creat64 +daemon +dev_t +difftime +dirent +dirent64 +dirfd +dl_iterate_phdr +dl_phdr_info +dladdr +dlclose +dlerror +dlopen +dlsym +dup +dup2 +endgrent +endmntent +endpwent +endservent +execl +execle +execlp +execv +execve +execvp +fchdir +fchmod +fchmodat +fclose +fcntl +fd_set +fdatasync +fdopen +fdopendir +feof +ferror +fflush +fgetc +fgetpos +fgets +fileno +flock +fnmatch +fopen +fork +fpathconf +fpos_t +fprintf +fputc +fputs +fread +free +freeaddrinfo +freopen +freopen64 +fsblkcnt64_t +fsblkcnt_t +fscanf +fseek +fseeko +fseeko64 +fsetpos +fsetpos64 +fsfilcnt64_t +fsfilcnt_t +fsid_t +fstat64 +fstatvfs +fstatvfs64 +fsync +ftell +ftello +ftello64 +ftruncate +fwrite +gai_strerror +getaddrinfo +getchar +getchar_unlocked +getcwd +getegid +getenv +geteuid +getgid +getgrent +getgrgid +getgrgid_r +getgrnam +getgrnam_r +getgroups +gethostname +getline +getlogin +getmntent +getnameinfo +getopt +getopt_long +getpeername +getpgid +getpgrp +getpid +getppid +getprotobyname +getprotobynumber +getpwnam +getpwuid +getrlimit +getrlimit64 +getrusage +getservbyname +getservbyport +getservent +getsid +getsockname +getsockopt +gettimeofday +getuid +gid_t +gmtime +gmtime_r +group +hostent +hstrerror +iconv +iconv_close +iconv_open +iconv_t +id_t +idtype_t +if_freenameindex +if_indextoname +if_nameindex +if_nametoindex +ifaddrs +ifconf +ifreq +in6_addr +in6_pktinfo +in6_rtmsg +in6addr_any +in6addr_loopback +in_addr +in_addr_t +in_pktinfo +in_port_t +initgroups +ino64_t +ino_t +int16_t +int32_t +int64_t +int8_t +intmax_t +intptr_t +ioctl +iovec +ip_mreq +ip_mreq_source +ip_mreqn +ipc_perm +ipv6_mreq +isalnum +isalpha +isatty +isblank +iscntrl +isdigit +isgraph +islower +isprint +ispunct +isspace +isupper +isxdigit +itimerspec +itimerval +jrand48 +key_t +kill +killpg +lchown +lconv +linger +listen +locale_t +localeconv +localtime +localtime_r +lockf +loff_t +lseek +lstat +makedev +malloc +memalign +memccpy +memchr +memcmp +memcpy +memmem +memmove +memrchr +memset +mkdir +mkdtemp +mkfifo +mknod +mkstemp +mktime +mlock +mlockall +mmap +mmap64 +mmsghdr +mntent +mode_t +mount +mprotect +msghdr +msync +munlock +munlockall +munmap +nanosleep +newlocale +nfds_t +nice +nl_item +nl_langinfo +nl_langinfo_l +nlink_t +nrand48 +off64_t +off_t +open +open64 +openat +openat64 +opendir +openlog +openpty +packet_mreq +passwd +pathconf +pause +pclose +perror +pid_t +pipe +poll +pollfd +popen +posix_fadvise +posix_fadvise64 +posix_memalign +ppoll +prctl +pread +pread64 +preadv +printf +protoent +pthread_attr_destroy +pthread_attr_getguardsize +pthread_attr_getinheritsched +pthread_attr_getschedparam +pthread_attr_getschedpolicy +pthread_attr_getstack +pthread_attr_getstacksize +pthread_attr_init +pthread_attr_setdetachstate +pthread_attr_setguardsize +pthread_attr_setinheritsched +pthread_attr_setschedparam +pthread_attr_setschedpolicy +pthread_attr_setstacksize +pthread_attr_t +pthread_barrier_destroy +pthread_barrier_init +pthread_barrier_t +pthread_barrier_wait +pthread_barrierattr_destroy +pthread_barrierattr_init +pthread_barrierattr_setpshared +pthread_barrierattr_t +pthread_cancel +pthread_cond_broadcast +pthread_cond_destroy +pthread_cond_init +pthread_cond_signal +pthread_cond_t +pthread_cond_timedwait +pthread_cond_wait +pthread_condattr_destroy +pthread_condattr_init +pthread_condattr_setpshared +pthread_condattr_t +pthread_create +pthread_detach +pthread_equal +pthread_exit +pthread_getaffinity_np +pthread_getattr_np +pthread_getschedparam +pthread_getspecific +pthread_join +pthread_key_create +pthread_key_delete +pthread_key_t +pthread_kill +pthread_mutex_destroy +pthread_mutex_init +pthread_mutex_lock +pthread_mutex_t +pthread_mutex_trylock +pthread_mutex_unlock +pthread_mutexattr_destroy +pthread_mutexattr_init +pthread_mutexattr_settype +pthread_mutexattr_t +pthread_once +pthread_once_t +pthread_rwlock_destroy +pthread_rwlock_init +pthread_rwlock_rdlock +pthread_rwlock_t +pthread_rwlock_tryrdlock +pthread_rwlock_trywrlock +pthread_rwlock_unlock +pthread_rwlock_wrlock +pthread_rwlockattr_destroy +pthread_rwlockattr_init +pthread_rwlockattr_setpshared +pthread_rwlockattr_t +pthread_self +pthread_setaffinity_np +pthread_setspecific +pthread_spin_destroy +pthread_spin_init +pthread_spin_lock +pthread_spin_trylock +pthread_spin_unlock +pthread_spinlock_t +pthread_t +ptrdiff_t +putchar +putchar_unlocked +putenv +puts +pwrite +pwrite64 +pwritev +qsort +raise +read +readdir +readdir64 +readdir64_r +readdir_r +readv +realloc +realpath +recv +recvfrom +recvmsg +regcomp +regerror +regex_t +regexec +regfree +regmatch_t +regoff_t +remove +rename +rewind +rewinddir +rlim64_t +rlim_t +rlimit +rlimit64 +rmdir +rtentry +rusage +sa_family_t +scanf +sched_get_priority_max +sched_get_priority_min +sched_getaffinity +sched_getcpu +sched_yield +seekdir +sem_close +sem_destroy +sem_getvalue +sem_init +sem_open +sem_post +sem_t +sem_timedwait +sem_trywait +sem_unlink +sem_wait +sembuf +send +sendto +servent +setbuf +setegid +setenv +seteuid +setgid +setgrent +setgroups +sethostname +setlocale +setlogmask +setmntent +setpgid +setregid +setreuid +setrlimit +setrlimit64 +setservent +setsid +setsockopt +settimeofday +setuid +setvbuf +shmat +shmatt_t +shmctl +shmdt +shmget +shmid_ds +shutdown +sigaction +sigaddset +sigdelset +sigemptyset +sigevent +sigfillset +sighandler_t +siginfo_t +sigismember +signal +sigpending +sigprocmask +sigset_t +sigval +size_t +sleep +snprintf +sockaddr +sockaddr_in +sockaddr_in6 +sockaddr_storage +sockaddr_un +socket +socketpair +socklen_t +speed_t +sprintf +spwd +srand +srand48 +sscanf +ssize_t +stack_t +stat +stat64 +statfs +statfs64 +statvfs +statvfs64 +strcasecmp +strcasestr +strcat +strchr +strchrnul +strcmp +strcoll +strcpy +strcspn +strdup +strerror +strerror_r +strftime +strftime_l +strlen +strncasecmp +strncat +strncmp +strncpy +strndup +strnlen +strpbrk +strptime +strrchr +strsignal +strspn +strstr +strtod +strtof +strtok +strtol +strtoll +strtoul +strtoull +strxfrm +suseconds_t +symlink +sysconf +sysinfo +syslog +system +tcdrain +tcflag_t +tcflow +tcflush +tcgetattr +tcgetpgrp +tcgetsid +tcsendbreak +tcsetattr +tcsetpgrp +telldir +termios +time +time_t +timegm +timer_create +timer_delete +timer_gettime +timer_settime +times +timespec +timeval +timezone +tm +tmpfile +tms +tolower +toupper +truncate +truncate64 +ttyname +ttyname_r +ucred +uid_t +uint16_t +uint32_t +uint64_t +uint8_t +uintmax_t +uintptr_t +umask +uname +ungetc +unlink +unsetenv +useconds_t +uselocale +usleep +utimbuf +utime +utimensat +utsname +wait +waitpid +wchar_t +wcslen +wcstombs +winsize +wmemchr +write +writev diff --git a/src/unix/linux_like/l4re/mod.rs b/src/unix/linux_like/l4re/mod.rs new file mode 100644 index 0000000000000..eb7cde2e3cde6 --- /dev/null +++ b/src/unix/linux_like/l4re/mod.rs @@ -0,0 +1,194 @@ +///! L4Re specifics +///! This module contains definitions required by various L4Re libc backends. +///! Some of them are formally not part of the libc, but are a dependency of the +///! libc and hence we should provide them here. +use crate::prelude::*; + +pub type l4_umword_t = c_ulong; // Unsigned machine word. +pub type pthread_t = *mut c_void; + +pub type dev_t = u64; +pub type socklen_t = u32; +pub type mode_t = u32; +pub type ino64_t = u64; +pub type off64_t = i64; +pub type blkcnt64_t = i64; +pub type rlim64_t = u64; +pub type nfds_t = c_ulong; +pub type nl_item = c_int; +pub type idtype_t = c_uint; +pub type loff_t = c_longlong; +pub type pthread_key_t = c_uint; +pub type pthread_once_t = c_int; +pub type pthread_spinlock_t = c_int; + +s! { + /// CPU sets. + pub struct l4_sched_cpu_set_t { + // from the L4Re docs + /// Combination of granularity and offset. + /// + /// The granularity defines how many CPUs each bit in map describes. + /// The offset is the number of the first CPU described by the first + /// bit in the bitmap. + /// offset must be a multiple of 2^graularity. + /// + /// | MSB | LSB | + /// | ---------------- | ------------------- | + /// | 8bit granularity | 24bit offset .. | + gran_offset: l4_umword_t, + /// Bitmap of CPUs. + map: l4_umword_t, + } + + pub struct pthread_attr_t { + __detachstate: c_int, + __schedpolicy: c_int, + __schedparam: super::__sched_param, + __inheritsched: c_int, + __scope: c_int, + __guardsize: size_t, + __stackaddr_set: c_int, + __stackaddr: *mut c_void, // better don't use it + __stacksize: size_t, + // L4Re specifics + pub affinity: l4_sched_cpu_set_t, + pub create_flags: c_uint, + } +} + +// L4Re requires a min stack size of 64k; that isn't defined in uClibc, but +// somewhere in the core libraries. uClibc wants 16k, but that's not enough. +pub const PTHREAD_STACK_MIN: usize = 65536; + +pub const BOTHER: crate::speed_t = 0o010000; + +pub const RLIMIT_CPU: crate::__rlimit_resource_t = 0; +pub const RLIMIT_FSIZE: crate::__rlimit_resource_t = 1; +pub const RLIMIT_DATA: crate::__rlimit_resource_t = 2; +pub const RLIMIT_STACK: crate::__rlimit_resource_t = 3; +pub const RLIMIT_CORE: crate::__rlimit_resource_t = 4; +pub const RLIMIT_RSS: crate::__rlimit_resource_t = 5; +pub const RLIMIT_NPROC: crate::__rlimit_resource_t = 6; +pub const RLIMIT_NOFILE: crate::__rlimit_resource_t = 7; +pub const RLIMIT_MEMLOCK: crate::__rlimit_resource_t = 8; +pub const RLIMIT_AS: crate::__rlimit_resource_t = 9; +pub const RLIMIT_LOCKS: crate::__rlimit_resource_t = 10; +pub const RLIMIT_SIGPENDING: crate::__rlimit_resource_t = 11; +pub const RLIMIT_MSGQUEUE: crate::__rlimit_resource_t = 12; +pub const RLIMIT_NICE: crate::__rlimit_resource_t = 13; +pub const RLIMIT_RTPRIO: crate::__rlimit_resource_t = 14; +pub const RLIMIT_RTTIME: crate::__rlimit_resource_t = 15; +pub const RLIMIT_NLIMITS: crate::__rlimit_resource_t = RLIM_NLIMITS; +pub const RLIM_NLIMITS: crate::__rlimit_resource_t = 16; + +pub const SOL_SOCKET: c_int = 1; + +// pub const SO_DEBUG: c_int = 1; +pub const SO_REUSEADDR: c_int = 2; +pub const SO_TYPE: c_int = 3; +pub const SO_ERROR: c_int = 4; +pub const SO_DONTROUTE: c_int = 5; +pub const SO_BROADCAST: c_int = 6; +pub const SO_SNDBUF: c_int = 7; +pub const SO_RCVBUF: c_int = 8; +pub const SO_KEEPALIVE: c_int = 9; +pub const SO_OOBINLINE: c_int = 10; +pub const SO_NO_CHECK: c_int = 11; +pub const SO_PRIORITY: c_int = 12; +pub const SO_LINGER: c_int = 13; +pub const SO_BSDCOMPAT: c_int = 14; +pub const SO_PASSCRED: c_int = 16; +pub const SO_PEERCRED: c_int = 17; +pub const SO_RCVLOWAT: c_int = 18; +pub const SO_SNDLOWAT: c_int = 19; +pub const SO_RCVTIMEO: c_int = 20; +pub const SO_SNDTIMEO: c_int = 21; +pub const SO_SECURITY_AUTHENTICATION: c_int = 22; +pub const SO_SECURITY_ENCRYPTION_TRANSPORT: c_int = 23; +pub const SO_SECURITY_ENCRYPTION_NETWORK: c_int = 24; +pub const SO_BINDTODEVICE: c_int = 25; +pub const SO_ATTACH_FILTER: c_int = 26; +pub const SO_DETACH_FILTER: c_int = 27; +pub const SO_PEERNAME: c_int = 28; + +pub const SO_ACCEPTCONN: c_int = 30; +pub const SO_PEERSEC: c_int = 31; + +pub const TCGETS: Ioctl = 0x5401; +pub const TCSETS: Ioctl = 0x5402; +pub const TCSETSW: Ioctl = 0x5403; +pub const TCSETSF: Ioctl = 0x5404; +pub const TCGETA: Ioctl = 0x5405; +pub const TCSETA: Ioctl = 0x5406; +pub const TCSETAW: Ioctl = 0x5407; +pub const TCSETAF: Ioctl = 0x5408; +pub const TCSBRK: Ioctl = 0x5409; +pub const TCXONC: Ioctl = 0x540A; +pub const TCFLSH: Ioctl = 0x540B; +pub const TIOCM_LE: c_int = 0x001; +pub const TIOCM_DTR: c_int = 0x002; +pub const TIOCM_RTS: c_int = 0x004; +pub const TIOCM_ST: c_int = 0x008; +pub const TIOCM_SR: c_int = 0x010; +pub const TIOCM_CTS: c_int = 0x020; +pub const TIOCM_CAR: c_int = 0x040; +pub const TIOCM_CD: c_int = TIOCM_CAR; +pub const TIOCM_RNG: c_int = 0x080; +pub const TIOCM_RI: c_int = TIOCM_RNG; +pub const TIOCM_DSR: c_int = 0x100; +pub const TIOCEXCL: Ioctl = 0x540C; +pub const TIOCNXCL: Ioctl = 0x540D; +pub const TIOCSCTTY: Ioctl = 0x540E; +pub const TIOCGPGRP: Ioctl = 0x540F; +pub const TIOCSPGRP: Ioctl = 0x5410; +pub const TIOCOUTQ: Ioctl = 0x5411; +pub const TIOCSTI: Ioctl = 0x5412; +pub const TIOCGWINSZ: Ioctl = 0x5413; +pub const TIOCSWINSZ: Ioctl = 0x5414; +pub const TIOCMGET: Ioctl = 0x5415; +pub const TIOCMBIS: Ioctl = 0x5416; +pub const TIOCMBIC: Ioctl = 0x5417; +pub const TIOCMSET: Ioctl = 0x5418; +pub const TIOCGSOFTCAR: Ioctl = 0x5419; +pub const TIOCSSOFTCAR: Ioctl = 0x541A; +pub const FIONREAD: Ioctl = 0x541B; +pub const TIOCINQ: Ioctl = FIONREAD; +pub const TIOCLINUX: Ioctl = 0x541C; +pub const TIOCCONS: Ioctl = 0x541D; +pub const TIOCGSERIAL: Ioctl = 0x541E; +pub const TIOCSSERIAL: Ioctl = 0x541F; +pub const TIOCPKT: Ioctl = 0x5420; +pub const FIONBIO: Ioctl = 0x5421; +pub const TIOCNOTTY: Ioctl = 0x5422; +pub const TIOCSETD: Ioctl = 0x5423; +pub const TIOCGETD: Ioctl = 0x5424; +pub const TCSBRKP: Ioctl = 0x5425; +pub const TIOCSBRK: Ioctl = 0x5427; +pub const TIOCCBRK: Ioctl = 0x5428; +pub const TIOCGSID: Ioctl = 0x5429; +pub const TIOCGPTN: Ioctl = 0x80045430; +pub const TIOCSPTLCK: Ioctl = 0x40045431; +pub const FIONCLEX: Ioctl = 0x5450; +pub const FIOCLEX: Ioctl = 0x5451; +pub const FIOASYNC: Ioctl = 0x5452; +pub const TIOCSERCONFIG: Ioctl = 0x5453; +pub const TIOCSERGWILD: Ioctl = 0x5454; +pub const TIOCSERSWILD: Ioctl = 0x5455; +pub const TIOCGLCKTRMIOS: Ioctl = 0x5456; +pub const TIOCSLCKTRMIOS: Ioctl = 0x5457; +pub const TIOCSERGSTRUCT: Ioctl = 0x5458; +pub const TIOCSERGETLSR: Ioctl = 0x5459; +pub const TIOCSERGETMULTI: Ioctl = 0x545A; +pub const TIOCSERSETMULTI: Ioctl = 0x545B; +pub const TIOCMIWAIT: Ioctl = 0x545C; +pub const TIOCGICOUNT: Ioctl = 0x545D; + +pub const BLKSSZGET: Ioctl = 0x1268; + +cfg_if! { + if #[cfg(target_env = "uclibc")] { + mod uclibc; + pub use self::uclibc::*; + } +} diff --git a/src/unix/linux_like/l4re/uclibc/mod.rs b/src/unix/linux_like/l4re/uclibc/mod.rs new file mode 100644 index 0000000000000..2098a847284aa --- /dev/null +++ b/src/unix/linux_like/l4re/uclibc/mod.rs @@ -0,0 +1,535 @@ +use crate::off64_t; +use crate::prelude::*; + +pub type shmatt_t = c_ulong; +pub type regoff_t = c_int; +pub type rlim_t = c_ulong; +pub type __rlimit_resource_t = c_int; +pub type __priority_which_t = c_uint; + +pub type _pthread_descr = *mut c_void; +pub type __pthread_cond_align_t = c_long; + +cfg_if! { + if #[cfg(doc)] { + // Used in `linux::arch` to define ioctl constants. + pub(crate) type Ioctl = c_ulong; + } else { + #[doc(hidden)] + pub type Ioctl = c_ulong; + } +} + +s! { + pub struct cmsghdr { + pub cmsg_len: crate::size_t, + pub cmsg_level: c_int, + pub cmsg_type: c_int, + } + + pub struct msghdr { + pub msg_name: *mut c_void, + pub msg_namelen: crate::socklen_t, + pub msg_iov: *mut crate::iovec, + #[cfg(target_pointer_width = "32")] + pub msg_iovlen: c_int, + #[cfg(target_pointer_width = "64")] + pub msg_iovlen: crate::size_t, + pub msg_control: *mut c_void, + #[cfg(target_pointer_width = "32")] + pub msg_controllen: crate::socklen_t, + #[cfg(target_pointer_width = "64")] + pub msg_controllen: crate::size_t, + pub msg_flags: c_int, + } + + pub struct statfs { + pub f_type: fsword_t, + pub f_bsize: fsword_t, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: fsword_t, + pub f_frsize: fsword_t, + pub f_flags: fsword_t, + pub f_spare: [fsword_t; 4], + } + + pub struct statfs64 { + pub f_type: fsword_t, + pub f_bsize: fsword_t, + pub f_blocks: crate::fsblkcnt64_t, + pub f_bfree: crate::fsblkcnt64_t, + pub f_bavail: crate::fsblkcnt64_t, + pub f_files: crate::fsfilcnt64_t, + pub f_ffree: crate::fsfilcnt64_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: fsword_t, + pub f_frsize: fsword_t, + pub f_flags: fsword_t, + pub f_spare: [fsword_t; 4], + } + + pub struct statvfs64 { + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsfilcnt64_t, + pub f_bfree: crate::fsfilcnt64_t, + pub f_bavail: crate::fsfilcnt64_t, + pub f_files: crate::fsfilcnt64_t, + pub f_ffree: crate::fsfilcnt64_t, + pub f_favail: crate::fsfilcnt64_t, + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + pub __f_spare: [c_int; 6], + } + + pub struct ipc_perm { + pub __key: crate::key_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + pub cuid: crate::uid_t, + pub cgid: crate::gid_t, + #[cfg(target_pointer_width = "32")] + pub mode: c_ushort, + #[cfg(target_pointer_width = "64")] + pub mode: c_uint, + #[cfg(target_pointer_width = "32")] + __pad1: c_ushort, + pub __seq: c_ushort, + __pad2: c_ushort, + __unused1: c_ulong, + __unused2: c_ulong, + } + + pub struct statvfs { + // Different than GNU! + pub f_bsize: c_ulong, + pub f_frsize: c_ulong, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_favail: crate::fsfilcnt_t, + #[cfg(target_endian = "little")] + pub f_fsid: c_ulong, + #[cfg(target_pointer_width = "32")] + __f_unused: c_int, + #[cfg(target_endian = "big")] + pub f_fsid: c_ulong, + pub f_flag: c_ulong, + pub f_namemax: c_ulong, + __f_spare: [c_int; 6], + } + + pub struct sysinfo { + pub uptime: c_long, + pub loads: [c_ulong; 3], + pub totalram: c_ulong, + pub freeram: c_ulong, + pub sharedram: c_ulong, + pub bufferram: c_ulong, + pub totalswap: c_ulong, + pub freeswap: c_ulong, + pub procs: c_ushort, + pub pad: c_ushort, + pub totalhigh: c_ulong, + pub freehigh: c_ulong, + pub mem_unit: c_uint, + #[cfg(target_pointer_width = "32")] + pub _f: [c_char; 8], + #[cfg(target_pointer_width = "64")] + pub _f: [c_char; 0], + } + + pub struct regex_t { + __buffer: *mut c_void, + __allocated: size_t, + __used: size_t, + __syntax: c_ulong, + __fastmap: *mut c_char, + __translate: *mut c_char, + __re_nsub: size_t, + __bitfield: u8, + } + + pub struct rtentry { + pub rt_pad1: c_ulong, + pub rt_dst: crate::sockaddr, + pub rt_gateway: crate::sockaddr, + pub rt_genmask: crate::sockaddr, + pub rt_flags: c_ushort, + pub rt_pad2: c_short, + pub rt_pad3: c_ulong, + pub rt_tos: c_uchar, + pub rt_class: c_uchar, + #[cfg(target_pointer_width = "64")] + pub rt_pad4: [c_short; 3usize], + #[cfg(not(target_pointer_width = "64"))] + pub rt_pad4: c_short, + pub rt_metric: c_short, + pub rt_dev: *mut c_char, + pub rt_mtu: c_ulong, + pub rt_window: c_ulong, + pub rt_irtt: c_ushort, + } + + pub struct __exit_status { + pub e_termination: c_short, + pub e_exit: c_short, + } + + 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, + /// This contains the bitfields `tcpi_snd_wscale` and `tcpi_rcv_wscale`. + /// Each is 4 bits. + pub tcpi_snd_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_total_retrans: u32, + } + + pub struct __sched_param { + __sched_priority: c_int, + } + + pub struct _pthread_fastlock { + pub __status: c_long, + pub __spinlock: c_int, + } + + pub struct pthread_cond_t { + pub __c_lock: _pthread_fastlock, + pub __c_waiting: _pthread_descr, + pub __padding: [u8; PTHREAD_COND_PADDING_SIZE], + pub __align: __pthread_cond_align_t, + } + + pub struct pthread_condattr_t { + pub __dummy: c_int, + } + + pub struct pthread_mutex_t { + pub __m_reserved: c_int, + pub __m_count: c_int, + pub __m_owner: _pthread_descr, + pub __m_kind: c_int, + pub __m_lock: _pthread_fastlock, + } + + pub struct pthread_mutexattr_t { + pub __mutexkind: c_int, + } + + pub struct pthread_rwlock_t { + pub __rw_lock: _pthread_fastlock, + pub __rw_readers: c_int, + pub __rw_writer: _pthread_descr, + pub __rw_read_waiting: _pthread_descr, + pub __rw_write_waiting: _pthread_descr, + pub __rw_kind: c_int, + pub __rw_pshared: c_int, + } + + pub struct pthread_rwlockattr_t { + pub __lockkind: c_int, + pub __pshared: c_int, + } + + pub struct pthread_barrier_t { + pub __ba_lock: _pthread_fastlock, + pub __ba_required: c_int, + pub __ba_present: c_int, + pub __ba_waiting: _pthread_descr, + } + + pub struct pthread_barrierattr_t { + pub __pshared: c_int, + } +} + +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut c_void { + #[repr(C)] + struct siginfo_sigfault { + _si_signo: c_int, + _si_errno: c_int, + _si_code: c_int, + si_addr: *mut c_void, + } + (*core::ptr::from_ref(self).cast::()).si_addr + } + + pub unsafe fn si_value(&self) -> crate::sigval { + #[repr(C)] + struct siginfo_si_value { + _si_signo: c_int, + _si_errno: c_int, + _si_code: c_int, + _si_timerid: c_int, + _si_overrun: c_int, + si_value: crate::sigval, + } + (*core::ptr::from_ref(self).cast::()).si_value + } +} + +s_no_extra_traits! { + // Internal, for casts to access union fields + struct sifields_sigchld { + si_pid: crate::pid_t, + si_uid: crate::uid_t, + si_status: c_int, + si_utime: c_long, + si_stime: c_long, + } + + // Internal, for casts to access union fields + union sifields { + _align_pointer: *mut c_void, + sigchld: sifields_sigchld, + } + + // Internal, for casts to access union fields. Note that some variants + // of sifields start with a pointer, which makes the alignment of + // sifields vary on 32-bit and 64-bit architectures. + struct siginfo_f { + _siginfo_base: [c_int; 3], + sifields: sifields, + } +} + +impl siginfo_t { + unsafe fn sifields(&self) -> &sifields { + &(*core::ptr::from_ref(self).cast::()).sifields + } + + pub unsafe fn si_pid(&self) -> crate::pid_t { + self.sifields().sigchld.si_pid + } + + pub unsafe fn si_uid(&self) -> crate::uid_t { + self.sifields().sigchld.si_uid + } + + pub unsafe fn si_status(&self) -> c_int { + self.sifields().sigchld.si_status + } + + pub unsafe fn si_utime(&self) -> c_long { + self.sifields().sigchld.si_utime + } + + pub unsafe fn si_stime(&self) -> c_long { + self.sifields().sigchld.si_stime + } +} + +pub const MCL_CURRENT: c_int = 0x0001; +pub const MCL_FUTURE: c_int = 0x0002; +pub const MCL_ONFAULT: c_int = 0x0004; + +pub const SIGEV_THREAD_ID: c_int = 4; + +pub const AF_VSOCK: c_int = 40; + +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; + +// These are different than GNU! +pub const LC_CTYPE: c_int = 0; +pub const LC_NUMERIC: c_int = 1; +pub const LC_TIME: c_int = 3; +pub const LC_COLLATE: c_int = 4; +pub const LC_MONETARY: c_int = 2; +pub const LC_MESSAGES: c_int = 5; +pub const LC_ALL: c_int = 6; +// end different section + +// MS_ flags for mount(2) +pub const MS_RMT_MASK: c_ulong = + crate::MS_RDONLY | crate::MS_SYNCHRONOUS | crate::MS_MANDLOCK | crate::MS_I_VERSION; + +pub const ENOTSUP: c_int = EOPNOTSUPP; + +pub const IPV6_JOIN_GROUP: c_int = 20; +pub const IPV6_LEAVE_GROUP: c_int = 21; + +// Different than Gnu. +pub const FILENAME_MAX: c_uint = 4095; + +pub const PRIO_PROCESS: c_int = 0; +pub const PRIO_PGRP: c_int = 1; +pub const PRIO_USER: c_int = 2; + +pub const SOMAXCONN: c_int = 128; + +pub const ST_RELATIME: c_ulong = 4096; + +pub const SO_TIMESTAMP: c_int = 29; + +pub const RLIM_INFINITY: crate::rlim_t = !0; + +pub const AF_NFC: c_int = PF_NFC; +pub const BUFSIZ: c_int = 256; +pub const EDEADLK: c_int = 0x23; +pub const EDEADLOCK: c_int = EDEADLK; +pub const EXTA: c_uint = B19200; +pub const EXTB: c_uint = B38400; +pub const EXTPROC: crate::tcflag_t = 0o200000; +pub const FOPEN_MAX: c_int = 16; +pub const F_GETOWN: c_int = 9; +pub const F_OFD_GETLK: c_int = 36; +pub const F_OFD_SETLK: c_int = 37; +pub const F_OFD_SETLKW: c_int = 38; +pub const F_RDLCK: c_int = 0; +pub const F_SETOWN: c_int = 8; +pub const F_UNLCK: c_int = 2; +pub const F_WRLCK: c_int = 1; +pub const IPV6_MULTICAST_ALL: c_int = 29; +pub const IPV6_ROUTER_ALERT_ISOLATE: c_int = 30; +pub const MAP_HUGE_SHIFT: c_int = 26; +pub const MAP_HUGE_MASK: c_int = 0x3f; +pub const MSG_COPY: c_int = 0o40000; +pub const NI_MAXHOST: crate::socklen_t = 1025; +pub const O_TMPFILE: c_int = 0o20000000 | O_DIRECTORY; +pub const PACKET_MR_UNICAST: c_int = 3; +pub const PF_NFC: c_int = 39; +pub const PF_VSOCK: c_int = 40; +pub const RTLD_NOLOAD: c_int = 0x00004; +pub const RUSAGE_THREAD: c_int = 1; +pub const SHM_EXEC: c_int = 0o100000; +pub const SOCK_DCCP: c_int = 6; +pub const SOCK_PACKET: c_int = 10; +pub const TCP_COOKIE_TRANSACTIONS: c_int = 15; +pub const UDP_GRO: c_int = 104; +pub const UDP_SEGMENT: c_int = 103; + +pub const PTHREAD_RWLOCK_PREFER_READER_NP: c_int = 0; +pub const PTHREAD_RWLOCK_PREFER_WRITER_NP: c_int = 1; +pub const PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP: c_int = 2; +pub const PTHREAD_RWLOCK_DEFAULT_NP: c_int = PTHREAD_RWLOCK_PREFER_WRITER_NP; + +pub const PTHREAD_MUTEX_TIMED_NP: c_int = 0; +pub const PTHREAD_MUTEX_RECURSIVE_NP: c_int = 1; +pub const PTHREAD_MUTEX_ERRORCHECK_NP: c_int = 2; +pub const PTHREAD_MUTEX_ADAPTIVE_NP: c_int = 3; + +pub const __LT_SPINLOCK_INIT: c_int = 0; + +pub const __LOCK_INITIALIZER: _pthread_fastlock = _pthread_fastlock { + __status: 0, + __spinlock: __LT_SPINLOCK_INIT, +}; + +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + __m_reserved: 0, + __m_count: 0, + __m_owner: core::ptr::null_mut(), + __m_kind: PTHREAD_MUTEX_TIMED_NP, + __m_lock: __LOCK_INITIALIZER, +}; + +const PTHREAD_COND_PADDING_SIZE: usize = 48 + - size_of::<_pthread_fastlock>() + - size_of::<_pthread_descr>() + - size_of::<__pthread_cond_align_t>(); + +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + __c_lock: __LOCK_INITIALIZER, + __c_waiting: core::ptr::null_mut(), + __padding: [0; PTHREAD_COND_PADDING_SIZE], + __align: 0, +}; + +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + __rw_lock: __LOCK_INITIALIZER, + __rw_readers: 0, + __rw_writer: core::ptr::null_mut(), + __rw_read_waiting: core::ptr::null_mut(), + __rw_write_waiting: core::ptr::null_mut(), + __rw_kind: PTHREAD_RWLOCK_DEFAULT_NP, + __rw_pshared: crate::PTHREAD_PROCESS_PRIVATE, +}; + +extern "C" { + pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut crate::timezone) -> c_int; + + pub fn pthread_rwlockattr_getkind_np( + attr: *const crate::pthread_rwlockattr_t, + val: *mut c_int, + ) -> c_int; + pub fn pthread_rwlockattr_setkind_np( + attr: *mut crate::pthread_rwlockattr_t, + val: c_int, + ) -> c_int; + + pub fn openpty( + amaster: *mut c_int, + aslave: *mut c_int, + name: *mut c_char, + termp: *mut termios, + winp: *mut crate::winsize, + ) -> c_int; + + pub fn getnameinfo( + sa: *const crate::sockaddr, + salen: crate::socklen_t, + host: *mut c_char, + hostlen: crate::socklen_t, + serv: *mut c_char, + servlen: crate::socklen_t, + flags: c_int, + ) -> c_int; + + pub fn pwritev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off64_t) -> ssize_t; + pub fn preadv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int, offset: off64_t) -> ssize_t; + + pub fn getrlimit64(resource: crate::__rlimit_resource_t, rlim: *mut crate::rlimit64) -> c_int; + pub fn setrlimit64(resource: crate::__rlimit_resource_t, rlim: *const crate::rlimit64) + -> c_int; + pub fn getrlimit(resource: crate::__rlimit_resource_t, rlim: *mut crate::rlimit) -> c_int; + pub fn setrlimit(resource: crate::__rlimit_resource_t, rlim: *const crate::rlimit) -> c_int; + pub fn getauxval(type_: c_ulong) -> c_ulong; + +} + +cfg_if! { + if #[cfg(target_arch = "x86_64")] { + mod x86_64; + pub use self::x86_64::*; + } else { + // unsupported target + } +} diff --git a/src/unix/linux_like/l4re/uclibc/x86_64/mod.rs b/src/unix/linux_like/l4re/uclibc/x86_64/mod.rs new file mode 100644 index 0000000000000..bb4b2ed4a6fea --- /dev/null +++ b/src/unix/linux_like/l4re/uclibc/x86_64/mod.rs @@ -0,0 +1,416 @@ +//! Definitions for uclibc on 64bit systems + +use crate::prelude::*; + +pub type wchar_t = c_int; +pub type time_t = c_long; + +pub type clock_t = c_long; +pub type fsblkcnt_t = c_ulong; +pub type fsfilcnt_t = c_ulong; +pub type ino_t = c_ulong; +pub type nlink_t = c_ulong; +pub type off_t = c_long; +pub type fsword_t = c_long; +pub type suseconds_t = c_long; + +pub type blksize_t = c_long; +pub type blkcnt_t = c_long; + +pub type fsblkcnt64_t = c_ulong; +pub type fsfilcnt64_t = c_ulong; + +pub type __u32 = c_uint; +pub type __u64 = c_ulong; + +s! { + pub struct stat { + pub st_dev: c_ulong, + pub st_ino: crate::ino_t, + // According to uclibc/libc/sysdeps/linux/x86_64/bits/stat.h, order of + // nlink and mode are swapped on 64 bit systems. + pub st_nlink: nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + __pad0: c_int, + pub st_rdev: c_ulong, + pub st_size: crate::off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atim: crate::timespec, + pub st_mtim: crate::timespec, + pub st_ctim: crate::timespec, + __uclibc_unused: [c_long; 3], + } + + pub struct stat64 { + pub st_dev: c_ulong, + pub st_ino: crate::ino_t, + pub st_nlink: nlink_t, + pub st_mode: crate::mode_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + __pad0: c_int, + pub st_rdev: c_ulong, + pub st_size: crate::off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atim: crate::timespec, + pub st_mtim: crate::timespec, + pub st_ctim: crate::timespec, + st_pad4: [c_long; 3], + } + + pub struct shmid_ds { + pub shm_perm: crate::ipc_perm, + pub shm_segsz: crate::size_t, + pub shm_atime: crate::time_t, + pub shm_dtime: crate::time_t, + pub shm_ctime: crate::time_t, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __unused4: c_ulong, + __unused5: c_ulong, + } + + #[allow(unpredictable_function_pointer_comparisons)] + pub struct sigaction { + pub sa_handler: crate::sighandler_t, + pub sa_flags: c_ulong, + pub sa_restorer: Option, + pub sa_mask: sigset_t, + } + + pub struct sigset_t { + __val: [c_ulong; 1], + } + + #[repr(align(8))] + pub struct siginfo_t { + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, + pub _pad: [c_int; 28], + } + + pub struct stack_t { + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: crate::size_t, + } + + pub struct flock { + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, + } + + pub struct termios { + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; crate::NCCS], + pub c_ispeed: crate::speed_t, + pub c_ospeed: crate::speed_t, + } +} + +s_no_extra_traits! { + pub union sem_t { + #[cfg(target_pointer_width = "32")] + __size: [c_char; 16], + #[cfg(target_pointer_width = "64")] + __size: [c_char; 32], + __align: [c_long; 0], + } +} + +pub const O_CLOEXEC: c_int = 0o2000000; +pub const __SIZEOF_PTHREAD_ATTR_T: usize = 36; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_COND_T: usize = 48; +pub const __SIZEOF_PTHREAD_COND_COMPAT_T: usize = 12; +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; + +pub const NCCS: usize = 32; + +pub const FIOQSIZE: crate::Ioctl = 0x5460; + +// I wasn't able to find those constants +// in uclibc build environment for armv7 +pub const MAP_HUGETLB: c_int = 0x040000; // from linux/other/mod.rs + +// autogenerated constants with hand tuned types +pub const B0: crate::speed_t = 0; +pub const B1000000: crate::speed_t = 0x1008; +pub const B110: crate::speed_t = 0x3; +pub const B115200: crate::speed_t = 0x1002; +pub const B1152000: crate::speed_t = 0x1009; +pub const B1200: crate::speed_t = 0x9; +pub const B134: crate::speed_t = 0x4; +pub const B150: crate::speed_t = 0x5; +pub const B1500000: crate::speed_t = 0x100a; +pub const B1800: crate::speed_t = 0xa; +pub const B19200: crate::speed_t = 0xe; +pub const B200: crate::speed_t = 0x6; +pub const B2000000: crate::speed_t = 0x100b; +pub const B230400: crate::speed_t = 0x1003; +pub const B2400: crate::speed_t = 0xb; +pub const B2500000: crate::speed_t = 0x100c; +pub const B300: crate::speed_t = 0x7; +pub const B3000000: crate::speed_t = 0x100d; +pub const B3500000: crate::speed_t = 0x100e; +pub const B38400: crate::speed_t = 0xf; +pub const B4000000: crate::speed_t = 0x100f; +pub const B460800: crate::speed_t = 0x1004; +pub const B4800: crate::speed_t = 0xc; +pub const B50: crate::speed_t = 0x1; +pub const B500000: crate::speed_t = 0x1005; +pub const B57600: crate::speed_t = 0x1001; +pub const B576000: crate::speed_t = 0x1006; +pub const B600: crate::speed_t = 0x8; +pub const B75: crate::speed_t = 0x2; +pub const B921600: crate::speed_t = 0x1007; +pub const B9600: crate::speed_t = 0xd; +pub const BS1: c_int = 0x2000; +pub const BSDLY: c_int = 0x2000; +pub const CBAUD: crate::tcflag_t = 0x100f; +pub const CBAUDEX: crate::tcflag_t = 0x1000; +pub const CIBAUD: crate::tcflag_t = 0x100f0000; +pub const CLOCAL: crate::tcflag_t = 0x800; +pub const CPU_SETSIZE: c_int = 0x400; +pub const CR1: c_int = 0x200; +pub const CR2: c_int = 0x400; +pub const CR3: c_int = 0x600; +pub const CRDLY: c_int = 0x600; +pub const CREAD: crate::tcflag_t = 0x80; +pub const CS6: crate::tcflag_t = 0x10; +pub const CS7: crate::tcflag_t = 0x20; +pub const CS8: crate::tcflag_t = 0x30; +pub const CSIZE: crate::tcflag_t = 0x30; +pub const CSTOPB: crate::tcflag_t = 0x40; +pub const EADDRINUSE: c_int = 0x62; +pub const EADDRNOTAVAIL: c_int = 0x63; +pub const EADV: c_int = 0x44; +pub const EAFNOSUPPORT: c_int = 0x61; +pub const EALREADY: c_int = 0x72; +pub const EBADE: c_int = 0x34; +pub const EBADFD: c_int = 0x4d; +pub const EBADMSG: c_int = 0x4a; +pub const EBADR: c_int = 0x35; +pub const EBADRQC: c_int = 0x38; +pub const EBADSLT: c_int = 0x39; +pub const EBFONT: c_int = 0x3b; +pub const ECANCELED: c_int = 0x7d; +pub const ECHOCTL: crate::tcflag_t = 0x200; +pub const ECHOE: crate::tcflag_t = 0x10; +pub const ECHOK: crate::tcflag_t = 0x20; +pub const ECHOKE: crate::tcflag_t = 0x800; +pub const ECHONL: crate::tcflag_t = 0x40; +pub const ECHOPRT: crate::tcflag_t = 0x400; +pub const ECHRNG: c_int = 0x2c; +pub const ECOMM: c_int = 0x46; +pub const ECONNABORTED: c_int = 0x67; +pub const ECONNREFUSED: c_int = 0x6f; +pub const ECONNRESET: c_int = 0x68; +pub const EDESTADDRREQ: c_int = 0x59; +pub const EDOTDOT: c_int = 0x49; +pub const EDQUOT: c_int = 0x7a; +pub const EHOSTDOWN: c_int = 0x70; +pub const EHOSTUNREACH: c_int = 0x71; +pub const EIDRM: c_int = 0x2b; +pub const EILSEQ: c_int = 0x54; +pub const EINPROGRESS: c_int = 0x73; +pub const EISCONN: c_int = 0x6a; +pub const EISNAM: c_int = 0x78; +pub const EKEYEXPIRED: c_int = 0x7f; +pub const EKEYREJECTED: c_int = 0x81; +pub const EKEYREVOKED: c_int = 0x80; +pub const EL2HLT: c_int = 0x33; +pub const EL2NSYNC: c_int = 0x2d; +pub const EL3HLT: c_int = 0x2e; +pub const EL3RST: c_int = 0x2f; +pub const ELIBACC: c_int = 0x4f; +pub const ELIBBAD: c_int = 0x50; +pub const ELIBEXEC: c_int = 0x53; +pub const ELIBMAX: c_int = 0x52; +pub const ELIBSCN: c_int = 0x51; +pub const ELNRNG: c_int = 0x30; +pub const ELOOP: c_int = 0x28; +pub const EMEDIUMTYPE: c_int = 0x7c; +pub const EMSGSIZE: c_int = 0x5a; +pub const EMULTIHOP: c_int = 0x48; +pub const ENAMETOOLONG: c_int = 0x24; +pub const ENAVAIL: c_int = 0x77; +pub const ENETDOWN: c_int = 0x64; +pub const ENETRESET: c_int = 0x66; +pub const ENETUNREACH: c_int = 0x65; +pub const ENOANO: c_int = 0x37; +pub const ENOBUFS: c_int = 0x69; +pub const ENOCSI: c_int = 0x32; +pub const ENODATA: c_int = 0x3d; +pub const ENOKEY: c_int = 0x7e; +pub const ENOLCK: c_int = 0x25; +pub const ENOLINK: c_int = 0x43; +pub const ENOMEDIUM: c_int = 0x7b; +pub const ENOMSG: c_int = 0x2a; +pub const ENONET: c_int = 0x40; +pub const ENOPKG: c_int = 0x41; +pub const ENOPROTOOPT: c_int = 0x5c; +pub const ENOSR: c_int = 0x3f; +pub const ENOSTR: c_int = 0x3c; +pub const ENOSYS: c_int = 0x26; +pub const ENOTCONN: c_int = 0x6b; +pub const ENOTEMPTY: c_int = 0x27; +pub const ENOTNAM: c_int = 0x76; +pub const ENOTRECOVERABLE: c_int = 0x83; +pub const ENOTSOCK: c_int = 0x58; +pub const ENOTUNIQ: c_int = 0x4c; +pub const EOPNOTSUPP: c_int = 0x5f; +pub const EOVERFLOW: c_int = 0x4b; +pub const EOWNERDEAD: c_int = 0x82; +pub const EPFNOSUPPORT: c_int = 0x60; +pub const EPOLL_CLOEXEC: c_int = 0x80000; +pub const EPROTO: c_int = 0x47; +pub const EPROTONOSUPPORT: c_int = 0x5d; +pub const EPROTOTYPE: c_int = 0x5b; +pub const EREMCHG: c_int = 0x4e; +pub const EREMOTE: c_int = 0x42; +pub const EREMOTEIO: c_int = 0x79; +pub const ERESTART: c_int = 0x55; +pub const ESHUTDOWN: c_int = 0x6c; +pub const ESOCKTNOSUPPORT: c_int = 0x5e; +pub const ESRMNT: c_int = 0x45; +pub const ESTALE: c_int = 0x74; +pub const ESTRPIPE: c_int = 0x56; +pub const ETIME: c_int = 0x3e; +pub const ETIMEDOUT: c_int = 0x6e; +pub const ETOOMANYREFS: c_int = 0x6d; +pub const EUCLEAN: c_int = 0x75; +pub const EUNATCH: c_int = 0x31; +pub const EUSERS: c_int = 0x57; +pub const EXFULL: c_int = 0x36; +pub const FF1: c_int = 0x8000; +pub const FFDLY: c_int = 0x8000; +pub const FLUSHO: crate::tcflag_t = 0x1000; +pub const F_GETLK: c_int = 0x5; +pub const F_SETLK: c_int = 0x6; +pub const F_SETLKW: c_int = 0x7; +pub const HUPCL: crate::tcflag_t = 0x400; +pub const ICANON: crate::tcflag_t = 0x2; +pub const IEXTEN: crate::tcflag_t = 0x8000; +pub const ISIG: crate::tcflag_t = 0x1; +pub const IXOFF: crate::tcflag_t = 0x1000; +pub const IXON: crate::tcflag_t = 0x400; +pub const MAP_ANON: c_int = 0x20; +pub const MAP_ANONYMOUS: c_int = 0x20; +pub const MAP_DENYWRITE: c_int = 0x800; +pub const MAP_EXECUTABLE: c_int = 0x1000; +pub const MAP_GROWSDOWN: c_int = 0x100; +pub const MAP_LOCKED: c_int = 0x2000; +pub const MAP_NONBLOCK: c_int = 0x10000; +pub const MAP_NORESERVE: c_int = 0x4000; +pub const MAP_POPULATE: c_int = 0x8000; +pub const MAP_STACK: c_int = 0x20000; +pub const MINSIGSTKSZ: c_int = 2048; +pub const NLDLY: crate::tcflag_t = 0x100; +pub const NOFLSH: crate::tcflag_t = 0x80; +pub const OLCUC: crate::tcflag_t = 0x2; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const O_ACCMODE: c_int = 0x3; +pub const O_APPEND: c_int = 0x400; +pub const O_ASYNC: c_int = 0o20000; +pub const O_CREAT: c_int = 0x40; +pub const O_DIRECT: c_int = 0o40000; +pub const O_DIRECTORY: c_int = 0o200000; +pub const O_DSYNC: c_int = O_SYNC; +pub const O_EXCL: c_int = 0x80; +pub const O_FSYNC: c_int = O_SYNC; +pub const O_LARGEFILE: c_int = 0; +pub const O_NDELAY: c_int = O_NONBLOCK; +pub const O_NOATIME: c_int = 0o1000000; +pub const O_NOCTTY: c_int = 0x100; +pub const O_NOFOLLOW: c_int = 0o400000; +pub const O_NONBLOCK: c_int = 0x800; +pub const O_PATH: c_int = 0o10000000; +pub const O_RSYNC: c_int = O_SYNC; +pub const O_SYNC: c_int = 0o10000; +pub const O_TRUNC: c_int = 0x200; +pub const PARENB: crate::tcflag_t = 0x100; +pub const PARODD: crate::tcflag_t = 0x200; +pub const PENDIN: crate::tcflag_t = 0x4000; +pub const POLLWRBAND: c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const RTLD_GLOBAL: c_int = 0x00100; + +// These are typed unsigned to match sigaction +pub const SA_NOCLDSTOP: c_ulong = 0x1; +pub const SA_NOCLDWAIT: c_ulong = 0x2; +pub const SA_SIGINFO: c_ulong = 0x4; +pub const SA_NODEFER: c_ulong = 0x40000000; +pub const SA_ONSTACK: c_ulong = 0x8000000; +pub const SA_RESETHAND: c_ulong = 0x80000000; +pub const SA_RESTART: c_ulong = 0x10000000; + +pub const SIGBUS: c_int = 0x7; +pub const SIGCHLD: c_int = 0x11; +pub const SIGCONT: c_int = 0x12; +pub const SIGIO: c_int = 0x1d; +pub const SIGPOLL: c_int = SIGIO; +pub const SIGPROF: c_int = 0x1b; +pub const SIGPWR: c_int = 0x1e; +pub const SIGSTKFLT: c_int = 0x10; +pub const SIGSTKSZ: c_int = 8192; +pub const SIGSTOP: c_int = 0x13; +pub const SIGSYS: c_int = 0x1f; +pub const SIGTSTP: c_int = 0x14; +pub const SIGTTIN: c_int = 0x15; +pub const SIGTTOU: c_int = 0x16; +pub const SIGURG: c_int = 0x17; +pub const SIGUSR1: c_int = 0xa; +pub const SIGUSR2: c_int = 0xc; +pub const SIGVTALRM: c_int = 0x1a; +pub const SIGWINCH: c_int = 0x1c; +pub const SIGXCPU: c_int = 0x18; +pub const SIGXFSZ: c_int = 0x19; +pub const SIG_BLOCK: c_int = 0; +pub const SIG_UNBLOCK: c_int = 0x1; +pub const SIG_SETMASK: c_int = 0x2; +pub const SOCK_DGRAM: c_int = 0x2; +pub const SOCK_NONBLOCK: c_int = 0o0004000; +pub const SOCK_SEQPACKET: c_int = 0x5; +pub const SOCK_STREAM: c_int = 0x1; +pub const TAB1: c_int = 0x800; +pub const TAB2: c_int = 0x1000; +pub const TAB3: c_int = 0x1800; +pub const TABDLY: c_int = 0x1800; +pub const TCSADRAIN: c_int = 0x1; +pub const TCSAFLUSH: c_int = 0x2; +pub const TCSANOW: c_int = 0; +pub const TOSTOP: crate::tcflag_t = 0x100; +pub const VDISCARD: usize = 0xd; +pub const VEOF: usize = 0x4; +pub const VEOL: usize = 0xb; +pub const VEOL2: usize = 0x10; +pub const VMIN: usize = 0x6; +pub const VREPRINT: usize = 0xc; +pub const VSTART: usize = 0x8; +pub const VSTOP: usize = 0x9; +pub const VSUSP: usize = 0xa; +pub const VSWTC: usize = 0x7; +pub const VT1: c_int = 0x4000; +pub const VTDLY: c_int = 0x4000; +pub const VTIME: usize = 0x5; +pub const VWERASE: usize = 0xe; +pub const XTABS: crate::tcflag_t = 0x1800; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 5373c5cc96a33..d60d1b183465c 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -9,7 +9,6 @@ use crate::{ _IOWR, }; -pub type useconds_t = u32; pub type dev_t = u64; pub type socklen_t = u32; pub type mode_t = u32; @@ -34,51 +33,11 @@ pub type __s16 = c_short; pub type __u32 = c_uint; pub type __s32 = c_int; -pub type Elf32_Half = u16; -pub type Elf32_Word = u32; -pub type Elf32_Off = u32; -pub type Elf32_Addr = u32; -pub type Elf32_Xword = u64; -pub type Elf32_Sword = i32; - -pub type Elf64_Half = u16; -pub type Elf64_Word = u32; -pub type Elf64_Off = u64; -pub type Elf64_Addr = u64; -pub type Elf64_Xword = u64; -pub type Elf64_Sxword = i64; -pub type Elf64_Sword = i32; - -pub type Elf32_Section = u16; -pub type Elf64_Section = u16; - -pub type Elf32_Relr = Elf32_Word; -pub type Elf64_Relr = Elf32_Xword; -pub type Elf32_Rel = __c_anonymous_elf32_rel; -pub type Elf64_Rel = __c_anonymous_elf64_rel; - -cfg_if! { - if #[cfg(not(target_arch = "sparc64"))] { - pub type Elf32_Rela = __c_anonymous_elf32_rela; - pub type Elf64_Rela = __c_anonymous_elf64_rela; - } -} - -pub type iconv_t = *mut c_void; - // linux/sctp.h pub type sctp_assoc_t = __s32; pub type eventfd_t = u64; -cfg_if! { - if #[cfg(not(target_env = "gnu"))] { - extern_ty! { - pub enum fpos64_t {} // FIXME(linux): fill this out with a struct - } - } -} - e! { #[repr(u32)] pub enum tpacket_versions { @@ -99,41 +58,6 @@ c_enum! { } s! { - pub struct glob_t { - pub gl_pathc: size_t, - pub gl_pathv: *mut *mut c_char, - pub gl_offs: size_t, - pub gl_flags: c_int, - - __unused1: Padding<*mut c_void>, - __unused2: Padding<*mut c_void>, - __unused3: Padding<*mut c_void>, - __unused4: Padding<*mut c_void>, - __unused5: Padding<*mut c_void>, - } - - pub struct passwd { - pub pw_name: *mut c_char, - pub pw_passwd: *mut c_char, - pub pw_uid: crate::uid_t, - pub pw_gid: crate::gid_t, - pub pw_gecos: *mut c_char, - pub pw_dir: *mut c_char, - pub pw_shell: *mut c_char, - } - - pub struct spwd { - pub sp_namp: *mut c_char, - pub sp_pwdp: *mut c_char, - pub sp_lstchg: c_long, - pub sp_min: c_long, - pub sp_max: c_long, - pub sp_warn: c_long, - pub sp_inact: c_long, - pub sp_expire: c_long, - pub sp_flag: c_ulong, - } - pub struct dqblk { pub dqb_bhardlimit: u64, pub dqb_bsoftlimit: u64, @@ -171,15 +95,6 @@ s! { _pad: Padding<[u8; 28]>, } - pub struct itimerspec { - pub it_interval: crate::timespec, - pub it_value: crate::timespec, - } - - pub struct fsid_t { - __val: [c_int; 2], - } - pub struct fanout_args { #[cfg(target_endian = "little")] pub id: __u16, @@ -189,13 +104,6 @@ s! { pub max_num_members: __u32, } - pub struct packet_mreq { - pub mr_ifindex: c_int, - pub mr_type: c_ushort, - pub mr_alen: c_ushort, - pub mr_address: [c_uchar; 8], - } - #[deprecated(since = "0.2.70", note = "sockaddr_ll type must be used instead")] pub struct sockaddr_pkt { pub spkt_family: c_ushort, @@ -203,6 +111,11 @@ s! { pub spkt_protocol: c_ushort, } + pub struct if_nameindex { + pub if_index: c_uint, + pub if_name: *mut c_char, + } + pub struct tpacket_auxdata { pub tp_status: __u32, pub tp_len: __u32, @@ -307,18 +220,6 @@ s! { pub ts_last_pkt: crate::tpacket_bd_ts, } - pub struct cpu_set_t { - #[cfg(all(target_pointer_width = "32", not(target_arch = "x86_64")))] - bits: [u32; 32], - #[cfg(not(all(target_pointer_width = "32", not(target_arch = "x86_64"))))] - bits: [u64; 16], - } - - pub struct if_nameindex { - pub if_index: c_uint, - pub if_name: *mut c_char, - } - // System V IPC pub struct msginfo { pub msgpool: c_int, @@ -331,12 +232,6 @@ s! { pub msgseg: c_ushort, } - pub struct sembuf { - pub sem_num: c_ushort, - pub sem_op: c_short, - pub sem_flg: c_short, - } - pub struct input_event { // FIXME(1.0): Change to the commented variant, see https://github.com/rust-lang/libc/pull/4148#discussion_r1857511742 #[cfg(any(target_pointer_width = "64", not(linux_time_bits64)))] @@ -476,169 +371,10 @@ s! { pub absinfo: input_absinfo, } - pub struct dl_phdr_info { - #[cfg(target_pointer_width = "64")] - pub dlpi_addr: Elf64_Addr, - #[cfg(target_pointer_width = "32")] - pub dlpi_addr: Elf32_Addr, - - pub dlpi_name: *const c_char, - - #[cfg(target_pointer_width = "64")] - pub dlpi_phdr: *const Elf64_Phdr, - #[cfg(target_pointer_width = "32")] - pub dlpi_phdr: *const Elf32_Phdr, - - #[cfg(target_pointer_width = "64")] - pub dlpi_phnum: Elf64_Half, - #[cfg(target_pointer_width = "32")] - pub dlpi_phnum: Elf32_Half, - - // As of uClibc 1.0.36, the following fields are - // gated behind a "#if 0" block which always evaluates - // to false. So I'm just removing these, and if uClibc changes - // the #if block in the future to include the following fields, these - // will probably need including here. tsidea, skrap - // QNX (NTO) platform does not define these fields - #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] - pub dlpi_adds: c_ulonglong, - #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] - pub dlpi_subs: c_ulonglong, - #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] - pub dlpi_tls_modid: size_t, - #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] - pub dlpi_tls_data: *mut c_void, - } - - pub struct Elf32_Ehdr { - pub e_ident: [c_uchar; 16], - pub e_type: Elf32_Half, - pub e_machine: Elf32_Half, - pub e_version: Elf32_Word, - pub e_entry: Elf32_Addr, - pub e_phoff: Elf32_Off, - pub e_shoff: Elf32_Off, - pub e_flags: Elf32_Word, - pub e_ehsize: Elf32_Half, - pub e_phentsize: Elf32_Half, - pub e_phnum: Elf32_Half, - pub e_shentsize: Elf32_Half, - pub e_shnum: Elf32_Half, - pub e_shstrndx: Elf32_Half, - } - - pub struct Elf64_Ehdr { - pub e_ident: [c_uchar; 16], - pub e_type: Elf64_Half, - pub e_machine: Elf64_Half, - pub e_version: Elf64_Word, - pub e_entry: Elf64_Addr, - pub e_phoff: Elf64_Off, - pub e_shoff: Elf64_Off, - pub e_flags: Elf64_Word, - pub e_ehsize: Elf64_Half, - pub e_phentsize: Elf64_Half, - pub e_phnum: Elf64_Half, - pub e_shentsize: Elf64_Half, - pub e_shnum: Elf64_Half, - pub e_shstrndx: Elf64_Half, - } - - pub struct Elf32_Sym { - pub st_name: Elf32_Word, - pub st_value: Elf32_Addr, - pub st_size: Elf32_Word, - pub st_info: c_uchar, - pub st_other: c_uchar, - pub st_shndx: Elf32_Section, - } - - pub struct Elf64_Sym { - pub st_name: Elf64_Word, - pub st_info: c_uchar, - pub st_other: c_uchar, - pub st_shndx: Elf64_Section, - pub st_value: Elf64_Addr, - pub st_size: Elf64_Xword, - } - - pub struct Elf32_Phdr { - pub p_type: Elf32_Word, - pub p_offset: Elf32_Off, - pub p_vaddr: Elf32_Addr, - pub p_paddr: Elf32_Addr, - pub p_filesz: Elf32_Word, - pub p_memsz: Elf32_Word, - pub p_flags: Elf32_Word, - pub p_align: Elf32_Word, - } - - pub struct Elf64_Phdr { - pub p_type: Elf64_Word, - pub p_flags: Elf64_Word, - pub p_offset: Elf64_Off, - pub p_vaddr: Elf64_Addr, - pub p_paddr: Elf64_Addr, - pub p_filesz: Elf64_Xword, - pub p_memsz: Elf64_Xword, - pub p_align: Elf64_Xword, - } - - pub struct Elf32_Shdr { - pub sh_name: Elf32_Word, - pub sh_type: Elf32_Word, - pub sh_flags: Elf32_Word, - pub sh_addr: Elf32_Addr, - pub sh_offset: Elf32_Off, - pub sh_size: Elf32_Word, - pub sh_link: Elf32_Word, - pub sh_info: Elf32_Word, - pub sh_addralign: Elf32_Word, - pub sh_entsize: Elf32_Word, - } - - pub struct Elf64_Shdr { - pub sh_name: Elf64_Word, - pub sh_type: Elf64_Word, - pub sh_flags: Elf64_Xword, - pub sh_addr: Elf64_Addr, - pub sh_offset: Elf64_Off, - pub sh_size: Elf64_Xword, - pub sh_link: Elf64_Word, - pub sh_info: Elf64_Word, - pub sh_addralign: Elf64_Xword, - pub sh_entsize: Elf64_Xword, - } - - pub struct __c_anonymous_elf32_rel { - pub r_offset: Elf32_Addr, - pub r_info: Elf32_Word, - } - - pub struct __c_anonymous_elf64_rel { - pub r_offset: Elf64_Addr, - pub r_info: Elf64_Xword, - } - pub struct __c_anonymous__kernel_fsid_t { pub val: [c_int; 2], } - pub struct ucred { - pub pid: crate::pid_t, - pub uid: crate::uid_t, - pub gid: crate::gid_t, - } - - pub struct mntent { - pub mnt_fsname: *mut c_char, - pub mnt_dir: *mut c_char, - pub mnt_type: *mut c_char, - pub mnt_opts: *mut c_char, - pub mnt_freq: c_int, - pub mnt_passno: c_int, - } - pub struct posix_spawn_file_actions_t { __allocated: c_int, __used: c_int, @@ -665,20 +401,6 @@ s! { pub reserved: u16, } - pub struct in6_pktinfo { - pub ipi6_addr: crate::in6_addr, - pub ipi6_ifindex: c_uint, - } - - pub struct arpd_request { - pub req: c_ushort, - pub ip: u32, - pub dev: c_ulong, - pub stamp: c_ulong, - pub updated: c_ulong, - pub ha: [c_uchar; crate::MAX_ADDR_LEN], - } - pub struct inotify_event { pub wd: c_int, pub mask: u32, @@ -699,7 +421,7 @@ s! { pub struct fanotify_event_info_fid { pub hdr: fanotify_event_info_header, - pub fsid: crate::__kernel_fsid_t, + pub fsid: __kernel_fsid_t, pub handle: [c_uchar; 0], } @@ -711,11 +433,6 @@ s! { pub svm_zero: [u8; 4], } - pub struct regmatch_t { - pub rm_so: regoff_t, - pub rm_eo: regoff_t, - } - pub struct sock_extended_err { pub ee_errno: u32, pub ee_origin: u8, @@ -780,28 +497,12 @@ s! { pub nla_type: u16, } - pub struct __c_anonymous_ifru_map { - pub mem_start: c_ulong, - pub mem_end: c_ulong, - pub base_addr: c_ushort, - pub irq: c_uchar, - pub dma: c_uchar, - pub port: c_uchar, - } - pub struct in6_ifreq { pub ifr6_addr: crate::in6_addr, pub ifr6_prefixlen: u32, pub ifr6_ifindex: c_int, } - pub struct option { - pub name: *const c_char, - pub has_arg: c_int, - pub flag: *mut c_int, - pub val: c_int, - } - // linux/openat2.h #[non_exhaustive] pub struct open_how { @@ -901,11 +602,6 @@ s! { pub auth_keynumber: __u16, } - pub struct rlimit64 { - pub rlim_cur: rlim64_t, - pub rlim_max: rlim64_t, - } - // linux/tls.h pub struct tls_crypto_info { @@ -1159,13 +855,19 @@ s! { } #[cfg_attr( - any(target_env = "musl", target_env = "ohos", target_pointer_width = "32"), + any( + target_env = "musl", + target_env = "ohos", + target_env = "uclibc", + target_pointer_width = "32" + ), repr(align(4)) )] #[cfg_attr( all( not(target_env = "musl"), not(target_env = "ohos"), + not(target_env = "uclibc"), target_pointer_width = "64" ), repr(align(8)) @@ -1374,22 +1076,6 @@ s! { pub nl_groups: u32, } - pub struct dirent { - pub d_ino: crate::ino_t, - pub d_off: off_t, - pub d_reclen: c_ushort, - pub d_type: c_uchar, - pub d_name: [c_char; 256], - } - - pub struct dirent64 { - pub d_ino: crate::ino64_t, - pub d_off: off64_t, - pub d_reclen: c_ushort, - pub d_type: c_uchar, - pub d_name: [c_char; 256], - } - pub struct sockaddr_alg { pub salg_family: crate::sa_family_t, pub salg_type: [c_uchar; 14], @@ -1398,65 +1084,6 @@ s! { pub salg_name: [c_uchar; 64], } - pub struct uinput_setup { - pub id: input_id, - pub name: [c_char; UINPUT_MAX_NAME_SIZE], - pub ff_effects_max: __u32, - } - - pub struct uinput_user_dev { - pub name: [c_char; UINPUT_MAX_NAME_SIZE], - pub id: input_id, - pub ff_effects_max: __u32, - pub absmax: [__s32; ABS_CNT], - pub absmin: [__s32; ABS_CNT], - pub absfuzz: [__s32; ABS_CNT], - pub absflat: [__s32; ABS_CNT], - } - - // x32 compatibility - // See https://sourceware.org/bugzilla/show_bug.cgi?id=21279 - pub struct mq_attr { - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub mq_flags: i64, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub mq_maxmsg: i64, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub mq_msgsize: i64, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub mq_curmsgs: i64, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pad: Padding<[i64; 4]>, - - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_flags: c_long, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_maxmsg: c_long, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_msgsize: c_long, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_curmsgs: c_long, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pad: Padding<[c_long; 4]>, - } - - pub struct hwtstamp_config { - pub flags: c_int, - pub tx_type: c_int, - pub rx_filter: c_int, - } - - pub struct sched_attr { - pub size: __u32, - pub sched_policy: __u32, - pub sched_flags: crate::__u64, - pub sched_nice: __s32, - pub sched_priority: __u32, - pub sched_runtime: crate::__u64, - pub sched_deadline: crate::__u64, - pub sched_period: crate::__u64, - } - #[cfg_attr( all( any(target_env = "musl", target_env = "ohos"), @@ -1503,7 +1130,7 @@ s! { target_arch = "powerpc", target_arch = "sparc", target_arch = "x86_64", - target_arch = "x86" + target_arch = "x86", ) ), repr(align(4)) @@ -1521,14 +1148,14 @@ s! { target_arch = "powerpc", target_arch = "sparc", target_arch = "x86_64", - target_arch = "x86" + target_arch = "x86", )) ), repr(align(8)) )] pub struct pthread_mutex_t { #[doc(hidden)] - size: [u8; crate::__SIZEOF_PTHREAD_MUTEX_T], + size: [c_char; crate::__SIZEOF_PTHREAD_MUTEX_T], } #[cfg_attr( @@ -1609,6 +1236,65 @@ s! { pub struct pthread_barrier_t { size: [u8; crate::__SIZEOF_PTHREAD_BARRIER_T], } + + pub struct uinput_setup { + pub id: input_id, + pub name: [c_char; UINPUT_MAX_NAME_SIZE], + pub ff_effects_max: __u32, + } + + pub struct uinput_user_dev { + pub name: [c_char; UINPUT_MAX_NAME_SIZE], + pub id: input_id, + pub ff_effects_max: __u32, + pub absmax: [__s32; ABS_CNT], + pub absmin: [__s32; ABS_CNT], + pub absfuzz: [__s32; ABS_CNT], + pub absflat: [__s32; ABS_CNT], + } + + // x32 compatibility + // See https://sourceware.org/bugzilla/show_bug.cgi?id=21279 + pub struct mq_attr { + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub mq_flags: i64, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub mq_maxmsg: i64, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub mq_msgsize: i64, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub mq_curmsgs: i64, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pad: Padding<[i64; 4]>, + + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub mq_flags: c_long, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub mq_maxmsg: c_long, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub mq_msgsize: c_long, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub mq_curmsgs: c_long, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pad: Padding<[c_long; 4]>, + } + + pub struct hwtstamp_config { + pub flags: c_int, + pub tx_type: c_int, + pub rx_filter: c_int, + } + + pub struct sched_attr { + pub size: __u32, + pub sched_policy: __u32, + pub sched_flags: crate::__u64, + pub sched_nice: __s32, + pub sched_priority: __u32, + pub sched_runtime: crate::__u64, + pub sched_deadline: crate::__u64, + pub sched_period: crate::__u64, + } } cfg_if! { @@ -1632,18 +1318,6 @@ cfg_if! { pub src_addr: crate::sockaddr, pub tsc: [__u8; IW_ENCODE_SEQ_MAX_SIZE], } - - pub struct __c_anonymous_elf32_rela { - pub r_offset: Elf32_Addr, - pub r_info: Elf32_Word, - pub r_addend: Elf32_Sword, - } - - pub struct __c_anonymous_elf64_rela { - pub r_offset: Elf64_Addr, - pub r_info: Elf64_Xword, - pub r_addend: Elf64_Sxword, - } } } } @@ -1661,41 +1335,6 @@ s_no_extra_traits! { pub iv: [c_uchar; 0], } - pub union __c_anonymous_ifr_ifru { - pub ifru_addr: crate::sockaddr, - pub ifru_dstaddr: crate::sockaddr, - pub ifru_broadaddr: crate::sockaddr, - pub ifru_netmask: crate::sockaddr, - pub ifru_hwaddr: crate::sockaddr, - pub ifru_flags: c_short, - pub ifru_ifindex: c_int, - pub ifru_metric: c_int, - pub ifru_mtu: c_int, - pub ifru_map: __c_anonymous_ifru_map, - pub ifru_slave: [c_char; crate::IFNAMSIZ], - pub ifru_newname: [c_char; crate::IFNAMSIZ], - pub ifru_data: *mut c_char, - } - - pub struct ifreq { - /// interface name, e.g. "en0" - pub ifr_name: [c_char; crate::IFNAMSIZ], - pub ifr_ifru: __c_anonymous_ifr_ifru, - } - - pub union __c_anonymous_ifc_ifcu { - pub ifcu_buf: *mut c_char, - pub ifcu_req: *mut crate::ifreq, - } - - /// Structure used in SIOCGIFCONF request. Used to retrieve interface configuration for - /// machine (useful for programs which must know all networks accessible). - pub struct ifconf { - /// Size of buffer - pub ifc_len: c_int, - pub ifc_ifcu: __c_anonymous_ifc_ifcu, - } - pub union tpacket_req_u { pub req: crate::tpacket_req, pub req3: crate::tpacket_req3, @@ -1813,524 +1452,9 @@ cfg_if! { } } -cfg_if! { - if #[cfg(any( - target_env = "gnu", - target_env = "musl", - target_env = "ohos" - ))] { - pub const ABDAY_1: crate::nl_item = 0x20000; - pub const ABDAY_2: crate::nl_item = 0x20001; - pub const ABDAY_3: crate::nl_item = 0x20002; - pub const ABDAY_4: crate::nl_item = 0x20003; - pub const ABDAY_5: crate::nl_item = 0x20004; - pub const ABDAY_6: crate::nl_item = 0x20005; - pub const ABDAY_7: crate::nl_item = 0x20006; - - pub const DAY_1: crate::nl_item = 0x20007; - pub const DAY_2: crate::nl_item = 0x20008; - pub const DAY_3: crate::nl_item = 0x20009; - pub const DAY_4: crate::nl_item = 0x2000A; - pub const DAY_5: crate::nl_item = 0x2000B; - pub const DAY_6: crate::nl_item = 0x2000C; - pub const DAY_7: crate::nl_item = 0x2000D; - - pub const ABMON_1: crate::nl_item = 0x2000E; - pub const ABMON_2: crate::nl_item = 0x2000F; - pub const ABMON_3: crate::nl_item = 0x20010; - pub const ABMON_4: crate::nl_item = 0x20011; - pub const ABMON_5: crate::nl_item = 0x20012; - pub const ABMON_6: crate::nl_item = 0x20013; - pub const ABMON_7: crate::nl_item = 0x20014; - pub const ABMON_8: crate::nl_item = 0x20015; - pub const ABMON_9: crate::nl_item = 0x20016; - pub const ABMON_10: crate::nl_item = 0x20017; - pub const ABMON_11: crate::nl_item = 0x20018; - pub const ABMON_12: crate::nl_item = 0x20019; - - pub const MON_1: crate::nl_item = 0x2001A; - pub const MON_2: crate::nl_item = 0x2001B; - pub const MON_3: crate::nl_item = 0x2001C; - pub const MON_4: crate::nl_item = 0x2001D; - pub const MON_5: crate::nl_item = 0x2001E; - pub const MON_6: crate::nl_item = 0x2001F; - pub const MON_7: crate::nl_item = 0x20020; - pub const MON_8: crate::nl_item = 0x20021; - pub const MON_9: crate::nl_item = 0x20022; - pub const MON_10: crate::nl_item = 0x20023; - pub const MON_11: crate::nl_item = 0x20024; - pub const MON_12: crate::nl_item = 0x20025; - - pub const AM_STR: crate::nl_item = 0x20026; - pub const PM_STR: crate::nl_item = 0x20027; - - pub const D_T_FMT: crate::nl_item = 0x20028; - pub const D_FMT: crate::nl_item = 0x20029; - pub const T_FMT: crate::nl_item = 0x2002A; - pub const T_FMT_AMPM: crate::nl_item = 0x2002B; - - pub const ERA: crate::nl_item = 0x2002C; - pub const ERA_D_FMT: crate::nl_item = 0x2002E; - pub const ALT_DIGITS: crate::nl_item = 0x2002F; - pub const ERA_D_T_FMT: crate::nl_item = 0x20030; - pub const ERA_T_FMT: crate::nl_item = 0x20031; - - pub const CODESET: crate::nl_item = 14; - pub const CRNCYSTR: crate::nl_item = 0x4000F; - pub const RADIXCHAR: crate::nl_item = 0x10000; - pub const THOUSEP: crate::nl_item = 0x10001; - pub const YESEXPR: crate::nl_item = 0x50000; - pub const NOEXPR: crate::nl_item = 0x50001; - pub const YESSTR: crate::nl_item = 0x50002; - pub const NOSTR: crate::nl_item = 0x50003; - } -} - -pub const RUSAGE_CHILDREN: c_int = -1; -pub const L_tmpnam: c_uint = 20; -pub const _PC_LINK_MAX: c_int = 0; -pub const _PC_MAX_CANON: c_int = 1; -pub const _PC_MAX_INPUT: c_int = 2; -pub const _PC_NAME_MAX: c_int = 3; -pub const _PC_PATH_MAX: c_int = 4; -pub const _PC_PIPE_BUF: c_int = 5; -pub const _PC_CHOWN_RESTRICTED: c_int = 6; -pub const _PC_NO_TRUNC: c_int = 7; -pub const _PC_VDISABLE: c_int = 8; -pub const _PC_SYNC_IO: c_int = 9; -pub const _PC_ASYNC_IO: c_int = 10; -pub const _PC_PRIO_IO: c_int = 11; -pub const _PC_SOCK_MAXBUF: c_int = 12; -pub const _PC_FILESIZEBITS: c_int = 13; -pub const _PC_REC_INCR_XFER_SIZE: c_int = 14; -pub const _PC_REC_MAX_XFER_SIZE: c_int = 15; -pub const _PC_REC_MIN_XFER_SIZE: c_int = 16; -pub const _PC_REC_XFER_ALIGN: c_int = 17; -pub const _PC_ALLOC_SIZE_MIN: c_int = 18; -pub const _PC_SYMLINK_MAX: c_int = 19; -pub const _PC_2_SYMLINKS: c_int = 20; - -pub const MS_NOUSER: c_ulong = 0xffffffff80000000; - -pub const _SC_ARG_MAX: c_int = 0; -pub const _SC_CHILD_MAX: c_int = 1; -pub const _SC_CLK_TCK: c_int = 2; -pub const _SC_NGROUPS_MAX: c_int = 3; -pub const _SC_OPEN_MAX: c_int = 4; -pub const _SC_STREAM_MAX: c_int = 5; -pub const _SC_TZNAME_MAX: c_int = 6; -pub const _SC_JOB_CONTROL: c_int = 7; -pub const _SC_SAVED_IDS: c_int = 8; -pub const _SC_REALTIME_SIGNALS: c_int = 9; -pub const _SC_PRIORITY_SCHEDULING: c_int = 10; -pub const _SC_TIMERS: c_int = 11; -pub const _SC_ASYNCHRONOUS_IO: c_int = 12; -pub const _SC_PRIORITIZED_IO: c_int = 13; -pub const _SC_SYNCHRONIZED_IO: c_int = 14; -pub const _SC_FSYNC: c_int = 15; -pub const _SC_MAPPED_FILES: c_int = 16; -pub const _SC_MEMLOCK: c_int = 17; -pub const _SC_MEMLOCK_RANGE: c_int = 18; -pub const _SC_MEMORY_PROTECTION: c_int = 19; -pub const _SC_MESSAGE_PASSING: c_int = 20; -pub const _SC_SEMAPHORES: c_int = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 22; -pub const _SC_AIO_LISTIO_MAX: c_int = 23; -pub const _SC_AIO_MAX: c_int = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 25; -pub const _SC_DELAYTIMER_MAX: c_int = 26; -pub const _SC_MQ_OPEN_MAX: c_int = 27; -pub const _SC_MQ_PRIO_MAX: c_int = 28; -pub const _SC_VERSION: c_int = 29; -pub const _SC_PAGESIZE: c_int = 30; -pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; -pub const _SC_RTSIG_MAX: c_int = 31; -pub const _SC_SEM_NSEMS_MAX: c_int = 32; -pub const _SC_SEM_VALUE_MAX: c_int = 33; -pub const _SC_SIGQUEUE_MAX: c_int = 34; -pub const _SC_TIMER_MAX: c_int = 35; -pub const _SC_BC_BASE_MAX: c_int = 36; -pub const _SC_BC_DIM_MAX: c_int = 37; -pub const _SC_BC_SCALE_MAX: c_int = 38; -pub const _SC_BC_STRING_MAX: c_int = 39; -pub const _SC_COLL_WEIGHTS_MAX: c_int = 40; -pub const _SC_EXPR_NEST_MAX: c_int = 42; -pub const _SC_LINE_MAX: c_int = 43; -pub const _SC_RE_DUP_MAX: c_int = 44; -pub const _SC_2_VERSION: c_int = 46; -pub const _SC_2_C_BIND: c_int = 47; -pub const _SC_2_C_DEV: c_int = 48; -pub const _SC_2_FORT_DEV: c_int = 49; -pub const _SC_2_FORT_RUN: c_int = 50; -pub const _SC_2_SW_DEV: c_int = 51; -pub const _SC_2_LOCALEDEF: c_int = 52; -pub const _SC_UIO_MAXIOV: c_int = 60; -pub const _SC_IOV_MAX: c_int = 60; -pub const _SC_THREADS: c_int = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 68; -pub const _SC_GETGR_R_SIZE_MAX: c_int = 69; -pub const _SC_GETPW_R_SIZE_MAX: c_int = 70; -pub const _SC_LOGIN_NAME_MAX: c_int = 71; -pub const _SC_TTY_NAME_MAX: c_int = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 73; -pub const _SC_THREAD_KEYS_MAX: c_int = 74; -pub const _SC_THREAD_STACK_MIN: c_int = 75; -pub const _SC_THREAD_THREADS_MAX: c_int = 76; -pub const _SC_THREAD_ATTR_STACKADDR: c_int = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 79; -pub const _SC_THREAD_PRIO_INHERIT: c_int = 80; -pub const _SC_THREAD_PRIO_PROTECT: c_int = 81; -pub const _SC_THREAD_PROCESS_SHARED: c_int = 82; -pub const _SC_NPROCESSORS_CONF: c_int = 83; -pub const _SC_NPROCESSORS_ONLN: c_int = 84; -pub const _SC_PHYS_PAGES: c_int = 85; -pub const _SC_AVPHYS_PAGES: c_int = 86; -pub const _SC_ATEXIT_MAX: c_int = 87; -pub const _SC_PASS_MAX: c_int = 88; -pub const _SC_XOPEN_VERSION: c_int = 89; -pub const _SC_XOPEN_XCU_VERSION: c_int = 90; -pub const _SC_XOPEN_UNIX: c_int = 91; -pub const _SC_XOPEN_CRYPT: c_int = 92; -pub const _SC_XOPEN_ENH_I18N: c_int = 93; -pub const _SC_XOPEN_SHM: c_int = 94; -pub const _SC_2_CHAR_TERM: c_int = 95; -pub const _SC_2_UPE: c_int = 97; -pub const _SC_XOPEN_XPG2: c_int = 98; -pub const _SC_XOPEN_XPG3: c_int = 99; -pub const _SC_XOPEN_XPG4: c_int = 100; -pub const _SC_NZERO: c_int = 109; -pub const _SC_XBS5_ILP32_OFF32: c_int = 125; -pub const _SC_XBS5_ILP32_OFFBIG: c_int = 126; -pub const _SC_XBS5_LP64_OFF64: c_int = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: c_int = 128; -pub const _SC_XOPEN_LEGACY: c_int = 129; -pub const _SC_XOPEN_REALTIME: c_int = 130; -pub const _SC_XOPEN_REALTIME_THREADS: c_int = 131; -pub const _SC_ADVISORY_INFO: c_int = 132; -pub const _SC_BARRIERS: c_int = 133; -pub const _SC_CLOCK_SELECTION: c_int = 137; -pub const _SC_CPUTIME: c_int = 138; -pub const _SC_THREAD_CPUTIME: c_int = 139; -pub const _SC_MONOTONIC_CLOCK: c_int = 149; -pub const _SC_READER_WRITER_LOCKS: c_int = 153; -pub const _SC_SPIN_LOCKS: c_int = 154; -pub const _SC_REGEXP: c_int = 155; -pub const _SC_SHELL: c_int = 157; -pub const _SC_SPAWN: c_int = 159; -pub const _SC_SPORADIC_SERVER: c_int = 160; -pub const _SC_THREAD_SPORADIC_SERVER: c_int = 161; -pub const _SC_TIMEOUTS: c_int = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 165; -pub const _SC_2_PBS: c_int = 168; -pub const _SC_2_PBS_ACCOUNTING: c_int = 169; -pub const _SC_2_PBS_LOCATE: c_int = 170; -pub const _SC_2_PBS_MESSAGE: c_int = 171; -pub const _SC_2_PBS_TRACK: c_int = 172; -pub const _SC_SYMLOOP_MAX: c_int = 173; -pub const _SC_STREAMS: c_int = 174; -pub const _SC_2_PBS_CHECKPOINT: c_int = 175; -pub const _SC_V6_ILP32_OFF32: c_int = 176; -pub const _SC_V6_ILP32_OFFBIG: c_int = 177; -pub const _SC_V6_LP64_OFF64: c_int = 178; -pub const _SC_V6_LPBIG_OFFBIG: c_int = 179; -pub const _SC_HOST_NAME_MAX: c_int = 180; -pub const _SC_TRACE: c_int = 181; -pub const _SC_TRACE_EVENT_FILTER: c_int = 182; -pub const _SC_TRACE_INHERIT: c_int = 183; -pub const _SC_TRACE_LOG: c_int = 184; -pub const _SC_IPV6: c_int = 235; -pub const _SC_RAW_SOCKETS: c_int = 236; -pub const _SC_V7_ILP32_OFF32: c_int = 237; -pub const _SC_V7_ILP32_OFFBIG: c_int = 238; -pub const _SC_V7_LP64_OFF64: c_int = 239; -pub const _SC_V7_LPBIG_OFFBIG: c_int = 240; -pub const _SC_SS_REPL_MAX: c_int = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 242; -pub const _SC_TRACE_NAME_MAX: c_int = 243; -pub const _SC_TRACE_SYS_MAX: c_int = 244; -pub const _SC_TRACE_USER_EVENT_MAX: c_int = 245; -pub const _SC_XOPEN_STREAMS: c_int = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 248; - -pub const _CS_PATH: c_int = 0; -pub const _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS: c_int = 1; -pub const _CS_POSIX_V5_WIDTH_RESTRICTED_ENVS: c_int = 4; -pub const _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS: c_int = 5; -pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: c_int = 1116; -pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: c_int = 1117; -pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: c_int = 1118; -pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: c_int = 1119; -pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: c_int = 1120; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: c_int = 1121; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: c_int = 1122; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: c_int = 1123; -pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: c_int = 1124; -pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: c_int = 1125; -pub const _CS_POSIX_V6_LP64_OFF64_LIBS: c_int = 1126; -pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: c_int = 1127; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: c_int = 1128; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: c_int = 1129; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: c_int = 1130; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: c_int = 1131; -pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: c_int = 1132; -pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: c_int = 1133; -pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: c_int = 1134; -pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: c_int = 1135; -pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: c_int = 1136; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: c_int = 1137; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: c_int = 1138; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: c_int = 1139; -pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: c_int = 1140; -pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: c_int = 1141; -pub const _CS_POSIX_V7_LP64_OFF64_LIBS: c_int = 1142; -pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: c_int = 1143; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: c_int = 1144; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: c_int = 1145; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: c_int = 1146; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: c_int = 1147; - -pub const RLIM_SAVED_MAX: crate::rlim_t = RLIM_INFINITY; -pub const RLIM_SAVED_CUR: crate::rlim_t = RLIM_INFINITY; - -// elf.h - Fields in the e_ident array. -pub const EI_NIDENT: usize = 16; - -pub const EI_MAG0: usize = 0; -pub const ELFMAG0: u8 = 0x7f; -pub const EI_MAG1: usize = 1; -pub const ELFMAG1: u8 = b'E'; -pub const EI_MAG2: usize = 2; -pub const ELFMAG2: u8 = b'L'; -pub const EI_MAG3: usize = 3; -pub const ELFMAG3: u8 = b'F'; -pub const SELFMAG: usize = 4; - -pub const EI_CLASS: usize = 4; -pub const ELFCLASSNONE: u8 = 0; -pub const ELFCLASS32: u8 = 1; -pub const ELFCLASS64: u8 = 2; -pub const ELFCLASSNUM: usize = 3; - -pub const EI_DATA: usize = 5; -pub const ELFDATANONE: u8 = 0; -pub const ELFDATA2LSB: u8 = 1; -pub const ELFDATA2MSB: u8 = 2; -pub const ELFDATANUM: usize = 3; - -pub const EI_VERSION: usize = 6; - -pub const EI_OSABI: usize = 7; -pub const ELFOSABI_NONE: u8 = 0; -pub const ELFOSABI_SYSV: u8 = 0; -pub const ELFOSABI_HPUX: u8 = 1; -pub const ELFOSABI_NETBSD: u8 = 2; -pub const ELFOSABI_GNU: u8 = 3; -pub const ELFOSABI_LINUX: u8 = ELFOSABI_GNU; -pub const ELFOSABI_SOLARIS: u8 = 6; -pub const ELFOSABI_AIX: u8 = 7; -pub const ELFOSABI_IRIX: u8 = 8; -pub const ELFOSABI_FREEBSD: u8 = 9; -pub const ELFOSABI_TRU64: u8 = 10; -pub const ELFOSABI_MODESTO: u8 = 11; -pub const ELFOSABI_OPENBSD: u8 = 12; -pub const ELFOSABI_ARM: u8 = 97; -pub const ELFOSABI_STANDALONE: u8 = 255; - -pub const EI_ABIVERSION: usize = 8; - -pub const EI_PAD: usize = 9; - -// elf.h - Legal values for e_type (object file type). -pub const ET_NONE: u16 = 0; -pub const ET_REL: u16 = 1; -pub const ET_EXEC: u16 = 2; -pub const ET_DYN: u16 = 3; -pub const ET_CORE: u16 = 4; -pub const ET_NUM: u16 = 5; -pub const ET_LOOS: u16 = 0xfe00; -pub const ET_HIOS: u16 = 0xfeff; -pub const ET_LOPROC: u16 = 0xff00; -pub const ET_HIPROC: u16 = 0xffff; - -// elf.h - Legal values for e_machine (architecture). -pub const EM_NONE: u16 = 0; -pub const EM_M32: u16 = 1; -pub const EM_SPARC: u16 = 2; -pub const EM_386: u16 = 3; -pub const EM_68K: u16 = 4; -pub const EM_88K: u16 = 5; -pub const EM_860: u16 = 7; -pub const EM_MIPS: u16 = 8; -pub const EM_S370: u16 = 9; -pub const EM_MIPS_RS3_LE: u16 = 10; -pub const EM_PARISC: u16 = 15; -pub const EM_VPP500: u16 = 17; -pub const EM_SPARC32PLUS: u16 = 18; -pub const EM_960: u16 = 19; -pub const EM_PPC: u16 = 20; -pub const EM_PPC64: u16 = 21; -pub const EM_S390: u16 = 22; -pub const EM_V800: u16 = 36; -pub const EM_FR20: u16 = 37; -pub const EM_RH32: u16 = 38; -pub const EM_RCE: u16 = 39; -pub const EM_ARM: u16 = 40; -pub const EM_FAKE_ALPHA: u16 = 41; -pub const EM_SH: u16 = 42; -pub const EM_SPARCV9: u16 = 43; -pub const EM_TRICORE: u16 = 44; -pub const EM_ARC: u16 = 45; -pub const EM_H8_300: u16 = 46; -pub const EM_H8_300H: u16 = 47; -pub const EM_H8S: u16 = 48; -pub const EM_H8_500: u16 = 49; -pub const EM_IA_64: u16 = 50; -pub const EM_MIPS_X: u16 = 51; -pub const EM_COLDFIRE: u16 = 52; -pub const EM_68HC12: u16 = 53; -pub const EM_MMA: u16 = 54; -pub const EM_PCP: u16 = 55; -pub const EM_NCPU: u16 = 56; -pub const EM_NDR1: u16 = 57; -pub const EM_STARCORE: u16 = 58; -pub const EM_ME16: u16 = 59; -pub const EM_ST100: u16 = 60; -pub const EM_TINYJ: u16 = 61; -pub const EM_X86_64: u16 = 62; -pub const EM_PDSP: u16 = 63; -pub const EM_FX66: u16 = 66; -pub const EM_ST9PLUS: u16 = 67; -pub const EM_ST7: u16 = 68; -pub const EM_68HC16: u16 = 69; -pub const EM_68HC11: u16 = 70; -pub const EM_68HC08: u16 = 71; -pub const EM_68HC05: u16 = 72; -pub const EM_SVX: u16 = 73; -pub const EM_ST19: u16 = 74; -pub const EM_VAX: u16 = 75; -pub const EM_CRIS: u16 = 76; -pub const EM_JAVELIN: u16 = 77; -pub const EM_FIREPATH: u16 = 78; -pub const EM_ZSP: u16 = 79; -pub const EM_MMIX: u16 = 80; -pub const EM_HUANY: u16 = 81; -pub const EM_PRISM: u16 = 82; -pub const EM_AVR: u16 = 83; -pub const EM_FR30: u16 = 84; -pub const EM_D10V: u16 = 85; -pub const EM_D30V: u16 = 86; -pub const EM_V850: u16 = 87; -pub const EM_M32R: u16 = 88; -pub const EM_MN10300: u16 = 89; -pub const EM_MN10200: u16 = 90; -pub const EM_PJ: u16 = 91; -pub const EM_OPENRISC: u16 = 92; -pub const EM_ARC_A5: u16 = 93; -pub const EM_XTENSA: u16 = 94; -pub const EM_AARCH64: u16 = 183; -pub const EM_TILEPRO: u16 = 188; -pub const EM_TILEGX: u16 = 191; -pub const EM_RISCV: u16 = 243; -pub const EM_ALPHA: u16 = 0x9026; - -// elf.h - Legal values for e_version (version). -pub const EV_NONE: u32 = 0; -pub const EV_CURRENT: u32 = 1; -pub const EV_NUM: u32 = 2; - -// 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_NUM: u32 = 8; -pub const PT_LOOS: u32 = 0x60000000; -pub const PT_GNU_EH_FRAME: u32 = 0x6474e550; -pub const PT_GNU_STACK: u32 = 0x6474e551; -pub const PT_GNU_RELRO: u32 = 0x6474e552; -pub const PT_LOSUNW: u32 = 0x6ffffffa; -pub const PT_SUNWBSS: u32 = 0x6ffffffa; -pub const PT_SUNWSTACK: u32 = 0x6ffffffb; -pub const PT_HISUNW: u32 = 0x6fffffff; -pub const PT_HIOS: u32 = 0x6fffffff; -pub const PT_LOPROC: u32 = 0x70000000; -pub const PT_HIPROC: u32 = 0x7fffffff; - -// Legal values for p_flags (segment flags). -pub const PF_X: u32 = 1 << 0; -pub const PF_W: u32 = 1 << 1; -pub const PF_R: u32 = 1 << 2; -pub const PF_MASKOS: u32 = 0x0ff00000; -pub const PF_MASKPROC: u32 = 0xf0000000; - -// elf.h - Legal values for a_type (entry type). -pub const AT_NULL: c_ulong = 0; -pub const AT_IGNORE: c_ulong = 1; -pub const AT_EXECFD: c_ulong = 2; -pub const AT_PHDR: c_ulong = 3; -pub const AT_PHENT: c_ulong = 4; -pub const AT_PHNUM: c_ulong = 5; -pub const AT_PAGESZ: c_ulong = 6; -pub const AT_BASE: c_ulong = 7; -pub const AT_FLAGS: c_ulong = 8; -pub const AT_ENTRY: c_ulong = 9; -pub const AT_NOTELF: c_ulong = 10; -pub const AT_UID: c_ulong = 11; -pub const AT_EUID: c_ulong = 12; -pub const AT_GID: c_ulong = 13; -pub const AT_EGID: c_ulong = 14; -pub const AT_PLATFORM: c_ulong = 15; -pub const AT_HWCAP: c_ulong = 16; -pub const AT_CLKTCK: c_ulong = 17; - -pub const AT_SECURE: c_ulong = 23; -pub const AT_BASE_PLATFORM: c_ulong = 24; -pub const AT_RANDOM: c_ulong = 25; -pub const AT_HWCAP2: c_ulong = 26; - -pub const AT_HWCAP3: c_ulong = 29; -pub const AT_HWCAP4: c_ulong = 30; -pub const AT_EXECFN: c_ulong = 31; - -// defined in arch//include/uapi/asm/auxvec.h but has the same value -// wherever it is defined. -pub const AT_SYSINFO_EHDR: c_ulong = 33; -pub const AT_MINSIGSTKSZ: c_ulong = 51; - -pub const GLOB_ERR: c_int = 1 << 0; -pub const GLOB_MARK: c_int = 1 << 1; -pub const GLOB_NOSORT: c_int = 1 << 2; -pub const GLOB_DOOFFS: c_int = 1 << 3; -pub const GLOB_NOCHECK: c_int = 1 << 4; -pub const GLOB_APPEND: c_int = 1 << 5; -pub const GLOB_NOESCAPE: c_int = 1 << 6; - -pub const GLOB_NOSPACE: c_int = 1; -pub const GLOB_ABORTED: c_int = 2; -pub const GLOB_NOMATCH: c_int = 3; - -pub const POSIX_MADV_NORMAL: c_int = 0; -pub const POSIX_MADV_RANDOM: c_int = 1; -pub const POSIX_MADV_SEQUENTIAL: c_int = 2; -pub const POSIX_MADV_WILLNEED: c_int = 3; pub const POSIX_SPAWN_USEVFORK: c_int = 64; pub const POSIX_SPAWN_SETSID: c_int = 128; -pub const S_IEXEC: mode_t = 0o0100; -pub const S_IWRITE: mode_t = 0o0200; -pub const S_IREAD: mode_t = 0o0400; - -pub const F_LOCK: c_int = 1; -pub const F_TEST: c_int = 3; -pub const F_TLOCK: c_int = 2; -pub const F_ULOCK: c_int = 0; - pub const F_SEAL_FUTURE_WRITE: c_int = 0x0010; pub const F_SEAL_EXEC: c_int = 0x0020; @@ -2451,25 +1575,6 @@ pub const IFLA_INFO_SLAVE_DATA: c_ushort = 5; pub const SEEK_DATA: c_int = 3; pub const SEEK_HOLE: c_int = 4; -pub const ST_RDONLY: c_ulong = 1; -pub const ST_NOSUID: c_ulong = 2; -pub const ST_NODEV: c_ulong = 4; -pub const ST_NOEXEC: c_ulong = 8; -pub const ST_SYNCHRONOUS: c_ulong = 16; -pub const ST_MANDLOCK: c_ulong = 64; -pub const ST_WRITE: c_ulong = 128; -pub const ST_APPEND: c_ulong = 256; -pub const ST_IMMUTABLE: c_ulong = 512; -pub const ST_NOATIME: c_ulong = 1024; -pub const ST_NODIRATIME: c_ulong = 2048; - -pub const RTLD_NEXT: *mut c_void = -1i64 as *mut c_void; -pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); -pub const RTLD_NODELETE: c_int = 0x1000; -pub const RTLD_NOW: c_int = 0x2; - -pub const AT_EACCESS: c_int = 0x200; - // linux/mempolicy.h pub const MPOL_DEFAULT: c_int = 0; pub const MPOL_PREFERRED: c_int = 1; @@ -2492,59 +1597,20 @@ pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE: c_int = 1 << 6; pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: c_int = 1 << 7; pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: c_int = 1 << 8; -pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - size: [0; __SIZEOF_PTHREAD_MUTEX_T], +pub const PTHREAD_MUTEX_INITIALIZER: crate::pthread_mutex_t = crate::pthread_mutex_t { + size: [0; crate::__SIZEOF_PTHREAD_MUTEX_T], }; -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - size: [0; __SIZEOF_PTHREAD_COND_T], +pub const PTHREAD_COND_INITIALIZER: crate::pthread_cond_t = crate::pthread_cond_t { + size: [0; crate::__SIZEOF_PTHREAD_COND_T], }; -pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - size: [0; __SIZEOF_PTHREAD_RWLOCK_T], +pub const PTHREAD_RWLOCK_INITIALIZER: crate::pthread_rwlock_t = crate::pthread_rwlock_t { + size: [0; crate::__SIZEOF_PTHREAD_RWLOCK_T], }; -pub const PTHREAD_BARRIER_SERIAL_THREAD: c_int = -1; -pub const PTHREAD_ONCE_INIT: pthread_once_t = 0; -pub const PTHREAD_MUTEX_NORMAL: c_int = 0; -pub const PTHREAD_MUTEX_RECURSIVE: c_int = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 2; -pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_NORMAL; -pub const PTHREAD_MUTEX_STALLED: c_int = 0; -pub const PTHREAD_MUTEX_ROBUST: c_int = 1; -pub const PTHREAD_PRIO_NONE: c_int = 0; -pub const PTHREAD_PRIO_INHERIT: c_int = 1; -pub const PTHREAD_PRIO_PROTECT: c_int = 2; -pub const PTHREAD_PROCESS_PRIVATE: c_int = 0; -pub const PTHREAD_PROCESS_SHARED: c_int = 1; -pub const PTHREAD_INHERIT_SCHED: c_int = 0; -pub const PTHREAD_EXPLICIT_SCHED: c_int = 1; -pub const __SIZEOF_PTHREAD_COND_T: usize = 48; - pub const RENAME_NOREPLACE: c_uint = 1; pub const RENAME_EXCHANGE: c_uint = 2; pub const RENAME_WHITEOUT: c_uint = 4; -// netinet/in.h -// NOTE: These are in addition to the constants defined in src/unix/mod.rs - -#[deprecated( - since = "0.2.80", - note = "This value was increased in the newer kernel \ - and we'll change this following upstream in the future release. \ - See #1896 for more info." -)] -pub const IPPROTO_MAX: c_int = 256; - -// System V IPC -pub const IPC_PRIVATE: crate::key_t = 0; - -pub const IPC_CREAT: c_int = 0o1000; -pub const IPC_EXCL: c_int = 0o2000; -pub const IPC_NOWAIT: c_int = 0o4000; - -pub const IPC_RMID: c_int = 0; -pub const IPC_SET: c_int = 1; -pub const IPC_STAT: c_int = 2; -pub const IPC_INFO: c_int = 3; pub const MSG_STAT: c_int = 11; pub const MSG_INFO: c_int = 12; pub const MSG_NOTIFICATION: c_int = 0x8000; @@ -2566,30 +1632,12 @@ pub const SEM_STAT: c_int = 18; pub const SEM_INFO: c_int = 19; pub const SEM_STAT_ANY: c_int = 20; -pub const SHM_R: c_int = 0o400; -pub const SHM_W: c_int = 0o200; - -pub const SHM_RDONLY: c_int = 0o10000; -pub const SHM_RND: c_int = 0o20000; -pub const SHM_REMAP: c_int = 0o40000; - -pub const SHM_LOCK: c_int = 11; -pub const SHM_UNLOCK: c_int = 12; - -pub const SHM_HUGETLB: c_int = 0o4000; -#[cfg(not(all(target_env = "uclibc", target_arch = "mips")))] -pub const SHM_NORESERVE: c_int = 0o10000; - pub const QFMT_VFS_OLD: c_int = 1; pub const QFMT_VFS_V0: c_int = 2; pub const QFMT_VFS_V1: c_int = 4; pub const EFD_SEMAPHORE: c_int = 0x1; -pub const LOG_NFACILITIES: c_int = 24; - -pub const SEM_FAILED: *mut crate::sem_t = ptr::null_mut(); - pub const RB_AUTOBOOT: c_int = 0x01234567u32 as i32; pub const RB_HALT_SYSTEM: c_int = 0xcdef0123u32 as i32; pub const RB_ENABLE_CAD: c_int = 0x89abcdefu32 as i32; @@ -2598,60 +1646,10 @@ pub const RB_POWER_OFF: c_int = 0x4321fedcu32 as i32; pub const RB_SW_SUSPEND: c_int = 0xd000fce2u32 as i32; pub const RB_KEXEC: c_int = 0x45584543u32 as i32; -pub const AI_PASSIVE: c_int = 0x0001; -pub const AI_CANONNAME: c_int = 0x0002; -pub const AI_NUMERICHOST: c_int = 0x0004; -pub const AI_V4MAPPED: c_int = 0x0008; -pub const AI_ALL: c_int = 0x0010; -pub const AI_ADDRCONFIG: c_int = 0x0020; - -pub const AI_NUMERICSERV: c_int = 0x0400; - -pub const EAI_BADFLAGS: c_int = -1; -pub const EAI_NONAME: c_int = -2; -pub const EAI_AGAIN: c_int = -3; -pub const EAI_FAIL: c_int = -4; -pub const EAI_NODATA: c_int = -5; -pub const EAI_FAMILY: c_int = -6; -pub const EAI_SOCKTYPE: c_int = -7; -pub const EAI_SERVICE: c_int = -8; -pub const EAI_MEMORY: c_int = -10; -pub const EAI_SYSTEM: c_int = -11; -pub const EAI_OVERFLOW: c_int = -12; - -pub const NI_NUMERICHOST: c_int = 1; -pub const NI_NUMERICSERV: c_int = 2; -pub const NI_NOFQDN: c_int = 4; -pub const NI_NAMEREQD: c_int = 8; -pub const NI_DGRAM: c_int = 16; -pub const NI_IDN: c_int = 32; - pub const SYNC_FILE_RANGE_WAIT_BEFORE: c_uint = 1; pub const SYNC_FILE_RANGE_WRITE: c_uint = 2; pub const SYNC_FILE_RANGE_WAIT_AFTER: c_uint = 4; -cfg_if! { - if #[cfg(not(target_env = "uclibc"))] { - pub const AIO_CANCELED: c_int = 0; - pub const AIO_NOTCANCELED: c_int = 1; - pub const AIO_ALLDONE: c_int = 2; - pub const LIO_READ: c_int = 0; - pub const LIO_WRITE: c_int = 1; - pub const LIO_NOP: c_int = 2; - pub const LIO_WAIT: c_int = 0; - pub const LIO_NOWAIT: c_int = 1; - pub const RUSAGE_THREAD: c_int = 1; - pub const MSG_COPY: c_int = 0o40000; - pub const SHM_EXEC: c_int = 0o100000; - pub const IPV6_MULTICAST_ALL: c_int = 29; - pub const IPV6_ROUTER_ALERT_ISOLATE: c_int = 30; - pub const PACKET_MR_UNICAST: c_int = 3; - pub const PTRACE_EVENT_STOP: c_int = 128; - pub const UDP_SEGMENT: c_int = 103; - pub const UDP_GRO: c_int = 104; - } -} - pub const MREMAP_MAYMOVE: c_int = 1; pub const MREMAP_FIXED: c_int = 2; pub const MREMAP_DONTUNMAP: c_int = 4; @@ -2705,146 +1703,11 @@ pub const PIDFD_GET_USER_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 9); pub const PIDFD_GET_UTS_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 10); pub const PIDFD_GET_INFO: Ioctl = _IOWR::(PIDFS_IOCTL_MAGIC, 11); -// linux/prctl.h -pub const PR_SET_PDEATHSIG: c_int = 1; -pub const PR_GET_PDEATHSIG: c_int = 2; - -pub const PR_GET_DUMPABLE: c_int = 3; -pub const PR_SET_DUMPABLE: c_int = 4; - -pub const PR_GET_UNALIGN: c_int = 5; -pub const PR_SET_UNALIGN: c_int = 6; -pub const PR_UNALIGN_NOPRINT: c_int = 1; -pub const PR_UNALIGN_SIGBUS: c_int = 2; - -pub const PR_GET_KEEPCAPS: c_int = 7; -pub const PR_SET_KEEPCAPS: c_int = 8; - -pub const PR_GET_FPEMU: c_int = 9; -pub const PR_SET_FPEMU: c_int = 10; -pub const PR_FPEMU_NOPRINT: c_int = 1; -pub const PR_FPEMU_SIGFPE: c_int = 2; - -pub const PR_GET_FPEXC: c_int = 11; -pub const PR_SET_FPEXC: c_int = 12; -pub const PR_FP_EXC_SW_ENABLE: c_int = 0x80; -pub const PR_FP_EXC_DIV: c_int = 0x010000; -pub const PR_FP_EXC_OVF: c_int = 0x020000; -pub const PR_FP_EXC_UND: c_int = 0x040000; -pub const PR_FP_EXC_RES: c_int = 0x080000; -pub const PR_FP_EXC_INV: c_int = 0x100000; -pub const PR_FP_EXC_DISABLED: c_int = 0; -pub const PR_FP_EXC_NONRECOV: c_int = 1; -pub const PR_FP_EXC_ASYNC: c_int = 2; -pub const PR_FP_EXC_PRECISE: c_int = 3; - -pub const PR_GET_TIMING: c_int = 13; -pub const PR_SET_TIMING: c_int = 14; -pub const PR_TIMING_STATISTICAL: c_int = 0; -pub const PR_TIMING_TIMESTAMP: c_int = 1; - -pub const PR_SET_NAME: c_int = 15; -pub const PR_GET_NAME: c_int = 16; - -pub const PR_GET_ENDIAN: c_int = 19; -pub const PR_SET_ENDIAN: c_int = 20; -pub const PR_ENDIAN_BIG: c_int = 0; -pub const PR_ENDIAN_LITTLE: c_int = 1; -pub const PR_ENDIAN_PPC_LITTLE: c_int = 2; - -pub const PR_GET_SECCOMP: c_int = 21; -pub const PR_SET_SECCOMP: c_int = 22; - -pub const PR_CAPBSET_READ: c_int = 23; -pub const PR_CAPBSET_DROP: c_int = 24; - -pub const PR_GET_TSC: c_int = 25; -pub const PR_SET_TSC: c_int = 26; -pub const PR_TSC_ENABLE: c_int = 1; -pub const PR_TSC_SIGSEGV: c_int = 2; - -pub const PR_GET_SECUREBITS: c_int = 27; -pub const PR_SET_SECUREBITS: c_int = 28; - -pub const PR_SET_TIMERSLACK: c_int = 29; -pub const PR_GET_TIMERSLACK: c_int = 30; - -pub const PR_TASK_PERF_EVENTS_DISABLE: c_int = 31; -pub const PR_TASK_PERF_EVENTS_ENABLE: c_int = 32; - -pub const PR_MCE_KILL: c_int = 33; -pub const PR_MCE_KILL_CLEAR: c_int = 0; -pub const PR_MCE_KILL_SET: c_int = 1; - -pub const PR_MCE_KILL_LATE: c_int = 0; -pub const PR_MCE_KILL_EARLY: c_int = 1; -pub const PR_MCE_KILL_DEFAULT: c_int = 2; - -pub const PR_MCE_KILL_GET: c_int = 34; - -pub const PR_SET_MM: c_int = 35; -pub const PR_SET_MM_START_CODE: c_int = 1; -pub const PR_SET_MM_END_CODE: c_int = 2; -pub const PR_SET_MM_START_DATA: c_int = 3; -pub const PR_SET_MM_END_DATA: c_int = 4; -pub const PR_SET_MM_START_STACK: c_int = 5; -pub const PR_SET_MM_START_BRK: c_int = 6; -pub const PR_SET_MM_BRK: c_int = 7; -pub const PR_SET_MM_ARG_START: c_int = 8; -pub const PR_SET_MM_ARG_END: c_int = 9; -pub const PR_SET_MM_ENV_START: c_int = 10; -pub const PR_SET_MM_ENV_END: c_int = 11; -pub const PR_SET_MM_AUXV: c_int = 12; -pub const PR_SET_MM_EXE_FILE: c_int = 13; -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; - -pub const PR_SET_NO_NEW_PRIVS: c_int = 38; -pub const PR_GET_NO_NEW_PRIVS: c_int = 39; - pub const PR_SET_MDWE: c_int = 65; pub const PR_GET_MDWE: c_int = 66; pub const PR_MDWE_REFUSE_EXEC_GAIN: c_uint = 1 << 0; pub const PR_MDWE_NO_INHERIT: c_uint = 1 << 1; -pub const PR_GET_TID_ADDRESS: c_int = 40; - -pub const PR_SET_THP_DISABLE: c_int = 41; -pub const PR_GET_THP_DISABLE: c_int = 42; - -pub const PR_MPX_ENABLE_MANAGEMENT: c_int = 43; -pub const PR_MPX_DISABLE_MANAGEMENT: c_int = 44; - -pub const PR_SET_FP_MODE: c_int = 45; -pub const PR_GET_FP_MODE: c_int = 46; -pub const PR_FP_MODE_FR: c_int = 1 << 0; -pub const PR_FP_MODE_FRE: c_int = 1 << 1; - -pub const PR_CAP_AMBIENT: c_int = 47; -pub const PR_CAP_AMBIENT_IS_SET: c_int = 1; -pub const PR_CAP_AMBIENT_RAISE: c_int = 2; -pub const PR_CAP_AMBIENT_LOWER: c_int = 3; -pub const PR_CAP_AMBIENT_CLEAR_ALL: c_int = 4; - -pub const PR_SET_VMA: c_int = 0x53564d41; -pub const PR_SET_VMA_ANON_NAME: c_int = 0; - -pub const PR_SCHED_CORE: c_int = 62; -pub const PR_SCHED_CORE_GET: c_int = 0; -pub const PR_SCHED_CORE_CREATE: c_int = 1; -pub const PR_SCHED_CORE_SHARE_TO: c_int = 2; -pub const PR_SCHED_CORE_SHARE_FROM: c_int = 3; -pub const PR_SCHED_CORE_MAX: c_int = 4; -pub const PR_SCHED_CORE_SCOPE_THREAD: c_int = 0; -pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: c_int = 1; -pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: c_int = 2; - pub const GRND_NONBLOCK: c_uint = 0x0001; pub const GRND_RANDOM: c_uint = 0x0002; pub const GRND_INSECURE: c_uint = 0x0004; @@ -2885,17 +1748,11 @@ pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: c_ulong = 1; pub const SECCOMP_ADDFD_FLAG_SETFD: c_ulong = 1; pub const SECCOMP_ADDFD_FLAG_SEND: c_ulong = 2; -pub const ITIMER_REAL: c_int = 0; -pub const ITIMER_VIRTUAL: c_int = 1; -pub const ITIMER_PROF: c_int = 2; - pub const TFD_CLOEXEC: c_int = O_CLOEXEC; pub const TFD_NONBLOCK: c_int = O_NONBLOCK; pub const TFD_TIMER_ABSTIME: c_int = 1; pub const TFD_TIMER_CANCEL_ON_SET: c_int = 2; -pub const _POSIX_VDISABLE: crate::cc_t = 0; - pub const FALLOC_FL_KEEP_SIZE: c_int = 0x01; pub const FALLOC_FL_PUNCH_HOLE: c_int = 0x02; pub const FALLOC_FL_COLLAPSE_RANGE: c_int = 0x08; @@ -2921,9 +1778,6 @@ pub const IPV6_FREEBIND: c_int = 78; pub const IPV6_FLOWINFO_FLOWLABEL: c_int = 0x000fffff; pub const IPV6_FLOWINFO_PRIORITY: c_int = 0x0ff00000; -pub const IPV6_RTHDR_LOOSE: c_int = 0; -pub const IPV6_RTHDR_STRICT: c_int = 1; - // SO_MEMINFO offsets pub const SK_MEMINFO_RMEM_ALLOC: c_int = 0; pub const SK_MEMINFO_RCVBUF: c_int = 1; @@ -2935,30 +1789,6 @@ pub const SK_MEMINFO_OPTMEM: c_int = 6; pub const SK_MEMINFO_BACKLOG: c_int = 7; pub const SK_MEMINFO_DROPS: c_int = 8; -pub const IUTF8: crate::tcflag_t = 0x00004000; -#[cfg(not(all(target_env = "uclibc", target_arch = "mips")))] -pub const CMSPAR: crate::tcflag_t = 0o10000000000; - -pub const MFD_CLOEXEC: c_uint = 0x0001; -pub const MFD_ALLOW_SEALING: c_uint = 0x0002; -pub const MFD_HUGETLB: c_uint = 0x0004; -pub const MFD_NOEXEC_SEAL: c_uint = 0x0008; -pub const MFD_EXEC: c_uint = 0x0010; -pub const MFD_HUGE_64KB: c_uint = 0x40000000; -pub const MFD_HUGE_512KB: c_uint = 0x4c000000; -pub const MFD_HUGE_1MB: c_uint = 0x50000000; -pub const MFD_HUGE_2MB: c_uint = 0x54000000; -pub const MFD_HUGE_8MB: c_uint = 0x5c000000; -pub const MFD_HUGE_16MB: c_uint = 0x60000000; -pub const MFD_HUGE_32MB: c_uint = 0x64000000; -pub const MFD_HUGE_256MB: c_uint = 0x70000000; -pub const MFD_HUGE_512MB: c_uint = 0x74000000; -pub const MFD_HUGE_1GB: c_uint = 0x78000000; -pub const MFD_HUGE_2GB: c_uint = 0x7c000000; -pub const MFD_HUGE_16GB: c_uint = 0x88000000; -pub const MFD_HUGE_MASK: c_uint = 63; -pub const MFD_HUGE_SHIFT: c_uint = 26; - // linux/close_range.h pub const CLOSE_RANGE_UNSHARE: c_uint = 1 << 1; pub const CLOSE_RANGE_CLOEXEC: c_uint = 1 << 2; @@ -3140,12 +1970,6 @@ pub const POSIX_SPAWN_SETSIGMASK: c_int = 0x08; pub const POSIX_SPAWN_SETSCHEDPARAM: c_int = 0x10; pub const POSIX_SPAWN_SETSCHEDULER: c_int = 0x20; -pub const NLMSG_NOOP: c_int = 0x1; -pub const NLMSG_ERROR: c_int = 0x2; -pub const NLMSG_DONE: c_int = 0x3; -pub const NLMSG_OVERRUN: c_int = 0x4; -pub const NLMSG_MIN_TYPE: c_int = 0x10; - // linux/netfilter/nfnetlink.h pub const NFNLGRP_NONE: c_int = 0; pub const NFNLGRP_CONNTRACK_NEW: c_int = 1; @@ -3175,8 +1999,8 @@ pub const NFNL_SUBSYS_NFT_COMPAT: c_int = 11; pub const NFNL_SUBSYS_HOOK: c_int = 12; pub const NFNL_SUBSYS_COUNT: c_int = 13; -pub const NFNL_MSG_BATCH_BEGIN: c_int = NLMSG_MIN_TYPE; -pub const NFNL_MSG_BATCH_END: c_int = NLMSG_MIN_TYPE + 1; +pub const NFNL_MSG_BATCH_BEGIN: c_int = crate::NLMSG_MIN_TYPE; +pub const NFNL_MSG_BATCH_END: c_int = crate::NLMSG_MIN_TYPE + 1; pub const NFNL_BATCH_UNSPEC: c_int = 0; pub const NFNL_BATCH_GENID: c_int = 1; @@ -3299,7 +2123,7 @@ pub const NFQA_SKB_CSUM_NOTVERIFIED: c_int = 0x0004; pub const GENL_NAMSIZ: c_int = 16; -pub const GENL_MIN_ID: c_int = NLMSG_MIN_TYPE; +pub const GENL_MIN_ID: c_int = crate::NLMSG_MIN_TYPE; pub const GENL_MAX_ID: c_int = 1023; pub const GENL_ADMIN_PERM: c_int = 0x01; @@ -3307,7 +2131,7 @@ pub const GENL_CMD_CAP_DO: c_int = 0x02; pub const GENL_CMD_CAP_DUMP: c_int = 0x04; pub const GENL_CMD_CAP_HASPOL: c_int = 0x08; -pub const GENL_ID_CTRL: c_int = NLMSG_MIN_TYPE; +pub const GENL_ID_CTRL: c_int = crate::NLMSG_MIN_TYPE; pub const CTRL_CMD_UNSPEC: c_int = 0; pub const CTRL_CMD_NEWFAMILY: c_int = 1; @@ -3337,32 +2161,6 @@ pub const CTRL_ATTR_MCAST_GRP_UNSPEC: c_int = 0; pub const CTRL_ATTR_MCAST_GRP_NAME: c_int = 1; pub const CTRL_ATTR_MCAST_GRP_ID: c_int = 2; -// linux/if_packet.h -pub const PACKET_HOST: c_uchar = 0; -pub const PACKET_BROADCAST: c_uchar = 1; -pub const PACKET_MULTICAST: c_uchar = 2; -pub const PACKET_OTHERHOST: c_uchar = 3; -pub const PACKET_OUTGOING: c_uchar = 4; -pub const PACKET_LOOPBACK: c_uchar = 5; -pub const PACKET_USER: c_uchar = 6; -pub const PACKET_KERNEL: c_uchar = 7; - -pub const PACKET_ADD_MEMBERSHIP: c_int = 1; -pub const PACKET_DROP_MEMBERSHIP: c_int = 2; -pub const PACKET_RECV_OUTPUT: c_int = 3; -pub const PACKET_RX_RING: c_int = 5; -pub const PACKET_STATISTICS: c_int = 6; -pub const PACKET_COPY_THRESH: c_int = 7; -pub const PACKET_AUXDATA: c_int = 8; -pub const PACKET_ORIGDEV: c_int = 9; -pub const PACKET_VERSION: c_int = 10; -pub const PACKET_HDRLEN: c_int = 11; -pub const PACKET_RESERVE: c_int = 12; -pub const PACKET_TX_RING: c_int = 13; -pub const PACKET_LOSS: c_int = 14; -pub const PACKET_VNET_HDR: c_int = 15; -pub const PACKET_TX_TIMESTAMP: c_int = 16; -pub const PACKET_TIMESTAMP: c_int = 17; pub const PACKET_FANOUT: c_int = 18; pub const PACKET_TX_HAS_OFF: c_int = 19; pub const PACKET_QDISC_BYPASS: c_int = 20; @@ -3384,10 +2182,6 @@ pub const PACKET_FANOUT_FLAG_UNIQUEID: c_uint = 0x2000; pub const PACKET_FANOUT_FLAG_IGNORE_OUTGOING: c_uint = 0x4000; pub const PACKET_FANOUT_FLAG_DEFRAG: c_uint = 0x8000; -pub const PACKET_MR_MULTICAST: c_int = 0; -pub const PACKET_MR_PROMISC: c_int = 1; -pub const PACKET_MR_ALLMULTI: c_int = 2; - pub const TP_STATUS_KERNEL: __u32 = 0; pub const TP_STATUS_USER: __u32 = 1 << 0; pub const TP_STATUS_COPY: __u32 = 1 << 1; @@ -3536,62 +2330,6 @@ pub const NF_IP6_PRI_LAST: c_int = crate::INT_MAX; // linux/netfilter_ipv6/ip6_tables.h pub const IP6T_SO_ORIGINAL_DST: c_int = 80; -pub const SIOCADDRT: c_ulong = 0x0000890B; -pub const SIOCDELRT: c_ulong = 0x0000890C; -pub const SIOCGIFNAME: c_ulong = 0x00008910; -pub const SIOCSIFLINK: c_ulong = 0x00008911; -pub const SIOCGIFCONF: c_ulong = 0x00008912; -pub const SIOCGIFFLAGS: c_ulong = 0x00008913; -pub const SIOCSIFFLAGS: c_ulong = 0x00008914; -pub const SIOCGIFADDR: c_ulong = 0x00008915; -pub const SIOCSIFADDR: c_ulong = 0x00008916; -pub const SIOCGIFDSTADDR: c_ulong = 0x00008917; -pub const SIOCSIFDSTADDR: c_ulong = 0x00008918; -pub const SIOCGIFBRDADDR: c_ulong = 0x00008919; -pub const SIOCSIFBRDADDR: c_ulong = 0x0000891A; -pub const SIOCGIFNETMASK: c_ulong = 0x0000891B; -pub const SIOCSIFNETMASK: c_ulong = 0x0000891C; -pub const SIOCGIFMETRIC: c_ulong = 0x0000891D; -pub const SIOCSIFMETRIC: c_ulong = 0x0000891E; -pub const SIOCGIFMEM: c_ulong = 0x0000891F; -pub const SIOCSIFMEM: c_ulong = 0x00008920; -pub const SIOCGIFMTU: c_ulong = 0x00008921; -pub const SIOCSIFMTU: c_ulong = 0x00008922; -pub const SIOCSIFNAME: c_ulong = 0x00008923; -pub const SIOCSIFHWADDR: c_ulong = 0x00008924; -pub const SIOCGIFENCAP: c_ulong = 0x00008925; -pub const SIOCSIFENCAP: c_ulong = 0x00008926; -pub const SIOCGIFHWADDR: c_ulong = 0x00008927; -pub const SIOCGIFSLAVE: c_ulong = 0x00008929; -pub const SIOCSIFSLAVE: c_ulong = 0x00008930; -pub const SIOCADDMULTI: c_ulong = 0x00008931; -pub const SIOCDELMULTI: c_ulong = 0x00008932; -pub const SIOCGIFINDEX: c_ulong = 0x00008933; -pub const SIOGIFINDEX: c_ulong = SIOCGIFINDEX; -pub const SIOCSIFPFLAGS: c_ulong = 0x00008934; -pub const SIOCGIFPFLAGS: c_ulong = 0x00008935; -pub const SIOCDIFADDR: c_ulong = 0x00008936; -pub const SIOCSIFHWBROADCAST: c_ulong = 0x00008937; -pub const SIOCGIFCOUNT: c_ulong = 0x00008938; -pub const SIOCGIFBR: c_ulong = 0x00008940; -pub const SIOCSIFBR: c_ulong = 0x00008941; -pub const SIOCGIFTXQLEN: c_ulong = 0x00008942; -pub const SIOCSIFTXQLEN: c_ulong = 0x00008943; -pub const SIOCETHTOOL: c_ulong = 0x00008946; -pub const SIOCGMIIPHY: c_ulong = 0x00008947; -pub const SIOCGMIIREG: c_ulong = 0x00008948; -pub const SIOCSMIIREG: c_ulong = 0x00008949; -pub const SIOCWANDEV: c_ulong = 0x0000894A; -pub const SIOCOUTQNSD: c_ulong = 0x0000894B; -pub const SIOCGSKNS: c_ulong = 0x0000894C; -pub const SIOCDARP: c_ulong = 0x00008953; -pub const SIOCGARP: c_ulong = 0x00008954; -pub const SIOCSARP: c_ulong = 0x00008955; -pub const SIOCDRARP: c_ulong = 0x00008960; -pub const SIOCGRARP: c_ulong = 0x00008961; -pub const SIOCSRARP: c_ulong = 0x00008962; -pub const SIOCGIFMAP: c_ulong = 0x00008970; -pub const SIOCSIFMAP: c_ulong = 0x00008971; pub const SIOCSHWTSTAMP: c_ulong = 0x000089b0; pub const SIOCGHWTSTAMP: c_ulong = 0x000089b1; @@ -3890,58 +2628,6 @@ pub const IW_EV_ADDR_PK_LEN: usize = 20; // IW_EV_LCP_PK_LEN + size_of::(); pub const IW_EV_POINT_PK_LEN: usize = 8; // IW_EV_LCP_PK_LEN + 4; -pub const IPTOS_TOS_MASK: u8 = 0x1E; -pub const IPTOS_PREC_MASK: u8 = 0xE0; - -pub const IPTOS_ECN_NOT_ECT: u8 = 0x00; - -pub const RTF_UP: c_ushort = 0x0001; -pub const RTF_GATEWAY: c_ushort = 0x0002; - -pub const RTF_HOST: c_ushort = 0x0004; -pub const RTF_REINSTATE: c_ushort = 0x0008; -pub const RTF_DYNAMIC: c_ushort = 0x0010; -pub const RTF_MODIFIED: c_ushort = 0x0020; -pub const RTF_MTU: c_ushort = 0x0040; -pub const RTF_MSS: c_ushort = RTF_MTU; -pub const RTF_WINDOW: c_ushort = 0x0080; -pub const RTF_IRTT: c_ushort = 0x0100; -pub const RTF_REJECT: c_ushort = 0x0200; -pub const RTF_STATIC: c_ushort = 0x0400; -pub const RTF_XRESOLVE: c_ushort = 0x0800; -pub const RTF_NOFORWARD: c_ushort = 0x1000; -pub const RTF_THROW: c_ushort = 0x2000; -pub const RTF_NOPMTUDISC: c_ushort = 0x4000; - -pub const RTF_DEFAULT: u32 = 0x00010000; -pub const RTF_ALLONLINK: u32 = 0x00020000; -pub const RTF_ADDRCONF: u32 = 0x00040000; -pub const RTF_LINKRT: u32 = 0x00100000; -pub const RTF_NONEXTHOP: u32 = 0x00200000; -pub const RTF_CACHE: u32 = 0x01000000; -pub const RTF_FLOW: u32 = 0x02000000; -pub const RTF_POLICY: u32 = 0x04000000; - -pub const RTCF_VALVE: u32 = 0x00200000; -pub const RTCF_MASQ: u32 = 0x00400000; -pub const RTCF_NAT: u32 = 0x00800000; -pub const RTCF_DOREDIRECT: u32 = 0x01000000; -pub const RTCF_LOG: u32 = 0x02000000; -pub const RTCF_DIRECTSRC: u32 = 0x04000000; - -pub const RTF_LOCAL: u32 = 0x80000000; -pub const RTF_INTERFACE: u32 = 0x40000000; -pub const RTF_MULTICAST: u32 = 0x20000000; -pub const RTF_BROADCAST: u32 = 0x10000000; -pub const RTF_NAT: u32 = 0x08000000; -pub const RTF_ADDRCLASSMASK: u32 = 0xF8000000; - -pub const RT_CLASS_UNSPEC: u8 = 0; -pub const RT_CLASS_DEFAULT: u8 = 253; -pub const RT_CLASS_MAIN: u8 = 254; -pub const RT_CLASS_LOCAL: u8 = 255; -pub const RT_CLASS_MAX: u8 = 255; - // linux/neighbor.h pub const NUD_NONE: u16 = 0x00; pub const NUD_INCOMPLETE: u16 = 0x01; @@ -4160,12 +2846,6 @@ pub const RTMSG_DELRULE: u32 = 0x32; pub const RTMSG_CONTROL: u32 = 0x40; pub const RTMSG_AR_FAILED: u32 = 0x51; -pub const MAX_ADDR_LEN: usize = 7; -pub const ARPD_UPDATE: c_ushort = 0x01; -pub const ARPD_LOOKUP: c_ushort = 0x02; -pub const ARPD_FLUSH: c_ushort = 0x03; -pub const ATF_MAGIC: c_int = 0x80; - pub const RTEXT_FILTER_VF: c_int = 1 << 0; pub const RTEXT_FILTER_BRVLAN: c_int = 1 << 1; pub const RTEXT_FILTER_BRVLAN_COMPRESSED: c_int = 1 << 2; @@ -4469,20 +3149,10 @@ pub const IF_LINK_MODE_DEFAULT: c_int = 0; pub const IF_LINK_MODE_DORMANT: c_int = 1; pub const IF_LINK_MODE_TESTING: c_int = 2; -// include/uapi/linux/udp.h -pub const UDP_CORK: c_int = 1; -pub const UDP_ENCAP: c_int = 100; -pub const UDP_NO_CHECK6_TX: c_int = 101; -pub const UDP_NO_CHECK6_RX: c_int = 102; - // include/uapi/linux/mman.h pub const MAP_SHARED_VALIDATE: c_int = 0x3; pub const MAP_DROPPABLE: c_int = 0x8; -// include/uapi/asm-generic/mman-common.h -pub const MAP_FIXED_NOREPLACE: c_int = 0x100000; -pub const MLOCK_ONFAULT: c_uint = 0x01; - // uapi/linux/vm_sockets.h pub const VMADDR_CID_ANY: c_uint = 0xFFFFFFFF; pub const VMADDR_CID_HYPERVISOR: c_uint = 0; @@ -4993,29 +3663,6 @@ pub const LINUX_REBOOT_CMD_RESTART2: c_int = 0xA1B2C3D4; pub const LINUX_REBOOT_CMD_SW_SUSPEND: c_int = 0xD000FCE2; pub const LINUX_REBOOT_CMD_KEXEC: c_int = 0x45584543; -pub const REG_EXTENDED: c_int = 1; -pub const REG_ICASE: c_int = 2; -pub const REG_NEWLINE: c_int = 4; -pub const REG_NOSUB: c_int = 8; - -pub const REG_NOTBOL: c_int = 1; -pub const REG_NOTEOL: c_int = 2; - -pub const REG_ENOSYS: c_int = -1; -pub const REG_NOMATCH: c_int = 1; -pub const REG_BADPAT: c_int = 2; -pub const REG_ECOLLATE: c_int = 3; -pub const REG_ECTYPE: c_int = 4; -pub const REG_EESCAPE: c_int = 5; -pub const REG_ESUBREG: c_int = 6; -pub const REG_EBRACK: c_int = 7; -pub const REG_EPAREN: c_int = 8; -pub const REG_EBRACE: c_int = 9; -pub const REG_BADBR: c_int = 10; -pub const REG_ERANGE: c_int = 11; -pub const REG_ESPACE: c_int = 12; -pub const REG_BADRPT: c_int = 13; - // linux/errqueue.h pub const SO_EE_ORIGIN_NONE: u8 = 0; pub const SO_EE_ORIGIN_LOCAL: u8 = 1; @@ -5024,43 +3671,6 @@ pub const SO_EE_ORIGIN_ICMP6: u8 = 3; pub const SO_EE_ORIGIN_TXSTATUS: u8 = 4; pub const SO_EE_ORIGIN_TIMESTAMPING: u8 = SO_EE_ORIGIN_TXSTATUS; -// errno.h -pub const EPERM: c_int = 1; -pub const ENOENT: c_int = 2; -pub const ESRCH: c_int = 3; -pub const EINTR: c_int = 4; -pub const EIO: c_int = 5; -pub const ENXIO: c_int = 6; -pub const E2BIG: c_int = 7; -pub const ENOEXEC: c_int = 8; -pub const EBADF: c_int = 9; -pub const ECHILD: c_int = 10; -pub const EAGAIN: c_int = 11; -pub const ENOMEM: c_int = 12; -pub const EACCES: c_int = 13; -pub const EFAULT: c_int = 14; -pub const ENOTBLK: c_int = 15; -pub const EBUSY: c_int = 16; -pub const EEXIST: c_int = 17; -pub const EXDEV: c_int = 18; -pub const ENODEV: c_int = 19; -pub const ENOTDIR: c_int = 20; -pub const EISDIR: c_int = 21; -pub const EINVAL: c_int = 22; -pub const ENFILE: c_int = 23; -pub const EMFILE: c_int = 24; -pub const ENOTTY: c_int = 25; -pub const ETXTBSY: c_int = 26; -pub const EFBIG: c_int = 27; -pub const ENOSPC: c_int = 28; -pub const ESPIPE: c_int = 29; -pub const EROFS: c_int = 30; -pub const EMLINK: c_int = 31; -pub const EPIPE: c_int = 32; -pub const EDOM: c_int = 33; -pub const ERANGE: c_int = 34; -pub const EWOULDBLOCK: c_int = EAGAIN; - // linux/sctp.h pub const SCTP_FUTURE_ASSOC: c_int = 0; pub const SCTP_CURRENT_ASSOC: c_int = 1; @@ -5362,18 +3972,6 @@ pub const PF_SUSPEND_TASK: c_int = PF_SUSPEND_TASK_UINT as _; // desired information as-is in terms of integer representation. const PF_SUSPEND_TASK_UINT: c_uint = 0x80000000; -pub const CSIGNAL: c_int = 0x000000ff; - -pub const SCHED_NORMAL: c_int = 0; -pub const SCHED_OTHER: c_int = 0; -pub const SCHED_FIFO: c_int = 1; -pub const SCHED_RR: c_int = 2; -pub const SCHED_BATCH: c_int = 3; -pub const SCHED_IDLE: c_int = 5; -pub const SCHED_DEADLINE: c_int = 6; - -pub const SCHED_RESET_ON_FORK: c_int = 0x40000000; - pub const CLONE_PIDFD: c_int = 0x1000; pub const SCHED_FLAG_RESET_ON_FORK: c_int = 0x01; @@ -5442,25 +4040,6 @@ pub const MOUNT_ATTR_NOSYMFOLLOW: crate::__u64 = 0x00200000; pub const MOUNT_ATTR_SIZE_VER0: c_int = 32; -// elf.h -pub const NT_PRSTATUS: c_int = 1; -pub const NT_PRFPREG: c_int = 2; -pub const NT_FPREGSET: c_int = 2; -pub const NT_PRPSINFO: c_int = 3; -pub const NT_PRXREG: c_int = 4; -pub const NT_TASKSTRUCT: c_int = 4; -pub const NT_PLATFORM: c_int = 5; -pub const NT_AUXV: c_int = 6; -pub const NT_GWINDOWS: c_int = 7; -pub const NT_ASRS: c_int = 8; -pub const NT_PSTATUS: c_int = 10; -pub const NT_PSINFO: c_int = 13; -pub const NT_PRCRED: c_int = 14; -pub const NT_UTSNAME: c_int = 15; -pub const NT_LWPSTATUS: c_int = 16; -pub const NT_LWPSINFO: c_int = 17; -pub const NT_PRFPXREG: c_int = 20; - pub const SCHED_FLAG_KEEP_ALL: c_int = SCHED_FLAG_KEEP_POLICY | SCHED_FLAG_KEEP_PARAMS; pub const SCHED_FLAG_UTIL_CLAMP: c_int = SCHED_FLAG_UTIL_CLAMP_MIN | SCHED_FLAG_UTIL_CLAMP_MAX; @@ -5484,72 +4063,6 @@ f! { return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1); } - pub fn CMSG_NXTHDR( - mhdr: *const crate::msghdr, - cmsg: *const crate::cmsghdr, - ) -> *mut crate::cmsghdr { - if ((*cmsg).cmsg_len as usize) < size_of::() { - return core::ptr::null_mut::(); - } - let next = - (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut crate::cmsghdr; - let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; - if (next.wrapping_offset(1)) as usize > max - || next as usize + super::CMSG_ALIGN((*next).cmsg_len as usize) > max - { - core::ptr::null_mut::() - } else { - next - } - } - - pub fn CPU_ALLOC_SIZE(count: c_int) -> size_t { - let _dummy: cpu_set_t = mem::zeroed(); - let size_in_bits = 8 * size_of_val(&_dummy.bits[0]); - ((count as size_t + size_in_bits - 1) / 8) as size_t - } - - pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { - for slot in &mut cpuset.bits { - *slot = 0; - } - } - - pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); // 32, 64 etc - let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); - cpuset.bits[idx] |= 1 << offset; - } - - pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); // 32, 64 etc - let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); - cpuset.bits[idx] &= !(1 << offset); - } - - pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); - let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); - 0 != (cpuset.bits[idx] & (1 << offset)) - } - - pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int { - let mut s: u32 = 0; - let size_of_mask = size_of_val(&cpuset.bits[0]); - for i in &cpuset.bits[..(size / size_of_mask)] { - s += i.count_ones(); - } - s as c_int - } - - pub fn CPU_COUNT(cpuset: &cpu_set_t) -> c_int { - CPU_COUNT_S(size_of::(), cpuset) - } - - pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { - set1.bits == set2.bits - } - pub fn SCTP_PR_INDEX(policy: c_int) -> c_int { policy >> (4 - 1) } @@ -5563,26 +4076,6 @@ f! { *flags |= policy; } - pub fn IPTOS_TOS(tos: u8) -> u8 { - tos & IPTOS_TOS_MASK - } - - pub fn IPTOS_PREC(tos: u8) -> u8 { - tos & IPTOS_PREC_MASK - } - - pub fn RT_TOS(tos: u8) -> u8 { - tos & crate::IPTOS_TOS_MASK - } - - pub fn RT_ADDRCLASS(flags: u32) -> u32 { - flags >> 23 - } - - pub fn RT_LOCALADDR(flags: u32) -> bool { - (flags & RTF_ADDRCLASSMASK) == (RTF_LOCAL | RTF_INTERFACE) - } - pub fn SO_EE_OFFENDER(ee: *const crate::sock_extended_err) -> *mut crate::sockaddr { ee.offset(1) as *mut crate::sockaddr } @@ -5632,30 +4125,6 @@ f! { sock_filter { code, jt, jf, k } } - pub fn ELF32_R_SYM(val: Elf32_Word) -> Elf32_Word { - val >> 8 - } - - pub fn ELF32_R_TYPE(val: Elf32_Word) -> Elf32_Word { - val & 0xff - } - - pub fn ELF32_R_INFO(sym: Elf32_Word, t: Elf32_Word) -> Elf32_Word { - sym << (8 + t) & 0xff - } - - pub fn ELF64_R_SYM(val: Elf64_Xword) -> Elf64_Xword { - val >> 32 - } - - pub fn ELF64_R_TYPE(val: Elf64_Xword) -> Elf64_Xword { - val & 0xffffffff - } - - pub fn ELF64_R_INFO(sym: Elf64_Xword, t: Elf64_Xword) -> Elf64_Xword { - sym << (32 + t) - } - #[cfg(target_env = "gnu")] pub fn SUN_LEN(s: crate::sockaddr_un) -> usize { offset_of!(crate::sockaddr_un, sun_path) + crate::strlen(s.sun_path.as_ptr()) @@ -5668,31 +4137,6 @@ f! { } safe_f! { - pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { - let major = major as crate::dev_t; - let minor = minor as crate::dev_t; - let mut dev = 0; - dev |= (major & 0x00000fff) << 8; - dev |= (major & 0xfffff000) << 32; - dev |= (minor & 0x000000ff) << 0; - dev |= (minor & 0xffffff00) << 12; - dev - } - - pub const fn major(dev: crate::dev_t) -> c_uint { - let mut major = 0; - major |= (dev & 0x00000000000fff00) >> 8; - major |= (dev & 0xfffff00000000000) >> 32; - major as c_uint - } - - pub const fn minor(dev: crate::dev_t) -> c_uint { - let mut minor = 0; - minor |= (dev & 0x00000000000000ff) >> 0; - minor |= (dev & 0x00000ffffff00000) >> 12; - minor as c_uint - } - pub const fn SCTP_PR_TTL_ENABLED(policy: c_int) -> bool { policy == SCTP_PR_SCTP_TTL } @@ -5706,98 +4150,6 @@ safe_f! { } } -cfg_if! { - if #[cfg(all( - any(target_env = "gnu", target_env = "musl", target_env = "ohos"), - any(target_arch = "x86_64", target_arch = "x86") - ))] { - extern "C" { - pub fn iopl(level: c_int) -> c_int; - pub fn ioperm(from: c_ulong, num: c_ulong, turn_on: c_int) -> c_int; - } - } -} - -cfg_if! { - if #[cfg(all(not(target_env = "uclibc"), not(target_env = "ohos")))] { - extern "C" { - #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_read64")] - pub fn aio_read(aiocbp: *mut aiocb) -> c_int; - #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_write64")] - pub fn aio_write(aiocbp: *mut aiocb) -> c_int; - pub fn aio_fsync(op: c_int, aiocbp: *mut aiocb) -> c_int; - #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_error64")] - pub fn aio_error(aiocbp: *const aiocb) -> c_int; - #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_return64")] - pub fn aio_return(aiocbp: *mut aiocb) -> ssize_t; - #[cfg_attr(gnu_time_bits64, link_name = "__aio_suspend_time64")] - pub fn aio_suspend( - aiocb_list: *const *const aiocb, - nitems: c_int, - timeout: *const crate::timespec, - ) -> c_int; - #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_cancel64")] - pub fn aio_cancel(fd: c_int, aiocbp: *mut aiocb) -> c_int; - #[cfg_attr(gnu_file_offset_bits64, link_name = "lio_listio64")] - pub fn lio_listio( - mode: c_int, - aiocb_list: *const *mut aiocb, - nitems: c_int, - sevp: *mut crate::sigevent, - ) -> c_int; - } - } -} - -cfg_if! { - if #[cfg(not(target_env = "uclibc"))] { - extern "C" { - #[cfg_attr(gnu_file_offset_bits64, link_name = "pwritev64")] - pub fn pwritev( - fd: c_int, - iov: *const crate::iovec, - iovcnt: c_int, - offset: off_t, - ) -> ssize_t; - #[cfg_attr(gnu_file_offset_bits64, link_name = "preadv64")] - pub fn preadv( - fd: c_int, - iov: *const crate::iovec, - iovcnt: c_int, - offset: off_t, - ) -> ssize_t; - pub fn getnameinfo( - sa: *const crate::sockaddr, - salen: crate::socklen_t, - host: *mut c_char, - hostlen: crate::socklen_t, - serv: *mut c_char, - servlen: crate::socklen_t, - flags: c_int, - ) -> c_int; - pub fn getloadavg(loadavg: *mut c_double, nelem: c_int) -> c_int; - pub fn process_vm_readv( - pid: crate::pid_t, - local_iov: *const crate::iovec, - liovcnt: c_ulong, - remote_iov: *const crate::iovec, - riovcnt: c_ulong, - flags: c_ulong, - ) -> isize; - pub fn process_vm_writev( - pid: crate::pid_t, - local_iov: *const crate::iovec, - liovcnt: c_ulong, - remote_iov: *const crate::iovec, - riovcnt: c_ulong, - flags: c_ulong, - ) -> isize; - #[cfg_attr(gnu_time_bits64, link_name = "__futimes64")] - pub fn futimes(fd: c_int, times: *const crate::timeval) -> c_int; - } - } -} - // These functions are not available on OpenHarmony cfg_if! { if #[cfg(not(target_env = "ohos"))] { @@ -5807,46 +4159,46 @@ cfg_if! { // https://git.musl-libc.org/cgit/musl/tree/include/shadow.h pub fn getspnam_r( name: *const c_char, - spbuf: *mut spwd, + spbuf: *mut crate::spwd, buf: *mut c_char, buflen: size_t, - spbufp: *mut *mut spwd, + spbufp: *mut *mut crate::spwd, ) -> c_int; - pub fn mq_open(name: *const c_char, oflag: c_int, ...) -> crate::mqd_t; - pub fn mq_close(mqd: crate::mqd_t) -> c_int; + pub fn mq_open(name: *const c_char, oflag: c_int, ...) -> mqd_t; + pub fn mq_close(mqd: mqd_t) -> c_int; pub fn mq_unlink(name: *const c_char) -> c_int; pub fn mq_receive( - mqd: crate::mqd_t, + mqd: mqd_t, msg_ptr: *mut c_char, msg_len: size_t, msg_prio: *mut c_uint, ) -> ssize_t; #[cfg_attr(gnu_time_bits64, link_name = "__mq_timedreceive_time64")] pub fn mq_timedreceive( - mqd: crate::mqd_t, + mqd: mqd_t, msg_ptr: *mut c_char, msg_len: size_t, msg_prio: *mut c_uint, abs_timeout: *const crate::timespec, ) -> ssize_t; pub fn mq_send( - mqd: crate::mqd_t, + mqd: mqd_t, msg_ptr: *const c_char, msg_len: size_t, msg_prio: c_uint, ) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__mq_timedsend_time64")] pub fn mq_timedsend( - mqd: crate::mqd_t, + mqd: mqd_t, msg_ptr: *const c_char, msg_len: size_t, msg_prio: c_uint, abs_timeout: *const crate::timespec, ) -> c_int; - pub fn mq_getattr(mqd: crate::mqd_t, attr: *mut crate::mq_attr) -> c_int; + pub fn mq_getattr(mqd: mqd_t, attr: *mut crate::mq_attr) -> c_int; pub fn mq_setattr( - mqd: crate::mqd_t, + mqd: mqd_t, newattr: *const crate::mq_attr, oldattr: *mut crate::mq_attr, ) -> c_int; @@ -5855,51 +4207,17 @@ cfg_if! { } extern "C" { - #[cfg_attr( - not(any(target_env = "musl", target_env = "ohos")), - link_name = "__xpg_strerror_r" - )] - pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; - - pub fn abs(i: c_int) -> c_int; - pub fn labs(i: c_long) -> c_long; - pub fn rand() -> c_int; - pub fn srand(seed: c_uint); - - pub fn drand48() -> c_double; - pub fn erand48(xseed: *mut c_ushort) -> c_double; - pub fn lrand48() -> c_long; - pub fn nrand48(xseed: *mut c_ushort) -> c_long; pub fn mrand48() -> c_long; - pub fn jrand48(xseed: *mut c_ushort) -> c_long; - pub fn srand48(seed: c_long); pub fn seed48(xseed: *mut c_ushort) -> *mut c_ushort; pub fn lcong48(p: *mut c_ushort); #[cfg_attr(gnu_time_bits64, link_name = "__lutimes64")] pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int; - pub fn setpwent(); - pub fn endpwent(); - pub fn getpwent() -> *mut passwd; - pub fn setgrent(); - pub fn endgrent(); - pub fn getgrent() -> *mut crate::group; - pub fn setspent(); - pub fn endspent(); - pub fn getspent() -> *mut spwd; - - pub fn getspnam(name: *const c_char) -> *mut spwd; - pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; pub fn shm_unlink(name: *const c_char) -> c_int; // System V IPC - pub fn shmget(key: crate::key_t, size: size_t, shmflg: c_int) -> c_int; - 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; - #[cfg_attr(gnu_time_bits64, link_name = "__shmctl64")] - pub fn shmctl(shmid: c_int, cmd: c_int, buf: *mut crate::shmid_ds) -> c_int; pub fn ftok(pathname: *const c_char, proj_id: c_int) -> crate::key_t; pub fn semget(key: crate::key_t, nsems: c_int, semflag: c_int) -> c_int; pub fn semop(semid: c_int, sops: *mut crate::sembuf, nsops: size_t) -> c_int; @@ -5917,9 +4235,6 @@ extern "C" { ) -> ssize_t; pub fn msgsnd(msqid: c_int, msgp: *const c_void, msgsz: size_t, msgflg: c_int) -> c_int; - pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; - pub fn __errno_location() -> *mut c_int; - #[cfg_attr(gnu_file_offset_bits64, link_name = "fallocate64")] pub fn fallocate(fd: c_int, mode: c_int, offset: off_t, len: off_t) -> c_int; #[cfg_attr(gnu_file_offset_bits64, link_name = "posix_fallocate64")] @@ -5973,13 +4288,13 @@ extern "C" { pub fn signalfd(fd: c_int, mask: *const crate::sigset_t, flags: c_int) -> c_int; pub fn timerfd_create(clockid: crate::clockid_t, flags: c_int) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__timerfd_gettime64")] - pub fn timerfd_gettime(fd: c_int, curr_value: *mut itimerspec) -> c_int; + pub fn timerfd_gettime(fd: c_int, curr_value: *mut crate::itimerspec) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__timerfd_settime64")] pub fn timerfd_settime( fd: c_int, flags: c_int, - new_value: *const itimerspec, - old_value: *mut itimerspec, + new_value: *const crate::itimerspec, + old_value: *mut crate::itimerspec, ) -> c_int; pub fn quotactl(cmd: c_int, special: *const c_char, id: c_int, data: *mut c_char) -> c_int; pub fn epoll_pwait( @@ -5997,56 +4312,18 @@ extern "C" { timeout: *const crate::timespec, ) -> c_int; pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> c_int; - pub fn nl_langinfo_l(item: crate::nl_item, locale: crate::locale_t) -> *mut c_char; - pub fn accept4( - fd: c_int, - addr: *mut crate::sockaddr, - len: *mut crate::socklen_t, - flg: c_int, - ) -> c_int; + pub fn accept4(fd: c_int, addr: *mut crate::sockaddr, len: *mut socklen_t, flg: c_int) + -> c_int; pub fn reboot(how_to: c_int) -> c_int; pub fn setfsgid(gid: crate::gid_t) -> c_int; pub fn setfsuid(uid: crate::uid_t) -> c_int; // Not available now on Android pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; - pub fn if_nameindex() -> *mut if_nameindex; - pub fn if_freenameindex(ptr: *mut if_nameindex); pub fn sync_file_range(fd: c_int, offset: off64_t, nbytes: off64_t, flags: c_uint) -> c_int; - pub fn mremap( - addr: *mut c_void, - len: size_t, - new_len: size_t, - flags: c_int, - ... - ) -> *mut c_void; - - #[cfg_attr(gnu_time_bits64, link_name = "__glob64_time64")] - #[cfg_attr( - all(not(gnu_time_bits64), gnu_file_offset_bits64), - link_name = "glob64" - )] - pub fn glob( - pattern: *const c_char, - flags: c_int, - errfunc: Option c_int>, - pglob: *mut crate::glob_t, - ) -> c_int; - #[cfg_attr(gnu_time_bits64, link_name = "__globfree64_time64")] - #[cfg_attr( - all(not(gnu_time_bits64), gnu_file_offset_bits64), - link_name = "globfree64" - )] - pub fn globfree(pglob: *mut crate::glob_t); pub fn posix_madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; - pub fn seekdir(dirp: *mut crate::DIR, loc: c_long); - - pub fn telldir(dirp: *mut crate::DIR) -> c_long; - pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; - - pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; pub fn remap_file_pages( addr: *mut c_void, size: size_t, @@ -6054,32 +4331,17 @@ extern "C" { pgoff: size_t, flags: c_int, ) -> c_int; - pub fn recvfrom( - socket: c_int, - buf: *mut c_void, - len: size_t, - flags: c_int, - addr: *mut crate::sockaddr, - addrlen: *mut crate::socklen_t, - ) -> ssize_t; #[cfg_attr(gnu_file_offset_bits64, link_name = "mkstemps64")] pub fn mkstemps(template: *mut c_char, suffixlen: c_int) -> c_int; - pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char; - pub fn vhangup() -> c_int; pub fn sync(); pub fn syncfs(fd: c_int) -> c_int; pub fn syscall(num: c_long, ...) -> c_long; - pub fn sched_getaffinity( - pid: crate::pid_t, - cpusetsize: size_t, - cpuset: *mut cpu_set_t, - ) -> c_int; pub fn sched_setaffinity( pid: crate::pid_t, cpusetsize: size_t, - cpuset: *const cpu_set_t, + cpuset: *const crate::cpu_set_t, ) -> c_int; pub fn epoll_create(size: c_int) -> c_int; pub fn epoll_create1(flags: c_int) -> c_int; @@ -6092,15 +4354,12 @@ extern "C" { pub fn epoll_ctl(epfd: c_int, op: c_int, fd: c_int, event: *mut crate::epoll_event) -> c_int; pub fn unshare(flags: c_int) -> c_int; pub fn umount(target: *const c_char) -> c_int; - pub fn sched_get_priority_max(policy: c_int) -> c_int; pub fn tee(fd_in: c_int, fd_out: c_int, len: size_t, flags: c_uint) -> ssize_t; - #[cfg_attr(gnu_time_bits64, link_name = "__settimeofday64")] - pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int; pub fn splice( fd_in: c_int, - off_in: *mut crate::loff_t, + off_in: *mut loff_t, fd_out: c_int, - off_out: *mut crate::loff_t, + off_out: *mut loff_t, len: size_t, flags: c_uint, ) -> ssize_t; @@ -6110,33 +4369,13 @@ extern "C" { #[cfg_attr(gnu_time_bits64, link_name = "__sched_rr_get_interval64")] pub fn sched_rr_get_interval(pid: crate::pid_t, tp: *mut crate::timespec) -> c_int; - #[cfg_attr(gnu_time_bits64, link_name = "__sem_timedwait64")] - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int; pub fn sched_setparam(pid: crate::pid_t, param: *const crate::sched_param) -> c_int; pub fn setns(fd: c_int, nstype: c_int) -> c_int; pub fn swapoff(path: *const c_char) -> c_int; pub fn vmsplice(fd: c_int, iov: *const crate::iovec, nr_segs: size_t, flags: c_uint) -> ssize_t; - pub fn mount( - src: *const c_char, - target: *const c_char, - fstype: *const c_char, - flags: c_ulong, - data: *const c_void, - ) -> c_int; pub fn personality(persona: c_ulong) -> c_int; - #[cfg_attr(gnu_time_bits64, link_name = "__prctl_time64")] - pub fn prctl(option: c_int, ...) -> c_int; pub fn sched_getparam(pid: crate::pid_t, param: *mut crate::sched_param) -> c_int; - #[cfg_attr(gnu_time_bits64, link_name = "__ppoll64")] - pub fn ppoll( - fds: *mut crate::pollfd, - nfds: nfds_t, - timeout: *const crate::timespec, - sigmask: *const sigset_t, - ) -> c_int; - pub fn clone( cb: extern "C" fn(*mut c_void) -> c_int, child_stack: *mut c_void, @@ -6152,9 +4391,6 @@ extern "C" { rqtp: *const crate::timespec, rmtp: *mut crate::timespec, ) -> 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 sysinfo(info: *mut crate::sysinfo) -> c_int; pub fn umount2(target: *const c_char, flags: c_int) -> c_int; pub fn swapon(path: *const c_char, swapflags: c_int) -> c_int; pub fn sched_setscheduler( @@ -6164,29 +4400,8 @@ extern "C" { ) -> c_int; #[cfg_attr(gnu_file_offset_bits64, link_name = "sendfile64")] pub fn sendfile(out_fd: c_int, in_fd: c_int, offset: *mut off_t, count: size_t) -> ssize_t; - pub fn sigsuspend(mask: *const crate::sigset_t) -> c_int; - pub fn getgrgid_r( - gid: crate::gid_t, - grp: *mut crate::group, - buf: *mut c_char, - buflen: size_t, - result: *mut *mut crate::group, - ) -> c_int; pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> c_int; - pub fn sem_close(sem: *mut sem_t) -> c_int; pub fn getdtablesize() -> c_int; - pub fn getgrnam_r( - name: *const c_char, - grp: *mut crate::group, - buf: *mut c_char, - buflen: size_t, - result: *mut *mut crate::group, - ) -> c_int; - pub fn initgroups(user: *const c_char, group: crate::gid_t) -> c_int; - pub fn sem_open(name: *const c_char, oflag: c_int, ...) -> *mut sem_t; - pub fn getgrnam(name: *const c_char) -> *mut crate::group; - pub fn sem_unlink(name: *const c_char) -> c_int; - pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; pub fn getpwnam_r( name: *const c_char, pwd: *mut passwd, @@ -6201,33 +4416,12 @@ extern "C" { buflen: size_t, result: *mut *mut passwd, ) -> c_int; - pub fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int; - pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; pub fn getgrouplist( user: *const c_char, group: crate::gid_t, groups: *mut crate::gid_t, ngroups: *mut c_int, ) -> c_int; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut crate::FILE; - pub fn faccessat(dirfd: c_int, pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; - pub fn dl_iterate_phdr( - callback: Option< - unsafe extern "C" fn( - info: *mut crate::dl_phdr_info, - size: size_t, - data: *mut c_void, - ) -> c_int, - >, - data: *mut c_void, - ) -> c_int; - - pub fn setmntent(filename: *const c_char, ty: *const c_char) -> *mut crate::FILE; - pub fn getmntent(stream: *mut crate::FILE) -> *mut crate::mntent; - pub fn addmntent(stream: *mut crate::FILE, mnt: *const crate::mntent) -> c_int; - pub fn endmntent(streamp: *mut crate::FILE) -> c_int; - pub fn hasmntopt(mnt: *const crate::mntent, opt: *const c_char) -> *mut c_char; - pub fn posix_spawn( pid: *mut crate::pid_t, path: *const c_char, @@ -6313,81 +4507,8 @@ extern "C" { pub fn inotify_add_watch(fd: c_int, path: *const c_char, mask: u32) -> c_int; pub fn fanotify_init(flags: c_uint, event_f_flags: c_uint) -> c_int; - pub fn regcomp(preg: *mut crate::regex_t, pattern: *const c_char, cflags: c_int) -> c_int; - - pub fn regexec( - preg: *const crate::regex_t, - input: *const c_char, - nmatch: size_t, - pmatch: *mut regmatch_t, - eflags: c_int, - ) -> c_int; - - pub fn regerror( - errcode: c_int, - preg: *const crate::regex_t, - errbuf: *mut c_char, - errbuf_size: size_t, - ) -> size_t; - - pub fn regfree(preg: *mut crate::regex_t); - - pub fn iconv_open(tocode: *const c_char, fromcode: *const c_char) -> iconv_t; - pub fn iconv( - cd: iconv_t, - inbuf: *mut *mut c_char, - inbytesleft: *mut size_t, - outbuf: *mut *mut c_char, - outbytesleft: *mut size_t, - ) -> size_t; - pub fn iconv_close(cd: iconv_t) -> c_int; - - pub fn gettid() -> crate::pid_t; - - pub fn timer_create( - clockid: crate::clockid_t, - sevp: *mut crate::sigevent, - timerid: *mut crate::timer_t, - ) -> c_int; - pub fn timer_delete(timerid: crate::timer_t) -> c_int; - pub fn timer_getoverrun(timerid: crate::timer_t) -> c_int; - #[cfg_attr(gnu_time_bits64, link_name = "__timer_gettime64")] - pub fn timer_gettime(timerid: crate::timer_t, curr_value: *mut crate::itimerspec) -> c_int; - #[cfg_attr(gnu_time_bits64, link_name = "__timer_settime64")] - pub fn timer_settime( - timerid: crate::timer_t, - flags: c_int, - new_value: *const crate::itimerspec, - old_value: *mut crate::itimerspec, - ) -> c_int; - pub fn gethostid() -> c_long; - pub fn memmem( - haystack: *const c_void, - haystacklen: size_t, - needle: *const c_void, - needlelen: size_t, - ) -> *mut c_void; - pub fn sched_getcpu() -> c_int; - - pub fn getopt_long( - argc: c_int, - argv: *const *mut c_char, - optstring: *const c_char, - longopts: *const option, - longindex: *mut c_int, - ) -> c_int; - - pub fn copy_file_range( - fd_in: c_int, - off_in: *mut off64_t, - fd_out: c_int, - off_out: *mut off64_t, - len: size_t, - flags: c_uint, - ) -> ssize_t; - pub fn klogctl(syslog_type: c_int, bufp: *mut c_char, len: c_int) -> c_int; } @@ -6398,16 +4519,8 @@ cfg_if! { if #[cfg(not(any(target_env = "musl", target_env = "ohos")))] { extern "C" { pub fn fallocate64(fd: c_int, mode: c_int, offset: off64_t, len: off64_t) -> c_int; - pub fn fgetpos64(stream: *mut crate::FILE, ptr: *mut fpos64_t) -> c_int; + pub fn fgetpos64(stream: *mut crate::FILE, ptr: *mut crate::fpos64_t) -> c_int; pub fn fopen64(filename: *const c_char, mode: *const c_char) -> *mut crate::FILE; - pub fn freopen64( - filename: *const c_char, - mode: *const c_char, - file: *mut crate::FILE, - ) -> *mut crate::FILE; - pub fn fseeko64(stream: *mut crate::FILE, offset: off64_t, whence: c_int) -> c_int; - pub fn fsetpos64(stream: *mut crate::FILE, ptr: *const fpos64_t) -> c_int; - pub fn ftello64(stream: *mut crate::FILE) -> off64_t; pub fn posix_fallocate64(fd: c_int, offset: off64_t, len: off64_t) -> c_int; pub fn sendfile64( out_fd: c_int, diff --git a/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs b/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs deleted file mode 100644 index 536c716ca4868..0000000000000 --- a/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs +++ /dev/null @@ -1,53 +0,0 @@ -use crate::prelude::*; - -/// L4Re specifics -/// This module contains definitions required by various L4Re libc backends. -/// Some of them are formally not part of the libc, but are a dependency of the -/// libc and hence we should provide them here. - -pub type l4_umword_t = c_ulong; // Unsigned machine word. -pub type pthread_t = *mut c_void; - -s! { - /// CPU sets. - pub struct l4_sched_cpu_set_t { - // from the L4Re docs - /// Combination of granularity and offset. - /// - /// The granularity defines how many CPUs each bit in map describes. - /// The offset is the number of the first CPU described by the first - /// bit in the bitmap. - /// offset must be a multiple of 2^graularity. - /// - /// | MSB | LSB | - /// | ---------------- | ------------------- | - /// | 8bit granularity | 24bit offset .. | - gran_offset: l4_umword_t, - /// Bitmap of CPUs. - map: l4_umword_t, - } - - pub struct pthread_attr_t { - pub __detachstate: c_int, - pub __schedpolicy: c_int, - pub __schedparam: super::__sched_param, - pub __inheritsched: c_int, - pub __scope: c_int, - pub __guardsize: size_t, - pub __stackaddr_set: c_int, - pub __stackaddr: *mut c_void, // better don't use it - pub __stacksize: size_t, - // L4Re specifics - pub affinity: l4_sched_cpu_set_t, - pub create_flags: c_uint, - } -} - -// L4Re requires a min stack size of 64k; that isn't defined in uClibc, but -// somewhere in the core libraries. uClibc wants 16k, but that's not enough. -pub const PTHREAD_STACK_MIN: usize = 65536; - -// Misc other constants required for building. -pub const SIGIO: c_int = 29; -pub const B19200: crate::speed_t = 0o000016; -pub const B38400: crate::speed_t = 0o000017; diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index 1b1cb73f1513f..30e6772388d1c 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -17,6 +17,7 @@ pub type stat64 = stat; pub type suseconds_t = c_long; pub type time_t = c_int; pub type wchar_t = c_int; +pub type pthread_t = c_ulong; pub type fsblkcnt64_t = u64; pub type fsfilcnt64_t = u64; @@ -38,7 +39,6 @@ s! { __unused2: Padding, } - #[cfg(not(target_os = "l4re"))] pub struct pthread_attr_t { __detachstate: c_int, __schedpolicy: c_int, @@ -343,13 +343,4 @@ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; - -cfg_if! { - if #[cfg(target_os = "l4re")] { - mod l4re; - pub use self::l4re::*; - } else { - mod other; - pub use other::*; - } -} +pub const PTHREAD_STACK_MIN: usize = 16384; diff --git a/src/unix/linux_like/linux/uclibc/x86_64/other.rs b/src/unix/linux_like/linux/uclibc/x86_64/other.rs deleted file mode 100644 index dc16d02c87977..0000000000000 --- a/src/unix/linux_like/linux/uclibc/x86_64/other.rs +++ /dev/null @@ -1,7 +0,0 @@ -use crate::prelude::*; - -// Thestyle checker discourages the use of #[cfg], so this has to go into a -// separate module -pub type pthread_t = c_ulong; - -pub const PTHREAD_STACK_MIN: usize = 16384; diff --git a/src/unix/linux_like/linux_l4re_shared.rs b/src/unix/linux_like/linux_l4re_shared.rs new file mode 100644 index 0000000000000..b2cb74cbbd506 --- /dev/null +++ b/src/unix/linux_like/linux_l4re_shared.rs @@ -0,0 +1,1972 @@ +use crate::prelude::*; + +pub type Elf32_Half = u16; +pub type Elf32_Word = u32; +pub type Elf32_Off = u32; +pub type Elf32_Addr = u32; +pub type Elf32_Xword = u64; +pub type Elf32_Sword = i32; + +pub type Elf64_Half = u16; +pub type Elf64_Word = u32; +pub type Elf64_Off = u64; +pub type Elf64_Addr = u64; +pub type Elf64_Xword = u64; +pub type Elf64_Sxword = i64; +pub type Elf64_Sword = i32; + +pub type Elf32_Section = u16; +pub type Elf64_Section = u16; + +pub type Elf32_Relr = Elf32_Word; +pub type Elf64_Relr = Elf32_Xword; +pub type Elf32_Rel = __c_anonymous_elf32_rel; +pub type Elf64_Rel = __c_anonymous_elf64_rel; + +cfg_if! { + if #[cfg(not(target_arch = "sparc64"))] { + pub type Elf32_Rela = __c_anonymous_elf32_rela; + pub type Elf64_Rela = __c_anonymous_elf64_rela; + } +} + +pub type iconv_t = *mut c_void; + +cfg_if! { + if #[cfg(not(target_env = "gnu"))] { + extern_ty! { + pub enum fpos64_t {} // FIXME(linux): fill this out with a struct + } + } +} + +s! { + pub struct glob_t { + pub gl_pathc: size_t, + pub gl_pathv: *mut *mut c_char, + pub gl_offs: size_t, + pub gl_flags: c_int, + + __unused1: Padding<*mut c_void>, + __unused2: Padding<*mut c_void>, + __unused3: Padding<*mut c_void>, + __unused4: Padding<*mut c_void>, + __unused5: Padding<*mut c_void>, + } + + pub struct passwd { + pub pw_name: *mut c_char, + pub pw_passwd: *mut c_char, + pub pw_uid: crate::uid_t, + pub pw_gid: crate::gid_t, + pub pw_gecos: *mut c_char, + pub pw_dir: *mut c_char, + pub pw_shell: *mut c_char, + } + + pub struct spwd { + pub sp_namp: *mut c_char, + pub sp_pwdp: *mut c_char, + pub sp_lstchg: c_long, + pub sp_min: c_long, + pub sp_max: c_long, + pub sp_warn: c_long, + pub sp_inact: c_long, + pub sp_expire: c_long, + pub sp_flag: c_ulong, + } + + pub struct itimerspec { + pub it_interval: crate::timespec, + pub it_value: crate::timespec, + } + + pub struct fsid_t { + __val: [c_int; 2], + } + + pub struct packet_mreq { + pub mr_ifindex: c_int, + pub mr_type: c_ushort, + pub mr_alen: c_ushort, + pub mr_address: [c_uchar; 8], + } + + pub struct cpu_set_t { + #[cfg(all(target_pointer_width = "32", not(target_arch = "x86_64")))] + bits: [u32; 32], + #[cfg(not(all(target_pointer_width = "32", not(target_arch = "x86_64"))))] + bits: [u64; 16], + } + + pub struct sembuf { + pub sem_num: c_ushort, + pub sem_op: c_short, + pub sem_flg: c_short, + } + + pub struct dl_phdr_info { + #[cfg(target_pointer_width = "64")] + pub dlpi_addr: Elf64_Addr, + #[cfg(target_pointer_width = "32")] + pub dlpi_addr: Elf32_Addr, + + pub dlpi_name: *const c_char, + + #[cfg(target_pointer_width = "64")] + pub dlpi_phdr: *const Elf64_Phdr, + #[cfg(target_pointer_width = "32")] + pub dlpi_phdr: *const Elf32_Phdr, + + #[cfg(target_pointer_width = "64")] + pub dlpi_phnum: Elf64_Half, + #[cfg(target_pointer_width = "32")] + pub dlpi_phnum: Elf32_Half, + + // As of uClibc 1.0.36, the following fields are + // gated behind a "#if 0" block which always evaluates + // to false. So I'm just removing these, and if uClibc changes + // the #if block in the future to include the following fields, these + // will probably need including here. tsidea, skrap + // QNX (NTO) platform does not define these fields + #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] + pub dlpi_adds: c_ulonglong, + #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] + pub dlpi_subs: c_ulonglong, + #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] + pub dlpi_tls_modid: size_t, + #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] + pub dlpi_tls_data: *mut c_void, + } + + pub struct Elf32_Ehdr { + pub e_ident: [c_uchar; 16], + pub e_type: Elf32_Half, + pub e_machine: Elf32_Half, + pub e_version: Elf32_Word, + pub e_entry: Elf32_Addr, + pub e_phoff: Elf32_Off, + pub e_shoff: Elf32_Off, + pub e_flags: Elf32_Word, + pub e_ehsize: Elf32_Half, + pub e_phentsize: Elf32_Half, + pub e_phnum: Elf32_Half, + pub e_shentsize: Elf32_Half, + pub e_shnum: Elf32_Half, + pub e_shstrndx: Elf32_Half, + } + + pub struct Elf64_Ehdr { + pub e_ident: [c_uchar; 16], + pub e_type: Elf64_Half, + pub e_machine: Elf64_Half, + pub e_version: Elf64_Word, + pub e_entry: Elf64_Addr, + pub e_phoff: Elf64_Off, + pub e_shoff: Elf64_Off, + pub e_flags: Elf64_Word, + pub e_ehsize: Elf64_Half, + pub e_phentsize: Elf64_Half, + pub e_phnum: Elf64_Half, + pub e_shentsize: Elf64_Half, + pub e_shnum: Elf64_Half, + pub e_shstrndx: Elf64_Half, + } + + pub struct Elf32_Sym { + pub st_name: Elf32_Word, + pub st_value: Elf32_Addr, + pub st_size: Elf32_Word, + pub st_info: c_uchar, + pub st_other: c_uchar, + pub st_shndx: Elf32_Section, + } + + pub struct Elf64_Sym { + pub st_name: Elf64_Word, + pub st_info: c_uchar, + pub st_other: c_uchar, + pub st_shndx: Elf64_Section, + pub st_value: Elf64_Addr, + pub st_size: Elf64_Xword, + } + + pub struct Elf32_Phdr { + pub p_type: Elf32_Word, + pub p_offset: Elf32_Off, + pub p_vaddr: Elf32_Addr, + pub p_paddr: Elf32_Addr, + pub p_filesz: Elf32_Word, + pub p_memsz: Elf32_Word, + pub p_flags: Elf32_Word, + pub p_align: Elf32_Word, + } + + pub struct Elf64_Phdr { + pub p_type: Elf64_Word, + pub p_flags: Elf64_Word, + pub p_offset: Elf64_Off, + pub p_vaddr: Elf64_Addr, + pub p_paddr: Elf64_Addr, + pub p_filesz: Elf64_Xword, + pub p_memsz: Elf64_Xword, + pub p_align: Elf64_Xword, + } + + pub struct Elf32_Shdr { + pub sh_name: Elf32_Word, + pub sh_type: Elf32_Word, + pub sh_flags: Elf32_Word, + pub sh_addr: Elf32_Addr, + pub sh_offset: Elf32_Off, + pub sh_size: Elf32_Word, + pub sh_link: Elf32_Word, + pub sh_info: Elf32_Word, + pub sh_addralign: Elf32_Word, + pub sh_entsize: Elf32_Word, + } + + pub struct Elf64_Shdr { + pub sh_name: Elf64_Word, + pub sh_type: Elf64_Word, + pub sh_flags: Elf64_Xword, + pub sh_addr: Elf64_Addr, + pub sh_offset: Elf64_Off, + pub sh_size: Elf64_Xword, + pub sh_link: Elf64_Word, + pub sh_info: Elf64_Word, + pub sh_addralign: Elf64_Xword, + pub sh_entsize: Elf64_Xword, + } + + pub struct __c_anonymous_elf32_rel { + pub r_offset: Elf32_Addr, + pub r_info: Elf32_Word, + } + + pub struct __c_anonymous_elf64_rel { + pub r_offset: Elf64_Addr, + pub r_info: Elf64_Xword, + } + + pub struct ucred { + pub pid: crate::pid_t, + pub uid: crate::uid_t, + pub gid: crate::gid_t, + } + + pub struct mntent { + pub mnt_fsname: *mut c_char, + pub mnt_dir: *mut c_char, + pub mnt_type: *mut c_char, + pub mnt_opts: *mut c_char, + pub mnt_freq: c_int, + pub mnt_passno: c_int, + } + + pub struct in6_pktinfo { + pub ipi6_addr: crate::in6_addr, + pub ipi6_ifindex: c_uint, + } + + pub struct arpd_request { + pub req: c_ushort, + pub ip: u32, + pub dev: c_ulong, + pub stamp: c_ulong, + pub updated: c_ulong, + pub ha: [c_uchar; crate::MAX_ADDR_LEN], + } + + pub struct regmatch_t { + pub rm_so: crate::regoff_t, + pub rm_eo: crate::regoff_t, + } + + pub struct option { + pub name: *const c_char, + pub has_arg: c_int, + pub flag: *mut c_int, + pub val: c_int, + } + + pub struct rlimit64 { + pub rlim_cur: crate::rlim64_t, + pub rlim_max: crate::rlim64_t, + } + + pub struct __c_anonymous_ifru_map { + pub mem_start: c_ulong, + pub mem_end: c_ulong, + pub base_addr: c_ushort, + pub irq: c_uchar, + pub dma: c_uchar, + pub port: c_uchar, + } + + pub struct dirent { + pub d_ino: crate::ino_t, + pub d_off: crate::off_t, + pub d_reclen: c_ushort, + pub d_type: c_uchar, + pub d_name: [c_char; 256], + } + + pub struct dirent64 { + pub d_ino: crate::ino64_t, + pub d_off: crate::off64_t, + pub d_reclen: c_ushort, + pub d_type: c_uchar, + pub d_name: [c_char; 256], + } +} + +cfg_if! { + if #[cfg(not(target_arch = "sparc64"))] { + s! { + pub struct __c_anonymous_elf32_rela { + pub r_offset: crate::Elf32_Addr, + pub r_info: crate::Elf32_Word, + pub r_addend: crate::Elf32_Sword, + } + + pub struct __c_anonymous_elf64_rela { + pub r_offset: crate::Elf64_Addr, + pub r_info: crate::Elf64_Xword, + pub r_addend: crate::Elf64_Sxword, + } + } + } +} + +s_no_extra_traits! { + pub union __c_anonymous_ifr_ifru { + pub ifru_addr: crate::sockaddr, + pub ifru_dstaddr: crate::sockaddr, + pub ifru_broadaddr: crate::sockaddr, + pub ifru_netmask: crate::sockaddr, + pub ifru_hwaddr: crate::sockaddr, + pub ifru_flags: c_short, + pub ifru_ifindex: c_int, + pub ifru_metric: c_int, + pub ifru_mtu: c_int, + pub ifru_map: __c_anonymous_ifru_map, + pub ifru_slave: [c_char; crate::IFNAMSIZ], + pub ifru_newname: [c_char; crate::IFNAMSIZ], + pub ifru_data: *mut c_char, + } + + pub struct ifreq { + /// interface name, e.g. "en0" + pub ifr_name: [c_char; crate::IFNAMSIZ], + pub ifr_ifru: __c_anonymous_ifr_ifru, + } + + pub union __c_anonymous_ifc_ifcu { + pub ifcu_buf: *mut c_char, + pub ifcu_req: *mut crate::ifreq, + } + + /// Structure used in SIOCGIFCONF request. Used to retrieve interface configuration for + /// machine (useful for programs which must know all networks accessible). + pub struct ifconf { + /// Size of buffer + pub ifc_len: c_int, + pub ifc_ifcu: __c_anonymous_ifc_ifcu, + } +} + +cfg_if! { + if #[cfg(not(target_env = "uclibc"))] { + const DATE_BASE: crate::nl_item = 0x20000; + } else { + const DATE_BASE: crate::nl_item = 768; + } +} + +pub const ABDAY_1: crate::nl_item = DATE_BASE; +pub const ABDAY_2: crate::nl_item = DATE_BASE + 0x1; +pub const ABDAY_3: crate::nl_item = DATE_BASE + 0x2; +pub const ABDAY_4: crate::nl_item = DATE_BASE + 0x3; +pub const ABDAY_5: crate::nl_item = DATE_BASE + 0x4; +pub const ABDAY_6: crate::nl_item = DATE_BASE + 0x5; +pub const ABDAY_7: crate::nl_item = DATE_BASE + 0x6; + +pub const DAY_1: crate::nl_item = DATE_BASE + 0x7; +pub const DAY_2: crate::nl_item = DATE_BASE + 0x8; +pub const DAY_3: crate::nl_item = DATE_BASE + 0x9; +pub const DAY_4: crate::nl_item = DATE_BASE + 0xA; +pub const DAY_5: crate::nl_item = DATE_BASE + 0xB; +pub const DAY_6: crate::nl_item = DATE_BASE + 0xC; +pub const DAY_7: crate::nl_item = DATE_BASE + 0xD; + +pub const ABMON_1: crate::nl_item = DATE_BASE + 0xE; +pub const ABMON_2: crate::nl_item = DATE_BASE + 0xF; +pub const ABMON_3: crate::nl_item = DATE_BASE + 0x10; +pub const ABMON_4: crate::nl_item = DATE_BASE + 0x11; +pub const ABMON_5: crate::nl_item = DATE_BASE + 0x12; +pub const ABMON_6: crate::nl_item = DATE_BASE + 0x13; +pub const ABMON_7: crate::nl_item = DATE_BASE + 0x14; +pub const ABMON_8: crate::nl_item = DATE_BASE + 0x15; +pub const ABMON_9: crate::nl_item = DATE_BASE + 0x16; +pub const ABMON_10: crate::nl_item = DATE_BASE + 0x17; +pub const ABMON_11: crate::nl_item = DATE_BASE + 0x18; +pub const ABMON_12: crate::nl_item = DATE_BASE + 0x19; + +pub const MON_1: crate::nl_item = DATE_BASE + 0x1A; +pub const MON_2: crate::nl_item = DATE_BASE + 0x1B; +pub const MON_3: crate::nl_item = DATE_BASE + 0x1C; +pub const MON_4: crate::nl_item = DATE_BASE + 0x1D; +pub const MON_5: crate::nl_item = DATE_BASE + 0x1E; +pub const MON_6: crate::nl_item = DATE_BASE + 0x1F; +pub const MON_7: crate::nl_item = DATE_BASE + 0x20; +pub const MON_8: crate::nl_item = DATE_BASE + 0x21; +pub const MON_9: crate::nl_item = DATE_BASE + 0x22; +pub const MON_10: crate::nl_item = DATE_BASE + 0x23; +pub const MON_11: crate::nl_item = DATE_BASE + 0x24; +pub const MON_12: crate::nl_item = DATE_BASE + 0x25; + +pub const AM_STR: crate::nl_item = DATE_BASE + 0x26; +pub const PM_STR: crate::nl_item = DATE_BASE + 0x27; + +pub const D_T_FMT: crate::nl_item = DATE_BASE + 0x28; +pub const D_FMT: crate::nl_item = DATE_BASE + 0x29; +pub const T_FMT: crate::nl_item = DATE_BASE + 0x2A; +pub const T_FMT_AMPM: crate::nl_item = DATE_BASE + 0x2B; + +pub const ERA: crate::nl_item = DATE_BASE + 0x2C; +pub const ERA_D_FMT: crate::nl_item = DATE_BASE + 0x2E; +pub const ALT_DIGITS: crate::nl_item = DATE_BASE + 0x2F; +pub const ERA_D_T_FMT: crate::nl_item = DATE_BASE + 0x30; +pub const ERA_T_FMT: crate::nl_item = DATE_BASE + 0x31; + +cfg_if! { + if #[cfg(any( + target_env = "gnu", + target_env = "musl", + target_env = "ohos" + ))] { + pub const CODESET: crate::nl_item = 14; + pub const CRNCYSTR: crate::nl_item = 0x4000F; + pub const RADIXCHAR: crate::nl_item = 0x10000; + pub const THOUSEP: crate::nl_item = 0x10001; + pub const YESEXPR: crate::nl_item = 0x50000; + pub const NOEXPR: crate::nl_item = 0x50001; + pub const YESSTR: crate::nl_item = 0x50002; + pub const NOSTR: crate::nl_item = 0x50003; + } else if #[cfg(target_env = "uclibc")] { + pub const CODESET: crate::nl_item = 10; + pub const CRNCYSTR: crate::nl_item = 0x215; + pub const RADIXCHAR: crate::nl_item = 0x100; + pub const THOUSEP: crate::nl_item = 0x101; + pub const YESEXPR: crate::nl_item = 0x500; + pub const NOEXPR: crate::nl_item = 0x501; + pub const YESSTR: crate::nl_item = 0x502; + pub const NOSTR: crate::nl_item = 0x503; + } +} + +pub const RUSAGE_CHILDREN: c_int = -1; + +pub const L_tmpnam: c_uint = 20; +pub const _PC_LINK_MAX: c_int = 0; +pub const _PC_MAX_CANON: c_int = 1; +pub const _PC_MAX_INPUT: c_int = 2; +pub const _PC_NAME_MAX: c_int = 3; +pub const _PC_PATH_MAX: c_int = 4; +pub const _PC_PIPE_BUF: c_int = 5; +pub const _PC_CHOWN_RESTRICTED: c_int = 6; +pub const _PC_NO_TRUNC: c_int = 7; +pub const _PC_VDISABLE: c_int = 8; +pub const _PC_SYNC_IO: c_int = 9; +pub const _PC_ASYNC_IO: c_int = 10; +pub const _PC_PRIO_IO: c_int = 11; +pub const _PC_SOCK_MAXBUF: c_int = 12; +pub const _PC_FILESIZEBITS: c_int = 13; +pub const _PC_REC_INCR_XFER_SIZE: c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: c_int = 16; +pub const _PC_REC_XFER_ALIGN: c_int = 17; +pub const _PC_ALLOC_SIZE_MIN: c_int = 18; +pub const _PC_SYMLINK_MAX: c_int = 19; +pub const _PC_2_SYMLINKS: c_int = 20; + +pub const _SC_ARG_MAX: c_int = 0; +pub const _SC_CHILD_MAX: c_int = 1; +pub const _SC_CLK_TCK: c_int = 2; +pub const _SC_NGROUPS_MAX: c_int = 3; +pub const _SC_OPEN_MAX: c_int = 4; +pub const _SC_STREAM_MAX: c_int = 5; +pub const _SC_TZNAME_MAX: c_int = 6; +pub const _SC_JOB_CONTROL: c_int = 7; +pub const _SC_SAVED_IDS: c_int = 8; +pub const _SC_REALTIME_SIGNALS: c_int = 9; +pub const _SC_PRIORITY_SCHEDULING: c_int = 10; +pub const _SC_TIMERS: c_int = 11; +pub const _SC_ASYNCHRONOUS_IO: c_int = 12; +pub const _SC_PRIORITIZED_IO: c_int = 13; +pub const _SC_SYNCHRONIZED_IO: c_int = 14; +pub const _SC_FSYNC: c_int = 15; +pub const _SC_MAPPED_FILES: c_int = 16; +pub const _SC_MEMLOCK: c_int = 17; +pub const _SC_MEMLOCK_RANGE: c_int = 18; +pub const _SC_MEMORY_PROTECTION: c_int = 19; +pub const _SC_MESSAGE_PASSING: c_int = 20; +pub const _SC_SEMAPHORES: c_int = 21; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 22; +pub const _SC_AIO_LISTIO_MAX: c_int = 23; +pub const _SC_AIO_MAX: c_int = 24; +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 25; +pub const _SC_DELAYTIMER_MAX: c_int = 26; +pub const _SC_MQ_OPEN_MAX: c_int = 27; +pub const _SC_MQ_PRIO_MAX: c_int = 28; +pub const _SC_VERSION: c_int = 29; +pub const _SC_PAGESIZE: c_int = 30; +pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; +pub const _SC_RTSIG_MAX: c_int = 31; +pub const _SC_SEM_NSEMS_MAX: c_int = 32; +pub const _SC_SEM_VALUE_MAX: c_int = 33; +pub const _SC_SIGQUEUE_MAX: c_int = 34; +pub const _SC_TIMER_MAX: c_int = 35; +pub const _SC_BC_BASE_MAX: c_int = 36; +pub const _SC_BC_DIM_MAX: c_int = 37; +pub const _SC_BC_SCALE_MAX: c_int = 38; +pub const _SC_BC_STRING_MAX: c_int = 39; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 40; +pub const _SC_EXPR_NEST_MAX: c_int = 42; +pub const _SC_LINE_MAX: c_int = 43; +pub const _SC_RE_DUP_MAX: c_int = 44; +pub const _SC_2_VERSION: c_int = 46; +pub const _SC_2_C_BIND: c_int = 47; +pub const _SC_2_C_DEV: c_int = 48; +pub const _SC_2_FORT_DEV: c_int = 49; +pub const _SC_2_FORT_RUN: c_int = 50; +pub const _SC_2_SW_DEV: c_int = 51; +pub const _SC_2_LOCALEDEF: c_int = 52; +pub const _SC_UIO_MAXIOV: c_int = 60; +pub const _SC_IOV_MAX: c_int = 60; +pub const _SC_THREADS: c_int = 67; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 68; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 69; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 70; +pub const _SC_LOGIN_NAME_MAX: c_int = 71; +pub const _SC_TTY_NAME_MAX: c_int = 72; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 73; +pub const _SC_THREAD_KEYS_MAX: c_int = 74; +pub const _SC_THREAD_STACK_MIN: c_int = 75; +pub const _SC_THREAD_THREADS_MAX: c_int = 76; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 77; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 78; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 79; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 80; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 81; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 82; +pub const _SC_NPROCESSORS_CONF: c_int = 83; +pub const _SC_NPROCESSORS_ONLN: c_int = 84; +pub const _SC_PHYS_PAGES: c_int = 85; +pub const _SC_AVPHYS_PAGES: c_int = 86; +pub const _SC_ATEXIT_MAX: c_int = 87; +pub const _SC_PASS_MAX: c_int = 88; +pub const _SC_XOPEN_VERSION: c_int = 89; +pub const _SC_XOPEN_XCU_VERSION: c_int = 90; +pub const _SC_XOPEN_UNIX: c_int = 91; +pub const _SC_XOPEN_CRYPT: c_int = 92; +pub const _SC_XOPEN_ENH_I18N: c_int = 93; +pub const _SC_XOPEN_SHM: c_int = 94; +pub const _SC_2_CHAR_TERM: c_int = 95; +pub const _SC_2_UPE: c_int = 97; +pub const _SC_XOPEN_XPG2: c_int = 98; +pub const _SC_XOPEN_XPG3: c_int = 99; +pub const _SC_XOPEN_XPG4: c_int = 100; +pub const _SC_NZERO: c_int = 109; +pub const _SC_XBS5_ILP32_OFF32: c_int = 125; +pub const _SC_XBS5_ILP32_OFFBIG: c_int = 126; +pub const _SC_XBS5_LP64_OFF64: c_int = 127; +pub const _SC_XBS5_LPBIG_OFFBIG: c_int = 128; +pub const _SC_XOPEN_LEGACY: c_int = 129; +pub const _SC_XOPEN_REALTIME: c_int = 130; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 131; +pub const _SC_ADVISORY_INFO: c_int = 132; +pub const _SC_BARRIERS: c_int = 133; +pub const _SC_CLOCK_SELECTION: c_int = 137; +pub const _SC_CPUTIME: c_int = 138; +pub const _SC_THREAD_CPUTIME: c_int = 139; +pub const _SC_MONOTONIC_CLOCK: c_int = 149; +pub const _SC_READER_WRITER_LOCKS: c_int = 153; +pub const _SC_SPIN_LOCKS: c_int = 154; +pub const _SC_REGEXP: c_int = 155; +pub const _SC_SHELL: c_int = 157; +pub const _SC_SPAWN: c_int = 159; +pub const _SC_SPORADIC_SERVER: c_int = 160; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 161; +pub const _SC_TIMEOUTS: c_int = 164; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 165; +pub const _SC_2_PBS: c_int = 168; +pub const _SC_2_PBS_ACCOUNTING: c_int = 169; +pub const _SC_2_PBS_LOCATE: c_int = 170; +pub const _SC_2_PBS_MESSAGE: c_int = 171; +pub const _SC_2_PBS_TRACK: c_int = 172; +pub const _SC_SYMLOOP_MAX: c_int = 173; +pub const _SC_STREAMS: c_int = 174; +pub const _SC_2_PBS_CHECKPOINT: c_int = 175; +pub const _SC_V6_ILP32_OFF32: c_int = 176; +pub const _SC_V6_ILP32_OFFBIG: c_int = 177; +pub const _SC_V6_LP64_OFF64: c_int = 178; +pub const _SC_V6_LPBIG_OFFBIG: c_int = 179; +pub const _SC_HOST_NAME_MAX: c_int = 180; +pub const _SC_TRACE: c_int = 181; +pub const _SC_TRACE_EVENT_FILTER: c_int = 182; +pub const _SC_TRACE_INHERIT: c_int = 183; +pub const _SC_TRACE_LOG: c_int = 184; +pub const _SC_IPV6: c_int = 235; +pub const _SC_RAW_SOCKETS: c_int = 236; +pub const _SC_V7_ILP32_OFF32: c_int = 237; +pub const _SC_V7_ILP32_OFFBIG: c_int = 238; +pub const _SC_V7_LP64_OFF64: c_int = 239; +pub const _SC_V7_LPBIG_OFFBIG: c_int = 240; +pub const _SC_SS_REPL_MAX: c_int = 241; +pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 242; +pub const _SC_TRACE_NAME_MAX: c_int = 243; +pub const _SC_TRACE_SYS_MAX: c_int = 244; +pub const _SC_TRACE_USER_EVENT_MAX: c_int = 245; +pub const _SC_XOPEN_STREAMS: c_int = 246; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 247; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 248; + +pub const _CS_PATH: c_int = 0; +pub const _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS: c_int = 1; +pub const _CS_POSIX_V5_WIDTH_RESTRICTED_ENVS: c_int = 4; +pub const _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS: c_int = 5; +pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: c_int = 1116; +pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: c_int = 1117; +pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: c_int = 1118; +pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: c_int = 1119; +pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: c_int = 1120; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: c_int = 1121; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: c_int = 1122; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: c_int = 1123; +pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: c_int = 1124; +pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: c_int = 1125; +pub const _CS_POSIX_V6_LP64_OFF64_LIBS: c_int = 1126; +pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: c_int = 1127; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: c_int = 1128; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: c_int = 1129; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: c_int = 1130; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: c_int = 1131; +pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: c_int = 1132; +pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: c_int = 1133; +pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: c_int = 1134; +pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: c_int = 1135; +pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: c_int = 1136; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: c_int = 1137; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: c_int = 1138; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: c_int = 1139; +pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: c_int = 1140; +pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: c_int = 1141; +pub const _CS_POSIX_V7_LP64_OFF64_LIBS: c_int = 1142; +pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: c_int = 1143; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: c_int = 1144; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: c_int = 1145; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: c_int = 1146; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: c_int = 1147; + +pub const RLIM_SAVED_MAX: crate::rlim_t = crate::RLIM_INFINITY; +pub const RLIM_SAVED_CUR: crate::rlim_t = crate::RLIM_INFINITY; + +// elf.h - Fields in the e_ident array. +pub const EI_NIDENT: usize = 16; + +pub const EI_MAG0: usize = 0; +pub const ELFMAG0: u8 = 0x7f; +pub const EI_MAG1: usize = 1; +pub const ELFMAG1: u8 = b'E'; +pub const EI_MAG2: usize = 2; +pub const ELFMAG2: u8 = b'L'; +pub const EI_MAG3: usize = 3; +pub const ELFMAG3: u8 = b'F'; +pub const SELFMAG: usize = 4; + +pub const EI_CLASS: usize = 4; +pub const ELFCLASSNONE: u8 = 0; +pub const ELFCLASS32: u8 = 1; +pub const ELFCLASS64: u8 = 2; +pub const ELFCLASSNUM: usize = 3; + +pub const EI_DATA: usize = 5; +pub const ELFDATANONE: u8 = 0; +pub const ELFDATA2LSB: u8 = 1; +pub const ELFDATA2MSB: u8 = 2; +pub const ELFDATANUM: usize = 3; + +pub const EI_VERSION: usize = 6; + +pub const EI_OSABI: usize = 7; +pub const ELFOSABI_NONE: u8 = 0; +pub const ELFOSABI_SYSV: u8 = 0; +pub const ELFOSABI_HPUX: u8 = 1; +pub const ELFOSABI_NETBSD: u8 = 2; +pub const ELFOSABI_GNU: u8 = 3; +pub const ELFOSABI_LINUX: u8 = ELFOSABI_GNU; +pub const ELFOSABI_SOLARIS: u8 = 6; +pub const ELFOSABI_AIX: u8 = 7; +pub const ELFOSABI_IRIX: u8 = 8; +pub const ELFOSABI_FREEBSD: u8 = 9; +pub const ELFOSABI_TRU64: u8 = 10; +pub const ELFOSABI_MODESTO: u8 = 11; +pub const ELFOSABI_OPENBSD: u8 = 12; +pub const ELFOSABI_ARM: u8 = 97; +pub const ELFOSABI_STANDALONE: u8 = 255; + +pub const EI_ABIVERSION: usize = 8; + +pub const EI_PAD: usize = 9; + +// elf.h - Legal values for e_type (object file type). +pub const ET_NONE: u16 = 0; +pub const ET_REL: u16 = 1; +pub const ET_EXEC: u16 = 2; +pub const ET_DYN: u16 = 3; +pub const ET_CORE: u16 = 4; +pub const ET_NUM: u16 = 5; +pub const ET_LOOS: u16 = 0xfe00; +pub const ET_HIOS: u16 = 0xfeff; +pub const ET_LOPROC: u16 = 0xff00; +pub const ET_HIPROC: u16 = 0xffff; + +// elf.h - Legal values for e_machine (architecture). +pub const EM_NONE: u16 = 0; +pub const EM_M32: u16 = 1; +pub const EM_SPARC: u16 = 2; +pub const EM_386: u16 = 3; +pub const EM_68K: u16 = 4; +pub const EM_88K: u16 = 5; +pub const EM_860: u16 = 7; +pub const EM_MIPS: u16 = 8; +pub const EM_S370: u16 = 9; +pub const EM_MIPS_RS3_LE: u16 = 10; +pub const EM_PARISC: u16 = 15; +pub const EM_VPP500: u16 = 17; +pub const EM_SPARC32PLUS: u16 = 18; +pub const EM_960: u16 = 19; +pub const EM_PPC: u16 = 20; +pub const EM_PPC64: u16 = 21; +pub const EM_S390: u16 = 22; +pub const EM_V800: u16 = 36; +pub const EM_FR20: u16 = 37; +pub const EM_RH32: u16 = 38; +pub const EM_RCE: u16 = 39; +pub const EM_ARM: u16 = 40; +pub const EM_FAKE_ALPHA: u16 = 41; +pub const EM_SH: u16 = 42; +pub const EM_SPARCV9: u16 = 43; +pub const EM_TRICORE: u16 = 44; +pub const EM_ARC: u16 = 45; +pub const EM_H8_300: u16 = 46; +pub const EM_H8_300H: u16 = 47; +pub const EM_H8S: u16 = 48; +pub const EM_H8_500: u16 = 49; +pub const EM_IA_64: u16 = 50; +pub const EM_MIPS_X: u16 = 51; +pub const EM_COLDFIRE: u16 = 52; +pub const EM_68HC12: u16 = 53; +pub const EM_MMA: u16 = 54; +pub const EM_PCP: u16 = 55; +pub const EM_NCPU: u16 = 56; +pub const EM_NDR1: u16 = 57; +pub const EM_STARCORE: u16 = 58; +pub const EM_ME16: u16 = 59; +pub const EM_ST100: u16 = 60; +pub const EM_TINYJ: u16 = 61; +pub const EM_X86_64: u16 = 62; +pub const EM_PDSP: u16 = 63; +pub const EM_FX66: u16 = 66; +pub const EM_ST9PLUS: u16 = 67; +pub const EM_ST7: u16 = 68; +pub const EM_68HC16: u16 = 69; +pub const EM_68HC11: u16 = 70; +pub const EM_68HC08: u16 = 71; +pub const EM_68HC05: u16 = 72; +pub const EM_SVX: u16 = 73; +pub const EM_ST19: u16 = 74; +pub const EM_VAX: u16 = 75; +pub const EM_CRIS: u16 = 76; +pub const EM_JAVELIN: u16 = 77; +pub const EM_FIREPATH: u16 = 78; +pub const EM_ZSP: u16 = 79; +pub const EM_MMIX: u16 = 80; +pub const EM_HUANY: u16 = 81; +pub const EM_PRISM: u16 = 82; +pub const EM_AVR: u16 = 83; +pub const EM_FR30: u16 = 84; +pub const EM_D10V: u16 = 85; +pub const EM_D30V: u16 = 86; +pub const EM_V850: u16 = 87; +pub const EM_M32R: u16 = 88; +pub const EM_MN10300: u16 = 89; +pub const EM_MN10200: u16 = 90; +pub const EM_PJ: u16 = 91; +#[cfg(not(target_env = "uclibc"))] +pub const EM_OPENRISC: u16 = 92; +#[cfg(target_env = "uclibc")] +pub const EM_OR1K: u16 = 92; +#[cfg(not(target_env = "uclibc"))] +pub const EM_ARC_A5: u16 = 93; +pub const EM_XTENSA: u16 = 94; +pub const EM_AARCH64: u16 = 183; +pub const EM_TILEPRO: u16 = 188; +pub const EM_TILEGX: u16 = 191; +pub const EM_RISCV: u16 = 243; +pub const EM_ALPHA: u16 = 0x9026; + +// elf.h - Legal values for e_version (version). +pub const EV_NONE: u32 = 0; +pub const EV_CURRENT: u32 = 1; +pub const EV_NUM: u32 = 2; + +// 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_NUM: u32 = 8; +pub const PT_LOOS: u32 = 0x60000000; +pub const PT_GNU_EH_FRAME: u32 = 0x6474e550; +pub const PT_GNU_STACK: u32 = 0x6474e551; +pub const PT_GNU_RELRO: u32 = 0x6474e552; +pub const PT_LOSUNW: u32 = 0x6ffffffa; +pub const PT_SUNWBSS: u32 = 0x6ffffffa; +pub const PT_SUNWSTACK: u32 = 0x6ffffffb; +pub const PT_HISUNW: u32 = 0x6fffffff; +pub const PT_HIOS: u32 = 0x6fffffff; +pub const PT_LOPROC: u32 = 0x70000000; +pub const PT_HIPROC: u32 = 0x7fffffff; + +// Legal values for p_flags (segment flags). +pub const PF_X: u32 = 1 << 0; +pub const PF_W: u32 = 1 << 1; +pub const PF_R: u32 = 1 << 2; +pub const PF_MASKOS: u32 = 0x0ff00000; +pub const PF_MASKPROC: u32 = 0xf0000000; + +// elf.h - Legal values for a_type (entry type). +pub const AT_NULL: c_ulong = 0; +pub const AT_IGNORE: c_ulong = 1; +pub const AT_EXECFD: c_ulong = 2; +pub const AT_PHDR: c_ulong = 3; +pub const AT_PHENT: c_ulong = 4; +pub const AT_PHNUM: c_ulong = 5; +pub const AT_PAGESZ: c_ulong = 6; +pub const AT_BASE: c_ulong = 7; +pub const AT_FLAGS: c_ulong = 8; +pub const AT_ENTRY: c_ulong = 9; +pub const AT_NOTELF: c_ulong = 10; +pub const AT_UID: c_ulong = 11; +pub const AT_EUID: c_ulong = 12; +pub const AT_GID: c_ulong = 13; +pub const AT_EGID: c_ulong = 14; +pub const AT_PLATFORM: c_ulong = 15; +pub const AT_HWCAP: c_ulong = 16; +pub const AT_CLKTCK: c_ulong = 17; + +pub const AT_SECURE: c_ulong = 23; +pub const AT_BASE_PLATFORM: c_ulong = 24; +pub const AT_RANDOM: c_ulong = 25; +pub const AT_HWCAP2: c_ulong = 26; + +pub const AT_HWCAP3: c_ulong = 29; +pub const AT_HWCAP4: c_ulong = 30; +pub const AT_EXECFN: c_ulong = 31; + +// defined in arch//include/uapi/asm/auxvec.h but has the same value +// wherever it is defined. +pub const AT_SYSINFO_EHDR: c_ulong = 33; +#[cfg(not(target_env = "uclibc"))] +pub const AT_MINSIGSTKSZ: c_ulong = 51; + +pub const GLOB_ERR: c_int = 1 << 0; +pub const GLOB_MARK: c_int = 1 << 1; +pub const GLOB_NOSORT: c_int = 1 << 2; +pub const GLOB_DOOFFS: c_int = 1 << 3; +pub const GLOB_NOCHECK: c_int = 1 << 4; +pub const GLOB_APPEND: c_int = 1 << 5; +pub const GLOB_NOESCAPE: c_int = 1 << 6; + +pub const GLOB_NOSPACE: c_int = 1; +pub const GLOB_ABORTED: c_int = 2; +pub const GLOB_NOMATCH: c_int = 3; + +pub const POSIX_MADV_NORMAL: c_int = 0; +pub const POSIX_MADV_RANDOM: c_int = 1; +pub const POSIX_MADV_SEQUENTIAL: c_int = 2; +pub const POSIX_MADV_WILLNEED: c_int = 3; + +pub const S_IEXEC: crate::mode_t = 0o0100; +pub const S_IWRITE: crate::mode_t = 0o0200; +pub const S_IREAD: crate::mode_t = 0o0400; + +pub const F_LOCK: c_int = 1; +pub const F_TEST: c_int = 3; +pub const F_TLOCK: c_int = 2; +pub const F_ULOCK: c_int = 0; + +pub const ST_RDONLY: c_ulong = 1; +pub const ST_NOSUID: c_ulong = 2; +pub const ST_NODEV: c_ulong = 4; +pub const ST_NOEXEC: c_ulong = 8; +pub const ST_SYNCHRONOUS: c_ulong = 16; +pub const ST_MANDLOCK: c_ulong = 64; +pub const ST_WRITE: c_ulong = 128; +pub const ST_APPEND: c_ulong = 256; +pub const ST_IMMUTABLE: c_ulong = 512; +pub const ST_NOATIME: c_ulong = 1024; +pub const ST_NODIRATIME: c_ulong = 2048; + +pub const RTLD_NEXT: *mut c_void = -1i64 as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); +pub const RTLD_NODELETE: c_int = 0x1000; +pub const RTLD_NOW: c_int = 0x2; + +pub const AT_EACCESS: c_int = 0x200; + +pub const PTHREAD_BARRIER_SERIAL_THREAD: c_int = -1; +pub const PTHREAD_ONCE_INIT: crate::pthread_once_t = 0; +pub const PTHREAD_MUTEX_NORMAL: c_int = 0; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 1; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_NORMAL; +#[cfg(not(target_env = "uclibc"))] +pub const PTHREAD_MUTEX_STALLED: c_int = 0; +#[cfg(not(target_env = "uclibc"))] +pub const PTHREAD_MUTEX_ROBUST: c_int = 1; +#[cfg(not(target_env = "uclibc"))] +pub const PTHREAD_PRIO_NONE: c_int = 0; +#[cfg(not(target_env = "uclibc"))] +pub const PTHREAD_PRIO_INHERIT: c_int = 1; +#[cfg(not(target_env = "uclibc"))] +pub const PTHREAD_PRIO_PROTECT: c_int = 2; +pub const PTHREAD_PROCESS_PRIVATE: c_int = 0; +pub const PTHREAD_PROCESS_SHARED: c_int = 1; +pub const PTHREAD_INHERIT_SCHED: c_int = 0; +pub const PTHREAD_EXPLICIT_SCHED: c_int = 1; +#[cfg(not(target_env = "uclibc"))] +pub const __SIZEOF_PTHREAD_COND_T: usize = 48; + +// netinet/in.h +// NOTE: These are in addition to the constants defined in src/unix/mod.rs + +#[deprecated( + since = "0.2.80", + note = "This value was increased in the newer kernel \ + and we'll change this following upstream in the future release. \ + See #1896 for more info." +)] +pub const IPPROTO_MAX: c_int = 256; + +// System V IPC +pub const IPC_PRIVATE: crate::key_t = 0; + +pub const IPC_CREAT: c_int = 0o1000; +pub const IPC_EXCL: c_int = 0o2000; +pub const IPC_NOWAIT: c_int = 0o4000; + +pub const IPC_RMID: c_int = 0; +pub const IPC_SET: c_int = 1; +pub const IPC_STAT: c_int = 2; +pub const IPC_INFO: c_int = 3; + +pub const SHM_R: c_int = 0o400; +pub const SHM_W: c_int = 0o200; + +pub const SHM_RDONLY: c_int = 0o10000; +pub const SHM_RND: c_int = 0o20000; +pub const SHM_REMAP: c_int = 0o40000; +pub const SHM_LOCK: c_int = 11; +pub const SHM_UNLOCK: c_int = 12; +pub const SHM_HUGETLB: c_int = 0o4000; +#[cfg(not(all(target_env = "uclibc", target_arch = "mips")))] +pub const SHM_NORESERVE: c_int = 0o10000; + +pub const LOG_NFACILITIES: c_int = 24; + +pub const SEM_FAILED: *mut crate::sem_t = ptr::null_mut(); + +pub const AI_PASSIVE: c_int = 0x0001; +pub const AI_CANONNAME: c_int = 0x0002; +pub const AI_NUMERICHOST: c_int = 0x0004; +pub const AI_V4MAPPED: c_int = 0x0008; +pub const AI_ALL: c_int = 0x0010; +pub const AI_ADDRCONFIG: c_int = 0x0020; + +pub const AI_NUMERICSERV: c_int = 0x0400; + +pub const EAI_BADFLAGS: c_int = -1; +pub const EAI_NONAME: c_int = -2; +pub const EAI_AGAIN: c_int = -3; +pub const EAI_FAIL: c_int = -4; +pub const EAI_NODATA: c_int = -5; +pub const EAI_FAMILY: c_int = -6; +pub const EAI_SOCKTYPE: c_int = -7; +pub const EAI_SERVICE: c_int = -8; +pub const EAI_MEMORY: c_int = -10; +pub const EAI_SYSTEM: c_int = -11; +pub const EAI_OVERFLOW: c_int = -12; + +pub const NI_NUMERICHOST: c_int = 1; +pub const NI_NUMERICSERV: c_int = 2; +pub const NI_NOFQDN: c_int = 4; +pub const NI_NAMEREQD: c_int = 8; +pub const NI_DGRAM: c_int = 16; +#[cfg(not(target_env = "uclibc"))] +pub const NI_IDN: c_int = 32; + +cfg_if! { + if #[cfg(not(target_env = "uclibc"))] { + pub const AIO_CANCELED: c_int = 0; + pub const AIO_NOTCANCELED: c_int = 1; + pub const AIO_ALLDONE: c_int = 2; + pub const LIO_READ: c_int = 0; + pub const LIO_WRITE: c_int = 1; + pub const LIO_NOP: c_int = 2; + pub const LIO_WAIT: c_int = 0; + pub const LIO_NOWAIT: c_int = 1; + pub const RUSAGE_THREAD: c_int = 1; + pub const MSG_COPY: c_int = 0o40000; + pub const SHM_EXEC: c_int = 0o100000; + pub const IPV6_MULTICAST_ALL: c_int = 29; + pub const IPV6_ROUTER_ALERT_ISOLATE: c_int = 30; + pub const PACKET_MR_UNICAST: c_int = 3; + pub const PTRACE_EVENT_STOP: c_int = 128; + pub const UDP_SEGMENT: c_int = 103; + pub const UDP_GRO: c_int = 104; + } +} + +pub const PR_SET_PDEATHSIG: c_int = 1; +pub const PR_GET_PDEATHSIG: c_int = 2; + +pub const PR_GET_DUMPABLE: c_int = 3; +pub const PR_SET_DUMPABLE: c_int = 4; + +pub const PR_GET_UNALIGN: c_int = 5; +pub const PR_SET_UNALIGN: c_int = 6; +pub const PR_UNALIGN_NOPRINT: c_int = 1; +pub const PR_UNALIGN_SIGBUS: c_int = 2; + +pub const PR_GET_KEEPCAPS: c_int = 7; +pub const PR_SET_KEEPCAPS: c_int = 8; + +pub const PR_GET_FPEMU: c_int = 9; +pub const PR_SET_FPEMU: c_int = 10; +pub const PR_FPEMU_NOPRINT: c_int = 1; +pub const PR_FPEMU_SIGFPE: c_int = 2; + +pub const PR_GET_FPEXC: c_int = 11; +pub const PR_SET_FPEXC: c_int = 12; +pub const PR_FP_EXC_SW_ENABLE: c_int = 0x80; +pub const PR_FP_EXC_DIV: c_int = 0x010000; +pub const PR_FP_EXC_OVF: c_int = 0x020000; +pub const PR_FP_EXC_UND: c_int = 0x040000; +pub const PR_FP_EXC_RES: c_int = 0x080000; +pub const PR_FP_EXC_INV: c_int = 0x100000; +pub const PR_FP_EXC_DISABLED: c_int = 0; +pub const PR_FP_EXC_NONRECOV: c_int = 1; +pub const PR_FP_EXC_ASYNC: c_int = 2; +pub const PR_FP_EXC_PRECISE: c_int = 3; + +pub const PR_GET_TIMING: c_int = 13; +pub const PR_SET_TIMING: c_int = 14; +pub const PR_TIMING_STATISTICAL: c_int = 0; +pub const PR_TIMING_TIMESTAMP: c_int = 1; + +pub const PR_SET_NAME: c_int = 15; +pub const PR_GET_NAME: c_int = 16; + +pub const PR_GET_ENDIAN: c_int = 19; +pub const PR_SET_ENDIAN: c_int = 20; +pub const PR_ENDIAN_BIG: c_int = 0; +pub const PR_ENDIAN_LITTLE: c_int = 1; +pub const PR_ENDIAN_PPC_LITTLE: c_int = 2; + +pub const PR_GET_SECCOMP: c_int = 21; +pub const PR_SET_SECCOMP: c_int = 22; + +pub const PR_CAPBSET_READ: c_int = 23; +pub const PR_CAPBSET_DROP: c_int = 24; + +pub const PR_GET_TSC: c_int = 25; +pub const PR_SET_TSC: c_int = 26; +pub const PR_TSC_ENABLE: c_int = 1; +pub const PR_TSC_SIGSEGV: c_int = 2; + +pub const PR_GET_SECUREBITS: c_int = 27; +pub const PR_SET_SECUREBITS: c_int = 28; + +pub const PR_SET_TIMERSLACK: c_int = 29; +pub const PR_GET_TIMERSLACK: c_int = 30; + +pub const PR_TASK_PERF_EVENTS_DISABLE: c_int = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: c_int = 32; + +pub const PR_MCE_KILL: c_int = 33; +pub const PR_MCE_KILL_CLEAR: c_int = 0; +pub const PR_MCE_KILL_SET: c_int = 1; + +pub const PR_MCE_KILL_LATE: c_int = 0; +pub const PR_MCE_KILL_EARLY: c_int = 1; +pub const PR_MCE_KILL_DEFAULT: c_int = 2; + +pub const PR_MCE_KILL_GET: c_int = 34; + +pub const PR_SET_MM: c_int = 35; +pub const PR_SET_MM_START_CODE: c_int = 1; +pub const PR_SET_MM_END_CODE: c_int = 2; +pub const PR_SET_MM_START_DATA: c_int = 3; +pub const PR_SET_MM_END_DATA: c_int = 4; +pub const PR_SET_MM_START_STACK: c_int = 5; +pub const PR_SET_MM_START_BRK: c_int = 6; +pub const PR_SET_MM_BRK: c_int = 7; +pub const PR_SET_MM_ARG_START: c_int = 8; +pub const PR_SET_MM_ARG_END: c_int = 9; +pub const PR_SET_MM_ENV_START: c_int = 10; +pub const PR_SET_MM_ENV_END: c_int = 11; +pub const PR_SET_MM_AUXV: c_int = 12; +pub const PR_SET_MM_EXE_FILE: c_int = 13; +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; + +pub const PR_SET_NO_NEW_PRIVS: c_int = 38; +pub const PR_GET_NO_NEW_PRIVS: c_int = 39; + +pub const PR_GET_TID_ADDRESS: c_int = 40; + +pub const PR_SET_THP_DISABLE: c_int = 41; +pub const PR_GET_THP_DISABLE: c_int = 42; + +pub const PR_MPX_ENABLE_MANAGEMENT: c_int = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: c_int = 44; + +pub const PR_SET_FP_MODE: c_int = 45; +pub const PR_GET_FP_MODE: c_int = 46; +pub const PR_FP_MODE_FR: c_int = 1 << 0; +pub const PR_FP_MODE_FRE: c_int = 1 << 1; + +pub const PR_CAP_AMBIENT: c_int = 47; +pub const PR_CAP_AMBIENT_IS_SET: c_int = 1; +pub const PR_CAP_AMBIENT_RAISE: c_int = 2; +pub const PR_CAP_AMBIENT_LOWER: c_int = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: c_int = 4; + +pub const PR_SET_VMA: c_int = 0x53564d41; +pub const PR_SET_VMA_ANON_NAME: c_int = 0; + +pub const PR_SCHED_CORE: c_int = 62; +pub const PR_SCHED_CORE_GET: c_int = 0; +pub const PR_SCHED_CORE_CREATE: c_int = 1; +pub const PR_SCHED_CORE_SHARE_TO: c_int = 2; +pub const PR_SCHED_CORE_SHARE_FROM: c_int = 3; +pub const PR_SCHED_CORE_MAX: c_int = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: c_int = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: c_int = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: c_int = 2; + +pub const ITIMER_REAL: c_int = 0; +pub const ITIMER_VIRTUAL: c_int = 1; +pub const ITIMER_PROF: c_int = 2; + +pub const _POSIX_VDISABLE: crate::cc_t = 0; + +pub const IPV6_RTHDR_LOOSE: c_int = 0; +pub const IPV6_RTHDR_STRICT: c_int = 1; + +pub const IUTF8: crate::tcflag_t = 0x00004000; +#[cfg(not(all(target_env = "uclibc", target_arch = "mips")))] +pub const CMSPAR: crate::tcflag_t = 0o10000000000; + +pub const MFD_CLOEXEC: c_uint = 0x0001; +pub const MFD_ALLOW_SEALING: c_uint = 0x0002; +pub const MFD_HUGETLB: c_uint = 0x0004; +cfg_if! { + if #[cfg(not(target_env = "uclibc"))] { + pub const MFD_NOEXEC_SEAL: c_uint = 0x0008; + pub const MFD_EXEC: c_uint = 0x0010; + pub const MFD_HUGE_64KB: c_uint = 0x40000000; + pub const MFD_HUGE_512KB: c_uint = 0x4c000000; + pub const MFD_HUGE_1MB: c_uint = 0x50000000; + pub const MFD_HUGE_2MB: c_uint = 0x54000000; + pub const MFD_HUGE_8MB: c_uint = 0x5c000000; + pub const MFD_HUGE_16MB: c_uint = 0x60000000; + pub const MFD_HUGE_32MB: c_uint = 0x64000000; + pub const MFD_HUGE_256MB: c_uint = 0x70000000; + pub const MFD_HUGE_512MB: c_uint = 0x74000000; + pub const MFD_HUGE_1GB: c_uint = 0x78000000; + pub const MFD_HUGE_2GB: c_uint = 0x7c000000; + pub const MFD_HUGE_16GB: c_uint = 0x88000000; + pub const MFD_HUGE_MASK: c_uint = 63; + pub const MFD_HUGE_SHIFT: c_uint = 26; + + pub const NLMSG_NOOP: c_int = 0x1; + pub const NLMSG_ERROR: c_int = 0x2; + pub const NLMSG_DONE: c_int = 0x3; + pub const NLMSG_OVERRUN: c_int = 0x4; + pub const NLMSG_MIN_TYPE: c_int = 0x10; + } +} + +// linux/if_packet.h +pub const PACKET_HOST: c_uchar = 0; +pub const PACKET_BROADCAST: c_uchar = 1; +pub const PACKET_MULTICAST: c_uchar = 2; +pub const PACKET_OTHERHOST: c_uchar = 3; +pub const PACKET_OUTGOING: c_uchar = 4; +pub const PACKET_LOOPBACK: c_uchar = 5; +#[cfg(not(target_os = "l4re"))] +pub const PACKET_USER: c_uchar = 6; +#[cfg(not(target_os = "l4re"))] +pub const PACKET_KERNEL: c_uchar = 7; + +pub const PACKET_ADD_MEMBERSHIP: c_int = 1; +pub const PACKET_DROP_MEMBERSHIP: c_int = 2; +pub const PACKET_RECV_OUTPUT: c_int = 3; +pub const PACKET_RX_RING: c_int = 5; +pub const PACKET_STATISTICS: c_int = 6; +cfg_if! { + if #[cfg(not(target_os = "l4re"))] { + pub const PACKET_COPY_THRESH: c_int = 7; + pub const PACKET_AUXDATA: c_int = 8; + pub const PACKET_ORIGDEV: c_int = 9; + pub const PACKET_VERSION: c_int = 10; + pub const PACKET_HDRLEN: c_int = 11; + pub const PACKET_RESERVE: c_int = 12; + pub const PACKET_TX_RING: c_int = 13; + pub const PACKET_LOSS: c_int = 14; + pub const PACKET_VNET_HDR: c_int = 15; + pub const PACKET_TX_TIMESTAMP: c_int = 16; + pub const PACKET_TIMESTAMP: c_int = 17; + } +} + +pub const PACKET_MR_MULTICAST: c_int = 0; +pub const PACKET_MR_PROMISC: c_int = 1; +pub const PACKET_MR_ALLMULTI: c_int = 2; + +pub const SIOCADDRT: c_ulong = 0x0000890B; +pub const SIOCDELRT: c_ulong = 0x0000890C; +pub const SIOCGIFNAME: c_ulong = 0x00008910; +pub const SIOCSIFLINK: c_ulong = 0x00008911; +pub const SIOCGIFCONF: c_ulong = 0x00008912; +pub const SIOCGIFFLAGS: c_ulong = 0x00008913; +pub const SIOCSIFFLAGS: c_ulong = 0x00008914; +pub const SIOCGIFADDR: c_ulong = 0x00008915; +pub const SIOCSIFADDR: c_ulong = 0x00008916; +pub const SIOCGIFDSTADDR: c_ulong = 0x00008917; +pub const SIOCSIFDSTADDR: c_ulong = 0x00008918; +pub const SIOCGIFBRDADDR: c_ulong = 0x00008919; +pub const SIOCSIFBRDADDR: c_ulong = 0x0000891A; +pub const SIOCGIFNETMASK: c_ulong = 0x0000891B; +pub const SIOCSIFNETMASK: c_ulong = 0x0000891C; +pub const SIOCGIFMETRIC: c_ulong = 0x0000891D; +pub const SIOCSIFMETRIC: c_ulong = 0x0000891E; +pub const SIOCGIFMEM: c_ulong = 0x0000891F; +pub const SIOCSIFMEM: c_ulong = 0x00008920; +pub const SIOCGIFMTU: c_ulong = 0x00008921; +pub const SIOCSIFMTU: c_ulong = 0x00008922; +pub const SIOCSIFNAME: c_ulong = 0x00008923; +pub const SIOCSIFHWADDR: c_ulong = 0x00008924; +pub const SIOCGIFENCAP: c_ulong = 0x00008925; +pub const SIOCSIFENCAP: c_ulong = 0x00008926; +pub const SIOCGIFHWADDR: c_ulong = 0x00008927; +pub const SIOCGIFSLAVE: c_ulong = 0x00008929; +pub const SIOCSIFSLAVE: c_ulong = 0x00008930; +pub const SIOCADDMULTI: c_ulong = 0x00008931; +pub const SIOCDELMULTI: c_ulong = 0x00008932; +pub const SIOCGIFINDEX: c_ulong = 0x00008933; +pub const SIOGIFINDEX: c_ulong = SIOCGIFINDEX; +pub const SIOCSIFPFLAGS: c_ulong = 0x00008934; +pub const SIOCGIFPFLAGS: c_ulong = 0x00008935; +pub const SIOCDIFADDR: c_ulong = 0x00008936; +pub const SIOCSIFHWBROADCAST: c_ulong = 0x00008937; +pub const SIOCGIFCOUNT: c_ulong = 0x00008938; +pub const SIOCGIFBR: c_ulong = 0x00008940; +pub const SIOCSIFBR: c_ulong = 0x00008941; +pub const SIOCGIFTXQLEN: c_ulong = 0x00008942; +pub const SIOCSIFTXQLEN: c_ulong = 0x00008943; +cfg_if! { + if #[cfg(not(target_os = "l4re"))] { + pub const SIOCETHTOOL: c_ulong = 0x00008946; + pub const SIOCGMIIPHY: c_ulong = 0x00008947; + pub const SIOCGMIIREG: c_ulong = 0x00008948; + pub const SIOCSMIIREG: c_ulong = 0x00008949; + pub const SIOCWANDEV: c_ulong = 0x0000894A; + pub const SIOCOUTQNSD: c_ulong = 0x0000894B; + pub const SIOCGSKNS: c_ulong = 0x0000894C; + } +} +pub const SIOCDARP: c_ulong = 0x00008953; +pub const SIOCGARP: c_ulong = 0x00008954; +pub const SIOCSARP: c_ulong = 0x00008955; +pub const SIOCDRARP: c_ulong = 0x00008960; +pub const SIOCGRARP: c_ulong = 0x00008961; +pub const SIOCSRARP: c_ulong = 0x00008962; +pub const SIOCGIFMAP: c_ulong = 0x00008970; +pub const SIOCSIFMAP: c_ulong = 0x00008971; + +pub const IPTOS_TOS_MASK: u8 = 0x1E; +pub const IPTOS_PREC_MASK: u8 = 0xE0; + +pub const IPTOS_ECN_NOT_ECT: u8 = 0x00; + +pub const RTF_UP: c_ushort = 0x0001; +pub const RTF_GATEWAY: c_ushort = 0x0002; + +pub const RTF_HOST: c_ushort = 0x0004; +pub const RTF_REINSTATE: c_ushort = 0x0008; +pub const RTF_DYNAMIC: c_ushort = 0x0010; +pub const RTF_MODIFIED: c_ushort = 0x0020; +pub const RTF_MTU: c_ushort = 0x0040; +pub const RTF_MSS: c_ushort = RTF_MTU; +pub const RTF_WINDOW: c_ushort = 0x0080; +pub const RTF_IRTT: c_ushort = 0x0100; +pub const RTF_REJECT: c_ushort = 0x0200; +pub const RTF_STATIC: c_ushort = 0x0400; +pub const RTF_XRESOLVE: c_ushort = 0x0800; +pub const RTF_NOFORWARD: c_ushort = 0x1000; +pub const RTF_THROW: c_ushort = 0x2000; +pub const RTF_NOPMTUDISC: c_ushort = 0x4000; + +pub const RTF_DEFAULT: u32 = 0x00010000; +pub const RTF_ALLONLINK: u32 = 0x00020000; +pub const RTF_ADDRCONF: u32 = 0x00040000; +pub const RTF_LINKRT: u32 = 0x00100000; +pub const RTF_NONEXTHOP: u32 = 0x00200000; +pub const RTF_CACHE: u32 = 0x01000000; +pub const RTF_FLOW: u32 = 0x02000000; +pub const RTF_POLICY: u32 = 0x04000000; + +pub const RTCF_VALVE: u32 = 0x00200000; +pub const RTCF_MASQ: u32 = 0x00400000; +pub const RTCF_NAT: u32 = 0x00800000; +pub const RTCF_DOREDIRECT: u32 = 0x01000000; +pub const RTCF_LOG: u32 = 0x02000000; +pub const RTCF_DIRECTSRC: u32 = 0x04000000; + +pub const RTF_LOCAL: u32 = 0x80000000; +pub const RTF_INTERFACE: u32 = 0x40000000; +pub const RTF_MULTICAST: u32 = 0x20000000; +pub const RTF_BROADCAST: u32 = 0x10000000; +pub const RTF_NAT: u32 = 0x08000000; +pub const RTF_ADDRCLASSMASK: u32 = 0xF8000000; + +pub const RT_CLASS_UNSPEC: u8 = 0; +pub const RT_CLASS_DEFAULT: u8 = 253; +pub const RT_CLASS_MAIN: u8 = 254; +pub const RT_CLASS_LOCAL: u8 = 255; +pub const RT_CLASS_MAX: u8 = 255; + +pub const MAX_ADDR_LEN: usize = 7; +pub const ARPD_UPDATE: c_ushort = 0x01; +pub const ARPD_LOOKUP: c_ushort = 0x02; +pub const ARPD_FLUSH: c_ushort = 0x03; +pub const ATF_MAGIC: c_int = 0x80; + +// include/uapi/linux/udp.h +pub const UDP_CORK: c_int = 1; +pub const UDP_ENCAP: c_int = 100; +pub const UDP_NO_CHECK6_TX: c_int = 101; +pub const UDP_NO_CHECK6_RX: c_int = 102; + +// include/uapi/asm-generic/mman-common.h +pub const MAP_FIXED_NOREPLACE: c_int = 0x100000; +pub const MLOCK_ONFAULT: c_uint = 0x01; + +pub const REG_EXTENDED: c_int = 1; +pub const REG_ICASE: c_int = 2; +pub const REG_NEWLINE: c_int = 4; +pub const REG_NOSUB: c_int = 8; + +pub const REG_NOTBOL: c_int = 1; +pub const REG_NOTEOL: c_int = 2; + +pub const REG_ENOSYS: c_int = -1; +pub const REG_NOMATCH: c_int = 1; +pub const REG_BADPAT: c_int = 2; +pub const REG_ECOLLATE: c_int = 3; +pub const REG_ECTYPE: c_int = 4; +pub const REG_EESCAPE: c_int = 5; +pub const REG_ESUBREG: c_int = 6; +pub const REG_EBRACK: c_int = 7; +pub const REG_EPAREN: c_int = 8; +pub const REG_EBRACE: c_int = 9; +pub const REG_BADBR: c_int = 10; +pub const REG_ERANGE: c_int = 11; +pub const REG_ESPACE: c_int = 12; +pub const REG_BADRPT: c_int = 13; + +// errno.h +pub const EPERM: c_int = 1; +pub const ENOENT: c_int = 2; +pub const ESRCH: c_int = 3; +pub const EINTR: c_int = 4; +pub const EIO: c_int = 5; +pub const ENXIO: c_int = 6; +pub const E2BIG: c_int = 7; +pub const ENOEXEC: c_int = 8; +pub const EBADF: c_int = 9; +pub const ECHILD: c_int = 10; +pub const EAGAIN: c_int = 11; +pub const ENOMEM: c_int = 12; +pub const EACCES: c_int = 13; +pub const EFAULT: c_int = 14; +pub const ENOTBLK: c_int = 15; +pub const EBUSY: c_int = 16; +pub const EEXIST: c_int = 17; +pub const EXDEV: c_int = 18; +pub const ENODEV: c_int = 19; +pub const ENOTDIR: c_int = 20; +pub const EISDIR: c_int = 21; +pub const EINVAL: c_int = 22; +pub const ENFILE: c_int = 23; +pub const EMFILE: c_int = 24; +pub const ENOTTY: c_int = 25; +pub const ETXTBSY: c_int = 26; +pub const EFBIG: c_int = 27; +pub const ENOSPC: c_int = 28; +pub const ESPIPE: c_int = 29; +pub const EROFS: c_int = 30; +pub const EMLINK: c_int = 31; +pub const EPIPE: c_int = 32; +pub const EDOM: c_int = 33; +pub const ERANGE: c_int = 34; +pub const EWOULDBLOCK: c_int = EAGAIN; + +pub const CSIGNAL: c_int = 0x000000ff; + +#[cfg(not(target_os = "l4re"))] +pub const SCHED_NORMAL: c_int = 0; +pub const SCHED_OTHER: c_int = 0; +pub const SCHED_FIFO: c_int = 1; +pub const SCHED_RR: c_int = 2; +pub const SCHED_BATCH: c_int = 3; +pub const SCHED_IDLE: c_int = 5; +pub const SCHED_DEADLINE: c_int = 6; + +pub const SCHED_RESET_ON_FORK: c_int = 0x40000000; + +// elf.h +pub const NT_PRSTATUS: c_int = 1; +#[cfg(not(target_os = "l4re"))] +pub const NT_PRFPREG: c_int = 2; +pub const NT_FPREGSET: c_int = 2; +pub const NT_PRPSINFO: c_int = 3; +#[cfg(not(target_os = "l4re"))] +pub const NT_PRXREG: c_int = 4; +pub const NT_TASKSTRUCT: c_int = 4; +pub const NT_PLATFORM: c_int = 5; +pub const NT_AUXV: c_int = 6; +pub const NT_GWINDOWS: c_int = 7; +pub const NT_ASRS: c_int = 8; +pub const NT_PSTATUS: c_int = 10; +pub const NT_PSINFO: c_int = 13; +pub const NT_PRCRED: c_int = 14; +pub const NT_UTSNAME: c_int = 15; +pub const NT_LWPSTATUS: c_int = 16; +pub const NT_LWPSINFO: c_int = 17; +pub const NT_PRFPXREG: c_int = 20; + +pub const MS_NOUSER: c_ulong = 0xffffffff80000000; + +f! { + pub fn CMSG_NXTHDR( + mhdr: *const crate::msghdr, + cmsg: *const crate::cmsghdr, + ) -> *mut crate::cmsghdr { + if ((*cmsg).cmsg_len as usize) < size_of::() { + return core::ptr::null_mut::(); + } + let next = + (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut crate::cmsghdr; + let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; + if (next.wrapping_offset(1)) as usize > max + || next as usize + super::CMSG_ALIGN((*next).cmsg_len as usize) > max + { + core::ptr::null_mut::() + } else { + next + } + } + + pub fn CPU_ALLOC_SIZE(count: c_int) -> size_t { + let _dummy: cpu_set_t = mem::zeroed(); + let size_in_bits = 8 * size_of_val(&_dummy.bits[0]); + ((count as size_t + size_in_bits - 1) / 8) as size_t + } + + pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { + for slot in &mut cpuset.bits { + *slot = 0; + } + } + + pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); // 32, 64 etc + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + cpuset.bits[idx] |= 1 << offset; + } + + pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); // 32, 64 etc + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + cpuset.bits[idx] &= !(1 << offset); + } + + pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { + let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + 0 != (cpuset.bits[idx] & (1 << offset)) + } + + pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int { + let mut s: u32 = 0; + let size_of_mask = size_of_val(&cpuset.bits[0]); + for i in &cpuset.bits[..(size / size_of_mask)] { + s += i.count_ones(); + } + s as c_int + } + + pub fn CPU_COUNT(cpuset: &cpu_set_t) -> c_int { + CPU_COUNT_S(size_of::(), cpuset) + } + + pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { + set1.bits == set2.bits + } + + pub fn IPTOS_TOS(tos: u8) -> u8 { + tos & IPTOS_TOS_MASK + } + + pub fn IPTOS_PREC(tos: u8) -> u8 { + tos & IPTOS_PREC_MASK + } + + pub fn RT_TOS(tos: u8) -> u8 { + tos & crate::IPTOS_TOS_MASK + } + + pub fn RT_ADDRCLASS(flags: u32) -> u32 { + flags >> 23 + } + + pub fn RT_LOCALADDR(flags: u32) -> bool { + (flags & RTF_ADDRCLASSMASK) == (RTF_LOCAL | RTF_INTERFACE) + } + + pub fn ELF32_R_SYM(val: Elf32_Word) -> Elf32_Word { + val >> 8 + } + + pub fn ELF32_R_TYPE(val: Elf32_Word) -> Elf32_Word { + val & 0xff + } + + pub fn ELF32_R_INFO(sym: Elf32_Word, t: Elf32_Word) -> Elf32_Word { + sym << (8 + t) & 0xff + } + + pub fn ELF64_R_SYM(val: Elf64_Xword) -> Elf64_Xword { + val >> 32 + } + + pub fn ELF64_R_TYPE(val: Elf64_Xword) -> Elf64_Xword { + val & 0xffffffff + } + + pub fn ELF64_R_INFO(sym: Elf64_Xword, t: Elf64_Xword) -> Elf64_Xword { + sym << (32 + t) + } +} + +safe_f! { + pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t { + let major = major as crate::dev_t; + let minor = minor as crate::dev_t; + let mut dev = 0; + dev |= (major & 0x00000fff) << 8; + dev |= (major & 0xfffff000) << 32; + dev |= (minor & 0x000000ff) << 0; + dev |= (minor & 0xffffff00) << 12; + dev + } + + pub const fn major(dev: crate::dev_t) -> c_uint { + let mut major = 0; + major |= (dev & 0x00000000000fff00) >> 8; + major |= (dev & 0xfffff00000000000) >> 32; + major as c_uint + } + + pub const fn minor(dev: crate::dev_t) -> c_uint { + let mut minor = 0; + minor |= (dev & 0x00000000000000ff) >> 0; + minor |= (dev & 0x00000ffffff00000) >> 12; + minor as c_uint + } +} + +cfg_if! { + if #[cfg(all( + any(target_env = "gnu", target_env = "musl", target_env = "ohos"), + any(target_arch = "x86_64", target_arch = "x86") + ))] { + extern "C" { + pub fn iopl(level: c_int) -> c_int; + pub fn ioperm(from: c_ulong, num: c_ulong, turn_on: c_int) -> c_int; + } + } +} + +cfg_if! { + if #[cfg(all(not(target_env = "uclibc"), not(target_env = "ohos")))] { + extern "C" { + #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_read64")] + pub fn aio_read(aiocbp: *mut crate::aiocb) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_write64")] + pub fn aio_write(aiocbp: *mut crate::aiocb) -> c_int; + pub fn aio_fsync(op: c_int, aiocbp: *mut crate::aiocb) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_error64")] + pub fn aio_error(aiocbp: *const crate::aiocb) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_return64")] + pub fn aio_return(aiocbp: *mut crate::aiocb) -> ssize_t; + #[cfg_attr(gnu_time_bits64, link_name = "__aio_suspend_time64")] + pub fn aio_suspend( + aiocb_list: *const *const crate::aiocb, + nitems: c_int, + timeout: *const crate::timespec, + ) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_cancel64")] + pub fn aio_cancel(fd: c_int, aiocbp: *mut crate::aiocb) -> c_int; + #[cfg_attr(gnu_file_offset_bits64, link_name = "lio_listio64")] + pub fn lio_listio( + mode: c_int, + aiocb_list: *const *mut crate::aiocb, + nitems: c_int, + sevp: *mut crate::sigevent, + ) -> c_int; + } + } +} + +cfg_if! { + if #[cfg(not(target_env = "uclibc"))] { + extern "C" { + #[cfg_attr(gnu_file_offset_bits64, link_name = "pwritev64")] + pub fn pwritev( + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: crate::off_t, + ) -> ssize_t; + #[cfg_attr(gnu_file_offset_bits64, link_name = "preadv64")] + pub fn preadv( + fd: c_int, + iov: *const crate::iovec, + iovcnt: c_int, + offset: crate::off_t, + ) -> ssize_t; + pub fn getnameinfo( + sa: *const crate::sockaddr, + salen: crate::socklen_t, + host: *mut c_char, + hostlen: crate::socklen_t, + serv: *mut c_char, + servlen: crate::socklen_t, + flags: c_int, + ) -> c_int; + pub fn getloadavg(loadavg: *mut c_double, nelem: c_int) -> c_int; + pub fn process_vm_readv( + pid: crate::pid_t, + local_iov: *const crate::iovec, + liovcnt: c_ulong, + remote_iov: *const crate::iovec, + riovcnt: c_ulong, + flags: c_ulong, + ) -> isize; + pub fn process_vm_writev( + pid: crate::pid_t, + local_iov: *const crate::iovec, + liovcnt: c_ulong, + remote_iov: *const crate::iovec, + riovcnt: c_ulong, + flags: c_ulong, + ) -> isize; + #[cfg_attr(gnu_time_bits64, link_name = "__futimes64")] + pub fn futimes(fd: c_int, times: *const crate::timeval) -> c_int; + } + } +} + +extern "C" { + #[cfg_attr( + not(any(target_env = "musl", target_env = "ohos")), + link_name = "__xpg_strerror_r" + )] + pub fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: size_t) -> c_int; + + pub fn abs(i: c_int) -> c_int; + pub fn labs(i: c_long) -> c_long; + pub fn rand() -> c_int; + pub fn srand(seed: c_uint); + + pub fn drand48() -> c_double; + pub fn erand48(xseed: *mut c_ushort) -> c_double; + pub fn lrand48() -> c_long; + pub fn nrand48(xseed: *mut c_ushort) -> c_long; + pub fn jrand48(xseed: *mut c_ushort) -> c_long; + pub fn srand48(seed: c_long); + + pub fn setpwent(); + pub fn endpwent(); + pub fn getpwent() -> *mut passwd; + pub fn setgrent(); + pub fn endgrent(); + pub fn getgrent() -> *mut crate::group; + #[cfg(not(target_os = "l4re"))] + pub fn setspent(); + #[cfg(not(target_os = "l4re"))] + pub fn endspent(); + #[cfg(not(target_os = "l4re"))] + pub fn getspent() -> *mut spwd; + + pub fn getspnam(name: *const c_char) -> *mut spwd; + + // System V IPC + pub fn shmget(key: crate::key_t, size: size_t, shmflg: c_int) -> c_int; + 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; + #[cfg_attr(gnu_time_bits64, link_name = "__shmctl64")] + pub fn shmctl(shmid: c_int, cmd: c_int, buf: *mut crate::shmid_ds) -> c_int; + + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; + pub fn __errno_location() -> *mut c_int; + + // Not available now on Android + pub fn mremap( + addr: *mut c_void, + len: size_t, + new_len: size_t, + flags: c_int, + ... + ) -> *mut c_void; + + #[cfg_attr(gnu_time_bits64, link_name = "__glob64_time64")] + #[cfg_attr( + all(not(gnu_time_bits64), gnu_file_offset_bits64), + link_name = "glob64" + )] + pub fn glob( + pattern: *const c_char, + flags: c_int, + errfunc: Option c_int>, + pglob: *mut crate::glob_t, + ) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__globfree64_time64")] + #[cfg_attr( + all(not(gnu_time_bits64), gnu_file_offset_bits64), + link_name = "globfree64" + )] + pub fn globfree(pglob: *mut crate::glob_t); + + pub fn seekdir(dirp: *mut crate::DIR, loc: c_long); + + pub fn telldir(dirp: *mut crate::DIR) -> c_long; + pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; + + pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; + pub fn recvfrom( + socket: c_int, + buf: *mut c_void, + len: size_t, + flags: c_int, + addr: *mut crate::sockaddr, + addrlen: *mut crate::socklen_t, + ) -> ssize_t; + + pub fn nl_langinfo(item: crate::nl_item) -> *mut c_char; + pub fn nl_langinfo_l(item: crate::nl_item, locale: crate::locale_t) -> *mut c_char; + + pub fn sched_getaffinity( + pid: crate::pid_t, + cpusetsize: size_t, + cpuset: *mut cpu_set_t, + ) -> c_int; + pub fn sched_get_priority_max(policy: c_int) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__settimeofday64")] + pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__sem_timedwait64")] + pub fn sem_timedwait(sem: *mut crate::sem_t, abstime: *const crate::timespec) -> c_int; + pub fn sem_getvalue(sem: *mut crate::sem_t, sval: *mut c_int) -> c_int; + pub fn mount( + src: *const c_char, + target: *const c_char, + fstype: *const c_char, + flags: c_ulong, + data: *const c_void, + ) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__prctl_time64")] + pub fn prctl(option: c_int, ...) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__ppoll64")] + pub fn ppoll( + fds: *mut crate::pollfd, + nfds: crate::nfds_t, + timeout: *const crate::timespec, + sigmask: *const crate::sigset_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 sysinfo(info: *mut crate::sysinfo) -> c_int; + pub fn sigsuspend(mask: *const crate::sigset_t) -> c_int; + pub fn getgrgid_r( + gid: crate::gid_t, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn sem_close(sem: *mut crate::sem_t) -> c_int; + pub fn getgrnam_r( + name: *const c_char, + grp: *mut crate::group, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::group, + ) -> c_int; + pub fn initgroups(user: *const c_char, group: crate::gid_t) -> c_int; + pub fn sem_open(name: *const c_char, oflag: c_int, ...) -> *mut crate::sem_t; + pub fn getgrnam(name: *const c_char) -> *mut crate::group; + pub fn sem_unlink(name: *const c_char) -> c_int; + pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; + pub fn sigwait(set: *const crate::sigset_t, sig: *mut c_int) -> c_int; + pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut crate::FILE; + pub fn faccessat(dirfd: c_int, pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; + pub fn dl_iterate_phdr( + callback: Option< + unsafe extern "C" fn( + info: *mut crate::dl_phdr_info, + size: size_t, + data: *mut c_void, + ) -> c_int, + >, + data: *mut c_void, + ) -> c_int; + + pub fn setmntent(filename: *const c_char, ty: *const c_char) -> *mut crate::FILE; + pub fn getmntent(stream: *mut crate::FILE) -> *mut crate::mntent; + pub fn addmntent(stream: *mut crate::FILE, mnt: *const crate::mntent) -> c_int; + pub fn endmntent(streamp: *mut crate::FILE) -> c_int; + pub fn hasmntopt(mnt: *const crate::mntent, opt: *const c_char) -> *mut c_char; + + pub fn regcomp(preg: *mut crate::regex_t, pattern: *const c_char, cflags: c_int) -> c_int; + + pub fn regexec( + preg: *const crate::regex_t, + input: *const c_char, + nmatch: size_t, + pmatch: *mut regmatch_t, + eflags: c_int, + ) -> c_int; + + pub fn regerror( + errcode: c_int, + preg: *const crate::regex_t, + errbuf: *mut c_char, + errbuf_size: size_t, + ) -> size_t; + + pub fn regfree(preg: *mut crate::regex_t); + + pub fn iconv_open(tocode: *const c_char, fromcode: *const c_char) -> iconv_t; + pub fn iconv( + cd: iconv_t, + inbuf: *mut *mut c_char, + inbytesleft: *mut size_t, + outbuf: *mut *mut c_char, + outbytesleft: *mut size_t, + ) -> size_t; + pub fn iconv_close(cd: iconv_t) -> c_int; + + pub fn gettid() -> crate::pid_t; + + pub fn timer_create( + clockid: crate::clockid_t, + sevp: *mut crate::sigevent, + timerid: *mut crate::timer_t, + ) -> c_int; + pub fn timer_delete(timerid: crate::timer_t) -> c_int; + #[cfg(not(target_os = "l4re"))] + pub fn timer_getoverrun(timerid: crate::timer_t) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__timer_gettime64")] + pub fn timer_gettime(timerid: crate::timer_t, curr_value: *mut crate::itimerspec) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__timer_settime64")] + pub fn timer_settime( + timerid: crate::timer_t, + flags: c_int, + new_value: *const crate::itimerspec, + old_value: *mut crate::itimerspec, + ) -> c_int; + + pub fn memmem( + haystack: *const c_void, + haystacklen: size_t, + needle: *const c_void, + needlelen: size_t, + ) -> *mut c_void; + pub fn sched_getcpu() -> c_int; + + pub fn getopt_long( + argc: c_int, + argv: *const *mut c_char, + optstring: *const c_char, + longopts: *const option, + longindex: *mut c_int, + ) -> c_int; + + #[cfg(not(target_env = "uclibc"))] + pub fn copy_file_range( + fd_in: c_int, + off_in: *mut crate::off64_t, + fd_out: c_int, + off_out: *mut crate::off64_t, + len: size_t, + flags: c_uint, + ) -> ssize_t; +} + +cfg_if! { + if #[cfg(not(any(target_env = "musl", target_env = "ohos")))] { + extern "C" { + pub fn freopen64( + filename: *const c_char, + mode: *const c_char, + file: *mut crate::FILE, + ) -> *mut crate::FILE; + pub fn fseeko64( + stream: *mut crate::FILE, + offset: crate::off64_t, + whence: c_int, + ) -> c_int; + pub fn fsetpos64(stream: *mut crate::FILE, ptr: *const crate::fpos64_t) -> c_int; + pub fn ftello64(stream: *mut crate::FILE) -> crate::off64_t; + } + } +} diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index c396c6c37099c..8ac59660b6bed 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -63,7 +63,7 @@ s! { pub ai_protocol: c_int, pub ai_addrlen: socklen_t, - #[cfg(any(target_os = "linux", target_os = "emscripten"))] + #[cfg(not(target_os = "android"))] pub ai_addr: *mut crate::sockaddr, pub ai_canonname: *mut c_char, @@ -230,7 +230,7 @@ s! { } cfg_if! { - if #[cfg(not(target_os = "emscripten"))] { + if #[cfg(not(any(target_os = "emscripten", target_os = "l4re")))] { s! { pub struct file_clone_range { pub src_fd: crate::__s64, @@ -323,7 +323,7 @@ s_no_extra_traits! { } cfg_if! { - if #[cfg(feature = "extra_traits")] { + if #[cfg(all(feature = "extra_traits", not(target_os = "l4re")))] { impl PartialEq for epoll_event { fn eq(&self, other: &epoll_event) -> bool { self.events == other.events && self.u64 == other.u64 @@ -472,7 +472,9 @@ pub const PROT_READ: c_int = 1; pub const PROT_WRITE: c_int = 2; pub const PROT_EXEC: c_int = 4; +#[cfg(not(target_os = "l4re"))] pub const XATTR_CREATE: c_int = 0x1; +#[cfg(not(target_os = "l4re"))] pub const XATTR_REPLACE: c_int = 0x2; cfg_if! { @@ -584,11 +586,13 @@ pub const MADV_DONTDUMP: c_int = 16; pub const MADV_DODUMP: c_int = 17; pub const MADV_WIPEONFORK: c_int = 18; pub const MADV_KEEPONFORK: c_int = 19; +#[cfg(not(target_os = "l4re"))] pub const MADV_COLD: c_int = 20; +#[cfg(not(target_os = "l4re"))] pub const MADV_PAGEOUT: c_int = 21; pub const MADV_HWPOISON: c_int = 100; cfg_if! { - if #[cfg(not(target_os = "emscripten"))] { + if #[cfg(not(any(target_os = "emscripten", target_os = "l4re")))] { pub const MADV_POPULATE_READ: c_int = 22; pub const MADV_POPULATE_WRITE: c_int = 23; pub const MADV_DONTNEED_LOCKED: c_int = 24; @@ -757,8 +761,11 @@ pub const IP_TRANSPARENT: c_int = 19; pub const IP_ORIGDSTADDR: c_int = 20; pub const IP_RECVORIGDSTADDR: c_int = IP_ORIGDSTADDR; pub const IP_MINTTL: c_int = 21; +#[cfg(not(target_env = "uclibc"))] pub const IP_NODEFRAG: c_int = 22; +#[cfg(not(target_env = "uclibc"))] pub const IP_CHECKSUM: c_int = 23; +#[cfg(not(target_env = "uclibc"))] pub const IP_BIND_ADDRESS_NO_PORT: c_int = 24; pub const IP_MULTICAST_IF: c_int = 32; pub const IP_MULTICAST_TTL: c_int = 33; @@ -780,7 +787,9 @@ pub const IP_PMTUDISC_DONT: c_int = 0; pub const IP_PMTUDISC_WANT: c_int = 1; pub const IP_PMTUDISC_DO: c_int = 2; pub const IP_PMTUDISC_PROBE: c_int = 3; +#[cfg(not(target_env = "uclibc"))] pub const IP_PMTUDISC_INTERFACE: c_int = 4; +#[cfg(not(target_env = "uclibc"))] pub const IP_PMTUDISC_OMIT: c_int = 5; // IPPROTO_IP defined in src/unix/mod.rs @@ -837,8 +846,10 @@ pub const IPPROTO_RAW: c_int = 255; pub const IPPROTO_BEETPH: c_int = 94; pub const IPPROTO_MPLS: c_int = 137; /// Multipath TCP +#[cfg(not(target_os = "l4re"))] pub const IPPROTO_MPTCP: c_int = 262; /// Ethernet-within-IPv6 encapsulation. +#[cfg(not(target_os = "l4re"))] pub const IPPROTO_ETHERNET: c_int = 143; pub const MCAST_EXCLUDE: c_int = 0; @@ -888,25 +899,32 @@ pub const IPV6_RECVRTHDR: c_int = 56; pub const IPV6_RTHDR: c_int = 57; pub const IPV6_RECVDSTOPTS: c_int = 58; pub const IPV6_DSTOPTS: c_int = 59; +#[cfg(not(target_env = "uclibc"))] pub const IPV6_RECVPATHMTU: c_int = 60; +#[cfg(not(target_env = "uclibc"))] pub const IPV6_PATHMTU: c_int = 61; +#[cfg(not(target_env = "uclibc"))] pub const IPV6_DONTFRAG: c_int = 62; pub const IPV6_RECVTCLASS: c_int = 66; pub const IPV6_TCLASS: c_int = 67; -pub const IPV6_AUTOFLOWLABEL: c_int = 70; -pub const IPV6_ADDR_PREFERENCES: c_int = 72; -pub const IPV6_MINHOPCOUNT: c_int = 73; -pub const IPV6_ORIGDSTADDR: c_int = 74; -pub const IPV6_RECVORIGDSTADDR: c_int = IPV6_ORIGDSTADDR; -pub const IPV6_TRANSPARENT: c_int = 75; -pub const IPV6_UNICAST_IF: c_int = 76; -pub const IPV6_PREFER_SRC_TMP: c_int = 0x0001; -pub const IPV6_PREFER_SRC_PUBLIC: c_int = 0x0002; -pub const IPV6_PREFER_SRC_PUBTMP_DEFAULT: c_int = 0x0100; -pub const IPV6_PREFER_SRC_COA: c_int = 0x0004; -pub const IPV6_PREFER_SRC_HOME: c_int = 0x0400; -pub const IPV6_PREFER_SRC_CGA: c_int = 0x0008; -pub const IPV6_PREFER_SRC_NONCGA: c_int = 0x0800; +cfg_if! { + if #[cfg(not(target_env = "uclibc"))] { + pub const IPV6_AUTOFLOWLABEL: c_int = 70; + pub const IPV6_ADDR_PREFERENCES: c_int = 72; + pub const IPV6_MINHOPCOUNT: c_int = 73; + pub const IPV6_ORIGDSTADDR: c_int = 74; + pub const IPV6_RECVORIGDSTADDR: c_int = IPV6_ORIGDSTADDR; + pub const IPV6_TRANSPARENT: c_int = 75; + pub const IPV6_UNICAST_IF: c_int = 76; + pub const IPV6_PREFER_SRC_TMP: c_int = 0x0001; + pub const IPV6_PREFER_SRC_PUBLIC: c_int = 0x0002; + pub const IPV6_PREFER_SRC_PUBTMP_DEFAULT: c_int = 0x0100; + pub const IPV6_PREFER_SRC_COA: c_int = 0x0004; + pub const IPV6_PREFER_SRC_HOME: c_int = 0x0400; + pub const IPV6_PREFER_SRC_CGA: c_int = 0x0008; + pub const IPV6_PREFER_SRC_NONCGA: c_int = 0x0800; + } +} pub const IPV6_PMTUDISC_DONT: c_int = 0; pub const IPV6_PMTUDISC_WANT: c_int = 1; @@ -1015,25 +1033,29 @@ pub const MNT_DETACH: c_int = 0x2; pub const MNT_EXPIRE: c_int = 0x4; pub const UMOUNT_NOFOLLOW: c_int = 0x8; -pub const Q_GETFMT: c_int = 0x800004; -pub const Q_GETINFO: c_int = 0x800005; -pub const Q_SETINFO: c_int = 0x800006; -pub const QIF_BLIMITS: u32 = 1; -pub const QIF_SPACE: u32 = 2; -pub const QIF_ILIMITS: u32 = 4; -pub const QIF_INODES: u32 = 8; -pub const QIF_BTIME: u32 = 16; -pub const QIF_ITIME: u32 = 32; -pub const QIF_LIMITS: u32 = 5; -pub const QIF_USAGE: u32 = 10; -pub const QIF_TIMES: u32 = 48; -pub const QIF_ALL: u32 = 63; - -pub const Q_SYNC: c_int = 0x800001; -pub const Q_QUOTAON: c_int = 0x800002; -pub const Q_QUOTAOFF: c_int = 0x800003; -pub const Q_GETQUOTA: c_int = 0x800007; -pub const Q_SETQUOTA: c_int = 0x800008; +cfg_if! { + if #[cfg(not(target_os = "l4re"))] { + pub const Q_GETFMT: c_int = 0x800004; + pub const Q_GETINFO: c_int = 0x800005; + pub const Q_SETINFO: c_int = 0x800006; + pub const QIF_BLIMITS: u32 = 1; + pub const QIF_SPACE: u32 = 2; + pub const QIF_ILIMITS: u32 = 4; + pub const QIF_INODES: u32 = 8; + pub const QIF_BTIME: u32 = 16; + pub const QIF_ITIME: u32 = 32; + pub const QIF_LIMITS: u32 = 5; + pub const QIF_USAGE: u32 = 10; + pub const QIF_TIMES: u32 = 48; + pub const QIF_ALL: u32 = 63; + + pub const Q_SYNC: c_int = 0x800001; + pub const Q_QUOTAON: c_int = 0x800002; + pub const Q_QUOTAOFF: c_int = 0x800003; + pub const Q_GETQUOTA: c_int = 0x800007; + pub const Q_SETQUOTA: c_int = 0x800008; + } +} pub const TCIOFF: c_int = 2; pub const TCION: c_int = 3; @@ -1091,6 +1113,7 @@ pub const CLONE_CHILD_CLEARTID: c_int = 0x200000; pub const CLONE_DETACHED: c_int = 0x400000; pub const CLONE_UNTRACED: c_int = 0x800000; pub const CLONE_CHILD_SETTID: c_int = 0x01000000; +#[cfg(not(target_os = "l4re"))] pub const CLONE_NEWCGROUP: c_int = 0x02000000; pub const CLONE_NEWUTS: c_int = 0x04000000; pub const CLONE_NEWIPC: c_int = 0x08000000; @@ -1106,47 +1129,55 @@ pub const WEXITED: c_int = 0x00000004; pub const WCONTINUED: c_int = 0x00000008; pub const WNOWAIT: c_int = 0x01000000; -// Options for personality(2). -pub const ADDR_NO_RANDOMIZE: c_int = 0x0040000; -pub const MMAP_PAGE_ZERO: c_int = 0x0100000; -pub const ADDR_COMPAT_LAYOUT: c_int = 0x0200000; -pub const READ_IMPLIES_EXEC: c_int = 0x0400000; -pub const ADDR_LIMIT_32BIT: c_int = 0x0800000; -pub const SHORT_INODE: c_int = 0x1000000; -pub const WHOLE_SECONDS: c_int = 0x2000000; -pub const STICKY_TIMEOUTS: c_int = 0x4000000; -pub const ADDR_LIMIT_3GB: c_int = 0x8000000; - -// Options set using PTRACE_SETOPTIONS. -pub const PTRACE_O_TRACESYSGOOD: c_int = 0x00000001; -pub const PTRACE_O_TRACEFORK: c_int = 0x00000002; -pub const PTRACE_O_TRACEVFORK: c_int = 0x00000004; -pub const PTRACE_O_TRACECLONE: c_int = 0x00000008; -pub const PTRACE_O_TRACEEXEC: c_int = 0x00000010; -pub const PTRACE_O_TRACEVFORKDONE: c_int = 0x00000020; -pub const PTRACE_O_TRACEEXIT: c_int = 0x00000040; -pub const PTRACE_O_TRACESECCOMP: c_int = 0x00000080; -pub const PTRACE_O_SUSPEND_SECCOMP: c_int = 0x00200000; -pub const PTRACE_O_EXITKILL: c_int = 0x00100000; -pub const PTRACE_O_MASK: c_int = 0x003000ff; - -// Wait extended result codes for the above trace options. -pub const PTRACE_EVENT_FORK: c_int = 1; -pub const PTRACE_EVENT_VFORK: c_int = 2; -pub const PTRACE_EVENT_CLONE: c_int = 3; -pub const PTRACE_EVENT_EXEC: c_int = 4; -pub const PTRACE_EVENT_VFORK_DONE: c_int = 5; -pub const PTRACE_EVENT_EXIT: c_int = 6; -pub const PTRACE_EVENT_SECCOMP: c_int = 7; +cfg_if! { + if #[cfg(not(target_os = "l4re"))] { + // Options for personality(2). + pub const ADDR_NO_RANDOMIZE: c_int = 0x0040000; + pub const MMAP_PAGE_ZERO: c_int = 0x0100000; + pub const ADDR_COMPAT_LAYOUT: c_int = 0x0200000; + pub const READ_IMPLIES_EXEC: c_int = 0x0400000; + pub const ADDR_LIMIT_32BIT: c_int = 0x0800000; + pub const SHORT_INODE: c_int = 0x1000000; + pub const WHOLE_SECONDS: c_int = 0x2000000; + pub const STICKY_TIMEOUTS: c_int = 0x4000000; + pub const ADDR_LIMIT_3GB: c_int = 0x8000000; + + // Options set using PTRACE_SETOPTIONS. + pub const PTRACE_O_TRACESYSGOOD: c_int = 0x00000001; + pub const PTRACE_O_TRACEFORK: c_int = 0x00000002; + pub const PTRACE_O_TRACEVFORK: c_int = 0x00000004; + pub const PTRACE_O_TRACECLONE: c_int = 0x00000008; + pub const PTRACE_O_TRACEEXEC: c_int = 0x00000010; + pub const PTRACE_O_TRACEVFORKDONE: c_int = 0x00000020; + pub const PTRACE_O_TRACEEXIT: c_int = 0x00000040; + pub const PTRACE_O_TRACESECCOMP: c_int = 0x00000080; + pub const PTRACE_O_SUSPEND_SECCOMP: c_int = 0x00200000; + pub const PTRACE_O_EXITKILL: c_int = 0x00100000; + pub const PTRACE_O_MASK: c_int = 0x003000ff; + + // Wait extended result codes for the above trace options. + pub const PTRACE_EVENT_FORK: c_int = 1; + pub const PTRACE_EVENT_VFORK: c_int = 2; + pub const PTRACE_EVENT_CLONE: c_int = 3; + pub const PTRACE_EVENT_EXEC: c_int = 4; + pub const PTRACE_EVENT_VFORK_DONE: c_int = 5; + pub const PTRACE_EVENT_EXIT: c_int = 6; + pub const PTRACE_EVENT_SECCOMP: c_int = 7; + } +} pub const __WNOTHREAD: c_int = 0x20000000; pub const __WALL: c_int = 0x40000000; pub const __WCLONE: c_int = 0x80000000; -pub const SPLICE_F_MOVE: c_uint = 0x01; -pub const SPLICE_F_NONBLOCK: c_uint = 0x02; -pub const SPLICE_F_MORE: c_uint = 0x04; -pub const SPLICE_F_GIFT: c_uint = 0x08; +cfg_if! { + if #[cfg(not(target_env = "uclibc"))] { + pub const SPLICE_F_MOVE: c_uint = 0x01; + pub const SPLICE_F_NONBLOCK: c_uint = 0x02; + pub const SPLICE_F_MORE: c_uint = 0x04; + pub const SPLICE_F_GIFT: c_uint = 0x08; + } +} pub const RTLD_LOCAL: c_int = 0; pub const RTLD_LAZY: c_int = 1; @@ -1169,6 +1200,7 @@ pub const LOG_AUTHPRIV: c_int = 10 << 3; pub const LOG_FTP: c_int = 11 << 3; pub const LOG_PERROR: c_int = 0x20; +#[cfg(not(target_os = "l4re"))] pub const PIPE_BUF: usize = 4096; pub const SI_LOAD_SHIFT: c_uint = 16; @@ -1201,14 +1233,19 @@ pub const BUS_ADRALN: c_int = 1; pub const BUS_ADRERR: c_int = 2; pub const BUS_OBJERR: c_int = 3; // Linux-specific si_code values for SIGBUS signal +#[cfg(not(target_os = "l4re"))] pub const BUS_MCEERR_AR: c_int = 4; +#[cfg(not(target_os = "l4re"))] pub const BUS_MCEERR_AO: c_int = 5; // si_code values for SIGTRAP pub const TRAP_BRKPT: c_int = 1; pub const TRAP_TRACE: c_int = 2; +#[cfg(not(target_os = "l4re"))] pub const TRAP_BRANCH: c_int = 3; +#[cfg(not(target_os = "l4re"))] pub const TRAP_HWBKPT: c_int = 4; +#[cfg(not(target_os = "l4re"))] pub const TRAP_UNK: c_int = 5; // si_code values for SIGCHLD signal @@ -1371,7 +1408,7 @@ pub const ARPHRD_VOID: u16 = 0xFFFF; pub const ARPHRD_NONE: u16 = 0xFFFE; cfg_if! { - if #[cfg(not(target_os = "emscripten"))] { + if #[cfg(not(any(target_os = "emscripten", target_os = "l4re")))] { // linux/if_tun.h /* TUNSETIFF ifr flags */ pub const IFF_TUN: c_int = 0x0001; @@ -1458,7 +1495,7 @@ cfg_if! { } cfg_if! { - if #[cfg(target_os = "emscripten")] { + if #[cfg(any(target_os = "emscripten", target_os = "l4re"))] { // Emscripten does not define any `*_SUPER_MAGIC` constants. } else if #[cfg(not(target_arch = "s390x"))] { pub const ADFS_SUPER_MAGIC: c_long = 0x0000adf5; @@ -1575,7 +1612,8 @@ cfg_if! { if #[cfg(any( target_env = "gnu", target_os = "android", - all(target_env = "musl", musl_v1_2_3) + all(target_env = "musl", musl_v1_2_3), + target_os = "l4re" ))] { pub const AT_STATX_SYNC_TYPE: c_int = 0x6000; pub const AT_STATX_SYNC_AS_STAT: c_int = 0x0000; @@ -1831,6 +1869,7 @@ extern "C" { pub fn sem_destroy(sem: *mut sem_t) -> c_int; pub fn sem_init(sem: *mut sem_t, pshared: c_int, value: c_uint) -> c_int; pub fn fdatasync(fd: c_int) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn mincore(addr: *mut c_void, len: size_t, vec: *mut c_uchar) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__clock_getres64")] @@ -1839,12 +1878,14 @@ extern "C" { pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__clock_settime64")] pub fn clock_settime(clk_id: crate::clockid_t, tp: *const crate::timespec) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn clock_getcpuclockid(pid: crate::pid_t, clk_id: *mut crate::clockid_t) -> c_int; pub fn dirfd(dirp: *mut crate::DIR) -> c_int; pub fn memalign(align: size_t, size: size_t) -> *mut c_void; pub fn setgroups(ngroups: size_t, ptr: *const crate::gid_t) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn pipe2(fds: *mut c_int, flags: c_int) -> c_int; #[cfg_attr(gnu_file_offset_bits64, link_name = "statfs64")] pub fn statfs(path: *const c_char, buf: *mut statfs) -> c_int; @@ -1854,6 +1895,7 @@ extern "C" { #[cfg_attr(gnu_file_offset_bits64, link_name = "posix_fadvise64")] pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advise: c_int) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__futimens64")] + #[cfg(not(target_os = "l4re"))] pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__utimensat64")] pub fn utimensat( @@ -1862,58 +1904,74 @@ extern "C" { times: *const crate::timespec, flag: c_int, ) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn duplocale(base: crate::locale_t) -> crate::locale_t; pub fn freelocale(loc: crate::locale_t); pub fn newlocale(mask: c_int, locale: *const c_char, base: crate::locale_t) -> crate::locale_t; pub fn uselocale(loc: crate::locale_t) -> crate::locale_t; + #[cfg(not(target_os = "l4re"))] pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, dev: dev_t) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn ptsname_r(fd: c_int, buf: *mut c_char, buflen: size_t) -> c_int; pub fn clearenv() -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn waitid( idtype: idtype_t, id: id_t, infop: *mut crate::siginfo_t, options: c_int, ) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn getresuid( ruid: *mut crate::uid_t, euid: *mut crate::uid_t, suid: *mut crate::uid_t, ) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn getresgid( rgid: *mut crate::gid_t, egid: *mut crate::gid_t, sgid: *mut crate::gid_t, ) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn acct(filename: *const c_char) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn brk(addr: *mut c_void) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn sbrk(increment: intptr_t) -> *mut c_void; #[deprecated( since = "0.2.66", note = "causes memory corruption, see rust-lang/libc#1596" )] pub fn vfork() -> crate::pid_t; + #[cfg(not(target_os = "l4re"))] pub fn setresgid(rgid: crate::gid_t, egid: crate::gid_t, sgid: crate::gid_t) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn setresuid(ruid: crate::uid_t, euid: crate::uid_t, suid: crate::uid_t) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__wait4_time64")] + #[cfg(not(target_os = "l4re"))] pub fn wait4( pid: crate::pid_t, status: *mut c_int, options: c_int, rusage: *mut crate::rusage, ) -> crate::pid_t; + #[cfg(not(target_os = "l4re"))] pub fn login_tty(fd: c_int) -> c_int; // DIFF(main): changed to `*const *mut` in e77f551de9 + #[cfg(not(target_os = "l4re"))] pub fn execvpe( file: *const c_char, argv: *const *const c_char, envp: *const *const c_char, ) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn fexecve(fd: c_int, argv: *const *const c_char, envp: *const *const c_char) -> c_int; - + #[cfg(not(target_os = "l4re"))] pub fn getifaddrs(ifap: *mut *mut crate::ifaddrs) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn freeifaddrs(ifa: *mut crate::ifaddrs); pub fn bind( socket: c_int, @@ -1950,9 +2008,12 @@ extern "C" { #[cfg_attr(gnu_file_offset_bits64, link_name = "mkostemp64")] pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int; #[cfg_attr(gnu_file_offset_bits64, link_name = "mkostemps64")] + #[cfg(not(target_os = "l4re"))] pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn getdomainname(name: *mut c_char, len: size_t) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn setdomainname(name: *const c_char, len: size_t) -> c_int; } @@ -1975,6 +2036,7 @@ cfg_if! { #[cfg_attr(gnu_time_bits64, link_name = "__fstat64_time64")] pub fn fstat64(fildes: c_int, buf: *mut stat64) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__fstatat64_time64")] + #[cfg(not(target_os = "l4re"))] pub fn fstatat64( dirfd: c_int, pathname: *const c_char, @@ -1984,6 +2046,7 @@ cfg_if! { pub fn ftruncate64(fd: c_int, length: off64_t) -> c_int; pub fn lseek64(fd: c_int, offset: off64_t, whence: c_int) -> off64_t; #[cfg_attr(gnu_time_bits64, link_name = "__lstat64_time64")] + #[cfg(not(target_os = "l4re"))] pub fn lstat64(path: *const c_char, buf: *mut stat64) -> c_int; pub fn mmap64( addr: *mut c_void, @@ -2015,6 +2078,7 @@ cfg_if! { result: *mut *mut crate::dirent64, ) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__stat64_time64")] + #[cfg(not(target_os = "l4re"))] pub fn stat64(path: *const c_char, buf: *mut stat64) -> c_int; pub fn truncate64(path: *const c_char, length: off64_t) -> c_int; } @@ -2093,9 +2157,13 @@ cfg_if! { } else if #[cfg(target_os = "linux")] { mod linux; pub use self::linux::*; + mod linux_l4re_shared; + pub use self::linux_l4re_shared::*; } else if #[cfg(target_os = "l4re")] { - mod linux; - pub use self::linux::*; + mod l4re; + pub use self::l4re::*; + mod linux_l4re_shared; + pub use self::linux_l4re_shared::*; } else if #[cfg(target_os = "android")] { mod android; pub use self::android::*; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 62b2cdee67f19..1c4033da3d339 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -245,7 +245,7 @@ cfg_if! { } cfg_if! { - if #[cfg(not(target_os = "nto"))] { + if #[cfg(not(any(target_os = "nto", target_os = "l4re")))] { pub const USRQUOTA: c_int = 0; pub const GRPQUOTA: c_int = 1; } @@ -973,6 +973,7 @@ extern "C" { pub fn fchmodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, flags: c_int) -> c_int; pub fn fchown(fd: c_int, owner: crate::uid_t, group: crate::gid_t) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn fchownat( dirfd: c_int, pathname: *const c_char, @@ -993,7 +994,9 @@ extern "C" { all(not(gnu_time_bits64), gnu_file_offset_bits64), link_name = "fstatat64" )] + #[cfg(not(target_os = "l4re"))] pub fn fstatat(dirfd: c_int, pathname: *const c_char, buf: *mut stat, flags: c_int) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn linkat( olddirfd: c_int, oldpath: *const c_char, @@ -1001,13 +1004,16 @@ extern "C" { newpath: *const c_char, flags: c_int, ) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn renameat( olddirfd: c_int, oldpath: *const c_char, newdirfd: c_int, newpath: *const c_char, ) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn symlinkat(target: *const c_char, newdirfd: c_int, linkpath: *const c_char) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn unlinkat(dirfd: c_int, pathname: *const c_char, flags: c_int) -> c_int; pub fn access(path: *const c_char, amode: c_int) -> c_int; @@ -1425,6 +1431,7 @@ extern "C" { link_name = "res_9_init" )] #[cfg_attr(target_os = "aix", link_name = "_res_init")] + #[cfg(not(target_os = "l4re"))] pub fn res_init() -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__gmtime_r50")] @@ -1611,9 +1618,13 @@ extern "C" { )] pub fn nice(incr: c_int) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn grantpt(fd: c_int) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn posix_openpt(flags: c_int) -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn ptsname(fd: c_int) -> *mut c_char; + #[cfg(not(target_os = "l4re"))] pub fn unlockpt(fd: c_int) -> c_int; #[cfg(not(target_os = "aix"))] @@ -1651,6 +1662,7 @@ cfg_if! { target_os = "solaris", target_os = "cygwin", target_os = "aix", + target_os = "l4re", )))] { extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__adjtime50")] @@ -1683,6 +1695,7 @@ cfg_if! { target_os = "hurd", target_os = "macos", target_os = "openbsd", + target_os = "l4re", )))] { extern "C" { pub fn sigqueue(pid: pid_t, sig: c_int, value: crate::sigval) -> c_int; @@ -1737,6 +1750,7 @@ cfg_if! { )] pub fn pause() -> c_int; + #[cfg(not(target_os = "l4re"))] pub fn mkdirat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; #[cfg_attr(gnu_file_offset_bits64, link_name = "openat64")] pub fn openat(dirfd: c_int, pathname: *const c_char, flags: c_int, ...) -> c_int; @@ -1804,13 +1818,16 @@ cfg_if! { } } else { extern "C" { + #[cfg(not(target_os = "l4re"))] pub fn readlinkat( dirfd: c_int, pathname: *const c_char, buf: *mut c_char, bufsiz: size_t, ) -> ssize_t; + #[cfg(not(target_os = "l4re"))] pub fn fmemopen(buf: *mut c_void, size: size_t, mode: *const c_char) -> *mut FILE; + #[cfg(not(target_os = "l4re"))] pub fn open_memstream(ptr: *mut *mut c_char, sizeloc: *mut size_t) -> *mut FILE; pub fn atexit(cb: extern "C" fn()) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__sigaction14")] @@ -1865,6 +1882,7 @@ cfg_if! { target_os = "nto" )))] { extern "C" { + #[cfg(not(target_os = "l4re"))] pub fn cfsetspeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; } } From 214a161e38c212d64ef3bab15e9a6a5f2fd6cfa7 Mon Sep 17 00:00:00 2001 From: Marius Melzer Date: Wed, 19 Nov 2025 15:38:15 +0100 Subject: [PATCH 1060/1228] Add uclibc aarch64 support for L4Re (backport ) (cherry picked from commit 980c9230631ce75f90812a0432609c3d2d0974db) --- .../linux_like/l4re/uclibc/aarch64/mod.rs | 414 ++++++++++++++++++ src/unix/linux_like/l4re/uclibc/mod.rs | 3 + 2 files changed, 417 insertions(+) create mode 100644 src/unix/linux_like/l4re/uclibc/aarch64/mod.rs diff --git a/src/unix/linux_like/l4re/uclibc/aarch64/mod.rs b/src/unix/linux_like/l4re/uclibc/aarch64/mod.rs new file mode 100644 index 0000000000000..3a471700f6437 --- /dev/null +++ b/src/unix/linux_like/l4re/uclibc/aarch64/mod.rs @@ -0,0 +1,414 @@ +use crate::prelude::*; + +pub type wchar_t = c_uint; +pub type time_t = c_long; + +pub type clock_t = c_long; +pub type fsblkcnt_t = c_ulong; +pub type fsfilcnt_t = c_ulong; +pub type ino_t = c_ulong; +pub type nlink_t = c_ulong; +pub type off_t = c_long; +pub type fsword_t = c_long; +pub type suseconds_t = c_long; + +pub type blksize_t = c_long; +pub type blkcnt_t = c_long; + +pub type fsblkcnt64_t = c_ulong; +pub type fsfilcnt64_t = c_ulong; +pub type __u64 = c_ulong; + +s! { + pub struct stat { + pub st_dev: c_ulong, + pub __pad1: c_ushort, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: c_ulong, + pub __pad2: c_ushort, + pub st_size: crate::off64_t, + pub st_blksize: blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atim: crate::timespec, + pub st_mtim: crate::timespec, + pub st_ctim: crate::timespec, + pub __uclibc_unused4: c_ulong, + pub __uclibc_unused5: c_ulong, + } + + pub struct stat64 { + pub st_dev: c_ulong, + pub __pad1: c_uint, + pub __st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: c_ulong, + pub __pad2: c_uint, + pub st_size: crate::off64_t, + pub st_blksize: blksize_t, + pub st_blocks: crate::blkcnt64_t, + pub st_atim: crate::timespec, + pub st_mtim: crate::timespec, + pub st_ctim: crate::timespec, + pub st_ino: crate::ino64_t, + } + + pub struct shmid_ds { + pub shm_perm: crate::ipc_perm, + pub shm_segsz: crate::size_t, + pub shm_atime: crate::time_t, + __unused1: c_ulong, + pub shm_dtime: crate::time_t, + __unused2: c_ulong, + pub shm_ctime: crate::time_t, + __unused3: c_ulong, + pub shm_cpid: crate::pid_t, + pub shm_lpid: crate::pid_t, + pub shm_nattch: crate::shmatt_t, + __unused4: c_ulong, + __unused5: c_ulong, + } + + #[allow(unpredictable_function_pointer_comparisons)] + pub struct sigaction { + pub sa_handler: crate::sighandler_t, + pub sa_flags: c_ulong, + pub sa_restorer: Option, + pub sa_mask: sigset_t, + } + + pub struct sigset_t { + __val: [c_ulong; 1], + } + + #[repr(align(8))] + pub struct siginfo_t { + pub si_signo: c_int, + pub si_errno: c_int, + pub si_code: c_int, + pub _pad: [c_int; 28], + } + + pub struct stack_t { + pub ss_sp: *mut c_void, + pub ss_flags: c_int, + pub ss_size: crate::size_t, + } + + pub struct flock { + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: crate::pid_t, + } + + pub struct termios { + pub c_iflag: crate::tcflag_t, + pub c_oflag: crate::tcflag_t, + pub c_cflag: crate::tcflag_t, + pub c_lflag: crate::tcflag_t, + pub c_line: crate::cc_t, + pub c_cc: [crate::cc_t; crate::NCCS], + pub c_ispeed: crate::speed_t, + pub c_ospeed: crate::speed_t, + } +} + +s_no_extra_traits! { + pub union sem_t { + __size: [c_char; 32], + __align: c_longlong, + } +} + +pub const O_CLOEXEC: c_int = 0o2000000; +pub const __SIZEOF_PTHREAD_ATTR_T: usize = 36; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_COND_T: usize = 48; +pub const __SIZEOF_PTHREAD_COND_COMPAT_T: usize = 12; +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; + +pub const NCCS: usize = 32; + +pub const FIOQSIZE: crate::Ioctl = 0x545E; + +// I wasn't able to find those constants +// in uclibc build environment for armv7 +pub const MAP_HUGETLB: c_int = 0x040000; // from linux/other/mod.rs + +// autogenerated constants with hand tuned types +pub const B0: crate::speed_t = 0; +pub const B1000000: crate::speed_t = 0x1008; +pub const B110: crate::speed_t = 0x3; +pub const B115200: crate::speed_t = 0x1002; +pub const B1152000: crate::speed_t = 0x1009; +pub const B1200: crate::speed_t = 0x9; +pub const B134: crate::speed_t = 0x4; +pub const B150: crate::speed_t = 0x5; +pub const B1500000: crate::speed_t = 0x100a; +pub const B1800: crate::speed_t = 0xa; +pub const B19200: crate::speed_t = 0xe; +pub const B200: crate::speed_t = 0x6; +pub const B2000000: crate::speed_t = 0x100b; +pub const B230400: crate::speed_t = 0x1003; +pub const B2400: crate::speed_t = 0xb; +pub const B2500000: crate::speed_t = 0x100c; +pub const B300: crate::speed_t = 0x7; +pub const B3000000: crate::speed_t = 0x100d; +pub const B3500000: crate::speed_t = 0x100e; +pub const B38400: crate::speed_t = 0xf; +pub const B4000000: crate::speed_t = 0x100f; +pub const B460800: crate::speed_t = 0x1004; +pub const B4800: crate::speed_t = 0xc; +pub const B50: crate::speed_t = 0x1; +pub const B500000: crate::speed_t = 0x1005; +pub const B57600: crate::speed_t = 0x1001; +pub const B576000: crate::speed_t = 0x1006; +pub const B600: crate::speed_t = 0x8; +pub const B75: crate::speed_t = 0x2; +pub const B921600: crate::speed_t = 0x1007; +pub const B9600: crate::speed_t = 0xd; +pub const BS1: c_int = 0x2000; +pub const BSDLY: c_int = 0x2000; +pub const CBAUD: crate::tcflag_t = 0x100f; +pub const CBAUDEX: crate::tcflag_t = 0x1000; +pub const CIBAUD: crate::tcflag_t = 0x100f0000; +pub const CLOCAL: crate::tcflag_t = 0x800; +pub const CPU_SETSIZE: c_int = 0x400; +pub const CR1: c_int = 0x200; +pub const CR2: c_int = 0x400; +pub const CR3: c_int = 0x600; +pub const CRDLY: c_int = 0x600; +pub const CREAD: crate::tcflag_t = 0x80; +pub const CS6: crate::tcflag_t = 0x10; +pub const CS7: crate::tcflag_t = 0x20; +pub const CS8: crate::tcflag_t = 0x30; +pub const CSIZE: crate::tcflag_t = 0x30; +pub const CSTOPB: crate::tcflag_t = 0x40; +pub const EADDRINUSE: c_int = 0x62; +pub const EADDRNOTAVAIL: c_int = 0x63; +pub const EADV: c_int = 0x44; +pub const EAFNOSUPPORT: c_int = 0x61; +pub const EALREADY: c_int = 0x72; +pub const EBADE: c_int = 0x34; +pub const EBADFD: c_int = 0x4d; +pub const EBADMSG: c_int = 0x4a; +pub const EBADR: c_int = 0x35; +pub const EBADRQC: c_int = 0x38; +pub const EBADSLT: c_int = 0x39; +pub const EBFONT: c_int = 0x3b; +pub const ECANCELED: c_int = 0x7d; +pub const ECHOCTL: crate::tcflag_t = 0x200; +pub const ECHOE: crate::tcflag_t = 0x10; +pub const ECHOK: crate::tcflag_t = 0x20; +pub const ECHOKE: crate::tcflag_t = 0x800; +pub const ECHONL: crate::tcflag_t = 0x40; +pub const ECHOPRT: crate::tcflag_t = 0x400; +pub const ECHRNG: c_int = 0x2c; +pub const ECOMM: c_int = 0x46; +pub const ECONNABORTED: c_int = 0x67; +pub const ECONNREFUSED: c_int = 0x6f; +pub const ECONNRESET: c_int = 0x68; +pub const EDESTADDRREQ: c_int = 0x59; +pub const EDOTDOT: c_int = 0x49; +pub const EDQUOT: c_int = 0x7a; +pub const EHOSTDOWN: c_int = 0x70; +pub const EHOSTUNREACH: c_int = 0x71; +pub const EIDRM: c_int = 0x2b; +pub const EILSEQ: c_int = 0x54; +pub const EINPROGRESS: c_int = 0x73; +pub const EISCONN: c_int = 0x6a; +pub const EISNAM: c_int = 0x78; +pub const EKEYEXPIRED: c_int = 0x7f; +pub const EKEYREJECTED: c_int = 0x81; +pub const EKEYREVOKED: c_int = 0x80; +pub const EL2HLT: c_int = 0x33; +pub const EL2NSYNC: c_int = 0x2d; +pub const EL3HLT: c_int = 0x2e; +pub const EL3RST: c_int = 0x2f; +pub const ELIBACC: c_int = 0x4f; +pub const ELIBBAD: c_int = 0x50; +pub const ELIBEXEC: c_int = 0x53; +pub const ELIBMAX: c_int = 0x52; +pub const ELIBSCN: c_int = 0x51; +pub const ELNRNG: c_int = 0x30; +pub const ELOOP: c_int = 0x28; +pub const EMEDIUMTYPE: c_int = 0x7c; +pub const EMSGSIZE: c_int = 0x5a; +pub const EMULTIHOP: c_int = 0x48; +pub const ENAMETOOLONG: c_int = 0x24; +pub const ENAVAIL: c_int = 0x77; +pub const ENETDOWN: c_int = 0x64; +pub const ENETRESET: c_int = 0x66; +pub const ENETUNREACH: c_int = 0x65; +pub const ENOANO: c_int = 0x37; +pub const ENOBUFS: c_int = 0x69; +pub const ENOCSI: c_int = 0x32; +pub const ENODATA: c_int = 0x3d; +pub const ENOKEY: c_int = 0x7e; +pub const ENOLCK: c_int = 0x25; +pub const ENOLINK: c_int = 0x43; +pub const ENOMEDIUM: c_int = 0x7b; +pub const ENOMSG: c_int = 0x2a; +pub const ENONET: c_int = 0x40; +pub const ENOPKG: c_int = 0x41; +pub const ENOPROTOOPT: c_int = 0x5c; +pub const ENOSR: c_int = 0x3f; +pub const ENOSTR: c_int = 0x3c; +pub const ENOSYS: c_int = 0x26; +pub const ENOTCONN: c_int = 0x6b; +pub const ENOTEMPTY: c_int = 0x27; +pub const ENOTNAM: c_int = 0x76; +pub const ENOTRECOVERABLE: c_int = 0x83; +pub const ENOTSOCK: c_int = 0x58; +pub const ENOTUNIQ: c_int = 0x4c; +pub const EOPNOTSUPP: c_int = 0x5f; +pub const EOVERFLOW: c_int = 0x4b; +pub const EOWNERDEAD: c_int = 0x82; +pub const EPFNOSUPPORT: c_int = 0x60; +pub const EPOLL_CLOEXEC: c_int = 0x80000; +pub const EPROTO: c_int = 0x47; +pub const EPROTONOSUPPORT: c_int = 0x5d; +pub const EPROTOTYPE: c_int = 0x5b; +pub const EREMCHG: c_int = 0x4e; +pub const EREMOTE: c_int = 0x42; +pub const EREMOTEIO: c_int = 0x79; +pub const ERESTART: c_int = 0x55; +pub const ESHUTDOWN: c_int = 0x6c; +pub const ESOCKTNOSUPPORT: c_int = 0x5e; +pub const ESRMNT: c_int = 0x45; +pub const ESTALE: c_int = 0x74; +pub const ESTRPIPE: c_int = 0x56; +pub const ETIME: c_int = 0x3e; +pub const ETIMEDOUT: c_int = 0x6e; +pub const ETOOMANYREFS: c_int = 0x6d; +pub const EUCLEAN: c_int = 0x75; +pub const EUNATCH: c_int = 0x31; +pub const EUSERS: c_int = 0x57; +pub const EXFULL: c_int = 0x36; +pub const FF1: c_int = 0x8000; +pub const FFDLY: c_int = 0x8000; +pub const FLUSHO: crate::tcflag_t = 0x1000; +pub const F_GETLK: c_int = 0x5; +pub const F_SETLK: c_int = 0x6; +pub const F_SETLKW: c_int = 0x7; +pub const HUPCL: crate::tcflag_t = 0x400; +pub const ICANON: crate::tcflag_t = 0x2; +pub const IEXTEN: crate::tcflag_t = 0x8000; +pub const ISIG: crate::tcflag_t = 0x1; +pub const IXOFF: crate::tcflag_t = 0x1000; +pub const IXON: crate::tcflag_t = 0x400; +pub const MAP_ANON: c_int = 0x20; +pub const MAP_ANONYMOUS: c_int = 0x20; +pub const MAP_DENYWRITE: c_int = 0x800; +pub const MAP_EXECUTABLE: c_int = 0x1000; +pub const MAP_GROWSDOWN: c_int = 0x100; +pub const MAP_LOCKED: c_int = 0x2000; +pub const MAP_NONBLOCK: c_int = 0x10000; +pub const MAP_NORESERVE: c_int = 0x4000; +pub const MAP_POPULATE: c_int = 0x8000; +pub const MAP_STACK: c_int = 0x20000; +pub const MINSIGSTKSZ: c_int = 5120; +pub const NLDLY: crate::tcflag_t = 0x100; +pub const NOFLSH: crate::tcflag_t = 0x80; +pub const OLCUC: crate::tcflag_t = 0x2; +pub const ONLCR: crate::tcflag_t = 0x4; +pub const O_ACCMODE: c_int = 0x3; +pub const O_APPEND: c_int = 0x400; +pub const O_ASYNC: c_int = 0o20000; +pub const O_CREAT: c_int = 0x40; +pub const O_DIRECT: c_int = 0x10000; +pub const O_DIRECTORY: c_int = 0x4000; +pub const O_DSYNC: c_int = O_SYNC; +pub const O_EXCL: c_int = 0x80; +pub const O_FSYNC: c_int = O_SYNC; +pub const O_LARGEFILE: c_int = 0o400000; +pub const O_NDELAY: c_int = O_NONBLOCK; +pub const O_NOATIME: c_int = 0o1000000; +pub const O_NOCTTY: c_int = 0x100; +pub const O_NOFOLLOW: c_int = 0x8000; +pub const O_NONBLOCK: c_int = 0x800; +pub const O_PATH: c_int = 0o10000000; +pub const O_RSYNC: c_int = O_SYNC; +pub const O_SYNC: c_int = 0o10000; +pub const O_TRUNC: c_int = 0x200; +pub const PARENB: crate::tcflag_t = 0x100; +pub const PARODD: crate::tcflag_t = 0x200; +pub const PENDIN: crate::tcflag_t = 0x4000; +pub const POLLWRBAND: c_short = 0x200; +pub const POLLWRNORM: c_short = 0x100; +pub const RTLD_GLOBAL: c_int = 0x00100; + +// These are typed unsigned to match sigaction +pub const SA_NOCLDSTOP: c_ulong = 0x1; +pub const SA_NOCLDWAIT: c_ulong = 0x2; +pub const SA_SIGINFO: c_ulong = 0x4; +pub const SA_NODEFER: c_ulong = 0x40000000; +pub const SA_ONSTACK: c_ulong = 0x8000000; +pub const SA_RESETHAND: c_ulong = 0x80000000; +pub const SA_RESTART: c_ulong = 0x10000000; + +pub const SIGBUS: c_int = 0x7; +pub const SIGCHLD: c_int = 0x11; +pub const SIGCONT: c_int = 0x12; +pub const SIGIO: c_int = 0x1d; +pub const SIGPOLL: c_int = SIGIO; +pub const SIGPROF: c_int = 0x1b; +pub const SIGPWR: c_int = 0x1e; +pub const SIGSTKFLT: c_int = 0x10; +pub const SIGSTKSZ: c_int = 16384; +pub const SIGSTOP: c_int = 0x13; +pub const SIGSYS: c_int = 0x1f; +pub const SIGTSTP: c_int = 0x14; +pub const SIGTTIN: c_int = 0x15; +pub const SIGTTOU: c_int = 0x16; +pub const SIGURG: c_int = 0x17; +pub const SIGUSR1: c_int = 0xa; +pub const SIGUSR2: c_int = 0xc; +pub const SIGVTALRM: c_int = 0x1a; +pub const SIGWINCH: c_int = 0x1c; +pub const SIGXCPU: c_int = 0x18; +pub const SIGXFSZ: c_int = 0x19; +pub const SIG_BLOCK: c_int = 0; +pub const SIG_UNBLOCK: c_int = 0x1; +pub const SIG_SETMASK: c_int = 0x2; +pub const SOCK_DGRAM: c_int = 0x2; +pub const SOCK_NONBLOCK: c_int = 0o0004000; +pub const SOCK_SEQPACKET: c_int = 0x5; +pub const SOCK_STREAM: c_int = 0x1; + +pub const TAB1: c_int = 0x800; +pub const TAB2: c_int = 0x1000; +pub const TAB3: c_int = 0x1800; +pub const TABDLY: c_int = 0x1800; +pub const TCSADRAIN: c_int = 0x1; +pub const TCSAFLUSH: c_int = 0x2; +pub const TCSANOW: c_int = 0; +pub const TOSTOP: crate::tcflag_t = 0x100; +pub const VDISCARD: usize = 0xd; +pub const VEOF: usize = 0x4; +pub const VEOL: usize = 0xb; +pub const VEOL2: usize = 0x10; +pub const VMIN: usize = 0x6; +pub const VREPRINT: usize = 0xc; +pub const VSTART: usize = 0x8; +pub const VSTOP: usize = 0x9; +pub const VSUSP: usize = 0xa; +pub const VSWTC: usize = 0x7; +pub const VT1: c_int = 0x4000; +pub const VTDLY: c_int = 0x4000; +pub const VTIME: usize = 0x5; +pub const VWERASE: usize = 0xe; +pub const XTABS: crate::tcflag_t = 0x1800; diff --git a/src/unix/linux_like/l4re/uclibc/mod.rs b/src/unix/linux_like/l4re/uclibc/mod.rs index 2098a847284aa..851a92cdfe4e7 100644 --- a/src/unix/linux_like/l4re/uclibc/mod.rs +++ b/src/unix/linux_like/l4re/uclibc/mod.rs @@ -529,6 +529,9 @@ cfg_if! { if #[cfg(target_arch = "x86_64")] { mod x86_64; pub use self::x86_64::*; + } else if #[cfg(target_arch = "aarch64")] { + mod aarch64; + pub use self::aarch64::*; } else { // unsupported target } From fc22ae55390cbbec224adbe64ac6e77b5a6f0361 Mon Sep 17 00:00:00 2001 From: Marius Melzer Date: Thu, 20 Nov 2025 10:08:59 +0100 Subject: [PATCH 1061/1228] l4re: pthread fixes in new (backport ) (cherry picked from commit c827adff74ff30842eb39338986f14b49d0f911f) --- src/new/common/linux_like/pthread.rs | 4 ++-- src/new/common/posix/pthread.rs | 14 ++------------ src/new/uclibc/pthread.rs | 12 +++++++----- 3 files changed, 11 insertions(+), 19 deletions(-) diff --git a/src/new/common/linux_like/pthread.rs b/src/new/common/linux_like/pthread.rs index 165f3254e79da..b54d385f9c05f 100644 --- a/src/new/common/linux_like/pthread.rs +++ b/src/new/common/linux_like/pthread.rs @@ -1,7 +1,7 @@ use crate::prelude::*; extern "C" { - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "linux", target_os = "l4re"))] pub fn pthread_getaffinity_np( thread: crate::pthread_t, cpusetsize: size_t, @@ -13,7 +13,7 @@ extern "C" { #[cfg(target_os = "linux")] pub fn pthread_getname_np(thread: crate::pthread_t, name: *mut c_char, len: size_t) -> c_int; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "linux", target_os = "l4re"))] pub fn pthread_setaffinity_np( thread: crate::pthread_t, cpusetsize: size_t, diff --git a/src/new/common/posix/pthread.rs b/src/new/common/posix/pthread.rs index 8cff48c601fb8..50c6f98131294 100644 --- a/src/new/common/posix/pthread.rs +++ b/src/new/common/posix/pthread.rs @@ -122,12 +122,7 @@ extern "C" { #[cfg(any(target_os = "l4re", all(target_os = "linux", not(target_env = "ohos"))))] pub fn pthread_cancel(thread: crate::pthread_t) -> c_int; - #[cfg(any( - target_os = "android", - target_os = "emscripten", - target_os = "linux", - target_os = "l4re", - ))] + #[cfg(any(target_os = "android", target_os = "emscripten", target_os = "linux",))] pub fn pthread_condattr_getclock( attr: *const crate::pthread_condattr_t, clock_id: *mut crate::clockid_t, @@ -144,12 +139,7 @@ extern "C" { pshared: *mut c_int, ) -> c_int; - #[cfg(any( - target_os = "android", - target_os = "emscripten", - target_os = "linux", - target_os = "l4re", - ))] + #[cfg(any(target_os = "android", target_os = "emscripten", target_os = "linux",))] pub fn pthread_condattr_setclock( attr: *mut crate::pthread_condattr_t, clock_id: crate::clockid_t, diff --git a/src/new/uclibc/pthread.rs b/src/new/uclibc/pthread.rs index bd7075d1ce2ef..c0f1731f15347 100644 --- a/src/new/uclibc/pthread.rs +++ b/src/new/uclibc/pthread.rs @@ -3,18 +3,22 @@ //! Note that The l4re port of uclibc doesn't yet support all `pthread_*` API that is //! available upstream. -pub use crate::new::common::linux_like::pthread::pthread_getattr_np; -#[cfg(not(target_os = "l4re"))] pub use crate::new::common::linux_like::pthread::{ pthread_getaffinity_np, - pthread_getname_np, + pthread_getattr_np, pthread_setaffinity_np, +}; +#[cfg(not(target_os = "l4re"))] +pub use crate::new::common::linux_like::pthread::{ + pthread_getname_np, pthread_setname_np, }; #[cfg(not(target_os = "l4re"))] pub use crate::new::common::posix::pthread::{ pthread_atfork, pthread_barrierattr_getpshared, + pthread_condattr_getclock, + pthread_condattr_setclock, pthread_getcpuclockid, pthread_mutex_consistent, pthread_mutexattr_getprotocol, @@ -41,9 +45,7 @@ pub use crate::new::common::posix::pthread::{ pthread_barrierattr_init, pthread_barrierattr_setpshared, pthread_cancel, - pthread_condattr_getclock, pthread_condattr_getpshared, - pthread_condattr_setclock, pthread_condattr_setpshared, pthread_create, pthread_getschedparam, From 36ba84ed1f5ac0c2843f5b1a8e05f3e75856b471 Mon Sep 17 00:00:00 2001 From: Marius Melzer Date: Thu, 20 Nov 2025 13:00:36 +0100 Subject: [PATCH 1062/1228] linux_like: communize some structs (backport ) (cherry picked from commit 1034d7076bdc5ca3f6586ef9f1896eb40f68f505) --- src/unix/linux_like/android/mod.rs | 23 ----------------------- src/unix/linux_like/emscripten/mod.rs | 23 ----------------------- src/unix/linux_like/linux/gnu/mod.rs | 1 - src/unix/linux_like/linux/mod.rs | 19 ------------------- src/unix/linux_like/linux/musl/mod.rs | 2 -- src/unix/linux_like/linux/uclibc/mod.rs | 1 - src/unix/linux_like/linux_l4re_shared.rs | 1 + src/unix/linux_like/mod.rs | 24 ++++++++++++++++++++++++ 8 files changed, 25 insertions(+), 69 deletions(-) diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 967f8e7bc9970..3ae28aca55c0a 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -22,7 +22,6 @@ pub type off_t = c_long; pub type blkcnt_t = c_ulong; pub type blksize_t = c_ulong; pub type nlink_t = u32; -pub type useconds_t = u32; pub type pthread_t = c_long; pub type pthread_mutexattr_t = c_long; pub type pthread_rwlockattr_t = c_long; @@ -496,11 +495,6 @@ s! { pub ifr6_ifindex: c_int, } - pub struct if_nameindex { - pub if_index: c_uint, - pub if_name: *mut c_char, - } - pub struct sockaddr_nl { pub nl_family: crate::sa_family_t, nl_pad: Padding, @@ -3640,20 +3634,6 @@ extern "C" { pub fn getgrnam(name: *const c_char) -> *mut crate::group; pub fn sem_unlink(name: *const c_char) -> c_int; pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int; - pub fn getpwnam_r( - name: *const c_char, - pwd: *mut passwd, - buf: *mut c_char, - buflen: size_t, - result: *mut *mut passwd, - ) -> c_int; - pub fn getpwuid_r( - uid: crate::uid_t, - pwd: *mut passwd, - buf: *mut c_char, - buflen: size_t, - result: *mut *mut passwd, - ) -> c_int; pub fn sigtimedwait( set: *const sigset_t, info: *mut siginfo_t, @@ -3773,9 +3753,6 @@ extern "C" { newpath: *const c_char, flags: c_uint, ) -> c_int; - - pub fn if_nameindex() -> *mut if_nameindex; - pub fn if_freenameindex(ptr: *mut if_nameindex); } cfg_if! { diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 59afc245eec54..35d7001ff5f59 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -1,7 +1,6 @@ use crate::prelude::*; pub type wchar_t = i32; -pub type useconds_t = u32; pub type dev_t = u32; pub type socklen_t = u32; pub type pthread_t = c_ulong; @@ -130,11 +129,6 @@ s! { bits: [u32; 32], } - pub struct if_nameindex { - pub if_index: c_uint, - pub if_name: *mut c_char, - } - // System V IPC pub struct msginfo { pub msgpool: c_int, @@ -1378,8 +1372,6 @@ extern "C" { pub fn getloadavg(loadavg: *mut c_double, nelem: c_int) -> c_int; pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; - pub fn if_nameindex() -> *mut if_nameindex; - pub fn if_freenameindex(ptr: *mut if_nameindex); pub fn mremap( addr: *mut c_void, @@ -1439,21 +1431,6 @@ extern "C" { pub fn getentropy(buf: *mut c_void, buflen: size_t) -> c_int; - pub fn getpwnam_r( - name: *const c_char, - pwd: *mut passwd, - buf: *mut c_char, - buflen: size_t, - result: *mut *mut passwd, - ) -> c_int; - pub fn getpwuid_r( - uid: crate::uid_t, - pwd: *mut passwd, - buf: *mut c_char, - buflen: size_t, - result: *mut *mut passwd, - ) -> c_int; - // grp.h pub fn getgrgid(gid: crate::gid_t) -> *mut crate::group; pub fn getgrnam(name: *const c_char) -> *mut crate::group; diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index c487f31664fd3..5f1b2c9a67b8b 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -644,7 +644,6 @@ pub const BUFSIZ: c_uint = 8192; pub const TMP_MAX: c_uint = 238328; pub const FOPEN_MAX: c_uint = 16; pub const FILENAME_MAX: c_uint = 4096; -pub const POSIX_MADV_DONTNEED: c_int = 4; pub const _CS_GNU_LIBC_VERSION: c_int = 2; pub const _CS_GNU_LIBPTHREAD_VERSION: c_int = 3; pub const _CS_V6_ENV: c_int = 1148; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index d60d1b183465c..e59648ab5808a 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -111,11 +111,6 @@ s! { pub spkt_protocol: c_ushort, } - pub struct if_nameindex { - pub if_index: c_uint, - pub if_name: *mut c_char, - } - pub struct tpacket_auxdata { pub tp_status: __u32, pub tp_len: __u32, @@ -4402,20 +4397,6 @@ extern "C" { pub fn sendfile(out_fd: c_int, in_fd: c_int, offset: *mut off_t, count: size_t) -> ssize_t; pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> c_int; pub fn getdtablesize() -> c_int; - pub fn getpwnam_r( - name: *const c_char, - pwd: *mut passwd, - buf: *mut c_char, - buflen: size_t, - result: *mut *mut passwd, - ) -> c_int; - pub fn getpwuid_r( - uid: crate::uid_t, - pwd: *mut passwd, - buf: *mut c_char, - buflen: size_t, - result: *mut *mut passwd, - ) -> c_int; pub fn getgrouplist( user: *const c_char, group: crate::gid_t, diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index a4f6cdf573c2c..6a233f8b0ffbe 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -562,8 +562,6 @@ pub const O_NDELAY: c_int = O_NONBLOCK; pub const NI_MAXHOST: crate::socklen_t = 255; pub const PTHREAD_STACK_MIN: size_t = 2048; -pub const POSIX_MADV_DONTNEED: c_int = 4; - pub const MAP_ANONYMOUS: c_int = MAP_ANON; pub const SOCK_SEQPACKET: c_int = 5; diff --git a/src/unix/linux_like/linux/uclibc/mod.rs b/src/unix/linux_like/linux/uclibc/mod.rs index 8ce6d2328f3c5..f70e0c41aeed1 100644 --- a/src/unix/linux_like/linux/uclibc/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mod.rs @@ -404,7 +404,6 @@ pub const O_TMPFILE: c_int = 0o20000000 | O_DIRECTORY; pub const PACKET_MR_UNICAST: c_int = 3; pub const PF_NFC: c_int = 39; pub const PF_VSOCK: c_int = 40; -pub const POSIX_MADV_DONTNEED: c_int = 4; pub const PTRACE_EVENT_STOP: c_int = 128; pub const PTRACE_GETSIGMASK: c_uint = 0x420a; pub const PTRACE_PEEKSIGINFO: c_int = 0x4209; diff --git a/src/unix/linux_like/linux_l4re_shared.rs b/src/unix/linux_like/linux_l4re_shared.rs index b2cb74cbbd506..b3d014482cfc7 100644 --- a/src/unix/linux_like/linux_l4re_shared.rs +++ b/src/unix/linux_like/linux_l4re_shared.rs @@ -903,6 +903,7 @@ pub const POSIX_MADV_NORMAL: c_int = 0; pub const POSIX_MADV_RANDOM: c_int = 1; 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 S_IEXEC: crate::mode_t = 0o0100; pub const S_IWRITE: crate::mode_t = 0o0200; diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 8ac59660b6bed..c5726545105ac 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -5,6 +5,7 @@ pub type speed_t = c_uint; pub type tcflag_t = c_uint; pub type clockid_t = c_int; pub type timer_t = *mut c_void; +pub type useconds_t = u32; pub type key_t = c_int; pub type id_t = c_uint; @@ -227,6 +228,11 @@ s! { pub machine: [c_char; 65], pub domainname: [c_char; 65], } + + pub struct if_nameindex { + pub if_index: c_uint, + pub if_name: *mut c_char, + } } cfg_if! { @@ -2015,6 +2021,24 @@ extern "C" { pub fn getdomainname(name: *mut c_char, len: size_t) -> c_int; #[cfg(not(target_os = "l4re"))] pub fn setdomainname(name: *const c_char, len: size_t) -> c_int; + + pub fn if_nameindex() -> *mut if_nameindex; + pub fn if_freenameindex(ptr: *mut if_nameindex); + + pub fn getpwnam_r( + name: *const c_char, + pwd: *mut passwd, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut passwd, + ) -> c_int; + pub fn getpwuid_r( + uid: crate::uid_t, + pwd: *mut passwd, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut passwd, + ) -> c_int; } // LFS64 extensions From 9f85644412b2913e6809a9c8b02a04b9f0d93589 Mon Sep 17 00:00:00 2001 From: Marius Melzer Date: Fri, 5 Dec 2025 10:55:25 +0100 Subject: [PATCH 1063/1228] Make l4re pthread struct fields private (backport ) (cherry picked from commit c24866a08188df1121766142e3d587f8e3f9e378) --- src/unix/linux_like/l4re/uclibc/mod.rs | 54 +++++++++++++------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/src/unix/linux_like/l4re/uclibc/mod.rs b/src/unix/linux_like/l4re/uclibc/mod.rs index 851a92cdfe4e7..e593ad76d4fc2 100644 --- a/src/unix/linux_like/l4re/uclibc/mod.rs +++ b/src/unix/linux_like/l4re/uclibc/mod.rs @@ -225,57 +225,57 @@ s! { } pub struct _pthread_fastlock { - pub __status: c_long, - pub __spinlock: c_int, + __status: c_long, + __spinlock: c_int, } pub struct pthread_cond_t { - pub __c_lock: _pthread_fastlock, - pub __c_waiting: _pthread_descr, - pub __padding: [u8; PTHREAD_COND_PADDING_SIZE], - pub __align: __pthread_cond_align_t, + __c_lock: _pthread_fastlock, + __c_waiting: _pthread_descr, + __padding: [u8; PTHREAD_COND_PADDING_SIZE], + __align: __pthread_cond_align_t, } pub struct pthread_condattr_t { - pub __dummy: c_int, + __dummy: c_int, } pub struct pthread_mutex_t { - pub __m_reserved: c_int, - pub __m_count: c_int, - pub __m_owner: _pthread_descr, - pub __m_kind: c_int, - pub __m_lock: _pthread_fastlock, + __m_reserved: c_int, + __m_count: c_int, + __m_owner: _pthread_descr, + __m_kind: c_int, + __m_lock: _pthread_fastlock, } pub struct pthread_mutexattr_t { - pub __mutexkind: c_int, + __mutexkind: c_int, } pub struct pthread_rwlock_t { - pub __rw_lock: _pthread_fastlock, - pub __rw_readers: c_int, - pub __rw_writer: _pthread_descr, - pub __rw_read_waiting: _pthread_descr, - pub __rw_write_waiting: _pthread_descr, - pub __rw_kind: c_int, - pub __rw_pshared: c_int, + __rw_lock: _pthread_fastlock, + __rw_readers: c_int, + __rw_writer: _pthread_descr, + __rw_read_waiting: _pthread_descr, + __rw_write_waiting: _pthread_descr, + __rw_kind: c_int, + __rw_pshared: c_int, } pub struct pthread_rwlockattr_t { - pub __lockkind: c_int, - pub __pshared: c_int, + __lockkind: c_int, + __pshared: c_int, } pub struct pthread_barrier_t { - pub __ba_lock: _pthread_fastlock, - pub __ba_required: c_int, - pub __ba_present: c_int, - pub __ba_waiting: _pthread_descr, + __ba_lock: _pthread_fastlock, + __ba_required: c_int, + __ba_present: c_int, + __ba_waiting: _pthread_descr, } pub struct pthread_barrierattr_t { - pub __pshared: c_int, + __pshared: c_int, } } From fd30a42dbe2e015262303705deafa4e7f4596395 Mon Sep 17 00:00:00 2001 From: Tom Pusateri Date: Fri, 5 Dec 2025 18:39:32 -0500 Subject: [PATCH 1064/1228] Add interface LINK_STATE_* definitions from sys/net/if.h (backport ) (cherry picked from commit d06928fa2091e21698049e370433419170a211ba) --- src/new/netbsd/net/if_.rs | 4 ++++ src/unix/bsd/netbsdlike/openbsd/mod.rs | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/src/new/netbsd/net/if_.rs b/src/new/netbsd/net/if_.rs index 7cceadfc2b3d6..99e4f97a3748b 100644 --- a/src/new/netbsd/net/if_.rs +++ b/src/new/netbsd/net/if_.rs @@ -29,6 +29,10 @@ s! { } } +pub const LINK_STATE_UNKNOWN: c_int = 0; // link invalid/unknown +pub const LINK_STATE_DOWN: c_int = 1; // link is down +pub const LINK_STATE_UP: c_int = 2; // link is up + pub const IFF_UP: c_int = 0x0001; // interface is up pub const IFF_BROADCAST: c_int = 0x0002; // broadcast address valid pub const IFF_DEBUG: c_int = 0x0004; // turn on debugging diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 8b12116ab25ae..92a59b53a6a60 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1461,6 +1461,15 @@ const SI_PAD: size_t = (SI_MAXSZ / size_of::()) - 3; pub const MAP_STACK: c_int = 0x4000; pub const MAP_CONCEAL: c_int = 0x8000; +// https://github.com/openbsd/src/blob/f8a2f73b6503213f5eb24ca315ac7e1f9421c0c9/sys/net/if.h#L135 +pub const LINK_STATE_UNKNOWN: c_int = 0; // link unknown +pub const LINK_STATE_INVALID: c_int = 1; // link invalid +pub const LINK_STATE_DOWN: c_int = 2; // link is down +pub const LINK_STATE_KALIVE_DOWN: c_int = 3; // keepalive reports down +pub const LINK_STATE_UP: c_int = 4; // link is up +pub const LINK_STATE_HALF_DUPLEX: c_int = 5; // link is up and half duplex +pub const LINK_STATE_FULL_DUPLEX: c_int = 6; // link is up and full duplex + // 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 From fc52f153d1c87f487691c69e7e777779840b5f5a Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Wed, 10 Dec 2025 13:23:39 -0800 Subject: [PATCH 1065/1228] Remove nonexistent clocks on WASI These were added way back when in #2499 and while they may have existed in a historical version of wasi-libc they most certainly do not exist in the current wasi-libc. Any usage of them is already-breaking, so this deletes these items. (backport ) (cherry picked from commit e883afcede949948e513be5ffac0a75375002a1b) --- src/wasi/mod.rs | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index 9f2539b9400a0..9dbe60a02f35c 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -407,13 +407,7 @@ pub const _SC_SYMLOOP_MAX: c_int = 173; #[allow(unused_unsafe)] pub static CLOCK_MONOTONIC: clockid_t = unsafe { clockid_t(core::ptr::addr_of!(_CLOCK_MONOTONIC)) }; #[allow(unused_unsafe)] -pub static CLOCK_PROCESS_CPUTIME_ID: clockid_t = - unsafe { clockid_t(core::ptr::addr_of!(_CLOCK_PROCESS_CPUTIME_ID)) }; -#[allow(unused_unsafe)] pub static CLOCK_REALTIME: clockid_t = unsafe { clockid_t(core::ptr::addr_of!(_CLOCK_REALTIME)) }; -#[allow(unused_unsafe)] -pub static CLOCK_THREAD_CPUTIME_ID: clockid_t = - unsafe { clockid_t(core::ptr::addr_of!(_CLOCK_THREAD_CPUTIME_ID)) }; pub const ABDAY_1: crate::nl_item = 0x20000; pub const ABDAY_2: crate::nl_item = 0x20001; @@ -586,9 +580,7 @@ extern "C" { pub fn ctime_r(a: *const time_t, b: *mut c_char) -> *mut c_char; static _CLOCK_MONOTONIC: u8; - static _CLOCK_PROCESS_CPUTIME_ID: u8; static _CLOCK_REALTIME: u8; - static _CLOCK_THREAD_CPUTIME_ID: u8; pub fn nanosleep(a: *const timespec, b: *mut timespec) -> c_int; pub fn clock_getres(a: clockid_t, b: *mut timespec) -> c_int; pub fn clock_gettime(a: clockid_t, b: *mut timespec) -> c_int; From 4ae9b73626562a5f33809461ed94c6ceac36ec1f Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Thu, 11 Dec 2025 10:11:45 -0700 Subject: [PATCH 1066/1228] Revert the workaround for Rust bug 132185 It's been fixed since probably sometime in February. https://github.com/rust-lang/rust/issues/132185 (backport ) (cherry picked from commit a3efefee3e3a6ed1e000fa0dd1fb4077e5c867ef) --- .cirrus.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 0abb17a8ce5d1..ff11c9cccb528 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -3,9 +3,6 @@ task: env: HOME: /tmp # cargo cache needs it TARGET: x86_64-unknown-freebsd - # FIXME(freebsd): FreeBSD has a segfault when `RUST_BACKTRACE` is set - # https://github.com/rust-lang/rust/issues/132185 - RUST_BACKTRACE: "0" matrix: # FIXME(#4740): FreeBSD 13 tests are extremely flaky and fail most of the time # - name: nightly freebsd-13 x86_64 From da8ef60e794d317be19fa4c48730935c1de63bd1 Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Tue, 16 Dec 2025 08:53:02 +0000 Subject: [PATCH 1067/1228] libc-test: semver: Move Linux s390x ucontext symbols to GNU symbol list Musl does not provide these. Signed-off-by: Jens Reidel (backport ) (cherry picked from commit 3d372c69e2dfff2ad70c4cdd1bd2b0ff55d5193b) --- libc-test/semver/linux-gnu-s390x.txt | 6 ++++++ libc-test/semver/linux-s390x.txt | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libc-test/semver/linux-gnu-s390x.txt b/libc-test/semver/linux-gnu-s390x.txt index ec90f4184b638..d52ba2a2a1422 100644 --- a/libc-test/semver/linux-gnu-s390x.txt +++ b/libc-test/semver/linux-gnu-s390x.txt @@ -1,4 +1,10 @@ PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP +getcontext +makecontext +mcontext_t +setcontext +swapcontext sysctl +ucontext_t diff --git a/libc-test/semver/linux-s390x.txt b/libc-test/semver/linux-s390x.txt index ac59c8eaee4d2..f2a16a6d8fe62 100644 --- a/libc-test/semver/linux-s390x.txt +++ b/libc-test/semver/linux-s390x.txt @@ -103,11 +103,5 @@ __psw_t flock64 fpreg_t fpregset_t -getcontext greg_t -makecontext -mcontext_t -setcontext -swapcontext termios2 -ucontext_t From fde437d95328945b3fd9ceb3ee811e687086cd5b Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Tue, 16 Dec 2025 08:57:28 +0000 Subject: [PATCH 1068/1228] musl: s390x: Fix definition of SIGSTKSZ/MINSIGSTKSZ These have had the values 10240 and 4096 respectively since the introduction of the s390x port in musl back in 2016. Signed-off-by: Jens Reidel (backport ) (cherry picked from commit cde9e8af47b2498f3f9d880469802ff6a370cdb3) --- src/unix/linux_like/linux/musl/b64/s390x.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index d8ce68e662089..744d148921f12 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -161,8 +161,8 @@ pub const SA_NOCLDWAIT: c_int = 2; pub const SA_ONSTACK: c_int = 0x08000000; pub const SA_SIGINFO: c_int = 4; pub const SIGBUS: c_int = 7; -pub const SIGSTKSZ: size_t = 0x2000; -pub const MINSIGSTKSZ: size_t = 2048; +pub const SIGSTKSZ: size_t = 10240; +pub const MINSIGSTKSZ: size_t = 4096; pub const SIG_SETMASK: c_int = 2; pub const O_NOCTTY: c_int = 256; From e732831ec0b259bf53448d248bad1e2cdbd9affe Mon Sep 17 00:00:00 2001 From: rusty-snake <41237666+rusty-snake@users.noreply.github.com> Date: Wed, 16 Apr 2025 18:08:31 +0200 Subject: [PATCH 1069/1228] Add AT_EXECVE_CHECK (backport ) (cherry picked from commit ec1e1e5da4578c88ef57e35ab234eb1c55cfe83c) --- libc-test/build.rs | 3 +++ libc-test/semver/linux.txt | 1 + src/unix/linux_like/linux/mod.rs | 3 +++ 3 files changed, 7 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 69ddcd3ba27a3..4ad94c35f6a72 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4638,6 +4638,9 @@ fn test_linux(target: &str) { // FIXME(linux): Requires >= 6.9 kernel headers. "AT_HWCAP3" | "AT_HWCAP4" => true, + // Linux 6.14 + "AT_EXECVE_CHECK" => true, + _ => false, } }); diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index e9f4e9eccd62f..1670cf76c057c 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -163,6 +163,7 @@ AT_ENTRY AT_EUID AT_EXECFD AT_EXECFN +AT_EXECVE_CHECK AT_FDCWD AT_FLAGS AT_GID diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index e59648ab5808a..f133c8e80cc9a 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1457,6 +1457,9 @@ pub const IFF_LOWER_UP: c_int = 0x10000; pub const IFF_DORMANT: c_int = 0x20000; pub const IFF_ECHO: c_int = 0x40000; +// linux/fcntl.h +pub const AT_EXECVE_CHECK: c_int = 0x10000; + // linux/if_addr.h pub const IFA_UNSPEC: c_ushort = 0; pub const IFA_ADDRESS: c_ushort = 1; From 2884920da252cd1b354ad400ff3aea4233cc163d Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Wed, 3 Dec 2025 19:31:26 -0500 Subject: [PATCH 1070/1228] aix: Fix swapped struct/union test skips and missing `c_enum` Closes: https://github.com/rust-lang/libc/issues/4870 [ replace the commit summary - Trevor ] (backport ) (cherry picked from commit 0bd3900d54027ee439f6e7417c781671dda0ad07) --- libc-test/build.rs | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 4ad94c35f6a72..f0796a65f2ed1 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -5661,14 +5661,24 @@ fn test_aix(target: &str) { // FIXME(union): actually a union. "sigval" => true, - // '__poll_ctl_ext_u' and '__pollfd_ext_u' are for unnamed unions. - "__poll_ctl_ext_u" => true, - "__pollfd_ext_u" => true, - // 'struct fpreg_t' is not defined in AIX headers. It is created to // allow type 'double' to be used in signal contexts. "fpreg_t" => true, + // These structures are guarded by the `_KERNEL` macro in the AIX + // header. + "fileops_t" | "file" => true, + + _ => false, + } + }); + + cfg.skip_union(|union_| { + match union_.ident() { + // '__poll_ctl_ext_u' and '__pollfd_ext_u' are for unnamed unions. + "__poll_ctl_ext_u" => true, + "__pollfd_ext_u" => true, + // This type is defined for a union used within `struct ld_info`. // The AIX header does not declare a separate standalone union // type for it. @@ -5677,10 +5687,6 @@ fn test_aix(target: &str) { // This is a simplified version of the AIX union `_simple_lock`. "_kernel_simple_lock" => true, - // These structures are guarded by the `_KERNEL` macro in the AIX - // header. - "fileops_t" | "file" => true, - _ => false, } }); @@ -5807,6 +5813,9 @@ fn test_aix(target: &str) { _ => false, }); + let c_enums = ["uio_rw"]; + cfg.alias_is_c_enum(move |e| c_enums.contains(&e)); + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); } From 65508f3e12e07738163499d5c5f19976ca47ea02 Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Thu, 30 Oct 2025 09:50:49 +0000 Subject: [PATCH 1071/1228] musl: riscv: fix public padding fields in `stat/stat64` (backport ) (cherry picked from commit de1bd4e5aae856b74a1653a8ef5a55cae55fd102) --- src/unix/linux_like/linux/musl/b64/riscv64/mod.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index b987f8358b365..2ba3f66e453ca 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -22,10 +22,10 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - pub __pad1: crate::dev_t, + __pad1: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, - pub __pad2: c_int, + __pad2: Padding, pub st_blocks: crate::blkcnt_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, @@ -44,10 +44,10 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - pub __pad1: crate::dev_t, + __pad1: Padding, pub st_size: off64_t, pub st_blksize: crate::blksize_t, - pub __pad2: c_int, + __pad2: Padding, pub st_blocks: crate::blkcnt_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, From bbf1217b73e04ffc748ffc1abb3810a169ce92ce Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Thu, 30 Oct 2025 09:27:09 +0000 Subject: [PATCH 1072/1228] musl: Merge stat64 and stat with `stat` The structures are the same - and this follows the upstream definition On musl at least, blkcnt64_t == blkcnt_t == i64 and ino_t == ino64_t == u64 (backport ) (cherry picked from commit 9ca4ae9afacf0a66849b0a723f55c1e739d99961) --- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 24 ++------------- .../linux_like/linux/musl/b32/mips/mod.rs | 25 ++-------------- src/unix/linux_like/linux/musl/b32/powerpc.rs | 23 ++------------- .../linux_like/linux/musl/b32/riscv32/mod.rs | 29 ++----------------- src/unix/linux_like/linux/musl/b32/x86/mod.rs | 24 ++------------- .../linux_like/linux/musl/b64/aarch64/mod.rs | 24 ++------------- .../linux/musl/b64/loongarch64/mod.rs | 29 ++----------------- src/unix/linux_like/linux/musl/b64/mips64.rs | 26 ++--------------- .../linux_like/linux/musl/b64/powerpc64.rs | 23 ++------------- .../linux_like/linux/musl/b64/riscv64/mod.rs | 29 ++----------------- src/unix/linux_like/linux/musl/b64/s390x.rs | 21 +------------- .../linux_like/linux/musl/b64/wasm32/mod.rs | 23 ++------------- .../linux_like/linux/musl/b64/x86_64/mod.rs | 23 ++------------- 13 files changed, 28 insertions(+), 295 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index dea804a527026..0f2daa5fc018c 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -3,6 +3,8 @@ use crate::prelude::*; pub type wchar_t = u32; +pub type stat64 = stat; + s! { pub struct stat { pub st_dev: crate::dev_t, @@ -26,28 +28,6 @@ s! { pub st_ino: crate::ino_t, } - pub struct stat64 { - pub st_dev: crate::dev_t, - __st_dev_padding: Padding, - __st_ino_truncated: c_long, - pub st_mode: crate::mode_t, - pub st_nlink: crate::nlink_t, - pub st_uid: crate::uid_t, - pub st_gid: crate::gid_t, - pub st_rdev: crate::dev_t, - __st_rdev_padding: Padding, - pub st_size: off_t, - pub st_blksize: crate::blksize_t, - pub st_blocks: crate::blkcnt_t, - pub st_atime: crate::time_t, - pub st_atime_nsec: c_long, - pub st_mtime: crate::time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: crate::time_t, - pub st_ctime_nsec: c_long, - pub st_ino: crate::ino_t, - } - pub struct stack_t { pub ss_sp: *mut c_void, pub ss_flags: c_int, diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index d563c5e420a12..b4a7f1a575dda 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -3,6 +3,8 @@ use crate::prelude::*; pub type wchar_t = c_int; +pub type stat64 = stat; + s! { pub struct stat { pub st_dev: crate::dev_t, @@ -27,29 +29,6 @@ s! { __st_padding4: Padding<[c_long; 14]>, } - pub struct stat64 { - pub st_dev: crate::dev_t, - __st_padding1: Padding<[c_long; 2]>, - pub st_ino: crate::ino64_t, - pub st_mode: crate::mode_t, - pub st_nlink: crate::nlink_t, - pub st_uid: crate::uid_t, - pub st_gid: crate::gid_t, - pub st_rdev: crate::dev_t, - __st_padding2: Padding<[c_long; 2]>, - pub st_size: off_t, - pub st_atime: crate::time_t, - pub st_atime_nsec: c_long, - pub st_mtime: crate::time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: crate::time_t, - pub st_ctime_nsec: c_long, - pub st_blksize: crate::blksize_t, - __st_padding3: Padding, - pub st_blocks: crate::blkcnt64_t, - __st_padding4: Padding<[c_long; 14]>, - } - pub struct stack_t { pub ss_sp: *mut c_void, pub ss_size: size_t, diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 4bf82c7b0cac4..6e5bcde7ce112 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -3,6 +3,8 @@ use crate::prelude::*; pub type wchar_t = i32; +pub type stat64 = stat; + s! { pub struct termios { pub c_iflag: crate::tcflag_t, @@ -36,27 +38,6 @@ s! { __unused: Padding<[c_long; 2]>, } - pub struct stat64 { - pub st_dev: crate::dev_t, - pub st_ino: crate::ino_t, - pub st_mode: crate::mode_t, - pub st_nlink: crate::nlink_t, - pub st_uid: crate::uid_t, - pub st_gid: crate::gid_t, - pub st_rdev: crate::dev_t, - __st_rdev_padding: Padding, - pub st_size: off_t, - pub st_blksize: crate::blksize_t, - pub st_blocks: crate::blkcnt_t, - pub st_atime: crate::time_t, - pub st_atime_nsec: c_long, - pub st_mtime: crate::time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: crate::time_t, - pub st_ctime_nsec: c_long, - __unused: Padding<[c_long; 2]>, - } - pub struct stack_t { pub ss_sp: *mut c_void, pub ss_flags: c_int, diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index 4237c579a1a7f..45fa0a2081ff1 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -1,13 +1,12 @@ //! RISC-V-specific definitions for 32-bit linux-like values +use crate::off_t; use crate::prelude::*; -use crate::{ - off64_t, - off_t, -}; pub type wchar_t = c_int; +pub type stat64 = stat; + s! { pub struct stat { pub st_dev: crate::dev_t, @@ -31,28 +30,6 @@ s! { __unused: Padding<[c_int; 2usize]>, } - pub struct stat64 { - pub st_dev: crate::dev_t, - pub st_ino: crate::ino64_t, - pub st_mode: crate::mode_t, - pub st_nlink: crate::nlink_t, - pub st_uid: crate::uid_t, - pub st_gid: crate::gid_t, - pub st_rdev: crate::dev_t, - pub __pad1: crate::dev_t, - pub st_size: off64_t, - pub st_blksize: crate::blksize_t, - pub __pad2: c_int, - pub st_blocks: crate::blkcnt64_t, - pub st_atime: crate::time_t, - pub st_atime_nsec: c_long, - pub st_mtime: crate::time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: crate::time_t, - pub st_ctime_nsec: c_long, - __unused: Padding<[c_int; 2]>, - } - pub struct stack_t { pub ss_sp: *mut c_void, pub ss_flags: c_int, diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index ada436fc99b56..0db24b65932ff 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -3,6 +3,8 @@ use crate::prelude::*; pub type wchar_t = i32; +pub type stat64 = stat; + s! { pub struct stat { pub st_dev: crate::dev_t, @@ -26,28 +28,6 @@ s! { pub st_ino: crate::ino_t, } - pub struct stat64 { - pub st_dev: crate::dev_t, - __st_dev_padding: Padding, - __st_ino_truncated: c_long, - pub st_mode: crate::mode_t, - pub st_nlink: crate::nlink_t, - pub st_uid: crate::uid_t, - pub st_gid: crate::gid_t, - pub st_rdev: crate::dev_t, - __st_rdev_padding: Padding, - pub st_size: off_t, - pub st_blksize: crate::blksize_t, - pub st_blocks: crate::blkcnt_t, - pub st_atime: crate::time_t, - pub st_atime_nsec: c_long, - pub st_mtime: crate::time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: crate::time_t, - pub st_ctime_nsec: c_long, - pub st_ino: crate::ino_t, - } - pub struct mcontext_t { __private: [u32; 22], } diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index cc52a179e7203..e28310be3ee32 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -7,6 +7,8 @@ pub type wchar_t = u32; pub type nlink_t = u32; pub type blksize_t = c_int; +pub type stat64 = stat; + s! { pub struct stat { pub st_dev: crate::dev_t, @@ -30,28 +32,6 @@ s! { __unused: Padding<[c_uint; 2]>, } - pub struct stat64 { - pub st_dev: crate::dev_t, - pub st_ino: crate::ino_t, - pub st_mode: crate::mode_t, - pub st_nlink: crate::nlink_t, - pub st_uid: crate::uid_t, - pub st_gid: crate::gid_t, - pub st_rdev: crate::dev_t, - __pad0: Padding, - pub st_size: off_t, - pub st_blksize: crate::blksize_t, - __pad1: Padding, - pub st_blocks: crate::blkcnt_t, - pub st_atime: crate::time_t, - pub st_atime_nsec: c_long, - pub st_mtime: crate::time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: crate::time_t, - pub st_ctime_nsec: c_long, - __unused: Padding<[c_uint; 2]>, - } - pub struct user_regs_struct { pub regs: [c_ulonglong; 31], pub sp: c_ulonglong, diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index f41f61de62bcf..8e890be51848f 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -1,10 +1,7 @@ //! LoongArch-specific definitions for 64-bit linux-like values +use crate::off_t; use crate::prelude::*; -use crate::{ - off64_t, - off_t, -}; pub type wchar_t = c_int; @@ -13,6 +10,8 @@ pub type blksize_t = c_int; pub type __u64 = c_ulonglong; pub type __s64 = c_longlong; +pub type stat64 = stat; + s! { pub struct stat { pub st_dev: crate::dev_t, @@ -36,28 +35,6 @@ s! { __unused: Padding<[c_int; 2usize]>, } - pub struct stat64 { - pub st_dev: crate::dev_t, - pub st_ino: crate::ino64_t, - pub st_mode: crate::mode_t, - pub st_nlink: crate::nlink_t, - pub st_uid: crate::uid_t, - pub st_gid: crate::gid_t, - pub st_rdev: crate::dev_t, - pub __pad1: crate::dev_t, - pub st_size: off64_t, - pub st_blksize: crate::blksize_t, - pub __pad2: c_int, - pub st_blocks: crate::blkcnt_t, - pub st_atime: crate::time_t, - pub st_atime_nsec: c_long, - pub st_mtime: crate::time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: crate::time_t, - pub st_ctime_nsec: c_long, - __unused: Padding<[c_int; 2]>, - } - pub struct ipc_perm { pub __key: crate::key_t, pub uid: crate::uid_t, diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index 9626e3db78b8e..1fb8618c30c0b 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -7,6 +7,8 @@ pub type __s64 = c_long; pub type nlink_t = c_uint; pub type blksize_t = i64; +pub type stat64 = stat; + s! { pub struct stat { pub st_dev: crate::dev_t, @@ -32,30 +34,6 @@ s! { __pad5: Padding<[c_int; 14]>, } - pub struct stat64 { - pub st_dev: crate::dev_t, - __pad1: Padding<[c_int; 3]>, - pub st_ino: crate::ino_t, - pub st_mode: crate::mode_t, - pub st_nlink: crate::nlink_t, - pub st_uid: crate::uid_t, - pub st_gid: crate::gid_t, - pub st_rdev: crate::dev_t, - __pad2: Padding<[c_uint; 2]>, - pub st_size: off_t, - __pad3: Padding, - pub st_atime: crate::time_t, - pub st_atime_nsec: c_long, - pub st_mtime: crate::time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: crate::time_t, - pub st_ctime_nsec: c_long, - pub st_blksize: crate::blksize_t, - __pad4: Padding, - pub st_blocks: crate::blkcnt_t, - __pad5: Padding<[c_int; 14]>, - } - pub struct stack_t { pub ss_sp: *mut c_void, pub ss_size: size_t, diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index dbf20c565e438..4885ea2f0e182 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -7,6 +7,8 @@ pub type __s64 = c_long; pub type nlink_t = u64; pub type blksize_t = c_long; +pub type stat64 = stat; + s! { pub struct termios { pub c_iflag: crate::tcflag_t, @@ -40,27 +42,6 @@ s! { __unused: Padding<[c_long; 3]>, } - pub struct stat64 { - pub st_dev: crate::dev_t, - pub st_ino: crate::ino64_t, - pub st_nlink: crate::nlink_t, - pub st_mode: crate::mode_t, - pub st_uid: crate::uid_t, - pub st_gid: crate::gid_t, - __pad0: Padding, - pub st_rdev: crate::dev_t, - pub st_size: off_t, - pub st_blksize: crate::blksize_t, - pub st_blocks: crate::blkcnt64_t, - pub st_atime: crate::time_t, - pub st_atime_nsec: c_long, - pub st_mtime: crate::time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: crate::time_t, - pub st_ctime_nsec: c_long, - __reserved: Padding<[c_long; 3]>, - } - pub struct shmid_ds { pub shm_perm: crate::ipc_perm, pub shm_atime: crate::time_t, diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index 2ba3f66e453ca..bd395e49cefc1 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -1,10 +1,7 @@ //! RISC-V-specific definitions for 64-bit linux-like values +use crate::off_t; use crate::prelude::*; -use crate::{ - off64_t, - off_t, -}; pub type wchar_t = c_int; @@ -13,6 +10,8 @@ pub type blksize_t = c_int; pub type __u64 = c_ulonglong; pub type __s64 = c_longlong; +pub type stat64 = stat; + s! { pub struct stat { pub st_dev: crate::dev_t, @@ -36,28 +35,6 @@ s! { __unused: Padding<[c_int; 2usize]>, } - pub struct stat64 { - pub st_dev: crate::dev_t, - pub st_ino: crate::ino64_t, - pub st_mode: crate::mode_t, - pub st_nlink: crate::nlink_t, - pub st_uid: crate::uid_t, - pub st_gid: crate::gid_t, - pub st_rdev: crate::dev_t, - __pad1: Padding, - pub st_size: off64_t, - pub st_blksize: crate::blksize_t, - __pad2: Padding, - pub st_blocks: crate::blkcnt_t, - pub st_atime: crate::time_t, - pub st_atime_nsec: c_long, - pub st_mtime: crate::time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: crate::time_t, - pub st_ctime_nsec: c_long, - __unused: Padding<[c_int; 2]>, - } - pub struct ipc_perm { pub __key: crate::key_t, pub uid: crate::uid_t, diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index 744d148921f12..0ee6c11c6a1e6 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -8,6 +8,7 @@ pub type greg_t = u64; pub type __u64 = u64; pub type __s64 = i64; pub type statfs64 = statfs; +pub type stat64 = stat; s! { pub struct ipc_perm { @@ -50,26 +51,6 @@ s! { __unused: Padding<[c_long; 3]>, } - pub struct stat64 { - pub st_dev: crate::dev_t, - pub st_ino: crate::ino64_t, - pub st_nlink: crate::nlink_t, - pub st_mode: crate::mode_t, - pub st_uid: crate::uid_t, - pub st_gid: crate::gid_t, - pub st_rdev: crate::dev_t, - pub st_size: off_t, - pub st_atime: crate::time_t, - pub st_atime_nsec: c_long, - pub st_mtime: crate::time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: crate::time_t, - pub st_ctime_nsec: c_long, - pub st_blksize: crate::blksize_t, - pub st_blocks: crate::blkcnt64_t, - __unused: Padding<[c_long; 3]>, - } - pub struct statfs { pub f_type: c_uint, pub f_bsize: c_uint, diff --git a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs index d4d0fe69839b3..1a4d89632dcc9 100644 --- a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs @@ -9,6 +9,8 @@ pub type blksize_t = c_long; pub type __u64 = c_ulonglong; pub type __s64 = c_longlong; +pub type stat64 = stat; + s! { pub struct stat { pub st_dev: crate::dev_t, @@ -31,27 +33,6 @@ s! { __unused: Padding<[c_long; 3]>, } - pub struct stat64 { - pub st_dev: crate::dev_t, - pub st_ino: crate::ino64_t, - pub st_nlink: crate::nlink_t, - pub st_mode: crate::mode_t, - pub st_uid: crate::uid_t, - pub st_gid: crate::gid_t, - __pad0: Padding, - pub st_rdev: crate::dev_t, - pub st_size: off_t, - pub st_blksize: crate::blksize_t, - pub st_blocks: crate::blkcnt64_t, - pub st_atime: crate::time_t, - pub st_atime_nsec: c_long, - pub st_mtime: crate::time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: crate::time_t, - pub st_ctime_nsec: c_long, - __reserved: Padding<[c_long; 3]>, - } - pub struct ipc_perm { #[cfg(musl_v1_2_3)] pub __key: crate::key_t, diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index f7f449cbc8936..dcc41752c6e86 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -8,6 +8,8 @@ pub type __u64 = c_ulonglong; pub type __s64 = c_longlong; pub type greg_t = i64; +pub type stat64 = stat; + s! { pub struct stat { pub st_dev: crate::dev_t, @@ -30,27 +32,6 @@ s! { __unused: Padding<[c_long; 3]>, } - pub struct stat64 { - pub st_dev: crate::dev_t, - pub st_ino: crate::ino64_t, - pub st_nlink: crate::nlink_t, - pub st_mode: crate::mode_t, - pub st_uid: crate::uid_t, - pub st_gid: crate::gid_t, - __pad0: Padding, - pub st_rdev: crate::dev_t, - pub st_size: off_t, - pub st_blksize: crate::blksize_t, - pub st_blocks: crate::blkcnt64_t, - pub st_atime: crate::time_t, - pub st_atime_nsec: c_long, - pub st_mtime: crate::time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: crate::time_t, - pub st_ctime_nsec: c_long, - __reserved: Padding<[c_long; 3]>, - } - pub struct user_regs_struct { pub r15: c_ulong, pub r14: c_ulong, From 47f46d18366d27f6ad32079b25da008aa0d9f2b0 Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Tue, 13 May 2025 04:32:23 +0000 Subject: [PATCH 1073/1228] musl: add musl_time64 feature This feature is enabled with independently from musl_v1_2_3 to support time64. Defining this feature makes this roughly equivalent to upstream commit bminor/musl@f12bd8e. (backport ) (cherry picked from commit 47960b4b00cd114074faa1fff098c9dde6c32908) --- build.rs | 30 ++++++++++++++++++++++++++---- libc-test/build.rs | 9 ++++++++- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/build.rs b/build.rs index 3277ae73df951..0b63b985f9a29 100644 --- a/build.rs +++ b/build.rs @@ -28,6 +28,8 @@ const ALLOWED_CFGS: &[&str] = &[ // Corresponds to `__USE_TIME_BITS64` in UAPI "linux_time_bits64", "musl_v1_2_3", + // Corresponds to `_REDIR_TIME64` in musl + "musl32_time64", "vxworks_lt_25_09", ]; @@ -49,6 +51,9 @@ const CHECK_CFG_EXTRA: &[(&str, &[&str])] = &[ ), ]; +/// Musl architectures that set `#define _REDIR_TIME64 1`. +const MUSL_REDIR_TIME64_ARCHES: &[&str] = &["arm", "mips", "powerpc", "x86"]; + fn main() { // Avoid unnecessary re-building. println!("cargo:rerun-if-changed=build.rs"); @@ -99,12 +104,29 @@ fn main() { _ => (), } - let musl_v1_2_3 = env_flag("RUST_LIBC_UNSTABLE_MUSL_V1_2_3"); + let mut musl_v1_2_3 = env_flag("RUST_LIBC_UNSTABLE_MUSL_V1_2_3"); println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_MUSL_V1_2_3"); - // loongarch64 and ohos have already updated - if musl_v1_2_3 || target_arch == "loongarch64" || target_env == "ohos" { - // FIXME(musl): enable time64 api as well + + // OpenHarmony uses a fork of the musl libc + let musl = target_env == "musl" || target_env == "ohos"; + + // loongarch64 and ohos only exist with recent musl + if target_arch == "loongarch64" || target_env == "ohos" { + musl_v1_2_3 = true; + } + + if musl && musl_v1_2_3 { set_cfg("musl_v1_2_3"); + if MUSL_REDIR_TIME64_ARCHES.contains(&target_arch.as_str()) { + set_cfg("musl32_time64"); + set_cfg("linux_time_bits64"); + } + } + + let linux_time_bits64 = env::var("RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64").is_ok(); + println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64"); + if linux_time_bits64 { + set_cfg("linux_time_bits64"); } println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS"); println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_GNU_TIME_BITS"); diff --git a/libc-test/build.rs b/libc-test/build.rs index f0796a65f2ed1..0f2533a14121d 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3836,6 +3836,7 @@ fn test_linux(target: &str) { let i686 = target.contains("i686"); let ppc = target.contains("powerpc"); let ppc64 = target.contains("powerpc64"); + let ppc32 = ppc && !ppc64; let s390x = target.contains("s390x"); let sparc64 = target.contains("sparc64"); let x32 = target.contains("x32"); @@ -3848,6 +3849,8 @@ fn test_linux(target: &str) { let wasm32 = target.contains("wasm32"); let uclibc = target.contains("uclibc"); let mips = target.contains("mips"); + let mips64 = target.contains("mips64"); + let mips32 = mips && !mips64; let musl_v1_2_3 = env::var("RUST_LIBC_UNSTABLE_MUSL_V1_2_3").is_ok(); if musl_v1_2_3 { @@ -3856,8 +3859,12 @@ fn test_linux(target: &str) { let old_musl = musl && !musl_v1_2_3; let mut cfg = ctest_cfg(); - if musl_v1_2_3 { + if (musl_v1_2_3 || loongarch64) && musl { cfg.cfg("musl_v1_2_3", None); + if arm || ppc32 || x86_32 || mips32 { + cfg.cfg("musl32_time64", None); + cfg.cfg("linux_time_bits64", None); + } } cfg.define("_GNU_SOURCE", None) // This macro re-defines fscanf,scanf,sscanf to link to the symbols that are From 8a28ac44b166c141ebe55ff74633a778c28696ea Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Tue, 13 May 2025 04:40:47 +0000 Subject: [PATCH 1074/1228] musl: time64: adjust struct timespec definition This is equivalent to upstream commit bminor/musl@9b2921b. (backport ) (cherry picked from commit fa7e710e77f3c9025759580ccf1dbf56db343789) --- src/unix/mod.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 1c4033da3d339..6ebf322b0247d 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -72,10 +72,14 @@ s! { #[cfg(all(not(target_env = "gnu"), not(target_os = "aix")))] pub struct timespec { pub tv_sec: time_t, + #[cfg(all(musl32_time64, target_endian = "big"))] + __pad0: Padding, #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] pub tv_nsec: i64, #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] pub tv_nsec: c_long, + #[cfg(all(musl32_time64, target_endian = "little"))] + __pad0: Padding, } pub struct rlimit { From 3aef47af38e2c9236d43dd42338c717c1098a917 Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Tue, 13 May 2025 06:22:38 +0000 Subject: [PATCH 1075/1228] musl: time64: set link names for symbols This corresponds to upstream commit bminor/musl@1febd21 (most symbols) and bminor/musl@22daaea (only dlsym) (backport ) (cherry picked from commit 6fcc954468d7a2f595935f46c8f356c768b4e229) --- src/new/common/posix/pthread.rs | 1 + src/new/musl/sys/socket.rs | 1 + src/unix/linux_like/linux/mod.rs | 22 +++++++--- src/unix/linux_like/linux/musl/mod.rs | 3 ++ src/unix/linux_like/linux_l4re_shared.rs | 13 ++++-- src/unix/linux_like/mod.rs | 9 ++-- src/unix/mod.rs | 52 +++++++++++++----------- 7 files changed, 67 insertions(+), 34 deletions(-) diff --git a/src/new/common/posix/pthread.rs b/src/new/common/posix/pthread.rs index 50c6f98131294..146cd6042b0bb 100644 --- a/src/new/common/posix/pthread.rs +++ b/src/new/common/posix/pthread.rs @@ -195,6 +195,7 @@ extern "C" { #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] #[cfg_attr(gnu_time_bits64, link_name = "__pthread_mutex_timedlock64")] + #[cfg_attr(musl32_time64, link_name = "__pthread_mutex_timedlock_time64")] pub fn pthread_mutex_timedlock( lock: *mut crate::pthread_mutex_t, abstime: *const crate::timespec, diff --git a/src/new/musl/sys/socket.rs b/src/new/musl/sys/socket.rs index 24731914641cc..e723043dc0a36 100644 --- a/src/new/musl/sys/socket.rs +++ b/src/new/musl/sys/socket.rs @@ -41,6 +41,7 @@ extern "C" { vlen: c_uint, flags: c_uint, ) -> c_int; + #[cfg_attr(musl32_time64, link_name = "__recvmmsg_time64")] pub fn recvmmsg( sockfd: c_int, msgvec: *mut crate::mmsghdr, diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index f133c8e80cc9a..82920894f3e24 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -4172,7 +4172,10 @@ cfg_if! { msg_len: size_t, msg_prio: *mut c_uint, ) -> ssize_t; - #[cfg_attr(gnu_time_bits64, link_name = "__mq_timedreceive_time64")] + #[cfg_attr( + any(gnu_time_bits64, musl32_time64), + link_name = "__mq_timedreceive_time64" + )] pub fn mq_timedreceive( mqd: mqd_t, msg_ptr: *mut c_char, @@ -4186,7 +4189,10 @@ cfg_if! { msg_len: size_t, msg_prio: c_uint, ) -> c_int; - #[cfg_attr(gnu_time_bits64, link_name = "__mq_timedsend_time64")] + #[cfg_attr( + any(gnu_time_bits64, musl32_time64), + link_name = "__mq_timedsend_time64" + )] pub fn mq_timedsend( mqd: mqd_t, msg_ptr: *const c_char, @@ -4210,6 +4216,7 @@ extern "C" { pub fn lcong48(p: *mut c_ushort); #[cfg_attr(gnu_time_bits64, link_name = "__lutimes64")] + #[cfg_attr(musl32_time64, link_name = "__lutimes_time64")] pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int; pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; @@ -4285,9 +4292,9 @@ extern "C" { pub fn fremovexattr(filedes: c_int, name: *const c_char) -> c_int; pub fn signalfd(fd: c_int, mask: *const crate::sigset_t, flags: c_int) -> c_int; pub fn timerfd_create(clockid: crate::clockid_t, flags: c_int) -> c_int; - #[cfg_attr(gnu_time_bits64, link_name = "__timerfd_gettime64")] + #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__timerfd_gettime64")] pub fn timerfd_gettime(fd: c_int, curr_value: *mut crate::itimerspec) -> c_int; - #[cfg_attr(gnu_time_bits64, link_name = "__timerfd_settime64")] + #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__timerfd_settime64")] pub fn timerfd_settime( fd: c_int, flags: c_int, @@ -4304,6 +4311,7 @@ extern "C" { ) -> c_int; pub fn dup3(oldfd: c_int, newfd: c_int, flags: c_int) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__sigtimedwait64")] + #[cfg_attr(musl32_time64, link_name = "__sigtimedwait_time64")] pub fn sigtimedwait( set: *const sigset_t, info: *mut siginfo_t, @@ -4366,6 +4374,7 @@ extern "C" { pub fn eventfd_write(fd: c_int, value: eventfd_t) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__sched_rr_get_interval64")] + #[cfg_attr(musl32_time64, link_name = "__sched_rr_get_interval_time64")] pub fn sched_rr_get_interval(pid: crate::pid_t, tp: *mut crate::timespec) -> c_int; pub fn sched_setparam(pid: crate::pid_t, param: *const crate::sched_param) -> c_int; pub fn setns(fd: c_int, nstype: c_int) -> c_int; @@ -4382,7 +4391,10 @@ extern "C" { ... ) -> c_int; pub fn sched_getscheduler(pid: crate::pid_t) -> c_int; - #[cfg_attr(gnu_time_bits64, link_name = "__clock_nanosleep_time64")] + #[cfg_attr( + any(gnu_time_bits64, musl32_time64), + link_name = "__clock_nanosleep_time64" + )] pub fn clock_nanosleep( clk_id: crate::clockid_t, flags: c_int, diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 6a233f8b0ffbe..208330b4ab75b 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -750,6 +750,7 @@ extern "C" { new_limit: *const crate::rlimit, old_limit: *mut crate::rlimit, ) -> c_int; + #[cfg_attr(musl32_time64, link_name = "__gettimeofday_time64")] pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut c_void) -> c_int; pub fn ptrace(request: c_int, ...) -> c_long; pub fn getpriority(which: c_int, who: crate::id_t) -> c_int; @@ -785,7 +786,9 @@ extern "C" { // Added in `musl` 1.2.2 pub fn reallocarray(ptr: *mut c_void, nmemb: size_t, size: size_t) -> *mut c_void; + #[cfg_attr(musl32_time64, link_name = "__adjtimex_time64")] pub fn adjtimex(buf: *mut crate::timex) -> c_int; + #[cfg_attr(musl32_time64, link_name = "__clock_adjtime64")] pub fn clock_adjtime(clk_id: crate::clockid_t, buf: *mut crate::timex) -> c_int; pub fn ctermid(s: *mut c_char) -> *mut c_char; diff --git a/src/unix/linux_like/linux_l4re_shared.rs b/src/unix/linux_like/linux_l4re_shared.rs index b3d014482cfc7..39f24f9087247 100644 --- a/src/unix/linux_like/linux_l4re_shared.rs +++ b/src/unix/linux_like/linux_l4re_shared.rs @@ -1648,7 +1648,10 @@ cfg_if! { pub fn aio_error(aiocbp: *const crate::aiocb) -> c_int; #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_return64")] pub fn aio_return(aiocbp: *mut crate::aiocb) -> ssize_t; - #[cfg_attr(gnu_time_bits64, link_name = "__aio_suspend_time64")] + #[cfg_attr( + any(musl32_time64, gnu_time_bits64), + link_name = "__aio_suspend_time64" + )] pub fn aio_suspend( aiocb_list: *const *const crate::aiocb, nitems: c_int, @@ -1711,6 +1714,7 @@ cfg_if! { flags: c_ulong, ) -> isize; #[cfg_attr(gnu_time_bits64, link_name = "__futimes64")] + #[cfg_attr(musl32_time64, link_name = "__futimes_time64")] pub fn futimes(fd: c_int, times: *const crate::timeval) -> c_int; } } @@ -1812,8 +1816,10 @@ extern "C" { ) -> c_int; pub fn sched_get_priority_max(policy: c_int) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__settimeofday64")] + #[cfg_attr(musl32_time64, link_name = "__settimeofday_time64")] pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__sem_timedwait64")] + #[cfg_attr(musl32_time64, link_name = "__sem_timedwait_time64")] pub fn sem_timedwait(sem: *mut crate::sem_t, abstime: *const crate::timespec) -> c_int; pub fn sem_getvalue(sem: *mut crate::sem_t, sval: *mut c_int) -> c_int; pub fn mount( @@ -1826,6 +1832,7 @@ extern "C" { #[cfg_attr(gnu_time_bits64, link_name = "__prctl_time64")] pub fn prctl(option: c_int, ...) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__ppoll64")] + #[cfg_attr(musl32_time64, link_name = "__ppoll_time64")] pub fn ppoll( fds: *mut crate::pollfd, nfds: crate::nfds_t, @@ -1916,9 +1923,9 @@ extern "C" { pub fn timer_delete(timerid: crate::timer_t) -> c_int; #[cfg(not(target_os = "l4re"))] pub fn timer_getoverrun(timerid: crate::timer_t) -> c_int; - #[cfg_attr(gnu_time_bits64, link_name = "__timer_gettime64")] + #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__timer_gettime64")] pub fn timer_gettime(timerid: crate::timer_t, curr_value: *mut crate::itimerspec) -> c_int; - #[cfg_attr(gnu_time_bits64, link_name = "__timer_settime64")] + #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__timer_settime64")] pub fn timer_settime( timerid: crate::timer_t, flags: c_int, diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index c5726545105ac..19195f0432912 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1879,10 +1879,11 @@ extern "C" { pub fn mincore(addr: *mut c_void, len: size_t, vec: *mut c_uchar) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__clock_getres64")] + #[cfg_attr(musl32_time64, link_name = "__clock_getres_time64")] pub fn clock_getres(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; - #[cfg_attr(gnu_time_bits64, link_name = "__clock_gettime64")] + #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__clock_gettime64")] pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; - #[cfg_attr(gnu_time_bits64, link_name = "__clock_settime64")] + #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__clock_settime64")] pub fn clock_settime(clk_id: crate::clockid_t, tp: *const crate::timespec) -> c_int; #[cfg(not(target_os = "l4re"))] pub fn clock_getcpuclockid(pid: crate::pid_t, clk_id: *mut crate::clockid_t) -> c_int; @@ -1901,9 +1902,11 @@ extern "C" { #[cfg_attr(gnu_file_offset_bits64, link_name = "posix_fadvise64")] pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advise: c_int) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__futimens64")] + #[cfg_attr(musl32_time64, link_name = "__futimens_time64")] #[cfg(not(target_os = "l4re"))] pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__utimensat64")] + #[cfg_attr(musl32_time64, link_name = "__utimensat_time64")] pub fn utimensat( dirfd: c_int, path: *const c_char, @@ -1955,7 +1958,7 @@ extern "C" { pub fn setresgid(rgid: crate::gid_t, egid: crate::gid_t, sgid: crate::gid_t) -> c_int; #[cfg(not(target_os = "l4re"))] pub fn setresuid(ruid: crate::uid_t, euid: crate::uid_t, suid: crate::uid_t) -> c_int; - #[cfg_attr(gnu_time_bits64, link_name = "__wait4_time64")] + #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__wait4_time64")] #[cfg(not(target_os = "l4re"))] pub fn wait4( pid: crate::pid_t, diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 6ebf322b0247d..2458df9b5adf2 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -887,6 +887,7 @@ extern "C" { all(not(gnu_time_bits64), gnu_file_offset_bits64), link_name = "fstat64" )] + #[cfg_attr(musl32_time64, link_name = "__fstat_time64")] pub fn fstat(fildes: c_int, buf: *mut stat) -> c_int; pub fn mkdir(path: *const c_char, mode: mode_t) -> c_int; @@ -905,6 +906,7 @@ extern "C" { all(not(gnu_time_bits64), gnu_file_offset_bits64), link_name = "stat64" )] + #[cfg_attr(musl32_time64, link_name = "__stat_time64")] pub fn stat(path: *const c_char, buf: *mut stat) -> c_int; pub fn pclose(stream: *mut crate::FILE) -> c_int; @@ -999,6 +1001,7 @@ extern "C" { link_name = "fstatat64" )] #[cfg(not(target_os = "l4re"))] + #[cfg_attr(musl32_time64, link_name = "__fstatat_time64")] pub fn fstatat(dirfd: c_int, pathname: *const c_char, buf: *mut stat, flags: c_int) -> c_int; #[cfg(not(target_os = "l4re"))] pub fn linkat( @@ -1108,6 +1111,7 @@ extern "C" { )] #[cfg_attr(target_os = "netbsd", link_name = "__nanosleep50")] #[cfg_attr(gnu_time_bits64, link_name = "__nanosleep64")] + #[cfg_attr(musl32_time64, link_name = "__nanosleep_time64")] pub fn nanosleep(rqtp: *const timespec, rmtp: *mut timespec) -> c_int; pub fn tcgetpgrp(fd: c_int) -> pid_t; pub fn tcsetpgrp(fd: c_int, pgrp: crate::pid_t) -> c_int; @@ -1152,7 +1156,7 @@ extern "C" { pub fn umask(mask: mode_t) -> mode_t; #[cfg_attr(target_os = "netbsd", link_name = "__utime50")] - #[cfg_attr(gnu_time_bits64, link_name = "__utime64")] + #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__utime64")] pub fn utime(file: *const c_char, buf: *const utimbuf) -> c_int; #[cfg_attr( @@ -1207,6 +1211,7 @@ extern "C" { all(not(gnu_time_bits64), gnu_file_offset_bits64), link_name = "lstat64" )] + #[cfg_attr(musl32_time64, link_name = "__lstat_time64")] pub fn lstat(path: *const c_char, buf: *mut stat) -> c_int; #[cfg_attr( @@ -1238,6 +1243,7 @@ extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__getrusage50")] #[cfg_attr(gnu_time_bits64, link_name = "__getrusage64")] + #[cfg_attr(musl32_time64, link_name = "__getrusage_time64")] pub fn getrusage(resource: c_int, usage: *mut rusage) -> c_int; #[cfg_attr( @@ -1320,6 +1326,7 @@ extern "C" { link_name = "pthread_cond_timedwait$UNIX2003" )] #[cfg_attr(gnu_time_bits64, link_name = "__pthread_cond_timedwait64")] + #[cfg_attr(musl32_time64, link_name = "__pthread_cond_timedwait_time64")] pub fn pthread_cond_timedwait( cond: *mut crate::pthread_cond_t, lock: *mut crate::pthread_mutex_t, @@ -1388,9 +1395,11 @@ extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__utimes50")] #[cfg_attr(gnu_time_bits64, link_name = "__utimes64")] + #[cfg_attr(musl32_time64, link_name = "__utimes_time64")] pub fn utimes(filename: *const c_char, times: *const crate::timeval) -> c_int; pub fn dlopen(filename: *const c_char, flag: c_int) -> *mut c_void; pub fn dlerror() -> *mut c_char; + #[cfg_attr(musl32_time64, link_name = "__dlsym_time64")] pub fn dlsym(handle: *mut c_void, symbol: *const c_char) -> *mut c_void; pub fn dlclose(handle: *mut c_void) -> c_int; @@ -1439,49 +1448,44 @@ extern "C" { pub fn res_init() -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__gmtime_r50")] - #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME(time): for `time_t` #[cfg_attr(gnu_time_bits64, link_name = "__gmtime64_r")] + #[cfg_attr(not(musl32_time64), allow(deprecated))] + #[cfg_attr(musl32_time64, link_name = "__gmtime64_r")] pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; #[cfg_attr(target_os = "netbsd", link_name = "__localtime_r50")] - #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME(time): for `time_t` #[cfg_attr(gnu_time_bits64, link_name = "__localtime64_r")] + #[cfg_attr(not(musl32_time64), allow(deprecated))] + #[cfg_attr(musl32_time64, link_name = "__localtime64_r")] pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "mktime$UNIX2003" )] #[cfg_attr(target_os = "netbsd", link_name = "__mktime50")] - #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME: for `time_t` - #[cfg_attr(gnu_time_bits64, link_name = "__mktime64")] + #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__mktime64")] + #[cfg_attr(not(musl32_time64), allow(deprecated))] pub fn mktime(tm: *mut tm) -> time_t; #[cfg_attr(target_os = "netbsd", link_name = "__time50")] - #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME: for `time_t` - #[cfg_attr(gnu_time_bits64, link_name = "__time64")] + #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__time64")] + #[cfg_attr(not(musl32_time64), allow(deprecated))] pub fn time(time: *mut time_t) -> time_t; #[cfg_attr(target_os = "netbsd", link_name = "__gmtime50")] - #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME(time): for `time_t` - #[cfg_attr(gnu_time_bits64, link_name = "__gmtime64")] + #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__gmtime64")] + #[cfg_attr(not(musl32_time64), allow(deprecated))] pub fn gmtime(time_p: *const time_t) -> *mut tm; #[cfg_attr(target_os = "netbsd", link_name = "__locatime50")] - #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME(time): for `time_t` - #[cfg_attr(gnu_time_bits64, link_name = "__localtime64")] + #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__localtime64")] + #[cfg_attr(not(musl32_time64), allow(deprecated))] pub fn localtime(time_p: *const time_t) -> *mut tm; #[cfg_attr(target_os = "netbsd", link_name = "__difftime50")] - #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME(time): for `time_t` - #[cfg_attr(gnu_time_bits64, link_name = "__difftime64")] + #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__difftime64")] + #[cfg_attr(not(musl32_time64), allow(deprecated))] pub fn difftime(time1: time_t, time0: time_t) -> c_double; #[cfg(not(target_os = "aix"))] #[cfg_attr(target_os = "netbsd", link_name = "__timegm50")] - #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME(time): for `time_t` #[cfg_attr(gnu_time_bits64, link_name = "__timegm64")] + #[cfg_attr(not(musl32_time64), allow(deprecated))] + #[cfg_attr(musl32_time64, link_name = "__timegm_time64")] pub fn timegm(tm: *mut crate::tm) -> time_t; #[cfg_attr(target_os = "netbsd", link_name = "__mknod50")] @@ -1542,6 +1546,7 @@ extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__select50")] #[cfg_attr(target_os = "aix", link_name = "__fd_select")] #[cfg_attr(gnu_time_bits64, link_name = "__select64")] + #[cfg_attr(musl32_time64, link_name = "__select_time64")] pub fn select( nfds: c_int, readfds: *mut fd_set, @@ -1670,7 +1675,7 @@ cfg_if! { )))] { extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__adjtime50")] - #[cfg_attr(gnu_time_bits64, link_name = "__adjtime64")] + #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__adjtime64")] pub fn adjtime(delta: *const timeval, olddelta: *mut timeval) -> c_int; } } else if #[cfg(target_os = "solaris")] { @@ -1848,6 +1853,7 @@ cfg_if! { )] #[cfg_attr(target_os = "netbsd", link_name = "__pselect50")] #[cfg_attr(gnu_time_bits64, link_name = "__pselect64")] + #[cfg_attr(musl32_time64, link_name = "__pselect_time64")] pub fn pselect( nfds: c_int, readfds: *mut fd_set, From cbaea495374a0d6f4b0d643679e71e2532c51452 Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Tue, 13 May 2025 07:25:07 +0000 Subject: [PATCH 1076/1228] musl: time64: update struct sched_param A bunch of properties were removed upstream and set to reserved. This matches upstream commit bminor/musl@827aa8f and bminor/musl@2d69fcf (backport ) (cherry picked from commit 72a590fa1fd5faf3f947e02cda45e2b1ec165c8e) --- src/new/emscripten/mod.rs | 1 + src/new/emscripten/sched.rs | 38 +++++++++++++++++++++++++++++++++++++ src/new/mod.rs | 2 ++ src/new/musl/mod.rs | 1 + src/new/musl/sched.rs | 38 +++++++++++++++++++++++++++++++++++++ src/unix/linux_like/mod.rs | 9 +-------- 6 files changed, 81 insertions(+), 8 deletions(-) create mode 100644 src/new/emscripten/sched.rs create mode 100644 src/new/musl/sched.rs diff --git a/src/new/emscripten/mod.rs b/src/new/emscripten/mod.rs index f0765d3e06fff..9b74464059bb1 100644 --- a/src/new/emscripten/mod.rs +++ b/src/new/emscripten/mod.rs @@ -3,4 +3,5 @@ //! * Headers: pub(crate) mod pthread; +pub(crate) mod sched; pub(crate) mod unistd; diff --git a/src/new/emscripten/sched.rs b/src/new/emscripten/sched.rs new file mode 100644 index 0000000000000..3bf854ef33c29 --- /dev/null +++ b/src/new/emscripten/sched.rs @@ -0,0 +1,38 @@ +use crate::prelude::*; + +cfg_if! { + if #[cfg(musl_v1_2_3)] { + s! { + struct __c_anon_sched_param__reserved2 { + __reserved1: crate::time_t, + __reserved2: c_long, + } + + pub struct sched_param { + pub sched_priority: c_int, + + __reserved1: Padding, + #[cfg(musl32_time64)] + __reserved2: Padding<[c_long; 4]>, + #[cfg(not(musl32_time64))] + __reserved2: Padding<[__c_anon_sched_param__reserved2; 2]>, + __reserved3: Padding, + } + } + } else { + s! { + pub struct sched_param { + pub sched_priority: c_int, + + #[deprecated(since = "0.2.173", note = "This field has been removed upstream")] + pub sched_ss_low_priority: c_int, + #[deprecated(since = "0.2.173", note = "This field has been removed upstream")] + pub sched_ss_repl_period: crate::timespec, + #[deprecated(since = "0.2.173", note = "This field has been removed upstream")] + pub sched_ss_init_budget: crate::timespec, + #[deprecated(since = "0.2.173", note = "This field has been removed upstream")] + pub sched_ss_max_repl: c_int, + } + } + } +} diff --git a/src/new/mod.rs b/src/new/mod.rs index dd451bb5286bd..3e373ce520d7c 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -58,6 +58,7 @@ cfg_if! { pub(crate) use dragonfly::*; } else if #[cfg(target_os = "emscripten")] { mod emscripten; + pub use emscripten::sched::*; pub(crate) use emscripten::*; } else if #[cfg(target_os = "espidf")] { mod espidf; @@ -150,6 +151,7 @@ cfg_if! { } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] { // OhOS also uses the musl libc mod musl; + pub use musl::sched::*; pub(crate) use musl::*; } else if #[cfg(target_env = "newlib")] { mod newlib; diff --git a/src/new/musl/mod.rs b/src/new/musl/mod.rs index 9fd4d8e96100d..a6551c342da67 100644 --- a/src/new/musl/mod.rs +++ b/src/new/musl/mod.rs @@ -29,4 +29,5 @@ pub(crate) mod sys { pub(crate) mod socket; } +pub(crate) mod sched; pub(crate) mod unistd; diff --git a/src/new/musl/sched.rs b/src/new/musl/sched.rs new file mode 100644 index 0000000000000..3bf854ef33c29 --- /dev/null +++ b/src/new/musl/sched.rs @@ -0,0 +1,38 @@ +use crate::prelude::*; + +cfg_if! { + if #[cfg(musl_v1_2_3)] { + s! { + struct __c_anon_sched_param__reserved2 { + __reserved1: crate::time_t, + __reserved2: c_long, + } + + pub struct sched_param { + pub sched_priority: c_int, + + __reserved1: Padding, + #[cfg(musl32_time64)] + __reserved2: Padding<[c_long; 4]>, + #[cfg(not(musl32_time64))] + __reserved2: Padding<[__c_anon_sched_param__reserved2; 2]>, + __reserved3: Padding, + } + } + } else { + s! { + pub struct sched_param { + pub sched_priority: c_int, + + #[deprecated(since = "0.2.173", note = "This field has been removed upstream")] + pub sched_ss_low_priority: c_int, + #[deprecated(since = "0.2.173", note = "This field has been removed upstream")] + pub sched_ss_repl_period: crate::timespec, + #[deprecated(since = "0.2.173", note = "This field has been removed upstream")] + pub sched_ss_init_budget: crate::timespec, + #[deprecated(since = "0.2.173", note = "This field has been removed upstream")] + pub sched_ss_max_repl: c_int, + } + } + } +} diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 19195f0432912..291c2b634664b 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -103,16 +103,9 @@ s! { pub tm_zone: *const c_char, } + #[cfg(not(any(target_env = "musl", target_os = "emscripten", target_env = "ohos")))] pub struct sched_param { pub sched_priority: c_int, - #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))] - pub sched_ss_low_priority: c_int, - #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))] - pub sched_ss_repl_period: crate::timespec, - #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))] - pub sched_ss_init_budget: crate::timespec, - #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))] - pub sched_ss_max_repl: c_int, } pub struct Dl_info { From 55fa65b3e026594c6418eb2bc8e98c1feb7667da Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Thu, 4 Dec 2025 12:28:17 +0000 Subject: [PATCH 1077/1228] musl: convert inline timespecs to timespec (backport ) (cherry picked from commit 80b82d8330ac736023ce166e29c4d6160f09b0e5) --- libc-test/build.rs | 4 ++-- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 15 +++++++++++++++ src/unix/linux_like/linux/musl/b32/hexagon.rs | 14 ++++++++++++++ src/unix/linux_like/linux/musl/b32/mips/mod.rs | 15 +++++++++++++++ src/unix/linux_like/linux/musl/b32/powerpc.rs | 15 +++++++++++++++ src/unix/linux_like/linux/musl/b32/riscv32/mod.rs | 15 +++++++++++++++ src/unix/linux_like/linux/musl/b32/x86/mod.rs | 15 +++++++++++++++ src/unix/linux_like/linux/musl/b64/aarch64/mod.rs | 15 +++++++++++++++ .../linux_like/linux/musl/b64/loongarch64/mod.rs | 15 +++++++++++++++ src/unix/linux_like/linux/musl/b64/mips64.rs | 15 +++++++++++++++ src/unix/linux_like/linux/musl/b64/powerpc64.rs | 15 +++++++++++++++ src/unix/linux_like/linux/musl/b64/riscv64/mod.rs | 15 +++++++++++++++ src/unix/linux_like/linux/musl/b64/s390x.rs | 15 +++++++++++++++ src/unix/linux_like/linux/musl/b64/wasm32/mod.rs | 15 +++++++++++++++ src/unix/linux_like/linux/musl/b64/x86_64/mod.rs | 15 +++++++++++++++ 15 files changed, 211 insertions(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 0f2533a14121d..e39eb4e34be9e 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4118,9 +4118,9 @@ fn test_linux(target: &str) { cfg.rename_struct_field(move |struct_, field| { match (struct_.ident(), field.ident()) { // Our stat *_nsec fields normally don't actually exist but are part - // of a timeval struct + // of a timeval struct - this is fixed in musl_v1_2_3 ("stat" | "statfs" | "statvfs" | "stat64" | "statfs64" | "statvfs64", f) - if f.ends_with("_nsec") => + if !musl_v1_2_3 && f.ends_with("_nsec") => { Some(f.replace("e_nsec", ".tv_nsec")) } diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index 0f2daa5fc018c..e1d0a5b37dc5c 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -19,12 +19,27 @@ s! { pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, + + #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, + + #[cfg(musl_v1_2_3)] + pub st_atim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_mtim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_ctim: crate::timespec, + pub st_ino: crate::ino_t, } diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 8ce439cee5bf9..7aa01d625cdcd 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -17,13 +17,27 @@ s! { pub st_blksize: crate::blksize_t, __st_blksize_padding: Padding, pub st_blocks: crate::blkcnt_t, + + #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, + #[cfg(musl_v1_2_3)] + pub st_atim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_mtim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_ctim: crate::timespec, + __unused: Padding<[c_int; 2]>, } diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index b4a7f1a575dda..e3b9ec7fa3dcb 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -17,12 +17,27 @@ s! { pub st_rdev: crate::dev_t, __st_padding2: Padding<[c_long; 2]>, pub st_size: off_t, + + #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, + + #[cfg(musl_v1_2_3)] + pub st_atim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_mtim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_ctim: crate::timespec, + pub st_blksize: crate::blksize_t, __st_padding3: Padding, pub st_blocks: crate::blkcnt_t, diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 6e5bcde7ce112..1b28e331827df 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -29,12 +29,27 @@ s! { pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, + + #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, + + #[cfg(musl_v1_2_3)] + pub st_atim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_mtim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_ctim: crate::timespec, + __unused: Padding<[c_long; 2]>, } diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index 45fa0a2081ff1..5561dcb34d358 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -21,12 +21,27 @@ s! { pub st_blksize: crate::blksize_t, pub __pad2: c_int, pub st_blocks: crate::blkcnt_t, + + #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, + + #[cfg(musl_v1_2_3)] + pub st_atim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_mtim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_ctim: crate::timespec, + __unused: Padding<[c_int; 2usize]>, } diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 0db24b65932ff..73b1ef9618e28 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -19,12 +19,27 @@ s! { pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, + + #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, + + #[cfg(musl_v1_2_3)] + pub st_atim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_mtim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_ctim: crate::timespec, + pub st_ino: crate::ino_t, } diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index e28310be3ee32..47f29d5e11abf 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -23,12 +23,27 @@ s! { pub st_blksize: crate::blksize_t, __pad1: Padding, pub st_blocks: crate::blkcnt_t, + + #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, + + #[cfg(musl_v1_2_3)] + pub st_atim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_mtim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_ctim: crate::timespec, + __unused: Padding<[c_uint; 2]>, } diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index 8e890be51848f..29f7d49cc8320 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -26,12 +26,27 @@ s! { pub st_blksize: crate::blksize_t, __pad2: Padding, pub st_blocks: crate::blkcnt_t, + + #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, + + #[cfg(musl_v1_2_3)] + pub st_atim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_mtim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_ctim: crate::timespec, + __unused: Padding<[c_int; 2usize]>, } diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index 1fb8618c30c0b..d05b40bd38a11 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -22,12 +22,27 @@ s! { __pad2: Padding<[c_uint; 2]>, pub st_size: off_t, __pad3: Padding, + + #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, + + #[cfg(musl_v1_2_3)] + pub st_atim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_mtim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_ctim: crate::timespec, + pub st_blksize: crate::blksize_t, __pad4: Padding, pub st_blocks: crate::blkcnt_t, diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index 4885ea2f0e182..6e0d6db6a1978 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -33,12 +33,27 @@ s! { pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, + + #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, + + #[cfg(musl_v1_2_3)] + pub st_atim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_mtim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_ctim: crate::timespec, + __unused: Padding<[c_long; 3]>, } diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index bd395e49cefc1..ba9bebd84cc73 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -26,12 +26,27 @@ s! { pub st_blksize: crate::blksize_t, __pad2: Padding, pub st_blocks: crate::blkcnt_t, + + #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, + + #[cfg(musl_v1_2_3)] + pub st_atim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_mtim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_ctim: crate::timespec, + __unused: Padding<[c_int; 2usize]>, } diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index 0ee6c11c6a1e6..7776e10b60dce 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -40,12 +40,27 @@ s! { pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, pub st_size: off_t, + + #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, + + #[cfg(musl_v1_2_3)] + pub st_atim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_mtim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_ctim: crate::timespec, + pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, __unused: Padding<[c_long; 3]>, diff --git a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs index 1a4d89632dcc9..06b34c25d9238 100644 --- a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs @@ -24,12 +24,27 @@ s! { pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, + + #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, + + #[cfg(musl_v1_2_3)] + pub st_atim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_mtim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_ctim: crate::timespec, + __unused: Padding<[c_long; 3]>, } diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index dcc41752c6e86..ec9a31bccf577 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -23,12 +23,27 @@ s! { pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, + + #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, + + #[cfg(musl_v1_2_3)] + pub st_atim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_mtim: crate::timespec, + #[cfg(musl_v1_2_3)] + pub st_ctim: crate::timespec, + __unused: Padding<[c_long; 3]>, } From 98fc691dfdb5a4fd83073dfd32973895d9fc995b Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Mon, 19 May 2025 10:43:43 +0000 Subject: [PATCH 1078/1228] musl: time64: change time_t type and structs Change time_t type to i64 Change struct stat, msqid_ds and shmid_ds to reflect This commit follows upstream bminor/musl@3814333 and bminor/musl@d6dcfe4 It also implements a fix from bminor/musl@0fbd7d6 (backport ) (cherry picked from commit 793fa971aabfbadb1ef9564cdc9fcdc31f3ef636) --- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 94 +++++++-- .../linux_like/linux/musl/b32/mips/mod.rs | 178 ++++++++++++++---- src/unix/linux_like/linux/musl/b32/powerpc.rs | 97 ++++++++-- src/unix/linux_like/linux/musl/b32/x86/mod.rs | 94 +++++++-- src/unix/linux_like/linux/musl/mod.rs | 15 ++ 5 files changed, 393 insertions(+), 85 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index e1d0a5b37dc5c..0f96453fde4f4 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -20,27 +20,33 @@ s! { pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, - #[cfg(not(musl_v1_2_3))] - pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] - pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] - pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] - pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] - pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] - pub st_ctime_nsec: c_long, + #[cfg(musl32_time64)] + __st_atim32: Padding<__c_anonymous_timespec32>, + #[cfg(musl32_time64)] + __st_mtim32: Padding<__c_anonymous_timespec32>, + #[cfg(musl32_time64)] + __st_ctim32: Padding<__c_anonymous_timespec32>, - #[cfg(musl_v1_2_3)] + #[cfg(not(musl32_time64))] pub st_atim: crate::timespec, - #[cfg(musl_v1_2_3)] + #[cfg(not(musl32_time64))] pub st_mtim: crate::timespec, - #[cfg(musl_v1_2_3)] + #[cfg(not(musl32_time64))] pub st_ctim: crate::timespec, pub st_ino: crate::ino_t, + + #[cfg(musl32_time64)] + pub st_atim: crate::timespec, + #[cfg(musl32_time64)] + pub st_mtim: crate::timespec, + #[cfg(musl32_time64)] + pub st_ctim: crate::timespec, + } + + struct __c_anonymous_timespec32 { + __tv_sec: c_long, + __tv_nsec: c_long, } pub struct stack_t { @@ -72,27 +78,78 @@ s! { pub struct shmid_ds { pub shm_perm: crate::ipc_perm, pub shm_segsz: size_t, + + #[cfg(musl32_time64)] + __shm_atime_lo: Padding, + #[cfg(musl32_time64)] + __shm_atime_hi: Padding, + #[cfg(musl32_time64)] + __shm_dtime_lo: Padding, + #[cfg(musl32_time64)] + __shm_dtime_hi: Padding, + #[cfg(musl32_time64)] + __msg_ctime_lo: Padding, + #[cfg(musl32_time64)] + __msg_ctime_hi: Padding, + + #[cfg(not(musl32_time64))] pub shm_atime: crate::time_t, + #[cfg(not(musl32_time64))] __unused1: Padding, + #[cfg(not(musl32_time64))] pub shm_dtime: crate::time_t, + #[cfg(not(musl32_time64))] __unused2: Padding, + #[cfg(not(musl32_time64))] pub shm_ctime: crate::time_t, + #[cfg(not(musl32_time64))] __unused3: Padding, + pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: c_ulong, __pad1: Padding, __pad2: Padding, + + #[cfg(musl32_time64)] + __pad3: c_ulong, + #[cfg(musl32_time64)] + shm_atime: crate::time_t, + #[cfg(musl32_time64)] + shm_dtime: crate::time_t, + #[cfg(musl32_time64)] + shm_ctime: crate::time_t, } pub struct msqid_ds { pub msg_perm: crate::ipc_perm, + + #[cfg(musl32_time64)] + __msg_stime_lo: Padding, + #[cfg(musl32_time64)] + __msg_stime_hi: Padding, + #[cfg(musl32_time64)] + __msg_rtime_lo: Padding, + #[cfg(musl32_time64)] + __msg_rtime_hi: Padding, + #[cfg(musl32_time64)] + __msg_ctime_lo: Padding, + #[cfg(musl32_time64)] + __msg_ctime_hi: Padding, + + #[cfg(not(musl32_time64))] pub msg_stime: crate::time_t, + #[cfg(not(musl32_time64))] __unused1: Padding, + #[cfg(not(musl32_time64))] pub msg_rtime: crate::time_t, + #[cfg(not(musl32_time64))] __unused2: Padding, + #[cfg(not(musl32_time64))] pub msg_ctime: crate::time_t, + #[cfg(not(musl32_time64))] __unused3: Padding, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, @@ -100,6 +157,13 @@ s! { pub msg_lrpid: crate::pid_t, __pad1: Padding, __pad2: Padding, + + #[cfg(musl32_time64)] + pub msg_stime: crate::time_t, + #[cfg(musl32_time64)] + pub msg_rtime: crate::time_t, + #[cfg(musl32_time64)] + pub msg_ctime: crate::time_t, } pub struct mcontext_t { diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index e3b9ec7fa3dcb..0771a7f67c888 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -18,30 +18,40 @@ s! { __st_padding2: Padding<[c_long; 2]>, pub st_size: off_t, - #[cfg(not(musl_v1_2_3))] - pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] - pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] - pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] - pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] - pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] - pub st_ctime_nsec: c_long, + #[cfg(musl32_time64)] + __st_atim32: Padding<__c_anonymous_timespec32>, + #[cfg(musl32_time64)] + __st_mtim32: Padding<__c_anonymous_timespec32>, + #[cfg(musl32_time64)] + __st_ctim32: Padding<__c_anonymous_timespec32>, - #[cfg(musl_v1_2_3)] + #[cfg(not(musl32_time64))] pub st_atim: crate::timespec, - #[cfg(musl_v1_2_3)] + #[cfg(not(musl32_time64))] pub st_mtim: crate::timespec, - #[cfg(musl_v1_2_3)] + #[cfg(not(musl32_time64))] pub st_ctim: crate::timespec, pub st_blksize: crate::blksize_t, __st_padding3: Padding, pub st_blocks: crate::blkcnt_t, + #[cfg(not(musl32_time64))] __st_padding4: Padding<[c_long; 14]>, + + #[cfg(musl32_time64)] + pub st_atim: crate::timespec, + #[cfg(musl32_time64)] + pub st_mtim: crate::timespec, + #[cfg(musl32_time64)] + pub st_ctim: crate::timespec, + + #[cfg(musl32_time64)] + __st_padding4: Padding<[c_long; 2]>, + } + + struct __c_anonymous_timespec32 { + __tv_sec: c_long, + __tv_nsec: c_long, } pub struct stack_t { @@ -73,40 +83,40 @@ s! { pub struct shmid_ds { pub shm_perm: crate::ipc_perm, pub shm_segsz: size_t, + #[cfg(not(musl32_time64))] pub shm_atime: crate::time_t, + #[cfg(not(musl32_time64))] pub shm_dtime: crate::time_t, + #[cfg(not(musl32_time64))] pub shm_ctime: crate::time_t, + #[cfg(musl32_time64)] + __shm_atime_lo: Padding, + #[cfg(musl32_time64)] + __shm_dtime_lo: Padding, + #[cfg(musl32_time64)] + __shm_ctime_lo: Padding, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: c_ulong, + #[cfg(not(musl32_time64))] __pad1: Padding, + #[cfg(not(musl32_time64))] __pad2: Padding, - } - pub struct msqid_ds { - pub msg_perm: crate::ipc_perm, - #[cfg(target_endian = "big")] - __unused1: Padding, - pub msg_stime: crate::time_t, - #[cfg(target_endian = "little")] - __unused1: Padding, - #[cfg(target_endian = "big")] - __unused2: Padding, - pub msg_rtime: crate::time_t, - #[cfg(target_endian = "little")] - __unused2: Padding, - #[cfg(target_endian = "big")] - __unused3: Padding, - pub msg_ctime: crate::time_t, - #[cfg(target_endian = "little")] - __unused3: Padding, - pub __msg_cbytes: c_ulong, - pub msg_qnum: crate::msgqnum_t, - pub msg_qbytes: crate::msglen_t, - pub msg_lspid: crate::pid_t, - pub msg_lrpid: crate::pid_t, - __pad1: Padding, - __pad2: Padding, + #[cfg(musl32_time64)] + __shm_atime_hi: Padding, + #[cfg(musl32_time64)] + __shm_dtime_hi: Padding, + #[cfg(musl32_time64)] + __shm_ctime_hi: Padding, + #[cfg(musl32_time64)] + __pad1: Padding, + #[cfg(musl32_time64)] + pub shm_atime: crate::time_t, + #[cfg(musl32_time64)] + pub shm_dtime: crate::time_t, + #[cfg(musl32_time64)] + pub shm_ctime: crate::time_t, } pub struct statfs { @@ -140,6 +150,94 @@ s! { } } +cfg_if! { + if #[cfg(musl32_time64)] { + s! { + pub struct msqid_ds { + pub msg_perm: crate::ipc_perm, + + #[cfg(target_endian = "big")] + __msg_stime_hi: Padding, + #[cfg(target_endian = "big")] + __msg_stime_lo: Padding, + #[cfg(target_endian = "big")] + __msg_rtime_hi: Padding, + #[cfg(target_endian = "big")] + __msg_rtime_lo: Padding, + #[cfg(target_endian = "big")] + __msg_ctime_hi: Padding, + #[cfg(target_endian = "big")] + __msg_ctime_lo: Padding, + + #[cfg(target_endian = "little")] + __msg_stime_lo: Padding, + #[cfg(target_endian = "little")] + __msg_stime_hi: Padding, + #[cfg(target_endian = "little")] + __msg_rtime_lo: Padding, + #[cfg(target_endian = "little")] + __msg_rtime_hi: Padding, + #[cfg(target_endian = "little")] + __msg_ctime_lo: Padding, + #[cfg(target_endian = "little")] + __msg_ctime_hi: Padding, + + pub __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __pad1: Padding, + __pad2: Padding, + + pub msg_stime: crate::time_t, + pub msg_rtime: crate::time_t, + pub msg_ctime: crate::time_t, + } + } + } else { + s! { + pub struct msqid_ds { + pub msg_perm: crate::ipc_perm, + + #[cfg(target_endian = "big")] + __unused1: Padding, + #[cfg(target_endian = "big")] + pub msg_stime: crate::time_t, + #[cfg(target_endian = "big")] + __unused2: Padding, + #[cfg(target_endian = "big")] + pub msg_rtime: crate::time_t, + #[cfg(target_endian = "big")] + __unused3: Padding, + #[cfg(target_endian = "big")] + pub msg_ctime: crate::time_t, + + #[cfg(target_endian = "little")] + pub msg_stime: crate::time_t, + #[cfg(target_endian = "little")] + __unused1: Padding, + #[cfg(target_endian = "little")] + pub msg_rtime: crate::time_t, + #[cfg(target_endian = "little")] + __unused2: Padding, + #[cfg(target_endian = "little")] + pub msg_ctime: crate::time_t, + #[cfg(target_endian = "little")] + __unused3: Padding, + + pub __msg_cbytes: c_ulong, + pub msg_qnum: crate::msgqnum_t, + pub msg_qbytes: crate::msglen_t, + pub msg_lspid: crate::pid_t, + pub msg_lrpid: crate::pid_t, + __pad1: Padding, + __pad2: Padding, + } + } + } +} + s_no_extra_traits! { #[repr(align(8))] pub struct max_align_t { diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 1b28e331827df..64a2719abbc11 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -30,27 +30,33 @@ s! { pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, - #[cfg(not(musl_v1_2_3))] - pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] - pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] - pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] - pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] - pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] - pub st_ctime_nsec: c_long, + #[cfg(musl32_time64)] + __st_atim32: Padding<__c_anonymous_timespec32>, + #[cfg(musl32_time64)] + __st_mtim32: Padding<__c_anonymous_timespec32>, + #[cfg(musl32_time64)] + __st_ctim32: Padding<__c_anonymous_timespec32>, - #[cfg(musl_v1_2_3)] + #[cfg(not(musl32_time64))] pub st_atim: crate::timespec, - #[cfg(musl_v1_2_3)] + #[cfg(not(musl32_time64))] pub st_mtim: crate::timespec, - #[cfg(musl_v1_2_3)] + #[cfg(not(musl32_time64))] pub st_ctim: crate::timespec, __unused: Padding<[c_long; 2]>, + + #[cfg(musl32_time64)] + pub st_atim: crate::timespec, + #[cfg(musl32_time64)] + pub st_mtim: crate::timespec, + #[cfg(musl32_time64)] + pub st_ctim: crate::timespec, + } + + struct __c_anonymous_timespec32 { + __tv_sec: c_long, + __tv_nsec: c_long, } pub struct stack_t { @@ -82,29 +88,83 @@ s! { pub struct shmid_ds { pub shm_perm: crate::ipc_perm, + + #[cfg(musl32_time64)] + __shm_atime_hi: Padding, + #[cfg(musl32_time64)] + __shm_atime_lo: Padding, + #[cfg(musl32_time64)] + __shm_dtime_hi: Padding, + #[cfg(musl32_time64)] + __shm_dtime_lo: Padding, + #[cfg(musl32_time64)] + __shm_ctime_hi: Padding, + #[cfg(musl32_time64)] + __shm_ctime_lo: Padding, + + #[cfg(not(musl32_time64))] __unused1: Padding, + #[cfg(not(musl32_time64))] pub shm_atime: crate::time_t, + #[cfg(not(musl32_time64))] __unused2: Padding, + #[cfg(not(musl32_time64))] pub shm_dtime: crate::time_t, + #[cfg(not(musl32_time64))] __unused3: Padding, + #[cfg(not(musl32_time64))] pub shm_ctime: crate::time_t, + #[cfg(not(musl32_time64))] __unused4: Padding, + + #[cfg(musl32_time64)] + __pad1: Padding, + pub shm_segsz: size_t, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: c_ulong, + #[cfg(not(musl32_time64))] __pad1: Padding, __pad2: Padding, + + #[cfg(musl32_time64)] + pub shm_atime: crate::time_t, + #[cfg(musl32_time64)] + pub shm_dtime: crate::time_t, + #[cfg(musl32_time64)] + pub shm_ctime: crate::time_t, } pub struct msqid_ds { pub msg_perm: crate::ipc_perm, + + #[cfg(musl32_time64)] + __msg_stime_hi: Padding, + #[cfg(musl32_time64)] + __msg_stime_lo: Padding, + #[cfg(musl32_time64)] + __msg_rtime_hi: Padding, + #[cfg(musl32_time64)] + __msg_rtime_lo: Padding, + #[cfg(musl32_time64)] + __msg_ctime_hi: Padding, + #[cfg(musl32_time64)] + __msg_ctime_lo: Padding, + + #[cfg(not(musl32_time64))] __unused1: Padding, + #[cfg(not(musl32_time64))] pub msg_stime: crate::time_t, + #[cfg(not(musl32_time64))] __unused2: Padding, + #[cfg(not(musl32_time64))] pub msg_rtime: crate::time_t, + #[cfg(not(musl32_time64))] __unused3: Padding, + #[cfg(not(musl32_time64))] pub msg_ctime: crate::time_t, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, @@ -112,6 +172,13 @@ s! { pub msg_lrpid: crate::pid_t, __pad1: Padding, __pad2: Padding, + + #[cfg(musl32_time64)] + pub msg_stime: crate::time_t, + #[cfg(musl32_time64)] + pub msg_rtime: crate::time_t, + #[cfg(musl32_time64)] + pub msg_ctime: crate::time_t, } } diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 73b1ef9618e28..3f2145bc266ef 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -20,27 +20,33 @@ s! { pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, - #[cfg(not(musl_v1_2_3))] - pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] - pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] - pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] - pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] - pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] - pub st_ctime_nsec: c_long, + #[cfg(musl32_time64)] + __st_atim32: Padding<__c_anonymous_timespec32>, + #[cfg(musl32_time64)] + __st_mtim32: Padding<__c_anonymous_timespec32>, + #[cfg(musl32_time64)] + __st_ctim32: Padding<__c_anonymous_timespec32>, - #[cfg(musl_v1_2_3)] + #[cfg(not(musl32_time64))] pub st_atim: crate::timespec, - #[cfg(musl_v1_2_3)] + #[cfg(not(musl32_time64))] pub st_mtim: crate::timespec, - #[cfg(musl_v1_2_3)] + #[cfg(not(musl32_time64))] pub st_ctim: crate::timespec, pub st_ino: crate::ino_t, + + #[cfg(musl32_time64)] + pub st_atim: crate::timespec, + #[cfg(musl32_time64)] + pub st_mtim: crate::timespec, + #[cfg(musl32_time64)] + pub st_ctim: crate::timespec, + } + + struct __c_anonymous_timespec32 { + __tv_sec: c_long, + __tv_nsec: c_long, } pub struct mcontext_t { @@ -76,27 +82,78 @@ s! { pub struct shmid_ds { pub shm_perm: crate::ipc_perm, pub shm_segsz: size_t, + + #[cfg(musl32_time64)] + __shm_atime_lo: c_ulong, + #[cfg(musl32_time64)] + __shm_atime_hi: c_ulong, + #[cfg(musl32_time64)] + __shm_dtime_lo: c_ulong, + #[cfg(musl32_time64)] + __shm_dtime_hi: c_ulong, + #[cfg(musl32_time64)] + __msg_ctime_lo: c_ulong, + #[cfg(musl32_time64)] + __msg_ctime_hi: c_ulong, + + #[cfg(not(musl32_time64))] pub shm_atime: crate::time_t, + #[cfg(not(musl32_time64))] __unused1: Padding, + #[cfg(not(musl32_time64))] pub shm_dtime: crate::time_t, + #[cfg(not(musl32_time64))] __unused2: Padding, + #[cfg(not(musl32_time64))] pub shm_ctime: crate::time_t, + #[cfg(not(musl32_time64))] __unused3: Padding, + pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: c_ulong, __pad1: Padding, __pad2: Padding, + + #[cfg(musl32_time64)] + __pad3: c_ulong, + #[cfg(musl32_time64)] + shm_atime: crate::time_t, + #[cfg(musl32_time64)] + shm_dtime: crate::time_t, + #[cfg(musl32_time64)] + shm_ctime: crate::time_t, } pub struct msqid_ds { pub msg_perm: crate::ipc_perm, + + #[cfg(musl32_time64)] + __msg_stime_lo: c_ulong, + #[cfg(musl32_time64)] + __msg_stime_hi: c_ulong, + #[cfg(musl32_time64)] + __msg_rtime_lo: c_ulong, + #[cfg(musl32_time64)] + __msg_rtime_hi: c_ulong, + #[cfg(musl32_time64)] + __msg_ctime_lo: c_ulong, + #[cfg(musl32_time64)] + __msg_ctime_hi: c_ulong, + + #[cfg(not(musl32_time64))] pub msg_stime: crate::time_t, + #[cfg(not(musl32_time64))] __unused1: Padding, + #[cfg(not(musl32_time64))] pub msg_rtime: crate::time_t, + #[cfg(not(musl32_time64))] __unused2: Padding, + #[cfg(not(musl32_time64))] pub msg_ctime: crate::time_t, + #[cfg(not(musl32_time64))] __unused3: Padding, + pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, @@ -104,6 +161,13 @@ s! { pub msg_lrpid: crate::pid_t, __pad1: Padding, __pad2: Padding, + + #[cfg(musl32_time64)] + pub msg_stime: crate::time_t, + #[cfg(musl32_time64)] + pub msg_rtime: crate::time_t, + #[cfg(musl32_time64)] + pub msg_ctime: crate::time_t, } pub struct user_fpxregs_struct { diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 208330b4ab75b..f257e51d044e3 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -3,6 +3,9 @@ use crate::prelude::*; pub type pthread_t = *mut c_void; pub type clock_t = c_long; +#[cfg(musl32_time64)] +pub type time_t = i64; +#[cfg(not(musl32_time64))] #[cfg_attr( not(feature = "rustc-dep-of-std"), deprecated( @@ -13,6 +16,18 @@ pub type clock_t = c_long; ) )] pub type time_t = c_long; +#[cfg(musl32_time64)] +pub type suseconds_t = i64; +#[cfg(not(musl32_time64))] +#[cfg_attr( + not(feature = "rustc-dep-of-std"), + deprecated( + since = "0.2.80", + note = "This type is changed to 64-bit in musl 1.2.0, \ + we'll follow that change in the future release. \ + See #1848 for more info." + ) +)] pub type suseconds_t = c_long; pub type ino_t = u64; pub type off_t = i64; From a61d0fc6cd7e01fe960b9b899ee23283cefe3a0c Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Mon, 19 May 2025 10:47:37 +0000 Subject: [PATCH 1079/1228] musl: time64: update {IPC,MSG,SEM}_STAT definitions This is primarily based on a small part of bminor/musl@3814333. This also integrates bminor/musl@3c02bac, which update MSG_STAT, SEM_STAT, SEM_STAT_ANY. These are based on the value of IPC_STAT, however we can just use `cfg` as it is effectively the same. (backport ) (cherry picked from commit 3d9801debc89299c7b4afb1cb12a647810430f94) --- src/unix/linux_like/linux/mod.rs | 7 +++---- src/unix/linux_like/linux_l4re_shared.rs | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 82920894f3e24..7b2c21df5516c 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1,5 +1,4 @@ //! Linux-specific definitions for linux-like values - use crate::prelude::*; use crate::{ sock_filter, @@ -1609,7 +1608,7 @@ pub const RENAME_NOREPLACE: c_uint = 1; pub const RENAME_EXCHANGE: c_uint = 2; pub const RENAME_WHITEOUT: c_uint = 4; -pub const MSG_STAT: c_int = 11; +pub const MSG_STAT: c_int = 11 | (crate::IPC_STAT & 0x100); pub const MSG_INFO: c_int = 12; pub const MSG_NOTIFICATION: c_int = 0x8000; @@ -1626,9 +1625,9 @@ pub const GETNCNT: c_int = 14; pub const GETZCNT: c_int = 15; pub const SETVAL: c_int = 16; pub const SETALL: c_int = 17; -pub const SEM_STAT: c_int = 18; +pub const SEM_STAT: c_int = 18 | (crate::IPC_STAT & 0x100); pub const SEM_INFO: c_int = 19; -pub const SEM_STAT_ANY: c_int = 20; +pub const SEM_STAT_ANY: c_int = 20 | (crate::IPC_STAT & 0x100); pub const QFMT_VFS_OLD: c_int = 1; pub const QFMT_VFS_V0: c_int = 2; diff --git a/src/unix/linux_like/linux_l4re_shared.rs b/src/unix/linux_like/linux_l4re_shared.rs index 39f24f9087247..bd3cfafeb6e72 100644 --- a/src/unix/linux_like/linux_l4re_shared.rs +++ b/src/unix/linux_like/linux_l4re_shared.rs @@ -976,7 +976,7 @@ pub const IPC_NOWAIT: c_int = 0o4000; pub const IPC_RMID: c_int = 0; pub const IPC_SET: c_int = 1; -pub const IPC_STAT: c_int = 2; +pub const IPC_STAT: c_int = if cfg!(musl32_time64) { 0x102 } else { 2 }; pub const IPC_INFO: c_int = 3; pub const SHM_R: c_int = 0o400; From 59ff71394695135eb9fe8707eb6949a4a7d465e2 Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Sat, 24 May 2025 12:34:36 +0000 Subject: [PATCH 1080/1228] semver: linux powerpc: split GNU-specific symbols into own file. This fixes test failures on musl. (backport ) (cherry picked from commit 8195473b4407f59a5e89b358485b4f55d39d5cf1) --- libc-test/semver/linux-powerpc-gnu.txt | 16 ++++++++++++++++ libc-test/semver/linux-powerpc.txt | 16 ---------------- 2 files changed, 16 insertions(+), 16 deletions(-) create mode 100644 libc-test/semver/linux-powerpc-gnu.txt diff --git a/libc-test/semver/linux-powerpc-gnu.txt b/libc-test/semver/linux-powerpc-gnu.txt new file mode 100644 index 0000000000000..d63be666e789f --- /dev/null +++ b/libc-test/semver/linux-powerpc-gnu.txt @@ -0,0 +1,16 @@ +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 +PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP +PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP +PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP +sysctl diff --git a/libc-test/semver/linux-powerpc.txt b/libc-test/semver/linux-powerpc.txt index 2826bb98d20e3..a559c891a4f95 100644 --- a/libc-test/semver/linux-powerpc.txt +++ b/libc-test/semver/linux-powerpc.txt @@ -2,27 +2,12 @@ B2500000 B3000000 B3500000 B4000000 -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 -PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP -PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP -PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP PTRACE_GETFPREGS PTRACE_GETREGS PTRACE_SETFPREGS @@ -158,4 +143,3 @@ TIOCSRS485 flock64 fsblkcnt64_t fsfilcnt64_t -sysctl From 2d152c2897f47fb4006377f007ca01badba56c5b Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Thu, 26 Jun 2025 10:40:22 +0000 Subject: [PATCH 1081/1228] libc-test: add allowlist for positive s! marco configs Namely, this allows `target_endian` as well as adds a constant array where certain configs are explicitly allowed (e.g. musl32_time64). (backport ) (cherry picked from commit 75fb1f0658fc95b7614a6c6f0b0026389e8eefd9) --- libc-test/tests/style_lib/mod.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libc-test/tests/style_lib/mod.rs b/libc-test/tests/style_lib/mod.rs index 04eec91df635d..34d3cc807c6a1 100644 --- a/libc-test/tests/style_lib/mod.rs +++ b/libc-test/tests/style_lib/mod.rs @@ -51,6 +51,12 @@ use syn::visit::{ use syn::Token; const ALLOWED_REPEATED_MACROS: &[&str] = &["s", "s_no_extra_traits", "s_paren"]; +const ALLOWED_POSITIVE_S_CFGS: &[&str] = &[ + "gnu_file_offset_bits64", + "gnu_time_bits64", + "musl32_time64", + "musl_v1_2_3", +]; pub type Error = Box; pub type Result = std::result::Result; @@ -285,6 +291,8 @@ impl StyleChecker { if !meta_str.starts_with("not") && !meta_str.starts_with("any") && !meta_str.starts_with("all") + && !meta_str.starts_with("target_endian") + && !ALLOWED_POSITIVE_S_CFGS.contains(&meta_str.as_str()) { self.error( "positive #[cfg] for s! macro".to_string(), From d71c136ec2ad1a76a20a8942a8c154486791b91b Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Thu, 30 Oct 2025 08:48:38 +0000 Subject: [PATCH 1082/1228] libc-test: delete handle_s_macro_no_attrs Unfortunately does not seem to handle cfg_if well (backport ) (cherry picked from commit 587fd843559374b9083d66fd6ecff9f831cfc671) --- libc-test/tests/style_lib/mod.rs | 23 +---------------------- libc-test/tests/style_tests.rs | 13 ------------- 2 files changed, 1 insertion(+), 35 deletions(-) diff --git a/libc-test/tests/style_lib/mod.rs b/libc-test/tests/style_lib/mod.rs index 34d3cc807c6a1..d436dcaaa2800 100644 --- a/libc-test/tests/style_lib/mod.rs +++ b/libc-test/tests/style_lib/mod.rs @@ -242,25 +242,6 @@ impl StyleChecker { self.state = initial_state; } - /// If we see a normal s! macro without any attributes we just need - /// to check if there are any duplicates. - fn handle_s_macro_no_attrs(&mut self, item_macro: &syn::ItemMacro) { - let span = item_macro.span(); - match self.seen_s_macro_cfgs.get("") { - Some(seen_span) => { - self.error( - "duplicate s! macro".to_string(), - span, - format!("other s! macro"), - (Some(*seen_span), "combine the two".to_string()), - ); - } - None => { - self.seen_s_macro_cfgs.insert(String::new(), span); - } - } - } - /// If an s! macro has attributes we check for any duplicates as well /// as if they are standalone positive cfgs that would be better /// in a separate file. @@ -367,9 +348,7 @@ impl<'ast> Visit<'ast> for StyleChecker { /// instead of [syn::Macro] because it contains the attributes. fn visit_item_macro(&mut self, item_macro: &'ast syn::ItemMacro) { if item_macro.mac.path.is_ident("s") { - if item_macro.attrs.is_empty() { - self.handle_s_macro_no_attrs(item_macro); - } else { + if !item_macro.attrs.is_empty() { self.handle_s_macro_with_attrs(item_macro); } } diff --git a/libc-test/tests/style_tests.rs b/libc-test/tests/style_tests.rs index e136bb66d26a4..c325a51770b6e 100644 --- a/libc-test/tests/style_tests.rs +++ b/libc-test/tests/style_tests.rs @@ -154,19 +154,6 @@ s! { pub struct bar { /* ... */ } } checker.finalize().unwrap(); } -#[test] -fn check_style_reject_duplicated_s_macro() { - let contents = r#" -s! {} -s! {} -"# - .to_string(); - - let mut checker = StyleChecker::new(); - checker.check_string(contents).unwrap(); - assert!(checker.finalize().is_err()); -} - #[test] fn check_style_reject_duplicated_s_macro_cfg() { let contents = r#" From 2131fa1c925de5ef1d292e73e86f300babc9d900 Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Thu, 4 Dec 2025 13:19:12 +0000 Subject: [PATCH 1083/1228] Revert "test: Skip `input_event.time` on recent musl" This reverts commit 34e758376862382e0da205c918160f398e9e72b5. (backport ) (cherry picked from commit 092ccf22c974f18202a869f50e15a8f03524c3a8) --- libc-test/build.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index e39eb4e34be9e..21c6702b2ce17 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4893,8 +4893,6 @@ fn test_linux(target: &str) { ("xsk_tx_metadata", "xsk_tx_metadata_union") => true, // After musl 1.2.0, the type becomes `int` instead of `long`. ("utmpx", "ut_session") if musl => true, - // FIXME(musl,time): changed with the musl time updates - ("input_event", "time") if musl_v1_2_3 => true, // `frames` is a flexible array member ("bcm_msg_head", "frames") => true, // FAM From ca8cd036509df34a2f41b0573847ebebf87bf252 Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Thu, 4 Dec 2025 13:19:04 +0000 Subject: [PATCH 1084/1228] Revert "test: musl: Skip time64-dependent API on new musl" This reverts commit 72fe537010f9600bfedbb43af89bdb8ff967317e. (backport ) (cherry picked from commit 7726e8fb57c1cdbb1a66dbb5366d19567a5f5f8c) --- libc-test/build.rs | 77 ---------------------------------------------- 1 file changed, 77 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 21c6702b2ce17..37907d1ae4a67 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4947,83 +4947,6 @@ fn test_linux(target: &str) { _ => false, }); - // FIXME(musl,time): these should be resolved with the time64 updates - if musl_v1_2_3 { - // Time primitives changed, as did structs containing them - cfg.skip_alias(|ty| match ty.ident() { - "time_t" | "suseconds_t" => true, - _ => false, - }); - cfg.skip_struct(|s| match s.ident() { - "utimbuf" | "timeval" | "timespec" | "rusage" | "itimerval" | "itimerspec" - | "timex" | "ntptimeval" | "stat" | "shmid_ds" | "msqid_ds" => true, - _ => false, - }); - - cfg.skip_const(|c| match c.ident() { - // Changed syscall numbers under `linux_time_bits64` - "SO_TIMESTAMP" | "SO_TIMESTAMPNS" | "SO_TIMESTAMPING" | "SO_RCVTIMEO" - | "SO_SNDTIMEO" => true, - // Derived from `SO_` constants - "SCM_TIMESTAMP" | "SCM_TIMESTAMPNS" | "SCM_TIMESTAMPING" => true, - // `IPC_STAT` and derived values - "IPC_STAT" | "SEM_STAT" | "SEM_STAT_ANY" => true, - _ => false, - }); - - // Functions that got a new link name - cfg.skip_fn_ptrcheck(|f| match f { - "pthread_mutex_timedlock" - | "recvmmsg" - | "fstat" - | "stat" - | "fstatat" - | "nanosleep" - | "utime" - | "lstat" - | "getrusage" - | "pthread_cond_timedwait" - | "utimes" - | "dlsym" - | "gmtime_r" - | "localtime_r" - | "mktime" - | "time" - | "gmtime" - | "localtime" - | "difftime" - | "timegm" - | "select" - | "adjtime" - | "pselect" - | "clock_getres" - | "clock_gettime" - | "clock_settime" - | "futimens" - | "utimensat" - | "wait4" - | "aio_suspend" - | "futimes" - | "mq_timedreceive" - | "mq_timedsend" - | "lutimes" - | "timerfd_gettime" - | "timerfd_settime" - | "sigtimedwait" - | "settimeofday" - | "sched_rr_get_interval" - | "sem_timedwait" - | "ppoll" - | "clock_nanosleep" - | "timer_gettime" - | "timer_settime" - | "gettimeofday" - | "adjtimex" - | "clock_adjtime" => true, - _ => false, - }); - } - ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); if !l4re { From cab0c821c3a40e39f51d761803d336e989cd2e00 Mon Sep 17 00:00:00 2001 From: Aphek Date: Thu, 4 Dec 2025 00:46:33 -0300 Subject: [PATCH 1085/1228] newlib: Fix ambiguous glob exports and other warnings for Vita and 3DS (backport ) (cherry picked from commit fb18f2667c4adb45f46913282d5c0c48f158692d) --- src/new/vita/mod.rs | 2 -- src/new/vita/unistd.rs | 7 ------- src/unix/mod.rs | 3 ++- src/unix/newlib/generic.rs | 10 +++++----- src/unix/newlib/horizon/mod.rs | 9 ++++++--- src/unix/newlib/mod.rs | 26 -------------------------- src/unix/newlib/rtems/mod.rs | 2 -- src/unix/newlib/vita/mod.rs | 2 -- 8 files changed, 13 insertions(+), 48 deletions(-) delete mode 100644 src/new/vita/unistd.rs diff --git a/src/new/vita/mod.rs b/src/new/vita/mod.rs index 38783a3f19fbc..21205ebd046fb 100644 --- a/src/new/vita/mod.rs +++ b/src/new/vita/mod.rs @@ -1,4 +1,2 @@ //! VITASDK system library. // FIXME(vita): link to headers or manpages needed. - -pub(crate) mod unistd; diff --git a/src/new/vita/unistd.rs b/src/new/vita/unistd.rs deleted file mode 100644 index 8d55ee5823315..0000000000000 --- a/src/new/vita/unistd.rs +++ /dev/null @@ -1,7 +0,0 @@ -//! Header: `unistd.h` - -pub use crate::new::common::posix::unistd::{ - STDERR_FILENO, - STDIN_FILENO, - STDOUT_FILENO, -}; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 2458df9b5adf2..1a326682d9ff3 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -146,7 +146,7 @@ s! { pub ipv6mr_interface: c_uint, } - #[cfg(not(target_os = "cygwin"))] + #[cfg(all(not(target_os = "cygwin"), not(target_os = "horizon")))] pub struct hostent { pub h_name: *mut c_char, pub h_aliases: *mut *mut c_char, @@ -160,6 +160,7 @@ s! { pub iov_len: size_t, } + #[cfg(not(target_os = "horizon"))] pub struct pollfd { pub fd: c_int, pub events: c_short, diff --git a/src/unix/newlib/generic.rs b/src/unix/newlib/generic.rs index ba4dfbe528b69..303de806b653f 100644 --- a/src/unix/newlib/generic.rs +++ b/src/unix/newlib/generic.rs @@ -1,16 +1,15 @@ //! Common types used by most newlib platforms -use crate::off_t; +#[allow(unused_imports)] // needed for platforms that don't use the prelude here use crate::prelude::*; s! { + #[cfg(all(not(target_os = "vita"), not(target_os = "horizon")))] pub struct sigset_t { - #[cfg(target_os = "horizon")] - __val: [c_ulong; 16], - #[cfg(not(target_os = "horizon"))] __val: u32, } + #[cfg(all(not(target_os = "vita"), not(target_os = "horizon")))] pub struct stat { pub st_dev: crate::dev_t, pub st_ino: crate::ino_t, @@ -19,7 +18,7 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - pub st_size: off_t, + pub st_size: crate::off_t, pub st_atime: crate::time_t, pub st_spare1: c_long, pub st_mtime: crate::time_t, @@ -31,6 +30,7 @@ s! { pub st_spare4: [c_long; 2usize], } + #[cfg(not(target_os = "vita"))] pub struct dirent { pub d_ino: crate::ino_t, pub d_type: c_uchar, diff --git a/src/unix/newlib/horizon/mod.rs b/src/unix/newlib/horizon/mod.rs index 3958e02734ada..ac500b1c79a32 100644 --- a/src/unix/newlib/horizon/mod.rs +++ b/src/unix/newlib/horizon/mod.rs @@ -28,6 +28,12 @@ s! { pub h_addr_list: *mut *mut c_char, } + pub struct pollfd { + pub fd: c_int, + pub events: c_int, + pub revents: c_int, + } + pub struct sockaddr { pub sa_family: crate::sa_family_t, pub sa_data: [c_char; 26usize], @@ -141,9 +147,6 @@ pub const MSG_MORE: c_int = 0; pub const MSG_NOSIGNAL: c_int = 0; pub const SOL_CONFIG: c_uint = 65534; -pub const _SC_PAGESIZE: c_int = 8; -pub const _SC_GETPW_R_SIZE_MAX: c_int = 51; - pub const PTHREAD_STACK_MIN: size_t = 4096; pub const WNOHANG: c_int = 1; diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index 6b68a06cb0624..ea325dfee8431 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -64,21 +64,6 @@ cfg_if! { } } -cfg_if! { - if #[cfg(not(target_os = "horizon"))] { - s! { - pub struct hostent { - pub h_name: *mut c_char, - pub h_aliases: *mut *mut c_char, - pub h_addrtype: c_int, - pub h_length: c_int, - pub h_addr_list: *mut *mut c_char, - pub h_addr: *mut c_char, - } - } - } -} - s! { // The order of the `ai_addr` field in this struct is crucial // for converting between the Rust and C types. @@ -108,21 +93,10 @@ s! { pub imr_interface: in_addr, } - pub struct linger { - pub l_onoff: c_int, - pub l_linger: c_int, - } - pub struct in_addr { pub s_addr: crate::in_addr_t, } - pub struct pollfd { - pub fd: c_int, - pub events: c_int, - pub revents: c_int, - } - pub struct lconv { pub decimal_point: *mut c_char, pub thousands_sep: *mut c_char, diff --git a/src/unix/newlib/rtems/mod.rs b/src/unix/newlib/rtems/mod.rs index 0e23352744149..ec4534e32a11f 100644 --- a/src/unix/newlib/rtems/mod.rs +++ b/src/unix/newlib/rtems/mod.rs @@ -73,8 +73,6 @@ pub const EAI_SERVICE: c_int = 9; pub const EAI_SYSTEM: c_int = 11; pub const EAI_OVERFLOW: c_int = 14; -pub const _SC_PAGESIZE: c_int = 8; -pub const _SC_GETPW_R_SIZE_MAX: c_int = 51; pub const PTHREAD_STACK_MIN: size_t = 0; // sys/wait.h diff --git a/src/unix/newlib/vita/mod.rs b/src/unix/newlib/vita/mod.rs index 2a456f47363d9..302601de96afd 100644 --- a/src/unix/newlib/vita/mod.rs +++ b/src/unix/newlib/vita/mod.rs @@ -164,8 +164,6 @@ pub const EAI_MEMORY: c_int = -10; pub const EAI_SYSTEM: c_int = -11; pub const EAI_OVERFLOW: c_int = -12; -pub const _SC_PAGESIZE: c_int = 8; -pub const _SC_GETPW_R_SIZE_MAX: c_int = 51; pub const PTHREAD_STACK_MIN: size_t = 32 * 1024; pub const IP_HDRINCL: c_int = 2; From a57e01695c11046d7e6ba3cc0d57a718d96f6715 Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Fri, 26 Dec 2025 13:38:25 +0900 Subject: [PATCH 1086/1228] getitimer and setitimer for linux (backport ) (cherry picked from commit edd1b6167fd16691d371e6c5d3c4bd84b45c1f6a) --- src/unix/linux_like/mod.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 291c2b634664b..2f1264dca48e3 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1881,6 +1881,17 @@ extern "C" { #[cfg(not(target_os = "l4re"))] pub fn clock_getcpuclockid(pid: crate::pid_t, clk_id: *mut crate::clockid_t) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__getitimer64")] + #[cfg_attr(musl32_time64, link_name = "__getitimer_time64")] + pub fn getitimer(which: c_int, curr_value: *mut crate::itimerval) -> c_int; + #[cfg_attr(gnu_time_bits64, link_name = "__setitimer64")] + #[cfg_attr(musl32_time64, link_name = "__setitimer_time64")] + pub fn setitimer( + which: c_int, + new_value: *const crate::itimerval, + old_value: *mut crate::itimerval, + ) -> c_int; + pub fn dirfd(dirp: *mut crate::DIR) -> c_int; pub fn memalign(align: size_t, size: size_t) -> *mut c_void; From ded2a7b5198a493ec60fb2837bb47ff6b2eb6927 Mon Sep 17 00:00:00 2001 From: Thomas de Zeeuw Date: Sun, 21 Dec 2025 13:12:39 +0100 Subject: [PATCH 1087/1228] Add NAME_MAX for Linux (like) (backport ) (cherry picked from commit 9cbb6ff34cda2124fe51d388e41b34a1ca0e39ae) --- libc-test/semver/linux.txt | 1 + src/unix/linux_like/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 1670cf76c057c..f3cca5611ee4d 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1751,6 +1751,7 @@ MS_SLAVE MS_STRICTATIME MS_SYNCHRONOUS MS_UNBINDABLE +NAME_MAX NDA_CACHEINFO NDA_DST NDA_IFINDEX diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 2f1264dca48e3..3ded4da44df91 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1001,6 +1001,7 @@ pub const LOCK_UN: c_int = 8; pub const SS_ONSTACK: c_int = 1; pub const SS_DISABLE: c_int = 2; +pub const NAME_MAX: c_int = 255; pub const PATH_MAX: c_int = 4096; pub const UIO_MAXIOV: c_int = 1024; From fc493436ca750cb4648de0e2c4a3420db54709c3 Mon Sep 17 00:00:00 2001 From: Urgau <3616612+Urgau@users.noreply.github.com> Date: Mon, 8 Dec 2025 18:49:07 +0100 Subject: [PATCH 1088/1228] Remove `[no-mentions]` handler in our triagebot config https://github.blog/changelog/2025-11-07-removing-notifications-for-mentions-in-commit-messages/ (backport ) (cherry picked from commit 6450c78a91f2632f8498c9e068de635dda978f7b) --- triagebot.toml | 3 --- 1 file changed, 3 deletions(-) diff --git a/triagebot.toml b/triagebot.toml index 7e8f309b40c67..f01074c5e9394 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -15,9 +15,6 @@ contributing_url = "https://github.com/rust-lang/libc/blob/HEAD/CONTRIBUTING.md" [issue-links] check-commits = false # don't forbid links to issues -# Prevents mentions in commits to avoid users being spammed -[no-mentions] - # Enable comments linking to triagebot range-diff when a PR is rebased # onto a different base commit # Documentation at: https://forge.rust-lang.org/triagebot/range-diff.html From 3be7003c0d1f90a1a3e90312b4b9826b4348e8c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Dec 2025 14:06:24 +0000 Subject: [PATCH 1089/1228] build(deps): bump actions/upload-artifact from 5 to 6 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] (backport ) (cherry picked from commit e59cb691cc8a720f63a59769cb154bc32e5b3c41) --- .github/workflows/ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b0c8c3db6ef4c..81c3b6e58fb38 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -155,7 +155,7 @@ jobs: id: create_artifacts if: always() run: python3 ci/create-artifacts.py - - uses: actions/upload-artifact@v5 + - uses: actions/upload-artifact@v6 if: always() && steps.create_artifacts.outcome == 'success' with: name: ${{ env.ARCHIVE_NAME }}-${{ matrix.target }}${{ matrix.artifact-tag && format('-{0}', matrix.artifact-tag) }} @@ -252,7 +252,7 @@ jobs: id: create_artifacts if: always() run: ./ci/create-artifacts.py - - uses: actions/upload-artifact@v5 + - uses: actions/upload-artifact@v6 if: always() && steps.create_artifacts.outcome == 'success' with: name: ${{ env.ARCHIVE_NAME }}-${{ matrix.target }}${{ matrix.artifact-tag && format('-{0}', matrix.artifact-tag) }} From 184a5584eafe243ed97f3f5d60b1e64041ebcb94 Mon Sep 17 00:00:00 2001 From: Ana Hobden Date: Wed, 10 Dec 2025 10:45:42 -0800 Subject: [PATCH 1090/1228] Fix QNX build error (backport ) (cherry picked from commit b7ee7452756c184378e3acacba7103daf3bb3b94) --- src/unix/nto/neutrino.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/nto/neutrino.rs b/src/unix/nto/neutrino.rs index fda8b4839dfcb..4c3fca1431f5d 100644 --- a/src/unix/nto/neutrino.rs +++ b/src/unix/nto/neutrino.rs @@ -1245,13 +1245,13 @@ extern "C" { __id: crate::clockid_t, _new: *const crate::_clockperiod, __old: *mut crate::_clockperiod, - __reserved: Padding, + __reserved: c_int, ) -> c_int; pub fn ClockPeriod_r( __id: crate::clockid_t, _new: *const crate::_clockperiod, __old: *mut crate::_clockperiod, - __reserved: Padding, + __reserved: c_int, ) -> c_int; pub fn ClockId(__pid: crate::pid_t, __tid: c_int) -> c_int; pub fn ClockId_r(__pid: crate::pid_t, __tid: c_int) -> c_int; From ad6c4a1c10625d0be4a177b3ac8545272a58a890 Mon Sep 17 00:00:00 2001 From: Brian Cain Date: Mon, 29 Sep 2025 10:23:20 -0500 Subject: [PATCH 1091/1228] qurt: Add support for Qualcomm QuRT The QuRT RTOS -- used primarily on the Hexagon architecture -- has support for large parts of POSIX. (backport ) (cherry picked from commit 8ecae6cae62df6bf8123b87f60b964a554af1863) --- build.rs | 2 +- src/lib.rs | 8 + src/new/common/posix/mod.rs | 1 + src/new/mod.rs | 5 +- src/new/qurt/errno.rs | 154 ++++++++++++++++ src/new/qurt/fcntl.rs | 49 ++++++ src/new/qurt/limits.rs | 41 +++++ src/new/qurt/mod.rs | 163 +++++++++++++++++ src/new/qurt/pthread.rs | 150 ++++++++++++++++ src/new/qurt/semaphore.rs | 13 ++ src/new/qurt/signal.rs | 67 +++++++ src/new/qurt/stdio.rs | 78 +++++++++ src/new/qurt/stdlib.rs | 67 +++++++ src/new/qurt/sys/mod.rs | 4 + src/new/qurt/sys/stat.rs | 42 +++++ src/new/qurt/sys/types.rs | 9 + src/new/qurt/time.rs | 52 ++++++ src/new/qurt/unistd.rs | 58 ++++++ src/qurt/hexagon.rs | 340 ++++++++++++++++++++++++++++++++++++ src/qurt/mod.rs | 334 +++++++++++++++++++++++++++++++++++ 20 files changed, 1635 insertions(+), 2 deletions(-) create mode 100644 src/new/qurt/errno.rs create mode 100644 src/new/qurt/fcntl.rs create mode 100644 src/new/qurt/limits.rs create mode 100644 src/new/qurt/mod.rs create mode 100644 src/new/qurt/pthread.rs create mode 100644 src/new/qurt/semaphore.rs create mode 100644 src/new/qurt/signal.rs create mode 100644 src/new/qurt/stdio.rs create mode 100644 src/new/qurt/stdlib.rs create mode 100644 src/new/qurt/sys/mod.rs create mode 100644 src/new/qurt/sys/stat.rs create mode 100644 src/new/qurt/sys/types.rs create mode 100644 src/new/qurt/time.rs create mode 100644 src/new/qurt/unistd.rs create mode 100644 src/qurt/hexagon.rs create mode 100644 src/qurt/mod.rs diff --git a/build.rs b/build.rs index 0b63b985f9a29..199a9ac422ccf 100644 --- a/build.rs +++ b/build.rs @@ -38,7 +38,7 @@ const CHECK_CFG_EXTRA: &[(&str, &[&str])] = &[ ( "target_os", &[ - "switch", "aix", "ohos", "hurd", "rtems", "visionos", "nuttx", "cygwin", + "switch", "aix", "ohos", "hurd", "rtems", "visionos", "nuttx", "cygwin", "qurt", ], ), ( diff --git a/src/lib.rs b/src/lib.rs index 846c2189b79ed..bb41b4356a714 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -87,6 +87,14 @@ cfg_if! { mod vxworks; pub use crate::vxworks::*; + prelude!(); + } else if #[cfg(target_os = "qurt")] { + mod primitives; + pub use crate::primitives::*; + + mod qurt; + pub use crate::qurt::*; + prelude!(); } else if #[cfg(target_os = "solid_asp3")] { mod primitives; diff --git a/src/new/common/posix/mod.rs b/src/new/common/posix/mod.rs index 7bd596e37205d..44ae64a980222 100644 --- a/src/new/common/posix/mod.rs +++ b/src/new/common/posix/mod.rs @@ -8,6 +8,7 @@ target_os = "emscripten", target_os = "l4re", target_os = "linux", + target_os = "qurt", target_vendor = "apple", ))] pub(crate) mod pthread; diff --git a/src/new/mod.rs b/src/new/mod.rs index 3e373ce520d7c..d4d2636601e18 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -102,6 +102,9 @@ cfg_if! { } else if #[cfg(target_os = "openbsd")] { mod openbsd; pub(crate) use openbsd::*; + } else if #[cfg(target_os = "qurt")] { + mod qurt; + pub(crate) use qurt::*; } else if #[cfg(target_os = "redox")] { mod redox; // pub(crate) use redox::*; @@ -210,7 +213,7 @@ cfg_if! { // Per-family headers we export cfg_if! { - if #[cfg(target_family = "unix")] { + if #[cfg(all(target_family = "unix", not(target_os = "qurt")))] { // FIXME(pthread): eventually all platforms should use this module #[cfg(any( target_os = "android", diff --git a/src/new/qurt/errno.rs b/src/new/qurt/errno.rs new file mode 100644 index 0000000000000..09db55c618a24 --- /dev/null +++ b/src/new/qurt/errno.rs @@ -0,0 +1,154 @@ +//! Header: `errno.h` + +use super::*; +use crate::prelude::*; + +// Standard error codes - verified to match QuRT SDK +pub const EPERM: c_int = 1; +pub const ENOENT: c_int = 2; +pub const ESRCH: c_int = 3; +pub const EINTR: c_int = 4; +pub const EIO: c_int = 5; +pub const ENXIO: c_int = 6; +pub const E2BIG: c_int = 7; +pub const ENOEXEC: c_int = 8; +pub const EBADF: c_int = 9; +pub const ECHILD: c_int = 10; +pub const EAGAIN: c_int = 11; +pub const ENOMEM: c_int = 12; +pub const EACCES: c_int = 13; +pub const EFAULT: c_int = 14; +pub const ENOTBLK: c_int = 15; +pub const EBUSY: c_int = 16; +pub const EEXIST: c_int = 17; +pub const EXDEV: c_int = 18; +pub const ENODEV: c_int = 19; +pub const ENOTDIR: c_int = 20; +pub const EISDIR: c_int = 21; +pub const EINVAL: c_int = 22; +pub const ENFILE: c_int = 23; +pub const EMFILE: c_int = 24; +pub const ENOTTY: c_int = 25; +pub const ETXTBSY: c_int = 26; +pub const EFBIG: c_int = 27; +pub const ENOSPC: c_int = 28; +pub const ESPIPE: c_int = 29; +pub const EROFS: c_int = 30; +pub const EMLINK: c_int = 31; +pub const EPIPE: c_int = 32; +pub const EDOM: c_int = 33; +pub const ERANGE: c_int = 34; +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const EWOULDBLOCK: c_int = EAGAIN; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; +pub const EDEADLOCK: c_int = EDEADLK; +pub const EBFONT: c_int = 59; +pub const ENOSTR: c_int = 60; +pub const ENODATA: c_int = 61; +pub const ETIME: c_int = 62; +pub const ENOSR: c_int = 63; +pub const ENONET: c_int = 64; +pub const ENOPKG: c_int = 65; +pub const EREMOTE: c_int = 66; +pub const ENOLINK: c_int = 67; +pub const EADV: c_int = 68; +pub const ESRMNT: c_int = 69; +pub const ECOMM: c_int = 70; +pub const EPROTO: c_int = 71; +pub const EMULTIHOP: c_int = 72; +pub const EDOTDOT: c_int = 73; +pub const EBADMSG: c_int = 74; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const ENOTSUP: c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDQUOT: c_int = 122; +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; +pub const ERFKILL: c_int = 132; +pub const EHWPOISON: c_int = 133; + +extern "C" { + // Error number access + #[link_name = "__errno_location"] + pub fn __errno_location() -> *mut c_int; +} + +pub unsafe fn errno() -> c_int { + *__errno_location() +} + +pub unsafe fn set_errno(value: c_int) { + *__errno_location() = value; +} diff --git a/src/new/qurt/fcntl.rs b/src/new/qurt/fcntl.rs new file mode 100644 index 0000000000000..aa94ffc94ed54 --- /dev/null +++ b/src/new/qurt/fcntl.rs @@ -0,0 +1,49 @@ +//! Header: `fcntl.h` + +use super::*; +use crate::prelude::*; + +// File access modes +pub const O_RDONLY: c_int = 0x0000; +pub const O_WRONLY: c_int = 0x0001; +pub const O_RDWR: c_int = 0x0002; +pub const O_ACCMODE: c_int = 0x0003; + +// File creation flags +pub const O_CREAT: c_int = 0x0040; +pub const O_EXCL: c_int = 0x0080; +pub const O_NOCTTY: c_int = 0x0100; +pub const O_TRUNC: c_int = 0x0200; + +// File status flags +pub const O_APPEND: c_int = 0x0400; +pub const O_NONBLOCK: c_int = 0x0800; +pub const O_SYNC: c_int = 0x1000; +pub const O_FSYNC: c_int = O_SYNC; +pub const O_DSYNC: c_int = 0x1000; + +// fcntl() commands +pub const F_DUPFD: c_int = 0; +pub const F_GETFD: c_int = 1; +pub const F_SETFD: c_int = 2; +pub const F_GETFL: c_int = 3; +pub const F_SETFL: c_int = 4; +pub const F_GETLK: c_int = 5; +pub const F_SETLK: c_int = 6; +pub const F_SETLKW: c_int = 7; + +// File descriptor flags +pub const FD_CLOEXEC: c_int = 1; + +// Lock types for fcntl() +pub const F_RDLCK: c_int = 0; +pub const F_WRLCK: c_int = 1; +pub const F_UNLCK: c_int = 2; + +// Functions +extern "C" { + pub fn open(pathname: *const c_char, flags: c_int, ...) -> c_int; + pub fn openat(dirfd: c_int, pathname: *const c_char, flags: c_int, ...) -> c_int; + pub fn creat(pathname: *const c_char, mode: mode_t) -> c_int; + pub fn fcntl(fd: c_int, cmd: c_int, ...) -> c_int; +} diff --git a/src/new/qurt/limits.rs b/src/new/qurt/limits.rs new file mode 100644 index 0000000000000..ae1a007ff1c66 --- /dev/null +++ b/src/new/qurt/limits.rs @@ -0,0 +1,41 @@ +//! Header: `limits.h` + +use super::*; +use crate::prelude::*; + +// Character properties +pub const CHAR_BIT: c_uint = 8; +pub const CHAR_MAX: c_char = 255; // unsigned char on Hexagon +pub const CHAR_MIN: c_char = 0; +pub const SCHAR_MAX: c_schar = 127; +pub const SCHAR_MIN: c_schar = -128; +pub const UCHAR_MAX: c_uchar = 255; + +// Integer properties +pub const INT_MAX: c_int = 2147483647; +pub const INT_MIN: c_int = (-2147483647 - 1); +pub const UINT_MAX: c_uint = 4294967295; + +pub const LONG_MAX: c_long = 2147483647; +pub const LONG_MIN: c_long = (-2147483647 - 1); +pub const ULONG_MAX: c_ulong = 4294967295; + +pub const SHRT_MAX: c_short = 32767; +pub const SHRT_MIN: c_short = (-32768); +pub const USHRT_MAX: c_ushort = 65535; + +// POSIX Limits +pub const ARG_MAX: c_int = 4096; +pub const CHILD_MAX: c_int = 25; +pub const LINK_MAX: c_int = 8; +pub const MAX_CANON: c_int = 255; +pub const MAX_INPUT: c_int = 255; +pub const NAME_MAX: c_int = 255; +pub const OPEN_MAX: c_int = 20; +pub const PATH_MAX: c_int = 260; +pub const PIPE_BUF: c_int = 512; +pub const STREAM_MAX: c_int = 20; +pub const TZNAME_MAX: c_int = 50; + +// Additional limits +pub const IOV_MAX: c_int = 16; diff --git a/src/new/qurt/mod.rs b/src/new/qurt/mod.rs new file mode 100644 index 0000000000000..b6e1fbbb82148 --- /dev/null +++ b/src/new/qurt/mod.rs @@ -0,0 +1,163 @@ +//! QuRT (Qualcomm Real-Time OS) bindings +//! +//! QuRT is Qualcomm's real-time operating system for Hexagon DSP architectures. +//! Headers available via the +//! Hexagon SDK: https://softwarecenter.qualcomm.com/catalog/item/Hexagon_SDK + +use crate::prelude::*; + +// Basic C types for QRT +pub type intptr_t = isize; +pub type uintptr_t = usize; +pub type ptrdiff_t = isize; +pub type size_t = uintptr_t; +pub type ssize_t = intptr_t; + +// Process and system types +pub type pid_t = c_int; +pub type uid_t = c_uint; +pub type gid_t = c_uint; + +// Time types +pub type time_t = c_longlong; +pub type suseconds_t = c_long; +pub type useconds_t = c_ulong; +pub type clockid_t = c_int; +pub type timer_t = *mut c_void; + +// File system types +pub type dev_t = c_ulong; +pub type ino_t = c_ulong; +pub type mode_t = c_uint; +pub type nlink_t = c_uint; +pub type off_t = c_long; +pub type blkcnt_t = c_long; +pub type blksize_t = c_long; + +// Thread types based on QuRT pthread implementation +pub type pthread_t = c_uint; +pub type pthread_key_t = c_int; +pub type pthread_once_t = c_int; +pub type pthread_mutex_t = c_uint; +pub type pthread_mutexattr_t = c_uint; +pub type pthread_cond_t = c_uint; +pub type pthread_condattr_t = c_uint; +pub type pthread_attr_t = c_uint; +pub type pthread_rwlock_t = c_uint; +pub type pthread_rwlockattr_t = c_uint; +pub type pthread_spinlock_t = c_uint; +pub type pthread_barrier_t = c_uint; +pub type pthread_barrierattr_t = c_uint; + +// Network types +pub type socklen_t = c_uint; +pub type sa_family_t = c_ushort; +pub type in_addr_t = c_uint; +pub type in_port_t = c_ushort; + +// File descriptor types +pub type fd_set = c_ulong; + +// Standard C library types +extern_ty! { + pub enum FILE {} +} +pub type fpos_t = c_long; +pub type clock_t = c_long; + +// POSIX semaphore types +pub type sem_t = c_uint; + +// Message queue types +pub type mqd_t = c_int; + +// Additional file system types +pub type nfds_t = c_ulong; + +// Signal types +pub type sigset_t = c_ulong; + +// Variadic argument list type +pub type va_list = *mut c_char; + +// Additional missing types +pub type c_schar = i8; + +// Division result types +s! { + pub struct div_t { + pub quot: c_int, + pub rem: c_int, + } + + pub struct ldiv_t { + pub quot: c_long, + pub rem: c_long, + } + + pub struct lldiv_t { + pub quot: c_longlong, + pub rem: c_longlong, + } + + 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_uid: uid_t, + pub st_gid: gid_t, + 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_mtime: time_t, + pub st_ctime: time_t, + } + + pub struct tm { + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + } + + pub struct timespec { + pub tv_sec: time_t, + pub tv_nsec: c_long, + } + + pub struct timeval { + pub tv_sec: time_t, + pub tv_usec: suseconds_t, + } + + pub struct itimerspec { + pub it_interval: timespec, + pub it_value: timespec, + } + + pub struct sigevent { + pub sigev_notify: c_int, + pub sigev_signo: c_int, + pub sigev_value: c_int, + } +} + +pub(crate) mod errno; +pub(crate) mod fcntl; +pub(crate) mod limits; +pub(crate) mod pthread; +pub(crate) mod semaphore; +pub(crate) mod signal; +pub(crate) mod stdio; +pub(crate) mod stdlib; +pub(crate) mod sys; +pub(crate) mod time; +pub(crate) mod unistd; diff --git a/src/new/qurt/pthread.rs b/src/new/qurt/pthread.rs new file mode 100644 index 0000000000000..b9859f05380f9 --- /dev/null +++ b/src/new/qurt/pthread.rs @@ -0,0 +1,150 @@ +//! Header: `pthread.h` +//! +//! QuRT provides a subset of POSIX pthread functionality optimized for real-time systems. + +use super::*; +use crate::prelude::*; +use crate::{ + cpu_set_t, + pthread_attr_t, + pthread_barrier_t, + pthread_barrierattr_t, + pthread_cond_t, + pthread_condattr_t, + pthread_key_t, + pthread_mutex_t, + pthread_mutexattr_t, + pthread_once_t, + pthread_rwlock_t, + pthread_rwlockattr_t, + pthread_spinlock_t, + pthread_t, + timespec, +}; + +// Thread creation attributes +pub const PTHREAD_CREATE_JOINABLE: c_int = 0; +pub const PTHREAD_CREATE_DETACHED: c_int = 1; + +// Mutex types +pub const PTHREAD_MUTEX_NORMAL: c_int = 0; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 1; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_NORMAL; + +// Mutex protocol +pub const PTHREAD_PRIO_NONE: c_int = 0; +pub const PTHREAD_PRIO_INHERIT: c_int = 1; +pub const PTHREAD_PRIO_PROTECT: c_int = 2; + +// Thread priority constants +pub const PTHREAD_MIN_PRIORITY: c_int = 0; +pub const PTHREAD_MAX_PRIORITY: c_int = 255; + +// Scheduling policies +pub const SCHED_OTHER: c_int = 0; +pub const SCHED_FIFO: c_int = 1; +pub const SCHED_RR: c_int = 2; + +// Initializer constants +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0xFFFFFFFF; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0xFFFFFFFF; +pub const PTHREAD_ONCE_INIT: pthread_once_t = 0; + +// Stack size +pub const PTHREAD_STACK_MIN: size_t = 8192; + +// Additional pthread types and attributes +pub const PTHREAD_SCOPE_SYSTEM: c_int = 0; +pub const PTHREAD_SCOPE_PROCESS: c_int = 1; + +pub const PTHREAD_INHERIT_SCHED: c_int = 0; +pub const PTHREAD_EXPLICIT_SCHED: c_int = 1; + +extern "C" { + // Thread management + pub fn pthread_create( + thread: *mut pthread_t, + attr: *const pthread_attr_t, + start_routine: extern "C" fn(*mut c_void) -> *mut c_void, + arg: *mut c_void, + ) -> c_int; + pub fn pthread_join(thread: pthread_t, retval: *mut *mut c_void) -> c_int; + pub fn pthread_detach(thread: pthread_t) -> c_int; + pub fn pthread_exit(retval: *mut c_void) -> !; + pub fn pthread_self() -> pthread_t; + pub fn pthread_equal(t1: pthread_t, t2: pthread_t) -> c_int; + + // Thread attributes + 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_setstacksize(attr: *mut pthread_attr_t, stacksize: size_t) -> c_int; + pub fn pthread_attr_getstacksize(attr: *const pthread_attr_t, stacksize: *mut size_t) -> c_int; + pub fn pthread_attr_setdetachstate(attr: *mut pthread_attr_t, detachstate: c_int) -> c_int; + pub fn pthread_attr_getdetachstate( + attr: *const pthread_attr_t, + detachstate: *mut c_int, + ) -> c_int; + + // Mutex operations + pub fn pthread_mutex_init( + mutex: *mut pthread_mutex_t, + attr: *const pthread_mutexattr_t, + ) -> c_int; + pub fn pthread_mutex_destroy(mutex: *mut pthread_mutex_t) -> c_int; + pub fn pthread_mutex_lock(mutex: *mut pthread_mutex_t) -> c_int; + pub fn pthread_mutex_trylock(mutex: *mut pthread_mutex_t) -> c_int; + pub fn pthread_mutex_unlock(mutex: *mut pthread_mutex_t) -> c_int; + + // Mutex attributes + pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> c_int; + pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> c_int; + pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, kind: c_int) -> c_int; + pub fn pthread_mutexattr_gettype(attr: *const pthread_mutexattr_t, kind: *mut c_int) -> c_int; + + // Condition variables + pub fn pthread_cond_init(cond: *mut pthread_cond_t, attr: *const pthread_condattr_t) -> c_int; + pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> c_int; + pub fn pthread_cond_wait(cond: *mut pthread_cond_t, mutex: *mut pthread_mutex_t) -> c_int; + pub fn pthread_cond_timedwait( + cond: *mut pthread_cond_t, + mutex: *mut pthread_mutex_t, + abstime: *const timespec, + ) -> c_int; + pub fn pthread_cond_signal(cond: *mut pthread_cond_t) -> c_int; + pub fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> c_int; + + // Condition variable attributes + pub fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> c_int; + pub fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> c_int; + + // Thread-local storage + pub fn pthread_key_create( + key: *mut pthread_key_t, + destructor: Option, + ) -> c_int; + pub fn pthread_key_delete(key: pthread_key_t) -> c_int; + pub fn pthread_getspecific(key: pthread_key_t) -> *mut c_void; + pub fn pthread_setspecific(key: pthread_key_t, value: *const c_void) -> c_int; + + // One-time initialization + pub fn pthread_once(once_control: *mut pthread_once_t, init_routine: extern "C" fn()) -> c_int; + + // GNU extensions + pub fn pthread_getname_np(thread: pthread_t, name: *mut c_char, len: size_t) -> c_int; + + pub fn pthread_attr_setaffinity_np( + attr: *mut pthread_attr_t, + cpusetsize: size_t, + cpuset: *const cpu_set_t, + ) -> c_int; + + pub fn pthread_attr_getaffinity_np( + attr: *mut pthread_attr_t, + cpusetsize: size_t, + cpuset: *mut cpu_set_t, + ) -> c_int; + + // POSIX standard + pub fn posix_memalign(memptr: *mut *mut c_void, alignment: size_t, size: size_t) -> c_int; +} diff --git a/src/new/qurt/semaphore.rs b/src/new/qurt/semaphore.rs new file mode 100644 index 0000000000000..86b37434f394f --- /dev/null +++ b/src/new/qurt/semaphore.rs @@ -0,0 +1,13 @@ +//! Header: `semaphore.h` + +use super::*; +use crate::prelude::*; + +extern "C" { + pub fn sem_init(sem: *mut sem_t, pshared: c_int, value: c_uint) -> c_int; + pub fn sem_destroy(sem: *mut sem_t) -> c_int; + pub fn sem_wait(sem: *mut sem_t) -> c_int; + pub fn sem_trywait(sem: *mut sem_t) -> c_int; + pub fn sem_post(sem: *mut sem_t) -> c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int; +} diff --git a/src/new/qurt/signal.rs b/src/new/qurt/signal.rs new file mode 100644 index 0000000000000..b0180c5aa0382 --- /dev/null +++ b/src/new/qurt/signal.rs @@ -0,0 +1,67 @@ +//! Header: `signal.h` + +use super::*; +use crate::prelude::*; + +// Standard signal numbers +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGTRAP: c_int = 5; +pub const SIGABRT: c_int = 6; +pub const SIGBUS: c_int = 7; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGUSR1: c_int = 10; +pub const SIGSEGV: c_int = 11; +pub const SIGUSR2: c_int = 12; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; +pub const SIGSTKFLT: c_int = 16; +pub const SIGCHLD: c_int = 17; +pub const SIGCONT: c_int = 18; +pub const SIGSTOP: c_int = 19; +pub const SIGTSTP: c_int = 20; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGURG: c_int = 23; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGIO: c_int = 29; +pub const SIGPWR: c_int = 30; +pub const SIGSYS: c_int = 31; + +// Signal handling constants +pub const SIG_DFL: sighandler_t = 0 as sighandler_t; +pub const SIG_IGN: sighandler_t = 1 as sighandler_t; +pub const SIG_ERR: sighandler_t = !0 as sighandler_t; + +// Signal mask operations +pub const SIG_BLOCK: c_int = 0; +pub const SIG_UNBLOCK: c_int = 1; +pub const SIG_SETMASK: c_int = 2; + +pub type sighandler_t = size_t; + +extern "C" { + pub fn signal(sig: c_int, handler: sighandler_t) -> sighandler_t; + pub fn kill(pid: pid_t, sig: c_int) -> c_int; + pub fn raise(sig: c_int) -> c_int; + pub fn alarm(seconds: c_uint) -> c_uint; + pub fn pause() -> c_int; + + // Signal mask functions + pub fn sigemptyset(set: *mut sigset_t) -> c_int; + pub fn sigfillset(set: *mut sigset_t) -> c_int; + pub fn sigaddset(set: *mut sigset_t, signum: c_int) -> c_int; + pub fn sigdelset(set: *mut sigset_t, signum: c_int) -> c_int; + pub fn sigismember(set: *const sigset_t, signum: c_int) -> c_int; + pub fn sigprocmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; + pub fn sigpending(set: *mut sigset_t) -> c_int; + pub fn sigsuspend(mask: *const sigset_t) -> c_int; +} diff --git a/src/new/qurt/stdio.rs b/src/new/qurt/stdio.rs new file mode 100644 index 0000000000000..fbfc94df66dec --- /dev/null +++ b/src/new/qurt/stdio.rs @@ -0,0 +1,78 @@ +//! Header: `stdio.h` + +use super::*; +use crate::prelude::*; + +// File position constants +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; + +// Buffer size +pub const BUFSIZ: c_uint = 1024; +pub const FILENAME_MAX: c_uint = 260; + +// End of file +pub const EOF: c_int = -1; + +extern "C" { + // File operations + pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; + pub fn freopen(filename: *const c_char, mode: *const c_char, stream: *mut FILE) -> *mut FILE; + pub fn fclose(stream: *mut FILE) -> c_int; + pub fn fflush(stream: *mut FILE) -> c_int; + pub fn fread(ptr: *mut c_void, size: size_t, nmemb: size_t, stream: *mut FILE) -> size_t; + pub fn fwrite(ptr: *const c_void, size: size_t, nmemb: size_t, stream: *mut FILE) -> size_t; + + // Character I/O + pub fn fgetc(stream: *mut FILE) -> c_int; + pub fn fputc(c: c_int, stream: *mut FILE) -> c_int; + pub fn getchar() -> c_int; + pub fn putchar(c: c_int) -> c_int; + pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int; + + // Line I/O + pub fn fgets(s: *mut c_char, size: c_int, stream: *mut FILE) -> *mut c_char; + pub fn fputs(s: *const c_char, stream: *mut FILE) -> c_int; + pub fn gets(s: *mut c_char) -> *mut c_char; + pub fn puts(s: *const c_char) -> c_int; + + // Formatted I/O + pub fn printf(format: *const c_char, ...) -> c_int; + pub fn fprintf(stream: *mut FILE, format: *const c_char, ...) -> c_int; + pub fn sprintf(s: *mut c_char, format: *const c_char, ...) -> c_int; + pub fn snprintf(s: *mut c_char, n: size_t, format: *const c_char, ...) -> c_int; + pub fn vprintf(format: *const c_char, ap: crate::va_list) -> c_int; + pub fn vfprintf(stream: *mut FILE, format: *const c_char, ap: crate::va_list) -> c_int; + pub fn vsprintf(s: *mut c_char, format: *const c_char, ap: crate::va_list) -> c_int; + pub fn vsnprintf(s: *mut c_char, n: size_t, format: *const c_char, ap: crate::va_list) + -> c_int; + + // Input formatted functions + pub fn scanf(format: *const c_char, ...) -> c_int; + pub fn fscanf(stream: *mut FILE, format: *const c_char, ...) -> c_int; + pub fn sscanf(s: *const c_char, format: *const c_char, ...) -> c_int; + + // File positioning + pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int) -> c_int; + pub fn ftell(stream: *mut FILE) -> c_long; + pub fn rewind(stream: *mut FILE); + pub fn fgetpos(stream: *mut FILE, pos: *mut fpos_t) -> c_int; + pub fn fsetpos(stream: *mut FILE, pos: *const fpos_t) -> c_int; + + // Error handling + pub fn clearerr(stream: *mut FILE); + pub fn feof(stream: *mut FILE) -> c_int; + pub fn ferror(stream: *mut FILE) -> c_int; + pub fn perror(s: *const c_char); + + // File management + pub fn remove(filename: *const c_char) -> c_int; + pub fn rename(old: *const c_char, new: *const c_char) -> c_int; + pub fn tmpfile() -> *mut FILE; + pub fn tmpnam(s: *mut c_char) -> *mut c_char; + + // Buffer control + pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, size: size_t) -> c_int; + pub fn setbuf(stream: *mut FILE, buffer: *mut c_char); +} diff --git a/src/new/qurt/stdlib.rs b/src/new/qurt/stdlib.rs new file mode 100644 index 0000000000000..dc96e36eca5d2 --- /dev/null +++ b/src/new/qurt/stdlib.rs @@ -0,0 +1,67 @@ +//! Header: `stdlib.h` + +use super::*; +use crate::prelude::*; + +// Exit status constants +pub const EXIT_SUCCESS: c_int = 0; +pub const EXIT_FAILURE: c_int = 1; + +// Maximum values +pub const RAND_MAX: c_int = 32767; + +extern "C" { + // Memory management + pub fn malloc(size: size_t) -> *mut c_void; + pub fn calloc(nmemb: size_t, size: size_t) -> *mut c_void; + pub fn realloc(ptr: *mut c_void, size: size_t) -> *mut c_void; + pub fn free(ptr: *mut c_void); + + // Process control + pub fn abort() -> !; + pub fn exit(status: c_int) -> !; + pub fn atexit(function: extern "C" fn()) -> c_int; + + // Environment + pub fn getenv(name: *const c_char) -> *mut c_char; + pub fn setenv(name: *const c_char, value: *const c_char, overwrite: c_int) -> c_int; + pub fn unsetenv(name: *const c_char) -> c_int; + + // String/number conversion + pub fn atoi(nptr: *const c_char) -> c_int; + pub fn atol(nptr: *const c_char) -> c_long; + pub fn atoll(nptr: *const c_char) -> c_longlong; + pub fn strtol(nptr: *const c_char, endptr: *mut *mut c_char, base: c_int) -> c_long; + pub fn strtoul(nptr: *const c_char, endptr: *mut *mut c_char, base: c_int) -> c_ulong; + pub fn strtoll(nptr: *const c_char, endptr: *mut *mut c_char, base: c_int) -> c_longlong; + pub fn strtoull(nptr: *const c_char, endptr: *mut *mut c_char, base: c_int) -> c_ulonglong; + pub fn strtod(nptr: *const c_char, endptr: *mut *mut c_char) -> c_double; + pub fn strtof(nptr: *const c_char, endptr: *mut *mut c_char) -> c_float; + + // Random numbers + pub fn rand() -> c_int; + pub fn srand(seed: c_uint); + + // Searching and sorting + pub fn qsort( + base: *mut c_void, + nmemb: size_t, + size: size_t, + compar: extern "C" fn(*const c_void, *const c_void) -> c_int, + ); + pub fn bsearch( + key: *const c_void, + base: *const c_void, + nmemb: size_t, + size: size_t, + compar: extern "C" fn(*const c_void, *const c_void) -> c_int, + ) -> *mut c_void; + + // Integer arithmetic + pub fn abs(j: c_int) -> c_int; + pub fn labs(j: c_long) -> c_long; + pub fn llabs(j: c_longlong) -> c_longlong; + pub fn div(numer: c_int, denom: c_int) -> div_t; + pub fn ldiv(numer: c_long, denom: c_long) -> ldiv_t; + pub fn lldiv(numer: c_longlong, denom: c_longlong) -> lldiv_t; +} diff --git a/src/new/qurt/sys/mod.rs b/src/new/qurt/sys/mod.rs new file mode 100644 index 0000000000000..5c4547cb7895f --- /dev/null +++ b/src/new/qurt/sys/mod.rs @@ -0,0 +1,4 @@ +//! System headers (`sys/*`) + +pub(crate) mod stat; +pub(crate) mod types; diff --git a/src/new/qurt/sys/stat.rs b/src/new/qurt/sys/stat.rs new file mode 100644 index 0000000000000..25ffa76c64909 --- /dev/null +++ b/src/new/qurt/sys/stat.rs @@ -0,0 +1,42 @@ +//! Header: `sys/stat.h` + +use super::super::*; +use crate::prelude::*; + +// File type constants for stat.st_mode +pub const S_IFMT: mode_t = 0o170000; +pub const S_IFSOCK: mode_t = 0o140000; +pub const S_IFLNK: mode_t = 0o120000; +pub const S_IFREG: mode_t = 0o100000; +pub const S_IFBLK: mode_t = 0o060000; +pub const S_IFDIR: mode_t = 0o040000; +pub const S_IFCHR: mode_t = 0o020000; +pub const S_IFIFO: mode_t = 0o010000; + +// File permission constants +pub const S_ISUID: mode_t = 0o4000; +pub const S_ISGID: mode_t = 0o2000; +pub const S_ISVTX: mode_t = 0o1000; +pub const S_IRWXU: mode_t = 0o0700; +pub const S_IRUSR: mode_t = 0o0400; +pub const S_IWUSR: mode_t = 0o0200; +pub const S_IXUSR: mode_t = 0o0100; +pub const S_IRWXG: mode_t = 0o0070; +pub const S_IRGRP: mode_t = 0o0040; +pub const S_IWGRP: mode_t = 0o0020; +pub const S_IXGRP: mode_t = 0o0010; +pub const S_IRWXO: mode_t = 0o0007; +pub const S_IROTH: mode_t = 0o0004; +pub const S_IWOTH: mode_t = 0o0002; +pub const S_IXOTH: mode_t = 0o0001; + +extern "C" { + pub fn stat(pathname: *const c_char, statbuf: *mut stat) -> c_int; + pub fn fstat(fd: c_int, statbuf: *mut stat) -> c_int; + pub fn lstat(pathname: *const c_char, statbuf: *mut stat) -> c_int; + pub fn chmod(pathname: *const c_char, mode: mode_t) -> c_int; + pub fn fchmod(fd: c_int, mode: mode_t) -> c_int; + pub fn mkdir(pathname: *const c_char, mode: mode_t) -> c_int; + pub fn mkfifo(pathname: *const c_char, mode: mode_t) -> c_int; + pub fn umask(mask: mode_t) -> mode_t; +} diff --git a/src/new/qurt/sys/types.rs b/src/new/qurt/sys/types.rs new file mode 100644 index 0000000000000..a5db5164414f7 --- /dev/null +++ b/src/new/qurt/sys/types.rs @@ -0,0 +1,9 @@ +//! Header: `sys/types.h` +//! +//! Note: Basic types are defined at the crate root level for qurt. +//! This module provides sys/types.h specific functions and constants. + +use super::super::*; +use crate::prelude::*; + +pub type cpu_set_t = c_uint; diff --git a/src/new/qurt/time.rs b/src/new/qurt/time.rs new file mode 100644 index 0000000000000..e3535fd5bd82d --- /dev/null +++ b/src/new/qurt/time.rs @@ -0,0 +1,52 @@ +//! Header: `time.h` + +use super::*; +use crate::prelude::*; + +// Clock types +pub const CLOCK_REALTIME: clockid_t = 0; +pub const CLOCK_MONOTONIC: clockid_t = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: clockid_t = 2; +pub const CLOCK_THREAD_CPUTIME_ID: clockid_t = 3; + +// Timer flags +pub const TIMER_ABSTIME: c_int = 1; + +extern "C" { + // Time functions + pub fn time(tloc: *mut time_t) -> time_t; + pub fn difftime(time1: time_t, time0: time_t) -> c_double; + pub fn mktime(tm: *mut tm) -> time_t; + pub fn gmtime(timep: *const time_t) -> *mut tm; + pub fn gmtime_r(timep: *const time_t, result: *mut tm) -> *mut tm; + pub fn localtime(timep: *const time_t) -> *mut tm; + pub fn localtime_r(timep: *const time_t, result: *mut tm) -> *mut tm; + pub fn asctime(tm: *const tm) -> *mut c_char; + pub fn asctime_r(tm: *const tm, buf: *mut c_char) -> *mut c_char; + pub fn ctime(timep: *const time_t) -> *mut c_char; + pub fn ctime_r(timep: *const time_t, buf: *mut c_char) -> *mut c_char; + pub fn strftime( + s: *mut c_char, + maxsize: size_t, + format: *const c_char, + timeptr: *const tm, + ) -> size_t; + + // High-resolution time functions + 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; + pub fn clock_getres(clk_id: clockid_t, res: *mut timespec) -> c_int; + pub fn nanosleep(req: *const timespec, rem: *mut timespec) -> c_int; + + // Timer functions + pub fn timer_create(clockid: clockid_t, sevp: *mut sigevent, timerid: *mut timer_t) -> c_int; + pub fn timer_delete(timerid: timer_t) -> c_int; + pub fn timer_settime( + timerid: timer_t, + flags: c_int, + new_value: *const itimerspec, + old_value: *mut itimerspec, + ) -> c_int; + pub fn timer_gettime(timerid: timer_t, curr_value: *mut itimerspec) -> c_int; + pub fn timer_getoverrun(timerid: timer_t) -> c_int; +} diff --git a/src/new/qurt/unistd.rs b/src/new/qurt/unistd.rs new file mode 100644 index 0000000000000..3faced7d30307 --- /dev/null +++ b/src/new/qurt/unistd.rs @@ -0,0 +1,58 @@ +//! Header: `unistd.h` + +use super::*; +pub use crate::new::common::posix::unistd::{ + STDERR_FILENO, + STDIN_FILENO, + STDOUT_FILENO, +}; +use crate::prelude::*; + +// Access mode constants +pub const F_OK: c_int = 0; +pub const X_OK: c_int = 1; +pub const W_OK: c_int = 2; +pub const R_OK: c_int = 4; + +// Whence constants for lseek +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; + +extern "C" { + // File operations + pub fn access(pathname: *const c_char, mode: c_int) -> c_int; + pub fn close(fd: c_int) -> c_int; + pub fn dup(oldfd: c_int) -> c_int; + pub fn dup2(oldfd: c_int, newfd: c_int) -> c_int; + pub fn lseek(fd: c_int, offset: off_t, whence: c_int) -> off_t; + pub fn read(fd: c_int, buf: *mut c_void, count: size_t) -> ssize_t; + pub fn write(fd: c_int, buf: *const c_void, count: size_t) -> ssize_t; + + // Process operations + pub fn getpid() -> pid_t; + pub fn getppid() -> pid_t; + pub fn getuid() -> uid_t; + pub fn geteuid() -> uid_t; + pub fn getgid() -> gid_t; + pub fn getegid() -> gid_t; + pub fn getpgid(pid: pid_t) -> pid_t; + pub fn getpgrp() -> pid_t; + pub fn setpgrp() -> pid_t; + pub fn seteuid(uid: uid_t) -> c_int; + pub fn setuid(uid: uid_t) -> c_int; + pub fn setpgid(pid: pid_t, pgid: pid_t) -> c_int; + pub fn setsid() -> pid_t; + + // File synchronization + pub fn fsync(fd: c_int) -> c_int; + + // Sleep functions + pub fn sleep(seconds: c_uint) -> c_uint; + pub fn usleep(usec: useconds_t) -> c_int; + + // System configuration + pub fn sysconf(name: c_int) -> c_long; + pub fn pathconf(path: *const c_char, name: c_int) -> c_long; + pub fn fpathconf(fd: c_int, name: c_int) -> c_long; +} diff --git a/src/qurt/hexagon.rs b/src/qurt/hexagon.rs new file mode 100644 index 0000000000000..bc89521c3de04 --- /dev/null +++ b/src/qurt/hexagon.rs @@ -0,0 +1,340 @@ +use crate::prelude::*; + +pub type wchar_t = u32; + +pub type cpu_set_t = c_uint; + +s! { + pub struct stat { + pub st_dev: crate::dev_t, + pub st_ino: crate::ino_t, + pub st_mode: crate::mode_t, + pub st_nlink: crate::nlink_t, + pub st_uid: crate::uid_t, + pub st_gid: crate::gid_t, + pub st_rdev: crate::dev_t, + pub st_size: crate::off_t, + pub st_blksize: crate::blksize_t, + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, + pub st_atime_nsec: c_long, + pub st_mtime: crate::time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: crate::time_t, + pub st_ctime_nsec: c_long, + } + + pub struct dirent { + pub d_ino: crate::ino_t, + pub d_type: c_uchar, + pub d_name: [c_char; 256], + } +} + +// File type constants for stat.st_mode +pub const S_IFMT: crate::mode_t = 0o170000; +pub const S_IFSOCK: crate::mode_t = 0o140000; +pub const S_IFLNK: crate::mode_t = 0o120000; +pub const S_IFREG: crate::mode_t = 0o100000; +pub const S_IFBLK: crate::mode_t = 0o060000; +pub const S_IFDIR: crate::mode_t = 0o040000; +pub const S_IFCHR: crate::mode_t = 0o020000; +pub const S_IFIFO: crate::mode_t = 0o010000; + +// File permission constants +pub const S_ISUID: crate::mode_t = 0o4000; +pub const S_ISGID: crate::mode_t = 0o2000; +pub const S_ISVTX: crate::mode_t = 0o1000; +pub const S_IRWXU: crate::mode_t = 0o0700; +pub const S_IRUSR: crate::mode_t = 0o0400; +pub const S_IWUSR: crate::mode_t = 0o0200; +pub const S_IXUSR: crate::mode_t = 0o0100; +pub const S_IRWXG: crate::mode_t = 0o0070; +pub const S_IRGRP: crate::mode_t = 0o0040; +pub const S_IWGRP: crate::mode_t = 0o0020; +pub const S_IXGRP: crate::mode_t = 0o0010; +pub const S_IRWXO: crate::mode_t = 0o0007; +pub const S_IROTH: crate::mode_t = 0o0004; +pub const S_IWOTH: crate::mode_t = 0o0002; +pub const S_IXOTH: crate::mode_t = 0o0001; + +// Directory entry types +pub const DT_UNKNOWN: c_uchar = 0; +pub const DT_FIFO: c_uchar = 1; +pub const DT_CHR: c_uchar = 2; +pub const DT_DIR: c_uchar = 4; +pub const DT_BLK: c_uchar = 6; +pub const DT_REG: c_uchar = 8; +pub const DT_LNK: c_uchar = 10; +pub const DT_SOCK: c_uchar = 12; + +// Size types +pub const PAGESIZE: size_t = 4096; +pub const PAGE_SIZE: size_t = 4096; + +// pathconf constants (from bits/confname.h) +pub const _PC_LINK_MAX: c_int = 0; +pub const _PC_MAX_CANON: c_int = 1; +pub const _PC_MAX_INPUT: c_int = 2; +pub const _PC_NAME_MAX: c_int = 3; +pub const _PC_PATH_MAX: c_int = 4; +pub const _PC_PIPE_BUF: c_int = 5; +pub const _PC_CHOWN_RESTRICTED: c_int = 6; +pub const _PC_NO_TRUNC: c_int = 7; +pub const _PC_VDISABLE: c_int = 8; +pub const _PC_SYNC_IO: c_int = 9; +pub const _PC_ASYNC_IO: c_int = 10; +pub const _PC_PRIO_IO: c_int = 11; +pub const _PC_SOCK_MAXBUF: c_int = 12; +pub const _PC_FILESIZEBITS: c_int = 13; +pub const _PC_REC_INCR_XFER_SIZE: c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: c_int = 16; +pub const _PC_REC_XFER_ALIGN: c_int = 17; +pub const _PC_ALLOC_SIZE_MIN: c_int = 18; +pub const _PC_SYMLINK_MAX: c_int = 19; +pub const _PC_2_SYMLINKS: c_int = 20; + +// sysconf constants (from bits/confname.h) +pub const _SC_ARG_MAX: c_int = 0; +pub const _SC_CHILD_MAX: c_int = 1; +pub const _SC_CLK_TCK: c_int = 2; +pub const _SC_NGROUPS_MAX: c_int = 3; +pub const _SC_OPEN_MAX: c_int = 4; +pub const _SC_STREAM_MAX: c_int = 5; +pub const _SC_TZNAME_MAX: c_int = 6; +pub const _SC_JOB_CONTROL: c_int = 7; +pub const _SC_SAVED_IDS: c_int = 8; +pub const _SC_REALTIME_SIGNALS: c_int = 9; +pub const _SC_PRIORITY_SCHEDULING: c_int = 10; +pub const _SC_TIMERS: c_int = 11; +pub const _SC_ASYNCHRONOUS_IO: c_int = 12; +pub const _SC_PRIORITIZED_IO: c_int = 13; +pub const _SC_SYNCHRONIZED_IO: c_int = 14; +pub const _SC_FSYNC: c_int = 15; +pub const _SC_MAPPED_FILES: c_int = 16; +pub const _SC_MEMLOCK: c_int = 17; +pub const _SC_MEMLOCK_RANGE: c_int = 18; +pub const _SC_MEMORY_PROTECTION: c_int = 19; +pub const _SC_MESSAGE_PASSING: c_int = 20; +pub const _SC_SEMAPHORES: c_int = 21; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 22; +pub const _SC_AIO_LISTIO_MAX: c_int = 23; +pub const _SC_AIO_MAX: c_int = 24; +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 25; +pub const _SC_DELAYTIMER_MAX: c_int = 26; +pub const _SC_MQ_OPEN_MAX: c_int = 27; +pub const _SC_MQ_PRIO_MAX: c_int = 28; +pub const _SC_VERSION: c_int = 29; +pub const _SC_PAGESIZE: c_int = 30; +pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; +pub const _SC_RTSIG_MAX: c_int = 31; +pub const _SC_SEM_NSEMS_MAX: c_int = 32; +pub const _SC_SEM_VALUE_MAX: c_int = 33; +pub const _SC_SIGQUEUE_MAX: c_int = 34; +pub const _SC_TIMER_MAX: c_int = 35; + +// POSIX2 sysconf options +pub const _SC_BC_BASE_MAX: c_int = 36; +pub const _SC_BC_DIM_MAX: c_int = 37; +pub const _SC_BC_SCALE_MAX: c_int = 38; +pub const _SC_BC_STRING_MAX: c_int = 39; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 40; +pub const _SC_EQUIV_CLASS_MAX: c_int = 41; +pub const _SC_EXPR_NEST_MAX: c_int = 42; +pub const _SC_LINE_MAX: c_int = 43; +pub const _SC_RE_DUP_MAX: c_int = 44; +pub const _SC_CHARCLASS_NAME_MAX: c_int = 45; + +pub const _SC_2_VERSION: c_int = 46; +pub const _SC_2_C_BIND: c_int = 47; +pub const _SC_2_C_DEV: c_int = 48; +pub const _SC_2_FORT_DEV: c_int = 49; +pub const _SC_2_FORT_RUN: c_int = 50; +pub const _SC_2_SW_DEV: c_int = 51; +pub const _SC_2_LOCALEDEF: c_int = 52; + +pub const _SC_PII: c_int = 53; +pub const _SC_PII_XTI: c_int = 54; +pub const _SC_PII_SOCKET: c_int = 55; +pub const _SC_PII_INTERNET: c_int = 56; +pub const _SC_PII_OSI: c_int = 57; +pub const _SC_POLL: c_int = 58; +pub const _SC_SELECT: c_int = 59; +pub const _SC_UIO_MAXIOV: c_int = 60; +pub const _SC_IOV_MAX: c_int = _SC_UIO_MAXIOV; +pub const _SC_PII_INTERNET_STREAM: c_int = 61; +pub const _SC_PII_INTERNET_DGRAM: c_int = 62; +pub const _SC_PII_OSI_COTS: c_int = 63; +pub const _SC_PII_OSI_CLTS: c_int = 64; +pub const _SC_PII_OSI_M: c_int = 65; +pub const _SC_T_IOV_MAX: c_int = 66; + +// POSIX threads sysconf options +pub const _SC_THREADS: c_int = 67; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 68; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 69; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 70; +pub const _SC_LOGIN_NAME_MAX: c_int = 71; +pub const _SC_TTY_NAME_MAX: c_int = 72; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 73; +pub const _SC_THREAD_KEYS_MAX: c_int = 74; +pub const _SC_THREAD_STACK_MIN: c_int = 75; +pub const _SC_THREAD_THREADS_MAX: c_int = 76; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 77; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 78; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 79; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 80; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 81; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 82; + +pub const _SC_NPROCESSORS_CONF: c_int = 83; +pub const _SC_NPROCESSORS_ONLN: c_int = 84; +pub const _SC_PHYS_PAGES: c_int = 85; +pub const _SC_AVPHYS_PAGES: c_int = 86; +pub const _SC_ATEXIT_MAX: c_int = 87; +pub const _SC_PASS_MAX: c_int = 88; + +pub const _SC_XOPEN_VERSION: c_int = 89; +pub const _SC_XOPEN_XCU_VERSION: c_int = 90; +pub const _SC_XOPEN_UNIX: c_int = 91; +pub const _SC_XOPEN_CRYPT: c_int = 92; +pub const _SC_XOPEN_ENH_I18N: c_int = 93; +pub const _SC_XOPEN_SHM: c_int = 94; + +pub const _SC_2_CHAR_TERM: c_int = 95; +pub const _SC_2_C_VERSION: c_int = 96; +pub const _SC_2_UPE: c_int = 97; + +pub const _SC_XOPEN_XPG2: c_int = 98; +pub const _SC_XOPEN_XPG3: c_int = 99; +pub const _SC_XOPEN_XPG4: c_int = 100; + +pub const _SC_CHAR_BIT: c_int = 101; +pub const _SC_CHAR_MAX: c_int = 102; +pub const _SC_CHAR_MIN: c_int = 103; +pub const _SC_INT_MAX: c_int = 104; +pub const _SC_INT_MIN: c_int = 105; +pub const _SC_LONG_BIT: c_int = 106; +pub const _SC_WORD_BIT: c_int = 107; +pub const _SC_MB_LEN_MAX: c_int = 108; +pub const _SC_NZERO: c_int = 109; +pub const _SC_SSIZE_MAX: c_int = 110; +pub const _SC_SCHAR_MAX: c_int = 111; +pub const _SC_SCHAR_MIN: c_int = 112; +pub const _SC_SHRT_MAX: c_int = 113; +pub const _SC_SHRT_MIN: c_int = 114; +pub const _SC_UCHAR_MAX: c_int = 115; +pub const _SC_UINT_MAX: c_int = 116; +pub const _SC_ULONG_MAX: c_int = 117; +pub const _SC_USHRT_MAX: c_int = 118; + +pub const _SC_NL_ARGMAX: c_int = 119; +pub const _SC_NL_LANGMAX: c_int = 120; +pub const _SC_NL_MSGMAX: c_int = 121; +pub const _SC_NL_NMAX: c_int = 122; +pub const _SC_NL_SETMAX: c_int = 123; +pub const _SC_NL_TEXTMAX: c_int = 124; + +pub const _SC_XBS5_ILP32_OFF32: c_int = 125; +pub const _SC_XBS5_ILP32_OFFBIG: c_int = 126; +pub const _SC_XBS5_LP64_OFF64: c_int = 127; +pub const _SC_XBS5_LPBIG_OFFBIG: c_int = 128; + +pub const _SC_XOPEN_LEGACY: c_int = 129; +pub const _SC_XOPEN_REALTIME: c_int = 130; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 131; + +pub const _SC_ADVISORY_INFO: c_int = 132; +pub const _SC_BARRIERS: c_int = 133; +pub const _SC_BASE: c_int = 134; +pub const _SC_C_LANG_SUPPORT: c_int = 135; +pub const _SC_C_LANG_SUPPORT_R: c_int = 136; +pub const _SC_CLOCK_SELECTION: c_int = 137; +pub const _SC_CPUTIME: c_int = 138; +pub const _SC_THREAD_CPUTIME: c_int = 139; +pub const _SC_DEVICE_IO: c_int = 140; +pub const _SC_DEVICE_SPECIFIC: c_int = 141; +pub const _SC_DEVICE_SPECIFIC_R: c_int = 142; +pub const _SC_FD_MGMT: c_int = 143; +pub const _SC_FIFO: c_int = 144; +pub const _SC_PIPE: c_int = 145; +pub const _SC_FILE_ATTRIBUTES: c_int = 146; +pub const _SC_FILE_LOCKING: c_int = 147; +pub const _SC_FILE_SYSTEM: c_int = 148; +pub const _SC_MONOTONIC_CLOCK: c_int = 149; +pub const _SC_MULTI_PROCESS: c_int = 150; +pub const _SC_SINGLE_PROCESS: c_int = 151; +pub const _SC_NETWORKING: c_int = 152; +pub const _SC_READER_WRITER_LOCKS: c_int = 153; +pub const _SC_SPIN_LOCKS: c_int = 154; +pub const _SC_REGEXP: c_int = 155; +pub const _SC_REGEX_VERSION: c_int = 156; +pub const _SC_SHELL: c_int = 157; +pub const _SC_SIGNALS: c_int = 158; +pub const _SC_SPAWN: c_int = 159; +pub const _SC_SPORADIC_SERVER: c_int = 160; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 161; +pub const _SC_SYSTEM_DATABASE: c_int = 162; +pub const _SC_SYSTEM_DATABASE_R: c_int = 163; +pub const _SC_TIMEOUTS: c_int = 164; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 165; +pub const _SC_USER_GROUPS: c_int = 166; +pub const _SC_USER_GROUPS_R: c_int = 167; +pub const _SC_2_PBS: c_int = 168; +pub const _SC_2_PBS_ACCOUNTING: c_int = 169; +pub const _SC_2_PBS_LOCATE: c_int = 170; +pub const _SC_2_PBS_MESSAGE: c_int = 171; +pub const _SC_2_PBS_TRACK: c_int = 172; +pub const _SC_SYMLOOP_MAX: c_int = 173; +pub const _SC_STREAMS: c_int = 174; +pub const _SC_2_PBS_CHECKPOINT: c_int = 175; + +pub const _SC_V6_ILP32_OFF32: c_int = 176; +pub const _SC_V6_ILP32_OFFBIG: c_int = 177; +pub const _SC_V6_LP64_OFF64: c_int = 178; +pub const _SC_V6_LPBIG_OFFBIG: c_int = 179; + +pub const _SC_HOST_NAME_MAX: c_int = 180; +pub const _SC_TRACE: c_int = 181; +pub const _SC_TRACE_EVENT_FILTER: c_int = 182; +pub const _SC_TRACE_INHERIT: c_int = 183; +pub const _SC_TRACE_LOG: c_int = 184; + +pub const _SC_LEVEL1_ICACHE_SIZE: c_int = 185; +pub const _SC_LEVEL1_ICACHE_ASSOC: c_int = 186; +pub const _SC_LEVEL1_ICACHE_LINESIZE: c_int = 187; +pub const _SC_LEVEL1_DCACHE_SIZE: c_int = 188; +pub const _SC_LEVEL1_DCACHE_ASSOC: c_int = 189; +pub const _SC_LEVEL1_DCACHE_LINESIZE: c_int = 190; +pub const _SC_LEVEL2_CACHE_SIZE: c_int = 191; +pub const _SC_LEVEL2_CACHE_ASSOC: c_int = 192; +pub const _SC_LEVEL2_CACHE_LINESIZE: c_int = 193; +pub const _SC_LEVEL3_CACHE_SIZE: c_int = 194; +pub const _SC_LEVEL3_CACHE_ASSOC: c_int = 195; +pub const _SC_LEVEL3_CACHE_LINESIZE: c_int = 196; +pub const _SC_LEVEL4_CACHE_SIZE: c_int = 197; +pub const _SC_LEVEL4_CACHE_ASSOC: c_int = 198; +pub const _SC_LEVEL4_CACHE_LINESIZE: c_int = 199; + +pub const _SC_IPV6: c_int = 235; +pub const _SC_RAW_SOCKETS: c_int = 236; + +pub const _SC_V7_ILP32_OFF32: c_int = 237; +pub const _SC_V7_ILP32_OFFBIG: c_int = 238; +pub const _SC_V7_LP64_OFF64: c_int = 239; +pub const _SC_V7_LPBIG_OFFBIG: c_int = 240; + +pub const _SC_SS_REPL_MAX: c_int = 241; + +pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 242; +pub const _SC_TRACE_NAME_MAX: c_int = 243; +pub const _SC_TRACE_SYS_MAX: c_int = 244; +pub const _SC_TRACE_USER_EVENT_MAX: c_int = 245; + +pub const _SC_XOPEN_STREAMS: c_int = 246; + +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 247; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 248; + +// Note: QuRT doesn't use traditional syscalls but has its own API diff --git a/src/qurt/mod.rs b/src/qurt/mod.rs new file mode 100644 index 0000000000000..1ecbe172a2564 --- /dev/null +++ b/src/qurt/mod.rs @@ -0,0 +1,334 @@ +//! Interface to QuRT (Qualcomm Real-Time OS) C library + +use crate::prelude::*; + +// Forward declarations for opaque types +#[derive(Debug)] +pub enum DIR {} +impl Copy for DIR {} +impl Clone for DIR { + fn clone(&self) -> DIR { + *self + } +} + +// Network types +pub type socklen_t = c_uint; +pub type in_addr_t = u32; + +// Error type +pub type errno_t = c_int; + +// Resource limit type +pub type rlim_t = c_ulong; + +// Terminal types +pub type speed_t = c_uint; +pub type tcflag_t = c_uint; + +// File descriptor set type for select() +pub type fd_set = c_ulong; + +// POSIX semaphore types +pub type sem_t = c_uint; + +// Message queue types +pub type mqd_t = c_int; + +// Additional file system types +pub type nfds_t = c_ulong; + +// Architecture-specific modules +cfg_if! { + if #[cfg(target_arch = "hexagon")] { + mod hexagon; + pub use self::hexagon::*; + } else { + // Add other architectures as needed + } +} + +// Structures based on QuRT headers +s! { + pub struct sigval { + pub sival_int: c_int, + pub sival_ptr: *mut c_void, + } + + pub struct sigevent { + pub sigev_notify: c_int, + pub sigev_signo: c_int, + pub sigev_value: sigval, + pub sigev_notify_function: Option, + pub sigev_notify_attributes: *mut pthread_attr_t, + } + + pub struct siginfo_t { + pub si_signo: c_int, + pub si_code: c_int, + pub si_value: sigval, + } + + pub struct sigaction { + pub sa_handler: Option, + pub sa_mask: sigset_t, + pub sa_flags: c_int, + pub sa_sigaction: Option, + } + + pub struct termios { + pub c_iflag: tcflag_t, + pub c_oflag: tcflag_t, + pub c_cflag: tcflag_t, + pub c_lflag: tcflag_t, + pub c_cc: [c_uchar; 32], + pub c_ispeed: speed_t, + pub c_ospeed: speed_t, + } + + pub struct dirent { + pub d_ino: ino_t, + pub d_type: c_uchar, + pub d_name: [c_char; 256], + } + + pub struct tm { + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + } + + pub struct sched_param { + pub sched_priority: c_int, + } + + pub struct iovec { + pub iov_base: *mut c_void, + pub iov_len: size_t, + } + + pub struct rlimit { + pub rlim_cur: rlim_t, + pub rlim_max: rlim_t, + } + + pub struct rusage { + pub ru_utime: timeval, + pub ru_stime: timeval, + pub ru_maxrss: c_long, + pub ru_ixrss: c_long, + pub ru_idrss: c_long, + pub ru_isrss: c_long, + pub ru_minflt: c_long, + pub ru_majflt: c_long, + pub ru_nswap: c_long, + pub ru_inblock: c_long, + pub ru_oublock: c_long, + pub ru_msgsnd: c_long, + pub ru_msgrcv: c_long, + pub ru_nsignals: c_long, + pub ru_nvcsw: c_long, + pub ru_nivcsw: c_long, + } + + pub struct flock { + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: pid_t, + } +} + +// Memory mapping constants (from sys/mman.h) +pub const PROT_NONE: c_int = 0x00; +pub const PROT_READ: c_int = 0x01; +pub const PROT_WRITE: c_int = 0x02; +pub const PROT_EXEC: c_int = 0x04; + +pub const MAP_SHARED: c_int = 0x0001; +pub const MAP_PRIVATE: c_int = 0x0002; +pub const MAP_FIXED: c_int = 0x0010; +pub const MAP_ANON: c_int = 0x1000; +pub const MAP_ANONYMOUS: c_int = MAP_ANON; +pub const MAP_FILE: c_int = 0x0000; +pub const MAP_RENAME: c_int = 0x0020; +pub const MAP_NORESERVE: c_int = 0x0040; +pub const MAP_INHERIT: c_int = 0x0080; +pub const MAP_HASSEMAPHORE: c_int = 0x0200; +pub const MAP_TRYFIXED: c_int = 0x0400; +pub const MAP_WIRED: c_int = 0x0800; + +pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; + +pub const MS_ASYNC: c_int = 0x01; +pub const MS_INVALIDATE: c_int = 0x02; +pub const MS_SYNC: c_int = 0x04; + +pub const MCL_CURRENT: c_int = 0x01; +pub const MCL_FUTURE: c_int = 0x02; + +// Dynamic linking constants (from dlfcn.h) +pub const RTLD_LAZY: c_int = 1; +pub const RTLD_NOW: c_int = 2; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_LOCAL: c_int = 0x200; + +// Semaphore constants +pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; + +// Additional constants +pub const PTHREAD_NAME_LEN: c_int = 16; +pub const PTHREAD_MAX_THREADS: c_uint = 512; +pub const PTHREAD_MIN_STACKSIZE: c_int = 512; +pub const PTHREAD_MAX_STACKSIZE: c_int = 1048576; +pub const PTHREAD_DEFAULT_STACKSIZE: c_int = 16384; +pub const PTHREAD_DEFAULT_PRIORITY: c_int = 1; +pub const PTHREAD_SPINLOCK_UNLOCKED: c_int = 0; +pub const PTHREAD_SPINLOCK_LOCKED: c_int = 1; +pub const TIME_CONV_SCLK_FREQ: c_int = 19200000; +pub const CLOCK_MONOTONIC_RAW: clockid_t = 4; +pub const CLOCK_REALTIME_COARSE: clockid_t = 5; +pub const CLOCK_MONOTONIC_COARSE: clockid_t = 6; +pub const CLOCK_BOOTTIME: clockid_t = 7; +pub const L_tmpnam: c_uint = 260; +pub const TMP_MAX: c_uint = 25; +pub const FOPEN_MAX: c_uint = 20; +pub const AT_FDCWD: c_int = -100; +pub const AT_EACCESS: c_int = 0x200; +pub const AT_SYMLINK_NOFOLLOW: c_int = 0x100; +pub const AT_SYMLINK_FOLLOW: c_int = 0x400; +pub const AT_REMOVEDIR: c_int = 0x200; +pub const EOK: c_int = 0; +pub const POSIX_MSG: c_int = 7; +pub const POSIX_NOTIF: c_int = 8; +pub const SIGRTMIN: c_int = 10; +pub const SIGRTMAX: c_int = 32; +pub const SIGEV_NONE: c_int = 0; +pub const SIGEV_SIGNAL: c_int = 1; +pub const SIGEV_THREAD: c_int = 2; +pub const SA_SIGINFO: c_int = 1; + +// Function declarations for QuRT POSIX API +extern "C" { + // Signal functions + pub fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int; + pub fn _sigaction(sig: c_int, act: *const sigaction, oact: *mut sigaction) -> c_int; + pub fn sigtimedwait( + set: *const sigset_t, + info: *mut siginfo_t, + timeout: *const timespec, + ) -> c_int; + + // Additional pthread functions + pub fn pthread_attr_getstack( + attr: *const pthread_attr_t, + stackaddr: *mut *mut c_void, + stacksize: *mut size_t, + ) -> c_int; + pub fn pthread_attr_setstack( + attr: *mut pthread_attr_t, + stackaddr: *mut c_void, + stacksize: size_t, + ) -> c_int; + pub fn pthread_mutexattr_gettype(attr: *const pthread_mutexattr_t, type_: *mut c_int) -> c_int; + pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, type_: c_int) -> c_int; + + // Additional time functions + pub fn clock_getcpuclockid(pid: pid_t, clock_id: *mut clockid_t) -> c_int; + + // POSIX semaphore functions + pub fn sem_open(name: *const c_char, oflag: c_int, ...) -> *mut sem_t; + pub fn sem_close(sem: *mut sem_t) -> c_int; + pub fn sem_unlink(name: *const c_char) -> c_int; + + // Additional stdlib functions + pub fn aligned_alloc(alignment: size_t, size: size_t) -> *mut c_void; + + // String functions + pub fn strlen(s: *const c_char) -> size_t; + pub fn strcpy(dest: *mut c_char, src: *const c_char) -> *mut c_char; + pub fn strncpy(dest: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; + pub fn strcat(dest: *mut c_char, src: *const c_char) -> *mut c_char; + pub fn strncat(dest: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; + pub fn strcmp(s1: *const c_char, s2: *const c_char) -> c_int; + pub fn strncmp(s1: *const c_char, s2: *const c_char, n: size_t) -> c_int; + pub fn strcoll(s1: *const c_char, s2: *const c_char) -> c_int; + pub fn strxfrm(dest: *mut c_char, src: *const c_char, n: size_t) -> size_t; + pub fn strchr(s: *const c_char, c: c_int) -> *mut c_char; + pub fn strrchr(s: *const c_char, c: c_int) -> *mut c_char; + pub fn strspn(s: *const c_char, accept: *const c_char) -> size_t; + pub fn strcspn(s: *const c_char, reject: *const c_char) -> size_t; + pub fn strpbrk(s: *const c_char, accept: *const c_char) -> *mut c_char; + pub fn strstr(haystack: *const c_char, needle: *const c_char) -> *mut c_char; + pub fn strtok(s: *mut c_char, delim: *const c_char) -> *mut c_char; + pub fn strerror(errnum: c_int) -> *mut c_char; + pub fn memchr(s: *const c_void, c: c_int, n: size_t) -> *mut c_void; + pub fn memcmp(s1: *const c_void, s2: *const c_void, n: size_t) -> c_int; + pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + pub fn memset(s: *mut c_void, c: c_int, n: size_t) -> *mut c_void; + + // Additional unistd functions + pub fn fork() -> pid_t; + pub fn execve( + filename: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + ) -> c_int; + + // Directory functions + pub fn opendir(name: *const c_char) -> *mut DIR; + pub fn closedir(dirp: *mut DIR) -> c_int; + pub fn readdir(dirp: *mut DIR) -> *mut dirent; + pub fn rewinddir(dirp: *mut DIR); + pub fn telldir(dirp: *mut DIR) -> c_long; + pub fn seekdir(dirp: *mut DIR, loc: c_long); + + // Memory mapping functions + pub fn mmap( + addr: *mut c_void, + len: size_t, + prot: c_int, + flags: c_int, + fd: c_int, + offset: off_t, + ) -> *mut c_void; + pub fn munmap(addr: *mut c_void, len: size_t) -> c_int; + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; + pub fn mlock(addr: *const c_void, len: size_t) -> c_int; + pub fn munlock(addr: *const c_void, len: size_t) -> c_int; + pub fn mlockall(flags: c_int) -> c_int; + pub fn munlockall() -> c_int; + pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; + + // Dynamic linking functions + pub fn dlopen(filename: *const c_char, flag: c_int) -> *mut c_void; + pub fn dlclose(handle: *mut c_void) -> c_int; + pub fn dlsym(handle: *mut c_void, symbol: *const c_char) -> *mut c_void; + pub fn dlerror() -> *mut c_char; + + // Character classification functions + pub fn isalnum(c: c_int) -> c_int; + pub fn isalpha(c: c_int) -> c_int; + pub fn iscntrl(c: c_int) -> c_int; + pub fn isdigit(c: c_int) -> c_int; + pub fn isgraph(c: c_int) -> c_int; + pub fn islower(c: c_int) -> c_int; + pub fn isprint(c: c_int) -> c_int; + pub fn ispunct(c: c_int) -> c_int; + pub fn isspace(c: c_int) -> c_int; + pub fn isupper(c: c_int) -> c_int; + pub fn isxdigit(c: c_int) -> c_int; + pub fn tolower(c: c_int) -> c_int; + pub fn toupper(c: c_int) -> c_int; +} + +// Re-export common prelude items +pub use crate::*; From 85aa37932866ee699e18b477e47fce5e1f2c999e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Dec 2025 14:06:02 +0000 Subject: [PATCH 1092/1228] build(deps): bump vmactions/solaris-vm from 1.1.8 to 1.2.3 Bumps [vmactions/solaris-vm](https://github.com/vmactions/solaris-vm) from 1.1.8 to 1.2.3. - [Release notes](https://github.com/vmactions/solaris-vm/releases) - [Commits](https://github.com/vmactions/solaris-vm/compare/v1.1.8...v1.2.3) --- updated-dependencies: - dependency-name: vmactions/solaris-vm dependency-version: 1.2.3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] (backport ) (cherry picked from commit 0a5a8b65f98441cb71e7aaefd81672080d819443) --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 81c3b6e58fb38..9befcc3e7667a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -272,7 +272,7 @@ jobs: steps: - uses: actions/checkout@v6 - name: test on Solaris - uses: vmactions/solaris-vm@v1.1.8 + uses: vmactions/solaris-vm@v1.2.3 if: contains(matrix.target, 'solaris') with: release: "11.4-gcc" From 3918b91159b308eb056b6f3c73e63cf55b687c81 Mon Sep 17 00:00:00 2001 From: Havard Eidnes Date: Mon, 29 Dec 2025 21:01:39 +0100 Subject: [PATCH 1093/1228] src/new/netbsd/net/if_.rs: make if_msghdr self-tests succeed on ilp32 hosts: This fixes the following errors from `cd libc-test; cargo test`: bad `if_msghdr` size: rust: 148 != c 152 bad `if_msghdr` align: rust: 4 != c 8 and size of `struct if_msghdr` is 152 in C and 148 in Rust as verified natively on NetBSD/i386 10.0 with rust 1.92.0. Ref. https://nxr.netbsd.org/xref/src/sys/net/if.h#790 for the original C definition of `struct if_msghdr`. (backport ) (cherry picked from commit 86dbfd4cf4247c936035fd1edd8545be1f77c838) --- src/new/netbsd/net/if_.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/new/netbsd/net/if_.rs b/src/new/netbsd/net/if_.rs index 99e4f97a3748b..68f2d91626903 100644 --- a/src/new/netbsd/net/if_.rs +++ b/src/new/netbsd/net/if_.rs @@ -50,6 +50,7 @@ pub const IFF_LINK2: c_int = 0x4000; // per link layer defined bit pub const IFF_MULTICAST: c_int = 0x8000; // supports multicast s! { + #[repr(C, align(8))] pub struct if_msghdr { pub ifm_msglen: c_ushort, pub ifm_version: c_uchar, From 80a05fdc113e9390ffe483880a7203da5276b20c Mon Sep 17 00:00:00 2001 From: Havard Eidnes Date: Wed, 31 Dec 2025 00:02:27 +0100 Subject: [PATCH 1094/1228] netbsd/mod.rs: fix so that self-tests pass on both ilp32 and lp64. This is mostly related to siginfo_t. An error in si_status() implementation was also fixed. Ref. padding dependent on _LP64 in https://nxr.netbsd.org/xref/src/sys/sys/siginfo.h#50 and si_status() in https://nxr.netbsd.org/xref/src/sys/sys/siginfo.h#161 (backport ) (cherry picked from commit 1fab928a9996bf8189847b225140d720796a9d76) --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index ed5d787f93ba5..3df32c23ec4e2 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -80,6 +80,7 @@ impl siginfo_t { _si_signo: c_int, _si_errno: c_int, _si_code: c_int, + #[cfg(target_pointer_width = "64")] __pad1: Padding, _pid: crate::pid_t, } @@ -92,6 +93,7 @@ impl siginfo_t { _si_signo: c_int, _si_errno: c_int, _si_code: c_int, + #[cfg(target_pointer_width = "64")] __pad1: Padding, _pid: crate::pid_t, _uid: crate::uid_t, @@ -105,6 +107,7 @@ impl siginfo_t { _si_signo: c_int, _si_errno: c_int, _si_code: c_int, + #[cfg(target_pointer_width = "64")] __pad1: Padding, _pid: crate::pid_t, _uid: crate::uid_t, @@ -119,12 +122,10 @@ impl siginfo_t { _si_signo: c_int, _si_errno: c_int, _si_code: c_int, + #[cfg(target_pointer_width = "64")] __pad1: Padding, _pid: crate::pid_t, _uid: crate::uid_t, - _value: crate::sigval, - _cpid: crate::pid_t, - _cuid: crate::uid_t, status: c_int, } (*(self as *const siginfo_t as *const siginfo_timer)).status @@ -211,9 +212,13 @@ s! { pub si_signo: c_int, pub si_code: c_int, pub si_errno: c_int, + #[cfg(target_pointer_width = "64")] __pad1: Padding, pub si_addr: *mut c_void, + #[cfg(target_pointer_width = "64")] __pad2: Padding<[u64; 13]>, + #[cfg(target_pointer_width = "32")] + __pad2: Padding<[u64; 14]>, } pub struct pthread_attr_t { From bd4a7c5b8d4b3a5511b6824ac5bc98a6608961ce Mon Sep 17 00:00:00 2001 From: usamoi Date: Fri, 12 Dec 2025 22:40:38 +0800 Subject: [PATCH 1095/1228] links old version of cf{g,s}et{i,o}speed for glibc (backport ) (cherry picked from commit b5c3653c862acb20ce5686a85f400c3dba00a893) --- libc-test/build.rs | 24 ++ libc-test/tests/linux_gnu_baud.rs | 33 +++ src/unix/mod.rs | 460 ++++++++++++++++++++++++++++++ 3 files changed, 517 insertions(+) create mode 100644 libc-test/tests/linux_gnu_baud.rs diff --git a/libc-test/build.rs b/libc-test/build.rs index 37907d1ae4a67..330388f874553 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4947,6 +4947,30 @@ fn test_linux(target: &str) { _ => false, }); + if gnu { + // old constants, so tests fail if glibc is too new + cfg.skip_const(|s| { + [ + "B50", "B75", "B110", "B134", "B150", "B200", "B300", "B600", "B1200", "B1800", + "B2400", "B4800", "B9600", "B19200", "B38400", "EXTA", "EXTB", "B57600", "B115200", + "B230400", "B460800", "B500000", "B576000", "B921600", "B1000000", "B1152000", + "B1500000", "B2000000", "B2500000", "B3000000", "B3500000", "B4000000", + ] + .contains(&s.ident()) + }); + // old symbols, so tests fail if glibc is too new + cfg.skip_fn_ptrcheck(|s| { + [ + "cfgetispeed", + "cfgetospeed", + "cfsetispeed", + "cfsetospeed", + "cfsetspeed", + ] + .contains(&s) + }); + } + ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); if !l4re { diff --git a/libc-test/tests/linux_gnu_baud.rs b/libc-test/tests/linux_gnu_baud.rs new file mode 100644 index 0000000000000..f38ab6326eb65 --- /dev/null +++ b/libc-test/tests/linux_gnu_baud.rs @@ -0,0 +1,33 @@ +#[cfg(all(target_os = "linux", target_env = "gnu"))] +#[test] +fn baud() { + use libc::*; + let controller_fd = unsafe { posix_openpt(O_RDWR | O_NOCTTY) }; + assert!(controller_fd >= 0); + unsafe { + grantpt(controller_fd); + unlockpt(controller_fd); + } + let mut buffer = [0; 256]; + let ret = unsafe { ptsname_r(controller_fd, buffer.as_mut_ptr(), 256) }; + assert!(ret >= 0); + let terminal_fd = unsafe { open(buffer.as_ptr(), O_RDWR | O_NOCTTY) }; + assert!(terminal_fd >= 0); + let mut tio: termios = unsafe { std::mem::zeroed() }; + let ret = unsafe { tcgetattr(terminal_fd, &mut tio) }; + assert!(ret >= 0); + assert_eq!(unsafe { cfgetispeed(&tio) }, B38400); + assert_eq!(unsafe { cfgetospeed(&tio) }, B38400); + let ret = unsafe { cfsetspeed(&mut tio, B1000000) }; + assert!(ret >= 0); + assert_eq!(unsafe { cfgetispeed(&tio) }, B1000000); + assert_eq!(unsafe { cfgetospeed(&tio) }, B1000000); + let ret = unsafe { cfsetispeed(&mut tio, B9600) }; + assert!(ret >= 0); + assert_eq!(unsafe { cfgetispeed(&tio) }, B9600); + assert!(matches!(unsafe { cfgetospeed(&tio) }, B9600 | B1000000)); + let ret = unsafe { cfsetospeed(&mut tio, B19200) }; + assert!(ret >= 0); + assert!(matches!(unsafe { cfgetispeed(&tio) }, B9600 | B19200)); + assert_eq!(unsafe { cfgetospeed(&tio) }, B19200); +} diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 1a326682d9ff3..227334a9d4fbe 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1601,9 +1601,377 @@ extern "C" { link_name = "tcdrain$UNIX2003" )] pub fn tcdrain(fd: c_int) -> c_int; + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "arm"), + link_name = "cfgetispeed@GLIBC_2.4" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "csky"), + link_name = "cfgetispeed@GLIBC_2.29" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "m68k"), + link_name = "cfgetispeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "mips"), + link_name = "cfgetispeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "powerpc"), + link_name = "cfgetispeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "riscv32"), + link_name = "cfgetispeed@GLIBC_2.33" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "sparc"), + link_name = "cfgetispeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "x86"), + link_name = "cfgetispeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "aarch64"), + link_name = "cfgetispeed@GLIBC_2.17" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "loongarch64"), + link_name = "cfgetispeed@GLIBC_2.36" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "mips64"), + link_name = "cfgetispeed@GLIBC_2.0" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "powerpc64", + target_endian = "big" + ), + link_name = "cfgetispeed@GLIBC_2.3" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "powerpc64", + target_endian = "little" + ), + link_name = "cfgetispeed@GLIBC_2.17" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "riscv64"), + link_name = "cfgetispeed@GLIBC_2.27" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "s390x"), + link_name = "cfgetispeed@GLIBC_2.2" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "sparc64"), + link_name = "cfgetispeed@GLIBC_2.2" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "x86_64", + target_pointer_width = "64" + ), + link_name = "cfgetispeed@GLIBC_2.2.5" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "x86_64", + target_pointer_width = "32" + ), + link_name = "cfgetispeed@GLIBC_2.16" + )] pub fn cfgetispeed(termios: *const crate::termios) -> crate::speed_t; + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "arm"), + link_name = "cfgetospeed@GLIBC_2.4" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "csky"), + link_name = "cfgetospeed@GLIBC_2.29" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "m68k"), + link_name = "cfgetospeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "mips"), + link_name = "cfgetospeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "powerpc"), + link_name = "cfgetospeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "riscv32"), + link_name = "cfgetospeed@GLIBC_2.33" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "sparc"), + link_name = "cfgetospeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "x86"), + link_name = "cfgetospeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "aarch64"), + link_name = "cfgetospeed@GLIBC_2.17" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "loongarch64"), + link_name = "cfgetospeed@GLIBC_2.36" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "mips64"), + link_name = "cfgetospeed@GLIBC_2.0" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "powerpc64", + target_endian = "big" + ), + link_name = "cfgetospeed@GLIBC_2.3" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "powerpc64", + target_endian = "little" + ), + link_name = "cfgetospeed@GLIBC_2.17" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "riscv64"), + link_name = "cfgetospeed@GLIBC_2.27" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "s390x"), + link_name = "cfgetospeed@GLIBC_2.2" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "sparc64"), + link_name = "cfgetospeed@GLIBC_2.2" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "x86_64", + target_pointer_width = "64" + ), + link_name = "cfgetospeed@GLIBC_2.2.5" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "x86_64", + target_pointer_width = "32" + ), + link_name = "cfgetospeed@GLIBC_2.16" + )] pub fn cfgetospeed(termios: *const crate::termios) -> crate::speed_t; + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "arm"), + link_name = "cfsetispeed@GLIBC_2.4" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "csky"), + link_name = "cfsetispeed@GLIBC_2.29" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "m68k"), + link_name = "cfsetispeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "mips"), + link_name = "cfsetispeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "powerpc"), + link_name = "cfsetispeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "riscv32"), + link_name = "cfsetispeed@GLIBC_2.33" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "sparc"), + link_name = "cfsetispeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "x86"), + link_name = "cfsetispeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "aarch64"), + link_name = "cfsetispeed@GLIBC_2.17" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "loongarch64"), + link_name = "cfsetispeed@GLIBC_2.36" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "mips64"), + link_name = "cfsetispeed@GLIBC_2.0" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "powerpc64", + target_endian = "big" + ), + link_name = "cfsetispeed@GLIBC_2.3" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "powerpc64", + target_endian = "little" + ), + link_name = "cfsetispeed@GLIBC_2.17" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "riscv64"), + link_name = "cfsetispeed@GLIBC_2.27" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "s390x"), + link_name = "cfsetispeed@GLIBC_2.2" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "sparc64"), + link_name = "cfsetispeed@GLIBC_2.2" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "x86_64", + target_pointer_width = "64" + ), + link_name = "cfsetispeed@GLIBC_2.2.5" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "x86_64", + target_pointer_width = "32" + ), + link_name = "cfsetispeed@GLIBC_2.16" + )] pub fn cfsetispeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "arm"), + link_name = "cfsetospeed@GLIBC_2.4" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "csky"), + link_name = "cfsetospeed@GLIBC_2.29" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "m68k"), + link_name = "cfsetospeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "mips"), + link_name = "cfsetospeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "powerpc"), + link_name = "cfsetospeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "riscv32"), + link_name = "cfsetospeed@GLIBC_2.33" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "sparc"), + link_name = "cfsetospeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "x86"), + link_name = "cfsetospeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "aarch64"), + link_name = "cfsetospeed@GLIBC_2.17" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "loongarch64"), + link_name = "cfsetospeed@GLIBC_2.36" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "mips64"), + link_name = "cfsetospeed@GLIBC_2.0" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "powerpc64", + target_endian = "big" + ), + link_name = "cfsetospeed@GLIBC_2.3" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "powerpc64", + target_endian = "little" + ), + link_name = "cfsetospeed@GLIBC_2.17" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "riscv64"), + link_name = "cfsetospeed@GLIBC_2.27" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "s390x"), + link_name = "cfsetospeed@GLIBC_2.2" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "sparc64"), + link_name = "cfsetospeed@GLIBC_2.2" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "x86_64", + target_pointer_width = "64" + ), + link_name = "cfsetospeed@GLIBC_2.2.5" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "x86_64", + target_pointer_width = "32" + ), + link_name = "cfsetospeed@GLIBC_2.16" + )] pub fn cfsetospeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; pub fn tcgetattr(fd: c_int, termios: *mut crate::termios) -> c_int; pub fn tcsetattr(fd: c_int, optional_actions: c_int, termios: *const crate::termios) -> c_int; @@ -1894,6 +2262,98 @@ cfg_if! { )))] { extern "C" { #[cfg(not(target_os = "l4re"))] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "arm"), + link_name = "cfsetspeed@GLIBC_2.4" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "csky"), + link_name = "cfsetspeed@GLIBC_2.29" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "m68k"), + link_name = "cfsetspeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "mips"), + link_name = "cfsetspeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "powerpc"), + link_name = "cfsetspeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "riscv32"), + link_name = "cfsetspeed@GLIBC_2.33" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "sparc"), + link_name = "cfsetspeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "x86"), + link_name = "cfsetspeed@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "aarch64"), + link_name = "cfsetspeed@GLIBC_2.17" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "loongarch64"), + link_name = "cfsetspeed@GLIBC_2.36" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "mips64"), + link_name = "cfsetspeed@GLIBC_2.0" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "powerpc64", + target_endian = "big" + ), + link_name = "cfsetspeed@GLIBC_2.3" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "powerpc64", + target_endian = "little" + ), + link_name = "cfsetspeed@GLIBC_2.17" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "riscv64"), + link_name = "cfsetspeed@GLIBC_2.27" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "s390x"), + link_name = "cfsetspeed@GLIBC_2.2" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "sparc64"), + link_name = "cfsetspeed@GLIBC_2.2" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "x86_64", + target_pointer_width = "64" + ), + link_name = "cfsetspeed@GLIBC_2.2.5" + )] + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + target_arch = "x86_64", + target_pointer_width = "32" + ), + link_name = "cfsetspeed@GLIBC_2.16" + )] pub fn cfsetspeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; } } From c2b4b3debf426ff340025e8bde808fb4e8e41d88 Mon Sep 17 00:00:00 2001 From: Havard Eidnes Date: Mon, 29 Dec 2025 11:43:22 +0000 Subject: [PATCH 1096/1228] netbsd/mod.rs: change definition of pthread_spin_t to allow arch redefinition. (backport ) (cherry picked from commit d4dd6d8d9696c42afde356413d52ad87962bf95a) --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 3df32c23ec4e2..ecc6c8f1c7e13 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -14,7 +14,7 @@ pub type idtype_t = c_int; type __pthread_spin_t = __cpu_simple_lock_nv_t; pub type shmatt_t = c_uint; pub type cpuset_t = _cpuset; -pub type pthread_spin_t = c_uchar; +pub type pthread_spin_t = __pthread_spin_t; // elf.h From d4c9bb834b1a231c021bf4a68219371a18932ff2 Mon Sep 17 00:00:00 2001 From: Havard Eidnes Date: Mon, 29 Dec 2025 11:45:49 +0000 Subject: [PATCH 1097/1228] netbsd/arm.rs: make typo corrections which make the libc-test pass. (backport ) (cherry picked from commit d37e61547c3d88dd1dbfd6a753d7522712bda092) --- src/unix/bsd/netbsdlike/netbsd/arm.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/arm.rs b/src/unix/bsd/netbsdlike/netbsd/arm.rs index 9ff44bd40826a..1af255ea8ae63 100644 --- a/src/unix/bsd/netbsdlike/netbsd/arm.rs +++ b/src/unix/bsd/netbsdlike/netbsd/arm.rs @@ -7,8 +7,8 @@ pub(crate) const _ALIGNBYTES: usize = size_of::() - 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; +pub const PT_GETFPREGS: c_int = PT_FIRSTMACH + 5; +pub const PT_SETFPREGS: c_int = PT_FIRSTMACH + 6; pub const _REG_R0: c_int = 0; pub const _REG_R1: c_int = 1; @@ -61,10 +61,10 @@ 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_TPIDR: 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_SP: c_int = _REG_R13; +pub const _REG_LR: c_int = _REG_R14; pub const _REG_PC: c_int = _REG_R15; From a4237c035ffcd719a52f6f3c5587d953b293d066 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 20 Dec 2025 00:17:18 +0000 Subject: [PATCH 1098/1228] adding pthread_tryjoin_n/pthread_timedjoin_np to Linux. close #4878 ref linux: https://man7.org/linux/man-pages/man3/pthread_tryjoin_np.3.html ref freebsd: https://man.freebsd.org/cgi/man.cgi?query=pthread_np&apropos=0&sektion=3&manpath=FreeBSD+13.3-RELEASE&arch=default&format=html (backport ) (cherry picked from commit ba215ffa77c864bb06d36716c36bc7a62f306c60) --- libc-test/semver/freebsd.txt | 1 + libc-test/semver/linux-gnu.txt | 2 ++ libc-test/semver/linux-musl.txt | 1 + src/unix/bsd/freebsdlike/freebsd/mod.rs | 6 ++++++ src/unix/linux_like/linux/gnu/mod.rs | 10 ++++++++++ src/unix/linux_like/linux/musl/mod.rs | 10 ++++++++++ 6 files changed, 30 insertions(+) diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index baf07600f5b12..ba905e04a7fa7 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -2241,6 +2241,7 @@ pthread_spin_lock pthread_spin_trylock pthread_spin_unlock pthread_spinlock_t +pthread_timedjoin_np ptrace ptrace_io_desc ptrace_lwpinfo diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 0ef7c37782c2b..0db7c9688797e 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -660,6 +660,8 @@ pthread_attr_setaffinity_np pthread_rwlockattr_getkind_np pthread_rwlockattr_getpshared pthread_rwlockattr_setkind_np +pthread_timedjoin_np +pthread_tryjoin_np ptrace_peeksiginfo_args ptrace_sud_config ptrace_syscall_info diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index 1a5678eed6657..3971354777433 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -82,6 +82,7 @@ prlimit prlimit64 process_vm_readv process_vm_writev +pthread_timedjoin_np pututxline pwritev2 pwritev64 diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 1d462525ac5e6..2cce82c5b0307 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -4644,6 +4644,12 @@ extern "C" { pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> c_int; pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> c_int; + pub fn pthread_timedjoin_np( + thread: crate::pthread_t, + retval: *mut *mut c_void, + abstime: *const crate::timespec, + ) -> c_int; + #[cfg_attr(all(target_os = "freebsd", freebsd11), link_name = "statfs@FBSD_1.0")] pub fn statfs(path: *const c_char, buf: *mut statfs) -> c_int; #[cfg_attr(all(target_os = "freebsd", freebsd11), link_name = "fstatfs@FBSD_1.0")] diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 5f1b2c9a67b8b..6e424b8b1d362 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1120,6 +1120,16 @@ extern "C" { val: c_int, ) -> c_int; pub fn pthread_sigqueue(thread: crate::pthread_t, sig: c_int, value: crate::sigval) -> c_int; + pub fn pthread_tryjoin_np(thread: crate::pthread_t, retval: *mut *mut c_void) -> c_int; + #[cfg_attr( + all(target_pointer_width = "32", gnu_time_bits64), + link_name = "__pthread_timedjoin_np64" + )] + pub fn pthread_timedjoin_np( + thread: crate::pthread_t, + retval: *mut *mut c_void, + abstime: *const crate::timespec, + ) -> c_int; pub fn mallinfo() -> crate::mallinfo; pub fn mallinfo2() -> crate::mallinfo2; pub fn malloc_stats(); diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index f257e51d044e3..59fe8a4192178 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -869,6 +869,16 @@ extern "C" { note = "musl provides `utmp` as stubs and an alternative should be preferred; see https://wiki.musl-libc.org/faq.html" )] pub fn utmpxname(file: *const c_char) -> c_int; + pub fn pthread_tryjoin_np(thread: crate::pthread_t, retval: *mut *mut c_void) -> c_int; + #[cfg_attr( + all(musl32_time64, target_pointer_width = "32"), + link_name = "__pthread_timedjoin_np_time64" + )] + pub fn pthread_timedjoin_np( + thread: crate::pthread_t, + retval: *mut *mut c_void, + abstime: *const crate::timespec, + ) -> c_int; } // Alias to 64 to mimic glibc's LFS64 support From 4c61c9c78c7463ee0498ac96b11cdbcf8111d113 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 3 Jan 2026 04:36:33 -0500 Subject: [PATCH 1099/1228] chore: release libc 0.2.179 --- CHANGELOG.md | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++-- Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 61 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a41b5d5d496a4..c4c9508c2a0ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,62 @@ # Changelog +## [0.2.178](https://github.com/rust-lang/libc/compare/0.2.177...0.2.178) - 2025-12-01 + +With this release, we now have _unstable_ support for 64-bit `time_t` on 32-bit +platforms with both Musl and Glibc. Testing is appreciated! + +For now, these can be enabled by setting environment variables during build: + +```text +RUST_LIBC_UNSTABLE_MUSL_V1_2_3=1 +RUST_LIBC_UNSTABLE_GNU_TIME_BITS=64 +``` + +Note that the exact configuration will change in the future. Setting the +`MUSL_V1_2_3` variable also enables some newer API unrelated to `time_t`. + +### Added + +- L4Re: Add uclibc aarch64 support ([#4479](https://github.com/rust-lang/libc/pull/4479)) +- Linux, Android: Add a generic definition for `XCASE` ([#4847](https://github.com/rust-lang/libc/pull/4847)) +- Linux-like: Add `NAME_MAX` ([#4888](https://github.com/rust-lang/libc/pull/4888)) +- Linux: Add `AT_EXECVE_CHECK` ([#4422](https://github.com/rust-lang/libc/pull/4422)) +- Linux: Add the `SUN_LEN` macro ([#4269](https://github.com/rust-lang/libc/pull/4269)) +- Linux: add `getitimer` and `setitimer` ([#4890](https://github.com/rust-lang/libc/pull/4890)) +- Linux: add `pthread_tryjoin_n` and `pthread_timedjoin_np` ([#4887](https://github.com/rust-lang/libc/pull/4887)) +- Musl: Add unstable support for 64-bit `time_t` on 32-bit platforms ([#4463](https://github.com/rust-lang/libc/pull/4463)) +- NetBSD, OpenBSD: Add interface `LINK_STATE_*` definitions from `sys/net/if.h` ([#4751](https://github.com/rust-lang/libc/pull/4751)) +- QuRT: Add support for Qualcomm QuRT ([#4845](https://github.com/rust-lang/libc/pull/4845)) +- Types: Add Padding::uninit() ([#4862](https://github.com/rust-lang/libc/pull/4862)) + +### Fixed + +- Glibc: Link old version of `cf{g,s}et{i,o}speed` ([#4882](https://github.com/rust-lang/libc/pull/4882)) +- L4Re: Fixes for `pthread` ([#4479](https://github.com/rust-lang/libc/pull/4479)) +- L4re: Fix a wide variety of incorrect definitions ([#4479](https://github.com/rust-lang/libc/pull/4479)) +- Musl: Fix the value of `CPU_SETSIZE` on musl 1.2+ ([#4865](https://github.com/rust-lang/libc/pull/4865)) +- Musl: RISC-V: fix public padding fields in `stat/stat64` ([#4463](https://github.com/rust-lang/libc/pull/4463)) +- Musl: s390x: Fix definition of `SIGSTKSZ`/`MINSIGSTKSZ` ([#4884](https://github.com/rust-lang/libc/pull/4884)) +- NetBSD: Arm: Fix `PT_{GET,SET}FPREGS`, `_REG_TIPDR`, and `_REG_{LR,SP}` ([#4899](https://github.com/rust-lang/libc/pull/4899)) +- NetBSD: Fix `if_msghdr` alignment ([#4902](https://github.com/rust-lang/libc/pull/4902)) +- NetBSD: Fix `siginfo_t` layout on 32-bit platforms ([#4904](https://github.com/rust-lang/libc/pull/4904)) +- NetBSD: change definition of `pthread_spin_t` to allow arch redefinition. ([#4899](https://github.com/rust-lang/libc/pull/4899)) +- Newlib: Fix ambiguous glob exports and other warnings for Vita and 3DS ([#4875](https://github.com/rust-lang/libc/pull/4875)) +- QNX: Fix build error ([#4879](https://github.com/rust-lang/libc/pull/4879)) + +### Changed + +- CI: Update CI images to FreeBSD 15.0-release ([#4857](https://github.com/rust-lang/libc/pull/4857)) +- L4Re: Make `pthread` struct fields private ([#4876](https://github.com/rust-lang/libc/pull/4876)) +- Linux, Fuchsia: Mark mq_attr padding area as such ([#4858](https://github.com/rust-lang/libc/pull/4858)) +- Types: Wrap a number of private fields in the `Padding` type ([#4862](https://github.com/rust-lang/libc/pull/4862)) + +### Removed + +- Build: Remove `RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64` ([#4865](https://github.com/rust-lang/libc/pull/4865)) +- WASI: Remove nonexistent clocks ([#4880](https://github.com/rust-lang/libc/pull/4880)) + + ## [0.2.178](https://github.com/rust-lang/libc/compare/0.2.177...0.2.178) - 2025-12-01 ### Added @@ -22,11 +79,11 @@ - VxWorks: Add missing defines/functions needed by rust stdlib ([#4779](https://github.com/rust-lang/libc/pull/4779)) - WASI: Add more definitions for libstd ([#4747](https://github.com/rust-lang/libc/pull/4747)) -### Deprecated: +### Deprecated - Apple: Deprecate `TIOCREMOTE` ([#4764](https://github.com/rust-lang/libc/pull/4764)) -### Fixed: +### Fixed Note that there were a large number of fixes on NetBSD for this `libc` release, some of which include minor breakage. diff --git a/Cargo.lock b/Cargo.lock index 324954d084a93..b5e3db4db50f3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -132,7 +132,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "libc" -version = "0.2.178" +version = "0.2.179" dependencies = [ "rustc-std-workspace-core", ] diff --git a/Cargo.toml b/Cargo.toml index 96d85e4b0d63c..2919f4402f362 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.178" +version = "0.2.179" keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml", "cherry-pick-stable.sh"] From c75d5c2380891315a0e95ca74145c0e6e5f1cc61 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 4 Jan 2026 01:30:11 -0500 Subject: [PATCH 1100/1228] chore: Fix the changelog version and date for 0.2.179 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4c9508c2a0ff..4d17c1a746225 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [0.2.178](https://github.com/rust-lang/libc/compare/0.2.177...0.2.178) - 2025-12-01 +## [0.2.179](https://github.com/rust-lang/libc/compare/0.2.178...0.2.179) - 2025-01-03 With this release, we now have _unstable_ support for 64-bit `time_t` on 32-bit platforms with both Musl and Glibc. Testing is appreciated! From 2f86f24b88bfd88b84e5e764bbd5b63c63d44f8b Mon Sep 17 00:00:00 2001 From: gibbz00 Date: Fri, 26 Dec 2025 12:30:32 +0100 Subject: [PATCH 1101/1228] linux, l4re: address soundness issues of `CMSG_NXTHDR` This change makes sure that the header of `next` is within max, returning null if not. This is similar to how `glibc` does it. No checks were previously being done to assert that `next as usize + size_of::() < max`. Wrapping offset calculations could then lead to buffer over-reads in the following `(*next).cmsg_len`. [glibc ref](https://github.com/bminor/glibc/blob/b71d59074b98ad4abd23c136ec9ad4c26e29ee6d/sysdeps/unix/sysv/linux/cmsg_nxthdr.c#L49-L51) (backport ) (cherry picked from commit cdc2077f76b91a89b47aea132209e2ad20fe94a7) --- src/unix/linux_like/linux_l4re_shared.rs | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/unix/linux_like/linux_l4re_shared.rs b/src/unix/linux_like/linux_l4re_shared.rs index bd3cfafeb6e72..ea958db979203 100644 --- a/src/unix/linux_like/linux_l4re_shared.rs +++ b/src/unix/linux_like/linux_l4re_shared.rs @@ -1493,15 +1493,25 @@ f! { if ((*cmsg).cmsg_len as usize) < size_of::() { return core::ptr::null_mut::(); } - let next = - (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut crate::cmsghdr; - let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; - if (next.wrapping_offset(1)) as usize > max - || next as usize + super::CMSG_ALIGN((*next).cmsg_len as usize) > max - { + + // FIXME(msrv): `.wrapping_byte_add()` stabilized in 1.75 + let next_cmsg = cmsg + .cast::() + .wrapping_add(super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) + .cast::(); + + // In case the addition wrapped. `next_addr > max_addr` + // would otherwise not work as intended. + if (next_cmsg as usize) < (cmsg as usize) { + return core::ptr::null_mut(); + } + + let max_addr = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; + + if next_cmsg as usize + size_of::() > max_addr { core::ptr::null_mut::() } else { - next + next_cmsg as *mut crate::cmsghdr } } From 6ccdfbd9488b8124933ffe5a0db8818eceb3e6a8 Mon Sep 17 00:00:00 2001 From: gibbz00 Date: Sat, 27 Dec 2025 15:12:18 +0100 Subject: [PATCH 1102/1228] Remove redundant CMSG_NXTHDR test assertions. Likely written to make assertions in the unsound CMSG_NXTHDR implementations introduced in #1235. CMSG_NXTHDR(mhdr, current_cmsghdr) should not be concerned with the value next_cmsghdr.cmsg_len, which the previous implementation did. (backport ) (cherry picked from commit 1e43edbf5599a90540e90b3333f562f1e976aaa8) --- libc-test/tests/cmsg.rs | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/libc-test/tests/cmsg.rs b/libc-test/tests/cmsg.rs index 80d4af53938e8..e8fa57d6ad479 100644 --- a/libc-test/tests/cmsg.rs +++ b/libc-test/tests/cmsg.rs @@ -80,21 +80,12 @@ mod t { if cfg!(target_os = "aix") && cmsg_len % std::mem::size_of::() != 0 { continue; } - for next_cmsg_len in 0..32 { - unsafe { - pcmsghdr.cast::().write_bytes(0, CAPACITY); - (*pcmsghdr).cmsg_len = cmsg_len as _; - let libc_next = libc::CMSG_NXTHDR(&mhdr, pcmsghdr); - let next = cmsg_nxthdr(&mhdr, pcmsghdr); - assert_eq!(libc_next, next); - - if !libc_next.is_null() { - (*libc_next).cmsg_len = next_cmsg_len; - let libc_next = libc::CMSG_NXTHDR(&mhdr, pcmsghdr); - let next = cmsg_nxthdr(&mhdr, pcmsghdr); - assert_eq!(libc_next, next); - } - } + unsafe { + pcmsghdr.cast::().write_bytes(0, CAPACITY); + (*pcmsghdr).cmsg_len = cmsg_len as _; + let libc_next = libc::CMSG_NXTHDR(&mhdr, pcmsghdr); + let next = cmsg_nxthdr(&mhdr, pcmsghdr); + assert_eq!(libc_next, next); } } } From 9591d4dd4a4b9894dcb294fe0800aa318575807b Mon Sep 17 00:00:00 2001 From: gibbz00 Date: Sat, 27 Dec 2025 15:33:01 +0100 Subject: [PATCH 1103/1228] Properly set `cmsg_len` in `CMSG_NXTHDR` tests. Setting `(*pcmsghdr).cmsg_len = cmsg_len as _;` when cmsg_len ranges from 0 to 64 is invalid as it must always be `>= size_of::()`, rounded up to the nearest alignment boundary. Some implementations (notably glbic) do check that `cmsg_len >= size_of::()` in `CMSG_NXTHDR`, returning null if so. But this is more so an extra precaution that is not mentioned in the POSIX 1003.1-2024. It can therefore not be relied on for tests executed on multiple platforms. The change also removes the ignoring of some testvalues when targeting AIX. (backport ) (cherry picked from commit f391df35f33a15ec71efc81d200d77fb30ef3bbe) --- libc-test/tests/cmsg.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/libc-test/tests/cmsg.rs b/libc-test/tests/cmsg.rs index e8fa57d6ad479..949763414394f 100644 --- a/libc-test/tests/cmsg.rs +++ b/libc-test/tests/cmsg.rs @@ -75,14 +75,10 @@ mod t { let pcmsghdr = buffer.0.as_mut_ptr().cast::(); mhdr.msg_control = pcmsghdr.cast::(); mhdr.msg_controllen = (160 - start_ofs) as _; - for cmsg_len in 0..64 { - // Address must be a multiple of 0x4 for testing on AIX. - if cfg!(target_os = "aix") && cmsg_len % std::mem::size_of::() != 0 { - continue; - } + for cmsg_payload_len in 0..64 { unsafe { pcmsghdr.cast::().write_bytes(0, CAPACITY); - (*pcmsghdr).cmsg_len = cmsg_len as _; + (*pcmsghdr).cmsg_len = libc::CMSG_LEN(cmsg_payload_len as _) as _; let libc_next = libc::CMSG_NXTHDR(&mhdr, pcmsghdr); let next = cmsg_nxthdr(&mhdr, pcmsghdr); assert_eq!(libc_next, next); From fc0337d483d03f056beb6b5ac70d9fb25b7de839 Mon Sep 17 00:00:00 2001 From: gibbz00 Date: Sat, 27 Dec 2025 15:38:51 +0100 Subject: [PATCH 1104/1228] sparc64: remove ignore for `CMSG_NXTHDR` tests (backport ) (cherry picked from commit 99280f2d94010bcd82fda687e9608fcfae9b898d) --- libc-test/tests/cmsg.rs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/libc-test/tests/cmsg.rs b/libc-test/tests/cmsg.rs index 949763414394f..5b38d6fcc0e59 100644 --- a/libc-test/tests/cmsg.rs +++ b/libc-test/tests/cmsg.rs @@ -17,8 +17,6 @@ mod t { extern "C" { pub fn cmsg_firsthdr(msgh: *const msghdr) -> *mut cmsghdr; - // see below - #[cfg(not(target_arch = "sparc64"))] pub fn cmsg_nxthdr(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr; pub fn cmsg_space(length: c_uint) -> usize; pub fn cmsg_len(length: c_uint) -> usize; @@ -59,9 +57,6 @@ mod t { } } - // Skip on sparc64 - // https://github.com/rust-lang/libc/issues/1239 - #[cfg(not(target_arch = "sparc64"))] #[test] fn test_cmsg_nxthdr() { // Helps to align the buffer on the stack. From 4e581d35eb7c29ea7248379f5392fa6d5e9b8334 Mon Sep 17 00:00:00 2001 From: gibbz00 Date: Sat, 27 Dec 2025 16:19:30 +0100 Subject: [PATCH 1105/1228] Test msghdr.controllen boundary behaviour for `CMSG_NXTHDR` (backport ) (cherry picked from commit 2782869da59df7386b4618614035de815c62f9e9) --- libc-test/tests/cmsg.rs | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/libc-test/tests/cmsg.rs b/libc-test/tests/cmsg.rs index 5b38d6fcc0e59..b7c212aa0b59b 100644 --- a/libc-test/tests/cmsg.rs +++ b/libc-test/tests/cmsg.rs @@ -65,18 +65,37 @@ mod t { const CAPACITY: usize = 512; let mut buffer = Align8([0_u8; CAPACITY]); + let pcmsghdr = buffer.0.as_mut_ptr().cast::(); + let mut mhdr: msghdr = unsafe { mem::zeroed() }; - for start_ofs in 0..64 { - let pcmsghdr = buffer.0.as_mut_ptr().cast::(); - mhdr.msg_control = pcmsghdr.cast::(); - mhdr.msg_controllen = (160 - start_ofs) as _; + mhdr.msg_control = pcmsghdr.cast::(); + + for trunc in 0..64 { + mhdr.msg_controllen = (160 - trunc) as _; + for cmsg_payload_len in 0..64 { + let mut current_cmsghdr_ptr = pcmsghdr; + assert!(!current_cmsghdr_ptr.is_null()); + + // Go from first cmsghdr to the last (until null) using various + // cmsg_len increments. `cmsg_len` is set by us to check that + // the jump to the next cmsghdr is correct with respect to + // alignment and payload padding. + while !current_cmsghdr_ptr.is_null() { + unsafe { + (*current_cmsghdr_ptr).cmsg_len = + libc::CMSG_LEN(cmsg_payload_len as _) as _; + + let libc_next = libc::CMSG_NXTHDR(&mhdr, current_cmsghdr_ptr); + let system_next = cmsg_nxthdr(&mhdr, current_cmsghdr_ptr); + assert_eq!(libc_next, system_next); + + current_cmsghdr_ptr = libc_next; + } + } + unsafe { pcmsghdr.cast::().write_bytes(0, CAPACITY); - (*pcmsghdr).cmsg_len = libc::CMSG_LEN(cmsg_payload_len as _) as _; - let libc_next = libc::CMSG_NXTHDR(&mhdr, pcmsghdr); - let next = cmsg_nxthdr(&mhdr, pcmsghdr); - assert_eq!(libc_next, next); } } } From dff21e13cc23c181bb799383e2fe7dfce097455b Mon Sep 17 00:00:00 2001 From: gibbz00 Date: Sat, 27 Dec 2025 16:49:43 +0100 Subject: [PATCH 1106/1228] Add some context to `CMSG_NXTHDR` test assertions. (backport ) (cherry picked from commit befc34b4e4587db45bd84205a0f9ec701dcd35fc) --- libc-test/tests/cmsg.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libc-test/tests/cmsg.rs b/libc-test/tests/cmsg.rs index b7c212aa0b59b..1be4506e7516e 100644 --- a/libc-test/tests/cmsg.rs +++ b/libc-test/tests/cmsg.rs @@ -76,6 +76,7 @@ mod t { for cmsg_payload_len in 0..64 { let mut current_cmsghdr_ptr = pcmsghdr; assert!(!current_cmsghdr_ptr.is_null()); + let mut count = 0; // Go from first cmsghdr to the last (until null) using various // cmsg_len increments. `cmsg_len` is set by us to check that @@ -88,9 +89,14 @@ mod t { let libc_next = libc::CMSG_NXTHDR(&mhdr, current_cmsghdr_ptr); let system_next = cmsg_nxthdr(&mhdr, current_cmsghdr_ptr); - assert_eq!(libc_next, system_next); + assert_eq!( + system_next, libc_next, + "msg_crontrollen: {}, payload_len: {}, count: {}", + mhdr.msg_controllen, cmsg_payload_len, count + ); current_cmsghdr_ptr = libc_next; + count += 1; } } From 03755c4f7024ff4015231fc7a3cdab3931aff3d3 Mon Sep 17 00:00:00 2001 From: gibbz00 Date: Sat, 3 Jan 2026 13:43:50 +0100 Subject: [PATCH 1107/1228] linux, emscripten, android, l4re: handle zero-sized payload differences in CMSG_NXTHDR musl and its descendants check `next_addr >= max_addr` whilst the rest do `next_addr > max_addr`. This was previously not reflected in the implementations, coming to light only after testing was extended to execute at the controllen boundary. [musl_ref]: https://www.openwall.com/lists/musl/2025/12/27/1 (backport ) (cherry picked from commit 17adf2d8003fd5021358905abdfeed68d504070f) --- src/unix/linux_like/emscripten/mod.rs | 2 +- src/unix/linux_like/linux_l4re_shared.rs | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 35d7001ff5f59..711ed8f8b4c37 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -1257,7 +1257,7 @@ f! { } let next = (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr; let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; - if (next.offset(1)) as usize > max { + if (next.offset(1)) as usize >= max { core::ptr::null_mut::() } else { next as *mut cmsghdr diff --git a/src/unix/linux_like/linux_l4re_shared.rs b/src/unix/linux_like/linux_l4re_shared.rs index ea958db979203..d4bbfbfbf7736 100644 --- a/src/unix/linux_like/linux_l4re_shared.rs +++ b/src/unix/linux_like/linux_l4re_shared.rs @@ -1506,7 +1506,14 @@ f! { return core::ptr::null_mut(); } - let max_addr = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; + let mut max_addr = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; + + if cfg!(any(target_env = "musl", target_env = "ohos")) { + // musl and some of its descendants do `>= max_addr` + // comparisons in the if statement below. + // https://www.openwall.com/lists/musl/2025/12/27/1 + max_addr -= 1; + } if next_cmsg as usize + size_of::() > max_addr { core::ptr::null_mut::() From 042f118911f93e688e9b28003293e423e0bc84fe Mon Sep 17 00:00:00 2001 From: Reagan Bohan Date: Mon, 5 Jan 2026 08:29:39 +0000 Subject: [PATCH 1108/1228] musl: Fix incorrect definitions of struct stat on some architectures Fixes: #4913 (backport ) (cherry picked from commit ab195ebff42d2e7ed890795869882c0626fbdc4e) --- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 18 ++++++++++++------ src/unix/linux_like/linux/musl/b32/mips/mod.rs | 18 ++++++++++++------ src/unix/linux_like/linux/musl/b32/powerpc.rs | 18 ++++++++++++------ src/unix/linux_like/linux/musl/b32/x86/mod.rs | 18 ++++++++++++------ 4 files changed, 48 insertions(+), 24 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index 0f96453fde4f4..ae8e4939bbcb2 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -27,12 +27,18 @@ s! { #[cfg(musl32_time64)] __st_ctim32: Padding<__c_anonymous_timespec32>, - #[cfg(not(musl32_time64))] - pub st_atim: crate::timespec, - #[cfg(not(musl32_time64))] - pub st_mtim: crate::timespec, - #[cfg(not(musl32_time64))] - pub st_ctim: crate::timespec, + #[cfg(not(musl_v1_2_3))] + pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] + pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] + pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] + pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] + pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] + pub st_ctime_nsec: c_long, pub st_ino: crate::ino_t, diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index 0771a7f67c888..8c7ccbfc07450 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -25,12 +25,18 @@ s! { #[cfg(musl32_time64)] __st_ctim32: Padding<__c_anonymous_timespec32>, - #[cfg(not(musl32_time64))] - pub st_atim: crate::timespec, - #[cfg(not(musl32_time64))] - pub st_mtim: crate::timespec, - #[cfg(not(musl32_time64))] - pub st_ctim: crate::timespec, + #[cfg(not(musl_v1_2_3))] + pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] + pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] + pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] + pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] + pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] + pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, __st_padding3: Padding, diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 64a2719abbc11..cd11a44e43cd4 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -37,12 +37,18 @@ s! { #[cfg(musl32_time64)] __st_ctim32: Padding<__c_anonymous_timespec32>, - #[cfg(not(musl32_time64))] - pub st_atim: crate::timespec, - #[cfg(not(musl32_time64))] - pub st_mtim: crate::timespec, - #[cfg(not(musl32_time64))] - pub st_ctim: crate::timespec, + #[cfg(not(musl_v1_2_3))] + pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] + pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] + pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] + pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] + pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] + pub st_ctime_nsec: c_long, __unused: Padding<[c_long; 2]>, diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 3f2145bc266ef..737438a594efb 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -27,12 +27,18 @@ s! { #[cfg(musl32_time64)] __st_ctim32: Padding<__c_anonymous_timespec32>, - #[cfg(not(musl32_time64))] - pub st_atim: crate::timespec, - #[cfg(not(musl32_time64))] - pub st_mtim: crate::timespec, - #[cfg(not(musl32_time64))] - pub st_ctim: crate::timespec, + #[cfg(not(musl_v1_2_3))] + pub st_atime: crate::time_t, + #[cfg(not(musl_v1_2_3))] + pub st_atime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] + pub st_mtime: crate::time_t, + #[cfg(not(musl_v1_2_3))] + pub st_mtime_nsec: c_long, + #[cfg(not(musl_v1_2_3))] + pub st_ctime: crate::time_t, + #[cfg(not(musl_v1_2_3))] + pub st_ctime_nsec: c_long, pub st_ino: crate::ino_t, From 757e55a3f0adcd1261e44be340eced8d865ce5e2 Mon Sep 17 00:00:00 2001 From: Havard Eidnes Date: Fri, 19 Dec 2025 17:07:45 +0000 Subject: [PATCH 1109/1228] netbsd/riscv64.rs: make changes so that this builds again. * Use the same type names as used by the native libc, to allow more self-tests to succeed * Remove un-needed imports, uncovered by libc's "cargo test" * Compute _ALIGNBYTES the same way gcc does. Verified by * Running (and passing) the libc self-tests "natively" on an emulated NetBSD/riscv64 system. * Cross-built rust 1.92.0 with this file in place for riscv64 in the vendored libc-0.2.17{5,6,7} versions, targeting NetBSD/riscv64. [ extracted this commit from the two in the PR - Trevor ] (backport ) (cherry picked from commit e9b8fa5c93c6766cc28f4630bb69ea12ac90a77d) --- src/unix/bsd/netbsdlike/netbsd/riscv64.rs | 35 +++++++++++++---------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs index 8cacb7250eddc..05c0cd55cb80d 100644 --- a/src/unix/bsd/netbsdlike/netbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/netbsd/riscv64.rs @@ -2,17 +2,9 @@ use crate::prelude::*; use crate::PT_FIRSTMACH; pub type __greg_t = u64; -pub type __cpu_simple_lock_nv_t = c_int; -pub type __gregset = [__greg_t; _NGREG]; -pub type __fregset = [__fpreg; _NFREG]; - -s! { - pub struct mcontext_t { - pub __gregs: __gregset, - pub __fregs: __fregset, - __spare: [crate::__greg_t; 7], - } -} +pub type __cpu_simple_lock_nv_t = c_uint; +pub type __gregset_t = [__greg_t; _NGREG]; +pub type __fregset_t = [__fpreg; _NFREG]; s_no_extra_traits! { pub union __fpreg { @@ -21,23 +13,36 @@ s_no_extra_traits! { } } +s! { + pub struct mcontext_t { + pub __gregs: __gregset_t, + pub __fregs: __fregset_t, + __spare: [crate::__greg_t; 7], + } +} + cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for __fpreg { - fn eq(&self, other: &Self) -> bool { - unsafe { self.u_u64 == other.u_u64 } + fn eq(&self, other: &__fpreg) -> bool { + unsafe { self.u_u64 == other.u_u64 || self.u_d == other.u_d } } } impl Eq for __fpreg {} impl hash::Hash for __fpreg { fn hash(&self, state: &mut H) { - unsafe { self.u_u64.hash(state) }; + unsafe { + self.u_u64.hash(state); + } } } } } -pub(crate) const _ALIGNBYTES: usize = size_of::() - 1; +// gcc for riscv64 defines `BIGGEST_ALIGNMENT`, but it's mesured in bits. +pub(crate) const __BIGGEST_ALIGNMENT_IN_BITS__: usize = 128; +// `_ALIGNBYTES` is measured in, well, bytes. +pub(crate) const _ALIGNBYTES: usize = (__BIGGEST_ALIGNMENT_IN_BITS__ / 8) - 1; pub const PT_GETREGS: c_int = PT_FIRSTMACH + 0; pub const PT_SETREGS: c_int = PT_FIRSTMACH + 1; From 72f4c1a5db719788f771d2ce83661295385a84f4 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 6 Jan 2026 01:24:25 -0600 Subject: [PATCH 1110/1228] uclibc: Re-enable `__SIZEOF_PTHREAD_COND_T` on non-L4Re uclibc Resolves a uclibc build error introduced in the "Fixes" commit. Fixes: 2fe1d91f1822 ("Separate L4Re from Linux code and enable tests") (backport ) (cherry picked from commit 3dad48911eb83ba149f4759191b2c4fa7d54a2d7) --- src/unix/linux_like/linux_l4re_shared.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux_l4re_shared.rs b/src/unix/linux_like/linux_l4re_shared.rs index d4bbfbfbf7736..99f72ae03a806 100644 --- a/src/unix/linux_like/linux_l4re_shared.rs +++ b/src/unix/linux_like/linux_l4re_shared.rs @@ -953,7 +953,7 @@ pub const PTHREAD_PROCESS_PRIVATE: c_int = 0; pub const PTHREAD_PROCESS_SHARED: c_int = 1; pub const PTHREAD_INHERIT_SCHED: c_int = 0; pub const PTHREAD_EXPLICIT_SCHED: c_int = 1; -#[cfg(not(target_env = "uclibc"))] +#[cfg(not(all(target_os = "l4re", target_env = "uclibc")))] pub const __SIZEOF_PTHREAD_COND_T: usize = 48; // netinet/in.h From 0803faeb89a2a1a477efbe6f604bed7ae8aeb906 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 6 Jan 2026 01:36:04 -0600 Subject: [PATCH 1111/1228] linux: Restructure `netlink` to `src/new` Move netlink types defined in UAPI to the `new` module. This resolves the following build error on uclibc platforms: error[E0425]: cannot find value `NLMSG_MIN_TYPE` in the crate root --> /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.179/src/unix/linux_like/linux/mod.rs:1999:48 | 1999 | pub const NFNL_MSG_BATCH_BEGIN: c_int = crate::NLMSG_MIN_TYPE; | ^^^^^^^^^^^^^^ not found in the crate root | note: found an item that was configured out --> /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.179/src/unix/linux_like/linux_l4re_shared.rs:1222:19 | 1200 | if #[cfg(not(target_env = "uclibc"))] { | ----------------------- the item is gated here ... 1222 | pub const NLMSG_MIN_TYPE: c_int = 0x10; | ^^^^^^^^^^^^^^ Fixes: 2fe1d91f1822 ("Separate L4Re from Linux code and enable tests") (backport ) (cherry picked from commit e0ed72dc03f1d71d0ad6a014f2ef35dee4fd584d) --- libc-test/semver/linux-gnu.txt | 4 - libc-test/semver/linux.txt | 4 + src/new/linux_uapi/linux/mod.rs | 1 + src/new/linux_uapi/linux/netlink.rs | 136 +++++++++++++++++++++++ src/new/mod.rs | 1 + src/unix/linux_like/l4re/mod.rs | 10 ++ src/unix/linux_like/linux/gnu/mod.rs | 22 ---- src/unix/linux_like/linux/mod.rs | 93 +--------------- src/unix/linux_like/linux_l4re_shared.rs | 6 - 9 files changed, 153 insertions(+), 124 deletions(-) create mode 100644 src/new/linux_uapi/linux/netlink.rs diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 0db7c9688797e..a28ac82250fb6 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -117,7 +117,6 @@ LOGIN_PROCESS Lmid_t MADV_COLLAPSE MAXTC -MAX_LINKS MINIX2_SUPER_MAGIC MINIX2_SUPER_MAGIC2 MINIX3_SUPER_MAGIC @@ -637,9 +636,6 @@ malloc_usable_size mallopt mempcpy mq_notify -nl_mmap_hdr -nl_mmap_req -nl_pktinfo ntp_adjtime ntp_gettime ntptimeval diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index f3cca5611ee4d..30fe2268e3011 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1641,6 +1641,7 @@ MAP_TYPE MAXTTL MAX_ADDR_LEN MAX_IPOPTLEN +MAX_LINKS MCAST_BLOCK_SOURCE MCAST_EXCLUDE MCAST_INCLUDE @@ -4128,6 +4129,9 @@ nice nl_item nl_langinfo nl_langinfo_l +nl_mmap_hdr +nl_mmap_req +nl_pktinfo nlattr nlmsgerr nlmsghdr diff --git a/src/new/linux_uapi/linux/mod.rs b/src/new/linux_uapi/linux/mod.rs index 993394e4370ca..9dd1f335ee55c 100644 --- a/src/new/linux_uapi/linux/mod.rs +++ b/src/new/linux_uapi/linux/mod.rs @@ -4,3 +4,4 @@ pub(crate) mod can; pub(crate) mod keyctl; +pub(crate) mod netlink; diff --git a/src/new/linux_uapi/linux/netlink.rs b/src/new/linux_uapi/linux/netlink.rs new file mode 100644 index 0000000000000..03e18d739300a --- /dev/null +++ b/src/new/linux_uapi/linux/netlink.rs @@ -0,0 +1,136 @@ +//! Header: `uapi/linux/netlink.h` + +use crate::prelude::*; + +pub const NETLINK_ROUTE: c_int = 0; +pub const NETLINK_UNUSED: c_int = 1; +pub const NETLINK_USERSOCK: c_int = 2; +pub const NETLINK_FIREWALL: c_int = 3; +pub const NETLINK_SOCK_DIAG: c_int = 4; +pub const NETLINK_NFLOG: c_int = 5; +pub const NETLINK_XFRM: c_int = 6; +pub const NETLINK_SELINUX: c_int = 7; +pub const NETLINK_ISCSI: c_int = 8; +pub const NETLINK_AUDIT: c_int = 9; +pub const NETLINK_FIB_LOOKUP: c_int = 10; +pub const NETLINK_CONNECTOR: c_int = 11; +pub const NETLINK_NETFILTER: c_int = 12; +pub const NETLINK_IP6_FW: c_int = 13; +pub const NETLINK_DNRTMSG: c_int = 14; +pub const NETLINK_KOBJECT_UEVENT: c_int = 15; +pub const NETLINK_GENERIC: c_int = 16; +pub const NETLINK_SCSITRANSPORT: c_int = 18; +pub const NETLINK_ECRYPTFS: c_int = 19; +pub const NETLINK_RDMA: c_int = 20; +pub const NETLINK_CRYPTO: c_int = 21; + +pub const NETLINK_INET_DIAG: c_int = NETLINK_SOCK_DIAG; + +pub const MAX_LINKS: c_int = 32; + +s! { + pub struct sockaddr_nl { + pub nl_family: crate::sa_family_t, + nl_pad: Padding, + pub nl_pid: u32, + pub nl_groups: u32, + } + + pub struct nlmsghdr { + pub nlmsg_len: u32, + pub nlmsg_type: u16, + pub nlmsg_flags: u16, + pub nlmsg_seq: u32, + pub nlmsg_pid: u32, + } +} + +pub const NLM_F_REQUEST: c_int = 1; +pub const NLM_F_MULTI: c_int = 2; +pub const NLM_F_ACK: c_int = 4; +pub const NLM_F_ECHO: c_int = 8; +pub const NLM_F_DUMP_INTR: c_int = 16; +pub const NLM_F_DUMP_FILTERED: c_int = 32; + +pub const NLM_F_ROOT: c_int = 0x100; +pub const NLM_F_MATCH: c_int = 0x200; +pub const NLM_F_ATOMIC: c_int = 0x400; +pub const NLM_F_DUMP: c_int = NLM_F_ROOT | NLM_F_MATCH; + +pub const NLM_F_REPLACE: c_int = 0x100; +pub const NLM_F_EXCL: c_int = 0x200; +pub const NLM_F_CREATE: c_int = 0x400; +pub const NLM_F_APPEND: c_int = 0x800; + +pub const NLM_F_NONREC: c_int = 0x100; + +pub const NLM_F_CAPPED: c_int = 0x100; +pub const NLM_F_ACK_TLVS: c_int = 0x200; + +pub const NLMSG_NOOP: c_int = 0x1; +pub const NLMSG_ERROR: c_int = 0x2; +pub const NLMSG_DONE: c_int = 0x3; +pub const NLMSG_OVERRUN: c_int = 0x4; + +pub const NLMSG_MIN_TYPE: c_int = 0x10; + +s! { + pub struct nlmsgerr { + pub error: c_int, + pub msg: nlmsghdr, + } +} + +pub const NETLINK_ADD_MEMBERSHIP: c_int = 1; +pub const NETLINK_DROP_MEMBERSHIP: c_int = 2; +pub const NETLINK_PKTINFO: c_int = 3; +pub const NETLINK_BROADCAST_ERROR: c_int = 4; +pub const NETLINK_NO_ENOBUFS: c_int = 5; +pub const NETLINK_RX_RING: c_int = 6; +pub const NETLINK_TX_RING: c_int = 7; +pub const NETLINK_LISTEN_ALL_NSID: c_int = 8; +pub const NETLINK_LIST_MEMBERSHIPS: c_int = 9; +pub const NETLINK_CAP_ACK: c_int = 10; +pub const NETLINK_EXT_ACK: c_int = 11; +pub const NETLINK_GET_STRICT_CHK: c_int = 12; + +s! { + pub struct nl_pktinfo { + pub group: u32, + } + + pub struct nl_mmap_req { + pub nm_block_size: c_uint, + pub nm_block_nr: c_uint, + pub nm_frame_size: c_uint, + pub nm_frame_nr: c_uint, + } + + pub struct nl_mmap_hdr { + pub nm_status: c_uint, + pub nm_len: c_uint, + pub nm_group: u32, + pub nm_pid: u32, + pub nm_uid: u32, + pub nm_gid: u32, + } +} + +s! { + pub struct nlattr { + pub nla_len: u16, + pub nla_type: u16, + } +} + +pub const NLA_F_NESTED: c_int = 1 << 15; +pub const NLA_F_NET_BYTEORDER: c_int = 1 << 14; +pub const NLA_TYPE_MASK: c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER); + +pub const NLA_ALIGNTO: c_int = 4; + +f! { + pub fn NLA_ALIGN(len: c_int) -> c_int { + return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1); + } +} diff --git a/src/new/mod.rs b/src/new/mod.rs index d4d2636601e18..cdd6faf83cefa 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -181,6 +181,7 @@ cfg_if! { pub use linux::can::raw::*; pub use linux::can::*; pub use linux::keyctl::*; + pub use linux::netlink::*; #[cfg(target_env = "gnu")] pub use net::route::*; } else if #[cfg(target_vendor = "apple")] { diff --git a/src/unix/linux_like/l4re/mod.rs b/src/unix/linux_like/l4re/mod.rs index eb7cde2e3cde6..5ac4868f7d1c2 100644 --- a/src/unix/linux_like/l4re/mod.rs +++ b/src/unix/linux_like/l4re/mod.rs @@ -186,6 +186,16 @@ pub const TIOCGICOUNT: Ioctl = 0x545D; pub const BLKSSZGET: Ioctl = 0x1268; +cfg_if! { + if #[cfg(not(target_env = "uclibc"))] { + pub const NLMSG_NOOP: c_int = 0x1; + pub const NLMSG_ERROR: c_int = 0x2; + pub const NLMSG_DONE: c_int = 0x3; + pub const NLMSG_OVERRUN: c_int = 0x4; + pub const NLMSG_MIN_TYPE: c_int = 0x10; + } +} + cfg_if! { if #[cfg(target_env = "uclibc")] { mod uclibc; diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 6e424b8b1d362..5fa2fdf591dda 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -133,26 +133,6 @@ s! { pub keepcost: size_t, } - pub struct nl_pktinfo { - pub group: u32, - } - - pub struct nl_mmap_req { - pub nm_block_size: c_uint, - pub nm_block_nr: c_uint, - pub nm_frame_size: c_uint, - pub nm_frame_nr: c_uint, - } - - pub struct nl_mmap_hdr { - pub nm_status: c_uint, - pub nm_len: c_uint, - pub nm_group: u32, - pub nm_pid: u32, - pub nm_uid: u32, - pub nm_gid: u32, - } - pub struct ntptimeval { pub time: crate::timeval, pub maxerror: c_long, @@ -810,8 +790,6 @@ pub const NDA_SRC_VNI: c_ushort = 11; pub const UNAME26: c_int = 0x0020000; pub const FDPIC_FUNCPTRS: c_int = 0x0080000; -pub const MAX_LINKS: c_int = 32; - pub const GENL_UNS_ADMIN_PERM: c_int = 0x10; pub const GENL_ID_VFS_DQUOT: c_int = crate::NLMSG_MIN_TYPE + 1; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 7b2c21df5516c..5cfc87112088f 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -473,24 +473,6 @@ s! { pub newfd_flags: __u32, } - pub struct nlmsghdr { - pub nlmsg_len: u32, - pub nlmsg_type: u16, - pub nlmsg_flags: u16, - pub nlmsg_seq: u32, - pub nlmsg_pid: u32, - } - - pub struct nlmsgerr { - pub error: c_int, - pub msg: nlmsghdr, - } - - pub struct nlattr { - pub nla_len: u16, - pub nla_type: u16, - } - pub struct in6_ifreq { pub ifr6_addr: crate::in6_addr, pub ifr6_prefixlen: u32, @@ -1063,13 +1045,6 @@ s! { pub token_count: crate::__u32, } - pub struct sockaddr_nl { - pub nl_family: crate::sa_family_t, - nl_pad: Padding, - pub nl_pid: u32, - pub nl_groups: u32, - } - pub struct sockaddr_alg { pub salg_family: crate::sa_family_t, pub salg_type: [c_uchar; 14], @@ -2653,70 +2628,8 @@ pub const NDA_VNI: c_ushort = 7; pub const NDA_IFINDEX: c_ushort = 8; // linux/netlink.h -pub const NLA_ALIGNTO: c_int = 4; - -pub const NETLINK_ROUTE: c_int = 0; -pub const NETLINK_UNUSED: c_int = 1; -pub const NETLINK_USERSOCK: c_int = 2; -pub const NETLINK_FIREWALL: c_int = 3; -pub const NETLINK_SOCK_DIAG: c_int = 4; -pub const NETLINK_NFLOG: c_int = 5; -pub const NETLINK_XFRM: c_int = 6; -pub const NETLINK_SELINUX: c_int = 7; -pub const NETLINK_ISCSI: c_int = 8; -pub const NETLINK_AUDIT: c_int = 9; -pub const NETLINK_FIB_LOOKUP: c_int = 10; -pub const NETLINK_CONNECTOR: c_int = 11; -pub const NETLINK_NETFILTER: c_int = 12; -pub const NETLINK_IP6_FW: c_int = 13; -pub const NETLINK_DNRTMSG: c_int = 14; -pub const NETLINK_KOBJECT_UEVENT: c_int = 15; -pub const NETLINK_GENERIC: c_int = 16; -pub const NETLINK_SCSITRANSPORT: c_int = 18; -pub const NETLINK_ECRYPTFS: c_int = 19; -pub const NETLINK_RDMA: c_int = 20; -pub const NETLINK_CRYPTO: c_int = 21; -pub const NETLINK_INET_DIAG: c_int = NETLINK_SOCK_DIAG; - -pub const NLM_F_REQUEST: c_int = 1; -pub const NLM_F_MULTI: c_int = 2; -pub const NLM_F_ACK: c_int = 4; -pub const NLM_F_ECHO: c_int = 8; -pub const NLM_F_DUMP_INTR: c_int = 16; -pub const NLM_F_DUMP_FILTERED: c_int = 32; - -pub const NLM_F_ROOT: c_int = 0x100; -pub const NLM_F_MATCH: c_int = 0x200; -pub const NLM_F_ATOMIC: c_int = 0x400; -pub const NLM_F_DUMP: c_int = NLM_F_ROOT | NLM_F_MATCH; - -pub const NLM_F_REPLACE: c_int = 0x100; -pub const NLM_F_EXCL: c_int = 0x200; -pub const NLM_F_CREATE: c_int = 0x400; -pub const NLM_F_APPEND: c_int = 0x800; - -pub const NLM_F_NONREC: c_int = 0x100; -pub const NLM_F_BULK: c_int = 0x200; -pub const NLM_F_CAPPED: c_int = 0x100; -pub const NLM_F_ACK_TLVS: c_int = 0x200; - -pub const NETLINK_ADD_MEMBERSHIP: c_int = 1; -pub const NETLINK_DROP_MEMBERSHIP: c_int = 2; -pub const NETLINK_PKTINFO: c_int = 3; -pub const NETLINK_BROADCAST_ERROR: c_int = 4; -pub const NETLINK_NO_ENOBUFS: c_int = 5; -pub const NETLINK_RX_RING: c_int = 6; -pub const NETLINK_TX_RING: c_int = 7; -pub const NETLINK_LISTEN_ALL_NSID: c_int = 8; -pub const NETLINK_LIST_MEMBERSHIPS: c_int = 9; -pub const NETLINK_CAP_ACK: c_int = 10; -pub const NETLINK_EXT_ACK: c_int = 11; -pub const NETLINK_GET_STRICT_CHK: c_int = 12; - -pub const NLA_F_NESTED: c_int = 1 << 15; -pub const NLA_F_NET_BYTEORDER: c_int = 1 << 14; -pub const NLA_TYPE_MASK: c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER); +pub const NLM_F_BULK: c_int = 0x200; // linux/rtnetlink.h pub const TCA_UNSPEC: c_ushort = 0; @@ -4056,10 +3969,6 @@ pub const SI_DETHREAD: c_int = -7; pub const TRAP_PERF: c_int = 6; f! { - pub fn NLA_ALIGN(len: c_int) -> c_int { - return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1); - } - pub fn SCTP_PR_INDEX(policy: c_int) -> c_int { policy >> (4 - 1) } diff --git a/src/unix/linux_like/linux_l4re_shared.rs b/src/unix/linux_like/linux_l4re_shared.rs index 99f72ae03a806..d91240a058583 100644 --- a/src/unix/linux_like/linux_l4re_shared.rs +++ b/src/unix/linux_like/linux_l4re_shared.rs @@ -1214,12 +1214,6 @@ cfg_if! { pub const MFD_HUGE_16GB: c_uint = 0x88000000; pub const MFD_HUGE_MASK: c_uint = 63; pub const MFD_HUGE_SHIFT: c_uint = 26; - - pub const NLMSG_NOOP: c_int = 0x1; - pub const NLMSG_ERROR: c_int = 0x2; - pub const NLMSG_DONE: c_int = 0x3; - pub const NLMSG_OVERRUN: c_int = 0x4; - pub const NLMSG_MIN_TYPE: c_int = 0x10; } } From 676a4f8fd4e43056a2fbedfc848ef982350298ae Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Tue, 6 Jan 2026 01:52:43 -0600 Subject: [PATCH 1112/1228] linux: Move `membarrier.h` constants to `src/new` (backport ) (cherry picked from commit 68d3a77a7db4786791c25690360edfc0e01ab574) --- libc-test/build.rs | 14 ++++++++++---- libc-test/semver/linux.txt | 1 + src/new/linux_uapi/linux/membarrier.rs | 20 ++++++++++++++++++++ src/new/linux_uapi/linux/mod.rs | 1 + src/new/mod.rs | 1 + src/unix/linux_like/linux/mod.rs | 12 ------------ 6 files changed, 33 insertions(+), 16 deletions(-) create mode 100644 src/new/linux_uapi/linux/membarrier.rs diff --git a/libc-test/build.rs b/libc-test/build.rs index 330388f874553..66cced85f5a6c 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1737,7 +1737,6 @@ fn test_dragonflybsd(target: &str) { "sem_t" => true, // mqd_t is a pointer on DragonFly "mqd_t" => true, - _ => false, } }); @@ -4653,16 +4652,23 @@ fn test_linux(target: &str) { }); let c_enums = [ - "tpacket_versions", - "proc_cn_mcast_op", - "proc_cn_event", + "membarrier_cmd", "pid_type", + "proc_cn_event", + "proc_cn_mcast_op", + "tpacket_versions", ]; cfg.alias_is_c_enum(move |e| c_enums.contains(&e)); // FIXME(libc): `pid_type` and `proc_cn_event` is hidden. cfg.skip_c_enum(|e| e == "pid_type" || e == "proc_cn_event"); + cfg.skip_signededness(move |c| match c { + // FIXME(1.0): uses the enum default signedness + "membarrier_cmd" => true, + _ => false, + }); + cfg.skip_fn(move |function| { let name = function.ident(); // skip those that are manually verified diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 30fe2268e3011..25a3a593f44e8 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -4086,6 +4086,7 @@ madvise major makedev memalign +membarrier_cmd memmem memrchr mincore diff --git a/src/new/linux_uapi/linux/membarrier.rs b/src/new/linux_uapi/linux/membarrier.rs new file mode 100644 index 0000000000000..4446202cb3bfb --- /dev/null +++ b/src/new/linux_uapi/linux/membarrier.rs @@ -0,0 +1,20 @@ +//! Header: `uapi/linux/membarrier.h` + +use crate::prelude::*; + +c_enum! { + // FIXME(1.0): incorrect repr signedness, this should be removed in a breaking change. + #[repr(c_int)] + pub enum membarrier_cmd { + pub MEMBARRIER_CMD_QUERY = 0, + pub MEMBARRIER_CMD_GLOBAL = 1 << 0, + pub MEMBARRIER_CMD_GLOBAL_EXPEDITED = 1 << 1, + pub MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = 1 << 2, + pub MEMBARRIER_CMD_PRIVATE_EXPEDITED = 1 << 3, + pub MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = 1 << 4, + pub MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = 1 << 5, + pub MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = 1 << 6, + pub MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 1 << 7, + pub MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = 1 << 8, + } +} diff --git a/src/new/linux_uapi/linux/mod.rs b/src/new/linux_uapi/linux/mod.rs index 9dd1f335ee55c..994a59c0c3864 100644 --- a/src/new/linux_uapi/linux/mod.rs +++ b/src/new/linux_uapi/linux/mod.rs @@ -4,4 +4,5 @@ pub(crate) mod can; pub(crate) mod keyctl; +pub(crate) mod membarrier; pub(crate) mod netlink; diff --git a/src/new/mod.rs b/src/new/mod.rs index cdd6faf83cefa..88b881a6c2e7c 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -181,6 +181,7 @@ cfg_if! { pub use linux::can::raw::*; pub use linux::can::*; pub use linux::keyctl::*; + pub use linux::membarrier::*; pub use linux::netlink::*; #[cfg(target_env = "gnu")] pub use net::route::*; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 5cfc87112088f..13d25bd9722d9 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1557,18 +1557,6 @@ pub const MPOL_F_NUMA_BALANCING: c_int = 1 << 13; pub const MPOL_F_RELATIVE_NODES: c_int = 1 << 14; pub const MPOL_F_STATIC_NODES: c_int = 1 << 15; -// linux/membarrier.h -pub const MEMBARRIER_CMD_QUERY: c_int = 0; -pub const MEMBARRIER_CMD_GLOBAL: c_int = 1 << 0; -pub const MEMBARRIER_CMD_GLOBAL_EXPEDITED: c_int = 1 << 1; -pub const MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED: c_int = 1 << 2; -pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED: c_int = 1 << 3; -pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED: c_int = 1 << 4; -pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE: c_int = 1 << 5; -pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE: c_int = 1 << 6; -pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: c_int = 1 << 7; -pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: c_int = 1 << 8; - pub const PTHREAD_MUTEX_INITIALIZER: crate::pthread_mutex_t = crate::pthread_mutex_t { size: [0; crate::__SIZEOF_PTHREAD_MUTEX_T], }; From b062844024a5b2028603c636af1ed104880f8450 Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Tue, 6 Jan 2026 14:04:55 -0500 Subject: [PATCH 1113/1228] Only test addresses of cmsghdrs that are multiples of the size of cmsghdr. (backport ) (cherry picked from commit 85a3691237a2386116ad36b703bd0062b839043a) --- libc-test/tests/cmsg.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libc-test/tests/cmsg.rs b/libc-test/tests/cmsg.rs index 1be4506e7516e..c358081698afc 100644 --- a/libc-test/tests/cmsg.rs +++ b/libc-test/tests/cmsg.rs @@ -74,6 +74,14 @@ mod t { mhdr.msg_controllen = (160 - trunc) as _; for cmsg_payload_len in 0..64 { + // AIX does not apply any alignment or padding to ancillary + // data and CMSG_ALIGN() is a noop. So only test addresses + // that are multiples of the size of cmsghdr here. + if cfg!(target_os = "aix") && cmsg_payload_len % std::mem::size_of::() != 0 + { + continue; + } + let mut current_cmsghdr_ptr = pcmsghdr; assert!(!current_cmsghdr_ptr.is_null()); let mut count = 0; From 12fd831dff0427d7dae301008069ef3fc040b6f5 Mon Sep 17 00:00:00 2001 From: Jan Sommer Date: Wed, 7 Jan 2026 18:42:27 +0100 Subject: [PATCH 1114/1228] ci: Add rtems to basic tier 3 checks (backport ) (cherry picked from commit b4995f36c84cb058bfba601bdd221270ffc63c29) --- ci/verify-build.py | 1 + src/new/mod.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ci/verify-build.py b/ci/verify-build.py index 0e0ea0c25b2ca..b3b35f1c6e0bc 100755 --- a/ci/verify-build.py +++ b/ci/verify-build.py @@ -155,6 +155,7 @@ class TargetResult: Target("aarch64-unknown-openbsd", dist=False), Target("aarch64-wrs-vxworks", dist=False), Target("armebv7r-none-eabihf", dist=False), + Target("armv7-rtems-eabihf", dist=False), Target("armv7-wrs-vxworks-eabihf", dist=False), Target("armv7r-none-eabihf", dist=False), Target("armv7s-apple-ios", dist=False), diff --git a/src/new/mod.rs b/src/new/mod.rs index 88b881a6c2e7c..9a1e56df20053 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -110,7 +110,7 @@ cfg_if! { // pub(crate) use redox::*; } else if #[cfg(target_os = "rtems")] { mod rtems; - pub(crate) use rtems::*; + // pub(crate) use rtems::*; } else if #[cfg(target_os = "solaris")] { mod solaris; pub(crate) use solaris::*; From 300e6438848503d4a9a0bebd32539294fe0e67a5 Mon Sep 17 00:00:00 2001 From: Rafael RL Date: Fri, 24 Oct 2025 11:33:46 +0200 Subject: [PATCH 1115/1228] qnx: add missing BPF and ifreq structures (backport ) (cherry picked from commit 76344929beae4754cd762f3147b53b2525fecd56) --- src/new/mod.rs | 3 ++ src/new/nto/mod.rs | 5 +++ src/new/nto/net/bpf.rs | 83 ++++++++++++++++++++++++++++++++++++++++++ src/new/nto/net/if_.rs | 32 ++++++++++++++++ src/unix/nto/mod.rs | 12 +++++- 5 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 src/new/nto/net/bpf.rs create mode 100644 src/new/nto/net/if_.rs diff --git a/src/new/mod.rs b/src/new/mod.rs index 9a1e56df20053..2e6b451a99170 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -203,6 +203,9 @@ cfg_if! { pub use utmpx_::*; } else if #[cfg(target_os = "openbsd")] { pub use sys::ipc::*; + } else if #[cfg(target_os = "nto")] { + pub use net::bpf::*; + pub use net::if_::*; } } diff --git a/src/new/nto/mod.rs b/src/new/nto/mod.rs index df8ec183bd789..a625127ecd45e 100644 --- a/src/new/nto/mod.rs +++ b/src/new/nto/mod.rs @@ -2,3 +2,8 @@ // FIXME(nto): link to manpages needed. pub(crate) mod unistd; + +pub(crate) mod net { + pub(crate) mod bpf; + pub(crate) mod if_; +} diff --git a/src/new/nto/net/bpf.rs b/src/new/nto/net/bpf.rs new file mode 100644 index 0000000000000..8b8dd71dc2ae0 --- /dev/null +++ b/src/new/nto/net/bpf.rs @@ -0,0 +1,83 @@ +use crate::bpf_insn; + +pub const BPF_LD: u16 = 0x00; +pub const BPF_LDX: u16 = 0x01; +pub const BPF_ST: u16 = 0x02; +pub const BPF_STX: u16 = 0x03; +pub const BPF_ALU: u16 = 0x04; +pub const BPF_JMP: u16 = 0x05; +pub const BPF_RET: u16 = 0x06; +pub const BPF_MISC: u16 = 0x07; +pub const BPF_W: u16 = 0x00; +pub const BPF_H: u16 = 0x08; +pub const BPF_B: u16 = 0x10; +pub const BPF_IMM: u16 = 0x00; +pub const BPF_ABS: u16 = 0x20; +pub const BPF_IND: u16 = 0x40; +pub const BPF_MEM: u16 = 0x60; +pub const BPF_LEN: u16 = 0x80; +pub const BPF_MSH: u16 = 0xa0; +pub const BPF_ADD: u16 = 0x00; +pub const BPF_SUB: u16 = 0x10; +pub const BPF_MUL: u16 = 0x20; +pub const BPF_DIV: u16 = 0x30; +pub const BPF_OR: u16 = 0x40; +pub const BPF_AND: u16 = 0x50; +pub const BPF_LSH: u16 = 0x60; +pub const BPF_RSH: u16 = 0x70; +pub const BPF_NEG: u16 = 0x80; +pub const BPF_MOD: u16 = 0x90; +pub const BPF_XOR: u16 = 0xa0; +pub const BPF_JA: u16 = 0x00; +pub const BPF_JEQ: u16 = 0x10; +pub const BPF_JGT: u16 = 0x20; +pub const BPF_JGE: u16 = 0x30; +pub const BPF_JSET: u16 = 0x40; +pub const BPF_K: u16 = 0x00; +pub const BPF_X: u16 = 0x08; +pub const BPF_A: u16 = 0x10; +pub const BPF_TAX: u16 = 0x00; +pub const BPF_TXA: u16 = 0x80; + +f! { + pub fn BPF_CLASS(code: u32) -> u32 { + code & 0x07 + } + + pub fn BPF_SIZE(code: u32) -> u32 { + code & 0x18 + } + + pub fn BPF_MODE(code: u32) -> u32 { + code & 0xe0 + } + + pub fn BPF_OP(code: u32) -> u32 { + code & 0xf0 + } + + pub fn BPF_SRC(code: u32) -> u32 { + code & 0x08 + } + + pub fn BPF_RVAL(code: u32) -> u32 { + code & 0x18 + } + + pub fn BPF_MISCOP(code: u32) -> u32 { + code & 0xf8 + } + + pub fn BPF_STMT(code: u16, k: u32) -> bpf_insn { + bpf_insn { + code, + jt: 0, + jf: 0, + k, + } + } + + pub fn BPF_JUMP(code: u16, k: u32, jt: u8, jf: u8) -> bpf_insn { + bpf_insn { code, jt, jf, k } + } +} diff --git a/src/new/nto/net/if_.rs b/src/new/nto/net/if_.rs new file mode 100644 index 0000000000000..d71c1bb24b32e --- /dev/null +++ b/src/new/nto/net/if_.rs @@ -0,0 +1,32 @@ +use crate::prelude::*; + +s_no_extra_traits! { + pub union __c_anonymous_ifr_ifru { + pub ifru_addr: crate::sockaddr, + pub ifru_dstaddr: crate::sockaddr, + pub ifru_broadaddr: crate::sockaddr, + pub ifru_buffer: ifreq_buffer, + pub ifru_flags: [c_short; 2], + pub ifru_index: c_short, + pub ifru_jid: c_int, + pub ifru_metric: c_int, + pub ifru_mtu: c_int, + pub ifru_phys: c_int, + pub ifru_media: c_int, + pub ifru_data: *mut c_char, + pub ifru_cap: [c_int; 2], + pub ifru_fib: c_uint, + pub ifru_vlan_pcp: c_uchar, + } + + pub struct ifreq { + /// if name, e.g. "en0" + pub ifr_name: [c_char; crate::IFNAMSIZ], + pub ifr_ifru: __c_anonymous_ifr_ifru, + } + + pub struct ifreq_buffer { + pub length: size_t, + pub buffer: *mut c_void, + } +} diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index b096920f7c64a..278b331f86f5f 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -876,8 +876,18 @@ pub const MS_SYNC: c_int = 2; pub const SCM_RIGHTS: c_int = 0x01; pub const SCM_TIMESTAMP: c_int = 0x02; + +// QNX Network Stack Versioning: +// +// The `if` block targets the legacy `io-pkt` stack. +// - target_env = "nto70": QNX 7.0 +// - target_env = "nto71": Standard QNX 7.1 (default legacy stack) +// +// The `else` block targets the modern `io-sock` stack. +// - target_env = "nto71_iosock": QNX 7.1 with the optional new stack +// - target_env = "nto80": QNX 8.0 cfg_if! { - if #[cfg(not(target_env = "nto71_iosock"))] { + if #[cfg(any(target_env = "nto70", target_env = "nto71"))] { pub const SCM_CREDS: c_int = 0x04; pub const IFF_NOTRAILERS: c_int = 0x00000020; pub const AF_INET6: c_int = 24; From 4b38c69e31afadbead63af49794850b5a41f7dc4 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 8 Jan 2026 05:43:41 -0600 Subject: [PATCH 1116/1228] chore: release libc 0.2.180 --- CHANGELOG.md | 16 ++++++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d17c1a746225..405c0751025f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## [0.2.180](https://github.com/rust-lang/libc/compare/0.2.179...0.2.180) - 2026-01-08 + +### Added + +- QNX: Add missing BPF and ifreq structures ([#4769](https://github.com/rust-lang/libc/pull/4769)) + +### Fixed + +- Linux, L4Re: address soundness issues of `CMSG_NXTHDR` ([#4903](https://github.com/rust-lang/libc/pull/4903)) +- Linux-like: Handle zero-sized payload differences in `CMSG_NXTHDR` ([#4903](https://github.com/rust-lang/libc/pull/4903)) +- Musl: Fix incorrect definitions of struct stat on some 32-bit architectures ([#4914](https://github.com/rust-lang/libc/pull/4914)) +- NetBSD: RISC-V 64: Correct `mcontext` type definitions ([#4886](https://github.com/rust-lang/libc/pull/4886)) +- uClibc: Re-enable `__SIZEOF_PTHREAD_COND_T` on non-L4Re uclibc ([#4915](https://github.com/rust-lang/libc/pull/4915)) +- uClibc: Restructure Linux `netlink` module to resolve build errors ([#4915](https://github.com/rust-lang/libc/pull/4915)) + + ## [0.2.179](https://github.com/rust-lang/libc/compare/0.2.178...0.2.179) - 2025-01-03 With this release, we now have _unstable_ support for 64-bit `time_t` on 32-bit diff --git a/Cargo.lock b/Cargo.lock index b5e3db4db50f3..3abc86ecc0a19 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -132,7 +132,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "libc" -version = "0.2.179" +version = "0.2.180" dependencies = [ "rustc-std-workspace-core", ] diff --git a/Cargo.toml b/Cargo.toml index 2919f4402f362..f49c459862b2c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.179" +version = "0.2.180" keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml", "cherry-pick-stable.sh"] From 6351382a34c19ba44cefa3f7ca5c2c9e114b7df4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jan 2026 17:32:16 +0000 Subject: [PATCH 1117/1228] build(deps): bump vmactions/solaris-vm from 1.2.3 to 1.2.6 Bumps [vmactions/solaris-vm](https://github.com/vmactions/solaris-vm) from 1.2.3 to 1.2.6. - [Release notes](https://github.com/vmactions/solaris-vm/releases) - [Commits](https://github.com/vmactions/solaris-vm/compare/v1.2.3...v1.2.6) --- updated-dependencies: - dependency-name: vmactions/solaris-vm dependency-version: 1.2.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] (backport ) (cherry picked from commit df9237d730156a4e04b344fd9987c5935b6fb6e0) --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9befcc3e7667a..106b280863431 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -272,7 +272,7 @@ jobs: steps: - uses: actions/checkout@v6 - name: test on Solaris - uses: vmactions/solaris-vm@v1.2.3 + uses: vmactions/solaris-vm@v1.2.6 if: contains(matrix.target, 'solaris') with: release: "11.4-gcc" From 99c0a2b160eb482960c421db9bf0326107365d1d Mon Sep 17 00:00:00 2001 From: Thomas de Zeeuw Date: Mon, 12 Jan 2026 22:20:04 +0100 Subject: [PATCH 1118/1228] Add MADV_ZERO for macOS (backport ) (cherry picked from commit 297f6ac59902c8ab0e0058f7f320b1c8e540e49e) --- libc-test/semver/apple.txt | 1 + src/unix/bsd/apple/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index 09934484f379e..fd88c66f313e2 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -872,6 +872,7 @@ MADV_NORMAL MADV_RANDOM MADV_SEQUENTIAL MADV_WILLNEED +MADV_ZERO MADV_ZERO_WIRED_PAGES MAP_COPY MAP_FILE diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 2b2737b049f4a..8798dc30f804c 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -2529,6 +2529,7 @@ pub const MADV_ZERO_WIRED_PAGES: c_int = 6; pub const MADV_FREE_REUSABLE: c_int = 7; pub const MADV_FREE_REUSE: c_int = 8; pub const MADV_CAN_REUSE: c_int = 9; +pub const MADV_ZERO: c_int = 11; pub const MINCORE_INCORE: c_int = 0x1; pub const MINCORE_REFERENCED: c_int = 0x2; From 0fc5409a9fea8d5408dec186e692949e4ce6419f Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Fri, 16 Jan 2026 12:51:24 -0700 Subject: [PATCH 1119/1228] redox: add makedev, major, minor, and fix dev_t (backport ) (cherry picked from commit 76e737e6770fb97b9432600b9432beaf45763cba) --- src/unix/redox/mod.rs | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index b674ea219eb64..9768cbe9e50ef 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -6,7 +6,7 @@ pub type blkcnt_t = c_ulong; pub type blksize_t = c_long; pub type clock_t = c_long; pub type clockid_t = c_int; -pub type dev_t = c_long; +pub type dev_t = c_ulonglong; pub type fsblkcnt_t = c_ulong; pub type fsfilcnt_t = c_ulong; pub type ino_t = c_ulonglong; @@ -1162,6 +1162,31 @@ safe_f! { pub const fn WCOREDUMP(status: c_int) -> bool { (status & 0x80) != 0 } + + 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 & 0x00000fff) << 8; + dev |= (major & 0xfffff000) << 32; + dev |= (minor & 0x000000ff) << 0; + dev |= (minor & 0xffffff00) << 12; + dev + } + + pub const fn major(dev: dev_t) -> c_uint { + let mut major = 0; + major |= (dev & 0x00000000000fff00) >> 8; + major |= (dev & 0xfffff00000000000) >> 32; + major as c_uint + } + + pub const fn minor(dev: dev_t) -> c_uint { + let mut minor = 0; + minor |= (dev & 0x00000000000000ff) >> 0; + minor |= (dev & 0x00000ffffff00000) >> 12; + minor as c_uint + } } extern "C" { From 625baea0ce0eb937995a3d801d7c03b43b7dbad1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Tue, 2 Dec 2025 23:26:11 +0100 Subject: [PATCH 1120/1228] cleanup: Also mark reserved fields as private Padding Some were already done, more were missing (backport ) (cherry picked from commit 2f657a93c52d361a6d463f500e3b894faabacb7e) --- src/fuchsia/mod.rs | 4 ++-- src/unix/aix/mod.rs | 14 +++++++------- src/unix/aix/powerpc64.rs | 6 +++--- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/mod.rs | 6 +++--- src/unix/haiku/x86_64.rs | 4 ++-- src/unix/hurd/mod.rs | 4 ++-- src/unix/newlib/vita/mod.rs | 4 ++-- src/unix/nto/mod.rs | 8 ++++---- src/vxworks/mod.rs | 12 ++++++------ 10 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 376549e96b0a9..205d9701ff29a 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -326,7 +326,7 @@ s! { pub struct sockaddr_vm { pub svm_family: sa_family_t, - pub svm_reserved1: c_ushort, + svm_reserved1: Padding, pub svm_port: crate::in_port_t, pub svm_cid: c_uint, pub svm_zero: [u8; 4], @@ -895,7 +895,7 @@ s! { pub totalhigh: c_ulong, pub freehigh: c_ulong, pub mem_unit: c_uint, - pub __reserved: [c_char; 256], + __reserved: Padding<[c_char; 256]>, } pub struct sockaddr_un { diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 356d2a0c402da..5642f4d5dfdab 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -316,7 +316,7 @@ s! { pub struct xutsname { pub nid: c_uint, - pub reserved: c_int, + reserved: Padding, pub longnid: c_ulonglong, } @@ -367,7 +367,7 @@ s! { pub struct sched_param { pub sched_priority: c_int, pub sched_policy: c_int, - pub sched_reserved: [c_int; 6], + sched_reserved: Padding<[c_int; 6]>, } pub struct stack_t { @@ -464,8 +464,8 @@ s! { pub shm_extshm: c_int, pub shm_pagesize: crate::int64_t, pub shm_lba: crate::uint64_t, - pub shm_reserved0: crate::int64_t, - pub shm_reserved1: crate::int64_t, + shm_reserved0: Padding, + shm_reserved1: Padding, } pub struct stat64 { @@ -487,7 +487,7 @@ s! { pub st_vfs: c_uint, pub st_type: c_uint, pub st_gen: c_uint, - pub st_reserved: [c_uint; 10], + st_reserved: Padding<[c_uint; 10]>, pub st_size: off64_t, } @@ -507,7 +507,7 @@ s! { pub cgid: crate::gid_t, pub mode: mode_t, pub seq: c_ushort, - pub __reserved: c_ushort, + __reserved: Padding, pub key: key_t, } @@ -551,7 +551,7 @@ s! { pub events: c_short, pub fd: c_int, pub u: __poll_ctl_ext_u, - pub reserved64: [u64; 6], + reserved64: Padding<[u64; 6]>, } } diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index a936ddb7e2f99..c6b24964ef200 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -77,7 +77,7 @@ s! { pub st_vfs: c_uint, pub st_type: c_uint, pub st_gen: c_uint, - pub st_reserved: [c_uint; 9], + st_reserved: Padding<[c_uint; 9]>, pub st_padto_ll: c_uint, pub st_size: off_t, } @@ -117,7 +117,7 @@ s! { pub aio_word2: c_int, pub aio_fp: c_int, pub aio_handle: *mut aiocb, - pub aio_reserved: [c_uint; 2], + aio_reserved: Padding<[c_uint; 2]>, pub aio_sigev_tid: c_long, } @@ -191,7 +191,7 @@ s! { pub __ukeys: [c_uint; 2], pub __vsx: crate::__vsx_context_t, pub __tm: crate::__tm_context_t, - pub __reserved: [c_char; 1860], + __reserved: Padding<[c_char; 1860]>, pub __extctx_magic: c_int, } diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index ba2af13275289..4dbc2957960aa 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -101,7 +101,7 @@ s! { pub time_low: u32, pub time_mid: u16, pub time_hi_and_version: u16, - pub clock_seq_hi_and_reserved: u8, + clock_seq_hi_and_reserved: Padding, pub clock_seq_low: u8, pub node: [u8; 6], } diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 2cce82c5b0307..233026cc78372 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -432,7 +432,7 @@ s! { pub time_low: u32, pub time_mid: u16, pub time_hi_and_version: u16, - pub clock_seq_hi_and_reserved: u8, + clock_seq_hi_and_reserved: Padding, pub clock_seq_low: u8, pub node: [u8; _UUID_NODE_LEN], } @@ -559,8 +559,8 @@ s! { pub ksw_used: u_int, pub ksw_total: u_int, pub ksw_flags: c_int, - pub ksw_reserved1: u_int, - pub ksw_reserved2: u_int, + ksw_reserved1: Padding, + ksw_reserved2: Padding, } pub struct nlist { diff --git a/src/unix/haiku/x86_64.rs b/src/unix/haiku/x86_64.rs index 538ae30d438bf..4a6921d8d711d 100644 --- a/src/unix/haiku/x86_64.rs +++ b/src/unix/haiku/x86_64.rs @@ -12,13 +12,13 @@ s! { pub mscsr_mask: c_uint, pub _fpreg: [[c_uchar; 8]; 16], pub _xmm: [[c_uchar; 16]; 16], - pub _reserved_416_511: [c_uchar; 96], + _reserved_416_511: Padding<[c_uchar; 96]>, } pub struct xstate_hdr { pub bv: c_ulong, pub xcomp_bv: c_ulong, - pub _reserved: [c_uchar; 48], + _reserved: Padding<[c_uchar; 48]>, } pub struct savefpu { diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index e119e4b8c74fc..22755f9b9a5a7 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -634,8 +634,8 @@ s! { pub __shpid: c_int, pub __type: c_int, pub __flags: c_int, - pub __reserved1: c_uint, - pub __reserved2: c_uint, + __reserved1: Padding, + __reserved2: Padding, } pub struct __pthread_condattr { diff --git a/src/unix/newlib/vita/mod.rs b/src/unix/newlib/vita/mod.rs index 302601de96afd..2742a04241614 100644 --- a/src/unix/newlib/vita/mod.rs +++ b/src/unix/newlib/vita/mod.rs @@ -52,9 +52,9 @@ s! { pub struct sockaddr_storage { pub ss_len: u8, pub ss_family: crate::sa_family_t, - pub __ss_pad1: [u8; 2], + __ss_pad1: Padding<[u8; 2]>, pub __ss_align: i64, - pub __ss_pad2: [u8; 116], + __ss_pad2: Padding<[u8; 116]>, } pub struct sched_param { diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 278b331f86f5f..33cd1f705bd06 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -80,7 +80,7 @@ s! { pub struct dirent_extra { pub d_datalen: u16, pub d_type: u16, - pub d_reserved: u32, + d_reserved: Padding, } pub struct stat { @@ -182,14 +182,14 @@ s! { pub struct sched_param { pub sched_priority: c_int, pub sched_curpriority: c_int, - pub reserved: [c_int; 10], + reserved: Padding<[c_int; 10]>, } #[repr(align(8))] pub struct __sched_param { pub __sched_priority: c_int, pub __sched_curpriority: c_int, - pub reserved: [c_int; 10], + reserved: Padding<[c_int; 10]>, } pub struct Dl_info { @@ -236,7 +236,7 @@ s! { pub _Yes: *mut c_char, pub _Nostr: *mut c_char, pub _Yesstr: *mut c_char, - pub _Reserved: [*mut c_char; 8], + _Reserved: Padding<[*mut c_char; 8]>, } // Does not exist in io-sock diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 5f22a7cee7297..52567b2ce7088 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -234,10 +234,10 @@ s! { pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, pub st_attrib: c_uchar, - pub st_reserved1: c_int, - pub st_reserved2: c_int, - pub st_reserved3: c_int, - pub st_reserved4: c_int, + st_reserved1: Padding, + st_reserved2: Padding, + st_reserved3: Padding, + st_reserved4: Padding, } //b_struct__Timespec.h @@ -579,9 +579,9 @@ s_no_extra_traits! { pub struct sockaddr_storage { pub ss_len: c_uchar, pub ss_family: crate::sa_family_t, - pub __ss_pad1: [c_char; _SS_PAD1SIZE], + __ss_pad1: Padding<[c_char; _SS_PAD1SIZE]>, pub __ss_align: i32, - pub __ss_pad2: [c_char; _SS_PAD2SIZE], + __ss_pad2: Padding<[c_char; _SS_PAD2SIZE]>, } pub union sa_u_t { From dbc430c87d89cb59fea8e4f6fe6a5c3831633be4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Tue, 2 Dec 2025 23:01:54 +0100 Subject: [PATCH 1121/1228] cleanup: Also padding is padding! As previous commit, but tackle the *padding* fields (backport ) (cherry picked from commit a6e9b51424c467d98a00c4f65fb58c588152c0de) --- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 2 +- src/unix/cygwin/mod.rs | 4 ++-- src/unix/haiku/mod.rs | 2 +- src/unix/hurd/mod.rs | 2 +- src/unix/newlib/arm/mod.rs | 2 +- src/unix/newlib/horizon/mod.rs | 2 +- src/unix/nto/mod.rs | 4 ++-- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 4dbc2957960aa..e086b82306467 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -140,7 +140,7 @@ s! { pub st_nlink: crate::nlink_t, pub st_dev: crate::dev_t, pub st_mode: crate::mode_t, - pub st_padding1: u16, + st_padding1: Padding, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 9d3a3b55cfeae..e190e18f4cd63 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -268,7 +268,7 @@ s! { pub struct _uc_fpxreg { pub significand: [u16; 4], pub exponent: u16, - pub padding: [u16; 3], + padding: Padding<[u16; 3]>, } pub struct _uc_xmmreg { @@ -286,7 +286,7 @@ s! { pub mxcr_mask: u32, pub st: [_uc_fpxreg; 8], pub xmm: [_uc_xmmreg; 16], - pub padding: [u32; 24], + padding: Padding<[u32; 24]>, } #[repr(align(16))] diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 0668f27a48d72..87caa545c183a 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -371,7 +371,7 @@ s! { pub struct sem_t { pub type_: i32, pub named_sem_id: i32, // actually a union with unnamed_sem (i32) - pub padding: [i32; 2], + padding: Padding<[i32; 2]>, } pub struct ucred { diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 22755f9b9a5a7..f03347f7bb5b4 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -285,7 +285,7 @@ s! { pub struct sockaddr_storage { pub ss_len: c_uchar, pub ss_family: sa_family_t, - pub __ss_padding: [c_char; 122usize], + __ss_padding: Padding<[c_char; 122usize]>, pub __ss_align: __uint32_t, } diff --git a/src/unix/newlib/arm/mod.rs b/src/unix/newlib/arm/mod.rs index 26f3d52436b84..9b5978fc538c3 100644 --- a/src/unix/newlib/arm/mod.rs +++ b/src/unix/newlib/arm/mod.rs @@ -26,7 +26,7 @@ s! { pub struct sockaddr_storage { pub ss_family: crate::sa_family_t, - pub __ss_padding: [u8; 26], + __ss_padding: Padding<[u8; 26]>, } } diff --git a/src/unix/newlib/horizon/mod.rs b/src/unix/newlib/horizon/mod.rs index ac500b1c79a32..5890a930f38f1 100644 --- a/src/unix/newlib/horizon/mod.rs +++ b/src/unix/newlib/horizon/mod.rs @@ -41,7 +41,7 @@ s! { pub struct sockaddr_storage { pub ss_family: crate::sa_family_t, - pub __ss_padding: [c_char; 26usize], + __ss_padding: Padding<[c_char; 26usize]>, } pub struct sockaddr_in { diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 33cd1f705bd06..44ec4eba94daf 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -694,9 +694,9 @@ s! { pub struct sigevent { pub sigev_notify: c_int, - pub __padding1: c_int, + __padding1: Padding, pub sigev_signo: c_int, // union - pub __padding2: c_int, + __padding2: Padding, pub sigev_value: crate::sigval, __sigev_un2: usize, // union } From e859f400b58f5298ed4d1a8f2fb2bc826561d57f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Wed, 3 Dec 2025 00:01:37 +0100 Subject: [PATCH 1122/1228] cleanup: Set unused fields as private Padding (backport ) (cherry picked from commit 0cfa0b29632c8b9e5623c1641007bf87c17970da) --- src/unix/aix/mod.rs | 2 +- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 4 ++-- src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 +- src/unix/hurd/mod.rs | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 5642f4d5dfdab..b114a780896a3 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -442,7 +442,7 @@ s! { pub re_esub: [*mut c_void; 24], pub re_map: *mut c_uchar, pub __maxsub: c_int, - pub __unused: [*mut c_void; 34], + __unused: Padding<[*mut c_void; 34]>, } pub struct rlimit64 { diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index e086b82306467..60e7989bbde36 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -417,14 +417,14 @@ s! { pub ut_line: [c_char; 32], pub ut_host: [c_char; 256], - pub ut_unused: [u8; 16], + ut_unused: Padding<[u8; 16]>, pub ut_session: u16, pub ut_type: u16, pub ut_pid: crate::pid_t, ut_exit: exit_status, ut_ss: crate::sockaddr_storage, pub ut_tv: crate::timeval, - pub ut_unused2: [u8; 16], + ut_unused2: Padding<[u8; 16]>, } pub struct lastlogx { diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index ecc6c8f1c7e13..642582868e7f0 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -359,7 +359,7 @@ s! { } pub struct uucred { - pub cr_unused: c_ushort, + cr_unused: Padding, pub cr_uid: crate::uid_t, pub cr_gid: crate::gid_t, pub cr_ngroups: c_short, diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index f03347f7bb5b4..03d0f146089dc 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -3330,8 +3330,8 @@ pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { __shpid: 0, __type: PTHREAD_MUTEX_TIMED as c_int, __flags: 0, - __reserved1: 0, - __reserved2: 0, + __reserved1: Padding::uninit(), + __reserved2: Padding::uninit(), }; pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { __lock: __PTHREAD_SPIN_LOCK_INITIALIZER, From 15759d1980ed5fa8f58b4993b0869f5855682593 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Tue, 2 Dec 2025 22:54:13 +0100 Subject: [PATCH 1123/1228] cleanup: Mark the alignment fields to private We have some leftovers of alignment data that is exposed (backport ) (cherry picked from commit ec2139e3dae1fd53dc01234c3634b592ff382fd7) --- src/unix/hurd/mod.rs | 2 +- src/unix/newlib/vita/mod.rs | 2 +- src/vxworks/mod.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 03d0f146089dc..7e1cbc3c3871e 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -286,7 +286,7 @@ s! { pub ss_len: c_uchar, pub ss_family: sa_family_t, __ss_padding: Padding<[c_char; 122usize]>, - pub __ss_align: __uint32_t, + __ss_align: __uint32_t, } pub struct sockaddr_at { diff --git a/src/unix/newlib/vita/mod.rs b/src/unix/newlib/vita/mod.rs index 2742a04241614..95abf9076a05f 100644 --- a/src/unix/newlib/vita/mod.rs +++ b/src/unix/newlib/vita/mod.rs @@ -53,7 +53,7 @@ s! { pub ss_len: u8, pub ss_family: crate::sa_family_t, __ss_pad1: Padding<[u8; 2]>, - pub __ss_align: i64, + __ss_align: i64, __ss_pad2: Padding<[u8; 116]>, } diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 52567b2ce7088..d5067250e5020 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -580,7 +580,7 @@ s_no_extra_traits! { pub ss_len: c_uchar, pub ss_family: crate::sa_family_t, __ss_pad1: Padding<[c_char; _SS_PAD1SIZE]>, - pub __ss_align: i32, + __ss_align: i32, __ss_pad2: Padding<[c_char; _SS_PAD2SIZE]>, } From 932b0f5d5f548d642eb28d68831f21033c49589f Mon Sep 17 00:00:00 2001 From: Xing Xue Date: Tue, 20 Jan 2026 08:31:09 -0500 Subject: [PATCH 1124/1228] Make 'tv_nsec' of 'struct timespec' as type 'c_long' and use 'struct st_timespec' in 'struct stat' and 'struct stat64' to be consistent with AIX headers. (backport ) (cherry picked from commit a44a76ef02388324b38884167020428aa5c29f68) --- libc-test/build.rs | 16 ---------------- src/unix/aix/mod.rs | 15 +++------------ src/unix/aix/powerpc64.rs | 6 +++--- src/unix/mod.rs | 2 +- 4 files changed, 7 insertions(+), 32 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 66cced85f5a6c..96f561a191f42 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -5667,16 +5667,6 @@ fn test_aix(target: &str) { // header does not define a separate standalone union type for it. ("ld_info", "_file") => true, - // On AIX, when _ALL_SOURCE is defined, the types of the following fields - // differ from those used when _XOPEN_SOURCE is defined. The former uses - // 'struct st_timespec', while the latter uses 'struct timespec'. - ("stat", "st_atim") => true, - ("stat", "st_mtim") => true, - ("stat", "st_ctim") => true, - ("stat64", "st_atim") => true, - ("stat64", "st_mtim") => true, - ("stat64", "st_ctim") => true, - _ => false, } }); @@ -5689,12 +5679,6 @@ fn test_aix(target: &str) { // The field 'data' is actually a unnamed union in the AIX header. "pollfd_ext" if field.ident() == "data" => true, - // On AIX, declares 'tv_nsec' as 'long', but the - // underlying system calls return a 32-bit value in both 32-bit - // and 64-bit modes. In the 'libc' crate it is declared as 'i32' - // to match the system call. Skip this field. - "timespec" if field.ident() == "tv_nsec" => true, - _ => false, } }); diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index b114a780896a3..71d041f7b52f7 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -266,15 +266,6 @@ s! { pub tv_nsec: c_int, } - // On AIX, declares 'tv_nsec' as 'long', but the underlying - // system calls return a 4-byte value in both 32-bit and 64-bit modes. - // It is declared as 'c_int' here to avoid using the other undefined 4 - // bytes in the 64-bit mode. - pub struct timespec { - pub tv_sec: time_t, - pub tv_nsec: c_int, - } - pub struct statfs64 { pub f_version: c_int, pub f_type: c_int, @@ -478,9 +469,9 @@ s! { pub st_gid: crate::gid_t, pub st_rdev: dev_t, pub st_ssize: c_int, - pub st_atim: crate::timespec, - pub st_mtim: crate::timespec, - pub st_ctim: crate::timespec, + pub st_atim: st_timespec, + pub st_mtim: st_timespec, + pub st_ctim: st_timespec, pub st_blksize: blksize_t, pub st_blocks: blkcnt_t, pub st_vfstype: c_int, diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index c6b24964ef200..0862cbf854d3c 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -68,9 +68,9 @@ s! { pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, pub st_ssize: c_int, - pub st_atim: crate::timespec, - pub st_mtim: crate::timespec, - pub st_ctim: crate::timespec, + pub st_atim: crate::st_timespec, + pub st_mtim: crate::st_timespec, + pub st_ctim: crate::st_timespec, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, pub st_vfstype: c_int, diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 227334a9d4fbe..1b74684cbbb20 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -69,7 +69,7 @@ s! { // linux x32 compatibility // See https://sourceware.org/bugzilla/show_bug.cgi?id=16437 - #[cfg(all(not(target_env = "gnu"), not(target_os = "aix")))] + #[cfg(not(target_env = "gnu"))] pub struct timespec { pub tv_sec: time_t, #[cfg(all(musl32_time64, target_endian = "big"))] From 8d7a803fafb3a7bbaf313f055ff728ffbb3e2155 Mon Sep 17 00:00:00 2001 From: Sergey Ulanov Date: Thu, 22 Jan 2026 13:50:56 -0800 Subject: [PATCH 1125/1228] Update SO_* constants for Fuchsia Added SO_COOKIE, SO_TIMESTAMPNS and SO_FUCHSIA_MARK. (backport ) (cherry picked from commit a940a7d6f4c2b9df9ac7012e8388ee8fee782b6d) --- libc-test/semver/fuchsia.txt | 3 +++ src/fuchsia/mod.rs | 18 ++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/libc-test/semver/fuchsia.txt b/libc-test/semver/fuchsia.txt index 12f67d8b4c606..88bd6db31a7e0 100644 --- a/libc-test/semver/fuchsia.txt +++ b/libc-test/semver/fuchsia.txt @@ -956,7 +956,9 @@ SO_BINDTODEVICE SO_BINDTOIFINDEX SO_BSDCOMPAT SO_BUSY_POLL +SO_COOKIE SO_DOMAIN +SO_FUCHSIA_MARK SO_MARK SO_NO_CHECK SO_ORIGINAL_DST @@ -969,6 +971,7 @@ SO_RCVBUFFORCE SO_RXQ_OVFL SO_SNDBUFFORCE SO_TIMESTAMP +SO_TIMESTAMPNS SPLICE_F_GIFT SPLICE_F_MORE SPLICE_F_MOVE diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 205d9701ff29a..b5fb673b7ea13 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -2684,14 +2684,6 @@ pub const B3000000: crate::speed_t = 0o010015; pub const B3500000: crate::speed_t = 0o010016; pub const B4000000: crate::speed_t = 0o010017; -pub const SO_BINDTODEVICE: c_int = 25; -pub const SO_TIMESTAMP: c_int = 29; -pub const SO_MARK: c_int = 36; -pub const SO_RXQ_OVFL: c_int = 40; -pub const SO_PEEK_OFF: c_int = 42; -pub const SO_BUSY_POLL: c_int = 46; -pub const SO_BINDTOIFINDEX: c_int = 62; - pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; @@ -2840,11 +2832,21 @@ pub const SO_RCVLOWAT: c_int = 18; pub const SO_SNDLOWAT: c_int = 19; pub const SO_RCVTIMEO: c_int = 20; pub const SO_SNDTIMEO: c_int = 21; +pub const SO_BINDTODEVICE: c_int = 25; +pub const SO_TIMESTAMP: c_int = 29; pub const SO_ACCEPTCONN: c_int = 30; pub const SO_SNDBUFFORCE: c_int = 32; pub const SO_RCVBUFFORCE: c_int = 33; +pub const SO_TIMESTAMPNS: c_int = 35; +pub const SO_MARK: c_int = 36; pub const SO_PROTOCOL: c_int = 38; pub const SO_DOMAIN: c_int = 39; +pub const SO_RXQ_OVFL: c_int = 40; +pub const SO_PEEK_OFF: c_int = 42; +pub const SO_BUSY_POLL: c_int = 46; +pub const SO_COOKIE: c_int = 57; +pub const SO_BINDTOIFINDEX: c_int = 62; +pub const SO_FUCHSIA_MARK: c_int = 10000; pub const SA_ONSTACK: c_int = 0x08000000; pub const SA_SIGINFO: c_int = 0x00000004; From 3612ea1f5d74cf9eae3c542461e872fbb7a47c86 Mon Sep 17 00:00:00 2001 From: Brian Cain Date: Mon, 19 Jan 2026 13:26:39 -0600 Subject: [PATCH 1126/1228] qurt: Fix type visibility and defs - Removed duplicate type definitions from legacy qurt module that conflicted with new module (socklen_t, in_addr_t, timespec, timeval, stat, tm, etc.) - Add crate:: prefix to type references in submodules - Add public re-exports for submodule contents (errno, fcntl, pthread, etc.) Type/define fixes: ssize_t, time_t, dev_t, ino_t, stat struct, dirent, DIR Added items from QuRT SDK: clock(), strptime(), _SC_NPROCESSORS_ONLN (backport ) (cherry picked from commit 9934c04c2396ac29ca509e67346b3133f51402d2) --- src/new/mod.rs | 4 +- src/new/qurt/dlfcn.rs | 26 +++ src/new/qurt/fcntl.rs | 5 +- src/new/qurt/mod.rs | 238 ++++++++++++++++++++++++-- src/new/qurt/pthread.rs | 23 +-- src/new/qurt/signal.rs | 58 ++++++- src/new/qurt/stdio.rs | 5 - src/new/qurt/sys/mman.rs | 55 ++++++ src/new/qurt/sys/mod.rs | 2 + src/new/qurt/sys/sched.rs | 24 +++ src/new/qurt/sys/stat.rs | 6 - src/new/qurt/time.rs | 26 +-- src/new/qurt/unistd.rs | 230 +++++++++++++++++++++++--- src/qurt/hexagon.rs | 340 -------------------------------------- src/qurt/mod.rs | 334 +------------------------------------ 15 files changed, 615 insertions(+), 761 deletions(-) create mode 100644 src/new/qurt/dlfcn.rs create mode 100644 src/new/qurt/sys/mman.rs create mode 100644 src/new/qurt/sys/sched.rs delete mode 100644 src/qurt/hexagon.rs diff --git a/src/new/mod.rs b/src/new/mod.rs index 2e6b451a99170..078200ae6258c 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -103,8 +103,8 @@ cfg_if! { mod openbsd; pub(crate) use openbsd::*; } else if #[cfg(target_os = "qurt")] { - mod qurt; - pub(crate) use qurt::*; + pub mod qurt; + pub use qurt::*; } else if #[cfg(target_os = "redox")] { mod redox; // pub(crate) use redox::*; diff --git a/src/new/qurt/dlfcn.rs b/src/new/qurt/dlfcn.rs new file mode 100644 index 0000000000000..668fcab54c2a5 --- /dev/null +++ b/src/new/qurt/dlfcn.rs @@ -0,0 +1,26 @@ +//! Header: `dlfcn.h` +//! +//! Dynamic linking functions and constants from Hexagon toolchain. + +use crate::prelude::*; + +// Values for dlopen `mode` +pub const RTLD_LAZY: c_int = 1; +pub const RTLD_NOW: c_int = 2; +pub const RTLD_GLOBAL: c_int = 0x100; +pub const RTLD_LOCAL: c_int = 0x200; + +// Compatibility constant +pub const DL_LAZY: c_int = RTLD_LAZY; + +// Special handles +pub const RTLD_NEXT: *mut c_void = -1isize as *mut c_void; +pub const RTLD_DEFAULT: *mut c_void = -2isize as *mut c_void; +pub const RTLD_SELF: *mut c_void = -3isize as *mut c_void; + +extern "C" { + pub fn dlopen(filename: *const c_char, flag: c_int) -> *mut c_void; + pub fn dlclose(handle: *mut c_void) -> c_int; + pub fn dlsym(handle: *mut c_void, symbol: *const c_char) -> *mut c_void; + pub fn dlerror() -> *mut c_char; +} diff --git a/src/new/qurt/fcntl.rs b/src/new/qurt/fcntl.rs index aa94ffc94ed54..0287292ad2f8e 100644 --- a/src/new/qurt/fcntl.rs +++ b/src/new/qurt/fcntl.rs @@ -21,6 +21,9 @@ pub const O_NONBLOCK: c_int = 0x0800; pub const O_SYNC: c_int = 0x1000; pub const O_FSYNC: c_int = O_SYNC; pub const O_DSYNC: c_int = 0x1000; +pub const O_DIRECTORY: c_int = 0x10000; +pub const O_NOFOLLOW: c_int = 0x20000; +pub const O_CLOEXEC: c_int = 0x80000; // fcntl() commands pub const F_DUPFD: c_int = 0; @@ -31,6 +34,7 @@ pub const F_SETFL: c_int = 4; pub const F_GETLK: c_int = 5; pub const F_SETLK: c_int = 6; pub const F_SETLKW: c_int = 7; +pub const F_DUPFD_CLOEXEC: c_int = 1030; // File descriptor flags pub const FD_CLOEXEC: c_int = 1; @@ -43,7 +47,6 @@ pub const F_UNLCK: c_int = 2; // Functions extern "C" { pub fn open(pathname: *const c_char, flags: c_int, ...) -> c_int; - pub fn openat(dirfd: c_int, pathname: *const c_char, flags: c_int, ...) -> c_int; pub fn creat(pathname: *const c_char, mode: mode_t) -> c_int; pub fn fcntl(fd: c_int, cmd: c_int, ...) -> c_int; } diff --git a/src/new/qurt/mod.rs b/src/new/qurt/mod.rs index b6e1fbbb82148..456b715f019ec 100644 --- a/src/new/qurt/mod.rs +++ b/src/new/qurt/mod.rs @@ -6,12 +6,12 @@ use crate::prelude::*; -// Basic C types for QRT +// Basic C types for QuRT pub type intptr_t = isize; pub type uintptr_t = usize; pub type ptrdiff_t = isize; pub type size_t = uintptr_t; -pub type ssize_t = intptr_t; +pub type ssize_t = c_int; // Process and system types pub type pid_t = c_int; @@ -19,15 +19,15 @@ pub type uid_t = c_uint; pub type gid_t = c_uint; // Time types -pub type time_t = c_longlong; +pub type time_t = c_long; pub type suseconds_t = c_long; pub type useconds_t = c_ulong; pub type clockid_t = c_int; pub type timer_t = *mut c_void; // File system types -pub type dev_t = c_ulong; -pub type ino_t = c_ulong; +pub type dev_t = c_ulonglong; +pub type ino_t = c_ulonglong; pub type mode_t = c_uint; pub type nlink_t = c_uint; pub type off_t = c_long; @@ -83,7 +83,20 @@ pub type va_list = *mut c_char; // Additional missing types pub type c_schar = i8; -// Division result types +// Wide character type (hexagon-specific) +pub type wchar_t = u32; + +// Error type (compatible with std expectations) +pub type errno_t = c_int; + +// Resource limit type (for compatibility, not fully supported on QuRT) +pub type rlim_t = c_ulong; + +// Terminal types (for compatibility, not fully supported on QuRT) +pub type speed_t = c_uint; +pub type tcflag_t = c_uint; + +// Division result types and structures s! { pub struct div_t { pub quot: c_int, @@ -105,12 +118,8 @@ s! { pub st_ino: ino_t, pub st_mode: mode_t, pub st_nlink: nlink_t, - pub st_uid: uid_t, - pub st_gid: gid_t, 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_mtime: time_t, pub st_ctime: time_t, @@ -143,13 +152,197 @@ s! { pub it_value: timespec, } - pub struct sigevent { - pub sigev_notify: c_int, - pub sigev_signo: c_int, - pub sigev_value: c_int, + pub struct dirent { + pub d_ino: c_long, + pub d_name: [c_char; 255], + } + + pub struct DIR { + pub index: c_int, + pub entry: dirent, + } + + // Terminal I/O structure (for compatibility, limited support on QuRT) + pub struct termios { + pub c_iflag: tcflag_t, + pub c_oflag: tcflag_t, + pub c_cflag: tcflag_t, + pub c_lflag: tcflag_t, + pub c_cc: [c_uchar; 32], + pub c_ispeed: speed_t, + pub c_ospeed: speed_t, + } + + // Resource limit structures (for compatibility, limited support on QuRT) + pub struct rlimit { + pub rlim_cur: rlim_t, + pub rlim_max: rlim_t, } + + pub struct rusage { + pub ru_utime: timeval, + pub ru_stime: timeval, + pub ru_maxrss: c_long, + pub ru_ixrss: c_long, + pub ru_idrss: c_long, + pub ru_isrss: c_long, + pub ru_minflt: c_long, + pub ru_majflt: c_long, + pub ru_nswap: c_long, + pub ru_inblock: c_long, + pub ru_oublock: c_long, + pub ru_msgsnd: c_long, + pub ru_msgrcv: c_long, + pub ru_nsignals: c_long, + pub ru_nvcsw: c_long, + pub ru_nivcsw: c_long, + } + + // File lock structure (for compatibility) + pub struct flock { + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: pid_t, + } +} + +// Additional pthread constants +pub const PTHREAD_NAME_LEN: c_int = 16; +pub const PTHREAD_MAX_THREADS: c_uint = 512; +pub const PTHREAD_MIN_STACKSIZE: c_int = 512; +pub const PTHREAD_MAX_STACKSIZE: c_int = 1048576; +pub const PTHREAD_DEFAULT_STACKSIZE: c_int = 16384; +pub const PTHREAD_DEFAULT_PRIORITY: c_int = 1; +pub const PTHREAD_SPINLOCK_UNLOCKED: c_int = 0; +pub const PTHREAD_SPINLOCK_LOCKED: c_int = 1; + +// Additional time constants +pub const TIME_CONV_SCLK_FREQ: c_int = 19200000; +pub const CLOCK_MONOTONIC_RAW: clockid_t = 4; +pub const CLOCK_REALTIME_COARSE: clockid_t = 5; +pub const CLOCK_MONOTONIC_COARSE: clockid_t = 6; +pub const CLOCK_BOOTTIME: clockid_t = 7; + +// Stdio constants +pub const L_tmpnam: c_uint = 260; +pub const TMP_MAX: c_uint = 25; +pub const FOPEN_MAX: c_uint = 20; + +// Error constants +pub const EOK: c_int = 0; + +// Semaphore constants +pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; + +// Page size constants (hexagon-specific) +pub const PAGESIZE: size_t = 4096; +pub const PAGE_SIZE: size_t = 4096; + +// Directory entry types (hexagon-specific) +pub const DT_UNKNOWN: c_uchar = 0; +pub const DT_FIFO: c_uchar = 1; +pub const DT_CHR: c_uchar = 2; +pub const DT_DIR: c_uchar = 4; +pub const DT_BLK: c_uchar = 6; +pub const DT_REG: c_uchar = 8; +pub const DT_LNK: c_uchar = 10; +pub const DT_SOCK: c_uchar = 12; + +// Directory functions (dirent.h) +extern "C" { + pub fn opendir(name: *const c_char) -> *mut DIR; + pub fn readdir(dirp: *mut DIR) -> *mut dirent; + pub fn closedir(dirp: *const DIR) -> c_int; + pub fn mkdir(path: *const c_char, mode: mode_t) -> c_int; +} + +// Additional pthread functions +extern "C" { + pub fn pthread_attr_getstack( + attr: *const pthread_attr_t, + stackaddr: *mut *mut c_void, + stacksize: *mut size_t, + ) -> c_int; + pub fn pthread_attr_setstack( + attr: *mut pthread_attr_t, + stackaddr: *mut c_void, + stacksize: size_t, + ) -> c_int; +} + +// Additional time functions +extern "C" { + pub fn clock_getcpuclockid(pid: pid_t, clock_id: *mut clockid_t) -> c_int; +} + +// POSIX semaphore functions +extern "C" { + pub fn sem_open(name: *const c_char, oflag: c_int, ...) -> *mut sem_t; + pub fn sem_close(sem: *mut sem_t) -> c_int; + pub fn sem_unlink(name: *const c_char) -> c_int; } +// Additional stdlib functions +extern "C" { + pub fn aligned_alloc(alignment: size_t, size: size_t) -> *mut c_void; +} + +// String functions (string.h) +extern "C" { + pub fn strlen(s: *const c_char) -> size_t; + pub fn strcpy(dest: *mut c_char, src: *const c_char) -> *mut c_char; + pub fn strncpy(dest: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; + pub fn strcat(dest: *mut c_char, src: *const c_char) -> *mut c_char; + pub fn strncat(dest: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; + pub fn strcmp(s1: *const c_char, s2: *const c_char) -> c_int; + pub fn strncmp(s1: *const c_char, s2: *const c_char, n: size_t) -> c_int; + pub fn strcoll(s1: *const c_char, s2: *const c_char) -> c_int; + pub fn strxfrm(dest: *mut c_char, src: *const c_char, n: size_t) -> size_t; + pub fn strchr(s: *const c_char, c: c_int) -> *mut c_char; + pub fn strrchr(s: *const c_char, c: c_int) -> *mut c_char; + pub fn strspn(s: *const c_char, accept: *const c_char) -> size_t; + pub fn strcspn(s: *const c_char, reject: *const c_char) -> size_t; + pub fn strpbrk(s: *const c_char, accept: *const c_char) -> *mut c_char; + pub fn strstr(haystack: *const c_char, needle: *const c_char) -> *mut c_char; + pub fn strtok(s: *mut c_char, delim: *const c_char) -> *mut c_char; + pub fn strerror(errnum: c_int) -> *mut c_char; + pub fn memchr(s: *const c_void, c: c_int, n: size_t) -> *mut c_void; + pub fn memcmp(s1: *const c_void, s2: *const c_void, n: size_t) -> c_int; + pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + pub fn memset(s: *mut c_void, c: c_int, n: size_t) -> *mut c_void; +} + +// Additional unistd functions +extern "C" { + pub fn fork() -> pid_t; + pub fn execve( + filename: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + ) -> c_int; +} + +// Character classification functions (ctype.h) +extern "C" { + pub fn isalnum(c: c_int) -> c_int; + pub fn isalpha(c: c_int) -> c_int; + pub fn iscntrl(c: c_int) -> c_int; + pub fn isdigit(c: c_int) -> c_int; + pub fn isgraph(c: c_int) -> c_int; + pub fn islower(c: c_int) -> c_int; + pub fn isprint(c: c_int) -> c_int; + pub fn ispunct(c: c_int) -> c_int; + pub fn isspace(c: c_int) -> c_int; + pub fn isupper(c: c_int) -> c_int; + pub fn isxdigit(c: c_int) -> c_int; + pub fn tolower(c: c_int) -> c_int; + pub fn toupper(c: c_int) -> c_int; +} + +pub(crate) mod dlfcn; pub(crate) mod errno; pub(crate) mod fcntl; pub(crate) mod limits; @@ -161,3 +354,20 @@ pub(crate) mod stdlib; pub(crate) mod sys; pub(crate) mod time; pub(crate) mod unistd; + +// Re-export public items from submodules +pub use dlfcn::*; +pub use errno::*; +pub use fcntl::*; +pub use limits::*; +pub use pthread::*; +pub use semaphore::*; +pub use signal::*; +pub use stdio::*; +pub use stdlib::*; +pub use sys::mman::*; +pub use sys::sched::*; +pub use sys::stat::*; +pub use sys::types::*; +pub use time::*; +pub use unistd::*; diff --git a/src/new/qurt/pthread.rs b/src/new/qurt/pthread.rs index b9859f05380f9..543f7874c3dc6 100644 --- a/src/new/qurt/pthread.rs +++ b/src/new/qurt/pthread.rs @@ -4,23 +4,6 @@ use super::*; use crate::prelude::*; -use crate::{ - cpu_set_t, - pthread_attr_t, - pthread_barrier_t, - pthread_barrierattr_t, - pthread_cond_t, - pthread_condattr_t, - pthread_key_t, - pthread_mutex_t, - pthread_mutexattr_t, - pthread_once_t, - pthread_rwlock_t, - pthread_rwlockattr_t, - pthread_spinlock_t, - pthread_t, - timespec, -}; // Thread creation attributes pub const PTHREAD_CREATE_JOINABLE: c_int = 0; @@ -41,11 +24,6 @@ pub const PTHREAD_PRIO_PROTECT: c_int = 2; pub const PTHREAD_MIN_PRIORITY: c_int = 0; pub const PTHREAD_MAX_PRIORITY: c_int = 255; -// Scheduling policies -pub const SCHED_OTHER: c_int = 0; -pub const SCHED_FIFO: c_int = 1; -pub const SCHED_RR: c_int = 2; - // Initializer constants pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0xFFFFFFFF; pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0xFFFFFFFF; @@ -117,6 +95,7 @@ extern "C" { // Condition variable attributes pub fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> c_int; pub fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> c_int; + pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, clock_id: clockid_t) -> c_int; // Thread-local storage pub fn pthread_key_create( diff --git a/src/new/qurt/signal.rs b/src/new/qurt/signal.rs index b0180c5aa0382..f525fa15ff29e 100644 --- a/src/new/qurt/signal.rs +++ b/src/new/qurt/signal.rs @@ -41,13 +41,54 @@ pub const SIG_DFL: sighandler_t = 0 as sighandler_t; pub const SIG_IGN: sighandler_t = 1 as sighandler_t; pub const SIG_ERR: sighandler_t = !0 as sighandler_t; -// Signal mask operations -pub const SIG_BLOCK: c_int = 0; -pub const SIG_UNBLOCK: c_int = 1; -pub const SIG_SETMASK: c_int = 2; +// Signal mask operations (QuRT uses different values than Linux) +pub const SIG_BLOCK: c_int = 1; +pub const SIG_UNBLOCK: c_int = 2; +pub const SIG_SETMASK: c_int = 3; + +// QuRT-specific signal constants +pub const POSIX_MSG: c_int = 7; +pub const POSIX_NOTIF: c_int = 8; +pub const SIGRTMIN: c_int = 10; +pub const SIGRTMAX: c_int = 32; + +// Notification types (from QuRT signal.h) +pub const SIGEV_NONE: c_int = 0; +pub const SIGEV_SIGNAL: c_int = 1; +pub const SIGEV_THREAD: c_int = 2; +pub const SA_SIGINFO: c_int = 1; pub type sighandler_t = size_t; +// Signal structures based on QuRT SDK headers +s! { + pub struct sigval { + pub sival_int: c_int, + pub sival_ptr: *mut c_void, + } + + pub struct sigevent { + pub sigev_notify: c_int, + pub sigev_signo: c_int, + pub sigev_value: sigval, + pub sigev_notify_function: Option, + pub sigev_notify_attributes: *mut pthread_attr_t, + } + + pub struct siginfo_t { + pub si_signo: c_int, + pub si_code: c_int, + pub si_value: sigval, + } + + pub struct sigaction { + pub sa_handler: Option, + pub sa_mask: sigset_t, + pub sa_flags: c_int, + pub sa_sigaction: Option, + } +} + extern "C" { pub fn signal(sig: c_int, handler: sighandler_t) -> sighandler_t; pub fn kill(pid: pid_t, sig: c_int) -> c_int; @@ -64,4 +105,13 @@ extern "C" { pub fn sigprocmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; pub fn sigpending(set: *mut sigset_t) -> c_int; pub fn sigsuspend(mask: *const sigset_t) -> c_int; + + // QuRT-specific signal functions + pub fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int; + pub fn _sigaction(sig: c_int, act: *const sigaction, oact: *mut sigaction) -> c_int; + pub fn sigtimedwait( + set: *const sigset_t, + info: *mut siginfo_t, + timeout: *const timespec, + ) -> c_int; } diff --git a/src/new/qurt/stdio.rs b/src/new/qurt/stdio.rs index fbfc94df66dec..7130717764e8a 100644 --- a/src/new/qurt/stdio.rs +++ b/src/new/qurt/stdio.rs @@ -3,11 +3,6 @@ use super::*; use crate::prelude::*; -// File position constants -pub const SEEK_SET: c_int = 0; -pub const SEEK_CUR: c_int = 1; -pub const SEEK_END: c_int = 2; - // Buffer size pub const BUFSIZ: c_uint = 1024; pub const FILENAME_MAX: c_uint = 260; diff --git a/src/new/qurt/sys/mman.rs b/src/new/qurt/sys/mman.rs new file mode 100644 index 0000000000000..a0a3b3aad8fe7 --- /dev/null +++ b/src/new/qurt/sys/mman.rs @@ -0,0 +1,55 @@ +//! Header: `sys/mman.h` +//! +//! Memory mapping functions and constants from Hexagon toolchain. + +use super::super::*; +use crate::prelude::*; + +// Memory protection constants +pub const PROT_NONE: c_int = 0x00; +pub const PROT_READ: c_int = 0x01; +pub const PROT_WRITE: c_int = 0x02; +pub const PROT_EXEC: c_int = 0x04; + +// Memory mapping constants +pub const MAP_SHARED: c_int = 0x0001; +pub const MAP_PRIVATE: c_int = 0x0002; +pub const MAP_FIXED: c_int = 0x0010; +pub const MAP_ANON: c_int = 0x1000; +pub const MAP_ANONYMOUS: c_int = MAP_ANON; +pub const MAP_FILE: c_int = 0x0000; +pub const MAP_RENAME: c_int = 0x0020; +pub const MAP_NORESERVE: c_int = 0x0040; +pub const MAP_INHERIT: c_int = 0x0080; +pub const MAP_HASSEMAPHORE: c_int = 0x0200; +pub const MAP_TRYFIXED: c_int = 0x0400; +pub const MAP_WIRED: c_int = 0x0800; + +pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; + +// Memory sync constants +pub const MS_ASYNC: c_int = 0x01; +pub const MS_INVALIDATE: c_int = 0x02; +pub const MS_SYNC: c_int = 0x04; + +// Memory lock constants +pub const MCL_CURRENT: c_int = 0x01; +pub const MCL_FUTURE: c_int = 0x02; + +extern "C" { + pub fn mmap( + addr: *mut c_void, + len: size_t, + prot: c_int, + flags: c_int, + fd: c_int, + offset: off_t, + ) -> *mut c_void; + pub fn munmap(addr: *mut c_void, len: size_t) -> c_int; + pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; + pub fn mlock(addr: *const c_void, len: size_t) -> c_int; + pub fn munlock(addr: *const c_void, len: size_t) -> c_int; + pub fn mlockall(flags: c_int) -> c_int; + pub fn munlockall() -> c_int; + pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; +} diff --git a/src/new/qurt/sys/mod.rs b/src/new/qurt/sys/mod.rs index 5c4547cb7895f..f9ef6a435fb48 100644 --- a/src/new/qurt/sys/mod.rs +++ b/src/new/qurt/sys/mod.rs @@ -1,4 +1,6 @@ //! System headers (`sys/*`) +pub(crate) mod mman; +pub(crate) mod sched; pub(crate) mod stat; pub(crate) mod types; diff --git a/src/new/qurt/sys/sched.rs b/src/new/qurt/sys/sched.rs new file mode 100644 index 0000000000000..56fed5ba00890 --- /dev/null +++ b/src/new/qurt/sys/sched.rs @@ -0,0 +1,24 @@ +//! Header: `sys/sched.h` +//! +//! QuRT scheduling parameters and functions. + +use crate::prelude::*; + +// Scheduling policies (from QuRT sys/sched.h) +pub const SCHED_FIFO: c_int = 0; +pub const SCHED_RR: c_int = 1; +pub const SCHED_SPORADIC: c_int = 2; +pub const SCHED_OTHER: c_int = 3; + +s! { + pub struct sched_param { + pub unimplemented: *mut c_void, + pub sched_priority: c_int, + } +} + +extern "C" { + pub fn sched_yield() -> c_int; + pub fn sched_get_priority_max(policy: c_int) -> c_int; + pub fn sched_get_priority_min(policy: c_int) -> c_int; +} diff --git a/src/new/qurt/sys/stat.rs b/src/new/qurt/sys/stat.rs index 25ffa76c64909..a8ee211eb4e83 100644 --- a/src/new/qurt/sys/stat.rs +++ b/src/new/qurt/sys/stat.rs @@ -33,10 +33,4 @@ pub const S_IXOTH: mode_t = 0o0001; extern "C" { pub fn stat(pathname: *const c_char, statbuf: *mut stat) -> c_int; pub fn fstat(fd: c_int, statbuf: *mut stat) -> c_int; - pub fn lstat(pathname: *const c_char, statbuf: *mut stat) -> c_int; - pub fn chmod(pathname: *const c_char, mode: mode_t) -> c_int; - pub fn fchmod(fd: c_int, mode: mode_t) -> c_int; - pub fn mkdir(pathname: *const c_char, mode: mode_t) -> c_int; - pub fn mkfifo(pathname: *const c_char, mode: mode_t) -> c_int; - pub fn umask(mask: mode_t) -> mode_t; } diff --git a/src/new/qurt/time.rs b/src/new/qurt/time.rs index e3535fd5bd82d..ab6f4453dbeab 100644 --- a/src/new/qurt/time.rs +++ b/src/new/qurt/time.rs @@ -6,15 +6,12 @@ use crate::prelude::*; // Clock types pub const CLOCK_REALTIME: clockid_t = 0; pub const CLOCK_MONOTONIC: clockid_t = 1; -pub const CLOCK_PROCESS_CPUTIME_ID: clockid_t = 2; -pub const CLOCK_THREAD_CPUTIME_ID: clockid_t = 3; - -// Timer flags -pub const TIMER_ABSTIME: c_int = 1; +pub const CLOCK_THREAD_CPUTIME_ID: clockid_t = 2; +pub const CLOCK_PROCESS_CPUTIME_ID: clockid_t = 3; extern "C" { - // Time functions pub fn time(tloc: *mut time_t) -> time_t; + pub fn clock() -> clock_t; pub fn difftime(time1: time_t, time0: time_t) -> c_double; pub fn mktime(tm: *mut tm) -> time_t; pub fn gmtime(timep: *const time_t) -> *mut tm; @@ -31,22 +28,7 @@ extern "C" { format: *const c_char, timeptr: *const tm, ) -> size_t; - - // High-resolution time functions + pub fn strptime(s: *const c_char, format: *const c_char, tm: *mut tm) -> *mut c_char; 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; - pub fn clock_getres(clk_id: clockid_t, res: *mut timespec) -> c_int; pub fn nanosleep(req: *const timespec, rem: *mut timespec) -> c_int; - - // Timer functions - pub fn timer_create(clockid: clockid_t, sevp: *mut sigevent, timerid: *mut timer_t) -> c_int; - pub fn timer_delete(timerid: timer_t) -> c_int; - pub fn timer_settime( - timerid: timer_t, - flags: c_int, - new_value: *const itimerspec, - old_value: *mut itimerspec, - ) -> c_int; - pub fn timer_gettime(timerid: timer_t, curr_value: *mut itimerspec) -> c_int; - pub fn timer_getoverrun(timerid: timer_t) -> c_int; } diff --git a/src/new/qurt/unistd.rs b/src/new/qurt/unistd.rs index 3faced7d30307..b973b60e66761 100644 --- a/src/new/qurt/unistd.rs +++ b/src/new/qurt/unistd.rs @@ -19,40 +19,230 @@ pub const SEEK_SET: c_int = 0; pub const SEEK_CUR: c_int = 1; pub const SEEK_END: c_int = 2; +// pathconf constants (from bits/confname.h) +pub const _PC_LINK_MAX: c_int = 0; +pub const _PC_MAX_CANON: c_int = 1; +pub const _PC_MAX_INPUT: c_int = 2; +pub const _PC_NAME_MAX: c_int = 3; +pub const _PC_PATH_MAX: c_int = 4; +pub const _PC_PIPE_BUF: c_int = 5; +pub const _PC_CHOWN_RESTRICTED: c_int = 6; +pub const _PC_NO_TRUNC: c_int = 7; +pub const _PC_VDISABLE: c_int = 8; +pub const _PC_SYNC_IO: c_int = 9; +pub const _PC_ASYNC_IO: c_int = 10; +pub const _PC_PRIO_IO: c_int = 11; +pub const _PC_SOCK_MAXBUF: c_int = 12; +pub const _PC_FILESIZEBITS: c_int = 13; +pub const _PC_REC_INCR_XFER_SIZE: c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: c_int = 16; +pub const _PC_REC_XFER_ALIGN: c_int = 17; +pub const _PC_ALLOC_SIZE_MIN: c_int = 18; +pub const _PC_SYMLINK_MAX: c_int = 19; +pub const _PC_2_SYMLINKS: c_int = 20; + +// sysconf constants (from bits/confname.h) +pub const _SC_ARG_MAX: c_int = 0; +pub const _SC_CHILD_MAX: c_int = 1; +pub const _SC_CLK_TCK: c_int = 2; +pub const _SC_NGROUPS_MAX: c_int = 3; +pub const _SC_OPEN_MAX: c_int = 4; +pub const _SC_STREAM_MAX: c_int = 5; +pub const _SC_TZNAME_MAX: c_int = 6; +pub const _SC_JOB_CONTROL: c_int = 7; +pub const _SC_SAVED_IDS: c_int = 8; +pub const _SC_REALTIME_SIGNALS: c_int = 9; +pub const _SC_PRIORITY_SCHEDULING: c_int = 10; +pub const _SC_TIMERS: c_int = 11; +pub const _SC_ASYNCHRONOUS_IO: c_int = 12; +pub const _SC_PRIORITIZED_IO: c_int = 13; +pub const _SC_SYNCHRONIZED_IO: c_int = 14; +pub const _SC_FSYNC: c_int = 15; +pub const _SC_MAPPED_FILES: c_int = 16; +pub const _SC_MEMLOCK: c_int = 17; +pub const _SC_MEMLOCK_RANGE: c_int = 18; +pub const _SC_MEMORY_PROTECTION: c_int = 19; +pub const _SC_MESSAGE_PASSING: c_int = 20; +pub const _SC_SEMAPHORES: c_int = 21; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 22; +pub const _SC_AIO_LISTIO_MAX: c_int = 23; +pub const _SC_AIO_MAX: c_int = 24; +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 25; +pub const _SC_DELAYTIMER_MAX: c_int = 26; +pub const _SC_MQ_OPEN_MAX: c_int = 27; +pub const _SC_MQ_PRIO_MAX: c_int = 28; +pub const _SC_VERSION: c_int = 29; +pub const _SC_PAGESIZE: c_int = 30; +pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; +pub const _SC_RTSIG_MAX: c_int = 31; +pub const _SC_SEM_NSEMS_MAX: c_int = 32; +pub const _SC_SEM_VALUE_MAX: c_int = 33; +pub const _SC_SIGQUEUE_MAX: c_int = 34; +pub const _SC_TIMER_MAX: c_int = 35; +pub const _SC_BC_BASE_MAX: c_int = 36; +pub const _SC_BC_DIM_MAX: c_int = 37; +pub const _SC_BC_SCALE_MAX: c_int = 38; +pub const _SC_BC_STRING_MAX: c_int = 39; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 40; +pub const _SC_EQUIV_CLASS_MAX: c_int = 41; +pub const _SC_EXPR_NEST_MAX: c_int = 42; +pub const _SC_LINE_MAX: c_int = 43; +pub const _SC_RE_DUP_MAX: c_int = 44; +pub const _SC_CHARCLASS_NAME_MAX: c_int = 45; +pub const _SC_2_VERSION: c_int = 46; +pub const _SC_2_C_BIND: c_int = 47; +pub const _SC_2_C_DEV: c_int = 48; +pub const _SC_2_FORT_DEV: c_int = 49; +pub const _SC_2_FORT_RUN: c_int = 50; +pub const _SC_2_SW_DEV: c_int = 51; +pub const _SC_2_LOCALEDEF: c_int = 52; +pub const _SC_PII: c_int = 53; +pub const _SC_PII_XTI: c_int = 54; +pub const _SC_PII_SOCKET: c_int = 55; +pub const _SC_PII_INTERNET: c_int = 56; +pub const _SC_PII_OSI: c_int = 57; +pub const _SC_POLL: c_int = 58; +pub const _SC_SELECT: c_int = 59; +pub const _SC_UIO_MAXIOV: c_int = 60; +pub const _SC_IOV_MAX: c_int = _SC_UIO_MAXIOV; +pub const _SC_PII_INTERNET_STREAM: c_int = 61; +pub const _SC_PII_INTERNET_DGRAM: c_int = 62; +pub const _SC_PII_OSI_COTS: c_int = 63; +pub const _SC_PII_OSI_CLTS: c_int = 64; +pub const _SC_PII_OSI_M: c_int = 65; +pub const _SC_T_IOV_MAX: c_int = 66; +pub const _SC_THREADS: c_int = 67; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 68; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 69; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 70; +pub const _SC_LOGIN_NAME_MAX: c_int = 71; +pub const _SC_TTY_NAME_MAX: c_int = 72; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 73; +pub const _SC_THREAD_KEYS_MAX: c_int = 74; +pub const _SC_THREAD_STACK_MIN: c_int = 75; +pub const _SC_THREAD_THREADS_MAX: c_int = 76; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 77; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 78; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 79; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 80; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 81; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 82; +pub const _SC_NPROCESSORS_CONF: c_int = 83; +pub const _SC_NPROCESSORS_ONLN: c_int = 84; +pub const _SC_PHYS_PAGES: c_int = 85; +pub const _SC_AVPHYS_PAGES: c_int = 86; +pub const _SC_ATEXIT_MAX: c_int = 87; +pub const _SC_PASS_MAX: c_int = 88; +pub const _SC_XOPEN_VERSION: c_int = 89; +pub const _SC_XOPEN_XCU_VERSION: c_int = 90; +pub const _SC_XOPEN_UNIX: c_int = 91; +pub const _SC_XOPEN_CRYPT: c_int = 92; +pub const _SC_XOPEN_ENH_I18N: c_int = 93; +pub const _SC_XOPEN_SHM: c_int = 94; +pub const _SC_2_CHAR_TERM: c_int = 95; +pub const _SC_2_C_VERSION: c_int = 96; +pub const _SC_2_UPE: c_int = 97; +pub const _SC_XOPEN_XPG2: c_int = 98; +pub const _SC_XOPEN_XPG3: c_int = 99; +pub const _SC_XOPEN_XPG4: c_int = 100; +pub const _SC_CHAR_BIT: c_int = 101; +pub const _SC_CHAR_MAX: c_int = 102; +pub const _SC_CHAR_MIN: c_int = 103; +pub const _SC_INT_MAX: c_int = 104; +pub const _SC_INT_MIN: c_int = 105; +pub const _SC_LONG_BIT: c_int = 106; +pub const _SC_WORD_BIT: c_int = 107; +pub const _SC_MB_LEN_MAX: c_int = 108; +pub const _SC_NZERO: c_int = 109; +pub const _SC_SSIZE_MAX: c_int = 110; +pub const _SC_SCHAR_MAX: c_int = 111; +pub const _SC_SCHAR_MIN: c_int = 112; +pub const _SC_SHRT_MAX: c_int = 113; +pub const _SC_SHRT_MIN: c_int = 114; +pub const _SC_UCHAR_MAX: c_int = 115; +pub const _SC_UINT_MAX: c_int = 116; +pub const _SC_ULONG_MAX: c_int = 117; +pub const _SC_USHRT_MAX: c_int = 118; +pub const _SC_NL_ARGMAX: c_int = 119; +pub const _SC_NL_LANGMAX: c_int = 120; +pub const _SC_NL_MSGMAX: c_int = 121; +pub const _SC_NL_NMAX: c_int = 122; +pub const _SC_NL_SETMAX: c_int = 123; +pub const _SC_NL_TEXTMAX: c_int = 124; +pub const _SC_XBS5_ILP32_OFF32: c_int = 125; +pub const _SC_XBS5_ILP32_OFFBIG: c_int = 126; +pub const _SC_XBS5_LP64_OFF64: c_int = 127; +pub const _SC_XBS5_LPBIG_OFFBIG: c_int = 128; +pub const _SC_XOPEN_LEGACY: c_int = 129; +pub const _SC_XOPEN_REALTIME: c_int = 130; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 131; +pub const _SC_ADVISORY_INFO: c_int = 132; +pub const _SC_BARRIERS: c_int = 133; +pub const _SC_CLOCK_SELECTION: c_int = 137; +pub const _SC_CPUTIME: c_int = 138; +pub const _SC_THREAD_CPUTIME: c_int = 139; +pub const _SC_MONOTONIC_CLOCK: c_int = 149; +pub const _SC_READER_WRITER_LOCKS: c_int = 153; +pub const _SC_SPIN_LOCKS: c_int = 154; +pub const _SC_REGEXP: c_int = 155; +pub const _SC_SHELL: c_int = 157; +pub const _SC_SPAWN: c_int = 159; +pub const _SC_SPORADIC_SERVER: c_int = 160; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 161; +pub const _SC_TIMEOUTS: c_int = 164; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 165; +pub const _SC_2_PBS: c_int = 168; +pub const _SC_2_PBS_ACCOUNTING: c_int = 169; +pub const _SC_2_PBS_LOCATE: c_int = 170; +pub const _SC_2_PBS_MESSAGE: c_int = 171; +pub const _SC_2_PBS_TRACK: c_int = 172; +pub const _SC_SYMLOOP_MAX: c_int = 173; +pub const _SC_2_PBS_CHECKPOINT: c_int = 175; +pub const _SC_V6_ILP32_OFF32: c_int = 176; +pub const _SC_V6_ILP32_OFFBIG: c_int = 177; +pub const _SC_V6_LP64_OFF64: c_int = 178; +pub const _SC_V6_LPBIG_OFFBIG: c_int = 179; +pub const _SC_HOST_NAME_MAX: c_int = 180; +pub const _SC_TRACE: c_int = 181; +pub const _SC_TRACE_EVENT_FILTER: c_int = 182; +pub const _SC_TRACE_INHERIT: c_int = 183; +pub const _SC_TRACE_LOG: c_int = 184; +pub const _SC_IPV6: c_int = 235; +pub const _SC_RAW_SOCKETS: c_int = 236; +pub const _SC_V7_ILP32_OFF32: c_int = 237; +pub const _SC_V7_ILP32_OFFBIG: c_int = 238; +pub const _SC_V7_LP64_OFF64: c_int = 239; +pub const _SC_V7_LPBIG_OFFBIG: c_int = 240; +pub const _SC_SS_REPL_MAX: c_int = 241; +pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 242; +pub const _SC_TRACE_NAME_MAX: c_int = 243; +pub const _SC_TRACE_SYS_MAX: c_int = 244; +pub const _SC_TRACE_USER_EVENT_MAX: c_int = 245; +pub const _SC_XOPEN_STREAMS: c_int = 246; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 247; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 248; + extern "C" { // File operations pub fn access(pathname: *const c_char, mode: c_int) -> c_int; pub fn close(fd: c_int) -> c_int; - pub fn dup(oldfd: c_int) -> c_int; - pub fn dup2(oldfd: c_int, newfd: c_int) -> c_int; pub fn lseek(fd: c_int, offset: off_t, whence: c_int) -> off_t; pub fn read(fd: c_int, buf: *mut c_void, count: size_t) -> ssize_t; pub fn write(fd: c_int, buf: *const c_void, count: size_t) -> ssize_t; + pub fn ftruncate(fd: c_int, length: off_t) -> c_int; + pub fn unlink(pathname: *const c_char) -> c_int; + + // Directory operations + pub fn getcwd(buf: *mut c_char, size: size_t) -> *mut c_char; + pub fn rmdir(pathname: *const c_char) -> c_int; // Process operations pub fn getpid() -> pid_t; - pub fn getppid() -> pid_t; - pub fn getuid() -> uid_t; - pub fn geteuid() -> uid_t; - pub fn getgid() -> gid_t; - pub fn getegid() -> gid_t; - pub fn getpgid(pid: pid_t) -> pid_t; - pub fn getpgrp() -> pid_t; - pub fn setpgrp() -> pid_t; - pub fn seteuid(uid: uid_t) -> c_int; - pub fn setuid(uid: uid_t) -> c_int; - pub fn setpgid(pid: pid_t, pgid: pid_t) -> c_int; - pub fn setsid() -> pid_t; - - // File synchronization - pub fn fsync(fd: c_int) -> c_int; // Sleep functions pub fn sleep(seconds: c_uint) -> c_uint; - pub fn usleep(usec: useconds_t) -> c_int; // System configuration pub fn sysconf(name: c_int) -> c_long; - pub fn pathconf(path: *const c_char, name: c_int) -> c_long; - pub fn fpathconf(fd: c_int, name: c_int) -> c_long; } diff --git a/src/qurt/hexagon.rs b/src/qurt/hexagon.rs deleted file mode 100644 index bc89521c3de04..0000000000000 --- a/src/qurt/hexagon.rs +++ /dev/null @@ -1,340 +0,0 @@ -use crate::prelude::*; - -pub type wchar_t = u32; - -pub type cpu_set_t = c_uint; - -s! { - pub struct stat { - pub st_dev: crate::dev_t, - pub st_ino: crate::ino_t, - pub st_mode: crate::mode_t, - pub st_nlink: crate::nlink_t, - pub st_uid: crate::uid_t, - pub st_gid: crate::gid_t, - pub st_rdev: crate::dev_t, - pub st_size: crate::off_t, - pub st_blksize: crate::blksize_t, - pub st_blocks: crate::blkcnt_t, - pub st_atime: crate::time_t, - pub st_atime_nsec: c_long, - pub st_mtime: crate::time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: crate::time_t, - pub st_ctime_nsec: c_long, - } - - pub struct dirent { - pub d_ino: crate::ino_t, - pub d_type: c_uchar, - pub d_name: [c_char; 256], - } -} - -// File type constants for stat.st_mode -pub const S_IFMT: crate::mode_t = 0o170000; -pub const S_IFSOCK: crate::mode_t = 0o140000; -pub const S_IFLNK: crate::mode_t = 0o120000; -pub const S_IFREG: crate::mode_t = 0o100000; -pub const S_IFBLK: crate::mode_t = 0o060000; -pub const S_IFDIR: crate::mode_t = 0o040000; -pub const S_IFCHR: crate::mode_t = 0o020000; -pub const S_IFIFO: crate::mode_t = 0o010000; - -// File permission constants -pub const S_ISUID: crate::mode_t = 0o4000; -pub const S_ISGID: crate::mode_t = 0o2000; -pub const S_ISVTX: crate::mode_t = 0o1000; -pub const S_IRWXU: crate::mode_t = 0o0700; -pub const S_IRUSR: crate::mode_t = 0o0400; -pub const S_IWUSR: crate::mode_t = 0o0200; -pub const S_IXUSR: crate::mode_t = 0o0100; -pub const S_IRWXG: crate::mode_t = 0o0070; -pub const S_IRGRP: crate::mode_t = 0o0040; -pub const S_IWGRP: crate::mode_t = 0o0020; -pub const S_IXGRP: crate::mode_t = 0o0010; -pub const S_IRWXO: crate::mode_t = 0o0007; -pub const S_IROTH: crate::mode_t = 0o0004; -pub const S_IWOTH: crate::mode_t = 0o0002; -pub const S_IXOTH: crate::mode_t = 0o0001; - -// Directory entry types -pub const DT_UNKNOWN: c_uchar = 0; -pub const DT_FIFO: c_uchar = 1; -pub const DT_CHR: c_uchar = 2; -pub const DT_DIR: c_uchar = 4; -pub const DT_BLK: c_uchar = 6; -pub const DT_REG: c_uchar = 8; -pub const DT_LNK: c_uchar = 10; -pub const DT_SOCK: c_uchar = 12; - -// Size types -pub const PAGESIZE: size_t = 4096; -pub const PAGE_SIZE: size_t = 4096; - -// pathconf constants (from bits/confname.h) -pub const _PC_LINK_MAX: c_int = 0; -pub const _PC_MAX_CANON: c_int = 1; -pub const _PC_MAX_INPUT: c_int = 2; -pub const _PC_NAME_MAX: c_int = 3; -pub const _PC_PATH_MAX: c_int = 4; -pub const _PC_PIPE_BUF: c_int = 5; -pub const _PC_CHOWN_RESTRICTED: c_int = 6; -pub const _PC_NO_TRUNC: c_int = 7; -pub const _PC_VDISABLE: c_int = 8; -pub const _PC_SYNC_IO: c_int = 9; -pub const _PC_ASYNC_IO: c_int = 10; -pub const _PC_PRIO_IO: c_int = 11; -pub const _PC_SOCK_MAXBUF: c_int = 12; -pub const _PC_FILESIZEBITS: c_int = 13; -pub const _PC_REC_INCR_XFER_SIZE: c_int = 14; -pub const _PC_REC_MAX_XFER_SIZE: c_int = 15; -pub const _PC_REC_MIN_XFER_SIZE: c_int = 16; -pub const _PC_REC_XFER_ALIGN: c_int = 17; -pub const _PC_ALLOC_SIZE_MIN: c_int = 18; -pub const _PC_SYMLINK_MAX: c_int = 19; -pub const _PC_2_SYMLINKS: c_int = 20; - -// sysconf constants (from bits/confname.h) -pub const _SC_ARG_MAX: c_int = 0; -pub const _SC_CHILD_MAX: c_int = 1; -pub const _SC_CLK_TCK: c_int = 2; -pub const _SC_NGROUPS_MAX: c_int = 3; -pub const _SC_OPEN_MAX: c_int = 4; -pub const _SC_STREAM_MAX: c_int = 5; -pub const _SC_TZNAME_MAX: c_int = 6; -pub const _SC_JOB_CONTROL: c_int = 7; -pub const _SC_SAVED_IDS: c_int = 8; -pub const _SC_REALTIME_SIGNALS: c_int = 9; -pub const _SC_PRIORITY_SCHEDULING: c_int = 10; -pub const _SC_TIMERS: c_int = 11; -pub const _SC_ASYNCHRONOUS_IO: c_int = 12; -pub const _SC_PRIORITIZED_IO: c_int = 13; -pub const _SC_SYNCHRONIZED_IO: c_int = 14; -pub const _SC_FSYNC: c_int = 15; -pub const _SC_MAPPED_FILES: c_int = 16; -pub const _SC_MEMLOCK: c_int = 17; -pub const _SC_MEMLOCK_RANGE: c_int = 18; -pub const _SC_MEMORY_PROTECTION: c_int = 19; -pub const _SC_MESSAGE_PASSING: c_int = 20; -pub const _SC_SEMAPHORES: c_int = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 22; -pub const _SC_AIO_LISTIO_MAX: c_int = 23; -pub const _SC_AIO_MAX: c_int = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 25; -pub const _SC_DELAYTIMER_MAX: c_int = 26; -pub const _SC_MQ_OPEN_MAX: c_int = 27; -pub const _SC_MQ_PRIO_MAX: c_int = 28; -pub const _SC_VERSION: c_int = 29; -pub const _SC_PAGESIZE: c_int = 30; -pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; -pub const _SC_RTSIG_MAX: c_int = 31; -pub const _SC_SEM_NSEMS_MAX: c_int = 32; -pub const _SC_SEM_VALUE_MAX: c_int = 33; -pub const _SC_SIGQUEUE_MAX: c_int = 34; -pub const _SC_TIMER_MAX: c_int = 35; - -// POSIX2 sysconf options -pub const _SC_BC_BASE_MAX: c_int = 36; -pub const _SC_BC_DIM_MAX: c_int = 37; -pub const _SC_BC_SCALE_MAX: c_int = 38; -pub const _SC_BC_STRING_MAX: c_int = 39; -pub const _SC_COLL_WEIGHTS_MAX: c_int = 40; -pub const _SC_EQUIV_CLASS_MAX: c_int = 41; -pub const _SC_EXPR_NEST_MAX: c_int = 42; -pub const _SC_LINE_MAX: c_int = 43; -pub const _SC_RE_DUP_MAX: c_int = 44; -pub const _SC_CHARCLASS_NAME_MAX: c_int = 45; - -pub const _SC_2_VERSION: c_int = 46; -pub const _SC_2_C_BIND: c_int = 47; -pub const _SC_2_C_DEV: c_int = 48; -pub const _SC_2_FORT_DEV: c_int = 49; -pub const _SC_2_FORT_RUN: c_int = 50; -pub const _SC_2_SW_DEV: c_int = 51; -pub const _SC_2_LOCALEDEF: c_int = 52; - -pub const _SC_PII: c_int = 53; -pub const _SC_PII_XTI: c_int = 54; -pub const _SC_PII_SOCKET: c_int = 55; -pub const _SC_PII_INTERNET: c_int = 56; -pub const _SC_PII_OSI: c_int = 57; -pub const _SC_POLL: c_int = 58; -pub const _SC_SELECT: c_int = 59; -pub const _SC_UIO_MAXIOV: c_int = 60; -pub const _SC_IOV_MAX: c_int = _SC_UIO_MAXIOV; -pub const _SC_PII_INTERNET_STREAM: c_int = 61; -pub const _SC_PII_INTERNET_DGRAM: c_int = 62; -pub const _SC_PII_OSI_COTS: c_int = 63; -pub const _SC_PII_OSI_CLTS: c_int = 64; -pub const _SC_PII_OSI_M: c_int = 65; -pub const _SC_T_IOV_MAX: c_int = 66; - -// POSIX threads sysconf options -pub const _SC_THREADS: c_int = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 68; -pub const _SC_GETGR_R_SIZE_MAX: c_int = 69; -pub const _SC_GETPW_R_SIZE_MAX: c_int = 70; -pub const _SC_LOGIN_NAME_MAX: c_int = 71; -pub const _SC_TTY_NAME_MAX: c_int = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 73; -pub const _SC_THREAD_KEYS_MAX: c_int = 74; -pub const _SC_THREAD_STACK_MIN: c_int = 75; -pub const _SC_THREAD_THREADS_MAX: c_int = 76; -pub const _SC_THREAD_ATTR_STACKADDR: c_int = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 79; -pub const _SC_THREAD_PRIO_INHERIT: c_int = 80; -pub const _SC_THREAD_PRIO_PROTECT: c_int = 81; -pub const _SC_THREAD_PROCESS_SHARED: c_int = 82; - -pub const _SC_NPROCESSORS_CONF: c_int = 83; -pub const _SC_NPROCESSORS_ONLN: c_int = 84; -pub const _SC_PHYS_PAGES: c_int = 85; -pub const _SC_AVPHYS_PAGES: c_int = 86; -pub const _SC_ATEXIT_MAX: c_int = 87; -pub const _SC_PASS_MAX: c_int = 88; - -pub const _SC_XOPEN_VERSION: c_int = 89; -pub const _SC_XOPEN_XCU_VERSION: c_int = 90; -pub const _SC_XOPEN_UNIX: c_int = 91; -pub const _SC_XOPEN_CRYPT: c_int = 92; -pub const _SC_XOPEN_ENH_I18N: c_int = 93; -pub const _SC_XOPEN_SHM: c_int = 94; - -pub const _SC_2_CHAR_TERM: c_int = 95; -pub const _SC_2_C_VERSION: c_int = 96; -pub const _SC_2_UPE: c_int = 97; - -pub const _SC_XOPEN_XPG2: c_int = 98; -pub const _SC_XOPEN_XPG3: c_int = 99; -pub const _SC_XOPEN_XPG4: c_int = 100; - -pub const _SC_CHAR_BIT: c_int = 101; -pub const _SC_CHAR_MAX: c_int = 102; -pub const _SC_CHAR_MIN: c_int = 103; -pub const _SC_INT_MAX: c_int = 104; -pub const _SC_INT_MIN: c_int = 105; -pub const _SC_LONG_BIT: c_int = 106; -pub const _SC_WORD_BIT: c_int = 107; -pub const _SC_MB_LEN_MAX: c_int = 108; -pub const _SC_NZERO: c_int = 109; -pub const _SC_SSIZE_MAX: c_int = 110; -pub const _SC_SCHAR_MAX: c_int = 111; -pub const _SC_SCHAR_MIN: c_int = 112; -pub const _SC_SHRT_MAX: c_int = 113; -pub const _SC_SHRT_MIN: c_int = 114; -pub const _SC_UCHAR_MAX: c_int = 115; -pub const _SC_UINT_MAX: c_int = 116; -pub const _SC_ULONG_MAX: c_int = 117; -pub const _SC_USHRT_MAX: c_int = 118; - -pub const _SC_NL_ARGMAX: c_int = 119; -pub const _SC_NL_LANGMAX: c_int = 120; -pub const _SC_NL_MSGMAX: c_int = 121; -pub const _SC_NL_NMAX: c_int = 122; -pub const _SC_NL_SETMAX: c_int = 123; -pub const _SC_NL_TEXTMAX: c_int = 124; - -pub const _SC_XBS5_ILP32_OFF32: c_int = 125; -pub const _SC_XBS5_ILP32_OFFBIG: c_int = 126; -pub const _SC_XBS5_LP64_OFF64: c_int = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: c_int = 128; - -pub const _SC_XOPEN_LEGACY: c_int = 129; -pub const _SC_XOPEN_REALTIME: c_int = 130; -pub const _SC_XOPEN_REALTIME_THREADS: c_int = 131; - -pub const _SC_ADVISORY_INFO: c_int = 132; -pub const _SC_BARRIERS: c_int = 133; -pub const _SC_BASE: c_int = 134; -pub const _SC_C_LANG_SUPPORT: c_int = 135; -pub const _SC_C_LANG_SUPPORT_R: c_int = 136; -pub const _SC_CLOCK_SELECTION: c_int = 137; -pub const _SC_CPUTIME: c_int = 138; -pub const _SC_THREAD_CPUTIME: c_int = 139; -pub const _SC_DEVICE_IO: c_int = 140; -pub const _SC_DEVICE_SPECIFIC: c_int = 141; -pub const _SC_DEVICE_SPECIFIC_R: c_int = 142; -pub const _SC_FD_MGMT: c_int = 143; -pub const _SC_FIFO: c_int = 144; -pub const _SC_PIPE: c_int = 145; -pub const _SC_FILE_ATTRIBUTES: c_int = 146; -pub const _SC_FILE_LOCKING: c_int = 147; -pub const _SC_FILE_SYSTEM: c_int = 148; -pub const _SC_MONOTONIC_CLOCK: c_int = 149; -pub const _SC_MULTI_PROCESS: c_int = 150; -pub const _SC_SINGLE_PROCESS: c_int = 151; -pub const _SC_NETWORKING: c_int = 152; -pub const _SC_READER_WRITER_LOCKS: c_int = 153; -pub const _SC_SPIN_LOCKS: c_int = 154; -pub const _SC_REGEXP: c_int = 155; -pub const _SC_REGEX_VERSION: c_int = 156; -pub const _SC_SHELL: c_int = 157; -pub const _SC_SIGNALS: c_int = 158; -pub const _SC_SPAWN: c_int = 159; -pub const _SC_SPORADIC_SERVER: c_int = 160; -pub const _SC_THREAD_SPORADIC_SERVER: c_int = 161; -pub const _SC_SYSTEM_DATABASE: c_int = 162; -pub const _SC_SYSTEM_DATABASE_R: c_int = 163; -pub const _SC_TIMEOUTS: c_int = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 165; -pub const _SC_USER_GROUPS: c_int = 166; -pub const _SC_USER_GROUPS_R: c_int = 167; -pub const _SC_2_PBS: c_int = 168; -pub const _SC_2_PBS_ACCOUNTING: c_int = 169; -pub const _SC_2_PBS_LOCATE: c_int = 170; -pub const _SC_2_PBS_MESSAGE: c_int = 171; -pub const _SC_2_PBS_TRACK: c_int = 172; -pub const _SC_SYMLOOP_MAX: c_int = 173; -pub const _SC_STREAMS: c_int = 174; -pub const _SC_2_PBS_CHECKPOINT: c_int = 175; - -pub const _SC_V6_ILP32_OFF32: c_int = 176; -pub const _SC_V6_ILP32_OFFBIG: c_int = 177; -pub const _SC_V6_LP64_OFF64: c_int = 178; -pub const _SC_V6_LPBIG_OFFBIG: c_int = 179; - -pub const _SC_HOST_NAME_MAX: c_int = 180; -pub const _SC_TRACE: c_int = 181; -pub const _SC_TRACE_EVENT_FILTER: c_int = 182; -pub const _SC_TRACE_INHERIT: c_int = 183; -pub const _SC_TRACE_LOG: c_int = 184; - -pub const _SC_LEVEL1_ICACHE_SIZE: c_int = 185; -pub const _SC_LEVEL1_ICACHE_ASSOC: c_int = 186; -pub const _SC_LEVEL1_ICACHE_LINESIZE: c_int = 187; -pub const _SC_LEVEL1_DCACHE_SIZE: c_int = 188; -pub const _SC_LEVEL1_DCACHE_ASSOC: c_int = 189; -pub const _SC_LEVEL1_DCACHE_LINESIZE: c_int = 190; -pub const _SC_LEVEL2_CACHE_SIZE: c_int = 191; -pub const _SC_LEVEL2_CACHE_ASSOC: c_int = 192; -pub const _SC_LEVEL2_CACHE_LINESIZE: c_int = 193; -pub const _SC_LEVEL3_CACHE_SIZE: c_int = 194; -pub const _SC_LEVEL3_CACHE_ASSOC: c_int = 195; -pub const _SC_LEVEL3_CACHE_LINESIZE: c_int = 196; -pub const _SC_LEVEL4_CACHE_SIZE: c_int = 197; -pub const _SC_LEVEL4_CACHE_ASSOC: c_int = 198; -pub const _SC_LEVEL4_CACHE_LINESIZE: c_int = 199; - -pub const _SC_IPV6: c_int = 235; -pub const _SC_RAW_SOCKETS: c_int = 236; - -pub const _SC_V7_ILP32_OFF32: c_int = 237; -pub const _SC_V7_ILP32_OFFBIG: c_int = 238; -pub const _SC_V7_LP64_OFF64: c_int = 239; -pub const _SC_V7_LPBIG_OFFBIG: c_int = 240; - -pub const _SC_SS_REPL_MAX: c_int = 241; - -pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 242; -pub const _SC_TRACE_NAME_MAX: c_int = 243; -pub const _SC_TRACE_SYS_MAX: c_int = 244; -pub const _SC_TRACE_USER_EVENT_MAX: c_int = 245; - -pub const _SC_XOPEN_STREAMS: c_int = 246; - -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 248; - -// Note: QuRT doesn't use traditional syscalls but has its own API diff --git a/src/qurt/mod.rs b/src/qurt/mod.rs index 1ecbe172a2564..b5e01f93093db 100644 --- a/src/qurt/mod.rs +++ b/src/qurt/mod.rs @@ -1,334 +1,18 @@ //! Interface to QuRT (Qualcomm Real-Time OS) C library +//! +//! This module re-exports items from the new module structure. +//! QuRT was introduced after the `src/new/` module structure was established, +//! so all definitions live in `src/new/qurt/` and are re-exported here +//! for compatibility with the existing libc structure. -use crate::prelude::*; +// Re-export everything from the new qurt module +pub use crate::new::qurt::*; -// Forward declarations for opaque types -#[derive(Debug)] -pub enum DIR {} -impl Copy for DIR {} -impl Clone for DIR { - fn clone(&self) -> DIR { - *self - } -} - -// Network types -pub type socklen_t = c_uint; -pub type in_addr_t = u32; - -// Error type -pub type errno_t = c_int; - -// Resource limit type -pub type rlim_t = c_ulong; - -// Terminal types -pub type speed_t = c_uint; -pub type tcflag_t = c_uint; - -// File descriptor set type for select() -pub type fd_set = c_ulong; - -// POSIX semaphore types -pub type sem_t = c_uint; - -// Message queue types -pub type mqd_t = c_int; - -// Additional file system types -pub type nfds_t = c_ulong; - -// Architecture-specific modules +// Architecture-specific modules (if any are needed in the future) cfg_if! { if #[cfg(target_arch = "hexagon")] { - mod hexagon; - pub use self::hexagon::*; + // Currently no hexagon-specific items needed beyond what's in new/qurt } else { // Add other architectures as needed } } - -// Structures based on QuRT headers -s! { - pub struct sigval { - pub sival_int: c_int, - pub sival_ptr: *mut c_void, - } - - pub struct sigevent { - pub sigev_notify: c_int, - pub sigev_signo: c_int, - pub sigev_value: sigval, - pub sigev_notify_function: Option, - pub sigev_notify_attributes: *mut pthread_attr_t, - } - - pub struct siginfo_t { - pub si_signo: c_int, - pub si_code: c_int, - pub si_value: sigval, - } - - pub struct sigaction { - pub sa_handler: Option, - pub sa_mask: sigset_t, - pub sa_flags: c_int, - pub sa_sigaction: Option, - } - - pub struct termios { - pub c_iflag: tcflag_t, - pub c_oflag: tcflag_t, - pub c_cflag: tcflag_t, - pub c_lflag: tcflag_t, - pub c_cc: [c_uchar; 32], - pub c_ispeed: speed_t, - pub c_ospeed: speed_t, - } - - pub struct dirent { - pub d_ino: ino_t, - pub d_type: c_uchar, - pub d_name: [c_char; 256], - } - - pub struct tm { - pub tm_sec: c_int, - pub tm_min: c_int, - pub tm_hour: c_int, - pub tm_mday: c_int, - pub tm_mon: c_int, - pub tm_year: c_int, - pub tm_wday: c_int, - pub tm_yday: c_int, - pub tm_isdst: c_int, - } - - pub struct sched_param { - pub sched_priority: c_int, - } - - pub struct iovec { - pub iov_base: *mut c_void, - pub iov_len: size_t, - } - - pub struct rlimit { - pub rlim_cur: rlim_t, - pub rlim_max: rlim_t, - } - - pub struct rusage { - pub ru_utime: timeval, - pub ru_stime: timeval, - pub ru_maxrss: c_long, - pub ru_ixrss: c_long, - pub ru_idrss: c_long, - pub ru_isrss: c_long, - pub ru_minflt: c_long, - pub ru_majflt: c_long, - pub ru_nswap: c_long, - pub ru_inblock: c_long, - pub ru_oublock: c_long, - pub ru_msgsnd: c_long, - pub ru_msgrcv: c_long, - pub ru_nsignals: c_long, - pub ru_nvcsw: c_long, - pub ru_nivcsw: c_long, - } - - pub struct flock { - pub l_type: c_short, - pub l_whence: c_short, - pub l_start: off_t, - pub l_len: off_t, - pub l_pid: pid_t, - } -} - -// Memory mapping constants (from sys/mman.h) -pub const PROT_NONE: c_int = 0x00; -pub const PROT_READ: c_int = 0x01; -pub const PROT_WRITE: c_int = 0x02; -pub const PROT_EXEC: c_int = 0x04; - -pub const MAP_SHARED: c_int = 0x0001; -pub const MAP_PRIVATE: c_int = 0x0002; -pub const MAP_FIXED: c_int = 0x0010; -pub const MAP_ANON: c_int = 0x1000; -pub const MAP_ANONYMOUS: c_int = MAP_ANON; -pub const MAP_FILE: c_int = 0x0000; -pub const MAP_RENAME: c_int = 0x0020; -pub const MAP_NORESERVE: c_int = 0x0040; -pub const MAP_INHERIT: c_int = 0x0080; -pub const MAP_HASSEMAPHORE: c_int = 0x0200; -pub const MAP_TRYFIXED: c_int = 0x0400; -pub const MAP_WIRED: c_int = 0x0800; - -pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; - -pub const MS_ASYNC: c_int = 0x01; -pub const MS_INVALIDATE: c_int = 0x02; -pub const MS_SYNC: c_int = 0x04; - -pub const MCL_CURRENT: c_int = 0x01; -pub const MCL_FUTURE: c_int = 0x02; - -// Dynamic linking constants (from dlfcn.h) -pub const RTLD_LAZY: c_int = 1; -pub const RTLD_NOW: c_int = 2; -pub const RTLD_GLOBAL: c_int = 0x100; -pub const RTLD_LOCAL: c_int = 0x200; - -// Semaphore constants -pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; - -// Additional constants -pub const PTHREAD_NAME_LEN: c_int = 16; -pub const PTHREAD_MAX_THREADS: c_uint = 512; -pub const PTHREAD_MIN_STACKSIZE: c_int = 512; -pub const PTHREAD_MAX_STACKSIZE: c_int = 1048576; -pub const PTHREAD_DEFAULT_STACKSIZE: c_int = 16384; -pub const PTHREAD_DEFAULT_PRIORITY: c_int = 1; -pub const PTHREAD_SPINLOCK_UNLOCKED: c_int = 0; -pub const PTHREAD_SPINLOCK_LOCKED: c_int = 1; -pub const TIME_CONV_SCLK_FREQ: c_int = 19200000; -pub const CLOCK_MONOTONIC_RAW: clockid_t = 4; -pub const CLOCK_REALTIME_COARSE: clockid_t = 5; -pub const CLOCK_MONOTONIC_COARSE: clockid_t = 6; -pub const CLOCK_BOOTTIME: clockid_t = 7; -pub const L_tmpnam: c_uint = 260; -pub const TMP_MAX: c_uint = 25; -pub const FOPEN_MAX: c_uint = 20; -pub const AT_FDCWD: c_int = -100; -pub const AT_EACCESS: c_int = 0x200; -pub const AT_SYMLINK_NOFOLLOW: c_int = 0x100; -pub const AT_SYMLINK_FOLLOW: c_int = 0x400; -pub const AT_REMOVEDIR: c_int = 0x200; -pub const EOK: c_int = 0; -pub const POSIX_MSG: c_int = 7; -pub const POSIX_NOTIF: c_int = 8; -pub const SIGRTMIN: c_int = 10; -pub const SIGRTMAX: c_int = 32; -pub const SIGEV_NONE: c_int = 0; -pub const SIGEV_SIGNAL: c_int = 1; -pub const SIGEV_THREAD: c_int = 2; -pub const SA_SIGINFO: c_int = 1; - -// Function declarations for QuRT POSIX API -extern "C" { - // Signal functions - pub fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int; - pub fn _sigaction(sig: c_int, act: *const sigaction, oact: *mut sigaction) -> c_int; - pub fn sigtimedwait( - set: *const sigset_t, - info: *mut siginfo_t, - timeout: *const timespec, - ) -> c_int; - - // Additional pthread functions - pub fn pthread_attr_getstack( - attr: *const pthread_attr_t, - stackaddr: *mut *mut c_void, - stacksize: *mut size_t, - ) -> c_int; - pub fn pthread_attr_setstack( - attr: *mut pthread_attr_t, - stackaddr: *mut c_void, - stacksize: size_t, - ) -> c_int; - pub fn pthread_mutexattr_gettype(attr: *const pthread_mutexattr_t, type_: *mut c_int) -> c_int; - pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, type_: c_int) -> c_int; - - // Additional time functions - pub fn clock_getcpuclockid(pid: pid_t, clock_id: *mut clockid_t) -> c_int; - - // POSIX semaphore functions - pub fn sem_open(name: *const c_char, oflag: c_int, ...) -> *mut sem_t; - pub fn sem_close(sem: *mut sem_t) -> c_int; - pub fn sem_unlink(name: *const c_char) -> c_int; - - // Additional stdlib functions - pub fn aligned_alloc(alignment: size_t, size: size_t) -> *mut c_void; - - // String functions - pub fn strlen(s: *const c_char) -> size_t; - pub fn strcpy(dest: *mut c_char, src: *const c_char) -> *mut c_char; - pub fn strncpy(dest: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; - pub fn strcat(dest: *mut c_char, src: *const c_char) -> *mut c_char; - pub fn strncat(dest: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; - pub fn strcmp(s1: *const c_char, s2: *const c_char) -> c_int; - pub fn strncmp(s1: *const c_char, s2: *const c_char, n: size_t) -> c_int; - pub fn strcoll(s1: *const c_char, s2: *const c_char) -> c_int; - pub fn strxfrm(dest: *mut c_char, src: *const c_char, n: size_t) -> size_t; - pub fn strchr(s: *const c_char, c: c_int) -> *mut c_char; - pub fn strrchr(s: *const c_char, c: c_int) -> *mut c_char; - pub fn strspn(s: *const c_char, accept: *const c_char) -> size_t; - pub fn strcspn(s: *const c_char, reject: *const c_char) -> size_t; - pub fn strpbrk(s: *const c_char, accept: *const c_char) -> *mut c_char; - pub fn strstr(haystack: *const c_char, needle: *const c_char) -> *mut c_char; - pub fn strtok(s: *mut c_char, delim: *const c_char) -> *mut c_char; - pub fn strerror(errnum: c_int) -> *mut c_char; - pub fn memchr(s: *const c_void, c: c_int, n: size_t) -> *mut c_void; - pub fn memcmp(s1: *const c_void, s2: *const c_void, n: size_t) -> c_int; - pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; - pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; - pub fn memset(s: *mut c_void, c: c_int, n: size_t) -> *mut c_void; - - // Additional unistd functions - pub fn fork() -> pid_t; - pub fn execve( - filename: *const c_char, - argv: *const *const c_char, - envp: *const *const c_char, - ) -> c_int; - - // Directory functions - pub fn opendir(name: *const c_char) -> *mut DIR; - pub fn closedir(dirp: *mut DIR) -> c_int; - pub fn readdir(dirp: *mut DIR) -> *mut dirent; - pub fn rewinddir(dirp: *mut DIR); - pub fn telldir(dirp: *mut DIR) -> c_long; - pub fn seekdir(dirp: *mut DIR, loc: c_long); - - // Memory mapping functions - pub fn mmap( - addr: *mut c_void, - len: size_t, - prot: c_int, - flags: c_int, - fd: c_int, - offset: off_t, - ) -> *mut c_void; - pub fn munmap(addr: *mut c_void, len: size_t) -> c_int; - pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int; - pub fn mlock(addr: *const c_void, len: size_t) -> c_int; - pub fn munlock(addr: *const c_void, len: size_t) -> c_int; - pub fn mlockall(flags: c_int) -> c_int; - pub fn munlockall() -> c_int; - pub fn msync(addr: *mut c_void, len: size_t, flags: c_int) -> c_int; - - // Dynamic linking functions - pub fn dlopen(filename: *const c_char, flag: c_int) -> *mut c_void; - pub fn dlclose(handle: *mut c_void) -> c_int; - pub fn dlsym(handle: *mut c_void, symbol: *const c_char) -> *mut c_void; - pub fn dlerror() -> *mut c_char; - - // Character classification functions - pub fn isalnum(c: c_int) -> c_int; - pub fn isalpha(c: c_int) -> c_int; - pub fn iscntrl(c: c_int) -> c_int; - pub fn isdigit(c: c_int) -> c_int; - pub fn isgraph(c: c_int) -> c_int; - pub fn islower(c: c_int) -> c_int; - pub fn isprint(c: c_int) -> c_int; - pub fn ispunct(c: c_int) -> c_int; - pub fn isspace(c: c_int) -> c_int; - pub fn isupper(c: c_int) -> c_int; - pub fn isxdigit(c: c_int) -> c_int; - pub fn tolower(c: c_int) -> c_int; - pub fn toupper(c: c_int) -> c_int; -} - -// Re-export common prelude items -pub use crate::*; From dbd2cc1cf94d12ecf955576c8ac183d915222059 Mon Sep 17 00:00:00 2001 From: "Marco C." <46560192+Marcondiro@users.noreply.github.com> Date: Wed, 21 Jan 2026 17:27:48 +0100 Subject: [PATCH 1127/1228] Add PTRACE_SET_SYSCALL_INFO constant (backport ) (cherry picked from commit 0403150379d66216e90a0f8a804ae1ca33691067) --- libc-test/build.rs | 3 +++ libc-test/semver/linux-gnu.txt | 1 + src/unix/linux_like/linux/gnu/mod.rs | 1 + 3 files changed, 5 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 96f561a191f42..81845f5aa604e 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4647,6 +4647,9 @@ fn test_linux(target: &str) { // Linux 6.14 "AT_EXECVE_CHECK" => true, + // FIXME(linux): Requires >= 6.16 kernel headers. + "PTRACE_SET_SYSCALL_INFO" => true, + _ => false, } }); diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index a28ac82250fb6..0dfc20cf9a628 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -348,6 +348,7 @@ PR_SET_VMA_ANON_NAME PTHREAD_MUTEX_ADAPTIVE_NP PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG +PTRACE_SET_SYSCALL_INFO PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG PTRACE_SYSCALL_INFO_ENTRY PTRACE_SYSCALL_INFO_EXIT diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 5fa2fdf591dda..c214beb3635ed 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -747,6 +747,7 @@ pub const PTRACE_PEEKSIGINFO: c_uint = 0x4209; pub const PTRACE_GETSIGMASK: c_uint = 0x420a; pub const PTRACE_SETSIGMASK: c_uint = 0x420b; pub const PTRACE_GET_SYSCALL_INFO: c_uint = 0x420e; +pub const PTRACE_SET_SYSCALL_INFO: c_uint = 0x4212; pub const PTRACE_SYSCALL_INFO_NONE: crate::__u8 = 0; pub const PTRACE_SYSCALL_INFO_ENTRY: crate::__u8 = 1; pub const PTRACE_SYSCALL_INFO_EXIT: crate::__u8 = 2; From 44c0b49c5177f6e74a121225761205fa609606a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Mon, 26 Jan 2026 17:31:08 +0100 Subject: [PATCH 1128/1228] types: Fix wording of Padding::uninit() comment I guess I may wanted to say two different things and then I mixed the words in the resulting comment. Fix the text to make it actually have a meaning (backport ) (cherry picked from commit 92c51f3b37db83cf40cbe04cdaacb46ac39c6334) --- src/types.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/types.rs b/src/types.rs index 2d6e83f67fcde..c2873ddbf4f1b 100644 --- a/src/types.rs +++ b/src/types.rs @@ -28,8 +28,8 @@ impl Padding { // when we depend on rustc 1.75.0. #[allow(unused)] pub(crate) const fn uninit() -> Self { - // We can still safely use uninit here, since padding are is something - // that can are not meant to be read or written anyways. + // We can still safely use uninit here, since padding is something + // that is not meant to be read or written anyways. Self(MaybeUninit::uninit()) } } From 3ec0ad917e827c73dc3f36695ebd3203833f3d7a Mon Sep 17 00:00:00 2001 From: Anhad Singh Date: Tue, 27 Jan 2026 19:39:42 +1100 Subject: [PATCH 1129/1228] fix(redox): incorrect values for `PTHREAD_MUTEX_{NORMAL, RECURSIVE}` See https://gitlab.redox-os.org/redox-os/relibc/-/blob/5cadc9ebbd36f5294e08f67233928e5ad6f05670/src/header/pthread/mod.rs#L60 Signed-off-by: Anhad Singh (backport ) (cherry picked from commit 3482c8046a10c57391cbf0813916378dc130b293) --- libc-test/semver/redox.txt | 4 ++++ src/unix/redox/mod.rs | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/libc-test/semver/redox.txt b/libc-test/semver/redox.txt index e993475f20b4b..73a36244c09ca 100644 --- a/libc-test/semver/redox.txt +++ b/libc-test/semver/redox.txt @@ -137,6 +137,10 @@ O_NOCTTY O_PATH O_SHLOCK O_SYMLINK +PTHREAD_MUTEX_DEFAULT +PTHREAD_MUTEX_ERRORCHECK +PTHREAD_MUTEX_ROBUST +PTHREAD_MUTEX_STALLED PTHREAD_STACK_MIN RLIMIT_AS RLIMIT_CORE diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 9768cbe9e50ef..69566e398dc3f 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -609,8 +609,14 @@ pub const POLLWRNORM: c_short = 0x100; pub const POLLWRBAND: c_short = 0x200; // pthread.h -pub const PTHREAD_MUTEX_NORMAL: c_int = 0; -pub const PTHREAD_MUTEX_RECURSIVE: c_int = 1; +pub const PTHREAD_MUTEX_DEFAULT: c_int = 0; +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 1; +pub const PTHREAD_MUTEX_NORMAL: c_int = 2; +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 3; + +pub const PTHREAD_MUTEX_ROBUST: c_int = 0; +pub const PTHREAD_MUTEX_STALLED: c_int = 1; + pub const PTHREAD_MUTEX_INITIALIZER: crate::pthread_mutex_t = crate::pthread_mutex_t { bytes: [0; _PTHREAD_MUTEX_SIZE], }; From f35a15bf20006099320b23d4b0818e3dd7338dc0 Mon Sep 17 00:00:00 2001 From: Hashem Hashem Date: Tue, 27 Jan 2026 15:29:50 +0100 Subject: [PATCH 1130/1228] linux: add CAN error types Port libc "error.h" file for SocketCAN subsystem and expose through can.rs. (backport ) (cherry picked from commit c6ba84bd05e671c4680d464e9e7a6e3430f7c2d9) --- libc-test/build.rs | 1 + libc-test/semver/linux.txt | 62 +++++++++++++++++++++++ src/new/linux_uapi/linux/can.rs | 1 + src/new/linux_uapi/linux/can/error.rs | 73 +++++++++++++++++++++++++++ src/new/mod.rs | 1 + 5 files changed, 138 insertions(+) create mode 100644 src/new/linux_uapi/linux/can/error.rs diff --git a/libc-test/build.rs b/libc-test/build.rs index 81845f5aa604e..cf4c76054135e 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4005,6 +4005,7 @@ fn test_linux(target: &str) { (gnu, "linux/aio_abi.h"), "linux/can.h", "linux/can/bcm.h", + "linux/can/error.h", "linux/can/raw.h", "linux/can/j1939.h", "linux/cn_proc.h", diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 25a3a593f44e8..ebe192192dfd5 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -230,11 +230,73 @@ CANXL_PRIO_MASK CANXL_SEC CANXL_XLF CAN_BCM +CAN_BUS_OFF_THRESHOLD CAN_EFF_FLAG CAN_EFF_ID_BITS CAN_EFF_MASK +CAN_ERROR_PASSIVE_THRESHOLD +CAN_ERROR_WARNING_THRESHOLD +CAN_ERR_ACK +CAN_ERR_BUSERROR +CAN_ERR_BUSOFF +CAN_ERR_CNT +CAN_ERR_CRTL +CAN_ERR_CRTL_ACTIVE +CAN_ERR_CRTL_RX_OVERFLOW +CAN_ERR_CRTL_RX_PASSIVE +CAN_ERR_CRTL_RX_WARNING +CAN_ERR_CRTL_TX_OVERFLOW +CAN_ERR_CRTL_TX_PASSIVE +CAN_ERR_CRTL_TX_WARNING +CAN_ERR_CRTL_UNSPEC +CAN_ERR_DLC CAN_ERR_FLAG +CAN_ERR_LOSTARB +CAN_ERR_LOSTARB_UNSPEC CAN_ERR_MASK +CAN_ERR_PROT +CAN_ERR_PROT_ACTIVE +CAN_ERR_PROT_BIT +CAN_ERR_PROT_BIT0 +CAN_ERR_PROT_BIT1 +CAN_ERR_PROT_FORM +CAN_ERR_PROT_LOC_ACK +CAN_ERR_PROT_LOC_ACK_DEL +CAN_ERR_PROT_LOC_CRC_DEL +CAN_ERR_PROT_LOC_CRC_SEQ +CAN_ERR_PROT_LOC_DATA +CAN_ERR_PROT_LOC_DLC +CAN_ERR_PROT_LOC_EOF +CAN_ERR_PROT_LOC_ID04_00 +CAN_ERR_PROT_LOC_ID12_05 +CAN_ERR_PROT_LOC_ID17_13 +CAN_ERR_PROT_LOC_ID20_18 +CAN_ERR_PROT_LOC_ID28_21 +CAN_ERR_PROT_LOC_IDE +CAN_ERR_PROT_LOC_INTERM +CAN_ERR_PROT_LOC_RES0 +CAN_ERR_PROT_LOC_RES1 +CAN_ERR_PROT_LOC_RTR +CAN_ERR_PROT_LOC_SOF +CAN_ERR_PROT_LOC_SRTR +CAN_ERR_PROT_LOC_UNSPEC +CAN_ERR_PROT_OVERLOAD +CAN_ERR_PROT_STUFF +CAN_ERR_PROT_TX +CAN_ERR_PROT_UNSPEC +CAN_ERR_RESTARTED +CAN_ERR_TRX +CAN_ERR_TRX_CANH_NO_WIRE +CAN_ERR_TRX_CANH_SHORT_TO_BAT +CAN_ERR_TRX_CANH_SHORT_TO_GND +CAN_ERR_TRX_CANH_SHORT_TO_VCC +CAN_ERR_TRX_CANL_NO_WIRE +CAN_ERR_TRX_CANL_SHORT_TO_BAT +CAN_ERR_TRX_CANL_SHORT_TO_CANH +CAN_ERR_TRX_CANL_SHORT_TO_GND +CAN_ERR_TRX_CANL_SHORT_TO_VCC +CAN_ERR_TRX_UNSPEC +CAN_ERR_TX_TIMEOUT CAN_FD_FRAME CAN_INV_FILTER CAN_ISOTP diff --git a/src/new/linux_uapi/linux/can.rs b/src/new/linux_uapi/linux/can.rs index 8019124749c1e..54148976e6254 100644 --- a/src/new/linux_uapi/linux/can.rs +++ b/src/new/linux_uapi/linux/can.rs @@ -1,6 +1,7 @@ //! Header: `uapi/linux/can.h` pub(crate) mod bcm; +pub(crate) mod error; pub(crate) mod j1939; pub(crate) mod raw; diff --git a/src/new/linux_uapi/linux/can/error.rs b/src/new/linux_uapi/linux/can/error.rs new file mode 100644 index 0000000000000..1b298ca40eca0 --- /dev/null +++ b/src/new/linux_uapi/linux/can/error.rs @@ -0,0 +1,73 @@ +//! Header: `linux/can/error.h` + +pub use crate::linux::can::*; + +pub const CAN_ERR_DLC: c_int = 8; + +pub const CAN_ERR_TX_TIMEOUT: c_uint = 0x00000001; +pub const CAN_ERR_LOSTARB: c_uint = 0x00000002; +pub const CAN_ERR_CRTL: c_uint = 0x00000004; +pub const CAN_ERR_PROT: c_uint = 0x00000008; +pub const CAN_ERR_TRX: c_uint = 0x00000010; +pub const CAN_ERR_ACK: c_uint = 0x00000020; +pub const CAN_ERR_BUSOFF: c_uint = 0x00000040; +pub const CAN_ERR_BUSERROR: c_uint = 0x00000080; +pub const CAN_ERR_RESTARTED: c_uint = 0x00000100; +pub const CAN_ERR_CNT: c_uint = 0x00000200; + +pub const CAN_ERR_LOSTARB_UNSPEC: c_int = 0x00; + +pub const CAN_ERR_CRTL_UNSPEC: c_int = 0x00; +pub const CAN_ERR_CRTL_RX_OVERFLOW: c_int = 0x01; +pub const CAN_ERR_CRTL_TX_OVERFLOW: c_int = 0x02; +pub const CAN_ERR_CRTL_RX_WARNING: c_int = 0x04; +pub const CAN_ERR_CRTL_TX_WARNING: c_int = 0x08; +pub const CAN_ERR_CRTL_RX_PASSIVE: c_int = 0x10; +pub const CAN_ERR_CRTL_TX_PASSIVE: c_int = 0x20; +pub const CAN_ERR_CRTL_ACTIVE: c_int = 0x40; + +pub const CAN_ERR_PROT_UNSPEC: c_int = 0x00; +pub const CAN_ERR_PROT_BIT: c_int = 0x01; +pub const CAN_ERR_PROT_FORM: c_int = 0x02; +pub const CAN_ERR_PROT_STUFF: c_int = 0x04; +pub const CAN_ERR_PROT_BIT0: c_int = 0x08; +pub const CAN_ERR_PROT_BIT1: c_int = 0x10; +pub const CAN_ERR_PROT_OVERLOAD: c_int = 0x20; +pub const CAN_ERR_PROT_ACTIVE: c_int = 0x40; +pub const CAN_ERR_PROT_TX: c_int = 0x80; + +pub const CAN_ERR_PROT_LOC_UNSPEC: c_int = 0x00; +pub const CAN_ERR_PROT_LOC_SOF: c_int = 0x03; +pub const CAN_ERR_PROT_LOC_ID28_21: c_int = 0x02; +pub const CAN_ERR_PROT_LOC_ID20_18: c_int = 0x06; +pub const CAN_ERR_PROT_LOC_SRTR: c_int = 0x04; +pub const CAN_ERR_PROT_LOC_IDE: c_int = 0x05; +pub const CAN_ERR_PROT_LOC_ID17_13: c_int = 0x07; +pub const CAN_ERR_PROT_LOC_ID12_05: c_int = 0x0F; +pub const CAN_ERR_PROT_LOC_ID04_00: c_int = 0x0E; +pub const CAN_ERR_PROT_LOC_RTR: c_int = 0x0C; +pub const CAN_ERR_PROT_LOC_RES1: c_int = 0x0D; +pub const CAN_ERR_PROT_LOC_RES0: c_int = 0x09; +pub const CAN_ERR_PROT_LOC_DLC: c_int = 0x0B; +pub const CAN_ERR_PROT_LOC_DATA: c_int = 0x0A; +pub const CAN_ERR_PROT_LOC_CRC_SEQ: c_int = 0x08; +pub const CAN_ERR_PROT_LOC_CRC_DEL: c_int = 0x18; +pub const CAN_ERR_PROT_LOC_ACK: c_int = 0x19; +pub const CAN_ERR_PROT_LOC_ACK_DEL: c_int = 0x1B; +pub const CAN_ERR_PROT_LOC_EOF: c_int = 0x1A; +pub const CAN_ERR_PROT_LOC_INTERM: c_int = 0x12; + +pub const CAN_ERR_TRX_UNSPEC: c_int = 0x00; +pub const CAN_ERR_TRX_CANH_NO_WIRE: c_int = 0x04; +pub const CAN_ERR_TRX_CANH_SHORT_TO_BAT: c_int = 0x05; +pub const CAN_ERR_TRX_CANH_SHORT_TO_VCC: c_int = 0x06; +pub const CAN_ERR_TRX_CANH_SHORT_TO_GND: c_int = 0x07; +pub const CAN_ERR_TRX_CANL_NO_WIRE: c_int = 0x40; +pub const CAN_ERR_TRX_CANL_SHORT_TO_BAT: c_int = 0x50; +pub const CAN_ERR_TRX_CANL_SHORT_TO_VCC: c_int = 0x60; +pub const CAN_ERR_TRX_CANL_SHORT_TO_GND: c_int = 0x70; +pub const CAN_ERR_TRX_CANL_SHORT_TO_CANH: c_int = 0x80; + +pub const CAN_ERROR_WARNING_THRESHOLD: c_int = 96; +pub const CAN_ERROR_PASSIVE_THRESHOLD: c_int = 128; +pub const CAN_BUS_OFF_THRESHOLD: c_int = 256; diff --git a/src/new/mod.rs b/src/new/mod.rs index 078200ae6258c..8b1fdc2317436 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -177,6 +177,7 @@ cfg_if! { pub use sys::socket::*; } else if #[cfg(target_os = "linux")] { pub use linux::can::bcm::*; + pub use linux::can::error::*; pub use linux::can::j1939::*; pub use linux::can::raw::*; pub use linux::can::*; From 093d72f70ee8d809b74f063b43fe305663c9d187 Mon Sep 17 00:00:00 2001 From: Thomas de Zeeuw Date: Tue, 27 Jan 2026 19:25:19 +0100 Subject: [PATCH 1131/1228] Add more kqueue related constants for OpenBSD (backport ) (cherry picked from commit 506d591dd2a45a2dc4b08a37129217b3181831eb) --- libc-test/semver/openbsd.txt | 8 ++++++++ src/unix/bsd/netbsdlike/openbsd/mod.rs | 9 ++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/libc-test/semver/openbsd.txt b/libc-test/semver/openbsd.txt index 412ba5a4bd481..42bd6ac722790 100644 --- a/libc-test/semver/openbsd.txt +++ b/libc-test/semver/openbsd.txt @@ -187,6 +187,7 @@ EVFILT_PROC EVFILT_READ EVFILT_SIGNAL EVFILT_TIMER +EVFILT_USER EVFILT_VNODE EVFILT_WRITE EV_ADD @@ -608,6 +609,12 @@ NOTE_EOF NOTE_EXEC NOTE_EXIT NOTE_EXTEND +NOTE_FFAND +NOTE_FFCOPY +NOTE_FFCTRLMASK +NOTE_FFLAGSMASK +NOTE_FFNOP +NOTE_FFOR NOTE_FORK NOTE_LINK NOTE_LOWAT @@ -618,6 +625,7 @@ NOTE_RENAME NOTE_REVOKE NOTE_TRACK NOTE_TRACKERR +NOTE_TRIGGER NOTE_TRUNCATE NOTE_WRITE NTFS_MFLAG_ALLNAMES diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 92a59b53a6a60..14003a7bcb06c 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1170,7 +1170,7 @@ pub const EVFILT_SIGNAL: i16 = -6; pub const EVFILT_TIMER: i16 = -7; pub const EVFILT_DEVICE: i16 = -8; pub const EVFILT_EXCEPT: i16 = -9; - +pub const EVFILT_USER: i16 = -10; pub const EV_ADD: u16 = 0x1; pub const EV_DELETE: u16 = 0x2; pub const EV_ENABLE: u16 = 0x4; @@ -1186,6 +1186,13 @@ pub const EV_EOF: u16 = 0x8000; #[deprecated(since = "0.2.113", note = "Not stable across OS versions")] pub const EV_SYSFLAGS: u16 = 0xf800; +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_EOF: u32 = 0x00000002; pub const NOTE_OOB: u32 = 0x00000004; From 39c94e08655d27a631cb77f6307237b1e19c2266 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Wed, 28 Jan 2026 17:14:05 +0900 Subject: [PATCH 1132/1228] fix(ci): update aports Git repo URL (backport ) (cherry picked from commit 6ec397f84f3f8ab26139b538fbaf796bf0bc9ae9) --- ci/install-musl.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/install-musl.sh b/ci/install-musl.sh index b71e4f6139559..a4e4dea716064 100755 --- a/ci/install-musl.sh +++ b/ci/install-musl.sh @@ -101,7 +101,7 @@ rm -rf "$musl" # Alpine follows stable kernel releases, 3.20 uses Linux 6.6 headers. alpine_version=3.20 -alpine_git=https://gitlab.alpinelinux.org/alpine/aports +alpine_git=https://git.alpinelinux.org/aports # This routine piggybacks on: https://git.alpinelinux.org/aports/tree/main/linux-headers?h=3.20-stable git clone -n --depth=1 --filter=tree:0 -b "${alpine_version}-stable" "$alpine_git" From 93989eac82f1606ecef4ed03ec52815292713d36 Mon Sep 17 00:00:00 2001 From: Thomas de Zeeuw Date: Tue, 27 Jan 2026 19:39:15 +0100 Subject: [PATCH 1133/1228] Add siginfo_t::si_status (backport ) (cherry picked from commit 150f1a95603523c05e32ee5045c7ce04e00c0fae) --- src/unix/bsd/netbsdlike/openbsd/mod.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 14003a7bcb06c..0e217c9d35380 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -765,6 +765,23 @@ impl siginfo_t { } (*(self as *const siginfo_t).cast::()).value } + + pub unsafe fn si_status(&self) -> c_int { + #[repr(C)] + struct siginfo_proc { + _si_signo: c_int, + _si_errno: c_int, + _si_code: c_int, + #[cfg(target_pointer_width = "64")] + __pad1: Padding, + _pid: crate::pid_t, + _uid: crate::uid_t, + _utime: crate::clock_t, + _stime: crate::clock_t, + _status: crate::c_int, + } + (*(self as *const siginfo_t as *const siginfo_proc))._status + } } s_no_extra_traits! { From 5d247891fa66595f71d5291f5f02d1ab8482ce03 Mon Sep 17 00:00:00 2001 From: Thomas de Zeeuw Date: Wed, 28 Jan 2026 00:06:43 +0100 Subject: [PATCH 1134/1228] Fix fields (backport ) (cherry picked from commit 3749159f5b5728b53d82a2ed7b4d25d0ac23f98c) --- src/unix/bsd/netbsdlike/openbsd/mod.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 0e217c9d35380..3b8e8669d02cf 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -770,10 +770,9 @@ impl siginfo_t { #[repr(C)] struct siginfo_proc { _si_signo: c_int, - _si_errno: c_int, _si_code: c_int, - #[cfg(target_pointer_width = "64")] - __pad1: Padding, + _si_errno: c_int, + _pad: Padding<[c_int; SI_PAD]>, _pid: crate::pid_t, _uid: crate::uid_t, _utime: crate::clock_t, From 64fac175724fa4477f672dffca5d855fab2bdd98 Mon Sep 17 00:00:00 2001 From: Markus Hosch Date: Wed, 14 Jan 2026 16:15:44 +0100 Subject: [PATCH 1135/1228] Add a definition of max_align_t to nto The definition of this type is a bit tricky for nto for multiple reasons: * The C definition is different from the C++ definition in some versions of the QNX SDK. * It uses long double, which does not exist inside libc. * The definition on C uses alignment modifiers per field, which aren't supported in Rust. However, since they just reuse the field type, they're actually redundant so that we can safely skip them. (backport ) (cherry picked from commit 64f2ae4ff359e748d2273d91915301e204357849) --- src/unix/nto/mod.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 44ec4eba94daf..022fb0be1f786 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -795,6 +795,23 @@ s_no_extra_traits! { pub __owner: c_uint, pub __spare: c_uint, } + + // There is no canonical definition of c_longdouble in Rust. For both AArch64 and x86_64, + // however, the size and alignment properties are that of the gcc __int128 which corresponds (at + // least on rustc 1.78+ with LLVM 18, see + // https://blog.rust-lang.org/2024/03/30/i128-layout-update/) to i128. Use this instead until we + // get native f128 support. + // + // The definition was taken from the definition of the _Maxalignt struct in the QNX SDK. + // However, on QNX7, there is a different definition of std::max_align_t (the C++ version of + // this type). In practice, this doesn't make a difference for the _alignment_ properties of the + // type - however, it changes the size, so using in in any other form than the zero-sized array + // form would be bogus and it would potentially change the size of the data type. On QNX8, this + // got fixed and both C and C++ are using the same definition. + pub struct max_align_t { + _ll: crate::c_longlong, + _ld: i128, + } } pub const _SYSNAME_SIZE: usize = 256 + 1; From a6e10e219da484c38c8e726f1313d1a13b22ae58 Mon Sep 17 00:00:00 2001 From: Sebastien Marie Date: Tue, 27 Jan 2026 20:16:40 +0100 Subject: [PATCH 1136/1228] fix struct ptrace_thread_state on OpenBSD (backport ) (cherry picked from commit 212b9c98a0f24261bfb84be7e45314f2d06103eb) --- src/unix/bsd/netbsdlike/openbsd/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 3b8e8669d02cf..0500209043016 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -535,6 +535,7 @@ s! { pub struct ptrace_thread_state { pub pts_tid: crate::pid_t, + pub pts_name: [c_char; PT_PTS_NAMELEN as usize], } // search.h @@ -1522,6 +1523,8 @@ pub const PT_GET_THREAD_FIRST: c_int = 15; pub const PT_GET_THREAD_NEXT: c_int = 16; pub const PT_FIRSTMACH: c_int = 32; +pub const PT_PTS_NAMELEN: c_int = 32; + pub const SOCK_CLOEXEC: c_int = 0x8000; pub const SOCK_NONBLOCK: c_int = 0x4000; pub const SOCK_DNS: c_int = 0x1000; From 6f107ec4976e478bfce158f374322016ff300eae Mon Sep 17 00:00:00 2001 From: Sebastien Marie Date: Tue, 27 Jan 2026 20:09:27 +0100 Subject: [PATCH 1137/1228] OpenBSD: const correct tm_zone in struct tm https://github.com/openbsd/src/commit/4a796cf042d7cd180a2f093282195306a54bbdc4 (backport ) (cherry picked from commit 7be4e601c140d73ea137eac0b1c3054f97aef380) --- src/unix/bsd/apple/mod.rs | 14 ++++++++++++++ src/unix/bsd/freebsdlike/mod.rs | 14 ++++++++++++++ src/unix/bsd/mod.rs | 14 -------------- src/unix/bsd/netbsdlike/netbsd/mod.rs | 14 ++++++++++++++ src/unix/bsd/netbsdlike/openbsd/mod.rs | 14 ++++++++++++++ 5 files changed, 56 insertions(+), 14 deletions(-) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 8798dc30f804c..d42f0ab16fd1f 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -278,6 +278,20 @@ s! { __unused8: Padding<*mut c_void>, } + pub struct tm { + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + pub tm_gmtoff: c_long, + pub tm_zone: *mut c_char, + } + pub struct addrinfo { pub ai_flags: c_int, pub ai_family: c_int, diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 4dc4e4a20207e..0ec0eecd6ede9 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -121,6 +121,20 @@ s! { __unused8: Padding<*mut c_void>, } + pub struct tm { + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + pub tm_gmtoff: c_long, + pub tm_zone: *mut c_char, + } + pub struct addrinfo { pub ai_flags: c_int, pub ai_family: c_int, diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 8ab3632968c95..cb47817359869 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -74,20 +74,6 @@ s! { fds_bits: [i32; FD_SETSIZE as usize / 32], } - pub struct tm { - pub tm_sec: c_int, - pub tm_min: c_int, - pub tm_hour: c_int, - pub tm_mday: c_int, - pub tm_mon: c_int, - pub tm_year: c_int, - pub tm_wday: c_int, - pub tm_yday: c_int, - pub tm_isdst: c_int, - pub tm_gmtoff: c_long, - pub tm_zone: *mut c_char, - } - pub struct msghdr { pub msg_name: *mut c_void, pub msg_namelen: crate::socklen_t, diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 642582868e7f0..8d5cbe0aec986 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -162,6 +162,20 @@ s! { __unused8: Padding<*mut c_void>, } + pub struct tm { + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + pub tm_gmtoff: c_long, + pub tm_zone: *mut c_char, + } + pub struct mq_attr { pub mq_flags: c_long, pub mq_maxmsg: c_long, diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 0500209043016..08bbb1b8054c5 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -84,6 +84,20 @@ s! { __unused7: Padding<*mut c_void>, } + pub struct tm { + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + pub tm_gmtoff: c_long, + pub tm_zone: *const c_char, + } + pub struct lconv { pub decimal_point: *mut c_char, pub thousands_sep: *mut c_char, From bd565dc705002826bab24522c4c2298565bbeb42 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 29 Jan 2026 12:26:25 +0000 Subject: [PATCH 1138/1228] triagebot: Switch to `check-commits = "uncanonicalized"` There is now the option to check for `#xxxx`-style issue numbers that aren't attached to a specific repo. Enable it here. (backport ) (cherry picked from commit 890942ec61ae16fb10c0c305d29e8f53048ad352) --- triagebot.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/triagebot.toml b/triagebot.toml index f01074c5e9394..75cd387f76f19 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -13,7 +13,7 @@ contributing_url = "https://github.com/rust-lang/libc/blob/HEAD/CONTRIBUTING.md" # Ensure issue links link to this repo [issue-links] -check-commits = false # don't forbid links to issues +check-commits = "uncanonicalized" # Enable comments linking to triagebot range-diff when a PR is rebased # onto a different base commit From 49e3d58bd859548888aff48d4c6b13fa06d36dfb Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 29 Jan 2026 12:39:55 +0000 Subject: [PATCH 1139/1228] triagebot: Simplify mention and autolabel config Simplify mentions and autolabels using the recently added glob support. (backport ) (cherry picked from commit 29eb6a680010778c4b4d6ef4a59583be025fe0f6) --- triagebot.toml | 153 ++++++++++--------------------------------------- 1 file changed, 30 insertions(+), 123 deletions(-) diff --git a/triagebot.toml b/triagebot.toml index 75cd387f76f19..20684b995a271 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -24,167 +24,74 @@ check-commits = "uncanonicalized" trigger_files = [ ".cirrus.yml", ".github", - "src/ci", + "ci", ] [autolabel."S-waiting-on-review"] new_pr = true [autolabel."O-android"] -trigger_files = [ - "src/new/bionic_libc", - "src/unix/linux_like/android", -] +trigger_files = ["*{android,bionic}*"] [autolabel."O-arm"] -trigger_files = [ - "src/solid/arm.rs", - "src/unix/bsd/freebsdlike/freebsd/arm.rs", - "src/unix/bsd/netbsdlike/netbsd/arm.rs", - "src/unix/bsd/netbsdlike/openbsd/arm.rs", - "src/unix/linux_like/android/b32/arm.rs", - "src/unix/linux_like/linux/gnu/b32/arm/", - "src/unix/linux_like/linux/musl/b32/arm/", - "src/unix/linux_like/linux/uclibc/arm/", - "src/unix/newlib/arm/", - "src/vxworks/arm.rs", -] +trigger_files = ["*arm*"] [autolabel."O-bsd"] -trigger_files = ["src/unix/bsd/mod.rs"] +trigger_files = ["*bsd*"] [autolabel."O-dragonfly"] -trigger_files = ["src/unix/bsd/freebsdlike/dragonfly"] +trigger_files = ["*dragonfly*"] [autolabel."O-gnu"] -trigger_files = [ - "src/unix/linux_like/linux/gnu", - "src/windows/gnu", -] +trigger_files = ["*gnu*"] [autolabel."O-illumos"] -trigger_files = ["src/unix/solarish/illumos.rs"] +trigger_files = ["*illumos*"] [autolabel."O-linux"] -trigger_files = [ - "src/unix/linux_like/linux", - "src/new/linux_uapi", -] +trigger_files = ["*linux*"] [autolabel."O-linux-like"] -trigger_files = ["src/unix/linux_like/mod.rs"] +trigger_files = ["*linux_like*"] [autolabel."O-macos"] -trigger_files = [ - "src/unix/bsd/apple", - "src/new/apple_lib", - "src/new/apple_xnu", -] +trigger_files = ["*apple*"] [autolabel."O-mips"] -trigger_files = [ - "src/unix/bsd/netbsdlike/netbsd/mips.rs", - "src/unix/bsd/netbsdlike/openbsd/mips64.rs", - "src/unix/linux_like/linux/arch/mips", - "src/unix/linux_like/linux/gnu/b32/mips", - "src/unix/linux_like/linux/gnu/b64/mips64", - "src/unix/linux_like/linux/musl/b32/mips", - "src/unix/linux_like/linux/musl/b64/mips64.rs", - "src/unix/linux_like/linux/uclibc/mips", -] +trigger_files = ["*mips*"] [autolabel."O-musl"] -trigger_files = ["src/unix/linux_like/linux/musl"] +trigger_files = ["*musl*"] [autolabel."O-newlib"] -trigger_files = ["src/unix/newlib"] +trigger_files = ["*newlib*"] [autolabel."O-powerpc"] -trigger_files = [ - "src/unix/aix/powerpc64.rs", - "src/unix/bsd/freebsdlike/freebsd/powerpc.rs", - "src/unix/bsd/freebsdlike/freebsd/powerpc64.rs", - "src/unix/bsd/netbsdlike/netbsd/powerpc.rs", - "src/unix/bsd/netbsdlike/openbsd/powerpc.rs", - "src/unix/bsd/netbsdlike/openbsd/powerpc64.rs", - "src/unix/linux_like/linux/arch/powerpc/", - "src/unix/linux_like/linux/gnu/b32/powerpc.rs", - "src/unix/linux_like/linux/gnu/b64/powerpc64/", - "src/unix/linux_like/linux/musl/b32/powerpc.rs", - "src/unix/linux_like/linux/musl/b64/powerpc64.rs", - "src/unix/newlib/powerpc/", - "src/vxworks/powerpc.rs", - "src/vxworks/powerpc64.rs", -] +trigger_files = ["*powerpc*"] [autolabel."O-redox"] -trigger_files = ["src/unix/redox"] +trigger_files = ["*redox*"] [autolabel."O-riscv"] -trigger_files = [ - "src/fuchsia/riscv64.rs", - "src/unix/bsd/freebsdlike/freebsd/riscv64.rs", - "src/unix/bsd/netbsdlike/netbsd/riscv64.rs", - "src/unix/bsd/netbsdlike/openbsd/riscv64.rs", - "src/unix/linux_like/android/b64/riscv64", - "src/unix/linux_like/linux/gnu/b32/riscv32", - "src/unix/linux_like/linux/gnu/b64/riscv64", - "src/unix/linux_like/linux/musl/b32/riscv32", - "src/unix/linux_like/linux/musl/b64/riscv64", - "src/vxworks/riscv32.rs", - "src/vxworks/riscv64.rs", -] +trigger_files = ["*riscv*"] [autolabel."O-solarish"] -trigger_files = ["src/unix/solarish"] +trigger_files = ["*solarish*"] [autolabel."O-sparc"] -trigger_files = [ - "src/unix/bsd/netbsdlike/netbsd/sparc64.rs", - "src/unix/bsd/netbsdlike/openbsd/sparc64.rs", - "src/unix/linux_like/linux/arch/sparc", - "src/unix/linux_like/linux/gnu/b32/sparc", - "src/unix/linux_like/linux/gnu/b64/sparc64", -] +trigger_files = ["*sparc*"] [autolabel."O-unix"] -trigger_files = ["src/unix"] +trigger_files = ["*unix*"] [autolabel."O-wasi"] -trigger_files = ["src/wasi"] +trigger_files = ["*{wasi,wasm}*"] [autolabel."O-windows"] -trigger_files = ["src/windows"] +trigger_files = ["*windows*"] [autolabel."O-x86"] -trigger_files = [ - "src/fuchsia/x86_64.rs", - "src/unix/bsd/apple/b64/x86_64", - "src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs", - "src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs", - "src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs", - "src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs", - "src/unix/bsd/freebsdlike/freebsd/x86.rs", - "src/unix/bsd/freebsdlike/freebsd/x86_64", - "src/unix/bsd/netbsdlike/netbsd/x86.rs", - "src/unix/bsd/netbsdlike/netbsd/x86_64.rs", - "src/unix/bsd/netbsdlike/openbsd/x86.rs", - "src/unix/bsd/netbsdlike/openbsd/x86_64.rs", - "src/unix/haiku/x86_64.rs", - "src/unix/linux_like/android/b32/x86", - "src/unix/linux_like/android/b64/x86_64", - "src/unix/linux_like/linux/gnu/b32/x86", - "src/unix/linux_like/linux/gnu/b64/x86_64", - "src/unix/linux_like/linux/musl/b32/x86", - "src/unix/linux_like/linux/musl/b64/x86_64", - "src/unix/linux_like/linux/uclibc/x86_64", - "src/unix/nto/x86_64.rs", - "src/unix/solarish/x86.rs", - "src/unix/solarish/x86_64.rs", - "src/unix/solarish/x86_common.rs", - "src/vxworks/x86.rs", - "src/vxworks/x86_64.rs", -] +trigger_files = ["*{x86,i?86}"] [autolabel.ctest] trigger_files = [ @@ -206,18 +113,18 @@ add_labels = ["S-waiting-on-review"] [shortcut] -[mentions."src/unix/bsd/netbsdlike/openbsd"] -message = "Some changes occurred in OpenBSD module" +[mentions."*openbsd*"] +message = "Some changes occurred in an OpenBSD module" cc = ["@semarie"] -[mentions."src/unix/bsd/netbsdlike/mod.rs"] -message = "Some changes occurred in OpenBSD module" +[mentions."*netbsdlike*"] +message = "Some changes occurred in a NetBSD-like module" cc = ["@semarie"] -[mentions."src/unix/solarish"] -message = "Some changes occurred in solarish module" +[mentions."*solarish*"] +message = "Some changes occurred in a solarish module" cc = ["@jclulow", "@pfmooney"] -[mentions."src/unix/linux_like/android"] -message = "Some changes occurred in the Android module" +[mentions."*android*"] +message = "Some changes occurred in an Android module" cc = ["@maurer"] From ab0c2216979a8ca752141487dd9cb21a34678234 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 29 Jan 2026 12:52:26 +0000 Subject: [PATCH 1140/1228] aix: Temporarily skip checking powerpc64-ibm-aix builds This target doesn't build in the latest nightly. Link: https://github.com/rust-lang/rust/issues/151818 (backport ) (cherry picked from commit e98800a3cf17cd022d9e27d7f312df5a9692d6d3) --- ci/verify-build.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ci/verify-build.py b/ci/verify-build.py index b3b35f1c6e0bc..fb0051bec0b0a 100755 --- a/ci/verify-build.py +++ b/ci/verify-build.py @@ -181,7 +181,8 @@ class TargetResult: Target("powerpc-unknown-netbsd", dist=False), Target("powerpc-wrs-vxworks", dist=False), Target("powerpc-wrs-vxworks-spe", dist=False), - Target("powerpc64-ibm-aix", dist=False), + # FIXME(rust#151818) doesn't build with the 2026-01-28 nightly + # Target("powerpc64-ibm-aix", dist=False), Target("powerpc64-unknown-freebsd", dist=False), Target("powerpc64-wrs-vxworks", dist=False), Target("riscv32-wrs-vxworks", dist=False), From 48ea5bfc84fc5b1d030e8a4b8be019bd2b6160cb Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 29 Jan 2026 13:03:41 +0000 Subject: [PATCH 1141/1228] triagebot: Add an autolabel for FreeBSD (backport ) (cherry picked from commit 3265b902caf7e59a453462850f4230864610b3b7) --- triagebot.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/triagebot.toml b/triagebot.toml index 20684b995a271..c192178a9baa4 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -42,6 +42,9 @@ trigger_files = ["*bsd*"] [autolabel."O-dragonfly"] trigger_files = ["*dragonfly*"] +[autolabel."O-freebsd"] +trigger_files = ["*freebsd*"] + [autolabel."O-gnu"] trigger_files = ["*gnu*"] From ed9159f814e67daaf6a85342714c09a7d6510984 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Feb 2026 15:48:56 +0000 Subject: [PATCH 1142/1228] build(deps): bump vmactions/solaris-vm from 1.2.6 to 1.2.8 Bumps [vmactions/solaris-vm](https://github.com/vmactions/solaris-vm) from 1.2.6 to 1.2.8. - [Release notes](https://github.com/vmactions/solaris-vm/releases) - [Commits](https://github.com/vmactions/solaris-vm/compare/v1.2.6...v1.2.8) --- updated-dependencies: - dependency-name: vmactions/solaris-vm dependency-version: 1.2.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] (backport ) (cherry picked from commit 97e68897a6465b89229ef436e741f7b5f91599d1) --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 106b280863431..02c0a7a7592f7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -272,7 +272,7 @@ jobs: steps: - uses: actions/checkout@v6 - name: test on Solaris - uses: vmactions/solaris-vm@v1.2.6 + uses: vmactions/solaris-vm@v1.2.8 if: contains(matrix.target, 'solaris') with: release: "11.4-gcc" From fad77cfbececdf680b2fd32465ea0ead4dd7e15e Mon Sep 17 00:00:00 2001 From: LiamSnow Date: Tue, 3 Feb 2026 10:46:13 -0500 Subject: [PATCH 1143/1228] illumos: Add _CS_PATH constant (backport ) (cherry picked from commit 293d8cf46563cd43d4926855725776ad7840167f) --- libc-test/semver/illumos.txt | 1 + src/unix/solarish/illumos.rs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/libc-test/semver/illumos.txt b/libc-test/semver/illumos.txt index 67d990269d27a..54c3afbfbf905 100644 --- a/libc-test/semver/illumos.txt +++ b/libc-test/semver/illumos.txt @@ -19,6 +19,7 @@ TFD_CLOEXEC TFD_NONBLOCK TFD_TIMER_ABSTIME TFD_TIMER_CANCEL_ON_SET +_CS_PATH posix_fadvise posix_fallocate posix_spawn_file_actions_addfchdir_np diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index c0a17823bb9a7..50e6302e7c9e7 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -154,6 +154,8 @@ pub const LOCK_UN: c_int = 8; pub const _PC_LAST: c_int = 101; +pub const _CS_PATH: c_int = 65; + pub const VSTATUS: usize = 16; pub const VERASE2: usize = 17; From d97304366669d37414f82490f7d862c77f713e1a Mon Sep 17 00:00:00 2001 From: Goat Date: Wed, 4 Feb 2026 04:24:26 +0300 Subject: [PATCH 1144/1228] OpenBSD: add `ppoll` (backport ) (cherry picked from commit 9c7cb28edf38af51bb0936519a5692c1a0b47228) --- libc-test/semver/openbsd.txt | 1 + src/unix/bsd/netbsdlike/mod.rs | 6 ++++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 6 ------ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/libc-test/semver/openbsd.txt b/libc-test/semver/openbsd.txt index 42bd6ac722790..1dcda9147f126 100644 --- a/libc-test/semver/openbsd.txt +++ b/libc-test/semver/openbsd.txt @@ -1253,6 +1253,7 @@ posix_spawnattr_setschedpolicy posix_spawnattr_setsigdefault posix_spawnattr_setsigmask posix_spawnp +ppoll preadv pseudo_AF_HDRCMPLT pseudo_AF_PFLOW diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index e1edcf9ffdc07..ac0d91286b5b4 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -734,6 +734,12 @@ extern "C" { param: *mut sched_param, ) -> c_int; pub fn pipe2(fds: *mut c_int, flags: c_int) -> c_int; + pub fn ppoll( + fds: *mut crate::pollfd, + nfds: crate::nfds_t, + ts: *const crate::timespec, + sigmask: *const crate::sigset_t, + ) -> c_int; pub fn getgrouplist( name: *const c_char, diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 8d5cbe0aec986..ffbc543d33026 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -2195,12 +2195,6 @@ extern "C" { ts: *const crate::timespec, sigmask: *const crate::sigset_t, ) -> c_int; - pub fn ppoll( - fds: *mut crate::pollfd, - nfds: crate::nfds_t, - ts: *const crate::timespec, - sigmask: *const crate::sigset_t, - ) -> c_int; pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t; pub fn reboot(mode: c_int, bootstr: *mut c_char) -> c_int; From 6c7e28237ffa467f61dab66e5dac22b850fa8c10 Mon Sep 17 00:00:00 2001 From: usamoi Date: Sat, 24 Jan 2026 17:34:20 +0800 Subject: [PATCH 1145/1228] links old version of tc{g,s}etattr for glibc on mips(64) and sparc(64) (backport ) (cherry picked from commit 6abfe754557bcdea7429f215ea3e60b1d225dc96) --- libc-test/build.rs | 4 ++++ src/unix/mod.rs | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index cf4c76054135e..2dfbde6cc95d4 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3837,6 +3837,7 @@ fn test_linux(target: &str) { let ppc64 = target.contains("powerpc64"); let ppc32 = ppc && !ppc64; let s390x = target.contains("s390x"); + let sparc = target.contains("sparc"); let sparc64 = target.contains("sparc64"); let x32 = target.contains("x32"); let x86_32 = target.contains("i686"); @@ -4979,6 +4980,9 @@ fn test_linux(target: &str) { ] .contains(&s) }); + if mips || sparc { + cfg.skip_fn_ptrcheck(|s| ["tcgetattr", "tcsetattr"].contains(&s)); + } } ctest::generate_test(&mut cfg, "../src/lib.rs", "ctest_output.rs").unwrap(); diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 1b74684cbbb20..7ab584170afab 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1973,7 +1973,31 @@ extern "C" { link_name = "cfsetospeed@GLIBC_2.16" )] pub fn cfsetospeed(termios: *mut crate::termios, speed: crate::speed_t) -> c_int; + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + any(target_arch = "mips", target_arch = "mips64", target_arch = "sparc"), + ), + link_name = "tcgetattr@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "sparc64"), + link_name = "tcgetattr@GLIBC_2.2" + )] pub fn tcgetattr(fd: c_int, termios: *mut crate::termios) -> c_int; + #[cfg_attr( + all( + target_os = "linux", + target_env = "gnu", + any(target_arch = "mips", target_arch = "mips64", target_arch = "sparc"), + ), + link_name = "tcsetattr@GLIBC_2.0" + )] + #[cfg_attr( + all(target_os = "linux", target_env = "gnu", target_arch = "sparc64"), + link_name = "tcsetattr@GLIBC_2.2" + )] pub fn tcsetattr(fd: c_int, optional_actions: c_int, termios: *const crate::termios) -> c_int; pub fn tcflow(fd: c_int, action: c_int) -> c_int; pub fn tcflush(fd: c_int, action: c_int) -> c_int; From 1813ac84ea7ee729379f715ee9acdecd3c2296a1 Mon Sep 17 00:00:00 2001 From: usamoi Date: Sat, 24 Jan 2026 17:36:31 +0800 Subject: [PATCH 1146/1228] links old version for glibc on mips{32,64}r6 (backport ) (cherry picked from commit 49acdc680c0304c68fdba2fdcbea45ad20f14537) --- src/unix/mod.rs | 76 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 64 insertions(+), 12 deletions(-) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 7ab584170afab..ac411f152f94d 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1614,7 +1614,11 @@ extern "C" { link_name = "cfgetispeed@GLIBC_2.0" )] #[cfg_attr( - all(target_os = "linux", target_env = "gnu", target_arch = "mips"), + all( + target_os = "linux", + target_env = "gnu", + any(target_arch = "mips", target_arch = "mips32r6") + ), link_name = "cfgetispeed@GLIBC_2.0" )] #[cfg_attr( @@ -1642,7 +1646,11 @@ extern "C" { link_name = "cfgetispeed@GLIBC_2.36" )] #[cfg_attr( - all(target_os = "linux", target_env = "gnu", target_arch = "mips64"), + all( + target_os = "linux", + target_env = "gnu", + any(target_arch = "mips64", target_arch = "mips64r6") + ), link_name = "cfgetispeed@GLIBC_2.0" )] #[cfg_attr( @@ -1707,7 +1715,11 @@ extern "C" { link_name = "cfgetospeed@GLIBC_2.0" )] #[cfg_attr( - all(target_os = "linux", target_env = "gnu", target_arch = "mips"), + all( + target_os = "linux", + target_env = "gnu", + any(target_arch = "mips", target_arch = "mips32r6") + ), link_name = "cfgetospeed@GLIBC_2.0" )] #[cfg_attr( @@ -1735,7 +1747,11 @@ extern "C" { link_name = "cfgetospeed@GLIBC_2.36" )] #[cfg_attr( - all(target_os = "linux", target_env = "gnu", target_arch = "mips64"), + all( + target_os = "linux", + target_env = "gnu", + any(target_arch = "mips64", target_arch = "mips64r6") + ), link_name = "cfgetospeed@GLIBC_2.0" )] #[cfg_attr( @@ -1800,7 +1816,11 @@ extern "C" { link_name = "cfsetispeed@GLIBC_2.0" )] #[cfg_attr( - all(target_os = "linux", target_env = "gnu", target_arch = "mips"), + all( + target_os = "linux", + target_env = "gnu", + any(target_arch = "mips", target_arch = "mips32r6") + ), link_name = "cfsetispeed@GLIBC_2.0" )] #[cfg_attr( @@ -1828,7 +1848,11 @@ extern "C" { link_name = "cfsetispeed@GLIBC_2.36" )] #[cfg_attr( - all(target_os = "linux", target_env = "gnu", target_arch = "mips64"), + all( + target_os = "linux", + target_env = "gnu", + any(target_arch = "mips64", target_arch = "mips64r6") + ), link_name = "cfsetispeed@GLIBC_2.0" )] #[cfg_attr( @@ -1893,7 +1917,11 @@ extern "C" { link_name = "cfsetospeed@GLIBC_2.0" )] #[cfg_attr( - all(target_os = "linux", target_env = "gnu", target_arch = "mips"), + all( + target_os = "linux", + target_env = "gnu", + any(target_arch = "mips", target_arch = "mips32r6") + ), link_name = "cfsetospeed@GLIBC_2.0" )] #[cfg_attr( @@ -1921,7 +1949,11 @@ extern "C" { link_name = "cfsetospeed@GLIBC_2.36" )] #[cfg_attr( - all(target_os = "linux", target_env = "gnu", target_arch = "mips64"), + all( + target_os = "linux", + target_env = "gnu", + any(target_arch = "mips64", target_arch = "mips64r6") + ), link_name = "cfsetospeed@GLIBC_2.0" )] #[cfg_attr( @@ -1977,7 +2009,13 @@ extern "C" { all( target_os = "linux", target_env = "gnu", - any(target_arch = "mips", target_arch = "mips64", target_arch = "sparc"), + any( + target_arch = "mips", + target_arch = "mips32r6", + target_arch = "mips64", + target_arch = "mips64r6", + target_arch = "sparc" + ), ), link_name = "tcgetattr@GLIBC_2.0" )] @@ -1990,7 +2028,13 @@ extern "C" { all( target_os = "linux", target_env = "gnu", - any(target_arch = "mips", target_arch = "mips64", target_arch = "sparc"), + any( + target_arch = "mips", + target_arch = "mips32r6", + target_arch = "mips64", + target_arch = "mips64r6", + target_arch = "sparc" + ), ), link_name = "tcsetattr@GLIBC_2.0" )] @@ -2299,7 +2343,11 @@ cfg_if! { link_name = "cfsetspeed@GLIBC_2.0" )] #[cfg_attr( - all(target_os = "linux", target_env = "gnu", target_arch = "mips"), + all( + target_os = "linux", + target_env = "gnu", + any(target_arch = "mips", target_arch = "mips32r6") + ), link_name = "cfsetspeed@GLIBC_2.0" )] #[cfg_attr( @@ -2327,7 +2375,11 @@ cfg_if! { link_name = "cfsetspeed@GLIBC_2.36" )] #[cfg_attr( - all(target_os = "linux", target_env = "gnu", target_arch = "mips64"), + all( + target_os = "linux", + target_env = "gnu", + any(target_arch = "mips64", target_arch = "mips64r6") + ), link_name = "cfsetspeed@GLIBC_2.0" )] #[cfg_attr( From 5971f2fe49720b9dd16c8dd77f2eec1beabefd25 Mon Sep 17 00:00:00 2001 From: usamoi Date: Wed, 28 Jan 2026 18:48:18 +0800 Subject: [PATCH 1147/1228] fix libc-test ctest on mips64 and sparc64 (backport ) (cherry picked from commit 36bd27a827135653fae59d87efae8aba10c2a2b8) --- libc-test/build.rs | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 2dfbde6cc95d4..70a78d8ea2be4 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4961,27 +4961,37 @@ fn test_linux(target: &str) { if gnu { // old constants, so tests fail if glibc is too new cfg.skip_const(|s| { + // grep -E -h '^B([0-9])*$' libc-test/semver/* [ - "B50", "B75", "B110", "B134", "B150", "B200", "B300", "B600", "B1200", "B1800", - "B2400", "B4800", "B9600", "B19200", "B38400", "EXTA", "EXTB", "B57600", "B115200", - "B230400", "B460800", "B500000", "B576000", "B921600", "B1000000", "B1152000", - "B1500000", "B2000000", "B2500000", "B3000000", "B3500000", "B4000000", + "EXTA", "EXTB", "B0", "B1000000", "B110", "B115200", "B1152000", "B1200", "B134", + "B14400", "B150", "B1500000", "B153600", "B1800", "B19200", "B200", "B2000000", + "B230400", "B2400", "B2500000", "B28800", "B300", "B3000000", "B307200", + "B3500000", "B38400", "B4000000", "B460800", "B4800", "B50", "B500000", "B57600", + "B576000", "B600", "B614400", "B7200", "B75", "B76800", "B921600", "B9600", ] .contains(&s.ident()) }); + if mips || sparc { + cfg.skip_const(|s| s.ident() == "NCCS"); + } // old symbols, so tests fail if glibc is too new - cfg.skip_fn_ptrcheck(|s| { - [ - "cfgetispeed", - "cfgetospeed", - "cfsetispeed", - "cfsetospeed", - "cfsetspeed", - ] - .contains(&s) + // note: `skip_fn_ptrcheck` overrides the previous function + cfg.skip_fn_ptrcheck(move |s| { + let mut result = false; + result = result || s == "cfgetispeed"; + result = result || s == "cfgetospeed"; + result = result || s == "cfsetispeed"; + result = result || s == "cfsetospeed"; + result = result || s == "cfsetspeed"; + if mips || sparc { + result = result || s == "tcgetattr"; + result = result || s == "tcsetattr"; + } + result }); + // old structs, so tests fail if glibc is too new if mips || sparc { - cfg.skip_fn_ptrcheck(|s| ["tcgetattr", "tcsetattr"].contains(&s)); + cfg.skip_struct(|s| s.ident() == "termios"); } } From 52fcf32016d649fd97a28be48c837d5bf445a2c5 Mon Sep 17 00:00:00 2001 From: usamoi Date: Wed, 28 Jan 2026 21:05:47 +0800 Subject: [PATCH 1148/1228] checks termios size in the baud test (backport ) (cherry picked from commit 44b709c241d5b007927cb3daecb7a19d7a4f53cc) --- libc-test/tests/linux_gnu_baud.rs | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/libc-test/tests/linux_gnu_baud.rs b/libc-test/tests/linux_gnu_baud.rs index f38ab6326eb65..db8f5f939342e 100644 --- a/libc-test/tests/linux_gnu_baud.rs +++ b/libc-test/tests/linux_gnu_baud.rs @@ -13,21 +13,24 @@ fn baud() { assert!(ret >= 0); let terminal_fd = unsafe { open(buffer.as_ptr(), O_RDWR | O_NOCTTY) }; assert!(terminal_fd >= 0); - let mut tio: termios = unsafe { std::mem::zeroed() }; - let ret = unsafe { tcgetattr(terminal_fd, &mut tio) }; + #[repr(C)] + struct Protector(termios, [u8; 512]); + let mut tio: Protector = unsafe { Protector(std::mem::zeroed(), [0xcc; _]) }; + let ret = unsafe { tcgetattr(terminal_fd, &raw mut tio.0) }; assert!(ret >= 0); - assert_eq!(unsafe { cfgetispeed(&tio) }, B38400); - assert_eq!(unsafe { cfgetospeed(&tio) }, B38400); - let ret = unsafe { cfsetspeed(&mut tio, B1000000) }; + assert_eq!(tio.1, [0xcc; _]); + assert_eq!(unsafe { cfgetispeed(&tio.0) }, B38400); + assert_eq!(unsafe { cfgetospeed(&tio.0) }, B38400); + let ret = unsafe { cfsetspeed(&mut tio.0, B1000000) }; assert!(ret >= 0); - assert_eq!(unsafe { cfgetispeed(&tio) }, B1000000); - assert_eq!(unsafe { cfgetospeed(&tio) }, B1000000); - let ret = unsafe { cfsetispeed(&mut tio, B9600) }; + assert_eq!(unsafe { cfgetispeed(&tio.0) }, B1000000); + assert_eq!(unsafe { cfgetospeed(&tio.0) }, B1000000); + let ret = unsafe { cfsetispeed(&mut tio.0, B9600) }; assert!(ret >= 0); - assert_eq!(unsafe { cfgetispeed(&tio) }, B9600); - assert!(matches!(unsafe { cfgetospeed(&tio) }, B9600 | B1000000)); - let ret = unsafe { cfsetospeed(&mut tio, B19200) }; + assert_eq!(unsafe { cfgetispeed(&tio.0) }, B9600); + assert!(matches!(unsafe { cfgetospeed(&tio.0) }, B9600 | B1000000)); + let ret = unsafe { cfsetospeed(&mut tio.0, B19200) }; assert!(ret >= 0); - assert!(matches!(unsafe { cfgetispeed(&tio) }, B9600 | B19200)); - assert_eq!(unsafe { cfgetospeed(&tio) }, B19200); + assert!(matches!(unsafe { cfgetispeed(&tio.0) }, B9600 | B19200)); + assert_eq!(unsafe { cfgetospeed(&tio.0) }, B19200); } From a6168e102b8cce1157b6c62b43b075805818069b Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Wed, 4 Feb 2026 21:15:38 +1100 Subject: [PATCH 1149/1228] Remove `__item!`. It doesn't seem necessary. It dates back to a large commit "Let's just juggle everything around!" from the very old mega-PR rust-lang/libc#21. [ removed in `e!` as well for the cherry pick since that macro couldn't be removed yet on this branch - Trevor ] (backport ) (cherry picked from commit 09cb34df9d3898886a88668d3933a814d83a46cc) --- src/macros.rs | 110 +++++++++++++++++++++----------------------------- 1 file changed, 47 insertions(+), 63 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index 9d3c0e7b534eb..fb7733889fed5 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -153,21 +153,19 @@ macro_rules! s { ); (it: $(#[$attr:meta])* $pub:vis struct $i:ident { $($field:tt)* }) => ( - __item! { - #[repr(C)] - #[::core::prelude::v1::derive( - ::core::clone::Clone, - ::core::marker::Copy, - ::core::fmt::Debug, - )] - #[cfg_attr( - feature = "extra_traits", - ::core::prelude::v1::derive(Eq, Hash, PartialEq) - )] - #[allow(deprecated)] - $(#[$attr])* - $pub struct $i { $($field)* } - } + #[repr(C)] + #[::core::prelude::v1::derive( + ::core::clone::Clone, + ::core::marker::Copy, + ::core::fmt::Debug, + )] + #[cfg_attr( + feature = "extra_traits", + ::core::prelude::v1::derive(Eq, Hash, PartialEq) + )] + #[allow(deprecated)] + $(#[$attr])* + $pub struct $i { $($field)* } ); } @@ -180,19 +178,17 @@ macro_rules! s_paren { $(#[$attr:meta])* pub struct $i:ident ( $($field:tt)* ); )*) => ($( - __item! { - #[cfg_attr( - feature = "extra_traits", - ::core::prelude::v1::derive(Eq, Hash, PartialEq) - )] - #[::core::prelude::v1::derive( - ::core::clone::Clone, - ::core::marker::Copy, - ::core::fmt::Debug, - )] - $(#[$attr])* - pub struct $i ( $($field)* ); - } + #[cfg_attr( + feature = "extra_traits", + ::core::prelude::v1::derive(Eq, Hash, PartialEq) + )] + #[::core::prelude::v1::derive( + ::core::clone::Clone, + ::core::marker::Copy, + ::core::fmt::Debug, + )] + $(#[$attr])* + pub struct $i ( $($field)* ); )*); } @@ -209,12 +205,10 @@ macro_rules! s_no_extra_traits { )*); (it: $(#[$attr:meta])* $pub:vis union $i:ident { $($field:tt)* }) => ( - __item! { - #[repr(C)] - #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)] - $(#[$attr])* - $pub union $i { $($field)* } - } + #[repr(C)] + #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)] + $(#[$attr])* + $pub union $i { $($field)* } impl ::core::fmt::Debug for $i { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { @@ -224,16 +218,14 @@ macro_rules! s_no_extra_traits { ); (it: $(#[$attr:meta])* $pub:vis struct $i:ident { $($field:tt)* }) => ( - __item! { - #[repr(C)] - #[::core::prelude::v1::derive( - ::core::clone::Clone, - ::core::marker::Copy, - ::core::fmt::Debug, - )] - $(#[$attr])* - $pub struct $i { $($field)* } - } + #[repr(C)] + #[::core::prelude::v1::derive( + ::core::clone::Clone, + ::core::marker::Copy, + ::core::fmt::Debug, + )] + $(#[$attr])* + $pub struct $i { $($field)* } ); } @@ -268,19 +260,17 @@ macro_rules! e { $(#[$attr:meta])* pub enum $i:ident { $($field:tt)* } )*) => ($( - __item! { - #[cfg_attr( - feature = "extra_traits", - ::core::prelude::v1::derive(Eq, Hash, PartialEq) - )] - #[::core::prelude::v1::derive( - ::core::clone::Clone, - ::core::marker::Copy, - ::core::fmt::Debug, - )] - $(#[$attr])* - pub enum $i { $($field)* } - } + #[cfg_attr( + feature = "extra_traits", + ::core::prelude::v1::derive(Eq, Hash, PartialEq) + )] + #[::core::prelude::v1::derive( + ::core::clone::Clone, + ::core::marker::Copy, + ::core::fmt::Debug, + )] + $(#[$attr])* + pub enum $i { $($field)* } )*); } @@ -407,12 +397,6 @@ macro_rules! safe_f { )+}; } -macro_rules! __item { - ($i:item) => { - $i - }; -} - // This macro is used to deprecate items that should be accessed via the mach2 crate macro_rules! deprecated_mach { (pub const $id:ident: $ty:ty = $expr:expr;) => { From cab60d9e14c79bebc8176a8d002550f69f8396a7 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Wed, 4 Feb 2026 21:15:49 +1100 Subject: [PATCH 1150/1228] Macro cleanups. - Fix comments that incorrectly say that `Debug` is part of `extra_traits`. - Use a consistent and sensible ordering for the traits: Clone, Copy, Debug; then PartialEq, Eq, Hash. - Explain `repr` behaviour for `s_paren!`; it's different to `s!` and `s_no_extra_traits!`. - Use `$pub:vis` (instead of a hard-wired `pub`) in `s_paren!` for consistency with the other macros. (backport ) (cherry picked from commit 7983094659150b8c291cd8ae011cfda3c88c8c7d) --- src/macros.rs | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index fb7733889fed5..2d2d390884714 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -135,8 +135,10 @@ macro_rules! prelude { }; } -/// Implement `Clone` and `Copy` for a struct, as well as `Debug`, `Eq`, `Hash`, and -/// `PartialEq` if the `extra_traits` feature is enabled. +/// Implement `Clone`, `Copy`, and `Debug` for one or more structs, as well as `PartialEq`, `Eq`, +/// and `Hash` if the `extra_traits` feature is enabled. +/// +/// Also mark the type with `repr(C)`. /// /// Use [`s_no_extra_traits`] for structs where the `extra_traits` feature does not /// make sense, and for unions. @@ -161,7 +163,7 @@ macro_rules! s { )] #[cfg_attr( feature = "extra_traits", - ::core::prelude::v1::derive(Eq, Hash, PartialEq) + ::core::prelude::v1::derive(PartialEq, Eq, Hash) )] #[allow(deprecated)] $(#[$attr])* @@ -169,33 +171,36 @@ macro_rules! s { ); } -/// Implement `Clone` and `Copy` for a tuple struct, as well as `Debug`, `Eq`, `Hash`, -/// and `PartialEq` if the `extra_traits` feature is enabled. +/// Implement `Clone`, `Copy`, and `Debug` for a tuple struct, as well as `PartialEq`, `Eq`, +/// and `Hash` if the `extra_traits` feature is enabled. /// -/// This is the same as [`s`] but works for tuple structs. +/// Unlike `s!`, this does *not* mark the type with `repr(C)`. Users should provide their own +/// `repr` attribute via `$attr` as necessary. macro_rules! s_paren { ($( $(#[$attr:meta])* - pub struct $i:ident ( $($field:tt)* ); + $pub:vis struct $i:ident ( $($field:tt)* ); )*) => ($( - #[cfg_attr( - feature = "extra_traits", - ::core::prelude::v1::derive(Eq, Hash, PartialEq) - )] #[::core::prelude::v1::derive( ::core::clone::Clone, ::core::marker::Copy, ::core::fmt::Debug, )] + #[cfg_attr( + feature = "extra_traits", + ::core::prelude::v1::derive(PartialEq, Eq, Hash) + )] $(#[$attr])* - pub struct $i ( $($field)* ); + $pub struct $i ( $($field)* ); )*); } -/// Implement `Clone`, `Copy`, and `Debug` since those can be derived, but exclude `PartialEq`, +/// Implement `Clone`, `Copy`, and `Debug` for one or more structs/unions, but exclude `PartialEq`, /// `Eq`, and `Hash`. /// -/// Most items will prefer to use [`s`]. +/// Also mark the type with `repr(C)`. +/// +/// Most structs will prefer to use [`s`]. macro_rules! s_no_extra_traits { ($( $(#[$attr:meta])* @@ -206,7 +211,10 @@ macro_rules! s_no_extra_traits { (it: $(#[$attr:meta])* $pub:vis union $i:ident { $($field:tt)* }) => ( #[repr(C)] - #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)] + #[::core::prelude::v1::derive( + ::core::clone::Clone, + ::core::marker::Copy, + )] $(#[$attr])* $pub union $i { $($field)* } From 83360a32ca1d39565a0be410a1388bb8da5ed28c Mon Sep 17 00:00:00 2001 From: Marco Cavenati Date: Thu, 5 Feb 2026 09:39:24 +0100 Subject: [PATCH 1151/1228] CI linux: Move to Ubuntu25.04 for i686 (backport ) (cherry picked from commit 9766a977909f86bc0ee952fa19f08e92b9feb871) --- ci/docker/i686-unknown-linux-gnu/Dockerfile | 7 ++----- ci/docker/i686-unknown-linux-musl/Dockerfile | 7 ++----- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/ci/docker/i686-unknown-linux-gnu/Dockerfile b/ci/docker/i686-unknown-linux-gnu/Dockerfile index 5a2f4c9dd43ec..b1596071b8f63 100644 --- a/ci/docker/i686-unknown-linux-gnu/Dockerfile +++ b/ci/docker/i686-unknown-linux-gnu/Dockerfile @@ -1,9 +1,6 @@ -FROM ubuntu:23.10 +FROM ubuntu:25.04 -# FIXME(time): we are using an EOL release because 24.04 changes to 64-bit time -RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ - /etc/apt/sources.list && \ - apt-get update && apt-get install -y --no-install-recommends \ +RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ gcc-multilib \ libc6-dev diff --git a/ci/docker/i686-unknown-linux-musl/Dockerfile b/ci/docker/i686-unknown-linux-musl/Dockerfile index ce3abd0e538c8..225823d6143c5 100644 --- a/ci/docker/i686-unknown-linux-musl/Dockerfile +++ b/ci/docker/i686-unknown-linux-musl/Dockerfile @@ -1,9 +1,6 @@ -FROM ubuntu:23.10 +FROM ubuntu:25.04 -# FIXME(time): we are using an EOL release because 24.04 changes to 64-bit time -RUN sed -i -E 's/(archive|security)\.ubuntu\.com/old-releases.ubuntu.com/g' \ - /etc/apt/sources.list && \ - dpkg --add-architecture i386 && \ +RUN dpkg --add-architecture i386 && \ apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ curl \ From 7710a7f3e93128fc0acd4158153f00cec6296def Mon Sep 17 00:00:00 2001 From: Marco Cavenati Date: Thu, 5 Feb 2026 09:41:16 +0100 Subject: [PATCH 1152/1228] tests linux: do not skip tests requiring kernel <= 6.8 64 bit Linux images used in CI are on kernel 6.11, headers are >=6.8 at the time of writing. Skip the tests requiring kernel >=6.8 only on 32-bit archs, that are still on old headers due to 64 bit time_t, and for musl targets that have old headers as well. (backport ) (cherry picked from commit 145625074f5dc8e0fe4dceed6014c8650471c69a) --- libc-test/build.rs | 57 +++++++++++++++++++--------------------------- 1 file changed, 24 insertions(+), 33 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 70a78d8ea2be4..b6685927d355e 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2161,9 +2161,6 @@ fn test_android(target: &str) { // Needs a newer Android SDK for the definition "P_PIDFD" => true, - // Requires Linux kernel 5.6 - "VMADDR_CID_LOCAL" => true, - // FIXME(android): conflicts with standard C headers and is tested in // `linux_termios.rs` below: "BOTHER" => true, @@ -2172,28 +2169,10 @@ fn test_android(target: &str) { // is a private value for kernel usage normally "FUSE_SUPER_MAGIC" => true, - // linux 5.12 min - "MPOL_F_NUMA_BALANCING" => true, // GRND_INSECURE was added in platform-tools-30.0.0 "GRND_INSECURE" => true, - // kernel 5.10 minimum required - "MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ" | "MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ" => true, - - // kernel 5.18 minimum - | "MADV_COLD" - | "MADV_DONTNEED_LOCKED" - | "MADV_PAGEOUT" - | "MADV_POPULATE_READ" - | "MADV_POPULATE_WRITE" => true, - - // kernel 5.6 minimum required - "IPPROTO_MPTCP" | "IPPROTO_ETHERNET" => true, - - // kernel 6.2 minimum - "TUN_F_USO4" | "TUN_F_USO6" | "IFF_NO_CARRIER" => true, - // FIXME(android): NDK r22 minimum required | "FDB_NOTIFY_BIT" | "FDB_NOTIFY_INACTIVE_BIT" @@ -3810,6 +3789,13 @@ fn config_gnu_bits(target: &str, cfg: &mut ctest::TestGenerator) { fn test_linux(target: &str) { assert!(target.contains("linux") || target.contains("l4re")); + // FIXME(linux32): Some 32 bit targets use old kernel headers because newer distros enforce 64 + // bit time. Use this to avoid skipping tests also on 64 bit targets. + let pointer_width = env::var("CARGO_CFG_TARGET_POINTER_WIDTH") + .unwrap_or_default() + .parse::() + .unwrap_or_default(); + // target_os let linux = target.contains("linux"); let l4re = target.contains("l4re"); @@ -4186,7 +4172,7 @@ fn test_linux(target: &str) { cfg.skip_struct(move |struct_| { let ty = struct_.ident(); - // FIXME(linux): CI has old headers + // FIXME(linux): Requires >= 6.12 kernel headers. CI has old headers if ty == "ptp_sys_offset_extended" { return true; } @@ -4256,14 +4242,17 @@ fn test_linux(target: &str) { "sctp_initmsg" | "sctp_sndrcvinfo" | "sctp_sndinfo" | "sctp_rcvinfo" | "sctp_nxtinfo" | "sctp_prinfo" | "sctp_authinfo" => true, - // FIXME(linux): Requires >= 6.8 kernel headers. - // A field was added in 6.8. + // FIXME(musl): A field was added in linux 6.8, not yet in musl + // FIXME(linux32): A field was added in linux 6.8 // https://github.com/torvalds/linux/commit/341ac980eab90ac1f6c22ee9f9da83ed9604d899 // The previous version of the struct was removed in 6.11 due to a bug. // https://github.com/torvalds/linux/commit/32654bbd6313b4cfc82297e6634fa9725c3c900f - "xdp_umem_reg" => true, + "xdp_umem_reg" if musl || pointer_width == 32 => true, - // FIXME(linux): Requires >= 6.8 kernel headers. + // FIXME(1.0,linux): A new field was added to `xsk_tx_metadata_request` in linux 6.15. + // https://github.com/torvalds/linux/commit/ca4419f15abd19ba8be1e109661b60f9f5b6c9f0 + // When updating, consider giving the `__c_anonymous_` prefix to the enum variants + // `xsk_tx_metadata_request` and `xsk_tx_metadata_completion`. "xsk_tx_metadata" | "xsk_tx_metadata_request" | "xsk_tx_metadata_completion" => true, // A new field was added in kernel 5.4, this is the old version for backwards compatibility. @@ -4575,17 +4564,22 @@ fn test_linux(target: &str) { true } - // FIXME(linux): Requires >= 6.6 kernel headers. - "XDP_USE_SG" | "XDP_PKT_CONTD" => true, + // FIXME(linux32): Requires >= 6.6 kernel headers. + "XDP_USE_SG" | "XDP_PKT_CONTD" if pointer_width == 32 => true, // FIXME(linux): Missing only on this platform for some reason "PR_MDWE_NO_INHERIT" if gnueabihf => true, - // FIXME(linux): Requires >= 6.8 kernel headers. + // FIXME(musl): Not yet in musl + // FIXME(linux32): Requires >= 6.8 kernel headers. "XDP_UMEM_TX_SW_CSUM" | "XDP_TXMD_FLAGS_TIMESTAMP" | "XDP_TXMD_FLAGS_CHECKSUM" - | "XDP_TX_METADATA" => true, + | "XDP_TX_METADATA" + if musl || pointer_width == 32 => + { + true + } // FIXME(linux): Requires >= 6.11 kernel headers. "XDP_UMEM_TX_METADATA_LEN" => true, @@ -4601,9 +4595,6 @@ fn test_linux(target: &str) { true } - // FIXME(linux): Requires >= 6.6 kernel headers. - "SYS_fchmodat2" => true, - // FIXME(linux): Requires >= 6.10 kernel headers. "SYS_mseal" => true, From 08f7df78c0dc83a03ea0c68861536317d12a4e49 Mon Sep 17 00:00:00 2001 From: WANG Rui Date: Wed, 4 Feb 2026 14:21:22 +0800 Subject: [PATCH 1153/1228] Revert "musl: convert inline timespecs to timespec" This reverts commit 55fa65b3e026594c6418eb2bc8e98c1feb7667da. --- libc-test/build.rs | 4 +- src/unix/linux_like/linux/musl/b32/arm/mod.rs | 29 +++++++------ src/unix/linux_like/linux/musl/b32/hexagon.rs | 25 ++++++----- .../linux_like/linux/musl/b32/mips/mod.rs | 41 +++++++++++-------- src/unix/linux_like/linux/musl/b32/powerpc.rs | 29 +++++++------ .../linux_like/linux/musl/b32/riscv32/mod.rs | 27 ++++++------ src/unix/linux_like/linux/musl/b32/x86/mod.rs | 23 +++++------ .../linux_like/linux/musl/b64/aarch64/mod.rs | 15 ------- .../linux/musl/b64/loongarch64/mod.rs | 15 ------- src/unix/linux_like/linux/musl/b64/mips64.rs | 15 ------- .../linux_like/linux/musl/b64/powerpc64.rs | 15 ------- .../linux_like/linux/musl/b64/riscv64/mod.rs | 15 ------- src/unix/linux_like/linux/musl/b64/s390x.rs | 15 ------- .../linux_like/linux/musl/b64/wasm32/mod.rs | 15 ------- .../linux_like/linux/musl/b64/x86_64/mod.rs | 24 ++++------- 15 files changed, 102 insertions(+), 205 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index b6685927d355e..56ace01fd574e 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4105,9 +4105,9 @@ fn test_linux(target: &str) { cfg.rename_struct_field(move |struct_, field| { match (struct_.ident(), field.ident()) { // Our stat *_nsec fields normally don't actually exist but are part - // of a timeval struct - this is fixed in musl_v1_2_3 + // of a timeval struct ("stat" | "statfs" | "statvfs" | "stat64" | "statfs64" | "statvfs64", f) - if !musl_v1_2_3 && f.ends_with("_nsec") => + if f.ends_with("_nsec") => { Some(f.replace("e_nsec", ".tv_nsec")) } diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index ae8e4939bbcb2..26d3380eb7ba5 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -27,27 +27,30 @@ s! { #[cfg(musl32_time64)] __st_ctim32: Padding<__c_anonymous_timespec32>, - #[cfg(not(musl_v1_2_3))] + #[cfg(musl_v1_2_3)] + pub st_ino: crate::ino_t, + pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "big"))] + __pad0: Padding, pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "little"))] + __pad0: Padding, pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "big"))] + __pad1: Padding, pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "little"))] + __pad1: Padding, pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "big"))] + __pad2: Padding, pub st_ctime_nsec: c_long, + #[cfg(all(musl32_time64, target_endian = "little"))] + __pad2: Padding, + #[cfg(not(musl_v1_2_3))] pub st_ino: crate::ino_t, - - #[cfg(musl32_time64)] - pub st_atim: crate::timespec, - #[cfg(musl32_time64)] - pub st_mtim: crate::timespec, - #[cfg(musl32_time64)] - pub st_ctim: crate::timespec, } struct __c_anonymous_timespec32 { diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 7aa01d625cdcd..16530abdbe411 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -18,25 +18,24 @@ s! { __st_blksize_padding: Padding, pub st_blocks: crate::blkcnt_t, - #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "big"))] + __pad0: Padding, pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "little"))] + __pad0: Padding, pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "big"))] + __pad1: Padding, pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "little"))] + __pad1: Padding, pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "big"))] + __pad2: Padding, pub st_ctime_nsec: c_long, - - #[cfg(musl_v1_2_3)] - pub st_atim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_mtim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_ctim: crate::timespec, + #[cfg(all(musl32_time64, target_endian = "little"))] + __pad2: Padding, __unused: Padding<[c_int; 2]>, } diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index 8c7ccbfc07450..7edcf573d2790 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -25,33 +25,42 @@ s! { #[cfg(musl32_time64)] __st_ctim32: Padding<__c_anonymous_timespec32>, - #[cfg(not(musl_v1_2_3))] + #[cfg(musl_v1_2_3)] + pub st_blksize: crate::blksize_t, + #[cfg(musl_v1_2_3)] + __st_padding3: Padding, + #[cfg(musl_v1_2_3)] + pub st_blocks: crate::blkcnt_t, + pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "big"))] + __pad0: Padding, pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "little"))] + __pad0: Padding, pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "big"))] + __pad1: Padding, pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "little"))] + __pad1: Padding, pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "big"))] + __pad2: Padding, pub st_ctime_nsec: c_long, + #[cfg(all(musl32_time64, target_endian = "little"))] + __pad2: Padding, + #[cfg(not(musl_v1_2_3))] pub st_blksize: crate::blksize_t, + #[cfg(not(musl_v1_2_3))] __st_padding3: Padding, + #[cfg(not(musl_v1_2_3))] pub st_blocks: crate::blkcnt_t, - #[cfg(not(musl32_time64))] - __st_padding4: Padding<[c_long; 14]>, - #[cfg(musl32_time64)] - pub st_atim: crate::timespec, - #[cfg(musl32_time64)] - pub st_mtim: crate::timespec, - #[cfg(musl32_time64)] - pub st_ctim: crate::timespec, - - #[cfg(musl32_time64)] + #[cfg(not(musl_v1_2_3))] + __st_padding4: Padding<[c_long; 14]>, + #[cfg(musl_v1_2_3)] __st_padding4: Padding<[c_long; 2]>, } diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index cd11a44e43cd4..f0d92c0e936e7 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -37,27 +37,30 @@ s! { #[cfg(musl32_time64)] __st_ctim32: Padding<__c_anonymous_timespec32>, - #[cfg(not(musl_v1_2_3))] + #[cfg(musl_v1_2_3)] + __unused: Padding<[c_long; 2]>, + pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "big"))] + __pad0: Padding, pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "little"))] + __pad0: Padding, pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "big"))] + __pad1: Padding, pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "little"))] + __pad1: Padding, pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "big"))] + __pad2: Padding, pub st_ctime_nsec: c_long, + #[cfg(all(musl32_time64, target_endian = "little"))] + __pad2: Padding, + #[cfg(not(musl_v1_2_3))] __unused: Padding<[c_long; 2]>, - - #[cfg(musl32_time64)] - pub st_atim: crate::timespec, - #[cfg(musl32_time64)] - pub st_mtim: crate::timespec, - #[cfg(musl32_time64)] - pub st_ctim: crate::timespec, } struct __c_anonymous_timespec32 { diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index 5561dcb34d358..8589e4692335c 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -21,27 +21,24 @@ s! { pub st_blksize: crate::blksize_t, pub __pad2: c_int, pub st_blocks: crate::blkcnt_t, - - #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "big"))] + __pad0: Padding, pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "little"))] + __pad0: Padding, pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "big"))] + __pad1: Padding, pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "little"))] + __pad1: Padding, pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_endian = "big"))] + __pad2: Padding, pub st_ctime_nsec: c_long, - - #[cfg(musl_v1_2_3)] - pub st_atim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_mtim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_ctim: crate::timespec, - + #[cfg(all(musl32_time64, target_endian = "little"))] + __pad2: Padding, __unused: Padding<[c_int; 2usize]>, } diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 737438a594efb..1a348078764f0 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -27,27 +27,24 @@ s! { #[cfg(musl32_time64)] __st_ctim32: Padding<__c_anonymous_timespec32>, - #[cfg(not(musl_v1_2_3))] + #[cfg(musl_v1_2_3)] + pub st_ino: crate::ino_t, + pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] + #[cfg(musl32_time64)] + __pad0: Padding, pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] + #[cfg(musl32_time64)] + __pad1: Padding, pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, + #[cfg(musl32_time64)] + __pad2: Padding, + #[cfg(not(musl_v1_2_3))] pub st_ino: crate::ino_t, - - #[cfg(musl32_time64)] - pub st_atim: crate::timespec, - #[cfg(musl32_time64)] - pub st_mtim: crate::timespec, - #[cfg(musl32_time64)] - pub st_ctim: crate::timespec, } struct __c_anonymous_timespec32 { diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index 47f29d5e11abf..e28310be3ee32 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -23,27 +23,12 @@ s! { pub st_blksize: crate::blksize_t, __pad1: Padding, pub st_blocks: crate::blkcnt_t, - - #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, - - #[cfg(musl_v1_2_3)] - pub st_atim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_mtim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_ctim: crate::timespec, - __unused: Padding<[c_uint; 2]>, } diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index 29f7d49cc8320..8e890be51848f 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -26,27 +26,12 @@ s! { pub st_blksize: crate::blksize_t, __pad2: Padding, pub st_blocks: crate::blkcnt_t, - - #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, - - #[cfg(musl_v1_2_3)] - pub st_atim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_mtim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_ctim: crate::timespec, - __unused: Padding<[c_int; 2usize]>, } diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index d05b40bd38a11..1fb8618c30c0b 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -22,27 +22,12 @@ s! { __pad2: Padding<[c_uint; 2]>, pub st_size: off_t, __pad3: Padding, - - #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, - - #[cfg(musl_v1_2_3)] - pub st_atim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_mtim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_ctim: crate::timespec, - pub st_blksize: crate::blksize_t, __pad4: Padding, pub st_blocks: crate::blkcnt_t, diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index 6e0d6db6a1978..4885ea2f0e182 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -33,27 +33,12 @@ s! { pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, - - #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, - - #[cfg(musl_v1_2_3)] - pub st_atim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_mtim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_ctim: crate::timespec, - __unused: Padding<[c_long; 3]>, } diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index ba9bebd84cc73..bd395e49cefc1 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -26,27 +26,12 @@ s! { pub st_blksize: crate::blksize_t, __pad2: Padding, pub st_blocks: crate::blkcnt_t, - - #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, - - #[cfg(musl_v1_2_3)] - pub st_atim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_mtim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_ctim: crate::timespec, - __unused: Padding<[c_int; 2usize]>, } diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index 7776e10b60dce..0ee6c11c6a1e6 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -40,27 +40,12 @@ s! { pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, pub st_size: off_t, - - #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, - - #[cfg(musl_v1_2_3)] - pub st_atim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_mtim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_ctim: crate::timespec, - pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, __unused: Padding<[c_long; 3]>, diff --git a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs index 06b34c25d9238..1a4d89632dcc9 100644 --- a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs @@ -24,27 +24,12 @@ s! { pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, - - #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] pub st_ctime_nsec: c_long, - - #[cfg(musl_v1_2_3)] - pub st_atim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_mtim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_ctim: crate::timespec, - __unused: Padding<[c_long; 3]>, } diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index ec9a31bccf577..39daf548d4ccf 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -23,27 +23,21 @@ s! { pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, - - #[cfg(not(musl_v1_2_3))] pub st_atime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_pointer_width = "32"))] + pub st_atime_nsec: i64, + #[cfg(not(all(musl32_time64, target_pointer_width = "32")))] pub st_atime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] pub st_mtime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_pointer_width = "32"))] + pub st_mtime_nsec: i64, + #[cfg(not(all(musl32_time64, target_pointer_width = "32")))] pub st_mtime_nsec: c_long, - #[cfg(not(musl_v1_2_3))] pub st_ctime: crate::time_t, - #[cfg(not(musl_v1_2_3))] + #[cfg(all(musl32_time64, target_pointer_width = "32"))] + pub st_ctime_nsec: i64, + #[cfg(not(all(musl32_time64, target_pointer_width = "32")))] pub st_ctime_nsec: c_long, - - #[cfg(musl_v1_2_3)] - pub st_atim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_mtim: crate::timespec, - #[cfg(musl_v1_2_3)] - pub st_ctim: crate::timespec, - __unused: Padding<[c_long; 3]>, } From d37b0aa96ffd38af69d564f2599ad47868b8bd99 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 9 Feb 2026 20:51:37 +0000 Subject: [PATCH 1154/1228] chore: Release libc 0.2.181 --- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 405c0751025f8..3cbbdb845538a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,37 @@ # Changelog +## [0.2.181](https://github.com/rust-lang/libc/compare/0.2.180...0.2.181) - 2026-02-09 + +### Added +- Apple: Add `MADV_ZERO` ([#4924](https://github.com/rust-lang/libc/pull/4924)) +- Redox: Add `makedev`, `major`, and `minor` ([#4928](https://github.com/rust-lang/libc/pull/4928)) +- GLibc: Add `PTRACE_SET_SYSCALL_INFO` ([#4933](https://github.com/rust-lang/libc/pull/4933)) +- OpenBSD: Add more kqueue related constants for ([#4945](https://github.com/rust-lang/libc/pull/4945)) +- Linux: add CAN error types ([#4944](https://github.com/rust-lang/libc/pull/4944)) +- OpenBSD: Add siginfo_t::si_status ([#4946](https://github.com/rust-lang/libc/pull/4946)) +- QNX NTO: Add `max_align_t` ([#4927](https://github.com/rust-lang/libc/pull/4927)) +- Illumos: Add `_CS_PATH` ([#4956](https://github.com/rust-lang/libc/pull/4956)) +- OpenBSD: add `ppoll` ([#4957](https://github.com/rust-lang/libc/pull/4957)) + +### Fixed + +- AIX: Change 'tv_nsec' of 'struct timespec' to type 'c_long' ([#4931](https://github.com/rust-lang/libc/pull/4931)) +- AIX: Use 'struct st_timespec' in 'struct stat{,64}' ([#4931](https://github.com/rust-lang/libc/pull/4931)) +- Glibc: Link old version of `tc{g,s}etattr` ([#4938](https://github.com/rust-lang/libc/pull/4938)) +- Glibc: Link the correct version of `cf{g,s}et{i,o}speed` on mips{32,64}r6 ([#4938](https://github.com/rust-lang/libc/pull/4938)) +- OpenBSD: Fix constness of tm.tm_zone ([#4948](https://github.com/rust-lang/libc/pull/4948)) +- OpenBSD: Fix the definition of `ptrace_thread_state` ([#4947](https://github.com/rust-lang/libc/pull/4947)) +- QuRT: Fix type visibility and defs ([#4932](https://github.com/rust-lang/libc/pull/4932)) +- Redox: Fix dev_t ([#4928](https://github.com/rust-lang/libc/pull/4928)) +- Redox: Fix values for `PTHREAD_MUTEX_{NORMAL, RECURSIVE}` ([#4943](https://github.com/rust-lang/libc/pull/4943)) +- Various: Mark additional fields as private padding ([#4922](https://github.com/rust-lang/libc/pull/4922)) + +### Changed + +- Fuchsia: Update `SO_*` constants ([#4937](https://github.com/rust-lang/libc/pull/4937)) +- Revert "musl: convert inline timespecs to timespec" (resolves build issues on targets only supported by Musl 1.2.3+ ) ([#4958](https://github.com/rust-lang/libc/pull/4958)) + + ## [0.2.180](https://github.com/rust-lang/libc/compare/0.2.179...0.2.180) - 2026-01-08 ### Added diff --git a/Cargo.lock b/Cargo.lock index 3abc86ecc0a19..c7d0259a69900 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -132,7 +132,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "libc" -version = "0.2.180" +version = "0.2.181" dependencies = [ "rustc-std-workspace-core", ] diff --git a/Cargo.toml b/Cargo.toml index f49c459862b2c..a1c7fffbef8ed 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.180" +version = "0.2.181" keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml", "cherry-pick-stable.sh"] From 35dd84458ad579ca4ccdeb6371dbe1089f616cd3 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 11 Feb 2026 13:05:58 -0600 Subject: [PATCH 1155/1228] changelog: Note that the Redox `dev_t` change is breaking Link: https://github.com/rust-lang/libc/pull/4928 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cbbdb845538a..57162ff28db78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## [0.2.181](https://github.com/rust-lang/libc/compare/0.2.180...0.2.181) - 2026-02-09 ### Added + - Apple: Add `MADV_ZERO` ([#4924](https://github.com/rust-lang/libc/pull/4924)) - Redox: Add `makedev`, `major`, and `minor` ([#4928](https://github.com/rust-lang/libc/pull/4928)) - GLibc: Add `PTRACE_SET_SYSCALL_INFO` ([#4933](https://github.com/rust-lang/libc/pull/4933)) @@ -15,6 +16,7 @@ ### Fixed +- **breaking**: Redox: Fix the type of dev_t ([#4928](https://github.com/rust-lang/libc/pull/4928)) - AIX: Change 'tv_nsec' of 'struct timespec' to type 'c_long' ([#4931](https://github.com/rust-lang/libc/pull/4931)) - AIX: Use 'struct st_timespec' in 'struct stat{,64}' ([#4931](https://github.com/rust-lang/libc/pull/4931)) - Glibc: Link old version of `tc{g,s}etattr` ([#4938](https://github.com/rust-lang/libc/pull/4938)) @@ -22,7 +24,6 @@ - OpenBSD: Fix constness of tm.tm_zone ([#4948](https://github.com/rust-lang/libc/pull/4948)) - OpenBSD: Fix the definition of `ptrace_thread_state` ([#4947](https://github.com/rust-lang/libc/pull/4947)) - QuRT: Fix type visibility and defs ([#4932](https://github.com/rust-lang/libc/pull/4932)) -- Redox: Fix dev_t ([#4928](https://github.com/rust-lang/libc/pull/4928)) - Redox: Fix values for `PTHREAD_MUTEX_{NORMAL, RECURSIVE}` ([#4943](https://github.com/rust-lang/libc/pull/4943)) - Various: Mark additional fields as private padding ([#4922](https://github.com/rust-lang/libc/pull/4922)) From 5dbcc36d6daad38250169c4252a7344cfbae20e1 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 9 Feb 2026 06:03:43 -0600 Subject: [PATCH 1156/1228] ci: Ensure TARGET_REF is set during scheduled jobs This was causing a failure in prep-semver-baseline.sh for the daily cache-building job since there is no base for jobs that run on a branch. (backport ) (cherry picked from commit 708aa56839766a6afdecdd18f411445ea8d2cd29) --- .github/workflows/ci.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 02c0a7a7592f7..72b6f83b1f51a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -13,7 +13,8 @@ env: RUSTDOCFLAGS: -Dwarnings RUSTFLAGS: -Dwarnings RUST_BACKTRACE: full - TARGET_REF: ${{ github.base_ref || github.event.merge_group.base_ref }} + # Base branch for PRs or for merges, current ref for cron runs on a branch. + TARGET_REF: ${{ github.base_ref || github.event.merge_group.base_ref || github.ref }} defaults: run: From ab8c36c49327eeee2b5c3818d6706b499dd890a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Feb 2026 15:48:31 +0000 Subject: [PATCH 1157/1228] build(deps): bump vmactions/solaris-vm from 1.2.8 to 1.3.0 Bumps [vmactions/solaris-vm](https://github.com/vmactions/solaris-vm) from 1.2.8 to 1.3.0. - [Release notes](https://github.com/vmactions/solaris-vm/releases) - [Commits](https://github.com/vmactions/solaris-vm/compare/v1.2.8...v1.3.0) --- updated-dependencies: - dependency-name: vmactions/solaris-vm dependency-version: 1.3.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] (backport ) (cherry picked from commit f908e8649882bf4384c7a7e3629933570c2ef7e2) --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 72b6f83b1f51a..bd5fa66d8aa8f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -273,7 +273,7 @@ jobs: steps: - uses: actions/checkout@v6 - name: test on Solaris - uses: vmactions/solaris-vm@v1.2.8 + uses: vmactions/solaris-vm@v1.3.0 if: contains(matrix.target, 'solaris') with: release: "11.4-gcc" From 4b4ce4f2205d22121c5e913b118f8fc776d39897 Mon Sep 17 00:00:00 2001 From: Anhad Singh Date: Thu, 12 Feb 2026 23:38:11 +1100 Subject: [PATCH 1158/1228] feat(redox): add `renameat2` Signed-off-by: Anhad Singh (backport ) (cherry picked from commit 5a680895b7181f61dededddc799f580429cbc645) --- libc-test/semver/redox.txt | 1 + src/unix/redox/mod.rs | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/libc-test/semver/redox.txt b/libc-test/semver/redox.txt index 73a36244c09ca..d4be9afb43515 100644 --- a/libc-test/semver/redox.txt +++ b/libc-test/semver/redox.txt @@ -327,6 +327,7 @@ pipe2 pthread_condattr_setclock qsort reallocarray +renameat2 rlim_t setgrent setpwent diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 69566e398dc3f..5ffd38eb46029 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1330,6 +1330,15 @@ extern "C" { pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int; pub fn reallocarray(ptr: *mut c_void, nmemb: size_t, size: size_t) -> *mut c_void; + // stdio.h + pub fn renameat2( + olddirfd: c_int, + oldpath: *const c_char, + newdirfd: c_int, + newpath: *const c_char, + flags: c_uint, + ) -> c_int; + // string.h pub fn explicit_bzero(p: *mut c_void, len: size_t); pub fn strlcat(dst: *mut c_char, src: *const c_char, siz: size_t) -> size_t; From 25f7dde943988c81871d95aaea1afd49cf11425d Mon Sep 17 00:00:00 2001 From: Anhad Singh Date: Thu, 12 Feb 2026 23:49:46 +1100 Subject: [PATCH 1159/1228] feat(redox): add `RENAME_NOREPLACE` Signed-off-by: Anhad Singh (backport ) (cherry picked from commit c6900b73d8c9393ffee20f00c5fdd8499d14d8c6) --- libc-test/semver/redox.txt | 1 + src/unix/redox/mod.rs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/libc-test/semver/redox.txt b/libc-test/semver/redox.txt index d4be9afb43515..2b71394c4b845 100644 --- a/libc-test/semver/redox.txt +++ b/libc-test/semver/redox.txt @@ -142,6 +142,7 @@ PTHREAD_MUTEX_ERRORCHECK PTHREAD_MUTEX_ROBUST PTHREAD_MUTEX_STALLED PTHREAD_STACK_MIN +RENAME_NOREPLACE RLIMIT_AS RLIMIT_CORE RLIMIT_CPU diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 5ffd38eb46029..96a2df71be66e 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1096,6 +1096,8 @@ pub const PRIO_PROCESS: c_int = 0; pub const PRIO_PGRP: c_int = 1; pub const PRIO_USER: c_int = 2; +pub const RENAME_NOREPLACE: c_uint = 1; + f! { //sys/socket.h pub const fn CMSG_ALIGN(len: size_t) -> size_t { From abe93a0bfedfe6159252d43e5c4273d0b0833ca4 Mon Sep 17 00:00:00 2001 From: Sami Daniel Date: Thu, 12 Feb 2026 20:12:59 -0300 Subject: [PATCH 1160/1228] feat(linux): add `tgkill` for Linux and Android Add the `tgkill(tgid, tid, sig)` wrapper (backport ) (cherry picked from commit c659e2996fc13a74e452c0890acec920583410ef) --- libc-test/semver/android.txt | 1 + libc-test/semver/linux-gnu.txt | 1 + src/unix/linux_like/android/mod.rs | 2 ++ src/unix/linux_like/linux/gnu/mod.rs | 2 ++ 4 files changed, 6 insertions(+) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index c2bf6cd6a850a..a6acde40a9ba2 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -4085,6 +4085,7 @@ tee telldir termios termios2 +tgkill time time_t timegm diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 0dfc20cf9a628..9b5a384b0d3f6 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -678,6 +678,7 @@ sgetspent_r statx statx_timestamp tcp_info +tgkill timex utmpname utmpx diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 3ae28aca55c0a..1c186351dfc58 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3679,6 +3679,8 @@ extern "C" { pub fn gettid() -> crate::pid_t; + pub fn tgkill(tgid: crate::pid_t, tid: crate::pid_t, sig: c_int) -> c_int; + pub fn getauxval(type_: c_ulong) -> c_ulong; /// Only available in API Version 28+ diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index c214beb3635ed..babe34e9a9de6 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1233,6 +1233,8 @@ extern "C" { ) -> c_int; pub fn mempcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + + pub fn tgkill(tgid: crate::pid_t, tid: crate::pid_t, sig: c_int) -> c_int; } cfg_if! { From b7807c369b468c369661e81ea6f9f649f3b3ddf3 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 13 Feb 2026 04:44:35 +0000 Subject: [PATCH 1161/1228] Revert "aix: Temporarily skip checking powerpc64-ibm-aix builds" The LLVM bump to resolve this is available in nightlies from the past couple of days. This reverts commit e98800a3cf17cd022d9e27d7f312df5a9692d6d3. (backport ) (cherry picked from commit 42cb72dc8708684265f12cd098ebafa250c52cc9) --- ci/verify-build.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ci/verify-build.py b/ci/verify-build.py index fb0051bec0b0a..b3b35f1c6e0bc 100755 --- a/ci/verify-build.py +++ b/ci/verify-build.py @@ -181,8 +181,7 @@ class TargetResult: Target("powerpc-unknown-netbsd", dist=False), Target("powerpc-wrs-vxworks", dist=False), Target("powerpc-wrs-vxworks-spe", dist=False), - # FIXME(rust#151818) doesn't build with the 2026-01-28 nightly - # Target("powerpc64-ibm-aix", dist=False), + Target("powerpc64-ibm-aix", dist=False), Target("powerpc64-unknown-freebsd", dist=False), Target("powerpc64-wrs-vxworks", dist=False), Target("riscv32-wrs-vxworks", dist=False), From 14e2f5641e2d4356953b0c95959ccfc86af5dcc3 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 13 Feb 2026 04:45:24 +0000 Subject: [PATCH 1162/1228] Revert "ci: Skip hexagon-unknown-linux-musl" compiler-builtins has been fixed such that this is no longer needed. This reverts commit 5a9e1db32bb09a0b23e257b65e5b5ccdf754d00e. Link: https://github.com/rust-lang/compiler-builtins/pull/1066 (backport ) (cherry picked from commit e79f46e2f0b642402e95ad53eb9001334dfc4925) --- ci/verify-build.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ci/verify-build.py b/ci/verify-build.py index b3b35f1c6e0bc..0ae095f37ebac 100755 --- a/ci/verify-build.py +++ b/ci/verify-build.py @@ -159,8 +159,7 @@ class TargetResult: Target("armv7-wrs-vxworks-eabihf", dist=False), Target("armv7r-none-eabihf", dist=False), Target("armv7s-apple-ios", dist=False), - # FIXME(hexagon): hits "error: symbol 'fma' is already defined" error - # Target("hexagon-unknown-linux-musl", dist=False), + Target("hexagon-unknown-linux-musl", dist=False), Target("i386-apple-ios", dist=False), Target("i686-apple-darwin", dist=False), Target("i686-unknown-haiku", dist=False), From d7aa109ab5074dbbd35fb52cc72620e29961e76d Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 13 Feb 2026 04:49:00 +0000 Subject: [PATCH 1163/1228] Revert "Disable hexagon-unknown-linux-musl testing for now" Similar to the previous commit, re-enable hexagon docs builds. This reverts commit 77e9d0657386a38ad6fbffac34b354a4a0646c5e. (backport ) (cherry picked from commit e9f75f8efe66b1a50ed2e8d8ffc9dbf88117f4f1) --- Cargo.toml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index a1c7fffbef8ed..41a8abaf381c7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,8 +42,7 @@ targets = [ "armv7-wrs-vxworks-eabihf", "armv7r-none-eabi", "armv7r-none-eabihf", - # FIXME(hexagon): excluded due to duplicate symbol errors - # "hexagon-unknown-linux-musl", + "hexagon-unknown-linux-musl", "i586-unknown-linux-gnu", "i586-unknown-linux-musl", "i686-linux-android", From 634bc4e66e944d54ebc3d1610175c8c6d390bd29 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 13 Feb 2026 05:54:58 +0000 Subject: [PATCH 1164/1228] ci: Update the list of tested and documented targets Add new tier 2 targets to verify-build.py that have shown up since the last update, and sync the docs.rs target list to it. In particular, this adds the ohos targets which are tier 2 but were not documented. (backport ) (cherry picked from commit c57615ddb87a7a1639593d6c47376b5278773d51) --- Cargo.toml | 135 ++++++++++++++++++++++++++++----------------- ci/verify-build.py | 20 ++++--- 2 files changed, 95 insertions(+), 60 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 41a8abaf381c7..5d79e5153631e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,44 +15,100 @@ rust-version = "1.63" features = ["extra_traits"] default-target = "x86_64-unknown-linux-gnu" targets = [ + # Note: Keep this in sync with ci/verify-build.py + # + # Tier 1 "aarch64-apple-darwin", - "aarch64-apple-ios", - "aarch64-linux-android", "aarch64-pc-windows-msvc", - "aarch64-unknown-freebsd", - "aarch64-unknown-fuchsia", - "aarch64-unknown-hermit", "aarch64-unknown-linux-gnu", + "i686-pc-windows-msvc", + "i686-unknown-linux-gnu", + "x86_64-pc-windows-gnu", + "x86_64-pc-windows-msvc", + "x86_64-unknown-linux-gnu", + # + # Tier 2 with host tools + "aarch64-pc-windows-gnullvm", "aarch64-unknown-linux-musl", - "aarch64-unknown-netbsd", - "aarch64-unknown-openbsd", - "aarch64-wrs-vxworks", - "arm-linux-androideabi", + "aarch64-unknown-linux-ohos", "arm-unknown-linux-gnueabi", "arm-unknown-linux-gnueabihf", + "armv7-unknown-linux-gnueabihf", + "armv7-unknown-linux-ohos", + "i686-pc-windows-gnu", + "loongarch64-unknown-linux-gnu", + "loongarch64-unknown-linux-musl", + "powerpc-unknown-linux-gnu", + "powerpc64-unknown-linux-gnu", + "powerpc64le-unknown-linux-gnu", + "powerpc64le-unknown-linux-musl", + "riscv64gc-unknown-linux-gnu", + "s390x-unknown-linux-gnu", + "sparcv9-sun-solaris", + "x86_64-apple-darwin", + "x86_64-pc-solaris", + "x86_64-pc-windows-gnullvm", + "x86_64-unknown-freebsd", + "x86_64-unknown-illumos", + "x86_64-unknown-linux-musl", + "x86_64-unknown-linux-ohos", + "x86_64-unknown-netbsd", + # + # Tier 2 without host tools + "aarch64-apple-ios", + "aarch64-apple-tvos", + "aarch64-apple-visionos", + "aarch64-apple-watchos", + "aarch64-linux-android", + "aarch64-unknown-fuchsia", + "arm-linux-androideabi", "arm-unknown-linux-musleabi", "arm-unknown-linux-musleabihf", - "armebv7r-none-eabi", - "armebv7r-none-eabihf", + "arm64ec-pc-windows-msvc", "armv5te-unknown-linux-gnueabi", "armv5te-unknown-linux-musleabi", "armv7-linux-androideabi", - "armv7-unknown-linux-gnueabihf", "armv7-unknown-linux-musleabihf", - "armv7-wrs-vxworks-eabihf", - "armv7r-none-eabi", - "armv7r-none-eabihf", - "hexagon-unknown-linux-musl", "i586-unknown-linux-gnu", "i586-unknown-linux-musl", "i686-linux-android", - "i686-pc-windows-gnu", - "i686-pc-windows-msvc", - "i686-pc-windows-msvc", "i686-unknown-freebsd", - "i686-unknown-haiku", - "i686-unknown-linux-gnu", "i686-unknown-linux-musl", + "nvptx64-nvidia-cuda", + "riscv64gc-unknown-linux-musl", + "sparc64-unknown-linux-gnu", + "thumbv7neon-linux-androideabi", + "thumbv7neon-unknown-linux-gnueabihf", + "wasm32-unknown-emscripten", + "wasm32-unknown-unknown", + "wasm32-wasip1", + "wasm32-wasip2", + "x86_64-fortanix-unknown-sgx", + "x86_64-linux-android", + "x86_64-unknown-fuchsia", + "x86_64-unknown-linux-gnux32", + "x86_64-unknown-redox", + # + # Tier 3 targets that are distinct enough to be useful, or have historically + # been documented. + "aarch64-unknown-freebsd", + "aarch64-unknown-hermit", + "aarch64-unknown-illumos", + "aarch64-unknown-netbsd", + "aarch64-unknown-nto-qnx800", + "aarch64-unknown-openbsd", + "aarch64-unknown-redox", + "aarch64-wrs-vxworks", + "aarch64_be-unknown-linux-gnu", + "aarch64_be-unknown-linux-musl", + "armebv7r-none-eabi", + "armebv7r-none-eabihf", + "armv7-linux-androideabi", + "armv7-wrs-vxworks-eabihf", + "armv7r-none-eabi", + "armv7r-none-eabihf", + "hexagon-unknown-linux-musl", + "i686-unknown-haiku", "i686-unknown-netbsd", "i686-unknown-openbsd", "i686-wrs-vxworks", @@ -65,8 +121,6 @@ targets = [ "mipsel-sony-psp", "mipsel-unknown-linux-gnu", "mipsel-unknown-linux-musl", - "nvptx64-nvidia-cuda", - "powerpc-unknown-linux-gnu", "powerpc-unknown-linux-gnuspe", "powerpc-unknown-netbsd", "powerpc-wrs-vxworks", @@ -74,55 +128,34 @@ targets = [ "powerpc64-ibm-aix", "powerpc64-unknown-freebsd", "powerpc64-unknown-linux-gnu", + "powerpc64-unknown-linux-musl", "powerpc64-wrs-vxworks", - "powerpc64le-unknown-linux-gnu", - "powerpc64le-unknown-linux-musl", - "riscv32gc-unknown-linux-gnu", + "riscv32-wrs-vxworks", + "riscv32gc-unknown-linux-musl", "riscv32i-unknown-none-elf", "riscv32imac-unknown-none-elf", "riscv32imc-unknown-none-elf", - "riscv32-wrs-vxworks", + "riscv64-wrs-vxworks", "riscv64gc-unknown-freebsd", "riscv64gc-unknown-hermit", - "riscv64gc-unknown-linux-gnu", - "riscv64gc-unknown-linux-musl", "riscv64gc-unknown-none-elf", "riscv64imac-unknown-none-elf", - "riscv64-wrs-vxworks", - "s390x-unknown-linux-gnu", "s390x-unknown-linux-musl", "sparc-unknown-linux-gnu", - "sparc64-unknown-linux-gnu", "sparc64-unknown-netbsd", - "sparcv9-sun-solaris", "thumbv6m-none-eabi", "thumbv7em-none-eabi", "thumbv7em-none-eabihf", "thumbv7m-none-eabi", - "thumbv7neon-linux-androideabi", - "thumbv7neon-unknown-linux-gnueabihf", - "wasm32-unknown-emscripten", - "wasm32-unknown-unknown", - "x86_64-apple-darwin", + "wasm32-wasip3", "x86_64-apple-ios", - "x86_64-fortanix-unknown-sgx", - "x86_64-linux-android", - "x86_64-pc-solaris", - "x86_64-pc-windows-gnu", - "x86_64-pc-windows-msvc", + "x86_64-pc-cygwin", "x86_64-unknown-dragonfly", - "x86_64-unknown-freebsd", - "x86_64-unknown-fuchsia", "x86_64-unknown-haiku", "x86_64-unknown-hermit", - "x86_64-unknown-illumos", + "x86_64-unknown-hurd-gnu", "x86_64-unknown-l4re-uclibc", - "x86_64-unknown-linux-gnu", - "x86_64-unknown-linux-gnux32", - "x86_64-unknown-linux-musl", - "x86_64-unknown-netbsd", "x86_64-unknown-openbsd", - "x86_64-unknown-redox", "x86_64-wrs-vxworks" ] cargo-args = ["-Zbuild-std=core"] diff --git a/ci/verify-build.py b/ci/verify-build.py index 0ae095f37ebac..ce3410398eb34 100755 --- a/ci/verify-build.py +++ b/ci/verify-build.py @@ -12,7 +12,6 @@ from pathlib import Path from typing import Optional, Sequence - ESC_YELLOW = "\033[1;33m" ESC_CYAN = "\033[1;36m" ESC_END = "\033[0m" @@ -120,11 +119,15 @@ class TargetResult: # # Tier 2 without host tools Target("aarch64-apple-ios"), + Target("aarch64-apple-tvos", min_toolchain=Toolchain.NIGHTLY), + Target("aarch64-apple-visionos", min_toolchain=Toolchain.NIGHTLY), + Target("aarch64-apple-watchos", min_toolchain=Toolchain.NIGHTLY), Target("aarch64-linux-android"), Target("aarch64-unknown-fuchsia", min_toolchain=Toolchain.STABLE), Target("arm-linux-androideabi"), Target("arm-unknown-linux-musleabi"), Target("arm-unknown-linux-musleabihf"), + Target("arm64ec-pc-windows-msvc", min_toolchain=Toolchain.STABLE), Target("armv5te-unknown-linux-gnueabi"), Target("armv5te-unknown-linux-musleabi"), Target("armv7-linux-androideabi"), @@ -134,7 +137,11 @@ class TargetResult: Target("i686-linux-android"), Target("i686-unknown-freebsd"), Target("i686-unknown-linux-musl"), + Target("nvptx64-nvidia-cuda", min_toolchain=Toolchain.STABLE), + Target("riscv64gc-unknown-linux-musl", min_toolchain=Toolchain.STABLE), Target("sparc64-unknown-linux-gnu"), + Target("thumbv7neon-linux-androideabi", min_toolchain=Toolchain.STABLE), + Target("thumbv7neon-unknown-linux-gnueabihf", min_toolchain=Toolchain.STABLE), Target("wasm32-unknown-emscripten"), Target("wasm32-unknown-unknown"), Target("wasm32-wasip1", min_toolchain=Toolchain.STABLE), @@ -175,13 +182,13 @@ class TargetResult: Target("mips64el-unknown-linux-muslabi64", dist=False), Target("mipsel-unknown-linux-gnu", dist=False), Target("mipsel-unknown-linux-musl", dist=False), - Target("nvptx64-nvidia-cuda", dist=False), Target("powerpc-unknown-linux-gnuspe", dist=False), Target("powerpc-unknown-netbsd", dist=False), Target("powerpc-wrs-vxworks", dist=False), Target("powerpc-wrs-vxworks-spe", dist=False), Target("powerpc64-ibm-aix", dist=False), Target("powerpc64-unknown-freebsd", dist=False), + Target("powerpc64-unknown-linux-musl", dist=False), Target("powerpc64-wrs-vxworks", dist=False), Target("riscv32-wrs-vxworks", dist=False), Target("riscv32gc-unknown-linux-gnu", dist=False), @@ -192,7 +199,6 @@ class TargetResult: Target("riscv64a23-unknown-linux-gnu", dist=False), Target("riscv64gc-unknown-freebsd", dist=False), Target("riscv64gc-unknown-hermit", dist=False), - Target("riscv64gc-unknown-linux-musl", dist=False), Target("riscv64gc-unknown-none-elf", dist=False), Target("riscv64imac-unknown-none-elf", dist=False), Target("s390x-unknown-linux-musl", dist=False), @@ -200,8 +206,6 @@ class TargetResult: Target("sparc64-unknown-netbsd", dist=False), Target("thumbv7em-none-eabihf", dist=False), Target("thumbv7m-none-eabi", dist=False), - Target("thumbv7neon-linux-androideabi", dist=False), - Target("thumbv7neon-unknown-linux-gnueabihf", dist=False), Target("thumbv8m.main-none-eabi", dist=False), Target("x86_64-unknown-dragonfly", dist=False), Target("x86_64-unknown-haiku", dist=False), @@ -289,10 +293,8 @@ def do_semver_checks(cfg: Cfg, target: Target) -> bool: # running on the host. if cfg.baseline_crate_dir is None: - eprint( - "Non-host target: --baseline-crate-dir must be specified to \ - run semver-checks" - ) + eprint("Non-host target: --baseline-crate-dir must be specified to \ + run semver-checks") sys.exit(1) # Since semver-checks doesn't work with `--target`, we build the json ourself and From 2efe72f4dae6feebacaf5ec8a4ec5fdc79569e7b Mon Sep 17 00:00:00 2001 From: xtqqczze <45661989+xtqqczze@users.noreply.github.com> Date: Thu, 12 Feb 2026 20:38:18 +0000 Subject: [PATCH 1165/1228] remove copyright year in LICENSE-MIT (backport ) (cherry picked from commit c12def367b38ce2dbfbfb8873786a60be3c31105) --- LICENSE-MIT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE-MIT b/LICENSE-MIT index 78061811c33c8..f4095b2fa2d9b 100644 --- a/LICENSE-MIT +++ b/LICENSE-MIT @@ -1,4 +1,4 @@ -Copyright (c) 2014-2020 The Rust Project Developers +Copyright (c) The Rust Project Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated From e879ee90b6cd8f79b352d4d4d1f8ca05f94f2f53 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 13 Feb 2026 08:10:19 +0000 Subject: [PATCH 1166/1228] chore: Release libc 0.2.182 --- CHANGELOG.md | 9 +++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 57162ff28db78..76b3e484a942e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## [0.2.182](https://github.com/rust-lang/libc/compare/0.2.181...0.2.182) - 2026-02-13 + +### Added + +- Android, Linux: Add `tgkill` ([#4970](https://github.com/rust-lang/libc/pull/4970)) +- Redox: Add `RENAME_NOREPLACE` ([#4968](https://github.com/rust-lang/libc/pull/4968)) +- Redox: Add `renameat2` ([#4968](https://github.com/rust-lang/libc/pull/4968)) + + ## [0.2.181](https://github.com/rust-lang/libc/compare/0.2.180...0.2.181) - 2026-02-09 ### Added diff --git a/Cargo.lock b/Cargo.lock index c7d0259a69900..87107f980a844 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -132,7 +132,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "libc" -version = "0.2.181" +version = "0.2.182" dependencies = [ "rustc-std-workspace-core", ] diff --git a/Cargo.toml b/Cargo.toml index 5d79e5153631e..7bb55b46378a9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.181" +version = "0.2.182" keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml", "cherry-pick-stable.sh"] From c69d47c0d8629013e49175fc230ac6282d6d33a2 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 14 Feb 2026 15:11:18 -0600 Subject: [PATCH 1167/1228] Implement `Default` for `timeval` and `timespec` With the experimental time64 support, some of these structs gain a padding field on 32-bit platforms. We are planning to give everything a `Default` impl anyway ([1]) so start with these to ease the transition. [1]: https://github.com/rust-lang/libc/issues/4975 (backport ) (cherry picked from commit 9c2df3fd99934547d7e28fff7d5a57de8780e533) --- src/fuchsia/mod.rs | 2 ++ src/hermit.rs | 1 + src/new/qurt/mod.rs | 2 ++ src/solid/mod.rs | 1 + src/teeos/mod.rs | 2 ++ src/trusty.rs | 1 + src/unix/bsd/apple/b64/mod.rs | 1 + src/unix/hurd/mod.rs | 1 + src/unix/linux_like/linux/gnu/mod.rs | 1 + src/unix/mod.rs | 2 ++ src/vxworks/mod.rs | 2 ++ src/wasi/mod.rs | 2 ++ src/windows/mod.rs | 2 ++ 13 files changed, 20 insertions(+) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index b5fb673b7ea13..3e35faa7b7114 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -99,11 +99,13 @@ s! { pub modtime: time_t, } + #[derive(Default)] pub struct timeval { pub tv_sec: time_t, pub tv_usec: suseconds_t, } + #[derive(Default)] pub struct timespec { pub tv_sec: time_t, pub tv_nsec: c_long, diff --git a/src/hermit.rs b/src/hermit.rs index e8699228b6001..2cbf57393104e 100644 --- a/src/hermit.rs +++ b/src/hermit.rs @@ -108,6 +108,7 @@ s! { pub st_ctim: timespec, } + #[derive(Default)] pub struct timespec { pub tv_sec: time_t, pub tv_nsec: i32, diff --git a/src/new/qurt/mod.rs b/src/new/qurt/mod.rs index 456b715f019ec..52d7ae04881e1 100644 --- a/src/new/qurt/mod.rs +++ b/src/new/qurt/mod.rs @@ -137,11 +137,13 @@ s! { pub tm_isdst: c_int, } + #[derive(Default)] pub struct timespec { pub tv_sec: time_t, pub tv_nsec: c_long, } + #[derive(Default)] pub struct timeval { pub tv_sec: time_t, pub tv_usec: suseconds_t, diff --git a/src/solid/mod.rs b/src/solid/mod.rs index 37c7fe5f0a342..0182f8150df67 100644 --- a/src/solid/mod.rs +++ b/src/solid/mod.rs @@ -169,6 +169,7 @@ s! { pub iov_len: size_t, } + #[derive(Default)] pub struct timeval { pub tv_sec: c_long, pub tv_usec: c_long, diff --git a/src/teeos/mod.rs b/src/teeos/mod.rs index f9f8569360f97..89a30a888a5b4 100644 --- a/src/teeos/mod.rs +++ b/src/teeos/mod.rs @@ -99,11 +99,13 @@ s! { bits: [c_ulong; 128 / size_of::()], } + #[derive(Default)] pub struct timespec { pub tv_sec: time_t, pub tv_nsec: c_long, } + #[derive(Default)] pub struct timeval { pub tv_sec: time_t, pub tv_usec: suseconds_t, diff --git a/src/trusty.rs b/src/trusty.rs index 7441aade0631e..2cb2d5e13766d 100644 --- a/src/trusty.rs +++ b/src/trusty.rs @@ -27,6 +27,7 @@ s! { pub iov_len: size_t, } + #[derive(Default)] pub struct timespec { pub tv_sec: time_t, pub tv_nsec: c_long, diff --git a/src/unix/bsd/apple/b64/mod.rs b/src/unix/bsd/apple/b64/mod.rs index 4ef2799e8c5fb..5ccf65abb840e 100644 --- a/src/unix/bsd/apple/b64/mod.rs +++ b/src/unix/bsd/apple/b64/mod.rs @@ -3,6 +3,7 @@ use crate::prelude::*; s! { + #[derive(Default)] pub struct timeval32 { pub tv_sec: i32, pub tv_usec: i32, diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 7e1cbc3c3871e..7080de567a314 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -431,6 +431,7 @@ s! { pub si_value: crate::sigval, } + #[derive(Default)] pub struct timespec { pub tv_sec: __time_t, pub tv_nsec: __syscall_slong_t, diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index babe34e9a9de6..f9805b0b021f7 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -319,6 +319,7 @@ s! { // linux x32 compatibility // See https://sourceware.org/bugzilla/show_bug.cgi?id=16437 + #[derive(Default)] pub struct timespec { pub tv_sec: time_t, #[cfg(all(gnu_time_bits64, target_endian = "big"))] diff --git a/src/unix/mod.rs b/src/unix/mod.rs index ac411f152f94d..5f23744d276cf 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -57,6 +57,7 @@ s! { pub modtime: time_t, } + #[derive(Default)] pub struct timeval { pub tv_sec: time_t, #[cfg(not(gnu_time_bits64))] @@ -69,6 +70,7 @@ s! { // linux x32 compatibility // See https://sourceware.org/bugzilla/show_bug.cgi?id=16437 + #[derive(Default)] #[cfg(not(target_env = "gnu"))] pub struct timespec { pub tv_sec: time_t, diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index d5067250e5020..9ac68c5e96be9 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -158,6 +158,7 @@ s! { } // b_struct_timeval.h + #[derive(Default)] pub struct timeval { pub tv_sec: crate::time_t, pub tv_usec: crate::suseconds_t, @@ -332,6 +333,7 @@ s! { } // b_struct_timespec.h + #[derive(Default)] pub struct timespec { pub tv_sec: crate::time_t, pub tv_nsec: c_long, diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index 9dbe60a02f35c..cd4f508459155 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -87,11 +87,13 @@ s! { pub __tm_nsec: c_int, } + #[derive(Default)] pub struct timeval { pub tv_sec: time_t, pub tv_usec: suseconds_t, } + #[derive(Default)] pub struct timespec { pub tv_sec: time_t, pub tv_nsec: c_long, diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 775be13bac91c..f51202bf6567f 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -72,11 +72,13 @@ s! { pub tm_isdst: c_int, } + #[derive(Default)] pub struct timeval { pub tv_sec: c_long, pub tv_usec: c_long, } + #[derive(Default)] pub struct timespec { pub tv_sec: time_t, pub tv_nsec: c_long, From 50891bccf4bb387712a7eaae54fafa0056adca5d Mon Sep 17 00:00:00 2001 From: jam1garner Date: Mon, 16 Feb 2026 12:26:59 -0500 Subject: [PATCH 1168/1228] Fix Nintendo Switch Target Support (backport ) (cherry picked from commit 3c84a2279737e22725f8280569ee9b47d90c8dc3) --- src/switch.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/switch.rs b/src/switch.rs index d965ff7005fb2..2d202dd61fc5d 100644 --- a/src/switch.rs +++ b/src/switch.rs @@ -1,4 +1,5 @@ //! Switch C type definitions +use crate::prelude::*; pub type intmax_t = i64; pub type uintmax_t = u64; From 0d076816621ab9989bc7c7acfed00a2156d0aac9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 15:03:42 +0000 Subject: [PATCH 1169/1228] build(deps): bump vmactions/solaris-vm from 1.3.0 to 1.3.1 Bumps [vmactions/solaris-vm](https://github.com/vmactions/solaris-vm) from 1.3.0 to 1.3.1. - [Release notes](https://github.com/vmactions/solaris-vm/releases) - [Commits](https://github.com/vmactions/solaris-vm/compare/v1.3.0...v1.3.1) --- updated-dependencies: - dependency-name: vmactions/solaris-vm dependency-version: 1.3.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] (backport ) (cherry picked from commit a41bc082ed4e42d8817caadfc82fabed7f6fd9bc) --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index bd5fa66d8aa8f..79dedef6ec6de 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -273,7 +273,7 @@ jobs: steps: - uses: actions/checkout@v6 - name: test on Solaris - uses: vmactions/solaris-vm@v1.3.0 + uses: vmactions/solaris-vm@v1.3.1 if: contains(matrix.target, 'solaris') with: release: "11.4-gcc" From 31ff060d4f205b22d9008f053797faaedd9698d2 Mon Sep 17 00:00:00 2001 From: auronandace Date: Thu, 19 Feb 2026 12:32:31 +0000 Subject: [PATCH 1170/1228] change sa_flags in sigaction to c_int on redox (backport ) (cherry picked from commit 939f0090c2190755b0617172ba1b8ddbc5077d20) --- src/unix/redox/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 96a2df71be66e..2029e57e602a0 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -153,7 +153,7 @@ s! { #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, - pub sa_flags: c_ulong, + pub sa_flags: c_int, pub sa_restorer: Option, pub sa_mask: crate::sigset_t, } From 198d013552e916aa80161d9c9c90c1e2ef12a370 Mon Sep 17 00:00:00 2001 From: Thomas de Zeeuw Date: Tue, 24 Feb 2026 16:45:07 +0100 Subject: [PATCH 1171/1228] Add SOMAXCONN to ESP-IDF (backport ) (cherry picked from commit f5ba622fbd04286cbb804c43f6e91dfc241eb839) --- libc-test/semver/espidf.txt | 1 + src/unix/newlib/espidf/mod.rs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/libc-test/semver/espidf.txt b/libc-test/semver/espidf.txt index 74f0d0cb5266d..cdef4f09bc0eb 100644 --- a/libc-test/semver/espidf.txt +++ b/libc-test/semver/espidf.txt @@ -31,6 +31,7 @@ SIGQUIT SIGSEGV SIGTERM SOL_SOCKET +SOMAXCONN cmsghdr dirent eventfd diff --git a/src/unix/newlib/espidf/mod.rs b/src/unix/newlib/espidf/mod.rs index 9bec89a7d78d4..d3b01b883566b 100644 --- a/src/unix/newlib/espidf/mod.rs +++ b/src/unix/newlib/espidf/mod.rs @@ -97,6 +97,8 @@ pub const SIGHUP: c_int = 1; pub const SIGQUIT: c_int = 3; pub const NSIG: size_t = 32; +pub const SOMAXCONN: c_int = 128; + extern "C" { pub fn pthread_create( native: *mut crate::pthread_t, From a444857db023f391cb97a587a9539d312510cd64 Mon Sep 17 00:00:00 2001 From: antoncxx Date: Sun, 22 Feb 2026 20:04:14 -0500 Subject: [PATCH 1172/1228] Added `kinfo_file` structure & related constants Also added descriptor types constants (backport ) (cherry picked from commit 8c149580f7cccaae9b674566ee90e5bad9b14868) --- libc-test/semver/openbsd.txt | 17 +++++ src/unix/bsd/netbsdlike/openbsd/mod.rs | 92 ++++++++++++++++++++++++++ 2 files changed, 109 insertions(+) diff --git a/libc-test/semver/openbsd.txt b/libc-test/semver/openbsd.txt index 1dcda9147f126..cc84b0bb7ff18 100644 --- a/libc-test/semver/openbsd.txt +++ b/libc-test/semver/openbsd.txt @@ -140,6 +140,12 @@ DAY_4 DAY_5 DAY_6 DAY_7 +DTYPE_DMABUF +DTYPE_KQUEUE +DTYPE_PIPE +DTYPE_SOCKET +DTYPE_SYNC +DTYPE_VNODE DT_UNKNOWN D_FMT D_T_FMT @@ -362,6 +368,14 @@ KERN_CPUSTATS KERN_DOMAINNAME KERN_EVCOUNT KERN_FILE +KERN_FILESLOP +KERN_FILE_BYFILE +KERN_FILE_BYPID +KERN_FILE_BYUID +KERN_FILE_CDIR +KERN_FILE_RDIR +KERN_FILE_TEXT +KERN_FILE_TRACE KERN_FORKSTAT KERN_FSCALE KERN_FSYNC @@ -444,7 +458,9 @@ KERN_WATCHDOG KI_EMULNAMELEN KI_MAXCOMLEN KI_MAXLOGNAME +KI_MNAMELEN KI_NGROUPS +KI_UNPPATHLEN KI_WMESGLEN KVE_ADV_NORMAL KVE_ADV_RANDOM @@ -1186,6 +1202,7 @@ jrand48 kevent key_t killpg +kinfo_file kinfo_proc kinfo_vmentry kqueue diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 08bbb1b8054c5..00b7e18172233 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -525,6 +525,77 @@ s! { pub p_name: [c_char; KI_MAXCOMLEN as usize], } + pub struct kinfo_file { + pub f_fileaddr: u64, + pub f_flag: u32, + pub f_iflags: u32, + pub f_type: u32, + pub f_count: u32, + pub f_msgcount: u32, + pub f_usecount: u32, + pub f_ucred: u64, + pub f_uid: u32, + pub f_gid: u32, + pub f_ops: u64, + pub f_offset: u64, + pub f_data: u64, + pub f_rxfer: u64, + pub f_rwfer: u64, + pub f_seek: u64, + pub f_rbytes: u64, + pub f_wbytes: u64, + pub v_un: u64, + pub v_type: u32, + pub v_tag: u32, + pub v_flag: u32, + pub va_rdev: u32, + pub v_data: u64, + pub v_mount: u64, + pub va_fileid: u64, + pub va_size: u64, + pub va_mode: u32, + pub va_fsid: u32, + pub f_mntonname: [c_char; KI_MNAMELEN as usize], + pub so_type: u32, + pub so_state: u32, + pub so_pcb: u64, + pub so_protocol: u32, + pub so_family: u32, + pub inp_ppcb: u64, + pub inp_lport: u32, + pub inp_laddru: [u32; 4], + pub inp_fport: u32, + pub inp_faddru: [u32; 4], + pub unp_conn: u64, + pub pipe_peer: u64, + pub pipe_state: u32, + pub kq_count: u32, + pub kq_state: u32, + pub __unused1: u32, + pub p_pid: u32, + pub fd_fd: i32, + pub fd_ofileflags: u32, + pub p_uid: u32, + pub p_gid: u32, + pub p_tid: u32, + pub p_comm: [c_char; KI_MAXCOMLEN as usize], + pub inp_rtableid: u32, + pub so_splice: u64, + pub so_splicelen: i64, + pub so_rcv_cc: u64, + pub so_snd_cc: u64, + pub unp_refs: u64, + pub unp_nextref: u64, + pub unp_addr: u64, + pub unp_path: [c_char; KI_UNPPATHLEN as usize], + pub inp_proto: u32, + pub t_state: u32, + pub t_rcv_wnd: u64, + pub t_snd_wnd: u64, + pub t_snd_cwnd: u64, + pub va_nlink: u32, + } + pub struct kinfo_vmentry { pub kve_start: c_ulong, pub kve_end: c_ulong, @@ -1427,6 +1498,19 @@ pub const KVE_INH_ZERO: c_int = 0x00000030; pub const KVE_F_STATIC: c_int = 0x1; pub const KVE_F_KMEM: c_int = 0x2; +pub const KERN_FILE_BYFILE: c_int = 1; +pub const KERN_FILE_BYPID: c_int = 2; +pub const KERN_FILE_BYUID: c_int = 3; +pub const KERN_FILESLOP: c_int = 10; + +pub const KERN_FILE_TEXT: c_int = -1; +pub const KERN_FILE_CDIR: c_int = -2; +pub const KERN_FILE_RDIR: c_int = -3; +pub const KERN_FILE_TRACE: c_int = -4; + +pub const KI_MNAMELEN: c_int = 96; +pub const KI_UNPPATHLEN: c_int = 104; + pub const CHWFLOW: crate::tcflag_t = crate::MDMBUF | crate::CRTSCTS; pub const OLCUC: crate::tcflag_t = 0x20; pub const ONOCR: crate::tcflag_t = 0x40; @@ -1569,6 +1653,14 @@ pub const FUTEX_WAKE: c_int = 2; pub const FUTEX_REQUEUE: c_int = 3; pub const FUTEX_PRIVATE_FLAG: c_int = 128; +// sys/file.h +pub const DTYPE_VNODE: c_int = 1; +pub const DTYPE_SOCKET: c_int = 2; +pub const DTYPE_PIPE: c_int = 3; +pub const DTYPE_KQUEUE: c_int = 4; +pub const DTYPE_DMABUF: c_int = 5; +pub const DTYPE_SYNC: c_int = 6; + // sysctl.h, kinfo_proc p_eflag constants pub const EPROC_CTTY: i32 = 0x01; // controlling tty vnode active pub const EPROC_SLEADER: i32 = 0x02; // session leader From e7f99026dc87849e0c0107019dca1a6418bec9e2 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Wed, 25 Feb 2026 22:20:20 +0700 Subject: [PATCH 1173/1228] redox: fix blkcnt_t type (backport ) (cherry picked from commit 12bbae2e2c0423c9198f3f6c09db3f2360685634) --- src/unix/redox/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 2029e57e602a0..635d73027be3c 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -2,7 +2,7 @@ use crate::prelude::*; pub type wchar_t = i32; -pub type blkcnt_t = c_ulong; +pub type blkcnt_t = c_longlong; pub type blksize_t = c_long; pub type clock_t = c_long; pub type clockid_t = c_int; From 82cb126e16b998d3c231bd320534e213b2096ff4 Mon Sep 17 00:00:00 2001 From: Brian Cain Date: Sun, 22 Feb 2026 21:09:12 -0800 Subject: [PATCH 1174/1228] enable musl32_time64 and musl_v1_2_3 for hexagon Hexagon musl uses 64-bit time_t (__USE_TIME_BITS64), so add it to MUSL_REDIR_TIME64_ARCHES and force musl_v1_2_3 since hexagon only exists with recent musl. Without this, time_t is c_long (4 bytes) causing a 24-byte stack buffer overflow on fstat() calls. (backport ) (cherry picked from commit 0a15ee8898875514c3f1e372d9e2c604ab721d27) --- build.rs | 6 +++--- libc-test/build.rs | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/build.rs b/build.rs index 199a9ac422ccf..5eb2de351dfdc 100644 --- a/build.rs +++ b/build.rs @@ -52,7 +52,7 @@ const CHECK_CFG_EXTRA: &[(&str, &[&str])] = &[ ]; /// Musl architectures that set `#define _REDIR_TIME64 1`. -const MUSL_REDIR_TIME64_ARCHES: &[&str] = &["arm", "mips", "powerpc", "x86"]; +const MUSL_REDIR_TIME64_ARCHES: &[&str] = &["arm", "hexagon", "mips", "powerpc", "x86"]; fn main() { // Avoid unnecessary re-building. @@ -110,8 +110,8 @@ fn main() { // OpenHarmony uses a fork of the musl libc let musl = target_env == "musl" || target_env == "ohos"; - // loongarch64 and ohos only exist with recent musl - if target_arch == "loongarch64" || target_env == "ohos" { + // loongarch64, hexagon, and ohos only exist with recent musl + if target_arch == "loongarch64" || target_arch == "hexagon" || target_env == "ohos" { musl_v1_2_3 = true; } diff --git a/libc-test/build.rs b/libc-test/build.rs index 56ace01fd574e..4e7370d089b8f 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3831,6 +3831,7 @@ fn test_linux(target: &str) { let gnueabihf = target.contains("gnueabihf"); let x86_64_gnux32 = target.contains("gnux32") && x86_64; let riscv64 = target.contains("riscv64"); + let hexagon = target.contains("hexagon"); let loongarch64 = target.contains("loongarch64"); let wasm32 = target.contains("wasm32"); let uclibc = target.contains("uclibc"); @@ -3845,9 +3846,9 @@ fn test_linux(target: &str) { let old_musl = musl && !musl_v1_2_3; let mut cfg = ctest_cfg(); - if (musl_v1_2_3 || loongarch64) && musl { + if (musl_v1_2_3 || loongarch64 || hexagon) && musl { cfg.cfg("musl_v1_2_3", None); - if arm || ppc32 || x86_32 || mips32 { + if arm || hexagon || ppc32 || x86_32 || mips32 { cfg.cfg("musl32_time64", None); cfg.cfg("linux_time_bits64", None); } From 62c89e800adae1a3555798aad9cfffc2b7a9e7b8 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 2 Mar 2026 03:24:11 -0500 Subject: [PATCH 1175/1228] OpenBSD: Wrap an unused field in `Padding` (backport ) (cherry picked from commit 25f7037a3577c0669fc4473be0ab21a28030f68f) --- src/unix/bsd/netbsdlike/openbsd/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 00b7e18172233..b6e70f9871d4b 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -571,7 +571,7 @@ s! { pub pipe_state: u32, pub kq_count: u32, pub kq_state: u32, - pub __unused1: u32, + __unused1: Padding, pub p_pid: u32, pub fd_fd: i32, pub fd_ofileflags: u32, From 17f5cce00dec1207d659f21affc35fb39bca0340 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2026 14:54:55 +0000 Subject: [PATCH 1176/1228] build(deps): bump actions/upload-artifact from 6 to 7 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] (backport ) (cherry picked from commit 538f7b63f3e37484c62a318f47353a72e72c9a58) --- .github/workflows/ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 79dedef6ec6de..111eef1fd1388 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -156,7 +156,7 @@ jobs: id: create_artifacts if: always() run: python3 ci/create-artifacts.py - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 if: always() && steps.create_artifacts.outcome == 'success' with: name: ${{ env.ARCHIVE_NAME }}-${{ matrix.target }}${{ matrix.artifact-tag && format('-{0}', matrix.artifact-tag) }} @@ -253,7 +253,7 @@ jobs: id: create_artifacts if: always() run: ./ci/create-artifacts.py - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 if: always() && steps.create_artifacts.outcome == 'success' with: name: ${{ env.ARCHIVE_NAME }}-${{ matrix.target }}${{ matrix.artifact-tag && format('-{0}', matrix.artifact-tag) }} From d0bd7e2f2ff74d871b008069c175887cfc4e3867 Mon Sep 17 00:00:00 2001 From: Anton Liashkevich Date: Mon, 2 Mar 2026 21:57:27 -0500 Subject: [PATCH 1177/1228] NetBSD: add kinfo_file, kinfo_pcb structures and related constants (backport ) (cherry picked from commit 56caa81b6b433c49c5704bf0400a02d428cfacda) --- libc-test/build.rs | 2 ++ libc-test/semver/netbsd.txt | 19 +++++++++++- src/new/mod.rs | 2 ++ src/new/netbsd/sys/file.rs | 16 ++++++++++ src/new/netbsd/sys/mod.rs | 2 ++ src/new/netbsd/sys/socket.rs | 44 +++++++++++++++++++++++++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 31 +++++++++++++++++++ 7 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 src/new/netbsd/sys/file.rs create mode 100644 src/new/netbsd/sys/socket.rs diff --git a/libc-test/build.rs b/libc-test/build.rs index 4e7370d089b8f..a8590e09a4ad7 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1521,6 +1521,8 @@ fn test_netbsd(target: &str) { ("ifreq", "ifr_ifru") => true, ("utmpx", "ut_exit") => true, ("posix_spawn_file_actions_entry_t", "fae_data") => true, + ("kinfo_pcb", "ki_s") => true, + ("kinfo_pcb", "ki_d") => true, _ => false, } diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index 982f610a4f3aa..7b99a8c29cc3c 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -235,6 +235,16 @@ DCCP_TYPE_RESET DCCP_TYPE_RESPONSE DEAD_PROCESS DOWN_TIME +DTYPE_CRYPTO +DTYPE_EVENTFD +DTYPE_KQUEUE +DTYPE_MISC +DTYPE_MQUEUE +DTYPE_PIPE +DTYPE_SEM +DTYPE_SOCKET +DTYPE_TIMERFD +DTYPE_VNODE DT_UNKNOWN D_FMT D_T_FMT @@ -499,6 +509,9 @@ KERN_DUMP_ON_PANIC KERN_EVCNT KERN_FILE KERN_FILE2 +KERN_FILESLOP +KERN_FILE_BYFILE +KERN_FILE_BYPID KERN_FORKFSLEEP KERN_FSCALE KERN_FSYNC @@ -767,6 +780,8 @@ O_RSYNC O_SEARCH O_SHLOCK O_SYNC +PCB_ALL +PCB_SLOP PENDIN PF_APPLETALK PF_ARP @@ -1381,8 +1396,10 @@ jrand48 kevent key_t killpg +kinfo_file kinfo_getvmmap kinfo_lwp +kinfo_pcb kinfo_proc2 kinfo_vmentry kqueue @@ -1629,4 +1646,4 @@ utmpxname utrace uucred wait4 -waitid +waitid \ No newline at end of file diff --git a/src/new/mod.rs b/src/new/mod.rs index 8b1fdc2317436..fa6c3bf3bd774 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -195,7 +195,9 @@ cfg_if! { pub use signal::*; } else if #[cfg(target_os = "netbsd")] { pub use net::if_::*; + pub use sys::file::*; pub use sys::ipc::*; + pub use sys::socket::*; pub use sys::statvfs::*; pub use sys::time::*; pub use sys::timex::*; diff --git a/src/new/netbsd/sys/file.rs b/src/new/netbsd/sys/file.rs new file mode 100644 index 0000000000000..103b68de4db1f --- /dev/null +++ b/src/new/netbsd/sys/file.rs @@ -0,0 +1,16 @@ +//! Header: `sys/file.h` +//! +//! + +use crate::prelude::*; + +pub const DTYPE_VNODE: c_int = 1; +pub const DTYPE_SOCKET: c_int = 2; +pub const DTYPE_PIPE: c_int = 3; +pub const DTYPE_KQUEUE: c_int = 4; +pub const DTYPE_MISC: c_int = 5; +pub const DTYPE_CRYPTO: c_int = 6; +pub const DTYPE_MQUEUE: c_int = 7; +pub const DTYPE_SEM: c_int = 8; +pub const DTYPE_EVENTFD: c_int = 9; +pub const DTYPE_TIMERFD: c_int = 10; diff --git a/src/new/netbsd/sys/mod.rs b/src/new/netbsd/sys/mod.rs index 185c1f1c2cba1..b7255d87b309d 100644 --- a/src/new/netbsd/sys/mod.rs +++ b/src/new/netbsd/sys/mod.rs @@ -2,7 +2,9 @@ //! //! https://github.com/NetBSD/src/tree/trunk/sys/sys +pub(crate) mod file; pub(crate) mod ipc; +pub(crate) mod socket; pub(crate) mod statvfs; pub(crate) mod time; pub(crate) mod timex; diff --git a/src/new/netbsd/sys/socket.rs b/src/new/netbsd/sys/socket.rs new file mode 100644 index 0000000000000..953526032efef --- /dev/null +++ b/src/new/netbsd/sys/socket.rs @@ -0,0 +1,44 @@ +//! Header: `sys/socket.h` +//! +//! +//! + +use crate::prelude::*; + +s_no_extra_traits! { + pub union __c_anonymous_pcb_sockaddr_src { + pub _kis_src: crate::sockaddr, + _kis_pad: Padding<[c_char; 256 + 8]>, + } + + pub union __c_anonymous_pcb_sockaddr_dst { + pub _kid_dst: crate::sockaddr, + _kid_pad: Padding<[c_char; 256 + 8]>, + } + + pub struct kinfo_pcb { + pub ki_pcbaddr: u64, + pub ki_ppcbaddr: u64, + pub ki_sockaddr: u64, + pub ki_family: u32, + pub ki_type: u32, + pub ki_protocol: u32, + pub ki_pflags: u32, + pub ki_sostate: u32, + pub ki_prstate: u32, + pub ki_tstate: i32, + pub ki_tflags: u32, + pub ki_rcvq: u64, + pub ki_sndq: u64, + pub ki_s: __c_anonymous_pcb_sockaddr_src, + pub ki_d: __c_anonymous_pcb_sockaddr_dst, + pub ki_inode: u64, + pub ki_vnode: u64, + pub ki_conn: u64, + pub ki_refs: u64, + pub ki_nextref: u64, + } +} + +pub const PCB_SLOP: c_int = 20; +pub const PCB_ALL: c_int = 0; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index ffbc543d33026..27e77c28b4f24 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -443,6 +443,33 @@ s! { pub a_v: Elf64_Xword, } + // sys/sysctl.h + + pub struct kinfo_file { + pub ki_fileaddr: u64, + pub ki_flag: u32, + pub ki_iflags: u32, + pub ki_ftype: u32, + pub ki_count: u32, + pub ki_msgcount: u32, + pub ki_usecount: u32, + pub ki_fucred: u64, + pub ki_fuid: u32, + pub ki_fgid: u32, + pub ki_fops: u64, + pub ki_foffset: u64, + pub ki_fdata: u64, + pub ki_vun: u64, + pub ki_vsize: u64, + pub ki_vtype: u32, + pub ki_vtag: u32, + pub ki_vdata: u64, + pub ki_pid: u32, + pub ki_fd: i32, + pub ki_ofileflags: u32, + _ki_padto64bits: Padding, + } + // link.h pub struct dl_phdr_info { @@ -1698,6 +1725,10 @@ pub const KI_MAXLOGNAME: c_int = 24; pub const KI_MAXEMULLEN: c_int = 16; pub const KI_LNAMELEN: c_int = 20; +pub const KERN_FILE_BYFILE: c_int = 1; +pub const KERN_FILE_BYPID: c_int = 2; +pub const KERN_FILESLOP: c_int = 10; + // sys/lwp.h pub const LSIDL: c_int = 1; pub const LSRUN: c_int = 2; From af8b8127bc7fcce8a5e70cb1a4ab8b33021bf02e Mon Sep 17 00:00:00 2001 From: Raushan Kumar Date: Tue, 17 Feb 2026 07:39:18 +0000 Subject: [PATCH 1178/1228] linux: relocate PIDFD definitions to src/new (backport ) (cherry picked from commit cec13cb6e9093d38c97b8aecb704161e24a1f664) --- src/new/linux_uapi/linux/mod.rs | 1 + src/new/linux_uapi/linux/pidfd.rs | 59 +++++++++++++++++++++++++++++++ src/new/mod.rs | 1 + src/unix/linux_like/linux/mod.rs | 46 ------------------------ 4 files changed, 61 insertions(+), 46 deletions(-) create mode 100644 src/new/linux_uapi/linux/pidfd.rs diff --git a/src/new/linux_uapi/linux/mod.rs b/src/new/linux_uapi/linux/mod.rs index 994a59c0c3864..09e2c3ece7417 100644 --- a/src/new/linux_uapi/linux/mod.rs +++ b/src/new/linux_uapi/linux/mod.rs @@ -6,3 +6,4 @@ pub(crate) mod can; pub(crate) mod keyctl; pub(crate) mod membarrier; pub(crate) mod netlink; +pub(crate) mod pidfd; diff --git a/src/new/linux_uapi/linux/pidfd.rs b/src/new/linux_uapi/linux/pidfd.rs new file mode 100644 index 0000000000000..1835184a18601 --- /dev/null +++ b/src/new/linux_uapi/linux/pidfd.rs @@ -0,0 +1,59 @@ +//! Header: `uapi/linux/pidfd.h` + +use crate::prelude::*; +use crate::{ + Ioctl, + _IO, + _IOWR, +}; + +/* Flags for pidfd_open(). */ +pub const PIDFD_NONBLOCK: c_uint = crate::O_NONBLOCK as c_uint; +pub const PIDFD_THREAD: c_uint = crate::O_EXCL as c_uint; + +/* Flags for pidfd_send_signal(). */ +pub const PIDFD_SIGNAL_THREAD: c_uint = 1 << 0; +pub const PIDFD_SIGNAL_THREAD_GROUP: c_uint = 1 << 1; +pub const PIDFD_SIGNAL_PROCESS_GROUP: c_uint = 1 << 2; + +/* Flags for pidfd_info. */ +pub const PIDFD_INFO_PID: c_uint = 1 << 0; +pub const PIDFD_INFO_CREDS: c_uint = 1 << 1; +pub const PIDFD_INFO_CGROUPID: c_uint = 1 << 2; +pub const PIDFD_INFO_EXIT: c_uint = 1 << 3; + +pub const PIDFD_INFO_SIZE_VER0: c_uint = 64; + +s! { + #[non_exhaustive] + pub struct pidfd_info { + pub mask: crate::__u64, + pub cgroupid: crate::__u64, + pub pid: crate::__u32, + pub tgid: crate::__u32, + pub ppid: crate::__u32, + pub ruid: crate::__u32, + pub rgid: crate::__u32, + pub euid: crate::__u32, + pub egid: crate::__u32, + pub suid: crate::__u32, + pub sgid: crate::__u32, + pub fsuid: crate::__u32, + pub fsgid: crate::__u32, + pub exit_code: crate::__s32, + } +} + +const PIDFS_IOCTL_MAGIC: c_uint = 0xFF; + +pub const PIDFD_GET_CGROUP_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 1); +pub const PIDFD_GET_IPC_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 2); +pub const PIDFD_GET_MNT_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 3); +pub const PIDFD_GET_NET_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 4); +pub const PIDFD_GET_PID_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 5); +pub const PIDFD_GET_PID_FOR_CHILDREN_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 6); +pub const PIDFD_GET_TIME_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 7); +pub const PIDFD_GET_TIME_FOR_CHILDREN_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 8); +pub const PIDFD_GET_USER_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 9); +pub const PIDFD_GET_UTS_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 10); +pub const PIDFD_GET_INFO: Ioctl = _IOWR::(PIDFS_IOCTL_MAGIC, 11); diff --git a/src/new/mod.rs b/src/new/mod.rs index fa6c3bf3bd774..c0c6891242ad4 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -184,6 +184,7 @@ cfg_if! { pub use linux::keyctl::*; pub use linux::membarrier::*; pub use linux::netlink::*; + pub use linux::pidfd::*; #[cfg(target_env = "gnu")] pub use net::route::*; } else if #[cfg(target_vendor = "apple")] { diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 13d25bd9722d9..a7d0b022571be 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1012,24 +1012,6 @@ s! { // linux/pidfd.h - #[non_exhaustive] - pub struct pidfd_info { - pub mask: crate::__u64, - pub cgroupid: crate::__u64, - pub pid: crate::__u32, - pub tgid: crate::__u32, - pub ppid: crate::__u32, - pub ruid: crate::__u32, - pub rgid: crate::__u32, - pub euid: crate::__u32, - pub egid: crate::__u32, - pub suid: crate::__u32, - pub sgid: crate::__u32, - pub fsuid: crate::__u32, - pub fsgid: crate::__u32, - pub exit_code: crate::__s32, - } - // linux/uio.h pub struct dmabuf_cmsg { @@ -1635,34 +1617,6 @@ pub const NS_MNT_GET_INFO: Ioctl = _IOR::(NSIO, 10); pub const NS_MNT_GET_NEXT: Ioctl = _IOR::(NSIO, 11); pub const NS_MNT_GET_PREV: Ioctl = _IOR::(NSIO, 12); -// linux/pidfd.h -pub const PIDFD_NONBLOCK: c_uint = O_NONBLOCK as c_uint; -pub const PIDFD_THREAD: c_uint = O_EXCL as c_uint; - -pub const PIDFD_SIGNAL_THREAD: c_uint = 1 << 0; -pub const PIDFD_SIGNAL_THREAD_GROUP: c_uint = 1 << 1; -pub const PIDFD_SIGNAL_PROCESS_GROUP: c_uint = 1 << 2; - -pub const PIDFD_INFO_PID: c_uint = 1 << 0; -pub const PIDFD_INFO_CREDS: c_uint = 1 << 1; -pub const PIDFD_INFO_CGROUPID: c_uint = 1 << 2; -pub const PIDFD_INFO_EXIT: c_uint = 1 << 3; - -pub const PIDFD_INFO_SIZE_VER0: c_uint = 64; - -const PIDFS_IOCTL_MAGIC: c_uint = 0xFF; -pub const PIDFD_GET_CGROUP_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 1); -pub const PIDFD_GET_IPC_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 2); -pub const PIDFD_GET_MNT_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 3); -pub const PIDFD_GET_NET_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 4); -pub const PIDFD_GET_PID_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 5); -pub const PIDFD_GET_PID_FOR_CHILDREN_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 6); -pub const PIDFD_GET_TIME_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 7); -pub const PIDFD_GET_TIME_FOR_CHILDREN_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 8); -pub const PIDFD_GET_USER_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 9); -pub const PIDFD_GET_UTS_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 10); -pub const PIDFD_GET_INFO: Ioctl = _IOWR::(PIDFS_IOCTL_MAGIC, 11); - pub const PR_SET_MDWE: c_int = 65; pub const PR_GET_MDWE: c_int = 66; pub const PR_MDWE_REFUSE_EXEC_GAIN: c_uint = 1 << 0; From e9cca04dffbe546d5af7dc5302f8cb305d8e7370 Mon Sep 17 00:00:00 2001 From: Samuele Cerea Date: Sat, 21 Feb 2026 12:38:56 +0100 Subject: [PATCH 1179/1228] Linux: add `name_to_handle_at` and `open_by_handle_at` (backport ) (cherry picked from commit 8f74b4bf7089791e9995ca40ba0e7f8d220235fc) --- libc-test/build.rs | 12 ++++++++++++ libc-test/semver/linux.txt | 7 +++++++ src/unix/linux_like/linux/mod.rs | 22 ++++++++++++++++++++++ 3 files changed, 41 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index a8590e09a4ad7..985ed0e3bd042 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3819,6 +3819,7 @@ fn test_linux(target: &str) { } let arm = target.contains("arm"); + let eabihf = target.contains("eabihf"); let aarch64 = target.contains("aarch64"); let i686 = target.contains("i686"); let ppc = target.contains("powerpc"); @@ -4646,6 +4647,16 @@ fn test_linux(target: &str) { // FIXME(linux): Requires >= 6.16 kernel headers. "PTRACE_SET_SYSCALL_INFO" => true, + // FIXME(linux): Requires >= 6.13 kernel headers. + "AT_HANDLE_CONNECTABLE" => true, + + // FIXME(linux): Requires >= 6.12 kernel headers. + "AT_HANDLE_MNT_ID_UNIQUE" => true, + + // FIXME(musl): This value is not yet in musl. + // eabihf targets are tested using an older version of glibc + "AT_HANDLE_FID" if musl || eabihf => true, + _ => false, } }); @@ -4902,6 +4913,7 @@ fn test_linux(target: &str) { ("bcm_msg_head", "frames") => true, // FAM ("af_alg_iv", "iv") => true, + ("file_handle", "f_handle") if musl => true, // FIXME(ctest): ctest does not translate the rust code which computes the padding size ("pthread_cond_t", "__padding") if l4re => true, _ => false, diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index ebe192192dfd5..bd421d8d68c21 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -167,6 +167,9 @@ AT_EXECVE_CHECK AT_FDCWD AT_FLAGS AT_GID +AT_HANDLE_CONNECTABLE +AT_HANDLE_FID +AT_HANDLE_MNT_ID_UNIQUE AT_HWCAP AT_HWCAP2 AT_HWCAP3 @@ -1702,6 +1705,7 @@ MAP_STACK MAP_TYPE MAXTTL MAX_ADDR_LEN +MAX_HANDLE_SZ MAX_IPOPTLEN MAX_LINKS MCAST_BLOCK_SOURCE @@ -4024,6 +4028,7 @@ ff_trigger fgetpos64 fgetxattr file_clone_range +file_handle flistxattr fmemopen fopen64 @@ -4187,6 +4192,7 @@ msgrcv msgsnd msqid_ds name_t +name_to_handle_at newlocale nice nl_item @@ -4201,6 +4207,7 @@ nlmsghdr nrand48 off64_t open64 +open_by_handle_at open_how open_memstream openat diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index a7d0b022571be..dacd357bbb36f 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1246,6 +1246,14 @@ s! { pub sched_deadline: crate::__u64, pub sched_period: crate::__u64, } + + // linux/fcntl.h + + pub struct file_handle { + pub handle_bytes: c_uint, + pub handle_type: c_int, + pub f_handle: [c_uchar; 0], + } } cfg_if! { @@ -1416,6 +1424,11 @@ pub const IFF_ECHO: c_int = 0x40000; // linux/fcntl.h pub const AT_EXECVE_CHECK: c_int = 0x10000; +pub const MAX_HANDLE_SZ: c_int = 128; +pub const AT_HANDLE_FID: c_int = 0x200; +pub const AT_HANDLE_MNT_ID_UNIQUE: c_int = 0x001; +pub const AT_HANDLE_CONNECTABLE: c_int = 0x002; + // linux/if_addr.h pub const IFA_UNSPEC: c_ushort = 0; pub const IFA_ADDRESS: c_ushort = 1; @@ -4356,6 +4369,15 @@ extern "C" { pub fn gethostid() -> c_long; pub fn klogctl(syslog_type: c_int, bufp: *mut c_char, len: c_int) -> c_int; + + pub fn name_to_handle_at( + dirfd: c_int, + path: *const c_char, + handle: *mut file_handle, + mount_id: *mut c_int, + flags: c_int, + ) -> c_int; + pub fn open_by_handle_at(mount_fd: c_int, handle: *mut file_handle, flags: c_int) -> c_int; } // LFS64 extensions From e6436dcf4a702328aa365ced37f0a8e2d829ec3b Mon Sep 17 00:00:00 2001 From: Bhavya Gautam Date: Wed, 25 Feb 2026 15:00:24 +0530 Subject: [PATCH 1180/1228] Adding structs and defines for vxworks (backport ) (cherry picked from commit e5c6bd43795f992c443eca5adccc38a45064a2ca) --- libc-test/semver/vxworks.txt | 11 +++++++++ src/vxworks/mod.rs | 44 ++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/libc-test/semver/vxworks.txt b/libc-test/semver/vxworks.txt index bb5f32ccc608f..35d795a706e8a 100644 --- a/libc-test/semver/vxworks.txt +++ b/libc-test/semver/vxworks.txt @@ -241,12 +241,15 @@ ONLCR OPOST O_ACCMODE O_APPEND +O_ASYNC O_CLOEXEC O_CREAT +O_DSYNC O_EXCL O_NONBLOCK O_RDONLY O_RDWR +O_SYNC O_TRUNC O_WRONLY PARENB @@ -468,6 +471,7 @@ connect creat dev_t dirent +dirfd dladdr dlclose dlerror @@ -482,7 +486,9 @@ fchown fchownat fclose fcntl +fdatasync fdopen +fdopendir feof ferror fflush @@ -506,6 +512,7 @@ fscanf fseek fseeko fsetpos +fsid_t fstat fsync ftell @@ -586,6 +593,7 @@ memcpy memmove memset mkdir +mkdirat mkdtemp mkfifo mkstemp @@ -604,6 +612,7 @@ nfds_t nlink_t off_t open +openat opendir openlog pathconf @@ -676,6 +685,7 @@ raise read readdir readlink +readlinkat readv realloc realpath @@ -736,6 +746,7 @@ sprintf sscanf ssize_t stat +statfs strcat strchr strcmp diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 9ac68c5e96be9..9e91dcd5b3a50 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -241,6 +241,22 @@ s! { st_reserved4: Padding, } + pub struct fsid_t { + val: [c_long; 2], + } + + pub struct statfs { + pub f_type: c_long, + pub f_bsize: c_long, + pub f_blocks: c_long, + pub f_bfree: c_long, + pub f_bavail: c_long, + pub f_files: c_long, + pub f_ffree: c_long, + pub f_fsid: crate::fsid_t, + f_spare: Padding<[c_long; 7]>, + } + //b_struct__Timespec.h pub struct _Timespec { pub tv_sec: crate::time_t, @@ -1374,6 +1390,9 @@ pub const O_ACCMODE: c_int = 3; pub const O_CLOEXEC: c_int = 0x100000; // fcntlcom pub const O_EXCL: c_int = 0x0800; pub const O_CREAT: c_int = 0x0200; +pub const O_SYNC: c_int = 0x2000; +pub const O_ASYNC: c_int = 0x0040; +pub const O_DSYNC: c_int = 0x10000; pub const O_TRUNC: c_int = 0x0400; pub const O_APPEND: c_int = 0x0008; pub const O_RDWR: c_int = 0x0002; @@ -1560,6 +1579,15 @@ extern "C" { flags: c_int, ) -> c_int; + pub fn mkdirat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; + + pub fn readlinkat( + dirfd: c_int, + pathname: *const c_char, + buf: *mut c_char, + bufsiz: size_t, + ) -> ssize_t; + pub fn unlinkat(dirfd: c_int, pathname: *const c_char, flags: c_int) -> c_int; // netdb.h @@ -1606,6 +1634,7 @@ extern "C" { pub fn pause() -> c_int; pub fn seteuid(uid: uid_t) -> c_int; pub fn setegid(gid: gid_t) -> c_int; + pub fn statfs(path: *const c_char, buf: *mut statfs) -> c_int; pub fn sleep(secs: c_uint) -> c_uint; pub fn ttyname(fd: c_int) -> *mut c_char; pub fn wait(status: *mut c_int) -> pid_t; @@ -1818,6 +1847,9 @@ extern "C" { // stat.h pub fn fstat(fildes: c_int, buf: *mut stat) -> c_int; + // sys/statfs.h + pub fn fstatfs(fd: c_int, buf: *mut statfs) -> c_int; + // stat.h pub fn lstat(path: *const c_char, buf: *mut stat) -> c_int; @@ -1834,10 +1866,19 @@ extern "C" { // dirent.h pub fn readdir(pDir: *mut crate::DIR) -> *mut crate::dirent; + // dirent.h + pub fn fdopendir(fd: c_int) -> *mut crate::DIR; + + // dirent.h + pub fn dirfd(dirp: *mut crate::DIR) -> c_int; + // fcntl.h or // ioLib.h pub fn open(path: *const c_char, oflag: c_int, ...) -> c_int; + // fcntl.h + pub fn openat(dirfd: c_int, pathname: *const c_char, flags: c_int, ...) -> c_int; + // poll.h pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: c_int) -> c_int; @@ -2175,6 +2216,9 @@ extern "C" { // unistd.h pub fn fsync(fd: c_int) -> c_int; + // unistd.h + pub fn fdatasync(fd: c_int) -> c_int; + // dirent.h pub fn closedir(ptr: *mut crate::DIR) -> c_int; From 8b439b76789d14215296766e97e0692e7900f1e1 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 8 Mar 2026 14:18:54 +0900 Subject: [PATCH 1181/1228] allow unused link_cfg feature in rustc-dep-of-std --- src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib.rs b/src/lib.rs index bb41b4356a714..76c668dca8d6b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -27,6 +27,7 @@ // Attributes needed when building as part of the standard library #![cfg_attr(feature = "rustc-dep-of-std", feature(link_cfg, no_core))] #![cfg_attr(feature = "rustc-dep-of-std", allow(internal_features))] +#![cfg_attr(feature = "rustc-dep-of-std", allow(unused_features))] // DIFF(1.0): The thread local references that raise this lint were removed in 1.0 #![cfg_attr(feature = "rustc-dep-of-std", allow(static_mut_refs))] #![cfg_attr(not(feature = "rustc-dep-of-std"), no_std)] From 5660e6fc058d1c6c27788e3ea2bc7d3e79d3c22d Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 8 Mar 2026 16:00:51 +0900 Subject: [PATCH 1182/1228] chore: Release libc 0.2.183 --- CHANGELOG.md | 19 +++++++++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 76b3e484a942e..39117daf125ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## [0.2.183](https://github.com/rust-lang/libc/compare/0.2.182...0.2.183) - 2026-03-08 + +### Added + +- ESP-IDF: Add `SOMAXCONN` ([#4993](https://github.com/rust-lang/libc/pull/4993)) +- Linux: Add `name_to_handle_at` and `open_by_handle_at` ([#4988](https://github.com/rust-lang/libc/pull/4988)) +- NetBSD: Add `kinfo_file`, `kinfo_pcb`, and related constants ([#4985](https://github.com/rust-lang/libc/pull/4985)) +- OpenBSD: Add `kinfo_file` and related constants ([#4991](https://github.com/rust-lang/libc/pull/4991)) +- VxWorks: Add additional structs and defines ([#5003](https://github.com/rust-lang/libc/pull/5003)) +- Various: Implement `Default` for `timeval` and `timespec` ([#4976](https://github.com/rust-lang/libc/pull/4976)) + +### Fixed + +- Hexagon musl: Enable unstable 64-bit `time_t` support and `musl_v1_2_3` ([#4992](https://github.com/rust-lang/libc/pull/4992)) +- Nintendo Switch: Fix target support ([#4982](https://github.com/rust-lang/libc/pull/4982)) +- OpenBSD: Wrap an unused field in `Padding` ([#4997](https://github.com/rust-lang/libc/pull/4997)) +- Redox: Change `sigaction.sa_flags` to `c_int` ([#4986](https://github.com/rust-lang/libc/pull/4986)) +- Redox: Fix `blkcnt_t` type ([#4994](https://github.com/rust-lang/libc/pull/4994)) + ## [0.2.182](https://github.com/rust-lang/libc/compare/0.2.181...0.2.182) - 2026-02-13 ### Added diff --git a/Cargo.lock b/Cargo.lock index 87107f980a844..9ed67f982a5dd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -132,7 +132,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "libc" -version = "0.2.182" +version = "0.2.183" dependencies = [ "rustc-std-workspace-core", ] diff --git a/Cargo.toml b/Cargo.toml index 7bb55b46378a9..fe67351c90414 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.182" +version = "0.2.183" keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml", "cherry-pick-stable.sh"] diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 3494bfa3611d7..209842b6f52e7 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -10,7 +10,7 @@ repository = "https://github.com/rust-lang/libc" [dependencies] cfg-if = "1.0.4" -libc = { path = "..", version = "0.2.177", default-features = false } +libc = { path = "..", version = "0.2.183", default-features = false } [dev-dependencies] syn = { version = "2.0.108", features = ["full", "visit"] } From 50cc5db8ae544ef7bc5f8ddbd7f21ef365a3075e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Fri, 13 Feb 2026 06:36:59 +0000 Subject: [PATCH 1183/1228] Increase the MSRV from 1.63 to 1.65 Perform a small MSRV bump by two versions. The main thing this gets is access to the C types in `core::ffi`, which means the ecosystem can start harmonizing around those aliases instead of using e.g. `core::ffi::c_int` in some cases and `libc::c_int` in others. 1.65 is selected as a small bump over 1.64 because it comes with some small "nice" things like workspace-level lints and `cast_mut`. It has been over a year since the last MSRV bump to 1.63 (in 93052d1542de, "Document the MSRV of the stable channel as 1.63") so we could probably bump higher yet, but there isn't anything else on the list at [1] as useful as `core::ffi`. [1]: https://github.com/rust-lang/libc/issues/4626 --- .github/workflows/ci.yaml | 6 +++--- Cargo.toml | 2 +- README.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 111eef1fd1388..17af6d3c62119 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -53,7 +53,7 @@ jobs: name: Verify build strategy: matrix: - toolchain: [stable, 1.63.0] + toolchain: [stable, 1.65.0] include: # Nightly has a lot of targets, so split it in half - toolchain: nightly @@ -63,7 +63,7 @@ jobs: - toolchain: beta only: '(aarch64|x86_64)' # just a spot check for beta - toolchain: stable - - toolchain: 1.63.0 # msrv + - toolchain: 1.65.0 # msrv runs-on: ubuntu-24.04 timeout-minutes: 25 env: @@ -94,7 +94,7 @@ jobs: run: | set -eux # Remove `-Dwarnings` at the MSRV since lints may be different - [ "${{ matrix.toolchain }}" = "1.63.0" ] && export RUSTFLAGS="" + [ "${{ matrix.toolchain }}" = "1.65.0" ] && export RUSTFLAGS="" python3 ci/verify-build.py \ --toolchain "$TOOLCHAIN" \ ${BASELINE_CRATE_DIR:+"--baseline-crate-dir" "$BASELINE_CRATE_DIR"} \ diff --git a/Cargo.toml b/Cargo.toml index fe67351c90414..f1c9797f57a67 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ authors = ["The Rust Project Developers"] edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/rust-lang/libc" -rust-version = "1.63" +rust-version = "1.65" [package.metadata.docs.rs] features = ["extra_traits"] diff --git a/README.md b/README.md index 607bf308d01eb..69aff2cae166d 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ The following features are deprecated: ## Rust version support -The minimum supported Rust toolchain version is currently **Rust 1.63**. +The minimum supported Rust toolchain version is currently **Rust 1.65**. Increases to the MSRV are allowed to change without a major (i.e. semver- breaking) release in order to avoid a ripple effect in the ecosystem. A policy From 3e8ead8c230bb58a34545a0571e6f7ffd92050ab Mon Sep 17 00:00:00 2001 From: Jesse Hoogervorst Date: Fri, 15 Nov 2024 16:26:52 +0100 Subject: [PATCH 1184/1228] Changed type definition and removed reserved field (+1 squashed commits) Squashed commits: [19a852646] Removed polyfill implementation and updated struct and constants required (+2 squashed commit) Squashed commit: [7aeabc9a5] Fixed style issues [a3932998e] Implemented flock for vxworks using ioctl [ Dropped :: prefix to match current style - Trevor ] (backport ) (cherry picked from commit 1256e150519ebb7d3840e985884d8e21afb1dd25) --- src/vxworks/mod.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 9e91dcd5b3a50..99b04c2f9df7a 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -474,6 +474,14 @@ s! { pub mq_curmsgs: c_long, } + pub struct flock { + pub l_type: c_short, + pub l_whence: c_short, + pub l_start: c_long, + pub l_len: c_long, + pub l_pid: c_long, + } + pub struct winsize { pub ws_row: c_ushort, pub ws_col: c_ushort, @@ -1193,6 +1201,9 @@ pub const F_GETLK: c_int = 7; pub const F_SETLK: c_int = 8; pub const F_SETLKW: c_int = 9; pub const F_DUPFD_CLOEXEC: c_int = 14; +pub const F_RDLCK: c_int = 1; +pub const F_WRLCK: c_int = 2; +pub const F_UNLCK: c_int = 3; pub const LOG_EMERG: c_int = 0; pub const LOG_ALERT: c_int = 1; From 0ab805ad16cb022fde238cfdb641480d7201afb4 Mon Sep 17 00:00:00 2001 From: Bhavya Gautam Date: Wed, 15 Oct 2025 08:44:45 +0000 Subject: [PATCH 1185/1228] Adding defines and functions required for vxworks Co-authored-by: Immad Mir [ Most of this was backported in 9db13cf1b83f ("Adding defines and functions required for vxworks"). This is the delta after the cherry pick of 4d289c38a477 ("Changed type definition and removed reserved field") that added flock. - Trevor ] (backport ) (cherry picked from commit 2bee2f363b53935c9f1432ad62a582e9cb7fcb10) --- src/vxworks/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 99b04c2f9df7a..bc4d536896473 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -477,8 +477,8 @@ s! { pub struct flock { pub l_type: c_short, pub l_whence: c_short, - pub l_start: c_long, - pub l_len: c_long, + pub l_start: c_longlong, + pub l_len: c_longlong, pub l_pid: c_long, } From 0874f58d06bc7c511182f27f0cb12da6702f50be Mon Sep 17 00:00:00 2001 From: Zhiwei Liang Date: Sat, 21 Feb 2026 21:22:49 -0500 Subject: [PATCH 1186/1228] Update relibc constants for Redox compatibility Signed-off-by: Zhiwei Liang (backport ) (cherry picked from commit be7535c4f6573c8be04602d2fafd85880cec77ee) --- src/unix/redox/mod.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 635d73027be3c..0b08d697aba3d 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -502,9 +502,7 @@ pub const F_GETFD: c_int = 1; pub const F_SETFD: c_int = 2; pub const F_GETFL: c_int = 3; pub const F_SETFL: c_int = 4; -// FIXME(redox): relibc { -pub const F_DUPFD_CLOEXEC: c_int = crate::F_DUPFD; -// } +pub const F_DUPFD_CLOEXEC: c_int = 1030; pub const FD_CLOEXEC: c_int = 0x0100_0000; pub const O_RDONLY: c_int = 0x0001_0000; pub const O_WRONLY: c_int = 0x0002_0000; @@ -574,7 +572,9 @@ pub const IPV6_MULTICAST_IF: c_int = 17; pub const IPV6_MULTICAST_HOPS: c_int = 18; pub const IPV6_MULTICAST_LOOP: c_int = 19; pub const IPV6_ADD_MEMBERSHIP: c_int = 20; +pub const IPV6_JOIN_GROUP: c_int = 20; pub const IPV6_DROP_MEMBERSHIP: c_int = 21; +pub const IPV6_LEAVE_GROUP: c_int = 21; pub const IPV6_V6ONLY: c_int = 26; pub const IP_MULTICAST_IF: c_int = 32; pub const IP_MULTICAST_TTL: c_int = 33; @@ -582,7 +582,7 @@ pub const IP_MULTICAST_LOOP: c_int = 34; pub const IP_ADD_MEMBERSHIP: c_int = 35; pub const IP_DROP_MEMBERSHIP: c_int = 36; pub const IP_TOS: c_int = 1; -pub const IP_RECVTOS: c_int = 2; +pub const IP_RECVTOS: c_int = 13; pub const IPPROTO_IGMP: c_int = 2; pub const IPPROTO_PUP: c_int = 12; pub const IPPROTO_IDP: c_int = 22; @@ -592,9 +592,7 @@ pub const IPPROTO_MAX: c_int = 255; // netinet/tcp.h pub const TCP_NODELAY: c_int = 1; -// FIXME(redox): relibc { -pub const TCP_KEEPIDLE: c_int = 1; -// } +pub const TCP_KEEPIDLE: c_int = 4; // poll.h pub const POLLIN: c_short = 0x001; From 2b89bdebaf376510d67ede05fa1d4bee37683339 Mon Sep 17 00:00:00 2001 From: Zhiwei Liang Date: Sat, 21 Feb 2026 21:49:17 -0500 Subject: [PATCH 1187/1228] Update `semver/redox.txt` Signed-off-by: Zhiwei Liang (backport ) (cherry picked from commit d595a569929983c63911d54c9c4626525c510c62) --- libc-test/semver/redox.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libc-test/semver/redox.txt b/libc-test/semver/redox.txt index 2b71394c4b845..d7b6a5c676165 100644 --- a/libc-test/semver/redox.txt +++ b/libc-test/semver/redox.txt @@ -97,6 +97,7 @@ EUNATCH EUSERS EXFULL FIONREAD +F_DUPFD_CLOEXEC IMAXBEL IPPROTO_ICMP IPPROTO_IDP @@ -109,6 +110,8 @@ IPPROTO_TCP IPPROTO_UDP IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP +IPV6_JOIN_GROUP +IPV6_LEAVE_GROUP IP_RECVTOS IP_TOS IUCLC From 88e01789f815d69dd98378f0dd6bae29beffaf21 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 8 Mar 2026 14:43:12 +0900 Subject: [PATCH 1188/1228] chore: suppress `unused_features` lint [ the config was already there so this just adds the comment - Trevor ] (backport ) (cherry picked from commit 1a3ff59264da24d7192097b942ec6642369bc733) --- src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib.rs b/src/lib.rs index 76c668dca8d6b..a00de4e2e0638 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -27,6 +27,7 @@ // Attributes needed when building as part of the standard library #![cfg_attr(feature = "rustc-dep-of-std", feature(link_cfg, no_core))] #![cfg_attr(feature = "rustc-dep-of-std", allow(internal_features))] +// Some targets don't need `link_cfg` and emit a warning. #![cfg_attr(feature = "rustc-dep-of-std", allow(unused_features))] // DIFF(1.0): The thread local references that raise this lint were removed in 1.0 #![cfg_attr(feature = "rustc-dep-of-std", allow(static_mut_refs))] From c43467042577b8b9392708b662e8fc876dd7a2fb Mon Sep 17 00:00:00 2001 From: Huang Qi Date: Sat, 7 Mar 2026 16:44:26 +0800 Subject: [PATCH 1189/1228] nuttx: Add _SC_HOST_NAME_MAX constant Add the missing _SC_HOST_NAME_MAX sysconf constant for NuttX platform. This constant is used to get the maximum length of a host name. (backport ) (cherry picked from commit 41a9c107be8e4044e21546020ac065b80762a867) --- src/unix/nuttx/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/nuttx/mod.rs b/src/unix/nuttx/mod.rs index e3ad7bafd153c..150dc43557d29 100644 --- a/src/unix/nuttx/mod.rs +++ b/src/unix/nuttx/mod.rs @@ -512,6 +512,7 @@ pub const FIONBIO: i32 = 0x30a; pub const _SC_PAGESIZE: i32 = 0x36; pub const _SC_THREAD_STACK_MIN: i32 = 0x58; pub const _SC_GETPW_R_SIZE_MAX: i32 = 0x25; +pub const _SC_HOST_NAME_MAX: i32 = 0x26; // signal.h pub const SIGHUP: c_int = 1; From ea1f24646f3b4add4a6c36db4a71cc144d774b49 Mon Sep 17 00:00:00 2001 From: xtqqczze <45661989+xtqqczze@users.noreply.github.com> Date: Mon, 9 Mar 2026 17:06:23 +0000 Subject: [PATCH 1190/1228] redox: fix signal action constant types (backport ) (cherry picked from commit 4283feb5e786075a09eeb2af9bd9a657f0df9f2a) --- src/unix/redox/mod.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 0b08d697aba3d..102373c6c1ebd 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -663,14 +663,14 @@ pub const SIGPWR: c_int = 30; pub const SIGSYS: c_int = 31; pub const NSIG: c_int = 32; -pub const SA_NOCLDWAIT: c_ulong = 0x0000_0002; -pub const SA_RESTORER: c_ulong = 0x0000_0004; // FIXME(redox): remove after relibc removes it -pub const SA_SIGINFO: c_ulong = 0x0200_0000; -pub const SA_ONSTACK: c_ulong = 0x0400_0000; -pub const SA_RESTART: c_ulong = 0x0800_0000; -pub const SA_NODEFER: c_ulong = 0x1000_0000; -pub const SA_RESETHAND: c_ulong = 0x2000_0000; -pub const SA_NOCLDSTOP: c_ulong = 0x4000_0000; +pub const SA_NOCLDWAIT: c_int = 0x0000_0002; +pub const SA_RESTORER: c_int = 0x0000_0004; // FIXME(redox): remove after relibc removes it +pub const SA_SIGINFO: c_int = 0x0200_0000; +pub const SA_ONSTACK: c_int = 0x0400_0000; +pub const SA_RESTART: c_int = 0x0800_0000; +pub const SA_NODEFER: c_int = 0x1000_0000; +pub const SA_RESETHAND: c_int = 0x2000_0000; +pub const SA_NOCLDSTOP: c_int = 0x4000_0000; // sys/file.h pub const LOCK_SH: c_int = 1; From c497ab17f9f522d7e8c0d407818951533ce995c2 Mon Sep 17 00:00:00 2001 From: Hashem Hashem Date: Thu, 12 Mar 2026 13:33:16 +0100 Subject: [PATCH 1191/1228] linux: add CAN netlink bindings Port libc "netlink.h" file for SocketCAN subsystem and expose through can.rs. (backport ) (cherry picked from commit a99a684516fad66c40238eec7dfe65b16fad6e05) --- libc-test/build.rs | 4 +- libc-test/semver/linux.txt | 55 +++++++++++ src/new/linux_uapi/linux/can.rs | 1 + src/new/linux_uapi/linux/can/netlink.rs | 125 ++++++++++++++++++++++++ src/new/mod.rs | 1 + 5 files changed, 185 insertions(+), 1 deletion(-) create mode 100644 src/new/linux_uapi/linux/can/netlink.rs diff --git a/libc-test/build.rs b/libc-test/build.rs index 985ed0e3bd042..5e1e46c72e030 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3997,8 +3997,9 @@ fn test_linux(target: &str) { "linux/can.h", "linux/can/bcm.h", "linux/can/error.h", - "linux/can/raw.h", "linux/can/j1939.h", + "linux/can/netlink.h", + "linux/can/raw.h", "linux/cn_proc.h", "linux/connector.h", "linux/dccp.h", @@ -4662,6 +4663,7 @@ fn test_linux(target: &str) { }); let c_enums = [ + "can_state", "membarrier_cmd", "pid_type", "proc_cn_event", diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index bd421d8d68c21..2672a397af726 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -234,6 +234,17 @@ CANXL_SEC CANXL_XLF CAN_BCM CAN_BUS_OFF_THRESHOLD +CAN_CTRLMODE_3_SAMPLES +CAN_CTRLMODE_BERR_REPORTING +CAN_CTRLMODE_CC_LEN8_DLC +CAN_CTRLMODE_FD +CAN_CTRLMODE_FD_NON_ISO +CAN_CTRLMODE_LISTENONLY +CAN_CTRLMODE_LOOPBACK +CAN_CTRLMODE_ONE_SHOT +CAN_CTRLMODE_PRESUME_ACK +CAN_CTRLMODE_TDC_AUTO +CAN_CTRLMODE_TDC_MANUAL CAN_EFF_FLAG CAN_EFF_ID_BITS CAN_EFF_MASK @@ -321,6 +332,13 @@ CAN_RAW_XL_FRAMES CAN_RTR_FLAG CAN_SFF_ID_BITS CAN_SFF_MASK +CAN_STATE_BUS_OFF +CAN_STATE_ERROR_ACTIVE +CAN_STATE_ERROR_PASSIVE +CAN_STATE_ERROR_WARNING +CAN_STATE_SLEEPING +CAN_STATE_STOPPED +CAN_TERMINATION_DISABLED CAN_TP16 CAN_TP20 CBAUD @@ -1055,6 +1073,36 @@ IFLA_AF_SPEC IFLA_ALLMULTI IFLA_ALT_IFNAME IFLA_BROADCAST +IFLA_CAN_BERR_COUNTER +IFLA_CAN_BITRATE_CONST +IFLA_CAN_BITRATE_MAX +IFLA_CAN_BITTIMING +IFLA_CAN_BITTIMING_CONST +IFLA_CAN_CLOCK +IFLA_CAN_CTRLMODE +IFLA_CAN_CTRLMODE_EXT +IFLA_CAN_CTRLMODE_SUPPORTED +IFLA_CAN_CTRLMODE_UNSPEC +IFLA_CAN_DATA_BITRATE_CONST +IFLA_CAN_DATA_BITTIMING +IFLA_CAN_DATA_BITTIMING_CONST +IFLA_CAN_RESTART +IFLA_CAN_RESTART_MS +IFLA_CAN_STATE +IFLA_CAN_TDC +IFLA_CAN_TDC_TDCF +IFLA_CAN_TDC_TDCF_MAX +IFLA_CAN_TDC_TDCF_MIN +IFLA_CAN_TDC_TDCO +IFLA_CAN_TDC_TDCO_MAX +IFLA_CAN_TDC_TDCO_MIN +IFLA_CAN_TDC_TDCV +IFLA_CAN_TDC_TDCV_MAX +IFLA_CAN_TDC_TDCV_MIN +IFLA_CAN_TDC_UNSPEC +IFLA_CAN_TERMINATION +IFLA_CAN_TERMINATION_CONST +IFLA_CAN_UNSPEC IFLA_CARRIER IFLA_CARRIER_CHANGES IFLA_CARRIER_DOWN_COUNT @@ -3959,9 +4007,16 @@ bcm_timeval blkcnt64_t brk bsearch +can_berr_counter +can_bittiming +can_bittiming_const +can_clock +can_ctrlmode +can_device_stats can_err_mask_t can_filter can_frame +can_state canfd_frame canid_t canxl_frame diff --git a/src/new/linux_uapi/linux/can.rs b/src/new/linux_uapi/linux/can.rs index 54148976e6254..c4ae2da584345 100644 --- a/src/new/linux_uapi/linux/can.rs +++ b/src/new/linux_uapi/linux/can.rs @@ -3,6 +3,7 @@ pub(crate) mod bcm; pub(crate) mod error; pub(crate) mod j1939; +pub(crate) mod netlink; pub(crate) mod raw; use crate::prelude::*; diff --git a/src/new/linux_uapi/linux/can/netlink.rs b/src/new/linux_uapi/linux/can/netlink.rs new file mode 100644 index 0000000000000..2892941090cb9 --- /dev/null +++ b/src/new/linux_uapi/linux/can/netlink.rs @@ -0,0 +1,125 @@ +//! Header: `linux/can/netlink.h` + +use crate::prelude::*; + +s! { + pub struct can_bittiming { + pub bitrate: u32, + pub sample_point: u32, + pub tq: u32, + pub prop_seg: u32, + pub phase_seg1: u32, + pub phase_seg2: u32, + pub sjw: u32, + pub brp: u32, + } + + pub struct can_bittiming_const { + pub name: [c_char; 16], + pub tseg1_min: u32, + pub tseg1_max: u32, + pub tseg2_min: u32, + pub tseg2_max: u32, + pub sjw_max: u32, + pub brp_min: u32, + pub brp_max: u32, + pub brp_inc: u32, + } + + pub struct can_clock { + pub freq: u32, + } + + pub struct can_berr_counter { + pub txerr: u16, + pub rxerr: u16, + } + + pub struct can_ctrlmode { + pub mask: u32, + pub flags: u32, + } + + pub struct can_device_stats { + pub bus_error: u32, + pub error_warning: u32, + pub error_passive: u32, + pub bus_off: u32, + pub arbitration_lost: u32, + pub restarts: u32, + } +} + +c_enum! { + #[repr(c_uint)] + pub enum can_state { + pub CAN_STATE_ERROR_ACTIVE = 0, + pub CAN_STATE_ERROR_WARNING, + pub CAN_STATE_ERROR_PASSIVE, + pub CAN_STATE_BUS_OFF, + pub CAN_STATE_STOPPED, + pub CAN_STATE_SLEEPING, + } +} + +pub const CAN_CTRLMODE_LOOPBACK: u32 = 0x01; +pub const CAN_CTRLMODE_LISTENONLY: u32 = 0x02; +pub const CAN_CTRLMODE_3_SAMPLES: u32 = 0x04; +pub const CAN_CTRLMODE_ONE_SHOT: u32 = 0x08; +pub const CAN_CTRLMODE_BERR_REPORTING: u32 = 0x10; +pub const CAN_CTRLMODE_FD: u32 = 0x20; +pub const CAN_CTRLMODE_PRESUME_ACK: u32 = 0x40; +pub const CAN_CTRLMODE_FD_NON_ISO: u32 = 0x80; +pub const CAN_CTRLMODE_CC_LEN8_DLC: u32 = 0x100; +pub const CAN_CTRLMODE_TDC_AUTO: u32 = 0x200; +pub const CAN_CTRLMODE_TDC_MANUAL: u32 = 0x400; + +c_enum! { + #[repr(c_int)] + pub enum #anon { + pub IFLA_CAN_UNSPEC = 0, + pub IFLA_CAN_BITTIMING, + pub IFLA_CAN_BITTIMING_CONST, + pub IFLA_CAN_CLOCK, + pub IFLA_CAN_STATE, + pub IFLA_CAN_CTRLMODE, + pub IFLA_CAN_RESTART_MS, + pub IFLA_CAN_RESTART, + pub IFLA_CAN_BERR_COUNTER, + pub IFLA_CAN_DATA_BITTIMING, + pub IFLA_CAN_DATA_BITTIMING_CONST, + pub IFLA_CAN_TERMINATION, + pub IFLA_CAN_TERMINATION_CONST, + pub IFLA_CAN_BITRATE_CONST, + pub IFLA_CAN_DATA_BITRATE_CONST, + pub IFLA_CAN_BITRATE_MAX, + pub IFLA_CAN_TDC, + pub IFLA_CAN_CTRLMODE_EXT, + } +} + +c_enum! { + #[repr(c_int)] + pub enum #anon { + pub IFLA_CAN_TDC_UNSPEC = 0, + pub IFLA_CAN_TDC_TDCV_MIN, + pub IFLA_CAN_TDC_TDCV_MAX, + pub IFLA_CAN_TDC_TDCO_MIN, + pub IFLA_CAN_TDC_TDCO_MAX, + pub IFLA_CAN_TDC_TDCF_MIN, + pub IFLA_CAN_TDC_TDCF_MAX, + pub IFLA_CAN_TDC_TDCV, + pub IFLA_CAN_TDC_TDCO, + pub IFLA_CAN_TDC_TDCF, + } +} + +c_enum! { + #[repr(c_int)] + pub enum #anon { + pub IFLA_CAN_CTRLMODE_UNSPEC = 0, + pub IFLA_CAN_CTRLMODE_SUPPORTED, + } +} + +pub const CAN_TERMINATION_DISABLED: u16 = 0; diff --git a/src/new/mod.rs b/src/new/mod.rs index c0c6891242ad4..2ea2c9bdcdc5f 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -179,6 +179,7 @@ cfg_if! { pub use linux::can::bcm::*; pub use linux::can::error::*; pub use linux::can::j1939::*; + pub use linux::can::netlink::*; pub use linux::can::raw::*; pub use linux::can::*; pub use linux::keyctl::*; From 4c5cb7ebedeccc1ae7530d7fa876a9aca01e5cb8 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sun, 12 Jan 2025 11:35:14 +0000 Subject: [PATCH 1192/1228] adding ethhdr type for linux/android for proper packet filtering. [ref](https://docs.huihoo.com/doxygen/linux/kernel/3.7/structethhdr.html) (backport ) (cherry picked from commit 82b748093aa9e9de75722ee68814d0c80c710650) --- libc-test/semver/android.txt | 1 + libc-test/semver/linux-gnu.txt | 1 + src/unix/linux_like/android/mod.rs | 10 ++++++++++ src/unix/linux_like/linux/gnu/mod.rs | 10 ++++++++++ 4 files changed, 22 insertions(+) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index a6acde40a9ba2..e48c6d8258566 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -3449,6 +3449,7 @@ epoll_create1 epoll_ctl epoll_event epoll_wait +ethhdr eventfd eventfd_read eventfd_write diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 9b5a384b0d3f6..d8cf94d3512ce 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -597,6 +597,7 @@ dlvsym eaccess endutxent epoll_pwait2 +ethhdr euidaccess execveat explicit_bzero diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 1c186351dfc58..31d1dba3ecf1b 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -46,6 +46,7 @@ pub type __u16 = c_ushort; pub type __s16 = c_short; pub type __u32 = c_uint; pub type __s32 = c_int; +pub type __be16 = __u16; // linux/elf.h @@ -625,6 +626,15 @@ s_no_extra_traits! { pub ifc_ifcu: __c_anonymous_ifc_ifcu, } + // linux/if_ether.h + + #[repr(C, packed)] + pub struct ethhdr { + pub h_dest: [c_uchar; crate::ETH_ALEN as usize], + pub h_source: [c_uchar; crate::ETH_ALEN as usize], + pub h_proto: crate::__be16, + } + // Internal, for casts to access union fields struct sifields_sigchld { si_pid: crate::pid_t, diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index f9805b0b021f7..dfc5858683896 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -7,6 +7,7 @@ pub type __rlimit_resource_t = c_uint; pub type Lmid_t = c_long; pub type regoff_t = c_int; pub type __kernel_rwf_t = c_int; +pub type __be16 = crate::__u16; cfg_if! { if #[cfg(doc)] { @@ -404,6 +405,15 @@ impl siginfo_t { } s_no_extra_traits! { + // linux/if_ether.h + + #[repr(C, packed)] + pub struct ethhdr { + pub h_dest: [c_uchar; crate::ETH_ALEN as usize], + pub h_source: [c_uchar; crate::ETH_ALEN as usize], + pub h_proto: crate::__be16, + } + // Internal, for casts to access union fields struct sifields_sigchld { si_pid: crate::pid_t, From bd091b70555e61fd66f2fd3bf98c1dd8c526f370 Mon Sep 17 00:00:00 2001 From: Anton Liashkevich Date: Wed, 4 Mar 2026 01:01:41 -0500 Subject: [PATCH 1193/1228] FreeBSD: Added `xfile` structe and file descriptor types (backport ) (cherry picked from commit 375b30da08fc13ca1dca085b10677a9733438e4a) --- libc-test/build.rs | 3 +++ libc-test/semver/freebsd.txt | 1 + src/new/freebsd/mod.rs | 1 + src/new/freebsd/sys/file.rs | 46 ++++++++++++++++++++++++++++++++++++ src/new/freebsd/sys/mod.rs | 5 ++++ src/new/mod.rs | 2 ++ 6 files changed, 58 insertions(+) create mode 100644 src/new/freebsd/sys/file.rs create mode 100644 src/new/freebsd/sys/mod.rs diff --git a/libc-test/build.rs b/libc-test/build.rs index 5e1e46c72e030..d5babef101613 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2875,6 +2875,9 @@ fn test_freebsd(target: &str) { // Added in FreeBSD 15 "AT_HWCAP3" | "AT_HWCAP4" if Some(15) > freebsd_ver => true, + // Added in FreeBSD 15 + "DTYPE_INOTIFY" | "DTYPE_JAILDESC" if Some(15) > freebsd_ver => true, + _ => false, } }); diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index ba905e04a7fa7..29f2c56edab80 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -2434,4 +2434,5 @@ vmtotal wait4 waitid xallocx +xfile xucred diff --git a/src/new/freebsd/mod.rs b/src/new/freebsd/mod.rs index 87c2e487560be..eedf235d1e235 100644 --- a/src/new/freebsd/mod.rs +++ b/src/new/freebsd/mod.rs @@ -3,4 +3,5 @@ //! * Headers: //! * Symbol map: +pub(crate) mod sys; pub(crate) mod unistd; diff --git a/src/new/freebsd/sys/file.rs b/src/new/freebsd/sys/file.rs new file mode 100644 index 0000000000000..3072c1de7d763 --- /dev/null +++ b/src/new/freebsd/sys/file.rs @@ -0,0 +1,46 @@ +//! Header: `sys/file.h` +//! +//! https://github.com/freebsd/freebsd-src/blob/main/sys/sys/file.h + +use crate::prelude::*; + +pub const DTYPE_NONE: c_int = 0; +pub const DTYPE_VNODE: c_int = 1; +pub const DTYPE_SOCKET: c_int = 2; +pub const DTYPE_PIPE: c_int = 3; +pub const DTYPE_FIFO: c_int = 4; +pub const DTYPE_KQUEUE: c_int = 5; +pub const DTYPE_CRYPTO: c_int = 6; +pub const DTYPE_MQUEUE: c_int = 7; +pub const DTYPE_SHM: c_int = 8; +pub const DTYPE_SEM: c_int = 9; +pub const DTYPE_PTS: c_int = 10; +pub const DTYPE_DEV: c_int = 11; +pub const DTYPE_PROCDESC: c_int = 12; +pub const DTYPE_EVENTFD: c_int = 13; +pub const DTYPE_TIMERFD: c_int = 14; +pub const DTYPE_INOTIFY: c_int = 15; +pub const DTYPE_JAILDESC: c_int = 16; + +s! { + #[cfg(not(any(freebsd10, freebsd11)))] + pub struct xfile { + pub xf_size: crate::ksize_t, + pub xf_pid: crate::pid_t, + pub xf_uid: crate::uid_t, + pub xf_fd: c_int, + _xf_int_pad1: Padding, + pub xf_file: crate::kvaddr_t, + pub xf_type: c_short, + _xf_short_pad1: Padding, + pub xf_count: c_int, + pub xf_msgcount: c_int, + _xf_int_pad2: Padding, + pub xf_offset: crate::off_t, + pub xf_data: crate::kvaddr_t, + pub xf_vnode: crate::kvaddr_t, + pub xf_flag: c_uint, + _xf_int_pad3: Padding, + _xf_int64_pad: Padding<[i64; 6]>, + } +} diff --git a/src/new/freebsd/sys/mod.rs b/src/new/freebsd/sys/mod.rs new file mode 100644 index 0000000000000..210e674072c59 --- /dev/null +++ b/src/new/freebsd/sys/mod.rs @@ -0,0 +1,5 @@ +//! Directory: `sys/` +//! +//! https://github.com/freebsd/freebsd-src/tree/main/sys/sys' + +pub(crate) mod file; diff --git a/src/new/mod.rs b/src/new/mod.rs index 2ea2c9bdcdc5f..1c5d6a6e17c25 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -211,6 +211,8 @@ cfg_if! { } else if #[cfg(target_os = "nto")] { pub use net::bpf::*; pub use net::if_::*; + } else if #[cfg(target_os = "freebsd")] { + pub use sys::file::*; } } From 9aaf44041bd563e67b16ede962553c48a8322b33 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 14 Mar 2026 06:41:55 +0000 Subject: [PATCH 1194/1228] Deprecate `__uint128_t`, `__uint128`, `__int128_t`, and `__int128` Rust's `i128` and `u128` are now documented to be compatible with the types, so there is no reason to have the aliases. Co-authored-by: Clayton Fernalo (backport ) (cherry picked from commit 1212765e5b6d49d97da8c43f1012038094d35978) --- src/new/apple/xnu/mach/arm/_structs.rs | 2 +- src/primitives.rs | 4 ++++ src/unix/linux_like/android/b64/aarch64/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs | 2 +- src/unix/linux_like/linux/musl/b64/aarch64/mod.rs | 2 +- 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/new/apple/xnu/mach/arm/_structs.rs b/src/new/apple/xnu/mach/arm/_structs.rs index c0ebce437aedd..6160e773fd33b 100644 --- a/src/new/apple/xnu/mach/arm/_structs.rs +++ b/src/new/apple/xnu/mach/arm/_structs.rs @@ -24,7 +24,7 @@ s! { #[cfg(target_arch = "aarch64")] pub struct __darwin_arm_neon_state64 { - pub __v: [crate::__uint128_t; 32], + pub __v: [u128; 32], pub __fpsr: u32, pub __fpcr: u32, } diff --git a/src/primitives.rs b/src/primitives.rs index 80a10af4c8546..669a6c9dd83d8 100644 --- a/src/primitives.rs +++ b/src/primitives.rs @@ -84,12 +84,16 @@ pub type uint64_t = u64; cfg_if! { if #[cfg(all(target_arch = "aarch64", not(target_os = "windows")))] { /// C `__int128` (a GCC extension that's part of many ABIs) + #[deprecated(since = "0.2.184", note = "Use i128 instead.")] pub type __int128 = i128; /// C `unsigned __int128` (a GCC extension that's part of many ABIs) + #[deprecated(since = "0.2.184", note = "Use u128 instead.")] pub type __uint128 = u128; /// C __int128_t (alternate name for [__int128][]) + #[deprecated(since = "0.2.184", note = "Use i128 instead.")] pub type __int128_t = i128; /// C __uint128_t (alternate name for [__uint128][]) + #[deprecated(since = "0.2.184", note = "Use u128 instead.")] pub type __uint128_t = u128; } } diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index 7c7a08fdf334f..3cc6fc837693e 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -78,7 +78,7 @@ s! { } pub struct user_fpsimd_struct { - pub vregs: [crate::__uint128_t; 32], + pub vregs: [u128; 32], pub fpsr: u32, pub fpcr: u32, } diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index d896257046df4..b8c55dc33c89f 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -223,7 +223,7 @@ s! { } pub struct user_fpsimd_struct { - pub vregs: [crate::__uint128_t; 32], + pub vregs: [u128; 32], pub fpsr: c_uint, pub fpcr: c_uint, } diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index e28310be3ee32..82df29bf43a1f 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -102,7 +102,7 @@ s! { } pub struct user_fpsimd_struct { - pub vregs: [crate::__uint128_t; 32], + pub vregs: [u128; 32], pub fpsr: u32, pub fpcr: u32, } From b467ba64836bd90f160442c5db9a72bb0a0c5f29 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 14 Mar 2026 03:52:12 -0500 Subject: [PATCH 1195/1228] Re-export `core::ffi` integer types rather than redefining Since the MSRV was raised to 1.65, we can use these aliases directly rather than copying them. In a future version, we can consider deprecation. (backport ) (cherry picked from commit 288706a5db8ac24d2b893db9e7b613387f745b58) --- libc-test/tests/primitive_types.rs | 15 ------ libc-test/tests/style.rs | 4 +- src/primitives.rs | 73 +++++++----------------------- 3 files changed, 19 insertions(+), 73 deletions(-) delete mode 100644 libc-test/tests/primitive_types.rs diff --git a/libc-test/tests/primitive_types.rs b/libc-test/tests/primitive_types.rs deleted file mode 100644 index c125a92a58110..0000000000000 --- a/libc-test/tests/primitive_types.rs +++ /dev/null @@ -1,15 +0,0 @@ -use std::any::TypeId; - -macro_rules! ok { - ($($t:ident)*) => {$( - assert!(TypeId::of::() == TypeId::of::(), - "{} is wrong", stringify!($t)); - )*} -} - -#[test] -fn same() { - use std::ffi; - ok!(c_char c_schar c_uchar c_short c_ushort c_int c_uint c_long c_ulong - c_longlong c_ulonglong c_float c_double); -} diff --git a/libc-test/tests/style.rs b/libc-test/tests/style.rs index dcbe43bb59651..3cc70586d15e8 100644 --- a/libc-test/tests/style.rs +++ b/libc-test/tests/style.rs @@ -23,7 +23,9 @@ use style_lib::{ const SKIP_PREFIXES: &[&str] = &[ // Don't run the style checker on the reorganized portion of the crate while we figure // out what style we want. - "new/", "types.rs", + "new/", + "primitives.rs", + "types.rs", ]; #[test] diff --git a/src/primitives.rs b/src/primitives.rs index 669a6c9dd83d8..228dbc2c55467 100644 --- a/src/primitives.rs +++ b/src/primitives.rs @@ -6,63 +6,22 @@ //! //! The fixed-width integer aliases are deprecated: use the Rust types instead. -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; - -pub type c_longlong = i64; -pub type c_ulonglong = u64; - -pub type c_float = f32; -pub type c_double = f64; - -cfg_if! { - if #[cfg(all( - not(windows), - not(target_vendor = "apple"), - not(target_os = "vita"), - any( - target_arch = "aarch64", - target_arch = "arm", - target_arch = "csky", - target_arch = "hexagon", - target_arch = "msp430", - target_arch = "powerpc", - target_arch = "powerpc64", - target_arch = "riscv32", - target_arch = "riscv64", - target_arch = "s390x", - target_arch = "xtensa", - ) - ))] { - pub type c_char = u8; - } else { - // On every other target, c_char is signed. - pub type c_char = i8; - } -} - -cfg_if! { - if #[cfg(any(target_arch = "avr", target_arch = "msp430"))] { - pub type c_int = i16; - pub type c_uint = u16; - } else { - pub type c_int = i32; - pub type c_uint = u32; - } -} - -cfg_if! { - if #[cfg(all(target_pointer_width = "64", not(windows)))] { - pub type c_long = i64; - pub type c_ulong = u64; - } else { - // The minimal size of `long` in the C standard is 32 bits - pub type c_long = i32; - pub type c_ulong = u32; - } -} +// FIXME(1.0): Deprecate these aliases in a few releases, remove in 1.0. +pub use core::ffi::{ + c_char, + c_double, + c_float, + c_int, + c_long, + c_longlong, + c_schar, + c_short, + c_uchar, + c_uint, + c_ulong, + c_ulonglong, + c_ushort, +}; #[deprecated(since = "0.2.55", note = "Use i8 instead.")] pub type int8_t = i8; From 2f5d84872f9e012e35cee87ce52588104cd88aa9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Mar 2026 14:15:28 +0000 Subject: [PATCH 1196/1228] build(deps): bump vmactions/solaris-vm from 1.3.1 to 1.3.2 Bumps [vmactions/solaris-vm](https://github.com/vmactions/solaris-vm) from 1.3.1 to 1.3.2. - [Release notes](https://github.com/vmactions/solaris-vm/releases) - [Commits](https://github.com/vmactions/solaris-vm/compare/v1.3.1...v1.3.2) --- updated-dependencies: - dependency-name: vmactions/solaris-vm dependency-version: 1.3.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] (backport ) (cherry picked from commit 5e4d5f33e9f6b5840a839038361578643026e5bb) --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 17af6d3c62119..6b41aac928ef2 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -273,7 +273,7 @@ jobs: steps: - uses: actions/checkout@v6 - name: test on Solaris - uses: vmactions/solaris-vm@v1.3.1 + uses: vmactions/solaris-vm@v1.3.2 if: contains(matrix.target, 'solaris') with: release: "11.4-gcc" From f67696f12529254fecbae5aa810b1b29384181d7 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sat, 14 Mar 2026 09:36:59 +0900 Subject: [PATCH 1197/1228] chore(ci): upgrade macOS runner to 26 (backport ) (cherry picked from commit 528a59335e476791fc41db71180616f1f2f85adb) --- .github/workflows/ci.yaml | 6 +++--- libc-test/build.rs | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6b41aac928ef2..7203340862eb9 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -36,7 +36,7 @@ jobs: name: Clippy on ${{ matrix.os }} strategy: matrix: - os: [ubuntu-24.04, macos-15, windows-2025] + os: [ubuntu-24.04, macos-26, windows-2025] runs-on: ${{ matrix.os }} timeout-minutes: 10 steps: @@ -109,7 +109,7 @@ jobs: matrix: include: - target: aarch64-apple-darwin - os: macos-15 + os: macos-26 - target: aarch64-pc-windows-msvc os: windows-11-arm - target: aarch64-unknown-linux-gnu @@ -209,7 +209,7 @@ jobs: - target: wasm32-wasip1 - target: wasm32-wasip2 - target: x86_64-apple-darwin - os: macos-15-intel + os: macos-26-intel - target: x86_64-linux-android # FIXME: Exec format error (os error 8) # - target: x86_64-unknown-linux-gnux32 diff --git a/libc-test/build.rs b/libc-test/build.rs index d5babef101613..6ca5a996807a1 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -342,6 +342,9 @@ fn test_apple(target: &str) { // FIXME(macos): The size is changed in recent macOSes. "malloc_introspection_t" if x86_64 => true, + + // FIXME(macos): The size is changed in macOS 26. + "vm_statistics64" => true, _ => false, } }); @@ -358,6 +361,21 @@ fn test_apple(target: &str) { // https://github.com/apple-oss-distributions/xnu/commit/e6231be02a03711ca404e5121a151b24afbff733 "TIOCREMOTE" => true, + // FIXME(macos): bumped up on macOS 26 + // https://github.com/apple-oss-distributions/xnu/commit/f6217f891ac0bb64f3d375211650a4c1ff8ca1ea + "ELAST" => true, + + // FIXME(macos): bumped up on macOS 26, it's sizeof `vm_statistics64_data_t` + "HOST_VM_INFO64_COUNT" => true, + + _ => false, + } + }); + + cfg.skip_alias(move |ty| { + match ty.ident() { + // FIXME(macos): The size is changed in macOS 26. + "vm_statistics64_data_t" => true, _ => false, } }); From 0ef904dd936ed0ec53b28f4209827e31eb9b91d0 Mon Sep 17 00:00:00 2001 From: xtqqczze <45661989+xtqqczze@users.noreply.github.com> Date: Mon, 16 Mar 2026 15:16:45 +0000 Subject: [PATCH 1198/1228] netbsd: add missing CLOCK_ constants https://github.com/NetBSD/src/blob/6ace5fed3bd010695a1b88ca6c1f8a5af7793ffb/sys/sys/time.h#L301-L306 (backport ) (cherry picked from commit bc30895d168990a8993a9bd03aa9b630fa5b3412) --- libc-test/semver/netbsd.txt | 2 ++ src/new/netbsd/sys/time.rs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index 7b99a8c29cc3c..182d4e2b5a7b2 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -119,7 +119,9 @@ CLD_KILLED CLD_STOPPED CLD_TRAPPED CLOCK_PROCESS_CPUTIME_ID +CLOCK_PROF CLOCK_THREAD_CPUTIME_ID +CLOCK_VIRTUAL CMSG_DATA CMSG_FIRSTHDR CMSG_LEN diff --git a/src/new/netbsd/sys/time.rs b/src/new/netbsd/sys/time.rs index 5f2d39d347e69..b776b2a7db911 100644 --- a/src/new/netbsd/sys/time.rs +++ b/src/new/netbsd/sys/time.rs @@ -9,5 +9,7 @@ s! { } } +pub const CLOCK_VIRTUAL: crate::clockid_t = 1; +pub const CLOCK_PROF: crate::clockid_t = 2; pub const CLOCK_THREAD_CPUTIME_ID: crate::clockid_t = 0x20000000; pub const CLOCK_PROCESS_CPUTIME_ID: crate::clockid_t = 0x40000000; From c53ddd87538f4b8c381177497d7aa9fe3e70e8b7 Mon Sep 17 00:00:00 2001 From: Hashem Hashem Date: Fri, 13 Mar 2026 15:27:09 +0100 Subject: [PATCH 1199/1228] linux: add ifinfomsg struct from rtnetlink.h (backport ) (cherry picked from commit 8bada261b75db909aab43ecd1bbde228ef2d2b33) --- libc-test/semver/linux.txt | 1 + src/unix/linux_like/linux/mod.rs | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 2672a397af726..8e7a748ada4d3 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -4148,6 +4148,7 @@ if_freenameindex if_nameindex ifaddrs ifconf +ifinfomsg ifreq in6_ifreq in6_pktinfo diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index dacd357bbb36f..0d3e830b77e47 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1254,6 +1254,16 @@ s! { pub handle_type: c_int, pub f_handle: [c_uchar; 0], } + + // include/uapi/linux/rtnetlink.h + pub struct ifinfomsg { + pub ifi_family: c_uchar, + __ifi_pad: Padding, + pub ifi_type: c_ushort, + pub ifi_index: c_int, + pub ifi_flags: c_uint, + pub ifi_change: c_uint, + } } cfg_if! { From 98046f560654e2b3c2ede91dc81e7ea9ae83bdb8 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Tue, 17 Mar 2026 14:48:57 -0600 Subject: [PATCH 1200/1228] Update FreeBSD 14 CI image And update the definition of struct mcontext_t. An additional field has been added, and the spare field reduced accordingly. No backwards-compatibility concerns, because we still build with a FreeBSD 12 ABI by default. (backport ) (cherry picked from commit da80ba3bf40347baa7883be9ae5606027cced358) --- .cirrus.yml | 2 +- src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index ff11c9cccb528..4c09801e7bedc 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -16,7 +16,7 @@ task: image: freebsd-15-0-release-amd64-ufs - name: nightly freebsd-14 x86_64 freebsd_instance: - image: freebsd-14-3-release-amd64-ufs + image: freebsd-14-4-release-amd64-ufs - name: nightly freebsd-15 x86_64 freebsd_instance: image: freebsd-15-0-release-amd64-ufs diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index 2d7a2b66621cf..984854261d764 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -119,12 +119,12 @@ s! { pub mc_xfpustate: register_t, pub mc_xfpustate_len: register_t, // freebsd < 15 - #[cfg(any(freebsd11, freebsd12, freebsd13, freebsd14))] + #[cfg(any(freebsd11, freebsd12, freebsd13))] pub mc_spare: [c_long; 4], // freebsd >= 15 - #[cfg(not(any(freebsd11, freebsd12, freebsd13, freebsd14)))] + #[cfg(not(any(freebsd11, freebsd12, freebsd13)))] pub mc_tlsbase: register_t, - #[cfg(not(any(freebsd11, freebsd12, freebsd13, freebsd14)))] + #[cfg(not(any(freebsd11, freebsd12, freebsd13)))] pub mc_spare: [c_long; 3], } } From 7c258fa10d495b239a32bc863cdf029427c8a1c5 Mon Sep 17 00:00:00 2001 From: Sebastian Urban Date: Wed, 18 Mar 2026 12:47:27 +0100 Subject: [PATCH 1201/1228] wasi: add all _SC_* sysconf constants from wasi-libc Add the complete set of _SC_* constants from wasi-libc's musl-based unistd.h. (backport ) (cherry picked from commit 2aa834eab789dd09add5d597f14f3a01da7e1388) --- libc-test/semver/wasi.txt | 143 ++++++++++++++++++++++++++++++++++++++ src/wasi/mod.rs | 139 ++++++++++++++++++++++++++++++++++++ 2 files changed, 282 insertions(+) diff --git a/libc-test/semver/wasi.txt b/libc-test/semver/wasi.txt index 0a9e966ff56fa..5e7ab4b5192c8 100644 --- a/libc-test/semver/wasi.txt +++ b/libc-test/semver/wasi.txt @@ -1,5 +1,148 @@ FD_ISSET FD_SET FD_ZERO +_SC_2_CHAR_TERM +_SC_2_C_BIND +_SC_2_C_DEV +_SC_2_FORT_DEV +_SC_2_FORT_RUN +_SC_2_LOCALEDEF +_SC_2_PBS +_SC_2_PBS_ACCOUNTING +_SC_2_PBS_CHECKPOINT +_SC_2_PBS_LOCATE +_SC_2_PBS_MESSAGE +_SC_2_PBS_TRACK +_SC_2_SW_DEV +_SC_2_UPE +_SC_2_VERSION +_SC_ADVISORY_INFO +_SC_AIO_LISTIO_MAX +_SC_AIO_MAX +_SC_AIO_PRIO_DELTA_MAX +_SC_ARG_MAX +_SC_ASYNCHRONOUS_IO +_SC_ATEXIT_MAX +_SC_AVPHYS_PAGES +_SC_BARRIERS +_SC_BC_BASE_MAX +_SC_BC_DIM_MAX +_SC_BC_SCALE_MAX +_SC_BC_STRING_MAX +_SC_CHILD_MAX +_SC_CLK_TCK +_SC_CLOCK_SELECTION +_SC_COLL_WEIGHTS_MAX +_SC_CPUTIME +_SC_DELAYTIMER_MAX +_SC_EXPR_NEST_MAX +_SC_FSYNC +_SC_GETGR_R_SIZE_MAX +_SC_GETPW_R_SIZE_MAX +_SC_HOST_NAME_MAX +_SC_IOV_MAX +_SC_IPV6 +_SC_JOB_CONTROL +_SC_LINE_MAX +_SC_LOGIN_NAME_MAX +_SC_MAPPED_FILES +_SC_MEMLOCK +_SC_MEMLOCK_RANGE +_SC_MEMORY_PROTECTION +_SC_MESSAGE_PASSING +_SC_MINSIGSTKSZ +_SC_MONOTONIC_CLOCK +_SC_MQ_OPEN_MAX +_SC_MQ_PRIO_MAX +_SC_NGROUPS_MAX +_SC_NPROCESSORS_CONF +_SC_NPROCESSORS_ONLN +_SC_NZERO +_SC_OPEN_MAX +_SC_PAGESIZE +_SC_PAGE_SIZE +_SC_PASS_MAX +_SC_PHYS_PAGES +_SC_PRIORITIZED_IO +_SC_PRIORITY_SCHEDULING +_SC_RAW_SOCKETS +_SC_READER_WRITER_LOCKS +_SC_REALTIME_SIGNALS +_SC_REGEXP +_SC_RE_DUP_MAX +_SC_RTSIG_MAX +_SC_SAVED_IDS +_SC_SEMAPHORES +_SC_SEM_NSEMS_MAX +_SC_SEM_VALUE_MAX +_SC_SHARED_MEMORY_OBJECTS +_SC_SHELL +_SC_SIGQUEUE_MAX +_SC_SIGSTKSZ +_SC_SPAWN +_SC_SPIN_LOCKS +_SC_SPORADIC_SERVER +_SC_SS_REPL_MAX +_SC_STREAMS +_SC_STREAM_MAX +_SC_SYMLOOP_MAX +_SC_SYNCHRONIZED_IO +_SC_THREADS +_SC_THREAD_ATTR_STACKADDR +_SC_THREAD_ATTR_STACKSIZE +_SC_THREAD_CPUTIME +_SC_THREAD_DESTRUCTOR_ITERATIONS +_SC_THREAD_KEYS_MAX +_SC_THREAD_PRIORITY_SCHEDULING +_SC_THREAD_PRIO_INHERIT +_SC_THREAD_PRIO_PROTECT +_SC_THREAD_PROCESS_SHARED +_SC_THREAD_ROBUST_PRIO_INHERIT +_SC_THREAD_ROBUST_PRIO_PROTECT +_SC_THREAD_SAFE_FUNCTIONS +_SC_THREAD_SPORADIC_SERVER +_SC_THREAD_STACK_MIN +_SC_THREAD_THREADS_MAX +_SC_TIMEOUTS +_SC_TIMERS +_SC_TIMER_MAX +_SC_TRACE +_SC_TRACE_EVENT_FILTER +_SC_TRACE_EVENT_NAME_MAX +_SC_TRACE_INHERIT +_SC_TRACE_LOG +_SC_TRACE_NAME_MAX +_SC_TRACE_SYS_MAX +_SC_TRACE_USER_EVENT_MAX +_SC_TTY_NAME_MAX +_SC_TYPED_MEMORY_OBJECTS +_SC_TZNAME_MAX +_SC_UIO_MAXIOV +_SC_V6_ILP32_OFF32 +_SC_V6_ILP32_OFFBIG +_SC_V6_LP64_OFF64 +_SC_V6_LPBIG_OFFBIG +_SC_V7_ILP32_OFF32 +_SC_V7_ILP32_OFFBIG +_SC_V7_LP64_OFF64 +_SC_V7_LPBIG_OFFBIG +_SC_VERSION +_SC_XBS5_ILP32_OFF32 +_SC_XBS5_ILP32_OFFBIG +_SC_XBS5_LP64_OFF64 +_SC_XBS5_LPBIG_OFFBIG +_SC_XOPEN_CRYPT +_SC_XOPEN_ENH_I18N +_SC_XOPEN_LEGACY +_SC_XOPEN_REALTIME +_SC_XOPEN_REALTIME_THREADS +_SC_XOPEN_SHM +_SC_XOPEN_STREAMS +_SC_XOPEN_UNIX +_SC_XOPEN_VERSION +_SC_XOPEN_XCU_VERSION +_SC_XOPEN_XPG2 +_SC_XOPEN_XPG3 +_SC_XOPEN_XPG4 fd_set select diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index cd4f508459155..e580df52ad224 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -400,10 +400,149 @@ pub const ENOTCAPABLE: c_int = 76; pub const EOPNOTSUPP: c_int = ENOTSUP; pub const EWOULDBLOCK: c_int = EAGAIN; +pub const _SC_ARG_MAX: c_int = 0; +pub const _SC_CHILD_MAX: c_int = 1; +pub const _SC_CLK_TCK: c_int = 2; +pub const _SC_NGROUPS_MAX: c_int = 3; +pub const _SC_OPEN_MAX: c_int = 4; +pub const _SC_STREAM_MAX: c_int = 5; +pub const _SC_TZNAME_MAX: c_int = 6; +pub const _SC_JOB_CONTROL: c_int = 7; +pub const _SC_SAVED_IDS: c_int = 8; +pub const _SC_REALTIME_SIGNALS: c_int = 9; +pub const _SC_PRIORITY_SCHEDULING: c_int = 10; +pub const _SC_TIMERS: c_int = 11; +pub const _SC_ASYNCHRONOUS_IO: c_int = 12; +pub const _SC_PRIORITIZED_IO: c_int = 13; +pub const _SC_SYNCHRONIZED_IO: c_int = 14; +pub const _SC_FSYNC: c_int = 15; +pub const _SC_MAPPED_FILES: c_int = 16; +pub const _SC_MEMLOCK: c_int = 17; +pub const _SC_MEMLOCK_RANGE: c_int = 18; +pub const _SC_MEMORY_PROTECTION: c_int = 19; +pub const _SC_MESSAGE_PASSING: c_int = 20; +pub const _SC_SEMAPHORES: c_int = 21; +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 22; +pub const _SC_AIO_LISTIO_MAX: c_int = 23; +pub const _SC_AIO_MAX: c_int = 24; +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 25; +pub const _SC_DELAYTIMER_MAX: c_int = 26; +pub const _SC_MQ_OPEN_MAX: c_int = 27; +pub const _SC_MQ_PRIO_MAX: c_int = 28; +pub const _SC_VERSION: c_int = 29; pub const _SC_PAGESIZE: c_int = 30; pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE; +pub const _SC_RTSIG_MAX: c_int = 31; +pub const _SC_SEM_NSEMS_MAX: c_int = 32; +pub const _SC_SEM_VALUE_MAX: c_int = 33; +pub const _SC_SIGQUEUE_MAX: c_int = 34; +pub const _SC_TIMER_MAX: c_int = 35; +pub const _SC_BC_BASE_MAX: c_int = 36; +pub const _SC_BC_DIM_MAX: c_int = 37; +pub const _SC_BC_SCALE_MAX: c_int = 38; +pub const _SC_BC_STRING_MAX: c_int = 39; +pub const _SC_COLL_WEIGHTS_MAX: c_int = 40; +pub const _SC_EXPR_NEST_MAX: c_int = 42; +pub const _SC_LINE_MAX: c_int = 43; +pub const _SC_RE_DUP_MAX: c_int = 44; +pub const _SC_2_VERSION: c_int = 46; +pub const _SC_2_C_BIND: c_int = 47; +pub const _SC_2_C_DEV: c_int = 48; +pub const _SC_2_FORT_DEV: c_int = 49; +pub const _SC_2_FORT_RUN: c_int = 50; +pub const _SC_2_SW_DEV: c_int = 51; +pub const _SC_2_LOCALEDEF: c_int = 52; +pub const _SC_UIO_MAXIOV: c_int = 60; pub const _SC_IOV_MAX: c_int = 60; +pub const _SC_THREADS: c_int = 67; +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 68; +pub const _SC_GETGR_R_SIZE_MAX: c_int = 69; +pub const _SC_GETPW_R_SIZE_MAX: c_int = 70; +pub const _SC_LOGIN_NAME_MAX: c_int = 71; +pub const _SC_TTY_NAME_MAX: c_int = 72; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 73; +pub const _SC_THREAD_KEYS_MAX: c_int = 74; +pub const _SC_THREAD_STACK_MIN: c_int = 75; +pub const _SC_THREAD_THREADS_MAX: c_int = 76; +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 77; +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 78; +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 79; +pub const _SC_THREAD_PRIO_INHERIT: c_int = 80; +pub const _SC_THREAD_PRIO_PROTECT: c_int = 81; +pub const _SC_THREAD_PROCESS_SHARED: c_int = 82; +pub const _SC_NPROCESSORS_CONF: c_int = 83; +pub const _SC_NPROCESSORS_ONLN: c_int = 84; +pub const _SC_PHYS_PAGES: c_int = 85; +pub const _SC_AVPHYS_PAGES: c_int = 86; +pub const _SC_ATEXIT_MAX: c_int = 87; +pub const _SC_PASS_MAX: c_int = 88; +pub const _SC_XOPEN_VERSION: c_int = 89; +pub const _SC_XOPEN_XCU_VERSION: c_int = 90; +pub const _SC_XOPEN_UNIX: c_int = 91; +pub const _SC_XOPEN_CRYPT: c_int = 92; +pub const _SC_XOPEN_ENH_I18N: c_int = 93; +pub const _SC_XOPEN_SHM: c_int = 94; +pub const _SC_2_CHAR_TERM: c_int = 95; +pub const _SC_2_UPE: c_int = 97; +pub const _SC_XOPEN_XPG2: c_int = 98; +pub const _SC_XOPEN_XPG3: c_int = 99; +pub const _SC_XOPEN_XPG4: c_int = 100; +pub const _SC_NZERO: c_int = 109; +pub const _SC_XBS5_ILP32_OFF32: c_int = 125; +pub const _SC_XBS5_ILP32_OFFBIG: c_int = 126; +pub const _SC_XBS5_LP64_OFF64: c_int = 127; +pub const _SC_XBS5_LPBIG_OFFBIG: c_int = 128; +pub const _SC_XOPEN_LEGACY: c_int = 129; +pub const _SC_XOPEN_REALTIME: c_int = 130; +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 131; +pub const _SC_ADVISORY_INFO: c_int = 132; +pub const _SC_BARRIERS: c_int = 133; +pub const _SC_CLOCK_SELECTION: c_int = 137; +pub const _SC_CPUTIME: c_int = 138; +pub const _SC_THREAD_CPUTIME: c_int = 139; +pub const _SC_MONOTONIC_CLOCK: c_int = 149; +pub const _SC_READER_WRITER_LOCKS: c_int = 153; +pub const _SC_SPIN_LOCKS: c_int = 154; +pub const _SC_REGEXP: c_int = 155; +pub const _SC_SHELL: c_int = 157; +pub const _SC_SPAWN: c_int = 159; +pub const _SC_SPORADIC_SERVER: c_int = 160; +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 161; +pub const _SC_TIMEOUTS: c_int = 164; +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 165; +pub const _SC_2_PBS: c_int = 168; +pub const _SC_2_PBS_ACCOUNTING: c_int = 169; +pub const _SC_2_PBS_LOCATE: c_int = 170; +pub const _SC_2_PBS_MESSAGE: c_int = 171; +pub const _SC_2_PBS_TRACK: c_int = 172; pub const _SC_SYMLOOP_MAX: c_int = 173; +pub const _SC_STREAMS: c_int = 174; +pub const _SC_2_PBS_CHECKPOINT: c_int = 175; +pub const _SC_V6_ILP32_OFF32: c_int = 176; +pub const _SC_V6_ILP32_OFFBIG: c_int = 177; +pub const _SC_V6_LP64_OFF64: c_int = 178; +pub const _SC_V6_LPBIG_OFFBIG: c_int = 179; +pub const _SC_HOST_NAME_MAX: c_int = 180; +pub const _SC_TRACE: c_int = 181; +pub const _SC_TRACE_EVENT_FILTER: c_int = 182; +pub const _SC_TRACE_INHERIT: c_int = 183; +pub const _SC_TRACE_LOG: c_int = 184; +pub const _SC_IPV6: c_int = 235; +pub const _SC_RAW_SOCKETS: c_int = 236; +pub const _SC_V7_ILP32_OFF32: c_int = 237; +pub const _SC_V7_ILP32_OFFBIG: c_int = 238; +pub const _SC_V7_LP64_OFF64: c_int = 239; +pub const _SC_V7_LPBIG_OFFBIG: c_int = 240; +pub const _SC_SS_REPL_MAX: c_int = 241; +pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 242; +pub const _SC_TRACE_NAME_MAX: c_int = 243; +pub const _SC_TRACE_SYS_MAX: c_int = 244; +pub const _SC_TRACE_USER_EVENT_MAX: c_int = 245; +pub const _SC_XOPEN_STREAMS: c_int = 246; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 247; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 248; +pub const _SC_MINSIGSTKSZ: c_int = 249; +pub const _SC_SIGSTKSZ: c_int = 250; // FIXME(msrv): `addr_of!(EXTERN_STATIC)` is now safe; remove `unsafe` when MSRV >= 1.82 #[allow(unused_unsafe)] From bfe81caaaad2c4472884751de5a00d95767b92f4 Mon Sep 17 00:00:00 2001 From: 500-internal-server-error <76838083+500-internal-server-error@users.noreply.github.com> Date: Tue, 24 Mar 2026 11:47:18 +0700 Subject: [PATCH 1202/1228] cygwin: Add missing TIOCM_DSR from termios.h https://github.com/msys2/msys2-runtime/blob/msys2-3.6.7/winsup/cygwin/include/sys/termios.h#L37 (backport ) (cherry picked from commit 7e4e75cafe7fed1d08e17b49c69d8a6ebb41358c) --- src/unix/cygwin/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index e190e18f4cd63..0c093a4c17726 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -1038,6 +1038,7 @@ pub const TIOCM_RTS: c_int = 0x004; pub const TIOCM_CTS: c_int = 0x020; pub const TIOCM_CAR: c_int = 0x040; pub const TIOCM_RNG: c_int = 0x080; +pub const TIOCM_DSR: c_int = 0x100; pub const TIOCM_CD: c_int = TIOCM_CAR; pub const TIOCM_RI: c_int = TIOCM_RNG; pub const TCOOFF: c_int = 0; From 939e0ec2a8c3234424286719405cb708e9b8062b Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Sun, 22 Mar 2026 10:27:09 +0100 Subject: [PATCH 1203/1228] Define max_align_t for riscv64-linux (backport ) (cherry picked from commit 17ba5c18a5cbe0f89f1ab1f87534f9280daeb3c6) --- libc-test/semver/linux-riscv64gc.txt | 1 + src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/libc-test/semver/linux-riscv64gc.txt b/libc-test/semver/linux-riscv64gc.txt index 01609e899a709..3f0f93a13ac13 100644 --- a/libc-test/semver/linux-riscv64gc.txt +++ b/libc-test/semver/linux-riscv64gc.txt @@ -80,3 +80,4 @@ TIOCSRS485 flock64 fsblkcnt64_t fsfilcnt64_t +max_align_t diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index 3438a510d3bf9..cbb1502ebcc01 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -286,6 +286,11 @@ s_no_extra_traits! { pub __fcsr: c_uint, pub __glibc_reserved: [c_uint; 3], } + + #[repr(align(16))] + pub struct max_align_t { + priv_: [f32; 8], + } } pub const POSIX_FADV_DONTNEED: c_int = 4; From d32b83db3c0e078e0a8b094d9dfbd41f87c7a20f Mon Sep 17 00:00:00 2001 From: Sung Won Cho Date: Sat, 21 Mar 2026 10:54:06 -0700 Subject: [PATCH 1204/1228] Add IP_MINTTL to bsd (backport ) (cherry picked from commit 34527ca4c0b43f10062a810789953a538a76ed7d) --- libc-test/semver/dragonfly.txt | 1 + libc-test/semver/freebsd.txt | 1 + src/unix/bsd/freebsdlike/mod.rs | 1 + 3 files changed, 3 insertions(+) diff --git a/libc-test/semver/dragonfly.txt b/libc-test/semver/dragonfly.txt index 6d41c8c6cabd9..0b158da70a17a 100644 --- a/libc-test/semver/dragonfly.txt +++ b/libc-test/semver/dragonfly.txt @@ -500,6 +500,7 @@ IPV6_RECVPKTINFO IPV6_RECVTCLASS IPV6_TCLASS IP_HDRINCL +IP_MINTTL IP_RECVDSTADDR IP_RECVIF IP_RECVTTL diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index 29f2c56edab80..79a81624074c9 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -669,6 +669,7 @@ IP_BINDANY IP_BINDMULTI IP_DONTFRAG IP_HDRINCL +IP_MINTTL IP_ORIGDSTADDR IP_RECVDSTADDR IP_RECVIF diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 0ec0eecd6ede9..38fe66a11b8ea 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -935,6 +935,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 = 65; +pub const IP_MINTTL: c_int = 66; pub const IPV6_RECVHOPLIMIT: c_int = 37; pub const IPV6_JOIN_GROUP: c_int = 12; pub const IPV6_LEAVE_GROUP: c_int = 13; From 078f5c6b3c7c3a51deba2c52c3d00b93cbb48557 Mon Sep 17 00:00:00 2001 From: Nicolas Boichat Date: Tue, 31 Mar 2026 00:07:39 +0800 Subject: [PATCH 1205/1228] newlib/espidf: Move DT_* to espidf/mod.rs The values are different from standard newlib. (backport ) (cherry picked from commit 9c1167e6dbba8340b4293acd07da20e18d285356) --- src/unix/mod.rs | 6 +++++- src/unix/newlib/espidf/mod.rs | 11 +++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 5f23744d276cf..6bde0295ba95a 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -234,7 +234,11 @@ pub const SIG_IGN: sighandler_t = 1 as sighandler_t; pub const SIG_ERR: sighandler_t = !0 as sighandler_t; cfg_if! { - if #[cfg(all(not(target_os = "nto"), not(target_os = "aix")))] { + if #[cfg(all( + not(target_os = "nto"), + not(target_os = "aix"), + not(target_os = "espidf") + ))] { pub const DT_UNKNOWN: u8 = 0; pub const DT_FIFO: u8 = 1; pub const DT_CHR: u8 = 2; diff --git a/src/unix/newlib/espidf/mod.rs b/src/unix/newlib/espidf/mod.rs index d3b01b883566b..b791bbe265368 100644 --- a/src/unix/newlib/espidf/mod.rs +++ b/src/unix/newlib/espidf/mod.rs @@ -99,6 +99,17 @@ pub const NSIG: size_t = 32; pub const SOMAXCONN: c_int = 128; +pub const DT_UNKNOWN: u8 = 0; +pub const DT_REG: u8 = 1; +pub const DT_DIR: u8 = 2; +// Not used by esp-idf, but still defined in headers. +pub const DT_CHR: u8 = 4; +pub const DT_BLK: u8 = 6; +pub const DT_FIFO: u8 = 8; +pub const DT_LNK: u8 = 10; +pub const DT_SOCK: u8 = 12; +pub const DT_WHT: u8 = 14; + extern "C" { pub fn pthread_create( native: *mut crate::pthread_t, From df06e43309c93a6dc5ea210d72f0284d945c7d61 Mon Sep 17 00:00:00 2001 From: Zhiwei Liang Date: Sun, 29 Mar 2026 14:48:28 -0400 Subject: [PATCH 1206/1228] Fix locale values and add RTLD_NOLOAD, some TCP constants Signed-off-by: Zhiwei Liang (backport ) (cherry picked from commit 505ad3459fd8945c830829c437756b7a9e790b50) --- libc-test/semver/redox.txt | 4 ++++ src/unix/redox/mod.rs | 18 +++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/libc-test/semver/redox.txt b/libc-test/semver/redox.txt index d7b6a5c676165..083e25648045d 100644 --- a/libc-test/semver/redox.txt +++ b/libc-test/semver/redox.txt @@ -165,6 +165,7 @@ RLIMIT_STACK RLIM_INFINITY RLIM_SAVED_CUR RLIM_SAVED_MAX +RTLD_NOLOAD RUSAGE_BOTH RUSAGE_CHILDREN RUSAGE_SELF @@ -190,7 +191,10 @@ SO_REUSEPORT SO_SNDBUFFORCE TCFLSH TCGETS +TCP_KEEPCNT TCP_KEEPIDLE +TCP_KEEPINTVL +TCP_MAXSEG TCSETS TIOCGPGRP TIOCSCTTY diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 102373c6c1ebd..51766620c6705 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -353,6 +353,7 @@ pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); // dlfcn.h pub const RTLD_LAZY: c_int = 0x0001; pub const RTLD_NOW: c_int = 0x0002; +pub const RTLD_NOLOAD: c_int = 0x0004; pub const RTLD_GLOBAL: c_int = 0x0100; pub const RTLD_LOCAL: c_int = 0x0000; @@ -528,13 +529,13 @@ pub const O_NOFOLLOW: c_int = -0x8000_0000; pub const O_NOCTTY: c_int = 0x00000200; // locale.h -pub const LC_ALL: c_int = 0; -pub const LC_COLLATE: c_int = 1; -pub const LC_CTYPE: c_int = 2; -pub const LC_MESSAGES: c_int = 3; -pub const LC_MONETARY: c_int = 4; -pub const LC_NUMERIC: c_int = 5; -pub const LC_TIME: c_int = 6; +pub const LC_COLLATE: c_int = 0; +pub const LC_CTYPE: c_int = 1; +pub const LC_MESSAGES: c_int = 2; +pub const LC_MONETARY: c_int = 3; +pub const LC_NUMERIC: c_int = 4; +pub const LC_TIME: c_int = 5; +pub const LC_ALL: c_int = 6; // netdb.h pub const AI_PASSIVE: c_int = 0x0001; @@ -592,7 +593,10 @@ pub const IPPROTO_MAX: c_int = 255; // netinet/tcp.h pub const TCP_NODELAY: c_int = 1; +pub const TCP_MAXSEG: c_int = 2; pub const TCP_KEEPIDLE: c_int = 4; +pub const TCP_KEEPINTVL: c_int = 5; +pub const TCP_KEEPCNT: c_int = 6; // poll.h pub const POLLIN: c_short = 0x001; From bbb1c5d350e010760c4ebdbc2bb499b2e0faff76 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 1 Apr 2026 08:15:51 +0000 Subject: [PATCH 1207/1228] types: Add a `new` function to `Padding` Allow constructing in const contexts without `MaybeUninit`, even at our MSRV. (backport ) (cherry picked from commit 6515ae519e36b4d40200672753b92daf02f7e94e) --- src/types.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/types.rs b/src/types.rs index c2873ddbf4f1b..e73d4bf58c84b 100644 --- a/src/types.rs +++ b/src/types.rs @@ -11,7 +11,7 @@ use crate::prelude::*; // This is restricted to `Copy` types since that's a loose indicator that zeros is actually // a valid bitpattern. There is no technical reason this is required, though, so it could be // lifted in the future if it becomes a problem. -#[allow(unused)] +#[allow(dead_code)] #[repr(transparent)] #[derive(Clone, Copy)] pub(crate) struct Padding(MaybeUninit); @@ -23,10 +23,16 @@ impl Default for Padding { } impl Padding { + /// Create a `Padding` initialized with the given value. + #[allow(dead_code)] + pub(crate) const fn new(val: T) -> Self { + Self(MaybeUninit::new(val)) + } + /// Const constructor for uninitialized padding in const contexts. - // FIXME: Change this into zeroed() and use MaybeUninit::zeroed() + // FIXME(msrv): Change this into zeroed() and use MaybeUninit::zeroed() // when we depend on rustc 1.75.0. - #[allow(unused)] + #[allow(dead_code)] pub(crate) const fn uninit() -> Self { // We can still safely use uninit here, since padding is something // that is not meant to be read or written anyways. From b5dcda885fbf89e39e6a8fb80ee46f90284a6d4a Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 1 Apr 2026 08:20:15 +0000 Subject: [PATCH 1208/1228] pthread: Use `Padding::new()` rather than `Padding::uninit()` The system libc may expect these fields to be initialized. (backport ) (cherry picked from commit 0ec02fb22671b10e487e29e8d5d4fec53d6271a1) --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 8 ++++---- src/unix/haiku/mod.rs | 4 ++-- src/unix/hurd/mod.rs | 4 ++-- src/unix/linux_like/android/b32/mod.rs | 2 +- src/unix/linux_like/android/b64/mod.rs | 6 +++--- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 27e77c28b4f24..f3d027ce34323 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1328,9 +1328,9 @@ cfg_if! { pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { ptm_magic: 0x33330003, ptm_errorcheck: 0, - ptm_pad1: Padding::uninit(), - ptm_unused: Padding::uninit(), - ptm_pad2: Padding::uninit(), + ptm_pad1: Padding::new([0; 3]), + ptm_unused: Padding::new(0), + ptm_pad2: Padding::new([0; 3]), ptm_waiters: 0 as *mut _, ptm_owner: 0, ptm_recursed: 0, @@ -1340,7 +1340,7 @@ cfg_if! { pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { ptm_magic: 0x33330003, ptm_errorcheck: 0, - ptm_unused: Padding::uninit(), + ptm_unused: Padding::new(0), ptm_waiters: 0 as *mut _, ptm_owner: 0, ptm_recursed: 0, diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 87caa545c183a..cbb6464ed84b0 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1091,13 +1091,13 @@ pub const PTHREAD_STACK_MIN: size_t = 8192; pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { flags: 0, lock: 0, - unused: Padding::uninit(), + unused: Padding::new(0), owner: -1, owner_count: 0, }; pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { flags: 0, - unused: Padding::uninit(), + unused: Padding::new(0), mutex: 0 as *mut _, waiter_count: 0, lock: 0, diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 7080de567a314..74b77d96f007e 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -3331,8 +3331,8 @@ pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { __shpid: 0, __type: PTHREAD_MUTEX_TIMED as c_int, __flags: 0, - __reserved1: Padding::uninit(), - __reserved2: Padding::uninit(), + __reserved1: Padding::new(0), + __reserved2: Padding::new(0), }; pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { __lock: __PTHREAD_SPIN_LOCK_INITIALIZER, diff --git a/src/unix/linux_like/android/b32/mod.rs b/src/unix/linux_like/android/b32/mod.rs index 7927a2390ccf2..d0c2349b98c62 100644 --- a/src/unix/linux_like/android/b32/mod.rs +++ b/src/unix/linux_like/android/b32/mod.rs @@ -209,7 +209,7 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { pendingReaders: 0, pendingWriters: 0, attr: 0, - __reserved: Padding::uninit(), + __reserved: Padding::new([0; 12]), }; pub const PTHREAD_STACK_MIN: size_t = 4096 * 2; pub const CPU_SETSIZE: size_t = 32; diff --git a/src/unix/linux_like/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs index 9fc1819379e56..84c35a57f674a 100644 --- a/src/unix/linux_like/android/b64/mod.rs +++ b/src/unix/linux_like/android/b64/mod.rs @@ -155,11 +155,11 @@ pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { value: 0, - __reserved: Padding::uninit(), + __reserved: Padding::new([0; 36]), }; pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { value: 0, - __reserved: Padding::uninit(), + __reserved: Padding::new([0; 44]), }; pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { numLocks: 0, @@ -167,7 +167,7 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { pendingReaders: 0, pendingWriters: 0, attr: 0, - __reserved: Padding::uninit(), + __reserved: Padding::new([0; 36]), }; pub const PTHREAD_STACK_MIN: size_t = 4096 * 4; pub const CPU_SETSIZE: size_t = 1024; From 14cbbec35360179b68947183d3ba618fa78acba2 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 1 Apr 2026 08:21:06 +0000 Subject: [PATCH 1209/1228] types: Remove `Padding::uninit` It is effectively always preferable to zero-initialize; there aren't any cases where we can't do that. (backport ) (cherry picked from commit f6611e056850addbe3681f76ca4e4c51f9185977) --- src/types.rs | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/types.rs b/src/types.rs index e73d4bf58c84b..1b41d6d0b6338 100644 --- a/src/types.rs +++ b/src/types.rs @@ -28,16 +28,6 @@ impl Padding { pub(crate) const fn new(val: T) -> Self { Self(MaybeUninit::new(val)) } - - /// Const constructor for uninitialized padding in const contexts. - // FIXME(msrv): Change this into zeroed() and use MaybeUninit::zeroed() - // when we depend on rustc 1.75.0. - #[allow(dead_code)] - pub(crate) const fn uninit() -> Self { - // We can still safely use uninit here, since padding is something - // that is not meant to be read or written anyways. - Self(MaybeUninit::uninit()) - } } impl fmt::Debug for Padding { From 4645f60c3a289aaf7d7fe08e2de66a1acd63a97c Mon Sep 17 00:00:00 2001 From: Marco Cavenati Date: Tue, 10 Feb 2026 11:37:07 +0100 Subject: [PATCH 1210/1228] linux: update ptrace_syscall_info struct Add new flags field and reserveds. (backport ) (cherry picked from commit 475a5196d9a6ee318f694f6c4385482c711f3f0f) --- libc-test/build.rs | 8 +++++++- src/unix/linux_like/linux/gnu/mod.rs | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 6ca5a996807a1..1153f56e1f5ff 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4317,6 +4317,10 @@ fn test_linux(target: &str) { // FIXME(musl): New fields in newer versions "utmpx" if !old_musl => true, + // FIXME(linux): Requires >= 6.16 kernel headers. + // On 64 bits the size did not change, skip only for 32 bits. + "ptrace_syscall_info" if pointer_width == 32 => true, + _ => false, } }); @@ -4885,7 +4889,9 @@ fn test_linux(target: &str) { true } // the `u` field is in fact an anonymous union - ("ptrace_syscall_info", "u" | "pad") if gnu => true, + ("ptrace_syscall_info", "u") if gnu => true, + // FIXME(linux): `flags` requires >= 6.16 kernel headers + ("ptrace_syscall_info", "flags") if gnu => true, // the vregs field is a `__uint128_t` C's type. ("user_fpsimd_struct", "vregs") => true, // Linux >= 5.11 tweaked the `svm_zero` field of the `sockaddr_vm` struct. diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index dfc5858683896..65e94a19a517b 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -202,11 +202,13 @@ s! { pub nr: crate::__u64, pub args: [crate::__u64; 6], pub ret_data: crate::__u32, + reserved2: Padding, } pub struct ptrace_syscall_info { pub op: crate::__u8, - pub pad: [crate::__u8; 3], + reserved: Padding, + pub flags: crate::__u16, pub arch: crate::__u32, pub instruction_pointer: crate::__u64, pub stack_pointer: crate::__u64, From f596819d7c309f9de20ace14532d37d94ae48380 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 1 Apr 2026 10:48:46 +0000 Subject: [PATCH 1211/1228] ci: Don't enforce cargo-semver-checks We did a change that is technically breaking. There isn't a way to allow overrides, so just disable the check. --- ci/verify-build.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ci/verify-build.py b/ci/verify-build.py index ce3410398eb34..d704002ccb449 100755 --- a/ci/verify-build.py +++ b/ci/verify-build.py @@ -287,14 +287,16 @@ def do_semver_checks(cfg: Cfg, target: Target) -> bool: "--features=std,extra_traits", "--release-type=patch", ], - check=True, + check=False, ) # Don't return here so we still get the same rustdoc-json-base tests even while # running on the host. if cfg.baseline_crate_dir is None: - eprint("Non-host target: --baseline-crate-dir must be specified to \ - run semver-checks") + eprint( + "Non-host target: --baseline-crate-dir must be specified to \ + run semver-checks" + ) sys.exit(1) # Since semver-checks doesn't work with `--target`, we build the json ourself and From b1fd610c7eb6026c108f318874283525871b0e77 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 1 Apr 2026 11:18:20 +0000 Subject: [PATCH 1212/1228] chore: Release libc 0.2.184 --- CHANGELOG.md | 43 +++++++++++++++++++++++++++++++++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 4 files changed, 46 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 39117daf125ec..88d736526ffe5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,48 @@ # Changelog +## [0.2.184](https://github.com/rust-lang/libc/compare/0.2.183...0.2.184) - 2026-04-01 + +### MSRV + +This release increases the MSRV of `libc` to 1.65. With this update, you can now always use the +`core::ffi::c_*` types with `libc` definitions, since `libc` has been changed to reexport from +`core` rather than redefining them. (This _usually_ worked before but had edge cases.) +([#4972](https://github.com/rust-lang/libc/pull/4972)) + +### Added + +- BSD: Add `IP_MINTTL` to bsd ([#5026](https://github.com/rust-lang/libc/pull/5026)) +- Cygwin: Add `TIOCM_DSR` ([#5031](https://github.com/rust-lang/libc/pull/5031)) +- FreeBSD: Added `xfile` structe and file descriptor types ([#5002](https://github.com/rust-lang/libc/pull/5002)) +- Linux: Add CAN netlink bindings ([#5011](https://github.com/rust-lang/libc/pull/5011)) +- Linux: Add `struct ethhdr` ([#4239](https://github.com/rust-lang/libc/pull/4239)) +- Linux: Add `struct ifinfomsg` ([#5012](https://github.com/rust-lang/libc/pull/5012)) +- Linux: Define `max_align_t` for riscv64 ([#5029](https://github.com/rust-lang/libc/pull/5029)) +- NetBSD: Add missing `CLOCK_` constants ([#5020](https://github.com/rust-lang/libc/pull/5020)) +- NuttX: Add `_SC_HOST_NAME_MAX` ([#5004](https://github.com/rust-lang/libc/pull/5004)) +- VxWorks: Add `flock` and `F_*LCK` constants ([#4043](https://github.com/rust-lang/libc/pull/4043)) +- WASI: Add all `_SC_*` sysconf constants ([#5023](https://github.com/rust-lang/libc/pull/5023)) + +### Deprecated + +The remaining fixed-width integer aliases, `__uint128_t`, `__uint128`, `__int128_t`, and `__int128`, +have been deprecated. Use `i128` and `u128` instead. ([#4343](https://github.com/rust-lang/libc/pull/4343)) + +### Fixed + +- **breaking** Redox: Fix signal action constant types ([#5009](https://github.com/rust-lang/libc/pull/5009)) +- EspIDF: Correct the value of `DT_*` constants ([#5034](https://github.com/rust-lang/libc/pull/5034)) +- Redox: Fix locale values and add `RTLD_NOLOAD`, some TCP constants ([#5025](https://github.com/rust-lang/libc/pull/5025)) +- Various: Use `Padding::new()` rather than `Padding::uninit()` ([#5036](https://github.com/rust-lang/libc/pull/5036)) + +### Changed + +- **potentially breaking** Linux: Add new fields to `struct ptrace_syscall_info` ([#4966](https://github.com/rust-lang/libc/pull/4966)) +- Re-export `core::ffi` integer types rather than redefining ([#5015](https://github.com/rust-lang/libc/pull/5015)) +- Redox: Update `F_DUPFD`, `IP`, and `TCP` constants to match relibc ([#4990](https://github.com/rust-lang/libc/pull/4990)) + + + ## [0.2.183](https://github.com/rust-lang/libc/compare/0.2.182...0.2.183) - 2026-03-08 ### Added diff --git a/Cargo.lock b/Cargo.lock index 9ed67f982a5dd..4e981c67ca95b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -132,7 +132,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "libc" -version = "0.2.183" +version = "0.2.184" dependencies = [ "rustc-std-workspace-core", ] diff --git a/Cargo.toml b/Cargo.toml index f1c9797f57a67..b575e8ad3f5cc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.183" +version = "0.2.184" keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml", "cherry-pick-stable.sh"] diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 209842b6f52e7..3ca06185e104e 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -10,7 +10,7 @@ repository = "https://github.com/rust-lang/libc" [dependencies] cfg-if = "1.0.4" -libc = { path = "..", version = "0.2.183", default-features = false } +libc = { path = "..", version = "0.2.184", default-features = false } [dev-dependencies] syn = { version = "2.0.108", features = ["full", "visit"] } From 80135ff75e359a3859ca3e4068989701b6a7d8c4 Mon Sep 17 00:00:00 2001 From: Ally Sommers Date: Thu, 19 Mar 2026 09:24:28 -0700 Subject: [PATCH 1213/1228] Add `sprintf`, `snprintf`, and the `scanf` family for Windows (backport ) (cherry picked from commit b6ab1fbc3946975593d3b3ef3b733ed97ae64146) --- libc-test/semver/windows.txt | 5 +++++ src/windows/mod.rs | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/libc-test/semver/windows.txt b/libc-test/semver/windows.txt index 9e39684f07558..69fa190f2a18d 100644 --- a/libc-test/semver/windows.txt +++ b/libc-test/semver/windows.txt @@ -212,6 +212,7 @@ fputs fread free freopen +fscanf fseek fsetpos fstat @@ -286,6 +287,7 @@ remove rename rewind rmdir +scanf sendto setbuf setlocale @@ -294,9 +296,12 @@ setvbuf sighandler_t signal size_t +snprintf sockaddr socket +sprintf srand +sscanf ssize_t stat strcat diff --git a/src/windows/mod.rs b/src/windows/mod.rs index f51202bf6567f..612c0ee11c4f3 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -268,6 +268,17 @@ cfg_if! { extern "C" { pub fn printf(format: *const c_char, ...) -> c_int; pub fn fprintf(stream: *mut FILE, format: *const c_char, ...) -> c_int; + pub fn snprintf( + buffer: *mut c_char, + count: size_t, + format: *const c_char, + ... + ) -> c_int; + pub fn sprintf(buffer: *mut c_char, format: *const c_char, ...) -> c_int; + + pub fn scanf(format: *const c_char, ...) -> c_int; + pub fn sscanf(buffer: *const c_char, format: *const c_char, ...) -> c_int; + pub fn fscanf(stream: *mut FILE, format: *const c_char, ...) -> c_int; } } } From db1ebee456a2cb08eb53489906a0a6869f62c365 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 8 Apr 2026 00:44:21 +0000 Subject: [PATCH 1214/1228] ci: Pin nightly to 2026-04-01 The latest nightly hits an ICE in CI from [1]. [1]: https://github.com/rust-lang/rust/issues/154878 (backport ) (cherry picked from commit e26a0bd01d465c136043c1e23f71b106ceb0746f) --- .github/workflows/ci.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7203340862eb9..f43fd28ffa45c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -15,6 +15,8 @@ env: RUST_BACKTRACE: full # Base branch for PRs or for merges, current ref for cron runs on a branch. TARGET_REF: ${{ github.base_ref || github.event.merge_group.base_ref || github.ref }} + # FIXME(ci): Unpin once is resolved. + TOOLCHAIN: nightly-2026-04-01 defaults: run: From b3264b292ab0372bde0f9a0aa41b2758a8837bde Mon Sep 17 00:00:00 2001 From: Brian Cain Date: Sat, 4 Apr 2026 06:43:05 -0700 Subject: [PATCH 1215/1228] hexagon: decouple time64 types from musl symbol redirects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `musl32_time64` cfg previously conflated two distinct concepts: 1. Type definitions: `time_t` is `i64`, `suseconds_t` is `i64`, `timespec` has padding — applies to all 32-bit musl v1.2.3+ targets including hexagon. 2. Symbol redirects: `clock_gettime` → `__clock_gettime64` etc., corresponding to musl's `_REDIR_TIME64` — applies only to arm, mips, powerpc, and x86. Hexagon was added to musl after the time64 transition and never had a 32-bit `time_t`, so its libc exports `clock_gettime` directly with no `__*_time64` symbols. Applying the link-name redirects caused undefined symbol errors at link time (rust-lang/rust#154686). Introduce a new `musl_redir_time64` cfg for the symbol redirects and restrict it to arches that define `_REDIR_TIME64`. Keep `musl32_time64` for the type/struct meaning, now set generically for all 32-bit musl v1.2.3+ targets (removing explicit `target_arch = "hexagon"` conditions). (backport ) (cherry picked from commit a6b660c2f7e83a9a890d1de218b7441e5682ecb7) --- build.rs | 14 +++++--- libc-test/build.rs | 8 ++++- src/new/common/posix/pthread.rs | 2 +- src/new/musl/sys/socket.rs | 2 +- src/unix/linux_like/linux/mod.rs | 22 ++++++++----- src/unix/linux_like/linux/musl/mod.rs | 8 ++--- src/unix/linux_like/linux_l4re_shared.rs | 22 ++++++++----- src/unix/linux_like/mod.rs | 22 ++++++++----- src/unix/mod.rs | 42 ++++++++++++------------ 9 files changed, 86 insertions(+), 56 deletions(-) diff --git a/build.rs b/build.rs index 5eb2de351dfdc..bc1b077ac6961 100644 --- a/build.rs +++ b/build.rs @@ -28,8 +28,10 @@ const ALLOWED_CFGS: &[&str] = &[ // Corresponds to `__USE_TIME_BITS64` in UAPI "linux_time_bits64", "musl_v1_2_3", - // Corresponds to `_REDIR_TIME64` in musl + // musl v1.2.3+ && 32-bit: time_t is i64, struct layouts change "musl32_time64", + // Corresponds to `_REDIR_TIME64` in musl: symbol redirects to __*_time64 + "musl_redir_time64", "vxworks_lt_25_09", ]; @@ -51,8 +53,9 @@ const CHECK_CFG_EXTRA: &[(&str, &[&str])] = &[ ), ]; -/// Musl architectures that set `#define _REDIR_TIME64 1`. -const MUSL_REDIR_TIME64_ARCHES: &[&str] = &["arm", "hexagon", "mips", "powerpc", "x86"]; +/// Musl architectures that define `_REDIR_TIME64` (i.e. those that transitioned +/// from 32-bit to 64-bit `time_t` and need `__*_time64` symbol redirects). +const MUSL_REDIR_TIME64_ARCHES: &[&str] = &["arm", "mips", "powerpc", "x86"]; fn main() { // Avoid unnecessary re-building. @@ -117,10 +120,13 @@ fn main() { if musl && musl_v1_2_3 { set_cfg("musl_v1_2_3"); - if MUSL_REDIR_TIME64_ARCHES.contains(&target_arch.as_str()) { + if target_ptr_width == "32" { set_cfg("musl32_time64"); set_cfg("linux_time_bits64"); } + if MUSL_REDIR_TIME64_ARCHES.contains(&target_arch.as_str()) { + set_cfg("musl_redir_time64"); + } } let linux_time_bits64 = env::var("RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64").is_ok(); diff --git a/libc-test/build.rs b/libc-test/build.rs index 1153f56e1f5ff..a3de6f94c2098 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3869,13 +3869,18 @@ fn test_linux(target: &str) { } let old_musl = musl && !musl_v1_2_3; + let b32 = arm || target.contains("hexagon") || mips32 || ppc32 || x86_32; + let mut cfg = ctest_cfg(); if (musl_v1_2_3 || loongarch64 || hexagon) && musl { cfg.cfg("musl_v1_2_3", None); - if arm || hexagon || ppc32 || x86_32 || mips32 { + if b32 { cfg.cfg("musl32_time64", None); cfg.cfg("linux_time_bits64", None); } + if arm || ppc32 || x86_32 || mips32 { + cfg.cfg("musl_redir_time64", None); + } } cfg.define("_GNU_SOURCE", None) // This macro re-defines fscanf,scanf,sscanf to link to the symbols that are @@ -4364,6 +4369,7 @@ fn test_linux(target: &str) { || name.starts_with("STATX_") || name.starts_with("SW_") || name.starts_with("SYS_") + || name.starts_with("SYS3264_") || name.starts_with("TCP_") || name.starts_with("UINPUT_") || name.starts_with("VMADDR_") diff --git a/src/new/common/posix/pthread.rs b/src/new/common/posix/pthread.rs index 146cd6042b0bb..17d390669a410 100644 --- a/src/new/common/posix/pthread.rs +++ b/src/new/common/posix/pthread.rs @@ -195,7 +195,7 @@ extern "C" { #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))] #[cfg_attr(gnu_time_bits64, link_name = "__pthread_mutex_timedlock64")] - #[cfg_attr(musl32_time64, link_name = "__pthread_mutex_timedlock_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__pthread_mutex_timedlock_time64")] pub fn pthread_mutex_timedlock( lock: *mut crate::pthread_mutex_t, abstime: *const crate::timespec, diff --git a/src/new/musl/sys/socket.rs b/src/new/musl/sys/socket.rs index e723043dc0a36..7d3f495955458 100644 --- a/src/new/musl/sys/socket.rs +++ b/src/new/musl/sys/socket.rs @@ -41,7 +41,7 @@ extern "C" { vlen: c_uint, flags: c_uint, ) -> c_int; - #[cfg_attr(musl32_time64, link_name = "__recvmmsg_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__recvmmsg_time64")] pub fn recvmmsg( sockfd: c_int, msgvec: *mut crate::mmsghdr, diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 0d3e830b77e47..9a1432e4e942d 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -4046,7 +4046,7 @@ cfg_if! { msg_prio: *mut c_uint, ) -> ssize_t; #[cfg_attr( - any(gnu_time_bits64, musl32_time64), + any(gnu_time_bits64, musl_redir_time64), link_name = "__mq_timedreceive_time64" )] pub fn mq_timedreceive( @@ -4063,7 +4063,7 @@ cfg_if! { msg_prio: c_uint, ) -> c_int; #[cfg_attr( - any(gnu_time_bits64, musl32_time64), + any(gnu_time_bits64, musl_redir_time64), link_name = "__mq_timedsend_time64" )] pub fn mq_timedsend( @@ -4089,7 +4089,7 @@ extern "C" { pub fn lcong48(p: *mut c_ushort); #[cfg_attr(gnu_time_bits64, link_name = "__lutimes64")] - #[cfg_attr(musl32_time64, link_name = "__lutimes_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__lutimes_time64")] pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int; pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int; @@ -4165,9 +4165,15 @@ extern "C" { pub fn fremovexattr(filedes: c_int, name: *const c_char) -> c_int; pub fn signalfd(fd: c_int, mask: *const crate::sigset_t, flags: c_int) -> c_int; pub fn timerfd_create(clockid: crate::clockid_t, flags: c_int) -> c_int; - #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__timerfd_gettime64")] + #[cfg_attr( + any(gnu_time_bits64, musl_redir_time64), + link_name = "__timerfd_gettime64" + )] pub fn timerfd_gettime(fd: c_int, curr_value: *mut crate::itimerspec) -> c_int; - #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__timerfd_settime64")] + #[cfg_attr( + any(gnu_time_bits64, musl_redir_time64), + link_name = "__timerfd_settime64" + )] pub fn timerfd_settime( fd: c_int, flags: c_int, @@ -4184,7 +4190,7 @@ extern "C" { ) -> c_int; pub fn dup3(oldfd: c_int, newfd: c_int, flags: c_int) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__sigtimedwait64")] - #[cfg_attr(musl32_time64, link_name = "__sigtimedwait_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__sigtimedwait_time64")] pub fn sigtimedwait( set: *const sigset_t, info: *mut siginfo_t, @@ -4247,7 +4253,7 @@ extern "C" { pub fn eventfd_write(fd: c_int, value: eventfd_t) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__sched_rr_get_interval64")] - #[cfg_attr(musl32_time64, link_name = "__sched_rr_get_interval_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__sched_rr_get_interval_time64")] pub fn sched_rr_get_interval(pid: crate::pid_t, tp: *mut crate::timespec) -> c_int; pub fn sched_setparam(pid: crate::pid_t, param: *const crate::sched_param) -> c_int; pub fn setns(fd: c_int, nstype: c_int) -> c_int; @@ -4265,7 +4271,7 @@ extern "C" { ) -> c_int; pub fn sched_getscheduler(pid: crate::pid_t) -> c_int; #[cfg_attr( - any(gnu_time_bits64, musl32_time64), + any(gnu_time_bits64, musl_redir_time64), link_name = "__clock_nanosleep_time64" )] pub fn clock_nanosleep( diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 59fe8a4192178..9d3009cba8809 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -765,7 +765,7 @@ extern "C" { new_limit: *const crate::rlimit, old_limit: *mut crate::rlimit, ) -> c_int; - #[cfg_attr(musl32_time64, link_name = "__gettimeofday_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__gettimeofday_time64")] pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut c_void) -> c_int; pub fn ptrace(request: c_int, ...) -> c_long; pub fn getpriority(which: c_int, who: crate::id_t) -> c_int; @@ -801,9 +801,9 @@ extern "C" { // Added in `musl` 1.2.2 pub fn reallocarray(ptr: *mut c_void, nmemb: size_t, size: size_t) -> *mut c_void; - #[cfg_attr(musl32_time64, link_name = "__adjtimex_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__adjtimex_time64")] pub fn adjtimex(buf: *mut crate::timex) -> c_int; - #[cfg_attr(musl32_time64, link_name = "__clock_adjtime64")] + #[cfg_attr(musl_redir_time64, link_name = "__clock_adjtime64")] pub fn clock_adjtime(clk_id: crate::clockid_t, buf: *mut crate::timex) -> c_int; pub fn ctermid(s: *mut c_char) -> *mut c_char; @@ -871,7 +871,7 @@ extern "C" { pub fn utmpxname(file: *const c_char) -> c_int; pub fn pthread_tryjoin_np(thread: crate::pthread_t, retval: *mut *mut c_void) -> c_int; #[cfg_attr( - all(musl32_time64, target_pointer_width = "32"), + all(musl_redir_time64, target_pointer_width = "32"), link_name = "__pthread_timedjoin_np_time64" )] pub fn pthread_timedjoin_np( diff --git a/src/unix/linux_like/linux_l4re_shared.rs b/src/unix/linux_like/linux_l4re_shared.rs index d91240a058583..cf76b3966ffac 100644 --- a/src/unix/linux_like/linux_l4re_shared.rs +++ b/src/unix/linux_like/linux_l4re_shared.rs @@ -976,7 +976,7 @@ pub const IPC_NOWAIT: c_int = 0o4000; pub const IPC_RMID: c_int = 0; pub const IPC_SET: c_int = 1; -pub const IPC_STAT: c_int = if cfg!(musl32_time64) { 0x102 } else { 2 }; +pub const IPC_STAT: c_int = if cfg!(musl_redir_time64) { 0x102 } else { 2 }; pub const IPC_INFO: c_int = 3; pub const SHM_R: c_int = 0o400; @@ -1660,7 +1660,7 @@ cfg_if! { #[cfg_attr(gnu_file_offset_bits64, link_name = "aio_return64")] pub fn aio_return(aiocbp: *mut crate::aiocb) -> ssize_t; #[cfg_attr( - any(musl32_time64, gnu_time_bits64), + any(musl_redir_time64, gnu_time_bits64), link_name = "__aio_suspend_time64" )] pub fn aio_suspend( @@ -1725,7 +1725,7 @@ cfg_if! { flags: c_ulong, ) -> isize; #[cfg_attr(gnu_time_bits64, link_name = "__futimes64")] - #[cfg_attr(musl32_time64, link_name = "__futimes_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__futimes_time64")] pub fn futimes(fd: c_int, times: *const crate::timeval) -> c_int; } } @@ -1827,10 +1827,10 @@ extern "C" { ) -> c_int; pub fn sched_get_priority_max(policy: c_int) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__settimeofday64")] - #[cfg_attr(musl32_time64, link_name = "__settimeofday_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__settimeofday_time64")] pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__sem_timedwait64")] - #[cfg_attr(musl32_time64, link_name = "__sem_timedwait_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__sem_timedwait_time64")] pub fn sem_timedwait(sem: *mut crate::sem_t, abstime: *const crate::timespec) -> c_int; pub fn sem_getvalue(sem: *mut crate::sem_t, sval: *mut c_int) -> c_int; pub fn mount( @@ -1843,7 +1843,7 @@ extern "C" { #[cfg_attr(gnu_time_bits64, link_name = "__prctl_time64")] pub fn prctl(option: c_int, ...) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__ppoll64")] - #[cfg_attr(musl32_time64, link_name = "__ppoll_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__ppoll_time64")] pub fn ppoll( fds: *mut crate::pollfd, nfds: crate::nfds_t, @@ -1934,9 +1934,15 @@ extern "C" { pub fn timer_delete(timerid: crate::timer_t) -> c_int; #[cfg(not(target_os = "l4re"))] pub fn timer_getoverrun(timerid: crate::timer_t) -> c_int; - #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__timer_gettime64")] + #[cfg_attr( + any(gnu_time_bits64, musl_redir_time64), + link_name = "__timer_gettime64" + )] pub fn timer_gettime(timerid: crate::timer_t, curr_value: *mut crate::itimerspec) -> c_int; - #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__timer_settime64")] + #[cfg_attr( + any(gnu_time_bits64, musl_redir_time64), + link_name = "__timer_settime64" + )] pub fn timer_settime( timerid: crate::timer_t, flags: c_int, diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 3ded4da44df91..59e16a0f3c4b4 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1873,20 +1873,26 @@ extern "C" { pub fn mincore(addr: *mut c_void, len: size_t, vec: *mut c_uchar) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__clock_getres64")] - #[cfg_attr(musl32_time64, link_name = "__clock_getres_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__clock_getres_time64")] pub fn clock_getres(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; - #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__clock_gettime64")] + #[cfg_attr( + any(gnu_time_bits64, musl_redir_time64), + link_name = "__clock_gettime64" + )] pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int; - #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__clock_settime64")] + #[cfg_attr( + any(gnu_time_bits64, musl_redir_time64), + link_name = "__clock_settime64" + )] pub fn clock_settime(clk_id: crate::clockid_t, tp: *const crate::timespec) -> c_int; #[cfg(not(target_os = "l4re"))] pub fn clock_getcpuclockid(pid: crate::pid_t, clk_id: *mut crate::clockid_t) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__getitimer64")] - #[cfg_attr(musl32_time64, link_name = "__getitimer_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__getitimer_time64")] pub fn getitimer(which: c_int, curr_value: *mut crate::itimerval) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__setitimer64")] - #[cfg_attr(musl32_time64, link_name = "__setitimer_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__setitimer_time64")] pub fn setitimer( which: c_int, new_value: *const crate::itimerval, @@ -1907,11 +1913,11 @@ extern "C" { #[cfg_attr(gnu_file_offset_bits64, link_name = "posix_fadvise64")] pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advise: c_int) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__futimens64")] - #[cfg_attr(musl32_time64, link_name = "__futimens_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__futimens_time64")] #[cfg(not(target_os = "l4re"))] pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int; #[cfg_attr(gnu_time_bits64, link_name = "__utimensat64")] - #[cfg_attr(musl32_time64, link_name = "__utimensat_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__utimensat_time64")] pub fn utimensat( dirfd: c_int, path: *const c_char, @@ -1963,7 +1969,7 @@ extern "C" { pub fn setresgid(rgid: crate::gid_t, egid: crate::gid_t, sgid: crate::gid_t) -> c_int; #[cfg(not(target_os = "l4re"))] pub fn setresuid(ruid: crate::uid_t, euid: crate::uid_t, suid: crate::uid_t) -> c_int; - #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__wait4_time64")] + #[cfg_attr(any(gnu_time_bits64, musl_redir_time64), link_name = "__wait4_time64")] #[cfg(not(target_os = "l4re"))] pub fn wait4( pid: crate::pid_t, diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 6bde0295ba95a..207c36b82d55f 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -894,7 +894,7 @@ extern "C" { all(not(gnu_time_bits64), gnu_file_offset_bits64), link_name = "fstat64" )] - #[cfg_attr(musl32_time64, link_name = "__fstat_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__fstat_time64")] pub fn fstat(fildes: c_int, buf: *mut stat) -> c_int; pub fn mkdir(path: *const c_char, mode: mode_t) -> c_int; @@ -913,7 +913,7 @@ extern "C" { all(not(gnu_time_bits64), gnu_file_offset_bits64), link_name = "stat64" )] - #[cfg_attr(musl32_time64, link_name = "__stat_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__stat_time64")] pub fn stat(path: *const c_char, buf: *mut stat) -> c_int; pub fn pclose(stream: *mut crate::FILE) -> c_int; @@ -1008,7 +1008,7 @@ extern "C" { link_name = "fstatat64" )] #[cfg(not(target_os = "l4re"))] - #[cfg_attr(musl32_time64, link_name = "__fstatat_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__fstatat_time64")] pub fn fstatat(dirfd: c_int, pathname: *const c_char, buf: *mut stat, flags: c_int) -> c_int; #[cfg(not(target_os = "l4re"))] pub fn linkat( @@ -1118,7 +1118,7 @@ extern "C" { )] #[cfg_attr(target_os = "netbsd", link_name = "__nanosleep50")] #[cfg_attr(gnu_time_bits64, link_name = "__nanosleep64")] - #[cfg_attr(musl32_time64, link_name = "__nanosleep_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__nanosleep_time64")] pub fn nanosleep(rqtp: *const timespec, rmtp: *mut timespec) -> c_int; pub fn tcgetpgrp(fd: c_int) -> pid_t; pub fn tcsetpgrp(fd: c_int, pgrp: crate::pid_t) -> c_int; @@ -1163,7 +1163,7 @@ extern "C" { pub fn umask(mask: mode_t) -> mode_t; #[cfg_attr(target_os = "netbsd", link_name = "__utime50")] - #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__utime64")] + #[cfg_attr(any(gnu_time_bits64, musl_redir_time64), link_name = "__utime64")] pub fn utime(file: *const c_char, buf: *const utimbuf) -> c_int; #[cfg_attr( @@ -1218,7 +1218,7 @@ extern "C" { all(not(gnu_time_bits64), gnu_file_offset_bits64), link_name = "lstat64" )] - #[cfg_attr(musl32_time64, link_name = "__lstat_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__lstat_time64")] pub fn lstat(path: *const c_char, buf: *mut stat) -> c_int; #[cfg_attr( @@ -1250,7 +1250,7 @@ extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__getrusage50")] #[cfg_attr(gnu_time_bits64, link_name = "__getrusage64")] - #[cfg_attr(musl32_time64, link_name = "__getrusage_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__getrusage_time64")] pub fn getrusage(resource: c_int, usage: *mut rusage) -> c_int; #[cfg_attr( @@ -1333,7 +1333,7 @@ extern "C" { link_name = "pthread_cond_timedwait$UNIX2003" )] #[cfg_attr(gnu_time_bits64, link_name = "__pthread_cond_timedwait64")] - #[cfg_attr(musl32_time64, link_name = "__pthread_cond_timedwait_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__pthread_cond_timedwait_time64")] pub fn pthread_cond_timedwait( cond: *mut crate::pthread_cond_t, lock: *mut crate::pthread_mutex_t, @@ -1402,11 +1402,11 @@ extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__utimes50")] #[cfg_attr(gnu_time_bits64, link_name = "__utimes64")] - #[cfg_attr(musl32_time64, link_name = "__utimes_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__utimes_time64")] pub fn utimes(filename: *const c_char, times: *const crate::timeval) -> c_int; pub fn dlopen(filename: *const c_char, flag: c_int) -> *mut c_void; pub fn dlerror() -> *mut c_char; - #[cfg_attr(musl32_time64, link_name = "__dlsym_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__dlsym_time64")] pub fn dlsym(handle: *mut c_void, symbol: *const c_char) -> *mut c_void; pub fn dlclose(handle: *mut c_void) -> c_int; @@ -1457,42 +1457,42 @@ extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__gmtime_r50")] #[cfg_attr(gnu_time_bits64, link_name = "__gmtime64_r")] #[cfg_attr(not(musl32_time64), allow(deprecated))] - #[cfg_attr(musl32_time64, link_name = "__gmtime64_r")] + #[cfg_attr(musl_redir_time64, link_name = "__gmtime64_r")] pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; #[cfg_attr(target_os = "netbsd", link_name = "__localtime_r50")] #[cfg_attr(gnu_time_bits64, link_name = "__localtime64_r")] #[cfg_attr(not(musl32_time64), allow(deprecated))] - #[cfg_attr(musl32_time64, link_name = "__localtime64_r")] + #[cfg_attr(musl_redir_time64, link_name = "__localtime64_r")] pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "mktime$UNIX2003" )] #[cfg_attr(target_os = "netbsd", link_name = "__mktime50")] - #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__mktime64")] + #[cfg_attr(any(gnu_time_bits64, musl_redir_time64), link_name = "__mktime64")] #[cfg_attr(not(musl32_time64), allow(deprecated))] pub fn mktime(tm: *mut tm) -> time_t; #[cfg_attr(target_os = "netbsd", link_name = "__time50")] - #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__time64")] + #[cfg_attr(any(gnu_time_bits64, musl_redir_time64), link_name = "__time64")] #[cfg_attr(not(musl32_time64), allow(deprecated))] pub fn time(time: *mut time_t) -> time_t; #[cfg_attr(target_os = "netbsd", link_name = "__gmtime50")] - #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__gmtime64")] + #[cfg_attr(any(gnu_time_bits64, musl_redir_time64), link_name = "__gmtime64")] #[cfg_attr(not(musl32_time64), allow(deprecated))] pub fn gmtime(time_p: *const time_t) -> *mut tm; #[cfg_attr(target_os = "netbsd", link_name = "__locatime50")] - #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__localtime64")] + #[cfg_attr(any(gnu_time_bits64, musl_redir_time64), link_name = "__localtime64")] #[cfg_attr(not(musl32_time64), allow(deprecated))] pub fn localtime(time_p: *const time_t) -> *mut tm; #[cfg_attr(target_os = "netbsd", link_name = "__difftime50")] - #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__difftime64")] + #[cfg_attr(any(gnu_time_bits64, musl_redir_time64), link_name = "__difftime64")] #[cfg_attr(not(musl32_time64), allow(deprecated))] pub fn difftime(time1: time_t, time0: time_t) -> c_double; #[cfg(not(target_os = "aix"))] #[cfg_attr(target_os = "netbsd", link_name = "__timegm50")] #[cfg_attr(gnu_time_bits64, link_name = "__timegm64")] #[cfg_attr(not(musl32_time64), allow(deprecated))] - #[cfg_attr(musl32_time64, link_name = "__timegm_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__timegm_time64")] pub fn timegm(tm: *mut crate::tm) -> time_t; #[cfg_attr(target_os = "netbsd", link_name = "__mknod50")] @@ -1553,7 +1553,7 @@ extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__select50")] #[cfg_attr(target_os = "aix", link_name = "__fd_select")] #[cfg_attr(gnu_time_bits64, link_name = "__select64")] - #[cfg_attr(musl32_time64, link_name = "__select_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__select_time64")] pub fn select( nfds: c_int, readfds: *mut fd_set, @@ -2118,7 +2118,7 @@ cfg_if! { )))] { extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__adjtime50")] - #[cfg_attr(any(gnu_time_bits64, musl32_time64), link_name = "__adjtime64")] + #[cfg_attr(any(gnu_time_bits64, musl_redir_time64), link_name = "__adjtime64")] pub fn adjtime(delta: *const timeval, olddelta: *mut timeval) -> c_int; } } else if #[cfg(target_os = "solaris")] { @@ -2296,7 +2296,7 @@ cfg_if! { )] #[cfg_attr(target_os = "netbsd", link_name = "__pselect50")] #[cfg_attr(gnu_time_bits64, link_name = "__pselect64")] - #[cfg_attr(musl32_time64, link_name = "__pselect_time64")] + #[cfg_attr(musl_redir_time64, link_name = "__pselect_time64")] pub fn pselect( nfds: c_int, readfds: *mut fd_set, From c89fd76cc760e29bb2a2703d87e24fc9d134f622 Mon Sep 17 00:00:00 2001 From: Sebastian Speitel Date: Mon, 6 Apr 2026 10:28:38 +0200 Subject: [PATCH 1216/1228] Fix typo in Padding comments (backport ) (cherry picked from commit 9b6bf99df305846db8a61fcf8a6268fb345a2664) --- src/types.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/types.rs b/src/types.rs index 1b41d6d0b6338..d786d2ccb8721 100644 --- a/src/types.rs +++ b/src/types.rs @@ -32,7 +32,7 @@ impl Padding { impl fmt::Debug for Padding { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - // Taken frmo `MaybeUninit`'s debug implementation + // Taken from `MaybeUninit`'s debug implementation // NB: there is no `.pad_fmt` so we can't use a simpler `format_args!("Padding<{..}>"). let full_name = core::any::type_name::(); let prefix_len = full_name.find("Padding").unwrap(); From d4613f96a5dd56810baeb0c57403c36e37b5383d Mon Sep 17 00:00:00 2001 From: Nicolas Boichat Date: Fri, 27 Mar 2026 07:49:16 +0800 Subject: [PATCH 1217/1228] newlib/espidf: Add espidf_picolibc cfg for picolibc O_* flag values ESP-IDF v6.0 switched from newlib to picolibc as default C library. Picolibc uses Linux-compatible O_APPEND/O_CREAT/O_TRUNC values which differ from newlib. Add espidf_picolibc cfg to select the correct values. (backport ) (cherry picked from commit 434c916ceb68363401760f4c62438e6b9b521b43) --- build.rs | 2 ++ src/unix/newlib/mod.rs | 14 +++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/build.rs b/build.rs index bc1b077ac6961..34df96aa7ce0f 100644 --- a/build.rs +++ b/build.rs @@ -13,6 +13,8 @@ use std::{ // make sure to add it to this list as well. const ALLOWED_CFGS: &[&str] = &[ "emscripten_old_stat_abi", + // Should be enabled by users if esp-idf (>=6.0) is build with picolibc instead of newlib. + "espidf_picolibc", "espidf_time32", "freebsd10", "freebsd11", diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index ea325dfee8431..9e7df163e62e2 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -515,9 +515,17 @@ pub const F_DUPFD_CLOEXEC: c_int = 14; pub const O_RDONLY: c_int = 0; pub const O_WRONLY: c_int = 1; pub const O_RDWR: c_int = 2; -pub const O_APPEND: c_int = 8; -pub const O_CREAT: c_int = 512; -pub const O_TRUNC: c_int = 1024; +cfg_if! { + if #[cfg(espidf_picolibc)] { + pub const O_APPEND: c_int = 1024; + pub const O_CREAT: c_int = 64; + pub const O_TRUNC: c_int = 512; + } else { + pub const O_APPEND: c_int = 8; + pub const O_CREAT: c_int = 512; + pub const O_TRUNC: c_int = 1024; + } +} pub const O_EXCL: c_int = 2048; pub const O_SYNC: c_int = 8192; pub const O_NONBLOCK: c_int = 16384; From b7eda5a40c678c4a195a389a329d85008eabaf2d Mon Sep 17 00:00:00 2001 From: Brian Cain Date: Sun, 5 Apr 2026 06:50:37 -0700 Subject: [PATCH 1218/1228] hexagon: add missing constants and fix types for linux-musl Add missing constants and fix type mismatches for hexagon-unknown-linux-musl, enabling the rustix crate to build. * Constants added to errno, syscalls, poll, fs, memory, termios * Type fixes (c_int -> tcflag_t): EXTPROC, FLUSHO, IEXTEN, TOSTOP * ipc_perm.__seq changed from c_ushort to c_int with proper __pad1/__pad2 fields to match hexagon musl headers. (backport ) (cherry picked from commit e5880b8471f55c02a1cc047277c1bfd8801f44b3) --- src/unix/linux_like/linux/musl/b32/hexagon.rs | 99 +++++++++++++++++-- 1 file changed, 93 insertions(+), 6 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 16530abdbe411..fa5ebf3635771 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -61,7 +61,9 @@ s! { pub cuid: crate::uid_t, pub cgid: crate::gid_t, pub mode: crate::mode_t, - pub __seq: c_ushort, + pub __seq: c_int, + __pad1: Padding, + __pad2: Padding, } pub struct shmid_ds { @@ -107,6 +109,7 @@ pub const EADDRNOTAVAIL: c_int = 99; pub const EAFNOSUPPORT: c_int = 97; pub const EALREADY: c_int = 114; pub const EBADE: c_int = 52; +pub const EBADFD: c_int = 77; pub const EBADMSG: c_int = 74; pub const EBADR: c_int = 53; pub const EBADRQC: c_int = 56; @@ -170,8 +173,11 @@ pub const EOPNOTSUPP: c_int = 95; pub const EOVERFLOW: c_int = 75; pub const EOWNERDEAD: c_int = 130; pub const EPFNOSUPPORT: c_int = 96; +pub const EPROTOTYPE: c_int = 91; +pub const EPROTONOSUPPORT: c_int = 93; pub const EREMCHG: c_int = 78; pub const ERESTART: c_int = 85; +pub const EREMOTEIO: c_int = 121; pub const ERFKILL: c_int = 132; pub const ESHUTDOWN: c_int = 108; pub const ESOCKTNOSUPPORT: c_int = 94; @@ -183,7 +189,7 @@ pub const EUCLEAN: c_int = 117; pub const EUNATCH: c_int = 49; pub const EUSERS: c_int = 87; pub const EXFULL: c_int = 54; -pub const EXTPROC: c_int = 65536; +pub const EXTPROC: crate::tcflag_t = 65536; pub const F_EXLCK: c_int = 4; pub const F_GETLK: c_int = 12; pub const F_GETOWN: c_int = 9; @@ -191,7 +197,7 @@ pub const F_GETOWNER_UIDS: c_int = 17; pub const F_GETOWN_EX: c_int = 16; pub const F_GETSIG: c_int = 11; pub const F_LINUX_SPECIFIC_BASE: c_int = 1024; -pub const FLUSHO: c_int = 4096; +pub const FLUSHO: crate::tcflag_t = 4096; pub const F_OWNER_PGRP: c_int = 2; pub const F_OWNER_PID: c_int = 1; pub const F_OWNER_TID: c_int = 0; @@ -201,7 +207,7 @@ pub const F_SETOWN: c_int = 8; pub const F_SETOWN_EX: c_int = 15; pub const F_SETSIG: c_int = 10; pub const F_SHLCK: c_int = 8; -pub const IEXTEN: c_int = 32768; +pub const IEXTEN: crate::tcflag_t = 32768; pub const MAP_ANON: c_int = 32; pub const MAP_DENYWRITE: c_int = 2048; pub const MAP_EXECUTABLE: c_int = 4096; @@ -212,6 +218,7 @@ pub const MAP_NONBLOCK: c_int = 65536; pub const MAP_NORESERVE: c_int = 16384; pub const MAP_POPULATE: c_int = 32768; pub const MAP_STACK: c_int = 131072; +pub const MAP_SYNC: c_int = 0x080000; pub const MAP_UNINITIALIZED: c_int = 0; pub const O_APPEND: c_int = 1024; pub const O_ASYNC: c_int = 8192; @@ -225,6 +232,7 @@ pub const O_NOCTTY: c_int = 256; pub const O_NOFOLLOW: c_int = 131072; pub const O_NONBLOCK: c_int = 2048; pub const O_SYNC: c_int = 1052672; +pub const O_RSYNC: c_int = 1052672; pub const PF_FILE: c_int = 1; pub const PF_KCM: c_int = 41; pub const PF_MAX: c_int = 43; @@ -265,6 +273,12 @@ pub const SOL_PNPIPE: c_int = 275; pub const SOL_PPPOL2TP: c_int = 273; pub const SOL_RDS: c_int = 276; pub const SOL_RXRPC: c_int = 272; +pub const POLLWRNORM: c_short = 256; +pub const POLLWRBAND: c_short = 512; +pub const MADV_SOFT_OFFLINE: c_int = 101; +pub const MCL_CURRENT: c_int = 1; +pub const MCL_FUTURE: c_int = 2; +pub const MCL_ONFAULT: c_int = 4; pub const SYS3264_fadvise64: c_int = 223; pub const SYS3264_fcntl: c_int = 25; @@ -305,7 +319,7 @@ pub const SYS_clock_settime: c_int = 112; pub const SYS_clone: c_int = 220; pub const SYS_close: c_int = 57; pub const SYS_connect: c_int = 203; -pub const SYS_copy_file_range: c_int = -1; // FIXME(hexagon) +pub const SYS_copy_file_range: c_long = 285; pub const SYS_creat: c_int = 1064; pub const SYS_delete_module: c_int = 106; pub const SYS_dup2: c_int = 1041; @@ -555,6 +569,7 @@ pub const SYS_splice: c_int = 76; pub const SYS_stat64: c_int = 1038; pub const SYS_stat: c_int = 1038; pub const SYS_statfs64: c_int = 43; +pub const SYS_statfs: c_int = 43; pub const SYS_swapoff: c_int = 225; pub const SYS_swapon: c_int = 224; pub const SYS_symlinkat: c_int = 36; @@ -621,12 +636,84 @@ pub const SYS_faccessat2: c_long = 439; pub const SYS_process_madvise: c_long = 440; pub const SYS_epoll_pwait2: c_long = 441; pub const SYS_mount_setattr: c_long = 442; +pub const SYS_userfaultfd: c_long = 282; +pub const SYS_membarrier: c_long = 283; +pub const SYS_mlock2: c_long = 284; +pub const SYS_preadv2: c_long = 286; +pub const SYS_pwritev2: c_long = 287; +pub const SYS_futex_waitv: c_long = 449; pub const TIOCM_LOOP: c_int = 32768; pub const TIOCM_OUT1: c_int = 8192; pub const TIOCM_OUT2: c_int = 16384; pub const TIOCSER_TEMT: c_int = 1; -pub const TOSTOP: c_int = 256; +pub const TOSTOP: crate::tcflag_t = 256; pub const VEOF: c_int = 4; pub const VEOL2: c_int = 16; pub const VEOL: c_int = 11; pub const VMIN: c_int = 6; +pub const CBAUD: crate::tcflag_t = 4111; +pub const CIBAUD: crate::tcflag_t = 269418496; +pub const CLOCAL: crate::tcflag_t = 2048; +pub const CREAD: crate::tcflag_t = 128; +pub const CS6: crate::tcflag_t = 16; +pub const CS7: crate::tcflag_t = 32; +pub const CS8: crate::tcflag_t = 48; +pub const CSIZE: crate::tcflag_t = 48; +pub const CSTOPB: crate::tcflag_t = 64; +pub const HUPCL: crate::tcflag_t = 1024; +pub const PARENB: crate::tcflag_t = 256; +pub const PARODD: crate::tcflag_t = 512; +pub const ECHOCTL: crate::tcflag_t = 512; +pub const ECHOE: crate::tcflag_t = 16; +pub const ECHOK: crate::tcflag_t = 32; +pub const ECHOKE: crate::tcflag_t = 2048; +pub const ECHONL: crate::tcflag_t = 64; +pub const ECHOPRT: crate::tcflag_t = 1024; +pub const ICANON: crate::tcflag_t = 2; +pub const ISIG: crate::tcflag_t = 1; +pub const IXOFF: crate::tcflag_t = 4096; +pub const IXON: crate::tcflag_t = 1024; +pub const NOFLSH: crate::tcflag_t = 128; +pub const PENDIN: crate::tcflag_t = 16384; +pub const BSDLY: crate::tcflag_t = 8192; +pub const CRDLY: crate::tcflag_t = 1536; +pub const FFDLY: crate::tcflag_t = 32768; +pub const NLDLY: crate::tcflag_t = 256; +pub const OLCUC: crate::tcflag_t = 2; +pub const ONLCR: crate::tcflag_t = 4; +pub const TABDLY: crate::tcflag_t = 6144; +pub const VTDLY: crate::tcflag_t = 16384; +pub const XTABS: crate::tcflag_t = 6144; +pub const BS1: crate::tcflag_t = 8192; +pub const CBAUDEX: crate::tcflag_t = 4096; +pub const CR1: crate::tcflag_t = 512; +pub const CR2: crate::tcflag_t = 1024; +pub const CR3: crate::tcflag_t = 1536; +pub const FF1: crate::tcflag_t = 32768; +pub const TAB1: crate::tcflag_t = 2048; +pub const TAB2: crate::tcflag_t = 4096; +pub const TAB3: crate::tcflag_t = 6144; +pub const VT1: crate::tcflag_t = 16384; +pub const VDISCARD: usize = 13; +pub const VREPRINT: usize = 12; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VSUSP: usize = 10; +pub const VSWTC: usize = 7; +pub const VTIME: usize = 5; +pub const VWERASE: usize = 14; +pub const B57600: crate::speed_t = 4097; +pub const B115200: crate::speed_t = 4098; +pub const B230400: crate::speed_t = 4099; +pub const B460800: crate::speed_t = 4100; +pub const B500000: crate::speed_t = 4101; +pub const B576000: crate::speed_t = 4102; +pub const B921600: crate::speed_t = 4103; +pub const B1000000: crate::speed_t = 4104; +pub const B1152000: crate::speed_t = 4105; +pub const B1500000: crate::speed_t = 4106; +pub const B2000000: crate::speed_t = 4107; +pub const B2500000: crate::speed_t = 4108; +pub const B3000000: crate::speed_t = 4109; +pub const B3500000: crate::speed_t = 4110; +pub const B4000000: crate::speed_t = 4111; From aa75caf30c0153647c9ab9fc0fe382bce2564b0c Mon Sep 17 00:00:00 2001 From: hyperc4m <75161401+hyperc4m@users.noreply.github.com> Date: Tue, 7 Apr 2026 00:52:24 -0700 Subject: [PATCH 1219/1228] horizon: Change POLL constants from c_short to c_int (backport ) (cherry picked from commit ff0e6164f209073c3856e3709c4dcae1e59c6a11) --- src/unix/newlib/horizon/mod.rs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/unix/newlib/horizon/mod.rs b/src/unix/newlib/horizon/mod.rs index 5890a930f38f1..e94a0bb1c13d8 100644 --- a/src/unix/newlib/horizon/mod.rs +++ b/src/unix/newlib/horizon/mod.rs @@ -150,16 +150,16 @@ pub const SOL_CONFIG: c_uint = 65534; pub const PTHREAD_STACK_MIN: size_t = 4096; pub const WNOHANG: c_int = 1; -pub const POLLIN: c_short = 0x0001; -pub const POLLPRI: c_short = 0x0002; -pub const POLLOUT: c_short = 0x0004; -pub const POLLRDNORM: c_short = 0x0040; -pub const POLLWRNORM: c_short = POLLOUT; -pub const POLLRDBAND: c_short = 0x0080; -pub const POLLWRBAND: c_short = 0x0100; -pub const POLLERR: c_short = 0x0008; -pub const POLLHUP: c_short = 0x0010; -pub const POLLNVAL: c_short = 0x0020; +pub const POLLIN: c_int = 0x0001; +pub const POLLPRI: c_int = 0x0002; +pub const POLLOUT: c_int = 0x0004; +pub const POLLRDNORM: c_int = 0x0040; +pub const POLLWRNORM: c_int = POLLOUT; +pub const POLLRDBAND: c_int = 0x0080; +pub const POLLWRBAND: c_int = 0x0100; +pub const POLLERR: c_int = 0x0008; +pub const POLLHUP: c_int = 0x0010; +pub const POLLNVAL: c_int = 0x0020; pub const EAI_AGAIN: c_int = 2; pub const EAI_BADFLAGS: c_int = 3; From 24ef457ddd312f8b8055a8ed07f5376c5792c211 Mon Sep 17 00:00:00 2001 From: dybucc <149513579+dybucc@users.noreply.github.com> Date: Fri, 10 Apr 2026 16:23:14 +0200 Subject: [PATCH 1220/1228] feat: add back support for gnu windows x86 in ci After having tested out GNU on Windows x86, it seemed like the only issue was related to a wrongly aligned/sized `max_align_t`. This has been fixed, and the test suite seems to be running just fine in CI now for the above platform/environment. There were also some environment variables in CI that seemed to be set for the purposes of changing the Mingw toolchain set up, but that weren't truly being used as the job that ran the script that used those was being triggered earlier in the CI pipeline. Because CI logs seem to reveal this has been the case for some time, this has also been altogether removed. (backport ) (cherry picked from commit 3a5c5d7e1a4bcaca2b8d53b2c736d38e8db8c9e0) --- .github/workflows/ci.yaml | 6 ++---- ci/install-rust.sh | 18 +++--------------- src/windows/gnu/mod.rs | 6 ++++-- 3 files changed, 9 insertions(+), 21 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f43fd28ffa45c..4cd2e1285253f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -116,15 +116,13 @@ jobs: os: windows-11-arm - target: aarch64-unknown-linux-gnu os: ubuntu-24.04-arm - # FIXME: It currently causes segfaults. - #- target: i686-pc-windows-gnu - # env: { ARCH_BITS: 32, ARCH: i686 } + - target: i686-pc-windows-gnu + os: windows-2025 - target: i686-pc-windows-msvc os: windows-2025 - target: i686-unknown-linux-gnu - target: x86_64-pc-windows-gnu os: windows-2025 - env: { ARCH_BITS: 64, ARCH: x86_64 } - target: x86_64-pc-windows-msvc os: windows-2025 - target: x86_64-unknown-linux-gnu diff --git a/ci/install-rust.sh b/ci/install-rust.sh index 69e8ba97a5d3d..b40f1df4e7a54 100755 --- a/ci/install-rust.sh +++ b/ci/install-rust.sh @@ -38,23 +38,11 @@ if [ -n "${INSTALL_RUST_SRC:-}" ]; then fi if [ "$os" = "windows" ]; then - if [ "${ARCH_BITS:-}" = "i686" ]; then - echo "Install MinGW32" - choco install mingw --x86 --force - fi - echo "Find GCC libraries" gcc -print-search-dirs - /usr/bin/find "C:\ProgramData\Chocolatey" -name "crt2*" - /usr/bin/find "C:\ProgramData\Chocolatey" -name "dllcrt2*" - /usr/bin/find "C:\ProgramData\Chocolatey" -name "libmsvcrt*" - - if [ -n "${ARCH_BITS:-}" ]; then - echo "Fix MinGW" - for i in crt2.o dllcrt2.o libmingwex.a libmsvcrt.a; do - cp -f "/C/ProgramData/Chocolatey/lib/mingw/tools/install/mingw$ARCH_BITS/$ARCH-w64-mingw32/lib/$i" "$(rustc --print sysroot)/lib/rustlib/$TARGET/lib" - done - fi + /usr/bin/find "C:\ProgramData\chocolatey" -name "crt2*" + /usr/bin/find "C:\ProgramData\chocolatey" -name "dllcrt2*" + /usr/bin/find "C:\ProgramData\chocolatey" -name "libmsvcrt*" fi echo "Query rust and cargo versions" diff --git a/src/windows/gnu/mod.rs b/src/windows/gnu/mod.rs index 7ea6a933c8e85..6dfa85231b442 100644 --- a/src/windows/gnu/mod.rs +++ b/src/windows/gnu/mod.rs @@ -1,5 +1,7 @@ use crate::prelude::*; +// The below configuration for machines with 32-bit word size aligns with the +// declaration in the `mingw-w64` headers. cfg_if! { if #[cfg(target_pointer_width = "64")] { s_no_extra_traits! { @@ -10,9 +12,9 @@ cfg_if! { } } else if #[cfg(target_pointer_width = "32")] { s_no_extra_traits! { - #[repr(align(16))] + #[repr(align(8))] pub struct max_align_t { - priv_: [i64; 6], + priv_: [i64; 3], } } } From 0e9c6e53cca07b36239a6dc4e65d8b691b39023a Mon Sep 17 00:00:00 2001 From: Wildan M Date: Sat, 11 Apr 2026 09:30:59 +0700 Subject: [PATCH 1221/1228] redox: Add semaphore functions (backport ) (cherry picked from commit 30fd290a840678a6797b3a84868b99ab46bba490) --- libc-test/semver/redox.txt | 8 ++++++++ src/unix/redox/mod.rs | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/libc-test/semver/redox.txt b/libc-test/semver/redox.txt index 083e25648045d..95d289f9da413 100644 --- a/libc-test/semver/redox.txt +++ b/libc-test/semver/redox.txt @@ -337,6 +337,14 @@ qsort reallocarray renameat2 rlim_t +sem_clockwait +sem_destroy +sem_getvalue +sem_init +sem_post +sem_timedwait +sem_trywait +sem_wait setgrent setpwent setresgid diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 51766620c6705..691fe5c5fced1 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1309,6 +1309,17 @@ extern "C" { result: *mut *mut passwd, ) -> c_int; + // semaphore.h + pub fn sem_destroy(sem: *mut sem_t) -> c_int; + pub fn sem_init(sem: *mut sem_t, pshared: c_int, value: c_uint) -> c_int; + pub fn sem_clockwait( + sem: *mut sem_t, + clock_id: clockid_t, + abstime: *const crate::timespec, + ) -> c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int; + // signal.h pub fn pthread_sigmask( how: c_int, From 1027d1c23bd3f07ba3dc6ab4a4eb4660cc91e509 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 13 Apr 2026 08:49:42 +0000 Subject: [PATCH 1222/1228] Revert "ci: Pin nightly to 2026-04-01" The relevant PR has been reverted in rust-lang/rust. This reverts commit e26a0bd01d465c136043c1e23f71b106ceb0746f. (backport ) (cherry picked from commit 3ba93f8daa62840596bc4f5a32ebe1857ea97f9a) --- .github/workflows/ci.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 4cd2e1285253f..ff5fa9aba47a1 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -15,8 +15,6 @@ env: RUST_BACKTRACE: full # Base branch for PRs or for merges, current ref for cron runs on a branch. TARGET_REF: ${{ github.base_ref || github.event.merge_group.base_ref || github.ref }} - # FIXME(ci): Unpin once is resolved. - TOOLCHAIN: nightly-2026-04-01 defaults: run: From 71d5bfcc1bda05da1783666fc2cd7d9669c9c4c8 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 13 Apr 2026 09:45:22 +0000 Subject: [PATCH 1223/1228] libc: Release 0.2.185 --- CHANGELOG.md | 15 +++++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88d736526ffe5..d9ffc7cc270ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## [0.2.185](https://github.com/rust-lang/libc/compare/0.2.184...0.2.185) - 2026-04-13 + +### Added + +- EspIDF: Add `espidf_picolibc` cfg for picolibc `O_*` flag values ([#5035](https://github.com/rust-lang/libc/pull/5035)) +- Hexagon: add missing constants and fix types for linux-musl ([#5042](https://github.com/rust-lang/libc/pull/5042)) +- Redox: Add semaphore functions ([#5051](https://github.com/rust-lang/libc/pull/5051)) +- Windows: Add `sprintf`, `snprintf`, and the `scanf` family ([#5024](https://github.com/rust-lang/libc/pull/5024)) + +### Fixed + +- Hexagon: Decouple `time64` types from musl symbol redirects ([#5040](https://github.com/rust-lang/libc/pull/5040)) +- Horizon: Change `POLL` constants from `c_short` to `c_int` ([#5045](https://github.com/rust-lang/libc/pull/5045)) + + ## [0.2.184](https://github.com/rust-lang/libc/compare/0.2.183...0.2.184) - 2026-04-01 ### MSRV diff --git a/Cargo.lock b/Cargo.lock index 4e981c67ca95b..1903d9d499839 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -132,7 +132,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "libc" -version = "0.2.184" +version = "0.2.185" dependencies = [ "rustc-std-workspace-core", ] diff --git a/Cargo.toml b/Cargo.toml index b575e8ad3f5cc..1e05a83c0e0a2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.184" +version = "0.2.185" keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml", "cherry-pick-stable.sh"] diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 3ca06185e104e..ec3f41e0d677e 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -10,7 +10,7 @@ repository = "https://github.com/rust-lang/libc" [dependencies] cfg-if = "1.0.4" -libc = { path = "..", version = "0.2.184", default-features = false } +libc = { path = "..", version = "0.2.185", default-features = false } [dev-dependencies] syn = { version = "2.0.108", features = ["full", "visit"] } From f697deb9440a8f916ec2fb95bef9e06fc847b6f7 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Tue, 14 Apr 2026 17:14:24 +0900 Subject: [PATCH 1224/1228] chore: migrate from Cirrus CI to GHA (cherry picked from commit 088a28455a81c6f9cf770cea42b94380d3cc9b05) --- .cirrus.yml | 32 -------------------------------- .github/workflows/ci.yaml | 35 ++++++++++++++++++++++++++++++++--- Cargo.toml | 2 +- README.md | 8 +++----- ci/README.md | 6 ++---- triagebot.toml | 1 - 6 files changed, 38 insertions(+), 46 deletions(-) delete mode 100644 .cirrus.yml diff --git a/.cirrus.yml b/.cirrus.yml deleted file mode 100644 index 4c09801e7bedc..0000000000000 --- a/.cirrus.yml +++ /dev/null @@ -1,32 +0,0 @@ -task: - only_if: $CIRRUS_BRANCH == 'main' || $CIRRUS_BASE_BRANCH == 'libc-0.2' || $CIRRUS_BASE_BRANCH == 'main' - env: - HOME: /tmp # cargo cache needs it - TARGET: x86_64-unknown-freebsd - matrix: - # FIXME(#4740): FreeBSD 13 tests are extremely flaky and fail most of the time - # - name: nightly freebsd-13 x86_64 - # freebsd_instance: - # image_family: freebsd-13-4 - - name: nightly freebsd-15 i686 - # Test i686 FreeBSD in 32-bit emulation on a 64-bit host. - env: - TARGET: i686-unknown-freebsd - freebsd_instance: - image: freebsd-15-0-release-amd64-ufs - - name: nightly freebsd-14 x86_64 - freebsd_instance: - image: freebsd-14-4-release-amd64-ufs - - name: nightly freebsd-15 x86_64 - freebsd_instance: - image: freebsd-15-0-release-amd64-ufs - 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 - - if [ "$TARGET" = "i686-unknown-freebsd" ]; then rustup target add i686-unknown-freebsd; fi - test_script: - - . $HOME/.cargo/env - - LIBC_CI=1 sh ci/run.sh $TARGET - - sh ci/run.sh $TARGET diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ff5fa9aba47a1..7a86a0e4fee4a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -265,11 +265,40 @@ jobs: fail-fast: true matrix: include: + # FIXME(#4740): FreeBSD 13 tests are extremely flaky and fail most of the time + # - release: "13.4" + # target: x86_64-unknown-freebsd + - release: "15.0" + target: i686-unknown-freebsd + - release: "14.4" + target: x86_64-unknown-freebsd + - release: "15.0" + target: x86_64-unknown-freebsd - target: x86_64-pc-solaris - target: x86_64-unknown-netbsd timeout-minutes: 25 steps: - uses: actions/checkout@v6 + - name: Test on FreeBSD + uses: vmactions/freebsd-vm@v1.4.5 + if: contains(matrix.target, 'freebsd') + with: + release: ${{ matrix.release }} + usesh: true + copyback: false + prepare: | + set -ex + 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" + rustup target add ${{ matrix.target }} + run: | + set -ex + . "$HOME/.cargo/env" + LIBC_CI=1 ./ci/run.sh ${{ matrix.target }} + ./ci/run.sh ${{ matrix.target }} + - name: test on Solaris uses: vmactions/solaris-vm@v1.3.2 if: contains(matrix.target, 'solaris') @@ -279,7 +308,7 @@ jobs: mem: 4096 copyback: false prepare: | - set -x + set -ex source <(curl -s https://raw.githubusercontent.com/psumbera/solaris-rust/refs/heads/main/sh.rust-web-install) rustc --version uname -a @@ -296,12 +325,12 @@ jobs: mem: 4096 copyback: false prepare: | - set -x + set -ex /usr/sbin/pkg_add curl curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- \ --profile minimal --default-toolchain nightly -y run: | - set -x + set -ex . "$HOME/.cargo/env" which rustc rustc -Vv diff --git a/Cargo.toml b/Cargo.toml index 1e05a83c0e0a2..15be9f3301d22 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "libc" version = "0.2.185" keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] -exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml", "cherry-pick-stable.sh"] +exclude = ["/ci/*", "/.github/*", "/triagebot.toml", "cherry-pick-stable.sh"] description = "Raw FFI bindings to platform libraries like libc." authors = ["The Rust Project Developers"] edition = "2021" diff --git a/README.md b/README.md index 69aff2cae166d..76ecb8673bb54 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # libc - Raw FFI bindings to platforms' system libraries -[![GHA Status]][GitHub Actions] [![Cirrus CI Status]][Cirrus CI] [![Latest Version]][crates.io] [![Documentation]][docs.rs] ![License] +[![GHA Status]][GitHub Actions] [![Latest Version]][crates.io] [![Documentation]][docs.rs] ![License] `libc` provides all of the definitions necessary to easily interoperate with C code (or "C-like" code) on each of the platforms that Rust supports. This @@ -73,8 +73,8 @@ you want to see. See [`ci/verify-build.py`](https://github.com/rust-lang/libc/blob/HEAD/ci/verify-build.py) for the platforms on which `libc` is guaranteed to build for each Rust toolchain. -The test-matrix at [GitHub Actions] and [Cirrus CI] show the platforms in which -`libc` tests are run. +The test matrices at [GitHub Actions] show the platforms in which `libc` tests +are run.
@@ -108,8 +108,6 @@ dual licensed as above, without any additional terms or conditions. [GitHub Actions]: https://github.com/rust-lang/libc/actions [GHA Status]: https://github.com/rust-lang/libc/workflows/CI/badge.svg -[Cirrus CI]: https://cirrus-ci.com/github/rust-lang/libc -[Cirrus CI Status]: https://api.cirrus-ci.com/github/rust-lang/libc.svg [crates.io]: https://crates.io/crates/libc [Latest Version]: https://img.shields.io/crates/v/libc.svg [Documentation]: https://docs.rs/libc/badge.svg diff --git a/ci/README.md b/ci/README.md index d97b98acfcd08..4e5b552d58892 100644 --- a/ci/README.md +++ b/ci/README.md @@ -20,9 +20,8 @@ First up, let's talk about the files in this directory: # CI Systems -Currently this repository leverages a combination of GitHub Actions and Cirrus -CI for running tests. You can find tested triples in [Actions config] or -[Cirrus config]. +Currently this repository uses GitHub Actions workflows for running tests. You +can find tested triples in [Actions config]. The Windows triples are all pretty standard, they just set up their environment then run tests, no need for downloading any extra target libs (we just download @@ -44,7 +43,6 @@ The remaining architectures look like: and compile/run tests. More information on that below. [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 diff --git a/triagebot.toml b/triagebot.toml index c192178a9baa4..91bc102738b54 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -22,7 +22,6 @@ check-commits = "uncanonicalized" [autolabel."A-CI"] trigger_files = [ - ".cirrus.yml", ".github", "ci", ] From 38409392ffb50288aa84e94b75fc37bd565fd5bc Mon Sep 17 00:00:00 2001 From: Pavel Safronov Date: Wed, 15 Apr 2026 19:34:04 +0100 Subject: [PATCH 1225/1228] Add PR_SET_MEMORY_MERGE and PR_GET_MEMORY_MERGE for linux Add `PR_SET_MEMORY_MERGE` and `PR_GET_MEMORY_MERGE` prctl constants for the linux target. These control [per-process opt-in to KSM](https://lwn.net/Articles/953141/) and have been available since kernel 6.4. They were already defined for the android target but missing from linux (cherry picked from commit 545663c3553890efe170b273ecd73b6f3dfb9f75) --- libc-test/build.rs | 2 ++ libc-test/semver/linux.txt | 2 ++ src/unix/linux_like/linux/mod.rs | 2 ++ 3 files changed, 6 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index a3de6f94c2098..6378b245a860e 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4422,6 +4422,8 @@ fn test_linux(target: &str) { | "PR_MDWE_NO_INHERIT" | "PR_MDWE_REFUSE_EXEC_GAIN" | "PR_SET_MDWE" + | "PR_GET_MEMORY_MERGE" + | "PR_SET_MEMORY_MERGE" | "IPPROTO_ETHERNET" | "IPPROTO_MPTCP" | "SI_DETHREAD" diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 8e7a748ada4d3..646696e43cde0 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2404,6 +2404,7 @@ PR_GET_FPEXC PR_GET_FP_MODE PR_GET_KEEPCAPS PR_GET_MDWE +PR_GET_MEMORY_MERGE PR_GET_NAME PR_GET_NO_NEW_PRIVS PR_GET_PDEATHSIG @@ -2443,6 +2444,7 @@ PR_SET_FPEXC PR_SET_FP_MODE PR_SET_KEEPCAPS PR_SET_MDWE +PR_SET_MEMORY_MERGE PR_SET_MM PR_SET_MM_ARG_END PR_SET_MM_ARG_START diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 9a1432e4e942d..e58849b4e08f5 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1644,6 +1644,8 @@ pub const PR_SET_MDWE: c_int = 65; pub const PR_GET_MDWE: c_int = 66; pub const PR_MDWE_REFUSE_EXEC_GAIN: c_uint = 1 << 0; pub const PR_MDWE_NO_INHERIT: c_uint = 1 << 1; +pub const PR_SET_MEMORY_MERGE: c_int = 67; +pub const PR_GET_MEMORY_MERGE: c_int = 68; pub const GRND_NONBLOCK: c_uint = 0x0001; pub const GRND_RANDOM: c_uint = 0x0002; From 9db2eaaaaea60e0b048785e41ca4eb9c50d30ad5 Mon Sep 17 00:00:00 2001 From: Kamal Al Marhubi Date: Tue, 21 Apr 2026 21:58:37 -0400 Subject: [PATCH 1226/1228] apple: add KEVENT_FLAG_* constants These are values for the flag parameter in the Apple-specific `kevent64` syscall: https://github.com/apple-oss-distributions/xnu/blob/f6217f891ac0bb64f3d375211650a4c1ff8ca1ea/bsd/sys/event.h#L138-L141 (cherry picked from commit 708f24e4e3ea7622efb37b09d1a52d2ee917445f) --- libc-test/semver/apple.txt | 3 +++ src/unix/bsd/apple/mod.rs | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index fd88c66f313e2..2a7e1ddb3ddb0 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -814,6 +814,9 @@ KERN_USRSTACK32 KERN_USRSTACK64 KERN_VERSION KERN_VNODE +KEVENT_FLAG_ERROR_EVENTS +KEVENT_FLAG_IMMEDIATE +KEVENT_FLAG_NONE KIPC_MAXSOCKBUF KIPC_MAX_DATALEN KIPC_MAX_HDR diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index d42f0ab16fd1f..ff0e24a90a1d1 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -3185,6 +3185,10 @@ pub const EV_ERROR: u16 = 0x4000; pub const EV_EOF: u16 = 0x8000; pub const EV_SYSFLAGS: u16 = 0xf000; +pub const KEVENT_FLAG_NONE: c_uint = 0x000000; +pub const KEVENT_FLAG_IMMEDIATE: c_uint = 0x000001; +pub const KEVENT_FLAG_ERROR_EVENTS: c_uint = 0x000002; + pub const NOTE_TRIGGER: u32 = 0x01000000; pub const NOTE_FFNOP: u32 = 0x00000000; pub const NOTE_FFAND: u32 = 0x40000000; From 42620ffc4109dc32e02f1cae9e63a3f4311b4b71 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Fri, 24 Apr 2026 04:28:21 +0900 Subject: [PATCH 1227/1228] [0.2] libc: Release 0.2.186 --- CHANGELOG.md | 11 ++++++ Cargo.lock | 90 ++++++++++++++++++++++---------------------- Cargo.toml | 2 +- libc-test/Cargo.toml | 2 +- 4 files changed, 58 insertions(+), 47 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9ffc7cc270ca..0e37267c09706 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## [0.2.186](https://github.com/rust-lang/libc/compare/0.2.185...0.2.186) - 2026-04-24 + +### Added + +- Apple: Add `KEVENT_FLAG_*` constants ([#5070](https://github.com/rust-lang/libc/pull/5070)) +- Linux: Add `PR_SET_MEMORY_MERGE` and `PR_GET_MEMORY_MERGE` ([#5060](https://github.com/rust-lang/libc/pull/5060)) + +### Changed + +- CI: Migrate FreeBSD CI from Cirrus CI to GitHub Actions ([#5058](https://github.com/rust-lang/libc/pull/5058)) + ## [0.2.185](https://github.com/rust-lang/libc/compare/0.2.184...0.2.185) - 2026-04-13 ### Added diff --git a/Cargo.lock b/Cargo.lock index 1903d9d499839..606da2ee184e4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,9 +23,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "askama" @@ -80,9 +80,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.44" +version = "1.2.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37521ac7aabe3d13122dc382493e20c9416f299d2ccd5b3a5340a2570cdeb0f3" +checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20" dependencies = [ "find-msvc-tools", "shlex", @@ -100,9 +100,9 @@ version = "0.1.0" [[package]] name = "ctest" -version = "0.5.0-beta.3" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41986fe714de2b29e44b072f0f6676a247e5469d9262811dfd1bf733482a3b6" +checksum = "5133f4aff0fba71879344d2999f9d5c953f2df01642db17f1025c909aaa68d8c" dependencies = [ "askama", "cc", @@ -114,9 +114,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.4" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "glob" @@ -126,13 +126,13 @@ checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "libc" -version = "0.2.185" +version = "0.2.186" dependencies = [ "rustc-std-workspace-core", ] @@ -144,7 +144,7 @@ dependencies = [ "annotate-snippets", "cc", "cfg-if", - "ctest 0.5.0-beta.3", + "ctest 0.5.1", "glob", "libc", "proc-macro2", @@ -154,9 +154,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.6" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "percent-encoding" @@ -166,27 +166,27 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.41" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] [[package]] name = "regex" -version = "1.12.2" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", @@ -196,9 +196,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", @@ -207,15 +207,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "rustc-hash" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" [[package]] name = "rustc-std-workspace-core" @@ -223,12 +223,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa9c45b374136f52f2d6311062c7146bff20fec063c3f5d46a410bd937746955" -[[package]] -name = "ryu" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - [[package]] name = "serde" version = "1.0.228" @@ -260,15 +254,15 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", - "ryu", "serde", "serde_core", + "zmij", ] [[package]] @@ -279,9 +273,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "syn" -version = "2.0.108" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -290,18 +284,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", @@ -310,9 +304,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-width" @@ -322,9 +316,15 @@ checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" [[package]] name = "winnow" -version = "0.7.13" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" dependencies = [ "memchr", ] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/Cargo.toml b/Cargo.toml index 15be9f3301d22..a448d888c7738 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.185" +version = "0.2.186" keywords = ["libc", "ffi", "bindings", "operating", "system"] categories = ["external-ffi-bindings", "no-std", "os"] exclude = ["/ci/*", "/.github/*", "/triagebot.toml", "cherry-pick-stable.sh"] diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index ec3f41e0d677e..d276a34f09ff9 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -10,7 +10,7 @@ repository = "https://github.com/rust-lang/libc" [dependencies] cfg-if = "1.0.4" -libc = { path = "..", version = "0.2.185", default-features = false } +libc = { path = "..", version = "0.2.186", default-features = false } [dev-dependencies] syn = { version = "2.0.108", features = ["full", "visit"] } From e464a33781da9cb6ffa09b7ec1d6f4a872177e34 Mon Sep 17 00:00:00 2001 From: Svante Karlsson Date: Sat, 2 May 2026 16:21:22 +0200 Subject: [PATCH 1228/1228] nto: expose io-sock TCP_KEEPIDLE/INTVL/CNT for nto71_iosock and nto80 QNX 8.0 ships only the io-sock network stack, which replaced TCP_KEEPALIVE with the BSD-style TCP_KEEPIDLE/TCP_KEEPINTVL/TCP_KEEPCNT triple. Values verified against /opt/qnx800/target/qnx/usr/include/netinet/tcp.h. This unblocks crates such as socket2 and tokio that cfg(target_os = "nto")-gate code expecting the io-sock keepalive constants to be visible. Related: #5071. --- src/unix/nto/mod.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 022fb0be1f786..611d602f4147f 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -981,6 +981,12 @@ cfg_if! { pub const SO_OVERFLOWED: c_int = 0x1009; } else { pub const SCM_CREDS: c_int = 0x03; + // io-sock keepalive options (BSD-style; replaces nto70/71's + // single-value TCP_KEEPALIVE). Values verified against + // QNX 8.0 SDP /usr/include/netinet/tcp.h. + pub const TCP_KEEPIDLE: c_int = 256; + pub const TCP_KEEPINTVL: c_int = 512; + pub const TCP_KEEPCNT: c_int = 1024; pub const AF_INET6: c_int = 28; pub const AF_BLUETOOTH: c_int = 36; pub const pseudo_AF_KEY: c_int = 27;